@bizdoc/core 2.1.13 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/assets/system/auth0.svg +13 -0
  2. package/esm2022/lib/admin/admin-dismiss.service.mjs +5 -5
  3. package/esm2022/lib/admin/admin-menu.component.mjs +5 -5
  4. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +5 -5
  5. package/esm2022/lib/admin/architecture/designer-element.component.mjs +23 -23
  6. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +6 -6
  7. package/esm2022/lib/admin/architecture/designer.base.mjs +16 -16
  8. package/esm2022/lib/admin/architecture/designer.component.mjs +7 -6
  9. package/esm2022/lib/admin/architecture/elements/action.component.mjs +4 -4
  10. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +6 -5
  11. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +6 -5
  12. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +6 -5
  13. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +4 -4
  14. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +8 -7
  15. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +6 -5
  16. package/esm2022/lib/admin/architecture/elements/control.component.mjs +4 -4
  17. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +6 -5
  18. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +6 -5
  19. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +6 -6
  20. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +8 -7
  21. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +6 -5
  22. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +6 -5
  23. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +6 -5
  24. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +4 -4
  25. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +6 -6
  26. package/esm2022/lib/admin/architecture/elements/form.component.mjs +6 -6
  27. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +4 -4
  28. package/esm2022/lib/admin/architecture/elements/job.component.mjs +6 -6
  29. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +6 -5
  30. package/esm2022/lib/admin/architecture/elements/node.component.mjs +4 -4
  31. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +6 -5
  32. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +6 -5
  33. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +6 -5
  34. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +6 -5
  35. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +4 -4
  36. package/esm2022/lib/admin/architecture/elements/report.component.mjs +4 -4
  37. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +6 -5
  38. package/esm2022/lib/admin/architecture/elements/role.component.mjs +4 -4
  39. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +4 -4
  40. package/esm2022/lib/admin/architecture/elements/state.component.mjs +4 -4
  41. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +6 -5
  42. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +6 -5
  43. package/esm2022/lib/admin/architecture/elements/type.component.mjs +6 -6
  44. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +6 -5
  45. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +4 -4
  46. package/esm2022/lib/admin/architecture/elements/view.component.mjs +4 -4
  47. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +4 -4
  48. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +6 -6
  49. package/esm2022/lib/admin/core/ace.input.mjs +6 -6
  50. package/esm2022/lib/admin/core/color-picker.input.mjs +6 -6
  51. package/esm2022/lib/admin/core/localized-string.component.mjs +6 -6
  52. package/esm2022/lib/admin/core/search.input.mjs +26 -10
  53. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +8 -7
  54. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +8 -7
  55. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +6 -6
  56. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +5 -5
  57. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +12 -11
  58. package/esm2022/lib/admin/form/designer/properties.component.mjs +5 -5
  59. package/esm2022/lib/admin/form/designer/section.component.mjs +5 -5
  60. package/esm2022/lib/admin/form/designer/settings.component.mjs +6 -6
  61. package/esm2022/lib/admin/form/form.resolve.service.mjs +5 -5
  62. package/esm2022/lib/admin/form/workflow/node.component.mjs +5 -5
  63. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +8 -7
  64. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +5 -5
  65. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +8 -7
  66. package/esm2022/lib/admin/patterns/patterns.component.mjs +8 -7
  67. package/esm2022/lib/admin/permissions/permissions.component.mjs +8 -7
  68. package/esm2022/lib/admin/positions/positions-popup.component.mjs +6 -6
  69. package/esm2022/lib/admin/positions/positions.component.mjs +8 -7
  70. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +7 -7
  71. package/esm2022/lib/admin/profiler/profiler.component.mjs +8 -7
  72. package/esm2022/lib/admin/system.service.mjs +5 -5
  73. package/esm2022/lib/admin/utility-wrapper.component.mjs +5 -5
  74. package/esm2022/lib/admin/utility.pane.component.mjs +5 -5
  75. package/esm2022/lib/app.component.mjs +8 -8
  76. package/esm2022/lib/bizdoc.module.mjs +5 -5
  77. package/esm2022/lib/browse/browse-items.component.mjs +6 -6
  78. package/esm2022/lib/browse/browse.mobile.component.mjs +5 -5
  79. package/esm2022/lib/browse/browse.pane.component.mjs +5 -5
  80. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +5 -5
  81. package/esm2022/lib/browse/filter/filter.component.mjs +6 -6
  82. package/esm2022/lib/browse/folders-menu.component.mjs +5 -5
  83. package/esm2022/lib/chat/chat-info.mjs +6 -6
  84. package/esm2022/lib/chat/chat.mobile.component.mjs +4 -4
  85. package/esm2022/lib/chat/chat.service.mjs +5 -5
  86. package/esm2022/lib/chat/contacts.component.mjs +8 -8
  87. package/esm2022/lib/chat/contacts.pane.component.mjs +5 -5
  88. package/esm2022/lib/chat/conversation.component.mjs +6 -6
  89. package/esm2022/lib/chat/conversation.pane.component.mjs +5 -5
  90. package/esm2022/lib/compose/action/action-picker.component.mjs +6 -6
  91. package/esm2022/lib/compose/action/action.dialog.mjs +6 -6
  92. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +5 -5
  93. package/esm2022/lib/compose/action/assign-action.component.mjs +7 -6
  94. package/esm2022/lib/compose/action/moveto-action.component.mjs +7 -6
  95. package/esm2022/lib/compose/action/return-action.component.mjs +7 -6
  96. package/esm2022/lib/compose/attachments/attachments.component.mjs +5 -5
  97. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +6 -6
  98. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +5 -5
  99. package/esm2022/lib/compose/box/box.component.mjs +7 -6
  100. package/esm2022/lib/compose/box/control.component.mjs +6 -6
  101. package/esm2022/lib/compose/box/row.component.mjs +5 -5
  102. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +5 -5
  103. package/esm2022/lib/compose/comments/comment.component.mjs +6 -6
  104. package/esm2022/lib/compose/comments/comments.component.mjs +6 -6
  105. package/esm2022/lib/compose/comments/comments.pane.component.mjs +5 -5
  106. package/esm2022/lib/compose/comments/edit-comment.component.mjs +6 -6
  107. package/esm2022/lib/compose/comments/edits.component.mjs +6 -6
  108. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +6 -6
  109. package/esm2022/lib/compose/comments/votes.component.mjs +6 -6
  110. package/esm2022/lib/compose/compose-resolve.service.mjs +9 -9
  111. package/esm2022/lib/compose/compose.mobile.component.mjs +9 -9
  112. package/esm2022/lib/compose/compose.pane.component.mjs +9 -9
  113. package/esm2022/lib/compose/copy/copy.dialog.mjs +5 -5
  114. package/esm2022/lib/compose/dismiss.service.mjs +5 -5
  115. package/esm2022/lib/compose/document-resolver.service.mjs +5 -5
  116. package/esm2022/lib/compose/document.component.mjs +5 -5
  117. package/esm2022/lib/compose/document.mobile.component.mjs +5 -5
  118. package/esm2022/lib/compose/document.pane.component.mjs +5 -5
  119. package/esm2022/lib/compose/events/events.component.mjs +5 -5
  120. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +5 -5
  121. package/esm2022/lib/compose/form.component.mjs +48 -45
  122. package/esm2022/lib/compose/new-menu.component.mjs +5 -5
  123. package/esm2022/lib/compose/privilage.directive.mjs +11 -11
  124. package/esm2022/lib/compose/recipient-resolver.service.mjs +5 -5
  125. package/esm2022/lib/compose/state.component.mjs +5 -5
  126. package/esm2022/lib/compose/tag/tags.component.mjs +6 -6
  127. package/esm2022/lib/compose/trace/flow.component.mjs +5 -5
  128. package/esm2022/lib/compose/trace/people.component.mjs +5 -5
  129. package/esm2022/lib/compose/trace/trace.base.mjs +5 -5
  130. package/esm2022/lib/compose/trace/trace.component.mjs +5 -5
  131. package/esm2022/lib/compose/trace/trace.pane.component.mjs +5 -5
  132. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +5 -5
  133. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +16 -16
  134. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +5 -5
  135. package/esm2022/lib/core/account.service.mjs +5 -5
  136. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +5 -5
  137. package/esm2022/lib/core/avatar/avatar.component.mjs +5 -5
  138. package/esm2022/lib/core/checkbox.mjs +4 -4
  139. package/esm2022/lib/core/component-factory-resolver.mjs +5 -5
  140. package/esm2022/lib/core/datasource.service.mjs +5 -5
  141. package/esm2022/lib/core/fields/address.designer.mjs +7 -6
  142. package/esm2022/lib/core/fields/address.field.mjs +6 -5
  143. package/esm2022/lib/core/fields/autocomplete.field.mjs +14 -12
  144. package/esm2022/lib/core/fields/checkbox.designer.mjs +7 -6
  145. package/esm2022/lib/core/fields/checkbox.field.mjs +7 -6
  146. package/esm2022/lib/core/fields/checklist.designer.mjs +8 -7
  147. package/esm2022/lib/core/fields/checklist.field.mjs +6 -5
  148. package/esm2022/lib/core/fields/date-range.designer.mjs +7 -6
  149. package/esm2022/lib/core/fields/date-range.field.mjs +7 -6
  150. package/esm2022/lib/core/fields/date.designer.mjs +7 -6
  151. package/esm2022/lib/core/fields/date.field.mjs +6 -5
  152. package/esm2022/lib/core/fields/expression.field.mjs +11 -9
  153. package/esm2022/lib/core/fields/file.designer.mjs +8 -7
  154. package/esm2022/lib/core/fields/file.field.mjs +6 -5
  155. package/esm2022/lib/core/fields/html.designer.mjs +7 -6
  156. package/esm2022/lib/core/fields/html.field.mjs +6 -5
  157. package/esm2022/lib/core/fields/input.designer.mjs +7 -6
  158. package/esm2022/lib/core/fields/input.field.mjs +6 -5
  159. package/esm2022/lib/core/fields/localized-string.field.mjs +11 -9
  160. package/esm2022/lib/core/fields/numeric.designer.mjs +7 -6
  161. package/esm2022/lib/core/fields/numeric.field.mjs +6 -5
  162. package/esm2022/lib/core/fields/options.base.mjs +9 -9
  163. package/esm2022/lib/core/fields/options.component.mjs +5 -5
  164. package/esm2022/lib/core/fields/radio-button.designer.mjs +7 -6
  165. package/esm2022/lib/core/fields/radio-button.field.mjs +7 -6
  166. package/esm2022/lib/core/fields/select.designer.mjs +8 -7
  167. package/esm2022/lib/core/fields/select.field.mjs +6 -5
  168. package/esm2022/lib/core/fields/signature.designer.mjs +7 -6
  169. package/esm2022/lib/core/fields/signature.field.mjs +7 -6
  170. package/esm2022/lib/core/fields/switch.field.mjs +10 -18
  171. package/esm2022/lib/core/fields/textarea.designer.mjs +7 -6
  172. package/esm2022/lib/core/fields/textarea.field.mjs +6 -5
  173. package/esm2022/lib/core/fields/time.designer.mjs +7 -6
  174. package/esm2022/lib/core/fields/time.field.mjs +6 -5
  175. package/esm2022/lib/core/fields/timespan.field.mjs +11 -9
  176. package/esm2022/lib/core/fields/yesno.designer.mjs +8 -7
  177. package/esm2022/lib/core/fields/yesno.field.mjs +8 -7
  178. package/esm2022/lib/core/guide/guide.component.mjs +6 -6
  179. package/esm2022/lib/core/guide/guide.service.mjs +6 -6
  180. package/esm2022/lib/core/guide/help-tip.component.mjs +6 -6
  181. package/esm2022/lib/core/http.interceptor.mjs +7 -7
  182. package/esm2022/lib/core/hub.service.mjs +5 -5
  183. package/esm2022/lib/core/identity/identity.component.mjs +6 -6
  184. package/esm2022/lib/core/info/attachment-info.service.mjs +5 -5
  185. package/esm2022/lib/core/info/document-info.service.mjs +5 -5
  186. package/esm2022/lib/core/info/location-info.component.mjs +6 -6
  187. package/esm2022/lib/core/info/map-info.mjs +5 -5
  188. package/esm2022/lib/core/inputs/address.input.mjs +7 -7
  189. package/esm2022/lib/core/inputs/auto-complete.input.mjs +7 -7
  190. package/esm2022/lib/core/inputs/combination-picker-body.mjs +6 -6
  191. package/esm2022/lib/core/inputs/combination-picker.mjs +6 -6
  192. package/esm2022/lib/core/inputs/combination-pool.mjs +5 -5
  193. package/esm2022/lib/core/inputs/file.input.mjs +6 -6
  194. package/esm2022/lib/core/inputs/select.input.mjs +7 -7
  195. package/esm2022/lib/core/inputs/signature.input.mjs +6 -6
  196. package/esm2022/lib/core/inputs/time-picker.mjs +6 -6
  197. package/esm2022/lib/core/inputs/timespan.input.mjs +6 -6
  198. package/esm2022/lib/core/layout.component.mjs +5 -5
  199. package/esm2022/lib/core/lottie-animation.mjs +5 -5
  200. package/esm2022/lib/core/mailbox.service.mjs +7 -7
  201. package/esm2022/lib/core/none.component.mjs +4 -4
  202. package/esm2022/lib/core/pipes/action.pipe.mjs +5 -5
  203. package/esm2022/lib/core/pipes/calendar.pipe.mjs +5 -5
  204. package/esm2022/lib/core/pipes/date-format.pipe.mjs +5 -5
  205. package/esm2022/lib/core/pipes/daterange.pipe.mjs +8 -8
  206. package/esm2022/lib/core/pipes/difference.pipe.mjs +4 -4
  207. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +5 -5
  208. package/esm2022/lib/core/pipes/duration.pipe.mjs +5 -5
  209. package/esm2022/lib/core/pipes/form.pipe.mjs +5 -5
  210. package/esm2022/lib/core/pipes/join.pipe.mjs +5 -5
  211. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +5 -5
  212. package/esm2022/lib/core/pipes/role.pipe.mjs +5 -5
  213. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +5 -5
  214. package/esm2022/lib/core/pipes/sort.pipe.mjs +7 -7
  215. package/esm2022/lib/core/pipes/state.pipe.mjs +5 -5
  216. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +9 -9
  217. package/esm2022/lib/core/pipes/translate.pipe.mjs +13 -13
  218. package/esm2022/lib/core/pipes/type-value.pipe.mjs +5 -5
  219. package/esm2022/lib/core/pipes/user-name.pipe.mjs +5 -5
  220. package/esm2022/lib/core/popup/popup.component.mjs +6 -6
  221. package/esm2022/lib/core/popup/popup.service.mjs +5 -5
  222. package/esm2022/lib/core/popup/tooltip.directive.mjs +10 -10
  223. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +6 -6
  224. package/esm2022/lib/core/prompt/mask/mask.component.mjs +6 -6
  225. package/esm2022/lib/core/prompt.service.mjs +5 -5
  226. package/esm2022/lib/core/router.mjs +9 -9
  227. package/esm2022/lib/core/save-changes.dialog.mjs +4 -4
  228. package/esm2022/lib/core/session.service.mjs +6 -6
  229. package/esm2022/lib/core/slots/router.directive.mjs +5 -5
  230. package/esm2022/lib/core/slots/router.service.mjs +5 -5
  231. package/esm2022/lib/core/slots/slots.component.mjs +6 -6
  232. package/esm2022/lib/core/tagging/documents.component.mjs +5 -5
  233. package/esm2022/lib/core/tagging/edit-input.component.mjs +5 -5
  234. package/esm2022/lib/core/tagging/emoji.component.mjs +5 -5
  235. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +4 -4
  236. package/esm2022/lib/core/tagging/tagging.component-base.mjs +4 -4
  237. package/esm2022/lib/core/tagging/tagging.directive.mjs +6 -6
  238. package/esm2022/lib/core/tagging/tagging.pipe.mjs +5 -5
  239. package/esm2022/lib/core/tagging/users.component.mjs +5 -5
  240. package/esm2022/lib/core/translate.service.mjs +5 -5
  241. package/esm2022/lib/core/window-title.service.mjs +6 -6
  242. package/esm2022/lib/cube/accum/accum.component.mjs +5 -5
  243. package/esm2022/lib/cube/chart/chart.component.mjs +5 -5
  244. package/esm2022/lib/cube/cube-info.service.mjs +5 -5
  245. package/esm2022/lib/cube/cube-menu.component.mjs +5 -5
  246. package/esm2022/lib/cube/cube-view.component.mjs +5 -5
  247. package/esm2022/lib/cube/cube.service.mjs +6 -6
  248. package/esm2022/lib/cube/explore/document-item.component.mjs +8 -7
  249. package/esm2022/lib/cube/explore/explore-item.component.mjs +5 -5
  250. package/esm2022/lib/cube/explore/explore-items.component.mjs +5 -5
  251. package/esm2022/lib/cube/explore/explore.pane.component.mjs +5 -5
  252. package/esm2022/lib/cube/explore/item-resolver.service.mjs +9 -9
  253. package/esm2022/lib/cube/explore/item.pane.component.mjs +5 -5
  254. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +5 -5
  255. package/esm2022/lib/cube/filter/filter.component.mjs +5 -5
  256. package/esm2022/lib/cube/grid/grid.component.mjs +5 -5
  257. package/esm2022/lib/cube/grid/spreadsheet.component.mjs +5 -5
  258. package/esm2022/lib/cube/matrix/matrix.base.mjs +5 -5
  259. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +5 -5
  260. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +5 -5
  261. package/esm2022/lib/cube/matrix/popup.component.mjs +6 -6
  262. package/esm2022/lib/cube/matrix/table.component.mjs +5 -5
  263. package/esm2022/lib/cube/parallel/parallel.component.mjs +5 -5
  264. package/esm2022/lib/cube/pivot/pivot.component.mjs +5 -5
  265. package/esm2022/lib/cube/sum/sum.component.mjs +5 -5
  266. package/esm2022/lib/cube/view-base.mjs +5 -5
  267. package/esm2022/lib/cube/view.mobile.component.mjs +5 -5
  268. package/esm2022/lib/cube/view.pane.component.mjs +5 -5
  269. package/esm2022/lib/dashboard/actions/actions.widget.mjs +8 -7
  270. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +5 -5
  271. package/esm2022/lib/dashboard/cube/compare.widget.mjs +7 -6
  272. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +5 -5
  273. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +7 -6
  274. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +5 -5
  275. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +7 -6
  276. package/esm2022/lib/dashboard/cube/documents.widget.mjs +7 -6
  277. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +7 -6
  278. package/esm2022/lib/dashboard/dashboard.component.mjs +6 -6
  279. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +5 -5
  280. package/esm2022/lib/dashboard/recents/recents.widget.mjs +8 -7
  281. package/esm2022/lib/dashboard/score/activity.widget.mjs +7 -6
  282. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +7 -6
  283. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +7 -6
  284. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +7 -6
  285. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +7 -6
  286. package/esm2022/lib/dashboard/widget-item.component.mjs +5 -5
  287. package/esm2022/lib/designer.module.mjs +5 -5
  288. package/esm2022/lib/desktop.module.mjs +5 -5
  289. package/esm2022/lib/home/about/about.dialog.mjs +5 -5
  290. package/esm2022/lib/home/home-base.component.mjs +5 -5
  291. package/esm2022/lib/home/home.desktop.component.mjs +7 -7
  292. package/esm2022/lib/home/home.mobile.component.mjs +6 -6
  293. package/esm2022/lib/home/notifications/notifications.component.mjs +5 -5
  294. package/esm2022/lib/home/options/options.component.mjs +6 -6
  295. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +6 -6
  296. package/esm2022/lib/home/sign/sign.component.mjs +6 -6
  297. package/esm2022/lib/home/tools.component.mjs +6 -6
  298. package/esm2022/lib/impersonate/impersonate.component.mjs +5 -5
  299. package/esm2022/lib/mobile.module.mjs +5 -5
  300. package/esm2022/lib/modules/chart.module.mjs +5 -5
  301. package/esm2022/lib/modules/circular-gauge.module.mjs +5 -5
  302. package/esm2022/lib/modules/date.adapter.mjs +3 -3
  303. package/esm2022/lib/modules/datepicker.intl.mjs +5 -5
  304. package/esm2022/lib/modules/dayjs.module.mjs +5 -5
  305. package/esm2022/lib/modules/diagram.module.mjs +5 -5
  306. package/esm2022/lib/modules/gantt.module.mjs +5 -5
  307. package/esm2022/lib/modules/grid.module.mjs +5 -5
  308. package/esm2022/lib/modules/linear-gauge.module.mjs +5 -5
  309. package/esm2022/lib/modules/material.module.mjs +5 -5
  310. package/esm2022/lib/modules/paginator.intl.mjs +5 -5
  311. package/esm2022/lib/modules/pivot.module.mjs +5 -5
  312. package/esm2022/lib/modules/schedule.module.mjs +5 -5
  313. package/esm2022/lib/modules/spreadsheet.module.mjs +5 -5
  314. package/esm2022/lib/modules/stepper.intl.mjs +5 -5
  315. package/esm2022/lib/modules/texteditor.module.mjs +5 -5
  316. package/esm2022/lib/notifications/filter.component.mjs +5 -5
  317. package/esm2022/lib/notifications/notifications-table.component.mjs +5 -5
  318. package/esm2022/lib/notifications/notifications.mobile.component.mjs +5 -5
  319. package/esm2022/lib/notifications/notifications.pane.component.mjs +5 -5
  320. package/esm2022/lib/notifications/notifications.service.mjs +5 -5
  321. package/esm2022/lib/notifications/types/commented.notification.mjs +6 -6
  322. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +6 -6
  323. package/esm2022/lib/notifications/types/escalated.notification.mjs +6 -6
  324. package/esm2022/lib/notifications/types/invite.notification.mjs +6 -6
  325. package/esm2022/lib/notifications/types/liked.notification.mjs +6 -6
  326. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +6 -6
  327. package/esm2022/lib/notifications/types/notification-base.mjs +5 -5
  328. package/esm2022/lib/notifications/types/nudge.notification.mjs +6 -6
  329. package/esm2022/lib/notifications/types/state-changed.notification.mjs +6 -6
  330. package/esm2022/lib/notifications/types/tagged.notification.mjs +6 -6
  331. package/esm2022/lib/notifications/types/text.notification.mjs +6 -6
  332. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +6 -6
  333. package/esm2022/lib/options/options.component.mjs +6 -6
  334. package/esm2022/lib/options/options.service.mjs +5 -5
  335. package/esm2022/lib/reports/arguments-component.mjs +5 -5
  336. package/esm2022/lib/reports/cube/documents.component.mjs +7 -6
  337. package/esm2022/lib/reports/cube/grid-documents.component.mjs +5 -5
  338. package/esm2022/lib/reports/cube/role-performance.component.mjs +7 -6
  339. package/esm2022/lib/reports/cube/table-documents.component.mjs +5 -5
  340. package/esm2022/lib/reports/cube/usage-args.component.mjs +7 -6
  341. package/esm2022/lib/reports/cube/usage-base.mjs +5 -5
  342. package/esm2022/lib/reports/cube/usage-chart.component.mjs +5 -5
  343. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +5 -5
  344. package/esm2022/lib/reports/cube/usage.component.mjs +7 -6
  345. package/esm2022/lib/reports/report-viewer.component.mjs +5 -5
  346. package/esm2022/lib/reports/report.mobile.component.mjs +5 -5
  347. package/esm2022/lib/reports/report.pane.component.mjs +5 -5
  348. package/esm2022/lib/reports/reports-menu.component.mjs +5 -5
  349. package/esm2022/lib/reports/substitution/substitution.component.mjs +6 -5
  350. package/esm2022/lib/reports/table/table-view.component.mjs +4 -4
  351. package/esm2022/lib/reports/tasks/tasks.component.mjs +7 -6
  352. package/esm2022/lib/scheduler/schedule.component.mjs +5 -5
  353. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +5 -5
  354. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +5 -5
  355. package/esm2022/lib/search/cube.component.mjs +7 -6
  356. package/esm2022/lib/search/document.component.mjs +7 -6
  357. package/esm2022/lib/search/guide.component.mjs +5 -5
  358. package/esm2022/lib/search/path.component.mjs +7 -6
  359. package/esm2022/lib/search/search.service.mjs +5 -5
  360. package/esm2022/lib/shared.module.mjs +5 -5
  361. package/esm2022/lib/system.module.mjs +5 -5
  362. package/esm2022/lib/views/cube/chart.component.mjs +7 -6
  363. package/esm2022/lib/views/cube/cube-base.mjs +5 -5
  364. package/esm2022/lib/views/cube/explore.component.mjs +7 -6
  365. package/esm2022/lib/views/cube/matrix.component.mjs +7 -6
  366. package/esm2022/lib/views/cube/parallel.component.mjs +7 -6
  367. package/esm2022/lib/views/cube/pivot.component.mjs +7 -6
  368. package/esm2022/lib/views/cube/sum.component.mjs +7 -6
  369. package/esm2022/lib/views/cube/view.component.mjs +7 -6
  370. package/esm2022/lib/views/timeline/timeline.component.exp.mjs +9 -7
  371. package/esm2022/lib/views/view-item.component.mjs +5 -5
  372. package/esm2022/lib/views/views.component.mjs +5 -5
  373. package/esm2022/lib/views/views.mobile.component.mjs +5 -5
  374. package/esm2022/lib/views/views.pane.component.mjs +5 -5
  375. package/fesm2022/bizdoc-core.mjs +1718 -1709
  376. package/fesm2022/bizdoc-core.mjs.map +1 -1
  377. package/lib/compose/form.component.d.ts +4 -2
  378. package/lib/core/fields/switch.field.d.ts +1 -0
  379. package/lib/core/fields/yesno.field.d.ts +1 -1
  380. package/lib/modules/date.adapter.d.ts +1 -2
  381. package/package.json +14 -14
