@coreui/angular-pro 5.0.0-alpha.11 → 5.0.0-alpha.13

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 (264) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/accordion/accordion/accordion.component.mjs +3 -3
  3. package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
  4. package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +3 -3
  5. package/esm2022/lib/accordion/accordion.module.mjs +4 -4
  6. package/esm2022/lib/accordion/accordion.service.mjs +4 -4
  7. package/esm2022/lib/alert/alert-heading.directive.mjs +3 -3
  8. package/esm2022/lib/alert/alert-link.directive.mjs +3 -3
  9. package/esm2022/lib/alert/alert.component.mjs +4 -4
  10. package/esm2022/lib/alert/alert.module.mjs +4 -4
  11. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  12. package/esm2022/lib/avatar/avatar.module.mjs +4 -4
  13. package/esm2022/lib/backdrop/backdrop.service.mjs +4 -4
  14. package/esm2022/lib/badge/badge.component.mjs +3 -3
  15. package/esm2022/lib/badge/badge.module.mjs +4 -4
  16. package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
  17. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +4 -4
  18. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +4 -4
  19. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +4 -4
  20. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
  21. package/esm2022/lib/button/button-close.directive.mjs +3 -3
  22. package/esm2022/lib/button/button.directive.mjs +3 -3
  23. package/esm2022/lib/button/button.module.mjs +4 -4
  24. package/esm2022/lib/button-group/button-group/button-group.component.mjs +3 -3
  25. package/esm2022/lib/button-group/button-group.module.mjs +4 -4
  26. package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
  27. package/esm2022/lib/calendar/calendar/calendar-class-view.pipe.mjs +3 -3
  28. package/esm2022/lib/calendar/calendar/calendar.component.mjs +4 -4
  29. package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +3 -3
  30. package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +3 -3
  31. package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +3 -3
  32. package/esm2022/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +3 -3
  33. package/esm2022/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +3 -3
  34. package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +4 -4
  35. package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +3 -3
  36. package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +4 -4
  37. package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +4 -4
  38. package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +3 -3
  39. package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +4 -4
  40. package/esm2022/lib/calendar/calendar.module.mjs +4 -4
  41. package/esm2022/lib/calendar/calendar.service.mjs +4 -4
  42. package/esm2022/lib/calendar/calendar.utils.mjs +1 -1
  43. package/esm2022/lib/callout/callout.component.mjs +3 -3
  44. package/esm2022/lib/callout/callout.module.mjs +4 -4
  45. package/esm2022/lib/card/card-body.component.mjs +3 -3
  46. package/esm2022/lib/card/card-footer.component.mjs +3 -3
  47. package/esm2022/lib/card/card-group.component.mjs +3 -3
  48. package/esm2022/lib/card/card-header-actions.component.mjs +3 -3
  49. package/esm2022/lib/card/card-header.component.mjs +3 -3
  50. package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
  51. package/esm2022/lib/card/card-img.directive.mjs +3 -3
  52. package/esm2022/lib/card/card-link.directive.mjs +3 -3
  53. package/esm2022/lib/card/card-subtitle.directive.mjs +3 -3
  54. package/esm2022/lib/card/card-text.directive.mjs +3 -3
  55. package/esm2022/lib/card/card-title.directive.mjs +3 -3
  56. package/esm2022/lib/card/card.component.mjs +3 -3
  57. package/esm2022/lib/card/card.module.mjs +4 -4
  58. package/esm2022/lib/carousel/carousel/carousel.component.mjs +4 -4
  59. package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
  60. package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +4 -4
  61. package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +4 -4
  62. package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +4 -4
  63. package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +4 -4
  64. package/esm2022/lib/carousel/carousel-state.mjs +4 -4
  65. package/esm2022/lib/carousel/carousel.config.mjs +3 -3
  66. package/esm2022/lib/carousel/carousel.module.mjs +4 -4
  67. package/esm2022/lib/carousel/carousel.service.mjs +3 -3
  68. package/esm2022/lib/collapse/collapse.directive.mjs +4 -4
  69. package/esm2022/lib/collapse/collapse.module.mjs +4 -4
  70. package/esm2022/lib/date-picker/date-picker.component.mjs +7 -7
  71. package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
  72. package/esm2022/lib/date-range-picker/date-range-picker/custom-range-key.pipe.mjs +3 -3
  73. package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +4 -4
  74. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
  75. package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +7 -7
  76. package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +4 -4
  77. package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
  78. package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
  79. package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
  80. package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +4 -4
  81. package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +4 -4
  82. package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
  83. package/esm2022/lib/dropdown/dropdown.service.mjs +3 -3
  84. package/esm2022/lib/element-cover/element-cover.component.mjs +4 -4
  85. package/esm2022/lib/element-cover/element-cover.module.mjs +4 -4
  86. package/esm2022/lib/footer/footer.component.mjs +3 -3
  87. package/esm2022/lib/footer/footer.module.mjs +4 -4
  88. package/esm2022/lib/form/form/form.directive.mjs +3 -3
  89. package/esm2022/lib/form/form-check/form-check-input.directive.mjs +4 -4
  90. package/esm2022/lib/form/form-check/form-check-label.directive.mjs +3 -3
  91. package/esm2022/lib/form/form-check/form-check.component.mjs +3 -3
  92. package/esm2022/lib/form/form-control/form-control.directive.mjs +4 -4
  93. package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +3 -3
  94. package/esm2022/lib/form/form-floating/form-floating.directive.mjs +3 -3
  95. package/esm2022/lib/form/form-label/form-label.directive.mjs +3 -3
  96. package/esm2022/lib/form/form-select/form-select.directive.mjs +3 -3
  97. package/esm2022/lib/form/form-text/form-text.directive.mjs +3 -3
  98. package/esm2022/lib/form/form.module.mjs +4 -4
  99. package/esm2022/lib/form/input-group/input-group.component.mjs +3 -3
  100. package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
  101. package/esm2022/lib/grid/col.component.mjs +3 -3
  102. package/esm2022/lib/grid/col.directive.mjs +4 -4
  103. package/esm2022/lib/grid/container.component.mjs +3 -3
  104. package/esm2022/lib/grid/grid.module.mjs +4 -4
  105. package/esm2022/lib/grid/gutter.directive.mjs +4 -4
  106. package/esm2022/lib/grid/row.component.mjs +3 -3
  107. package/esm2022/lib/grid/row.directive.mjs +4 -4
  108. package/esm2022/lib/header/header/header.component.mjs +3 -3
  109. package/esm2022/lib/header/header-brand/header-brand.component.mjs +3 -3
  110. package/esm2022/lib/header/header-divider/header-divider.component.mjs +3 -3
  111. package/esm2022/lib/header/header-nav/header-nav.component.mjs +3 -3
  112. package/esm2022/lib/header/header-text/header-text.component.mjs +3 -3
  113. package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +4 -4
  114. package/esm2022/lib/header/header.module.mjs +4 -4
  115. package/esm2022/lib/image/img.directive.mjs +3 -3
  116. package/esm2022/lib/image/img.module.mjs +4 -4
  117. package/esm2022/lib/list-group/list-group-item.directive.mjs +3 -3
  118. package/esm2022/lib/list-group/list-group.directive.mjs +3 -3
  119. package/esm2022/lib/list-group/list-group.module.mjs +4 -4
  120. package/esm2022/lib/loading-button/loading-button.component.mjs +4 -4
  121. package/esm2022/lib/loading-button/loading-button.module.mjs +4 -4
  122. package/esm2022/lib/modal/modal/modal.component.mjs +4 -4
  123. package/esm2022/lib/modal/modal-body/modal-body.component.mjs +3 -3
  124. package/esm2022/lib/modal/modal-content/modal-content.component.mjs +3 -3
  125. package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
  126. package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
  127. package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
  128. package/esm2022/lib/modal/modal-header/modal-header.component.mjs +3 -3
  129. package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +3 -3
  130. package/esm2022/lib/modal/modal.module.mjs +4 -4
  131. package/esm2022/lib/modal/modal.service.mjs +3 -3
  132. package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +4 -4
  133. package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +4 -4
  134. package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +3 -3
  135. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +3 -3
  136. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +4 -4
  137. package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +4 -4
  138. package/esm2022/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +4 -4
  139. package/esm2022/lib/multi-select/multi-select.module.mjs +4 -4
  140. package/esm2022/lib/multi-select/multi-select.service.mjs +3 -3
  141. package/esm2022/lib/nav/nav-item.component.mjs +3 -3
  142. package/esm2022/lib/nav/nav-link.directive.mjs +3 -3
  143. package/esm2022/lib/nav/nav.component.mjs +3 -3
  144. package/esm2022/lib/nav/nav.module.mjs +4 -4
  145. package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
  146. package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
  147. package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
  148. package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +4 -4
  149. package/esm2022/lib/navbar/navbar.component.mjs +4 -4
  150. package/esm2022/lib/navbar/navbar.module.mjs +4 -4
  151. package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +4 -4
  152. package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
  153. package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
  154. package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
  155. package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
  156. package/esm2022/lib/offcanvas/offcanvas.module.mjs +4 -4
  157. package/esm2022/lib/offcanvas/offcanvas.service.mjs +3 -3
  158. package/esm2022/lib/pagination/page-item/page-item.component.mjs +3 -3
  159. package/esm2022/lib/pagination/page-item/page-item.directive.mjs +4 -4
  160. package/esm2022/lib/pagination/page-link/page-link.directive.mjs +3 -3
  161. package/esm2022/lib/pagination/pagination/pagination.component.mjs +3 -3
  162. package/esm2022/lib/pagination/pagination.module.mjs +4 -4
  163. package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +3 -3
  164. package/esm2022/lib/placeholder/placeholder.directive.mjs +3 -3
  165. package/esm2022/lib/placeholder/placeholder.module.mjs +4 -4
  166. package/esm2022/lib/popover/popover/popover.component.mjs +4 -4
  167. package/esm2022/lib/popover/popover.directive.mjs +4 -4
  168. package/esm2022/lib/popover/popover.module.mjs +4 -4
  169. package/esm2022/lib/progress/progress-bar.component.mjs +3 -3
  170. package/esm2022/lib/progress/progress-bar.directive.mjs +4 -4
  171. package/esm2022/lib/progress/progress-stacked.component.mjs +3 -3
  172. package/esm2022/lib/progress/progress.component.mjs +4 -4
  173. package/esm2022/lib/progress/progress.module.mjs +4 -4
  174. package/esm2022/lib/services/class-toggle.service.mjs +4 -4
  175. package/esm2022/lib/services/color-mode.service.mjs +17 -26
  176. package/esm2022/lib/services/in-memory-storage.service.mjs +3 -3
  177. package/esm2022/lib/services/intersection.service.mjs +4 -4
  178. package/esm2022/lib/services/listeners.service.mjs +4 -4
  179. package/esm2022/lib/services/local-storage.service.mjs +3 -3
  180. package/esm2022/lib/services/public_api.mjs +1 -1
  181. package/esm2022/lib/shared/html-attr.directive.mjs +4 -4
  182. package/esm2022/lib/shared/shared.module.mjs +4 -4
  183. package/esm2022/lib/shared/template-id.directive.mjs +3 -3
  184. package/esm2022/lib/shared/theme.directive.mjs +4 -4
  185. package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +4 -4
  186. package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +4 -4
  187. package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +4 -4
  188. package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
  189. package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
  190. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
  191. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
  192. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +3 -3
  193. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
  194. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +4 -4
  195. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
  196. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +7 -7
  197. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
  198. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +4 -4
  199. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +7 -7
  200. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +7 -7
  201. package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
  202. package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +3 -3
  203. package/esm2022/lib/sidebar/sidebar.module.mjs +4 -4
  204. package/esm2022/lib/sidebar/sidebar.service.mjs +3 -3
  205. package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +4 -4
  206. package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +4 -4
  207. package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +4 -4
  208. package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +3 -3
  209. package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +4 -4
  210. package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +3 -3
  211. package/esm2022/lib/smart-table/smart-table-head/smart-table-column-label.pipe.mjs +3 -3
  212. package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +4 -4
  213. package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +4 -4
  214. package/esm2022/lib/smart-table/smart-table.module.mjs +4 -4
  215. package/esm2022/lib/smart-table/smart-table.type.mjs +1 -1
  216. package/esm2022/lib/smart-table/smart-table.utils.mjs +1 -1
  217. package/esm2022/lib/spinner/spinner.component.mjs +3 -3
  218. package/esm2022/lib/spinner/spinner.module.mjs +4 -4
  219. package/esm2022/lib/table/table-active.directive.mjs +3 -3
  220. package/esm2022/lib/table/table-color.directive.mjs +3 -3
  221. package/esm2022/lib/table/table.directive.mjs +4 -4
  222. package/esm2022/lib/table/table.module.mjs +4 -4
  223. package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +4 -4
  224. package/esm2022/lib/tabs/tab-content-ref.directive.mjs +4 -4
  225. package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +4 -4
  226. package/esm2022/lib/tabs/tab.service.mjs +3 -3
  227. package/esm2022/lib/tabs/tabs.module.mjs +4 -4
  228. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +7 -7
  229. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +7 -7
  230. package/esm2022/lib/time-picker/time-picker.component.mjs +4 -4
  231. package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
  232. package/esm2022/lib/time-picker/time.utils.mjs +1 -1
  233. package/esm2022/lib/toast/toast/toast.component.mjs +4 -4
  234. package/esm2022/lib/toast/toast-body/toast-body.component.mjs +3 -3
  235. package/esm2022/lib/toast/toast-close.directive.mjs +3 -3
  236. package/esm2022/lib/toast/toast-header/toast-header.component.mjs +3 -3
  237. package/esm2022/lib/toast/toast.module.mjs +4 -4
  238. package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +3 -3
  239. package/esm2022/lib/toast/toaster/toaster.component.mjs +4 -4
  240. package/esm2022/lib/toast/toaster/toaster.service.mjs +3 -3
  241. package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +4 -4
  242. package/esm2022/lib/tooltip/tooltip.directive.mjs +4 -4
  243. package/esm2022/lib/tooltip/tooltip.module.mjs +4 -4
  244. package/esm2022/lib/utilities/align.directive.mjs +3 -3
  245. package/esm2022/lib/utilities/bg-color.directive.mjs +3 -3
  246. package/esm2022/lib/utilities/border.directive.mjs +4 -4
  247. package/esm2022/lib/utilities/rounded.directive.mjs +4 -4
  248. package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +4 -4
  249. package/esm2022/lib/utilities/text-color.directive.mjs +3 -3
  250. package/esm2022/lib/utilities/utilities.module.mjs +4 -4
  251. package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +3 -3
  252. package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +3 -3
  253. package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
  254. package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +3 -3
  255. package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
  256. package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +3 -3
  257. package/esm2022/lib/widget/widget.module.mjs +4 -4
  258. package/fesm2022/coreui-angular-pro.mjs +836 -844
  259. package/fesm2022/coreui-angular-pro.mjs.map +1 -1
  260. package/lib/services/color-mode.service.d.ts +4 -2
  261. package/lib/services/public_api.d.ts +1 -1
  262. package/lib/smart-table/smart-table.type.d.ts +1 -1
  263. package/lib/smart-table/smart-table.utils.d.ts +1 -1
  264. package/package.json +1 -1
