@eui/components 18.0.0-next.23 → 18.0.0-next.24
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/docs/dependencies.html +18 -4
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/directives/eui-clearable.directive.mjs +3 -3
- package/esm2022/directives/eui-has-permission.directive.mjs +6 -6
- package/esm2022/directives/eui-loading.directive.mjs +3 -3
- package/esm2022/directives/eui-maxlength.directive.mjs +6 -6
- package/esm2022/directives/eui-resizable/eui-resizable.component.mjs +3 -3
- package/esm2022/directives/eui-resizable/eui-resizable.directive.mjs +3 -3
- package/esm2022/directives/eui-resizable/eui-resizable.module.mjs +4 -4
- package/esm2022/directives/eui-scroll-handler.directive.mjs +8 -8
- package/esm2022/directives/eui-smooth-scroll.directive.mjs +8 -8
- package/esm2022/directives/eui-template.directive.mjs +6 -6
- package/esm2022/directives/eui-tooltip/container/eui-tooltip-container.component.mjs +3 -3
- package/esm2022/directives/eui-tooltip/eui-tooltip.directive.mjs +3 -3
- package/esm2022/directives/eui-tooltip/eui-tooltip.module.mjs +4 -4
- package/esm2022/eui-alert/components/eui-alert-title.component.mjs +3 -3
- package/esm2022/eui-alert/eui-alert.component.mjs +3 -3
- package/esm2022/eui-alert/eui-alert.module.mjs +4 -4
- package/esm2022/eui-all/eui-all.module.mjs +4 -4
- package/esm2022/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.mjs +3 -3
- package/esm2022/eui-autocomplete/eui-autocomplete-option-group/eui-autocomplete-option-group.component.mjs +3 -3
- package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +3 -3
- package/esm2022/eui-autocomplete/eui-autocomplete.module.mjs +4 -4
- package/esm2022/eui-avatar/avatar-badge/avatar-badge.component.mjs +3 -3
- package/esm2022/eui-avatar/avatar-icon/avatar-icon.component.mjs +3 -3
- package/esm2022/eui-avatar/avatar-image/avatar-image.component.mjs +3 -3
- package/esm2022/eui-avatar/avatar-text/avatar-text.component.mjs +3 -3
- package/esm2022/eui-avatar/eui-avatar-list.component.mjs +3 -3
- package/esm2022/eui-avatar/eui-avatar.component.mjs +3 -3
- package/esm2022/eui-avatar/eui-avatar.module.mjs +4 -4
- package/esm2022/eui-badge/eui-badge.component.mjs +3 -3
- package/esm2022/eui-badge/eui-badge.module.mjs +4 -4
- package/esm2022/eui-block-content/eui-block-content.component.mjs +3 -3
- package/esm2022/eui-block-content/eui-block-content.module.mjs +4 -4
- package/esm2022/eui-block-document/eui-block-document.component.mjs +3 -3
- package/esm2022/eui-block-document/eui-block-document.module.mjs +4 -4
- package/esm2022/eui-button/eui-button.component.mjs +6 -6
- package/esm2022/eui-button-group/eui-button-group.component.mjs +6 -6
- package/esm2022/eui-button-v2/eui-button-v2.component.mjs +6 -6
- package/esm2022/eui-card/components/eui-card-content/eui-card-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-buttons.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-icons.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-menu-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-left-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-right-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-subtitle.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-title.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header-body/eui-card-header-body.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-media/eui-card-media.component.mjs +3 -3
- package/esm2022/eui-card/eui-card.component.mjs +3 -3
- package/esm2022/eui-card/eui-card.module.mjs +4 -4
- package/esm2022/eui-card/services/ui-state.service.mjs +3 -3
- package/esm2022/eui-chip/eui-chip.component.mjs +3 -3
- package/esm2022/eui-chip/eui-chip.module.mjs +4 -4
- package/esm2022/eui-chip-list/eui-chip-list.component.mjs +5 -5
- package/esm2022/eui-chip-list/eui-chip-list.module.mjs +4 -4
- package/esm2022/eui-chip-list/services/eui-chip-list-drag.service.mjs +3 -3
- package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +10 -10
- package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +6 -6
- package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +3 -3
- package/esm2022/eui-date-range-selector/eui-date-range-selector.module.mjs +4 -4
- package/esm2022/eui-datepicker/eui-datepicker.component.mjs +11 -11
- package/esm2022/eui-datepicker/eui-datepicker.module.mjs +4 -4
- package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +3 -3
- package/esm2022/eui-dialog/eui-dialog.component.mjs +7 -7
- package/esm2022/eui-dialog/eui-dialog.module.mjs +4 -4
- package/esm2022/eui-dialog/services/eui-dialog.service.mjs +3 -3
- package/esm2022/eui-dimmer/dimmer.component.mjs +3 -3
- package/esm2022/eui-dimmer/dimmer.module.mjs +4 -4
- package/esm2022/eui-disable-content/eui-disable-content.component.mjs +6 -6
- package/esm2022/eui-discussion-thread/eui-discussion-thread-item.component.mjs +3 -3
- package/esm2022/eui-discussion-thread/eui-discussion-thread.component.mjs +3 -3
- package/esm2022/eui-discussion-thread/eui-discussion-thread.module.mjs +4 -4
- package/esm2022/eui-dropdown/directives/eui-dropdown-content.directive.mjs +3 -3
- package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +3 -3
- package/esm2022/eui-dropdown/eui-dropdown.component.mjs +3 -3
- package/esm2022/eui-dropdown/eui-dropdown.module.mjs +7 -7
- package/esm2022/eui-dropdown/eui-dropdown.service.mjs +3 -3
- package/esm2022/eui-feedback-message/eui-feedback-message.component.mjs +3 -3
- package/esm2022/eui-feedback-message/eui-feedback-message.module.mjs +4 -4
- package/esm2022/eui-fieldset/eui-fieldset.component.mjs +7 -7
- package/esm2022/eui-fieldset/eui-fieldset.module.mjs +4 -4
- package/esm2022/eui-file-upload/eui-file-upload.component.mjs +3 -3
- package/esm2022/eui-file-upload/eui-file-upload.module.mjs +4 -4
- package/esm2022/eui-file-upload/file-preview/file-preview.component.mjs +3 -3
- package/esm2022/eui-file-upload/pipes/filesize.pipe.mjs +3 -3
- package/esm2022/eui-file-upload/progress/eui-file-upload-progress.component.mjs +3 -3
- package/esm2022/eui-file-upload/utils/eui-file-upload.utils.mjs +3 -3
- package/esm2022/eui-growl/eui-growl.component.mjs +3 -3
- package/esm2022/eui-growl/eui-growl.module.mjs +4 -4
- package/esm2022/eui-icon/eui-icon-color.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon-svg-button/eui-icon-svg-button.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon-svg.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon.module.mjs +4 -4
- package/esm2022/eui-icon-toggle/eui-icon-toggle.component.mjs +3 -3
- package/esm2022/eui-icon-toggle/eui-icon-toggle.module.mjs +4 -4
- package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +3 -3
- package/esm2022/eui-input-checkbox/eui-input-checkbox.module.mjs +4 -4
- package/esm2022/eui-input-group/eui-input-group.component.mjs +3 -3
- package/esm2022/eui-input-group/eui-input-group.module.mjs +4 -4
- package/esm2022/eui-input-number/eui-input-number.component.mjs +3 -3
- package/esm2022/eui-input-number/eui-input-number.module.mjs +4 -4
- package/esm2022/eui-input-number/eui-number-control.directive.mjs +5 -5
- package/esm2022/eui-input-radio/eui-input-radio.component.mjs +3 -3
- package/esm2022/eui-input-radio/eui-input-radio.module.mjs +4 -4
- package/esm2022/eui-input-text/eui-input-text.component.mjs +3 -3
- package/esm2022/eui-input-text/eui-input-text.module.mjs +4 -4
- package/esm2022/eui-label/eui-label.component.mjs +3 -3
- package/esm2022/eui-label/eui-label.module.mjs +4 -4
- package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +3 -3
- package/esm2022/eui-list/eui-list.component.mjs +3 -3
- package/esm2022/eui-list/eui-list.module.mjs +4 -4
- package/esm2022/eui-list/services/eui-list.service.mjs +3 -3
- package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -3
- package/esm2022/eui-menu/eui-menu.component.mjs +3 -3
- package/esm2022/eui-menu/eui-menu.module.mjs +4 -4
- package/esm2022/eui-message-box/eui-message-box.component.mjs +5 -5
- package/esm2022/eui-message-box/eui-message-box.module.mjs +4 -4
- package/esm2022/eui-message-box/services/eui-message-box.service.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.mjs +3 -3
- package/esm2022/eui-overlay/eui-overlay.component.mjs +6 -6
- package/esm2022/eui-page/components/eui-page-breadcrumb/eui-page-breadcrumb.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-column/eui-page-column.component.mjs +15 -15
- package/esm2022/eui-page/components/eui-page-columns/eui-page-columns.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-content/eui-page-content.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-footer/eui-page-footer.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-header/components/eui-page-header-action-items.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-header/components/eui-page-header-body.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-header/components/eui-page-header-sub-label.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-header/eui-page-header.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-hero-header/eui-page-hero-header.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-top-content/eui-page-top-content.component.mjs +3 -3
- package/esm2022/eui-page/eui-page.component.mjs +3 -3
- package/esm2022/eui-page/eui-page.module.mjs +4 -4
- package/esm2022/eui-paginator/eui-paginator.component.mjs +3 -3
- package/esm2022/eui-paginator/eui-paginator.module.mjs +4 -4
- package/esm2022/eui-popover/directives/eui-popover-arrow-position.directive.mjs +3 -3
- package/esm2022/eui-popover/eui-popover.component.mjs +3 -3
- package/esm2022/eui-popover/eui-popover.module.mjs +4 -4
- package/esm2022/eui-progress-bar/eui-progress-bar.component.mjs +3 -3
- package/esm2022/eui-progress-bar/eui-progress-bar.module.mjs +4 -4
- package/esm2022/eui-progress-circle/eui-progress-circle.component.mjs +6 -6
- package/esm2022/eui-select/eui-select-control.directive.mjs +5 -5
- package/esm2022/eui-select/eui-select-multiple.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select-mutli-option.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select-option.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select.component.mjs +3 -3
- package/esm2022/eui-select/eui-select.module.mjs +4 -4
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +3 -3
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.module.mjs +4 -4
- package/esm2022/eui-skeleton/eui-skeleton.component.mjs +3 -3
- package/esm2022/eui-skeleton/eui-skeleton.module.mjs +4 -4
- package/esm2022/eui-slide-toggle/eui-slide-toggle.component.mjs +3 -3
- package/esm2022/eui-slide-toggle/eui-slide-toggle.module.mjs +4 -4
- package/esm2022/eui-table/directives/eui-table-sticky-columns.directive.mjs +3 -3
- package/esm2022/eui-table/eui-table.component.mjs +3 -3
- package/esm2022/eui-table/eui-table.module.mjs +4 -4
- package/esm2022/eui-table/expandable-row/eui-table-expandable-row.component.mjs +3 -3
- package/esm2022/eui-table/filter/eui-table-filter.component.mjs +3 -3
- package/esm2022/eui-table/pipes/eui-table-highlight-filter.pipe.mjs +3 -3
- package/esm2022/eui-table/selectable-header/eui-table-selectable-header.component.mjs +3 -3
- package/esm2022/eui-table/selectable-row/eui-table-selectable-row.component.mjs +3 -3
- package/esm2022/eui-table/services/eui-table-selectable-row.service.mjs +3 -3
- package/esm2022/eui-table/services/eui-table-sort.service.mjs +3 -3
- package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +3 -3
- package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +3 -3
- package/esm2022/eui-tabs/eui-tab-content/eui-tab-content.component.mjs +3 -3
- package/esm2022/eui-tabs/eui-tab-label/eui-tab-label.component.mjs +5 -5
- package/esm2022/eui-tabs/eui-tabs.component.mjs +5 -5
- package/esm2022/eui-tabs/eui-tabs.module.mjs +4 -4
- package/esm2022/eui-textarea/auto-resize.directive.mjs +3 -3
- package/esm2022/eui-textarea/eui-textarea.component.mjs +4 -4
- package/esm2022/eui-textarea/eui-textarea.module.mjs +4 -4
- package/esm2022/eui-timebar/eui-timebar.component.mjs +6 -6
- package/esm2022/eui-timeline/eui-timeline-item.component.mjs +3 -3
- package/esm2022/eui-timeline/eui-timeline.component.mjs +3 -3
- package/esm2022/eui-timeline/eui-timeline.module.mjs +4 -4
- package/esm2022/eui-timepicker/eui-timepicker.component.mjs +3 -3
- package/esm2022/eui-timepicker/eui-timepicker.module.mjs +4 -4
- package/esm2022/eui-tree/eui-dropdown-tree.directive.mjs +6 -6
- package/esm2022/eui-tree/eui-tree-form-control.directive.mjs +8 -8
- package/esm2022/eui-tree/eui-tree.component.mjs +6 -6
- package/esm2022/eui-tree-list/eui-tree-list-item.component.mjs +9 -9
- package/esm2022/eui-tree-list/eui-tree-list.component.mjs +3 -3
- package/esm2022/eui-tree-list/eui-tree-list.module.mjs +4 -4
- package/esm2022/eui-tree-list/item-content/item-content.component.mjs +3 -3
- package/esm2022/eui-tree-list/toolbar/toolbar.component.mjs +5 -5
- package/esm2022/eui-wizard/eui-wizard-step.component.mjs +3 -3
- package/esm2022/eui-wizard/eui-wizard.component.mjs +3 -3
- package/esm2022/eui-wizard/eui-wizard.module.mjs +4 -4
- package/esm2022/eui-wizard/services/eui-wizard.service.mjs +3 -3
- package/esm2022/externals/charts/chart/chart.component.mjs +3 -3
- package/esm2022/externals/charts/eui-charts.module.mjs +4 -4
- package/esm2022/externals/eui-editor/counters/eui-editor-counters.component.mjs +3 -3
- package/esm2022/externals/eui-editor/directives/eui-editor-maxlength.directive.mjs +3 -3
- package/esm2022/externals/eui-editor/eui-editor.component.mjs +5 -5
- package/esm2022/externals/eui-editor/eui-editor.module.mjs +4 -4
- package/esm2022/externals/eui-editor/html-view/eui-editor-html-view.component.mjs +3 -3
- package/esm2022/externals/eui-editor/image-url-dialog/image-url-dialog.component.mjs +3 -3
- package/esm2022/externals/eui-editor/json-view/eui-editor-json-view.component.mjs +3 -3
- package/esm2022/externals/quill/loader.service.mjs +3 -3
- package/esm2022/externals/quill/quill-editor.component.mjs +7 -7
- package/esm2022/externals/quill/quill.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-footer/footer.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-footer/footer.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-header/header.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-header/header.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-body/sidebar-body.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-drawer/sidebar-drawer.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-top-message/top-message.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app.component.mjs +5 -5
- package/esm2022/layout/eui-app/eui-app.module.mjs +4 -4
- package/esm2022/layout/eui-breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/layout/eui-breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/layout/eui-breadcrumb/breadcrumb.service.mjs +3 -3
- package/esm2022/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.mjs +5 -5
- package/esm2022/layout/eui-breadcrumb/item/breadcrumb-item.component.mjs +3 -3
- package/esm2022/layout/eui-footer/footer.component.mjs +3 -3
- package/esm2022/layout/eui-footer/footer.module.mjs +4 -4
- package/esm2022/layout/eui-header/header-app/header-app.component.mjs +9 -9
- package/esm2022/layout/eui-header/header-app-name/header-app-name.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-app-name-logo/header-app-name-logo.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-app-subtitle/header-app-subtitle.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-environment/header-environment.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-logo/header-logo.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-right-content/header-right-content.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-user-profile/header-user-profile.component.mjs +3 -3
- package/esm2022/layout/eui-header/header.component.mjs +3 -3
- package/esm2022/layout/eui-header/header.module.mjs +4 -4
- package/esm2022/layout/eui-language-selector/language-selector.component.mjs +3 -3
- package/esm2022/layout/eui-language-selector/language-selector.module.mjs +4 -4
- package/esm2022/layout/eui-language-selector/modal-selector/modal-selector.component.mjs +3 -3
- package/esm2022/layout/eui-layout.module.mjs +4 -4
- package/esm2022/layout/eui-notifications/eui-notification-item.component.mjs +3 -3
- package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +3 -3
- package/esm2022/layout/eui-notifications/eui-notifications.module.mjs +4 -4
- package/esm2022/layout/eui-notifications-v2/eui-notification-item.component.mjs +3 -3
- package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +3 -3
- package/esm2022/layout/eui-notifications-v2/eui-notifications.module.mjs +4 -4
- package/esm2022/layout/eui-search/search.component.mjs +3 -3
- package/esm2022/layout/eui-search/search.module.mjs +4 -4
- package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.component.mjs +3 -3
- package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.module.mjs +4 -4
- package/esm2022/layout/eui-toolbar/toolbar-app/toolbar-app.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-center/toolbar-center.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-environment/toolbar-environment.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-item/toolbar-item.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-items/toolbar-items.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-logo/toolbar-logo.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar.module.mjs +4 -4
- package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile-menu/user-profile-menu.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile-menu-item/user-profile-menu-item.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile.module.mjs +4 -4
- package/esm2022/pipes/eui-is-empty.pipe.mjs +6 -6
- package/esm2022/pipes/eui-truncate.pipe.mjs +6 -6
- package/esm2022/shared/base/base-states.directive.mjs +3 -3
- package/esm2022/shared/base/base.directive.mjs +3 -3
- package/esm2022/shared/input.directive.mjs +3 -3
- package/externals/eui-editor/eui-editor.component.d.ts +1 -1
- package/package.json +3 -3
@@ -560,8 +560,8 @@ export class EuiInputNumberComponent extends InputDirective {
|
|
560
560
|
isDefined(value) {
|
561
561
|
return value !== undefined && value !== null;
|
562
562
|
}
|
563
|
-
|
564
|
-
|
563
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputNumberComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.LocaleService, optional: true }, { token: LOCALE_ID }, { token: i0.Injector }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
564
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EuiInputNumberComponent, selector: "input[euiInputNumber]", inputs: { min: "min", max: "max", leadingZero: "leadingZero", isInvalid: "isInvalid", fractionDigits: "fractionDigits", digits: "digits", fillFraction: "fillFraction", roundUp: "roundUp", noFormat: "noFormat", value: "value" }, host: { listeners: { "blur": "onTouched()", "paste": "onPaste($event)", "keydown": "onKeyDown($event)", "focusout": "onFocusout()" }, properties: { "class": "this.cssClasses", "attr.type": "this.type" } }, usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i2.EuiClearableDirective, inputs: ["euiClearable", "euiClearable", "readonly", "readonly", "disabled", "disabled"] }, { directive: i2.EuiLoadingDirective, inputs: ["euiLoading", "euiLoading", "readonly", "readonly"] }], ngImport: i0, template: '', isInline: true, styles: [".eui-input-number{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:normal normal 400 1rem/1.75rem var(--eui-base-font-family);appearance:none;background-color:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);box-shadow:var(--eui-app-box-shadow);color:var(--eui-base-color-grey-100);display:block;padding:calc(var(--eui-base-spacing-xs) - 2px) calc(var(--eui-base-spacing-m) - 2px);width:100%}.eui-input-number:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus)!important;outline-offset:-2px!important;transition:none!important}.eui-input-number:focus-visible:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:-2px!important;transition:none!important}.eui-input-number [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:-2px!important;transition:none!important}.eui-input-number::placeholder{color:var(--eui-base-color-grey-50)!important;opacity:1}.eui-input-number[readonly]{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;pointer-events:none}.eui-input-number[readonly]+.eui-feedback-message,.eui-input-number[readonly]+.eui-input-maxlength{appearance:none;display:none}.eui-input-number[disabled]:not([readonly]),.eui-input-number--disabled:not([readonly]){background-color:var(--eui-base-color-grey-5)!important;border:1px solid var(--eui-base-color-grey-25)!important;color:var(--eui-base-color-grey-75);pointer-events:none}.eui-input-number--invalid,.eui-input-number--danger{border:1px solid var(--eui-base-color-danger-100)}.eui-input-number--clearable{padding-right:var(--eui-base-spacing-2xl)}.eui-input-number--clearable-icon{cursor:pointer;position:absolute;right:var(--eui-base-spacing-s);-webkit-user-select:none;user-select:none;visibility:visible}.eui-input-number--clearable-icon:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus)!important;outline-offset:-2px!important;transition:none!important}.eui-input-number--clearable-icon:focus-visible:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:-2px!important;transition:none!important}.eui-input-number--clearable-icon [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:-2px!important;transition:none!important}.eui-input-number--clearable-icon>svg{fill:var(--eui-base-color-grey-35)}.eui-input-number--clearable-icon>svg:hover{fill:var(--eui-base-color-danger-100)}.eui-input-number--loading{padding-right:var(--eui-base-spacing-2xl)}.eui-input-number--loading-icon{align-items:center;display:flex}.eui-input-number--loading-icon:after,.eui-input-number--loading-icon:before{content:\"\";height:var(--eui-base-spacing-l);position:absolute;right:var(--eui-base-spacing-s);width:var(--eui-base-spacing-l)}.eui-input-number--loading-icon:before{border:var(--eui-base-spacing-2xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-input-number--loading-icon:after{animation:eui-loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-base-color-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eui-base-spacing-2xs);box-shadow:0 0 0 1px transparent}.eui-input-number--loading-icon--sm:after,.eui-input-number--loading-icon--sm:before{height:var(--eui-base-spacing-m);width:var(--eui-base-spacing-m)}@keyframes eui-loading{to{transform:rotate(360deg)}}.eui-input-number[readonly]{pointer-events:auto}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
565
565
|
}
|
566
566
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputNumberComponent, decorators: [{
|
567
567
|
type: Component,
|
@@ -621,4 +621,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
621
621
|
type: HostListener,
|
622
622
|
args: ['focusout']
|
623
623
|
}] } });
|
624
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktaW5wdXQtbnVtYmVyL2V1aS1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFFTixTQUFTLEVBR1QsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBTUwsaUJBQWlCLEdBRXBCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBNkIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRyxPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUM7QUFFL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBNEMzQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQUN2RDs7T0FFRztJQUNILElBQ1csR0FBRztRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxHQUFHLENBQUMsS0FBa0I7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUNXLEdBQUc7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLEtBQWtCO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsS0FB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T0FBTztzQkFEVixLQUFLO2dCQVlGLFFBQVE7c0JBRFgsS0FBSztnQkFROEIsSUFBSTtzQkFBdkMsV0FBVzt1QkFBQyxXQUFXO2dCQUNmLEtBQUs7c0JBQWIsS0FBSztnQkF1Sk4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF1QnZCLFNBQVM7c0JBRGxCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJDekIsVUFBVTtzQkFEbkIsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBPcHRpb25hbCxcbiAgICBMT0NBTEVfSUQsXG4gICAgSW5qZWN0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEluamVjdG9yLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxlU3RhdGUgfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyB0eXBlIENsZWF2ZU9wdGlvbnMgfSBmcm9tICdjbGVhdmUuanMvb3B0aW9ucyc7XG5pbXBvcnQgQ2xlYXZlIGZyb20gJ2NsZWF2ZS5qcyc7XG5pbXBvcnQgeyBDbGVhdmVFdmVudE9uQ2hhbmdlIH0gZnJvbSAnLi9tb2RlbHMvY2xlYXZlLWV2ZW50LW9uY2hhbmdlLm1vZGVsJztcbmltcG9ydCB7IElucHV0RGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5pbXBvcnQgeyBET0NVTUVOVCwgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sLCBOdW1iZXJTeW1ib2wgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRXVpQ2xlYXJhYmxlRGlyZWN0aXZlLCBFdWlMb2FkaW5nRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsZWF2ZUluc3RhbmNlIGV4dGVuZHMgQ2xlYXZlIHtcbiAgICBpbml0U3dhcEhpZGRlbklucHV0PzogKCkgPT4gdm9pZDtcbiAgICBpbml0TnVtZXJhbEZvcm1hdHRlcj86ICgpID0+IHZvaWQ7XG4gICAgaW5pdFRpbWVGb3JtYXR0ZXI/OiAoKSA9PiB2b2lkO1xuICAgIGluaXREYXRlRm9ybWF0dGVyPzogKCkgPT4gdm9pZDtcbiAgICBpbml0UGhvbmVGb3JtYXR0ZXI/OiAoKSA9PiB2b2lkO1xuICAgIHVwZGF0ZUNyZWRpdENhcmRQcm9wc0J5VmFsdWU/OiAoKSA9PiB2b2lkO1xuICAgIHVwZGF0ZVZhbHVlU3RhdGU/OiAoKSA9PiB2b2lkO1xuICAgIGNhbGxPblZhbHVlQ2hhbmdlZD86ICgpID0+IHZvaWQ7XG4gICAgb25DaGFuZ2U/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkN1dD86IChldmVudD86IEV2ZW50KSA9PiB2b2lkO1xuICAgIG9uRm9jdXM/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkNvcHk/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbktleURvd24/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkNoYW5nZUxpc3RlbmVyPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25LZXlEb3duTGlzdGVuZXI/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkZvY3VzTGlzdGVuZXI/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkN1dExpc3RlbmVyPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25Db3B5TGlzdGVuZXI/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lucHV0W2V1aUlucHV0TnVtYmVyXScsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBFdWlDbGVhcmFibGVEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsnZXVpQ2xlYXJhYmxlJywgJ3JlYWRvbmx5JywgJ2Rpc2FibGVkJ10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogRXVpTG9hZGluZ0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogWydldWlMb2FkaW5nJywgJ3JlYWRvbmx5J10sXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgICBob3N0OiB7XG4gICAgICAgICcoYmx1ciknOiAnb25Ub3VjaGVkKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aUlucHV0TnVtYmVyQ29tcG9uZW50IGV4dGVuZHMgSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjaywgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgY2FuIGJlIGVudGVyZWQuIEJsb2NrcyB1c2VyJ3MgaW5wdXQgaWYgbm90IGluIHJhbmdlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG4gICAgcHVibGljIHNldCBtaW4odmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgICAgIHRoaXMuX21pbiA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gbnVtYmVyIGNhbiBiZSBlbnRlcmVkLiBCbG9ja3MgdXNlcidzIGlucHV0IGlmIG5vdCBpbiByYW5nZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgbWF4KHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9tYXggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiBBZGRzIGxlYWRpbmcgemVybyB0byBhIG51bWJlci4gRm9ybWF0dGluZyB3aWxsIG5vdCB3b3JrLlxuICAgICAqICAgICAgZS5nLiB3aXRoIGxlYWRpbmdaZXJvPTMgaW5wdXQgbnVtYmVyIDUgPT4gMDA1XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGxlYWRpbmdaZXJvKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZWFkaW5nWmVybztcbiAgICB9XG4gICAgcHVibGljIHNldCBsZWFkaW5nWmVybyh2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICAgICAgdGhpcy5fbGVhZGluZ1plcm8gPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzSW52YWxpZChzdGF0ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuc2V0SW52YWxpZChzdGF0ZSk7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2V1aS1pbnB1dC1udW1iZXInKSwgdGhpcy5faXNJbnZhbGlkID8gJ2V1aS1pbnB1dC1udW1iZXItLWludmFsaWQnIDogJyddLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgLyoqIGhvdyBtYW55IGRpZ2l0cyBmb3IgdGhlIGRlY2ltYWwgcGFydCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZyYWN0aW9uRGlnaXRzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mcmFjdGlvbkRpZ2l0cztcbiAgICB9XG4gICAgc2V0IGZyYWN0aW9uRGlnaXRzKHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9mcmFjdGlvbkRpZ2l0cyA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgLyoqIGhvdyBtYW55IGRpZ2l0cyBmb3IgdGhlIGludGVnZXIgcGFydCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpZ2l0cygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlnaXRzO1xuICAgIH1cbiAgICBzZXQgZGlnaXRzKHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9kaWdpdHMgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZpbGxGcmFjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGxGcmFjdGlvbjtcbiAgICB9XG4gICAgc2V0IGZpbGxGcmFjdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2ZpbGxGcmFjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiByb3VuZHMgYSBudW1iZXIgd2l0aCBtb3JlIHRoYW4gdHdvIGRlY2ltYWxzIFVQICovXG4gICAgQElucHV0KClcbiAgICBnZXQgcm91bmRVcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm91bmRVcDtcbiAgICB9XG4gICAgc2V0IHJvdW5kVXAodmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgICAgIHRoaXMuX3JvdW5kVXAgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfaXNJbnZhbGlkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIGRvZXMgbm90IGZvcm1hdCB0aGUgYW5kIGRvIGEgdGhvdXNhbmQgZ3JvdXBpbmcgb2YgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgbm9Gb3JtYXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub0Zvcm1hdDtcbiAgICB9XG4gICAgc2V0IG5vRm9ybWF0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fbm9Gb3JtYXQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX25vRm9ybWF0OiBib29sZWFuO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50eXBlJykgcHJvdGVjdGVkIHR5cGUgPSAnZXVpLW51bWJlcic7XG4gICAgQElucHV0KCkgdmFsdWU6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX3JvdW5kVXA6IG51bWJlcjtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZDtcbiAgICBjbGVhdmVJbnN0YW5jZTogQ2xlYXZlSW5zdGFuY2U7XG4gICAgcHJpdmF0ZSBfbWluOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfbWF4OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIF9sZWFkaW5nWmVybyA9IDA7XG4gICAgLyoqIGhvbGRzIGluc3RhbmNlIG9mIGNsZWF2ZSAqL1xuICAgIC8qKiBvcHRpb25zIGZvciB0aGUgQ2xlYXZlIGluc3RhbmNlICovXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBDbGVhdmVPcHRpb25zO1xuICAgIHByaXZhdGUgX2ZyYWN0aW9uRGlnaXRzID0gMDtcbiAgICBwcml2YXRlIF9kaWdpdHM6IG51bWJlcjtcbiAgICBwcml2YXRlIF9maWxsRnJhY3Rpb246IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZV9pZDogc3RyaW5nLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcihfZWxlbWVudFJlZiwgX3JlbmRlcmVyLCBpbmplY3Rvcik7XG5cbiAgICAgICAgLy8gc2V0IGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICBudW1lcmFsOiB0cnVlLFxuICAgICAgICAgICAgZGVsaW1pdGVyOiBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlX2lkIHx8ICdlbicsIE51bWJlclN5bWJvbC5Hcm91cCksXG4gICAgICAgICAgICBudW1lcmFsRGVjaW1hbE1hcms6IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGVfaWQgfHwgJ2VuJywgTnVtYmVyU3ltYm9sLkRlY2ltYWwpLFxuICAgICAgICAgICAgbnVtZXJhbERlY2ltYWxTY2FsZTogdGhpcy5mcmFjdGlvbkRpZ2l0cyxcbiAgICAgICAgICAgIG51bWVyYWxJbnRlZ2VyU2NhbGU6IHRoaXMuZGlnaXRzLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgdW5kZWZpbmVkLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgICAgIC8vIGluc3RhbnRpYXRlIGNsZWF2ZVxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5pbml0Q2xlYXZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdWJzY3JpYmUgdG8gbG9jYWxpemF0aW9uIHNlcnZpY2UgYW5kIGxpc3RlbiBmb3IgbG9jYWxlIGNoYW5nZS4gRGUtY29uc3RydWN0aW9uIG9mIGxvY2FsZSBzaG91bGQgaGFwcGVuIGhlcmUhXG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZT8uZ2V0U3RhdGUoKS5zdWJzY3JpYmUoKHN0YXRlOiBMb2NhbGVTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5nZXRDbGVhdmVPcHRzQmFzZWRPbkxvY2FsZShzdGF0ZT8uaWQpO1xuXG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG9wdGlvbnMgb24gdGhlIGNsZWF2ZSBpbnN0YW5jZVxuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKHRydWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyb290Q2xhc3NOYW1lJywgJ2V1aS1pbnB1dC1udW1iZXInKTtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIHVuZGVmaW5lZCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkIDogdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ3ZhbHVlJykpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ2ZyYWN0aW9uRGlnaXRzJykpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCBudW1lcmFsRGVjaW1hbFNjYWxlOiB0aGlzLmZyYWN0aW9uRGlnaXRzIH07XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAnbm9Gb3JtYXQnKSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIG51bWVyYWxUaG91c2FuZHNHcm91cFN0eWxlOiB0aGlzLm5vRm9ybWF0ID8gJ25vbmUnIDogJ3Rob3VzYW5kJyB9O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ2ZpbGxGcmFjdGlvbicpICYmIHRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGcmFjdGlvbkZpbGwodGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAnZGlnaXRzJykpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCBudW1lcmFsSW50ZWdlclNjYWxlOiB0aGlzLmRpZ2l0cyB9O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ21pbicpKSB7XG4gICAgICAgICAgICB0aGlzLl9taW4gPSBjaGFuZ2VzWydtaW4nXS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZiAoY2hhbmdlc1snbWluJ10uY3VycmVudFZhbHVlID49IDApIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0YWtlIGNhcmUgb2YgdGhlIHNpZ24gc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUoTWF0aC5hYnMoTnVtYmVyKHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSkpLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAnbWF4JykpIHtcbiAgICAgICAgICAgIHRoaXMuX21heCA9IGNoYW5nZXNbJ21heCddLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIGN1cnJlbnQgdmFsdWUgaXMgaW4gcmFuZ2VcbiAgICAgICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA+IHRoaXMubWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUodGhpcy5tYXgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNoYW5nZXMsICdyb3VuZFVwJykpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzWydyb3VuZFVwJ10uY3VycmVudFZhbHVlID4gMCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBudW1iZXIgPSBOdW1iZXIucGFyc2VGbG9hdCh0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSB0aGlzLmRlY2ltYWxBZGp1c3QobnVtYmVyLCB0aGlzLnJvdW5kVXAgKiAtMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUobnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZihPYmplY3QuaGFzT3duKGNoYW5nZXMsICdwbGFjZWhvbGRlcicpKSB7XG4gICAgICAgICAgICAvLyBwYXJzZSBudW1iZXJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlciA9IHRoaXMucGFyc2VOdW1iZXIoY2hhbmdlc1sncGxhY2Vob2xkZXInXS5jdXJyZW50VmFsdWU/LnRvU3RyaW5nKCkgfHwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIC8vIHNldCBwbGFjZWhvbGRlciBpbiBjYXNlIG5vbmUgaXMgcHJvdmlkZWRcbiAgICAgICAgICAgIHRoaXMuc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUoaXNOYU4obnVtYmVyKSA/IGNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10uY3VycmVudFZhbHVlIDogbnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICAvLyBkZXN0cm95IGNsZWF2ZSBpbnN0YW5jZVxuICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkNoYW5nZTogYW55ID0gKF86IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sICYmIChfICE9PSBudWxsIHx8IF8gIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIC8vIHBhcnNlIG51bWJlclxuICAgICAgICAgICAgLy8gY29uc3QgdmFsdWUgPSBOdW1iZXIoXyk7XG4gICAgICAgICAgICAvLyBydW4gb24gbmV4dCBNaWNyb1Rhc2sgdG8gYXZvaWQgTkcwMTAwIGVycm9yIFRPRE86IGRlZXBlciBpbnZlc3RpZ2F0aW9uXG4gICAgICAgICAgICAvLyBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuY29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSh2YWx1ZSkpO1xuICAgICAgICAgICAgLy8gaW4gY2FzZSBjb250cm9sIGlzIEZvcm1Db250cm9sXG4gICAgICAgICAgICAvLyB0aGlzLmNvbnRyb2w/LmNvbnRyb2wuc2V0VmFsdWUoaXNOYU4odmFsdWUpID8gbnVsbCA6IHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UsIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIG9uVG91Y2hlZDogYW55ID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2w/LmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIH07XG5cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXG4gICAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gZ2V0IHRoZSB2YWx1ZSBmcm9tIGNsaXBib2FyZFxuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC5jbGlwYm9hcmREYXRhIHx8IHdpbmRvd1snY2xpcGJvYXJkRGF0YSddKS5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgICAgIC8vIGluIGNhc2Ugcm91bmQgVVAgaXMgZW5hYmxlZFxuICAgICAgICBpZiAodGhpcy5fcm91bmRVcCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGRpdiA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIGNsb25lIG9mIGNsZWF2ZUluc3RhbmNlXG4gICAgICAgICAgICBjb25zdCBjbG9uZUluc3RhbmNlOiBDbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUoZGl2LCB7IC4uLnRoaXMub3B0aW9ucywgbnVtZXJhbERlY2ltYWxTY2FsZTogOCB9KTtcbiAgICAgICAgICAgIGNsb25lSW5zdGFuY2Uuc2V0UmF3VmFsdWUodmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBsZXQgbnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQoY2xvbmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgICAgIG51bWJlciA9IHRoaXMuZGVjaW1hbEFkanVzdChudW1iZXIsIHRoaXMucm91bmRVcCAqIC0xKTtcbiAgICAgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKG51bWJlci50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBpbiB0aGUgZnV0dXJlIGhvdyBjYW4gdGhpcyBiZSBhdm9pZGVkXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMud3JpdGVWYWx1ZShudW1iZXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgaXQncyBhIHNpbmdsZSBzeW1ib2wgYW5kIG5vdCBTcGVjaWFsIGxpa2UgKEN0cmwsIGJhY2tzcGFjZSBldGMpXG4gICAgICAgIGlmIChlPy5rZXk/Lmxlbmd0aCA8PSAxICYmICFlLmN0cmxLZXkgJiYgIWUuYWx0S2V5ICYmICFlLm1ldGFLZXkpIHtcbiAgICAgICAgICAgIC8vIHN0b3AgZXZlbnQgcHJvcGFnYXRpb24gaWYga2V5IHByZXNzZWQgaXMgbm90IGEgbnVtYmVyIG9yIGxvY2FsZSBjaGFyYWN0ZXIgb3IgbWludXMgc2lnblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIE51bWJlci5pc05hTihOdW1iZXIucGFyc2VJbnQoZS5rZXksIDEwKSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmlzTWludXNBbGxvd2VkKGUua2V5KSAmJlxuICAgICAgICAgICAgICAgIGUua2V5ICE9PSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wodGhpcy5sb2NhbGVTZXJ2aWNlPy5jdXJyZW50TG9jYWxlIHx8IHRoaXMubG9jYWxlX2lkLCBOdW1iZXJTeW1ib2wuRGVjaW1hbClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIC8vIHN0b3AgZXZlbnQgcHJvcGFnYXRpb24gaWYga2V5IHByZXNzZWQgZXhjZWVkcyB0aGUgbWluL21heCB2YWx1ZSByYW5nZVxuICAgICAgICAgICAgfSBlbHNlIGlmICghTnVtYmVyLmlzTmFOKE51bWJlci5wYXJzZUludChlLmtleSwgMTApKSAmJiB0aGlzLmlzT3V0U2lkZVJhbmdlKGUpKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNPdXRTaWRlUmFuZ2UoZSkpIHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHByb3RlY3QgZGVjaW1hbCBzeW1ib2wgZGVsZXRpb24gaW4gY2FzZSBmaWxsRnJhY3Rpb24gaXMgb25cbiAgICAgICAgaWYgKGUua2V5ID09PSAnRGVsZXRlJyB8fCBlLmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAvLyBwb3NpdGlvbiBvZiBjYXJldFxuICAgICAgICAgICAgY29uc3QgcG9zID0gZWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgIC8vIGdldCBjaGFyYWN0ZXIgYWJvdXQgdG8gYmUgZGVsZXRlZFxuICAgICAgICAgICAgY29uc3QgY2hhciA9IGVsZW1lbnQudmFsdWUuY2hhckF0KHBvcyAtIDEpO1xuICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGUgY2hhciBpcyB0aGUgZGVjaW1hbCBzeW1ib2wgcHJldmVudCBkZWxldGlvbiBhbmQgbW92ZSBjYXJldCBpbiBmcm9udFxuICAgICAgICAgICAgaWYgKGNoYXIgPT09IGdldExvY2FsZU51bWJlclN5bWJvbCh0aGlzLmxvY2FsZVNlcnZpY2U/LmN1cnJlbnRMb2NhbGUgfHwgdGhpcy5sb2NhbGVfaWQsIE51bWJlclN5bWJvbC5EZWNpbWFsKSkge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zIC0gMSwgcG9zIC0gMSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNPdXRTaWRlUmFuZ2UoZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBkb24ndCBhbGxvdyBpbnNlcnRpb24gdGhhdCB3aWxsIHB1dCBudW1iZXIgb3V0IG9mIHJhbmdlXG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIC8vIGluIGNhc2UgZmlsbEZyYWN0aW9uIGZlYXR1cmUgaXMgb24gYW5kIHRoZXJlJ3Mgbm8gaW50ZWdlciBwYXJ0IGFkZCBsZWFkaW5nIDBcbiAgICAgICAgaWYgKHRoaXMuZmlsbEZyYWN0aW9uICYmIHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKS5tYXRjaCgvXlxcLlswLTldKy9nKSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZSgnMCcgKyB0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW4gY2FzZSByb3VuZCBVUCBpcyBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLl9yb3VuZFVwID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQodGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUodGhpcy5kZWNpbWFsQWRqdXN0KG51bWJlciwgdGhpcy5yb3VuZFVwICogLTEpLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW4gY2FzZSBtaW4gaXMgc2V0IGFuZCB2YWx1ZSBpcyBsZXNzIHRoYW4gbWluIHJlc2V0IHRvIHRoZSBtaW4gdmFsdWVcbiAgICAgICAgaWYgKHRoaXMubWluICE9PSBudWxsICYmIHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgTnVtYmVyLnBhcnNlRmxvYXQodGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKSA8IHRoaXMubWluKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKHRoaXMubWluLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW4gY2FzZSBtYXggaXMgc2V0IGFuZCB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gbWF4IHJlc2V0IHRvIHRoZSBtYXggdmFsdWVcbiAgICAgICAgaWYgKHRoaXMubWF4ICE9PSBudWxsICYmIHRoaXMubWF4ICE9PSB1bmRlZmluZWQgJiYgTnVtYmVyLnBhcnNlRmxvYXQodGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKSA+IHRoaXMubWF4KSB7XG4gICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKHRoaXMubWF4LnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEludmFsaWQoc3RhdGU/OiBCb29sZWFuSW5wdXQpOiB2b2lkIHtcbiAgICAgICAgLy8gaW4gY2FzZSBpdCdzIGNvbnRyb2xsZWQgYnkgTmdDb250cm9sIG92ZXJyaWRlXG4gICAgICAgIHRoaXMuX2lzSW52YWxpZCA9IHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkIDogY29lcmNlQm9vbGVhblByb3BlcnR5KHN0YXRlKTtcblxuICAgICAgICAvLyBzZXQgQmFzZURpcmVjdGl2ZSBBdHRyaWJ1dGVcbiAgICAgICAgc3VwZXIuZXVpRGFuZ2VyID0gdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBPdmVycmlkZSBzZXRQbGFjZWhvbGRlciBzZXRQbGFjZWhvbGRlckF0dHJpYnV0ZSBvZiBJbnB1dERpcmVjdGl2ZVxuICAgICAqIFVwZGF0ZXMgdGhlIHBsYWNlaG9sZGVyIHZhbHVlIGJhc2VkIG9uIGN1cnJlbnQgbnVtYmVyIGZvcm1hdCBhbmQgZ2l2ZW4gdmFsdWUuXG4gICAgICogSWYgdmFsdWUgcGFzc2VkIGNvbnRhaW5zIGNoYXJhY3RlcnMgaXQgZG9lc24ndCBmb3JtYXQgcGxhY2Vob2xkZXIuXG4gICAgICogKi9cbiAgICBwcm90ZWN0ZWQgc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICAvLyBpZiB2YWx1ZSBpcyBhIG51bWJlciwgZm9ybWF0IHRoZSB2YWx1ZSBiYXNlZCBvbiBjdXJyZW50IG51bWJlciBmb3JtYXRcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgZGl2ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgICAgLy8gY3JlYXRlIGEgY2xvbmUgb2YgY2xlYXZlSW5zdGFuY2VcbiAgICAgICAgICAgIGNvbnN0IGNsb25lSW5zdGFuY2U6IENsZWF2ZUluc3RhbmNlID0gbmV3IENsZWF2ZShkaXYsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgICAvLyBCRVdBUkU6IGJ5IHRoZSB0aW1lIHlvdXIgc2V0UmF3VmFsdWUgY2xlYXZlIG9wdGlvbnMgaGF2ZSBjaGFuZ2VkIHRodXMgbnVtYmVyIGZvcm1hdHRpbmdcbiAgICAgICAgICAgIGNsb25lSW5zdGFuY2Uuc2V0UmF3VmFsdWUodmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAvLyBzZXQgdGhlIHZhbHVlIHdpdGggY3VycmVudCBmb3JtYXQgYXMgcGxhY2Vob2xkZXJcbiAgICAgICAgICAgIHN1cGVyLnNldFBsYWNlaG9sZGVyQXR0cmlidXRlKGNsb25lSW5zdGFuY2UuZ2V0Rm9ybWF0dGVkVmFsdWUoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgc3VwZXIuc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUodmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIHN1cGVyLnNldFBsYWNlaG9sZGVyQXR0cmlidXRlKHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5zdGFudGlhdGUgQ2xlYXZlLmpzXG4gICAgICovXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBpbml0Q2xlYXZlKG9uQ2hhbmdlQ2FsbGJhY2s/OiAob2JqOiBhbnkpID0+IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBjaGFuZ2UgdGhlIGNsZWF2ZSBwcm90b3R5cGUgZnVuY3Rpb24gdG8gaW50ZXJjZXB0IG9uQ3V0IGNhbGxiYWNrXG4gICAgICAgIC8vIGFuZCBhbGxvdyBiYXNlZCBvbiB0aGUgZXZlbnQgYnViYmxpbmcgYW5kIGRpc2FibGVkIHN0YXRlXG4gICAgICAgIC8vIFRJUDogY2hhbmdlIGJlaGF2aW9yIG9mIG9uQ3V0IHRvIHN0b3AgaW4gY2FzZSBidWJibGUgaXMgY2FuY2VsZWRcbiAgICAgICAgLy8gVE9ETzogU2VlIHJlbGV2YW50IGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ub3Npci9jbGVhdmUuanMvaXNzdWVzLzY3NVxuICAgICAgICBjb25zdCBfb25DdXQgPSBDbGVhdmUucHJvdG90eXBlWydvbkN1dCddO1xuICAgICAgICBDbGVhdmUucHJvdG90eXBlWydvbkN1dCddID0gZnVuY3Rpb24gKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8taW52YWxpZC10aGlzXG4gICAgICAgICAgICBpZiAoIWUuY2FuY2VsQnViYmxlICYmICF0aGlzLmVsZW1lbnQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8taW52YWxpZC10aGlzXG4gICAgICAgICAgICAgICAgX29uQ3V0LmNhbGwodGhpcywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gaW4gY2FzZSBvcHRpb25zIGlzIHVuZGVmaW5lZFxuICAgICAgICBjb25zdCBvcHRzOiBDbGVhdmVPcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMgfTtcblxuICAgICAgICAvLyBzZXQgdGhlIG9uVmFsdWUgY2hhbmdlIGxpc3RlbmVyIHRvIGtlZXAgdGhlIHZhbHVlIGF0IHJlYWRPbmx5IGVsZW1lbnQgaW4gc3luY1xuICAgICAgICBvcHRzLm9uVmFsdWVDaGFuZ2VkID0gb25DaGFuZ2VDYWxsYmFjayB8fCB0aGlzLm9uVmFsdWVDaGFuZ2VkLmJpbmQodGhpcyk7XG5cbiAgICAgICAgLy8gaW4gY2FzZSByb3VuZCBVUCBpcyBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLl9yb3VuZFVwID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZGVjaW1hbEFkanVzdChudW1iZXIsIHRoaXMucm91bmRVcCAqIC0xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSB0aGUgQ2xlYXZlIGluc3RhbmNlIHdpdGggdGhlIG5ldyBvciB1cGRhdGVkIG9wdGlvbnNcbiAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBvcHRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBjbGVhdmUgb3B0aW9ucyBieSBkZXN0cm95aW5nIHRoZSBjdXJyZW50IGluc3RhbmNlIGFuZCBjcmVhdGluZyBhbm90aGVyIG9uZSB3aGlsZSBrZWVwaW5nIHRoZSBwcmV2aW91c1xuICAgICAqIHZhbHVlLlxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlT3B0aW9ucyhsb2NhbGVVcGRhdGVkID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBiZWZvcmUgZGVzdHJveWluZyBjbGVhdmUgaW5zdGFuY2VcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCk7XG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgQ2xlYXZlIGluc3RhbmNlIHdpdGggdGhlIG5ldyBvciB1cGRhdGVkIG9wdGlvbnNcbiAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2UucHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmNsZWF2ZUluc3RhbmNlLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGluaXRWYWx1ZTogcHJldmlvdXNWYWx1ZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIGluaXQgbnVtYmVyIGZvcm1hdHRlciB3aXRoIHVwZGF0ZWQgb3B0aW9uc1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5pbml0TnVtZXJhbEZvcm1hdHRlcigpO1xuXG4gICAgICAgICAgICAvLyBJbiBjYXNlIHByZXZpb3VzIHNldHRpbmdzIHdoZXJlIG51bWVyYWxEZWNpbWFsTWFyaz0nLicgd2l0aCB2YWx1ZSAxMDAwLjk5LCBhbmQgdGhleSBjaGFuZ2VkIHRvXG4gICAgICAgICAgICAvLyBudW1lcmFsRGVjaW1hbE1hcms9JywnOyBzZXQgaW5pdFZhbHVlIHRvIDEwMDAuOTkgb3IgZXZlbiAxMDAwLDk5IHdpbGwgbm90IGJlIHJlZmxlY3RlZCBhbmQgY2xlYXZlIHdpbGxcbiAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgZGVjaW1hbCBwYXJ0LiBTZXQgb2YgdGhlIHZhbHVlIGFmdGVyIGluaXRpYWxpemF0aW9uIGNhdXNlcyByZWZvcm1hdCBvZiBudW1iZXIgYW5kIHdvcmtzLlxuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZShwcmV2aW91c1ZhbHVlKTtcblxuICAgICAgICAgICAgLy8gcGFyc2UgbnVtYmVyXG4gICAgICAgICAgICBjb25zdCBudW1iZXIgPSB0aGlzLnBhcnNlTnVtYmVyKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciB8fCB1bmRlZmluZWQsIGxvY2FsZVVwZGF0ZWQpO1xuICAgICAgICAgICAgLy8gc2V0IHBsYWNlaG9sZGVyIGluIGNhc2Ugbm9uZSBpcyBwcm92aWRlZFxuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlckF0dHJpYnV0ZShudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gb2YgdGhlIENsZWF2ZSBpbnN0YW5jZSB0aGF0IGlzIGludm9rZWQgd2hlbiB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IHR5cGUgb2YgQ2xlYXZlRXZlbnRPbkNoYW5nZVxuICAgICAqL1xuICAgIHByaXZhdGUgb25WYWx1ZUNoYW5nZWQoZXZlbnQ6IENsZWF2ZUV2ZW50T25DaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0YXJnZXQgfSA9IGV2ZW50O1xuXG4gICAgICAgIGlmICh0aGlzLmZpbGxGcmFjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hcHBseUZyYWN0aW9uRmlsbCh0YXJnZXQucmF3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2UoTnVtYmVyLnBhcnNlRmxvYXQodGFyZ2V0LnJhd1ZhbHVlKSk7XG4gICAgICAgIC8vIGZpbGwgbGVhZGluZyB6ZXJvXG4gICAgICAgIGlmICh0aGlzLmxlYWRpbmdaZXJvKSB7XG4gICAgICAgICAgICBjb25zdCBzaXplID0gdGhpcy5sZWFkaW5nWmVybyA+IHRoaXMuZGlnaXRzICYmIHRoaXMuZGlnaXRzID4gMCA/IHRoaXMuZGlnaXRzIDogdGhpcy5sZWFkaW5nWmVybztcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMucGFkWmVybyhldmVudC50YXJnZXQucmF3VmFsdWUsIHNpemUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmVzcG9uc2libGUgdG8gZXh0cmFjdCBhbGwgbG9jYWxlIGluZm9ybWF0aW9uIG5lZWRlZCB0byBidWlsZCBDbGVhdmVPcHRpb25zIHJlbGF0ZWQgdG8gbnVtYmVyIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIGxvY2FsZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q2xlYXZlT3B0c0Jhc2VkT25Mb2NhbGUoaWQ6IHN0cmluZyk6IENsZWF2ZU9wdGlvbnMge1xuICAgICAgICBpZiAoIWlkIHx8IGlkID09PSAnJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdMb2NhbGUgaWQgY2Fubm90IGJlIGVtcHR5IG9yIHVuZGVmaW5lZCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdHM6IENsZWF2ZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICBudW1lcmFsOiB0cnVlLFxuICAgICAgICAgICAgZGVsaW1pdGVyOiBnZXRMb2NhbGVOdW1iZXJTeW1ib2woaWQsIE51bWJlclN5bWJvbC5Hcm91cCksXG4gICAgICAgICAgICBudW1lcmFsRGVjaW1hbE1hcms6IGdldExvY2FsZU51bWJlclN5bWJvbChpZCwgTnVtYmVyU3ltYm9sLkRlY2ltYWwpLFxuICAgICAgICAgICAgbnVtZXJhbERlY2ltYWxTY2FsZTogdGhpcy5mcmFjdGlvbkRpZ2l0cyxcbiAgICAgICAgICAgIG51bWVyYWxJbnRlZ2VyU2NhbGU6IHRoaXMuZGlnaXRzLFxuICAgICAgICAgICAgbnVtZXJhbFRob3VzYW5kc0dyb3VwU3R5bGU6IHRoaXMubm9Gb3JtYXQgPyAnbm9uZScgOiAndGhvdXNhbmQnLCAvLyBUT0RPOiBpbXBsZW1lbnQgYmFzZWQgb24gbG9jYWxlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHsgLi4udGhpcy5vcHRpb25zLCAuLi5vcHRzIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyB0aGUgZmlsbCBvZiBkZWNpbWFsIHBhcnQgd2l0aCB6ZXJvcyBpbiBjYXNlIGRlY2ltYWwgcGFydCBvZiBnaXZlbiBudW1iZXIgaGFzXG4gICAgICogc2l6ZSBsZXNzIHRoYW4gdGhlIG1heCBmcmFjdGlvbiBkaWdpdHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbnVtYmVyXG4gICAgICogQHBhcmFtIGNsZWF2ZUluc3RhbmNlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGFwcGx5RnJhY3Rpb25GaWxsKG51bWJlcjogc3RyaW5nLCBjbGVhdmVJbnN0YW5jZTogQ2xlYXZlSW5zdGFuY2UgPSB0aGlzLmNsZWF2ZUluc3RhbmNlKTogdm9pZCB7XG4gICAgICAgIC8vIGlmIGZpbGwgZnJhY3Rpb24gaXMgZW5hYmxlZCBhbmQgdGhlcmUncyBjbGVhdmUgaW5zdGFuY2VcbiAgICAgICAgaWYgKHRoaXMuZmlsbEZyYWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlcj8udG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAnJyB8fCAhbnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzRGVjaW1hbCA9IG51bWJlci5zcGxpdCgnLicpLmxlbmd0aCA+IDE7XG4gICAgICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGVyZSdzIGFscmVhZHkgZGVjaW1hbCBwb2ludCBpbiBudW1iZXJcbiAgICAgICAgICAgICAgICBpZiAoaGFzRGVjaW1hbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFsU2l6ZSA9IG51bWJlci5zcGxpdCgnLicpWzFdLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgc2l6ZSBvZiBkZWNpbWFsIHBhcnQgb2YgbnVtYmVyIGlzIGxlc3MgdGhhbiB0aGUgbWF4IGZyYWN0aW9uIGRpZ2l0c1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVjaW1hbFNpemUgPCB0aGlzLl9mcmFjdGlvbkRpZ2l0cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyICsgbmV3IEFycmF5KHRoaXMuX2ZyYWN0aW9uRGlnaXRzIC0gZGVjaW1hbFNpemUpLmZpbGwoMCkuam9pbignJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZShudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBpbiBjYXNlIHRoZXJlJ3Mgbm90LCBmb3JjZSBpdCBieSBmaWxsaW5nIGl0IGFzIG11Y2ggemVybyBhcyB0aGUgZnJhY3Rpb24gZGlnaXRzXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZyYWN0aW9uRGlnaXRzID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBgJHtudW1iZXJ9LiR7bmV3IEFycmF5KHRoaXMuX2ZyYWN0aW9uRGlnaXRzKS5maWxsKDApLmpvaW4oJycpfWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgYSBnaXZlbiBmb3JtYXR0ZWQgbnVtYmVyIGFuZCByZXR1cm5zIGl0IGFzIGEgbnVtYmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBmb3JtYXR0ZWQgbnVtYmVyIHlvdSB3YW50IHRvIHBhcnNlIGUuZy4gMTExLDg4OC4yMlxuICAgICAqIEBwYXJhbSB1c2VyUHJldkxvY2FsZVN0YXRlIFVzZSBwcmV2aW91cyBsb2NhbGUgc3RhdGUgdG8gcGFyc2UgdGhlIHZhbHVlLiBCeSBkZWZhdWx0LCBpcyBmYWxzZVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBwYXJzZU51bWJlcih2YWx1ZTogc3RyaW5nLCB1c2VyUHJldkxvY2FsZVN0YXRlID0gZmFsc2UpOiBudW1iZXIge1xuICAgICAgICAvLyBsb2NhbGUgc3RhdGVcbiAgICAgICAgY29uc3QgbG9jYWxlID0gdXNlclByZXZMb2NhbGVTdGF0ZSA/IHRoaXMubG9jYWxlU2VydmljZT8ucHJldmlvdXNMb2NhbGUgOiB0aGlzLmxvY2FsZVNlcnZpY2U/LmN1cnJlbnRMb2NhbGUgfHwgdGhpcy5sb2NhbGVfaWQgfHwgJ2VuJztcbiAgICAgICAgLy8gZ2V0IGRlY2ltYWwgYW5kIGdyb3VwIHN5bWJvbHNcbiAgICAgICAgY29uc3QgZGVjaW1hbFN5bWJvbCA9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGUsIE51bWJlclN5bWJvbC5EZWNpbWFsKTtcbiAgICAgICAgY29uc3QgZ3JvdXBTeW1ib2wgPSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuR3JvdXApO1xuICAgICAgICAvLyByZXBsYWNlIHN5bWJvbHMgdG8gcGFyc2UgbnVtYmVyXG4gICAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHZhbHVlPy5zcGxpdChncm91cFN5bWJvbCkuam9pbignJykuc3BsaXQoZGVjaW1hbFN5bWJvbCkuam9pbignLicpO1xuICAgICAgICByZXR1cm4gTnVtYmVyLnBhcnNlRmxvYXQocGFyc2VkTnVtYmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWQgbGVhZGluZyB6ZXJvIHRvIHRoZSBudW1iZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBudW0gVGhlIG51bWJlciB0byBhZGQgbGVhZGluZyB6ZXJvIHRvXG4gICAgICogQHBhcmFtIHNpemUgTnVtYmVyIG9mIG51bWJlcidzIGxlYWRpbmcgemVyb1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBwYWRaZXJvKG51bSwgc2l6ZSk6IHN0cmluZyB7XG4gICAgICAgIG51bSA9IG51bS50b1N0cmluZygpO1xuICAgICAgICAvLyBnZXQgaW50ZWdlciBhbmQgZGVjaW1hbCBwYXJ0XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgICAgbGV0IFtpbnRlZ2VyLCBkZWNpbWFsXSA9IG51bS5zcGxpdCgnLicpO1xuICAgICAgICB3aGlsZSAoaW50ZWdlci5sZW5ndGggPCBzaXplKSB7XG4gICAgICAgICAgICBpbnRlZ2VyID0gJzAnICsgaW50ZWdlcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjaW1hbCA/IGAke2ludGVnZXJ9LiR7ZGVjaW1hbH1gIDogaW50ZWdlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjaGVja3Mgd2hldGhlciB0aGUgbWluIHN5bWJvbCBpcyBhbGxvd2VkLiBJdCBpcyBhbGxvd2VkIHdoZW4gbWludXMgc3ltYm9sXG4gICAgICogcHJvdmlkZWQgYW5kIG1pbiBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbWluIHByb3ZpZGVkIGFuZCBpcyBuZWdhdGl2ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSBzdHJpbmcgY29taW5nIGZyb20gYW4gZXZlbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGlzTWludXNBbGxvd2VkKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5taW4gfHwgdGhpcy5taW4gPCAwID8ga2V5ICE9PSAnLScgOiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNoZWNrIHdoZXRoZXIgdGhlIGtleSBlbnRlcmVkIGlzIGluc2lkZSB0aGUgbWluIGFuZFxuICAgICAqIG1heCByYW5nZS4gUmV0dXJucyB0cnVlIGlmIGl0J3Mgb3V0IG9mIHJhbmdlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGUgQSBrZXlib2FyZCBldmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgaXNPdXRTaWRlUmFuZ2UoZTogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBnZXQgY2FyZXQgcG9zaXRpb25cbiAgICAgICAgY29uc3QgcG9zID0gZS50YXJnZXRbJ3NlbGVjdGlvblN0YXJ0J107XG4gICAgICAgIC8vIGdldCBjYXJldCBwb3NpdGlvbiAoaW4gY2FzZSB0aGVyZSdzIHRleHQgc2VsZWN0ZWQpXG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IGUudGFyZ2V0WydzZWxlY3Rpb25FbmQnXTtcbiAgICAgICAgLy8gZ2V0IGN1cnJlbnQgdmFsdWUgKGZvcm1hdHRlZClcbiAgICAgICAgbGV0IHZhbHVlID0gZS50YXJnZXRbJ3ZhbHVlJ107XG4gICAgICAgIC8vIHJlbW92ZSBrZXkgZnJvbSB2YWx1ZVxuICAgICAgICBpZiAoZS5rZXkgPT09ICdEZWxldGUnIHx8IGUua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlcmUncyBzZWxlY3Rpb24gb2YgdGV4dCB0byBiZSByZW1vdmVkXG4gICAgICAgICAgICBpZiAocG9zICE9PSBlbmRQb3MpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGUudGFyZ2V0Wyd2YWx1ZSddLnN1YnN0cmluZygwLCBwb3MpICsgZS50YXJnZXRbJ3ZhbHVlJ10uc3Vic3RyaW5nKGVuZFBvcywgZS50YXJnZXRbJ3ZhbHVlJ10ubGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBlLnRhcmdldFsndmFsdWUnXS5zdWJzdHJpbmcoMCwgcG9zIC0gMSkgKyBlLnRhcmdldFsndmFsdWUnXS5zdWJzdHJpbmcoZW5kUG9zLCBlLnRhcmdldFsndmFsdWUnXS5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gYWRkIGtleSB0byB0aGUgdmFsdWVcbiAgICAgICAgICAgIHZhbHVlID0gW3ZhbHVlLnNsaWNlKDAsIHBvcyksIGUua2V5LCB2YWx1ZS5zbGljZShlbmRQb3MpXS5qb2luKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBhIENsZWF2ZSBpbnN0YW5jZSB0byBleHRyYWN0IHRoZSBudW1iZXIgZnJvbSBmb3JtYXR0ZWQgdmFsdWVcbiAgICAgICAgY29uc3QgY2xlYXZlOiBDbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUodGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpLCB7IC4uLnRoaXMub3B0aW9ucyB9KTtcbiAgICAgICAgY2xlYXZlLnNldFJhd1ZhbHVlKHZhbHVlKTtcbiAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKGNsZWF2ZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgLy8gZGVzdHJveSBjbGVhdmUgaW5zdGFuY2VcbiAgICAgICAgY2xlYXZlLmRlc3Ryb3koKTtcbiAgICAgICAgcmV0dXJuICFpc05hTihudW1iZXIpICYmXG4gICAgICAgICAgICB0aGlzLm1pbiA+PSAwID8gKHRoaXMuaXNEZWZpbmVkKHRoaXMubWF4KSAmJiB0aGlzLm1heCA8IG51bWJlcikgOiAodGhpcy5taW4gPiBudW1iZXIgfHwgdGhpcy5tYXggPCBudW1iZXIpICYmXG4gICAgICAgICAgICB0aGlzLm1heCA8PSAwID8gKHRoaXMuaXNEZWZpbmVkKHRoaXMubWluKSAmJiB0aGlzLm1pbiA+IG51bWJlcikgOiAodGhpcy5taW4gPiBudW1iZXIgfHwgdGhpcy5tYXggPCBudW1iZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlY2ltYWwgYWRqdXN0bWVudCBvZiBhIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSAgdmFsdWUgVGhlIG51bWJlci5cbiAgICAgKiBAcGFyYW0gZXhwICAgVGhlIGV4cG9uZW50ICh0aGUgMTAgbG9nYXJpdGhtIG9mIHRoZSBhZGp1c3RtZW50IGJhc2UpLlxuICAgICAqIEByZXR1cm5zIFRoZSBhZGp1c3RlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGRlY2ltYWxBZGp1c3QodmFsdWU6IG51bWJlciwgZXhwOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICAvLyBJZiB0aGUgZXhwIGlzIHVuZGVmaW5lZCBvciB6ZXJvLi4uXG4gICAgICAgIGlmICh0eXBlb2YgZXhwID09PSAndW5kZWZpbmVkJyB8fCArZXhwID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSArdmFsdWU7XG4gICAgICAgIGV4cCA9ICtleHA7XG4gICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBub3QgYSBudW1iZXIgb3IgdGhlIGV4cCBpcyBub3QgYW4gaW50ZWdlci4uLlxuICAgICAgICBpZiAoaXNOYU4odmFsdWUpIHx8ICEodHlwZW9mIGV4cCA9PT0gJ251bWJlcicgJiYgZXhwICUgMSA9PT0gMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2hpZnRcbiAgICAgICAgbGV0IGNsZWFuZWQgPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCdlJyk7XG4gICAgICAgIHZhbHVlID0gTWF0aC5yb3VuZCgrKGNsZWFuZWRbMF0gKyAnZScgKyAoY2xlYW5lZFsxXSA/ICtjbGVhbmVkWzFdIC0gZXhwIDogLWV4cCkpKTtcbiAgICAgICAgLy8gU2hpZnQgYmFja1xuICAgICAgICBjbGVhbmVkID0gdmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnZScpO1xuICAgICAgICByZXR1cm4gKyhjbGVhbmVkWzBdICsgJ2UnICsgKGNsZWFuZWRbMV0gPyArY2xlYW5lZFsxXSArIGV4cCA6IGV4cCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIGEgdmFsdWUgaXMgZGVmaW5lZCBvciBub3RcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGlzRGVmaW5lZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
624
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktaW5wdXQtbnVtYmVyL2V1aS1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFFTixTQUFTLEVBR1QsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBTUwsaUJBQWlCLEdBRXBCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBNkIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRyxPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUM7QUFFL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBNEMzQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQUN2RDs7T0FFRztJQUNILElBQ1csR0FBRztRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxHQUFHLENBQUMsS0FBa0I7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUNXLEdBQUc7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLEtBQWtCO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsS0FB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T0FBTztzQkFEVixLQUFLO2dCQVlGLFFBQVE7c0JBRFgsS0FBSztnQkFROEIsSUFBSTtzQkFBdkMsV0FBVzt1QkFBQyxXQUFXO2dCQUNmLEtBQUs7c0JBQWIsS0FBSztnQkF1Sk4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF1QnZCLFNBQVM7c0JBRGxCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJDekIsVUFBVTtzQkFEbkIsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBPcHRpb25hbCxcbiAgICBMT0NBTEVfSUQsXG4gICAgSW5qZWN0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEluamVjdG9yLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxlU3RhdGUgfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyB0eXBlIENsZWF2ZU9wdGlvbnMgfSBmcm9tICdjbGVhdmUuanMvb3B0aW9ucyc7XG5pbXBvcnQgQ2xlYXZlIGZyb20gJ2NsZWF2ZS5qcyc7XG5pbXBvcnQgeyBDbGVhdmVFdmVudE9uQ2hhbmdlIH0gZnJvbSAnLi9tb2RlbHMvY2xlYXZlLWV2ZW50LW9uY2hhbmdlLm1vZGVsJztcbmltcG9ydCB7IElucHV0RGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5pbXBvcnQgeyBET0NVTUVOVCwgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sLCBOdW1iZXJTeW1ib2wgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRXVpQ2xlYXJhYmxlRGlyZWN0aXZlLCBFdWlMb2FkaW5nRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsZWF2ZUluc3RhbmNlIGV4dGVuZHMgQ2xlYXZlIHtcbiAgICBpbml0U3dhcEhpZGRlbklucHV0PzogKCkgPT4gdm9pZDtcbiAgICBpbml0TnVtZXJhbEZvcm1hdHRlcj86ICgpID0+IHZvaWQ7XG4gICAgaW5pdFRpbWVGb3JtYXR0ZXI/OiAoKSA9PiB2b2lkO1xuICAgIGluaXREYXRlRm9ybWF0dGVyPzogKCkgPT4gdm9pZDtcbiAgICBpbml0UGhvbmVGb3JtYXR0ZXI/OiAoKSA9PiB2b2lkO1xuICAgIHVwZGF0ZUNyZWRpdENhcmRQcm9wc0J5VmFsdWU/OiAoKSA9PiB2b2lkO1xuICAgIHVwZGF0ZVZhbHVlU3RhdGU/OiAoKSA9PiB2b2lkO1xuICAgIGNhbGxPblZhbHVlQ2hhbmdlZD86ICgpID0+IHZvaWQ7XG4gICAgb25DaGFuZ2U/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkN1dD86IChldmVudD86IEV2ZW50KSA9PiB2b2lkO1xuICAgIG9uRm9jdXM/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkNvcHk/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbktleURvd24/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkNoYW5nZUxpc3RlbmVyPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25LZXlEb3duTGlzdGVuZXI/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkZvY3VzTGlzdGVuZXI/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkN1dExpc3RlbmVyPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25Db3B5TGlzdGVuZXI/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lucHV0W2V1aUlucHV0TnVtYmVyXScsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBFdWlDbGVhcmFibGVEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsnZXVpQ2xlYXJhYmxlJywgJ3JlYWRvbmx5JywgJ2Rpc2FibGVkJ10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogRXVpTG9hZGluZ0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogWydldWlMb2FkaW5nJywgJ3JlYWRvbmx5J10sXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgICBob3N0OiB7XG4gICAgICAgICcoYmx1ciknOiAnb25Ub3VjaGVkKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aUlucHV0TnVtYmVyQ29tcG9uZW50IGV4dGVuZHMgSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjaywgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgY2FuIGJlIGVudGVyZWQuIEJsb2NrcyB1c2VyJ3MgaW5wdXQgaWYgbm90IGluIHJhbmdlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG4gICAgcHVibGljIHNldCBtaW4odmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgICAgIHRoaXMuX21pbiA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gbnVtYmVyIGNhbiBiZSBlbnRlcmVkLiBCbG9ja3MgdXNlcidzIGlucHV0IGlmIG5vdCBpbiByYW5nZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgbWF4KHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9tYXggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiBBZGRzIGxlYWRpbmcgemVybyB0byBhIG51bWJlci4gRm9ybWF0dGluZyB3aWxsIG5vdCB3b3JrLlxuICAgICAqICAgICAgZS5nLiB3aXRoIGxlYWRpbmdaZXJvPTMgaW5wdXQgbnVtYmVyIDUgPT4gMDA1XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGxlYWRpbmdaZXJvKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZWFkaW5nWmVybztcbiAgICB9XG4gICAgcHVibGljIHNldCBsZWFkaW5nWmVybyh2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICAgICAgdGhpcy5fbGVhZGluZ1plcm8gPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzSW52YWxpZChzdGF0ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuc2V0SW52YWxpZChzdGF0ZSk7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2V1aS1pbnB1dC1udW1iZXInKSwgdGhpcy5faXNJbnZhbGlkID8gJ2V1aS1pbnB1dC1udW1iZXItLWludmFsaWQnIDogJyddLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgLyoqIGhvdyBtYW55IGRpZ2l0cyBmb3IgdGhlIGRlY2ltYWwgcGFydCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZyYWN0aW9uRGlnaXRzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mcmFjdGlvbkRpZ2l0cztcbiAgICB9XG4gICAgc2V0IGZyYWN0aW9uRGlnaXRzKHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9mcmFjdGlvbkRpZ2l0cyA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgLyoqIGhvdyBtYW55IGRpZ2l0cyBmb3IgdGhlIGludGVnZXIgcGFydCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpZ2l0cygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlnaXRzO1xuICAgIH1cbiAgICBzZXQgZGlnaXRzKHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9kaWdpdHMgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZpbGxGcmFjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGxGcmFjdGlvbjtcbiAgICB9XG4gICAgc2V0IGZpbGxGcmFjdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2ZpbGxGcmFjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiByb3VuZHMgYSBudW1iZXIgd2l0aCBtb3JlIHRoYW4gdHdvIGRlY2ltYWxzIFVQICovXG4gICAgQElucHV0KClcbiAgICBnZXQgcm91bmRVcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm91bmRVcDtcbiAgICB9XG4gICAgc2V0IHJvdW5kVXAodmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgICAgIHRoaXMuX3JvdW5kVXAgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfaXNJbnZhbGlkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIGRvZXMgbm90IGZvcm1hdCB0aGUgYW5kIGRvIGEgdGhvdXNhbmQgZ3JvdXBpbmcgb2YgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgbm9Gb3JtYXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub0Zvcm1hdDtcbiAgICB9XG4gICAgc2V0IG5vRm9ybWF0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fbm9Gb3JtYXQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX25vRm9ybWF0OiBib29sZWFuO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50eXBlJykgcHJvdGVjdGVkIHR5cGUgPSAnZXVpLW51bWJlcic7XG4gICAgQElucHV0KCkgdmFsdWU6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX3JvdW5kVXA6IG51bWJlcjtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZDtcbiAgICBjbGVhdmVJbnN0YW5jZTogQ2xlYXZlSW5zdGFuY2U7XG4gICAgcHJpdmF0ZSBfbWluOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfbWF4OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIF9sZWFkaW5nWmVybyA9IDA7XG4gICAgLyoqIGhvbGRzIGluc3RhbmNlIG9mIGNsZWF2ZSAqL1xuICAgIC8qKiBvcHRpb25zIGZvciB0aGUgQ2xlYXZlIGluc3RhbmNlICovXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBDbGVhdmVPcHRpb25zO1xuICAgIHByaXZhdGUgX2ZyYWN0aW9uRGlnaXRzID0gMDtcbiAgICBwcml2YXRlIF9kaWdpdHM6IG51bWJlcjtcbiAgICBwcml2YXRlIF9maWxsRnJhY3Rpb246IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZV9pZDogc3RyaW5nLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcihfZWxlbWVudFJlZiwgX3JlbmRlcmVyLCBpbmplY3Rvcik7XG5cbiAgICAgICAgLy8gc2V0IGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICBudW1lcmFsOiB0cnVlLFxuICAgICAgICAgICAgZGVsaW1pdGVyOiBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlX2lkIHx8ICdlbicsIE51bWJlclN5bWJvbC5Hcm91cCksXG4gICAgICAgICAgICBudW1lcmFsRGVjaW1hbE1hcms6IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGVfaWQgfHwgJ2VuJywgTnVtYmVyU3ltYm9sLkRlY2ltYWwpLFxuICAgICAgICAgICAgbnVtZXJhbERlY2ltYWxTY2FsZTogdGhpcy5mcmFjdGlvbkRpZ2l0cyxcbiAgICAgICAgICAgIG51bWVyYWxJbnRlZ2VyU2NhbGU6IHRoaXMuZGlnaXRzLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgdW5kZWZpbmVkLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgICAgIC8vIGluc3RhbnRpYXRlIGNsZWF2ZVxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5pbml0Q2xlYXZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdWJzY3JpYmUgdG8gbG9jYWxpemF0aW9uIHNlcnZpY2UgYW5kIGxpc3RlbiBmb3IgbG9jYWxlIGNoYW5nZS4gRGUtY29uc3RydWN0aW9uIG9mIGxvY2FsZSBzaG91bGQgaGFwcGVuIGhlcmUhXG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZT8uZ2V0U3RhdGUoKS5zdWJzY3JpYmUoKHN0YXRlOiBMb2NhbGVTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5nZXRDbGVhdmVPcHRzQmFzZWRPbkxvY2FsZShzdGF0ZT8uaWQpO1xuXG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG9wdGlvbnMgb24gdGhlIGNsZWF2ZSBpbnN0YW5jZVxuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKHRydWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyb290Q2xhc3NOYW1lJywgJ2V1aS1pbnB1dC1udW1iZXInKTtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIHVuZGVmaW5lZCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkIDogdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ3ZhbHVlJykpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ2ZyYWN0aW9uRGlnaXRzJykpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCBudW1lcmFsRGVjaW1hbFNjYWxlOiB0aGlzLmZyYWN0aW9uRGlnaXRzIH07XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAnbm9Gb3JtYXQnKSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIG51bWVyYWxUaG91c2FuZHNHcm91cFN0eWxlOiB0aGlzLm5vRm9ybWF0ID8gJ25vbmUnIDogJ3Rob3VzYW5kJyB9O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ2ZpbGxGcmFjdGlvbicpICYmIHRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGcmFjdGlvbkZpbGwodGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAnZGlnaXRzJykpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCBudW1lcmFsSW50ZWdlclNjYWxlOiB0aGlzLmRpZ2l0cyB9O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ21pbicpKSB7XG4gICAgICAgICAgICB0aGlzLl9taW4gPSBjaGFuZ2VzWydtaW4nXS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZiAoY2hhbmdlc1snbWluJ10uY3VycmVudFZhbHVlID49IDApIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0YWtlIGNhcmUgb2YgdGhlIHNpZ24gc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUoTWF0aC5hYnMoTnVtYmVyKHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSkpLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAnbWF4JykpIHtcbiAgICAgICAgICAgIHRoaXMuX21heCA9IGNoYW5nZXNbJ21heCddLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIGN1cnJlbnQgdmFsdWUgaXMgaW4gcmFuZ2VcbiAgICAgICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA+IHRoaXMubWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUodGhpcy5tYXgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNoYW5nZXMsICdyb3VuZFVwJykpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzWydyb3VuZFVwJ10uY3VycmVudFZhbHVlID4gMCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBudW1iZXIgPSBOdW1iZXIucGFyc2VGbG9hdCh0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSB0aGlzLmRlY2ltYWxBZGp1c3QobnVtYmVyLCB0aGlzLnJvdW5kVXAgKiAtMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUobnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZihPYmplY3QuaGFzT3duKGNoYW5nZXMsICdwbGFjZWhvbGRlcicpKSB7XG4gICAgICAgICAgICAvLyBwYXJzZSBudW1iZXJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlciA9IHRoaXMucGFyc2VOdW1iZXIoY2hhbmdlc1sncGxhY2Vob2xkZXInXS5jdXJyZW50VmFsdWU/LnRvU3RyaW5nKCkgfHwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIC8vIHNldCBwbGFjZWhvbGRlciBpbiBjYXNlIG5vbmUgaXMgcHJvdmlkZWRcbiAgICAgICAgICAgIHRoaXMuc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUoaXNOYU4obnVtYmVyKSA/IGNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10uY3VycmVudFZhbHVlIDogbnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICAvLyBkZXN0cm95IGNsZWF2ZSBpbnN0YW5jZVxuICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkNoYW5nZTogYW55ID0gKF86IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sICYmIChfICE9PSBudWxsIHx8IF8gIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIC8vIHBhcnNlIG51bWJlclxuICAgICAgICAgICAgLy8gY29uc3QgdmFsdWUgPSBOdW1iZXIoXyk7XG4gICAgICAgICAgICAvLyBydW4gb24gbmV4dCBNaWNyb1Rhc2sgdG8gYXZvaWQgTkcwMTAwIGVycm9yIFRPRE86IGRlZXBlciBpbnZlc3RpZ2F0aW9uXG4gICAgICAgICAgICAvLyBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuY29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSh2YWx1ZSkpO1xuICAgICAgICAgICAgLy8gaW4gY2FzZSBjb250cm9sIGlzIEZvcm1Db250cm9sXG4gICAgICAgICAgICAvLyB0aGlzLmNvbnRyb2w/LmNvbnRyb2wuc2V0VmFsdWUoaXNOYU4odmFsdWUpID8gbnVsbCA6IHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UsIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIG9uVG91Y2hlZDogYW55ID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2w/LmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIH07XG5cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXG4gICAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gZ2V0IHRoZSB2YWx1ZSBmcm9tIGNsaXBib2FyZFxuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC5jbGlwYm9hcmREYXRhIHx8IHdpbmRvd1snY2xpcGJvYXJkRGF0YSddKS5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgICAgIC8vIGluIGNhc2Ugcm91bmQgVVAgaXMgZW5hYmxlZFxuICAgICAgICBpZiAodGhpcy5fcm91bmRVcCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGRpdiA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIGNsb25lIG9mIGNsZWF2ZUluc3RhbmNlXG4gICAgICAgICAgICBjb25zdCBjbG9uZUluc3RhbmNlOiBDbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUoZGl2LCB7IC4uLnRoaXMub3B0aW9ucywgbnVtZXJhbERlY2ltYWxTY2FsZTogOCB9KTtcbiAgICAgICAgICAgIGNsb25lSW5zdGFuY2Uuc2V0UmF3VmFsdWUodmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBsZXQgbnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQoY2xvbmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgICAgIG51bWJlciA9IHRoaXMuZGVjaW1hbEFkanVzdChudW1iZXIsIHRoaXMucm91bmRVcCAqIC0xKTtcbiAgICAgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKG51bWJlci50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBpbiB0aGUgZnV0dXJlIGhvdyBjYW4gdGhpcyBiZSBhdm9pZGVkXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMud3JpdGVWYWx1ZShudW1iZXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgaXQncyBhIHNpbmdsZSBzeW1ib2wgYW5kIG5vdCBTcGVjaWFsIGxpa2UgKEN0cmwsIGJhY2tzcGFjZSBldGMpXG4gICAgICAgIGlmIChlPy5rZXk/Lmxlbmd0aCA8PSAxICYmICFlLmN0cmxLZXkgJiYgIWUuYWx0S2V5ICYmICFlLm1ldGFLZXkpIHtcbiAgICAgICAgICAgIC8vIHN0b3AgZXZlbnQgcHJvcGFnYXRpb24gaWYga2V5IHByZXNzZWQgaXMgbm90IGEgbnVtYmVyIG9yIGxvY2FsZSBjaGFyYWN0ZXIgb3IgbWludXMgc2lnblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIE51bWJlci5pc05hTihOdW1iZXIucGFyc2VJbnQoZS5rZXksIDEwKSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmlzTWludXNBbGxvd2VkKGUua2V5KSAmJlxuICAgICAgICAgICAgICAgIGUua2V5ICE9PSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wodGhpcy5sb2NhbGVTZXJ2aWNlPy5jdXJyZW50TG9jYWxlIHx8IHRoaXMubG9jYWxlX2lkLCBOdW1iZXJTeW1ib2wuRGVjaW1hbClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIC8vIHN0b3AgZXZlbnQgcHJvcGFnYXRpb24gaWYga2V5IHByZXNzZWQgZXhjZWVkcyB0aGUgbWluL21heCB2YWx1ZSByYW5nZVxuICAgICAgICAgICAgfSBlbHNlIGlmICghTnVtYmVyLmlzTmFOKE51bWJlci5wYXJzZUludChlLmtleSwgMTApKSAmJiB0aGlzLmlzT3V0U2lkZVJhbmdlKGUpKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNPdXRTaWRlUmFuZ2UoZSkpIHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHByb3RlY3QgZGVjaW1hbCBzeW1ib2wgZGVsZXRpb24gaW4gY2FzZSBmaWxsRnJhY3Rpb24gaXMgb25cbiAgICAgICAgaWYgKGUua2V5ID09PSAnRGVsZXRlJyB8fCBlLmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAvLyBwb3NpdGlvbiBvZiBjYXJldFxuICAgICAgICAgICAgY29uc3QgcG9zID0gZWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgIC8vIGdldCBjaGFyYWN0ZXIgYWJvdXQgdG8gYmUgZGVsZXRlZFxuICAgICAgICAgICAgY29uc3QgY2hhciA9IGVsZW1lbnQudmFsdWUuY2hhckF0KHBvcyAtIDEpO1xuICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGUgY2hhciBpcyB0aGUgZGVjaW1hbCBzeW1ib2wgcHJldmVudCBkZWxldGlvbiBhbmQgbW92ZSBjYXJldCBpbiBmcm9udFxuICAgICAgICAgICAgaWYgKGNoYXIgPT09IGdldExvY2FsZU51bWJlclN5bWJvbCh0aGlzLmxvY2FsZVNlcnZpY2U/LmN1cnJlbnRMb2NhbGUgfHwgdGhpcy5sb2NhbGVfaWQsIE51bWJlclN5bWJvbC5EZWNpbWFsKSkge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zIC0gMSwgcG9zIC0gMSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNPdXRTaWRlUmFuZ2UoZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBkb24ndCBhbGxvdyBpbnNlcnRpb24gdGhhdCB3aWxsIHB1dCBudW1iZXIgb3V0IG9mIHJhbmdlXG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIC8vIGluIGNhc2UgZmlsbEZyYWN0aW9uIGZlYXR1cmUgaXMgb24gYW5kIHRoZXJlJ3Mgbm8gaW50ZWdlciBwYXJ0IGFkZCBsZWFkaW5nIDBcbiAgICAgICAgaWYgKHRoaXMuZmlsbEZyYWN0aW9uICYmIHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKS5tYXRjaCgvXlxcLlswLTldKy9nKSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZSgnMCcgKyB0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW4gY2FzZSByb3VuZCBVUCBpcyBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLl9yb3VuZFVwID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQodGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUodGhpcy5kZWNpbWFsQWRqdXN0KG51bWJlciwgdGhpcy5yb3VuZFVwICogLTEpLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW4gY2FzZSBtaW4gaXMgc2V0IGFuZCB2YWx1ZSBpcyBsZXNzIHRoYW4gbWluIHJlc2V0IHRvIHRoZSBtaW4gdmFsdWVcbiAgICAgICAgaWYgKHRoaXMubWluICE9PSBudWxsICYmIHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgTnVtYmVyLnBhcnNlRmxvYXQodGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKSA8IHRoaXMubWluKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKHRoaXMubWluLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW4gY2FzZSBtYXggaXMgc2V0IGFuZCB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gbWF4IHJlc2V0IHRvIHRoZSBtYXggdmFsdWVcbiAgICAgICAgaWYgKHRoaXMubWF4ICE9PSBudWxsICYmIHRoaXMubWF4ICE9PSB1bmRlZmluZWQgJiYgTnVtYmVyLnBhcnNlRmxvYXQodGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKSA+IHRoaXMubWF4KSB7XG4gICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKHRoaXMubWF4LnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEludmFsaWQoc3RhdGU/OiBCb29sZWFuSW5wdXQpOiB2b2lkIHtcbiAgICAgICAgLy8gaW4gY2FzZSBpdCdzIGNvbnRyb2xsZWQgYnkgTmdDb250cm9sIG92ZXJyaWRlXG4gICAgICAgIHRoaXMuX2lzSW52YWxpZCA9IHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkIDogY29lcmNlQm9vbGVhblByb3BlcnR5KHN0YXRlKTtcblxuICAgICAgICAvLyBzZXQgQmFzZURpcmVjdGl2ZSBBdHRyaWJ1dGVcbiAgICAgICAgc3VwZXIuZXVpRGFuZ2VyID0gdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBPdmVycmlkZSBzZXRQbGFjZWhvbGRlciBzZXRQbGFjZWhvbGRlckF0dHJpYnV0ZSBvZiBJbnB1dERpcmVjdGl2ZVxuICAgICAqIFVwZGF0ZXMgdGhlIHBsYWNlaG9sZGVyIHZhbHVlIGJhc2VkIG9uIGN1cnJlbnQgbnVtYmVyIGZvcm1hdCBhbmQgZ2l2ZW4gdmFsdWUuXG4gICAgICogSWYgdmFsdWUgcGFzc2VkIGNvbnRhaW5zIGNoYXJhY3RlcnMgaXQgZG9lc24ndCBmb3JtYXQgcGxhY2Vob2xkZXIuXG4gICAgICogKi9cbiAgICBwcm90ZWN0ZWQgc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICAvLyBpZiB2YWx1ZSBpcyBhIG51bWJlciwgZm9ybWF0IHRoZSB2YWx1ZSBiYXNlZCBvbiBjdXJyZW50IG51bWJlciBmb3JtYXRcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgZGl2ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgICAgLy8gY3JlYXRlIGEgY2xvbmUgb2YgY2xlYXZlSW5zdGFuY2VcbiAgICAgICAgICAgIGNvbnN0IGNsb25lSW5zdGFuY2U6IENsZWF2ZUluc3RhbmNlID0gbmV3IENsZWF2ZShkaXYsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgICAvLyBCRVdBUkU6IGJ5IHRoZSB0aW1lIHlvdXIgc2V0UmF3VmFsdWUgY2xlYXZlIG9wdGlvbnMgaGF2ZSBjaGFuZ2VkIHRodXMgbnVtYmVyIGZvcm1hdHRpbmdcbiAgICAgICAgICAgIGNsb25lSW5zdGFuY2Uuc2V0UmF3VmFsdWUodmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAvLyBzZXQgdGhlIHZhbHVlIHdpdGggY3VycmVudCBmb3JtYXQgYXMgcGxhY2Vob2xkZXJcbiAgICAgICAgICAgIHN1cGVyLnNldFBsYWNlaG9sZGVyQXR0cmlidXRlKGNsb25lSW5zdGFuY2UuZ2V0Rm9ybWF0dGVkVmFsdWUoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgc3VwZXIuc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUodmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIHN1cGVyLnNldFBsYWNlaG9sZGVyQXR0cmlidXRlKHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5zdGFudGlhdGUgQ2xlYXZlLmpzXG4gICAgICovXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBpbml0Q2xlYXZlKG9uQ2hhbmdlQ2FsbGJhY2s/OiAob2JqOiBhbnkpID0+IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBjaGFuZ2UgdGhlIGNsZWF2ZSBwcm90b3R5cGUgZnVuY3Rpb24gdG8gaW50ZXJjZXB0IG9uQ3V0IGNhbGxiYWNrXG4gICAgICAgIC8vIGFuZCBhbGxvdyBiYXNlZCBvbiB0aGUgZXZlbnQgYnViYmxpbmcgYW5kIGRpc2FibGVkIHN0YXRlXG4gICAgICAgIC8vIFRJUDogY2hhbmdlIGJlaGF2aW9yIG9mIG9uQ3V0IHRvIHN0b3AgaW4gY2FzZSBidWJibGUgaXMgY2FuY2VsZWRcbiAgICAgICAgLy8gVE9ETzogU2VlIHJlbGV2YW50IGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ub3Npci9jbGVhdmUuanMvaXNzdWVzLzY3NVxuICAgICAgICBjb25zdCBfb25DdXQgPSBDbGVhdmUucHJvdG90eXBlWydvbkN1dCddO1xuICAgICAgICBDbGVhdmUucHJvdG90eXBlWydvbkN1dCddID0gZnVuY3Rpb24gKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8taW52YWxpZC10aGlzXG4gICAgICAgICAgICBpZiAoIWUuY2FuY2VsQnViYmxlICYmICF0aGlzLmVsZW1lbnQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8taW52YWxpZC10aGlzXG4gICAgICAgICAgICAgICAgX29uQ3V0LmNhbGwodGhpcywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gaW4gY2FzZSBvcHRpb25zIGlzIHVuZGVmaW5lZFxuICAgICAgICBjb25zdCBvcHRzOiBDbGVhdmVPcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMgfTtcblxuICAgICAgICAvLyBzZXQgdGhlIG9uVmFsdWUgY2hhbmdlIGxpc3RlbmVyIHRvIGtlZXAgdGhlIHZhbHVlIGF0IHJlYWRPbmx5IGVsZW1lbnQgaW4gc3luY1xuICAgICAgICBvcHRzLm9uVmFsdWVDaGFuZ2VkID0gb25DaGFuZ2VDYWxsYmFjayB8fCB0aGlzLm9uVmFsdWVDaGFuZ2VkLmJpbmQodGhpcyk7XG5cbiAgICAgICAgLy8gaW4gY2FzZSByb3VuZCBVUCBpcyBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLl9yb3VuZFVwID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZGVjaW1hbEFkanVzdChudW1iZXIsIHRoaXMucm91bmRVcCAqIC0xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSB0aGUgQ2xlYXZlIGluc3RhbmNlIHdpdGggdGhlIG5ldyBvciB1cGRhdGVkIG9wdGlvbnNcbiAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBvcHRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBjbGVhdmUgb3B0aW9ucyBieSBkZXN0cm95aW5nIHRoZSBjdXJyZW50IGluc3RhbmNlIGFuZCBjcmVhdGluZyBhbm90aGVyIG9uZSB3aGlsZSBrZWVwaW5nIHRoZSBwcmV2aW91c1xuICAgICAqIHZhbHVlLlxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlT3B0aW9ucyhsb2NhbGVVcGRhdGVkID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBiZWZvcmUgZGVzdHJveWluZyBjbGVhdmUgaW5zdGFuY2VcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCk7XG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgQ2xlYXZlIGluc3RhbmNlIHdpdGggdGhlIG5ldyBvciB1cGRhdGVkIG9wdGlvbnNcbiAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2UucHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmNsZWF2ZUluc3RhbmNlLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGluaXRWYWx1ZTogcHJldmlvdXNWYWx1ZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIGluaXQgbnVtYmVyIGZvcm1hdHRlciB3aXRoIHVwZGF0ZWQgb3B0aW9uc1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5pbml0TnVtZXJhbEZvcm1hdHRlcigpO1xuXG4gICAgICAgICAgICAvLyBJbiBjYXNlIHByZXZpb3VzIHNldHRpbmdzIHdoZXJlIG51bWVyYWxEZWNpbWFsTWFyaz0nLicgd2l0aCB2YWx1ZSAxMDAwLjk5LCBhbmQgdGhleSBjaGFuZ2VkIHRvXG4gICAgICAgICAgICAvLyBudW1lcmFsRGVjaW1hbE1hcms9JywnOyBzZXQgaW5pdFZhbHVlIHRvIDEwMDAuOTkgb3IgZXZlbiAxMDAwLDk5IHdpbGwgbm90IGJlIHJlZmxlY3RlZCBhbmQgY2xlYXZlIHdpbGxcbiAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgZGVjaW1hbCBwYXJ0LiBTZXQgb2YgdGhlIHZhbHVlIGFmdGVyIGluaXRpYWxpemF0aW9uIGNhdXNlcyByZWZvcm1hdCBvZiBudW1iZXIgYW5kIHdvcmtzLlxuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZShwcmV2aW91c1ZhbHVlKTtcblxuICAgICAgICAgICAgLy8gcGFyc2UgbnVtYmVyXG4gICAgICAgICAgICBjb25zdCBudW1iZXIgPSB0aGlzLnBhcnNlTnVtYmVyKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciB8fCB1bmRlZmluZWQsIGxvY2FsZVVwZGF0ZWQpO1xuICAgICAgICAgICAgLy8gc2V0IHBsYWNlaG9sZGVyIGluIGNhc2Ugbm9uZSBpcyBwcm92aWRlZFxuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlckF0dHJpYnV0ZShudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gb2YgdGhlIENsZWF2ZSBpbnN0YW5jZSB0aGF0IGlzIGludm9rZWQgd2hlbiB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IHR5cGUgb2YgQ2xlYXZlRXZlbnRPbkNoYW5nZVxuICAgICAqL1xuICAgIHByaXZhdGUgb25WYWx1ZUNoYW5nZWQoZXZlbnQ6IENsZWF2ZUV2ZW50T25DaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0YXJnZXQgfSA9IGV2ZW50O1xuXG4gICAgICAgIGlmICh0aGlzLmZpbGxGcmFjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hcHBseUZyYWN0aW9uRmlsbCh0YXJnZXQucmF3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2UoTnVtYmVyLnBhcnNlRmxvYXQodGFyZ2V0LnJhd1ZhbHVlKSk7XG4gICAgICAgIC8vIGZpbGwgbGVhZGluZyB6ZXJvXG4gICAgICAgIGlmICh0aGlzLmxlYWRpbmdaZXJvKSB7XG4gICAgICAgICAgICBjb25zdCBzaXplID0gdGhpcy5sZWFkaW5nWmVybyA+IHRoaXMuZGlnaXRzICYmIHRoaXMuZGlnaXRzID4gMCA/IHRoaXMuZGlnaXRzIDogdGhpcy5sZWFkaW5nWmVybztcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMucGFkWmVybyhldmVudC50YXJnZXQucmF3VmFsdWUsIHNpemUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmVzcG9uc2libGUgdG8gZXh0cmFjdCBhbGwgbG9jYWxlIGluZm9ybWF0aW9uIG5lZWRlZCB0byBidWlsZCBDbGVhdmVPcHRpb25zIHJlbGF0ZWQgdG8gbnVtYmVyIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIGxvY2FsZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q2xlYXZlT3B0c0Jhc2VkT25Mb2NhbGUoaWQ6IHN0cmluZyk6IENsZWF2ZU9wdGlvbnMge1xuICAgICAgICBpZiAoIWlkIHx8IGlkID09PSAnJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdMb2NhbGUgaWQgY2Fubm90IGJlIGVtcHR5IG9yIHVuZGVmaW5lZCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdHM6IENsZWF2ZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICBudW1lcmFsOiB0cnVlLFxuICAgICAgICAgICAgZGVsaW1pdGVyOiBnZXRMb2NhbGVOdW1iZXJTeW1ib2woaWQsIE51bWJlclN5bWJvbC5Hcm91cCksXG4gICAgICAgICAgICBudW1lcmFsRGVjaW1hbE1hcms6IGdldExvY2FsZU51bWJlclN5bWJvbChpZCwgTnVtYmVyU3ltYm9sLkRlY2ltYWwpLFxuICAgICAgICAgICAgbnVtZXJhbERlY2ltYWxTY2FsZTogdGhpcy5mcmFjdGlvbkRpZ2l0cyxcbiAgICAgICAgICAgIG51bWVyYWxJbnRlZ2VyU2NhbGU6IHRoaXMuZGlnaXRzLFxuICAgICAgICAgICAgbnVtZXJhbFRob3VzYW5kc0dyb3VwU3R5bGU6IHRoaXMubm9Gb3JtYXQgPyAnbm9uZScgOiAndGhvdXNhbmQnLCAvLyBUT0RPOiBpbXBsZW1lbnQgYmFzZWQgb24gbG9jYWxlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHsgLi4udGhpcy5vcHRpb25zLCAuLi5vcHRzIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyB0aGUgZmlsbCBvZiBkZWNpbWFsIHBhcnQgd2l0aCB6ZXJvcyBpbiBjYXNlIGRlY2ltYWwgcGFydCBvZiBnaXZlbiBudW1iZXIgaGFzXG4gICAgICogc2l6ZSBsZXNzIHRoYW4gdGhlIG1heCBmcmFjdGlvbiBkaWdpdHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbnVtYmVyXG4gICAgICogQHBhcmFtIGNsZWF2ZUluc3RhbmNlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGFwcGx5RnJhY3Rpb25GaWxsKG51bWJlcjogc3RyaW5nLCBjbGVhdmVJbnN0YW5jZTogQ2xlYXZlSW5zdGFuY2UgPSB0aGlzLmNsZWF2ZUluc3RhbmNlKTogdm9pZCB7XG4gICAgICAgIC8vIGlmIGZpbGwgZnJhY3Rpb24gaXMgZW5hYmxlZCBhbmQgdGhlcmUncyBjbGVhdmUgaW5zdGFuY2VcbiAgICAgICAgaWYgKHRoaXMuZmlsbEZyYWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlcj8udG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAnJyB8fCAhbnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzRGVjaW1hbCA9IG51bWJlci5zcGxpdCgnLicpLmxlbmd0aCA+IDE7XG4gICAgICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGVyZSdzIGFscmVhZHkgZGVjaW1hbCBwb2ludCBpbiBudW1iZXJcbiAgICAgICAgICAgICAgICBpZiAoaGFzRGVjaW1hbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFsU2l6ZSA9IG51bWJlci5zcGxpdCgnLicpWzFdLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgc2l6ZSBvZiBkZWNpbWFsIHBhcnQgb2YgbnVtYmVyIGlzIGxlc3MgdGhhbiB0aGUgbWF4IGZyYWN0aW9uIGRpZ2l0c1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVjaW1hbFNpemUgPCB0aGlzLl9mcmFjdGlvbkRpZ2l0cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyICsgbmV3IEFycmF5KHRoaXMuX2ZyYWN0aW9uRGlnaXRzIC0gZGVjaW1hbFNpemUpLmZpbGwoMCkuam9pbignJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZShudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBpbiBjYXNlIHRoZXJlJ3Mgbm90LCBmb3JjZSBpdCBieSBmaWxsaW5nIGl0IGFzIG11Y2ggemVybyBhcyB0aGUgZnJhY3Rpb24gZGlnaXRzXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZyYWN0aW9uRGlnaXRzID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBgJHtudW1iZXJ9LiR7bmV3IEFycmF5KHRoaXMuX2ZyYWN0aW9uRGlnaXRzKS5maWxsKDApLmpvaW4oJycpfWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgYSBnaXZlbiBmb3JtYXR0ZWQgbnVtYmVyIGFuZCByZXR1cm5zIGl0IGFzIGEgbnVtYmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBmb3JtYXR0ZWQgbnVtYmVyIHlvdSB3YW50IHRvIHBhcnNlIGUuZy4gMTExLDg4OC4yMlxuICAgICAqIEBwYXJhbSB1c2VyUHJldkxvY2FsZVN0YXRlIFVzZSBwcmV2aW91cyBsb2NhbGUgc3RhdGUgdG8gcGFyc2UgdGhlIHZhbHVlLiBCeSBkZWZhdWx0LCBpcyBmYWxzZVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBwYXJzZU51bWJlcih2YWx1ZTogc3RyaW5nLCB1c2VyUHJldkxvY2FsZVN0YXRlID0gZmFsc2UpOiBudW1iZXIge1xuICAgICAgICAvLyBsb2NhbGUgc3RhdGVcbiAgICAgICAgY29uc3QgbG9jYWxlID0gdXNlclByZXZMb2NhbGVTdGF0ZSA/IHRoaXMubG9jYWxlU2VydmljZT8ucHJldmlvdXNMb2NhbGUgOiB0aGlzLmxvY2FsZVNlcnZpY2U/LmN1cnJlbnRMb2NhbGUgfHwgdGhpcy5sb2NhbGVfaWQgfHwgJ2VuJztcbiAgICAgICAgLy8gZ2V0IGRlY2ltYWwgYW5kIGdyb3VwIHN5bWJvbHNcbiAgICAgICAgY29uc3QgZGVjaW1hbFN5bWJvbCA9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGUsIE51bWJlclN5bWJvbC5EZWNpbWFsKTtcbiAgICAgICAgY29uc3QgZ3JvdXBTeW1ib2wgPSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuR3JvdXApO1xuICAgICAgICAvLyByZXBsYWNlIHN5bWJvbHMgdG8gcGFyc2UgbnVtYmVyXG4gICAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHZhbHVlPy5zcGxpdChncm91cFN5bWJvbCkuam9pbignJykuc3BsaXQoZGVjaW1hbFN5bWJvbCkuam9pbignLicpO1xuICAgICAgICByZXR1cm4gTnVtYmVyLnBhcnNlRmxvYXQocGFyc2VkTnVtYmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWQgbGVhZGluZyB6ZXJvIHRvIHRoZSBudW1iZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBudW0gVGhlIG51bWJlciB0byBhZGQgbGVhZGluZyB6ZXJvIHRvXG4gICAgICogQHBhcmFtIHNpemUgTnVtYmVyIG9mIG51bWJlcidzIGxlYWRpbmcgemVyb1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBwYWRaZXJvKG51bSwgc2l6ZSk6IHN0cmluZyB7XG4gICAgICAgIG51bSA9IG51bS50b1N0cmluZygpO1xuICAgICAgICAvLyBnZXQgaW50ZWdlciBhbmQgZGVjaW1hbCBwYXJ0XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgICAgbGV0IFtpbnRlZ2VyLCBkZWNpbWFsXSA9IG51bS5zcGxpdCgnLicpO1xuICAgICAgICB3aGlsZSAoaW50ZWdlci5sZW5ndGggPCBzaXplKSB7XG4gICAgICAgICAgICBpbnRlZ2VyID0gJzAnICsgaW50ZWdlcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjaW1hbCA/IGAke2ludGVnZXJ9LiR7ZGVjaW1hbH1gIDogaW50ZWdlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjaGVja3Mgd2hldGhlciB0aGUgbWluIHN5bWJvbCBpcyBhbGxvd2VkLiBJdCBpcyBhbGxvd2VkIHdoZW4gbWludXMgc3ltYm9sXG4gICAgICogcHJvdmlkZWQgYW5kIG1pbiBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbWluIHByb3ZpZGVkIGFuZCBpcyBuZWdhdGl2ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSBzdHJpbmcgY29taW5nIGZyb20gYW4gZXZlbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGlzTWludXNBbGxvd2VkKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5taW4gfHwgdGhpcy5taW4gPCAwID8ga2V5ICE9PSAnLScgOiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNoZWNrIHdoZXRoZXIgdGhlIGtleSBlbnRlcmVkIGlzIGluc2lkZSB0aGUgbWluIGFuZFxuICAgICAqIG1heCByYW5nZS4gUmV0dXJucyB0cnVlIGlmIGl0J3Mgb3V0IG9mIHJhbmdlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGUgQSBrZXlib2FyZCBldmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgaXNPdXRTaWRlUmFuZ2UoZTogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBnZXQgY2FyZXQgcG9zaXRpb25cbiAgICAgICAgY29uc3QgcG9zID0gZS50YXJnZXRbJ3NlbGVjdGlvblN0YXJ0J107XG4gICAgICAgIC8vIGdldCBjYXJldCBwb3NpdGlvbiAoaW4gY2FzZSB0aGVyZSdzIHRleHQgc2VsZWN0ZWQpXG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IGUudGFyZ2V0WydzZWxlY3Rpb25FbmQnXTtcbiAgICAgICAgLy8gZ2V0IGN1cnJlbnQgdmFsdWUgKGZvcm1hdHRlZClcbiAgICAgICAgbGV0IHZhbHVlID0gZS50YXJnZXRbJ3ZhbHVlJ107XG4gICAgICAgIC8vIHJlbW92ZSBrZXkgZnJvbSB2YWx1ZVxuICAgICAgICBpZiAoZS5rZXkgPT09ICdEZWxldGUnIHx8IGUua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlcmUncyBzZWxlY3Rpb24gb2YgdGV4dCB0byBiZSByZW1vdmVkXG4gICAgICAgICAgICBpZiAocG9zICE9PSBlbmRQb3MpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGUudGFyZ2V0Wyd2YWx1ZSddLnN1YnN0cmluZygwLCBwb3MpICsgZS50YXJnZXRbJ3ZhbHVlJ10uc3Vic3RyaW5nKGVuZFBvcywgZS50YXJnZXRbJ3ZhbHVlJ10ubGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBlLnRhcmdldFsndmFsdWUnXS5zdWJzdHJpbmcoMCwgcG9zIC0gMSkgKyBlLnRhcmdldFsndmFsdWUnXS5zdWJzdHJpbmcoZW5kUG9zLCBlLnRhcmdldFsndmFsdWUnXS5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gYWRkIGtleSB0byB0aGUgdmFsdWVcbiAgICAgICAgICAgIHZhbHVlID0gW3ZhbHVlLnNsaWNlKDAsIHBvcyksIGUua2V5LCB2YWx1ZS5zbGljZShlbmRQb3MpXS5qb2luKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBhIENsZWF2ZSBpbnN0YW5jZSB0byBleHRyYWN0IHRoZSBudW1iZXIgZnJvbSBmb3JtYXR0ZWQgdmFsdWVcbiAgICAgICAgY29uc3QgY2xlYXZlOiBDbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUodGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpLCB7IC4uLnRoaXMub3B0aW9ucyB9KTtcbiAgICAgICAgY2xlYXZlLnNldFJhd1ZhbHVlKHZhbHVlKTtcbiAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKGNsZWF2ZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgLy8gZGVzdHJveSBjbGVhdmUgaW5zdGFuY2VcbiAgICAgICAgY2xlYXZlLmRlc3Ryb3koKTtcbiAgICAgICAgcmV0dXJuICFpc05hTihudW1iZXIpICYmXG4gICAgICAgICAgICB0aGlzLm1pbiA+PSAwID8gKHRoaXMuaXNEZWZpbmVkKHRoaXMubWF4KSAmJiB0aGlzLm1heCA8IG51bWJlcikgOiAodGhpcy5taW4gPiBudW1iZXIgfHwgdGhpcy5tYXggPCBudW1iZXIpICYmXG4gICAgICAgICAgICB0aGlzLm1heCA8PSAwID8gKHRoaXMuaXNEZWZpbmVkKHRoaXMubWluKSAmJiB0aGlzLm1pbiA+IG51bWJlcikgOiAodGhpcy5taW4gPiBudW1iZXIgfHwgdGhpcy5tYXggPCBudW1iZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlY2ltYWwgYWRqdXN0bWVudCBvZiBhIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSAgdmFsdWUgVGhlIG51bWJlci5cbiAgICAgKiBAcGFyYW0gZXhwICAgVGhlIGV4cG9uZW50ICh0aGUgMTAgbG9nYXJpdGhtIG9mIHRoZSBhZGp1c3RtZW50IGJhc2UpLlxuICAgICAqIEByZXR1cm5zIFRoZSBhZGp1c3RlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGRlY2ltYWxBZGp1c3QodmFsdWU6IG51bWJlciwgZXhwOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICAvLyBJZiB0aGUgZXhwIGlzIHVuZGVmaW5lZCBvciB6ZXJvLi4uXG4gICAgICAgIGlmICh0eXBlb2YgZXhwID09PSAndW5kZWZpbmVkJyB8fCArZXhwID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSArdmFsdWU7XG4gICAgICAgIGV4cCA9ICtleHA7XG4gICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBub3QgYSBudW1iZXIgb3IgdGhlIGV4cCBpcyBub3QgYW4gaW50ZWdlci4uLlxuICAgICAgICBpZiAoaXNOYU4odmFsdWUpIHx8ICEodHlwZW9mIGV4cCA9PT0gJ251bWJlcicgJiYgZXhwICUgMSA9PT0gMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2hpZnRcbiAgICAgICAgbGV0IGNsZWFuZWQgPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCdlJyk7XG4gICAgICAgIHZhbHVlID0gTWF0aC5yb3VuZCgrKGNsZWFuZWRbMF0gKyAnZScgKyAoY2xlYW5lZFsxXSA/ICtjbGVhbmVkWzFdIC0gZXhwIDogLWV4cCkpKTtcbiAgICAgICAgLy8gU2hpZnQgYmFja1xuICAgICAgICBjbGVhbmVkID0gdmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnZScpO1xuICAgICAgICByZXR1cm4gKyhjbGVhbmVkWzBdICsgJ2UnICsgKGNsZWFuZWRbMV0gPyArY2xlYW5lZFsxXSArIGV4cCA6IGV4cCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIGEgdmFsdWUgaXMgZGVmaW5lZCBvciBub3RcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGlzRGVmaW5lZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
@@ -4,9 +4,9 @@ import { EuiInputNumberComponent } from './eui-input-number.component';
|
|
4
4
|
import { EuiInputNumberDirective } from './eui-number-control.directive';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
export class EuiInputNumberDirectiveModule {
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputNumberDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputNumberDirectiveModule, declarations: [EuiInputNumberComponent, EuiInputNumberDirective], imports: [CommonModule], exports: [EuiInputNumberComponent, EuiInputNumberDirective] }); }
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputNumberDirectiveModule, imports: [CommonModule] }); }
|
10
10
|
}
|
11
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputNumberDirectiveModule, decorators: [{
|
12
12
|
type: NgModule,
|
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
16
16
|
exports: [EuiInputNumberComponent, EuiInputNumberDirective],
|
17
17
|
}]
|
18
18
|
}] });
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LW51bWJlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktaW5wdXQtbnVtYmVyL2V1aS1pbnB1dC1udW1iZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU96RSxNQUFNLE9BQU8sNkJBQTZCO3FIQUE3Qiw2QkFBNkI7c0hBQTdCLDZCQUE2QixpQkFIdkIsdUJBQXVCLEVBQUUsdUJBQXVCLGFBRHJELFlBQVksYUFFWix1QkFBdUIsRUFBRSx1QkFBdUI7c0hBRWpELDZCQUE2QixZQUo1QixZQUFZOztrR0FJYiw2QkFBNkI7a0JBTHpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQztvQkFDaEUsT0FBTyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUM7aUJBQzlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFdWlJbnB1dE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vZXVpLWlucHV0LW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXVpSW5wdXROdW1iZXJEaXJlY3RpdmUgfSBmcm9tICcuL2V1aS1udW1iZXItY29udHJvbC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0V1aUlucHV0TnVtYmVyQ29tcG9uZW50LCBFdWlJbnB1dE51bWJlckRpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0V1aUlucHV0TnVtYmVyQ29tcG9uZW50LCBFdWlJbnB1dE51bWJlckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aUlucHV0TnVtYmVyRGlyZWN0aXZlTW9kdWxlIHt9XG5cbi8vIEBOZ01vZHVsZSh7XG4vLyAgICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4vLyAgICAgZGVjbGFyYXRpb25zOiBbRXVpSW5wdXROdW1iZXJDb21wb25lbnQsIEV1aUlucHV0TnVtYmVyRGlyZWN0aXZlXSxcbi8vICAgICBleHBvcnRzOiBbRXVpSW5wdXROdW1iZXJDb21wb25lbnQsIEV1aUlucHV0TnVtYmVyRGlyZWN0aXZlXSxcbi8vIH0pXG4vLyBleHBvcnQgY2xhc3MgRXVpSW5wdXROdW1iZXJNb2R1bGUge31cbiJdfQ==
|
@@ -61,11 +61,11 @@ export class EuiInputNumberDirective {
|
|
61
61
|
this.onChange(isNaN(numberCoerce) ? null : numberCoerce);
|
62
62
|
}
|
63
63
|
}
|
64
|
-
|
65
|
-
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputNumberDirective, deps: [{ token: i0.ElementRef }, { token: i1.EuiInputNumberComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
65
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EuiInputNumberDirective, selector: "input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]", providers: [
|
66
66
|
{
|
67
67
|
provide: NG_VALUE_ACCESSOR,
|
68
|
-
useExisting: forwardRef((
|
68
|
+
useExisting: forwardRef(() => EuiInputNumberDirective),
|
69
69
|
multi: true,
|
70
70
|
},
|
71
71
|
], ngImport: i0 }); }
|
@@ -77,7 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
77
77
|
providers: [
|
78
78
|
{
|
79
79
|
provide: NG_VALUE_ACCESSOR,
|
80
|
-
useExisting: forwardRef((
|
80
|
+
useExisting: forwardRef(() => EuiInputNumberDirective),
|
81
81
|
multi: true,
|
82
82
|
},
|
83
83
|
],
|
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
85
85
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.EuiInputNumberComponent, decorators: [{
|
86
86
|
type: Optional
|
87
87
|
}] }] });
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW51bWJlci1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1udW1iZXIvZXVpLW51bWJlci1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sTUFBTSxNQUFNLFdBQVcsQ0FBQzs7O0FBWS9CLE1BQU0sT0FBTyx1QkFBdUI7SUFPaEMsWUFDWSxVQUFzQixFQUNWLGtCQUEyQztRQUR2RCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1YsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF5QjtJQUNoRSxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxtSEFBbUg7SUFDbkgsOERBQThEO0lBQzlELFVBQVUsQ0FBQyxHQUFRO1FBQ2YsTUFBTSxNQUFNLEdBQW1CLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEgsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7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dGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2xlYXZlSW5zdGFuY2UsIEV1aUlucHV0TnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktaW5wdXQtbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgQ2xlYXZlIGZyb20gJ2NsZWF2ZS5qcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbZXVpSW5wdXROdW1iZXJdW2Zvcm1Db250cm9sXSxpbnB1dFtldWlJbnB1dE51bWJlcl1bZm9ybUNvbnRyb2xOYW1lXSxpbnB1dFtldWlJbnB1dE51bWJlcl1bbmdNb2RlbF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEV1aUlucHV0TnVtYmVyRGlyZWN0aXZlKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aUlucHV0TnVtYmVyRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gICAgLyoqIGhvbGQgYSBjb3B5IG9mIHRoZSB2YWx1ZSAqL1xuICAgIHByaXZhdGUgdmFsdWU6IG51bWJlcjtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAodDogYW55KSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBldWlOdW1iZXJDb21wb25lbnQ6IEV1aUlucHV0TnVtYmVyQ29tcG9uZW50LFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aU51bWJlckNvbXBvbmVudFsnaW5pdENsZWF2ZSddKHRoaXMudmFsdWVDaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2xlYXZlOiBDbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSwgeyAuLi50aGlzLmV1aU51bWJlckNvbXBvbmVudFsnb3B0aW9ucyddIH0pO1xuICAgICAgICBjbGVhdmUuc2V0UmF3VmFsdWUob2JqKTtcbiAgICAgICAgaWYgKHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50LmZpbGxGcmFjdGlvbiAmJiBvYmogIT09ICcnICYmIG9iaikge1xuICAgICAgICAgICAgdGhpcy5ldWlOdW1iZXJDb21wb25lbnRbJ2FwcGx5RnJhY3Rpb25GaWxsJ10ob2JqLCBjbGVhdmUpO1xuICAgICAgICB9XG4gICAgICAgIGxldCB2YWx1ZU9mRWxlbWVudDogc3RyaW5nO1xuICAgICAgICAvLyBmaWxsIGxlYWRpbmcgemVyb1xuICAgICAgICBpZiAodGhpcy5ldWlOdW1iZXJDb21wb25lbnQubGVhZGluZ1plcm8pIHtcbiAgICAgICAgICAgIGNvbnN0IHNpemUgPVxuICAgICAgICAgICAgICAgIHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50LmxlYWRpbmdaZXJvID4gdGhpcy5ldWlOdW1iZXJDb21wb25lbnQuZGlnaXRzICYmIHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50LmRpZ2l0cyA+IDBcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmV1aU51bWJlckNvbXBvbmVudC5kaWdpdHNcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmV1aU51bWJlckNvbXBvbmVudC5sZWFkaW5nWmVybztcbiAgICAgICAgICAgIHZhbHVlT2ZFbGVtZW50ID0gdGhpcy5ldWlOdW1iZXJDb21wb25lbnRbJ3BhZFplcm8nXShjbGVhdmUuZ2V0Rm9ybWF0dGVkVmFsdWUoKSwgc2l6ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZU9mRWxlbWVudCA9IGNsZWF2ZS5nZXRGb3JtYXR0ZWRWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWVPZkVsZW1lbnQ7XG4gICAgICAgIHRoaXMudmFsdWUgPSBOdW1iZXIucGFyc2VGbG9hdChjbGVhdmUuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgIGNsZWF2ZS5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSAodCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHQ7XG4gICAgICAgICAgICBmbih0KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50LmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVG91Y2hlZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5ldWlOdW1iZXJDb21wb25lbnQuaXNJbnZhbGlkID0gdGhpcy5jb250cm9sLmludmFsaWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx1ZUNoYW5nZXMoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0YXJnZXQgfSA9IGV2ZW50O1xuXG4gICAgICAgIHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50WydvblZhbHVlQ2hhbmdlZCddKGV2ZW50KTtcbiAgICAgICAgY29uc3QgbnVtYmVyQ29lcmNlID0gTnVtYmVyLnBhcnNlRmxvYXQodGFyZ2V0LnJhd1ZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgIT09IG51bWJlckNvZXJjZSAmJiB0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKGlzTmFOKG51bWJlckNvZXJjZSkgPyBudWxsIDogbnVtYmVyQ29lcmNlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
@@ -133,8 +133,8 @@ export class EuiInputRadioComponent extends InputDirective {
|
|
133
133
|
// set BaseDirective Attribute
|
134
134
|
super.euiDanger = this._isInvalid;
|
135
135
|
}
|
136
|
-
|
137
|
-
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputRadioComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
137
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EuiInputRadioComponent, selector: "input[euiInputRadio]", inputs: { isInvalid: "isInvalid", defaultChecked: ["checked", "defaultChecked"], value: "value" }, host: { listeners: { "change": "onCheckedChanged($event)", "keydown.space": "onSpacePressed($event)" }, properties: { "class": "this.class", "attr.type": "this.type", "attr.checked": "this.defaultChecked" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [".eui-input-radio:not(.cdk-visually-hidden){appearance:inherit;align-items:center;border-radius:50%;cursor:pointer;display:inline-flex;flex-shrink:0;height:1.25rem;justify-content:center;margin-right:var(--eui-base-spacing-s);position:relative;vertical-align:middle;transition:all .25s ease;width:1.25rem;accent-color:var(--eui-base-color-white);background:var(--eui-base-color-white);border:2px solid var(--eui-base-color-grey-75)}.eui-input-radio:not(.cdk-visually-hidden)+label,.eui-input-radio:not(.cdk-visually-hidden)+.eui-label{display:inline-flex;cursor:pointer;margin-right:var(--eui-base-spacing-m);white-space:inherit}.eui-input-radio:not(.cdk-visually-hidden):checked{background:var(--eui-base-color-white)}.eui-input-radio:not(.cdk-visually-hidden):checked:before{height:1rem;width:1rem;content:\"\";-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:50% 50%;mask-position:50% 50%;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--eui-internal-icon-ellipse-path);mask-image:var(--eui-internal-icon-ellipse-path);background-color:var(--eui-base-color-primary-100);height:.75rem;width:.75rem}.eui-input-radio:not(.cdk-visually-hidden):disabled:not([readonly]){background:var(--eui-base-color-grey-25);border:2px solid var(--eui-base-color-grey-75);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.eui-input-radio:not(.cdk-visually-hidden):disabled:not([readonly]):checked:before{height:1rem;width:1rem;content:\"\";-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:50% 50%;mask-position:50% 50%;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--eui-internal-icon-ellipse-path);mask-image:var(--eui-internal-icon-ellipse-path);background-color:var(--eui-base-color-primary-100);height:.75rem;width:.75rem}.eui-input-radio:not(.cdk-visually-hidden):disabled:not([readonly])+label{pointer-events:none}.eui-input-radio:not(.cdk-visually-hidden)[readonly]{display:none;pointer-events:none;-webkit-user-select:none;user-select:none}.eui-input-radio:not(.cdk-visually-hidden)[readonly]+label,.eui-input-radio:not(.cdk-visually-hidden)[readonly] .eui-label{display:none}.eui-input-radio:not(.cdk-visually-hidden)[readonly]:checked{display:none}.eui-input-radio:not(.cdk-visually-hidden)[readonly]:checked+label,.eui-input-radio:not(.cdk-visually-hidden)[readonly]:checked+.eui-label{display:inline-flex;cursor:default;margin-bottom:0;pointer-events:none;position:initial}.eui-input-radio:not(.cdk-visually-hidden).eui-input-radio--invalid,.eui-input-radio:not(.cdk-visually-hidden).eui-input-radio--danger{border:2px solid var(--eui-base-color-danger-100)!important}.eui-input-radio:not(.cdk-visually-hidden).eui-input-radio--invalid:checked:before,.eui-input-radio:not(.cdk-visually-hidden).eui-input-radio--danger:checked:before{height:1rem;width:1rem;content:\"\";-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:50% 50%;mask-position:50% 50%;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--eui-internal-icon-ellipse-path);mask-image:var(--eui-internal-icon-ellipse-path);background-color:var(--eui-base-color-danger-100);height:.75rem;width:.75rem}.eui-input-radio:not(.cdk-visually-hidden):focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus)!important;outline-offset:0!important;transition:none!important}.eui-input-radio:not(.cdk-visually-hidden):focus-visible:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:0!important;transition:none!important}.eui-input-radio:not(.cdk-visually-hidden) [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:0!important;transition:none!important}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
138
138
|
}
|
139
139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputRadioComponent, decorators: [{
|
140
140
|
type: Component,
|
@@ -166,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
166
166
|
type: HostListener,
|
167
167
|
args: ['keydown.space', ['$event']]
|
168
168
|
}] } });
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1yYWRpby9ldWktaW5wdXQtcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFFUixJQUFJLEVBSUosU0FBUyxFQUNULGlCQUFpQixFQUNqQixZQUFZLEdBR2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBVTVFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxjQUFjO0lBQ3RELElBQ1csU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFXLFNBQVMsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQU1XLEtBQUs7UUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEgsQ0FBQztJQUdELElBR1csY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLGNBQWMsQ0FBQyxLQUFtQjtRQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENB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O3VCQUFDLFNBQVM7Z0JBaUJaLEtBQUs7c0JBSFIsS0FBSztnQkE0R0ksZ0JBQWdCO3NCQUh6QixZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTeEIsY0FBYztzQkFEdkIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnQgfSBmcm9tICdjbGVhdmUuanMvcmVhY3QvcHJvcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnaW5wdXRbZXVpSW5wdXRSYWRpb10nLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlJbnB1dFJhZGlvQ29tcG9uZW50IGV4dGVuZHMgSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2ssIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQgfHwgbnVsbDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc0ludmFsaWQoc3RhdGU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLnNldEludmFsaWQoc3RhdGUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2lzSW52YWxpZDogYm9vbGVhbjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIC8vIFRPRE8gdjE4IC0gY2hlY2sgd2h5IHRoaXMgaXMgYXBwbGllZFxuICAgIC8vIEBJbnB1dCgpXG4gICAgLy8gcHVibGljIHNldCBjbGFzcyhjc3NDbGFzczogc3RyaW5nKSB7XG4gICAgLy8gICAgIHN1cGVyLnN0eWxlQ2xhc3MgPSBjc3NDbGFzcztcbiAgICAvLyB9XG4gICAgcHVibGljIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2V1aS1pbnB1dC1yYWRpbycpLCB0aGlzLl9pc0ludmFsaWQgPyAnZXVpLWlucHV0LXJhZGlvLS1pbnZhbGlkJyA6ICcnXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpIHByb3RlY3RlZCB0eXBlID0gJ3JhZGlvJztcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5jaGVja2VkJylcbiAgICBASW5wdXQoJ2NoZWNrZWQnKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGdldCBkZWZhdWx0Q2hlY2tlZCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdENoZWNrZWQgPyAnJyA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZGVmYXVsdENoZWNrZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0Q2hlY2tlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZGVmYXVsdENoZWNrZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5jaGVja2VkO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gICAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8ICEhdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX3ZhbHVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9yZW5kZXJlciwgaW5qZWN0b3IpO1xuXG4gICAgICAgIC8vIEZpcmVmb3ggZml4OiBzZXQgdHlwZSB0byByYWRpbyBiZWZvcmUgZmlyc3QgbmdEb0NoZWNrIHJ1bnNcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnR5cGUgPSAncmFkaW8nO1xuXG4gICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gaWQgYXR0cmlidXRlIHNldCBvbmVcbiAgICAgICAgaWYgKCF0aGlzLl9pZCkge1xuICAgICAgICAgICAgdGhpcy5zZXRJZEF0dHJpYnV0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVnaXN0ZXIgY29udHJvbCB2YWx1ZUFjY2Vzc29yXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICAvLyBpbiBjYXNlIGNvbnRyb2wgdmFsdWUgaXMgbnVsbCBzZXQgdGhlIGRlZmF1bHQgb25lIChpc0NoZWNrZWQpIGFuZCBzeW5jIENvbnRyb2wgU3RhdGVcbiAgICAgICAgLy8gaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAvLyB0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbHVlKCcnLCB7IGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XG4gICAgICAgIC8vIGNoYW5naW5nIE1vZGVsIEV4cHJlc3Npb24gYWZ0ZXIgdmlldyBjaGVja2VkLCBzbyBkZXRlY3QgY2hhbmdlc1xuICAgICAgICAvLyBUT0RPOiBjaGVjayB3aHkgYWx0aG91Z2ggaXQncyBjaGVja2VkIC5jaGVja2VkIHJldHVybnMgZmFsc2VcbiAgICAgICAgLy8gdGhpcy5uZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodGhpcy5fY2hlY2tlZCk7XG4gICAgICAgIC8vIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gc3RhdHVzID09PSAnSU5WQUxJRCc7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlEYW5nZXIgPSB0aGlzLmlzSW52YWxpZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICAvLyB3aGVuIHJlYWRvbmx5IGNoYW5nZXMgaGlkZSBvdGhlciByYWRpbyAoaW5wdXQrbGFiZWwpXG4gICAgICAgIGlmIChjaGFuZ2VzWydyZWFkb25seSddKSB7XG4gICAgICAgICAgICBjb25zdCByZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzWydyZWFkb25seSddPy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgaWYgKHJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3JlYWRvbmx5JywgbnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyZWFkb25seScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXNbJ2lzSW52YWxpZCddKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlc1snaXNJbnZhbGlkJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZXVpLWlucHV0LXJhZGlvLS1pbnZhbGlkJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2V1aS1pbnB1dC1yYWRpby0taW52YWxpZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBzZXQgY2hlY2tlZCBzdGF0ZSBiYXNlZCBpZiByYWRpbyB2YWx1ZSBtYXRjaGVzIHRoZSBjb250cm9sJ3Mgb25lXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkID0gdGhpcy5fdmFsdWUgPT09IG9iajtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJvdGVjdGVkIG9uQ2hlY2tlZENoYW5nZWQoZXZlbnQ6IENoYW5nZUV2ZW50PGFueT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdENoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShldmVudC50YXJnZXQudmFsdWUgPT09ICdvbicgPyBudWxsIDogZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25TcGFjZVByZXNzZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRJbnZhbGlkKHN0YXRlKTogdm9pZCB7XG4gICAgICAgIC8vIGluIGNhc2UgaXQncyBjb250cm9sbGVkIGJ5IE5nQ29udHJvbCBvdmVycmlkZVxuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCA6IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzdGF0ZSk7XG5cbiAgICAgICAgLy8gc2V0IEJhc2VEaXJlY3RpdmUgQXR0cmlidXRlXG4gICAgICAgIHN1cGVyLmV1aURhbmdlciA9IHRoaXMuX2lzSW52YWxpZDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIG9uQ2hhbmdlID0gKF8pOiB2b2lkID0+IHtcbiAgICAgICAgLyogTm90aGluZyB0byBiZSBEb25lIHNvIGZhciAqL1xuICAgIH07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIG9uVG91Y2hlZCA9IChfKTogdm9pZCA9PiB7XG4gICAgICAgIC8qIE5vdGhpbmcgdG8gYmUgRG9uZSBzbyBmYXIgKi9cbiAgICB9O1xufVxuIl19
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1yYWRpby9ldWktaW5wdXQtcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFFUixJQUFJLEVBSUosU0FBUyxFQUNULGlCQUFpQixFQUNqQixZQUFZLEdBR2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBVTVFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxjQUFjO0lBQ3RELElBQ1csU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFXLFNBQVMsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQU1XLEtBQUs7UUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEgsQ0FBQztJQUdELElBR1csY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLGNBQWMsQ0FBQyxLQUFtQjtRQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENB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O3VCQUFDLFNBQVM7Z0JBaUJaLEtBQUs7c0JBSFIsS0FBSztnQkE0R0ksZ0JBQWdCO3NCQUh6QixZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTeEIsY0FBYztzQkFEdkIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnQgfSBmcm9tICdjbGVhdmUuanMvcmVhY3QvcHJvcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnaW5wdXRbZXVpSW5wdXRSYWRpb10nLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlJbnB1dFJhZGlvQ29tcG9uZW50IGV4dGVuZHMgSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2ssIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQgfHwgbnVsbDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc0ludmFsaWQoc3RhdGU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLnNldEludmFsaWQoc3RhdGUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2lzSW52YWxpZDogYm9vbGVhbjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIC8vIFRPRE8gdjE4IC0gY2hlY2sgd2h5IHRoaXMgaXMgYXBwbGllZFxuICAgIC8vIEBJbnB1dCgpXG4gICAgLy8gcHVibGljIHNldCBjbGFzcyhjc3NDbGFzczogc3RyaW5nKSB7XG4gICAgLy8gICAgIHN1cGVyLnN0eWxlQ2xhc3MgPSBjc3NDbGFzcztcbiAgICAvLyB9XG4gICAgcHVibGljIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2V1aS1pbnB1dC1yYWRpbycpLCB0aGlzLl9pc0ludmFsaWQgPyAnZXVpLWlucHV0LXJhZGlvLS1pbnZhbGlkJyA6ICcnXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpIHByb3RlY3RlZCB0eXBlID0gJ3JhZGlvJztcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5jaGVja2VkJylcbiAgICBASW5wdXQoJ2NoZWNrZWQnKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGdldCBkZWZhdWx0Q2hlY2tlZCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdENoZWNrZWQgPyAnJyA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZGVmYXVsdENoZWNrZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0Q2hlY2tlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZGVmYXVsdENoZWNrZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5jaGVja2VkO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gICAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8ICEhdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX3ZhbHVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9yZW5kZXJlciwgaW5qZWN0b3IpO1xuXG4gICAgICAgIC8vIEZpcmVmb3ggZml4OiBzZXQgdHlwZSB0byByYWRpbyBiZWZvcmUgZmlyc3QgbmdEb0NoZWNrIHJ1bnNcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnR5cGUgPSAncmFkaW8nO1xuXG4gICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gaWQgYXR0cmlidXRlIHNldCBvbmVcbiAgICAgICAgaWYgKCF0aGlzLl9pZCkge1xuICAgICAgICAgICAgdGhpcy5zZXRJZEF0dHJpYnV0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVnaXN0ZXIgY29udHJvbCB2YWx1ZUFjY2Vzc29yXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICAvLyBpbiBjYXNlIGNvbnRyb2wgdmFsdWUgaXMgbnVsbCBzZXQgdGhlIGRlZmF1bHQgb25lIChpc0NoZWNrZWQpIGFuZCBzeW5jIENvbnRyb2wgU3RhdGVcbiAgICAgICAgLy8gaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAvLyB0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbHVlKCcnLCB7IGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XG4gICAgICAgIC8vIGNoYW5naW5nIE1vZGVsIEV4cHJlc3Npb24gYWZ0ZXIgdmlldyBjaGVja2VkLCBzbyBkZXRlY3QgY2hhbmdlc1xuICAgICAgICAvLyBUT0RPOiBjaGVjayB3aHkgYWx0aG91Z2ggaXQncyBjaGVja2VkIC5jaGVja2VkIHJldHVybnMgZmFsc2VcbiAgICAgICAgLy8gdGhpcy5uZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodGhpcy5fY2hlY2tlZCk7XG4gICAgICAgIC8vIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gc3RhdHVzID09PSAnSU5WQUxJRCc7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlEYW5nZXIgPSB0aGlzLmlzSW52YWxpZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICAvLyB3aGVuIHJlYWRvbmx5IGNoYW5nZXMgaGlkZSBvdGhlciByYWRpbyAoaW5wdXQrbGFiZWwpXG4gICAgICAgIGlmIChjaGFuZ2VzWydyZWFkb25seSddKSB7XG4gICAgICAgICAgICBjb25zdCByZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzWydyZWFkb25seSddPy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgaWYgKHJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3JlYWRvbmx5JywgbnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyZWFkb25seScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXNbJ2lzSW52YWxpZCddKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlc1snaXNJbnZhbGlkJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZXVpLWlucHV0LXJhZGlvLS1pbnZhbGlkJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2V1aS1pbnB1dC1yYWRpby0taW52YWxpZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBzZXQgY2hlY2tlZCBzdGF0ZSBiYXNlZCBpZiByYWRpbyB2YWx1ZSBtYXRjaGVzIHRoZSBjb250cm9sJ3Mgb25lXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkID0gdGhpcy5fdmFsdWUgPT09IG9iajtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJvdGVjdGVkIG9uQ2hlY2tlZENoYW5nZWQoZXZlbnQ6IENoYW5nZUV2ZW50PGFueT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdENoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShldmVudC50YXJnZXQudmFsdWUgPT09ICdvbicgPyBudWxsIDogZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25TcGFjZVByZXNzZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRJbnZhbGlkKHN0YXRlKTogdm9pZCB7XG4gICAgICAgIC8vIGluIGNhc2UgaXQncyBjb250cm9sbGVkIGJ5IE5nQ29udHJvbCBvdmVycmlkZVxuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCA6IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzdGF0ZSk7XG5cbiAgICAgICAgLy8gc2V0IEJhc2VEaXJlY3RpdmUgQXR0cmlidXRlXG4gICAgICAgIHN1cGVyLmV1aURhbmdlciA9IHRoaXMuX2lzSW52YWxpZDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIG9uQ2hhbmdlID0gKF8pOiB2b2lkID0+IHtcbiAgICAgICAgLyogTm90aGluZyB0byBiZSBEb25lIHNvIGZhciAqL1xuICAgIH07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIG9uVG91Y2hlZCA9IChfKTogdm9pZCA9PiB7XG4gICAgICAgIC8qIE5vdGhpbmcgdG8gYmUgRG9uZSBzbyBmYXIgKi9cbiAgICB9O1xufVxuIl19
|
@@ -3,9 +3,9 @@ import { CommonModule } from '@angular/common';
|
|
3
3
|
import { EuiInputRadioComponent } from './eui-input-radio.component';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export class EuiInputRadioModule {
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputRadioModule, declarations: [EuiInputRadioComponent], imports: [CommonModule], exports: [EuiInputRadioComponent] }); }
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputRadioModule, imports: [CommonModule] }); }
|
9
9
|
}
|
10
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EuiInputRadioModule, decorators: [{
|
11
11
|
type: NgModule,
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
|
|
15
15
|
exports: [EuiInputRadioComponent],
|
16
16
|
}]
|
17
17
|
}] });
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LXJhZGlvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1yYWRpby9ldWktaW5wdXQtcmFkaW8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU9yRSxNQUFNLE9BQU8sbUJBQW1CO3FIQUFuQixtQkFBbUI7c0hBQW5CLG1CQUFtQixpQkFIYixzQkFBc0IsYUFEM0IsWUFBWSxhQUVaLHNCQUFzQjtzSEFFdkIsbUJBQW1CLFlBSmxCLFlBQVk7O2tHQUliLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEV1aUlucHV0UmFkaW9Db21wb25lbnQgfSBmcm9tICcuL2V1aS1pbnB1dC1yYWRpby5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0V1aUlucHV0UmFkaW9Db21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtFdWlJbnB1dFJhZGlvQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpSW5wdXRSYWRpb01vZHVsZSB7fVxuIl19
|