@@ -180,8 +180,8 @@ export class TypeAutocomplete {
180
180
  this.textChange.complete();
181
181
  this.optionSelected.complete();
182
182
  }
183
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TypeAutocomplete, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.FocusMonitor }, { token: i0.ElementRef }, { token: i3.SessionService }, { token: i4.DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
184
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TypeAutocomplete, selector: "bizdoc-autocomplete", inputs: { _type: ["type", "_type"], placeholder: "placeholder", text: "text", required: "required", disabled: "disabled", value: "value", minimumChars: "minimumChars", textFormControlName: "textFormControlName", textFormControl: "textFormControl" }, outputs: { textChange: "textChange", optionSelected: "optionSelected" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" }, classAttribute: "row" }, providers: [{ provide: MatFormFieldControl, useExisting: TypeAutocomplete }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger, static: true }], ngImport: i0, template: `<input matInput [matAutocomplete]="auto" [placeholder]="placeholder" [formControl]="_control" #input
183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TypeAutocomplete, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.FocusMonitor }, { token: i0.ElementRef }, { token: i3.SessionService }, { token: i4.DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
184
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TypeAutocomplete, selector: "bizdoc-autocomplete", inputs: { _type: ["type", "_type"], placeholder: "placeholder", text: "text", required: "required", disabled: "disabled", value: "value", minimumChars: "minimumChars", textFormControlName: "textFormControlName", textFormControl: "textFormControl" }, outputs: { textChange: "textChange", optionSelected: "optionSelected" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" }, classAttribute: "row" }, providers: [{ provide: MatFormFieldControl, useExisting: TypeAutocomplete }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger, static: true }], ngImport: i0, template: `<input matInput [matAutocomplete]="auto" [placeholder]="placeholder" [formControl]="_control" #input
185
185
  (focus)="_onFocus()" (blur)="_onBlur()" [disabled]="disabled" [required]="required"/>
186
186
  <mat-autocomplete #auto (optionSelected)="_optionSelected($event)" [displayWith]='displayFn'>
187
187
  <mat-option *ngFor="let v of _items$ | async" [value]="v">
@@ -189,9 +189,9 @@ export class TypeAutocomplete {
189
189
  <span *ngIf="_column">{{v.value[_column.name]}}</span>
190
190
  </mat-option>
191
191
  </mat-autocomplete>
192
- <button mat-icon-button matSuffix (click)="clear()" *ngIf="_control.value"><mat-icon>close</mat-icon></button>`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
192
+ <button mat-icon-button matSuffix (click)="clear()" *ngIf="_control.value"><mat-icon>close</mat-icon></button>`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
193
193
  }
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TypeAutocomplete, decorators: [{
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TypeAutocomplete, decorators: [{
195
195
  type: Component,
196
196
  args: [{
197
197
  selector: 'bizdoc-autocomplete',
@@ -211,11 +211,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
211
211
  '[attr.aria-describedby]': 'describedBy'
212
212
  },
213
213
  }]
214
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
214
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
215
215
  type: Optional
216
216
  }, {
217
217
  type: Self
218
- }] }, { type: i2.FocusMonitor }, { type: i0.ElementRef }, { type: i3.SessionService }, { type: i4.DatasourceService }]; }, propDecorators: { inputElement: [{
218
+ }] }, { type: i2.FocusMonitor }, { type: i0.ElementRef }, { type: i3.SessionService }, { type: i4.DatasourceService }], propDecorators: { inputElement: [{
219
219
  type: ViewChild,
220
220
  args: ['input', { static: true }]
221
221
  }], trigger: [{
@@ -253,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
253
253
  }], textFormControl: [{
254
254
  type: Input
255
255
  }] } });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvYXV0by1jb21wbGV0ZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBc0IsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFtQyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFnQyxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBbUJsRCxNQUFNLE9BQ0UsZ0JBQWdCO0lBQ3RCLEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO2FBQ2MsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBaUIxQixJQUFhLFdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxHQUFXO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FB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Ozs7O21IQVF1RztvQkFDakgsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxLQUFLO3dCQUNaLGtCQUFrQixFQUFFLGtCQUFrQjt3QkFDdEMseUJBQXlCLEVBQUUsYUFBYTtxQkFDekM7aUJBQ0Y7OzBCQWtKYyxRQUFROzswQkFBSSxJQUFJOzZKQWhJUyxZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2dDLE9BQU87c0JBQTFFLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQzFDLEVBQUU7c0JBQXpCLFdBQVc7Z0JBQ0csS0FBSztzQkFBbkIsS0FBSzt1QkFBQyxNQUFNO2dCQUVBLFdBQVc7c0JBQXZCLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQUNhLFVBQVU7c0JBQTVCLE1BQU07Z0JBQ1ksY0FBYztzQkFBaEMsTUFBTTtnQkF1QkgsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFLekIsUUFBUTtzQkFEWCxLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSztnQkFjZ0MsV0FBVztzQkFBaEQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBeUJ2QixLQUFLO3NCQUFqQixLQUFLO2dCQVFPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBc0JPLG1CQUFtQjtzQkFBL0IsS0FBSztnQkFHTyxlQUFlO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBIb3N0QmluZGluZywgT3B0aW9uYWwsIFNlbGYsIE9uSW5pdCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRG9DaGVjayB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBzd2l0Y2hNYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gJy4uL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFR5cGUsIEZpZWxkSW5mbyB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWF1dG9jb21wbGV0ZScsXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogVHlwZUF1dG9jb21wbGV0ZSB9XSxcclxuICB0ZW1wbGF0ZTogYDxpbnB1dCBtYXRJbnB1dCBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiX2NvbnRyb2xcIiAjaW5wdXRcclxuICAgIChmb2N1cyk9XCJfb25Gb2N1cygpXCIgKGJsdXIpPVwiX29uQmx1cigpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIvPlxyXG4gICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG8gKG9wdGlvblNlbGVjdGVkKT1cIl9vcHRpb25TZWxlY3RlZCgkZXZlbnQpXCIgW2Rpc3BsYXlXaXRoXT0nZGlzcGxheUZuJz5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHYgb2YgX2l0ZW1zJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInZcIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFfY29sdW1uXCI+e3t2LnZhbHVlfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJfY29sdW1uXCI+e3t2LnZhbHVlW19jb2x1bW4ubmFtZV19fTwvc3Bhbj5cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJjbGVhcigpXCIgKm5nSWY9XCJfY29udHJvbC52YWx1ZVwiPjxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+PC9idXR0b24+YCxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3JvdycsXHJcbiAgICAnW2NsYXNzLmZsb2F0aW5nXSc6ICdzaG91bGRMYWJlbEZsb2F0JyxcclxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcclxuICB9LFxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBUeXBlQXV0b2NvbXBsZXRlIGltcGxlbWVudHMgTWF0Rm9ybUZpZWxkQ29udHJvbDxzdHJpbmc+LCBEb0NoZWNrLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBPbkluaXQge1xyXG4gIGZvY3VzKCkge1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3ZhbHVlPzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX29uQ2hhbmdlOiBhbnk7XHJcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkOiBhbnk7XHJcbiAgcmVhZG9ubHkgX2NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIF9pdGVtcyQ6IE9ic2VydmFibGU8S2V5VmFsdWVbXT47XHJcbiAgX2NvbHVtbjogRmllbGRJbmZvO1xyXG4gIHByaXZhdGUgX2NvbmZpZ3VyYXRpb246IFR5cGU7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KSB0cmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIEBIb3N0QmluZGluZygpIHJlYWRvbmx5IGlkID0gYHR5cGUtYXV0by1jb21wbGV0ZS0ke1R5cGVBdXRvY29tcGxldGUubmV4dElkKyt9YDtcclxuICBASW5wdXQoJ3R5cGUnKSBfdHlwZSE6IHN0cmluZztcclxuICBwcml2YXRlIF90ZXh0Rm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG4gIEBJbnB1dCgpIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xyXG4gIH1cclxuICBzZXQgcGxhY2Vob2xkZXIocGxoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHRleHRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgb3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQ+KCk7XHJcbiAgZGlzcGxheUZuID0gKGl0ZW06IHsgdmFsdWU6IGFueSB9KSA9PiB7XHJcbiAgICBpZiAoIWl0ZW0pXHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoIWlzT2JqZWN0KGl0ZW0udmFsdWUpKVxyXG4gICAgICByZXR1cm4gaXRlbS52YWx1ZTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgbmFtZSA9IE9iamVjdC5rZXlzKGl0ZW0udmFsdWUpWzBdO1xyXG4gICAgICByZXR1cm4gaXRlbS52YWx1ZVtuYW1lXTtcclxuICAgIH1cclxuICB9XHJcbiAgX29wdGlvblNlbGVjdGVkKGU6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgdmFsdWUsIGtleSB9ID0gZS5vcHRpb24udmFsdWUgYXMgS2V5VmFsdWUgfHwge307XHJcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5fY29sdW1uID8gdmFsdWVbdGhpcy5fY29sdW1uLm5hbWVdIDogdmFsdWU7XHJcbiAgICB0aGlzLl92YWx1ZSA9IGtleTtcclxuICAgIHRoaXMuX3RleHRGb3JtQ29udHJvbCAmJiB0aGlzLl90ZXh0Rm9ybUNvbnRyb2wuc2V0VmFsdWUodGV4dCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy50ZXh0Q2hhbmdlLmVtaXQodGV4dCk7XHJcbiAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoeyB2YWx1ZToga2V5LCB0ZXh0IH0pO1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2Uoa2V5KTtcclxuICB9XHJcbiAgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHsgcmV0dXJuICF0aGlzLl9jb250cm9sLnZhbHVlIHx8IHRoaXMuX2NvbnRyb2wudmFsdWUgPT09ICcnOyB9XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXHJcbiAgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcclxuICB9XHJcbiAgc2V0IHJlcXVpcmVkKHJlcTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxKTtcclxuICAgIGlmICh0aGlzLl9yZXF1aXJlZClcclxuICAgICAgdGhpcy5fY29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9jb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5fY29udHJvbC5kaXNhYmxlZCAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKVxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5fY29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgZXJyb3JTdGF0ZSA9IGZhbHNlO1xyXG4gIGNvbnRyb2xUeXBlPzogc3RyaW5nID0gJ2JpemRvYy10eXBlLWF1dG8tY29tcGxldGUnO1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgZGVzY3JpYmVkQnkgPSAnJztcclxuXHJcbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XHJcbiAgfVxyXG4gIG9uQ29udGFpbmVyQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB0aGlzLnRyaWdnZXIub3BlblBhbmVsKCk7XHJcbiAgfVxyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy5fc2V0VmFsdWUobnVsbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShudWxsKTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0VmFsdWUob2JqLCBmYWxzZSk7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuICBASW5wdXQoKSBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZSh2YWwsIHRydWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9taW5pbXVtQ2hhcnMgPSAxO1xyXG4gIEBJbnB1dCgpIHNldCBtaW5pbXVtQ2hhcnModmFsOiBudW1iZXIpIHsgdGhpcy5fbWluaW11bUNoYXJzID0gdmFsOyB9XHJcbiAgcHJpdmF0ZSBfc2V0VmFsdWUodmFsOiBzdHJpbmcsIGVtaXRFdmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWw7XHJcbiAgICAvL2lmICh2YWwpXHJcbiAgICAvL3RoaXMuc2VydmljZS5nZXQodGhpcy5zb3VyY2UsIHZhbCkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgLy99KTtcclxuICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUodmFsID8geyBrZXk6IHZhbCwgdmFsdWU6IHRoaXMudGV4dCB8fCB2YWwgfSA6IHZhbCwgeyBlbWl0RXZlbnQgfSk7XHJcbiAgfVxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLmVycm9yU3RhdGUgPSB0aGlzLm5nQ29udHJvbC5pbnZhbGlkICYmIHRoaXMubmdDb250cm9sLnRvdWNoZWQ7XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9vbkZvY3VzKCkge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcclxuICB9XHJcbiAgX29uQmx1cigpIHtcclxuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdGV4dEZvcm1Db250cm9sTmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGV4dEZvcm1Db250cm9sID0gKCh0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sKS5wYXJlbnQpLmNvbnRyb2xzW3ZhbF0gYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCB0ZXh0Rm9ybUNvbnRyb2wodmFsOiBGb3JtQ29udHJvbCkge1xyXG4gICAgdGhpcy5fdGV4dEZvcm1Db250cm9sID0gdmFsO1xyXG4gIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgcHJpdmF0ZSBfZm06IEZvY3VzTW9uaXRvciwgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSwgcHJpdmF0ZSBfc2VydmljZTogRGF0YXNvdXJjZVNlcnZpY2UpIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gICAgX2ZtLm1vbml0b3IoX2VsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS50eXBlcy5maW5kKHQgPT4gdC5uYW1lID09PSB0aGlzLl90eXBlKTtcclxuICAgIGlmICghdGhpcy5fY29uZmlndXJhdGlvbilcclxuICAgICAgdGhyb3cgYCR7dGhpcy5fdHlwZX0gaXMgbm90IGEga25vd24gdHlwZS5gO1xyXG4gICAgdGhpcy5fY29sdW1uID0gdGhpcy5fY29uZmlndXJhdGlvbi5jb2x1bW5zID8gdGhpcy5fY29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoYyA9PiAhYy5mbGFnc3x8Yy5mbGFncy5pbmRleE9mKCdLZXknKSA8IDApIDogbnVsbDtcclxuICAgIHRoaXMuX2l0ZW1zJCA9IHRoaXMuX2NvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgIGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpICYmIHYubGVuZ3RoID4gdGhpcy5fbWluaW11bUNoYXJzKSxcclxuICAgICAgc3dpdGNoTWFwKHYgPT5cclxuICAgICAgICB0aGlzLl9zZXJ2aWNlLmFsbCh0aGlzLl90eXBlLCB2KSkpO1xyXG4gICAgdGhpcy5fY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmVycm9yU3RhdGUgPSB0aGlzLl9jb250cm9sLmVycm9ycyAhPSBudWxsO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB2YWwgPSB0aGlzLnZhbHVlO1xyXG4gICAgaWYgKHZhbClcclxuICAgICAgdGhpcy5fc2VydmljZS5nZXQodGhpcy5fdHlwZSwgdmFsKS5zdWJzY3JpYmUodiA9PlxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUoeyBrZXk6IHZhbCwgdmFsdWU6IHYgfHwgdmFsIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9mbS5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnRleHRDaGFuZ2UuY29tcGxldGUoKTtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIEtleVZhbHVlIHsga2V5OiBhbnksIHZhbHVlOiBhbnkgfVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IHtcclxuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgdmFsdWU6IGFueTtcclxufVxyXG4iXX0=
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvYXV0by1jb21wbGV0ZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBc0IsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFtQyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFnQyxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBbUJsRCxNQUFNLE9BQ0UsZ0JBQWdCO0lBQ3RCLEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO2FBQ2MsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBaUIxQixJQUFhLFdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxHQUFXO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FB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Ozs7O21IQVF1RztvQkFDakgsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxLQUFLO3dCQUNaLGtCQUFrQixFQUFFLGtCQUFrQjt3QkFDdEMseUJBQXlCLEVBQUUsYUFBYTtxQkFDekM7aUJBQ0Y7OzBCQWtKYyxRQUFROzswQkFBSSxJQUFJOzBKQWhJUyxZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2dDLE9BQU87c0JBQTFFLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQzFDLEVBQUU7c0JBQXpCLFdBQVc7Z0JBQ0csS0FBSztzQkFBbkIsS0FBSzt1QkFBQyxNQUFNO2dCQUVBLFdBQVc7c0JBQXZCLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQUNhLFVBQVU7c0JBQTVCLE1BQU07Z0JBQ1ksY0FBYztzQkFBaEMsTUFBTTtnQkF1QkgsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFLekIsUUFBUTtzQkFEWCxLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSztnQkFjZ0MsV0FBVztzQkFBaEQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBeUJ2QixLQUFLO3NCQUFqQixLQUFLO2dCQVFPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBc0JPLG1CQUFtQjtzQkFBL0IsS0FBSztnQkFHTyxlQUFlO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBIb3N0QmluZGluZywgT3B0aW9uYWwsIFNlbGYsIE9uSW5pdCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRG9DaGVjayB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBzd2l0Y2hNYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gJy4uL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFR5cGUsIEZpZWxkSW5mbyB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWF1dG9jb21wbGV0ZScsXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogVHlwZUF1dG9jb21wbGV0ZSB9XSxcclxuICB0ZW1wbGF0ZTogYDxpbnB1dCBtYXRJbnB1dCBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiX2NvbnRyb2xcIiAjaW5wdXRcclxuICAgIChmb2N1cyk9XCJfb25Gb2N1cygpXCIgKGJsdXIpPVwiX29uQmx1cigpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIvPlxyXG4gICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG8gKG9wdGlvblNlbGVjdGVkKT1cIl9vcHRpb25TZWxlY3RlZCgkZXZlbnQpXCIgW2Rpc3BsYXlXaXRoXT0nZGlzcGxheUZuJz5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHYgb2YgX2l0ZW1zJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInZcIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFfY29sdW1uXCI+e3t2LnZhbHVlfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJfY29sdW1uXCI+e3t2LnZhbHVlW19jb2x1bW4ubmFtZV19fTwvc3Bhbj5cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJjbGVhcigpXCIgKm5nSWY9XCJfY29udHJvbC52YWx1ZVwiPjxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+PC9idXR0b24+YCxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3JvdycsXHJcbiAgICAnW2NsYXNzLmZsb2F0aW5nXSc6ICdzaG91bGRMYWJlbEZsb2F0JyxcclxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcclxuICB9LFxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBUeXBlQXV0b2NvbXBsZXRlIGltcGxlbWVudHMgTWF0Rm9ybUZpZWxkQ29udHJvbDxzdHJpbmc+LCBEb0NoZWNrLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBPbkluaXQge1xyXG4gIGZvY3VzKCkge1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3ZhbHVlPzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX29uQ2hhbmdlOiBhbnk7XHJcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkOiBhbnk7XHJcbiAgcmVhZG9ubHkgX2NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIF9pdGVtcyQ6IE9ic2VydmFibGU8S2V5VmFsdWVbXT47XHJcbiAgX2NvbHVtbjogRmllbGRJbmZvO1xyXG4gIHByaXZhdGUgX2NvbmZpZ3VyYXRpb246IFR5cGU7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KSB0cmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIEBIb3N0QmluZGluZygpIHJlYWRvbmx5IGlkID0gYHR5cGUtYXV0by1jb21wbGV0ZS0ke1R5cGVBdXRvY29tcGxldGUubmV4dElkKyt9YDtcclxuICBASW5wdXQoJ3R5cGUnKSBfdHlwZSE6IHN0cmluZztcclxuICBwcml2YXRlIF90ZXh0Rm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG4gIEBJbnB1dCgpIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xyXG4gIH1cclxuICBzZXQgcGxhY2Vob2xkZXIocGxoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHRleHRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgb3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQ+KCk7XHJcbiAgZGlzcGxheUZuID0gKGl0ZW06IHsgdmFsdWU6IGFueSB9KSA9PiB7XHJcbiAgICBpZiAoIWl0ZW0pXHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoIWlzT2JqZWN0KGl0ZW0udmFsdWUpKVxyXG4gICAgICByZXR1cm4gaXRlbS52YWx1ZTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgbmFtZSA9IE9iamVjdC5rZXlzKGl0ZW0udmFsdWUpWzBdO1xyXG4gICAgICByZXR1cm4gaXRlbS52YWx1ZVtuYW1lXTtcclxuICAgIH1cclxuICB9XHJcbiAgX29wdGlvblNlbGVjdGVkKGU6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgdmFsdWUsIGtleSB9ID0gZS5vcHRpb24udmFsdWUgYXMgS2V5VmFsdWUgfHwge307XHJcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5fY29sdW1uID8gdmFsdWVbdGhpcy5fY29sdW1uLm5hbWVdIDogdmFsdWU7XHJcbiAgICB0aGlzLl92YWx1ZSA9IGtleTtcclxuICAgIHRoaXMuX3RleHRGb3JtQ29udHJvbCAmJiB0aGlzLl90ZXh0Rm9ybUNvbnRyb2wuc2V0VmFsdWUodGV4dCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy50ZXh0Q2hhbmdlLmVtaXQodGV4dCk7XHJcbiAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoeyB2YWx1ZToga2V5LCB0ZXh0IH0pO1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2Uoa2V5KTtcclxuICB9XHJcbiAgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHsgcmV0dXJuICF0aGlzLl9jb250cm9sLnZhbHVlIHx8IHRoaXMuX2NvbnRyb2wudmFsdWUgPT09ICcnOyB9XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXHJcbiAgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcclxuICB9XHJcbiAgc2V0IHJlcXVpcmVkKHJlcTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxKTtcclxuICAgIGlmICh0aGlzLl9yZXF1aXJlZClcclxuICAgICAgdGhpcy5fY29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9jb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5fY29udHJvbC5kaXNhYmxlZCAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKVxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5fY29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgZXJyb3JTdGF0ZSA9IGZhbHNlO1xyXG4gIGNvbnRyb2xUeXBlPzogc3RyaW5nID0gJ2JpemRvYy10eXBlLWF1dG8tY29tcGxldGUnO1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgZGVzY3JpYmVkQnkgPSAnJztcclxuXHJcbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XHJcbiAgfVxyXG4gIG9uQ29udGFpbmVyQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB0aGlzLnRyaWdnZXIub3BlblBhbmVsKCk7XHJcbiAgfVxyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy5fc2V0VmFsdWUobnVsbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShudWxsKTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0VmFsdWUob2JqLCBmYWxzZSk7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuICBASW5wdXQoKSBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZSh2YWwsIHRydWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9taW5pbXVtQ2hhcnMgPSAxO1xyXG4gIEBJbnB1dCgpIHNldCBtaW5pbXVtQ2hhcnModmFsOiBudW1iZXIpIHsgdGhpcy5fbWluaW11bUNoYXJzID0gdmFsOyB9XHJcbiAgcHJpdmF0ZSBfc2V0VmFsdWUodmFsOiBzdHJpbmcsIGVtaXRFdmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWw7XHJcbiAgICAvL2lmICh2YWwpXHJcbiAgICAvL3RoaXMuc2VydmljZS5nZXQodGhpcy5zb3VyY2UsIHZhbCkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgLy99KTtcclxuICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUodmFsID8geyBrZXk6IHZhbCwgdmFsdWU6IHRoaXMudGV4dCB8fCB2YWwgfSA6IHZhbCwgeyBlbWl0RXZlbnQgfSk7XHJcbiAgfVxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLmVycm9yU3RhdGUgPSB0aGlzLm5nQ29udHJvbC5pbnZhbGlkICYmIHRoaXMubmdDb250cm9sLnRvdWNoZWQ7XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9vbkZvY3VzKCkge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcclxuICB9XHJcbiAgX29uQmx1cigpIHtcclxuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdGV4dEZvcm1Db250cm9sTmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGV4dEZvcm1Db250cm9sID0gKCh0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sKS5wYXJlbnQpLmNvbnRyb2xzW3ZhbF0gYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCB0ZXh0Rm9ybUNvbnRyb2wodmFsOiBGb3JtQ29udHJvbCkge1xyXG4gICAgdGhpcy5fdGV4dEZvcm1Db250cm9sID0gdmFsO1xyXG4gIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgcHJpdmF0ZSBfZm06IEZvY3VzTW9uaXRvciwgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSwgcHJpdmF0ZSBfc2VydmljZTogRGF0YXNvdXJjZVNlcnZpY2UpIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gICAgX2ZtLm1vbml0b3IoX2VsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS50eXBlcy5maW5kKHQgPT4gdC5uYW1lID09PSB0aGlzLl90eXBlKTtcclxuICAgIGlmICghdGhpcy5fY29uZmlndXJhdGlvbilcclxuICAgICAgdGhyb3cgYCR7dGhpcy5fdHlwZX0gaXMgbm90IGEga25vd24gdHlwZS5gO1xyXG4gICAgdGhpcy5fY29sdW1uID0gdGhpcy5fY29uZmlndXJhdGlvbi5jb2x1bW5zID8gdGhpcy5fY29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoYyA9PiAhYy5mbGFnc3x8Yy5mbGFncy5pbmRleE9mKCdLZXknKSA8IDApIDogbnVsbDtcclxuICAgIHRoaXMuX2l0ZW1zJCA9IHRoaXMuX2NvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgIGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpICYmIHYubGVuZ3RoID4gdGhpcy5fbWluaW11bUNoYXJzKSxcclxuICAgICAgc3dpdGNoTWFwKHYgPT5cclxuICAgICAgICB0aGlzLl9zZXJ2aWNlLmFsbCh0aGlzLl90eXBlLCB2KSkpO1xyXG4gICAgdGhpcy5fY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmVycm9yU3RhdGUgPSB0aGlzLl9jb250cm9sLmVycm9ycyAhPSBudWxsO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB2YWwgPSB0aGlzLnZhbHVlO1xyXG4gICAgaWYgKHZhbClcclxuICAgICAgdGhpcy5fc2VydmljZS5nZXQodGhpcy5fdHlwZSwgdmFsKS5zdWJzY3JpYmUodiA9PlxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUoeyBrZXk6IHZhbCwgdmFsdWU6IHYgfHwgdmFsIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9mbS5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnRleHRDaGFuZ2UuY29tcGxldGUoKTtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIEtleVZhbHVlIHsga2V5OiBhbnksIHZhbHVlOiBhbnkgfVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IHtcclxuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgdmFsdWU6IGFueTtcclxufVxyXG4iXX0=
@@ -151,13 +151,13 @@ export class CombinationPickerBody {
151
151
  this.selectionChange.complete();
152
152
  this.modeChange.complete();
153
153
  }