@@ -366,4 +366,4 @@ export const isDateInRangeDisabled = (startDate, endDate, dates) => {
366
366
  // // }
367
367
  //
368
368
  // // getDate('12/07/1997');
369
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDdEQsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLHVDQUF1QztJQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFDLDREQUE0RDtJQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakYsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxJQUFtQixFQUNuQixhQUE2QixFQUM3QixFQUFFO0lBRUYsSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxJQUFJLGFBQWEsS0FBSyxNQUFNLEVBQUU7UUFDNUIsT0FBTyxvQkFBb0IsQ0FBQyxJQUFjLENBQUMsQ0FBQztLQUM3QztJQUVELE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBTyxFQUFFLE1BQWMsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FDMUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQU8sRUFBRSxNQUFjLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQzFFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBSSxHQUFRLEVBQUUsY0FBc0IsRUFBUyxFQUFFO0lBQ2hGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQztJQUN4RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUM7U0FDMUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUNSLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFlBQWtCLEVBQUUsS0FBYSxFQUFFLElBQWlDLEVBQUUsRUFBRTtJQUN0RyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtRQUNsQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMzRjtJQUVELElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQ3BDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzNGO0lBRUQsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUU7UUFDbkMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNsRztJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQ3BDLElBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLEVBQUU7SUFDRixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7UUFDakIsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELElBQUksYUFBYSxLQUFLLE1BQU0sRUFBRTtRQUM1QixPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0tBQ3ZEO0lBRUQsSUFBSSxhQUFhLEtBQUssT0FBTyxFQUFFO1FBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksV0FBVyxFQUFFLENBQUM7S0FDL0M7SUFFRCxJQUFJLGFBQWEsS0FBSyxNQUFNLEVBQUU7UUFDNUIsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0tBQ2hDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixFQUFFO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsTUFBYyxFQUFFLElBQWMsRUFBRSxFQUFFO0lBQ3ZGLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakYsS0FBSyxHQUFHLEtBQUs7U0FDVixPQUFPLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDO1NBQ3RDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLENBQUM7U0FDckMsT0FBTyxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBRXZDLElBQUksSUFBSSxFQUFFO1FBQ1IsS0FBSyxHQUFHLEtBQUs7YUFDVixPQUFPLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDO2FBQ25DLE9BQU8sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUM7YUFDcEMsT0FBTyxDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQzthQUN0QyxPQUFPLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDO2FBQ3RDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztLQUN2QztJQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVuQyxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7UUFDckIsT0FBTztLQUNSO0lBRUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FB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QUFPO0FBQ1AscUNBQXFDO0FBQ3JDLDJDQUEyQztBQUMzQyxvQkFBb0I7QUFDcEIseUNBQXlDO0FBQ3pDLFFBQVE7QUFDUixFQUFFO0FBQ0YscUJBQXFCO0FBQ3JCLEVBQUU7QUFDRixzQ0FBc0M7QUFDdEMsa0JBQWtCO0FBQ2xCLG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakIsc0JBQXNCO0FBQ3RCLFVBQVU7QUFDVixPQUFPO0FBQ1Asa0ZBQWtGO0FBQ2xGLHlGQUF5RjtBQUN6RiwwRkFBMEY7QUFDMUYsd0ZBQXdGO0FBQ3hGLE9BQU87QUFDUCxvREFBb0Q7QUFDcEQsT0FBTztBQUNQLCtCQUErQjtBQUMvQiwwQ0FBMEM7QUFDMUMsK0JBQStCO0FBQy9CLE9BQU87QUFDUCxXQUFXO0FBQ1gsVUFBVTtBQUNWLE9BQU87QUFDUCxrRUFBa0U7QUFDbEUsMENBQTBDO0FBQzFDLHVCQUF1QjtBQUN2QixpREFBaUQ7QUFDakQsWUFBWTtBQUNaLDRCQUE0QjtBQUM1QiwwQkFBMEI7QUFDMUIsdUNBQXVDO0FBQ3ZDLHVCQUF1QjtBQUN2Qiw0QkFBNEI7QUFDNUIseUNBQXlDO0FBQ3pDLHVCQUF1QjtBQUN2QiwyQkFBMkI7QUFDM0Isd0NBQXdDO0FBQ3hDLHVCQUF1QjtBQUN2QixjQUFjO0FBQ2QsVUFBVTtBQUNWLHNEQUFzRDtBQUN0RCw4Q0FBOEM7QUFDOUMsS0FBSztBQUNMLEVBQUU7QUFDRix1Q0FBdUM7QUFDdkMsMkRBQTJEO0FBQzNELDhDQUE4QztBQUM5QyxPQUFPO0FBQ1AsRUFBRTtBQUNGLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvblR5cGUgfSBmcm9tICcuL2NhbGVuZGFyLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgY29udmVydElzb1dlZWtUb0RhdGUgPSAoaXNvV2Vlazogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IFt5ZWFyLCB3ZWVrXSA9IGlzb1dlZWsuc3BsaXQoL3cvaSk7XG4gIC8vIEdldCBkYXRlIGZvciA0dGggb2YgSmFudWFyeSBmb3IgeWVhclxuICBjb25zdCBkYXRlID0gbmV3IERhdGUoTnVtYmVyKHllYXIpLCAwLCA0KTtcbiAgLy8gR2V0IHByZXZpb3VzIE1vbmRheSwgYWRkIDcgZGF5cyBmb3IgZWFjaCB3ZWVrIGFmdGVyIGZpcnN0XG4gIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSAtIChkYXRlLmdldERheSgpIHx8IDcpICsgMSArIChOdW1iZXIod2VlaykgLSAxKSAqIDcpO1xuICByZXR1cm4gZGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9EYXRlT2JqZWN0ID0gKFxuICBkYXRlOiBEYXRlIHwgc3RyaW5nLFxuICBzZWxlY3Rpb25UeXBlPzogU2VsZWN0aW9uVHlwZVxuKSA9PiB7XG5cbiAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICBpZiAoc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnKSB7XG4gICAgcmV0dXJuIGNvbnZlcnRJc29XZWVrVG9EYXRlKGRhdGUgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKGRhdGUpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9Mb2NhbERhdGUgPSAoZDogRGF0ZSwgbG9jYWxlOiBzdHJpbmcsIG9wdGlvbnMgPSB7fSkgPT5cbiAgZC50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCBvcHRpb25zKTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRUb0xvY2FsVGltZSA9IChkOiBEYXRlLCBsb2NhbGU6IHN0cmluZywgb3B0aW9ucyA9IHt9KSA9PlxuICBkLnRvTG9jYWxlVGltZVN0cmluZyhsb2NhbGUsIG9wdGlvbnMpO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlR3JvdXBzSW5BcnJheSA9IDxUPihhcnI6IFRbXSwgbnVtYmVyT2ZHcm91cHM6IG51bWJlcik6IFRbXVtdID0+IHtcbiAgY29uc3QgcGVyR3JvdXAgPSBNYXRoLmNlaWwoYXJyLmxlbmd0aCAvIG51bWJlck9mR3JvdXBzKTtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IG51bWJlck9mR3JvdXBzIH0pXG4gICAgLmZpbGwoJycpXG4gICAgLm1hcCgoXywgaSkgPT4gYXJyLnNsaWNlKGkgKiBwZXJHcm91cCwgKGkgKyAxKSAqIHBlckdyb3VwKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q2FsZW5kYXJEYXRlID0gKGNhbGVuZGFyRGF0ZTogRGF0ZSwgb3JkZXI6IG51bWJlciwgdmlldzogJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnKSA9PiB7XG4gIGlmIChvcmRlciAhPT0gMCAmJiB2aWV3ID09PSAnZGF5cycpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCksIGNhbGVuZGFyRGF0ZS5nZXRNb250aCgpICsgb3JkZXIsIDEpKTtcbiAgfVxuXG4gIGlmIChvcmRlciAhPT0gMCAmJiB2aWV3ID09PSAnbW9udGhzJykge1xuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhjYWxlbmRhckRhdGUuZ2V0RnVsbFllYXIoKSArIG9yZGVyLCBjYWxlbmRhckRhdGUuZ2V0TW9udGgoKSwgMSkpO1xuICB9XG5cbiAgaWYgKG9yZGVyICE9PSAwICYmIHZpZXcgPT09ICd5ZWFycycpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCkgKyAoMTIgKiBvcmRlciksIGNhbGVuZGFyRGF0ZS5nZXRNb250aCgpLCAxKSk7XG4gIH1cblxuICByZXR1cm4gY2FsZW5kYXJEYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRZZWFyID0gKCkgPT4gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudE1vbnRoID0gKCkgPT4gbmV3IERhdGUoKS5nZXRNb250aCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZUJ5U2VsZWN0aW9uVHlwZSA9IChcbiAgZGF0ZTogRGF0ZSB8IG51bGwsXG4gIHNlbGVjdGlvblR5cGU6IFNlbGVjdGlvblR5cGVcbikgPT4ge1xuICBpZiAoZGF0ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHNlbGVjdGlvblR5cGUgPT09ICd3ZWVrJykge1xuICAgIHJldHVybiBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9VyR7Z2V0V2Vla051bWJlcihkYXRlKX1gO1xuICB9XG5cbiAgaWYgKHNlbGVjdGlvblR5cGUgPT09ICdtb250aCcpIHtcbiAgICBjb25zdCBtb250aE51bWJlciA9IGAwJHtkYXRlLmdldE1vbnRoKCkgKyAxfWAuc2xpY2UoLTIpO1xuICAgIHJldHVybiBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9LSR7bW9udGhOdW1iZXJ9YDtcbiAgfVxuXG4gIGlmIChzZWxlY3Rpb25UeXBlID09PSAneWVhcicpIHtcbiAgICByZXR1cm4gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTtcbn07XG5cbi8vXG5cbmV4cG9ydCBjb25zdCBnZXRMb2NhbERhdGVGcm9tU3RyaW5nID0gKHN0cmluZzogc3RyaW5nLCBsb2NhbGU6IHN0cmluZywgdGltZT86IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDIwMTMsIDExLCAzMSwgMTcsIDE5LCAyMik7XG4gIGxldCByZWdleCA9IHRpbWUgPyBkYXRlLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSkgOiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpO1xuICByZWdleCA9IHJlZ2V4XG4gICAgLnJlcGxhY2UoJzIwMTMnLCAnKD88eWVhcj5bMC05XXsyLDR9KScpXG4gICAgLnJlcGxhY2UoJzEyJywgJyg/PG1vbnRoPlswLTldezEsMn0pJylcbiAgICAucmVwbGFjZSgnMzEnLCAnKD88ZGF5PlswLTldezEsMn0pJyk7XG5cbiAgaWYgKHRpbWUpIHtcbiAgICByZWdleCA9IHJlZ2V4XG4gICAgICAucmVwbGFjZSgnNScsICcoPzxob3VyPlswLTldezEsMn0pJylcbiAgICAgIC5yZXBsYWNlKCcxNycsICcoPzxob3VyPlswLTldezEsMn0pJylcbiAgICAgIC5yZXBsYWNlKCcxOScsICcoPzxtaW51dGU+WzAtOV17MSwyfSknKVxuICAgICAgLnJlcGxhY2UoJzIyJywgJyg/PHNlY29uZD5bMC05XXsxLDJ9KScpXG4gICAgICAucmVwbGFjZSgnUE0nLCAnKD88YW1wbT5bQS1aXXsyfSknKTtcbiAgfVxuXG4gIGNvbnN0IHJneCA9IFJlZ0V4cChgJHtyZWdleH1gKTtcbiAgY29uc3QgcGFydGlhbHMgPSBzdHJpbmcubWF0Y2gocmd4KTtcblxuICBpZiAocGFydGlhbHMgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBuZXdEYXRlID0gcGFydGlhbHMuZ3JvdXBzICYmICh0aW1lID8gbmV3IERhdGUoTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1sneWVhciddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snbW9udGgnXSkgLSAxLCBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydkYXknXSksIHBhcnRpYWxzLmdyb3Vwc1snYW1wbSddID8gcGFydGlhbHMuZ3JvdXBzWydhbXBtJ10gPT09ICdQTScgPyBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydob3VyJ10pICsgMTIgOiBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydob3VyJ10pIDogTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snaG91ciddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snbWludXRlJ10pLCBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydzZWNvbmQnXSkpIDogbmV3IERhdGUoTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1sneWVhciddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snbW9udGgnXSkgLSAxLCBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydkYXknXSkpKTtcblxuICByZXR1cm4gbmV3RGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNb250aE5hbWUgPSAobW9udGg6IG51bWJlciwgbG9jYWxlOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKCk7XG4gIGQuc2V0RGF0ZSgxKTtcbiAgZC5zZXRNb250aChtb250aCk7XG4gIHJldHVybiBkLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1vbnRoc05hbWVzID0gKGxvY2FsZTogc3RyaW5nLCB5ZWFyOiBudW1iZXIpID0+IHtcbiAgY29uc3QgbW9udGhzID0gW107XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSh5ZWFyKTtcbiAgZC5zZXREYXRlKDEpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgIGQuc2V0TW9udGgoaSk7XG4gICAgbW9udGhzLnB1c2goeyB5ZWFyLCBtb250aDogZC50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7IG1vbnRoOiAnc2hvcnQnIH0pIH0pO1xuICB9XG5cbiAgcmV0dXJuIG1vbnRocztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRZZWFycyA9ICh5ZWFyOiBudW1iZXIpID0+IHtcbiAgY29uc3QgeWVhcnMgPSBbXTtcbiAgZm9yIChsZXQgX3llYXIgPSB5ZWFyIC0gNjsgX3llYXIgPCB5ZWFyICsgNjsgX3llYXIrKykge1xuICAgIHllYXJzLnB1c2goX3llYXIpO1xuICB9XG5cbiAgcmV0dXJuIHllYXJzO1xufTtcblxuY29uc3QgZ2V0TGVhZGluZ0RheXMgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBmaXJzdERheU9mV2VlazogbnVtYmVyKSA9PiB7XG4gIC8vIDA6IHN1bmRheVxuICAvLyAxOiBtb25kYXlcbiAgY29uc3QgZGF0ZXMgPSBbXTtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoKTtcbiAgY29uc3QgeSA9IGQuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgbSA9IGQuZ2V0TW9udGgoKTtcbiAgY29uc3QgZmlyc3RXZWVrZGF5ID0gbmV3IERhdGUoeSwgbSwgMSkuZ2V0RGF5KCk7XG4gIGxldCBsZWFkaW5nRGF5cyA9IDYgLSAoNiAtIGZpcnN0V2Vla2RheSkgLSBmaXJzdERheU9mV2VlaztcblxuICBpZiAoZmlyc3REYXlPZldlZWspIHtcbiAgICBsZWFkaW5nRGF5cyA9IGxlYWRpbmdEYXlzIDwgMCA/IDcgKyBsZWFkaW5nRGF5cyA6IGxlYWRpbmdEYXlzO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IGxlYWRpbmdEYXlzICogLTE7IGkgPCAwOyBpKyspIHtcbiAgICBkYXRlcy5wdXNoKHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHksIG0sIGkgKyAxKSwgbW9udGg6ICdwcmV2aW91cydcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkYXRlcztcbn07XG5cbmNvbnN0IGdldE1vbnRoRGF5cyA9ICh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpID0+IHtcbiAgY29uc3QgZGF0ZXMgPSBbXTtcbiAgY29uc3QgbGFzdERheSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCkuZ2V0RGF0ZSgpO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSBsYXN0RGF5OyBpKyspIHtcbiAgICBkYXRlcy5wdXNoKHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBpKSwgbW9udGg6ICdjdXJyZW50J1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBkYXRlcztcbn07XG5cbmNvbnN0IGdldFRyYWlsaW5nRGF5cyA9IChcbiAgeWVhcjogbnVtYmVyLFxuICBtb250aDogbnVtYmVyLFxuICBsZWFkaW5nRGF5czogeyBkYXRlOiBEYXRlOyBtb250aDogc3RyaW5nIH1bXSxcbiAgbW9udGhEYXlzOiB7IGRhdGU6IERhdGU7IG1vbnRoOiBzdHJpbmcgfVtdXG4pID0+IHtcbiAgY29uc3QgZGF0ZXMgPSBbXTtcbiAgY29uc3QgZGF5cyA9IDQyIC0gKGxlYWRpbmdEYXlzLmxlbmd0aCArIG1vbnRoRGF5cy5sZW5ndGgpO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSBkYXlzOyBpKyspIHtcbiAgICBkYXRlcy5wdXNoKHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgaSksIG1vbnRoOiAnbmV4dCdcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZGF0ZXM7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF5TnVtYmVyID0gKGRhdGU6IERhdGUpID0+XG4gIE1hdGguY2VpbCgoTnVtYmVyKGRhdGUpIC0gTnVtYmVyKG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMCwgMCkpKSAvIDEwMDAgLyA2MCAvIDYwIC8gMjQpO1xuXG5leHBvcnQgY29uc3QgZ2V0V2Vla051bWJlciA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHdlZWsxID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCA0KTtcbiAgcmV0dXJuICgxICsgTWF0aC5yb3VuZCgoKGRhdGUuZ2V0VGltZSgpIC0gd2VlazEuZ2V0VGltZSgpKSAvIDg2NDAwMDAwIC0gMyArICgod2VlazEuZ2V0RGF5KCkgKyA2KSAlIDcpKSAvIDcpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNb250aERldGFpbHMgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBmaXJzdERheU9mV2VlazogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGRheXNQcmV2TW9udGggPSBnZXRMZWFkaW5nRGF5cyh5ZWFyLCBtb250aCwgZmlyc3REYXlPZldlZWspO1xuICBjb25zdCBkYXlzVGhpc01vbnRoID0gZ2V0TW9udGhEYXlzKHllYXIsIG1vbnRoKTtcbiAgY29uc3QgZGF5c05leHRNb250aCA9IGdldFRyYWlsaW5nRGF5cyh5ZWFyLCBtb250aCwgZGF5c1ByZXZNb250aCwgZGF5c1RoaXNNb250aCk7XG4gIGNvbnN0IGRheXMgPSBbLi4uZGF5c1ByZXZNb250aCwgLi4uZGF5c1RoaXNNb250aCwgLi4uZGF5c05leHRNb250aF07XG5cbiAgY29uc3Qgd2Vla3M6IHsgd2Vla051bWJlcjogbnVtYmVyOyBkYXlzOiB7IGRhdGU6IERhdGU7IG1vbnRoOiBzdHJpbmcgfVtdIH1bXSA9IFtdO1xuXG4gIGRheXMuZm9yRWFjaCgoZGF5LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCAlIDcgPT09IDAgfHwgd2Vla3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB3ZWVrcy5wdXNoKHsgd2Vla051bWJlcjogLTEsIGRheXM6IFtdIH0pO1xuICAgIH1cblxuICAgIGlmICgoaW5kZXggKyAxKSAlIDcgPT09IDApIHtcbiAgICAgIHdlZWtzW3dlZWtzLmxlbmd0aCAtIDFdLndlZWtOdW1iZXIgPSBnZXRXZWVrTnVtYmVyKGRheS5kYXRlKTtcbiAgICB9XG5cbiAgICB3ZWVrc1t3ZWVrcy5sZW5ndGggLSAxXS5kYXlzLnB1c2goZGF5KTtcbiAgfSk7XG5cbiAgcmV0dXJuIFsuLi53ZWVrc107XG59O1xuXG5leHBvcnQgY29uc3QgaXNEYXRlRGlzYWJsZWQgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIG1pbj86IERhdGUgfCBudWxsLCBtYXg/OiBEYXRlIHwgbnVsbCwgZGF0ZXM/OiAoRGF0ZSB8IERhdGVbXSlbXSkgPT4ge1xuICBpZiAoIWRhdGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCFtaW4gJiYgIW1heCAmJiAoIWRhdGVzIHx8ICFkYXRlcy5sZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChtYXggJiYgZGF0ZSA+IG1heCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbGV0IGRpc2FibGVkID0gZmFsc2U7XG4gIGlmIChkYXRlcykge1xuICAgIGZvciAoY29uc3QgX2RhdGUgb2YgZGF0ZXMpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KF9kYXRlKSkge1xuICAgICAgICBpZiAoaXNEYXRlSW5SYW5nZShkYXRlLCBfZGF0ZVswXSwgX2RhdGVbMV0pKSB7XG4gICAgICAgICAgZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoX2RhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIGlmIChpc1NhbWVEYXRlQXMoZGF0ZSwgX2RhdGUpKSB7XG4gICAgICAgICAgZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpc2FibGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRGF0ZUluUmFuZ2UgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiBzdGFydCAmJiBlbmQgJiYgc3RhcnQgPD0gZGF0ZSAmJiBkYXRlIDw9IGVuZDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1llYXJJblJhbmdlID0gKGRhdGU6IERhdGUgfCBudWxsLCBzdGFydDogRGF0ZSB8IG51bGwsIGVuZDogRGF0ZSB8IG51bGwpID0+IHtcbiAgcmV0dXJuIGRhdGUgJiYgc3RhcnQgJiYgZW5kICYmIHN0YXJ0LmdldEZ1bGxZZWFyKCkgPD0gZGF0ZS5nZXRGdWxsWWVhcigpICYmIGRhdGUuZ2V0RnVsbFllYXIoKSA8PSBlbmQuZ2V0RnVsbFllYXIoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVCZXR3ZWVuTWluTWF4ID0gKGRhdGU6IERhdGUgfCBudWxsLCBtaW46IERhdGUgfCBudWxsLCBtYXg6IERhdGUgfCBudWxsKSA9PiB7XG4gIGlmIChkYXRlICYmIG1pbiAmJiBtYXgpIHtcbiAgICByZXR1cm4gbWluIDw9IGRhdGUgJiYgZGF0ZSA8PSBtYXg7XG4gIH1cbiAgaWYgKGRhdGUgJiYgbWluKSB7XG4gICAgcmV0dXJuIG1pbiA8PSBkYXRlO1xuICB9XG4gIGlmIChkYXRlICYmIG1heCkge1xuICAgIHJldHVybiBkYXRlIDw9IG1heDtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVTZWxlY3RlZCA9IChkYXRlOiBEYXRlIHwgbnVsbCwgc3RhcnQ6IERhdGUgfCBudWxsLCBlbmQ6IERhdGUgfCBudWxsKSA9PiB7XG4gIHJldHVybiBkYXRlICYmICgoc3RhcnQgJiYgaXNTYW1lRGF0ZUFzKHN0YXJ0LCBkYXRlKSkgfHwgKGVuZCAmJiBpc1NhbWVEYXRlQXMoZW5kLCBkYXRlKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzTW9udGhTZWxlY3RlZCA9IChkYXRlOiBEYXRlIHwgbnVsbCwgc3RhcnQ6IERhdGUgfCBudWxsLCBlbmQ6IERhdGUgfCBudWxsKSA9PiB7XG4gIHJldHVybiBkYXRlICYmICgoc3RhcnQgJiYgaXNTYW1lTW9udGhBcyhzdGFydCwgZGF0ZSkpIHx8IChlbmQgJiYgaXNTYW1lTW9udGhBcyhlbmQsIGRhdGUpKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNZZWFyU2VsZWN0ZWQgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiAoKHN0YXJ0ICYmIGlzU2FtZVllYXJBcyhzdGFydCwgZGF0ZSkpIHx8IChlbmQgJiYgaXNTYW1lWWVhckFzKGVuZCwgZGF0ZSkpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0VuZERhdGUgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiBzdGFydCAmJiBlbmQgJiYgaXNTYW1lRGF0ZUFzKGVuZCwgZGF0ZSkgJiYgc3RhcnQgPCBlbmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNMYXN0RGF5T2ZNb250aCA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHRlc3QgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG4gIGNvbnN0IG1vbnRoID0gdGVzdC5nZXRNb250aCgpO1xuXG4gIHRlc3Quc2V0RGF0ZSh0ZXN0LmdldERhdGUoKSArIDEpO1xuICByZXR1cm4gdGVzdC5nZXRNb250aCgpICE9PSBtb250aDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NhbWVEYXRlQXMgPSAoZGF0ZTogRGF0ZSwgZGF0ZTI6IERhdGUpID0+IHtcbiAgcmV0dXJuIChkYXRlLmdldERhdGUoKSA9PSBkYXRlMi5nZXREYXRlKCkgJiYgZGF0ZS5nZXRNb250aCgpID09IGRhdGUyLmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IGRhdGUyLmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2FtZU1vbnRoQXMgPSAoZGF0ZTogRGF0ZSwgZGF0ZTI6IERhdGUpID0+IHtcbiAgcmV0dXJuIChkYXRlLmdldE1vbnRoKCkgPT0gZGF0ZTIuZ2V0TW9udGgoKSAmJiBkYXRlLmdldEZ1bGxZZWFyKCkgPT0gZGF0ZTIuZ2V0RnVsbFllYXIoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTYW1lWWVhckFzID0gKGRhdGU6IERhdGUsIGRhdGUyOiBEYXRlKSA9PiB7XG4gIHJldHVybiAoZGF0ZS5nZXRGdWxsWWVhcigpID09IGRhdGUyLmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU3RhcnREYXRlID0gKGRhdGU6IERhdGUgfCBudWxsLCBzdGFydDogRGF0ZSB8IG51bGwsIGVuZDogRGF0ZSB8IG51bGwpID0+IHtcbiAgcmV0dXJuIGRhdGUgJiYgc3RhcnQgJiYgZW5kICYmIGlzU2FtZURhdGVBcyhzdGFydCwgZGF0ZSkgJiYgc3RhcnQgPCBlbmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUb2RheSA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuIChkYXRlLmdldERhdGUoKSA9PSB0b2RheS5nZXREYXRlKCkgJiYgZGF0ZS5nZXRNb250aCgpID09IHRvZGF5LmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGhpc01vbnRoID0gKGRhdGU6IERhdGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICByZXR1cm4gKGluZGV4ID09IHRvZGF5LmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGhpc1llYXIgPSAoeWVhcjogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuICh5ZWFyID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWREYXRlID0gKGRhdGU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBib29sZWFuID0+IHtcblxuICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIGRhdGUgPT09ICdudW1iZXInIHx8IHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgIC8vIFRyeSB0byBjcmVhdGUgYSBEYXRlIG9iamVjdCBmcm9tIERhdGUgb3IgdGltZXN0YW1wIG9yIHN0cmluZ1xuICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlKTtcbiAgICByZXR1cm4gIWlzTmFOKGRhdGVPYmouZ2V0VGltZSgpKTtcbiAgfVxuXG4gIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIGNvbmRpdGlvbnMgYXJlIG1ldCwgaXQncyBub3QgYSB2YWxpZCBkYXRlXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cnlEYXRlID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlLCBwcm9wTmFtZTogc3RyaW5nID0gJ2RhdGUnKSA9PiB7XG4gIGxldCBfdmFsdWU7XG4gIHRyeSB7XG4gICAgaWYgKCFpc1ZhbGlkRGF0ZSh2YWx1ZSkpIHtcbiAgICAgIHRocm93IHZhbHVlO1xuICAgIH1cbiAgICBfdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUud2FybihgSW52YWxpZCAke3Byb3BOYW1lfWAsIGVycik7XG4gICAgX3ZhbHVlID0gbmV3IERhdGUoKTtcbiAgICBfdmFsdWUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIH1cbiAgcmV0dXJuIF92YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVJblJhbmdlRGlzYWJsZWQgPSAoc3RhcnREYXRlPzogRGF0ZSB8IG51bGwsIGVuZERhdGU/OiBEYXRlIHwgbnVsbCwgZGF0ZXM/OiAoRGF0ZSB8IERhdGVbXSlbXSkgPT4ge1xuICBpZiAoIWRhdGVzIHx8ICFkYXRlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHN0YXJ0RGF0ZSAmJiBlbmREYXRlKSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XG4gICAgbGV0IGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoZGF0ZSA8IGVuZERhdGUpIHtcbiAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpO1xuICAgICAgaWYgKGlzRGF0ZURpc2FibGVkKGRhdGUsIG51bGwsIG51bGwsIGRhdGVzKSkge1xuICAgICAgICBkaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGlzYWJsZWQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLy8gZXhwb3J0IGNvbnN0IHN0cmluZ1RvRGF0ZUNvbnZlcnQgPSAoZGF0ZTogc3RyaW5nLCBsb2NhbGVzOiBzdHJpbmcpID0+IHtcbi8vICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2ZyLUZSJyk7XG4vLyAgIGNvbnN0IHBhcnRzID0gZm9ybWF0dGVyLmZvcm1hdFRvUGFydHMoKTtcbi8vICAgY29uc29sZS5sb2coZGF0ZSwgcGFydHMsIGZvcm1hdHRlci5mb3JtYXQoKSwgZm9ybWF0dGVyLnJlc29sdmVkT3B0aW9ucygpLCBmb3JtYXR0ZXIuZm9ybWF0KCkpO1xuLy8gfTtcblxuLy8gZGVjbGFyZSBuYW1lc3BhY2UgSW50bCB7XG4vLyAgIHR5cGUgRGF0ZVRpbWVGb3JtYXRQYXJ0VHlwZXMgPSBcImRheVwiIHwgXCJkYXlQZXJpb2RcIiB8IFwiZXJhXCIgfCBcImZyYWN0aW9uYWxTZWNvbmRcIiB8IFwiaG91clwiIHwgXCJsaXRlcmFsXCIgfCBcIm1pbnV0ZVwiIHwgXCJtb250aFwiIHwgXCJzZWNvbmRcIiB8IFwidGltZVpvbmVOYW1lXCIgfCBcIndlZWtkYXlcIiB8IFwieWVhclwiO1xuLy9cbi8vICAgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0UGFydCB7XG4vLyAgICAgdHlwZTogRGF0ZVRpbWVGb3JtYXRQYXJ0VHlwZXM7XG4vLyAgICAgdmFsdWU6IHN0cmluZztcbi8vICAgfVxuLy9cbi8vICAgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0IHtcbi8vICAgICBmb3JtYXRUb1BhcnRzKGRhdGU/OiBEYXRlIHwgbnVtYmVyKTogRGF0ZVRpbWVGb3JtYXRQYXJ0W107XG4vLyAgIH1cbi8vIH1cblxudHlwZSBEYXRlVGltZUZvcm1hdFBhcnRUeXBlcyA9XG4gICdkYXknXG4gIHwgJ2RheVBlcmlvZCdcbiAgfCAnZXJhJ1xuICB8ICdmcmFjdGlvbmFsU2Vjb25kJ1xuICB8ICdob3VyJ1xuICB8ICdsaXRlcmFsJ1xuICB8ICdtaW51dGUnXG4gIHwgJ21vbnRoJ1xuICB8ICdzZWNvbmQnXG4gIHwgJ3RpbWVab25lTmFtZSdcbiAgfCAnd2Vla2RheSdcbiAgfCAneWVhcic7XG50eXBlIERhdGVGb3JtYXRQYXJ0VHlwZXMgPSAnZGF5JyB8ICdtb250aCcgfCAneWVhcicgfCAnbGl0ZXJhbCc7XG5cbi8vIHR5cGUgRGF0ZVBhcnRzID0ge1xuLy8gICBba2V5IGluIERhdGVUaW1lRm9ybWF0UGFydFR5cGVzXT86IHN0cmluZztcbi8vIH07XG5cbi8vIHR5cGUgRGF0ZVBhcnRzID0ge1xuLy8gICB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyLCBsaXRlcmFsOiBzdHJpbmdcbi8vIH07XG4vL1xuLy8gZXhwb3J0IGNvbnN0IGN2dERhdGUgPSAoZGF0ZUFzU3RyaW5nOiBzdHJpbmcsIGxvY2FsZSA9ICdwbC1QTCcpID0+IHtcbi8vICAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGVBc1N0cmluZyA/PyBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpO1xuLy8gICBjb25zdCBkYXRlU3BsaXQgPSBkYXRlU3RyaW5nLnNwbGl0KC9bLlxcLVxcL1xcc1xcRF0vZ2kpLmZpbHRlcihpdGVtID0+ICEhaXRlbS5sZW5ndGgpO1xuLy8gICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUpO1xuLy8gICBjb25zdCBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKCkuZmlsdGVyKHBhcnQgPT4gWyd5ZWFyJywgJ21vbnRoJywgJ2RheSddLmluY2x1ZGVzKHBhcnQudHlwZSkpO1xuLy8gICBjb25zdCBkYXRlU2hpbSA9IHtcbi8vICAgICBkYXk6IHVuZGVmaW5lZCwgbW9udGg6IHVuZGVmaW5lZCwgeWVhcjogdW5kZWZpbmVkXG4vLyAgIH07XG4vLyAgIHBhcnRzLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4vLyAgICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0geyAuLi5wYXJ0IH07XG4vLyAgICAgLy8gQHRzLWlnbm9yZVxuLy8gICAgIGRhdGVTaGltW3R5cGVdID0gZGF0ZVNwbGl0W2luZGV4XTtcbi8vICAgfSk7XG4vL1xuLy8gICByZXR1cm4gZGF0ZVNoaW07XG4vL1xuLy8gICAvLyBjb25zdCBkYXRlUGFydHM6IERhdGVQYXJ0cyA9IHtcbi8vICAgLy8gICB5ZWFyOiAwLFxuLy8gICAvLyAgIG1vbnRoOiAwLFxuLy8gICAvLyAgIGRheTogMCxcbi8vICAgLy8gICBsaXRlcmFsOiAnLydcbi8vICAgLy8gfTtcbi8vICAgLy9cbi8vICAgLy8gY29uc3QgbGl0ZXJhbCA9IHBhcnRzLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICdsaXRlcmFsJyk/LnZhbHVlID8/ICcvJztcbi8vICAgLy8gLy8gY29uc3QgeWVhciA9IHBhcnNlSW50KHBhcnRzLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICd5ZWFyJyk/LnZhbHVlID8/ICcwJyk7XG4vLyAgIC8vIC8vIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQocGFydHMuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ3llYXInKT8udmFsdWUgPz8gJzAnKTtcbi8vICAgLy8gLy8gY29uc3QgZGF5ID0gcGFyc2VJbnQocGFydHMuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ3llYXInKT8udmFsdWUgPz8gJzAnKTtcbi8vICAgLy9cbi8vICAgLy8gY29uc3QgZGF0ZUFycmF5ID0gZGF0ZVN0cmluZy5zcGxpdChsaXRlcmFsKTtcbi8vICAgLy9cbi8vICAgLy8gcGFydHMuZm9yRWFjaChwYXJ0ID0+IHtcbi8vICAgLy8gICBjb25zdCB7dHlwZSwgdmFsdWV9ID0gey4uLnBhcnR9O1xuLy8gICAvLyAgIGlmICh0eXBlID09PSAnZGF5Jykge1xuLy8gICAvL1xuLy8gICAvLyAgIH1cbi8vICAgLy8gfSlcbi8vICAgLy9cbi8vICAgLy8gcGFydHMuZmlsdGVyKHBhcnQgPT4gcGFydC50eXBlIGluIGRhdGVQYXJ0cykubWFwKHBhcnQgPT4ge1xuLy8gICAvLyAgIGNvbnN0IHt0eXBlLCB2YWx1ZX0gPSB7Li4ucGFydH07XG4vLyAgIC8vICAgLy8gQHRzLWlnbm9yZVxuLy8gICAvLyAgIGRhdGVQYXJ0c1t0eXBlXSA9IHBhcnNlSW50KHBhcnQudmFsdWUpO1xuLy8gICAvLyAgIC8vXG4vLyAgIC8vICAgLy8gc3dpdGNoICh0eXBlKSB7XG4vLyAgIC8vICAgLy8gICBjYXNlICdkYXknOlxuLy8gICAvLyAgIC8vICAgICBkYXkgPSBwYXJzZUludCh2YWx1ZSk7XG4vLyAgIC8vICAgLy8gICAgIGJyZWFrO1xuLy8gICAvLyAgIC8vICAgY2FzZSAnbW9udGgnOlxuLy8gICAvLyAgIC8vICAgICBtb250aCA9IHBhcnNlSW50KHZhbHVlKTtcbi8vICAgLy8gICAvLyAgICAgYnJlYWs7XG4vLyAgIC8vICAgLy8gICBjYXNlICd5ZWFyJzpcbi8vICAgLy8gICAvLyAgICAgeWVhciA9IHBhcnNlSW50KHZhbHVlKTtcbi8vICAgLy8gICAvLyAgICAgYnJlYWs7XG4vLyAgIC8vICAgLy8gfVxuLy8gICAvLyB9KVxuLy8gICAvLyAvLyBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IHsuLi5kYXRlUGFydHN9XG4vLyAgIC8vIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XG4vLyB9O1xuLy9cbi8vIC8vIGZ1bmN0aW9uIGdldERhdGVYKGRhdGVBc1N0cmluZykge1xuLy8gLy8gICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlQXNTdHJpbmcuc3BsaXQoJy8nKTtcbi8vIC8vICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbi8vIC8vIH1cbi8vXG4vLyAvLyBnZXREYXRlKCcxMi8wNy8xOTk3Jyk7XG4iXX0=
369
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDdEQsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLHVDQUF1QztJQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFDLDREQUE0RDtJQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakYsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxJQUFtQixFQUNuQixhQUE2QixFQUM3QixFQUFFO0lBRUYsSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxhQUFhLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDN0IsT0FBTyxvQkFBb0IsQ0FBQyxJQUFjLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FB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QixDQUFDO2FBQ3RDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUM7YUFDdEMsT0FBTyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFbkMsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEIsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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QjtBQUN2QiwyQkFBMkI7QUFDM0Isd0NBQXdDO0FBQ3hDLHVCQUF1QjtBQUN2QixjQUFjO0FBQ2QsVUFBVTtBQUNWLHNEQUFzRDtBQUN0RCw4Q0FBOEM7QUFDOUMsS0FBSztBQUNMLEVBQUU7QUFDRix1Q0FBdUM7QUFDdkMsMkRBQTJEO0FBQzNELDhDQUE4QztBQUM5QyxPQUFPO0FBQ1AsRUFBRTtBQUNGLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvblR5cGUgfSBmcm9tICcuL2NhbGVuZGFyLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgY29udmVydElzb1dlZWtUb0RhdGUgPSAoaXNvV2Vlazogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IFt5ZWFyLCB3ZWVrXSA9IGlzb1dlZWsuc3BsaXQoL3cvaSk7XG4gIC8vIEdldCBkYXRlIGZvciA0dGggb2YgSmFudWFyeSBmb3IgeWVhclxuICBjb25zdCBkYXRlID0gbmV3IERhdGUoTnVtYmVyKHllYXIpLCAwLCA0KTtcbiAgLy8gR2V0IHByZXZpb3VzIE1vbmRheSwgYWRkIDcgZGF5cyBmb3IgZWFjaCB3ZWVrIGFmdGVyIGZpcnN0XG4gIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSAtIChkYXRlLmdldERheSgpIHx8IDcpICsgMSArIChOdW1iZXIod2VlaykgLSAxKSAqIDcpO1xuICByZXR1cm4gZGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9EYXRlT2JqZWN0ID0gKFxuICBkYXRlOiBEYXRlIHwgc3RyaW5nLFxuICBzZWxlY3Rpb25UeXBlPzogU2VsZWN0aW9uVHlwZVxuKSA9PiB7XG5cbiAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICBpZiAoc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnKSB7XG4gICAgcmV0dXJuIGNvbnZlcnRJc29XZWVrVG9EYXRlKGRhdGUgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKGRhdGUpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9Mb2NhbERhdGUgPSAoZDogRGF0ZSwgbG9jYWxlOiBzdHJpbmcsIG9wdGlvbnMgPSB7fSkgPT5cbiAgZC50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCBvcHRpb25zKTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRUb0xvY2FsVGltZSA9IChkOiBEYXRlLCBsb2NhbGU6IHN0cmluZywgb3B0aW9ucyA9IHt9KSA9PlxuICBkLnRvTG9jYWxlVGltZVN0cmluZyhsb2NhbGUsIG9wdGlvbnMpO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlR3JvdXBzSW5BcnJheSA9IDxUPihhcnI6IFRbXSwgbnVtYmVyT2ZHcm91cHM6IG51bWJlcik6IFRbXVtdID0+IHtcbiAgY29uc3QgcGVyR3JvdXAgPSBNYXRoLmNlaWwoYXJyLmxlbmd0aCAvIG51bWJlck9mR3JvdXBzKTtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IG51bWJlck9mR3JvdXBzIH0pXG4gICAgLmZpbGwoJycpXG4gICAgLm1hcCgoXywgaSkgPT4gYXJyLnNsaWNlKGkgKiBwZXJHcm91cCwgKGkgKyAxKSAqIHBlckdyb3VwKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q2FsZW5kYXJEYXRlID0gKGNhbGVuZGFyRGF0ZTogRGF0ZSwgb3JkZXI6IG51bWJlciwgdmlldzogJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnKSA9PiB7XG4gIGlmIChvcmRlciAhPT0gMCAmJiB2aWV3ID09PSAnZGF5cycpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCksIGNhbGVuZGFyRGF0ZS5nZXRNb250aCgpICsgb3JkZXIsIDEpKTtcbiAgfVxuXG4gIGlmIChvcmRlciAhPT0gMCAmJiB2aWV3ID09PSAnbW9udGhzJykge1xuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhjYWxlbmRhckRhdGUuZ2V0RnVsbFllYXIoKSArIG9yZGVyLCBjYWxlbmRhckRhdGUuZ2V0TW9udGgoKSwgMSkpO1xuICB9XG5cbiAgaWYgKG9yZGVyICE9PSAwICYmIHZpZXcgPT09ICd5ZWFycycpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCkgKyAoMTIgKiBvcmRlciksIGNhbGVuZGFyRGF0ZS5nZXRNb250aCgpLCAxKSk7XG4gIH1cblxuICByZXR1cm4gY2FsZW5kYXJEYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRZZWFyID0gKCkgPT4gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudE1vbnRoID0gKCkgPT4gbmV3IERhdGUoKS5nZXRNb250aCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZUJ5U2VsZWN0aW9uVHlwZSA9IChcbiAgZGF0ZTogRGF0ZSB8IG51bGwsXG4gIHNlbGVjdGlvblR5cGU6IFNlbGVjdGlvblR5cGVcbikgPT4ge1xuICBpZiAoZGF0ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHNlbGVjdGlvblR5cGUgPT09ICd3ZWVrJykge1xuICAgIHJldHVybiBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9VyR7Z2V0V2Vla051bWJlcihkYXRlKX1gO1xuICB9XG5cbiAgaWYgKHNlbGVjdGlvblR5cGUgPT09ICdtb250aCcpIHtcbiAgICBjb25zdCBtb250aE51bWJlciA9IGAwJHtkYXRlLmdldE1vbnRoKCkgKyAxfWAuc2xpY2UoLTIpO1xuICAgIHJldHVybiBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9LSR7bW9udGhOdW1iZXJ9YDtcbiAgfVxuXG4gIGlmIChzZWxlY3Rpb25UeXBlID09PSAneWVhcicpIHtcbiAgICByZXR1cm4gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTtcbn07XG5cbi8vXG5cbmV4cG9ydCBjb25zdCBnZXRMb2NhbERhdGVGcm9tU3RyaW5nID0gKHN0cmluZzogc3RyaW5nLCBsb2NhbGU6IHN0cmluZywgdGltZT86IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDIwMTMsIDExLCAzMSwgMTcsIDE5LCAyMik7XG4gIGxldCByZWdleCA9IHRpbWUgPyBkYXRlLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSkgOiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpO1xuICByZWdleCA9IHJlZ2V4XG4gICAgLnJlcGxhY2UoJzIwMTMnLCAnKD88eWVhcj5bMC05XXsyLDR9KScpXG4gICAgLnJlcGxhY2UoJzEyJywgJyg/PG1vbnRoPlswLTldezEsMn0pJylcbiAgICAucmVwbGFjZSgnMzEnLCAnKD88ZGF5PlswLTldezEsMn0pJyk7XG5cbiAgaWYgKHRpbWUpIHtcbiAgICByZWdleCA9IHJlZ2V4XG4gICAgICAucmVwbGFjZSgnNScsICcoPzxob3VyPlswLTldezEsMn0pJylcbiAgICAgIC5yZXBsYWNlKCcxNycsICcoPzxob3VyPlswLTldezEsMn0pJylcbiAgICAgIC5yZXBsYWNlKCcxOScsICcoPzxtaW51dGU+WzAtOV17MSwyfSknKVxuICAgICAgLnJlcGxhY2UoJzIyJywgJyg/PHNlY29uZD5bMC05XXsxLDJ9KScpXG4gICAgICAucmVwbGFjZSgnUE0nLCAnKD88YW1wbT5bQS1aXXsyfSknKTtcbiAgfVxuXG4gIGNvbnN0IHJneCA9IFJlZ0V4cChgJHtyZWdleH1gKTtcbiAgY29uc3QgcGFydGlhbHMgPSBzdHJpbmcubWF0Y2gocmd4KTtcblxuICBpZiAocGFydGlhbHMgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBuZXdEYXRlID0gcGFydGlhbHMuZ3JvdXBzICYmICh0aW1lID8gbmV3IERhdGUoTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1sneWVhciddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snbW9udGgnXSkgLSAxLCBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydkYXknXSksIHBhcnRpYWxzLmdyb3Vwc1snYW1wbSddID8gcGFydGlhbHMuZ3JvdXBzWydhbXBtJ10gPT09ICdQTScgPyBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydob3VyJ10pICsgMTIgOiBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydob3VyJ10pIDogTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snaG91ciddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snbWludXRlJ10pLCBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydzZWNvbmQnXSkpIDogbmV3IERhdGUoTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1sneWVhciddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snbW9udGgnXSkgLSAxLCBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydkYXknXSkpKTtcblxuICByZXR1cm4gbmV3RGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNb250aE5hbWUgPSAobW9udGg6IG51bWJlciwgbG9jYWxlOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKCk7XG4gIGQuc2V0RGF0ZSgxKTtcbiAgZC5zZXRNb250aChtb250aCk7XG4gIHJldHVybiBkLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1vbnRoc05hbWVzID0gKGxvY2FsZTogc3RyaW5nLCB5ZWFyOiBudW1iZXIpID0+IHtcbiAgY29uc3QgbW9udGhzID0gW107XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSh5ZWFyKTtcbiAgZC5zZXREYXRlKDEpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgIGQuc2V0TW9udGgoaSk7XG4gICAgbW9udGhzLnB1c2goeyB5ZWFyLCBtb250aDogZC50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7IG1vbnRoOiAnc2hvcnQnIH0pIH0pO1xuICB9XG5cbiAgcmV0dXJuIG1vbnRocztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRZZWFycyA9ICh5ZWFyOiBudW1iZXIpID0+IHtcbiAgY29uc3QgeWVhcnMgPSBbXTtcbiAgZm9yIChsZXQgX3llYXIgPSB5ZWFyIC0gNjsgX3llYXIgPCB5ZWFyICsgNjsgX3llYXIrKykge1xuICAgIHllYXJzLnB1c2goX3llYXIpO1xuICB9XG5cbiAgcmV0dXJuIHllYXJzO1xufTtcblxuY29uc3QgZ2V0TGVhZGluZ0RheXMgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBmaXJzdERheU9mV2VlazogbnVtYmVyKSA9PiB7XG4gIC8vIDA6IHN1bmRheVxuICAvLyAxOiBtb25kYXlcbiAgY29uc3QgZGF0ZXMgPSBbXTtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoKTtcbiAgY29uc3QgeSA9IGQuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgbSA9IGQuZ2V0TW9udGgoKTtcbiAgY29uc3QgZmlyc3RXZWVrZGF5ID0gbmV3IERhdGUoeSwgbSwgMSkuZ2V0RGF5KCk7XG4gIGxldCBsZWFkaW5nRGF5cyA9IDYgLSAoNiAtIGZpcnN0V2Vla2RheSkgLSBmaXJzdERheU9mV2VlaztcblxuICBpZiAoZmlyc3REYXlPZldlZWspIHtcbiAgICBsZWFkaW5nRGF5cyA9IGxlYWRpbmdEYXlzIDwgMCA/IDcgKyBsZWFkaW5nRGF5cyA6IGxlYWRpbmdEYXlzO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IGxlYWRpbmdEYXlzICogLTE7IGkgPCAwOyBpKyspIHtcbiAgICBkYXRlcy5wdXNoKHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHksIG0sIGkgKyAxKSwgbW9udGg6ICdwcmV2aW91cydcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkYXRlcztcbn07XG5cbmNvbnN0IGdldE1vbnRoRGF5cyA9ICh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpID0+IHtcbiAgY29uc3QgZGF0ZXMgPSBbXTtcbiAgY29uc3QgbGFzdERheSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCkuZ2V0RGF0ZSgpO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSBsYXN0RGF5OyBpKyspIHtcbiAgICBkYXRlcy5wdXNoKHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBpKSwgbW9udGg6ICdjdXJyZW50J1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBkYXRlcztcbn07XG5cbmNvbnN0IGdldFRyYWlsaW5nRGF5cyA9IChcbiAgeWVhcjogbnVtYmVyLFxuICBtb250aDogbnVtYmVyLFxuICBsZWFkaW5nRGF5czogeyBkYXRlOiBEYXRlOyBtb250aDogc3RyaW5nIH1bXSxcbiAgbW9udGhEYXlzOiB7IGRhdGU6IERhdGU7IG1vbnRoOiBzdHJpbmcgfVtdXG4pID0+IHtcbiAgY29uc3QgZGF0ZXMgPSBbXTtcbiAgY29uc3QgZGF5cyA9IDQyIC0gKGxlYWRpbmdEYXlzLmxlbmd0aCArIG1vbnRoRGF5cy5sZW5ndGgpO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSBkYXlzOyBpKyspIHtcbiAgICBkYXRlcy5wdXNoKHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgaSksIG1vbnRoOiAnbmV4dCdcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZGF0ZXM7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF5TnVtYmVyID0gKGRhdGU6IERhdGUpID0+XG4gIE1hdGguY2VpbCgoTnVtYmVyKGRhdGUpIC0gTnVtYmVyKG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMCwgMCkpKSAvIDEwMDAgLyA2MCAvIDYwIC8gMjQpO1xuXG5leHBvcnQgY29uc3QgZ2V0V2Vla051bWJlciA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHdlZWsxID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCA0KTtcbiAgcmV0dXJuICgxICsgTWF0aC5yb3VuZCgoKGRhdGUuZ2V0VGltZSgpIC0gd2VlazEuZ2V0VGltZSgpKSAvIDg2NDAwMDAwIC0gMyArICgod2VlazEuZ2V0RGF5KCkgKyA2KSAlIDcpKSAvIDcpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNb250aERldGFpbHMgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBmaXJzdERheU9mV2VlazogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGRheXNQcmV2TW9udGggPSBnZXRMZWFkaW5nRGF5cyh5ZWFyLCBtb250aCwgZmlyc3REYXlPZldlZWspO1xuICBjb25zdCBkYXlzVGhpc01vbnRoID0gZ2V0TW9udGhEYXlzKHllYXIsIG1vbnRoKTtcbiAgY29uc3QgZGF5c05leHRNb250aCA9IGdldFRyYWlsaW5nRGF5cyh5ZWFyLCBtb250aCwgZGF5c1ByZXZNb250aCwgZGF5c1RoaXNNb250aCk7XG4gIGNvbnN0IGRheXMgPSBbLi4uZGF5c1ByZXZNb250aCwgLi4uZGF5c1RoaXNNb250aCwgLi4uZGF5c05leHRNb250aF07XG5cbiAgY29uc3Qgd2Vla3M6IHsgd2Vla051bWJlcjogbnVtYmVyOyBkYXlzOiB7IGRhdGU6IERhdGU7IG1vbnRoOiBzdHJpbmcgfVtdIH1bXSA9IFtdO1xuXG4gIGRheXMuZm9yRWFjaCgoZGF5LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCAlIDcgPT09IDAgfHwgd2Vla3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB3ZWVrcy5wdXNoKHsgd2Vla051bWJlcjogLTEsIGRheXM6IFtdIH0pO1xuICAgIH1cblxuICAgIGlmICgoaW5kZXggKyAxKSAlIDcgPT09IDApIHtcbiAgICAgIHdlZWtzW3dlZWtzLmxlbmd0aCAtIDFdLndlZWtOdW1iZXIgPSBnZXRXZWVrTnVtYmVyKGRheS5kYXRlKTtcbiAgICB9XG5cbiAgICB3ZWVrc1t3ZWVrcy5sZW5ndGggLSAxXS5kYXlzLnB1c2goZGF5KTtcbiAgfSk7XG5cbiAgcmV0dXJuIFsuLi53ZWVrc107XG59O1xuXG5leHBvcnQgY29uc3QgaXNEYXRlRGlzYWJsZWQgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIG1pbj86IERhdGUgfCBudWxsLCBtYXg/OiBEYXRlIHwgbnVsbCwgZGF0ZXM/OiAoRGF0ZSB8IERhdGVbXSlbXSkgPT4ge1xuICBpZiAoIWRhdGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCFtaW4gJiYgIW1heCAmJiAoIWRhdGVzIHx8ICFkYXRlcy5sZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChtYXggJiYgZGF0ZSA+IG1heCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbGV0IGRpc2FibGVkID0gZmFsc2U7XG4gIGlmIChkYXRlcykge1xuICAgIGZvciAoY29uc3QgX2RhdGUgb2YgZGF0ZXMpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KF9kYXRlKSkge1xuICAgICAgICBpZiAoaXNEYXRlSW5SYW5nZShkYXRlLCBfZGF0ZVswXSwgX2RhdGVbMV0pKSB7XG4gICAgICAgICAgZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoX2RhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIGlmIChpc1NhbWVEYXRlQXMoZGF0ZSwgX2RhdGUpKSB7XG4gICAgICAgICAgZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpc2FibGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRGF0ZUluUmFuZ2UgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiBzdGFydCAmJiBlbmQgJiYgc3RhcnQgPD0gZGF0ZSAmJiBkYXRlIDw9IGVuZDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1llYXJJblJhbmdlID0gKGRhdGU6IERhdGUgfCBudWxsLCBzdGFydDogRGF0ZSB8IG51bGwsIGVuZDogRGF0ZSB8IG51bGwpID0+IHtcbiAgcmV0dXJuIGRhdGUgJiYgc3RhcnQgJiYgZW5kICYmIHN0YXJ0LmdldEZ1bGxZZWFyKCkgPD0gZGF0ZS5nZXRGdWxsWWVhcigpICYmIGRhdGUuZ2V0RnVsbFllYXIoKSA8PSBlbmQuZ2V0RnVsbFllYXIoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVCZXR3ZWVuTWluTWF4ID0gKGRhdGU6IERhdGUgfCBudWxsLCBtaW46IERhdGUgfCBudWxsLCBtYXg6IERhdGUgfCBudWxsKSA9PiB7XG4gIGlmIChkYXRlICYmIG1pbiAmJiBtYXgpIHtcbiAgICByZXR1cm4gbWluIDw9IGRhdGUgJiYgZGF0ZSA8PSBtYXg7XG4gIH1cbiAgaWYgKGRhdGUgJiYgbWluKSB7XG4gICAgcmV0dXJuIG1pbiA8PSBkYXRlO1xuICB9XG4gIGlmIChkYXRlICYmIG1heCkge1xuICAgIHJldHVybiBkYXRlIDw9IG1heDtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVTZWxlY3RlZCA9IChkYXRlOiBEYXRlIHwgbnVsbCwgc3RhcnQ6IERhdGUgfCBudWxsLCBlbmQ6IERhdGUgfCBudWxsKSA9PiB7XG4gIHJldHVybiBkYXRlICYmICgoc3RhcnQgJiYgaXNTYW1lRGF0ZUFzKHN0YXJ0LCBkYXRlKSkgfHwgKGVuZCAmJiBpc1NhbWVEYXRlQXMoZW5kLCBkYXRlKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzTW9udGhTZWxlY3RlZCA9IChkYXRlOiBEYXRlIHwgbnVsbCwgc3RhcnQ6IERhdGUgfCBudWxsLCBlbmQ6IERhdGUgfCBudWxsKSA9PiB7XG4gIHJldHVybiBkYXRlICYmICgoc3RhcnQgJiYgaXNTYW1lTW9udGhBcyhzdGFydCwgZGF0ZSkpIHx8IChlbmQgJiYgaXNTYW1lTW9udGhBcyhlbmQsIGRhdGUpKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNZZWFyU2VsZWN0ZWQgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiAoKHN0YXJ0ICYmIGlzU2FtZVllYXJBcyhzdGFydCwgZGF0ZSkpIHx8IChlbmQgJiYgaXNTYW1lWWVhckFzKGVuZCwgZGF0ZSkpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0VuZERhdGUgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiBzdGFydCAmJiBlbmQgJiYgaXNTYW1lRGF0ZUFzKGVuZCwgZGF0ZSkgJiYgc3RhcnQgPCBlbmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNMYXN0RGF5T2ZNb250aCA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHRlc3QgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG4gIGNvbnN0IG1vbnRoID0gdGVzdC5nZXRNb250aCgpO1xuXG4gIHRlc3Quc2V0RGF0ZSh0ZXN0LmdldERhdGUoKSArIDEpO1xuICByZXR1cm4gdGVzdC5nZXRNb250aCgpICE9PSBtb250aDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NhbWVEYXRlQXMgPSAoZGF0ZTogRGF0ZSwgZGF0ZTI6IERhdGUpID0+IHtcbiAgcmV0dXJuIChkYXRlLmdldERhdGUoKSA9PSBkYXRlMi5nZXREYXRlKCkgJiYgZGF0ZS5nZXRNb250aCgpID09IGRhdGUyLmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IGRhdGUyLmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2FtZU1vbnRoQXMgPSAoZGF0ZTogRGF0ZSwgZGF0ZTI6IERhdGUpID0+IHtcbiAgcmV0dXJuIChkYXRlLmdldE1vbnRoKCkgPT0gZGF0ZTIuZ2V0TW9udGgoKSAmJiBkYXRlLmdldEZ1bGxZZWFyKCkgPT0gZGF0ZTIuZ2V0RnVsbFllYXIoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTYW1lWWVhckFzID0gKGRhdGU6IERhdGUsIGRhdGUyOiBEYXRlKSA9PiB7XG4gIHJldHVybiAoZGF0ZS5nZXRGdWxsWWVhcigpID09IGRhdGUyLmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU3RhcnREYXRlID0gKGRhdGU6IERhdGUgfCBudWxsLCBzdGFydDogRGF0ZSB8IG51bGwsIGVuZDogRGF0ZSB8IG51bGwpID0+IHtcbiAgcmV0dXJuIGRhdGUgJiYgc3RhcnQgJiYgZW5kICYmIGlzU2FtZURhdGVBcyhzdGFydCwgZGF0ZSkgJiYgc3RhcnQgPCBlbmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUb2RheSA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuIChkYXRlLmdldERhdGUoKSA9PSB0b2RheS5nZXREYXRlKCkgJiYgZGF0ZS5nZXRNb250aCgpID09IHRvZGF5LmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGhpc01vbnRoID0gKGRhdGU6IERhdGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICByZXR1cm4gKGluZGV4ID09IHRvZGF5LmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGhpc1llYXIgPSAoeWVhcjogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuICh5ZWFyID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWREYXRlID0gKGRhdGU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBib29sZWFuID0+IHtcblxuICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIGRhdGUgPT09ICdudW1iZXInIHx8IHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgIC8vIFRyeSB0byBjcmVhdGUgYSBEYXRlIG9iamVjdCBmcm9tIERhdGUgb3IgdGltZXN0YW1wIG9yIHN0cmluZ1xuICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlKTtcbiAgICByZXR1cm4gIWlzTmFOKGRhdGVPYmouZ2V0VGltZSgpKTtcbiAgfVxuXG4gIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIGNvbmRpdGlvbnMgYXJlIG1ldCwgaXQncyBub3QgYSB2YWxpZCBkYXRlXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cnlEYXRlID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlLCBwcm9wTmFtZTogc3RyaW5nID0gJ2RhdGUnKSA9PiB7XG4gIGxldCBfdmFsdWU7XG4gIHRyeSB7XG4gICAgaWYgKCFpc1ZhbGlkRGF0ZSh2YWx1ZSkpIHtcbiAgICAgIHRocm93IHZhbHVlO1xuICAgIH1cbiAgICBfdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUud2FybihgSW52YWxpZCAke3Byb3BOYW1lfWAsIGVycik7XG4gICAgX3ZhbHVlID0gbmV3IERhdGUoKTtcbiAgICBfdmFsdWUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIH1cbiAgcmV0dXJuIF92YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVJblJhbmdlRGlzYWJsZWQgPSAoc3RhcnREYXRlPzogRGF0ZSB8IG51bGwsIGVuZERhdGU/OiBEYXRlIHwgbnVsbCwgZGF0ZXM/OiAoRGF0ZSB8IERhdGVbXSlbXSkgPT4ge1xuICBpZiAoIWRhdGVzIHx8ICFkYXRlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHN0YXJ0RGF0ZSAmJiBlbmREYXRlKSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XG4gICAgbGV0IGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoZGF0ZSA8IGVuZERhdGUpIHtcbiAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpO1xuICAgICAgaWYgKGlzRGF0ZURpc2FibGVkKGRhdGUsIG51bGwsIG51bGwsIGRhdGVzKSkge1xuICAgICAgICBkaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGlzYWJsZWQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLy8gZXhwb3J0IGNvbnN0IHN0cmluZ1RvRGF0ZUNvbnZlcnQgPSAoZGF0ZTogc3RyaW5nLCBsb2NhbGVzOiBzdHJpbmcpID0+IHtcbi8vICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2ZyLUZSJyk7XG4vLyAgIGNvbnN0IHBhcnRzID0gZm9ybWF0dGVyLmZvcm1hdFRvUGFydHMoKTtcbi8vICAgY29uc29sZS5sb2coZGF0ZSwgcGFydHMsIGZvcm1hdHRlci5mb3JtYXQoKSwgZm9ybWF0dGVyLnJlc29sdmVkT3B0aW9ucygpLCBmb3JtYXR0ZXIuZm9ybWF0KCkpO1xuLy8gfTtcblxuLy8gZGVjbGFyZSBuYW1lc3BhY2UgSW50bCB7XG4vLyAgIHR5cGUgRGF0ZVRpbWVGb3JtYXRQYXJ0VHlwZXMgPSBcImRheVwiIHwgXCJkYXlQZXJpb2RcIiB8IFwiZXJhXCIgfCBcImZyYWN0aW9uYWxTZWNvbmRcIiB8IFwiaG91clwiIHwgXCJsaXRlcmFsXCIgfCBcIm1pbnV0ZVwiIHwgXCJtb250aFwiIHwgXCJzZWNvbmRcIiB8IFwidGltZVpvbmVOYW1lXCIgfCBcIndlZWtkYXlcIiB8IFwieWVhclwiO1xuLy9cbi8vICAgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0UGFydCB7XG4vLyAgICAgdHlwZTogRGF0ZVRpbWVGb3JtYXRQYXJ0VHlwZXM7XG4vLyAgICAgdmFsdWU6IHN0cmluZztcbi8vICAgfVxuLy9cbi8vICAgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0IHtcbi8vICAgICBmb3JtYXRUb1BhcnRzKGRhdGU/OiBEYXRlIHwgbnVtYmVyKTogRGF0ZVRpbWVGb3JtYXRQYXJ0W107XG4vLyAgIH1cbi8vIH1cblxudHlwZSBEYXRlVGltZUZvcm1hdFBhcnRUeXBlcyA9XG4gICdkYXknXG4gIHwgJ2RheVBlcmlvZCdcbiAgfCAnZXJhJ1xuICB8ICdmcmFjdGlvbmFsU2Vjb25kJ1xuICB8ICdob3VyJ1xuICB8ICdsaXRlcmFsJ1xuICB8ICdtaW51dGUnXG4gIHwgJ21vbnRoJ1xuICB8ICdzZWNvbmQnXG4gIHwgJ3RpbWVab25lTmFtZSdcbiAgfCAnd2Vla2RheSdcbiAgfCAneWVhcic7XG50eXBlIERhdGVGb3JtYXRQYXJ0VHlwZXMgPSAnZGF5JyB8ICdtb250aCcgfCAneWVhcicgfCAnbGl0ZXJhbCc7XG5cbi8vIHR5cGUgRGF0ZVBhcnRzID0ge1xuLy8gICBba2V5IGluIERhdGVUaW1lRm9ybWF0UGFydFR5cGVzXT86IHN0cmluZztcbi8vIH07XG5cbi8vIHR5cGUgRGF0ZVBhcnRzID0ge1xuLy8gICB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyLCBsaXRlcmFsOiBzdHJpbmdcbi8vIH07XG4vL1xuLy8gZXhwb3J0IGNvbnN0IGN2dERhdGUgPSAoZGF0ZUFzU3RyaW5nOiBzdHJpbmcsIGxvY2FsZSA9ICdwbC1QTCcpID0+IHtcbi8vICAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGVBc1N0cmluZyA/PyBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpO1xuLy8gICBjb25zdCBkYXRlU3BsaXQgPSBkYXRlU3RyaW5nLnNwbGl0KC9bLlxcLVxcL1xcc1xcRF0vZ2kpLmZpbHRlcihpdGVtID0+ICEhaXRlbS5sZW5ndGgpO1xuLy8gICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUpO1xuLy8gICBjb25zdCBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKCkuZmlsdGVyKHBhcnQgPT4gWyd5ZWFyJywgJ21vbnRoJywgJ2RheSddLmluY2x1ZGVzKHBhcnQudHlwZSkpO1xuLy8gICBjb25zdCBkYXRlU2hpbSA9IHtcbi8vICAgICBkYXk6IHVuZGVmaW5lZCwgbW9udGg6IHVuZGVmaW5lZCwgeWVhcjogdW5kZWZpbmVkXG4vLyAgIH07XG4vLyAgIHBhcnRzLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4vLyAgICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0geyAuLi5wYXJ0IH07XG4vLyAgICAgLy8gQHRzLWlnbm9yZVxuLy8gICAgIGRhdGVTaGltW3R5cGVdID0gZGF0ZVNwbGl0W2luZGV4XTtcbi8vICAgfSk7XG4vL1xuLy8gICByZXR1cm4gZGF0ZVNoaW07XG4vL1xuLy8gICAvLyBjb25zdCBkYXRlUGFydHM6IERhdGVQYXJ0cyA9IHtcbi8vICAgLy8gICB5ZWFyOiAwLFxuLy8gICAvLyAgIG1vbnRoOiAwLFxuLy8gICAvLyAgIGRheTogMCxcbi8vICAgLy8gICBsaXRlcmFsOiAnLydcbi8vICAgLy8gfTtcbi8vICAgLy9cbi8vICAgLy8gY29uc3QgbGl0ZXJhbCA9IHBhcnRzLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICdsaXRlcmFsJyk/LnZhbHVlID8/ICcvJztcbi8vICAgLy8gLy8gY29uc3QgeWVhciA9IHBhcnNlSW50KHBhcnRzLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICd5ZWFyJyk/LnZhbHVlID8/ICcwJyk7XG4vLyAgIC8vIC8vIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQocGFydHMuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ3llYXInKT8udmFsdWUgPz8gJzAnKTtcbi8vICAgLy8gLy8gY29uc3QgZGF5ID0gcGFyc2VJbnQocGFydHMuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ3llYXInKT8udmFsdWUgPz8gJzAnKTtcbi8vICAgLy9cbi8vICAgLy8gY29uc3QgZGF0ZUFycmF5ID0gZGF0ZVN0cmluZy5zcGxpdChsaXRlcmFsKTtcbi8vICAgLy9cbi8vICAgLy8gcGFydHMuZm9yRWFjaChwYXJ0ID0+IHtcbi8vICAgLy8gICBjb25zdCB7dHlwZSwgdmFsdWV9ID0gey4uLnBhcnR9O1xuLy8gICAvLyAgIGlmICh0eXBlID09PSAnZGF5Jykge1xuLy8gICAvL1xuLy8gICAvLyAgIH1cbi8vICAgLy8gfSlcbi8vICAgLy9cbi8vICAgLy8gcGFydHMuZmlsdGVyKHBhcnQgPT4gcGFydC50eXBlIGluIGRhdGVQYXJ0cykubWFwKHBhcnQgPT4ge1xuLy8gICAvLyAgIGNvbnN0IHt0eXBlLCB2YWx1ZX0gPSB7Li4ucGFydH07XG4vLyAgIC8vICAgLy8gQHRzLWlnbm9yZVxuLy8gICAvLyAgIGRhdGVQYXJ0c1t0eXBlXSA9IHBhcnNlSW50KHBhcnQudmFsdWUpO1xuLy8gICAvLyAgIC8vXG4vLyAgIC8vICAgLy8gc3dpdGNoICh0eXBlKSB7XG4vLyAgIC8vICAgLy8gICBjYXNlICdkYXknOlxuLy8gICAvLyAgIC8vICAgICBkYXkgPSBwYXJzZUludCh2YWx1ZSk7XG4vLyAgIC8vICAgLy8gICAgIGJyZWFrO1xuLy8gICAvLyAgIC8vICAgY2FzZSAnbW9udGgnOlxuLy8gICAvLyAgIC8vICAgICBtb250aCA9IHBhcnNlSW50KHZhbHVlKTtcbi8vICAgLy8gICAvLyAgICAgYnJlYWs7XG4vLyAgIC8vICAgLy8gICBjYXNlICd5ZWFyJzpcbi8vICAgLy8gICAvLyAgICAgeWVhciA9IHBhcnNlSW50KHZhbHVlKTtcbi8vICAgLy8gICAvLyAgICAgYnJlYWs7XG4vLyAgIC8vICAgLy8gfVxuLy8gICAvLyB9KVxuLy8gICAvLyAvLyBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IHsuLi5kYXRlUGFydHN9XG4vLyAgIC8vIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XG4vLyB9O1xuLy9cbi8vIC8vIGZ1bmN0aW9uIGdldERhdGVYKGRhdGVBc1N0cmluZykge1xuLy8gLy8gICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlQXNTdHJpbmcuc3BsaXQoJy8nKTtcbi8vIC8vICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbi8vIC8vIH1cbi8vXG4vLyAvLyBnZXREYXRlKCcxMi8wNy8xOTk3Jyk7XG4iXX0=
@@ -8,10 +8,10 @@ export class CalloutComponent {
8
8
  };
9
9
  }
