@coreui/angular-pro 4.4.11 → 4.5.0
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.
- package/README.md +2 -2
- package/{esm2020 → esm2022}/lib/accordion/accordion/accordion.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/accordion/accordion-button/accordion-button.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/accordion/accordion-item/accordion-item.component.mjs +4 -4
- package/esm2022/lib/accordion/accordion.module.mjs +36 -0
- package/{esm2020 → esm2022}/lib/accordion/accordion.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/alert/alert-heading.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/alert/alert-link.directive.mjs +4 -4
- package/esm2022/lib/alert/alert.component.mjs +181 -0
- package/esm2022/lib/alert/alert.module.mjs +30 -0
- package/{esm2020 → esm2022}/lib/avatar/avatar.component.mjs +4 -4
- package/esm2022/lib/avatar/avatar.module.mjs +20 -0
- package/{esm2020 → esm2022}/lib/backdrop/backdrop.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/badge/badge.component.mjs +4 -4
- package/esm2022/lib/badge/badge.module.mjs +20 -0
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +52 -0
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +34 -0
- package/{esm2020 → esm2022}/lib/button/button-close.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/button/button.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/button/button.module.mjs +7 -7
- package/{esm2020 → esm2022}/lib/button-group/button-group/button-group.component.mjs +4 -4
- package/esm2022/lib/button-group/button-group.module.mjs +17 -0
- package/{esm2020 → esm2022}/lib/button-group/button-toolbar/button-toolbar.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar/calendar-class-view.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar/calendar.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar-month/calendar-day.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar-month/calendar-day.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar-month/calendar-month.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +4 -4
- package/esm2022/lib/calendar/calendar.module.mjs +54 -0
- package/{esm2020 → esm2022}/lib/calendar/calendar.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/callout/callout.component.mjs +4 -4
- package/esm2022/lib/callout/callout.module.mjs +16 -0
- package/{esm2020 → esm2022}/lib/card/card-body.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-footer.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-header-actions.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-img-overlay/card-img-overlay.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-img.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-link.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-subtitle.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-text.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card-title.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/card/card.component.mjs +4 -4
- package/esm2022/lib/card/card.module.mjs +75 -0
- package/{esm2020 → esm2022}/lib/carousel/carousel/carousel.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/carousel/carousel-caption/carousel-caption.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/carousel/carousel-control/carousel-control.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/carousel/carousel-inner/carousel-inner.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/carousel/carousel-item/carousel-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/carousel/carousel-state.mjs +4 -4
- package/{esm2020 → esm2022}/lib/carousel/carousel.config.mjs +4 -4
- package/esm2022/lib/carousel/carousel.module.mjs +52 -0
- package/{esm2020 → esm2022}/lib/carousel/carousel.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/collapse/collapse.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/collapse/collapse.module.mjs +5 -5
- package/esm2022/lib/date-picker/date-picker.component.mjs +93 -0
- package/{esm2020 → esm2022}/lib/date-picker/date-picker.module.mjs +5 -5
- package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +675 -0
- package/{esm2020 → esm2022}/lib/date-range-picker/date-range-picker.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/dropdown/dropdown/dropdown.component.mjs +7 -7
- package/{esm2020 → esm2022}/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.module.mjs +56 -0
- package/{esm2020 → esm2022}/lib/dropdown/dropdown.service.mjs +4 -4
- package/esm2022/lib/element-cover/element-cover.component.mjs +68 -0
- package/esm2022/lib/element-cover/element-cover.module.mjs +16 -0
- package/{esm2020 → esm2022}/lib/footer/footer.component.mjs +4 -4
- package/esm2022/lib/footer/footer.module.mjs +16 -0
- package/{esm2020 → esm2022}/lib/form/form/form.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/form-check/form-check-input.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/form-check/form-check-label.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/form-check/form-check.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/form-control/form-control.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/form-feedback/form-feedback.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/form-floating/form-floating.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/form-label/form-label.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/form-select/form-select.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/form-text/form-text.directive.mjs +4 -4
- package/esm2022/lib/form/form.module.mjs +75 -0
- package/{esm2020 → esm2022}/lib/form/input-group/input-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form/input-group-text/input-group-text.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/grid/col.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/grid/col.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/grid/container.component.mjs +4 -4
- package/esm2022/lib/grid/grid.module.mjs +45 -0
- package/{esm2020 → esm2022}/lib/grid/gutter.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/grid/row.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/grid/row.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/header/header/header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/header/header-brand/header-brand.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/header/header-divider/header-divider.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/header/header-nav/header-nav.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/header/header-text/header-text.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/header/header-toggler/header-toggler.directive.mjs +4 -4
- package/esm2022/lib/header/header.module.mjs +45 -0
- package/{esm2020 → esm2022}/lib/image/img.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/image/img.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/list-group/list-group-item.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/list-group/list-group.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/list-group/list-group.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/loading-button/loading-button.component.mjs +4 -4
- package/esm2022/lib/loading-button/loading-button.module.mjs +16 -0
- package/{esm2020 → esm2022}/lib/modal/modal/modal.component.mjs +14 -14
- package/{esm2020 → esm2022}/lib/modal/modal-body/modal-body.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modal/modal-content/modal-content.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modal/modal-dialog/modal-dialog.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modal/modal-dismiss/modal-toggle.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modal/modal-footer/modal-footer.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modal/modal-header/modal-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modal/modal-title/modal-title.directive.mjs +4 -4
- package/esm2022/lib/modal/modal.module.mjs +57 -0
- package/{esm2020 → esm2022}/lib/modal/modal.service.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +69 -0
- package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +1066 -0
- package/{esm2020 → esm2022}/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +334 -0
- package/{esm2020 → esm2022}/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select.module.mjs +37 -0
- package/esm2022/lib/multi-select/multi-select.service.mjs +38 -0
- package/{esm2020 → esm2022}/lib/nav/nav-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/nav/nav-link.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/nav/nav.component.mjs +4 -4
- package/esm2022/lib/nav/nav.module.mjs +30 -0
- package/{esm2020 → esm2022}/lib/navbar/navbar-brand/navbar-brand.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navbar/navbar-nav/navbar-nav.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navbar/navbar-text/navbar-text.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navbar/navbar.component.mjs +4 -4
- package/esm2022/lib/navbar/navbar.module.mjs +40 -0
- package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +321 -0
- package/{esm2020 → esm2022}/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas.module.mjs +49 -0
- package/{esm2020 → esm2022}/lib/offcanvas/offcanvas.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pagination/page-item/page-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pagination/page-item/page-item.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pagination/page-link/page-link.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pagination/pagination/pagination.component.mjs +4 -4
- package/esm2022/lib/pagination/pagination.module.mjs +35 -0
- package/{esm2020 → esm2022}/lib/placeholder/placeholder-animation.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/placeholder/placeholder.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/placeholder/placeholder.module.mjs +7 -7
- package/{esm2020 → esm2022}/lib/popover/popover/popover.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/popover/popover.directive.mjs +4 -4
- package/esm2022/lib/popover/popover.module.mjs +25 -0
- package/{esm2020 → esm2022}/lib/progress/progress-bar.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/progress/progress.component.mjs +4 -4
- package/esm2022/lib/progress/progress.module.mjs +25 -0
- package/{esm2020 → esm2022}/lib/services/class-toggle.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/intersection.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/listeners.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/shared/html-attr.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/shared/shared.module.mjs +7 -7
- package/{esm2020 → esm2022}/lib/shared/template-id.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar/sidebar.component.mjs +46 -42
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-header/sidebar-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +9 -9
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +230 -0
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +7 -7
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar.module.mjs +83 -0
- package/{esm2020 → esm2022}/lib/sidebar/sidebar.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/smart-pagination/smart-pagination.component.mjs +4 -4
- package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +16 -0
- package/{esm2020 → esm2022}/lib/smart-table/smart-table/smart-table.component.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +28 -0
- package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +78 -0
- package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +43 -0
- package/{esm2020 → esm2022}/lib/smart-table/smart-table-head/smart-table-head.component.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +52 -0
- package/esm2022/lib/smart-table/smart-table.module.mjs +17 -0
- package/{esm2020 → esm2022}/lib/spinner/spinner.component.mjs +4 -4
- package/esm2022/lib/spinner/spinner.module.mjs +20 -0
- package/{esm2020 → esm2022}/lib/table/table-active.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/table/table-color.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/table/table.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/table/table.module.mjs +9 -9
- package/{esm2020 → esm2022}/lib/tabs/tab-content/tab-content.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/tabs/tab-content-ref.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/tabs/tab-pane/tab-pane.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/tabs/tab.service.mjs +4 -4
- package/esm2022/lib/tabs/tabs.module.mjs +36 -0
- package/{esm2020 → esm2022}/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +7 -7
- package/{esm2020 → esm2022}/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +7 -7
- package/esm2022/lib/time-picker/time-picker.component.mjs +511 -0
- package/{esm2020 → esm2022}/lib/time-picker/time-picker.module.mjs +21 -21
- package/esm2022/lib/toast/toast/toast.component.mjs +238 -0
- package/{esm2020 → esm2022}/lib/toast/toast-body/toast-body.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/toast/toast-close.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/toast/toast-header/toast-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/toast/toast.module.mjs +15 -18
- package/{esm2020 → esm2022}/lib/toast/toaster/toaster-host.directive.mjs +4 -4
- package/esm2022/lib/toast/toaster/toaster.component.mjs +130 -0
- package/{esm2020 → esm2022}/lib/toast/toaster/toaster.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/tooltip/tooltip/tooltip.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/tooltip/tooltip.directive.mjs +4 -4
- package/esm2022/lib/tooltip/tooltip.module.mjs +25 -0
- package/{esm2020 → esm2022}/lib/utilities/align.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/utilities/bg-color.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/utilities/border.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/utilities/rounded.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/utilities/text-color.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/utilities/utilities.module.mjs +13 -13
- package/{esm2020 → esm2022}/lib/widget/widget-stat-a/widget-stat-a.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/widget/widget-stat-b/widget-stat-b.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/widget/widget-stat-c/widget-stat-c.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/widget/widget-stat-d/widget-stat-d.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/widget/widget-stat-e/widget-stat-e.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/widget/widget-stat-f/widget-stat-f.component.mjs +4 -4
- package/esm2022/lib/widget/widget.module.mjs +45 -0
- package/{fesm2020 → fesm2022}/coreui-angular-pro.mjs +1416 -1460
- package/fesm2022/coreui-angular-pro.mjs.map +1 -0
- package/lib/accordion/accordion/accordion.component.d.ts +1 -1
- package/lib/accordion/accordion-button/accordion-button.directive.d.ts +1 -1
- package/lib/accordion/accordion-item/accordion-item.component.d.ts +1 -1
- package/lib/alert/alert.component.d.ts +1 -1
- package/lib/avatar/avatar.component.d.ts +1 -1
- package/lib/badge/badge.component.d.ts +1 -1
- package/lib/breadcrumb/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.d.ts +1 -1
- package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.d.ts +1 -1
- package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.d.ts +1 -1
- package/lib/button/button-close.directive.d.ts +1 -1
- package/lib/button/button.directive.d.ts +1 -1
- package/lib/button-group/button-group/button-group.component.d.ts +1 -1
- package/lib/button-group/button-toolbar/button-toolbar.component.d.ts +1 -1
- package/lib/calendar/calendar/calendar.component.d.ts +1 -1
- package/lib/calendar/calendar-month/calendar-day.directive.d.ts +1 -1
- package/lib/calendar/calendar-month/calendar-month.component.d.ts +1 -1
- package/lib/calendar/calendar-navigation/calendar-navigation.component.d.ts +1 -1
- package/lib/callout/callout.component.d.ts +1 -1
- package/lib/card/card-img.directive.d.ts +1 -1
- package/lib/card/card.component.d.ts +1 -1
- package/lib/carousel/carousel/carousel.component.d.ts +1 -1
- package/lib/carousel/carousel-control/carousel-control.component.d.ts +1 -1
- package/lib/carousel/carousel-item/carousel-item.component.d.ts +1 -1
- package/lib/collapse/collapse.directive.d.ts +1 -1
- package/lib/date-picker/date-picker.component.d.ts +1 -1
- package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +1 -1
- package/lib/dropdown/dropdown/dropdown.component.d.ts +2 -2
- package/lib/dropdown/dropdown-close/dropdown-close.directive.d.ts +1 -1
- package/lib/dropdown/dropdown-item/dropdown-item.directive.d.ts +1 -1
- package/lib/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +1 -1
- package/lib/element-cover/element-cover.component.d.ts +1 -1
- package/lib/footer/footer.component.d.ts +1 -1
- package/lib/form/form/form.directive.d.ts +1 -1
- package/lib/form/form-check/form-check-input.directive.d.ts +1 -1
- package/lib/form/form-check/form-check.component.d.ts +1 -1
- package/lib/form/form-control/form-control.directive.d.ts +1 -1
- package/lib/form/form-feedback/form-feedback.component.d.ts +1 -1
- package/lib/form/form-floating/form-floating.directive.d.ts +1 -1
- package/lib/form/form-label/form-label.directive.d.ts +1 -1
- package/lib/form/form-select/form-select.directive.d.ts +1 -1
- package/lib/form/input-group/input-group.component.d.ts +1 -1
- package/lib/grid/col.directive.d.ts +1 -1
- package/lib/grid/container.component.d.ts +1 -1
- package/lib/grid/gutter.directive.d.ts +1 -1
- package/lib/grid/row.directive.d.ts +1 -1
- package/lib/header/header/header.component.d.ts +1 -1
- package/lib/header/header-brand/header-brand.component.d.ts +1 -1
- package/lib/header/header-nav/header-nav.component.d.ts +1 -1
- package/lib/header/header-toggler/header-toggler.directive.d.ts +1 -1
- package/lib/image/img.directive.d.ts +1 -1
- package/lib/list-group/list-group-item.directive.d.ts +1 -1
- package/lib/list-group/list-group.directive.d.ts +1 -1
- package/lib/loading-button/loading-button.component.d.ts +1 -1
- package/lib/modal/modal/modal.component.d.ts +1 -1
- package/lib/modal/modal-dialog/modal-dialog.component.d.ts +1 -1
- package/lib/modal/modal-dismiss/modal-toggle.directive.d.ts +1 -1
- package/lib/multi-select/multi-select/multi-select-search.directive.d.ts +1 -1
- package/lib/multi-select/multi-select/multi-select.component.d.ts +1 -1
- package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +1 -1
- package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +1 -1
- package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +1 -1
- package/lib/multi-select/multi-select-tag/multi-select-tag.component.d.ts +1 -1
- package/lib/nav/nav-link.directive.d.ts +1 -1
- package/lib/nav/nav.component.d.ts +1 -1
- package/lib/navbar/navbar-nav/navbar-nav.component.d.ts +1 -1
- package/lib/navbar/navbar-toggler/navbar-toggler.directive.d.ts +1 -1
- package/lib/navbar/navbar.component.d.ts +1 -1
- package/lib/offcanvas/offcanvas/offcanvas.component.d.ts +1 -1
- package/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.d.ts +1 -1
- package/lib/pagination/page-item/page-item.directive.d.ts +1 -1
- package/lib/pagination/pagination/pagination.component.d.ts +1 -1
- package/lib/placeholder/placeholder-animation.directive.d.ts +1 -1
- package/lib/placeholder/placeholder.directive.d.ts +1 -1
- package/lib/popover/popover/popover.component.d.ts +1 -1
- package/lib/popover/popover.directive.d.ts +1 -1
- package/lib/progress/progress-bar.component.d.ts +1 -1
- package/lib/progress/progress.component.d.ts +1 -1
- package/lib/shared/html-attr.directive.d.ts +1 -1
- package/lib/shared/template-id.directive.d.ts +1 -1
- package/lib/sidebar/sidebar/sidebar.component.d.ts +1 -1
- package/lib/sidebar/sidebar-brand/sidebar-brand.component.d.ts +1 -1
- package/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.d.ts +1 -1
- package/lib/sidebar/sidebar-nav/sidebar-nav-label.component.d.ts +1 -1
- package/lib/sidebar/sidebar-nav/sidebar-nav-link.component.d.ts +2 -2
- package/lib/sidebar/sidebar-nav/sidebar-nav-title.component.d.ts +1 -1
- package/lib/sidebar/sidebar-nav/sidebar-nav.component.d.ts +2 -2
- package/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.d.ts +1 -1
- package/lib/sidebar/sidebar-toggler/sidebar-toggler.component.d.ts +1 -1
- package/lib/smart-pagination/smart-pagination.component.d.ts +1 -1
- package/lib/smart-table/smart-table/smart-table.component.d.ts +1 -1
- package/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.d.ts +1 -1
- package/lib/smart-table/smart-table-filter/filter-input.directive.d.ts +1 -1
- package/lib/smart-table/smart-table-filter/smart-table-filter.component.d.ts +1 -1
- package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +1 -1
- package/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.d.ts +1 -1
- package/lib/spinner/spinner.component.d.ts +1 -1
- package/lib/table/table-active.directive.d.ts +1 -1
- package/lib/table/table-color.directive.d.ts +1 -1
- package/lib/table/table.directive.d.ts +1 -1
- package/lib/tabs/tab-content/tab-content.component.d.ts +1 -1
- package/lib/tabs/tab-content-ref.directive.d.ts +1 -1
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.d.ts +2 -2
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.d.ts +2 -2
- package/lib/time-picker/time-picker.component.d.ts +1 -1
- package/lib/toast/toast/toast.component.d.ts +1 -1
- package/lib/toast/toast-close.directive.d.ts +1 -1
- package/lib/toast/toast-header/toast-header.component.d.ts +1 -1
- package/lib/toast/toaster/toaster.component.d.ts +1 -1
- package/lib/tooltip/tooltip/tooltip.component.d.ts +1 -1
- package/lib/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/utilities/align.directive.d.ts +1 -1
- package/lib/utilities/bg-color.directive.d.ts +1 -1
- package/lib/utilities/border.directive.d.ts +1 -1
- package/lib/utilities/rounded.directive.d.ts +1 -1
- package/lib/utilities/text-color.directive.d.ts +1 -1
- package/lib/widget/widget-stat-a/widget-stat-a.component.d.ts +1 -1
- package/lib/widget/widget-stat-b/widget-stat-b.component.d.ts +1 -1
- package/lib/widget/widget-stat-c/widget-stat-c.component.d.ts +1 -1
- package/lib/widget/widget-stat-d/widget-stat-d.component.d.ts +1 -1
- package/lib/widget/widget-stat-e/widget-stat-e.component.d.ts +1 -1
- package/lib/widget/widget-stat-f/widget-stat-f.component.d.ts +1 -1
- package/package.json +9 -15
- package/esm2020/lib/accordion/accordion.module.mjs +0 -37
- package/esm2020/lib/alert/alert.component.mjs +0 -181
- package/esm2020/lib/alert/alert.module.mjs +0 -30
- package/esm2020/lib/avatar/avatar.module.mjs +0 -20
- package/esm2020/lib/badge/badge.module.mjs +0 -20
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +0 -53
- package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +0 -35
- package/esm2020/lib/button-group/button-group.module.mjs +0 -17
- package/esm2020/lib/calendar/calendar.module.mjs +0 -56
- package/esm2020/lib/callout/callout.module.mjs +0 -16
- package/esm2020/lib/card/card.module.mjs +0 -81
- package/esm2020/lib/carousel/carousel.module.mjs +0 -57
- package/esm2020/lib/date-picker/date-picker.component.mjs +0 -93
- package/esm2020/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +0 -676
- package/esm2020/lib/dropdown/dropdown.module.mjs +0 -56
- package/esm2020/lib/element-cover/element-cover.component.mjs +0 -71
- package/esm2020/lib/element-cover/element-cover.module.mjs +0 -16
- package/esm2020/lib/footer/footer.module.mjs +0 -16
- package/esm2020/lib/form/form.module.mjs +0 -77
- package/esm2020/lib/grid/grid.module.mjs +0 -47
- package/esm2020/lib/header/header.module.mjs +0 -49
- package/esm2020/lib/loading-button/loading-button.module.mjs +0 -16
- package/esm2020/lib/modal/modal.module.mjs +0 -62
- package/esm2020/lib/multi-select/multi-select/multi-select-search.directive.mjs +0 -69
- package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +0 -1065
- package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +0 -326
- package/esm2020/lib/multi-select/multi-select.module.mjs +0 -40
- package/esm2020/lib/multi-select/multi-select.service.mjs +0 -40
- package/esm2020/lib/nav/nav.module.mjs +0 -31
- package/esm2020/lib/navbar/navbar.module.mjs +0 -42
- package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +0 -319
- package/esm2020/lib/offcanvas/offcanvas.module.mjs +0 -51
- package/esm2020/lib/pagination/pagination.module.mjs +0 -36
- package/esm2020/lib/popover/popover.module.mjs +0 -25
- package/esm2020/lib/progress/progress.module.mjs +0 -26
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +0 -230
- package/esm2020/lib/sidebar/sidebar.module.mjs +0 -92
- package/esm2020/lib/smart-pagination/smart-pagination.module.mjs +0 -16
- package/esm2020/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +0 -30
- package/esm2020/lib/smart-table/smart-table-filter/filter-input.directive.mjs +0 -79
- package/esm2020/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +0 -45
- package/esm2020/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +0 -54
- package/esm2020/lib/smart-table/smart-table.module.mjs +0 -17
- package/esm2020/lib/spinner/spinner.module.mjs +0 -20
- package/esm2020/lib/tabs/tabs.module.mjs +0 -37
- package/esm2020/lib/time-picker/time-picker.component.mjs +0 -511
- package/esm2020/lib/toast/toast/toast.component.mjs +0 -238
- package/esm2020/lib/toast/toaster/toaster.component.mjs +0 -130
- package/esm2020/lib/tooltip/tooltip.module.mjs +0 -25
- package/esm2020/lib/widget/widget.module.mjs +0 -50
- package/fesm2015/coreui-angular-pro.mjs +0 -16521
- package/fesm2015/coreui-angular-pro.mjs.map +0 -1
- package/fesm2020/coreui-angular-pro.mjs.map +0 -1
- /package/{esm2020 → esm2022}/coreui-angular-pro.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/accordion/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/accordion/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/alert/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/alert/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/avatar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/avatar/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/badge/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/badge/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb-item/breadcrumb-item.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/breadcrumb/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/breadcrumb/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button-group/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button-group/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/calendar/calendar.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/calendar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/calendar/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/callout/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/callout/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/card/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/card/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/carousel/carousel-state.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/carousel/carousel.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/carousel/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/carousel/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/collapse/collapse.animations.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/collapse/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/collapse/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/coreui.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/date-picker/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/date-picker/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/date-range-picker/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/date-range-picker/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/element-cover/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/element-cover/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/footer/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/footer/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/grid/col.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/grid/container.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/grid/gutter.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/grid/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/grid/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/grid/row.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/header/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/header/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/image/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/image/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/list-group/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/list-group/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/loading-button/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/loading-button/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/multi-select/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/multi-select/multi-select.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/multi-select/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/nav/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/nav/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/navbar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/navbar/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/offcanvas/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/offcanvas/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pagination/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pagination/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/placeholder/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/placeholder/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/popover/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/popover/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/progress/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/progress/progress-bar.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/progress/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/sidebar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/sidebar/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/sidebar/sidebar-nav/sidebar-nav.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/smart-pagination/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/smart-pagination/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/smart-pagination/smart-pagination.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/smart-table/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/smart-table/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/smart-table/smart-table.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/spinner/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/spinner/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/table.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tabs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tabs/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/time-picker/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/time-picker/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/time-picker/time.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/toast/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/toast/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tooltip/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tooltip/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utilities/border.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utilities/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utilities/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utilities/rounded.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/widget/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/widget/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -154,10 +154,10 @@ export class SmartPaginationComponent {
|
|
|
154
154
|
this.activePageChange.emit(page);
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: SmartPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: SmartPaginationComponent, isStandalone: true, selector: "c-smart-pagination", inputs: { activePage: "activePage", arrows: "arrows", doubleArrows: "doubleArrows", dots: "dots", limit: "limit", pages: "pages", firstButton: "firstButton", lastButton: "lastButton", nextButton: "nextButton", previousButton: "previousButton", align: "align", size: "size", role: "role" }, outputs: { activePageChange: "activePageChange" }, host: { properties: { "attr.role": "this.role" } }, exportAs: ["cSmartPagination"], ngImport: i0, template: "<ul [ngClass]=\"paginationClass\">\n <li *ngIf=\"doubleArrows\" cPageItem>\n <button\n (click)=\"setPage(1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"First page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{firstButton}}</span>\n </button>\n </li>\n <li *ngIf=\"arrows\" cPageItem>\n <button\n (click)=\"setPage(activePage - 1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"Previous page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{previousButton}}</span>\n </button>\n </li>\n <li *ngIf=\"beforeDots\" cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n <li *ngFor=\"let item of items; index as i\" [active]=\"activePage === item\" cPageItem>\n <button\n (click)=\"setPage(item)\"\n [title]=\"(activePage === item ? 'Current page ' : 'Go to page ') + (item).toString()\"\n cPageLink\n >\n {{item}}\n </button>\n </li>\n <li *ngIf=\"afterDots\" cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n <li *ngIf=\"arrows\" cPageItem>\n <button\n (click)=\"setPage(activePage + 1)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Next page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{nextButton}}</span>\n </button>\n </li>\n <li *ngIf=\"doubleArrows\" cPageItem>\n <button\n (click)=\"setPage(pages)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Last page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{lastButton}}</span>\n </button>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: PageItemDirective, selector: "[cPageItem]", inputs: ["active", "disabled"] }, { kind: "directive", type: PageLinkDirective, selector: "[cPageLink]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
157
159
|
}
|
|
158
|
-
|
|
159
|
-
SmartPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SmartPaginationComponent, isStandalone: true, selector: "c-smart-pagination", inputs: { activePage: "activePage", arrows: "arrows", doubleArrows: "doubleArrows", dots: "dots", limit: "limit", pages: "pages", firstButton: "firstButton", lastButton: "lastButton", nextButton: "nextButton", previousButton: "previousButton", align: "align", size: "size", role: "role" }, outputs: { activePageChange: "activePageChange" }, host: { properties: { "attr.role": "this.role" } }, exportAs: ["cSmartPagination"], ngImport: i0, template: "<ul [ngClass]=\"paginationClass\">\n <li *ngIf=\"doubleArrows\" cPageItem>\n <button\n (click)=\"setPage(1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"First page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{firstButton}}</span>\n </button>\n </li>\n <li *ngIf=\"arrows\" cPageItem>\n <button\n (click)=\"setPage(activePage - 1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"Previous page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{previousButton}}</span>\n </button>\n </li>\n <li *ngIf=\"beforeDots\" cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n <li *ngFor=\"let item of items; index as i\" [active]=\"activePage === item\" cPageItem>\n <button\n (click)=\"setPage(item)\"\n [title]=\"(activePage === item ? 'Current page ' : 'Go to page ') + (item).toString()\"\n cPageLink\n >\n {{item}}\n </button>\n </li>\n <li *ngIf=\"afterDots\" cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n <li *ngIf=\"arrows\" cPageItem>\n <button\n (click)=\"setPage(activePage + 1)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Next page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{nextButton}}</span>\n </button>\n </li>\n <li *ngIf=\"doubleArrows\" cPageItem>\n <button\n (click)=\"setPage(pages)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Last page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{lastButton}}</span>\n </button>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: PageItemDirective, selector: "[cPageItem]", inputs: ["active", "disabled"] }, { kind: "directive", type: PageLinkDirective, selector: "[cPageLink]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SmartPaginationComponent, decorators: [{
|
|
160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: SmartPaginationComponent, decorators: [{
|
|
161
161
|
type: Component,
|
|
162
162
|
args: [{ selector: 'c-smart-pagination', exportAs: 'cSmartPagination', standalone: true, imports: [PageItemDirective, PageLinkDirective, NgClass, NgIf, NgForOf], template: "<ul [ngClass]=\"paginationClass\">\n <li *ngIf=\"doubleArrows\" cPageItem>\n <button\n (click)=\"setPage(1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"First page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{firstButton}}</span>\n </button>\n </li>\n <li *ngIf=\"arrows\" cPageItem>\n <button\n (click)=\"setPage(activePage - 1)\"\n [disabled]=\"activePage === 1\"\n aria-label=\"Previous page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{previousButton}}</span>\n </button>\n </li>\n <li *ngIf=\"beforeDots\" cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n <li *ngFor=\"let item of items; index as i\" [active]=\"activePage === item\" cPageItem>\n <button\n (click)=\"setPage(item)\"\n [title]=\"(activePage === item ? 'Current page ' : 'Go to page ') + (item).toString()\"\n cPageLink\n >\n {{item}}\n </button>\n </li>\n <li *ngIf=\"afterDots\" cPageItem>\n <a cPageLink disabled role=\"separator\">\n ...\n </a>\n </li>\n <li *ngIf=\"arrows\" cPageItem>\n <button\n (click)=\"setPage(activePage + 1)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Next page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{nextButton}}</span>\n </button>\n </li>\n <li *ngIf=\"doubleArrows\" cPageItem>\n <button\n (click)=\"setPage(pages)\"\n [disabled]=\"activePage === pages\"\n aria-label=\"Last page\"\n cPageLink\n >\n <span aria-hidden=\"true\">{{lastButton}}</span>\n </button>\n </li>\n</ul>\n" }]
|
|
163
163
|
}], ctorParameters: function () { return []; }, propDecorators: { activePage: [{
|
|
@@ -192,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
192
192
|
}, {
|
|
193
193
|
type: Input
|
|
194
194
|
}] } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXBhZ2luYXRpb24vc21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXBhZ2luYXRpb24vc21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXJFLE1BQU0sT0FBTyx3QkFBd0I7SUFNbkM7UUFnQlEsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFaEM7OztXQUdHO1FBQ08scUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFOUU7Ozs7V0FJRztRQUNNLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFFaEM7Ozs7V0FJRztRQUNNLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBRXRDOzs7V0FHRztRQUNNLFNBQUksR0FBWSxJQUFJLENBQUM7UUFnQnRCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFlbkIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUUzQjs7OztXQUlHO1FBQ00sZ0JBQVcsR0FBK0IsR0FBRyxDQUFDO1FBQ3ZELHNEQUFzRDtRQUV0RDs7OztXQUlHO1FBQ00sZUFBVSxHQUEr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aUIsd0ZBQUUsaUJBQWlCLHdEQUFFLE9BQU8sb0ZBQUUsSUFBSSw2RkFBRSxPQUFPOzJGQUUzRCx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0Usb0JBQW9CLFlBRXBCLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQzswRUFnQm5FLFVBQVU7c0JBRGIsS0FBSztnQkFlSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBT0UsTUFBTTtzQkFBZCxLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQVFGLEtBQUs7c0JBRFIsS0FBSztnQkFnQkYsS0FBSztzQkFEUixLQUFLO2dCQWdCRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBUUcsSUFBSTtzQkFEWixXQUFXO3VCQUFDLFdBQVc7O3NCQUN2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5pbXBvcnQgeyBQYWdlSXRlbURpcmVjdGl2ZSwgUGFnZUxpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9wYWdpbmF0aW9uJztcbmltcG9ydCB7IElTbWFydFBhZ2luYXRpb24gfSBmcm9tICcuL3NtYXJ0LXBhZ2luYXRpb24udHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Mtc21hcnQtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdjU21hcnRQYWdpbmF0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1BhZ2VJdGVtRGlyZWN0aXZlLCBQYWdlTGlua0RpcmVjdGl2ZSwgTmdDbGFzcywgTmdJZiwgTmdGb3JPZl1cbn0pXG5leHBvcnQgY2xhc3MgU21hcnRQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgSVNtYXJ0UGFnaW5hdGlvbiB7XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2FjdGl2ZVBhZ2U6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcGFnZXM6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbGltaXQ6IE51bWJlcklucHV0O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgcGFnZSBudW1iZXIuIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAxXG4gICAqIEB0eXBlIG51bWJlclxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGFjdGl2ZVBhZ2UodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2FjdGl2ZVBhZ2UgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgYWN0aXZlUGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWN0aXZlUGFnZTogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogRXZlbnQgdHJpZ2dlcmVkIG9uIGFjdGl2ZVBhZ2UgY2hhbmdlLlxuICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8bnVtYmVyPlxuICAgKi9cbiAgQE91dHB1dCgpIGFjdGl2ZVBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIFNob3cvaGlkZSBhcnJvd3NcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKSBhcnJvd3M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTaG93IGRvdWJsZSBhcnJvd3MgYnV0dG9uc1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGRvdWJsZUFycm93czogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNob3cvaGlkZSBkb3RzLiBbZG9jc11cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkgZG90czogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gaXRlbXMgbnVtYmVyLiBbZG9jc11cbiAgICogQGRlZmF1bHQgNVxuICAgKiBAdHlwZSBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBsaW1pdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGltaXQgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbGltaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGltaXQ7XG4gIH1cblxuICBwcml2YXRlIF9saW1pdDogbnVtYmVyID0gNTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHBhZ2VzLiBbZG9jc11cbiAgICogQHR5cGUgbnVtYmVyXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcGFnZXModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3BhZ2VzID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHBhZ2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGFnZXM6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICdmaXJzdEJ1dHRvbicgYnV0dG9uLiBbZG9jc11cbiAgICogQGRlZmF1bHQgJyZsYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgZmlyc3RCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJ8KrJztcbiAgLy8gZmlyc3RCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJyZsYXF1bzsnXG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICdsYXN0QnV0dG9uJyBidXR0b24uIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAnJnJhcXVvJ1xuICAgKiB0b2RvIFRlbXBsYXRlUmVmXG4gICAqL1xuICBASW5wdXQoKSBsYXN0QnV0dG9uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiA9ICfCuyc7XG4gIC8vIGxhc3RCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJyZyYXF1bzsnXG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICduZXh0QnV0dG9uJyBidXR0b24uIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAnJmxzYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgbmV4dEJ1dHRvbj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gPSAn4oC6JztcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgJ3ByZXZpb3VzQnV0dG9uJyBidXR0b24uIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAnJnJzYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgcHJldmlvdXNCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJ+KAuSc7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYWxpZ25tZW50IG9mIHBhZ2luYXRpb24gY29tcG9uZW50cy5cbiAgICogQHZhbHVlcyAnc3RhcnQnLCAnY2VudGVyJywgJ2VuZCdcbiAgICovXG4gIEBJbnB1dCgpIGFsaWduPzogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcgfCAnJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIFNpemUgdGhlIGNvbXBvbmVudCBzbWFsbCBvciBsYXJnZS5cbiAgICogQHZhbHVlcyAnc20nLCAnbGcnXG4gICAqL1xuICBASW5wdXQoKSBzaXplPzogJ3NtJyB8ICdsZyc7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcm9sZSBmb3IgcGFnaW5hdGlvbi4gW2RvY3NdXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCAnbmF2aWdhdGlvbidcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgQElucHV0KCkgcm9sZSA9ICduYXZpZ2F0aW9uJztcblxuICBnZXQgcGFnaW5hdGlvbkNsYXNzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2luYXRpb246IHRydWUsXG4gICAgICBbYHBhZ2luYXRpb24tJHt0aGlzLnNpemV9YF06ICEhdGhpcy5zaXplLFxuICAgICAgW2BqdXN0aWZ5LWNvbnRlbnQtJHt0aGlzLmFsaWdufWBdOiAhIXRoaXMuYWxpZ25cbiAgICB9O1xuICB9XG5cbiAgZ2V0IG1heFByZXZJdGVtcygpIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcigodGhpcy5fbGltaXQgLSAxKSAvIDIpO1xuICB9XG5cbiAgZ2V0IG1heE5leHRJdGVtcygpIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKCh0aGlzLl9saW1pdCAtIDEpIC8gMik7XG4gIH1cblxuICBnZXQgcmFuZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVQYWdlICsgdGhpcy5tYXhOZXh0SXRlbXM7XG4gIH1cblxuICBnZXQgbGFzdEl0ZW0oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZSA+PSB0aGlzLl9wYWdlcyA/IHRoaXMuX3BhZ2VzIDogdGhpcy5yYW5nZSAtICh0aGlzLmFmdGVyRG90cyA/IDEgOiAwKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZExpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xpbWl0IC0gKHRoaXMuYWZ0ZXJEb3RzID8gMSA6IDApIC0gKHRoaXMuYmVmb3JlRG90cyA/IDEgOiAwKTtcbiAgfVxuXG4gIGdldCBpdGVtc0xpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzIDwgdGhpcy5jb21wdXRlZExpbWl0ID8gdGhpcy5fcGFnZXMgOiB0aGlzLmNvbXB1dGVkTGltaXQ7XG4gIH1cblxuICBnZXQgc2hvd0RvdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZG90cyAmJiB0aGlzLl9saW1pdCA+IDQgJiYgdGhpcy5fbGltaXQgPCB0aGlzLl9wYWdlcztcbiAgfVxuXG4gIGdldCBiZWZvcmVEb3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dEb3RzICYmIHRoaXMuYWN0aXZlUGFnZSA+IHRoaXMubWF4UHJldkl0ZW1zICsgMTtcbiAgfVxuXG4gIGdldCBhZnRlckRvdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0RvdHMgJiYgdGhpcy5hY3RpdmVQYWdlIDwgdGhpcy5fcGFnZXMgLSB0aGlzLm1heE5leHRJdGVtcztcbiAgfVxuXG4gIGdldCBpdGVtcygpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlIC0gdGhpcy5tYXhQcmV2SXRlbXMgPD0gMSkge1xuICAgICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICAgIHtcbiAgICAgICAgICBsZW5ndGg6IHRoaXMuaXRlbXNMaW1pdFxuICAgICAgICB9LFxuICAgICAgICAoX2l0ZW0sIGkpID0+IGkgKyAxXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbShcbiAgICAgICAge1xuICAgICAgICAgIGxlbmd0aDogdGhpcy5pdGVtc0xpbWl0XG4gICAgICAgIH0sXG4gICAgICAgIChfaXRlbSwgaSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxhc3RJdGVtIC0gaTtcbiAgICAgICAgfVxuICAgICAgKS5yZXZlcnNlKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0UGFnZShwYWdlOiBudW1iZXIpIHtcbiAgICBpZiAocGFnZSAhPT0gdGhpcy5hY3RpdmVQYWdlKSB7XG4gICAgICB0aGlzLmFjdGl2ZVBhZ2UgPSBwYWdlO1xuICAgICAgdGhpcy5hY3RpdmVQYWdlQ2hhbmdlLmVtaXQocGFnZSk7XG4gICAgfVxuICB9XG59XG4iLCI8dWwgW25nQ2xhc3NdPVwicGFnaW5hdGlvbkNsYXNzXCI+XG4gIDxsaSAqbmdJZj1cImRvdWJsZUFycm93c1wiIGNQYWdlSXRlbT5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0UGFnZSgxKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlUGFnZSA9PT0gMVwiXG4gICAgICBhcmlhLWxhYmVsPVwiRmlyc3QgcGFnZVwiXG4gICAgICBjUGFnZUxpbmtcbiAgICA+XG4gICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj57e2ZpcnN0QnV0dG9ufX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvbGk+XG4gIDxsaSAqbmdJZj1cImFycm93c1wiIGNQYWdlSXRlbT5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0UGFnZShhY3RpdmVQYWdlIC0gMSlcIlxuICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZVBhZ2UgPT09IDFcIlxuICAgICAgYXJpYS1sYWJlbD1cIlByZXZpb3VzIHBhZ2VcIlxuICAgICAgY1BhZ2VMaW5rXG4gICAgPlxuICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3twcmV2aW91c0J1dHRvbn19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuICA8bGkgKm5nSWY9XCJiZWZvcmVEb3RzXCIgY1BhZ2VJdGVtPlxuICAgIDxhIGNQYWdlTGluayBkaXNhYmxlZCByb2xlPVwic2VwYXJhdG9yXCI+XG4gICAgICAuLi5cbiAgICA8L2E+XG4gIDwvbGk+XG4gIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaVwiIFthY3RpdmVdPVwiYWN0aXZlUGFnZSA9PT0gaXRlbVwiIGNQYWdlSXRlbT5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0UGFnZShpdGVtKVwiXG4gICAgICBbdGl0bGVdPVwiKGFjdGl2ZVBhZ2UgPT09IGl0ZW0gPyAnQ3VycmVudCBwYWdlICcgOiAnR28gdG8gcGFnZSAnKSArIChpdGVtKS50b1N0cmluZygpXCJcbiAgICAgIGNQYWdlTGlua1xuICAgID5cbiAgICAgIHt7aXRlbX19XG4gICAgPC9idXR0b24+XG4gIDwvbGk+XG4gIDxsaSAqbmdJZj1cImFmdGVyRG90c1wiIGNQYWdlSXRlbT5cbiAgICA8YSBjUGFnZUxpbmsgZGlzYWJsZWQgcm9sZT1cInNlcGFyYXRvclwiPlxuICAgICAgLi4uXG4gICAgPC9hPlxuICA8L2xpPlxuICA8bGkgKm5nSWY9XCJhcnJvd3NcIiBjUGFnZUl0ZW0+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cInNldFBhZ2UoYWN0aXZlUGFnZSArIDEpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVQYWdlID09PSBwYWdlc1wiXG4gICAgICBhcmlhLWxhYmVsPVwiTmV4dCBwYWdlXCJcbiAgICAgIGNQYWdlTGlua1xuICAgID5cbiAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7bmV4dEJ1dHRvbn19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuICA8bGkgKm5nSWY9XCJkb3VibGVBcnJvd3NcIiBjUGFnZUl0ZW0+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cInNldFBhZ2UocGFnZXMpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVQYWdlID09PSBwYWdlc1wiXG4gICAgICBhcmlhLWxhYmVsPVwiTGFzdCBwYWdlXCJcbiAgICAgIGNQYWdlTGlua1xuICAgID5cbiAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7bGFzdEJ1dHRvbn19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuPC91bD5cbiJdfQ==
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXBhZ2luYXRpb24vc21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXBhZ2luYXRpb24vc21hcnQtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXJFLE1BQU0sT0FBTyx3QkFBd0I7SUFNbkM7UUFnQlEsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFaEM7OztXQUdHO1FBQ08scUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFOUU7Ozs7V0FJRztRQUNNLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFFaEM7Ozs7V0FJRztRQUNNLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBRXRDOzs7V0FHRztRQUNNLFNBQUksR0FBWSxJQUFJLENBQUM7UUFnQnRCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFlbkIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUUzQjs7OztXQUlHO1FBQ00sZ0JBQVcsR0FBK0IsR0FBRyxDQUFDO1FBQ3ZELHNEQUFzRDtRQUV0RDs7OztXQUlHO1FBQ00sZUFBVSxHQUErQixHQUFHLENBQUM7UUFDdEQscURBQXFEO1FBRXJEOzs7O1dBSUc7UUFDTSxlQUFVLEdBQStCLEdBQUcsQ0FBQztRQUV0RDs7OztXQUlHO1FBQ00sbUJBQWMsR0FBK0IsR0FBRyxDQUFDO1FBRTFEOzs7V0FHRztRQUNNLFVBQUssR0FBcUMsT0FBTyxDQUFDO1FBUTNEOzs7O1dBSUc7UUFFTSxTQUFJLEdBQUcsWUFBWSxDQUFDO0lBM0hiLENBQUM7SUFFakI7Ozs7T0FJRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUE4QkQ7Ozs7T0FJRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFJRDs7O09BR0c7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBc0RELElBQUksZUFBZTtRQUNqQixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUk7WUFDaEIsQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUN4QyxDQUFDLG1CQUFtQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7U0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDN0UsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsRUFBRTtZQUM1QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2Y7Z0JBQ0UsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQ3hCLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUNwQixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZjtnQkFDRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDeEIsRUFDRCxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FDRixDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVk7UUFDbEIsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs4R0F4TVUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsdWZDZHJDLDZtREE2REEsNENEakRZLGlCQUFpQix3RkFBRSxpQkFBaUIsd0RBQUUsT0FBTyxvRkFBRSxJQUFJLDZGQUFFLE9BQU87OzJGQUUzRCx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0Usb0JBQW9CLFlBRXBCLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQzswRUFnQm5FLFVBQVU7c0JBRGIsS0FBSztnQkFlSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBT0UsTUFBTTtzQkFBZCxLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQVFGLEtBQUs7c0JBRFIsS0FBSztnQkFnQkYsS0FBSztzQkFEUixLQUFLO2dCQWdCRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBUUcsSUFBSTtzQkFEWixXQUFXO3VCQUFDLFdBQVc7O3NCQUN2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5pbXBvcnQgeyBQYWdlSXRlbURpcmVjdGl2ZSwgUGFnZUxpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9wYWdpbmF0aW9uJztcbmltcG9ydCB7IElTbWFydFBhZ2luYXRpb24gfSBmcm9tICcuL3NtYXJ0LXBhZ2luYXRpb24udHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Mtc21hcnQtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdjU21hcnRQYWdpbmF0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1BhZ2VJdGVtRGlyZWN0aXZlLCBQYWdlTGlua0RpcmVjdGl2ZSwgTmdDbGFzcywgTmdJZiwgTmdGb3JPZl1cbn0pXG5leHBvcnQgY2xhc3MgU21hcnRQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgSVNtYXJ0UGFnaW5hdGlvbiB7XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2FjdGl2ZVBhZ2U6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcGFnZXM6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbGltaXQ6IE51bWJlcklucHV0O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgcGFnZSBudW1iZXIuIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAxXG4gICAqIEB0eXBlIG51bWJlclxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGFjdGl2ZVBhZ2UodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2FjdGl2ZVBhZ2UgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgYWN0aXZlUGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWN0aXZlUGFnZTogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogRXZlbnQgdHJpZ2dlcmVkIG9uIGFjdGl2ZVBhZ2UgY2hhbmdlLlxuICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8bnVtYmVyPlxuICAgKi9cbiAgQE91dHB1dCgpIGFjdGl2ZVBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIFNob3cvaGlkZSBhcnJvd3NcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKSBhcnJvd3M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTaG93IGRvdWJsZSBhcnJvd3MgYnV0dG9uc1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGRvdWJsZUFycm93czogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNob3cvaGlkZSBkb3RzLiBbZG9jc11cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkgZG90czogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gaXRlbXMgbnVtYmVyLiBbZG9jc11cbiAgICogQGRlZmF1bHQgNVxuICAgKiBAdHlwZSBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBsaW1pdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGltaXQgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbGltaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGltaXQ7XG4gIH1cblxuICBwcml2YXRlIF9saW1pdDogbnVtYmVyID0gNTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHBhZ2VzLiBbZG9jc11cbiAgICogQHR5cGUgbnVtYmVyXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcGFnZXModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3BhZ2VzID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHBhZ2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGFnZXM6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICdmaXJzdEJ1dHRvbicgYnV0dG9uLiBbZG9jc11cbiAgICogQGRlZmF1bHQgJyZsYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgZmlyc3RCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJ8KrJztcbiAgLy8gZmlyc3RCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJyZsYXF1bzsnXG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICdsYXN0QnV0dG9uJyBidXR0b24uIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAnJnJhcXVvJ1xuICAgKiB0b2RvIFRlbXBsYXRlUmVmXG4gICAqL1xuICBASW5wdXQoKSBsYXN0QnV0dG9uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiA9ICfCuyc7XG4gIC8vIGxhc3RCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJyZyYXF1bzsnXG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mICduZXh0QnV0dG9uJyBidXR0b24uIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAnJmxzYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgbmV4dEJ1dHRvbj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gPSAn4oC6JztcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgJ3ByZXZpb3VzQnV0dG9uJyBidXR0b24uIFtkb2NzXVxuICAgKiBAZGVmYXVsdCAnJnJzYXF1bydcbiAgICogdG9kbyBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgQElucHV0KCkgcHJldmlvdXNCdXR0b24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gJ+KAuSc7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYWxpZ25tZW50IG9mIHBhZ2luYXRpb24gY29tcG9uZW50cy5cbiAgICogQHZhbHVlcyAnc3RhcnQnLCAnY2VudGVyJywgJ2VuZCdcbiAgICovXG4gIEBJbnB1dCgpIGFsaWduPzogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcgfCAnJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIFNpemUgdGhlIGNvbXBvbmVudCBzbWFsbCBvciBsYXJnZS5cbiAgICogQHZhbHVlcyAnc20nLCAnbGcnXG4gICAqL1xuICBASW5wdXQoKSBzaXplPzogJ3NtJyB8ICdsZyc7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcm9sZSBmb3IgcGFnaW5hdGlvbi4gW2RvY3NdXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCAnbmF2aWdhdGlvbidcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgQElucHV0KCkgcm9sZSA9ICduYXZpZ2F0aW9uJztcblxuICBnZXQgcGFnaW5hdGlvbkNsYXNzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2luYXRpb246IHRydWUsXG4gICAgICBbYHBhZ2luYXRpb24tJHt0aGlzLnNpemV9YF06ICEhdGhpcy5zaXplLFxuICAgICAgW2BqdXN0aWZ5LWNvbnRlbnQtJHt0aGlzLmFsaWdufWBdOiAhIXRoaXMuYWxpZ25cbiAgICB9O1xuICB9XG5cbiAgZ2V0IG1heFByZXZJdGVtcygpIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcigodGhpcy5fbGltaXQgLSAxKSAvIDIpO1xuICB9XG5cbiAgZ2V0IG1heE5leHRJdGVtcygpIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKCh0aGlzLl9saW1pdCAtIDEpIC8gMik7XG4gIH1cblxuICBnZXQgcmFuZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVQYWdlICsgdGhpcy5tYXhOZXh0SXRlbXM7XG4gIH1cblxuICBnZXQgbGFzdEl0ZW0oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZSA+PSB0aGlzLl9wYWdlcyA/IHRoaXMuX3BhZ2VzIDogdGhpcy5yYW5nZSAtICh0aGlzLmFmdGVyRG90cyA/IDEgOiAwKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZExpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xpbWl0IC0gKHRoaXMuYWZ0ZXJEb3RzID8gMSA6IDApIC0gKHRoaXMuYmVmb3JlRG90cyA/IDEgOiAwKTtcbiAgfVxuXG4gIGdldCBpdGVtc0xpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzIDwgdGhpcy5jb21wdXRlZExpbWl0ID8gdGhpcy5fcGFnZXMgOiB0aGlzLmNvbXB1dGVkTGltaXQ7XG4gIH1cblxuICBnZXQgc2hvd0RvdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZG90cyAmJiB0aGlzLl9saW1pdCA+IDQgJiYgdGhpcy5fbGltaXQgPCB0aGlzLl9wYWdlcztcbiAgfVxuXG4gIGdldCBiZWZvcmVEb3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dEb3RzICYmIHRoaXMuYWN0aXZlUGFnZSA+IHRoaXMubWF4UHJldkl0ZW1zICsgMTtcbiAgfVxuXG4gIGdldCBhZnRlckRvdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0RvdHMgJiYgdGhpcy5hY3RpdmVQYWdlIDwgdGhpcy5fcGFnZXMgLSB0aGlzLm1heE5leHRJdGVtcztcbiAgfVxuXG4gIGdldCBpdGVtcygpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlIC0gdGhpcy5tYXhQcmV2SXRlbXMgPD0gMSkge1xuICAgICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICAgIHtcbiAgICAgICAgICBsZW5ndGg6IHRoaXMuaXRlbXNMaW1pdFxuICAgICAgICB9LFxuICAgICAgICAoX2l0ZW0sIGkpID0+IGkgKyAxXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbShcbiAgICAgICAge1xuICAgICAgICAgIGxlbmd0aDogdGhpcy5pdGVtc0xpbWl0XG4gICAgICAgIH0sXG4gICAgICAgIChfaXRlbSwgaSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxhc3RJdGVtIC0gaTtcbiAgICAgICAgfVxuICAgICAgKS5yZXZlcnNlKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0UGFnZShwYWdlOiBudW1iZXIpIHtcbiAgICBpZiAocGFnZSAhPT0gdGhpcy5hY3RpdmVQYWdlKSB7XG4gICAgICB0aGlzLmFjdGl2ZVBhZ2UgPSBwYWdlO1xuICAgICAgdGhpcy5hY3RpdmVQYWdlQ2hhbmdlLmVtaXQocGFnZSk7XG4gICAgfVxuICB9XG59XG4iLCI8dWwgW25nQ2xhc3NdPVwicGFnaW5hdGlvbkNsYXNzXCI+XG4gIDxsaSAqbmdJZj1cImRvdWJsZUFycm93c1wiIGNQYWdlSXRlbT5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0UGFnZSgxKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlUGFnZSA9PT0gMVwiXG4gICAgICBhcmlhLWxhYmVsPVwiRmlyc3QgcGFnZVwiXG4gICAgICBjUGFnZUxpbmtcbiAgICA+XG4gICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj57e2ZpcnN0QnV0dG9ufX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvbGk+XG4gIDxsaSAqbmdJZj1cImFycm93c1wiIGNQYWdlSXRlbT5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0UGFnZShhY3RpdmVQYWdlIC0gMSlcIlxuICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZVBhZ2UgPT09IDFcIlxuICAgICAgYXJpYS1sYWJlbD1cIlByZXZpb3VzIHBhZ2VcIlxuICAgICAgY1BhZ2VMaW5rXG4gICAgPlxuICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3twcmV2aW91c0J1dHRvbn19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuICA8bGkgKm5nSWY9XCJiZWZvcmVEb3RzXCIgY1BhZ2VJdGVtPlxuICAgIDxhIGNQYWdlTGluayBkaXNhYmxlZCByb2xlPVwic2VwYXJhdG9yXCI+XG4gICAgICAuLi5cbiAgICA8L2E+XG4gIDwvbGk+XG4gIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaVwiIFthY3RpdmVdPVwiYWN0aXZlUGFnZSA9PT0gaXRlbVwiIGNQYWdlSXRlbT5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0UGFnZShpdGVtKVwiXG4gICAgICBbdGl0bGVdPVwiKGFjdGl2ZVBhZ2UgPT09IGl0ZW0gPyAnQ3VycmVudCBwYWdlICcgOiAnR28gdG8gcGFnZSAnKSArIChpdGVtKS50b1N0cmluZygpXCJcbiAgICAgIGNQYWdlTGlua1xuICAgID5cbiAgICAgIHt7aXRlbX19XG4gICAgPC9idXR0b24+XG4gIDwvbGk+XG4gIDxsaSAqbmdJZj1cImFmdGVyRG90c1wiIGNQYWdlSXRlbT5cbiAgICA8YSBjUGFnZUxpbmsgZGlzYWJsZWQgcm9sZT1cInNlcGFyYXRvclwiPlxuICAgICAgLi4uXG4gICAgPC9hPlxuICA8L2xpPlxuICA8bGkgKm5nSWY9XCJhcnJvd3NcIiBjUGFnZUl0ZW0+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cInNldFBhZ2UoYWN0aXZlUGFnZSArIDEpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVQYWdlID09PSBwYWdlc1wiXG4gICAgICBhcmlhLWxhYmVsPVwiTmV4dCBwYWdlXCJcbiAgICAgIGNQYWdlTGlua1xuICAgID5cbiAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7bmV4dEJ1dHRvbn19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuICA8bGkgKm5nSWY9XCJkb3VibGVBcnJvd3NcIiBjUGFnZUl0ZW0+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cInNldFBhZ2UocGFnZXMpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVQYWdlID09PSBwYWdlc1wiXG4gICAgICBhcmlhLWxhYmVsPVwiTGFzdCBwYWdlXCJcbiAgICAgIGNQYWdlTGlua1xuICAgID5cbiAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7bGFzdEJ1dHRvbn19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuPC91bD5cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { SmartPaginationComponent } from './smart-pagination.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SmartPaginationModule {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: SmartPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.4", ngImport: i0, type: SmartPaginationModule, imports: [SmartPaginationComponent], exports: [SmartPaginationComponent] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: SmartPaginationModule }); }
|
|
8
|
+
}
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: SmartPaginationModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
exports: [SmartPaginationComponent],
|
|
13
|
+
imports: [SmartPaginationComponent]
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtcGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXBhZ2luYXRpb24vc21hcnQtcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFNeEUsTUFBTSxPQUFPLHFCQUFxQjs4R0FBckIscUJBQXFCOytHQUFyQixxQkFBcUIsWUFGdEIsd0JBQXdCLGFBRHhCLHdCQUF3QjsrR0FHdkIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU21hcnRQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTbWFydFBhZ2luYXRpb25Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbU21hcnRQYWdpbmF0aW9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTbWFydFBhZ2luYXRpb25Nb2R1bGUge1xufVxuIl19
|
|
@@ -437,10 +437,10 @@ export class SmartTableComponent {
|
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
439
|
}
|
|
440
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: SmartTableComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
441
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: SmartTableComponent, isStandalone: true, selector: "c-smart-table", inputs: { activePage: "activePage", cleaner: "cleaner", clickableRows: "clickableRows", columns: "columns", columnFilter: "columnFilter", columnFilterValue: "columnFilterValue", columnSorter: "columnSorter", footer: "footer", header: "header", items: "items", itemsPerPage: "itemsPerPage", itemsPerPageLabel: "itemsPerPageLabel", itemsPerPageOptions: "itemsPerPageOptions", itemsPerPageSelect: "itemsPerPageSelect", loading: "loading", noItemsLabel: "noItemsLabel", pagination: "pagination", selectable: "selectable", sorterValue: "sorterValue", tableFilter: "tableFilter", tableFilterLabel: "tableFilterLabel", tableFilterPlaceholder: "tableFilterPlaceholder", tableFilterValue: "tableFilterValue", tableBodyProps: "tableBodyProps", tableFootProps: "tableFootProps", tableHeadProps: "tableHeadProps", tableProps: "tableProps" }, outputs: { selectedItemsChange: "selectedItemsChange", sorterValueChange: "sorterValueChange", activePageChange: "activePageChange", itemsPerPageChange: "itemsPerPageChange", rowClick: "rowClick", columnFilterValueChange: "columnFilterValueChange", filteredItemsChange: "filteredItemsChange", tableFilterValueChange: "tableFilterValueChange" }, queries: [{ propertyName: "columnTemplates", predicate: TemplateIdDirective }], exportAs: ["cSmartTable"], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"itemsPerPageSelect || tableFilter || cleaner || templates['tableCustomHeader']\" class=\"row my-2 mx-0\">\n <div class=\"col-auto p-0\" *ngIf=\"tableFilter\">\n <ng-container *ngTemplateOutlet=\"tableFilterTemplate\"></ng-container>\n </div>\n <div class=\"col-auto p-0\" *ngIf=\"cleaner\">\n <ng-container *ngTemplateOutlet=\"tableCleanerTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"templates['tableCustomHeader'] || tableCustomHeaderTemplate\"></ng-container>\n\n <ng-template #tableFilterTemplate>\n <c-smart-table-filter\n (valueChange)=\"handleTableFilterChange($event)\"\n *ngIf=\"tableFilter\"\n [delay]=\"300\"\n [filterLabel]=\"tableFilterLabel\"\n [filterPlaceholder]=\"tableFilterPlaceholder\"\n [onEvent]=\"tableFilterEvent\"\n [value]=\"tableFilterState\"\n cFilterInput\n >\n </c-smart-table-filter>\n </ng-template>\n\n <ng-template #tableCleanerTemplate>\n <button\n (click)=\"clean($event)\"\n *ngIf=\"cleaner\"\n [disabled]=\"!isFiltered\"\n [ngClass]=\"{'ms-1': tableFilter}\"\n [tabindex]=\"0\"\n cButton\n variant=\"ghost\"\n color=\"transparent\"\n >\n <ng-container *ngTemplateOutlet=\"filterIconTemplate\"></ng-container>\n </button>\n </ng-template>\n\n <ng-template #tableCustomHeaderTemplate>\n <div class=\"col-auto p-0 ms-auto\">\n <ng-content select=\"[customHeader]\"></ng-content>\n </div>\n </ng-template>\n</div>\n<div class=\"position-relative\">\n <table [align]=\"tableProps?.align\"\n [borderColor]=\"tableProps?.borderColor\"\n [bordered]=\"tableProps?.bordered\"\n [borderless]=\"tableProps?.borderless\"\n [caption]=\"tableProps?.caption\"\n [color]=\"tableProps?.color\"\n [hover]=\"tableProps?.hover\"\n [responsive]=\"tableProps?.responsive\"\n [small]=\"tableProps?.small\"\n [striped]=\"tableProps?.striped\"\n [cHtmlAttr]=\"tableProps?.attributes ?? {}\"\n [cTableColor]=\"tableProps?.color\"\n cTable\n >\n <c-smart-table-head\n (columnFilterStateChange)=\"handleColumnFilterChange($event)\"\n (selectAllChange)=\"handleSelectAllChange($event)\"\n (sorterStateChange)=\"handleSortChange($event)\"\n *ngIf=\"header\"\n [columnFilterState]=\"columnFilterState\"\n [columnFilter]=\"columnFilter\"\n [columns]=\"columns\"\n [selectAll]=\"selectedAll\"\n [selectable]=\"selectable\"\n [columnSorter]=\"columnSorter\"\n [sorterValue]=\"sorterValue\"\n [cHtmlAttr]=\"tableHeadProps?.attributes ?? {}\"\n [cTableColor]=\"tableHeadProps?.color\"\n [cAlign]=\"tableHeadProps?.align\"\n [columnFilterTemplates]=\"columnFilterTemplates\"\n ></c-smart-table-head>\n\n <ng-container *ngTemplateOutlet=\"tbodyDefaultTemplate\"></ng-container>\n\n <c-smart-table-head\n (selectAllChange)=\"handleSelectAllChange($event)\"\n (sorterStateChange)=\"handleSortChange($event)\"\n *ngIf=\"footer\"\n [columns]=\"columns\"\n [selectAll]=\"selectedAll\"\n [selectable]=\"selectable\"\n [columnSorter]=\"columnSorter\"\n [sorterValue]=\"sorterValue\"\n [cHtmlAttr]=\"tableFootProps?.attributes ?? {}\"\n [cTableColor]=\"tableFootProps?.color\"\n [cAlign]=\"tableFootProps?.align\"\n component=\"tfoot\"\n [columnFilterTemplates]=\"columnFilterTemplates\"\n ></c-smart-table-head>\n\n </table>\n <c-element-cover\n *ngIf=\"loading\"\n [boundaries]=\"[\n { sides: ['top'], query: 'td' },\n { sides: ['bottom'], query: 'tbody' }\n ]\"\n ></c-element-cover>\n</div>\n<ng-template [ngIf]=\"pagination || itemsPerPageSelect\">\n <div class=\"row\">\n <div class=\"col\">\n <c-smart-pagination\n (activePageChange)=\"setActivePage($event)\"\n *ngIf=\"pagination && numberOfPages > 1\"\n [activePage]=\"activePage\"\n [pages]=\"numberOfPages\">\n </c-smart-pagination>\n </div>\n <div class=\"col-auto ms-auto\">\n <c-smart-table-items-per-page-selector\n (itemsPerPageChange)=\"handleItemsPerPageChange($event)\"\n *ngIf=\"itemsPerPageSelect\"\n [itemsPerPageLabel]=\"itemsPerPageLabel\"\n [itemsPerPageOptions]=\"itemsPerPageOptions\"\n [itemsPerPage]=\"itemsPerPage\"\n >\n </c-smart-table-items-per-page-selector>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tbodyDefaultTemplate>\n <tbody [cHtmlAttr]=\"tableBodyProps?.attributes ?? {}\"\n [cTableColor]=\"tableBodyProps?.color\"\n [cAlign]=\"tableBodyProps?.align\"\n >\n <ng-template ngFor let-item [ngForOf]=\"currentItems\" let-cnt=\"count\" let-i=\"index\" let-isEven=\"even\" let-isOdd=\"odd\">\n <tr [tabindex]=\"clickableRows ? 0 : -1\"\n [ngStyle]=\"{cursor: clickableRows ? 'pointer' : 'auto'}\"\n (click)=\"handleRowClick({$event, item, i})\"\n [cTableActive]=\"item._props?.active\"\n [cTableColor]=\"item._props?.color\"\n [cAlign]=\"item._props?.align\"\n >\n <td *ngIf=\"selectable\"\n [cTableActive]=\"item?.['_cellProps']?._all?.active\"\n [cTableColor]=\"item?.['_cellProps']?._all?.color\"\n [cAlign]=\"item?.['_cellProps']?._all?.align\"\n >\n <input (change)=\"handleRowChecked($event, item)\" [checked]=\"item._selected ?? false\" cFormCheckInput>\n </td>\n <ng-template ngFor let-columnName [ngForOf]=\"rawColumnNames\" let-i=\"index\">\n <ng-container\n *ngTemplateOutlet=\"templates['tableData'] || columnDefaultTemplate; context: {item, columnName, tdContent: item[columnName] }\"></ng-container>\n </ng-template>\n </tr>\n <ng-template [ngIf]=\"templates['tableDetails']\">\n <!-- <ng-container *ngTemplateOutlet=\"rowDetailsDefaultTemplate\"></ng-container>-->\n <tr>\n <td [colSpan]=\"colspan\" class=\"p-0\" tabindex=\"-1\" [ngStyle]=\"{borderBottomWidth: 0}\"></td>\n </tr>\n <tr class=\"p-0\">\n <td [colSpan]=\"colspan\" class=\"p-0\" [ngStyle]=\"{border: 0}\">\n <ng-container *ngTemplateOutlet=\"templates['tableDetails']; context: {item, index: i}\"></ng-container>\n </td>\n </tr>\n </ng-template>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"noItemsDefaultTemplate\"></ng-container>\n </tbody>\n</ng-template>\n\n<ng-template #columnDefaultTemplate let-item=\"item\" let-columnName=\"columnName\" let-tdContent=\"tdContent\">\n <td\n [cTableActive]=\"tableDataCellProps(item, columnName)?.['active']\"\n [cTableColor]=\"tableDataCellProps(item, columnName)?.color\"\n [cAlign]=\"tableDataCellProps(item, columnName)?.align\"\n [ngClass]=\"tableDataCellClasses(item, columnName)\"\n >\n {{tdContent}}\n </td>\n</ng-template>\n\n<!--<ng-template #rowDetailsDefaultTemplate let-item let-index>-->\n<!-- <tr><td [colSpan]=\"colspan\" class=\"p-0\" tabindex=\"-1\" [ngStyle]=\"{borderBottomWidth: 0}\"></td></tr>-->\n<!-- <tr class=\"p-0\">-->\n<!-- <td [colSpan]=\"colspan\" class=\"p-0\" [ngStyle]=\"{border: 0}\">-->\n<!-- <ng-container *ngTemplateOutlet=\"templates?.tableDetails\"></ng-container>-->\n<!-- </td>-->\n<!-- </tr>-->\n<!--</ng-template>-->\n\n<ng-template #noItemsDefaultTemplate>\n <tr *ngIf=\"!currentItems.length\">\n <td [colSpan]=\"colspan\" class=\"justify-content-center\">{{noItemsLabel}}</td>\n </tr>\n</ng-template>\n\n<!--todo: filterIconCustomTemplate-->\n<ng-template #filterIconTemplate>\n <svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\" pointer-events=\"none\" role=\"img\"\n class=\"icon icon-custom-size\" width=\"18\">\n <polygon\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"40 16 40 53.828 109.024 136 150.815 136 76.896 48 459.51 48 304 242.388 304 401.373 241.373 464 240 464 240 368 208 368 208 496 254.627 496 336 414.627 336 253.612 496 53.612 496 16 40 16\"\n class=\"ci-primary\">\n </polygon>\n <polygon\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"166.403 248.225 226.864 187.763 204.237 165.135 143.775 225.597 83.313 165.135 60.687 187.763 121.148 248.225 60.687 308.687 83.313 331.314 143.775 270.852 204.237 331.314 226.864 308.687 166.403 248.225\"\n class=\"ci-primary\">\n </polygon>\n </svg>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: AlignDirective, selector: "[cAlign]", inputs: ["cAlign"] }, { kind: "directive", type: ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "type", "variant"], exportAs: ["cButton"] }, { kind: "component", type: ElementCoverComponent, selector: "c-element-cover, [cElementCover]", inputs: ["boundaries", "opacity"] }, { kind: "directive", type: FilterInputDirective, selector: "[cFilterInput]", inputs: ["delay", "onEvent", "value"], outputs: ["valueChange"], exportAs: ["cFilterInput"] }, { kind: "directive", type: FormCheckInputDirective, selector: "input[cFormCheckInput]", inputs: ["type", "indeterminate", "valid"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "component", type: SmartPaginationComponent, selector: "c-smart-pagination", inputs: ["activePage", "arrows", "doubleArrows", "dots", "limit", "pages", "firstButton", "lastButton", "nextButton", "previousButton", "align", "size", "role"], outputs: ["activePageChange"], exportAs: ["cSmartPagination"] }, { kind: "component", type: SmartTableFilterComponent, selector: "c-smart-table-filter", inputs: ["filterLabel", "filterPlaceholder", "sizing"] }, { kind: "component", type: SmartTableHeadComponent, selector: "c-smart-table-head", inputs: ["columnFilter", "columnFilterState", "columnSorter", "component", "columns", "selectable", "selectAll", "sorterValue", "columnFilterTemplates"], outputs: ["columnFilterStateChange", "sorterStateChange", "selectAllChange"] }, { kind: "component", type: SmartTableItemsPerPageSelectorComponent, selector: "c-smart-table-items-per-page-selector", inputs: ["itemsPerPage", "itemsPerPageLabel", "itemsPerPageOptions"], outputs: ["itemsPerPageChange"] }, { kind: "directive", type: TableActiveDirective, selector: "[cTableActive]", inputs: ["cTableActive"] }, { kind: "directive", type: TableColorDirective, selector: "[cTableColor]", inputs: ["cTableColor"] }, { kind: "directive", type: TableDirective, selector: "table[cTable]", inputs: ["align", "borderColor", "bordered", "borderless", "caption", "color", "hover", "responsive", "small", "striped", "stripedColumns"] }] }); }
|
|
440
442
|
}
|
|
441
|
-
|
|
442
|
-
SmartTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SmartTableComponent, isStandalone: true, selector: "c-smart-table", inputs: { activePage: "activePage", cleaner: "cleaner", clickableRows: "clickableRows", columns: "columns", columnFilter: "columnFilter", columnFilterValue: "columnFilterValue", columnSorter: "columnSorter", footer: "footer", header: "header", items: "items", itemsPerPage: "itemsPerPage", itemsPerPageLabel: "itemsPerPageLabel", itemsPerPageOptions: "itemsPerPageOptions", itemsPerPageSelect: "itemsPerPageSelect", loading: "loading", noItemsLabel: "noItemsLabel", pagination: "pagination", selectable: "selectable", sorterValue: "sorterValue", tableFilter: "tableFilter", tableFilterLabel: "tableFilterLabel", tableFilterPlaceholder: "tableFilterPlaceholder", tableFilterValue: "tableFilterValue", tableBodyProps: "tableBodyProps", tableFootProps: "tableFootProps", tableHeadProps: "tableHeadProps", tableProps: "tableProps" }, outputs: { selectedItemsChange: "selectedItemsChange", sorterValueChange: "sorterValueChange", activePageChange: "activePageChange", itemsPerPageChange: "itemsPerPageChange", rowClick: "rowClick", columnFilterValueChange: "columnFilterValueChange", filteredItemsChange: "filteredItemsChange", tableFilterValueChange: "tableFilterValueChange" }, queries: [{ propertyName: "columnTemplates", predicate: TemplateIdDirective }], exportAs: ["cSmartTable"], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"itemsPerPageSelect || tableFilter || cleaner || templates['tableCustomHeader']\" class=\"row my-2 mx-0\">\n <div class=\"col-auto p-0\" *ngIf=\"tableFilter\">\n <ng-container *ngTemplateOutlet=\"tableFilterTemplate\"></ng-container>\n </div>\n <div class=\"col-auto p-0\" *ngIf=\"cleaner\">\n <ng-container *ngTemplateOutlet=\"tableCleanerTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"templates['tableCustomHeader'] || tableCustomHeaderTemplate\"></ng-container>\n\n <ng-template #tableFilterTemplate>\n <c-smart-table-filter\n (valueChange)=\"handleTableFilterChange($event)\"\n *ngIf=\"tableFilter\"\n [delay]=\"300\"\n [filterLabel]=\"tableFilterLabel\"\n [filterPlaceholder]=\"tableFilterPlaceholder\"\n [onEvent]=\"tableFilterEvent\"\n [value]=\"tableFilterState\"\n cFilterInput\n >\n </c-smart-table-filter>\n </ng-template>\n\n <ng-template #tableCleanerTemplate>\n <button\n (click)=\"clean($event)\"\n *ngIf=\"cleaner\"\n [disabled]=\"!isFiltered\"\n [ngClass]=\"{'ms-1': tableFilter}\"\n [tabindex]=\"0\"\n cButton\n variant=\"ghost\"\n color=\"transparent\"\n >\n <ng-container *ngTemplateOutlet=\"filterIconTemplate\"></ng-container>\n </button>\n </ng-template>\n\n <ng-template #tableCustomHeaderTemplate>\n <div class=\"col-auto p-0 ms-auto\">\n <ng-content select=\"[customHeader]\"></ng-content>\n </div>\n </ng-template>\n</div>\n<div class=\"position-relative\">\n <table [align]=\"tableProps?.align\"\n [borderColor]=\"tableProps?.borderColor\"\n [bordered]=\"tableProps?.bordered\"\n [borderless]=\"tableProps?.borderless\"\n [caption]=\"tableProps?.caption\"\n [color]=\"tableProps?.color\"\n [hover]=\"tableProps?.hover\"\n [responsive]=\"tableProps?.responsive\"\n [small]=\"tableProps?.small\"\n [striped]=\"tableProps?.striped\"\n [cHtmlAttr]=\"tableProps?.attributes ?? {}\"\n [cTableColor]=\"tableProps?.color\"\n cTable\n >\n <c-smart-table-head\n (columnFilterStateChange)=\"handleColumnFilterChange($event)\"\n (selectAllChange)=\"handleSelectAllChange($event)\"\n (sorterStateChange)=\"handleSortChange($event)\"\n *ngIf=\"header\"\n [columnFilterState]=\"columnFilterState\"\n [columnFilter]=\"columnFilter\"\n [columns]=\"columns\"\n [selectAll]=\"selectedAll\"\n [selectable]=\"selectable\"\n [columnSorter]=\"columnSorter\"\n [sorterValue]=\"sorterValue\"\n [cHtmlAttr]=\"tableHeadProps?.attributes ?? {}\"\n [cTableColor]=\"tableHeadProps?.color\"\n [cAlign]=\"tableHeadProps?.align\"\n [columnFilterTemplates]=\"columnFilterTemplates\"\n ></c-smart-table-head>\n\n <ng-container *ngTemplateOutlet=\"tbodyDefaultTemplate\"></ng-container>\n\n <c-smart-table-head\n (selectAllChange)=\"handleSelectAllChange($event)\"\n (sorterStateChange)=\"handleSortChange($event)\"\n *ngIf=\"footer\"\n [columns]=\"columns\"\n [selectAll]=\"selectedAll\"\n [selectable]=\"selectable\"\n [columnSorter]=\"columnSorter\"\n [sorterValue]=\"sorterValue\"\n [cHtmlAttr]=\"tableFootProps?.attributes ?? {}\"\n [cTableColor]=\"tableFootProps?.color\"\n [cAlign]=\"tableFootProps?.align\"\n component=\"tfoot\"\n [columnFilterTemplates]=\"columnFilterTemplates\"\n ></c-smart-table-head>\n\n </table>\n <c-element-cover\n *ngIf=\"loading\"\n [boundaries]=\"[\n { sides: ['top'], query: 'td' },\n { sides: ['bottom'], query: 'tbody' }\n ]\"\n ></c-element-cover>\n</div>\n<ng-template [ngIf]=\"pagination || itemsPerPageSelect\">\n <div class=\"row\">\n <div class=\"col\">\n <c-smart-pagination\n (activePageChange)=\"setActivePage($event)\"\n *ngIf=\"pagination && numberOfPages > 1\"\n [activePage]=\"activePage\"\n [pages]=\"numberOfPages\">\n </c-smart-pagination>\n </div>\n <div class=\"col-auto ms-auto\">\n <c-smart-table-items-per-page-selector\n (itemsPerPageChange)=\"handleItemsPerPageChange($event)\"\n *ngIf=\"itemsPerPageSelect\"\n [itemsPerPageLabel]=\"itemsPerPageLabel\"\n [itemsPerPageOptions]=\"itemsPerPageOptions\"\n [itemsPerPage]=\"itemsPerPage\"\n >\n </c-smart-table-items-per-page-selector>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tbodyDefaultTemplate>\n <tbody [cHtmlAttr]=\"tableBodyProps?.attributes ?? {}\"\n [cTableColor]=\"tableBodyProps?.color\"\n [cAlign]=\"tableBodyProps?.align\"\n >\n <ng-template ngFor let-item [ngForOf]=\"currentItems\" let-cnt=\"count\" let-i=\"index\" let-isEven=\"even\" let-isOdd=\"odd\">\n <tr [tabindex]=\"clickableRows ? 0 : -1\"\n [ngStyle]=\"{cursor: clickableRows ? 'pointer' : 'auto'}\"\n (click)=\"handleRowClick({$event, item, i})\"\n [cTableActive]=\"item._props?.active\"\n [cTableColor]=\"item._props?.color\"\n [cAlign]=\"item._props?.align\"\n >\n <td *ngIf=\"selectable\"\n [cTableActive]=\"item?.['_cellProps']?._all?.active\"\n [cTableColor]=\"item?.['_cellProps']?._all?.color\"\n [cAlign]=\"item?.['_cellProps']?._all?.align\"\n >\n <input (change)=\"handleRowChecked($event, item)\" [checked]=\"item._selected ?? false\" cFormCheckInput>\n </td>\n <ng-template ngFor let-columnName [ngForOf]=\"rawColumnNames\" let-i=\"index\">\n <ng-container\n *ngTemplateOutlet=\"templates['tableData'] || columnDefaultTemplate; context: {item, columnName, tdContent: item[columnName] }\"></ng-container>\n </ng-template>\n </tr>\n <ng-template [ngIf]=\"templates['tableDetails']\">\n <!-- <ng-container *ngTemplateOutlet=\"rowDetailsDefaultTemplate\"></ng-container>-->\n <tr>\n <td [colSpan]=\"colspan\" class=\"p-0\" tabindex=\"-1\" [ngStyle]=\"{borderBottomWidth: 0}\"></td>\n </tr>\n <tr class=\"p-0\">\n <td [colSpan]=\"colspan\" class=\"p-0\" [ngStyle]=\"{border: 0}\">\n <ng-container *ngTemplateOutlet=\"templates['tableDetails']; context: {item, index: i}\"></ng-container>\n </td>\n </tr>\n </ng-template>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"noItemsDefaultTemplate\"></ng-container>\n </tbody>\n</ng-template>\n\n<ng-template #columnDefaultTemplate let-item=\"item\" let-columnName=\"columnName\" let-tdContent=\"tdContent\">\n <td\n [cTableActive]=\"tableDataCellProps(item, columnName)?.['active']\"\n [cTableColor]=\"tableDataCellProps(item, columnName)?.color\"\n [cAlign]=\"tableDataCellProps(item, columnName)?.align\"\n [ngClass]=\"tableDataCellClasses(item, columnName)\"\n >\n {{tdContent}}\n </td>\n</ng-template>\n\n<!--<ng-template #rowDetailsDefaultTemplate let-item let-index>-->\n<!-- <tr><td [colSpan]=\"colspan\" class=\"p-0\" tabindex=\"-1\" [ngStyle]=\"{borderBottomWidth: 0}\"></td></tr>-->\n<!-- <tr class=\"p-0\">-->\n<!-- <td [colSpan]=\"colspan\" class=\"p-0\" [ngStyle]=\"{border: 0}\">-->\n<!-- <ng-container *ngTemplateOutlet=\"templates?.tableDetails\"></ng-container>-->\n<!-- </td>-->\n<!-- </tr>-->\n<!--</ng-template>-->\n\n<ng-template #noItemsDefaultTemplate>\n <tr *ngIf=\"!currentItems.length\">\n <td [colSpan]=\"colspan\" class=\"justify-content-center\">{{noItemsLabel}}</td>\n </tr>\n</ng-template>\n\n<!--todo: filterIconCustomTemplate-->\n<ng-template #filterIconTemplate>\n <svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\" pointer-events=\"none\" role=\"img\"\n class=\"icon icon-custom-size\" width=\"18\">\n <polygon\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"40 16 40 53.828 109.024 136 150.815 136 76.896 48 459.51 48 304 242.388 304 401.373 241.373 464 240 464 240 368 208 368 208 496 254.627 496 336 414.627 336 253.612 496 53.612 496 16 40 16\"\n class=\"ci-primary\">\n </polygon>\n <polygon\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"166.403 248.225 226.864 187.763 204.237 165.135 143.775 225.597 83.313 165.135 60.687 187.763 121.148 248.225 60.687 308.687 83.313 331.314 143.775 270.852 204.237 331.314 226.864 308.687 166.403 248.225\"\n class=\"ci-primary\">\n </polygon>\n </svg>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: AlignDirective, selector: "[cAlign]", inputs: ["cAlign"] }, { kind: "directive", type: ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "type", "variant"], exportAs: ["cButton"] }, { kind: "component", type: ElementCoverComponent, selector: "c-element-cover, [cElementCover]", inputs: ["boundaries", "opacity"] }, { kind: "directive", type: FilterInputDirective, selector: "[cFilterInput]", inputs: ["delay", "onEvent", "value"], outputs: ["valueChange"], exportAs: ["cFilterInput"] }, { kind: "directive", type: FormCheckInputDirective, selector: "input[cFormCheckInput]", inputs: ["type", "indeterminate", "valid"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "component", type: SmartPaginationComponent, selector: "c-smart-pagination", inputs: ["activePage", "arrows", "doubleArrows", "dots", "limit", "pages", "firstButton", "lastButton", "nextButton", "previousButton", "align", "size", "role"], outputs: ["activePageChange"], exportAs: ["cSmartPagination"] }, { kind: "component", type: SmartTableFilterComponent, selector: "c-smart-table-filter", inputs: ["filterLabel", "filterPlaceholder", "sizing"] }, { kind: "component", type: SmartTableHeadComponent, selector: "c-smart-table-head", inputs: ["columnFilter", "columnFilterState", "columnSorter", "component", "columns", "selectable", "selectAll", "sorterValue", "columnFilterTemplates"], outputs: ["columnFilterStateChange", "sorterStateChange", "selectAllChange"] }, { kind: "component", type: SmartTableItemsPerPageSelectorComponent, selector: "c-smart-table-items-per-page-selector", inputs: ["itemsPerPage", "itemsPerPageLabel", "itemsPerPageOptions"], outputs: ["itemsPerPageChange"] }, { kind: "directive", type: TableActiveDirective, selector: "[cTableActive]", inputs: ["cTableActive"] }, { kind: "directive", type: TableColorDirective, selector: "[cTableColor]", inputs: ["cTableColor"] }, { kind: "directive", type: TableDirective, selector: "table[cTable]", inputs: ["align", "borderColor", "bordered", "borderless", "caption", "color", "hover", "responsive", "small", "striped", "stripedColumns"] }] });
|
|
443
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SmartTableComponent, decorators: [{
|
|
443
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: SmartTableComponent, decorators: [{
|
|
444
444
|
type: Component,
|
|
445
445
|
args: [{ selector: 'c-smart-table', exportAs: 'cSmartTable', standalone: true, imports: [
|
|
446
446
|
NgIf,
|
|
@@ -536,4 +536,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
536
536
|
type: ContentChildren,
|
|
537
537
|
args: [TemplateIdDirective]
|
|
538
538
|
}] } });
|
|
539
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbWFydC10YWJsZS9zbWFydC10YWJsZS9zbWFydC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBTUwsTUFBTSxFQUtQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLG9CQUFvQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFpQi9HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFB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Z0JBWUYsVUFBVTtzQkFEYixLQUFLO2dCQVlGLFdBQVc7c0JBRGQsS0FBSztnQkFrQkYsV0FBVztzQkFEZCxLQUFLO2dCQWdCRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUdGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFlRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUUrQixlQUFlO3NCQUFwRCxlQUFlO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBJdGVyYWJsZURpZmZlcixcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBLZXlWYWx1ZURpZmZlcixcbiAgS2V5VmFsdWVEaWZmZXJzLFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmltcG9ydCB7IElUYWJsZSB9IGZyb20gJy4uLy4uL3RhYmxlL3RhYmxlLnR5cGUnO1xuaW1wb3J0IHtcbiAgSUNvbHVtbixcbiAgSUNvbHVtbkZpbHRlcixcbiAgSUNvbHVtbkZpbHRlclZhbHVlLFxuICBJSXRlbSxcbiAgSUl0ZW1JbnRlcm5hbCxcbiAgSVNtYXJ0VGFibGUsXG4gIElTb3J0ZXIsXG4gIElTb3J0ZXJWYWx1ZSxcbiAgSVRhYmxlRmlsdGVyLFxuICBJVGFibGVHcm91cFByb3BzLFxuICBJdGVtc1BlclBhZ2VTZWxlY3Rcbn0gZnJvbSAnLi4vc21hcnQtdGFibGUudHlwZSc7XG5cbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2J1dHRvbic7XG5pbXBvcnQgeyBGb3JtQ2hlY2tJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2Zvcm0nO1xuaW1wb3J0IHsgRWxlbWVudENvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudC1jb3Zlcic7XG5pbXBvcnQgeyBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZSwgVGVtcGxhdGVJZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBTbWFydFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9zbWFydC1wYWdpbmF0aW9uJztcbmltcG9ydCB7IFRhYmxlQWN0aXZlRGlyZWN0aXZlLCBUYWJsZUNvbG9yRGlyZWN0aXZlLCBUYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3RhYmxlJztcbmltcG9ydCB7IEFsaWduRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcbmltcG9ydCB7IFNtYXJ0VGFibGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zbWFydC10YWJsZS1maWx0ZXIvc21hcnQtdGFibGUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uL3NtYXJ0LXRhYmxlLWZpbHRlci9maWx0ZXItaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNtYXJ0VGFibGVIZWFkQ29tcG9uZW50IH0gZnJvbSAnLi4vc21hcnQtdGFibGUtaGVhZC9zbWFydC10YWJsZS1oZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBTbWFydFRhYmxlSXRlbXNQZXJQYWdlU2VsZWN0b3JDb21wb25lbnRcbn0gZnJvbSAnLi4vc21hcnQtdGFibGUtaXRlbXMtcGVyLXBhZ2Utc2VsZWN0b3Ivc21hcnQtdGFibGUtaXRlbXMtcGVyLXBhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1zbWFydC10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnY1NtYXJ0VGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE5nQ2xhc3MsXG4gICAgTmdGb3JPZixcbiAgICBOZ1N0eWxlLFxuICAgIEFsaWduRGlyZWN0aXZlLFxuICAgIEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBFbGVtZW50Q292ZXJDb21wb25lbnQsXG4gICAgRmlsdGVySW5wdXREaXJlY3RpdmUsXG4gICAgRm9ybUNoZWNrSW5wdXREaXJlY3RpdmUsXG4gICAgSHRtbEF0dHJpYnV0ZXNEaXJlY3RpdmUsXG4gICAgU21hcnRQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFNtYXJ0VGFibGVGaWx0ZXJDb21wb25lbnQsXG4gICAgU21hcnRUYWJsZUhlYWRDb21wb25lbnQsXG4gICAgU21hcnRUYWJsZUl0ZW1zUGVyUGFnZVNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFRhYmxlQWN0aXZlRGlyZWN0aXZlLFxuICAgIFRhYmxlQ29sb3JEaXJlY3RpdmUsXG4gICAgVGFibGVEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbWFydFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgSVNtYXJ0VGFibGUsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2FjdGl2ZVBhZ2U6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2xlYW5lcjogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2xpY2thYmxlUm93czogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZm9vdGVyOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oZWFkZXI6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2l0ZW1zUGVyUGFnZTogTnVtYmVySW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9wYWdpbmF0aW9uOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zZWxlY3RhYmxlOiBCb29sZWFuSW5wdXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpdGVyYWJsZURpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICBwcml2YXRlIGtleVZhbHVlRGlmZmVyczogS2V5VmFsdWVEaWZmZXJzXG4gICkge1xuICAgIHRoaXMuaXRlbXNEaWZmZXIgPSB0aGlzLml0ZXJhYmxlRGlmZmVycy5maW5kKHRoaXMuaXRlbXMpLmNyZWF0ZSgpO1xuICAgIHRoaXMuaXRlbXNGaWx0ZXJlZERpZmZlciA9IHRoaXMuaXRlcmFibGVEaWZmZXJzLmZpbmQodGhpcy5fY29sdW1uRmlsdGVyZWQpLmNyZWF0ZSgpO1xuICAgIHRoaXMuY29sdW1GaWx0ZXJWYWx1ZURpZmZlciA9IHRoaXMua2V5VmFsdWVEaWZmZXJzLmZpbmQodGhpcy5jb2x1bW5GaWx0ZXJWYWx1ZSkuY3JlYXRlKCk7XG4gICAgdGhpcy5zb3J0ZXJWYWx1ZURpZmZlciA9IHRoaXMua2V5VmFsdWVEaWZmZXJzLmZpbmQodGhpcy5zb3J0ZXJWYWx1ZSkuY3JlYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zRGlmZmVyOiBJdGVyYWJsZURpZmZlcjxhbnk+IHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtc0ZpbHRlcmVkRGlmZmVyOiBJdGVyYWJsZURpZmZlcjxhbnk+IHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2x1bUZpbHRlclZhbHVlRGlmZmVyOiBLZXlWYWx1ZURpZmZlcjxhbnksIGFueT4gfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IHNvcnRlclZhbHVlRGlmZmVyOiBLZXlWYWx1ZURpZmZlcjxhbnksIGFueT4gfCBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBhY3RpdmVQYWdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hY3RpdmVQYWdlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpIHx8IDE7XG4gICAgdGhpcy5hY3RpdmVQYWdlQ2hhbmdlLmVtaXQodGhpcy5fYWN0aXZlUGFnZSk7XG4gIH1cblxuICBnZXQgYWN0aXZlUGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWN0aXZlUGFnZSA9IDE7XG5cbiAgQElucHV0KClcbiAgc2V0IGNsZWFuZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jbGVhbmVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBjbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbGVhbmVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYW5lcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjbGlja2FibGVSb3dzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2xpY2thYmxlUm93cyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgY2xpY2thYmxlUm93cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpY2thYmxlUm93cztcbiAgfVxuXG4gIHByaXZhdGUgX2NsaWNrYWJsZVJvd3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgY29sdW1ucyh2YWx1ZTogKHN0cmluZyB8IElDb2x1bW4pW10pIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gdmFsdWUubWFwKGNvbHVtbiA9PiB0eXBlb2YgY29sdW1uID09PSAnc3RyaW5nJyA/IHsga2V5OiBjb2x1bW4gfSA6IHsgLi4uY29sdW1uIH0pO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKTogKHN0cmluZyB8IElDb2x1bW4pW10ge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zIHx8IHRoaXMucmF3Q29sdW1uTmFtZXM7XG4gIH1cblxuICBwcml2YXRlIF9jb2x1bW5zPzogKHN0cmluZyB8IElDb2x1bW4pW107XG5cbiAgQElucHV0KCkgY29sdW1uRmlsdGVyPzogYm9vbGVhbiB8IElDb2x1bW5GaWx0ZXI7XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbHVtbkZpbHRlclZhbHVlKHZhbHVlOiBJQ29sdW1uRmlsdGVyVmFsdWUpIHtcbiAgICBpZiAodGhpcy5jb2x1bUZpbHRlclZhbHVlRGlmZmVyKSB7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5jb2x1bUZpbHRlclZhbHVlRGlmZmVyLmRpZmYodmFsdWUpO1xuICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uRmlsdGVyVmFsdWUgPSB7IC4uLnZhbHVlIH07XG4gICAgICAgIHRoaXMuY29sdW1uRmlsdGVyVmFsdWVDaGFuZ2UuZW1pdCh7IC4uLnRoaXMuX2NvbHVtbkZpbHRlclZhbHVlIH0pO1xuICAgICAgICB0aGlzLnRhYmxlRmlsdGVyZWQ7IC8vIGVtaXRzIHRhYmxlRmlsdGVyZWQgY2hhbmdlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvbHVtbkZpbHRlclZhbHVlKCk6IElDb2x1bW5GaWx0ZXJWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbkZpbHRlclZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29sdW1uRmlsdGVyVmFsdWU6IElDb2x1bW5GaWx0ZXJWYWx1ZSA9IHt9O1xuXG4gIEBJbnB1dCgpIGNvbHVtblNvcnRlcj86IGJvb2xlYW4gfCBJU29ydGVyO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBmb290ZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9mb290ZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGZvb3RlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9vdGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9vdGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IGhlYWRlcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hlYWRlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgaGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oZWFkZXI7XG4gIH1cblxuICBwcml2YXRlIF9oZWFkZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgaXRlbXModmFsdWU6IElJdGVtW10pIHtcbiAgICBpZiAodGhpcy5pdGVtc0RpZmZlcikge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuaXRlbXNEaWZmZXIuZGlmZih2YWx1ZSk7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLl9pdGVtcyA9IHRoaXMuc2V0SXRlbXModmFsdWUpIGFzIEFycmF5PFR5cGU8SUl0ZW1JbnRlcm5hbD4+O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBpdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICBwcml2YXRlIF9pdGVtczogSUl0ZW1JbnRlcm5hbFtdID0gW10gYXMgQXJyYXk8VHlwZTxJSXRlbUludGVybmFsPj47XG5cbiAgQElucHV0KClcbiAgc2V0IGl0ZW1zUGVyUGFnZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5faXRlbXNQZXJQYWdlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGl0ZW1zUGVyUGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2U7XG4gIH1cblxuICBwcml2YXRlIF9pdGVtc1BlclBhZ2U6IG51bWJlciA9IDEwO1xuXG4gIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZUxhYmVsOiBzdHJpbmcgPSAnSXRlbXMgcGVyIHBhZ2U6JztcbiAgQElucHV0KCkgaXRlbXNQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gPSBbNSwgMTAsIDIwLCA1MF07XG4gIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZVNlbGVjdD86IGJvb2xlYW4gfCBJdGVtc1BlclBhZ2VTZWxlY3Q7XG4gIEBJbnB1dCgpIGxvYWRpbmc/OiBib29sZWFuO1xuICBASW5wdXQoKSBub0l0ZW1zTGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gPSAnTm8gaXRlbXMgZm91bmQnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBwYWdpbmF0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcGFnaW5hdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgcGFnaW5hdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnaW5hdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgX3BhZ2luYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgc2VsZWN0YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3NlbGVjdGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGU7XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IHNvcnRlclZhbHVlKHZhbHVlOiBJU29ydGVyVmFsdWUpIHtcbiAgICBpZiAodGhpcy5zb3J0ZXJWYWx1ZURpZmZlcikge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuc29ydGVyVmFsdWVEaWZmZXIuZGlmZih2YWx1ZSk7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLl9zb3J0ZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNvcnRlclZhbHVlQ2hhbmdlLmVtaXQoeyAuLi52YWx1ZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgc29ydGVyVmFsdWUoKTogSVNvcnRlclZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydGVyVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9zb3J0ZXJWYWx1ZTogSVNvcnRlclZhbHVlID0ge307XG5cbiAgQElucHV0KClcbiAgc2V0IHRhYmxlRmlsdGVyKGZpbHRlcikge1xuICAgIHRoaXMuX3RhYmxlRmlsdGVyID0gZmlsdGVyO1xuICAgIGlmICh0eXBlb2YgZmlsdGVyID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhpcy50YWJsZUZpbHRlckxhYmVsID0gdHlwZW9mIGZpbHRlci5sYWJlbCA9PT0gJ3N0cmluZycgPyBmaWx0ZXIubGFiZWwgOiB0aGlzLnRhYmxlRmlsdGVyTGFiZWw7XG4gICAgICB0aGlzLnRhYmxlRmlsdGVyUGxhY2Vob2xkZXIgPSB0eXBlb2YgZmlsdGVyLnBsYWNlaG9sZGVyID09PSAnc3RyaW5nJyA/IGZpbHRlci5wbGFjZWhvbGRlciA6IHRoaXMudGFibGVGaWx0ZXJQbGFjZWhvbGRlcjtcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJWYWx1ZSA9IHR5cGVvZiBmaWx0ZXIudmFsdWUgPT09ICdzdHJpbmcnID8gZmlsdGVyLnZhbHVlIDogdGhpcy50YWJsZUZpbHRlclZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0YWJsZUZpbHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fdGFibGVGaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIF90YWJsZUZpbHRlcj86IGJvb2xlYW4gfCBJVGFibGVGaWx0ZXI7XG5cbiAgQElucHV0KCkgdGFibGVGaWx0ZXJMYWJlbCA9ICdGaWx0ZXI6JztcbiAgQElucHV0KCkgdGFibGVGaWx0ZXJQbGFjZWhvbGRlciA9ICd0eXBlIHN0cmluZy4uLic7XG5cbiAgQElucHV0KClcbiAgc2V0IHRhYmxlRmlsdGVyVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLl90YWJsZUZpbHRlclZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5fdGFibGVGaWx0ZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy50YWJsZUZpbHRlclZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgdGhpcy50YWJsZUZpbHRlcmVkOyAvLyBlbWl0cyB0YWJsZUZpbHRlcmVkIGNoYW5nZVxuICAgIH1cbiAgfVxuXG4gIGdldCB0YWJsZUZpbHRlclZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlRmlsdGVyVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF90YWJsZUZpbHRlclZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSB0YWJsZUJvZHlQcm9wcz86IElUYWJsZUdyb3VwUHJvcHMgPSB7fTtcbiAgQElucHV0KCkgdGFibGVGb290UHJvcHM/OiBJVGFibGVHcm91cFByb3BzID0ge307XG4gIEBJbnB1dCgpIHRhYmxlSGVhZFByb3BzPzogSVRhYmxlR3JvdXBQcm9wcyA9IHt9O1xuICBASW5wdXQoKSB0YWJsZVByb3BzPzogSVRhYmxlID0ge307XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBzb3J0ZXJWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGFjdGl2ZVBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBpdGVtc1BlclBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByb3dDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNvbHVtbkZpbHRlclZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZmlsdGVyZWRJdGVtc0NoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHRhYmxlRmlsdGVyVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZUlkRGlyZWN0aXZlKSBjb2x1bW5UZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8VGVtcGxhdGVJZERpcmVjdGl2ZT47XG4gIHRlbXBsYXRlczogeyBba2V5OiBzdHJpbmddOiAoVGVtcGxhdGVSZWY8YW55PiB8IG51bGwpIH0gPSB7IHRhYmxlRGV0YWlsczogbnVsbCwgdGFibGVEYXRhOiBudWxsIH07XG4gIGNvbHVtbkZpbHRlclRlbXBsYXRlczogeyBba2V5OiBzdHJpbmddOiAoVGVtcGxhdGVSZWY8YW55PiB8IG51bGwpIH0gPSB7fTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5UZW1wbGF0ZXMuZm9yRWFjaCgoY2hpbGQ6IFRlbXBsYXRlSWREaXJlY3RpdmUpID0+IHtcbiAgICAgIGlmIChjaGlsZC5pZC5zdGFydHNXaXRoKCdjb2x1bW5GaWx0ZXJfJykpIHtcbiAgICAgICAgdGhpcy5jb2x1bW5GaWx0ZXJUZW1wbGF0ZXNbY2hpbGQuaWRdID0gY2hpbGQudGVtcGxhdGVSZWY7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMudGVtcGxhdGVzW2NoaWxkLmlkXSA9IGNoaWxkLnRlbXBsYXRlUmVmO1xuICAgIH0pO1xuICAgIHRoaXMuY29sdW1uRmlsdGVyVGVtcGxhdGVzID0geyAuLi50aGlzLmNvbHVtbkZpbHRlclRlbXBsYXRlcyB9O1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkQWxsKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uX3NlbGVjdGVkID09PSB0cnVlKTtcbiAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID09PSAwID8gZmFsc2UgOiBzZWxlY3RlZC5sZW5ndGggPT09IHRoaXMuaXRlbXMubGVuZ3RoID8gdHJ1ZSA6ICdpbmRldGVybWluYXRlJztcbiAgICAvLyByZXR1cm4gdGhpcy5fc2VsZWN0ZWRBbGw7XG4gIH1cblxuICBzZXQgc2VsZWN0ZWRBbGwodmFsdWUpIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLl9zZWxlY3RlZCA9PT0gdHJ1ZSk7XG4gICAgdGhpcy5fc2VsZWN0ZWRBbGwgPSBzZWxlY3RlZC5sZW5ndGggPT09IDAgPyBmYWxzZSA6IHNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5pdGVtcy5sZW5ndGggPyB0cnVlIDogJ2luZGV0ZXJtaW5hdGUnO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtc0NoYW5nZS5lbWl0KHNlbGVjdGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkQWxsOiAoYm9vbGVhbiB8IHN0cmluZykgPSBmYWxzZTtcblxuICBnZXQgdGFibGVGaWx0ZXJTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUZpbHRlclZhbHVlID8gdGhpcy50YWJsZUZpbHRlclZhbHVlIDogJyc7XG4gIH1cblxuICBnZXQgY29sdW1uRmlsdGVyU3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uRmlsdGVyVmFsdWUgPyB0aGlzLmNvbHVtbkZpbHRlclZhbHVlIDoge307XG4gIH1cblxuICBnZXQgbnVtYmVyT2ZQYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2UgPyBNYXRoLmNlaWwodGhpcy5zb3J0ZWRJdGVtcy5sZW5ndGggLyB0aGlzLl9pdGVtc1BlclBhZ2UpIDogMTtcbiAgfVxuXG4gIGdldCBjb2xzcGFuKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGUgPyB0aGlzLnJhd0NvbHVtbk5hbWVzLmxlbmd0aCArIDEgOiB0aGlzLnJhd0NvbHVtbk5hbWVzLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBmaXJzdEl0ZW1PbkFjdGl2ZVBhZ2VJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQYWdlID8gKHRoaXMuX2FjdGl2ZVBhZ2UgLSAxKSAqIHRoaXMuX2l0ZW1zUGVyUGFnZSA6IDA7XG4gIH1cblxuICBnZXQgaXRlbXNPbkFjdGl2ZVBhZ2UoKTogSUl0ZW1JbnRlcm5hbFtdIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRJdGVtcy5zbGljZShcbiAgICAgIHRoaXMuZmlyc3RJdGVtT25BY3RpdmVQYWdlSW5kZXgsXG4gICAgICB0aGlzLmZpcnN0SXRlbU9uQWN0aXZlUGFnZUluZGV4ICsgdGhpcy5faXRlbXNQZXJQYWdlXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50SXRlbXMoKTogSUl0ZW1JbnRlcm5hbFtdIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlUGFnZSA/IHRoaXMuaXRlbXNPbkFjdGl2ZVBhZ2UgOiB0aGlzLnNvcnRlZEl0ZW1zID8/IFtdO1xuICAgIC8vIHJldHVybiB0aGlzLml0ZW1zID8/IFtdO1xuICB9XG5cbiAgZ2V0IGdlbkNvbHMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2l0ZW1zID8gdGhpcy5faXRlbXNbMF0gPz8ge30gOiB7fSkuZmlsdGVyKChlbCkgPT4gZWwuY2hhckF0KDApICE9PSAnXycpO1xuICB9XG5cbiAgZ2V0IHJhd0NvbHVtbk5hbWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zID8gdGhpcy5fY29sdW1ucy5tYXAoY29sdW1uID0+IHR5cGVvZiBjb2x1bW4gPT09ICdvYmplY3QnID8gY29sdW1uLmtleSA6IGNvbHVtbilcbiAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZ2VuQ29scztcbiAgfVxuXG4gIGdldCBpdGVtc0RhdGFDb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLnJhd0NvbHVtbk5hbWVzLmZpbHRlcigobmFtZSkgPT4gdGhpcy5nZW5Db2xzLmluY2x1ZGVzKG5hbWUpKTtcbiAgfVxuXG4gIGdldCBzb3J0ZWRJdGVtcygpOiBJSXRlbUludGVybmFsW10ge1xuICAgIGNvbnN0IGNvbHVtbktleSA9IHRoaXMuc29ydGVyVmFsdWUuY29sdW1uO1xuICAgIGlmIChcbiAgICAgICFjb2x1bW5LZXkgfHxcbiAgICAgICF0aGlzLml0ZW1zRGF0YUNvbHVtbnMuaW5jbHVkZXMoY29sdW1uS2V5KSB8fFxuICAgICAgKHRoaXMuY29sdW1uU29ydGVyICYmXG4gICAgICAgIHR5cGVvZiB0aGlzLmNvbHVtblNvcnRlciA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgdGhpcy5jb2x1bW5Tb3J0ZXIuZXh0ZXJuYWwpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJsZUZpbHRlcmVkO1xuICAgIH1cbiAgICBjb25zdCB0YWJsZUZpbHRlcmVkID0gWy4uLnRoaXMudGFibGVGaWx0ZXJlZF07XG5cbiAgICAvLyBpZiB2YWx1ZXMgaW4gY29sdW1uIGFyZSB0byBiZSBzb3J0ZWQgYnkgbnVtZXJpYyB2YWx1ZSB0aGV5IGFsbCBoYXZlIHRvIGJlIGEgdHlwZSBvZiBudW1iZXJcbiAgICBjb25zdCBmbGlwID0gdGhpcy5zb3J0ZXJWYWx1ZS5zdGF0ZSA9PT0gJ2FzYycgPyAxIDogdGhpcy5zb3J0ZXJWYWx1ZS5zdGF0ZSA9PT0gJ2Rlc2MnID8gLTEgOiAwO1xuXG4gICAgaWYgKGZsaXAgPT09IDApIHtcbiAgICAgIHJldHVybiB0YWJsZUZpbHRlcmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRDb2x1bW4gPSB0aGlzLmNvbHVtbnMuZmluZCgoY29sdW1uKSA9PiB0eXBlb2YgY29sdW1uID09PSAnb2JqZWN0JyAmJiBjb2x1bW4ua2V5ID09PSBjb2x1bW5LZXkpO1xuICAgIGlmICh0eXBlb2YgY3VycmVudENvbHVtbiA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGN1cnJlbnRDb2x1bW4uc29ydGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBzb3J0ZWQgPSB0YWJsZUZpbHRlcmVkLnNsaWNlKCkuc29ydChjdXJyZW50Q29sdW1uLnNvcnRlcik7XG4gICAgICByZXR1cm4gZmxpcCA8IDAgPyBzb3J0ZWQucmV2ZXJzZSgpIDogc29ydGVkO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBhcmVGbiA9IChpdGVtMTogeyBbeDogc3RyaW5nXTogYW55OyB9LCBpdGVtMjogeyBbeDogc3RyaW5nXTogYW55OyB9KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTEgPSBpdGVtMVtjb2x1bW5LZXldO1xuICAgICAgY29uc3QgdmFsdWUyID0gaXRlbTJbY29sdW1uS2V5XTtcbiAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdmFsdWUxID09PSAnbnVtYmVyJyA/IHZhbHVlMSA6IFN0cmluZyh2YWx1ZTEpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBiID0gdHlwZW9mIHZhbHVlMiA9PT0gJ251bWJlcicgPyB2YWx1ZTIgOiBTdHJpbmcodmFsdWUyKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIGEgPiBiID8gMSAqIGZsaXAgOiBiID4gYSA/IC0xICogZmxpcCA6IDA7XG4gICAgfTtcblxuICAgIHJldHVybiB0YWJsZUZpbHRlcmVkLnNsaWNlKCkuc29ydChjb21wYXJlRm4pO1xuICB9XG5cbiAgZ2V0IHRhYmxlRmlsdGVyRXZlbnQoKTogJ2NoYW5nZScgfCAnaW5wdXQnIHtcbiAgICByZXR1cm4gKHR5cGVvZiB0aGlzLnRhYmxlRmlsdGVyID09PSAnb2JqZWN0JyAmJiB0aGlzLnRhYmxlRmlsdGVyLmxhenkpID8gJ2NoYW5nZScgOiAnaW5wdXQnO1xuICB9O1xuXG4gIHByaXZhdGUgX2NvbHVtbkZpbHRlcmVkOiBJSXRlbUludGVybmFsW10gPSBbXTtcblxuICBnZXQgY29sdW1uRmlsdGVyZWQoKTogSUl0ZW1JbnRlcm5hbFtdIHtcbiAgICBsZXQgX2l0ZW1zID0gdGhpcy5faXRlbXM7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb2x1bW5GaWx0ZXIgJiZcbiAgICAgIHR5cGVvZiB0aGlzLmNvbHVtbkZpbHRlciA9PT0gJ29iamVjdCcgJiZcbiAgICAgIHRoaXMuY29sdW1uRmlsdGVyLmV4dGVybmFsXG4gICAgKSB7XG4gICAgICB0aGlzLl9jb2x1bW5GaWx0ZXJlZCA9IF9pdGVtcztcbiAgICAgIHJldHVybiBfaXRlbXM7XG4gICAgfVxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuY29sdW1uRmlsdGVyU3RhdGUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICBfaXRlbXMgPSBfaXRlbXMuZmlsdGVyKChpdGVtKSA9PiB2YWx1ZShpdGVtW2tleV0pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjdXJyZW50Q29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbmQoY29sdW1uID0+IHR5cGVvZiBjb2x1bW4gPT09ICdvYmplY3QnICYmIGNvbHVtbi5rZXkgPT09IGtleSk7XG4gICAgICBpZiAodHlwZW9mIGN1cnJlbnRDb2x1bW4gPT09ICdvYmplY3QnICYmIHR5cGVvZiBjdXJyZW50Q29sdW1uLmZpbHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBfaXRlbXMgPSBfaXRlbXMuZmlsdGVyKChpdGVtKSA9PiAodHlwZW9mIGN1cnJlbnRDb2x1bW4uZmlsdGVyID09PSAnZnVuY3Rpb24nICYmIGN1cnJlbnRDb2x1bW4uZmlsdGVyKGl0ZW0sIHZhbHVlKSkgPz8gIXZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2x1bW5GaWx0ZXIgPSBTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoY29sdW1uRmlsdGVyICYmIHRoaXMuaXRlbXNEYXRhQ29sdW1ucy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgIF9pdGVtcyA9IF9pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtW2tleV0pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY29sdW1uRmlsdGVyKSk7XG4gICAgICB9XG5cbiAgICB9KTtcbiAgICB0aGlzLl9jb2x1bW5GaWx0ZXJlZCA9IF9pdGVtcztcbiAgICByZXR1cm4gX2l0ZW1zO1xuICB9XG5cbiAgZ2V0IHRhYmxlRmlsdGVyZWQoKTogSUl0ZW1JbnRlcm5hbFtdIHtcbiAgICBsZXQgaXRlbXMgPSB0aGlzLmNvbHVtbkZpbHRlcmVkO1xuICAgIGlmIChcbiAgICAgICF0aGlzLnRhYmxlRmlsdGVyU3RhdGUgfHxcbiAgICAgICh0aGlzLnRhYmxlRmlsdGVyICYmIHR5cGVvZiB0aGlzLnRhYmxlRmlsdGVyID09PSAnb2JqZWN0JyAmJiB0aGlzLnRhYmxlRmlsdGVyLmV4dGVybmFsKVxuICAgICkge1xuICAgICAgaWYgKHRoaXMuaXRlbXNGaWx0ZXJlZERpZmZlcikge1xuICAgICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5pdGVtc0ZpbHRlcmVkRGlmZmVyLmRpZmYoaXRlbXMpO1xuICAgICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWRJdGVtc0NoYW5nZS5lbWl0KGl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnRhYmxlRmlsdGVyU3RhdGUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCB2YWx1ZUNvbnRhaW5GaWx0ZXIgPSAodmFsOiBhbnkpID0+IFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW06IHsgW3g6IHN0cmluZ106IGFueTsgfSkgPT4ge1xuICAgICAgcmV0dXJuICEhdGhpcy5pdGVtc0RhdGFDb2x1bW5zLmZpbmQoKGtleSkgPT4gdmFsdWVDb250YWluRmlsdGVyKGl0ZW1ba2V5XSkpO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLml0ZW1zRmlsdGVyZWREaWZmZXIpIHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLml0ZW1zRmlsdGVyZWREaWZmZXIuZGlmZihpdGVtcyk7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXNDaGFuZ2UuZW1pdChpdGVtcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIGdldCBpc0ZpbHRlcmVkKCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlRmlsdGVyU3RhdGUgfHwgdGhpcy5zb3J0ZXJWYWx1ZT8uY29sdW1uIHx8IE9iamVjdC52YWx1ZXModGhpcy5jb2x1bW5GaWx0ZXJTdGF0ZSkuam9pbignJyk7XG4gIH1cblxuICBwcml2YXRlIHNldEl0ZW1zKGl0ZW1zOiBJSXRlbVtdKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBJSXRlbSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICByZXR1cm4geyAuLi5pdGVtLCBfaWQ6IGluZGV4IH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIDxJSXRlbUludGVybmFsPltdO1xuICB9XG5cbiAgaGFuZGxlU29ydENoYW5nZSgkZXZlbnQ6IHsgY29sdW1uS2V5OiBzdHJpbmc7IGluZGV4OiBudW1iZXI7IH0pIHtcbiAgICB0aGlzLmhhbmRsZVNvcnRlckNoYW5nZSgkZXZlbnQuY29sdW1uS2V5LCAkZXZlbnQuaW5kZXgpO1xuICB9XG5cbiAgaXNTb3J0YWJsZShpOiBudW1iZXIpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RhdGFDb2x1bW4gPSB0aGlzLml0ZW1zRGF0YUNvbHVtbnMuaW5jbHVkZXModGhpcy5yYXdDb2x1bW5OYW1lc1tpXSk7XG4gICAgbGV0IGNvbHVtbjtcbiAgICBpZiAodGhpcy5jb2x1bW5zKSB7XG4gICAgICBjb2x1bW4gPSB0aGlzLmNvbHVtbnNbaV07XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbHVtblNvcnRlciAmJlxuICAgICAgKCF0aGlzLmNvbHVtbnMgfHxcbiAgICAgICAgdHlwZW9mIGNvbHVtbiAhPT0gJ29iamVjdCcgfHxcbiAgICAgICAgKHR5cGVvZiBjb2x1bW4gPT09ICdvYmplY3QnICYmICh0eXBlb2YgY29sdW1uLnNvcnRlciA9PT0gJ3VuZGVmaW5lZCcgfHwgY29sdW1uLnNvcnRlcikpXG4gICAgICApICYmIGlzRGF0YUNvbHVtblxuICAgICk7XG4gIH1cblxuICBoYW5kbGVTb3J0ZXJDaGFuZ2UoY29sdW1uOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTb3J0YWJsZShpbmRleCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy9pZiBjb2x1bW4gY2hhbmdlZCBvciBzb3J0IHdhcyBkZXNjZW5kaW5nIGNoYW5nZSBhc2MgdG8gdHJ1ZVxuICAgIGNvbnN0IHN0YXRlID0geyAuLi50aGlzLnNvcnRlclZhbHVlIH07XG5cbiAgICBpZiAoc3RhdGUuY29sdW1uID09PSBjb2x1bW4pIHtcbiAgICAgIGlmIChzdGF0ZS5zdGF0ZSA9PT0gMCkge1xuICAgICAgICBzdGF0ZS5zdGF0ZSA9ICdhc2MnO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZS5zdGF0ZSA9PT0gJ2FzYycpIHtcbiAgICAgICAgc3RhdGUuc3RhdGUgPSAnZGVzYyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29sdW1uU29ydGVyID09PSAnb2JqZWN0JyAmJiAhdGhpcy5jb2x1bW5Tb3J0ZXIucmVzZXRhYmxlKSB7XG4gICAgICAgICAgc3RhdGUuc3RhdGUgPSAnYXNjJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZS5zdGF0ZSA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUuY29sdW1uID0gY29sdW1uO1xuICAgICAgc3RhdGUuc3RhdGUgPSAnYXNjJztcbiAgICB9XG4gICAgdGhpcy5zb3J0ZXJWYWx1ZSA9IHsgLi4uc3RhdGUgfTtcbiAgfVxuXG4gIHNldEFjdGl2ZVBhZ2UoJGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLmFjdGl2ZVBhZ2UgPSAkZXZlbnQ7XG4gIH1cblxuICBoYW5kbGVDb2x1bW5GaWx0ZXJDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB7IGNvbHVtbiwgdmFsdWUsIHR5cGUgfSA9ICRldmVudDtcbiAgICB0aGlzLnNldEFjdGl2ZVBhZ2UoMSk7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJWYWx1ZSA9IHsgLi4udGhpcy5jb2x1bW5GaWx0ZXJWYWx1ZSwgW2Ake2NvbHVtbn1gXTogdmFsdWUgfTtcbiAgfVxuXG4gIGhhbmRsZVRhYmxlRmlsdGVyQ2hhbmdlKCRldmVudDogeyB2YWx1ZTogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IH0pIHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlIH0gPSAkZXZlbnQ7XG4gICAgY29uc3QgaXNMYXp5ID0gdHlwZW9mIHRoaXMudGFibGVGaWx0ZXIgPT09ICdvYmplY3QnICYmIHRoaXMudGFibGVGaWx0ZXIubGF6eSA9PT0gdHJ1ZTtcbiAgICBpZiAoKChpc0xhenkgJiYgdHlwZSA9PT0gJ2lucHV0JykgfHwgKCFpc0xhenkgJiYgdHlwZSA9PT0gJ2NoYW5nZScpKSAmJiB2YWx1ZS5sZW5ndGggIT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZXRBY3RpdmVQYWdlKDEpO1xuICAgIHRoaXMudGFibGVGaWx0ZXJWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgY2xlYW4oJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJWYWx1ZSA9IHt9O1xuICAgIHRoaXMudGFibGVGaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIHRoaXMuc29ydGVyVmFsdWUgPSB7fTtcbiAgICB0aGlzLnRhYmxlRmlsdGVyZWQ7IC8vZW1pdHMgdGFibGVGaWx0ZXJlZCBjaGFuZ2VcbiAgfVxuXG4gIGhhbmRsZUl0ZW1zUGVyUGFnZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9pdGVtc1BlclBhZ2UpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlUGFnZSgxKTtcbiAgICAgIHRoaXMuX2l0ZW1zUGVyUGFnZSA9IHZhbHVlO1xuICAgICAgdGhpcy5pdGVtc1BlclBhZ2VDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlUm93Q2hlY2tlZCgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBJSXRlbUludGVybmFsKSB7XG4gICAgaXRlbS5fc2VsZWN0ZWQgPSAoJGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uX3NlbGVjdGVkID09PSB0cnVlKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXNDaGFuZ2UuZW1pdChzZWxlY3RlZCk7XG4gIH1cblxuICBoYW5kbGVTZWxlY3RBbGxDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLl9pdGVtcyA9IHRoaXMuaXRlbXMubWFwKChpdGVtOiBJSXRlbUludGVybmFsKSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5pdGVtLCBfc2VsZWN0ZWQ6ICRldmVudCB9O1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRBbGwgPSAkZXZlbnQ7XG4gIH1cblxuICB0YWJsZURhdGFDZWxsUHJvcHMoaXRlbTogSUl0ZW0sIGNvbE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHByb3BzID0gaXRlbVsnX2NlbGxQcm9wcyddICYmIHtcbiAgICAgIC4uLihpdGVtWydfY2VsbFByb3BzJ11bJ19hbGwnXSAmJiB7IC4uLml0ZW1bJ19jZWxsUHJvcHMnXVsnX2FsbCddIH0pLFxuICAgICAgLi4uKGl0ZW1bJ19jZWxsUHJvcHMnXVtjb2xOYW1lXSAmJiB7IC4uLml0ZW1bJ19jZWxsUHJvcHMnXVtjb2xOYW1lXSB9KVxuICAgIH07XG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgdGFibGVEYXRhQ2VsbENsYXNzZXMoaXRlbTogSUl0ZW0sIGNvbE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuY29sdW1ucy5maWx0ZXIoKGNvbHVtbikgPT4gdHlwZW9mIGNvbHVtbiA9PT0gJ3N0cmluZycgPyBjb2x1bW4gPT09IGNvbE5hbWUgOiBjb2x1bW5bJ2tleSddID09PSBjb2xOYW1lKTtcbiAgICByZXR1cm4gY29sdW1uWzBdICYmIHR5cGVvZiBjb2x1bW5bMF0gPT09ICdvYmplY3QnID8gY29sdW1uWzBdLl9jbGFzc2VzIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0Q29sdW1uTmFtZSgkZXZlbnQ6IE1vdXNlRXZlbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRhcmdldCA9ICRldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgICBjb25zdCBjbG9zZXN0ID0gdGFyZ2V0LmNsb3Nlc3QoJ3RyJyk7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBjbG9zZXN0ID8gQXJyYXkuZnJvbShjbG9zZXN0LmNoaWxkcmVuKSA6IFtdO1xuICAgIGNvbnN0IGNsaWNrZWRDZWxsID0gY2hpbGRyZW4uZmlsdGVyKChjaGlsZCkgPT4gY2hpbGQuY29udGFpbnModGFyZ2V0KSlbMF07XG4gICAgcmV0dXJuIHRoaXMucmF3Q29sdW1uTmFtZXNbY2hpbGRyZW4uaW5kZXhPZihjbGlja2VkQ2VsbCkgLSAodGhpcy5fc2VsZWN0YWJsZSA/IDEgOiAwKV07XG4gIH1cblxuICBoYW5kbGVSb3dDbGljayhwYXJhbTogeyAkZXZlbnQ6IE1vdXNlRXZlbnQ7IGl0ZW06IElJdGVtSW50ZXJuYWw7IGk6IG51bWJlciB9KSB7XG4gICAgY29uc3QgeyAkZXZlbnQsIGl0ZW0sIGkgfSA9IHsgLi4ucGFyYW0gfTtcbiAgICBjb25zdCBjb2x1bW5OYW1lID0gdGhpcy5nZXRDb2x1bW5OYW1lKHBhcmFtLiRldmVudCk7XG4gICAgdGhpcy5yb3dDbGljay5lbWl0KHsgaXRlbTogaXRlbSwgaW5kZXg6IGkgKyB0aGlzLmZpcnN0SXRlbU9uQWN0aXZlUGFnZUluZGV4LCBjb2x1bW5OYW1lLCBldmVudDogJGV2ZW50IH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydjb2x1bW5GaWx0ZXJWYWx1ZSddKSB7XG4gICAgICBjb25zdCBjb2x1bW5GaWx0ZXJWYWx1ZUNoYW5nZSA9IGNoYW5nZXNbJ2NvbHVtbkZpbHRlclZhbHVlJ107XG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjb2x1bW5GaWx0ZXJWYWx1ZUNoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgICBpZiAodHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoY3VycmVudFZhbHVlID8/IHt9KS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVQYWdlKDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndGFibGVGaWx0ZXJWYWx1ZSddKSB7XG4gICAgICBjb25zdCB0YWJsZUZpbHRlclZhbHVlQ2hhbmdlID0gY2hhbmdlc1sndGFibGVGaWx0ZXJWYWx1ZSddO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGFibGVGaWx0ZXJWYWx1ZUNoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgICBpZiAoY3VycmVudFZhbHVlLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnNldEFjdGl2ZVBhZ2UoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXRlbXNQZXJQYWdlU2VsZWN0IHx8IHRhYmxlRmlsdGVyIHx8IGNsZWFuZXIgfHwgdGVtcGxhdGVzWyd0YWJsZUN1c3RvbUhlYWRlciddXCIgY2xhc3M9XCJyb3cgbXktMiBteC0wXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBwLTBcIiAqbmdJZj1cInRhYmxlRmlsdGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlRmlsdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBwLTBcIiAqbmdJZj1cImNsZWFuZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVDbGVhbmVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXNbJ3RhYmxlQ3VzdG9tSGVhZGVyJ10gfHwgdGFibGVDdXN0b21IZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdGFibGVGaWx0ZXJUZW1wbGF0ZT5cbiAgICA8Yy1zbWFydC10YWJsZS1maWx0ZXJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVUYWJsZUZpbHRlckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICpuZ0lmPVwidGFibGVGaWx0ZXJcIlxuICAgICAgW2RlbGF5XT1cIjMwMFwiXG4gICAgICBbZmlsdGVyTGFiZWxdPVwidGFibGVGaWx0ZXJMYWJlbFwiXG4gICAgICBbZmlsdGVyUGxhY2Vob2xkZXJdPVwidGFibGVGaWx0ZXJQbGFjZWhvbGRlclwiXG4gICAgICBbb25FdmVudF09XCJ0YWJsZUZpbHRlckV2ZW50XCJcbiAgICAgIFt2YWx1ZV09XCJ0YWJsZUZpbHRlclN0YXRlXCJcbiAgICAgIGNGaWx0ZXJJbnB1dFxuICAgID5cbiAgICA8L2Mtc21hcnQtdGFibGUtZmlsdGVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdGFibGVDbGVhbmVyVGVtcGxhdGU+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cImNsZWFuKCRldmVudClcIlxuICAgICAgKm5nSWY9XCJjbGVhbmVyXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNGaWx0ZXJlZFwiXG4gICAgICBbbmdDbGFzc109XCJ7J21zLTEnOiB0YWJsZUZpbHRlcn1cIlxuICAgICAgW3RhYmluZGV4XT1cIjBcIlxuICAgICAgY0J1dHRvblxuICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgIGNvbG9yPVwidHJhbnNwYXJlbnRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWx0ZXJJY29uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI3RhYmxlQ3VzdG9tSGVhZGVyVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHAtMCBtcy1hdXRvXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY3VzdG9tSGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gIDx0YWJsZSBbYWxpZ25dPVwidGFibGVQcm9wcz8uYWxpZ25cIlxuICAgICAgICAgW2JvcmRlckNvbG9yXT1cInRhYmxlUHJvcHM/LmJvcmRlckNvbG9yXCJcbiAgICAgICAgIFtib3JkZXJlZF09XCJ0YWJsZVByb3BzPy5ib3JkZXJlZFwiXG4gICAgICAgICBbYm9yZGVybGVzc109XCJ0YWJsZVByb3BzPy5ib3JkZXJsZXNzXCJcbiAgICAgICAgIFtjYXB0aW9uXT1cInRhYmxlUHJvcHM/LmNhcHRpb25cIlxuICAgICAgICAgW2NvbG9yXT1cInRhYmxlUHJvcHM/LmNvbG9yXCJcbiAgICAgICAgIFtob3Zlcl09XCJ0YWJsZVByb3BzPy5ob3ZlclwiXG4gICAgICAgICBbcmVzcG9uc2l2ZV09XCJ0YWJsZVByb3BzPy5yZXNwb25zaXZlXCJcbiAgICAgICAgIFtzbWFsbF09XCJ0YWJsZVByb3BzPy5zbWFsbFwiXG4gICAgICAgICBbc3RyaXBlZF09XCJ0YWJsZVByb3BzPy5zdHJpcGVkXCJcbiAgICAgICAgIFtjSHRtbEF0dHJdPVwidGFibGVQcm9wcz8uYXR0cmlidXRlcyA/PyB7fVwiXG4gICAgICAgICBbY1RhYmxlQ29sb3JdPVwidGFibGVQcm9wcz8uY29sb3JcIlxuICAgICAgICAgY1RhYmxlXG4gID5cbiAgICA8Yy1zbWFydC10YWJsZS1oZWFkXG4gICAgICAoY29sdW1uRmlsdGVyU3RhdGVDaGFuZ2UpPVwiaGFuZGxlQ29sdW1uRmlsdGVyQ2hhbmdlKCRldmVudClcIlxuICAgICAgKHNlbGVjdEFsbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoc29ydGVyU3RhdGVDaGFuZ2UpPVwiaGFuZGxlU29ydENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICpuZ0lmPVwiaGVhZGVyXCJcbiAgICAgIFtjb2x1bW5GaWx0ZXJTdGF0ZV09XCJjb2x1bW5GaWx0ZXJTdGF0ZVwiXG4gICAgICBbY29sdW1uRmlsdGVyXT1cImNvbHVtbkZpbHRlclwiXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgIFtzZWxlY3RBbGxdPVwic2VsZWN0ZWRBbGxcIlxuICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gICAgICBbY29sdW1uU29ydGVyXT1cImNvbHVtblNvcnRlclwiXG4gICAgICBbc29ydGVyVmFsdWVdPVwic29ydGVyVmFsdWVcIlxuICAgICAgW2NIdG1sQXR0cl09XCJ0YWJsZUhlYWRQcm9wcz8uYXR0cmlidXRlcyA/PyB7fVwiXG4gICAgICBbY1RhYmxlQ29sb3JdPVwidGFibGVIZWFkUHJvcHM/LmNvbG9yXCJcbiAgICAgIFtjQWxpZ25dPVwidGFibGVIZWFkUHJvcHM/LmFsaWduXCJcbiAgICAgIFtjb2x1bW5GaWx0ZXJUZW1wbGF0ZXNdPVwiY29sdW1uRmlsdGVyVGVtcGxhdGVzXCJcbiAgICA+PC9jLXNtYXJ0LXRhYmxlLWhlYWQ+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGJvZHlEZWZhdWx0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDxjLXNtYXJ0LXRhYmxlLWhlYWRcbiAgICAgIChzZWxlY3RBbGxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIlxuICAgICAgKHNvcnRlclN0YXRlQ2hhbmdlKT1cImhhbmRsZVNvcnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAqbmdJZj1cImZvb3RlclwiXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgIFtzZWxlY3RBbGxdPVwic2VsZWN0ZWRBbGxcIlxuICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gICAgICBbY29sdW1uU29ydGVyXT1cImNvbHVtblNvcnRlclwiXG4gICAgICBbc29ydGVyVmFsdWVdPVwic29ydGVyVmFsdWVcIlxuICAgICAgW2NIdG1sQXR0cl09XCJ0YWJsZUZvb3RQcm9wcz8uYXR0cmlidXRlcyA/PyB7fVwiXG4gICAgICBbY1RhYmxlQ29sb3JdPVwidGFibGVGb290UHJvcHM/LmNvbG9yXCJcbiAgICAgIFtjQWxpZ25dPVwidGFibGVGb290UHJvcHM/LmFsaWduXCJcbiAgICAgIGNvbXBvbmVudD1cInRmb290XCJcbiAgICAgIFtjb2x1bW5GaWx0ZXJUZW1wbGF0ZXNdPVwiY29sdW1uRmlsdGVyVGVtcGxhdGVzXCJcbiAgICA+PC9jLXNtYXJ0LXRhYmxlLWhlYWQ+XG5cbiAgPC90YWJsZT5cbiAgPGMtZWxlbWVudC1jb3ZlclxuICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgW2JvdW5kYXJpZXNdPVwiW1xuICAgICAgeyBzaWRlczogWyd0b3AnXSwgcXVlcnk6ICd0ZCcgfSxcbiAgICAgIHsgc2lkZXM6IFsnYm90dG9tJ10sIHF1ZXJ5OiAndGJvZHknIH1cbiAgICBdXCJcbiAgPjwvYy1lbGVtZW50LWNvdmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgW25nSWZdPVwicGFnaW5hdGlvbiB8fCBpdGVtc1BlclBhZ2VTZWxlY3RcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgIDxjLXNtYXJ0LXBhZ2luYXRpb25cbiAgICAgICAgKGFjdGl2ZVBhZ2VDaGFuZ2UpPVwic2V0QWN0aXZlUGFnZSgkZXZlbnQpXCJcbiAgICAgICAgKm5nSWY9XCJwYWdpbmF0aW9uICYmIG51bWJlck9mUGFnZXMgPiAxXCJcbiAgICAgICAgW2FjdGl2ZVBhZ2VdPVwiYWN0aXZlUGFnZVwiXG4gICAgICAgIFtwYWdlc109XCJudW1iZXJPZlBhZ2VzXCI+XG4gICAgICA8L2Mtc21hcnQtcGFnaW5hdGlvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gbXMtYXV0b1wiPlxuICAgICAgPGMtc21hcnQtdGFibGUtaXRlbXMtcGVyLXBhZ2Utc2VsZWN0b3JcbiAgICAgICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJoYW5kbGVJdGVtc1BlclBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICpuZ0lmPVwiaXRlbXNQZXJQYWdlU2VsZWN0XCJcbiAgICAgICAgW2l0ZW1zUGVyUGFnZUxhYmVsXT1cIml0ZW1zUGVyUGFnZUxhYmVsXCJcbiAgICAgICAgW2l0ZW1zUGVyUGFnZU9wdGlvbnNdPVwiaXRlbXNQZXJQYWdlT3B0aW9uc1wiXG4gICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCJcbiAgICAgID5cbiAgICAgIDwvYy1zbWFydC10YWJsZS1pdGVtcy1wZXItcGFnZS1zZWxlY3Rvcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Rib2R5RGVmYXVsdFRlbXBsYXRlPlxuICA8dGJvZHkgW2NIdG1sQXR0cl09XCJ0YWJsZUJvZHlQcm9wcz8uYXR0cmlidXRlcyA/PyB7fVwiXG4gICAgICAgICBbY1RhYmxlQ29sb3JdPVwidGFibGVCb2R5UHJvcHM/LmNvbG9yXCJcbiAgICAgICAgIFtjQWxpZ25dPVwidGFibGVCb2R5UHJvcHM/LmFsaWduXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWl0ZW0gW25nRm9yT2ZdPVwiY3VycmVudEl0ZW1zXCIgbGV0LWNudD1cImNvdW50XCIgbGV0LWk9XCJpbmRleFwiIGxldC1pc0V2ZW49XCJldmVuXCIgbGV0LWlzT2RkPVwib2RkXCI+XG4gICAgPHRyIFt0YWJpbmRleF09XCJjbGlja2FibGVSb3dzID8gMCA6IC0xXCJcbiAgICAgICAgW25nU3R5bGVdPVwie2N1cnNvcjogY2xpY2thYmxlUm93cyA/ICdwb2ludGVyJyA6ICdhdXRvJ31cIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlUm93Q2xpY2soeyRldmVudCwgaXRlbSwgaX0pXCJcbiAgICAgICAgW2NUYWJsZUFjdGl2ZV09XCJpdGVtLl9wcm9wcz8uYWN0aXZlXCJcbiAgICAgICAgW2NUYWJsZUNvbG9yXT1cIml0ZW0uX3Byb3BzPy5jb2xvclwiXG4gICAgICAgIFtjQWxpZ25dPVwiaXRlbS5fcHJvcHM/LmFsaWduXCJcbiAgICA+XG4gICAgICA8dGQgKm5nSWY9XCJzZWxlY3RhYmxlXCJcbiAgICAgICAgICBbY1RhYmxlQWN0aXZlXT1cIml0ZW0/LlsnX2NlbGxQcm9wcyddPy5fYWxsPy5hY3RpdmVcIlxuICAgICAgICAgIFtjVGFibGVDb2xvcl09XCJpdGVtPy5bJ19jZWxsUHJvcHMnXT8uX2FsbD8uY29sb3JcIlxuICAgICAgICAgIFtjQWxpZ25dPVwiaXRlbT8uWydfY2VsbFByb3BzJ10/Ll9hbGw/LmFsaWduXCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwiaGFuZGxlUm93Q2hlY2tlZCgkZXZlbnQsIGl0ZW0pXCIgW2NoZWNrZWRdPVwiaXRlbS5fc2VsZWN0ZWQgPz8gZmFsc2VcIiBjRm9ybUNoZWNrSW5wdXQ+XG4gICAgICA8L3RkPlxuICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jb2x1bW5OYW1lIFtuZ0Zvck9mXT1cInJhd0NvbHVtbk5hbWVzXCIgbGV0LWk9XCJpbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXNbJ3RhYmxlRGF0YSddIHx8IGNvbHVtbkRlZmF1bHRUZW1wbGF0ZTsgY29udGV4dDoge2l0ZW0sIGNvbHVtbk5hbWUsIHRkQ29udGVudDogaXRlbVtjb2x1bW5OYW1lXSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvdHI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInRlbXBsYXRlc1sndGFibGVEZXRhaWxzJ11cIj5cbiAgICAgIDwhLS0gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93RGV0YWlsc0RlZmF1bHRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPi0tPlxuICAgICAgPHRyPlxuICAgICAgICA8dGQgW2NvbFNwYW5dPVwiY29sc3BhblwiIGNsYXNzPVwicC0wXCIgdGFiaW5kZXg9XCItMVwiIFtuZ1N0eWxlXT1cIntib3JkZXJCb3R0b21XaWR0aDogMH1cIj48L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cInAtMFwiPlxuICAgICAgICA8dGQgW2NvbFNwYW5dPVwiY29sc3BhblwiIGNsYXNzPVwicC0wXCIgW25nU3R5bGVdPVwie2JvcmRlcjogMH1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzWyd0YWJsZURldGFpbHMnXTsgY29udGV4dDoge2l0ZW0sIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9JdGVtc0RlZmF1bHRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L3Rib2R5PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5EZWZhdWx0VGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWNvbHVtbk5hbWU9XCJjb2x1bW5OYW1lXCIgbGV0LXRkQ29udGVudD1cInRkQ29udGVudFwiPlxuICA8dGRcbiAgICBbY1RhYmxlQWN0aXZlXT1cInRhYmxlRGF0YUNlbGxQcm9wcyhpdGVtLCBjb2x1bW5OYW1lKT8uWydhY3RpdmUnXVwiXG4gICAgW2NUYWJsZUNvbG9yXT1cInRhYmxlRGF0YUNlbGxQcm9wcyhpdGVtLCBjb2x1bW5OYW1lKT8uY29sb3JcIlxuICAgIFtjQWxpZ25dPVwidGFibGVEYXRhQ2VsbFByb3BzKGl0ZW0sIGNvbHVtbk5hbWUpPy5hbGlnblwiXG4gICAgW25nQ2xhc3NdPVwidGFibGVEYXRhQ2VsbENsYXNzZXMoaXRlbSwgY29sdW1uTmFtZSlcIlxuICA+XG4gICAge3t0ZENvbnRlbnR9fVxuICA8L3RkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLTxuZy10ZW1wbGF0ZSAjcm93RGV0YWlsc0RlZmF1bHRUZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaW5kZXg+LS0+XG48IS0tICA8dHI+PHRkIFtjb2xTcGFuXT1cImNvbHNwYW5cIiBjbGFzcz1cInAtMFwiIHRhYmluZGV4PVwiLTFcIiBbbmdTdHlsZV09XCJ7Ym9yZGVyQm90dG9tV2lkdGg6IDB9XCI+PC90ZD48L3RyPi0tPlxuPCEtLSAgPHRyIGNsYXNzPVwicC0wXCI+LS0+XG48IS0tICAgIDx0ZCBbY29sU3Bhbl09XCJjb2xzcGFuXCIgY2xhc3M9XCJwLTBcIiBbbmdTdHlsZV09XCJ7Ym9yZGVyOiAwfVwiPi0tPlxuPCEtLSAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXM/LnRhYmxlRGV0YWlsc1wiPjwvbmctY29udGFpbmVyPi0tPlxuPCEtLSAgICA8L3RkPi0tPlxuPCEtLSAgPC90cj4tLT5cbjwhLS08L25nLXRlbXBsYXRlPi0tPlxuXG48bmctdGVtcGxhdGUgI25vSXRlbXNEZWZhdWx0VGVtcGxhdGU+XG4gIDx0ciAqbmdJZj1cIiFjdXJyZW50SXRlbXMubGVuZ3RoXCI+XG4gICAgPHRkIFtjb2xTcGFuXT1cImNvbHNwYW5cIiBjbGFzcz1cImp1c3RpZnktY29udGVudC1jZW50ZXJcIj57e25vSXRlbXNMYWJlbH19PC90ZD5cbiAgPC90cj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS10b2RvOiBmaWx0ZXJJY29uQ3VzdG9tVGVtcGxhdGUtLT5cbjxuZy10ZW1wbGF0ZSAjZmlsdGVySWNvblRlbXBsYXRlPlxuICA8c3ZnIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBwb2ludGVyLWV2ZW50cz1cIm5vbmVcIiByb2xlPVwiaW1nXCJcbiAgICAgICBjbGFzcz1cImljb24gaWNvbi1jdXN0b20tc2l6ZVwiIHdpZHRoPVwiMThcIj5cbiAgICA8cG9seWdvblxuICAgICAgZmlsbD1cInZhcigtLWNpLXByaW1hcnktY29sb3IsIGN1cnJlbnRDb2xvcilcIlxuICAgICAgcG9pbnRzPVwiNDAgMTYgNDAgNTMuODI4IDEwOS4wMjQgMTM2IDE1MC44MTUgMTM2IDc2Ljg5NiA0OCA0NTkuNTEgNDggMzA0IDI0Mi4zODggMzA0IDQwMS4zNzMgMjQxLjM3MyA0NjQgMjQwIDQ2NCAyNDAgMzY4IDIwOCAzNjggMjA4IDQ5NiAyNTQuNjI3IDQ5NiAzMzYgNDE0LjYyNyAzMzYgMjUzLjYxMiA0OTYgNTMuNjEyIDQ5NiAxNiA0MCAxNlwiXG4gICAgICBjbGFzcz1cImNpLXByaW1hcnlcIj5cbiAgICA8L3BvbHlnb24+XG4gICAgPHBvbHlnb25cbiAgICAgIGZpbGw9XCJ2YXIoLS1jaS1wcmltYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpXCJcbiAgICAgIHBvaW50cz1cIjE2Ni40MDMgMjQ4LjIyNSAyMjYuODY0IDE4Ny43NjMgMjA0LjIzNyAxNjUuMTM1IDE0My43NzUgMjI1LjU5NyA4My4zMTMgMTY1LjEzNSA2MC42ODcgMTg3Ljc2MyAxMjEuMTQ4IDI0OC4yMjUgNjAuNjg3IDMwOC42ODcgODMuMzEzIDMzMS4zMTQgMTQzLjc3NSAyNzAuODUyIDIwNC4yMzcgMzMxLjMxNCAyMjYuODY0IDMwOC42ODcgMTY2LjQwMyAyNDguMjI1XCJcbiAgICAgIGNsYXNzPVwiY2ktcHJpbWFyeVwiPlxuICAgIDwvcG9seWdvbj5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
539
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbWFydC10YWJsZS9zbWFydC10YWJsZS9zbWFydC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBTUwsTUFBTSxFQUtQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLG9CQUFvQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFpQi9HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQ0wsdUNBQXVDLEVBQ3hDLE1BQU0sc0ZBQXNGLENBQUM7O0FBNkI5RixNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQ1UsZUFBZ0MsRUFDaEMsZUFBZ0M7UUFEaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXVCbEMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFXaEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQVcxQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQStCaEMsdUJBQWtCLEdBQXVCLEVBQUUsQ0FBQztRQWE1QyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBV3pCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFnQnpCLFdBQU0sR0FBb0IsRUFBZ0MsQ0FBQztRQVczRCxrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUUxQixzQkFBaUIsR0FBVyxpQkFBaUIsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBYSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBR2hELGlCQUFZLEdBQThCLGdCQUFnQixDQUFDO1FBVzVELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBVzdCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBaUI3QixpQkFBWSxHQUFpQixFQUFFLENBQUM7UUFrQi9CLHFCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUM3QiwyQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztRQWUzQyxzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFFOUIsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO1FBQ3ZDLG1CQUFjLEdBQXNCLEVBQUUsQ0FBQztRQUN2QyxtQkFBYyxHQUFzQixFQUFFLENBQUM7UUFDdkMsZUFBVSxHQUFZLEVBQUUsQ0FBQztRQUV4Qix3QkFBbUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqRSxzQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMvRCxxQkFBZ0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM5RCx1QkFBa0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoRSxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEQsNEJBQXVCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckUsd0JBQW1CLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDakUsMkJBQXNCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHOUUsY0FBUyxHQUFpRCxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2xHLDBCQUFxQixHQUFpRCxFQUFFLENBQUM7UUF5QmpFLGlCQUFZLEdBQXVCLEtBQUssQ0FBQztRQXdGekMsb0JBQWUsR0FBb0IsRUFBRSxDQUFDO1FBL1U1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hGLENBQUM7SUFPRCxJQUNJLFVBQVUsQ0FBQyxLQUFhO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUlELElBQ0ksT0FBTyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFJRCxJQUNJLGFBQWEsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBSUQsSUFDSSxPQUFPLENBQUMsS0FBMkI7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzlDLENBQUM7SUFNRCxJQUNJLGlCQUFpQixDQUFDLEtBQXlCO1FBQzdDLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLDZCQUE2QjthQUNsRDtTQUNGO0lBQ0gsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFNRCxJQUNJLE1BQU0sQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBSUQsSUFDSSxNQUFNLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUlELElBQ0ksS0FBSyxDQUFDLEtBQWM7UUFDdEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQStCLENBQUM7YUFDbEU7U0FDRjtJQUNILENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUlELElBQ0ksWUFBWSxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFVRCxJQUNJLFVBQVUsQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBSUQsSUFDSSxVQUFVLENBQUMsS0FBYztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUlELElBQ0ksV0FBVyxDQUFDLEtBQW1CO1FBQ2pDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDM0M7U0FDRjtJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUlELElBQ0ksV0FBVyxDQUFDLE1BQU07UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7UUFDM0IsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUNoRyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsT0FBTyxNQUFNLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQ3hILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDakc7SUFDSCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFPRCxJQUNJLGdCQUFnQixDQUFDLEtBQWE7UUFDaEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssS0FBSyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsNkJBQTZCO1NBQ2xEO0lBQ0gsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFzQkQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBMEIsRUFBRSxFQUFFO1lBQzFELElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDekQsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFDdEcsNEJBQTRCO0lBQzlCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxLQUFLO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFDbkgsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBSUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ3hGLENBQUM7SUFFRCxJQUFJLDBCQUEwQjtRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQzNCLElBQUksQ0FBQywwQkFBMEIsRUFDL0IsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQ3JELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzFFLDJCQUEyQjtJQUM3QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDL0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQzFDLElBQ0UsQ0FBQyxTQUFTO1lBQ1YsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUMxQyxDQUFDLElBQUksQ0FBQyxZQUFZO2dCQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssUUFBUTtnQkFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFDN0I7WUFDQSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDM0I7UUFDRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTlDLDZGQUE2RjtRQUM3RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRS9GLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNkLE9BQU8sYUFBYSxDQUFDO1NBQ3RCO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQzVHLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxJQUFJLE9BQU8sYUFBYSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7WUFDbkYsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEUsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUM3QztRQUVELE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBNEIsRUFBRSxLQUE0QixFQUFFLEVBQUU7WUFDL0UsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxNQUFNLENBQUMsR0FBRyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUM7UUFFRixPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzlGLENBQUM7SUFBQSxDQUFDO0lBSUYsSUFBSSxjQUFjO1FBQ2hCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDekIsSUFDRSxJQUFJLENBQUMsWUFBWTtZQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssUUFBUTtZQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFDMUI7WUFDQSxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztZQUM5QixPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBRTlELElBQUksS0FBSyxZQUFZLFFBQVEsRUFBRTtnQkFDN0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuRCxPQUFPO2FBQ1I7WUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ3BHLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxJQUFJLE9BQU8sYUFBYSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7Z0JBQ25GLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sYUFBYSxDQUFDLE1BQU0sS0FBSyxVQUFVLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5SCxPQUFPO2FBQ1I7WUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakQsSUFBSSxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdkQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUMxRjtRQUVILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDaEMsSUFDRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFDdEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFDdkY7WUFDQSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckQsSUFBSSxPQUFPLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDdEM7YUFDRjtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRixhQUFhO1FBQ2IsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUEyQixFQUFFLEVBQUU7WUFDbkQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QztTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFjO1FBQzdCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFXLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQzlDLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQXNCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBNkM7UUFDNUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxVQUFVLENBQUMsQ0FBUztRQUNsQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sQ0FDTCxJQUFJLENBQUMsWUFBWTtZQUNqQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQ1osT0FBTyxNQUFNLEtBQUssUUFBUTtnQkFDMUIsQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUN4RixJQUFJLFlBQVksQ0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjLEVBQUUsS0FBYTtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCw2REFBNkQ7UUFDN0QsTUFBTSxLQUFLLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV0QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO1lBQzNCLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2FBQ3JCO2lCQUFNLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7Z0JBQ2hDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2FBQ3RCO2lCQUFNO2dCQUNMLElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFO29CQUN6RSxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztpQkFDckI7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQ2pCO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDdEIsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVELHdCQUF3QixDQUFDLE1BQVc7UUFDbEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDL0UsQ0FBQztJQUVELHVCQUF1QixDQUFDLE1BQXdDO1FBQzlELE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQy9CLE1BQU0sTUFBTSxHQUFHLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxRixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFrQjtRQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLDRCQUE0QjtJQUNsRCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBYTtRQUNwQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFhLEVBQUUsSUFBbUI7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBSSxNQUFNLENBQUMsTUFBMkIsQ0FBQyxPQUFPLENBQUM7UUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBbUIsRUFBRSxFQUFFO1lBQ25ELE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBVyxFQUFFLE9BQWU7UUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJO1lBQ2xDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BFLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1NBQ3ZFLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFXLEVBQUUsT0FBZTtRQUMvQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDNUgsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckYsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFrQjtRQUM5QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBNkIsQ0FBQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3RCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUE2RDtRQUMxRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDaEMsTUFBTSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUM3RCxNQUFNLFlBQVksR0FBRyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7WUFDMUQsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUM5RSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7UUFDRCxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDM0QsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUMsWUFBWSxDQUFDO1lBQ3pELElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2QjtTQUNGO0lBQ0gsQ0FBQzs4R0FsakJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGd3Q0EyT2IsbUJBQW1CLDZFQ3ZUdEMsd3hRQWtOQSxnRkQxSkksSUFBSSw2RkFDSixnQkFBZ0Isb0pBQ2hCLE9BQU8sb0ZBQ1AsT0FBTyxtSEFDUCxPQUFPLDJFQUNQLGNBQWMseUVBQ2QsZUFBZSwwSkFDZixxQkFBcUIsZ0hBQ3JCLG9CQUFvQix3SkFDcEIsdUJBQXVCLCtHQUN2Qix1QkFBdUIsd0dBQ3ZCLHdCQUF3QixnU0FDeEIseUJBQXlCLHlIQUN6Qix1QkFBdUIsdVNBQ3ZCLHVDQUF1Qyx5TEFDdkMsb0JBQW9CLHFGQUNwQixtQkFBbUIsbUZBQ25CLGNBQWM7OzJGQUdMLG1CQUFtQjtrQkEzQi9CLFNBQVM7K0JBQ0UsZUFBZSxZQUdmLGFBQWEsY0FDWCxJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLHVDQUF1Qzt3QkFDdkMsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGNBQWM7cUJBQ2Y7b0lBNkJHLFVBQVU7c0JBRGIsS0FBSztnQkFhRixPQUFPO3NCQURWLEtBQUs7Z0JBWUYsYUFBYTtzQkFEaEIsS0FBSztnQkFZRixPQUFPO3NCQURWLEtBQUs7Z0JBV0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBa0JHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0YsTUFBTTtzQkFEVCxLQUFLO2dCQVlGLE1BQU07c0JBRFQsS0FBSztnQkFZRixLQUFLO3NCQURSLEtBQUs7Z0JBaUJGLFlBQVk7c0JBRGYsS0FBSztnQkFXRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRixVQUFVO3NCQURiLEtBQUs7Z0JBWUYsVUFBVTtzQkFEYixLQUFLO2dCQVlGLFdBQVc7c0JBRGQsS0FBSztnQkFrQkYsV0FBVztzQkFEZCxLQUFLO2dCQWdCRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUdGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFlRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUUrQixlQUFlO3NCQUFwRCxlQUFlO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBJdGVyYWJsZURpZmZlcixcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBLZXlWYWx1ZURpZmZlcixcbiAgS2V5VmFsdWVEaWZmZXJzLFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmltcG9ydCB7IElUYWJsZSB9IGZyb20gJy4uLy4uL3RhYmxlL3RhYmxlLnR5cGUnO1xuaW1wb3J0IHtcbiAgSUNvbHVtbixcbiAgSUNvbHVtbkZpbHRlcixcbiAgSUNvbHVtbkZpbHRlclZhbHVlLFxuICBJSXRlbSxcbiAgSUl0ZW1JbnRlcm5hbCxcbiAgSVNtYXJ0VGFibGUsXG4gIElTb3J0ZXIsXG4gIElTb3J0ZXJWYWx1ZSxcbiAgSVRhYmxlRmlsdGVyLFxuICBJVGFibGVHcm91cFByb3BzLFxuICBJdGVtc1BlclBhZ2VTZWxlY3Rcbn0gZnJvbSAnLi4vc21hcnQtdGFibGUudHlwZSc7XG5cbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2J1dHRvbic7XG5pbXBvcnQgeyBGb3JtQ2hlY2tJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2Zvcm0nO1xuaW1wb3J0IHsgRWxlbWVudENvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudC1jb3Zlcic7XG5pbXBvcnQgeyBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZSwgVGVtcGxhdGVJZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBTbWFydFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9zbWFydC1wYWdpbmF0aW9uJztcbmltcG9ydCB7IFRhYmxlQWN0aXZlRGlyZWN0aXZlLCBUYWJsZUNvbG9yRGlyZWN0aXZlLCBUYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3RhYmxlJztcbmltcG9ydCB7IEFsaWduRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcbmltcG9ydCB7IFNtYXJ0VGFibGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zbWFydC10YWJsZS1maWx0ZXIvc21hcnQtdGFibGUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uL3NtYXJ0LXRhYmxlLWZpbHRlci9maWx0ZXItaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNtYXJ0VGFibGVIZWFkQ29tcG9uZW50IH0gZnJvbSAnLi4vc21hcnQtdGFibGUtaGVhZC9zbWFydC10YWJsZS1oZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBTbWFydFRhYmxlSXRlbXNQZXJQYWdlU2VsZWN0b3JDb21wb25lbnRcbn0gZnJvbSAnLi4vc21hcnQtdGFibGUtaXRlbXMtcGVyLXBhZ2Utc2VsZWN0b3Ivc21hcnQtdGFibGUtaXRlbXMtcGVyLXBhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1zbWFydC10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnY1NtYXJ0VGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE5nQ2xhc3MsXG4gICAgTmdGb3JPZixcbiAgICBOZ1N0eWxlLFxuICAgIEFsaWduRGlyZWN0aXZlLFxuICAgIEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBFbGVtZW50Q292ZXJDb21wb25lbnQsXG4gICAgRmlsdGVySW5wdXREaXJlY3RpdmUsXG4gICAgRm9ybUNoZWNrSW5wdXREaXJlY3RpdmUsXG4gICAgSHRtbEF0dHJpYnV0ZXNEaXJlY3RpdmUsXG4gICAgU21hcnRQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFNtYXJ0VGFibGVGaWx0ZXJDb21wb25lbnQsXG4gICAgU21hcnRUYWJsZUhlYWRDb21wb25lbnQsXG4gICAgU21hcnRUYWJsZUl0ZW1zUGVyUGFnZVNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFRhYmxlQWN0aXZlRGlyZWN0aXZlLFxuICAgIFRhYmxlQ29sb3JEaXJlY3RpdmUsXG4gICAgVGFibGVEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbWFydFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgSVNtYXJ0VGFibGUsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2FjdGl2ZVBhZ2U6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2xlYW5lcjogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2xpY2thYmxlUm93czogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZm9vdGVyOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oZWFkZXI6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2l0ZW1zUGVyUGFnZTogTnVtYmVySW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9wYWdpbmF0aW9uOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zZWxlY3RhYmxlOiBCb29sZWFuSW5wdXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpdGVyYWJsZURpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICBwcml2YXRlIGtleVZhbHVlRGlmZmVyczogS2V5VmFsdWVEaWZmZXJzXG4gICkge1xuICAgIHRoaXMuaXRlbXNEaWZmZXIgPSB0aGlzLml0ZXJhYmxlRGlmZmVycy5maW5kKHRoaXMuaXRlbXMpLmNyZWF0ZSgpO1xuICAgIHRoaXMuaXRlbXNGaWx0ZXJlZERpZmZlciA9IHRoaXMuaXRlcmFibGVEaWZmZXJzLmZpbmQodGhpcy5fY29sdW1uRmlsdGVyZWQpLmNyZWF0ZSgpO1xuICAgIHRoaXMuY29sdW1GaWx0ZXJWYWx1ZURpZmZlciA9IHRoaXMua2V5VmFsdWVEaWZmZXJzLmZpbmQodGhpcy5jb2x1bW5GaWx0ZXJWYWx1ZSkuY3JlYXRlKCk7XG4gICAgdGhpcy5zb3J0ZXJWYWx1ZURpZmZlciA9IHRoaXMua2V5VmFsdWVEaWZmZXJzLmZpbmQodGhpcy5zb3J0ZXJWYWx1ZSkuY3JlYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zRGlmZmVyOiBJdGVyYWJsZURpZmZlcjxhbnk+IHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtc0ZpbHRlcmVkRGlmZmVyOiBJdGVyYWJsZURpZmZlcjxhbnk+IHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2x1bUZpbHRlclZhbHVlRGlmZmVyOiBLZXlWYWx1ZURpZmZlcjxhbnksIGFueT4gfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IHNvcnRlclZhbHVlRGlmZmVyOiBLZXlWYWx1ZURpZmZlcjxhbnksIGFueT4gfCBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBhY3RpdmVQYWdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hY3RpdmVQYWdlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpIHx8IDE7XG4gICAgdGhpcy5hY3RpdmVQYWdlQ2hhbmdlLmVtaXQodGhpcy5fYWN0aXZlUGFnZSk7XG4gIH1cblxuICBnZXQgYWN0aXZlUGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWN0aXZlUGFnZSA9IDE7XG5cbiAgQElucHV0KClcbiAgc2V0IGNsZWFuZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jbGVhbmVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBjbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbGVhbmVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYW5lcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjbGlja2FibGVSb3dzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2xpY2thYmxlUm93cyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgY2xpY2thYmxlUm93cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpY2thYmxlUm93cztcbiAgfVxuXG4gIHByaXZhdGUgX2NsaWNrYWJsZVJvd3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgY29sdW1ucyh2YWx1ZTogKHN0cmluZyB8IElDb2x1bW4pW10pIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gdmFsdWUubWFwKGNvbHVtbiA9PiB0eXBlb2YgY29sdW1uID09PSAnc3RyaW5nJyA/IHsga2V5OiBjb2x1bW4gfSA6IHsgLi4uY29sdW1uIH0pO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKTogKHN0cmluZyB8IElDb2x1bW4pW10ge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zIHx8IHRoaXMucmF3Q29sdW1uTmFtZXM7XG4gIH1cblxuICBwcml2YXRlIF9jb2x1bW5zPzogKHN0cmluZyB8IElDb2x1bW4pW107XG5cbiAgQElucHV0KCkgY29sdW1uRmlsdGVyPzogYm9vbGVhbiB8IElDb2x1bW5GaWx0ZXI7XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbHVtbkZpbHRlclZhbHVlKHZhbHVlOiBJQ29sdW1uRmlsdGVyVmFsdWUpIHtcbiAgICBpZiAodGhpcy5jb2x1bUZpbHRlclZhbHVlRGlmZmVyKSB7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5jb2x1bUZpbHRlclZhbHVlRGlmZmVyLmRpZmYodmFsdWUpO1xuICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uRmlsdGVyVmFsdWUgPSB7IC4uLnZhbHVlIH07XG4gICAgICAgIHRoaXMuY29sdW1uRmlsdGVyVmFsdWVDaGFuZ2UuZW1pdCh7IC4uLnRoaXMuX2NvbHVtbkZpbHRlclZhbHVlIH0pO1xuICAgICAgICB0aGlzLnRhYmxlRmlsdGVyZWQ7IC8vIGVtaXRzIHRhYmxlRmlsdGVyZWQgY2hhbmdlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvbHVtbkZpbHRlclZhbHVlKCk6IElDb2x1bW5GaWx0ZXJWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbkZpbHRlclZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29sdW1uRmlsdGVyVmFsdWU6IElDb2x1bW5GaWx0ZXJWYWx1ZSA9IHt9O1xuXG4gIEBJbnB1dCgpIGNvbHVtblNvcnRlcj86IGJvb2xlYW4gfCBJU29ydGVyO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBmb290ZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9mb290ZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGZvb3RlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9vdGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9vdGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IGhlYWRlcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hlYWRlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgaGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oZWFkZXI7XG4gIH1cblxuICBwcml2YXRlIF9oZWFkZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgaXRlbXModmFsdWU6IElJdGVtW10pIHtcbiAgICBpZiAodGhpcy5pdGVtc0RpZmZlcikge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuaXRlbXNEaWZmZXIuZGlmZih2YWx1ZSk7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLl9pdGVtcyA9IHRoaXMuc2V0SXRlbXModmFsdWUpIGFzIEFycmF5PFR5cGU8SUl0ZW1JbnRlcm5hbD4+O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBpdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICBwcml2YXRlIF9pdGVtczogSUl0ZW1JbnRlcm5hbFtdID0gW10gYXMgQXJyYXk8VHlwZTxJSXRlbUludGVybmFsPj47XG5cbiAgQElucHV0KClcbiAgc2V0IGl0ZW1zUGVyUGFnZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5faXRlbXNQZXJQYWdlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGl0ZW1zUGVyUGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2U7XG4gIH1cblxuICBwcml2YXRlIF9pdGVtc1BlclBhZ2U6IG51bWJlciA9IDEwO1xuXG4gIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZUxhYmVsOiBzdHJpbmcgPSAnSXRlbXMgcGVyIHBhZ2U6JztcbiAgQElucHV0KCkgaXRlbXNQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gPSBbNSwgMTAsIDIwLCA1MF07XG4gIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZVNlbGVjdD86IGJvb2xlYW4gfCBJdGVtc1BlclBhZ2VTZWxlY3Q7XG4gIEBJbnB1dCgpIGxvYWRpbmc/OiBib29sZWFuO1xuICBASW5wdXQoKSBub0l0ZW1zTGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gPSAnTm8gaXRlbXMgZm91bmQnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBwYWdpbmF0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcGFnaW5hdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgcGFnaW5hdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnaW5hdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgX3BhZ2luYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgc2VsZWN0YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3NlbGVjdGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGU7XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IHNvcnRlclZhbHVlKHZhbHVlOiBJU29ydGVyVmFsdWUpIHtcbiAgICBpZiAodGhpcy5zb3J0ZXJWYWx1ZURpZmZlcikge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuc29ydGVyVmFsdWVEaWZmZXIuZGlmZih2YWx1ZSk7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLl9zb3J0ZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNvcnRlclZhbHVlQ2hhbmdlLmVtaXQoeyAuLi52YWx1ZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgc29ydGVyVmFsdWUoKTogSVNvcnRlclZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydGVyVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9zb3J0ZXJWYWx1ZTogSVNvcnRlclZhbHVlID0ge307XG5cbiAgQElucHV0KClcbiAgc2V0IHRhYmxlRmlsdGVyKGZpbHRlcikge1xuICAgIHRoaXMuX3RhYmxlRmlsdGVyID0gZmlsdGVyO1xuICAgIGlmICh0eXBlb2YgZmlsdGVyID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhpcy50YWJsZUZpbHRlckxhYmVsID0gdHlwZW9mIGZpbHRlci5sYWJlbCA9PT0gJ3N0cmluZycgPyBmaWx0ZXIubGFiZWwgOiB0aGlzLnRhYmxlRmlsdGVyTGFiZWw7XG4gICAgICB0aGlzLnRhYmxlRmlsdGVyUGxhY2Vob2xkZXIgPSB0eXBlb2YgZmlsdGVyLnBsYWNlaG9sZGVyID09PSAnc3RyaW5nJyA/IGZpbHRlci5wbGFjZWhvbGRlciA6IHRoaXMudGFibGVGaWx0ZXJQbGFjZWhvbGRlcjtcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJWYWx1ZSA9IHR5cGVvZiBmaWx0ZXIudmFsdWUgPT09ICdzdHJpbmcnID8gZmlsdGVyLnZhbHVlIDogdGhpcy50YWJsZUZpbHRlclZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0YWJsZUZpbHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fdGFibGVGaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIF90YWJsZUZpbHRlcj86IGJvb2xlYW4gfCBJVGFibGVGaWx0ZXI7XG5cbiAgQElucHV0KCkgdGFibGVGaWx0ZXJMYWJlbCA9ICdGaWx0ZXI6JztcbiAgQElucHV0KCkgdGFibGVGaWx0ZXJQbGFjZWhvbGRlciA9ICd0eXBlIHN0cmluZy4uLic7XG5cbiAgQElucHV0KClcbiAgc2V0IHRhYmxlRmlsdGVyVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLl90YWJsZUZpbHRlclZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5fdGFibGVGaWx0ZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy50YWJsZUZpbHRlclZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgdGhpcy50YWJsZUZpbHRlcmVkOyAvLyBlbWl0cyB0YWJsZUZpbHRlcmVkIGNoYW5nZVxuICAgIH1cbiAgfVxuXG4gIGdldCB0YWJsZUZpbHRlclZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlRmlsdGVyVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF90YWJsZUZpbHRlclZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSB0YWJsZUJvZHlQcm9wcz86IElUYWJsZUdyb3VwUHJvcHMgPSB7fTtcbiAgQElucHV0KCkgdGFibGVGb290UHJvcHM/OiBJVGFibGVHcm91cFByb3BzID0ge307XG4gIEBJbnB1dCgpIHRhYmxlSGVhZFByb3BzPzogSVRhYmxlR3JvdXBQcm9wcyA9IHt9O1xuICBASW5wdXQoKSB0YWJsZVByb3BzPzogSVRhYmxlID0ge307XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBzb3J0ZXJWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGFjdGl2ZVBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBpdGVtc1BlclBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByb3dDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNvbHVtbkZpbHRlclZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZmlsdGVyZWRJdGVtc0NoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHRhYmxlRmlsdGVyVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZUlkRGlyZWN0aXZlKSBjb2x1bW5UZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8VGVtcGxhdGVJZERpcmVjdGl2ZT47XG4gIHRlbXBsYXRlczogeyBba2V5OiBzdHJpbmddOiAoVGVtcGxhdGVSZWY8YW55PiB8IG51bGwpIH0gPSB7IHRhYmxlRGV0YWlsczogbnVsbCwgdGFibGVEYXRhOiBudWxsIH07XG4gIGNvbHVtbkZpbHRlclRlbXBsYXRlczogeyBba2V5OiBzdHJpbmddOiAoVGVtcGxhdGVSZWY8YW55PiB8IG51bGwpIH0gPSB7fTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5UZW1wbGF0ZXMuZm9yRWFjaCgoY2hpbGQ6IFRlbXBsYXRlSWREaXJlY3RpdmUpID0+IHtcbiAgICAgIGlmIChjaGlsZC5pZC5zdGFydHNXaXRoKCdjb2x1bW5GaWx0ZXJfJykpIHtcbiAgICAgICAgdGhpcy5jb2x1bW5GaWx0ZXJUZW1wbGF0ZXNbY2hpbGQuaWRdID0gY2hpbGQudGVtcGxhdGVSZWY7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMudGVtcGxhdGVzW2NoaWxkLmlkXSA9IGNoaWxkLnRlbXBsYXRlUmVmO1xuICAgIH0pO1xuICAgIHRoaXMuY29sdW1uRmlsdGVyVGVtcGxhdGVzID0geyAuLi50aGlzLmNvbHVtbkZpbHRlclRlbXBsYXRlcyB9O1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkQWxsKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uX3NlbGVjdGVkID09PSB0cnVlKTtcbiAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID09PSAwID8gZmFsc2UgOiBzZWxlY3RlZC5sZW5ndGggPT09IHRoaXMuaXRlbXMubGVuZ3RoID8gdHJ1ZSA6ICdpbmRldGVybWluYXRlJztcbiAgICAvLyByZXR1cm4gdGhpcy5fc2VsZWN0ZWRBbGw7XG4gIH1cblxuICBzZXQgc2VsZWN0ZWRBbGwodmFsdWUpIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLl9zZWxlY3RlZCA9PT0gdHJ1ZSk7XG4gICAgdGhpcy5fc2VsZWN0ZWRBbGwgPSBzZWxlY3RlZC5sZW5ndGggPT09IDAgPyBmYWxzZSA6IHNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5pdGVtcy5sZW5ndGggPyB0cnVlIDogJ2luZGV0ZXJtaW5hdGUnO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtc0NoYW5nZS5lbWl0KHNlbGVjdGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkQWxsOiAoYm9vbGVhbiB8IHN0cmluZykgPSBmYWxzZTtcblxuICBnZXQgdGFibGVGaWx0ZXJTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUZpbHRlclZhbHVlID8gdGhpcy50YWJsZUZpbHRlclZhbHVlIDogJyc7XG4gIH1cblxuICBnZXQgY29sdW1uRmlsdGVyU3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uRmlsdGVyVmFsdWUgPyB0aGlzLmNvbHVtbkZpbHRlclZhbHVlIDoge307XG4gIH1cblxuICBnZXQgbnVtYmVyT2ZQYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2UgPyBNYXRoLmNlaWwodGhpcy5zb3J0ZWRJdGVtcy5sZW5ndGggLyB0aGlzLl9pdGVtc1BlclBhZ2UpIDogMTtcbiAgfVxuXG4gIGdldCBjb2xzcGFuKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGUgPyB0aGlzLnJhd0NvbHVtbk5hbWVzLmxlbmd0aCArIDEgOiB0aGlzLnJhd0NvbHVtbk5hbWVzLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBmaXJzdEl0ZW1PbkFjdGl2ZVBhZ2VJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQYWdlID8gKHRoaXMuX2FjdGl2ZVBhZ2UgLSAxKSAqIHRoaXMuX2l0ZW1zUGVyUGFnZSA6IDA7XG4gIH1cblxuICBnZXQgaXRlbXNPbkFjdGl2ZVBhZ2UoKTogSUl0ZW1JbnRlcm5hbFtdIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRJdGVtcy5zbGljZShcbiAgICAgIHRoaXMuZmlyc3RJdGVtT25BY3RpdmVQYWdlSW5kZXgsXG4gICAgICB0aGlzLmZpcnN0SXRlbU9uQWN0aXZlUGFnZUluZGV4ICsgdGhpcy5faXRlbXNQZXJQYWdlXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50SXRlbXMoKTogSUl0ZW1JbnRlcm5hbFtdIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlUGFnZSA/IHRoaXMuaXRlbXNPbkFjdGl2ZVBhZ2UgOiB0aGlzLnNvcnRlZEl0ZW1zID8/IFtdO1xuICAgIC8vIHJldHVybiB0aGlzLml0ZW1zID8/IFtdO1xuICB9XG5cbiAgZ2V0IGdlbkNvbHMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2l0ZW1zID8gdGhpcy5faXRlbXNbMF0gPz8ge30gOiB7fSkuZmlsdGVyKChlbCkgPT4gZWwuY2hhckF0KDApICE9PSAnXycpO1xuICB9XG5cbiAgZ2V0IHJhd0NvbHVtbk5hbWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zID8gdGhpcy5fY29sdW1ucy5tYXAoY29sdW1uID0+IHR5cGVvZiBjb2x1bW4gPT09ICdvYmplY3QnID8gY29sdW1uLmtleSA6IGNvbHVtbilcbiAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZ2VuQ29scztcbiAgfVxuXG4gIGdldCBpdGVtc0RhdGFDb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLnJhd0NvbHVtbk5hbWVzLmZpbHRlcigobmFtZSkgPT4gdGhpcy5nZW5Db2xzLmluY2x1ZGVzKG5hbWUpKTtcbiAgfVxuXG4gIGdldCBzb3J0ZWRJdGVtcygpOiBJSXRlbUludGVybmFsW10ge1xuICAgIGNvbnN0IGNvbHVtbktleSA9IHRoaXMuc29ydGVyVmFsdWUuY29sdW1uO1xuICAgIGlmIChcbiAgICAgICFjb2x1bW5LZXkgfHxcbiAgICAgICF0aGlzLml0ZW1zRGF0YUNvbHVtbnMuaW5jbHVkZXMoY29sdW1uS2V5KSB8fFxuICAgICAgKHRoaXMuY29sdW1uU29ydGVyICYmXG4gICAgICAgIHR5cGVvZiB0aGlzLmNvbHVtblNvcnRlciA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgdGhpcy5jb2x1bW5Tb3J0ZXIuZXh0ZXJuYWwpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJsZUZpbHRlcmVkO1xuICAgIH1cbiAgICBjb25zdCB0YWJsZUZpbHRlcmVkID0gWy4uLnRoaXMudGFibGVGaWx0ZXJlZF07XG5cbiAgICAvLyBpZiB2YWx1ZXMgaW4gY29sdW1uIGFyZSB0byBiZSBzb3J0ZWQgYnkgbnVtZXJpYyB2YWx1ZSB0aGV5IGFsbCBoYXZlIHRvIGJlIGEgdHlwZSBvZiBudW1iZXJcbiAgICBjb25zdCBmbGlwID0gdGhpcy5zb3J0ZXJWYWx1ZS5zdGF0ZSA9PT0gJ2FzYycgPyAxIDogdGhpcy5zb3J0ZXJWYWx1ZS5zdGF0ZSA9PT0gJ2Rlc2MnID8gLTEgOiAwO1xuXG4gICAgaWYgKGZsaXAgPT09IDApIHtcbiAgICAgIHJldHVybiB0YWJsZUZpbHRlcmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRDb2x1bW4gPSB0aGlzLmNvbHVtbnMuZmluZCgoY29sdW1uKSA9PiB0eXBlb2YgY29sdW1uID09PSAnb2JqZWN0JyAmJiBjb2x1bW4ua2V5ID09PSBjb2x1bW5LZXkpO1xuICAgIGlmICh0eXBlb2YgY3VycmVudENvbHVtbiA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGN1cnJlbnRDb2x1bW4uc29ydGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBzb3J0ZWQgPSB0YWJsZUZpbHRlcmVkLnNsaWNlKCkuc29ydChjdXJyZW50Q29sdW1uLnNvcnRlcik7XG4gICAgICByZXR1cm4gZmxpcCA8IDAgPyBzb3J0ZWQucmV2ZXJzZSgpIDogc29ydGVkO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBhcmVGbiA9IChpdGVtMTogeyBbeDogc3RyaW5nXTogYW55OyB9LCBpdGVtMjogeyBbeDogc3RyaW5nXTogYW55OyB9KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTEgPSBpdGVtMVtjb2x1bW5LZXldO1xuICAgICAgY29uc3QgdmFsdWUyID0gaXRlbTJbY29sdW1uS2V5XTtcbiAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdmFsdWUxID09PSAnbnVtYmVyJyA/IHZhbHVlMSA6IFN0cmluZyh2YWx1ZTEpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBiID0gdHlwZW9mIHZhbHVlMiA9PT0gJ251bWJlcicgPyB2YWx1ZTIgOiBTdHJpbmcodmFsdWUyKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIGEgPiBiID8gMSAqIGZsaXAgOiBiID4gYSA/IC0xICogZmxpcCA6IDA7XG4gICAgfTtcblxuICAgIHJldHVybiB0YWJsZUZpbHRlcmVkLnNsaWNlKCkuc29ydChjb21wYXJlRm4pO1xuICB9XG5cbiAgZ2V0IHRhYmxlRmlsdGVyRXZlbnQoKTogJ2NoYW5nZScgfCAnaW5wdXQnIHtcbiAgICByZXR1cm4gKHR5cGVvZiB0aGlzLnRhYmxlRmlsdGVyID09PSAnb2JqZWN0JyAmJiB0aGlzLnRhYmxlRmlsdGVyLmxhenkpID8gJ2NoYW5nZScgOiAnaW5wdXQnO1xuICB9O1xuXG4gIHByaXZhdGUgX2NvbHVtbkZpbHRlcmVkOiBJSXRlbUludGVybmFsW10gPSBbXTtcblxuICBnZXQgY29sdW1uRmlsdGVyZWQoKTogSUl0ZW1JbnRlcm5hbFtdIHtcbiAgICBsZXQgX2l0ZW1zID0gdGhpcy5faXRlbXM7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb2x1bW5GaWx0ZXIgJiZcbiAgICAgIHR5cGVvZiB0aGlzLmNvbHVtbkZpbHRlciA9PT0gJ29iamVjdCcgJiZcbiAgICAgIHRoaXMuY29sdW1uRmlsdGVyLmV4dGVybmFsXG4gICAgKSB7XG4gICAgICB0aGlzLl9jb2x1bW5GaWx0ZXJlZCA9IF9pdGVtcztcbiAgICAgIHJldHVybiBfaXRlbXM7XG4gICAgfVxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuY29sdW1uRmlsdGVyU3RhdGUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICBfaXRlbXMgPSBfaXRlbXMuZmlsdGVyKChpdGVtKSA9PiB2YWx1ZShpdGVtW2tleV0pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjdXJyZW50Q29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbmQoY29sdW1uID0+IHR5cGVvZiBjb2x1bW4gPT09ICdvYmplY3QnICYmIGNvbHVtbi5rZXkgPT09IGtleSk7XG4gICAgICBpZiAodHlwZW9mIGN1cnJlbnRDb2x1bW4gPT09ICdvYmplY3QnICYmIHR5cGVvZiBjdXJyZW50Q29sdW1uLmZpbHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBfaXRlbXMgPSBfaXRlbXMuZmlsdGVyKChpdGVtKSA9PiAodHlwZW9mIGN1cnJlbnRDb2x1bW4uZmlsdGVyID09PSAnZnVuY3Rpb24nICYmIGN1cnJlbnRDb2x1bW4uZmlsdGVyKGl0ZW0sIHZhbHVlKSkgPz8gIXZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2x1bW5GaWx0ZXIgPSBTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoY29sdW1uRmlsdGVyICYmIHRoaXMuaXRlbXNEYXRhQ29sdW1ucy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgIF9pdGVtcyA9IF9pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtW2tleV0pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY29sdW1uRmlsdGVyKSk7XG4gICAgICB9XG5cbiAgICB9KTtcbiAgICB0aGlzLl9jb2x1bW5GaWx0ZXJlZCA9IF9pdGVtcztcbiAgICByZXR1cm4gX2l0ZW1zO1xuICB9XG5cbiAgZ2V0IHRhYmxlRmlsdGVyZWQoKTogSUl0ZW1JbnRlcm5hbFtdIHtcbiAgICBsZXQgaXRlbXMgPSB0aGlzLmNvbHVtbkZpbHRlcmVkO1xuICAgIGlmIChcbiAgICAgICF0aGlzLnRhYmxlRmlsdGVyU3RhdGUgfHxcbiAgICAgICh0aGlzLnRhYmxlRmlsdGVyICYmIHR5cGVvZiB0aGlzLnRhYmxlRmlsdGVyID09PSAnb2JqZWN0JyAmJiB0aGlzLnRhYmxlRmlsdGVyLmV4dGVybmFsKVxuICAgICkge1xuICAgICAgaWYgKHRoaXMuaXRlbXNGaWx0ZXJlZERpZmZlcikge1xuICAgICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5pdGVtc0ZpbHRlcmVkRGlmZmVyLmRpZmYoaXRlbXMpO1xuICAgICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWRJdGVtc0NoYW5nZS5lbWl0KGl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnRhYmxlRmlsdGVyU3RhdGUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCB2YWx1ZUNvbnRhaW5GaWx0ZXIgPSAodmFsOiBhbnkpID0+IFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW06IHsgW3g6IHN0cmluZ106IGFueTsgfSkgPT4ge1xuICAgICAgcmV0dXJuICEhdGhpcy5pdGVtc0RhdGFDb2x1bW5zLmZpbmQoKGtleSkgPT4gdmFsdWVDb250YWluRmlsdGVyKGl0ZW1ba2V5XSkpO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLml0ZW1zRmlsdGVyZWREaWZmZXIpIHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLml0ZW1zRmlsdGVyZWREaWZmZXIuZGlmZihpdGVtcyk7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXNDaGFuZ2UuZW1pdChpdGVtcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIGdldCBpc0ZpbHRlcmVkKCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlRmlsdGVyU3RhdGUgfHwgdGhpcy5zb3J0ZXJWYWx1ZT8uY29sdW1uIHx8IE9iamVjdC52YWx1ZXModGhpcy5jb2x1bW5GaWx0ZXJTdGF0ZSkuam9pbignJyk7XG4gIH1cblxuICBwcml2YXRlIHNldEl0ZW1zKGl0ZW1zOiBJSXRlbVtdKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBJSXRlbSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICByZXR1cm4geyAuLi5pdGVtLCBfaWQ6IGluZGV4IH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIDxJSXRlbUludGVybmFsPltdO1xuICB9XG5cbiAgaGFuZGxlU29ydENoYW5nZSgkZXZlbnQ6IHsgY29sdW1uS2V5OiBzdHJpbmc7IGluZGV4OiBudW1iZXI7IH0pIHtcbiAgICB0aGlzLmhhbmRsZVNvcnRlckNoYW5nZSgkZXZlbnQuY29sdW1uS2V5LCAkZXZlbnQuaW5kZXgpO1xuICB9XG5cbiAgaXNTb3J0YWJsZShpOiBudW1iZXIpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RhdGFDb2x1bW4gPSB0aGlzLml0ZW1zRGF0YUNvbHVtbnMuaW5jbHVkZXModGhpcy5yYXdDb2x1bW5OYW1lc1tpXSk7XG4gICAgbGV0IGNvbHVtbjtcbiAgICBpZiAodGhpcy5jb2x1bW5zKSB7XG4gICAgICBjb2x1bW4gPSB0aGlzLmNvbHVtbnNbaV07XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbHVtblNvcnRlciAmJlxuICAgICAgKCF0aGlzLmNvbHVtbnMgfHxcbiAgICAgICAgdHlwZW9mIGNvbHVtbiAhPT0gJ29iamVjdCcgfHxcbiAgICAgICAgKHR5cGVvZiBjb2x1bW4gPT09ICdvYmplY3QnICYmICh0eXBlb2YgY29sdW1uLnNvcnRlciA9PT0gJ3VuZGVmaW5lZCcgfHwgY29sdW1uLnNvcnRlcikpXG4gICAgICApICYmIGlzRGF0YUNvbHVtblxuICAgICk7XG4gIH1cblxuICBoYW5kbGVTb3J0ZXJDaGFuZ2UoY29sdW1uOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTb3J0YWJsZShpbmRleCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy9pZiBjb2x1bW4gY2hhbmdlZCBvciBzb3J0IHdhcyBkZXNjZW5kaW5nIGNoYW5nZSBhc2MgdG8gdHJ1ZVxuICAgIGNvbnN0IHN0YXRlID0geyAuLi50aGlzLnNvcnRlclZhbHVlIH07XG5cbiAgICBpZiAoc3RhdGUuY29sdW1uID09PSBjb2x1bW4pIHtcbiAgICAgIGlmIChzdGF0ZS5zdGF0ZSA9PT0gMCkge1xuICAgICAgICBzdGF0ZS5zdGF0ZSA9ICdhc2MnO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZS5zdGF0ZSA9PT0gJ2FzYycpIHtcbiAgICAgICAgc3RhdGUuc3RhdGUgPSAnZGVzYyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29sdW1uU29ydGVyID09PSAnb2JqZWN0JyAmJiAhdGhpcy5jb2x1bW5Tb3J0ZXIucmVzZXRhYmxlKSB7XG4gICAgICAgICAgc3RhdGUuc3RhdGUgPSAnYXNjJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZS5zdGF0ZSA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUuY29sdW1uID0gY29sdW1uO1xuICAgICAgc3RhdGUuc3RhdGUgPSAnYXNjJztcbiAgICB9XG4gICAgdGhpcy5zb3J0ZXJWYWx1ZSA9IHsgLi4uc3RhdGUgfTtcbiAgfVxuXG4gIHNldEFjdGl2ZVBhZ2UoJGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLmFjdGl2ZVBhZ2UgPSAkZXZlbnQ7XG4gIH1cblxuICBoYW5kbGVDb2x1bW5GaWx0ZXJDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB7IGNvbHVtbiwgdmFsdWUsIHR5cGUgfSA9ICRldmVudDtcbiAgICB0aGlzLnNldEFjdGl2ZVBhZ2UoMSk7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJWYWx1ZSA9IHsgLi4udGhpcy5jb2x1bW5GaWx0ZXJWYWx1ZSwgW2Ake2NvbHVtbn1gXTogdmFsdWUgfTtcbiAgfVxuXG4gIGhhbmRsZVRhYmxlRmlsdGVyQ2hhbmdlKCRldmVudDogeyB2YWx1ZTogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IH0pIHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlIH0gPSAkZXZlbnQ7XG4gICAgY29uc3QgaXNMYXp5ID0gdHlwZW9mIHRoaXMudGFibGVGaWx0ZXIgPT09ICdvYmplY3QnICYmIHRoaXMudGFibGVGaWx0ZXIubGF6eSA9PT0gdHJ1ZTtcbiAgICBpZiAoKChpc0xhenkgJiYgdHlwZSA9PT0gJ2lucHV0JykgfHwgKCFpc0xhenkgJiYgdHlwZSA9PT0gJ2NoYW5nZScpKSAmJiB2YWx1ZS5sZW5ndGggIT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZXRBY3RpdmVQYWdlKDEpO1xuICAgIHRoaXMudGFibGVGaWx0ZXJWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgY2xlYW4oJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJWYWx1ZSA9IHt9O1xuICAgIHRoaXMudGFibGVGaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIHRoaXMuc29ydGVyVmFsdWUgPSB7fTtcbiAgICB0aGlzLnRhYmxlRmlsdGVyZWQ7IC8vZW1pdHMgdGFibGVGaWx0ZXJlZCBjaGFuZ2VcbiAgfVxuXG4gIGhhbmRsZUl0ZW1zUGVyUGFnZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9pdGVtc1BlclBhZ2UpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlUGFnZSgxKTtcbiAgICAgIHRoaXMuX2l0ZW1zUGVyUGFnZSA9IHZhbHVlO1xuICAgICAgdGhpcy5pdGVtc1BlclBhZ2VDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlUm93Q2hlY2tlZCgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBJSXRlbUludGVybmFsKSB7XG4gICAgaXRlbS5fc2VsZWN0ZWQgPSAoJGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uX3NlbGVjdGVkID09PSB0cnVlKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXNDaGFuZ2UuZW1pdChzZWxlY3RlZCk7XG4gIH1cblxuICBoYW5kbGVTZWxlY3RBbGxDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLl9pdGVtcyA9IHRoaXMuaXRlbXMubWFwKChpdGVtOiBJSXRlbUludGVybmFsKSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5pdGVtLCBfc2VsZWN0ZWQ6ICRldmVudCB9O1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRBbGwgPSAkZXZlbnQ7XG4gIH1cblxuICB0YWJsZURhdGFDZWxsUHJvcHMoaXRlbTogSUl0ZW0sIGNvbE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHByb3BzID0gaXRlbVsnX2NlbGxQcm9wcyddICYmIHtcbiAgICAgIC4uLihpdGVtWydfY2VsbFByb3BzJ11bJ19hbGwnXSAmJiB7IC4uLml0ZW1bJ19jZWxsUHJvcHMnXVsnX2FsbCddIH0pLFxuICAgICAgLi4uKGl0ZW1bJ19jZWxsUHJvcHMnXVtjb2xOYW1lXSAmJiB7IC4uLml0ZW1bJ19jZWxsUHJvcHMnXVtjb2xOYW1lXSB9KVxuICAgIH07XG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgdGFibGVEYXRhQ2VsbENsYXNzZXMoaXRlbTogSUl0ZW0sIGNvbE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuY29sdW1ucy5maWx0ZXIoKGNvbHVtbikgPT4gdHlwZW9mIGNvbHVtbiA9PT0gJ3N0cmluZycgPyBjb2x1bW4gPT09IGNvbE5hbWUgOiBjb2x1bW5bJ2tleSddID09PSBjb2xOYW1lKTtcbiAgICByZXR1cm4gY29sdW1uWzBdICYmIHR5cGVvZiBjb2x1bW5bMF0gPT09ICdvYmplY3QnID8gY29sdW1uWzBdLl9jbGFzc2VzIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0Q29sdW1uTmFtZSgkZXZlbnQ6IE1vdXNlRXZlbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRhcmdldCA9ICRldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgICBjb25zdCBjbG9zZXN0ID0gdGFyZ2V0LmNsb3Nlc3QoJ3RyJyk7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBjbG9zZXN0ID8gQXJyYXkuZnJvbShjbG9zZXN0LmNoaWxkcmVuKSA6IFtdO1xuICAgIGNvbnN0IGNsaWNrZWRDZWxsID0gY2hpbGRyZW4uZmlsdGVyKChjaGlsZCkgPT4gY2hpbGQuY29udGFpbnModGFyZ2V0KSlbMF07XG4gICAgcmV0dXJuIHRoaXMucmF3Q29sdW1uTmFtZXNbY2hpbGRyZW4uaW5kZXhPZihjbGlja2VkQ2VsbCkgLSAodGhpcy5fc2VsZWN0YWJsZSA/IDEgOiAwKV07XG4gIH1cblxuICBoYW5kbGVSb3dDbGljayhwYXJhbTogeyAkZXZlbnQ6IE1vdXNlRXZlbnQ7IGl0ZW06IElJdGVtSW50ZXJuYWw7IGk6IG51bWJlciB9KSB7XG4gICAgY29uc3QgeyAkZXZlbnQsIGl0ZW0sIGkgfSA9IHsgLi4ucGFyYW0gfTtcbiAgICBjb25zdCBjb2x1bW5OYW1lID0gdGhpcy5nZXRDb2x1bW5OYW1lKHBhcmFtLiRldmVudCk7XG4gICAgdGhpcy5yb3dDbGljay5lbWl0KHsgaXRlbTogaXRlbSwgaW5kZXg6IGkgKyB0aGlzLmZpcnN0SXRlbU9uQWN0aXZlUGFnZUluZGV4LCBjb2x1bW5OYW1lLCBldmVudDogJGV2ZW50IH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydjb2x1bW5GaWx0ZXJWYWx1ZSddKSB7XG4gICAgICBjb25zdCBjb2x1bW5GaWx0ZXJWYWx1ZUNoYW5nZSA9IGNoYW5nZXNbJ2NvbHVtbkZpbHRlclZhbHVlJ107XG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjb2x1bW5GaWx0ZXJWYWx1ZUNoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgICBpZiAodHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoY3VycmVudFZhbHVlID8/IHt9KS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVQYWdlKDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndGFibGVGaWx0ZXJWYWx1ZSddKSB7XG4gICAgICBjb25zdCB0YWJsZUZpbHRlclZhbHVlQ2hhbmdlID0gY2hhbmdlc1sndGFibGVGaWx0ZXJWYWx1ZSddO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGFibGVGaWx0ZXJWYWx1ZUNoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgICBpZiAoY3VycmVudFZhbHVlLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnNldEFjdGl2ZVBhZ2UoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXRlbXNQZXJQYWdlU2VsZWN0IHx8IHRhYmxlRmlsdGVyIHx8IGNsZWFuZXIgfHwgdGVtcGxhdGVzWyd0YWJsZUN1c3RvbUhlYWRlciddXCIgY2xhc3M9XCJyb3cgbXktMiBteC0wXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBwLTBcIiAqbmdJZj1cInRhYmxlRmlsdGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlRmlsdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBwLTBcIiAqbmdJZj1cImNsZWFuZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVDbGVhbmVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXNbJ3RhYmxlQ3VzdG9tSGVhZGVyJ10gfHwgdGFibGVDdXN0b21IZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdGFibGVGaWx0ZXJUZW1wbGF0ZT5cbiAgICA8Yy1zbWFydC10YWJsZS1maWx0ZXJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVUYWJsZUZpbHRlckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICpuZ0lmPVwidGFibGVGaWx0ZXJcIlxuICAgICAgW2RlbGF5XT1cIjMwMFwiXG4gICAgICBbZmlsdGVyTGFiZWxdPVwidGFibGVGaWx0ZXJMYWJlbFwiXG4gICAgICBbZmlsdGVyUGxhY2Vob2xkZXJdPVwidGFibGVGaWx0ZXJQbGFjZWhvbGRlclwiXG4gICAgICBbb25FdmVudF09XCJ0YWJsZUZpbHRlckV2ZW50XCJcbiAgICAgIFt2YWx1ZV09XCJ0YWJsZUZpbHRlclN0YXRlXCJcbiAgICAgIGNGaWx0ZXJJbnB1dFxuICAgID5cbiAgICA8L2Mtc21hcnQtdGFibGUtZmlsdGVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdGFibGVDbGVhbmVyVGVtcGxhdGU+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cImNsZWFuKCRldmVudClcIlxuICAgICAgKm5nSWY9XCJjbGVhbmVyXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNGaWx0ZXJlZFwiXG4gICAgICBbbmdDbGFzc109XCJ7J21zLTEnOiB0YWJsZUZpbHRlcn1cIlxuICAgICAgW3RhYmluZGV4XT1cIjBcIlxuICAgICAgY0J1dHRvblxuICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgIGNvbG9yPVwidHJhbnNwYXJlbnRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWx0ZXJJY29uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI3RhYmxlQ3VzdG9tSGVhZGVyVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHAtMCBtcy1hdXRvXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY3VzdG9tSGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gIDx0YWJsZSBbYWxpZ25dPVwidGFibGVQcm9wcz8uYWxpZ25cIlxuICAgICAgICAgW2JvcmRlckNvbG9yXT1cInRhYmxlUHJvcHM/LmJvcmRlckNvbG9yXCJcbiAgICAgICAgIFtib3JkZXJlZF09XCJ0YWJsZVByb3BzPy5ib3JkZXJlZFwiXG4gICAgICAgICBbYm9yZGVybGVzc109XCJ0YWJsZVByb3BzPy5ib3JkZXJsZXNzXCJcbiAgICAgICAgIFtjYXB0aW9uXT1cInRhYmxlUHJvcHM/LmNhcHRpb25cIlxuICAgICAgICAgW2NvbG9yXT1cInRhYmxlUHJvcHM/LmNvbG9yXCJcbiAgICAgICAgIFtob3Zlcl09XCJ0YWJsZVByb3BzPy5ob3ZlclwiXG4gICAgICAgICBbcmVzcG9uc2l2ZV09XCJ0YWJsZVByb3BzPy5yZXNwb25zaXZlXCJcbiAgICAgICAgIFtzbWFsbF09XCJ0YWJsZVByb3BzPy5zbWFsbFwiXG4gICAgICAgICBbc3RyaXBlZF09XCJ0YWJsZVByb3BzPy5zdHJpcGVkXCJcbiAgICAgICAgIFtjSHRtbEF0dHJdPVwidGFibGVQcm9wcz8uYXR0cmlidXRlcyA/PyB7fVwiXG4gICAgICAgICBbY1RhYmxlQ29sb3JdPVwidGFibGVQcm9wcz8uY29sb3JcIlxuICAgICAgICAgY1RhYmxlXG4gID5cbiAgICA8Yy1zbWFydC10YWJsZS1oZWFkXG4gICAgICAoY29sdW1uRmlsdGVyU3RhdGVDaGFuZ2UpPVwiaGFuZGxlQ29sdW1uRmlsdGVyQ2hhbmdlKCRldmVudClcIlxuICAgICAgKHNlbGVjdEFsbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoc29ydGVyU3RhdGVDaGFuZ2UpPVwiaGFuZGxlU29ydENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICpuZ0lmPVwiaGVhZGVyXCJcbiAgICAgIFtjb2x1bW5GaWx0ZXJTdGF0ZV09XCJjb2x1bW5GaWx0ZXJTdGF0ZVwiXG4gICAgICBbY29sdW1uRmlsdGVyXT1cImNvbHVtbkZpbHRlclwiXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgIFtzZWxlY3RBbGxdPVwic2VsZWN0ZWRBbGxcIlxuICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gICAgICBbY29sdW1uU29ydGVyXT1cImNvbHVtblNvcnRlclwiXG4gICAgICBbc29ydGVyVmFsdWVdPVwic29ydGVyVmFsdWVcIlxuICAgICAgW2NIdG1sQXR0cl09XCJ0YWJsZUhlYWRQcm9wcz8uYXR0cmlidXRlcyA/PyB7fVwiXG4gICAgICBbY1RhYmxlQ29sb3JdPVwidGFibGVIZWFkUHJvcHM/LmNvbG9yXCJcbiAgICAgIFtjQWxpZ25dPVwidGFibGVIZWFkUHJvcHM/LmFsaWduXCJcbiAgICAgIFtjb2x1bW5GaWx0ZXJUZW1wbGF0ZXNdPVwiY29sdW1uRmlsdGVyVGVtcGxhdGVzXCJcbiAgICA+PC9jLXNtYXJ0LXRhYmxlLWhlYWQ+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGJvZHlEZWZhdWx0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDxjLXNtYXJ0LXRhYmxlLWhlYWRcbiAgICAgIChzZWxlY3RBbGxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIlxuICAgICAgKHNvcnRlclN0YXRlQ2hhbmdlKT1cImhhbmRsZVNvcnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAqbmdJZj1cImZvb3RlclwiXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgIFtzZWxlY3RBbGxdPVwic2VsZWN0ZWRBbGxcIlxuICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gICAgICBbY29sdW1uU29ydGVyXT1cImNvbHVtblNvcnRlclwiXG4gICAgICBbc29ydGVyVmFsdWVdPVwic29ydGVyVmFsdWVcIlxuICAgICAgW2NIdG1sQXR0cl09XCJ0YWJsZUZvb3RQcm9wcz8uYXR0cmlidXRlcyA/PyB7fVwiXG4gICAgICBbY1RhYmxlQ29sb3JdPVwidGFibGVGb290UHJvcHM/LmNvbG9yXCJcbiAgICAgIFtjQWxpZ25dPVwidGFibGVGb290UHJvcHM/LmFsaWduXCJcbiAgICAgIGNvbXBvbmVudD1cInRmb290XCJcbiAgICAgIFtjb2x1bW5GaWx0ZXJUZW1wbGF0ZXNdPVwiY29sdW1uRmlsdGVyVGVtcGxhdGVzXCJcbiAgICA+PC9jLXNtYXJ0LXRhYmxlLWhlYWQ+XG5cbiAgPC90YWJsZT5cbiAgPGMtZWxlbWVudC1jb3ZlclxuICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgW2JvdW5kYXJpZXNdPVwiW1xuICAgICAgeyBzaWRlczogWyd0b3AnXSwgcXVlcnk6ICd0ZCcgfSxcbiAgICAgIHsgc2lkZXM6IFsnYm90dG9tJ10sIHF1ZXJ5OiAndGJvZHknIH1cbiAgICBdXCJcbiAgPjwvYy1lbGVtZW50LWNvdmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgW25nSWZdPVwicGFnaW5hdGlvbiB8fCBpdGVtc1BlclBhZ2VTZWxlY3RcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgIDxjLXNtYXJ0LXBhZ2luYXRpb25cbiAgICAgICAgKGFjdGl2ZVBhZ2VDaGFuZ2UpPVwic2V0QWN0aXZlUGFnZSgkZXZlbnQpXCJcbiAgICAgICAgKm5nSWY9XCJwYWdpbmF0aW9uICYmIG51bWJlck9mUGFnZXMgPiAxXCJcbiAgICAgICAgW2FjdGl2ZVBhZ2VdPVwiYWN0aXZlUGFnZVwiXG4gICAgICAgIFtwYWdlc109XCJudW1iZXJPZlBhZ2VzXCI+XG4gICAgICA8L2Mtc21hcnQtcGFnaW5hdGlvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gbXMtYXV0b1wiPlxuICAgICAgPGMtc21hcnQtdGFibGUtaXRlbXMtcGVyLXBhZ2Utc2VsZWN0b3JcbiAgICAgICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJoYW5kbGVJdGVtc1BlclBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICpuZ0lmPVwiaXRlbXNQZXJQYWdlU2VsZWN0XCJcbiAgICAgICAgW2l0ZW1zUGVyUGFnZUxhYmVsXT1cIml0ZW1zUGVyUGFnZUxhYmVsXCJcbiAgICAgICAgW2l0ZW1zUGVyUGFnZU9wdGlvbnNdPVwiaXRlbXNQZXJQYWdlT3B0aW9uc1wiXG4gICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCJcbiAgICAgID5cbiAgICAgIDwvYy1zbWFydC10YWJsZS1pdGVtcy1wZXItcGFnZS1zZWxlY3Rvcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Rib2R5RGVmYXVsdFRlbXBsYXRlPlxuICA8dGJvZHkgW2NIdG1sQXR0cl09XCJ0YWJsZUJvZHlQcm9wcz8uYXR0cmlidXRlcyA/PyB7fVwiXG4gICAgICAgICBbY1RhYmxlQ29sb3JdPVwidGFibGVCb2R5UHJvcHM/LmNvbG9yXCJcbiAgICAgICAgIFtjQWxpZ25dPVwidGFibGVCb2R5UHJvcHM/LmFsaWduXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWl0ZW0gW25nRm9yT2ZdPVwiY3VycmVudEl0ZW1zXCIgbGV0LWNudD1cImNvdW50XCIgbGV0LWk9XCJpbmRleFwiIGxldC1pc0V2ZW49XCJldmVuXCIgbGV0LWlzT2RkPVwib2RkXCI+XG4gICAgPHRyIFt0YWJpbmRleF09XCJjbGlja2FibGVSb3dzID8gMCA6IC0xXCJcbiAgICAgICAgW25nU3R5bGVdPVwie2N1cnNvcjogY2xpY2thYmxlUm93cyA/ICdwb2ludGVyJyA6ICdhdXRvJ31cIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlUm93Q2xpY2soeyRldmVudCwgaXRlbSwgaX0pXCJcbiAgICAgICAgW2NUYWJsZUFjdGl2ZV09XCJpdGVtLl9wcm9wcz8uYWN0aXZlXCJcbiAgICAgICAgW2NUYWJsZUNvbG9yXT1cIml0ZW0uX3Byb3BzPy5jb2xvclwiXG4gICAgICAgIFtjQWxpZ25dPVwiaXRlbS5fcHJvcHM/LmFsaWduXCJcbiAgICA+XG4gICAgICA8dGQgKm5nSWY9XCJzZWxlY3RhYmxlXCJcbiAgICAgICAgICBbY1RhYmxlQWN0aXZlXT1cIml0ZW0/LlsnX2NlbGxQcm9wcyddPy5fYWxsPy5hY3RpdmVcIlxuICAgICAgICAgIFtjVGFibGVDb2xvcl09XCJpdGVtPy5bJ19jZWxsUHJvcHMnXT8uX2FsbD8uY29sb3JcIlxuICAgICAgICAgIFtjQWxpZ25dPVwiaXRlbT8uWydfY2VsbFByb3BzJ10/Ll9hbGw/LmFsaWduXCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwiaGFuZGxlUm93Q2hlY2tlZCgkZXZlbnQsIGl0ZW0pXCIgW2NoZWNrZWRdPVwiaXRlbS5fc2VsZWN0ZWQgPz8gZmFsc2VcIiBjRm9ybUNoZWNrSW5wdXQ+XG4gICAgICA8L3RkPlxuICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jb2x1bW5OYW1lIFtuZ0Zvck9mXT1cInJhd0NvbHVtbk5hbWVzXCIgbGV0LWk9XCJpbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXNbJ3RhYmxlRGF0YSddIHx8IGNvbHVtbkRlZmF1bHRUZW1wbGF0ZTsgY29udGV4dDoge2l0ZW0sIGNvbHVtbk5hbWUsIHRkQ29udGVudDogaXRlbVtjb2x1bW5OYW1lXSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvdHI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInRlbXBsYXRlc1sndGFibGVEZXRhaWxzJ11cIj5cbiAgICAgIDwhLS0gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93RGV0YWlsc0RlZmF1bHRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPi0tPlxuICAgICAgPHRyPlxuICAgICAgICA8dGQgW2NvbFNwYW5dPVwiY29sc3BhblwiIGNsYXNzPVwicC0wXCIgdGFiaW5kZXg9XCItMVwiIFtuZ1N0eWxlXT1cIntib3JkZXJCb3R0b21XaWR0aDogMH1cIj48L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cInAtMFwiPlxuICAgICAgICA8dGQgW2NvbFNwYW5dPVwiY29sc3BhblwiIGNsYXNzPVwicC0wXCIgW25nU3R5bGVdPVwie2JvcmRlcjogMH1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzWyd0YWJsZURldGFpbHMnXTsgY29udGV4dDoge2l0ZW0sIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9JdGVtc0RlZmF1bHRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L3Rib2R5PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5EZWZhdWx0VGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWNvbHVtbk5hbWU9XCJjb2x1bW5OYW1lXCIgbGV0LXRkQ29udGVudD1cInRkQ29udGVudFwiPlxuICA8dGRcbiAgICBbY1RhYmxlQWN0aXZlXT1cInRhYmxlRGF0YUNlbGxQcm9wcyhpdGVtLCBjb2x1bW5OYW1lKT8uWydhY3RpdmUnXVwiXG4gICAgW2NUYWJsZUNvbG9yXT1cInRhYmxlRGF0YUNlbGxQcm9wcyhpdGVtLCBjb2x1bW5OYW1lKT8uY29sb3JcIlxuICAgIFtjQWxpZ25dPVwidGFibGVEYXRhQ2VsbFByb3BzKGl0ZW0sIGNvbHVtbk5hbWUpPy5hbGlnblwiXG4gICAgW25nQ2xhc3NdPVwidGFibGVEYXRhQ2VsbENsYXNzZXMoaXRlbSwgY29sdW1uTmFtZSlcIlxuICA+XG4gICAge3t0ZENvbnRlbnR9fVxuICA8L3RkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLTxuZy10ZW1wbGF0ZSAjcm93RGV0YWlsc0RlZmF1bHRUZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaW5kZXg+LS0+XG48IS0tICA8dHI+PHRkIFtjb2xTcGFuXT1cImNvbHNwYW5cIiBjbGFzcz1cInAtMFwiIHRhYmluZGV4PVwiLTFcIiBbbmdTdHlsZV09XCJ7Ym9yZGVyQm90dG9tV2lkdGg6IDB9XCI+PC90ZD48L3RyPi0tPlxuPCEtLSAgPHRyIGNsYXNzPVwicC0wXCI+LS0+XG48IS0tICAgIDx0ZCBbY29sU3Bhbl09XCJjb2xzcGFuXCIgY2xhc3M9XCJwLTBcIiBbbmdTdHlsZV09XCJ7Ym9yZGVyOiAwfVwiPi0tPlxuPCEtLSAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXM/LnRhYmxlRGV0YWlsc1wiPjwvbmctY29udGFpbmVyPi0tPlxuPCEtLSAgICA8L3RkPi0tPlxuPCEtLSAgPC90cj4tLT5cbjwhLS08L25nLXRlbXBsYXRlPi0tPlxuXG48bmctdGVtcGxhdGUgI25vSXRlbXNEZWZhdWx0VGVtcGxhdGU+XG4gIDx0ciAqbmdJZj1cIiFjdXJyZW50SXRlbXMubGVuZ3RoXCI+XG4gICAgPHRkIFtjb2xTcGFuXT1cImNvbHNwYW5cIiBjbGFzcz1cImp1c3RpZnktY29udGVudC1jZW50ZXJcIj57e25vSXRlbXNMYWJlbH19PC90ZD5cbiAgPC90cj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS10b2RvOiBmaWx0ZXJJY29uQ3VzdG9tVGVtcGxhdGUtLT5cbjxuZy10ZW1wbGF0ZSAjZmlsdGVySWNvblRlbXBsYXRlPlxuICA8c3ZnIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBwb2ludGVyLWV2ZW50cz1cIm5vbmVcIiByb2xlPVwiaW1nXCJcbiAgICAgICBjbGFzcz1cImljb24gaWNvbi1jdXN0b20tc2l6ZVwiIHdpZHRoPVwiMThcIj5cbiAgICA8cG9seWdvblxuICAgICAgZmlsbD1cInZhcigtLWNpLXByaW1hcnktY29sb3IsIGN1cnJlbnRDb2xvcilcIlxuICAgICAgcG9pbnRzPVwiNDAgMTYgNDAgNTMuODI4IDEwOS4wMjQgMTM2IDE1MC44MTUgMTM2IDc2Ljg5NiA0OCA0NTkuNTEgNDggMzA0IDI0Mi4zODggMzA0IDQwMS4zNzMgMjQxLjM3MyA0NjQgMjQwIDQ2NCAyNDAgMzY4IDIwOCAzNjggMjA4IDQ5NiAyNTQuNjI3IDQ5NiAzMzYgNDE0LjYyNyAzMzYgMjUzLjYxMiA0OTYgNTMuNjEyIDQ5NiAxNiA0MCAxNlwiXG4gICAgICBjbGFzcz1cImNpLXByaW1hcnlcIj5cbiAgICA8L3BvbHlnb24+XG4gICAgPHBvbHlnb25cbiAgICAgIGZpbGw9XCJ2YXIoLS1jaS1wcmltYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpXCJcbiAgICAgIHBvaW50cz1cIjE2Ni40MDMgMjQ4LjIyNSAyMjYuODY0IDE4Ny43NjMgMjA0LjIzNyAxNjUuMTM1IDE0My43NzUgMjI1LjU5NyA4My4zMTMgMTY1LjEzNSA2MC42ODcgMTg3Ljc2MyAxMjEuMTQ4IDI0OC4yMjUgNjAuNjg3IDMwOC42ODcgODMuMzEzIDMzMS4zMTQgMTQzLjc3NSAyNzAuODUyIDIwNC4yMzcgMzMxLjMxNCAyMjYuODY0IDMwOC42ODcgMTY2LjQwMyAyNDguMjI1XCJcbiAgICAgIGNsYXNzPVwiY2ktcHJpbWFyeVwiPlxuICAgIDwvcG9seWdvbj5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';
|
|
2
|
+
import { AsyncPipe } from '@angular/common';
|
|
3
|
+
import { FilterInputDirective } from '../smart-table-filter/filter-input.directive';
|
|
4
|
+
import { FormControlDirective } from '../../form';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SmartTableColumnFilterComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.#filterInputDirective = inject(FilterInputDirective);
|
|
9
|
+
this.value$ = this.#filterInputDirective.value$;
|
|
10
|
+
this.sizing = 'sm';
|
|
11
|
+
}
|
|
12
|
+
#filterInputDirective;
|
|
13
|
+
set column(value) {
|
|
14
|
+
this.#filterInputDirective.emitObject = { ...this.#filterInputDirective.emitObject, column: value };
|
|
15
|
+
}
|
|
16
|
+
;
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: SmartTableColumnFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: SmartTableColumnFilterComponent, isStandalone: true, selector: "c-smart-table-column-filter", inputs: { column: "column", sizing: "sizing" }, ngImport: i0, template: "<input\n [sizing]=\"sizing\"\n [value]=\"value$ | async\"\n autocomplete=\"off\"\n cFormControl\n/>\n", dependencies: [{ kind: "directive", type: FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: SmartTableColumnFilterComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{ selector: 'c-smart-table-column-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormControlDirective, AsyncPipe], template: "<input\n [sizing]=\"sizing\"\n [value]=\"value$ | async\"\n autocomplete=\"off\"\n cFormControl\n/>\n" }]
|
|
23
|
+
}], ctorParameters: function () { return []; }, propDecorators: { column: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], sizing: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlLWNvbHVtbi1maWx0ZXIvc21hcnQtdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlLWNvbHVtbi1maWx0ZXIvc21hcnQtdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFTbEQsTUFBTSxPQUFPLCtCQUErQjtJQUUxQztRQUVTLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JELFdBQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBTzNDLFdBQU0sR0FBaUIsSUFBSSxDQUFDO0lBVnRCLENBQUM7SUFFUCxxQkFBcUIsQ0FBZ0M7SUFHOUQsSUFDSSxNQUFNLENBQUMsS0FBdUI7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEcsQ0FBQztJQUFBLENBQUM7OEdBVlMsK0JBQStCO2tHQUEvQiwrQkFBK0IsdUlDZDVDLDJHQU1BLDRDRE1ZLG9CQUFvQixxSUFBRSxTQUFTOzsyRkFFOUIsK0JBQStCO2tCQVAzQyxTQUFTOytCQUNFLDZCQUE2QixtQkFFdEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxvQkFBb0IsRUFBRSxTQUFTLENBQUM7MEVBVXRDLE1BQU07c0JBRFQsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBGaWx0ZXJJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uL3NtYXJ0LXRhYmxlLWZpbHRlci9maWx0ZXItaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IElDb2x1bW4gfSBmcm9tICcuLi9zbWFydC10YWJsZS50eXBlJztcbmltcG9ydCB7IEZvcm1Db250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZm9ybSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Mtc21hcnQtdGFibGUtY29sdW1uLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC10YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3JtQ29udHJvbERpcmVjdGl2ZSwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBTbWFydFRhYmxlQ29sdW1uRmlsdGVyQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcmVhZG9ubHkgI2ZpbHRlcklucHV0RGlyZWN0aXZlID0gaW5qZWN0KEZpbHRlcklucHV0RGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgdmFsdWUkID0gdGhpcy4jZmlsdGVySW5wdXREaXJlY3RpdmUudmFsdWUkO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjb2x1bW4odmFsdWU6IHN0cmluZyB8IElDb2x1bW4pIHtcbiAgICB0aGlzLiNmaWx0ZXJJbnB1dERpcmVjdGl2ZS5lbWl0T2JqZWN0ID0geyAuLi50aGlzLiNmaWx0ZXJJbnB1dERpcmVjdGl2ZS5lbWl0T2JqZWN0LCBjb2x1bW46IHZhbHVlIH07XG4gIH07XG5cbiAgQElucHV0KCkgc2l6aW5nPzogJ3NtJyB8ICdsZycgPSAnc20nO1xuXG59XG4iLCI8aW5wdXRcbiAgW3NpemluZ109XCJzaXppbmdcIlxuICBbdmFsdWVdPVwidmFsdWUkIHwgYXN5bmNcIlxuICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICBjRm9ybUNvbnRyb2xcbi8+XG4iXX0=
|