cmat 0.0.13 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +0 -1
  2. package/components/cascade/cascade-menu/cascade-menu.component.d.ts +0 -1
  3. package/components/chip-input/chip-input.component.d.ts +0 -1
  4. package/components/custom-formly/public-api.d.ts +1 -0
  5. package/components/custom-formly/types/quill/quill.component.d.ts +42 -0
  6. package/components/custom-formly/types/repeat/repeat.component.d.ts +0 -1
  7. package/components/custom-formly/types/select/select.component.d.ts +0 -1
  8. package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +0 -1
  9. package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +0 -1
  10. package/components/custom-formly/types/table/table.component.d.ts +0 -1
  11. package/components/custom-formly/types/tabs/tab.component.d.ts +0 -1
  12. package/components/custom-formly/types/tags/tags.component.d.ts +0 -1
  13. package/components/material-color-picker/material-color-picker.component.d.ts +0 -1
  14. package/components/material-datetimepicker/calendar-body.d.ts +0 -1
  15. package/components/material-datetimepicker/calendar.d.ts +3 -4
  16. package/components/material-datetimepicker/clock.d.ts +0 -1
  17. package/components/material-datetimepicker/datetimepicker.d.ts +3 -4
  18. package/components/material-datetimepicker/month-view.d.ts +0 -1
  19. package/components/pagination/pagination.component.d.ts +0 -1
  20. package/components/popover/popover.component.d.ts +3 -4
  21. package/components/popover/popover.interfaces.d.ts +1 -2
  22. package/components/select-tree/select-tree.component.d.ts +0 -1
  23. package/components/timeline/timeline.component.d.ts +3 -5
  24. package/components/transfer-picker/filter/filter.component.d.ts +0 -1
  25. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +0 -1
  26. package/esm2022/components/adapter/datetime-adapter.mjs +1 -1
  27. package/esm2022/components/adapter/dayjs-date-adapter.mjs +4 -4
  28. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +4 -4
  29. package/esm2022/components/adapter/native-datetime-adapter.mjs +4 -4
  30. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
  31. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +5 -5
  32. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +4 -4
  33. package/esm2022/components/card/card.component.mjs +4 -4
  34. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -8
  35. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +4 -4
  36. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -8
  37. package/esm2022/components/chip-input/chip-input.component.mjs +6 -9
  38. package/esm2022/components/custom-formly/extension/addons.extension.mjs +1 -1
  39. package/esm2022/components/custom-formly/public-api.mjs +2 -1
  40. package/esm2022/components/custom-formly/types/button/button.component.mjs +4 -4
  41. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +4 -4
  42. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +4 -4
  43. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +4 -4
  44. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +3 -3
  45. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +3 -3
  46. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +3 -3
  47. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -4
  48. package/esm2022/components/custom-formly/types/number/number.component.mjs +3 -3
  49. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +171 -0
  50. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +4 -4
  51. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +3 -3
  52. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +5 -8
  53. package/esm2022/components/custom-formly/types/select/select.component.mjs +5 -8
  54. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +4 -4
  55. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +5 -8
  56. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +5 -8
  57. package/esm2022/components/custom-formly/types/table/table.component.mjs +5 -8
  58. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +5 -8
  59. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +5 -8
  60. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +3 -3
  61. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +4 -4
  62. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +4 -4
  63. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +3 -3
  64. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +3 -3
  65. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +3 -3
  66. package/esm2022/components/date-range/date-range.component.mjs +4 -4
  67. package/esm2022/components/drawer/drawer.component.mjs +4 -4
  68. package/esm2022/components/drawer/drawer.service.mjs +3 -3
  69. package/esm2022/components/fullscreen/fullscreen.component.mjs +4 -4
  70. package/esm2022/components/highlight/highlight.component.mjs +4 -4
  71. package/esm2022/components/highlight/highlight.service.mjs +4 -4
  72. package/esm2022/components/json-editor/json-editor.component.mjs +4 -4
  73. package/esm2022/components/masonry/masonry.component.mjs +4 -4
  74. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +5 -8
  75. package/esm2022/components/material-datetimepicker/calendar-body.mjs +5 -8
  76. package/esm2022/components/material-datetimepicker/calendar.mjs +7 -13
  77. package/esm2022/components/material-datetimepicker/clock.mjs +5 -8
  78. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +4 -4
  79. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
  80. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +7 -7
  81. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +10 -11
  82. package/esm2022/components/material-datetimepicker/month-view.mjs +5 -8
  83. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +4 -4
  84. package/esm2022/components/material-datetimepicker/time.mjs +7 -7
  85. package/esm2022/components/material-datetimepicker/year-view.mjs +4 -4
  86. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +3 -3
  87. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +5 -5
  88. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
  89. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
  90. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +5 -5
  91. package/esm2022/components/navigation/navigation.service.mjs +4 -4
  92. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +5 -5
  93. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +3 -3
  94. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
  95. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +3 -3
  96. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +5 -5
  97. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +3 -3
  98. package/esm2022/components/navigation/vertical/vertical.component.mjs +5 -5
  99. package/esm2022/components/pagination/pagination.component.mjs +5 -8
  100. package/esm2022/components/pagination/pagination.directive.mjs +4 -4
  101. package/esm2022/components/pagination/pagination.pipe.mjs +4 -4
  102. package/esm2022/components/pagination/pagination.service.mjs +4 -4
  103. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +3 -3
  104. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +4 -4
  105. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +4 -4
  106. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +1 -1
  107. package/esm2022/components/popover/popover-trigger.mjs +6 -8
  108. package/esm2022/components/popover/popover.component.mjs +6 -7
  109. package/esm2022/components/popover/popover.interfaces.mjs +1 -1
  110. package/esm2022/components/popover/popover.target.mjs +3 -3
  111. package/esm2022/components/progress-bar/progress-bar.component.mjs +4 -4
  112. package/esm2022/components/rating/rating.component.mjs +5 -5
  113. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
  114. package/esm2022/components/select-search/select-search-clear.directive.mjs +3 -3
  115. package/esm2022/components/select-search/select-search.component.mjs +4 -4
  116. package/esm2022/components/select-tree/select-tree.component.mjs +5 -8
  117. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +9 -9
  118. package/esm2022/components/timeline/timeline.component.mjs +7 -11
  119. package/esm2022/components/toast/toast-modal.component.mjs +4 -4
  120. package/esm2022/components/toast/toast.component.mjs +5 -5
  121. package/esm2022/components/toast/toast.service.mjs +4 -4
  122. package/esm2022/components/transfer-picker/filter/filter.component.mjs +5 -8
  123. package/esm2022/components/transfer-picker/search/search.component.mjs +3 -3
  124. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +4 -4
  125. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -8
  126. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +4 -4
  127. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
  128. package/esm2022/components/upload/files.util.service.mjs +4 -4
  129. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +4 -4
  130. package/esm2022/components/upload/upload.component.mjs +4 -4
  131. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +4 -4
  132. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
  133. package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
  134. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
  135. package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
  136. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
  137. package/esm2022/directives/digit-only/digit-only.directive.mjs +4 -4
  138. package/esm2022/directives/digit-only/mask.directive.mjs +4 -4
  139. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
  140. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +4 -4
  141. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +1 -1
  142. package/esm2022/lib/mock-api/mock-api.service.mjs +4 -4
  143. package/esm2022/lib/mock-api/mock-api.utils.mjs +1 -1
  144. package/esm2022/pipes/bytes/bytes.pipe.mjs +4 -4
  145. package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
  146. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +4 -4
  147. package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
  148. package/esm2022/pipes/keys/keys.pipe.mjs +4 -4
  149. package/esm2022/pipes/secure/secure-pipe.mjs +3 -3
  150. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
  151. package/esm2022/services/alert/alert.service.mjs +4 -4
  152. package/esm2022/services/config/config.service.mjs +3 -3
  153. package/esm2022/services/config/urlStateConfig.service.mjs +3 -3
  154. package/esm2022/services/confirmation/confirmation.service.mjs +3 -3
  155. package/esm2022/services/confirmation/dialog/dialog.component.mjs +3 -3
  156. package/esm2022/services/data/data.service.mjs +4 -4
  157. package/esm2022/services/loading/loading.interceptor.mjs +4 -4
  158. package/esm2022/services/loading/loading.service.mjs +4 -4
  159. package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
  160. package/esm2022/services/media-watcher/media-watcher.service.mjs +4 -4
  161. package/esm2022/services/platform/platform.service.mjs +4 -4
  162. package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
  163. package/esm2022/services/title/title.service.mjs +4 -4
  164. package/esm2022/services/translation/translation.service.mjs +4 -4
  165. package/esm2022/services/utils/utils.service.mjs +4 -4
  166. package/esm2022/validators/validators.mjs +1 -1
  167. package/fesm2022/cmat-animations.mjs +1 -1
  168. package/fesm2022/cmat-components-adapter.mjs +9 -9
  169. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  170. package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
  171. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  172. package/fesm2022/cmat-components-card.mjs +3 -3
  173. package/fesm2022/cmat-components-card.mjs.map +1 -1
  174. package/fesm2022/cmat-components-cascade.mjs +11 -17
  175. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  176. package/fesm2022/cmat-components-chip-input.mjs +5 -8
  177. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  178. package/fesm2022/cmat-components-custom-formly.mjs +248 -104
  179. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  180. package/fesm2022/cmat-components-date-range.mjs +4 -4
  181. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  182. package/fesm2022/cmat-components-drawer.mjs +7 -7
  183. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  184. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  185. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  186. package/fesm2022/cmat-components-highlight.mjs +6 -6
  187. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  188. package/fesm2022/cmat-components-json-editor.mjs +3 -3
  189. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  190. package/fesm2022/cmat-components-masonry.mjs +3 -3
  191. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  192. package/fesm2022/cmat-components-material-color-picker.mjs +4 -7
  193. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  194. package/fesm2022/cmat-components-material-datetimepicker.mjs +53 -68
  195. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  196. package/fesm2022/cmat-components-navigation.mjs +46 -46
  197. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  198. package/fesm2022/cmat-components-pagination.mjs +13 -16
  199. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  200. package/fesm2022/cmat-components-password-strength.mjs +10 -10
  201. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  202. package/fesm2022/cmat-components-popover.mjs +13 -16
  203. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  204. package/fesm2022/cmat-components-progress-bar.mjs +3 -3
  205. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  206. package/fesm2022/cmat-components-rating.mjs +4 -4
  207. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  208. package/fesm2022/cmat-components-select-search.mjs +10 -10
  209. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  210. package/fesm2022/cmat-components-select-tree.mjs +4 -7
  211. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  212. package/fesm2022/cmat-components-timeline.mjs +15 -19
  213. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  214. package/fesm2022/cmat-components-toast.mjs +10 -10
  215. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  216. package/fesm2022/cmat-components-transfer-picker.mjs +20 -26
  217. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  218. package/fesm2022/cmat-components-upload.mjs +9 -9
  219. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  220. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  221. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  222. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  223. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  224. package/fesm2022/cmat-directives-digit-only.mjs +6 -6
  225. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  226. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  227. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  228. package/fesm2022/cmat-lib-mock-api.mjs +7 -7
  229. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  230. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  231. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  232. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  233. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  234. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  235. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  236. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  237. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  238. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  239. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  240. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  241. package/fesm2022/cmat-services-alert.mjs +3 -3
  242. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  243. package/fesm2022/cmat-services-config.mjs +6 -6
  244. package/fesm2022/cmat-services-confirmation.mjs +6 -6
  245. package/fesm2022/cmat-services-data.mjs +3 -3
  246. package/fesm2022/cmat-services-data.mjs.map +1 -1
  247. package/fesm2022/cmat-services-loading.mjs +6 -6
  248. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  249. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  250. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  251. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  252. package/fesm2022/cmat-services-platform.mjs +3 -3
  253. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  254. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  255. package/fesm2022/cmat-services-title.mjs +3 -3
  256. package/fesm2022/cmat-services-title.mjs.map +1 -1
  257. package/fesm2022/cmat-services-translation.mjs +3 -3
  258. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  259. package/fesm2022/cmat-services-utils.mjs +3 -3
  260. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  261. package/fesm2022/cmat-validators.mjs.map +1 -1
  262. package/package.json +111 -102
  263. package/styles/overrides/angular-material.scss +0 -1
  264. package/styles/overrides/quill.scss +102 -0
  265. package/styles/themes.scss +19 -19