154
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CombinationPickerBody, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: COMBINATION_PICKER_BODY, optional: true }, { token: i1.FormBuilder }, { token: i2.PromptService }, { token: i3.CubeInfo }, { token: i4.DatasourceService }, { token: i0.ChangeDetectorRef }, { token: i5.SessionService }, { token: i6.CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CombinationPickerBody, selector: "bizdoc-combination-picker-body", viewQueries: [{ propertyName: "axes", predicate: MatSelect, descendants: true }], ngImport: i0, template: "<div [ngSwitch]=\"mode\" class=\"account-picker-popup\" cdkTrapFocus>\r\n <!--[@transformPanel]=\"enter\"-->\r\n <ng-container *ngSwitchCase=\"'filter'\">\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n <mat-form-field *ngFor=\"let a of _axes; let i = index\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n <mat-option *ngIf=\"_keys[a.name].length>1\">{{'All'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let key of _keys[a.name]\" [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <!-- results -->\r\n <ng-container *ngSwitchCase=\"'results'\">\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n <mat-list-item *ngFor=\"let codes of _combinations\" (click)=\"_select(codes)\">\r\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\r\n <p matListItemLine *ngIf=\"_explorable\"><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n </mat-list-item>\r\n </mat-action-list>\r\n </ng-container>\r\n</div>\r\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:50%;padding:0 5px 5px 0}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i9.MatActionList, selector: "mat-action-list", exportAs: ["matActionList"] }, { kind: "component", type: i9.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i9.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i9.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "directive", type: i11.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] }); }
154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: CombinationPickerBody, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: COMBINATION_PICKER_BODY, optional: true }, { token: i1.FormBuilder }, { token: i2.PromptService }, { token: i3.CubeInfo }, { token: i4.DatasourceService }, { token: i0.ChangeDetectorRef }, { token: i5.SessionService }, { token: i6.CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
155
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: CombinationPickerBody, selector: "bizdoc-combination-picker-body", viewQueries: [{ propertyName: "axes", predicate: MatSelect, descendants: true }], ngImport: i0, template: "<div [ngSwitch]=\"mode\" class=\"account-picker-popup\" cdkTrapFocus>\r\n <!--[@transformPanel]=\"enter\"-->\r\n <ng-container *ngSwitchCase=\"'filter'\">\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n <mat-form-field *ngFor=\"let a of _axes; let i = index\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n <mat-option *ngIf=\"_keys[a.name].length>1\">{{'All'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let key of _keys[a.name]\" [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <!-- results -->\r\n <ng-container *ngSwitchCase=\"'results'\">\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n <mat-list-item *ngFor=\"let codes of _combinations\" (click)=\"_select(codes)\">\r\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\r\n <p matListItemLine *ngIf=\"_explorable\"><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n </mat-list-item>\r\n </mat-action-list>\r\n </ng-container>\r\n</div>\r\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:50%;padding:0 5px 5px 0}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i9.MatActionList, selector: "mat-action-list", exportAs: ["matActionList"] }, { kind: "component", type: i9.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i9.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i9.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "directive", type: i11.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "aria-describedby", "panelClass", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] }); }
156
156
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CombinationPickerBody, decorators: [{
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: CombinationPickerBody, decorators: [{
158
158
  type: Component,
159
159
  args: [{ selector: 'bizdoc-combination-picker-body', template: "<div [ngSwitch]=\"mode\" class=\"account-picker-popup\" cdkTrapFocus>\r\n <!--[@transformPanel]=\"enter\"-->\r\n <ng-container *ngSwitchCase=\"'filter'\">\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n <mat-form-field *ngFor=\"let a of _axes; let i = index\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n <mat-option *ngIf=\"_keys[a.name].length>1\">{{'All'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let key of _keys[a.name]\" [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <!-- results -->\r\n <ng-container *ngSwitchCase=\"'results'\">\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n <mat-list-item *ngFor=\"let codes of _combinations\" (click)=\"_select(codes)\">\r\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\r\n <p matListItemLine *ngIf=\"_explorable\"><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n </mat-list-item>\r\n </mat-action-list>\r\n </ng-container>\r\n</div>\r\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:50%;padding:0 5px 5px 0}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"] }]
160
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
160
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
161
161
  type: Optional
162
162
  }, {
163
163
  type: Inject,
@@ -167,8 +167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
167
167
  }, {
168
168
  type: Inject,
169
169
  args: [COMBINATION_PICKER_BODY]
170
- }] }, { type: i1.FormBuilder }, { type: i2.PromptService }, { type: i3.CubeInfo }, { type: i4.DatasourceService }, { type: i0.ChangeDetectorRef }, { type: i5.SessionService }, { type: i6.CubeService }]; }, propDecorators: { axes: [{
170
+ }] }, { type: i1.FormBuilder }, { type: i2.PromptService }, { type: i3.CubeInfo }, { type: i4.DatasourceService }, { type: i0.ChangeDetectorRef }, { type: i5.SessionService }, { type: i6.CubeService }], propDecorators: { axes: [{
171
171
  type: ViewChildren,
172
172
  args: [MatSelect]
173
173
  }] } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9jb21iaW5hdGlvbi1waWNrZXItYm9keS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBRXpKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQXNCLGtCQUFrQixDQUFDLENBQUM7QUErQm5HLE1BQU07QUFNTixNQUFNLE9BQU8scUJBQXFCO0lBZWhDLFlBQ3VDLFVBQStCLEVBQ3ZCLFdBQWdDLEVBQ3JFLEdBQWdCLEVBQ2hCLFNBQXdCLEVBQ3hCLFlBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLFFBQXdCLEVBQ3hCLFFBQXFCO1FBTnJCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDaEIsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixhQUFRLEdBQVIsUUFBUSxD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ZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0EzSVUscUJBQXFCLGtCQWdCVixlQUFlLDZCQUNmLHVCQUF1QjttR0FqQmxDLHFCQUFxQiwrRkFJbEIsU0FBUyxnREN0RHpCLHV2REFrQ0E7OzRGRGdCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFvQnZDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUJBQXVCO2dQQWJwQixJQUFJO3NCQUE1QixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIEluamVjdCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQ3ViZUF4aXMsIEN1YmUgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlSW5mbyB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUtaW5mby5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1bVNldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2N1YmUvbWF0cml4L3RhYmxlLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZID0gbmV3IEluamVjdGlvblRva2VuPENvbWJpbmF0aW9uQm9keURhdGE+KCdjb21iaW5hdGlvbl9ib2R5Jyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbWJpbmF0aW9uQm9keURhdGEge1xyXG4gIGN1YmU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIGxpbWl0OiBudW1iZXI7XHJcbiAgZGl2aWRlcjogc3RyaW5nO1xyXG4gIGRpc3BsYXlEaXZpZGVyOiBzdHJpbmc7XHJcbiAgZXhwbG9yZVNldHRpbmdzOiBFeHBsb3JlU2V0dGluZ3M7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZVNldHRpbmdzIHtcclxuICBlbmFibGU/OiBib29sZWFuO1xyXG4gIC8qKiBjdWJlIHZpZXcgbmFtZSAqL1xyXG4gIHZpZXc/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdHM/OiB7XHJcbiAgICBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcik7XHJcbiAgfTtcclxuICBpbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgLyoqIG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICBmaWx0ZXJzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgeEF4aXM6IHN0cmluZztcclxuICBzZXJpZXM6IHN0cmluZztcclxuICBzdW0/OiBTdW1TZXR0aW5ncyB8IFN1bVNldHRpbmdzW10sXHJcbiAgLyoqICovXHJcbiAgYWdncmVnYXRlPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgc2VyaWVzVG90YWxMYWJlbD86IHN0cmluZztcclxuICB4QXhpc1RvdGFsTGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE1vZGUgPSAnZmlsdGVyJyB8ICdyZXN1bHRzJztcclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWNvbWJpbmF0aW9uLXBpY2tlci1ib2R5JyxcclxuICB0ZW1wbGF0ZVVybDogJ2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb21iaW5hdGlvbi1waWNrZXItYm9keS5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbWJpbmF0aW9uUGlja2VyQm9keSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudD4oKTtcclxuICByZWFkb25seSBtb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RlPigpO1xyXG4gIG1vZGU6IE1vZGU7XHJcbiAgQFZpZXdDaGlsZHJlbihNYXRTZWxlY3QpIGF4ZXM6IFF1ZXJ5TGlzdDxNYXRTZWxlY3Q+O1xyXG4gIHJlYWRvbmx5IF9leHBsb3JhYmxlOiBib29sZWFuO1xyXG4gIF93b3JraW5nID0gZmFsc2U7XHJcbiAgcmVhZG9ubHkgX2F4ZXM6IEN1YmVBeGlzW107XHJcbiAgcmVhZG9ubHkgX2Zvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgX2tleXM6IHsgW3R5cGU6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpW10gfSA9IHt9O1xyXG4gIHJlYWRvbmx5IF92YWx1ZXM6IHsgW3R5cGU6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB7IFtrZXk6IG51bWJlcl06IGFueSB9IH0gPSB7fTtcclxuICBfY29tYmluYXRpb25zOiBzdHJpbmdbXVtdO1xyXG4gIHByaXZhdGUgX2RhdGE6IENvbWJpbmF0aW9uQm9keURhdGE7XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkaWFsb2dEYXRhOiBDb21iaW5hdGlvbkJvZHlEYXRhLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDT01CSU5BVElPTl9QSUNLRVJfQk9EWSkgb3ZlcmxheURhdGE6IENvbWJpbmF0aW9uQm9keURhdGEsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zbmFja2JhcjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRJbmZvOiBDdWJlSW5mbyxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuX2RhdGEgPSBvdmVybGF5RGF0YSB8fCBkaWFsb2dEYXRhO1xyXG4gICAgY29uc3QgeyBjdWJlLCBleHBsb3JlU2V0dGluZ3MgfSA9IHRoaXMuX2RhdGE7XHJcbiAgICB0aGlzLl9leHBsb3JhYmxlID0gZXhwbG9yZVNldHRpbmdzICE9PSB1bmRlZmluZWQ7XHJcbiAgICBpZiAoY3ViZSlcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIGlmICghdGhpcy5fY3ViZSkgdGhyb3cgJ05vIGN1YmUnO1xyXG4gICAgdGhpcy5fYXhlcyA9IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiBhLmNvbWJpbmF0aW9uKTtcclxuICAgIGlmICghdGhpcy5fYXhlcy5sZW5ndGgpIHRocm93ICdObyBheGlzIHdpdGggY29tYmluYXRpb24nO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgICAgIHRoaXMuX2tleXNbYS5uYW1lXSA9IFtdO1xyXG4gICAgICB0aGlzLl9mb3JtLmFkZENvbnRyb2woYS5uYW1lLCBjb250cm9sKTtcclxuICAgICAgdGhpcy5fZHMubWFwKGEuZGF0YVR5cGUpLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgICB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV0gPSBtO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLl9rZXlzW2EubmFtZV0gPSBPYmplY3Qua2V5cyhtKTtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPT09IDEpIGNvbnRyb2wuc2V0VmFsdWUoa2V5c1swXSk7XHJcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuX2RhdGEudmFsdWUgJiYgdGhpcy5fcGF0Y2hGb3JtKHRoaXMuX2RhdGEudmFsdWUpO1xyXG4gICAgdGhpcy5fc3dpdGNoTW9kZSgnZmlsdGVyJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcGF0Y2hGb3JtKGNvZGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgY29kZXMgPSBjb2RlLnNwbGl0KHRoaXMuX2RhdGEuZGl2aWRlciksXHJcbiAgICAgIHZhbHVlcyA9IHt9O1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKChhLCBpKSA9PiBjb2Rlc1tpXSAmJiAodmFsdWVzW2EubmFtZV0gPSBjb2Rlc1tpXSkpO1xyXG4gICAgdGhpcy5fZm9ybS5wYXRjaFZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB2YWxcclxuICAgKi9cclxuICBfc3dpdGNoTW9kZSh2YWw6IE1vZGUpIHtcclxuICAgIHRoaXMubW9kZSA9IHZhbDtcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PT0gJ2ZpbHRlcicpIHRoaXMuYXhlcy5maXJzdC5mb2N1cygpO1xyXG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9LCAwKVxyXG4gIH1cclxuICAvKipcclxuICAgKiBmaWx0ZXIgKi9cclxuICBfZmlsdGVyKCkge1xyXG4gICAgdGhpcy5fd29ya2luZyA9IHRydWU7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl9mb3JtLnZhbHVlLCBhcmdzID0ge307XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goYSA9PiB2YWx1ZXNbYS5uYW1lXSAmJiAoYXJnc1thLm5hbWVdID0gdmFsdWVzW2EubmFtZV0pKTtcclxuICAgIHRoaXMuX3NlcnZpY2UuY29tYmluYXRpb25zKHRoaXMuX2N1YmUubmFtZSwgYXJncywgeyB0YWtlOiB0aGlzLl9kYXRhLmxpbWl0LCBwcm9ncmVzczogZmFsc2UgfSkuXHJcbiAgICAgIHBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5fd29ya2luZyA9IGZhbHNlKSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9jb21iaW5hdGlvbnMgPSByO1xyXG4gICAgICAgICAgdGhpcy5fc3dpdGNoTW9kZSgncmVzdWx0cycpO1xyXG4gICAgICAgICAgci5sZW5ndGggPT09IHRoaXMuX2RhdGEubGltaXQgJiYgdGhpcy5fc25hY2tiYXIudG9hc3QoJ1Rha2VNb3JlJyk7XHJcbiAgICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3NuYWNrYmFyLmVycm9yKClcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGl0ZW0gc2VsZWN0XHJcbiAgICogQHBhcmFtIGNvZGVcclxuICAgKi9cclxuICBfc2VsZWN0KGF4ZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX25hbWVPZihheGVzKSxcclxuICAgICAgdmFsdWUgPSB0aGlzLl9jb2RlT2YoYXhlcyk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgdmFsdWUsIGRlc2NyaXB0aW9uLCBheGVzIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gY29kZXNcclxuICAgKi9cclxuICBfY29kZU9mKGNvZGVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gY29kZXMuam9pbih0aGlzLl9kYXRhLmRpdmlkZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB0cmFuc2xhdGUgY29kZSBzZWdtZW50cyB0byBuYW1lc1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgX25hbWVPZihjb2Rlczogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F4ZXMubWFwKChhLCBpKSA9PiB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV1bY29kZXNbaV1dIHx8IGNvZGVzW2ldKS5cclxuICAgICAgam9pbih0aGlzLl9kYXRhLmRpc3BsYXlEaXZpZGVyIHx8IHRoaXMuX2RhdGEuZGl2aWRlcik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIG9wZW4gaW5mb1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqL1xyXG4gIF9pbmZvKGNvZGVzOiBzdHJpbmdbXSwgZXZ0OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBkZWZhdWx0cyB9ID0gdGhpcy5fZGF0YS5leHBsb3JlU2V0dGluZ3MgfHwge307XHJcbiAgICBjb25zdCBheGVzID0ge1xyXG4gICAgICAuLi5kZWZhdWx0c1xyXG4gICAgfTtcclxuICAgIGNvZGVzLnNsaWNlKDAsIHRoaXMuX2F4ZXMubGVuZ3RoKS5mb3JFYWNoKChhLCBpKSA9PiBheGVzW3RoaXMuX2F4ZXNbaV0ubmFtZV0gPSBhKTtcclxuXHJcbiAgICB0aGlzLl9hY2NvdW50SW5mby5wb3B1cChheGVzLCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7XHJcbiAgICAgIC4uLnRoaXMuX2RhdGEuZXhwbG9yZVNldHRpbmdzLFxyXG4gICAgICBjdWJlOiB0aGlzLl9jdWJlLm5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLm1vZGVDaGFuZ2UuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRpb25TZWxlY3RlZEV2ZW50IHtcclxuICByZWFkb25seSB2YWx1ZTogc3RyaW5nOyByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nOyByZWFkb25seSBheGVzOiBzdHJpbmdbXTtcclxufVxyXG4iLCI8ZGl2IFtuZ1N3aXRjaF09XCJtb2RlXCIgY2xhc3M9XCJhY2NvdW50LXBpY2tlci1wb3B1cFwiIGNka1RyYXBGb2N1cz5cclxuICA8IS0tW0B0cmFuc2Zvcm1QYW5lbF09XCJlbnRlclwiLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbHRlcidcIj5cclxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiX3dvcmtpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICA8IS0tIGZpbHRlciAtLT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiX2Zvcm1cIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBhIG9mIF9heGVzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57e2EudGl0bGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cIl9rZXlzW2EubmFtZV0ubGVuZ3RoPjFcIj57eydBbGwnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGtleSBvZiBfa2V5c1thLm5hbWVdXCIgW3ZhbHVlXT1cImtleVwiPnt7X3ZhbHVlc1thLmRhdGFUeXBlXVtrZXldfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDxtYXQtaGludD57e19mb3JtLmNvbnRyb2xzW2EubmFtZV0udmFsdWV9fTwvbWF0LWhpbnQ+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Zvcm0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX2ZpbHRlcigpXCIgW2Rpc2FibGVkXT1cIl93b3JraW5nXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NlYXJjaCd8dHJhbnNsYXRlXCIgY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCIgW3RhYkluZGV4XT1cIl9heGVzLmxlbmd0aFwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDwhLS0gcmVzdWx0cyAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVzdWx0cydcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJfc3dpdGNoTW9kZSgnZmlsdGVyJylcIiBbYml6ZG9jVG9vbHRpcF09XCInRmlsdGVyJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bWF0LWFjdGlvbi1saXN0PlxyXG4gICAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgY29kZXMgb2YgX2NvbWJpbmF0aW9uc1wiIChjbGljayk9XCJfc2VsZWN0KGNvZGVzKVwiPlxyXG4gICAgICAgIDxoMyBtYXRMaXN0SXRlbVRpdGxlPnt7X25hbWVPZihjb2Rlcyl9fTwvaDM+XHJcbiAgICAgICAgPHAgbWF0TGlzdEl0ZW1MaW5lICpuZ0lmPVwiX2V4cGxvcmFibGVcIj48YSAoY2xpY2spPVwiX2luZm8oY29kZXMsICRldmVudClcIj57e19jb2RlT2YoY29kZXMpfX08L2E+PC9wPlxyXG4gICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICA8L21hdC1hY3Rpb24tbGlzdD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9jb21iaW5hdGlvbi1waWNrZXItYm9keS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBRXpKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQXNCLGtCQUFrQixDQUFDLENBQUM7QUErQm5HLE1BQU07QUFNTixNQUFNLE9BQU8scUJBQXFCO0lBZWhDLFlBQ3VDLFVBQStCLEVBQ3ZCLFdBQWdDLEVBQ3JFLEdBQWdCLEVBQ2hCLFNBQXdCLEVBQ3hCLFlBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLFFBQXdCLEVBQ3hCLFFBQXFCO1FBTnJCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDaEIsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixhQUFRLEdBQVIsUUFBUSxD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ZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0EzSVUscUJBQXFCLGtCQWdCVixlQUFlLDZCQUNmLHVCQUF1QjtrR0FqQmxDLHFCQUFxQiwrRkFJbEIsU0FBUyxnREN0RHpCLHV2REFrQ0E7OzJGRGdCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFvQnZDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUJBQXVCOzZPQWJwQixJQUFJO3NCQUE1QixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIEluamVjdCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQ3ViZUF4aXMsIEN1YmUgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlSW5mbyB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUtaW5mby5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1bVNldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2N1YmUvbWF0cml4L3RhYmxlLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZID0gbmV3IEluamVjdGlvblRva2VuPENvbWJpbmF0aW9uQm9keURhdGE+KCdjb21iaW5hdGlvbl9ib2R5Jyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbWJpbmF0aW9uQm9keURhdGEge1xyXG4gIGN1YmU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIGxpbWl0OiBudW1iZXI7XHJcbiAgZGl2aWRlcjogc3RyaW5nO1xyXG4gIGRpc3BsYXlEaXZpZGVyOiBzdHJpbmc7XHJcbiAgZXhwbG9yZVNldHRpbmdzOiBFeHBsb3JlU2V0dGluZ3M7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZVNldHRpbmdzIHtcclxuICBlbmFibGU/OiBib29sZWFuO1xyXG4gIC8qKiBjdWJlIHZpZXcgbmFtZSAqL1xyXG4gIHZpZXc/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdHM/OiB7XHJcbiAgICBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcik7XHJcbiAgfTtcclxuICBpbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgLyoqIG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICBmaWx0ZXJzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgeEF4aXM6IHN0cmluZztcclxuICBzZXJpZXM6IHN0cmluZztcclxuICBzdW0/OiBTdW1TZXR0aW5ncyB8IFN1bVNldHRpbmdzW10sXHJcbiAgLyoqICovXHJcbiAgYWdncmVnYXRlPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgc2VyaWVzVG90YWxMYWJlbD86IHN0cmluZztcclxuICB4QXhpc1RvdGFsTGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE1vZGUgPSAnZmlsdGVyJyB8ICdyZXN1bHRzJztcclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWNvbWJpbmF0aW9uLXBpY2tlci1ib2R5JyxcclxuICB0ZW1wbGF0ZVVybDogJ2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb21iaW5hdGlvbi1waWNrZXItYm9keS5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbWJpbmF0aW9uUGlja2VyQm9keSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudD4oKTtcclxuICByZWFkb25seSBtb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RlPigpO1xyXG4gIG1vZGU6IE1vZGU7XHJcbiAgQFZpZXdDaGlsZHJlbihNYXRTZWxlY3QpIGF4ZXM6IFF1ZXJ5TGlzdDxNYXRTZWxlY3Q+O1xyXG4gIHJlYWRvbmx5IF9leHBsb3JhYmxlOiBib29sZWFuO1xyXG4gIF93b3JraW5nID0gZmFsc2U7XHJcbiAgcmVhZG9ubHkgX2F4ZXM6IEN1YmVBeGlzW107XHJcbiAgcmVhZG9ubHkgX2Zvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgX2tleXM6IHsgW3R5cGU6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpW10gfSA9IHt9O1xyXG4gIHJlYWRvbmx5IF92YWx1ZXM6IHsgW3R5cGU6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB7IFtrZXk6IG51bWJlcl06IGFueSB9IH0gPSB7fTtcclxuICBfY29tYmluYXRpb25zOiBzdHJpbmdbXVtdO1xyXG4gIHByaXZhdGUgX2RhdGE6IENvbWJpbmF0aW9uQm9keURhdGE7XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkaWFsb2dEYXRhOiBDb21iaW5hdGlvbkJvZHlEYXRhLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDT01CSU5BVElPTl9QSUNLRVJfQk9EWSkgb3ZlcmxheURhdGE6IENvbWJpbmF0aW9uQm9keURhdGEsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zbmFja2JhcjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRJbmZvOiBDdWJlSW5mbyxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuX2RhdGEgPSBvdmVybGF5RGF0YSB8fCBkaWFsb2dEYXRhO1xyXG4gICAgY29uc3QgeyBjdWJlLCBleHBsb3JlU2V0dGluZ3MgfSA9IHRoaXMuX2RhdGE7XHJcbiAgICB0aGlzLl9leHBsb3JhYmxlID0gZXhwbG9yZVNldHRpbmdzICE9PSB1bmRlZmluZWQ7XHJcbiAgICBpZiAoY3ViZSlcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIGlmICghdGhpcy5fY3ViZSkgdGhyb3cgJ05vIGN1YmUnO1xyXG4gICAgdGhpcy5fYXhlcyA9IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiBhLmNvbWJpbmF0aW9uKTtcclxuICAgIGlmICghdGhpcy5fYXhlcy5sZW5ndGgpIHRocm93ICdObyBheGlzIHdpdGggY29tYmluYXRpb24nO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgICAgIHRoaXMuX2tleXNbYS5uYW1lXSA9IFtdO1xyXG4gICAgICB0aGlzLl9mb3JtLmFkZENvbnRyb2woYS5uYW1lLCBjb250cm9sKTtcclxuICAgICAgdGhpcy5fZHMubWFwKGEuZGF0YVR5cGUpLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgICB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV0gPSBtO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLl9rZXlzW2EubmFtZV0gPSBPYmplY3Qua2V5cyhtKTtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPT09IDEpIGNvbnRyb2wuc2V0VmFsdWUoa2V5c1swXSk7XHJcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuX2RhdGEudmFsdWUgJiYgdGhpcy5fcGF0Y2hGb3JtKHRoaXMuX2RhdGEudmFsdWUpO1xyXG4gICAgdGhpcy5fc3dpdGNoTW9kZSgnZmlsdGVyJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcGF0Y2hGb3JtKGNvZGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgY29kZXMgPSBjb2RlLnNwbGl0KHRoaXMuX2RhdGEuZGl2aWRlciksXHJcbiAgICAgIHZhbHVlcyA9IHt9O1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKChhLCBpKSA9PiBjb2Rlc1tpXSAmJiAodmFsdWVzW2EubmFtZV0gPSBjb2Rlc1tpXSkpO1xyXG4gICAgdGhpcy5fZm9ybS5wYXRjaFZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB2YWxcclxuICAgKi9cclxuICBfc3dpdGNoTW9kZSh2YWw6IE1vZGUpIHtcclxuICAgIHRoaXMubW9kZSA9IHZhbDtcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PT0gJ2ZpbHRlcicpIHRoaXMuYXhlcy5maXJzdC5mb2N1cygpO1xyXG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9LCAwKVxyXG4gIH1cclxuICAvKipcclxuICAgKiBmaWx0ZXIgKi9cclxuICBfZmlsdGVyKCkge1xyXG4gICAgdGhpcy5fd29ya2luZyA9IHRydWU7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl9mb3JtLnZhbHVlLCBhcmdzID0ge307XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goYSA9PiB2YWx1ZXNbYS5uYW1lXSAmJiAoYXJnc1thLm5hbWVdID0gdmFsdWVzW2EubmFtZV0pKTtcclxuICAgIHRoaXMuX3NlcnZpY2UuY29tYmluYXRpb25zKHRoaXMuX2N1YmUubmFtZSwgYXJncywgeyB0YWtlOiB0aGlzLl9kYXRhLmxpbWl0LCBwcm9ncmVzczogZmFsc2UgfSkuXHJcbiAgICAgIHBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5fd29ya2luZyA9IGZhbHNlKSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9jb21iaW5hdGlvbnMgPSByO1xyXG4gICAgICAgICAgdGhpcy5fc3dpdGNoTW9kZSgncmVzdWx0cycpO1xyXG4gICAgICAgICAgci5sZW5ndGggPT09IHRoaXMuX2RhdGEubGltaXQgJiYgdGhpcy5fc25hY2tiYXIudG9hc3QoJ1Rha2VNb3JlJyk7XHJcbiAgICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3NuYWNrYmFyLmVycm9yKClcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGl0ZW0gc2VsZWN0XHJcbiAgICogQHBhcmFtIGNvZGVcclxuICAgKi9cclxuICBfc2VsZWN0KGF4ZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX25hbWVPZihheGVzKSxcclxuICAgICAgdmFsdWUgPSB0aGlzLl9jb2RlT2YoYXhlcyk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgdmFsdWUsIGRlc2NyaXB0aW9uLCBheGVzIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gY29kZXNcclxuICAgKi9cclxuICBfY29kZU9mKGNvZGVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gY29kZXMuam9pbih0aGlzLl9kYXRhLmRpdmlkZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB0cmFuc2xhdGUgY29kZSBzZWdtZW50cyB0byBuYW1lc1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgX25hbWVPZihjb2Rlczogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F4ZXMubWFwKChhLCBpKSA9PiB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV1bY29kZXNbaV1dIHx8IGNvZGVzW2ldKS5cclxuICAgICAgam9pbih0aGlzLl9kYXRhLmRpc3BsYXlEaXZpZGVyIHx8IHRoaXMuX2RhdGEuZGl2aWRlcik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIG9wZW4gaW5mb1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqL1xyXG4gIF9pbmZvKGNvZGVzOiBzdHJpbmdbXSwgZXZ0OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBkZWZhdWx0cyB9ID0gdGhpcy5fZGF0YS5leHBsb3JlU2V0dGluZ3MgfHwge307XHJcbiAgICBjb25zdCBheGVzID0ge1xyXG4gICAgICAuLi5kZWZhdWx0c1xyXG4gICAgfTtcclxuICAgIGNvZGVzLnNsaWNlKDAsIHRoaXMuX2F4ZXMubGVuZ3RoKS5mb3JFYWNoKChhLCBpKSA9PiBheGVzW3RoaXMuX2F4ZXNbaV0ubmFtZV0gPSBhKTtcclxuXHJcbiAgICB0aGlzLl9hY2NvdW50SW5mby5wb3B1cChheGVzLCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7XHJcbiAgICAgIC4uLnRoaXMuX2RhdGEuZXhwbG9yZVNldHRpbmdzLFxyXG4gICAgICBjdWJlOiB0aGlzLl9jdWJlLm5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLm1vZGVDaGFuZ2UuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRpb25TZWxlY3RlZEV2ZW50IHtcclxuICByZWFkb25seSB2YWx1ZTogc3RyaW5nOyByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nOyByZWFkb25seSBheGVzOiBzdHJpbmdbXTtcclxufVxyXG4iLCI8ZGl2IFtuZ1N3aXRjaF09XCJtb2RlXCIgY2xhc3M9XCJhY2NvdW50LXBpY2tlci1wb3B1cFwiIGNka1RyYXBGb2N1cz5cclxuICA8IS0tW0B0cmFuc2Zvcm1QYW5lbF09XCJlbnRlclwiLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbHRlcidcIj5cclxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiX3dvcmtpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICA8IS0tIGZpbHRlciAtLT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiX2Zvcm1cIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBhIG9mIF9heGVzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57e2EudGl0bGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cIl9rZXlzW2EubmFtZV0ubGVuZ3RoPjFcIj57eydBbGwnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGtleSBvZiBfa2V5c1thLm5hbWVdXCIgW3ZhbHVlXT1cImtleVwiPnt7X3ZhbHVlc1thLmRhdGFUeXBlXVtrZXldfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDxtYXQtaGludD57e19mb3JtLmNvbnRyb2xzW2EubmFtZV0udmFsdWV9fTwvbWF0LWhpbnQ+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Zvcm0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX2ZpbHRlcigpXCIgW2Rpc2FibGVkXT1cIl93b3JraW5nXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NlYXJjaCd8dHJhbnNsYXRlXCIgY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCIgW3RhYkluZGV4XT1cIl9heGVzLmxlbmd0aFwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDwhLS0gcmVzdWx0cyAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVzdWx0cydcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJfc3dpdGNoTW9kZSgnZmlsdGVyJylcIiBbYml6ZG9jVG9vbHRpcF09XCInRmlsdGVyJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bWF0LWFjdGlvbi1saXN0PlxyXG4gICAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgY29kZXMgb2YgX2NvbWJpbmF0aW9uc1wiIChjbGljayk9XCJfc2VsZWN0KGNvZGVzKVwiPlxyXG4gICAgICAgIDxoMyBtYXRMaXN0SXRlbVRpdGxlPnt7X25hbWVPZihjb2Rlcyl9fTwvaDM+XHJcbiAgICAgICAgPHAgbWF0TGlzdEl0ZW1MaW5lICpuZ0lmPVwiX2V4cGxvcmFibGVcIj48YSAoY2xpY2spPVwiX2luZm8oY29kZXMsICRldmVudClcIj57e19jb2RlT2YoY29kZXMpfX08L2E+PC9wPlxyXG4gICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICA8L21hdC1hY3Rpb24tbGlzdD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -222,22 +222,22 @@ export class CombinationPicker {
222
222
  this.descriptionChange.complete();
223
223
  this.stateChanges.complete();
224
224
  }
