@fundamental-ngx/platform 0.48.0-rc.2 → 0.48.0-rc.21
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/approval-flow/helpers/index.d.ts +1 -1
- package/approval-flow/index.d.ts +2 -2
- package/approval-flow/interfaces/approval-process.d.ts +1 -1
- package/approval-flow/interfaces/index.d.ts +1 -1
- package/approval-flow/interfaces/send-reminders-data.d.ts +1 -1
- package/button/button.component.d.ts +4 -1
- package/button/index.d.ts +1 -1
- package/dynamic-page/index.d.ts +5 -5
- package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-graph.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow.module.mjs +1 -1
- package/esm2022/approval-flow/fundamental-ngx-platform-approval-flow.mjs +1 -1
- package/esm2022/approval-flow/helpers/index.mjs +1 -1
- package/esm2022/approval-flow/index.mjs +3 -3
- package/esm2022/approval-flow/interfaces/approval-node.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-process.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-status.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-team.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-user.mjs +1 -1
- package/esm2022/approval-flow/interfaces/index.mjs +2 -2
- package/esm2022/approval-flow/interfaces/send-reminders-data.mjs +1 -1
- package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +1 -1
- package/esm2022/button/button.component.mjs +8 -3
- package/esm2022/button/button.module.mjs +1 -1
- package/esm2022/button/fundamental-ngx-platform-button.mjs +1 -1
- package/esm2022/button/index.mjs +2 -2
- package/esm2022/dynamic-page/constants.mjs +1 -1
- package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +1 -1
- package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.config.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.module.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.service.mjs +1 -1
- package/esm2022/dynamic-page/fundamental-ngx-platform-dynamic-page.mjs +1 -1
- package/esm2022/dynamic-page/index.mjs +6 -6
- package/esm2022/dynamic-page/utils.mjs +1 -1
- package/esm2022/feed-input/feed-input.component.mjs +2 -2
- package/esm2022/feed-input/feed-input.module.mjs +1 -1
- package/esm2022/feed-input/fundamental-ngx-platform-feed-input.mjs +1 -1
- package/esm2022/feed-input/index.mjs +2 -2
- package/esm2022/form/auto-complete/auto-complete.directive.mjs +2 -2
- package/esm2022/form/auto-complete/auto-complete.module.mjs +1 -1
- package/esm2022/form/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/form/checkbox/checkbox.module.mjs +1 -1
- package/esm2022/form/checkbox-group/checkbox-group.component.mjs +1 -1
- package/esm2022/form/checkbox-group/checkbox-group.module.mjs +1 -1
- package/esm2022/form/combobox/combobox/combobox.component.mjs +13 -4
- package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +1 -1
- package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +1 -1
- package/esm2022/form/combobox/combobox.config.mjs +2 -2
- package/esm2022/form/combobox/combobox.interface.mjs +1 -1
- package/esm2022/form/combobox/combobox.module.mjs +1 -1
- package/esm2022/form/combobox/commons/base-combobox.mjs +1 -1
- package/esm2022/form/combobox/directives/combobox-item.directive.mjs +1 -1
- package/esm2022/form/combobox/index.mjs +1 -1
- package/esm2022/form/date-picker/date-picker.component.mjs +4 -5
- package/esm2022/form/date-picker/date-picker.module.mjs +1 -1
- package/esm2022/form/datetime-picker/datetime-picker.component.mjs +3 -3
- package/esm2022/form/datetime-picker/datetime-picker.module.mjs +1 -1
- package/esm2022/form/datetime-picker/errors.mjs +1 -1
- package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +1 -1
- package/esm2022/form/form-generator/config/default-components-list.mjs +6 -6
- package/esm2022/form/form-generator/config/default-form-generator-hint-options.mjs +1 -1
- package/esm2022/form/form-generator/config/default-validation-errors.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +2 -2
- package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +1 -1
- package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +1 -1
- package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +3 -3
- package/esm2022/form/form-generator/dynamic-form-control.mjs +1 -1
- package/esm2022/form/form-generator/fdp-form-generator.module.mjs +14 -14
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +1 -1
- package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +1 -1
- package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +1 -1
- package/esm2022/form/form-generator/form-generator.service.mjs +3 -3
- package/esm2022/form/form-generator/form-generator.tokens.mjs +1 -1
- package/esm2022/form/form-generator/helpers.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/dynamic-abstract-control.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/dynamic-form-group.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/form-component-definition.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/form-generator-module-config.mjs +1 -1
- package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +2 -2
- package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +1 -1
- package/esm2022/form/form-generator/providers/providers.mjs +1 -1
- package/esm2022/form/form-group/config/default-form-field-hint-options.mjs +1 -1
- package/esm2022/form/form-group/constants.mjs +1 -1
- package/esm2022/form/form-group/fdp-form.module.mjs +7 -7
- package/esm2022/form/form-group/fdp-form.tokens.mjs +1 -1
- package/esm2022/form/form-group/form-field/form-field.component.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/tokens.mjs +1 -1
- package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +1 -1
- package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +1 -1
- package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +1 -1
- package/esm2022/form/form-group/form-group.component.mjs +1 -1
- package/esm2022/form/form-group/helpers.mjs +1 -1
- package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +1 -1
- package/esm2022/form/form-group/services/form-field-layout.service.mjs +3 -3
- package/esm2022/form/form-helpers.mjs +3 -3
- package/esm2022/form/fundamental-ngx-platform-form.mjs +1 -1
- package/esm2022/form/helpers.mjs +1 -1
- package/esm2022/form/index.mjs +1 -1
- package/esm2022/form/input/fdp-input.module.mjs +1 -1
- package/esm2022/form/input/input.component.mjs +1 -1
- package/esm2022/form/input-group/addon-body.component.mjs +2 -2
- package/esm2022/form/input-group/addon.component.mjs +2 -2
- package/esm2022/form/input-group/constants.mjs +1 -1
- package/esm2022/form/input-group/input-group.component.mjs +1 -1
- package/esm2022/form/input-group/input-group.config.mjs +1 -1
- package/esm2022/form/input-group/input-group.module.mjs +3 -3
- package/esm2022/form/input-group/input.component.mjs +2 -2
- package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +1 -1
- package/esm2022/form/models/field.model.mjs +1 -1
- package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +2 -2
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox.config.mjs +2 -2
- package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox.module.mjs +1 -1
- package/esm2022/form/multi-input/base-multi-input.mjs +1 -1
- package/esm2022/form/multi-input/index.mjs +2 -2
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +1 -1
- package/esm2022/form/multi-input/multi-input.component.mjs +2 -2
- package/esm2022/form/multi-input/multi-input.config.mjs +2 -2
- package/esm2022/form/multi-input/multi-input.interface.mjs +1 -1
- package/esm2022/form/multi-input/multi-input.module.mjs +1 -1
- package/esm2022/form/radio-group/radio/radio.component.mjs +1 -1
- package/esm2022/form/radio-group/radio-group.component.mjs +1 -1
- package/esm2022/form/radio-group/radio-group.module.mjs +1 -1
- package/esm2022/form/select/commons/base-select.mjs +7 -2
- package/esm2022/form/select/models/select.models.mjs +1 -1
- package/esm2022/form/select/select/select.component.mjs +3 -3
- package/esm2022/form/select/select.config.mjs +1 -1
- package/esm2022/form/select/select.module.mjs +1 -1
- package/esm2022/form/step-input/base.step-input.mjs +5 -5
- package/esm2022/form/step-input/number/number-step-input.component.mjs +1 -1
- package/esm2022/form/step-input/step-input-action-button.mjs +2 -2
- package/esm2022/form/step-input/step-input-control.directive.mjs +2 -2
- package/esm2022/form/step-input/step-input-decrement.directive.mjs +1 -1
- package/esm2022/form/step-input/step-input-increment.directive.mjs +1 -1
- package/esm2022/form/step-input/step-input.config.mjs +1 -1
- package/esm2022/form/step-input/step-input.module.mjs +3 -3
- package/esm2022/form/step-input/step-input.util.mjs +1 -1
- package/esm2022/form/switch/switch/index.mjs +1 -1
- package/esm2022/form/switch/switch/switch.component.mjs +1 -1
- package/esm2022/form/switch/switch/switch.config.mjs +1 -1
- package/esm2022/form/switch/switch.module.mjs +1 -1
- package/esm2022/form/text-area/text-area.component.mjs +1 -1
- package/esm2022/form/text-area/text-area.config.mjs +1 -1
- package/esm2022/form/text-area/text-area.module.mjs +1 -1
- package/esm2022/form/time-picker/time-picker.component.mjs +1 -1
- package/esm2022/form/time-picker/time-picker.module.mjs +1 -1
- package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/index.mjs +1 -1
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +3 -3
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +1 -1
- package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +3 -3
- package/esm2022/icon-tab-bar/constants.mjs +1 -1
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +1 -1
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +1 -1
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +1 -1
- package/esm2022/icon-tab-bar/fundamental-ngx-platform-icon-tab-bar.mjs +1 -1
- package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +1 -1
- package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +1 -1
- package/esm2022/icon-tab-bar/index.mjs +8 -8
- package/esm2022/icon-tab-bar/interfaces/icon-tab-bar-item.interface.mjs +1 -1
- package/esm2022/icon-tab-bar/interfaces/tab-color-associations.interface.mjs +1 -1
- package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
- package/esm2022/icon-tab-bar/types.mjs +1 -1
- package/esm2022/info-label/fundamental-ngx-platform-info-label.mjs +1 -1
- package/esm2022/info-label/index.mjs +1 -1
- package/esm2022/info-label/info-label.component.mjs +1 -1
- package/esm2022/info-label/info-label.module.mjs +1 -1
- package/esm2022/link/fundamental-ngx-platform-link.mjs +1 -1
- package/esm2022/link/index.mjs +1 -1
- package/esm2022/link/link.component.mjs +3 -3
- package/esm2022/link/link.module.mjs +1 -1
- package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
- package/esm2022/list/action-list-item/action-list-item.module.mjs +1 -1
- package/esm2022/list/base-list-item.mjs +2 -2
- package/esm2022/list/display-list-item/display-list-item.component.mjs +3 -3
- package/esm2022/list/display-list-item/display-list-item.module.mjs +1 -1
- package/esm2022/list/fdpListComponent.token.mjs +1 -1
- package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
- package/esm2022/list/fundamental-ngx-platform-list.mjs +1 -1
- package/esm2022/list/index.mjs +13 -13
- package/esm2022/list/list-group-footer.component.mjs +3 -3
- package/esm2022/list/list-group-header.component.mjs +5 -5
- package/esm2022/list/list.component.mjs +5 -5
- package/esm2022/list/list.config.mjs +1 -1
- package/esm2022/list/list.module.mjs +1 -1
- package/esm2022/list/load-more-content.directive.mjs +1 -1
- package/esm2022/list/models/list.mjs +1 -1
- package/esm2022/list/object-list-item/object-list-item-row.component.mjs +1 -1
- package/esm2022/list/object-list-item/object-list-item.component.mjs +3 -3
- package/esm2022/list/object-list-item/object-list-item.module.mjs +1 -1
- package/esm2022/list/standard-list-item/standard-list-item.component.mjs +3 -3
- package/esm2022/list/standard-list-item/standard-list-item.module.mjs +1 -1
- package/esm2022/menu/fundamental-ngx-platform-menu.mjs +1 -1
- package/esm2022/menu/index.mjs +3 -3
- package/esm2022/menu/menu-item.component.mjs +1 -1
- package/esm2022/menu/menu-trigger.directive.mjs +1 -1
- package/esm2022/menu/menu.component.mjs +1 -1
- package/esm2022/menu/menu.module.mjs +1 -1
- package/esm2022/menu-button/fundamental-ngx-platform-menu-button.mjs +1 -1
- package/esm2022/menu-button/index.mjs +2 -2
- package/esm2022/menu-button/menu-button.component.mjs +8 -3
- package/esm2022/menu-button/menu-button.module.mjs +1 -1
- package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +1 -1
- package/esm2022/message-popover/components/message-view/message-view.component.mjs +2 -2
- package/esm2022/message-popover/default-config.mjs +1 -1
- package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +1 -1
- package/esm2022/message-popover/fundamental-ngx-platform-message-popover.mjs +1 -1
- package/esm2022/message-popover/index.mjs +5 -5
- package/esm2022/message-popover/message-popover.component.mjs +2 -2
- package/esm2022/message-popover/models/message-popover-entry.interface.mjs +1 -1
- package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
- package/esm2022/message-popover/models/message-popover.interface.mjs +1 -1
- package/esm2022/message-popover/platform-message-popover.module.mjs +3 -3
- package/esm2022/message-popover/utils.mjs +1 -1
- package/esm2022/object-attribute/fundamental-ngx-platform-object-attribute.mjs +1 -1
- package/esm2022/object-attribute/index.mjs +1 -1
- package/esm2022/object-marker/fundamental-ngx-platform-object-marker.mjs +1 -1
- package/esm2022/object-marker/index.mjs +1 -1
- package/esm2022/object-marker/object-marker.component.mjs +8 -3
- package/esm2022/object-marker/object-marker.module.mjs +1 -1
- package/esm2022/object-status/fundamental-ngx-platform-object-status.mjs +1 -1
- package/esm2022/object-status/index.mjs +1 -1
- package/esm2022/object-status/object-status.component.mjs +8 -3
- package/esm2022/object-status/object-status.module.mjs +1 -1
- package/esm2022/page-footer/fundamental-ngx-platform-page-footer.mjs +1 -1
- package/esm2022/page-footer/index.mjs +1 -1
- package/esm2022/page-footer/page-footer.component.mjs +1 -1
- package/esm2022/page-footer/page-footer.module.mjs +1 -1
- package/esm2022/panel/fundamental-ngx-platform-panel.mjs +1 -1
- package/esm2022/panel/index.mjs +3 -3
- package/esm2022/panel/panel-actions.component.mjs +1 -1
- package/esm2022/panel/panel-content/panel-content.component.mjs +1 -1
- package/esm2022/panel/panel.component.mjs +1 -1
- package/esm2022/panel/panel.config.mjs +1 -1
- package/esm2022/panel/panel.module.mjs +1 -1
- package/esm2022/search-field/fundamental-ngx-platform-search-field.mjs +1 -1
- package/esm2022/search-field/index.mjs +2 -2
- package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +1 -1
- package/esm2022/search-field/search-field-mobile/search-field-mobile.interface.mjs +1 -1
- package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +1 -1
- package/esm2022/search-field/search-field.component.mjs +2 -2
- package/esm2022/search-field/search-field.module.mjs +1 -1
- package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +1 -1
- package/esm2022/settings-generator/default-config.mjs +1 -1
- package/esm2022/settings-generator/fundamental-ngx-platform-settings-generator.mjs +1 -1
- package/esm2022/settings-generator/index.mjs +5 -5
- package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +2 -2
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +1 -1
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
- package/esm2022/settings-generator/models/settings-config.model.mjs +1 -1
- package/esm2022/settings-generator/models/settings-generator.model.mjs +1 -1
- package/esm2022/settings-generator/models/settings.model.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +1 -1
- package/esm2022/settings-generator/settings-generator.component.mjs +1 -1
- package/esm2022/settings-generator/settings-generator.module.mjs +1 -1
- package/esm2022/settings-generator/settings-generator.service.mjs +2 -2
- package/esm2022/settings-generator/tokens.mjs +1 -1
- package/esm2022/shared/base.mjs +1 -1
- package/esm2022/shared/domain/array-data-source.mjs +2 -2
- package/esm2022/shared/domain/base-data-provider.mjs +3 -3
- package/esm2022/shared/domain/data-model.mjs +1 -1
- package/esm2022/shared/domain/data-source.mjs +1 -1
- package/esm2022/shared/domain/observable-data-source.mjs +2 -2
- package/esm2022/shared/form/base.input.mjs +1 -1
- package/esm2022/shared/form/collection-base.input.mjs +4 -4
- package/esm2022/shared/form/form-error.mjs +1 -1
- package/esm2022/shared/form/form-field.mjs +1 -1
- package/esm2022/shared/form/form-options.mjs +1 -1
- package/esm2022/shared/form/hint-options.mjs +1 -1
- package/esm2022/shared/form/inline-layout-collection-base.input.mjs +3 -3
- package/esm2022/shared/fundamental-ngx-platform-shared.mjs +1 -1
- package/esm2022/shared/index.mjs +4 -4
- package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +1 -1
- package/esm2022/shared/pipes/pipe.module.mjs +1 -1
- package/esm2022/shared/platform.config.mjs +1 -1
- package/esm2022/shared/preset-management/preset-managed-component.interface.mjs +1 -1
- package/esm2022/shared/preset-management/preset-management.token.mjs +1 -1
- package/esm2022/shared/testing/event-objects.mjs +1 -1
- package/esm2022/shared/utils/lang.mjs +1 -1
- package/esm2022/slider/fundamental-ngx-platform-slider.mjs +1 -1
- package/esm2022/slider/index.mjs +1 -1
- package/esm2022/slider/slider.component.mjs +2 -2
- package/esm2022/slider/slider.module.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +2 -2
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/data-provider.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
- package/esm2022/smart-filter-bar/constants.mjs +1 -1
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +1 -1
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +1 -1
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +1 -1
- package/esm2022/smart-filter-bar/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
- package/esm2022/smart-filter-bar/helpers.mjs +1 -1
- package/esm2022/smart-filter-bar/index.mjs +8 -8
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-change.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-condition.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-definition.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-filter-item.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-visibility-category.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/strategy-labels.type.mjs +1 -1
- package/esm2022/smart-filter-bar/providers/smart-filter-bar.provider.mjs +1 -1
- package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +1 -1
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +2 -2
- package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +1 -1
- package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +2 -2
- package/esm2022/split-menu-button/fundamental-ngx-platform-split-menu-button.mjs +1 -1
- package/esm2022/split-menu-button/index.mjs +1 -1
- package/esm2022/split-menu-button/split-menu-button.component.mjs +8 -3
- package/esm2022/split-menu-button/split-menu-button.module.mjs +1 -1
- package/esm2022/table/components/index.mjs +9 -9
- package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +1 -1
- package/esm2022/table/components/reset-button/reset-button.component.mjs +1 -1
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +2 -2
- package/esm2022/table/components/table-column/table-column.component.mjs +1 -1
- package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +1 -1
- package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +1 -1
- package/esm2022/table/components/table-group-row/table-group-row.component.mjs +1 -1
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +2 -2
- package/esm2022/table/components/table-header-row/table-header-row.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.model.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +1 -1
- package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +1 -1
- package/esm2022/table/components/table-row/table-row.component.mjs +6 -4
- package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +1 -1
- package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +1 -1
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +2 -2
- package/esm2022/table/components/table-toolbar/table-toolbar.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/constants.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters-active-step.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/index.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +1 -1
- package/esm2022/table/fundamental-ngx-platform-table.mjs +1 -1
- package/esm2022/table/index.mjs +15 -15
- package/esm2022/table/table.component.mjs +14 -10
- package/esm2022/table/table.module.mjs +1 -1
- package/esm2022/table-helpers/constants/index.mjs +1 -1
- package/esm2022/table-helpers/constants/tokens.mjs +1 -1
- package/esm2022/table-helpers/directives/index.mjs +7 -7
- package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +2 -2
- package/esm2022/table-helpers/directives/table-cell.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -2
- package/esm2022/table-helpers/directives/table-draggable.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +2 -2
- package/esm2022/table-helpers/directives/table-header.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
- package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +2 -2
- package/esm2022/table-helpers/domain/array-data-source.mjs +3 -3
- package/esm2022/table-helpers/domain/data-source-parser.class.mjs +1 -1
- package/esm2022/table-helpers/domain/index.mjs +4 -4
- package/esm2022/table-helpers/domain/observable-data-source.mjs +3 -3
- package/esm2022/table-helpers/domain/table-data-provider.mjs +1 -1
- package/esm2022/table-helpers/domain/table-data-source.mjs +1 -1
- package/esm2022/table-helpers/enums/collection-filter.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/column-align.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/filter-type.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/index.mjs +4 -4
- package/esm2022/table-helpers/enums/row-type.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/selection-mode.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/sort-direction.enum.mjs +1 -1
- package/esm2022/table-helpers/fundamental-ngx-platform-table-helpers.mjs +1 -1
- package/esm2022/table-helpers/helpers.mjs +6 -3
- package/esm2022/table-helpers/index.mjs +9 -9
- package/esm2022/table-helpers/interfaces/collection-filter.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-group.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-page.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-sort.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-state.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/column-responsive-state.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/index.mjs +3 -4
- package/esm2022/table-helpers/interfaces/selection-value.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/table-state.interface.mjs +1 -1
- package/esm2022/table-helpers/models/column-freeze-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/columns-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/data-source.type.mjs +1 -1
- package/esm2022/table-helpers/models/directives.mjs +1 -1
- package/esm2022/table-helpers/models/dnd.mjs +1 -1
- package/esm2022/table-helpers/models/filter-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/group-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/index.mjs +15 -15
- package/esm2022/table-helpers/models/page-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/row-comparator.model.mjs +1 -1
- package/esm2022/table-helpers/models/save-rows-event.interface.mjs +1 -1
- package/esm2022/table-helpers/models/search-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/selection-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/sort-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-dialog-common-data.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-item.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-managed-preset.mjs +1 -1
- package/esm2022/table-helpers/models/table-row-activate-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-row-toggle-open-state-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-row.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-rows-rearrange-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/tree-table.model.mjs +1 -1
- package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/index.mjs +1 -1
- package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +1 -1
- package/esm2022/table-helpers/services/table-column-resize.service.mjs +3 -4
- package/esm2022/table-helpers/services/table-responsive.service.mjs +1 -1
- package/esm2022/table-helpers/services/table-row.service.mjs +1 -1
- package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +1 -1
- package/esm2022/table-helpers/services/table.service.mjs +1 -1
- package/esm2022/table-helpers/table-cell.class.mjs +1 -1
- package/esm2022/table-helpers/table-column.mjs +1 -1
- package/esm2022/table-helpers/table-helpers.module.mjs +2 -2
- package/esm2022/table-helpers/table.mjs +1 -1
- package/esm2022/table-helpers/utils.mjs +1 -1
- package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +1 -1
- package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -2
- package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +26 -6
- package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +7 -3
- package/esm2022/value-help-dialog/constans/condition-display.function.mjs +2 -2
- package/esm2022/value-help-dialog/constans/index.mjs +1 -1
- package/esm2022/value-help-dialog/constans/variables.mjs +1 -1
- package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +1 -1
- package/esm2022/value-help-dialog/directives/value-help-column-def.directive.mjs +24 -0
- package/esm2022/value-help-dialog/directives/value-help-filter-def.directive.mjs +22 -0
- package/esm2022/value-help-dialog/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/esm2022/value-help-dialog/index.mjs +4 -3
- package/esm2022/value-help-dialog/models/index.mjs +2 -2
- package/esm2022/value-help-dialog/models/vhd-component.model.mjs +3 -0
- package/esm2022/value-help-dialog/models/vhd-data.source.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-filter-rule.model.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-filter.model.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-strategy.enum.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-tab-type.enum.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-table-selection.type.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-type-condition.enum.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-value.model.mjs +1 -1
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +26 -6
- package/esm2022/value-help-dialog/value-help-dialog.module.mjs +1 -1
- package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +1 -1
- package/esm2022/variant-management/components/manage-variants-dialog/data-provider.mjs +1 -1
- package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +2 -2
- package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +1 -1
- package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +1 -1
- package/esm2022/variant-management/fundamental-ngx-platform-variant-management.mjs +1 -1
- package/esm2022/variant-management/index.mjs +4 -4
- package/esm2022/variant-management/models/save-dialog.model.mjs +1 -1
- package/esm2022/variant-management/models/variant-management.mjs +1 -1
- package/esm2022/variant-management/models/variant.interface.mjs +1 -1
- package/esm2022/variant-management/tokens.mjs +1 -1
- package/esm2022/variant-management/variant-item.class.mjs +1 -1
- package/esm2022/variant-management/variant-management.component.mjs +2 -2
- package/esm2022/variant-management/variant-management.module.mjs +1 -1
- package/esm2022/wizard-generator/base-wizard-generator.mjs +2 -2
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +2 -2
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +2 -2
- package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +1 -1
- package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +1 -1
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +1 -1
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +1 -1
- package/esm2022/wizard-generator/fundamental-ngx-platform-wizard-generator.mjs +1 -1
- package/esm2022/wizard-generator/index.mjs +10 -10
- package/esm2022/wizard-generator/interfaces/wizard-dialog-data.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-form-group.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-forms.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-item.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-summary-item.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-navigation-buttons.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-step.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-title.interface.mjs +1 -1
- package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +1 -1
- package/esm2022/wizard-generator/wizard-generator.module.mjs +8 -8
- package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
- package/feed-input/index.d.ts +1 -1
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +889 -889
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +8 -3
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +2729 -2716
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +9 -9
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +23 -23
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -3
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +353 -353
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-attribute.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-status.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-panel.mjs +10 -10
- package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +13 -13
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-shared.mjs +62 -62
- package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +20 -20
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +2925 -2922
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +365 -360
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +182 -98
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +177 -177
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +41 -41
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/form/combobox/combobox.config.d.ts +1 -1
- package/form/date-picker/date-picker.component.d.ts +5 -5
- package/form/datetime-picker/datetime-picker.component.d.ts +3 -3
- package/form/form-generator/dynamic-form-control.directive.d.ts +3 -3
- package/form/form-generator/form-generator.service.d.ts +2 -2
- package/form/form-group/pipes/field-group-row-value.pipe.d.ts +1 -1
- package/form/form-group/services/form-field-layout.service.d.ts +1 -1
- package/form/form-helpers.d.ts +1 -1
- package/form/input-group/addon.component.d.ts +1 -1
- package/form/multi-combobox/multi-combobox.config.d.ts +1 -1
- package/form/multi-input/index.d.ts +1 -1
- package/form/multi-input/multi-input.config.d.ts +1 -1
- package/form/select/commons/base-select.d.ts +4 -1
- package/form/step-input/base.step-input.d.ts +4 -5
- package/fundamental-ngx-platform-v0.48.0-rc.21.tgz +0 -0
- package/icon-tab-bar/index.d.ts +7 -7
- package/icon-tab-bar/interfaces/icon-tab-bar-item.interface.d.ts +1 -1
- package/list/index.d.ts +12 -12
- package/menu/index.d.ts +2 -2
- package/menu-button/index.d.ts +1 -1
- package/menu-button/menu-button.component.d.ts +5 -2
- package/message-popover/index.d.ts +4 -4
- package/message-popover/models/message-popover-entry.interface.d.ts +1 -1
- package/message-popover/models/message-popover.interface.d.ts +1 -1
- package/message-popover/utils.d.ts +1 -1
- package/object-marker/object-marker.component.d.ts +4 -1
- package/object-status/object-status.component.d.ts +4 -1
- package/package.json +4 -4
- package/panel/index.d.ts +2 -2
- package/schematics/ng-add/index.js +1 -1
- package/search-field/index.d.ts +1 -1
- package/settings-generator/index.d.ts +4 -4
- package/settings-generator/layouts/base-settings-generator-layout.d.ts +1 -1
- package/settings-generator/settings-generator.service.d.ts +2 -2
- package/shared/domain/array-data-source.d.ts +0 -3
- package/shared/form/collection-base.input.d.ts +1 -1
- package/shared/form/form-field.d.ts +2 -2
- package/shared/form/hint-options.d.ts +2 -2
- package/shared/form/inline-layout-collection-base.input.d.ts +1 -1
- package/shared/index.d.ts +3 -3
- package/smart-filter-bar/index.d.ts +7 -7
- package/smart-filter-bar/interfaces/smart-filter-bar-condition.d.ts +2 -2
- package/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.d.ts +1 -1
- package/smart-filter-bar/interfaces/smart-filter-bar-field-definition.d.ts +1 -1
- package/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.d.ts +1 -1
- package/smart-filter-bar/smart-filter-bar.service.d.ts +2 -2
- package/split-menu-button/split-menu-button.component.d.ts +5 -2
- package/table/components/index.d.ts +8 -8
- package/table/components/table-view-settings-dialog/index.d.ts +2 -2
- package/table/index.d.ts +14 -14
- package/table/table.component.d.ts +4 -0
- package/table-helpers/constants/index.d.ts +1 -1
- package/table-helpers/directives/index.d.ts +6 -6
- package/table-helpers/directives/platform-table-column-responsive.directive.d.ts +1 -1
- package/table-helpers/directives/table-scrollable.directive.d.ts +1 -1
- package/table-helpers/domain/array-data-source.d.ts +3 -3
- package/table-helpers/domain/index.d.ts +3 -3
- package/table-helpers/domain/observable-data-source.d.ts +3 -3
- package/table-helpers/enums/index.d.ts +3 -3
- package/table-helpers/helpers.d.ts +1 -1
- package/table-helpers/index.d.ts +8 -8
- package/table-helpers/interfaces/collection-filter.interface.d.ts +1 -1
- package/table-helpers/interfaces/collection-state.interface.d.ts +1 -1
- package/table-helpers/interfaces/index.d.ts +2 -3
- package/table-helpers/models/filter-change-event.model.d.ts +1 -1
- package/table-helpers/models/group-change-event.model.d.ts +1 -1
- package/table-helpers/models/index.d.ts +14 -14
- package/table-helpers/models/sort-change-event.model.d.ts +1 -1
- package/table-helpers/pipes/selection-cell-styles.pipe.d.ts +1 -1
- package/table-helpers/table.d.ts +1 -0
- package/value-help-dialog/components/select-tab/select-tab.component.d.ts +9 -2
- package/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.d.ts +5 -1
- package/value-help-dialog/constans/condition-display.function.d.ts +1 -1
- package/value-help-dialog/directives/value-help-column-def.directive.d.ts +17 -0
- package/value-help-dialog/directives/value-help-filter-def.directive.d.ts +15 -0
- package/value-help-dialog/index.d.ts +3 -2
- package/value-help-dialog/models/index.d.ts +1 -1
- package/value-help-dialog/models/vhd-component.model.d.ts +5 -0
- package/value-help-dialog/models/vhd-filter.model.d.ts +3 -0
- package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +8 -6
- package/variant-management/index.d.ts +3 -3
- package/variant-management/models/variant-management.d.ts +1 -1
- package/wizard-generator/base-wizard-generator.d.ts +1 -1
- package/wizard-generator/index.d.ts +9 -9
- package/wizard-generator/interfaces/wizard-generator-form-group.interface.d.ts +1 -1
- package/wizard-generator/interfaces/wizard-generator-item.interface.d.ts +1 -1
- package/wizard-generator/interfaces/wizard-step.interface.d.ts +2 -2
- package/wizard-generator/wizard-generator.service.d.ts +1 -1
- package/fundamental-ngx-platform-v0.48.0-rc.2.tgz +0 -0
- package/schematics/ng-add/index.ts +0 -64
- package/schematics/ng-add/schema.ts +0 -3
- package/schematics/utils/package-utils.ts +0 -104
|
@@ -375,4 +375,4 @@ function getGraphColumnsFromPaths(columns) {
|
|
|
375
375
|
});
|
|
376
376
|
return graphColumns;
|
|
377
377
|
}
|
|
378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1ncmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9hcHByb3ZhbC1mbG93L2FwcHJvdmFsLWZsb3ctZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNILHlCQUF5QixFQUN6QixhQUFhLEVBQ2IsY0FBYyxFQUNkLHlCQUF5QixFQUN6QixjQUFjLEVBQ2QsYUFBYSxFQUNiLHNCQUFzQixFQUN6QixNQUFNLFdBQVcsQ0FBQztBQWlCbkI7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBMEI7SUFDaEUsTUFBTSxLQUFLLEdBQXNCLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFFaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDZixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsOEVBQThFLENBQUMsQ0FBQztRQUM3RixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFD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LEVBQUUsT0FBOEI7SUFDOUYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNqQixJQUFJLHNCQUFzQixDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDdEMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCwyRUFBMkU7QUFDM0UsU0FBUyx3QkFBd0IsQ0FBQyxPQUE4QjtJQUM1RCxNQUFNLFlBQVksR0FBMEIsRUFBRSxDQUFDO0lBRS9DLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDOUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFbEQsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsS0FBSztZQUNMLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqRSxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHByb3ZhbEdyYXBoTm9kZSwgQXBwcm92YWxHcmFwaE5vZGVNZXRhZGF0YSwgQXBwcm92YWxOb2RlLCBBcHByb3ZhbFN0YXR1cyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7XG4gICAgZ2V0QmxhbmtBcHByb3ZhbEdyYXBoTm9kZSxcbiAgICBnZXRHcmFwaE5vZGVzLFxuICAgIGdldFBhcmVudE5vZGVzLFxuICAgIGdldFNwYWNlQXBwcm92YWxHcmFwaE5vZGUsXG4gICAgaXNOb2RlQXBwcm92ZWQsXG4gICAgaXNOb2RlU3RhcnRlZCxcbiAgICBpc05vZGVUYXJnZXRzSW5jbHVkZUlkXG59IGZyb20gJy4vaGVscGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwcm92YWxGbG93R3JhcGgge1xuICAgIGNvbHVtbnM6IEFwcHJvdmFsR3JhcGhDb2x1bW5bXTtcbiAgICBlcnJvcnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmFsR3JhcGhDb2x1bW4ge1xuICAgIG5vZGVzOiBBcHByb3ZhbEdyYXBoTm9kZVtdO1xuICAgIGluZGV4PzogbnVtYmVyO1xuICAgIGFsbE5vZGVzQXBwcm92ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmFsR3JhcGhNZXRhZGF0YSB7XG4gICAgW2tleTogc3RyaW5nXTogQXBwcm92YWxHcmFwaE5vZGVNZXRhZGF0YTtcbn1cblxuLyoqIEFsZ29yaXRobSBpbiBzaG9ydDpcbiAqIDEuIEZpbmQgYWxsIHBvc3NpYmxlIHBhdGhzIChsb25nZXN0IHBhdGggbGVuZ3RoID0gYW1vdW50IG9mIHRoZSBjb2x1bW5zIGluIHRoZSBncmFwaClcbiAqIDIuIFRyaW0gcGF0aHMgKHJlbW92ZSBibGFuayBub2RlcyBhdCB0aGUgZW5kIG9mIHRoZSBwYXRocylcbiAqIDMuIE1ha2UgYWxsIHBhdGhzIHRoZSBzYW1lIGxlbmd0aCAoPSBsb25nZXN0IHBhdGggbGVuZ3RoKSB0byBtYWtlIGV2ZXJ5IHVuaXF1ZSBub2RlIGJlIHByZXNlbnQgYXQgdGhlIHNhbWUgaW5kZXggYWNyb3NzIGFsbCBwYXRoc1xuICogNC4gU29ydCBwYXRocyBieSB0aGVpciBsaWtlbmVzcyBiZXR3ZWVuIGVhY2ggb3RoZXIgdG8gYXZvaWQgcGF0aHMgY3Jvc3NpbmdcbiAqIDUuIFJlbW92ZSBcImR1cGxpY2F0ZVwiIG5vZGVzIGluIHBhdGhzIChtYWtlIGV2ZXJ5IHVuaXF1ZSBub2RlIGJlIHByZXNlbnQgb25seSBvbmNlIGFjcm9zcyBhbGwgcGF0aHMpXG4gKiA2LiBSZW1vdmUgZW1wdHkgcGF0aHNcbiAqIDcuIFRyYW5zZm9ybSBwYXRocyBpbnRvIHRoZSBjb2x1bW5zXG4gKiA4LiBUcmltIGNvbHVtbnMgKHJlbW92ZSBzcGFjZSBub2RlcyBhdCB0aGUgZW5kIG9mIGNvbHVtbnMpXG4gKiA5LiBSZW1vdmUgY29sdW1ucyB3aGljaCBjb250YWluIG9ubHkgYmxhbmsgYW5kIGVtcHR5IG5vZGVzXG4gKiAxMC4gVHJhbnNmb3JtIGNvbHVtbnMgaW50byB0aGUgZ3JhcGggY29sdW1uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVBcHByb3ZhbEZsb3dHcmFwaChub2RlczogQXBwcm92YWxHcmFwaE5vZGVbXSk6IEFwcHJvdmFsRmxvd0dyYXBoIHtcbiAgICBjb25zdCBncmFwaDogQXBwcm92YWxGbG93R3JhcGggPSB7IGNvbHVtbnM6IFtdLCBlcnJvcnM6IGZhbHNlIH07XG5cbiAgICBpZiAoIW5vZGVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZ3JhcGg7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdE5vZGVzID0gZmluZFJvb3ROb2Rlcyhub2Rlcyk7XG4gICAgY29uc3QgZmluYWxOb2RlcyA9IGZpbmRGaW5hbE5vZGVzKG5vZGVzKTtcblxuICAgIGlmICghcm9vdE5vZGVzLmxlbmd0aCB8fCAhZmluYWxOb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBFcnI6IE5vdCBwb3NzaWJsZSB0byBidWlsZCBncmFwaCBiZWNhdXNlIHJvb3Qgb3IgZmluYWwgbm9kZXMgYXJlbid0IHByZXNlbnQhYCk7XG4gICAgICAgIGdyYXBoLmVycm9ycyA9IHRydWU7XG4gICAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRocyA9IGdldFBhdGhzKHJvb3ROb2Rlcywgbm9kZXMpO1xuXG4gICAgaWYgKCFwYXRocy5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdFcnI6IE5vdCBwb3NzaWJsZSB0byBidWlsZCBncmFwaCEnKTtcbiAgICAgICAgZ3JhcGguZXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGdyYXBoO1xuICAgIH1cblxuICAgIGNvbnN0IHRyaW1tZWRQYXRocyA9IHRyaW1QYXRocyhwYXRocyk7XG4gICAgY29uc3Qgc2FtZUxlbmd0aFBhdGhzID0gbWFrZVBhdGhzU2FtZUxlbmd0aCh0cmltbWVkUGF0aHMpO1xuICAgIGNvbnN0IHBhdGhzQnlTaW1pbGFyaXR5ID0gc29ydFBhdGhzKHNhbWVMZW5ndGhQYXRocyk7XG4gICAgY29uc3QgcGF0aHNXaXRoVW5pcXVlTm9kZXMgPSByZW1vdmVEdXBsaWNhdGVOb2RlcyhwYXRoc0J5U2ltaWxhcml0eSk7XG4gICAgY29uc3Qgbm90RW1wdHlQYXRocyA9IHJlbW92ZUVtcHR5UGF0aHMocGF0aHNXaXRoVW5pcXVlTm9kZXMpO1xuICAgIGNvbnN0IGNvbHVtbnMgPSBnZXRDb2x1bW5zRnJvbVBhdGhzKG5vdEVtcHR5UGF0aHMpO1xuICAgIGNvbnN0IHRyaW1tZWRDb2x1bW5zID0gdHJpbUNvbHVtbnMoY29sdW1ucyk7XG4gICAgY29uc3Qgbm90RW1wdHlDb2x1bW5zID0gcmVtb3ZlRW1wdHlDb2x1bW5zKHRyaW1tZWRDb2x1bW5zKTtcbiAgICBncmFwaC5jb2x1bW5zID0gZ2V0R3JhcGhDb2x1bW5zRnJvbVBhdGhzKG5vdEVtcHR5Q29sdW1ucyk7XG5cbiAgICByZXR1cm4gZ3JhcGg7XG59XG5cbi8qKiBHZW5lcmF0ZSBncmFwaCBtZXRhZGF0YSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQXBwcm92YWxGbG93R3JhcGhNZXRhZGF0YShncmFwaDogQXBwcm92YWxGbG93R3JhcGgpOiBBcHByb3ZhbEdyYXBoTWV0YWRhdGEge1xuICAgIGNvbnN0IG5vZGVzID0gZ2V0R3JhcGhOb2RlcyhncmFwaCk7XG4gICAgY29uc3QgbWV0YWRhdGE6IEFwcHJvdmFsR3JhcGhNZXRhZGF0YSA9IHt9O1xuXG4gICAgZ3JhcGguY29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGNvbHVtbkluZGV4KSA9PiB7XG4gICAgICAgIGNvbHVtbi5ub2Rlcy5mb3JFYWNoKChub2RlLCBub2RlSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudHMgPSBnZXRQYXJlbnROb2Rlcyhub2RlLCBub2Rlcyk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRzQXBwcm92ZWQgPSBwYXJlbnRzLmxlbmd0aCA/IHBhcmVudHMuZXZlcnkoKF9ub2RlKSA9PiBpc05vZGVBcHByb3ZlZChfbm9kZSkpIDogZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBpc1Jvb3QgPSAhcGFyZW50cy5sZW5ndGggJiYgIW5vZGUuc3BhY2U7XG4gICAgICAgICAgICBjb25zdCBpc0ZpbmFsID0gIW5vZGUudGFyZ2V0cy5sZW5ndGggJiYgIW5vZGUuc3BhY2U7XG4gICAgICAgICAgICBjb25zdCBwYXJhbGxlbEVuZCA9IHBhcmVudHMubGVuZ3RoID4gMTtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0T2ZNdWx0aXBsZVJvb3ROb2RlcyA9IGNvbHVtbkluZGV4ID09PSAwICYmIGNvbHVtbi5ub2Rlcy5sZW5ndGggPiAxICYmIG5vZGVJbmRleCA9PT0gMDtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0T2ZNdWx0aXBsZUZpbmFsTm9kZXMgPVxuICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4ID09PSBncmFwaC5jb2x1bW5zLmxlbmd0aCAtIDEgJiYgY29sdW1uLm5vZGVzLmxlbmd0aCA+IDEgJiYgbm9kZUluZGV4ID09PSAwO1xuXG4gICAgICAgICAgICBtZXRhZGF0YVtub2RlLmlkXSA9IHtcbiAgICAgICAgICAgICAgICBwYXJlbnRzLFxuICAgICAgICAgICAgICAgIGlzUm9vdCxcbiAgICAgICAgICAgICAgICBpc0ZpbmFsLFxuICAgICAgICAgICAgICAgIHBhcmFsbGVsU3RhcnQ6IG5vZGUudGFyZ2V0cy5sZW5ndGggPiAxLFxuICAgICAgICAgICAgICAgIHBhcmFsbGVsRW5kLFxuICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgIG5vZGVJbmRleCxcbiAgICAgICAgICAgICAgICBjYW5BZGROb2RlQmVmb3JlOiAhaXNOb2RlU3RhcnRlZChub2RlKSAmJiAhcGFyZW50c0FwcHJvdmVkLFxuICAgICAgICAgICAgICAgIGNhbkFkZE5vZGVCZWZvcmVBbGw6IGlzUm9vdCAmJiBmaXJzdE9mTXVsdGlwbGVSb290Tm9kZXMsXG4gICAgICAgICAgICAgICAgY2FuQWRkTm9kZUFmdGVyOiAhaXNOb2RlQXBwcm92ZWQobm9kZSksXG4gICAgICAgICAgICAgICAgY2FuQWRkTm9kZUFmdGVyQWxsOlxuICAgICAgICAgICAgICAgICAgICAhaXNOb2RlQXBwcm92ZWQobm9kZSkgJiYgKChpc0ZpbmFsICYmIGZpcnN0T2ZNdWx0aXBsZUZpbmFsTm9kZXMpIHx8IChwYXJhbGxlbEVuZCAmJiBub2RlLmJsYW5rKSksXG4gICAgICAgICAgICAgICAgY2FuQWRkUGFyYWxsZWw6ICFpc05vZGVBcHByb3ZlZChub2RlKSxcbiAgICAgICAgICAgICAgICBpc1ZlcnRpY2FsTGluZUJlZm9yZVNvbGlkOiBub2RlLnNwYWNlICYmIGdyYXBoLmNvbHVtbnNbY29sdW1uSW5kZXggLSAxXT8uYWxsTm9kZXNBcHByb3ZlZCxcbiAgICAgICAgICAgICAgICBpc1ZlcnRpY2FsTGluZUFmdGVyU29saWQ6IG5vZGUuc3BhY2UgJiYgY29sdW1uLmFsbE5vZGVzQXBwcm92ZWQsXG4gICAgICAgICAgICAgICAgZmlyc3RPZk11bHRpcGxlUm9vdE5vZGVzLFxuICAgICAgICAgICAgICAgIGZpcnN0T2ZNdWx0aXBsZUZpbmFsTm9kZXMsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVzQXBwcm92ZWQ6IGNvbHVtbkluZGV4ID09PSAwICYmIGNvbHVtbi5hbGxOb2Rlc0FwcHJvdmVkXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8qIFNvbWUgZmxhZ3MgY2FuIGJlIGNhbGN1bGF0ZWQgb25seSBvbiB0aGUgc2Vjb25kIHJ1biwgd2hlbiBhbGwgbm9kZXMgYWxyZWFkeSBoYXZlIGJhc2UgbWV0YWRhdGEgKi9cbiAgICBncmFwaC5jb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW4ubm9kZXMuZm9yRWFjaCgobm9kZSwgbm9kZUluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub2RlTWV0YWRhdGEgPSBtZXRhZGF0YVtub2RlLmlkXTtcblxuICAgICAgICAgICAgbm9kZU1ldGFkYXRhLmlzTGFzdEluUGFyYWxsZWwgPSBtZXRhZGF0YVtub2RlLnRhcmdldHNbMF1dPy5wYXJhbGxlbEVuZDtcbiAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5pc0ZpcnN0SW5QYXJhbGxlbCA9IG1ldGFkYXRhW25vZGVNZXRhZGF0YS5wYXJlbnRzWzBdPy5pZF0/LnBhcmFsbGVsU3RhcnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbkluZGV4ID0gY29sdW1uLmluZGV4O1xuICAgICAgICAgICAgY29uc3QgZ3JhcGhQcmV2Q29sdW1uID0gY29sdW1uSW5kZXggPyBncmFwaC5jb2x1bW5zW2NvbHVtbkluZGV4IC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBncmFwaE5leHRDb2x1bW4gPSBjb2x1bW5JbmRleCA/IGdyYXBoLmNvbHVtbnNbY29sdW1uSW5kZXggKyAxXSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgcHJldkhOb2RlID0gZ3JhcGhQcmV2Q29sdW1uPy5ub2Rlc1tub2RlSW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgbmV4dEhOb2RlID0gZ3JhcGhOZXh0Q29sdW1uPy5ub2Rlc1tub2RlSW5kZXhdO1xuXG4gICAgICAgICAgICBub2RlTWV0YWRhdGEucmVuZGVyQWRkTm9kZUFmdGVyQnV0dG9uID1cbiAgICAgICAgICAgICAgICBub2RlTWV0YWRhdGEuY2FuQWRkTm9kZUFmdGVyICYmXG4gICAgICAgICAgICAgICAgKG5vZGVNZXRhZGF0YS5pc0ZpbmFsIHx8XG4gICAgICAgICAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5wYXJhbGxlbFN0YXJ0IHx8XG4gICAgICAgICAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5pc0xhc3RJblBhcmFsbGVsIHx8XG4gICAgICAgICAgICAgICAgICAgIG5leHRITm9kZT8uYmxhbmspO1xuXG4gICAgICAgICAgICBjb25zdCBuZXh0Q29sdW1uTm9kZXMgPSBncmFwaE5leHRDb2x1bW4/Lm5vZGVzO1xuICAgICAgICAgICAgaWYgKG5vZGVNZXRhZGF0YS5wYXJhbGxlbFN0YXJ0ICYmIG5leHRDb2x1bW5Ob2Rlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gbmV4dENvbHVtbk5vZGVzLmZpbHRlcigoX25vZGUpID0+IG5vZGUudGFyZ2V0cy5pbmNsdWRlcyhfbm9kZS5pZCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q2hpbGRJbmRleCA9IG5leHRDb2x1bW5Ob2Rlcy5maW5kSW5kZXgoKF9ub2RlKSA9PiBfbm9kZS5pZCA9PT0gY2hpbGRyZW5bMF0uaWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4ID0gbmV4dENvbHVtbk5vZGVzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgICAgKF9ub2RlKSA9PiBfbm9kZS5pZCA9PT0gY2hpbGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV0uaWRcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IGZpcnN0Q2hpbGRJbmRleCArIDE7IGkgPD0gbGFzdENoaWxkSW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YVtuZXh0Q29sdW1uTm9kZXNbaV0uaWRdLnJlbmRlclZlcnRpY2FsTGluZUJlZm9yZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwcmV2Q29sdW1uTm9kZXMgPSBncmFwaFByZXZDb2x1bW4/Lm5vZGVzO1xuICAgICAgICAgICAgaWYgKG5vZGVNZXRhZGF0YS5wYXJhbGxlbEVuZCAmJiBwcmV2Q29sdW1uTm9kZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdFBhcmVudEluZGV4ID0gcHJldkNvbHVtbk5vZGVzLmZpbmRJbmRleCgoX25vZGUpID0+IF9ub2RlLmlkID09PSBub2RlTWV0YWRhdGEucGFyZW50c1swXS5pZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdFBhcmVudEluZGV4ID0gcHJldkNvbHVtbk5vZGVzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgICAgKF9ub2RlKSA9PiBfbm9kZS5pZCA9PT0gbm9kZU1ldGFkYXRhLnBhcmVudHNbbm9kZU1ldGFkYXRhLnBhcmVudHMubGVuZ3RoIC0gMV0uaWRcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IGZpcnN0UGFyZW50SW5kZXggKyAxOyBpIDw9IGxhc3RQYXJlbnRJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhW3ByZXZDb2x1bW5Ob2Rlc1tpXS5pZF0ucmVuZGVyVmVydGljYWxMaW5lQWZ0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbm9kZU1ldGFkYXRhLnJlbmRlclZlcnRpY2FsTGluZUJlZm9yZSA9ICFub2RlTWV0YWRhdGEucmVuZGVyVmVydGljYWxMaW5lQmVmb3JlXG4gICAgICAgICAgICAgICAgPyBub2RlSW5kZXggPiAwICYmICFwcmV2SE5vZGVcbiAgICAgICAgICAgICAgICA6IHRydWU7XG4gICAgICAgICAgICBub2RlTWV0YWRhdGEucmVuZGVyVmVydGljYWxMaW5lQWZ0ZXIgPSAhbm9kZU1ldGFkYXRhLnJlbmRlclZlcnRpY2FsTGluZUFmdGVyXG4gICAgICAgICAgICAgICAgPyBub2RlSW5kZXggPiAwICYmICFuZXh0SE5vZGVcbiAgICAgICAgICAgICAgICA6IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1ldGFkYXRhO1xufVxuXG5mdW5jdGlvbiBmaW5kUm9vdE5vZGVzKG5vZGVzOiBBcHByb3ZhbE5vZGVbXSk6IEFwcHJvdmFsTm9kZVtdIHtcbiAgICByZXR1cm4gbm9kZXMuZmlsdGVyKChub2RlKSA9PiBub2Rlcy5ldmVyeSgobikgPT4gIWlzTm9kZVRhcmdldHNJbmNsdWRlSWQobiwgbm9kZS5pZCkpKTtcbn1cblxuZnVuY3Rpb24gZmluZEZpbmFsTm9kZXMobm9kZXM6IEFwcHJvdmFsTm9kZVtdKTogQXBwcm92YWxOb2RlW10ge1xuICAgIHJldHVybiBub2Rlcy5maWx0ZXIoKG5vZGUpID0+ICFub2RlLnRhcmdldHMubGVuZ3RoKTtcbn1cblxuLyoqIEZpbmQgYWxsIHBvc3NpYmxlIHBhdGhzIChsb25nZXN0IHBhdGggbGVuZ3RoID0gYW1vdW50IG9mIHRoZSBjb2x1bW5zIGluIHRoZSBncmFwaCkgKi9cbmZ1bmN0aW9uIGdldFBhdGhzKHJvb3ROb2RlczogQXBwcm92YWxHcmFwaE5vZGVbXSwgbm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IHBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcbiAgICBjb25zdCBxdWV1ZTogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvb3ROb2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBxdWV1ZS5wdXNoKFtyb290Tm9kZXNbaV1dKTtcblxuICAgICAgICB3aGlsZSAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gcXVldWUucG9wKCk7XG4gICAgICAgICAgICBsZXQgbGFzdE5vZGVJblBhdGg6IEFwcHJvdmFsR3JhcGhOb2RlIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgICBsYXN0Tm9kZUluUGF0aCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyoqIEluZGljYXRlcyBhYm91dCBhbiBlcnJvciAqL1xuICAgICAgICAgICAgaWYgKCFsYXN0Tm9kZUluUGF0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFsYXN0Tm9kZUluUGF0aC50YXJnZXRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHBhdGhzLnB1c2gocGF0aCEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXN0Tm9kZUluUGF0aC50YXJnZXRzLmZvckVhY2goKHRhcmdldElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSBub2Rlcy5maW5kKChub2RlKSA9PiBub2RlLmlkID09PSB0YXJnZXRJZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSBbLi4ucGF0aCEsIHRhcmdldE5vZGVdO1xuXG4gICAgICAgICAgICAgICAgICAgIHF1ZXVlLnB1c2gobmV3UGF0aCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aHM7XG59XG5cbi8qKiBUcmltIHBhdGhzIChyZW1vdmUgYmxhbmsgbm9kZXMgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aHMpICovXG5mdW5jdGlvbiB0cmltUGF0aHMocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkUGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICBsZXQgaW5kZXhUb1NsaWNlID0gcGF0aC5sZW5ndGggLSAxO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSBwYXRoLmxlbmd0aCAtIDE7IGkgPiAwOyAtLWkpIHtcbiAgICAgICAgICAgIGlmIChwYXRoW2ldLmJsYW5rKSB7XG4gICAgICAgICAgICAgICAgaW5kZXhUb1NsaWNlID0gaSAtIDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcGF0aFtpbmRleFRvU2xpY2VdLnRhcmdldHMgPSBbXTtcbiAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoLnNsaWNlKDAsIGluZGV4VG9TbGljZSArIDEpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRQYXRocztcbn1cblxuLyoqIE1ha2UgYWxsIHBhdGhzIHRoZSBzYW1lIGxlbmd0aCAoPSBsb25nZXN0IHBhdGggbGVuZ3RoKSB0byBtYWtlIGV2ZXJ5IHVuaXF1ZSBub2RlIGJlIHByZXNlbnQgYXQgdGhlIHNhbWUgaW5kZXggYWNyb3NzIGFsbCBwYXRocyAqL1xuZnVuY3Rpb24gbWFrZVBhdGhzU2FtZUxlbmd0aChwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBwcm9jZXNzZWRQYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG4gICAgY29uc3QgcGF0aExlbmd0aHMgPSBwYXRocy5tYXAoKHBhdGgpID0+IHBhdGgubGVuZ3RoKTtcbiAgICBjb25zdCBsb25nZXN0UGF0aExlbmd0aCA9IE1hdGgubWF4KC4uLnBhdGhMZW5ndGhzKTtcblxuICAgIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSBsb25nZXN0UGF0aExlbmd0aCkge1xuICAgICAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGguZm9yRWFjaCgobm9kZSwgbm9kZUluZGV4KSA9PiB7XG4gICAgICAgICAgICAvKiogVHJ5IHRvIGdldCBibGFuayBub2RlcyBmcm9tIGFscmVhZHkgcHJvY2Vzc2VkIHBhdGhzIGFzIHBhdGhzIG1heSBiZSB0aGUgc2FtZSB3aXRoaW4gc29tZSBwYXJ0ICovXG4gICAgICAgICAgICBsZXQgYmxhbmtOb2RlcyA9IGdldEJsYW5rTm9kZXNBZnRlck5vZGUobm9kZSwgcHJvY2Vzc2VkUGF0aHMpO1xuICAgICAgICAgICAgaWYgKGJsYW5rTm9kZXMubGVuZ3RoICYmIGJsYW5rTm9kZXNbMF0uaWQgIT09IHBhdGhbbm9kZUluZGV4ICsgMV0/LmlkKSB7XG4gICAgICAgICAgICAgICAgcGF0aC5zcGxpY2Uobm9kZUluZGV4ICsgMSwgMCwgLi4uYmxhbmtOb2Rlcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBub2RlSW5kZXhJblBhdGhzID0gcGF0aHMubWFwKChfcGF0aCkgPT4gX3BhdGguaW5kZXhPZihub2RlKSk7XG4gICAgICAgICAgICBjb25zdCBtb3N0RmFyTm9kZUluZGV4SW5QYXRocyA9IE1hdGgubWF4KC4uLm5vZGVJbmRleEluUGF0aHMpO1xuXG4gICAgICAgICAgICBpZiAobm9kZUluZGV4IDwgbW9zdEZhck5vZGVJbmRleEluUGF0aHMpIHtcbiAgICAgICAgICAgICAgICBibGFua05vZGVzID0gZ2V0QmxhbmtOb2Rlcyhtb3N0RmFyTm9kZUluZGV4SW5QYXRocyAtIG5vZGVJbmRleCwgcGF0aFtub2RlSW5kZXggLSAxXS5zdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgYmxhbmtOb2Rlc1tibGFua05vZGVzLmxlbmd0aCAtIDFdLnRhcmdldHMgPSBbbm9kZS5pZF07XG4gICAgICAgICAgICAgICAgcGF0aFtub2RlSW5kZXggLSAxXS50YXJnZXRzID0gW2JsYW5rTm9kZXNbMF0uaWRdO1xuXG4gICAgICAgICAgICAgICAgcGF0aC5zcGxpY2Uobm9kZUluZGV4LCAwLCAuLi5ibGFua05vZGVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChub2RlSW5kZXggPT09IG1vc3RGYXJOb2RlSW5kZXhJblBhdGhzICYmIG5vZGVJbmRleCA9PT0gcGF0aC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgYmxhbmtOb2RlcyA9IGdldEJsYW5rTm9kZXMobG9uZ2VzdFBhdGhMZW5ndGggLSBwYXRoLmxlbmd0aCwgcGF0aFtub2RlSW5kZXhdLnN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICBwYXRoW25vZGVJbmRleF0udGFyZ2V0cyA9IFtibGFua05vZGVzWzBdLmlkXTtcblxuICAgICAgICAgICAgICAgIHBhdGguc3BsaWNlKG5vZGVJbmRleCArIDEsIDAsIC4uLmJsYW5rTm9kZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRQYXRocztcbn1cblxuLyoqIFRyeSB0byBnZXQgYmxhbmsgbm9kZXMgZnJvbSBhbHJlYWR5IHByb2Nlc3NlZCBwYXRocyBhcyBwYXRocyBtYXkgYmUgdGhlIHNhbWUgd2l0aGluIHNvbWUgcGFydCAqL1xuZnVuY3Rpb24gZ2V0QmxhbmtOb2Rlc0FmdGVyTm9kZShub2RlOiBBcHByb3ZhbEdyYXBoTm9kZSwgcGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW10ge1xuICAgIGNvbnN0IGJsYW5rTm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10gPSBbXTtcblxuICAgIGNvbnN0IHBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIgPSBwYXRocy5maW5kKChwYXRoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVJbmRleCA9IHBhdGguaW5kZXhPZihub2RlKTtcbiAgICAgICAgcmV0dXJuIG5vZGVJbmRleCA+IC0xICYmIHBhdGhbbm9kZUluZGV4ICsgMV0/LmJsYW5rO1xuICAgIH0pO1xuXG4gICAgaWYgKHBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIpIHtcbiAgICAgICAgY29uc3Qgbm9kZUluZGV4ID0gcGF0aFdpdGhCbGFua05vZGVBZnRlci5pbmRleE9mKG5vZGUpICsgMTtcbiAgICAgICAgY29uc3QgbmV4dE5vdEJsYW5rTm9kZUluZGV4ID0gcGF0aFdpdGhCbGFua05vZGVBZnRlci5maW5kSW5kZXgoXG4gICAgICAgICAgICAoX25vZGUsIF9pbmRleCkgPT4gX2luZGV4ID4gbm9kZUluZGV4ICYmICFfbm9kZS5ibGFua1xuICAgICAgICApO1xuXG4gICAgICAgIGJsYW5rTm9kZXMucHVzaChcbiAgICAgICAgICAgIC4uLnBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIuc2xpY2Uobm9kZUluZGV4LCBuZXh0Tm90QmxhbmtOb2RlSW5kZXggPiAwID8gbmV4dE5vdEJsYW5rTm9kZUluZGV4IDogdW5kZWZpbmVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBibGFua05vZGVzO1xufVxuXG4vKiogR2VuZXJhdGUgYmxhbmsgbm9kZXMgc2VxdWVudGlhbCAqL1xuZnVuY3Rpb24gZ2V0QmxhbmtOb2Rlcyhjb3VudDogbnVtYmVyLCBzdGF0dXM6IEFwcHJvdmFsU3RhdHVzKTogQXBwcm92YWxHcmFwaE5vZGVbXSB7XG4gICAgY29uc3Qgbm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10gPSBbXTtcblxuICAgIGxldCBub2RlOiBBcHByb3ZhbEdyYXBoTm9kZTtcbiAgICBsZXQgbm9kZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGxldCBpID0gY291bnQ7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgbm9kZSA9IE9iamVjdC5hc3NpZ24oe30sIGdldEJsYW5rQXBwcm92YWxHcmFwaE5vZGUoKSwgeyB0YXJnZXRzOiBub2RlSWQgPyBbbm9kZUlkXSA6IFtdLCBzdGF0dXMgfSk7XG4gICAgICAgIG5vZGVJZCA9IG5vZGUuaWQ7XG5cbiAgICAgICAgbm9kZXMudW5zaGlmdChub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZXM7XG59XG5cbi8qKiBTb3J0IHBhdGhzIGJ5IHRoZWlyIGxpa2VuZXNzICg9IGNvdW50IG9mIHRoZSBzYW1lIG5vZGVzIHJlbGF0aXZlbHkgdG8gdGhlIG90aGVyIHBhdGhzKSBiZXR3ZWVuIGVhY2ggb3RoZXIgdG8gYXZvaWQgcGF0aHMgY3Jvc3NpbmcgKi9cbmZ1bmN0aW9uIHNvcnRQYXRocyhwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBpZiAocGF0aHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBwYXRocztcbiAgICB9XG5cbiAgICAvKiogW3BhdGhJbmRleCwgcmVsYXRpdmVUb1BhdGhJbmRleCwgc2FtZU5vZGVzQ291bnRdW10gKi9cbiAgICBsZXQgc2ltaWxhcml0aWVzOiBudW1iZXJbXVtdID0gW107XG4gICAgbGV0IHBhdGhTaW1pbGFyaXR5ID0gMDtcblxuICAgIHBhdGhzLmZvckVhY2goKHBhdGgsIGluZGV4KSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gaSAmJiAhc2ltaWxhcml0aWVzLnNvbWUoKGxpa2VseSkgPT4gaW5kZXggPT09IGxpa2VseVsxXSAmJiBpID09PSBsaWtlbHlbMF0pKSB7XG4gICAgICAgICAgICAgICAgcGF0aFNpbWlsYXJpdHkgPSAwO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwYXRoLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXRoW2pdLmlkID09PSBwYXRoc1tpXVtqXS5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aFNpbWlsYXJpdHkrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNpbWlsYXJpdGllcy5wdXNoKFtpbmRleCwgaSwgcGF0aFNpbWlsYXJpdHldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgc2ltaWxhcml0aWVzID0gc2ltaWxhcml0aWVzLnNvcnQoKGEsIGIpID0+IChhWzJdID4gYlsyXSA/IC0xIDogMSkpO1xuXG4gICAgY29uc3QgdXNlZFBhdGhJbmRleGVzOiBudW1iZXJbXSA9IFtdO1xuICAgIGNvbnN0IHByb2Nlc3NlZFBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcblxuICAgIHNpbWlsYXJpdGllcy5mb3JFYWNoKChzaW1pbGFyaXR5KSA9PiB7XG4gICAgICAgIGlmICghdXNlZFBhdGhJbmRleGVzLnNvbWUoKGkpID0+IGkgPT09IHNpbWlsYXJpdHlbMF0pKSB7XG4gICAgICAgICAgICBwcm9jZXNzZWRQYXRocy5wdXNoKHBhdGhzW3NpbWlsYXJpdHlbMF1dKTtcbiAgICAgICAgICAgIHVzZWRQYXRoSW5kZXhlcy5wdXNoKHNpbWlsYXJpdHlbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF1c2VkUGF0aEluZGV4ZXMuc29tZSgoaSkgPT4gaSA9PT0gc2ltaWxhcml0eVsxXSkpIHtcbiAgICAgICAgICAgIHByb2Nlc3NlZFBhdGhzLnB1c2gocGF0aHNbc2ltaWxhcml0eVsxXV0pO1xuICAgICAgICAgICAgdXNlZFBhdGhJbmRleGVzLnB1c2goc2ltaWxhcml0eVsxXSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRQYXRocztcbn1cblxuLyoqIFJlbW92ZSBcImR1cGxpY2F0ZVwiIG5vZGVzIGluIHBhdGhzIChtYWtlIGV2ZXJ5IHVuaXF1ZSBub2RlIGJlIHByZXNlbnQgb25seSBvbmNlIGFjcm9zcyBhbGwgcGF0aHMpICovXG5mdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVOb2RlcyhwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBwcm9jZXNzZWRQYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG5cbiAgICBwYXRocy5mb3JFYWNoKChwYXRoLCBpbmRleCkgPT4ge1xuICAgICAgICBwYXRoLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIHBhdGhzLmZvckVhY2goKF9wYXRoLCBfaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc05vZGVJblBhdGggPSBfaW5kZXggIT09IGluZGV4ICYmIF9wYXRoLmluZGV4T2Yobm9kZSkgPiAtMTtcblxuICAgICAgICAgICAgICAgIGlmIChpc05vZGVJblBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqIEluc3RlYWQgb2Ygbm9kZSBwbGFjZSBzcGFjZSBub2RlICovXG4gICAgICAgICAgICAgICAgICAgIF9wYXRoLnNwbGljZShfcGF0aC5pbmRleE9mKG5vZGUpLCAxLCBnZXRTcGFjZUFwcHJvdmFsR3JhcGhOb2RlKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBwcm9jZXNzZWRQYXRocy5wdXNoKHBhdGgpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb2Nlc3NlZFBhdGhzO1xufVxuXG4vKiogUmVtb3ZlIGVtcHR5IHBhdGhzICh3aGljaCBjb250YWlucyBvbmx5IGVtcHR5IG5vZGVzKSAqL1xuZnVuY3Rpb24gcmVtb3ZlRW1wdHlQYXRocyhwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICByZXR1cm4gcGF0aHMucmVkdWNlKChhY2MsIHBhdGgpID0+IHtcbiAgICAgICAgaWYgKCFwYXRoLmV2ZXJ5KChub2RlKSA9PiBub2RlLnNwYWNlKSkge1xuICAgICAgICAgICAgYWNjLnB1c2gocGF0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdIGFzIEFwcHJvdmFsR3JhcGhOb2RlW11bXSk7XG59XG5cbi8qKiBUcmFuc2Zvcm0gcGF0aHMgaW50byB0aGUgY29sdW1ucyAoaXQncyBwb3NzaWJsZSBhcyB0aGV5J3JlIGFsbCB0aGUgc2FtZSBsZW5ndGgpICovXG5mdW5jdGlvbiBnZXRDb2x1bW5zRnJvbVBhdGhzKHBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IGNvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuICAgIGxldCBjb2x1bW46IEFwcHJvdmFsR3JhcGhOb2RlW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aHNbMF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29sdW1uID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgdiA9IDA7IHYgPCBwYXRocy5sZW5ndGg7IHYrKykge1xuICAgICAgICAgICAgY29sdW1uLnB1c2gocGF0aHNbdl1baV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbHVtbnM7XG59XG5cbi8qKiBUcmltIHNwYWNlIG5vZGVzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbHVtbnMuICovXG5mdW5jdGlvbiB0cmltQ29sdW1ucyhjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IHByb2Nlc3NlZENvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgbGV0IGxhc3ROb3RTcGFjZU5vZGVJbmRleDtcblxuICAgICAgICBmb3IgKGxldCBpID0gY29sdW1uLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAoIWNvbHVtbltpXS5zcGFjZSkge1xuICAgICAgICAgICAgICAgIGxhc3ROb3RTcGFjZU5vZGVJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGFzdE5vdFNwYWNlTm9kZUluZGV4IDwgY29sdW1uLmxlbmd0aCkge1xuICAgICAgICAgICAgcHJvY2Vzc2VkQ29sdW1ucy5wdXNoKGNvbHVtbi5zbGljZSgwLCBsYXN0Tm90U3BhY2VOb2RlSW5kZXggKyAxKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9jZXNzZWRDb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb2Nlc3NlZENvbHVtbnM7XG59XG5cbi8qKiBSZW1vdmUgZW1wdHkgY29sdW1ucyAod2hlcmUgZXZlcnkgbm9kZSBpcyBhIGJsYW5rIG5vZGUpICAqL1xuZnVuY3Rpb24gcmVtb3ZlRW1wdHlDb2x1bW5zKGNvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkQ29sdW1uczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG5cbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb25zdCBhcmVBbGxOb2Rlc0VtcHR5ID0gY29sdW1uLmV2ZXJ5KChub2RlKSA9PiBub2RlLmJsYW5rIHx8IG5vZGUuc3BhY2UpO1xuXG4gICAgICAgIGlmIChhcmVBbGxOb2Rlc0VtcHR5KSB7XG4gICAgICAgICAgICBjb2x1bW4uZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChub2RlLmJsYW5rKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKiBDb25uZWN0IHByZXZpb3VzIGNvbHVtbiB0byB0aGUgbmV4dCBjb2x1bW4sIG9taXR0aW5nIGN1cnJlbnQgY29sdW1uLiAqL1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlVGFyZ2V0cyhub2RlLmlkLCBub2RlLnRhcmdldHMsIGNvbHVtbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvY2Vzc2VkQ29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRDb2x1bW5zO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlVGFyZ2V0cyhyZXBsYWNlSWQ6IHN0cmluZywgcmVwbGFjZVdpdGhJZDogc3RyaW5nW10sIGNvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IHZvaWQge1xuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGNvbHVtbi5mb3JFYWNoKChuKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNOb2RlVGFyZ2V0c0luY2x1ZGVJZChuLCByZXBsYWNlSWQpKSB7XG4gICAgICAgICAgICAgICAgbi50YXJnZXRzID0gbi50YXJnZXRzLmZpbHRlcigoX2lkKSA9PiBfaWQgIT09IHJlcGxhY2VJZCk7XG4gICAgICAgICAgICAgICAgbi50YXJnZXRzLnB1c2goLi4ucmVwbGFjZVdpdGhJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuXG4vKiogVHJhbnNmb3JtIGNvbHVtbnMgaW50byB0aGUgZ3JhcGggY29sdW1ucyAod2l0aCBhZGRpdGlvbmFsIG1ldGFkYXRhKS4gKi9cbmZ1bmN0aW9uIGdldEdyYXBoQ29sdW1uc0Zyb21QYXRocyhjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoQ29sdW1uW10ge1xuICAgIGNvbnN0IGdyYXBoQ29sdW1uczogQXBwcm92YWxHcmFwaENvbHVtbltdID0gW107XG5cbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgY29sdW1uLmZvckVhY2goKG5vZGUpID0+IChub2RlLmNvbEluZGV4ID0gaW5kZXgpKTtcblxuICAgICAgICBncmFwaENvbHVtbnMucHVzaCh7XG4gICAgICAgICAgICBub2RlczogY29sdW1uLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBhbGxOb2Rlc0FwcHJvdmVkOiBjb2x1bW4uZXZlcnkoKG5vZGUpID0+IGlzTm9kZUFwcHJvdmVkKG5vZGUpKVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBncmFwaENvbHVtbnM7XG59XG4iXX0=
|
|
378
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1ncmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsYUFBYSxFQUNiLGNBQWMsRUFDZCx5QkFBeUIsRUFDekIsY0FBYyxFQUNkLGFBQWEsRUFDYixzQkFBc0IsRUFDekIsTUFBTSxXQUFXLENBQUM7QUFpQm5COzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEtBQTBCO0lBQ2hFLE1BQU0sS0FBSyxHQUFzQixFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRWhFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2YsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXpDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLDhFQUE4RSxDQUFDLENBQUM7UUFDN0YsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXpDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ2xELEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE9BQU8s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QThCO0lBQzlGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDakIsSUFBSSxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ3RDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQztnQkFDekQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQzthQUNwQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsMkVBQTJFO0FBQzNFLFNBQVMsd0JBQXdCLENBQUMsT0FBOEI7SUFDNUQsTUFBTSxZQUFZLEdBQTBCLEVBQUUsQ0FBQztJQUUvQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRWxELFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUs7WUFDTCxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakUsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwcm92YWxHcmFwaE5vZGUsIEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGEsIEFwcHJvdmFsTm9kZSwgQXBwcm92YWxTdGF0dXMgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQge1xuICAgIGdldEJsYW5rQXBwcm92YWxHcmFwaE5vZGUsXG4gICAgZ2V0R3JhcGhOb2RlcyxcbiAgICBnZXRQYXJlbnROb2RlcyxcbiAgICBnZXRTcGFjZUFwcHJvdmFsR3JhcGhOb2RlLFxuICAgIGlzTm9kZUFwcHJvdmVkLFxuICAgIGlzTm9kZVN0YXJ0ZWQsXG4gICAgaXNOb2RlVGFyZ2V0c0luY2x1ZGVJZFxufSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmFsRmxvd0dyYXBoIHtcbiAgICBjb2x1bW5zOiBBcHByb3ZhbEdyYXBoQ29sdW1uW107XG4gICAgZXJyb3JzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHByb3ZhbEdyYXBoQ29sdW1uIHtcbiAgICBub2RlczogQXBwcm92YWxHcmFwaE5vZGVbXTtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgICBhbGxOb2Rlc0FwcHJvdmVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHByb3ZhbEdyYXBoTWV0YWRhdGEge1xuICAgIFtrZXk6IHN0cmluZ106IEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGE7XG59XG5cbi8qKiBBbGdvcml0aG0gaW4gc2hvcnQ6XG4gKiAxLiBGaW5kIGFsbCBwb3NzaWJsZSBwYXRocyAobG9uZ2VzdCBwYXRoIGxlbmd0aCA9IGFtb3VudCBvZiB0aGUgY29sdW1ucyBpbiB0aGUgZ3JhcGgpXG4gKiAyLiBUcmltIHBhdGhzIChyZW1vdmUgYmxhbmsgbm9kZXMgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aHMpXG4gKiAzLiBNYWtlIGFsbCBwYXRocyB0aGUgc2FtZSBsZW5ndGggKD0gbG9uZ2VzdCBwYXRoIGxlbmd0aCkgdG8gbWFrZSBldmVyeSB1bmlxdWUgbm9kZSBiZSBwcmVzZW50IGF0IHRoZSBzYW1lIGluZGV4IGFjcm9zcyBhbGwgcGF0aHNcbiAqIDQuIFNvcnQgcGF0aHMgYnkgdGhlaXIgbGlrZW5lc3MgYmV0d2VlbiBlYWNoIG90aGVyIHRvIGF2b2lkIHBhdGhzIGNyb3NzaW5nXG4gKiA1LiBSZW1vdmUgXCJkdXBsaWNhdGVcIiBub2RlcyBpbiBwYXRocyAobWFrZSBldmVyeSB1bmlxdWUgbm9kZSBiZSBwcmVzZW50IG9ubHkgb25jZSBhY3Jvc3MgYWxsIHBhdGhzKVxuICogNi4gUmVtb3ZlIGVtcHR5IHBhdGhzXG4gKiA3LiBUcmFuc2Zvcm0gcGF0aHMgaW50byB0aGUgY29sdW1uc1xuICogOC4gVHJpbSBjb2x1bW5zIChyZW1vdmUgc3BhY2Ugbm9kZXMgYXQgdGhlIGVuZCBvZiBjb2x1bW5zKVxuICogOS4gUmVtb3ZlIGNvbHVtbnMgd2hpY2ggY29udGFpbiBvbmx5IGJsYW5rIGFuZCBlbXB0eSBub2Rlc1xuICogMTAuIFRyYW5zZm9ybSBjb2x1bW5zIGludG8gdGhlIGdyYXBoIGNvbHVtbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQXBwcm92YWxGbG93R3JhcGgobm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10pOiBBcHByb3ZhbEZsb3dHcmFwaCB7XG4gICAgY29uc3QgZ3JhcGg6IEFwcHJvdmFsRmxvd0dyYXBoID0geyBjb2x1bW5zOiBbXSwgZXJyb3JzOiBmYWxzZSB9O1xuXG4gICAgaWYgKCFub2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGdyYXBoO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3ROb2RlcyA9IGZpbmRSb290Tm9kZXMobm9kZXMpO1xuICAgIGNvbnN0IGZpbmFsTm9kZXMgPSBmaW5kRmluYWxOb2Rlcyhub2Rlcyk7XG5cbiAgICBpZiAoIXJvb3ROb2Rlcy5sZW5ndGggfHwgIWZpbmFsTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgRXJyOiBOb3QgcG9zc2libGUgdG8gYnVpbGQgZ3JhcGggYmVjYXVzZSByb290IG9yIGZpbmFsIG5vZGVzIGFyZW4ndCBwcmVzZW50IWApO1xuICAgICAgICBncmFwaC5lcnJvcnMgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZ3JhcGg7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aHMgPSBnZXRQYXRocyhyb290Tm9kZXMsIG5vZGVzKTtcblxuICAgIGlmICghcGF0aHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignRXJyOiBOb3QgcG9zc2libGUgdG8gYnVpbGQgZ3JhcGghJyk7XG4gICAgICAgIGdyYXBoLmVycm9ycyA9IHRydWU7XG4gICAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG5cbiAgICBjb25zdCB0cmltbWVkUGF0aHMgPSB0cmltUGF0aHMocGF0aHMpO1xuICAgIGNvbnN0IHNhbWVMZW5ndGhQYXRocyA9IG1ha2VQYXRoc1NhbWVMZW5ndGgodHJpbW1lZFBhdGhzKTtcbiAgICBjb25zdCBwYXRoc0J5U2ltaWxhcml0eSA9IHNvcnRQYXRocyhzYW1lTGVuZ3RoUGF0aHMpO1xuICAgIGNvbnN0IHBhdGhzV2l0aFVuaXF1ZU5vZGVzID0gcmVtb3ZlRHVwbGljYXRlTm9kZXMocGF0aHNCeVNpbWlsYXJpdHkpO1xuICAgIGNvbnN0IG5vdEVtcHR5UGF0aHMgPSByZW1vdmVFbXB0eVBhdGhzKHBhdGhzV2l0aFVuaXF1ZU5vZGVzKTtcbiAgICBjb25zdCBjb2x1bW5zID0gZ2V0Q29sdW1uc0Zyb21QYXRocyhub3RFbXB0eVBhdGhzKTtcbiAgICBjb25zdCB0cmltbWVkQ29sdW1ucyA9IHRyaW1Db2x1bW5zKGNvbHVtbnMpO1xuICAgIGNvbnN0IG5vdEVtcHR5Q29sdW1ucyA9IHJlbW92ZUVtcHR5Q29sdW1ucyh0cmltbWVkQ29sdW1ucyk7XG4gICAgZ3JhcGguY29sdW1ucyA9IGdldEdyYXBoQ29sdW1uc0Zyb21QYXRocyhub3RFbXB0eUNvbHVtbnMpO1xuXG4gICAgcmV0dXJuIGdyYXBoO1xufVxuXG4vKiogR2VuZXJhdGUgZ3JhcGggbWV0YWRhdGEgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUFwcHJvdmFsRmxvd0dyYXBoTWV0YWRhdGEoZ3JhcGg6IEFwcHJvdmFsRmxvd0dyYXBoKTogQXBwcm92YWxHcmFwaE1ldGFkYXRhIHtcbiAgICBjb25zdCBub2RlcyA9IGdldEdyYXBoTm9kZXMoZ3JhcGgpO1xuICAgIGNvbnN0IG1ldGFkYXRhOiBBcHByb3ZhbEdyYXBoTWV0YWRhdGEgPSB7fTtcblxuICAgIGdyYXBoLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uLCBjb2x1bW5JbmRleCkgPT4ge1xuICAgICAgICBjb2x1bW4ubm9kZXMuZm9yRWFjaCgobm9kZSwgbm9kZUluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRzID0gZ2V0UGFyZW50Tm9kZXMobm9kZSwgbm9kZXMpO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50c0FwcHJvdmVkID0gcGFyZW50cy5sZW5ndGggPyBwYXJlbnRzLmV2ZXJ5KChfbm9kZSkgPT4gaXNOb2RlQXBwcm92ZWQoX25vZGUpKSA6IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgaXNSb290ID0gIXBhcmVudHMubGVuZ3RoICYmICFub2RlLnNwYWNlO1xuICAgICAgICAgICAgY29uc3QgaXNGaW5hbCA9ICFub2RlLnRhcmdldHMubGVuZ3RoICYmICFub2RlLnNwYWNlO1xuICAgICAgICAgICAgY29uc3QgcGFyYWxsZWxFbmQgPSBwYXJlbnRzLmxlbmd0aCA+IDE7XG4gICAgICAgICAgICBjb25zdCBmaXJzdE9mTXVsdGlwbGVSb290Tm9kZXMgPSBjb2x1bW5JbmRleCA9PT0gMCAmJiBjb2x1bW4ubm9kZXMubGVuZ3RoID4gMSAmJiBub2RlSW5kZXggPT09IDA7XG4gICAgICAgICAgICBjb25zdCBmaXJzdE9mTXVsdGlwbGVGaW5hbE5vZGVzID1cbiAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCA9PT0gZ3JhcGguY29sdW1ucy5sZW5ndGggLSAxICYmIGNvbHVtbi5ub2Rlcy5sZW5ndGggPiAxICYmIG5vZGVJbmRleCA9PT0gMDtcblxuICAgICAgICAgICAgbWV0YWRhdGFbbm9kZS5pZF0gPSB7XG4gICAgICAgICAgICAgICAgcGFyZW50cyxcbiAgICAgICAgICAgICAgICBpc1Jvb3QsXG4gICAgICAgICAgICAgICAgaXNGaW5hbCxcbiAgICAgICAgICAgICAgICBwYXJhbGxlbFN0YXJ0OiBub2RlLnRhcmdldHMubGVuZ3RoID4gMSxcbiAgICAgICAgICAgICAgICBwYXJhbGxlbEVuZCxcbiAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICBub2RlSW5kZXgsXG4gICAgICAgICAgICAgICAgY2FuQWRkTm9kZUJlZm9yZTogIWlzTm9kZVN0YXJ0ZWQobm9kZSkgJiYgIXBhcmVudHNBcHByb3ZlZCxcbiAgICAgICAgICAgICAgICBjYW5BZGROb2RlQmVmb3JlQWxsOiBpc1Jvb3QgJiYgZmlyc3RPZk11bHRpcGxlUm9vdE5vZGVzLFxuICAgICAgICAgICAgICAgIGNhbkFkZE5vZGVBZnRlcjogIWlzTm9kZUFwcHJvdmVkKG5vZGUpLFxuICAgICAgICAgICAgICAgIGNhbkFkZE5vZGVBZnRlckFsbDpcbiAgICAgICAgICAgICAgICAgICAgIWlzTm9kZUFwcHJvdmVkKG5vZGUpICYmICgoaXNGaW5hbCAmJiBmaXJzdE9mTXVsdGlwbGVGaW5hbE5vZGVzKSB8fCAocGFyYWxsZWxFbmQgJiYgbm9kZS5ibGFuaykpLFxuICAgICAgICAgICAgICAgIGNhbkFkZFBhcmFsbGVsOiAhaXNOb2RlQXBwcm92ZWQobm9kZSksXG4gICAgICAgICAgICAgICAgaXNWZXJ0aWNhbExpbmVCZWZvcmVTb2xpZDogbm9kZS5zcGFjZSAmJiBncmFwaC5jb2x1bW5zW2NvbHVtbkluZGV4IC0gMV0/LmFsbE5vZGVzQXBwcm92ZWQsXG4gICAgICAgICAgICAgICAgaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkOiBub2RlLnNwYWNlICYmIGNvbHVtbi5hbGxOb2Rlc0FwcHJvdmVkLFxuICAgICAgICAgICAgICAgIGZpcnN0T2ZNdWx0aXBsZVJvb3ROb2RlcyxcbiAgICAgICAgICAgICAgICBmaXJzdE9mTXVsdGlwbGVGaW5hbE5vZGVzLFxuICAgICAgICAgICAgICAgIHJvb3ROb2Rlc0FwcHJvdmVkOiBjb2x1bW5JbmRleCA9PT0gMCAmJiBjb2x1bW4uYWxsTm9kZXNBcHByb3ZlZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKiBTb21lIGZsYWdzIGNhbiBiZSBjYWxjdWxhdGVkIG9ubHkgb24gdGhlIHNlY29uZCBydW4sIHdoZW4gYWxsIG5vZGVzIGFscmVhZHkgaGF2ZSBiYXNlIG1ldGFkYXRhICovXG4gICAgZ3JhcGguY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29sdW1uLm5vZGVzLmZvckVhY2goKG5vZGUsIG5vZGVJbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZU1ldGFkYXRhID0gbWV0YWRhdGFbbm9kZS5pZF07XG5cbiAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5pc0xhc3RJblBhcmFsbGVsID0gbWV0YWRhdGFbbm9kZS50YXJnZXRzWzBdXT8ucGFyYWxsZWxFbmQ7XG4gICAgICAgICAgICBub2RlTWV0YWRhdGEuaXNGaXJzdEluUGFyYWxsZWwgPSBtZXRhZGF0YVtub2RlTWV0YWRhdGEucGFyZW50c1swXT8uaWRdPy5wYXJhbGxlbFN0YXJ0O1xuXG4gICAgICAgICAgICBjb25zdCBjb2x1bW5JbmRleCA9IGNvbHVtbi5pbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGdyYXBoUHJldkNvbHVtbiA9IGNvbHVtbkluZGV4ID8gZ3JhcGguY29sdW1uc1tjb2x1bW5JbmRleCAtIDFdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgZ3JhcGhOZXh0Q29sdW1uID0gY29sdW1uSW5kZXggPyBncmFwaC5jb2x1bW5zW2NvbHVtbkluZGV4ICsgMV0gOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IHByZXZITm9kZSA9IGdyYXBoUHJldkNvbHVtbj8ubm9kZXNbbm9kZUluZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRITm9kZSA9IGdyYXBoTmV4dENvbHVtbj8ubm9kZXNbbm9kZUluZGV4XTtcblxuICAgICAgICAgICAgbm9kZU1ldGFkYXRhLnJlbmRlckFkZE5vZGVBZnRlckJ1dHRvbiA9XG4gICAgICAgICAgICAgICAgbm9kZU1ldGFkYXRhLmNhbkFkZE5vZGVBZnRlciAmJlxuICAgICAgICAgICAgICAgIChub2RlTWV0YWRhdGEuaXNGaW5hbCB8fFxuICAgICAgICAgICAgICAgICAgICBub2RlTWV0YWRhdGEucGFyYWxsZWxTdGFydCB8fFxuICAgICAgICAgICAgICAgICAgICBub2RlTWV0YWRhdGEuaXNMYXN0SW5QYXJhbGxlbCB8fFxuICAgICAgICAgICAgICAgICAgICBuZXh0SE5vZGU/LmJsYW5rKTtcblxuICAgICAgICAgICAgY29uc3QgbmV4dENvbHVtbk5vZGVzID0gZ3JhcGhOZXh0Q29sdW1uPy5ub2RlcztcbiAgICAgICAgICAgIGlmIChub2RlTWV0YWRhdGEucGFyYWxsZWxTdGFydCAmJiBuZXh0Q29sdW1uTm9kZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5leHRDb2x1bW5Ob2Rlcy5maWx0ZXIoKF9ub2RlKSA9PiBub2RlLnRhcmdldHMuaW5jbHVkZXMoX25vZGUuaWQpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENoaWxkSW5kZXggPSBuZXh0Q29sdW1uTm9kZXMuZmluZEluZGV4KChfbm9kZSkgPT4gX25vZGUuaWQgPT09IGNoaWxkcmVuWzBdLmlkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q2hpbGRJbmRleCA9IG5leHRDb2x1bW5Ob2Rlcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgIChfbm9kZSkgPT4gX25vZGUuaWQgPT09IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLmlkXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBmaXJzdENoaWxkSW5kZXggKyAxOyBpIDw9IGxhc3RDaGlsZEluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFbbmV4dENvbHVtbk5vZGVzW2ldLmlkXS5yZW5kZXJWZXJ0aWNhbExpbmVCZWZvcmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcHJldkNvbHVtbk5vZGVzID0gZ3JhcGhQcmV2Q29sdW1uPy5ub2RlcztcbiAgICAgICAgICAgIGlmIChub2RlTWV0YWRhdGEucGFyYWxsZWxFbmQgJiYgcHJldkNvbHVtbk5vZGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RQYXJlbnRJbmRleCA9IHByZXZDb2x1bW5Ob2Rlcy5maW5kSW5kZXgoKF9ub2RlKSA9PiBfbm9kZS5pZCA9PT0gbm9kZU1ldGFkYXRhLnBhcmVudHNbMF0uaWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RQYXJlbnRJbmRleCA9IHByZXZDb2x1bW5Ob2Rlcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgIChfbm9kZSkgPT4gX25vZGUuaWQgPT09IG5vZGVNZXRhZGF0YS5wYXJlbnRzW25vZGVNZXRhZGF0YS5wYXJlbnRzLmxlbmd0aCAtIDFdLmlkXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBmaXJzdFBhcmVudEluZGV4ICsgMTsgaSA8PSBsYXN0UGFyZW50SW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YVtwcmV2Q29sdW1uTm9kZXNbaV0uaWRdLnJlbmRlclZlcnRpY2FsTGluZUFmdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG5vZGVNZXRhZGF0YS5yZW5kZXJWZXJ0aWNhbExpbmVCZWZvcmUgPSAhbm9kZU1ldGFkYXRhLnJlbmRlclZlcnRpY2FsTGluZUJlZm9yZVxuICAgICAgICAgICAgICAgID8gbm9kZUluZGV4ID4gMCAmJiAhcHJldkhOb2RlXG4gICAgICAgICAgICAgICAgOiB0cnVlO1xuICAgICAgICAgICAgbm9kZU1ldGFkYXRhLnJlbmRlclZlcnRpY2FsTGluZUFmdGVyID0gIW5vZGVNZXRhZGF0YS5yZW5kZXJWZXJ0aWNhbExpbmVBZnRlclxuICAgICAgICAgICAgICAgID8gbm9kZUluZGV4ID4gMCAmJiAhbmV4dEhOb2RlXG4gICAgICAgICAgICAgICAgOiB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBtZXRhZGF0YTtcbn1cblxuZnVuY3Rpb24gZmluZFJvb3ROb2Rlcyhub2RlczogQXBwcm92YWxOb2RlW10pOiBBcHByb3ZhbE5vZGVbXSB7XG4gICAgcmV0dXJuIG5vZGVzLmZpbHRlcigobm9kZSkgPT4gbm9kZXMuZXZlcnkoKG4pID0+ICFpc05vZGVUYXJnZXRzSW5jbHVkZUlkKG4sIG5vZGUuaWQpKSk7XG59XG5cbmZ1bmN0aW9uIGZpbmRGaW5hbE5vZGVzKG5vZGVzOiBBcHByb3ZhbE5vZGVbXSk6IEFwcHJvdmFsTm9kZVtdIHtcbiAgICByZXR1cm4gbm9kZXMuZmlsdGVyKChub2RlKSA9PiAhbm9kZS50YXJnZXRzLmxlbmd0aCk7XG59XG5cbi8qKiBGaW5kIGFsbCBwb3NzaWJsZSBwYXRocyAobG9uZ2VzdCBwYXRoIGxlbmd0aCA9IGFtb3VudCBvZiB0aGUgY29sdW1ucyBpbiB0aGUgZ3JhcGgpICovXG5mdW5jdGlvbiBnZXRQYXRocyhyb290Tm9kZXM6IEFwcHJvdmFsR3JhcGhOb2RlW10sIG5vZGVzOiBBcHByb3ZhbEdyYXBoTm9kZVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG4gICAgY29uc3QgcXVldWU6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb290Tm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcXVldWUucHVzaChbcm9vdE5vZGVzW2ldXSk7XG5cbiAgICAgICAgd2hpbGUgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IHF1ZXVlLnBvcCgpO1xuICAgICAgICAgICAgbGV0IGxhc3ROb2RlSW5QYXRoOiBBcHByb3ZhbEdyYXBoTm9kZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICAgICAgbGFzdE5vZGVJblBhdGggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKiBJbmRpY2F0ZXMgYWJvdXQgYW4gZXJyb3IgKi9cbiAgICAgICAgICAgIGlmICghbGFzdE5vZGVJblBhdGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghbGFzdE5vZGVJblBhdGgudGFyZ2V0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBwYXRocy5wdXNoKHBhdGghKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGFzdE5vZGVJblBhdGgudGFyZ2V0cy5mb3JFYWNoKCh0YXJnZXRJZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXROb2RlID0gbm9kZXMuZmluZCgobm9kZSkgPT4gbm9kZS5pZCA9PT0gdGFyZ2V0SWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRhcmdldE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQYXRoID0gWy4uLnBhdGghLCB0YXJnZXROb2RlXTtcblxuICAgICAgICAgICAgICAgICAgICBxdWV1ZS5wdXNoKG5ld1BhdGgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGhzO1xufVxuXG4vKiogVHJpbSBwYXRocyAocmVtb3ZlIGJsYW5rIG5vZGVzIGF0IHRoZSBlbmQgb2YgdGhlIHBhdGhzKSAqL1xuZnVuY3Rpb24gdHJpbVBhdGhzKHBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IHByb2Nlc3NlZFBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcblxuICAgIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgbGV0IGluZGV4VG9TbGljZSA9IHBhdGgubGVuZ3RoIC0gMTtcblxuICAgICAgICBmb3IgKGxldCBpID0gcGF0aC5sZW5ndGggLSAxOyBpID4gMDsgLS1pKSB7XG4gICAgICAgICAgICBpZiAocGF0aFtpXS5ibGFuaykge1xuICAgICAgICAgICAgICAgIGluZGV4VG9TbGljZSA9IGkgLSAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGhbaW5kZXhUb1NsaWNlXS50YXJnZXRzID0gW107XG4gICAgICAgIHByb2Nlc3NlZFBhdGhzLnB1c2gocGF0aC5zbGljZSgwLCBpbmRleFRvU2xpY2UgKyAxKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkUGF0aHM7XG59XG5cbi8qKiBNYWtlIGFsbCBwYXRocyB0aGUgc2FtZSBsZW5ndGggKD0gbG9uZ2VzdCBwYXRoIGxlbmd0aCkgdG8gbWFrZSBldmVyeSB1bmlxdWUgbm9kZSBiZSBwcmVzZW50IGF0IHRoZSBzYW1lIGluZGV4IGFjcm9zcyBhbGwgcGF0aHMgKi9cbmZ1bmN0aW9uIG1ha2VQYXRoc1NhbWVMZW5ndGgocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkUGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuICAgIGNvbnN0IHBhdGhMZW5ndGhzID0gcGF0aHMubWFwKChwYXRoKSA9PiBwYXRoLmxlbmd0aCk7XG4gICAgY29uc3QgbG9uZ2VzdFBhdGhMZW5ndGggPSBNYXRoLm1heCguLi5wYXRoTGVuZ3Rocyk7XG5cbiAgICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gbG9uZ2VzdFBhdGhMZW5ndGgpIHtcbiAgICAgICAgICAgIHByb2Nlc3NlZFBhdGhzLnB1c2gocGF0aCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoLmZvckVhY2goKG5vZGUsIG5vZGVJbmRleCkgPT4ge1xuICAgICAgICAgICAgLyoqIFRyeSB0byBnZXQgYmxhbmsgbm9kZXMgZnJvbSBhbHJlYWR5IHByb2Nlc3NlZCBwYXRocyBhcyBwYXRocyBtYXkgYmUgdGhlIHNhbWUgd2l0aGluIHNvbWUgcGFydCAqL1xuICAgICAgICAgICAgbGV0IGJsYW5rTm9kZXMgPSBnZXRCbGFua05vZGVzQWZ0ZXJOb2RlKG5vZGUsIHByb2Nlc3NlZFBhdGhzKTtcbiAgICAgICAgICAgIGlmIChibGFua05vZGVzLmxlbmd0aCAmJiBibGFua05vZGVzWzBdLmlkICE9PSBwYXRoW25vZGVJbmRleCArIDFdPy5pZCkge1xuICAgICAgICAgICAgICAgIHBhdGguc3BsaWNlKG5vZGVJbmRleCArIDEsIDAsIC4uLmJsYW5rTm9kZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgbm9kZUluZGV4SW5QYXRocyA9IHBhdGhzLm1hcCgoX3BhdGgpID0+IF9wYXRoLmluZGV4T2Yobm9kZSkpO1xuICAgICAgICAgICAgY29uc3QgbW9zdEZhck5vZGVJbmRleEluUGF0aHMgPSBNYXRoLm1heCguLi5ub2RlSW5kZXhJblBhdGhzKTtcblxuICAgICAgICAgICAgaWYgKG5vZGVJbmRleCA8IG1vc3RGYXJOb2RlSW5kZXhJblBhdGhzKSB7XG4gICAgICAgICAgICAgICAgYmxhbmtOb2RlcyA9IGdldEJsYW5rTm9kZXMobW9zdEZhck5vZGVJbmRleEluUGF0aHMgLSBub2RlSW5kZXgsIHBhdGhbbm9kZUluZGV4IC0gMV0uc3RhdHVzKTtcblxuICAgICAgICAgICAgICAgIGJsYW5rTm9kZXNbYmxhbmtOb2Rlcy5sZW5ndGggLSAxXS50YXJnZXRzID0gW25vZGUuaWRdO1xuICAgICAgICAgICAgICAgIHBhdGhbbm9kZUluZGV4IC0gMV0udGFyZ2V0cyA9IFtibGFua05vZGVzWzBdLmlkXTtcblxuICAgICAgICAgICAgICAgIHBhdGguc3BsaWNlKG5vZGVJbmRleCwgMCwgLi4uYmxhbmtOb2Rlcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobm9kZUluZGV4ID09PSBtb3N0RmFyTm9kZUluZGV4SW5QYXRocyAmJiBub2RlSW5kZXggPT09IHBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIGJsYW5rTm9kZXMgPSBnZXRCbGFua05vZGVzKGxvbmdlc3RQYXRoTGVuZ3RoIC0gcGF0aC5sZW5ndGgsIHBhdGhbbm9kZUluZGV4XS5zdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgcGF0aFtub2RlSW5kZXhdLnRhcmdldHMgPSBbYmxhbmtOb2Rlc1swXS5pZF07XG5cbiAgICAgICAgICAgICAgICBwYXRoLnNwbGljZShub2RlSW5kZXggKyAxLCAwLCAuLi5ibGFua05vZGVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByb2Nlc3NlZFBhdGhzLnB1c2gocGF0aCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkUGF0aHM7XG59XG5cbi8qKiBUcnkgdG8gZ2V0IGJsYW5rIG5vZGVzIGZyb20gYWxyZWFkeSBwcm9jZXNzZWQgcGF0aHMgYXMgcGF0aHMgbWF5IGJlIHRoZSBzYW1lIHdpdGhpbiBzb21lIHBhcnQgKi9cbmZ1bmN0aW9uIGdldEJsYW5rTm9kZXNBZnRlck5vZGUobm9kZTogQXBwcm92YWxHcmFwaE5vZGUsIHBhdGhzOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdIHtcbiAgICBjb25zdCBibGFua05vZGVzOiBBcHByb3ZhbEdyYXBoTm9kZVtdID0gW107XG5cbiAgICBjb25zdCBwYXRoV2l0aEJsYW5rTm9kZUFmdGVyID0gcGF0aHMuZmluZCgocGF0aCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlSW5kZXggPSBwYXRoLmluZGV4T2Yobm9kZSk7XG4gICAgICAgIHJldHVybiBub2RlSW5kZXggPiAtMSAmJiBwYXRoW25vZGVJbmRleCArIDFdPy5ibGFuaztcbiAgICB9KTtcblxuICAgIGlmIChwYXRoV2l0aEJsYW5rTm9kZUFmdGVyKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJbmRleCA9IHBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIuaW5kZXhPZihub2RlKSArIDE7XG4gICAgICAgIGNvbnN0IG5leHROb3RCbGFua05vZGVJbmRleCA9IHBhdGhXaXRoQmxhbmtOb2RlQWZ0ZXIuZmluZEluZGV4KFxuICAgICAgICAgICAgKF9ub2RlLCBfaW5kZXgpID0+IF9pbmRleCA+IG5vZGVJbmRleCAmJiAhX25vZGUuYmxhbmtcbiAgICAgICAgKTtcblxuICAgICAgICBibGFua05vZGVzLnB1c2goXG4gICAgICAgICAgICAuLi5wYXRoV2l0aEJsYW5rTm9kZUFmdGVyLnNsaWNlKG5vZGVJbmRleCwgbmV4dE5vdEJsYW5rTm9kZUluZGV4ID4gMCA/IG5leHROb3RCbGFua05vZGVJbmRleCA6IHVuZGVmaW5lZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYmxhbmtOb2Rlcztcbn1cblxuLyoqIEdlbmVyYXRlIGJsYW5rIG5vZGVzIHNlcXVlbnRpYWwgKi9cbmZ1bmN0aW9uIGdldEJsYW5rTm9kZXMoY291bnQ6IG51bWJlciwgc3RhdHVzOiBBcHByb3ZhbFN0YXR1cyk6IEFwcHJvdmFsR3JhcGhOb2RlW10ge1xuICAgIGNvbnN0IG5vZGVzOiBBcHByb3ZhbEdyYXBoTm9kZVtdID0gW107XG5cbiAgICBsZXQgbm9kZTogQXBwcm92YWxHcmFwaE5vZGU7XG4gICAgbGV0IG5vZGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgZm9yIChsZXQgaSA9IGNvdW50OyBpID4gMDsgaS0tKSB7XG4gICAgICAgIG5vZGUgPSBPYmplY3QuYXNzaWduKHt9LCBnZXRCbGFua0FwcHJvdmFsR3JhcGhOb2RlKCksIHsgdGFyZ2V0czogbm9kZUlkID8gW25vZGVJZF0gOiBbXSwgc3RhdHVzIH0pO1xuICAgICAgICBub2RlSWQgPSBub2RlLmlkO1xuXG4gICAgICAgIG5vZGVzLnVuc2hpZnQobm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGVzO1xufVxuXG4vKiogU29ydCBwYXRocyBieSB0aGVpciBsaWtlbmVzcyAoPSBjb3VudCBvZiB0aGUgc2FtZSBub2RlcyByZWxhdGl2ZWx5IHRvIHRoZSBvdGhlciBwYXRocykgYmV0d2VlbiBlYWNoIG90aGVyIHRvIGF2b2lkIHBhdGhzIGNyb3NzaW5nICovXG5mdW5jdGlvbiBzb3J0UGF0aHMocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgaWYgKHBhdGhzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gcGF0aHM7XG4gICAgfVxuXG4gICAgLyoqIFtwYXRoSW5kZXgsIHJlbGF0aXZlVG9QYXRoSW5kZXgsIHNhbWVOb2Rlc0NvdW50XVtdICovXG4gICAgbGV0IHNpbWlsYXJpdGllczogbnVtYmVyW11bXSA9IFtdO1xuICAgIGxldCBwYXRoU2ltaWxhcml0eSA9IDA7XG5cbiAgICBwYXRocy5mb3JFYWNoKChwYXRoLCBpbmRleCkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IGkgJiYgIXNpbWlsYXJpdGllcy5zb21lKChsaWtlbHkpID0+IGluZGV4ID09PSBsaWtlbHlbMV0gJiYgaSA9PT0gbGlrZWx5WzBdKSkge1xuICAgICAgICAgICAgICAgIHBhdGhTaW1pbGFyaXR5ID0gMDtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcGF0aC5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocGF0aFtqXS5pZCA9PT0gcGF0aHNbaV1bal0uaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhTaW1pbGFyaXR5Kys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzaW1pbGFyaXRpZXMucHVzaChbaW5kZXgsIGksIHBhdGhTaW1pbGFyaXR5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHNpbWlsYXJpdGllcyA9IHNpbWlsYXJpdGllcy5zb3J0KChhLCBiKSA9PiAoYVsyXSA+IGJbMl0gPyAtMSA6IDEpKTtcblxuICAgIGNvbnN0IHVzZWRQYXRoSW5kZXhlczogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBwcm9jZXNzZWRQYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdID0gW107XG5cbiAgICBzaW1pbGFyaXRpZXMuZm9yRWFjaCgoc2ltaWxhcml0eSkgPT4ge1xuICAgICAgICBpZiAoIXVzZWRQYXRoSW5kZXhlcy5zb21lKChpKSA9PiBpID09PSBzaW1pbGFyaXR5WzBdKSkge1xuICAgICAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoc1tzaW1pbGFyaXR5WzBdXSk7XG4gICAgICAgICAgICB1c2VkUGF0aEluZGV4ZXMucHVzaChzaW1pbGFyaXR5WzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdXNlZFBhdGhJbmRleGVzLnNvbWUoKGkpID0+IGkgPT09IHNpbWlsYXJpdHlbMV0pKSB7XG4gICAgICAgICAgICBwcm9jZXNzZWRQYXRocy5wdXNoKHBhdGhzW3NpbWlsYXJpdHlbMV1dKTtcbiAgICAgICAgICAgIHVzZWRQYXRoSW5kZXhlcy5wdXNoKHNpbWlsYXJpdHlbMV0pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkUGF0aHM7XG59XG5cbi8qKiBSZW1vdmUgXCJkdXBsaWNhdGVcIiBub2RlcyBpbiBwYXRocyAobWFrZSBldmVyeSB1bmlxdWUgbm9kZSBiZSBwcmVzZW50IG9ubHkgb25jZSBhY3Jvc3MgYWxsIHBhdGhzKSAqL1xuZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlTm9kZXMocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkUGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCwgaW5kZXgpID0+IHtcbiAgICAgICAgcGF0aC5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBwYXRocy5mb3JFYWNoKChfcGF0aCwgX2luZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNOb2RlSW5QYXRoID0gX2luZGV4ICE9PSBpbmRleCAmJiBfcGF0aC5pbmRleE9mKG5vZGUpID4gLTE7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNOb2RlSW5QYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKiBJbnN0ZWFkIG9mIG5vZGUgcGxhY2Ugc3BhY2Ugbm9kZSAqL1xuICAgICAgICAgICAgICAgICAgICBfcGF0aC5zcGxpY2UoX3BhdGguaW5kZXhPZihub2RlKSwgMSwgZ2V0U3BhY2VBcHByb3ZhbEdyYXBoTm9kZSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcHJvY2Vzc2VkUGF0aHMucHVzaChwYXRoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRQYXRocztcbn1cblxuLyoqIFJlbW92ZSBlbXB0eSBwYXRocyAod2hpY2ggY29udGFpbnMgb25seSBlbXB0eSBub2RlcykgKi9cbmZ1bmN0aW9uIHJlbW92ZUVtcHR5UGF0aHMocGF0aHM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSk6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSB7XG4gICAgcmV0dXJuIHBhdGhzLnJlZHVjZSgoYWNjLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICghcGF0aC5ldmVyeSgobm9kZSkgPT4gbm9kZS5zcGFjZSkpIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKHBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSBhcyBBcHByb3ZhbEdyYXBoTm9kZVtdW10pO1xufVxuXG4vKiogVHJhbnNmb3JtIHBhdGhzIGludG8gdGhlIGNvbHVtbnMgKGl0J3MgcG9zc2libGUgYXMgdGhleSdyZSBhbGwgdGhlIHNhbWUgbGVuZ3RoKSAqL1xuZnVuY3Rpb24gZ2V0Q29sdW1uc0Zyb21QYXRocyhwYXRoczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcbiAgICBsZXQgY29sdW1uOiBBcHByb3ZhbEdyYXBoTm9kZVtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhzWzBdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbHVtbiA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IHYgPSAwOyB2IDwgcGF0aHMubGVuZ3RoOyB2KyspIHtcbiAgICAgICAgICAgIGNvbHVtbi5wdXNoKHBhdGhzW3ZdW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zO1xufVxuXG4vKiogVHJpbSBzcGFjZSBub2RlcyBhdCB0aGUgZW5kIG9mIHRoZSBjb2x1bW5zLiAqL1xuZnVuY3Rpb24gdHJpbUNvbHVtbnMoY29sdW1uczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaE5vZGVbXVtdIHtcbiAgICBjb25zdCBwcm9jZXNzZWRDb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10gPSBbXTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGxldCBsYXN0Tm90U3BhY2VOb2RlSW5kZXg7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IGNvbHVtbi5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKCFjb2x1bW5baV0uc3BhY2UpIHtcbiAgICAgICAgICAgICAgICBsYXN0Tm90U3BhY2VOb2RlSW5kZXggPSBpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxhc3ROb3RTcGFjZU5vZGVJbmRleCA8IGNvbHVtbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHByb2Nlc3NlZENvbHVtbnMucHVzaChjb2x1bW4uc2xpY2UoMCwgbGFzdE5vdFNwYWNlTm9kZUluZGV4ICsgMSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvY2Vzc2VkQ29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRDb2x1bW5zO1xufVxuXG4vKiogUmVtb3ZlIGVtcHR5IGNvbHVtbnMgKHdoZXJlIGV2ZXJ5IG5vZGUgaXMgYSBibGFuayBub2RlKSAgKi9cbmZ1bmN0aW9uIHJlbW92ZUVtcHR5Q29sdW1ucyhjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10ge1xuICAgIGNvbnN0IHByb2Nlc3NlZENvbHVtbnM6IEFwcHJvdmFsR3JhcGhOb2RlW11bXSA9IFtdO1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29uc3QgYXJlQWxsTm9kZXNFbXB0eSA9IGNvbHVtbi5ldmVyeSgobm9kZSkgPT4gbm9kZS5ibGFuayB8fCBub2RlLnNwYWNlKTtcblxuICAgICAgICBpZiAoYXJlQWxsTm9kZXNFbXB0eSkge1xuICAgICAgICAgICAgY29sdW1uLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5ibGFuaykge1xuICAgICAgICAgICAgICAgICAgICAvKiogQ29ubmVjdCBwcmV2aW91cyBjb2x1bW4gdG8gdGhlIG5leHQgY29sdW1uLCBvbWl0dGluZyBjdXJyZW50IGNvbHVtbi4gKi9cbiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZVRhcmdldHMobm9kZS5pZCwgbm9kZS50YXJnZXRzLCBjb2x1bW5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb2Nlc3NlZENvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkQ29sdW1ucztcbn1cblxuZnVuY3Rpb24gcmVwbGFjZVRhcmdldHMocmVwbGFjZUlkOiBzdHJpbmcsIHJlcGxhY2VXaXRoSWQ6IHN0cmluZ1tdLCBjb2x1bW5zOiBBcHByb3ZhbEdyYXBoTm9kZVtdW10pOiB2b2lkIHtcbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW4uZm9yRWFjaCgobikgPT4ge1xuICAgICAgICAgICAgaWYgKGlzTm9kZVRhcmdldHNJbmNsdWRlSWQobiwgcmVwbGFjZUlkKSkge1xuICAgICAgICAgICAgICAgIG4udGFyZ2V0cyA9IG4udGFyZ2V0cy5maWx0ZXIoKF9pZCkgPT4gX2lkICE9PSByZXBsYWNlSWQpO1xuICAgICAgICAgICAgICAgIG4udGFyZ2V0cy5wdXNoKC4uLnJlcGxhY2VXaXRoSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuLyoqIFRyYW5zZm9ybSBjb2x1bW5zIGludG8gdGhlIGdyYXBoIGNvbHVtbnMgKHdpdGggYWRkaXRpb25hbCBtZXRhZGF0YSkuICovXG5mdW5jdGlvbiBnZXRHcmFwaENvbHVtbnNGcm9tUGF0aHMoY29sdW1uczogQXBwcm92YWxHcmFwaE5vZGVbXVtdKTogQXBwcm92YWxHcmFwaENvbHVtbltdIHtcbiAgICBjb25zdCBncmFwaENvbHVtbnM6IEFwcHJvdmFsR3JhcGhDb2x1bW5bXSA9IFtdO1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbHVtbi5mb3JFYWNoKChub2RlKSA9PiAobm9kZS5jb2xJbmRleCA9IGluZGV4KSk7XG5cbiAgICAgICAgZ3JhcGhDb2x1bW5zLnB1c2goe1xuICAgICAgICAgICAgbm9kZXM6IGNvbHVtbixcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgYWxsTm9kZXNBcHByb3ZlZDogY29sdW1uLmV2ZXJ5KChub2RlKSA9PiBpc05vZGVBcHByb3ZlZChub2RlKSlcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JhcGhDb2x1bW5zO1xufVxuIl19
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
47
47
|
}], undoLastAction: [{
|
|
48
48
|
type: Output
|
|
49
49
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy1tZXNzYWdlcy9hcHByb3ZhbC1mbG93LW1lc3NhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LW1lc3NhZ2VzL2FwcHJvdmFsLWZsb3ctbWVzc2FnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFnQnZDOzs7R0FHRztBQWFILE1BQU0sT0FBTyw2QkFBNkI7SUFaMUM7UUFhSSx3QkFBd0I7UUFFeEIsYUFBUSxHQUEwQixFQUFFLENBQUM7UUFFckMsdUNBQXVDO1FBRXZDLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUVoQywrQ0FBK0M7UUFFL0MsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUUzRCxnREFBZ0Q7UUFFaEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTFDLGNBQWM7UUFDZCxlQUFVLEdBQUcsU0FBUyxDQUFDO0tBYzFCO0lBWkcsY0FBYztJQUNkLGVBQWUsQ0FBQyxZQUFvQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7SUFDZCxlQUFlLENBQUMsWUFBb0IsRUFBRSxLQUFZO1FBQzlDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs4R0EvQlEsNkJBQTZCO2tHQUE3Qiw2QkFBNkIscVRDcEMxQyxtK0RBOENBLGtJRFpjLHFCQUFxQixpT0FBRSxlQUFlOzsyRkFFdkMsNkJBQTZCO2tCQVp6QyxTQUFTOytCQUNJLDRCQUE0QixpQkFHdkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsNEJBQTRCO3FCQUN0QyxjQUNXLElBQUksV0FDUCxDQUFDLHFCQUFxQixFQUFFLGVBQWUsQ0FBQzs4QkFLakQsUUFBUTtzQkFEUCxLQUFLO2dCQUtOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFLTixjQUFjO3NCQURiLE1BQU07Z0JBS1AsY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNZXNzYWdlU3RyaXBDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVzc2FnZS1zdHJpcCc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgdHJhY2tCeUZuIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCB0eXBlIEFwcHJvdmFsRmxvd01lc3NhZ2VUeXBlID1cbiAgICB8ICd3YXRjaGVyc0NoYW5nZVN1Y2Nlc3MnXG4gICAgfCAnYXBwcm92ZXJBZGRTdWNjZXNzJ1xuICAgIHwgJ3RlYW1BZGRTdWNjZXNzJ1xuICAgIHwgJ25vZGVFZGl0J1xuICAgIHwgJ25vZGVSZW1vdmUnXG4gICAgfCAnbm9kZXNSZW1vdmUnXG4gICAgfCAndGVhbVJlbW92ZSdcbiAgICB8ICdlcnJvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwcm92YWxGbG93TWVzc2FnZSB7XG4gICAgdHlwZTogQXBwcm92YWxGbG93TWVzc2FnZVR5cGU7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEFwcHJvdmFsRmxvd01lc3NhZ2VzIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMC40MC4wXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWFwcHJvdmFsLWZsb3ctbWVzc2FnZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mbG93LW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYXBwcm92YWwtZmxvdy1tZXNzYWdlcy5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmRwLWFwcHJvdmFsLWZsb3ctbWVzc2FnZXMnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNZXNzYWdlU3RyaXBDb21wb25lbnQsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxGbG93TWVzc2FnZXNDb21wb25lbnQge1xuICAgIC8qKiBBcnJheSBvZiBtZXNzYWdlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWVzc2FnZXM6IEFwcHJvdmFsRmxvd01lc3NhZ2VbXSA9IFtdO1xuXG4gICAgLyoqIFdoZXRoZXIgdW5kbyBhY3Rpb24gaXMgYXZhaWxhYmxlICovXG4gICAgQElucHV0KClcbiAgICB1bmRvTGFzdEFjdGlvbkF2YWlsYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBtZXNzYWdlcyBhcnJheSBjaGFuZ2UgKi9cbiAgICBAT3V0cHV0KClcbiAgICBtZXNzYWdlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXBwcm92YWxGbG93TWVzc2FnZVtdPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrIHVuZG8gYnV0dG9uICovXG4gICAgQE91dHB1dCgpXG4gICAgdW5kb0xhc3RBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90cmFja0J5Rm4gPSB0cmFja0J5Rm47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kaXNtaXNzTWVzc2FnZShtZXNzYWdlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VzLnNwbGljZShtZXNzYWdlSW5kZXgsIDEpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3VuZG9MYXN0QWN0aW9uKG1lc3NhZ2VJbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLl9kaXNtaXNzTWVzc2FnZShtZXNzYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLnVuZG9MYXN0QWN0aW9uLmVtaXQoKTtcbiAgICB9XG59XG4iLCJAZm9yIChtZXNzYWdlIG9mIG1lc3NhZ2VzOyB0cmFjayBtZXNzYWdlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxmZC1tZXNzYWdlLXN0cmlwXG4gICAgICAgIGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbWVzc2FnZXNfX2l0ZW1cIlxuICAgICAgICBbdHlwZV09XCJtZXNzYWdlLnR5cGUgPT09ICdlcnJvcicgPyAnZXJyb3InIDogJ3N1Y2Nlc3MnXCJcbiAgICAgICAgW2Rpc21pc3NpYmxlXT1cIm1lc3NhZ2UudHlwZSAhPT0gJ2Vycm9yJ1wiXG4gICAgICAgIChvbkRpc21pc3MpPVwiX2Rpc21pc3NNZXNzYWdlKGkpXCJcbiAgICA+XG4gICAgICAgIDxiZGk+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdhcHByb3ZlckFkZFN1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubWVzc2FnZXNBcHByb3ZlckFkZGVkU3VjY2VzcycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgndGVhbUFkZFN1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubWVzc2FnZXNUZWFtQWRkZWRTdWNjZXNzJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdub2RlRWRpdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5tZXNzYWdlc05vZGVFZGl0ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ25vZGVSZW1vdmUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubWVzc2FnZXNOb2RlUmVtb3ZlZFNpbmd1bGFyJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdub2Rlc1JlbW92ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5tZXNzYWdlc05vZGVSZW1vdmVkUGx1cmFsJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCd0ZWFtUmVtb3ZlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm1lc3NhZ2VzVGVhbVJlbW92ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ2Vycm9yJykge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm1lc3NhZ2VzRXJyb3JCdWlsZEdyYXBoJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICBAaWYgKHVuZG9MYXN0QWN0aW9uQXZhaWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3VuZG9MYXN0QWN0aW9uKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiX3VuZG9MYXN0QWN0aW9uKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiX3VuZG9MYXN0QWN0aW9uKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm1lc3NhZ2VzVW5kb0FjdGlvbicgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9iZGk+XG4gICAgPC9mZC1tZXNzYWdlLXN0cmlwPlxufVxuIl19
|
|
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
32
32
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { placement: [{
|
|
33
33
|
type: Input
|
|
34
34
|
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1kcm9wLXpvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9hcHByb3ZhbC1mbG93L2FwcHJvdmFsLWZsb3ctbm9kZS9hcHByb3ZhbC1mbG93LWRyb3Atem9uZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVU3RCxNQUFNLE9BQU8sNkJBQTZCO0lBUXRDLGNBQWM7SUFDZCxZQUE2QixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBSjlDLGlGQUFpRjtRQUNqRixXQUFNLEdBQUcsS0FBSyxDQUFDO0lBR2tDLENBQUM7SUFFbEQsY0FBYztJQUNkLDZCQUE2QixDQUFDLFFBQWlCO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFdEUsSUFDSSxZQUFZLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUc7WUFDckQsWUFBWSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJO1lBQ3RELFlBQVksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTTtZQUMzRCxZQUFZLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFDMUQ7WUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN0QjtJQUNMLENBQUM7OEdBekJRLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQU56QyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ25COytFQUlHLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXBwcm92YWxGbG93TmV3Tm9kZVBsYWNlbWVudCB9IGZyb20gJy4uL2FwcHJvdmFsLWZsb3ctYWRkLW5vZGUvYXBwcm92YWwtZmxvdy1hZGQtbm9kZS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkcC1hcHByb3ZhbC1mbG93LWRyb3Atem9uZV0nLFxuICAgIGV4cG9ydEFzOiAnZmRwLWFwcHJvdmFsLWZsb3ctZHJvcC16b25lJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd0Ryb3Bab25lRGlyZWN0aXZlIHtcbiAgICAvKiogQXBwcm92YWwgZmxvdyBuZXcgbm9kZSBwbGFjZW1lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlbWVudDogQXBwcm92YWxGbG93TmV3Tm9kZVBsYWNlbWVudDtcblxuICAgIC8qKiBXaGV0aGVyIGRyb3Agem9uZSBpcyBhY3RpdmUgKHBvaW50ZXIgd2l0aCBkcmFnZ2VkIG5vZGUgb3ZlciB0aGUgZHJvcCB6b25lKSAqL1xuICAgIGFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2hlY2tJZk5vZGVEcmFnZ2VkSW5Ecm9wWm9uZShub2RlUmVjdDogRE9NUmVjdCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGRyb3Bab25lUmVjdCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBkcm9wWm9uZVJlY3QudG9wICsgZHJvcFpvbmVSZWN0LmhlaWdodCA+IG5vZGVSZWN0LnRvcCAmJlxuICAgICAgICAgICAgZHJvcFpvbmVSZWN0LmxlZnQgKyBkcm9wWm9uZVJlY3Qud2lkdGggPiBub2RlUmVjdC5sZWZ0ICYmXG4gICAgICAgICAgICBkcm9wWm9uZVJlY3QuYm90dG9tIC0gZHJvcFpvbmVSZWN0LmhlaWdodCA8IG5vZGVSZWN0LmJvdHRvbSAmJlxuICAgICAgICAgICAgZHJvcFpvbmVSZWN0LnJpZ2h0IC0gZHJvcFpvbmVSZWN0LndpZHRoIDwgbm9kZVJlY3QucmlnaHRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|