@@ -527,14 +527,14 @@ export class CmatVerticalNavigationComponent {
527
527
  // Execute the observable
528
528
  this.openedChanged.next(open);
529
529
  }
530
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatVerticalNavigationComponent, deps: [{ token: i1.AnimationBuilder }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.Router }, { token: i3.ScrollStrategyOptions }, { token: i4.CmatNavigationService }, { token: i5.CmatUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
531
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.9", type: CmatVerticalNavigationComponent, isStandalone: true, selector: "cmat-vertical-navigation", inputs: { appearance: "appearance", autoCollapse: "autoCollapse", editState: "editState", inner: "inner", mode: "mode", name: "name", navigation: "navigation", opened: "opened", position: "position", transparentOverlay: "transparentOverlay" }, outputs: { appearanceChanged: "appearanceChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", positionChanged: "positionChanged", editSelectedItemChanged: "editSelectedItemChanged" }, host: { listeners: { "mouseenter": "onMouseenter()", "mouseleave": "onMouseleave()" }, properties: { "class": "this.classList", "style": "this.styleList" } }, viewQueries: [{ propertyName: "_navigationContentEl", first: true, predicate: ["navigationContent"], descendants: true }], exportAs: ["cmatVerticalNavigation"], usesOnChanges: true, ngImport: i0, template: "<div class=\"cmat-vertical-navigation-wrapper\">\n\n <!-- Header -->\n <div class=\"cmat-vertical-navigation-header\">\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\n </div>\n\n <!-- Content -->\n <div class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" #navigationContent>\n\n <!-- Content header -->\n <div class=\"cmat-vertical-navigation-content-header\">\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\n </div>\n\n <!-- Items -->\n @for (item of navigation; track trackByFn($index, item)) {\n <!-- Skip the hidden items -->\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\n <!-- Aside -->\n @if (item.type === 'aside') {\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" (click)=\"toggleAside(item)\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-aside-item>\n }\n <!-- Basic -->\n @if (item.type === 'basic') {\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-basic-item>\n }\n <!-- Collapsable -->\n @if (item.type === 'collapsable') {\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\"\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\n }\n <!-- Divider -->\n @if (item.type === 'divider') {\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-divider-item>\n }\n <!-- Group -->\n @if (item.type === 'group') {\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-group-item>\n }\n <!-- Spacer -->\n @if (item.type === 'spacer') {\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-spacer-item>\n }\n }\n }\n\n <!-- Content footer -->\n <div class=\"cmat-vertical-navigation-content-footer\">\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\n </div>\n\n </div>\n <!-- Footer -->\n <div class=\"cmat-vertical-navigation-footer\">\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\n </div>\n\n</div>\n\n<!-- Aside -->\n@if (activeAsideItemId) {\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\n [@fadeOutRight]=\"position === 'right'\">\n <!-- Items -->\n @for (item of navigation; track trackByFn($index, item)) {\n <!-- Skip the hidden items -->\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\n <!-- Aside -->\n @if (item.type === 'aside' && item.id === activeAsideItemId) {\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\n </cmat-vertical-navigation-aside-item>\n }\n }\n }\n </div>\n}", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"], dependencies: [{ kind: "component", type: CmatVerticalNavigationAsideItemComponent, selector: "cmat-vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "name", "skipChildren", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationBasicItemComponent, selector: "cmat-vertical-navigation-basic-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationCollapsableItemComponent, selector: "cmat-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationDividerItemComponent, selector: "cmat-vertical-navigation-divider-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationGroupItemComponent, selector: "cmat-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationSpacerItemComponent, selector: "cmat-vertical-navigation-spacer-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
530
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatVerticalNavigationComponent, deps: [{ token: i1.AnimationBuilder }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.Router }, { token: i3.ScrollStrategyOptions }, { token: i4.CmatNavigationService }, { token: i5.CmatUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
531
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: CmatVerticalNavigationComponent, isStandalone: true, selector: "cmat-vertical-navigation", inputs: { appearance: "appearance", autoCollapse: "autoCollapse", editState: "editState", inner: "inner", mode: "mode", name: "name", navigation: "navigation", opened: "opened", position: "position", transparentOverlay: "transparentOverlay" }, outputs: { appearanceChanged: "appearanceChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", positionChanged: "positionChanged", editSelectedItemChanged: "editSelectedItemChanged" }, host: { listeners: { "mouseenter": "onMouseenter()", "mouseleave": "onMouseleave()" }, properties: { "class": "this.classList", "style": "this.styleList" } }, viewQueries: [{ propertyName: "_navigationContentEl", first: true, predicate: ["navigationContent"], descendants: true }], exportAs: ["cmatVerticalNavigation"], usesOnChanges: true, ngImport: i0, template: "<div class=\"cmat-vertical-navigation-wrapper\">\r\n\r\n <!-- Header -->\r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Content -->\r\n <div class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" #navigationContent>\r\n\r\n <!-- Content header -->\r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside') {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" (click)=\"toggleAside(item)\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n <!-- Basic -->\r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n <!-- Collapsable -->\r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n <!-- Divider -->\r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n <!-- Group -->\r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n <!-- Spacer -->\r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n\r\n <!-- Content footer -->\r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n <!-- Footer -->\r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- Aside -->\r\n@if (activeAsideItemId) {\r\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\r\n [@fadeOutRight]=\"position === 'right'\">\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside' && item.id === activeAsideItemId) {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n }\r\n }\r\n </div>\r\n}", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"], dependencies: [{ kind: "component", type: CmatVerticalNavigationAsideItemComponent, selector: "cmat-vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "name", "skipChildren", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationBasicItemComponent, selector: "cmat-vertical-navigation-basic-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationCollapsableItemComponent, selector: "cmat-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationDividerItemComponent, selector: "cmat-vertical-navigation-divider-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationGroupItemComponent, selector: "cmat-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationSpacerItemComponent, selector: "cmat-vertical-navigation-spacer-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
532
532
  }
533
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatVerticalNavigationComponent, decorators: [{
533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatVerticalNavigationComponent, decorators: [{
534
534
  type: Component,
535
535
  args: [{ selector: 'cmat-vertical-navigation', animations: cmatAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatVerticalNavigation', standalone: true, imports: [CmatVerticalNavigationAsideItemComponent, CmatVerticalNavigationBasicItemComponent,
536
536
  CmatVerticalNavigationCollapsableItemComponent, CmatVerticalNavigationDividerItemComponent,
537
- CmatVerticalNavigationGroupItemComponent, CmatVerticalNavigationSpacerItemComponent], template: "<div class=\"cmat-vertical-navigation-wrapper\">\n\n <!-- Header -->\n <div class=\"cmat-vertical-navigation-header\">\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\n </div>\n\n <!-- Content -->\n <div class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" #navigationContent>\n\n <!-- Content header -->\n <div class=\"cmat-vertical-navigation-content-header\">\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\n </div>\n\n <!-- Items -->\n @for (item of navigation; track trackByFn($index, item)) {\n <!-- Skip the hidden items -->\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\n <!-- Aside -->\n @if (item.type === 'aside') {\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" (click)=\"toggleAside(item)\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-aside-item>\n }\n <!-- Basic -->\n @if (item.type === 'basic') {\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-basic-item>\n }\n <!-- Collapsable -->\n @if (item.type === 'collapsable') {\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\"\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\n }\n <!-- Divider -->\n @if (item.type === 'divider') {\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-divider-item>\n }\n <!-- Group -->\n @if (item.type === 'group') {\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-group-item>\n }\n <!-- Spacer -->\n @if (item.type === 'spacer') {\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\n </cmat-vertical-navigation-spacer-item>\n }\n }\n }\n\n <!-- Content footer -->\n <div class=\"cmat-vertical-navigation-content-footer\">\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\n </div>\n\n </div>\n <!-- Footer -->\n <div class=\"cmat-vertical-navigation-footer\">\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\n </div>\n\n</div>\n\n<!-- Aside -->\n@if (activeAsideItemId) {\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\n [@fadeOutRight]=\"position === 'right'\">\n <!-- Items -->\n @for (item of navigation; track trackByFn($index, item)) {\n <!-- Skip the hidden items -->\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\n <!-- Aside -->\n @if (item.type === 'aside' && item.id === activeAsideItemId) {\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\n </cmat-vertical-navigation-aside-item>\n }\n }\n }\n </div>\n}", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"] }]
537
+ CmatVerticalNavigationGroupItemComponent, CmatVerticalNavigationSpacerItemComponent], template: "<div class=\"cmat-vertical-navigation-wrapper\">\r\n\r\n <!-- Header -->\r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Content -->\r\n <div class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" #navigationContent>\r\n\r\n <!-- Content header -->\r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside') {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" (click)=\"toggleAside(item)\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n <!-- Basic -->\r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n <!-- Collapsable -->\r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n <!-- Divider -->\r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n <!-- Group -->\r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n <!-- Spacer -->\r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n\r\n <!-- Content footer -->\r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n <!-- Footer -->\r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- Aside -->\r\n@if (activeAsideItemId) {\r\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\r\n [@fadeOutRight]=\"position === 'right'\">\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside' && item.id === activeAsideItemId) {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n }\r\n }\r\n </div>\r\n}", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"] }]
538
538
  }], ctorParameters: () => [{ type: i1.AnimationBuilder }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i2.Router }, { type: i3.ScrollStrategyOptions }, { type: i4.CmatNavigationService }, { type: i5.CmatUtilsService }], propDecorators: { appearance: [{
539
539
  type: Input
540
540
  }], autoCollapse: [{
@@ -581,4 +581,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
581
581
  type: HostListener,
582
582
  args: ['mouseleave']
583
583
  }] } });
