ontimize-web-ngx 15.7.0 → 15.8.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/esm2020/lib/components/app-header/o-app-header.component.mjs +4 -4
- package/esm2020/lib/components/app-header/o-app-header.module.mjs +5 -5
- package/esm2020/lib/components/app-sidenav/image/o-app-sidenav-image.component.mjs +4 -4
- package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +4 -4
- package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +4 -4
- package/esm2020/lib/components/app-sidenav/o-app-sidenav.module.mjs +5 -5
- package/esm2020/lib/components/bar-menu/locale-menu-item/o-locale-bar-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/menu-group/o-bar-menu-group.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/menu-item/o-bar-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/menu-nested/o-bar-menu-nested.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/menu-separator/o-bar-menu-separator.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/o-bar-menu-base.class.mjs +4 -4
- package/esm2020/lib/components/bar-menu/o-bar-menu.component.mjs +4 -4
- package/esm2020/lib/components/bar-menu/o-bar-menu.module.mjs +5 -5
- package/esm2020/lib/components/bar-menu/o-base-menu-item.class.mjs +4 -4
- package/esm2020/lib/components/breadcrumb/o-breadcrumb.component.mjs +4 -4
- package/esm2020/lib/components/breadcrumb/o-breadcrumb.module.mjs +5 -5
- package/esm2020/lib/components/button/o-button.component.mjs +4 -4
- package/esm2020/lib/components/button/o-button.module.mjs +5 -5
- package/esm2020/lib/components/button-toggle/o-button-toggle-group/o-button-toggle-group.component.mjs +4 -4
- package/esm2020/lib/components/button-toggle/o-button-toggle.component.mjs +4 -4
- package/esm2020/lib/components/button-toggle/o-button-toggle.module.mjs +5 -5
- package/esm2020/lib/components/card-menu-item/o-card-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/card-menu-item/o-card-menu-item.module.mjs +5 -5
- package/esm2020/lib/components/container/column/o-column.component.mjs +4 -4
- package/esm2020/lib/components/container/column/o-column.module.mjs +5 -5
- package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.component.mjs +4 -4
- package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.module.mjs +5 -5
- package/esm2020/lib/components/container/o-container-collapsible-component.class.mjs +4 -4
- package/esm2020/lib/components/container/o-container-component.class.mjs +4 -4
- package/esm2020/lib/components/container/row/o-row.component.mjs +4 -4
- package/esm2020/lib/components/container/row/o-row.module.mjs +5 -5
- package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.component.mjs +4 -4
- package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.module.mjs +5 -5
- package/esm2020/lib/components/contextmenu/context-menu/o-context-menu-content.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/context-menu/o-wrapper-content-menu/o-wrapper-content-menu.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/context-menu-group/o-context-menu-group.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/context-menu-item/o-context-menu-item.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/context-menu-separator/o-context-menu-separator.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-content-menu-base-item.class.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-context-menu-overlay.service.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-context-menu.component.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-context-menu.directive.mjs +4 -4
- package/esm2020/lib/components/contextmenu/o-context-menu.module.mjs +5 -5
- package/esm2020/lib/components/contextmenu/o-context-menu.service.mjs +4 -4
- package/esm2020/lib/components/dual-list-selector/dual-list-selector-item/date/o-dual-list-selector-date-item.component.mjs +4 -4
- package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.component.mjs +4 -4
- package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.module.mjs +5 -5
- package/esm2020/lib/components/expandable-container/o-expandable-container.component.mjs +4 -4
- package/esm2020/lib/components/expandable-container/o-expandable-container.module.mjs +5 -5
- package/esm2020/lib/components/filter-builder/filter-builder-menu/filter-builder-menu.component.mjs +4 -4
- package/esm2020/lib/components/filter-builder/o-filter-builder-clear.directive.mjs +4 -4
- package/esm2020/lib/components/filter-builder/o-filter-builder-query.directive.mjs +4 -4
- package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +4 -4
- package/esm2020/lib/components/filter-builder/o-filter-builder.module.mjs +5 -5
- package/esm2020/lib/components/form/guards/o-form-can-deactivate.guard.mjs +4 -4
- package/esm2020/lib/components/form/navigation/o-form-confirm-exit.service.mjs +4 -4
- package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +4 -4
- package/esm2020/lib/components/form/o-form.component.mjs +4 -4
- package/esm2020/lib/components/form/o-form.module.mjs +5 -5
- package/esm2020/lib/components/form/services/o-form-message.service.mjs +4 -4
- package/esm2020/lib/components/form/toolbar/o-form-toolbar.component.mjs +4 -4
- package/esm2020/lib/components/form/toolbar/o-form-toolbar.module.mjs +5 -5
- package/esm2020/lib/components/form-container/o-form-container.component.mjs +4 -4
- package/esm2020/lib/components/form-container/o-form-container.module.mjs +5 -5
- package/esm2020/lib/components/grid/grid-item/o-grid-item.component.mjs +4 -4
- package/esm2020/lib/components/grid/grid-item/o-grid-item.directive.mjs +4 -4
- package/esm2020/lib/components/grid/o-grid.component.mjs +4 -4
- package/esm2020/lib/components/grid/o-grid.module.mjs +5 -5
- package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +4 -4
- package/esm2020/lib/components/image/fullscreen/fullscreen-dialog.component.mjs +4 -4
- package/esm2020/lib/components/image/o-image.component.mjs +4 -4
- package/esm2020/lib/components/image/o-image.module.mjs +5 -5
- package/esm2020/lib/components/input/checkbox/o-checkbox.component.mjs +4 -4
- package/esm2020/lib/components/input/checkbox/o-checkbox.module.mjs +5 -5
- package/esm2020/lib/components/input/combo/combo-renderer/boolean/o-combo-renderer-boolean.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/currency/o-combo-renderer-currency.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/date/o-combo-renderer-date.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/icon/o-combo-renderer-icon.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/integer/o-combo-renderer-integer.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/o-combo-renderer.class.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/percentage/o-combo-renderer-percentage.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-renderer/real/o-combo-renderer-real.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/combo-search/o-combo-search.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/o-combo.component.mjs +4 -4
- package/esm2020/lib/components/input/combo/o-combo.module.mjs +5 -5
- package/esm2020/lib/components/input/currency-input/o-currency-input.component.mjs +4 -4
- package/esm2020/lib/components/input/currency-input/o-currency-input.module.mjs +5 -5
- package/esm2020/lib/components/input/date-input/o-date-input.component.mjs +4 -4
- package/esm2020/lib/components/input/date-input/o-date-input.module.mjs +5 -5
- package/esm2020/lib/components/input/date-range/o-daterange-input.component.mjs +4 -4
- package/esm2020/lib/components/input/date-range/o-daterange-input.module.mjs +5 -5
- package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.component.mjs +4 -4
- package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.directive.mjs +4 -4
- package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.module.mjs +5 -5
- package/esm2020/lib/components/input/date-range-legacy/o-daterange-picker.component.mjs +4 -4
- package/esm2020/lib/components/input/email-input/o-email-input.component.mjs +4 -4
- package/esm2020/lib/components/input/email-input/o-email-input.module.mjs +5 -5
- package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +4 -4
- package/esm2020/lib/components/input/file-input/o-file-input.module.mjs +5 -5
- package/esm2020/lib/components/input/hour-input/index.mjs +4 -0
- package/esm2020/lib/components/input/hour-input/o-hour-input.component.mjs +38 -9
- package/esm2020/lib/components/input/hour-input/o-hour-input.directive.mjs +46 -0
- package/esm2020/lib/components/input/hour-input/o-hour-input.module.mjs +8 -7
- package/esm2020/lib/components/input/html-input/o-html-input.component.mjs +4 -4
- package/esm2020/lib/components/input/html-input/o-html-input.module.mjs +5 -5
- package/esm2020/lib/components/input/index.mjs +2 -3
- package/esm2020/lib/components/input/integer-input/o-integer-input.component.mjs +4 -4
- package/esm2020/lib/components/input/integer-input/o-integer-input.module.mjs +5 -5
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/currency/o-list-picker-renderer-currency.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/date/o-list-picker-renderer-date.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/integer/o-list-picker-renderer-integer.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/o-list-picker-renderer.class.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/percentage/o-list-picker-renderer-percentage.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/listpicker-renderer/real/o-list-picker-renderer-real.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/o-list-picker-dialog.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/o-list-picker.component.mjs +4 -4
- package/esm2020/lib/components/input/listpicker/o-list-picker.module.mjs +5 -5
- package/esm2020/lib/components/input/nif-input/o-nif-input.component.mjs +4 -4
- package/esm2020/lib/components/input/nif-input/o-nif-input.module.mjs +5 -5
- package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +4 -4
- package/esm2020/lib/components/input/o-form-service-component.class.mjs +4 -4
- package/esm2020/lib/components/input/password-input/o-password-input.component.mjs +4 -4
- package/esm2020/lib/components/input/password-input/o-password-input.module.mjs +5 -5
- package/esm2020/lib/components/input/percent-input/o-percent-input.component.mjs +4 -4
- package/esm2020/lib/components/input/percent-input/o-percent-input.module.mjs +5 -5
- package/esm2020/lib/components/input/phone-input/data/country-code.mjs +4 -4
- package/esm2020/lib/components/input/phone-input/o-phone-input.component.mjs +4 -4
- package/esm2020/lib/components/input/phone-input/o-phone-input.module.mjs +5 -5
- package/esm2020/lib/components/input/radio/o-radio.component.mjs +4 -4
- package/esm2020/lib/components/input/radio/o-radio.module.mjs +5 -5
- package/esm2020/lib/components/input/real-input/o-real-input.component.mjs +4 -4
- package/esm2020/lib/components/input/real-input/o-real-input.module.mjs +5 -5
- package/esm2020/lib/components/input/search-input/o-search-input.component.mjs +4 -4
- package/esm2020/lib/components/input/search-input/o-search-input.module.mjs +5 -5
- package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.component.mjs +4 -4
- package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.module.mjs +5 -5
- package/esm2020/lib/components/input/slider/o-slider.component.mjs +4 -4
- package/esm2020/lib/components/input/slider/o-slider.module.mjs +5 -5
- package/esm2020/lib/components/input/text-input/o-text-input.component.mjs +4 -4
- package/esm2020/lib/components/input/text-input/o-text-input.module.mjs +5 -5
- package/esm2020/lib/components/input/textarea-input/o-textarea-input.component.mjs +4 -4
- package/esm2020/lib/components/input/textarea-input/o-textarea-input.module.mjs +5 -5
- package/esm2020/lib/components/input/time-input/o-time-input.component.mjs +4 -4
- package/esm2020/lib/components/input/time-input/o-time-input.module.mjs +5 -5
- package/esm2020/lib/components/language-selector/o-language-selector.component.mjs +4 -4
- package/esm2020/lib/components/language-selector/o-language-selector.module.mjs +5 -5
- package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +4 -4
- package/esm2020/lib/components/list/list-item/o-list-item.directive.mjs +4 -4
- package/esm2020/lib/components/list/o-list.component.mjs +4 -4
- package/esm2020/lib/components/list/o-list.module.mjs +5 -5
- package/esm2020/lib/components/list/renderers/avatar/o-list-item-avatar.component.mjs +4 -4
- package/esm2020/lib/components/list/renderers/card/o-list-item-card.component.mjs +4 -4
- package/esm2020/lib/components/list/renderers/card-image/o-list-item-card-image.component.mjs +4 -4
- package/esm2020/lib/components/list/renderers/o-list-item-card-renderer.class.mjs +4 -4
- package/esm2020/lib/components/list/renderers/o-list-item-text-renderer.class.mjs +4 -4
- package/esm2020/lib/components/list/renderers/text/o-list-item-text.component.mjs +4 -4
- package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +4 -4
- package/esm2020/lib/components/material/ckeditor/ck-editor.component.mjs +4 -4
- package/esm2020/lib/components/material/ckeditor/ck-editor.module.mjs +5 -5
- package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.component.mjs +4 -4
- package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.module.mjs +5 -5
- package/esm2020/lib/components/o-form-data-component.class.mjs +4 -4
- package/esm2020/lib/components/o-repeatable-skeleton.component.mjs +4 -4
- package/esm2020/lib/components/o-service-base-component.class.mjs +15 -10
- package/esm2020/lib/components/o-service-component.class.mjs +7 -7
- package/esm2020/lib/components/o-skeleton.component.mjs +4 -4
- package/esm2020/lib/components/table/column/calculated/o-table-column-calculated.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/boolean/o-table-cell-editor-boolean.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/date/o-table-cell-editor-date.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/email/o-table-cell-editor-email.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/integer/o-table-cell-editor-integer.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +10 -4
- package/esm2020/lib/components/table/column/cell-editor/real/o-table-cell-editor-real.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/text/o-table-cell-editor-text.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-editor/time/o-table-cell-editor-time.component.mjs +26 -12
- package/esm2020/lib/components/table/column/cell-renderer/action/o-table-cell-renderer-action.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/boolean/o-table-cell-renderer-boolean.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/cell-renderer.mjs +11 -4
- package/esm2020/lib/components/table/column/cell-renderer/chip/o-table-cell-renderer-chip.component.mjs +65 -0
- package/esm2020/lib/components/table/column/cell-renderer/currency/o-table-cell-renderer-currency.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/date/o-table-cell-renderer-date.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/image/o-table-cell-renderer-image.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/index.mjs +3 -1
- package/esm2020/lib/components/table/column/cell-renderer/integer/o-table-cell-renderer-integer.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/list/o-table-cell-renderer-list.component.mjs +41 -0
- package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/percentage/o-table-cell-renderer-percentage.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/real/o-table-cell-renderer-real.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/time/o-table-cell-renderer-time.component.mjs +4 -4
- package/esm2020/lib/components/table/column/cell-renderer/translate/o-table-cell-renderer-translate.component.mjs +4 -4
- package/esm2020/lib/components/table/column/o-table-column.component.mjs +10 -4
- package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/default-o-table.datasource.mjs +137 -66
- package/esm2020/lib/components/table/extensions/dialog/apply-configuration/o-table-apply-configuration-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/export/o-table-export-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +5 -5
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/group-by-columns/o-table-group-by-columns-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/o-table-base-dialog.class.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/store-configuration/o-table-store-configuration-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/dialog/visible-columns/o-table-visible-columns-dialog.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.service.mjs +4 -4
- package/esm2020/lib/components/table/extensions/footer/aggregate/o-table-column-aggregate.component.mjs +6 -6
- package/esm2020/lib/components/table/extensions/footer/expanded/o-table-expanded-footer.directive.mjs +11 -14
- package/esm2020/lib/components/table/extensions/footer/paginator/o-table-mat-paginator-intl.mjs +4 -4
- package/esm2020/lib/components/table/extensions/footer/paginator/o-table-paginator.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-button/o-table-button.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-buttons/o-table-buttons.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-column-resizer/o-table-column-resizer.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-column-select-all/o-table-column-select-all.directive.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-columns-grouping/columns/o-table-columns-grouping-column.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-columns-grouping/o-table-columns-grouping.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-header/o-table-header.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-header-column-filter-icon/o-table-header-column-filter-icon.component.mjs +5 -5
- package/esm2020/lib/components/table/extensions/header/table-header-select-all/o-table-header-select-all.component.mjs +6 -4
- package/esm2020/lib/components/table/extensions/header/table-insertable-row/o-table-insertable-row.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-option/o-table-option.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/header/table-quickfilter/o-table-quickfilter.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/o-table-datasource.service.mjs +4 -4
- package/esm2020/lib/components/table/extensions/o-table-strategy.service.mjs +10 -4
- package/esm2020/lib/components/table/extensions/pipes/o-table-row-class.pipe.mjs +4 -4
- package/esm2020/lib/components/table/extensions/row/o-table-row.directive.mjs +4 -4
- package/esm2020/lib/components/table/extensions/row/table-row-expandable/o-table-row-expandable.component.mjs +4 -4
- package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +19 -19
- package/esm2020/lib/components/table/extensions/sort/o-mat-sort-header.mjs +14 -7
- package/esm2020/lib/components/table/extensions/sort/o-mat-sort-module.mjs +5 -5
- package/esm2020/lib/components/table/extensions/sort/o-mat-sort.mjs +4 -4
- package/esm2020/lib/components/table/index.mjs +2 -1
- package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
- package/esm2020/lib/components/table/o-table-loading.service.mjs +113 -0
- package/esm2020/lib/components/table/o-table.component.mjs +317 -121
- package/esm2020/lib/components/table/o-table.module.mjs +46 -40
- package/esm2020/lib/components/tree/header/tree-menu/o-tree-menu.component.mjs +4 -4
- package/esm2020/lib/components/tree/o-tree-dao.service.mjs +4 -4
- package/esm2020/lib/components/tree/o-tree.component.mjs +4 -4
- package/esm2020/lib/components/tree/o-tree.module.mjs +5 -5
- package/esm2020/lib/components/tree/tree-node/tree-node.component.mjs +4 -4
- package/esm2020/lib/components/user-info/o-user-info.component.mjs +4 -4
- package/esm2020/lib/components/user-info/o-user-info.module.mjs +5 -5
- package/esm2020/lib/components/user-info/user-info-configuration/o-user-info-configuration.directive.mjs +4 -4
- package/esm2020/lib/components/user-info/user-info-configuration-item/o-user-info-configuration-item.directive.mjs +4 -4
- package/esm2020/lib/config/o-modules.mjs +5 -5
- package/esm2020/lib/directives/input-regulate.directive.mjs +4 -4
- package/esm2020/lib/directives/keyboard-listener.directive.mjs +4 -4
- package/esm2020/lib/directives/locker.directive.mjs +4 -4
- package/esm2020/lib/directives/o-file-drag-and-drop.directive.mjs +4 -4
- package/esm2020/lib/directives/o-hidden.directive.mjs +4 -4
- package/esm2020/lib/directives/o-mat-error.directive.mjs +4 -4
- package/esm2020/lib/directives/o-mat-prefix.directive.mjs +4 -4
- package/esm2020/lib/directives/o-mat-suffix.directive.mjs +4 -4
- package/esm2020/lib/directives/o-tab-group.directive.mjs +4 -4
- package/esm2020/lib/interfaces/column-filter-change-event.interface.mjs +2 -0
- package/esm2020/lib/interfaces/index.mjs +2 -1
- package/esm2020/lib/layouts/app-layout/app-layout-header/o-app-layout-header.component.mjs +4 -4
- package/esm2020/lib/layouts/app-layout/app-layout-sidenav/o-app-layout-sidenav.component.mjs +4 -4
- package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +4 -4
- package/esm2020/lib/layouts/app-layout/o-app-layout.module.mjs +5 -5
- package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.component.mjs +4 -4
- package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.module.mjs +5 -5
- package/esm2020/lib/layouts/form-layout/dialog/o-form-layout-dialog.component.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/dialog/options/o-form-layout-dialog-options.directive.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/directives/o-form-layout-manager-content.directive.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/guards/o-form-layout-can-activate-child.guard.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.module.mjs +5 -5
- package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/split-pane/options/o-form-layout-split-pane-options.directive.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +4 -4
- package/esm2020/lib/layouts/form-layout/tabgroup/options/o-form-layout-tabgroup-options.directive.mjs +4 -4
- package/esm2020/lib/ontimize-web-ngx.module.mjs +5 -5
- package/esm2020/lib/pipes/columns-filter.pipe.mjs +4 -4
- package/esm2020/lib/pipes/is-empty-value.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-currency.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-icon.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-integer.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-moment.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-percentage.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-real.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-safe.pipe.mjs +4 -4
- package/esm2020/lib/pipes/o-translate.pipe.mjs +8 -8
- package/esm2020/lib/pipes/order-by.pipe.mjs +4 -4
- package/esm2020/lib/services/app-menu.service.mjs +4 -4
- package/esm2020/lib/services/appearance.service.mjs +4 -4
- package/esm2020/lib/services/auth-guard.service.mjs +4 -4
- package/esm2020/lib/services/auth.service.mjs +4 -4
- package/esm2020/lib/services/base-service-response.adapter.mjs +4 -4
- package/esm2020/lib/services/base-service.class.mjs +4 -4
- package/esm2020/lib/services/currency.service.mjs +4 -4
- package/esm2020/lib/services/dialog.service.mjs +4 -4
- package/esm2020/lib/services/icon.service.mjs +4 -4
- package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +4 -4
- package/esm2020/lib/services/jsonapi/jsonapi-service-response.adapter.mjs +4 -4
- package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +4 -4
- package/esm2020/lib/services/local-storage.service.mjs +4 -4
- package/esm2020/lib/services/login-storage.service.mjs +4 -4
- package/esm2020/lib/services/moment.service.mjs +4 -4
- package/esm2020/lib/services/navigation.service.mjs +4 -4
- package/esm2020/lib/services/number.service.mjs +4 -4
- package/esm2020/lib/services/o-auth.service.mjs +4 -4
- package/esm2020/lib/services/o-breadcrumb.service.mjs +4 -4
- package/esm2020/lib/services/o-error-dialog-manager.service.mjs +4 -4
- package/esm2020/lib/services/o-form-layout-manager.service.mjs +4 -4
- package/esm2020/lib/services/o-modules-info.service.mjs +4 -4
- package/esm2020/lib/services/o-user-info.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/o-preference-response.adapter.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-base-service.class.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-export.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-file.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize-service-response.adapter.mjs +4 -4
- package/esm2020/lib/services/ontimize/ontimize.service.mjs +4 -4
- package/esm2020/lib/services/ontimize-export-data-base-provider.service.mjs +4 -4
- package/esm2020/lib/services/ontimize-export-data-provider-3x.service.mjs +4 -4
- package/esm2020/lib/services/ontimize-export-data-provider.service.mjs +4 -4
- package/esm2020/lib/services/ontimize-icon-registry.service.mjs +4 -4
- package/esm2020/lib/services/pagination-context.service.mjs +4 -4
- package/esm2020/lib/services/parser/o-service-response.parser.mjs +4 -4
- package/esm2020/lib/services/permissions/o-permissions.module.mjs +5 -5
- package/esm2020/lib/services/permissions/ontimize-ee-permissions.service.mjs +4 -4
- package/esm2020/lib/services/permissions/ontimize-permissions.service.mjs +4 -4
- package/esm2020/lib/services/permissions/permissions-can-activate.guard.mjs +4 -4
- package/esm2020/lib/services/permissions/permissions.service.mjs +4 -4
- package/esm2020/lib/services/remote-config.service.mjs +5 -5
- package/esm2020/lib/services/request-adapter/jsonapi-request-arguments.adapter.mjs +4 -4
- package/esm2020/lib/services/request-adapter/ontimize-request-arguments.adapter.mjs +4 -4
- package/esm2020/lib/services/share-can-activate-child.service.mjs +4 -4
- package/esm2020/lib/services/snackbar.service.mjs +4 -4
- package/esm2020/lib/services/state/o-app-menu-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-component-state.service.mjs +10 -10
- package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-form-layout-manager-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-grid-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-list-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-table-component-state.class.mjs +1 -1
- package/esm2020/lib/services/state/o-table-component-state.service.mjs +4 -4
- package/esm2020/lib/services/state/o-tree-component-state.service.mjs +4 -4
- package/esm2020/lib/services/translate/o-translate.parser.mjs +4 -4
- package/esm2020/lib/services/translate/o-translate.service.mjs +4 -4
- package/esm2020/lib/shared/components/dialog/o-dialog-internal.component.mjs +4 -4
- package/esm2020/lib/shared/components/dialog/o-dialog.component.mjs +4 -4
- package/esm2020/lib/shared/components/error403/o-error-403.component.mjs +4 -4
- package/esm2020/lib/shared/components/filter/load-filter/o-load-filter-dialog.component.mjs +4 -4
- package/esm2020/lib/shared/components/filter/store-filter/o-store-filter-dialog.component.mjs +4 -4
- package/esm2020/lib/shared/components/snackbar/o-snackbar-base.class.mjs +4 -4
- package/esm2020/lib/shared/components/snackbar/o-snackbar.component.mjs +4 -4
- package/esm2020/lib/shared/components/validation/o-error.component.mjs +4 -4
- package/esm2020/lib/shared/components/validation/o-validator.component.mjs +4 -4
- package/esm2020/lib/shared/material/custom.material.module.mjs +5 -5
- package/esm2020/lib/shared/material/date/ontimize-moment-date-adapter.mjs +4 -4
- package/esm2020/lib/shared/shared.module.mjs +5 -5
- package/esm2020/lib/types/aggregate-function.type.mjs +1 -1
- package/esm2020/lib/types/table/o-table-global-config.type.mjs +1 -1
- package/fesm2015/ontimize-web-ngx.mjs +1945 -1348
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +1928 -1345
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +1 -1
- package/lib/components/dual-list-selector/o-dual-list-selector.component.d.ts +1 -1
- package/lib/components/filter-builder/o-filter-builder.component.d.ts +1 -1
- package/lib/components/input/hour-input/index.d.ts +3 -0
- package/lib/components/input/hour-input/o-hour-input.component.d.ts +6 -2
- package/lib/components/input/hour-input/o-hour-input.directive.d.ts +8 -0
- package/lib/components/input/hour-input/o-hour-input.module.d.ts +5 -4
- package/lib/components/input/index.d.ts +1 -2
- package/lib/components/o-service-base-component.class.d.ts +2 -1
- package/lib/components/o-service-component.class.d.ts +1 -1
- package/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.d.ts +5 -3
- package/lib/components/table/column/cell-editor/time/o-table-cell-editor-time.component.d.ts +2 -2
- package/lib/components/table/column/cell-renderer/cell-renderer.d.ts +5 -1
- package/lib/components/table/column/cell-renderer/chip/o-table-cell-renderer-chip.component.d.ts +23 -0
- package/lib/components/table/column/cell-renderer/index.d.ts +2 -0
- package/lib/components/table/column/cell-renderer/list/o-table-cell-renderer-list.component.d.ts +14 -0
- package/lib/components/table/column/o-table-column.component.d.ts +2 -1
- package/lib/components/table/extensions/default-o-table.datasource.d.ts +6 -1
- package/lib/components/table/extensions/dialog/group-by-columns/o-table-group-by-columns-dialog.component.d.ts +1 -1
- package/lib/components/table/extensions/footer/aggregate/o-table-column-aggregate.component.d.ts +1 -1
- package/lib/components/table/extensions/footer/expanded/o-table-expanded-footer.directive.d.ts +1 -2
- package/lib/components/table/extensions/header/table-header-select-all/o-table-header-select-all.component.d.ts +2 -1
- package/lib/components/table/extensions/o-table-strategy.service.d.ts +2 -1
- package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -0
- package/lib/components/table/extensions/sort/o-mat-sort-header.d.ts +5 -3
- package/lib/components/table/index.d.ts +1 -0
- package/lib/components/table/o-table-base.class.d.ts +3 -1
- package/lib/components/table/o-table-loading.service.d.ts +28 -0
- package/lib/components/table/o-table.component.d.ts +25 -4
- package/lib/components/table/o-table.module.d.ts +48 -45
- package/lib/interfaces/column-filter-change-event.interface.d.ts +6 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/services/state/o-table-component-state.class.d.ts +1 -1
- package/lib/types/aggregate-function.type.d.ts +2 -1
- package/lib/types/table/o-table-global-config.type.d.ts +6 -0
- package/package.json +2 -2
- package/theme.scss +0 -2
|
@@ -330,8 +330,8 @@ export class OGridComponent extends AbstractOServiceComponent {
|
|
|
330
330
|
return result;
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
|
-
OGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
334
|
-
OGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
333
|
+
OGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: forwardRef(() => OFormComponent), optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
334
|
+
OGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OGridComponent, selector: "o-grid", inputs: { cols: "cols", showPageSize: ["show-page-size", "showPageSize"], showSort: ["orderable", "showSort"], sortableColumns: ["sortable-columns", "sortableColumns"], sortColumn: ["sort-column", "sortColumn"], quickFilterColumns: ["quick-filter-columns", "quickFilterColumns"], gridItemHeight: ["grid-item-height", "gridItemHeight"], refreshButton: ["refresh-button", "refreshButton"], gutterSize: ["gutter-size", "gutterSize"], fixedHeader: ["fixed-header", "fixedHeader"], showFooter: ["show-footer", "showFooter"], insertButtonPosition: ["insert-button-position", "insertButtonPosition"], insertButtonFloatable: ["insert-button-floatable", "insertButtonFloatable"], showButtonsText: ["show-buttons-text", "showButtonsText"] }, host: { properties: { "class.o-grid": "true", "class.o-grid-fixed": "fixedHeader" } }, providers: [
|
|
335
335
|
OntimizeServiceProvider,
|
|
336
336
|
ComponentStateServiceProvider,
|
|
337
337
|
{ provide: O_COMPONENT_STATE_SERVICE, useClass: OGridComponentStateService },
|
|
@@ -368,7 +368,7 @@ __decorate([
|
|
|
368
368
|
BooleanInputConverter(),
|
|
369
369
|
__metadata("design:type", Boolean)
|
|
370
370
|
], OGridComponent.prototype, "showButtonsText", void 0);
|
|
371
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
371
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridComponent, decorators: [{
|
|
372
372
|
type: Component,
|
|
373
373
|
args: [{ selector: 'o-grid', providers: [
|
|
374
374
|
OntimizeServiceProvider,
|
|
@@ -393,4 +393,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
393
393
|
type: ViewChild,
|
|
394
394
|
args: [MatPaginator]
|
|
395
395
|
}] } });
|
|
396
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQvby1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQvby1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBSVIsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFLakcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixD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WTt1QkFBQyxrQkFBa0I7Z0JBR3pCLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZWRpYUNoYW5nZSwgTWVkaWFPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dENvbnZlcnRlciB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvaW5wdXQtY29udmVydGVyJztcbmltcG9ydCB7IElHcmlkSXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvby1ncmlkLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlU2VydmljZVByb3ZpZGVyLCBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBPR3JpZENvbXBvbmVudFN0YXRlQ2xhc3MgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdGF0ZS9vLWdyaWQtY29tcG9uZW50LXN0YXRlLmNsYXNzJztcbmltcG9ydCB7IE9HcmlkQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1ncmlkLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9HcmlkUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLWdyaWQtcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBPUXVlcnlEYXRhQXJncyB9IGZyb20gJy4uLy4uL3R5cGVzL3F1ZXJ5LWRhdGEtYXJncy50eXBlJztcbmltcG9ydCB7IFNRTE9yZGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvc3FsLW9yZGVyLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFNlcnZpY2VVdGlscyB9IGZyb20gJy4uLy4uL3V0aWwvc2VydmljZS51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9vLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFic3RyYWN0T1NlcnZpY2VDb21wb25lbnQgfSBmcm9tICcuLi9vLXNlcnZpY2UtY29tcG9uZW50LmNsYXNzJztcbmltcG9ydCB7IE9NYXRTb3J0IH0gZnJvbSAnLi4vdGFibGUvZXh0ZW5zaW9ucy9zb3J0L28tbWF0LXNvcnQnO1xuaW1wb3J0IHsgT0dyaWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9ncmlkLWl0ZW0vby1ncmlkLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE9HcmlkSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZ3JpZC1pdGVtL28tZ3JpZC1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9xdWVyeS1wYXJhbXMudHlwZSc7XG5pbXBvcnQgeyBPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFIH0gZnJvbSAnLi4vLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX0dSSUQgPSBbXG4gIC8vIGNvbHM6IEFtb3VudCBvZiBjb2x1bW5zIGluIHRoZSBncmlkIGxpc3QuIERlZmF1bHQgaW4gZXh0cmEgc21hbGwgYW5kIHNtYWxsIHNjcmVlbiBpcyAxLCBpbiBtZWRpdW0gc2NyZWVuIGlzIDIsIGluIGxhcmdlIHNjcmVlbiBpcyAzIGFuZCBleHRyYSBsYXJnZSBzY3JlZW4gaXMgNC5cbiAgJ2NvbHMnLFxuICAvLyBzaG93LXBhZ2Utc2l6ZTpXaGV0aGVyIHRvIGhpZGUgdGhlIHBhZ2Ugc2l6ZSBzZWxlY3Rpb24gVUkgZnJvbSB0aGUgdXNlci5cbiAgJ3Nob3dQYWdlU2l6ZTogc2hvdy1wYWdlLXNpemUnLFxuICAvLyBzaG93LXNvcnQ6d2hldGhlciBvciBub3QgdGhlIHNvcnQgc2VsZWN0IGlzIHNob3duIGluIHRoZSB0b29sYmFyXG4gICdzaG93U29ydDogb3JkZXJhYmxlJyxcbiAgLy8gc29ydGFibGVbc3RyaW5nXTogY29sdW1ucyBvZiB0aGUgZmlsdGVyLCBzZXBhcmF0ZWQgYnkgJzsnLiBEZWZhdWx0OiBubyB2YWx1ZS5cbiAgJ3NvcnRhYmxlQ29sdW1uczogc29ydGFibGUtY29sdW1ucycsXG4gIC8vIHNvcnRDb2x1bW5zW3N0cmluZ106IGNvbHVtbnMgb2YgdGhlIHNvcnRpbmdjb2x1bW5zLCBzZXBhcmF0ZWQgYnkgJzsnLiBEZWZhdWx0OiBubyB2YWx1ZS5cbiAgJ3NvcnRDb2x1bW46IHNvcnQtY29sdW1uJyxcbiAgLy8gcXVpY2stZmlsdGVyLWNvbHVtbnMgW3N0cmluZ106IGNvbHVtbnMgb2YgdGhlIGZpbHRlciwgc2VwYXJhdGVkIGJ5ICc7Jy4gRGVmYXVsdDogbm8gdmFsdWUuXG4gICdxdWlja0ZpbHRlckNvbHVtbnM6IHF1aWNrLWZpbHRlci1jb2x1bW5zJyxcbiAgLy8gIGdyaWQtaXRlbS1oZWlnaHRbc3RyaW5nXTogU2V0IGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHJvdyBoZWlnaHQgZnJvbSB0aGUgdXNlci1wcm92aWRlZCB2YWx1ZS4uIERlZmF1bHQ6IDE6MS5cbiAgJ2dyaWRJdGVtSGVpZ2h0OiBncmlkLWl0ZW0taGVpZ2h0JyxcbiAgLy8gcmVmcmVzaC1idXR0b24gW25vfHllc106IHNob3cgcmVmcmVzaCBidXR0b24uIERlZmF1bHQ6IHllcy5cbiAgJ3JlZnJlc2hCdXR0b246IHJlZnJlc2gtYnV0dG9uJyxcbiAgLy8gZ3V0dGVyU2l6ZTogU2l6ZSBvZiB0aGUgZ3JpZCBsaXN0J3MgZ3V0dGVyIGluIHBpeGVscy5cbiAgJ2d1dHRlclNpemU6Z3V0dGVyLXNpemUnLFxuICAvLyBmaXgtaGVhZGVyIFt5ZXN8bm98dHJ1ZXxmYWxzZV06IGZpeGVkIGZvb3RlciB3aGVuIHRoZSBjb250ZW50IGlzIGdyZWF0aGVyIHRoYW4gaXRzIG93biBoZWlnaHQuIERlZmF1bHQ6IG5vLlxuICAnZml4ZWRIZWFkZXI6Zml4ZWQtaGVhZGVyJyxcbiAgLy8gc2hvdy1mb290ZXI6SW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGZvb3RlcjpEZWZhdWx0OnRydWVcbiAgJ3Nob3dGb290ZXI6c2hvdy1mb290ZXInLFxuICAvLyBpbnNlcnQtYnV0dG9uLXBvc2l0aW9uIFsgdG9wIHwgYm90dG9tIF06IHBvc2l0aW9uIG9mIHRoZSBpbnNlcnQgYnV0dG9uLiBEZWZhdWx0OiAnYm90dG9tJ1xuICAnaW5zZXJ0QnV0dG9uUG9zaXRpb246aW5zZXJ0LWJ1dHRvbi1wb3NpdGlvbicsXG4gIC8vIGluc2VydC1idXR0b24tZmxvYXRhYmxlIFtub3x5ZXNdOiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdG8gcG9zaXRpb24gb2YgdGhlIGluc2VydCBidXR0b24gaXMgZmxvYXRpbmcgLiBEZWZhdWx0OiAneWVzJ1xuICAnaW5zZXJ0QnV0dG9uRmxvYXRhYmxlOmluc2VydC1idXR0b24tZmxvYXRhYmxlJyxcbiAgLy8gc2hvdy1idXR0b25zLXRleHQgW3llc3xub3x0cnVlfGZhbHNlXTogc2hvdyB0ZXh0IG9mIGJ1dHRvbnMuIERlZmF1bHQ6IG5vLlxuICAnc2hvd0J1dHRvbnNUZXh0OiBzaG93LWJ1dHRvbnMtdGV4dCdcbl07XG5cblxuY29uc3QgUEFHRV9TSVpFX09QVElPTlMgPSBbOCwgMTYsIDI0LCAzMiwgNjRdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWdyaWQnLFxuICBwcm92aWRlcnM6IFtcbiAgICBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlcixcbiAgICBDb21wb25lbnRTdGF0ZVNlcnZpY2VQcm92aWRlcixcbiAgICB7IHByb3ZpZGU6IE9fQ09NUE9ORU5UX1NUQVRFX1NFUlZJQ0UsIHVzZUNsYXNzOiBPR3JpZENvbXBvbmVudFN0YXRlU2VydmljZSB9LFxuICBdLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fR1JJRCxcbiAgdGVtcGxhdGVVcmw6ICcuL28tZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tZ3JpZC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLWdyaWRdJzogJ3RydWUnLFxuICAgICdbY2xhc3Muby1ncmlkLWZpeGVkXSc6ICdmaXhlZEhlYWRlcidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPR3JpZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0T1NlcnZpY2VDb21wb25lbnQ8T0dyaWRDb21wb25lbnRTdGF0ZVNlcnZpY2U+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG5cbiAgLyogSW5wdXRzICovXG4gIHByb3RlY3RlZCBfcXVlcnlSb3dzID0gMzI7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyBmaXhlZEhlYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgc2hvd1BhZ2VTaXplOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyBzaG93U29ydDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgc2hvd0Zvb3RlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHVibGljIGdyaWRJdGVtSGVpZ2h0ID0gJzE6MSc7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyByZWZyZXNoQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgaW5zZXJ0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyBpbnNlcnRCdXR0b25GbG9hdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBzaG93QnV0dG9uc1RleHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgaW5zZXJ0QnV0dG9uUG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScgPSAnYm90dG9tJztcbiAgcGFnaW5hdGlvbkNvbnRyb2xzID0gZmFsc2U7XG4gIHB1YmxpYyBndXR0ZXJTaXplID0gJzFweCc7XG4gIHByb3RlY3RlZCBfcXVpY2tGaWx0ZXJBcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlID0gJ291dGxpbmUnO1xuICBnZXQgY29scygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb2xzIHx8IHRoaXMuX2NvbHNEZWZhdWx0O1xuICB9XG4gIHNldCBjb2xzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jb2xzID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc29ydGFibGVDb2x1bW5zKCk6IFNRTE9yZGVyW10ge1xuICAgIHJldHVybiB0aGlzLl9zb3J0YWJsZUNvbHVtbnM7XG4gIH1cbiAgc2V0IHNvcnRhYmxlQ29sdW1ucyh2YWwpIHtcbiAgICBsZXQgcGFyc2VkID0gW107XG4gICAgaWYgKCFVdGlsLmlzQXJyYXkodmFsKSkge1xuICAgICAgcGFyc2VkID0gU2VydmljZVV0aWxzLnBhcnNlU29ydENvbHVtbnMoU3RyaW5nKHZhbCkpO1xuICAgIH1cbiAgICB0aGlzLl9zb3J0YWJsZUNvbHVtbnMgPSBwYXJzZWQ7XG4gIH1cblxuICBwdWJsaWMgcXVpY2tGaWx0ZXJDb2x1bW5zOiBzdHJpbmc7XG4gIC8qIEVuZCBJbnB1dHMgKi9cblxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gT0dyaWRJdGVtQ29tcG9uZW50KSlcbiAgcHVibGljIGlucHV0R3JpZEl0ZW1zOiBRdWVyeUxpc3Q8T0dyaWRJdGVtQ29tcG9uZW50PjtcbiAgQFZpZXdDaGlsZHJlbihPR3JpZEl0ZW1EaXJlY3RpdmUpXG4gIHB1YmxpYyBncmlkSXRlbURpcmVjdGl2ZXM6IFF1ZXJ5TGlzdDxPR3JpZEl0ZW1EaXJlY3RpdmU+O1xuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcilcbiAgcHVibGljIG1hdHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIC8qIFBhcnNlZCBJbnB1dHMgKi9cbiAgcHJvdGVjdGVkIF9zb3J0YWJsZUNvbHVtbnM6IFNRTE9yZGVyW10gPSBbXTtcbiAgcHVibGljIHNvcnRDb2x1bW5PcmRlcjogU1FMT3JkZXI7XG4gIC8qIEVuZCBwYXJzZWQgSW5wdXRzICovXG5cbiAgcHJvdGVjdGVkIF9jb2xzO1xuICBwcm90ZWN0ZWQgX2NvbHNEZWZhdWx0ID0gMTtcbiAgX3BhZ2VTaXplT3B0aW9ucyA9IFBBR0VfU0laRV9PUFRJT05TO1xuICBwcm90ZWN0ZWQgc29ydENvbHVtbjogc3RyaW5nO1xuICBwdWJsaWMgc3RvcmVQYWdpbmF0aW9uU3RhdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZXQgZ3JpZEl0ZW1zKHZhbHVlOiBJR3JpZEl0ZW1bXSkge1xuICAgIHRoaXMuX2dyaWRJdGVtcyA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGdyaWRJdGVtcygpOiBJR3JpZEl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2dyaWRJdGVtcztcbiAgfVxuXG4gIHByb3RlY3RlZCBfZ3JpZEl0ZW1zOiBJR3JpZEl0ZW1bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJvdGVjdGVkIG1lZGlhOiBNZWRpYU9ic2VydmVyO1xuXG4gIHByb3RlY3RlZCBvTWF0U29ydDogT01hdFNvcnQ7XG4gIHByb3RlY3RlZCBwZXJtaXNzaW9uczogT0dyaWRQZXJtaXNzaW9ucztcbiAgcHJvdGVjdGVkIGFjdGlvbnNQZXJtaXNzaW9uczogT1Blcm1pc3Npb25zW107XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9Gb3JtQ29tcG9uZW50KSkgZm9ybTogT0Zvcm1Db21wb25lbnRcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGVsUmVmLCBmb3JtKTtcbiAgICB0aGlzLm1lZGlhID0gdGhpcy5pbmplY3Rvci5nZXQoTWVkaWFPYnNlcnZlcik7XG4gICAgdGhpcy5vTWF0U29ydCA9IG5ldyBPTWF0U29ydCgpO1xuICB9XG5cbiAgZ2V0IHN0YXRlKCk6IE9HcmlkQ29tcG9uZW50U3RhdGVDbGFzcyB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgIHRoaXMucGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5nZXRHcmlkUGVybWlzc2lvbnModGhpcy5vYXR0ciwgdGhpcy5hY3RSb3V0ZSk7XG4gICAgdGhpcy5hY3Rpb25zUGVybWlzc2lvbnMgPSB0aGlzLmdldEFjdGlvbnNQZXJtaXNzaW9ucyh0aGlzLnBlcm1pc3Npb25zKTtcbiAgICB0aGlzLnNldEJ1dHRvblBlcm1pc3Npb25zKHRoaXMuYWN0aW9uc1Blcm1pc3Npb25zKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5pbml0aWFsaXplKCk7XG5cbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMucXVpY2tGaWx0ZXJDb2x1bW5zKSkge1xuICAgICAgdGhpcy5xdWlja0ZpbHRlckNvbHVtbnMgPSB0aGlzLmNvbHVtbnM7XG4gICAgfVxuICAgIHRoaXMucXVpY2tGaWx0ZXJDb2xBcnJheSA9IFV0aWwucGFyc2VBcnJheSh0aGlzLnF1aWNrRmlsdGVyQ29sdW1ucywgdHJ1ZSk7XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5zdGF0ZS5zb3J0Q29sdW1uKSkge1xuICAgICAgdGhpcy5zb3J0Q29sdW1uID0gdGhpcy5zdGF0ZS5zb3J0Q29sdW1uO1xuICAgIH1cbiAgICB0aGlzLnBhcnNlU29ydENvbHVtbigpO1xuXG4gICAgY29uc3QgZXhpc3RpbmdPcHRpb24gPSB0aGlzLnBhZ2VTaXplT3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24gPT09IHRoaXMucXVlcnlSb3dzKTtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKGV4aXN0aW5nT3B0aW9uKSkge1xuICAgICAgdGhpcy5fcGFnZVNpemVPcHRpb25zLnB1c2godGhpcy5xdWVyeVJvd3MpO1xuICAgICAgdGhpcy5fcGFnZVNpemVPcHRpb25zLnNvcnQoKGk6IG51bWJlciwgajogbnVtYmVyKSA9PiBpIC0gaik7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnN0YXRlLmN1cnJlbnRQYWdlKSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuc3RhdGUuY3VycmVudFBhZ2U7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnN0YXRlLnF1ZXJ5Um93cykpIHtcbiAgICAgIHRoaXMucXVlcnlSb3dzID0gdGhpcy5zdGF0ZS5xdWVyeVJvd3M7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5hZnRlclZpZXdJbml0KCk7XG4gICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlID0gVXRpbC5pc0RlZmluZWQodGhpcy5zdGF0ZS5maWx0ZXJDYXNlU2Vuc2l0aXZlKSA/XG4gICAgICB0aGlzLnN0YXRlLmZpbHRlckNhc2VTZW5zaXRpdmUgOlxuICAgICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlO1xuICAgIHRoaXMuc2V0R3JpZEl0ZW1EaXJlY3RpdmVzRGF0YSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9NZWRpYUNoYW5nZXMoKTtcbiAgICB0aGlzLnJlZ2lzdGVyUXVpY2tGaWx0ZXIodGhpcy5zZWFyY2hJbnB1dENvbXBvbmVudCk7XG4gICAgaWYgKHRoaXMucXVlcnlPbkluaXQpIHtcbiAgICAgIHRoaXMucXVlcnlEYXRhKCk7XG4gICAgfVxuICAgIHRoaXMubWFuYWdlQ3VzdG9tUGVybWlzc2lvbnModGhpcy5hY3Rpb25zUGVybWlzc2lvbnMsICdbby1ncmlkLXRvb2xiYXJdJyk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZEl0ZW1zID0gdGhpcy5pbnB1dEdyaWRJdGVtcy50b0FycmF5KCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuaW5wdXRHcmlkSXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUocXVlcnlDaGFuZ2VzID0+IHtcbiAgICAgIHRoaXMuZ3JpZEl0ZW1zID0gcXVlcnlDaGFuZ2VzLl9yZXN1bHRzO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmVUb01lZGlhQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5tZWRpYS5hc09ic2VydmFibGUoKS5zdWJzY3JpYmUoKGNoYW5nZTogTWVkaWFDaGFuZ2VbXSkgPT4ge1xuICAgICAgaWYgKGNoYW5nZSAmJiBjaGFuZ2VbMF0pIHtcbiAgICAgICAgc3dpdGNoIChjaGFuZ2VbMF0ubXFBbGlhcykge1xuICAgICAgICAgIGNhc2UgJ3hzJzpcbiAgICAgICAgICBjYXNlICdzbSc6XG4gICAgICAgICAgICB0aGlzLl9jb2xzRGVmYXVsdCA9IDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdtZCc6XG4gICAgICAgICAgICB0aGlzLl9jb2xzRGVmYXVsdCA9IDI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdsZyc6XG4gICAgICAgICAgY2FzZSAneGwnOlxuICAgICAgICAgICAgdGhpcy5fY29sc0RlZmF1bHQgPSA0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZERhdGEoKTogdm9pZCB7XG4gICAgbGV0IHF1ZXJ5QXJnczogT1F1ZXJ5RGF0YUFyZ3MgPSB7fTtcbiAgICBpZiAodGhpcy5wYWdlYWJsZSkge1xuICAgICAgdGhpcy5zdGF0ZS5xdWVyeVJlY29yZE9mZnNldCA9IDA7XG4gICAgICBxdWVyeUFyZ3MgPSB7XG4gICAgICAgIG9mZnNldDogdGhpcy5wYWdpbmF0aW9uQ29udHJvbHMgPyAodGhpcy5jdXJyZW50UGFnZSAqIHRoaXMucXVlcnlSb3dzKSA6IDAsXG4gICAgICAgIGxlbmd0aDogTWF0aC5tYXgodGhpcy5xdWVyeVJvd3MsIHRoaXMuZGF0YVJlc3BvbnNlQXJyYXkubGVuZ3RoKSxcbiAgICAgICAgcmVwbGFjZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy5xdWVyeURhdGEodm9pZCAwLCBxdWVyeUFyZ3MpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZFBhZ2luYXRlZERhdGFGcm9tU3RhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XG4gICAgdGhpcy5kYXRhUmVzcG9uc2VBcnJheSA9IFtdO1xuICAgIHRoaXMucmVsb2FkRGF0YSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNvcnRlZERhdGFGcm9tQXJyYXkoZGF0YUFycmF5OiBhbnlbXSk6IGFueVtdIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5zb3J0Q29sdW1uT3JkZXIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5vTWF0U29ydC5nZXRTb3J0ZWREYXRhQnlTUUxPcmRlcihkYXRhQXJyYXksIFt0aGlzLnNvcnRDb2x1bW5PcmRlcl0pO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YUFycmF5O1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyR3JpZEl0ZW1EaXJlY3RpdmUoaXRlbTogT0dyaWRJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGlmICh0aGlzLmRldGFpbE1vZGUgPT09IENvZGVzLkRFVEFJTF9NT0RFX0NMSUNLKSB7XG4gICAgICAgIGl0ZW0ub25DbGljayhncmlkSXRlbSA9PiB0aGlzLm9uSXRlbURldGFpbENsaWNrKGdyaWRJdGVtKSk7XG4gICAgICB9XG4gICAgICBpZiAoQ29kZXMuaXNEb3VibGVDbGlja01vZGUodGhpcy5kZXRhaWxNb2RlKSkge1xuICAgICAgICBpdGVtLm9uRG91YmxlQ2xpY2soZ3JpZEl0ZW0gPT4gdGhpcy5vbkl0ZW1EZXRhaWxEYmxDbGljayhncmlkSXRlbSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZW1EZXRhaWxDbGljayhpdGVtOiBPR3JpZEl0ZW1EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUl0ZW1DbGljayhpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZW1EZXRhaWxEYmxDbGljayhpdGVtOiBPR3JpZEl0ZW1EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUl0ZW1EYmxDbGljayhpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRNb3JlKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgKz0gMTtcbiAgICBpZiAodGhpcy5wYWdlYWJsZSkge1xuICAgICAgY29uc3QgcXVlcnlBcmdzOiBPUXVlcnlEYXRhQXJncyA9IHtcbiAgICAgICAgb2Zmc2V0OiB0aGlzLnN0YXRlLnF1ZXJ5UmVjb3JkT2Zmc2V0LFxuICAgICAgICBsZW5ndGg6IHRoaXMucXVlcnlSb3dzXG4gICAgICB9O1xuICAgICAgdGhpcy5kYXRhU2VydmljZT8uc2V0UGFnaW5hdGlvbkNvbnRleHQoeyBwYWdlTnVtYmVyOiB0aGlzLmRhdGFTZXJ2aWNlPy5nZXRQYWdpbmF0aW9uQ29udGV4dCgpLnBhZ2VOdW1iZXIgKyAxIH0pO1xuICAgICAgdGhpcy5xdWVyeURhdGEodm9pZCAwLCBxdWVyeUFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlckRhdGEodm9pZCAwLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuXG4gIHB1YmxpYyBnZXRRdWVyeUFyZ3VtZW50cyhmaWx0ZXI6IG9iamVjdCwgb3ZyckFyZ3M/OiBPUXVlcnlEYXRhQXJncyk6IE9RdWVyeVBhcmFtcyB7XG4gICAgY29uc3QgcXVlcnlBcmd1bWVudHMgPSBzdXBlci5nZXRRdWVyeUFyZ3VtZW50cyhmaWx0ZXIsIG92cnJBcmdzKTtcblxuICAgIGlmICh0aGlzLnBhZ2VhYmxlICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuc29ydENvbHVtbikpIHtcbiAgICAgIHF1ZXJ5QXJndW1lbnRzLnNvcnQgPSB0aGlzLnNvcnRDb2x1bW5PcmRlciA/IFt0aGlzLnNvcnRDb2x1bW5PcmRlcl0gOiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5QXJndW1lbnRzO1xuICB9XG5cbiAgcHVibGljIHBhcnNlU29ydENvbHVtbigpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJzZWQgPSAoU2VydmljZVV0aWxzLnBhcnNlU29ydENvbHVtbnModGhpcy5zb3J0Q29sdW1uKSB8fCBbXSlbMF07XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbmRTb3J0YWJsZUNvbHVtbkluZGV4KHBhcnNlZCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGluZGV4KSAmJiBpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuc29ydENvbHVtbk9yZGVyID0gcGFyc2VkO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjdXJyZW50T3JkZXJDb2x1bW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maW5kU29ydGFibGVDb2x1bW5JbmRleCh0aGlzLnNvcnRDb2x1bW5PcmRlcik7XG4gIH1cblxuICBzZXQgY3VycmVudE9yZGVyQ29sdW1uKHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5zb3J0Q29sdW1uT3JkZXIgPSB0aGlzLnNvcnRhYmxlQ29sdW1uc1t2YWxdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpbmRTb3J0YWJsZUNvbHVtbkluZGV4KHNvcnRhYmxlQ29sdW1uOiBTUUxPcmRlcik6IG51bWJlciB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChzb3J0YWJsZUNvbHVtbikpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zb3J0YWJsZUNvbHVtbnNcbiAgICAgIC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmNvbHVtbk5hbWUgPT09IHNvcnRhYmxlQ29sdW1uLmNvbHVtbk5hbWVcbiAgICAgICAgJiYgaXRlbS5hc2NlbmRlbnQgPT09IHNvcnRhYmxlQ29sdW1uLmFzY2VuZGVudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0YVRvU3RvcmUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2UuZ2V0RGF0YVRvU3RvcmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTb3J0T3B0aW9uVGV4dChjb2w6IFNRTE9yZGVyKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0O1xuICAgIGxldCBjb2xUZXh0S2V5ID0gYEdSSUQuU09SVF9CWV8ke2NvbC5jb2x1bW5OYW1lLnRvVXBwZXJDYXNlKCl9X2AgKyAoY29sLmFzY2VuZGVudCA/ICdBU0MnIDogJ0RFU0MnKTtcbiAgICByZXN1bHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGNvbFRleHRLZXkpO1xuICAgIGlmIChyZXN1bHQgIT09IGNvbFRleHRLZXkpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGNvbFRleHRLZXkgPSAnR1JJRC5TT1JUX0JZXycgKyAoY29sLmFzY2VuZGVudCA/ICdBU0MnIDogJ0RFU0MnKTtcbiAgICByZXN1bHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGNvbFRleHRLZXksIFsodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChjb2wuY29sdW1uTmFtZSkgfHwgJycpXSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBhZGQoKTogdm9pZCB7XG4gICAgc3VwZXIuaW5zZXJ0RGV0YWlsKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VSZXNwb25zZUFycmF5KGRhdGE6IGFueVtdLCByZXBsYWNlPzogYm9vbGVhbikge1xuICAgIGxldCByZXN1bHQgPSBkYXRhO1xuICAgIGlmICh0aGlzLnBhZ2VhYmxlICYmICFyZXBsYWNlKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLnBhZ2luYXRpb25Db250cm9scyA/IGRhdGEgOiAodGhpcy5kYXRhUmVzcG9uc2VBcnJheSB8fCBbXSkuY29uY2F0KGRhdGEpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMucGFnZWFibGUpIHtcbiAgICAgIHJlc3VsdCA9IGRhdGE7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2F2ZURhdGFOYXZpZ2F0aW9uSW5Mb2NhbFN0b3JhZ2UoKTogdm9pZCB7XG4gICAgc3VwZXIuc2F2ZURhdGFOYXZpZ2F0aW9uSW5Mb2NhbFN0b3JhZ2UoKTtcbiAgICB0aGlzLnN0b3JlUGFnaW5hdGlvblN0YXRlID0gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRHcmlkSXRlbURpcmVjdGl2ZXNEYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZEl0ZW1EaXJlY3RpdmVzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZ3JpZEl0ZW1EaXJlY3RpdmVzLnRvQXJyYXkoKS5mb3JFYWNoKChlbGVtZW50OiBPR3JpZEl0ZW1EaXJlY3RpdmUsIGluZGV4KSA9PiB7XG4gICAgICAgIGVsZW1lbnQuc2V0SXRlbURhdGEodGhpcy5kYXRhQXJyYXlbaW5kZXhdKTtcbiAgICAgICAgZWxlbWVudC5zZXRHcmlkQ29tcG9uZW50KHRoaXMpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyR3JpZEl0ZW1EaXJlY3RpdmUoZWxlbWVudCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBwYWdlU2l6ZUNoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMucGFnZWFibGUpIHtcbiAgICAgIHRoaXMucmVsb2FkRGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlckRhdGEoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydENvbHVtbkNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgIHRoaXMuY3VycmVudE9yZGVyQ29sdW1uID0gZXZlbnQudmFsdWU7XG4gICAgaWYgKHRoaXMucGFnZWFibGUpIHtcbiAgICAgIHRoaXMucmVsb2FkRGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlckRhdGEoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIHJlZ2lzdGVyUXVpY2tGaWx0ZXIoYXJnOiBhbnkpOiB2b2lkIHtcbiAgICBzdXBlci5yZWdpc3RlclF1aWNrRmlsdGVyKGFyZyk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMucXVpY2tGaWx0ZXJDb21wb25lbnQpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuc3RhdGUucXVpY2tGaWx0ZXJBY3RpdmVDb2x1bW5zKSkge1xuICAgICAgY29uc3QgcGFyc2VkQXJyID0gVXRpbC5wYXJzZUFycmF5KHRoaXMuc3RhdGUucXVpY2tGaWx0ZXJBY3RpdmVDb2x1bW5zLCB0cnVlKTtcbiAgICAgIHRoaXMucXVpY2tGaWx0ZXJDb21wb25lbnQuc2V0QWN0aXZlQ29sdW1ucyhwYXJzZWRBcnIpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRQYWdpbmF0aW9uRGF0YUZyb21BcnJheShkYXRhQXJyYXk6IGFueVtdKTogYW55W10ge1xuICAgIGxldCByZXN1bHQ6IGFueVtdO1xuICAgIGlmICh0aGlzLnBhZ2luYXRpb25Db250cm9scykge1xuICAgICAgcmVzdWx0ID0gZGF0YUFycmF5LnNwbGljZSh0aGlzLmN1cnJlbnRQYWdlICogdGhpcy5xdWVyeVJvd3MsIHRoaXMucXVlcnlSb3dzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gZGF0YUFycmF5LnNwbGljZSgwLCB0aGlzLnF1ZXJ5Um93cyAqICh0aGlzLmN1cnJlbnRQYWdlICsgMSkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iLCI8ZGl2IFtzdHlsZS5kaXNwbGF5XT1cImlzVmlzaWJsZSgpPyAnJyA6ICdub25lJ1wiIGNsYXNzPVwiby1ncmlkLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0cmV0Y2hcIj5cblxuICA8IS0tVE9PTEJBUi0tPlxuICA8by1kYXRhLXRvb2xiYXIgKm5nSWY9XCJoYXNDb250cm9scygpXCIgY2xhc3M9XCJvLWdyaWQtdG9vbGJhclwiIFt0aXRsZV09XCJ0aXRsZVwiIFtzaG93LXRpdGxlXT1cImhhc1RpdGxlKClcIj5cbiAgICA8bmctY29udGFpbmVyIG8tZGF0YS10b29sYmFyLXByb2plY3Rpb24tc3RhcnQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0J1dHRvbnNUZXh0O2Vsc2Ugc2hvd0J1dHRvbnNXaXRob3V0VGV4dFwiPlxuICAgICAgICA8IS0tIGJ1dHRvbiBuZXctLT5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc2VydEJ1dHRvbiAmJiAhaW5zZXJ0QnV0dG9uRmxvYXRhYmxlXCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZEluc2VydEJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLWdyaWQtYWRkLWJ1dHRvbiBvLWdyaWQtYnV0dG9uIHRleHRcIiBtYXQtc3Ryb2tlZC1idXR0b24gYXJpYS1sYWJlbD1cIkluc2VydFwiIChjbGljayk9XCJhZGQoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwib250aW1pemU6YWRkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyAnQUREJyB8IG9UcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDwhLS1idXR0b24gcmVmcmVzaC0tPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtc3Ryb2tlZC1idXR0b24gYXJpYS1sYWJlbD1cIlJlZnJlc2hcIiBbZGlzYWJsZWRdPVwiIWVuYWJsZWRSZWZyZXNoQnV0dG9uXCIgKGNsaWNrKT1cInJlbG9hZERhdGEoKVwiICpuZ0lmPVwicmVmcmVzaEJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLWdyaWQtYnV0dG9uIHRleHRcIj5cbiAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOmF1dG9yZW5ld1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgJ1JFRlJFU0gnIHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNzaG93QnV0dG9uc1dpdGhvdXRUZXh0PlxuICAgICAgICA8IS0tIGJ1dHRvbiBuZXctLT5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc2VydEJ1dHRvbiAmJiAhaW5zZXJ0QnV0dG9uRmxvYXRhYmxlXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVkSW5zZXJ0QnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLWdyaWQtYnV0dG9uIG8tZ3JpZC1hZGQtYnV0dG9uIG5vLXRleHRcIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkluc2VydFwiIChjbGljayk9XCJhZGQoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwib250aW1pemU6YWRkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPCEtLWJ1dHRvbiByZWZyZXNoLS0+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiUmVmcmVzaFwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZFJlZnJlc2hCdXR0b25cIiAoY2xpY2spPVwicmVsb2FkRGF0YSgpXCIgKm5nSWY9XCJyZWZyZXNoQnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cIm8tZ3JpZC1idXR0b24gbm8tdGV4dFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwib250aW1pemU6YXV0b3JlbmV3XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8IS0tTy1HUklELVBBR0lOQVRPUi0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tZ3JpZC1wYWdpbmF0b3JcIiAqbmdJZj1cInNob3dQYWdlU2l6ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1ncmlkLXBhZ2Utc2l6ZS1sYWJlbFwiPnt7ICdHUklELklURU1TX1BFUl9QQUdFJyB8IG9UcmFuc2xhdGUgfX06PC9kaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm8tZ3JpZC1zZWxlY3QtcGFnZVwiPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiXCIgI3BhZ2VTaXplU2VsZWN0IFsodmFsdWUpXT1cInF1ZXJ5Um93c1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwicGFnZVNpemVDaGFuZ2VkKClcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VTaXplT3B0aW9uc1wiIFt2YWx1ZV09XCJwYWdlXCI+XG4gICAgICAgICAgICAgIHt7IHBhZ2UgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLU8tR1JJRC1TT1JULS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1ncmlkLXNvcnRcIiAqbmdJZj1cInNob3dTb3J0ICYmIHNvcnRhYmxlQ29sdW1ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm8tZ3JpZC1zZWxlY3Qtc29ydFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRQcmVmaXg+c29ydDwvbWF0LWljb24+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgI3NvcnRTZWxlY3QgW3ZhbHVlXT1cImN1cnJlbnRPcmRlckNvbHVtblwiIChzZWxlY3Rpb25DaGFuZ2UpPVwic29ydENvbHVtbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIiB7eyAnR1JJRC5TT1JUX0JZJyB8IG9UcmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc29ydGFibGVDb2x1bW5zOyBsZXQgaSA9IGluZGV4XCIgW3ZhbHVlXT1cImlcIj5cbiAgICAgICAgICAgICAge3sgZ2V0U29ydE9wdGlvblRleHQoY29sdW1uKSB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW28tZ3JpZC10b29sYmFyXVtwb3NpdGlvbj1zdGFydF1cIiBuZ1Byb2plY3RBcz1cIltvLWRhdGEtdG9vbGJhci1jdXN0b20tcHJvamVjdGlvbi1zdGFydF1cIj5cbiAgICA8L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW28tZ3JpZC10b29sYmFyXVtwb3NpdGlvbj1lbmRdXCIgbmdQcm9qZWN0QXM9XCJbby1kYXRhLXRvb2xiYXItY3VzdG9tLXByb2plY3Rpb24tZW5kXVwiPlxuICAgIDwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbby1ncmlkLXRvb2xiYXJdXCIgbmdQcm9qZWN0QXM9XCJbby1kYXRhLXRvb2xiYXItY3VzdG9tLXByb2plY3Rpb24tc3RhcnRdXCI+XG4gICAgPC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgby1kYXRhLXRvb2xiYXItcHJvamVjdGlvbi1lbmQ+XG4gICAgICA8by1zZWFyY2gtaW5wdXQgKm5nSWY9XCJxdWlja0ZpbHRlclwiIFtjb2x1bW5zXT1cInF1aWNrRmlsdGVyQ29sdW1uc1wiIFtmaWx0ZXItY2FzZS1zZW5zaXRpdmVdPVwiZmlsdGVyQ2FzZVNlbnNpdGl2ZVwiXG4gICAgICAgIFtzaG93LWNhc2Utc2Vuc2l0aXZlLWNoZWNrYm94XT1cInNob3dDYXNlU2Vuc2l0aXZlQ2hlY2tib3goKVwiIFtwbGFjZWhvbGRlcl09XCJxdWlja0ZpbHRlclBsYWNlaG9sZGVyXCIgW2FwcGVhcmFuY2VdPVwicXVpY2tGaWx0ZXJBcHBlYXJhbmNlXCJcbiAgICAgICAgZmxvYXQtbGFiZWw9XCJuZXZlclwiPjwvby1zZWFyY2gtaW5wdXQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvby1kYXRhLXRvb2xiYXI+XG5cbiAgPCEtLW5vIHJlc3VsdHMtLT5cbiAgPGRpdiBjbGFzcz1cIm8tZ3JpZC1uby1yZXN1bHRzIGZpbGwtcmVtYWluaW5nXCIgKm5nSWY9XCJncmlkSXRlbXMubGVuZ3RoID09PSAwXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBzdGFydFwiIGxheW91dC1wYWRkaW5nXG4gICAgW25nU3R5bGVdPVwieyd2aXNpYmlsaXR5JzogKGxvYWRpbmcgfCBhc3luYykgPT09IGZhbHNlID8gJ3Zpc2libGUnOidoaWRkZW4nfVwiPlxuICAgIHt7J0dSSUQuRU1QVFknIHwgb1RyYW5zbGF0ZX19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1aWNrRmlsdGVyICYmIHNlYXJjaElucHV0Q29tcG9uZW50ICYmIHNlYXJjaElucHV0Q29tcG9uZW50LmdldFZhbHVlKCkgJiYgc2VhcmNoSW5wdXRDb21wb25lbnQuZ2V0VmFsdWUoKS5sZW5ndGggPiAwXCI+XG4gICAgICB7eyAnR1JJRC5FTVBUWV9VU0lOR19GSUxURVInIHwgb1RyYW5zbGF0ZSA6IHsgdmFsdWVzOiBbIHNlYXJjaElucHV0Q29tcG9uZW50LmdldFZhbHVlKCldIH0gfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cblxuICA8IS0tTUFULUdSSUQtTElTVC0tPlxuICA8bWF0LWdyaWQtbGlzdCBbY29sc109XCJjb2xzXCIgW2d1dHRlclNpemVdPVwiZ3V0dGVyU2l6ZVwiIFtyb3dIZWlnaHRdPVwiZ3JpZEl0ZW1IZWlnaHRcIiBjbGFzcz1cIm8tbWF0LWdyaWQtbGlzdCBmaWxsLXJlbWFpbmluZ1wiXG4gICAgKm5nSWY9XCJncmlkSXRlbXMubGVuZ3RoID4gMFwiIFtuZ1N0eWxlXT1cInsndmlzaWJpbGl0eSc6IChsb2FkaW5nIHwgYXN5bmMpID09PSBmYWxzZSA/ICd2aXNpYmxlJzonaGlkZGVuJ31cIj5cbiAgICA8bWF0LWdyaWQtdGlsZSBvLWdyaWQtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncmlkSXRlbXNcIiBbY29sc3Bhbl09XCJpdGVtLmNvbHNwYW5cIiBbcm93c3Bhbl09XCJpdGVtLnJvd3NwYW5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtZ3JpZC10aWxlPlxuICA8L21hdC1ncmlkLWxpc3Q+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJJbnNlcnRcIiAqbmdJZj1cImluc2VydEJ1dHRvbiAmJiBpbnNlcnRCdXR0b25GbG9hdGFibGVcIiBbZGlzYWJsZWRdPVwiIWVuYWJsZWRJbnNlcnRCdXR0b25cIiBtYXQtZmFiIChjbGljayk9XCJhZGQoKVwiXG4gICAgY2xhc3M9XCJvLWdyaWQtYWRkLWZsb2F0YWJsZS1idXR0b25cIiBbY2xhc3Muby1ncmlkLWFkZC1ib3R0b20tZmxvYXRhYmxlLWJ1dHRvbl09XCJpbnNlcnRCdXR0b25Qb3NpdGlvbiA9PT0nYm90dG9tJ1wiXG4gICAgW2NsYXNzLm8tZ3JpZC1hZGQtdG9wLWZsb2F0YWJsZS1idXR0b25dPVwiaW5zZXJ0QnV0dG9uUG9zaXRpb24gPT09J3RvcCdcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOmFkZFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDwhLS0gR1JJRCBGT09URVIgLS0+XG4gIDxkaXYgKm5nSWY9XCIhcGFnaW5hdGlvbkNvbnRyb2xzICYmIHNob3dGb290ZXIgJiYgKGxvYWRpbmcgfCBhc3luYyk9PT1mYWxzZVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBjbGFzcz1cIm8tZ3JpZC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uICpuZ0lmPVwiZ2V0RGF0YUFycmF5KCkubGVuZ3RoIDwgdG90YWxSZWNvcmRzICYmIGdldERhdGFBcnJheSgpLmxlbmd0aD4wXCIgKGNsaWNrKT1cImxvYWRNb3JlKClcIlxuICAgICAgY2xhc3M9XCJtYXQtcmFpc2VkLWJ1dHRvblwiPlxuICAgICAge3sgJ0dSSUQuQlVUVE9OX05FWFQnIHwgb1RyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxzcGFuIGZ4RmxleD48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJvLWdyaWQtdG90YWxzXCI+e3sgJ0dSSUQuVEVYVF9TSE9XTl9JVEVNUycgfCBvVHJhbnNsYXRlIDp7dmFsdWVzOiBbZ2V0RGF0YUFycmF5KCkubGVuZ3RoLCB0b3RhbFJlY29yZHNdfVxuICAgICAgfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxtYXQtcGFnaW5hdG9yIGNsYXNzPVwiby1tYXQtcGFnaW5hdG9yXCIgI3BhZ2luYXRvciAqbmdJZj1cInBhZ2luYXRpb25Db250cm9scyAmJiBzaG93Rm9vdGVyXCIgW2xlbmd0aF09XCJ0b3RhbFJlY29yZHNcIiBbcGFnZVNpemVdPVwicXVlcnlSb3dzXCJcbiAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiIFtwYWdlSW5kZXhdPVwiY3VycmVudFBhZ2VcIiBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiIChwYWdlKT1cIm9uQ2hhbmdlUGFnZSgkZXZlbnQpXCJcbiAgICAgW25nU3R5bGVdPVwieyd2aXNpYmlsaXR5JzogKGxvYWRpbmcgfCBhc3luYykgPT09IGZhbHNlID8gJ3Zpc2libGUnOidoaWRkZW4nfVwiPjwvbWF0LXBhZ2luYXRvcj5cblxuICA8ZGl2ICpuZ0lmPVwibG9hZGluZyB8IGFzeW5jXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGVuZFwiIGNsYXNzPVwiby1sb2FkaW5nLWJsb2NrZXJcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgW2NsYXNzLm8tc3Bpbm5lci1jb250YWluZXItY29udHJvbHNdPVwiaGFzQ29udHJvbHMoKVwiIGNsYXNzPVwiby1zcGlubmVyLWNvbnRhaW5lclwiPlxuICAgICAgPG8tZ3JpZC1za2VsZXRvbj48L28tZ3JpZC1za2VsZXRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cblxuPC9kaXY+XG4iXX0=
|
|
396
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQvby1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQvby1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBSVIsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFLakcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixD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WTt1QkFBQyxrQkFBa0I7Z0JBR3pCLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZWRpYUNoYW5nZSwgTWVkaWFPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dENvbnZlcnRlciB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvaW5wdXQtY29udmVydGVyJztcbmltcG9ydCB7IElHcmlkSXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvby1ncmlkLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlU2VydmljZVByb3ZpZGVyLCBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBPR3JpZENvbXBvbmVudFN0YXRlQ2xhc3MgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdGF0ZS9vLWdyaWQtY29tcG9uZW50LXN0YXRlLmNsYXNzJztcbmltcG9ydCB7IE9HcmlkQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1ncmlkLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9HcmlkUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLWdyaWQtcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBPUXVlcnlEYXRhQXJncyB9IGZyb20gJy4uLy4uL3R5cGVzL3F1ZXJ5LWRhdGEtYXJncy50eXBlJztcbmltcG9ydCB7IFNRTE9yZGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvc3FsLW9yZGVyLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFNlcnZpY2VVdGlscyB9IGZyb20gJy4uLy4uL3V0aWwvc2VydmljZS51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9vLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFic3RyYWN0T1NlcnZpY2VDb21wb25lbnQgfSBmcm9tICcuLi9vLXNlcnZpY2UtY29tcG9uZW50LmNsYXNzJztcbmltcG9ydCB7IE9NYXRTb3J0IH0gZnJvbSAnLi4vdGFibGUvZXh0ZW5zaW9ucy9zb3J0L28tbWF0LXNvcnQnO1xuaW1wb3J0IHsgT0dyaWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9ncmlkLWl0ZW0vby1ncmlkLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE9HcmlkSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZ3JpZC1pdGVtL28tZ3JpZC1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9xdWVyeS1wYXJhbXMudHlwZSc7XG5pbXBvcnQgeyBPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFIH0gZnJvbSAnLi4vLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX0dSSUQgPSBbXG4gIC8vIGNvbHM6IEFtb3VudCBvZiBjb2x1bW5zIGluIHRoZSBncmlkIGxpc3QuIERlZmF1bHQgaW4gZXh0cmEgc21hbGwgYW5kIHNtYWxsIHNjcmVlbiBpcyAxLCBpbiBtZWRpdW0gc2NyZWVuIGlzIDIsIGluIGxhcmdlIHNjcmVlbiBpcyAzIGFuZCBleHRyYSBsYXJnZSBzY3JlZW4gaXMgNC5cbiAgJ2NvbHMnLFxuICAvLyBzaG93LXBhZ2Utc2l6ZTpXaGV0aGVyIHRvIGhpZGUgdGhlIHBhZ2Ugc2l6ZSBzZWxlY3Rpb24gVUkgZnJvbSB0aGUgdXNlci5cbiAgJ3Nob3dQYWdlU2l6ZTogc2hvdy1wYWdlLXNpemUnLFxuICAvLyBzaG93LXNvcnQ6d2hldGhlciBvciBub3QgdGhlIHNvcnQgc2VsZWN0IGlzIHNob3duIGluIHRoZSB0b29sYmFyXG4gICdzaG93U29ydDogb3JkZXJhYmxlJyxcbiAgLy8gc29ydGFibGVbc3RyaW5nXTogY29sdW1ucyBvZiB0aGUgZmlsdGVyLCBzZXBhcmF0ZWQgYnkgJzsnLiBEZWZhdWx0OiBubyB2YWx1ZS5cbiAgJ3NvcnRhYmxlQ29sdW1uczogc29ydGFibGUtY29sdW1ucycsXG4gIC8vIHNvcnRDb2x1bW5zW3N0cmluZ106IGNvbHVtbnMgb2YgdGhlIHNvcnRpbmdjb2x1bW5zLCBzZXBhcmF0ZWQgYnkgJzsnLiBEZWZhdWx0OiBubyB2YWx1ZS5cbiAgJ3NvcnRDb2x1bW46IHNvcnQtY29sdW1uJyxcbiAgLy8gcXVpY2stZmlsdGVyLWNvbHVtbnMgW3N0cmluZ106IGNvbHVtbnMgb2YgdGhlIGZpbHRlciwgc2VwYXJhdGVkIGJ5ICc7Jy4gRGVmYXVsdDogbm8gdmFsdWUuXG4gICdxdWlja0ZpbHRlckNvbHVtbnM6IHF1aWNrLWZpbHRlci1jb2x1bW5zJyxcbiAgLy8gIGdyaWQtaXRlbS1oZWlnaHRbc3RyaW5nXTogU2V0IGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHJvdyBoZWlnaHQgZnJvbSB0aGUgdXNlci1wcm92aWRlZCB2YWx1ZS4uIERlZmF1bHQ6IDE6MS5cbiAgJ2dyaWRJdGVtSGVpZ2h0OiBncmlkLWl0ZW0taGVpZ2h0JyxcbiAgLy8gcmVmcmVzaC1idXR0b24gW25vfHllc106IHNob3cgcmVmcmVzaCBidXR0b24uIERlZmF1bHQ6IHllcy5cbiAgJ3JlZnJlc2hCdXR0b246IHJlZnJlc2gtYnV0dG9uJyxcbiAgLy8gZ3V0dGVyU2l6ZTogU2l6ZSBvZiB0aGUgZ3JpZCBsaXN0J3MgZ3V0dGVyIGluIHBpeGVscy5cbiAgJ2d1dHRlclNpemU6Z3V0dGVyLXNpemUnLFxuICAvLyBmaXgtaGVhZGVyIFt5ZXN8bm98dHJ1ZXxmYWxzZV06IGZpeGVkIGZvb3RlciB3aGVuIHRoZSBjb250ZW50IGlzIGdyZWF0aGVyIHRoYW4gaXRzIG93biBoZWlnaHQuIERlZmF1bHQ6IG5vLlxuICAnZml4ZWRIZWFkZXI6Zml4ZWQtaGVhZGVyJyxcbiAgLy8gc2hvdy1mb290ZXI6SW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGZvb3RlcjpEZWZhdWx0OnRydWVcbiAgJ3Nob3dGb290ZXI6c2hvdy1mb290ZXInLFxuICAvLyBpbnNlcnQtYnV0dG9uLXBvc2l0aW9uIFsgdG9wIHwgYm90dG9tIF06IHBvc2l0aW9uIG9mIHRoZSBpbnNlcnQgYnV0dG9uLiBEZWZhdWx0OiAnYm90dG9tJ1xuICAnaW5zZXJ0QnV0dG9uUG9zaXRpb246aW5zZXJ0LWJ1dHRvbi1wb3NpdGlvbicsXG4gIC8vIGluc2VydC1idXR0b24tZmxvYXRhYmxlIFtub3x5ZXNdOiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdG8gcG9zaXRpb24gb2YgdGhlIGluc2VydCBidXR0b24gaXMgZmxvYXRpbmcgLiBEZWZhdWx0OiAneWVzJ1xuICAnaW5zZXJ0QnV0dG9uRmxvYXRhYmxlOmluc2VydC1idXR0b24tZmxvYXRhYmxlJyxcbiAgLy8gc2hvdy1idXR0b25zLXRleHQgW3llc3xub3x0cnVlfGZhbHNlXTogc2hvdyB0ZXh0IG9mIGJ1dHRvbnMuIERlZmF1bHQ6IG5vLlxuICAnc2hvd0J1dHRvbnNUZXh0OiBzaG93LWJ1dHRvbnMtdGV4dCdcbl07XG5cblxuY29uc3QgUEFHRV9TSVpFX09QVElPTlMgPSBbOCwgMTYsIDI0LCAzMiwgNjRdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWdyaWQnLFxuICBwcm92aWRlcnM6IFtcbiAgICBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlcixcbiAgICBDb21wb25lbnRTdGF0ZVNlcnZpY2VQcm92aWRlcixcbiAgICB7IHByb3ZpZGU6IE9fQ09NUE9ORU5UX1NUQVRFX1NFUlZJQ0UsIHVzZUNsYXNzOiBPR3JpZENvbXBvbmVudFN0YXRlU2VydmljZSB9LFxuICBdLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fR1JJRCxcbiAgdGVtcGxhdGVVcmw6ICcuL28tZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tZ3JpZC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLWdyaWRdJzogJ3RydWUnLFxuICAgICdbY2xhc3Muby1ncmlkLWZpeGVkXSc6ICdmaXhlZEhlYWRlcidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPR3JpZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0T1NlcnZpY2VDb21wb25lbnQ8T0dyaWRDb21wb25lbnRTdGF0ZVNlcnZpY2U+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG5cbiAgLyogSW5wdXRzICovXG4gIHByb3RlY3RlZCBfcXVlcnlSb3dzID0gMzI7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyBmaXhlZEhlYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgc2hvd1BhZ2VTaXplOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyBzaG93U29ydDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgc2hvd0Zvb3RlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHVibGljIGdyaWRJdGVtSGVpZ2h0ID0gJzE6MSc7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyByZWZyZXNoQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgaW5zZXJ0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHB1YmxpYyBpbnNlcnRCdXR0b25GbG9hdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBzaG93QnV0dG9uc1RleHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgaW5zZXJ0QnV0dG9uUG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScgPSAnYm90dG9tJztcbiAgcGFnaW5hdGlvbkNvbnRyb2xzID0gZmFsc2U7XG4gIHB1YmxpYyBndXR0ZXJTaXplID0gJzFweCc7XG4gIHByb3RlY3RlZCBfcXVpY2tGaWx0ZXJBcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlID0gJ291dGxpbmUnO1xuICBnZXQgY29scygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb2xzIHx8IHRoaXMuX2NvbHNEZWZhdWx0O1xuICB9XG4gIHNldCBjb2xzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jb2xzID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc29ydGFibGVDb2x1bW5zKCk6IFNRTE9yZGVyW10ge1xuICAgIHJldHVybiB0aGlzLl9zb3J0YWJsZUNvbHVtbnM7XG4gIH1cbiAgc2V0IHNvcnRhYmxlQ29sdW1ucyh2YWwpIHtcbiAgICBsZXQgcGFyc2VkID0gW107XG4gICAgaWYgKCFVdGlsLmlzQXJyYXkodmFsKSkge1xuICAgICAgcGFyc2VkID0gU2VydmljZVV0aWxzLnBhcnNlU29ydENvbHVtbnMoU3RyaW5nKHZhbCkpO1xuICAgIH1cbiAgICB0aGlzLl9zb3J0YWJsZUNvbHVtbnMgPSBwYXJzZWQ7XG4gIH1cblxuICBwdWJsaWMgcXVpY2tGaWx0ZXJDb2x1bW5zOiBzdHJpbmc7XG4gIC8qIEVuZCBJbnB1dHMgKi9cblxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gT0dyaWRJdGVtQ29tcG9uZW50KSlcbiAgcHVibGljIGlucHV0R3JpZEl0ZW1zOiBRdWVyeUxpc3Q8T0dyaWRJdGVtQ29tcG9uZW50PjtcbiAgQFZpZXdDaGlsZHJlbihPR3JpZEl0ZW1EaXJlY3RpdmUpXG4gIHB1YmxpYyBncmlkSXRlbURpcmVjdGl2ZXM6IFF1ZXJ5TGlzdDxPR3JpZEl0ZW1EaXJlY3RpdmU+O1xuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcilcbiAgcHVibGljIG1hdHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIC8qIFBhcnNlZCBJbnB1dHMgKi9cbiAgcHJvdGVjdGVkIF9zb3J0YWJsZUNvbHVtbnM6IFNRTE9yZGVyW10gPSBbXTtcbiAgcHVibGljIHNvcnRDb2x1bW5PcmRlcjogU1FMT3JkZXI7XG4gIC8qIEVuZCBwYXJzZWQgSW5wdXRzICovXG5cbiAgcHJvdGVjdGVkIF9jb2xzO1xuICBwcm90ZWN0ZWQgX2NvbHNEZWZhdWx0ID0gMTtcbiAgX3BhZ2VTaXplT3B0aW9ucyA9IFBBR0VfU0laRV9PUFRJT05TO1xuICBwcm90ZWN0ZWQgc29ydENvbHVtbjogc3RyaW5nO1xuICBwdWJsaWMgc3RvcmVQYWdpbmF0aW9uU3RhdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZXQgZ3JpZEl0ZW1zKHZhbHVlOiBJR3JpZEl0ZW1bXSkge1xuICAgIHRoaXMuX2dyaWRJdGVtcyA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGdyaWRJdGVtcygpOiBJR3JpZEl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2dyaWRJdGVtcztcbiAgfVxuXG4gIHByb3RlY3RlZCBfZ3JpZEl0ZW1zOiBJR3JpZEl0ZW1bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJvdGVjdGVkIG1lZGlhOiBNZWRpYU9ic2VydmVyO1xuXG4gIHByb3RlY3RlZCBvTWF0U29ydDogT01hdFNvcnQ7XG4gIHByb3RlY3RlZCBwZXJtaXNzaW9uczogT0dyaWRQZXJtaXNzaW9ucztcbiAgcHJvdGVjdGVkIGFjdGlvbnNQZXJtaXNzaW9uczogT1Blcm1pc3Npb25zW107XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9Gb3JtQ29tcG9uZW50KSkgZm9ybTogT0Zvcm1Db21wb25lbnRcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGVsUmVmLCBmb3JtKTtcbiAgICB0aGlzLm1lZGlhID0gdGhpcy5pbmplY3Rvci5nZXQoTWVkaWFPYnNlcnZlcik7XG4gICAgdGhpcy5vTWF0U29ydCA9IG5ldyBPTWF0U29ydCgpO1xuICB9XG5cbiAgZ2V0IHN0YXRlKCk6IE9HcmlkQ29tcG9uZW50U3RhdGVDbGFzcyB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgIHRoaXMucGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5nZXRHcmlkUGVybWlzc2lvbnModGhpcy5vYXR0ciwgdGhpcy5hY3RSb3V0ZSk7XG4gICAgdGhpcy5hY3Rpb25zUGVybWlzc2lvbnMgPSB0aGlzLmdldEFjdGlvbnNQZXJtaXNzaW9ucyh0aGlzLnBlcm1pc3Npb25zKTtcbiAgICB0aGlzLnNldEJ1dHRvblBlcm1pc3Npb25zKHRoaXMuYWN0aW9uc1Blcm1pc3Npb25zKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5pbml0aWFsaXplKCk7XG5cbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMucXVpY2tGaWx0ZXJDb2x1bW5zKSkge1xuICAgICAgdGhpcy5xdWlja0ZpbHRlckNvbHVtbnMgPSB0aGlzLmNvbHVtbnM7XG4gICAgfVxuICAgIHRoaXMucXVpY2tGaWx0ZXJDb2xBcnJheSA9IFV0aWwucGFyc2VBcnJheSh0aGlzLnF1aWNrRmlsdGVyQ29sdW1ucywgdHJ1ZSk7XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5zdGF0ZS5zb3J0Q29sdW1uKSkge1xuICAgICAgdGhpcy5zb3J0Q29sdW1uID0gdGhpcy5zdGF0ZS5zb3J0Q29sdW1uO1xuICAgIH1cbiAgICB0aGlzLnBhcnNlU29ydENvbHVtbigpO1xuXG4gICAgY29uc3QgZXhpc3RpbmdPcHRpb24gPSB0aGlzLnBhZ2VTaXplT3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24gPT09IHRoaXMucXVlcnlSb3dzKTtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKGV4aXN0aW5nT3B0aW9uKSkge1xuICAgICAgdGhpcy5fcGFnZVNpemVPcHRpb25zLnB1c2godGhpcy5xdWVyeVJvd3MpO1xuICAgICAgdGhpcy5fcGFnZVNpemVPcHRpb25zLnNvcnQoKGk6IG51bWJlciwgajogbnVtYmVyKSA9PiBpIC0gaik7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnN0YXRlLmN1cnJlbnRQYWdlKSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuc3RhdGUuY3VycmVudFBhZ2U7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnN0YXRlLnF1ZXJ5Um93cykpIHtcbiAgICAgIHRoaXMucXVlcnlSb3dzID0gdGhpcy5zdGF0ZS5xdWVyeVJvd3M7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5hZnRlclZpZXdJbml0KCk7XG4gICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlID0gVXRpbC5pc0RlZmluZWQodGhpcy5zdGF0ZS5maWx0ZXJDYXNlU2Vuc2l0aXZlKSA/XG4gICAgICB0aGlzLnN0YXRlLmZpbHRlckNhc2VTZW5zaXRpdmUgOlxuICAgICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlO1xuICAgIHRoaXMuc2V0R3JpZEl0ZW1EaXJlY3RpdmVzRGF0YSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9NZWRpYUNoYW5nZXMoKTtcbiAgICB0aGlzLnJlZ2lzdGVyUXVpY2tGaWx0ZXIodGhpcy5zZWFyY2hJbnB1dENvbXBvbmVudCk7XG4gICAgaWYgKHRoaXMucXVlcnlPbkluaXQpIHtcbiAgICAgIHRoaXMucXVlcnlEYXRhKCk7XG4gICAgfVxuICAgIHRoaXMubWFuYWdlQ3VzdG9tUGVybWlzc2lvbnModGhpcy5hY3Rpb25zUGVybWlzc2lvbnMsICdbby1ncmlkLXRvb2xiYXJdJyk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZEl0ZW1zID0gdGhpcy5pbnB1dEdyaWRJdGVtcy50b0FycmF5KCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuaW5wdXRHcmlkSXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUocXVlcnlDaGFuZ2VzID0+IHtcbiAgICAgIHRoaXMuZ3JpZEl0ZW1zID0gcXVlcnlDaGFuZ2VzLl9yZXN1bHRzO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmVUb01lZGlhQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5tZWRpYS5hc09ic2VydmFibGUoKS5zdWJzY3JpYmUoKGNoYW5nZTogTWVkaWFDaGFuZ2VbXSkgPT4ge1xuICAgICAgaWYgKGNoYW5nZSAmJiBjaGFuZ2VbMF0pIHtcbiAgICAgICAgc3dpdGNoIChjaGFuZ2VbMF0ubXFBbGlhcykge1xuICAgICAgICAgIGNhc2UgJ3hzJzpcbiAgICAgICAgICBjYXNlICdzbSc6XG4gICAgICAgICAgICB0aGlzLl9jb2xzRGVmYXVsdCA9IDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdtZCc6XG4gICAgICAgICAgICB0aGlzLl9jb2xzRGVmYXVsdCA9IDI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdsZyc6XG4gICAgICAgICAgY2FzZSAneGwnOlxuICAgICAgICAgICAgdGhpcy5fY29sc0RlZmF1bHQgPSA0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZERhdGEoKTogdm9pZCB7XG4gICAgbGV0IHF1ZXJ5QXJnczogT1F1ZXJ5RGF0YUFyZ3MgPSB7fTtcbiAgICBpZiAodGhpcy5wYWdlYWJsZSkge1xuICAgICAgdGhpcy5zdGF0ZS5xdWVyeVJlY29yZE9mZnNldCA9IDA7XG4gICAgICBxdWVyeUFyZ3MgPSB7XG4gICAgICAgIG9mZnNldDogdGhpcy5wYWdpbmF0aW9uQ29udHJvbHMgPyAodGhpcy5jdXJyZW50UGFnZSAqIHRoaXMucXVlcnlSb3dzKSA6IDAsXG4gICAgICAgIGxlbmd0aDogTWF0aC5tYXgodGhpcy5xdWVyeVJvd3MsIHRoaXMuZGF0YVJlc3BvbnNlQXJyYXkubGVuZ3RoKSxcbiAgICAgICAgcmVwbGFjZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy5xdWVyeURhdGEodm9pZCAwLCBxdWVyeUFyZ3MpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZFBhZ2luYXRlZERhdGFGcm9tU3RhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XG4gICAgdGhpcy5kYXRhUmVzcG9uc2VBcnJheSA9IFtdO1xuICAgIHRoaXMucmVsb2FkRGF0YSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNvcnRlZERhdGFGcm9tQXJyYXkoZGF0YUFycmF5OiBhbnlbXSk6IGFueVtdIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5zb3J0Q29sdW1uT3JkZXIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5vTWF0U29ydC5nZXRTb3J0ZWREYXRhQnlTUUxPcmRlcihkYXRhQXJyYXksIFt0aGlzLnNvcnRDb2x1bW5PcmRlcl0pO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YUFycmF5O1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyR3JpZEl0ZW1EaXJlY3RpdmUoaXRlbTogT0dyaWRJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGlmICh0aGlzLmRldGFpbE1vZGUgPT09IENvZGVzLkRFVEFJTF9NT0RFX0NMSUNLKSB7XG4gICAgICAgIGl0ZW0ub25DbGljayhncmlkSXRlbSA9PiB0aGlzLm9uSXRlbURldGFpbENsaWNrKGdyaWRJdGVtKSk7XG4gICAgICB9XG4gICAgICBpZiAoQ29kZXMuaXNEb3VibGVDbGlja01vZGUodGhpcy5kZXRhaWxNb2RlKSkge1xuICAgICAgICBpdGVtLm9uRG91YmxlQ2xpY2soZ3JpZEl0ZW0gPT4gdGhpcy5vbkl0ZW1EZXRhaWxEYmxDbGljayhncmlkSXRlbSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZW1EZXRhaWxDbGljayhpdGVtOiBPR3JpZEl0ZW1EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUl0ZW1DbGljayhpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZW1EZXRhaWxEYmxDbGljayhpdGVtOiBPR3JpZEl0ZW1EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUl0ZW1EYmxDbGljayhpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRNb3JlKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgKz0gMTtcbiAgICBpZiAodGhpcy5wYWdlYWJsZSkge1xuICAgICAgY29uc3QgcXVlcnlBcmdzOiBPUXVlcnlEYXRhQXJncyA9IHtcbiAgICAgICAgb2Zmc2V0OiB0aGlzLnN0YXRlLnF1ZXJ5UmVjb3JkT2Zmc2V0LFxuICAgICAgICBsZW5ndGg6IHRoaXMucXVlcnlSb3dzXG4gICAgICB9O1xuICAgICAgdGhpcy5kYXRhU2VydmljZT8uc2V0UGFnaW5hdGlvbkNvbnRleHQoeyBwYWdlTnVtYmVyOiB0aGlzLmRhdGFTZXJ2aWNlPy5nZXRQYWdpbmF0aW9uQ29udGV4dCgpLnBhZ2VOdW1iZXIgKyAxIH0pO1xuICAgICAgdGhpcy5xdWVyeURhdGEodm9pZCAwLCBxdWVyeUFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlckRhdGEodm9pZCAwLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuXG4gIHB1YmxpYyBnZXRRdWVyeUFyZ3VtZW50cyhmaWx0ZXI6IG9iamVjdCwgb3ZyckFyZ3M/OiBPUXVlcnlEYXRhQXJncyk6IE9RdWVyeVBhcmFtcyB7XG4gICAgY29uc3QgcXVlcnlBcmd1bWVudHMgPSBzdXBlci5nZXRRdWVyeUFyZ3VtZW50cyhmaWx0ZXIsIG92cnJBcmdzKTtcblxuICAgIGlmICh0aGlzLnBhZ2VhYmxlICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuc29ydENvbHVtbikpIHtcbiAgICAgIHF1ZXJ5QXJndW1lbnRzLnNvcnQgPSB0aGlzLnNvcnRDb2x1bW5PcmRlciA/IFt0aGlzLnNvcnRDb2x1bW5PcmRlcl0gOiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5QXJndW1lbnRzO1xuICB9XG5cbiAgcHVibGljIHBhcnNlU29ydENvbHVtbigpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJzZWQgPSAoU2VydmljZVV0aWxzLnBhcnNlU29ydENvbHVtbnModGhpcy5zb3J0Q29sdW1uKSB8fCBbXSlbMF07XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbmRTb3J0YWJsZUNvbHVtbkluZGV4KHBhcnNlZCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGluZGV4KSAmJiBpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuc29ydENvbHVtbk9yZGVyID0gcGFyc2VkO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjdXJyZW50T3JkZXJDb2x1bW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maW5kU29ydGFibGVDb2x1bW5JbmRleCh0aGlzLnNvcnRDb2x1bW5PcmRlcik7XG4gIH1cblxuICBzZXQgY3VycmVudE9yZGVyQ29sdW1uKHZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5zb3J0Q29sdW1uT3JkZXIgPSB0aGlzLnNvcnRhYmxlQ29sdW1uc1t2YWxdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpbmRTb3J0YWJsZUNvbHVtbkluZGV4KHNvcnRhYmxlQ29sdW1uOiBTUUxPcmRlcik6IG51bWJlciB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChzb3J0YWJsZUNvbHVtbikpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zb3J0YWJsZUNvbHVtbnNcbiAgICAgIC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmNvbHVtbk5hbWUgPT09IHNvcnRhYmxlQ29sdW1uLmNvbHVtbk5hbWVcbiAgICAgICAgJiYgaXRlbS5hc2NlbmRlbnQgPT09IHNvcnRhYmxlQ29sdW1uLmFzY2VuZGVudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0YVRvU3RvcmUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2UuZ2V0RGF0YVRvU3RvcmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTb3J0T3B0aW9uVGV4dChjb2w6IFNRTE9yZGVyKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0O1xuICAgIGxldCBjb2xUZXh0S2V5ID0gYEdSSUQuU09SVF9CWV8ke2NvbC5jb2x1bW5OYW1lLnRvVXBwZXJDYXNlKCl9X2AgKyAoY29sLmFzY2VuZGVudCA/ICdBU0MnIDogJ0RFU0MnKTtcbiAgICByZXN1bHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGNvbFRleHRLZXkpO1xuICAgIGlmIChyZXN1bHQgIT09IGNvbFRleHRLZXkpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGNvbFRleHRLZXkgPSAnR1JJRC5TT1JUX0JZXycgKyAoY29sLmFzY2VuZGVudCA/ICdBU0MnIDogJ0RFU0MnKTtcbiAgICByZXN1bHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGNvbFRleHRLZXksIFsodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChjb2wuY29sdW1uTmFtZSkgfHwgJycpXSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBhZGQoKTogdm9pZCB7XG4gICAgc3VwZXIuaW5zZXJ0RGV0YWlsKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VSZXNwb25zZUFycmF5KGRhdGE6IGFueVtdLCByZXBsYWNlPzogYm9vbGVhbikge1xuICAgIGxldCByZXN1bHQgPSBkYXRhO1xuICAgIGlmICh0aGlzLnBhZ2VhYmxlICYmICFyZXBsYWNlKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLnBhZ2luYXRpb25Db250cm9scyA/IGRhdGEgOiAodGhpcy5kYXRhUmVzcG9uc2VBcnJheSB8fCBbXSkuY29uY2F0KGRhdGEpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMucGFnZWFibGUpIHtcbiAgICAgIHJlc3VsdCA9IGRhdGE7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2F2ZURhdGFOYXZpZ2F0aW9uSW5Mb2NhbFN0b3JhZ2UoKTogdm9pZCB7XG4gICAgc3VwZXIuc2F2ZURhdGFOYXZpZ2F0aW9uSW5Mb2NhbFN0b3JhZ2UoKTtcbiAgICB0aGlzLnN0b3JlUGFnaW5hdGlvblN0YXRlID0gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRHcmlkSXRlbURpcmVjdGl2ZXNEYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZEl0ZW1EaXJlY3RpdmVzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZ3JpZEl0ZW1EaXJlY3RpdmVzLnRvQXJyYXkoKS5mb3JFYWNoKChlbGVtZW50OiBPR3JpZEl0ZW1EaXJlY3RpdmUsIGluZGV4KSA9PiB7XG4gICAgICAgIGVsZW1lbnQuc2V0SXRlbURhdGEodGhpcy5kYXRhQXJyYXlbaW5kZXhdKTtcbiAgICAgICAgZWxlbWVudC5zZXRHcmlkQ29tcG9uZW50KHRoaXMpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyR3JpZEl0ZW1EaXJlY3RpdmUoZWxlbWVudCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBwYWdlU2l6ZUNoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMucGFnZWFibGUpIHtcbiAgICAgIHRoaXMucmVsb2FkRGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlckRhdGEoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydENvbHVtbkNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgIHRoaXMuY3VycmVudE9yZGVyQ29sdW1uID0gZXZlbnQudmFsdWU7XG4gICAgaWYgKHRoaXMucGFnZWFibGUpIHtcbiAgICAgIHRoaXMucmVsb2FkRGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlckRhdGEoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIHJlZ2lzdGVyUXVpY2tGaWx0ZXIoYXJnOiBhbnkpOiB2b2lkIHtcbiAgICBzdXBlci5yZWdpc3RlclF1aWNrRmlsdGVyKGFyZyk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMucXVpY2tGaWx0ZXJDb21wb25lbnQpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuc3RhdGUucXVpY2tGaWx0ZXJBY3RpdmVDb2x1bW5zKSkge1xuICAgICAgY29uc3QgcGFyc2VkQXJyID0gVXRpbC5wYXJzZUFycmF5KHRoaXMuc3RhdGUucXVpY2tGaWx0ZXJBY3RpdmVDb2x1bW5zLCB0cnVlKTtcbiAgICAgIHRoaXMucXVpY2tGaWx0ZXJDb21wb25lbnQuc2V0QWN0aXZlQ29sdW1ucyhwYXJzZWRBcnIpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRQYWdpbmF0aW9uRGF0YUZyb21BcnJheShkYXRhQXJyYXk6IGFueVtdKTogYW55W10ge1xuICAgIGxldCByZXN1bHQ6IGFueVtdO1xuICAgIGlmICh0aGlzLnBhZ2luYXRpb25Db250cm9scykge1xuICAgICAgcmVzdWx0ID0gZGF0YUFycmF5LnNwbGljZSh0aGlzLmN1cnJlbnRQYWdlICogdGhpcy5xdWVyeVJvd3MsIHRoaXMucXVlcnlSb3dzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gZGF0YUFycmF5LnNwbGljZSgwLCB0aGlzLnF1ZXJ5Um93cyAqICh0aGlzLmN1cnJlbnRQYWdlICsgMSkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iLCI8ZGl2IFtzdHlsZS5kaXNwbGF5XT1cImlzVmlzaWJsZSgpPyAnJyA6ICdub25lJ1wiIGNsYXNzPVwiby1ncmlkLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0cmV0Y2hcIj5cblxuICA8IS0tVE9PTEJBUi0tPlxuICA8by1kYXRhLXRvb2xiYXIgKm5nSWY9XCJoYXNDb250cm9scygpXCIgY2xhc3M9XCJvLWdyaWQtdG9vbGJhclwiIFt0aXRsZV09XCJ0aXRsZVwiIFtzaG93LXRpdGxlXT1cImhhc1RpdGxlKClcIj5cbiAgICA8bmctY29udGFpbmVyIG8tZGF0YS10b29sYmFyLXByb2plY3Rpb24tc3RhcnQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0J1dHRvbnNUZXh0O2Vsc2Ugc2hvd0J1dHRvbnNXaXRob3V0VGV4dFwiPlxuICAgICAgICA8IS0tIGJ1dHRvbiBuZXctLT5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc2VydEJ1dHRvbiAmJiAhaW5zZXJ0QnV0dG9uRmxvYXRhYmxlXCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZEluc2VydEJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLWdyaWQtYWRkLWJ1dHRvbiBvLWdyaWQtYnV0dG9uIHRleHRcIiBtYXQtc3Ryb2tlZC1idXR0b24gYXJpYS1sYWJlbD1cIkluc2VydFwiIChjbGljayk9XCJhZGQoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwib250aW1pemU6YWRkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyAnQUREJyB8IG9UcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDwhLS1idXR0b24gcmVmcmVzaC0tPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtc3Ryb2tlZC1idXR0b24gYXJpYS1sYWJlbD1cIlJlZnJlc2hcIiBbZGlzYWJsZWRdPVwiIWVuYWJsZWRSZWZyZXNoQnV0dG9uXCIgKGNsaWNrKT1cInJlbG9hZERhdGEoKVwiICpuZ0lmPVwicmVmcmVzaEJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLWdyaWQtYnV0dG9uIHRleHRcIj5cbiAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOmF1dG9yZW5ld1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgJ1JFRlJFU0gnIHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNzaG93QnV0dG9uc1dpdGhvdXRUZXh0PlxuICAgICAgICA8IS0tIGJ1dHRvbiBuZXctLT5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc2VydEJ1dHRvbiAmJiAhaW5zZXJ0QnV0dG9uRmxvYXRhYmxlXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVkSW5zZXJ0QnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLWdyaWQtYnV0dG9uIG8tZ3JpZC1hZGQtYnV0dG9uIG5vLXRleHRcIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkluc2VydFwiIChjbGljayk9XCJhZGQoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwib250aW1pemU6YWRkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPCEtLWJ1dHRvbiByZWZyZXNoLS0+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiUmVmcmVzaFwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZFJlZnJlc2hCdXR0b25cIiAoY2xpY2spPVwicmVsb2FkRGF0YSgpXCIgKm5nSWY9XCJyZWZyZXNoQnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cIm8tZ3JpZC1idXR0b24gbm8tdGV4dFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwib250aW1pemU6YXV0b3JlbmV3XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8IS0tTy1HUklELVBBR0lOQVRPUi0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tZ3JpZC1wYWdpbmF0b3JcIiAqbmdJZj1cInNob3dQYWdlU2l6ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1ncmlkLXBhZ2Utc2l6ZS1sYWJlbFwiPnt7ICdHUklELklURU1TX1BFUl9QQUdFJyB8IG9UcmFuc2xhdGUgfX06PC9kaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm8tZ3JpZC1zZWxlY3QtcGFnZVwiPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiXCIgI3BhZ2VTaXplU2VsZWN0IFsodmFsdWUpXT1cInF1ZXJ5Um93c1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwicGFnZVNpemVDaGFuZ2VkKClcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VTaXplT3B0aW9uc1wiIFt2YWx1ZV09XCJwYWdlXCI+XG4gICAgICAgICAgICAgIHt7IHBhZ2UgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLU8tR1JJRC1TT1JULS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1ncmlkLXNvcnRcIiAqbmdJZj1cInNob3dTb3J0ICYmIHNvcnRhYmxlQ29sdW1ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm8tZ3JpZC1zZWxlY3Qtc29ydFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRQcmVmaXg+c29ydDwvbWF0LWljb24+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgI3NvcnRTZWxlY3QgW3ZhbHVlXT1cImN1cnJlbnRPcmRlckNvbHVtblwiIChzZWxlY3Rpb25DaGFuZ2UpPVwic29ydENvbHVtbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIiB7eyAnR1JJRC5TT1JUX0JZJyB8IG9UcmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc29ydGFibGVDb2x1bW5zOyBsZXQgaSA9IGluZGV4XCIgW3ZhbHVlXT1cImlcIj5cbiAgICAgICAgICAgICAge3sgZ2V0U29ydE9wdGlvblRleHQoY29sdW1uKSB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW28tZ3JpZC10b29sYmFyXVtwb3NpdGlvbj1zdGFydF1cIiBuZ1Byb2plY3RBcz1cIltvLWRhdGEtdG9vbGJhci1jdXN0b20tcHJvamVjdGlvbi1zdGFydF1cIj5cbiAgICA8L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW28tZ3JpZC10b29sYmFyXVtwb3NpdGlvbj1lbmRdXCIgbmdQcm9qZWN0QXM9XCJbby1kYXRhLXRvb2xiYXItY3VzdG9tLXByb2plY3Rpb24tZW5kXVwiPlxuICAgIDwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbby1ncmlkLXRvb2xiYXJdXCIgbmdQcm9qZWN0QXM9XCJbby1kYXRhLXRvb2xiYXItY3VzdG9tLXByb2plY3Rpb24tc3RhcnRdXCI+XG4gICAgPC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgby1kYXRhLXRvb2xiYXItcHJvamVjdGlvbi1lbmQ+XG4gICAgICA8by1zZWFyY2gtaW5wdXQgKm5nSWY9XCJxdWlja0ZpbHRlclwiIFtjb2x1bW5zXT1cInF1aWNrRmlsdGVyQ29sdW1uc1wiIFtmaWx0ZXItY2FzZS1zZW5zaXRpdmVdPVwiZmlsdGVyQ2FzZVNlbnNpdGl2ZVwiXG4gICAgICAgIFtzaG93LWNhc2Utc2Vuc2l0aXZlLWNoZWNrYm94XT1cInNob3dDYXNlU2Vuc2l0aXZlQ2hlY2tib3goKVwiIFtwbGFjZWhvbGRlcl09XCJxdWlja0ZpbHRlclBsYWNlaG9sZGVyXCIgW2FwcGVhcmFuY2VdPVwicXVpY2tGaWx0ZXJBcHBlYXJhbmNlXCJcbiAgICAgICAgZmxvYXQtbGFiZWw9XCJuZXZlclwiPjwvby1zZWFyY2gtaW5wdXQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvby1kYXRhLXRvb2xiYXI+XG5cbiAgPCEtLW5vIHJlc3VsdHMtLT5cbiAgPGRpdiBjbGFzcz1cIm8tZ3JpZC1uby1yZXN1bHRzIGZpbGwtcmVtYWluaW5nXCIgKm5nSWY9XCJncmlkSXRlbXMubGVuZ3RoID09PSAwXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBzdGFydFwiIGxheW91dC1wYWRkaW5nXG4gICAgW25nU3R5bGVdPVwieyd2aXNpYmlsaXR5JzogKGxvYWRpbmcgfCBhc3luYykgPT09IGZhbHNlID8gJ3Zpc2libGUnOidoaWRkZW4nfVwiPlxuICAgIHt7J0dSSUQuRU1QVFknIHwgb1RyYW5zbGF0ZX19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1aWNrRmlsdGVyICYmIHNlYXJjaElucHV0Q29tcG9uZW50ICYmIHNlYXJjaElucHV0Q29tcG9uZW50LmdldFZhbHVlKCkgJiYgc2VhcmNoSW5wdXRDb21wb25lbnQuZ2V0VmFsdWUoKS5sZW5ndGggPiAwXCI+XG4gICAgICB7eyAnR1JJRC5FTVBUWV9VU0lOR19GSUxURVInIHwgb1RyYW5zbGF0ZSA6IHsgdmFsdWVzOiBbIHNlYXJjaElucHV0Q29tcG9uZW50LmdldFZhbHVlKCldIH0gfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cblxuICA8IS0tTUFULUdSSUQtTElTVC0tPlxuICA8bWF0LWdyaWQtbGlzdCBbY29sc109XCJjb2xzXCIgW2d1dHRlclNpemVdPVwiZ3V0dGVyU2l6ZVwiIFtyb3dIZWlnaHRdPVwiZ3JpZEl0ZW1IZWlnaHRcIiBjbGFzcz1cIm8tbWF0LWdyaWQtbGlzdCBmaWxsLXJlbWFpbmluZ1wiXG4gICAgKm5nSWY9XCJncmlkSXRlbXMubGVuZ3RoID4gMFwiIFtuZ1N0eWxlXT1cInsndmlzaWJpbGl0eSc6IChsb2FkaW5nIHwgYXN5bmMpID09PSBmYWxzZSA/ICd2aXNpYmxlJzonaGlkZGVuJ31cIj5cbiAgICA8bWF0LWdyaWQtdGlsZSBvLWdyaWQtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncmlkSXRlbXNcIiBbY29sc3Bhbl09XCJpdGVtLmNvbHNwYW5cIiBbcm93c3Bhbl09XCJpdGVtLnJvd3NwYW5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtZ3JpZC10aWxlPlxuICA8L21hdC1ncmlkLWxpc3Q+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJJbnNlcnRcIiAqbmdJZj1cImluc2VydEJ1dHRvbiAmJiBpbnNlcnRCdXR0b25GbG9hdGFibGVcIiBbZGlzYWJsZWRdPVwiIWVuYWJsZWRJbnNlcnRCdXR0b25cIiBtYXQtZmFiIChjbGljayk9XCJhZGQoKVwiXG4gICAgY2xhc3M9XCJvLWdyaWQtYWRkLWZsb2F0YWJsZS1idXR0b25cIiBbY2xhc3Muby1ncmlkLWFkZC1ib3R0b20tZmxvYXRhYmxlLWJ1dHRvbl09XCJpbnNlcnRCdXR0b25Qb3NpdGlvbiA9PT0nYm90dG9tJ1wiXG4gICAgW2NsYXNzLm8tZ3JpZC1hZGQtdG9wLWZsb2F0YWJsZS1idXR0b25dPVwiaW5zZXJ0QnV0dG9uUG9zaXRpb24gPT09J3RvcCdcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOmFkZFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDwhLS0gR1JJRCBGT09URVIgLS0+XG4gIDxkaXYgKm5nSWY9XCIhcGFnaW5hdGlvbkNvbnRyb2xzICYmIHNob3dGb290ZXIgJiYgKGxvYWRpbmcgfCBhc3luYyk9PT1mYWxzZVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBjbGFzcz1cIm8tZ3JpZC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uICpuZ0lmPVwiZ2V0RGF0YUFycmF5KCkubGVuZ3RoIDwgdG90YWxSZWNvcmRzICYmIGdldERhdGFBcnJheSgpLmxlbmd0aD4wXCIgKGNsaWNrKT1cImxvYWRNb3JlKClcIlxuICAgICAgY2xhc3M9XCJtYXQtcmFpc2VkLWJ1dHRvblwiPlxuICAgICAge3sgJ0dSSUQuQlVUVE9OX05FWFQnIHwgb1RyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxzcGFuIGZ4RmxleD48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJvLWdyaWQtdG90YWxzXCI+e3sgJ0dSSUQuVEVYVF9TSE9XTl9JVEVNUycgfCBvVHJhbnNsYXRlIDp7dmFsdWVzOiBbZ2V0RGF0YUFycmF5KCkubGVuZ3RoLCB0b3RhbFJlY29yZHNdfVxuICAgICAgfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxtYXQtcGFnaW5hdG9yIGNsYXNzPVwiby1tYXQtcGFnaW5hdG9yXCIgI3BhZ2luYXRvciAqbmdJZj1cInBhZ2luYXRpb25Db250cm9scyAmJiBzaG93Rm9vdGVyXCIgW2xlbmd0aF09XCJ0b3RhbFJlY29yZHNcIiBbcGFnZVNpemVdPVwicXVlcnlSb3dzXCJcbiAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiIFtwYWdlSW5kZXhdPVwiY3VycmVudFBhZ2VcIiBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiIChwYWdlKT1cIm9uQ2hhbmdlUGFnZSgkZXZlbnQpXCJcbiAgICAgW25nU3R5bGVdPVwieyd2aXNpYmlsaXR5JzogKGxvYWRpbmcgfCBhc3luYykgPT09IGZhbHNlID8gJ3Zpc2libGUnOidoaWRkZW4nfVwiPjwvbWF0LXBhZ2luYXRvcj5cblxuICA8ZGl2ICpuZ0lmPVwibG9hZGluZyB8IGFzeW5jXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGVuZFwiIGNsYXNzPVwiby1sb2FkaW5nLWJsb2NrZXJcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgW2NsYXNzLm8tc3Bpbm5lci1jb250YWluZXItY29udHJvbHNdPVwiaGFzQ29udHJvbHMoKVwiIGNsYXNzPVwiby1zcGlubmVyLWNvbnRhaW5lclwiPlxuICAgICAgPG8tZ3JpZC1za2VsZXRvbj48L28tZ3JpZC1za2VsZXRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cblxuPC9kaXY+XG4iXX0=
|
|
@@ -12,10 +12,10 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
export class OGridModule {
|
|
14
14
|
}
|
|
15
|
-
OGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
16
|
-
OGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
17
|
-
OGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
15
|
+
OGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
OGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: OGridModule, declarations: [OGridComponent, OGridItemDirective, OGridItemComponent, OGridSkeletonComponent], imports: [CommonModule, OSearchInputModule, OSharedModule, RouterModule, ODataToolbarModule, NgxSkeletonLoaderModule], exports: [OGridComponent, OGridItemComponent, OGridItemDirective] });
|
|
17
|
+
OGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridModule, imports: [CommonModule, OSearchInputModule, OSharedModule, RouterModule, ODataToolbarModule, NgxSkeletonLoaderModule] });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridModule, decorators: [{
|
|
19
19
|
type: NgModule,
|
|
20
20
|
args: [{
|
|
21
21
|
declarations: [OGridComponent, OGridItemDirective, OGridItemComponent, OGridSkeletonComponent],
|
|
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
23
23
|
exports: [OGridComponent, OGridItemComponent, OGridItemDirective]
|
|
24
24
|
}]
|
|
25
25
|
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1ncmlkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQvby1ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLFdBQVc7O3lHQUFYLFdBQVc7MEdBQVgsV0FBVyxpQkFKTCxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLGFBQ25GLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixhQUMxRyxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCOzBHQUV2RCxXQUFXLFlBSFYsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCOzRGQUczRyxXQUFXO2tCQUx2QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDOUYsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLENBQUM7b0JBQ3JILE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQztpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE9TaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBPU2VhcmNoSW5wdXRNb2R1bGUgfSBmcm9tICcuLi9pbnB1dC9zZWFyY2gtaW5wdXQvby1zZWFyY2gtaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IE9EYXRhVG9vbGJhck1vZHVsZSB9IGZyb20gJy4uL28tZGF0YS10b29sYmFyL28tZGF0YS10b29sYmFyLm1vZHVsZSc7XG5pbXBvcnQgeyBPR3JpZEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2dyaWQtaXRlbS9vLWdyaWQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT0dyaWRJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9ncmlkLWl0ZW0vby1ncmlkLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IE9HcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9vLWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IE9HcmlkU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICcuL3NrZWtldG9uL28tZ3JpZC1za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtPR3JpZENvbXBvbmVudCwgT0dyaWRJdGVtRGlyZWN0aXZlLCBPR3JpZEl0ZW1Db21wb25lbnQsIE9HcmlkU2tlbGV0b25Db21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE9TZWFyY2hJbnB1dE1vZHVsZSwgT1NoYXJlZE1vZHVsZSwgUm91dGVyTW9kdWxlLCBPRGF0YVRvb2xiYXJNb2R1bGUsIE5neFNrZWxldG9uTG9hZGVyTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbT0dyaWRDb21wb25lbnQsIE9HcmlkSXRlbUNvbXBvbmVudCwgT0dyaWRJdGVtRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBPR3JpZE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -12,12 +12,12 @@ export class OGridSkeletonComponent extends ORepeatableSkeletonComponent {
|
|
|
12
12
|
return parentElement.querySelector('div.o-grid-skeleton-item');
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
OGridSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
16
|
-
OGridSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
15
|
+
OGridSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridSkeletonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
OGridSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OGridSkeletonComponent, selector: "o-grid-skeleton", host: { properties: { "class.o-grid-skeleton": "true" } }, usesInheritance: true, ngImport: i0, template: "<div *ngFor=\"let row of rows$ | async\" fxLayout=\"column\" fxLayoutGap=\"10px\" class=\"o-grid-skeleton-item\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{ height: '10px', width:'5%', 'border-radius':'none' }\" class=\"o-grid-skeleton-item-first-section\"></ngx-skeleton-loader>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" class=\"o-grid-skeleton-item-second-section\">\n <div fxFlex=\"20%\" *ngFor=\"let i of [1,2,3,4,5]\">\n <ngx-skeleton-loader count=\"1\" [theme]=\"{ height: '60px', 'border-radius':'none' }\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\">\n </ngx-skeleton-loader>\n <ngx-skeleton-loader count=\"1\" [theme]=\"{ height: '10px', width:'100%', 'border-radius':'none' }\"\n animation=\"{{isDarkMode?'progress-dark':'progress'}}\">\n </ngx-skeleton-loader>\n <ngx-skeleton-loader count=\"1\" [theme]=\"{ height: '10px', width:'70%', 'border-radius':'none' }\"\n animation=\"{{isDarkMode?'progress-dark':'progress'}}\">\n </ngx-skeleton-loader>\n </div>\n </div>\n</div>\n", styles: [".o-grid-skeleton{height:100%;width:100%;overflow:hidden}.o-grid-skeleton .o-grid-skeleton-item{margin:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i3.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridSkeletonComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'o-grid-skeleton', encapsulation: ViewEncapsulation.None, host: {
|
|
20
20
|
'[class.o-grid-skeleton]': 'true'
|
|
21
21
|
}, template: "<div *ngFor=\"let row of rows$ | async\" fxLayout=\"column\" fxLayoutGap=\"10px\" class=\"o-grid-skeleton-item\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{ height: '10px', width:'5%', 'border-radius':'none' }\" class=\"o-grid-skeleton-item-first-section\"></ngx-skeleton-loader>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" class=\"o-grid-skeleton-item-second-section\">\n <div fxFlex=\"20%\" *ngFor=\"let i of [1,2,3,4,5]\">\n <ngx-skeleton-loader count=\"1\" [theme]=\"{ height: '60px', 'border-radius':'none' }\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\">\n </ngx-skeleton-loader>\n <ngx-skeleton-loader count=\"1\" [theme]=\"{ height: '10px', width:'100%', 'border-radius':'none' }\"\n animation=\"{{isDarkMode?'progress-dark':'progress'}}\">\n </ngx-skeleton-loader>\n <ngx-skeleton-loader count=\"1\" [theme]=\"{ height: '10px', width:'70%', 'border-radius':'none' }\"\n animation=\"{{isDarkMode?'progress-dark':'progress'}}\">\n </ngx-skeleton-loader>\n </div>\n </div>\n</div>\n", styles: [".o-grid-skeleton{height:100%;width:100%;overflow:hidden}.o-grid-skeleton .o-grid-skeleton-item{margin:10px}\n"] }]
|
|
22
22
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1ncmlkLXNrZWxldG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQvc2tla2V0b24vby1ncmlkLXNrZWxldG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQvc2tla2V0b24vby1ncmlkLXNrZWxldG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7O0FBWXJGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSw0QkFBNEI7SUFFdEUsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7SUFDaEQsQ0FBQztJQUNELHNCQUFzQixDQUFDLGFBQTBCO1FBQy9DLE9BQU8sYUFBYSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O29IQVBVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLHlJQ2RuQyxpbUNBZ0JBOzRGREZhLHNCQUFzQjtrQkFWbEMsU0FBUzsrQkFDRSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSix5QkFBeUIsRUFBRSxNQUFNO3FCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT1JlcGVhdGFibGVTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL28tcmVwZWF0YWJsZS1za2VsZXRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWdyaWQtc2tlbGV0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vby1ncmlkLXNrZWxldG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby1ncmlkLXNrZWxldG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLm8tZ3JpZC1za2VsZXRvbl0nOiAndHJ1ZSdcbiAgfVxuXG59KVxuZXhwb3J0IGNsYXNzIE9HcmlkU2tlbGV0b25Db21wb25lbnQgZXh0ZW5kcyBPUmVwZWF0YWJsZVNrZWxldG9uQ29tcG9uZW50IHtcblxuICBnZXRQYXJlbnRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cbiAgZ2V0U2tlbGV0b25JdGVtRWxlbWVudChwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gcGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYuby1ncmlkLXNrZWxldG9uLWl0ZW0nKTtcbiAgfVxuXG5cbn1cbiIsIjxkaXYgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzJCB8IGFzeW5jXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjEwcHhcIiBjbGFzcz1cIm8tZ3JpZC1za2VsZXRvbi1pdGVtXCI+XG4gIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMVwiIGFuaW1hdGlvbj1cInt7aXNEYXJrTW9kZT8ncHJvZ3Jlc3MtZGFyayc6J3Byb2dyZXNzJ319XCJcbiAgICBbdGhlbWVdPVwieyBoZWlnaHQ6ICcxMHB4Jywgd2lkdGg6JzUlJywgJ2JvcmRlci1yYWRpdXMnOidub25lJyB9XCIgY2xhc3M9XCJvLWdyaWQtc2tlbGV0b24taXRlbS1maXJzdC1zZWN0aW9uXCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgY2xhc3M9XCJvLWdyaWQtc2tlbGV0b24taXRlbS1zZWNvbmQtc2VjdGlvblwiPlxuICAgIDxkaXYgZnhGbGV4PVwiMjAlXCIgKm5nRm9yPVwibGV0IGkgb2YgWzEsMiwzLDQsNV1cIj5cbiAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMVwiIFt0aGVtZV09XCJ7IGhlaWdodDogJzYwcHgnLCAnYm9yZGVyLXJhZGl1cyc6J25vbmUnIH1cIiBhbmltYXRpb249XCJ7e2lzRGFya01vZGU/J3Byb2dyZXNzLWRhcmsnOidwcm9ncmVzcyd9fVwiPlxuICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxuICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY291bnQ9XCIxXCIgW3RoZW1lXT1cInsgaGVpZ2h0OiAnMTBweCcsIHdpZHRoOicxMDAlJywgJ2JvcmRlci1yYWRpdXMnOidub25lJyB9XCJcbiAgICAgICAgYW5pbWF0aW9uPVwie3tpc0RhcmtNb2RlPydwcm9ncmVzcy1kYXJrJzoncHJvZ3Jlc3MnfX1cIj5cbiAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cbiAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMVwiIFt0aGVtZV09XCJ7IGhlaWdodDogJzEwcHgnLCB3aWR0aDonNzAlJywgJ2JvcmRlci1yYWRpdXMnOidub25lJyB9XCJcbiAgICAgICAgYW5pbWF0aW9uPVwie3tpc0RhcmtNb2RlPydwcm9ncmVzcy1kYXJrJzoncHJvZ3Jlc3MnfX1cIj5cbiAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -16,9 +16,9 @@ export class OFullScreenDialogComponent {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
OFullScreenDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
20
|
-
OFullScreenDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
19
|
+
OFullScreenDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFullScreenDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
OFullScreenDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OFullScreenDialogComponent, selector: "o-fullscreen-dialog", host: { properties: { "class.o-fullscreen-dialog": "true" } }, ngImport: i0, template: "<mat-toolbar color=\"primary\" class=\"mat-elevation-z5\">\n <span fxFlex></span>\n <button type=\"button\" mat-icon-button mat-dialog-close>\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n</mat-toolbar>\n<mat-dialog-content fxLayoutAlign=\"center center\" class=\"o-fullscreen-dialog-content\">\n <img [src]=\"imageSrc\" alt=\"dialog image\" />\n</mat-dialog-content>\n", styles: [".o-image-fullscreen-dialog-cdk-overlay .mat-mdc-dialog-container{padding:0}.o-image-fullscreen-dialog-cdk-overlay .mat-mdc-dialog-container .o-fullscreen-dialog{height:100%;display:block}.o-image-fullscreen-dialog-cdk-overlay .mat-mdc-dialog-container .o-fullscreen-dialog .mat-mdc-dialog-content.o-fullscreen-dialog-content{margin:12px;height:100%;max-height:calc(100% - 88px)}\n"], dependencies: [{ kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFullScreenDialogComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
23
|
args: [{ selector: 'o-fullscreen-dialog', encapsulation: ViewEncapsulation.None, host: {
|
|
24
24
|
'[class.o-fullscreen-dialog]': 'true'
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
27
27
|
type: Inject,
|
|
28
28
|
args: [MAT_DIALOG_DATA]
|
|
29
29
|
}] }]; } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UvZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9pbWFnZS9mdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBVzFDLE1BQU0sT0FBTywwQkFBMEI7SUFJckMsWUFDUyxTQUFtRCxFQUMxQixJQUFTO1FBRGxDLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQUs7UUFFekMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7d0hBWFUsMEJBQTBCLDhDQU0zQixlQUFlOzRHQU5kLDBCQUEwQiwwSENkdkMsNFlBU0E7NEZES2EsMEJBQTBCO2tCQVR0QyxTQUFTOytCQUNFLHFCQUFxQixpQkFHaEIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSiw2QkFBNkIsRUFBRSxNQUFNO3FCQUN0Qzs7MEJBUUUsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL3V0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWZ1bGxzY3JlZW4tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Z1bGxzY3JlZW4tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnVsbHNjcmVlbi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1mdWxsc2NyZWVuLWRpYWxvZ10nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPRnVsbFNjcmVlbkRpYWxvZ0NvbXBvbmVudCB7XG5cbiAgaW1hZ2VTcmM6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8T0Z1bGxTY3JlZW5EaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55XG4gICkge1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChkYXRhKSkge1xuICAgICAgdGhpcy5pbWFnZVNyYyA9IGRhdGE7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxtYXQtdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejVcIj5cbiAgPHNwYW4gZnhGbGV4Pjwvc3Bhbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJvbnRpbWl6ZTpjbG9zZVwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9tYXQtdG9vbGJhcj5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBjbGFzcz1cIm8tZnVsbHNjcmVlbi1kaWFsb2ctY29udGVudFwiPlxuICA8aW1nIFtzcmNdPVwiaW1hZ2VTcmNcIiBhbHQ9XCJkaWFsb2cgaW1hZ2VcIiAvPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4iXX0=
|