225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CombinationPicker, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.MatFormField, optional: true }, { token: i3.Overlay }, { token: i4.MatDialog }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i5.FocusMonitor }, { token: i0.ElementRef }, { token: i6.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
226
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CombinationPicker, selector: "bizdoc-combination-picker", inputs: { _divider: ["divider", "_divider"], _displayDivider: ["displayDivider", "_displayDivider"], limit: "limit", cube: "cube", exploreSettings: "exploreSettings", description: "description", touchUi: "touchUi", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, outputs: { optionSelected: "optionSelected", descriptionChange: "descriptionChange" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CombinationPicker }], ngImport: i0, template: "<div class=\"account-picker-element\">\r\n <textarea class=\"mat-input-element\" [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\"></textarea>\r\n <div class=\"mat-form-field-suffix\">\r\n <button mat-icon-button [disableRipple]=true (click)=\"open($event)\" matSuffix [disabled]=\"disabled\" tabindex=\"-1\" [class.mat-warn]=\"errorState\"><mat-icon>arrow_drop_down</mat-icon></button>\r\n </div>\r\n</div>\r\n", styles: [".account-picker-element{display:flex;flex-direction:row}.account-picker-element textarea{resize:none;flex:auto}\n"], dependencies: [{ kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
225
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: CombinationPicker, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.MatFormField, optional: true }, { token: i3.Overlay }, { token: i4.MatDialog }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i5.FocusMonitor }, { token: i0.ElementRef }, { token: i6.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: CombinationPicker, selector: "bizdoc-combination-picker", inputs: { _divider: ["divider", "_divider"], _displayDivider: ["displayDivider", "_displayDivider"], limit: "limit", cube: "cube", exploreSettings: "exploreSettings", description: "description", touchUi: "touchUi", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, outputs: { optionSelected: "optionSelected", descriptionChange: "descriptionChange" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CombinationPicker }], ngImport: i0, template: "<div class=\"account-picker-element\">\r\n <textarea class=\"mat-input-element\" [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\"></textarea>\r\n <div class=\"mat-form-field-suffix\">\r\n <button mat-icon-button [disableRipple]=true (click)=\"open($event)\" matSuffix [disabled]=\"disabled\" tabindex=\"-1\" [class.mat-warn]=\"errorState\"><mat-icon>arrow_drop_down</mat-icon></button>\r\n </div>\r\n</div>\r\n", styles: [".account-picker-element{display:flex;flex-direction:row}.account-picker-element textarea{resize:none;flex:auto}\n"], dependencies: [{ kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
227
227
  }
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CombinationPicker, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: CombinationPicker, decorators: [{
229
229
  type: Component,
230
230
  args: [{ selector: 'bizdoc-combination-picker', providers: [{ provide: MatFormFieldControl, useExisting: CombinationPicker }], host: {
231
231
  '[class.floating]': 'shouldLabelFloat',
232
232
  '[attr.aria-describedby]': 'describedBy'
233
233
  }, template: "<div class=\"account-picker-element\">\r\n <textarea class=\"mat-input-element\" [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\"></textarea>\r\n <div class=\"mat-form-field-suffix\">\r\n <button mat-icon-button [disableRipple]=true (click)=\"open($event)\" matSuffix [disabled]=\"disabled\" tabindex=\"-1\" [class.mat-warn]=\"errorState\"><mat-icon>arrow_drop_down</mat-icon></button>\r\n </div>\r\n</div>\r\n", styles: [".account-picker-element{display:flex;flex-direction:row}.account-picker-element textarea{resize:none;flex:auto}\n"] }]
234
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
234
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
235
235
  type: Optional
236
236
  }, {
237
237
  type: Self
238
238
  }] }, { type: i2.MatFormField, decorators: [{
239
239
  type: Optional
240
- }] }, { type: i3.Overlay }, { type: i4.MatDialog }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i5.FocusMonitor }, { type: i0.ElementRef }, { type: i6.Directionality }]; }, propDecorators: { _divider: [{
240
+ }] }, { type: i3.Overlay }, { type: i4.MatDialog }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i5.FocusMonitor }, { type: i0.ElementRef }, { type: i6.Directionality }], propDecorators: { _divider: [{
241
241
  type: Input,
242
242
  args: ['divider']
243
243
  }], _displayDivider: [{
@@ -274,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
274
274
  }], value: [{
275
275
  type: Input
276
276
  }] } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9jb21iaW5hdGlvbi1waWNrZXIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL2NvbWJpbmF0aW9uLXBpY2tlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBYSxXQUFXLEVBQUUsSUFBSSxFQUFtQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUlqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBdUIscUJBQXFCLEVBQTRCLHVCQUF1QixFQUFtQixNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7O0FBRTNKLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQVl6QixNQUFNLE9BQU8saUJBQWlCO2FBQ2IsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBZTFCLElBQWEsS0FBSyxDQUFDLEdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJ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QUR6QixNQUFNO2dCQUVpQixFQUFFO3NCQUF6QixXQUFXO2dCQUNILE9BQU87c0JBQWYsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQVlGLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBS3pCLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBUWdDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQXlCdkIsS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NvbnRhaW5lclJlZiwgRWxlbWVudFJlZiwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPcHRpb25hbCwgT25EZXN0cm95LCBIb3N0QmluZGluZywgU2VsZiwgT25Jbml0LCBEb0NoZWNrLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9hMTF5XCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XHJcbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQUNDT1VOVF9ERUxJTUlURVIgfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29tYmluYXRpb25Cb2R5RGF0YSwgQ29tYmluYXRpb25QaWNrZXJCb2R5LCBDb21iaW5hdGlvblNlbGVjdGVkRXZlbnQsIENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZLCBFeHBsb3JlU2V0dGluZ3MgfSBmcm9tIFwiLi9jb21iaW5hdGlvbi1waWNrZXItYm9keVwiO1xyXG5cclxuY29uc3QgUkVDT1JEU19MSU1JVCA9IDUwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY29tYmluYXRpb24tcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJ2NvbWJpbmF0aW9uLXBpY2tlci5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnY29tYmluYXRpb24tcGlja2VyLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBDb21iaW5hdGlvblBpY2tlciB9XSxcclxuICBob3N0OiB7XHJcbiAgICAnW2NsYXNzLmZsb2F0aW5nXSc6ICdzaG91bGRMYWJlbEZsb2F0JyxcclxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21iaW5hdGlvblBpY2tlciBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgRG9DaGVjaywgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX29wZW5lZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2xpbWl0OiBudW1iZXIgPSBSRUNPUkRTX0xJTUlUO1xyXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XHJcbiAgcHJpdmF0ZSBfcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8Q29tYmluYXRpb25QaWNrZXJCb2R5PjtcclxuICBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb21iaW5hdGlvblBpY2tlckJvZHk+O1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgQElucHV0KCdkaXZpZGVyJykgX2RpdmlkZXI6IHN0cmluZyA9IEFDQ09VTlRfREVMSU1JVEVSO1xyXG4gIEBJbnB1dCgnZGlzcGxheURpdmlkZXInKSBfZGlzcGxheURpdmlkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgbGltaXQodmFsOiBudW1iZXIpIHsgdGhpcy5fbGltaXQgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWwpOyB9XHJcbiAgZ2V0IGxpbWl0KCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9saW1pdDsgfVxyXG4gIEBJbnB1dCgpIGN1YmU6IHN0cmluZztcclxuICBASW5wdXQoKSBleHBsb3JlU2V0dGluZ3M/OiBFeHBsb3JlU2V0dGluZ3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgb3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudD4oKTtcclxuICBwcml2YXRlIF9kZXNjcmlwdGlvbjogc3RyaW5nID0gbnVsbDtcclxuICBASW5wdXQoKSBzZXQgZGVzY3JpcHRpb24odmFsOiBzdHJpbmcpIHsgdGhpcy5fZGVzY3JpcHRpb24gPSB2YWw7IH1cclxuICBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uIHx8ICcnOyB9XHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBASG9zdEJpbmRpbmcoKSByZWFkb25seSBpZCA9IGBhY2NvdW50LXBpY2tlci0ke0NvbWJpbmF0aW9uUGlja2VyLm5leHRJZCsrfWA7XHJcbiAgQElucHV0KCkgdG91Y2hVaTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBnZXQgcGxhY2Vob2xkZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcihwbGgpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlID09PSBudWxsO1xyXG4gIH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQocmVxKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBlcnJvclN0YXRlID0gZmFsc2U7XHJcbiAgY29udHJvbFR5cGU/OiBzdHJpbmcgPSAnYWNjb3VudC1waWNrZXItaW5wdXQnO1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgZGVzY3JpYmVkQnkgPSAnJztcclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICgoZXZ0LnRhcmdldCBhcyBFbGVtZW50KS50YWdOYW1lICE9PSAnSU5QVVQnKSB7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9vcGVuKCk7XHJcbiAgfVxyXG4gIG9wZW4oZXZ0OiBFdmVudCkge1xyXG4gICAgdGhpcy5fb3BlbigpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbiAgQElucHV0KCkgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLCBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtRmllbGQ6IE1hdEZvcm1GaWVsZCxcclxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBfdmM6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF9mbTogRm9jdXNNb25pdG9yLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHkpIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gICAgX2ZtLm1vbml0b3IoX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmZvY3VzZWQgJiYgIW9yaWdpbikge1xyXG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLmVycm9yU3RhdGUgPSB0aGlzLm5nQ29udHJvbC5pbnZhbGlkICYmIHRoaXMubmdDb250cm9sLnRvdWNoZWQ7XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgX2tleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZ0LmFsdEtleSAmJiBldnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICB0aGlzLl9vcGVuKCk7XHJcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9vcGVuKCkge1xyXG4gICAgaWYgKHRoaXMuX29wZW5lZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBkaXZpZGVyOiB0aGlzLl9kaXZpZGVyLFxyXG4gICAgICBkaXNwbGF5RGl2aWRlcjogdGhpcy5fZGlzcGxheURpdmlkZXIsXHJcbiAgICAgIGxpbWl0OiB0aGlzLl9saW1pdCxcclxuICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlLFxyXG4gICAgICBjdWJlOiB0aGlzLmN1YmUsXHJcbiAgICAgIGV4cGxvcmVTZXR0aW5nczogdGhpcy5leHBsb3JlU2V0dGluZ3NcclxuICAgIH0gYXMgQ29tYmluYXRpb25Cb2R5RGF0YTtcclxuICAgIGlmICh0aGlzLnRvdWNoVWkpIHtcclxuICAgICAgdGhpcy5fZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW4oQ29tYmluYXRpb25QaWNrZXJCb2R5LCB7XHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWUsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBtYXhIZWlnaHQ6ICc5MHZoJ1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5fYXR0YWNoKHRoaXMuX2RpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXlSZWYoKTtcclxuICAgICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZLCB1c2VWYWx1ZTogZGF0YVxyXG4gICAgICAgICAgfV0scGFyZW50OiB0aGlzLl9pbmplY3RvclxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoQ29tYmluYXRpb25QaWNrZXJCb2R5LCB0aGlzLl92YywgaW5qZWN0b3IpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLl9yZXBvc2l0aW9uKCk7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHRoaXMuX3BvcnRhbCk7XHJcbiAgICAgIHRoaXMuX2F0dGFjaChjb21wb25lbnRSZWYuaW5zdGFuY2UpO1xyXG4gICAgICB0aGlzLl9vcGVuZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9hdHRhY2goYm9keTogQ29tYmluYXRpb25QaWNrZXJCb2R5KSB7XHJcbiAgICBib2R5Lm1vZGVDaGFuZ2UuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3JlcG9zaXRpb24oKSwgMCkpO1xyXG4gICAgYm9keS5zZWxlY3Rpb25DaGFuZ2UuXHJcbiAgICAgIHN1YnNjcmliZShlID0+IHtcclxuICAgICAgICBjb25zdCB7IHZhbHVlLCBkZXNjcmlwdGlvbiB9ID0gZTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb25DaGFuZ2UuZW1pdChkZXNjcmlwdGlvbik7XHJcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3JlcG9zaXRpb24oKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuX2dldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKTtcclxuICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7IG1pbldpZHRoOiBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4YCB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlT3ZlcmxheVJlZigpOiBPdmVybGF5UmVmIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy5fZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpO1xyXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8oZWwpLlxyXG4gICAgICAgIHdpdGhWaWV3cG9ydE1hcmdpbig4KS5cclxuICAgICAgICB3aXRoRmxleGlibGVEaW1lbnNpb25zKCkuXHJcbiAgICAgICAgd2l0aFBvc2l0aW9ucyhbeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJyB9LFxyXG4gICAgICAgIHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScgfV0pLFxyXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWUsXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXHJcbiAgICAgIG1pbldpZHRoOiBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4YCxcclxuICAgICAgcGFuZWxDbGFzczogJ2hvbWUtcGFuZWwnXHJcbiAgICB9KTtcclxuICAgIG1lcmdlKG92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLCBvdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5cclxuICAgICAgcGlwZShmaWx0ZXIoZSA9PiBlLmtleSA9PT0gJ0VzY2FwZScgfHwgKGUua2V5ID09PSAnQXJyb3dVcCcgJiYgZS5hbHRLZXkpKSxcclxuICAgICAgICB0YXAoZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpKSkpLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcclxuICAgIHJldHVybiBvdmVybGF5UmVmO1xyXG4gIH1cclxuICBwcml2YXRlIF9nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZCA/IHRoaXMuX2Zvcm1GaWVsZC5nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCkgOiB0aGlzLl9lbGVtZW50UmVmO1xyXG4gIH1cclxuICBjbG9zZSgpIHtcclxuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xyXG4gICAgZWxzZSB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIHRoaXMuX29wZW5lZCA9IGZhbHNlO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fZm0uc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuZGVzY3JpcHRpb25DaGFuZ2UuY29tcGxldGUoKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhY2NvdW50LXBpY2tlci1lbGVtZW50XCI+XHJcbiAgPHRleHRhcmVhIGNsYXNzPVwibWF0LWlucHV0LWVsZW1lbnRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoa2V5ZG93bik9XCJfa2V5RG93bigkZXZlbnQpXCIgW3ZhbHVlXT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cclxuICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtc3VmZml4XCI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbZGlzYWJsZVJpcHBsZV09dHJ1ZSAoY2xpY2spPVwib3BlbigkZXZlbnQpXCIgbWF0U3VmZml4IFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIHRhYmluZGV4PVwiLTFcIiBbY2xhc3MubWF0LXdhcm5dPVwiZXJyb3JTdGF0ZVwiPjxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9jb21iaW5hdGlvbi1waWNrZXIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL2NvbWJpbmF0aW9uLXBpY2tlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBYSxXQUFXLEVBQUUsSUFBSSxFQUFtQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUlqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBdUIscUJBQXFCLEVBQTRCLHVCQUF1QixFQUFtQixNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7O0FBRTNKLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQVl6QixNQUFNLE9BQU8saUJBQWlCO2FBQ2IsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBZTFCLElBQWEsS0FBSyxDQUFDLEdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJ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QUR6QixNQUFNO2dCQUVpQixFQUFFO3NCQUF6QixXQUFXO2dCQUNILE9BQU87c0JBQWYsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQVlGLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBS3pCLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBUWdDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQXlCdkIsS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NvbnRhaW5lclJlZiwgRWxlbWVudFJlZiwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPcHRpb25hbCwgT25EZXN0cm95LCBIb3N0QmluZGluZywgU2VsZiwgT25Jbml0LCBEb0NoZWNrLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9hMTF5XCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XHJcbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQUNDT1VOVF9ERUxJTUlURVIgfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29tYmluYXRpb25Cb2R5RGF0YSwgQ29tYmluYXRpb25QaWNrZXJCb2R5LCBDb21iaW5hdGlvblNlbGVjdGVkRXZlbnQsIENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZLCBFeHBsb3JlU2V0dGluZ3MgfSBmcm9tIFwiLi9jb21iaW5hdGlvbi1waWNrZXItYm9keVwiO1xyXG5cclxuY29uc3QgUkVDT1JEU19MSU1JVCA9IDUwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY29tYmluYXRpb24tcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJ2NvbWJpbmF0aW9uLXBpY2tlci5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnY29tYmluYXRpb24tcGlja2VyLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBDb21iaW5hdGlvblBpY2tlciB9XSxcclxuICBob3N0OiB7XHJcbiAgICAnW2NsYXNzLmZsb2F0aW5nXSc6ICdzaG91bGRMYWJlbEZsb2F0JyxcclxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21iaW5hdGlvblBpY2tlciBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgRG9DaGVjaywgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX29wZW5lZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2xpbWl0OiBudW1iZXIgPSBSRUNPUkRTX0xJTUlUO1xyXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XHJcbiAgcHJpdmF0ZSBfcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8Q29tYmluYXRpb25QaWNrZXJCb2R5PjtcclxuICBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb21iaW5hdGlvblBpY2tlckJvZHk+O1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgQElucHV0KCdkaXZpZGVyJykgX2RpdmlkZXI6IHN0cmluZyA9IEFDQ09VTlRfREVMSU1JVEVSO1xyXG4gIEBJbnB1dCgnZGlzcGxheURpdmlkZXInKSBfZGlzcGxheURpdmlkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgbGltaXQodmFsOiBudW1iZXIpIHsgdGhpcy5fbGltaXQgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWwpOyB9XHJcbiAgZ2V0IGxpbWl0KCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9saW1pdDsgfVxyXG4gIEBJbnB1dCgpIGN1YmU6IHN0cmluZztcclxuICBASW5wdXQoKSBleHBsb3JlU2V0dGluZ3M/OiBFeHBsb3JlU2V0dGluZ3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgb3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudD4oKTtcclxuICBwcml2YXRlIF9kZXNjcmlwdGlvbjogc3RyaW5nID0gbnVsbDtcclxuICBASW5wdXQoKSBzZXQgZGVzY3JpcHRpb24odmFsOiBzdHJpbmcpIHsgdGhpcy5fZGVzY3JpcHRpb24gPSB2YWw7IH1cclxuICBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uIHx8ICcnOyB9XHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBASG9zdEJpbmRpbmcoKSByZWFkb25seSBpZCA9IGBhY2NvdW50LXBpY2tlci0ke0NvbWJpbmF0aW9uUGlja2VyLm5leHRJZCsrfWA7XHJcbiAgQElucHV0KCkgdG91Y2hVaTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBnZXQgcGxhY2Vob2xkZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcihwbGgpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlID09PSBudWxsO1xyXG4gIH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQocmVxKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBlcnJvclN0YXRlID0gZmFsc2U7XHJcbiAgY29udHJvbFR5cGU/OiBzdHJpbmcgPSAnYWNjb3VudC1waWNrZXItaW5wdXQnO1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgZGVzY3JpYmVkQnkgPSAnJztcclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICgoZXZ0LnRhcmdldCBhcyBFbGVtZW50KS50YWdOYW1lICE9PSAnSU5QVVQnKSB7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9vcGVuKCk7XHJcbiAgfVxyXG4gIG9wZW4oZXZ0OiBFdmVudCkge1xyXG4gICAgdGhpcy5fb3BlbigpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbiAgQElucHV0KCkgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLCBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtRmllbGQ6IE1hdEZvcm1GaWVsZCxcclxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBfdmM6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF9mbTogRm9jdXNNb25pdG9yLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHkpIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gICAgX2ZtLm1vbml0b3IoX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmZvY3VzZWQgJiYgIW9yaWdpbikge1xyXG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLmVycm9yU3RhdGUgPSB0aGlzLm5nQ29udHJvbC5pbnZhbGlkICYmIHRoaXMubmdDb250cm9sLnRvdWNoZWQ7XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgX2tleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZ0LmFsdEtleSAmJiBldnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICB0aGlzLl9vcGVuKCk7XHJcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9vcGVuKCkge1xyXG4gICAgaWYgKHRoaXMuX29wZW5lZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBkaXZpZGVyOiB0aGlzLl9kaXZpZGVyLFxyXG4gICAgICBkaXNwbGF5RGl2aWRlcjogdGhpcy5fZGlzcGxheURpdmlkZXIsXHJcbiAgICAgIGxpbWl0OiB0aGlzLl9saW1pdCxcclxuICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlLFxyXG4gICAgICBjdWJlOiB0aGlzLmN1YmUsXHJcbiAgICAgIGV4cGxvcmVTZXR0aW5nczogdGhpcy5leHBsb3JlU2V0dGluZ3NcclxuICAgIH0gYXMgQ29tYmluYXRpb25Cb2R5RGF0YTtcclxuICAgIGlmICh0aGlzLnRvdWNoVWkpIHtcclxuICAgICAgdGhpcy5fZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW4oQ29tYmluYXRpb25QaWNrZXJCb2R5LCB7XHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWUsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBtYXhIZWlnaHQ6ICc5MHZoJ1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5fYXR0YWNoKHRoaXMuX2RpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXlSZWYoKTtcclxuICAgICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZLCB1c2VWYWx1ZTogZGF0YVxyXG4gICAgICAgICAgfV0scGFyZW50OiB0aGlzLl9pbmplY3RvclxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoQ29tYmluYXRpb25QaWNrZXJCb2R5LCB0aGlzLl92YywgaW5qZWN0b3IpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLl9yZXBvc2l0aW9uKCk7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHRoaXMuX3BvcnRhbCk7XHJcbiAgICAgIHRoaXMuX2F0dGFjaChjb21wb25lbnRSZWYuaW5zdGFuY2UpO1xyXG4gICAgICB0aGlzLl9vcGVuZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9hdHRhY2goYm9keTogQ29tYmluYXRpb25QaWNrZXJCb2R5KSB7XHJcbiAgICBib2R5Lm1vZGVDaGFuZ2UuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3JlcG9zaXRpb24oKSwgMCkpO1xyXG4gICAgYm9keS5zZWxlY3Rpb25DaGFuZ2UuXHJcbiAgICAgIHN1YnNjcmliZShlID0+IHtcclxuICAgICAgICBjb25zdCB7IHZhbHVlLCBkZXNjcmlwdGlvbiB9ID0gZTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb25DaGFuZ2UuZW1pdChkZXNjcmlwdGlvbik7XHJcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3JlcG9zaXRpb24oKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuX2dldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKTtcclxuICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7IG1pbldpZHRoOiBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4YCB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlT3ZlcmxheVJlZigpOiBPdmVybGF5UmVmIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy5fZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpO1xyXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8oZWwpLlxyXG4gICAgICAgIHdpdGhWaWV3cG9ydE1hcmdpbig4KS5cclxuICAgICAgICB3aXRoRmxleGlibGVEaW1lbnNpb25zKCkuXHJcbiAgICAgICAgd2l0aFBvc2l0aW9ucyhbeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJyB9LFxyXG4gICAgICAgIHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScgfV0pLFxyXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWUsXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXHJcbiAgICAgIG1pbldpZHRoOiBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4YCxcclxuICAgICAgcGFuZWxDbGFzczogJ2hvbWUtcGFuZWwnXHJcbiAgICB9KTtcclxuICAgIG1lcmdlKG92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLCBvdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5cclxuICAgICAgcGlwZShmaWx0ZXIoZSA9PiBlLmtleSA9PT0gJ0VzY2FwZScgfHwgKGUua2V5ID09PSAnQXJyb3dVcCcgJiYgZS5hbHRLZXkpKSxcclxuICAgICAgICB0YXAoZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpKSkpLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcclxuICAgIHJldHVybiBvdmVybGF5UmVmO1xyXG4gIH1cclxuICBwcml2YXRlIF9nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZCA/IHRoaXMuX2Zvcm1GaWVsZC5nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCkgOiB0aGlzLl9lbGVtZW50UmVmO1xyXG4gIH1cclxuICBjbG9zZSgpIHtcclxuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xyXG4gICAgZWxzZSB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIHRoaXMuX29wZW5lZCA9IGZhbHNlO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fZm0uc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuZGVzY3JpcHRpb25DaGFuZ2UuY29tcGxldGUoKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhY2NvdW50LXBpY2tlci1lbGVtZW50XCI+XHJcbiAgPHRleHRhcmVhIGNsYXNzPVwibWF0LWlucHV0LWVsZW1lbnRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoa2V5ZG93bik9XCJfa2V5RG93bigkZXZlbnQpXCIgW3ZhbHVlXT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cclxuICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtc3VmZml4XCI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbZGlzYWJsZVJpcHBsZV09dHJ1ZSAoY2xpY2spPVwib3BlbigkZXZlbnQpXCIgbWF0U3VmZml4IFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIHRhYmluZGV4PVwiLTFcIiBbY2xhc3MubWF0LXdhcm5dPVwiZXJyb3JTdGF0ZVwiPjxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -82,13 +82,13 @@ export class CombinationPool {
82
82
  ngOnDestroy() {
83
83
  this._destroy.next();
84
84
  }
85
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CombinationPool, deps: [{ token: i1.CubeService }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
86
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CombinationPool, selector: "bizdoc-combination-pool", inputs: { form: ["formGroup", "form"], appearance: "appearance", cube: "cube", model: "model", source: "source" }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: "<form [formGroup]=\"form\">\r\n <mat-form-field *ngFor=\"let a of _axes\" [appearance]=\"appearance\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n <mat-option *ngIf=\"form.controls[a.name].value\">{{'Dashes'|translate:('Clear'|translate)}}</mat-option>\r\n <mat-option *ngFor=\"let key of _keys[a.dataType]\" [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n", styles: [":host{flex:1 1 auto}form{flex-flow:row wrap;box-sizing:border-box;display:flex;padding:0!important}form>*{flex:1 1 auto;box-sizing:border-box;width:50%;padding:0 5px 0 0}[dir=rtl] form>*{padding:0 0 5px}@media (max-width: 599px){form{flex-flow:column}form>*{width:unset}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: CombinationPool, deps: [{ token: i1.CubeService }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: CombinationPool, selector: "bizdoc-combination-pool", inputs: { form: ["formGroup", "form"], appearance: "appearance", cube: "cube", model: "model", source: "source" }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: "<form [formGroup]=\"form\">\r\n <mat-form-field *ngFor=\"let a of _axes\" [appearance]=\"appearance\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n <mat-option *ngIf=\"form.controls[a.name].value\">{{'Dashes'|translate:('Clear'|translate)}}</mat-option>\r\n <mat-option *ngFor=\"let key of _keys[a.dataType]\" [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n", styles: [":host{flex:1 1 auto}form{flex-flow:row wrap;box-sizing:border-box;display:flex;padding:0!important}form>*{flex:1 1 auto;box-sizing:border-box;width:50%;padding:0 5px 0 0}[dir=rtl] form>*{padding:0 0 5px}@media (max-width: 599px){form{flex-flow:column}form>*{width:unset}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "aria-describedby", "panelClass", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CombinationPool, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: CombinationPool, decorators: [{
89
89
  type: Component,
90
90
  args: [{ selector: 'bizdoc-combination-pool', template: "<form [formGroup]=\"form\">\r\n <mat-form-field *ngFor=\"let a of _axes\" [appearance]=\"appearance\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n <mat-option *ngIf=\"form.controls[a.name].value\">{{'Dashes'|translate:('Clear'|translate)}}</mat-option>\r\n <mat-option *ngFor=\"let key of _keys[a.dataType]\" [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n", styles: [":host{flex:1 1 auto}form{flex-flow:row wrap;box-sizing:border-box;display:flex;padding:0!important}form>*{flex:1 1 auto;box-sizing:border-box;width:50%;padding:0 5px 0 0}[dir=rtl] form>*{padding:0 0 5px}@media (max-width: 599px){form{flex-flow:column}form>*{width:unset}}\n"] }]
91
- }], ctorParameters: function () { return [{ type: i1.CubeService }, { type: i2.FormBuilder }, { type: i3.SessionService }]; }, propDecorators: { form: [{
91
+ }], ctorParameters: () => [{ type: i1.CubeService }, { type: i2.FormBuilder }, { type: i3.SessionService }], propDecorators: { form: [{
92
92
  type: Input,
93
93
  args: ['formGroup']
94
94
  }], appearance: [{
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
102
102
  }], modelChange: [{
103
103
  type: Output
104
104
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvY29tYmluYXRpb24tcG9vbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvY29tYmluYXRpb24tcG9vbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFlLFVBQVUsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBSXBFLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFPM0MsTUFBTSxPQUFPLGVBQWU7SUFtQjFCLFlBQW9CLFFBQXFCLEVBQy9CLEdBQWdCLEVBQ2hCLFFBQXdCO1FBRmQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUMvQixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBYmxDLFVBQUssR0FBMEMsRUFBRSxDQUFDO1FBRWxELFdBQU0sR0FBbUMsY0FBYyxDQUFDO1FBRS9DLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXlDLENBQUM7UUFDakYsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUV2QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ04sVUFBSyxHQUFpQyxFQUFFLENBQUM7UUFDekMsWUFBTyxHQUErQyxFQUFFLENBQUM7UUFDakQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFHVixDQUFDO0lBQ3ZDLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FB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QUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyQixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOytHQTdFVSxlQUFlO21HQUFmLGVBQWUsMk5DYjVCLHFpQkFVQTs7NEZER2EsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSx5QkFBeUI7eUpBTW5DLElBQUk7c0JBREgsS0FBSzt1QkFBQyxXQUFXO2dCQUdsQixVQUFVO3NCQURULEtBQUs7Z0JBR04sSUFBSTtzQkFESCxLQUFLO2dCQUdOLEtBQUs7c0JBREosS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR0csV0FBVztzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZUF4aXMsIEN1YmUgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY29tYmluYXRpb24tcG9vbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICdjb21iaW5hdGlvbi1wb29sLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb21iaW5hdGlvbi1wb29sLnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tYmluYXRpb25Qb29sIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgnZm9ybUdyb3VwJylcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpXHJcbiAgYXBwZWFyYW5jZT86IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XHJcbiAgQElucHV0KClcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBtb2RlbDogeyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfSA9IHt9O1xyXG4gIEBJbnB1dCgpXHJcbiAgc291cmNlOiAnY29uc3RyYWludHMnIHwgJ2NvbWJpbmF0aW9ucycgPSAnY29tYmluYXRpb25zJztcclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfT4oKTtcclxuICBfYXhlczogQ3ViZUF4aXNbXSA9IFtdO1xyXG4gIF9jdWJlOiBDdWJlO1xyXG4gIHdvcmtpbmcgPSB0cnVlO1xyXG4gIHJlYWRvbmx5IF9rZXlzOiB7IFt0eXBlOiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcbiAgcmVhZG9ubHkgX3ZhbHVlczogeyBbdHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9ID0ge307XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5jdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICB0aGlzLl9heGVzID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IGEuY29tYmluYXRpb24gJiYgYS5zZWxlY3Rpb25Nb2RlICE9PSAnTm9uZScpO1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1thLm5hbWVdO1xyXG4gICAgICBpZiAoIWNvbnRyb2wpIHtcclxuICAgICAgICBjb250cm9sID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChhLm5hbWUsIGNvbnRyb2wpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2tleXNbYS5kYXRhVHlwZV0gPSBbXTtcclxuICAgICAgY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjUwKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgdGhpcy5tb2RlbFthLm5hbWVdID0gdjtcclxuICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpLlxyXG4gICAgICAgICAgcGlwZSh0YXAoKCkgPT5cclxuICAgICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5uZXh0KHRoaXMubW9kZWwpKSkuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wb3B1bGF0ZSgpLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wb3B1bGF0ZSgpIHtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB7fTtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgY29uc3QgdmFsID0gdGhpcy5tb2RlbFthLm5hbWVdO1xyXG4gICAgICBpZiAodmFsKSB2YWx1ZXNbYS5uYW1lXSA9IHZhbDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2UuY29uc3RyYWludHModGhpcy5fY3ViZS5uYW1lLCB2YWx1ZXMsIHsgc291cmNlOiB0aGlzLnNvdXJjZSB9KS5waXBlKHRhcChyID0+IHtcclxuICAgICAgT2JqZWN0LmtleXMocikuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICB0aGlzLl92YWx1ZXNbdF0gPSByW3RdO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLl9rZXlzW3RdID0gT2JqZWN0LmtleXMoclt0XSk7XHJcbiAgICAgICAgY29uc3QgYXhpcyA9IHRoaXMuX2F4ZXMuZmluZChhID0+IGEuZGF0YVR5cGUgPT09IHQpLCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW2F4aXMubmFtZV07XHJcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAxKVxyXG4gICAgICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUodGhpcy5tb2RlbFtheGlzLm5hbWVdID0ga2V5c1swXSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgY29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY29udHJvbC5kaXNhYmxlZCkgY29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl92YWx1ZXMsIHIpO1xyXG4gICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgIH0pKTtcclxuICB9XHJcbiAgY2xlYXIoYXhpczogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW2F4aXNdO1xyXG4gICAgY29udHJvbC5wYXRjaFZhbHVlKG51bGwpO1xyXG4gIH1cclxuICBjbGVhckFsbCgpIHtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHt9O1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICB2YWx1ZXNbYS5uYW1lXSA9IG51bGw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCAqbmdGb3I9XCJsZXQgYSBvZiBfYXhlc1wiIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIj5cclxuICAgIDxtYXQtbGFiZWw+e3thLnRpdGxlfX08L21hdC1sYWJlbD5cclxuICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiZm9ybS5jb250cm9sc1thLm5hbWVdLnZhbHVlXCI+e3snRGFzaGVzJ3x0cmFuc2xhdGU6KCdDbGVhcid8dHJhbnNsYXRlKX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQga2V5IG9mIF9rZXlzW2EuZGF0YVR5cGVdXCIgW3ZhbHVlXT1cImtleVwiPnt7X3ZhbHVlc1thLmRhdGFUeXBlXVtrZXldfX08L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8bWF0LWhpbnQ+e3tmb3JtLmNvbnRyb2xzW2EubmFtZV0udmFsdWV9fTwvbWF0LWhpbnQ+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9mb3JtPlxyXG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvY29tYmluYXRpb24tcG9vbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvY29tYmluYXRpb24tcG9vbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFlLFVBQVUsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBSXBFLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFPM0MsTUFBTSxPQUFPLGVBQWU7SUFtQjFCLFlBQW9CLFFBQXFCLEVBQy9CLEdBQWdCLEVBQ2hCLFFBQXdCO1FBRmQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUMvQixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBYmxDLFVBQUssR0FBMEMsRUFBRSxDQUFDO1FBRWxELFdBQU0sR0FBbUMsY0FBYyxDQUFDO1FBRS9DLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXlDLENBQUM7UUFDakYsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUV2QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ04sVUFBSyxHQUFpQyxFQUFFLENBQUM7UUFDekMsWUFBTyxHQUErQyxFQUFFLENBQUM7UUFDakQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFHVixDQUFDO0lBQ3ZDLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FB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QUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyQixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzhHQTdFVSxlQUFlO2tHQUFmLGVBQWUsMk5DYjVCLHFpQkFVQTs7MkZER2EsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSx5QkFBeUI7dUlBTW5DLElBQUk7c0JBREgsS0FBSzt1QkFBQyxXQUFXO2dCQUdsQixVQUFVO3NCQURULEtBQUs7Z0JBR04sSUFBSTtzQkFESCxLQUFLO2dCQUdOLEtBQUs7c0JBREosS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR0csV0FBVztzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZUF4aXMsIEN1YmUgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY29tYmluYXRpb24tcG9vbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICdjb21iaW5hdGlvbi1wb29sLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb21iaW5hdGlvbi1wb29sLnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tYmluYXRpb25Qb29sIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgnZm9ybUdyb3VwJylcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpXHJcbiAgYXBwZWFyYW5jZT86IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XHJcbiAgQElucHV0KClcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBtb2RlbDogeyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfSA9IHt9O1xyXG4gIEBJbnB1dCgpXHJcbiAgc291cmNlOiAnY29uc3RyYWludHMnIHwgJ2NvbWJpbmF0aW9ucycgPSAnY29tYmluYXRpb25zJztcclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfT4oKTtcclxuICBfYXhlczogQ3ViZUF4aXNbXSA9IFtdO1xyXG4gIF9jdWJlOiBDdWJlO1xyXG4gIHdvcmtpbmcgPSB0cnVlO1xyXG4gIHJlYWRvbmx5IF9rZXlzOiB7IFt0eXBlOiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcbiAgcmVhZG9ubHkgX3ZhbHVlczogeyBbdHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9ID0ge307XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5jdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICB0aGlzLl9heGVzID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IGEuY29tYmluYXRpb24gJiYgYS5zZWxlY3Rpb25Nb2RlICE9PSAnTm9uZScpO1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1thLm5hbWVdO1xyXG4gICAgICBpZiAoIWNvbnRyb2wpIHtcclxuICAgICAgICBjb250cm9sID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChhLm5hbWUsIGNvbnRyb2wpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2tleXNbYS5kYXRhVHlwZV0gPSBbXTtcclxuICAgICAgY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjUwKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgdGhpcy5tb2RlbFthLm5hbWVdID0gdjtcclxuICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpLlxyXG4gICAgICAgICAgcGlwZSh0YXAoKCkgPT5cclxuICAgICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5uZXh0KHRoaXMubW9kZWwpKSkuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wb3B1bGF0ZSgpLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wb3B1bGF0ZSgpIHtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB7fTtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgY29uc3QgdmFsID0gdGhpcy5tb2RlbFthLm5hbWVdO1xyXG4gICAgICBpZiAodmFsKSB2YWx1ZXNbYS5uYW1lXSA9IHZhbDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2UuY29uc3RyYWludHModGhpcy5fY3ViZS5uYW1lLCB2YWx1ZXMsIHsgc291cmNlOiB0aGlzLnNvdXJjZSB9KS5waXBlKHRhcChyID0+IHtcclxuICAgICAgT2JqZWN0LmtleXMocikuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICB0aGlzLl92YWx1ZXNbdF0gPSByW3RdO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLl9rZXlzW3RdID0gT2JqZWN0LmtleXMoclt0XSk7XHJcbiAgICAgICAgY29uc3QgYXhpcyA9IHRoaXMuX2F4ZXMuZmluZChhID0+IGEuZGF0YVR5cGUgPT09IHQpLCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW2F4aXMubmFtZV07XHJcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAxKVxyXG4gICAgICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUodGhpcy5tb2RlbFtheGlzLm5hbWVdID0ga2V5c1swXSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgY29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY29udHJvbC5kaXNhYmxlZCkgY29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl92YWx1ZXMsIHIpO1xyXG4gICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgIH0pKTtcclxuICB9XHJcbiAgY2xlYXIoYXhpczogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW2F4aXNdO1xyXG4gICAgY29udHJvbC5wYXRjaFZhbHVlKG51bGwpO1xyXG4gIH1cclxuICBjbGVhckFsbCgpIHtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHt9O1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICB2YWx1ZXNbYS5uYW1lXSA9IG51bGw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCAqbmdGb3I9XCJsZXQgYSBvZiBfYXhlc1wiIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIj5cclxuICAgIDxtYXQtbGFiZWw+e3thLnRpdGxlfX08L21hdC1sYWJlbD5cclxuICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiZm9ybS5jb250cm9sc1thLm5hbWVdLnZhbHVlXCI+e3snRGFzaGVzJ3x0cmFuc2xhdGU6KCdDbGVhcid8dHJhbnNsYXRlKX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQga2V5IG9mIF9rZXlzW2EuZGF0YVR5cGVdXCIgW3ZhbHVlXT1cImtleVwiPnt7X3ZhbHVlc1thLmRhdGFUeXBlXVtrZXldfX08L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8bWF0LWhpbnQ+e3tmb3JtLmNvbnRyb2xzW2EubmFtZV0udmFsdWV9fTwvbWF0LWhpbnQ+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9mb3JtPlxyXG4iXX0=