584
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvdmVydGljYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvdmVydGljYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBcUMsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBaUIsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBNEIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9QLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFB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QkFFaUMsb0JBQW9CO3NCQUEzRCxTQUFTO3VCQUFDLG1CQUFtQjtnQkEwQ0osU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPO2dCQXlCTSxTQUFTO3NCQUFsQyxXQUFXO3VCQUFDLE9BQU87Z0JBZ0JwQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFlMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25QbGF5ZXIsIHN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgU2Nyb2xsU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGNtYXRBbmltYXRpb25zIH0gZnJvbSAnY21hdC9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ21hdFV0aWxzU2VydmljZSB9IGZyb20gJ2NtYXQvc2VydmljZXMvdXRpbHMnO1xyXG5pbXBvcnQgeyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQXNpZGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FzaWRlL2FzaWRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25CYXNpY0l0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYmFzaWMvYmFzaWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbGxhcHNhYmxlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsYXBzYWJsZS9jb2xsYXBzYWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uRGl2aWRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Hcm91cEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ3JvdXAvZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ21hdFZlcnRpY2FsTmF2aWdhdGlvblNwYWNlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3BhY2VyL3NwYWNlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbWF0TmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbWF0TmF2aWdhdGlvbkl0ZW0sIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25BcHBlYXJhbmNlLCBDbWF0VmVydGljYWxOYXZpZ2F0aW9uTW9kZSwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvblBvc2l0aW9uIH0gZnJvbSAnLi4vbmF2aWdhdGlvbi50eXBlcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmVydGljYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdmVydGljYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGFuaW1hdGlvbnM6IGNtYXRBbmltYXRpb25zLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0VmVydGljYWxOYXZpZ2F0aW9uJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkFzaWRlSXRlbUNvbXBvbmVudCwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkJhc2ljSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbGxhcHNhYmxlSXRlbUNvbXBvbmVudCwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkRpdmlkZXJJdGVtQ29tcG9uZW50LCBcclxuICAgICAgICAgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkdyb3VwSXRlbUNvbXBvbmVudCwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvblNwYWNlckl0ZW1Db21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9pbm5lcjogQm9vbGVhbklucHV0O1xyXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX29wZW5lZDogQm9vbGVhbklucHV0O1xyXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3RyYW5zcGFyZW50T3ZlcmxheTogQm9vbGVhbklucHV0O1xyXG4gICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cclxuXHJcbiAgICBASW5wdXQoKSBhcHBlYXJhbmNlOiBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQXBwZWFyYW5jZSA9ICdkZWZhdWx0JztcclxuICAgIEBJbnB1dCgpIGF1dG9Db2xsYXBzZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBlZGl0U3RhdGU6Ym9vbGVhbj0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBpbm5lcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbW9kZTogQ21hdFZlcnRpY2FsTmF2aWdhdGlvbk1vZGUgPSAnc2lkZSc7XHJcbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSB0aGlzLl9jbWF0VXRpbHNTZXJ2aWNlLnJhbmRvbUlkKCk7XHJcbiAgICBASW5wdXQoKSBuYXZpZ2F0aW9uOiBDbWF0TmF2aWdhdGlvbkl0ZW1bXTtcclxuICAgIEBJbnB1dCgpIG9wZW5lZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogQ21hdFZlcnRpY2FsTmF2aWdhdGlvblBvc2l0aW9uID0gJ2xlZnQnO1xyXG4gICAgQElucHV0KCkgdHJhbnNwYXJlbnRPdmVybGF5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgYXBwZWFyYW5jZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDbWF0VmVydGljYWxOYXZpZ2F0aW9uQXBwZWFyYW5jZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENtYXRWZXJ0aWNhbE5hdmlnYXRpb25BcHBlYXJhbmNlPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG1vZGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvbk1vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDbWF0VmVydGljYWxOYXZpZ2F0aW9uTW9kZT4oKTtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvcGVuZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgcG9zaXRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvblBvc2l0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvblBvc2l0aW9uPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q21hdE5hdmlnYXRpb25JdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q21hdE5hdmlnYXRpb25JdGVtPigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ25hdmlnYXRpb25Db250ZW50JykgcHJpdmF0ZSBfbmF2aWdhdGlvbkNvbnRlbnRFbDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gICAgYWN0aXZlQXNpZGVJdGVtSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gICAgb25Db2xsYXBzYWJsZUl0ZW1Db2xsYXBzZWQ6IFJlcGxheVN1YmplY3Q8Q21hdE5hdmlnYXRpb25JdGVtPiA9IG5ldyBSZXBsYXlTdWJqZWN0PENtYXROYXZpZ2F0aW9uSXRlbT4oMSk7XHJcbiAgICBvbkNvbGxhcHNhYmxlSXRlbUV4cGFuZGVkOiBSZXBsYXlTdWJqZWN0PENtYXROYXZpZ2F0aW9uSXRlbT4gPSBuZXcgUmVwbGF5U3ViamVjdDxDbWF0TmF2aWdhdGlvbkl0ZW0+KDEpO1xyXG4gICAgb25SZWZyZXNoZWQ6IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcclxuXHJcbiAgICBwcml2YXRlIF9hbmltYXRpb25zRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfYXNpZGVPdmVybGF5OiBIVE1MRWxlbWVudCB8IG51bGw7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9oYW5kbGVBc2lkZU92ZXJsYXlDbGljazogYW55O1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaGFuZGxlT3ZlcmxheUNsaWNrOiBhbnk7XHJcbiAgICBwcml2YXRlIF9ob3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9vdmVybGF5OiBIVE1MRWxlbWVudCB8IG51bGw7XHJcbiAgICBwcml2YXRlIF9wbGF5ZXI6IEFuaW1hdGlvblBsYXllcjtcclxuICAgIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiBTY3JvbGxTdHJhdGVneSA9IHRoaXMuX3Njcm9sbFN0cmF0ZWd5T3B0aW9ucy5ibG9jaygpO1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2FuaW1hdGlvbkJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXIyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2Nyb2xsU3RyYXRlZ3lPcHRpb25zOiBTY3JvbGxTdHJhdGVneU9wdGlvbnMsXHJcbiAgICAgICAgcHJpdmF0ZSBfY21hdE5hdmlnYXRpb25TZXJ2aWNlOiBDbWF0TmF2aWdhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfY21hdFV0aWxzU2VydmljZTogQ21hdFV0aWxzU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlQXNpZGVPdmVybGF5Q2xpY2sgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5faGFuZGxlT3ZlcmxheUNsaWNrID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gQCBBY2Nlc3NvcnNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIb3N0IGJpbmRpbmcgZm9yIGNvbXBvbmVudCBjbGFzc2VzXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NMaXN0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFuaW1hdGlvbnMtZW5hYmxlZCc6IHRoaXMuX2FuaW1hdGlvbnNFbmFibGVkLFxyXG4gICAgICAgICAgICBbYGNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hcHBlYXJhbmNlLSR7dGhpcy5hcHBlYXJhbmNlfWBdOiB0cnVlLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24taG92ZXInOiB0aGlzLl9ob3ZlcmVkLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24taW5uZXInOiB0aGlzLmlubmVyLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tbW9kZS1vdmVyJzogdGhpcy5tb2RlID09PSAnb3ZlcicsXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgICAgICAgJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1tb2RlLXNpZGUnOiB0aGlzLm1vZGUgPT09ICdzaWRlJyxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW9wZW5lZCc6IHRoaXMub3BlbmVkLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tcG9zaXRpb24tbGVmdCc6IHRoaXMucG9zaXRpb24gPT09ICdsZWZ0JyxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXBvc2l0aW9uLXJpZ2h0JzogdGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIb3N0IGJpbmRpbmcgZm9yIGNvbXBvbmVudCBpbmxpbmUgc3R5bGVzXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgc3R5bGVMaXN0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3Zpc2liaWxpdHknOiB0aGlzLm9wZW5lZCA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gQCBEZWNvcmF0ZWQgbWV0aG9kc1xyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9uIG1vdXNlZW50ZXJcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcclxuICAgIG9uTW91c2VlbnRlcigpOiB2b2lkIHtcclxuICAgICAgICAvLyBFbmFibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICB0aGlzLl9lbmFibGVBbmltYXRpb25zKCk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgaG92ZXJlZFxyXG4gICAgICAgIHRoaXMuX2hvdmVyZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT24gbW91c2VsZWF2ZVxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gICAgb25Nb3VzZWxlYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIEVuYWJsZSB0aGUgYW5pbWF0aW9uc1xyXG4gICAgICAgIHRoaXMuX2VuYWJsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSBob3ZlcmVkXHJcbiAgICAgICAgdGhpcy5faG92ZXJlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAvLyBAIExpZmVjeWNsZSBob29rc1xyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9uIGNoYW5nZXNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgLy8gQXBwZWFyYW5jZVxyXG4gICAgICAgIGlmICgnYXBwZWFyYW5jZScgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgICAgIHRoaXMuYXBwZWFyYW5jZUNoYW5nZWQubmV4dChjaGFuZ2VzWydhcHBlYXJhbmNlJ10uY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElubmVyXHJcbiAgICAgICAgaWYgKCdpbm5lcicgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBDb2VyY2UgdGhlIHZhbHVlIHRvIGEgYm9vbGVhblxyXG4gICAgICAgICAgICB0aGlzLmlubmVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGNoYW5nZXNbJ2lubmVyJ10uY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIE1vZGVcclxuICAgICAgICBpZiAoJ21vZGUnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gR2V0IHRoZSBwcmV2aW91cyBhbmQgY3VycmVudCB2YWx1ZXNcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudE1vZGUgPSBjaGFuZ2VzWydtb2RlJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c01vZGUgPSBjaGFuZ2VzWydtb2RlJ10ucHJldmlvdXNWYWx1ZTtcclxuXHJcbiAgICAgICAgICAgIC8vIERpc2FibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBtb2RlIGNoYW5nZXM6ICdvdmVyIC0+IHNpZGUnXHJcbiAgICAgICAgICAgIGlmIChwcmV2aW91c01vZGUgPT09ICdvdmVyJyAmJiBjdXJyZW50TW9kZSA9PT0gJ3NpZGUnKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBIaWRlIHRoZSBvdmVybGF5XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9oaWRlT3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgbW9kZSBjaGFuZ2VzOiAnc2lkZSAtPiBvdmVyJ1xyXG4gICAgICAgICAgICBpZiAocHJldmlvdXNNb2RlID09PSAnc2lkZScgJiYgY3VycmVudE1vZGUgPT09ICdvdmVyJykge1xyXG4gICAgICAgICAgICAgICAgLy8gQ2xvc2UgdGhlIGFzaWRlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQXNpZGUoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBpcyBvcGVuZWRcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNob3cgdGhlIG92ZXJsYXlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG93T3ZlcmxheSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgICAgIHRoaXMubW9kZUNoYW5nZWQubmV4dChjdXJyZW50TW9kZSk7XHJcblxyXG4gICAgICAgICAgICAvLyBFbmFibGUgdGhlIGFuaW1hdGlvbnMgYWZ0ZXIgYSBkZWxheVxyXG4gICAgICAgICAgICAvLyBUaGUgZGVsYXkgbXVzdCBiZSBiaWdnZXIgdGhhbiB0aGUgY3VycmVudCB0cmFuc2l0aW9uLWR1cmF0aW9uXHJcbiAgICAgICAgICAgIC8vIHRvIG1ha2Ugc3VyZSBub3RoaW5nIHdpbGwgYmUgYW5pbWF0ZWQgd2hpbGUgdGhlIG1vZGUgY2hhbmdpbmdcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVBbmltYXRpb25zKCk7XHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBOYXZpZ2F0aW9uXHJcbiAgICAgICAgaWYgKCduYXZpZ2F0aW9uJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIC8vIE1hcmsgZm9yIGNoZWNrXHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gT3BlbmVkXHJcbiAgICAgICAgaWYgKCdvcGVuZWQnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gQ29lcmNlIHRoZSB2YWx1ZSB0byBhIGJvb2xlYW5cclxuICAgICAgICAgICAgdGhpcy5vcGVuZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlc1snb3BlbmVkJ10uY3VycmVudFZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIE9wZW4vY2xvc2UgdGhlIG5hdmlnYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlT3BlbmVkKHRoaXMub3BlbmVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFBvc2l0aW9uXHJcbiAgICAgICAgaWYgKCdwb3NpdGlvbicgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25DaGFuZ2VkLm5leHQoY2hhbmdlc1sncG9zaXRpb24nXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gVHJhbnNwYXJlbnQgb3ZlcmxheVxyXG4gICAgICAgIGlmICgndHJhbnNwYXJlbnRPdmVybGF5JyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIC8vIENvZXJjZSB0aGUgdmFsdWUgdG8gYSBib29sZWFuXHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNwYXJlbnRPdmVybGF5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGNoYW5nZXNbJ3RyYW5zcGFyZW50T3ZlcmxheSddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT24gaW5pdFxyXG4gICAgICovXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIG5hbWUgaW5wdXQgaXMgbm90IGFuIGVtcHR5IHN0cmluZ1xyXG4gICAgICAgIGlmICh0aGlzLm5hbWUgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmFtZSA9IHRoaXMuX2NtYXRVdGlsc1NlcnZpY2UucmFuZG9tSWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJlZ2lzdGVyIHRoZSBuYXZpZ2F0aW9uIGNvbXBvbmVudFxyXG4gICAgICAgIHRoaXMuX2NtYXROYXZpZ2F0aW9uU2VydmljZS5yZWdpc3RlckNvbXBvbmVudCh0aGlzLm5hbWUsIHRoaXMpO1xyXG5cclxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlICdOYXZpZ2F0aW9uRW5kJyBldmVudFxyXG4gICAgICAgIHRoaXMuX3JvdXRlci5ldmVudHNcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbW9kZSBpcyAnb3ZlcicgYW5kIHRoZSBuYXZpZ2F0aW9uIGlzIG9wZW5lZC4uLlxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ292ZXInICYmIHRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2xvc2UgdGhlIG5hdmlnYXRpb25cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG1vZGUgaXMgJ3NpZGUnIGFuZCB0aGUgYXNpZGUgaXMgYWN0aXZlLi4uXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnc2lkZScgJiYgdGhpcy5hY3RpdmVBc2lkZUl0ZW1JZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIENsb3NlIHRoZSBhc2lkZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFmdGVyIHZpZXcgaW5pdFxyXG4gICAgICovXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBSZXR1cm4gaWYgJ25hdmlnYXRpb24gY29udGVudCcgZWxlbWVudCBkb2VzIG5vdCBleGlzdFxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX25hdmlnYXRpb25Db250ZW50RWwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgYWN0aXZlSXRlbSA9IHRoaXMuX25hdmlnYXRpb25Db250ZW50RWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYWN0aXZlJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBhY3RpdmUgaXRlbSBleGlzdHMsIHNjcm9sbCBpdCBpbnRvIHZpZXdcclxuICAgICAgICAgICAgaWYgKGFjdGl2ZUl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVJdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbVxyXG4gICAgICAgICAgICAgICAgICAgIDw9ICh0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tIC0gTWF0aC5hYnMoLTEyMCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25Db250ZW50RWwubmF0aXZlRWxlbWVudC5zY3JvbGxUbyh7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBhY3RpdmVJdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25Db250ZW50RWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLSAxMjAsIGJlaGF2aW9yOiAnc21vb3RoJ1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPbiBkZXN0cm95XHJcbiAgICAgKi9cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIEZvcmNlZnVsbHkgY2xvc2UgdGhlIG5hdmlnYXRpb24gYW5kIGFzaWRlIGluIGNhc2UgdGhleSBhcmUgb3BlbmVkXHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG5cclxuICAgICAgICAvLyBEZXJlZ2lzdGVyIHRoZSBuYXZpZ2F0aW9uIGNvbXBvbmVudCBmcm9tIHRoZSByZWdpc3RyeVxyXG4gICAgICAgIHRoaXMuX2NtYXROYXZpZ2F0aW9uU2VydmljZS5kZXJlZ2lzdGVyQ29tcG9uZW50KHRoaXMubmFtZSk7XHJcblxyXG4gICAgICAgIC8vIFVuc3Vic2NyaWJlIGZyb20gYWxsIHN1YnNjcmlwdGlvbnNcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gQCBQdWJsaWMgbWV0aG9kc1xyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZnJlc2ggdGhlIGNvbXBvbmVudCB0byBhcHBseSB0aGUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICByZWZyZXNoKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIE1hcmsgZm9yIGNoZWNrXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIG9ic2VydmFibGVcclxuICAgICAgICB0aGlzLm9uUmVmcmVzaGVkLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVuIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgKi9cclxuICAgIG9wZW4oKTogdm9pZCB7XHJcbiAgICAgICAgLy8gUmV0dXJuIGlmIHRoZSBuYXZpZ2F0aW9uIGlzIGFscmVhZHkgb3BlblxyXG4gICAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIG9wZW5lZFxyXG4gICAgICAgIHRoaXMuX3RvZ2dsZU9wZW5lZCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENsb3NlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgKi9cclxuICAgIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFJldHVybiBpZiB0aGUgbmF2aWdhdGlvbiBpcyBhbHJlYWR5IGNsb3NlZFxyXG4gICAgICAgIGlmICghdGhpcy5vcGVuZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ2xvc2UgdGhlIGFzaWRlXHJcbiAgICAgICAgdGhpcy5jbG9zZUFzaWRlKCk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgb3BlbmVkXHJcbiAgICAgICAgdGhpcy5fdG9nZ2xlT3BlbmVkKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZSB0aGUgbmF2aWdhdGlvblxyXG4gICAgICovXHJcbiAgICB0b2dnbGUoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gVG9nZ2xlXHJcbiAgICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wZW4gdGhlIGFzaWRlXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGl0ZW1cclxuICAgICAqL1xyXG4gICAgb3BlbkFzaWRlKGl0ZW06IENtYXROYXZpZ2F0aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgICAgIC8vIFJldHVybiBpZiB0aGUgaXRlbSBpcyBkaXNhYmxlZFxyXG4gICAgICAgIGlmIChpdGVtLmRpc2FibGVkIHx8ICFpdGVtLmlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIE9wZW5cclxuICAgICAgICB0aGlzLmFjdGl2ZUFzaWRlSXRlbUlkID0gaXRlbS5pZDtcclxuXHJcbiAgICAgICAgLy8gU2hvdyB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICAgIHRoaXMuX3Nob3dBc2lkZU92ZXJsYXkoKTtcclxuXHJcbiAgICAgICAgLy8gTWFyayBmb3IgY2hlY2tcclxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENsb3NlIHRoZSBhc2lkZVxyXG4gICAgICovXHJcbiAgICBjbG9zZUFzaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIENsb3NlXHJcbiAgICAgICAgdGhpcy5hY3RpdmVBc2lkZUl0ZW1JZCA9IG51bGw7XHJcblxyXG4gICAgICAgIC8vIEhpZGUgdGhlIGFzaWRlIG92ZXJsYXlcclxuICAgICAgICB0aGlzLl9oaWRlQXNpZGVPdmVybGF5KCk7XHJcblxyXG4gICAgICAgIC8vIE1hcmsgZm9yIGNoZWNrXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUb2dnbGUgdGhlIGFzaWRlXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGl0ZW1cclxuICAgICAqL1xyXG4gICAgdG9nZ2xlQXNpZGUoaXRlbTogQ21hdE5hdmlnYXRpb25JdGVtKTogdm9pZCB7XHJcbiAgICAgICAgLy8gVG9nZ2xlXHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlQXNpZGVJdGVtSWQgPT09IGl0ZW0uaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZUFzaWRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5Bc2lkZShpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFjayBieSBmdW5jdGlvbiBmb3IgbmdGb3IgbG9vcHNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaW5kZXhcclxuICAgICAqIEBwYXJhbSBpdGVtXHJcbiAgICAgKi9cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmlkIHx8IGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdEl0ZW0oaXRlbTogQ21hdE5hdmlnYXRpb25JdGVtKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lZGl0U2VsZWN0ZWRJdGVtQ2hhbmdlZC5uZXh0KGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gQCBQcml2YXRlIG1ldGhvZHNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbmFibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9lbmFibGVBbmltYXRpb25zKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFJldHVybiBpZiB0aGUgYW5pbWF0aW9ucyBhcmUgYWxyZWFkeSBlbmFibGVkXHJcbiAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbnNFbmFibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEVuYWJsZSB0aGUgYW5pbWF0aW9uc1xyXG4gICAgICAgIHRoaXMuX2FuaW1hdGlvbnNFbmFibGVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERpc2FibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9kaXNhYmxlQW5pbWF0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGFuaW1hdGlvbnMgYXJlIGFscmVhZHkgZGlzYWJsZWRcclxuICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbnNFbmFibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIERpc2FibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICB0aGlzLl9hbmltYXRpb25zRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdyB0aGUgb3ZlcmxheVxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3Nob3dPdmVybGF5KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFJldHVybiBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIG92ZXJsYXlcclxuICAgICAgICBpZiAodGhpcy5fYXNpZGVPdmVybGF5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgb3ZlcmxheSBlbGVtZW50XHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheSA9IHRoaXMuX3JlbmRlcmVyMi5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXkpIHtcclxuICAgICAgICAgICAgLy8gQWRkIGEgY2xhc3MgdG8gdGhlIG92ZXJsYXkgZWxlbWVudFxyXG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5LmNsYXNzTGlzdC5hZGQoJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1vdmVybGF5Jyk7XHJcblxyXG4gICAgICAgICAgICAvLyBBZGQgYSBjbGFzcyBkZXBlbmRpbmcgb24gdGhlIHRyYW5zcGFyZW50T3ZlcmxheSBvcHRpb25cclxuICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNwYXJlbnRPdmVybGF5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vdmVybGF5LmNsYXNzTGlzdC5hZGQoJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1vdmVybGF5LXRyYW5zcGFyZW50Jyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgb3ZlcmxheSB0byB0aGUgcGFyZW50IG9mIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgdGhpcy5fb3ZlcmxheSk7XHJcblxyXG4gICAgICAgICAgICAvLyBFbmFibGUgYmxvY2sgc2Nyb2xsIHN0cmF0ZWd5XHJcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFN0cmF0ZWd5LmVuYWJsZSgpO1xyXG5cclxuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBlbnRlciBhbmltYXRpb24gYW5kIGF0dGFjaCBpdCB0byB0aGUgcGxheWVyXHJcbiAgICAgICAgICAgIHRoaXMuX3BsYXllciA9IHRoaXMuX2FuaW1hdGlvbkJ1aWxkZXIuYnVpbGQoW1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXHJcbiAgICAgICAgICAgIF0pLmNyZWF0ZSh0aGlzLl9vdmVybGF5KTtcclxuXHJcbiAgICAgICAgICAgIC8vIFBsYXkgdGhlIGFuaW1hdGlvblxyXG4gICAgICAgICAgICB0aGlzLl9wbGF5ZXIucGxheSgpO1xyXG5cclxuICAgICAgICAgICAgLy8gQWRkIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBvdmVybGF5XHJcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVPdmVybGF5Q2xpY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhpZGUgdGhlIG92ZXJsYXlcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9oaWRlT3ZlcmxheSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX292ZXJsYXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBsZWF2ZSBhbmltYXRpb24gYW5kIGF0dGFjaCBpdCB0byB0aGUgcGxheWVyXHJcbiAgICAgICAgdGhpcy5fcGxheWVyID0gdGhpcy5fYW5pbWF0aW9uQnVpbGRlci5idWlsZChbXHJcbiAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKVxyXG4gICAgICAgIF0pLmNyZWF0ZSh0aGlzLl9vdmVybGF5KTtcclxuXHJcbiAgICAgICAgLy8gUGxheSB0aGUgYW5pbWF0aW9uXHJcbiAgICAgICAgdGhpcy5fcGxheWVyLnBsYXkoKTtcclxuXHJcbiAgICAgICAgLy8gT25jZSB0aGUgYW5pbWF0aW9uIGlzIGRvbmUuLi5cclxuICAgICAgICB0aGlzLl9wbGF5ZXIub25Eb25lKCgpID0+IHtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBvdmVybGF5IHN0aWxsIGV4aXN0cy4uLlxyXG4gICAgICAgICAgICBpZiAodGhpcy5fb3ZlcmxheSkge1xyXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lclxyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZU92ZXJsYXlDbGljayk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBvdmVybGF5XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vdmVybGF5LnBhcmVudE5vZGU/LnJlbW92ZUNoaWxkKHRoaXMuX292ZXJsYXkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheSA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIERpc2FibGUgYmxvY2sgc2Nyb2xsIHN0cmF0ZWd5XHJcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFN0cmF0ZWd5LmRpc2FibGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgdGhlIGFzaWRlIG92ZXJsYXlcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9zaG93QXNpZGVPdmVybGF5KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFJldHVybiBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIG92ZXJsYXlcclxuICAgICAgICBpZiAodGhpcy5fYXNpZGVPdmVybGF5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgYXNpZGUgb3ZlcmxheSBlbGVtZW50XHJcbiAgICAgICAgdGhpcy5fYXNpZGVPdmVybGF5ID0gdGhpcy5fcmVuZGVyZXIyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fYXNpZGVPdmVybGF5KSB7XHJcbiAgICAgICAgICAgIC8vIEFkZCBhIGNsYXNzIHRvIHRoZSBhc2lkZSBvdmVybGF5IGVsZW1lbnRcclxuICAgICAgICAgICAgdGhpcy5fYXNpZGVPdmVybGF5LmNsYXNzTGlzdC5hZGQoJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1vdmVybGF5Jyk7XHJcblxyXG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGFzaWRlIG92ZXJsYXkgdG8gdGhlIHBhcmVudCBvZiB0aGUgbmF2aWdhdGlvblxyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsIHRoaXMuX2FzaWRlT3ZlcmxheSk7XHJcblxyXG4gICAgICAgICAgICAvLyBDcmVhdGUgdGhlIGVudGVyIGFuaW1hdGlvbiBhbmQgYXR0YWNoIGl0IHRvIHRoZSBwbGF5ZXJcclxuICAgICAgICAgICAgdGhpcy5fcGxheWVyID1cclxuICAgICAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbkJ1aWxkZXJcclxuICAgICAgICAgICAgICAgICAgICAuYnVpbGQoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSlcclxuICAgICAgICAgICAgICAgICAgICBdKS5jcmVhdGUodGhpcy5fYXNpZGVPdmVybGF5KTtcclxuXHJcbiAgICAgICAgICAgIC8vIFBsYXkgdGhlIGFuaW1hdGlvblxyXG4gICAgICAgICAgICB0aGlzLl9wbGF5ZXIucGxheSgpO1xyXG5cclxuICAgICAgICAgICAgLy8gQWRkIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBhc2lkZSBvdmVybGF5XHJcbiAgICAgICAgICAgIHRoaXMuX2FzaWRlT3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZUFzaWRlT3ZlcmxheUNsaWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaWRlIHRoZSBhc2lkZSBvdmVybGF5XHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfaGlkZUFzaWRlT3ZlcmxheSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIGxlYXZlIGFuaW1hdGlvbiBhbmQgYXR0YWNoIGl0IHRvIHRoZSBwbGF5ZXJcclxuICAgICAgICB0aGlzLl9wbGF5ZXIgPVxyXG4gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25CdWlsZGVyXHJcbiAgICAgICAgICAgICAgICAuYnVpbGQoW1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKVxyXG4gICAgICAgICAgICAgICAgXSkuY3JlYXRlKHRoaXMuX2FzaWRlT3ZlcmxheSk7XHJcblxyXG4gICAgICAgIC8vIFBsYXkgdGhlIGFuaW1hdGlvblxyXG4gICAgICAgIHRoaXMuX3BsYXllci5wbGF5KCk7XHJcblxyXG4gICAgICAgIC8vIE9uY2UgdGhlIGFuaW1hdGlvbiBpcyBkb25lLi4uXHJcbiAgICAgICAgdGhpcy5fcGxheWVyLm9uRG9uZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBhc2lkZSBvdmVybGF5IHN0aWxsIGV4aXN0cy4uLlxyXG4gICAgICAgICAgICBpZiAodGhpcy5fYXNpZGVPdmVybGF5KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGV2ZW50IGxpc3RlbmVyXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hc2lkZU92ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVBc2lkZU92ZXJsYXlDbGljayk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBhc2lkZSBvdmVybGF5XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hc2lkZU92ZXJsYXkucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQodGhpcy5fYXNpZGVPdmVybGF5KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FzaWRlT3ZlcmxheSA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wZW4vY2xvc2UgdGhlIG5hdmlnYXRpb25cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3BlblxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfdG9nZ2xlT3BlbmVkKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICAvLyBTZXQgdGhlIG9wZW5lZFxyXG4gICAgICAgIHRoaXMub3BlbmVkID0gb3BlbjtcclxuXHJcbiAgICAgICAgLy8gRW5hYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgICAgdGhpcy5fZW5hYmxlQW5pbWF0aW9ucygpO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBvcGVuZWQsIGFuZCB0aGUgbW9kZVxyXG4gICAgICAgIC8vIGlzICdvdmVyJywgc2hvdyB0aGUgb3ZlcmxheVxyXG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdvdmVyJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dPdmVybGF5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9oaWRlT3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgdGhpcy5vcGVuZWRDaGFuZ2VkLm5leHQob3Blbik7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi13cmFwcGVyXCI+XG5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24taGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NtYXRWZXJ0aWNhbE5hdmlnYXRpb25IZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8IS0tIENvbnRlbnQgLS0+XG4gIDxkaXYgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tY29udGVudCBvdmVyZmxvdy15LWF1dG8gbGc6b3ZlcmZsb3cteS1oaWRkZW4gbGc6aG92ZXI6b3ZlcmZsb3cteS1hdXRvIHNjcm9sbGJhci1jdXN0b21cIiAjbmF2aWdhdGlvbkNvbnRlbnQ+XG5cbiAgICA8IS0tIENvbnRlbnQgaGVhZGVyIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tY29udGVudC1oZWFkZXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjbWF0VmVydGljYWxOYXZpZ2F0aW9uQ29udGVudEhlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEl0ZW1zIC0tPlxuICAgIEBmb3IgKGl0ZW0gb2YgbmF2aWdhdGlvbjsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgaXRlbSkpIHtcbiAgICAgIDwhLS0gU2tpcCB0aGUgaGlkZGVuIGl0ZW1zIC0tPlxuICAgICAgQGlmICgoaXRlbS5oaWRkZW4gJiYgIWl0ZW0uaGlkZGVuKGl0ZW0pKSB8fCAhaXRlbS5oaWRkZW4pIHtcbiAgICAgICAgPCEtLSBBc2lkZSAtLT5cbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdhc2lkZScpIHtcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFzaWRlLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIiBbYWN0aXZlSXRlbUlkXT1cImFjdGl2ZUFzaWRlSXRlbUlkXCJcbiAgICAgICAgICAgIFthdXRvQ29sbGFwc2VdPVwiYXV0b0NvbGxhcHNlXCIgW3NraXBDaGlsZHJlbl09XCJ0cnVlXCIgKGNsaWNrKT1cInRvZ2dsZUFzaWRlKGl0ZW0pXCIgW2VkaXRTdGF0ZV09XCJlZGl0U3RhdGVcIiAoZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQpXCI+XG4gICAgICAgICAgPC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tYXNpZGUtaXRlbT5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIEJhc2ljIC0tPlxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2Jhc2ljJykge1xuICAgICAgICAgIDxjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tYmFzaWMtaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxuICAgICAgICAgIDwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWJhc2ljLWl0ZW0+XG4gICAgICAgIH1cbiAgICAgICAgPCEtLSBDb2xsYXBzYWJsZSAtLT5cbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdjb2xsYXBzYWJsZScpIHtcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWNvbGxhcHNhYmxlLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIiBbZWRpdFN0YXRlXT1cImVkaXRTdGF0ZVwiIChlZGl0U2VsZWN0ZWRJdGVtQ2hhbmdlZCk9XCJzZWxlY3RJdGVtKCRldmVudClcIlxuICAgICAgICAgIFthdXRvQ29sbGFwc2VdPVwiYXV0b0NvbGxhcHNlXCI+PC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tY29sbGFwc2FibGUtaXRlbT5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIERpdmlkZXIgLS0+XG4gICAgICAgIEBpZiAoaXRlbS50eXBlID09PSAnZGl2aWRlcicpIHtcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWRpdmlkZXItaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxuICAgICAgICAgIDwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWRpdmlkZXItaXRlbT5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIEdyb3VwIC0tPlxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2dyb3VwJykge1xuICAgICAgICAgIDxjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZ3JvdXAtaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFthdXRvQ29sbGFwc2VdPVwiYXV0b0NvbGxhcHNlXCIgW2VkaXRTdGF0ZV09XCJlZGl0U3RhdGVcIiAoZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQpXCI+XG4gICAgICAgICAgPC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZ3JvdXAtaXRlbT5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFNwYWNlciAtLT5cbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdzcGFjZXInKSB7XG4gICAgICAgICAgPGNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1zcGFjZXItaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxuICAgICAgICAgIDwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXNwYWNlci1pdGVtPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgPCEtLSBDb250ZW50IGZvb3RlciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWNvbnRlbnQtZm9vdGVyXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbnRlbnRGb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuICA8IS0tIEZvb3RlciAtLT5cbiAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1mb290ZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPCEtLSBBc2lkZSAtLT5cbkBpZiAoYWN0aXZlQXNpZGVJdGVtSWQpIHtcbiAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS13cmFwcGVyIG92ZXJmbG93LXktYXV0byBsZzpvdmVyZmxvdy15LWhpZGRlbiBsZzpob3ZlcjpvdmVyZmxvdy15LWF1dG8gc2Nyb2xsYmFyLWN1c3RvbVwiXG4gICAgW0BmYWRlSW5MZWZ0XT1cInBvc2l0aW9uID09PSAnbGVmdCdcIiBbQGZhZGVJblJpZ2h0XT1cInBvc2l0aW9uID09PSAncmlnaHQnXCIgW0BmYWRlT3V0TGVmdF09XCJwb3NpdGlvbiA9PT0gJ2xlZnQnXCJcbiAgICBbQGZhZGVPdXRSaWdodF09XCJwb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiPlxuICAgIDwhLS0gSXRlbXMgLS0+XG4gICAgQGZvciAoaXRlbSBvZiBuYXZpZ2F0aW9uOyB0cmFjayB0cmFja0J5Rm4oJGluZGV4LCBpdGVtKSkge1xuICAgICAgPCEtLSBTa2lwIHRoZSBoaWRkZW4gaXRlbXMgLS0+XG4gICAgICBAaWYgKChpdGVtLmhpZGRlbiAmJiAhaXRlbS5oaWRkZW4oaXRlbSkpIHx8ICFpdGVtLmhpZGRlbikge1xuICAgICAgICA8IS0tIEFzaWRlIC0tPlxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2FzaWRlJyAmJiBpdGVtLmlkID09PSBhY3RpdmVBc2lkZUl0ZW1JZCkge1xuICAgICAgICAgIDxjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tYXNpZGUtaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFthdXRvQ29sbGFwc2VdPVwiYXV0b0NvbGxhcHNlXCI+XG4gICAgICAgICAgPC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tYXNpZGUtaXRlbT5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG59Il19
584
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvdmVydGljYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvdmVydGljYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBcUMsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBaUIsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBNEIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9QLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFB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d0NBQXdDLEVBQUUseUNBQXlDLENBQUM7a1NBU2hGLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNhLGlCQUFpQjtzQkFBbkMsTUFBTTtnQkFDWSxXQUFXO3NCQUE3QixNQUFNO2dCQUNZLGFBQWE7c0JBQS9CLE1BQU07Z0JBQ1ksZUFBZTtzQkFBakMsTUFBTTtnQkFDWSx1QkFBdUI7c0JBQXpDLE1BQU07Z0JBRWlDLG9CQUFvQjtzQkFBM0QsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBMENKLFNBQVM7c0JBQWxDLFdBQVc7dUJBQUMsT0FBTztnQkF5Qk0sU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPO2dCQWdCcEIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBZTFCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uQnVpbGRlciwgQW5pbWF0aW9uUGxheWVyLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IFNjcm9sbFN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBjbWF0QW5pbWF0aW9ucyB9IGZyb20gJ2NtYXQvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENtYXRVdGlsc1NlcnZpY2UgfSBmcm9tICdjbWF0L3NlcnZpY2VzL3V0aWxzJztcclxuaW1wb3J0IHsgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkFzaWRlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc2lkZS9hc2lkZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQmFzaWNJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Jhc2ljL2Jhc2ljLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Db2xsYXBzYWJsZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGFwc2FibGUvY29sbGFwc2FibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkRpdmlkZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uR3JvdXBJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dyb3VwL2dyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25TcGFjZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NwYWNlci9zcGFjZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ21hdE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbmF2aWdhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ21hdE5hdmlnYXRpb25JdGVtLCBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQXBwZWFyYW5jZSwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbk1vZGUsIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Qb3NpdGlvbiB9IGZyb20gJy4uL25hdmlnYXRpb24udHlwZXMnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZlcnRpY2FsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3ZlcnRpY2FsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBhbmltYXRpb25zOiBjbWF0QW5pbWF0aW9ucyxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGV4cG9ydEFzOiAnY21hdFZlcnRpY2FsTmF2aWdhdGlvbicsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0NtYXRWZXJ0aWNhbE5hdmlnYXRpb25Bc2lkZUl0ZW1Db21wb25lbnQsIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25CYXNpY0l0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Db2xsYXBzYWJsZUl0ZW1Db21wb25lbnQsIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25EaXZpZGVySXRlbUNvbXBvbmVudCwgXHJcbiAgICAgICAgIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Hcm91cEl0ZW1Db21wb25lbnQsIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25TcGFjZXJJdGVtQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXHJcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaW5uZXI6IEJvb2xlYW5JbnB1dDtcclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9vcGVuZWQ6IEJvb2xlYW5JbnB1dDtcclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV90cmFuc3BhcmVudE92ZXJsYXk6IEJvb2xlYW5JbnB1dDtcclxuICAgIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXHJcblxyXG4gICAgQElucHV0KCkgYXBwZWFyYW5jZTogQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkFwcGVhcmFuY2UgPSAnZGVmYXVsdCc7XHJcbiAgICBASW5wdXQoKSBhdXRvQ29sbGFwc2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZWRpdFN0YXRlOmJvb2xlYW49IGZhbHNlO1xyXG4gICAgQElucHV0KCkgaW5uZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG1vZGU6IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Nb2RlID0gJ3NpZGUnO1xyXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gdGhpcy5fY21hdFV0aWxzU2VydmljZS5yYW5kb21JZCgpO1xyXG4gICAgQElucHV0KCkgbmF2aWdhdGlvbjogQ21hdE5hdmlnYXRpb25JdGVtW107XHJcbiAgICBASW5wdXQoKSBvcGVuZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcG9zaXRpb246IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Qb3NpdGlvbiA9ICdsZWZ0JztcclxuICAgIEBJbnB1dCgpIHRyYW5zcGFyZW50T3ZlcmxheTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGFwcGVhcmFuY2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvbkFwcGVhcmFuY2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxDbWF0VmVydGljYWxOYXZpZ2F0aW9uQXBwZWFyYW5jZT4oKTtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBtb2RlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Nb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvbk1vZGU+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb3BlbmVkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHBvc2l0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Qb3NpdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Qb3NpdGlvbj4oKTtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBlZGl0U2VsZWN0ZWRJdGVtQ2hhbmdlZDogRXZlbnRFbWl0dGVyPENtYXROYXZpZ2F0aW9uSXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPENtYXROYXZpZ2F0aW9uSXRlbT4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCduYXZpZ2F0aW9uQ29udGVudCcpIHByaXZhdGUgX25hdmlnYXRpb25Db250ZW50RWw6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICAgIGFjdGl2ZUFzaWRlSXRlbUlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIG9uQ29sbGFwc2FibGVJdGVtQ29sbGFwc2VkOiBSZXBsYXlTdWJqZWN0PENtYXROYXZpZ2F0aW9uSXRlbT4gPSBuZXcgUmVwbGF5U3ViamVjdDxDbWF0TmF2aWdhdGlvbkl0ZW0+KDEpO1xyXG4gICAgb25Db2xsYXBzYWJsZUl0ZW1FeHBhbmRlZDogUmVwbGF5U3ViamVjdDxDbWF0TmF2aWdhdGlvbkl0ZW0+ID0gbmV3IFJlcGxheVN1YmplY3Q8Q21hdE5hdmlnYXRpb25JdGVtPigxKTtcclxuICAgIG9uUmVmcmVzaGVkOiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XHJcblxyXG4gICAgcHJpdmF0ZSBfYW5pbWF0aW9uc0VuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX2FzaWRlT3ZlcmxheTogSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaGFuZGxlQXNpZGVPdmVybGF5Q2xpY2s6IGFueTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZU92ZXJsYXlDbGljazogYW55O1xyXG4gICAgcHJpdmF0ZSBfaG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gICAgcHJpdmF0ZSBfcGxheWVyOiBBbmltYXRpb25QbGF5ZXI7XHJcbiAgICBwcml2YXRlIF9zY3JvbGxTdHJhdGVneTogU2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLl9zY3JvbGxTdHJhdGVneU9wdGlvbnMuYmxvY2soKTtcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9hbmltYXRpb25CdWlsZGVyOiBBbmltYXRpb25CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5T3B0aW9uczogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zLFxyXG4gICAgICAgIHByaXZhdGUgX2NtYXROYXZpZ2F0aW9uU2VydmljZTogQ21hdE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NtYXRVdGlsc1NlcnZpY2U6IENtYXRVdGlsc1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZUFzaWRlT3ZlcmxheUNsaWNrID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlQXNpZGUoKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZU92ZXJsYXlDbGljayA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgQWNjZXNzb3JzXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSG9zdCBiaW5kaW5nIGZvciBjb21wb25lbnQgY2xhc3Nlc1xyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzTGlzdCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgICAgICAgJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hbmltYXRpb25zLWVuYWJsZWQnOiB0aGlzLl9hbmltYXRpb25zRW5hYmxlZCxcclxuICAgICAgICAgICAgW2BjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tYXBwZWFyYW5jZS0ke3RoaXMuYXBwZWFyYW5jZX1gXTogdHJ1ZSxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWhvdmVyJzogdGhpcy5faG92ZXJlZCxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWlubmVyJzogdGhpcy5pbm5lcixcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW1vZGUtb3Zlcic6IHRoaXMubW9kZSA9PT0gJ292ZXInLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tbW9kZS1zaWRlJzogdGhpcy5tb2RlID09PSAnc2lkZScsXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgICAgICAgJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1vcGVuZWQnOiB0aGlzLm9wZW5lZCxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXBvc2l0aW9uLWxlZnQnOiB0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcsXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgICAgICAgJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1wb3NpdGlvbi1yaWdodCc6IHRoaXMucG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSG9zdCBiaW5kaW5nIGZvciBjb21wb25lbnQgaW5saW5lIHN0eWxlc1xyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgZ2V0IHN0eWxlTGlzdCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICd2aXNpYmlsaXR5JzogdGhpcy5vcGVuZWQgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgRGVjb3JhdGVkIG1ldGhvZHNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPbiBtb3VzZWVudGVyXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXHJcbiAgICBvbk1vdXNlZW50ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gRW5hYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgICAgdGhpcy5fZW5hYmxlQW5pbWF0aW9ucygpO1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIGhvdmVyZWRcclxuICAgICAgICB0aGlzLl9ob3ZlcmVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9uIG1vdXNlbGVhdmVcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcclxuICAgIG9uTW91c2VsZWF2ZSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBFbmFibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICB0aGlzLl9lbmFibGVBbmltYXRpb25zKCk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgaG92ZXJlZFxyXG4gICAgICAgIHRoaXMuX2hvdmVyZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gQCBMaWZlY3ljbGUgaG9va3NcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPbiBjaGFuZ2VzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIC8vIEFwcGVhcmFuY2VcclxuICAgICAgICBpZiAoJ2FwcGVhcmFuY2UnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgICAgICB0aGlzLmFwcGVhcmFuY2VDaGFuZ2VkLm5leHQoY2hhbmdlc1snYXBwZWFyYW5jZSddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJbm5lclxyXG4gICAgICAgIGlmICgnaW5uZXInIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gQ29lcmNlIHRoZSB2YWx1ZSB0byBhIGJvb2xlYW5cclxuICAgICAgICAgICAgdGhpcy5pbm5lciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzWydpbm5lciddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBNb2RlXHJcbiAgICAgICAgaWYgKCdtb2RlJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIC8vIEdldCB0aGUgcHJldmlvdXMgYW5kIGN1cnJlbnQgdmFsdWVzXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlID0gY2hhbmdlc1snbW9kZSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNNb2RlID0gY2hhbmdlc1snbW9kZSddLnByZXZpb3VzVmFsdWU7XHJcblxyXG4gICAgICAgICAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVBbmltYXRpb25zKCk7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgbW9kZSBjaGFuZ2VzOiAnb3ZlciAtPiBzaWRlJ1xyXG4gICAgICAgICAgICBpZiAocHJldmlvdXNNb2RlID09PSAnb3ZlcicgJiYgY3VycmVudE1vZGUgPT09ICdzaWRlJykge1xyXG4gICAgICAgICAgICAgICAgLy8gSGlkZSB0aGUgb3ZlcmxheVxyXG4gICAgICAgICAgICAgICAgdGhpcy5faGlkZU92ZXJsYXkoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gSWYgdGhlIG1vZGUgY2hhbmdlczogJ3NpZGUgLT4gb3ZlcidcclxuICAgICAgICAgICAgaWYgKHByZXZpb3VzTW9kZSA9PT0gJ3NpZGUnICYmIGN1cnJlbnRNb2RlID09PSAnb3ZlcicpIHtcclxuICAgICAgICAgICAgICAgIC8vIENsb3NlIHRoZSBhc2lkZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFzaWRlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gaXMgb3BlbmVkXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcGVuZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBTaG93IHRoZSBvdmVybGF5XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvd092ZXJsYXkoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgICAgICB0aGlzLm1vZGVDaGFuZ2VkLm5leHQoY3VycmVudE1vZGUpO1xyXG5cclxuICAgICAgICAgICAgLy8gRW5hYmxlIHRoZSBhbmltYXRpb25zIGFmdGVyIGEgZGVsYXlcclxuICAgICAgICAgICAgLy8gVGhlIGRlbGF5IG11c3QgYmUgYmlnZ2VyIHRoYW4gdGhlIGN1cnJlbnQgdHJhbnNpdGlvbi1kdXJhdGlvblxyXG4gICAgICAgICAgICAvLyB0byBtYWtlIHN1cmUgbm90aGluZyB3aWxsIGJlIGFuaW1hdGVkIHdoaWxlIHRoZSBtb2RlIGNoYW5naW5nXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZW5hYmxlQW5pbWF0aW9ucygpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTmF2aWdhdGlvblxyXG4gICAgICAgIGlmICgnbmF2aWdhdGlvbicgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xyXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIE9wZW5lZFxyXG4gICAgICAgIGlmICgnb3BlbmVkJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIC8vIENvZXJjZSB0aGUgdmFsdWUgdG8gYSBib29sZWFuXHJcbiAgICAgICAgICAgIHRoaXMub3BlbmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGNoYW5nZXNbJ29wZW5lZCddLmN1cnJlbnRWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAvLyBPcGVuL2Nsb3NlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgICAgICAgIHRoaXMuX3RvZ2dsZU9wZW5lZCh0aGlzLm9wZW5lZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBQb3NpdGlvblxyXG4gICAgICAgIGlmICgncG9zaXRpb24nIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlZC5uZXh0KGNoYW5nZXNbJ3Bvc2l0aW9uJ10uY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFRyYW5zcGFyZW50IG92ZXJsYXlcclxuICAgICAgICBpZiAoJ3RyYW5zcGFyZW50T3ZlcmxheScgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBDb2VyY2UgdGhlIHZhbHVlIHRvIGEgYm9vbGVhblxyXG4gICAgICAgICAgICB0aGlzLnRyYW5zcGFyZW50T3ZlcmxheSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzWyd0cmFuc3BhcmVudE92ZXJsYXknXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9uIGluaXRcclxuICAgICAqL1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBuYW1lIGlucHV0IGlzIG5vdCBhbiBlbXB0eSBzdHJpbmdcclxuICAgICAgICBpZiAodGhpcy5uYW1lID09PSAnJykge1xyXG4gICAgICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLl9jbWF0VXRpbHNTZXJ2aWNlLnJhbmRvbUlkKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBSZWdpc3RlciB0aGUgbmF2aWdhdGlvbiBjb21wb25lbnRcclxuICAgICAgICB0aGlzLl9jbWF0TmF2aWdhdGlvblNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQodGhpcy5uYW1lLCB0aGlzKTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSAnTmF2aWdhdGlvbkVuZCcgZXZlbnRcclxuICAgICAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG1vZGUgaXMgJ292ZXInIGFuZCB0aGUgbmF2aWdhdGlvbiBpcyBvcGVuZWQuLi5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdvdmVyJyAmJiB0aGlzLm9wZW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIENsb3NlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBtb2RlIGlzICdzaWRlJyBhbmQgdGhlIGFzaWRlIGlzIGFjdGl2ZS4uLlxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ3NpZGUnICYmIHRoaXMuYWN0aXZlQXNpZGVJdGVtSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBDbG9zZSB0aGUgYXNpZGVcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQXNpZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZnRlciB2aWV3IGluaXRcclxuICAgICAqL1xyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgLy8gUmV0dXJuIGlmICduYXZpZ2F0aW9uIGNvbnRlbnQnIGVsZW1lbnQgZG9lcyBub3QgZXhpc3RcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWFjdGl2ZScpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgYWN0aXZlIGl0ZW0gZXhpc3RzLCBzY3JvbGwgaXQgaW50byB2aWV3XHJcbiAgICAgICAgICAgIGlmIChhY3RpdmVJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlSXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b21cclxuICAgICAgICAgICAgICAgICAgICA8PSAodGhpcy5fbmF2aWdhdGlvbkNvbnRlbnRFbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSAtIE1hdGguYWJzKC0xMjApKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogYWN0aXZlSXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gMTIwLCBiZWhhdmlvcjogJ3Ntb290aCdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT24gZGVzdHJveVxyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBGb3JjZWZ1bGx5IGNsb3NlIHRoZSBuYXZpZ2F0aW9uIGFuZCBhc2lkZSBpbiBjYXNlIHRoZXkgYXJlIG9wZW5lZFxyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmNsb3NlQXNpZGUoKTtcclxuXHJcbiAgICAgICAgLy8gRGVyZWdpc3RlciB0aGUgbmF2aWdhdGlvbiBjb21wb25lbnQgZnJvbSB0aGUgcmVnaXN0cnlcclxuICAgICAgICB0aGlzLl9jbWF0TmF2aWdhdGlvblNlcnZpY2UuZGVyZWdpc3RlckNvbXBvbmVudCh0aGlzLm5hbWUpO1xyXG5cclxuICAgICAgICAvLyBVbnN1YnNjcmliZSBmcm9tIGFsbCBzdWJzY3JpcHRpb25zXHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dCh2b2lkIDApO1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgUHVibGljIG1ldGhvZHNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWZyZXNoIHRoZSBjb21wb25lbnQgdG8gYXBwbHkgdGhlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcmVmcmVzaCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgdGhpcy5vblJlZnJlc2hlZC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3BlbiB0aGUgbmF2aWdhdGlvblxyXG4gICAgICovXHJcbiAgICBvcGVuKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFJldHVybiBpZiB0aGUgbmF2aWdhdGlvbiBpcyBhbHJlYWR5IG9wZW5cclxuICAgICAgICBpZiAodGhpcy5vcGVuZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSBvcGVuZWRcclxuICAgICAgICB0aGlzLl90b2dnbGVPcGVuZWQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbG9zZSB0aGUgbmF2aWdhdGlvblxyXG4gICAgICovXHJcbiAgICBjbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIG5hdmlnYXRpb24gaXMgYWxyZWFkeSBjbG9zZWRcclxuICAgICAgICBpZiAoIXRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENsb3NlIHRoZSBhc2lkZVxyXG4gICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIG9wZW5lZFxyXG4gICAgICAgIHRoaXMuX3RvZ2dsZU9wZW5lZChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUb2dnbGUgdGhlIG5hdmlnYXRpb25cclxuICAgICAqL1xyXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFRvZ2dsZVxyXG4gICAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVuIHRoZSBhc2lkZVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpdGVtXHJcbiAgICAgKi9cclxuICAgIG9wZW5Bc2lkZShpdGVtOiBDbWF0TmF2aWdhdGlvbkl0ZW0pOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGl0ZW0gaXMgZGlzYWJsZWRcclxuICAgICAgICBpZiAoaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS5pZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBPcGVuXHJcbiAgICAgICAgdGhpcy5hY3RpdmVBc2lkZUl0ZW1JZCA9IGl0ZW0uaWQ7XHJcblxyXG4gICAgICAgIC8vIFNob3cgdGhlIGFzaWRlIG92ZXJsYXlcclxuICAgICAgICB0aGlzLl9zaG93QXNpZGVPdmVybGF5KCk7XHJcblxyXG4gICAgICAgIC8vIE1hcmsgZm9yIGNoZWNrXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbG9zZSB0aGUgYXNpZGVcclxuICAgICAqL1xyXG4gICAgY2xvc2VBc2lkZSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBDbG9zZVxyXG4gICAgICAgIHRoaXMuYWN0aXZlQXNpZGVJdGVtSWQgPSBudWxsO1xyXG5cclxuICAgICAgICAvLyBIaWRlIHRoZSBhc2lkZSBvdmVybGF5XHJcbiAgICAgICAgdGhpcy5faGlkZUFzaWRlT3ZlcmxheSgpO1xyXG5cclxuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVG9nZ2xlIHRoZSBhc2lkZVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpdGVtXHJcbiAgICAgKi9cclxuICAgIHRvZ2dsZUFzaWRlKGl0ZW06IENtYXROYXZpZ2F0aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgICAgIC8vIFRvZ2dsZVxyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUFzaWRlSXRlbUlkID09PSBpdGVtLmlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vcGVuQXNpZGUoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhY2sgYnkgZnVuY3Rpb24gZm9yIG5nRm9yIGxvb3BzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKiBAcGFyYW0gaXRlbVxyXG4gICAgICovXHJcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5pZCB8fCBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RJdGVtKGl0ZW06IENtYXROYXZpZ2F0aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQubmV4dChpdGVtKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgUHJpdmF0ZSBtZXRob2RzXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5hYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZW5hYmxlQW5pbWF0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGFuaW1hdGlvbnMgYXJlIGFscmVhZHkgZW5hYmxlZFxyXG4gICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFbmFibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICB0aGlzLl9hbmltYXRpb25zRW5hYmxlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXNhYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZGlzYWJsZUFuaW1hdGlvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gUmV0dXJuIGlmIHRoZSBhbmltYXRpb25zIGFyZSBhbHJlYWR5IGRpc2FibGVkXHJcbiAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uc0VuYWJsZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgdGhlIG92ZXJsYXlcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9zaG93T3ZlcmxheSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBvdmVybGF5XHJcbiAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIG92ZXJsYXkgZWxlbWVudFxyXG4gICAgICAgIHRoaXMuX292ZXJsYXkgPSB0aGlzLl9yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5KSB7XHJcbiAgICAgICAgICAgIC8vIEFkZCBhIGNsYXNzIHRvIHRoZSBvdmVybGF5IGVsZW1lbnRcclxuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tb3ZlcmxheScpO1xyXG5cclxuICAgICAgICAgICAgLy8gQWRkIGEgY2xhc3MgZGVwZW5kaW5nIG9uIHRoZSB0cmFuc3BhcmVudE92ZXJsYXkgb3B0aW9uXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zcGFyZW50T3ZlcmxheSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tb3ZlcmxheS10cmFuc3BhcmVudCcpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIG92ZXJsYXkgdG8gdGhlIHBhcmVudCBvZiB0aGUgbmF2aWdhdGlvblxyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsIHRoaXMuX292ZXJsYXkpO1xyXG5cclxuICAgICAgICAgICAgLy8gRW5hYmxlIGJsb2NrIHNjcm9sbCBzdHJhdGVneVxyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxTdHJhdGVneS5lbmFibGUoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgZW50ZXIgYW5pbWF0aW9uIGFuZCBhdHRhY2ggaXQgdG8gdGhlIHBsYXllclxyXG4gICAgICAgICAgICB0aGlzLl9wbGF5ZXIgPSB0aGlzLl9hbmltYXRpb25CdWlsZGVyLmJ1aWxkKFtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKVxyXG4gICAgICAgICAgICBdKS5jcmVhdGUodGhpcy5fb3ZlcmxheSk7XHJcblxyXG4gICAgICAgICAgICAvLyBQbGF5IHRoZSBhbmltYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fcGxheWVyLnBsYXkoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgb3ZlcmxheVxyXG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlT3ZlcmxheUNsaWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaWRlIHRoZSBvdmVybGF5XHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfaGlkZU92ZXJsYXkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9vdmVybGF5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgbGVhdmUgYW5pbWF0aW9uIGFuZCBhdHRhY2ggaXQgdG8gdGhlIHBsYXllclxyXG4gICAgICAgIHRoaXMuX3BsYXllciA9IHRoaXMuX2FuaW1hdGlvbkJ1aWxkZXIuYnVpbGQoW1xyXG4gICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcclxuICAgICAgICBdKS5jcmVhdGUodGhpcy5fb3ZlcmxheSk7XHJcblxyXG4gICAgICAgIC8vIFBsYXkgdGhlIGFuaW1hdGlvblxyXG4gICAgICAgIHRoaXMuX3BsYXllci5wbGF5KCk7XHJcblxyXG4gICAgICAgIC8vIE9uY2UgdGhlIGFuaW1hdGlvbiBpcyBkb25lLi4uXHJcbiAgICAgICAgdGhpcy5fcGxheWVyLm9uRG9uZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgb3ZlcmxheSBzdGlsbCBleGlzdHMuLi5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX292ZXJsYXkpIHtcclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZXZlbnQgbGlzdGVuZXJcclxuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVPdmVybGF5Q2xpY2spO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgb3ZlcmxheVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZCh0aGlzLl9vdmVybGF5KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJsYXkgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBEaXNhYmxlIGJsb2NrIHNjcm9sbCBzdHJhdGVneVxyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxTdHJhdGVneS5kaXNhYmxlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IHRoZSBhc2lkZSBvdmVybGF5XHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfc2hvd0FzaWRlT3ZlcmxheSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBvdmVybGF5XHJcbiAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIGFzaWRlIG92ZXJsYXkgZWxlbWVudFxyXG4gICAgICAgIHRoaXMuX2FzaWRlT3ZlcmxheSA9IHRoaXMuX3JlbmRlcmVyMi5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICAvLyBBZGQgYSBjbGFzcyB0byB0aGUgYXNpZGUgb3ZlcmxheSBlbGVtZW50XHJcbiAgICAgICAgICAgIHRoaXMuX2FzaWRlT3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tYXNpZGUtb3ZlcmxheScpO1xyXG5cclxuICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBhc2lkZSBvdmVybGF5IHRvIHRoZSBwYXJlbnQgb2YgdGhlIG5hdmlnYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCB0aGlzLl9hc2lkZU92ZXJsYXkpO1xyXG5cclxuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBlbnRlciBhbmltYXRpb24gYW5kIGF0dGFjaCBpdCB0byB0aGUgcGxheWVyXHJcbiAgICAgICAgICAgIHRoaXMuX3BsYXllciA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25CdWlsZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgLmJ1aWxkKFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXHJcbiAgICAgICAgICAgICAgICAgICAgXSkuY3JlYXRlKHRoaXMuX2FzaWRlT3ZlcmxheSk7XHJcblxyXG4gICAgICAgICAgICAvLyBQbGF5IHRoZSBhbmltYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fcGxheWVyLnBsYXkoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICAgICAgICB0aGlzLl9hc2lkZU92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVBc2lkZU92ZXJsYXlDbGljayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGlkZSB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2hpZGVBc2lkZU92ZXJsYXkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9hc2lkZU92ZXJsYXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBsZWF2ZSBhbmltYXRpb24gYW5kIGF0dGFjaCBpdCB0byB0aGUgcGxheWVyXHJcbiAgICAgICAgdGhpcy5fcGxheWVyID1cclxuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQnVpbGRlclxyXG4gICAgICAgICAgICAgICAgLmJ1aWxkKFtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcclxuICAgICAgICAgICAgICAgIF0pLmNyZWF0ZSh0aGlzLl9hc2lkZU92ZXJsYXkpO1xyXG5cclxuICAgICAgICAvLyBQbGF5IHRoZSBhbmltYXRpb25cclxuICAgICAgICB0aGlzLl9wbGF5ZXIucGxheSgpO1xyXG5cclxuICAgICAgICAvLyBPbmNlIHRoZSBhbmltYXRpb24gaXMgZG9uZS4uLlxyXG4gICAgICAgIHRoaXMuX3BsYXllci5vbkRvbmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgYXNpZGUgb3ZlcmxheSBzdGlsbCBleGlzdHMuLi5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lclxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYXNpZGVPdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQXNpZGVPdmVybGF5Q2xpY2spO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYXNpZGVPdmVybGF5LnBhcmVudE5vZGU/LnJlbW92ZUNoaWxkKHRoaXMuX2FzaWRlT3ZlcmxheSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hc2lkZU92ZXJsYXkgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVuL2Nsb3NlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wZW5cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3RvZ2dsZU9wZW5lZChvcGVuOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgLy8gU2V0IHRoZSBvcGVuZWRcclxuICAgICAgICB0aGlzLm9wZW5lZCA9IG9wZW47XHJcblxyXG4gICAgICAgIC8vIEVuYWJsZSB0aGUgYW5pbWF0aW9uc1xyXG4gICAgICAgIHRoaXMuX2VuYWJsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gb3BlbmVkLCBhbmQgdGhlIG1vZGVcclxuICAgICAgICAvLyBpcyAnb3ZlcicsIHNob3cgdGhlIG92ZXJsYXlcclxuICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnb3ZlcicpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93T3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGlkZU92ZXJsYXkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgIHRoaXMub3BlbmVkQ2hhbmdlZC5uZXh0KG9wZW4pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24td3JhcHBlclwiPlxyXG5cclxuICA8IS0tIEhlYWRlciAtLT5cclxuICA8ZGl2IGNsYXNzPVwiY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWhlYWRlclwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NtYXRWZXJ0aWNhbE5hdmlnYXRpb25IZWFkZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIENvbnRlbnQgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1jb250ZW50IG92ZXJmbG93LXktYXV0byBsZzpvdmVyZmxvdy15LWhpZGRlbiBsZzpob3ZlcjpvdmVyZmxvdy15LWF1dG8gc2Nyb2xsYmFyLWN1c3RvbVwiICNuYXZpZ2F0aW9uQ29udGVudD5cclxuXHJcbiAgICA8IS0tIENvbnRlbnQgaGVhZGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1jb250ZW50LWhlYWRlclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbnRlbnRIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBJdGVtcyAtLT5cclxuICAgIEBmb3IgKGl0ZW0gb2YgbmF2aWdhdGlvbjsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgaXRlbSkpIHtcclxuICAgICAgPCEtLSBTa2lwIHRoZSBoaWRkZW4gaXRlbXMgLS0+XHJcbiAgICAgIEBpZiAoKGl0ZW0uaGlkZGVuICYmICFpdGVtLmhpZGRlbihpdGVtKSkgfHwgIWl0ZW0uaGlkZGVuKSB7XHJcbiAgICAgICAgPCEtLSBBc2lkZSAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2FzaWRlJykge1xyXG4gICAgICAgICAgPGNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbmFtZV09XCJuYW1lXCIgW2FjdGl2ZUl0ZW1JZF09XCJhY3RpdmVBc2lkZUl0ZW1JZFwiXHJcbiAgICAgICAgICAgIFthdXRvQ29sbGFwc2VdPVwiYXV0b0NvbGxhcHNlXCIgW3NraXBDaGlsZHJlbl09XCJ0cnVlXCIgKGNsaWNrKT1cInRvZ2dsZUFzaWRlKGl0ZW0pXCIgW2VkaXRTdGF0ZV09XCJlZGl0U3RhdGVcIiAoZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1pdGVtPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIEJhc2ljIC0tPlxyXG4gICAgICAgIEBpZiAoaXRlbS50eXBlID09PSAnYmFzaWMnKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWJhc2ljLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIiBbZWRpdFN0YXRlXT1cImVkaXRTdGF0ZVwiIChlZGl0U2VsZWN0ZWRJdGVtQ2hhbmdlZCk9XCJzZWxlY3RJdGVtKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWJhc2ljLWl0ZW0+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gQ29sbGFwc2FibGUgLS0+XHJcbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdjb2xsYXBzYWJsZScpIHtcclxuICAgICAgICAgIDxjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tY29sbGFwc2FibGUtaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiXHJcbiAgICAgICAgICBbYXV0b0NvbGxhcHNlXT1cImF1dG9Db2xsYXBzZVwiPjwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWNvbGxhcHNhYmxlLWl0ZW0+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gRGl2aWRlciAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2RpdmlkZXInKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWRpdmlkZXItaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZGl2aWRlci1pdGVtPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIEdyb3VwIC0tPlxyXG4gICAgICAgIEBpZiAoaXRlbS50eXBlID09PSAnZ3JvdXAnKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWdyb3VwLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIiBbYXV0b0NvbGxhcHNlXT1cImF1dG9Db2xsYXBzZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZ3JvdXAtaXRlbT5cclxuICAgICAgICB9XHJcbiAgICAgICAgPCEtLSBTcGFjZXIgLS0+XHJcbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdzcGFjZXInKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXNwYWNlci1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbmFtZV09XCJuYW1lXCIgW2VkaXRTdGF0ZV09XCJlZGl0U3RhdGVcIiAoZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1zcGFjZXItaXRlbT5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA8IS0tIENvbnRlbnQgZm9vdGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1jb250ZW50LWZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbnRlbnRGb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gRm9vdGVyIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZm9vdGVyXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS0gQXNpZGUgLS0+XHJcbkBpZiAoYWN0aXZlQXNpZGVJdGVtSWQpIHtcclxuICA8ZGl2IGNsYXNzPVwiY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFzaWRlLXdyYXBwZXIgb3ZlcmZsb3cteS1hdXRvIGxnOm92ZXJmbG93LXktaGlkZGVuIGxnOmhvdmVyOm92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItY3VzdG9tXCJcclxuICAgIFtAZmFkZUluTGVmdF09XCJwb3NpdGlvbiA9PT0gJ2xlZnQnXCIgW0BmYWRlSW5SaWdodF09XCJwb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiIFtAZmFkZU91dExlZnRdPVwicG9zaXRpb24gPT09ICdsZWZ0J1wiXHJcbiAgICBbQGZhZGVPdXRSaWdodF09XCJwb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiPlxyXG4gICAgPCEtLSBJdGVtcyAtLT5cclxuICAgIEBmb3IgKGl0ZW0gb2YgbmF2aWdhdGlvbjsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgaXRlbSkpIHtcclxuICAgICAgPCEtLSBTa2lwIHRoZSBoaWRkZW4gaXRlbXMgLS0+XHJcbiAgICAgIEBpZiAoKGl0ZW0uaGlkZGVuICYmICFpdGVtLmhpZGRlbihpdGVtKSkgfHwgIWl0ZW0uaGlkZGVuKSB7XHJcbiAgICAgICAgPCEtLSBBc2lkZSAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2FzaWRlJyAmJiBpdGVtLmlkID09PSBhY3RpdmVBc2lkZUl0ZW1JZCkge1xyXG4gICAgICAgICAgPGNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbmFtZV09XCJuYW1lXCIgW2F1dG9Db2xsYXBzZV09XCJhdXRvQ29sbGFwc2VcIj5cclxuICAgICAgICAgIDwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFzaWRlLWl0ZW0+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn0iXX0=