10
10
  constructor() { }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CalloutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CalloutComponent, isStandalone: true, selector: "c-callout, [cCallout]", inputs: { color: "color" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"] }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalloutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CalloutComponent, isStandalone: true, selector: "c-callout, [cCallout]", inputs: { color: "color" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"] }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CalloutComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalloutComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{ selector: 'c-callout, [cCallout]', template: `<ng-content></ng-content>`, standalone: true, styles: [":host{display:block}\n"] }]
17
17
  }], ctorParameters: () => [], propDecorators: { color: [{
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import { CalloutComponent } from './callout.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class CalloutModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CalloutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: CalloutModule, imports: [CalloutComponent], exports: [CalloutComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CalloutModule }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalloutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: CalloutModule, imports: [CalloutComponent], exports: [CalloutComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalloutModule }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CalloutModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalloutModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  exports: [CalloutComponent],
@@ -6,10 +6,10 @@ export class CardBodyComponent {
6
6
  'card-body': true,
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CardBodyComponent, isStandalone: true, selector: "c-card-body, [c-card-body]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CardBodyComponent, isStandalone: true, selector: "c-card-body, [c-card-body]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardBodyComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardBodyComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{
15
15
  selector: 'c-card-body, [c-card-body]',
@@ -6,10 +6,10 @@ export class CardFooterComponent {
6
6
  'card-footer': true
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CardFooterComponent, isStandalone: true, selector: "c-card-footer, [c-card-footer]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CardFooterComponent, isStandalone: true, selector: "c-card-footer, [c-card-footer]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardFooterComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardFooterComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{
15
15
  selector: 'c-card-footer, [c-card-footer]',
@@ -6,10 +6,10 @@ export class CardGroupComponent {
6
6
  'card-group': true
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CardGroupComponent, isStandalone: true, selector: "c-card-group, [c-card-group]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CardGroupComponent, isStandalone: true, selector: "c-card-group, [c-card-group]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardGroupComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardGroupComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{
15
15
  selector: 'c-card-group, [c-card-group]',
@@ -4,10 +4,10 @@ export class CardHeaderActionsComponent {
4
4
  constructor() {
5
5
  this.cardHeaderActions = true;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardHeaderActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CardHeaderActionsComponent, isStandalone: true, selector: "c-card-header-actions, [c-card-header-actions]", host: { properties: { "class.card-header-actions": "this.cardHeaderActions" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardHeaderActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CardHeaderActionsComponent, isStandalone: true, selector: "c-card-header-actions, [c-card-header-actions]", host: { properties: { "class.card-header-actions": "this.cardHeaderActions" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardHeaderActionsComponent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardHeaderActionsComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{
13
13
  selector: 'c-card-header-actions, [c-card-header-actions]',
@@ -6,10 +6,10 @@ export class CardHeaderComponent {
6
6
  'card-header': true
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CardHeaderComponent, isStandalone: true, selector: "c-card-header, [c-card-header]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CardHeaderComponent, isStandalone: true, selector: "c-card-header, [c-card-header]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardHeaderComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardHeaderComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{
15
15
  selector: 'c-card-header, [c-card-header]',
@@ -6,10 +6,10 @@ export class CardImgOverlayComponent {
6
6
  'card-img-overlay': true
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardImgOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CardImgOverlayComponent, isStandalone: true, selector: "c-card-img-overlay", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"] }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardImgOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CardImgOverlayComponent, isStandalone: true, selector: "c-card-img-overlay", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardImgOverlayComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardImgOverlayComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'c-card-img-overlay', template: `<ng-content></ng-content>`, standalone: true, styles: [":host{display:block}\n"] }]
15
15
  }], propDecorators: { hostClasses: [{
@@ -7,10 +7,10 @@ export class CardImgDirective {
7
7
  [`card-img${suffix}`]: true
8
8
  };
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardImgDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CardImgDirective, isStandalone: true, selector: "[cCardImg]", inputs: { orientation: ["cCardImg", "orientation"] }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardImgDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: CardImgDirective, isStandalone: true, selector: "[cCardImg]", inputs: { orientation: ["cCardImg", "orientation"] }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardImgDirective, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardImgDirective, decorators: [{
14
14
  type: Directive,
15
15
  args: [{
16
16
  selector: '[cCardImg]',
@@ -6,10 +6,10 @@ export class CardLinkDirective {
6
6
  'card-link': true
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CardLinkDirective, isStandalone: true, selector: "[cCardLink]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: CardLinkDirective, isStandalone: true, selector: "[cCardLink]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardLinkDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardLinkDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[cCardLink]',
@@ -6,10 +6,10 @@ export class CardSubtitleDirective {
6
6
  'card-subtitle': true
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardSubtitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CardSubtitleDirective, isStandalone: true, selector: "[cCardSubtitle]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardSubtitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: CardSubtitleDirective, isStandalone: true, selector: "[cCardSubtitle]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardSubtitleDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardSubtitleDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[cCardSubtitle]',
@@ -6,10 +6,10 @@ export class CardTextDirective {
6
6
  'card-text': true
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CardTextDirective, isStandalone: true, selector: "[cCardText]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: CardTextDirective, isStandalone: true, selector: "[cCardText]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardTextDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardTextDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[cCardText]',
@@ -6,10 +6,10 @@ export class CardTitleDirective {
6
6
  'card-title': true
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: CardTitleDirective, isStandalone: true, selector: "[cCardTitle]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: CardTitleDirective, isStandalone: true, selector: "[cCardTitle]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardTitleDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardTitleDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[cCardTitle]',
@@ -10,10 +10,10 @@ export class CardComponent {
10
10
  };
11
11
  }
12
12
  constructor() { }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CardComponent, isStandalone: true, selector: "c-card, [c-card]", inputs: { color: "color", textColor: "textColor" }, host: { properties: { "class": "this.hostClasses" } }, hostDirectives: [{ directive: i1.TextColorDirective, inputs: ["cTextColor", "textColor"] }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CardComponent, isStandalone: true, selector: "c-card, [c-card]", inputs: { color: "color", textColor: "textColor" }, host: { properties: { "class": "this.hostClasses" } }, hostDirectives: [{ directive: i1.TextColorDirective, inputs: ["cTextColor", "textColor"] }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{
19
19
  selector: 'c-card, [c-card]',
@@ -13,8 +13,8 @@ import { CardTitleDirective } from './card-title.directive';
13
13
  import { CardImgOverlayComponent } from './card-img-overlay/card-img-overlay.component';
14
14
  import * as i0 from "@angular/core";
15
15
  export class CardModule {
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: CardModule, imports: [CardComponent,
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: CardModule, imports: [CardComponent,
18
18
  CardBodyComponent,
19
19
  CardFooterComponent,
20
20
  CardGroupComponent,
@@ -37,9 +37,9 @@ export class CardModule {
37
37
  CardSubtitleDirective,
38
38
  CardTextDirective,
39
39
  CardTitleDirective] }); }
40
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardModule }); }
40
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardModule }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CardModule, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CardModule, decorators: [{
43
43
  type: NgModule,
44
44
  args: [{
45
45
  imports: [
@@ -177,10 +177,10 @@ export class CarouselComponent {
177
177
  this.swipeSubscription?.unsubscribe();
178
178
  }
179
179
  }
180
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CarouselComponent, deps: [{ token: CarouselConfig }, { token: i0.ElementRef }, { token: i1.CarouselService }, { token: i2.CarouselState }, { token: i3.IntersectionService }, { token: i3.ListenersService }], target: i0.ɵɵFactoryTarget.Component }); }
181
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CarouselComponent, isStandalone: true, selector: "c-carousel", inputs: { activeIndex: "activeIndex", animate: "animate", direction: "direction", interval: "interval", pause: "pause", touch: "touch", transition: "transition", wrap: "wrap" }, outputs: { itemChange: "itemChange" }, host: { properties: { "class": "this.hostClasses" } }, providers: [CarouselService, CarouselState, CarouselConfig, ListenersService], hostDirectives: [{ directive: i4.ThemeDirective, inputs: ["dark", "dark"] }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block}\n"] }); }
180
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CarouselComponent, deps: [{ token: CarouselConfig }, { token: i0.ElementRef }, { token: i1.CarouselService }, { token: i2.CarouselState }, { token: i3.IntersectionService }, { token: i3.ListenersService }], target: i0.ɵɵFactoryTarget.Component }); }
181
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CarouselComponent, isStandalone: true, selector: "c-carousel", inputs: { activeIndex: "activeIndex", animate: "animate", direction: "direction", interval: "interval", pause: "pause", touch: "touch", transition: "transition", wrap: "wrap" }, outputs: { itemChange: "itemChange" }, host: { properties: { "class": "this.hostClasses" } }, providers: [CarouselService, CarouselState, CarouselConfig, ListenersService], hostDirectives: [{ directive: i4.ThemeDirective, inputs: ["dark", "dark"] }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block}\n"] }); }
182
182
  }
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CarouselComponent, decorators: [{
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CarouselComponent, decorators: [{
184
184
  type: Component,
185
185
  args: [{ selector: 'c-carousel', template: '<ng-content></ng-content>', providers: [CarouselService, CarouselState, CarouselConfig, ListenersService], standalone: true, hostDirectives: [
186
186
  { directive: ThemeDirective, inputs: ['dark'] }
@@ -210,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
210
210
  type: HostBinding,
211
211
  args: ['class']
212
212
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBRVYsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNFLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFZcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUNrQyxNQUFzQixFQUM5QyxXQUF1QixFQUN2QixlQUFnQyxFQUNoQyxhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBTFYsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDOUMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUs1Qzs7O1dBR0c7UUFDTSxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUNqQzs7O1dBR0c7UUFDTSxZQUFPLEdBQVksSUFBSSxDQUFDO1FBQ2pDOzs7V0FHRztRQUNNLGNBQVMsR0FBb0IsTUFBTSxDQUFDO1FBQzdDOzs7O1dBSUc7UUFDTSxhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQzlCOzs7V0FHRztRQUNNLFVBQUssR0FBa0MsT0FBTyxDQUFDO1FBQ3hEOzs7O1dBSUc7UUFDTSxVQUFLLEdBQVksSUFBSSxDQUFDO1FBQy9COzs7O1dBSUc7UUFDTSxlQUFVLEdBQTBCLE9BQU8sQ0FBQztRQUNyRDs7OztXQUlHO1FBQ00sU0FBSSxHQUFZLElBQUksQ0FBQztRQUM5Qjs7O1dBR0c7UUFDTyxlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFZaEUsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBNkNsQyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBOUcvQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBb0RELElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxJQUFJO1lBQ1gsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVztTQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUtRLFdBQVcsQ0FBc0I7SUFFMUMsUUFBUTtRQUNOLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxNQUFNLEdBQXFCO1lBQy9CLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3pCLFdBQVcsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixDQUFDO1lBQ0QsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsQ0FBQztTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUlELFFBQVE7UUFDTixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLElBQUksQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQzVELENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBQzNCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjO2FBQ2hDLElBQUksQ0FDSCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxRQUFRLElBQUksUUFBUSxFQUFFO2dCQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdkM7WUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlILE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDekosQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sNEJBQTRCO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWE7YUFDbkMsSUFBSSxDQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUNyRCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLEVBQ0Ysa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUNyQzthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sY0FBYyxDQUFDLFlBQXFCLElBQUk7UUFDOUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsRUFBRTtZQUMzQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUN2RCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQWEsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBYSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDckUsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFhLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FDdkMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDbkQsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUNyQztpQkFDRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pELFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDN0IsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUM1QixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDL0UsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxlQUFlLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRTtvQkFDMUcsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDaEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLENBQUM7aUJBQzNEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQzs4R0E5TFUsaUJBQWlCLGtCQUVsQixjQUFjO2tHQUZiLGlCQUFpQix5VUFOakIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyx3R0FGbkUsMkJBQTJCOzsyRkFRMUIsaUJBQWlCO2tCQVY3QixTQUFTOytCQUNFLFlBQVksWUFDWiwyQkFBMkIsYUFFMUIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxjQUNqRSxJQUFJLGtCQUNBO3dCQUNkLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRTtxQkFDaEQ7OzBCQUlFLE1BQU07MkJBQUMsY0FBYzs2TEFjZixXQUFXO3NCQUFuQixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFLSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaW5hbGl6ZSwgd2l0aExhdGVzdEZyb20sIHppcFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEludGVyc2VjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJTGlzdGVuZXJzQ29uZmlnLCBMaXN0ZW5lcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5pbXBvcnQgeyBUcmlnZ2VycyB9IGZyb20gJy4uLy4uL2NvcmV1aS50eXBlcyc7XG5pbXBvcnQgeyBUaGVtZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC90aGVtZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxTdGF0ZSB9IGZyb20gJy4uL2Nhcm91c2VsLXN0YXRlJztcbmltcG9ydCB7IENhcm91c2VsU2VydmljZSB9IGZyb20gJy4uL2Nhcm91c2VsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxDb25maWcgfSBmcm9tICcuLi9jYXJvdXNlbC5jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNhcm91c2VsJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ2Fyb3VzZWxTZXJ2aWNlLCBDYXJvdXNlbFN0YXRlLCBDYXJvdXNlbENvbmZpZywgTGlzdGVuZXJzU2VydmljZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgeyBkaXJlY3RpdmU6IFRoZW1lRGlyZWN0aXZlLCBpbnB1dHM6IFsnZGFyayddIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDYXJvdXNlbENvbmZpZykgcHJpdmF0ZSBjb25maWc6IENhcm91c2VsQ29uZmlnLFxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjYXJvdXNlbFNlcnZpY2U6IENhcm91c2VsU2VydmljZSxcbiAgICBwcml2YXRlIGNhcm91c2VsU3RhdGU6IENhcm91c2VsU3RhdGUsXG4gICAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25TZXJ2aWNlOiBJbnRlcnNlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbGlzdGVuZXJzU2VydmljZTogTGlzdGVuZXJzU2VydmljZVxuICApIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5kZXggb2YgdGhlIGFjdGl2ZSBpdGVtLlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpIGFjdGl2ZUluZGV4OiBudW1iZXIgPSAwO1xuICAvKipcbiAgICogQ2Fyb3VzZWwgYXV0b21hdGljYWxseSBzdGFydHMgY3ljbGUgaXRlbXMuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGFuaW1hdGU6IGJvb2xlYW4gPSB0cnVlO1xuICAvKipcbiAgICogQ2Fyb3VzZWwgZGlyZWN0aW9uLiBbZG9jc11cbiAgICogQHR5cGUgeyduZXh0JyB8ICdwcmV2J31cbiAgICovXG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogJ25leHQnIHwgJ3ByZXYnID0gJ25leHQnO1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIHRvIGRlbGF5IGJldHdlZW4gYXV0b21hdGljYWxseSBjeWNsaW5nIGFuIGl0ZW0uIElmIGZhbHNlLCBjYXJvdXNlbCB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IGN5Y2xlLlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgQElucHV0KCkgaW50ZXJ2YWw6IG51bWJlciA9IDA7XG4gIC8qKlxuICAgKiBTZXRzIHdoaWNoIGV2ZW50IGhhbmRsZXJzIHlvdeKAmWQgbGlrZSBwcm92aWRlZCB0byB5b3VyIHBhdXNlIHByb3AuIFlvdSBjYW4gc3BlY2lmeSBvbmUgdHJpZ2dlciBvciBhbiBhcnJheSBvZiB0aGVtLlxuICAgKiBAdHlwZSB7J2hvdmVyJyB8ICdmb2N1cycgfCAnY2xpY2snfVxuICAgKi9cbiAgQElucHV0KCkgcGF1c2U6IFRyaWdnZXJzIHwgVHJpZ2dlcnNbXSB8IGZhbHNlID0gJ2hvdmVyJztcbiAgLyoqXG4gICAqIFN1cHBvcnQgbGVmdC9yaWdodCBzd2lwZSBpbnRlcmFjdGlvbnMgb24gdG91Y2hzY3JlZW4gZGV2aWNlcy5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKSB0b3VjaDogYm9vbGVhbiA9IHRydWU7XG4gIC8qKlxuICAgKiBTZXQgdHlwZSBvZiB0aGUgdHJhbnNpdGlvbi5cbiAgICogQHR5cGUgeydzbGlkZScgfCAnY3Jvc3NmYWRlJ31cbiAgICogQGRlZmF1bHQgJ3NsaWRlJ1xuICAgKi9cbiAgQElucHV0KCkgdHJhbnNpdGlvbjogJ3NsaWRlJyB8ICdjcm9zc2ZhZGUnID0gJ3NsaWRlJztcbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIHRoZSBjYXJvdXNlbCBzaG91bGQgY3ljbGUgY29udGludW91c2x5IG9yIGhhdmUgaGFyZCBzdG9wcy5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKSB3cmFwOiBib29sZWFuID0gdHJ1ZTtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gY2Fyb3VzZWwgaXRlbSBjaGFuZ2UuIFtkb2NzXVxuICAgKiBAdHlwZSBudW1iZXJcbiAgICovXG4gIEBPdXRwdXQoKSBpdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2Fyb3VzZWw6IHRydWUsXG4gICAgICBzbGlkZTogdHJ1ZSxcbiAgICAgICdjYXJvdXNlbC1mYWRlJzogdGhpcy50cmFuc2l0aW9uID09PSAnY3Jvc3NmYWRlJ1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRpbWVySWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGFjdGl2ZUl0ZW1JbnRlcnZhbCA9IDA7XG4gIHByaXZhdGUgc3dpcGVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldFRpbWVyKCk7XG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICAgIHRoaXMuc3dpcGVTdWJzY3JpYmUoZmFsc2UpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZVN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZS5zdGF0ZSA9IHsgYWN0aXZlSXRlbUluZGV4OiB0aGlzLmFjdGl2ZUluZGV4LCBhbmltYXRlOiB0aGlzLmFuaW1hdGUgfTtcbiAgICB0aGlzLnNldExpc3RlbmVycygpO1xuICAgIHRoaXMuc3dpcGVTdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZzogSUxpc3RlbmVyc0NvbmZpZyA9IHtcbiAgICAgIGhvc3RFbGVtZW50OiB0aGlzLmhvc3RFbGVtZW50LFxuICAgICAgdHJpZ2dlcjogdGhpcy5wYXVzZSB8fCBbXSxcbiAgICAgIGNhbGxiYWNrT2ZmOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VGltZXIoKTtcbiAgICAgIH0sXG4gICAgICBjYWxsYmFja09uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVzZXRUaW1lcigpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLnNldExpc3RlbmVycyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVyc1NlcnZpY2UuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHNldCB2aXNpYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICBzZXRUaW1lcigpOiB2b2lkIHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IHRoaXMuYWN0aXZlSXRlbUludGVydmFsIHx8IDA7XG4gICAgdGhpcy5yZXNldFRpbWVyKCk7XG4gICAgaWYgKGludGVydmFsID4gMCkge1xuICAgICAgdGhpcy50aW1lcklkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRoaXMuY2Fyb3VzZWxTdGF0ZS5kaXJlY3Rpb24odGhpcy5kaXJlY3Rpb24pO1xuICAgICAgICB0aGlzLmNhcm91c2VsU3RhdGUuc3RhdGUgPSB7IGFjdGl2ZUl0ZW1JbmRleDogbmV4dEluZGV4IH07XG4gICAgICB9LCBpbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRUaW1lcigpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcklkKTtcbiAgICB0aGlzLnRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGNhcm91c2VsU3RhdGVTdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5jYXJvdXNlbFNlcnZpY2UuY2Fyb3VzZWxJbmRleCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKG5leHRJdGVtKSA9PiB7XG4gICAgICAgIGlmICgnYWN0aXZlJyBpbiBuZXh0SXRlbSkge1xuICAgICAgICAgIHRoaXMuaXRlbUNoYW5nZS5lbWl0KG5leHRJdGVtLmFjdGl2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtSW50ZXJ2YWwgPSB0eXBlb2YgbmV4dEl0ZW0uaW50ZXJ2YWwgPT09ICdudW1iZXInICYmIG5leHRJdGVtLmludGVydmFsID4gLTEgPyBuZXh0SXRlbS5pbnRlcnZhbCA6IHRoaXMuaW50ZXJ2YWw7XG4gICAgICAgIGNvbnN0IGlzTGFzdEl0ZW0gPSAoKG5leHRJdGVtLmFjdGl2ZSA9PT0gbmV4dEl0ZW0ubGFzdEl0ZW1JbmRleCkgJiYgdGhpcy5kaXJlY3Rpb24gPT09ICduZXh0JykgfHwgKChuZXh0SXRlbS5hY3RpdmUgPT09IDApICYmIHRoaXMuZGlyZWN0aW9uID09PSAncHJldicpO1xuICAgICAgICAhdGhpcy53cmFwICYmIGlzTGFzdEl0ZW0gPyB0aGlzLnJlc2V0VGltZXIoKSA6IHRoaXMuc2V0VGltZXIoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25TZXJ2aWNlU3Vic2NyaWJlKCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZS5jcmVhdGVJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLmhvc3RFbGVtZW50KTtcbiAgICB0aGlzLmludGVyc2VjdGlvblNlcnZpY2UuaW50ZXJzZWN0aW5nJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihuZXh0ID0+IG5leHQuaG9zdEVsZW1lbnQgPT09IHRoaXMuaG9zdEVsZW1lbnQpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbnRlcnNlY3Rpb25TZXJ2aWNlLnVub2JzZXJ2ZSh0aGlzLmhvc3RFbGVtZW50KTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShuZXh0ID0+IHtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gbmV4dC5pc0ludGVyc2VjdGluZztcbiAgICAgICAgbmV4dC5pc0ludGVyc2VjdGluZyA/IHRoaXMuc2V0VGltZXIoKSA6IHRoaXMucmVzZXRUaW1lcigpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN3aXBlU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b3VjaCAmJiBzdWJzY3JpYmUpIHtcbiAgICAgIGNvbnN0IGNhcm91c2VsRWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IHRvdWNoU3RhcnQkID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGNhcm91c2VsRWxlbWVudCwgJ3RvdWNoc3RhcnQnKTtcbiAgICAgIGNvbnN0IHRvdWNoRW5kJCA9IGZyb21FdmVudDxUb3VjaEV2ZW50PihjYXJvdXNlbEVsZW1lbnQsICd0b3VjaGVuZCcpO1xuICAgICAgY29uc3QgdG91Y2hNb3ZlJCA9IGZyb21FdmVudDxUb3VjaEV2ZW50PihjYXJvdXNlbEVsZW1lbnQsICd0b3VjaG1vdmUnKTtcbiAgICAgIHRoaXMuc3dpcGVTdWJzY3JpcHRpb24gPSB0b3VjaFN0YXJ0JC5waXBlKFxuICAgICAgICB6aXBXaXRoKHRvdWNoRW5kJC5waXBlKHdpdGhMYXRlc3RGcm9tKHRvdWNoTW92ZSQpKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChbdG91Y2hzdGFydCwgW3RvdWNoZW5kLCB0b3VjaG1vdmVdXSkgPT4ge1xuICAgICAgICAgIHRvdWNoc3RhcnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdG91Y2htb3ZlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlWCA9IHRvdWNoc3RhcnQudG91Y2hlc1swXS5jbGllbnRYIC0gdG91Y2htb3ZlLnRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICAgICAgICBpZiAoTWF0aC5hYnMoZGlzdGFuY2VYKSA+IDAuMyAqIGNhcm91c2VsRWxlbWVudC5jbGllbnRXaWR0aCAmJiB0b3VjaHN0YXJ0LnRpbWVTdGFtcCA8PSB0b3VjaG1vdmUudGltZVN0YW1wKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSB0aGlzLmNhcm91c2VsU3RhdGUuZGlyZWN0aW9uKGRpc3RhbmNlWCA+IDAgPyAnbmV4dCcgOiAncHJldicpO1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbFN0YXRlLnN0YXRlID0geyBhY3RpdmVJdGVtSW5kZXg6IG5leHRJbmRleCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3dpcGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBRVYsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNFLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFZcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUNrQyxNQUFzQixFQUM5QyxXQUF1QixFQUN2QixlQUFnQyxFQUNoQyxhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBTFYsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDOUMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdC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a0JBRWxCLGNBQWM7a0dBRmIsaUJBQWlCLHlVQU5qQixDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLHdHQUZuRSwyQkFBMkI7OzJGQVExQixpQkFBaUI7a0JBVjdCLFNBQVM7K0JBQ0UsWUFBWSxZQUNaLDJCQUEyQixhQUUxQixDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLGNBQ2pFLElBQUksa0JBQ0E7d0JBQ2QsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFO3FCQUNoRDs7MEJBSUUsTUFBTTsyQkFBQyxjQUFjOzZMQWNmLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQUtJLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0gsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCB3aXRoTGF0ZXN0RnJvbSwgemlwV2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSW50ZXJzZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IElMaXN0ZW5lcnNDb25maWcsIExpc3RlbmVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbmltcG9ydCB7IFRyaWdnZXJzIH0gZnJvbSAnLi4vLi4vY29yZXVpLnR5cGVzJztcbmltcG9ydCB7IFRoZW1lRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3RoZW1lLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDYXJvdXNlbFN0YXRlIH0gZnJvbSAnLi4vY2Fyb3VzZWwtc3RhdGUnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2Fyb3VzZWwuc2VydmljZSc7XG5pbXBvcnQgeyBDYXJvdXNlbENvbmZpZyB9IGZyb20gJy4uL2Nhcm91c2VsLmNvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtY2Fyb3VzZWwnLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDYXJvdXNlbFNlcnZpY2UsIENhcm91c2VsU3RhdGUsIENhcm91c2VsQ29uZmlnLCBMaXN0ZW5lcnNTZXJ2aWNlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7IGRpcmVjdGl2ZTogVGhlbWVEaXJlY3RpdmUsIGlucHV0czogWydkYXJrJ10gfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENhcm91c2VsQ29uZmlnKSBwcml2YXRlIGNvbmZpZzogQ2Fyb3VzZWxDb25maWcsXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNhcm91c2VsU2VydmljZTogQ2Fyb3VzZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Fyb3VzZWxTdGF0ZTogQ2Fyb3VzZWxTdGF0ZSxcbiAgICBwcml2YXRlIGludGVyc2VjdGlvblNlcnZpY2U6IEludGVyc2VjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaXN0ZW5lcnNTZXJ2aWNlOiBMaXN0ZW5lcnNTZXJ2aWNlXG4gICkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRleCBvZiB0aGUgYWN0aXZlIGl0ZW0uXG4gICAqIEB0eXBlIG51bWJlclxuICAgKi9cbiAgQElucHV0KCkgYWN0aXZlSW5kZXg6IG51bWJlciA9IDA7XG4gIC8qKlxuICAgKiBDYXJvdXNlbCBhdXRvbWF0aWNhbGx5IHN0YXJ0cyBjeWNsZSBpdGVtcy5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgQElucHV0KCkgYW5pbWF0ZTogYm9vbGVhbiA9IHRydWU7XG4gIC8qKlxuICAgKiBDYXJvdXNlbCBkaXJlY3Rpb24uIFtkb2NzXVxuICAgKiBAdHlwZSB7J25leHQnIHwgJ3ByZXYnfVxuICAgKi9cbiAgQElucHV0KCkgZGlyZWN0aW9uOiAnbmV4dCcgfCAncHJldicgPSAnbmV4dCc7XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIHRpbWUgdG8gZGVsYXkgYmV0d2VlbiBhdXRvbWF0aWNhbGx5IGN5Y2xpbmcgYW4gaXRlbS4gSWYgZmFsc2UsIGNhcm91c2VsIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgY3ljbGUuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBASW5wdXQoKSBpbnRlcnZhbDogbnVtYmVyID0gMDtcbiAgLyoqXG4gICAqIFNldHMgd2hpY2ggZXZlbnQgaGFuZGxlcnMgeW914oCZZCBsaWtlIHByb3ZpZGVkIHRvIHlvdXIgcGF1c2UgcHJvcC4gWW91IGNhbiBzcGVjaWZ5IG9uZSB0cmlnZ2VyIG9yIGFuIGFycmF5IG9mIHRoZW0uXG4gICAqIEB0eXBlIHsnaG92ZXInIHwgJ2ZvY3VzJyB8ICdjbGljayd9XG4gICAqL1xuICBASW5wdXQoKSBwYXVzZTogVHJpZ2dlcnMgfCBUcmlnZ2Vyc1tdIHwgZmFsc2UgPSAnaG92ZXInO1xuICAvKipcbiAgICogU3VwcG9ydCBsZWZ0L3JpZ2h0IHN3aXBlIGludGVyYWN0aW9ucyBvbiB0b3VjaHNjcmVlbiBkZXZpY2VzLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpIHRvdWNoOiBib29sZWFuID0gdHJ1ZTtcbiAgLyoqXG4gICAqIFNldCB0eXBlIG9mIHRoZSB0cmFuc2l0aW9uLlxuICAgKiBAdHlwZSB7J3NsaWRlJyB8ICdjcm9zc2ZhZGUnfVxuICAgKiBAZGVmYXVsdCAnc2xpZGUnXG4gICAqL1xuICBASW5wdXQoKSB0cmFuc2l0aW9uOiAnc2xpZGUnIHwgJ2Nyb3NzZmFkZScgPSAnc2xpZGUnO1xuICAvKipcbiAgICogU2V0IHdoZXRoZXIgdGhlIGNhcm91c2VsIHNob3VsZCBjeWNsZSBjb250aW51b3VzbHkgb3IgaGF2ZSBoYXJkIHN0b3BzLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpIHdyYXA6IGJvb2xlYW4gPSB0cnVlO1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCBvbiBjYXJvdXNlbCBpdGVtIGNoYW5nZS4gW2RvY3NdXG4gICAqIEB0eXBlIG51bWJlclxuICAgKi9cbiAgQE91dHB1dCgpIGl0ZW1DaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjYXJvdXNlbDogdHJ1ZSxcbiAgICAgIHNsaWRlOiB0cnVlLFxuICAgICAgJ2Nhcm91c2VsLWZhZGUnOiB0aGlzLnRyYW5zaXRpb24gPT09ICdjcm9zc2ZhZGUnXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgYWN0aXZlSXRlbUludGVydmFsID0gMDtcbiAgcHJpdmF0ZSBzd2lwZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXJvdXNlbFN0YXRlU3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0VGltZXIoKTtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5zd2lwZVN1YnNjcmliZShmYWxzZSk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcnNlY3Rpb25TZXJ2aWNlU3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jYXJvdXNlbFN0YXRlLnN0YXRlID0geyBhY3RpdmVJdGVtSW5kZXg6IHRoaXMuYWN0aXZlSW5kZXgsIGFuaW1hdGU6IHRoaXMuYW5pbWF0ZSB9O1xuICAgIHRoaXMuc2V0TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5zd2lwZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnOiBJTGlzdGVuZXJzQ29uZmlnID0ge1xuICAgICAgaG9zdEVsZW1lbnQ6IHRoaXMuaG9zdEVsZW1lbnQsXG4gICAgICB0cmlnZ2VyOiB0aGlzLnBhdXNlIHx8IFtdLFxuICAgICAgY2FsbGJhY2tPZmY6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRUaW1lcigpO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrT246ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldFRpbWVyKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmxpc3RlbmVyc1NlcnZpY2Uuc2V0TGlzdGVuZXJzKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuZXJzU2VydmljZS5jbGVhckxpc3RlbmVycygpO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsdWUpIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgX3Zpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHNldFRpbWVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGludGVydmFsID0gdGhpcy5hY3RpdmVJdGVtSW50ZXJ2YWwgfHwgMDtcbiAgICB0aGlzLnJlc2V0VGltZXIoKTtcbiAgICBpZiAoaW50ZXJ2YWwgPiAwKSB7XG4gICAgICB0aGlzLnRpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5jYXJvdXNlbFN0YXRlLmRpcmVjdGlvbih0aGlzLmRpcmVjdGlvbik7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZS5zdGF0ZSA9IHsgYWN0aXZlSXRlbUluZGV4OiBuZXh0SW5kZXggfTtcbiAgICAgIH0sIGludGVydmFsKTtcbiAgICB9XG4gIH1cblxuICByZXNldFRpbWVyKCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQpO1xuICAgIHRoaXMudGltZXJJZCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgY2Fyb3VzZWxTdGF0ZVN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhcm91c2VsU2VydmljZS5jYXJvdXNlbEluZGV4JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobmV4dEl0ZW0pID0+IHtcbiAgICAgICAgaWYgKCdhY3RpdmUnIGluIG5leHRJdGVtKSB7XG4gICAgICAgICAgdGhpcy5pdGVtQ2hhbmdlLmVtaXQobmV4dEl0ZW0uYWN0aXZlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1JbnRlcnZhbCA9IHR5cGVvZiBuZXh0SXRlbS5pbnRlcnZhbCA9PT0gJ251bWJlcicgJiYgbmV4dEl0ZW0uaW50ZXJ2YWwgPiAtMSA/IG5leHRJdGVtLmludGVydmFsIDogdGhpcy5pbnRlcnZhbDtcbiAgICAgICAgY29uc3QgaXNMYXN0SXRlbSA9ICgobmV4dEl0ZW0uYWN0aXZlID09PSBuZXh0SXRlbS5sYXN0SXRlbUluZGV4KSAmJiB0aGlzLmRpcmVjdGlvbiA9PT0gJ25leHQnKSB8fCAoKG5leHRJdGVtLmFjdGl2ZSA9PT0gMCkgJiYgdGhpcy5kaXJlY3Rpb24gPT09ICdwcmV2Jyk7XG4gICAgICAgICF0aGlzLndyYXAgJiYgaXNMYXN0SXRlbSA/IHRoaXMucmVzZXRUaW1lcigpIDogdGhpcy5zZXRUaW1lcigpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGludGVyc2VjdGlvblNlcnZpY2VTdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcnNlY3Rpb25TZXJ2aWNlLmNyZWF0ZUludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZS5pbnRlcnNlY3RpbmckXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKG5leHQgPT4gbmV4dC5ob3N0RWxlbWVudCA9PT0gdGhpcy5ob3N0RWxlbWVudCksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmludGVyc2VjdGlvblNlcnZpY2UudW5vYnNlcnZlKHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKG5leHQgPT4ge1xuICAgICAgICB0aGlzLnZpc2libGUgPSBuZXh0LmlzSW50ZXJzZWN0aW5nO1xuICAgICAgICBuZXh0LmlzSW50ZXJzZWN0aW5nID8gdGhpcy5zZXRUaW1lcigpIDogdGhpcy5yZXNldFRpbWVyKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3dpcGVTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvdWNoICYmIHN1YnNjcmliZSkge1xuICAgICAgY29uc3QgY2Fyb3VzZWxFbGVtZW50ID0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgdG91Y2hTdGFydCQgPSBmcm9tRXZlbnQ8VG91Y2hFdmVudD4oY2Fyb3VzZWxFbGVtZW50LCAndG91Y2hzdGFydCcpO1xuICAgICAgY29uc3QgdG91Y2hFbmQkID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGNhcm91c2VsRWxlbWVudCwgJ3RvdWNoZW5kJyk7XG4gICAgICBjb25zdCB0b3VjaE1vdmUkID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGNhcm91c2VsRWxlbWVudCwgJ3RvdWNobW92ZScpO1xuICAgICAgdGhpcy5zd2lwZVN1YnNjcmlwdGlvbiA9IHRvdWNoU3RhcnQkLnBpcGUoXG4gICAgICAgIHppcFdpdGgodG91Y2hFbmQkLnBpcGUod2l0aExhdGVzdEZyb20odG91Y2hNb3ZlJCkpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKFt0b3VjaHN0YXJ0LCBbdG91Y2hlbmQsIHRvdWNobW92ZV1dKSA9PiB7XG4gICAgICAgICAgdG91Y2hzdGFydC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0b3VjaG1vdmUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgY29uc3QgZGlzdGFuY2VYID0gdG91Y2hzdGFydC50b3VjaGVzWzBdLmNsaWVudFggLSB0b3VjaG1vdmUudG91Y2hlc1swXS5jbGllbnRYO1xuICAgICAgICAgIGlmIChNYXRoLmFicyhkaXN0YW5jZVgpID4gMC4zICogY2Fyb3VzZWxFbGVtZW50LmNsaWVudFdpZHRoICYmIHRvdWNoc3RhcnQudGltZVN0YW1wIDw9IHRvdWNobW92ZS50aW1lU3RhbXApIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRoaXMuY2Fyb3VzZWxTdGF0ZS5kaXJlY3Rpb24oZGlzdGFuY2VYID4gMCA/ICduZXh0JyA6ICdwcmV2Jyk7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsU3RhdGUuc3RhdGUgPSB7IGFjdGl2ZUl0ZW1JbmRleDogbmV4dEluZGV4IH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zd2lwZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -4,10 +4,10 @@ export class CarouselCaptionComponent {
4
4
  constructor() {
5
5
  this.carouselCaptionClass = true;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CarouselCaptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CarouselCaptionComponent, isStandalone: true, selector: "c-carousel-caption", host: { properties: { "class.carousel-caption": "this.carouselCaptionClass" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CarouselCaptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CarouselCaptionComponent, isStandalone: true, selector: "c-carousel-caption", host: { properties: { "class.carousel-caption": "this.carouselCaptionClass" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"] }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CarouselCaptionComponent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CarouselCaptionComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'c-carousel-caption', template: `<ng-content></ng-content>`, standalone: true, styles: [":host{display:block}\n"] }]
13
13
  }], ctorParameters: () => [], propDecorators: { carouselCaptionClass: [{