From c5fb8ab8c2f88d53653c3ca5e89c0f00b6c1e76f Mon Sep 17 00:00:00 2001 From: Scotty Bollinger Date: Fri, 26 Mar 2021 10:19:36 -0500 Subject: [PATCH 01/55] [Workplace Search] Update global state when org nane changes (#95448) Currently we instantiate the Workplace Search app with server props passed in from the server on initial page load. This data includes the organization name. In our settings section, we poll the server to get update information, but once the data is change, the global state does not get updated on a route change. This is only a problem in the case where a user has changed their org name and returns to the overview page before reloading the page. When this happens, the onboarding step asking the user to change thier org name is still visible. --- .../applications/workplace_search/app_logic.test.ts | 10 ++++++++++ .../public/applications/workplace_search/app_logic.ts | 6 ++++++ .../workplace_search/views/settings/settings_logic.ts | 2 ++ 3 files changed, 18 insertions(+) diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/app_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/app_logic.test.ts index 82fc00923202f..34e67acc870ee 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/app_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/app_logic.test.ts @@ -82,4 +82,14 @@ describe('AppLogic', () => { expect(AppLogic.values.account.canCreatePersonalSources).toEqual(true); }); }); + + describe('setOrgName', () => { + it('sets property', () => { + const NAME = 'new name'; + mount(DEFAULT_INITIAL_APP_DATA); + AppLogic.actions.setOrgName(NAME); + + expect(AppLogic.values.organization.name).toEqual(NAME); + }); + }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/app_logic.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/app_logic.ts index b81f538bd4709..26e1d7fbb93fd 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/app_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/app_logic.ts @@ -22,6 +22,7 @@ interface AppValues extends WorkplaceSearchInitialData { interface AppActions { initializeAppData(props: InitialAppData): InitialAppData; setContext(isOrganization: boolean): boolean; + setOrgName(name: string): string; setSourceRestriction(canCreatePersonalSources: boolean): boolean; } @@ -36,6 +37,7 @@ export const AppLogic = kea>({ isFederatedAuth, }), setContext: (isOrganization) => isOrganization, + setOrgName: (name: string) => name, setSourceRestriction: (canCreatePersonalSources: boolean) => canCreatePersonalSources, }, reducers: { @@ -61,6 +63,10 @@ export const AppLogic = kea>({ emptyOrg, { initializeAppData: (_, { workplaceSearch }) => workplaceSearch?.organization || emptyOrg, + setOrgName: (state, name) => ({ + ...state, + name, + }), }, ], account: [ diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/settings_logic.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/settings_logic.ts index ad552ff8f5a41..e07adbde15939 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/settings_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/settings_logic.ts @@ -17,6 +17,7 @@ import { } from '../../../shared/flash_messages'; import { HttpLogic } from '../../../shared/http'; import { KibanaLogic } from '../../../shared/kibana'; +import { AppLogic } from '../../app_logic'; import { ORG_UPDATED_MESSAGE, OAUTH_APP_UPDATED_MESSAGE } from '../../constants'; import { ORG_SETTINGS_CONNECTORS_PATH } from '../../routes'; import { Connector } from '../../types'; @@ -150,6 +151,7 @@ export const SettingsLogic = kea> const response = await http.put(route, { body }); actions.setUpdatedName(response); setSuccessMessage(ORG_UPDATED_MESSAGE); + AppLogic.actions.setOrgName(name); } catch (e) { flashAPIErrors(e); } From b1525f0af7a3ae74c6e586b9c7269fd8cfac7128 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Fri, 26 Mar 2021 16:23:41 +0100 Subject: [PATCH 02/55] [Lens] Allow modifying curve type for line/area series charts (#94675) --- .../shared_components/toolbar_popover.tsx | 1 + .../__snapshots__/to_expression.test.ts.snap | 3 + .../public/xy_visualization/expression.tsx | 25 ++- .../public/xy_visualization/to_expression.ts | 1 + .../lens/public/xy_visualization/types.ts | 4 + .../line_curve_option.test.tsx | 41 ++++ .../line_curve_option.tsx | 56 +++++ .../missing_value_option.test.tsx | 94 +++++++++ .../missing_values_option.tsx | 138 ++++++++++++ .../visual_options_popover.test.tsx | 196 ++++++++++++++++++ .../visual_options_popover.tsx | 116 +++++++++++ .../xy_visualization/xy_config_panel.test.tsx | 176 +--------------- .../xy_visualization/xy_config_panel.tsx | 192 +---------------- .../public/xy_visualization/xy_suggestions.ts | 1 + .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - .../test/functional/apps/lens/smokescreen.ts | 5 +- .../test/functional/page_objects/lens_page.ts | 11 +- 18 files changed, 696 insertions(+), 366 deletions(-) create mode 100644 x-pack/plugins/lens/public/xy_visualization/visual_options_popover/line_curve_option.test.tsx create mode 100644 x-pack/plugins/lens/public/xy_visualization/visual_options_popover/line_curve_option.tsx create mode 100644 x-pack/plugins/lens/public/xy_visualization/visual_options_popover/missing_value_option.test.tsx create mode 100644 x-pack/plugins/lens/public/xy_visualization/visual_options_popover/missing_values_option.tsx create mode 100644 x-pack/plugins/lens/public/xy_visualization/visual_options_popover/visual_options_popover.test.tsx create mode 100644 x-pack/plugins/lens/public/xy_visualization/visual_options_popover/visual_options_popover.tsx diff --git a/x-pack/plugins/lens/public/shared_components/toolbar_popover.tsx b/x-pack/plugins/lens/public/shared_components/toolbar_popover.tsx index c0788e6f67dfe..18c73a01cf784 100644 --- a/x-pack/plugins/lens/public/shared_components/toolbar_popover.tsx +++ b/x-pack/plugins/lens/public/shared_components/toolbar_popover.tsx @@ -15,6 +15,7 @@ const typeToIconMap: { [type: string]: string | IconType } = { labels: 'visText', values: 'number', list: 'list', + visualOptions: 'brush', }; export interface ToolbarPopoverProps { diff --git a/x-pack/plugins/lens/public/xy_visualization/__snapshots__/to_expression.test.ts.snap b/x-pack/plugins/lens/public/xy_visualization/__snapshots__/to_expression.test.ts.snap index 982f513ae1019..1130bd7a95d88 100644 --- a/x-pack/plugins/lens/public/xy_visualization/__snapshots__/to_expression.test.ts.snap +++ b/x-pack/plugins/lens/public/xy_visualization/__snapshots__/to_expression.test.ts.snap @@ -27,6 +27,9 @@ Object { "type": "expression", }, ], + "curveType": Array [ + "LINEAR", + ], "description": Array [ "", ], diff --git a/x-pack/plugins/lens/public/xy_visualization/expression.tsx b/x-pack/plugins/lens/public/xy_visualization/expression.tsx index 0bf5c139e2403..5615a9ac34898 100644 --- a/x-pack/plugins/lens/public/xy_visualization/expression.tsx +++ b/x-pack/plugins/lens/public/xy_visualization/expression.tsx @@ -24,6 +24,7 @@ import { HorizontalAlignment, ElementClickListener, BrushEndListener, + CurveType, } from '@elastic/charts'; import { I18nProvider } from '@kbn/i18n/react'; import { @@ -179,6 +180,13 @@ export const xyChart: ExpressionFunctionDefinition< help: 'Layers of visual series', multi: true, }, + curveType: { + types: ['string'], + options: ['LINEAR', 'CURVE_MONOTONE_X'], + help: i18n.translate('xpack.lens.xyChart.curveType.help', { + defaultMessage: 'Define how curve type is rendered for a line chart', + }), + }, }, fn(data: LensMultiTable, args: XYArgs) { return { @@ -773,10 +781,17 @@ export function XYChart({ const index = `${layerIndex}-${accessorIndex}`; + const curveType = args.curveType ? CurveType[args.curveType] : undefined; + switch (seriesType) { case 'line': return ( - + ); case 'bar': case 'bar_stacked': @@ -804,11 +819,17 @@ export function XYChart({ key={index} {...seriesProps} fit={isPercentage ? 'zero' : getFitOptions(fittingFunction)} + curve={curveType} /> ); case 'area': return ( - + ); default: return assertNever(seriesType); diff --git a/x-pack/plugins/lens/public/xy_visualization/to_expression.ts b/x-pack/plugins/lens/public/xy_visualization/to_expression.ts index 331e27a8efdb0..6a1882edde949 100644 --- a/x-pack/plugins/lens/public/xy_visualization/to_expression.ts +++ b/x-pack/plugins/lens/public/xy_visualization/to_expression.ts @@ -148,6 +148,7 @@ export const buildExpression = ( }, ], fittingFunction: [state.fittingFunction || 'None'], + curveType: [state.curveType || 'LINEAR'], axisTitlesVisibilitySettings: [ { type: 'expression', diff --git a/x-pack/plugins/lens/public/xy_visualization/types.ts b/x-pack/plugins/lens/public/xy_visualization/types.ts index 126be41e7b129..6f1a01acd6e76 100644 --- a/x-pack/plugins/lens/public/xy_visualization/types.ts +++ b/x-pack/plugins/lens/public/xy_visualization/types.ts @@ -413,8 +413,11 @@ export interface XYArgs { }; tickLabelsVisibilitySettings?: AxesSettingsConfig & { type: 'lens_xy_tickLabelsConfig' }; gridlinesVisibilitySettings?: AxesSettingsConfig & { type: 'lens_xy_gridlinesConfig' }; + curveType?: XYCurveType; } +export type XYCurveType = 'LINEAR' | 'CURVE_MONOTONE_X'; + // Persisted parts of the state export interface XYState { preferredSeriesType: SeriesType; @@ -428,6 +431,7 @@ export interface XYState { axisTitlesVisibilitySettings?: AxesSettingsConfig; tickLabelsVisibilitySettings?: AxesSettingsConfig; gridlinesVisibilitySettings?: AxesSettingsConfig; + curveType?: XYCurveType; } export type State = XYState; diff --git a/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/line_curve_option.test.tsx b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/line_curve_option.test.tsx new file mode 100644 index 0000000000000..c37a36a42fa47 --- /dev/null +++ b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/line_curve_option.test.tsx @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { mountWithIntl as mount, shallowWithIntl as shallow } from '@kbn/test/jest'; +import { EuiSwitch } from '@elastic/eui'; +import { LineCurveOption } from './line_curve_option'; + +describe('Line curve option', () => { + it('should show currently selected line curve option', () => { + const component = shallow(); + + expect(component.find(EuiSwitch).prop('checked')).toEqual(true); + }); + + it('should show currently curving disabled', () => { + const component = shallow(); + + expect(component.find(EuiSwitch).prop('checked')).toEqual(false); + }); + + it('should show curving option when enabled', () => { + const component = mount( + + ); + + expect(component.exists('[data-test-subj="lnsCurveStyleToggle"]')).toEqual(true); + }); + + it('should hide curve option when disabled', () => { + const component = mount( + + ); + + expect(component.exists('[data-test-subj="lnsCurveStyleToggle"]')).toEqual(false); + }); +}); diff --git a/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/line_curve_option.tsx b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/line_curve_option.tsx new file mode 100644 index 0000000000000..ea0a1553ba5e5 --- /dev/null +++ b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/line_curve_option.tsx @@ -0,0 +1,56 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiFormRow, EuiSpacer, EuiSwitch } from '@elastic/eui'; +import { XYCurveType } from '../types'; + +export interface LineCurveOptionProps { + /** + * Currently selected value + */ + value?: XYCurveType; + /** + * Callback on display option change + */ + onChange: (id: XYCurveType) => void; + isCurveTypeEnabled?: boolean; +} + +export const LineCurveOption: React.FC = ({ + onChange, + value, + isCurveTypeEnabled = true, +}) => { + return isCurveTypeEnabled ? ( + <> + + { + if (e.target.checked) { + onChange('CURVE_MONOTONE_X'); + } else { + onChange('LINEAR'); + } + }} + data-test-subj="lnsCurveStyleToggle" + /> + + + + ) : null; +}; diff --git a/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/missing_value_option.test.tsx b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/missing_value_option.test.tsx new file mode 100644 index 0000000000000..851b14839d7f7 --- /dev/null +++ b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/missing_value_option.test.tsx @@ -0,0 +1,94 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { shallowWithIntl as shallow, mountWithIntl as mount } from '@kbn/test/jest'; +import { EuiSuperSelect, EuiButtonGroup } from '@elastic/eui'; +import { MissingValuesOptions } from './missing_values_option'; + +describe('Missing values option', () => { + it('should show currently selected fitting function', () => { + const component = shallow( + + ); + + expect(component.find(EuiSuperSelect).prop('valueOfSelected')).toEqual('Carry'); + }); + + it('should show currently selected value labels display setting', () => { + const component = mount( + + ); + + expect(component.find(EuiButtonGroup).prop('idSelected')).toEqual('value_labels_inside'); + }); + + it('should show display field when enabled', () => { + const component = mount( + + ); + + expect(component.exists('[data-test-subj="lnsValueLabelsDisplay"]')).toEqual(true); + }); + + it('should hide in display value label option when disabled', () => { + const component = mount( + + ); + + expect(component.exists('[data-test-subj="lnsValueLabelsDisplay"]')).toEqual(false); + }); + + it('should show the fitting option when enabled', () => { + const component = mount( + + ); + + expect(component.exists('[data-test-subj="lnsMissingValuesSelect"]')).toEqual(true); + }); + + it('should hide the fitting option when disabled', () => { + const component = mount( + + ); + + expect(component.exists('[data-test-subj="lnsMissingValuesSelect"]')).toEqual(false); + }); +}); diff --git a/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/missing_values_option.tsx b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/missing_values_option.tsx new file mode 100644 index 0000000000000..fb6ecec4d2801 --- /dev/null +++ b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/missing_values_option.tsx @@ -0,0 +1,138 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiButtonGroup, EuiFormRow, EuiIconTip, EuiSuperSelect, EuiText } from '@elastic/eui'; +import { FittingFunction, fittingFunctionDefinitions } from '../fitting_functions'; +import { ValueLabelConfig } from '../types'; + +export interface MissingValuesOptionProps { + valueLabels?: ValueLabelConfig; + fittingFunction?: FittingFunction; + onValueLabelChange: (newMode: ValueLabelConfig) => void; + onFittingFnChange: (newMode: FittingFunction) => void; + isValueLabelsEnabled?: boolean; + isFittingEnabled?: boolean; +} + +const valueLabelsOptions: Array<{ + id: string; + value: 'hide' | 'inside' | 'outside'; + label: string; + 'data-test-subj': string; +}> = [ + { + id: `value_labels_hide`, + value: 'hide', + label: i18n.translate('xpack.lens.xyChart.valueLabelsVisibility.auto', { + defaultMessage: 'Hide', + }), + 'data-test-subj': 'lnsXY_valueLabels_hide', + }, + { + id: `value_labels_inside`, + value: 'inside', + label: i18n.translate('xpack.lens.xyChart.valueLabelsVisibility.inside', { + defaultMessage: 'Show', + }), + 'data-test-subj': 'lnsXY_valueLabels_inside', + }, +]; + +export const MissingValuesOptions: React.FC = ({ + onValueLabelChange, + onFittingFnChange, + valueLabels, + fittingFunction, + isValueLabelsEnabled = true, + isFittingEnabled = true, +}) => { + const valueLabelsVisibilityMode = valueLabels || 'hide'; + + return ( + <> + {isValueLabelsEnabled && ( + + {i18n.translate('xpack.lens.shared.chartValueLabelVisibilityLabel', { + defaultMessage: 'Labels', + })} + + } + > + value === valueLabelsVisibilityMode)!.id + } + onChange={(modeId) => { + const newMode = valueLabelsOptions.find(({ id }) => id === modeId)!.value; + onValueLabelChange(newMode); + }} + /> + + )} + {isFittingEnabled && ( + + {i18n.translate('xpack.lens.xyChart.missingValuesLabel', { + defaultMessage: 'Missing values', + })}{' '} + + + } + > + { + return { + value: id, + dropdownDisplay: ( + <> + {title} + +

{description}

+
+ + ), + inputDisplay: title, + }; + })} + valueOfSelected={fittingFunction || 'None'} + onChange={(value) => onFittingFnChange(value)} + itemLayoutAlign="top" + hasDividers + /> +
+ )} + + ); +}; diff --git a/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/visual_options_popover.test.tsx b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/visual_options_popover.test.tsx new file mode 100644 index 0000000000000..e7ec395312bff --- /dev/null +++ b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/visual_options_popover.test.tsx @@ -0,0 +1,196 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { shallowWithIntl as shallow } from '@kbn/test/jest'; +import { Position } from '@elastic/charts'; +import { FramePublicAPI } from '../../types'; +import { createMockDatasource, createMockFramePublicAPI } from '../../editor_frame_service/mocks'; +import { State } from '../types'; +import { VisualOptionsPopover } from './visual_options_popover'; +import { ToolbarPopover } from '../../shared_components'; +import { MissingValuesOptions } from './missing_values_option'; + +describe('Visual options popover', () => { + let frame: FramePublicAPI; + + function testState(): State { + return { + legend: { isVisible: true, position: Position.Right }, + valueLabels: 'hide', + preferredSeriesType: 'bar', + layers: [ + { + seriesType: 'bar', + layerId: 'first', + splitAccessor: 'baz', + xAccessor: 'foo', + accessors: ['bar'], + }, + ], + }; + } + + beforeEach(() => { + frame = createMockFramePublicAPI(); + frame.datasourceLayers = { + first: createMockDatasource('test').publicAPIMock, + }; + }); + it('should disable the visual options for stacked bar charts', () => { + const state = testState(); + const component = shallow( + + ); + + expect(component.find(ToolbarPopover).prop('isDisabled')).toEqual(true); + }); + + it('should disable the values and fitting for percentage area charts', () => { + const state = testState(); + const component = shallow( + + ); + + expect(component.find(MissingValuesOptions).prop('isValueLabelsEnabled')).toEqual(false); + expect(component.find(MissingValuesOptions).prop('isFittingEnabled')).toEqual(false); + }); + + it('should not disable the visual options for percentage area charts', () => { + const state = testState(); + const component = shallow( + + ); + + expect(component.find(ToolbarPopover).prop('isDisabled')).toEqual(false); + }); + + it('should disabled the popover if there is histogram series', () => { + // make it detect an histogram series + frame.datasourceLayers.first.getOperationForColumnId = jest.fn().mockReturnValueOnce({ + isBucketed: true, + scale: 'interval', + }); + const state = testState(); + const component = shallow( + + ); + + expect(component.find(ToolbarPopover).prop('isDisabled')).toEqual(true); + }); + + it('should hide the fitting option for bar series', () => { + const state = testState(); + const component = shallow( + + ); + + expect(component.find(MissingValuesOptions).prop('isFittingEnabled')).toEqual(false); + }); + + it('should show the popover and display field enabled for bar and horizontal_bar series', () => { + const state = testState(); + + const component = shallow( + + ); + + expect(component.find(MissingValuesOptions).prop('isValueLabelsEnabled')).toEqual(true); + }); + + it('should hide in the popover the display option for area and line series', () => { + const state = testState(); + const component = shallow( + + ); + + expect(component.find(MissingValuesOptions).prop('isValueLabelsEnabled')).toEqual(false); + }); + + it('should keep the display option for bar series with multiple layers', () => { + frame.datasourceLayers = { + ...frame.datasourceLayers, + second: createMockDatasource('test').publicAPIMock, + }; + + const state = testState(); + const component = shallow( + + ); + + expect(component.find(MissingValuesOptions).prop('isValueLabelsEnabled')).toEqual(true); + }); +}); diff --git a/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/visual_options_popover.tsx b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/visual_options_popover.tsx new file mode 100644 index 0000000000000..fcdef86cc5d0e --- /dev/null +++ b/x-pack/plugins/lens/public/xy_visualization/visual_options_popover/visual_options_popover.tsx @@ -0,0 +1,116 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { ToolbarPopover } from '../../shared_components'; +import { MissingValuesOptions } from './missing_values_option'; +import { LineCurveOption } from './line_curve_option'; +import { XYState } from '../types'; +import { hasHistogramSeries } from '../state_helpers'; +import { ValidLayer } from '../types'; +import { TooltipWrapper } from '../tooltip_wrapper'; +import { FramePublicAPI } from '../../types'; + +function getValueLabelDisableReason({ + isAreaPercentage, + isHistogramSeries, +}: { + isAreaPercentage: boolean; + isHistogramSeries: boolean; +}): string { + if (isHistogramSeries) { + return i18n.translate('xpack.lens.xyChart.valuesHistogramDisabledHelpText', { + defaultMessage: 'This setting cannot be changed on histograms.', + }); + } + if (isAreaPercentage) { + return i18n.translate('xpack.lens.xyChart.valuesPercentageDisabledHelpText', { + defaultMessage: 'This setting cannot be changed on percentage area charts.', + }); + } + return i18n.translate('xpack.lens.xyChart.valuesStackedDisabledHelpText', { + defaultMessage: 'This setting cannot be changed on stacked or percentage bar charts', + }); +} + +export interface VisualOptionsPopoverProps { + state: XYState; + setState: (newState: XYState) => void; + datasourceLayers: FramePublicAPI['datasourceLayers']; +} + +export const VisualOptionsPopover: React.FC = ({ + state, + setState, + datasourceLayers, +}) => { + const isAreaPercentage = state?.layers.some( + ({ seriesType }) => seriesType === 'area_percentage_stacked' + ); + + const hasNonBarSeries = state?.layers.some(({ seriesType }) => + ['area_stacked', 'area', 'line'].includes(seriesType) + ); + + const hasBarNotStacked = state?.layers.some(({ seriesType }) => + ['bar', 'bar_horizontal'].includes(seriesType) + ); + + const isHistogramSeries = Boolean( + hasHistogramSeries(state?.layers as ValidLayer[], datasourceLayers) + ); + + const isValueLabelsEnabled = !hasNonBarSeries && hasBarNotStacked && !isHistogramSeries; + const isFittingEnabled = hasNonBarSeries; + const isCurveTypeEnabled = hasNonBarSeries || isAreaPercentage; + + const valueLabelsDisabledReason = getValueLabelDisableReason({ + isAreaPercentage, + isHistogramSeries, + }); + + const isDisabled = !isValueLabelsEnabled && !isFittingEnabled && !isCurveTypeEnabled; + + return ( + + + { + setState({ + ...state, + curveType: id, + }); + }} + /> + + { + setState({ ...state, valueLabels: newMode }); + }} + onFittingFnChange={(newVal) => { + setState({ ...state, fittingFunction: newVal }); + }} + /> + + + ); +}; diff --git a/x-pack/plugins/lens/public/xy_visualization/xy_config_panel.test.tsx b/x-pack/plugins/lens/public/xy_visualization/xy_config_panel.test.tsx index 40ac4958aefb9..f965140a48ca0 100644 --- a/x-pack/plugins/lens/public/xy_visualization/xy_config_panel.test.tsx +++ b/x-pack/plugins/lens/public/xy_visualization/xy_config_panel.test.tsx @@ -7,9 +7,8 @@ import React from 'react'; import { mountWithIntl as mount, shallowWithIntl as shallow } from '@kbn/test/jest'; -import { EuiButtonGroupProps, EuiSuperSelect, EuiButtonGroup } from '@elastic/eui'; +import { EuiButtonGroupProps, EuiButtonGroup } from '@elastic/eui'; import { LayerContextMenu, XyToolbar, DimensionEditor } from './xy_config_panel'; -import { ToolbarPopover } from '../shared_components'; import { AxisSettingsPopover } from './axis_settings_popover'; import { FramePublicAPI } from '../types'; import { State } from './types'; @@ -101,179 +100,6 @@ describe('XY Config panels', () => { }); describe('XyToolbar', () => { - it('should show currently selected fitting function', () => { - const state = testState(); - - const component = shallow( - - ); - - expect(component.find(EuiSuperSelect).prop('valueOfSelected')).toEqual('Carry'); - }); - - it('should show currently selected value labels display setting', () => { - const state = testState(); - - const component = shallow( - - ); - - expect(component.find(EuiButtonGroup).prop('idSelected')).toEqual('value_labels_inside'); - }); - - it('should disable the popover for stacked bar charts', () => { - const state = testState(); - const component = shallow( - - ); - - expect(component.find(ToolbarPopover).prop('isDisabled')).toEqual(true); - }); - - it('should disable the popover for percentage area charts', () => { - const state = testState(); - const component = shallow( - - ); - - expect(component.find(ToolbarPopover).prop('isDisabled')).toEqual(true); - }); - - it('should disabled the popover if there is histogram series', () => { - // make it detect an histogram series - frame.datasourceLayers.first.getOperationForColumnId = jest.fn().mockReturnValueOnce({ - isBucketed: true, - scale: 'interval', - }); - const state = testState(); - const component = shallow( - - ); - - expect(component.find(ToolbarPopover).prop('isDisabled')).toEqual(true); - }); - - it('should show the popover and display field enabled for bar and horizontal_bar series', () => { - const state = testState(); - - const component = shallow( - - ); - - expect(component.exists('[data-test-subj="lnsValueLabelsDisplay"]')).toEqual(true); - }); - - it('should hide the fitting option for bar series', () => { - const state = testState(); - const component = shallow( - - ); - - expect(component.exists('[data-test-subj="lnsMissingValuesSelect"]')).toEqual(false); - }); - - it('should hide in the popover the display option for area and line series', () => { - const state = testState(); - const component = shallow( - - ); - - expect(component.exists('[data-test-subj="lnsValueLabelsDisplay"]')).toEqual(false); - }); - - it('should keep the display option for bar series with multiple layers', () => { - frame.datasourceLayers = { - ...frame.datasourceLayers, - second: createMockDatasource('test').publicAPIMock, - }; - - const state = testState(); - const component = shallow( - - ); - - expect(component.exists('[data-test-subj="lnsValueLabelsDisplay"]')).toEqual(true); - }); - it('should disable the popover if there is no right axis', () => { const state = testState(); const component = shallow(); diff --git a/x-pack/plugins/lens/public/xy_visualization/xy_config_panel.tsx b/x-pack/plugins/lens/public/xy_visualization/xy_config_panel.tsx index ac08c55eeadbf..d7868a17bf9db 100644 --- a/x-pack/plugins/lens/public/xy_visualization/xy_config_panel.tsx +++ b/x-pack/plugins/lens/public/xy_visualization/xy_config_panel.tsx @@ -14,15 +14,12 @@ import { EuiButtonGroup, EuiFlexGroup, EuiFlexItem, - EuiSuperSelect, EuiFormRow, - EuiText, htmlIdGenerator, EuiColorPicker, EuiColorPickerProps, EuiToolTip, EuiIcon, - EuiIconTip, } from '@elastic/eui'; import { PaletteRegistry } from 'src/plugins/charts/public'; import { @@ -31,29 +28,17 @@ import { VisualizationDimensionEditorProps, FormatFactory, } from '../types'; -import { - State, - SeriesType, - visualizationTypes, - YAxisMode, - AxesSettingsConfig, - ValidLayer, -} from './types'; -import { - isHorizontalChart, - isHorizontalSeries, - getSeriesColor, - hasHistogramSeries, -} from './state_helpers'; +import { State, SeriesType, visualizationTypes, YAxisMode, AxesSettingsConfig } from './types'; +import { isHorizontalChart, isHorizontalSeries, getSeriesColor } from './state_helpers'; import { trackUiEvent } from '../lens_ui_telemetry'; -import { fittingFunctionDefinitions } from './fitting_functions'; -import { ToolbarPopover, LegendSettingsPopover } from '../shared_components'; +import { LegendSettingsPopover } from '../shared_components'; import { AxisSettingsPopover } from './axis_settings_popover'; import { TooltipWrapper } from './tooltip_wrapper'; import { getAxesConfiguration } from './axes_configuration'; import { PalettePicker } from '../shared_components'; import { getAccessorColorConfig, getColorAssignments } from './color_assignment'; import { getSortedAccessors } from './to_expression'; +import { VisualOptionsPopover } from './visual_options_popover/visual_options_popover'; type UnwrapArray = T extends Array ? P : T; type AxesSettingsConfigKeys = keyof AxesSettingsConfig; @@ -92,30 +77,6 @@ const legendOptions: Array<{ id: string; value: 'auto' | 'show' | 'hide'; label: }, ]; -const valueLabelsOptions: Array<{ - id: string; - value: 'hide' | 'inside' | 'outside'; - label: string; - 'data-test-subj': string; -}> = [ - { - id: `value_labels_hide`, - value: 'hide', - label: i18n.translate('xpack.lens.xyChart.valueLabelsVisibility.auto', { - defaultMessage: 'Hide', - }), - 'data-test-subj': 'lnsXY_valueLabels_hide', - }, - { - id: `value_labels_inside`, - value: 'inside', - label: i18n.translate('xpack.lens.xyChart.valueLabelsVisibility.inside', { - defaultMessage: 'Show', - }), - 'data-test-subj': 'lnsXY_valueLabels_inside', - }, -]; - export function LayerContextMenu(props: VisualizationLayerWidgetProps) { const { state, layerId } = props; const horizontalOnly = isHorizontalChart(state.layers); @@ -159,46 +120,9 @@ export function LayerContextMenu(props: VisualizationLayerWidgetProps) { ); } -function getValueLabelDisableReason({ - isAreaPercentage, - isHistogramSeries, -}: { - isAreaPercentage: boolean; - isHistogramSeries: boolean; -}): string { - if (isHistogramSeries) { - return i18n.translate('xpack.lens.xyChart.valuesHistogramDisabledHelpText', { - defaultMessage: 'This setting cannot be changed on histograms.', - }); - } - if (isAreaPercentage) { - return i18n.translate('xpack.lens.xyChart.valuesPercentageDisabledHelpText', { - defaultMessage: 'This setting cannot be changed on percentage area charts.', - }); - } - return i18n.translate('xpack.lens.xyChart.valuesStackedDisabledHelpText', { - defaultMessage: 'This setting cannot be changed on stacked or percentage bar charts', - }); -} export const XyToolbar = memo(function XyToolbar(props: VisualizationToolbarProps) { const { state, setState, frame } = props; - const hasNonBarSeries = state?.layers.some(({ seriesType }) => - ['area_stacked', 'area', 'line'].includes(seriesType) - ); - - const hasBarNotStacked = state?.layers.some(({ seriesType }) => - ['bar', 'bar_horizontal'].includes(seriesType) - ); - - const isAreaPercentage = state?.layers.some( - ({ seriesType }) => seriesType === 'area_percentage_stacked' - ); - - const isHistogramSeries = Boolean( - hasHistogramSeries(state?.layers as ValidLayer[], frame.datasourceLayers) - ); - const shouldRotate = state?.layers.length ? isHorizontalChart(state.layers) : false; const axisGroups = getAxesConfiguration(state?.layers, shouldRotate); @@ -267,113 +191,15 @@ export const XyToolbar = memo(function XyToolbar(props: VisualizationToolbarProp ? 'hide' : 'show'; - const valueLabelsVisibilityMode = state?.valueLabels || 'hide'; - - const isValueLabelsEnabled = !hasNonBarSeries && hasBarNotStacked && !isHistogramSeries; - const isFittingEnabled = hasNonBarSeries; - - const valueLabelsDisabledReason = getValueLabelDisableReason({ - isAreaPercentage, - isHistogramSeries, - }); - return ( - - - {isValueLabelsEnabled ? ( - - {i18n.translate('xpack.lens.shared.chartValueLabelVisibilityLabel', { - defaultMessage: 'Labels', - })} - - } - > - value === valueLabelsVisibilityMode)! - .id - } - onChange={(modeId) => { - const newMode = valueLabelsOptions.find(({ id }) => id === modeId)!.value; - setState({ ...state, valueLabels: newMode }); - }} - /> - - ) : null} - {isFittingEnabled ? ( - - {i18n.translate('xpack.lens.xyChart.missingValuesLabel', { - defaultMessage: 'Missing values', - })}{' '} - - - } - > - { - return { - value: id, - dropdownDisplay: ( - <> - {title} - -

{description}

-
- - ), - inputDisplay: title, - }; - })} - valueOfSelected={state?.fittingFunction || 'None'} - onChange={(value) => setState({ ...state, fittingFunction: value })} - itemLayoutAlign="top" - hasDividers - /> -
- ) : null} -
-
+ { // enable value labels - await PageObjects.lens.toggleToolbarPopover('lnsValuesButton'); + await PageObjects.lens.openVisualOptions(); await testSubjects.click('lnsXY_valueLabels_inside'); await PageObjects.lens.waitForVisualization(); diff --git a/x-pack/test/functional/page_objects/lens_page.ts b/x-pack/test/functional/page_objects/lens_page.ts index ccc4ed4ad87d0..423d33e979de1 100644 --- a/x-pack/test/functional/page_objects/lens_page.ts +++ b/x-pack/test/functional/page_objects/lens_page.ts @@ -430,11 +430,16 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont await colorPickerInput.type(color); await PageObjects.common.sleep(1000); // give time for debounced components to rerender }, - async editMissingValues(option: string) { + async openVisualOptions() { await retry.try(async () => { - await testSubjects.click('lnsValuesButton'); - await testSubjects.exists('lnsValuesButton'); + await testSubjects.click('lnsVisualOptionsButton'); + await testSubjects.exists('lnsVisualOptionsButton'); }); + }, + async useCurvedLines() { + await testSubjects.click('lnsCurveStyleToggle'); + }, + async editMissingValues(option: string) { await testSubjects.click('lnsMissingValuesSelect'); const optionSelector = await find.byCssSelector(`#${option}`); await optionSelector.click(); From f0613032825ab2ddca295a96e9dbcfc20757afc0 Mon Sep 17 00:00:00 2001 From: Quynh Nguyen <43350163+qn895@users.noreply.github.com> Date: Fri, 26 Mar 2021 10:25:39 -0500 Subject: [PATCH 03/55] [ML] Fix Transform runtime mappings retain original definition when cloning (#95436) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../transform/common/api_schemas/transforms.ts | 1 + x-pack/plugins/transform/public/app/common/request.ts | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/transform/common/api_schemas/transforms.ts b/x-pack/plugins/transform/common/api_schemas/transforms.ts index fc5c728311f7d..7fb1a62a67bb8 100644 --- a/x-pack/plugins/transform/common/api_schemas/transforms.ts +++ b/x-pack/plugins/transform/common/api_schemas/transforms.ts @@ -45,6 +45,7 @@ export const destSchema = schema.object({ export const pivotSchema = schema.object({ group_by: schema.any(), aggregations: schema.any(), + max_page_search_size: schema.maybe(schema.number()), }); export const latestFunctionSchema = schema.object({ diff --git a/x-pack/plugins/transform/public/app/common/request.ts b/x-pack/plugins/transform/public/app/common/request.ts index e25548668ac5f..647d511cc4dcf 100644 --- a/x-pack/plugins/transform/public/app/common/request.ts +++ b/x-pack/plugins/transform/public/app/common/request.ts @@ -84,11 +84,6 @@ export function getCombinedRuntimeMappings( ): StepDefineExposedState['runtimeMappings'] | undefined { let combinedRuntimeMappings = {}; - // Use runtime field mappings defined inline from API - if (isPopulatedObject(runtimeMappings)) { - combinedRuntimeMappings = { ...combinedRuntimeMappings, ...runtimeMappings }; - } - // And runtime field mappings defined by index pattern if (isIndexPattern(indexPattern)) { const computedFields = indexPattern.getComputedFields(); @@ -100,6 +95,12 @@ export function getCombinedRuntimeMappings( } } + // Use runtime field mappings defined inline from API + // and override fields with same name from index pattern + if (isPopulatedObject(runtimeMappings)) { + combinedRuntimeMappings = { ...combinedRuntimeMappings, ...runtimeMappings }; + } + if (isPopulatedObject(combinedRuntimeMappings)) { return combinedRuntimeMappings; } From 33e213cb2b5c44572463f8645624edc7b97f9d4e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Mar 2021 16:30:10 +0100 Subject: [PATCH 04/55] Update dependency @elastic/charts to v26 (master) (#95184) Co-authored-by: Renovate Bot Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Marco Vettorello --- package.json | 2 +- x-pack/test/functional/services/transform/wizard.ts | 4 +++- yarn.lock | 11 ++++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 66a6ef1d4558b..58a02027362b9 100644 --- a/package.json +++ b/package.json @@ -347,7 +347,7 @@ "@cypress/webpack-preprocessor": "^5.5.0", "@elastic/apm-rum": "^5.6.1", "@elastic/apm-rum-react": "^1.2.5", - "@elastic/charts": "25.3.0", + "@elastic/charts": "26.0.0", "@elastic/eslint-config-kibana": "link:packages/elastic-eslint-config-kibana", "@elastic/eslint-plugin-eui": "0.0.2", "@elastic/github-checks-reporter": "0.0.20b3", diff --git a/x-pack/test/functional/services/transform/wizard.ts b/x-pack/test/functional/services/transform/wizard.ts index d9ba127bc16ce..ee9954fec53b8 100644 --- a/x-pack/test/functional/services/transform/wizard.ts +++ b/x-pack/test/functional/services/transform/wizard.ts @@ -249,7 +249,9 @@ export function TransformWizardProvider({ getService, getPageObjects }: FtrProvi const actualColorStats = await canvasElement.getColorStats( `[data-test-subj="mlDataGridChart-${id}-histogram"] .echCanvasRenderer`, - sortedExpectedColorStats + sortedExpectedColorStats, + undefined, + 4 ); expect(actualColorStats.length).to.eql( diff --git a/yarn.lock b/yarn.lock index 0d7afc4293e70..bb51177659b10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1349,15 +1349,16 @@ dependencies: object-hash "^1.3.0" -"@elastic/charts@25.3.0": - version "25.3.0" - resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-25.3.0.tgz#03cd872907391be415f75209a73298eeffae3ce4" - integrity sha512-40LCVJ/X4uxk/4j+3PIiW596gfevcAUD9NkcMOEbhEgdS0OLTddmg5AHkRM6mfOV96GTrGjX6MB+qAoDgVOeBw== +"@elastic/charts@26.0.0": + version "26.0.0" + resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-26.0.0.tgz#42f06d3be0f40e0128e301b37bdfc509169c387b" + integrity sha512-5eBPSjdBb+pVDCcQOYA0dFBiYonHcw7ewxOUxgR8qMmay0xHc7gGUXZiDfIkyUDpJA+a9DS9juNNqKn/M4UbiQ== dependencies: "@popperjs/core" "^2.4.0" chroma-js "^2.1.0" classnames "^2.2.6" d3-array "^1.2.4" + d3-cloud "^1.2.5" d3-collection "^1.0.7" d3-color "^1.4.0" d3-interpolate "^1.4.0" @@ -10813,7 +10814,7 @@ d3-array@>=2.5, d3-array@^2.3.0, d3-array@^2.7.1: resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.8.0.tgz#f76e10ad47f1f4f75f33db5fc322eb9ffde5ef23" integrity sha512-6V272gsOeg7+9pTW1jSYOR1QE37g95I3my1hBmY+vOUNHRrk9yt4OTz/gK7PMkVAVDrYYq4mq3grTiZ8iJdNIw== -d3-cloud@1.2.5: +d3-cloud@1.2.5, d3-cloud@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/d3-cloud/-/d3-cloud-1.2.5.tgz#3e91564f2d27fba47fcc7d812eb5081ea24c603d" integrity sha512-4s2hXZgvs0CoUIw31oBAGrHt9Kt/7P9Ik5HIVzISFiWkD0Ga2VLAuO/emO/z1tYIpE7KG2smB4PhMPfFMJpahw== From a395fd86a8ae1cce898e1b61c3f35ddafe33e7cd Mon Sep 17 00:00:00 2001 From: Shahzad Date: Fri, 26 Mar 2021 16:50:15 +0100 Subject: [PATCH 05/55] [Uptime] Update query for ping histogram (#95495) --- .../common/runtime_types/ping/histogram.ts | 12 -- x-pack/plugins/uptime/server/lib/lib.ts | 9 +- .../get_ping_histogram.test.ts.snap | 2 +- .../lib/requests/get_ping_histogram.test.ts | 50 ++++---- .../server/lib/requests/get_ping_histogram.ts | 116 +++++++++--------- .../rest_api/pings/get_ping_histogram.ts | 4 +- 6 files changed, 93 insertions(+), 100 deletions(-) diff --git a/x-pack/plugins/uptime/common/runtime_types/ping/histogram.ts b/x-pack/plugins/uptime/common/runtime_types/ping/histogram.ts index a843eae29efe3..1cceaaed89974 100644 --- a/x-pack/plugins/uptime/common/runtime_types/ping/histogram.ts +++ b/x-pack/plugins/uptime/common/runtime_types/ping/histogram.ts @@ -30,15 +30,3 @@ export interface HistogramResult { histogram: HistogramDataPoint[]; minInterval: number; } - -export interface HistogramQueryResult { - key: number; - key_as_string: string; - doc_count: number; - down: { - doc_count: number; - }; - up: { - doc_count: number; - }; -} diff --git a/x-pack/plugins/uptime/server/lib/lib.ts b/x-pack/plugins/uptime/server/lib/lib.ts index 12e58b94cfa50..4b78683444297 100644 --- a/x-pack/plugins/uptime/server/lib/lib.ts +++ b/x-pack/plugins/uptime/server/lib/lib.ts @@ -12,11 +12,12 @@ import { ISavedObjectsRepository, } from 'kibana/server'; import chalk from 'chalk'; +import { estypes } from '@elastic/elasticsearch'; import { UMBackendFrameworkAdapter } from './adapters'; import { UMLicenseCheck } from './domains'; import { UptimeRequests } from './requests'; import { savedObjectsAdapter } from './saved_objects'; -import { ESSearchRequest, ESSearchResponse } from '../../../../../typings/elasticsearch'; +import { ESSearchResponse } from '../../../../../typings/elasticsearch'; export interface UMDomainLibs { requests: UptimeRequests; @@ -54,7 +55,7 @@ export function createUptimeESClient({ return { baseESClient: esClient, - async search( + async search( params: TParams ): Promise<{ body: ESSearchResponse }> { let res: any; @@ -151,3 +152,7 @@ export function debugESCall({ } console.log(`\n`); } + +export function createEsQuery(params: T): T { + return params; +} diff --git a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_ping_histogram.test.ts.snap b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_ping_histogram.test.ts.snap index 774ae47d68acd..2460752c3dad6 100644 --- a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_ping_histogram.test.ts.snap +++ b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_ping_histogram.test.ts.snap @@ -76,7 +76,7 @@ Object { "y": 1, }, Object { - "downCount": undefined, + "downCount": 0, "upCount": 2, "x": 2, "y": 1, diff --git a/x-pack/plugins/uptime/server/lib/requests/get_ping_histogram.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_ping_histogram.test.ts index 6a8115618ee96..5d03110e5cf28 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_ping_histogram.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_ping_histogram.test.ts @@ -21,16 +21,16 @@ describe('getPingHistogram', () => { { key: 1, up: { - doc_count: 2, + value: 2, }, down: { - doc_count: 1, + value: 1, }, }, { key: 2, up: { - doc_count: 2, + value: 2, }, down: { bucket_count: 1, @@ -53,10 +53,10 @@ describe('getPingHistogram', () => { { key: 1, up: { - doc_count: 2, + value: 2, }, down: { - doc_count: 1, + value: 1, }, }, ], @@ -68,8 +68,8 @@ describe('getPingHistogram', () => { const result = await getPingHistogram({ uptimeEsClient, - from: 'now-15m', - to: 'now', + dateStart: 'now-15m', + dateEnd: 'now', }); expect(mockEsClient.search).toHaveBeenCalledTimes(1); @@ -89,8 +89,8 @@ describe('getPingHistogram', () => { const result = await getPingHistogram({ uptimeEsClient, - from: 'now-15m', - to: 'now', + dateStart: 'now-15m', + dateEnd: 'now', filters: '', }); @@ -111,28 +111,28 @@ describe('getPingHistogram', () => { { key: 1, up: { - doc_count: 2, + value: 2, }, down: { - doc_count: 1, + value: 1, }, }, { key: 2, up: { - doc_count: 2, + value: 2, }, down: { - doc_count: 2, + value: 2, }, }, { key: 3, up: { - doc_count: 3, + value: 3, }, down: { - doc_count: 1, + value: 1, }, }, ], @@ -153,8 +153,8 @@ describe('getPingHistogram', () => { const result = await getPingHistogram({ uptimeEsClient, - from: 'now-15m', - to: 'now', + dateStart: 'now-15m', + dateEnd: 'now', filters: JSON.stringify(searchFilter), monitorId: undefined, }); @@ -175,28 +175,28 @@ describe('getPingHistogram', () => { { key: 1, up: { - doc_count: 2, + value: 2, }, down: { - doc_count: 1, + value: 1, }, }, { key: 2, up: { - doc_count: 1, + value: 1, }, down: { - doc_count: 2, + value: 2, }, }, { key: 3, up: { - doc_count: 3, + value: 3, }, down: { - doc_count: 1, + value: 1, }, }, ], @@ -209,8 +209,8 @@ describe('getPingHistogram', () => { const filters = `{"bool":{"must":[{"simple_query_string":{"query":"http"}}]}}`; const result = await getPingHistogram({ uptimeEsClient, - from: 'now-15m', - to: 'now', + dateStart: 'now-15m', + dateEnd: 'now', filters, }); diff --git a/x-pack/plugins/uptime/server/lib/requests/get_ping_histogram.ts b/x-pack/plugins/uptime/server/lib/requests/get_ping_histogram.ts index 0362ac30ac713..33615bb8516b5 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_ping_histogram.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_ping_histogram.ts @@ -6,30 +6,24 @@ */ import { getFilterClause } from '../helper'; -import { HistogramResult, HistogramQueryResult } from '../../../common/runtime_types'; +import { GetPingHistogramParams, HistogramResult } from '../../../common/runtime_types'; import { QUERY } from '../../../common/constants'; import { getHistogramInterval } from '../helper/get_histogram_interval'; import { UMElasticsearchQueryFn } from '../adapters/framework'; - -export interface GetPingHistogramParams { - /** @member dateRangeStart timestamp bounds */ - from: string; - /** @member dateRangeEnd timestamp bounds */ - to: string; - /** @member filters user-defined filters */ - filters?: string; - /** @member monitorId optional limit to monitorId */ - monitorId?: string; - - bucketSize?: string; - - query?: string; -} +import { createEsQuery } from '../lib'; export const getPingHistogram: UMElasticsearchQueryFn< GetPingHistogramParams, HistogramResult -> = async ({ uptimeEsClient, from, to, filters, monitorId, bucketSize, query }) => { +> = async ({ + uptimeEsClient, + dateStart: from, + dateEnd: to, + filters, + monitorId, + bucketSize, + query, +}) => { const boolFilters = filters ? JSON.parse(filters) : null; const additionalFilters = []; if (monitorId) { @@ -42,60 +36,66 @@ export const getPingHistogram: UMElasticsearchQueryFn< const minInterval = getHistogramInterval(from, to, QUERY.DEFAULT_BUCKET_COUNT); - const params = { - query: { - bool: { - filter, - ...(query - ? { - minimum_should_match: 1, - should: [ - { - multi_match: { - query: escape(query), - type: 'phrase_prefix' as const, - fields: ['monitor.id.text', 'monitor.name.text', 'url.full.text'], + const params = createEsQuery({ + body: { + query: { + bool: { + filter: [ + ...filter, + { + exists: { + field: 'summary', + }, + }, + ], + ...(query + ? { + minimum_should_match: 1, + should: [ + { + multi_match: { + query: escape(query), + type: 'phrase_prefix' as const, + fields: ['monitor.id.text', 'monitor.name.text', 'url.full.text'], + }, }, - }, - ], - } - : {}), - }, - }, - size: 0, - aggs: { - timeseries: { - date_histogram: { - field: '@timestamp', - fixed_interval: bucketSize || minInterval + 'ms', - missing: '0', + ], + } + : {}), }, - aggs: { - down: { - filter: { - term: { - 'monitor.status': 'down', + }, + size: 0, + aggs: { + timeseries: { + date_histogram: { + field: '@timestamp', + fixed_interval: bucketSize || minInterval + 'ms', + missing: '0', + }, + aggs: { + down: { + sum: { + field: 'summary.down', }, }, - }, - up: { - filter: { - term: { - 'monitor.status': 'up', + up: { + sum: { + field: 'summary.up', }, }, }, }, }, }, - }; + }); + + const { body: result } = await uptimeEsClient.search(params); + const buckets = result?.aggregations?.timeseries?.buckets ?? []; - const { body: result } = await uptimeEsClient.search({ body: params }); - const buckets: HistogramQueryResult[] = result?.aggregations?.timeseries?.buckets ?? []; const histogram = buckets.map((bucket) => { const x: number = bucket.key; - const downCount: number = bucket.down.doc_count; - const upCount: number = bucket.up.doc_count; + const downCount = bucket.down.value || 0; + const upCount = bucket.up.value || 0; return { x, downCount, diff --git a/x-pack/plugins/uptime/server/rest_api/pings/get_ping_histogram.ts b/x-pack/plugins/uptime/server/rest_api/pings/get_ping_histogram.ts index 8c0810d946a1b..69de7eba6e756 100644 --- a/x-pack/plugins/uptime/server/rest_api/pings/get_ping_histogram.ts +++ b/x-pack/plugins/uptime/server/rest_api/pings/get_ping_histogram.ts @@ -29,8 +29,8 @@ export const createGetPingHistogramRoute: UMRestApiRouteFactory = (libs: UMServe return await libs.requests.getPingHistogram({ uptimeEsClient, - from: dateStart, - to: dateEnd, + dateStart, + dateEnd, monitorId, filters, bucketSize, From 924724cf0b0bbac1e9054bc1e962bb4a66860f01 Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Fri, 26 Mar 2021 17:09:11 +0100 Subject: [PATCH 06/55] [ML] Replace legacy es client in Transform API service for functional tests --- .../test/functional/services/transform/api.ts | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/x-pack/test/functional/services/transform/api.ts b/x-pack/test/functional/services/transform/api.ts index 5b70635c6fa9a..78a6623a74787 100644 --- a/x-pack/test/functional/services/transform/api.ts +++ b/x-pack/test/functional/services/transform/api.ts @@ -20,7 +20,7 @@ export async function asyncForEach(array: any[], callback: Function) { } export function TransformAPIProvider({ getService }: FtrProviderContext) { - const es = getService('legacyEs'); + const es = getService('es'); const log = getService('log'); const retry = getService('retry'); const esSupertest = getService('esSupertest'); @@ -29,12 +29,12 @@ export function TransformAPIProvider({ getService }: FtrProviderContext) { return { async createIndices(indices: string) { log.debug(`Creating indices: '${indices}'...`); - if ((await es.indices.exists({ index: indices, allowNoIndices: false })) === true) { + if ((await es.indices.exists({ index: indices, allow_no_indices: false })).body === true) { log.debug(`Indices '${indices}' already exist. Nothing to create.`); return; } - const createResponse = await es.indices.create({ index: indices }); + const createResponse = (await es.indices.create({ index: indices })).body; expect(createResponse) .to.have.property('acknowledged') .eql(true, 'Response for create request indices should be acknowledged.'); @@ -44,14 +44,16 @@ export function TransformAPIProvider({ getService }: FtrProviderContext) { async deleteIndices(indices: string, skipWaitForIndicesNotToExist?: boolean) { log.debug(`Deleting indices: '${indices}'...`); - if ((await es.indices.exists({ index: indices, allowNoIndices: false })) === false) { + if ((await es.indices.exists({ index: indices, allow_no_indices: false })).body === false) { log.debug(`Indices '${indices}' don't exist. Nothing to delete.`); return; } - const deleteResponse = await es.indices.delete({ - index: indices, - }); + const deleteResponse = ( + await es.indices.delete({ + index: indices, + }) + ).body; expect(deleteResponse) .to.have.property('acknowledged') .eql(true, 'Response for delete request should be acknowledged'); @@ -67,7 +69,7 @@ export function TransformAPIProvider({ getService }: FtrProviderContext) { async waitForIndicesToExist(indices: string, errorMsg?: string) { await retry.tryForTime(30 * 1000, async () => { - if ((await es.indices.exists({ index: indices, allowNoIndices: false })) === true) { + if ((await es.indices.exists({ index: indices, allow_no_indices: false })).body === true) { return true; } else { throw new Error(errorMsg || `indices '${indices}' should exist`); @@ -77,7 +79,7 @@ export function TransformAPIProvider({ getService }: FtrProviderContext) { async waitForIndicesNotToExist(indices: string, errorMsg?: string) { await retry.tryForTime(30 * 1000, async () => { - if ((await es.indices.exists({ index: indices, allowNoIndices: false })) === false) { + if ((await es.indices.exists({ index: indices, allow_no_indices: false })).body === false) { return true; } else { throw new Error(errorMsg || `indices '${indices}' should not exist`); From 9ebb38974c208bb9ce0dd6fc871a16765c3ceb80 Mon Sep 17 00:00:00 2001 From: Felix Barnsteiner Date: Fri, 26 Mar 2021 17:09:34 +0100 Subject: [PATCH 07/55] Add error.stack_trace to the default log formatter (#94906) --- .../message/builtin_rules/generic.ts | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/x-pack/plugins/infra/server/services/log_entries/message/builtin_rules/generic.ts b/x-pack/plugins/infra/server/services/log_entries/message/builtin_rules/generic.ts index b06752ee0a80d..c16d65a75b3e0 100644 --- a/x-pack/plugins/infra/server/services/log_entries/message/builtin_rules/generic.ts +++ b/x-pack/plugins/infra/server/services/log_entries/message/builtin_rules/generic.ts @@ -45,6 +45,37 @@ export const getGenericRules = (genericMessageFields: string[]) => [ ]; const createGenericRulesForField = (fieldName: string) => [ + { + when: { + exists: ['event.dataset', 'log.level', fieldName, 'error.stack_trace.text'], + }, + format: [ + { + constant: '[', + }, + { + field: 'event.dataset', + }, + { + constant: '][', + }, + { + field: 'log.level', + }, + { + constant: '] ', + }, + { + field: fieldName, + }, + { + constant: '\n', + }, + { + field: 'error.stack_trace.text', + }, + ], + }, { when: { exists: ['event.dataset', 'log.level', fieldName], @@ -70,6 +101,31 @@ const createGenericRulesForField = (fieldName: string) => [ }, ], }, + { + when: { + exists: ['log.level', fieldName, 'error.stack_trace.text'], + }, + format: [ + { + constant: '[', + }, + { + field: 'log.level', + }, + { + constant: '] ', + }, + { + field: fieldName, + }, + { + constant: '\n', + }, + { + field: 'error.stack_trace.text', + }, + ], + }, { when: { exists: ['log.level', fieldName], @@ -89,6 +145,22 @@ const createGenericRulesForField = (fieldName: string) => [ }, ], }, + { + when: { + exists: [fieldName, 'error.stack_trace.text'], + }, + format: [ + { + field: fieldName, + }, + { + constant: '\n', + }, + { + field: 'error.stack_trace.text', + }, + ], + }, { when: { exists: [fieldName], From b7d84ab4409b0ed5583659490a08d25c43d13c11 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Fri, 26 Mar 2021 17:15:33 +0100 Subject: [PATCH 08/55] change layout of top values function (#95412) --- .../operations/definitions/terms/index.tsx | 128 ++++++++---------- .../definitions/terms/terms.test.tsx | 8 +- ...e_input.test.tsx => values_input.test.tsx} | 38 +++--- ...alues_range_input.tsx => values_input.tsx} | 10 +- 4 files changed, 81 insertions(+), 103 deletions(-) rename x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/{values_range_input.test.tsx => values_input.test.tsx} (50%) rename x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/{values_range_input.tsx => values_input.tsx} (88%) diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx index 3b0cb67cbce41..a4a061db04797 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { useState } from 'react'; +import React from 'react'; import { i18n } from '@kbn/i18n'; import { EuiFormRow, @@ -13,9 +13,7 @@ import { EuiSwitch, EuiSwitchEvent, EuiSpacer, - EuiPopover, - EuiButtonEmpty, - EuiText, + EuiAccordion, EuiIconTip, } from '@elastic/eui'; import { AggFunctionsMapping } from '../../../../../../../../src/plugins/data/public'; @@ -24,7 +22,7 @@ import { updateColumnParam, isReferenced } from '../../layer_helpers'; import { DataType } from '../../../../types'; import { OperationDefinition } from '../index'; import { FieldBasedIndexPatternColumn } from '../column_types'; -import { ValuesRangeInput } from './values_range_input'; +import { ValuesInput } from './values_input'; import { getEsAggsSuffix, getInvalidFieldMessage } from '../helpers'; import type { IndexPatternLayer } from '../../../types'; @@ -193,8 +191,6 @@ export const termsOperation: OperationDefinition - { updateLayer( @@ -251,71 +247,6 @@ export const termsOperation: OperationDefinition - {!hasRestrictions && ( - - { - setPopoverOpen(!popoverOpen); - }} - > - {i18n.translate('xpack.lens.indexPattern.terms.advancedSettings', { - defaultMessage: 'Advanced', - })} - - } - isOpen={popoverOpen} - closePopover={() => { - setPopoverOpen(false); - }} - > - - updateLayer( - updateColumnParam({ - layer, - columnId, - paramName: 'otherBucket', - value: e.target.checked, - }) - ) - } - /> - - - updateLayer( - updateColumnParam({ - layer, - columnId, - paramName: 'missingBucket', - value: e.target.checked, - }) - ) - } - /> - - - - )} @@ -415,6 +346,57 @@ export const termsOperation: OperationDefinition + {!hasRestrictions && ( + <> + + + + + updateLayer( + updateColumnParam({ + layer, + columnId, + paramName: 'otherBucket', + value: e.target.checked, + }) + ) + } + /> + + + updateLayer( + updateColumnParam({ + layer, + columnId, + paramName: 'missingBucket', + value: e.target.checked, + }) + ) + } + /> + + + )} ); }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx index 0ed611e9726ef..97b57dee2fde7 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx @@ -8,12 +8,12 @@ import React from 'react'; import { act } from 'react-dom/test-utils'; import { shallow, mount } from 'enzyme'; -import { EuiRange, EuiSelect, EuiSwitch, EuiSwitchEvent } from '@elastic/eui'; +import { EuiFieldNumber, EuiSelect, EuiSwitch, EuiSwitchEvent } from '@elastic/eui'; import type { IUiSettingsClient, SavedObjectsClientContract, HttpSetup } from 'kibana/public'; import type { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import { dataPluginMock } from '../../../../../../../../src/plugins/data/public/mocks'; import { createMockedIndexPattern } from '../../../mocks'; -import { ValuesRangeInput } from './values_range_input'; +import { ValuesInput } from './values_input'; import type { TermsIndexPatternColumn } from '.'; import { termsOperation } from '../index'; import { IndexPattern, IndexPatternLayer } from '../../../types'; @@ -888,7 +888,7 @@ describe('terms', () => { /> ); - expect(instance.find(EuiRange).prop('value')).toEqual('3'); + expect(instance.find(EuiFieldNumber).prop('value')).toEqual('3'); }); it('should update state with the size value', () => { @@ -904,7 +904,7 @@ describe('terms', () => { ); act(() => { - instance.find(ValuesRangeInput).prop('onChange')!(7); + instance.find(ValuesInput).prop('onChange')!(7); }); expect(updateLayerSpy).toHaveBeenCalledWith({ diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_input.test.tsx similarity index 50% rename from x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.test.tsx rename to x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_input.test.tsx index 3603188ba30e5..4303695d6e293 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_input.test.tsx @@ -8,52 +8,50 @@ import React from 'react'; import { act } from 'react-dom/test-utils'; import { shallow } from 'enzyme'; -import { EuiRange } from '@elastic/eui'; -import { ValuesRangeInput } from './values_range_input'; +import { EuiFieldNumber } from '@elastic/eui'; +import { ValuesInput } from './values_input'; jest.mock('react-use/lib/useDebounce', () => (fn: () => void) => fn()); -describe('ValuesRangeInput', () => { - it('should render EuiRange correctly', () => { +describe('Values', () => { + it('should render EuiFieldNumber correctly', () => { const onChangeSpy = jest.fn(); - const instance = shallow(); + const instance = shallow(); - expect(instance.find(EuiRange).prop('value')).toEqual('5'); + expect(instance.find(EuiFieldNumber).prop('value')).toEqual('5'); }); it('should not run onChange function on mount', () => { const onChangeSpy = jest.fn(); - shallow(); + shallow(); expect(onChangeSpy.mock.calls.length).toBe(0); }); it('should run onChange function on update', () => { const onChangeSpy = jest.fn(); - const instance = shallow(); + const instance = shallow(); act(() => { - instance.find(EuiRange).prop('onChange')!( - { currentTarget: { value: '7' } } as React.ChangeEvent, - true - ); + instance.find(EuiFieldNumber).prop('onChange')!({ + currentTarget: { value: '7' }, + } as React.ChangeEvent); }); - expect(instance.find(EuiRange).prop('value')).toEqual('7'); + expect(instance.find(EuiFieldNumber).prop('value')).toEqual('7'); expect(onChangeSpy.mock.calls.length).toBe(1); expect(onChangeSpy.mock.calls[0][0]).toBe(7); }); it('should not run onChange function on update when value is out of 1-100 range', () => { const onChangeSpy = jest.fn(); - const instance = shallow(); + const instance = shallow(); act(() => { - instance.find(EuiRange).prop('onChange')!( - { currentTarget: { value: '107' } } as React.ChangeEvent, - true - ); + instance.find(EuiFieldNumber).prop('onChange')!({ + currentTarget: { value: '1007' }, + } as React.ChangeEvent); }); instance.update(); - expect(instance.find(EuiRange).prop('value')).toEqual('107'); + expect(instance.find(EuiFieldNumber).prop('value')).toEqual('1007'); expect(onChangeSpy.mock.calls.length).toBe(1); - expect(onChangeSpy.mock.calls[0][0]).toBe(100); + expect(onChangeSpy.mock.calls[0][0]).toBe(1000); }); }); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_input.tsx similarity index 88% rename from x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.tsx rename to x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_input.tsx index 068e13429527f..915e67c4eba0b 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_input.tsx @@ -7,10 +7,10 @@ import React, { useState } from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiRange } from '@elastic/eui'; +import { EuiFieldNumber } from '@elastic/eui'; import { useDebounceWithOptions } from '../helpers'; -export const ValuesRangeInput = ({ +export const ValuesInput = ({ value, onChange, }: { @@ -18,7 +18,7 @@ export const ValuesRangeInput = ({ onChange: (value: number) => void; }) => { const MIN_NUMBER_OF_VALUES = 1; - const MAX_NUMBER_OF_VALUES = 100; + const MAX_NUMBER_OF_VALUES = 1000; const [inputValue, setInputValue] = useState(String(value)); @@ -36,13 +36,11 @@ export const ValuesRangeInput = ({ ); return ( - setInputValue(currentTarget.value)} aria-label={i18n.translate('xpack.lens.indexPattern.terms.size', { From ab33df898aa7fd2ebf1627b5ab0b61d6d274d006 Mon Sep 17 00:00:00 2001 From: John Schulz Date: Fri, 26 Mar 2021 12:40:38 -0400 Subject: [PATCH 09/55] [Fleet] Bulk upgrade api response change (#95236) ## Summary `/agents/bulk_upgrade` should return a response with a result for each agent given; including invalid or missing ids. It currently returns an empty object. This PR includes commits from open PR https://github.com/elastic/kibana/pull/95024. The additions from this PR are https://github.com/jfsiii/kibana/compare/bulk-reassign-response-should-include-all-given-agents..871ebcb [TS type diff for response](https://github.com/jfsiii/kibana/compare/bulk-reassign-response-should-include-all-given-agents..871ebcb#diff-7006a6c170a608c8c7211fc218c0a6f4bc8ff642c170ea264db4b1b5545fb728) ```diff - // eslint-disable-next-line @typescript-eslint/no-empty-interface - export interface PostBulkAgentUpgradeResponse {} + export type PostBulkAgentUpgradeResponse = Record< + Agent['id'], + { + success: boolean; + error?: string; + } + >; ``` ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../common/services/is_agent_upgradeable.ts | 12 +- .../fleet/common/types/rest_spec/agent.ts | 10 +- .../server/routes/agent/upgrade_handler.ts | 10 +- .../fleet/server/services/agents/upgrade.ts | 110 +++++++++++++----- .../apis/agents/upgrade.ts | 24 +++- 5 files changed, 126 insertions(+), 40 deletions(-) diff --git a/x-pack/plugins/fleet/common/services/is_agent_upgradeable.ts b/x-pack/plugins/fleet/common/services/is_agent_upgradeable.ts index 0350c47816f6d..bb117dd5c5071 100644 --- a/x-pack/plugins/fleet/common/services/is_agent_upgradeable.ts +++ b/x-pack/plugins/fleet/common/services/is_agent_upgradeable.ts @@ -17,13 +17,19 @@ export function isAgentUpgradeable(agent: Agent, kibanaVersion: string) { } else { return false; } - if (agent.unenrollment_started_at || agent.unenrolled_at) return false; - if (!agent.local_metadata.elastic.agent.upgradeable) return false; + if (agent.unenrollment_started_at || agent.unenrolled_at) { + return false; + } + if (!agent.local_metadata.elastic.agent.upgradeable) { + return false; + } // make sure versions are only the number before comparison const agentVersionNumber = semverCoerce(agentVersion); if (!agentVersionNumber) throw new Error('agent version is invalid'); const kibanaVersionNumber = semverCoerce(kibanaVersion); if (!kibanaVersionNumber) throw new Error('kibana version is invalid'); - return semverLt(agentVersionNumber, kibanaVersionNumber); + const isAgentLessThanKibana = semverLt(agentVersionNumber, kibanaVersionNumber); + + return isAgentLessThanKibana; } diff --git a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts index b654c513e0afb..f6a8437ef9dd9 100644 --- a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts +++ b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts @@ -141,8 +141,14 @@ export interface PostBulkAgentUpgradeRequest { version: string; }; } -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface PostBulkAgentUpgradeResponse {} + +export type PostBulkAgentUpgradeResponse = Record< + Agent['id'], + { + success: boolean; + error?: string; + } +>; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface PostAgentUpgradeResponse {} diff --git a/x-pack/plugins/fleet/server/routes/agent/upgrade_handler.ts b/x-pack/plugins/fleet/server/routes/agent/upgrade_handler.ts index b8af265883091..0288bcdbe220f 100644 --- a/x-pack/plugins/fleet/server/routes/agent/upgrade_handler.ts +++ b/x-pack/plugins/fleet/server/routes/agent/upgrade_handler.ts @@ -99,9 +99,15 @@ export const postBulkAgentsUpgradeHandler: RequestHandler< version, force, }; - await AgentService.sendUpgradeAgentsActions(soClient, esClient, upgradeOptions); + const results = await AgentService.sendUpgradeAgentsActions(soClient, esClient, upgradeOptions); + const body = results.items.reduce((acc, so) => { + acc[so.id] = { + success: !so.error, + error: so.error ? so.error.message || so.error.toString() : undefined, + }; + return acc; + }, {}); - const body: PostBulkAgentUpgradeResponse = {}; return response.ok({ body }); } catch (error) { return defaultIngestErrorHandler({ error, response }); diff --git a/x-pack/plugins/fleet/server/services/agents/upgrade.ts b/x-pack/plugins/fleet/server/services/agents/upgrade.ts index 6c3b404a5b6f3..14b8dfaed4d91 100644 --- a/x-pack/plugins/fleet/server/services/agents/upgrade.ts +++ b/x-pack/plugins/fleet/server/services/agents/upgrade.ts @@ -7,16 +7,23 @@ import type { ElasticsearchClient, SavedObjectsClientContract } from 'src/core/server'; -import type { AgentAction, AgentActionSOAttributes } from '../../types'; +import type { Agent, AgentAction, AgentActionSOAttributes, BulkActionResult } from '../../types'; import { AGENT_ACTION_SAVED_OBJECT_TYPE } from '../../constants'; import { agentPolicyService } from '../../services'; -import { IngestManagerError } from '../../errors'; +import { AgentReassignmentError, IngestManagerError } from '../../errors'; import { isAgentUpgradeable } from '../../../common/services'; import { appContextService } from '../app_context'; import { bulkCreateAgentActions, createAgentAction } from './actions'; import type { GetAgentsOptions } from './crud'; -import { getAgents, updateAgent, bulkUpdateAgents, getAgentPolicyForAgent } from './crud'; +import { + getAgentDocuments, + getAgents, + updateAgent, + bulkUpdateAgents, + getAgentPolicyForAgent, +} from './crud'; +import { searchHitToAgent } from './helpers'; export async function sendUpgradeAgentAction({ soClient, @@ -77,39 +84,75 @@ export async function ackAgentUpgraded( export async function sendUpgradeAgentsActions( soClient: SavedObjectsClientContract, esClient: ElasticsearchClient, - options: GetAgentsOptions & { + options: ({ agents: Agent[] } | GetAgentsOptions) & { sourceUri: string | undefined; version: string; force?: boolean; } ) { // Full set of agents - const agentsGiven = await getAgents(esClient, options); + const outgoingErrors: Record = {}; + let givenAgents: Agent[] = []; + if ('agents' in options) { + givenAgents = options.agents; + } else if ('agentIds' in options) { + const givenAgentsResults = await getAgentDocuments(esClient, options.agentIds); + for (const agentResult of givenAgentsResults) { + if (agentResult.found === false) { + outgoingErrors[agentResult._id] = new AgentReassignmentError( + `Cannot find agent ${agentResult._id}` + ); + } else { + givenAgents.push(searchHitToAgent(agentResult)); + } + } + } else if ('kuery' in options) { + givenAgents = await getAgents(esClient, options); + } + const givenOrder = + 'agentIds' in options ? options.agentIds : givenAgents.map((agent) => agent.id); + + // get any policy ids from upgradable agents + const policyIdsToGet = new Set( + givenAgents.filter((agent) => agent.policy_id).map((agent) => agent.policy_id!) + ); + + // get the agent policies for those ids + const agentPolicies = await agentPolicyService.getByIDs(soClient, Array.from(policyIdsToGet), { + fields: ['is_managed'], + }); + const managedPolicies = agentPolicies.reduce>((acc, policy) => { + acc[policy.id] = policy.is_managed; + return acc; + }, {}); // Filter out agents currently unenrolling, unenrolled, or not upgradeable b/c of version check const kibanaVersion = appContextService.getKibanaVersion(); - const upgradeableAgents = options.force - ? agentsGiven - : agentsGiven.filter((agent) => isAgentUpgradeable(agent, kibanaVersion)); - - if (!options.force) { - // get any policy ids from upgradable agents - const policyIdsToGet = new Set( - upgradeableAgents.filter((agent) => agent.policy_id).map((agent) => agent.policy_id!) - ); - - // get the agent policies for those ids - const agentPolicies = await agentPolicyService.getByIDs(soClient, Array.from(policyIdsToGet), { - fields: ['is_managed'], - }); + const agentResults = await Promise.allSettled( + givenAgents.map(async (agent) => { + const isAllowed = options.force || isAgentUpgradeable(agent, kibanaVersion); + if (!isAllowed) { + throw new IngestManagerError(`${agent.id} is not upgradeable`); + } - // throw if any of those agent policies are managed - for (const policy of agentPolicies) { - if (policy.is_managed) { - throw new IngestManagerError(`Cannot upgrade agent in managed policy ${policy.id}`); + if (!options.force && agent.policy_id && managedPolicies[agent.policy_id]) { + throw new IngestManagerError(`Cannot upgrade agent in managed policy ${agent.policy_id}`); } + return agent; + }) + ); + + // Filter to agents that do not already use the new agent policy ID + const agentsToUpdate = agentResults.reduce((agents, result, index) => { + if (result.status === 'fulfilled') { + agents.push(result.value); + } else { + const id = givenAgents[index].id; + outgoingErrors[id] = result.reason; } - } + return agents; + }, []); + // Create upgrade action for each agent const now = new Date().toISOString(); const data = { @@ -120,7 +163,7 @@ export async function sendUpgradeAgentsActions( await bulkCreateAgentActions( soClient, esClient, - upgradeableAgents.map((agent) => ({ + agentsToUpdate.map((agent) => ({ agent_id: agent.id, created_at: now, data, @@ -129,9 +172,9 @@ export async function sendUpgradeAgentsActions( })) ); - return await bulkUpdateAgents( + await bulkUpdateAgents( esClient, - upgradeableAgents.map((agent) => ({ + agentsToUpdate.map((agent) => ({ agentId: agent.id, data: { upgraded_at: null, @@ -139,4 +182,17 @@ export async function sendUpgradeAgentsActions( }, })) ); + const orderedOut = givenOrder.map((agentId) => { + const hasError = agentId in outgoingErrors; + const result: BulkActionResult = { + id: agentId, + success: !hasError, + }; + if (hasError) { + result.error = outgoingErrors[agentId]; + } + return result; + }); + + return { items: orderedOut }; } diff --git a/x-pack/test/fleet_api_integration/apis/agents/upgrade.ts b/x-pack/test/fleet_api_integration/apis/agents/upgrade.ts index 9a747fb11a6a6..41232f73efa5c 100644 --- a/x-pack/test/fleet_api_integration/apis/agents/upgrade.ts +++ b/x-pack/test/fleet_api_integration/apis/agents/upgrade.ts @@ -540,7 +540,11 @@ export default function (providerContext: FtrProviderContext) { .expect(400); }); - it('enrolled in a managed policy bulk upgrade should respond with 400 and not update the agent SOs', async () => { + it('enrolled in a managed policy bulk upgrade should respond with 200 and object of results. Should not update the managed agent SOs', async () => { + // move agent2 to policy2 to keep it unmanaged + await supertest.put(`/api/fleet/agents/agent2/reassign`).set('kbn-xsrf', 'xxx').send({ + policy_id: 'policy2', + }); // update enrolled policy to managed await supertest.put(`/api/fleet/agent_policies/policy1`).set('kbn-xsrf', 'xxxx').send({ name: 'Test policy', @@ -567,7 +571,7 @@ export default function (providerContext: FtrProviderContext) { doc: { local_metadata: { elastic: { - agent: { upgradeable: true, version: semver.inc(kibanaVersion, 'patch') }, + agent: { upgradeable: true, version: '0.0.0' }, }, }, }, @@ -581,8 +585,12 @@ export default function (providerContext: FtrProviderContext) { version: kibanaVersion, agents: ['agent1', 'agent2'], }) - .expect(400); - expect(body.message).to.contain('Cannot upgrade agent in managed policy policy1'); + .expect(200); + + expect(body).to.eql({ + agent1: { success: false, error: 'Cannot upgrade agent in managed policy policy1' }, + agent2: { success: true }, + }); const [agent1data, agent2data] = await Promise.all([ supertest.get(`/api/fleet/agents/agent1`), @@ -590,7 +598,7 @@ export default function (providerContext: FtrProviderContext) { ]); expect(typeof agent1data.body.item.upgrade_started_at).to.be('undefined'); - expect(typeof agent2data.body.item.upgrade_started_at).to.be('undefined'); + expect(typeof agent2data.body.item.upgrade_started_at).to.be('string'); }); it('enrolled in a managed policy bulk upgrade with force flag should respond with 200 and update the agent SOs', async () => { @@ -635,7 +643,11 @@ export default function (providerContext: FtrProviderContext) { agents: ['agent1', 'agent2'], force: true, }); - expect(body).to.eql({}); + + expect(body).to.eql({ + agent1: { success: true }, + agent2: { success: true }, + }); const [agent1data, agent2data] = await Promise.all([ supertest.get(`/api/fleet/agents/agent1`), From d305e2769a26b778ed3e57f0604b3096a8fc4e3c Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Fri, 26 Mar 2021 17:45:43 +0100 Subject: [PATCH 10/55] [Data] Unify autocomplete plugin (#95405) Move KQL suggestions to data plugin --- ...plugins-data-public.searchsource.fetch_.md | 4 +- src/plugins/data/README.mdx | 1 - .../autocomplete/autocomplete_service.ts | 25 +++++---- .../providers/kql_query_suggestion/README.md | 1 + .../__fixtures__/index_pattern_response.json | 0 .../kql_query_suggestion/conjunction.test.ts | 5 +- .../kql_query_suggestion/conjunction.tsx | 21 ++++---- .../kql_query_suggestion/field.test.ts | 5 +- .../providers/kql_query_suggestion/field.tsx | 7 +-- .../providers/kql_query_suggestion/index.ts | 10 ++-- .../lib/escape_kuery.test.ts | 5 +- .../kql_query_suggestion/lib/escape_kuery.ts | 5 +- .../kql_query_suggestion/operator.test.ts | 5 +- .../kql_query_suggestion/operator.tsx | 53 ++++++++++--------- .../sort_prefix_first.test.ts | 5 +- .../kql_query_suggestion/sort_prefix_first.ts | 5 +- .../providers/kql_query_suggestion/types.ts | 8 +-- .../kql_query_suggestion/value.test.ts | 22 ++++---- .../providers/kql_query_suggestion/value.ts | 17 ++++-- src/plugins/data/public/mocks.ts | 1 - src/plugins/data/public/public.api.md | 16 +++--- src/plugins/data/tsconfig.json | 11 +++- .../public/autocomplete/index.ts | 11 ---- x-pack/plugins/data_enhanced/public/plugin.ts | 9 ---- .../plugins/data_enhanced/public/services.ts | 13 ----- x-pack/plugins/data_enhanced/tsconfig.json | 2 - .../translations/translations/ja-JP.json | 34 ++++++------ .../translations/translations/zh-CN.json | 34 ++++++------ 28 files changed, 168 insertions(+), 167 deletions(-) create mode 100644 src/plugins/data/public/autocomplete/providers/kql_query_suggestion/README.md rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/__fixtures__/index_pattern_response.json (100%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/conjunction.test.ts (92%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/conjunction.tsx (67%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/field.test.ts (97%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/field.tsx (92%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/index.ts (85%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.test.ts (92%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.ts (85%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/operator.test.ts (95%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/operator.tsx (65%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.test.ts (92%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.ts (76%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/types.ts (65%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/value.test.ts (93%) rename {x-pack/plugins/data_enhanced => src/plugins/data}/public/autocomplete/providers/kql_query_suggestion/value.ts (79%) delete mode 100644 x-pack/plugins/data_enhanced/public/autocomplete/index.ts delete mode 100644 x-pack/plugins/data_enhanced/public/services.ts diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsource.fetch_.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsource.fetch_.md index bcf220a9a27e6..d5641107a88aa 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsource.fetch_.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsource.fetch_.md @@ -9,7 +9,7 @@ Fetch this source from Elasticsearch, returning an observable over the response( Signature: ```typescript -fetch$(options?: ISearchOptions): import("rxjs").Observable>; +fetch$(options?: ISearchOptions): import("rxjs").Observable>; ``` ## Parameters @@ -20,5 +20,5 @@ fetch$(options?: ISearchOptions): import("rxjs").ObservableReturns: -`import("rxjs").Observable>` +`import("rxjs").Observable>` diff --git a/src/plugins/data/README.mdx b/src/plugins/data/README.mdx index 145aaa64fa3ad..60e74a3fa126c 100644 --- a/src/plugins/data/README.mdx +++ b/src/plugins/data/README.mdx @@ -21,7 +21,6 @@ It is wired into the `TopNavMenu` component, but can be used independently. ### Fetch Query Suggestions The `getQuerySuggestions` function helps to construct a query. -KQL suggestion functions are registered in X-Pack, so this API does not return results in OSS. ```.ts diff --git a/src/plugins/data/public/autocomplete/autocomplete_service.ts b/src/plugins/data/public/autocomplete/autocomplete_service.ts index 6b288c4507f06..eb9d859664c4d 100644 --- a/src/plugins/data/public/autocomplete/autocomplete_service.ts +++ b/src/plugins/data/public/autocomplete/autocomplete_service.ts @@ -18,6 +18,11 @@ import { import { ConfigSchema } from '../../config'; import { UsageCollectionSetup } from '../../../usage_collection/public'; import { createUsageCollector } from './collectors'; +import { + KUERY_LANGUAGE_NAME, + setupKqlQuerySuggestionProvider, +} from './providers/kql_query_suggestion'; +import { DataPublicPluginStart, DataStartDependencies } from '../types'; export class AutocompleteService { autocompleteConfig: ConfigSchema['autocomplete']; @@ -31,12 +36,6 @@ export class AutocompleteService { private readonly querySuggestionProviders: Map = new Map(); private getValueSuggestions?: ValueSuggestionsGetFn; - private addQuerySuggestionProvider = (language: string, provider: QuerySuggestionGetFn): void => { - if (language && provider && this.autocompleteConfig.querySuggestions.enabled) { - this.querySuggestionProviders.set(language, provider); - } - }; - private getQuerySuggestions: QuerySuggestionGetFn = (args) => { const { language } = args; const provider = this.querySuggestionProviders.get(language); @@ -50,7 +49,7 @@ export class AutocompleteService { /** @public **/ public setup( - core: CoreSetup, + core: CoreSetup, { timefilter, usageCollection, @@ -62,11 +61,15 @@ export class AutocompleteService { ? setupValueSuggestionProvider(core, { timefilter, usageCollector }) : getEmptyValueSuggestions; - return { - addQuerySuggestionProvider: this.addQuerySuggestionProvider, + if (this.autocompleteConfig.querySuggestions.enabled) { + this.querySuggestionProviders.set(KUERY_LANGUAGE_NAME, setupKqlQuerySuggestionProvider(core)); + } - /** @obsolete **/ - /** please use "getProvider" only from the start contract **/ + return { + /** + * @deprecated + * please use "getQuerySuggestions" from the start contract + */ getQuerySuggestions: this.getQuerySuggestions, }; } diff --git a/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/README.md b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/README.md new file mode 100644 index 0000000000000..2ab87a7a490c1 --- /dev/null +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/README.md @@ -0,0 +1 @@ +This is implementation of KQL query suggestions diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/__fixtures__/index_pattern_response.json b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/__fixtures__/index_pattern_response.json similarity index 100% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/__fixtures__/index_pattern_response.json rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/__fixtures__/index_pattern_response.json diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/conjunction.test.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/conjunction.test.ts similarity index 92% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/conjunction.test.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/conjunction.test.ts index 5e562ae63e91b..c1c44f1f55548 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/conjunction.test.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/conjunction.test.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { setupGetConjunctionSuggestions } from './conjunction'; diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/conjunction.tsx b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/conjunction.tsx similarity index 67% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/conjunction.tsx rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/conjunction.tsx index 7efc2ea193abe..345f9f8051e5d 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/conjunction.tsx +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/conjunction.tsx @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import React from 'react'; @@ -16,17 +17,17 @@ import { const bothArgumentsText = ( ); const oneOrMoreArgumentsText = ( ); @@ -34,20 +35,20 @@ const conjunctions: Record = { and: (

{bothArgumentsText}, }} description="Full text: ' Requires both arguments to be true'. See - 'xpack.data.kueryAutocomplete.andOperatorDescription.bothArgumentsText' for 'both arguments' part." + 'data.kueryAutocomplete.andOperatorDescription.bothArgumentsText' for 'both arguments' part." />

), or: (

= { ), }} description="Full text: 'Requires one or more arguments to be true'. See - 'xpack.data.kueryAutocomplete.orOperatorDescription.oneOrMoreArgumentsText' for 'one or more arguments' part." + 'data.kueryAutocomplete.orOperatorDescription.oneOrMoreArgumentsText' for 'one or more arguments' part." />

), diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/field.test.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/field.test.ts similarity index 97% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/field.test.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/field.test.ts index afc55d13af9d9..f1eced06a33ea 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/field.test.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/field.test.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import indexPatternResponse from './__fixtures__/index_pattern_response.json'; diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/field.tsx b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/field.tsx similarity index 92% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/field.tsx rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/field.tsx index ac6f7de888320..5cafca168dfa2 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/field.tsx +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/field.tsx @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import React from 'react'; @@ -22,7 +23,7 @@ const getDescription = (field: IFieldType) => { return (

{field.name} }} /> diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/index.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/index.ts similarity index 85% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/index.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/index.ts index 8b36480a35b17..c5c1626ae74f6 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/index.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/index.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { CoreSetup } from 'kibana/public'; @@ -17,6 +18,7 @@ import { QuerySuggestion, QuerySuggestionGetFnArgs, QuerySuggestionGetFn, + DataPublicPluginStart, } from '../../../../../../../src/plugins/data/public'; const cursorSymbol = '@kuery-cursor@'; @@ -26,7 +28,9 @@ const dedup = (suggestions: QuerySuggestion[]): QuerySuggestion[] => export const KUERY_LANGUAGE_NAME = 'kuery'; -export const setupKqlQuerySuggestionProvider = (core: CoreSetup): QuerySuggestionGetFn => { +export const setupKqlQuerySuggestionProvider = ( + core: CoreSetup +): QuerySuggestionGetFn => { const providers = { field: setupGetFieldSuggestions(core), value: setupGetValueSuggestions(core), diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.test.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.test.ts similarity index 92% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.test.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.test.ts index 0173617a99b1b..933449e779ef7 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.test.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.test.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { escapeQuotes, escapeKuery } from './escape_kuery'; diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.ts similarity index 85% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.ts index 901e61bde455d..54f03803a893e 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/lib/escape_kuery.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { flow } from 'lodash'; diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/operator.test.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/operator.test.ts similarity index 95% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/operator.test.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/operator.test.ts index bd021b0d0dac5..4debbc0843d51 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/operator.test.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/operator.test.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import indexPatternResponse from './__fixtures__/index_pattern_response.json'; diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/operator.tsx b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/operator.tsx similarity index 65% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/operator.tsx rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/operator.tsx index cfe935e4b1990..618e33ddf345a 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/operator.tsx +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/operator.tsx @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import React from 'react'; @@ -15,44 +16,44 @@ import { QuerySuggestionTypes } from '../../../../../../../src/plugins/data/publ const equalsText = ( ); const lessThanOrEqualToText = ( ); const greaterThanOrEqualToText = ( ); const lessThanText = ( ); const greaterThanText = ( ); const existsText = ( ); @@ -60,11 +61,11 @@ const operators = { ':': { description: ( {equalsText} }} description="Full text: 'equals some value'. See - 'xpack.data.kueryAutocomplete.equalOperatorDescription.equalsText' for 'equals' part." + 'data.kueryAutocomplete.equalOperatorDescription.equalsText' for 'equals' part." /> ), fieldTypes: [ @@ -83,7 +84,7 @@ const operators = { '<=': { description: ( ), fieldTypes: ['number', 'number_range', 'date', 'date_range', 'ip', 'ip_range'], @@ -99,7 +100,7 @@ const operators = { '>=': { description: ( ), fieldTypes: ['number', 'number_range', 'date', 'date_range', 'ip', 'ip_range'], @@ -115,11 +116,11 @@ const operators = { '<': { description: ( {lessThanText} }} description="Full text: 'is less than some value'. See - 'xpack.data.kueryAutocomplete.lessThanOperatorDescription.lessThanText' for 'less than' part." + 'data.kueryAutocomplete.lessThanOperatorDescription.lessThanText' for 'less than' part." /> ), fieldTypes: ['number', 'number_range', 'date', 'date_range', 'ip', 'ip_range'], @@ -127,13 +128,13 @@ const operators = { '>': { description: ( {greaterThanText}, }} description="Full text: 'is greater than some value'. See - 'xpack.data.kueryAutocomplete.greaterThanOperatorDescription.greaterThanText' for 'greater than' part." + 'data.kueryAutocomplete.greaterThanOperatorDescription.greaterThanText' for 'greater than' part." /> ), fieldTypes: ['number', 'number_range', 'date', 'date_range', 'ip', 'ip_range'], @@ -141,11 +142,11 @@ const operators = { ': *': { description: ( {existsText} }} description="Full text: 'exists in any form'. See - 'xpack.data.kueryAutocomplete.existOperatorDescription.existsText' for 'exists' part." + 'data.kueryAutocomplete.existOperatorDescription.existsText' for 'exists' part." /> ), fieldTypes: undefined, diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.test.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.test.ts similarity index 92% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.test.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.test.ts index aa236a45fa93c..f72fb75684105 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.test.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.test.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { sortPrefixFirst } from './sort_prefix_first'; diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.ts similarity index 76% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.ts index c344197641ef4..25bc32d47f338 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/sort_prefix_first.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { partition } from 'lodash'; diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/types.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/types.ts similarity index 65% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/types.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/types.ts index b5abdbee51832..48e87a73f3671 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/types.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/types.ts @@ -1,17 +1,19 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { CoreSetup } from 'kibana/public'; import { + DataPublicPluginStart, KueryNode, QuerySuggestionBasic, QuerySuggestionGetFnArgs, } from '../../../../../../../src/plugins/data/public'; export type KqlQuerySuggestionProvider = ( - core: CoreSetup + core: CoreSetup ) => (querySuggestionsGetFnArgs: QuerySuggestionGetFnArgs, kueryNode: KueryNode) => Promise; diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.test.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/value.test.ts similarity index 93% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.test.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/value.test.ts index 5744dad43dcdd..c434d9a8ef365 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.test.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/value.test.ts @@ -1,15 +1,15 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { setupGetValueSuggestions } from './value'; import indexPatternResponse from './__fixtures__/index_pattern_response.json'; import { coreMock } from '../../../../../../../src/core/public/mocks'; import { QuerySuggestionGetFnArgs, KueryNode } from '../../../../../../../src/plugins/data/public'; -import { setAutocompleteService } from '../../../services'; const mockKueryNode = (kueryNode: Partial) => (kueryNode as unknown) as KueryNode; @@ -19,11 +19,6 @@ describe('Kuery value suggestions', () => { let autocompleteServiceMock: any; beforeEach(() => { - getSuggestions = setupGetValueSuggestions(coreMock.createSetup()); - querySuggestionsArgs = ({ - indexPatterns: [indexPatternResponse], - } as unknown) as QuerySuggestionGetFnArgs; - autocompleteServiceMock = { getValueSuggestions: jest.fn(({ field }) => { let res: any[]; @@ -40,7 +35,16 @@ describe('Kuery value suggestions', () => { return Promise.resolve(res); }), }; - setAutocompleteService(autocompleteServiceMock); + + const coreSetup = coreMock.createSetup({ + pluginStartContract: { + autocomplete: autocompleteServiceMock, + }, + }); + getSuggestions = setupGetValueSuggestions(coreSetup); + querySuggestionsArgs = ({ + indexPatterns: [indexPatternResponse], + } as unknown) as QuerySuggestionGetFnArgs; jest.clearAllMocks(); }); diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.ts b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/value.ts similarity index 79% rename from x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.ts rename to src/plugins/data/public/autocomplete/providers/kql_query_suggestion/value.ts index 92fd4d7b71bdc..f8fc9d165fc6b 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.ts +++ b/src/plugins/data/public/autocomplete/providers/kql_query_suggestion/value.ts @@ -1,15 +1,17 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { flatten } from 'lodash'; +import { CoreSetup } from 'kibana/public'; import { escapeQuotes } from './lib/escape_kuery'; import { KqlQuerySuggestionProvider } from './types'; -import { getAutocompleteService } from '../../../services'; import { + DataPublicPluginStart, IFieldType, IIndexPattern, QuerySuggestion, @@ -26,7 +28,12 @@ const wrapAsSuggestions = (start: number, end: number, query: string, values: st end, })); -export const setupGetValueSuggestions: KqlQuerySuggestionProvider = () => { +export const setupGetValueSuggestions: KqlQuerySuggestionProvider = ( + core: CoreSetup +) => { + const autoCompleteServicePromise = core + .getStartServices() + .then(([_, __, dataStart]) => dataStart.autocomplete); return async ( { indexPatterns, boolFilter, useTimeRange, signal }, { start, end, prefix, suffix, fieldName, nestedPath } @@ -41,7 +48,7 @@ export const setupGetValueSuggestions: KqlQuerySuggestionProvider = () => { }); const query = `${prefix}${suffix}`.trim(); - const { getValueSuggestions } = getAutocompleteService(); + const { getValueSuggestions } = await autoCompleteServicePromise; const data = await Promise.all( indexPatternFieldEntries.map(([indexPattern, field]) => diff --git a/src/plugins/data/public/mocks.ts b/src/plugins/data/public/mocks.ts index a3676c5116927..573820890de71 100644 --- a/src/plugins/data/public/mocks.ts +++ b/src/plugins/data/public/mocks.ts @@ -17,7 +17,6 @@ export type Setup = jest.Mocked>; export type Start = jest.Mocked>; const automcompleteSetupMock: jest.Mocked = { - addQuerySuggestionProvider: jest.fn(), getQuerySuggestions: jest.fn(), }; diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index 4eae5629af3a6..95d7a35a45320 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -23,7 +23,7 @@ import * as CSS from 'csstype'; import { Datatable as Datatable_2 } from 'src/plugins/expressions'; import { Datatable as Datatable_3 } from 'src/plugins/expressions/common'; import { DatatableColumn as DatatableColumn_2 } from 'src/plugins/expressions'; -import { DatatableColumnType } from 'src/plugins/expressions/common'; +import { DatatableColumnType as DatatableColumnType_2 } from 'src/plugins/expressions/common'; import { DetailedPeerCertificate } from 'tls'; import { Ensure } from '@kbn/utility-types'; import { EnvironmentMode } from '@kbn/config'; @@ -85,8 +85,8 @@ import { RequestAdapter } from 'src/plugins/inspector/common'; import { RequestStatistics as RequestStatistics_2 } from 'src/plugins/inspector/common'; import { Required } from '@kbn/utility-types'; import * as Rx from 'rxjs'; -import { SavedObject } from 'kibana/server'; -import { SavedObject as SavedObject_2 } from 'src/core/server'; +import { SavedObject } from 'src/core/server'; +import { SavedObject as SavedObject_2 } from 'kibana/server'; import { SavedObjectReference } from 'src/core/types'; import { SavedObjectsClientContract } from 'src/core/public'; import { SavedObjectsFindOptions } from 'kibana/public'; @@ -188,7 +188,7 @@ export class AggConfig { // @deprecated (undocumented) toJSON(): AggConfigSerialized; // Warning: (ae-forgotten-export) The symbol "SerializableState" needs to be exported by the entry point index.d.ts - toSerializedFieldFormat(): {} | Ensure, SerializableState>; + toSerializedFieldFormat(): {} | Ensure, SerializableState_2>; // (undocumented) get type(): IAggType; set type(type: IAggType); @@ -272,9 +272,9 @@ export type AggConfigSerialized = Ensure<{ type: string; enabled?: boolean; id?: string; - params?: {} | SerializableState; + params?: {} | SerializableState_2; schema?: string; -}, SerializableState>; +}, SerializableState_2>; // Warning: (ae-missing-release-tag) "AggFunctionsMapping" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // @@ -1604,7 +1604,7 @@ export class IndexPatternsService { // Warning: (ae-forgotten-export) The symbol "IndexPatternSavedObjectAttrs" needs to be exported by the entry point index.d.ts // // (undocumented) - getCache: () => Promise[] | null | undefined>; + getCache: () => Promise[] | null | undefined>; getDefault: () => Promise; getFieldsForIndexPattern: (indexPattern: IndexPattern | IndexPatternSpec, options?: GetFieldsOptions | undefined) => Promise; // Warning: (ae-forgotten-export) The symbol "GetFieldsOptions" needs to be exported by the entry point index.d.ts @@ -1616,7 +1616,7 @@ export class IndexPatternsService { }>>; getTitles: (refresh?: boolean) => Promise; refreshFields: (indexPattern: IndexPattern) => Promise; - savedObjectToSpec: (savedObject: SavedObject_2) => IndexPatternSpec; + savedObjectToSpec: (savedObject: SavedObject) => IndexPatternSpec; setDefault: (id: string, force?: boolean) => Promise; updateSavedObject(indexPattern: IndexPattern, saveAttempts?: number, ignoreErrors?: boolean): Promise; } diff --git a/src/plugins/data/tsconfig.json b/src/plugins/data/tsconfig.json index 21560b1328840..9c95878af631e 100644 --- a/src/plugins/data/tsconfig.json +++ b/src/plugins/data/tsconfig.json @@ -7,7 +7,14 @@ "declaration": true, "declarationMap": true }, - "include": ["common/**/*", "public/**/*", "server/**/*", "config.ts", "common/**/*.json"], + "include": [ + "common/**/*", + "public/**/*", + "server/**/*", + "config.ts", + "common/**/*.json", + "public/**/*.json" + ], "references": [ { "path": "../../core/tsconfig.json" }, { "path": "../bfetch/tsconfig.json" }, @@ -16,6 +23,6 @@ { "path": "../inspector/tsconfig.json" }, { "path": "../usage_collection/tsconfig.json" }, { "path": "../kibana_utils/tsconfig.json" }, - { "path": "../kibana_react/tsconfig.json" }, + { "path": "../kibana_react/tsconfig.json" } ] } diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/index.ts b/x-pack/plugins/data_enhanced/public/autocomplete/index.ts deleted file mode 100644 index 7910ce3ffb237..0000000000000 --- a/x-pack/plugins/data_enhanced/public/autocomplete/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -export { - setupKqlQuerySuggestionProvider, - KUERY_LANGUAGE_NAME, -} from './providers/kql_query_suggestion'; diff --git a/x-pack/plugins/data_enhanced/public/plugin.ts b/x-pack/plugins/data_enhanced/public/plugin.ts index 056135b34cf9f..439cae4f414f7 100644 --- a/x-pack/plugins/data_enhanced/public/plugin.ts +++ b/x-pack/plugins/data_enhanced/public/plugin.ts @@ -17,8 +17,6 @@ import { BfetchPublicSetup } from '../../../../src/plugins/bfetch/public'; import { ManagementSetup } from '../../../../src/plugins/management/public'; import { SharePluginStart } from '../../../../src/plugins/share/public'; -import { setAutocompleteService } from './services'; -import { setupKqlQuerySuggestionProvider, KUERY_LANGUAGE_NAME } from './autocomplete'; import { EnhancedSearchInterceptor } from './search/search_interceptor'; import { registerSearchSessionsMgmt } from './search/sessions_mgmt'; import { toMountPoint } from '../../../../src/plugins/kibana_react/public'; @@ -52,11 +50,6 @@ export class DataEnhancedPlugin core: CoreSetup, { bfetch, data, management }: DataEnhancedSetupDependencies ) { - data.autocomplete.addQuerySuggestionProvider( - KUERY_LANGUAGE_NAME, - setupKqlQuerySuggestionProvider(core) - ); - this.enhancedSearchInterceptor = new EnhancedSearchInterceptor({ bfetch, toasts: core.notifications.toasts, @@ -83,8 +76,6 @@ export class DataEnhancedPlugin } public start(core: CoreStart, plugins: DataEnhancedStartDependencies) { - setAutocompleteService(plugins.data.autocomplete); - if (this.config.search.sessions.enabled) { core.chrome.setBreadcrumbsAppendExtension({ content: toMountPoint( diff --git a/x-pack/plugins/data_enhanced/public/services.ts b/x-pack/plugins/data_enhanced/public/services.ts deleted file mode 100644 index 5eef7e391bdd4..0000000000000 --- a/x-pack/plugins/data_enhanced/public/services.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { createGetterSetter } from '../../../../src/plugins/kibana_utils/public'; -import { DataPublicPluginStart } from '../../../../src/plugins/data/public'; - -export const [getAutocompleteService, setAutocompleteService] = createGetterSetter< - DataPublicPluginStart['autocomplete'] ->('Autocomplete'); diff --git a/x-pack/plugins/data_enhanced/tsconfig.json b/x-pack/plugins/data_enhanced/tsconfig.json index 216c115545a45..047b9b06516ba 100644 --- a/x-pack/plugins/data_enhanced/tsconfig.json +++ b/x-pack/plugins/data_enhanced/tsconfig.json @@ -13,8 +13,6 @@ "server/**/*", "config.ts", "../../../typings/**/*", - // have to declare *.json explicitly due to https://github.com/microsoft/TypeScript/issues/25636 - "public/autocomplete/providers/kql_query_suggestion/__fixtures__/*.json", "common/search/test_data/*.json" ], "references": [ diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 0c6a76ba95725..0df65f21577f4 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -1443,6 +1443,23 @@ "data.searchSessionIndicator.noCapability": "検索セッションを作成するアクセス権がありません。", "data.triggers.applyFilterDescription": "Kibanaフィルターが適用されるとき。単一の値または範囲フィルターにすることができます。", "data.triggers.applyFilterTitle": "フィルターを適用", + "data.kueryAutocomplete.andOperatorDescription": "{bothArguments} が true であることを条件とする", + "data.kueryAutocomplete.andOperatorDescription.bothArgumentsText": "両方の引数", + "data.kueryAutocomplete.equalOperatorDescription": "一部の値に{equals}", + "data.kueryAutocomplete.equalOperatorDescription.equalsText": "一致する", + "data.kueryAutocomplete.existOperatorDescription": "いずれかの形式中に{exists}", + "data.kueryAutocomplete.existOperatorDescription.existsText": "存在する", + "data.kueryAutocomplete.filterResultsDescription": "{fieldName}を含む結果をフィルタリング", + "data.kueryAutocomplete.greaterThanOperatorDescription": "が一部の値{greaterThan}", + "data.kueryAutocomplete.greaterThanOperatorDescription.greaterThanText": "より大きい", + "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription": "が一部の値{greaterThanOrEqualTo}", + "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription.greaterThanOrEqualToText": "よりも大きいまたは等しい", + "data.kueryAutocomplete.lessThanOperatorDescription": "が一部の値{lessThan}", + "data.kueryAutocomplete.lessThanOperatorDescription.lessThanText": "より小さい", + "data.kueryAutocomplete.lessThanOrEqualOperatorDescription": "が一部の値{lessThanOrEqualTo}", + "data.kueryAutocomplete.lessThanOrEqualOperatorDescription.lessThanOrEqualToText": "より小さいまたは等しい", + "data.kueryAutocomplete.orOperatorDescription": "{oneOrMoreArguments} が true であることを条件とする", + "data.kueryAutocomplete.orOperatorDescription.oneOrMoreArgumentsText": "1つ以上の引数", "devTools.badge.readOnly.text": "読み取り専用", "devTools.badge.readOnly.tooltip": "を保存できませんでした", "devTools.devToolsTitle": "開発ツール", @@ -7291,23 +7308,6 @@ "xpack.dashboardMode.uiSettings.dashboardsOnlyRolesTitle": "ダッシュボード専用ロール", "xpack.data.advancedSettings.searchTimeout": "検索タイムアウト", "xpack.data.advancedSettings.searchTimeoutDesc": "検索セッションの最大タイムアウトを変更するか、0に設定してタイムアウトを無効にすると、クエリは完了するまで実行されます。", - "xpack.data.kueryAutocomplete.andOperatorDescription": "{bothArguments} が true であることを条件とする", - "xpack.data.kueryAutocomplete.andOperatorDescription.bothArgumentsText": "両方の引数", - "xpack.data.kueryAutocomplete.equalOperatorDescription": "一部の値に{equals}", - "xpack.data.kueryAutocomplete.equalOperatorDescription.equalsText": "一致する", - "xpack.data.kueryAutocomplete.existOperatorDescription": "いずれかの形式中に{exists}", - "xpack.data.kueryAutocomplete.existOperatorDescription.existsText": "存在する", - "xpack.data.kueryAutocomplete.filterResultsDescription": "{fieldName}を含む結果をフィルタリング", - "xpack.data.kueryAutocomplete.greaterThanOperatorDescription": "が一部の値{greaterThan}", - "xpack.data.kueryAutocomplete.greaterThanOperatorDescription.greaterThanText": "より大きい", - "xpack.data.kueryAutocomplete.greaterThanOrEqualOperatorDescription": "が一部の値{greaterThanOrEqualTo}", - "xpack.data.kueryAutocomplete.greaterThanOrEqualOperatorDescription.greaterThanOrEqualToText": "よりも大きいまたは等しい", - "xpack.data.kueryAutocomplete.lessThanOperatorDescription": "が一部の値{lessThan}", - "xpack.data.kueryAutocomplete.lessThanOperatorDescription.lessThanText": "より小さい", - "xpack.data.kueryAutocomplete.lessThanOrEqualOperatorDescription": "が一部の値{lessThanOrEqualTo}", - "xpack.data.kueryAutocomplete.lessThanOrEqualOperatorDescription.lessThanOrEqualToText": "より小さいまたは等しい", - "xpack.data.kueryAutocomplete.orOperatorDescription": "{oneOrMoreArguments} が true であることを条件とする", - "xpack.data.kueryAutocomplete.orOperatorDescription.oneOrMoreArgumentsText": "1つ以上の引数", "xpack.data.mgmt.searchSessions.actionDelete": "削除", "xpack.data.mgmt.searchSessions.actionExtend": "延長", "xpack.data.mgmt.searchSessions.actions.tooltip.moreActions": "さらにアクションを表示", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 1f93020f8a165..580db8e5aa0c1 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -1451,6 +1451,23 @@ "data.searchSessionIndicator.noCapability": "您无权创建搜索会话。", "data.triggers.applyFilterDescription": "应用 kibana 筛选时。可能是单个值或范围筛选。", "data.triggers.applyFilterTitle": "应用筛选", + "data.kueryAutocomplete.andOperatorDescription": "需要{bothArguments}为 true", + "data.kueryAutocomplete.andOperatorDescription.bothArgumentsText": "两个参数都", + "data.kueryAutocomplete.equalOperatorDescription": "{equals}某一值", + "data.kueryAutocomplete.equalOperatorDescription.equalsText": "等于", + "data.kueryAutocomplete.existOperatorDescription": "以任意形式{exists}", + "data.kueryAutocomplete.existOperatorDescription.existsText": "存在", + "data.kueryAutocomplete.filterResultsDescription": "筛选包含 {fieldName} 的结果", + "data.kueryAutocomplete.greaterThanOperatorDescription": "{greaterThan}某一值", + "data.kueryAutocomplete.greaterThanOperatorDescription.greaterThanText": "大于", + "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription": "{greaterThanOrEqualTo}某一值", + "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription.greaterThanOrEqualToText": "大于或等于", + "data.kueryAutocomplete.lessThanOperatorDescription": "{lessThan}某一值", + "data.kueryAutocomplete.lessThanOperatorDescription.lessThanText": "小于", + "data.kueryAutocomplete.lessThanOrEqualOperatorDescription": "{lessThanOrEqualTo}某一值", + "data.kueryAutocomplete.lessThanOrEqualOperatorDescription.lessThanOrEqualToText": "小于或等于", + "data.kueryAutocomplete.orOperatorDescription": "需要{oneOrMoreArguments}为 true", + "data.kueryAutocomplete.orOperatorDescription.oneOrMoreArgumentsText": "一个或多个参数", "devTools.badge.readOnly.text": "只读", "devTools.badge.readOnly.tooltip": "无法保存", "devTools.devToolsTitle": "开发工具", @@ -7352,23 +7369,6 @@ "xpack.dashboardMode.uiSettings.dashboardsOnlyRolesTitle": "仅限仪表板的角色", "xpack.data.advancedSettings.searchTimeout": "搜索超时", "xpack.data.advancedSettings.searchTimeoutDesc": "更改搜索会话的最大超时值,或设置为 0 以禁用超时,让查询运行至结束。", - "xpack.data.kueryAutocomplete.andOperatorDescription": "需要{bothArguments}为 true", - "xpack.data.kueryAutocomplete.andOperatorDescription.bothArgumentsText": "两个参数都", - "xpack.data.kueryAutocomplete.equalOperatorDescription": "{equals}某一值", - "xpack.data.kueryAutocomplete.equalOperatorDescription.equalsText": "等于", - "xpack.data.kueryAutocomplete.existOperatorDescription": "以任意形式{exists}", - "xpack.data.kueryAutocomplete.existOperatorDescription.existsText": "存在", - "xpack.data.kueryAutocomplete.filterResultsDescription": "筛选包含 {fieldName} 的结果", - "xpack.data.kueryAutocomplete.greaterThanOperatorDescription": "{greaterThan}某一值", - "xpack.data.kueryAutocomplete.greaterThanOperatorDescription.greaterThanText": "大于", - "xpack.data.kueryAutocomplete.greaterThanOrEqualOperatorDescription": "{greaterThanOrEqualTo}某一值", - "xpack.data.kueryAutocomplete.greaterThanOrEqualOperatorDescription.greaterThanOrEqualToText": "大于或等于", - "xpack.data.kueryAutocomplete.lessThanOperatorDescription": "{lessThan}某一值", - "xpack.data.kueryAutocomplete.lessThanOperatorDescription.lessThanText": "小于", - "xpack.data.kueryAutocomplete.lessThanOrEqualOperatorDescription": "{lessThanOrEqualTo}某一值", - "xpack.data.kueryAutocomplete.lessThanOrEqualOperatorDescription.lessThanOrEqualToText": "小于或等于", - "xpack.data.kueryAutocomplete.orOperatorDescription": "需要{oneOrMoreArguments}为 true", - "xpack.data.kueryAutocomplete.orOperatorDescription.oneOrMoreArgumentsText": "一个或多个参数", "xpack.data.mgmt.searchSessions.actionDelete": "删除", "xpack.data.mgmt.searchSessions.actionExtend": "延长", "xpack.data.mgmt.searchSessions.actions.tooltip.moreActions": "更多操作", From 21192222fd98b2c4e743d36874594951ff55711f Mon Sep 17 00:00:00 2001 From: Scotty Bollinger Date: Fri, 26 Mar 2021 11:46:01 -0500 Subject: [PATCH 11/55] Add button on non-MVP pages to link to personal dashboard (#95441) --- .../layout/kibana_header_actions.test.tsx | 29 +++++++++----- .../layout/kibana_header_actions.tsx | 40 +++++++++++++++---- 2 files changed, 53 insertions(+), 16 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/layout/kibana_header_actions.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/layout/kibana_header_actions.test.tsx index a7a788b48789a..2cd47f1c1b597 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/layout/kibana_header_actions.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/layout/kibana_header_actions.test.tsx @@ -9,13 +9,14 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { EuiButtonEmpty } from '@elastic/eui'; - import { externalUrl } from '../../../shared/enterprise_search_url'; +import { WORKPLACE_SEARCH_URL_PREFIX } from '../../constants'; import { WorkplaceSearchHeaderActions } from './'; describe('WorkplaceSearchHeaderActions', () => { + const ENT_SEARCH_URL = 'http://localhost:3002'; + it('does not render without an Enterprise Search URL set', () => { const wrapper = shallow(); @@ -23,22 +24,32 @@ describe('WorkplaceSearchHeaderActions', () => { }); it('renders a link to the personal dashboard', () => { - externalUrl.enterpriseSearchUrl = 'http://localhost:3002'; - + externalUrl.enterpriseSearchUrl = ENT_SEARCH_URL; const wrapper = shallow(); - expect(wrapper.find(EuiButtonEmpty).first().prop('href')).toEqual( - 'http://localhost:3002/ws/sources' + expect(wrapper.find('[data-test-subj="PersonalDashboardButton"]').prop('to')).toEqual( + '/p/sources' ); + expect(wrapper.find('[data-test-subj="PersonalDashboardMVPButton"]')).toHaveLength(0); }); it('renders a link to the search application', () => { - externalUrl.enterpriseSearchUrl = 'http://localhost:3002'; - + externalUrl.enterpriseSearchUrl = ENT_SEARCH_URL; const wrapper = shallow(); - expect(wrapper.find(EuiButtonEmpty).last().prop('href')).toEqual( + expect(wrapper.find('[data-test-subj="HeaderSearchButton"]').prop('href')).toEqual( 'http://localhost:3002/ws/search' ); }); + + it('renders an MVP link back to the legacy dashboard on the MVP page', () => { + window.history.pushState({}, 'Overview', WORKPLACE_SEARCH_URL_PREFIX); + externalUrl.enterpriseSearchUrl = ENT_SEARCH_URL; + const wrapper = shallow(); + + expect(wrapper.find('[data-test-subj="PersonalDashboardMVPButton"]').prop('href')).toEqual( + `${ENT_SEARCH_URL}/ws/sources` + ); + expect(wrapper.find('[data-test-subj="PersonalDashboardButton"]')).toHaveLength(0); + }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/layout/kibana_header_actions.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/layout/kibana_header_actions.tsx index 95d7920ae0435..7d594ce66aea1 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/layout/kibana_header_actions.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/layout/kibana_header_actions.tsx @@ -10,20 +10,46 @@ import React from 'react'; import { EuiButtonEmpty, EuiText, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { externalUrl, getWorkplaceSearchUrl } from '../../../shared/enterprise_search_url'; -import { NAV } from '../../constants'; +import { EuiButtonEmptyTo } from '../../../shared/react_router_helpers'; +import { NAV, WORKPLACE_SEARCH_URL_PREFIX } from '../../constants'; +import { PERSONAL_SOURCES_PATH } from '../../routes'; export const WorkplaceSearchHeaderActions: React.FC = () => { if (!externalUrl.enterpriseSearchUrl) return null; + const isMVP = window.location.pathname.endsWith(WORKPLACE_SEARCH_URL_PREFIX); + + const personalDashboardMVPButton = ( + + {NAV.PERSONAL_DASHBOARD} + + ); + + const personalDashboardButton = ( + + {NAV.PERSONAL_DASHBOARD} + + ); + return ( + {isMVP ? personalDashboardMVPButton : personalDashboardButton} - - {NAV.PERSONAL_DASHBOARD} - - - - + {NAV.SEARCH} From ce6641bac1daf5e7f0ccba20d54ea8858f4f26ef Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Fri, 26 Mar 2021 18:08:46 +0100 Subject: [PATCH 12/55] [Search Sessions] Rename search sessions functional tests. Remove wip mention (#95330) --- .github/CODEOWNERS | 1 + x-pack/scripts/functional_tests.js | 2 +- x-pack/test/functional/services/search_sessions.ts | 2 +- .../config.ts | 7 ++----- .../ftr_provider_context.d.ts | 0 .../tests/apps/dashboard/async_search/async_search.ts | 0 .../tests/apps/dashboard/async_search/index.ts | 4 ++-- .../apps/dashboard/async_search/save_search_session.ts} | 3 +-- .../async_search/save_search_session_relative_time.ts} | 2 +- .../apps/dashboard/async_search/search_sessions_tour.ts | 0 .../tests/apps/dashboard/async_search/sessions_in_space.ts | 0 .../tests/apps/discover/async_search.ts | 0 .../tests/apps/discover/index.ts | 0 .../tests/apps/discover/sessions_in_space.ts | 0 .../tests/apps/lens/index.ts | 0 .../tests/apps/lens/search_sessions.ts | 0 .../tests/apps/management/search_sessions/index.ts | 0 .../apps/management/search_sessions/sessions_management.ts | 0 .../search_sessions/sessions_management_permissions.ts | 0 19 files changed, 9 insertions(+), 12 deletions(-) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/config.ts (79%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/ftr_provider_context.d.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/dashboard/async_search/async_search.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/dashboard/async_search/index.ts (91%) rename x-pack/test/{send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background.ts => search_sessions_integration/tests/apps/dashboard/async_search/save_search_session.ts} (97%) rename x-pack/test/{send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background_relative_time.ts => search_sessions_integration/tests/apps/dashboard/async_search/save_search_session_relative_time.ts} (98%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/dashboard/async_search/search_sessions_tour.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/dashboard/async_search/sessions_in_space.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/discover/async_search.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/discover/index.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/discover/sessions_in_space.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/lens/index.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/lens/search_sessions.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/management/search_sessions/index.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/management/search_sessions/sessions_management.ts (100%) rename x-pack/test/{send_search_to_background_integration => search_sessions_integration}/tests/apps/management/search_sessions/sessions_management_permissions.ts (100%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2f2f260addb35..33b3e4a7dede6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -59,6 +59,7 @@ /x-pack/plugins/embeddable_enhanced/ @elastic/kibana-app-services /x-pack/plugins/ui_actions_enhanced/ @elastic/kibana-app-services /x-pack/plugins/runtime_fields @elastic/kibana-app-services +/x-pack/test/search_sessions_integration/ @elastic/kibana-app-services #CC# /src/plugins/bfetch/ @elastic/kibana-app-services #CC# /src/plugins/index_pattern_management/ @elastic/kibana-app-services #CC# /src/plugins/inspector/ @elastic/kibana-app-services diff --git a/x-pack/scripts/functional_tests.js b/x-pack/scripts/functional_tests.js index 88c4410fde941..90306466a9753 100644 --- a/x-pack/scripts/functional_tests.js +++ b/x-pack/scripts/functional_tests.js @@ -74,7 +74,7 @@ const onlyNotInCoverageTests = [ require.resolve('../test/reporting_api_integration/reporting_without_security.config.ts'), require.resolve('../test/security_solution_endpoint_api_int/config.ts'), require.resolve('../test/fleet_api_integration/config.ts'), - require.resolve('../test/send_search_to_background_integration/config.ts'), + require.resolve('../test/search_sessions_integration/config.ts'), require.resolve('../test/saved_object_tagging/api_integration/security_and_spaces/config.ts'), require.resolve('../test/saved_object_tagging/api_integration/tagging_api/config.ts'), require.resolve('../test/examples/config.ts'), diff --git a/x-pack/test/functional/services/search_sessions.ts b/x-pack/test/functional/services/search_sessions.ts index 34bea998925e5..c1702742b28ac 100644 --- a/x-pack/test/functional/services/search_sessions.ts +++ b/x-pack/test/functional/services/search_sessions.ts @@ -32,7 +32,7 @@ export function SearchSessionsProvider({ getService }: FtrProviderContext) { const browser = getService('browser'); const supertest = getService('supertest'); - return new (class SendToBackgroundService { + return new (class SearchSessionsService { public async find(): Promise { return testSubjects.find(SEARCH_SESSION_INDICATOR_TEST_SUBJ); } diff --git a/x-pack/test/send_search_to_background_integration/config.ts b/x-pack/test/search_sessions_integration/config.ts similarity index 79% rename from x-pack/test/send_search_to_background_integration/config.ts rename to x-pack/test/search_sessions_integration/config.ts index af87e521bd302..831257738f64c 100644 --- a/x-pack/test/send_search_to_background_integration/config.ts +++ b/x-pack/test/search_sessions_integration/config.ts @@ -17,7 +17,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { ...xpackFunctionalConfig.getAll(), junit: { - reportName: 'X-Pack Background Search UI (Enabled WIP Feature)', + reportName: 'X-Pack Search Sessions Integration', }, testFiles: [ @@ -29,10 +29,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { kbnTestServer: { ...xpackFunctionalConfig.get('kbnTestServer'), - serverArgs: [ - ...xpackFunctionalConfig.get('kbnTestServer.serverArgs'), - '--xpack.data_enhanced.search.sessions.enabled=true', // enable WIP send to background UI - ], + serverArgs: [...xpackFunctionalConfig.get('kbnTestServer.serverArgs')], }, services, }; diff --git a/x-pack/test/send_search_to_background_integration/ftr_provider_context.d.ts b/x-pack/test/search_sessions_integration/ftr_provider_context.d.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/ftr_provider_context.d.ts rename to x-pack/test/search_sessions_integration/ftr_provider_context.d.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/async_search.ts b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/async_search.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/async_search.ts rename to x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/async_search.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/index.ts b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/index.ts similarity index 91% rename from x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/index.ts rename to x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/index.ts index 82642a640ce47..6992469a31a7c 100644 --- a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/index.ts +++ b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/index.ts @@ -33,8 +33,8 @@ export default function ({ loadTestFile, getService, getPageObjects }: FtrProvid }); loadTestFile(require.resolve('./async_search')); - loadTestFile(require.resolve('./send_to_background')); - loadTestFile(require.resolve('./send_to_background_relative_time')); + loadTestFile(require.resolve('./save_search_session')); + loadTestFile(require.resolve('./save_search_session_relative_time')); loadTestFile(require.resolve('./search_sessions_tour')); loadTestFile(require.resolve('./sessions_in_space')); }); diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background.ts b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session.ts similarity index 97% rename from x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background.ts rename to x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session.ts index dc7e5b60f5e1c..f7ea80de57bda 100644 --- a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background.ts +++ b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session.ts @@ -18,7 +18,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const searchSessions = getService('searchSessions'); const queryBar = getService('queryBar'); - describe('send to background', () => { + describe('save a search sessions', () => { before(async function () { const { body } = await es.info(); if (!body.version.number.includes('SNAPSHOT')) { @@ -83,7 +83,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { ); // load URL to restore a saved session - // TODO: replace with clicking on "Re-run link" const url = await browser.getCurrentUrl(); const savedSessionURL = `${url}&searchSessionId=${savedSessionId}`; await browser.get(savedSessionURL); diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background_relative_time.ts b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session_relative_time.ts similarity index 98% rename from x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background_relative_time.ts rename to x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session_relative_time.ts index 963f1350dcf66..bb0e9d697063b 100644 --- a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background_relative_time.ts +++ b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session_relative_time.ts @@ -29,7 +29,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const dashboardExpect = getService('dashboardExpect'); const searchSessions = getService('searchSessions'); - describe('send to background with relative time', () => { + describe('save a search sessions with relative time', () => { before(async () => { await PageObjects.common.navigateToUrl('home', '/tutorial_directory/sampleData', { useActualUrl: true, diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/search_sessions_tour.ts b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/search_sessions_tour.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/search_sessions_tour.ts rename to x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/search_sessions_tour.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/sessions_in_space.ts b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/sessions_in_space.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/sessions_in_space.ts rename to x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/sessions_in_space.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/discover/async_search.ts b/x-pack/test/search_sessions_integration/tests/apps/discover/async_search.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/discover/async_search.ts rename to x-pack/test/search_sessions_integration/tests/apps/discover/async_search.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/discover/index.ts b/x-pack/test/search_sessions_integration/tests/apps/discover/index.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/discover/index.ts rename to x-pack/test/search_sessions_integration/tests/apps/discover/index.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/discover/sessions_in_space.ts b/x-pack/test/search_sessions_integration/tests/apps/discover/sessions_in_space.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/discover/sessions_in_space.ts rename to x-pack/test/search_sessions_integration/tests/apps/discover/sessions_in_space.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/lens/index.ts b/x-pack/test/search_sessions_integration/tests/apps/lens/index.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/lens/index.ts rename to x-pack/test/search_sessions_integration/tests/apps/lens/index.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/lens/search_sessions.ts b/x-pack/test/search_sessions_integration/tests/apps/lens/search_sessions.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/lens/search_sessions.ts rename to x-pack/test/search_sessions_integration/tests/apps/lens/search_sessions.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/management/search_sessions/index.ts b/x-pack/test/search_sessions_integration/tests/apps/management/search_sessions/index.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/management/search_sessions/index.ts rename to x-pack/test/search_sessions_integration/tests/apps/management/search_sessions/index.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/management/search_sessions/sessions_management.ts b/x-pack/test/search_sessions_integration/tests/apps/management/search_sessions/sessions_management.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/management/search_sessions/sessions_management.ts rename to x-pack/test/search_sessions_integration/tests/apps/management/search_sessions/sessions_management.ts diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/management/search_sessions/sessions_management_permissions.ts b/x-pack/test/search_sessions_integration/tests/apps/management/search_sessions/sessions_management_permissions.ts similarity index 100% rename from x-pack/test/send_search_to_background_integration/tests/apps/management/search_sessions/sessions_management_permissions.ts rename to x-pack/test/search_sessions_integration/tests/apps/management/search_sessions/sessions_management_permissions.ts From 8101419cb93e8bfdbea83499a9cc8ec520e87149 Mon Sep 17 00:00:00 2001 From: Yuliia Naumenko Date: Fri, 26 Mar 2021 10:44:44 -0700 Subject: [PATCH 13/55] [Alerts UI] Fixed significant delay during disabling/enabling alerts (#95373) * [Alerts UI] Fixed significant delay during disabling/enabling alerts * fixed test --- .../components/collapsed_item_actions.tsx | 47 ++++++++++++------- .../with_bulk_alert_api_operations.tsx | 8 ++-- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_list/components/collapsed_item_actions.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_list/components/collapsed_item_actions.tsx index b5458ee4cb54f..43fdb9fe819e7 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_list/components/collapsed_item_actions.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_list/components/collapsed_item_actions.tsx @@ -6,7 +6,8 @@ */ import { i18n } from '@kbn/i18n'; -import React, { useState } from 'react'; +import { asyncScheduler } from 'rxjs'; +import React, { useEffect, useState } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; import { EuiButtonIcon, @@ -43,6 +44,12 @@ export const CollapsedItemActions: React.FunctionComponent = ({ setAlertsToDelete, }: ComponentOpts) => { const [isPopoverOpen, setIsPopoverOpen] = useState(false); + const [isDisabled, setIsDisabled] = useState(!item.enabled); + const [isMuted, setIsMuted] = useState(item.muteAll); + useEffect(() => { + setIsDisabled(!item.enabled); + setIsMuted(item.muteAll); + }, [item.enabled, item.muteAll]); const button = ( = ({ name="disable" disabled={!item.isEditable || !item.enabledInLicense} compressed - checked={!item.enabled} + checked={isDisabled} data-test-subj="disableSwitch" onChange={async () => { - if (item.enabled) { - await disableAlert(item); - } else { - await enableAlert(item); - } - onAlertChanged(); + const enabled = !isDisabled; + asyncScheduler.schedule(async () => { + if (enabled) { + await disableAlert({ ...item, enabled }); + } else { + await enableAlert({ ...item, enabled }); + } + onAlertChanged(); + }, 10); + setIsDisabled(!isDisabled); }} label={ = ({

{ - if (item.muteAll) { - await unmuteAlert(item); - } else { - await muteAlert(item); - } - onAlertChanged(); + const muteAll = isMuted; + asyncScheduler.schedule(async () => { + if (muteAll) { + await unmuteAlert({ ...item, muteAll }); + } else { + await muteAlert({ ...item, muteAll }); + } + onAlertChanged(); + }, 10); + setIsMuted(!isMuted); }} label={ ( } muteAlert={async (alert: Alert) => { if (!isAlertMuted(alert)) { - return muteAlert({ http, id: alert.id }); + return await muteAlert({ http, id: alert.id }); } }} unmuteAlert={async (alert: Alert) => { if (isAlertMuted(alert)) { - return unmuteAlert({ http, id: alert.id }); + return await unmuteAlert({ http, id: alert.id }); } }} muteAlertInstance={async (alert: Alert, instanceId: string) => { @@ -117,12 +117,12 @@ export function withBulkAlertOperations( }} enableAlert={async (alert: Alert) => { if (isAlertDisabled(alert)) { - return enableAlert({ http, id: alert.id }); + return await enableAlert({ http, id: alert.id }); } }} disableAlert={async (alert: Alert) => { if (!isAlertDisabled(alert)) { - return disableAlert({ http, id: alert.id }); + return await disableAlert({ http, id: alert.id }); } }} deleteAlert={async (alert: Alert) => deleteAlerts({ http, ids: [alert.id] })} From e31ef5235ecb0fe1917e57f46e063a781db074e0 Mon Sep 17 00:00:00 2001 From: Yuliia Naumenko Date: Fri, 26 Mar 2021 10:46:33 -0700 Subject: [PATCH 14/55] [Task Manager] Fixed the behavior of the claiming tasks function failing, when inline scripts are disabled. (#94870) * [Task Manager] Fixed the behavior of the claiming tasks funtion failing, when inline scripts are disabled. * added docs * fixed test * added tests * fixed due to comments * Fixed docs due to comments * extended TM configuration changes message with the possible errors description --- .../task-manager-troubleshooting.asciidoc | 18 ++++++ .../managed_configuration.test.ts | 62 +++++++++++++++++-- .../lib/create_managed_configuration.test.ts | 4 +- .../lib/create_managed_configuration.ts | 15 +++-- .../server/lib/identify_es_error.test.ts | 53 ++++++++-------- .../server/lib/identify_es_error.ts | 32 ++++++++-- .../server/polling_lifecycle.test.ts | 47 ++++++++++++-- .../task_manager/server/polling_lifecycle.ts | 7 ++- 8 files changed, 185 insertions(+), 53 deletions(-) diff --git a/docs/user/production-considerations/task-manager-troubleshooting.asciidoc b/docs/user/production-considerations/task-manager-troubleshooting.asciidoc index c96b294c0c50d..5e75aef0d9570 100644 --- a/docs/user/production-considerations/task-manager-troubleshooting.asciidoc +++ b/docs/user/production-considerations/task-manager-troubleshooting.asciidoc @@ -706,3 +706,21 @@ These rough calculations give you a lower bound to the required throughput, whic Given these inferred attributes, it would be safe to assume that a single {kib} instance with default settings **would not** provide the required throughput. It is possible that scaling horizontally by adding a couple more {kib} instances will. For details on scaling Task Manager, see <>. + +[float] +[[task-manager-cannot-operate-when-inline-scripts-are-disabled]] +==== Inline scripts are disabled in {es} + +*Problem*: + +Tasks are not running, and the server logs contain the following error message: + +[source, txt] +-------------------------------------------------- +[warning][plugins][taskManager] Task Manager cannot operate when inline scripts are disabled in {es} +-------------------------------------------------- + +*Solution*: + +Inline scripts are a hard requirement for Task Manager to function. +To enable inline scripting, see the Elasticsearch documentation for {ref}/modules-scripting-security.html#allowed-script-types-setting[configuring allowed script types setting]. diff --git a/x-pack/plugins/task_manager/server/integration_tests/managed_configuration.test.ts b/x-pack/plugins/task_manager/server/integration_tests/managed_configuration.test.ts index f4c3e41778893..f7ea6cea53857 100644 --- a/x-pack/plugins/task_manager/server/integration_tests/managed_configuration.test.ts +++ b/x-pack/plugins/task_manager/server/integration_tests/managed_configuration.test.ts @@ -6,7 +6,10 @@ */ import sinon from 'sinon'; -import { savedObjectsRepositoryMock } from '../../../../../src/core/server/mocks'; +import { + elasticsearchServiceMock, + savedObjectsRepositoryMock, +} from '../../../../../src/core/server/mocks'; import { SavedObjectsErrorHelpers, Logger } from '../../../../../src/core/server'; import { ADJUST_THROUGHPUT_INTERVAL } from '../lib/create_managed_configuration'; import { TaskManagerPlugin, TaskManagerStartContract } from '../plugin'; @@ -19,6 +22,7 @@ describe('managed configuration', () => { let clock: sinon.SinonFakeTimers; const savedObjectsClient = savedObjectsRepositoryMock.create(); + const esStart = elasticsearchServiceMock.createStart(); beforeEach(async () => { jest.resetAllMocks(); @@ -55,6 +59,7 @@ describe('managed configuration', () => { }); const coreStart = coreMock.createStart(); + coreStart.elasticsearch = esStart; coreStart.savedObjects.createInternalRepository.mockReturnValue(savedObjectsClient); taskManagerStart = await taskManager.start(coreStart); @@ -81,10 +86,10 @@ describe('managed configuration', () => { clock.tick(ADJUST_THROUGHPUT_INTERVAL); expect(logger.warn).toHaveBeenCalledWith( - 'Max workers configuration is temporarily reduced after Elasticsearch returned 1 "too many request" error(s).' + 'Max workers configuration is temporarily reduced after Elasticsearch returned 1 "too many request" and/or "execute [inline] script" error(s).' ); expect(logger.debug).toHaveBeenCalledWith( - 'Max workers configuration changing from 10 to 8 after seeing 1 error(s)' + 'Max workers configuration changing from 10 to 8 after seeing 1 "too many request" and/or "execute [inline] script" error(s)' ); expect(logger.debug).toHaveBeenCalledWith('Task pool now using 10 as the max worker value'); }); @@ -105,10 +110,57 @@ describe('managed configuration', () => { clock.tick(ADJUST_THROUGHPUT_INTERVAL); expect(logger.warn).toHaveBeenCalledWith( - 'Poll interval configuration is temporarily increased after Elasticsearch returned 1 "too many request" error(s).' + 'Poll interval configuration is temporarily increased after Elasticsearch returned 1 "too many request" and/or "execute [inline] script" error(s).' ); expect(logger.debug).toHaveBeenCalledWith( - 'Poll interval configuration changing from 3000 to 3600 after seeing 1 error(s)' + 'Poll interval configuration changing from 3000 to 3600 after seeing 1 "too many request" and/or "execute [inline] script" error(s)' + ); + expect(logger.debug).toHaveBeenCalledWith('Task poller now using interval of 3600ms'); + }); + + test('should lower max workers when Elasticsearch returns "cannot execute [inline] scripts" error', async () => { + esStart + .createClient('taskManager') + .asInternalUser.search.mockRejectedValueOnce( + elasticsearchServiceMock.createErrorTransportRequestPromise( + new Error('cannot execute [inline] scripts" error') + ) + ); + + await expect(taskManagerStart.fetch({})).rejects.toThrowErrorMatchingInlineSnapshot( + `"cannot execute [inline] scripts" error"` + ); + clock.tick(ADJUST_THROUGHPUT_INTERVAL); + + expect(logger.warn).toHaveBeenCalledWith( + 'Max workers configuration is temporarily reduced after Elasticsearch returned 1 "too many request" and/or "execute [inline] script" error(s).' + ); + expect(logger.debug).toHaveBeenCalledWith( + 'Max workers configuration changing from 10 to 8 after seeing 1 "too many request" and/or "execute [inline] script" error(s)' + ); + expect(logger.debug).toHaveBeenCalledWith('Task pool now using 10 as the max worker value'); + }); + + test('should increase poll interval when Elasticsearch returns "cannot execute [inline] scripts" error', async () => { + esStart + .createClient('taskManager') + .asInternalUser.search.mockRejectedValueOnce( + elasticsearchServiceMock.createErrorTransportRequestPromise( + new Error('cannot execute [inline] scripts" error') + ) + ); + + await expect(taskManagerStart.fetch({})).rejects.toThrowErrorMatchingInlineSnapshot( + `"cannot execute [inline] scripts" error"` + ); + + clock.tick(ADJUST_THROUGHPUT_INTERVAL); + + expect(logger.warn).toHaveBeenCalledWith( + 'Poll interval configuration is temporarily increased after Elasticsearch returned 1 "too many request" and/or "execute [inline] script" error(s).' + ); + expect(logger.debug).toHaveBeenCalledWith( + 'Poll interval configuration changing from 3000 to 3600 after seeing 1 "too many request" and/or "execute [inline] script" error(s)' ); expect(logger.debug).toHaveBeenCalledWith('Task poller now using interval of 3600ms'); }); diff --git a/x-pack/plugins/task_manager/server/lib/create_managed_configuration.test.ts b/x-pack/plugins/task_manager/server/lib/create_managed_configuration.test.ts index 74b1b6f752d66..2dc63b306643e 100644 --- a/x-pack/plugins/task_manager/server/lib/create_managed_configuration.test.ts +++ b/x-pack/plugins/task_manager/server/lib/create_managed_configuration.test.ts @@ -96,7 +96,7 @@ describe('createManagedConfiguration()', () => { errors$.next(SavedObjectsErrorHelpers.createTooManyRequestsError('a', 'b')); clock.tick(ADJUST_THROUGHPUT_INTERVAL); expect(logger.warn).toHaveBeenCalledWith( - 'Max workers configuration is temporarily reduced after Elasticsearch returned 1 "too many request" error(s).' + 'Max workers configuration is temporarily reduced after Elasticsearch returned 1 "too many request" and/or "execute [inline] script" error(s).' ); }); @@ -180,7 +180,7 @@ describe('createManagedConfiguration()', () => { errors$.next(SavedObjectsErrorHelpers.createTooManyRequestsError('a', 'b')); clock.tick(ADJUST_THROUGHPUT_INTERVAL); expect(logger.warn).toHaveBeenCalledWith( - 'Poll interval configuration is temporarily increased after Elasticsearch returned 1 "too many request" error(s).' + 'Poll interval configuration is temporarily increased after Elasticsearch returned 1 "too many request" and/or "execute [inline] script" error(s).' ); }); diff --git a/x-pack/plugins/task_manager/server/lib/create_managed_configuration.ts b/x-pack/plugins/task_manager/server/lib/create_managed_configuration.ts index e1fa83227080f..188e4bacd52e6 100644 --- a/x-pack/plugins/task_manager/server/lib/create_managed_configuration.ts +++ b/x-pack/plugins/task_manager/server/lib/create_managed_configuration.ts @@ -9,6 +9,7 @@ import { interval, merge, of, Observable } from 'rxjs'; import { filter, mergeScan, map, scan, distinctUntilChanged, startWith } from 'rxjs/operators'; import { SavedObjectsErrorHelpers } from '../../../../../src/core/server'; import { Logger } from '../../../../../src/core/server'; +import { isEsCannotExecuteScriptError } from './identify_es_error'; const FLUSH_MARKER = Symbol('flush'); export const ADJUST_THROUGHPUT_INTERVAL = 10 * 1000; @@ -76,11 +77,11 @@ function createMaxWorkersScan(logger: Logger, startingMaxWorkers: number) { } if (newMaxWorkers !== previousMaxWorkers) { logger.debug( - `Max workers configuration changing from ${previousMaxWorkers} to ${newMaxWorkers} after seeing ${errorCount} error(s)` + `Max workers configuration changing from ${previousMaxWorkers} to ${newMaxWorkers} after seeing ${errorCount} "too many request" and/or "execute [inline] script" error(s)` ); if (previousMaxWorkers === startingMaxWorkers) { logger.warn( - `Max workers configuration is temporarily reduced after Elasticsearch returned ${errorCount} "too many request" error(s).` + `Max workers configuration is temporarily reduced after Elasticsearch returned ${errorCount} "too many request" and/or "execute [inline] script" error(s).` ); } } @@ -105,11 +106,11 @@ function createPollIntervalScan(logger: Logger, startingPollInterval: number) { } if (newPollInterval !== previousPollInterval) { logger.debug( - `Poll interval configuration changing from ${previousPollInterval} to ${newPollInterval} after seeing ${errorCount} error(s)` + `Poll interval configuration changing from ${previousPollInterval} to ${newPollInterval} after seeing ${errorCount} "too many request" and/or "execute [inline] script" error(s)` ); if (previousPollInterval === startingPollInterval) { logger.warn( - `Poll interval configuration is temporarily increased after Elasticsearch returned ${errorCount} "too many request" error(s).` + `Poll interval configuration is temporarily increased after Elasticsearch returned ${errorCount} "too many request" and/or "execute [inline] script" error(s).` ); } } @@ -121,7 +122,11 @@ function countErrors(errors$: Observable, countInterval: number): Observa return merge( // Flush error count at fixed interval interval(countInterval).pipe(map(() => FLUSH_MARKER)), - errors$.pipe(filter((e) => SavedObjectsErrorHelpers.isTooManyRequestsError(e))) + errors$.pipe( + filter( + (e) => SavedObjectsErrorHelpers.isTooManyRequestsError(e) || isEsCannotExecuteScriptError(e) + ) + ) ).pipe( // When tag is "flush", reset the error counter // Otherwise increment the error counter diff --git a/x-pack/plugins/task_manager/server/lib/identify_es_error.test.ts b/x-pack/plugins/task_manager/server/lib/identify_es_error.test.ts index d8b6e7235f103..171c554778e92 100644 --- a/x-pack/plugins/task_manager/server/lib/identify_es_error.test.ts +++ b/x-pack/plugins/task_manager/server/lib/identify_es_error.test.ts @@ -137,33 +137,32 @@ function generateESErrorWithResponse( rootCause: ESErrorCausedBy[] = [], causeBy: ESErrorCausedBy = {} ) { - return Object.assign(new Error(), { - msg: '[illegal_argument_exception] cannot execute [inline] scripts', - path: '/.kibana_task_manager/_update_by_query', - query: {}, - body: '{"query":{}}', - statusCode: 400, - response: JSON.stringify({ - error: { - root_cause: rootCause, - type: 'search_phase_execution_exception', - reason: 'all shards failed', - phase: 'query', - grouped: true, - failed_shards: [ - { - shard: 0, - index: '.kibana_task_manager_1', - node: '24A4QbjHSK6prvtopAKLKw', - reason: { - type: 'illegal_argument_exception', - reason: 'cannot execute [inline] scripts', + return { + name: 'ResponseError', + meta: { + body: { + error: { + root_cause: rootCause, + type: 'search_phase_execution_exception', + reason: 'all shards failed', + phase: 'query', + grouped: true, + failed_shards: [ + { + shard: 0, + index: '.kibana_task_manager_8.0.0_001', + node: 'GJ7ekIWTT56-h-aC6Y89Gw', + reason: { + type: 'illegal_argument_exception', + reason: 'cannot execute [inline] scripts', + }, }, - }, - ], - caused_by: causeBy, + ], + caused_by: causeBy, + }, + status: 400, }, - status: 400, - }), - }); + statusCode: 400, + }, + }; } diff --git a/x-pack/plugins/task_manager/server/lib/identify_es_error.ts b/x-pack/plugins/task_manager/server/lib/identify_es_error.ts index 5d8c2f90674d5..b8a5008da33e5 100644 --- a/x-pack/plugins/task_manager/server/lib/identify_es_error.ts +++ b/x-pack/plugins/task_manager/server/lib/identify_es_error.ts @@ -16,13 +16,27 @@ export interface ESError { caused_by?: ESErrorCausedBy; } +export interface ESErrorBody { + error?: ESError; + status?: number; +} + +export interface ESErrorMeta { + body?: ESErrorBody; + statusCode?: number; +} +export interface ElasticsearchResponseError { + name?: string; + meta?: ESErrorMeta; +} + function extractCausedByChain( causedBy: ESErrorCausedBy = {}, accumulator: string[] = [] ): string[] { const { reason, caused_by: innerCausedBy } = causedBy; - if (reason) { + if (reason && !accumulator.includes(reason)) { accumulator.push(reason); } @@ -39,11 +53,15 @@ function extractCausedByChain( * @param err Object Error thrown by ES JS client * @return ES error cause */ -export function identifyEsError(err: { response: string }) { - const { response } = err; - +export function identifyEsError(err: ElasticsearchResponseError) { + if (!err.meta) { + return []; + } + const { + meta: { body: response }, + } = err; if (response) { - const { error } = JSON.parse(response) as { error?: ESError }; + const { error } = response; if (error) { const { root_cause: rootCause = [], caused_by: causedBy } = error; @@ -58,3 +76,7 @@ export function identifyEsError(err: { response: string }) { } return []; } + +export function isEsCannotExecuteScriptError(err: ElasticsearchResponseError): boolean { + return identifyEsError(err).includes('cannot execute [inline] scripts'); +} diff --git a/x-pack/plugins/task_manager/server/polling_lifecycle.test.ts b/x-pack/plugins/task_manager/server/polling_lifecycle.test.ts index 63d7f6de81801..f733bb6bfdf2a 100644 --- a/x-pack/plugins/task_manager/server/polling_lifecycle.test.ts +++ b/x-pack/plugins/task_manager/server/polling_lifecycle.test.ts @@ -19,6 +19,7 @@ import { TaskClaiming, ClaimOwnershipResult } from './queries/task_claiming'; import type { TaskClaiming as TaskClaimingClass } from './queries/task_claiming'; import { asOk, Err, isErr, isOk, Result } from './lib/result_type'; import { FillPoolResult } from './lib/fill_pool'; +import { ElasticsearchResponseError } from './lib/identify_es_error'; let mockTaskClaiming = taskClaimingMock.create({}); jest.mock('./queries/task_claiming', () => { @@ -204,12 +205,46 @@ describe('TaskPollingLifecycle', () => { taskClaiming.claimAvailableTasksIfCapacityIsAvailable.mockImplementation( () => new Observable>((observer) => { - observer.error( - Object.assign(new Error(), { - response: - '{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"cannot execute [inline] scripts"}],"type":"search_phase_execution_exception","reason":"all shards failed","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":".kibana_task_manager_1","node":"24A4QbjHSK6prvtopAKLKw","reason":{"type":"illegal_argument_exception","reason":"cannot execute [inline] scripts"}}],"caused_by":{"type":"illegal_argument_exception","reason":"cannot execute [inline] scripts","caused_by":{"type":"illegal_argument_exception","reason":"cannot execute [inline] scripts"}}},"status":400}', - }) - ); + observer.error({ + name: 'ResponseError', + meta: { + body: { + error: { + root_cause: [ + { + type: 'illegal_argument_exception', + reason: 'cannot execute [inline] scripts', + }, + ], + type: 'search_phase_execution_exception', + reason: 'all shards failed', + phase: 'query', + grouped: true, + failed_shards: [ + { + shard: 0, + index: '.kibana_task_manager_1', + node: '24A4QbjHSK6prvtopAKLKw', + reason: { + type: 'illegal_argument_exception', + reason: 'cannot execute [inline] scripts', + }, + }, + ], + caused_by: { + type: 'illegal_argument_exception', + reason: 'cannot execute [inline] scripts', + caused_by: { + type: 'illegal_argument_exception', + reason: 'cannot execute [inline] scripts', + }, + }, + }, + status: 400, + }, + }, + statusCode: 400, + } as ElasticsearchResponseError); }) ); diff --git a/x-pack/plugins/task_manager/server/polling_lifecycle.ts b/x-pack/plugins/task_manager/server/polling_lifecycle.ts index 260f5ccc70f53..454e49fe3f868 100644 --- a/x-pack/plugins/task_manager/server/polling_lifecycle.ts +++ b/x-pack/plugins/task_manager/server/polling_lifecycle.ts @@ -39,7 +39,7 @@ import { import { TaskPool } from './task_pool'; import { TaskManagerRunner, TaskRunner } from './task_running'; import { TaskStore } from './task_store'; -import { identifyEsError } from './lib/identify_es_error'; +import { identifyEsError, isEsCannotExecuteScriptError } from './lib/identify_es_error'; import { BufferedTaskStore } from './buffered_task_store'; import { TaskTypeDictionary } from './task_type_dictionary'; import { delayOnClaimConflicts } from './polling'; @@ -299,15 +299,16 @@ export function claimAvailableTasks( // we can identify the reason // if we can - we emit an FillPoolResult error rather than erroring out the wrapping Observable // returned by `claimAvailableTasks` - if (identifyEsError(ex).includes('cannot execute [inline] scripts')) { + if (isEsCannotExecuteScriptError(ex)) { logger.warn( `Task Manager cannot operate when inline scripts are disabled in Elasticsearch` ); observer.next(asErr(FillPoolResult.Failed)); observer.complete(); } else { + const esError = identifyEsError(ex); // as we could't identify the reason - we'll error out the wrapping Observable too - observer.error(ex); + observer.error(esError.length > 0 ? esError : ex); } }, () => { From 796f679e920ae3a70cf7a074fa1ab07cd9a174ad Mon Sep 17 00:00:00 2001 From: Aleh Zasypkin Date: Fri, 26 Mar 2021 18:49:19 +0100 Subject: [PATCH 15/55] Migrate away from `legacyEs` service in tests. (#95402) --- .../apis/security/index_fields.ts | 22 ++++------------- .../tests/encrypted_saved_objects_api.ts | 13 ++++++---- .../common/lib/saved_object_test_utils.ts | 5 ++-- .../common/suites/bulk_create.ts | 2 +- .../common/suites/create.ts | 2 +- .../common/suites/import.ts | 9 +++++-- .../common/suites/resolve_import_errors.ts | 5 ++-- .../security_and_spaces/apis/bulk_create.ts | 3 +-- .../security_and_spaces/apis/create.ts | 3 +-- .../security_and_spaces/apis/import.ts | 2 +- .../apis/resolve_import_errors.ts | 2 +- .../security_only/apis/bulk_create.ts | 3 +-- .../security_only/apis/create.ts | 3 +-- .../security_only/apis/import.ts | 2 +- .../apis/resolve_import_errors.ts | 2 +- .../spaces_only/apis/bulk_create.ts | 3 +-- .../spaces_only/apis/create.ts | 3 +-- .../spaces_only/apis/import.ts | 2 +- .../spaces_only/apis/resolve_import_errors.ts | 2 +- .../spaces_api_integration/common/config.ts | 7 ++---- .../common/ftr_provider_context.d.ts | 12 ++++++++++ .../common/lib/create_users_and_roles.ts | 4 ++-- .../common/lib/types.ts | 11 --------- .../spaces_api_integration/common/services.ts | 14 +++++++++++ .../common/suites/copy_to_space.ts | 10 ++++---- .../common/suites/delete.ts | 24 ++++++++++++------- .../security_and_spaces/apis/copy_to_space.ts | 6 ++--- .../security_and_spaces/apis/create.ts | 4 ++-- .../security_and_spaces/apis/delete.ts | 6 ++--- .../security_and_spaces/apis/get.ts | 4 ++-- .../security_and_spaces/apis/get_all.ts | 4 ++-- .../security_and_spaces/apis/index.ts | 4 ++-- .../apis/resolve_copy_to_space_conflicts.ts | 4 ++-- .../security_and_spaces/apis/share_add.ts | 4 ++-- .../security_and_spaces/apis/share_remove.ts | 4 ++-- .../security_and_spaces/apis/update.ts | 4 ++-- .../spaces_only/apis/copy_to_space.ts | 2 +- .../spaces_only/apis/create.ts | 4 ++-- .../spaces_only/apis/delete.ts | 6 ++--- .../spaces_only/apis/get.ts | 4 ++-- .../spaces_only/apis/get_all.ts | 4 ++-- .../spaces_only/apis/index.ts | 4 ++-- .../spaces_only/apis/share_add.ts | 4 ++-- .../spaces_only/apis/share_remove.ts | 4 ++-- .../spaces_only/apis/update.ts | 4 ++-- 45 files changed, 131 insertions(+), 119 deletions(-) create mode 100644 x-pack/test/spaces_api_integration/common/ftr_provider_context.d.ts create mode 100644 x-pack/test/spaces_api_integration/common/services.ts diff --git a/x-pack/test/api_integration/apis/security/index_fields.ts b/x-pack/test/api_integration/apis/security/index_fields.ts index 6edaab622e3f9..6918ec3415dac 100644 --- a/x-pack/test/api_integration/apis/security/index_fields.ts +++ b/x-pack/test/api_integration/apis/security/index_fields.ts @@ -7,27 +7,11 @@ import expect from '@kbn/expect/expect.js'; import { FtrProviderContext } from '../../ftr_provider_context'; -interface FLSMappingResponse { - flstest: { - mappings: { - runtime?: { - [fieldName: string]: { - type: string; - }; - }; - properties: { - [fieldName: string]: { - type: string; - }; - }; - }; - }; -} export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); describe('Index Fields', () => { before(async () => { @@ -59,7 +43,9 @@ export default function ({ getService }: FtrProviderContext) { it('should not include runtime fields', async () => { // First, make sure the mapping actually includes a runtime field - const mapping = (await es.indices.getMapping({ index: 'flstest' })) as FLSMappingResponse; + const { body: mapping } = await es.indices.getMapping({ + index: 'flstest', + }); expect(Object.keys(mapping.flstest.mappings)).to.contain('runtime'); expect(Object.keys(mapping.flstest.mappings.runtime!)).to.contain('runtime_customer_ssn'); diff --git a/x-pack/test/encrypted_saved_objects_api_integration/tests/encrypted_saved_objects_api.ts b/x-pack/test/encrypted_saved_objects_api_integration/tests/encrypted_saved_objects_api.ts index fe4041f05ae01..f6b0f4e825097 100644 --- a/x-pack/test/encrypted_saved_objects_api_integration/tests/encrypted_saved_objects_api.ts +++ b/x-pack/test/encrypted_saved_objects_api_integration/tests/encrypted_saved_objects_api.ts @@ -10,7 +10,7 @@ import { SavedObject } from 'src/core/server'; import { FtrProviderContext } from '../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { - const es = getService('legacyEs'); + const es = getService('es'); const randomness = getService('randomness'); const supertest = getService('supertest'); const esArchiver = getService('esArchiver'); @@ -29,13 +29,12 @@ export default function ({ getService }: FtrProviderContext) { ) { async function getRawSavedObjectAttributes({ id, type }: SavedObject) { const { - _source: { [type]: savedObject }, + body: { _source }, } = await es.get>({ id: generateRawID(id, type), index: '.kibana', - } as any); - - return savedObject; + }); + return _source?.[type]; } let savedObjectOriginalAttributes: { @@ -443,8 +442,10 @@ export default function ({ getService }: FtrProviderContext) { afterEach(async () => { await es.deleteByQuery({ index: '.kibana', + // @ts-expect-error @elastic/elasticsearch `DeleteByQueryRequest` type doesn't define `q`. q: `type:${SAVED_OBJECT_WITH_SECRET_TYPE} OR type:${HIDDEN_SAVED_OBJECT_WITH_SECRET_TYPE} OR type:${SAVED_OBJECT_WITH_SECRET_AND_MULTIPLE_SPACES_TYPE} OR type:${SAVED_OBJECT_WITHOUT_SECRET_TYPE}`, refresh: true, + body: {}, }); }); @@ -491,8 +492,10 @@ export default function ({ getService }: FtrProviderContext) { afterEach(async () => { await es.deleteByQuery({ index: '.kibana', + // @ts-expect-error @elastic/elasticsearch `DeleteByQueryRequest` type doesn't define `q`. q: `type:${SAVED_OBJECT_WITH_SECRET_TYPE} OR type:${HIDDEN_SAVED_OBJECT_WITH_SECRET_TYPE} OR type:${SAVED_OBJECT_WITH_SECRET_AND_MULTIPLE_SPACES_TYPE} OR type:${SAVED_OBJECT_WITHOUT_SECRET_TYPE}`, refresh: true, + body: {}, }); }); diff --git a/x-pack/test/saved_object_api_integration/common/lib/saved_object_test_utils.ts b/x-pack/test/saved_object_api_integration/common/lib/saved_object_test_utils.ts index 43e92cc21c469..088e594a41b88 100644 --- a/x-pack/test/saved_object_api_integration/common/lib/saved_object_test_utils.ts +++ b/x-pack/test/saved_object_api_integration/common/lib/saved_object_test_utils.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import type { KibanaClient } from '@elastic/elasticsearch/api/kibana'; import { SavedObjectsErrorHelpers } from '../../../../../src/core/server'; import { SPACES, ALL_SPACES_ID } from './spaces'; import { AUTHENTICATION } from './authentication'; @@ -178,11 +179,11 @@ export const expectResponses = { * Additional assertions that we use in `import` and `resolve_import_errors` to ensure that * newly-created (or overwritten) objects don't have unexpected properties */ - successCreated: async (es: any, spaceId: string, type: string, id: string) => { + successCreated: async (es: KibanaClient, spaceId: string, type: string, id: string) => { const isNamespaceUndefined = spaceId === SPACES.DEFAULT.spaceId || isNamespaceAgnostic(type) || isMultiNamespace(type); const expectedSpacePrefix = isNamespaceUndefined ? '' : `${spaceId}:`; - const savedObject = await es.get({ + const { body: savedObject } = await es.get>({ id: `${expectedSpacePrefix}${type}:${id}`, index: '.kibana', }); diff --git a/x-pack/test/saved_object_api_integration/common/suites/bulk_create.ts b/x-pack/test/saved_object_api_integration/common/suites/bulk_create.ts index 0534e2281159d..d85cfd4d7e12f 100644 --- a/x-pack/test/saved_object_api_integration/common/suites/bulk_create.ts +++ b/x-pack/test/saved_object_api_integration/common/suites/bulk_create.ts @@ -69,7 +69,7 @@ const createRequest = ({ type, id, initialNamespaces }: BulkCreateTestCase) => ( ...(initialNamespaces && { initialNamespaces }), }); -export function bulkCreateTestSuiteFactory(es: any, esArchiver: any, supertest: SuperTest) { +export function bulkCreateTestSuiteFactory(esArchiver: any, supertest: SuperTest) { const expectSavedObjectForbidden = expectResponses.forbiddenTypes('bulk_create'); const expectResponseBody = ( testCases: BulkCreateTestCase | BulkCreateTestCase[], diff --git a/x-pack/test/saved_object_api_integration/common/suites/create.ts b/x-pack/test/saved_object_api_integration/common/suites/create.ts index 3798c0e08473f..190eed0edaef2 100644 --- a/x-pack/test/saved_object_api_integration/common/suites/create.ts +++ b/x-pack/test/saved_object_api_integration/common/suites/create.ts @@ -69,7 +69,7 @@ const createRequest = ({ type, id, initialNamespaces }: CreateTestCase) => ({ initialNamespaces, }); -export function createTestSuiteFactory(es: any, esArchiver: any, supertest: SuperTest) { +export function createTestSuiteFactory(esArchiver: any, supertest: SuperTest) { const expectSavedObjectForbidden = expectResponses.forbiddenTypes('create'); const expectResponseBody = ( testCase: CreateTestCase, diff --git a/x-pack/test/saved_object_api_integration/common/suites/import.ts b/x-pack/test/saved_object_api_integration/common/suites/import.ts index 9c662f94ad5da..f2794d1685a23 100644 --- a/x-pack/test/saved_object_api_integration/common/suites/import.ts +++ b/x-pack/test/saved_object_api_integration/common/suites/import.ts @@ -7,6 +7,7 @@ import expect from '@kbn/expect'; import { SuperTest } from 'supertest'; +import type { KibanaClient } from '@elastic/elasticsearch/api/kibana'; import { SAVED_OBJECT_TEST_CASES as CASES } from '../lib/saved_object_test_cases'; import { SPACES } from '../lib/spaces'; import { expectResponses, getUrlPrefix, getTestTitle } from '../lib/saved_object_test_utils'; @@ -71,7 +72,11 @@ const getConflictDest = (id: string) => ({ updatedAt: '2017-09-21T18:59:16.270Z', }); -export function importTestSuiteFactory(es: any, esArchiver: any, supertest: SuperTest) { +export function importTestSuiteFactory( + es: KibanaClient, + esArchiver: any, + supertest: SuperTest +) { const expectSavedObjectForbidden = expectResponses.forbiddenTypes('bulk_create'); const expectResponseBody = ( testCases: ImportTestCase | ImportTestCase[], @@ -140,7 +145,7 @@ export function importTestSuiteFactory(es: any, esArchiver: any, supertest: Supe type, destinationId ?? id ); - expect(_source[type][NEW_ATTRIBUTE_KEY]).to.eql(NEW_ATTRIBUTE_VAL); + expect(_source?.[type][NEW_ATTRIBUTE_KEY]).to.eql(NEW_ATTRIBUTE_VAL); } } for (let i = 0; i < expectedFailures.length; i++) { diff --git a/x-pack/test/saved_object_api_integration/common/suites/resolve_import_errors.ts b/x-pack/test/saved_object_api_integration/common/suites/resolve_import_errors.ts index 51e84747efb50..8079c74c76322 100644 --- a/x-pack/test/saved_object_api_integration/common/suites/resolve_import_errors.ts +++ b/x-pack/test/saved_object_api_integration/common/suites/resolve_import_errors.ts @@ -7,6 +7,7 @@ import expect from '@kbn/expect'; import { SuperTest } from 'supertest'; +import type { KibanaClient } from '@elastic/elasticsearch/api/kibana'; import { SAVED_OBJECT_TEST_CASES as CASES } from '../lib/saved_object_test_cases'; import { SPACES } from '../lib/spaces'; import { expectResponses, getUrlPrefix, getTestTitle } from '../lib/saved_object_test_utils'; @@ -91,7 +92,7 @@ const createRequest = ( }); export function resolveImportErrorsTestSuiteFactory( - es: any, + es: KibanaClient, esArchiver: any, supertest: SuperTest ) { @@ -161,7 +162,7 @@ export function resolveImportErrorsTestSuiteFactory( type, destinationId ?? id ); - expect(_source[type][NEW_ATTRIBUTE_KEY]).to.eql(NEW_ATTRIBUTE_VAL); + expect(_source?.[type][NEW_ATTRIBUTE_KEY]).to.eql(NEW_ATTRIBUTE_VAL); } } for (let i = 0; i < expectedFailures.length; i++) { diff --git a/x-pack/test/saved_object_api_integration/security_and_spaces/apis/bulk_create.ts b/x-pack/test/saved_object_api_integration/security_and_spaces/apis/bulk_create.ts index b6d1ae23120a4..1fa24c6d6e2d6 100644 --- a/x-pack/test/saved_object_api_integration/security_and_spaces/apis/bulk_create.ts +++ b/x-pack/test/saved_object_api_integration/security_and_spaces/apis/bulk_create.ts @@ -84,13 +84,12 @@ const createTestCases = (overwrite: boolean, spaceId: string) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); const { addTests, createTestDefinitions, expectSavedObjectForbidden, - } = bulkCreateTestSuiteFactory(es, esArchiver, supertest); + } = bulkCreateTestSuiteFactory(esArchiver, supertest); const createTests = (overwrite: boolean, spaceId: string, user: TestUser) => { const { normalTypes, crossNamespace, hiddenType, allTypes } = createTestCases( overwrite, diff --git a/x-pack/test/saved_object_api_integration/security_and_spaces/apis/create.ts b/x-pack/test/saved_object_api_integration/security_and_spaces/apis/create.ts index 7f5f0b453ff25..3553ae0e5b538 100644 --- a/x-pack/test/saved_object_api_integration/security_and_spaces/apis/create.ts +++ b/x-pack/test/saved_object_api_integration/security_and_spaces/apis/create.ts @@ -71,9 +71,8 @@ const createTestCases = (overwrite: boolean, spaceId: string) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); - const { addTests, createTestDefinitions } = createTestSuiteFactory(es, esArchiver, supertest); + const { addTests, createTestDefinitions } = createTestSuiteFactory(esArchiver, supertest); const createTests = (overwrite: boolean, spaceId: string, user: TestUser) => { const { normalTypes, crossNamespace, hiddenType, allTypes } = createTestCases( overwrite, diff --git a/x-pack/test/saved_object_api_integration/security_and_spaces/apis/import.ts b/x-pack/test/saved_object_api_integration/security_and_spaces/apis/import.ts index 659ee2c2e2363..e8d728d17d570 100644 --- a/x-pack/test/saved_object_api_integration/security_and_spaces/apis/import.ts +++ b/x-pack/test/saved_object_api_integration/security_and_spaces/apis/import.ts @@ -109,7 +109,7 @@ const createTestCases = (overwrite: boolean, spaceId: string) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { addTests, createTestDefinitions, expectSavedObjectForbidden } = importTestSuiteFactory( es, diff --git a/x-pack/test/saved_object_api_integration/security_and_spaces/apis/resolve_import_errors.ts b/x-pack/test/saved_object_api_integration/security_and_spaces/apis/resolve_import_errors.ts index 3f213e519e57d..31e651227cef4 100644 --- a/x-pack/test/saved_object_api_integration/security_and_spaces/apis/resolve_import_errors.ts +++ b/x-pack/test/saved_object_api_integration/security_and_spaces/apis/resolve_import_errors.ts @@ -97,7 +97,7 @@ const createTestCases = (overwrite: boolean, spaceId: string) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { addTests, diff --git a/x-pack/test/saved_object_api_integration/security_only/apis/bulk_create.ts b/x-pack/test/saved_object_api_integration/security_only/apis/bulk_create.ts index b8b57289212da..7487466f4b38c 100644 --- a/x-pack/test/saved_object_api_integration/security_only/apis/bulk_create.ts +++ b/x-pack/test/saved_object_api_integration/security_only/apis/bulk_create.ts @@ -50,13 +50,12 @@ const createTestCases = (overwrite: boolean) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); const { addTests, createTestDefinitions, expectSavedObjectForbidden, - } = bulkCreateTestSuiteFactory(es, esArchiver, supertest); + } = bulkCreateTestSuiteFactory(esArchiver, supertest); const createTests = (overwrite: boolean, user: TestUser) => { const { normalTypes, hiddenType, allTypes } = createTestCases(overwrite); // use singleRequest to reduce execution time and/or test combined cases diff --git a/x-pack/test/saved_object_api_integration/security_only/apis/create.ts b/x-pack/test/saved_object_api_integration/security_only/apis/create.ts index 0aae9ebe7c914..7eda7f5283448 100644 --- a/x-pack/test/saved_object_api_integration/security_only/apis/create.ts +++ b/x-pack/test/saved_object_api_integration/security_only/apis/create.ts @@ -49,9 +49,8 @@ const createTestCases = (overwrite: boolean) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); - const { addTests, createTestDefinitions } = createTestSuiteFactory(es, esArchiver, supertest); + const { addTests, createTestDefinitions } = createTestSuiteFactory(esArchiver, supertest); const createTests = (overwrite: boolean, user: TestUser) => { const { normalTypes, hiddenType, allTypes } = createTestCases(overwrite); return { diff --git a/x-pack/test/saved_object_api_integration/security_only/apis/import.ts b/x-pack/test/saved_object_api_integration/security_only/apis/import.ts index b46e3fabff95b..a2f25197f5984 100644 --- a/x-pack/test/saved_object_api_integration/security_only/apis/import.ts +++ b/x-pack/test/saved_object_api_integration/security_only/apis/import.ts @@ -80,7 +80,7 @@ const createTestCases = (overwrite: boolean) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { addTests, createTestDefinitions, expectSavedObjectForbidden } = importTestSuiteFactory( es, diff --git a/x-pack/test/saved_object_api_integration/security_only/apis/resolve_import_errors.ts b/x-pack/test/saved_object_api_integration/security_only/apis/resolve_import_errors.ts index 1d20de4f620fe..1700fffdab7d9 100644 --- a/x-pack/test/saved_object_api_integration/security_only/apis/resolve_import_errors.ts +++ b/x-pack/test/saved_object_api_integration/security_only/apis/resolve_import_errors.ts @@ -62,7 +62,7 @@ const createTestCases = (overwrite: boolean) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { addTests, diff --git a/x-pack/test/saved_object_api_integration/spaces_only/apis/bulk_create.ts b/x-pack/test/saved_object_api_integration/spaces_only/apis/bulk_create.ts index 6bb7828e12f23..5812aaf43060d 100644 --- a/x-pack/test/saved_object_api_integration/spaces_only/apis/bulk_create.ts +++ b/x-pack/test/saved_object_api_integration/spaces_only/apis/bulk_create.ts @@ -78,9 +78,8 @@ const createTestCases = (overwrite: boolean, spaceId: string) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); - const { addTests, createTestDefinitions } = bulkCreateTestSuiteFactory(es, esArchiver, supertest); + const { addTests, createTestDefinitions } = bulkCreateTestSuiteFactory(esArchiver, supertest); const createTests = (overwrite: boolean, spaceId: string) => { const testCases = createTestCases(overwrite, spaceId); return createTestDefinitions(testCases, false, overwrite, { diff --git a/x-pack/test/saved_object_api_integration/spaces_only/apis/create.ts b/x-pack/test/saved_object_api_integration/spaces_only/apis/create.ts index 39c97be1b6285..4c91781b6ab2c 100644 --- a/x-pack/test/saved_object_api_integration/spaces_only/apis/create.ts +++ b/x-pack/test/saved_object_api_integration/spaces_only/apis/create.ts @@ -65,9 +65,8 @@ const createTestCases = (overwrite: boolean, spaceId: string) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); - const { addTests, createTestDefinitions } = createTestSuiteFactory(es, esArchiver, supertest); + const { addTests, createTestDefinitions } = createTestSuiteFactory(esArchiver, supertest); const createTests = (overwrite: boolean, spaceId: string) => { const testCases = createTestCases(overwrite, spaceId); return createTestDefinitions(testCases, false, overwrite, { spaceId }); diff --git a/x-pack/test/saved_object_api_integration/spaces_only/apis/import.ts b/x-pack/test/saved_object_api_integration/spaces_only/apis/import.ts index b1f30657dd9c0..910b51a92ed81 100644 --- a/x-pack/test/saved_object_api_integration/spaces_only/apis/import.ts +++ b/x-pack/test/saved_object_api_integration/spaces_only/apis/import.ts @@ -100,7 +100,7 @@ const createTestCases = (overwrite: boolean, spaceId: string) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { addTests, createTestDefinitions } = importTestSuiteFactory(es, esArchiver, supertest); const createTests = (overwrite: boolean, createNewCopies: boolean, spaceId: string) => { diff --git a/x-pack/test/saved_object_api_integration/spaces_only/apis/resolve_import_errors.ts b/x-pack/test/saved_object_api_integration/spaces_only/apis/resolve_import_errors.ts index 35f5d3dabde88..131335c421f00 100644 --- a/x-pack/test/saved_object_api_integration/spaces_only/apis/resolve_import_errors.ts +++ b/x-pack/test/saved_object_api_integration/spaces_only/apis/resolve_import_errors.ts @@ -91,7 +91,7 @@ const createTestCases = (overwrite: boolean, spaceId: string) => { export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { addTests, createTestDefinitions } = resolveImportErrorsTestSuiteFactory( es, diff --git a/x-pack/test/spaces_api_integration/common/config.ts b/x-pack/test/spaces_api_integration/common/config.ts index 8e4ce07f16d5d..2daebba801200 100644 --- a/x-pack/test/spaces_api_integration/common/config.ts +++ b/x-pack/test/spaces_api_integration/common/config.ts @@ -6,10 +6,8 @@ */ import path from 'path'; - import { REPO_ROOT } from '@kbn/utils'; - -import { TestInvoker } from './lib/types'; +import { FtrConfigProviderContext } from '@kbn/test/types/ftr'; interface CreateTestConfigOptions { license: string; @@ -19,7 +17,7 @@ interface CreateTestConfigOptions { export function createTestConfig(name: string, options: CreateTestConfigOptions) { const { license, disabledPlugins = [] } = options; - return async ({ readConfigFile }: TestInvoker) => { + return async ({ readConfigFile }: FtrConfigProviderContext) => { const config = { kibana: { api: await readConfigFile(path.resolve(REPO_ROOT, 'test/api_integration/config.js')), @@ -35,7 +33,6 @@ export function createTestConfig(name: string, options: CreateTestConfigOptions) servers: config.xpack.api.get('servers'), services: { es: config.kibana.api.get('services.es'), - legacyEs: config.kibana.api.get('services.legacyEs'), esSupertestWithoutAuth: config.xpack.api.get('services.esSupertestWithoutAuth'), supertest: config.kibana.api.get('services.supertest'), supertestWithoutAuth: config.xpack.api.get('services.supertestWithoutAuth'), diff --git a/x-pack/test/spaces_api_integration/common/ftr_provider_context.d.ts b/x-pack/test/spaces_api_integration/common/ftr_provider_context.d.ts new file mode 100644 index 0000000000000..d612023be9160 --- /dev/null +++ b/x-pack/test/spaces_api_integration/common/ftr_provider_context.d.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { GenericFtrProviderContext } from '@kbn/test/types/ftr'; + +import { services } from './services'; + +export type FtrProviderContext = GenericFtrProviderContext; diff --git a/x-pack/test/spaces_api_integration/common/lib/create_users_and_roles.ts b/x-pack/test/spaces_api_integration/common/lib/create_users_and_roles.ts index c864bac8681c9..ecc680c32f303 100644 --- a/x-pack/test/spaces_api_integration/common/lib/create_users_and_roles.ts +++ b/x-pack/test/spaces_api_integration/common/lib/create_users_and_roles.ts @@ -5,11 +5,11 @@ * 2.0. */ -import { Client } from '@elastic/elasticsearch'; import { SuperTest } from 'supertest'; +import type { KibanaClient } from '@elastic/elasticsearch/api/kibana'; import { AUTHENTICATION } from './authentication'; -export const createUsersAndRoles = async (es: Client, supertest: SuperTest) => { +export const createUsersAndRoles = async (es: KibanaClient, supertest: SuperTest) => { await supertest .put('/api/security/role/kibana_legacy_user') .send({ diff --git a/x-pack/test/spaces_api_integration/common/lib/types.ts b/x-pack/test/spaces_api_integration/common/lib/types.ts index 27e81454dde5f..34a96c3d6daad 100644 --- a/x-pack/test/spaces_api_integration/common/lib/types.ts +++ b/x-pack/test/spaces_api_integration/common/lib/types.ts @@ -11,14 +11,3 @@ export interface TestDefinitionAuthentication { username?: string; password?: string; } -export type LoadTestFileFn = (path: string) => string; - -export type GetServiceFn = (service: string) => any; - -export type ReadConfigFileFn = (path: string) => any; - -export interface TestInvoker { - getService: GetServiceFn; - loadTestFile: LoadTestFileFn; - readConfigFile: ReadConfigFileFn; -} diff --git a/x-pack/test/spaces_api_integration/common/services.ts b/x-pack/test/spaces_api_integration/common/services.ts new file mode 100644 index 0000000000000..55ff083dd03dc --- /dev/null +++ b/x-pack/test/spaces_api_integration/common/services.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { services as commonServices } from '../../common/services'; +import { services as apiIntegrationServices } from '../../api_integration/services'; + +export const services = { + ...commonServices, + supertestWithoutAuth: apiIntegrationServices.supertestWithoutAuth, +}; diff --git a/x-pack/test/spaces_api_integration/common/suites/copy_to_space.ts b/x-pack/test/spaces_api_integration/common/suites/copy_to_space.ts index f84ece0047ef5..f26edf71b482c 100644 --- a/x-pack/test/spaces_api_integration/common/suites/copy_to_space.ts +++ b/x-pack/test/spaces_api_integration/common/suites/copy_to_space.ts @@ -8,6 +8,7 @@ import expect from '@kbn/expect'; import { SuperTest } from 'supertest'; import { EsArchiver } from '@kbn/es-archiver'; +import type { KibanaClient } from '@elastic/elasticsearch/api/kibana'; import { DEFAULT_SPACE_ID } from '../../../../plugins/spaces/common/constants'; import { CopyResponse } from '../../../../plugins/spaces/server/lib/copy_to_spaces'; import { getUrlPrefix } from '../lib/space_test_utils'; @@ -70,12 +71,12 @@ const getDestinationWithConflicts = (originSpaceId?: string) => !originSpaceId || originSpaceId === DEFAULT_SPACE_ID ? 'space_1' : DEFAULT_SPACE_ID; export function copyToSpaceTestSuiteFactory( - es: any, + es: KibanaClient, esArchiver: EsArchiver, supertest: SuperTest ) { const collectSpaceContents = async () => { - const response = await es.search({ + const { body: response } = await es.search({ index: '.kibana', body: { size: 0, @@ -90,7 +91,8 @@ export function copyToSpaceTestSuiteFactory( }); return { - buckets: response.aggregations.count.buckets as SpaceBucket[], + // @ts-expect-error @elastic/elasticsearch doesn't defined `count.buckets`. + buckets: response.aggregations?.count.buckets as SpaceBucket[], }; }; @@ -749,7 +751,7 @@ export function copyToSpaceTestSuiteFactory( }; const copyToSpaceTest = makeCopyToSpaceTest(describe); - // @ts-ignore + // @ts-expect-error copyToSpaceTest.only = makeCopyToSpaceTest(describe.only); return { diff --git a/x-pack/test/spaces_api_integration/common/suites/delete.ts b/x-pack/test/spaces_api_integration/common/suites/delete.ts index ea6e8502cc35f..b4624d36a8192 100644 --- a/x-pack/test/spaces_api_integration/common/suites/delete.ts +++ b/x-pack/test/spaces_api_integration/common/suites/delete.ts @@ -7,6 +7,7 @@ import expect from '@kbn/expect'; import { SuperTest } from 'supertest'; +import type { KibanaClient } from '@elastic/elasticsearch/api/kibana'; import { getTestScenariosForSpace } from '../lib/space_test_utils'; import { MULTI_NAMESPACE_SAVED_OBJECT_TEST_CASES as CASES } from '../lib/saved_object_test_cases'; import { DescribeFn, TestDefinitionAuthentication } from '../lib/types'; @@ -28,7 +29,11 @@ interface DeleteTestDefinition { tests: DeleteTests; } -export function deleteTestSuiteFactory(es: any, esArchiver: any, supertest: SuperTest) { +export function deleteTestSuiteFactory( + es: KibanaClient, + esArchiver: any, + supertest: SuperTest +) { const createExpectResult = (expectedResult: any) => (resp: { [key: string]: any }) => { expect(resp.body).to.eql(expectedResult); }; @@ -38,7 +43,7 @@ export function deleteTestSuiteFactory(es: any, esArchiver: any, supertest: Supe // Query ES to ensure that we deleted everything we expected, and nothing we didn't // Grouping first by namespace, then by saved object type - const response = await es.search({ + const { body: response } = await es.search({ index: '.kibana', body: { size: 0, @@ -68,7 +73,8 @@ export function deleteTestSuiteFactory(es: any, esArchiver: any, supertest: Supe }, }); - const buckets = response.aggregations.count.buckets; + // @ts-expect-error @elastic/elasticsearch doesn't defined `count.buckets`. + const buckets = response.aggregations?.count.buckets; // Space 2 deleted, all others should exist const expectedBuckets = [ @@ -132,20 +138,22 @@ export function deleteTestSuiteFactory(es: any, esArchiver: any, supertest: Supe expect(buckets).to.eql(expectedBuckets); - // There were eleven multi-namespace objects. + // There were 15 multi-namespace objects. // Since Space 2 was deleted, any multi-namespace objects that existed in that space // are updated to remove it, and of those, any that don't exist in any space are deleted. - const multiNamespaceResponse = await es.search({ + const { body: multiNamespaceResponse } = await es.search>({ index: '.kibana', + size: 20, body: { query: { terms: { type: ['sharedtype'] } } }, }); - const docs: [Record] = multiNamespaceResponse.hits.hits; - expect(docs).length(10); // just ten results, since spaces_2_only got deleted + const docs = multiNamespaceResponse.hits.hits; + // Just 12 results, since spaces_2_only, conflict_1_space_2 and conflict_2_space_2 got deleted. + expect(docs).length(12); docs.forEach((doc) => () => { const containsSpace2 = doc?._source?.namespaces.includes('space_2'); expect(containsSpace2).to.eql(false); }); - const space2OnlyObjExists = docs.some((x) => x._id === CASES.SPACE_2_ONLY); + const space2OnlyObjExists = docs.some((x) => x._id === CASES.SPACE_2_ONLY.id); expect(space2OnlyObjExists).to.eql(false); }; diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/copy_to_space.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/copy_to_space.ts index 261e1cad15541..48b8b0e114af2 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/copy_to_space.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/copy_to_space.ts @@ -7,14 +7,14 @@ import { AUTHENTICATION } from '../../common/lib/authentication'; import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { copyToSpaceTestSuiteFactory } from '../../common/suites/copy_to_space'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function copyToSpaceSpacesAndSecuritySuite({ getService }: TestInvoker) { +export default function copyToSpaceSpacesAndSecuritySuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { copyToSpaceTest, diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/create.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/create.ts index c76282a3b1fb8..4582a8455897c 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/create.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/create.ts @@ -7,11 +7,11 @@ import { AUTHENTICATION } from '../../common/lib/authentication'; import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { createTestSuiteFactory } from '../../common/suites/create'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function createSpacesOnlySuite({ getService }: TestInvoker) { +export default function createSpacesOnlySuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/delete.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/delete.ts index f5383cfccec74..2ba0e4d77bfbe 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/delete.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/delete.ts @@ -7,14 +7,14 @@ import { AUTHENTICATION } from '../../common/lib/authentication'; import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { deleteTestSuiteFactory } from '../../common/suites/delete'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function deleteSpaceTestSuite({ getService }: TestInvoker) { +export default function deleteSpaceTestSuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { deleteTest, diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/get.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/get.ts index f949d127bcd13..dccb7d5beb7df 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/get.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/get.ts @@ -7,11 +7,11 @@ import { AUTHENTICATION } from '../../common/lib/authentication'; import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { getTestSuiteFactory } from '../../common/suites/get'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function getSpaceTestSuite({ getService }: TestInvoker) { +export default function getSpaceTestSuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/get_all.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/get_all.ts index d0badc35da312..8bef100b9e453 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/get_all.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/get_all.ts @@ -7,11 +7,11 @@ import { AUTHENTICATION } from '../../common/lib/authentication'; import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { getAllTestSuiteFactory } from '../../common/suites/get_all'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function getAllSpacesTestSuite({ getService }: TestInvoker) { +export default function getAllSpacesTestSuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/index.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/index.ts index 076bc9d6866a5..3a775b0579a20 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/index.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/index.ts @@ -6,10 +6,10 @@ */ import { createUsersAndRoles } from '../../common/lib/create_users_and_roles'; -import { TestInvoker } from '../../common/lib/types'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function ({ loadTestFile, getService }: TestInvoker) { +export default function ({ loadTestFile, getService }: FtrProviderContext) { const es = getService('es'); const supertest = getService('supertest'); diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/resolve_copy_to_space_conflicts.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/resolve_copy_to_space_conflicts.ts index 43487427b3130..efc7827cf8b9a 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/resolve_copy_to_space_conflicts.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/resolve_copy_to_space_conflicts.ts @@ -7,11 +7,11 @@ import { AUTHENTICATION } from '../../common/lib/authentication'; import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { resolveCopyToSpaceConflictsSuite } from '../../common/suites/resolve_copy_to_space_conflicts'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function resolveCopyToSpaceConflictsTestSuite({ getService }: TestInvoker) { +export default function resolveCopyToSpaceConflictsTestSuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const supertestWithAuth = getService('supertest'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/share_add.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/share_add.ts index 8434e27a96c6a..050cb81874cd3 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/share_add.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/share_add.ts @@ -12,12 +12,12 @@ import { } from '../../../saved_object_api_integration/common/lib/saved_object_test_utils'; import { TestUser } from '../../../saved_object_api_integration/common/lib/types'; import { MULTI_NAMESPACE_SAVED_OBJECT_TEST_CASES as CASES } from '../../common/lib/saved_object_test_cases'; -import { TestInvoker } from '../../common/lib/types'; import { shareAddTestSuiteFactory, ShareAddTestDefinition, ShareAddTestCase, } from '../../common/suites/share_add'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; const { DEFAULT: { spaceId: DEFAULT_SPACE_ID }, @@ -84,7 +84,7 @@ const calculateSingleSpaceAuthZ = ( return { targetsAllSpaces, targetsOtherSpace, doesntExistInThisSpace, existsInThisSpace }; }; // eslint-disable-next-line import/no-default-export -export default function ({ getService }: TestInvoker) { +export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/share_remove.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/share_remove.ts index dd6ab53014da4..a5f18cf129d4c 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/share_remove.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/share_remove.ts @@ -12,12 +12,12 @@ import { } from '../../../saved_object_api_integration/common/lib/saved_object_test_utils'; import { TestUser } from '../../../saved_object_api_integration/common/lib/types'; import { MULTI_NAMESPACE_SAVED_OBJECT_TEST_CASES as CASES } from '../../common/lib/saved_object_test_cases'; -import { TestInvoker } from '../../common/lib/types'; import { shareRemoveTestSuiteFactory, ShareRemoveTestCase, ShareRemoveTestDefinition, } from '../../common/suites/share_remove'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; const { DEFAULT: { spaceId: DEFAULT_SPACE_ID }, @@ -60,7 +60,7 @@ const createTestCases = (spaceId: string) => { }; // eslint-disable-next-line import/no-default-export -export default function ({ getService }: TestInvoker) { +export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/update.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/update.ts index 0ad768db80ac4..9bd80f4edd0d4 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/update.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/update.ts @@ -7,11 +7,11 @@ import { AUTHENTICATION } from '../../common/lib/authentication'; import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { updateTestSuiteFactory } from '../../common/suites/update'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function updateSpaceTestSuite({ getService }: TestInvoker) { +export default function updateSpaceTestSuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/spaces_only/apis/copy_to_space.ts b/x-pack/test/spaces_api_integration/spaces_only/apis/copy_to_space.ts index 32754905c5e7c..f5422c1f50085 100644 --- a/x-pack/test/spaces_api_integration/spaces_only/apis/copy_to_space.ts +++ b/x-pack/test/spaces_api_integration/spaces_only/apis/copy_to_space.ts @@ -12,7 +12,7 @@ import { copyToSpaceTestSuiteFactory } from '../../common/suites/copy_to_space'; export default function copyToSpacesOnlySuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { copyToSpaceTest, diff --git a/x-pack/test/spaces_api_integration/spaces_only/apis/create.ts b/x-pack/test/spaces_api_integration/spaces_only/apis/create.ts index 402ce5db850d2..4d18c9b51dd55 100644 --- a/x-pack/test/spaces_api_integration/spaces_only/apis/create.ts +++ b/x-pack/test/spaces_api_integration/spaces_only/apis/create.ts @@ -6,11 +6,11 @@ */ import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { createTestSuiteFactory } from '../../common/suites/create'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function createSpacesOnlySuite({ getService }: TestInvoker) { +export default function createSpacesOnlySuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/spaces_only/apis/delete.ts b/x-pack/test/spaces_api_integration/spaces_only/apis/delete.ts index 252cc8561cbae..9b12e0fe41971 100644 --- a/x-pack/test/spaces_api_integration/spaces_only/apis/delete.ts +++ b/x-pack/test/spaces_api_integration/spaces_only/apis/delete.ts @@ -6,14 +6,14 @@ */ import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { deleteTestSuiteFactory } from '../../common/suites/delete'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function deleteSpaceTestSuite({ getService }: TestInvoker) { +export default function deleteSpaceTestSuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); - const es = getService('legacyEs'); + const es = getService('es'); const { deleteTest, diff --git a/x-pack/test/spaces_api_integration/spaces_only/apis/get.ts b/x-pack/test/spaces_api_integration/spaces_only/apis/get.ts index 1d744de0f7cef..c7bd61e204f87 100644 --- a/x-pack/test/spaces_api_integration/spaces_only/apis/get.ts +++ b/x-pack/test/spaces_api_integration/spaces_only/apis/get.ts @@ -6,11 +6,11 @@ */ import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { getTestSuiteFactory } from '../../common/suites/get'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function getSpaceTestSuite({ getService }: TestInvoker) { +export default function getSpaceTestSuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/spaces_only/apis/get_all.ts b/x-pack/test/spaces_api_integration/spaces_only/apis/get_all.ts index 9205662b5a0e5..3fb4e5fd17458 100644 --- a/x-pack/test/spaces_api_integration/spaces_only/apis/get_all.ts +++ b/x-pack/test/spaces_api_integration/spaces_only/apis/get_all.ts @@ -6,11 +6,11 @@ */ import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { getAllTestSuiteFactory } from '../../common/suites/get_all'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function getAllSpacesTestSuite({ getService }: TestInvoker) { +export default function getAllSpacesTestSuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/spaces_only/apis/index.ts b/x-pack/test/spaces_api_integration/spaces_only/apis/index.ts index e959dac291a70..6c52f731289e7 100644 --- a/x-pack/test/spaces_api_integration/spaces_only/apis/index.ts +++ b/x-pack/test/spaces_api_integration/spaces_only/apis/index.ts @@ -5,10 +5,10 @@ * 2.0. */ -import { TestInvoker } from '../../common/lib/types'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function spacesOnlyTestSuite({ loadTestFile }: TestInvoker) { +export default function spacesOnlyTestSuite({ loadTestFile }: FtrProviderContext) { describe('spaces api without security', function () { this.tags('ciGroup5'); diff --git a/x-pack/test/spaces_api_integration/spaces_only/apis/share_add.ts b/x-pack/test/spaces_api_integration/spaces_only/apis/share_add.ts index 54b92266dbead..77af9221d6b9c 100644 --- a/x-pack/test/spaces_api_integration/spaces_only/apis/share_add.ts +++ b/x-pack/test/spaces_api_integration/spaces_only/apis/share_add.ts @@ -10,9 +10,9 @@ import { testCaseFailures, getTestScenarios, } from '../../../saved_object_api_integration/common/lib/saved_object_test_utils'; -import { TestInvoker } from '../../common/lib/types'; import { MULTI_NAMESPACE_SAVED_OBJECT_TEST_CASES as CASES } from '../../common/lib/saved_object_test_cases'; import { shareAddTestSuiteFactory } from '../../common/suites/share_add'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; const { DEFAULT: { spaceId: DEFAULT_SPACE_ID }, @@ -67,7 +67,7 @@ const createMultiTestCases = () => { }; // eslint-disable-next-line import/no-default-export -export default function ({ getService }: TestInvoker) { +export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/spaces_only/apis/share_remove.ts b/x-pack/test/spaces_api_integration/spaces_only/apis/share_remove.ts index d3414fb2875e1..22e18e7308f6b 100644 --- a/x-pack/test/spaces_api_integration/spaces_only/apis/share_remove.ts +++ b/x-pack/test/spaces_api_integration/spaces_only/apis/share_remove.ts @@ -10,9 +10,9 @@ import { testCaseFailures, getTestScenarios, } from '../../../saved_object_api_integration/common/lib/saved_object_test_utils'; -import { TestInvoker } from '../../common/lib/types'; import { MULTI_NAMESPACE_SAVED_OBJECT_TEST_CASES as CASES } from '../../common/lib/saved_object_test_cases'; import { shareRemoveTestSuiteFactory } from '../../common/suites/share_remove'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; const { DEFAULT: { spaceId: DEFAULT_SPACE_ID }, @@ -77,7 +77,7 @@ const createMultiTestCases = () => { }; // eslint-disable-next-line import/no-default-export -export default function ({ getService }: TestInvoker) { +export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/spaces_api_integration/spaces_only/apis/update.ts b/x-pack/test/spaces_api_integration/spaces_only/apis/update.ts index ea992dbc45dc4..8afdae8bd9e09 100644 --- a/x-pack/test/spaces_api_integration/spaces_only/apis/update.ts +++ b/x-pack/test/spaces_api_integration/spaces_only/apis/update.ts @@ -6,11 +6,11 @@ */ import { SPACES } from '../../common/lib/spaces'; -import { TestInvoker } from '../../common/lib/types'; import { updateTestSuiteFactory } from '../../common/suites/update'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export -export default function updateSpaceTestSuite({ getService }: TestInvoker) { +export default function updateSpaceTestSuite({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); From 95e308a4738d46dc99339cabb8a250c1eef89a54 Mon Sep 17 00:00:00 2001 From: Quynh Nguyen <43350163+qn895@users.noreply.github.com> Date: Fri, 26 Mar 2021 13:10:19 -0500 Subject: [PATCH 16/55] [ML] Add Anomaly Explorer charts embeddable (#94396) --- x-pack/plugins/ml/common/types/es_client.ts | 7 +- .../ml/common/types/ml_url_generator.ts | 5 +- .../plugins/ml/common/util/anomaly_utils.ts | 8 + .../plugins/ml/public/__mocks__/core_start.ts | 11 + .../ml/public/__mocks__/ml_start_deps.ts | 28 + .../select_interval/select_interval.tsx | 16 +- .../select_severity/select_severity.tsx | 19 +- .../custom_hooks/use_time_buckets.ts | 23 + .../custom_selection_table.js | 2 +- .../components/entity_cell/entity_cell.tsx | 5 +- .../kibana/__mocks__/kibana_context.ts | 21 +- .../kibana/__mocks__/use_timefilter.ts | 2 +- .../explorer/actions/load_explorer_data.ts | 47 +- .../explorer/add_to_dashboard_control.tsx | 8 +- .../explorer_query_bar/explorer_query_bar.tsx | 3 +- .../public/application/explorer/explorer.js | 39 +- ...orer_charts_container_service.test.js.snap | 611 ---------- .../explorer_charts/_explorer_chart.scss | 27 +- .../explorer/explorer_charts/_index.scss | 1 + .../explorer_chart_label.test.js.snap | 2 - .../entity_filter/entity_filter.scss | 14 + .../entity_filter/entity_filter.tsx | 87 ++ .../entity_filter/index.ts | 8 + .../explorer_chart_label.js | 28 +- .../explorer_anomalies_container.tsx | 105 ++ .../explorer_chart_distribution.js | 4 +- .../explorer_chart_distribution.test.js | 20 +- .../explorer_chart_single_metric.js | 5 +- .../explorer_chart_single_metric.test.js | 20 +- .../explorer_charts_container.js | 56 +- .../explorer_charts_container.test.js | 49 +- .../explorer_charts_container_service.d.ts | 29 - .../explorer_charts_container_service.js | 765 ------------ .../explorer_charts_container_service.test.js | 194 --- .../explorer_charts_container_service.ts | 38 + .../explorer/explorer_constants.ts | 4 +- .../explorer/explorer_dashboard_service.ts | 2 + .../application/explorer/explorer_utils.d.ts | 29 +- .../application/explorer/explorer_utils.js | 13 +- .../reducers/explorer_reducer/state.ts | 3 +- .../explorer/swimlane_container.tsx | 2 +- .../application/routing/routes/explorer.tsx | 5 + .../routing/routes/timeseriesexplorer.tsx | 5 +- .../__mocks__/anomaly_detector_service.ts | 10 + .../anomaly_explorer_charts_service.ts | 13 + .../services/__mocks__/ml_api_services.ts | 12 + .../anomaly_explorer_charts_service.test.ts | 183 +++ .../anomaly_explorer_charts_service.ts | 1056 +++++++++++++++++ .../services/ml_results_service.ts | 14 + .../results_service/result_service_rx.ts | 6 +- .../results_service/results_service.d.ts | 18 +- .../results_service/results_service.js | 6 +- .../timeseriesexplorer.d.ts | 3 +- .../util/__mocks__/time_buckets.ts | 16 + .../public/application/util/chart_utils.d.ts | 9 + .../ml/public/application/util/chart_utils.js | 4 +- .../application/util/recently_accessed.ts | 10 +- ...ble_anomaly_charts_container.test.tsx.snap | 58 + .../anomaly_charts_embeddable.tsx | 135 +++ .../anomaly_charts_embeddable_factory.test.ts | 55 + .../anomaly_charts_embeddable_factory.ts | 89 ++ .../anomaly_charts_initializer.test.tsx | 49 + .../anomaly_charts_initializer.tsx | 132 +++ .../anomaly_charts_setup_flyout.tsx | 57 + ...beddable_anomaly_charts_container.test.tsx | 181 +++ .../embeddable_anomaly_charts_container.tsx | 194 +++ ...beddable_anomaly_charts_container_lazy.tsx | 12 + .../embeddables/anomaly_charts/index.ts | 8 + .../use_anomaly_charts_input_resolver.test.ts | 219 ++++ .../use_anomaly_charts_input_resolver.ts | 192 +++ .../anomaly_swimlane_embeddable.tsx | 6 +- .../anomaly_swimlane_embeddable_factory.ts | 2 +- .../anomaly_swimlane_setup_flyout.tsx | 4 +- .../embeddable_swim_lane_container.test.tsx | 13 +- .../embeddable_swim_lane_container.tsx | 1 + .../swimlane_input_resolver.test.ts | 145 +-- .../swimlane_input_resolver.ts | 70 +- .../embeddable_loading_fallback.tsx | 20 + .../embeddables/common/get_jobs_observable.ts | 28 + .../common/process_filters.test.ts | 288 +++++ .../embeddables/common/process_filters.ts | 55 + .../ml/public/embeddables/constants.ts | 1 + x-pack/plugins/ml/public/embeddables/index.ts | 5 + x-pack/plugins/ml/public/embeddables/types.ts | 66 ++ .../apply_entity_filters_action.tsx | 92 ++ .../apply_influencer_filters_action.tsx | 2 +- .../plugins/ml/public/ui_actions/constants.ts | 1 + .../edit_anomaly_charts_panel_action.tsx | 60 + x-pack/plugins/ml/public/ui_actions/index.ts | 21 +- .../open_in_anomaly_explorer_action.tsx | 123 +- .../plugins/ml/public/ui_actions/triggers.ts | 9 + .../apps/ml_embeddables_in_dashboard.ts | 134 +++ x-pack/test/accessibility/config.ts | 1 + .../ml/results/get_anomalies_table_data.ts | 2 +- .../ml/anomaly_detection/anomaly_explorer.ts | 2 +- .../anomaly_charts_dashboard_embeddables.ts | 119 ++ .../functional/apps/ml/embeddables/index.ts | 15 + x-pack/test/functional/apps/ml/index.ts | 1 + .../services/ml/dashboard_embeddables.ts | 95 ++ .../ml/dashboard_job_selection_table.ts | 81 ++ x-pack/test/functional/services/ml/index.ts | 8 + 101 files changed, 4546 insertions(+), 2035 deletions(-) create mode 100644 x-pack/plugins/ml/public/__mocks__/core_start.ts create mode 100644 x-pack/plugins/ml/public/__mocks__/ml_start_deps.ts create mode 100644 x-pack/plugins/ml/public/application/components/custom_hooks/use_time_buckets.ts delete mode 100644 x-pack/plugins/ml/public/application/explorer/explorer_charts/__snapshots__/explorer_charts_container_service.test.js.snap create mode 100644 x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/entity_filter.scss create mode 100644 x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/entity_filter.tsx create mode 100644 x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/index.ts create mode 100644 x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_anomalies_container.tsx delete mode 100644 x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.d.ts delete mode 100644 x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.js delete mode 100644 x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.test.js create mode 100644 x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.ts create mode 100644 x-pack/plugins/ml/public/application/services/__mocks__/anomaly_detector_service.ts create mode 100644 x-pack/plugins/ml/public/application/services/__mocks__/anomaly_explorer_charts_service.ts create mode 100644 x-pack/plugins/ml/public/application/services/__mocks__/ml_api_services.ts create mode 100644 x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.test.ts create mode 100644 x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.ts create mode 100644 x-pack/plugins/ml/public/application/services/ml_results_service.ts create mode 100644 x-pack/plugins/ml/public/application/util/__mocks__/time_buckets.ts create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/__snapshots__/embeddable_anomaly_charts_container.test.tsx.snap create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.test.ts create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.ts create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_initializer.test.tsx create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_initializer.tsx create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_setup_flyout.tsx create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container.test.tsx create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container.tsx create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container_lazy.tsx create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/index.ts create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/use_anomaly_charts_input_resolver.test.ts create mode 100644 x-pack/plugins/ml/public/embeddables/anomaly_charts/use_anomaly_charts_input_resolver.ts create mode 100644 x-pack/plugins/ml/public/embeddables/common/components/embeddable_loading_fallback.tsx create mode 100644 x-pack/plugins/ml/public/embeddables/common/get_jobs_observable.ts create mode 100644 x-pack/plugins/ml/public/embeddables/common/process_filters.test.ts create mode 100644 x-pack/plugins/ml/public/embeddables/common/process_filters.ts create mode 100644 x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx create mode 100644 x-pack/plugins/ml/public/ui_actions/edit_anomaly_charts_panel_action.tsx create mode 100644 x-pack/test/accessibility/apps/ml_embeddables_in_dashboard.ts create mode 100644 x-pack/test/functional/apps/ml/embeddables/anomaly_charts_dashboard_embeddables.ts create mode 100644 x-pack/test/functional/apps/ml/embeddables/index.ts create mode 100644 x-pack/test/functional/services/ml/dashboard_embeddables.ts create mode 100644 x-pack/test/functional/services/ml/dashboard_job_selection_table.ts diff --git a/x-pack/plugins/ml/common/types/es_client.ts b/x-pack/plugins/ml/common/types/es_client.ts index 0674ec6001159..f6db736db2519 100644 --- a/x-pack/plugins/ml/common/types/es_client.ts +++ b/x-pack/plugins/ml/common/types/es_client.ts @@ -5,7 +5,10 @@ * 2.0. */ -import { SearchResponse, ShardsResponse } from 'elasticsearch'; +import type { SearchResponse, ShardsResponse } from 'elasticsearch'; +import { buildEsQuery } from '../../../../../src/plugins/data/common/es_query/es_query'; +import type { DslQuery } from '../../../../../src/plugins/data/common/es_query/kuery'; +import type { JsonObject } from '../../../../../src/plugins/kibana_utils/common'; export const HITS_TOTAL_RELATION = { EQ: 'eq', @@ -30,3 +33,5 @@ export interface SearchResponse7 { hits: SearchResponse7Hits; aggregations?: any; } + +export type InfluencersFilterQuery = ReturnType | DslQuery | JsonObject; diff --git a/x-pack/plugins/ml/common/types/ml_url_generator.ts b/x-pack/plugins/ml/common/types/ml_url_generator.ts index 766b714abcc98..c7c3f3ae9b280 100644 --- a/x-pack/plugins/ml/common/types/ml_url_generator.ts +++ b/x-pack/plugins/ml/common/types/ml_url_generator.ts @@ -15,6 +15,7 @@ import { ML_PAGES } from '../constants/ml_url_generator'; import type { DataFrameAnalysisConfigType } from './data_frame_analytics'; import type { SearchQueryLanguage } from '../constants/search'; import type { ListingPageUrlState } from './common'; +import type { InfluencersFilterQuery } from './es_client'; type OptionalPageState = object | undefined; @@ -113,9 +114,9 @@ export interface ExplorerAppState { viewByFromPage?: number; }; mlExplorerFilter: { - influencersFilterQuery?: unknown; + influencersFilterQuery?: InfluencersFilterQuery; filterActive?: boolean; - filteredFields?: string[]; + filteredFields?: Array; queryString?: string; }; query?: any; diff --git a/x-pack/plugins/ml/common/util/anomaly_utils.ts b/x-pack/plugins/ml/common/util/anomaly_utils.ts index de1adfabcd7da..d8da7b8252771 100644 --- a/x-pack/plugins/ml/common/util/anomaly_utils.ts +++ b/x-pack/plugins/ml/common/util/anomaly_utils.ts @@ -27,10 +27,18 @@ export enum ENTITY_FIELD_TYPE { PARTITON = 'partition', } +export const ENTITY_FIELD_OPERATIONS = { + ADD: '+', + REMOVE: '-', +} as const; + +export type EntityFieldOperation = typeof ENTITY_FIELD_OPERATIONS[keyof typeof ENTITY_FIELD_OPERATIONS]; + export interface EntityField { fieldName: string; fieldValue: string | number | undefined; fieldType?: ENTITY_FIELD_TYPE; + operation?: EntityFieldOperation; } // List of function descriptions for which actual values from record level results should be displayed. diff --git a/x-pack/plugins/ml/public/__mocks__/core_start.ts b/x-pack/plugins/ml/public/__mocks__/core_start.ts new file mode 100644 index 0000000000000..1fd988c887dda --- /dev/null +++ b/x-pack/plugins/ml/public/__mocks__/core_start.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { coreMock } from '../../../../../src/core/public/mocks'; +import { createMlStartDepsMock } from './ml_start_deps'; + +export const createCoreStartMock = () => + coreMock.createSetup({ pluginStartDeps: createMlStartDepsMock() }); diff --git a/x-pack/plugins/ml/public/__mocks__/ml_start_deps.ts b/x-pack/plugins/ml/public/__mocks__/ml_start_deps.ts new file mode 100644 index 0000000000000..77381c8728a48 --- /dev/null +++ b/x-pack/plugins/ml/public/__mocks__/ml_start_deps.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { uiActionsPluginMock } from '../../../../../src/plugins/ui_actions/public/mocks'; +import { dataPluginMock } from '../../../../../src/plugins/data/public/mocks'; +import { kibanaLegacyPluginMock } from '../../../../../src/plugins/kibana_legacy/public/mocks'; +import { embeddablePluginMock } from '../../../../../src/plugins/embeddable/public/mocks'; +import { lensPluginMock } from '../../../lens/public/mocks'; +import { triggersActionsUiMock } from '../../../triggers_actions_ui/public/mocks'; + +export const createMlStartDepsMock = () => ({ + data: dataPluginMock.createStartContract(), + share: { + urlGenerators: { getUrlGenerator: jest.fn() }, + }, + kibanaLegacy: kibanaLegacyPluginMock.createStartContract(), + uiActions: uiActionsPluginMock.createStartContract(), + spaces: jest.fn(), + embeddable: embeddablePluginMock.createStartContract(), + maps: jest.fn(), + lens: lensPluginMock.createStartContract(), + triggersActionsUi: triggersActionsUiMock.createStart(), + fileUpload: jest.fn(), +}); diff --git a/x-pack/plugins/ml/public/application/components/controls/select_interval/select_interval.tsx b/x-pack/plugins/ml/public/application/components/controls/select_interval/select_interval.tsx index e1c4e6b1e53d5..348c400b6d5a9 100644 --- a/x-pack/plugins/ml/public/application/components/controls/select_interval/select_interval.tsx +++ b/x-pack/plugins/ml/public/application/components/controls/select_interval/select_interval.tsx @@ -10,7 +10,7 @@ import { EuiSelect } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { usePageUrlState } from '../../../util/url_state'; -interface TableInterval { +export interface TableInterval { display: string; val: string; } @@ -64,8 +64,16 @@ export const useTableInterval = (): [TableInterval, (v: TableInterval) => void] export const SelectInterval: FC = () => { const [interval, setInterval] = useTableInterval(); - const onChange = (e: React.ChangeEvent) => { - setInterval(optionValueToInterval(e.target.value)); + return ; +}; + +interface SelectIntervalUIProps { + interval: TableInterval; + onChange: (interval: TableInterval) => void; +} +export const SelectIntervalUI: FC = ({ interval, onChange }) => { + const handleOnChange = (e: React.ChangeEvent) => { + onChange(optionValueToInterval(e.target.value)); }; return ( @@ -73,7 +81,7 @@ export const SelectInterval: FC = () => { options={OPTIONS} className="ml-select-interval" value={interval.val} - onChange={onChange} + onChange={handleOnChange} /> ); }; diff --git a/x-pack/plugins/ml/public/application/components/controls/select_severity/select_severity.tsx b/x-pack/plugins/ml/public/application/components/controls/select_severity/select_severity.tsx index 22076c8215154..e8766ea16c002 100644 --- a/x-pack/plugins/ml/public/application/components/controls/select_severity/select_severity.tsx +++ b/x-pack/plugins/ml/public/application/components/controls/select_severity/select_severity.tsx @@ -38,7 +38,7 @@ const optionsMap = { [criticalLabel]: ANOMALY_THRESHOLD.CRITICAL, }; -interface TableSeverity { +export interface TableSeverity { val: number; display: string; color: string; @@ -67,7 +67,7 @@ export const SEVERITY_OPTIONS: TableSeverity[] = [ }, ]; -function optionValueToThreshold(value: number) { +export function optionValueToThreshold(value: number) { // Get corresponding threshold object with required display and val properties from the specified value. let threshold = SEVERITY_OPTIONS.find((opt) => opt.val === value); @@ -121,17 +121,26 @@ interface Props { export const SelectSeverity: FC = ({ classNames } = { classNames: '' }) => { const [severity, setSeverity] = useTableSeverity(); - const onChange = (valueDisplay: string) => { - setSeverity(optionValueToThreshold(optionsMap[valueDisplay])); + return ; +}; + +export const SelectSeverityUI: FC<{ + classNames?: string; + severity: TableSeverity; + onChange: (s: TableSeverity) => void; +}> = ({ classNames = '', severity, onChange }) => { + const handleOnChange = (valueDisplay: string) => { + onChange(optionValueToThreshold(optionsMap[valueDisplay])); }; return ( ); }; diff --git a/x-pack/plugins/ml/public/application/components/custom_hooks/use_time_buckets.ts b/x-pack/plugins/ml/public/application/components/custom_hooks/use_time_buckets.ts new file mode 100644 index 0000000000000..337a49ada6f31 --- /dev/null +++ b/x-pack/plugins/ml/public/application/components/custom_hooks/use_time_buckets.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useMemo } from 'react'; +import { useUiSettings } from '../../contexts/kibana'; +import { TimeBuckets } from '../../util/time_buckets'; +import { UI_SETTINGS } from '../../../../../../../src/plugins/data/common'; + +export const useTimeBuckets = () => { + const uiSettings = useUiSettings(); + return useMemo(() => { + return new TimeBuckets({ + 'histogram:maxBars': uiSettings.get(UI_SETTINGS.HISTOGRAM_MAX_BARS), + 'histogram:barTarget': uiSettings.get(UI_SETTINGS.HISTOGRAM_BAR_TARGET), + dateFormat: uiSettings.get('dateFormat'), + 'dateFormat:scaled': uiSettings.get('dateFormat:scaled'), + }); + }, [uiSettings]); +}; diff --git a/x-pack/plugins/ml/public/application/components/custom_selection_table/custom_selection_table.js b/x-pack/plugins/ml/public/application/components/custom_selection_table/custom_selection_table.js index 9a580c179001d..d52d22f6b4aa7 100644 --- a/x-pack/plugins/ml/public/application/components/custom_selection_table/custom_selection_table.js +++ b/x-pack/plugins/ml/public/application/components/custom_selection_table/custom_selection_table.js @@ -324,7 +324,7 @@ export function CustomSelectionTable({ isSelected={isItemSelected(item[tableItemId])} isSelectable={true} hasActions={true} - data-test-subj="mlCustomSelectionTableRow" + data-test-subj={`mlCustomSelectionTableRow row-${item[tableItemId]}`} > {cells} diff --git a/x-pack/plugins/ml/public/application/components/entity_cell/entity_cell.tsx b/x-pack/plugins/ml/public/application/components/entity_cell/entity_cell.tsx index 650a9d3deb539..a79c8a63b3bc6 100644 --- a/x-pack/plugins/ml/public/application/components/entity_cell/entity_cell.tsx +++ b/x-pack/plugins/ml/public/application/components/entity_cell/entity_cell.tsx @@ -12,6 +12,7 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; import { EMPTY_FIELD_VALUE_LABEL } from '../../timeseriesexplorer/components/entity_control/entity_control'; import { MLCATEGORY } from '../../../../common/constants/field_types'; +import { ENTITY_FIELD_OPERATIONS } from '../../../../common/util/anomaly_utils'; export type EntityCellFilter = ( entityName: string, @@ -40,7 +41,7 @@ function getAddFilter({ entityName, entityValue, filter }: EntityCellProps) { filter(entityName, entityValue, '+')} + onClick={() => filter(entityName, entityValue, ENTITY_FIELD_OPERATIONS.ADD)} iconType="plusInCircle" aria-label={i18n.translate('xpack.ml.anomaliesTable.entityCell.addFilterAriaLabel', { defaultMessage: 'Add filter', @@ -65,7 +66,7 @@ function getRemoveFilter({ entityName, entityValue, filter }: EntityCellProps) { filter(entityName, entityValue, '-')} + onClick={() => filter(entityName, entityValue, ENTITY_FIELD_OPERATIONS.REMOVE)} iconType="minusInCircle" aria-label={i18n.translate('xpack.ml.anomaliesTable.entityCell.removeFilterAriaLabel', { defaultMessage: 'Remove filter', diff --git a/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/kibana_context.ts b/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/kibana_context.ts index 80575118e71dc..a1d846c065dce 100644 --- a/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/kibana_context.ts +++ b/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/kibana_context.ts @@ -5,12 +5,21 @@ * 2.0. */ -export const useMlKibana = jest.fn(() => { - return { - services: { - application: { - navigateToApp: jest.fn(), +export const kibanaContextMock = { + services: { + chrome: { recentlyAccessed: { add: jest.fn() } }, + application: { navigateToApp: jest.fn() }, + http: { + basePath: { + get: jest.fn(), }, }, - }; + share: { + urlGenerators: { getUrlGenerator: jest.fn() }, + }, + }, +}; + +export const useMlKibana = jest.fn(() => { + return kibanaContextMock; }); diff --git a/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/use_timefilter.ts b/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/use_timefilter.ts index dbf78f314b78d..a9ee49fcbadd8 100644 --- a/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/use_timefilter.ts +++ b/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/use_timefilter.ts @@ -7,7 +7,7 @@ import { dataPluginMock } from '../../../../../../../../src/plugins/data/public/mocks'; -const timefilterMock = dataPluginMock.createStartContract().query.timefilter.timefilter; +export const timefilterMock = dataPluginMock.createStartContract().query.timefilter.timefilter; export const useTimefilter = jest.fn(() => { return timefilterMock; diff --git a/x-pack/plugins/ml/public/application/explorer/actions/load_explorer_data.ts b/x-pack/plugins/ml/public/application/explorer/actions/load_explorer_data.ts index 258ffc887325d..e09e9f3d2c1ae 100644 --- a/x-pack/plugins/ml/public/application/explorer/actions/load_explorer_data.ts +++ b/x-pack/plugins/ml/public/application/explorer/actions/load_explorer_data.ts @@ -13,7 +13,6 @@ import { forkJoin, of, Observable, Subject } from 'rxjs'; import { mergeMap, switchMap, tap } from 'rxjs/operators'; import { useCallback, useMemo } from 'react'; -import { anomalyDataChange } from '../explorer_charts/explorer_charts_container_service'; import { explorerService } from '../explorer_dashboard_service'; import { getDateFormatTz, @@ -31,10 +30,14 @@ import { import { ExplorerState } from '../reducers'; import { useMlKibana, useTimefilter } from '../../contexts/kibana'; import { AnomalyTimelineService } from '../../services/anomaly_timeline_service'; -import { mlResultsServiceProvider } from '../../services/results_service'; +import { MlResultsService, mlResultsServiceProvider } from '../../services/results_service'; import { isViewBySwimLaneData } from '../swimlane_container'; import { ANOMALY_SWIM_LANE_HARD_LIMIT } from '../explorer_constants'; import { TimefilterContract } from '../../../../../../../src/plugins/data/public'; +import { AnomalyExplorerChartsService } from '../../services/anomaly_explorer_charts_service'; +import { CombinedJob } from '../../../../common/types/anomaly_detection_jobs'; +import { mlJobService } from '../../services/job_service'; +import { InfluencersFilterQuery } from '../../../../common/types/es_client'; // Memoize the data fetching methods. // wrapWithLastRefreshArg() wraps any given function and preprends a `lastRefresh` argument @@ -52,7 +55,6 @@ const memoize = any>(func: T, context?: any) => { return memoizeOne(wrapWithLastRefreshArg(func, context) as any, memoizeIsEqual); }; -const memoizedAnomalyDataChange = memoize(anomalyDataChange); const memoizedLoadAnnotationsTableData = memoize( loadAnnotationsTableData ); @@ -64,7 +66,7 @@ const memoizedLoadTopInfluencers = memoize(loadTopInfluencers); const memoizedLoadAnomaliesTableData = memoize(loadAnomaliesTableData); export interface LoadExplorerDataConfig { - influencersFilterQuery: any; + influencersFilterQuery: InfluencersFilterQuery; lastRefresh: number; noInfluencersConfigured: boolean; selectedCells: AppStateSelectedCells | undefined; @@ -92,7 +94,9 @@ export const isLoadExplorerDataConfig = (arg: any): arg is LoadExplorerDataConfi * Fetches the data necessary for the Anomaly Explorer using observables. */ const loadExplorerDataProvider = ( + mlResultsService: MlResultsService, anomalyTimelineService: AnomalyTimelineService, + anomalyExplorerService: AnomalyExplorerChartsService, timefilter: TimefilterContract ) => { const memoizedLoadOverallData = memoize( @@ -103,6 +107,11 @@ const loadExplorerDataProvider = ( anomalyTimelineService.loadViewBySwimlane, anomalyTimelineService ); + const memoizedAnomalyDataChange = memoize( + anomalyExplorerService.getAnomalyData, + anomalyExplorerService + ); + return (config: LoadExplorerDataConfig): Observable> => { if (!isLoadExplorerDataConfig(config)) { return of({}); @@ -124,6 +133,10 @@ const loadExplorerDataProvider = ( viewByPerPage, } = config; + const combinedJobRecords: Record = selectedJobs.reduce((acc, job) => { + return { ...acc, [job.id]: mlJobService.getJob(job.id) }; + }, {}); + const selectionInfluencers = getSelectionInfluencers(selectedCells, viewBySwimlaneFieldName); const jobIds = getSelectionJobIds(selectedCells, selectedJobs); @@ -149,6 +162,7 @@ const loadExplorerDataProvider = ( ), anomalyChartRecords: memoizedLoadDataForCharts( lastRefresh, + mlResultsService, jobIds, timerange.earliestMs, timerange.latestMs, @@ -160,6 +174,7 @@ const loadExplorerDataProvider = ( selectionInfluencers.length === 0 ? memoizedLoadTopInfluencers( lastRefresh, + mlResultsService, jobIds, timerange.earliestMs, timerange.latestMs, @@ -200,23 +215,29 @@ const loadExplorerDataProvider = ( // and pass on the data we already fetched. tap(explorerService.setViewBySwimlaneLoading), // Trigger a side-effect to update the charts. - tap(({ anomalyChartRecords }) => { + tap(({ anomalyChartRecords, topFieldValues }) => { if (selectedCells !== undefined && Array.isArray(anomalyChartRecords)) { memoizedAnomalyDataChange( lastRefresh, + explorerService, + combinedJobRecords, swimlaneContainerWidth, anomalyChartRecords, timerange.earliestMs, timerange.latestMs, + timefilter, tableSeverity ); } else { memoizedAnomalyDataChange( lastRefresh, + explorerService, + combinedJobRecords, swimlaneContainerWidth, [], timerange.earliestMs, timerange.latestMs, + timefilter, tableSeverity ); } @@ -234,6 +255,7 @@ const loadExplorerDataProvider = ( anomalyChartRecords.length > 0 ? memoizedLoadFilteredTopInfluencers( lastRefresh, + mlResultsService, jobIds, timerange.earliestMs, timerange.latestMs, @@ -291,12 +313,23 @@ export const useExplorerData = (): [Partial | undefined, (d: any) } = useMlKibana(); const loadExplorerData = useMemo(() => { + const mlResultsService = mlResultsServiceProvider(mlApiServices); const anomalyTimelineService = new AnomalyTimelineService( timefilter, uiSettings, - mlResultsServiceProvider(mlApiServices) + mlResultsService + ); + const anomalyExplorerService = new AnomalyExplorerChartsService( + timefilter, + mlApiServices, + mlResultsService + ); + return loadExplorerDataProvider( + mlResultsService, + anomalyTimelineService, + anomalyExplorerService, + timefilter ); - return loadExplorerDataProvider(anomalyTimelineService, timefilter); }, []); const loadExplorerData$ = useMemo(() => new Subject(), []); diff --git a/x-pack/plugins/ml/public/application/explorer/add_to_dashboard_control.tsx b/x-pack/plugins/ml/public/application/explorer/add_to_dashboard_control.tsx index 2330eafd87825..8fe2c32b766b4 100644 --- a/x-pack/plugins/ml/public/application/explorer/add_to_dashboard_control.tsx +++ b/x-pack/plugins/ml/public/application/explorer/add_to_dashboard_control.tsx @@ -25,7 +25,7 @@ import { EuiInMemoryTable } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { useMlKibana } from '../contexts/kibana'; import { DashboardSavedObject } from '../../../../../../src/plugins/dashboard/public'; -import { getDefaultPanelTitle } from '../../embeddables/anomaly_swimlane/anomaly_swimlane_embeddable'; +import { getDefaultSwimlanePanelTitle } from '../../embeddables/anomaly_swimlane/anomaly_swimlane_embeddable'; import { useDashboardService } from '../services/dashboard_service'; import { SWIMLANE_TYPE, SwimlaneType } from './explorer_constants'; import { JobId } from '../../../common/types/anomaly_detection_jobs'; @@ -40,10 +40,10 @@ export interface DashboardItem { export type EuiTableProps = EuiInMemoryTableProps; -function getDefaultEmbeddablepaPanelConfig(jobIds: JobId[]) { +function getDefaultEmbeddablePanelConfig(jobIds: JobId[]) { return { type: ANOMALY_SWIMLANE_EMBEDDABLE_TYPE, - title: getDefaultPanelTitle(jobIds), + title: getDefaultSwimlanePanelTitle(jobIds), }; } @@ -129,7 +129,7 @@ export const AddToDashboardControl: FC = ({ for (const selectedDashboard of selectedItems) { const panelsData = swimlanes.map((swimlaneType) => { - const config = getDefaultEmbeddablepaPanelConfig(jobIds); + const config = getDefaultEmbeddablePanelConfig(jobIds); if (swimlaneType === SWIMLANE_TYPE.VIEW_BY) { return { ...config, diff --git a/x-pack/plugins/ml/public/application/explorer/components/explorer_query_bar/explorer_query_bar.tsx b/x-pack/plugins/ml/public/application/explorer/components/explorer_query_bar/explorer_query_bar.tsx index 33ab2b227009c..6f5ae5e17590a 100644 --- a/x-pack/plugins/ml/public/application/explorer/components/explorer_query_bar/explorer_query_bar.tsx +++ b/x-pack/plugins/ml/public/application/explorer/components/explorer_query_bar/explorer_query_bar.tsx @@ -17,6 +17,7 @@ import { import { IIndexPattern } from '../../../../../../../../src/plugins/data/common/index_patterns'; import { SEARCH_QUERY_LANGUAGE, ErrorMessage } from '../../../../../common/constants/search'; import { explorerService } from '../../explorer_dashboard_service'; +import { InfluencersFilterQuery } from '../../../../../common/types/es_client'; export const DEFAULT_QUERY_LANG = SEARCH_QUERY_LANGUAGE.KUERY; @@ -29,7 +30,7 @@ export function getKqlQueryValues({ queryLanguage: string; indexPattern: IIndexPattern; }): { clearSettings: boolean; settings: any } { - let influencersFilterQuery: any = {}; + let influencersFilterQuery: InfluencersFilterQuery = {}; const filteredFields: string[] = []; const ast = esKuery.fromKueryExpression(inputString); const isAndOperator = ast && ast.function === 'and'; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer.js b/x-pack/plugins/ml/public/application/explorer/explorer.js index abf8197f51634..6979277c43077 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer.js @@ -68,8 +68,10 @@ import { ExplorerChartsContainer } from './explorer_charts/explorer_charts_conta // Anomalies Table import { AnomaliesTable } from '../components/anomalies_table/anomalies_table'; -import { getTimefilter, getToastNotifications } from '../util/dependency_cache'; +import { getToastNotifications } from '../util/dependency_cache'; import { ANOMALY_DETECTION_DEFAULT_TIME_RANGE } from '../../../common/constants/settings'; +import { withKibana } from '../../../../../../src/plugins/kibana_react/public'; +import { ML_APP_URL_GENERATOR } from '../../../common/constants/ml_url_generator'; const ExplorerPage = ({ children, @@ -136,7 +138,7 @@ const ExplorerPage = ({
); -export class Explorer extends React.Component { +export class ExplorerUI extends React.Component { static propTypes = { explorerState: PropTypes.object.isRequired, setSelectedCells: PropTypes.func.isRequired, @@ -224,7 +226,22 @@ export class Explorer extends React.Component { updateLanguage = (language) => this.setState({ language }); render() { - const { showCharts, severity, stoppedPartitions, selectedJobsRunning } = this.props; + const { + share: { + urlGenerators: { getUrlGenerator }, + }, + } = this.props.kibana.services; + + const mlUrlGenerator = getUrlGenerator(ML_APP_URL_GENERATOR); + + const { + showCharts, + severity, + stoppedPartitions, + selectedJobsRunning, + timefilter, + timeBuckets, + } = this.props; const { annotations, @@ -274,7 +291,6 @@ export class Explorer extends React.Component { const mainColumnWidthClassName = noInfluencersConfigured === true ? 'col-xs-12' : 'col-xs-10'; const mainColumnClasses = `column ${mainColumnWidthClassName}`; - const timefilter = getTimefilter(); const bounds = timefilter.getActiveBounds(); const selectedJobIds = Array.isArray(selectedJobs) ? selectedJobs.map((job) => job.id) : []; return ( @@ -460,7 +476,18 @@ export class Explorer extends React.Component {
- {showCharts && } + {showCharts && ( + + )}
diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/entity_filter.scss b/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/entity_filter.scss new file mode 100644 index 0000000000000..732b71d056536 --- /dev/null +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/entity_filter.scss @@ -0,0 +1,14 @@ +.filter-button { + opacity: .3; + min-width: 14px; + padding-right: 0; + + .euiIcon { + width: $euiFontSizeXS; + height: $euiFontSizeXS; + } +} + +.filter-button:hover { + opacity: 1; +} diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/entity_filter.tsx b/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/entity_filter.tsx new file mode 100644 index 0000000000000..079af5827a4b5 --- /dev/null +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/entity_filter.tsx @@ -0,0 +1,87 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React, { FC } from 'react'; +import { EuiButtonIcon, EuiToolTip } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { i18n } from '@kbn/i18n'; +import { + ENTITY_FIELD_OPERATIONS, + EntityFieldOperation, +} from '../../../../../../../common/util/anomaly_utils'; +import './entity_filter.scss'; + +interface EntityFilterProps { + onFilter: (params: { + influencerFieldName: string; + influencerFieldValue: string; + action: EntityFieldOperation; + }) => void; + influencerFieldName: string; + influencerFieldValue: string; +} +export const EntityFilter: FC = ({ + onFilter, + influencerFieldName, + influencerFieldValue, +}) => { + return ( + + + } + > + + onFilter({ + influencerFieldName, + influencerFieldValue, + action: ENTITY_FIELD_OPERATIONS.ADD, + }) + } + iconType="plusInCircle" + aria-label={i18n.translate('xpack.ml.entityFilter.addFilterAriaLabel', { + defaultMessage: 'Add filter for {influencerFieldName} {influencerFieldValue}', + values: { influencerFieldName, influencerFieldValue }, + })} + /> + + + } + > + + onFilter({ + influencerFieldName, + influencerFieldValue, + action: ENTITY_FIELD_OPERATIONS.REMOVE, + }) + } + iconType="minusInCircle" + aria-label={i18n.translate('xpack.ml.entityFilter.removeFilterAriaLabel', { + defaultMessage: 'Remove filter for {influencerFieldName} {influencerFieldValue}', + values: { influencerFieldName, influencerFieldValue }, + })} + /> + + + ); +}; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/index.ts b/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/index.ts new file mode 100644 index 0000000000000..69e1a632b5ffd --- /dev/null +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/entity_filter/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { EntityFilter } from './entity_filter'; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/explorer_chart_label.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/explorer_chart_label.js index 97eb73906e8de..ad07d1a75bdb5 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/explorer_chart_label.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/components/explorer_chart_label/explorer_chart_label.js @@ -7,18 +7,20 @@ import './_explorer_chart_label.scss'; import PropTypes from 'prop-types'; -import React from 'react'; +import React, { Fragment, useCallback } from 'react'; import { EuiIconTip } from '@elastic/eui'; import { ExplorerChartLabelBadge } from './explorer_chart_label_badge'; import { ExplorerChartInfoTooltip } from '../../explorer_chart_info_tooltip'; +import { EntityFilter } from './entity_filter'; export function ExplorerChartLabel({ detectorLabel, entityFields, infoTooltip, wrapLabel = false, + onSelectEntity, }) { // Depending on whether we wrap the entityField badges to a new line, we render this differently: // @@ -37,9 +39,27 @@ export function ExplorerChartLabel({  –  ); - const entityFieldBadges = entityFields.map((entity) => ( - - )); + const applyFilter = useCallback( + ({ influencerFieldName, influencerFieldValue, action }) => + onSelectEntity(influencerFieldName, influencerFieldValue, action), + [onSelectEntity] + ); + + const entityFieldBadges = entityFields.map((entity) => { + const key = `${infoTooltip.chartFunction}-${entity.fieldName}-${entity.fieldType}-${entity.fieldValue}`; + return ( + + + {onSelectEntity !== undefined && ( + + )} + + ); + }); const infoIcon = ( diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_anomalies_container.tsx b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_anomalies_container.tsx new file mode 100644 index 0000000000000..d1e22ef21de25 --- /dev/null +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_anomalies_container.tsx @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem, EuiFormRow, EuiSpacer, EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React, { FC } from 'react'; +import { FormattedMessage } from '@kbn/i18n/react'; +// @ts-ignore +import { ExplorerChartsContainer } from './explorer_charts_container'; +import { + SelectSeverityUI, + TableSeverity, +} from '../../components/controls/select_severity/select_severity'; +import type { UrlGeneratorContract } from '../../../../../../../src/plugins/share/public'; +import type { TimeBuckets } from '../../util/time_buckets'; +import type { TimefilterContract } from '../../../../../../../src/plugins/data/public'; +import type { EntityFieldOperation } from '../../../../common/util/anomaly_utils'; +import type { ExplorerChartsData } from './explorer_charts_container_service'; + +interface ExplorerAnomaliesContainerProps { + id: string; + chartsData: ExplorerChartsData; + showCharts: boolean; + severity: TableSeverity; + setSeverity: (severity: TableSeverity) => void; + mlUrlGenerator: UrlGeneratorContract<'ML_APP_URL_GENERATOR'>; + timeBuckets: TimeBuckets; + timefilter: TimefilterContract; + onSelectEntity: (fieldName: string, fieldValue: string, operation: EntityFieldOperation) => void; +} + +const tooManyBucketsCalloutMsg = i18n.translate( + 'xpack.ml.explorer.charts.dashboardTooManyBucketsDescription', + { + defaultMessage: + 'This selection contains too many buckets to be displayed. You should shorten the time range of the view.', + } +); + +export const ExplorerAnomaliesContainer: FC = ({ + id, + chartsData, + showCharts, + severity, + setSeverity, + mlUrlGenerator, + timeBuckets, + timefilter, + onSelectEntity, +}) => { + return ( + <> + + + + + + + + + + {Array.isArray(chartsData.seriesToPlot) && + chartsData.seriesToPlot.length === 0 && + chartsData.errorMessages === undefined && ( + +

+ +

+
+ )} +
+ {showCharts && ( + + )} +
+ + ); +}; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js index 4607ac65c87a6..fa6d8acfb0e00 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js @@ -33,7 +33,6 @@ import { chartExtendedLimits, } from '../../util/chart_utils'; import { LoadingIndicator } from '../../components/loading_indicator/loading_indicator'; -import { getTimeBucketsFromCache } from '../../util/time_buckets'; import { mlFieldFormatService } from '../../services/field_format_service'; import { CHART_TYPE } from '../explorer_constants'; @@ -63,7 +62,7 @@ export class ExplorerChartDistribution extends React.Component { } renderChart() { - const { tooManyBuckets, tooltipService } = this.props; + const { tooManyBuckets, tooltipService, timeBuckets } = this.props; const element = this.rootNode; const config = this.props.seriesConfig; @@ -263,7 +262,6 @@ export class ExplorerChartDistribution extends React.Component { function drawRareChartAxes() { // Get the scaled date format to use for x axis tick labels. - const timeBuckets = getTimeBucketsFromCache(); const bounds = { min: moment(config.plotEarliest), max: moment(config.plotLatest) }; timeBuckets.setBounds(bounds); timeBuckets.setInterval('auto'); diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js index ca8d832e6b43b..11a15b192fc52 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js @@ -7,18 +7,6 @@ import { chartData as mockChartData } from './__mocks__/mock_chart_data_rare'; import seriesConfig from './__mocks__/mock_series_config_rare.json'; - -// Mock TimeBuckets and mlFieldFormatService, they don't play well -// with the jest based test setup yet. -jest.mock('../../util/time_buckets', () => ({ - getTimeBucketsFromCache: jest.fn(() => { - return { - setBounds: jest.fn(), - setInterval: jest.fn(), - getScaledDateFormat: jest.fn(), - }; - }), -})); jest.mock('../../services/field_format_service', () => ({ mlFieldFormatService: { getFieldFormat: jest.fn(), @@ -30,7 +18,10 @@ import React from 'react'; import { ExplorerChartDistribution } from './explorer_chart_distribution'; import { chartLimits } from '../../util/chart_utils'; - +import { timeBucketsMock } from '../../util/__mocks__/time_buckets'; +const utilityProps = { + timeBuckets: timeBucketsMock, +}; describe('ExplorerChart', () => { const mlSelectSeverityServiceMock = { state: { @@ -55,6 +46,7 @@ describe('ExplorerChart', () => { ); @@ -80,6 +72,7 @@ describe('ExplorerChart', () => { seriesConfig={config} mlSelectSeverityService={mlSelectSeverityServiceMock} tooltipService={mockTooltipService} + {...utilityProps} /> ); @@ -112,6 +105,7 @@ describe('ExplorerChart', () => { seriesConfig={config} mlSelectSeverityService={mlSelectSeverityServiceMock} tooltipService={mockTooltipService} + {...utilityProps} /> ); diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js index d2d81e0349c68..39a3f83961d3a 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js @@ -38,7 +38,6 @@ import { showMultiBucketAnomalyTooltip, } from '../../util/chart_utils'; import { LoadingIndicator } from '../../components/loading_indicator/loading_indicator'; -import { getTimeBucketsFromCache } from '../../util/time_buckets'; import { mlFieldFormatService } from '../../services/field_format_service'; const CONTENT_WRAPPER_HEIGHT = 215; @@ -50,6 +49,7 @@ export class ExplorerChartSingleMetric extends React.Component { seriesConfig: PropTypes.object, severity: PropTypes.number.isRequired, tooltipService: PropTypes.object.isRequired, + timeBuckets: PropTypes.object.isRequired, }; componentDidMount() { @@ -61,7 +61,7 @@ export class ExplorerChartSingleMetric extends React.Component { } renderChart() { - const { tooManyBuckets, tooltipService } = this.props; + const { tooManyBuckets, tooltipService, timeBuckets } = this.props; const element = this.rootNode; const config = this.props.seriesConfig; @@ -188,7 +188,6 @@ export class ExplorerChartSingleMetric extends React.Component { function drawLineChartAxes() { // Get the scaled date format to use for x axis tick labels. - const timeBuckets = getTimeBucketsFromCache(); const bounds = { min: moment(config.plotEarliest), max: moment(config.plotLatest) }; timeBuckets.setBounds(bounds); timeBuckets.setInterval('auto'); diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js index 25b2251b45435..981f7515d3d70 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js @@ -7,18 +7,6 @@ import { chartData as mockChartData } from './__mocks__/mock_chart_data'; import seriesConfig from './__mocks__/mock_series_config_filebeat.json'; - -// Mock TimeBuckets and mlFieldFormatService, they don't play well -// with the jest based test setup yet. -jest.mock('../../util/time_buckets', () => ({ - getTimeBucketsFromCache: jest.fn(() => { - return { - setBounds: jest.fn(), - setInterval: jest.fn(), - getScaledDateFormat: jest.fn(), - }; - }), -})); jest.mock('../../services/field_format_service', () => ({ mlFieldFormatService: { getFieldFormat: jest.fn(), @@ -30,6 +18,11 @@ import React from 'react'; import { ExplorerChartSingleMetric } from './explorer_chart_single_metric'; import { chartLimits } from '../../util/chart_utils'; +import { timeBucketsMock } from '../../util/__mocks__/time_buckets'; + +const utilityProps = { + timeBuckets: timeBucketsMock, +}; describe('ExplorerChart', () => { const mlSelectSeverityServiceMock = { @@ -56,6 +49,7 @@ describe('ExplorerChart', () => { mlSelectSeverityService={mlSelectSeverityServiceMock} tooltipService={mockTooltipService} severity={0} + {...utilityProps} /> ); @@ -82,6 +76,7 @@ describe('ExplorerChart', () => { mlSelectSeverityService={mlSelectSeverityServiceMock} tooltipService={mockTooltipService} severity={0} + {...utilityProps} /> ); @@ -115,6 +110,7 @@ describe('ExplorerChart', () => { mlSelectSeverityService={mlSelectSeverityServiceMock} tooltipService={mockTooltipService} severity={0} + {...utilityProps} /> ); diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.js index 5bdae2427c103..2432c6671827e 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.js @@ -4,8 +4,9 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import './_index.scss'; -import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import React, { useEffect, useState, useCallback } from 'react'; import { EuiButtonEmpty, @@ -23,7 +24,6 @@ import { } from '../../util/chart_utils'; import { ExplorerChartDistribution } from './explorer_chart_distribution'; import { ExplorerChartSingleMetric } from './explorer_chart_single_metric'; -import { EmbeddedMapComponentWrapper } from './explorer_chart_embedded_map'; import { ExplorerChartLabel } from './components/explorer_chart_label'; import { CHART_TYPE } from '../explorer_constants'; @@ -31,15 +31,15 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { MlTooltipComponent } from '../../components/chart_tooltip'; import { withKibana } from '../../../../../../../src/plugins/kibana_react/public'; -import { ML_APP_URL_GENERATOR } from '../../../../common/constants/ml_url_generator'; import { ML_JOB_AGGREGATION } from '../../../../common/constants/aggregation_types'; -import { addItemToRecentlyAccessed } from '../../util/recently_accessed'; import { ExplorerChartsErrorCallOuts } from './explorer_charts_error_callouts'; - +import { addItemToRecentlyAccessed } from '../../util/recently_accessed'; +import { EmbeddedMapComponentWrapper } from './explorer_chart_embedded_map'; const textTooManyBuckets = i18n.translate('xpack.ml.explorer.charts.tooManyBucketsDescription', { defaultMessage: 'This selection contains too many buckets to be displayed. You should shorten the time range of the view or narrow the selection in the timeline.', }); + const textViewButton = i18n.translate( 'xpack.ml.explorer.charts.openInSingleMetricViewerButtonLabel', { @@ -67,14 +67,23 @@ function ExplorerChartContainer({ wrapLabel, mlUrlGenerator, basePath, + timeBuckets, + timefilter, + onSelectEntity, + recentlyAccessed, + tooManyBucketsCalloutMsg, }) { - const [explorerSeriesLink, setExplorerSeriesLink] = useState(); + const [explorerSeriesLink, setExplorerSeriesLink] = useState(''); useEffect(() => { let isCancelled = false; const generateLink = async () => { if (!isCancelled && series.functionDescription !== ML_JOB_AGGREGATION.LAT_LONG) { - const singleMetricViewerLink = await getExploreSeriesLink(mlUrlGenerator, series); + const singleMetricViewerLink = await getExploreSeriesLink( + mlUrlGenerator, + series, + timefilter + ); setExplorerSeriesLink(singleMetricViewerLink); } }; @@ -85,8 +94,15 @@ function ExplorerChartContainer({ }, [mlUrlGenerator, series]); const addToRecentlyAccessed = useCallback(() => { - addItemToRecentlyAccessed('timeseriesexplorer', series.jobId, explorerSeriesLink); - }, [explorerSeriesLink]); + if (recentlyAccessed) { + addItemToRecentlyAccessed( + 'timeseriesexplorer', + series.jobId, + explorerSeriesLink, + recentlyAccessed + ); + } + }, [explorerSeriesLink, recentlyAccessed]); const { detectorLabel, entityFields } = series; const chartType = getChartType(series); @@ -121,6 +137,7 @@ function ExplorerChartContainer({ entityFields={entityFields} infoTooltip={{ ...series.infoTooltip, chartType }} wrapLabel={wrapLabel} + onSelectEntity={onSelectEntity} />
@@ -128,7 +145,7 @@ function ExplorerChartContainer({ {tooManyBuckets && ( ); } + if ( chartType === CHART_TYPE.EVENT_DISTRIBUTION || chartType === CHART_TYPE.POPULATION_DISTRIBUTION @@ -176,6 +194,7 @@ function ExplorerChartContainer({ {(tooltipService) => ( {(tooltipService) => ( { const { services: { + chrome: { recentlyAccessed }, http: { basePath }, - share: { - urlGenerators: { getUrlGenerator }, - }, embeddable: embeddablePlugin, maps: mapsPlugin, }, @@ -244,8 +267,6 @@ export const ExplorerChartsContainerUI = ({ const seriesToUse = seriesToPlotFiltered !== undefined ? seriesToPlotFiltered : seriesToPlot; - const mlUrlGenerator = useMemo(() => getUrlGenerator(ML_APP_URL_GENERATOR), [getUrlGenerator]); - // doesn't allow a setting of `columns={1}` when chartsPerRow would be 1. // If that's the case we trick it doing that with the following settings: const chartsWidth = chartsPerRow === 1 ? 'calc(100% - 20px)' : 'auto'; @@ -270,6 +291,11 @@ export const ExplorerChartsContainerUI = ({ wrapLabel={wrapLabel} mlUrlGenerator={mlUrlGenerator} basePath={basePath.get()} + timeBuckets={timeBuckets} + timefilter={timefilter} + onSelectEntity={onSelectEntity} + recentlyAccessed={recentlyAccessed} + tooManyBucketsCalloutMsg={tooManyBucketsCalloutMsg} /> ))} diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js index 70b46046aa7ce..53d06e7253f00 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js @@ -18,18 +18,10 @@ import { ExplorerChartsContainer } from './explorer_charts_container'; import { chartData } from './__mocks__/mock_chart_data'; import seriesConfig from './__mocks__/mock_series_config_filebeat.json'; import seriesConfigRare from './__mocks__/mock_series_config_rare.json'; +import { kibanaContextMock } from '../../contexts/kibana/__mocks__/kibana_context'; +import { timeBucketsMock } from '../../util/__mocks__/time_buckets'; +import { timefilterMock } from '../../contexts/kibana/__mocks__/use_timefilter'; -// Mock TimeBuckets and mlFieldFormatService, they don't play well -// with the jest based test setup yet. -jest.mock('../../util/time_buckets', () => ({ - getTimeBucketsFromCache: jest.fn(() => { - return { - setBounds: jest.fn(), - setInterval: jest.fn(), - getScaledDateFormat: jest.fn(), - }; - }), -})); jest.mock('../../services/field_format_service', () => ({ mlFieldFormatService: { getFieldFormat: jest.fn(), @@ -47,6 +39,18 @@ jest.mock('../../../../../../../src/plugins/kibana_react/public', () => ({ }, })); +const getUtilityProps = () => { + const mlUrlGenerator = { + createUrl: jest.fn(), + }; + return { + mlUrlGenerator, + timefilter: timefilterMock, + timeBuckets: timeBucketsMock, + kibana: kibanaContextMock, + }; +}; + describe('ExplorerChartsContainer', () => { const mockedGetBBox = { x: 0, y: -11.5, width: 12.1875, height: 14.5 }; const originalGetBBox = SVGElement.prototype.getBBox; @@ -54,27 +58,10 @@ describe('ExplorerChartsContainer', () => { beforeEach(() => (SVGElement.prototype.getBBox = () => mockedGetBBox)); afterEach(() => (SVGElement.prototype.getBBox = originalGetBBox)); - const kibanaContextMock = { - services: { - application: { navigateToApp: jest.fn() }, - http: { - basePath: { - get: jest.fn(), - }, - }, - share: { - urlGenerators: { getUrlGenerator: jest.fn() }, - }, - }, - }; test('Minimal Initialization', () => { const wrapper = shallow( - + ); @@ -99,7 +86,7 @@ describe('ExplorerChartsContainer', () => { }; const wrapper = mount( - + ); @@ -127,7 +114,7 @@ describe('ExplorerChartsContainer', () => { }; const wrapper = mount( - + ); diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.d.ts b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.d.ts deleted file mode 100644 index a384a38899587..0000000000000 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { JobId } from '../../../../common/types/anomaly_detection_jobs'; - -export interface ExplorerChartSeriesErrorMessages { - [key: string]: Set; -} -export declare interface ExplorerChartsData { - chartsPerRow: number; - seriesToPlot: any[]; - tooManyBuckets: boolean; - timeFieldName: string; - errorMessages: ExplorerChartSeriesErrorMessages; -} - -export declare const getDefaultChartsData: () => ExplorerChartsData; - -export declare const anomalyDataChange: ( - chartsContainerWidth: number, - anomalyRecords: any[], - earliestMs: number, - latestMs: number, - severity?: number -) => void; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.js deleted file mode 100644 index 7eef548bc2d1c..0000000000000 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.js +++ /dev/null @@ -1,765 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -/* - * Service for the container for the anomaly charts in the - * Machine Learning Explorer dashboard. - * The service processes the data required to draw each of the charts - * and manages the layout of the charts in the containing div. - */ - -import { get, each, find, sortBy, map, reduce } from 'lodash'; - -import { buildConfig } from './explorer_chart_config_builder'; -import { chartLimits, getChartType } from '../../util/chart_utils'; -import { getTimefilter } from '../../util/dependency_cache'; - -import { getEntityFieldList } from '../../../../common/util/anomaly_utils'; -import { - isSourceDataChartableForDetector, - isModelPlotChartableForDetector, - isModelPlotEnabled, - isMappableJob, -} from '../../../../common/util/job_utils'; -import { mlResultsService } from '../../services/results_service'; -import { mlJobService } from '../../services/job_service'; -import { explorerService } from '../explorer_dashboard_service'; - -import { CHART_TYPE } from '../explorer_constants'; -import { ML_JOB_AGGREGATION } from '../../../../common/constants/aggregation_types'; -import { i18n } from '@kbn/i18n'; -import { SWIM_LANE_LABEL_WIDTH } from '../swimlane_container'; - -export function getDefaultChartsData() { - return { - chartsPerRow: 1, - errorMessages: undefined, - seriesToPlot: [], - // default values, will update on every re-render - tooManyBuckets: false, - timeFieldName: 'timestamp', - }; -} - -const CHART_MAX_POINTS = 500; -const ANOMALIES_MAX_RESULTS = 500; -const MAX_SCHEDULED_EVENTS = 10; // Max number of scheduled events displayed per bucket. -const ML_TIME_FIELD_NAME = 'timestamp'; -const USE_OVERALL_CHART_LIMITS = false; -const MAX_CHARTS_PER_ROW = 4; - -export const anomalyDataChange = function ( - chartsContainerWidth, - anomalyRecords, - selectedEarliestMs, - selectedLatestMs, - severity = 0 -) { - const data = getDefaultChartsData(); - - const containerWith = chartsContainerWidth + SWIM_LANE_LABEL_WIDTH; - - const filteredRecords = anomalyRecords.filter((record) => { - return Number(record.record_score) >= severity; - }); - const [allSeriesRecords, errorMessages] = processRecordsForDisplay(filteredRecords); - // Calculate the number of charts per row, depending on the width available, to a max of 4. - let chartsPerRow = Math.min(Math.max(Math.floor(containerWith / 550), 1), MAX_CHARTS_PER_ROW); - if (allSeriesRecords.length === 1) { - chartsPerRow = 1; - } - - data.chartsPerRow = chartsPerRow; - - // Build the data configs of the anomalies to be displayed. - // TODO - implement paging? - // For now just take first 6 (or 8 if 4 charts per row). - const maxSeriesToPlot = Math.max(chartsPerRow * 2, 6); - const recordsToPlot = allSeriesRecords.slice(0, maxSeriesToPlot); - const hasGeoData = recordsToPlot.find( - (record) => - (record.function_description || recordsToPlot.function) === ML_JOB_AGGREGATION.LAT_LONG - ); - - const seriesConfigs = recordsToPlot.map(buildConfig); - const seriesConfigsNoGeoData = []; - - // initialize the charts with loading indicators - data.seriesToPlot = seriesConfigs.map((config) => ({ - ...config, - loading: true, - chartData: null, - })); - - const mapData = []; - - if (hasGeoData !== undefined) { - for (let i = 0; i < seriesConfigs.length; i++) { - const config = seriesConfigs[i]; - let records; - if (config.detectorLabel.includes(ML_JOB_AGGREGATION.LAT_LONG)) { - if (config.entityFields.length) { - records = [ - recordsToPlot.find((record) => { - const entityFieldName = config.entityFields[0].fieldName; - const entityFieldValue = config.entityFields[0].fieldValue; - return (record[entityFieldName] && record[entityFieldName][0]) === entityFieldValue; - }), - ]; - } else { - records = recordsToPlot; - } - - mapData.push({ - ...config, - loading: false, - mapData: records, - }); - } else { - seriesConfigsNoGeoData.push(config); - } - } - } - - // Calculate the time range of the charts, which is a function of the chart width and max job bucket span. - data.tooManyBuckets = false; - const chartWidth = Math.floor(containerWith / chartsPerRow); - const { chartRange, tooManyBuckets } = calculateChartRange( - seriesConfigs, - selectedEarliestMs, - selectedLatestMs, - chartWidth, - recordsToPlot, - data.timeFieldName - ); - data.tooManyBuckets = tooManyBuckets; - - data.errorMessages = errorMessages; - - explorerService.setCharts({ ...data }); - - if (seriesConfigs.length === 0) { - return data; - } - - // Query 1 - load the raw metric data. - function getMetricData(config, range) { - const { jobId, detectorIndex, entityFields, bucketSpanSeconds } = config; - - const job = mlJobService.getJob(jobId); - - // If the job uses aggregation or scripted fields, and if it's a config we don't support - // use model plot data if model plot is enabled - // else if source data can be plotted, use that, otherwise model plot will be available. - const useSourceData = isSourceDataChartableForDetector(job, detectorIndex); - if (useSourceData === true) { - const datafeedQuery = get(config, 'datafeedConfig.query', null); - return mlResultsService - .getMetricData( - config.datafeedConfig.indices, - entityFields, - datafeedQuery, - config.metricFunction, - config.metricFieldName, - config.summaryCountFieldName, - config.timeField, - range.min, - range.max, - bucketSpanSeconds * 1000, - config.datafeedConfig - ) - .toPromise(); - } else { - // Extract the partition, by, over fields on which to filter. - const criteriaFields = []; - const detector = job.analysis_config.detectors[detectorIndex]; - if (detector.partition_field_name !== undefined) { - const partitionEntity = find(entityFields, { - fieldName: detector.partition_field_name, - }); - if (partitionEntity !== undefined) { - criteriaFields.push( - { fieldName: 'partition_field_name', fieldValue: partitionEntity.fieldName }, - { fieldName: 'partition_field_value', fieldValue: partitionEntity.fieldValue } - ); - } - } - - if (detector.over_field_name !== undefined) { - const overEntity = find(entityFields, { fieldName: detector.over_field_name }); - if (overEntity !== undefined) { - criteriaFields.push( - { fieldName: 'over_field_name', fieldValue: overEntity.fieldName }, - { fieldName: 'over_field_value', fieldValue: overEntity.fieldValue } - ); - } - } - - if (detector.by_field_name !== undefined) { - const byEntity = find(entityFields, { fieldName: detector.by_field_name }); - if (byEntity !== undefined) { - criteriaFields.push( - { fieldName: 'by_field_name', fieldValue: byEntity.fieldName }, - { fieldName: 'by_field_value', fieldValue: byEntity.fieldValue } - ); - } - } - - return new Promise((resolve, reject) => { - const obj = { - success: true, - results: {}, - }; - - return mlResultsService - .getModelPlotOutput( - jobId, - detectorIndex, - criteriaFields, - range.min, - range.max, - bucketSpanSeconds * 1000 - ) - .toPromise() - .then((resp) => { - // Return data in format required by the explorer charts. - const results = resp.results; - Object.keys(results).forEach((time) => { - obj.results[time] = results[time].actual; - }); - resolve(obj); - }) - .catch((resp) => { - reject(resp); - }); - }); - } - } - - // Query 2 - load the anomalies. - // Criteria to return the records for this series are the detector_index plus - // the specific combination of 'entity' fields i.e. the partition / by / over fields. - function getRecordsForCriteria(config, range) { - let criteria = []; - criteria.push({ fieldName: 'detector_index', fieldValue: config.detectorIndex }); - criteria = criteria.concat(config.entityFields); - return mlResultsService - .getRecordsForCriteria( - [config.jobId], - criteria, - 0, - range.min, - range.max, - ANOMALIES_MAX_RESULTS - ) - .toPromise(); - } - - // Query 3 - load any scheduled events for the job. - function getScheduledEvents(config, range) { - return mlResultsService - .getScheduledEventsByBucket( - [config.jobId], - range.min, - range.max, - config.bucketSpanSeconds * 1000, - 1, - MAX_SCHEDULED_EVENTS - ) - .toPromise(); - } - - // Query 4 - load context data distribution - function getEventDistribution(config, range) { - const chartType = getChartType(config); - - let splitField; - let filterField = null; - - // Define splitField and filterField based on chartType - if (chartType === CHART_TYPE.EVENT_DISTRIBUTION) { - splitField = config.entityFields.find((f) => f.fieldType === 'by'); - filterField = config.entityFields.find((f) => f.fieldType === 'partition'); - } else if (chartType === CHART_TYPE.POPULATION_DISTRIBUTION) { - splitField = config.entityFields.find((f) => f.fieldType === 'over'); - filterField = config.entityFields.find((f) => f.fieldType === 'partition'); - } - - const datafeedQuery = get(config, 'datafeedConfig.query', null); - return mlResultsService.getEventDistributionData( - config.datafeedConfig.indices, - splitField, - filterField, - datafeedQuery, - config.metricFunction, - config.metricFieldName, - config.timeField, - range.min, - range.max, - config.bucketSpanSeconds * 1000 - ); - } - - // first load and wait for required data, - // only after that trigger data processing and page render. - // TODO - if query returns no results e.g. source data has been deleted, - // display a message saying 'No data between earliest/latest'. - const seriesPromises = []; - // Use seriesConfigs list without geo data config so indices match up after seriesPromises are resolved and we map through the responses - const seriesCongifsForPromises = hasGeoData ? seriesConfigsNoGeoData : seriesConfigs; - seriesCongifsForPromises.forEach((seriesConfig) => { - seriesPromises.push( - Promise.all([ - getMetricData(seriesConfig, chartRange), - getRecordsForCriteria(seriesConfig, chartRange), - getScheduledEvents(seriesConfig, chartRange), - getEventDistribution(seriesConfig, chartRange), - ]) - ); - }); - - function processChartData(response, seriesIndex) { - const metricData = response[0].results; - const records = response[1].records; - const jobId = seriesCongifsForPromises[seriesIndex].jobId; - const scheduledEvents = response[2].events[jobId]; - const eventDistribution = response[3]; - const chartType = getChartType(seriesCongifsForPromises[seriesIndex]); - - // Sort records in ascending time order matching up with chart data - records.sort((recordA, recordB) => { - return recordA[ML_TIME_FIELD_NAME] - recordB[ML_TIME_FIELD_NAME]; - }); - - // Return dataset in format used by the chart. - // i.e. array of Objects with keys date (timestamp), value, - // plus anomalyScore for points with anomaly markers. - let chartData = []; - if (metricData !== undefined) { - if (eventDistribution.length > 0 && records.length > 0) { - const filterField = records[0].by_field_value || records[0].over_field_value; - chartData = eventDistribution.filter((d) => d.entity !== filterField); - map(metricData, (value, time) => { - // The filtering for rare/event_distribution charts needs to be handled - // differently because of how the source data is structured. - // For rare chart values we are only interested wether a value is either `0` or not, - // `0` acts like a flag in the chart whether to display the dot/marker. - // All other charts (single metric, population) are metric based and with - // those a value of `null` acts as the flag to hide a data point. - if ( - (chartType === CHART_TYPE.EVENT_DISTRIBUTION && value > 0) || - (chartType !== CHART_TYPE.EVENT_DISTRIBUTION && value !== null) - ) { - chartData.push({ - date: +time, - value: value, - entity: filterField, - }); - } - }); - } else { - chartData = map(metricData, (value, time) => ({ - date: +time, - value: value, - })); - } - } - - // Iterate through the anomaly records, adding anomalyScore properties - // to the chartData entries for anomalous buckets. - const chartDataForPointSearch = getChartDataForPointSearch(chartData, records[0], chartType); - each(records, (record) => { - // Look for a chart point with the same time as the record. - // If none found, insert a point for anomalies due to a gap in the data. - const recordTime = record[ML_TIME_FIELD_NAME]; - let chartPoint = findChartPointForTime(chartDataForPointSearch, recordTime); - if (chartPoint === undefined) { - chartPoint = { date: new Date(recordTime), value: null }; - chartData.push(chartPoint); - } - - chartPoint.anomalyScore = record.record_score; - - if (record.actual !== undefined) { - chartPoint.actual = record.actual; - chartPoint.typical = record.typical; - } else { - const causes = get(record, 'causes', []); - if (causes.length > 0) { - chartPoint.byFieldName = record.by_field_name; - chartPoint.numberOfCauses = causes.length; - if (causes.length === 1) { - // If only a single cause, copy actual and typical values to the top level. - const cause = record.causes[0]; - chartPoint.actual = cause.actual; - chartPoint.typical = cause.typical; - } - } - } - - if (record.multi_bucket_impact !== undefined) { - chartPoint.multiBucketImpact = record.multi_bucket_impact; - } - }); - - // Add a scheduledEvents property to any points in the chart data set - // which correspond to times of scheduled events for the job. - if (scheduledEvents !== undefined) { - each(scheduledEvents, (events, time) => { - const chartPoint = findChartPointForTime(chartDataForPointSearch, Number(time)); - if (chartPoint !== undefined) { - // Note if the scheduled event coincides with an absence of the underlying metric data, - // we don't worry about plotting the event. - chartPoint.scheduledEvents = events; - } - }); - } - - return chartData; - } - - function getChartDataForPointSearch(chartData, record, chartType) { - if ( - chartType === CHART_TYPE.EVENT_DISTRIBUTION || - chartType === CHART_TYPE.POPULATION_DISTRIBUTION - ) { - return chartData.filter((d) => { - return d.entity === (record && (record.by_field_value || record.over_field_value)); - }); - } - - return chartData; - } - - function findChartPointForTime(chartData, time) { - return chartData.find((point) => point.date === time); - } - - Promise.all(seriesPromises) - .then((response) => { - // calculate an overall min/max for all series - const processedData = response.map(processChartData); - const allDataPoints = reduce( - processedData, - (datapoints, series) => { - each(series, (d) => datapoints.push(d)); - return datapoints; - }, - [] - ); - const overallChartLimits = chartLimits(allDataPoints); - - data.seriesToPlot = response.map((d, i) => { - return { - ...seriesCongifsForPromises[i], - loading: false, - chartData: processedData[i], - plotEarliest: chartRange.min, - plotLatest: chartRange.max, - selectedEarliest: selectedEarliestMs, - selectedLatest: selectedLatestMs, - chartLimits: USE_OVERALL_CHART_LIMITS - ? overallChartLimits - : chartLimits(processedData[i]), - }; - }); - - if (mapData.length) { - // push map data in if it's available - data.seriesToPlot.push(...mapData); - } - explorerService.setCharts({ ...data }); - }) - .catch((error) => { - console.error(error); - }); -}; - -function processRecordsForDisplay(anomalyRecords) { - // Aggregate the anomaly data by detector, and entity (by/over/partition). - if (anomalyRecords.length === 0) { - return [[], undefined]; - } - - // Aggregate by job, detector, and analysis fields (partition, by, over). - const aggregatedData = {}; - - const jobsErrorMessage = {}; - each(anomalyRecords, (record) => { - // Check if we can plot a chart for this record, depending on whether the source data - // is chartable, and if model plot is enabled for the job. - const job = mlJobService.getJob(record.job_id); - - // if we already know this job has datafeed aggregations we cannot support - // no need to do more checks - if (jobsErrorMessage[record.job_id] !== undefined) { - return; - } - - let isChartable = - isSourceDataChartableForDetector(job, record.detector_index) || - isMappableJob(job, record.detector_index); - - if (isChartable === false) { - if (isModelPlotChartableForDetector(job, record.detector_index)) { - // Check if model plot is enabled for this job. - // Need to check the entity fields for the record in case the model plot config has a terms list. - const entityFields = getEntityFieldList(record); - if (isModelPlotEnabled(job, record.detector_index, entityFields)) { - isChartable = true; - } else { - isChartable = false; - jobsErrorMessage[record.job_id] = i18n.translate( - 'xpack.ml.timeSeriesJob.sourceDataNotChartableWithDisabledModelPlotMessage', - { - defaultMessage: - 'source data is not viewable for this detector and model plot is disabled', - } - ); - } - } else { - jobsErrorMessage[record.job_id] = i18n.translate( - 'xpack.ml.timeSeriesJob.sourceDataModelPlotNotChartableMessage', - { - defaultMessage: 'both source data and model plot are not chartable for this detector', - } - ); - } - } - - if (isChartable === false) { - return; - } - const jobId = record.job_id; - if (aggregatedData[jobId] === undefined) { - aggregatedData[jobId] = {}; - } - const detectorsForJob = aggregatedData[jobId]; - - const detectorIndex = record.detector_index; - if (detectorsForJob[detectorIndex] === undefined) { - detectorsForJob[detectorIndex] = {}; - } - - // TODO - work out how best to display results from detectors with just an over field. - const firstFieldName = - record.partition_field_name || record.by_field_name || record.over_field_name; - const firstFieldValue = - record.partition_field_value || record.by_field_value || record.over_field_value; - if (firstFieldName !== undefined) { - const groupsForDetector = detectorsForJob[detectorIndex]; - - if (groupsForDetector[firstFieldName] === undefined) { - groupsForDetector[firstFieldName] = {}; - } - const valuesForGroup = groupsForDetector[firstFieldName]; - if (valuesForGroup[firstFieldValue] === undefined) { - valuesForGroup[firstFieldValue] = {}; - } - - const dataForGroupValue = valuesForGroup[firstFieldValue]; - - let isSecondSplit = false; - if (record.partition_field_name !== undefined) { - const splitFieldName = record.over_field_name || record.by_field_name; - if (splitFieldName !== undefined) { - isSecondSplit = true; - } - } - - if (isSecondSplit === false) { - if (dataForGroupValue.maxScoreRecord === undefined) { - dataForGroupValue.maxScore = record.record_score; - dataForGroupValue.maxScoreRecord = record; - } else { - if (record.record_score > dataForGroupValue.maxScore) { - dataForGroupValue.maxScore = record.record_score; - dataForGroupValue.maxScoreRecord = record; - } - } - } else { - // Aggregate another level for the over or by field. - const secondFieldName = record.over_field_name || record.by_field_name; - const secondFieldValue = record.over_field_value || record.by_field_value; - - if (dataForGroupValue[secondFieldName] === undefined) { - dataForGroupValue[secondFieldName] = {}; - } - - const splitsForGroup = dataForGroupValue[secondFieldName]; - if (splitsForGroup[secondFieldValue] === undefined) { - splitsForGroup[secondFieldValue] = {}; - } - - const dataForSplitValue = splitsForGroup[secondFieldValue]; - if (dataForSplitValue.maxScoreRecord === undefined) { - dataForSplitValue.maxScore = record.record_score; - dataForSplitValue.maxScoreRecord = record; - } else { - if (record.record_score > dataForSplitValue.maxScore) { - dataForSplitValue.maxScore = record.record_score; - dataForSplitValue.maxScoreRecord = record; - } - } - } - } else { - // Detector with no partition or by field. - const dataForDetector = detectorsForJob[detectorIndex]; - if (dataForDetector.maxScoreRecord === undefined) { - dataForDetector.maxScore = record.record_score; - dataForDetector.maxScoreRecord = record; - } else { - if (record.record_score > dataForDetector.maxScore) { - dataForDetector.maxScore = record.record_score; - dataForDetector.maxScoreRecord = record; - } - } - } - }); - - // Group job id by error message instead of by job: - const errorMessages = {}; - Object.keys(jobsErrorMessage).forEach((jobId) => { - const msg = jobsErrorMessage[jobId]; - if (errorMessages[msg] === undefined) { - errorMessages[msg] = new Set([jobId]); - } else { - errorMessages[msg].add(jobId); - } - }); - let recordsForSeries = []; - // Convert to an array of the records with the highest record_score per unique series. - each(aggregatedData, (detectorsForJob) => { - each(detectorsForJob, (groupsForDetector) => { - if (groupsForDetector.errorMessage !== undefined) { - recordsForSeries.push(groupsForDetector.errorMessage); - } else { - if (groupsForDetector.maxScoreRecord !== undefined) { - // Detector with no partition / by field. - recordsForSeries.push(groupsForDetector.maxScoreRecord); - } else { - each(groupsForDetector, (valuesForGroup) => { - each(valuesForGroup, (dataForGroupValue) => { - if (dataForGroupValue.maxScoreRecord !== undefined) { - recordsForSeries.push(dataForGroupValue.maxScoreRecord); - } else { - // Second level of aggregation for partition and by/over. - each(dataForGroupValue, (splitsForGroup) => { - each(splitsForGroup, (dataForSplitValue) => { - recordsForSeries.push(dataForSplitValue.maxScoreRecord); - }); - }); - } - }); - }); - } - } - }); - }); - recordsForSeries = sortBy(recordsForSeries, 'record_score').reverse(); - - return [recordsForSeries, errorMessages]; -} - -function calculateChartRange( - seriesConfigs, - selectedEarliestMs, - selectedLatestMs, - chartWidth, - recordsToPlot, - timeFieldName -) { - let tooManyBuckets = false; - // Calculate the time range for the charts. - // Fit in as many points in the available container width plotted at the job bucket span. - // Look for the chart with the shortest bucket span as this determines - // the length of the time range that can be plotted. - const midpointMs = Math.ceil((selectedEarliestMs + selectedLatestMs) / 2); - const minBucketSpanMs = Math.min.apply(null, map(seriesConfigs, 'bucketSpanSeconds')) * 1000; - const maxBucketSpanMs = Math.max.apply(null, map(seriesConfigs, 'bucketSpanSeconds')) * 1000; - - const pointsToPlotFullSelection = Math.ceil( - (selectedLatestMs - selectedEarliestMs) / minBucketSpanMs - ); - - // Optimally space points 5px apart. - const optimumPointSpacing = 5; - const optimumNumPoints = chartWidth / optimumPointSpacing; - - // Increase actual number of points if we can't plot the selected range - // at optimal point spacing. - const plotPoints = Math.max(optimumNumPoints, pointsToPlotFullSelection); - const halfPoints = Math.ceil(plotPoints / 2); - const timefilter = getTimefilter(); - const bounds = timefilter.getActiveBounds(); - const boundsMin = bounds.min.valueOf(); - - let chartRange = { - min: Math.max(midpointMs - halfPoints * minBucketSpanMs, boundsMin), - max: Math.min(midpointMs + halfPoints * minBucketSpanMs, bounds.max.valueOf()), - }; - - if (plotPoints > CHART_MAX_POINTS) { - // For each series being plotted, display the record with the highest score if possible. - const maxTimeSpan = minBucketSpanMs * CHART_MAX_POINTS; - let minMs = recordsToPlot[0][timeFieldName]; - let maxMs = recordsToPlot[0][timeFieldName]; - - each(recordsToPlot, (record) => { - const diffMs = maxMs - minMs; - if (diffMs < maxTimeSpan) { - const recordTime = record[timeFieldName]; - if (recordTime < minMs) { - if (maxMs - recordTime <= maxTimeSpan) { - minMs = recordTime; - } - } - - if (recordTime > maxMs) { - if (recordTime - minMs <= maxTimeSpan) { - maxMs = recordTime; - } - } - } - }); - - if (maxMs - minMs < maxTimeSpan) { - // Expand out before and after the span with the highest scoring anomalies, - // covering as much as the requested time span as possible. - // Work out if the high scoring region is nearer the start or end of the selected time span. - const diff = maxTimeSpan - (maxMs - minMs); - if (minMs - 0.5 * diff <= selectedEarliestMs) { - minMs = Math.max(selectedEarliestMs, minMs - 0.5 * diff); - maxMs = minMs + maxTimeSpan; - } else { - maxMs = Math.min(selectedLatestMs, maxMs + 0.5 * diff); - minMs = maxMs - maxTimeSpan; - } - } - - chartRange = { min: minMs, max: maxMs }; - } - - // Elasticsearch aggregation returns points at start of bucket, - // so align the min to the length of the longest bucket. - chartRange.min = Math.floor(chartRange.min / maxBucketSpanMs) * maxBucketSpanMs; - if (chartRange.min < boundsMin) { - chartRange.min = chartRange.min + maxBucketSpanMs; - } - - if ( - (chartRange.min > selectedEarliestMs || chartRange.max < selectedLatestMs) && - chartRange.max - chartRange.min < selectedLatestMs - selectedEarliestMs - ) { - tooManyBuckets = true; - } - - return { - chartRange, - tooManyBuckets, - }; -} diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.test.js deleted file mode 100644 index a2ad8efac67b4..0000000000000 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.test.js +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { cloneDeep } from 'lodash'; - -import mockAnomalyChartRecords from './__mocks__/mock_anomaly_chart_records.json'; -import mockDetectorsByJob from './__mocks__/mock_detectors_by_job.json'; -import mockJobConfig from './__mocks__/mock_job_config.json'; -import mockSeriesPromisesResponse from './__mocks__/mock_series_promises_response.json'; - -// Some notes on the tests and mocks: -// -// 'call anomalyChangeListener with actual series config' -// This test uses the standard mocks and uses the data as is provided via the mock files. -// The mocked services check for values in the data (e.g. 'mock-job-id', 'farequote-2017') -// and return the mock data from the files. -// -// 'filtering should skip values of null' -// This is is used to verify that values of `null` get filtered out but `0` is kept. -// The test clones mock data from files and adjusts job_id and indices to trigger -// suitable responses from the mocked services. The mocked services check against the -// provided alternative values and return specific modified mock responses for the test case. - -const mockJobConfigClone = cloneDeep(mockJobConfig); - -// adjust mock data to tests against null/0 values -const mockMetricClone = cloneDeep(mockSeriesPromisesResponse[0][0]); -mockMetricClone.results['1486712700000'] = null; -mockMetricClone.results['1486713600000'] = 0; - -jest.mock('../../services/job_service', () => ({ - mlJobService: { - getJob(jobId) { - // this is for 'call anomalyChangeListener with actual series config' - if (jobId === 'mock-job-id') { - return mockJobConfig; - } - // this is for 'filtering should skip values of null' - mockJobConfigClone.datafeed_config.indices = [`farequote-2017-${jobId}`]; - return mockJobConfigClone; - }, - detectorsByJob: mockDetectorsByJob, - }, -})); - -jest.mock('../../services/results_service', () => { - const { of } = require('rxjs'); - return { - mlResultsService: { - getMetricData(indices) { - // this is for 'call anomalyChangeListener with actual series config' - if (indices[0] === 'farequote-2017') { - return of(mockSeriesPromisesResponse[0][0]); - } - // this is for 'filtering should skip values of null' - return of(mockMetricClone); - }, - getRecordsForCriteria() { - return of(mockSeriesPromisesResponse[0][1]); - }, - getScheduledEventsByBucket() { - return of(mockSeriesPromisesResponse[0][2]); - }, - getEventDistributionData(indices) { - // this is for 'call anomalyChangeListener with actual series config' - if (indices[0] === 'farequote-2017') { - return Promise.resolve([]); - } - // this is for 'filtering should skip values of null' and - // resolves with a dummy object to trigger the processing - // of the event distribution chartdata filtering - return Promise.resolve([ - { - entity: 'mock', - }, - ]); - }, - }, - }; -}); - -jest.mock('../../util/string_utils', () => ({ - mlEscape(d) { - return d; - }, -})); - -jest.mock('../../util/dependency_cache', () => { - const dateMath = require('@elastic/datemath'); - let _time = undefined; - const timefilter = { - setTime: (time) => { - _time = time; - }, - getActiveBounds: () => { - return { - min: dateMath.parse(_time.from), - max: dateMath.parse(_time.to), - }; - }, - }; - return { - getTimefilter: () => timefilter, - }; -}); - -jest.mock('../explorer_dashboard_service', () => ({ - explorerService: { - setCharts: jest.fn(), - }, -})); - -import moment from 'moment'; -import { anomalyDataChange, getDefaultChartsData } from './explorer_charts_container_service'; -import { explorerService } from '../explorer_dashboard_service'; -import { getTimefilter } from '../../util/dependency_cache'; - -const timefilter = getTimefilter(); -timefilter.setTime({ - from: moment(1486425600000).toISOString(), // Feb 07 2017 - to: moment(1486857600000).toISOString(), // Feb 12 2017 -}); - -describe('explorerChartsContainerService', () => { - afterEach(() => { - explorerService.setCharts.mockClear(); - }); - - test('call anomalyChangeListener with empty series config', (done) => { - anomalyDataChange(1140, [], 1486656000000, 1486670399999); - - setImmediate(() => { - expect(explorerService.setCharts.mock.calls.length).toBe(1); - expect(explorerService.setCharts.mock.calls[0][0]).toStrictEqual({ - ...getDefaultChartsData(), - chartsPerRow: 2, - }); - done(); - }); - }); - - test('call anomalyChangeListener with actual series config', (done) => { - anomalyDataChange(1140, mockAnomalyChartRecords, 1486656000000, 1486670399999); - - setImmediate(() => { - expect(explorerService.setCharts.mock.calls.length).toBe(2); - expect(explorerService.setCharts.mock.calls[0][0]).toMatchSnapshot(); - expect(explorerService.setCharts.mock.calls[1][0]).toMatchSnapshot(); - done(); - }); - }); - - test('filtering should skip values of null', (done) => { - const mockAnomalyChartRecordsClone = cloneDeep(mockAnomalyChartRecords).map((d) => { - d.job_id = 'mock-job-id-distribution'; - return d; - }); - - anomalyDataChange(1140, mockAnomalyChartRecordsClone, 1486656000000, 1486670399999); - - setImmediate(() => { - expect(explorerService.setCharts.mock.calls.length).toBe(2); - expect(explorerService.setCharts.mock.calls[0][0].seriesToPlot.length).toBe(1); - expect(explorerService.setCharts.mock.calls[1][0].seriesToPlot.length).toBe(1); - - // the mock source dataset has a length of 115. one data point has a value of `null`, - // and another one `0`. the received dataset should have a length of 114, - // it should remove the datapoint with `null` and keep the one with `0`. - const chartData = explorerService.setCharts.mock.calls[1][0].seriesToPlot[0].chartData; - expect(chartData).toHaveLength(114); - expect(chartData.filter((d) => d.value === 0)).toHaveLength(1); - expect(chartData.filter((d) => d.value === null)).toHaveLength(0); - done(); - }); - }); - - test('field value with trailing dot should not throw an error', (done) => { - const mockAnomalyChartRecordsClone = cloneDeep(mockAnomalyChartRecords); - mockAnomalyChartRecordsClone[1].partition_field_value = 'AAL.'; - - expect(() => { - anomalyDataChange(1140, mockAnomalyChartRecordsClone, 1486656000000, 1486670399999); - }).not.toThrow(); - - setImmediate(() => { - expect(explorerService.setCharts.mock.calls.length).toBe(2); - done(); - }); - }); -}); diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.ts b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.ts new file mode 100644 index 0000000000000..aa2eabbd4a38e --- /dev/null +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.ts @@ -0,0 +1,38 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/* + * Service for the container for the anomaly charts in the + * Machine Learning Explorer dashboard. + * The service processes the data required to draw each of the charts + * and manages the layout of the charts in the containing div. + */ + +import type { JobId } from '../../../../common/types/anomaly_detection_jobs'; +import { SeriesConfigWithMetadata } from '../../services/anomaly_explorer_charts_service'; + +export interface ExplorerChartSeriesErrorMessages { + [key: string]: Set; +} +export declare interface ExplorerChartsData { + chartsPerRow: number; + seriesToPlot: SeriesConfigWithMetadata[]; + tooManyBuckets: boolean; + timeFieldName: string; + errorMessages: ExplorerChartSeriesErrorMessages | undefined; +} + +export function getDefaultChartsData(): ExplorerChartsData { + return { + chartsPerRow: 1, + errorMessages: undefined, + seriesToPlot: [], + // default values, will update on every re-render + tooManyBuckets: false, + timeFieldName: 'timestamp', + }; +} diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_constants.ts b/x-pack/plugins/ml/public/application/explorer/explorer_constants.ts index 4ad0041df73e4..125ccf38b784d 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_constants.ts +++ b/x-pack/plugins/ml/public/application/explorer/explorer_constants.ts @@ -50,7 +50,9 @@ export const CHART_TYPE = { POPULATION_DISTRIBUTION: 'population_distribution', SINGLE_METRIC: 'single_metric', GEO_MAP: 'geo_map', -}; +} as const; + +export type ChartType = typeof CHART_TYPE[keyof typeof CHART_TYPE]; export const MAX_CATEGORY_EXAMPLES = 10; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_dashboard_service.ts b/x-pack/plugins/ml/public/application/explorer/explorer_dashboard_service.ts index cf632ce41ae3f..49707bc927361 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_dashboard_service.ts +++ b/x-pack/plugins/ml/public/application/explorer/explorer_dashboard_service.ts @@ -156,3 +156,5 @@ export const explorerService = { explorerAction$.next({ type: EXPLORER_ACTION.SET_VIEW_BY_PER_PAGE, payload }); }, }; + +export type ExplorerService = typeof explorerService; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_utils.d.ts b/x-pack/plugins/ml/public/application/explorer/explorer_utils.d.ts index 855106801cbb1..9e24a4349584e 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_utils.d.ts +++ b/x-pack/plugins/ml/public/application/explorer/explorer_utils.d.ts @@ -5,11 +5,13 @@ * 2.0. */ -import { Moment } from 'moment'; - import { AnnotationsTable } from '../../../common/types/annotations'; import { CombinedJob } from '../../../common/types/anomaly_detection_jobs'; import { SwimlaneType } from './explorer_constants'; +import { TimeRangeBounds } from '../util/time_buckets'; +import { RecordForInfluencer } from '../services/results_service/results_service'; +import { InfluencersFilterQuery } from '../../../common/types/es_client'; +import { MlResultsService } from '../services/results_service'; interface ClearedSelectedAnomaliesState { selectedCells: undefined; @@ -31,6 +33,10 @@ export declare interface SwimlaneData { interval: number; } +interface ChartRecord extends RecordForInfluencer { + function: string; +} + export declare interface OverallSwimlaneData extends SwimlaneData { earliest: number; latest: number; @@ -98,11 +104,6 @@ export declare interface ExplorerJob { export declare const createJobs: (jobs: CombinedJob[]) => ExplorerJob[]; -export declare interface TimeRangeBounds { - min: Moment | undefined; - max: Moment | undefined; -} - declare interface SwimlaneBounds { earliest: number; latest: number; @@ -132,17 +133,20 @@ export declare const loadAnomaliesTableData: ( fieldName: string, tableInterval: string, tableSeverity: number, - influencersFilterQuery: any + influencersFilterQuery: InfluencersFilterQuery ) => Promise; export declare const loadDataForCharts: ( + mlResultsService: MlResultsService, jobIds: string[], earliestMs: number, latestMs: number, influencers: any[], selectedCells: AppStateSelectedCells | undefined, - influencersFilterQuery: any -) => Promise; + influencersFilterQuery: InfluencersFilterQuery, + // choose whether or not to keep track of the request that could be out of date + takeLatestOnly: boolean +) => Promise; export declare const loadFilteredTopInfluencers: ( jobIds: string[], @@ -151,10 +155,11 @@ export declare const loadFilteredTopInfluencers: ( records: any[], influencers: any[], noInfluencersConfigured: boolean, - influencersFilterQuery: any + influencersFilterQuery: InfluencersFilterQuery ) => Promise; export declare const loadTopInfluencers: ( + mlResultsService: MlResultsService, selectedJobIds: string[], earliestMs: number, latestMs: number, @@ -178,7 +183,7 @@ export declare const loadViewByTopFieldValuesForSelectedTime: ( ) => Promise; export declare interface FilterData { - influencersFilterQuery: any; + influencersFilterQuery: InfluencersFilterQuery; filterActive: boolean; filteredFields: string[]; queryString: string; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_utils.js b/x-pack/plugins/ml/public/application/explorer/explorer_utils.js index 2f19cbc80f055..ea101d104f783 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_utils.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_utils.js @@ -26,7 +26,6 @@ import { import { parseInterval } from '../../../common/util/parse_interval'; import { ml } from '../services/ml_api_service'; import { mlJobService } from '../services/job_service'; -import { mlResultsService } from '../services/results_service'; import { getTimeBucketsFromCache } from '../util/time_buckets'; import { getTimefilter, getUiSettings } from '../util/dependency_cache'; @@ -65,6 +64,7 @@ export function getDefaultSwimlaneData() { } export async function loadFilteredTopInfluencers( + mlResultsService, jobIds, earliestMs, latestMs, @@ -125,6 +125,7 @@ export async function loadFilteredTopInfluencers( }); return await loadTopInfluencers( + mlResultsService, jobIds, earliestMs, latestMs, @@ -539,12 +540,17 @@ export async function loadAnomaliesTableData( // and avoid race conditions ending up with the wrong charts. let requestCount = 0; export async function loadDataForCharts( + mlResultsService, jobIds, earliestMs, latestMs, influencers = [], selectedCells, - influencersFilterQuery + influencersFilterQuery, + // choose whether or not to keep track of the request that could be out of date + // in Anomaly Explorer this is being used to ignore any request that are out of date + // but in embeddables, we might have multiple requests coming from multiple different panels + takeLatestOnly = true ) { return new Promise((resolve) => { // Just skip doing the request when this function @@ -573,7 +579,7 @@ export async function loadDataForCharts( ) .then((resp) => { // Ignore this response if it's returned by an out of date promise - if (newRequestCount < requestCount) { + if (takeLatestOnly && newRequestCount < requestCount) { resolve([]); } @@ -590,6 +596,7 @@ export async function loadDataForCharts( } export async function loadTopInfluencers( + mlResultsService, selectedJobIds, earliestMs, latestMs, diff --git a/x-pack/plugins/ml/public/application/explorer/reducers/explorer_reducer/state.ts b/x-pack/plugins/ml/public/application/explorer/reducers/explorer_reducer/state.ts index 5d168c7827525..bb90fedfc2315 100644 --- a/x-pack/plugins/ml/public/application/explorer/reducers/explorer_reducer/state.ts +++ b/x-pack/plugins/ml/public/application/explorer/reducers/explorer_reducer/state.ts @@ -24,6 +24,7 @@ import { } from '../../explorer_utils'; import { AnnotationsTable } from '../../../../../common/types/annotations'; import { SWIM_LANE_DEFAULT_PAGE_SIZE } from '../../explorer_constants'; +import { InfluencersFilterQuery } from '../../../../../common/types/es_client'; export interface ExplorerState { annotations: AnnotationsTable; @@ -33,7 +34,7 @@ export interface ExplorerState { filteredFields: any[]; filterPlaceHolder: any; indexPattern: { title: string; fields: any[] }; - influencersFilterQuery: any; + influencersFilterQuery: InfluencersFilterQuery; influencers: Dictionary; isAndOperator: boolean; loading: boolean; diff --git a/x-pack/plugins/ml/public/application/explorer/swimlane_container.tsx b/x-pack/plugins/ml/public/application/explorer/swimlane_container.tsx index c108257094b6a..4adb79f065cd4 100644 --- a/x-pack/plugins/ml/public/application/explorer/swimlane_container.tsx +++ b/x-pack/plugins/ml/public/application/explorer/swimlane_container.tsx @@ -361,7 +361,7 @@ export const SwimlaneContainer: FC = ({ diff --git a/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx b/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx index e65ca22effd76..b651b311f13aa 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx @@ -37,6 +37,7 @@ import { JOB_ID } from '../../../../common/constants/anomalies'; import { MlAnnotationUpdatesContext } from '../../contexts/ml/ml_annotation_updates_context'; import { AnnotationUpdatesService } from '../../services/annotations_service'; import { useExplorerUrlState } from '../../explorer/hooks/use_explorer_url_state'; +import { useTimeBuckets } from '../../components/custom_hooks/use_time_buckets'; export const explorerRouteFactory = ( navigateToPath: NavigateToPath, @@ -84,6 +85,8 @@ const ExplorerUrlStateManager: FC = ({ jobsWithTim const [lastRefresh, setLastRefresh] = useState(0); const [stoppedPartitions, setStoppedPartitions] = useState(); const [invalidTimeRangeError, setInValidTimeRangeError] = useState(false); + + const timeBuckets = useTimeBuckets(); const timefilter = useTimefilter({ timeRangeSelector: true, autoRefreshSelector: true }); const { jobIds } = useJobSelection(jobsWithTimeRange); @@ -265,6 +268,8 @@ const ExplorerUrlStateManager: FC = ({ jobsWithTim stoppedPartitions, invalidTimeRangeError, selectedJobsRunning, + timeBuckets, + timefilter, }} /> diff --git a/x-pack/plugins/ml/public/application/routing/routes/timeseriesexplorer.tsx b/x-pack/plugins/ml/public/application/routing/routes/timeseriesexplorer.tsx index b6ad6b015a085..c06094b44f4a0 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/timeseriesexplorer.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/timeseriesexplorer.tsx @@ -17,7 +17,7 @@ import { NavigateToPath, useNotifications } from '../../contexts/kibana'; import { MlJobWithTimeRange } from '../../../../common/types/anomaly_detection_jobs'; import { TimeSeriesExplorer } from '../../timeseriesexplorer'; -import { getDateFormatTz, TimeRangeBounds } from '../../explorer/explorer_utils'; +import { getDateFormatTz } from '../../explorer/explorer_utils'; import { ml } from '../../services/ml_api_service'; import { mlJobService } from '../../services/job_service'; import { mlForecastService } from '../../services/forecast_service'; @@ -43,7 +43,8 @@ import { useToastNotificationService } from '../../services/toast_notification_s import { AnnotationUpdatesService } from '../../services/annotations_service'; import { MlAnnotationUpdatesContext } from '../../contexts/ml/ml_annotation_updates_context'; import { useTimeSeriesExplorerUrlState } from '../../timeseriesexplorer/hooks/use_timeseriesexplorer_url_state'; -import { TimeSeriesExplorerAppState } from '../../../../common/types/ml_url_generator'; +import type { TimeSeriesExplorerAppState } from '../../../../common/types/ml_url_generator'; +import type { TimeRangeBounds } from '../../util/time_buckets'; export const timeSeriesExplorerRouteFactory = ( navigateToPath: NavigateToPath, diff --git a/x-pack/plugins/ml/public/application/services/__mocks__/anomaly_detector_service.ts b/x-pack/plugins/ml/public/application/services/__mocks__/anomaly_detector_service.ts new file mode 100644 index 0000000000000..e36f8985f8ffe --- /dev/null +++ b/x-pack/plugins/ml/public/application/services/__mocks__/anomaly_detector_service.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const createAnomalyDetectorServiceMock = () => ({ + getJobs$: jest.fn(), +}); diff --git a/x-pack/plugins/ml/public/application/services/__mocks__/anomaly_explorer_charts_service.ts b/x-pack/plugins/ml/public/application/services/__mocks__/anomaly_explorer_charts_service.ts new file mode 100644 index 0000000000000..21f07ed9e5a3c --- /dev/null +++ b/x-pack/plugins/ml/public/application/services/__mocks__/anomaly_explorer_charts_service.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const createAnomalyExplorerChartsServiceMock = () => ({ + getCombinedJobs: jest.fn(), + getAnomalyData: jest.fn(), + setTimeRange: jest.fn(), + getTimeBounds: jest.fn(), +}); diff --git a/x-pack/plugins/ml/public/application/services/__mocks__/ml_api_services.ts b/x-pack/plugins/ml/public/application/services/__mocks__/ml_api_services.ts new file mode 100644 index 0000000000000..b63ae2f859b65 --- /dev/null +++ b/x-pack/plugins/ml/public/application/services/__mocks__/ml_api_services.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const mlApiServicesMock = { + jobs: { + jobForCloning: jest.fn(), + }, +}; diff --git a/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.test.ts b/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.test.ts new file mode 100644 index 0000000000000..36e18b49cfa84 --- /dev/null +++ b/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.test.ts @@ -0,0 +1,183 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { AnomalyExplorerChartsService } from './anomaly_explorer_charts_service'; +import mockAnomalyChartRecords from '../explorer/explorer_charts/__mocks__/mock_anomaly_chart_records.json'; +import mockJobConfig from '../explorer/explorer_charts/__mocks__/mock_job_config.json'; +import mockSeriesPromisesResponse from '../explorer/explorer_charts/__mocks__/mock_series_promises_response.json'; +import { of } from 'rxjs'; +import { cloneDeep } from 'lodash'; +import type { CombinedJob } from '../../../common/types/anomaly_detection_jobs'; +import type { ExplorerChartsData } from '../explorer/explorer_charts/explorer_charts_container_service'; +import type { ExplorerService } from '../explorer/explorer_dashboard_service'; +import type { MlApiServices } from './ml_api_service'; +import type { MlResultsService } from './results_service'; +import { getDefaultChartsData } from '../explorer/explorer_charts/explorer_charts_container_service'; +import { timefilterMock } from '../contexts/kibana/__mocks__/use_timefilter'; +import { mlApiServicesMock } from './__mocks__/ml_api_services'; + +// Some notes on the tests and mocks: +// +// 'call anomalyChangeListener with actual series config' +// This test uses the standard mocks and uses the data as is provided via the mock files. +// The mocked services check for values in the data (e.g. 'mock-job-id', 'farequote-2017') +// and return the mock data from the files. +// +// 'filtering should skip values of null' +// This is is used to verify that values of `null` get filtered out but `0` is kept. +// The test clones mock data from files and adjusts job_id and indices to trigger +// suitable responses from the mocked services. The mocked services check against the +// provided alternative values and return specific modified mock responses for the test case. + +const mockJobConfigClone = cloneDeep(mockJobConfig); + +// adjust mock data to tests against null/0 values +const mockMetricClone = cloneDeep(mockSeriesPromisesResponse[0][0]); +// @ts-ignore +mockMetricClone.results['1486712700000'] = null; +// @ts-ignore +mockMetricClone.results['1486713600000'] = 0; + +export const mlResultsServiceMock = { + getMetricData: jest.fn((indices) => { + // this is for 'call anomalyChangeListener with actual series config' + if (indices[0] === 'farequote-2017') { + return of(mockSeriesPromisesResponse[0][0]); + } + // this is for 'filtering should skip values of null' + return of(mockMetricClone); + }), + getRecordsForCriteria: jest.fn(() => { + return of(mockSeriesPromisesResponse[0][1]); + }), + getScheduledEventsByBucket: jest.fn(() => of(mockSeriesPromisesResponse[0][2])), + getEventDistributionData: jest.fn((indices) => { + // this is for 'call anomalyChangeListener with actual series config' + if (indices[0] === 'farequote-2017') { + return Promise.resolve([]); + } + // this is for 'filtering should skip values of null' and + // resolves with a dummy object to trigger the processing + // of the event distribution chartdata filtering + return Promise.resolve([ + { + entity: 'mock', + }, + ]); + }), +}; + +const assertAnomalyDataResult = (anomalyData: ExplorerChartsData) => { + expect(anomalyData.chartsPerRow).toBe(1); + expect(Array.isArray(anomalyData.seriesToPlot)).toBe(true); + expect(anomalyData.seriesToPlot.length).toBe(1); + expect(anomalyData.errorMessages).toMatchObject({}); + expect(anomalyData.tooManyBuckets).toBe(false); + expect(anomalyData.timeFieldName).toBe('timestamp'); +}; +describe('AnomalyExplorerChartsService', () => { + const jobId = 'mock-job-id'; + const combinedJobRecords = { + [jobId]: mockJobConfigClone, + }; + const anomalyExplorerService = new AnomalyExplorerChartsService( + timefilterMock, + (mlApiServicesMock as unknown) as MlApiServices, + (mlResultsServiceMock as unknown) as MlResultsService + ); + const explorerService = { + setCharts: jest.fn(), + }; + + const timeRange = { + earliestMs: 1486656000000, + latestMs: 1486670399999, + }; + + beforeEach(() => { + mlApiServicesMock.jobs.jobForCloning.mockImplementation(() => + Promise.resolve({ job: mockJobConfigClone, datafeed: mockJobConfigClone.datafeed_config }) + ); + }); + + afterEach(() => { + explorerService.setCharts.mockClear(); + }); + + test('should return anomaly data without explorer service', async () => { + const anomalyData = (await anomalyExplorerService.getAnomalyData( + undefined, + (combinedJobRecords as unknown) as Record, + 1000, + mockAnomalyChartRecords, + timeRange.earliestMs, + timeRange.latestMs, + timefilterMock, + 0, + 12 + )) as ExplorerChartsData; + assertAnomalyDataResult(anomalyData); + }); + + test('should set anomaly data with explorer service side effects', async () => { + await anomalyExplorerService.getAnomalyData( + (explorerService as unknown) as ExplorerService, + (combinedJobRecords as unknown) as Record, + 1000, + mockAnomalyChartRecords, + timeRange.earliestMs, + timeRange.latestMs, + timefilterMock, + 0, + 12 + ); + + expect(explorerService.setCharts.mock.calls.length).toBe(2); + assertAnomalyDataResult(explorerService.setCharts.mock.calls[0][0]); + assertAnomalyDataResult(explorerService.setCharts.mock.calls[1][0]); + }); + + test('call anomalyChangeListener with empty series config', async () => { + const anomalyData = (await anomalyExplorerService.getAnomalyData( + undefined, + // @ts-ignore + (combinedJobRecords as unknown) as Record, + 1000, + [], + timeRange.earliestMs, + timeRange.latestMs, + timefilterMock, + 0, + 12 + )) as ExplorerChartsData; + expect(anomalyData).toStrictEqual({ + ...getDefaultChartsData(), + chartsPerRow: 2, + }); + }); + + test('field value with trailing dot should not throw an error', async () => { + const mockAnomalyChartRecordsClone = cloneDeep(mockAnomalyChartRecords); + mockAnomalyChartRecordsClone[1].partition_field_value = 'AAL.'; + + const anomalyData = (await anomalyExplorerService.getAnomalyData( + undefined, + (combinedJobRecords as unknown) as Record, + 1000, + mockAnomalyChartRecordsClone, + timeRange.earliestMs, + timeRange.latestMs, + timefilterMock, + 0, + 12 + )) as ExplorerChartsData; + expect(anomalyData).toBeDefined(); + expect(anomalyData!.chartsPerRow).toBe(2); + expect(Array.isArray(anomalyData!.seriesToPlot)).toBe(true); + expect(anomalyData!.seriesToPlot.length).toBe(2); + }); +}); diff --git a/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.ts b/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.ts new file mode 100644 index 0000000000000..59b6860cb65b7 --- /dev/null +++ b/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.ts @@ -0,0 +1,1056 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { each, find, get, map, reduce, sortBy } from 'lodash'; +import { i18n } from '@kbn/i18n'; +import { RecordForInfluencer } from './results_service/results_service'; +import { + isMappableJob, + isModelPlotChartableForDetector, + isModelPlotEnabled, + isSourceDataChartableForDetector, + mlFunctionToESAggregation, +} from '../../../common/util/job_utils'; +import { EntityField, getEntityFieldList } from '../../../common/util/anomaly_utils'; +import { CombinedJob, Datafeed, JobId } from '../../../common/types/anomaly_detection_jobs'; +import { MlApiServices } from './ml_api_service'; +import { SWIM_LANE_LABEL_WIDTH } from '../explorer/swimlane_container'; +import { ES_AGGREGATION, ML_JOB_AGGREGATION } from '../../../common/constants/aggregation_types'; +import { parseInterval } from '../../../common/util/parse_interval'; +import { _DOC_COUNT, DOC_COUNT } from '../../../common/constants/field_types'; +import { getChartType, chartLimits } from '../util/chart_utils'; +import { CriteriaField, MlResultsService } from './results_service'; +import { TimefilterContract, TimeRange } from '../../../../../../src/plugins/data/public'; +import { CHART_TYPE, ChartType } from '../explorer/explorer_constants'; +import type { ChartRecord } from '../explorer/explorer_utils'; +import { RecordsForCriteria, ScheduledEventsByBucket } from './results_service/result_service_rx'; +import { isPopulatedObject } from '../../../common/util/object_utils'; +import type { ExplorerService } from '../explorer/explorer_dashboard_service'; +import { AnomalyRecordDoc } from '../../../common/types/anomalies'; +import { + ExplorerChartsData, + getDefaultChartsData, +} from '../explorer/explorer_charts/explorer_charts_container_service'; +import { TimeRangeBounds } from '../util/time_buckets'; +import { isDefined } from '../../../common/types/guards'; +const CHART_MAX_POINTS = 500; +const ANOMALIES_MAX_RESULTS = 500; +const MAX_SCHEDULED_EVENTS = 10; // Max number of scheduled events displayed per bucket. +const ML_TIME_FIELD_NAME = 'timestamp'; +const USE_OVERALL_CHART_LIMITS = false; +const MAX_CHARTS_PER_ROW = 4; + +interface ChartPoint { + date: number; + anomalyScore?: number; + actual?: number[]; + multiBucketImpact?: number; + typical?: number[]; + value?: number | null; + entity?: string; + byFieldName?: string; + numberOfCauses?: number; + scheduledEvents?: any[]; +} +interface MetricData { + results: Record; + success: boolean; +} +interface SeriesConfig { + jobId: JobId; + detectorIndex: number; + metricFunction: ML_JOB_AGGREGATION.LAT_LONG | ES_AGGREGATION | null; + timeField: string; + interval: string; + datafeedConfig: Datafeed; + summaryCountFieldName?: string; + metricFieldName?: string; +} + +interface InfoTooltip { + jobId: JobId; + aggregationInterval?: string; + chartFunction: string; + entityFields: EntityField[]; +} +export interface SeriesConfigWithMetadata extends SeriesConfig { + functionDescription?: string; + bucketSpanSeconds: number; + detectorLabel?: string; + fieldName: string; + entityFields: EntityField[]; + infoTooltip?: InfoTooltip; + loading?: boolean; + chartData?: ChartPoint[] | null; + mapData?: Array; +} + +export const isSeriesConfigWithMetadata = (arg: unknown): arg is SeriesConfigWithMetadata => { + return ( + isPopulatedObject(arg) && + {}.hasOwnProperty.call(arg, 'bucketSpanSeconds') && + {}.hasOwnProperty.call(arg, 'detectorLabel') + ); +}; + +interface ChartRange { + min: number; + max: number; +} + +export const DEFAULT_MAX_SERIES_TO_PLOT = 6; + +/** + * Service for retrieving anomaly explorer charts data. + */ +export class AnomalyExplorerChartsService { + private _customTimeRange: TimeRange | undefined; + + constructor( + private timeFilter: TimefilterContract, + private mlApiServices: MlApiServices, + private mlResultsService: MlResultsService + ) { + this.timeFilter.enableTimeRangeSelector(); + } + + public setTimeRange(timeRange: TimeRange) { + this._customTimeRange = timeRange; + } + + public getTimeBounds(): TimeRangeBounds { + return this._customTimeRange !== undefined + ? this.timeFilter.calculateBounds(this._customTimeRange) + : this.timeFilter.getBounds(); + } + + public calculateChartRange( + seriesConfigs: SeriesConfigWithMetadata[], + selectedEarliestMs: number, + selectedLatestMs: number, + chartWidth: number, + recordsToPlot: ChartRecord[], + timeFieldName: string, + timeFilter: TimefilterContract + ) { + let tooManyBuckets = false; + // Calculate the time range for the charts. + // Fit in as many points in the available container width plotted at the job bucket span. + // Look for the chart with the shortest bucket span as this determines + // the length of the time range that can be plotted. + const midpointMs = Math.ceil((selectedEarliestMs + selectedLatestMs) / 2); + const minBucketSpanMs = Math.min.apply(null, map(seriesConfigs, 'bucketSpanSeconds')) * 1000; + const maxBucketSpanMs = Math.max.apply(null, map(seriesConfigs, 'bucketSpanSeconds')) * 1000; + + const pointsToPlotFullSelection = Math.ceil( + (selectedLatestMs - selectedEarliestMs) / minBucketSpanMs + ); + + // Optimally space points 5px apart. + const optimumPointSpacing = 5; + const optimumNumPoints = chartWidth / optimumPointSpacing; + + // Increase actual number of points if we can't plot the selected range + // at optimal point spacing. + const plotPoints = Math.max(optimumNumPoints, pointsToPlotFullSelection); + const halfPoints = Math.ceil(plotPoints / 2); + const bounds = timeFilter.getActiveBounds(); + const boundsMin = bounds?.min ? bounds.min.valueOf() : undefined; + let chartRange: ChartRange = { + min: boundsMin + ? Math.max(midpointMs - halfPoints * minBucketSpanMs, boundsMin) + : midpointMs - halfPoints * minBucketSpanMs, + max: bounds?.max + ? Math.min(midpointMs + halfPoints * minBucketSpanMs, bounds.max.valueOf()) + : midpointMs + halfPoints * minBucketSpanMs, + }; + + if (plotPoints > CHART_MAX_POINTS) { + // For each series being plotted, display the record with the highest score if possible. + const maxTimeSpan = minBucketSpanMs * CHART_MAX_POINTS; + let minMs = recordsToPlot[0][timeFieldName]; + let maxMs = recordsToPlot[0][timeFieldName]; + + each(recordsToPlot, (record) => { + const diffMs = maxMs - minMs; + if (diffMs < maxTimeSpan) { + const recordTime = record[timeFieldName]; + if (recordTime < minMs) { + if (maxMs - recordTime <= maxTimeSpan) { + minMs = recordTime; + } + } + + if (recordTime > maxMs) { + if (recordTime - minMs <= maxTimeSpan) { + maxMs = recordTime; + } + } + } + }); + + if (maxMs - minMs < maxTimeSpan) { + // Expand out before and after the span with the highest scoring anomalies, + // covering as much as the requested time span as possible. + // Work out if the high scoring region is nearer the start or end of the selected time span. + const diff = maxTimeSpan - (maxMs - minMs); + if (minMs - 0.5 * diff <= selectedEarliestMs) { + minMs = Math.max(selectedEarliestMs, minMs - 0.5 * diff); + maxMs = minMs + maxTimeSpan; + } else { + maxMs = Math.min(selectedLatestMs, maxMs + 0.5 * diff); + minMs = maxMs - maxTimeSpan; + } + } + + chartRange = { min: minMs, max: maxMs }; + } + + // Elasticsearch aggregation returns points at start of bucket, + // so align the min to the length of the longest bucket. + chartRange.min = Math.floor(chartRange.min / maxBucketSpanMs) * maxBucketSpanMs; + if (boundsMin !== undefined && chartRange.min < boundsMin) { + chartRange.min = chartRange.min + maxBucketSpanMs; + } + + if ( + (chartRange.min > selectedEarliestMs || chartRange.max < selectedLatestMs) && + chartRange.max - chartRange.min < selectedLatestMs - selectedEarliestMs + ) { + tooManyBuckets = true; + } + + return { + chartRange, + tooManyBuckets, + }; + } + + public buildConfigFromDetector(job: CombinedJob, detectorIndex: number) { + const analysisConfig = job.analysis_config; + const detector = analysisConfig.detectors[detectorIndex]; + + const config: SeriesConfig = { + jobId: job.job_id, + detectorIndex, + metricFunction: + detector.function === ML_JOB_AGGREGATION.LAT_LONG + ? ML_JOB_AGGREGATION.LAT_LONG + : mlFunctionToESAggregation(detector.function), + timeField: job.data_description.time_field, + interval: job.analysis_config.bucket_span, + datafeedConfig: job.datafeed_config, + summaryCountFieldName: job.analysis_config.summary_count_field_name, + metricFieldName: undefined, + }; + + if (detector.field_name !== undefined) { + config.metricFieldName = detector.field_name; + } + + // Extra checks if the job config uses a summary count field. + const summaryCountFieldName = analysisConfig.summary_count_field_name; + if ( + config.metricFunction === ES_AGGREGATION.COUNT && + summaryCountFieldName !== undefined && + summaryCountFieldName !== DOC_COUNT && + summaryCountFieldName !== _DOC_COUNT + ) { + // Check for a detector looking at cardinality (distinct count) using an aggregation. + // The cardinality field will be in: + // aggregations//aggregations//cardinality/field + // or aggs//aggs//cardinality/field + let cardinalityField; + const topAgg = get(job.datafeed_config, 'aggregations') || get(job.datafeed_config, 'aggs'); + if (topAgg !== undefined && Object.values(topAgg).length > 0) { + cardinalityField = + get(Object.values(topAgg)[0], [ + 'aggregations', + summaryCountFieldName, + ES_AGGREGATION.CARDINALITY, + 'field', + ]) || + get(Object.values(topAgg)[0], [ + 'aggs', + summaryCountFieldName, + ES_AGGREGATION.CARDINALITY, + 'field', + ]); + } + if ( + (detector.function === ML_JOB_AGGREGATION.NON_ZERO_COUNT || + detector.function === ML_JOB_AGGREGATION.LOW_NON_ZERO_COUNT || + detector.function === ML_JOB_AGGREGATION.HIGH_NON_ZERO_COUNT || + detector.function === ML_JOB_AGGREGATION.COUNT || + detector.function === ML_JOB_AGGREGATION.HIGH_COUNT || + detector.function === ML_JOB_AGGREGATION.LOW_COUNT) && + cardinalityField !== undefined + ) { + config.metricFunction = ES_AGGREGATION.CARDINALITY; + config.metricFieldName = undefined; + } else { + // For count detectors using summary_count_field, plot sum(summary_count_field_name) + config.metricFunction = ES_AGGREGATION.SUM; + config.metricFieldName = summaryCountFieldName; + } + } + + return config; + } + + public buildConfig(record: ChartRecord, job: CombinedJob): SeriesConfigWithMetadata { + const detectorIndex = record.detector_index; + const config: Omit< + SeriesConfigWithMetadata, + 'bucketSpanSeconds' | 'detectorLabel' | 'fieldName' | 'entityFields' | 'infoTooltip' + > = { + ...this.buildConfigFromDetector(job, detectorIndex), + }; + + const fullSeriesConfig: SeriesConfigWithMetadata = { + bucketSpanSeconds: 0, + entityFields: [], + fieldName: '', + ...config, + }; + // Add extra properties used by the explorer dashboard charts. + fullSeriesConfig.functionDescription = record.function_description; + + const parsedBucketSpan = parseInterval(job.analysis_config.bucket_span); + if (parsedBucketSpan !== null) { + fullSeriesConfig.bucketSpanSeconds = parsedBucketSpan.asSeconds(); + } + + fullSeriesConfig.detectorLabel = record.function; + const jobDetectors = job.analysis_config.detectors; + if (jobDetectors) { + fullSeriesConfig.detectorLabel = jobDetectors[detectorIndex].detector_description; + } else { + if (record.field_name !== undefined) { + fullSeriesConfig.detectorLabel += ` ${fullSeriesConfig.fieldName}`; + } + } + + if (record.field_name !== undefined) { + fullSeriesConfig.fieldName = record.field_name; + fullSeriesConfig.metricFieldName = record.field_name; + } + + // Add the 'entity_fields' i.e. the partition, by, over fields which + // define the metric series to be plotted. + fullSeriesConfig.entityFields = getEntityFieldList(record); + + if (record.function === ML_JOB_AGGREGATION.METRIC) { + fullSeriesConfig.metricFunction = mlFunctionToESAggregation(record.function_description); + } + + // Build the tooltip data for the chart info icon, showing further details on what is being plotted. + let functionLabel = `${config.metricFunction}`; + if ( + fullSeriesConfig.metricFieldName !== undefined && + fullSeriesConfig.metricFieldName !== null + ) { + functionLabel += ` ${fullSeriesConfig.metricFieldName}`; + } + + fullSeriesConfig.infoTooltip = { + jobId: record.job_id, + aggregationInterval: fullSeriesConfig.interval, + chartFunction: functionLabel, + entityFields: fullSeriesConfig.entityFields.map((f) => ({ + fieldName: f.fieldName, + fieldValue: f.fieldValue, + })), + }; + + return fullSeriesConfig; + } + public async getCombinedJobs(jobIds: string[]): Promise { + const combinedResults = await Promise.all( + // Getting only necessary job config and datafeed config without the stats + jobIds.map((jobId) => this.mlApiServices.jobs.jobForCloning(jobId)) + ); + const combinedJobs = combinedResults + .filter(isDefined) + .filter((r) => r.job !== undefined && r.datafeed !== undefined) + .map(({ job, datafeed }) => ({ ...job, datafeed_config: datafeed } as CombinedJob)); + return combinedJobs; + } + + public async getAnomalyData( + explorerService: ExplorerService | undefined, + combinedJobRecords: Record, + chartsContainerWidth: number, + anomalyRecords: ChartRecord[] | undefined, + selectedEarliestMs: number, + selectedLatestMs: number, + timefilter: TimefilterContract, + severity = 0, + maxSeries = DEFAULT_MAX_SERIES_TO_PLOT + ): Promise { + const data = getDefaultChartsData(); + + const containerWith = chartsContainerWidth + SWIM_LANE_LABEL_WIDTH; + if (anomalyRecords === undefined) return; + const filteredRecords = anomalyRecords.filter((record) => { + return Number(record.record_score) >= severity; + }); + const { records: allSeriesRecords, errors: errorMessages } = this.processRecordsForDisplay( + combinedJobRecords, + filteredRecords + ); + + if (!Array.isArray(allSeriesRecords)) return; + // Calculate the number of charts per row, depending on the width available, to a max of 4. + let chartsPerRow = Math.min(Math.max(Math.floor(containerWith / 550), 1), MAX_CHARTS_PER_ROW); + + // Expand the chart to full size if there's only one viewable chart + if (allSeriesRecords.length === 1 || maxSeries === 1) { + chartsPerRow = 1; + } + + // Expand the charts to not have blank space in the row if necessary + if (maxSeries < chartsPerRow) { + chartsPerRow = maxSeries; + } + + data.chartsPerRow = chartsPerRow; + + // Build the data configs of the anomalies to be displayed. + // TODO - implement paging? + // For now just take first 6 (or 8 if 4 charts per row). + const maxSeriesToPlot = maxSeries ?? Math.max(chartsPerRow * 2, 6); + const recordsToPlot = allSeriesRecords.slice(0, maxSeriesToPlot); + const hasGeoData = recordsToPlot.find( + (record) => (record.function_description || record.function) === ML_JOB_AGGREGATION.LAT_LONG + ); + const seriesConfigs = recordsToPlot.map((record) => + this.buildConfig(record, combinedJobRecords[record.job_id]) + ); + const seriesConfigsNoGeoData = []; + // initialize the charts with loading indicators + data.seriesToPlot = seriesConfigs.map((config) => ({ + ...config, + loading: true, + chartData: null, + })); + + const mapData: SeriesConfigWithMetadata[] = []; + + if (hasGeoData !== undefined) { + for (let i = 0; i < seriesConfigs.length; i++) { + const config = seriesConfigs[i]; + let records; + if ( + config.detectorLabel !== undefined && + config.detectorLabel.includes(ML_JOB_AGGREGATION.LAT_LONG) + ) { + if (config.entityFields.length) { + records = [ + recordsToPlot.find((record) => { + const entityFieldName = config.entityFields[0].fieldName; + const entityFieldValue = config.entityFields[0].fieldValue; + return (record[entityFieldName] && record[entityFieldName][0]) === entityFieldValue; + }), + ]; + } else { + records = recordsToPlot; + } + + mapData.push({ + ...config, + loading: false, + mapData: records, + }); + } else { + seriesConfigsNoGeoData.push(config); + } + } + } + + // Calculate the time range of the charts, which is a function of the chart width and max job bucket span. + data.tooManyBuckets = false; + const chartWidth = Math.floor(containerWith / chartsPerRow); + const { chartRange, tooManyBuckets } = this.calculateChartRange( + seriesConfigs as SeriesConfigWithMetadata[], + selectedEarliestMs, + selectedLatestMs, + chartWidth, + recordsToPlot, + data.timeFieldName, + timefilter + ); + data.tooManyBuckets = tooManyBuckets; + + if (errorMessages) { + data.errorMessages = errorMessages; + } + + if (explorerService) { + explorerService.setCharts({ ...data }); + } + if (seriesConfigs.length === 0) { + return data; + } + + // Query 1 - load the raw metric data. + function getMetricData( + mlResultsService: MlResultsService, + config: SeriesConfigWithMetadata, + range: ChartRange + ): Promise { + const { jobId, detectorIndex, entityFields, bucketSpanSeconds } = config; + + const job = combinedJobRecords[jobId]; + + // If the job uses aggregation or scripted fields, and if it's a config we don't support + // use model plot data if model plot is enabled + // else if source data can be plotted, use that, otherwise model plot will be available. + const useSourceData = isSourceDataChartableForDetector(job, detectorIndex); + if (useSourceData === true) { + const datafeedQuery = get(config, 'datafeedConfig.query', null); + return mlResultsService + .getMetricData( + Array.isArray(config.datafeedConfig.indices) + ? config.datafeedConfig.indices[0] + : config.datafeedConfig.indices, + entityFields, + datafeedQuery, + config.metricFunction, + config.metricFieldName, + config.summaryCountFieldName, + config.timeField, + range.min, + range.max, + bucketSpanSeconds * 1000, + config.datafeedConfig + ) + .toPromise(); + } else { + // Extract the partition, by, over fields on which to filter. + const criteriaFields: CriteriaField[] = []; + const detector = job.analysis_config.detectors[detectorIndex]; + if (detector.partition_field_name !== undefined) { + const partitionEntity = find(entityFields, { + fieldName: detector.partition_field_name, + }); + if (partitionEntity !== undefined) { + criteriaFields.push( + { fieldName: 'partition_field_name', fieldValue: partitionEntity.fieldName }, + { fieldName: 'partition_field_value', fieldValue: partitionEntity.fieldValue } + ); + } + } + + if (detector.over_field_name !== undefined) { + const overEntity = find(entityFields, { fieldName: detector.over_field_name }); + if (overEntity !== undefined) { + criteriaFields.push( + { fieldName: 'over_field_name', fieldValue: overEntity.fieldName }, + { fieldName: 'over_field_value', fieldValue: overEntity.fieldValue } + ); + } + } + + if (detector.by_field_name !== undefined) { + const byEntity = find(entityFields, { fieldName: detector.by_field_name }); + if (byEntity !== undefined) { + criteriaFields.push( + { fieldName: 'by_field_name', fieldValue: byEntity.fieldName }, + { fieldName: 'by_field_value', fieldValue: byEntity.fieldValue } + ); + } + } + + return new Promise((resolve, reject) => { + const obj = { + success: true, + results: {} as Record, + }; + + return mlResultsService + .getModelPlotOutput( + jobId, + detectorIndex, + criteriaFields, + range.min, + range.max, + bucketSpanSeconds * 1000 + ) + .toPromise() + .then((resp) => { + // Return data in format required by the explorer charts. + const results = resp.results; + Object.keys(results).forEach((time) => { + obj.results[time] = results[time].actual; + }); + resolve(obj); + }) + .catch((resp) => { + reject(resp); + }); + }); + } + } + + // Query 2 - load the anomalies. + // Criteria to return the records for this series are the detector_index plus + // the specific combination of 'entity' fields i.e. the partition / by / over fields. + function getRecordsForCriteria( + mlResultsService: MlResultsService, + config: SeriesConfigWithMetadata, + range: ChartRange + ) { + let criteria: EntityField[] = []; + criteria.push({ fieldName: 'detector_index', fieldValue: config.detectorIndex }); + criteria = criteria.concat(config.entityFields); + return mlResultsService + .getRecordsForCriteria( + [config.jobId], + criteria, + 0, + range.min, + range.max, + ANOMALIES_MAX_RESULTS + ) + .toPromise(); + } + + // Query 3 - load any scheduled events for the job. + function getScheduledEvents( + mlResultsService: MlResultsService, + config: SeriesConfigWithMetadata, + range: ChartRange + ) { + return mlResultsService + .getScheduledEventsByBucket( + [config.jobId], + range.min, + range.max, + config.bucketSpanSeconds * 1000, + 1, + MAX_SCHEDULED_EVENTS + ) + .toPromise(); + } + + // Query 4 - load context data distribution + function getEventDistribution( + mlResultsService: MlResultsService, + config: SeriesConfigWithMetadata, + range: ChartRange + ) { + const chartType = getChartType(config); + + let splitField; + let filterField = null; + + // Define splitField and filterField based on chartType + if (chartType === CHART_TYPE.EVENT_DISTRIBUTION) { + splitField = config.entityFields.find((f) => f.fieldType === 'by'); + filterField = config.entityFields.find((f) => f.fieldType === 'partition'); + } else if (chartType === CHART_TYPE.POPULATION_DISTRIBUTION) { + splitField = config.entityFields.find((f) => f.fieldType === 'over'); + filterField = config.entityFields.find((f) => f.fieldType === 'partition'); + } + + const datafeedQuery = get(config, 'datafeedConfig.query', null); + return mlResultsService.getEventDistributionData( + Array.isArray(config.datafeedConfig.indices) + ? config.datafeedConfig.indices[0] + : config.datafeedConfig.indices, + splitField, + filterField, + datafeedQuery, + config.metricFunction, + config.metricFieldName, + config.timeField, + range.min, + range.max, + config.bucketSpanSeconds * 1000 + ); + } + + // first load and wait for required data, + // only after that trigger data processing and page render. + // TODO - if query returns no results e.g. source data has been deleted, + // display a message saying 'No data between earliest/latest'. + const seriesPromises: Array< + Promise<[MetricData, RecordsForCriteria, ScheduledEventsByBucket, any]> + > = []; + // Use seriesConfigs list without geo data config so indices match up after seriesPromises are resolved and we map through the responses + const seriesConfigsForPromises = hasGeoData ? seriesConfigsNoGeoData : seriesConfigs; + seriesConfigsForPromises.forEach((seriesConfig) => { + seriesPromises.push( + Promise.all([ + getMetricData(this.mlResultsService, seriesConfig, chartRange), + getRecordsForCriteria(this.mlResultsService, seriesConfig, chartRange), + getScheduledEvents(this.mlResultsService, seriesConfig, chartRange), + getEventDistribution(this.mlResultsService, seriesConfig, chartRange), + ]) + ); + }); + function processChartData( + response: [MetricData, RecordsForCriteria, ScheduledEventsByBucket, any], + seriesIndex: number + ) { + const metricData = response[0].results; + const records = response[1].records; + const jobId = seriesConfigsForPromises[seriesIndex].jobId; + const scheduledEvents = response[2].events[jobId]; + const eventDistribution = response[3]; + const chartType = getChartType(seriesConfigsForPromises[seriesIndex]); + + // Sort records in ascending time order matching up with chart data + records.sort((recordA, recordB) => { + return recordA[ML_TIME_FIELD_NAME] - recordB[ML_TIME_FIELD_NAME]; + }); + + // Return dataset in format used by the chart. + // i.e. array of Objects with keys date (timestamp), value, + // plus anomalyScore for points with anomaly markers. + let chartData: ChartPoint[] = []; + if (metricData !== undefined) { + if (eventDistribution.length > 0 && records.length > 0) { + const filterField = records[0].by_field_value || records[0].over_field_value; + chartData = eventDistribution.filter((d: { entity: any }) => d.entity !== filterField); + map(metricData, (value, time) => { + // The filtering for rare/event_distribution charts needs to be handled + // differently because of how the source data is structured. + // For rare chart values we are only interested wether a value is either `0` or not, + // `0` acts like a flag in the chart whether to display the dot/marker. + // All other charts (single metric, population) are metric based and with + // those a value of `null` acts as the flag to hide a data point. + if ( + (chartType === CHART_TYPE.EVENT_DISTRIBUTION && value > 0) || + (chartType !== CHART_TYPE.EVENT_DISTRIBUTION && value !== null) + ) { + chartData.push({ + date: +time, + value, + entity: filterField, + }); + } + }); + } else { + chartData = map(metricData, (value, time) => ({ + date: +time, + value, + })); + } + } + + // Iterate through the anomaly records, adding anomalyScore properties + // to the chartData entries for anomalous buckets. + const chartDataForPointSearch = getChartDataForPointSearch(chartData, records[0], chartType); + each(records, (record) => { + // Look for a chart point with the same time as the record. + // If none found, insert a point for anomalies due to a gap in the data. + const recordTime = record[ML_TIME_FIELD_NAME]; + let chartPoint = findChartPointForTime(chartDataForPointSearch, recordTime); + if (chartPoint === undefined) { + chartPoint = { date: recordTime, value: null }; + chartData.push(chartPoint); + } + if (chartPoint !== undefined) { + chartPoint.anomalyScore = record.record_score; + + if (record.actual !== undefined) { + chartPoint.actual = record.actual; + chartPoint.typical = record.typical; + } else { + const causes = get(record, 'causes', []); + if (causes.length > 0) { + chartPoint.byFieldName = record.by_field_name; + chartPoint.numberOfCauses = causes.length; + if (causes.length === 1) { + // If only a single cause, copy actual and typical values to the top level. + const cause = record.causes[0]; + chartPoint.actual = cause.actual; + chartPoint.typical = cause.typical; + } + } + } + + if (record.multi_bucket_impact !== undefined) { + chartPoint.multiBucketImpact = record.multi_bucket_impact; + } + } + }); + + // Add a scheduledEvents property to any points in the chart data set + // which correspond to times of scheduled events for the job. + if (scheduledEvents !== undefined) { + each(scheduledEvents, (events, time) => { + const chartPoint = findChartPointForTime(chartDataForPointSearch, Number(time)); + if (chartPoint !== undefined) { + // Note if the scheduled event coincides with an absence of the underlying metric data, + // we don't worry about plotting the event. + chartPoint.scheduledEvents = events; + } + }); + } + + return chartData; + } + + function getChartDataForPointSearch( + chartData: ChartPoint[], + record: AnomalyRecordDoc, + chartType: ChartType + ) { + if ( + chartType === CHART_TYPE.EVENT_DISTRIBUTION || + chartType === CHART_TYPE.POPULATION_DISTRIBUTION + ) { + return chartData.filter((d) => { + return d.entity === (record && (record.by_field_value || record.over_field_value)); + }); + } + + return chartData; + } + + function findChartPointForTime(chartData: ChartPoint[], time: number) { + return chartData.find((point) => point.date === time); + } + + return Promise.all(seriesPromises) + .then((response) => { + // calculate an overall min/max for all series + const processedData = response.map(processChartData); + const allDataPoints = reduce( + processedData, + (datapoints, series) => { + each(series, (d) => datapoints.push(d)); + return datapoints; + }, + [] as ChartPoint[] + ); + const overallChartLimits = chartLimits(allDataPoints); + + data.seriesToPlot = response.map((d, i) => { + return { + ...seriesConfigsForPromises[i], + loading: false, + chartData: processedData[i], + plotEarliest: chartRange.min, + plotLatest: chartRange.max, + selectedEarliest: selectedEarliestMs, + selectedLatest: selectedLatestMs, + chartLimits: USE_OVERALL_CHART_LIMITS + ? overallChartLimits + : chartLimits(processedData[i]), + }; + }); + + if (mapData.length) { + // push map data in if it's available + data.seriesToPlot.push(...mapData); + } + if (explorerService) { + explorerService.setCharts({ ...data }); + } + return Promise.resolve(data); + }) + .catch((error) => { + // eslint-disable-next-line no-console + console.error(error); + }); + } + + public processRecordsForDisplay( + jobRecords: Record, + anomalyRecords: RecordForInfluencer[] + ): { records: ChartRecord[]; errors: Record> | undefined } { + // Aggregate the anomaly data by detector, and entity (by/over/partition). + if (anomalyRecords.length === 0) { + return { records: [], errors: undefined }; + } + // Aggregate by job, detector, and analysis fields (partition, by, over). + const aggregatedData: Record = {}; + + const jobsErrorMessage: Record = {}; + each(anomalyRecords, (record) => { + // Check if we can plot a chart for this record, depending on whether the source data + // is chartable, and if model plot is enabled for the job. + + const job = jobRecords[record.job_id]; + + // if we already know this job has datafeed aggregations we cannot support + // no need to do more checks + if (jobsErrorMessage[record.job_id] !== undefined) { + return; + } + + let isChartable = + isSourceDataChartableForDetector(job, record.detector_index) || + isMappableJob(job, record.detector_index); + + if (isChartable === false) { + if (isModelPlotChartableForDetector(job, record.detector_index)) { + // Check if model plot is enabled for this job. + // Need to check the entity fields for the record in case the model plot config has a terms list. + const entityFields = getEntityFieldList(record); + if (isModelPlotEnabled(job, record.detector_index, entityFields)) { + isChartable = true; + } else { + isChartable = false; + jobsErrorMessage[record.job_id] = i18n.translate( + 'xpack.ml.timeSeriesJob.sourceDataNotChartableWithDisabledModelPlotMessage', + { + defaultMessage: + 'source data is not viewable for this detector and model plot is disabled', + } + ); + } + } else { + jobsErrorMessage[record.job_id] = i18n.translate( + 'xpack.ml.timeSeriesJob.sourceDataModelPlotNotChartableMessage', + { + defaultMessage: 'both source data and model plot are not chartable for this detector', + } + ); + } + } + + if (isChartable === false) { + return; + } + const jobId = record.job_id; + if (aggregatedData[jobId] === undefined) { + aggregatedData[jobId] = {}; + } + const detectorsForJob = aggregatedData[jobId]; + + const detectorIndex = record.detector_index; + if (detectorsForJob[detectorIndex] === undefined) { + detectorsForJob[detectorIndex] = {}; + } + + // TODO - work out how best to display results from detectors with just an over field. + const firstFieldName = + record.partition_field_name || record.by_field_name || record.over_field_name; + const firstFieldValue = + record.partition_field_value || record.by_field_value || record.over_field_value; + if (firstFieldName !== undefined && firstFieldValue !== undefined) { + const groupsForDetector = detectorsForJob[detectorIndex]; + + if (groupsForDetector[firstFieldName] === undefined) { + groupsForDetector[firstFieldName] = {}; + } + const valuesForGroup: Record = groupsForDetector[firstFieldName]; + if (valuesForGroup[firstFieldValue] === undefined) { + valuesForGroup[firstFieldValue] = {}; + } + + const dataForGroupValue = valuesForGroup[firstFieldValue]; + + let isSecondSplit = false; + if (record.partition_field_name !== undefined) { + const splitFieldName = record.over_field_name || record.by_field_name; + if (splitFieldName !== undefined) { + isSecondSplit = true; + } + } + + if (isSecondSplit === false) { + if (dataForGroupValue.maxScoreRecord === undefined) { + dataForGroupValue.maxScore = record.record_score; + dataForGroupValue.maxScoreRecord = record; + } else { + if (record.record_score > dataForGroupValue.maxScore) { + dataForGroupValue.maxScore = record.record_score; + dataForGroupValue.maxScoreRecord = record; + } + } + } else { + // Aggregate another level for the over or by field. + const secondFieldName = record.over_field_name || record.by_field_name; + const secondFieldValue = record.over_field_value || record.by_field_value; + + if (secondFieldName !== undefined && secondFieldValue !== undefined) { + if (dataForGroupValue[secondFieldName] === undefined) { + dataForGroupValue[secondFieldName] = {}; + } + + const splitsForGroup = dataForGroupValue[secondFieldName]; + if (splitsForGroup[secondFieldValue] === undefined) { + splitsForGroup[secondFieldValue] = {}; + } + + const dataForSplitValue = splitsForGroup[secondFieldValue]; + if (dataForSplitValue.maxScoreRecord === undefined) { + dataForSplitValue.maxScore = record.record_score; + dataForSplitValue.maxScoreRecord = record; + } else { + if (record.record_score > dataForSplitValue.maxScore) { + dataForSplitValue.maxScore = record.record_score; + dataForSplitValue.maxScoreRecord = record; + } + } + } + } + } else { + // Detector with no partition or by field. + const dataForDetector = detectorsForJob[detectorIndex]; + if (dataForDetector.maxScoreRecord === undefined) { + dataForDetector.maxScore = record.record_score; + dataForDetector.maxScoreRecord = record; + } else { + if (record.record_score > dataForDetector.maxScore) { + dataForDetector.maxScore = record.record_score; + dataForDetector.maxScoreRecord = record; + } + } + } + }); + + // Group job id by error message instead of by job: + const errorMessages: Record> | undefined = {}; + Object.keys(jobsErrorMessage).forEach((jobId) => { + const msg = jobsErrorMessage[jobId]; + if (errorMessages[msg] === undefined) { + errorMessages[msg] = new Set([jobId]); + } else { + errorMessages[msg].add(jobId); + } + }); + let recordsForSeries: ChartRecord[] = []; + // Convert to an array of the records with the highest record_score per unique series. + each(aggregatedData, (detectorsForJob) => { + each(detectorsForJob, (groupsForDetector) => { + if (groupsForDetector.errorMessage !== undefined) { + recordsForSeries.push(groupsForDetector.errorMessage); + } else { + if (groupsForDetector.maxScoreRecord !== undefined) { + // Detector with no partition / by field. + recordsForSeries.push(groupsForDetector.maxScoreRecord); + } else { + each(groupsForDetector, (valuesForGroup) => { + each(valuesForGroup, (dataForGroupValue) => { + if (dataForGroupValue.maxScoreRecord !== undefined) { + recordsForSeries.push(dataForGroupValue.maxScoreRecord); + } else { + // Second level of aggregation for partition and by/over. + each(dataForGroupValue, (splitsForGroup) => { + each(splitsForGroup, (dataForSplitValue) => { + recordsForSeries.push(dataForSplitValue.maxScoreRecord); + }); + }); + } + }); + }); + } + } + }); + }); + recordsForSeries = sortBy(recordsForSeries, 'record_score').reverse(); + + return { records: recordsForSeries, errors: errorMessages }; + } +} diff --git a/x-pack/plugins/ml/public/application/services/ml_results_service.ts b/x-pack/plugins/ml/public/application/services/ml_results_service.ts new file mode 100644 index 0000000000000..aafeb23f11f65 --- /dev/null +++ b/x-pack/plugins/ml/public/application/services/ml_results_service.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +export const createMlResultsServiceMock = () => ({ + getMetricData: jest.fn(), + getModelPlotOutput: jest.fn(), + getRecordsForCriteria: jest.fn(), + getScheduledEventsByBucket: jest.fn(), + fetchPartitionFieldsValues: jest.fn(), + getEventDistributionData: jest.fn(), +}); diff --git a/x-pack/plugins/ml/public/application/services/results_service/result_service_rx.ts b/x-pack/plugins/ml/public/application/services/results_service/result_service_rx.ts index a8ae42658f368..e07d49ca23d3b 100644 --- a/x-pack/plugins/ml/public/application/services/results_service/result_service_rx.ts +++ b/x-pack/plugins/ml/public/application/services/results_service/result_service_rx.ts @@ -69,8 +69,8 @@ export function resultsServiceRxProvider(mlApiServices: MlApiServices) { index: string, entityFields: any[], query: object | undefined, - metricFunction: string, // ES aggregation name - metricFieldName: string, + metricFunction: string | null, // ES aggregation name + metricFieldName: string | undefined, summaryCountFieldName: string | undefined, timeFieldName: string, earliestMs: number, @@ -243,7 +243,7 @@ export function resultsServiceRxProvider(mlApiServices: MlApiServices) { getModelPlotOutput( jobId: string, detectorIndex: number, - criteriaFields: any[], + criteriaFields: CriteriaField[], earliestMs: number, latestMs: number, intervalMs: number, diff --git a/x-pack/plugins/ml/public/application/services/results_service/results_service.d.ts b/x-pack/plugins/ml/public/application/services/results_service/results_service.d.ts index f9a2c1389c828..bb0cdc89904f8 100644 --- a/x-pack/plugins/ml/public/application/services/results_service/results_service.d.ts +++ b/x-pack/plugins/ml/public/application/services/results_service/results_service.d.ts @@ -7,7 +7,11 @@ import { IndicesOptions } from '../../../../common/types/anomaly_detection_jobs'; import { MlApiServices } from '../ml_api_service'; +import type { AnomalyRecordDoc } from '../../../../common/types/anomalies'; +import { InfluencersFilterQuery } from '../../../../common/types/es_client'; +import { EntityField } from '../../../../common/util/anomaly_utils'; +type RecordForInfluencer = AnomalyRecordDoc; export function resultsServiceProvider( mlApiServices: MlApiServices ): { @@ -27,7 +31,7 @@ export function resultsServiceProvider( perPage?: number, fromPage?: number, influencers?: any[], - influencersFilterQuery?: any + influencersFilterQuery?: InfluencersFilterQuery ): Promise; getTopInfluencerValues(): Promise; getOverallBucketScores( @@ -47,10 +51,10 @@ export function resultsServiceProvider( maxResults: number, perPage: number, fromPage: number, - influencersFilterQuery: any + influencersFilterQuery: InfluencersFilterQuery ): Promise; getRecordInfluencers(): Promise; - getRecordsForInfluencer(): Promise; + getRecordsForInfluencer(): Promise; getRecordsForDetector(): Promise; getRecords(): Promise; getEventRateData( @@ -64,11 +68,11 @@ export function resultsServiceProvider( ): Promise; getEventDistributionData( index: string, - splitField: string, - filterField: string, + splitField: EntityField | undefined | null, + filterField: EntityField | undefined | null, query: any, - metricFunction: string, // ES aggregation name - metricFieldName: string, + metricFunction: string | undefined | null, // ES aggregation name + metricFieldName: string | undefined, timeFieldName: string, earliestMs: number, latestMs: number, diff --git a/x-pack/plugins/ml/public/application/services/results_service/results_service.js b/x-pack/plugins/ml/public/application/services/results_service/results_service.js index 502692da39c96..fa0bcd6ea987d 100644 --- a/x-pack/plugins/ml/public/application/services/results_service/results_service.js +++ b/x-pack/plugins/ml/public/application/services/results_service/results_service.js @@ -1232,7 +1232,11 @@ export function resultsServiceProvider(mlApiServices) { }, }; - if (metricFieldName !== undefined && metricFieldName !== '') { + if ( + metricFieldName !== undefined && + metricFieldName !== '' && + typeof metricFunction === 'string' + ) { body.aggs.sample.aggs.byTime.aggs.entities.aggs = {}; const metricAgg = { diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.d.ts b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.d.ts index 9c4e56e292ed0..658926a5a96a9 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.d.ts +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.d.ts @@ -6,8 +6,7 @@ */ import React from 'react'; - -import { TimeRangeBounds } from '../explorer/explorer_utils'; +import { TimeRangeBounds } from '../util/time_buckets'; interface Props { appStateHandler: (action: string, payload: any) => void; diff --git a/x-pack/plugins/ml/public/application/util/__mocks__/time_buckets.ts b/x-pack/plugins/ml/public/application/util/__mocks__/time_buckets.ts new file mode 100644 index 0000000000000..70e756933b86e --- /dev/null +++ b/x-pack/plugins/ml/public/application/util/__mocks__/time_buckets.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const timeBucketsMock = { + setBarTarget: jest.fn(), + setMaxBars: jest.fn(), + setInterval: jest.fn(), + setBounds: jest.fn(), + getBounds: jest.fn(), + getInterval: jest.fn(), + getScaledDateFormat: jest.fn(), +}; diff --git a/x-pack/plugins/ml/public/application/util/chart_utils.d.ts b/x-pack/plugins/ml/public/application/util/chart_utils.d.ts index 1c94cc6e82f8b..ee85525ec00f4 100644 --- a/x-pack/plugins/ml/public/application/util/chart_utils.d.ts +++ b/x-pack/plugins/ml/public/application/util/chart_utils.d.ts @@ -5,4 +5,13 @@ * 2.0. */ +import type { ChartType } from '../explorer/explorer_constants'; + export declare function numTicksForDateFormat(axisWidth: number, dateFormat: string): number; +export declare function getChartType(config: any): ChartType; +export declare function chartLimits( + data: any[] +): { + min: number; + max: number; +}; diff --git a/x-pack/plugins/ml/public/application/util/chart_utils.js b/x-pack/plugins/ml/public/application/util/chart_utils.js index 5ffe2fe86ec32..9b5cab41f24e2 100644 --- a/x-pack/plugins/ml/public/application/util/chart_utils.js +++ b/x-pack/plugins/ml/public/application/util/chart_utils.js @@ -9,7 +9,6 @@ import d3 from 'd3'; import { calculateTextWidth } from './string_utils'; import { MULTI_BUCKET_IMPACT } from '../../../common/constants/multi_bucket_impact'; import moment from 'moment'; -import { getTimefilter } from './dependency_cache'; import { CHART_TYPE } from '../explorer/explorer_constants'; import { ML_PAGES } from '../../../common/constants/ml_url_generator'; @@ -220,10 +219,9 @@ export function getChartType(config) { return chartType; } -export async function getExploreSeriesLink(mlUrlGenerator, series) { +export async function getExploreSeriesLink(mlUrlGenerator, series, timefilter) { // Open the Single Metric dashboard over the same overall bounds and // zoomed in to the same time as the current chart. - const timefilter = getTimefilter(); const bounds = timefilter.getActiveBounds(); const from = bounds.min.toISOString(); // e.g. 2016-02-08T16:00:00.000Z const to = bounds.max.toISOString(); diff --git a/x-pack/plugins/ml/public/application/util/recently_accessed.ts b/x-pack/plugins/ml/public/application/util/recently_accessed.ts index 0967d4a0587e3..88f78946bf7b4 100644 --- a/x-pack/plugins/ml/public/application/util/recently_accessed.ts +++ b/x-pack/plugins/ml/public/application/util/recently_accessed.ts @@ -9,9 +9,15 @@ import { i18n } from '@kbn/i18n'; +import type { ChromeRecentlyAccessed } from 'kibana/public'; import { getRecentlyAccessed } from './dependency_cache'; -export function addItemToRecentlyAccessed(page: string, itemId: string, url: string) { +export function addItemToRecentlyAccessed( + page: string, + itemId: string, + url: string, + recentlyAccessedService?: ChromeRecentlyAccessed +) { let pageLabel = ''; let id = `ml-job-${itemId}`; @@ -39,6 +45,6 @@ export function addItemToRecentlyAccessed(page: string, itemId: string, url: str } url = url.startsWith('/') ? `/app/ml${url}` : `/app/ml/${page}/${url}`; - const recentlyAccessed = getRecentlyAccessed(); + const recentlyAccessed = recentlyAccessedService ?? getRecentlyAccessed(); recentlyAccessed.add(url, `ML - ${itemId} - ${pageLabel}`, id); } diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/__snapshots__/embeddable_anomaly_charts_container.test.tsx.snap b/x-pack/plugins/ml/public/embeddables/anomaly_charts/__snapshots__/embeddable_anomaly_charts_container.test.tsx.snap new file mode 100644 index 0000000000000..375b041c4db73 --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/__snapshots__/embeddable_anomaly_charts_container.test.tsx.snap @@ -0,0 +1,58 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`EmbeddableAnomalyChartsContainer should render explorer charts with a valid embeddable input 1`] = ` +Object { + "chartsData": Object { + "chartsPerRow": 2, + "errorMessages": undefined, + "seriesToPlot": Array [], + "timeFieldName": "@timestamp", + "tooManyBuckets": false, + }, + "id": "test-explorer-charts-embeddable", + "mlUrlGenerator": undefined, + "onSelectEntity": [Function], + "setSeverity": [Function], + "severity": Object { + "color": "#fe5050", + "display": "critical", + "val": 75, + }, + "showCharts": true, + "timeBuckets": TimeBuckets { + "_timeBucketsConfig": Object { + "dateFormat": undefined, + "dateFormat:scaled": undefined, + "histogram:barTarget": undefined, + "histogram:maxBars": undefined, + }, + "barTarget": undefined, + "maxBars": undefined, + }, + "timefilter": Object { + "calculateBounds": [MockFunction], + "createFilter": [MockFunction], + "disableAutoRefreshSelector": [MockFunction], + "disableTimeRangeSelector": [MockFunction], + "enableAutoRefreshSelector": [MockFunction], + "enableTimeRangeSelector": [MockFunction], + "getAbsoluteTime": [MockFunction], + "getActiveBounds": [MockFunction], + "getAutoRefreshFetch$": [MockFunction], + "getBounds": [MockFunction], + "getEnabledUpdated$": [MockFunction], + "getFetch$": [MockFunction], + "getRefreshInterval": [MockFunction], + "getRefreshIntervalDefaults": [MockFunction], + "getRefreshIntervalUpdate$": [MockFunction], + "getTime": [MockFunction], + "getTimeDefaults": [MockFunction], + "getTimeUpdate$": [MockFunction], + "isAutoRefreshSelectorEnabled": [MockFunction], + "isTimeRangeSelectorEnabled": [MockFunction], + "isTimeTouched": [MockFunction], + "setRefreshInterval": [MockFunction], + "setTime": [MockFunction], + }, +} +`; diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx new file mode 100644 index 0000000000000..298abd4dcc241 --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx @@ -0,0 +1,135 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { Suspense } from 'react'; +import ReactDOM from 'react-dom'; +import { CoreStart } from 'kibana/public'; +import { i18n } from '@kbn/i18n'; +import { Subject } from 'rxjs'; +import { KibanaContextProvider } from '../../../../../../src/plugins/kibana_react/public'; +import { Embeddable, IContainer } from '../../../../../../src/plugins/embeddable/public'; +import { EmbeddableAnomalyChartsContainer } from './embeddable_anomaly_charts_container_lazy'; +import type { JobId } from '../../../common/types/anomaly_detection_jobs'; +import type { MlDependencies } from '../../application/app'; +import { + ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE, + AnomalyChartsEmbeddableInput, + AnomalyChartsEmbeddableOutput, + AnomalyChartsServices, +} from '..'; +import type { IndexPattern } from '../../../../../../src/plugins/data/common/index_patterns'; +import { EmbeddableLoading } from '../common/components/embeddable_loading_fallback'; +export const getDefaultExplorerChartsPanelTitle = (jobIds: JobId[]) => + i18n.translate('xpack.ml.anomalyChartsEmbeddable.title', { + defaultMessage: 'ML anomaly charts for {jobIds}', + values: { jobIds: jobIds.join(', ') }, + }); + +export type IAnomalyChartsEmbeddable = typeof AnomalyChartsEmbeddable; + +export class AnomalyChartsEmbeddable extends Embeddable< + AnomalyChartsEmbeddableInput, + AnomalyChartsEmbeddableOutput +> { + private node?: HTMLElement; + private reload$ = new Subject(); + public readonly type: string = ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE; + + constructor( + initialInput: AnomalyChartsEmbeddableInput, + public services: [CoreStart, MlDependencies, AnomalyChartsServices], + parent?: IContainer + ) { + super( + initialInput, + { + defaultTitle: initialInput.title, + }, + parent + ); + this.initializeOutput(initialInput); + } + + private async initializeOutput(initialInput: AnomalyChartsEmbeddableInput) { + const { anomalyExplorerService } = this.services[2]; + const { jobIds } = initialInput; + + try { + const jobs = await anomalyExplorerService.getCombinedJobs(jobIds); + const indexPatternsService = this.services[1].data.indexPatterns; + + // First get list of unique indices from the selected jobs + const indices = new Set(jobs.map((j) => j.datafeed_config.indices).flat()); + + // Then find the index patterns assuming the index pattern title matches the index name + const indexPatterns: Record = {}; + for (const indexName of indices) { + const response = await indexPatternsService.find(`"${indexName}"`); + + const indexPattern = response.find( + (obj) => obj.title.toLowerCase() === indexName.toLowerCase() + ); + if (indexPattern !== undefined) { + indexPatterns[indexPattern.id!] = indexPattern; + } + } + + this.updateOutput({ + ...this.getOutput(), + indexPatterns: Object.values(indexPatterns), + }); + } catch (e) { + // Unable to find and load index pattern but we can ignore the error + // as we only load it to support the filter & query bar + // the visualizations should still work correctly + + // eslint-disable-next-line no-console + console.error(`Unable to load index patterns for ${jobIds}`, e); + } + } + + public render(node: HTMLElement) { + super.render(node); + this.node = node; + + const I18nContext = this.services[0].i18n.Context; + + ReactDOM.render( + + + }> + + + + , + node + ); + } + + public destroy() { + super.destroy(); + if (this.node) { + ReactDOM.unmountComponentAtNode(this.node); + } + } + + public reload() { + this.reload$.next(); + } + + public supportedTriggers() { + return []; + } +} diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.test.ts b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.test.ts new file mode 100644 index 0000000000000..441ac145e1bd4 --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.test.ts @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { AnomalyChartsEmbeddableFactory } from './anomaly_charts_embeddable_factory'; +import { coreMock } from '../../../../../../src/core/public/mocks'; +import { dataPluginMock } from '../../../../../../src/plugins/data/public/mocks'; +import { AnomalyChartsEmbeddable } from './anomaly_charts_embeddable'; +import { AnomalyChartsEmbeddableInput } from '..'; + +jest.mock('./anomaly_charts_embeddable', () => ({ + AnomalyChartsEmbeddable: jest.fn(), +})); + +describe('AnomalyChartsEmbeddableFactory', () => { + test('should provide required services on create', async () => { + // arrange + const pluginStartDeps = { data: dataPluginMock.createStartContract() }; + + const getStartServices = coreMock.createSetup({ + pluginStartDeps, + }).getStartServices; + + const [coreStart, pluginsStart] = await getStartServices(); + + // act + const factory = new AnomalyChartsEmbeddableFactory(getStartServices); + + await factory.create({ + jobIds: ['test-job'], + maxSeriesToPlot: 4, + } as AnomalyChartsEmbeddableInput); + + // assert + const mockCalls = ((AnomalyChartsEmbeddable as unknown) as jest.Mock) + .mock.calls[0]; + const input = mockCalls[0]; + const createServices = mockCalls[1]; + + expect(input).toEqual({ + jobIds: ['test-job'], + maxSeriesToPlot: 4, + }); + expect(Object.keys(createServices[0])).toEqual(Object.keys(coreStart)); + expect(createServices[1]).toMatchObject(pluginsStart); + expect(Object.keys(createServices[2])).toEqual([ + 'anomalyDetectorService', + 'anomalyExplorerService', + 'mlResultsService', + ]); + }); +}); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.ts b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.ts new file mode 100644 index 0000000000000..ac5ff2094e22b --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.ts @@ -0,0 +1,89 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +import type { StartServicesAccessor } from 'kibana/public'; + +import type { + EmbeddableFactoryDefinition, + IContainer, +} from '../../../../../../src/plugins/embeddable/public'; +import { HttpService } from '../../application/services/http_service'; +import type { MlPluginStart, MlStartDependencies } from '../../plugin'; +import type { MlDependencies } from '../../application/app'; +import { + ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE, + AnomalyChartsEmbeddableInput, + AnomalyChartsEmbeddableServices, +} from '..'; +import { AnomalyExplorerChartsService } from '../../application/services/anomaly_explorer_charts_service'; + +export class AnomalyChartsEmbeddableFactory + implements EmbeddableFactoryDefinition { + public readonly type = ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE; + + constructor( + private getStartServices: StartServicesAccessor + ) {} + + public async isEditable() { + return true; + } + + public getDisplayName() { + return i18n.translate('xpack.ml.components.mlAnomalyExplorerEmbeddable.displayName', { + defaultMessage: 'ML anomaly chart', + }); + } + + public async getExplicitInput(): Promise> { + const [coreStart] = await this.getServices(); + + try { + const { resolveEmbeddableAnomalyChartsUserInput } = await import( + './anomaly_charts_setup_flyout' + ); + return await resolveEmbeddableAnomalyChartsUserInput(coreStart); + } catch (e) { + return Promise.reject(); + } + } + + private async getServices(): Promise { + const [coreStart, pluginsStart] = await this.getStartServices(); + + const { AnomalyDetectorService } = await import( + '../../application/services/anomaly_detector_service' + ); + const { mlApiServicesProvider } = await import('../../application/services/ml_api_service'); + const { mlResultsServiceProvider } = await import('../../application/services/results_service'); + + const httpService = new HttpService(coreStart.http); + const anomalyDetectorService = new AnomalyDetectorService(httpService); + const mlApiServices = mlApiServicesProvider(httpService); + const mlResultsService = mlResultsServiceProvider(mlApiServices); + + const anomalyExplorerService = new AnomalyExplorerChartsService( + pluginsStart.data.query.timefilter.timefilter, + mlApiServices, + mlResultsService + ); + + return [ + coreStart, + pluginsStart as MlDependencies, + { anomalyDetectorService, anomalyExplorerService, mlResultsService }, + ]; + } + + public async create(initialInput: AnomalyChartsEmbeddableInput, parent?: IContainer) { + const services = await this.getServices(); + const { AnomalyChartsEmbeddable } = await import('./anomaly_charts_embeddable'); + return new AnomalyChartsEmbeddable(initialInput, services, parent); + } +} diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_initializer.test.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_initializer.test.tsx new file mode 100644 index 0000000000000..1473a599c2c4b --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_initializer.test.tsx @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; + +import { AnomalyChartsInitializer } from './anomaly_charts_initializer'; +import { I18nProvider } from '@kbn/i18n/react'; +import React from 'react'; +import { getDefaultExplorerChartsPanelTitle } from './anomaly_charts_embeddable'; +const defaultOptions = { wrapper: I18nProvider }; + +describe('AnomalyChartsInitializer', () => { + test('should render anomaly charts initializer', async () => { + const onCreate = jest.fn(); + const onCancel = jest.fn(); + + const jobIds = ['test-job']; + const defaultTitle = getDefaultExplorerChartsPanelTitle(jobIds); + const input = { + maxSeriesToPlot: 12, + }; + const { getByTestId } = render( + onCreate(params)} + onCancel={onCancel} + />, + defaultOptions + ); + const confirmButton = screen.getByText(/Confirm/i).closest('button'); + expect(confirmButton).toBeDefined(); + expect(onCreate).toHaveBeenCalledTimes(0); + + userEvent.click(confirmButton!); + expect(onCreate).toHaveBeenCalledWith({ + panelTitle: defaultTitle, + maxSeriesToPlot: input.maxSeriesToPlot, + }); + + userEvent.clear(await getByTestId('panelTitleInput')); + expect(confirmButton).toHaveAttribute('disabled'); + }); +}); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_initializer.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_initializer.tsx new file mode 100644 index 0000000000000..f32446fd6d9ab --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_initializer.tsx @@ -0,0 +1,132 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useState } from 'react'; +import { + EuiButton, + EuiButtonEmpty, + EuiForm, + EuiFormRow, + EuiModalBody, + EuiModalFooter, + EuiModalHeader, + EuiModalHeaderTitle, + EuiFieldNumber, + EuiFieldText, + EuiModal, +} from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { AnomalyChartsEmbeddableInput } from '..'; +import { DEFAULT_MAX_SERIES_TO_PLOT } from '../../application/services/anomaly_explorer_charts_service'; + +const MAX_SERIES_ALLOWED = 48; +export interface AnomalyChartsInitializerProps { + defaultTitle: string; + initialInput?: Partial>; + onCreate: (props: { panelTitle: string; maxSeriesToPlot?: number }) => void; + onCancel: () => void; +} + +export const AnomalyChartsInitializer: FC = ({ + defaultTitle, + initialInput, + onCreate, + onCancel, +}) => { + const [panelTitle, setPanelTitle] = useState(defaultTitle); + const [maxSeriesToPlot, setMaxSeriesToPlot] = useState( + initialInput?.maxSeriesToPlot ?? DEFAULT_MAX_SERIES_TO_PLOT + ); + + const isPanelTitleValid = panelTitle.length > 0; + + const isFormValid = isPanelTitleValid && maxSeriesToPlot > 0; + return ( + + + +

+ +

+
+
+ + + + + } + isInvalid={!isPanelTitleValid} + > + setPanelTitle(e.target.value)} + isInvalid={!isPanelTitleValid} + /> + + + + } + > + setMaxSeriesToPlot(parseInt(e.target.value, 10))} + min={0} + max={MAX_SERIES_ALLOWED} + /> + + + + + + + + + + + + + +
+ ); +}; diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_setup_flyout.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_setup_flyout.tsx new file mode 100644 index 0000000000000..eb39ba4ab29aa --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_setup_flyout.tsx @@ -0,0 +1,57 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { CoreStart } from 'kibana/public'; +import { VIEW_BY_JOB_LABEL } from '../../application/explorer/explorer_constants'; +import { toMountPoint } from '../../../../../../src/plugins/kibana_react/public'; +import { AnomalyDetectorService } from '../../application/services/anomaly_detector_service'; +import { getDefaultExplorerChartsPanelTitle } from './anomaly_charts_embeddable'; +import { HttpService } from '../../application/services/http_service'; +import { AnomalyChartsEmbeddableInput } from '..'; +import { resolveJobSelection } from '../common/resolve_job_selection'; +import { AnomalyChartsInitializer } from './anomaly_charts_initializer'; + +export async function resolveEmbeddableAnomalyChartsUserInput( + coreStart: CoreStart, + input?: AnomalyChartsEmbeddableInput +): Promise> { + const { http, overlays } = coreStart; + + const anomalyDetectorService = new AnomalyDetectorService(new HttpService(http)); + + return new Promise(async (resolve, reject) => { + const { jobIds } = await resolveJobSelection(coreStart, input?.jobIds); + + const title = input?.title ?? getDefaultExplorerChartsPanelTitle(jobIds); + const jobs = await anomalyDetectorService.getJobs$(jobIds).toPromise(); + const influencers = anomalyDetectorService.extractInfluencers(jobs); + influencers.push(VIEW_BY_JOB_LABEL); + + const modalSession = overlays.openModal( + toMountPoint( + { + modalSession.close(); + + resolve({ + jobIds, + title: panelTitle, + maxSeriesToPlot, + }); + }} + onCancel={() => { + modalSession.close(); + reject(); + }} + /> + ) + ); + }); +} diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container.test.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container.test.tsx new file mode 100644 index 0000000000000..7e4e91eb2ad0e --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container.test.tsx @@ -0,0 +1,181 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import { + EmbeddableAnomalyChartsContainer, + EmbeddableAnomalyChartsContainerProps, +} from './embeddable_anomaly_charts_container'; +import { BehaviorSubject, Observable, of } from 'rxjs'; +import { I18nProvider } from '@kbn/i18n/react'; +import { AnomalyChartsEmbeddable } from './anomaly_charts_embeddable'; +import { CoreStart } from 'kibana/public'; +import { useAnomalyChartsInputResolver } from './use_anomaly_charts_input_resolver'; +import { MlDependencies } from '../../application/app'; +import { TriggerContract } from 'src/plugins/ui_actions/public/triggers'; +import { AnomalyChartsEmbeddableInput, AnomalyChartsServices } from '..'; +import { ExplorerAnomaliesContainer } from '../../application/explorer/explorer_charts/explorer_anomalies_container'; +import { createMlResultsServiceMock } from '../../application/services/ml_results_service'; +import { createCoreStartMock } from '../../__mocks__/core_start'; +import { createMlStartDepsMock } from '../../__mocks__/ml_start_deps'; +import { createAnomalyExplorerChartsServiceMock } from '../../application/services/__mocks__/anomaly_explorer_charts_service'; +import { createAnomalyDetectorServiceMock } from '../../application/services/__mocks__/anomaly_detector_service'; + +jest.mock('./use_anomaly_charts_input_resolver', () => ({ + useAnomalyChartsInputResolver: jest.fn(() => { + return []; + }), +})); + +jest.mock('../../application/explorer/explorer_charts/explorer_anomalies_container', () => ({ + ExplorerAnomaliesContainer: jest.fn(() => { + return null; + }), +})); + +const defaultOptions = { wrapper: I18nProvider }; + +describe('EmbeddableAnomalyChartsContainer', () => { + let embeddableInput: BehaviorSubject>; + let refresh: BehaviorSubject; + let services: jest.Mocked<[CoreStart, MlDependencies, AnomalyChartsServices]>; + let embeddableContext: jest.Mocked; + let trigger: jest.Mocked; + + const onInputChange = jest.fn(); + const onOutputChange = jest.fn(); + + const mockedInput = { + viewMode: 'view', + filters: [], + hidePanelTitles: false, + query: { + language: 'lucene', + query: 'instance:i-d**', + }, + timeRange: { + from: 'now-3y', + to: 'now', + }, + refreshConfig: { + value: 0, + pause: true, + }, + id: 'b5b2f600-9c7e-4f7d-8b82-ee156fffad27', + searchSessionId: 'e8d052f8-0d9a-4d80-819d-fe18d9b314fa', + syncColors: true, + title: 'ML anomaly explorer charts for cw_multi_1', + jobIds: ['cw_multi_1'], + maxSeriesToPlot: 12, + enhancements: {}, + severity: 50, + severityThreshold: 75, + } as AnomalyChartsEmbeddableInput; + + beforeEach(() => { + // we only want to mock some of the functions needed + // @ts-ignore + embeddableContext = { + id: 'test-id', + getInput: jest.fn(), + }; + embeddableContext.getInput.mockReturnValue(mockedInput); + + embeddableInput = new BehaviorSubject({ + id: 'test-explorer-charts-embeddable', + } as Partial); + + trigger = ({ exec: jest.fn() } as unknown) as jest.Mocked; + + const mlStartMock = createMlStartDepsMock(); + mlStartMock.uiActions.getTrigger.mockReturnValue(trigger); + + const coreStartMock = createCoreStartMock(); + const anomalyDetectorServiceMock = createAnomalyDetectorServiceMock(); + + anomalyDetectorServiceMock.getJobs$.mockImplementation((jobId: string[]) => { + if (jobId.includes('invalid-job-id')) { + throw new Error('Invalid job'); + } + return of([ + { + job_id: 'cw_multi_1', + analysis_config: { bucket_span: '15m' }, + }, + ]); + }); + + services = ([ + coreStartMock, + mlStartMock, + { + anomalyDetectorService: anomalyDetectorServiceMock, + anomalyExplorerChartsService: createAnomalyExplorerChartsServiceMock(), + mlResultsService: createMlResultsServiceMock(), + }, + ] as unknown) as EmbeddableAnomalyChartsContainerProps['services']; + }); + + test('should render explorer charts with a valid embeddable input', async () => { + const chartsData = { + chartsPerRow: 2, + seriesToPlot: [], + tooManyBuckets: false, + timeFieldName: '@timestamp', + errorMessages: undefined, + }; + + (useAnomalyChartsInputResolver as jest.Mock).mockReturnValueOnce({ + chartsData, + isLoading: false, + error: undefined, + }); + + render( + } + services={services} + refresh={refresh} + onInputChange={onInputChange} + onOutputChange={onOutputChange} + />, + defaultOptions + ); + + const calledWith = ((ExplorerAnomaliesContainer as unknown) as jest.Mock< + typeof ExplorerAnomaliesContainer + >).mock.calls[0][0]; + + expect(calledWith).toMatchSnapshot(); + }); + + test('should render an error in case it could not fetch the ML charts data', async () => { + (useAnomalyChartsInputResolver as jest.Mock).mockReturnValueOnce({ + chartsData: undefined, + isLoading: false, + error: 'No anomalies', + }); + + const { findByText } = render( + } + services={services} + refresh={refresh} + onInputChange={onInputChange} + onOutputChange={onOutputChange} + />, + defaultOptions + ); + const errorMessage = await findByText('Unable to load the ML anomaly explorer data'); + expect(errorMessage).toBeDefined(); + }); +}); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container.tsx new file mode 100644 index 0000000000000..e1748bd21855b --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container.tsx @@ -0,0 +1,194 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useCallback, useState, useMemo, useEffect } from 'react'; +import { EuiCallOut, EuiLoadingChart, EuiResizeObserver, EuiText } from '@elastic/eui'; +import { Observable } from 'rxjs'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { throttle } from 'lodash'; +import { useAnomalyChartsInputResolver } from './use_anomaly_charts_input_resolver'; +import type { IAnomalyChartsEmbeddable } from './anomaly_charts_embeddable'; +import type { + AnomalyChartsEmbeddableInput, + AnomalyChartsEmbeddableOutput, + AnomalyChartsEmbeddableServices, +} from '..'; +import type { EntityField, EntityFieldOperation } from '../../../common/util/anomaly_utils'; + +import { ExplorerAnomaliesContainer } from '../../application/explorer/explorer_charts/explorer_anomalies_container'; +import { ML_APP_URL_GENERATOR } from '../../../common/constants/ml_url_generator'; +import { optionValueToThreshold } from '../../application/components/controls/select_severity/select_severity'; +import { ANOMALY_THRESHOLD } from '../../../common'; +import { UI_SETTINGS } from '../../../../../../src/plugins/data/common'; +import { TimeBuckets } from '../../application/util/time_buckets'; +import { EXPLORER_ENTITY_FIELD_SELECTION_TRIGGER } from '../../ui_actions/triggers'; + +const RESIZE_THROTTLE_TIME_MS = 500; + +export interface EmbeddableAnomalyChartsContainerProps { + id: string; + embeddableContext: InstanceType; + embeddableInput: Observable; + services: AnomalyChartsEmbeddableServices; + refresh: Observable; + onInputChange: (input: Partial) => void; + onOutputChange: (output: Partial) => void; +} + +export const EmbeddableAnomalyChartsContainer: FC = ({ + id, + embeddableContext, + embeddableInput, + services, + refresh, + onInputChange, + onOutputChange, +}) => { + const [chartWidth, setChartWidth] = useState(0); + const [severity, setSeverity] = useState( + optionValueToThreshold( + embeddableContext.getInput().severityThreshold ?? ANOMALY_THRESHOLD.WARNING + ) + ); + const [selectedEntities, setSelectedEntities] = useState(); + const [ + { uiSettings }, + { + data: dataServices, + share: { + urlGenerators: { getUrlGenerator }, + }, + uiActions, + }, + ] = services; + const { timefilter } = dataServices.query.timefilter; + + const mlUrlGenerator = useMemo(() => getUrlGenerator(ML_APP_URL_GENERATOR), [getUrlGenerator]); + + const timeBuckets = useMemo(() => { + return new TimeBuckets({ + 'histogram:maxBars': uiSettings.get(UI_SETTINGS.HISTOGRAM_MAX_BARS), + 'histogram:barTarget': uiSettings.get(UI_SETTINGS.HISTOGRAM_BAR_TARGET), + dateFormat: uiSettings.get('dateFormat'), + 'dateFormat:scaled': uiSettings.get('dateFormat:scaled'), + }); + }, []); + + useEffect(() => { + onInputChange({ + severityThreshold: severity.val, + }); + onOutputChange({ + severity: severity.val, + entityFields: selectedEntities, + }); + }, [severity, selectedEntities]); + + const { chartsData, isLoading: isExplorerLoading, error } = useAnomalyChartsInputResolver( + embeddableInput, + onInputChange, + refresh, + services, + chartWidth, + severity.val + ); + const resizeHandler = useCallback( + throttle((e: { width: number; height: number }) => { + setChartWidth(e.width); + }, RESIZE_THROTTLE_TIME_MS), + [] + ); + + if (error) { + return ( + + } + color="danger" + iconType="alert" + style={{ width: '100%' }} + > +

{error.message}

+
+ ); + } + + const addEntityFieldFilter = ( + fieldName: string, + fieldValue: string, + operation: EntityFieldOperation + ) => { + const entity: EntityField = { + fieldName, + fieldValue, + operation, + }; + const uniqueSelectedEntities = [entity]; + setSelectedEntities(uniqueSelectedEntities); + uiActions.getTrigger(EXPLORER_ENTITY_FIELD_SELECTION_TRIGGER).exec({ + embeddable: embeddableContext, + data: uniqueSelectedEntities, + }); + }; + + return ( + + {(resizeRef) => ( +
+ {isExplorerLoading && ( + + + + )} + {chartsData !== undefined && isExplorerLoading === false && ( + + )} +
+ )} +
+ ); +}; + +// required for dynamic import using React.lazy() +// eslint-disable-next-line import/no-default-export +export default EmbeddableAnomalyChartsContainer; diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container_lazy.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container_lazy.tsx new file mode 100644 index 0000000000000..38f48ea4a018b --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/embeddable_anomaly_charts_container_lazy.tsx @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +export const EmbeddableAnomalyChartsContainer = React.lazy( + () => import('./embeddable_anomaly_charts_container') +); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/index.ts b/x-pack/plugins/ml/public/embeddables/anomaly_charts/index.ts new file mode 100644 index 0000000000000..7ee763b893367 --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { AnomalyChartsEmbeddableFactory } from './anomaly_charts_embeddable_factory'; diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/use_anomaly_charts_input_resolver.test.ts b/x-pack/plugins/ml/public/embeddables/anomaly_charts/use_anomaly_charts_input_resolver.test.ts new file mode 100644 index 0000000000000..efac51edda69f --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/use_anomaly_charts_input_resolver.test.ts @@ -0,0 +1,219 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { renderHook, act } from '@testing-library/react-hooks'; +import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; +import { AnomalyChartsEmbeddableInput, AnomalyChartsServices } from '../types'; +import { CoreStart } from 'kibana/public'; +import { MlStartDependencies } from '../../plugin'; +import { useAnomalyChartsInputResolver } from './use_anomaly_charts_input_resolver'; +import { EmbeddableAnomalyChartsContainerProps } from './embeddable_anomaly_charts_container'; +import moment from 'moment'; +import { createMlResultsServiceMock } from '../../application/services/ml_results_service'; +import { createCoreStartMock } from '../../__mocks__/core_start'; +import { createMlStartDepsMock } from '../../__mocks__/ml_start_deps'; +import { createAnomalyExplorerChartsServiceMock } from '../../application/services/__mocks__/anomaly_explorer_charts_service'; +import { createAnomalyDetectorServiceMock } from '../../application/services/__mocks__/anomaly_detector_service'; + +jest.mock('../common/process_filters', () => ({ + processFilters: jest.fn(), +})); + +jest.mock('../../application/explorer/explorer_utils', () => ({ + getSelectionInfluencers: jest.fn(() => { + return []; + }), + getSelectionJobIds: jest.fn(() => ['test-job']), + getSelectionTimeRange: jest.fn(() => ({ earliestMs: 1521309543000, latestMs: 1616003942999 })), + loadDataForCharts: jest.fn().mockImplementation(() => + Promise.resolve([ + { + job_id: 'cw_multi_1', + result_type: 'record', + probability: 6.057139142746412e-13, + multi_bucket_impact: -5, + record_score: 89.71961, + initial_record_score: 98.36826274948001, + bucket_span: 900, + detector_index: 0, + is_interim: false, + timestamp: 1572892200000, + partition_field_name: 'instance', + partition_field_value: 'i-d17dcd4c', + function: 'mean', + function_description: 'mean', + typical: [1.6177685422858146], + actual: [7.235333333333333], + field_name: 'CPUUtilization', + influencers: [ + { + influencer_field_name: 'region', + influencer_field_values: ['sa-east-1'], + }, + { + influencer_field_name: 'instance', + influencer_field_values: ['i-d17dcd4c'], + }, + ], + instance: ['i-d17dcd4c'], + region: ['sa-east-1'], + }, + ]) + ), +})); + +describe('useAnomalyChartsInputResolver', () => { + let embeddableInput: BehaviorSubject>; + let refresh: Subject; + let services: [CoreStart, MlStartDependencies, AnomalyChartsServices]; + let onInputChange: jest.Mock; + + const start = moment().subtract(1, 'years'); + const end = moment(); + + beforeEach(() => { + jest.useFakeTimers(); + + const jobIds = ['test-job']; + embeddableInput = new BehaviorSubject({ + id: 'test-explorer-charts-embeddable', + jobIds, + filters: [], + query: { language: 'kuery', query: '' }, + maxSeriesToPlot: 12, + timeRange: { + from: 'now-3y', + to: 'now', + }, + } as Partial); + + refresh = new Subject(); + const anomalyExplorerChartsServiceMock = createAnomalyExplorerChartsServiceMock(); + + anomalyExplorerChartsServiceMock.getTimeBounds.mockReturnValue({ + min: start, + max: end, + }); + + anomalyExplorerChartsServiceMock.getCombinedJobs.mockImplementation(() => + Promise.resolve( + jobIds.map((jobId) => ({ job_id: jobId, analysis_config: {}, datafeed_config: {} })) + ) + ); + + anomalyExplorerChartsServiceMock.getAnomalyData.mockImplementation(() => + Promise.resolve({ + chartsPerRow: 2, + seriesToPlot: [], + tooManyBuckets: false, + timeFieldName: '@timestamp', + errorMessages: undefined, + }) + ); + + const coreStartMock = createCoreStartMock(); + const mlStartMock = createMlStartDepsMock(); + + const anomalyDetectorServiceMock = createAnomalyDetectorServiceMock(); + anomalyDetectorServiceMock.getJobs$.mockImplementation((jobId: string[]) => { + if (jobId.includes('invalid-job-id')) { + throw new Error('Invalid job'); + } + return of([ + { + job_id: 'cw_multi_1', + analysis_config: { bucket_span: '15m' }, + }, + ]); + }); + + services = ([ + coreStartMock, + mlStartMock, + { + anomalyDetectorService: anomalyDetectorServiceMock, + anomalyExplorerService: anomalyExplorerChartsServiceMock, + mlResultsService: createMlResultsServiceMock(), + }, + ] as unknown) as EmbeddableAnomalyChartsContainerProps['services']; + + onInputChange = jest.fn(); + }); + afterEach(() => { + jest.useRealTimers(); + jest.clearAllMocks(); + }); + + test('should fetch jobs only when input job ids have been changed', async () => { + const { result, waitForNextUpdate } = renderHook(() => + useAnomalyChartsInputResolver( + embeddableInput as Observable, + onInputChange, + refresh, + services, + 1000, + 0 + ) + ); + + expect(result.current.chartsData).toBe(undefined); + expect(result.current.error).toBe(undefined); + expect(result.current.isLoading).toBe(true); + + await act(async () => { + jest.advanceTimersByTime(501); + await waitForNextUpdate(); + }); + + const explorerServices = services[2]; + + expect(explorerServices.anomalyDetectorService.getJobs$).toHaveBeenCalledTimes(1); + expect(explorerServices.anomalyExplorerService.getAnomalyData).toHaveBeenCalledTimes(1); + + await act(async () => { + embeddableInput.next({ + id: 'test-explorer-charts-embeddable', + jobIds: ['anotherJobId'], + filters: [], + query: { language: 'kuery', query: '' }, + maxSeriesToPlot: 6, + timeRange: { + from: 'now-3y', + to: 'now', + }, + }); + jest.advanceTimersByTime(501); + await waitForNextUpdate(); + }); + + expect(explorerServices.anomalyDetectorService.getJobs$).toHaveBeenCalledTimes(2); + expect(explorerServices.anomalyExplorerService.getAnomalyData).toHaveBeenCalledTimes(2); + }); + + test('should not complete the observable on error', async () => { + const { result } = renderHook(() => + useAnomalyChartsInputResolver( + embeddableInput as Observable, + onInputChange, + refresh, + services, + 1000, + 1 + ) + ); + + await act(async () => { + embeddableInput.next({ + id: 'test-explorer-charts-embeddable', + jobIds: ['invalid-job-id'], + filters: [], + query: { language: 'kuery', query: '' }, + } as Partial); + }); + expect(result.current.error).toBeDefined(); + }); +}); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/use_anomaly_charts_input_resolver.ts b/x-pack/plugins/ml/public/embeddables/anomaly_charts/use_anomaly_charts_input_resolver.ts new file mode 100644 index 0000000000000..b114ca89a3288 --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/use_anomaly_charts_input_resolver.ts @@ -0,0 +1,192 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useEffect, useMemo, useState } from 'react'; +import { combineLatest, forkJoin, from, Observable, of, Subject } from 'rxjs'; +import { catchError, debounceTime, skipWhile, startWith, switchMap, tap } from 'rxjs/operators'; +import { CoreStart } from 'kibana/public'; +import { TimeBuckets } from '../../application/util/time_buckets'; +import { MlStartDependencies } from '../../plugin'; +import { UI_SETTINGS } from '../../../../../../src/plugins/data/public'; +import { + AppStateSelectedCells, + ExplorerJob, + getSelectionInfluencers, + getSelectionJobIds, + getSelectionTimeRange, + loadDataForCharts, +} from '../../application/explorer/explorer_utils'; +import { OVERALL_LABEL, SWIMLANE_TYPE } from '../../application/explorer/explorer_constants'; +import { parseInterval } from '../../../common/util/parse_interval'; +import { + AnomalyChartsEmbeddableInput, + AnomalyChartsEmbeddableOutput, + AnomalyChartsServices, +} from '..'; +import type { CombinedJob } from '../../../common/types/anomaly_detection_jobs'; +import type { ExplorerChartsData } from '../../application/explorer/explorer_charts/explorer_charts_container_service'; +import { processFilters } from '../common/process_filters'; +import { InfluencersFilterQuery } from '../../../common/types/es_client'; +import { getJobsObservable } from '../common/get_jobs_observable'; + +const FETCH_RESULTS_DEBOUNCE_MS = 500; + +export function useAnomalyChartsInputResolver( + embeddableInput: Observable, + onInputChange: (output: Partial) => void, + refresh: Observable, + services: [CoreStart, MlStartDependencies, AnomalyChartsServices], + chartWidth: number, + severity: number +): { chartsData: ExplorerChartsData; isLoading: boolean; error: Error | null | undefined } { + const [ + { uiSettings }, + { data: dataServices }, + { anomalyDetectorService, anomalyExplorerService, mlResultsService }, + ] = services; + const { timefilter } = dataServices.query.timefilter; + + const [chartsData, setChartsData] = useState(); + const [error, setError] = useState(); + const [isLoading, setIsLoading] = useState(false); + + const chartWidth$ = useMemo(() => new Subject(), []); + const severity$ = useMemo(() => new Subject(), []); + + const timeBuckets = useMemo(() => { + return new TimeBuckets({ + 'histogram:maxBars': uiSettings.get(UI_SETTINGS.HISTOGRAM_MAX_BARS), + 'histogram:barTarget': uiSettings.get(UI_SETTINGS.HISTOGRAM_BAR_TARGET), + dateFormat: uiSettings.get('dateFormat'), + 'dateFormat:scaled': uiSettings.get('dateFormat:scaled'), + }); + }, []); + + useEffect(() => { + const subscription = combineLatest([ + getJobsObservable(embeddableInput, anomalyDetectorService, setError), + embeddableInput, + chartWidth$.pipe(skipWhile((v) => !v)), + severity$, + refresh.pipe(startWith(null)), + ]) + .pipe( + tap(setIsLoading.bind(null, true)), + debounceTime(FETCH_RESULTS_DEBOUNCE_MS), + switchMap(([jobs, input, embeddableContainerWidth, severityValue]) => { + if (!jobs) { + // couldn't load the list of jobs + return of(undefined); + } + + const { maxSeriesToPlot, timeRange: timeRangeInput, filters, query } = input; + + const viewBySwimlaneFieldName = OVERALL_LABEL; + + anomalyExplorerService.setTimeRange(timeRangeInput); + + const explorerJobs: ExplorerJob[] = jobs.map((job) => { + const bucketSpan = parseInterval(job.analysis_config.bucket_span); + return { + id: job.job_id, + selected: true, + bucketSpanSeconds: bucketSpan!.asSeconds(), + }; + }); + + let influencersFilterQuery: InfluencersFilterQuery; + try { + influencersFilterQuery = processFilters(filters, query); + } catch (e) { + // handle query syntax errors + setError(e); + return of(undefined); + } + + const bounds = anomalyExplorerService.getTimeBounds(); + + // Can be from input time range or from the timefilter bar + const selections: AppStateSelectedCells = { + lanes: [OVERALL_LABEL], + times: [bounds.min?.unix()!, bounds.max?.unix()!], + type: SWIMLANE_TYPE.OVERALL, + }; + + const selectionInfluencers = getSelectionInfluencers(selections, viewBySwimlaneFieldName); + + const jobIds = getSelectionJobIds(selections, explorerJobs); + + const bucketInterval = timeBuckets.getInterval(); + + const timeRange = getSelectionTimeRange(selections, bucketInterval.asSeconds(), bounds); + return forkJoin({ + combinedJobs: anomalyExplorerService.getCombinedJobs(jobIds), + anomalyChartRecords: loadDataForCharts( + mlResultsService, + jobIds, + timeRange.earliestMs, + timeRange.latestMs, + selectionInfluencers, + selections, + influencersFilterQuery, + false + ), + }).pipe( + switchMap(({ combinedJobs, anomalyChartRecords }) => { + const combinedJobRecords: Record< + string, + CombinedJob + > = (combinedJobs as CombinedJob[]).reduce((acc, job) => { + return { ...acc, [job.job_id]: job }; + }, {}); + + return forkJoin({ + chartsData: from( + anomalyExplorerService.getAnomalyData( + undefined, + combinedJobRecords, + embeddableContainerWidth, + anomalyChartRecords, + timeRange.earliestMs, + timeRange.latestMs, + timefilter, + severityValue, + maxSeriesToPlot + ) + ), + }); + }) + ); + }), + catchError((e) => { + setError(e.body); + return of(undefined); + }) + ) + .subscribe((results) => { + if (results !== undefined) { + setError(null); + setChartsData(results.chartsData); + setIsLoading(false); + } + }); + + return () => { + subscription.unsubscribe(); + }; + }, []); + + useEffect(() => { + chartWidth$.next(chartWidth); + }, [chartWidth]); + + useEffect(() => { + severity$.next(severity); + }, [severity]); + + return { chartsData, isLoading, error }; +} diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable.tsx index 50aa99e2b8d17..7f9e99f3a0c8e 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable.tsx +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable.tsx @@ -22,8 +22,8 @@ import { AnomalySwimlaneEmbeddableOutput, AnomalySwimlaneServices, } from '..'; - -export const getDefaultPanelTitle = (jobIds: JobId[]) => +import { EmbeddableLoading } from '../common/components/embeddable_loading_fallback'; +export const getDefaultSwimlanePanelTitle = (jobIds: JobId[]) => i18n.translate('xpack.ml.swimlaneEmbeddable.title', { defaultMessage: 'ML anomaly swim lane for {jobIds}', values: { jobIds: jobIds.join(', ') }, @@ -62,7 +62,7 @@ export class AnomalySwimlaneEmbeddable extends Embeddable< ReactDOM.render( - + }> { const { jobIds } = await resolveJobSelection(coreStart, input?.jobIds); - const title = input?.title ?? getDefaultPanelTitle(jobIds); + const title = input?.title ?? getDefaultSwimlanePanelTitle(jobIds); const jobs = await anomalyDetectorService.getJobs$(jobIds).toPromise(); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/embeddable_swim_lane_container.test.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/embeddable_swim_lane_container.test.tsx index 560e373eb281c..00f4da09bbe0e 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/embeddable_swim_lane_container.test.tsx +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/embeddable_swim_lane_container.test.tsx @@ -19,9 +19,10 @@ import { useSwimlaneInputResolver } from './swimlane_input_resolver'; import { SWIMLANE_TYPE } from '../../application/explorer/explorer_constants'; import { SwimlaneContainer } from '../../application/explorer/swimlane_container'; import { MlDependencies } from '../../application/app'; -import { uiActionsPluginMock } from 'src/plugins/ui_actions/public/mocks'; import { TriggerContract } from 'src/plugins/ui_actions/public/triggers'; import { AnomalySwimlaneEmbeddableInput, AnomalySwimlaneServices } from '..'; +import { createCoreStartMock } from '../../__mocks__/core_start'; +import { createMlStartDepsMock } from '../../__mocks__/ml_start_deps'; jest.mock('./swimlane_input_resolver', () => ({ useSwimlaneInputResolver: jest.fn(() => { @@ -56,14 +57,12 @@ describe('ExplorerSwimlaneContainer', () => { trigger = ({ exec: jest.fn() } as unknown) as jest.Mocked; - const uiActionsMock = uiActionsPluginMock.createStartContract(); - uiActionsMock.getTrigger.mockReturnValue(trigger); + const mlStartMock = createMlStartDepsMock(); + mlStartMock.uiActions.getTrigger.mockReturnValue(trigger); services = ([ - {}, - { - uiActions: uiActionsMock, - }, + createCoreStartMock(), + mlStartMock, ] as unknown) as ExplorerSwimlaneContainerProps['services']; }); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/embeddable_swim_lane_container.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/embeddable_swim_lane_container.tsx index fb47a2684a015..d671bff90b31f 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/embeddable_swim_lane_container.tsx +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/embeddable_swim_lane_container.tsx @@ -47,6 +47,7 @@ export const EmbeddableSwimLaneContainer: FC = ( onOutputChange, }) => { const [chartWidth, setChartWidth] = useState(0); + const [fromPage, setFromPage] = useState(1); const [{}, { uiActions }] = services; diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/swimlane_input_resolver.test.ts b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/swimlane_input_resolver.test.ts index 3fffd1588b9b9..4d2e2406376e2 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/swimlane_input_resolver.test.ts +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/swimlane_input_resolver.test.ts @@ -6,7 +6,7 @@ */ import { renderHook, act } from '@testing-library/react-hooks'; -import { processFilters, useSwimlaneInputResolver } from './swimlane_input_resolver'; +import { useSwimlaneInputResolver } from './swimlane_input_resolver'; import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; import { SWIMLANE_TYPE } from '../../application/explorer/explorer_constants'; import { CoreStart, IUiSettingsClient } from 'kibana/public'; @@ -157,146 +157,3 @@ describe('useSwimlaneInputResolver', () => { expect(result.current[6]?.message).toBe('Invalid job'); }); }); - -describe('processFilters', () => { - test('should format embeddable input to es query', () => { - expect( - processFilters( - [ - { - meta: { - index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', - type: 'phrases', - key: 'instance', - value: 'i-20d061fa', - params: ['i-20d061fa'], - alias: null, - negate: false, - disabled: false, - }, - query: { - bool: { - should: [ - { - match_phrase: { - instance: 'i-20d061fa', - }, - }, - ], - minimum_should_match: 1, - }, - }, - $state: { - // @ts-ignore - store: 'appState', - }, - }, - { - meta: { - index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', - alias: null, - negate: true, - disabled: false, - type: 'phrase', - key: 'instance', - params: { - query: 'i-16fd8d2a', - }, - }, - query: { - match_phrase: { - instance: 'i-16fd8d2a', - }, - }, - - $state: { - // @ts-ignore - store: 'appState', - }, - }, - { - meta: { - index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', - alias: null, - negate: false, - disabled: false, - type: 'exists', - key: 'instance', - value: 'exists', - }, - exists: { - field: 'instance', - }, - $state: { - // @ts-ignore - store: 'appState', - }, - }, - { - meta: { - index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', - alias: null, - negate: false, - disabled: true, - type: 'exists', - key: 'instance', - value: 'exists', - }, - exists: { - field: 'region', - }, - $state: { - // @ts-ignore - store: 'appState', - }, - }, - ], - { - language: 'kuery', - query: 'instance : "i-088147ac"', - } - ) - ).toEqual({ - bool: { - must: [ - { - bool: { - minimum_should_match: 1, - should: [ - { - match_phrase: { - instance: 'i-088147ac', - }, - }, - ], - }, - }, - { - bool: { - should: [ - { - match_phrase: { - instance: 'i-20d061fa', - }, - }, - ], - minimum_should_match: 1, - }, - }, - { - exists: { - field: 'instance', - }, - }, - ], - must_not: [ - { - match_phrase: { - instance: 'i-16fd8d2a', - }, - }, - ], - }, - }); - }); -}); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/swimlane_input_resolver.ts b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/swimlane_input_resolver.ts index fa0cccda99d22..4574c7e859c08 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/swimlane_input_resolver.ts +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/swimlane_input_resolver.ts @@ -7,13 +7,11 @@ import { useEffect, useMemo, useState } from 'react'; import { combineLatest, from, Observable, of, Subject } from 'rxjs'; -import { isEqual } from 'lodash'; import { catchError, debounceTime, distinctUntilChanged, map, - pluck, skipWhile, startWith, switchMap, @@ -28,39 +26,22 @@ import { SWIMLANE_TYPE, SwimlaneType, } from '../../application/explorer/explorer_constants'; -import { Filter } from '../../../../../../src/plugins/data/common/es_query/filters'; -import { Query } from '../../../../../../src/plugins/data/common/query'; -import { esKuery, UI_SETTINGS } from '../../../../../../src/plugins/data/public'; +import { UI_SETTINGS } from '../../../../../../src/plugins/data/public'; import { ExplorerJob, OverallSwimlaneData } from '../../application/explorer/explorer_utils'; import { parseInterval } from '../../../common/util/parse_interval'; -import { AnomalyDetectorService } from '../../application/services/anomaly_detector_service'; import { isViewBySwimLaneData } from '../../application/explorer/swimlane_container'; import { ViewMode } from '../../../../../../src/plugins/embeddable/public'; -import { CONTROLLED_BY_SWIM_LANE_FILTER } from '../../ui_actions/constants'; import { AnomalySwimlaneEmbeddableInput, AnomalySwimlaneEmbeddableOutput, AnomalySwimlaneServices, } from '..'; +import { processFilters } from '../common/process_filters'; +import { CONTROLLED_BY_SWIM_LANE_FILTER } from '../..'; +import { getJobsObservable } from '../common/get_jobs_observable'; const FETCH_RESULTS_DEBOUNCE_MS = 500; -function getJobsObservable( - embeddableInput: Observable, - anomalyDetectorService: AnomalyDetectorService, - setErrorHandler: (e: Error) => void -) { - return embeddableInput.pipe( - pluck('jobIds'), - distinctUntilChanged(isEqual), - switchMap((jobsIds) => anomalyDetectorService.getJobs$(jobsIds)), - catchError((e) => { - setErrorHandler(e.body ?? e); - return of(undefined); - }) - ); -} - export function useSwimlaneInputResolver( embeddableInput: Observable, onInputChange: (output: Partial) => void, @@ -149,7 +130,7 @@ export function useSwimlaneInputResolver( let appliedFilters: any; try { - appliedFilters = processFilters(filters, query); + appliedFilters = processFilters(filters, query, CONTROLLED_BY_SWIM_LANE_FILTER); } catch (e) { // handle query syntax errors setError(e); @@ -242,44 +223,3 @@ export function useSwimlaneInputResolver( error, ]; } - -export function processFilters(filters: Filter[], query: Query) { - const inputQuery = - query.language === 'kuery' - ? esKuery.toElasticsearchQuery(esKuery.fromKueryExpression(query.query as string)) - : query.query; - - const must = [inputQuery]; - const mustNot = []; - for (const filter of filters) { - // ignore disabled filters as well as created by swim lane selection - if (filter.meta.disabled || filter.meta.controlledBy === CONTROLLED_BY_SWIM_LANE_FILTER) - continue; - - const { - meta: { negate, type, key: fieldName }, - } = filter; - - let filterQuery = filter.query; - - if (filterQuery === undefined && type === 'exists') { - filterQuery = { - exists: { - field: fieldName, - }, - }; - } - - if (negate) { - mustNot.push(filterQuery); - } else { - must.push(filterQuery); - } - } - return { - bool: { - must, - must_not: mustNot, - }, - }; -} diff --git a/x-pack/plugins/ml/public/embeddables/common/components/embeddable_loading_fallback.tsx b/x-pack/plugins/ml/public/embeddables/common/components/embeddable_loading_fallback.tsx new file mode 100644 index 0000000000000..01644efd6652c --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/common/components/embeddable_loading_fallback.tsx @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { EuiLoadingSpinner, EuiSpacer, EuiText } from '@elastic/eui'; + +export const EmbeddableLoading = () => { + return ( + + + + + + ); +}; diff --git a/x-pack/plugins/ml/public/embeddables/common/get_jobs_observable.ts b/x-pack/plugins/ml/public/embeddables/common/get_jobs_observable.ts new file mode 100644 index 0000000000000..6bdec30340b76 --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/common/get_jobs_observable.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Observable, of } from 'rxjs'; +import { catchError, distinctUntilChanged, pluck, switchMap } from 'rxjs/operators'; +import { isEqual } from 'lodash'; +import { AnomalyChartsEmbeddableInput, AnomalySwimlaneEmbeddableInput } from '../types'; +import { AnomalyDetectorService } from '../../application/services/anomaly_detector_service'; + +export function getJobsObservable( + embeddableInput: Observable, + anomalyDetectorService: AnomalyDetectorService, + setErrorHandler: (e: Error) => void +) { + return embeddableInput.pipe( + pluck('jobIds'), + distinctUntilChanged(isEqual), + switchMap((jobsIds) => anomalyDetectorService.getJobs$(jobsIds)), + catchError((e) => { + setErrorHandler(e.body ?? e); + return of(undefined); + }) + ); +} diff --git a/x-pack/plugins/ml/public/embeddables/common/process_filters.test.ts b/x-pack/plugins/ml/public/embeddables/common/process_filters.test.ts new file mode 100644 index 0000000000000..262b744786d97 --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/common/process_filters.test.ts @@ -0,0 +1,288 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { processFilters } from './process_filters'; +import { CONTROLLED_BY_SWIM_LANE_FILTER } from '../..'; + +describe('processFilters', () => { + test('should format kql embeddable input to es query', () => { + expect( + processFilters( + [ + { + meta: { + index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', + type: 'phrases', + key: 'instance', + value: 'i-20d061fa', + params: ['i-20d061fa'], + alias: null, + negate: false, + disabled: false, + }, + query: { + bool: { + should: [ + { + match_phrase: { + instance: 'i-20d061fa', + }, + }, + ], + minimum_should_match: 1, + }, + }, + $state: { + // @ts-ignore + store: 'appState', + }, + }, + { + meta: { + index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', + alias: null, + negate: true, + disabled: false, + type: 'phrase', + key: 'instance', + params: { + query: 'i-16fd8d2a', + }, + }, + query: { + match_phrase: { + instance: 'i-16fd8d2a', + }, + }, + + $state: { + // @ts-ignore + store: 'appState', + }, + }, + { + meta: { + index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', + alias: null, + negate: false, + disabled: false, + type: 'exists', + key: 'instance', + value: 'exists', + }, + exists: { + field: 'instance', + }, + $state: { + // @ts-ignore + store: 'appState', + }, + }, + { + meta: { + index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', + alias: null, + negate: false, + disabled: true, + type: 'exists', + key: 'instance', + value: 'exists', + }, + exists: { + field: 'region', + }, + $state: { + // @ts-ignore + store: 'appState', + }, + }, + ], + { + language: 'kuery', + query: 'instance : "i-088147ac"', + }, + CONTROLLED_BY_SWIM_LANE_FILTER + ) + ).toEqual({ + bool: { + must: [ + { + bool: { + minimum_should_match: 1, + should: [ + { + match_phrase: { + instance: 'i-088147ac', + }, + }, + ], + }, + }, + { + bool: { + should: [ + { + match_phrase: { + instance: 'i-20d061fa', + }, + }, + ], + minimum_should_match: 1, + }, + }, + { + exists: { + field: 'instance', + }, + }, + ], + must_not: [ + { + match_phrase: { + instance: 'i-16fd8d2a', + }, + }, + ], + }, + }); + }); + + test('should format lucene embeddable input to es query', () => { + expect( + processFilters( + [ + { + meta: { + index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', + type: 'phrases', + key: 'instance', + value: 'i-20d061fa', + params: ['i-20d061fa'], + alias: null, + negate: false, + disabled: false, + }, + query: { + bool: { + should: [ + { + match_phrase: { + instance: 'i-20d061fa', + }, + }, + ], + minimum_should_match: 1, + }, + }, + $state: { + // @ts-ignore + store: 'appState', + }, + }, + { + meta: { + index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', + alias: null, + negate: true, + disabled: false, + type: 'phrase', + key: 'instance', + params: { + query: 'i-16fd8d2a', + }, + }, + query: { + match_phrase: { + instance: 'i-16fd8d2a', + }, + }, + + $state: { + // @ts-ignore + store: 'appState', + }, + }, + { + meta: { + index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', + alias: null, + negate: false, + disabled: false, + type: 'exists', + key: 'instance', + value: 'exists', + }, + exists: { + field: 'instance', + }, + $state: { + // @ts-ignore + store: 'appState', + }, + }, + { + meta: { + index: 'c01fcbd0-8936-11ea-a70f-9f68bc175114', + alias: null, + negate: false, + disabled: true, + type: 'exists', + key: 'instance', + value: 'exists', + }, + exists: { + field: 'region', + }, + $state: { + // @ts-ignore + store: 'appState', + }, + }, + ], + { + language: 'lucene', + query: 'instance:i-d**', + }, + CONTROLLED_BY_SWIM_LANE_FILTER + ) + ).toEqual({ + bool: { + must: [ + { + query_string: { + query: 'instance:i-d**', + }, + }, + { + bool: { + should: [ + { + match_phrase: { + instance: 'i-20d061fa', + }, + }, + ], + minimum_should_match: 1, + }, + }, + { + exists: { + field: 'instance', + }, + }, + ], + must_not: [ + { + match_phrase: { + instance: 'i-16fd8d2a', + }, + }, + ], + }, + }); + }); +}); diff --git a/x-pack/plugins/ml/public/embeddables/common/process_filters.ts b/x-pack/plugins/ml/public/embeddables/common/process_filters.ts new file mode 100644 index 0000000000000..8ff75205b4d48 --- /dev/null +++ b/x-pack/plugins/ml/public/embeddables/common/process_filters.ts @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Filter } from '../../../../../../src/plugins/data/common/es_query/filters'; +import { Query } from '../../../../../../src/plugins/data/common/query'; +import { esKuery, esQuery } from '../../../../../../src/plugins/data/public'; + +export function processFilters(filters: Filter[], query: Query, controlledBy?: string) { + const inputQuery = + query.language === 'kuery' + ? esKuery.toElasticsearchQuery(esKuery.fromKueryExpression(query.query as string)) + : esQuery.luceneStringToDsl(query.query); + + const must = [inputQuery]; + const mustNot = []; + + for (const filter of filters) { + // ignore disabled filters as well as created by swim lane selection + if ( + filter.meta.disabled || + (controlledBy !== undefined && filter.meta.controlledBy === controlledBy) + ) + continue; + + const { + meta: { negate, type, key: fieldName }, + } = filter; + + let filterQuery = filter.query; + + if (filterQuery === undefined && type === 'exists') { + filterQuery = { + exists: { + field: fieldName, + }, + }; + } + + if (negate) { + mustNot.push(filterQuery); + } else { + must.push(filterQuery); + } + } + return { + bool: { + must, + must_not: mustNot, + }, + }; +} diff --git a/x-pack/plugins/ml/public/embeddables/constants.ts b/x-pack/plugins/ml/public/embeddables/constants.ts index c50264ccccd97..8307eeda23ec6 100644 --- a/x-pack/plugins/ml/public/embeddables/constants.ts +++ b/x-pack/plugins/ml/public/embeddables/constants.ts @@ -6,3 +6,4 @@ */ export const ANOMALY_SWIMLANE_EMBEDDABLE_TYPE = 'ml_anomaly_swimlane'; +export const ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE = 'ml_anomaly_charts'; diff --git a/x-pack/plugins/ml/public/embeddables/index.ts b/x-pack/plugins/ml/public/embeddables/index.ts index b1dd3ac0a4a17..2011d7217094b 100644 --- a/x-pack/plugins/ml/public/embeddables/index.ts +++ b/x-pack/plugins/ml/public/embeddables/index.ts @@ -8,6 +8,7 @@ import { AnomalySwimlaneEmbeddableFactory } from './anomaly_swimlane'; import type { MlCoreSetup } from '../plugin'; import type { EmbeddableSetup } from '../../../../../src/plugins/embeddable/public'; +import { AnomalyChartsEmbeddableFactory } from './anomaly_charts'; export * from './constants'; export * from './types'; @@ -20,4 +21,8 @@ export function registerEmbeddables(embeddable: EmbeddableSetup, core: MlCoreSet anomalySwimlaneEmbeddableFactory.type, anomalySwimlaneEmbeddableFactory ); + + const anomalyChartsFactory = new AnomalyChartsEmbeddableFactory(core.getStartServices); + + embeddable.registerEmbeddableFactory(anomalyChartsFactory.type, anomalyChartsFactory); } diff --git a/x-pack/plugins/ml/public/embeddables/types.ts b/x-pack/plugins/ml/public/embeddables/types.ts index 712aba707f4c7..05aea1770a415 100644 --- a/x-pack/plugins/ml/public/embeddables/types.ts +++ b/x-pack/plugins/ml/public/embeddables/types.ts @@ -23,6 +23,15 @@ import type { AnomalyDetectorService } from '../application/services/anomaly_det import type { AnomalyTimelineService } from '../application/services/anomaly_timeline_service'; import type { MlDependencies } from '../application/app'; import type { AppStateSelectedCells } from '../application/explorer/explorer_utils'; +import { AnomalyExplorerChartsService } from '../application/services/anomaly_explorer_charts_service'; +import { EntityField } from '../../common/util/anomaly_utils'; +import { isPopulatedObject } from '../../common/util/object_utils'; +import { + ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE, + ANOMALY_SWIMLANE_EMBEDDABLE_TYPE, +} from './constants'; +import { MlResultsService } from '../application/services/results_service'; +import { IndexPattern } from '../../../../../src/plugins/data/common/index_patterns/index_patterns'; export interface AnomalySwimlaneEmbeddableCustomInput { jobIds: JobId[]; @@ -69,3 +78,60 @@ export interface SwimLaneDrilldownContext extends EditSwimlanePanelContext { */ data?: AppStateSelectedCells; } + +export function isSwimLaneEmbeddable(arg: unknown): arg is SwimLaneDrilldownContext { + return ( + isPopulatedObject(arg) && + arg.hasOwnProperty('embeddable') && + arg.embeddable.type === ANOMALY_SWIMLANE_EMBEDDABLE_TYPE + ); +} + +/** + * Anomaly Explorer + */ +export interface AnomalyChartsEmbeddableCustomInput { + jobIds: JobId[]; + maxSeriesToPlot: number; + + // Embeddable inputs which are not included in the default interface + filters: Filter[]; + query: Query; + refreshConfig: RefreshInterval; + timeRange: TimeRange; + severityThreshold?: number; +} + +export type AnomalyChartsEmbeddableInput = EmbeddableInput & AnomalyChartsEmbeddableCustomInput; + +export interface AnomalyChartsServices { + anomalyDetectorService: AnomalyDetectorService; + anomalyExplorerService: AnomalyExplorerChartsService; + mlResultsService: MlResultsService; +} + +export type AnomalyChartsEmbeddableServices = [CoreStart, MlDependencies, AnomalyChartsServices]; +export interface AnomalyChartsCustomOutput { + entityFields?: EntityField[]; + severity?: number; + indexPatterns?: IndexPattern[]; +} +export type AnomalyChartsEmbeddableOutput = EmbeddableOutput & AnomalyChartsCustomOutput; +export interface EditAnomalyChartsPanelContext { + embeddable: IEmbeddable; +} +export interface AnomalyChartsFieldSelectionContext extends EditAnomalyChartsPanelContext { + /** + * Optional fields selected using anomaly charts + */ + data?: EntityField[]; +} +export function isAnomalyExplorerEmbeddable( + arg: unknown +): arg is AnomalyChartsFieldSelectionContext { + return ( + isPopulatedObject(arg) && + arg.hasOwnProperty('embeddable') && + arg.embeddable.type === ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE + ); +} diff --git a/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx b/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx new file mode 100644 index 0000000000000..03b6459f82f58 --- /dev/null +++ b/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { createAction } from '../../../../../src/plugins/ui_actions/public'; +import { MlCoreSetup } from '../plugin'; +import { Filter, FilterStateStore } from '../../../../../src/plugins/data/common'; +import { + ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE, + AnomalyChartsFieldSelectionContext, +} from '../embeddables'; +import { CONTROLLED_BY_ANOMALY_CHARTS_FILTER } from './constants'; +import { ENTITY_FIELD_OPERATIONS } from '../../common/util/anomaly_utils'; + +export const APPLY_ENTITY_FIELD_FILTERS_ACTION = 'applyEntityFieldFiltersAction'; + +export function createApplyEntityFieldFiltersAction( + getStartServices: MlCoreSetup['getStartServices'] +) { + return createAction({ + id: 'apply-entity-field-filters', + type: APPLY_ENTITY_FIELD_FILTERS_ACTION, + getIconType(context: AnomalyChartsFieldSelectionContext): string { + return 'filter'; + }, + getDisplayName() { + return i18n.translate('xpack.ml.actions.applyEntityFieldsFiltersTitle', { + defaultMessage: 'Filter for value', + }); + }, + async execute({ data }) { + if (!data) { + throw new Error('No entities provided'); + } + const [, pluginStart] = await getStartServices(); + const filterManager = pluginStart.data.query.filterManager; + + filterManager.addFilters( + data + .filter((d) => d.operation === ENTITY_FIELD_OPERATIONS.ADD) + .map(({ fieldName, fieldValue }) => { + return { + $state: { + store: FilterStateStore.APP_STATE, + }, + meta: { + alias: i18n.translate('xpack.ml.actions.entityFieldFilterAliasLabel', { + defaultMessage: '{labelValue}', + values: { + labelValue: `${fieldName}:${fieldValue}`, + }, + }), + controlledBy: CONTROLLED_BY_ANOMALY_CHARTS_FILTER, + negate: false, + disabled: false, + type: 'phrase', + key: fieldName, + params: { + query: fieldValue, + }, + }, + query: { + match_phrase: { + [fieldName]: fieldValue, + }, + }, + }; + }) + ); + + data + .filter((field) => field.operation === ENTITY_FIELD_OPERATIONS.REMOVE) + .forEach((field) => { + const filter = filterManager + .getFilters() + .find( + (f) => f.meta.key === field.fieldName && f.meta.params.query === field.fieldValue + ); + if (filter) { + filterManager.removeFilter(filter); + } + }); + }, + async isCompatible({ embeddable, data }) { + return embeddable.type === ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE && data !== undefined; + }, + }); +} diff --git a/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx b/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx index e3d2ca4ce0de1..0642687e2926c 100644 --- a/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx +++ b/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx @@ -44,7 +44,7 @@ export function createApplyInfluencerFiltersAction( }, meta: { alias: i18n.translate('xpack.ml.actions.influencerFilterAliasLabel', { - defaultMessage: 'Influencer {labelValue}', + defaultMessage: '{labelValue}', values: { labelValue: `${data.viewByFieldName}:${influencerValue}`, }, diff --git a/x-pack/plugins/ml/public/ui_actions/constants.ts b/x-pack/plugins/ml/public/ui_actions/constants.ts index 6dc3f03d10fd9..459f342dc4527 100644 --- a/x-pack/plugins/ml/public/ui_actions/constants.ts +++ b/x-pack/plugins/ml/public/ui_actions/constants.ts @@ -6,3 +6,4 @@ */ export const CONTROLLED_BY_SWIM_LANE_FILTER = 'anomaly-swim-lane'; +export const CONTROLLED_BY_ANOMALY_CHARTS_FILTER = 'anomaly-charts'; diff --git a/x-pack/plugins/ml/public/ui_actions/edit_anomaly_charts_panel_action.tsx b/x-pack/plugins/ml/public/ui_actions/edit_anomaly_charts_panel_action.tsx new file mode 100644 index 0000000000000..1895ed3acf981 --- /dev/null +++ b/x-pack/plugins/ml/public/ui_actions/edit_anomaly_charts_panel_action.tsx @@ -0,0 +1,60 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { createAction } from '../../../../../src/plugins/ui_actions/public'; +import { ViewMode } from '../../../../../src/plugins/embeddable/public'; +import { MlCoreSetup } from '../plugin'; +import { + ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE, + EditAnomalyChartsPanelContext, +} from '../embeddables'; + +export const EDIT_ANOMALY_CHARTS_PANEL_ACTION = 'editAnomalyChartsPanelAction'; + +export function createEditAnomalyChartsPanelAction( + getStartServices: MlCoreSetup['getStartServices'] +) { + return createAction({ + id: 'edit-anomaly-charts', + type: EDIT_ANOMALY_CHARTS_PANEL_ACTION, + getIconType(context): string { + return 'pencil'; + }, + getDisplayName: () => + i18n.translate('xpack.ml.actions.editAnomalyChartsTitle', { + defaultMessage: 'Edit anomaly charts', + }), + async execute({ embeddable }) { + if (!embeddable) { + throw new Error('Not possible to execute an action without the embeddable context'); + } + + const [coreStart] = await getStartServices(); + + try { + const { resolveEmbeddableAnomalyChartsUserInput } = await import( + '../embeddables/anomaly_charts/anomaly_charts_setup_flyout' + ); + + const result = await resolveEmbeddableAnomalyChartsUserInput( + coreStart, + embeddable.getInput() + ); + embeddable.updateInput(result); + } catch (e) { + return Promise.reject(); + } + }, + async isCompatible({ embeddable }) { + return ( + embeddable.type === ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE && + embeddable.getInput().viewMode === ViewMode.EDIT + ); + }, + }); +} diff --git a/x-pack/plugins/ml/public/ui_actions/index.ts b/x-pack/plugins/ml/public/ui_actions/index.ts index 6fec66382e3f9..46e928e5f55eb 100644 --- a/x-pack/plugins/ml/public/ui_actions/index.ts +++ b/x-pack/plugins/ml/public/ui_actions/index.ts @@ -12,17 +12,21 @@ import { UiActionsSetup } from '../../../../../src/plugins/ui_actions/public'; import { MlPluginStart, MlStartDependencies } from '../plugin'; import { CONTEXT_MENU_TRIGGER } from '../../../../../src/plugins/embeddable/public'; import { createApplyInfluencerFiltersAction } from './apply_influencer_filters_action'; -import { SWIM_LANE_SELECTION_TRIGGER, swimLaneSelectionTrigger } from './triggers'; +import { + entityFieldSelectionTrigger, + EXPLORER_ENTITY_FIELD_SELECTION_TRIGGER, + SWIM_LANE_SELECTION_TRIGGER, + swimLaneSelectionTrigger, +} from './triggers'; import { createApplyTimeRangeSelectionAction } from './apply_time_range_action'; import { createClearSelectionAction } from './clear_selection_action'; - +import { createEditAnomalyChartsPanelAction } from './edit_anomaly_charts_panel_action'; +import { createApplyEntityFieldFiltersAction } from './apply_entity_filters_action'; export { APPLY_TIME_RANGE_SELECTION_ACTION } from './apply_time_range_action'; export { EDIT_SWIMLANE_PANEL_ACTION } from './edit_swimlane_panel_action'; export { APPLY_INFLUENCER_FILTERS_ACTION } from './apply_influencer_filters_action'; export { OPEN_IN_ANOMALY_EXPLORER_ACTION } from './open_in_anomaly_explorer_action'; - -export { SWIM_LANE_SELECTION_TRIGGER } from './triggers'; - +export { SWIM_LANE_SELECTION_TRIGGER }; /** * Register ML UI actions */ @@ -34,24 +38,31 @@ export function registerMlUiActions( const editSwimlanePanelAction = createEditSwimlanePanelAction(core.getStartServices); const openInExplorerAction = createOpenInExplorerAction(core.getStartServices); const applyInfluencerFiltersAction = createApplyInfluencerFiltersAction(core.getStartServices); + const applyEntityFieldFilterAction = createApplyEntityFieldFiltersAction(core.getStartServices); const applyTimeRangeSelectionAction = createApplyTimeRangeSelectionAction(core.getStartServices); const clearSelectionAction = createClearSelectionAction(core.getStartServices); + const editExplorerPanelAction = createEditAnomalyChartsPanelAction(core.getStartServices); // Register actions uiActions.registerAction(editSwimlanePanelAction); uiActions.registerAction(openInExplorerAction); uiActions.registerAction(applyInfluencerFiltersAction); + uiActions.registerAction(applyEntityFieldFilterAction); uiActions.registerAction(applyTimeRangeSelectionAction); uiActions.registerAction(clearSelectionAction); + uiActions.registerAction(editExplorerPanelAction); // Assign triggers uiActions.attachAction(CONTEXT_MENU_TRIGGER, editSwimlanePanelAction.id); + uiActions.attachAction(CONTEXT_MENU_TRIGGER, editExplorerPanelAction.id); uiActions.attachAction(CONTEXT_MENU_TRIGGER, openInExplorerAction.id); uiActions.registerTrigger(swimLaneSelectionTrigger); + uiActions.registerTrigger(entityFieldSelectionTrigger); uiActions.addTriggerAction(SWIM_LANE_SELECTION_TRIGGER, applyInfluencerFiltersAction); uiActions.addTriggerAction(SWIM_LANE_SELECTION_TRIGGER, applyTimeRangeSelectionAction); uiActions.addTriggerAction(SWIM_LANE_SELECTION_TRIGGER, openInExplorerAction); uiActions.addTriggerAction(SWIM_LANE_SELECTION_TRIGGER, clearSelectionAction); + uiActions.addTriggerAction(EXPLORER_ENTITY_FIELD_SELECTION_TRIGGER, applyEntityFieldFilterAction); } diff --git a/x-pack/plugins/ml/public/ui_actions/open_in_anomaly_explorer_action.tsx b/x-pack/plugins/ml/public/ui_actions/open_in_anomaly_explorer_action.tsx index 614df96b59963..7353502f95b47 100644 --- a/x-pack/plugins/ml/public/ui_actions/open_in_anomaly_explorer_action.tsx +++ b/x-pack/plugins/ml/public/ui_actions/open_in_anomaly_explorer_action.tsx @@ -9,12 +9,21 @@ import { i18n } from '@kbn/i18n'; import { createAction } from '../../../../../src/plugins/ui_actions/public'; import { MlCoreSetup } from '../plugin'; import { ML_APP_URL_GENERATOR } from '../../common/constants/ml_url_generator'; -import { ANOMALY_SWIMLANE_EMBEDDABLE_TYPE, SwimLaneDrilldownContext } from '../embeddables'; +import { + ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE, + ANOMALY_SWIMLANE_EMBEDDABLE_TYPE, + AnomalyChartsFieldSelectionContext, + isAnomalyExplorerEmbeddable, + isSwimLaneEmbeddable, + SwimLaneDrilldownContext, +} from '../embeddables'; +import { ENTITY_FIELD_OPERATIONS } from '../../common/util/anomaly_utils'; +import { ExplorerAppState } from '../../common/types/ml_url_generator'; export const OPEN_IN_ANOMALY_EXPLORER_ACTION = 'openInAnomalyExplorerAction'; export function createOpenInExplorerAction(getStartServices: MlCoreSetup['getStartServices']) { - return createAction({ + return createAction({ id: 'open-in-anomaly-explorer', type: OPEN_IN_ANOMALY_EXPLORER_ACTION, getIconType(context): string { @@ -25,42 +34,98 @@ export function createOpenInExplorerAction(getStartServices: MlCoreSetup['getSta defaultMessage: 'Open in Anomaly Explorer', }); }, - async getHref({ embeddable, data }): Promise { + async getHref(context): Promise { const [, pluginsStart] = await getStartServices(); const urlGenerator = pluginsStart.share.urlGenerators.getUrlGenerator(ML_APP_URL_GENERATOR); - const { jobIds, timeRange, viewBy } = embeddable.getInput(); - const { perPage, fromPage } = embeddable.getOutput(); - return urlGenerator.createUrl({ - page: 'explorer', - pageState: { - jobIds, - timeRange, - mlExplorerSwimlane: { - viewByFromPage: fromPage, - viewByPerPage: perPage, - viewByFieldName: viewBy, - ...(data - ? { - selectedType: data.type, - selectedTimes: data.times, - selectedLanes: data.lanes, - } - : {}), + if (isSwimLaneEmbeddable(context)) { + const { embeddable, data } = context; + + const { jobIds, timeRange, viewBy } = embeddable.getInput(); + const { perPage, fromPage } = embeddable.getOutput(); + + return urlGenerator.createUrl({ + page: 'explorer', + pageState: { + jobIds, + timeRange, + mlExplorerSwimlane: { + viewByFromPage: fromPage, + viewByPerPage: perPage, + viewByFieldName: viewBy, + ...(data + ? { + selectedType: data.type, + selectedTimes: data.times, + selectedLanes: data.lanes, + } + : {}), + }, }, - }, - }); + }); + } else if (isAnomalyExplorerEmbeddable(context)) { + const { embeddable } = context; + + const { jobIds, timeRange } = embeddable.getInput(); + const { entityFields } = embeddable.getOutput(); + + let mlExplorerFilter: ExplorerAppState['mlExplorerFilter'] | undefined; + if ( + Array.isArray(entityFields) && + entityFields.length === 1 && + entityFields[0].operation === ENTITY_FIELD_OPERATIONS.ADD + ) { + const { fieldName, fieldValue } = entityFields[0]; + if (fieldName !== undefined && fieldValue !== undefined) { + const influencersFilterQuery = { + bool: { + should: [ + { + match_phrase: { + [fieldName]: fieldValue, + }, + }, + ], + minimum_should_match: 1, + }, + }; + const filteredFields = [fieldName, fieldValue]; + mlExplorerFilter = { + influencersFilterQuery, + filterActive: true, + queryString: `${fieldName}:"${fieldValue}"`, + ...(Array.isArray(filteredFields) ? { filteredFields } : {}), + }; + } + } + return urlGenerator.createUrl({ + page: 'explorer', + pageState: { + jobIds, + timeRange, + ...(mlExplorerFilter ? { mlExplorerFilter } : {}), + query: {}, + }, + }); + } }, - async execute({ embeddable, data }) { - if (!embeddable) { + async execute(context) { + if (!context.embeddable) { throw new Error('Not possible to execute an action without the embeddable context'); } const [{ application }] = await getStartServices(); - const anomalyExplorerUrl = await this.getHref!({ embeddable, data }); - await application.navigateToUrl(anomalyExplorerUrl!); + const anomalyExplorerUrl = await this.getHref!(context); + if (anomalyExplorerUrl) { + await application.navigateToUrl(anomalyExplorerUrl!); + } }, - async isCompatible({ embeddable }: SwimLaneDrilldownContext) { - return embeddable.type === ANOMALY_SWIMLANE_EMBEDDABLE_TYPE; + async isCompatible({ + embeddable, + }: SwimLaneDrilldownContext | AnomalyChartsFieldSelectionContext) { + return ( + embeddable.type === ANOMALY_SWIMLANE_EMBEDDABLE_TYPE || + embeddable.type === ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE + ); }, }); } diff --git a/x-pack/plugins/ml/public/ui_actions/triggers.ts b/x-pack/plugins/ml/public/ui_actions/triggers.ts index 7763facbdc158..05074ce6df271 100644 --- a/x-pack/plugins/ml/public/ui_actions/triggers.ts +++ b/x-pack/plugins/ml/public/ui_actions/triggers.ts @@ -16,3 +16,12 @@ export const swimLaneSelectionTrigger: Trigger = { title: '', description: 'Swim lane selection triggered', }; + +export const EXPLORER_ENTITY_FIELD_SELECTION_TRIGGER = 'EXPLORER_ENTITY_FIELD_SELECTION_TRIGGER'; +export const entityFieldSelectionTrigger: Trigger = { + id: EXPLORER_ENTITY_FIELD_SELECTION_TRIGGER, + // This is empty string to hide title of ui_actions context menu that appears + // when this trigger is executed. + title: '', + description: 'Entity field selection triggered', +}; diff --git a/x-pack/test/accessibility/apps/ml_embeddables_in_dashboard.ts b/x-pack/test/accessibility/apps/ml_embeddables_in_dashboard.ts new file mode 100644 index 0000000000000..1761c44813430 --- /dev/null +++ b/x-pack/test/accessibility/apps/ml_embeddables_in_dashboard.ts @@ -0,0 +1,134 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../ftr_provider_context'; +import { Datafeed, Job } from '../../../plugins/ml/common/types/anomaly_detection_jobs'; + +// @ts-expect-error not full interface +const JOB_CONFIG: Job = { + job_id: `fq_multi_1_ae`, + description: + 'mean/min/max(responsetime) partition=airline on farequote dataset with 1h bucket span', + groups: ['farequote', 'automated', 'multi-metric'], + analysis_config: { + bucket_span: '1h', + influencers: ['airline'], + detectors: [ + { function: 'mean', field_name: 'responsetime', partition_field_name: 'airline' }, + { function: 'min', field_name: 'responsetime', partition_field_name: 'airline' }, + { function: 'max', field_name: 'responsetime', partition_field_name: 'airline' }, + ], + }, + data_description: { time_field: '@timestamp' }, + analysis_limits: { model_memory_limit: '20mb' }, + model_plot_config: { enabled: true }, +}; + +// @ts-expect-error not full interface +const DATAFEED_CONFIG: Datafeed = { + datafeed_id: 'datafeed-fq_multi_1_ae', + indices: ['ft_farequote'], + job_id: 'fq_multi_1_ae', + query: { bool: { must: [{ match_all: {} }] } }, +}; + +const testDataList = [ + { + suiteSuffix: 'with multi metric job', + panelTitle: `ML anomaly charts for ${JOB_CONFIG.job_id}`, + jobConfig: JOB_CONFIG, + datafeedConfig: DATAFEED_CONFIG, + expected: { + influencers: [ + { + field: 'airline', + count: 10, + labelsContained: ['AAL'], + }, + ], + }, + }, +]; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const ml = getService('ml'); + const PageObjects = getPageObjects(['common', 'timePicker', 'dashboard']); + const dashboardAddPanel = getService('dashboardAddPanel'); + const a11y = getService('a11y'); /* this is the wrapping service around axe */ + + describe('machine learning embeddables anomaly charts', function () { + before(async () => { + await ml.securityCommon.createMlRoles(); + await ml.securityCommon.createMlUsers(); + + await esArchiver.loadIfNeeded('ml/farequote'); + await ml.testResources.createIndexPatternIfNeeded('ft_farequote', '@timestamp'); + await ml.testResources.setKibanaTimeZoneToUTC(); + await ml.securityUI.loginAsMlPowerUser(); + }); + + after(async () => { + await ml.securityCommon.cleanMlUsers(); + await ml.securityCommon.cleanMlRoles(); + await esArchiver.unload('ml/farequote'); + await ml.securityUI.logout(); + }); + + for (const testData of testDataList) { + describe(testData.suiteSuffix, function () { + before(async () => { + await ml.api.createAndRunAnomalyDetectionLookbackJob( + testData.jobConfig, + testData.datafeedConfig + ); + await PageObjects.common.navigateToApp('dashboard'); + }); + + after(async () => { + await ml.api.cleanMlIndices(); + }); + + it('can open job selection flyout', async () => { + await PageObjects.dashboard.clickCreateDashboardPrompt(); + await ml.dashboardEmbeddables.assertDashboardIsEmpty(); + await dashboardAddPanel.clickOpenAddPanel(); + await dashboardAddPanel.clickAddNewEmbeddableLink('ml_anomaly_charts'); + await ml.dashboardJobSelectionTable.assertJobSelectionTableExists(); + await a11y.testAppSnapshot(); + }); + + it('can select jobs', async () => { + await ml.dashboardJobSelectionTable.setRowCheckboxState(testData.jobConfig.job_id, true); + await ml.dashboardJobSelectionTable.applyJobSelection(); + await ml.dashboardEmbeddables.assertAnomalyChartsEmbeddableInitializerExists(); + await a11y.testAppSnapshot(); + }); + + it('create new anomaly charts panel', async () => { + await ml.dashboardEmbeddables.clickInitializerConfirmButtonEnabled(); + await ml.dashboardEmbeddables.assertDashboardPanelExists(testData.panelTitle); + + await ml.dashboardEmbeddables.assertNoMatchingAnomaliesMessageExists(); + await a11y.testAppSnapshot(); + }); + + it('show anomaly charts', async () => { + await PageObjects.timePicker.setAbsoluteRange( + 'Feb 7, 2016 @ 00:00:00.000', + 'Feb 11, 2016 @ 00:00:00.000' + ); + await PageObjects.timePicker.pauseAutoRefresh(); + await ml.dashboardEmbeddables.assertAnomalyChartsSeverityThresholdControlExists(); + await ml.dashboardEmbeddables.assertAnomalyChartsExists(); + + await a11y.testAppSnapshot(); + }); + }); + } + }); +} diff --git a/x-pack/test/accessibility/config.ts b/x-pack/test/accessibility/config.ts index 2a8840c364927..289247beb4771 100644 --- a/x-pack/test/accessibility/config.ts +++ b/x-pack/test/accessibility/config.ts @@ -35,6 +35,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { require.resolve('./apps/upgrade_assistant'), require.resolve('./apps/canvas'), require.resolve('./apps/security_solution'), + require.resolve('./apps/ml_embeddables_in_dashboard'), ], pageObjects, diff --git a/x-pack/test/api_integration/apis/ml/results/get_anomalies_table_data.ts b/x-pack/test/api_integration/apis/ml/results/get_anomalies_table_data.ts index 1505e6fbe09be..2aaee3ad2bf71 100644 --- a/x-pack/test/api_integration/apis/ml/results/get_anomalies_table_data.ts +++ b/x-pack/test/api_integration/apis/ml/results/get_anomalies_table_data.ts @@ -38,7 +38,7 @@ export default ({ getService }: FtrProviderContext) => { // @ts-expect-error not full interface const DATAFEED_CONFIG: Datafeed = { - datafeed_id: 'datafeed-fq_multi_1_se', + datafeed_id: 'datafeed-fq_multi_1_ae', indices: ['ft_farequote'], job_id: 'fq_multi_1_ae', query: { bool: { must: [{ match_all: {} }] } }, diff --git a/x-pack/test/functional/apps/ml/anomaly_detection/anomaly_explorer.ts b/x-pack/test/functional/apps/ml/anomaly_detection/anomaly_explorer.ts index a08a5cfca2afd..4461c5aec42fc 100644 --- a/x-pack/test/functional/apps/ml/anomaly_detection/anomaly_explorer.ts +++ b/x-pack/test/functional/apps/ml/anomaly_detection/anomaly_explorer.ts @@ -31,7 +31,7 @@ const JOB_CONFIG: Job = { // @ts-expect-error not full interface const DATAFEED_CONFIG: Datafeed = { - datafeed_id: 'datafeed-fq_multi_1_se', + datafeed_id: 'datafeed-fq_multi_1_ae', indices: ['ft_farequote'], job_id: 'fq_multi_1_ae', query: { bool: { must: [{ match_all: {} }] } }, diff --git a/x-pack/test/functional/apps/ml/embeddables/anomaly_charts_dashboard_embeddables.ts b/x-pack/test/functional/apps/ml/embeddables/anomaly_charts_dashboard_embeddables.ts new file mode 100644 index 0000000000000..1619765946916 --- /dev/null +++ b/x-pack/test/functional/apps/ml/embeddables/anomaly_charts_dashboard_embeddables.ts @@ -0,0 +1,119 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { Job, Datafeed } from '../../../../../plugins/ml/common/types/anomaly_detection_jobs'; + +// @ts-expect-error not full interface +const JOB_CONFIG: Job = { + job_id: `fq_multi_1_ae`, + description: + 'mean/min/max(responsetime) partition=airline on farequote dataset with 1h bucket span', + groups: ['farequote', 'automated', 'multi-metric'], + analysis_config: { + bucket_span: '1h', + influencers: ['airline'], + detectors: [ + { function: 'mean', field_name: 'responsetime', partition_field_name: 'airline' }, + { function: 'min', field_name: 'responsetime', partition_field_name: 'airline' }, + { function: 'max', field_name: 'responsetime', partition_field_name: 'airline' }, + ], + }, + data_description: { time_field: '@timestamp' }, + analysis_limits: { model_memory_limit: '20mb' }, + model_plot_config: { enabled: true }, +}; + +// @ts-expect-error not full interface +const DATAFEED_CONFIG: Datafeed = { + datafeed_id: 'datafeed-fq_multi_1_ae', + indices: ['ft_farequote'], + job_id: 'fq_multi_1_ae', + query: { bool: { must: [{ match_all: {} }] } }, +}; + +const testDataList = [ + { + suiteSuffix: 'with multi metric job', + panelTitle: `ML anomaly charts for ${JOB_CONFIG.job_id}`, + jobConfig: JOB_CONFIG, + datafeedConfig: DATAFEED_CONFIG, + expected: { + influencers: [ + { + field: 'airline', + count: 10, + labelsContained: ['AAL'], + }, + ], + }, + }, +]; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const ml = getService('ml'); + const PageObjects = getPageObjects(['common', 'timePicker', 'dashboard']); + const dashboardAddPanel = getService('dashboardAddPanel'); + + describe('anomaly charts', function () { + this.tags(['mlqa']); + + before(async () => { + await esArchiver.loadIfNeeded('ml/farequote'); + await ml.testResources.createIndexPatternIfNeeded('ft_farequote', '@timestamp'); + await ml.testResources.setKibanaTimeZoneToUTC(); + await ml.securityUI.loginAsMlPowerUser(); + }); + + for (const testData of testDataList) { + describe(testData.suiteSuffix, function () { + before(async () => { + await ml.api.createAndRunAnomalyDetectionLookbackJob( + testData.jobConfig, + testData.datafeedConfig + ); + await PageObjects.common.navigateToApp('dashboard'); + }); + + after(async () => { + await ml.api.cleanMlIndices(); + }); + + it('can open job selection flyout', async () => { + await PageObjects.dashboard.clickCreateDashboardPrompt(); + await ml.dashboardEmbeddables.assertDashboardIsEmpty(); + await dashboardAddPanel.clickOpenAddPanel(); + await dashboardAddPanel.clickAddNewEmbeddableLink('ml_anomaly_charts'); + await ml.dashboardJobSelectionTable.assertJobSelectionTableExists(); + }); + + it('can select jobs', async () => { + await ml.dashboardJobSelectionTable.setRowCheckboxState(testData.jobConfig.job_id, true); + await ml.dashboardJobSelectionTable.applyJobSelection(); + await ml.dashboardEmbeddables.assertAnomalyChartsEmbeddableInitializerExists(); + await ml.dashboardEmbeddables.assertSelectMaxSeriesToPlotValue(6); + }); + + it('create new anomaly charts panel', async () => { + await ml.dashboardEmbeddables.clickInitializerConfirmButtonEnabled(); + await ml.dashboardEmbeddables.assertDashboardPanelExists(testData.panelTitle); + + await ml.dashboardEmbeddables.assertNoMatchingAnomaliesMessageExists(); + + await PageObjects.timePicker.setAbsoluteRange( + 'Feb 7, 2016 @ 00:00:00.000', + 'Feb 11, 2016 @ 00:00:00.000' + ); + await PageObjects.timePicker.pauseAutoRefresh(); + await ml.dashboardEmbeddables.assertAnomalyChartsSeverityThresholdControlExists(); + await ml.dashboardEmbeddables.assertAnomalyChartsExists(); + }); + }); + } + }); +} diff --git a/x-pack/test/functional/apps/ml/embeddables/index.ts b/x-pack/test/functional/apps/ml/embeddables/index.ts new file mode 100644 index 0000000000000..dc059a1862c80 --- /dev/null +++ b/x-pack/test/functional/apps/ml/embeddables/index.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('embeddables', function () { + this.tags(['skipFirefox']); + loadTestFile(require.resolve('./anomaly_charts_dashboard_embeddables')); + }); +} diff --git a/x-pack/test/functional/apps/ml/index.ts b/x-pack/test/functional/apps/ml/index.ts index ed14cd6d77282..73207bc91e8d3 100644 --- a/x-pack/test/functional/apps/ml/index.ts +++ b/x-pack/test/functional/apps/ml/index.ts @@ -87,6 +87,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./feature_controls')); loadTestFile(require.resolve('./settings')); + loadTestFile(require.resolve('./embeddables')); }); }); } diff --git a/x-pack/test/functional/services/ml/dashboard_embeddables.ts b/x-pack/test/functional/services/ml/dashboard_embeddables.ts new file mode 100644 index 0000000000000..d0e100a57075a --- /dev/null +++ b/x-pack/test/functional/services/ml/dashboard_embeddables.ts @@ -0,0 +1,95 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../ftr_provider_context'; +import { MlCommonUI } from './common_ui'; + +export function MachineLearningDashboardEmbeddablesProvider( + { getService }: FtrProviderContext, + mlCommonUI: MlCommonUI +) { + const retry = getService('retry'); + const testSubjects = getService('testSubjects'); + const find = getService('find'); + + return { + async assertAnomalyChartsEmbeddableInitializerExists() { + await retry.tryForTime(5000, async () => { + await testSubjects.existOrFail('mlAnomalyChartsEmbeddableInitializer'); + }); + }, + + async assertAnomalyChartsEmbeddableInitializerNotExists() { + await retry.tryForTime(5000, async () => { + await testSubjects.missingOrFail('mlAnomalyChartsEmbeddableInitializer'); + }); + }, + + async assertSelectMaxSeriesToPlotValue(expectedValue: number) { + const subj = 'mlAnomalyChartsInitializerMaxSeries'; + await testSubjects.existOrFail(subj); + const input = await testSubjects.find(subj); + const actualValue = await input.getAttribute('value'); + + expect(actualValue).to.eql( + expectedValue, + `Expected max series to plot value to be ${expectedValue}, got ${actualValue}` + ); + }, + + async assertPanelTitle(expectedValue: string) { + const actualValue = await testSubjects.getAttribute('panelTitleInput', 'value'); + expect(actualValue).to.eql( + expectedValue, + `Panel title should be '${expectedValue}' (got '${actualValue}')` + ); + }, + + async setPanelTitle(panelTitle: string) { + await mlCommonUI.setValueWithChecks('panelTitleInput', panelTitle, { + clearWithKeyboard: true, + }); + await this.assertPanelTitle(panelTitle); + }, + + async assertInitializerConfirmButtonEnabled() { + const subj = 'mlAnomalyChartsInitializerConfirmButton'; + await testSubjects.existOrFail(subj); + await testSubjects.isEnabled(subj); + }, + + async clickInitializerConfirmButtonEnabled() { + const subj = 'mlAnomalyChartsInitializerConfirmButton'; + await this.assertInitializerConfirmButtonEnabled(); + await testSubjects.clickWhenNotDisabled(subj); + await this.assertAnomalyChartsEmbeddableInitializerNotExists(); + }, + + async assertDashboardIsEmpty() { + await testSubjects.existOrFail('emptyDashboardWidget'); + }, + + async assertDashboardPanelExists(title: string) { + await retry.tryForTime(5000, async () => { + await find.existsByLinkText(title); + }); + }, + + async assertAnomalyChartsSeverityThresholdControlExists() { + await testSubjects.existOrFail(`mlAnomalySeverityThresholdControls`); + }, + + async assertNoMatchingAnomaliesMessageExists() { + await testSubjects.existOrFail(`mlNoMatchingAnomaliesMessage`); + }, + + async assertAnomalyChartsExists() { + await testSubjects.existOrFail(`mlExplorerChartsContainer`); + }, + }; +} diff --git a/x-pack/test/functional/services/ml/dashboard_job_selection_table.ts b/x-pack/test/functional/services/ml/dashboard_job_selection_table.ts new file mode 100644 index 0000000000000..b9fe43b000baf --- /dev/null +++ b/x-pack/test/functional/services/ml/dashboard_job_selection_table.ts @@ -0,0 +1,81 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export function MachineLearningDashboardJobSelectionTableProvider({ + getService, +}: FtrProviderContext) { + const retry = getService('retry'); + const testSubjects = getService('testSubjects'); + + return { + async assertJobSelectionTableExists(): Promise { + await retry.tryForTime(5000, async () => { + await testSubjects.existOrFail('mlCustomSelectionTable'); + }); + }, + + async assertJobSelectionTableNotExists(): Promise { + await retry.tryForTime(5000, async () => { + await testSubjects.missingOrFail('mlCustomSelectionTable'); + }); + }, + + rowSelector(jobId: string, subSelector?: string) { + const row = `~mlCustomSelectionTable > ~row-${jobId}`; + return !subSelector ? row : `${row} > ${subSelector}`; + }, + + async assertRowExists(jobId: string): Promise { + await retry.tryForTime(5000, async () => { + await testSubjects.existOrFail(this.rowSelector(jobId)); + }); + }, + + async assertRowCheckboxExists(jobId: string) { + await testSubjects.existOrFail(this.rowSelector(jobId, `${jobId}-checkbox`)); + }, + + async getRowCheckboxCheckedState(jobId: string): Promise { + const subj = this.rowSelector(jobId, `${jobId}-checkbox`); + const isSelected = await testSubjects.getAttribute(subj, 'checked'); + return isSelected === 'true'; + }, + + async assertRowCheckboxCheckedState(jobId: string, expectedCheckState: boolean) { + const actualCheckState = await this.getRowCheckboxCheckedState(jobId); + expect(actualCheckState).to.eql( + expectedCheckState, + `Table row for job '${jobId}' check state should be '${expectedCheckState}' (got '${actualCheckState}')` + ); + }, + + async setRowCheckboxState(jobId: string, expectCheckedState: boolean) { + const subj = this.rowSelector(jobId, `${jobId}-checkbox`); + if ((await this.getRowCheckboxCheckedState(jobId)) !== expectCheckedState) { + await retry.tryForTime(5 * 1000, async () => { + await testSubjects.clickWhenNotDisabled(subj); + await this.assertRowCheckboxCheckedState(jobId, expectCheckedState); + }); + } + }, + + async assertApplyJobSelectionEnabled() { + const subj = 'mlFlyoutJobSelectorButtonApply'; + await testSubjects.existOrFail(subj); + await testSubjects.isEnabled(subj); + }, + + async applyJobSelection() { + const subj = 'mlFlyoutJobSelectorButtonApply'; + await testSubjects.clickWhenNotDisabled(subj); + await this.assertJobSelectionTableNotExists(); + }, + }; +} diff --git a/x-pack/test/functional/services/ml/index.ts b/x-pack/test/functional/services/ml/index.ts index 83c0c5e416434..fe46263f50266 100644 --- a/x-pack/test/functional/services/ml/index.ts +++ b/x-pack/test/functional/services/ml/index.ts @@ -46,6 +46,8 @@ import { MachineLearningTestResourcesProvider } from './test_resources'; import { MachineLearningDataVisualizerTableProvider } from './data_visualizer_table'; import { MachineLearningAlertingProvider } from './alerting'; import { SwimLaneProvider } from './swim_lane'; +import { MachineLearningDashboardJobSelectionTableProvider } from './dashboard_job_selection_table'; +import { MachineLearningDashboardEmbeddablesProvider } from './dashboard_embeddables'; export function MachineLearningProvider(context: FtrProviderContext) { const commonAPI = MachineLearningCommonAPIProvider(context); @@ -56,6 +58,10 @@ export function MachineLearningProvider(context: FtrProviderContext) { const api = MachineLearningAPIProvider(context); const commonConfig = MachineLearningCommonConfigsProvider(context); const customUrls = MachineLearningCustomUrlsProvider(context); + + const dashboardJobSelectionTable = MachineLearningDashboardJobSelectionTableProvider(context); + const dashboardEmbeddables = MachineLearningDashboardEmbeddablesProvider(context, commonUI); + const dataFrameAnalytics = MachineLearningDataFrameAnalyticsProvider(context, api); const dataFrameAnalyticsCreation = MachineLearningDataFrameAnalyticsCreationProvider( context, @@ -108,6 +114,8 @@ export function MachineLearningProvider(context: FtrProviderContext) { commonConfig, commonUI, customUrls, + dashboardJobSelectionTable, + dashboardEmbeddables, dataFrameAnalytics, dataFrameAnalyticsCreation, dataFrameAnalyticsEdit, From 6b59fe3d017aafd87f6565bbf9d98b98dccba4a2 Mon Sep 17 00:00:00 2001 From: Constance Date: Fri, 26 Mar 2021 11:17:00 -0700 Subject: [PATCH 17/55] [App Search] Refactor EuiPageHeader components to use new props instead of children (#95454) * Update EuiPageHeaders with basic titles * Update engine creation views - meta engine - move to description + misc fix - non-heading EuiTitles that do not match the standalone UI * Update EuiPageHeaders with simpler actions * Update Documents page header + test reorg - move DocumentCreationButton tests to its own test block * Update EnginesOverviewHeader (+ refactors) - Switch from FormattedMessage to i18n to match rest of repo - Switch to eslint-disbable instead of doing a buttonProps workaround (this will get deleted anyway post-migration) * whoops --- .../components/credentials/credentials.tsx | 9 +-- .../curations/views/curations.test.tsx | 4 +- .../components/curations/views/curations.tsx | 18 ++--- .../documents/document_detail.test.tsx | 5 +- .../components/documents/document_detail.tsx | 18 ++--- .../components/documents/documents.test.tsx | 53 +++++++++----- .../components/documents/documents.tsx | 22 +++--- .../engine_creation/engine_creation.tsx | 12 +--- .../engine_overview_empty.test.tsx | 7 +- .../engine_overview/engine_overview_empty.tsx | 31 +++------ .../engine_overview_metrics.test.tsx | 4 +- .../engine_overview_metrics.tsx | 16 ++--- .../engines/components/header.test.tsx | 10 +-- .../components/engines/components/header.tsx | 69 ++++++++----------- .../app_search/components/library/library.tsx | 9 +-- .../meta_engine_creation.tsx | 39 ++++++----- .../components/settings/settings.tsx | 16 +---- 17 files changed, 143 insertions(+), 199 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials.tsx index fc411c3dff866..72cbe5bdd898c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials.tsx @@ -11,7 +11,6 @@ import { useActions, useValues } from 'kea'; import { EuiPageHeader, - EuiPageHeaderSection, EuiTitle, EuiPageContentBody, EuiPanel, @@ -55,13 +54,7 @@ export const Credentials: React.FC = () => { return ( <> - - - -

{CREDENTIALS_TITLE}

-
-
-
+ {shouldShowCredentialsForm && } diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.test.tsx index d06144023e170..e680579f7b0b7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.test.tsx @@ -17,7 +17,7 @@ import React from 'react'; import { shallow, ReactWrapper } from 'enzyme'; -import { EuiBasicTable, EuiEmptyPrompt } from '@elastic/eui'; +import { EuiPageHeader, EuiBasicTable, EuiEmptyPrompt } from '@elastic/eui'; import { Loading } from '../../../../shared/loading'; @@ -64,7 +64,7 @@ describe('Curations', () => { it('renders', () => { const wrapper = shallow(); - expect(wrapper.find('h1').text()).toEqual('Curated results'); + expect(wrapper.find(EuiPageHeader).prop('pageTitle')).toEqual('Curated results'); expect(wrapper.find(CurationsTable)).toHaveLength(1); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.tsx index fd0a36dfebec7..42b030328ce9a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.tsx @@ -11,9 +11,7 @@ import { useValues, useActions } from 'kea'; import { EuiPageHeader, - EuiPageHeaderSection, EuiPageContent, - EuiTitle, EuiBasicTable, EuiBasicTableColumn, EuiEmptyPrompt, @@ -47,18 +45,14 @@ export const Curations: React.FC = () => { return ( <> - - - -

{CURATIONS_OVERVIEW_TITLE}

-
-
- + {CREATE_NEW_CURATION_TITLE} - - -
+ , + ]} + /> diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.test.tsx index ba060b7497270..a33161918c7f5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.test.tsx @@ -14,7 +14,7 @@ import { useParams } from 'react-router-dom'; import { shallow } from 'enzyme'; -import { EuiPageContent, EuiBasicTable } from '@elastic/eui'; +import { EuiPageHeader, EuiPageContent, EuiBasicTable } from '@elastic/eui'; import { Loading } from '../../../shared/loading'; import { ResultFieldValue } from '../result'; @@ -102,7 +102,8 @@ describe('DocumentDetail', () => { it('will delete the document when the delete button is pressed', () => { const wrapper = shallow(); - const button = wrapper.find('[data-test-subj="DeleteDocumentButton"]'); + const header = wrapper.find(EuiPageHeader).dive().children().dive(); + const button = header.find('[data-test-subj="DeleteDocumentButton"]'); button.simulate('click'); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.tsx index 8f80978c29002..0ad000d289d2c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.tsx @@ -13,8 +13,6 @@ import { useActions, useValues } from 'kea'; import { EuiButton, EuiPageHeader, - EuiPageHeaderSection, - EuiTitle, EuiPageContentBody, EuiPageContent, EuiBasicTable, @@ -79,13 +77,9 @@ export const DocumentDetail: React.FC = ({ engineBreadcrumb }) => { return ( <> - - - -

{DOCUMENT_DETAIL_TITLE(documentTitle)}

-
-
- + = ({ engineBreadcrumb }) => { {i18n.translate('xpack.enterpriseSearch.appSearch.documentDetail.deleteButton', { defaultMessage: 'Delete', })} - - -
+ , + ]} + /> diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents.test.tsx index ace76ae55c046..ed4773e257a2b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents.test.tsx @@ -9,7 +9,9 @@ import { setMockValues } from '../../../__mocks__/kea.mock'; import React from 'react'; -import { shallow } from 'enzyme'; +import { shallow, ShallowWrapper } from 'enzyme'; + +import { EuiPageHeader } from '@elastic/eui'; import { DocumentCreationButton } from './document_creation_button'; import { SearchExperience } from './search_experience'; @@ -32,46 +34,61 @@ describe('Documents', () => { expect(wrapper.find(SearchExperience).exists()).toBe(true); }); - it('renders a DocumentCreationButton if the user can manage engine documents', () => { - setMockValues({ - ...values, - myRole: { canManageEngineDocuments: true }, + describe('DocumentCreationButton', () => { + const getHeader = (wrapper: ShallowWrapper) => + wrapper.find(EuiPageHeader).dive().children().dive(); + + it('renders a DocumentCreationButton if the user can manage engine documents', () => { + setMockValues({ + ...values, + myRole: { canManageEngineDocuments: true }, + }); + + const wrapper = shallow(); + expect(getHeader(wrapper).find(DocumentCreationButton).exists()).toBe(true); }); - const wrapper = shallow(); - expect(wrapper.find(DocumentCreationButton).exists()).toBe(true); - }); + it('does not render a DocumentCreationButton if the user cannot manage engine documents', () => { + setMockValues({ + ...values, + myRole: { canManageEngineDocuments: false }, + }); - describe('Meta Engines', () => { - it('renders a Meta Engines message if this is a meta engine', () => { + const wrapper = shallow(); + expect(getHeader(wrapper).find(DocumentCreationButton).exists()).toBe(false); + }); + + it('does not render a DocumentCreationButton for meta engines even if the user can manage engine documents', () => { setMockValues({ ...values, + myRole: { canManageEngineDocuments: true }, isMetaEngine: true, }); const wrapper = shallow(); - expect(wrapper.find('[data-test-subj="MetaEnginesCallout"]').exists()).toBe(true); + expect(getHeader(wrapper).find(DocumentCreationButton).exists()).toBe(false); }); + }); - it('does not render a Meta Engines message if this is not a meta engine', () => { + describe('Meta Engines', () => { + it('renders a Meta Engines message if this is a meta engine', () => { setMockValues({ ...values, - isMetaEngine: false, + isMetaEngine: true, }); const wrapper = shallow(); - expect(wrapper.find('[data-test-subj="MetaEnginesCallout"]').exists()).toBe(false); + expect(wrapper.find('[data-test-subj="MetaEnginesCallout"]').exists()).toBe(true); }); - it('does not render a DocumentCreationButton even if the user can manage engine documents', () => { + it('does not render a Meta Engines message if this is not a meta engine', () => { setMockValues({ ...values, - myRole: { canManageEngineDocuments: true }, - isMetaEngine: true, + isMetaEngine: false, }); const wrapper = shallow(); - expect(wrapper.find(DocumentCreationButton).exists()).toBe(false); + expect(wrapper.find('[data-test-subj="MetaEnginesCallout"]').exists()).toBe(false); }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents.tsx index 8c3ae7fd24f6d..84fcab53e9604 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/documents.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { useValues } from 'kea'; -import { EuiPageHeader, EuiPageHeaderSection, EuiTitle, EuiCallOut, EuiSpacer } from '@elastic/eui'; +import { EuiPageHeader, EuiCallOut, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FlashMessages } from '../../../shared/flash_messages'; @@ -33,18 +33,14 @@ export const Documents: React.FC = ({ engineBreadcrumb }) => { return ( <> - - - -

{DOCUMENTS_TITLE}

-
-
- {myRole.canManageEngineDocuments && !isMetaEngine && ( - - - - )} -
+ ] + : undefined + } + /> {isMetaEngine && ( <> diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx index 497c00d1f9144..bab31d0fccc40 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx @@ -18,9 +18,7 @@ import { EuiSelect, EuiPageBody, EuiPageHeader, - EuiPageHeaderSection, EuiSpacer, - EuiText, EuiTitle, EuiButton, EuiPanel, @@ -49,13 +47,7 @@ export const EngineCreation: React.FC = () => { return (
- - - -

{ENGINE_CREATION_TITLE}

-
-
-
+ @@ -68,7 +60,7 @@ export const EngineCreation: React.FC = () => { }} > - {ENGINE_CREATION_FORM_TITLE} +

{ENGINE_CREATION_FORM_TITLE}

diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.test.tsx index 9066283229a04..ea47dc8956ddd 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { shallow, ShallowWrapper } from 'enzyme'; -import { EuiButton } from '@elastic/eui'; +import { EuiPageHeader, EuiButton } from '@elastic/eui'; import { docLinks } from '../../../shared/doc_links'; @@ -25,11 +25,12 @@ describe('EmptyEngineOverview', () => { }); it('renders', () => { - expect(wrapper.find('h1').text()).toEqual('Engine setup'); + expect(wrapper.find(EuiPageHeader).prop('pageTitle')).toEqual('Engine setup'); }); it('renders a documentation link', () => { - expect(wrapper.find(EuiButton).prop('href')).toEqual(`${docLinks.appSearchBase}/index.html`); + const header = wrapper.find(EuiPageHeader).dive().children().dive(); + expect(header.find(EuiButton).prop('href')).toEqual(`${docLinks.appSearchBase}/index.html`); }); it('renders document creation components', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.tsx index f505f08a3531a..d48664febb5f7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.tsx @@ -7,13 +7,7 @@ import React from 'react'; -import { - EuiPageHeader, - EuiPageHeaderSection, - EuiPageContentBody, - EuiTitle, - EuiButton, -} from '@elastic/eui'; +import { EuiPageHeader, EuiPageContentBody, EuiButton } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FlashMessages } from '../../../shared/flash_messages'; @@ -23,25 +17,20 @@ import { DocumentCreationButtons, DocumentCreationFlyout } from '../document_cre export const EmptyEngineOverview: React.FC = () => { return ( <> - - - -

- {i18n.translate('xpack.enterpriseSearch.appSearch.engine.overview.empty.heading', { - defaultMessage: 'Engine setup', - })} -

-
-
- + {i18n.translate( 'xpack.enterpriseSearch.appSearch.engine.overview.empty.headingAction', { defaultMessage: 'View documentation' } )} - - -
+ , + ]} + /> diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_metrics.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_metrics.test.tsx index 638c8b0da87ce..d51bef3b29761 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_metrics.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_metrics.test.tsx @@ -11,13 +11,15 @@ import React from 'react'; import { shallow } from 'enzyme'; +import { EuiPageHeader } from '@elastic/eui'; + import { UnavailablePrompt, TotalStats, TotalCharts, RecentApiLogs } from './components'; import { EngineOverviewMetrics } from './engine_overview_metrics'; describe('EngineOverviewMetrics', () => { it('renders', () => { const wrapper = shallow(); - expect(wrapper.find('h1').text()).toEqual('Engine overview'); + expect(wrapper.find(EuiPageHeader).prop('pageTitle')).toEqual('Engine overview'); }); it('renders an unavailable prompt if engine data is still indexing', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_metrics.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_metrics.tsx index c60cf70f435c5..8d376ff1971a3 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_metrics.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_metrics.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { useValues } from 'kea'; -import { EuiFlexGroup, EuiFlexItem, EuiPageHeader, EuiTitle, EuiSpacer } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiPageHeader, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FlashMessages } from '../../../shared/flash_messages'; @@ -23,15 +23,11 @@ export const EngineOverviewMetrics: React.FC = () => { return ( <> - - -

- {i18n.translate('xpack.enterpriseSearch.appSearch.engine.overview.heading', { - defaultMessage: 'Engine overview', - })} -

-
-
+ {apiLogsUnavailable ? ( diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/header.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/header.test.tsx index 5ccd2c552ef02..3ffe2f3d43a77 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/header.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/header.test.tsx @@ -5,7 +5,6 @@ * 2.0. */ -import '../../../../__mocks__/kea.mock'; import '../../../../__mocks__/enterprise_search_url.mock'; import { mockTelemetryActions } from '../../../../__mocks__'; @@ -16,13 +15,16 @@ import { shallow } from 'enzyme'; import { EnginesOverviewHeader } from './'; describe('EnginesOverviewHeader', () => { + const wrapper = shallow() + .dive() + .children() + .dive(); + it('renders', () => { - const wrapper = shallow(); - expect(wrapper.find('h1')).toHaveLength(1); + expect(wrapper.find('h1').text()).toEqual('Engines overview'); }); it('renders a launch app search button that sends telemetry on click', () => { - const wrapper = shallow(); const button = wrapper.find('[data-test-subj="launchButton"]'); expect(button.prop('href')).toBe('http://localhost:3002/as'); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/header.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/header.tsx index 290270c08258c..fb3b771850a31 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/header.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/header.tsx @@ -9,15 +9,8 @@ import React from 'react'; import { useActions } from 'kea'; -import { - EuiPageHeader, - EuiPageHeaderSection, - EuiTitle, - EuiButton, - EuiButtonProps, - EuiLinkProps, -} from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n/react'; +import { EuiPageHeader, EuiButton } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; import { getAppSearchUrl } from '../../../../shared/enterprise_search_url'; import { TelemetryLogic } from '../../../../shared/telemetry'; @@ -25,39 +18,31 @@ import { TelemetryLogic } from '../../../../shared/telemetry'; export const EnginesOverviewHeader: React.FC = () => { const { sendAppSearchTelemetry } = useActions(TelemetryLogic); - const buttonProps = { - fill: true, - iconType: 'popout', - 'data-test-subj': 'launchButton', - href: getAppSearchUrl(), - target: '_blank', - onClick: () => - sendAppSearchTelemetry({ - action: 'clicked', - metric: 'header_launch_button', - }), - } as EuiButtonProps & EuiLinkProps; - return ( - - - -

- -

-
-
- - - - - -
+ + sendAppSearchTelemetry({ + action: 'clicked', + metric: 'header_launch_button', + }) + } + data-test-subj="launchButton" + > + {i18n.translate('xpack.enterpriseSearch.appSearch.productCta', { + defaultMessage: 'Launch App Search', + })} + , + ]} + /> ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/library/library.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/library/library.tsx index 594584d9ba101..5e268cc0fd214 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/library/library.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/library/library.tsx @@ -10,7 +10,6 @@ import React, { useState } from 'react'; import { EuiSpacer, EuiPageHeader, - EuiPageHeaderSection, EuiTitle, EuiPageContentBody, EuiPageContent, @@ -86,13 +85,7 @@ export const Library: React.FC = () => { return ( <> - - - -

Library

-
-
-
+ diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx index d701ee37a1658..a3dbf7259975b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx @@ -20,9 +20,7 @@ import { EuiFieldText, EuiPageContent, EuiPageHeader, - EuiPageHeaderSection, EuiSpacer, - EuiText, EuiTitle, EuiButton, } from '@elastic/eui'; @@ -78,15 +76,16 @@ export const MetaEngineCreation: React.FC = () => { return (
- - - -

{META_ENGINE_CREATION_TITLE}

-
- {META_ENGINE_CREATION_FORM_META_ENGINE_DESCRIPTION} - {META_ENGINE_CREATION_FORM_DOCUMENTATION_DESCRIPTION} -
-
+ + {META_ENGINE_CREATION_FORM_META_ENGINE_DESCRIPTION} +
+ {META_ENGINE_CREATION_FORM_DOCUMENTATION_DESCRIPTION} + + } + /> { }} > - {META_ENGINE_CREATION_FORM_TITLE} +

{META_ENGINE_CREATION_FORM_TITLE}

@@ -140,14 +139,16 @@ export const MetaEngineCreation: React.FC = () => { }} /> - {selectedIndexedEngineNames.length > maxEnginesPerMetaEngine && ( - + <> + + + )} { return ( <> - - - -

{SETTINGS_TITLE}

-
-
-
+ From 68722313f29b1fdc6514c0c72231458b089eaaf8 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Fri, 26 Mar 2021 11:28:42 -0700 Subject: [PATCH 18/55] Use documentation link service for runtime fields (#95256) --- ...kibana-plugin-core-public.doclinksstart.links.md | 4 +++- .../kibana-plugin-core-public.doclinksstart.md | 2 +- src/core/public/doc_links/doc_links_service.ts | 8 ++++++-- src/core/public/public.api.md | 4 +++- .../helpers/setup_environment.tsx | 10 +++++----- .../runtime_field_editor.test.tsx | 5 ++++- .../runtime_field_editor_flyout_content.test.tsx | 5 ++++- .../runtime_fields/public/lib/documentation.ts | 13 +++++-------- 8 files changed, 31 insertions(+), 20 deletions(-) diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md index df5ce62cc07af..6ca7a83ac0a03 100644 --- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md +++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md @@ -87,7 +87,9 @@ readonly links: { readonly sum: string; readonly top_hits: string; }; - readonly runtimeFields: string; + readonly runtimeFields: { + readonly mapping: string; + }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md index da3ae17171c81..3847ab0c6183a 100644 --- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md +++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md @@ -17,5 +17,5 @@ export interface DocLinksStart | --- | --- | --- | | [DOC\_LINK\_VERSION](./kibana-plugin-core-public.doclinksstart.doc_link_version.md) | string | | | [ELASTIC\_WEBSITE\_URL](./kibana-plugin-core-public.doclinksstart.elastic_website_url.md) | string | | -| [links](./kibana-plugin-core-public.doclinksstart.links.md) | {
readonly dashboard: {
readonly guide: string;
readonly drilldowns: string;
readonly drilldownsTriggerPicker: string;
readonly urlDrilldownTemplateSyntax: string;
readonly urlDrilldownVariables: string;
};
readonly discover: Record<string, string>;
readonly filebeat: {
readonly base: string;
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
readonly elasticsearchModule: string;
readonly startup: string;
readonly exportedFields: string;
};
readonly auditbeat: {
readonly base: string;
};
readonly metricbeat: {
readonly base: string;
readonly configure: string;
readonly httpEndpoint: string;
readonly install: string;
readonly start: string;
};
readonly enterpriseSearch: {
readonly base: string;
readonly appSearchBase: string;
readonly workplaceSearchBase: string;
};
readonly heartbeat: {
readonly base: string;
};
readonly logstash: {
readonly base: string;
};
readonly functionbeat: {
readonly base: string;
};
readonly winlogbeat: {
readonly base: string;
};
readonly aggs: {
readonly composite: string;
readonly composite_missing_bucket: string;
readonly date_histogram: string;
readonly date_range: string;
readonly date_format_pattern: string;
readonly filter: string;
readonly filters: string;
readonly geohash_grid: string;
readonly histogram: string;
readonly ip_range: string;
readonly range: string;
readonly significant_terms: string;
readonly terms: string;
readonly avg: string;
readonly avg_bucket: string;
readonly max_bucket: string;
readonly min_bucket: string;
readonly sum_bucket: string;
readonly cardinality: string;
readonly count: string;
readonly cumulative_sum: string;
readonly derivative: string;
readonly geo_bounds: string;
readonly geo_centroid: string;
readonly max: string;
readonly median: string;
readonly min: string;
readonly moving_avg: string;
readonly percentile_ranks: string;
readonly serial_diff: string;
readonly std_dev: string;
readonly sum: string;
readonly top_hits: string;
};
readonly runtimeFields: string;
readonly scriptedFields: {
readonly scriptFields: string;
readonly scriptAggs: string;
readonly painless: string;
readonly painlessApi: string;
readonly painlessLangSpec: string;
readonly painlessSyntax: string;
readonly painlessWalkthrough: string;
readonly luceneExpressions: string;
};
readonly indexPatterns: {
readonly introduction: string;
readonly fieldFormattersNumber: string;
readonly fieldFormattersString: string;
};
readonly addData: string;
readonly kibana: string;
readonly elasticsearch: Record<string, string>;
readonly siem: {
readonly guide: string;
readonly gettingStarted: string;
};
readonly query: {
readonly eql: string;
readonly luceneQuerySyntax: string;
readonly queryDsl: string;
readonly kueryQuerySyntax: string;
};
readonly date: {
readonly dateMath: string;
readonly dateMathIndexNames: string;
};
readonly management: Record<string, string>;
readonly ml: Record<string, string>;
readonly transforms: Record<string, string>;
readonly visualize: Record<string, string>;
readonly apis: Readonly<{
createIndex: string;
createSnapshotLifecyclePolicy: string;
createRoleMapping: string;
createRoleMappingTemplates: string;
createApiKey: string;
createPipeline: string;
createTransformRequest: string;
cronExpressions: string;
executeWatchActionModes: string;
indexExists: string;
openIndex: string;
putComponentTemplate: string;
painlessExecute: string;
painlessExecuteAPIContexts: string;
putComponentTemplateMetadata: string;
putSnapshotLifecyclePolicy: string;
putWatch: string;
updateTransform: string;
}>;
readonly observability: Record<string, string>;
readonly alerting: Record<string, string>;
readonly maps: Record<string, string>;
readonly monitoring: Record<string, string>;
readonly security: Readonly<{
apiKeyServiceSettings: string;
clusterPrivileges: string;
elasticsearchSettings: string;
elasticsearchEnableSecurity: string;
indicesPrivileges: string;
kibanaTLS: string;
kibanaPrivileges: string;
mappingRoles: string;
mappingRolesFieldRules: string;
runAsPrivilege: string;
}>;
readonly watcher: Record<string, string>;
readonly ccs: Record<string, string>;
readonly plugins: Record<string, string>;
readonly snapshotRestore: Record<string, string>;
readonly ingest: Record<string, string>;
} | | +| [links](./kibana-plugin-core-public.doclinksstart.links.md) | {
readonly dashboard: {
readonly guide: string;
readonly drilldowns: string;
readonly drilldownsTriggerPicker: string;
readonly urlDrilldownTemplateSyntax: string;
readonly urlDrilldownVariables: string;
};
readonly discover: Record<string, string>;
readonly filebeat: {
readonly base: string;
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
readonly elasticsearchModule: string;
readonly startup: string;
readonly exportedFields: string;
};
readonly auditbeat: {
readonly base: string;
};
readonly metricbeat: {
readonly base: string;
readonly configure: string;
readonly httpEndpoint: string;
readonly install: string;
readonly start: string;
};
readonly enterpriseSearch: {
readonly base: string;
readonly appSearchBase: string;
readonly workplaceSearchBase: string;
};
readonly heartbeat: {
readonly base: string;
};
readonly logstash: {
readonly base: string;
};
readonly functionbeat: {
readonly base: string;
};
readonly winlogbeat: {
readonly base: string;
};
readonly aggs: {
readonly composite: string;
readonly composite_missing_bucket: string;
readonly date_histogram: string;
readonly date_range: string;
readonly date_format_pattern: string;
readonly filter: string;
readonly filters: string;
readonly geohash_grid: string;
readonly histogram: string;
readonly ip_range: string;
readonly range: string;
readonly significant_terms: string;
readonly terms: string;
readonly avg: string;
readonly avg_bucket: string;
readonly max_bucket: string;
readonly min_bucket: string;
readonly sum_bucket: string;
readonly cardinality: string;
readonly count: string;
readonly cumulative_sum: string;
readonly derivative: string;
readonly geo_bounds: string;
readonly geo_centroid: string;
readonly max: string;
readonly median: string;
readonly min: string;
readonly moving_avg: string;
readonly percentile_ranks: string;
readonly serial_diff: string;
readonly std_dev: string;
readonly sum: string;
readonly top_hits: string;
};
readonly runtimeFields: {
readonly mapping: string;
};
readonly scriptedFields: {
readonly scriptFields: string;
readonly scriptAggs: string;
readonly painless: string;
readonly painlessApi: string;
readonly painlessLangSpec: string;
readonly painlessSyntax: string;
readonly painlessWalkthrough: string;
readonly luceneExpressions: string;
};
readonly indexPatterns: {
readonly introduction: string;
readonly fieldFormattersNumber: string;
readonly fieldFormattersString: string;
};
readonly addData: string;
readonly kibana: string;
readonly elasticsearch: Record<string, string>;
readonly siem: {
readonly guide: string;
readonly gettingStarted: string;
};
readonly query: {
readonly eql: string;
readonly luceneQuerySyntax: string;
readonly queryDsl: string;
readonly kueryQuerySyntax: string;
};
readonly date: {
readonly dateMath: string;
readonly dateMathIndexNames: string;
};
readonly management: Record<string, string>;
readonly ml: Record<string, string>;
readonly transforms: Record<string, string>;
readonly visualize: Record<string, string>;
readonly apis: Readonly<{
createIndex: string;
createSnapshotLifecyclePolicy: string;
createRoleMapping: string;
createRoleMappingTemplates: string;
createApiKey: string;
createPipeline: string;
createTransformRequest: string;
cronExpressions: string;
executeWatchActionModes: string;
indexExists: string;
openIndex: string;
putComponentTemplate: string;
painlessExecute: string;
painlessExecuteAPIContexts: string;
putComponentTemplateMetadata: string;
putSnapshotLifecyclePolicy: string;
putWatch: string;
updateTransform: string;
}>;
readonly observability: Record<string, string>;
readonly alerting: Record<string, string>;
readonly maps: Record<string, string>;
readonly monitoring: Record<string, string>;
readonly security: Readonly<{
apiKeyServiceSettings: string;
clusterPrivileges: string;
elasticsearchSettings: string;
elasticsearchEnableSecurity: string;
indicesPrivileges: string;
kibanaTLS: string;
kibanaPrivileges: string;
mappingRoles: string;
mappingRolesFieldRules: string;
runAsPrivilege: string;
}>;
readonly watcher: Record<string, string>;
readonly ccs: Record<string, string>;
readonly plugins: Record<string, string>;
readonly snapshotRestore: Record<string, string>;
readonly ingest: Record<string, string>;
} | | diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index 0bb5ddd29609e..cfc2dae0b1c67 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -108,7 +108,9 @@ export class DocLinksService { sum: `${ELASTICSEARCH_DOCS}search-aggregations-metrics-sum-aggregation.html`, top_hits: `${ELASTICSEARCH_DOCS}search-aggregations-metrics-top-hits-aggregation.html`, }, - runtimeFields: `${ELASTICSEARCH_DOCS}runtime.html`, + runtimeFields: { + mapping: `${ELASTICSEARCH_DOCS}runtime-mapping-fields.html`, + }, scriptedFields: { scriptFields: `${ELASTICSEARCH_DOCS}search-request-script-fields.html`, scriptAggs: `${ELASTICSEARCH_DOCS}search-aggregations.html`, @@ -381,7 +383,9 @@ export interface DocLinksStart { readonly sum: string; readonly top_hits: string; }; - readonly runtimeFields: string; + readonly runtimeFields: { + readonly mapping: string; + }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md index 5c034e68a3736..5a5ae253bac7f 100644 --- a/src/core/public/public.api.md +++ b/src/core/public/public.api.md @@ -559,7 +559,9 @@ export interface DocLinksStart { readonly sum: string; readonly top_hits: string; }; - readonly runtimeFields: string; + readonly runtimeFields: { + readonly mapping: string; + }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/helpers/setup_environment.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/helpers/setup_environment.tsx index 6b3982cb50c59..b2647b175b324 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/helpers/setup_environment.tsx +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/helpers/setup_environment.tsx @@ -7,7 +7,10 @@ import React from 'react'; import { GlobalFlyout } from '../../../../../../../../../../src/plugins/es_ui_shared/public'; -import { uiSettingsServiceMock } from '../../../../../../../../../../src/core/public/mocks'; +import { + docLinksServiceMock, + uiSettingsServiceMock, +} from '../../../../../../../../../../src/core/public/mocks'; import { MappingsEditorProvider } from '../../../mappings_editor_context'; import { createKibanaReactContext } from '../../../shared_imports'; @@ -80,10 +83,7 @@ const { Provider: KibanaReactContextProvider } = createKibanaReactContext({ }); const defaultProps = { - docLinks: { - DOC_LINK_VERSION: 'master', - ELASTIC_WEBSITE_URL: 'https://jest.elastic.co', - }, + docLinks: docLinksServiceMock.createStartContract(), }; export const WithAppDependencies = (Comp: any) => (props: any) => ( diff --git a/x-pack/plugins/runtime_fields/public/components/runtime_field_editor/runtime_field_editor.test.tsx b/x-pack/plugins/runtime_fields/public/components/runtime_field_editor/runtime_field_editor.test.tsx index f16655f048ed6..9767ee90fc14c 100644 --- a/x-pack/plugins/runtime_fields/public/components/runtime_field_editor/runtime_field_editor.test.tsx +++ b/x-pack/plugins/runtime_fields/public/components/runtime_field_editor/runtime_field_editor.test.tsx @@ -24,7 +24,10 @@ const setup = (props?: Props) => const docLinks: DocLinksStart = { ELASTIC_WEBSITE_URL: 'https://jestTest.elastic.co', DOC_LINK_VERSION: 'jest', - links: {} as any, + links: { + runtimeFields: { mapping: 'https://jestTest.elastic.co/to-be-defined.html' }, + scriptedFields: {} as any, + } as any, }; describe('Runtime field editor', () => { diff --git a/x-pack/plugins/runtime_fields/public/components/runtime_field_editor_flyout_content/runtime_field_editor_flyout_content.test.tsx b/x-pack/plugins/runtime_fields/public/components/runtime_field_editor_flyout_content/runtime_field_editor_flyout_content.test.tsx index f8f276f1754ac..abcff4a79a475 100644 --- a/x-pack/plugins/runtime_fields/public/components/runtime_field_editor_flyout_content/runtime_field_editor_flyout_content.test.tsx +++ b/x-pack/plugins/runtime_fields/public/components/runtime_field_editor_flyout_content/runtime_field_editor_flyout_content.test.tsx @@ -23,7 +23,10 @@ const setup = (props?: Props) => const docLinks: DocLinksStart = { ELASTIC_WEBSITE_URL: 'htts://jestTest.elastic.co', DOC_LINK_VERSION: 'jest', - links: {} as any, + links: { + runtimeFields: { mapping: 'https://jestTest.elastic.co/to-be-defined.html' }, + scriptedFields: {} as any, + } as any, }; const noop = () => {}; diff --git a/x-pack/plugins/runtime_fields/public/lib/documentation.ts b/x-pack/plugins/runtime_fields/public/lib/documentation.ts index 14f3e825d14ab..dfdd50b07d769 100644 --- a/x-pack/plugins/runtime_fields/public/lib/documentation.ts +++ b/x-pack/plugins/runtime_fields/public/lib/documentation.ts @@ -7,14 +7,11 @@ import { DocLinksStart } from 'src/core/public'; -export const getLinks = (docLinks: DocLinksStart) => { - const { DOC_LINK_VERSION, ELASTIC_WEBSITE_URL } = docLinks; - const docsBase = `${ELASTIC_WEBSITE_URL}guide/en`; - const esDocsBase = `${docsBase}/elasticsearch/reference/${DOC_LINK_VERSION}`; - const painlessDocsBase = `${docsBase}/elasticsearch/painless/${DOC_LINK_VERSION}`; - +export const getLinks = ({ links }: DocLinksStart) => { + const runtimePainless = `${links.runtimeFields.mapping}`; + const painlessSyntax = `${links.scriptedFields.painlessLangSpec}`; return { - runtimePainless: `${esDocsBase}/runtime.html#runtime-mapping-fields`, - painlessSyntax: `${painlessDocsBase}/painless-lang-spec.html`, + runtimePainless, + painlessSyntax, }; }; From d89ede9834dd4cf41d9c53ad2e107c40fe2d4165 Mon Sep 17 00:00:00 2001 From: Aaron Caldwell Date: Fri, 26 Mar 2021 14:29:16 -0400 Subject: [PATCH 19/55] [Maps] Add drawing index data endpoint (#94728) --- x-pack/plugins/maps/common/constants.ts | 2 + x-pack/plugins/maps/common/types.ts | 6 + .../{ => data_indexing}/create_doc_source.ts | 13 +-- .../maps/server/data_indexing/index_data.ts | 45 ++++++++ .../server/data_indexing/indexing_routes.ts | 104 ++++++++++++++++++ x-pack/plugins/maps/server/routes.js | 49 +-------- .../test/api_integration/apis/maps/index.js | 1 + .../api_integration/apis/maps/index_data.js | 98 +++++++++++++++++ 8 files changed, 265 insertions(+), 53 deletions(-) rename x-pack/plugins/maps/server/{ => data_indexing}/create_doc_source.ts (84%) create mode 100644 x-pack/plugins/maps/server/data_indexing/index_data.ts create mode 100644 x-pack/plugins/maps/server/data_indexing/indexing_routes.ts create mode 100644 x-pack/test/api_integration/apis/maps/index_data.js diff --git a/x-pack/plugins/maps/common/constants.ts b/x-pack/plugins/maps/common/constants.ts index 070ad6ee98f00..ecdf94a076809 100644 --- a/x-pack/plugins/maps/common/constants.ts +++ b/x-pack/plugins/maps/common/constants.ts @@ -298,3 +298,5 @@ export type RawValue = string | number | boolean | undefined | null; export type FieldFormatter = (value: RawValue) => string | number; export const INDEX_META_DATA_CREATED_BY = 'maps-drawing-data-ingest'; + +export const MAX_DRAWING_SIZE_BYTES = 10485760; // 10MB diff --git a/x-pack/plugins/maps/common/types.ts b/x-pack/plugins/maps/common/types.ts index 806eac597ac57..6f2bd72c80896 100644 --- a/x-pack/plugins/maps/common/types.ts +++ b/x-pack/plugins/maps/common/types.ts @@ -22,3 +22,9 @@ export interface IndexSourceMappings { export interface BodySettings { [key: string]: any; } + +export interface WriteSettings { + index: string; + body: object; + [key: string]: any; +} diff --git a/x-pack/plugins/maps/server/create_doc_source.ts b/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts similarity index 84% rename from x-pack/plugins/maps/server/create_doc_source.ts rename to x-pack/plugins/maps/server/data_indexing/create_doc_source.ts index 641a2acf42384..2b8984aa1534a 100644 --- a/x-pack/plugins/maps/server/create_doc_source.ts +++ b/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts @@ -11,8 +11,8 @@ import { CreateDocSourceResp, IndexSourceMappings, BodySettings, -} from '../common'; -import { IndexPatternsService } from '../../../../src/plugins/data/common'; +} from '../../common'; +import { IndexPatternsCommonService } from '../../../../../src/plugins/data/server'; const DEFAULT_SETTINGS = { number_of_shards: 1 }; const DEFAULT_MAPPINGS = { @@ -25,16 +25,11 @@ export async function createDocSource( index: string, mappings: IndexSourceMappings, { asCurrentUser }: IScopedClusterClient, - indexPatternsService: IndexPatternsService + indexPatternsService: IndexPatternsCommonService ): Promise { try { await createIndex(index, mappings, asCurrentUser); - await indexPatternsService.createAndSave( - { - title: index, - }, - true - ); + await indexPatternsService.createAndSave({ title: index }, true); return { success: true, diff --git a/x-pack/plugins/maps/server/data_indexing/index_data.ts b/x-pack/plugins/maps/server/data_indexing/index_data.ts new file mode 100644 index 0000000000000..b87cd53a3dfd2 --- /dev/null +++ b/x-pack/plugins/maps/server/data_indexing/index_data.ts @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { ElasticsearchClient } from 'kibana/server'; +import { WriteSettings } from '../../common'; + +export async function writeDataToIndex( + index: string, + data: object, + asCurrentUser: ElasticsearchClient +) { + try { + const { body: indexExists } = await asCurrentUser.indices.exists({ index }); + if (!indexExists) { + throw new Error( + i18n.translate('xpack.maps.indexData.indexExists', { + defaultMessage: `Index: '{index}' not found. A valid index must be provided`, + values: { + index, + }, + }) + ); + } + const settings: WriteSettings = { index, body: data }; + const { body: resp } = await asCurrentUser.index(settings); + if (resp.result === 'Error') { + throw resp; + } else { + return { + success: true, + data, + }; + } + } catch (error) { + return { + success: false, + error, + }; + } +} diff --git a/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts b/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts new file mode 100644 index 0000000000000..e6e6471ff9af6 --- /dev/null +++ b/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts @@ -0,0 +1,104 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { schema } from '@kbn/config-schema'; +import { Logger } from 'src/core/server'; +import { IRouter } from 'src/core/server'; +import type { DataRequestHandlerContext } from 'src/plugins/data/server'; +import { + INDEX_SOURCE_API_PATH, + GIS_API_PATH, + MAX_DRAWING_SIZE_BYTES, +} from '../../common/constants'; +import { createDocSource } from './create_doc_source'; +import { writeDataToIndex } from './index_data'; +import { PluginStart as DataPluginStart } from '../../../../../src/plugins/data/server'; + +export function initIndexingRoutes({ + router, + logger, + dataPlugin, +}: { + router: IRouter; + logger: Logger; + dataPlugin: DataPluginStart; +}) { + router.post( + { + path: `/${INDEX_SOURCE_API_PATH}`, + validate: { + body: schema.object({ + index: schema.string(), + mappings: schema.any(), + }), + }, + options: { + body: { + accepts: ['application/json'], + }, + }, + }, + async (context, request, response) => { + const { index, mappings } = request.body; + const indexPatternsService = await dataPlugin.indexPatterns.indexPatternsServiceFactory( + context.core.savedObjects.client, + context.core.elasticsearch.client.asCurrentUser + ); + const result = await createDocSource( + index, + mappings, + context.core.elasticsearch.client, + indexPatternsService + ); + if (result.success) { + return response.ok({ body: result }); + } else { + if (result.error) { + logger.error(result.error); + } + return response.custom({ + body: result?.error?.message, + statusCode: 500, + }); + } + } + ); + + router.post( + { + path: `/${GIS_API_PATH}/feature`, + validate: { + body: schema.object({ + index: schema.string(), + data: schema.any(), + }), + }, + options: { + body: { + accepts: ['application/json'], + maxBytes: MAX_DRAWING_SIZE_BYTES, + }, + }, + }, + async (context, request, response) => { + const result = await writeDataToIndex( + request.body.index, + request.body.data, + context.core.elasticsearch.client.asCurrentUser + ); + if (result.success) { + return response.ok({ body: result }); + } else { + logger.error(result.error); + return response.custom({ + body: result.error.message, + statusCode: 500, + }); + } + } + ); +} diff --git a/x-pack/plugins/maps/server/routes.js b/x-pack/plugins/maps/server/routes.js index f18bb29ed453d..39ce9979870c5 100644 --- a/x-pack/plugins/maps/server/routes.js +++ b/x-pack/plugins/maps/server/routes.js @@ -24,8 +24,7 @@ import { INDEX_SETTINGS_API_PATH, FONTS_API_PATH, API_ROOT_PATH, - INDEX_SOURCE_API_PATH, -} from '../common/constants'; +} from '../common'; import { EMSClient } from '@elastic/ems-client'; import fetch from 'node-fetch'; import { i18n } from '@kbn/i18n'; @@ -34,7 +33,7 @@ import { schema } from '@kbn/config-schema'; import fs from 'fs'; import path from 'path'; import { initMVTRoutes } from './mvt/mvt_routes'; -import { createDocSource } from './create_doc_source'; +import { initIndexingRoutes } from './data_indexing/indexing_routes'; const EMPTY_EMS_CLIENT = { async getFileLayers() { @@ -594,47 +593,6 @@ export async function initRoutes( } ); - if (drawingFeatureEnabled) { - router.post( - { - path: `/${INDEX_SOURCE_API_PATH}`, - validate: { - body: schema.object({ - index: schema.string(), - mappings: schema.any(), - }), - }, - options: { - body: { - accepts: ['application/json'], - }, - }, - }, - async (context, request, response) => { - const { index, mappings } = request.body; - const indexPatternsService = await dataPlugin.indexPatterns.indexPatternsServiceFactory( - context.core.savedObjects.client, - context.core.elasticsearch.client.asCurrentUser - ); - const result = await createDocSource( - index, - mappings, - context.core.elasticsearch.client, - indexPatternsService - ); - if (result.success) { - return response.ok({ body: result }); - } else { - logger.error(result.error); - return response.custom({ - body: result.error.message, - statusCode: 500, - }); - } - } - ); - } - function checkEMSProxyEnabled() { const proxyEMSInMaps = emsSettings.isProxyElasticMapsServiceInMaps(); if (!proxyEMSInMaps) { @@ -666,4 +624,7 @@ export async function initRoutes( } initMVTRoutes({ router, logger }); + if (drawingFeatureEnabled) { + initIndexingRoutes({ router, logger, dataPlugin }); + } } diff --git a/x-pack/test/api_integration/apis/maps/index.js b/x-pack/test/api_integration/apis/maps/index.js index afbe201a18b0e..db954a3dc0396 100644 --- a/x-pack/test/api_integration/apis/maps/index.js +++ b/x-pack/test/api_integration/apis/maps/index.js @@ -16,6 +16,7 @@ export default function ({ loadTestFile, getService }) { describe('', () => { loadTestFile(require.resolve('./create_doc_source')); + loadTestFile(require.resolve('./index_data')); loadTestFile(require.resolve('./fonts_api')); loadTestFile(require.resolve('./index_settings')); loadTestFile(require.resolve('./migrations')); diff --git a/x-pack/test/api_integration/apis/maps/index_data.js b/x-pack/test/api_integration/apis/maps/index_data.js new file mode 100644 index 0000000000000..f7c595537f612 --- /dev/null +++ b/x-pack/test/api_integration/apis/maps/index_data.js @@ -0,0 +1,98 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; + +export default function ({ getService }) { + const supertest = getService('supertest'); + + describe('index feature data', () => { + it('should add point data to an existing index', async () => { + await supertest + .post(`/api/maps/docSource`) + .set('kbn-xsrf', 'kibana') + .send({ + index: 'new-point-feature-index', + mappings: { properties: { coordinates: { type: 'geo_point' } } }, + }); + + const resp = await supertest + .post(`/api/maps/feature`) + .set('kbn-xsrf', 'kibana') + .send({ + index: 'new-point-feature-index', + data: { coordinates: [125.6, 10.1], name: 'Dinagat Islands' }, + }) + .expect(200); + + expect(resp.body.success).to.be(true); + }); + + it('should add shape data to an existing index', async () => { + await supertest + .post(`/api/maps/docSource`) + .set('kbn-xsrf', 'kibana') + .send({ + index: 'new-shape-feature-index', + mappings: { properties: { coordinates: { type: 'geo_shape' } } }, + }); + + const resp = await supertest + .post(`/api/maps/feature`) + .set('kbn-xsrf', 'kibana') + .send({ + index: 'new-shape-feature-index', + data: { + coordinates: { + type: 'Polygon', + coordinates: [ + [ + [-20.91796875, 25.64152637306577], + [-13.0517578125, 25.64152637306577], + [-13.0517578125, 31.203404950917395], + [-20.91796875, 31.203404950917395], + [-20.91796875, 25.64152637306577], + ], + ], + }, + }, + }) + .expect(200); + + expect(resp.body.success).to.be(true); + }); + + it('should fail if data is invalid', async () => { + await supertest + .post(`/api/maps/docSource`) + .set('kbn-xsrf', 'kibana') + .send({ + index: 'new-feature-index2', + mappings: { properties: { coordinates: { type: 'geo_point' } } }, + }); + await supertest + .post(`/api/maps/feature`) + .set('kbn-xsrf', 'kibana') + .send({ + index: 'new-feature-index2', + data: { coordinates: [600, 800], name: 'Never Gonna Happen Islands' }, + }) + .expect(500); + }); + + it('should fail if index does not exist', async () => { + await supertest + .post(`/api/maps/feature`) + .set('kbn-xsrf', 'kibana') + .send({ + index: 'not-an-index', + data: { coordinates: [125.6, 10.1], name: 'Dinagat Islands' }, + }) + .expect(500); + }); + }); +} From db7da2238e47eaad50958d3940013294132504d2 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Fri, 26 Mar 2021 14:53:35 -0400 Subject: [PATCH 20/55] [Fleet] add support for fleet server urls (#94364) --- x-pack/plugins/fleet/common/types/index.ts | 3 + .../fleet/common/types/models/agent_policy.ts | 10 +- .../fleet/common/types/models/settings.ts | 4 +- .../enrollment_instructions/manual/index.tsx | 25 +- .../fleet/components/settings_flyout.tsx | 272 ----------- .../settings_flyout/confirm_modal.tsx | 188 ++++++++ .../components/settings_flyout/index.tsx | 439 ++++++++++++++++++ .../applications/fleet/layouts/default.tsx | 2 +- .../managed_instructions.tsx | 1 + x-pack/plugins/fleet/server/index.ts | 5 + .../fleet/server/saved_objects/index.ts | 4 +- .../server/services/agent_policy.test.ts | 3 + .../fleet/server/services/agent_policy.ts | 20 +- .../plugins/fleet/server/services/settings.ts | 4 + .../fleet/server/types/rest_spec/settings.ts | 9 + .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 17 files changed, 702 insertions(+), 289 deletions(-) delete mode 100644 x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout.tsx create mode 100644 x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout/confirm_modal.tsx create mode 100644 x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout/index.tsx diff --git a/x-pack/plugins/fleet/common/types/index.ts b/x-pack/plugins/fleet/common/types/index.ts index 5c385f938a69e..1984de79a6357 100644 --- a/x-pack/plugins/fleet/common/types/index.ts +++ b/x-pack/plugins/fleet/common/types/index.ts @@ -26,6 +26,9 @@ export interface FleetConfigType { host?: string; ca_sha256?: string; }; + fleet_server?: { + hosts?: string[]; + }; agentPolicyRolloutRateLimitIntervalMs: number; agentPolicyRolloutRateLimitRequestPerInterval: number; }; diff --git a/x-pack/plugins/fleet/common/types/models/agent_policy.ts b/x-pack/plugins/fleet/common/types/models/agent_policy.ts index 7e5b799e484d6..6e984b2d0b3da 100644 --- a/x-pack/plugins/fleet/common/types/models/agent_policy.ts +++ b/x-pack/plugins/fleet/common/types/models/agent_policy.ts @@ -66,9 +66,13 @@ export interface FullAgentPolicy { [key: string]: any; }; }; - fleet?: { - kibana: FullAgentPolicyKibanaConfig; - }; + fleet?: + | { + hosts: string[]; + } + | { + kibana: FullAgentPolicyKibanaConfig; + }; inputs: FullAgentPolicyInput[]; revision?: number; agent?: { diff --git a/x-pack/plugins/fleet/common/types/models/settings.ts b/x-pack/plugins/fleet/common/types/models/settings.ts index bb345a67bec41..d6932f9a4d83f 100644 --- a/x-pack/plugins/fleet/common/types/models/settings.ts +++ b/x-pack/plugins/fleet/common/types/models/settings.ts @@ -8,9 +8,11 @@ import type { SavedObjectAttributes } from 'src/core/public'; export interface BaseSettings { + has_seen_add_data_notice?: boolean; + fleet_server_hosts: string[]; + // TODO remove as part of https://github.com/elastic/kibana/issues/94303 kibana_urls: string[]; kibana_ca_sha256?: string; - has_seen_add_data_notice?: boolean; } export interface Settings extends BaseSettings { diff --git a/x-pack/plugins/fleet/public/applications/fleet/components/enrollment_instructions/manual/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/components/enrollment_instructions/manual/index.tsx index 6f1adfc8cf9c1..a46e49233cc99 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/components/enrollment_instructions/manual/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/components/enrollment_instructions/manual/index.tsx @@ -13,6 +13,7 @@ import { FormattedMessage } from '@kbn/i18n/react'; import type { EnrollmentAPIKey } from '../../../types'; interface Props { + fleetServerHosts: string[]; kibanaUrl: string; apiKey: EnrollmentAPIKey; kibanaCASha256?: string; @@ -23,14 +24,32 @@ const CommandCode = styled.pre({ overflow: 'scroll', }); +function getfleetServerHostsEnrollArgs(apiKey: EnrollmentAPIKey, fleetServerHosts: string[]) { + return `--url=${fleetServerHosts[0]} --enrollment-token=${apiKey.api_key}`; +} + +function getKibanaUrlEnrollArgs( + apiKey: EnrollmentAPIKey, + kibanaUrl: string, + kibanaCASha256?: string +) { + return `--kibana-url=${kibanaUrl} --enrollment-token=${apiKey.api_key}${ + kibanaCASha256 ? ` --ca_sha256=${kibanaCASha256}` : '' + }`; +} + export const ManualInstructions: React.FunctionComponent = ({ kibanaUrl, apiKey, kibanaCASha256, + fleetServerHosts, }) => { - const enrollArgs = `--kibana-url=${kibanaUrl} --enrollment-token=${apiKey.api_key}${ - kibanaCASha256 ? ` --ca_sha256=${kibanaCASha256}` : '' - }`; + const fleetServerHostsNotEmpty = fleetServerHosts.length > 0; + + const enrollArgs = fleetServerHostsNotEmpty + ? getfleetServerHostsEnrollArgs(apiKey, fleetServerHosts) + : // TODO remove as part of https://github.com/elastic/kibana/issues/94303 + getKibanaUrlEnrollArgs(apiKey, kibanaUrl, kibanaCASha256); const linuxMacCommand = `./elastic-agent install -f ${enrollArgs}`; diff --git a/x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout.tsx b/x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout.tsx deleted file mode 100644 index 146f40cd75d49..0000000000000 --- a/x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout.tsx +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useEffect } from 'react'; -import { i18n } from '@kbn/i18n'; -import { - EuiFlyout, - EuiFlyoutBody, - EuiFlyoutHeader, - EuiTitle, - EuiFlexGroup, - EuiFlexItem, - EuiButtonEmpty, - EuiSpacer, - EuiButton, - EuiFlyoutFooter, - EuiForm, - EuiFormRow, - EuiComboBox, - EuiCodeEditor, -} from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n/react'; -import { EuiText } from '@elastic/eui'; -import { safeLoad } from 'js-yaml'; - -import { - useComboInput, - useStartServices, - useGetSettings, - useInput, - sendPutSettings, -} from '../hooks'; -import { useGetOutputs, sendPutOutput } from '../hooks/use_request/outputs'; -import { isDiffPathProtocol } from '../../../../common/'; - -const URL_REGEX = /^(https?):\/\/[^\s$.?#].[^\s]*$/gm; - -interface Props { - onClose: () => void; -} - -function useSettingsForm(outputId: string | undefined, onSuccess: () => void) { - const [isLoading, setIsloading] = React.useState(false); - const { notifications } = useStartServices(); - const kibanaUrlsInput = useComboInput([], (value) => { - if (value.length === 0) { - return [ - i18n.translate('xpack.fleet.settings.kibanaUrlEmptyError', { - defaultMessage: 'At least one URL is required', - }), - ]; - } - if (value.some((v) => !v.match(URL_REGEX))) { - return [ - i18n.translate('xpack.fleet.settings.kibanaUrlError', { - defaultMessage: 'Invalid URL', - }), - ]; - } - if (isDiffPathProtocol(value)) { - return [ - i18n.translate('xpack.fleet.settings.kibanaUrlDifferentPathOrProtocolError', { - defaultMessage: 'Protocol and path must be the same for each URL', - }), - ]; - } - }); - const elasticsearchUrlInput = useComboInput([], (value) => { - if (value.some((v) => !v.match(URL_REGEX))) { - return [ - i18n.translate('xpack.fleet.settings.elasticHostError', { - defaultMessage: 'Invalid URL', - }), - ]; - } - }); - - const additionalYamlConfigInput = useInput('', (value) => { - try { - safeLoad(value); - return; - } catch (error) { - return [ - i18n.translate('xpack.fleet.settings.invalidYamlFormatErrorMessage', { - defaultMessage: 'Invalid YAML: {reason}', - values: { reason: error.message }, - }), - ]; - } - }); - return { - isLoading, - onSubmit: async () => { - if ( - !kibanaUrlsInput.validate() || - !elasticsearchUrlInput.validate() || - !additionalYamlConfigInput.validate() - ) { - return; - } - - try { - setIsloading(true); - if (!outputId) { - throw new Error('Unable to load outputs'); - } - const outputResponse = await sendPutOutput(outputId, { - hosts: elasticsearchUrlInput.value, - config_yaml: additionalYamlConfigInput.value, - }); - if (outputResponse.error) { - throw outputResponse.error; - } - const settingsResponse = await sendPutSettings({ - kibana_urls: kibanaUrlsInput.value, - }); - if (settingsResponse.error) { - throw settingsResponse.error; - } - notifications.toasts.addSuccess( - i18n.translate('xpack.fleet.settings.success.message', { - defaultMessage: 'Settings saved', - }) - ); - setIsloading(false); - onSuccess(); - } catch (error) { - setIsloading(false); - notifications.toasts.addError(error, { - title: 'Error', - }); - } - }, - inputs: { - kibanaUrls: kibanaUrlsInput, - elasticsearchUrl: elasticsearchUrlInput, - additionalYamlConfig: additionalYamlConfigInput, - }, - }; -} - -export const SettingFlyout: React.FunctionComponent = ({ onClose }) => { - const settingsRequest = useGetSettings(); - const settings = settingsRequest?.data?.item; - const outputsRequest = useGetOutputs(); - const output = outputsRequest.data?.items?.[0]; - const { inputs, onSubmit, isLoading } = useSettingsForm(output?.id, onClose); - - useEffect(() => { - if (output) { - inputs.elasticsearchUrl.setValue(output.hosts || []); - inputs.additionalYamlConfig.setValue( - output.config_yaml || - `# YAML settings here will be added to the Elasticsearch output section of each policy` - ); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [output]); - - useEffect(() => { - if (settings) { - inputs.kibanaUrls.setValue(settings.kibana_urls); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [settings]); - - const body = ( - - -

- -

-
- - - - - - - - - - - - - - - - - - - - - - -
- ); - - return ( - - - -

- -

-
-
- {body} - - - - - - - - - - - - - - -
- ); -}; diff --git a/x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout/confirm_modal.tsx b/x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout/confirm_modal.tsx new file mode 100644 index 0000000000000..8bef32916452f --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout/confirm_modal.tsx @@ -0,0 +1,188 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { + EuiModal, + EuiModalHeader, + EuiModalHeaderTitle, + EuiModalFooter, + EuiModalBody, + EuiCallOut, + EuiButton, + EuiButtonEmpty, + EuiBasicTable, + EuiText, + EuiSpacer, +} from '@elastic/eui'; +import type { EuiBasicTableProps } from '@elastic/eui'; + +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n/react'; + +export interface SettingsConfirmModalProps { + changes: Array<{ + type: 'elasticsearch' | 'fleet_server'; + direction: 'removed' | 'added'; + urls: string[]; + }>; + onConfirm: () => void; + onClose: () => void; +} + +type Change = SettingsConfirmModalProps['changes'][0]; + +const TABLE_COLUMNS: EuiBasicTableProps['columns'] = [ + { + name: i18n.translate('xpack.fleet.settingsConfirmModal.fieldLabel', { + defaultMessage: 'Field', + }), + field: 'label', + render: (_, item) => getLabel(item), + width: '180px', + }, + { + field: 'urls', + name: i18n.translate('xpack.fleet.settingsConfirmModal.valueLabel', { + defaultMessage: 'Value', + }), + render: (_, item) => { + return ( + + {item.urls.map((url) => ( +
{url}
+ ))} +
+ ); + }, + }, +]; + +function getLabel(change: Change) { + if (change.type === 'elasticsearch' && change.direction === 'removed') { + return i18n.translate('xpack.fleet.settingsConfirmModal.elasticsearchRemovedLabel', { + defaultMessage: 'Elasticsearch hosts (old)', + }); + } + + if (change.type === 'elasticsearch' && change.direction === 'added') { + return i18n.translate('xpack.fleet.settingsConfirmModal.elasticsearchAddedLabel', { + defaultMessage: 'Elasticsearch hosts (new)', + }); + } + + if (change.type === 'fleet_server' && change.direction === 'removed') { + return i18n.translate('xpack.fleet.settingsConfirmModal.fleetServerRemovedLabel', { + defaultMessage: 'Fleet Server hosts (old)', + }); + } + + if (change.type === 'fleet_server' && change.direction === 'added') { + return i18n.translate('xpack.fleet.settingsConfirmModal.fleetServerAddedLabel', { + defaultMessage: 'Fleet Server hosts (new)', + }); + } + + return i18n.translate('xpack.fleet.settingsConfirmModal.defaultChangeLabel', { + defaultMessage: 'Unknown setting', + }); +} + +export const SettingsConfirmModal = React.memo( + ({ changes, onConfirm, onClose }) => { + const hasESChanges = changes.some((change) => change.type === 'elasticsearch'); + const hasFleetServerChanges = changes.some((change) => change.type === 'fleet_server'); + + return ( + + + + + + + + + + } + color="warning" + iconType="alert" + > + + {hasFleetServerChanges && ( +

+ + + + ), + }} + /> +

+ )} + + {hasESChanges && ( +

+ + + + ), + }} + /> +

+ )} +
+
+ + {changes.length > 0 && ( + <> + + + + )} +
+ + + + + + + + + +
+ ); + } +); diff --git a/x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout/index.tsx new file mode 100644 index 0000000000000..faf8707f2efc1 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/components/settings_flyout/index.tsx @@ -0,0 +1,439 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useEffect, useCallback } from 'react'; +import { i18n } from '@kbn/i18n'; +import { + EuiFlyout, + EuiFlyoutBody, + EuiFlyoutHeader, + EuiTitle, + EuiFlexGroup, + EuiFlexItem, + EuiButtonEmpty, + EuiSpacer, + EuiButton, + EuiFlyoutFooter, + EuiForm, + EuiFormRow, + EuiComboBox, + EuiCode, + EuiCodeEditor, + EuiLink, +} from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { EuiText } from '@elastic/eui'; +import { safeLoad } from 'js-yaml'; + +import { + useComboInput, + useStartServices, + useGetSettings, + useInput, + sendPutSettings, +} from '../../hooks'; +import { useGetOutputs, sendPutOutput } from '../../hooks/use_request/outputs'; +import { isDiffPathProtocol } from '../../../../../common/'; + +import { SettingsConfirmModal } from './confirm_modal'; +import type { SettingsConfirmModalProps } from './confirm_modal'; + +const URL_REGEX = /^(https?):\/\/[^\s$.?#].[^\s]*$/gm; + +interface Props { + onClose: () => void; +} + +function isSameArrayValue(arrayA: string[] = [], arrayB: string[] = []) { + return arrayA.length === arrayB.length && arrayA.every((val, index) => val === arrayB[index]); +} + +function useSettingsForm(outputId: string | undefined, onSuccess: () => void) { + const [isLoading, setIsloading] = React.useState(false); + const { notifications } = useStartServices(); + const kibanaUrlsInput = useComboInput([], (value) => { + if (value.length === 0) { + return [ + i18n.translate('xpack.fleet.settings.kibanaUrlEmptyError', { + defaultMessage: 'At least one URL is required', + }), + ]; + } + if (value.some((v) => !v.match(URL_REGEX))) { + return [ + i18n.translate('xpack.fleet.settings.kibanaUrlError', { + defaultMessage: 'Invalid URL', + }), + ]; + } + if (isDiffPathProtocol(value)) { + return [ + i18n.translate('xpack.fleet.settings.kibanaUrlDifferentPathOrProtocolError', { + defaultMessage: 'Protocol and path must be the same for each URL', + }), + ]; + } + }); + const fleetServerHostsInput = useComboInput([], (value) => { + // TODO enable as part of https://github.com/elastic/kibana/issues/94303 + // if (value.length === 0) { + // return [ + // i18n.translate('xpack.fleet.settings.fleetServerHostsEmptyError', { + // defaultMessage: 'At least one URL is required', + // }), + // ]; + // } + if (value.some((v) => !v.match(URL_REGEX))) { + return [ + i18n.translate('xpack.fleet.settings.fleetServerHostsError', { + defaultMessage: 'Invalid URL', + }), + ]; + } + if (value.length && isDiffPathProtocol(value)) { + return [ + i18n.translate('xpack.fleet.settings.fleetServerHostsDifferentPathOrProtocolError', { + defaultMessage: 'Protocol and path must be the same for each URL', + }), + ]; + } + }); + + const elasticsearchUrlInput = useComboInput([], (value) => { + if (value.some((v) => !v.match(URL_REGEX))) { + return [ + i18n.translate('xpack.fleet.settings.elasticHostError', { + defaultMessage: 'Invalid URL', + }), + ]; + } + }); + + const additionalYamlConfigInput = useInput('', (value) => { + try { + safeLoad(value); + return; + } catch (error) { + return [ + i18n.translate('xpack.fleet.settings.invalidYamlFormatErrorMessage', { + defaultMessage: 'Invalid YAML: {reason}', + values: { reason: error.message }, + }), + ]; + } + }); + + const validate = useCallback(() => { + if ( + !kibanaUrlsInput.validate() || + !fleetServerHostsInput.validate() || + !elasticsearchUrlInput.validate() || + !additionalYamlConfigInput.validate() + ) { + return false; + } + + return true; + }, [kibanaUrlsInput, fleetServerHostsInput, elasticsearchUrlInput, additionalYamlConfigInput]); + + return { + isLoading, + validate, + submit: async () => { + try { + setIsloading(true); + if (!outputId) { + throw new Error('Unable to load outputs'); + } + const outputResponse = await sendPutOutput(outputId, { + hosts: elasticsearchUrlInput.value, + config_yaml: additionalYamlConfigInput.value, + }); + if (outputResponse.error) { + throw outputResponse.error; + } + const settingsResponse = await sendPutSettings({ + kibana_urls: kibanaUrlsInput.value, + fleet_server_hosts: fleetServerHostsInput.value, + }); + if (settingsResponse.error) { + throw settingsResponse.error; + } + notifications.toasts.addSuccess( + i18n.translate('xpack.fleet.settings.success.message', { + defaultMessage: 'Settings saved', + }) + ); + setIsloading(false); + onSuccess(); + } catch (error) { + setIsloading(false); + notifications.toasts.addError(error, { + title: 'Error', + }); + } + }, + inputs: { + fleetServerHosts: fleetServerHostsInput, + kibanaUrls: kibanaUrlsInput, + elasticsearchUrl: elasticsearchUrlInput, + additionalYamlConfig: additionalYamlConfigInput, + }, + }; +} + +export const SettingFlyout: React.FunctionComponent = ({ onClose }) => { + const settingsRequest = useGetSettings(); + const settings = settingsRequest?.data?.item; + const outputsRequest = useGetOutputs(); + const output = outputsRequest.data?.items?.[0]; + const { inputs, submit, validate, isLoading } = useSettingsForm(output?.id, onClose); + + const [isConfirmModalVisible, setConfirmModalVisible] = React.useState(false); + + const onSubmit = useCallback(() => { + if (validate()) { + setConfirmModalVisible(true); + } + }, [validate, setConfirmModalVisible]); + + const onConfirm = useCallback(() => { + setConfirmModalVisible(false); + submit(); + }, [submit]); + + const onConfirmModalClose = useCallback(() => { + setConfirmModalVisible(false); + }, [setConfirmModalVisible]); + + useEffect(() => { + if (output) { + inputs.elasticsearchUrl.setValue(output.hosts || []); + inputs.additionalYamlConfig.setValue(output.config_yaml || ''); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [output]); + + useEffect(() => { + if (settings) { + inputs.kibanaUrls.setValue([...settings.kibana_urls]); + inputs.fleetServerHosts.setValue([...settings.fleet_server_hosts]); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [settings]); + + const isUpdated = React.useMemo(() => { + if (!settings || !output) { + return false; + } + return ( + !isSameArrayValue(settings.kibana_urls, inputs.kibanaUrls.value) || + !isSameArrayValue(settings.fleet_server_hosts, inputs.fleetServerHosts.value) || + !isSameArrayValue(output.hosts, inputs.elasticsearchUrl.value) || + (output.config_yaml || '') !== inputs.additionalYamlConfig.value + ); + }, [settings, inputs, output]); + + const changes = React.useMemo(() => { + if (!settings || !output || !isConfirmModalVisible) { + return []; + } + + const tmpChanges: SettingsConfirmModalProps['changes'] = []; + if (!isSameArrayValue(output.hosts, inputs.elasticsearchUrl.value)) { + tmpChanges.push( + { + type: 'elasticsearch', + direction: 'removed', + urls: output.hosts || [], + }, + { + type: 'elasticsearch', + direction: 'added', + urls: inputs.elasticsearchUrl.value, + } + ); + } + + if (!isSameArrayValue(settings.fleet_server_hosts, inputs.fleetServerHosts.value)) { + tmpChanges.push( + { + type: 'fleet_server', + direction: 'removed', + urls: settings.fleet_server_hosts, + }, + { + type: 'fleet_server', + direction: 'added', + urls: inputs.fleetServerHosts.value, + } + ); + } + + return tmpChanges; + }, [settings, inputs, output, isConfirmModalVisible]); + + const body = settings && ( + + +

+ +

+
+ + + outputs, + }} + /> + + + + + + + ), + }} + /> + } + {...inputs.fleetServerHosts.formRowProps} + > + + + + + {/* // TODO remove as part of https://github.com/elastic/kibana/issues/94303 */} + + + + + + + + + + + +
+ ); + + return ( + <> + {isConfirmModalVisible && ( + + )} + + + +

+ +

+
+
+ {body} + + + + + + + + + + {isLoading ? ( + + ) : ( + + )} + + + + +
+ + ); +}; diff --git a/x-pack/plugins/fleet/public/applications/fleet/layouts/default.tsx b/x-pack/plugins/fleet/public/applications/fleet/layouts/default.tsx index ba6367a861e9d..4a7e738ec540a 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/layouts/default.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/layouts/default.tsx @@ -125,7 +125,7 @@ export const DefaultLayout: React.FunctionComponent = ({ setIsSettingsFlyoutOpen(true)}> diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_enrollment_flyout/managed_instructions.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_enrollment_flyout/managed_instructions.tsx index 4925f60f19e26..0ca6b223b3492 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_enrollment_flyout/managed_instructions.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_enrollment_flyout/managed_instructions.tsx @@ -56,6 +56,7 @@ export const ManagedInstructions = React.memo(({ agentPolicies }) => { apiKey={apiKey.data.item} kibanaUrl={kibanaUrl} kibanaCASha256={kibanaCASha256} + fleetServerHosts={settings.data?.item?.fleet_server_hosts || []} /> ), }, diff --git a/x-pack/plugins/fleet/server/index.ts b/x-pack/plugins/fleet/server/index.ts index 8bad868b813ac..0178b801f4d2f 100644 --- a/x-pack/plugins/fleet/server/index.ts +++ b/x-pack/plugins/fleet/server/index.ts @@ -65,6 +65,11 @@ export const config: PluginConfigDescriptor = { host: schema.maybe(schema.string()), ca_sha256: schema.maybe(schema.string()), }), + fleet_server: schema.maybe( + schema.object({ + hosts: schema.maybe(schema.arrayOf(schema.uri({ scheme: ['http', 'https'] }))), + }) + ), agentPolicyRolloutRateLimitIntervalMs: schema.number({ defaultValue: AGENT_POLICY_ROLLOUT_RATE_LIMIT_INTERVAL_MS, }), diff --git a/x-pack/plugins/fleet/server/saved_objects/index.ts b/x-pack/plugins/fleet/server/saved_objects/index.ts index e5f0537a8c27a..87ca9782ab698 100644 --- a/x-pack/plugins/fleet/server/saved_objects/index.ts +++ b/x-pack/plugins/fleet/server/saved_objects/index.ts @@ -58,9 +58,11 @@ const getSavedObjectTypes = ( }, mappings: { properties: { + fleet_server_hosts: { type: 'keyword' }, + has_seen_add_data_notice: { type: 'boolean', index: false }, + // TODO remove as part of https://github.com/elastic/kibana/issues/94303 kibana_urls: { type: 'keyword' }, kibana_ca_sha256: { type: 'keyword' }, - has_seen_add_data_notice: { type: 'boolean', index: false }, }, }, migrations: { diff --git a/x-pack/plugins/fleet/server/services/agent_policy.test.ts b/x-pack/plugins/fleet/server/services/agent_policy.test.ts index 515d2b1195638..56e76130538cf 100644 --- a/x-pack/plugins/fleet/server/services/agent_policy.test.ts +++ b/x-pack/plugins/fleet/server/services/agent_policy.test.ts @@ -171,6 +171,7 @@ describe('agent policy', () => { inputs: [], revision: 1, fleet: { + hosts: ['http://localhost:5603'], kibana: { hosts: ['localhost:5603'], protocol: 'http', @@ -206,6 +207,7 @@ describe('agent policy', () => { inputs: [], revision: 1, fleet: { + hosts: ['http://localhost:5603'], kibana: { hosts: ['localhost:5603'], protocol: 'http', @@ -242,6 +244,7 @@ describe('agent policy', () => { inputs: [], revision: 1, fleet: { + hosts: ['http://localhost:5603'], kibana: { hosts: ['localhost:5603'], protocol: 'http', diff --git a/x-pack/plugins/fleet/server/services/agent_policy.ts b/x-pack/plugins/fleet/server/services/agent_policy.ts index 2cafe2fe57c01..357b9150407ef 100644 --- a/x-pack/plugins/fleet/server/services/agent_policy.ts +++ b/x-pack/plugins/fleet/server/services/agent_policy.ts @@ -706,12 +706,20 @@ class AgentPolicyService { } catch (error) { throw new Error('Default settings is not setup'); } - if (!settings.kibana_urls || !settings.kibana_urls.length) - throw new Error('kibana_urls is missing'); - - fullAgentPolicy.fleet = { - kibana: getFullAgentPolicyKibanaConfig(settings.kibana_urls), - }; + if (settings.fleet_server_hosts && settings.fleet_server_hosts.length) { + fullAgentPolicy.fleet = { + hosts: settings.fleet_server_hosts, + }; + } // TODO remove as part of https://github.com/elastic/kibana/issues/94303 + else { + if (!settings.kibana_urls || !settings.kibana_urls.length) + throw new Error('kibana_urls is missing'); + + fullAgentPolicy.fleet = { + hosts: settings.kibana_urls, + kibana: getFullAgentPolicyKibanaConfig(settings.kibana_urls), + }; + } } return fullAgentPolicy; } diff --git a/x-pack/plugins/fleet/server/services/settings.ts b/x-pack/plugins/fleet/server/services/settings.ts index 03348a2fcc4bb..7658a8d71839e 100644 --- a/x-pack/plugins/fleet/server/services/settings.ts +++ b/x-pack/plugins/fleet/server/services/settings.ts @@ -27,6 +27,7 @@ export async function getSettings(soClient: SavedObjectsClientContract): Promise return { id: settingsSo.id, ...settingsSo.attributes, + fleet_server_hosts: settingsSo.attributes.fleet_server_hosts || [], }; } @@ -81,7 +82,10 @@ export function createDefaultSettings(): BaseSettings { pathname: basePath.serverBasePath, }); + const fleetServerHosts = appContextService.getConfig()?.agents?.fleet_server?.hosts ?? []; + return { kibana_urls: [cloudUrl || flagsUrl || defaultUrl].flat(), + fleet_server_hosts: fleetServerHosts, }; } diff --git a/x-pack/plugins/fleet/server/types/rest_spec/settings.ts b/x-pack/plugins/fleet/server/types/rest_spec/settings.ts index 9bbebbe86ccaa..9051d7a06efff 100644 --- a/x-pack/plugins/fleet/server/types/rest_spec/settings.ts +++ b/x-pack/plugins/fleet/server/types/rest_spec/settings.ts @@ -13,6 +13,15 @@ export const GetSettingsRequestSchema = {}; export const PutSettingsRequestSchema = { body: schema.object({ + fleet_server_hosts: schema.maybe( + schema.arrayOf(schema.uri({ scheme: ['http', 'https'] }), { + validate: (value) => { + if (value.length && isDiffPathProtocol(value)) { + return 'Protocol and path must be the same for each URL'; + } + }, + }) + ), kibana_urls: schema.maybe( schema.arrayOf(schema.uri({ scheme: ['http', 'https'] }), { validate: (value) => { diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 0df65f21577f4..90255a14cbedd 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -8716,7 +8716,6 @@ "xpack.fleet.settings.elasticHostError": "無効なURL", "xpack.fleet.settings.elasticsearchUrlLabel": "Elasticsearch URL", "xpack.fleet.settings.flyoutTitle": "Fleet 設定", - "xpack.fleet.settings.globalOutputDescription": "データを送信する場所を指定します。これらの設定はすべてのElasticエージェントポリシーに適用されます。", "xpack.fleet.settings.globalOutputTitle": "グローバル出力", "xpack.fleet.settings.invalidYamlFormatErrorMessage": "無効なYAML形式:{reason}", "xpack.fleet.settings.kibanaUrlDifferentPathOrProtocolError": "各URLのプロトコルとパスは同じでなければなりません", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 580db8e5aa0c1..8e209f49915a0 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -8798,7 +8798,6 @@ "xpack.fleet.settings.elasticHostError": "URL 无效", "xpack.fleet.settings.elasticsearchUrlLabel": "Elasticsearch URL", "xpack.fleet.settings.flyoutTitle": "Fleet 设置", - "xpack.fleet.settings.globalOutputDescription": "指定将数据发送到何处。这些设置将应用于所有的 Elastic 代理策略。", "xpack.fleet.settings.globalOutputTitle": "全局输出", "xpack.fleet.settings.invalidYamlFormatErrorMessage": "YAML 无效:{reason}", "xpack.fleet.settings.kibanaUrlDifferentPathOrProtocolError": "对于每个 URL,协议和路径必须相同", From 03db229e2d74e62791fe3280be828493e03160d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20C=C3=B4t=C3=A9?= Date: Fri, 26 Mar 2021 14:55:39 -0400 Subject: [PATCH 21/55] Changes to the connector API doc URLs (#95515) * Initial commit * Remove 'API' from title abbreviations * Merge deprecated warning w/ alternative solution --- docs/api/actions-and-connectors.asciidoc | 14 +++++++------- docs/api/actions-and-connectors/create.asciidoc | 16 ++++++++-------- docs/api/actions-and-connectors/delete.asciidoc | 10 +++++----- docs/api/actions-and-connectors/execute.asciidoc | 14 +++++++------- docs/api/actions-and-connectors/get.asciidoc | 12 ++++++------ docs/api/actions-and-connectors/get_all.asciidoc | 14 +++++++------- .../legacy/create.asciidoc | 6 ++---- .../legacy/delete.asciidoc | 6 ++---- .../legacy/execute.asciidoc | 6 ++---- .../actions-and-connectors/legacy/get.asciidoc | 6 ++---- .../legacy/get_all.asciidoc | 6 ++---- .../actions-and-connectors/legacy/list.asciidoc | 6 ++---- .../legacy/update.asciidoc | 6 ++---- docs/api/actions-and-connectors/list.asciidoc | 12 ++++++------ docs/api/actions-and-connectors/update.asciidoc | 14 +++++++------- 15 files changed, 67 insertions(+), 81 deletions(-) diff --git a/docs/api/actions-and-connectors.asciidoc b/docs/api/actions-and-connectors.asciidoc index 5480cdd57f691..ff4cb8401091e 100644 --- a/docs/api/actions-and-connectors.asciidoc +++ b/docs/api/actions-and-connectors.asciidoc @@ -5,19 +5,19 @@ Manage Actions and Connectors. The following connector APIs are available: -* <> to retrieve a single connector by ID +* <> to retrieve a single connector by ID -* <> to retrieve all connectors +* <> to retrieve all connectors -* <> to retrieve a list of all connector types +* <> to retrieve a list of all connector types -* <> to create connectors +* <> to create connectors -* <> to update the attributes for an existing connector +* <> to update the attributes for an existing connector -* <> to execute a connector by ID +* <> to execute a connector by ID -* <> to delete a connector by ID +* <> to delete a connector by ID For deprecated APIs, refer to <>. diff --git a/docs/api/actions-and-connectors/create.asciidoc b/docs/api/actions-and-connectors/create.asciidoc index c9a09e890ea6d..554e84615d568 100644 --- a/docs/api/actions-and-connectors/create.asciidoc +++ b/docs/api/actions-and-connectors/create.asciidoc @@ -1,25 +1,25 @@ -[[actions-and-connectors-api-create]] +[[create-connector-api]] === Create connector API ++++ -Create connector API +Create connector ++++ Creates a connector. -[[actions-and-connectors-api-create-request]] +[[create-connector-api-request]] ==== Request `POST :/api/actions/connector` `POST :/s//api/actions/connector` -[[actions-and-connectors-api-create-path-params]] +[[create-connector-api-path-params]] ==== Path parameters `space_id`:: (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. -[[actions-and-connectors-api-create-request-body]] +[[create-connector-api-request-body]] ==== Request body `name`:: @@ -36,15 +36,15 @@ Creates a connector. (Required, object) The secrets configuration for the connector. Secrets configuration properties vary depending on the connector type. For information about the secrets configuration properties, refer to <>. + -WARNING: Remember these values. You must provide them each time you call the <> API. +WARNING: Remember these values. You must provide them each time you call the <> API. -[[actions-and-connectors-api-create-request-codes]] +[[create-connector-api-request-codes]] ==== Response code `200`:: Indicates a successful call. -[[actions-and-connectors-api-create-example]] +[[create-connector-api-example]] ==== Example [source,sh] diff --git a/docs/api/actions-and-connectors/delete.asciidoc b/docs/api/actions-and-connectors/delete.asciidoc index a9f9e658613e0..021a3f7cdf3f7 100644 --- a/docs/api/actions-and-connectors/delete.asciidoc +++ b/docs/api/actions-and-connectors/delete.asciidoc @@ -1,21 +1,21 @@ -[[actions-and-connectors-api-delete]] +[[delete-connector-api]] === Delete connector API ++++ -Delete connector API +Delete connector ++++ Deletes an connector by ID. WARNING: When you delete a connector, _it cannot be recovered_. -[[actions-and-connectors-api-delete-request]] +[[delete-connector-api-request]] ==== Request `DELETE :/api/actions/connector/` `DELETE :/s//api/actions/connector/` -[[actions-and-connectors-api-delete-path-params]] +[[delete-connector-api-path-params]] ==== Path parameters `id`:: @@ -24,7 +24,7 @@ WARNING: When you delete a connector, _it cannot be recovered_. `space_id`:: (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. -[[actions-and-connectors-api-delete-response-codes]] +[[delete-connector-api-response-codes]] ==== Response code `200`:: diff --git a/docs/api/actions-and-connectors/execute.asciidoc b/docs/api/actions-and-connectors/execute.asciidoc index b87380907f7bb..e830c9b4bbf88 100644 --- a/docs/api/actions-and-connectors/execute.asciidoc +++ b/docs/api/actions-and-connectors/execute.asciidoc @@ -1,19 +1,19 @@ -[[actions-and-connectors-api-execute]] +[[execute-connector-api]] === Execute connector API ++++ -Execute connector API +Execute connector ++++ Executes a connector by ID. -[[actions-and-connectors-api-execute-request]] +[[execute-connector-api-request]] ==== Request `POST :/api/actions/connector//_execute` `POST :/s//api/actions/connector//_execute` -[[actions-and-connectors-api-execute-params]] +[[execute-connector-api-params]] ==== Path parameters `id`:: @@ -22,20 +22,20 @@ Executes a connector by ID. `space_id`:: (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. -[[actions-and-connectors-api-execute-request-body]] +[[execute-connector-api-request-body]] ==== Request body `params`:: (Required, object) The parameters of the connector. Parameter properties vary depending on the connector type. For information about the parameter properties, refer to <>. -[[actions-and-connectors-api-execute-codes]] +[[execute-connector-api-codes]] ==== Response code `200`:: Indicates a successful call. -[[actions-and-connectors-api-execute-example]] +[[execute-connector-api-example]] ==== Example [source,sh] diff --git a/docs/api/actions-and-connectors/get.asciidoc b/docs/api/actions-and-connectors/get.asciidoc index 33d37a4add4dd..0d9af45c4ef0c 100644 --- a/docs/api/actions-and-connectors/get.asciidoc +++ b/docs/api/actions-and-connectors/get.asciidoc @@ -1,19 +1,19 @@ -[[actions-and-connectors-api-get]] +[[get-connector-api]] === Get connector API ++++ -Get connector API +Get connector ++++ Retrieves a connector by ID. -[[actions-and-connectors-api-get-request]] +[[get-connector-api-request]] ==== Request `GET :/api/actions/connector/` `GET :/s//api/actions/connector/` -[[actions-and-connectors-api-get-params]] +[[get-connector-api-params]] ==== Path parameters `id`:: @@ -22,13 +22,13 @@ Retrieves a connector by ID. `space_id`:: (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. -[[actions-and-connectors-api-get-codes]] +[[get-connector-api-codes]] ==== Response code `200`:: Indicates a successful call. -[[actions-and-connectors-api-get-example]] +[[get-connector-api-example]] ==== Example [source,sh] diff --git a/docs/api/actions-and-connectors/get_all.asciidoc b/docs/api/actions-and-connectors/get_all.asciidoc index 8b4977d61e741..e4e67a9bbde73 100644 --- a/docs/api/actions-and-connectors/get_all.asciidoc +++ b/docs/api/actions-and-connectors/get_all.asciidoc @@ -1,31 +1,31 @@ -[[actions-and-connectors-api-get-all]] -=== Get all actions API +[[get-all-connectors-api]] +=== Get all connectors API ++++ -Get all actions API +Get all connectors ++++ Retrieves all connectors. -[[actions-and-connectors-api-get-all-request]] +[[get-all-connectors-api-request]] ==== Request `GET :/api/actions/connectors` `GET :/s//api/actions/connectors` -[[actions-and-connectors-api-get-all-path-params]] +[[get-all-connectors-api-path-params]] ==== Path parameters `space_id`:: (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. -[[actions-and-connectors-api-get-all-codes]] +[[get-all-connectors-api-codes]] ==== Response code `200`:: Indicates a successful call. -[[actions-and-connectors-api-get-all-example]] +[[get-all-connectors-api-example]] ==== Example [source,sh] diff --git a/docs/api/actions-and-connectors/legacy/create.asciidoc b/docs/api/actions-and-connectors/legacy/create.asciidoc index faf6227f01947..af4feddcb80fb 100644 --- a/docs/api/actions-and-connectors/legacy/create.asciidoc +++ b/docs/api/actions-and-connectors/legacy/create.asciidoc @@ -1,12 +1,10 @@ [[actions-and-connectors-legacy-api-create]] ==== Legacy Create connector API ++++ -Legacy Create connector API +Legacy Create connector ++++ -deprecated::[7.13.0] - -Please use the <> instead. +WARNING: Deprecated in 7.13.0. Use <> instead. Creates a connector. diff --git a/docs/api/actions-and-connectors/legacy/delete.asciidoc b/docs/api/actions-and-connectors/legacy/delete.asciidoc index b02f1011fd9b4..170fceba2d157 100644 --- a/docs/api/actions-and-connectors/legacy/delete.asciidoc +++ b/docs/api/actions-and-connectors/legacy/delete.asciidoc @@ -1,12 +1,10 @@ [[actions-and-connectors-legacy-api-delete]] ==== Legacy Delete connector API ++++ -Legacy Delete connector API +Legacy Delete connector ++++ -deprecated::[7.13.0] - -Please use the <> instead. +WARNING: Deprecated in 7.13.0. Use <> instead. Deletes a connector by ID. diff --git a/docs/api/actions-and-connectors/legacy/execute.asciidoc b/docs/api/actions-and-connectors/legacy/execute.asciidoc index 30cb18c54aa69..200844ab72f17 100644 --- a/docs/api/actions-and-connectors/legacy/execute.asciidoc +++ b/docs/api/actions-and-connectors/legacy/execute.asciidoc @@ -1,12 +1,10 @@ [[actions-and-connectors-legacy-api-execute]] ==== Legacy Execute connector API ++++ -Legacy Execute connector API +Legacy Execute connector ++++ -deprecated::[7.13.0] - -Please use the <> instead. +WARNING: Deprecated in 7.13.0. Use <> instead. Executes a connector by ID. diff --git a/docs/api/actions-and-connectors/legacy/get.asciidoc b/docs/api/actions-and-connectors/legacy/get.asciidoc index cf8cc1b6b677e..1b138fb7032e0 100644 --- a/docs/api/actions-and-connectors/legacy/get.asciidoc +++ b/docs/api/actions-and-connectors/legacy/get.asciidoc @@ -1,12 +1,10 @@ [[actions-and-connectors-legacy-api-get]] ==== Legacy Get connector API ++++ -Legacy Get connector API +Legacy Get connector ++++ -deprecated::[7.13.0] - -Please use the <> instead. +WARNING: Deprecated in 7.13.0. Use <> instead. Retrieves a connector by ID. diff --git a/docs/api/actions-and-connectors/legacy/get_all.asciidoc b/docs/api/actions-and-connectors/legacy/get_all.asciidoc index 24ad446d95d95..ba235955c005e 100644 --- a/docs/api/actions-and-connectors/legacy/get_all.asciidoc +++ b/docs/api/actions-and-connectors/legacy/get_all.asciidoc @@ -1,12 +1,10 @@ [[actions-and-connectors-legacy-api-get-all]] ==== Legacy Get all connector API ++++ -Legacy Get all connector API +Legacy Get all connector ++++ -deprecated::[7.13.0] - -Please use the <> instead. +WARNING: Deprecated in 7.13.0. Use <> instead. Retrieves all connectors. diff --git a/docs/api/actions-and-connectors/legacy/list.asciidoc b/docs/api/actions-and-connectors/legacy/list.asciidoc index 86026f332d917..8acfd5415af57 100644 --- a/docs/api/actions-and-connectors/legacy/list.asciidoc +++ b/docs/api/actions-and-connectors/legacy/list.asciidoc @@ -1,12 +1,10 @@ [[actions-and-connectors-legacy-api-list]] ==== Legacy List connector types API ++++ -Legacy List all connector types API +Legacy List all connector types ++++ -deprecated::[7.13.0] - -Please use the <> instead. +WARNING: Deprecated in 7.13.0. Use <> instead. Retrieves a list of all connector types. diff --git a/docs/api/actions-and-connectors/legacy/update.asciidoc b/docs/api/actions-and-connectors/legacy/update.asciidoc index c2e841988717a..517daf9a40dca 100644 --- a/docs/api/actions-and-connectors/legacy/update.asciidoc +++ b/docs/api/actions-and-connectors/legacy/update.asciidoc @@ -1,12 +1,10 @@ [[actions-and-connectors-legacy-api-update]] ==== Legacy Update connector API ++++ -Legacy Update connector API +Legacy Update connector ++++ -deprecated::[7.13.0] - -Please use the <> instead. +WARNING: Deprecated in 7.13.0. Use <> instead. Updates the attributes for an existing connector. diff --git a/docs/api/actions-and-connectors/list.asciidoc b/docs/api/actions-and-connectors/list.asciidoc index 941f7b4376e91..bd1ccb777b9ae 100644 --- a/docs/api/actions-and-connectors/list.asciidoc +++ b/docs/api/actions-and-connectors/list.asciidoc @@ -1,31 +1,31 @@ -[[actions-and-connectors-api-list]] +[[list-connector-types-api]] === List connector types API ++++ -List all connector types API +List all connector types ++++ Retrieves a list of all connector types. -[[actions-and-connectors-api-list-request]] +[[list-connector-types-api-request]] ==== Request `GET :/api/actions/connector_types` `GET :/s//api/actions/connector_types` -[[actions-and-connectors-api-list-path-params]] +[[list-connector-types-api-path-params]] ==== Path parameters `space_id`:: (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. -[[actions-and-connectors-api-list-codes]] +[[list-connector-types-api-codes]] ==== Response code `200`:: Indicates a successful call. -[[actions-and-connectors-api-list-example]] +[[list-connector-types-api-example]] ==== Example [source,sh] diff --git a/docs/api/actions-and-connectors/update.asciidoc b/docs/api/actions-and-connectors/update.asciidoc index 6c4e6040bdfb5..f522cb8d048e0 100644 --- a/docs/api/actions-and-connectors/update.asciidoc +++ b/docs/api/actions-and-connectors/update.asciidoc @@ -1,19 +1,19 @@ -[[actions-and-connectors-api-update]] +[[update-connector-api]] === Update connector API ++++ -Update connector API +Update connector ++++ Updates the attributes for an existing connector. -[[actions-and-connectors-api-update-request]] +[[update-connector-api-request]] ==== Request `PUT :/api/actions/connector/` `PUT :/s//api/actions/connector/` -[[actions-and-connectors-api-update-params]] +[[update-connector-api-params]] ==== Path parameters `id`:: @@ -22,7 +22,7 @@ Updates the attributes for an existing connector. `space_id`:: (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. -[[actions-and-connectors-api-update-request-body]] +[[update-connector-api-request-body]] ==== Request body `name`:: @@ -34,13 +34,13 @@ Updates the attributes for an existing connector. `secrets`:: (Required, object) The updated secrets configuration for the connector. Secrets properties vary depending on the connector type. For information about the secrets configuration properties, refer to <>. -[[actions-and-connectors-api-update-codes]] +[[update-connector-api-codes]] ==== Response code `200`:: Indicates a successful call. -[[actions-and-connectors-api-update-example]] +[[update-connector-api-example]] ==== Example [source,sh] From 593b03fc6084497df20fad06e7fed9ccee0b0be7 Mon Sep 17 00:00:00 2001 From: John Barrier Wilson Date: Fri, 26 Mar 2021 14:09:45 -0500 Subject: [PATCH 22/55] [Workplace Search] Design polish: overview page (#95363) * Rework panels to subdued style * Fix button when source has been onboarded * Update content_section test for EuiSpacer * Update content_section test for EuiSpacer Length * Lint fix for onboarding_card * Remove spacer size due to default Co-authored-by: Scotty Bollinger * Remove test line for Spacer now that size=default Co-authored-by: Scotty Bollinger Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../content_section/content_section.test.tsx | 3 +- .../content_section/content_section.tsx | 4 +- .../views/overview/onboarding_card.tsx | 10 +-- .../views/overview/onboarding_steps.tsx | 11 +-- .../views/overview/organization_stats.tsx | 77 ++++++++++--------- .../views/overview/recent_activity.tsx | 2 +- .../views/overview/statistic_card.tsx | 2 + 7 files changed, 55 insertions(+), 54 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/content_section/content_section.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/content_section/content_section.test.tsx index d9c2d70e78c08..d37af01287c46 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/content_section/content_section.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/content_section/content_section.test.tsx @@ -47,8 +47,7 @@ describe('ContentSection', () => { /> ); - expect(wrapper.find(EuiSpacer).first().prop('size')).toEqual('s'); - expect(wrapper.find(EuiSpacer)).toHaveLength(2); + expect(wrapper.find(EuiSpacer)).toHaveLength(1); expect(wrapper.find('.header')).toHaveLength(1); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/content_section/content_section.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/content_section/content_section.tsx index d9a4ed7eee8b8..f0b86e0cc925b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/content_section/content_section.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/content_section/content_section.tsx @@ -30,7 +30,6 @@ export const ContentSection: React.FC = ({ description, action, headerChildren, - headerSpacer, testSubj, }) => (
@@ -38,10 +37,9 @@ export const ContentSection: React.FC = ({ <> {headerChildren} - {headerSpacer && } )} {children} - +
); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_card.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_card.tsx index 2d9e5580c6f40..338eda0214ea2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_card.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_card.tsx @@ -18,7 +18,7 @@ import { IconType, } from '@elastic/eui'; -import { EuiButtonTo, EuiButtonEmptyTo } from '../../../shared/react_router_helpers'; +import { EuiButtonTo } from '../../../shared/react_router_helpers'; import { TelemetryLogic } from '../../../shared/telemetry'; interface OnboardingCardProps { @@ -49,15 +49,15 @@ export const OnboardingCard: React.FC = ({ }); const completeButton = actionPath ? ( - + {actionTitle} - + ) : ( {actionTitle} ); const incompleteButton = actionPath ? ( - + {actionTitle} ) : ( @@ -66,7 +66,7 @@ export const OnboardingCard: React.FC = ({ return ( - + { }); return ( - + - + @@ -158,16 +158,17 @@ export const OrgNameOnboarding: React.FC = () => { - - +
diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/organization_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/organization_stats.tsx index 525035030b8cc..d1f0f6a030421 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/organization_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/organization_stats.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { useValues } from 'kea'; -import { EuiFlexGrid } from '@elastic/eui'; +import { EuiFlexGrid, EuiPanel } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; @@ -35,45 +35,46 @@ export const OrganizationStats: React.FC = () => { defaultMessage="Usage statistics" /> } - headerSpacer="m" > - - + + + {!isFederatedAuth && ( + <> + + + )} - count={sourcesCount} - actionPath={SOURCES_PATH} - /> - {!isFederatedAuth && ( - <> - - - - )} - - + + + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/recent_activity.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/recent_activity.tsx index 62b96442b9ba0..8bda7c2843b9e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/recent_activity.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/recent_activity.tsx @@ -41,7 +41,7 @@ export const RecentActivity: React.FC = () => { return ( - + {activityFeed.length > 0 ? ( <> {activityFeed.map((props: FeedActivity, index) => ( diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/statistic_card.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/statistic_card.tsx index 136901f840b89..9b134b511b34e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/statistic_card.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/statistic_card.tsx @@ -24,6 +24,7 @@ export const StatisticCard: React.FC = ({ title, count = 0, layout="horizontal" title={title} titleSize="xs" + display="plain" description={ {count} @@ -36,6 +37,7 @@ export const StatisticCard: React.FC = ({ title, count = 0, layout="horizontal" title={title} titleSize="xs" + display="plain" description={ {count} From 5518b04eed6c3ed5dea70fe4a5525948b0a110d3 Mon Sep 17 00:00:00 2001 From: Aleksandr Maus Date: Fri, 26 Mar 2021 15:09:58 -0400 Subject: [PATCH 23/55] Add policy_output_permissions_hash field to .fleet-agents mapping (#95410) --- .../services/fleet_server/elasticsearch/fleet_agents.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/x-pack/plugins/fleet/server/services/fleet_server/elasticsearch/fleet_agents.json b/x-pack/plugins/fleet/server/services/fleet_server/elasticsearch/fleet_agents.json index 9937e9ad66e56..58ae1a2e00ea4 100644 --- a/x-pack/plugins/fleet/server/services/fleet_server/elasticsearch/fleet_agents.json +++ b/x-pack/plugins/fleet/server/services/fleet_server/elasticsearch/fleet_agents.json @@ -187,6 +187,9 @@ "policy_id": { "type": "keyword" }, + "policy_output_permissions_hash": { + "type": "keyword" + }, "policy_revision_idx": { "type": "integer" }, From 31ea160fc79cb8c4695e7ea68aae01af0159febc Mon Sep 17 00:00:00 2001 From: Larry Gregory Date: Fri, 26 Mar 2021 15:23:45 -0400 Subject: [PATCH 24/55] Move production dependencies out of devDependencies (#93997) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .eslintrc.js | 118 ++++++---- package.json | 202 ++++++++---------- packages/kbn-utility-types/package.json | 2 +- src/cli/serve/serve.js | 1 + .../forms/hook_form_lib/shared_imports.ts | 2 + src/setup_node_env/index.js | 1 + .../analytics_tables/analytics_table.test.tsx | 2 +- .../recent_queries_table.test.tsx | 2 +- .../shared_columns_tests.tsx | 4 +- .../infra/public/utils/enzyme_helpers.tsx | 1 + .../routes/apidoc_scripts/schema_extractor.ts | 1 + .../common/endpoint/index_data.ts | 1 + .../public/common/utils/use_mount_appended.ts | 1 + .../view/side_effect_simulator_factory.ts | 1 + .../public/lib/helper/enzyme_helpers.tsx | 1 + .../uptime/public/lib/helper/rtl_helpers.tsx | 2 + yarn.lock | 167 ++------------- 17 files changed, 197 insertions(+), 312 deletions(-) rename x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/{ => test_helpers}/shared_columns_tests.tsx (96%) diff --git a/.eslintrc.js b/.eslintrc.js index b70090a50e64d..ab868c29b7bed 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -89,6 +89,72 @@ const SAFER_LODASH_SET_DEFINITELYTYPED_HEADER = ` */ `; +/** Packages which should not be included within production code. */ +const DEV_PACKAGES = [ + 'kbn-babel-code-parser', + 'kbn-dev-utils', + 'kbn-docs-utils', + 'kbn-es*', + 'kbn-eslint*', + 'kbn-optimizer', + 'kbn-plugin-generator', + 'kbn-plugin-helpers', + 'kbn-pm', + 'kbn-storybook', + 'kbn-telemetry-tools', + 'kbn-test', +]; + +/** Directories (at any depth) which include dev-only code. */ +const DEV_DIRECTORIES = [ + '.storybook', + '__tests__', + '__test__', + '__jest__', + '__fixtures__', + '__mocks__', + '__stories__', + 'e2e', + 'fixtures', + 'ftr_e2e', + 'integration_tests', + 'manual_tests', + 'mock', + 'storybook', + 'scripts', + 'test', + 'test-d', + 'test_utils', + 'test_utilities', + 'test_helpers', + 'tests_client_integration', +]; + +/** File patterns for dev-only code. */ +const DEV_FILE_PATTERNS = [ + '*.mock.{js,ts,tsx}', + '*.test.{js,ts,tsx}', + '*.test.helpers.{js,ts,tsx}', + '*.stories.{js,ts,tsx}', + '*.story.{js,ts,tsx}', + '*.stub.{js,ts,tsx}', + 'mock.{js,ts,tsx}', + '_stubs.{js,ts,tsx}', + '{testHelpers,test_helper,test_utils}.{js,ts,tsx}', + '{postcss,webpack}.config.js', +]; + +/** Glob patterns which describe dev-only code. */ +const DEV_PATTERNS = [ + ...DEV_PACKAGES.map((pkg) => `packages/${pkg}/**/*`), + ...DEV_DIRECTORIES.map((dir) => `{packages,src,x-pack}/**/${dir}/**/*`), + ...DEV_FILE_PATTERNS.map((file) => `{packages,src,x-pack}/**/${file}`), + 'packages/kbn-interpreter/tasks/**/*', + 'src/dev/**/*', + 'x-pack/{dev-tools,tasks,scripts,test,build_chromium}/**/*', + 'x-pack/plugins/*/server/scripts/**/*', +]; + module.exports = { root: true, @@ -491,43 +557,17 @@ module.exports = { }, /** - * Files that ARE NOT allowed to use devDependencies - */ - { - files: ['x-pack/**/*.js', 'packages/kbn-interpreter/**/*.js'], - rules: { - 'import/no-extraneous-dependencies': [ - 'error', - { - devDependencies: false, - peerDependencies: true, - packageDir: '.', - }, - ], - }, - }, - - /** - * Files that ARE allowed to use devDependencies + * Single package.json rules, it tells eslint to ignore the child package.json files + * and look for dependencies declarations in the single and root level package.json */ { - files: [ - 'packages/kbn-es/src/**/*.js', - 'packages/kbn-interpreter/tasks/**/*.js', - 'packages/kbn-interpreter/src/plugin/**/*.js', - 'x-pack/{dev-tools,tasks,scripts,test,build_chromium}/**/*.js', - 'x-pack/**/{__tests__,__test__,__jest__,__fixtures__,__mocks__,public}/**/*.js', - 'x-pack/**/*.test.js', - 'x-pack/test_utils/**/*', - 'x-pack/gulpfile.js', - 'x-pack/plugins/apm/public/utils/testHelpers.js', - 'x-pack/plugins/canvas/shareable_runtime/postcss.config.js', - ], + files: ['{src,x-pack,packages}/**/*.{js,mjs,ts,tsx}'], rules: { 'import/no-extraneous-dependencies': [ 'error', { - devDependencies: true, + /* Files that ARE allowed to use devDependencies */ + devDependencies: [...DEV_PATTERNS], peerDependencies: true, packageDir: '.', }, @@ -1420,21 +1460,5 @@ module.exports = { ], }, }, - - /** - * Single package.json rules, it tells eslint to ignore the child package.json files - * and look for dependencies declarations in the single and root level package.json - */ - { - files: ['**/*.{js,mjs,ts,tsx}'], - rules: { - 'import/no-extraneous-dependencies': [ - 'error', - { - packageDir: '.', - }, - ], - }, - }, ], }; diff --git a/package.json b/package.json index 58a02027362b9..32def9e2e9fc6 100644 --- a/package.json +++ b/package.json @@ -95,18 +95,23 @@ "yarn": "^1.21.1" }, "dependencies": { + "@elastic/apm-rum": "^5.6.1", + "@elastic/apm-rum-react": "^1.2.5", + "@elastic/charts": "26.0.0", "@elastic/datemath": "link:packages/elastic-datemath", "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@^8.0.0-canary.4", "@elastic/ems-client": "7.12.0", "@elastic/eui": "31.7.0", "@elastic/filesaver": "1.1.2", "@elastic/good": "^9.0.1-kibana3", + "@elastic/maki": "6.3.0", "@elastic/node-crypto": "1.2.1", "@elastic/numeral": "^2.5.0", "@elastic/react-search-ui": "^1.5.1", "@elastic/request-crypto": "1.1.4", "@elastic/safer-lodash-set": "link:packages/elastic-safer-lodash-set", "@elastic/search-ui-app-search-connector": "^1.5.0", + "@elastic/ui-ace": "0.2.3", "@hapi/boom": "^9.1.1", "@hapi/cookie": "^11.0.2", "@hapi/good-squeeze": "6.0.0", @@ -131,9 +136,15 @@ "@kbn/tinymath": "link:packages/kbn-tinymath", "@kbn/ui-framework": "link:packages/kbn-ui-framework", "@kbn/ui-shared-deps": "link:packages/kbn-ui-shared-deps", + "@kbn/utility-types": "link:packages/kbn-utility-types", "@kbn/utils": "link:packages/kbn-utils", "@loaders.gl/core": "^2.3.1", "@loaders.gl/json": "^2.3.1", + "@mapbox/geojson-rewind": "^0.5.0", + "@mapbox/mapbox-gl-draw": "^1.2.0", + "@mapbox/mapbox-gl-rtl-text": "^0.2.3", + "@mapbox/vector-tile": "1.3.1", + "@scant/router": "^0.1.1", "@slack/webhook": "^5.0.4", "@turf/along": "6.0.1", "@turf/area": "6.0.1", @@ -151,41 +162,59 @@ "accept": "3.0.2", "ajv": "^6.12.4", "angular": "^1.8.0", + "angular-aria": "^1.8.0", "angular-elastic": "^2.5.1", + "angular-recursion": "^1.0.5", "angular-resource": "1.8.0", + "angular-route": "^1.8.0", "angular-sanitize": "^1.8.0", + "angular-sortable-view": "^0.0.17", "angular-ui-ace": "0.2.3", "antlr4ts": "^0.5.0-alpha.3", "apollo-cache-inmemory": "1.6.2", "apollo-client": "^2.3.8", + "apollo-link": "^1.2.3", + "apollo-link-error": "^1.1.7", "apollo-link-http": "^1.5.16", "apollo-link-http-common": "^0.2.15", "apollo-link-schema": "^1.1.0", + "apollo-link-state": "^0.4.1", "apollo-server-core": "^1.3.6", "apollo-server-errors": "^2.0.2", "apollo-server-hapi": "^1.3.6", "archiver": "^5.2.0", "axios": "^0.21.1", + "base64-js": "^1.3.1", "bluebird": "3.5.5", "brace": "0.11.1", + "broadcast-channel": "^3.0.3", "chalk": "^4.1.0", "check-disk-space": "^2.1.0", + "cheerio": "0.22.0", "chokidar": "^3.4.3", "chroma-js": "^1.4.1", "classnames": "2.2.6", "color": "1.0.3", "commander": "^3.0.2", + "compare-versions": "3.5.1", "concat-stream": "1.6.2", + "constate": "^1.3.2", + "cronstrue": "^1.51.0", "content-disposition": "0.5.3", + "copy-to-clipboard": "^3.0.8", "core-js": "^3.6.5", "custom-event-polyfill": "^0.3.0", "cytoscape": "^3.10.0", "cytoscape-dagre": "^2.2.2", + "d3": "3.5.17", "d3-array": "1.2.4", + "d3-cloud": "1.2.5", + "d3-scale": "1.0.7", "d3-shape": "^1.1.0", "d3-time": "^1.1.0", "dedent": "^0.7.0", "deep-freeze-strict": "^1.1.1", + "deepmerge": "^4.2.2", "del": "^5.1.0", "elastic-apm-node": "^3.10.0", "elasticsearch": "^16.7.0", @@ -194,9 +223,11 @@ "expiry-js": "0.1.7", "extract-zip": "^2.0.1", "fast-deep-equal": "^3.1.1", + "file-saver": "^1.3.8", "file-type": "^10.9.0", "focus-trap-react": "^3.1.1", "font-awesome": "4.7.0", + "formsy-react": "^1.1.5", "fp-ts": "^2.3.1", "geojson-vt": "^3.2.1", "get-port": "^5.0.0", @@ -212,31 +243,51 @@ "graphql-tag": "^2.10.3", "graphql-tools": "^3.0.2", "handlebars": "4.7.7", + "he": "^1.2.0", "history": "^4.9.0", + "history-extra": "^5.0.1", "hjson": "3.2.1", "http-proxy-agent": "^2.1.0", "https-proxy-agent": "^5.0.0", + "i18n-iso-countries": "^4.3.1", + "icalendar": "0.7.1", "idx": "^2.5.6", "immer": "^8.0.1", "inline-style": "^2.0.0", "intl": "^1.2.5", "intl-format-cache": "^2.1.0", "intl-messageformat": "^2.2.0", + "intl-messageformat-parser": "^1.4.0", "intl-relativeformat": "^2.1.0", "io-ts": "^2.0.5", "ipaddr.js": "2.0.0", "isbinaryfile": "4.0.2", "joi": "^13.5.2", "jquery": "^3.5.0", + "js-levenshtein": "^1.1.6", + "js-search": "^1.4.3", "js-yaml": "^3.14.0", "json-stable-stringify": "^1.0.1", + "json-stringify-pretty-compact": "1.2.0", "json-stringify-safe": "5.0.1", "jsonwebtoken": "^8.5.1", + "jsts": "^1.6.2", + "kea": "^2.3.0", + "leaflet": "1.5.1", + "leaflet-draw": "0.4.14", + "leaflet-responsive-popup": "0.6.4", + "leaflet.heat": "0.2.0", + "less": "npm:@elastic/less@2.7.3-kibana", "load-json-file": "^6.2.0", + "loader-utils": "^1.2.3", "lodash": "^4.17.21", "lru-cache": "^4.1.5", + "lz-string": "^1.4.4", "markdown-it": "^10.0.0", + "mapbox-gl": "1.13.1", + "mapbox-gl-draw-rectangle-mode": "^1.0.4", "md5": "^2.1.0", + "memoize-one": "^5.0.0", "mime": "^2.4.4", "mime-types": "^2.1.27", "mini-css-extract-plugin": "0.8.0", @@ -261,38 +312,69 @@ "papaparse": "^5.2.0", "pdfmake": "^0.1.65", "pegjs": "0.10.0", + "p-limit": "^3.0.1", + "pluralize": "3.1.0", "pngjs": "^3.4.0", + "polished": "^1.9.2", "prop-types": "^15.7.2", "proper-lockfile": "^3.2.0", "proxy-from-env": "1.0.0", + "proxyquire": "1.8.0", "puid": "1.0.7", "puppeteer": "npm:@elastic/puppeteer@5.4.1-patch.1", "query-string": "^6.13.2", "raw-loader": "^3.1.0", + "rbush": "^3.0.1", + "re-resizable": "^6.1.1", "re2": "^1.15.4", "react": "^16.12.0", "react-ace": "^5.9.0", + "react-apollo": "^2.1.4", + "react-beautiful-dnd": "^13.0.0", "react-color": "^2.13.8", "react-datetime": "^2.14.0", "react-dom": "^16.12.0", + "react-dropzone": "^4.2.9", + "react-fast-compare": "^2.0.4", + "react-grid-layout": "^0.16.2", "react-input-range": "^1.3.0", "react-intl": "^2.8.0", "react-is": "^16.8.0", + "react-markdown": "^4.3.1", "react-moment-proptypes": "^1.7.0", + "react-monaco-editor": "^0.41.2", + "react-popper-tooltip": "^2.10.1", "react-query": "^3.12.0", + "react-resize-detector": "^4.2.0", + "react-reverse-portal": "^1.0.4", + "react-router-redux": "^4.0.8", + "react-shortcuts": "^2.0.0", + "react-sizeme": "^2.3.6", + "react-syntax-highlighter": "^15.3.1", "react-redux": "^7.2.0", "react-resizable": "^1.7.5", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", + "react-tiny-virtual-list": "^2.2.0", + "react-virtualized": "^9.21.2", "react-use": "^15.3.8", + "react-vis": "^1.8.1", + "react-visibility-sensor": "^5.1.1", + "reactcss": "1.2.3", "recompose": "^0.26.0", + "reduce-reducers": "^1.0.4", "redux": "^4.0.5", "redux-actions": "^2.6.5", + "redux-devtools-extension": "^2.13.8", "redux-observable": "^1.2.0", + "redux-saga": "^1.1.3", "redux-thunk": "^2.3.0", + "redux-thunks": "^1.0.0", "regenerator-runtime": "^0.13.3", "request": "^2.88.0", "require-in-the-middle": "^5.0.2", + "reselect": "^4.0.0", + "resize-observer-polyfill": "^1.5.0", "rison-node": "1.0.2", "rxjs": "^6.5.5", "seedrandom": "^3.0.5", @@ -305,17 +387,30 @@ "style-it": "^2.1.3", "styled-components": "^5.1.0", "symbol-observable": "^1.2.0", + "suricata-sid-db": "^1.0.2", "tabbable": "1.1.3", "tar": "4.4.13", + "tinycolor2": "1.4.1", "tinygradient": "0.4.3", + "topojson-client": "3.0.0", "tree-kill": "^1.2.2", "ts-easing": "^0.2.0", "tslib": "^2.0.0", "type-detect": "^4.0.8", + "typescript-fsa": "^3.0.0", + "typescript-fsa-reducers": "^1.2.2", "ui-select": "0.19.8", "unified": "^9.2.1", + "unstated": "^2.1.1", + "use-resize-observer": "^6.0.0", "utility-types": "^3.10.0", "uuid": "3.3.2", + "vega": "^5.19.1", + "vega-lite": "^4.17.0", + "vega-schema-url-parser": "^2.1.0", + "vega-spec-injector": "^0.0.2", + "vega-tooltip": "^0.25.0", + "venn.js": "0.2.20", "vinyl": "^2.2.0", "vt-pbf": "^3.1.1", "wellknown": "^0.5.0", @@ -347,13 +442,10 @@ "@cypress/webpack-preprocessor": "^5.5.0", "@elastic/apm-rum": "^5.6.1", "@elastic/apm-rum-react": "^1.2.5", - "@elastic/charts": "26.0.0", "@elastic/eslint-config-kibana": "link:packages/elastic-eslint-config-kibana", "@elastic/eslint-plugin-eui": "0.0.2", "@elastic/github-checks-reporter": "0.0.20b3", "@elastic/makelogs": "^6.0.0", - "@elastic/maki": "6.3.0", - "@elastic/ui-ace": "0.2.3", "@istanbuljs/schema": "^0.1.2", "@jest/reporters": "^26.5.2", "@kbn/babel-code-parser": "link:packages/kbn-babel-code-parser", @@ -373,17 +465,11 @@ "@kbn/telemetry-tools": "link:packages/kbn-telemetry-tools", "@kbn/test": "link:packages/kbn-test", "@kbn/test-subj-selector": "link:packages/kbn-test-subj-selector", - "@kbn/utility-types": "link:packages/kbn-utility-types", "@loaders.gl/polyfills": "^2.3.5", - "@mapbox/geojson-rewind": "^0.5.0", - "@mapbox/mapbox-gl-draw": "^1.2.0", - "@mapbox/mapbox-gl-rtl-text": "^0.2.3", - "@mapbox/vector-tile": "1.3.1", "@microsoft/api-documenter": "7.7.2", "@microsoft/api-extractor": "7.7.0", "@octokit/rest": "^16.35.0", "@percy/agent": "^0.28.6", - "@scant/router": "^0.1.0", "@storybook/addon-a11y": "^6.1.20", "@storybook/addon-actions": "^6.1.20", "@storybook/addon-docs": "^6.1.20", @@ -456,7 +542,6 @@ "@types/he": "^1.1.1", "@types/history": "^4.7.3", "@types/hjson": "^2.4.2", - "@types/hoist-non-react-statics": "^3.3.1", "@types/http-proxy": "^1.17.4", "@types/http-proxy-agent": "^2.0.2", "@types/inquirer": "^7.3.1", @@ -476,7 +561,6 @@ "@types/listr": "^0.14.0", "@types/loader-utils": "^1.1.3", "@types/lodash": "^4.14.159", - "@types/log-symbols": "^2.0.0", "@types/lru-cache": "^5.1.0", "@types/mapbox-gl": "^1.9.1", "@types/markdown-it": "^0.0.7", @@ -563,21 +647,13 @@ "@types/zen-observable": "^0.8.0", "@typescript-eslint/eslint-plugin": "^4.14.1", "@typescript-eslint/parser": "^4.14.1", - "@welldone-software/why-did-you-render": "^5.0.0", "@yarnpkg/lockfile": "^1.1.0", "abab": "^2.0.4", "aggregate-error": "^3.1.0", - "angular-aria": "^1.8.0", "angular-mocks": "^1.7.9", - "angular-recursion": "^1.0.5", - "angular-route": "^1.8.0", - "angular-sortable-view": "^0.0.17", "antlr4ts-cli": "^0.5.0-alpha.3", "apidoc": "^0.25.0", "apidoc-markdown": "^5.1.8", - "apollo-link": "^1.2.3", - "apollo-link-error": "^1.1.7", - "apollo-link-state": "^0.4.1", "argsplit": "^1.0.5", "autoprefixer": "^9.7.4", "axe-core": "^4.0.2", @@ -590,34 +666,23 @@ "babel-plugin-styled-components": "^1.10.7", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", "backport": "^5.6.6", - "base64-js": "^1.3.1", "base64url": "^3.0.1", - "broadcast-channel": "^3.0.3", "callsites": "^3.1.0", "chai": "3.5.0", "chance": "1.0.18", - "cheerio": "0.22.0", "chromedriver": "^89.0.0", "clean-webpack-plugin": "^3.0.0", "cmd-shim": "^2.1.0", - "compare-versions": "3.5.1", "compression-webpack-plugin": "^4.0.0", - "constate": "^1.3.2", - "copy-to-clipboard": "^3.0.8", "copy-webpack-plugin": "^6.0.2", "cpy": "^8.1.1", - "cronstrue": "^1.51.0", "css-loader": "^3.4.2", "cypress": "^6.2.1", "cypress-cucumber-preprocessor": "^2.5.2", "cypress-multi-reporters": "^1.4.0", "cypress-pipe": "^2.0.0", "cypress-promise": "^1.1.0", - "d3": "3.5.17", - "d3-cloud": "1.2.5", - "d3-scale": "1.0.7", "debug": "^2.6.9", - "deepmerge": "^4.2.2", "del-cli": "^3.0.1", "delete-empty": "^2.0.0", "dependency-check": "^4.1.0", @@ -654,9 +719,7 @@ "fast-glob": "2.2.7", "fetch-mock": "^7.3.9", "file-loader": "^4.2.0", - "file-saver": "^1.3.8", "form-data": "^4.0.0", - "formsy-react": "^1.1.5", "geckodriver": "^1.22.2", "glob-watcher": "5.0.3", "graphql-code-generator": "^0.18.2", @@ -675,19 +738,10 @@ "gulp-zip": "^5.0.2", "has-ansi": "^3.0.0", "hdr-histogram-js": "^1.2.0", - "he": "^1.2.0", - "highlight.js": "^9.18.5", - "history-extra": "^5.0.1", - "hoist-non-react-statics": "^3.3.2", "html": "1.0.0", "html-loader": "^0.5.5", "http-proxy": "^1.18.1", - "i18n-iso-countries": "^4.3.1", - "icalendar": "0.7.1", - "iedriver": "^3.14.2", - "imports-loader": "^0.8.0", "inquirer": "^7.3.3", - "intl-messageformat-parser": "^1.4.0", "is-glob": "^4.0.1", "is-path-inside": "^3.0.2", "istanbul-instrumenter-loader": "^3.0.1", @@ -705,31 +759,14 @@ "jest-styled-components": "^7.0.2", "jest-when": "^2.7.2", "jimp": "^0.14.0", - "js-levenshtein": "^1.1.6", - "js-search": "^1.4.3", "jsdom": "13.1.0", - "json-stringify-pretty-compact": "1.2.0", "json5": "^1.0.1", "jsondiffpatch": "0.4.1", - "jsts": "^1.6.2", - "kea": "^2.3.0", - "keymirror": "0.1.1", - "leaflet": "1.5.1", - "leaflet-draw": "0.4.14", - "leaflet-responsive-popup": "0.6.4", - "leaflet.heat": "0.2.0", - "less": "npm:@elastic/less@2.7.3-kibana", "license-checker": "^16.0.0", "listr": "^0.14.1", "lmdb-store": "^0.9.0", "load-grunt-config": "^3.0.1", - "loader-utils": "^1.2.3", - "log-symbols": "^2.2.0", - "lz-string": "^1.4.4", - "mapbox-gl": "1.13.1", - "mapbox-gl-draw-rectangle-mode": "^1.0.4", "marge": "^1.0.1", - "memoize-one": "^5.0.0", "micromatch": "3.1.10", "minimist": "^1.2.5", "mkdirp": "0.5.1", @@ -741,8 +778,6 @@ "mock-http-server": "1.3.0", "ms-chromium-edge-driver": "^0.2.3", "multimatch": "^4.0.0", - "multistream": "^2.1.1", - "murmurhash3js": "3.0.1", "mutation-observer": "^1.0.3", "ncp": "^2.0.0", "node-sass": "^4.14.1", @@ -750,53 +785,19 @@ "nyc": "^15.0.1", "oboe": "^2.1.4", "ora": "^4.0.4", - "p-limit": "^3.0.1", "parse-link-header": "^1.0.1", "pbf": "3.2.1", "pirates": "^4.0.1", "pixelmatch": "^5.1.0", - "pkg-up": "^2.0.0", - "pluralize": "3.1.0", - "polished": "^1.9.2", "postcss": "^7.0.32", "postcss-loader": "^3.0.0", "postcss-prefix-selector": "^1.7.2", "prettier": "^2.2.0", "pretty-ms": "5.0.0", - "proxyquire": "1.8.0", "q": "^1.5.1", - "querystring": "^0.2.0", - "rbush": "^3.0.1", - "re-resizable": "^6.1.1", - "react-apollo": "^2.1.4", - "react-beautiful-dnd": "^13.0.0", - "react-docgen-typescript-loader": "^3.1.1", - "react-dropzone": "^4.2.9", - "react-fast-compare": "^2.0.4", - "react-grid-layout": "^0.16.2", - "react-markdown": "^4.3.1", - "react-monaco-editor": "^0.41.2", - "react-popper-tooltip": "^2.10.1", - "react-resize-detector": "^4.2.0", - "react-reverse-portal": "^1.0.4", - "react-router-redux": "^4.0.8", - "react-shortcuts": "^2.0.0", - "react-sizeme": "^2.3.6", - "react-syntax-highlighter": "^15.3.1", "react-test-renderer": "^16.12.0", - "react-tiny-virtual-list": "^2.2.0", - "react-virtualized": "^9.21.2", - "react-vis": "^1.8.1", - "react-visibility-sensor": "^5.1.1", - "reactcss": "1.2.3", "read-pkg": "^5.2.0", - "reduce-reducers": "^1.0.4", - "redux-devtools-extension": "^2.13.8", - "redux-saga": "^1.1.3", - "redux-thunks": "^1.0.0", "regenerate": "^1.4.0", - "reselect": "^4.0.0", - "resize-observer-polyfill": "^1.5.0", "resolve": "^1.7.1", "rxjs-marbles": "^5.0.6", "sass-loader": "^8.0.2", @@ -816,31 +817,18 @@ "supertest": "^3.1.0", "supertest-as-promised": "^4.0.2", "supports-color": "^7.0.0", - "suricata-sid-db": "^1.0.2", "tape": "^5.0.1", "tar-fs": "^2.1.0", "tempy": "^0.3.0", "terminal-link": "^2.1.1", "terser-webpack-plugin": "^2.1.2", - "tinycolor2": "1.4.1", - "topojson-client": "3.0.0", "ts-loader": "^7.0.5", "ts-morph": "^9.1.0", "tsd": "^0.13.1", "typescript": "4.1.3", - "typescript-fsa": "^3.0.0", - "typescript-fsa-reducers": "^1.2.2", "unlazy-loader": "^0.1.3", - "unstated": "^2.1.1", "url-loader": "^2.2.0", - "use-resize-observer": "^6.0.0", "val-loader": "^1.1.1", - "vega": "^5.19.1", - "vega-lite": "^4.17.0", - "vega-schema-url-parser": "^2.1.0", - "vega-spec-injector": "^0.0.2", - "vega-tooltip": "^0.25.0", - "venn.js": "0.2.20", "vinyl-fs": "^3.0.3", "wait-on": "^5.2.1", "watchpack": "^1.6.0", diff --git a/packages/kbn-utility-types/package.json b/packages/kbn-utility-types/package.json index a8f6e25276cec..33419ee0f1ec4 100644 --- a/packages/kbn-utility-types/package.json +++ b/packages/kbn-utility-types/package.json @@ -6,7 +6,7 @@ "main": "target", "types": "target/index.d.ts", "kibana": { - "devOnly": true + "devOnly": false }, "scripts": { "build": "../../node_modules/.bin/tsc", diff --git a/src/cli/serve/serve.js b/src/cli/serve/serve.js index 13c16691bf12a..34b78bbd7e51e 100644 --- a/src/cli/serve/serve.js +++ b/src/cli/serve/serve.js @@ -68,6 +68,7 @@ function applyConfigOverrides(rawConfig, opts, extraCliOptions) { if (opts.ssl) { // @kbn/dev-utils is part of devDependencies + // eslint-disable-next-line import/no-extraneous-dependencies const { CA_CERT_PATH, KBN_KEY_PATH, KBN_CERT_PATH } = require('@kbn/dev-utils'); const customElasticsearchHosts = opts.elasticsearch ? opts.elasticsearch.split(',') diff --git a/src/plugins/es_ui_shared/static/forms/hook_form_lib/shared_imports.ts b/src/plugins/es_ui_shared/static/forms/hook_form_lib/shared_imports.ts index 18eccb4e87090..c57333d788ef5 100644 --- a/src/plugins/es_ui_shared/static/forms/hook_form_lib/shared_imports.ts +++ b/src/plugins/es_ui_shared/static/forms/hook_form_lib/shared_imports.ts @@ -6,6 +6,8 @@ * Side Public License, v 1. */ +// eslint-disable-next-line import/no-extraneous-dependencies export { registerTestBed, TestBed } from '@kbn/test/jest'; +// eslint-disable-next-line import/no-extraneous-dependencies export { getRandomString } from '@kbn/test/jest'; diff --git a/src/setup_node_env/index.js b/src/setup_node_env/index.js index 08664344db393..9ce60766997cc 100644 --- a/src/setup_node_env/index.js +++ b/src/setup_node_env/index.js @@ -7,4 +7,5 @@ */ require('./no_transpilation'); +// eslint-disable-next-line import/no-extraneous-dependencies require('@kbn/optimizer').registerNodeAutoTranspilation(); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/analytics_table.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/analytics_table.test.tsx index a0b0e4402c1e4..624cc57e1eb22 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/analytics_table.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/analytics_table.test.tsx @@ -12,7 +12,7 @@ import React from 'react'; import { EuiBasicTable, EuiBadge, EuiEmptyPrompt } from '@elastic/eui'; -import { runActionColumnTests } from './shared_columns_tests'; +import { runActionColumnTests } from './test_helpers/shared_columns_tests'; import { AnalyticsTable } from './'; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/recent_queries_table.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/recent_queries_table.test.tsx index 0670624492db5..6021363183098 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/recent_queries_table.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/recent_queries_table.test.tsx @@ -12,7 +12,7 @@ import React from 'react'; import { EuiBasicTable, EuiBadge, EuiEmptyPrompt } from '@elastic/eui'; -import { runActionColumnTests } from './shared_columns_tests'; +import { runActionColumnTests } from './test_helpers/shared_columns_tests'; import { RecentQueriesTable } from './'; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/shared_columns_tests.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/test_helpers/shared_columns_tests.tsx similarity index 96% rename from x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/shared_columns_tests.tsx rename to x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/test_helpers/shared_columns_tests.tsx index cb78a6585e43c..95af7b52487d4 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/shared_columns_tests.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/components/analytics_tables/test_helpers/shared_columns_tests.tsx @@ -9,8 +9,8 @@ import { mockHttpValues, mockKibanaValues, mockFlashMessageHelpers, -} from '../../../../../__mocks__'; -import '../../../../__mocks__/engine_logic.mock'; +} from '../../../../../../__mocks__'; +import '../../../../../__mocks__/engine_logic.mock'; import { ReactWrapper } from 'enzyme'; diff --git a/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx b/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx index 124b6b8f13bf9..33fbbd03d790a 100644 --- a/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx +++ b/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx @@ -5,6 +5,7 @@ * 2.0. */ +// eslint-disable-next-line import/no-extraneous-dependencies import { mount, ReactWrapper } from 'enzyme'; import React from 'react'; import { act as reactAct } from 'react-dom/test-utils'; diff --git a/x-pack/plugins/ml/server/routes/apidoc_scripts/schema_extractor.ts b/x-pack/plugins/ml/server/routes/apidoc_scripts/schema_extractor.ts index 3a30a141f88f5..f94aaffc41a7b 100644 --- a/x-pack/plugins/ml/server/routes/apidoc_scripts/schema_extractor.ts +++ b/x-pack/plugins/ml/server/routes/apidoc_scripts/schema_extractor.ts @@ -5,6 +5,7 @@ * 2.0. */ +// eslint-disable-next-line import/no-extraneous-dependencies import * as ts from 'typescript'; export interface DocEntry { diff --git a/x-pack/plugins/security_solution/common/endpoint/index_data.ts b/x-pack/plugins/security_solution/common/endpoint/index_data.ts index cf2b234451f50..b35504fc88659 100644 --- a/x-pack/plugins/security_solution/common/endpoint/index_data.ts +++ b/x-pack/plugins/security_solution/common/endpoint/index_data.ts @@ -7,6 +7,7 @@ import { Client } from '@elastic/elasticsearch'; import seedrandom from 'seedrandom'; +// eslint-disable-next-line import/no-extraneous-dependencies import { KbnClient } from '@kbn/test'; import { AxiosResponse } from 'axios'; import { EndpointDocGenerator, TreeOptions, Event } from './generate_data'; diff --git a/x-pack/plugins/security_solution/public/common/utils/use_mount_appended.ts b/x-pack/plugins/security_solution/public/common/utils/use_mount_appended.ts index 3962d6c946a48..e63a2b20a5ad5 100644 --- a/x-pack/plugins/security_solution/public/common/utils/use_mount_appended.ts +++ b/x-pack/plugins/security_solution/public/common/utils/use_mount_appended.ts @@ -5,6 +5,7 @@ * 2.0. */ +// eslint-disable-next-line import/no-extraneous-dependencies import { mount } from 'enzyme'; type WrapperOf any> = (...args: Parameters) => ReturnType; // eslint-disable-line diff --git a/x-pack/plugins/security_solution/public/resolver/view/side_effect_simulator_factory.ts b/x-pack/plugins/security_solution/public/resolver/view/side_effect_simulator_factory.ts index 32382ae7a22f0..8c3caf16eadd7 100644 --- a/x-pack/plugins/security_solution/public/resolver/view/side_effect_simulator_factory.ts +++ b/x-pack/plugins/security_solution/public/resolver/view/side_effect_simulator_factory.ts @@ -5,6 +5,7 @@ * 2.0. */ +// eslint-disable-next-line import/no-extraneous-dependencies import { act } from '@testing-library/react'; import { SideEffectSimulator } from '../types'; diff --git a/x-pack/plugins/uptime/public/lib/helper/enzyme_helpers.tsx b/x-pack/plugins/uptime/public/lib/helper/enzyme_helpers.tsx index 4c81247fb2cf1..04ecc6bc9c72d 100644 --- a/x-pack/plugins/uptime/public/lib/helper/enzyme_helpers.tsx +++ b/x-pack/plugins/uptime/public/lib/helper/enzyme_helpers.tsx @@ -9,6 +9,7 @@ import React, { ReactElement } from 'react'; import { Router } from 'react-router-dom'; import { MemoryHistory } from 'history/createMemoryHistory'; import { createMemoryHistory, History } from 'history'; +// eslint-disable-next-line import/no-extraneous-dependencies import { mountWithIntl, renderWithIntl, shallowWithIntl } from '@kbn/test/jest'; import { MountWithReduxProvider } from './helper_with_redux'; import { AppState } from '../../state'; diff --git a/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx b/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx index 54839e9009896..62914b6cec42b 100644 --- a/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx +++ b/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx @@ -7,12 +7,14 @@ import React, { ReactElement } from 'react'; import { of } from 'rxjs'; +// eslint-disable-next-line import/no-extraneous-dependencies import { render as reactTestLibRender, RenderOptions } from '@testing-library/react'; import { Router } from 'react-router-dom'; import { createMemoryHistory, History } from 'history'; import { CoreStart } from 'kibana/public'; import { I18nProvider } from '@kbn/i18n/react'; import { coreMock } from 'src/core/public/mocks'; +// eslint-disable-next-line import/no-extraneous-dependencies import { configure } from '@testing-library/dom'; import { mockState } from '../__mocks__/uptime_store.mock'; import { EuiThemeProvider } from '../../../../../../src/plugins/kibana_react/common'; diff --git a/yarn.lock b/yarn.lock index bb51177659b10..c0053bc58a1a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3490,10 +3490,10 @@ dependencies: any-observable "^0.3.0" -"@scant/router@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@scant/router/-/router-0.1.0.tgz#54e7e32282ee05d40ea410a4987ae6444080f989" - integrity sha1-VOfjIoLuBdQOpBCkmHrmRECA+Yk= +"@scant/router@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@scant/router/-/router-0.1.1.tgz#df3c9ae1796efce02f41c95c35166d708d88ef4a" + integrity sha512-9MiMXmEVFLm7jalyyVOtCvUN5dsIF9UgZW62BRw74vxEauLmeI0BTtJBmFdD4hMDL/QfHJc8egBPm2+f4s58wg== dependencies: url-pattern "^1.0.3" @@ -4927,7 +4927,7 @@ resolved "https://registry.yarnpkg.com/@types/hjson/-/hjson-2.4.2.tgz#fd0288a5b6778cda993c978e43cc978ddc8f22e9" integrity sha512-MSKTfEyR8DbzJTOAY47BIJBD72ol4cu6BOw5inda0q1eEtEmurVHL4OmYB3Lxa4/DwXbWidkddvtoygbGQEDIw== -"@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1": +"@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.0": version "3.3.1" resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== @@ -5164,11 +5164,6 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.159.tgz#61089719dc6fdd9c5cb46efc827f2571d1517065" integrity sha512-gF7A72f7WQN33DpqOWw9geApQPh4M3PxluMtaHxWHXEGSN12/WbcEk/eNSqWNQcQhF66VSZ06vCF94CrHwXJDg== -"@types/log-symbols@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/log-symbols/-/log-symbols-2.0.0.tgz#7919e2ec3c8d13879bfdcab310dd7a3f7fc9466d" - integrity sha512-YJhbp0sz3egFFKl3BcCNPQKzuGFOP4PACcsifhK6ROGnJUW9ViYLuLybQ9GQZm7Zejy3tkGuiXYMq3GiyGkU4g== - "@types/lru-cache@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03" @@ -6259,25 +6254,6 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" -"@webpack-contrib/schema-utils@^1.0.0-beta.0": - version "1.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz#bf9638c9464d177b48209e84209e23bee2eb4f65" - integrity sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - chalk "^2.3.2" - strip-ansi "^4.0.0" - text-table "^0.2.0" - webpack-log "^1.1.2" - -"@welldone-software/why-did-you-render@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@welldone-software/why-did-you-render/-/why-did-you-render-5.0.0.tgz#5dd8d20ad9f00fd500de852dd06eea0c057a0bce" - integrity sha512-A6xUP/55vJQwA1+L6iZbG81cQanSQQVR15yPcjLIp6lHmybXEOXsYcuXaDZHYqiNStZRzv64YPcYJC9wdphfhw== - dependencies: - lodash "^4" - "@wildpeaks/snapshot-dom@1.6.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@wildpeaks/snapshot-dom/-/snapshot-dom-1.6.0.tgz#83297612bf93b97983beafbe6ae71672642ac884" @@ -9153,7 +9129,7 @@ chai@^4.1.2: pathval "^1.1.0" type-detect "^4.0.5" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -9985,7 +9961,7 @@ concaveman@*: robust-orientation "^1.1.3" tinyqueue "^1.1.0" -config-chain@^1.1.12, config-chain@~1.1.8: +config-chain@^1.1.12: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== @@ -13301,7 +13277,7 @@ extract-stack@^1.0.0: resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-1.0.0.tgz#b97acaf9441eea2332529624b732fc5a1c8165fa" integrity sha1-uXrK+UQe6iMyUpYktzL8WhyBZfo= -extract-zip@1.7.0, extract-zip@^1.7.0: +extract-zip@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== @@ -14799,11 +14775,6 @@ graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, g resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== -graceful-fs@~1.1: - version "1.1.14" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.1.14.tgz#07078db5f6377f6321fceaaedf497de124dc9465" - integrity sha1-BweNtfY3f2Mh/Oqu30l94STclGU= - graphlib@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" @@ -15938,18 +15909,6 @@ idx@^2.5.6: resolved "https://registry.yarnpkg.com/idx/-/idx-2.5.6.tgz#1f824595070100ae9ad585c86db08dc74f83a59d" integrity sha512-WFXLF7JgPytbMgelpRY46nHz5tyDcedJ76pLV+RJWdb8h33bxFq4bdZau38DhNSzk5eVniBf1K3jwfK+Lb5nYA== -iedriver@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/iedriver/-/iedriver-3.14.2.tgz#a19391ff123e21823ce0afe300e38b58a7dc79c4" - integrity sha512-vvFwfpOOZXmpXT/3Oa9SOFrr4uZNNUtBKPLRz7z8oZigvvIOokDiBlbImrd80q+rgjkmqUGi6a2NnpyCOAXnOw== - dependencies: - extract-zip "1.7.0" - kew "~0.1.7" - mkdirp "0.5.4" - npmconf "^2.1.3" - request "^2.88.0" - rimraf "~2.0.2" - ieee754@^1.1.12, ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" @@ -16073,14 +16032,6 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" -imports-loader@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz#030ea51b8ca05977c40a3abfd9b4088fe0be9a69" - integrity sha512-kXWL7Scp8KQ4552ZcdVTeaQCZSLW+e6nJfp3cwUMB673T7Hr98Xjx5JK+ql7ADlJUvj1JS5O01RLbKoutN5QDQ== - dependencies: - loader-utils "^1.0.2" - source-map "^0.6.1" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -16146,7 +16097,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.2.0, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.7" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== @@ -18208,16 +18159,6 @@ kea@^2.3.0: resolved "https://registry.yarnpkg.com/kea/-/kea-2.3.3.tgz#8fbd6d0c4ba5079c5abe46486bbc7dc1fd071a62" integrity sha512-NZQHisfEvlg+e6BsHckW03IYaIBY+fuK4xiov7ShZ0GudUmNLhqgHSxUsykU/wdrCPEI6ANX1gyDIRTnUd3HyA== -kew@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/kew/-/kew-0.1.7.tgz#0a32a817ff1a9b3b12b8c9bacf4bc4d679af8e72" - integrity sha1-CjKoF/8amzsSuMm6z0vE1nmvjnI= - -keymirror@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/keymirror/-/keymirror-0.1.1.tgz#918889ea13f8d0a42e7c557250eee713adc95c35" - integrity sha1-kYiJ6hP40KQufFVyUO7nE63JXDU= - keyv@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" @@ -18945,7 +18886,7 @@ lodash.uniq@4.5.0, lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.17.11, lodash@4.17.15, lodash@>4.17.4, lodash@^4, lodash@^4.0.0, lodash@^4.0.1, lodash@^4.10.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.2.0, lodash@~4.17.10, lodash@~4.17.15, lodash@~4.17.19, lodash@~4.17.20: +lodash@4.17.11, lodash@4.17.15, lodash@>4.17.4, lodash@^4.0.0, lodash@^4.0.1, lodash@^4.10.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.2.0, lodash@~4.17.10, lodash@~4.17.15, lodash@~4.17.19, lodash@~4.17.20: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -18958,7 +18899,7 @@ log-ok@^0.1.1: ansi-green "^0.1.1" success-symbol "^0.1.0" -log-symbols@2.2.0, log-symbols@^2.1.0, log-symbols@^2.2.0: +log-symbols@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== @@ -19011,14 +18952,6 @@ loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== -loglevelnext@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2" - integrity sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A== - dependencies: - es6-symbol "^3.1.1" - object.assign "^4.1.0" - lolex@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7" @@ -19839,7 +19772,7 @@ mkdirp@0.5.1: dependencies: minimist "0.0.8" -mkdirp@0.5.4, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.0, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== @@ -20142,24 +20075,11 @@ multiparty@^4.1.2: safe-buffer "5.1.2" uid-safe "2.1.5" -multistream@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz#629d3a29bd76623489980d04519a2c365948148c" - integrity sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.5" - murmurhash-js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/murmurhash-js/-/murmurhash-js-1.0.0.tgz#b06278e21fc6c37fa5313732b0412bcb6ae15f51" integrity sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E= -murmurhash3js@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/murmurhash3js/-/murmurhash3js-3.0.1.tgz#3e983e5b47c2a06f43a713174e7e435ca044b998" - integrity sha1-Ppg+W0fCoG9DpxMXTn5DXKBEuZg= - mustache@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5" @@ -20613,7 +20533,7 @@ nodemon@^2.0.4: chalk "~0.4.0" underscore "~1.6.0" -"nopt@2 || 3", nopt@~3.0.1, nopt@~3.0.6: +"nopt@2 || 3", nopt@~3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= @@ -20730,22 +20650,6 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -npmconf@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/npmconf/-/npmconf-2.1.3.tgz#1cbe5dd02e899d365fed7260b54055473f90a15c" - integrity sha512-iTK+HI68GceCoGOHAQiJ/ik1iDfI7S+cgyG8A+PP18IU3X83kRhQIRhAUNj4Bp2JMx6Zrt5kCiozYa9uGWTjhA== - dependencies: - config-chain "~1.1.8" - inherits "~2.0.0" - ini "^1.2.0" - mkdirp "^0.5.0" - nopt "~3.0.1" - once "~1.3.0" - osenv "^0.1.0" - safe-buffer "^5.1.1" - semver "2 || 3 || 4" - uid-number "0.0.5" - "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -21042,13 +20946,6 @@ once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: dependencies: wrappy "1" -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA= - dependencies: - wrappy "1" - one-time@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" @@ -22966,15 +22863,6 @@ react-dev-utils@^11.0.3: strip-ansi "6.0.0" text-table "0.2.0" -react-docgen-typescript-loader@^3.1.1: - version "3.7.2" - resolved "https://registry.yarnpkg.com/react-docgen-typescript-loader/-/react-docgen-typescript-loader-3.7.2.tgz#45cb2305652c0602767242a8700ad1ebd66bbbbd" - integrity sha512-fNzUayyUGzSyoOl7E89VaPKJk9dpvdSgyXg81cUkwy0u+NBvkzQG3FC5WBIlXda0k/iaxS+PWi+OC+tUiGxzPA== - dependencies: - "@webpack-contrib/schema-utils" "^1.0.0-beta.0" - loader-utils "^1.2.3" - react-docgen-typescript "^1.15.0" - react-docgen-typescript-plugin@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-0.6.3.tgz#664b22601df083597ecb1e60bd21beca60125fdf" @@ -22986,7 +22874,7 @@ react-docgen-typescript-plugin@^0.6.2: react-docgen-typescript "^1.20.5" tslib "^2.0.0" -react-docgen-typescript@^1.15.0, react-docgen-typescript@^1.20.5: +react-docgen-typescript@^1.20.5: version "1.21.0" resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-1.21.0.tgz#3385dde81b63eb1d54f86a935bd4f65f96c821f6" integrity sha512-E4y/OcXwHukgiVafCGlxwoNHr4BDmM70Ww7oimL/QkMo5dmGALhceewe/xmVjdMxxI7E5syOGOc9/tbHL742rg== @@ -24659,13 +24547,6 @@ rimraf@^2.7.1: dependencies: glob "^7.1.3" -rimraf@~2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.0.3.tgz#f50a2965e7144e9afd998982f15df706730f56a9" - integrity sha1-9QopZecUTpr9mYmC8V33BnMPVqk= - optionalDependencies: - graceful-fs "~1.1" - rimraf@~2.4.0: version "2.4.5" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" @@ -25021,11 +24902,6 @@ semver-greatest-satisfied-range@^1.1.0: dependencies: sver-compat "^1.5.0" -"semver@2 || 3 || 4": - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" - integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= - "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -27630,11 +27506,6 @@ ui-select@0.19.8: resolved "https://registry.yarnpkg.com/ui-select/-/ui-select-0.19.8.tgz#74860848a7fd8bc494d9856d2f62776ea98637c1" integrity sha1-dIYISKf9i8SU2YVtL2J3bqmGN8E= -uid-number@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.5.tgz#5a3db23ef5dbd55b81fce0ec9a2ac6fccdebb81e" - integrity sha1-Wj2yPvXb1VuB/ODsmirG/M3ruB4= - uid-safe@2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" @@ -29175,16 +29046,6 @@ webpack-hot-middleware@^2.25.0: querystring "^0.2.0" strip-ansi "^3.0.0" -webpack-log@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d" - integrity sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA== - dependencies: - chalk "^2.1.0" - log-symbols "^2.1.0" - loglevelnext "^1.0.1" - uuid "^3.1.0" - webpack-log@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" From 2aae753c54f7e320b84c71764766bfbe9bc43ebd Mon Sep 17 00:00:00 2001 From: Yara Tercero Date: Fri, 26 Mar 2021 13:05:27 -0700 Subject: [PATCH 25/55] [Security Solution][Exceptions][Builder] -Move exception builder entry item exceptions ui over to lists (#94515) ## Summary Beginning to move the exceptions UI out of the security solution plugin and into the lists plugin. In order to keep PRs (relatively) small, I plan to move single components at a time. This should also then help more easily pinpoint the source of any issues that come up along the way. The next couple PRs will focus on the exception builder. This one in particular is focused on moving over the `BuilderEntryItem` which deals with rendering the individual exception item entries. An entry can be of type `match`, `match_any`, `list`, `exists`, or `nested`. The component makes use of the autocomplete fields which use the index patterns to display possible fields and field values. One of the decisions made in this PR was to have consumers of the `BuilderEntryItem` pass through the autocomplete service as opposed to the `lists` plugin adding it as a dependency. The reason being that it is likely that plugins using the lists plugin will already be consuming either the data plugin or if alerting takes exceptions in, then they'll be consuming alerting. In an effort to avoid some possible icky circular dependency issues, though it best to make the service passed in, as we had already been doing with the hooks in the `lists` plugin. --- .../lists/public/common/empty_value.ts | 8 + .../components/autocomplete/README.md | 122 +++ .../components/autocomplete/field.test.tsx | 147 +++ .../components/autocomplete/field.tsx | 146 +++ .../autocomplete/field_value_exists.test.tsx | 23 + .../autocomplete/field_value_exists.tsx | 35 + .../autocomplete/field_value_lists.test.tsx | 224 ++++ .../autocomplete/field_value_lists.tsx | 123 +++ .../autocomplete/field_value_match.test.tsx | 443 ++++++++ .../autocomplete/field_value_match.tsx | 300 ++++++ .../field_value_match_any.test.tsx | 269 +++++ .../autocomplete/field_value_match_any.tsx | 226 ++++ .../components/autocomplete/helpers.test.ts | 388 +++++++ .../components/autocomplete/helpers.ts | 175 +++ .../use_field_value_autocomplete.test.ts | 334 ++++++ .../hooks/use_field_value_autocomplete.ts | 120 +++ .../components/autocomplete/index.tsx | 13 + .../components/autocomplete/operator.test.tsx | 226 ++++ .../components/autocomplete/operator.tsx | 92 ++ .../components/autocomplete/operators.ts | 109 ++ .../components/autocomplete/translations.ts | 28 + .../components/autocomplete/types.ts | 23 + .../builder/entry_renderer.stories.tsx | 200 ++++ .../builder/entry_renderer.test.tsx} | 385 +++---- .../components/builder/entry_renderer.tsx} | 78 +- .../components/builder/helpers.test.ts | 998 ++++++++++++++++++ .../exceptions/components/builder/helpers.ts | 389 +++++++ .../components/builder/translations.ts | 55 + .../exceptions/components/builder/types.ts | 90 ++ x-pack/plugins/lists/public/shared_exports.ts | 1 + x-pack/plugins/lists/scripts/storybook.js | 14 + .../exceptions/exceptions_modal.spec.ts | 19 +- .../builder/exception_item.test.tsx | 9 - .../exceptions/builder/exception_item.tsx | 12 +- .../exceptions/builder/helpers.test.tsx | 924 +--------------- .../components/exceptions/builder/helpers.tsx | 384 +------ .../components/exceptions/builder/index.tsx | 1 - .../public/shared_imports.ts | 1 + 38 files changed, 5626 insertions(+), 1508 deletions(-) create mode 100644 x-pack/plugins/lists/public/common/empty_value.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/README.md create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field.test.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_exists.test.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_exists.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.test.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.test.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.test.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.test.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/index.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.test.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/operators.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/translations.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/autocomplete/types.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx rename x-pack/plugins/{security_solution/public/common/components/exceptions/builder/entry_item.test.tsx => lists/public/exceptions/components/builder/entry_renderer.test.tsx} (86%) rename x-pack/plugins/{security_solution/public/common/components/exceptions/builder/entry_item.tsx => lists/public/exceptions/components/builder/entry_renderer.tsx} (82%) create mode 100644 x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/builder/helpers.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/builder/translations.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/builder/types.ts create mode 100644 x-pack/plugins/lists/scripts/storybook.js diff --git a/x-pack/plugins/lists/public/common/empty_value.ts b/x-pack/plugins/lists/public/common/empty_value.ts new file mode 100644 index 0000000000000..05a3e73584ef1 --- /dev/null +++ b/x-pack/plugins/lists/public/common/empty_value.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const getEmptyValue = (): string => '—'; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/README.md b/x-pack/plugins/lists/public/exceptions/components/autocomplete/README.md new file mode 100644 index 0000000000000..fb500ca0761e3 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/README.md @@ -0,0 +1,122 @@ +# Autocomplete Fields + +Need an input that shows available index fields? Or an input that autocompletes based on a selected indexPattern field? Bingo! That's what these components are for. They are generalized enough so that they can be reused throughout and repurposed based on your needs. + +All three of the available components rely on Eui's combo box. + +## useFieldValueAutocomplete + +This hook uses the kibana `services.data.autocomplete.getValueSuggestions()` service to return possible autocomplete fields based on the passed in `indexPattern` and `selectedField`. + +## FieldComponent + +This component can be used to display available indexPattern fields. It requires an indexPattern to be passed in and will show an error state if value is not one of the available indexPattern fields. Users will be able to select only one option. + +The `onChange` handler is passed `IFieldType[]`. + +```js + +``` + +## OperatorComponent + +This component can be used to display available operators. If you want to pass in your own operators, you can use `operatorOptions` prop. If a `operatorOptions` is provided, those will be used and it will ignore any of the built in logic that determines which operators to show. The operators within `operatorOptions` will still need to be of type `OperatorOption`. + +If no `operatorOptions` is provided, then the following behavior is observed: + +- if `selectedField` type is `boolean`, only `is`, `is not`, `exists`, `does not exist` operators will show +- if `selectedField` type is `nested`, only `is` operator will show +- if not one of the above, all operators will show (see `operators.ts`) + +The `onChange` handler is passed `OperatorOption[]`. + +```js + +``` + +## AutocompleteFieldExistsComponent + +This field value component is used when the selected operator is `exists` or `does not exist`. When these operators are selected, they are equivalent to using a wildcard. The combo box will be displayed as disabled. + +```js + +``` + +## AutocompleteFieldListsComponent + +This component can be used to display available large value lists - when operator selected is `is in list` or `is not in list`. It relies on hooks from the `lists` plugin. Users can only select one list and an error is shown if value is not one of available lists. + +The `selectedValue` should be the `id` of the selected list. + +This component relies on `selectedField` to render available lists. The reason being that it relies on the `selectedField` type to determine which lists to show as each large value list has a type as well. So if a user selects a field of type `ip`, it will only display lists of type `ip`. + +The `onChange` handler is passed `ListSchema`. + +```js + +``` + +## AutocompleteFieldMatchComponent + +This component can be used to allow users to select one single value. It uses the autocomplete hook to display any autocomplete options based on the passed in `indexPattern`, but also allows a user to add their own value. + +It does some minor validation, assuring that field value is a date if `selectedField` type is `date`, a number if `selectedField` type is `number`, an ip if `selectedField` type is `ip`. + +The `onChange` handler is passed selected `string`. + +```js + +``` + +## AutocompleteFieldMatchAnyComponent + +This component can be used to allow users to select multiple values. It uses the autocomplete hook to display any autocomplete options based on the passed in `indexPattern`, but also allows a user to add their own values. + +It does some minor validation, assuring that field values are a date if `selectedField` type is `date`, numbers if `selectedField` type is `number`, ips if `selectedField` type is `ip`. + +The `onChange` handler is passed selected `string[]`. + +```js + +``` \ No newline at end of file diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field.test.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field.test.tsx new file mode 100644 index 0000000000000..416852b469a79 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field.test.tsx @@ -0,0 +1,147 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { mount } from 'enzyme'; +import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; + +import { + fields, + getField, +} from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; + +import { FieldComponent } from './field'; + +describe('FieldComponent', () => { + test('it renders disabled if "isDisabled" is true', () => { + const wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="fieldAutocompleteComboBox"] input`).prop('disabled') + ).toBeTruthy(); + }); + + test('it renders loading if "isLoading" is true', () => { + const wrapper = mount( + + ); + wrapper.find(`[data-test-subj="fieldAutocompleteComboBox"] button`).at(0).simulate('click'); + expect( + wrapper + .find(`EuiComboBoxOptionsList[data-test-subj="fieldAutocompleteComboBox-optionsList"]`) + .prop('isLoading') + ).toBeTruthy(); + }); + + test('it allows user to clear values if "isClearable" is true', () => { + const wrapper = mount( + + ); + + expect( + wrapper + .find(`[data-test-subj="comboBoxInput"]`) + .hasClass('euiComboBox__inputWrap-isClearable') + ).toBeTruthy(); + }); + + test('it correctly displays selected field', () => { + const wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="fieldAutocompleteComboBox"] EuiComboBoxPill`).at(0).text() + ).toEqual('machine.os.raw'); + }); + + test('it invokes "onChange" when option selected', () => { + const mockOnChange = jest.fn(); + const wrapper = mount( + + ); + + ((wrapper.find(EuiComboBox).props() as unknown) as { + onChange: (a: EuiComboBoxOptionOption[]) => void; + }).onChange([{ label: 'machine.os' }]); + + expect(mockOnChange).toHaveBeenCalledWith([ + { + aggregatable: true, + count: 0, + esTypes: ['text'], + name: 'machine.os', + readFromDocValues: false, + scripted: false, + searchable: true, + type: 'string', + }, + ]); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx new file mode 100644 index 0000000000000..b3a5e36f12e40 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx @@ -0,0 +1,146 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback, useMemo, useState } from 'react'; +import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; + +import { IFieldType, IIndexPattern } from '../../../../../../../src/plugins/data/common'; + +import { getGenericComboBoxProps } from './helpers'; +import { GetGenericComboBoxPropsReturn } from './types'; + +const AS_PLAIN_TEXT = { asPlainText: true }; + +interface OperatorProps { + fieldInputWidth?: number; + fieldTypeFilter?: string[]; + indexPattern: IIndexPattern | undefined; + isClearable: boolean; + isDisabled: boolean; + isLoading: boolean; + isRequired?: boolean; + onChange: (a: IFieldType[]) => void; + placeholder: string; + selectedField: IFieldType | undefined; +} + +export const FieldComponent: React.FC = ({ + fieldInputWidth, + fieldTypeFilter = [], + indexPattern, + isClearable = false, + isDisabled = false, + isLoading = false, + isRequired = false, + onChange, + placeholder, + selectedField, +}): JSX.Element => { + const [touched, setIsTouched] = useState(false); + + const { availableFields, selectedFields } = useMemo( + () => getComboBoxFields(indexPattern, selectedField, fieldTypeFilter), + [indexPattern, selectedField, fieldTypeFilter] + ); + + const { comboOptions, labels, selectedComboOptions } = useMemo( + () => getComboBoxProps({ availableFields, selectedFields }), + [availableFields, selectedFields] + ); + + const handleValuesChange = useCallback( + (newOptions: EuiComboBoxOptionOption[]): void => { + const newValues: IFieldType[] = newOptions.map( + ({ label }) => availableFields[labels.indexOf(label)] + ); + onChange(newValues); + }, + [availableFields, labels, onChange] + ); + + const handleTouch = useCallback((): void => { + setIsTouched(true); + }, [setIsTouched]); + + const fieldWidth = useMemo(() => { + return fieldInputWidth ? { width: `${fieldInputWidth}px` } : {}; + }, [fieldInputWidth]); + + return ( + + ); +}; + +FieldComponent.displayName = 'Field'; + +interface ComboBoxFields { + availableFields: IFieldType[]; + selectedFields: IFieldType[]; +} + +const getComboBoxFields = ( + indexPattern: IIndexPattern | undefined, + selectedField: IFieldType | undefined, + fieldTypeFilter: string[] +): ComboBoxFields => { + const existingFields = getExistingFields(indexPattern); + const selectedFields = getSelectedFields(selectedField); + const availableFields = getAvailableFields(existingFields, selectedFields, fieldTypeFilter); + + return { availableFields, selectedFields }; +}; + +const getComboBoxProps = (fields: ComboBoxFields): GetGenericComboBoxPropsReturn => { + const { availableFields, selectedFields } = fields; + + return getGenericComboBoxProps({ + getLabel: (field) => field.name, + options: availableFields, + selectedOptions: selectedFields, + }); +}; + +const getExistingFields = (indexPattern: IIndexPattern | undefined): IFieldType[] => { + return indexPattern != null ? indexPattern.fields : []; +}; + +const getSelectedFields = (selectedField: IFieldType | undefined): IFieldType[] => { + return selectedField ? [selectedField] : []; +}; + +const getAvailableFields = ( + existingFields: IFieldType[], + selectedFields: IFieldType[], + fieldTypeFilter: string[] +): IFieldType[] => { + const fieldsByName = new Map(); + + existingFields.forEach((f) => fieldsByName.set(f.name, f)); + selectedFields.forEach((f) => fieldsByName.set(f.name, f)); + + const uniqueFields = Array.from(fieldsByName.values()); + + if (fieldTypeFilter.length > 0) { + return uniqueFields.filter(({ type }) => fieldTypeFilter.includes(type)); + } + + return uniqueFields; +}; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_exists.test.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_exists.test.tsx new file mode 100644 index 0000000000000..b6300581f12dd --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_exists.test.tsx @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { mount } from 'enzyme'; + +import { AutocompleteFieldExistsComponent } from './field_value_exists'; + +describe('AutocompleteFieldExistsComponent', () => { + test('it renders field disabled', () => { + const wrapper = mount(); + + expect( + wrapper + .find(`[data-test-subj="valuesAutocompleteComboBox existsComboxBox"] input`) + .prop('disabled') + ).toBeTruthy(); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_exists.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_exists.tsx new file mode 100644 index 0000000000000..ff70204e53483 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_exists.tsx @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiComboBox, EuiComboBoxOptionOption, EuiFormRow } from '@elastic/eui'; + +const NO_OPTIONS_FOR_EXIST: EuiComboBoxOptionOption[] = []; + +interface AutocompleteFieldExistsProps { + placeholder: string; + rowLabel?: string; +} + +export const AutocompleteFieldExistsComponent: React.FC = ({ + placeholder, + rowLabel, +}): JSX.Element => ( + + + +); + +AutocompleteFieldExistsComponent.displayName = 'AutocompleteFieldExists'; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.test.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.test.tsx new file mode 100644 index 0000000000000..a5588b36aae03 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.test.tsx @@ -0,0 +1,224 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { mount } from 'enzyme'; +import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; +import { waitFor } from '@testing-library/react'; + +import { coreMock } from '../../../../../../../src/core/public/mocks'; +import { getField } from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { ListSchema } from '../../../../common'; +import { getFoundListSchemaMock } from '../../../../../lists/common/schemas/response/found_list_schema.mock'; +import { getListResponseMock } from '../../../../../lists/common/schemas/response/list_schema.mock'; +import { DATE_NOW, IMMUTABLE, VERSION } from '../../../../../lists/common/constants.mock'; + +import { AutocompleteFieldListsComponent } from './field_value_lists'; + +const mockKibanaHttpService = coreMock.createStart().http; + +const mockStart = jest.fn(); +const mockKeywordList: ListSchema = { + ...getListResponseMock(), + id: 'keyword_list', + name: 'keyword list', + type: 'keyword', +}; +const mockResult = { ...getFoundListSchemaMock() }; +mockResult.data = [...mockResult.data, mockKeywordList]; +jest.mock('../../..', () => { + const originalModule = jest.requireActual('../../..'); + + return { + ...originalModule, + // eslint-disable-next-line @typescript-eslint/explicit-function-return-type + useFindLists: () => ({ + error: undefined, + loading: false, + result: mockResult, + start: mockStart.mockReturnValue(mockResult), + }), + }; +}); + +describe('AutocompleteFieldListsComponent', () => { + test('it renders disabled if "isDisabled" is true', async () => { + const wrapper = mount( + + ); + + expect( + wrapper + .find(`[data-test-subj="valuesAutocompleteComboBox listsComboxBox"] input`) + .prop('disabled') + ).toBeTruthy(); + }); + + test('it renders loading if "isLoading" is true', async () => { + const wrapper = mount( + + ); + + wrapper + .find(`[data-test-subj="valuesAutocompleteComboBox listsComboxBox"] button`) + .at(0) + .simulate('click'); + expect( + wrapper + .find( + `EuiComboBoxOptionsList[data-test-subj="valuesAutocompleteComboBox listsComboxBox-optionsList"]` + ) + .prop('isLoading') + ).toBeTruthy(); + }); + + test('it allows user to clear values if "isClearable" is true', async () => { + const wrapper = mount( + + ); + expect( + wrapper + .find('EuiComboBox[data-test-subj="valuesAutocompleteComboBox listsComboxBox"]') + .prop('options') + ).toEqual([{ label: 'some name' }]); + }); + + test('it correctly displays lists that match the selected "keyword" field esType', () => { + const wrapper = mount( + + ); + + wrapper.find('[data-test-subj="comboBoxToggleListButton"] button').simulate('click'); + + expect( + wrapper + .find('EuiComboBox[data-test-subj="valuesAutocompleteComboBox listsComboxBox"]') + .prop('options') + ).toEqual([{ label: 'keyword list' }]); + }); + + test('it correctly displays lists that match the selected "ip" field esType', () => { + const wrapper = mount( + + ); + + wrapper.find('[data-test-subj="comboBoxToggleListButton"] button').simulate('click'); + + expect( + wrapper + .find('EuiComboBox[data-test-subj="valuesAutocompleteComboBox listsComboxBox"]') + .prop('options') + ).toEqual([{ label: 'some name' }]); + }); + + test('it correctly displays selected list', async () => { + const wrapper = mount( + + ); + + expect( + wrapper + .find(`[data-test-subj="valuesAutocompleteComboBox listsComboxBox"] EuiComboBoxPill`) + .at(0) + .text() + ).toEqual('some name'); + }); + + test('it invokes "onChange" when option selected', async () => { + const mockOnChange = jest.fn(); + const wrapper = mount( + + ); + + ((wrapper.find(EuiComboBox).props() as unknown) as { + onChange: (a: EuiComboBoxOptionOption[]) => void; + }).onChange([{ label: 'some name' }]); + + await waitFor(() => { + expect(mockOnChange).toHaveBeenCalledWith({ + _version: undefined, + created_at: DATE_NOW, + created_by: 'some user', + description: 'some description', + deserializer: undefined, + id: 'some-list-id', + immutable: IMMUTABLE, + meta: {}, + name: 'some name', + serializer: undefined, + tie_breaker_id: '6a76b69d-80df-4ab2-8c3e-85f466b06a0e', + type: 'ip', + updated_at: DATE_NOW, + updated_by: 'some user', + version: VERSION, + }); + }); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx new file mode 100644 index 0000000000000..3d910403d4843 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx @@ -0,0 +1,123 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import { EuiComboBox, EuiComboBoxOptionOption, EuiFormRow } from '@elastic/eui'; +import { HttpStart } from 'kibana/public'; + +import { ListSchema } from '../../../../common'; +import { IFieldType } from '../../../../../../../src/plugins/data/common'; +import { useFindLists } from '../../..'; + +import { filterFieldToList, getGenericComboBoxProps } from './helpers'; +import * as i18n from './translations'; + +const SINGLE_SELECTION = { asPlainText: true }; + +interface AutocompleteFieldListsProps { + httpService: HttpStart; + isClearable: boolean; + isDisabled: boolean; + isLoading: boolean; + onChange: (arg: ListSchema) => void; + placeholder: string; + rowLabel?: string; + selectedField: IFieldType | undefined; + selectedValue: string | undefined; +} + +export const AutocompleteFieldListsComponent: React.FC = ({ + httpService, + isClearable = false, + isDisabled = false, + isLoading = false, + onChange, + placeholder, + rowLabel, + selectedField, + selectedValue, +}): JSX.Element => { + const [error, setError] = useState(undefined); + const [lists, setLists] = useState([]); + const { loading, result, start } = useFindLists(); + const getLabel = useCallback(({ name }) => name, []); + + const optionsMemo = useMemo(() => filterFieldToList(lists, selectedField), [ + lists, + selectedField, + ]); + const selectedOptionsMemo = useMemo(() => { + if (selectedValue != null) { + const list = lists.filter(({ id }) => id === selectedValue); + return list ?? []; + } else { + return []; + } + }, [selectedValue, lists]); + const { comboOptions, labels, selectedComboOptions } = useMemo( + () => + getGenericComboBoxProps({ + getLabel, + options: optionsMemo, + selectedOptions: selectedOptionsMemo, + }), + [optionsMemo, selectedOptionsMemo, getLabel] + ); + + const handleValuesChange = useCallback( + (newOptions: EuiComboBoxOptionOption[]) => { + const [newValue] = newOptions.map(({ label }) => optionsMemo[labels.indexOf(label)]); + onChange(newValue ?? ''); + }, + [labels, optionsMemo, onChange] + ); + + const setIsTouchedValue = useCallback((): void => { + setError(selectedValue == null ? i18n.FIELD_REQUIRED_ERR : undefined); + }, [selectedValue]); + + useEffect(() => { + if (result != null) { + setLists(result.data); + } + }, [result]); + + useEffect(() => { + if (selectedField != null && httpService != null) { + start({ + http: httpService, + pageIndex: 1, + pageSize: 500, + }); + } + }, [selectedField, start, httpService]); + + const isLoadingState = useMemo((): boolean => isLoading || loading, [isLoading, loading]); + + return ( + + + + ); +}; + +AutocompleteFieldListsComponent.displayName = 'AutocompleteFieldList'; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.test.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.test.tsx new file mode 100644 index 0000000000000..c1ffb008e8563 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.test.tsx @@ -0,0 +1,443 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { ReactWrapper, mount } from 'enzyme'; +import { EuiComboBox, EuiComboBoxOptionOption, EuiSuperSelect } from '@elastic/eui'; +import { act } from '@testing-library/react'; + +import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks'; +import { + fields, + getField, +} from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; + +import { AutocompleteFieldMatchComponent } from './field_value_match'; +import { useFieldValueAutocomplete } from './hooks/use_field_value_autocomplete'; + +jest.mock('./hooks/use_field_value_autocomplete'); + +const { autocomplete: autocompleteStartMock } = dataPluginMock.createStartContract(); + +describe('AutocompleteFieldMatchComponent', () => { + let wrapper: ReactWrapper; + + const getValueSuggestionsMock = jest + .fn() + .mockResolvedValue([false, true, ['value 3', 'value 4'], jest.fn()]); + + beforeEach(() => { + (useFieldValueAutocomplete as jest.Mock).mockReturnValue([ + false, + true, + ['value 1', 'value 2'], + getValueSuggestionsMock, + ]); + }); + + afterEach(() => { + jest.clearAllMocks(); + wrapper.unmount(); + }); + + test('it renders row label if one passed in', () => { + wrapper = mount( + + ); + + expect( + wrapper.find('[data-test-subj="valuesAutocompleteMatchLabel"] label').at(0).text() + ).toEqual('Row Label'); + }); + + test('it renders disabled if "isDisabled" is true', () => { + wrapper = mount( + + ); + + expect( + wrapper.find('[data-test-subj="valuesAutocompleteMatch"] input').prop('disabled') + ).toBeTruthy(); + }); + + test('it renders loading if "isLoading" is true', () => { + wrapper = mount( + + ); + wrapper.find('[data-test-subj="valuesAutocompleteMatch"] button').at(0).simulate('click'); + expect( + wrapper + .find('EuiComboBoxOptionsList[data-test-subj="valuesAutocompleteMatch-optionsList"]') + .prop('isLoading') + ).toBeTruthy(); + }); + + test('it allows user to clear values if "isClearable" is true', () => { + wrapper = mount( + + ); + + expect( + wrapper + .find('[data-test-subj="comboBoxInput"]') + .hasClass('euiComboBox__inputWrap-isClearable') + ).toBeTruthy(); + }); + + test('it correctly displays selected value', () => { + wrapper = mount( + + ); + + expect( + wrapper.find('[data-test-subj="valuesAutocompleteMatch"] EuiComboBoxPill').at(0).text() + ).toEqual('126.45.211.34'); + }); + + test('it invokes "onChange" when new value created', async () => { + const mockOnChange = jest.fn(); + wrapper = mount( + + ); + + ((wrapper.find(EuiComboBox).props() as unknown) as { + onCreateOption: (a: string) => void; + }).onCreateOption('126.45.211.34'); + + expect(mockOnChange).toHaveBeenCalledWith('126.45.211.34'); + }); + + test('it invokes "onChange" when new value selected', async () => { + const mockOnChange = jest.fn(); + wrapper = mount( + + ); + + ((wrapper.find(EuiComboBox).props() as unknown) as { + onChange: (a: EuiComboBoxOptionOption[]) => void; + }).onChange([{ label: 'value 1' }]); + + expect(mockOnChange).toHaveBeenCalledWith('value 1'); + }); + + test('it refreshes autocomplete with search query when new value searched', () => { + wrapper = mount( + + ); + act(() => { + ((wrapper.find(EuiComboBox).props() as unknown) as { + onSearchChange: (a: string) => void; + }).onSearchChange('value 1'); + }); + + expect(useFieldValueAutocomplete).toHaveBeenCalledWith({ + autocompleteService: autocompleteStartMock, + fieldValue: '', + indexPattern: { + fields, + id: '1234', + title: 'logstash-*', + }, + operatorType: 'match', + query: 'value 1', + selectedField: getField('machine.os.raw'), + }); + }); + + describe('boolean type', () => { + const valueSuggestionsMock = jest.fn().mockResolvedValue([false, false, [], jest.fn()]); + + beforeEach(() => { + (useFieldValueAutocomplete as jest.Mock).mockReturnValue([ + false, + false, + [], + valueSuggestionsMock, + ]); + }); + + test('it displays only two options - "true" or "false"', () => { + wrapper = mount( + + ); + + expect( + wrapper.find('[data-test-subj="valuesAutocompleteMatchBoolean"]').exists() + ).toBeTruthy(); + expect( + wrapper.find('[data-test-subj="valuesAutocompleteMatchBoolean"]').at(0).prop('options') + ).toEqual([ + { + inputDisplay: 'true', + value: 'true', + }, + { + inputDisplay: 'false', + value: 'false', + }, + ]); + }); + + test('it invokes "onChange" with "true" when selected', () => { + const mockOnChange = jest.fn(); + wrapper = mount( + + ); + + ((wrapper.find(EuiSuperSelect).props() as unknown) as { + onChange: (a: string) => void; + }).onChange('true'); + + expect(mockOnChange).toHaveBeenCalledWith('true'); + }); + + test('it invokes "onChange" with "false" when selected', () => { + const mockOnChange = jest.fn(); + wrapper = mount( + + ); + + ((wrapper.find(EuiSuperSelect).props() as unknown) as { + onChange: (a: string) => void; + }).onChange('false'); + + expect(mockOnChange).toHaveBeenCalledWith('false'); + }); + }); + + describe('number type', () => { + const valueSuggestionsMock = jest.fn().mockResolvedValue([false, false, [], jest.fn()]); + + beforeEach(() => { + (useFieldValueAutocomplete as jest.Mock).mockReturnValue([ + false, + false, + [], + valueSuggestionsMock, + ]); + }); + + test('it number input when field type is number', () => { + wrapper = mount( + + ); + + expect( + wrapper.find('[data-test-subj="valueAutocompleteFieldMatchNumber"]').exists() + ).toBeTruthy(); + }); + + test('it invokes "onChange" with numeric value when inputted', () => { + const mockOnChange = jest.fn(); + wrapper = mount( + + ); + + wrapper + .find('[data-test-subj="valueAutocompleteFieldMatchNumber"] input') + .at(0) + .simulate('change', { target: { value: '8' } }); + + expect(mockOnChange).toHaveBeenCalledWith('8'); + }); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx new file mode 100644 index 0000000000000..a0994871808d1 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx @@ -0,0 +1,300 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import { + EuiComboBox, + EuiComboBoxOptionOption, + EuiFieldNumber, + EuiFormRow, + EuiSuperSelect, +} from '@elastic/eui'; +import { uniq } from 'lodash'; + +import { OperatorTypeEnum } from '../../../../common'; +import { IFieldType, IIndexPattern } from '../../../../../../../src/plugins/data/common'; +import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; + +import { useFieldValueAutocomplete } from './hooks/use_field_value_autocomplete'; +import { getGenericComboBoxProps, paramIsValid } from './helpers'; +import { GetGenericComboBoxPropsReturn } from './types'; +import * as i18n from './translations'; + +const BOOLEAN_OPTIONS = [ + { inputDisplay: 'true', value: 'true' }, + { inputDisplay: 'false', value: 'false' }, +]; + +const SINGLE_SELECTION = { asPlainText: true }; + +interface AutocompleteFieldMatchProps { + placeholder: string; + selectedField: IFieldType | undefined; + selectedValue: string | undefined; + indexPattern: IIndexPattern | undefined; + isLoading: boolean; + isDisabled: boolean; + isClearable: boolean; + isRequired?: boolean; + fieldInputWidth?: number; + rowLabel?: string; + autocompleteService: AutocompleteStart; + onChange: (arg: string) => void; + onError?: (arg: boolean) => void; +} + +export const AutocompleteFieldMatchComponent: React.FC = ({ + placeholder, + rowLabel, + selectedField, + selectedValue, + indexPattern, + isLoading, + isDisabled = false, + isClearable = false, + isRequired = false, + fieldInputWidth, + onChange, + onError, + autocompleteService, +}): JSX.Element => { + const [searchQuery, setSearchQuery] = useState(''); + const [touched, setIsTouched] = useState(false); + const [error, setError] = useState(undefined); + const [isLoadingSuggestions, isSuggestingValues, suggestions] = useFieldValueAutocomplete({ + autocompleteService, + fieldValue: selectedValue, + indexPattern, + operatorType: OperatorTypeEnum.MATCH, + query: searchQuery, + selectedField, + }); + const getLabel = useCallback((option: string): string => option, []); + const optionsMemo = useMemo((): string[] => { + const valueAsStr = String(selectedValue); + return selectedValue != null && selectedValue.trim() !== '' + ? uniq([valueAsStr, ...suggestions]) + : suggestions; + }, [suggestions, selectedValue]); + const selectedOptionsMemo = useMemo((): string[] => { + const valueAsStr = String(selectedValue); + return selectedValue ? [valueAsStr] : []; + }, [selectedValue]); + + const handleError = useCallback( + (err: string | undefined): void => { + setError((existingErr): string | undefined => { + const oldErr = existingErr != null; + const newErr = err != null; + if (oldErr !== newErr && onError != null) { + onError(newErr); + } + + return err; + }); + }, + [setError, onError] + ); + + const { comboOptions, labels, selectedComboOptions } = useMemo( + (): GetGenericComboBoxPropsReturn => + getGenericComboBoxProps({ + getLabel, + options: optionsMemo, + selectedOptions: selectedOptionsMemo, + }), + [optionsMemo, selectedOptionsMemo, getLabel] + ); + + const handleValuesChange = useCallback( + (newOptions: EuiComboBoxOptionOption[]): void => { + const [newValue] = newOptions.map(({ label }) => optionsMemo[labels.indexOf(label)]); + handleError(undefined); + onChange(newValue ?? ''); + }, + [handleError, labels, onChange, optionsMemo] + ); + + const handleSearchChange = useCallback( + (searchVal: string): void => { + if (searchVal !== '' && selectedField != null) { + const err = paramIsValid(searchVal, selectedField, isRequired, touched); + handleError(err); + + setSearchQuery(searchVal); + } + }, + [handleError, isRequired, selectedField, touched] + ); + + const handleCreateOption = useCallback( + (option: string): boolean | undefined => { + const err = paramIsValid(option, selectedField, isRequired, touched); + handleError(err); + + if (err != null) { + // Explicitly reject the user's input + return false; + } else { + onChange(option); + return undefined; + } + }, + [isRequired, onChange, selectedField, touched, handleError] + ); + + const handleNonComboBoxInputChange = useCallback( + (event: React.ChangeEvent): void => { + const newValue = event.target.value; + onChange(newValue); + }, + [onChange] + ); + + const handleBooleanInputChange = useCallback( + (newOption: string): void => { + onChange(newOption); + }, + [onChange] + ); + + const setIsTouchedValue = useCallback((): void => { + setIsTouched(true); + + const err = paramIsValid(selectedValue, selectedField, isRequired, true); + handleError(err); + }, [setIsTouched, handleError, selectedValue, selectedField, isRequired]); + + const inputPlaceholder = useMemo((): string => { + if (isLoading || isLoadingSuggestions) { + return i18n.LOADING; + } else if (selectedField == null) { + return i18n.SELECT_FIELD_FIRST; + } else { + return placeholder; + } + }, [isLoading, selectedField, isLoadingSuggestions, placeholder]); + + const isLoadingState = useMemo((): boolean => isLoading || isLoadingSuggestions, [ + isLoading, + isLoadingSuggestions, + ]); + + const fieldInputWidths = useMemo( + () => (fieldInputWidth ? { width: `${fieldInputWidth}px` } : {}), + [fieldInputWidth] + ); + + useEffect((): void => { + setError(undefined); + if (onError != null) { + onError(false); + } + }, [selectedField, onError]); + + const defaultInput = useMemo((): JSX.Element => { + return ( + + + + ); + }, [ + comboOptions, + error, + fieldInputWidths, + handleCreateOption, + handleSearchChange, + handleValuesChange, + inputPlaceholder, + isClearable, + isDisabled, + isLoadingState, + rowLabel, + selectedComboOptions, + selectedField, + setIsTouchedValue, + ]); + + if (!isSuggestingValues && selectedField != null) { + switch (selectedField.type) { + case 'number': + return ( + + 0 + ? parseFloat(selectedValue) + : selectedValue ?? '' + } + onChange={handleNonComboBoxInputChange} + data-test-subj="valueAutocompleteFieldMatchNumber" + style={fieldInputWidths} + fullWidth + /> + + ); + case 'boolean': + return ( + + + + ); + default: + return defaultInput; + } + } else { + return defaultInput; + } +}; + +AutocompleteFieldMatchComponent.displayName = 'AutocompleteFieldMatch'; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.test.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.test.tsx new file mode 100644 index 0000000000000..8aa1f18b695a0 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.test.tsx @@ -0,0 +1,269 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { ReactWrapper, mount } from 'enzyme'; +import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; +import { act } from '@testing-library/react'; + +import { + fields, + getField, +} from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks'; + +import { AutocompleteFieldMatchAnyComponent } from './field_value_match_any'; +import { useFieldValueAutocomplete } from './hooks/use_field_value_autocomplete'; + +const { autocomplete: autocompleteStartMock } = dataPluginMock.createStartContract(); + +jest.mock('./hooks/use_field_value_autocomplete'); + +describe('AutocompleteFieldMatchAnyComponent', () => { + let wrapper: ReactWrapper; + const getValueSuggestionsMock = jest + .fn() + .mockResolvedValue([false, true, ['value 3', 'value 4'], jest.fn()]); + + beforeEach(() => { + (useFieldValueAutocomplete as jest.Mock).mockReturnValue([ + false, + true, + ['value 1', 'value 2'], + getValueSuggestionsMock, + ]); + }); + + afterEach(() => { + jest.clearAllMocks(); + wrapper.unmount(); + }); + + test('it renders disabled if "isDisabled" is true', () => { + wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="valuesAutocompleteMatchAny"] input`).prop('disabled') + ).toBeTruthy(); + }); + + test('it renders loading if "isLoading" is true', () => { + wrapper = mount( + + ); + wrapper.find(`[data-test-subj="valuesAutocompleteMatchAny"] button`).at(0).simulate('click'); + expect( + wrapper + .find(`EuiComboBoxOptionsList[data-test-subj="valuesAutocompleteMatchAny-optionsList"]`) + .prop('isLoading') + ).toBeTruthy(); + }); + + test('it allows user to clear values if "isClearable" is true', () => { + wrapper = mount( + + ); + + expect( + wrapper + .find(`[data-test-subj="comboBoxInput"]`) + .hasClass('euiComboBox__inputWrap-isClearable') + ).toBeTruthy(); + }); + + test('it correctly displays selected value', () => { + wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="valuesAutocompleteMatchAny"] EuiComboBoxPill`).at(0).text() + ).toEqual('126.45.211.34'); + }); + + test('it invokes "onChange" when new value created', async () => { + const mockOnChange = jest.fn(); + wrapper = mount( + + ); + + ((wrapper.find(EuiComboBox).props() as unknown) as { + onCreateOption: (a: string) => void; + }).onCreateOption('126.45.211.34'); + + expect(mockOnChange).toHaveBeenCalledWith(['126.45.211.34']); + }); + + test('it invokes "onChange" when new value selected', async () => { + const mockOnChange = jest.fn(); + wrapper = mount( + + ); + + ((wrapper.find(EuiComboBox).props() as unknown) as { + onChange: (a: EuiComboBoxOptionOption[]) => void; + }).onChange([{ label: 'value 1' }]); + + expect(mockOnChange).toHaveBeenCalledWith(['value 1']); + }); + + test('it refreshes autocomplete with search query when new value searched', () => { + wrapper = mount( + + ); + act(() => { + ((wrapper.find(EuiComboBox).props() as unknown) as { + onSearchChange: (a: string) => void; + }).onSearchChange('value 1'); + }); + expect(useFieldValueAutocomplete).toHaveBeenCalledWith({ + autocompleteService: autocompleteStartMock, + fieldValue: [], + indexPattern: { + fields, + id: '1234', + title: 'logstash-*', + }, + operatorType: 'match_any', + query: 'value 1', + selectedField: getField('machine.os.raw'), + }); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx new file mode 100644 index 0000000000000..08958f6d99aab --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx @@ -0,0 +1,226 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback, useMemo, useState } from 'react'; +import { EuiComboBox, EuiComboBoxOptionOption, EuiFormRow } from '@elastic/eui'; +import { uniq } from 'lodash'; + +import { OperatorTypeEnum } from '../../../../common'; +import { IFieldType, IIndexPattern } from '../../../../../../../src/plugins/data/common'; +import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; + +import { useFieldValueAutocomplete } from './hooks/use_field_value_autocomplete'; +import { getGenericComboBoxProps, paramIsValid } from './helpers'; +import { GetGenericComboBoxPropsReturn } from './types'; +import * as i18n from './translations'; + +interface AutocompleteFieldMatchAnyProps { + placeholder: string; + selectedField: IFieldType | undefined; + selectedValue: string[]; + indexPattern: IIndexPattern | undefined; + isLoading: boolean; + isDisabled: boolean; + isClearable: boolean; + isRequired?: boolean; + rowLabel?: string; + autocompleteService: AutocompleteStart; + onChange: (arg: string[]) => void; + onError?: (arg: boolean) => void; +} + +export const AutocompleteFieldMatchAnyComponent: React.FC = ({ + placeholder, + rowLabel, + selectedField, + selectedValue, + indexPattern, + isLoading, + isDisabled = false, + isClearable = false, + isRequired = false, + onChange, + onError, + autocompleteService, +}): JSX.Element => { + const [searchQuery, setSearchQuery] = useState(''); + const [touched, setIsTouched] = useState(false); + const [error, setError] = useState(undefined); + const [isLoadingSuggestions, isSuggestingValues, suggestions] = useFieldValueAutocomplete({ + autocompleteService, + fieldValue: selectedValue, + indexPattern, + operatorType: OperatorTypeEnum.MATCH_ANY, + query: searchQuery, + selectedField, + }); + const getLabel = useCallback((option: string): string => option, []); + const optionsMemo = useMemo( + (): string[] => (selectedValue ? uniq([...selectedValue, ...suggestions]) : suggestions), + [suggestions, selectedValue] + ); + const { comboOptions, labels, selectedComboOptions } = useMemo( + (): GetGenericComboBoxPropsReturn => + getGenericComboBoxProps({ + getLabel, + options: optionsMemo, + selectedOptions: selectedValue, + }), + [optionsMemo, selectedValue, getLabel] + ); + + const handleError = useCallback( + (err: string | undefined): void => { + setError((existingErr): string | undefined => { + const oldErr = existingErr != null; + const newErr = err != null; + if (oldErr !== newErr && onError != null) { + onError(newErr); + } + + return err; + }); + }, + [setError, onError] + ); + + const handleValuesChange = useCallback( + (newOptions: EuiComboBoxOptionOption[]): void => { + const newValues: string[] = newOptions.map(({ label }) => optionsMemo[labels.indexOf(label)]); + handleError(undefined); + onChange(newValues); + }, + [handleError, labels, onChange, optionsMemo] + ); + + const handleSearchChange = useCallback( + (searchVal: string) => { + if (searchVal === '') { + handleError(undefined); + } + + if (searchVal !== '' && selectedField != null) { + const err = paramIsValid(searchVal, selectedField, isRequired, touched); + handleError(err); + + setSearchQuery(searchVal); + } + }, + [handleError, isRequired, selectedField, touched] + ); + + const handleCreateOption = useCallback( + (option: string): boolean => { + const err = paramIsValid(option, selectedField, isRequired, touched); + handleError(err); + + if (err != null) { + // Explicitly reject the user's input + return false; + } else { + onChange([...(selectedValue || []), option]); + return true; + } + }, + [handleError, isRequired, onChange, selectedField, selectedValue, touched] + ); + + const setIsTouchedValue = useCallback((): void => { + handleError(selectedComboOptions.length === 0 ? i18n.FIELD_REQUIRED_ERR : undefined); + setIsTouched(true); + }, [setIsTouched, handleError, selectedComboOptions]); + + const inputPlaceholder = useMemo( + (): string => (isLoading || isLoadingSuggestions ? i18n.LOADING : placeholder), + [isLoading, isLoadingSuggestions, placeholder] + ); + + const isLoadingState = useMemo((): boolean => isLoading || isLoadingSuggestions, [ + isLoading, + isLoadingSuggestions, + ]); + + const defaultInput = useMemo((): JSX.Element => { + return ( + + + + ); + }, [ + comboOptions, + error, + handleCreateOption, + handleSearchChange, + handleValuesChange, + inputPlaceholder, + isClearable, + isDisabled, + isLoadingState, + rowLabel, + selectedComboOptions, + selectedField, + setIsTouchedValue, + ]); + + if (!isSuggestingValues && selectedField != null) { + switch (selectedField.type) { + case 'number': + return ( + + + + ); + default: + return defaultInput; + } + } + + return defaultInput; +}; + +AutocompleteFieldMatchAnyComponent.displayName = 'AutocompleteFieldMatchAny'; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts b/x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts new file mode 100644 index 0000000000000..2fed462974a26 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts @@ -0,0 +1,388 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import moment from 'moment'; + +import { getField } from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { IFieldType } from '../../../../../../../src/plugins/data/common'; +import { getListResponseMock } from '../../../../../lists/common/schemas/response/list_schema.mock'; +import { ListSchema } from '../../../../common'; + +import * as i18n from './translations'; +import { + EXCEPTION_OPERATORS, + doesNotExistOperator, + existsOperator, + isNotOperator, + isOperator, +} from './operators'; +import { + checkEmptyValue, + filterFieldToList, + getGenericComboBoxProps, + getOperators, + paramIsValid, + typeMatch, +} from './helpers'; + +describe('helpers', () => { + // @ts-ignore + moment.suppressDeprecationWarnings = true; + describe('#getOperators', () => { + test('it returns "isOperator" if passed in field is "undefined"', () => { + const operator = getOperators(undefined); + + expect(operator).toEqual([isOperator]); + }); + + test('it returns expected operators when field type is "boolean"', () => { + const operator = getOperators(getField('ssl')); + + expect(operator).toEqual([isOperator, isNotOperator, existsOperator, doesNotExistOperator]); + }); + + test('it returns "isOperator" when field type is "nested"', () => { + const operator = getOperators({ + aggregatable: false, + count: 0, + esTypes: ['text'], + name: 'nestedField', + readFromDocValues: false, + scripted: false, + searchable: true, + subType: { nested: { path: 'nestedField' } }, + type: 'nested', + }); + + expect(operator).toEqual([isOperator]); + }); + + test('it returns all operator types when field type is not null, boolean, or nested', () => { + const operator = getOperators(getField('machine.os.raw')); + + expect(operator).toEqual(EXCEPTION_OPERATORS); + }); + }); + + describe('#checkEmptyValue', () => { + test('returns no errors if no field has been selected', () => { + const isValid = checkEmptyValue('', undefined, true, false); + + expect(isValid).toBeUndefined(); + }); + + test('returns error string if user has touched a required input and left empty', () => { + const isValid = checkEmptyValue(undefined, getField('@timestamp'), true, true); + + expect(isValid).toEqual(i18n.FIELD_REQUIRED_ERR); + }); + + test('returns no errors if required input is empty but user has not yet touched it', () => { + const isValid = checkEmptyValue(undefined, getField('@timestamp'), true, false); + + expect(isValid).toBeUndefined(); + }); + + test('returns no errors if user has touched an input that is not required and left empty', () => { + const isValid = checkEmptyValue(undefined, getField('@timestamp'), false, true); + + expect(isValid).toBeUndefined(); + }); + + test('returns no errors if user has touched an input that is not required and left empty string', () => { + const isValid = checkEmptyValue('', getField('@timestamp'), false, true); + + expect(isValid).toBeUndefined(); + }); + + test('returns null if input value is not empty string or undefined', () => { + const isValid = checkEmptyValue('hellooo', getField('@timestamp'), false, true); + + expect(isValid).toBeNull(); + }); + }); + + describe('#paramIsValid', () => { + test('returns no errors if no field has been selected', () => { + const isValid = paramIsValid('', undefined, true, false); + + expect(isValid).toBeUndefined(); + }); + + test('returns error string if user has touched a required input and left empty', () => { + const isValid = paramIsValid(undefined, getField('@timestamp'), true, true); + + expect(isValid).toEqual(i18n.FIELD_REQUIRED_ERR); + }); + + test('returns no errors if required input is empty but user has not yet touched it', () => { + const isValid = paramIsValid(undefined, getField('@timestamp'), true, false); + + expect(isValid).toBeUndefined(); + }); + + test('returns no errors if user has touched an input that is not required and left empty', () => { + const isValid = paramIsValid(undefined, getField('@timestamp'), false, true); + + expect(isValid).toBeUndefined(); + }); + + test('returns no errors if user has touched an input that is not required and left empty string', () => { + const isValid = paramIsValid('', getField('@timestamp'), false, true); + + expect(isValid).toBeUndefined(); + }); + + test('returns no errors if field is of type date and value is valid', () => { + const isValid = paramIsValid( + '1994-11-05T08:15:30-05:00', + getField('@timestamp'), + false, + true + ); + + expect(isValid).toBeUndefined(); + }); + + test('returns errors if filed is of type date and value is not valid', () => { + const isValid = paramIsValid('1593478826', getField('@timestamp'), false, true); + + expect(isValid).toEqual(i18n.DATE_ERR); + }); + + test('returns no errors if field is of type number and value is an integer', () => { + const isValid = paramIsValid('4', getField('bytes'), true, true); + + expect(isValid).toBeUndefined(); + }); + + test('returns no errors if field is of type number and value is a float', () => { + const isValid = paramIsValid('4.3', getField('bytes'), true, true); + + expect(isValid).toBeUndefined(); + }); + + test('returns no errors if field is of type number and value is a long', () => { + const isValid = paramIsValid('-9223372036854775808', getField('bytes'), true, true); + + expect(isValid).toBeUndefined(); + }); + + test('returns errors if field is of type number and value is "hello"', () => { + const isValid = paramIsValid('hello', getField('bytes'), true, true); + + expect(isValid).toEqual(i18n.NUMBER_ERR); + }); + + test('returns errors if field is of type number and value is "123abc"', () => { + const isValid = paramIsValid('123abc', getField('bytes'), true, true); + + expect(isValid).toEqual(i18n.NUMBER_ERR); + }); + }); + + describe('#getGenericComboBoxProps', () => { + test('it returns empty arrays if "options" is empty array', () => { + const result = getGenericComboBoxProps({ + getLabel: (t: string) => t, + options: [], + selectedOptions: ['option1'], + }); + + expect(result).toEqual({ comboOptions: [], labels: [], selectedComboOptions: [] }); + }); + + test('it returns formatted props if "options" array is not empty', () => { + const result = getGenericComboBoxProps({ + getLabel: (t: string) => t, + options: ['option1', 'option2', 'option3'], + selectedOptions: [], + }); + + expect(result).toEqual({ + comboOptions: [ + { + label: 'option1', + }, + { + label: 'option2', + }, + { + label: 'option3', + }, + ], + labels: ['option1', 'option2', 'option3'], + selectedComboOptions: [], + }); + }); + + test('it does not return "selectedOptions" items that do not appear in "options"', () => { + const result = getGenericComboBoxProps({ + getLabel: (t: string) => t, + options: ['option1', 'option2', 'option3'], + selectedOptions: ['option4'], + }); + + expect(result).toEqual({ + comboOptions: [ + { + label: 'option1', + }, + { + label: 'option2', + }, + { + label: 'option3', + }, + ], + labels: ['option1', 'option2', 'option3'], + selectedComboOptions: [], + }); + }); + + test('it return "selectedOptions" items that do appear in "options"', () => { + const result = getGenericComboBoxProps({ + getLabel: (t: string) => t, + options: ['option1', 'option2', 'option3'], + selectedOptions: ['option2'], + }); + + expect(result).toEqual({ + comboOptions: [ + { + label: 'option1', + }, + { + label: 'option2', + }, + { + label: 'option3', + }, + ], + labels: ['option1', 'option2', 'option3'], + selectedComboOptions: [ + { + label: 'option2', + }, + ], + }); + }); + }); + + describe('#typeMatch', () => { + test('ip -> ip is true', () => { + expect(typeMatch('ip', 'ip')).toEqual(true); + }); + + test('keyword -> keyword is true', () => { + expect(typeMatch('keyword', 'keyword')).toEqual(true); + }); + + test('text -> text is true', () => { + expect(typeMatch('text', 'text')).toEqual(true); + }); + + test('ip_range -> ip is true', () => { + expect(typeMatch('ip_range', 'ip')).toEqual(true); + }); + + test('date_range -> date is true', () => { + expect(typeMatch('date_range', 'date')).toEqual(true); + }); + + test('double_range -> double is true', () => { + expect(typeMatch('double_range', 'double')).toEqual(true); + }); + + test('float_range -> float is true', () => { + expect(typeMatch('float_range', 'float')).toEqual(true); + }); + + test('integer_range -> integer is true', () => { + expect(typeMatch('integer_range', 'integer')).toEqual(true); + }); + + test('long_range -> long is true', () => { + expect(typeMatch('long_range', 'long')).toEqual(true); + }); + + test('ip -> date is false', () => { + expect(typeMatch('ip', 'date')).toEqual(false); + }); + + test('long -> float is false', () => { + expect(typeMatch('long', 'float')).toEqual(false); + }); + + test('integer -> long is false', () => { + expect(typeMatch('integer', 'long')).toEqual(false); + }); + }); + + describe('#filterFieldToList', () => { + test('it returns empty array if given a undefined for field', () => { + const filter = filterFieldToList([], undefined); + expect(filter).toEqual([]); + }); + + test('it returns empty array if filed does not contain esTypes', () => { + const field: IFieldType = { name: 'some-name', type: 'some-type' }; + const filter = filterFieldToList([], field); + expect(filter).toEqual([]); + }); + + test('it returns single filtered list of ip_range -> ip', () => { + const field: IFieldType = { esTypes: ['ip'], name: 'some-name', type: 'ip' }; + const listItem: ListSchema = { ...getListResponseMock(), type: 'ip_range' }; + const filter = filterFieldToList([listItem], field); + const expected: ListSchema[] = [listItem]; + expect(filter).toEqual(expected); + }); + + test('it returns single filtered list of ip -> ip', () => { + const field: IFieldType = { esTypes: ['ip'], name: 'some-name', type: 'ip' }; + const listItem: ListSchema = { ...getListResponseMock(), type: 'ip' }; + const filter = filterFieldToList([listItem], field); + const expected: ListSchema[] = [listItem]; + expect(filter).toEqual(expected); + }); + + test('it returns single filtered list of keyword -> keyword', () => { + const field: IFieldType = { esTypes: ['keyword'], name: 'some-name', type: 'keyword' }; + const listItem: ListSchema = { ...getListResponseMock(), type: 'keyword' }; + const filter = filterFieldToList([listItem], field); + const expected: ListSchema[] = [listItem]; + expect(filter).toEqual(expected); + }); + + test('it returns single filtered list of text -> text', () => { + const field: IFieldType = { esTypes: ['text'], name: 'some-name', type: 'text' }; + const listItem: ListSchema = { ...getListResponseMock(), type: 'text' }; + const filter = filterFieldToList([listItem], field); + const expected: ListSchema[] = [listItem]; + expect(filter).toEqual(expected); + }); + + test('it returns 2 filtered lists of ip_range -> ip', () => { + const field: IFieldType = { esTypes: ['ip'], name: 'some-name', type: 'ip' }; + const listItem1: ListSchema = { ...getListResponseMock(), type: 'ip_range' }; + const listItem2: ListSchema = { ...getListResponseMock(), type: 'ip_range' }; + const filter = filterFieldToList([listItem1, listItem2], field); + const expected: ListSchema[] = [listItem1, listItem2]; + expect(filter).toEqual(expected); + }); + + test('it returns 1 filtered lists of ip_range -> ip if the 2nd is not compatible type', () => { + const field: IFieldType = { esTypes: ['ip'], name: 'some-name', type: 'ip' }; + const listItem1: ListSchema = { ...getListResponseMock(), type: 'ip_range' }; + const listItem2: ListSchema = { ...getListResponseMock(), type: 'text' }; + const filter = filterFieldToList([listItem1, listItem2], field); + const expected: ListSchema[] = [listItem1]; + expect(filter).toEqual(expected); + }); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts b/x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts new file mode 100644 index 0000000000000..4f25bec3b38dc --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts @@ -0,0 +1,175 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import dateMath from '@elastic/datemath'; +import { EuiComboBoxOptionOption } from '@elastic/eui'; + +import { ListSchema, Type } from '../../../../common'; +import { IFieldType } from '../../../../../../../src/plugins/data/common'; + +import { + EXCEPTION_OPERATORS, + doesNotExistOperator, + existsOperator, + isNotOperator, + isOperator, +} from './operators'; +import { GetGenericComboBoxPropsReturn, OperatorOption } from './types'; +import * as i18n from './translations'; + +/** + * Returns the appropriate operators given a field type + * + * @param field IFieldType selected field + * + */ +export const getOperators = (field: IFieldType | undefined): OperatorOption[] => { + if (field == null) { + return [isOperator]; + } else if (field.type === 'boolean') { + return [isOperator, isNotOperator, existsOperator, doesNotExistOperator]; + } else if (field.type === 'nested') { + return [isOperator]; + } else { + return EXCEPTION_OPERATORS; + } +}; + +/** + * Determines if empty value is ok + * + * @param param the value being checked + * @param field the selected field + * @param isRequired whether or not an empty value is allowed + * @param touched has field been touched by user + * @returns undefined if valid, string with error message if invalid, + * null if no checks matched + */ +export const checkEmptyValue = ( + param: string | undefined, + field: IFieldType | undefined, + isRequired: boolean, + touched: boolean +): string | undefined | null => { + if (isRequired && touched && (param == null || param.trim() === '')) { + return i18n.FIELD_REQUIRED_ERR; + } + + if ( + field == null || + (isRequired && !touched) || + (!isRequired && (param == null || param === '')) + ) { + return undefined; + } + + return null; +}; + +/** + * Very basic validation for values + * + * @param param the value being checked + * @param field the selected field + * @param isRequired whether or not an empty value is allowed + * @param touched has field been touched by user + * @returns undefined if valid, string with error message if invalid + */ +export const paramIsValid = ( + param: string | undefined, + field: IFieldType | undefined, + isRequired: boolean, + touched: boolean +): string | undefined => { + if (field == null) { + return undefined; + } + + const emptyValueError = checkEmptyValue(param, field, isRequired, touched); + if (emptyValueError !== null) { + return emptyValueError; + } + + switch (field.type) { + case 'date': + const moment = dateMath.parse(param ?? ''); + const isDate = Boolean(moment && moment.isValid()); + return isDate ? undefined : i18n.DATE_ERR; + case 'number': + const isNum = param != null && param.trim() !== '' && !isNaN(+param); + return isNum ? undefined : i18n.NUMBER_ERR; + default: + return undefined; + } +}; + +/** + * Determines the options, selected values and option labels for EUI combo box + * + * @param options options user can select from + * @param selectedOptions user selection if any + * @param getLabel helper function to know which property to use for labels + */ +export const getGenericComboBoxProps = ({ + getLabel, + options, + selectedOptions, +}: { + getLabel: (value: T) => string; + options: T[]; + selectedOptions: T[]; +}): GetGenericComboBoxPropsReturn => { + const newLabels = options.map(getLabel); + const newComboOptions: EuiComboBoxOptionOption[] = newLabels.map((label) => ({ label })); + const newSelectedComboOptions = selectedOptions + .map(getLabel) + .filter((option) => { + return newLabels.indexOf(option) !== -1; + }) + .map((option) => { + return newComboOptions[newLabels.indexOf(option)]; + }); + + return { + comboOptions: newComboOptions, + labels: newLabels, + selectedComboOptions: newSelectedComboOptions, + }; +}; + +/** + * Given an array of lists and optionally a field this will return all + * the lists that match against the field based on the types from the field + * @param lists The lists to match against the field + * @param field The field to check against the list to see if they are compatible + */ +export const filterFieldToList = (lists: ListSchema[], field?: IFieldType): ListSchema[] => { + if (field != null) { + const { esTypes = [] } = field; + return lists.filter(({ type }) => esTypes.some((esType) => typeMatch(type, esType))); + } else { + return []; + } +}; + +/** + * Given an input list type and a string based ES type this will match + * if they're exact or if they are compatible with a range + * @param type The type to match against the esType + * @param esType The ES type to match with + */ +export const typeMatch = (type: Type, esType: string): boolean => { + return ( + type === esType || + (type === 'ip_range' && esType === 'ip') || + (type === 'date_range' && esType === 'date') || + (type === 'double_range' && esType === 'double') || + (type === 'float_range' && esType === 'float') || + (type === 'integer_range' && esType === 'integer') || + (type === 'long_range' && esType === 'long') + ); +}; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.test.ts b/x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.test.ts new file mode 100644 index 0000000000000..4e3fb2179d786 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.test.ts @@ -0,0 +1,334 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { act, renderHook } from '@testing-library/react-hooks'; + +import { stubIndexPatternWithFields } from '../../../../../../../../src/plugins/data/common/index_patterns/index_pattern.stub'; +import { getField } from '../../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { OperatorTypeEnum } from '../../../../../common'; +import { dataPluginMock } from '../../../../../../../../src/plugins/data/public/mocks'; + +import { + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn, + useFieldValueAutocomplete, +} from './use_field_value_autocomplete'; + +const { autocomplete: autocompleteStartMock } = dataPluginMock.createStartContract(); + +jest.mock('../../../../../../../../src/plugins/kibana_react/public'); + +describe('useFieldValueAutocomplete', () => { + const onErrorMock = jest.fn(); + const getValueSuggestionsMock = jest.fn().mockResolvedValue(['value 1', 'value 2']); + + afterEach(() => { + onErrorMock.mockClear(); + getValueSuggestionsMock.mockClear(); + }); + + test('initializes hook', async () => { + await act(async () => { + const { result, waitForNextUpdate } = renderHook< + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn + >(() => + useFieldValueAutocomplete({ + autocompleteService: { + ...autocompleteStartMock, + getValueSuggestions: getValueSuggestionsMock, + }, + fieldValue: '', + indexPattern: undefined, + operatorType: OperatorTypeEnum.MATCH, + query: '', + selectedField: undefined, + }) + ); + await waitForNextUpdate(); + + expect(result.current).toEqual([false, true, [], result.current[3]]); + }); + }); + + test('does not call autocomplete service if "operatorType" is "exists"', async () => { + await act(async () => { + const { result, waitForNextUpdate } = renderHook< + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn + >(() => + useFieldValueAutocomplete({ + autocompleteService: { + ...autocompleteStartMock, + getValueSuggestions: getValueSuggestionsMock, + }, + fieldValue: '', + indexPattern: stubIndexPatternWithFields, + operatorType: OperatorTypeEnum.EXISTS, + query: '', + selectedField: getField('machine.os'), + }) + ); + await waitForNextUpdate(); + + const expectedResult: UseFieldValueAutocompleteReturn = [false, true, [], result.current[3]]; + + expect(getValueSuggestionsMock).not.toHaveBeenCalled(); + expect(result.current).toEqual(expectedResult); + }); + }); + + test('does not call autocomplete service if "selectedField" is undefined', async () => { + await act(async () => { + const { result, waitForNextUpdate } = renderHook< + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn + >(() => + useFieldValueAutocomplete({ + autocompleteService: { + ...autocompleteStartMock, + getValueSuggestions: getValueSuggestionsMock, + }, + fieldValue: '', + indexPattern: stubIndexPatternWithFields, + operatorType: OperatorTypeEnum.EXISTS, + query: '', + selectedField: undefined, + }) + ); + await waitForNextUpdate(); + + const expectedResult: UseFieldValueAutocompleteReturn = [false, true, [], result.current[3]]; + + expect(getValueSuggestionsMock).not.toHaveBeenCalled(); + expect(result.current).toEqual(expectedResult); + }); + }); + + test('does not call autocomplete service if "indexPattern" is undefined', async () => { + await act(async () => { + const { result, waitForNextUpdate } = renderHook< + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn + >(() => + useFieldValueAutocomplete({ + autocompleteService: { + ...autocompleteStartMock, + getValueSuggestions: getValueSuggestionsMock, + }, + fieldValue: '', + indexPattern: undefined, + operatorType: OperatorTypeEnum.EXISTS, + query: '', + selectedField: getField('machine.os'), + }) + ); + await waitForNextUpdate(); + + const expectedResult: UseFieldValueAutocompleteReturn = [false, true, [], result.current[3]]; + + expect(getValueSuggestionsMock).not.toHaveBeenCalled(); + expect(result.current).toEqual(expectedResult); + }); + }); + + test('it uses full path name for nested fields to fetch suggestions', async () => { + const suggestionsMock = jest.fn().mockResolvedValue([]); + + await act(async () => { + const { signal } = new AbortController(); + const { waitForNextUpdate } = renderHook< + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn + >(() => + useFieldValueAutocomplete({ + autocompleteService: { + ...autocompleteStartMock, + getValueSuggestions: suggestionsMock, + }, + fieldValue: '', + indexPattern: stubIndexPatternWithFields, + operatorType: OperatorTypeEnum.MATCH, + query: '', + selectedField: { ...getField('nestedField.child'), name: 'child' }, + }) + ); + // Note: initial `waitForNextUpdate` is hook initialization + await waitForNextUpdate(); + await waitForNextUpdate(); + + expect(suggestionsMock).toHaveBeenCalledWith({ + field: { ...getField('nestedField.child'), name: 'nestedField.child' }, + indexPattern: { + fields: [ + { + aggregatable: true, + esTypes: ['integer'], + filterable: true, + name: 'response', + searchable: true, + type: 'number', + }, + ], + id: '1234', + title: 'logstash-*', + }, + query: '', + signal, + }); + }); + }); + + test('returns "isSuggestingValues" of false if field type is boolean', async () => { + await act(async () => { + const { result, waitForNextUpdate } = renderHook< + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn + >(() => + useFieldValueAutocomplete({ + autocompleteService: { + ...autocompleteStartMock, + getValueSuggestions: getValueSuggestionsMock, + }, + fieldValue: '', + indexPattern: stubIndexPatternWithFields, + operatorType: OperatorTypeEnum.MATCH, + query: '', + selectedField: getField('ssl'), + }) + ); + // Note: initial `waitForNextUpdate` is hook initialization + await waitForNextUpdate(); + await waitForNextUpdate(); + + const expectedResult: UseFieldValueAutocompleteReturn = [false, false, [], result.current[3]]; + + expect(getValueSuggestionsMock).not.toHaveBeenCalled(); + expect(result.current).toEqual(expectedResult); + }); + }); + + test('returns "isSuggestingValues" of false to note that autocomplete service is not in use if no autocomplete suggestions available', async () => { + const suggestionsMock = jest.fn().mockResolvedValue([]); + + await act(async () => { + const { result, waitForNextUpdate } = renderHook< + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn + >(() => + useFieldValueAutocomplete({ + autocompleteService: { + ...autocompleteStartMock, + getValueSuggestions: suggestionsMock, + }, + fieldValue: '', + indexPattern: stubIndexPatternWithFields, + operatorType: OperatorTypeEnum.MATCH, + query: '', + selectedField: getField('bytes'), + }) + ); + // Note: initial `waitForNextUpdate` is hook initialization + await waitForNextUpdate(); + await waitForNextUpdate(); + + const expectedResult: UseFieldValueAutocompleteReturn = [false, false, [], result.current[3]]; + + expect(suggestionsMock).toHaveBeenCalled(); + expect(result.current).toEqual(expectedResult); + }); + }); + + test('returns suggestions', async () => { + await act(async () => { + const { signal } = new AbortController(); + const { result, waitForNextUpdate } = renderHook< + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn + >(() => + useFieldValueAutocomplete({ + autocompleteService: { + ...autocompleteStartMock, + getValueSuggestions: getValueSuggestionsMock, + }, + fieldValue: '', + indexPattern: stubIndexPatternWithFields, + operatorType: OperatorTypeEnum.MATCH, + query: '', + selectedField: getField('@tags'), + }) + ); + // Note: initial `waitForNextUpdate` is hook initialization + await waitForNextUpdate(); + await waitForNextUpdate(); + + const expectedResult: UseFieldValueAutocompleteReturn = [ + false, + true, + ['value 1', 'value 2'], + result.current[3], + ]; + + expect(getValueSuggestionsMock).toHaveBeenCalledWith({ + field: getField('@tags'), + indexPattern: stubIndexPatternWithFields, + query: '', + signal, + }); + expect(result.current).toEqual(expectedResult); + }); + }); + + test('returns new suggestions on subsequent calls', async () => { + await act(async () => { + const { result, waitForNextUpdate } = renderHook< + UseFieldValueAutocompleteProps, + UseFieldValueAutocompleteReturn + >(() => + useFieldValueAutocomplete({ + autocompleteService: { + ...autocompleteStartMock, + getValueSuggestions: getValueSuggestionsMock, + }, + fieldValue: '', + indexPattern: stubIndexPatternWithFields, + operatorType: OperatorTypeEnum.MATCH, + query: '', + selectedField: getField('@tags'), + }) + ); + // Note: initial `waitForNextUpdate` is hook initialization + await waitForNextUpdate(); + await waitForNextUpdate(); + + expect(result.current[3]).not.toBeNull(); + + // Added check for typescripts sake, if null, + // would not reach below logic as test would stop above + if (result.current[3] != null) { + result.current[3]({ + fieldSelected: getField('@tags'), + patterns: stubIndexPatternWithFields, + searchQuery: '', + value: 'hello', + }); + } + + await waitForNextUpdate(); + + const expectedResult: UseFieldValueAutocompleteReturn = [ + false, + true, + ['value 1', 'value 2'], + result.current[3], + ]; + + expect(getValueSuggestionsMock).toHaveBeenCalledTimes(2); + expect(result.current).toEqual(expectedResult); + }); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts b/x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts new file mode 100644 index 0000000000000..6c6198ac55a0f --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts @@ -0,0 +1,120 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useEffect, useRef, useState } from 'react'; +import { debounce } from 'lodash'; + +import { AutocompleteStart } from '../../../../../../../../src/plugins/data/public'; +import { IFieldType, IIndexPattern } from '../../../../../../../../src/plugins/data/common'; +import { OperatorTypeEnum } from '../../../../../common'; + +interface FuncArgs { + fieldSelected: IFieldType | undefined; + patterns: IIndexPattern | undefined; + searchQuery: string; + value: string | string[] | undefined; +} + +type Func = (args: FuncArgs) => void; + +export type UseFieldValueAutocompleteReturn = [boolean, boolean, string[], Func | null]; + +export interface UseFieldValueAutocompleteProps { + autocompleteService: AutocompleteStart; + fieldValue: string | string[] | undefined; + indexPattern: IIndexPattern | undefined; + operatorType: OperatorTypeEnum; + query: string; + selectedField: IFieldType | undefined; +} +/** + * Hook for using the field value autocomplete service + * + */ +export const useFieldValueAutocomplete = ({ + selectedField, + operatorType, + fieldValue, + query, + indexPattern, + autocompleteService, +}: UseFieldValueAutocompleteProps): UseFieldValueAutocompleteReturn => { + const [isLoading, setIsLoading] = useState(false); + const [isSuggestingValues, setIsSuggestingValues] = useState(true); + const [suggestions, setSuggestions] = useState([]); + const updateSuggestions = useRef(null); + + useEffect(() => { + let isSubscribed = true; + const abortCtrl = new AbortController(); + + const fetchSuggestions = debounce( + async ({ fieldSelected, patterns, searchQuery }: FuncArgs) => { + try { + if (isSubscribed) { + if (fieldSelected == null || patterns == null) { + return; + } + + if (fieldSelected.type === 'boolean') { + setIsSuggestingValues(false); + return; + } + + setIsLoading(true); + + const field = + fieldSelected.subType != null && fieldSelected.subType.nested != null + ? { + ...fieldSelected, + name: `${fieldSelected.subType.nested.path}.${fieldSelected.name}`, + } + : fieldSelected; + + const newSuggestions = await autocompleteService.getValueSuggestions({ + field, + indexPattern: patterns, + query: searchQuery, + signal: abortCtrl.signal, + }); + + if (newSuggestions.length === 0) { + setIsSuggestingValues(false); + } + + setIsLoading(false); + setSuggestions([...newSuggestions]); + } + } catch (error) { + if (isSubscribed) { + setSuggestions([]); + setIsLoading(false); + } + } + }, + 500 + ); + + if (operatorType !== OperatorTypeEnum.EXISTS) { + fetchSuggestions({ + fieldSelected: selectedField, + patterns: indexPattern, + searchQuery: query, + value: fieldValue, + }); + } + + updateSuggestions.current = fetchSuggestions; + + return (): void => { + isSubscribed = false; + abortCtrl.abort(); + }; + }, [selectedField, operatorType, fieldValue, indexPattern, query, autocompleteService]); + + return [isLoading, isSuggestingValues, suggestions, updateSuggestions.current]; +}; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/index.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/index.tsx new file mode 100644 index 0000000000000..1623683f25ed5 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/index.tsx @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { AutocompleteFieldExistsComponent } from './field_value_exists'; +export { AutocompleteFieldListsComponent } from './field_value_lists'; +export { AutocompleteFieldMatchAnyComponent } from './field_value_match_any'; +export { AutocompleteFieldMatchComponent } from './field_value_match'; +export { FieldComponent } from './field'; +export { OperatorComponent } from './operator'; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.test.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.test.tsx new file mode 100644 index 0000000000000..1d033272197ca --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.test.tsx @@ -0,0 +1,226 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { mount } from 'enzyme'; +import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; + +import { getField } from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; + +import { OperatorComponent } from './operator'; +import { isNotOperator, isOperator } from './operators'; + +describe('OperatorComponent', () => { + test('it renders disabled if "isDisabled" is true', () => { + const wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="operatorAutocompleteComboBox"] input`).prop('disabled') + ).toBeTruthy(); + }); + + test('it renders loading if "isLoading" is true', () => { + const wrapper = mount( + + ); + wrapper.find(`[data-test-subj="operatorAutocompleteComboBox"] button`).at(0).simulate('click'); + expect( + wrapper + .find(`EuiComboBoxOptionsList[data-test-subj="operatorAutocompleteComboBox-optionsList"]`) + .prop('isLoading') + ).toBeTruthy(); + }); + + test('it allows user to clear values if "isClearable" is true', () => { + const wrapper = mount( + + ); + + expect(wrapper.find(`button[data-test-subj="comboBoxClearButton"]`).exists()).toBeTruthy(); + }); + + test('it displays "operatorOptions" if param is passed in with items', () => { + const wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="operatorAutocompleteComboBox"]`).at(0).prop('options') + ).toEqual([{ label: 'is not' }]); + }); + + test('it does not display "operatorOptions" if param is passed in with no items', () => { + const wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="operatorAutocompleteComboBox"]`).at(0).prop('options') + ).toEqual([ + { + label: 'is', + }, + { + label: 'is not', + }, + { + label: 'is one of', + }, + { + label: 'is not one of', + }, + { + label: 'exists', + }, + { + label: 'does not exist', + }, + { + label: 'is in list', + }, + { + label: 'is not in list', + }, + ]); + }); + + test('it correctly displays selected operator', () => { + const wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="operatorAutocompleteComboBox"] EuiComboBoxPill`).at(0).text() + ).toEqual('is'); + }); + + test('it only displays subset of operators if field type is nested', () => { + const wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="operatorAutocompleteComboBox"]`).at(0).prop('options') + ).toEqual([{ label: 'is' }]); + }); + + test('it only displays subset of operators if field type is boolean', () => { + const wrapper = mount( + + ); + + expect( + wrapper.find(`[data-test-subj="operatorAutocompleteComboBox"]`).at(0).prop('options') + ).toEqual([ + { label: 'is' }, + { label: 'is not' }, + { label: 'exists' }, + { label: 'does not exist' }, + ]); + }); + + test('it invokes "onChange" when option selected', () => { + const mockOnChange = jest.fn(); + const wrapper = mount( + + ); + + ((wrapper.find(EuiComboBox).props() as unknown) as { + onChange: (a: EuiComboBoxOptionOption[]) => void; + }).onChange([{ label: 'is not' }]); + + expect(mockOnChange).toHaveBeenCalledWith([ + { message: 'is not', operator: 'excluded', type: 'match', value: 'is_not' }, + ]); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx b/x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx new file mode 100644 index 0000000000000..7fc221c5a097c --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback, useMemo } from 'react'; +import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; + +import { IFieldType } from '../../../../../../../src/plugins/data/common'; + +import { getGenericComboBoxProps, getOperators } from './helpers'; +import { GetGenericComboBoxPropsReturn, OperatorOption } from './types'; + +const AS_PLAIN_TEXT = { asPlainText: true }; + +interface OperatorState { + isClearable: boolean; + isDisabled: boolean; + isLoading: boolean; + onChange: (arg: OperatorOption[]) => void; + operator: OperatorOption; + operatorInputWidth?: number; + operatorOptions?: OperatorOption[]; + placeholder: string; + selectedField: IFieldType | undefined; +} + +export const OperatorComponent: React.FC = ({ + isClearable = false, + isDisabled = false, + isLoading = false, + onChange, + operator, + operatorOptions, + operatorInputWidth = 150, + placeholder, + selectedField, +}): JSX.Element => { + const getLabel = useCallback(({ message }): string => message, []); + const optionsMemo = useMemo( + (): OperatorOption[] => + operatorOptions != null && operatorOptions.length > 0 + ? operatorOptions + : getOperators(selectedField), + [operatorOptions, selectedField] + ); + const selectedOptionsMemo = useMemo((): OperatorOption[] => (operator ? [operator] : []), [ + operator, + ]); + const { comboOptions, labels, selectedComboOptions } = useMemo( + (): GetGenericComboBoxPropsReturn => + getGenericComboBoxProps({ + getLabel, + options: optionsMemo, + selectedOptions: selectedOptionsMemo, + }), + [optionsMemo, selectedOptionsMemo, getLabel] + ); + + const handleValuesChange = useCallback( + (newOptions: EuiComboBoxOptionOption[]): void => { + const newValues: OperatorOption[] = newOptions.map( + ({ label }) => optionsMemo[labels.indexOf(label)] + ); + onChange(newValues); + }, + [labels, onChange, optionsMemo] + ); + + const inputWidth = useMemo(() => { + return { width: `${operatorInputWidth}px` }; + }, [operatorInputWidth]); + + return ( + + ); +}; + +OperatorComponent.displayName = 'Operator'; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/operators.ts b/x-pack/plugins/lists/public/exceptions/components/autocomplete/operators.ts new file mode 100644 index 0000000000000..551dfcb61e3ad --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/operators.ts @@ -0,0 +1,109 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +import { OperatorEnum, OperatorTypeEnum } from '../../../../common'; + +import { OperatorOption } from './types'; + +export const isOperator: OperatorOption = { + message: i18n.translate('xpack.lists.exceptions.isOperatorLabel', { + defaultMessage: 'is', + }), + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'is', +}; + +export const isNotOperator: OperatorOption = { + message: i18n.translate('xpack.lists.exceptions.isNotOperatorLabel', { + defaultMessage: 'is not', + }), + operator: OperatorEnum.EXCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'is_not', +}; + +export const isOneOfOperator: OperatorOption = { + message: i18n.translate('xpack.lists.exceptions.isOneOfOperatorLabel', { + defaultMessage: 'is one of', + }), + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: 'is_one_of', +}; + +export const isNotOneOfOperator: OperatorOption = { + message: i18n.translate('xpack.lists.exceptions.isNotOneOfOperatorLabel', { + defaultMessage: 'is not one of', + }), + operator: OperatorEnum.EXCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: 'is_not_one_of', +}; + +export const existsOperator: OperatorOption = { + message: i18n.translate('xpack.lists.exceptions.existsOperatorLabel', { + defaultMessage: 'exists', + }), + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.EXISTS, + value: 'exists', +}; + +export const doesNotExistOperator: OperatorOption = { + message: i18n.translate('xpack.lists.exceptions.doesNotExistOperatorLabel', { + defaultMessage: 'does not exist', + }), + operator: OperatorEnum.EXCLUDED, + type: OperatorTypeEnum.EXISTS, + value: 'does_not_exist', +}; + +export const isInListOperator: OperatorOption = { + message: i18n.translate('xpack.lists.exceptions.isInListOperatorLabel', { + defaultMessage: 'is in list', + }), + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.LIST, + value: 'is_in_list', +}; + +export const isNotInListOperator: OperatorOption = { + message: i18n.translate('xpack.lists.exceptions.isNotInListOperatorLabel', { + defaultMessage: 'is not in list', + }), + operator: OperatorEnum.EXCLUDED, + type: OperatorTypeEnum.LIST, + value: 'is_not_in_list', +}; + +export const EXCEPTION_OPERATORS: OperatorOption[] = [ + isOperator, + isNotOperator, + isOneOfOperator, + isNotOneOfOperator, + existsOperator, + doesNotExistOperator, + isInListOperator, + isNotInListOperator, +]; + +export const EXCEPTION_OPERATORS_SANS_LISTS: OperatorOption[] = [ + isOperator, + isNotOperator, + isOneOfOperator, + isNotOneOfOperator, + existsOperator, + doesNotExistOperator, +]; + +export const EXCEPTION_OPERATORS_ONLY_LISTS: OperatorOption[] = [ + isInListOperator, + isNotInListOperator, +]; diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/translations.ts b/x-pack/plugins/lists/public/exceptions/components/autocomplete/translations.ts new file mode 100644 index 0000000000000..065239246d329 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/translations.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const LOADING = i18n.translate('xpack.lists.autocomplete.loadingDescription', { + defaultMessage: 'Loading...', +}); + +export const SELECT_FIELD_FIRST = i18n.translate('xpack.lists.autocomplete.selectField', { + defaultMessage: 'Please select a field first...', +}); + +export const FIELD_REQUIRED_ERR = i18n.translate('xpack.lists.autocomplete.fieldRequiredError', { + defaultMessage: 'Value cannot be empty', +}); + +export const NUMBER_ERR = i18n.translate('xpack.lists.autocomplete.invalidNumberError', { + defaultMessage: 'Not a valid number', +}); + +export const DATE_ERR = i18n.translate('xpack.lists.autocomplete.invalidDateError', { + defaultMessage: 'Not a valid date', +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/autocomplete/types.ts b/x-pack/plugins/lists/public/exceptions/components/autocomplete/types.ts new file mode 100644 index 0000000000000..8ea3e8d927d68 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/autocomplete/types.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiComboBoxOptionOption } from '@elastic/eui'; + +import { OperatorEnum, OperatorTypeEnum } from '../../../../common'; + +export interface GetGenericComboBoxPropsReturn { + comboOptions: EuiComboBoxOptionOption[]; + labels: string[]; + selectedComboOptions: EuiComboBoxOptionOption[]; +} + +export interface OperatorOption { + message: string; + value: string; + operator: OperatorEnum; + type: OperatorTypeEnum; +} diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx new file mode 100644 index 0000000000000..4b1df0b7c3213 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx @@ -0,0 +1,200 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Story, addDecorator } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import React from 'react'; +import { ThemeProvider } from 'styled-components'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; +import { HttpStart } from 'kibana/public'; + +import { OperatorEnum, OperatorTypeEnum } from '../../../../common'; +import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import { fields } from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; + +import { BuilderEntryItem, EntryItemProps } from './entry_renderer'; + +const mockTheme = (): { darkMode: boolean; eui: unknown } => ({ + darkMode: false, + eui: euiLightVars, +}); +const mockAutocompleteService = ({ + getValueSuggestions: () => + new Promise((resolve) => { + setTimeout(() => { + resolve([ + { + field: { + aggregatable: true, + count: 30, + esTypes: ['date'], + name: '@timestamp', + readFromDocValues: true, + scripted: false, + searchable: true, + type: 'date', + }, + type: 'field', + }, + { + field: { + aggregatable: true, + count: 0, + esTypes: ['ip'], + name: 'ip', + readFromDocValues: true, + scripted: false, + searchable: true, + type: 'ip', + }, + type: 'field', + }, + ]); + }, 300); + }), +} as unknown) as AutocompleteStart; + +addDecorator((storyFn) => {storyFn()}); + +export default { + argTypes: { + allowLargeValueLists: { + control: { + type: 'boolean', + }, + description: '`boolean` - set to true to allow large value lists.', + table: { + defaultValue: { + summary: false, + }, + }, + type: { + required: false, + }, + }, + autoCompleteService: { + control: { + type: 'object', + }, + description: + '`AutocompleteStart` - Kibana data plugin autocomplete service used for field value autocomplete.', + type: { + required: true, + }, + }, + entry: { + control: { + type: 'object', + }, + description: '`FormattedBuilderEntry` - A single exception item entry.', + type: { + required: true, + }, + }, + httpService: { + control: { + type: 'object', + }, + description: '`HttpStart` - Kibana service.', + type: { + required: true, + }, + }, + indexPattern: { + description: + '`IIndexPattern` - index patterns used to populate field options and value autocomplete.', + type: { + required: true, + }, + }, + listType: { + control: { + options: ['detection', 'endpoint'], + type: 'select', + }, + description: + '`ExceptionListType` - Depending on the list type, certain validations may apply.', + type: { + required: true, + }, + }, + + onChange: { + description: + '`(arg: BuilderEntry, i: number) => void` - callback invoked any time field, operator or value is updated.', + type: { + required: true, + }, + }, + onlyShowListOperators: { + description: + '`boolean` - set to true to display to user only operators related to large value lists. This is currently used due to limitations around combining large value list exceptions and non-large value list exceptions.', + table: { + defaultValue: { + summary: false, + }, + }, + type: { + required: false, + }, + }, + setErrorsExist: { + description: '`(arg: boolean) => void` - callback invoked to bubble up input errors.', + type: { + required: true, + }, + }, + showLabel: { + description: + '`boolean` - whether or not to show the input labels (normally just wanted for the first entry item).', + table: { + defaultValue: { + summary: false, + }, + }, + type: { + required: false, + }, + }, + }, + component: BuilderEntryItem, + title: 'BuilderEntryItem', +}; + +const BuilderEntryItemTemplate: Story = (args) => ; + +export const Default = BuilderEntryItemTemplate.bind({}); +Default.args = { + autocompleteService: mockAutocompleteService, + + entry: { + correspondingKeywordField: undefined, + entryIndex: 0, + field: undefined, + id: 'e37ad550-05d2-470e-9a95-487db201ab56', + nested: undefined, + operator: { + message: 'is', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'is', + }, + parent: undefined, + value: '', + }, + httpService: {} as HttpStart, + indexPattern: { + fields, + id: '1234', + title: 'logstash-*', + }, + listType: 'detection', + onChange: action('onClick'), + onlyShowListOperators: false, + setErrorsExist: action('onClick'), + showLabel: false, +}; diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_item.test.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx similarity index 86% rename from x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_item.test.tsx rename to x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx index 9c9035d7e66e9..8f6f9329f2974 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_item.test.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx @@ -8,47 +8,46 @@ import { ReactWrapper, mount } from 'enzyme'; import React from 'react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; +import { waitFor } from '@testing-library/dom'; -import { BuilderEntryItem } from './entry_item'; import { - isOperator, - isNotOperator, - isOneOfOperator, - isNotOneOfOperator, + doesNotExistOperator, + existsOperator, isInListOperator, isNotInListOperator, - existsOperator, - doesNotExistOperator, -} from '../../autocomplete/operators'; + isNotOneOfOperator, + isNotOperator, + isOneOfOperator, + isOperator, +} from '../autocomplete/operators'; import { fields, getField, -} from '../../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; -import { getFoundListSchemaMock } from '../../../../../../lists/common/schemas/response/found_list_schema.mock'; -import { getEmptyValue } from '../../empty_value'; -import { waitFor } from '@testing-library/dom'; +} from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks'; +import { coreMock } from '../../../../../../../src/core/public/mocks'; +import { getFoundListSchemaMock } from '../../../../common/schemas/response/found_list_schema.mock'; +import { useFindLists } from '../../../lists/hooks/use_find_lists'; -// mock out lists hook -const mockStart = jest.fn(); -const mockResult = getFoundListSchemaMock(); -jest.mock('../../../../common/lib/kibana'); -jest.mock('../../../../lists_plugin_deps', () => { - const originalModule = jest.requireActual('../../../../lists_plugin_deps'); +import { BuilderEntryItem } from './entry_renderer'; - return { - ...originalModule, - useFindLists: () => ({ - loading: false, - start: mockStart.mockReturnValue(mockResult), - result: mockResult, - error: undefined, - }), - }; -}); +jest.mock('../../../lists/hooks/use_find_lists'); + +const mockKibanaHttpService = coreMock.createStart().http; +const { autocomplete: autocompleteStartMock } = dataPluginMock.createStartContract(); describe('BuilderEntryItem', () => { let wrapper: ReactWrapper; + beforeEach(() => { + (useFindLists as jest.Mock).mockReturnValue({ + error: undefined, + loading: false, + result: getFoundListSchemaMock(), + start: jest.fn(), + }); + }); + afterEach(() => { jest.clearAllMocks(); wrapper.unmount(); @@ -57,25 +56,27 @@ describe('BuilderEntryItem', () => { test('it renders field labels if "showLabel" is "true"', () => { wrapper = mount( ); @@ -85,25 +86,27 @@ describe('BuilderEntryItem', () => { test('it renders field values correctly when operator is "isOperator"', () => { wrapper = mount( ); @@ -117,25 +120,27 @@ describe('BuilderEntryItem', () => { test('it renders field values correctly when operator is "isNotOperator"', () => { wrapper = mount( ); @@ -151,25 +156,27 @@ describe('BuilderEntryItem', () => { test('it renders field values correctly when operator is "isOneOfOperator"', () => { wrapper = mount( ); @@ -185,25 +192,27 @@ describe('BuilderEntryItem', () => { test('it renders field values correctly when operator is "isNotOneOfOperator"', () => { wrapper = mount( ); @@ -219,25 +228,27 @@ describe('BuilderEntryItem', () => { test('it renders field values correctly when operator is "isInListOperator"', () => { wrapper = mount( ); @@ -253,25 +264,27 @@ describe('BuilderEntryItem', () => { test('it renders field values correctly when operator is "isNotInListOperator"', () => { wrapper = mount( ); @@ -287,25 +300,27 @@ describe('BuilderEntryItem', () => { test('it renders field values correctly when operator is "existsOperator"', () => { wrapper = mount( ); @@ -313,9 +328,7 @@ describe('BuilderEntryItem', () => { expect(wrapper.find('[data-test-subj="exceptionBuilderEntryOperator"]').text()).toEqual( 'exists' ); - expect(wrapper.find('[data-test-subj="exceptionBuilderEntryFieldExists"]').text()).toEqual( - getEmptyValue() - ); + expect(wrapper.find('[data-test-subj="exceptionBuilderEntryFieldExists"]').text()).toEqual('—'); expect( wrapper.find('[data-test-subj="exceptionBuilderEntryFieldExists"] input').props().disabled ).toBeTruthy(); @@ -324,25 +337,27 @@ describe('BuilderEntryItem', () => { test('it renders field values correctly when operator is "doesNotExistOperator"', () => { wrapper = mount( ); @@ -350,9 +365,7 @@ describe('BuilderEntryItem', () => { expect(wrapper.find('[data-test-subj="exceptionBuilderEntryOperator"]').text()).toEqual( 'does not exist' ); - expect(wrapper.find('[data-test-subj="exceptionBuilderEntryFieldExists"]').text()).toEqual( - getEmptyValue() - ); + expect(wrapper.find('[data-test-subj="exceptionBuilderEntryFieldExists"]').text()).toEqual('—'); expect( wrapper.find('[data-test-subj="exceptionBuilderEntryFieldExists"] input').props().disabled ).toBeTruthy(); @@ -361,57 +374,59 @@ describe('BuilderEntryItem', () => { test('it uses "correspondingKeywordField" if it exists', () => { wrapper = mount( ); expect( wrapper.find('[data-test-subj="exceptionBuilderEntryFieldMatchAny"]').prop('selectedField') ).toEqual({ - name: 'extension', - type: 'string', - esTypes: ['keyword'], + aggregatable: true, count: 0, + esTypes: ['keyword'], + name: 'extension', + readFromDocValues: true, scripted: false, searchable: true, - aggregatable: true, - readFromDocValues: true, + type: 'string', }); }); @@ -419,25 +434,27 @@ describe('BuilderEntryItem', () => { const mockOnChange = jest.fn(); wrapper = mount( ); @@ -446,7 +463,7 @@ describe('BuilderEntryItem', () => { }).onChange([{ label: 'machine.os' }]); expect(mockOnChange).toHaveBeenCalledWith( - { id: '123', field: 'machine.os', operator: 'included', type: 'match', value: '' }, + { field: 'machine.os', id: '123', operator: 'included', type: 'match', value: '' }, 0 ); }); @@ -455,25 +472,27 @@ describe('BuilderEntryItem', () => { const mockOnChange = jest.fn(); wrapper = mount( ); @@ -482,7 +501,7 @@ describe('BuilderEntryItem', () => { }).onChange([{ label: 'is not' }]); expect(mockOnChange).toHaveBeenCalledWith( - { id: '123', field: 'ip', operator: 'excluded', type: 'match', value: '1234' }, + { field: 'ip', id: '123', operator: 'excluded', type: 'match', value: '1234' }, 0 ); }); @@ -491,25 +510,27 @@ describe('BuilderEntryItem', () => { const mockOnChange = jest.fn(); wrapper = mount( ); @@ -518,7 +539,7 @@ describe('BuilderEntryItem', () => { }).onCreateOption('126.45.211.34'); expect(mockOnChange).toHaveBeenCalledWith( - { id: '123', field: 'ip', operator: 'excluded', type: 'match', value: '126.45.211.34' }, + { field: 'ip', id: '123', operator: 'excluded', type: 'match', value: '126.45.211.34' }, 0 ); }); @@ -527,25 +548,27 @@ describe('BuilderEntryItem', () => { const mockOnChange = jest.fn(); wrapper = mount( ); @@ -554,7 +577,7 @@ describe('BuilderEntryItem', () => { }).onCreateOption('126.45.211.34'); expect(mockOnChange).toHaveBeenCalledWith( - { id: '123', field: 'ip', operator: 'included', type: 'match_any', value: ['126.45.211.34'] }, + { field: 'ip', id: '123', operator: 'included', type: 'match_any', value: ['126.45.211.34'] }, 0 ); }); @@ -563,25 +586,27 @@ describe('BuilderEntryItem', () => { const mockOnChange = jest.fn(); wrapper = mount( ); @@ -591,11 +616,11 @@ describe('BuilderEntryItem', () => { expect(mockOnChange).toHaveBeenCalledWith( { - id: '123', field: 'ip', + id: '123', + list: { id: 'some-list-id', type: 'ip' }, operator: 'excluded', type: 'list', - list: { id: 'some-list-id', type: 'ip' }, }, 0 ); @@ -605,25 +630,27 @@ describe('BuilderEntryItem', () => { const mockSetErrorExists = jest.fn(); wrapper = mount( ); @@ -640,25 +667,27 @@ describe('BuilderEntryItem', () => { const mockSetErrorExists = jest.fn(); wrapper = mount( ); diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_item.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx similarity index 82% rename from x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_item.tsx rename to x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx index af3b5362cbbf2..7c45f1c35c55e 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_item.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx @@ -6,58 +6,65 @@ */ import React, { useCallback } from 'react'; -import { EuiFormRow, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiFormRow } from '@elastic/eui'; import styled from 'styled-components'; -import { isEqlRule, isThresholdRule } from '../../../../../common/detection_engine/utils'; -import { Type } from '../../../../../common/detection_engine/schemas/common/schemas'; -import { IFieldType, IIndexPattern } from '../../../../../../../../src/plugins/data/common'; -import { FieldComponent } from '../../autocomplete/field'; -import { OperatorComponent } from '../../autocomplete/operator'; -import { OperatorOption } from '../../autocomplete/types'; -import { AutocompleteFieldMatchComponent } from '../../autocomplete/field_value_match'; -import { AutocompleteFieldMatchAnyComponent } from '../../autocomplete/field_value_match_any'; -import { AutocompleteFieldExistsComponent } from '../../autocomplete/field_value_exists'; -import { FormattedBuilderEntry, BuilderEntry } from '../types'; -import { AutocompleteFieldListsComponent } from '../../autocomplete/field_value_lists'; -import { ListSchema, OperatorTypeEnum, ExceptionListType } from '../../../../lists_plugin_deps'; -import { getEmptyValue } from '../../empty_value'; -import * as i18n from './translations'; +import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import { IFieldType, IIndexPattern } from '../../../../../../../src/plugins/data/common'; +import { HttpStart } from '../../../../../../../src/core/public'; +import { FieldComponent } from '../autocomplete/field'; +import { OperatorComponent } from '../autocomplete/operator'; +import { OperatorOption } from '../autocomplete/types'; +import { EXCEPTION_OPERATORS_ONLY_LISTS } from '../autocomplete/operators'; +import { AutocompleteFieldExistsComponent } from '../autocomplete/field_value_exists'; +import { AutocompleteFieldMatchComponent } from '../autocomplete/field_value_match'; +import { AutocompleteFieldMatchAnyComponent } from '../autocomplete/field_value_match_any'; +import { AutocompleteFieldListsComponent } from '../autocomplete/field_value_lists'; +import { ExceptionListType, ListSchema, OperatorTypeEnum } from '../../../../common'; +import { getEmptyValue } from '../../../common/empty_value'; + import { - getFilteredIndexPatterns, - getOperatorOptions, getEntryOnFieldChange, - getEntryOnOperatorChange, - getEntryOnMatchChange, - getEntryOnMatchAnyChange, getEntryOnListChange, + getEntryOnMatchAnyChange, + getEntryOnMatchChange, + getEntryOnOperatorChange, + getFilteredIndexPatterns, + getOperatorOptions, } from './helpers'; -import { EXCEPTION_OPERATORS_ONLY_LISTS } from '../../autocomplete/operators'; +import { BuilderEntry, FormattedBuilderEntry } from './types'; +import * as i18n from './translations'; const MyValuesInput = styled(EuiFlexItem)` overflow: hidden; `; -interface EntryItemProps { +export interface EntryItemProps { + allowLargeValueLists?: boolean; + autocompleteService: AutocompleteStart; entry: FormattedBuilderEntry; + httpService: HttpStart; indexPattern: IIndexPattern; - showLabel: boolean; listType: ExceptionListType; + listTypeSpecificFilter?: (pattern: IIndexPattern, type: ExceptionListType) => IIndexPattern; onChange: (arg: BuilderEntry, i: number) => void; - setErrorsExist: (arg: boolean) => void; onlyShowListOperators?: boolean; - ruleType?: Type; + setErrorsExist: (arg: boolean) => void; + showLabel: boolean; } export const BuilderEntryItem: React.FC = ({ + allowLargeValueLists = false, + autocompleteService, entry, + httpService, indexPattern, listType, - showLabel, + listTypeSpecificFilter, onChange, - setErrorsExist, onlyShowListOperators = false, - ruleType, + setErrorsExist, + showLabel, }): JSX.Element => { const handleError = useCallback( (err: boolean): void => { @@ -112,7 +119,12 @@ export const BuilderEntryItem: React.FC = ({ const renderFieldInput = useCallback( (isFirst: boolean): JSX.Element => { - const filteredIndexPatterns = getFilteredIndexPatterns(indexPattern, entry, listType); + const filteredIndexPatterns = getFilteredIndexPatterns( + indexPattern, + entry, + listType, + listTypeSpecificFilter + ); const comboBox = ( = ({ ); } }, - [handleFieldChange, indexPattern, entry, listType] + [indexPattern, entry, listType, listTypeSpecificFilter, handleFieldChange] ); const renderOperatorInput = (isFirst: boolean): JSX.Element => { @@ -155,7 +167,7 @@ export const BuilderEntryItem: React.FC = ({ entry, listType, entry.field != null && entry.field.type === 'boolean', - isFirst && !isEqlRule(ruleType) && !isThresholdRule(ruleType) + isFirst && !allowLargeValueLists ); const comboBox = ( = ({ const value = typeof entry.value === 'string' ? entry.value : undefined; return ( = ({ const values: string[] = Array.isArray(entry.value) ? entry.value : []; return ( = ({ const id = typeof entry.value === 'string' ? entry.value : undefined; return ( = ({ } isClearable={false} onChange={handleFieldListValueChange} - isRequired data-test-subj="exceptionBuilderEntryFieldList" /> ); diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts new file mode 100644 index 0000000000000..84db000b85ec9 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts @@ -0,0 +1,998 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + fields, + getField, +} from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { IFieldType, IIndexPattern } from '../../../../../../../src/plugins/data/common'; +import { getEntryNestedMock } from '../../../../common/schemas/types/entry_nested.mock'; +import { getEntryMatchMock } from '../../../../common/schemas/types/entry_match.mock'; +import { getEntryMatchAnyMock } from '../../../../common/schemas/types/entry_match_any.mock'; +import { getListResponseMock } from '../../../../common/schemas/response/list_schema.mock'; +import { + EXCEPTION_OPERATORS, + EXCEPTION_OPERATORS_SANS_LISTS, + doesNotExistOperator, + existsOperator, + isInListOperator, + isNotOneOfOperator, + isNotOperator, + isOneOfOperator, + isOperator, +} from '../autocomplete/operators'; +import { + EntryExists, + EntryList, + EntryMatch, + EntryMatchAny, + EntryNested, + ExceptionListType, + OperatorEnum, + OperatorTypeEnum, +} from '../../../../common'; +import { OperatorOption } from '../autocomplete/types'; + +import { BuilderEntry, FormattedBuilderEntry } from './types'; +import { + getEntryFromOperator, + getEntryOnFieldChange, + getEntryOnListChange, + getEntryOnMatchAnyChange, + getEntryOnMatchChange, + getEntryOnOperatorChange, + getFilteredIndexPatterns, + getOperatorOptions, +} from './helpers'; + +jest.mock('uuid', () => ({ + v4: jest.fn().mockReturnValue('123'), +})); + +const getEntryNestedWithIdMock = (): EntryNested & { id: string } => ({ + ...getEntryNestedMock(), + id: '123', +}); + +const getEntryMatchWithIdMock = (): EntryMatch & { id: string } => ({ + ...getEntryMatchMock(), + id: '123', +}); + +const getEntryMatchAnyWithIdMock = (): EntryMatchAny & { id: string } => ({ + ...getEntryMatchAnyMock(), + id: '123', +}); + +const getMockIndexPattern = (): IIndexPattern => ({ + fields, + id: '1234', + title: 'logstash-*', +}); + +const getMockBuilderEntry = (): FormattedBuilderEntry => ({ + correspondingKeywordField: undefined, + entryIndex: 0, + field: getField('ip'), + id: '123', + nested: undefined, + operator: isOperator, + parent: undefined, + value: 'some value', +}); + +const getMockNestedBuilderEntry = (): FormattedBuilderEntry => ({ + correspondingKeywordField: undefined, + entryIndex: 0, + field: getField('nestedField.child'), + id: '123', + nested: 'child', + operator: isOperator, + parent: { + parent: { + ...getEntryNestedWithIdMock(), + entries: [{ ...getEntryMatchWithIdMock(), field: 'child' }], + field: 'nestedField', + }, + parentIndex: 0, + }, + value: 'some value', +}); + +const getMockNestedParentBuilderEntry = (): FormattedBuilderEntry => ({ + correspondingKeywordField: undefined, + entryIndex: 0, + field: { ...getField('nestedField.child'), esTypes: ['nested'], name: 'nestedField' }, + id: '123', + nested: 'parent', + operator: isOperator, + parent: undefined, + value: undefined, +}); + +const mockEndpointFields = [ + { + aggregatable: false, + count: 0, + esTypes: ['keyword'], + name: 'file.path.caseless', + readFromDocValues: false, + scripted: false, + searchable: true, + type: 'string', + }, + { + aggregatable: false, + count: 0, + esTypes: ['text'], + name: 'file.Ext.code_signature.status', + readFromDocValues: false, + scripted: false, + searchable: true, + subType: { nested: { path: 'file.Ext.code_signature' } }, + type: 'string', + }, +]; + +export const getEndpointField = (name: string): IFieldType => + mockEndpointFields.find((field) => field.name === name) as IFieldType; + +const filterIndexPatterns = (patterns: IIndexPattern, type: ExceptionListType): IIndexPattern => { + return type === 'endpoint' + ? { + ...patterns, + fields: patterns.fields.filter(({ name }) => + ['file.path.caseless', 'file.Ext.code_signature.status'].includes(name) + ), + } + : patterns; +}; + +describe('Exception builder helpers', () => { + describe('#getFilteredIndexPatterns', () => { + describe('list type detections', () => { + test('it returns nested fields that match parent value when "item.nested" is "child"', () => { + const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); + const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'detection'); + const expected: IIndexPattern = { + fields: [{ ...getField('nestedField.child'), name: 'child' }], + id: '1234', + title: 'logstash-*', + }; + expect(output).toEqual(expected); + }); + + test('it returns only parent nested field when "item.nested" is "parent" and nested parent field is not undefined', () => { + const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + const payloadItem: FormattedBuilderEntry = getMockNestedParentBuilderEntry(); + const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'detection'); + const expected: IIndexPattern = { + fields: [{ ...getField('nestedField.child'), esTypes: ['nested'], name: 'nestedField' }], + id: '1234', + title: 'logstash-*', + }; + expect(output).toEqual(expected); + }); + + test('it returns only nested fields when "item.nested" is "parent" and nested parent field is undefined', () => { + const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + const payloadItem: FormattedBuilderEntry = { + ...getMockNestedParentBuilderEntry(), + field: undefined, + }; + const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'detection'); + const expected: IIndexPattern = { + fields: [ + { ...getField('nestedField.child') }, + { ...getField('nestedField.nestedChild.doublyNestedChild') }, + ], + id: '1234', + title: 'logstash-*', + }; + expect(output).toEqual(expected); + }); + + test('it returns all fields unfiletered if "item.nested" is not "child" or "parent"', () => { + const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'detection'); + const expected: IIndexPattern = { + fields: [...fields], + id: '1234', + title: 'logstash-*', + }; + expect(output).toEqual(expected); + }); + }); + + describe('list type endpoint', () => { + let payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + + beforeAll(() => { + payloadIndexPattern = { + ...payloadIndexPattern, + fields: [...payloadIndexPattern.fields, ...mockEndpointFields], + }; + }); + + test('it returns nested fields that match parent value when "item.nested" is "child"', () => { + const payloadItem: FormattedBuilderEntry = { + correspondingKeywordField: undefined, + entryIndex: 0, + field: getEndpointField('file.Ext.code_signature.status'), + id: '123', + nested: 'child', + operator: isOperator, + parent: { + parent: { + ...getEntryNestedWithIdMock(), + entries: [{ ...getEntryMatchWithIdMock(), field: 'child' }], + field: 'file.Ext.code_signature', + }, + parentIndex: 0, + }, + value: 'some value', + }; + const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'endpoint'); + const expected: IIndexPattern = { + fields: [{ ...getEndpointField('file.Ext.code_signature.status'), name: 'status' }], + id: '1234', + title: 'logstash-*', + }; + expect(output).toEqual(expected); + }); + + test('it returns only parent nested field when "item.nested" is "parent" and nested parent field is not undefined', () => { + const payloadItem: FormattedBuilderEntry = { + ...getMockNestedParentBuilderEntry(), + field: { + ...getEndpointField('file.Ext.code_signature.status'), + esTypes: ['nested'], + name: 'file.Ext.code_signature', + }, + }; + const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'endpoint'); + const expected: IIndexPattern = { + fields: [ + { + aggregatable: false, + count: 0, + esTypes: ['nested'], + name: 'file.Ext.code_signature', + readFromDocValues: false, + scripted: false, + searchable: true, + subType: { + nested: { + path: 'file.Ext.code_signature', + }, + }, + type: 'string', + }, + ], + id: '1234', + title: 'logstash-*', + }; + expect(output).toEqual(expected); + }); + + test('it returns only nested fields when "item.nested" is "parent" and nested parent field is undefined', () => { + const payloadItem: FormattedBuilderEntry = { + ...getMockNestedParentBuilderEntry(), + field: undefined, + }; + const output = getFilteredIndexPatterns( + payloadIndexPattern, + payloadItem, + 'endpoint', + filterIndexPatterns + ); + const expected: IIndexPattern = { + fields: [getEndpointField('file.Ext.code_signature.status')], + id: '1234', + title: 'logstash-*', + }; + expect(output).toEqual(expected); + }); + + test('it returns all fields that matched those in "exceptionable_fields.json" with no further filtering if "item.nested" is not "child" or "parent"', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const output = getFilteredIndexPatterns( + payloadIndexPattern, + payloadItem, + 'endpoint', + filterIndexPatterns + ); + const expected: IIndexPattern = { + fields: [ + { + aggregatable: false, + count: 0, + esTypes: ['keyword'], + name: 'file.path.caseless', + readFromDocValues: false, + scripted: false, + searchable: true, + type: 'string', + }, + { + aggregatable: false, + count: 0, + esTypes: ['text'], + name: 'file.Ext.code_signature.status', + readFromDocValues: false, + scripted: false, + searchable: true, + subType: { nested: { path: 'file.Ext.code_signature' } }, + type: 'string', + }, + ], + id: '1234', + title: 'logstash-*', + }; + expect(output).toEqual(expected); + }); + }); + }); + + describe('#getEntryFromOperator', () => { + test('it returns current value when switching from "is" to "is not"', () => { + const payloadOperator: OperatorOption = isNotOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + value: 'I should stay the same', + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryMatch & { id?: string } = { + field: 'ip', + id: '123', + operator: 'excluded', + type: OperatorTypeEnum.MATCH, + value: 'I should stay the same', + }; + expect(output).toEqual(expected); + }); + + test('it returns current value when switching from "is not" to "is"', () => { + const payloadOperator: OperatorOption = isOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: isNotOperator, + value: 'I should stay the same', + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryMatch & { id?: string } = { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'I should stay the same', + }; + expect(output).toEqual(expected); + }); + + test('it returns empty value when switching operator types to "match"', () => { + const payloadOperator: OperatorOption = isOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: isNotOneOfOperator, + value: ['I should stay the same'], + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryMatch & { id?: string } = { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: '', + }; + expect(output).toEqual(expected); + }); + + test('it returns current value when switching from "is one of" to "is not one of"', () => { + const payloadOperator: OperatorOption = isNotOneOfOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: isOneOfOperator, + value: ['I should stay the same'], + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryMatchAny & { id?: string } = { + field: 'ip', + id: '123', + operator: 'excluded', + type: OperatorTypeEnum.MATCH_ANY, + value: ['I should stay the same'], + }; + expect(output).toEqual(expected); + }); + + test('it returns current value when switching from "is not one of" to "is one of"', () => { + const payloadOperator: OperatorOption = isOneOfOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: isNotOneOfOperator, + value: ['I should stay the same'], + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryMatchAny & { id?: string } = { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: ['I should stay the same'], + }; + expect(output).toEqual(expected); + }); + + test('it returns empty value when switching operator types to "match_any"', () => { + const payloadOperator: OperatorOption = isOneOfOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: isOperator, + value: 'I should stay the same', + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryMatchAny & { id?: string } = { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: [], + }; + expect(output).toEqual(expected); + }); + + test('it returns current value when switching from "exists" to "does not exist"', () => { + const payloadOperator: OperatorOption = doesNotExistOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: existsOperator, + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryExists & { id?: string } = { + field: 'ip', + id: '123', + operator: 'excluded', + type: 'exists', + }; + expect(output).toEqual(expected); + }); + + test('it returns current value when switching from "does not exist" to "exists"', () => { + const payloadOperator: OperatorOption = existsOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: doesNotExistOperator, + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryExists & { id?: string } = { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: 'exists', + }; + expect(output).toEqual(expected); + }); + + test('it returns empty value when switching operator types to "exists"', () => { + const payloadOperator: OperatorOption = existsOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: isOperator, + value: 'I should stay the same', + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryExists & { id?: string } = { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: 'exists', + }; + expect(output).toEqual(expected); + }); + + test('it returns empty value when switching operator types to "list"', () => { + const payloadOperator: OperatorOption = isInListOperator; + const payloadEntry: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: isOperator, + value: 'I should stay the same', + }; + const output = getEntryFromOperator(payloadOperator, payloadEntry); + const expected: EntryList & { id?: string } = { + field: 'ip', + id: '123', + list: { id: '', type: 'ip' }, + operator: OperatorEnum.INCLUDED, + type: 'list', + }; + expect(output).toEqual(expected); + }); + }); + + describe('#getOperatorOptions', () => { + test('it returns "isOperator" when field type is nested but field itself has not yet been selected', () => { + const payloadItem: FormattedBuilderEntry = getMockNestedParentBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'endpoint', false); + const expected: OperatorOption[] = [isOperator]; + expect(output).toEqual(expected); + }); + + test('it returns "isOperator" if no field selected', () => { + const payloadItem: FormattedBuilderEntry = { ...getMockBuilderEntry(), field: undefined }; + const output = getOperatorOptions(payloadItem, 'endpoint', false); + const expected: OperatorOption[] = [isOperator]; + expect(output).toEqual(expected); + }); + + test('it returns "isOperator" and "isOneOfOperator" if item is nested and "listType" is "endpoint"', () => { + const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'endpoint', false); + const expected: OperatorOption[] = [isOperator, isOneOfOperator]; + expect(output).toEqual(expected); + }); + + test('it returns "isOperator" and "isOneOfOperator" if "listType" is "endpoint"', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'endpoint', false); + const expected: OperatorOption[] = [isOperator, isOneOfOperator]; + expect(output).toEqual(expected); + }); + + test('it returns "isOperator" if "listType" is "endpoint" and field type is boolean', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'endpoint', true); + const expected: OperatorOption[] = [isOperator]; + expect(output).toEqual(expected); + }); + + test('it returns "isOperator", "isOneOfOperator", and "existsOperator" if item is nested and "listType" is "detection"', () => { + const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'detection', false); + const expected: OperatorOption[] = [isOperator, isOneOfOperator, existsOperator]; + expect(output).toEqual(expected); + }); + + test('it returns "isOperator" and "existsOperator" if item is nested, "listType" is "detection", and field type is boolean', () => { + const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'detection', true); + const expected: OperatorOption[] = [isOperator, existsOperator]; + expect(output).toEqual(expected); + }); + + test('it returns all operator options if "listType" is "detection"', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'detection', false); + const expected: OperatorOption[] = EXCEPTION_OPERATORS; + expect(output).toEqual(expected); + }); + + test('it returns "isOperator", "isNotOperator", "doesNotExistOperator" and "existsOperator" if field type is boolean', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'detection', true); + const expected: OperatorOption[] = [ + isOperator, + isNotOperator, + existsOperator, + doesNotExistOperator, + ]; + expect(output).toEqual(expected); + }); + + test('it returns list operators if specified to', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'detection', false, true); + expect(output).toEqual(EXCEPTION_OPERATORS); + }); + + test('it does not return list operators if specified not to', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const output = getOperatorOptions(payloadItem, 'detection', false, false); + expect(output).toEqual(EXCEPTION_OPERATORS_SANS_LISTS); + }); + }); + + describe('#getEntryOnFieldChange', () => { + test('it returns nested entry with single new subentry when "item.nested" is "parent"', () => { + const payloadItem: FormattedBuilderEntry = getMockNestedParentBuilderEntry(); + const payloadIFieldType: IFieldType = getField('nestedField.child'); + const output = getEntryOnFieldChange(payloadItem, payloadIFieldType); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + entries: [ + { + field: 'child', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: '', + }, + ], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns nested entry with newly selected field value when "item.nested" is "child"', () => { + const payloadItem: FormattedBuilderEntry = { + ...getMockNestedBuilderEntry(), + parent: { + parent: { + ...getEntryNestedWithIdMock(), + entries: [ + { ...getEntryMatchWithIdMock(), field: 'child' }, + getEntryMatchAnyWithIdMock(), + ], + field: 'nestedField', + }, + parentIndex: 0, + }, + }; + const payloadIFieldType: IFieldType = getField('nestedField.child'); + const output = getEntryOnFieldChange(payloadItem, payloadIFieldType); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + entries: [ + { + field: 'child', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: '', + }, + getEntryMatchAnyWithIdMock(), + ], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns field of type "match" with updated field if not a nested entry', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const payloadIFieldType: IFieldType = getField('ip'); + const output = getEntryOnFieldChange(payloadItem, payloadIFieldType); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: '', + }, + }; + expect(output).toEqual(expected); + }); + }); + + describe('#getEntryOnOperatorChange', () => { + test('it returns updated subentry preserving its value when entry is not switching operator types', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const payloadOperator: OperatorOption = isNotOperator; + const output = getEntryOnOperatorChange(payloadItem, payloadOperator); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + field: 'ip', + id: '123', + operator: 'excluded', + type: OperatorTypeEnum.MATCH, + value: 'some value', + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns updated subentry resetting its value when entry is switching operator types', () => { + const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); + const payloadOperator: OperatorOption = isOneOfOperator; + const output = getEntryOnOperatorChange(payloadItem, payloadOperator); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: [], + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns updated subentry preserving its value when entry is nested and not switching operator types', () => { + const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); + const payloadOperator: OperatorOption = isNotOperator; + const output = getEntryOnOperatorChange(payloadItem, payloadOperator); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + entries: [ + { + field: 'child', + id: '123', + operator: OperatorEnum.EXCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'some value', + }, + ], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns updated subentry resetting its value when entry is nested and switching operator types', () => { + const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); + const payloadOperator: OperatorOption = isOneOfOperator; + const output = getEntryOnOperatorChange(payloadItem, payloadOperator); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + entries: [ + { + field: 'child', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: [], + }, + ], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + }; + expect(output).toEqual(expected); + }); + }); + + describe('#getEntryOnMatchChange', () => { + test('it returns entry with updated value', () => { + const payload: FormattedBuilderEntry = getMockBuilderEntry(); + const output = getEntryOnMatchChange(payload, 'jibber jabber'); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'jibber jabber', + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { + const payload: FormattedBuilderEntry = { ...getMockBuilderEntry(), field: undefined }; + const output = getEntryOnMatchChange(payload, 'jibber jabber'); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + field: '', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'jibber jabber', + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns nested entry with updated value', () => { + const payload: FormattedBuilderEntry = getMockNestedBuilderEntry(); + const output = getEntryOnMatchChange(payload, 'jibber jabber'); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + entries: [ + { + field: 'child', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'jibber jabber', + }, + ], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns nested entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { + const payload: FormattedBuilderEntry = { ...getMockNestedBuilderEntry(), field: undefined }; + const output = getEntryOnMatchChange(payload, 'jibber jabber'); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + entries: [ + { + field: '', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'jibber jabber', + }, + ], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + }; + expect(output).toEqual(expected); + }); + }); + + describe('#getEntryOnMatchAnyChange', () => { + test('it returns entry with updated value', () => { + const payload: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: isOneOfOperator, + value: ['some value'], + }; + const output = getEntryOnMatchAnyChange(payload, ['jibber jabber']); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + field: 'ip', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: ['jibber jabber'], + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { + const payload: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + field: undefined, + operator: isOneOfOperator, + value: ['some value'], + }; + const output = getEntryOnMatchAnyChange(payload, ['jibber jabber']); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + field: '', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: ['jibber jabber'], + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns nested entry with updated value', () => { + const payload: FormattedBuilderEntry = { + ...getMockNestedBuilderEntry(), + parent: { + parent: { + ...getEntryNestedWithIdMock(), + entries: [{ ...getEntryMatchAnyWithIdMock(), field: 'child' }], + field: 'nestedField', + }, + parentIndex: 0, + }, + }; + const output = getEntryOnMatchAnyChange(payload, ['jibber jabber']); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + entries: [ + { + field: 'child', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: ['jibber jabber'], + }, + ], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns nested entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { + const payload: FormattedBuilderEntry = { + ...getMockNestedBuilderEntry(), + field: undefined, + parent: { + parent: { + ...getEntryNestedWithIdMock(), + entries: [{ ...getEntryMatchAnyWithIdMock(), field: 'child' }], + field: 'nestedField', + }, + parentIndex: 0, + }, + }; + const output = getEntryOnMatchAnyChange(payload, ['jibber jabber']); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + entries: [ + { + field: '', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH_ANY, + value: ['jibber jabber'], + }, + ], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + }; + expect(output).toEqual(expected); + }); + }); + + describe('#getEntryOnListChange', () => { + test('it returns entry with updated value', () => { + const payload: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + operator: isOneOfOperator, + value: '1234', + }; + const output = getEntryOnListChange(payload, getListResponseMock()); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + field: 'ip', + id: '123', + list: { id: 'some-list-id', type: 'ip' }, + operator: OperatorEnum.INCLUDED, + type: 'list', + }, + }; + expect(output).toEqual(expected); + }); + + test('it returns entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { + const payload: FormattedBuilderEntry = { + ...getMockBuilderEntry(), + field: undefined, + operator: isOneOfOperator, + value: '1234', + }; + const output = getEntryOnListChange(payload, getListResponseMock()); + const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { + index: 0, + updatedEntry: { + field: '', + id: '123', + list: { id: 'some-list-id', type: 'ip' }, + operator: OperatorEnum.INCLUDED, + type: 'list', + }, + }; + expect(output).toEqual(expected); + }); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/helpers.ts b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.ts new file mode 100644 index 0000000000000..57db94ac6c753 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.ts @@ -0,0 +1,389 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IFieldType, IIndexPattern } from '../../../../../../../src/plugins/data/public'; +import { addIdToItem } from '../../../../common/shared_imports'; +import { + Entry, + ExceptionListType, + ListSchema, + OperatorTypeEnum, + entriesList, +} from '../../../../common'; +import { + EXCEPTION_OPERATORS, + EXCEPTION_OPERATORS_SANS_LISTS, + doesNotExistOperator, + existsOperator, + isNotOperator, + isOneOfOperator, + isOperator, +} from '../autocomplete/operators'; +import { OperatorOption } from '../autocomplete/types'; + +import { BuilderEntry, FormattedBuilderEntry } from './types'; + +/** + * Returns filtered index patterns based on the field - if a user selects to + * add nested entry, should only show nested fields, if item is the parent + * field of a nested entry, we only display the parent field + * + * @param patterns IIndexPattern containing available fields on rule index + * @param item exception item entry + * set to add a nested field + */ +export const getFilteredIndexPatterns = ( + patterns: IIndexPattern, + item: FormattedBuilderEntry, + type: ExceptionListType, + preFilter?: (i: IIndexPattern, t: ExceptionListType) => IIndexPattern +): IIndexPattern => { + const indexPatterns = preFilter != null ? preFilter(patterns, type) : patterns; + + if (item.nested === 'child' && item.parent != null) { + // when user has selected a nested entry, only fields with the common parent are shown + return { + ...indexPatterns, + fields: indexPatterns.fields + .filter((indexField) => { + const fieldHasCommonParentPath = + indexField.subType != null && + indexField.subType.nested != null && + item.parent != null && + indexField.subType.nested.path === item.parent.parent.field; + + return fieldHasCommonParentPath; + }) + .map((f) => { + const [fieldNameWithoutParentPath] = f.name.split('.').slice(-1); + return { ...f, name: fieldNameWithoutParentPath }; + }), + }; + } else if (item.nested === 'parent' && item.field != null) { + // when user has selected a nested entry, right above it we show the common parent + return { ...indexPatterns, fields: [item.field] }; + } else if (item.nested === 'parent' && item.field == null) { + // when user selects to add a nested entry, only nested fields are shown as options + return { + ...indexPatterns, + fields: indexPatterns.fields.filter( + (field) => field.subType != null && field.subType.nested != null + ), + }; + } else { + return indexPatterns; + } +}; + +/** + * Determines proper entry update when user selects new field + * + * @param item - current exception item entry values + * @param newField - newly selected field + * + */ +export const getEntryOnFieldChange = ( + item: FormattedBuilderEntry, + newField: IFieldType +): { index: number; updatedEntry: BuilderEntry } => { + const { parent, entryIndex, nested } = item; + const newChildFieldValue = newField != null ? newField.name.split('.').slice(-1)[0] : ''; + + if (nested === 'parent') { + // For nested entries, when user first selects to add a nested + // entry, they first see a row similar to what is shown for when + // a user selects "exists", as soon as they make a selection + // we can now identify the 'parent' and 'child' this is where + // we first convert the entry into type "nested" + const newParentFieldValue = + newField.subType != null && newField.subType.nested != null + ? newField.subType.nested.path + : ''; + + return { + index: entryIndex, + updatedEntry: { + entries: [ + addIdToItem({ + field: newChildFieldValue ?? '', + operator: isOperator.operator, + type: OperatorTypeEnum.MATCH, + value: '', + }), + ], + field: newParentFieldValue, + id: item.id, + type: OperatorTypeEnum.NESTED, + }, + }; + } else if (nested === 'child' && parent != null) { + return { + index: parent.parentIndex, + updatedEntry: { + ...parent.parent, + entries: [ + ...parent.parent.entries.slice(0, entryIndex), + { + field: newChildFieldValue ?? '', + id: item.id, + operator: isOperator.operator, + type: OperatorTypeEnum.MATCH, + value: '', + }, + ...parent.parent.entries.slice(entryIndex + 1), + ], + }, + }; + } else { + return { + index: entryIndex, + updatedEntry: { + field: newField != null ? newField.name : '', + id: item.id, + operator: isOperator.operator, + type: OperatorTypeEnum.MATCH, + value: '', + }, + }; + } +}; + +/** + * Determines proper entry update when user updates value + * when operator is of type "list" + * + * @param item - current exception item entry values + * @param newField - newly selected list + * + */ +export const getEntryOnListChange = ( + item: FormattedBuilderEntry, + newField: ListSchema +): { index: number; updatedEntry: BuilderEntry } => { + const { entryIndex, field, operator } = item; + const { id, type } = newField; + + return { + index: entryIndex, + updatedEntry: { + field: field != null ? field.name : '', + id: item.id, + list: { id, type }, + operator: operator.operator, + type: OperatorTypeEnum.LIST, + }, + }; +}; + +/** + * Determines proper entry update when user updates value + * when operator is of type "match_any" + * + * @param item - current exception item entry values + * @param newField - newly entered value + * + */ +export const getEntryOnMatchAnyChange = ( + item: FormattedBuilderEntry, + newField: string[] +): { index: number; updatedEntry: BuilderEntry } => { + const { nested, parent, entryIndex, field, operator } = item; + + if (nested != null && parent != null) { + const fieldName = field != null ? field.name.split('.').slice(-1)[0] : ''; + + return { + index: parent.parentIndex, + updatedEntry: { + ...parent.parent, + entries: [ + ...parent.parent.entries.slice(0, entryIndex), + { + field: fieldName, + id: item.id, + operator: operator.operator, + type: OperatorTypeEnum.MATCH_ANY, + value: newField, + }, + ...parent.parent.entries.slice(entryIndex + 1), + ], + }, + }; + } else { + return { + index: entryIndex, + updatedEntry: { + field: field != null ? field.name : '', + id: item.id, + operator: operator.operator, + type: OperatorTypeEnum.MATCH_ANY, + value: newField, + }, + }; + } +}; + +/** + * Determines proper entry update when user updates value + * when operator is of type "match" + * + * @param item - current exception item entry values + * @param newField - newly entered value + * + */ +export const getEntryOnMatchChange = ( + item: FormattedBuilderEntry, + newField: string +): { index: number; updatedEntry: BuilderEntry } => { + const { nested, parent, entryIndex, field, operator } = item; + + if (nested != null && parent != null) { + const fieldName = field != null ? field.name.split('.').slice(-1)[0] : ''; + + return { + index: parent.parentIndex, + updatedEntry: { + ...parent.parent, + entries: [ + ...parent.parent.entries.slice(0, entryIndex), + { + field: fieldName, + id: item.id, + operator: operator.operator, + type: OperatorTypeEnum.MATCH, + value: newField, + }, + ...parent.parent.entries.slice(entryIndex + 1), + ], + }, + }; + } else { + return { + index: entryIndex, + updatedEntry: { + field: field != null ? field.name : '', + id: item.id, + operator: operator.operator, + type: OperatorTypeEnum.MATCH, + value: newField, + }, + }; + } +}; + +/** + * On operator change, determines whether value needs to be cleared or not + * + * @param field + * @param selectedOperator + * @param currentEntry + * + */ +export const getEntryFromOperator = ( + selectedOperator: OperatorOption, + currentEntry: FormattedBuilderEntry +): Entry & { id?: string } => { + const isSameOperatorType = currentEntry.operator.type === selectedOperator.type; + const fieldValue = currentEntry.field != null ? currentEntry.field.name : ''; + switch (selectedOperator.type) { + case 'match': + return { + field: fieldValue, + id: currentEntry.id, + operator: selectedOperator.operator, + type: OperatorTypeEnum.MATCH, + value: + isSameOperatorType && typeof currentEntry.value === 'string' ? currentEntry.value : '', + }; + case 'match_any': + return { + field: fieldValue, + id: currentEntry.id, + operator: selectedOperator.operator, + type: OperatorTypeEnum.MATCH_ANY, + value: isSameOperatorType && Array.isArray(currentEntry.value) ? currentEntry.value : [], + }; + case 'list': + return { + field: fieldValue, + id: currentEntry.id, + list: { id: '', type: 'ip' }, + operator: selectedOperator.operator, + type: OperatorTypeEnum.LIST, + }; + default: + return { + field: fieldValue, + id: currentEntry.id, + operator: selectedOperator.operator, + type: OperatorTypeEnum.EXISTS, + }; + } +}; + +/** + * Determines proper entry update when user selects new operator + * + * @param item - current exception item entry values + * @param newOperator - newly selected operator + * + */ +export const getEntryOnOperatorChange = ( + item: FormattedBuilderEntry, + newOperator: OperatorOption +): { updatedEntry: BuilderEntry; index: number } => { + const { parent, entryIndex, field, nested } = item; + const newEntry = getEntryFromOperator(newOperator, item); + + if (!entriesList.is(newEntry) && nested != null && parent != null) { + return { + index: parent.parentIndex, + updatedEntry: { + ...parent.parent, + entries: [ + ...parent.parent.entries.slice(0, entryIndex), + { + ...newEntry, + field: field != null ? field.name.split('.').slice(-1)[0] : '', + }, + ...parent.parent.entries.slice(entryIndex + 1), + ], + }, + }; + } else { + return { index: entryIndex, updatedEntry: newEntry }; + } +}; + +/** + * Determines which operators to make available + * + * @param item + * @param listType + * @param isBoolean + * @param includeValueListOperators whether or not to include the 'is in list' and 'is not in list' operators + */ +export const getOperatorOptions = ( + item: FormattedBuilderEntry, + listType: ExceptionListType, + isBoolean: boolean, + includeValueListOperators = true +): OperatorOption[] => { + if (item.nested === 'parent' || item.field == null) { + return [isOperator]; + } else if ((item.nested != null && listType === 'endpoint') || listType === 'endpoint') { + return isBoolean ? [isOperator] : [isOperator, isOneOfOperator]; + } else if (item.nested != null && listType === 'detection') { + return isBoolean ? [isOperator, existsOperator] : [isOperator, isOneOfOperator, existsOperator]; + } else { + return isBoolean + ? [isOperator, isNotOperator, existsOperator, doesNotExistOperator] + : includeValueListOperators + ? EXCEPTION_OPERATORS + : EXCEPTION_OPERATORS_SANS_LISTS; + } +}; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/translations.ts b/x-pack/plugins/lists/public/exceptions/components/builder/translations.ts new file mode 100644 index 0000000000000..9da598c08bd83 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/builder/translations.ts @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const FIELD = i18n.translate('xpack.lists.exceptions.builder.fieldLabel', { + defaultMessage: 'Field', +}); + +export const OPERATOR = i18n.translate('xpack.lists.exceptions.builder.operatorLabel', { + defaultMessage: 'Operator', +}); + +export const VALUE = i18n.translate('xpack.lists.exceptions.builder.valueLabel', { + defaultMessage: 'Value', +}); + +export const EXCEPTION_FIELD_VALUE_PLACEHOLDER = i18n.translate( + 'xpack.lists.exceptions.builder.exceptionFieldValuePlaceholder', + { + defaultMessage: 'Search field value...', + } +); + +export const EXCEPTION_FIELD_NESTED_PLACEHOLDER = i18n.translate( + 'xpack.lists.exceptions.builder.exceptionFieldNestedPlaceholder', + { + defaultMessage: 'Search nested field', + } +); + +export const EXCEPTION_FIELD_LISTS_PLACEHOLDER = i18n.translate( + 'xpack.lists.exceptions.builder.exceptionListsPlaceholder', + { + defaultMessage: 'Search for list...', + } +); + +export const EXCEPTION_FIELD_PLACEHOLDER = i18n.translate( + 'xpack.lists.exceptions.builder.exceptionFieldPlaceholder', + { + defaultMessage: 'Search', + } +); + +export const EXCEPTION_OPERATOR_PLACEHOLDER = i18n.translate( + 'xpack.lists.exceptions.builder.exceptionOperatorPlaceholder', + { + defaultMessage: 'Operator', + } +); diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/types.ts b/x-pack/plugins/lists/public/exceptions/components/builder/types.ts new file mode 100644 index 0000000000000..cdb4f735aa103 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/builder/types.ts @@ -0,0 +1,90 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IFieldType } from '../../../../../../../src/plugins/data/common'; +import { OperatorOption } from '../autocomplete/types'; +import { + CreateExceptionListItemSchema, + Entry, + EntryExists, + EntryMatch, + EntryMatchAny, + EntryNested, + ExceptionListItemSchema, + OperatorEnum, + OperatorTypeEnum, +} from '../../../../common'; + +export interface FormattedBuilderEntry { + id: string; + field: IFieldType | undefined; + operator: OperatorOption; + value: string | string[] | undefined; + nested: 'parent' | 'child' | undefined; + entryIndex: number; + parent: { parent: BuilderEntryNested; parentIndex: number } | undefined; + correspondingKeywordField: IFieldType | undefined; +} + +export interface EmptyEntry { + id: string; + field: string | undefined; + operator: OperatorEnum; + type: OperatorTypeEnum.MATCH | OperatorTypeEnum.MATCH_ANY; + value: string | string[] | undefined; +} + +export interface EmptyListEntry { + id: string; + field: string | undefined; + operator: OperatorEnum; + type: OperatorTypeEnum.LIST; + list: { id: string | undefined; type: string | undefined }; +} + +export interface EmptyNestedEntry { + id: string; + field: string | undefined; + type: OperatorTypeEnum.NESTED; + entries: Array< + | (EntryMatch & { id?: string }) + | (EntryMatchAny & { id?: string }) + | (EntryExists & { id?: string }) + >; +} + +export type BuilderEntry = + | (Entry & { id?: string }) + | EmptyListEntry + | EmptyEntry + | BuilderEntryNested + | EmptyNestedEntry; + +export type BuilderEntryNested = Omit & { + id?: string; + entries: Array< + | (EntryMatch & { id?: string }) + | (EntryMatchAny & { id?: string }) + | (EntryExists & { id?: string }) + >; +}; + +export type ExceptionListItemBuilderSchema = Omit & { + entries: BuilderEntry[]; +}; + +export type CreateExceptionListItemBuilderSchema = Omit< + CreateExceptionListItemSchema, + 'meta' | 'entries' +> & { + meta: { temporaryUuid: string }; + entries: BuilderEntry[]; +}; + +export type ExceptionsBuilderExceptionItem = + | ExceptionListItemBuilderSchema + | CreateExceptionListItemBuilderSchema; diff --git a/x-pack/plugins/lists/public/shared_exports.ts b/x-pack/plugins/lists/public/shared_exports.ts index c9938897b5093..e2af409efa538 100644 --- a/x-pack/plugins/lists/public/shared_exports.ts +++ b/x-pack/plugins/lists/public/shared_exports.ts @@ -38,3 +38,4 @@ export { UseExceptionListItemsSuccess, UseExceptionListsSuccess, } from './exceptions/types'; +export { BuilderEntryItem } from './exceptions/components/builder/entry_renderer'; diff --git a/x-pack/plugins/lists/scripts/storybook.js b/x-pack/plugins/lists/scripts/storybook.js new file mode 100644 index 0000000000000..9a15d01b66af1 --- /dev/null +++ b/x-pack/plugins/lists/scripts/storybook.js @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { join } from 'path'; + +// eslint-disable-next-line +require('@kbn/storybook').runStorybookCli({ + name: 'lists', + storyGlobs: [join(__dirname, '..', 'public', '**', '*.stories.tsx')], +}); diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_modal.spec.ts b/x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_modal.spec.ts index 2e0599dfcae21..dee921b0c668a 100644 --- a/x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_modal.spec.ts +++ b/x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_modal.spec.ts @@ -133,7 +133,7 @@ describe('Exceptions modal', () => { closeExceptionBuilderModal(); }); - it.skip('Does not overwrite values of nested entry items', () => { + it('Does not overwrite values of nested entry items', () => { openExceptionModalFromRuleSettings(); cy.get(LOADING_SPINNER).should('not.exist'); @@ -144,13 +144,14 @@ describe('Exceptions modal', () => { // exception item 2 with nested field cy.get(ADD_OR_BTN).click(); - addExceptionEntryFieldValueOfItemX('c', 1, 0); + addExceptionEntryFieldValueOfItemX('agent.name', 1, 0); cy.get(ADD_NESTED_BTN).click(); addExceptionEntryFieldValueOfItemX('user.id{downarrow}{enter}', 1, 1); cy.get(ADD_AND_BTN).click(); addExceptionEntryFieldValueOfItemX('last{downarrow}{enter}', 1, 3); // This button will now read `Add non-nested button` - cy.get(ADD_NESTED_BTN).click(); + cy.get(ADD_NESTED_BTN).scrollIntoView(); + cy.get(ADD_NESTED_BTN).focus().click(); addExceptionEntryFieldValueOfItemX('@timestamp', 1, 4); // should have only deleted `user.id` @@ -161,7 +162,11 @@ describe('Exceptions modal', () => { .eq(0) .should('have.text', 'agent.name'); cy.get(EXCEPTION_ITEM_CONTAINER).eq(0).find(FIELD_INPUT).eq(1).should('have.text', 'b'); - cy.get(EXCEPTION_ITEM_CONTAINER).eq(1).find(FIELD_INPUT).eq(0).should('have.text', 'c'); + cy.get(EXCEPTION_ITEM_CONTAINER) + .eq(1) + .find(FIELD_INPUT) + .eq(0) + .should('have.text', 'agent.name'); cy.get(EXCEPTION_ITEM_CONTAINER).eq(1).find(FIELD_INPUT).eq(1).should('have.text', 'user'); cy.get(EXCEPTION_ITEM_CONTAINER).eq(1).find(FIELD_INPUT).eq(2).should('have.text', 'last'); cy.get(EXCEPTION_ITEM_CONTAINER) @@ -178,7 +183,11 @@ describe('Exceptions modal', () => { .eq(0) .should('have.text', 'agent.name'); cy.get(EXCEPTION_ITEM_CONTAINER).eq(0).find(FIELD_INPUT).eq(1).should('have.text', 'b'); - cy.get(EXCEPTION_ITEM_CONTAINER).eq(1).find(FIELD_INPUT).eq(0).should('have.text', 'c'); + cy.get(EXCEPTION_ITEM_CONTAINER) + .eq(1) + .find(FIELD_INPUT) + .eq(0) + .should('have.text', 'agent.name'); cy.get(EXCEPTION_ITEM_CONTAINER) .eq(1) .find(FIELD_INPUT) diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.test.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.test.tsx index cbeb987f49b7b..5088dabd41f66 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.test.tsx @@ -55,7 +55,6 @@ describe('BuilderExceptionListItemComponent', () => { { { { { const wrapper = mount( { const wrapper = mount( { const wrapper = mount( { const wrapper = mount( { const wrapper = mount( ( ({ exceptionItem, - exceptionId, exceptionItemIndex, indexPattern, isOnlyItem, @@ -63,6 +62,7 @@ export const BuilderExceptionListItemComponent = React.memo { + const { http, data } = useKibana().services; const handleEntryChange = useCallback( (entry: BuilderEntry, entryIndex: number): void => { const updatedEntries: BuilderEntry[] = [ @@ -119,6 +119,9 @@ export const BuilderExceptionListItemComponent = React.memo} ({ @@ -86,46 +59,6 @@ const getMockIndexPattern = (): IIndexPattern => ({ fields, }); -const getMockBuilderEntry = (): FormattedBuilderEntry => ({ - id: '123', - field: getField('ip'), - operator: isOperator, - value: 'some value', - nested: undefined, - parent: undefined, - entryIndex: 0, - correspondingKeywordField: undefined, -}); - -const getMockNestedBuilderEntry = (): FormattedBuilderEntry => ({ - id: '123', - field: getField('nestedField.child'), - operator: isOperator, - value: 'some value', - nested: 'child', - parent: { - parent: { - ...getEntryNestedWithIdMock(), - field: 'nestedField', - entries: [{ ...getEntryMatchWithIdMock(), field: 'child' }], - }, - parentIndex: 0, - }, - entryIndex: 0, - correspondingKeywordField: undefined, -}); - -const getMockNestedParentBuilderEntry = (): FormattedBuilderEntry => ({ - id: '123', - field: { ...getField('nestedField.child'), name: 'nestedField', esTypes: ['nested'] }, - operator: isOperator, - value: undefined, - nested: 'parent', - parent: undefined, - entryIndex: 0, - correspondingKeywordField: undefined, -}); - const mockEndpointFields = [ { name: 'file.path.caseless', @@ -154,6 +87,24 @@ export const getEndpointField = (name: string) => mockEndpointFields.find((field) => field.name === name) as IFieldType; describe('Exception builder helpers', () => { + describe('#filterIndexPatterns', () => { + test('it returns index patterns without filtering if list type is "detection"', () => { + const mockIndexPatterns = getMockIndexPattern(); + const output = filterIndexPatterns(mockIndexPatterns, 'detection'); + + expect(output).toEqual(mockIndexPatterns); + }); + + test('it returns filtered index patterns if list type is "endpoint"', () => { + const mockIndexPatterns = { + ...getMockIndexPattern(), + fields: [...fields, ...mockEndpointFields], + }; + const output = filterIndexPatterns(mockIndexPatterns, 'endpoint'); + + expect(output).toEqual({ ...getMockIndexPattern(), fields: [...mockEndpointFields] }); + }); + }); describe('#getCorrespondingKeywordField', () => { test('it returns matching keyword field if "selectedFieldIsTextType" is true and keyword field exists', () => { const output = getCorrespondingKeywordField({ @@ -192,183 +143,6 @@ describe('Exception builder helpers', () => { }); }); - describe('#getFilteredIndexPatterns', () => { - describe('list type detections', () => { - test('it returns nested fields that match parent value when "item.nested" is "child"', () => { - const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); - const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'detection'); - const expected: IIndexPattern = { - fields: [{ ...getField('nestedField.child'), name: 'child' }], - id: '1234', - title: 'logstash-*', - }; - expect(output).toEqual(expected); - }); - - test('it returns only parent nested field when "item.nested" is "parent" and nested parent field is not undefined', () => { - const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - const payloadItem: FormattedBuilderEntry = getMockNestedParentBuilderEntry(); - const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'detection'); - const expected: IIndexPattern = { - fields: [{ ...getField('nestedField.child'), name: 'nestedField', esTypes: ['nested'] }], - id: '1234', - title: 'logstash-*', - }; - expect(output).toEqual(expected); - }); - - test('it returns only nested fields when "item.nested" is "parent" and nested parent field is undefined', () => { - const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - const payloadItem: FormattedBuilderEntry = { - ...getMockNestedParentBuilderEntry(), - field: undefined, - }; - const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'detection'); - const expected: IIndexPattern = { - fields: [ - { ...getField('nestedField.child') }, - { ...getField('nestedField.nestedChild.doublyNestedChild') }, - ], - id: '1234', - title: 'logstash-*', - }; - expect(output).toEqual(expected); - }); - - test('it returns all fields unfiletered if "item.nested" is not "child" or "parent"', () => { - const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'detection'); - const expected: IIndexPattern = { - fields: [...fields], - id: '1234', - title: 'logstash-*', - }; - expect(output).toEqual(expected); - }); - }); - - describe('list type endpoint', () => { - let payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - - beforeAll(() => { - payloadIndexPattern = { - ...payloadIndexPattern, - fields: [...payloadIndexPattern.fields, ...mockEndpointFields], - }; - }); - - test('it returns nested fields that match parent value when "item.nested" is "child"', () => { - const payloadItem: FormattedBuilderEntry = { - id: '123', - field: getEndpointField('file.Ext.code_signature.status'), - operator: isOperator, - value: 'some value', - nested: 'child', - parent: { - parent: { - ...getEntryNestedWithIdMock(), - field: 'file.Ext.code_signature', - entries: [{ ...getEntryMatchWithIdMock(), field: 'child' }], - }, - parentIndex: 0, - }, - entryIndex: 0, - correspondingKeywordField: undefined, - }; - const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'endpoint'); - const expected: IIndexPattern = { - fields: [{ ...getEndpointField('file.Ext.code_signature.status'), name: 'status' }], - id: '1234', - title: 'logstash-*', - }; - expect(output).toEqual(expected); - }); - - test('it returns only parent nested field when "item.nested" is "parent" and nested parent field is not undefined', () => { - const payloadItem: FormattedBuilderEntry = { - ...getMockNestedParentBuilderEntry(), - field: { - ...getEndpointField('file.Ext.code_signature.status'), - name: 'file.Ext.code_signature', - esTypes: ['nested'], - }, - }; - const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'endpoint'); - const expected: IIndexPattern = { - fields: [ - { - aggregatable: false, - count: 0, - esTypes: ['nested'], - name: 'file.Ext.code_signature', - readFromDocValues: false, - scripted: false, - searchable: true, - subType: { - nested: { - path: 'file.Ext.code_signature', - }, - }, - type: 'string', - }, - ], - id: '1234', - title: 'logstash-*', - }; - expect(output).toEqual(expected); - }); - - test('it returns only nested fields when "item.nested" is "parent" and nested parent field is undefined', () => { - const payloadItem: FormattedBuilderEntry = { - ...getMockNestedParentBuilderEntry(), - field: undefined, - }; - const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'endpoint'); - const expected: IIndexPattern = { - fields: [getEndpointField('file.Ext.code_signature.status')], - id: '1234', - title: 'logstash-*', - }; - expect(output).toEqual(expected); - }); - - test('it returns all fields that matched those in "exceptionable_fields.json" with no further filtering if "item.nested" is not "child" or "parent"', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const output = getFilteredIndexPatterns(payloadIndexPattern, payloadItem, 'endpoint'); - const expected: IIndexPattern = { - fields: [ - { - aggregatable: false, - count: 0, - esTypes: ['keyword'], - name: 'file.path.caseless', - readFromDocValues: false, - scripted: false, - searchable: true, - type: 'string', - }, - { - name: 'file.Ext.code_signature.status', - type: 'string', - esTypes: ['text'], - count: 0, - scripted: false, - searchable: true, - aggregatable: false, - readFromDocValues: false, - subType: { nested: { path: 'file.Ext.code_signature' } }, - }, - ], - id: '1234', - title: 'logstash-*', - }; - expect(output).toEqual(expected); - }); - }); - }); - describe('#getFormattedBuilderEntry', () => { test('it returns entry with a value for "correspondingKeywordField" when "item.field" is of type "text" and matching keyword field exists', () => { const payloadIndexPattern: IIndexPattern = { @@ -748,660 +522,4 @@ describe('Exception builder helpers', () => { expect(output).toEqual(expected); }); }); - - describe('#getEntryFromOperator', () => { - test('it returns current value when switching from "is" to "is not"', () => { - const payloadOperator: OperatorOption = isNotOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - value: 'I should stay the same', - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryMatch & { id?: string } = { - id: '123', - field: 'ip', - operator: 'excluded', - type: OperatorTypeEnum.MATCH, - value: 'I should stay the same', - }; - expect(output).toEqual(expected); - }); - - test('it returns current value when switching from "is not" to "is"', () => { - const payloadOperator: OperatorOption = isOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isNotOperator, - value: 'I should stay the same', - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryMatch & { id?: string } = { - id: '123', - field: 'ip', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH, - value: 'I should stay the same', - }; - expect(output).toEqual(expected); - }); - - test('it returns empty value when switching operator types to "match"', () => { - const payloadOperator: OperatorOption = isOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isNotOneOfOperator, - value: ['I should stay the same'], - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryMatch & { id?: string } = { - id: '123', - field: 'ip', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH, - value: '', - }; - expect(output).toEqual(expected); - }); - - test('it returns current value when switching from "is one of" to "is not one of"', () => { - const payloadOperator: OperatorOption = isNotOneOfOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isOneOfOperator, - value: ['I should stay the same'], - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryMatchAny & { id?: string } = { - id: '123', - field: 'ip', - operator: 'excluded', - type: OperatorTypeEnum.MATCH_ANY, - value: ['I should stay the same'], - }; - expect(output).toEqual(expected); - }); - - test('it returns current value when switching from "is not one of" to "is one of"', () => { - const payloadOperator: OperatorOption = isOneOfOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isNotOneOfOperator, - value: ['I should stay the same'], - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryMatchAny & { id?: string } = { - id: '123', - field: 'ip', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH_ANY, - value: ['I should stay the same'], - }; - expect(output).toEqual(expected); - }); - - test('it returns empty value when switching operator types to "match_any"', () => { - const payloadOperator: OperatorOption = isOneOfOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isOperator, - value: 'I should stay the same', - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryMatchAny & { id?: string } = { - id: '123', - field: 'ip', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH_ANY, - value: [], - }; - expect(output).toEqual(expected); - }); - - test('it returns current value when switching from "exists" to "does not exist"', () => { - const payloadOperator: OperatorOption = doesNotExistOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: existsOperator, - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryExists & { id?: string } = { - id: '123', - field: 'ip', - operator: 'excluded', - type: 'exists', - }; - expect(output).toEqual(expected); - }); - - test('it returns current value when switching from "does not exist" to "exists"', () => { - const payloadOperator: OperatorOption = existsOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: doesNotExistOperator, - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryExists & { id?: string } = { - id: '123', - field: 'ip', - operator: OperatorEnum.INCLUDED, - type: 'exists', - }; - expect(output).toEqual(expected); - }); - - test('it returns empty value when switching operator types to "exists"', () => { - const payloadOperator: OperatorOption = existsOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isOperator, - value: 'I should stay the same', - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryExists & { id?: string } = { - id: '123', - field: 'ip', - operator: OperatorEnum.INCLUDED, - type: 'exists', - }; - expect(output).toEqual(expected); - }); - - test('it returns empty value when switching operator types to "list"', () => { - const payloadOperator: OperatorOption = isInListOperator; - const payloadEntry: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isOperator, - value: 'I should stay the same', - }; - const output = getEntryFromOperator(payloadOperator, payloadEntry); - const expected: EntryList & { id?: string } = { - id: '123', - field: 'ip', - operator: OperatorEnum.INCLUDED, - type: 'list', - list: { id: '', type: 'ip' }, - }; - expect(output).toEqual(expected); - }); - }); - - describe('#getOperatorOptions', () => { - test('it returns "isOperator" when field type is nested but field itself has not yet been selected', () => { - const payloadItem: FormattedBuilderEntry = getMockNestedParentBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'endpoint', false); - const expected: OperatorOption[] = [isOperator]; - expect(output).toEqual(expected); - }); - - test('it returns "isOperator" if no field selected', () => { - const payloadItem: FormattedBuilderEntry = { ...getMockBuilderEntry(), field: undefined }; - const output = getOperatorOptions(payloadItem, 'endpoint', false); - const expected: OperatorOption[] = [isOperator]; - expect(output).toEqual(expected); - }); - - test('it returns "isOperator" and "isOneOfOperator" if item is nested and "listType" is "endpoint"', () => { - const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'endpoint', false); - const expected: OperatorOption[] = [isOperator, isOneOfOperator]; - expect(output).toEqual(expected); - }); - - test('it returns "isOperator" and "isOneOfOperator" if "listType" is "endpoint"', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'endpoint', false); - const expected: OperatorOption[] = [isOperator, isOneOfOperator]; - expect(output).toEqual(expected); - }); - - test('it returns "isOperator" if "listType" is "endpoint" and field type is boolean', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'endpoint', true); - const expected: OperatorOption[] = [isOperator]; - expect(output).toEqual(expected); - }); - - test('it returns "isOperator", "isOneOfOperator", and "existsOperator" if item is nested and "listType" is "detection"', () => { - const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'detection', false); - const expected: OperatorOption[] = [isOperator, isOneOfOperator, existsOperator]; - expect(output).toEqual(expected); - }); - - test('it returns "isOperator" and "existsOperator" if item is nested, "listType" is "detection", and field type is boolean', () => { - const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'detection', true); - const expected: OperatorOption[] = [isOperator, existsOperator]; - expect(output).toEqual(expected); - }); - - test('it returns all operator options if "listType" is "detection"', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'detection', false); - const expected: OperatorOption[] = EXCEPTION_OPERATORS; - expect(output).toEqual(expected); - }); - - test('it returns "isOperator", "isNotOperator", "doesNotExistOperator" and "existsOperator" if field type is boolean', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'detection', true); - const expected: OperatorOption[] = [ - isOperator, - isNotOperator, - existsOperator, - doesNotExistOperator, - ]; - expect(output).toEqual(expected); - }); - - test('it returns list operators if specified to', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'detection', false, true); - expect(output).toEqual(EXCEPTION_OPERATORS); - }); - - test('it does not return list operators if specified not to', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const output = getOperatorOptions(payloadItem, 'detection', false, false); - expect(output).toEqual(EXCEPTION_OPERATORS_SANS_LISTS); - }); - }); - - describe('#getEntryOnFieldChange', () => { - test('it returns nested entry with single new subentry when "item.nested" is "parent"', () => { - const payloadItem: FormattedBuilderEntry = getMockNestedParentBuilderEntry(); - const payloadIFieldType: IFieldType = getField('nestedField.child'); - const output = getEntryOnFieldChange(payloadItem, payloadIFieldType); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - index: 0, - updatedEntry: { - id: '123', - entries: [ - { - id: '123', - field: 'child', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH, - value: '', - }, - ], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - }; - expect(output).toEqual(expected); - }); - - test('it returns nested entry with newly selected field value when "item.nested" is "child"', () => { - const payloadItem: FormattedBuilderEntry = { - ...getMockNestedBuilderEntry(), - parent: { - parent: { - ...getEntryNestedWithIdMock(), - field: 'nestedField', - entries: [ - { ...getEntryMatchWithIdMock(), field: 'child' }, - getEntryMatchAnyWithIdMock(), - ], - }, - parentIndex: 0, - }, - }; - const payloadIFieldType: IFieldType = getField('nestedField.child'); - const output = getEntryOnFieldChange(payloadItem, payloadIFieldType); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - index: 0, - updatedEntry: { - id: '123', - entries: [ - { - id: '123', - field: 'child', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH, - value: '', - }, - getEntryMatchAnyWithIdMock(), - ], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - }; - expect(output).toEqual(expected); - }); - - test('it returns field of type "match" with updated field if not a nested entry', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const payloadIFieldType: IFieldType = getField('ip'); - const output = getEntryOnFieldChange(payloadItem, payloadIFieldType); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - index: 0, - updatedEntry: { - id: '123', - field: 'ip', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH, - value: '', - }, - }; - expect(output).toEqual(expected); - }); - }); - - describe('#getEntryOnOperatorChange', () => { - test('it returns updated subentry preserving its value when entry is not switching operator types', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const payloadOperator: OperatorOption = isNotOperator; - const output = getEntryOnOperatorChange(payloadItem, payloadOperator); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - updatedEntry: { - id: '123', - field: 'ip', - type: OperatorTypeEnum.MATCH, - value: 'some value', - operator: 'excluded', - }, - index: 0, - }; - expect(output).toEqual(expected); - }); - - test('it returns updated subentry resetting its value when entry is switching operator types', () => { - const payloadItem: FormattedBuilderEntry = getMockBuilderEntry(); - const payloadOperator: OperatorOption = isOneOfOperator; - const output = getEntryOnOperatorChange(payloadItem, payloadOperator); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - updatedEntry: { - id: '123', - field: 'ip', - type: OperatorTypeEnum.MATCH_ANY, - value: [], - operator: OperatorEnum.INCLUDED, - }, - index: 0, - }; - expect(output).toEqual(expected); - }); - - test('it returns updated subentry preserving its value when entry is nested and not switching operator types', () => { - const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); - const payloadOperator: OperatorOption = isNotOperator; - const output = getEntryOnOperatorChange(payloadItem, payloadOperator); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - index: 0, - updatedEntry: { - id: '123', - entries: [ - { - id: '123', - field: 'child', - operator: OperatorEnum.EXCLUDED, - type: OperatorTypeEnum.MATCH, - value: 'some value', - }, - ], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - }; - expect(output).toEqual(expected); - }); - - test('it returns updated subentry resetting its value when entry is nested and switching operator types', () => { - const payloadItem: FormattedBuilderEntry = getMockNestedBuilderEntry(); - const payloadOperator: OperatorOption = isOneOfOperator; - const output = getEntryOnOperatorChange(payloadItem, payloadOperator); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - index: 0, - updatedEntry: { - id: '123', - entries: [ - { - id: '123', - field: 'child', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH_ANY, - value: [], - }, - ], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - }; - expect(output).toEqual(expected); - }); - }); - - describe('#getEntryOnMatchChange', () => { - test('it returns entry with updated value', () => { - const payload: FormattedBuilderEntry = getMockBuilderEntry(); - const output = getEntryOnMatchChange(payload, 'jibber jabber'); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - updatedEntry: { - id: '123', - field: 'ip', - type: OperatorTypeEnum.MATCH, - value: 'jibber jabber', - operator: OperatorEnum.INCLUDED, - }, - index: 0, - }; - expect(output).toEqual(expected); - }); - - test('it returns entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { - const payload: FormattedBuilderEntry = { ...getMockBuilderEntry(), field: undefined }; - const output = getEntryOnMatchChange(payload, 'jibber jabber'); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - updatedEntry: { - id: '123', - field: '', - type: OperatorTypeEnum.MATCH, - value: 'jibber jabber', - operator: OperatorEnum.INCLUDED, - }, - index: 0, - }; - expect(output).toEqual(expected); - }); - - test('it returns nested entry with updated value', () => { - const payload: FormattedBuilderEntry = getMockNestedBuilderEntry(); - const output = getEntryOnMatchChange(payload, 'jibber jabber'); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - index: 0, - updatedEntry: { - id: '123', - entries: [ - { - id: '123', - field: 'child', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH, - value: 'jibber jabber', - }, - ], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - }; - expect(output).toEqual(expected); - }); - - test('it returns nested entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { - const payload: FormattedBuilderEntry = { ...getMockNestedBuilderEntry(), field: undefined }; - const output = getEntryOnMatchChange(payload, 'jibber jabber'); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - index: 0, - updatedEntry: { - id: '123', - entries: [ - { - id: '123', - field: '', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH, - value: 'jibber jabber', - }, - ], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - }; - expect(output).toEqual(expected); - }); - }); - - describe('#getEntryOnMatchAnyChange', () => { - test('it returns entry with updated value', () => { - const payload: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isOneOfOperator, - value: ['some value'], - }; - const output = getEntryOnMatchAnyChange(payload, ['jibber jabber']); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - updatedEntry: { - id: '123', - field: 'ip', - type: OperatorTypeEnum.MATCH_ANY, - value: ['jibber jabber'], - operator: OperatorEnum.INCLUDED, - }, - index: 0, - }; - expect(output).toEqual(expected); - }); - - test('it returns entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { - const payload: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isOneOfOperator, - value: ['some value'], - field: undefined, - }; - const output = getEntryOnMatchAnyChange(payload, ['jibber jabber']); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - updatedEntry: { - id: '123', - field: '', - type: OperatorTypeEnum.MATCH_ANY, - value: ['jibber jabber'], - operator: OperatorEnum.INCLUDED, - }, - index: 0, - }; - expect(output).toEqual(expected); - }); - - test('it returns nested entry with updated value', () => { - const payload: FormattedBuilderEntry = { - ...getMockNestedBuilderEntry(), - parent: { - parent: { - ...getEntryNestedWithIdMock(), - field: 'nestedField', - entries: [{ ...getEntryMatchAnyWithIdMock(), field: 'child' }], - }, - parentIndex: 0, - }, - }; - const output = getEntryOnMatchAnyChange(payload, ['jibber jabber']); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - index: 0, - updatedEntry: { - id: '123', - entries: [ - { - id: '123', - field: 'child', - type: OperatorTypeEnum.MATCH_ANY, - value: ['jibber jabber'], - operator: OperatorEnum.INCLUDED, - }, - ], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - }; - expect(output).toEqual(expected); - }); - - test('it returns nested entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { - const payload: FormattedBuilderEntry = { - ...getMockNestedBuilderEntry(), - field: undefined, - parent: { - parent: { - ...getEntryNestedWithIdMock(), - field: 'nestedField', - entries: [{ ...getEntryMatchAnyWithIdMock(), field: 'child' }], - }, - parentIndex: 0, - }, - }; - const output = getEntryOnMatchAnyChange(payload, ['jibber jabber']); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - index: 0, - updatedEntry: { - id: '123', - entries: [ - { - id: '123', - field: '', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH_ANY, - value: ['jibber jabber'], - }, - ], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - }; - expect(output).toEqual(expected); - }); - }); - - describe('#getEntryOnListChange', () => { - test('it returns entry with updated value', () => { - const payload: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isOneOfOperator, - value: '1234', - }; - const output = getEntryOnListChange(payload, getListResponseMock()); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - updatedEntry: { - id: '123', - field: 'ip', - type: 'list', - list: { id: 'some-list-id', type: 'ip' }, - operator: OperatorEnum.INCLUDED, - }, - index: 0, - }; - expect(output).toEqual(expected); - }); - - test('it returns entry with updated value and "field" of empty string if entry does not have a "field" defined', () => { - const payload: FormattedBuilderEntry = { - ...getMockBuilderEntry(), - operator: isOneOfOperator, - value: '1234', - field: undefined, - }; - const output = getEntryOnListChange(payload, getListResponseMock()); - const expected: { updatedEntry: BuilderEntry & { id?: string }; index: number } = { - updatedEntry: { - id: '123', - field: '', - type: 'list', - list: { id: 'some-list-id', type: 'ip' }, - operator: OperatorEnum.INCLUDED, - }, - index: 0, - }; - expect(output).toEqual(expected); - }); - }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/helpers.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/helpers.tsx index 8afdbce68c69a..5b49ecbe761a3 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/helpers.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/helpers.tsx @@ -7,91 +7,34 @@ import uuid from 'uuid'; -import { addIdToItem } from '../../../../../common/add_remove_id_to_item'; import { IIndexPattern, IFieldType } from '../../../../../../../../src/plugins/data/common'; import { - Entry, OperatorTypeEnum, EntryNested, ExceptionListType, - entriesList, - ListSchema, OperatorEnum, } from '../../../../lists_plugin_deps'; +import { isOperator } from '../../autocomplete/operators'; import { - isOperator, - existsOperator, - isOneOfOperator, - EXCEPTION_OPERATORS, - EXCEPTION_OPERATORS_SANS_LISTS, - isNotOperator, - doesNotExistOperator, -} from '../../autocomplete/operators'; -import { OperatorOption } from '../../autocomplete/types'; -import { - BuilderEntry, FormattedBuilderEntry, ExceptionsBuilderExceptionItem, EmptyEntry, EmptyNestedEntry, + BuilderEntry, } from '../types'; import { getEntryValue, getExceptionOperatorSelect } from '../helpers'; import exceptionableFields from '../exceptionable_fields.json'; -/** - * Returns filtered index patterns based on the field - if a user selects to - * add nested entry, should only show nested fields, if item is the parent - * field of a nested entry, we only display the parent field - * - * @param patterns IIndexPattern containing available fields on rule index - * @param item exception item entry - * set to add a nested field - */ -export const getFilteredIndexPatterns = ( +export const filterIndexPatterns = ( patterns: IIndexPattern, - item: FormattedBuilderEntry, type: ExceptionListType ): IIndexPattern => { - const indexPatterns = { - ...patterns, - fields: patterns.fields.filter(({ name }) => - type === 'endpoint' ? exceptionableFields.includes(name) : true - ), - }; - - if (item.nested === 'child' && item.parent != null) { - // when user has selected a nested entry, only fields with the common parent are shown - return { - ...indexPatterns, - fields: indexPatterns.fields - .filter((indexField) => { - const fieldHasCommonParentPath = - indexField.subType != null && - indexField.subType.nested != null && - item.parent != null && - indexField.subType.nested.path === item.parent.parent.field; - - return fieldHasCommonParentPath; - }) - .map((f) => { - const fieldNameWithoutParentPath = f.name.split('.').slice(-1)[0]; - return { ...f, name: fieldNameWithoutParentPath }; - }), - }; - } else if (item.nested === 'parent' && item.field != null) { - // when user has selected a nested entry, right above it we show the common parent - return { ...indexPatterns, fields: [item.field] }; - } else if (item.nested === 'parent' && item.field == null) { - // when user selects to add a nested entry, only nested fields are shown as options - return { - ...indexPatterns, - fields: indexPatterns.fields.filter( - (field) => field.subType != null && field.subType.nested != null - ), - }; - } else { - return indexPatterns; - } + return type === 'endpoint' + ? { + ...patterns, + fields: patterns.fields.filter(({ name }) => exceptionableFields.includes(name)), + } + : patterns; }; /** @@ -310,315 +253,6 @@ export const getUpdatedEntriesOnDelete = ( } }; -/** - * On operator change, determines whether value needs to be cleared or not - * - * @param field - * @param selectedOperator - * @param currentEntry - * - */ -export const getEntryFromOperator = ( - selectedOperator: OperatorOption, - currentEntry: FormattedBuilderEntry -): Entry & { id?: string } => { - const isSameOperatorType = currentEntry.operator.type === selectedOperator.type; - const fieldValue = currentEntry.field != null ? currentEntry.field.name : ''; - switch (selectedOperator.type) { - case 'match': - return { - id: currentEntry.id, - field: fieldValue, - type: OperatorTypeEnum.MATCH, - operator: selectedOperator.operator, - value: - isSameOperatorType && typeof currentEntry.value === 'string' ? currentEntry.value : '', - }; - case 'match_any': - return { - id: currentEntry.id, - field: fieldValue, - type: OperatorTypeEnum.MATCH_ANY, - operator: selectedOperator.operator, - value: isSameOperatorType && Array.isArray(currentEntry.value) ? currentEntry.value : [], - }; - case 'list': - return { - id: currentEntry.id, - field: fieldValue, - type: OperatorTypeEnum.LIST, - operator: selectedOperator.operator, - list: { id: '', type: 'ip' }, - }; - default: - return { - id: currentEntry.id, - field: fieldValue, - type: OperatorTypeEnum.EXISTS, - operator: selectedOperator.operator, - }; - } -}; - -/** - * Determines which operators to make available - * - * @param item - * @param listType - * @param isBoolean - * @param includeValueListOperators whether or not to include the 'is in list' and 'is not in list' operators - */ -export const getOperatorOptions = ( - item: FormattedBuilderEntry, - listType: ExceptionListType, - isBoolean: boolean, - includeValueListOperators = true -): OperatorOption[] => { - if (item.nested === 'parent' || item.field == null) { - return [isOperator]; - } else if ((item.nested != null && listType === 'endpoint') || listType === 'endpoint') { - return isBoolean ? [isOperator] : [isOperator, isOneOfOperator]; - } else if (item.nested != null && listType === 'detection') { - return isBoolean ? [isOperator, existsOperator] : [isOperator, isOneOfOperator, existsOperator]; - } else { - return isBoolean - ? [isOperator, isNotOperator, existsOperator, doesNotExistOperator] - : includeValueListOperators - ? EXCEPTION_OPERATORS - : EXCEPTION_OPERATORS_SANS_LISTS; - } -}; - -/** - * Determines proper entry update when user selects new field - * - * @param item - current exception item entry values - * @param newField - newly selected field - * - */ -export const getEntryOnFieldChange = ( - item: FormattedBuilderEntry, - newField: IFieldType -): { updatedEntry: BuilderEntry; index: number } => { - const { parent, entryIndex, nested } = item; - const newChildFieldValue = newField != null ? newField.name.split('.').slice(-1)[0] : ''; - - if (nested === 'parent') { - // For nested entries, when user first selects to add a nested - // entry, they first see a row similar to what is shown for when - // a user selects "exists", as soon as they make a selection - // we can now identify the 'parent' and 'child' this is where - // we first convert the entry into type "nested" - const newParentFieldValue = - newField.subType != null && newField.subType.nested != null - ? newField.subType.nested.path - : ''; - - return { - updatedEntry: { - id: item.id, - field: newParentFieldValue, - type: OperatorTypeEnum.NESTED, - entries: [ - addIdToItem({ - field: newChildFieldValue ?? '', - type: OperatorTypeEnum.MATCH, - operator: isOperator.operator, - value: '', - }), - ], - }, - index: entryIndex, - }; - } else if (nested === 'child' && parent != null) { - return { - updatedEntry: { - ...parent.parent, - entries: [ - ...parent.parent.entries.slice(0, entryIndex), - { - id: item.id, - field: newChildFieldValue ?? '', - type: OperatorTypeEnum.MATCH, - operator: isOperator.operator, - value: '', - }, - ...parent.parent.entries.slice(entryIndex + 1), - ], - }, - index: parent.parentIndex, - }; - } else { - return { - updatedEntry: { - id: item.id, - field: newField != null ? newField.name : '', - type: OperatorTypeEnum.MATCH, - operator: isOperator.operator, - value: '', - }, - index: entryIndex, - }; - } -}; - -/** - * Determines proper entry update when user selects new operator - * - * @param item - current exception item entry values - * @param newOperator - newly selected operator - * - */ -export const getEntryOnOperatorChange = ( - item: FormattedBuilderEntry, - newOperator: OperatorOption -): { updatedEntry: BuilderEntry; index: number } => { - const { parent, entryIndex, field, nested } = item; - const newEntry = getEntryFromOperator(newOperator, item); - - if (!entriesList.is(newEntry) && nested != null && parent != null) { - return { - updatedEntry: { - ...parent.parent, - entries: [ - ...parent.parent.entries.slice(0, entryIndex), - { - ...newEntry, - field: field != null ? field.name.split('.').slice(-1)[0] : '', - }, - ...parent.parent.entries.slice(entryIndex + 1), - ], - }, - index: parent.parentIndex, - }; - } else { - return { updatedEntry: newEntry, index: entryIndex }; - } -}; - -/** - * Determines proper entry update when user updates value - * when operator is of type "match" - * - * @param item - current exception item entry values - * @param newField - newly entered value - * - */ -export const getEntryOnMatchChange = ( - item: FormattedBuilderEntry, - newField: string -): { updatedEntry: BuilderEntry; index: number } => { - const { nested, parent, entryIndex, field, operator } = item; - - if (nested != null && parent != null) { - const fieldName = field != null ? field.name.split('.').slice(-1)[0] : ''; - - return { - updatedEntry: { - ...parent.parent, - entries: [ - ...parent.parent.entries.slice(0, entryIndex), - { - id: item.id, - field: fieldName, - type: OperatorTypeEnum.MATCH, - operator: operator.operator, - value: newField, - }, - ...parent.parent.entries.slice(entryIndex + 1), - ], - }, - index: parent.parentIndex, - }; - } else { - return { - updatedEntry: { - id: item.id, - field: field != null ? field.name : '', - type: OperatorTypeEnum.MATCH, - operator: operator.operator, - value: newField, - }, - index: entryIndex, - }; - } -}; - -/** - * Determines proper entry update when user updates value - * when operator is of type "match_any" - * - * @param item - current exception item entry values - * @param newField - newly entered value - * - */ -export const getEntryOnMatchAnyChange = ( - item: FormattedBuilderEntry, - newField: string[] -): { updatedEntry: BuilderEntry; index: number } => { - const { nested, parent, entryIndex, field, operator } = item; - - if (nested != null && parent != null) { - const fieldName = field != null ? field.name.split('.').slice(-1)[0] : ''; - - return { - updatedEntry: { - ...parent.parent, - entries: [ - ...parent.parent.entries.slice(0, entryIndex), - { - id: item.id, - field: fieldName, - type: OperatorTypeEnum.MATCH_ANY, - operator: operator.operator, - value: newField, - }, - ...parent.parent.entries.slice(entryIndex + 1), - ], - }, - index: parent.parentIndex, - }; - } else { - return { - updatedEntry: { - id: item.id, - field: field != null ? field.name : '', - type: OperatorTypeEnum.MATCH_ANY, - operator: operator.operator, - value: newField, - }, - index: entryIndex, - }; - } -}; - -/** - * Determines proper entry update when user updates value - * when operator is of type "list" - * - * @param item - current exception item entry values - * @param newField - newly selected list - * - */ -export const getEntryOnListChange = ( - item: FormattedBuilderEntry, - newField: ListSchema -): { updatedEntry: BuilderEntry; index: number } => { - const { entryIndex, field, operator } = item; - const { id, type } = newField; - - return { - updatedEntry: { - id: item.id, - field: field != null ? field.name : '', - type: OperatorTypeEnum.LIST, - operator: operator.operator, - list: { id, type }, - }, - index: entryIndex, - }; -}; - export const getDefaultEmptyEntry = (): EmptyEntry => ({ id: uuid.v4(), field: '', diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/index.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/index.tsx index 3789d8e75fa2e..f601c9001e06b 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/index.tsx @@ -376,7 +376,6 @@ export const ExceptionBuilderComponent = ({ Date: Fri, 26 Mar 2021 16:17:12 -0400 Subject: [PATCH 26/55] [Security Solution][Endpoint][Admin] Match endpoint list host status with fleet agent status (#95243) --- .../common/endpoint/types/index.ts | 13 ++- .../store/mock_endpoint_result_list.ts | 4 +- .../pages/endpoint_hosts/store/selectors.ts | 2 +- .../view/details/endpoint_details.tsx | 110 ++++++++++-------- .../endpoint_hosts/view/host_constants.ts | 15 +-- .../pages/endpoint_hosts/view/index.test.tsx | 75 +++++++----- .../pages/endpoint_hosts/view/index.tsx | 41 ++++--- .../routes/metadata/enrichment.test.ts | 24 ++-- .../endpoint/routes/metadata/handlers.ts | 14 ++- .../server/endpoint/routes/metadata/index.ts | 7 +- .../endpoint/routes/metadata/metadata.test.ts | 16 +-- .../routes/metadata/metadata_v1.test.ts | 12 +- .../metadata/support/agent_status.test.ts | 6 +- .../routes/metadata/support/agent_status.ts | 7 +- .../apps/endpoint/endpoint_list.ts | 10 +- .../apis/metadata.ts | 4 +- .../apis/metadata_v1.ts | 4 +- 17 files changed, 210 insertions(+), 154 deletions(-) diff --git a/x-pack/plugins/security_solution/common/endpoint/types/index.ts b/x-pack/plugins/security_solution/common/endpoint/types/index.ts index 0b41dc5608fe9..bed9c2880440a 100644 --- a/x-pack/plugins/security_solution/common/endpoint/types/index.ts +++ b/x-pack/plugins/security_solution/common/endpoint/types/index.ts @@ -380,12 +380,12 @@ export enum HostStatus { * Default state of the host when no host information is present or host information cannot * be retrieved. e.g. API error */ - ERROR = 'error', + UNHEALTHY = 'unhealthy', /** * Host is online as indicated by its checkin status during the last checkin window */ - ONLINE = 'online', + HEALTHY = 'healthy', /** * Host is offline as indicated by its checkin status during the last checkin window @@ -393,9 +393,14 @@ export enum HostStatus { OFFLINE = 'offline', /** - * Host is unenrolling as indicated by its checkin status during the last checkin window + * Host is unenrolling, enrolling or updating as indicated by its checkin status during the last checkin window */ - UNENROLLING = 'unenrolling', + UPDATING = 'updating', + + /** + * Host is inactive as indicated by its checkin status during the last checkin window + */ + INACTIVE = 'inactive', } export enum MetadataQueryStrategyVersions { diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/mock_endpoint_result_list.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/mock_endpoint_result_list.ts index 404ee0cd4aa2c..40b843a676d9c 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/mock_endpoint_result_list.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/mock_endpoint_result_list.ts @@ -54,7 +54,7 @@ export const mockEndpointResultList: (options?: { for (let index = 0; index < actualCountToReturn; index++) { hosts.push({ metadata: generator.generateHostMetadata(), - host_status: HostStatus.ERROR, + host_status: HostStatus.UNHEALTHY, query_strategy_version: queryStrategyVersion, }); } @@ -74,7 +74,7 @@ export const mockEndpointResultList: (options?: { export const mockEndpointDetailsApiResult = (): HostInfo => { return { metadata: generator.generateHostMetadata(), - host_status: HostStatus.ERROR, + host_status: HostStatus.UNHEALTHY, query_strategy_version: MetadataQueryStrategyVersions.VERSION_2, }; }; diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts index 17ce24e7cda7f..eec4de6400145 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts @@ -231,7 +231,7 @@ export const showView: (state: EndpointState) => 'policy_response' | 'details' = export const hostStatusInfo: (state: Immutable) => HostStatus = createSelector( (state) => state.hostStatus, (hostStatus) => { - return hostStatus ? hostStatus : HostStatus.ERROR; + return hostStatus ? hostStatus : HostStatus.UNHEALTHY; } ); diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/endpoint_details.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/endpoint_details.tsx index eb3e534ba427f..c97e097ea9b72 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/endpoint_details.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/endpoint_details.tsx @@ -8,7 +8,6 @@ import styled from 'styled-components'; import { EuiDescriptionList, - EuiHealth, EuiHorizontalRule, EuiListGroup, EuiListGroupItem, @@ -17,6 +16,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiBadge, + EuiSpacer, } from '@elastic/eui'; import React, { memo, useMemo } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; @@ -26,11 +26,7 @@ import { HostInfo, HostMetadata, HostStatus } from '../../../../../../common/end import { useEndpointSelector, useAgentDetailsIngestUrl } from '../hooks'; import { useNavigateToAppEventHandler } from '../../../../../common/hooks/endpoint/use_navigate_to_app_event_handler'; import { policyResponseStatus, uiQueryParams } from '../../store/selectors'; -import { - POLICY_STATUS_TO_HEALTH_COLOR, - POLICY_STATUS_TO_BADGE_COLOR, - HOST_STATUS_TO_HEALTH_COLOR, -} from '../host_constants'; +import { POLICY_STATUS_TO_BADGE_COLOR, HOST_STATUS_TO_BADGE_COLOR } from '../host_constants'; import { FormattedDateAndTime } from '../../../../../common/components/endpoint/formatted_date_time'; import { useNavigateByRouterEventHandler } from '../../../../../common/hooks/endpoint/use_navigate_by_router_event_handler'; import { LinkToApp } from '../../../../../common/components/endpoint/link_to_app'; @@ -48,17 +44,6 @@ const HostIds = styled(EuiListGroupItem)` } `; -const LinkToExternalApp = styled.div` - margin-top: ${(props) => props.theme.eui.ruleMargins.marginMedium}; - .linkToAppIcon { - margin-right: ${(props) => props.theme.eui.ruleMargins.marginXSmall}; - vertical-align: top; - } - .linkToAppPopoutIcon { - margin-left: ${(props) => props.theme.eui.ruleMargins.marginXSmall}; - } -`; - const openReassignFlyoutSearch = '?openReassignFlyout=true'; export const EndpointDetails = memo( @@ -80,7 +65,7 @@ export const EndpointDetails = memo( const queryParams = useEndpointSelector(uiQueryParams); const policyStatus = useEndpointSelector( policyResponseStatus - ) as keyof typeof POLICY_STATUS_TO_HEALTH_COLOR; + ) as keyof typeof POLICY_STATUS_TO_BADGE_COLOR; const { formatUrl } = useFormatUrl(SecurityPageName.administration); const detailsResultsUpper = useMemo(() => { @@ -89,32 +74,37 @@ export const EndpointDetails = memo( title: i18n.translate('xpack.securitySolution.endpoint.details.os', { defaultMessage: 'OS', }), - description: details.host.os.full, + description: {details.host.os.full}, }, { title: i18n.translate('xpack.securitySolution.endpoint.details.agentStatus', { defaultMessage: 'Agent Status', }), description: ( - - + ), }, { title: i18n.translate('xpack.securitySolution.endpoint.details.lastSeen', { defaultMessage: 'Last Seen', }), - description: , + description: ( + + {' '} + + + ), }, ]; }, [details, hostStatus]); @@ -169,12 +159,14 @@ export const EndpointDetails = memo( description: ( - - {details.Endpoint.policy.applied.name} - + + + {details.Endpoint.policy.applied.name} + + {details.Endpoint.policy.applied.endpoint_policy_version && ( @@ -241,9 +233,11 @@ export const EndpointDetails = memo( }), description: ( - {details.host.ip.map((ip: string, index: number) => ( - - ))} + + {details.host.ip.map((ip: string, index: number) => ( + + ))} + ), }, @@ -251,13 +245,13 @@ export const EndpointDetails = memo( title: i18n.translate('xpack.securitySolution.endpoint.details.hostname', { defaultMessage: 'Hostname', }), - description: details.host.hostname, + description: {details.host.hostname}, }, { title: i18n.translate('xpack.securitySolution.endpoint.details.endpointVersion', { defaultMessage: 'Endpoint Version', }), - description: details.agent.version, + description: {details.agent.version}, }, ]; }, [details.agent.version, details.host.hostname, details.host.ip]); @@ -275,22 +269,36 @@ export const EndpointDetails = memo( listItems={detailsResultsPolicy} data-test-subj="endpointDetailsPolicyList" /> - - + + - - - - - + + + + + + + + + + + + + ({ - [HostStatus.ERROR]: 'danger', - [HostStatus.ONLINE]: 'success', - [HostStatus.OFFLINE]: 'subdued', - [HostStatus.UNENROLLING]: 'warning', + [HostStatus.HEALTHY]: 'secondary', + [HostStatus.UNHEALTHY]: 'warning', + [HostStatus.UPDATING]: 'primary', + [HostStatus.OFFLINE]: 'default', + [HostStatus.INACTIVE]: 'default', }); export const POLICY_STATUS_TO_HEALTH_COLOR = Object.freeze< { [key in keyof typeof HostPolicyResponseActionStatus]: string } >({ - success: 'success', + success: 'secondary', warning: 'warning', failure: 'danger', - unsupported: 'subdued', + unsupported: 'default', }); export const POLICY_STATUS_TO_BADGE_COLOR = Object.freeze< diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.test.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.test.tsx index 79e91fdeb813a..17ebff603ccfb 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.test.tsx @@ -25,7 +25,7 @@ import { MetadataQueryStrategyVersions, } from '../../../../../common/endpoint/types'; import { EndpointDocGenerator } from '../../../../../common/endpoint/generate_data'; -import { POLICY_STATUS_TO_HEALTH_COLOR, POLICY_STATUS_TO_TEXT } from './host_constants'; +import { POLICY_STATUS_TO_TEXT } from './host_constants'; import { mockPolicyResultList } from '../../policy/store/test_mock_utils'; // not sure why this can't be imported from '../../../../common/mock/formatted_relative'; @@ -232,9 +232,10 @@ describe('when on the list page', () => { > = []; let firstPolicyID: string; let firstPolicyRev: number; + beforeEach(() => { reactTestingLibrary.act(() => { - const mockedEndpointData = mockEndpointResultList({ total: 4 }); + const mockedEndpointData = mockEndpointResultList({ total: 5 }); const hostListData = mockedEndpointData.hosts; const queryStrategyVersion = mockedEndpointData.query_strategy_version; @@ -259,9 +260,9 @@ describe('when on the list page', () => { }; [ - { status: HostStatus.ERROR, policy: (p: Policy) => p }, + { status: HostStatus.UNHEALTHY, policy: (p: Policy) => p }, { - status: HostStatus.ONLINE, + status: HostStatus.HEALTHY, policy: (p: Policy) => { p.endpoint.id = 'xyz'; // represents change in endpoint policy assignment p.endpoint.revision = 1; @@ -276,7 +277,14 @@ describe('when on the list page', () => { }, }, { - status: HostStatus.UNENROLLING, + status: HostStatus.UPDATING, + policy: (p: Policy) => { + p.agent.configured.revision += 1; // agent policy change, not propagated to agent yet + return p; + }, + }, + { + status: HostStatus.INACTIVE, policy: (p: Policy) => { p.agent.configured.revision += 1; // agent policy change, not propagated to agent yet return p; @@ -317,7 +325,7 @@ describe('when on the list page', () => { await middlewareSpy.waitForAction('serverReturnedEndpointList'); }); const rows = await renderResult.findAllByRole('row'); - expect(rows).toHaveLength(5); + expect(rows).toHaveLength(6); }); it('should show total', async () => { const renderResult = render(); @@ -325,7 +333,7 @@ describe('when on the list page', () => { await middlewareSpy.waitForAction('serverReturnedEndpointList'); }); const total = await renderResult.findByTestId('endpointListTableTotal'); - expect(total.textContent).toEqual('4 Hosts'); + expect(total.textContent).toEqual('5 Hosts'); }); it('should display correct status', async () => { const renderResult = render(); @@ -334,23 +342,30 @@ describe('when on the list page', () => { }); const hostStatuses = await renderResult.findAllByTestId('rowHostStatus'); - expect(hostStatuses[0].textContent).toEqual('Error'); - expect(hostStatuses[0].querySelector('[data-euiicon-type][color="danger"]')).not.toBeNull(); + expect(hostStatuses[0].textContent).toEqual('Unhealthy'); + expect(hostStatuses[0].getAttribute('style')).toMatch( + /background-color\: rgb\(241\, 216\, 111\)\;/ + ); - expect(hostStatuses[1].textContent).toEqual('Online'); - expect( - hostStatuses[1].querySelector('[data-euiicon-type][color="success"]') - ).not.toBeNull(); + expect(hostStatuses[1].textContent).toEqual('Healthy'); + expect(hostStatuses[1].getAttribute('style')).toMatch( + /background-color\: rgb\(109\, 204\, 177\)\;/ + ); expect(hostStatuses[2].textContent).toEqual('Offline'); - expect( - hostStatuses[2].querySelector('[data-euiicon-type][color="subdued"]') - ).not.toBeNull(); + expect(hostStatuses[2].getAttribute('style')).toMatch( + /background-color\: rgb\(211\, 218\, 230\)\;/ + ); - expect(hostStatuses[3].textContent).toEqual('Unenrolling'); - expect( - hostStatuses[3].querySelector('[data-euiicon-type][color="warning"]') - ).not.toBeNull(); + expect(hostStatuses[3].textContent).toEqual('Updating'); + expect(hostStatuses[3].getAttribute('style')).toMatch( + /background-color\: rgb\(121\, 170\, 217\)\;/ + ); + + expect(hostStatuses[4].textContent).toEqual('Inactive'); + expect(hostStatuses[4].getAttribute('style')).toMatch( + /background-color\: rgb\(211\, 218\, 230\)\;/ + ); }); it('should display correct policy status', async () => { @@ -361,14 +376,18 @@ describe('when on the list page', () => { const policyStatuses = await renderResult.findAllByTestId('rowPolicyStatus'); policyStatuses.forEach((status, index) => { + const policyStatusToRGBColor: Array<[string, string]> = [ + ['Success', 'background-color: rgb(109, 204, 177);'], + ['Warning', 'background-color: rgb(241, 216, 111);'], + ['Failure', 'background-color: rgb(255, 126, 98);'], + ['Unsupported', 'background-color: rgb(211, 218, 230);'], + ]; + const policyStatusStyleMap: ReadonlyMap = new Map( + policyStatusToRGBColor + ); + const expectedStatusColor: string = policyStatusStyleMap.get(status.textContent!) ?? ''; expect(status.textContent).toEqual(POLICY_STATUS_TO_TEXT[generatedPolicyStatuses[index]]); - expect( - status.querySelector( - `[data-euiicon-type][color=${ - POLICY_STATUS_TO_HEALTH_COLOR[generatedPolicyStatuses[index]] - }]` - ) - ).not.toBeNull(); + expect(status.getAttribute('style')).toMatch(expectedStatusColor); }); }); @@ -378,7 +397,7 @@ describe('when on the list page', () => { await middlewareSpy.waitForAction('serverReturnedEndpointList'); }); const outOfDates = await renderResult.findAllByTestId('rowPolicyOutOfDate'); - expect(outOfDates).toHaveLength(3); + expect(outOfDates).toHaveLength(4); outOfDates.forEach((item, index) => { expect(item.textContent).toEqual('Out-of-date'); diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx index c4c27bd493950..d28bf6b38fd31 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx @@ -5,14 +5,14 @@ * 2.0. */ -import React, { useMemo, useCallback, memo, useState } from 'react'; +import React, { useMemo, useCallback, memo, useState, useContext } from 'react'; import { EuiHorizontalRule, EuiBasicTable, EuiBasicTableColumn, EuiText, EuiLink, - EuiHealth, + EuiBadge, EuiToolTip, EuiSelectableProps, EuiSuperDatePicker, @@ -33,13 +33,14 @@ import { createStructuredSelector } from 'reselect'; import { useDispatch } from 'react-redux'; import { EuiContextMenuItemProps } from '@elastic/eui/src/components/context_menu/context_menu_item'; import { NavigateToAppOptions } from 'kibana/public'; +import { ThemeContext } from 'styled-components'; import { EndpointDetailsFlyout } from './details'; import * as selectors from '../store/selectors'; import { useEndpointSelector } from './hooks'; import { isPolicyOutOfDate } from '../utils'; import { - HOST_STATUS_TO_HEALTH_COLOR, - POLICY_STATUS_TO_HEALTH_COLOR, + HOST_STATUS_TO_BADGE_COLOR, + POLICY_STATUS_TO_BADGE_COLOR, POLICY_STATUS_TO_TEXT, } from './host_constants'; import { useNavigateByRouterEventHandler } from '../../../../common/hooks/endpoint/use_navigate_by_router_event_handler'; @@ -72,11 +73,24 @@ const EndpointListNavLink = memo<{ name: string; href: string; route: string; + isBadge?: boolean; dataTestSubj: string; -}>(({ name, href, route, dataTestSubj }) => { +}>(({ name, href, route, isBadge = false, dataTestSubj }) => { const clickHandler = useNavigateByRouterEventHandler(route); + const theme = useContext(ThemeContext); - return ( + return isBadge ? ( + // eslint-disable-next-line @elastic/eui/href-or-on-click + + {name} + + ) : ( // eslint-disable-next-line @elastic/eui/href-or-on-click { // eslint-disable-next-line react/display-name render: (hostStatus: HostInfo['host_status']) => { return ( - - + ); }, }, @@ -375,8 +389,8 @@ export const EndpointList = () => { }); const toRouteUrl = formatUrl(toRoutePath); return ( - @@ -384,9 +398,10 @@ export const EndpointList = () => { name={POLICY_STATUS_TO_TEXT[policy.status]} href={toRouteUrl} route={toRoutePath} + isBadge dataTestSubj="policyStatusCellLink" /> - + ); }, }, diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/enrichment.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/enrichment.test.ts index cd439db6070d7..960f3abda8195 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/enrichment.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/enrichment.test.ts @@ -54,7 +54,7 @@ describe('test document enrichment', () => { }); }); - it('should return host online for online agent', async () => { + it('should return host healthy for online agent', async () => { statusFn.mockImplementation(() => 'online'); const enrichedHostList = await enrichHostMetadata( @@ -62,7 +62,7 @@ describe('test document enrichment', () => { metaReqCtx, MetadataQueryStrategyVersions.VERSION_2 ); - expect(enrichedHostList.host_status).toEqual(HostStatus.ONLINE); + expect(enrichedHostList.host_status).toEqual(HostStatus.HEALTHY); }); it('should return host offline for offline agent', async () => { @@ -76,7 +76,7 @@ describe('test document enrichment', () => { expect(enrichedHostList.host_status).toEqual(HostStatus.OFFLINE); }); - it('should return host unenrolling for unenrolling agent', async () => { + it('should return host updating for unenrolling agent', async () => { statusFn.mockImplementation(() => 'unenrolling'); const enrichedHostList = await enrichHostMetadata( @@ -84,10 +84,10 @@ describe('test document enrichment', () => { metaReqCtx, MetadataQueryStrategyVersions.VERSION_2 ); - expect(enrichedHostList.host_status).toEqual(HostStatus.UNENROLLING); + expect(enrichedHostList.host_status).toEqual(HostStatus.UPDATING); }); - it('should return host error for degraded agent', async () => { + it('should return host unhealthy for degraded agent', async () => { statusFn.mockImplementation(() => 'degraded'); const enrichedHostList = await enrichHostMetadata( @@ -95,10 +95,10 @@ describe('test document enrichment', () => { metaReqCtx, MetadataQueryStrategyVersions.VERSION_2 ); - expect(enrichedHostList.host_status).toEqual(HostStatus.ERROR); + expect(enrichedHostList.host_status).toEqual(HostStatus.UNHEALTHY); }); - it('should return host error for erroring agent', async () => { + it('should return host unhealthy for erroring agent', async () => { statusFn.mockImplementation(() => 'error'); const enrichedHostList = await enrichHostMetadata( @@ -106,10 +106,10 @@ describe('test document enrichment', () => { metaReqCtx, MetadataQueryStrategyVersions.VERSION_2 ); - expect(enrichedHostList.host_status).toEqual(HostStatus.ERROR); + expect(enrichedHostList.host_status).toEqual(HostStatus.UNHEALTHY); }); - it('should return host error for warning agent', async () => { + it('should return host unhealthy for warning agent', async () => { statusFn.mockImplementation(() => 'warning'); const enrichedHostList = await enrichHostMetadata( @@ -117,10 +117,10 @@ describe('test document enrichment', () => { metaReqCtx, MetadataQueryStrategyVersions.VERSION_2 ); - expect(enrichedHostList.host_status).toEqual(HostStatus.ERROR); + expect(enrichedHostList.host_status).toEqual(HostStatus.UNHEALTHY); }); - it('should return host error for invalid agent', async () => { + it('should return host unhealthy for invalid agent', async () => { statusFn.mockImplementation(() => 'asliduasofb'); const enrichedHostList = await enrichHostMetadata( @@ -128,7 +128,7 @@ describe('test document enrichment', () => { metaReqCtx, MetadataQueryStrategyVersions.VERSION_2 ); - expect(enrichedHostList.host_status).toEqual(HostStatus.ERROR); + expect(enrichedHostList.host_status).toEqual(HostStatus.UNHEALTHY); }); }); diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts index d3ba16ffe0063..e6a676454a279 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts @@ -33,9 +33,15 @@ export interface MetadataRequestContext { } const HOST_STATUS_MAPPING = new Map([ - ['online', HostStatus.ONLINE], + ['online', HostStatus.HEALTHY], ['offline', HostStatus.OFFLINE], - ['unenrolling', HostStatus.UNENROLLING], + ['inactive', HostStatus.INACTIVE], + ['unenrolling', HostStatus.UPDATING], + ['enrolling', HostStatus.UPDATING], + ['updating', HostStatus.UPDATING], + ['warning', HostStatus.UNHEALTHY], + ['error', HostStatus.UNHEALTHY], + ['degraded', HostStatus.UNHEALTHY], ]); /** @@ -257,7 +263,7 @@ export async function enrichHostMetadata( metadataRequestContext: MetadataRequestContext, metadataQueryStrategyVersion: MetadataQueryStrategyVersions ): Promise { - let hostStatus = HostStatus.ERROR; + let hostStatus = HostStatus.UNHEALTHY; let elasticAgentId = hostMetadata?.elastic?.agent?.id; const log = metadataRequestContext.logger; try { @@ -276,7 +282,7 @@ export async function enrichHostMetadata( metadataRequestContext.requestHandlerContext.core.elasticsearch.client.asCurrentUser, elasticAgentId ); - hostStatus = HOST_STATUS_MAPPING.get(status!) || HostStatus.ERROR; + hostStatus = HOST_STATUS_MAPPING.get(status!) || HostStatus.UNHEALTHY; } catch (e) { if (e instanceof AgentNotFoundError) { log.warn(`agent with id ${elasticAgentId} not found`); diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts index 900cfc39b4af6..44db86f85cf5f 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts @@ -24,10 +24,11 @@ export const endpointFilters = schema.object({ host_status: schema.nullable( schema.arrayOf( schema.oneOf([ - schema.literal(HostStatus.ONLINE.toString()), + schema.literal(HostStatus.HEALTHY.toString()), schema.literal(HostStatus.OFFLINE.toString()), - schema.literal(HostStatus.UNENROLLING.toString()), - schema.literal(HostStatus.ERROR.toString()), + schema.literal(HostStatus.UPDATING.toString()), + schema.literal(HostStatus.UNHEALTHY.toString()), + schema.literal(HostStatus.INACTIVE.toString()), ]) ) ), diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts index f98142486e0da..e052a653242b7 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts @@ -131,7 +131,7 @@ describe('test endpoint route', () => { ); }); - it('should return a single endpoint with status online', async () => { + it('should return a single endpoint with status healthy', async () => { const response = createV1SearchResponse(new EndpointDocGenerator().generateHostMetadata()); const mockRequest = httpServerMock.createKibanaRequest({ params: { id: response.hits.hits[0]._id }, @@ -161,7 +161,7 @@ describe('test endpoint route', () => { expect(mockResponse.ok).toBeCalled(); const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; expect(result).toHaveProperty('metadata.Endpoint'); - expect(result.host_status).toEqual(HostStatus.ONLINE); + expect(result.host_status).toEqual(HostStatus.HEALTHY); expect(result.query_strategy_version).toEqual(MetadataQueryStrategyVersions.VERSION_1); }); }); @@ -406,7 +406,7 @@ describe('test endpoint route', () => { expect(message).toEqual('Endpoint Not Found'); }); - it('should return a single endpoint with status online', async () => { + it('should return a single endpoint with status healthy', async () => { const response = createV2SearchResponse(new EndpointDocGenerator().generateHostMetadata()); const mockRequest = httpServerMock.createKibanaRequest({ params: { id: response.hits.hits[0]._id }, @@ -436,11 +436,11 @@ describe('test endpoint route', () => { expect(mockResponse.ok).toBeCalled(); const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; expect(result).toHaveProperty('metadata.Endpoint'); - expect(result.host_status).toEqual(HostStatus.ONLINE); + expect(result.host_status).toEqual(HostStatus.HEALTHY); expect(result.query_strategy_version).toEqual(MetadataQueryStrategyVersions.VERSION_2); }); - it('should return a single endpoint with status error when AgentService throw 404', async () => { + it('should return a single endpoint with status unhealthy when AgentService throw 404', async () => { const response = createV2SearchResponse(new EndpointDocGenerator().generateHostMetadata()); const mockRequest = httpServerMock.createKibanaRequest({ @@ -474,10 +474,10 @@ describe('test endpoint route', () => { }); expect(mockResponse.ok).toBeCalled(); const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result.host_status).toEqual(HostStatus.ERROR); + expect(result.host_status).toEqual(HostStatus.UNHEALTHY); }); - it('should return a single endpoint with status error when status is not offline, online or enrolling', async () => { + it('should return a single endpoint with status unhealthy when status is not offline, online or enrolling', async () => { const response = createV2SearchResponse(new EndpointDocGenerator().generateHostMetadata()); const mockRequest = httpServerMock.createKibanaRequest({ @@ -507,7 +507,7 @@ describe('test endpoint route', () => { }); expect(mockResponse.ok).toBeCalled(); const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result.host_status).toEqual(HostStatus.ERROR); + expect(result.host_status).toEqual(HostStatus.UNHEALTHY); }); it('should throw error when endpoint agent is not active', async () => { diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata_v1.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata_v1.test.ts index 4a9f67ebd56a0..97b0dd7f1509e 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata_v1.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata_v1.test.ts @@ -293,7 +293,7 @@ describe('test endpoint route v1', () => { expect(message).toEqual('Endpoint Not Found'); }); - it('should return a single endpoint with status online', async () => { + it('should return a single endpoint with status healthy', async () => { const response = createV1SearchResponse(new EndpointDocGenerator().generateHostMetadata()); const mockRequest = httpServerMock.createKibanaRequest({ params: { id: response.hits.hits[0]._id }, @@ -323,10 +323,10 @@ describe('test endpoint route v1', () => { expect(mockResponse.ok).toBeCalled(); const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; expect(result).toHaveProperty('metadata.Endpoint'); - expect(result.host_status).toEqual(HostStatus.ONLINE); + expect(result.host_status).toEqual(HostStatus.HEALTHY); }); - it('should return a single endpoint with status error when AgentService throw 404', async () => { + it('should return a single endpoint with status unhealthy when AgentService throw 404', async () => { const response = createV1SearchResponse(new EndpointDocGenerator().generateHostMetadata()); const mockRequest = httpServerMock.createKibanaRequest({ @@ -360,10 +360,10 @@ describe('test endpoint route v1', () => { }); expect(mockResponse.ok).toBeCalled(); const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result.host_status).toEqual(HostStatus.ERROR); + expect(result.host_status).toEqual(HostStatus.UNHEALTHY); }); - it('should return a single endpoint with status error when status is not offline, online or enrolling', async () => { + it('should return a single endpoint with status unhealthy when status is not offline, online or enrolling', async () => { const response = createV1SearchResponse(new EndpointDocGenerator().generateHostMetadata()); const mockRequest = httpServerMock.createKibanaRequest({ @@ -393,7 +393,7 @@ describe('test endpoint route v1', () => { }); expect(mockResponse.ok).toBeCalled(); const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result.host_status).toEqual(HostStatus.ERROR); + expect(result.host_status).toEqual(HostStatus.UNHEALTHY); }); it('should throw error when endpoint agent is not active', async () => { diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.test.ts index f65578f223beb..ffe194ed19789 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.test.ts @@ -40,7 +40,7 @@ describe('test filtering endpoint hosts by agent status', () => { mockAgentService, mockSavedObjectClient, mockElasticsearchClient, - ['online'] + ['healthy'] ); expect(result).toBeDefined(); }); @@ -101,9 +101,9 @@ describe('test filtering endpoint hosts by agent status', () => { mockAgentService, mockSavedObjectClient, mockElasticsearchClient, - ['unenrolling', 'error'] + ['updating', 'unhealthy'] ); - const unenrollKuery = AgentStatusKueryHelper.buildKueryForUnenrollingAgents(); + const unenrollKuery = AgentStatusKueryHelper.buildKueryForUpdatingAgents(); const errorKuery = AgentStatusKueryHelper.buildKueryForErrorAgents(); expect(mockAgentService.listAgents.mock.calls[0][1].kuery).toEqual( expect.stringContaining(`${unenrollKuery} OR ${errorKuery}`) diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts index 8f5229804d2d1..7b08dc1488e78 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts @@ -12,10 +12,11 @@ import { Agent } from '../../../../../../fleet/common/types/models'; import { HostStatus } from '../../../../../common/endpoint/types'; const STATUS_QUERY_MAP = new Map([ - [HostStatus.ONLINE.toString(), AgentStatusKueryHelper.buildKueryForOnlineAgents()], + [HostStatus.HEALTHY.toString(), AgentStatusKueryHelper.buildKueryForOnlineAgents()], [HostStatus.OFFLINE.toString(), AgentStatusKueryHelper.buildKueryForOfflineAgents()], - [HostStatus.ERROR.toString(), AgentStatusKueryHelper.buildKueryForErrorAgents()], - [HostStatus.UNENROLLING.toString(), AgentStatusKueryHelper.buildKueryForUnenrollingAgents()], + [HostStatus.UNHEALTHY.toString(), AgentStatusKueryHelper.buildKueryForErrorAgents()], + [HostStatus.UPDATING.toString(), AgentStatusKueryHelper.buildKueryForUpdatingAgents()], + [HostStatus.INACTIVE.toString(), AgentStatusKueryHelper.buildKueryForInactiveAgents()], ]); export async function findAgentIDsByStatus( diff --git a/x-pack/test/security_solution_endpoint/apps/endpoint/endpoint_list.ts b/x-pack/test/security_solution_endpoint/apps/endpoint/endpoint_list.ts index f2a41a2fa070d..9f9b24683dd1a 100644 --- a/x-pack/test/security_solution_endpoint/apps/endpoint/endpoint_list.ts +++ b/x-pack/test/security_solution_endpoint/apps/endpoint/endpoint_list.ts @@ -32,7 +32,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { ], [ 'rezzani-7.example.com', - 'Error', + 'Unhealthy', 'Default', 'Failure', 'windows 10.0', @@ -43,7 +43,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { ], [ 'cadmann-4.example.com', - 'Error', + 'Unhealthy', 'Default', 'Failure', 'windows 10.0', @@ -54,7 +54,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { ], [ 'thurlow-9.example.com', - 'Error', + 'Unhealthy', 'Default', 'Success', 'windows 10.0', @@ -268,7 +268,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { ], [ 'cadmann-4.example.com', - 'Error', + 'Unhealthy', 'Default', 'Failure', 'windows 10.0', @@ -279,7 +279,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { ], [ 'thurlow-9.example.com', - 'Error', + 'Unhealthy', 'Default', 'Success', 'windows 10.0', diff --git a/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts b/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts index b171497159b0a..07b046b0a95f7 100644 --- a/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts +++ b/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts @@ -251,7 +251,7 @@ export default function ({ getService }: FtrProviderContext) { expect(Array.from(statuses)).to.eql(['failure']); }); - it('metadata api should return the endpoint based on the elastic agent id, and status should be error', async () => { + it('metadata api should return the endpoint based on the elastic agent id, and status should be unhealthy', async () => { const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; const { body } = await supertest @@ -269,7 +269,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resultHostId).to.eql(targetEndpointId); expect(resultElasticAgentId).to.eql(targetElasticAgentId); expect(body.hosts[0].metadata.event.created).to.eql(1579881969541); - expect(body.hosts[0].host_status).to.eql('error'); + expect(body.hosts[0].host_status).to.eql('unhealthy'); expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); diff --git a/x-pack/test/security_solution_endpoint_api_int/apis/metadata_v1.ts b/x-pack/test/security_solution_endpoint_api_int/apis/metadata_v1.ts index 30e65a764ee32..0e90b5c615c26 100644 --- a/x-pack/test/security_solution_endpoint_api_int/apis/metadata_v1.ts +++ b/x-pack/test/security_solution_endpoint_api_int/apis/metadata_v1.ts @@ -240,7 +240,7 @@ export default function ({ getService }: FtrProviderContext) { expect(Array.from(statuses)).to.eql(['failure']); }); - it('metadata api should return the endpoint based on the elastic agent id, and status should be error', async () => { + it('metadata api should return the endpoint based on the elastic agent id, and status should be unhealthy', async () => { const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; const { body } = await supertest @@ -258,7 +258,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resultHostId).to.eql(targetEndpointId); expect(resultElasticAgentId).to.eql(targetElasticAgentId); expect(body.hosts[0].metadata.event.created).to.eql(1579881969541); - expect(body.hosts[0].host_status).to.eql('error'); + expect(body.hosts[0].host_status).to.eql('unhealthy'); expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); From 86d405493013705a842f48346949b02682a513b1 Mon Sep 17 00:00:00 2001 From: Oliver Gupte Date: Fri, 26 Mar 2021 13:22:32 -0700 Subject: [PATCH 27/55] [APM] Fix for correlations inconsistent loading errors in Errors tab (#93443) (#95437) --- .../correlations/process_significant_term_aggs.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/apm/server/lib/correlations/process_significant_term_aggs.ts b/x-pack/plugins/apm/server/lib/correlations/process_significant_term_aggs.ts index 94ed3dc3b6999..cc1e32e47973d 100644 --- a/x-pack/plugins/apm/server/lib/correlations/process_significant_term_aggs.ts +++ b/x-pack/plugins/apm/server/lib/correlations/process_significant_term_aggs.ts @@ -47,10 +47,15 @@ function getMaxImpactScore(scores: number[]) { export function processSignificantTermAggs({ sigTermAggs, }: { - sigTermAggs: Record; + sigTermAggs: Record; }) { - const significantTerms = Object.entries(sigTermAggs).flatMap( - ([fieldName, agg]) => { + const significantTerms = Object.entries(sigTermAggs) + // filter entries with buckets, i.e. Significant terms aggs + .filter((entry): entry is [string, SigTermAgg] => { + const [, agg] = entry; + return 'buckets' in agg; + }) + .flatMap(([fieldName, agg]) => { return agg.buckets.map((bucket) => ({ fieldName, fieldValue: bucket.key, @@ -58,8 +63,7 @@ export function processSignificantTermAggs({ valueCount: bucket.doc_count, score: bucket.score, })); - } - ); + }); const maxImpactScore = getMaxImpactScore( significantTerms.map(({ score }) => score) From 173731b3424209c0092800423d523307ebbb892f Mon Sep 17 00:00:00 2001 From: Brian Seeders Date: Fri, 26 Mar 2021 17:23:12 -0400 Subject: [PATCH 28/55] skip flaky suite (#95590) --- .../apps/triggers_actions_ui/alerts_list.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts index 9287196a8bd78..e73e1fd8c3713 100644 --- a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts +++ b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts @@ -54,7 +54,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await testSubjects.click('rulesTab'); } - describe('alerts list', function () { + // Failing: See https://github.com/elastic/kibana/issues/95590 + describe.skip('alerts list', function () { before(async () => { await pageObjects.common.navigateToApp('triggersActions'); await testSubjects.click('rulesTab'); From 7f159317251efa3175442ae9e05270c6187d6e14 Mon Sep 17 00:00:00 2001 From: John Schulz Date: Fri, 26 Mar 2021 17:36:39 -0400 Subject: [PATCH 29/55] [Fleet] /bulk_unenroll response matches other bulk action APIs (#95571) ## Summary `/agents/bulk_unenroll` should return a response with a result for each agent given; including invalid or missing ids. It currently returns an empty object. https://github.com/elastic/kibana/issues/90437 [TS type diff for response](https://github.com/jfsiii/kibana/blob/dd34e4c5ef9266a9c5162e33ca0efb4affd9b25b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts#L124-L130) ```diff - // eslint-disable-next-line @typescript-eslint/no-empty-interface - export interface PostBulkAgentUnenrollResponse {} + export type PostBulkAgentUnenrollResponse = Record< + Agent['id'], + { + success: boolean; + error?: string; + } + >; ``` ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../fleet/common/types/rest_spec/agent.ts | 9 ++- .../server/routes/agent/unenroll_handler.ts | 10 ++- .../server/routes/agent/upgrade_handler.ts | 2 +- .../fleet/server/services/agents/crud.ts | 1 - .../fleet/server/services/agents/unenroll.ts | 69 +++++++++++-------- .../apis/agents/unenroll.ts | 24 +++++-- 6 files changed, 77 insertions(+), 38 deletions(-) diff --git a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts index f6a8437ef9dd9..4616e92925b3a 100644 --- a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts +++ b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts @@ -121,8 +121,13 @@ export interface PostBulkAgentUnenrollRequest { }; } -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface PostBulkAgentUnenrollResponse {} +export type PostBulkAgentUnenrollResponse = Record< + Agent['id'], + { + success: boolean; + error?: string; + } +>; export interface PostAgentUpgradeRequest { params: { diff --git a/x-pack/plugins/fleet/server/routes/agent/unenroll_handler.ts b/x-pack/plugins/fleet/server/routes/agent/unenroll_handler.ts index 558a9a8afbb0b..1505955215515 100644 --- a/x-pack/plugins/fleet/server/routes/agent/unenroll_handler.ts +++ b/x-pack/plugins/fleet/server/routes/agent/unenroll_handler.ts @@ -60,11 +60,17 @@ export const postBulkAgentsUnenrollHandler: RequestHandler< : { kuery: request.body.agents }; try { - await AgentService.unenrollAgents(soClient, esClient, { + const results = await AgentService.unenrollAgents(soClient, esClient, { ...agentOptions, force: request.body?.force, }); - const body: PostBulkAgentUnenrollResponse = {}; + const body = results.items.reduce((acc, so) => { + acc[so.id] = { + success: !so.error, + error: so.error?.message, + }; + return acc; + }, {}); return response.ok({ body }); } catch (error) { diff --git a/x-pack/plugins/fleet/server/routes/agent/upgrade_handler.ts b/x-pack/plugins/fleet/server/routes/agent/upgrade_handler.ts index 0288bcdbe220f..52f62037f61e6 100644 --- a/x-pack/plugins/fleet/server/routes/agent/upgrade_handler.ts +++ b/x-pack/plugins/fleet/server/routes/agent/upgrade_handler.ts @@ -103,7 +103,7 @@ export const postBulkAgentsUpgradeHandler: RequestHandler< const body = results.items.reduce((acc, so) => { acc[so.id] = { success: !so.error, - error: so.error ? so.error.message || so.error.toString() : undefined, + error: so.error?.message, }; return acc; }, {}); diff --git a/x-pack/plugins/fleet/server/services/agents/crud.ts b/x-pack/plugins/fleet/server/services/agents/crud.ts index b89b2b6d351b8..ecf18430da668 100644 --- a/x-pack/plugins/fleet/server/services/agents/crud.ts +++ b/x-pack/plugins/fleet/server/services/agents/crud.ts @@ -10,7 +10,6 @@ import type { estypes } from '@elastic/elasticsearch'; import type { SavedObjectsClientContract, ElasticsearchClient } from 'src/core/server'; import type { AgentSOAttributes, Agent, BulkActionResult, ListWithKuery } from '../../types'; - import { appContextService, agentPolicyService } from '../../services'; import type { FleetServerAgent } from '../../../common'; import { isAgentUpgradeable, SO_SEARCH_LIMIT } from '../../../common'; diff --git a/x-pack/plugins/fleet/server/services/agents/unenroll.ts b/x-pack/plugins/fleet/server/services/agents/unenroll.ts index 8cf7396eaa8de..ff243eff11570 100644 --- a/x-pack/plugins/fleet/server/services/agents/unenroll.ts +++ b/x-pack/plugins/fleet/server/services/agents/unenroll.ts @@ -7,6 +7,7 @@ import type { ElasticsearchClient, SavedObjectsClientContract } from 'src/core/server'; +import type { Agent, BulkActionResult } from '../../types'; import * as APIKeyService from '../api_keys'; import { AgentUnenrollmentError } from '../../errors'; @@ -57,26 +58,35 @@ export async function unenrollAgents( soClient: SavedObjectsClientContract, esClient: ElasticsearchClient, options: GetAgentsOptions & { force?: boolean } -) { +): Promise<{ items: BulkActionResult[] }> { // start with all agents specified - const agents = await getAgents(esClient, options); + const givenAgents = await getAgents(esClient, options); + const outgoingErrors: Record = {}; // Filter to those not already unenrolled, or unenrolling - const agentsEnrolled = agents.filter((agent) => { + const agentsEnrolled = givenAgents.filter((agent) => { if (options.force) { return !agent.unenrolled_at; } return !agent.unenrollment_started_at && !agent.unenrolled_at; }); // And which are allowed to unenroll - const settled = await Promise.allSettled( + const agentResults = await Promise.allSettled( agentsEnrolled.map((agent) => unenrollAgentIsAllowed(soClient, esClient, agent.id).then((_) => agent) ) ); - const agentsToUpdate = agentsEnrolled.filter((_, index) => settled[index].status === 'fulfilled'); - const now = new Date().toISOString(); + const agentsToUpdate = agentResults.reduce((agents, result, index) => { + if (result.status === 'fulfilled') { + agents.push(result.value); + } else { + const id = givenAgents[index].id; + outgoingErrors[id] = result.reason; + } + return agents; + }, []); + const now = new Date().toISOString(); if (options.force) { // Get all API keys that need to be invalidated const apiKeys = agentsToUpdate.reduce((keys, agent) => { @@ -94,17 +104,6 @@ export async function unenrollAgents( if (apiKeys.length) { await APIKeyService.invalidateAPIKeys(soClient, apiKeys); } - // Update the necessary agents - return bulkUpdateAgents( - esClient, - agentsToUpdate.map((agent) => ({ - agentId: agent.id, - data: { - active: false, - unenrolled_at: now, - }, - })) - ); } else { // Create unenroll action for each agent await bulkCreateAgentActions( @@ -116,18 +115,32 @@ export async function unenrollAgents( type: 'UNENROLL', })) ); - - // Update the necessary agents - return bulkUpdateAgents( - esClient, - agentsToUpdate.map((agent) => ({ - agentId: agent.id, - data: { - unenrollment_started_at: now, - }, - })) - ); } + + // Update the necessary agents + const updateData = options.force + ? { unenrolled_at: now, active: false } + : { unenrollment_started_at: now }; + + await bulkUpdateAgents( + esClient, + agentsToUpdate.map(({ id }) => ({ agentId: id, data: updateData })) + ); + + const out = { + items: givenAgents.map((agent, index) => { + const hasError = agent.id in outgoingErrors; + const result: BulkActionResult = { + id: agent.id, + success: !hasError, + }; + if (hasError) { + result.error = outgoingErrors[agent.id]; + } + return result; + }), + }; + return out; } export async function forceUnenrollAgent( diff --git a/x-pack/test/fleet_api_integration/apis/agents/unenroll.ts b/x-pack/test/fleet_api_integration/apis/agents/unenroll.ts index 09a0d3c927e4c..ab765eae18ca5 100644 --- a/x-pack/test/fleet_api_integration/apis/agents/unenroll.ts +++ b/x-pack/test/fleet_api_integration/apis/agents/unenroll.ts @@ -119,7 +119,7 @@ export default function (providerContext: FtrProviderContext) { .expect(200); // try to unenroll - await supertest + const { body: unenrolledBody } = await supertest .post(`/api/fleet/agents/bulk_unenroll`) .set('kbn-xsrf', 'xxx') .send({ @@ -128,6 +128,16 @@ export default function (providerContext: FtrProviderContext) { // http request succeeds .expect(200); + expect(unenrolledBody).to.eql({ + agent2: { + success: false, + error: 'Cannot unenroll agent2 from a managed agent policy policy1', + }, + agent3: { + success: false, + error: 'Cannot unenroll agent3 from a managed agent policy policy1', + }, + }); // but agents are still enrolled const [agent2data, agent3data] = await Promise.all([ supertest.get(`/api/fleet/agents/agent2`), @@ -148,17 +158,23 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .send({ name: 'Test policy', namespace: 'default', is_managed: false }) .expect(200); - await supertest + const { body: unenrolledBody } = await supertest .post(`/api/fleet/agents/bulk_unenroll`) .set('kbn-xsrf', 'xxx') .send({ agents: ['agent2', 'agent3'], - }) - .expect(200); + }); + + expect(unenrolledBody).to.eql({ + agent2: { success: true }, + agent3: { success: true }, + }); + const [agent2data, agent3data] = await Promise.all([ supertest.get(`/api/fleet/agents/agent2`), supertest.get(`/api/fleet/agents/agent3`), ]); + expect(typeof agent2data.body.item.unenrollment_started_at).to.eql('string'); expect(agent2data.body.item.active).to.eql(true); expect(typeof agent3data.body.item.unenrollment_started_at).to.be('string'); From 1362561a039a0f58405c947143bc72f15c1779ac Mon Sep 17 00:00:00 2001 From: Brian Seeders Date: Fri, 26 Mar 2021 17:40:01 -0400 Subject: [PATCH 30/55] skip flaky suite (#95592) --- x-pack/test/functional/apps/discover/reporting.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/discover/reporting.ts b/x-pack/test/functional/apps/discover/reporting.ts index d7dd961e2f103..9acb4c311c113 100644 --- a/x-pack/test/functional/apps/discover/reporting.ts +++ b/x-pack/test/functional/apps/discover/reporting.ts @@ -21,7 +21,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await kibanaServer.uiSettings.update({ 'discover:searchFieldsFromSource': setValue }); }; - describe('Discover CSV Export', () => { + // Failing: See https://github.com/elastic/kibana/issues/95592 + describe.skip('Discover CSV Export', () => { before('initialize tests', async () => { log.debug('ReportingPage:initTests'); await esArchiver.load('reporting/ecommerce'); From b95e5a996a0ac7d685c785323390939e70fc0984 Mon Sep 17 00:00:00 2001 From: Brian Seeders Date: Fri, 26 Mar 2021 17:46:20 -0400 Subject: [PATCH 31/55] skip failing suite blocking ES promotion (#95594) --- .../reporting_and_security/csv_searchsource_immediate.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts b/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts index 27c6a05f740bf..ffaa4cb2f8fb6 100644 --- a/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts +++ b/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts @@ -31,7 +31,8 @@ export default function ({ getService }: FtrProviderContext) { }, }; - describe('CSV Generation from SearchSource', () => { + // Failing: See https://github.com/elastic/kibana/issues/95594 + describe.skip('CSV Generation from SearchSource', () => { before(async () => { await kibanaServer.uiSettings.update({ 'csv:quoteValues': false, From b7d8ada65a24a1fdc27ac2de09e1f7ebc2ef34e5 Mon Sep 17 00:00:00 2001 From: liza-mae Date: Fri, 26 Mar 2021 16:33:29 -0600 Subject: [PATCH 32/55] Fix reporting test (#95586) --- x-pack/test/upgrade/apps/reporting/reporting_smoke_tests.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/x-pack/test/upgrade/apps/reporting/reporting_smoke_tests.ts b/x-pack/test/upgrade/apps/reporting/reporting_smoke_tests.ts index 41b5aab35c84d..c00e761d54226 100644 --- a/x-pack/test/upgrade/apps/reporting/reporting_smoke_tests.ts +++ b/x-pack/test/upgrade/apps/reporting/reporting_smoke_tests.ts @@ -54,15 +54,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); spaces.forEach(({ space, basePath }) => { describe('generate report space ' + space, () => { - before(async () => { - usage = (await usageAPI.getUsageStats()) as UsageStats; - completedReportCount = reportingAPI.getCompletedReportCount(usage); - }); beforeEach(async () => { await PageObjects.common.navigateToActualUrl('home', '/tutorial_directory/sampleData', { basePath, }); await PageObjects.header.waitUntilLoadingHasFinished(); + usage = (await usageAPI.getUsageStats()) as UsageStats; + completedReportCount = reportingAPI.getCompletedReportCount(usage); }); reportingTests.forEach(({ name, type, link }) => { it('name ' + name + ' type ' + type, async () => { From 10713fcc52f8b466b7a5067827e66a95ebc2aef6 Mon Sep 17 00:00:00 2001 From: John Dorlus Date: Fri, 26 Mar 2021 19:09:19 -0400 Subject: [PATCH 33/55] Add Component Integration Test For Byte Processor (#95130) * Addded test for Bytes processor. * Broke out processor not selected section of tests to its own test and made edits per feedback in PR. * Broke out processor data fetching to a separate reusable helper function. * Broke out processor data fetching to a separate reusable helper function. * Added functionality for toggling the ignore missing switch. * ES lint fix. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../__jest__/processors/bytes.test.tsx | 124 ++++++++++++++++++ .../__jest__/processors/processor.helpers.tsx | 11 +- .../processors/processor_form.test.tsx | 52 ++++++++ .../__jest__/processors/uri_parts.test.tsx | 21 ++- .../common_fields/ignore_missing_field.tsx | 1 + 5 files changed, 194 insertions(+), 15 deletions(-) create mode 100644 x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/bytes.test.tsx create mode 100644 x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor_form.test.tsx diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/bytes.test.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/bytes.test.tsx new file mode 100644 index 0000000000000..c6449dbd7a93e --- /dev/null +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/bytes.test.tsx @@ -0,0 +1,124 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { act } from 'react-dom/test-utils'; +import { setup, SetupResult, getProcessorValue } from './processor.helpers'; + +// Default parameter values automatically added to the Bytes processor when saved +const defaultBytesParameters = { + ignore_failure: undefined, + description: undefined, +}; + +const BYTES_TYPE = 'bytes'; + +describe('Processor: Bytes', () => { + let onUpdate: jest.Mock; + let testBed: SetupResult; + + beforeAll(() => { + jest.useFakeTimers(); + }); + + afterAll(() => { + jest.useRealTimers(); + }); + + beforeEach(async () => { + onUpdate = jest.fn(); + + await act(async () => { + testBed = await setup({ + value: { + processors: [], + }, + onFlyoutOpen: jest.fn(), + onUpdate, + }); + }); + testBed.component.update(); + }); + + test('prevents form submission if required fields are not provided', async () => { + const { + actions: { addProcessor, saveNewProcessor, addProcessorType }, + form, + } = testBed; + + // Open flyout to add new processor + addProcessor(); + // Click submit button without entering any fields + await saveNewProcessor(); + + // Expect form error as a processor type is required + expect(form.getErrorsMessages()).toEqual(['A type is required.']); + + // Add type (the other fields are not visible until a type is selected) + await addProcessorType(BYTES_TYPE); + + // Click submit button with only the type defined + await saveNewProcessor(); + + // Expect form error as "field" is required parameter + expect(form.getErrorsMessages()).toEqual(['A field value is required.']); + }); + + test('saves with default parameter values', async () => { + const { + actions: { addProcessor, saveNewProcessor, addProcessorType }, + form, + } = testBed; + + // Open flyout to add new processor + addProcessor(); + // Add type (the other fields are not visible until a type is selected) + await addProcessorType(BYTES_TYPE); + // Add "field" value (required) + form.setInputValue('fieldNameField.input', 'field_1'); + // Save the field + await saveNewProcessor(); + + const processors = getProcessorValue(onUpdate, BYTES_TYPE); + expect(processors[0].bytes).toEqual({ + field: 'field_1', + ...defaultBytesParameters, + }); + }); + + test('allows optional parameters to be set', async () => { + const { + actions: { addProcessor, addProcessorType, saveNewProcessor }, + form, + } = testBed; + + // Open flyout to add new processor + addProcessor(); + // Add type (the other fields are not visible until a type is selected) + await addProcessorType(BYTES_TYPE); + // Add "field" value (required) + form.setInputValue('fieldNameField.input', 'field_1'); + + // Set optional parameteres + form.setInputValue('targetField.input', 'target_field'); + + form.toggleEuiSwitch('ignoreMissingSwitch.input'); + + // Save the field with new changes + await saveNewProcessor(); + + const processors = getProcessorValue(onUpdate, BYTES_TYPE); + expect(processors[0].bytes).toEqual({ + description: undefined, + field: 'field_1', + ignore_failure: undefined, + target_field: 'target_field', + ignore_missing: true, + tag: undefined, + if: undefined, + }); + }); +}); diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx index c08627de636d7..8340cf45b1f1b 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx @@ -90,9 +90,9 @@ const createActions = (testBed: TestBed) => { component.update(); }, - async addProcessorType({ type, label }: { type: string; label: string }) { + async addProcessorType(type: string) { await act(async () => { - find('processorTypeSelector.input').simulate('change', [{ value: type, label }]); + find('processorTypeSelector.input').simulate('change', [{ value: type }]); }); component.update(); }, @@ -127,12 +127,19 @@ export const setupEnvironment = () => { }; }; +export const getProcessorValue = (onUpdate: jest.Mock, type: string) => { + const [onUpdateResult] = onUpdate.mock.calls[onUpdate.mock.calls.length - 1]; + const { processors } = onUpdateResult.getData(); + return processors; +}; + type TestSubject = | 'addProcessorForm.submitButton' | 'addProcessorButton' | 'addProcessorForm.submitButton' | 'processorTypeSelector.input' | 'fieldNameField.input' + | 'ignoreMissingSwitch.input' | 'targetField.input' | 'keepOriginalField.input' | 'removeIfSuccessfulField.input'; diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor_form.test.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor_form.test.tsx new file mode 100644 index 0000000000000..de0061dcb0407 --- /dev/null +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor_form.test.tsx @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { act } from 'react-dom/test-utils'; +import { setup, SetupResult } from './processor.helpers'; + +describe('Processor: Bytes', () => { + let onUpdate: jest.Mock; + let testBed: SetupResult; + + beforeAll(() => { + jest.useFakeTimers(); + }); + + afterAll(() => { + jest.useRealTimers(); + }); + + beforeEach(async () => { + onUpdate = jest.fn(); + + await act(async () => { + testBed = await setup({ + value: { + processors: [], + }, + onFlyoutOpen: jest.fn(), + onUpdate, + }); + }); + testBed.component.update(); + }); + + test('Prevents form submission if processor type not selected', async () => { + const { + actions: { addProcessor, saveNewProcessor }, + form, + } = testBed; + + // Open flyout to add new processor + addProcessor(); + // Click submit button without entering any fields + await saveNewProcessor(); + + // Expect form error as a processor type is required + expect(form.getErrorsMessages()).toEqual(['A type is required.']); + }); +}); diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/uri_parts.test.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/uri_parts.test.tsx index 41078b7e96df9..573adad3247f5 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/uri_parts.test.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/uri_parts.test.tsx @@ -6,7 +6,7 @@ */ import { act } from 'react-dom/test-utils'; -import { setup, SetupResult } from './processor.helpers'; +import { setup, SetupResult, getProcessorValue } from './processor.helpers'; // Default parameter values automatically added to the URI parts processor when saved const defaultUriPartsParameters = { @@ -16,6 +16,8 @@ const defaultUriPartsParameters = { description: undefined, }; +const URI_PARTS_TYPE = 'uri_parts'; + describe('Processor: URI parts', () => { let onUpdate: jest.Mock; let testBed: SetupResult; @@ -51,14 +53,9 @@ describe('Processor: URI parts', () => { // Open flyout to add new processor addProcessor(); - // Click submit button without entering any fields - await saveNewProcessor(); - - // Expect form error as a processor type is required - expect(form.getErrorsMessages()).toEqual(['A type is required.']); // Add type (the other fields are not visible until a type is selected) - await addProcessorType({ type: 'uri_parts', label: 'URI parts' }); + await addProcessorType(URI_PARTS_TYPE); // Click submit button with only the type defined await saveNewProcessor(); @@ -76,14 +73,13 @@ describe('Processor: URI parts', () => { // Open flyout to add new processor addProcessor(); // Add type (the other fields are not visible until a type is selected) - await addProcessorType({ type: 'uri_parts', label: 'URI parts' }); + await addProcessorType(URI_PARTS_TYPE); // Add "field" value (required) form.setInputValue('fieldNameField.input', 'field_1'); // Save the field await saveNewProcessor(); - const [onUpdateResult] = onUpdate.mock.calls[onUpdate.mock.calls.length - 1]; - const { processors } = onUpdateResult.getData(); + const processors = getProcessorValue(onUpdate, URI_PARTS_TYPE); expect(processors[0].uri_parts).toEqual({ field: 'field_1', ...defaultUriPartsParameters, @@ -99,7 +95,7 @@ describe('Processor: URI parts', () => { // Open flyout to add new processor addProcessor(); // Add type (the other fields are not visible until a type is selected) - await addProcessorType({ type: 'uri_parts', label: 'URI parts' }); + await addProcessorType(URI_PARTS_TYPE); // Add "field" value (required) form.setInputValue('fieldNameField.input', 'field_1'); @@ -111,8 +107,7 @@ describe('Processor: URI parts', () => { // Save the field with new changes await saveNewProcessor(); - const [onUpdateResult] = onUpdate.mock.calls[onUpdate.mock.calls.length - 1]; - const { processors } = onUpdateResult.getData(); + const processors = getProcessorValue(onUpdate, URI_PARTS_TYPE); expect(processors[0].uri_parts).toEqual({ description: undefined, field: 'field_1', diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/common_fields/ignore_missing_field.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/common_fields/ignore_missing_field.tsx index 82e086102b488..744e9798c4fb0 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/common_fields/ignore_missing_field.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/common_fields/ignore_missing_field.tsx @@ -50,5 +50,6 @@ export const IgnoreMissingField: FunctionComponent = (props) => ( config={{ ...fieldsConfig.ignore_missing, ...props }} component={ToggleField} path="fields.ignore_missing" + data-test-subj="ignoreMissingSwitch" /> ); From 1282e6722081438608f2445413f22c4dbe4a37aa Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Fri, 26 Mar 2021 16:55:16 -0700 Subject: [PATCH 34/55] [DOCS] Clarify maps tutorial (#95563) --- docs/maps/images/gs_add_cloropeth_layer.png | Bin 1225268 -> 452559 bytes docs/maps/images/gs_add_es_document_layer.png | Bin 391348 -> 330583 bytes docs/maps/images/sample_data_web_logs.png | Bin 826359 -> 505363 bytes docs/maps/maps-getting-started.asciidoc | 11 ++++++----- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/maps/images/gs_add_cloropeth_layer.png b/docs/maps/images/gs_add_cloropeth_layer.png index 1528f404026f2f281c9102e8e0453d3d899b7137..42e00ccc5dd245c9c13c0691190f42be34256bb9 100644 GIT binary patch literal 452559 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 zˋ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›uWxAXnJjY&p?D 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 literal 1225268 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%0Dy`wuJ-36ag4y;a6-N zW-R5JGSzN@OyTBx+2uB)Rl3B(Hm(L9`K}wpb2vV*b>^f;tt`go_6XyYjLy$*UkjOH zw~EF@P`sIT^buirwaX{4`a;TAIC@8?6lV+5&fLg6Ee)9jV*BAfpKO1tY*=X=5hJJ? zuE!w~xm@3m0?*;T?jk#_$o_k-QgH|J5svOSovUw=)v-H99~YFQ`g)6Ve6^$Sk0d{G z{Lk6V9T)c!2sclPqw+nCI}BJi_7Db*S9M;?ap6>ZmLk&OMr{ej_pTE&DSj%N8hejZ3XBVDV#>@1%~V!*D95PyANsld`Eb9 z3*$v4SI>xjKLa{8vMabzV}15Q88zF+K6Za8wtSs_-ZC!!z-w-iW$Id+ZRp=S!|iuJ zB^>ET&IYk%uByz>S1+n+{jvf!oXg^(QVyh|*t&Q*Qb~0au71etaLPp+ab$YTPvvQ4dsD0MkS#;?6S%h1;58BK7oOwfDY-LA%obp>N%r1 zan8+uT&h5)*u0XWrDMDwKi0j%S=QYsuN-0?sE+xTu?tv#^P zw^4Q0x0-+5N0NUh=h>G}a~7^e*PazEEpFkt`Sl+OEbc5`^hvD7_r%5uq~c0;z3%^soIcRTL+w}>TXiO$_vJ%i$uM;T@r^x*y#o8Y zS!0@b1x(fNz2VMpkcc3tB-d884?Sm|~qTktu{210WSF=!)251PL)7ZL@u z{wY&Rricn3gs;rBK{P3n@P8(rrN?tAGD%i6|CxUl{9iOxJDz?W$#=I-bP|A;RlR!TtrWlAW?lYLM#PHD@$W$h~Bcv zMmHdMl!YqyJq$?7_6m)rt4h3=MyH>)>IE9+6%y-eIFDPSY_uq(^%#Ms^EA46@vnlW zJ#iGorlYIB$T@WPy~4SsV9mmEk6ivL^ip!J3`Z?j=lgL!IYHBOGyg_4(3?&>5QRiE z>;~PPPbNg77VV`a-Gn0=RNY%}rX8S=B-wnW^j;vpo@XCW+M^&02p);ns+k7m8esAN zvPxH!jFXbgISzkcq5&W(07MiXXHjd(@1%MmA6d+2AAZuQ=Qf?vCq$0c{Y1u zp4d;?Z}RkgMhRhN8))#QznaQlTe8#Ku-?`G{e z_7M%HS={bD z@yB(s^I@Z^IKsZ09#YF}PG#{cJMb+8@b~J9cv*vOor0YS-`qV1I^h`(ZGEkHzS&!^ zX!muKhj}U`K}AFFJxznG$A|nzyVydkOdikdOy8lj+DDh+K{?h+roZ~HLME4?^o_UM zwFJYe!&2p@vX)Wy1tuNB8Kuurj^=8HV;h}mA8#2~C10Nmp=pyN-!6-H zV=T)XKQKRb?hnb=k|c`N5>U7eS9%V(&#jphGm;(JHyWnUqIgn4!aUcquh(Ut3JEx?&NUF^Q`}grM$Am1?)AJAcZXfUiH1O7un4U=wP_I z%0G1V9us-SyIZ22I)eU}HwgA~5dDj!(dvQ5JI`qN7lV1D%238|U$ZlZ8=AVjoVTfI z07(Q#NziCtgz{?$$7K^qEC%jbhZ~Ne)bg?@)df{jjmf{~8q`SOc}F}vpHAnJv?mr= zDVr*&1l;8&fPs%UX$tQkfqG~*?R$OYu2wxWp((q?)KEhA*w@O;t#={M{;R%%W4)E7 z%=0g}el>QdA_q8$Goeo(&7vI*wq}3QYraq%Sow9Yzg0W@_C5G@+1MeKfwD)5_|$@1 zv#{tv34S30CX`QJIK-oy@`qkUjQ+b^Jk6Tgw`Wwa;9&d#xps~#WyG2ffrt?%s)5q0 z;*~oPoh@y5>ZbY^a^*5C)RkO}tCLAN^==a!P5>k+0>}}%oY?$pwBK9rS=!0{U&3&@ zKX%C98E(4DLNr7I392x=RO?)+HP4+~Q<$WFv$=&_>(b6Z73_PS_qpP>VjQPJ7h(ZEj+8Bw2&08n zK7Cpg6G(M8TyJ!$h=c}DrL3+&yG(kJdO4x~a7{mOT}NeF zqy<;d-uHL!+ZiO*qASuqy}!M@&0E(6<8EPCoa~f|e z%c4xG&2@tg?RZ_diQD=u88nJejn_rI@enXA2R*yeWLeL2$7tI8{91`Tzu$pLFXV|Z zU-h(MUfXlM^fB2FuB#0p1bEFyPZg~l0m8$ZK=GE=JLc{6+7o#k`Hi%d6T*t_Yd$yj zwZ|=_CQ$gyF}!LDsziKI)p1|uF=@riA~Bksg|s~rhe#=YJ%FHnQ>JZJ2R$I_tEcA_;L->q)D zOk}H5_>kSwP350TujiPtM;uOG+nMRV|3z4r;sM=`ecIokYieASvpCx$T0F^GOP|i{ z&rI~;4BSa-c5`d%_`41f3 zxh(|waw^6PAJ8Ngxn_7zdNruwm6E-yvgN7R&B?ZgzzEP)Wt{u|g&jRC>Af(iUO3)- znIj`gFgZ^0kQXLIUbCT&oD)+1Z4-%=@}wUR)2=X=oM)65ahSOSO;P?+%$?=0@ zCDc%Ihe}?_0}S=+0gaPi$-CULauXP&Xh)Na1uU_*wyw)LK1;u}VcQmG=^OYUORs~v zE*gBzCL`3!QCiC`$?BP;F5cTh2MCi@;6~Ug2(J%3=-uXnN8*@(kux*a zV$HAV$SO7HqacI-8U!G_bh-1oK5_^)=H;E*>nY7y60Fft5tLM= z&d3di#^dq?u{`_0=?ukRT#lap{FLaj*;AxUfPLHCw>8stAC$ZAc8xix*w<#;A07qB-tF&M6D@`-){ty*B6x^PC)?vAx>04xgo+ zK2x}u!F5jWG*?Fzyv&AL`-2+|DFpVV>xJNFY}pZ6C1t$aGm>rWx3z*YKgtrw0!*1R8`#)XaFXYc)^0mw+lwCe1~#TPQ8H`>N~qTzFn{?I3TN)xho z%i(UUdC?HiOfk?;C=88~RA;b=q}SmkNYB064MCeV=uRKG;yl_@8C*ADnEoTOtf-d! zYaFB(!RO#Du}}F%gXNZcP6_`hO0;mS$%T%P+|96bA}54H@~q|Vtwji`m16nwy@pOx zrOsl&z2VE^3J&wF+;BcP0vCw4ZdzNC9RuWFF%!TeaX}lg4Y%$`?bk_0U(f2esJ1az z3#l(P9w0Mg;l+cK!7wjtJdDaSs~D#qvr>KaM&%Cs-oAXM&WL}))8BkGn=GD6;Ab^` zE<$XlG@}^D7q6}a)#xqoeBSoSXdBA)6@Cydtl_3lBBUYJ)S~5^(c~H>REsc58h`vx zI{V*myur&|xJLaomfiybD_@Y)SL z7&=IDQph#MHM6CAqp9OrwuGfYZivF6Ru>`ihMl2W+HLuTY=O@EHtCxR0L%dGmX4j%_~(lMbM6R*n}#={XF zLmwpuB@)M+Rx!rRk1cJdzgaz?7yiE23&gcMt0?o%h~s$g4z`L6yrP!<#t}TG;ffeK zz|yv|USqDWJIC+%z0h4^-J$n#Hs7qaLBoPK`lEeXFL+-;%Z@6t*Q9po_+dz3?P)x1 zr6W}GwT}rHrzzCS z;Z$wX(vb;-^#VARS%bgs)6u2a_W`8hG zY~UOEc-4ggxre)qY*A79N8kVN$?v(mp$D*%o5QDL&`1JNI0EEFLHz;sGwjvpkazLl z{YPsAl$=gM4U=vS_U%s#G3jbzykyZq!o{FofZhy%ih*$V9H=K`x&GD+M6Gp9H_*nvuMzae9g4#L%_DeLY|7g}T!^yBB&cdGGzxcI{7mC5v`y0cqkopA+Xg+1C z$`J;(aIx@Ea&!OE^Q^7HA2RXy8j3F7fxPW?I^q%X=5?^A6oy}q-=*ATIm3=3>E!kl6+;sG91{vr%}nFa=*!tTjE)d=O6nNFA%%*%sL zwd@hZ>bYyO8I>K6NR`fhH4yEkim884*3le#i##u!c^qXO`8ON+n-l1;nmU&qFC%(! zwctJ~oF>|GGL+kEq`Unh3SI#lM9`P6uU6aFvaoTf-6W59X7&8SWAk@rDiQFO&Q(R5Juh)V18xm}hVg3GJKWTPODA(J=ZBa(LA@M8V&SM+t^p{BS?)URz$iJkw{D{(Rpyz>_$^T`BqJ zK~=L_Uo=Gm;p)4XiQ@-R}@%KacJKX7RfsMHE;T zeAF*pQW5f?O0fL*_ZBnNM;A(I~jpKp*#v(CSr>^y}La9 zs&gBtE+4ZN+V*P`gz;WN%Gs0NTxfu5glmX6377XywmpH<>A_!I;+W^z5@LefbEEb? zqYz4=2_W{Vo8$G!M_EkowS1G^Lp-oXglH+X+_IgvYhiNPVFD_XRFsk)zG%yo`Xa7! zV~@UwGvJq3&66W1m8kif4@l#z-(dXGN!7alp-(d%{PI67BSvT=h65)u7C5y>ZHiDkuq4(jX7ftL|D1Wsn;wne0^?5R`FqVg*nSI>T?Aoe!M zK>J?-43i;9w^7G8T9mmIeH6bi7}vW0fQB{(12I>#9^t80L;pi@dLcQPdof$**RKwN zgJk~?g!C1$mTqElkzvjMCjST5o?fg?;wNlL9$&2)-FQQkDXP^=RX_i!HAt2D*GjY@ z0)XBhsQ)~g$4E`={wMubg0y4G zR$8@+$Q0rJnYzba3!gA=U2>(=$7zLXjV+`F8Wkgw1ErRwlBZ8Rvw8cfvLulbgvq7- zTn!d6znLsR$H`XflymWaezouEO(1cnw=*T#Dhxx5)+`@o?t-FGr-4JNg9DTe%q>oYyV0 zb!`wMj~-=7ax4?6ef*zB|( zjAd-i9aP)qhyWLQvTBkxt(5@f7B%j5hiXcRDgVKWQxG#@V2J@y>$naH7&vc43ws{sFzpCaEjU@x*SF0`^kxukUn4Y> zi6?gOAteE>*%GEsN8Z&oweAm$VECzM6KFlH7qc*ByeaGG5N5(J$2(VNRk(2LMJ%p0 zp(Qc`Fj27e%c^T}BO)OfI?Pu{nxh7WMH$~R=uBux zk-qUT<f)!b9wD&$yGPK$6LVpTco5Ls8ji!`{I3*vWNu{cpKZ#ef>!VY)Nq}X{O?4=oq%ujr&o>wuejhhBnu9LJ z*L-Kxv{5tVmm37nfe6 zS=e~+j%|o`FyUX8l4d?plT*vU!PuHGeBG3Al+OE*L$QAPxZQ{{+)ou?6D|mh z@_;N#sqd9n#~EkpJ2VfTce|3}FeJc_uqd3j+q@$-Y$zAp-t93P7xPT`g5S4feA!fO z4!;YFiHX&2fkot9tBvwDZMwijIqpCx9 z_CkI2xZk-purZYrk3#v8iIty9-VXe#{|o*nA?wM>^Ych$A(OiHXWs{dyOooe282Ny zIS=*5CG$qVO*r)j?y{}EV)a^o5;5z~x{m*wh<(8trn6vBBrb9CD8K0#qcB(emj)gZ z?_8J?AK&@Xzfn6_v}7)ZLe=q%U0PLzCr;a`%Q_`J=>OL#7}84gJ>T1@y>Z0)zJWa- zKqd50fgw4=td4p59bZIrZp|rj*>{-2+|S@`pJzejWg#ZBu?ADFMbu5T@~%9#?5A`=9kECjI2T)o?{ zSsyop<9-Zyui+4*M49wS%k^jcdllX$`0;LtyzsCUM^T|t8FRCFm6e@{4c9&z=4=95 zRxnOogmHgkKxgD73$blWUJQKNCm6Z-VeTN0IPN3|?q4o9`3w~`mz;13R@M2kGQGQm zzT^Yz+fO)dqRK_enMTBitbh^>>98zj5$6qzhlu{rA)47D1xn{ZB=1^H{O_!d6~5(O zy13;}qTAufeGT`an_Okl%631S5C03Y^{Rm!0;M`R<6&Wj+^lS&d=zd4?>Ihib+Q0lrFLcd z3v}r=BL`Vn**P(<+@ml1Z2y~>{|i;DCrTc4d)%FOuF3KuseE(fb*m*xo#`ti0y?-S z7ysE$uqXZ|)gIFx#TZ7>H1pDJ-NXf%VU@T<>Vj@ApPFJNL)6WA%yd;WbTQ%uyvq{d z^-6rjOK$6_E*8%7xKj7G25I;5CUrkSySVAXHC2e^0opcd@UcApy{ST2$iFVkxg~iu zu#!0zS^#B$2{&uyEWBa?WeptVg|!e2U=5=@k(P!l?0o4}q_QM%aNWvhgvPvaq-wdVEs zTf%7Y*yqp|#S304bq+6y2o!pVJaRJ&@ZIZWtV`t>wD9WwLJFuOzMbI!WM5xNJ^10$%yv_Jai8=d}kfcGQ8y7W;tT(ho#Lui-QSRaLrsHRAnY-{7e8nETE;r6qb z#?4dOCrCIENNw>8Ii=;ZDc744#C-2&d5%^VbQzzm?~&#^SqXvi71?&E!!;6lO%i~-Z9rx!`wU?9fglyZK0bbf19hY(Z|8Lv^J_~xch=;0L53O<>TNXUHJy(6*m7u5coTAphybcMH z`!V}GI?0gn=e^g&8d(o!s~86V7t5f?JfU1dBd4tWbzC#|Oll)-Ybf+}q7Z_~*RzrB%rce%v)~Ro zR*WRIDedV{QmLj1&ZFyFRQ8GZ0^$1Dj1esCmY6t znS&1oLnJxchd_bZ73P)Eivo{sx-*nWo(wJ!hwVhhz;Wr*Y0un?prRT)V1^Eddm-PJ zxmrvIi3&!Sc<;0>mZZB5cNGEnFtI`;h!OQu|Kw}}FJSIX=S2~S7S6}QGDBsdf(0lv zB_^$WHs(X~6S>@}*kehlYJb;RAm7^5hLivDtrm#*XfO61oA7!(Mw2`26))0%^dz=f zJZKjVLbKe+33qf-o1RTRJeZ|}w9 z3?d;3#vage{Xv8(sM>SI%hfw1ilX8;9KUTa^=36K4(VL{^3-%|RA8-v$G~rV5u@-Q0#O=PXtMJb>ftfG> z1>h+={68@JJGI*oKFp_5A&SwDtl`b%eN(g9?`PBkPy=^&dXMxZQ%ly=^H;c64zJQXi@2HMNal5GruZ<_0r~_(JG!*M z(y9s^D#Lhqa}pEF@1b}09hW`qqW?d3e%ZjYr?Ne=R_rkTzW$x78X@p8FMk%+reUfm zDV{cyg`{v`t9M7V!J}&ME5$oehXSPPJ!B%Zqg6+KrKuT4M;STX7HZtfppVOvP<9^Z zZTK6|^C3yykpoTL$5;91grxGCE*{h*+SH4KThtbh$i?IOCOS<-0e!=eVB-9xm? zL#i0#ou#6G+MMid?7s!-ule`^M2a>a7^a}o>D!yQ@q}Djjn`RhorM&03Bm(5oPT25 zFv?x5eG=|G)XGp``0q6Yjt$Yvf*d<uEx&)L)KddwfQ#R!@-Lc3dM_+0>#~}P$R?8qF3~oKnyz}A}o@tg6Vkk?$^o$@> z+S8y5EyYs#AFB$d;C6y81S(MJT<73{da>HMLzbx--XrJ0yLZ`xNpzmu&+1k)sMbI1 zkX1B>$dDJ56+~!j%b?9=oZH-+D8868i&bdTGcZh>aj@w~9e{#2Khx~{;da+rCc2ot zh5cenmG2fGtfFkiBqEpzNsKG{#jrpZM?Yg^g-0BA$!O4l=?^fZv8U96P=EEpUh_k` z!|6ogSo%M5yi5)Zfxlr6E01~?z!4O5@XvIh%=W3s=rHydij{!X5B&oi44&mC+JnDB zj@T#HQPo{8TYs21Ycg%L>(6C5bIzaSgj)q?X1)bXcA*cvgSQYDbeS6%g8V9Db)M#GOhczweAokl&2cKA6tI8%v{_(-|JmH&oY{9Q#RJ#FCg~q zRSMiAUaoFP_Ob}Q4!285`|`!r5Kpm?vmoph^^35`sGc#b*NZ!gFvmXh-{xWf@~*Lg z-~4%X=XI;>>0$9G?+_|NB7*{cy_Tvlm<2?EW(S>aev4>lZDi+G!lT4q1Q%iSzWV7U z^9Pp?gD{%(=y-bU@egf2zW+Gz3T{*A!i=KmhG7({Ni>R(CuF1#;0Z=I1?brr12X6j zZ&=Dv_`{mazxI27ij>5noTT6WVXu`OltgN-MG0l9mkX9M5cL^_e)?u6A{$Ah<)QHq zRPsR3P6B3xpgG;2{FL~Rk*i-R+)1$7Cd@*Yp6AoVB36wh5O>T^-H4I%jTkO<4j~AF z;f$qb%_qE3*-ToY23Z6pV1j*c?SmY1z8ZH{x`zIjZ%iL$G~?PwI4RAyQYIWV>K6Q^ zpmFicOlhhAj**s^@Y-vs$7w9YwKDFut?P015FT>Ix>CVPsjw8_9$|tz11LlFibta- zsg5djQ7%j>!T3LpkM!~I?Sva>nQdlprgg zZdfCbrp0Zhid4%{dx!;+0gu>{Kg3~E9v;N)Jx<*c($xIH+f$rnM7R6t--ZBsYAhts z8N7V8-p!(gn!PXn!ojEHVI=zbIZ?=TW6v<2>37vg9|>%g1kCeVG-RInDzn zN<8lkLFA0 zh$BFuH;X$hSEUMro4M}aVoG%)%`hej*iH>2mswpys&UrNPrWI-HSaZ)tpGaYx zC+mAQHL80Er*3w^)n_i$c04#5-tPJN7IlQbf440t*xX8*y6${XI=60OlRQqE)EOe; zho)}e5LUHp3OHzl&&t>a^6T$_RUAPWyjLU2dq8Q1+ZRPW& z3#YoL=#MNBFCy+|nxRt4&c&<@kX3a(Wk6P?@ z$L?-)fLRCYEQdLR???11A>ZudHPvx9^iBJ8tgRL-n#DL~{+W{#pjasi9{u?kw)L52 z{Jaa}ZQU1Fgp1Np99fyynAa5jeaB_(hT3pCK1JTt z%?bEQ*Zla@_UeD)<5hNDB8zW^`2A5=U3{2+9=i{z>&9mfoGrgoyH~{2e#G!rP`QeO zAk0X^V{`Ujqj~>~=M|;liq@RPZ#yR*5D*tryYUz$P87O?lHy^_aK9@3b!+8Qs<_+m z?w4jtl1}892Y`Ne-BoBVv(e=9HVAKW;b6ogYG{q5 zj=*B{g#}Kkc@LCgr#PYU#B>jDdPAPh*aAOX{_zpUspgB-mly9R2(gI|a;&Q37e->s zoUM7@3s6{tN*cQ*`y%>Dg=@}!pWHn^$*t7Vzoy5(k@Nr+n@9ZNinY)(x(dgG3X3Sd zi)ZvUf4D6Ow$3B34D2~Gb`VNxoov?X-3#I*&)6@)P?4{)H;akV^Cz#*HS1hmxA3c_ zqTj_5f*jDO&YS2begltMxppPj8n^6M-yQ|P^IA^U|7lWSFV10ncBJ1pepXYKIS zg{r4bvebgKBUjZy;(Zu9!IL19?!Ad*mK;=0F&TkIiFik)opQpCojJ`vrN{d9bS~C~ zrYAWPgG_A`>O79Br#_qek+_oLd?snV%KM|ETU$_Ib$a9Mb*2pWUON~JocYqKXOz=B ze-%?ETSq}1e0*@)`xS?lD- zk7qH&C)xG?=yDVZkURv;KHu}FNw4`Zh9JK?|4}Je6rNYs_U#@I^j!Ryj24F0rJ>0r z4dgEmty+Wp!!~zRA8P~{6-f#GBY_7!6Lf|dVLW$F-y`UMIpH5?l+wf2Oo;ksD%JXI zeZdKBakkHq8MD$8In6P1k;c2Cp5@var1fBfC>?>BpfnlD*EY>Yo`cX&XiwMo7KnF`JB-u?&d zMQWTw(XR!uEI$*l8h6#NJox*+x0GT(H!(NCez5qUiXaHs!0_WxzCV)J|N7mN?Wq#~ zo?EH=2LTQtF#++RUDLDwh#(WwG2Suk)Ai-mF1O`TpicG1B%DJ8W}`~49yZ3oF8JW? zg)a72b+?CWdCcpNG=(2-qF+nEcbnfEm^r~9C7EShBmX)9tiP)l8HBvj*xDHnZ^2zH z$dyurXu9s`Lo|7L-UV}?(KZ~{ng@e1&2}RV`TzISxGU_Cz^VgDp``1PmN)YYdrjN! z6X^w~1$+y~L4t|Kgh}pmf`ZnzNp>XoHaIvUYY(tR9^t&i73?9WO>)8xJ;YB+W>2$U zd&k<>_vm$yS=zOI^i$nypOO3LrG`P|8hzR+1$ZX(RLS; z3MaMEu$S%(clq}tfpF?Q&JFgOjr*g>J7+RyYS>JM@z;Tcp~~YD&4sAvf>84yok4pzEZe& zbWzs1)x}6&zjwyjwKdjig_gJ%KO3kM!`G?Jy<1j5>s_QPoauzlGyj~1qOK^HH#&E6 z<((ID2=4FJay^&46i$2Y$I&N|cY_5i(QJmu!aMzC()Wkez{qzGVxu4-o$}YUscp=+ z-ONavk;l5nY|K}bNSV8B<~sSy+{iuDThJnlH5hyBo4akv?T5nKG9)t^u2Zt{j*M%gTo(p3mVY#B#p-kd}t$DY_c zB=t^_aYQMc^rYS@4^Zg-&kLT>tcn!cN+q? z#~&|Sw>nQ`x_SV0`ugdrKkJ#W1MjErH$0iJKI|>gteCm zc_PdG+_Hg{=HFvnmBoe~q>^$P;~zP!&waUfzm7nYJ{}*F0A}iZ+epuVJx~%ez?Ae4 zzSzqd1FUcl<|(ZB5ZI4`%+DXb<>vCX_L+2dG_p=TAL2@?=DWTXy)>$&wkrJ71Uay@ zkP=;~JeKAwH*{I&-~imc_))d>n%R-Ai~h70xr2xUK=3;8f^UYm{3Bhxf98Oj`T@v* zMec(xhNvp4h@U!w#PW+ey@bi{yY;ZQo<*b0`rY@Nt~@TWMUyTMvqzgbX%e;!Y=4WZ zuXL-gV2WqDlVP>{7>kR!RoSaJ0gd;6Qv=fjJsXEkjDnBPOZp5%M&z%!*>id}Tj#rx5p1lu2rlL+hRO8f^x3f6-0-n{35 zk8x_)dC=TUZ_3NeOxt6jpyA(F36y7*>&zp^T^xKsVGM$2*=bQW^-D&Xm8y|o(evX- zIaYMIb{=6A%-FO+p3u#W0Eo^OfN z(Lxr1M#-XVM@8?=AV?2{SpXR9c3x#-Zss-1+!pY*+c!fgFdz_d3|a69@aVJX^c#d( z#ZK@EEC*C~+~NQ3&oqPkf09V1DWd5-ScE^9G$2S+ea&%T6JiA+u+x%aCQ6NwRl zhYzT-NtRo^)30jda;2{}&KR->EoBsAY3o?L!c4q995vVn*;^pA)br4>|p?9ZefHE(PcK2lJu zk)37D5&nDR_wT%l=g|y!J|xJ($o;}*nx(T*ui#D9+UM0(RjqPxTern(4Gj(CP^LzI zOm!+)c{^Kcph+}4^xf8VZGRPg=T@^H+NNSQnZa`|ueP92k)#vtGJ0cnv6svsVg3Q( zS8dr6HY-eTFqRs*x`nvEL@T7>qhVHe5jcfqOh?buS=3j4s;w+WL74BS4pQD9idtv8 zj@wL|*1&dO^3&uHJuV1hk6;4Lkb&I0`-+3Gq1>qtKw?4KP3aR(lBz!FJ< zjjMKAULBeIHc`nl=Le7#OJ7j}FnT23fb$2>u=#lY)nu$=Q2VsDSs z7^f&SYZL@~VE()L6IUyj|FHvHK;cgPu5;ZhJnQUzunM8n|BcR^THD$yzHvirPln9! zhMfYsWI3K@cFQKxIOI9BIGR5_>#Ye~N(PpoMiDwT0d}P_SLkFa?k{QmIu-iKyt-2vz zzMp-0h8jNdyie|0cXTR6X_(fgH5KA&6NAEU)VBYCYF{+pZx{!DmM;uFrz<0eGZwRX#@72`Cs zl-6c+8Xyp*D=#wwdz?-^>aSN<-B<3roaqp!{#uQwt0#5*N(SjtEbSZ`h^P#a>n(hUVJ zovzFXzmSQ(L2|n7nTpmgakV}nDNok!hSX97CU(VVHaE6*VAY&85@3U-^|OL)N0m-F zH}!tvn{LK&)AWCEhtrz_X*7>5e$C zu*WidJrWGjpW%V)Q5-K_#Dl5E$XN2|WTb|RH0wKfhP{xXd->sr8EW4Ma`*_YFX z2Wt%e`D>PKoT@hA-!Rg{F3W(Gx6XLaG3Ba$_mgLA#CadZ%9sJ> zV3`$9(i+p;H=}x5bJkq&-sZm#>tS1BbJd(#&vPiN5EZ-gi5Wk`&Jqm#W*4wqR!n?j zxo3wEkrUT#5Wi4vuOwbRtz1^y`YO-a+cxVpGQx{JK9!;*LY@Iq+&z4k`DFoO3p0#W z^?&)z^;Y=#wy3a_P*w8h5Dm3S`wpFPlqw!H!TF~L#n6aQss*i^QrtuvTl!F>K@_9{ zjBJX$(&$>fo9mCTnPTcH3yM5kkYA5LN!)obpq8pb(FNR3C>4At-os{8tA@2JYX&0j zj;*f1NIT{mWqOIafYNWxU;W&*vN}W(*M9jkv$C$N)3}uA;p5? zkM9n^W(sct1Eu3@`sY|^|6=_WdUTD|9{=&u(7AM;kU8URqPsTFwAmY0p&6pvV#Rw5 z#wNqpd#wIa_AN6J-i~)&iWcz!OqICYZnPgy@Y;bh{9Mv@bu$zfIqGu_JwZGAM?3NunX#Gs_O0cj439mK1}_(H7Nz#*_%v z5)7z|w+>nC9_}UH=#_a##bpENh!$JP7B&uW7q5}SsZ4I*b^mexHeu_2>6IDa0%!!s zS|YdvLFS!e{wh3h;Q)g0^VN~v^QkG!&#rI6Q}|o%L(~q$1wAf5iWqq1K>Q3}v0_-y zmZ_#xcfQum8eMNwgc zBU%#?$k`?UG@%8Gau@gEd*;-rvGSJ-0GX`Zt_D!>O9GbMv9Tw~k4_T|ZlOk_1KzAH zM9&%`0MGLjqRmwyiO2Nk^A2!9LFQ@0NFR1u2mevsUgXFPY2{ht`z}u>!peOZy~Ql; ztj5=YwyoSQ`*}H`Ww+Z1nc?S9^y=%C%4i6gl5nBLNJ}Pqo$Z)~n|wHl;{Cs(8AXv6 zeq4|b`qCq;CeLG(q_Rq&a59>KaB!QBd7*>{!c(?MysIsQ0-*9T(QgtGVKX*AQ||r; z9t#ZT*rOpUg|mK-f@BAa-hoEn1`8<|ZYWH}ngTPkHwX7uM3^qSn@mTU*ftR<0?7Wb z6i~^$w+{5jhc~0sf&q~cEv{`TgDEm~4CG=-@9}Zx@(#;`3!f`6ygbYLR5}>Ki~~CJ zorPzMtkpI|grh+silz!f4|ZPCZ?Gw}F+85FqRh4C=p4ugJ$wJv%y*5E7T7yJ-|f6q zldp*)vvVuINJUTeFIL~pd%hj^mAb2{zKgmUMO{LD2W1@T*~y=gM?(}TQtyu1?$<9` z4-Occpskx8)s>~BU-I(&?$4KRKY^{2HpnE8OGoxOols3+=P*_ww($cz@_i1JbZhu79> zXZsD|zTqAcGhEk{0ss=@VX^BD?MU`i`ef8qSxORtGOHj3N2-y?>d8xKwbko5cKy$*(f+a_2Mb@W$y|Kt@6z%~FjzCxiU#t4K1BG(Ko)J1 z+FLB&_0}B}m>vRpZVXfFxy!`GJ%H0F@nd|C>GO&3zyVV#|Jkbs2GZF|=GN8AXQ(J- zmU>{m4F_uwZz$uyCA+mVp{r$d!%)D(=NVhY-4Zs8ac_j)?q)_79P72{@INN8|Di(d z56fMMcgOJ?#om299)PNOm{w=Ez+<=&^(pX+N5r?4&3+eJVw@@J@}D-{F7&zO*M7d$ zuVh-s7v}~k7D%WTU-4~aVTn1#2u~bY58E`zB(rXqE~GVe zxShT!eNp%tDU}i|uY^soSN#Ci@Mn-MTYSYj8mJQyV9*KeoscU%i71mU@4Ed-8|{Kd zm&)gGhvHk+st!*#3tRwbh|>5s;U}FE;XjTf)L+;wr?g?DF`?DgKc@fwWLw39#v*48BKZvj4N}1_=g=+pKIGj9x zSLq3AUOt*$7OWY<6h+YP7yec^Z3J;DW2#ozUH7^7JQqVWR&o<*sOu_)&CdJCOH|6G zYU)4lE0Ht0>*kLYf!muE9a_q+g;&}zqXz29kKgNEDpR$~_ST{yYR%swk43-$;D~VI zn{UOl6yG11Qk5`Gs-OgKhE-jJ!iD-}(vrLqR!DqK?Ov^g>15Ykw1M;m*(H(T8% z&+0bsOuen0j#BpXQ>dAieyq3!@cxnd{X0Q8|MS7lwFCYd;l~~?O!DCfR#egU%@iv{ zsm>#(Yb-%nDMCIMG_fw5A;MBV#$zv3si~3*o00#D*c$dub1*KmCf#H_!UuK{ub-?^ zZLu_lt>+aq?V7xEdX9p+2?k+*s+=r{ADq4jM08&#QhedxT0AqAH>X`Ok^ooX*Z5cCr$5ik zCrFa+&r&}NVN7!$9?{A~NV4pqOC!g$CLX$0lBG=_kw~pjmEq%yx{Vf(GXDy zgmbk@%rfBIn752*t#i>(yTkjZx6f&r&2I&Cu=3nLrLU)AO27j+)U zf*_$h_zgORDdw;@q^xX#lOa^|XZ zc5s&hSd0Tfu~c$xQB{VWu&RpKIYmO!LXJiYesi#ULh+Mt7{#zly z`vIrrPUQK=uG!jNZ(j>e(W}=ruIw+s^PHXJ)IMi?gl1t;CX+;_=m2xvGRJ_8lxi}5V=# zsk6V&OBK6V6;lX?{;M^Y^q9M_G zu$vn!*{d>`(P$;0H@%B!vgOvHeEJ8}ZX93*o7t)wYxTT5-pa7>`+ys9rC;4_?BTJH z7=|&80Tg7g6G{Sr@9baA18jCyo)tF4e%K$&d|mtfkiv>H>*K|lci3*45v!@h?`0XMb_u_mN^ZZD2h+l4>qn?Ct)svAO*K8UWUM3%bwsz_L22Q^Q6 zxq(nsTcIvPEu7;{4hF$fi`qDGx=^X{^D~U;=0QTYh;ORw3ci?|q46@pXYE9T{F7}7 z{h!a#iK>=bJ5Kcm5_|x7yEHqsb`tNek3!XIzoZixes#_XzO-7C%?!p@)IQRk_*(JJP;1ryaf@t_tFjV`UicMEP&;-x@UbHM|(^Ixm50WfD5~NJX$T_RPo;- z^K2W?NYA(Mh9#b5)+_zL&Keo*K`}uFKPkiS6UTBZ0ry)(r z?DB-cAHJWJU^R20Z65~j!XF;oI`~e1#(DVDJHnPdP&R3D&a9|UKmfdT^u`e{&Y~h- z&#Y)I2AD%z4}roYds-I*+z4zZPM67QClmZlP+A*qpn7<-!*2vuIb_S+J(XX5rGdg^ z?h%V@&bb`%F)Gw$-lC8J%@{r}Y>z&d0x_W8Z#@Kngi7-Zv8d|QLo z;{TLsaiTF7cyk78#u)OoK)Pg@_WKF_hj*q>qiP@*^N!KAzLKAI5+{+{*GXuJXMNCm ziyFi}31&p8bo=2yDf)W~Nkwc6>pe+vvnUARNor@q{Ep_yt2!R)+BNU#S2boW$3DHU4z0~Dt}d3Jyk2uNb~?_NieiU^Q5}He=7-76Mh*J(*F`?0>8Sz zTmNuhfx}KPnE8Vz)oWLw2GWQ{F~N@DT~2R%e+5iRlI|=Iuy%9C7(EfnR!{_OWD2xS zH_8~HeOmTA_t93z<>DLe7ATp(8ALUD;eM>+YLhhT$QSv8v(U@xD$~m2XIt{SmI0as)97vPD8#{3~KYd339rq7ed>&O=4%c;;uaC(p0q;sD2 z8MaL&W`*~zi7iJTf}wBYZPt@z;`>gY=k`3YZVdcQtbESm>W^~pkkF{K=Wi|LX_f(< zb+(X^EBNLvh7txAzVr`894v+*_~dV%{>sm!6nR7QV4M^B2QSIo_HSq7v|x|<>&l3* zyofyBaib&)v8a5~Bpz%or~D65g)SsEB9!bvLQ8in$G0v1kK;x`mYn&-FMDB5qM;z(M7|Som_(%DIYfKK|$o z^%*UjKJm2+{SEuZo|M-VAOjj%@6LDW%fk#2uA47)`c_w89#B zMj!=*zd_galJN~Q{?=~!-K!zv+(FQpwq~K}Wn)0&Xyz|h^+L8ufU}|89<5@pS<#kp zwK820yFj#}=Rpbv#&GfS;59!$u_D?z9J3}Y%cFyZ9+@NZSJsFcmlM-%N&?9 zNQF~{8m!YRM*}uZ`)2Bizs9_#_!Y%1Q`fmB-6SBVaBjM#x~ZF=iUGTJ*?WXe)=F4k0{SG`e}5l7AK$uf!ujEG z-%Fer-oEm+s*kH`<1?xBFVECwxYMS-36w7|x#oT+?ib}vZ@T(8?Ggp)oDBEK3VdUj zeC7vf_tT*R@<_Z=Ret(gAGdGj0Z1$KX@N4~{~PVe&jcU9x$}7u{y6Bqm5{U_YF5HA zWA>H#yE;jT@VsYFu9Cx7CwUm7i*8{G&JQeE9}K;aR8QWEwnCR~t|dFG(Jd-tx6iA8J8VuNxxg9}tc${* zCGVyfuu_7^jvmaBRHT|&^DEPT>OWfg{HupPFbtne)Gy5(Y5Wd*c#A)(22<#9Eva7A zm^I<6TsV3ZATuJoG85wl@UU2NvH2xU6c9!}0zLq>A~qxtx03?RVL!rbsTwH4UAR%3 zL$u9+L~5al@avHZ$cmAzoFaCbrL9FYt(mcS8@k*Ji`1b~Z)}&bnxFre|I=45{I})D z3b^*c#4pzF0HyjH-ezUMEuw{yF&r;k0oPXpFFRFQpl|~j+Kq>Z$rJbZ4&-|rHkZo6 zlPEAw%{B4fs2rZ42!mB>Nc21G4fVn6rZ?QX2RlgEVK718pNRHySmvx#yWkQ4&dmX& zlUWYb0;3&Hd7FD)3Q-qQn#B=S|D2H)G5osN4qS3?;{!CK&t#vb$&<-tXXCkU%((nn z-fLSVrj_g+3VqKf5@m`>vRYE%KnK4(`%lUk2yvgzZOGWvI2a^5Tyug3LP3OXw?(!@;Hq3 zJ4S3AoppxbRh;`W?85rKGdGJ=q84dIN7J@O`_51%3N9lxyW+__qcv!F;p6P|Nt)>! zZb~NXm^z&xYCHC3JhTkqn{AUhgF}uX2;wBF~}xkUk?Xn#vi&EBrUT|M%x#iU%06N(Civg22nZC1U55U$Wg@N5GwEL7mP}W4nLBuh}y_Yo3UwkGiRs zLDM7R2+T=azkHYJ;{C5)=6_Gb|D228G>T~8L|JTqx|9dF$icKgG?Kmy4;q1Q%`=ok zI@B9oPc<2Dfo? z&n)I0_ty{|et>q*pPTc$UB}%sLgTD5?3cKaiEmeaA2r{K{P{GQHd54Cd(C6{-cR)E zfqeLfmuS`3SAxoP&$4gy1h7_^VmEy8v&Mix|0b-xVi2}NjlBTuiGbao;(gpzo(yiN z7CM4*WpmVed?6*d zvAF~%=aJN-gZ}b%=z=v5FWjPK?zAeWRD0H`_2NsED%|!U|0&(jwzQn3-@>BPb;?K< zFv=%)v04mggIgN_-8I+7cL{&;Gp84nMLls-9BR|mi|#%7j$naB=GC|`aV)6(FT*6m z#Q$XDk}nDK?C)i2%LQxLY^8@Vjw5;RG?pJQJs~6mK`hA#Z4g1WsGl*e#Aq3~b}|6a zQO^F)HAsq`*#AG&Q?ipsK^j*pbAR0|HI z8~AWFZf#NMWS}Q!Z#Qj`%@JM>S_tRdCR5uDYs-}@%YGhhc(3s)SEh(9AWK7X}x!$ zV(m81{{KV#%Bsc+fx`9PD_KtA`dhf5HII*VJIY@?gQ*W8eoH0|SVMZbCsiff4USa? zJOn5OXQxc1M@KZD<3#oz^_kYLkeA-$&;jLY8u4nT@lUXuzk$ST?)0uX`Nx`h=8Gj&o>j9ThU=1@r!Us(Vu6!X^EE?tw5yg&N0gLQ z@EQ&1NC(rE1T-)7Oj{1`_I%dxcVl9MFVQQ^P9BHD&`0CdFv!+{y{`KvCjcWX>37IP zcS?LJz@Mcrm@^e>oVWt(E+84jD?Mp!_BwuYUPubIBC~-tiHA6P-M(p`-O=gZ)xGxkx;-P#bhez{XQ;-ox|$Sumr}?&00~<4K{CTTj2Z?EY|${ zDxBlDX{F};f2-de@5`$&VpdFE(~EEFnGbkoG^4%ks|$P2TP3CX_-#pX8j&yx7LQ!K z{ZgF~2ZHD7kZZSW@TUX6cdsigs6g$#?F5!78ydg))g5mGa%kc}Wom8E3%9BSt=0kA zji>v#^j)G?GR^}L^Ij6-ISVCkkwIl$P{f|zs>!}Ruee~u_A`}zPscvC@1*?=)StaA zY1fj8KnJhAS|yZP)~V|BnYh6;aCOP!eQY3u`1!En{1Io@8IDWls@i{E;=i+|e?DO< z*)T6_9+THQz-^HDl#ZW3kFYTEVFU-W{^a))HP0iHei2+~2tIZ+|A-e43(u>Chp`tN zAjr=yqVH30^NV_k6iAP)!p=ZC=S%1$@Bm!pAN&0`AK`5@4_uH32oO0vHwqbB zikRkGp7XxH>icrD2yW7QhF8H=Ly@6S+c4q%uH9tagjKzaw#JYo8DP@OUG`9x2y~VZ z`kZrW+5>lajXEQs?wQ-&PP7--Vb8OIMa{2KzxCYJC%M9Pk;2}$JKk5!9~RTKzC=^f zeDLnm4)%&(G;gEw>gM%VcjD^M+j*s43%pFJV#D*sm&V{3ki+F*%fl2_udRvIypB8j zq_)Ov5$iocmSS2DfsqW81MQBY07SJIqRob*QvhbvNpN63=q{0ngd|UjH12-RG^gP( zu^>CX9Q7cLeb%QYeT{b=6o%_nMVr)w6}o%(N8DV4Rw%Kubgm+~+lTms8*5jg1IJ)V z6nu47fU%9({wxw}k$Hm>M8Pn-pY>SG+Ul(quQaT@iu4541L9E$fT}+#|KX_SVT6nI;WaYf zHBKXBzaQc{{gwZ8>g21|y#MU$E%{6bhbB>6PFo$!s5ak*IeberK@16&KdfV1)A>LD zb(j~XD-I5@{lphs{jn#jf03^5kbRTCAn(lAw2p7sk#18jB!%d~vQI)CL_jJ;!>JS$ z-brO_Gf2=Gk(;Qfu*>A~SGAuG*whCx~AOA~={7-f6 zf5G31+X^!}Oq;J|>XZ4)*cjU3SIl1{)~!U;>>83Y+Y9>cSwT8)Mh(9{(m@~%^shUL z$e+a?8GKFi`RnvxM3Tovzg&T{ilh-BB$gwgqKFfOf650n(=`F}714Ui{`nWk$((XxUG=#~&w4MCD z;le1|^bHi{Y&AA69{Jc>T>1D+^Z1Yk=NI|Bujp$oebeXRPciIDsh9TkJ36ZF ztw;5b+B(?^94N@#Z{C|Cww%$zQmECfxs-4hqGGKoymG48L67{c>FkPwUxgOq;$mAC zi6Iz$SmkyI2X9@5+kXBQ^tGkfe-#9YzxP+MPL1Tv$Iy{nXiOw%*XUxZcB3` zuko_uyH7>6bu>1$n*tsjmQ(HH89hYRW!}=S7-5kU)7C8Ed7VgFgNHnDK>ktu*%#6U zjUqsp3%9Cyravik=JT6{=_34aJBVwaNXI+}mU_gX3`bhqQnY(hQ$70)dgo$Xm?0{WFfhtgG}t9?JWjXDB)$5#F^N}* zT|HI}6u{C(dP!HrTZtP&fZ)NXK-9x4LCb3vCInen2MHfeERpqTp0bu<80}000_!)+ z--yqQV=ZKzf%6u*j979JN4=E5py+415`9KdkRS4wUSisbAPQm6K+1qCAi!*|W>}f# zzhcbuG#HD_$`3P-^2UK-VRJ8P-+jv- zEUi$vdjt=uuuS;)@5bUkSTP4chvel(&3pMV^#F$i9I27?#+*Z6p+JwT0hg6IUlYv70J?5 zQQaGd;^pP#z+4$aHc4lZ9ocAfpiiFP##7!Fa=MyWJyI3f0Y|vG+5=`4@d)y19?!xQ zsC{m_d#TEH$lK$eLVOZQX9JvX^Kn6EN1|EjT0p{Zv32G;20ZxC1n>ofadYMiGPi4! zXM(#o{eP*_f4?R2N5=!;yP5C&bgR8PTm&MDmT^F0JrId`%${?+oW_z&*FornG*Osc zoCT~#_*7jaEvCpw^0S?A8#mXW2$XjaEJFQ3L%`_t!ZQ2;}=K2#YJv$Dj z4Z>CAlhwq#{@2{K>;?FPd1ctN%IBOl=cm7CG_Wjbv$|5@7vQ>^_D>omnv+};x-B8W zB%=;Bo&($?Rt_cZY7=i?$JR@BOQZ*x;OGqeRm5}pCq>YmRp^EeojhNjpWi%d{3662 z=VR3>PXC(!S0rt!d(`EA#;Ay)&m<+L<38F(1$)~@>*D8jXwoW`7V1k0zzZH53@WA? zCZ+R4zKpF{*z?%h-19h^qp|2Tr)yEh@-~dbS$%`zt=}bC0ly=}!UN*(n>!J+M&lKl zZa4pUa{&=5ulex7+t{7PT4@iSaB33=R&*h_(!$Ak3^#)9^q37p#_0@6oO$sBQLSd) z@zWJ;4T1zUk7s7+e-}OulJFr*ZCUCbxqa&v;DbztWGxg65NvQ-@2w@WUsS2g6AJqM ze{{WNRNL*g?wtfH?yjY{Lvd-L6bi-NA-Dy14^W`EyB7*Yf)iYdJ1y=|C{Wy8`eyBY zp0n28XT0McBgv=#hm71ab6)eBznTB=*Y>yDTDSIay%AUpX83(|#c{F2lY%^5()6vM z4!_SDP_w+#;pZI)|81AMxVhaQ+Eg$5`T7;5-U%@wJqvqI2~x5cp!Ddt<~h$k$qLq_ zY^h$;gN=x(24^ppKlOkS?;6Qq!Wox=ZvBuYQIldz1X(y{gLL=YweC;YcmJ9fWNk`f zYu#W2g+DhF7zm8NlR0EXfOn?qxbcYGNj>dvPn`Mz+3pb=kXNkQbgbHK67}ZS&17@w zt)na{qjMrdfy`&@g{@@{P5+FXH)#5gwXJV=8hADnP%uI}_i#0G&5i!~mz&TAl^vZJ z*Bw20XAH2K%Q=%Azq&h5lBE8fyRg%`^TBDl!M>*hb=eX^j1RqhwJ5zVLP%~9nz8ji z8UhF}-R-R~-6-g=kosmszn4=vuBCKGKxl__Wm&D5H}k~DQ@MW<7B+5fwXLmC2x#e!E zB+Z;{9eZZ!1QJ$c!hZy_NEhQjBv@g&mQs|e6&~xdWm7r~3l8EAC%up$4Lr_Bc(u)D zJ}acrZHrg{Ih%7{1NoNxcAm^h*xWu&Bwl1^4&x~6VW;|Gq*!bNJ)9D~K#))a{3XTPAFte>-Nk%afa{BD>G`eF-dK=tT_WsL?9&>A&dK>^}o* zYT%tZ^~nB^J)5Fie~u|5CYfg#Lo(>!|A>Y$RDMLET3pPdd#8=t^REBlesSdJ4D;$L zZ=_djw1C;_MCLPdFm}|zlOp&-5BjT?urNinf>RgQipZjrhi|THSJY@#rF2Er~2IvUcW8NUex>uA$W8uxXv8kzyv__o&z4UixTRt02fTR(agCN@B48$1xkV zoq1phf$Rs)MbQG(nwf8a%I%FPL$9JqB$&x(JeyY5jwl_E%MdFY7ucM)6ynoYU&hpH z!D!w>YJCk)z)o2j%S_m<4lw zaYgAK<-Dh0YRU#oA#2jipaKo5$4FNFxWt+w4n42!kEt(qaUmTV<86y&QTD>!y=EyA zD1P7Wuh={~#RX8KEk--wt{eM9$&=B3yPpfRTKY z8%KI?4EV!|I_t8Af1l=XC}4`A>cgpHYBYd359sSj$S!qiYVv|$@qCOwLgF*A#^hZs z1HnDdWd6`Edh~*j$z(jq=0n4g9a<8G z=iJAS$8U4&a%6p0Yc&O#?Ghc-muRD=-Avt3cb4-LtM-0F0uXjrht}DqV#;{YMcw!| zM%Is}X%ZgiyGhpEHCh)NA4_XZ+K^s3((omkEe9;m2k5~~&&2=ZoA^J?g?9=Y#=$TG z9ICMU#xs8m$kT19j;PtlMbtZ041U#{AgRz7NDn;Unr?@o#-ZNZ_O_azjLe&f@lfP4 zre6GJyPku0SKT%ehj#^=nsO$LSlqE}DK36{@hQx=4A@-E5wwJj>Cqs3kB$M^=iPYk zbLH(-jmny%9vB-bkUT(Smc$x(tC5SHP`;uD2(G6%mof5+vhKJxz#_68tlLu*t-yogdI}Vi z?8|vOcw=H}X-`TK0t{?kCONz@nU`DK=|C3HIZ11S$Z6QE{k=u~c3k)&}^@8Mf zQE)UE@Fee)bxFp7lFHYy-Z#&O1h|cjr!};;Zo|DQj;Y9SI>Lk8<2!aYGdh;$Sm~IQ8Zt~s z%I<)VS?ACb$d7%doX?C)IXxEtdcb$KabK(H6K~^Ktf0tV)6UZBDmD2+`Nt?uIO^%` z{-f|D^Rii^Th*AS66a$dpa!kmgA~>1YLNftNKaT|+C%DA&pWAz7RTGl5z_r0vql)9 zB5pC%)J+TWxPN{H-^1;68Zbh#p!t_$_+Jgm8^qFHlhqLX9RMEQQu%X3N0Dwr@A5+U z;k8?0G37GB|EW%#g$RVrZrUmojF*zeX4%K_J+TTpfY#f&#tSzkxk7&*fD%ft^t4g^_6-G|Y z#+1@(vXvX?B5c6*RV^}*T9q6CgjzcW@I5&hU@$mZr44IAP;y32V{z2+nmwBIoa?8F zlVc9QEny$wbZTMT8cU7vS!Mp6_KvS3Y zci?B_NNQEEW<$G$2L+EdP=|b|iD$=bT%bGQ4(Lq0q7Bv|PfU$S8HKZ={Z=72Ui|Sh z{UE+Duaj*pehA5(rvHU)z~T2UDLIlZW(>=-x0F@jY6fN$eg9d*5FG&!%PgYJTWjY- zTO*1zN6tblqiPVqvffUHB9hLhJgM&+yeBL#s(q$u)1*O&8&q?Tclb)r;So2o&O;}V zWN=i)634TXI(R$B{ms3cj@FQ?i!e*O<>K%|OZ*UwRr{0zO8 z92IoH0^W@Vr2oyh-BcDC5bA=|71FIxsl z4t$TT*hPf;O%i7te5q+dz6k^5tWP-f#l-aZy0<)Eoj5wi;fS{zNX_2BSB{Ue9gl~1 zWz8Ve+*7EkF$#dBSyR86AaxtXHD>BJWZS&8y?>sqD+-i@VePl3jiu;x)ou#=N?!75hRkQW&z4}P41%du}^K2R5qJ3VwvZ`y6%`%VcW=X zmY65xA?6>%I94Ka>+kdNY@yX~#`3jbRNba&sh_vPmuf<%eV(#?2=olt)Jy3u;tqa5 zY>HmdpQz2IKUsTL8!F=NT?qN70_m8P!?|BBXyS8ovMPeblWI*MuQzuak=LQd_>z z7Gchj^m=(UvHO;?yt@<&E|xK&$VGvJxIab6_AmWw4f(95(GPd%i*#4Lj+?YmRT93D z+*4Y-IVn?sZxBwT(w4aJO|+Df4y>3q9%~EYuJm{hO1vQ?c({(JNR9)+Z&UnUB(C{~sv`yC+_;A^4kl=$@p6F`%4Ou?@fF*+|xRa@^$^h0Y5IZ%}wTXD?a zkPDm|Mjwx9{-3+pr$UqlL`#FL&!6>Gux z$-CTy$&qCiS}re;Jfco33L|nejLqjLOfL7&o%)^)0J3 zh680!6OHjE72~RwZ*278Ag> z(uJJ>K51c_8$(+vsOk4rWOvp(WNED?)EiGv`{Wbg(`7RNh5%t64)ftzsK)u5TyklO zAz!X6t<*XVx_sSBoFkFn{Jw%KIh%ot7Kr3+uKdA1&TnTQOV+Ft#J(($msmoclpoUL z6W}&)ly|rwA?O+`O^;#7o@O*#D7oI7erUncfvr(@9NT}!D+z}d0!6sB^sVQ(TPMZ( z(MOP|+ELg!yI1QwCnNYpeBXW{_~GsDQ_<^JFII9p;H9&2p<_z5Lrw6n^dzzS2?XDN z`YT!qLsJUyKzJ_xd)n|b0T~C-35kkIu+GWrc222hm$^|WE4P-ixV}m!srevrfsyzF zT(Rd46Z7Wl^vI->JY_JfLp@gKpWCDcDw0QxGd1?6?BF#beUUT8T3|D;9xuJqD|VmK zV0hh^2wT8<^pv|)dNcp#@J|6$bM+%W6%@w!f{2arsB`Gu?o-^up+o1%{ULL0>PO2+ zDoOZu#}b&bb#bYUF~(iHIF^1WG2r1$Z(=2a?ou_vi%cbpek(7>?A6ov?+aRz5(ee4HT;!+SXeruCsSCk6Cme) zY&Uqv@|x=PONz9sW}e+#Upoqp%ygWPM*0epS+zsy1(Z9M5Tr~N*FTW*GruI%=#KGYORPGkzFhpI)7xzx zI-+o>_ZBC0H<0iZ?>T>M`| zSV{BhAKPDNP|!euj)_QSp=2l-9K&EG%fnC)6o{6Dv2Xit5;iinCY;r)y?P|o>-mm6 z%F-&Cj!aW~hukQbmXA>$7wG!;a+Dz*nWurSFl{~rbUW6*dyh%&9ANJ>Hft)^!DsSa z(g3+V))3&euTl75A6N$lZ_qQ1h{~N9L4S!sLz-Hgc1EbZEHONd0`iW324{L003ewD zxG0Xf8zQqePU+S+ubuc;uEIk6Kq1S^bWYWZ{62Aa+AHRnFYk~!P|#pskhWrjTV=#L zf<-?KB7W#y$l8F1llj)kB`SN`&a;l!#}tYK|E;C0AhxdlM#w3|1Kd;mMgI{~7=pp+ zR78SF`6)l8*2&*USa~%R8hIh2W`l)i;wMI$=Z%Y*mS9Hr-}Y9fdSG@>1g-dA+N^TU^I(cVqY_qq#LV4rGOuSCz4M$?#yvu)2L@`r zRCa2OdQn^9z2}e0<3@8fW4U-g0Gz0V5{RpBen~$K$(-WVh@EH=S?s z`NuM3rOqD^8!MwMm1nKzT#(LjwtAfpWli1Zb#jvt25h-0UaNXu^Q5)-3j*%g6UbV2 z=Y~mIt=7eI-Sh{reG@4n<@>h<n@`+_g!fHvwrNe1=aLvWDli$^sqWST>>GS=^?S7bI%ba_$%x7JxP zsON!=#(-vwK0AQ!>r?d)Rm3GDY>l1({L|U_JQIu`T^p4&(3IbrC5A%EHibUcfvtPv z^(S@gg^EdvnT1re@qI+e7+UFu#V*3hW-zud#)J#JVUyoHIE|*HzAQ23vThKuUuzo} zeMGCU@hEnNp?b=gHh_|SDK`Yl>{P>HIDO1!1e=p>S5pG#TE?O!*a<<^_1P@hN(7ag zep5d2Yki&`{?AAR#m4f4)2_Y;`R_3kr!-4Nh8f<-qLvPy1@<2$K8XR?XC#Y@lcON7!-wI6fp!p&r0#^s}SZSSZ1I#}Pwq^0)5lqH|l* znlt8P`|`HJAd&&fTsz+|{0JcFmZs5fxYE<993-(k*0{5|L zqpXzQI0WC!@UeGzCG=h>Oe}n49OR=@3w}b}9hl4894I^Wf@iQ6`{Uj$6H*bG@YVS6 z$T1T~rhp_Iq}GY`?Q(<&Y5+*q|7Bb;dt0&W7YGJMmfp96H0t0($4Hz9wKBiXKcE_5=jbYpLdfZDT!N^z?IKe!ni9&4wO?I0hfBj25E`tJ}MCRX@`l@7k`85`jxx`079D;U7&Y|&J+)ZCv7KH}MiJG*zfxXI;X_s2eSOn&CWVD^2VQ;BA<0kbc*`DnKYl0d zE8o!zj)(J$3DV(P&Y97=%gRT=HI2^Sh0aIn<$hdByE z)GjZl5}|71e37ruDHyjy;|MKWjjw)0Z4M#;;W5@{m`%8bMl3^pe~b{Mo2^*ll(iATnd z0&xiGOQtez2k|uGZpa}pSa(NjyQM?vS_DdfHUuT>c&b2W??$$0drf-D<gQdQ0(9g=jS)kx){T6~Mf8eAc0sGe z09LO|8y)!aaVEQ^u9T_S@3!VP9k=-21^vTh^PoE~w*X4Oj5$us#w5*iL}nadbgA4dIQ|+5&u|Pt!G4HN z6eAurV*tLzIIPJyZFb5+m4x?m@SS3xR0Vsy$OF4$e}XL+y~|9m!8p((X{+jtP?_l2 zZ`Fw~ZT__e9P%JpxzX!Li*j!uBg5fUJ`n`ox;jyr5W8*{gB-|iB_}UY zMX>Phz-R;V_+0#R#TTT4t>zgF>CiRuL~z@58iB1ZHkNDzSK6%Ax}8m~g42)4g8u!q zFUaBlB0OMnG|!6{cpi>OL+HfnULXLv>70i7wkiu>USI6YCr@O2I8_`#QhbT!Ugus? z<#brkQVzP7#3ZAWj8ekvQN z80W!7)}(icC;&e5rZuaejV#`~Qd_h@NDW5H_i)7WOn%$h(dBH?K4>I0Sg5 zsl@ixTUc_tE1tjQXdvcPmZGFKMA|v?SdkRL@G~75i`!Ic-PE%~n0#zfJ7+grrQAK` z?+}+v9(zrb_D+Ru=XSG9IVL}z@Aq}7+F)&S-P9fVj^Ctk$=Y`LWvSDBNuVN%rOTafu94AycCn&bQION|UA^zM=4_V5NI_ zy?|=K2)|v0DGWBLpk}6af%%r-`ZUO##wCx8&eOgw2aMNfKHWaEb;!v zl522h329dhtlWz$X4L-(5(ETR>6i+v+T~!lm+fQJ_>rp~guJk}H9&e98JtR*YXIyk z=gh1NugcD@@w&hX*o&+qe_Z=Zrt)?@M7I8Tzot6e=_j4qi}%`PDPuzsu^LV$UYHwy zxI8-pV(k3@*`vtfsB#+7yvJY*!>qDX{P8v+pd#vzV+SZ~5(Ei=)FIiQ1#^yhlMER2 zj^MD}ay`u)$LfC{SB?ZWL;bUlp`!bp4dq<$bNyvB2^*pP< zo_%^i+3&9pH%o>;je=XWD^4*lbKflgJ=>|O06EX5X~d5cukdfozq>aI<^b$$baVvd zq0_H_#jJ!OP_X3T)k+=<`xU>moAyyRNqSGQy7%f`8JA|A8JqNOo{~_&`C8<>`O&X{ z!M|>RJ7`VaukWzAm3!T>ls^1xMpY7YL%G0~h=54DfYwj{-xx#b8%M*!t{1PsrIg(C z(#Xp&eV~_})8LGgmUjOs^hhnnhzym;1XW2R!UFTEO|wyWBn`pCE3?@8w{yE&j(`jm zk}9Eb2y@LM{bB9PQ#1RHBkyqiJD@`2=}IhM-O@mL*DMYT7dg!m=ZkJl*m&5x?}t<6 z(L?@yC2Y$lZ^XW?uG!YmQTVaayrkT&cnsasd={No^E{CMEV7fyt!sJHfVyYlncIUC zgXfwxsld}WxB8REcZ44=PLA%X(fW0!o1FA0q~;3#~;$Vz;H`mfR{a5d<6$; zjyp(Z@FZ#Jy24$w;4@=BJN#nL`(=2f{|YI;iX}K}8V#tfFbKuwYy&Gv%l8NU0%JiM;323NZ`+eU$v+9%1X=Gyq6ea{ce@7RA-K#a&gk`J*V3wop3SOk{X;?HmX zk+h;1T5bf0zTYs6L0xX8>@O`hW9qIpNCf$1MvWIwACkZ9=lyH+&%ZG+nO z??nURbT`&tA4`M!@aeQ2W?Lphi0r;tR?pnO%5e=%qK-pmKrH@k6|}ZZ);Om<)O_B+ zL$Me=4a176^u;}=O>)}IJ^G$t%qhHChaZoe_d8MEpVUK~_2vQ#mrrDp&&pJwaki_5 zXU(vB$#cE6e%&vX^U&iwK~#dM0`D_ z!8%bidcmUW=+0-waP${Tzb*YdIzfM6e~d$G8z*wK@Go}=FJ#1`?z9G&oWm8hJ+P=) z;6K1<wHaQ!aP$d_@X!E5fVTUQgyi`IU3o{MVRG+R1BZ$PfbsP7pi&$GR7u!hR! z3-1qwB}XQdKs4D_I%xUtV z9yhkSsS&}M4;Mqm>EJepc;Z#rqCbuh{$}n=PPgM0cH$f1jadrtp3!kI&be^GH1&U7Etn8K-`CQq*$!;0Zh=XA#{=P@M?%!40P~44|v-24PCQSph>?(fUP(= zDeAg+41qU4<0%~!X0mWv2~!%N`@fF*_vpyzSao+{HHmSds8_?K1G0}ukf;%%#-ROo zXUX1+e|{OZ>9E9Yr~mQd%+R+)A_mBKPFh(&QW^eJTD{u+rnTK7b>rd+L@`p6{7yFnBEoIjq82PJ;9vTFDMaj}eM@@&j4lqn#&)+w;UF zNF3rqilHjZY$E3^oo zuXU>i>`)KOPcWsc+6gn2)u)p^Ei_Rs{eJji%KIB=N2=104>6^$pX`F6<`&Acs<615y9$CG4fDM5`k&1i~RxnQf;Vsh2<{}m>j6{ zb;I_mkU#;bilEqe|0W%&=f}7h4iHzcF8?~Kz8BYATxk2|13lIak16#qp8<`nl8B67 z-`)8W+qi0K!R5!u)cmTi76yh5`ah2;PPJ0P<(q>IZEJK5XC0}D*B_JpDmps_4(8MnOySfiS(-r~lj(24=&HS(%{;oAzlWOCxTouc%6f$Q26;K?z%yVW zXP=`bWrU6dxN`)sNi~%_$vvY7>jRoQQ1@h5M3;NGC=UvB zYbV7t=bYzICaduXb?~=q-@d}2NtrZvV-(V{tL22FiHsDu64Yp=;x%hk3=B%$c812k zi|ce67H-6CPTa!rSO>kpsydrF7KN_&V}Q-zG3%kG8Yf=BNA8!md9=Bb4-Mv$#FAMSqou<+y5{*^OyCN)CPAFofJ=^GSW*!jQvRKZLnP+Rs2Tm6 z2O5d#Lp!Qejx$k#uPNV2iEddCCg2!ov+va_iZypNqdcklRo#VA7xnoy_zUp@KvTt` z@ap#6PbK0$j=rZcp5XX&G_d*mHIPeyEtTVRj!DWUc8iQosL@SxCq-k3&|;K6=9{z< zU>4|8r&Lgy%}pa>8;&@p6O49A?M?zsm>RV9TpiXi{pk0)y`4`5w{*4QIMYJSfpqm{ zXoXStT!okt(tVu%3E9aJBQW-LdXpIH6fWoAENfHX?iPKwHzFa5Z$+j-M%Xi=D`D~X zxr7J*%}aKMBZyzi#wyswfNOh9DH*!H-St`YI$J+U{EyPcX}R0G)3^3c2PsXqe@P}o zY1F~&zM9EhUXyiExc`5aIst1pTL;fnf|^tj!NW1Lo3jff`kqLt&Jd{2r)JS$T5~jty zc{Rk8(dS?WP3q;1HeLZMqX06C!%R2}F1y%?q}mbGd%UnTu05Jm@z zDBVex4Y!MRrAm13K(moMJg%Y`y&!pgrB4ahZ^ZO#+mU&HZQAzx$R{L5vFBImux^={ z>_LUpby9P$AsKUck-%@cwKt8y>d9&P{w11Ey441lSBch;uORu_s0y|}6T;Lrjp*hF zXyIBC_aFWj$>Tk`p)mU6Z|+AXvRBo+;uDSw)8LFxyl28gA-{fRZB$(^1pDo(3bP$0 zY+N-Jw0#{xmp&id8F93wvY2Fk(_t0^6HE}YEUaKawxq*4ern`Hz50^quX-HvrQmzV z1b&ypFc>MohY8B@(yJI(*VpI4A30p9-Cwwdhkf*1%fy#NIF&W1x_}8-e8&C{3*g!C zM%X^I`a}HR&!on>@0IJ7R1{xo3)&U(e$9Fx&>R^;tC7`D`1ywHV{ZADo|ak_%A5XP z?N~O$ktPDR+@90dmWH-tZ>b`;qQ6TA_B9H7)->C8q)y~iD`dqH;zE?p70sw6SXR|c zi1X75!L#f8!gO^b6e+_$A%6bv2)D_nG_v!ASFbO9<2_S3zhjVdE=m)y5B;vJC~7N1 zexV5%Wqs}w7EN?&GgB_8YV~t%}S=rStTU*93lhSLRbX45WhfII@`0DE3h_|s^ zJo37XalJ(Abu*ApiKfd%6zo#+TYqTh+A$heyUFSLZb+$q>0$eT1DP%`Qkmid&VyfD z-jko4dBfH8ZC^2aonZ&i`Dz2onW?W-%6UWyAmT=%A2+vY>;33;MY*nee39c9DrnV| zWrC{vu#%c&4MCaVw3_#-ot4m{SlsKxa=?y6p3=HNVMtSQON+}4Yw>JK^b%@%gsZE=f01Fzrg+}+|p6ktdg z5(Yo$dojAfpH2)qH6qlStR&~21>>jUwl*t!?F@EXjFA_XKn;PIB5K$-x0TQX>V-($ z@dWnoQC~N5FEs$y_mlB46=Zrq((sdtn0`Uom$9_-xAyC%qVr;5ux?jkzq}?pk%RoD z0<@dvk-?g#RAgrVgCD|3&O=%xW~ZcZ0IfwenidYP^CRlXG zMsH^vJK5kBh{N8e5D*&7oEiH1FTWDS=*W-Moqc4x+{{e4uLbGjsIpPTtVWP!(H)Z3 zS4%7^JWp^NM;&AKj@kREAHxq}Q=pTm_Fqt=RetTV`PyFBRWUAg$Jj6A5eg(QuejG~`z`}MfGS5D|67Is z?@y%KptpD2LDQ#d(TBnTmWF=n!cCZIUq36qG>js7LPydJ_pY9skOq7ZZvBMa5$b9c z>gF#zp+vHJWqa9?|1d7b1CRPXfmU4PLCA>Y@zT&a@U+Se7ouhS@yi$oY{CKR)ay5K zwT^q)NS#h3hm@L-|5aKo`P$r8jflvKH3iMuxJzzRe=f(ssFIi@r|b|LzBPlxb++_(EJbxQ{qT;7Gc2n>8t=1#Y_b)c5q8SN)5cfeJTRp_G zrk(R0(^g#>qG?F!ue{@Yf2Mn@N`DyN2lk0|t{->4BgSH$-&H`hI^y|B588cd)kZQG z{>6CFL%?3x3k$sI&$0bD{Ej`OaaN^6z-oB~a^92878`tTZA}v+PTA(M%tdWj(eY|# zb*bdZs1(pxK4p&lfS2C~jKYAIgEJL`1x+Bg8WP8s8e%TFUx#V}~34k3~ z3;+}MmG{l!!7p)Se;D0wN~Fhw44x`_yRv;vUik*?QErs;BT959@3YJL>oVKaANF{Fsns6wcjc!Q7qV&9~HoHtf4H#I<$Yd4ZVAuX& zE|G})$d`Kg@2|eZ#pD7`N9iUmCd5>?uz?0n-@j#}yj@rDGh2#g1^Nx3)xzK4*t08= zAnHQ#5dv=nuxVJa5?1kGga8esnOFM#pAL0*hkW;e&P_tZp0#n1g4?hm4g&fW^n>jY zoUTrBP7n?CGHz3SI#h{z;~VaeB=@c$0>K#TBgXyr&Gvd3Y>WtJ@A}WDF(KG)4uM?5 zL8T~ksRt8fHi1~Z`G5ThH+O4%9op_^nDHSv6Lmwy@>QJc$1M~5*37aR!G+4;d!o-oVX@x!-@|$7n&DEj9m6~=h#r>mWKJENE+)|(uv^yXOK9E=Cr827)#DpQ#AUB@ZRlde`)gougbQjuu{&Z@KIO1?eGqLEv+fu@t1MS z_Nlx9Mj?&xr^cl}#Fmed)j_!o(l9H{T!@U-sm4QO5pldL%}ROE zRCWYclA!BM5UnJbg}pD`Yz0k;(OlhgF4}GTa8w!ePEDKkWFGru zjx$nXsxbR2#YwKk!q&TDnn^Y8djjkIH+DF96o%-bBqGMB_mNRh;MD^*-8blGmV7!8M(b%| z$d@4yC`n4sRBzFUWWh*Ku~Q_U>Ur0vqC&+h-|bjpcOo}eQ@~BdOGn4QqP1-wR+>k8 zE4_&8TwLn4_!uLUKo8upFfG3GQP-d~jvVD!P>cZBQI4KcPbcj4Cn@$8w>JGE;g+fS z0Wxtv{$}cR$h;g1<{y9AWk?bPm>>ZRbNdg&KSsc86{k zeAW-sb33ka3_(wYw)j8^Y_lQ&I?Jyj>RkYq$zX?VCaAEkj@t8GNKE{WR5iB7A;2=J zHVGic*Spz8o9;0TkP`(KI0&LkvL!TIX0UE<1&T;!B41SPzM#@W0eE8`ww#cC9C|r) zdHPOED)^xP$UTURZg{oV2J?lbUE#N#&$rEsrI}*9On?HVO>+UH4IZgBk_Y_{*~UDH z+6kKso9b$CC!#iC@#LG_bA!?Nk#2o)r0H|{OG1B&mxwjAnwOWXvKUvJ#r}-5DvXSK{j+&|_thZBhXLZ#`h5_#QOhsU>sQI02 zG(l4aK^)QbFK7*`FDU=~3~M!Pc+K91b~YAL*c9n>nD@&{#eq77c+`GD|2rgVoC%wU zcEy_|+=!poG=C**mHT#oB%Uc+{W>K{4-nTB!g+02gGKn~<1FogKF62b3bi>X*zqY} zCA6_|3E3vw#-oOKY@=oC;%$g^?sl&9!x*T0!aDNlDd|Y_xkQzThhoErV|KHkRmh>c zGyQ!5!&3f-a3M);|4=n0!40x6f+XEp7Ra8?qH~MEQ z63oFGMj&Rw1>c)@isTn9!NVfV!2deI^#&kq?iN$l_YoI~D$%n>veWbaS}lKMx(geB ztuc)7P`r;99uyBrRwBfyXQf?;iY;Hj8tPK`!1EL8x6r6_@bgI+{oltuT@rIaA7vDm z%%HX~pr~7$&B@?E2`0cXyZ7ZqA@2vgg^^8}0YX9L(xhbhG<#AkX@c-?m{k`w;^;Gx zSM-T!u(&f_V1b8^4~kluo1i_7BD1FK%E7YCmxW9EwZOVc%4J&QDg^xWC)TZ`=r4L&*@3`STX-gMQ+uv6Ln@=LR`Qg$B2C~(6gXI|EmK;4LAhKND9G!`k>~VSLNBSbFa?}||a#-9KGcS2@I|<|- zS}><@Z(-XQRzQXWTxfL=$2~Prmn4f^9g-Ea&^1E-bN&N@4iFJH`P{(BT^H~}d`S>H zWUCz1kLzhj2sUtJO2zk}0k6=nb>w{`P7#($o0mFNgxVGs4O$f^Ql|w-4haHGyiOo6dW@w{TFp^#bqu>F;PPXNF>YMt7kMbC3CFsaLSe)x*%E-H zWaRgm2BXe{r_7Z_>ZeCc%$Edm=kIR{5+n`T+QWkdOZL7tz;E#m~XgZe`{VaalioBy4$Zz!1v*8FYl;9WyZHX?> zwOpK}m0s)CLN$7m-~WIYB2!w7&cWBeDILKu>`0Y7tQ9!VA_jPU7QhZN)Pr)o_(KgM z;}6Sa)Tp4ZxA=9W(f0>LP_1J**#{VzMYy&s7Zas%Ut#*@$8Aqo)M2PP&?^O2ba{LN zs~!hNj^?Rh@u)V6#lybfz;K$d1N={P-z{n`T7OftTG`&#>Rnl~7Ma6Pp3{b}liBDi z*mOw)4B20~(r~=+J{}Pbl>7^l6Giz|GfE;M$u9NNV*IN);Wl7|8l{bw{M((svv`lE zHDyXcf)P+!K=~?LNrd@F8uH!EvTRo2gGdEKx6=;8Lfm3}rQai?9^i-D{ffa`FLwgr zRR(9iU|7nm!}P*o=$ZV%u;?nopOFKGjsH3|c#tUS-@sGAL{-rkMj6$deGx zdk6&Xw(t)$5-z=OSPy7R>rQ#{AYO5V3Biycmimf)qJf*zRm5+9ul9zS z>4wjN6RvsH3jDuAS0}`fn`}Lszm_>uGocv?Gk%D6nwi#?bSx0ni1FGlCya0;&Q{+A zKynTGTf<7@kF>G0#x_favqijyRxdVH9XVl8&Mq4A4}*c<8w|eIbZb+hQ4g4uI)?ED z>N8c3Q=8kXiXN}XBT)4J;}ofs${7K+|5%Q%d)l|$Y>gk~=PGI=>!-ub&e^E;DpXq3C%04wF zV=05&^T703E^m(A&MkX*C4^Dp@S3BVKTAro?~-7-{i?zj@mfxRps@b}sHs>N7=(3~ zl47{7|E^o{aL138N+GwXRIJ8Bw^~I;aY=$~R~=Tp_$sOCblxYzui^)U+X*|MbIasH ziyYb~ej1G(k{x+<&~F%TSdG3WC=@8f4U7M@@4oo4E>%T=%@~XFn+E9M9)%w5pw6*f ztj&6gCy?*C37S=- zTkC{q48CnVnc1n(?a3mx3j_Pg0EJ8z%erwW03>T-tT-hoH=*kqnEg4Ntw=DdftFmj{p=q#725&gAf#gmL9ml8p1lazSz zXoS-3iDCJYY<`;6Hn(aiRh`F@oR4+G33ylAt_M&ajvMLkVZ)2Gs4_w+NILQ%U$D02 z3M`5f8?6BRR1Yiy%+^I~p1qU+Tx--l=<98Ia6T|6fnyy0Keo;~sI7kM_ep@@?pj(X z?(SOL-61%X;9jHw3Y6mR6iN%F5Q&TnSV{wJAa zW-t4!?_O&pwUuN2S|Do6dqOEV=SccxH8EvIo^-BLu^mwBL}5@Tz=xt3^}feszvCW)jRlfKY%N$CZ*65yIo~`SH?E>Bf#3X8 z2rGO{c0$z4gpeCGOcG)25hH*wwpT~;H+}lJl$;Lx&q3sopiI<*L`^|fCro@kL6yUv z`?+^;Vv^O3u!vJ>es`MzJKdf`7dV;iEalrhkO!6maIZkFaqBvrNF zUYq?Nr(vgCd3Tsm{g>B3Ax-0|UlH&;ShcNNZo5eH?Mn(&&CPI-d=UF0xm3=RlvJ%? zPfOs}I#$_($)BZ0IH*PNKPle76TQE#5rUQ=&$~fd`QJi}r3lo@hk3oevX(FlSRv4r z?o<~wT6ddHB@5Qy4gO+l`Wg_5p?La=E5rWeGo-VdU!q;cf5tFf)5p&k-_4`K#HFrp zI6{vQ;2(jg&WV)BV-7ivn%O*cQE z9R=WZ4|)NXeWcdSq#Kd;zyirDEVokgi0|NYr`-VU@gVTQVxHN#W_KMoZ%}cqFto{T1?2l8R4 z&VnS&tnD^=!HK_4Gyd#6x2y|_OG;a&Nr0oB)`gOmEnX!!Z!CGkm@1VjGDZNZBxF=O zHuUHLWC`{}oYNXZeOP0cLIyr7P^IqDgCz7ld^E3C`mt8(+1O)!fiF$~q&rA%l-0Wy zPaJ@B$>DU9Var+|-Vlv3d5--kwiMuSW);Gp^W64Vr?U!TOPw3LhE+xgAfT_-NUUP4 zDKJUGD;|5r&^_>cf`0cjt~0caEhlY+uM;iTlYA?a<0G%Xjl-L9*k~qBi7Q_|4-nEG zhz`&@!bKJ{u?gglb0h|1=X!|-3(Td64_#mZ5{*9BsZh|=Idgref{y~WrmLovEQYY2 z3(Pf*Y%^o>Ie*YM!Z4~=n-Va`Tb;^J0ufog(#P#KTL$WG5fqP~vxojUncyu>8r8k< zHfb|EJLpjOjhu|Y5BMVj%ZX^@DOU8hAGx%2>_yC>!{EUphG=0(#aAmqRDiGQngM7j z%^@|9W4ESa06*uZ%1z7TPb|%XYc9|Wed|YFOv)V#yGJ`vTEd-~88Zu66F7HBa!A#?Ej@bBEl8`~7(CXzqr`6-g_wDrT7x0gZV_60HTRo@)stWBm6l7 zTkUaK0rqdv?JI?WS{Ph^yswviazv;Ss|c149eQv1tA3T5*+ka*eJVi<=T&0!u0ZrB z$nh)*au9amUDi(8T_t``9xjZ9DAK2~FuoqEqWEhRP|jloYqGRlNTs3w6FA8{xFLN7 zYlP$Cx;z$8h2Ptsq8h_Bq#yCLzV)d4DO$QO)w<3QMyn z3Mho1Wd=G18?=D2&aE@@5l{B3d)%B#{;=+OPRMhN)oNf3 zGcY4`Qs3K915Z_p#K$Fd>#!9K2|K|`_#puhv1k`0(4-`5SMfSlD!w=}B50)pHoJs?9OU$1J`NCAkn?M3_PWTb>calI-K#-p8iU|mscbMK~tAH$mcM4uWf zc#b3VT8qU9(^UmWji`aq&KO+PSK~iR_iAU1y{aICHxF=tB1^sx7A-LkmD{zP_9bp- z^9{a(dFUS!zR{*nC2$WZWX8AWcZ!NcEb?iZFH4PRK|vze@I$_UmJWlRxmiD7PBo}GbGlW3t*GU$e4 z4i?JaDZ3Zdb%Q~ZwA7iSEnC+yhua0|2=l*ki==HOhL<-rDgBEmU^1fzVg(^bN@%*$ zmO`iECBM+6hagz2KmMXB$$n-<^*1Y-Q3ok+w{$;I89XVOjBBOVlJz_67p)h2)-+#K zl=0zbL8K_n-u8!z9L$N@>)4Q-bqNUP=0?FkNrl`?R8ldAdNiP#I%{q5i4XlaNplLe zL`e0pM_u!9e;(_~NA;W1q4jI_NiW7}w~SrzigBOgQF<+lA#Ty%S$r-^4$pm&)XlF_ z14ym=m8Kobrdc1=T&8U0!jYNfPHJzO{hG5o%44zn2h|V>MJF-KGN6^^Jwdddz0E#SX@eEq)) z5ro?6ST9j zddB?aS-%yKrP+Sdu47k!X@^Tj#kx2!`6L_5t9~1A)b}$`$kVg#C}a&C-*IM8Et^EZ z`i?t2a5d&FPfwGQT=4hbJ+1+5p6U3@qUtenp|otP-|k!)&mvg35;#g(6L?L#yl@(hn&5_c9VsD?_I=p(iN(4~=5Ye7i zRe{Jf=G61z%NP8MSYaFAqy47&#=~98iUBg66g-#+%9f5IOYlL1Hyak=XBOM6j!(tk zi=G5v3lSiWR0j^;6+mW5Oaqc5&Afy7FrQi~5R55) z-Kd4taVK+$IIN(X1_SpBtl&cvmi}7GhIP$p#Ftb^$KzZ$8dZqG8(v9Z5{fTV17^5T z3?n+vQs8Sw!5~XpswFm;HuDV5SSI*ZU_%jbY30kmAd!>dt2`AB(|@@Q$SHVSs?iNf zI11?!>pZ6!<{C49>PXP`P@ZKz_GKS6a}90*w0_FTyXl8sRgX?Sb1MFwaBktLE|Rh` zCexp+?d2IxoiZTQARo|rrq#RcO)htpk)3)5M{84$6eyT?)qni*4p+tLS zHTDrx$_itAGnLw+6g#Ghtd*^rorK4ew@Gh|CL6US$?&W%ADloI?s;6GJFWQIZ&?xh z3zp7yK+P@)U1mp?8fLIWlfCS^n9d(tQqp;P8r{%Y2(>!~#doKYu9u@43|rsk=nK&Q z_n8RA4&8NI$q427eBP*@3We7ce`l)kXE09nML--Q+Qi$J09mCxq`iz!H0?L&9ihVS zpjtd)u;zoR_QCE}g1ytqwkNy8z>W#?F}WhrI&jX)0m24Y-SVd)wve+_4k^JZ&}EsX z^ZP2S>@k1TyRn~gw6wvbrh{=Axm4fh_yET0pKTzVi+H<&gfHt7&I1PT4m-zIk_W#x z$w_&}Pu)4lWH>P{6w9jjS(@|Y1dcWj*8eNG=k%%JQDlrdQACZ!nB}R*4j-jDC=!g3 zb?cgDa}Ec+NQ;0&%Yg0ecBk)`M9i|IK^bTtrN-lr=^|W%YmBscr!`-YAJge@y!IuB zrFYb21f)MD7Zqw$Oxa&u1t3xYlabZ_Zj-+MFv=Qz{fJ%evpF!;UCmmV^;}y?=$1F7V|ehki&NIMwv4M$4%AEo|<_epqoT;hD-E?z|4cowTunMbf$Ah z*iC|F^$r?R9l%d+WU!gBgiB$N=OAmHt*Dr=t?LOe9^(7bV4fM@ETV%`BW#|n&sARR znkQCvHg0^iYH2k9PV+ex;d^iA+bvhcM$MNO;Oh#ABn6=BWMLUs1B-os`^0bci#|rJ zN!Y(P$F@^1%W5P6Of(1P21xv~s;U+N z-%eZ$^QMzqbm{nFb-pm^AOP?wcj!zA@05eEQ^dC^VO<*-hYSEf6C%K}>JeKhLL?(urnX^of^xltAZndrPC-u2k5Vi~Qf}zoJoW%3#+y^VWAK|j?MXiD zlLhfFNJFrPMPs>jZsvI{ZdBFHggADA2MJ?MqcIO^7lnC1;Ugdaa>79LgUYMOu*?G_ zs)2iFBg-M zEccwkI^6Ao+0muZ?17|ZSB*7t-oIxc51rdItR?&!A7k8};Vk3eU_6L)ybk1x84<`H zR}E*x{NW0cFivo-3D@g6C#7eN5ZR!RqSiX*o4M>YT|GT>RuOAa*dU}#O`I0`jDBAv@7&c%zO&6*@~n@2MTKaXIV~nZ;{ipGD(W zziP9ELMmfcgBV844^#yWh?CCn?SWd?);0FJ4Bq_{f_2^^<`th;0t}BNzTo)|f{{40 zQR-;`6AV9vSIV~mX@_cA56iC>U)7f&^%LwL8b_jsDSGZmgF=|Z*q!Op+dIBXD0`wi zfBYI^__X1sG3`weM(?6SRJeH;gqfCYXZ}2x(dUulf%pw69Uoiv_{f`U*StOL;z{CJ z3EZhQE<~)u_@XS&PJVvo%)shSs4=QfWjNHh`6 ziz0+li_sQ~^2D^9K$~JUY6gas%uNuPDEhrS*V85&miQmzfF_E4Z*fF6zx4)_D_=uo zFoj`-evATJJUyl>hMaK54?kO5`IXACOn`csAa+wd+4vw@N+_9AxQkO5E-Z%>@{#Lj zvM3uAeN|(>QG%?Zb)7GS*QFt`Z=en}g?m z+RzU&sUklOZ)vuiWHZ>M%kWa61TIIk?_fbc6!0#kW=TguF1a!spL{QD%=FQ4uB$WE zh`4VoLk!{vkQ%@Ux?C?ZxuXEZ>8XKD9}n@yDlD94?!@# zhprF8n3EsXiTLZm7n6Jn`IQ9W8NmIo5?R3JkT36-v@6#nvHMx|@nfD*fMwuTEto45xi^|P#6Lj2B z3z^OY514N?XdIn1$?KrB$i7NlyCcXqB?aSeRWdWPut)HN{6I}U{4rVQEk}A)5IFG7 z{tqZ-$vVXASFI(og6O$8%0wQniI8?O9_(%2Uc3T&BmtwJjGzKXf?*Ysw5DC&FB9Q{ebOM@r>9|V5IuimjwVXDs z*ibl297=t5S{c zQ^YduBRs2QNo_q%P=*+PM%wuRWR9V1ZNVcXh6ZG3ejdIix+!+PBPww>q9BY9aWgl5 zj?EX@MD;xR-H}o#0g4gAhma#h0|XOZEjPJsx`J^a2N+()Q;%+bBt=Cx878u)G+KgGGrO6-A~M4?isT|4K4{526$Nj%@W2h82=hv*~0-t&B2 z3|iuRRv93~a_B1BzetqbCldtsqs>+?9%{gKWB>}ZGCi$=XzFX~3Vt`$@~ z6W?af!{Y#L%vXgLNGzZFQjJz+9R8lJX+A;=;lyh2|NRpNH#SFo>R;&TQVp>~Cu-`M zFv+(LRU#+=I}3D6MQ+m&t9^XLn)1Lmxu-zgGv-)<`D;QmsIaFOlav^v>1W7ra0e=1 z&+9D||3|8D@gyPu!g(>u_!wEz!he8`$*RYVlQ2mmfT6Zl26LYcKfy%PYyp z&WQs`xSkh!SXoshO=`N2yOuBY+Ihg~nl$1ZXZTGStzrcHam&XAzC&I(qdWuGHlrMT z!PLm?78@FN>mO6=-wL6+`|h?H`oDAW0(9+{*m$X}U=JpQaazLWIinPs{l1(GQ@@?s zn{l$aN0n)@{kD67_M%Hd3tW-oV-khvJJFv}yXH}VpUKx}%H_o>MWI}dAq}!{Fb>Fy ztp%{n10baKQ|}N#a~N87?+X39Fs1~<58MLn8FF+{YQQoz#cf+te;*8;`)#0wuqH%+ z9=)9g_(bUVZakJ$>$RL2@0xa+@@<5}J&`7hQ1|7`H`;J9UptSO9u)<@HoPs;gvl?l zmVAGv5`XbLA(k`>=wQ}9yDzpBDP?Ol)C`Ea$tc@T<~DYu8GA(`8~h1iK?;bRvuDrc zW+g)m1ddeKHY7OieIdO*2~{$Nq!o@O9-K!(?ArmF^&OF7qKZi!?^7{?(%SOAIY=Xt z@!9lV+t^rhbAC5#wbUcBp|Lg2GC4`}fB}V=DuY~EiTTdRhBSc*aM!xTGV~Ud031m9 z#C6JB2ag%BgyNX&xRHX`d;9&4w&ou>Tmeq@09Scz(t+8_v}c2S^^mL%uMqPATZV@r zC=fC%0eJJIR}MZ4DH>$Umr#~|T(o3mjX~8222WIE#*9V$$`W|blyb&~XmRN7aG<4D z?|z+sL;!u7(ZXd0OHJ4P*?$qd$km!lBCoyh3W}lHiWiNny&;hs)oR6KJn~@FqWwH? z&yx*2p+UF+EU+84Fbm|Y@^Uzg5OQ(ZXrdNG1>;P>`Ge;CA0DBTwS-P5gCgd@b>2-K z#0eQ-i8M+L5IQc{i8FO5&$n@Qv)xuX((ll)Mz!cZNF+ZSGys?=Leua9`hC6|%*RPH z*I@C5kTCml=3?X;&$`o3K)BL-1hGWszfp{O3Kg`;+%fBR3yOC@sW?nSI-B1H#SJmQ zCU*sHY%${VIj{Day>2yN2h86{L{?zJ&eDSwTZc2=x%f4W%Ijl4E!y84erDyNPn_QqwU7q1>wi{3ACezO$WcrzJDL!<@3T?J{d%_{wT+nZ~R%sV#2!TJAZ7p z8?RoEtwhF5*+Tf}jt@&Pj#Um8&Z6&DmVMPBZv@U>u|3`r9K23ipI+gxcqF@KJ3p!b>vi*&d*8)vx=ufaa zB)GSQD;e#9)1u2CM@EZoT#QxdYK;0*ADQvJJR{2l|Q9(FARQ} z0-_mw+kW@3mOj-d;}w5{c|HqTxC>vNi%Nfa`Rbu?-d*S&#%j#|+6QVpq=`uCYg#U6 z8#51|)x?n|3;w2vFTu0`yHP+WeGbpsQ(K2;d`NOhZJ-z1qRWTW2sFW*S zETv5CGQ**Sjq!ZA=edy+_DKKTj-i9whu?#PDklP9C6T@N@#YY>;Z;XV09&AcWfsYFhRK)Ca<@LH1~K zzg^yUXNcRV4R`no=Zvqlh59Zr!dlw8XC>-QfykOq(C#}H$XSQ^^zrL(eG%45VS^G- z60}%}ZP`f!TbNUavD7~_pCONF6spft^coFmmVPQ!TK?BzSW@+_5^{Dx zSEsna&=FI^?=Vkv8&bkD6Ym&ijcvNj1>p?rCPL;V$alx$bAGB_pGUvv1;X5j*Izw* z0+bV`CMMB`&pFuIel>Z1X__b;b=s(T63CNn5@X17I{~LLn;`#60HE^(wwSbzKVBuX zHby5orc;Z|BzFhTS><((M1AweGw)+2s}jyg#~FOl$PqRCNnp9oW51CQXo%jTe78Xa zL)ru8t7p^rnvF;!sZlMjVsx&V`b_Xb-J>=g2ily>-RYahKU|%vmp-Q>c6ouF7M1-* z6;ZAJ+=E(7D`+46X^y}BTFwcLorH^!uRdStLRH>1r|3>9>a_XxRYoF#lm7w9tFzfK z49g2E{ri+>o%AK6b0))+Xx8q67`Oav>(9yVBi;tSXZ^Eo{%7q@)rx|^D`)f>YIY(N zs}(v1#R*1L-GV8oCfjWB~C%Ep2!*qK@Jx_Ys7l0D}24sJ<4e@h-wk+@H2 zhQTk}CM-l=-(1gNR&Vb13oma4uDjVa6?D&jDa0J5;;?AO()%+dHnilBN8j$RmpixF zqK&B4#CY+I1dHI4si_FMYK#K}<2{=1)Ob=4*LPhW?s%gd{OC?YHPv@F=ZmzmxfWEs zyZ+@Quln1wL?T>IY{cBH>r#7NukfH4!=UxWpJyL;AGc~FjIR|4f27!^E!YXp^r-7O zL27x@KaO&~y*D+mLOIX>RuTWc^P*5Kel%eG^ATojjNh`n9sdNA*q_&EoNAV)AI!U1 zBQwp>fixC61a3y47#w7s5c(No+HpqjFp(|jIEUe`bvT&KrUgJ}fp#BA zqKggl(pk?P@#8IwA2hS^%9PsQV`BQ;9t4cI5ku4?51cf-#Zmiy`K!>IiX_2KQ09QE z+C-p5F6B7lGpHqyj4M|VKt`HTN9}=&bYPw88mg0Qv&@W3#miBZ=O%cn(_ud6Il$uB z=;W=UqB6B&CxC&tc+3}G4Pk9Pv=I5(-6{b{XLoF~LeFW4A!LpCz<&OwsoN_-?J1CS zoi9R(Vse*!h%?WW@j_Y07ZUYDayldTDH;yTp#-&Oh~rNy-WA|QBiWhiz!38*oMJ-u zd@-goYOVLPW0af5gVLae?5r$Na^wiTcvKV`PJxkNVGxfohqqbvQwJ~KuAPd?b z&UZ@Pd5LNJ=nK)cIk8WyDih#*7o8^b?Bpty#Ne0?*{TVxy>S!I~#Vj(E50O)n0^sP{+_pVHBv&0C0Q)HxM zk?K+nshVh1TSa?&1Ej$aWaFFk?r{ND;ao%^v8{zkkLUUd;ux7dZ+C00s8o6vm8a$q z7(HKC-mj}*7o1q12zU{HiQo%g6iZ&Vr(XOG+O77c(Vp8#){maS1)DR$Cz_w6ikePL zxUR@{(q_7sPbVU(ZiHz!Q4?%8llM^Dqa-hDEfi<$Q;hd4$YK($CesHGWWifRMBSIPW=(GkJuu>xYASv94(Z6&)W%JEWl1228U zV`F25HLe*1F14XM&OX$Z$z^X#b}DnEDZkVj#<|^J z!+>!Djb(_H9?4sHPKs{qSW-JyaI6N@BhAf{LuCjl*53E!1I$7WEkxOfW7QWK%8;I=Npjt1S#lKh0tbOQWQmALmqGMZy~aGj9FQuf%3UH?RQH)N^j#& zOBzP<%L;I6e5GMmG!f<3VzxReXvgGqz!p2%QGls79~Th5w9tDo?%Nz-laI+5KL$6P zuG7&sHk@_hE0zGCoBLwG>Uxupz16#wWa*#EDX&vs#D2P}-WW*PM@@zxm}e<`G0tn%UC<_?B@G?S`eagVy)p64wr?}k@F3Tj}-7aT>O|Op5@HY_QFXW_e)6p!?VUPASTwTkS z`@jkb}g@)>JPiOxkrz;7Rf$Wbgjp(SQ^y2 z&Kvz6ANX{z@gkp^5q%IqV-!zGCDkCM)h*l!?;V)$gSJA|-RPqnH%v=C=O5$D9IPh3 zxBn6#Z{?1|_2l<@P#Io_*Em}9gk22c^J9;M zj9(!D&g0*)r{MbC+o~ntF9|^H6T>|Lf>AB(oo~+a>b0N_U+ORC900`U@QKp4tRFxA zOUnPg6PsbKA%^UqoG{K!CN{pdBhDg(QI;6pZDu+W%Ep=XvUY_vn7zYy(jZhHwr!tO zO9X1XU=V9Svk))gOGnejL7`fv{Co)xFaEEOL-u*C19MM(yB=eQuF86tzzA|TVT{uu z*qRyA*gd0>i(}{u+5z}G2F?d17dtCHsui3Z!CJL&;5E>pkWFilGz0cd^tsUopf8ana0oE;4b#K4U<-&!!Xkd&1kh34R}w* z`sbC?@r=Vh8kL8)w_5juTjra5;1E|XMx|SG0Pn0p%iGAfx9{nI#c8llWMmN;TlmA`WDZ-vvo9(Ew&<*ma2&!L=kvP|{ddH^4I0m!(bsWIRtjUn<$aXE>A=_4Bk{7INp!&V3--l zXb(GaFu0fSY`*I7_}Llxc?H z8u2I}_cU^_5uffhy`VCG(UVz@z7gijD+YF{fKrL9nu{)GyzaJ$pxQ55^nue70V5q} zB`!$VsaW*s^R4^7C(AE*YeiMTEqxiY0l#`34<2~4XibyZDtHQr>t?T_>N3z}(xY3B zk6E2`4!+b{2VyoouaWCEulyiVGFNK?;WVM)lB|3y)P~7P?t?XtY43&?J?>o0J7JGz zKrIj<+>AFQ{k*{kteB2=z^K-&m4(&em7U-KQow5tZ1V1$%Vw z-mZE%rrOcIVbQ!+0;g>!R?pYdvLqc|Iw;cN+|_m#*@c7}h?1J$yBBL?SM5{2rsKH! zLadVukYAwFDM5aiSjo$h&)Mo+cL5?4U`VOcDTk5p98uPZ+Xp|K)r4|Dl?II7aAQ?p z)5-QlXdG-rPTusggbSB4R?VkI^BsYM&xQxG#DTm+d}<;hsJzD&V`#WG6*%Qciq{e# zj>~5zC|J+d7T_LT$0J8f^AQUeV^s5rXFd&31PaAAwg8b~L;FWf!~LM-ZIOu=$j#5l z<+lsBK6oP^9n81XpQLLvimW;pvxU7?paeH9pyvd24>Xx)hke%vz#{O;aq9R1-FpC9 z7eoMsWRa)jzr+}#O&6*S0zj(+tKq09-K)mZ@xfvQ$k zoYf&uH<@((OBImhu~Z$`b|PqJrq!*=>{wgWOm;3BG3S)XRaLg)#fldJ&*T8K0SbLq z5f7?PCK%0;W-aKjeWyqZvrbEbD)=?e*3{!8)bxJxidwLGq-=Y^j!tmZPe;9&$dk(` zPM6B}2S4%*OvU*2O0 zYjTsPKB?ze+9U_$X5aGp%8zY|8abjbK&|x}b3dWHb^7`eoDBcfR($+oyR2Y8`e)9Q z99tLN`fvx@CnV!#)Td1)zmV8V=CKo@7_W%Z8EJB@I8Z1vJ1&(A3!E0YiA|I#?Rxj(7dMMU>@n~E9!a<4|laZ6!!rp&p zq;}4DP_9OQ5d6bXvFKz7^I7F~^?(1t-{5S*6#D`fx>*p#VQi-Z#+*h3G|bVXG|Bl% z!Wz%gc9+L|PAbQ(DeKr;oOeMYZH}rzZW5BFIa7!h^b%_j+viG6 z;JDEaV>0h+&|*^rQOWBy0kFa^zvt-$S?P6HUv~UYmT$L3Fkj(ihTP|rtG_OWCY5Uj z9~4Um;%&V+fv$wRkWV^mh?pF=|5-3Mql^?XaD}yy?OzSM|6?F zeqM1sG?K8-e8gSmdY2>C3#z#j6-UM<@dDBvj3Jkrei%(GwOU`mC$3s)`p~}3PP05T zkCEVY_HGtiSe6N(q3+lLVA0)2>p*K|0)~*IzvRf_aJ9Qb=TCh{q(Vts=g5a$rghLG z=gnLAI-)gm>!$|5AhNaboAf-l&u8Gr4K7u1oz^g(=6IkT>Xj-rzB=nVddE?kUkiKF zX??YNQQEm0q!73MbibflmUF;Pb(G0m5be!cdJ163k1{8#84po#KKq0!`>O=-5}Ekk zZ9PRzEO%_^FR3G-hP>*%(FL4C?rr}&U`^R+l~bLrG00RM!uGwwP{3QH59fKG-Nfp^2oBp0)LTPHNM;{J@9UGOH@0V-2v09#_6jW6$ zg~`Hx$T(=1fzlke1G85$pEhusMMfo+4Gj%xe7YkWDP3pm>*d6RcBx_fNY{ITQPwyj z%poX#^!2j`A9Y|jg(__8+g3@#p#8g~m3OR`%yn)pzMC^BW+p_`8J|iQSfn%%xW;!h zqP9Alicm(Hmwwo0VTrWhPe`|3uqbu?AMD%WUq;LAZ%6W#^%YNVx+a?Xrm4)qWSr`Z zK!RX6q^DPmW_fh0FEqKkF)RPc9*dgur_h~iy}>ZEGRq{+@TS|OfAlC*>TIuHOJ{Ou z?4aP0-ye)S!@$*$XWA`#7eyh*ip%kNtlL!<%~1KGlo{m533n#FMIKS6#HMHSr#sC> z`^@v_hi%85n3@q=H@0_geJ6^F)~hK`tQ!=G59LK)1t4cW*nG~OxDR`4e75z~d3$Ti zks>Vl%R1a*&=D`p#m~V|6mw<8QG)p9lv?@)RNv{8!PJUdPRHn*^Q*~W>=90u^3U-AOtFF{KiHhb`^|?mhC*UcP(zA#Q&GP=t|MMKL=QjMbz@!xt(h!7x>IS=oUQ`GH62yu)eGby%^d;2iMk#FLMnb zGFn5}!0G({ts$R2?gW;p)mmbll&WY4w=Z1Ky}g-!pC~}dbndxqLYg+DO#e2r5OA6J zfmR@zzWZEG!4Sa4^m=F79YFKKN|@%@ubt(!mq)l-lP4|aYR!GHbK#I>tG*6r$QFmG z1**v}pIR3v#a)^kLzkyWGb&W?ar^Kzg}7?r>HrKr8&MDTssNtLnrgrLGxOpw9Rd)#!h|AeW0tEg$cXg?2nm4VX@f44z?X-gIBV2ejYVhY0LA z8<}yah*^sO3p{ z4#`!a7uTgOoNlEmM-NR%%54ZDlTU&3%s0{;>yp+O_LYuKn~7YABG;UEPlhs`GJ`%x z_CIy>ke%o`2}6lKr@G8o@<=p>EQw*VFhkN`X`#nd8+bK`7?S68EtVOlnpV`727oF8 zTS~&wkxm*+HesL_N8m3iH&gYgz()?$j!OxGtRC>Xl*5 zV;Q*@&%U6~WFwSqJV6)nT_nqjhC9{o2+s@q#zCwn-nIRHg9h@TAmgNGNONAqm)oeC zCLQBbZJvnEJWWTwtls!n^bD@EwLm;VqJb!YpYQ5l>UwrAVCR122Xd}CD&6i=ieD40 zIhvr=k+7^n5n+1ITb|Cp->}=|1eSU($=&$NDB>$1P#H?8f9W>fovY^i8FJ(s;;yX8 z(b2lV1w*Vf7tAKR^)8S_BEh8}dQ;s**QMK^K_Xf?RZ5%ClHVhh)(k`q;vMTrZ5#V5 z*Ph}5Q1v7bW5C9aUPrClw)R4+Z|uQRtro-0Q0!-1D#_66*Gs>Ub?{0 zNd5z;!RjPDM1fuL3u@K<^|uB`L2g#Kt_xiWy}5D zWcGaLR(42In>9kT^OReLEjMg$lQ-n_g`W0p7|2}q>V|iyJ1TaQs3=nrlW;dQ4Q6xs z!*^0zh2c+na^~7vNxJpiIy*qVY^8Pg<>uD$@)Jx#)KCaH>bc;6HLE(e?BH^#RiMcz zTKK_UlH79gpMBO%4V&9f6l=S(SBAl3_6&_4-ZE!|k23!}9D8E>mwJYc(xN7%fC@~p zUq!%cLb2#w>7Jp@Ci>b-G{7E1IJ^1>-a1>}{ZuFIJ)O3s?Ju;Nth4bX?ZX{Fa3^P# zpSs1{&ETk*9eRSTlUBm7VRa7gqFZU_O*sz#utH)%QZ7G! zH{3CWH1y>(ln6_yiBiI;j*`XXFQ*#R%SlVc4ZQiu!4dEr;x6s=Gj>}|$Q>UyEM|q0 z3X7u!rOOj=C#i+iW6<)^0Iud7#L)Kr^i!R!0=a#C{>!BP5r0>uAh6Mz!f&@Kww@1L z4jQM`?vFw?rfX#Nw!`{%4~RX_Sbhj?L9%Fm(Rw<$pay~(5z?$B;_%{w;A;WgyI&y# z`e^`{2ZW{`j$BvWfn@R9A8}m>`)S|h^5=3MWQEb`0ro`vfA@bWz#zdcv_1gJJo5nAZOCSbW^zmlo>e7icg4&?;34r7fz zsGJz$3+RBL8iLy7Fug8W>?F&B$d%{^=)U#`j#1eZ4PcE9%lj`p54G09bpxb17R;|# z+6BK1FWjalX8Y3)eQ2D>knCbqb?X1zy8jgMwo-Y{WSt9AO!Z_rQ5f=0uyX{Q! zf;GQWvPhhS(c)NWITc-K#yjY=FJ9@=&(;lpPO6Z$&x^NW6=D8?tpdt$FE(x%*}c@7 zj;MGH?8N*`W`ez*{gJ#^v zw#!AgjoYq}w;g>;H7qN)mw_8^Wp2H1lK)({AFu3g4C{1i7o8uJj|vn1<{#rUdQ5{8 z@cqgo`{hmc%j`eb2ixRB6kn)Ykf4|uR_W8zGhf-e8K2z`R0&sW6o9nfOWU1{FaMMz z4<(2D>CETIo{}bKQFfgKpA}Xx}XYVY)b3k2}!>33g!Ser=l?I3iH{x)USYx>vSQl1QHr)AYPMkSv3 zX`VIku!U=4tr*mRiS>H68gdD&1b6cZ4V`AG!Z80;A@M7)NjN>FK$VwK|AF)y?tmhe~E5Bq+%&1nZ|- z>4yc`y5Y;htfT>;5^Ed=pcp=k1f=#68QN+OH6m7dxg63P*o}p$ON^*;C|`fiGcd5m zOx?4wVGImee!l>+wn(?uJ`}^={3_-fqbyHHJHgyMbVf838$5J>jmhlGG(;lP%R>~8kl*t>TTwqWu zj@SO?cMQC@h5EY(gVE_6Yluj?MV|K{YS%Q$GU3~xq$s01Wka`>sPN~-)JbT zUHABJtr-EClROdMgkL%5Xs>c*6XMGK+w-F$t}?hpi|kp_XGJES`Wq@_U+P^6^0Te^Gb?igTz zp*i#J?z?-gv*(&0=0Es+@8?b?Nv!^P37h(diJm@qm`W2N1No?tx~vD@nt3k1=XWRD z+zNCMuls^rjnY~7--5CbdfioQz{oq)$3#d}&>~suqPuV>+W6Zt$!pN_O31|%rjy8( z6rQoMJ%V8gd4V=tDCM{dyfI&JmEHL%Su)+w`5}i(&fpOYw0b{$aK4$JkxL5VLd2WB z_v?HxbPS$tJ!>&sd$xw8a0Tri2a1T%f*idq^wNmZe+Q4nNW*Ri#C42eEekA4mXn>! z!po2M$1l=rPdTum>FFAjZ7Vq*sd$U^n*T-1euj8gtYXwj5D!H04ZG+?Y@o z$!Ewrw;SmNbg+oHIDKVMFZD=z$D_6+%UH?lJWYtl z+!g3{Xc^x{r{9{YrN5R4b4FyD3*D(~+Tv*jt>3whH~V>TgrAgSPMW_~R{JKBo1Wfr zg$x*#q_1#{AMI2x1!<^5Any=`zUVEWXHc zMgjEarhnox$9tOU=z(auufFf~{`{(CcNE)=lI&xKN1IO9+W4s__xVJ0{QjNS%`FeLbvuVAj+hQ37`mi|M%Hqo6bUWjjq z!oAQ`M)NJCAyWaBT*7-z5it&VKp;j$b-U-Y2+}1zk2_zR@AaekN1KAF5}m2c&rSaJ zmX`1t)!SWTw(%0LO4z+8m#DrPEWXTB_M(XyEhkTKA_k)l+FcKV|-Qt~dZ%eXfgXiP*Z&61l5zX?T(oLh>x`-C@@!aB*E zJf-{F2bWcYQ&o`tPhjo5O)LKB6NP>mVwryWoSkw54x^nv~be%irLcd zKFP^kn}~!exHY%!0KapXbw^Afj>)*1GJS8W8Q2oG{e?xEA{o++J)#0&N0k)@sNPj< z)4Bds2OP5jpH@c(MLvI)k=|Cw*LuS`nK}{1ikgwAL6kG&e)H#5Tr6(LCSl#ejQY`d z=%x@x%9#lUXMYJN@aFm-iw%61L5pOwbgA1W*Ku?Gaw&S;OZ}|gZ1WP>e6aN- z!u;?I3u5tFyQXix=y!fF&AE#$8lvtvggqUnrV`$T3Bqf9nl^bms6%pb{SN9eL>Pme z?d-@37jQ=eJMTD<>lTC6UYc_g*PnhYe2~a(G&V|@nW??JvKG@V1n?Cs*I0fEJi3si zO*aWFaaeCq>3HcC-3d}3uMFDmeByiF;c!mMy~|{NSb#wFbe$0q?U~`1QE^WJ;k2yv z=nvaYbwWT2j{=p5yR1|5uFhQ#ai^KHedgL7u`}jjgaAFZWEhpIz{d%yq*Kwahz(?k z0kE{?oy7^CpIn`oTy0W06|sHkgIIdXoo>*v%j?P@&9hcWa0EQkmBjVDk3HFmbN^ZO z`t^~~^VW|bM(W#*$hzW$z$^Nl<_Vudxcvq9D%bfaFrHGB=>Ae26F#ONI5R|css46vsD=A{?8r$LN>P1x$ z-G7VW9qO$JZHzJ#!FUg)owOVR@5P3{?6&F0g}*dZAq3|?pVe2A^ea^R=Zil1>@`lK z*xh!JJ88pxccs;OA47DI2&<9JWObxFvTX*sNQ!NCH+J-&#`wgt`Ims3k3Wi)*$5^g ztXgiw{4E5}w{3FO6I^H{FZ-F!y8jyJXCQd|N%ianF>riL$N18-I4iE!xdLC@c?@5t z8qk>TR{k^=M~w`?XNbT!-!gv~#H{5(nc3sdpx^=`>7#y?R@tYNH*S|>9Q>Ad3ZWCB=F6C$Y>?BRWm>DCx^Rb!gM5w5<9Tew5_ zIspySR<-HYiV%!fP4 z(4sYax}KI;?gO_Z+1hs}-mEGD=rhUmf9=wpd2t!=Ep}Ag*{-9bESuJCuPCY%5|3br zSc-G5qPW18R`d7UP*7X}3e3Qa-P&+U*ewp>n__}X*3i=wsc|QsQ{iMP#3W1pRK?@2 z2&vhRnPu&(%PEL72pV@~=SE3|d#{m;Tn!^R?w`KcvIE?8busPdExm2jKLQ%bXdGU7 zI34{$hwAC;&+&y$Ou5r?(j@A@Wmx|NPC*MG;OX@owJ*U>OixLLJawk8q%?Mw)xsn} zbiw7Vkq;AMsbflXsg7~2_iF#(J0S`54WlAA={CO7-B7-+N#B~4a?Q_~27M0?7KB~9 z|2kn^h81Xp&dy5JMLu_Lupc~*+;GL-p)@=|%`Nt&+Q=V8kVy^snGlbHpep>ICpbZD zz!Kb+o2iajbg2M{Nv9@f^DSLawvzt3>#^hI_l4)Q$rKUF5S#VerTw=-ywRsz{ud*c ze@yP;)I}zI=O=)(H&_{(k&E~fiS<|1py;Q3ZcPbZUiyBbV<5 z+Y<=>30;9a26g^a{x%Oq1vEb6nEM$TKYd>q+JAv6`HtNk zY-~uO*}&=h@d>U$-rOeyVWdLc7Ps+5w#t|G^)z|0UwwO?8(p+_ySh)`SFZD0`LQ^@ z`yVA!Lo>|;>9JLs5^@8N7nPwiON*|5d*P#nR^pM9+$OWYHn!`Dz=xJ2*(f){6 z;&C%5MX>XF!oL&O=taWkJgnlPQtkS6jYQ``Undgf_#Zfvy4xd?R9>IF&2#`iq}!K; zlJ~FMpRzzsfkRv!lelC^4fyB2B+69}Fi5iGOKl^DboY-HNar)|uKCNOGg#_J8f0w+ zq0tND_))bDsRhvx=sf2vFIts)Z&*=OV)nX|OqFXaxT{QjDy#y!q%%;TvC)zg*C9vd zYaf>z?<3n2IUw^K%!F_EV+3a^!wD6_|9Xo_tAgeF z$0CB0;NebdR{;;q^ib);By!RF{kw_E^wI#=v zK-hk=c|h7u(in6&+YM)J?uYg)GWci(5wH(}|7?rnzuEY5xMRwALGf*P5&_Jk_tuIS z^D;Eovr9*D;olD4e+$||YGn}M5v?MJ&l{?P;Ng1rEkPmNBXTgAg~K)K?W;5joF(D1 zedp2my^`qyN!05{`Kzxu=Os;yRbTUjx$!4c-V({1T+EiLWv1Py>XIWLwm#PsYzXUz z`$3pH***Zgw*X^*3BgAyb;2L^g6jD8H<0ST4>hscCdb7Ec@o=|K4Ljk%%e1Xm+Efz zX2Z@#cBc8Tj{Nil9ZwFDRK;Z$z&!oifH37Pp#C=~09lIRm&uvJyQ16O`|Fc-1bL8z z@E{LtcH}1m;2jQ8{k1TsxwV)y$iL!Az5}-NfFUf~7sN;lle()$m|07lpI)m%WZG=p zBjZ7~8XZE;cs(E*Ay^TLEX1RmV_TulVrpvj%7MYq19oR{ZOA^rkPse^B7p)M*QPCM zq4?AjiZKd3p#Yc*826jA)-h((Jvb`8c`i*#>$5`uEq>QJW3Hp>mx~zK}g^^+ujoo1b-plhECkWq3Sy z5TG~mgMN>G#Ik|Hq6Up&TfCMqlWX$tH`C9S{!nqO!W!Xyq~FfuvAth3G;zjKySnT% zl(=MG*5RR!Wf36n0pf2bClV=5desI^gz^QHFeg=x-jdmG7kEVVSfY0O4Oj!*>#8*q zR-mIK4Evi9cJL>Tf&jwpL>?jrCD6}PloU#Ys#MIRh>(U~4&}C0i_;ujT;^itDTQrT zo#w`D-V)!?Q!+jaBfs`yeYA%lMzJZ(!}~|bek~vt{N0nvzoAH?rMV`V+oS?`j;2qI7tgeKog(~9bDlo zGmBo^5sMcY``T%&39-fK3d42iV~&QRdyp+;^HfbG(DA)!=7zdhW16##MZEk~Yv}Sw zH+HS|e>8cf-cvbUzryuD_if%Dr}hbb?E|H5m)>_tIc5tytiPEV!z7u*i*Z^6?3z!Bwk}8 zb}~TCj2RQ-s}j6A@O3JM^E2XZ#fQ%IcI1tD z#44)#Jh#*8>Q{@+=8NVzR++cD)^&sY~f(E4%|AW_OyKJR~U50ilm@Nr;7l4W<$ zBo7i0BtE*lQ-O(w6=EH}Zl%3V9`c`c1y8dW`BRRS;G0 z%D-!41QiII7Fic^-xQ4iZKB!f8Wgk5HwT9EYsFR;O80#Besxt&wr2lTok}_KnaMGJ zV)pQMY%h|&HJozB$CNLJc${e{|DHZtA5~DtiRAr4&*vWZytp)f5hnC9%gNuiwFYTL zlAAx7od5sPn~lG4i|*}>{836VjgF0N9Ar0em{i*F+Ep> zrmhG-L>GM`{OaSX#??G}qW-*)5F}e{Bc6HIF1Uig{c4msjFk(guvv&{RhIquOSVea z9U)Vc$m+aNAv*`M<5J}3QU0gHyiWt{ORCXh3_pxFZ|W|V+Y&m+RG@Ry#Mk~DPf+~;!w z!ldITIJVwCiff0VDJ&fpmUEP^UWxjbG z{suce9CB0Do1&UqkqV$2?GVQ64Olyk6Qhhe^KmRrnvzCKHdXF|bFc4A=}Kv^W4 z9dU56BP*LH?*l)NV-l^uk52)8Rq6y@NW2BQ@jD}oxs1niy$_0jX1P^H(HfAVin%!u zxWEtmT)YD^wk2sucmoh5`YD>#$LU_vpo5p2w{BK|bJPDCTBeM}XsOh|8UvV7RH1PM62m*nMwu_gWvcb|&EEFGn@b<*_rVlrugc~kxB<@-p}QJ(~NX}0$uaNw}%vK*MNqj+kHODd_Cc&?L&It z_|%^Q?H{E->l2espHrF?#HN{ttUD94~9&pI;|GS>+|C4Z`T%7s)yo ze~*a?Z$S#o;Xt_c6&!}MlxR-Hy@0RfTvm3sGsL>YPnI+z0aBQ=y|~A&i-fp0GRA(V z{H{;y?P`_8L`1u<67E@lh)#zo=R>?7vUbS;fFTPq_Y}nPP(5pDA6{PG%ccQIZ4Zq$ zd74f5Woz`UGtHL|MbCwWrU&c0$vG#+LEUnnzQo4I%7)!|jJ2!2(*_ot)l&6@FQh-XVl!gH`xs zu4}>y*ZC_RmzkZ=$*%)e-f>6{084{PSq`ZsX3UYXs2c`W_$5GcC}Si}~@8^sD}qD+%G&MNp2= z{)RLi?3R}vO`$e4^w@}TWlQ4xb-b3>Sb%qmh-YsPlfVg!ci+6r*(ZFrWFAjeqyD!r zl*t)FQ$@Hu&7F&?&%Adv&~m^5)T>osz{!?G-`H5gdGz_4+x(lX5&6wDItEje z)~xG&x3nm8oCl5RAdBJ+^;+p1+vPBGt_X%9T%5d2RRkv=KHqDC98|h?cnCBw9NwD_ zu0@;l#kne4c9jbGx{2K*Z|1)B3rptXQg-=RW-23v{+eYcoUeT5>Qu$p-3_CO7Z`fy zfw?v&nSnf`0g^B3>JCnPu-~VSvN=#d!w^B_1kkYkXVIDf_D1g+ zqo&@jwx?4&`Px;&1EOooL%Gqqxfvp`Ygadm1ewDZMsDCFF2%SJZ}_ghVNQlswCywa zcNtXm%Iz}TifDKvWt7OAr#ZF*&oR#?MBw84Mzt$;msQ3&=@4jN&;i?VMB5T?m<1Nq2c|gC!|gzG@e|GjNLk;$`SuSNi8~&rFZU@y$Lf%fz;BvSEm~j|AE1&1)e)7& z7w74^B9n}uRcFrbkM+YD`T$Bp8J>00o~$&fWhb=J_;w&>I%&Dm8E!t^2Sg%`D{z0ZCBm223e~f z7#*Imj4%tAU_Q-1KUmS&_U+~q_CB9RFcfZqjSK+xB;$PtR`RJy`o@_+Y?hap6Mi4y z$@(#W$-55=L(iDw=|8xE9oWGt2*Rz0jUCsgSvz-J-p%X&e3hzzP2aQn&U?el#fgA! z+?xsNhi{)g-&sC;R5C{(&NJ9Ge9ufzT+xFu-Bas8pAoslc> z0=nA>bgJh>lQ6;r+x40RE;7~-22`MVjzhwJrf20H7L(s!oA}kY;cdtt!*OX!drQlo zjV;IJh7ZVTCM3D+x${rcY{qnz0jFHYyBG5#h0Xc{bY-)TYsW9@63BZd#}XKYo26Ys z{vu5!honBU`MG)T1Ln9oKapl76s<^uj>iN8D5Wl0@8(Qi9Pc)9AzG7EQs;MnuH+um$;T~woc~t!;D}I_+#!R8Qt${M+%pQWmQlZU^Hnm7yxRIvftbYQ%F57Z)=UMK}Q^wGSesx`lalq+$Q z`#)X3(3srzr0;51`U=T|FE!O_JpLTc4im22Cm`r0!s zThmg~-(_tyOL_q5w$t!kca?oMYAwj1(3p}A3DL7@wVfj5>wx||4t#RVc=g!p@jZhPn^)B^T*0fJqSuj`51$g zwpJcm@K@}NZRsqtnVvLuK=ildj(774Ma$)Vc8Vx&wkj_G0!?W=_eP=zChqb1o(hU3G4LxldM;8+tj8V#5;3#mk2^3kQ0n*MErA26^flAE z(B$Ngo$eYQ@voXSfW*D?MrV6DE20=zh&#}Sf0wR|+0yjI#(#E_r=o%gkDiHeFpzZb z8_p=%ox>&lulE+24FK@>4}8FLP6cF)o-qptOQsWhq>#(3lzt~a|5@!D#$f&t?`MyN zW?kXol=Zv3?E1W-4K;j6h&wV{=`JnQ^7KN;w~2I8`>Mjj-p#t)$ONQhm5yc z+S9`MpI?TeRXn6nx@SMr~~ zaRKxzQBT-zesb4fBfa~fip?V$xOnh``>ap*Np@0t_Uq|aG@I!Oz|kNI;Re|BuXTMC zhXRKV0QAy1aAcVsLMj?NsAJmtQHSS#3;9NPR{txmX8ZB0sHd-*MD06wEk&r zDYD*M%dCK{jX_pmXQHqbNFYq!r)nov^1h<&0=trpxV`Mfa=n$pWBvDa(B)8(SmAuC zAA~WII`He`F|))`wN%=$g;>|VVZ1nL@S?}}6y=HmY8X*McfD31_5H@fP8hX+5zDO5^5bl`3B<2n9R1*@>9sW`>wpvb8ZJQbC!zblN6fpJ`vKa6 z&r0%gvoBA%IzPi5tSt<0c<1Vgp@MQ50HVQOkX1x5)Oa=dZ5ThE_e%S4r-?EEGDMNx}Bo6-f$xeDU|*4P3oWD)H6K>T(saa8~J_|EAXL% z?5`>#7^9qf;!E+D*>tgVuEmwCm!)qH-`q`!q{`93cjk$~vY%H8aYM1^@f532=6x<% zS;Bltws-dH=4uL|V4ZxK=5q#`x%G_is!w=ax>yNE2@F<&u`%h~`N$8PP!+R}ajpLP zAbTSl*(FnYWgOhF>N%jHqha&EUb_EI`i*k|;kQ_V9;r;$wqIuu7$zi|lkcmhFk4*x zO8bUF=Z(uTeOApgp}W>(+;qaI*5@KmXFhN7;>&TGdyQs6hw>|pV9bRg+ON^#jZ4D- zP%6sEqP&`aUtK*uuw3`k=eQN`?eZSCmRh)x<)MuCx{U%a`x8Y?s6~HH2AQqBX%IBR6Vl#XgzqzUb8{~RR@Mo(gZKd zTCw_3_{EGkCc+XIOw1Za3oy+0mR}+VtRQWq;RXhXXS}|ky6)C%r+3UW_RqcXCCQsV z%L&XBtX$>YSgzWlx8y;Xx4xlv``){x6D9kR%J(f!rX}zTyQ;>jM-W0ky~9406m@|k z-}~6#=5v4ixY=TsdTW}5G393K++oZX6N`6#n23{Pz*{yHfD_qCuRjV}%MPy+rZ(l| zp9n(Hyp!)TQg#w8tTdmix(!f?+(|YNrVXeOSYFwlKW*Jy27v5N$rOf%h4n3!7{8`1 zPe92PtLPhXM^SoeJV-7NRkoilt_204WE6(#m5bP+e&iZ1T-_snK;@zhDA|s4Z615? zX7S%&k5t_}QMe-WnQUk?xLv<@ZnG2nW@ktpm_&yXW5u)@1`U1yWRwunmh@{4F0$WW zx9_w^g1Q)9pKueQv2HU}G&2%OcLxmR)ezue;Wz^d$Ds2#-&gxtF2jSk){1DkTktm& zS8eTba(?`lwiV3q zH+L7dn7eun0Q=<}B*JPS&!~Pw&6q@9y*2Thf{*u&AhmW)oytH1X>);5s-Xyp$`$iZ``4Xm&i+t*zbKC0&Wg`s2|UaTFP96Ka8Km4(HD1T@ebva%e4Ut zn1IhkUwuAZw#(z&%T3%|PNb&z-F`&>j-!o*!*`#8sF3t3J~cPiHP$OSJLihs&CX2E z&7Ho7yD}%zcqK1^kQO4J$0uqv1#9c{bnBAj`82CK4O_!!ZRF_X=DhnR4q-Yq*<>KEu$5<6KCZz+l8Ut^_3}Jm>$IP}%&+`11zPSYq^{ zHdoT*tPM&vkzlw&UDauNbG<)?*4NtRxVl6;kn8l z0qjuu4(>Eua3VV}lH6@6aVEdCJ)>~!&*X|Ip)nN2CBT8OHWu%mwF7*Mr{|qWZa;=D zh66u}kR;w*kdssU$*0&KCS(O4W5@IHY125E)0@BQY8Ithg4cExr|Le+gqclDs zYf7IWP(RoZ@@kZ|J03?=|D|e?w62QpQ%Rsz0F*JyZ^Q%|D>Y99-a`ZHW& zZq^_jM=CIC36n6YuFKj1r zRivz>w&Z?jgS#U+`uE_;B5$9+H*gJr5au+hi)BXFjbPX-46-*9!T}xAG9mtdh}J4h zg*-A4+rYaPKk;iPGlo;Wkzw=}Zz}Np!5+KrEb04omPegK!C_JUM}NiD=nSbhZ!WZs zw1=z-5al)H1aIF`-BQDCiY$W%quWITASJ{N;!f`nG6a2lvf8G4yzW0~QS~I?VQ-|y z=f{>~al|>Avy1tfIkG z8Lww-qq(WuCqZs5;omNRA4(-Y=Yf1mIRwH2_33N&uwM#ovslVLmb`3?5Rm$ONiX2oP2s4h`2cL@Si682-3y;LkjA6)CT z)M=zL0}iVYy3jDL>eHCagHnbfcJlg6(Gl~SehMP*DPKu{B8;)GQMx3x$nABE5PH>h z`Wy|tSm+i*@n*X{+sR%M@jm0V09PGK;NbKZ658JB2>l0=_#5W@8LaH{f9zdds!GuE~4Lr~)Er zP#G-WAtO7g4kb4n&ksc>DVf`p?h3^_HJln7mdei4VFlFl7#p%PxRJ?xR6`{0FkA)b z!?4Vb8G=b!Woqiv5YQL$R{%NPAp!L#{m{3+mH1j~Lviy)lg4kY9dv|)r4#6;PI@c*h{0-MROgn?H%tX?~Z;LM( zl2EMry1L+c{@9MNcg&*VI{+Gf=?-Zp#sq6xoNx9@>~D_!KGrnwhG;+N1N6gqIvLra zQ}Gtu2bA!>w&*BvK;<@|;YKFsjppC?x&l@&{Jg(wkLN>AI+pMj-D?!*wO)xL@Yd)VshfmjpGCCb)ie(H z++LTN*OD#d8(i%FQDfHUihVza-I-Wv

J-R}u{_|tZplH7Le%Dm8>_+MLoK0cIL!|gemjzYhT5_Mq>iWM&;(ZZjeGiIfZC9JoE=dbF%Yl?p4L84I9x{S{Zg$#utnJ>xb4hyMg!HY&%uGOaq>J7~tVi^yjCYA_-cMZ`D8?11GrdfulE=SUsp>>uR?Xq!B3s70shB z20>%=5TlIT^`H}I&F)T;k4U63@r}Lt{s|_BV!v2Sn}6bf$k=j^0uR2ULsCwY!T?Qo zd4!6GmR+f`5AZH&tbMoAb~^|A!5_&2vu?!e3P*{}lY7}ZP%kOu>lK5{^i-}!gce(% zn#B8Ea9c@Z_@tF%#=2d(bu0dFGA;Z_hG~YkkzIEe7EZv{alf#tU|DI?(OSOX;@~_m zki=ErO59V}JTQ#rolT#GG~VZs&Q!+$^qryiDtTYg;uQ=DEDIucQv}s2aG`(qRR4tx z|MTw&KvyQMy7o%&vWU$4GP4`kY+*Krjs3N15Zf)5xS?GKk8KO&LK3{CIsinFF8|^S zK8=#EAss@vN<=s?7YQ!MmAL(y{S@Vfp=a;}uSQ}CEPGYuea*jUWQ%oO+i3jUs}zof zq`6zs@#G99YsI0VLomcvvPT>Js*jcJ-V`T|{}OjT$oS< zR!?T6qkQ2epaN{G^nmEPNIWoOAGc3_{xFlOtiCow)Z3EfoA%Y7J{9fF%^N-x0>*4v z@tBd!v*VtJ?@QByH-NHmFX~$f4=xjm#CE_^6iW9eq3lr@E}@ppaol)*G2<0!S!HE9 zpHwM1O4r~VYTDSA!eDM$#E`qXafpb;RA53!$~Qqsoa64rck2R>z_i=59&pW}M(cb~ClnD04*wlL0W(=@g~4yQ*)$#+m| zTS~T}Wijfu1VuAl;v#xuX2&s&;PWFaL`E!eP4&@?)aWpc45<&55X3y+WfAyG0IFLw!if%Aa~Ic35KtGub>BVwQTQ$w;RhPg_wxVlX-WZHM6a zY!DWgY>St$UpQiHQ@##19BWW6BncJNZ9!*Go;yF8;$FZ{Y@3{NqctU}YER8~=`|%u6 zD#kcgwi2o7@{SexlB*)2buADdl;wG4Z8?eRByJWS{GkPJMR9%~%U#g?ipX&rsiX9y z@s?d{>!|1YBeA1;un*&f5e0LIB4ZUjz|e(rW3Q{+|lpR>MQe8x94W*WOG>JYONw&XO&*4QNR;M=i~t@v$gLF~D?TxzE^+&Cb{I0$`Eo*RT$lTd z1Zt8gMNJYr-{|GxBhb~+MsTI}xz%WfCBXddI-aj1M;f~WKSaWW%Rh6 zR->3H*ogg4{iFKG%F^SjJ0DY>hsztE6862egG{&{PRzd&+a(UjOWu5FM(x_JUSTu7 zaJ`$mmSiKfYiz$U+T#*~_%q@-*C)d`)#`!pGvgdmuA z`-6KQCNC4^e}K4l#Ual@mjzJCqJ_Z8lMpURDW}`HdSfxakB`}_(8%?n&^vCDZk4@` z6R~iPqS=cwxU?K8O2A7XQ6JV=cCSorLmUzY<=hCj|YmjhEBBB2IAvAxCX&pp| zg0Wmrm8Dagc7dDAmB$P+sH-4+4NbRMFTaycA zN-{<&D3_oa^Z3y2j91=+%!nPN>Kx{xeXs6?pd%cFhi$emKys##)-4=@Lb5Kbix>Js z4DsEoah7nP_bKA7PIuX${W3_->tf4aD1$CVj9v%+id(<3Bij2HKm5x`1SfZK(uUZD zl(*!I*SQz(<@Z}?t)0GG?J7@j7{(Xs2L=bxBvRu^b%?OgfakE#-Pv4o=%DOfrDAhe z05_K|sr;(YUI5SbAZ@Cuif~n`a(Pj1U}301bKD$Zx`{!WI|QC=BcLDA<&@FcT)2S>BQ+l z(7@Eq9J)k02%d}%2=_CSTDTEo-b@S=PQ6{!po(Af(`Ac|4hS*q-5@@lNdcFQB($yw zg#^MHQxdWa-H-Yr@+p1%=!l4!3}d2ZRNm8iuchR;OPx5vMM&n~hu&wRKA*$OJWxkp zS(vRD$HSDnK9M+#`@1zZ8lp-Km8GE|Z#wp*Ng8p_R&f+A_jQ9C2C~0>F{LnACmqm{ zq_1fc$Hg;$NJUjMXnVQjsAHiHuWN7&r|B36cNhjhZ9H z&|&MFw}aA#d5SlfY`N9@u&^Ar&P0q&$z|-kf~%=Kn0dn>xp_zOG+^HDE$6Grdmiqg zG{jZaLa+!L16et06(Iz3?QNTnzlJ(zhp2aYS9)25gzCNHgqI}`OenE#Y%I>^80Cu5 zA_|3FhxJPta~=*b`2+#(i<)Bu@EgsNlXf9v*_(6K@YU~zQDK&!o+|e zEcgp(UR7KpE}w^b_49ZMBd_zw>UGI)C0HPbGObR9{2Z z0I6Qd@jKz9egVrX%E7r{C8kj3^;7$x=Umrql}6vPU$IJ}IHbJG=L>U-j9CKC7d07Z zRoC>?ft}gVOf_#GaPs)Ls_@BI!DS`k!@t`*h5(-FJ9zP^fF2i*Dkn1eQ39>#F?*Fq z4eUD8ZK75`O`OVWG;6mwe@*C3Hk1pAHHbP-XJl4!dDc)(1c&EVm-gW#e$Us}Z`Y;n z_31AQJ~*J3Fqz`O`y|HA{o8Zj2fFv?G!uOQp`qsGrF&O*NL%+wYvlGkQdJjlA=u#) zb)$LZZ+8to>Hj|Yq+Ei;gyYaBNah(RGX6f}E;ajOUatLkxjthzoSI;!wyJ11$+Ai@ zcq@X-H73MtIr6Th&Di2tMAfRVn=$F_1pZndtJ0@^M-bL;Yzd^Ks7(i1k=N4o*6~C! z>qS*sZqEH&2!{5CG62y+OG^+p`c{;7J%K)&zr=pVyUk)OtFD~rAFC}9au#SH zt)$vw&G0es&aXOqbAxbKOK!*gYP_$?AJJ{m02$H3dM-7?cic;- zLr6Ql%`C|hqfv-EYL`E8W@AMA>IKafIKcmUYSfr-0>cy+hriuo67Ib0IJt0GF8r$#mmOCtig|F?wt&uwh9cv{C@Q;+69i z0E|@_*9rIC`??vZQ|{?~TO-oIWAh5BnVb&4ApQN^EJR4<@RmL6MNx#j!~$eH@z_ql zm?K50l+NAW0l&X%uKHw)hUjlr{Yof<2|8;EX|2Ii|M?Cm~j70J7rT26g755KjlnPLj$y2Zsq&kezHuEd4Z~ zFa|3&7ipy$hffP{R8a==B-J}NmX-nDCQHh^*cjgZeUSM*sm^5jwHbMxMzZ0yc16Ud zg~RFD*}z}bhm6-k{OqoyWoQm@A>}pVayrv^IZ*^yeCAAYZ+fkRlcfGT87{h-=M=UnE#A?78*%9eLF|{}1FHnBD>=D?DHQL2UZIp@YDE@%|lQQwDPBLU-M0ps9EBt&RcoD^X-ALaH>4;UXLIX-n1=l@Fj1e6~$iu7oxh2xNIOntAl= zOQp%Q?O5-s!CsPrj&$A_S`8JIiBt0vQP_x=A9VLX9uWEvN4;`y@M_xZc#I zbMU3a{o_qmU$_fhWSPjM?hxg6O3jkjOIZ7`Yb4uQ#CzB|eZmkXSJ_2Ryyy+b^ehse zVj?}>HSc~lv)77GBk^U-aUeTt=RM8g@p1ZVRT1q5r`1B!I56RMi+yF<)6McgjG_M} z*gPm17IdCZwak3l)3|zRg3MmrXY1YWd8z~$$MTW>hmkmy%aK3(A~hNVw_idfVA(;0 zq3epx7l7Oq%M;bAX#<#v;3sBOimKf9t9V?o^Q!FU5Z-qCP(Jke-|+MOROM4k+3&hy zIyAv>oFKXuaKC*&(c03obI_Pw7Ta`{D{9@)wv~!HTvHG;m(%I8iEy|2vO?Rqb}!1c z2*=dU0mm1vL+?#smsQNAx{{2}qSvc8AAzwJ?+UW8{yEo{(rdq5FGa+({LchO~H!&l-#|O$m2<~0}`cMR!1zrP8h33O%g)MRgjkIaW-g7MV zX%Vz4%K&f_JtqF)5Y<$Q7i?hr&^S!;K??16oH=v#tpepM^zkBp^0+$J;$`IcR-$LS=fo$_PAt##6De_>Nz&Xi% zn)Hdqpm5Zg^r#yxPDoRXp*oSLn@lx}C}x^I*j)q0$MgHldv+6*R`#Txa6?4E!u(k#lQqz#5-A>wv-<-u57<7ZCh$kJW7Lav@QG;VM;6FS z$Px0uc-+ypzl(c!-I-ncQXPy zOB}+d#s~J$W1bpxhs=>>%*GJdLfo&twDXl;;z)=%jX~y;X)KyOMXWC4Kkg54uH(w=cqow;mfZMfioses(CXtFu@%~ll6F{_>al`P{ zsoa8|Sx?i) z5hffCdZF;52uHdn(AD2@?KizdSN4ty!~?u_uQm>Z8e7(d`QP8q3#3$dp@v00jOS5Xjf8(v zMex#C==t?an75y+2@T0{(gHh~k}H+|&Bk#<88#Y~bc{r`8=^ai*DP(veEF*QP2SYj z>Z=mLYveV_%8Vbz`Umixtl^bLum|12Io+35=C;y`$DFp!YkBX5n=d!`+nMY_YZk!91zmB#1JuD#fu*FEt-g@mqg#uzW?;|Y3q$qLnTMJuG<_%a06DKGKT ztme0{s~YIOo3NYvGRj*W`0SROWI2)+A04=>4M)p+sW~s5fm`{nt$3c`r824h&>m+$ zp8z77MYt6>0Qp8+B0=}@VBnV5(@Bo0lx6Y#pPXtL8{)EA9(4MO@bx;X`wgD@LMS>q{bdE0~;oBrYflO)O)@ z5hJVx(FW$}pp?8w#pq`6KF}*=nLQy{=g9E@()NdDC0WX10%=C2Zp2j0%Dsbd*C>b3 ziEj7(YRjYbg;>$l0BCP%eYhui&z){nrX(x>dEmImnAB0R^WSVL*`he5|ww!nF!IQ9!4&c*hM%%fvvJ@QqkhBxd|ST@M~FN{HTph|Uu#zBi@;1sd?Ti!jnmnt(@J5X zWpL)*`ZVv+b?ChQw*e0nlJ-rkhx!{cIgy?2_SQ@ChEM zR8>F;HN`v;e>#)fk)!dW$rd3QT5a{LXXR%y6BpaL-(MK&-)K{Zdk-oLNaS;a>phrZ zLjL&x-46Y%6>`u-?aZX*t98 z{;u@hL^fuf(8*$#N1FNT=mu2nAJbN*Z+<|0)-+{8Zdvo;PUEQs_TJF<4!@1p zb*76fVVYfwM=h8!qSmCzQ0gkJiBMwDEAY7ad;V>d=T6x3EmFHnI{(7U@#$-70(YCf zrSWBngU0>Sp71MO;7NEmf;rd4R3h`azVGBMX}Br#{xFd9S~)h-&SlED zUldwP83Lt)A+Gh|oigvk-G{?aE<2-dk0)g$qYZ=9$7>o)5W}0lh_jYAYoqf*V^NoA z(11Ub_45R~KH_Y!`fvfN8UHt9UcXl-lJ3dO=GhZ@#l%}m`uMK2GmG6%VsEs%1Qrzv z6E{Q zlqurtZCsy4+8esqL)wXoTY`;JIrijj_mXYVWHw$e3PJ9fyH>t6mlSWiVbH#>;S$R> z9SU=R#(2>_I)RN1W(cnOCi~?4PYhr#KR7v+D{bX7#oj^%BG`13t!1b6aAL&?TY?FA zqoGtl`}~Zc2cOSWFNj$TZ-Ts}jR-)FlwiruL{RVDQvFM@N)xQ!E(5(<@PZSHmV!Gd z3uzUQeDBB2Et#F*otwu~bO3fZB5o#IoTH>kqX#O00%@#i}=o~S@cy(ZE z{fpTcn!$8=AZ^d2UwAGNhQ1HbhYDn5X;`ebAw?sEsoWyr0mADD`DB+@8xso%W10D4 zwYG8;mC6+1t_c5-AU8aCYt#)90|+aTempq0*UtmUhRap<48eYS!K76Idcc;kAt}$H z9W($VJ8Z61(3P#6n3mtwpwBn|nFx*O(k-ehC_GIG$!ojf@!q%^BE>4n&L{F?B+>Hd_x}z*iFbNNp*w2lVJcGQ|BFcO>yLe z)b<3`7y$Lp&+l+^kBV8iv{4LFcX zl7oHAUiCq=uQbmEJux3uBjzR+h;GPjNPe}+LUw5?MTNb-?muLMr&{syxl#BVFQEQa z4a_EyXtCK}P>!C@LkA#=aU=h~R=_HX(@c*9bqw`#H80FoWZ-z$>oeL?y+>&heVzCgZ|lLxscnZN zc|3pnMI{YJcLb%8iSK4O3hU3NU%xb3utWE9-t87?NjOFl(LTmCO;YxU9VoDhwZ2Y< zW@-gLTsoaL%PMuAU$fdqjpYie6f$IlS|@ey*J19^ z59{|d= zX;kCmUMJncjhi~l9q~Sh)hDDM&P;@-vs^pg zL8xpP9dn*UGv~Cds|IH_{sew?o%@PSY)K%*GBY{jdz4K)dndRsN-3SJD+~bckmt)EAP#~gRpMVL<-346nwoT~ z@;r1W^>oV^<5md`>{i*&aocOSN;bQcCB%DH%q50D)r}`sh)Zv?t0v0{g=WgbR3$Fr znkR_nDn6Ni7uQs{DEy}CQMKFe0?ncvW8m@LX_05CZ-yH{E;+3^2VmIpg`vEcT1-2W z`ne|5hUV{OEAvSZz>G`L?I1Xbi}!-e8(yoFBW^2$j(3L2uZ89)$(#1EUOwJz;(K=? zY8Z+HD(fpXLwrTURa+6e*~xY8`{2Iq$UBu?7po^>yr+IhdMmAw3c}5dLkKE> z9C(J@`Z6iCrY5y@cEX*0<1^F+XL!DGdU`<1iZQlnK<-PBK^Y-!{Sw)zXaF{7XsWKc zDq7R!Ndo-5VMYKxYpBgkdTHlRS)6L)Z??BJODELK6kF_D7O6sN>`G9TY%2*)w1tn@ z#Uo)|(Ai($hQDH6PU#yYLKbR(0UOQ>sLWp)FV2wbDP8()K4lL%XKk4+h%|f>w&t75 zEeyjf>%f`oKGZh{n8wQ+rOGkgnpdFm2B9Vpr04%HsMZ1r>) zomQe^E4m+JfdrZ6G|IMPw0OK0ZEVm{2_rH4PM@3rJO4c%zpjb*^*Di17!Vc>v+itoF#`$2ePLp%ZgBETw^_+uYk zOppOC)7~g$eRB`<`4ug}#(|{5IuXniYkyBLMNAFvuO+6>vo@Rx8c4RykJR}dpOIu? zTv>rJqyuy=M7oG$Mdf^`zn;%Jv35i*_SWJ|=9=i0HX7#*lopw7HMsFb{K=fI0$6CE zBF^V(<_B`9hFKKs$Tb+N=ak4n$x_8P5aE36MOAPWynVcTJ9|Xk7lt_PY+ioc!^nbY zz>J7*V$Cw*$-kD_{@q{=Q31jhhBDyH+=A^qeMr?~^oO34M*_15zlherR4I{tk&l*k z4ooWLR3f;%r2rDYgRH?f&>43%1!{tF8p(<&<-a`6{QEdPxPJQ_r?M-+R)g z&pR$VnZM_MD51RmCOr2ew#wC?FpLD2HsjP+`eq2Q|GAa%f%$zjXZpx`{0*O3B_u<0 z)9|FICee{u2pg_pZ$zljH^H9 zA>G!npe+Diigu2BL_TTJSD=*^+1^b95gh zW&Ckz%?pbh;8-RyswlybU?v-h-8;8j6FEb&FN`w@hv|5k+uLY^4e3zf{}kabv5~1C zG^n8g;|MFy2fL|P1U{bH_Op#D?Fg(0Aj)tY4DEMN({3Q_U7GB}6TlC963yRs2f+=2 zNEH3>tNJelqDs9;dMisr5GJe9mR~J>N170 zJ~M&mCNH6%q1VJ8adW|Pj0F$chC__6P+Y3f$9KvF7#I6rEy+_2vP{O}^;yi1l2fN&9|{v@43{U+6$RfcnMozM?0)99Fwa;vU!YIpr$e{9H9Z?_w5J}H!b(j*=$stX>nI~mI0}#QkRFISR&;~7we@LdZz;=^s$Q^K+{eT6qmaiZ3458Fl6H?T$p{FMrnhf_ zRn|`45W`T6R?q*>PHMP?3OwwurrXc*Vo%789WT*9<`up|b2>D@*HlOYfEb~muhOpy zE6dQY6{;nH#|X~}pPY~d^p7Ng98aRkw6w7tbGks#GgPI{&R?JhuY7r9k*EC_{Jwp0 zf5eO$;cl20jK4V?P3O#^FggDnu_+h%WB$^6RP7~(+6NLL9quvg`7xdCKwl^PYzdcj z%VMh6dx;~q8M;y(oOCR1Z%)piw9$3TZIVH<#jiay)2CL`tvnvh-gT_6f8+Es$G(42 z9S1h$ZzR4WJiTdi@#xqv0qnzHjFjmhUEt~GUWc2abXQ+pE_{Yjgz?M zq@c9cI!l>P;fKqAmPTQ&lB2`gJ^3$FE)7rG|>vRPIm04(y1>S~swlmx%Y!$?nq<^U<)4b;&16YqnmJKhX z%Z?uH1q5BnHI_-k3Jadfbg~YND!{e{`77s)GQdNboyT!aD3+5A8}#Z!u3|o-9M-*+F)86tdh#VQlt#7BNJgTBGw$+^coS5@?YV z`;Q0lMAQdn=zuOUK|=6f8)D-z#;4qD6ZNj47{L;=AB)5IaRh%K10(Y0d{w(VGD;@> zKbLleaysk#cfKE+a1cd@R)%x3ki4aE)U^Gclwr$~%;%`KWjn(mu8@F?cEZ{zHt*Zw64^ePZts^Nc~ zt~H8)BY}wA-;9qk#Tgz2(MdFGRU0V`tW90479$0Mf6Wz&DH_^G`f1@vK9x&6Uo`6ZCWM*OE+u}b$3aK8>Us1R&nwP1+0TVuf zmwYUNjuTRcn4-rPr>Pt3epN6_EqPc9ve&s|U|=4l$K96;v7rUcM5z4k1^Bnb`afk^ zlfObQIwmCd2~2$h)b~0&FgYYzQBD_NcVeRfiM1ZACm1#>gyRP%!U1lIQujR;GI!9dm zw#??y`0}NeSDGgTiRC5Wu9W0}mFZwB#r&j$HD|nOsNMX4{e+Qum zt^cZ*Gg*#b1aIpc5?FM+^nSnKRj?H=nyW2cOG=iz^DN@ngsK&WATzOe5Fy&Q{8)f| zc_2r~IDm4+?aWkZ0ae)LqYwl$3cJr6*VR=P<){@bFiXe0^oQb2Ty`gL>S)wipZtxl z?5Yl)s^1wI+crqYwy~MNCdrt&sNq*|oTqoi1N8tma76B%O|a;d6~8!r1FeiHVj{B= zgfh-$Ew4UU{G}1-#LPk362EIcQJTklhT^=VFS1;Y>Qpd`sLgR8Cytn764O0K9^(;S zAQ_W=l?nTO*TVLt5JJp#9cG!nVy-nredjsT%OTZ(?q^qXjn#`oW)TRHq8Nyrm_JD{jQ|`VfBnK;1=Mex{L@0k^U*~yM105` zUpBbag)qlKFmb~#X!PDf>-R5u1_6Xmel0^1s}G)TG!6 zlKUZnSz}}E;GCb75Y+D&e_Ex|>9iZptSU1*;S^>a;?-jWD)kzsYzq#Sd6`4xIVc9f z8dHxY#co9_i8Wdca=im5gvRR)<(x`>_PU8LOtfJjDCKvLZmZCUZM!2o_{?zIn+ju~ zSQ~NkzU8|X$!QB1%>K9}53)c^y}G?+D^C(akDwDxu4z6z6tKrt zA8uIl`uP$vRNg|eJFn*KoDjiV#nnRWuWzEEgp!N*`*Y{6e%^h{BBP;V;?rGjQ4+JM(3Ilt*#17&umukfTsOkz6 z$);^*qSEr5S8_r;VSa%#KUgRTG9TC$R>L|mD_ZIN`NKy4+k*EcIV21Hd!h}i<)?&u z@9KUYl8_WID!y%`{&^#yL6@TXo`)+@L z7#2a+D*k_^PJn+jUc*tSQ(3iH%)TO!lE)ng2~}JhG{K(!8iHy>Y!uy7M4N{P8kFf} zg4K~6;NPVoPt{~W7Mdoclup_nsm*pH7>o`+6a^H;mxbVl0P5EXuNgv*LE`n`^Yir_!XlE5Cug_rsSr#3j}`%bcKYF_iXFcWVN1@hy`@ zP%nK4_n*|00)hLncz8uJ~k;k>>mh+zbci0jHVY}on&Hf+tC ziBF0F70cXh>-a}w{svIDTsJ~=%H#khOZsIJWr!;r%Yf~D4PBVjcFW>aLNRdjEm ze=CuHX35k|$DsGU&t%CSmfRX&H1$ikZFl}65ivFS6Z;2F4@!l96F4Z;K>q|t_0A8o zt-ttl5*)08ulhB^udk1tohWC%H(HG3D-#2)4iuV>d&0d8?;0g3tG*>_^~G?p(fTGt z-yd8kQfVoKT`!o>%2j}KTV^XYkODT1Fl#vDB=2sWMnpk=c;kiw;=;{s|Br{`->dy*0OEPH+;1uxKf^|Aokcgz09!H2+I+3Fy1%jCw7HnH#E16*BK|A3faC%;z+QEc>0P z69B+O4?~O<$>|u5$pIZz`bNhm@Ll63M2J2RVahc5*)=!sN6FUK`9~Q4Z*A6T(#rLl zLsf_=?G6*)PdFQmP1)W#bU81z;1m3JzS;g`yc~m~wCe(uzvRmPwBx3*!;w{W4>h8) z=wxVUKuX$FRB)k&Hvtr6?g-90^CxlKeb+yB8a3 z`i(9xx86bmwwi=nQI{gKPB+9}v7)b|RZ=Rk#C;9qkL@pcFJ;~!yNPN}h4@o;sU5&g zjm#lL=66rE9(#OH9b)SZ~pYv&#cthk=5ZV7R6~)y=TL)HU7J zcq~d34>|z$-GRKhfapW_#m04@-CS9naCfnPpqA<+<&24n`EGt@W@IIDrtlG z@Vs1DU44uNq!e!6z8Y3xFA~Gi9(pwJQnU?A{t#~y=tR(qQ2-}Nc>l_cMaS)rHRPc`Y_Y>xx63R!cP@zAh_gm4hI5M_!SV?8 zg5PDN_~dI;kFDFAAJBE|$ILw~mrswLp$|*E(&ANI^QVJ;+X!Yk_@3Y(kjN`maEd%G z=j=bU&Dylef7srCy`tp_XF~w5Uz~m8%vnv`E)GLB5fCXZne-s96D=-ovW>+fb*NbI zOns~5Biz)CfXr=25AkM3@v0H5&)k*#r)OhB7%~gr;xu1{UYo$vc?RpM(-0=xJRD{z zq9w8Nll91mI7Fcd`ns7*GR~#ZI63l5>0YaEdn6AIgjAlnV(Lyiu23SIKl?XcPhGzr z3pH$bs}G=aiC_oDWcVX3gj#n^a@_NgiPCHgJ4^7Ck0nM!N+=}mXyBH;GREH~sCfB< zC^UArXYlHliJQG>nAuy}Hp^@Ul4Cj9TmUe(ep`b#fYK;;AwuQt8r5xUi2-gw3rE6J zOmPWTLAu4;8RU-B(3G*p@JTY$kG`%2a~Z6xqK2q_7ch=0EX}QPxiQ!$9snIFms>{j zd&Ag;$m0{=ARtxXpnVg=3_e+!pxG8+_3N)wGp?{2^WpJM2}N*OTE>&Ng$y#J&je!; zmG{2nrv8WRmN+W)cUgc*VE0!wSW^;f+%RhY{0^;m|3~mM4NacbY!>jvmC z68odM`HyNqgh8u<6@IZ{6~f)&$Zc-eI4i6CEGtV6U{jaOY#L6)NEhDQn+_@JazzRj z5zR8^Fzd~rK(2B_OlN1ghiyCCxXMbJ0|zgRoM3;K8l7kFWp9;0%z zq{8t9TeW@ib}tl9MvU*SiQysfCzA;+Gae{yAVz!Z3yZ(PY*nOiO_%O{V;2nT~o}qRt@?XP9l>q+cHmLFW6nBnjNr8~?u=$)S zSKDT-tUEEe+u7>1S)B9Moia=ZToVMCqFAXNXhrTtr|%SXJx&*leK4MJ6qEm2Sv z$AwipoA*rBYU6B>F$PiqM%dM)MP>qk?nuviJmAMqa0IwSL5&1+pBe;tvf>KTDr&px ztbA5nru+EIt=VB$Cm^H}p^3(b4}WX~4Hfg1m#o{R#A8GSjo#AZ$4cquoQUKXyaE|x z#fA5G_A5)uSAv?szxu8i-Yh(gDzJ&+zPG*LLN9-sF`^!AnXpZ0rtVh?-Px-5s0)q@ z-hE8hKmp8JSvKzr{0iwPN|FrfYHBP`T6s+jS+D%Huev?izp&~FF(yOo8edrd2>**W zX3$7p<|BeTjZA_Iusmm{)XXv1i7I8K!`J(E^vVBtu#xE>o ziL#w7AbJzm#W#qdAKEA0vvN$jQhxFaiHey+hE;MLY8#Uup5xju-O5qGM<^Ktt`4vJ zF+duRu^a>gMMO#;(kl`;|Y3^nX~+83!}A zdV@<_YCwCVOU6H?X&AYE79wbKy6{v~D?6)`g{SuS3oX<_kB!%BU?emr4y!^?l==N&L<4Sjf<-D|5W5H!bP%17ApO;Zl|2f>oF_%hMotc z5#|@(#|W2$P#}W(>}`8nk14~#tTSBLq!ZQ^(fPIo)|Z?xIEP&8oofPFz~FgEmbkuZ zvNyBaUFS*XDfF$ySFrFpx3}Ns+w9;8Qba3&6{#Awo;%248*q1fFIrk~58aEy-rs-! z9QFM3p*%c>)mv=;NS@7Uh~rznz*jUD6I|az#*xVG)=EwSsQx+^*i`-205PN%;2od< z9?Iq#)r6jO98$L)o&*+q6)|v)L)*P!v4r}68s1WWHyf(gfOC!3pHP|kAxB0=-_K@n z$pis@Xo!A{v&cI*KsMPb5cS)8^`FDx`y zJPdRoxGA=gC**Qbp&-ize1<(`QP4K(_aV?+MkI%cd3Y!}9KkzM3}PEzsJ(znJ%jx& z3~6Kfr=Mz(L>xP6B6Q;1Eg~ptMVJ!!y(|r1QWc-`M5B4}A1|;~m6{k7!i9ZG(7?<~ z{k3wC%mw7!mv6UrUeht_Y74Bj2ZfB@D;4_%2mb==NEGV3^R??p3CvXtEzFB&7*2f< zUKT;O2AuNKG5h( zyD0E*;s&t|=6Q$SGs;MEB}S>5-wi7$ckDq+o9W77zt3j*bzc2uTThAxXv8gFN)~fI z_MM7F`>4rWKDmpN_)CQgcEVnx@zX~pZDWxb1;;a-IR$IA9-1pP{%~w;ELo$N+E~~K zrME=bSPnyh4o_nvm;(VB6lUF>)vwd9?n&&fZ*AU zFt@dgd9(KVT{MH;q~tBBz)LduUF&41iI{l%kB7(8u9Tn$y?3YOEn5f2|JAEokD&rA zff!=a%zd+J71pGi0~PlCSHiC*}1bu}PAViWChywBGGj)}x<)K*@esnux3 zFGbd_Tpcas_07we_4kI*c-Eh0w2eB+Fab0>YtEF zB@Y@3u;4<_0SHtMoS!m@fKF@E;Wd$w9)JJ*N$XG8@A)GqR+#hqeOP5(%7{!Gb{G+V zU0FA=sK9}t3)f!Q^9L!gG&OSDUVpN6!CbTd96WU7ICFU=H#3thJ)UD_27w}Crik+( z(&dW*f*{9?|DVWkX>2QsPI$R{p@Mu$K#0lXh z7#mETT2B&W^$pXlP9CawS5CEpUD)i$q+=s-vei`qKchxK%qEk~K zHvB0y4QH0Lx>^ULFd<`^G6FszV=)f;nub)+AI;x53EAac){98+=7$YoalnOuBmS8% z&uWEUO^iDP(yVxRk~A_ZYB6gegwa$o_rGKm|IgL{T=vu z_Sw1Aq@dUQb9qdX$a(`S+a=cpIZurF&wl`KB`;E`2cGnjnaU191in~C#2SarccHN* zEND2O`sT1*w~5$n661Pe<|*m7!0lKRuF(=&(~=J?E!etlEp z;NT^-?3p9}d_Ngxg;gO>?z!ctp8J(gD+Fd@|Ix28JUx+;emAT&aE~XFcflIsx$~$!;2XfGm8l-0%U5gvMQs_`QtQTm}A#XLF67A2$si0;=uV?mK>JJb_()HNKywMC#g=1Ha~2 zI8seU+iQ@>cpKZ-fFZ|L&6Q5|DV88WNLb)#&o!y^|TOOhjE?CvbB!U<{aay2=d3 z1|Zh2Ampd2eOw*|+qPAd0pY95+73Thdz|DA zwagsTpZhyBRg?i_rfVYa1^(#Kl&XI&r^3EJ7pKXt4_$=XYV!1&&c?NKv4M7PIB-{SfX;ldv1nTtY9W{Npr169X8AE(zKw%%05g}ImQ}CFqvplJn-4M4V!%V}jgKeD z|9QtgDriqH6OVI>nh|xW+^!5KX^cfrqt-MPUwf0sJyN;#`?MqLe5mSxVXfg#rGlm%Yq20kF~`y>Ehsr10c0-(!p7})7T8n> z%J(#Oq*#+KWY#w9jgP77REFg~QJOi^u=fRF(|DBURX8ka4ZFNwhwcvy33Y#$@gShP zQGV`v^`O_ZJu~(eb5}tCYtkS?D(199$T>vi;?aML!Vq)~G2GQMRFZQVsF>9acw215 zHmGDHfsp7Ax=ZFmxlEo05cH|K-y}F7aU1RPQyxPIE{mwseGpr(ud$T_0~2mg(kJQ% z$lkn>Cwjk#!weQIAp1+D7}0;0Vb@|7XuMnstVC!89fPf_i-pps^Uo|qjUZp& zwA$QbE0rFtFwCHyT`P-KOioxWqSzNBMp`tNdC&)0>Y zKOHbZ_9G^hvwk6fSVZ^C zU@K%`^c%}gu`qm8U*(9|gw4g1FNyA>ZqdiUI)`icf;hG_4d|S6SOqx1PA_DaK5Z}d z++>j?l?(73o}m$auEZPHRfB4J0)OY0y}4k{OuS0&9IL{rTQ`|Dz5%09Dl-9t9>c%G z+2EQ>sy?x_Ae9MNn&P~Bof8y+FaBI1cwHm+8I71FX|ioHNZ2}UNEwSbPM<@7WaD4- zs4CCmmWMD%c5X*baK{!G zr8{H%&R6y=4Jw3<f5R3q;1 zPdUJ~{DZxc?i61=G#X;aSzOYo(vBC7bUml?MUH<0`45u?aN@0@@!jV%#sS5Z+579? zl?PuCyjH|oGmt))o+j86Wf*0k@YF2sgx3IfG??tWOtfD%u}!>zwVzHl{|o(UYr^{j zo#8S1$0c&%z%z!EqJpfJck8nYhGVcc<8Kpw=ZLk;i8Z-8n%$&jro}(ZO-zAN(q%J* ze^@%Yj#=}hV3Y;jM>3XUlc0Ve*!Sz;S5BZ*>B?)J9?8t(l6&9_b1bLM?Vjb z3%{Uy@{4Xe%l=9B{T)^#Zkg9g{@+)3?CN>UPAfP&$pF#ZY9|<-6m|*1RLZaGgFm5*R)ke}*frfe8hih5eg6uYwhr8EJYMGY9e- zGDm59&p_dDi3RZbj_q+K?K{%_W{bXNe;Af|kQeaZ)6Hgq`F1XhFf7 zgQ5-;#)GgPgrsS2D%Wm8dXgzDi#K(Z{q0beA ztTB0t&JuCYRUwt4>Q-bw?t-o6=_el$J(CT>9+s%*`1P|@Yfs3ogR6^UyiQ+2lT``M z64aMfY67b2d$-+vZSuEw;haE_?qSps@p-$%p?=*Op46hD!52nMU%nTMi9Il%swO!SwAlO*pgB;3n&=U<_z57R&0|aH zBRI?nK89DOL(uk=&W=Gdja5L4Kvh9^kCEbS!Qaef4CHA4R?$ZH`IHq+TX=o-olJ$$ z+0S1J#AXXiwXeRWkM(69P{x;{s>F-?$CUHks#4*E|UHqIMixJtn57&VrYcQ zKz7-hpky?uH6eY}1@3YHw;0M0uge2V^msDdW|R7v1xIpD*Iuf(hVarP++MErio?G1 z--&;|ql&qWCmm0F{i}RkbQvN!yv~l{X6u&Px>q1CKE1B_~AiqZeEv*ZUTg zQl3PXp*t-ZKubW4-W2=gm%nO?@HgwIiHndf)k?;UkN6###edW9Zr zU+qiFef*^J`sS#`aV+I4+&XL&M|e5$`;IZDYIBrv&o`=qhHJf|r=LMrV>nAI>>@Ac zosYY-MWQ(1YuU-yn2lF3W$;zn`gL*;EP5sW;jp#sKTnFIHvFIaS~wB)9MxdYPd+n+ zs_o$WLA?iADbm3l&q&)oZ8~3nsru!{YL*Y&Z0{e^WgtcBD8 z1;HT|W}Z-w4l|5Mhb^LFUTrd_3TOp2OIPI~ByB1o z%9xNy5j&9o?XkNaIPAS>A@Em1jVQ2x9LIL$ef69EF$G!~*wh{ZUw4?|o_w66`s`22 zT)eAznfP^Qc^)h5t>1UrQ+!e=24hN8MY!9JwZUEf?((j{Dja?80-kkwEfdayTld`2 znJ%FZf2Yucg311v>B!>C504f%-szE5nOi{V>(+j$;FI3n0x;_<7Q@Y!u!8}JTzwz6 z{ts7g6&7ckZS59NxVu|$Cy<~aK!Uq#fC35#P`G;m!QEYgySqz*Yj7vH1()D|ech|q z+P#lBf+Mc^K6A`5?vW=2;Sfz!JI7%nAHR|+O>6#S1m~LTuE~=-oDcK11ukvWs?*c4 z`B%IP$3-dfp~U~qHQ*uogRXuZg%PJVfnFrhCgzzXigcAP^WM@Zw55wFE{@Ih#QO0u z1Y88K??IRO4m0qO3CW&;NsD?dHHpyaxR;eQz7cl+J{Y_mNENHpKqA;@>ycUwm0jnA z8no5eSRm^}4w1dntYRVi(Ujwo8ag3|-ct-2wDDoF9KvFG+y#&B@=Chu!*dSr{E$7` zZ^9alFmTthvNwAB;afc!98cBg$iRd#DNu4fT(?d>K%Y=&YQF63E$M3OmeEb>Fy9tI zL3K5H?HbPrc;R?SK-o-h4Nx?_jTRImPW3y+o4qRr<4(dmnP_CEXKtU;}xSo>FFjBm~|<+ z_NQ3QdeI9M6czk}Tk$L8R-GGdIi5XLUymWY;eVn>S@A{cLnGQc9l!- zC;w>9iue_948C5pO^w zp1w$JPbkX)`<4y;zV%<3Tp}x3fp^>g`*z`u23ny)3jKp$>)t(Wo7ynRDiU70@*B=5 zS-7xf6AIve?YcvR3-TZUMmZS&@p)lJe2`UYz6#OyHq1r;J~E{q-oZLHa-gc=#OjiN z1{YD*@(6(J%_=IkAT(*QPO4q7*W4tkDJC#VqN2rE@U^JF4XobIKn%?7Z4( zGfc8g;q*ygU~oy3yO=iv%Ovr4^K{h zbdD#9-0IMBaBPz_`H)uVH;a#+ogDR1Sk#YY@M~+a8)cK1KfHNRYW|d*$@YD_W4jNQ zt;>A=(FQ{>EbSZiWXg52BO!qg)ktvu=U?*Q&Y;vdyp~60?B5wi#Xs!e+xcwPevE*j z>NG56q!Pv|a8H4~j=jlI@>|ZAi&d+Y#+xRC5dRgbm3YcN454_-5-i4Rg3<^n7OSZs z>g}na34cn=ZK32|?5Kt%0LD4@f%VUxMY(U*>R^d=k8APPU&VW3u5));zDPYF1T@>u zr;rVn(bWf-WpGw*)g?r=FT(mqhmz>C0%9W{KmV|cXm=6B@TX;YXV+132sbYL51yvq zL*{T2a5@Y!^MaXdG)YlE;rL&mgP(me`zr*zQwM5%d%oGlEo@C7sc6^%{-_8ab+~5)@D1;6@Ye;9a|_xN};On>TOJ- zJOmN=wj^aMs%%OmEVq`2%N6CCE>m1lks7)@i_NG5eRZ=Q_(8uVQp>=$wy1YU7y)1g z;$sVMlSHqQWmYrv*069hlg(4C7-=z;^?q-G*WaJ8WD~5Z;A}39P=p!+5-OusmGSS^ za!}bwf@qR3J3$VVP>R0>CAnys80)53NEHBPwuCQ2G%+3T3MO3yJso-mR#p zTy_bg;04)7u61h6&UZ(%fzK&pmDhArNf=c?nkf}Yg9?O`(AD`2(77iKd%FKXHPaA0 zh7ke?^%P0R8zt1Lacxqi^@M$Hc@`lSt!s3?vB&oBfQZB%zi!S&jJ4;Gdzc-5oh}xi zIj6Zt7e2_mWPTP2+YmQFWKVKx{}j#c;qRs6ThA$eKmJaya1;b#%)CEe99UwMotPMCC0H~t_#pv74Si{cdfF!bSv0i7jIiE!U< z>&%AVsL(L5CjEUq@j-@yCFgGbq#b6TW@qv-5rI*u-^gfa;QS>Z{P-4x1e7F*1xa9} z_CN!GxEf+A;*!J6qzF%VgmIaClM|;q*;6x?FHW{DoxW=`A~W^8^}=Fvr`KN9hJ|kB zhMoGF#S@CTXCX?u2P*FjHh1w%l9sb64MYT0)|ED(dyyUf-U@Kl1G9IPCCVW zuF^6Msjo=G3x@-HR;S&L{*|&&W^9q2N;5g@s{mM6SLxzUXk}p^5xl;9Q2r|ft_iQ8 zbd08j)yWW@=(}J`myoP6PTum8m4LXcn-R9^c}mM`x{{kbbl-}0SW)5O$CtfH zY&lFKfnR`-LI(Qqz@7jJMpIYLx{m~l;pqiCgx^9Q;Sie~O|l4!-skSS>Xc~?dp%9k zI5VaSdS>qt`Pt|xWV{xQEhn;5o&M76ugu*f(?i? z;x%hmLPR{ z`h)VodHZUhgRzD(ua*93AO1`NYh0J;eF)8DWW#(=EmW8_rZTKtaI()cmATUKtUe_} zoj5TF^Th6g9mfUZB$RNNgpW8;^?-+W3pu4-b~v1%5B{&IwKSLx`r#0d9CJiLD{wBC z?rS&*m)r|C7!=$<&fYAG;+;{XT8fZbrK3Di6^Fh7CN!a2_-NEEJdpSce7Uh~Y-!$D zRVB6Ipfqvr^SjT-$f&!HXHsJ&?R0#?(Mxm~8LFQID zMf&xvZEA1#QNb-}tei9n39_2|=qAn3!w9!z_eh2~4>2s`oG;ge5Br^pvnsS^TL%m6 z`Vs3an@*J<cbf&n**JqLGi4f_4< zW&AA-X1p3gb>RC@=Id*M{efJkdal6WVz+hxB+2>9QGn%_z(%xOwP^g7Vc9gjR&fek z_{F8{fvQ`9MXlk>;qk%MF~S}5ujYY*1--^cfer;Gd*Pp^2rU`%&?s5Oo59YCIQ9{~ zIi|lZC^*n!hm$Oiy=fRpP;CnvQIFow@C%Vu6YORCaXM~Ib>Rpd6xn-Ew6niR8XJ1t z6BfWUu#dWJ>i-*Y^{=FXLxvPii3FKDzE`0qg9UHb%?hlYSu~SIP{wIIgtX$mjQf1e z{)u-(%;V*EVihGClUX%*tw8X~$`l4)GM)bIz4E~*{o;^YXa**Kc&k@J@)EasUi!Tg zUMaT=gI56OL_@2X@+(0!1vLZ}bgXNUL#HhA40)mZTjjcH>~%kKm?NEPu~Sj+x6{sh zd(Bqtr-Yh4H1fby(-OU31y4E)v!(Df)nT}H=IoCqb0l@IJ}_l_Mnf8MgkE;?K=NEF zw>t&+F)5SY5BN)smrw19qlXrmX=l1yN7^YyZ@kV7R>S{rakZ=Yx=$#}{dl)tob4F! z#pi|^{CQC7#{DW|ojJwO@ukJ#i67m+QdDT4UGTWVDLlZF^lUQ_EB0#Q+28w_d?QZu z~5 zf7^FkE@c{a$oa6`?#lEZh|51e^^M?-+Mj$)E2*3o=&!yk8LY`vpV3+ z_6Zs(KBtk))*e;ctL{8Ox8zfWKw^7S<4hteC-o;lVwqD3oM@1xh-6b!_mS7C^uEz#lOt?p-eg4x!_7VQgg}-abe+jb4=lji8Zm zAP6IK#h9gh0zoFAv|sd_X%}NH#H<{-KLda7C%|+I+^=|>yF0;nT4>43rZD!d{L_Z) zmq$G2q(OmF4<2%+F@+7*VhnJYu1WJoQz8(+a zYyz33iP1WG4*=UBcP8gAG`67{a{8D(!+;%Jv8SB}W19thsr5(zSU24$1`!Myk^#&r z05+ZeAk-P)D+DR=W~WBX8AJ7r84P*2U!PvJ`cLF}y0O1-i8~T>=!^TrYQR89E>MMxS0zI~o`XDQqwh$jQKA-Ql1~Qk z_9js$QcR`)+lbw7h+Fa;KS|ku(MiuxD01v z)ZowbwBiiX&H$RjFUlpXDEpTtJu6l1rm*NM@4XB|_NBFbv&e#~2^eOF({UxK-- ze?xbquQ(%!4fh4#8}jLilTpo!&kVEtiX`sI36q-&Ow-;ykRP2q*^~y=D^2ws5#C4y zB)Zum{S;j7^7>OI{r^!6HtALL;Pqi5rzpWLiA$uRafGF9`g^|PV(DlbkzKm833uY3 zTRX>}6O`4j*zgoxQZLZdFSDl$BTvvym$F=|K0Ww?BYwJrRI>(^)~ z%cDy+wK59S#@05`BHP0kgZ$vo=p{2YYxWGyKkt@mCQOR%awkDqpXs1WbIA-kaqf@cg+5CUq@?@eX`B#>XYEXwl1F1$Bx(6=@WGjy)0HxZv}PckBzx zNoYUq;-8Emu84sZP*^DlNmJk8-e0CDjiR3+HxccP^9&jn7U+1O#ETsCJYW5CB>t}f zrwqSu^r#%@04QnXvK`u$db>agj6Uf3!wR#^`O`5Dmm42OKJeX~#0l*83sMEXoKh?I zPMShGFMi*uj=7Z2hy&Lk>=pXHPaRUm zycxj(kdpJc43jeX(vVy1VI!41=-(4U%W4;)=I&dlgDin;TxkB4#D>nOI(p++ymbv~ zmJB4xxr=G8qMesWvZmtsU0qsbwIy*#E2f{FG9;|X=+zM=i6TQPq5woJ%r5=e-;)X? zue3QQ1zTp$^#Wl5ANZ!rrfy>zM#V`|3$5HEdv}8a5?_Bm^BU{su7N zNSigLfJvK6Hho)mj+twkA|s{F>AFId{U^RhEBzybdpwQY2&hT;BRcUN>QrTvmi0;= z^+u)pYN|7Xju;cA#eIKl*n62x-kxF>XBr1)*n93L0kAE?+zi$S)2Q?YaDfD`=`MBh zr0m}sA(T=a6Xhe*6hhL44%CQ=)EZu<>OUF3tBKThfCNkwv!i0engf+tIQ`p;4B)L! z>7e7I-55i~QNcSDWCKL2=Q4XwFTWEp-~gkKzX84Fi)raD6lc0k8n(R@il$ej4>K5i zBIL=w2iNw%MycGv^4-`9s-f`&pj1vlnP?E9kT#+9+Hq+kEoEdDWp_ZLMWff5(7m0Xn|8>Q+sI8GSZqDRkQx zDNIr0vbt=~|9=L4nClX2@rZ>tA;luDWY#C#JteMbIz>a1mF`{O&atzp)BC$ogeJ9i z&OJwuozt1g#H%E12*dP@m@8&Ss<&0`dgnG4TjJDVnnS7qsT<;=K`WzD@XXEeN(96H z{h!w2+VCR}g_&V6>@n27lj67z1I+IF{&>VrvGchqU%$EYbFcaWTVgwpJ)HK3l(~eo z6_;ibGF~~mxA;v{#qC~4Z|cCqCS2=}qV@$JUjE{*-#o5A+M2ltkS6okN zv2$~6)GwRDjtA|I-;6S^M9*{GcKzk<{#lq`T1>&sYp!z_3rFv*cN5jS6Op;iJZIn_ zYi21~yV9ahRUe6S9^>V?uIzD}#y9`e^bLskr07fY9I5uoO?}L#x0&h1=pjvEUSDa4_V$wP%06d#e4`2sJ2b{PyP@o|i%Ow;@JgP#1?FV{oy@LeNUpo_NW#bE?k+T|dNfwT}1mBvl3rUGr+0K3?H+M|UP?u#s-RY3^=IIoE zxb}|W(QoYAb7w}eKMsX!R!a79e#qI{&3dyzz^9B(Z_z!pP(mT5^8rpvf}0LcrFlDm zTjv4(7hbP?1ftRl?mL< zzxH1g)AR%hin?1Dz+QD{Q+q|KBr)iJp3IK|g!#U4Bj*Cn*?}SP{-gla4(U>QzL4|X ztlg^bwT9w@ko$g>^`WMpo}^M)IIANSVytSPUcwvB0fy7`}?$9O#5SHfW zV7M~-ib~!Enq{x3R>O?XK8-_gE8%06jUUxTwcs1@zI6>LD*uyi)`FkGghZJJ?j(S$ zcT;}~{`(o05&?AXLJ#85mIq@Ke`^e3#lW$o_20HR(jQ-BUidbi0On%|P1;M`x&S(# z(_eGf6!*ns81mgR6xeb5E4q+AMJ3_!r#WQem{9%gV449o77;Yat#Lu`X&M1=2H7C3 zeCkheA-v|w#%P4bEyhs~9|ujIOuyL1r-xR$K*A!G5i1=uf}OLC4Z4kOI0#*Zo|%5R z$nO<;`t{xowX++pjInWb2Y_G^QnlsN;Qw_<_7KJO%t9-LOiMiDh?0fyEO1@0QujDZ z3HK;&gpbEsC;Qhor;*sF$V&{8>zlTfN9a>>l(TIEE^V9G@RBTvVd5S7RZT*gdDem8 zn9r{i3;RiavO_`Aa>pw-H6dux%B$k2bKHy#>r#wdYfsuI4UY!7+dF-` zJ07)P_jnNF_B^(>oN`{nVJK9a>^mk=hX(J{23Y^CzU_TP04p_oXnkp|s_(@WdcD)V zAx>m_F!)Ynea9nKEaIeke$DG_WB2c5rU@5e?ESv}E6T5OZ$4nrm0yS-cZ}ITZ?h`= zRfiQ!P^r!3<^FJOj)3@S`)f|N5iNHre~awp_+$5)sk}k$)_cc(mj!nRtx7!(Sbt5- zhs%TR#;h#2)4LtT$Ijk%J7rG5`CVSl%c|js&uhzPGmr@EDHK7>m3aK>j5#lm#}`WV z`1rV6^ZE#d94sE(zh382kLqK)N4Wj@FZ6R$HW2oU6i&E-L#@_j*BM9}s{2E-w>nzr z@)M+CJ@9WsbSR1$Kv|LWMn{_#up3MU_1Zfj40Ex`G?G0vWWaqw2L(aNy%Bex8Gzz2 zrazKQr+#Z;i_`XaLzCX)L zD|A{+tS=*jXqYLR$?d^mRO=jTls!|oa}ODijlZP0Vbj9J2(zD3|n~ zxw9qA2Ja$42pv@;CTTzT9SQv2DmdGVZwLw3T2@<()_(tv^{kYXoaFeXol7($5H!Vr z^PQqKZ8Ccrp+%RGpdy)>PpslFe6;KZtuzcs2$>d)O@`x+sC{*`O=p0HTb&^Ykosh~ z2t(mKn-RHdqgk_*v?(i7(4e49C%n`OU=jY}kyvFyQWyHaa4zKZVm@&hy(LDNre924 z-ne^l-ZAidI$TN^tFQ2tIM9HQkrTr{=Bc@J9rkU#@wgz=h{`>8q1O+l6as#1oR1j;y$5Q8xU!trTNd zYr)25mXy@Zh&$STy4hMBmBL+2a59BwhxX0C$s^HXPAH zQ#R*;)-fu>Urb}BIm5F>k|jWF52=#E9t|22zCteUDk8HoMCq)V+{rO$KHRIeftg!J zVOuue1gyDYy4*e5Zobke2l=6afB5u%Q1nS}@bh*1pIhPG9rZ4-9Sm(x!D96HX?VTy zwV=6K8SBGe73_{-@7I^+74E9O&2j~4^Ix5JKIJI`RMi`bzCLqY9g9ZK%gwvXqK0P% zMxMj>BR`Hj{wlrL|GBwrtoB>EN@K0LImrL`#^~jjrJ?8T&OXTWc{+xxCgpN8$B5p} zd;24dHFp2QfoTNh$$LF1gkaU&kCay>!>}xa^4tHG=Q=~&3{W7?duc{-*c2CrXI-y5 zu=>`tL4eoa-ytJQ8zM8*KeGPMh$8^A-=RKTD`PY3vt4kD6@eTn6)FXoYLe0k4@kw3 z{CRPb|2(EMe!W+DdMhp}my5tL|7jzikk{qB?m=g>NLok=_1!1A^>19owWUw^?uZ*5 zvW5=}fg`pnL_A?pLq;{I?U?0JdxgrLhHf?P0@k=`XL*Si1m zbcr0dL=c`_xH=mV#Jf8u9Art1{?Xq^2@4;X*=NI9_T6(X$X+~{sH+1!dnGcSN|BzY z`6;21!RbFN0HT&wOzx|7Uicc29?`k-SQk zQy_vC!ii24tV`|P#zasVnsfCNLvp4|LLVxrCygV5E5jz?Go`)B0WaLwJ{RmUm2R^~ zGTmPiGf`ikWkPP!er)n#LXFso$cYz)1O(VK_-;n>ByCJxeY;l6!l*0l1%UH1HCSfM zibFV;z_7TAv!LO>C+MJ$VExm>^q#7B-9%?(thO#pI+1k%m8OWSqO{tiHQc3y1J+t@ zirzkVL_Xeg5u=ruZrlFVGPt5ciKSsE7GAHL0u($E)77C z>7wfGq^d!b)JAwpY=Y6qJ5fVqVM@ddFqsQCx~9K{EYwUZ&1d=}iWtpeYVPI*#Yzes zw;1g=D)Fgm#CHe$hZ5+8k~=mVC9 zyy>N{N?2Vg5hA^@DjLAF5vMG!J|;`f_W#x($@?o_nJ@p)Ni8NdT%~>~#{##Cuv^E;K$vuNlwfeVeUH{GSFvGbz5->< zoSdmEDOv|TW8i*xdGZerKr-iWwNxZ+BV@JmKW zHgve31m|?#U7r$XQ@kD~?5=me^j~$Ioq-5!EN`pOm0M10T>p4-hqw+MX&4{wBG?WR^v~6^Ple8 zH(ph{9QJgx?>P94*j6|<2HKmLj9y0gcOH)Ino{uL_3yDrn8L>{9n5Mr(NI69#k=@dXz+79d0Cb0amrnV}TTt6k8RqGQM?D^rW5(SjG* zI(3hY0w=shA%ehhWJp;|xY+ZwJKC8Opv1-`KHzdc zNi_7DK|%tH5f(y#eBQ9AMaCO`InPH~Vz4)` zEO)96Hs2;+CC0iYhQL?)MUX0?d)%sLgF1qC5daAv2EzBdp*%@fw-0aw!~ zO~eWDS%Nvm7r+=>@W(3Q0enS5+xePxXwV6I@K}r%iH)axoy>$ChMc}YK1BW<<_IEK zs3|F{rzZ57d}ePkMmj%OBrNQ*GqOkGK;;9A2pwTv5pwP?OQgJJsA9OeDqWH#Vr|is zAwGaO!6)?$kX~PLQlzUM7j&b-&chOhIZ*ia8<%idSme)^_h!UVQuIKTYE}k!{g#@K z@aKC9Q2Fv+kfazuv8zs*o?PTgv(2*uYI$903H_k>vX_;4iJ;^J@2!1wG_%UeZuEB>1{|!#8+47!j z^;tm`9xQ$e17WbpO-ts;qSlDg*Srrjh*5XpxaQr4WP-NcqqVS0+8OM}8$OXtYJ8f6wU!QDVCovTo1h-{=;SxCvS3ctM+mOX0-Ii} zu;ix09G!@6H0v5|qw_z0F`%4prRV%RO@{LRv-0t0s`XYb1U^N?{*vFFwG$IQo^EIXhg5>=v(ApnlkPCx zPS!>%>x+HwB>0OZlEJIz2S#jy0xJB z%k-F}`u2C~8!F6xh{L$wYU z<39q_jWB!Wt9@?dFMF{&l=px9xw>+HAhj5ASyc5AJ(MYEv+nX6HBEjP7AMAB zFrZ`8>KHJzTKjmu`T3tB>Jhq_r*dZN3SttbAkgSDwg8Z3F^UX)u@&SvXv6;y7$fNS zoNadt%~eNidf9y3Nbbk-8BF~ETS@)8c9rYK`Q!(`u_43S9o36hy+@69qJ__rVSsLk z0$C6hKAb)iyfXDuQ-6mLP5&uu4bJCAcl)m#HzB?KwgEP)RvF&a8X=%LzVban`E_T1 zPbpwqX6F+d%0W{OLOj>OuW&o)denEyFJcdmrb5v(d7u9k>Wl(3;fYz;fy{||zfU>U z#6H*OqjRD(%xlTMqf8iB=4NaRNvf@BFDKty02z`2B7grDCk^eTZc5_S`B3;K2T29O z_qHiLB#W{eX%Wq75%Al7(*TtljV%iO2SuinO8G0wgm~QkWCnt{3|0~#GJKx3olU$V z6s02-t_NvKtjszu9SQl6qBv&L!u|&|J#>R7(5&c_#pT<5B!d20!Ifyr{Df9|@mqs; zWhd?vNL-%RY7@!bUuis-F(5Fw%V_Iw`5#64N(~Nu1WK%t_|AR$-qnAx;`BU}C>Mcm z7o$urtj+dA=WpHs{_M^BYa&9p%Ds4X1jwxSVnFZU0fgW%z8MNE8O&7uR(r;akBH*t zte<}+0KV3sM;PyFXo(N!=U$tVqS|ins7M>Bky@e!j6cYaWMBv-5-Qfga%W2{bZoYG z=Ru{&K74p51yd~{H7J58P-C3EL)4e4pK{+MwM(KMt3C+<+u~b;?=JA(P`j4J5_2Ax z!NvW29I)n0{nhXY7WZbUd2x2VmD9J*hhH`CtYOmcQNbjVW$V>SM=Bw)A&F=q6sVHQ zPz1vjB`7-9{a!h*8m}ZxTC|s%cQNfv;X*%3(`?&*hoE2H+oM5ynPaFh{dWn%ey&Ou-2f~=AeCKYI0F^L{pQ8uQ9 z11`zVt0pg7@~qYsomeBx+voxx zu&JwcWD*o@@Ub6nOn&K*`U8v9s+#mvi!l@3Ce<_UPCXUI#!0)>cPa`5iWo~_+M88-%oiiyd7C>x)cX0^U)PxNLCO1wmn9KkkaJ|*8h542^B_Ek2wiYew z94tObaVo;*l)rW~&^Z$6ITSD>8KucnO$AkCmIs@R=WfF`t~c&3bbyRC1k1>BHn4|v zBRuGFXbWvE&Jx5`cBE5ljG$u^nR+4M0=e}GTy#;eiAqL@Pu0&y#AdB;K&dMgrOkSF zu#Ad6DjGET6(!L(GW+>Clj!3XUB=}6$aVjsm^7@_%(JdbEor9%X@6fp6wGH}eq+0u z|50gyHE4&ELmGcWFwW}Se|LH)XNZe) zhfWJ94jP`f2ff96c_;sMGy4mRswWTS(CS2lIXBmc1Bf*(F)QP31bXwCVf)eavqClS z38G^g=jCa3toA>?c`_K?NlQ5`t>Z6xo*rd+PkW@Z6I%SV&q!zh4PW;v#LV}@I#*hD zcPvKAobHwS`TlRNeA$%avVkUY{bq!$Phvn;Gmw$2?PXLv#u6_RSYBOr|9W$B=i{|J?D_S0z6~8Z*G3g%8}9g&np559&Fg@U zS)-t2f@~5PN=Pe(u3mz)4Hbk4Vdsa)V=sDM(Pc=Xn!ly}I|>IS1*ZB33GSo7zOS@5 zy$uzf7l=!?!ygWhsFR~a5O{b<63!2Bh>+?Oa8fH69u3G45RoC8!^uzg!$B!0(;nq%#SKXzbyC@J5GbNEj@t(z1P2 zTL|s;Bn6so(AYY_=~?rw2*f7rNxBYyMX}7oLIu8ILroLT%RM8P5GF-JVN-&#y@_cq z>20tH9L1!G2=%|W77t&|Xh`Aue&VDk6c&JTON!RPe;glS0&J*CCDsDbTZ!}CGVVy$ zXa%dLMEzFf9*Py$C=k_Uv2IIXwcb#drCT&vw(_?cl%IGY9q=5Y@%{Q@pMk`~0iPRu zJDpIX!8ZWMK6JmG!YVLozVc&zrRU=t&lucUUecF&*TC_*ObI!LF2X0&Y&xB4!a5T# z#+i4-SwkZuuJQn53iLD}FIF#s$gTvDmW28}7h*{a56gl_4^LPB7=@B9RE5hsh3Qyo zC?E~W0d%hZ`uW4w}!3R2hYn*nqfFvXtm{7eF^xpbUf@v6_ z$G(&l?q=&M*M4q&A+kN8((5FMkw>4X0;(&sAYs(tk_RnjZnI7%x@?sFrY zKQG5h*S*ahBitaq*sURs&li%-dDheb4IIEV!YIwpY6`Og;pOROhxlnu4BocAz)Qtz z);K|XRe6b{X=Nk?_iElb#|2)x%Vj~9_lU}T6~X_TW168{V6@ zqLAgJzw;Tck~myPxGplSxVhpz0dsVD#s`S`fQ9_*r8Ah4rez=CC!Nb*aTapFW@(Oo zOL(K{Hqvwit*mad^79bkUS=lMpJ8zhuK(fEGa|}6IYDw#airSky7O_hl~FkcoPnJ(d(CxTdG zT?ko_>tXFLE+n;_mp1MlnwS&A-oD#7f_x!i8f6o%CzufA>W`8$$L;)!FOjc`*u;a; z9}^i_(xvyo*}>>2P>Vn2(|#3Jh#7rcj}v1p@-if#NI?K;Gp+|vE~?jKO+D~(D3+9N zd&bZ%%D4WLut5LAWZHG(B+uao6=Ls^5Bmm0zQzj7{}wAXA{^4AJE0i3Fu=?ey@)j@ z><52x}b=n(t7jOkKoAq zulCrI#pNX9qO;R+JmcH^g#BxCo<{-D@d;8>w&SJ6&R=E94DB1RCPRCf3o!QO^oWg{ zI=eepI=3*V_NMyoNq27oF<%x{JG?gO&))f+uTHkdUTa4xeeplGJ(?Ap=1NHWAHKS0 z>!yTBzY7eH%i-epUugef$O_@wC)l_TX5F1%W{mgDx1YY0XWDOB8tVQTRucY0;{|Wu z;e3eaG448QwmqPD*~*n^Y&Yr-!%}-5g@p_nkl&0tQ61eF&Q?49pHllT%U<*Pi*}X~ z7QFLk3NWFVwr0Zz^w@H}GUV*2tLYz~rb}HgOCB_K**Qn31jnsiI(nk8{cGoxw6>9$ z+FZDyPP_na1f&3;Wh;qgBR!TZZU?N$=nBIP^q+nb$q2v!hoJOxu?`HzC&Bx2MELkO zQ2|-rTZ4_DQzj#LSc5higDKk!n^oF&7mOk3pu>A^3J_vX)`6}3du zyo`fi3<^k_OGvN=cMwzHwr zbVD%{qoU%?1D3MIay>0alWJcisur!h8cIYZ>9tL{XAw$Wzx-T?VmUg6c9_{ z1Fsuf*SY8n&PtK;0p@C5Q@hZzZ#uoD_Rtdl{Iv|-KZ*t6!A*?%;&K+5mpf3-+|)N= zs1JF{0sahggb0q;3pnKE%Z1X`5LwRdY}~5IAISwU;ue@=J8zQgp&^7HW$spV1~%he zkFE)sJ7kF|A^f6GNM57qN2N~)J`^Sm_9<~G5n4jI?b!=v7Q;y5Nmm--P~H|H!?O$z zrD&k+#RN1lUML(Urn|jQNaG7ya;T`T{>e`sxeidqz{F(T%&P%wJXl#-U$0DzGxx8q z0@NF&q$-TA%}Tlf1V2!q&jjzqjhC_eD*mLezjKxKmn5e2!MI!`LHKGM4!!K->GG_G zgZx2kC*84J6V}RAwye>fajS@)Hw~P5=b|yA&7SgWR1ALjFU{hX)Z$ya+FxWdv3r5J z-M8B+D)79w5=_Y)WfyCv)=yC~xt0LbeTr*DGyS8&))}Ph8t9 z@nqlYT=aX3;i3~=Y}pzJn#<%AzGdnAjl#zrfX8_8hXR0Qty*3?$+t=eR(rz0p7L^F^htO_%7>B96V>l z2~$f+|Ltm7XZm(GAawQTV(lu6=bekS3v8BhUpn>7S3t~{U=;-xxqk;3D?FUf1A--RIL(s@3n^rsZZ?e!5Lx+Mj1sG%@G=n}iBk za|j_+(>B^iby{n?=@aFNj`z5R#SG)OJC2-81W&0kH9u9taP162?#yGtYVFod1 zvG+fpY$F-#`*?HB>nW&ylB%4?eg+ph+h)=;|NFPG;K6492R`*+k+apa(UlF?*r=kx zoJ_ykFHiMG?!K@~_}fLJyGxj28vS}b?09DM`rBjU?oPO%uuwPK?*-9g!C2b;qZ*?X5vbmr=IgZ%Isj*sH?uQc?0zq!l!m&>f5(`1VbN%cd5e8d-w&-u*r5vY zZeAxh=3JEqZflagzM{rQ&8T@+S&7_Muwbz zgz2qCA;MCqUsa@^vlA|Ki~A8H0VreEKl6H2EQEFRwl8PVk6j$IH^1*j?X++Q`kVB? zycj5aAHfn;=cX8tYd(( zDX$`c^a=M6!SvXwMw=+ztQqFyi!odv9DEbuae5Ef8ZS3{%=NH>Km7CybAEoGzc=!? zPG5Hi{6gQ(79V%3Kyfri4}d&iF6d@}Z{Y8-SAxgpa>r2pNxy#dK`0Wa@413b+P1`+%A#%tjexM4uqR^dbwcpFh`6 zX`u{ss%9C6GbwQ-Vk=ALB8SC{E7sDYic?Os?eLJ!)~*sAlhvBuySgS;Oy2LZsi=sd z6xn&hrnpjpd4A&f{ArmcN`F$4n_*ELi;;SAbsd$-GtuJs4G9PG9-TR@h;j74 zKQICaQ=>ui%tVjKwYuM}anOGsV3SP~zyEG(a(}PH@T&!z+nrb^!@V0W;(;(9b?wKe ztlsO-?pS}K8`KwWCnf#Rb>5>t1c%2ws{_T1p69<)a%cZ(DnHM@c$N`&%T*GW;<%OW zm>iZqBDkFd0LKRWU1725FlQ>23UHxkDI4vijRFEUq@eD#3GmvywT6(JUQy%#dBdHM zw)XEVNF{a zrK;pgsGWPH%rYO53cp#Tc7elKN4#q1MXi|d3(&sR^x}f@XjKp7!>-P3?OjIE%F=71 zaQ4=3KllcTJ!8xnqsf5j4HO*c2P7K;Mldl9Be^A#O+`TXDojxBn|N z6A4`8<*-5<`IQ{Y(}ee<%seU=J-D_tgzT6`C9|J|tB70ag#6P63S}+P!zD!|b_-nO zcKieAQzfwms6W=KP{<8|(fgnvFz|C~eQz-LLDMW->6zMOaT9ddVv1IkT76B0XaE)wmmdAq-gulNv@-JZe2HfH0*W}912+S2RMWhcPcUO*|G#}+ zFzIE9_J0fm+A^?j#udT;@0&4nxr2CBd>qqf&(NUwsGvpOxS+t_%x8(m>(pDV04g_f zez}58u~(m057HX(;<2GD!U}D9tU7R07Z&LWQMPEti9{pA= zTIjOh@gc>jNA3(ssjaPj*Kgz2Hu9q96L9eQwCk9NQq=ZX{9*K<#_FNTF_!xcq0y>+LPb@a&)vRkvjVdf6|%{L4O0L zPEZZGzc!yRiM9)9+n&MMs||$;l@TLYh6ifGq$XD$ovBTG32M_M$-o8nBWk27+;}maSRhP@A30muH8KbYFD)-l`eGK*yAgn2 zGC!nFk(9V_lkhMi@p<6hV)cYtb5q-`h8MIoPzyZ~{El#{e_(~bPS!^KjX!MGJ}zx3 z2MWj0*m2^9g;d?}V`i(p28EEazY(9dn$u=e`)#he`HI|P2|Z-sRsi|sHUwr`mUal3 z-2Gk~p{9}p-eBzI-kvH0Zhq*w5kiJGE87xPe1=x& zDDXyxX0`KQqn>=#8G~H7)YxQcz9oy zSqx)H=3#(w;8ffD6oRzpPwQ#~tvwHl&`_0phmyFa_{k~u%{L0Djbh5WnuWjG|Juc? zDFyIWD+GI3G^XkKArYZKd7|TDiIGStA3igf#N)lh$k{i3g zCexq0eifWPl1e{M;%&{)ar2#~sh(K>FZkGJy|;ND|+itMd7aLPj~;)6*L%F{T;4k{c;e~f4hw9uJ9wC>EDj0&{=l+ zRgr*%c_CAn<|M;C(MXNcTPMP;G*kj|^)1kxzJKt2f)R^H6(5c8LpxiEIS??$j^awn&9+(`RxN zGcn!%@p{6BRZS!d0;xzG0M|tvkkWN)Y3iR03yrv}h*k>(Zk+H<_$c6!)x--_QR7U- zbPsT$Y*$h01>1iF`vuY*ruBvy&%pST&Ex31c;n^Xk(7_Om6UzwjQO|4Amxu-6fzm! zH?fsHrGu8|&YeU22Hn~&$O<(I3k_gsw5Ix;Gib@k?y@-Cf#-va!e#yN$ljZtB zT#8VNKEi;&li9JQyt9RzqK#VWssc%y!`JOnf8Gju)mOH}J<>2W&&Oh`+m&^7x-*t_ zOsqHGrJHYrZiZ|hRqAh>g2=q@->m^u&R74mRSMq3{Q5q0e_ge^4ga*X5JvBPh5xpEh}7_>_uil&OrmKTF`CP)Oftss zbrEv$viF~!n5SlYe{U*b7C^7aQd;%2HjU!u%ptJcWUl&XIDdk-R2AD=w~wS#BNKsNb44ReYvRaxMVkpyU&s^q2ZfI~}FSJWa~V3Dbp z9gPrsiqYrJgs!W^) z#r)V1mHWzuhu>a9^iXkOdeQ9c!;!wodD>^M>nHD_Eb}zGM9b*1Sd_FPM*4SY29 z-^cs!BW9CdOI&uFE4IVP}tYH`y3U^p?{&ZX8;SoDPFS6gd|aceu9 zkL*Pzm*Vz=z`q3jy`6U_8pG>s5N`7N}7qXvv5j{ zyI=dg)h_R27wW7DlI_5kSEl|oM@}qx5{g+77oPs0{LcR~IqqD^E7rR>JlmcC9%67f zk^zrgfD6$BW>s3S1?R_)M~qe$Qq_&)SppfYeQ_bZ`Y6>g9MM>u7|hT7z|jve(tx`! zopdBCjOJ%0@JSjk%%gGPn0j0;vBj!2deXUjQ5FI}(8OvU?p+8^uchy6c6UCYDDC zye3?L(P#T<64$LeN6jiQ<-`Jz!N^B+HkV3g;Rl0}_q?Liz4lxupTV=P?a3~7SAkzg zA^#1-0T=RA6t`x$mm$S?Bz;heXUUctMkZdJafy~gB7V4oJpN3vUY`yZd9Sv;+>0^R zy8r2i<#_a_9=0}hs)ort53NriSYf&j{e;TAnZEZsYLL)l@R}GuKPlRfY+%dDgs5Ki zxAK62Ldn7;o$!M(Tfd$#Dqp6489NdPMz11rCm0`70Syptj0lggCGF~2t6Lg*;z`P$)$FZSslxND}%-JN^eJMAlLI!xhcjY zrNlM#w{mLJWq@Usv%8euQDan!MV*K9hFQ5P@1%8t4Y$3Nxy7F6Wapd_I!9P|wzg=1 zj?l%AN3w{^lTwruf$!UEc2~E5D=^=6OIL=<1cF&)u2r|#B-{buV(V{UE1FsUif|V= zbC0|v?|iIQJRHP%SNKE16?H}uQGl^O#p-=r#NHc&6zbXs$GZw=fI`m$b#e8ob4Mf<|41mIQFBUMoaI11hil&FO;KoaVU=nP6t$xQm}exv05gFDidXbafyHas=5|nzkPSn zaghVhnk0Bh#aPIwd zV1_v5wz`gOZ!h%`@%C2vv^Y4dJ5PsxtNx4pPqfwP83zSo0q5M040kenuyMPbW~U7z zp`3zjt{;&CVaf&rpevivUmx3RH)!@+r}&CDRC*kJgPZQSb@es?FJsB#n%IR{ad4AI zFrByg<=z=-iV9vSNJ3hE>)XopGFn7Q9`IxIfhm(Tr4i^;*%PSMc#Y+OWvH4}bXdz& zU}P=eVS;E9H;F&gT!kaq2KZgM!x~h;sCk{q>A=>mnzqTG$x=_U+RUC=@cY^4+PhGx zt5j5(NhcagGX9nH-HRKr6fUM6SR@(uf%j(8ag+^xPJy-qR=>izifHppOizCRzH|+x zx>B*|UGONRYPpAc4RO>D;K8K?jF$p&mrPW|F7tTcy1Zq+&-dGd%hwOnij#g$CmmlC z3c;Ojhx$lP%&4|LH-BU|500O8fz?k9PtK`);!hfVgTVXtf#bu`|M}eN0uVVl(;AkH zT#o@o+I_4iob=1-0eO4cB0Ogx;<4X5rVIqs z`+kRq6n_!Uk5^-F&eL&z_Ju)U*zdQN&c`HWg)_4sj-LJSeoAm%3s%i@*FSEe))SYi zyGs7wF$97eU~Zd#$xZO2h5BWgq=9x=w!(NC$fk_NT`2J?W7%iUP{L$;oM;1mnQC%o zUc{C9mhz^7l>iw<+KqH@!{f1O@sy8@(M^@&IYW)K-}D*{9sdJ>^G_od;pp z1{Z}flb1&^e1=^rIIf`q0gaHU>G6GpYiqKwP6OIp#)HYtP(C#+VRzOXRfFkZ$}0mR zh)A>A+z6I8YN1p?-_6K@;_z;?Isz5e?MRH)6UM~H+S6fB^` z2wbC@Dee^(kdFKykc#7H&H*sy7RXrDS9&=^AZ_8r5iv+hYKk!98%zoWpzv~oKywRx zysR1EG=_0lvJGk=yPid3e=j$3=?jt%mDJ6scaFT$$A7#Pg?Z~n!vIRy+KXD1jWB@N zs}Qgg7GJ-@;Iz! z!;{DWk)(*S)>a<^#r2Jl;CYowIRZIlhdp!3#bgT`oIm$9T`e)}_Lz`m(lkB*G9{2Z z9p}tni+lcv?}hz2Sj-qObcB&jujAeWL^T()+{h4ZNHB_}nHs#3Te~A*Pdv}qUOy)1 z{_tb-`|*IS^9ukN1CjT4D{hS>98Y0fX68qNR3r?Q2t4Z~7fZgPl?5o?1F>o6Tva&k zlkq!GINp;&I6^ygDSL%pgCLd+oe)NajcTqxQQuHs8`K(^*Waoc4Il>$4i8bg0M@() z<2OIT`J>9dBH-vw%fGXvS1s>y8K=(oNzg3Ra)AJA8fXJD>gzc3IFvck!T2M1J=tir z**heN1z3(ht_FGM=c;yPkf{YzQGyfQ_W)DjDj7irtb)p{{?QJ=9**rFfKUAtss*zV z!~UH*m_02x(jjrW<9!bcavgOg$K4Oh3#2b;8m`E-5>-`iT~AOrTqm-MV#G4Zk@30d z(T)w-uqdcPqF9qX_098kDFFB>W*R$QDQKEPXx16T zz~=Y=uvv@R?H9Epc|>5bd8aU?4&L{mM2vuOpAtG+UFnYNUsx15skwkUnM!#qGs2Uk zk`tFs>~KQ8By3@#CZZ!vwvFQXcmZC5K5^zkPubk!m9IiqRWzI45z}2t-v^#kJt(18 zfbmGAxxoP`-ik9a)K7sQlL)!9jJaH0zo853G6M!*`djl`vX)v+F= zVYjrk#i%>1$LU&IJJDtu7@%%v4l+{}x#a`fBo`VZRSI8<1Jo-XH*f^Mvm0`o^y3b> zwOC*7@z6rvg7+uK-b7SqAr;Ka^5bkhFBmO|L`dHHB>sWYbnSarF`8}h3NsB|?2h>qXa`)%4@!yljlQ4J5{|Wr#f#44$Gzl;~BVr)* zxMaOgnEw%dx4gk15WkEkY_Z`DXuTJwiA`YB@$h|<6Ga+4tth!sigR*V;iD(I+yX&F2L5>hM-T&B%S#G(M77arQHCNf26qpOk1`pvi?lVs)q^ zr@Z(ZWeY9S9Vc_Z0mBUDq}(!~Z=O5#lSR;Cgcp!=H2ouG&Bgk0KBc$`q4##*a4YHk zwAVMFh?oAnz?Tw?kt*T88g2Mzr%#eIPf&1XH&U2%uAy?ssM4GSQx-BOLs@Nc1>xYu z92`6PfoX--VBh&fpOlb^v-6X`O+xM~aN#d5jEJ`#m+|oQNDH_#xL4q@;rBHg!wpp7 zd<-P~9umkJ2Fw+D`O_j0iDUW0Fx&0#+6NxB_#b>pSMaPiU1rVp2bSKj zBAUKVKFAD{?r-RyjVW{hmOsqv5b>N5M=b#CqL^7m!2YQMhFl(lVakkqCQ9xMcR*V> zFAgv}Rog0}We!7-Wsev;@bi+RvF;uqF&e}?l=(CFv#x&;@^N7-03|z%p7|HSswn95 zfUp813^Uo!f+}YBd!H*fW{;9m>uL`%!wo&<{gp*V4!ptK?DDhtao8WgkMXcdYWB<* zE&+RM+>U(EB1~{1&uEfpp*e3*`Z~%z84!$kUtk>pZ0^Dgzbn+n!cWB4HKc?Ou2~!< zy3iR9hn@efD68LS%w|)PwNaJ9tSVRQveh+qXms3}EQAd{%k?&n#7iMus`9!05{lUO z=a!5t$SzFTpT(y!@NuQ+n@7x+WjCWf%Yc>X@>frh+{^rr5ErU6HZzj1Lvrw)rk$kh z^H_$&w3;&KY;87-|6s*%F&qN7K|9wR0^sIQWBCu6cZ`?0-0{kL_3y?9CdYYlwZM|W z)QXkN?s5Bb)K8jaMSK%M%p54=C>@3)RoERFUE}o){&Fd>!rbu>6Kiw1pfrAs@q1Ar zH?sv!oEVc|QI}|;>#30HpPduuSk#ZhrV*^H{Sx{s0yD#5AK8I4`C(b}fzjDjNxqF{U zWgQR3yifclqMG(BMI!q`Pec%^%hdmvz`arb9f{vvl)ji-n4DyjrS?gGbG?Mcn%LB& ze|v%!9aGzxZ8IH1j?&usj2t)w)|?pcb;agDlpSj!Ib5*YOhef22SL zs{ftZR|FwylWms&)Fztcsg~!wVI=?7Ce_!nIc+kVE#HSW&5jmr68W0LBXt?8bY4~d z$BG__^mf^KY<5Viy-Bm9Wa>|^vyQQ2F(R~Nf3q`!vtu=X10|s_i<0I>)c&udy$b5w zp!vVBioK1jLB&%*29(ls?Ynu%*>uIYb^a+DjGi( zA%GgK&DF2xu4YT7K5=5vI{XOD)~;@M0gw$=R(@kvB)9sx2#9F- z-Yr@Vtc*tlF}!Yx=U40dK-(7aqLK{P)bz_sz?mmxAOz5`2w1c78vAZ*fO>DhuYgL- z4mOS4Z&YT{!IZTwWWI>8XZL;ltVIJ+nFia!Vj{tp^l^C>=9lsY z^V^9)d;^07;QcEl(=JWAtb}QJO`0@m*Ht=MPbb~c>q=&s^C*72(GMT|^y4b>CwL&Y zu@)l$mG!x4A$AIFSiB}FdMCm(Qb*-KXNekhxd&tte;v$1jr#Uz9DZGN@! zz{5K@)%|Nw^KE7&8oikCJkR{9;|n&RwmitFIRu0{M_$o=jS84s^86EoH{|}=h)b6Z z_z=Ffylm==pZ)bBlDpW7xUeH#={4WT0+Q5u7H-Wuh(V*A%_8k0+v-LWEikPB=Q;;w ze?aj&Sbs~}!G@6dYalpP{*TAu>-ldeuPcQ>05Qo1LmOXDGx9Z;%H&sFJ^j(gu6*S5 z(z#=Ze*~Iii>;Ceinb@wSv?PokW26*Rc%w04qqV!;`VfnOLh6P%!H z(t3W;us{(jK#)jSe@umuE)07LIlH<7kSc#4R14O&Fqsd zDlI9W?MUA2UX!I9NQd<(OC`zy0`H&v{AHrIh*iKGq~TDy_sZP6ryk>x;y$Mw*i~KI z^`=rIC*#e@Cqwd%HOz-LUJtFPfDFt6O(gCv>pfzhDcch4gu2^5LP-`8GW3`qD>uzo z6=e|SdODQWyPs=R$R~iaym`G+Ar~Ce4Il&^*&X^;&Zg2afY#BsFMZJ)1A%=ZnTlvJ zExu*6S1I{s@lgnK?fg-kT}r{_B&;E3dhrA08K%6xQ}70 z>bX1Pn3$LJ`Xu;J3SoVWcRK3@`~h+Ub>`bT4H4-8?I;fyZ)F?y@neng=Kd?y=M+ce z+E^5Yyb2*kaRADwU1_L@j1p@69|BU^9@Mz;>xM9RWt~&tOIMkwB`co5yVsZR_(;A( zzY$*dzejj_HPh+-8cInzwEEx^cED=BR{^xuSpn7g1!E#XzP6aQe_B8n2mD+0u{*O? zJ*I%Pp>^a&^(Tw?c~q9qWfomqR9ZZoH;LbpdKBURPGV$kODA0pP!)qY2MJ!WmIo|#IyH4CzLuNPUWekFI7S6 z0B81DWgCyP`GEDdLuA|IRPwoT4D`(*PpBm3!N9@F|jk73$^Tv9RIlXH?;X zarb_`)yI&wSwYY?Q`G&`=bq|#yY@%7f0!R@(>f?>&sijLl}vAOy{x#u z&DC0?(DsnL4B6j^-ee_PxHB926RTGh{qy z_GdCdWS$pt0u4r(1g?gsg4QBFRJm^+9nT)8u&}NeVK_eC%-?+RD!e zs$20I%i1h&er7d!zH{%b+&ntHTmIWkD9Lbt&{~+3`TuCmlBo!oQEX92rMEYVQ*=ym zQvkSu;;*9$vBCQz&wG?qA-mjrS2FWLc*FUpAGkMLh+jTNw^yp6g3qA11FRIrkZj@y z1oICKJH3pdGJ)?n{b7Wsj$qCc+UqWPOMqyc;(&hyWy_{QCkHf?vYl`fuy}w^7Qhc> zrdS_MOWghhZx>M!s&q|;M!_{_z-@e{^FiO3HyBv{#{x(cOU8Qs>Ig24oDeJ|i=dyb zp1c}*DR;%6+ye<#r(OJ#&5QQ(gP^U={F2l5eAuUev@fXK{s~71O>yn`DBFSvb)v}c z1FwmIn*JrZkj~07G`SM2ve)M1mzxMiBLyS+04QwIvl8csUov1j7{e8C_6aOdj9OGn z0v^X{r6+iA^tt< zR}#tSXr-TQBIU#&{O{x|E5SVB**u`3vNz17`H|r6ZoYElrVyo8m-rX{USeZ7JDtQN zXbC8&*Qn~?O-cfYBXqzfEm5XMvW}kBmv7cVmjoNDFu#*!m1^*_uQLK~Y# zcv0pxhPJ$0jBZ6d5$ubZnF)#k$UQv>85@#tm@}6@rYcCDrwY zy@9Y>C9#CM=7&m<9wva6WXWWQR*`+tG~fPB5ndIJf4)RANHa+k3gkaYKD4w{to&nPHoleZRNHlLF40&{t zbQ?cgPBuempb>Ki5ruw zmF1l@fA2r&!EP@BkU{(PBMlpywKnTn>5w0z7YRG_ufwJL`u2UXJ_m%z_s2gB;b2EU z-(8fmg2xqb+ywpp`kZPe^Y!Yp>ew?vNQNBO^;YE2+2n`8vu$#=aE06bp-_Li;DO`oK6;1E7{(#)o6`B7WTp9~xY70$EFX&H(Il3|%e zp_6A_2$!>fXMNp5`pW{qvS^^*}iiINAC7e0waA zDDX^>$6m$QfE8CLt`*r3W0qxWB!dm%Z!zpkA>8~wTz*t~coJNDAH9Wfr?I?F+rQp< z>u)sBR`}nR!T(V_-~Dq6!Qh5GRSw-F;3l%B%h&!eA@OQQeiawAP}Gm(uxc7$B~$8d zT-%eh$C@M?&u_bIe6?)cq>eJyDbI&wVbLNuBC>&=n+~@ZGwMaZlXTAtcOCVw%Y0!h zMTD@93~&enp=ltOAUcrYn*tq0WlL(@*n5(9`%+P~Ikr7rOf)stsQTnDtIEu7-u9j9 zjne2`Fz*h33Vp7_8RbtkAfI}3L?fU)SLUWKO*o zCsw!_cBTM8K&Vw%wD~~5`^FukrTKKn`hI7kXnJ+5^J&9uy1?&TC^&74vFH$G@GD?y z9^v^Ka$1#9oI;5m717ZJKSZQoP zy-LH*Op1I(8dbt_3mCR2T$k#7WlJ>7eeR1wY8l&wWUZ3^XD-_DMRks+W@?8hMX!gB zPP8q#Oe#^HHBP_HM=sj@%T_XdrR!g01hhkV`%tL|tfb*IHl{S@P*-H9j9ZDRXUQ&NH zLf7*RZTx7iPrI|s2lcw2x=-+8{7#_~J>@#`kZKv`t3&}VX+w>u{=qsac}a`E=;3UK ze*9)-F3*R=C*$3ZPC zM6Pt4HiHWK&Y2p)Y*DVM+^2Wja* z#kF(*Nuuk5B~{5p>k-#F%ZK1MaS?%i%bx|?a(1iFi_ z$eS*`<*O1r!W$DY@%5OmILLpv5=t64YCdE|dptI+b~_ZkWExL^%zipL45j2`(}B$x z_=5Mp`rhBa5!4B2wz1*4)mm$60#^-hKY5Osm>(I|e>)-!6LbAf6xz@KS-O`HmTp9% z+P{`=^+xN|k)hYdZ)8JQQZgkmyLQV?=6-IS@mSQ%D$SO=E^5)D*@~;6=%Oq52mlTG z>S(w53|@0nSGv~4|4!)o|7*QIVGNU2UiO9xL1PotUl_NMEuzw5@%ilYoJz7kdk_IG9wJz$8H{)_=VJw?9xYTi8T^^_@*`PPPGVq3KCDgQsnz=9x&$Ww z$|96+&f*I17&TteFbdrl&iRT)4+f?wXVaK zOh?f7JH5$Zl(%jGhq7>^Euzow85&B+v4!YU6aX1WX9pT%irJ=_Wq#`>y4Z?x4LKhI zev=nt2Q#cJGKBe)st@<4Q@JN)CXC4~2UtwhZ+(F1#;Nmt_RssR@{_|k-|vxCK#LlF zF37$lBlD@%n!J^PmlaEY&%CBdTid;d2z`K8Jx^?e#aL#=k3r0?>x*1tYWl+D%=EN5 z&?Tfcjn&ZkhStdOwk^H&TEjyxgv808F*Bwo||LPJsi5#!mkL{ab0+cR3$ zDF~V5?1J!}^b`*3=cc{BL<{FAWMp=baQyJ3jsFD`B+Fv)#jy%qWx}vlJlB3e#JXiY z4j}FulZP<|Kr9+^Qqq!T7Y(dLt78f#+)gS-O~Xs94Wiq}1Z4bRdUEUn&dXqcEG0B` znCUqy@1Lc{$`L%X=suQ5$KH(xxrd#nebCdXcJ6Z4FrlqX=H33Kv)_vesKtPM zU^q>a+UeXg_9ncWjKL7nBhBUs5EDYdaOs6ZL!JVUF{w^yoYvgFB!TTYW`D3eVnFoo zD>2NW?>Y~`epi8ORF$sK`1C&Fcmy^4LFFtNr09hzRTM@kBv`hG)sG4=AiSv)-ToIG z&8>&=aXXhNLC`j6ol#|vcd9TA0acA&e0z5*9o+UV0z_$c5!e_%Ln^#t6e0q&FZjt2 zf(*Hl21w+p*-!jTQK*h404Tz~?C<(x901lxLmq87NG)w_2Fz}WEQ4ID;SK26LYt8FM#9YC?UHry^ z^8w&CD|O_4t3gZX7gq`U%-%Ny?V%5S7YHetu!#bZ0;0txc^XhxSI3O> zYg=voFJ|Qgr{2T!ycZ$!eC)3_z7nU3va-YJMU!i<))Iqd0(3HuIb;HADR2iEif5To z<&!MJ_j!~(lPAOsOd2gNF^nAm?1h859V+|iYw^)BOyQOS&>-TVsXhD4yQ>AZU)8J# zN8j`PEBbTGw&9YpO+=^}*Lv%q*Vm=FBNE3A-xsTrPmZSWS z^av>IQD6C@nc|->aW{i?^M1g1|KCMv2&%`KyUS7KJh12fH6ld^Rd6vksN2-Ze1UGi z*y^HHIxVe?j(XZHk5a<}qDN95wN6ax00knaU433BmQ-G{uOF@FZ+x7s-R$hbGZDRs zYmYK(Iq76O3Z!`w2jYs8q6qKH0qQ{56TkRaaKFFg)(6zRBEaTcx|H?9NiNb7Sy|nS zcSyg901S5v?G{a3wSH_L02pmk&1hpSgfB)_>^u4|H;kfxa64W9AjAS8$yOPZPHC*? zWRy&$w9Nw;13N5h|AC*va}B z(TYOZNx{r$Zl&jwdO~q#iXHJ)GeGT(((i|3$qc{^%jG&?O{pGM9Y;zc_z zz>Bqp7Hk`m&l9}(#e(tNWAT%9AyZ~B#@v)Sz->L9!}N@$MhJfuJ|p$#F*MI=1Z>D_=G?5!vdaTJlX>Uo7Cdc8U1q%_{LpChKS56icLEm zHDMF?%=xo)bAgm)N3OA1ElFyZA--sg?(-P8VSEv=3EB;2oistSlf?>b`?JvpS{-&1}|kPq72sJ&MoLEXm@wirsYDbI;Z!AZT(V{0&NL)97fPv ziKfA1U*O~ zIi9Nem7=IGHuo=(l(#6sZ}BePm$$5v23&)0rh64X^b_pkaq~2 zSmF{M8r_$UdyOrWRyKT4yCpNP9=l5BRCs!?km?vWf}K}f?`X`CvLR27$_Lq4CD%hk z%Tl-ag{!CC-xii7MXaG832OaOw|NQ_RRDWKVK8OW6mdzGuJ*kF7s6n)$&bX2!b%zg z!I*ztwSC?jyYdu&eW%jDl~A$}4gdAIXSlgp?<nIf3#O@$}0tg>v|=!flAPqxwT>yOJ0E`7BA#t!?4gs9#iTn%BLRpY3u zyOdxxv+5&~C=@dxHpB#5Rq*$*ih|UtbFbH3xxHYwtvGVBKs>I%pB^ncgVv}g8t)Ar z1zN-c3uDOjR5>y#<;2~U^D3Ga#-N@@}=gCHOYw{ak-)s zhA_Flglge}?GH5OxEN$SpMT8QGw+P=KzAsGiPuMM>_Z-yYS=JMfo1m5dCS2m>1@TE zx_=X=lVf;vTj_`maU!;YBwKPEGdc3=<3pZvutS}QD`Zs;hn}orb##2iJH~&F=!yR6 z9J^dXY(dX!_rBwgy=an4<(aEb{b)-)_s2FSp>YWb({+XsJwLY~)#XA*U!Qut>})3R znJE2sLZ8F#{Z{Xv9CkB3S1X#BR&J8->%KmZEfq>!TAice-}m|5eEkY601ZA3x_h^} z9iEnzBK#-!nRk$TS;?E|#a-XN`e%;oY(VvWqx2ys@l4^@zlrbJfj1Mp7o&I9UI8|F*G?!UJLHad8Msd%}W1n z(H*M8$1^z^;OrREgvt-MBP5xQW5yLtC{?02Ui3$izf6VU{j@;a1Rw;%1g@m?gk(Ei z;ZJ57^6lU^+VZT=q0WlMCm+{{bA$Frv?Byk@Fl`Z@^X%w)EWg`S`H|sRmDaF6keg$ zft(l&*Hg+=0z-{-MZ@q9H9~y;{&owi8^5y2ib?9M>vUcrs;5#hcpK4ri698L#N|8s zi=rU!$8kzEUmn&ZOY@&r2_L(~pBtQIP<#XfOmO!y=p+7ANi^6bjyt3}up=S8X#3baZ{?8~vH z_97`N2aS_Cz8|`1f+Zj}C48+YEdC0zGAOAUB04&3gYOp0*?a(>ysB!iUOvhtnHqcp zc+!J#p9eOL%&I*O@;(O{ku)!{ccOfVG`GcD7n4~;-fqxc$#x)={4 z0S+XW*v_R3>X~;Fzs7A>TowX}?-NchxBAY{$~P@)f_Vz)>I~Ys|9nwZXy*LB%k*xc zL}SGynbXE|EOnv4N$2{un;l&kO^&MW^-8i{)xF__dkAc8=+X$N)I&Sfl=ZFI3)7vg z$hCxfz3tCHS(Qh@l+LH`y}~0`2bmVdamXPCnKaony*h1rHUd?=rQW+rDz+7ioP~n8 zkXF`>o4Z8#EStfM_Kryf``6+ntIHS7_OIBUi3vG&iF)LWIV;$d>D;ay`dM;Yusp+d zBCJ0JvW96T>V#l4)uNUaupp6k#uyR?vMJTIP`EEd?i)!8;pYGE`~#+*yx6 zl3UeAl`WR^E<3C&2Hk#XUCy(CY^%T1eaAl+x9B|0*c2&@AQNIBC}SWy)T?w@jmN&; z6WZxH)(+)Ka$opc`qonYHAHBY7rqokVdoQ<8v9w#hP>S7G@vT? zer$gEuD_z#31}azMYNXr-rjc1#5+rOqp*h^_SLaM!<}}m@4J_$qd9F+g7Af-GpLTS z{vr|zYn_13)*FBpZAF&ngz>Wzc!AcB515PUSi)}CZWZ+g-aL>0yr}eY5S}af-3@kI zq$T|+S)#T_vvN(+Kpyw@L{FFfZU2XSiSv#4KwWO#d%bqQ=@C)$oW z497W9clINf^1PL8|0VU;{Jb#8=5`0!XohK{j}$5(N8|VOLokp0=2zfuA|o={*A{~y z)%r=F*=z5L`?)>|3GN7AC@c_k4KhFr?vexO|FJ^oG5QIztnSa_qq2SQ3)((nT7eg@(_=xX>2<$e`!w0LU&#-d{6X5O^C{gn zCk5Mlf2$v91YAajrw};oZssf7%`W4OCot<&57Xs{N12>Stw=GB4GSzo>xR=}s8D0R zbK90Py2%S@xVxpp*1MsvuKEJ%<^xk+=O2!UQzV$@y_tVX?I^bMSn>QyywBqPY-_Ak z1R4p01-S=y*eNWMf5QI+$JWRUX)Z6Z!#_qwu;D%c&N^yE8Ijh8N}G??H3wHd!6A^` z#3UW)VXSbaLIGk^t*wEoeKLGO`UBPnd>FA-JsDtMd}Zyx>9LIexR0d4OFE&1xAx_$ zkUe|jJy)iyL9R$WyY~T3)kdt&&k($rPtVy5{xd3A>1d{h%2gAc{pbw|)?VLc!dw|! zj2<`Isl7dv)wwPAmVah}sZmia>gFyUFMnrFAj#AUG(pp93ge~z=+tUmMJ*^|BC)Sx zT$}of{80(n@ttReP38G8v0dY5d@7DkghBs;)B(h2lSGoF|*(~OMA`Y(7+r@aO*IoXR z<2@zrCVJRAEt$?baWq}QiVKy!U`TN4S;^I|A5UvF`fSc0f+PRiwp63Mn0^HVdTJXy z=&0dCK%3p(qMamtBfJ{k*0Xo^QUadw!eC#-E^D-YcQT1>0_CD}2nWj+$I z%n!#ub8=7B#5h6C$7eQUeBEF9GGA+8Nw>_3(}>}e1Tdxb+JM_Z0eUvJR8*|u$wb{l z?8ACI`rWRUweqPNGEqt~#ZcCg;ez$4)N)_XT;=>V(cP_80t3U^^Mmzr-N)8EUsw># zm|>w*0^`)WVO_U_xaY)fH-1bt?+nIMz_DB@VQd#pKfE)Av=+=AWLqTECA z5v`(^uWjZWIi~HWTN@|DvnZFV^)Hl69K#+KA#m553izAw0(fY(8%Sj}iZz#NE*Sxz z={O5_k1_#~eoMV9S$xrONn2iUJnyUssy~sUmNdhc*V1~0v&-28OVnNG7&!n6DM|FQL!QEjd5x^NQQtypP+;uMDh#VHgh zUZ6+`65N8jheCm31&S6eUR(o3Q{3I1;_d|Ju->)S{@(BGGoCRr|77IfymQ@`Jwk}q zr_w7Kee%t*jH@NR<_h7@1eM+8{4MZbWQUouw+}wK>+}op)6%H(a`|~-)}n?!fGNh| z$mQ63s=%=L7tro%Ab;#QKHhF|SvpShFI%8qWMP`1xmuxdP!&C{n-DuyXgLaR`E%dF zb?c<)FnHH5@qmTYG`w1W1m4+S#rN)KB<_fi-Sh-jxT%iu3LU=7QxfCmAo_rolSwY8 z7IrP3&MulugnhmLC5ptn3ex6&)xEyuVd-J&p!tSVXAz*jbV~A&crzR#K8pVh6<%6e zTJP?^y5xito<49sVDHy@w@P#MMo!4Gwr+RIzWy=!_mEp;DQ={WgEf>cwtBy~boaRL zxwRfM{AUZIRalOarv-uMdi#HyEt2qWiHa>s=gg@^$6AjW5J?+|D?L1Gq86ZyH+^ze z)6Catz%T{P8O;5N?}=4+A9;_3lTdAUtw+4?WwHL;Ih;83pHrv* z*O1mSfljoyY+sg8f&mN!0}*vY;{I)S2N_}}-zM&V1K`-WSvV;0opxBsQ^rS)6qncS zmB@f3@Mt_Cnw|pdpuwTjcX#PFc#bi9>O=jZ?^4Koe32kt++%wRP#HiFiLJaAiHZeb z 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 z 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
  • +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

    fcR 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

    T|l@Q^Qh}gJ` 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≧pWH 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¨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≫5AxwY9;@%J)Sq6ByYAL?!BacP>0r|yF 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 diff --git a/docs/maps/images/gs_add_es_document_layer.png b/docs/maps/images/gs_add_es_document_layer.png index f4ffbc581745d90f6dac0382719b387a4bcff2d6..d7616c4b11fe0ecd13f5e8bebed067569b0412d5 100644 GIT binary patch literal 330583 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

    ;YEwK$6v8dZr^NT4E<{DImb_kF{ICKH74 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

    nBPqkG97*9=tAVX2&hvUW-iTLn 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

    ix{ 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 literal 391348 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�mKqUYFz@kw5i%|rW8 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

    d%aqBFbGRT=hkb5mEy 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

    nC-RifDcj-c zu4R04`A#xvJmqitv^<##ic#%)MfdwQke(>%%2T`eLLVnEM9?m2ySr6Y#wkGTiQRW4 zHi19k&Iw-D8;;=FYKNcmA~JNMBpe@-AXwL1)!xgRPUzBl%m410C^6HcV|QlMbyU*_p1 zw?lAl%YjC;JXHMHINeda2sV!EWbNnm)d|e_mE!A+R01}GyvU0~@$g8H4+=gHgTaKy z$o(T5QAS3>yzw{?HUn{l=2fORA|n8fcDw@^N9g0$ddFv5?v=yLUGu4VT(|JW zoP%Jeoq^-@U^e%GUBLO$jg#0Rqhs_fL3;KJk3~N5Y)tWdg7S z-T|U`mK9bTcS3U+kt(Z28&dV3u63|twVViGx`>C?w$P=rTQ`70* z=VcTY%DnRp?c7dlENf3IwY=_YOrW}XMqUdq1?j*>iu&Xz<9!Fx&uBVL22?4T-n;7N z|E$ZCLJ#=sK1GQWjv||MU)M0{i_|j{_Q^M`W`G~Vwm5U#r%gsKeTOO9=Qp!PSN^=0 zp0rg%S`m$O&u#HxBfvdImPQrt>dz13mbfvkpI*Rq@YFI<0!7MM5Q^`#sAM{$S{~sI zIJ&>nx(N93muzp?1h&U2AEH#)_>#J0&aJPwh5zw$0`gV0VdgROmxNK;oOQ#F$APCg zR9=R3UhifbXJ%(=kG)p@J1Bl^Qby&;(UK98R8GSu4oR$dO2+f}a5{;^m}5AU@?Yz~ z(y_PSryp9lS8`p12#F1`q6xZCv@6?6xV7tRzImQ78Uiqx__2|4Qi}V+ zI5tg~WJF3zAi{j)GcvqYclA3Y&fi=zxZ{I}AK9(7cc!SOu$|%5#BC#>+~6;@sOhbg zZ^`IB-9YTQnZ3@|mKMZljHu=J{%{RNDr;AJ?^sZ23asKC6*OnyJw{u6ZbS3=sH{z8 z{F`qVP4Err{)y)T);OAl76l#Fru?Gj2gPzPJh{&=5@m7#Oyo!KNFMJri9gH**`^+R zZlAGVcnIQnm^cFDO{Cf+B2K9rvNp*wR>LkC)1&PQtednKm)dvz&67e0ph0xX?D!=S zKiWj|f#*(l^8t&;fNsE|d9&j?Q14G^S?4sFqMvD0947%m)io{m<5B&e7pdilDldO4 zdT;mhgQGu0(f)rHfYu$pIU1U8vUv`B^A|y$^w!(uDr)+O-y;jXa_-q&5h7Q3o^$3C zeHS<=$i(E1#lr(-8}bPFnPgT)GKf6f@`7nCO)XJwA$S8cGnCH4rcY zeiLgggZDO=$MVR;6wa$eo$JVWMw~1Rxp=FmRZyDsiog@Qsz@$D4duKXSpV=<-pEMs zQdoQpJuYwUlXjC5MLNz*auD8qMIi19SfAe&r9(Ub;I_($nYpZi4MLT)C zPl&H_b~+Cn54*e;QL_?R(?3{UM41f@;B$@JyS4dS6hRF>%~hyzsUJgUC2F-}*XDAC z-C^9?P|&Ly^$XDxS}m*Sv&b*0pet7CyWw_J@j&k%sGoXUujL<1y+$ZgFiR!|f&y8V znNPgQ6*6z5iItX)Pa@btoAvK;9TD$r>*3$SS zwL1XN`y48**)5&kzPo8kzKi@7=Rpm1J8s1a=-tg@E8_!@Gh)OCB=Ryb|Dvj#pw+9Z z;N{~p5u~_{F*DnfFPdN z7Q@jxvAyh?z418bH}ezThyf1Sni;3W$6OGtckKh}} zg5{9F4#`wr$HO6c@N@68#mfQH^SQlNhz}FQe>qsl(W|JfS$aD7TpDS`BOodS8_vH) z{WC-;m@ztU8oEu{tUIL9Ws>wg040txHA2wYhl|fh`Q8DEHTtl?FW>;Oj)d|4T$QtQ zY1n-|><-~GRJA^E5TieW?`r@3%g6H8k`{eb&$HD()|np{18;2l>d>ZA_zvwgBira`Rds0d=>EgNm7In0~Ef5JE-K$vt( zostl1cK4sy;?+lC(%Y~q^=fzLqq!ZX)+475A{ubbcs6qv2+%h}D zY}jAvv&m=at-%$ZmIThW2~GJ1IYixI*~#L)O8ej>Bcsqu=B}<>Q`Q@_u?!}N-++hF zK^RoDw{y)pb4NNh(8dZ+t03T|6H34A@v7A%0LmM;F>A`ur8p1*u== zaf7O|ADAL&8mR_Ea6n1K8j&x7E^u(UC1~qm1!v8}ar#MkvX=J~!7r1wz07wo`lK^8 z!4yd{DR7@)|BPL0305;SmW(ieIp`Z2o0_VoE_ZDt4?AUJJ$K%Xrh-2%8i2tn?7#0) z-O)j16BNF%`IQ08jz)+cQos%I4m*}_yP=oY)M&lie6Ty*_A3`RY0ZYGv|ULB(VHEH zquI7wSp`Q)cM+81lK9AJZc`EO9Hd@X^XRji45H+T5lyFge*6hBuP%&1g9w-o&;A%Q zd%QiCT=d5Q&bRVYLhvF^5nDn8C_Fb@1oJLGrnt@G2>_1%G|;ze+mG=(YP(+w|JcMP zJ&4(p1Q%@49QlBquEcqp?W7F1Dq2LKUJi^@eUYae3rj75z2`yO(URs&P`Hm6_-^aP zCC;)}zfYtHo#Nxr3JVv^j}=s1ccoW6?;DHWBk1cM5|jrOK23o#)usm{Sr)@1eKx_{ zY_5fyJ@>*H65G7P#0~Sd2lA;lRrL<;oG%%Jdrnw7pCfK38700+rG5IJFe;&Jzv|B1 zcx-f}=E+Pcp8A)BBOh<1GmD1S0rp*>12e*n3>_~Fj7@%D~+N~ zZRDLJXEru&d{Iu1>ggIdSSADtablCU-`v;dOq%Mr5K-%#>3K&xy-(NeH#<(xhtj*$ z63#R0K@*`bXX*o1mC{zM*gTcW%pZg$m-PE!j{@pasw-wvirOdAq%5VR*yI@3eIT1; zt6E2v?(|ra=cp-vriQ`TqI!$`H~e4x-O6&6+x5t9EQkgu2hg`m3+5U4W|4VO^p_81 zh@nXn&Iy}7=-&|n_v{%8-ISS#bC;8PoUE}7k(HUaUKG0gdu`=_sHGc6@w~7NaNAX= z+9b|os9cBWdg3MrzC3o)$9uOQ=`AHQFt-hua7;DOj~#^l{^3Wo=EI+7fTJ!FV+t_a zP>cZd476J8-^~oC2>tCq6@o>dgp+(x%j6RuzNp{FJ*gOkY~dhiupHjY@+p$=#EBm; z&53T8hfW}aOw&SQhtJb)Ss57K@JUb~-N#rCuG?65Gd-mGmfe)09JbZO8=J1u(q}3V zw+V@SRKl*d2mah}lx=6%9E#s42AB^=khrw}K*uMD=i7sE3{TF*s;eiq`F$@^8@&*g zC**uCuRp;D=bfX*1tL+0gtk*7O2T7{-f0DJR{ykwO_BoAe zl{}6-*-Z#FwTqFtgE_mA9VOjVNUlxjDit2@qV0rU9(mXn)R0pmi`!C`BZ{H!rEpt= z)Dwk+nv8xR0Rc}|8ITDqZdDtLes$*g=16(X_89!@d-^4O^xe&2l^S;#0n{LMik@`U zmFpuW=4lf`=an#tQgBM=^E>97t;}l3BY4mK98SMQ84r_kwE5sEps??0#@*q}C-wqI zEBNayQy|X#IG1&J#3hL@k2V%CCMYS{9cp#Oam1U~V=eZXHq;kP>+gJ-ke zls)Y%QA=1^e+**Y2xyF7H({;kBvpkz4uDBB99NIZbKRpb`a>A0P24XCzL5g?Q< zHgtbOBZd&-&o5+?9MU`ctW$AbzQaim7*ed}Np2c;;1(FJr=1mAC4FZUEJo;7ZBEIQ zpl7Fn_XPxvi~Az5WYh#2H3~LiLL@=F_JFY6by5r`&YeVJsu+Qs9~MTrm4IR3d1sN_ zckZLat`U?45O(lXc!cbZi2Haj6`KA*b_YJwh*wu>n^1`X8q(gK>o$1s!Lmc@1I*69=)s`uiP@mF zi!G$%^C~FdTC5B;e^?M56g9KEAD2TF*A*_kXXUcQxC)RKAluz@k;SldLF?woT z$P&AH?nxTeYO&6Y?U&2oHFw@BH#Ps^ zpw?|c=+`y=8Fehq;yh$+8~ThF4+WbS>5P{n?(af+Tm1P{eL;Wh0WFX#f4JJFCLZCc z!!W|jy*0lE6qA_q%+$=Pve5B)ep1iPR=>iN{yo}-;K0O2!bJKD@24k2kH^qK(D-%pr;n@cocbYLl=EGF3U!{Yp3T%NT;XLa+I#}_s4#Ih0@KrvCFZxSA?^R! z#&qEL+gPX_N8gQ+>wdrbzBtI+va;Qt`c6Nx;h)?Q!Z2>_0erDmmF31^K>X^px%k%X zNz<9(SEnYnku5bM`d9^oe}-k{VU}asn|i-)UCrAwrsv`o%fjC~5#u*tmx3fa%u8kk zU1j)5Bbs86{wlbo>Sb13jNrMwd{eWGuh(Y|S<{hgs;{X0XM#EZ7xRzZQ%q6WOpdO{ zc+^qO+Ui%fO|Q>wGmQelJqomAlTVW@i6yR>>gl!LO=z2*T+YHIjP@PvDVJ#ru+22B zE#A*X*fN~${#B6l!5x8*gTNay`*-e=Mso1^#If&WLMv_*p4s3qjv6};e^rMiP6LNuYm);_vC%d!KmP{e^zk_g?>d8j50DtpW4eHoi`AI3mloR ziF~N-cVTD$2OI(#S0wP!#*u%q*Ps%Xxl%6>F-7QH{W#7`^U+n-xxwK=v!1#2Yml*H zkgPoDXu<%APbsqtifAI@sctG7B%=$M0yLXbGfFrTL_da5qvP5=pPZ#vbm7I|n($JU zY>__}U;Mfh+Ty16|hguzyl0>j4H))5(CLHp|Rn4x6!=sfgkC^u$M0Vk3< z+-0A~6w5{6yOR;J&k7mOS~6jpP#!W2LHhx~c^ZF^7a$H8OABA1g;$Nj%b<{YTj7G! zCg=ACX)(|3!jCu-f!^ZP%Ww^RF0nO6EhF+rMoTt6DX@8w=W7r7kGYr z_fs5Cu=>8!|6X+f;q{p?wwL4ND+;Pnfifd$aN%$~Yl(dX!8j*1I=#J2p#swBOB4=% zJJhvxY zWBEsU7|86cLS=o&$HJOxl37Bx8P^)1=#nP6o=G7nFzpx@Xn3%Bk$G=3)@}cxB*@Q& z_K*PoL)qLxv@4dgj}3$N_?m-lSgTcOBA9yiC^Xt_w#=BL6yNeWsF5mS#Vy%84|ex$ z2>w#M>C!%`GW|HiIwQ;UC`Bo#gnKfv;EJiOz&#Q5%5BpQW@qzwu#WolH`F&{)II)E z^3P{xoWhdp(JLD9vj>lbscLZBq>Xw|0K>?yV)i^nwaAhn_l0MV!s~=dl|kwe#*?-0 zd`_G=KbxDH^u`?Nc==?(ky;xYu+sDmXZN~M$y(;48n?#2W!krtxWDKe1+#E2;as3` zWuEfr%{PVS12kXmu87Wz0;@D?zaH?A5_ei?Y0vXFsaR?jCaLv!Ki)LHV=J*K1o|ak zOVr#)BE>c0*?vTu8X~+q-9RsQA{-2|T-UAN^Haj%>j}`Q*3&53&9j#3CfhHYGY>rF zUxj$?J&7(1zT?kD&>Ohd(iIQuqN@~XCL9@{NoXX$Y>A{_9D+y6$eMy`bg<3@$+K#I z+r#rg*-DX{DbZ>RfKF)$&2kh_;ol9sjBzBN;}m()WHEkqPb1(X4~GNn;DU^*Jm9RY zVv3Ow#HI18zRs1cz2~rrlvI9R7wp;LEH_e#T+ESVJe`+wH+JPA!9 zWPWn{MrQk%pW4r6J!~V$+SbsTg`kVV4--`rQ!|&<< ziW+=1@#Y9fB(>5LVXYSP#wNDKyVtnBPcqOy{D39%%DcO>fjR;A&N$z(epQZ0Pr#LM zTZKZPbdeOkW)gf3J-xs7EEoE4_XVb(52*;Hi#$|;vHDev-#m0G>)z7JPM=$nw&Rmr z1O1QJ^g~nj5lkDR(FBjMZi40nMGYi*0=2~j!n^(uIz2#Mn*szevqy6!uzIxXaz+-9 zB1(he9V@?_j@M0fPY$yl#!_(5y%WJq6vNpCWBs5ATE`PN-@sY{WO6mm)L$Q+LA*jHZiojB^EFzjKENU z(C+xhqN&rpj4|f8GW9G^buq&vVoY|nvFUANAiTpSl26LF2{9gBi4ac<9p<4mFtq{= zM;;6X_z|2XD6+JI17s(qes_&xUUg~1#xUYrRh=-NkRT1Km95`*Oc&Pf z>Q%w(aLE^SU@%B%E0Nk{$?f&GxwD|okx9IL0z{%|g zqvBy&N|hD{YnF6`AG(=>_6=(Jw07nJKnB zVBBBgurClRP*6o!1U3tai=HjCQ?zU79haa1s2n!Pn^tDak=+WuCU_10P~7qZ$-HHn zoZbe^9M?BN?r-W4;Px$~mYWgjtFN^+{ca)c_|LwPzg*=d3zLe});H-X$|0$bY`2%| z?LdKh=35L)vHY!Q=`-SHbqO8}v#sDQB6sHo!jpjc1HjUX?c$zfvtDq~-j%VnFnI>R zlTiYN@vIABYmXdv@!Uqcu`jMHX~Ml@?YNxUg_Kqap(^7SokQ4q%}R{ePRK02LFKBz9w1)_$8|8E=tQdDz6k|*`PR#R$A*zV& zhD$q#QHO#5+7qC3dsYPvGeIH>=PX8Zx*6etJw`n;Mg*Vb*8<_$4&KhkJ5tG zFV)|*9dr{h=cb?QAzmkHCfJiQ@`rT0|F7^c%X!-b3T|ReHU0chi~N3`7?k z;*Jf43w^N4%u`yd6qSSvbC1toZvKcta@!lR1l0e6-)`Q@P4hDz3l2NGmW79Cc6St& zVp0f-RwzPeSzyYeZNru50iWE#QG%(*V;>*}fKb(gmEXrT1UY15D@fOd}T&NBJv>2 zwlc*?{`?YuZ?=2%-a**Hp73|kZ4+ylGHh-T3);u9WGwM6&F`@I5r(eBhl}S(&+<86 zUiE+8vG&tg!9cB#3-JmqaSw@54naworUeRujx;37iV^^siF8Vtyyklo+OvP}wP>@< z)*-lekOXIL!1z5)=Vq`(D5_vLLTe)@abm9?#tdCur^TsYe+_XopY6zN$RIV_C0-{v zyYYvMz~l=l8!|~v^qr*`haQUaZ;*YkK7QK}@LRoD#BnS~JWh2^+Jhg%6tyzz_0 z^O12{5mvtAv^Q0h`}!O*3aT54gr_$ zT9?AW5}W0!F?M_ye1;k!mK-{NT5%Gy)ZR{%y932R)v1Khq3k$!qi&v!TJjA_9R5}Zn%^9# zBiUow?in!}#D8Y|(wMqw)_wqMx`<(^^>IAgBY*s4pHo)8~!6yxCA1o z$5p8Ags0Ap=~i6%u6{F#T3qz-j4YgEZTj8$FQBaMk5)~4qs2gWjg9EKC$h3M+s3T6 zN^)mw(>b@y$n@T3BdhyPy;gVh%$ATeiN z=C&Yld~SxI)WtcVVrk1jh03!`y9KxOyBriA38@Q$s2%sE{2$lPgd4FI_988eUPwQTp3ZrjRWK zm!o*&b$Q(r$>)Ws(OnN$<+KpHooE&x1@C5nQge3AbHfT@fKmdzxcg`S zr zdAX`@EXEs*E$tfRq^~6rVLMYV)TEFp7CLdveMr8Qf z)hUO1!@4N{ICb z?@_F2u|j7fYM1w9f3yRZ3%3N@Z#JOUXAH=6s%Og|a5^ZBwT}w@ z;lU+QDD@TXO9FQi#x>Zt;kuuHw~D`(reyyo`2fzy^Ebls&v`l&vUj-N%p@mdYs+8q zHO5#_7sN32WzMmX^`921)Nb;{3Uwhh%N1i*x!;UM|C1}(=?L0gE19G_$d%>)`??Dd zs_Q0x$1n;r8{OA)&i*?_u`4Q?VX>^hYkYTGGjx1ZvXEWIaN~Rew|L5u@yBu1QgrY# zQ$TAsmdP;%fjw66Uv7C+NE69q>2d+2}T5 z?^5Mg@Ut^IGI8G({rz_B!k+5w>M4{13ado+E5Zq7ucPoXD&e}WA&dwA`6JWo_M^Az ziu=jRnq|61f0PA&S=M|(9!7?u@O!@}j|)&Oxj~{ya?7Q5_bBYhM_v}f(%ImLvxVSu zPJY=WD}myi&OU`sC0+hv1Vd0@rK3_JG?BrvSO&$Q)uv}7#`i;*&!^ru_i@bC3Lj=x zDl6AK$+?bgDX=7b%uB!O>wP>SqLT#GkKss9vbtn;xZ;hZNQ)kQrY`zbgIr% z4lmAo%-8cx400R4RuQJRJYZ%PjTD;2L=6`b2dW5zbrKe<+AAY&GxW!Yu!4DfMyAL>Joe7@B_?tW0_ce z9|YYDxP}Sjv$%#hlN6PlO!KNZ#4C#CXhHrw|Gp{toQzd-2>&`S``q}s*cL&A!|V9_ zK42sKAM&_sNbpIS|7g^Sn%nW+yl`O&t@2_Fhr<=WVp$p9d(fw4s!`dL^}^#pzOmk^ zScbW2LRIP;IMa;+)h%ubHR*R@YTSc?UCkdNJ&!ObJ+TVOOV{NQ<&;7K5-u*XzN#v9 zP)t79rQLciezj?P$Tn=e^t$TCSP;InUQIK&$m0Oh};kFT?8@10h=4RnHZOjPzbj z1sQ7CIGjG~(n6|HjEOT)49v+g8)oOeJ)M#SIhfRvFq1uvP?XETwfEXvhmUbtNZ z>*U-wS3|_a-L`}TH2X&8Xt0Vax1jlL`{`UlUxdmHKVE! zzI6vUu=jD>vz#q%Yl*q>3%UQ?;Qs}!6_lW|p4*J5W`;+?AVeTV_uc+Xt6?m(C+KqR z3Do$>6ex-(Z|gRb%f3^cqW}kP$33A*-`NF)k zo^BopPmd2r^GHA|*BCEh8X|@N9ln3eOgNp>pl9*>Va0!AS-0a<1-eO3GQcKUN0K4i_U>|f_Tp9N>40|dq)kL*EPrx!O{1Jfq zbd~I!BgzE+Rp3-O9LZ~cm<=2m=es**W`$QSq5g6rLS&wv#YuX_*$5pIA`G8qyrNt+ z1I)!}6}7unD^|ekQUcPum>0AQpFTLO`DTxW1`!KJFd|QmE@9x-x3%beBco*K?Qz&F z)Qu0xgeWVlDh83MIpA*@diKqHD3Fa++k6Pv4x~c;;|9YdTx`U|{|e7{Uz;aN?7Pv> ztf^k!qc%1p;MwoNEj*ig^-2t(CREc`94-QlY`I|UuTqZO9t5(%uiQDGV^ZG+$tdv@ zah&spAYEN5s?B=v6x~!#nqo>wL-t5*`JFd5OfZ-_|4)b7!~iVqX1iMXWy{)Jr3ue| zVw8CfuqcX#?oh0k$id3XP)DNcABaaiycTc1N=T-l_dL5mQrD zrY_xsh0ioNP}bQ4iNmWsD8kpeAchpK2Dgh;h!uK%_^mH6X~L)Xd0=G19xQ!|;W&6S zqsEw8B2<*@fGE-1+)r1gT?x;Kfim6dcAyC`hT@Ruwp@13vbl6K?vu!(mm|2@Y%53u zH_EcO@Z|`#k&B!&HXeVL@PqMY0!q3q$cHQH31HtAH9#PB8Zrqp%_-xr6GvEFBGn_d z^E+P(ayq!R?}J^@0X>-)8zP=)@lf>j=l`NRnW%tWz%rTz{3WOJVRQ{C2~UBxIb*x0 z8<%>d2Ch}IC-FwP@R8=X!dER$dxFD*yZAa4s6VFQ*U>4XqotR3vbFUeqvGE!CXf2? z{o6nELf)p7B;^qPBfkAEBPz_WQ3Bq1C(Qm z*+kDyVvw^Ky5QR#m?RHa`csdQL!)bH+KfkdKc8=nrKi7|n3AISGV;Awgd{D`8kOF1 z4kkxw=zvG~*O;s0c5%*$)#+c2nwt+TG;0{8HIF<4IcoZchwYN8VA8wQOwycCw?f(8)*6dv>LHdKWvws;QiXk<~Qd*i8&USq{m<8wP&T+ zv+TQlz6uG6WG&OHWf}&+GC6$dSYOfWQ57PCuBYS)tDrrwj}aN#Q`Hq!ZQRd z5ti5VL=D2#M}!~3Y~HNx=v4A<;PIIm3;XY1nkYof(c))CA}`}?RwZ+vMcsBa5$9RrW~= z_4P!6m8oiA8VmhYY)axn%!?nROY)QZUx_r2rPKaFhlPH;eBS>jMe-}RFMoKXTmYR%D61RL@WBdkzoFou1|*90sJ6RQ@`pKzOw{gD@#I#q*kZ~jP+XiR&6 zfyPFg1vJ}%B)=X4K^D};x|S2kAq>`U|FH>;KX$Akmnvhs9Z!*_Ko0BWfG?*s^2J&; zz|BS#+@gHGRZG0>m`EfYe$mx213bDg$Jis41z;MgC0d_|wU+Il*^Xo{`}HVMD#O=k z4hFg5QsAZ+U;2}mshG4@9-+xC)ARSe=Twz_}Yrk zFKPS-NwdzHAQ4r~p}kG&H5lAc!Naado*X}MCBC4xOBu0GJ5jqV{sE(2wjwxW5Ly>3 zc#G&i=`J7=AD@NhkKY4>OFx%~$sUV=6^(2HP#$p?CU@T_e`p^TiifNh$`i7$<0(^` z>l=|TcQ|7!d{4dyA<4P}Y^ZWL9P3U0t$xscjilv67hoTHU^VN8tHoV^Tq7%ABZS%~ zI-ansbvg+u4MN1~c~I35qH9wu{p6hC$Ei?RHU=F->;zpqy?+1w+rgmLfz|m}&&i&J z#gr(%QR$oaJCZ4G>9{$k>l+32zX#}SBhY}4JI6OIRQBlK zqJ$1wp!%rj^n~%B5F#|!ZL13B-ue(m=otLmg+fbVh3Ll8V7msV>v~==d9{u4!!2ki zlSeOEV&LcG&YCKLXM9SE25r>)>A7}m8=Kl^Gcyw(VFG-7eA$i9c*U6d++R~8?9xiM zTT~XsWA;>sk|)eC=NT~j+1Nn=YEH?fj>^iMFWnpCb5k}*rXE1tXBd$Bvw1|;Uve~c zaqj9;=ULEo#v(VQV21Mrp(wH zq^H^r^!wSQ`GEAL0mRi{H9TF9tb&o}CJDH3;0xWg)J#O0Q{kfM%nG`SQ1xRyImmo% zjt>8H&WYQ*sFe!n*SUUM%ehJEwqiV5O0lOg=Da(meuOzv z7;B`f?nM=**?+$I5CnC3=3d|u29Y3mNOrKiZINQb2rm%xtDg3qWYmX;a`6^!MUzlc zf^to|m9qLOZ<%-TDxNI}RsA-0C0}#OT{b#_}`e9lM^Tu;JnEM_Fa=Nm*bpmC9!9j1q7d`z%iL;*p=-=__%yna`@8%KvL$L#wW}36TM5*pPUo=7iiWlP1-;U<`L|Kj9q@NWOn6J5^!upN zT8YdSXAfv4giB)o zk1BB+1F=TeAm*!QTfhBlr5X#Px}+hHomZJdo^Hk|r_hp7MdNr%if`&AcjRs&ED2NM zQZNjhR4r9bFoLKz@v!VZDzlo@!8kqXJ!kwV<*s?G=g2pGG;>z+8unT|!c)IR!tk3M za*7%_s%t?3(t8Yn2lyfzzhydQFb2D2Y|~o9XWaww{1bw4D2LzqEv!B7)^+X-CDoW6 zFwtMy`abbI9#UtnAf3N%N;3vh`dv-2PGPrcbf_7lL(BA&1(K4~h7my5L+_EUx+p-S z9k$Qri*dbUbl05K&ky4Fb!}I_MtQujFMn5KM?V(_`+`W(#`3*%n<*ejc$cGT6fWqw zRE%?})R6-FGy={Wf$$6&qi~g3GH^@ka1BOCw*ly~m}r%AHW^8U)da8mAxY1+l&oTz z^>9)0wBq(J znqp?#G9kKG^(Zj;I(QHNxF|0Q`!ivh6zjDAdEZAiEk)JZX7SoR2izcV3}^D7LgL3M z;g(6y@ZF+9gR?F7S2ynepgT*jsPj@)&9^Ft|9f86n1JaR?k>WPycN~6rc(Jz9Q`mz zgNV$4%wXhG{Oq3@&0FN9L2W8v9AN9;U^V%S29xy1q=6KtS`wh1yE*0WBrVIzBVDY> zW9vDCe|?=bmK>ea{U(IQytL=f=E)~#6|C)z@5Rw=l0UOA2wWHm-~|Ph9++$qfhz=Z z%e=8W!x&rhymwQ5#1 zFvj?wobC^@UY|CG^j?q7|2u(#Xymv4kjOxFx7|Ke5*vcX{hi#Q(T9Clr2%kBi?3gEh-K zy2G{X0AsIe$O#yglWkf_qZGHFm)Uu3}#Vccy~TBem_kjMugnHF`FqCA(foQfW? z8kbcq1tA$_fva}9B*@#EE=L^tXZB}FK#^vyZk8Mwol%0~i3>_O!|h(-1{&_JU7ajZ zpU%%li^-gSo;((v?W?Wh%x*vMH0d^a8`QeSXJYJNf~=MILb1`_1~Q#grj61?KG&5$ zq}G`X*;fP}sg-^REK-AZq5(HQ!{sp2oj&$Q*j-HSR9;a$5fMDUu4BAWJY%$-OK-HC zxtrauBdt=ezgWVZu6^cz_CCXSyIFf1IR7m0I<-;fbL1NSI+gVhcV3wFG;}Wi_LPM| z{K7;0{>|KYQMQTx5X}UeQ!&#-WvkGw9id%=S3TPzNf@N z@;;a1U26~h(9V=OU6|`-@Acvh^L0VsZRZ^5_w0N3B!J2Po#YjEECgSA@86U0MXo+3MRX+O!RT+;%AF%>AJnhr5b&SYXE*cz^kkQa@Kn(Elc?`J@1<4*5nulrCwGi*H)>t&g1($icD`=A z3uc{+Z?Nei)6MXS~?xDWp zrvh(*0_eVH)V>VQ`+YtX&)f1|EMD8>YdEQCsa+*nby#co1%(CwkEU-7&#Y;>jcsFM z+qP}{j&0k?#I|kQw(U%8YvMV1-tRj9_TSxIU8{Ok*IF)ESE8@0Ykf%kALoBye0_WN z@AilG5d|L2vo_<(;tX+4{`?F7N8|GcQUEE}^ZooT?t7vSfnZ6fzDz-YX#R^J#Nf-{ zpO02DIFGyg$Gm0H=MNf&saw7Y*Fa4z4_}C+FwEzjxUEom;Q6l)na_Q~v1u zf6e`ocb{iZS?Ju8Bww0PN%KKti{QzwNH&TK2tb!@*?*TYf0X&^6XlhEQ7lOuwyMv1(-u`~k#*Ef$Nks^FYj}o z9_qGERdos5iWFr?X5{5U882}RT?{M@==*0(ufgUxPNwlKEiD< z062u7n|Sm9#9_EUxn_vKdNE|{eO~yNO+PsfD0_Oe3DTl84Jn%XW;YKD4-c1%{O!ku z+syX)b?!C`AD>#+(%;=qwX(`yo%`hqXEQ(u@F;$wRz_y5Ol}M|nIUIXMXfr|la?Ys zd%CngEJy_;ULNARz5xSV4>JGsUvZw7mPCbvf4@0-Z4aJ8(MECel49sPr0k!e?kM@F z5iYB0o3gfC)D4p9@RRNyRYD4An$V+P_BV)0BN$`o-t6xW*z{lSYgF^9{BY_#N<|?8 zuY-WV1y2-AGqIQ4-fl{>w?KidBQF(4zYa9B%pAFA+EaeoMPjnb=8bj}=)X`N90~wj zOU72Dt>-CfLTVts)NReR+ocZG?hQ4^9U@Ylw^q-R?%uLK`{f5EWM!i@9aF>+i;Ne} zxz8?dZ+hV-XecKdx{e)*pZsp0A-r&we{pO3!qS)?%$J5p=szm0zXauGjjs^q(iwrpyH%-5*MI{s|V&FU^jqsHh}; zo^tf+CVFAIeof$oCol7z$8#9|Yx)%3W^}N+N1$s3&p7SmC=|f{xcAWA{f_Mm$;_gd zJpF!Sd7!ZWBH^m9GqB}#0KGrkaOCp3YM-s$cK`FWxVlLlw!se>(Xk;5<`Sw;jCi9W zvc&B2P8%CFUFf6(?}X`=)*Tp-9UOYJZb9Thq~=YcO`HQ$hq+jZ1OV-B zm#PPzpp^tU7B3v3U7k29C8UnRlhJ5u_c3(sgT~g5=Xq58164nxrPiwI$kF}1%E6DD z!Q%sStevlI22p7$ZdSm9T4~DOtFSSyY`@dI?sj3gywM4jnT-p^jttDMU!o0i3NB&t z|Fr<3c(Tcu#Z@@&b<&IBLD)p{U8w0YQpfOlU{4gYSVsmq(Pbz8dTJ$QlJ$*1H)SnP z1)+rq^7hw&^Rmp!%vAK!eLJqveWV5yi_P-Ww65j4%Gl_j5GNAVsdyQsw@&{y+2j@j z$XHpP#xoX=4Y3eOPIRG(WKBCsr#AhA9h9tCyG+t#g@L}M#X3N4w(aqBB66+u^7A?~ z{Mo=lmH-mak2QmP<&OQZOCq*jkZQqYu zPJaprXwVtb@YfmIc>j_CqW^_5`@Hwu{*%P_+cTG*%y!ApxNb(G`N(z_8Cu+G66rDG z!sqn)$e#7AOyqL=Opf$^GyOPTkcfj>`kJ_QANT*awsxfFf6tyx&M+>g@igWA=kFTz zZ7?JGNAK1yox7n(P%Nt!`5_!gR#*VOL)v)2C0n2OW!E-iH3~draR(PIT@90^wS595 zcbE+|G|egF71cVKLRme_3C3Bz5(&q76VrX1U6t!nDr;}bU-&OFMfvh1DT?BB&QKj2 zClB{Xp5>6-p)>nG^Y#rZC?Y#l#iJuySfE`*v^NfI+!rm++JDqRd!76?{x)zK^O3Of z^I^2HiwN&3muYfk-tPdw*4N6EvClxW2ai~PLz}U@y1j~@u-M+EF-~BEtp)&X(QMix zkJZ3dC`AV+DUPf~JJuV+i^{162MFcoBF#_Z#4arV+1>ty?B5?=+J_CI{2Vg<@K9LB z*6mfVtFRvcbXvi`{i9_2z-aTTSPnJ98bWI>|C?n#qL00qVWxSRt$bf;JszYHUbqSM z)uP?;!vs>Tq&&>S(BG^^P5EI$;VYOI8$zCfg8XRv&Xci_AgQ%gz1m>VX>Q*@kVXu| z-;t}{zt86e)*z8W;QZcM`KI%q$^J55`_m2{6BkgJr$l(kY)M&}gk8sRM|@!)EZi;X zLu*@~9@9<*Ete-H=6Ocl!8z8^t9|$Pxx(88Q(M2 zL-%PP(1iiLI`z->q=#Vq9+l#Vsl3?pZXn#$;x60h?Bf%Eqo>Qj?fOFH!u;iGheAW& zlZzdx-Vn%@MK9;tX{TjvTp+cV9+><#2oOZ3kYz?48&2^?;~CC5xbDLynT2LcheLe#%v0%QEbx||6yV1oz&YDV8eO&MjS z&&_xkkEaygtim%~d6q5-9}G06gc(9v21&;A>g(91OMY`A(~wFk5Z+>ZdFRwR$U#)7 zOE637#0*kU9p#n3hKED)ihVVOU z5&U-J-p7yw$Zl(G9aq!Pqq_aqAAUTy`;AfZAhx6lmo_q3{j!tezDs8Cwz=krLRGn{ z9wDlXt^Sqs$FJt1D@@9jFQUk4Sjs$OB2@Vx0F)t_na4dXY0a1n%BkAUQhw(il z-o;1z{oT8yh6_x@#gy-d=aX3T0yIyHz{UPzPdRl@y@aAnN_iIrDoS9(YxMgWe`fOr`Kq%aGMyl!A(0^Y965tNMcmg9Pc9H zJss^hRBw0V*%PN_1{3VwohZLjFd z&9zeJZq7RNbNIHCk%{<06P081sVO%XiSIQ(^s8ldAiPzse9!hdgaN~wQqiw2+?9Jx zJpG-c8IxjuWS}A;cqQkte-|uSTT~iX7wcYJ?&p!*$44GQqbOqMzxQG+SF^OypNeC` z1_-=fNsEPzoERf#3~hcpFlmPmEtejcqHsVh3xH%drN$ywM3kPJT>i_-_=N+e9wx{i z?s_Z>@*W(su$)4qkr_vr$Fw`8s2T zf36=#9J-IYB;oe%w)%#Xfbb~c^wF5vuw;q;+UWhROto`%Zu-2Y5Fjo9D3T34U9(n} zSbxHUJck98pq4JbPO?DSA8QVPa;}c`A)NKC)RMI7G=i7$y0}Q*^!#fNvEwG>aaYbG z$8G4LI>*X#uGt!$5F;TMeGXYU@gYjOct9phLvj`8m_3$YC9?hvq{D>W4m|D6J%oUr zNhOUW42fK%T^d%-AgBHJ%dbzv?XP6ad9w$iK`%Y z+1QPYD*|60Nu0LHHyTet%wZf2*pCG*Fe=!#r*DlQ?Ge#db>30-I6j8}l_{BYatO7^ z@~R{oGVb`sTLg6Wa&HAyQ!HEMVah{rY1s}+(ZwpoUzht9l7s(;%3)AvZ{+rShtC%Rz-uu2v`j^c@I0w#8L|;5VE6f3th|3$4mTN@l!TIv5a|Mi zM`In?gaVMPU72Ob6k`JQ=yuH>JFIegM~ha^RfpDIaluwW15KT;H5Xh>&5zB;5+sWa z`QD1B2lIza)2>4kz@+=u#vBp7{nkLspG%aCUL8OZBK>1u4<<+2sKyqr<+jTJqHp6=mUQY{O zDo-ATqL3EicJjWYmc)+SMhW8eJia2OWZRQW9bAFxdN0QI&#GgsbKC`AC`W) zH#s>VJ*jm7<$Z9K5i6F-1w634$%MtqTH!t6CWRK zGjmi7Zv=wK!#GC>;NX4?Q6Oql)epTB!0Tg!3614w=jJEORHrCtq`u6;?!Tn9OBZP~i*kEuVTbO}r zOxqh$kL?COZV`2TUU|CCJ3`o5(o=W>A7rFZa|~UNrSdd5hMI_Nu2|PEi^79Bpt%`u z>q1O_qlgs`P&Q*qaYpwGf7?FEu$wdQkZ_J}VKhE6jeBPk_}|Zn0Lf`%%b7}85kR(SGReBZ|3E%0GT~#~;nVbV^)D_bX>tm41~?O+ z)EFRhL2O#K@cbb@SkHFK=u)Q@+mnK+uzJIv*MqMSnSf#itM3>&?<%fga^PS=J(7AG zyqgs10VyRFTH=Lr$?@Anl8)+Wv;Js_Igpi+3+;%s>DaLd%n1|i^E24c&y;b7skzMp zJ@xr_STIY|#{K1dbFahq5B}#wlGPYx5#pjiY13-+5zq28-Ao@^t?^t{Dju00jHvM;XI9>dLAN>E&>P}?DbZYA~1$7B5>j-Y7CJB(Ab~a z$`-XI(yqeUY?Q1u8E2iwbx#K#P1H%_vP@Q?`EKN0FA{HSu&v-(3?E(E}5qz&}lyu`_ZaqUH$VUt-k@)C}3;HS(*9G2;Q; zISG&i+(dmIdz4R?2m^ z1S7X55xxA)iswr*aRpnSO5lZ~nL05G47lL4d|FBg2l*J$*~dSX&1K915K7 z%8!ZI!nRv!yr9dNNMoKY1i*&kWK=mRO)1G2m0*09AW^c{m{BRS%E*yJ$dE)cMUr)Q z$#6yye@;CWpN!M)F6sdb;x`Sj9gAh(`%$Zpd5V$KY9#{UJuhh&H@n&jGx&qn5s0if zgHu+98j%c#kejATZCXQx+dkbwk7Lfe5hN1CpZ3JcH3E-lr=>gshke(L)8>n`S6(45 zKjXjw;?MT))vQ$6`M2Cpq+$74=ewl@jGF%3BrFBTSkhc{#JtD8iug>kmNUriMpCL5oBA6hABpNw_ zr|wQYgb`hL!{fZ5$PAUF)jt~*g%9R`tV)Y;pAFeL@T&MK7Me4Cj!w+#fmJwctAGV6 zsS zbpxt-boJY)Y0=o0yHSA6&KDWrT@VvZ>yj25H%DpwrxIR`pk$Q;G%WKc<`hA}I3o_W zEtN77aEh%Zaeks3HxOvd($qN=m4uCpcxzoYQ9Y6mnZ!B8d9EP@^idvm1g&^y-CNvO z%+#9>7@|Av7jO^1o~1DP=c=&ay^gN(G+6`CgiTGi{lIpkRzpvN!4w_2X(#y9>bMsD z3@dKO?^2s8(SXCstgf}G?9}S?{o2P8ZbX-Ltuyi8GKy~cJ`Gnk_mO$qMbr^hT&Vgd z%#5|%{N%oTH3#+=NM#JF#5!b!^34mipW0v}Af*e^=95kOP_$?FbScc03ARlqjrtCD z7_tK1wbx`3yvqhBP%}d2`AG^aL^nU&V6WCDt}LV@ zLv2e1<^2iayp)ezl)Y`*F03ZIXu+;lf?dOA8F6TTwXQSpSj?JJNtrP1L^+v(B;Eiz z!yAB%I4qx&b*cfb*?LB~WAbBHvM6Cad?+vw)A;6i{tQWM!TpI)3C@7y7Ju&p!|>o_IG6ST@ctyDALSb&I;Gy|ASn_UI;um>`)rG$4FRlV>mFGuIN~IE64fnlQ#|a8E z>6}ky=bi!0T5qRTBP)okjDu>P$r!16Rl{=fq4t`HfEC08N)&!WM7WADLNynwZo)&y zDq}#ONft-%~N5iiGAQ_FSzzknmehAxsbH*|GAB%CptP@V<9tT`$4_IabrJ5#jR zezy_6*~lM|%@Ah?B>%wHTk3=yg9pd=-ShxpR$&`@8 zE_1*b%|=h>4df$V3c}-@Ur5qB_v@0Z&2rb?{{0}`T%`|mkbLOKCQZVY8Y12sR@Dug zRhU>;l|FEkY^=f`B_cT$H$8fi!qRq?nY-aTxPw4L9X6V)tL@gIPJQQGk9QFH(?bG_ zXQh~HUcBA5OtIZPt-WKGfJ&}n&VI{M&1CAwm#elHk#|$BqAjvqqm`VX#6>8J! zpoSs0iMIqMF3+R#=9ZA-!23rOh2xTnCY@3Wa?-d0KCDSz(4FNHBI=Mc91w%QqtD3 z*NWTM%Hkse2W2C26wzf~^SF6g;tT<|JJ_wu_Ku0Iw(ldEJ{~(B)et7O@2jLlBFjJ6 zUrq(09;Y=<&UiaKnjz?0fXZ!t?!wZRJ6-o*L{@ja#7$5k8+#L>pQ5fm*?THI9Ak-YJo)f~Ur_>0B( zr<|Z6sUPoGt#GrKL{z8Rhry~#*tc^Xn@|-$U}@rvO-9LEBbl+KLkX683Sa@@yFQy9 zNbY-ljplullpfsAPh@ow7BC>sO50bVDCwai--yju78~-hhZ02ZUq@n4XqQfL1y9DxwNQHQR%HRF^Nq6x5i{3x(pBNU9i`j zY2ozr+$>1ioaqL^g29A}!^IRB@DtxM?*Pncjv|n!4Mx-rmB)~G-y|a$om@g7l;Ildy(1|F!m`)w*V{~7Xexp;{P8pAX ztvNn&L({Y7_dfZsb$jhGpU3bFuz?*j0rji9>T1{U;jg@JR4q{2)MLZ*?v)(2BbXlkxtU4O3WJyuH@wT>{3K zrz)xX!-DwIoxIc>-jvWxQIeEVRCGWn>glKE)2(Wm+Oy_}B|cX4M|W2S@f~l-(mbw; zc?gpmpv5bB9yUp55hvdtxcQvdd-)Tg3xsYk>|M?agf4IHNEf<^@ia_+!g z$Oj(=4tw1*gBwp{XHHD{r==~Fj{#MFj~(*GU)S8qZdjB(r5d|Z z`n>{T-}*%EQi9Z*vZQE@1)k>$DX;qu%p>LlchMr)BX3d34h~wmC(%yQMVf|>F5w1L zX{tTE)j8(##pXxOwpH=|U!TP&8>|mZd(fm6E6eR}CmH?Al#fD7E+=&_9_XhhaUnHl?<<=sNJ^F%`FhSCU z6e9|-R);atWLlAH2OJBEqJ02jHcXY54D!@&PXl*x?rjs=o!@YbdWcoMba2-kym2E| zYa3%jlRR+bCNxYA!lyR7zTJW%?X~x&{t{`*t%Vj$x%NK{p#s8 zh&S+39~ZEk2|WePd8yCE_*xNqcC9#jac~=)?7J%QTV6|<@6EqbHwt^RgxuM#qX5Yk zXlK;VBghCScvNA`_Nr)pH;Q+f!!7;r0?{ixb{iD5%_l_8L%nnk&yK@PxnBlqam9}H zhDWO7NW_{02(BE*N%4b`dw*j7R9Kq!t&ucf&lKY2*3Sgd#`Jrk%#fyC4qjH;N0B*X zUL|Shvz+OR|0(xNQJ zrS>BH7*M4`;Bx62V$RKBqmHuE1X<6d=3at?f((T0-`ZOBlE^T}wkgqF;GSo(KyB=w zn%uD@b_~7WcSz=S%Q~jR;HPQ`SPm&q&kAFDOK#8PuICCa)oEGM%&de~%7b!1P0|wt z`k>;;%4X)&idO-2KIZy8@A9EBIZ7N4Lze-OKGU7F;`g73GsbFq1vLKI5|A2EszJ+N zCarEL5tRvFyJf9eY#IySUBy(+%2cIs7Rtry#ewf#a`{n6H}tIgYVP~W@N_UCy6~1;lV7?iJKwb2JXC)) z$C6v}Gq@RZf8pI+(w{b1I&!5dJGa<`GoT~LRQK$dv{d!3JG^YZIzMxNX@7C>>057_ z4K6Jjx-jR_yVkg_w6w(G&U>litL5wF!@HiVH*NOu<>*KKf@9BF;k5V>DwTGjURb)n z+Hc82uHJ)|xxQ5kQU2vySI3RVf9dUw!=2rG;r_niSEFk8@!|CD zkv3;e7R3d1ioa!AYZpGeZ4U>My-AKjg^iyZugf0Z*~)ZoH>DcD7Bd0Ks5j-A?}bPa zT7HRF^=b<})=JBY`|ITLMv~**U9!VGf6Dg+?WxOn7LKILwePNcDQ*;FxX%(UgG)hC zc&5Lxn&psDXC;HpPt9T)Hn{(tBw$suLTGcd+OG%TqI;*vr*S#zuqKtPF!*@JC@hrs ztJ|fmS?F2T-C7b`HYarRA(@31l75FK2QL*l;`%4RdMkCVsf}r{!&H_I5W?rz}DN68g7O_%G)-eSD3-E)2Ss5 zqEx!?sx(S@KI~@^d%pAAxuohyB-r@um^Wise#-b(c97cn)!Ba-vwXG;4S92=N%6w; zw&iyF59!rwG$84c0Q{p+tHlR4)1DKLsS{XK`PmrG+iAf9Z{Caq*?AJri)1Zw62qy~ z9g}V000IJW6KN~er-XL%=Anp9Q;k4t%ccotiYzc z*(P3A8U?-#g8$fSeI!ETp__RF`a3Frd)O(BEB*88RQsK}sXDVx$^*#}a5bhUSi`%U ztqn40O_9FKT#4gvl3*0;*hwM_9Fd6^gz_}trHH6ADQZ$T%!fKc`kLrA%vYy7AA5J{LTgA?=x;hA zR#}*?=S~;j+Yw8yr3^dW3@fix&NGq&AioJ5QA~8Nk^4iEaB== zpgYpNgVKZA%QN=AgaKj@^5vZ*wwy*?u+Kyc9p}cH-iZQ2u?cUDG;i`YJi23Ki{RM! z+zd-Ypp*P*+WnToUid}0nJ*j~|E-}P^89sc@(?ku7y6jSFP*nGvjl;vyn1dU6c;PK zt2=4ZC1xfrlEXulNkApTCUJqLY!GAhCK%ogPnO;RxI_eNrFok)Rcj*$Y*gUP`Mu2U zewvXR#_?Rnz7384lJ;><4Lb2mEN}6aB`tlc&PoG*68WmkI^2u0j^x>703>Ney z5*$EX39|J;%n^AIXpWaAPDnn_*jQoNW+Or|EgS4@|BcK83R=OXYi=0xc4k~=V&S0q z*3v9mQnf|bqi1;kBJL0}Q*vrugIoV&Q!#*R8Md}ENipE1823~XZ??>R+qIWh@#C5}ax1T( zbiB$S%V;6Ipu!t|8fl5cy;pnA5U8pb<)zhnEU8WE{h|A-xhx`vB1no+Fj$Jup(RKg zG$R#KjwW-GcCEOHx7XuA8Gji5@*qvx>=Gp{Nl8&8p;+IdwN*iFp+QH4h*-#&9eQ|(mSWAC0l04yHBD6i;_=dULTDS_+#ET6p4jE%DK6>}8;n>R41LI8+hu!f;}CpB9R|LI=QZP~z{$pbW1h$pDiViXIA( zYeLIG;-F%?po{lS8gUg2fW?z0Sg^2Cm?knOH(a(-FJ>_+Ze0V`7a9EDlKwCrq5&ic zBToB1JDkCSbja!H>8U^0(v7Av31LkNC*&@?)zFq<7phI0ef1@J=_m$@U>12U{+qg>agNtY~Z8L0T zINU-Sg!oQ1Ag(v%WJXH!M)<>^r-#ScanBkqWS`a9m$B z(owRz2~&W@zngBA&@o7r6SP&386){>vD0qs5w55p*7_Qg4u2azS^}_o)$5n|*b6;` z@=ijfOv+<^0z&Zqo%I`53(pp+efg$XklDZJcw&Lg3Py$Ceo9fWfzzI+lZQm!*ZJW+ zLOeZSAEk7Q@S+p-Uk%pAPP%*UC<#vHrDfZW1QJpGqG z0ZGUfM-#8)BG!op0YDjydV02t+rQ{4l9?8-VSy^|K{Mp!F|k4u)9?za;f8)+Y*3}i zlIASNc9^4j;ADF{%}9qS6r3gIH&NQ&xkF5pQ;#cd)0L5ny0Pgb-o)3bpxkky#U0Bi z5hLN>4@PGD-c*(~#B?6j-J9!3JRJ21mX8sHT4nhDP%4s<_lJppIihHmgF>PBi9G~H z^?n0gGHQ)&N8@CL?z$NWYI}bW0beG#*l9B-)<1O$@WNohCe9YuTc&`J;8gkm; zZlg94>(`so7xFc&uxw~bbe?^y|El9R`vXs3i9+C@&bv(jR%flup-TF)V)H?#RdOF2 zys5}Zdc7g0XMWc~U;i;8oqZ(6Kp{2ure>o*ymwwixj;coznRtn{)BzNe#`wSVS@uV zv^DddR3N^haNEIn4V_35+CtAYGg>|_z3uoJ@hBV=4oGL?!T6A&UWNNxh+{mZrztp~ zx&gb|Zys|5|F8Wx5es#v{Umgl=s@mKLli}P+5*^#KO7ZSSMWNSCxNY02gm`$V zF4wa+bw5l=7~Nd>m+u=7&-L+kl6pqfUWv%Mffm&qOTSj$j( zC|*-#GGA-xZ?QH}&_GQUtaPHco(zaQkGOxUJi0j^ga+Cb;R8TeP++7$xGboE=B0&Q zSvU%*JD3dXZw|{20zOB5GnO;_#iqqyuu?KIqD*~wB{gR*+`)00$*Q%K6#XU& z#gB{ID|GU0I&MSxayr(i2cl$fBIWXtx~adgMOfjixM-G4S_$~P#PPk(LR_vb(r6HF zkmKekL=uxdN-2$1u(5evm37yVyFMSHimQsiy{hOuWI}LGh0E8=i5jxALZvg{aN)cx zsx)k}oiY=v@qt+tZ?@5uIfV{HAcF$e+pl8+Zs4~D6;DHNQp8m)RoOyDU_Z9s@IAZ_ zO{DGr*J1wY;R*@HiL?~hmE(XBa=`=FZETQ+)PWof=%&L_>PBw?f&Fg!QNZR+=M*y6 z@5}*@IL&5;*1Ikn5Y2;k+J*jFhGw4cUoLE}%naAYB@vVS`yvj@%y^i%v?mrq5DFha2RTYqVQd+}o22 zv<%fnmLeGiI&EX+=@z7g3Exb4ZqMwu!O5yKZiV@|B9)>!_NZUU7bZkd&EJgIijOkS zgwd5ccy3>Lpo#o8CD;Bd{f}|{QH*#nKo>F|W79hn!z$EWlJPX*q?9rJnt!C*t){_x!L>5Iz}Cba+TC<5pKJ?#$-qe%glaBhYHOod^ZJ@VM+OljF2T{hBl~Hxo^4;@&CECb?24X73+W{JL89B!2gh>-K z3lD6;bGggmFigqD`J5an^Cr3;`XB1ZF1{0V28iV``MjhB%_deM0v#(O%|XRmVfpXz zaWEHmv7c5+0mMY@)}G zq+h)48rnJ})OJu_yBkQ0jO`aQ>=VI=cp9>ANO60jK~`x2*!Hwz4~m0$>Sh2=H9Y7E zVIq9&DtL|6(RU|YbsY8*VVo=`RAo4q-!${87or@rkmLp2BK;R^^J0Vs%lq8m?j3!iAndOtadMgT)Gi?iDwP@>=;J`ql+~OqPIxF);C0i zlPXQK3-~9@iO|xyp@9d~?}xpn0gBg64vrAvrA5nBrUy%jF>{i&EVOd_W|pCLpAi|B zQs(A{L-UZ9_fYI@fGI>*K1eq7j9;pGgpH7uLX^+){0RpQ3G_H2E9B#~^kk}5Byb}9 z*emVBERG|ZFP)Ynnrs5fN-k)8$L3NG+P4!H&AC$HhAyJBjQAjYZ`M!w_lCId` zHYmxDC)J-?4LS8(r@~pS7Kw|>@?|>esT2+%3nd?aKR9tCY` zagHKRCFakupt#n^yg4S#hY{0HqP&6J=OLorSZ>lf1w}hmHklW0n!EJrplt*P2|PT) z_4K`%DVxC1FWK4r0`z65QYNX{K50+4c8R;{c^;bu58woAL(Tw)&s=TY-AN?gYjEX) zv*UPLwDHr1!?n#eiB4^h#a$4Z^>o#WX(l{0l3z~~WSB#ekT8y~y<+U&8l^#3r6WtvYf@&V z7g-H2QGxX^U2Y~XLo&lv)4LeEW3A(w(g}XJwFj-Pkps2JqM^&zZszQrK4o5S4`+KM zO++vkKI6LH##~=MWe(O>P>@bovwx}Ko#3?}(ObG;s$Hk)!8U^6EzJ4SVO#?6*oXKI z-X8Y z1bKE&99py~RzqIX!sGQ}Dy@m}B`1o2mB8Uv+7%5tx2|)tvNpG9o-0+na$@GdCjb=7 z74b@PM?qqZrH#oR`Z0keQ#Y53RH|}nomvx zt2h8;ot#iX|FsigjG4i4_!1LgNskb~7dFzLb--AvI^Ve9!!u{4rLLw|o-IQ!<9F$f zj&Xe!3|Ryr@JVKR-yusS#|X^?##=AyMYpe%&qD_U%3D85$VW?>+t*!Lgikn^j9KAPHD0k5#-b5HkED!_CyQ8^w39|a;V zf>mZNJMLDQ+BP&4YiB$8^PQ|i&OR`nczzJoYwj53RJ`i(PJ9q+PS7V$QuI zaO-o~_O9Gk$FJIxZKe!v9Hx5*_irNa4G(MYYDT5DsIa2Jfw+OqqtDTKSNqL=uWsA3 zgSn7p4r*RTOLE9N zChGOytt^%&*WT+WfQ=V97(#DSY%C}_9*O_3K+3$fAB4#hk^S0$-dH@x7h~QQ<%alq%K0-l00N5Zw+HbKSIg~Inm`+tI2wQ4;A$wIL{kzP5gGS9^Qc=i2O)Rt= zaqVo0Q4r1nAaYX(uQ}|X#FzIEWuUc7OZCM+tJz6^cD}E%hYnDg>mqD$yte0LoXb(8 z72*xRx8d?P(|wr2pJ}kt<0t2YLS<1XfHZS~TxvNybqKFuYj6Ry zI?wQFrkt@v(~togSx7|wP@KY{P1IVhAaX>SfurOA{l<%8phro)hv?J5WmXQdv#}Wz zoRFRBH+N)LxUS^MkeVb4=z8QyISfd5YBjM6{ZY1_2L8ui5sea4{()sZvD0EY4`xEu zk)MiDRJG6@Mtbu@wjc=Uq1i2;M zUR~^oONomIOs@{O#Yq%SSIm#QwinBb622TTcAhfmskJ&OoF(}1+l1XuNkr9>B%Pn+ z-~eE&s~mWDKD<61@_glvN|zhNjLLaDHSl&LjCqXOB7$AH_J4nQ&bmV{y$wfLYl#-7maDk6vr1vk---V7(Z_LB3_#2hLOra7I-7WeMl`DifSR+4Yerbb^ zVw5@3a_OWe;K_BB&}|ob7#KH+02Jc@2qe4MlbK#{j?2ac$8p6}fm#BSV0CK&F4y!$Xg{pj6sLiZNCVNFoa5 zI3c-=x4UsJ0_snd__OWqRp1dQg9j?G9{Ftu`z5P-5>xhaWV8jWd7og-q?pd}{34DA zg=6sf?^Foct0#y4a>u58DRTigF!N5Kav=SdGj=v%XMvV-;&{4jE1Y|nl0^}>A8@co z{0jtIS)~OOFgqAjHG2v&w-`Jt@y3%QA?FJW?{QM#I2`)f*$W9Q~FHia`D)USsIzX>c2&!Y@9Q+w;vw)faXzI0UW@B zuxo{p#m8d^)G1|)qc;DEmvv9D0{v3h<~RXv(xg+dT14GyI5tNAm4nT3n+hEY z?(yo2=mqS;M<%;0k^pf|0BA z*_Jj2%6Jm^I?q|``x(M>ai4+|cwK9Bzr}xx(dan{ViH+0+#F>i2YJVJM*X+-=R0=W z`xP_Z&QV4~qpbVWlwsi4(4zg@y7AaixWIcuC4~^JDps8QTEngHzwk+%FI0U0q)dVx z$1#QDaDiUEP|wjBg%k?jeaA`ZFOA;!Tc?8~%Z-gL5&h2tgOQ_Zz0lKAUf=@-i z5Rc?o&-*BS!k>Y_4&K*2k%!xV_jGI(UFW5^M;miqVMg5XuSZA8KHsqa!j{5N(?3K3 zf{gS(aucXWo7S}nbzdL;{j)P9i`$E&44w;h(*FNyBd?`R7ymo%z`(OJ=j+@q{?)uc zuP6XHNb|1ISvNgBKV%em?cCTi73M(cY7Of2rLb9zfykJ-|G{v&q=Xx&0L$82tr3RR z{{zZEHNP|{(QCca;Z;EMv#|)278C9W45(&yi6iwW^d+B!eLtw^fYdZTnDyZ{Hdl3< z8tW=qx*iy_Y-tWlvi~CS1pHtsQvw;x?9sH`{cuF4aWuItIHJ_Ou#e+O<=IRG%;+?j zdJyU$9r~wJko?Z$j|^*$!4|7f1;7ve)X1zFi6werjnnW@|G_NB#z;JyQvIl#Qr{() zfT|lW@)-d`pXW><7Od!xCZI+d?K0?r3JsMWX%vvZv^4prQ8vqd<6^S`l^r4TpJgF0 zgA&0!t&e|N#$|>YcpzKe?4Pxm`WKSh5T8N@rzVO}oq{nl zpMy3KFHQ!KJFM!&hGb#wiC7h7UFcZ#3Rt8eq?&{ARGd>Np#Hf0XpyM16{iuZj_Kq< z0r{aS8Lr!A;%tjfsF3ktQ+OIQAQ%mQH&mTpwkIn4dLszCyaKqB@s#Y@)vXl1+ZUQ_ zz*eFQ38`;b`r#YyP%|-x=g~6cLuO%dd3bnSroe0;85xIO_`DpvV!!NYjiRz!VHVFH zne{NHg6*!oySrs@Jf&z`a4gJ^hG@%P0h|LzTp*_kETPbjJCHbTq`=>@g)$jmJpyc8 zXe8(&3aL>`x(B-0tond=i#MFrCu?GEIRsQqVRwj|Ec#0?xb5g_71N#LEvpK{)RWT- zXI>{JCY244_VzYa&u_ouXL4Zw#d6b)H^|eT_GFy0vL;}OWKyQ5pnosSlUE@XCyk?B zWS-8^2R^>J+whiP<^uDh9qMH~@f96tvgRVYA{@+002M$Nklg$4^v4)V?dZ>NIq|blh@(JkyKmtcRn-a#`7{l4X5Y zXc58q5lL`Gjg3IMFmPbj;sx;RHq)tZinX%(9>@^$L&%u_t>Bo~S~xO6xY?uY zkjABITBVHG^TT?eq!p2Y7|4OHOodBSj zfk`mXzx3s=%ICiD73eig%gbN-e0j->UnG4ydlXYWg(F-?jyx(i-Ef_pI(q58W@1yXk5$QQv^{dND^al5=%ZJ=Q%N`rDFO%{rAxBxH1C zRQB!LrDD)>`su;()?1$QY$e6{%2&KdehG03@QWx%w&<{~O=5 zL;T+tO0_@z88^#c-S#20BOddGu1#y2rs9|%gFvkiFf)-_A-lcla>>c{CD)>-P7O&s zo{%fA*r!y>G~(&z?ftbcEWKX)2Ow?R9`(ssibwqgx~v5TBt?2492IML^bbM>#Vq>Gw9lS z{4R7lKb)h}S$gHw?dJTbZ198$lIOkR6>Uyd>MB)*3pIw6YTqKb*z0F`8LY2N-}$;j zzW^BVcTDBvAAUS6Pr7!Obhdi2zMD&}oQ!&Q@7cFkEdr;eW}usfQh$&xM@6Cp7#ZH2 z2%=GwG*kf0LOT9DEt|s7K>?PC&z(FWeSO`sdq>s3fBsDl*B1eF4EZ=D2#T}Vh>76H9+)<)4`!CRzBo4sHBRc9gAQ0=hon2k7xvHN ziK2|gMfO0aJ5;>YRn_^~op;G=e)Bh!^f0Y_|N3j+EW3C2tMP_5 z%I&w`A!p7E%G>_*&0xI$t$g^eKPJEV>Q~CgKKdbf?`yHq~%`ZvjQp7m5Yc<@sBnfkfuIRF(%IWUOaB^~Sm zoSxvkiKj5gaHqN?GW);swQtJw%#7TJO`_-C@+|3tv_0+R@Tf0cQ&SVv$V{qx{%F1N z$BrGB|MQQZmrwog536@Cf7y$bT>`3_`RKap20?(+Txvg1V=ns&%e zXqwmHbwcmOboBX;lhe?pOY7Pj4gd zbw2cUBh#+iw8%#-xpl^cYKpE5y5zn|tna{dQ8vJshAl~*w7$A0;#qn0$O-WU!?L@7 zhh%0aC5go$^_%)}q%Rf&!w*te@l=lXda=mN%kT&~4*VsjC!_#{49Sb*who%nLDc^Hd`PeTVh^z$~Ho1a}mM|VUDaq77Omu!&_)^He@ z0+k_vjVb6^E2f4pc}a^iasbEpz)6L14#jjY3vC_^0z`mJcfSXQcEB@?V&61`x$m)2 z9tWh9!sd4t2cl%6BaCB{fo!L}#@dcM)Wt55#n??0w= zs#DVa-S2t7{5MpxeDC`|l4m~SsdDbzIeFyBV@lP_l~-Io$KWB;oaziRnB!;_MAtz2 z{B^(cYHa*`TzY!CrKh_S;UR^`HmHvNSzvK!*Ux-Eg*nU%UvP`O;rCxBgQ(NDz5l~< z{dLz!G)BFWmeY)WJ~8hu5`p{iPws#e{LRwc-KCysT=ib4sQJ)`KQ1>v?TOe#npcIR z%d7&LAA`U;B49B>&Gd8~AvL6`AizGewKb+TK0V;L+UE~dq8RT6Lx36qASi}W8nYgr56Tm+S+=h ztFsA=j1U;@md;)7+Oe~-q~qBKgXL3NJXX#|Wna?ZPPc>Hqy}~lEYzK_;+&g+N*@n( zW0ASK@OV!H7vB_3BY+hxb>!t|2Oz3EBt=)VxPqPVLtQY(^)yQ6S_J{6UJQLN7b+ec zcXC00V7bb%Dp70XU3r;9UF=``uS3chB-LP0x|od2Xat+PrEww+iQ*6pSf*iN{Gz@6 z@}d{MK=$uHqL}2ZEzL4Lo19~4a>d03c`B6@>S`Y!husk9=H@9ajzJ`O`0gJnMrR-p zfDXk$MVmU{=^A@KB&~)uwGJXZtXg^Ca3f1Z5i+ndjL#zatBvE#y!}CC6~6o;(Ih82T{JZGy=&O1!h~ za57h^id6F3#;~rf=xl@l+XFQ+nN%MpD-TLx=9uKYF|1dkiXm?r>OzQPuu0I@6_fEv z;C1K`wO*-QQy0cFPX+;lK>Z@XafM^ia-F*elIebb2h>-SCcmn<&)9a3Vy<1)p|$a9a(NUDHrkbnK)-+LnTu1#cVU zfw*CD?{EiDPB$hN8Q5e|cV05e6MwpnQ zt_T6v5NM}TOm;3%C|NNYhw*7hzSHgp7cUI6ac({}-H-G7aIR-d@tDu~G z^lrt>WLZu^)FQ?VL@d*25>tc_7gCWH3J)z{U|J-8-NjiN;ht zVCIPmhukrb?Mdz|?%- z2RW#9>qMr;ri=TeI;Y){s$hAlP6E9y2mS)x(D#dRU$0xbFIE!E}$w#KZ*Z{b8l!{W91Z*t>TRY!;jqwvWd> z?nbo%z&d>pdE8U7DG_^{ITp374xA}6hFtuVBDl``yV>hs)ZH8<;yfHivLvKdLt zPAfx}Tn89u5Lhn+*ne^E5KpAA@%XUX$h_hDgE$csD4kX_^=-Yd-jZ}sKX{6D4k6lt_B4U;I)LL?EWo?-WtfccdXXliWDGLR$x2 z^_8^GPo!mNG9!CC{Spp(FzI4mR!y@0A}U5Jl=r~ET6Xj>j>e5i&be2-?fVqw3%FGE zmwS_=^*}(?0dBe^B{%i}B-~GmBYdTJTlaxFN90DT@aqAXp|KnU*iX(vL)E}kL1NT_ z8L{e7t(fjhG2EAv=URmM#y9^{-u}NnD0klejX5SN(=p7+TA;l(X!6_BX$DWFT$k66 z@@E~Vn!kR}Yo##D_0x1Jh1c)Q)gZ7@2$12P1jF6!aa(iLjY`<0)9?tek0Zl_uT-=1XfOQN)SV%-9ieq#l-{XNS03uYwU(fZTA* znq|ULAsG8L4+Ka@a6ID;A3r2NIG>b#0oX+3#!-dv#;djn5c7FX=i+HC6?U=ri@jSs zRr9vq5m*hwy=0Tb&NycknRoih(uJ#^$n>7SpAWr0cY4xA$+IJm9D`b$kOcbr6z_R` zQm7*;#1Wmb1BPiGQ0=gG9Xk@llEV4SnVLNA~R0j&l2{79SP#4-E z*^Uzq^f&zW?OZd~RCdheBn*vTJE9I5fTTMY8SP=~{L*IkC|X5Fsp_log#A99-rUt= zjP}>>c%>iT^H0;_LS5f$8uWX@<8P90eD$+RLYQ&&Sf=UI&$z}$K-G)VP^#+?>EXAmF)9Orn_i%yN*7_Zx4Of?Gr zE~k%FJClGVI~rF#IU&-A1HzPi?~OTR9O`FApkmSMc0d5dl7{E})40_l0Pr{u2k*ii z?Zau+F>&UHB|m*uT&)-J1A(wLW~?@aMv14!ORiU-A%gd&N86k)OYF%g^`jr5?rm;( zEaq5){fLl7I2;(SxH&>Q60|2lX=jF~BUOH5#?2sZu1Z{nHE#PLP-3_*U0}V~TRP>MPsGyQ+Mp#j#o{ax z3yMN63mtf;F-JkK?duj-0O|~=Qpn5*O&wV!0_;Osy&{lq??!c^ln?oGtvG(GCkCq| zz2<0SCTgdvxP6SNc0V6yz65q!_IpjE1qLhmM`ty+`Ls1Xb8Tz{=IX_KwV5k0TZ7g+ z$~vR#jSf)$JV(pcitO?1;pfA$o44wn{k=V&Jv|+!(tAxuhc{P)z(yj#CRCvrZDbZq zS`CT-`#Wwzdc7Xmy9WYCa2}kb(3_MET5MCS6(FF;Mn=)&W1uvp<6M&S-58kei7XiK z;BauxN296~Hc5hO1`WAtS*7QlD@fV|Ek}SLVx8*phounM1>>ockaRyGx!D+)@Zen# zeB7JOJmYJD2)_pwYX`DfzIs&XA{G$$c&TXkWW@i(m;lXex^Gww%_;b&D20GnG zXDxM$@G@?#2q@kJ4XEzGDgE8Re^v_d<5EaLaXxgs8>YKeCkZndvEa=L4q9x`8f>i} zw{hY_yOfMU481?*l`p^HDtZ6SJLPaZC-k>F52VtX@sTL~zOTtEUwr))^2V#$g%1iYuS#cuzmRWAoBs7?RyX5epjG$yW}uo>4l~D5Q?h1-o`7nDbdCvz?#HGM++p|+weCy1!Gf5s${8kEvt{g zpW}&<3f|Z{XHqi=7z7#&f%@pq8w^xaoCOG!n0GmdArB6Y$@vkifpGR;%~i~lcmY)A zVIBc?P3jLntR`+}0gSYQ;v2B;(9z#n%t4SZFXzB;9|hMl3u$*cQ?)D{R`shICjtIKzcrsa`i3E2_z$xEJjsoZd&9o8{367|BM zH$L9aAR&KfASoxnSbyQuE|I5RyHjL5r|6Kza3U|eTK)2}XC0Jl_qB;kW+jHWCzCn3 z^ITefKAe_`OkP3=I|v$gO=OhX8ZuqvmuXT}fqBVYg zRQh{b=ECYYR?G(c<-k?Q!{A6*in0BYpU8?cM+@LSaWr2FMl21Hl+MF7VDYzKk?_48 zPRY$cZ+jlP`yt)#fpj|=ggo(}RvFt56jS1LMu7b$`&|BXK*~Lf!Tc-?sk))YD(r*) zIaAfv8F53-AYc$M2s9c397*Qq?u}MDQ=ZL7fOB81Qs$zIde!>S?S|fC%w0GwHqIch z90b%FszSi1CkOq_;5*-9@QeBtwgHWK+c|fVLbjHqIgh27M86MlJ!*0*vKLf`x`bcsXdAFzbu}RZ1mjJvr!>CtlT~YGQLND8GAsr@Z6ar{%^@ znp<`Vnb+4qs{M8F9~w`}crq`^R2C<$5El&d(~yXVW>$H}<2s?Ey(pi0U_#=_wDlfo zaGYX4!fKvJr;^I#pu$S|$Pdq_*S1l^K@MHL(NSe)Y#m-J0gdNlJe5aTCkbp zkZ&KEP^xdpkhfB1hK#ER1U7}?t_L+vti~p0plc1Xy$%m_uQ{a!6^bsM$$}T@lt?6` z^s8!vWAy-9P4l2;l|^v}VeO>=ru$?@9GO#+8+XC__W>mVuXKAe6J{1#(@#-b;_M31 zWoJ`TOby|arZ7=C0JTCT>p!}Y)HV}_`Zhs;)rmEZ*Y21TMqUbXW}+zltq$>{%iZYx z9rpcnTo~!Tz1kv41zg3CJ&jdFH&Gf0fl76Z^@D$`cdMy;IzC}qibl1t)%;15@91>i z77NR8`u$vZ#09cw z&2_yI&?Crt(>3%A0`mxP3B>+^Qtr<3^ZxU}%$-4?Dgt^8EDzv^Z2(s`gN>Xt6rVU{ zBH@x2FyXZ7ney=Fc_j!~s|xa24Hy^PW2~~IeGH+t@7u;d7bR;ZBgUXZ=9WwfX@r&IvDaiy1=mN*ZN_VSJggV zkbnB^OXP)5KLCv#F13+->qK1M@X_1ls@+ZU)>q#sfBU6-K`;aN4V&{=WR(hvhY&xL;oJl74y9E3cE8L`Hf#qB1fbm%HEh z19^BVBi+y&PlK)Y{MfQ)ZZ`n|o?zGzrx#>QET7M-3Y(k;)G#YWEDr%S?|^hWb+_aAox{~4&R{35T6K`=CYJ}K3AJ1VSfkiga9+>@raKoI zXD16V)NFMntdi^Ns#CNx^r-Ho+5%}U`LU<57CI*G)<;0sG0r9E^qivHf4L>K$JaEf z#jO;Ue%1WBIiTOM4)dOl_e@Ktr~Ua(hu7~^ScJF7SK-R&=o5wZ_?kvF`sMHE<1QSt z=KZZa+v6>_ER3^MJhhpESrTcgGFI<))O+)@Is{795J($m5U33Ty3a_ZGV<`lC*;)W zA+=s)YWDu9HmMt`jgEjD26(+bA2hT=z|V^@xR8@m;Hizw7S%~lmf!SmYpDf555urK z)+>(CB^Zv(FI^~)BB69n9T5f9d%UfP`t%L$z`71EGKl1rQ(%BZ45G2x)X;@%}`_ormEqiyi z$Ul7LUU|o-?hp?|=bNK`Nu;od#^x|)?zWVzIlGdM@AAp>pn7IDo|aqx=11}ue}9Lx zfT{n^S6(51{=)&uVsrWC>-xYPMSQ5Nc^d9BSeU=(XT$Q7KfF#3BA=i6>S6hf+rB3! z&Wy`%JpT&$%_n!rR6HZi5kKRhAEnw;NL4e;0jD$iaVM({=A>AIO${^@&r-7&v<6tdGn79UkN(iuOamSxW?0TD^(+&*x zL8zDM!Mz85e7AnpPfc?!$Oai?sdQSr9xtQ>vhu(K4@yU8hwSRxX)|uRkkP2e5Hi)Y zw6Z3A0aFp}i+9DM`Cr+G{>FF65f$x>p)>ajAa&ihZPO9{G@9sxE#duz- zqXPqj(%jrE!C*jz9UeX}XW`e@)+&8Fv7kjbundqfwppt-9zA+YjvqgXb_|2_U7d39 z;H8SD&WEnEr%#`ek+S6k7dDMqUi!2B4Gs?BSZ-1cZLO^>($UclT5&lBS`52q_ihOU z{ByW6FT`nhcv$6ybatY=fj~f|L0m|u5B&wh>aw3XJ0P8)?e%)+Xer>#&$=L>>yEyz z3sFPFAaDT!))=3LuvNBn#Gc(-v1n@E1yC7}6(hhghb|g&i3dz~Xl;=5uD0;nZLSvARIHU&s#S+)JEng2 zG3ZH`R-asV*$#R1{e!Z9n`K<|Z)23-Xj}o8*%IcKPOykH{N7h|?SGZW)CI=70QO&lDe+_+*q@=1k|a zizR|m-6~-AzwxhsBo9C@dnXw49M^`&W~CKsZRGyA-1Fdo+;I6$dD701GR%50r0{?E z^WzeO@z(1v@0Fk3cUnIElQYs2aLH%B^{{;CO&#+58j12?D%tXrgX74l_4M^h=?KrisSe9R{7_-sfYLOEXWGeg^g{+~RIB$bW z0WMHz_AzlB62RS!%(BsMM@8>&Mu^1!0rVf?jLn2LURq5a#3gNM$hLU2P@iOXLP;Js8j$rT-! z1E4kqS1)5#X^HM?6|`mEoss=8*5E#p#-^gR27o){w|g_h6@xz>oH#Q2_dz$u`Cuua z<0&Emvky4kT>#zvvKxw2bMa0f9!rx!8959H*U-=?H~#b&a_zNO0qmS0_ult_ocGDI z6>ulGW{d&S_-%i;`=Ofw6ZuYK{BGW|Rqp%SgYu&vT&G~G9ZWTT?EZVc^V^u-{2O=Y zIrJ!C+6CL&XD`22uKv=+a^3g-FW5d_eDP(u;)|Cnh+I$*2k8;y#$Pd2%U70X`9KdeBaLr@FG0d~iy&x~W{2JQ$DA~AatK9mlpJDwI zBR{_J=K#htrLd@2&OGB(`P`)!OLKFxtXsE1?)mEj^7Ehl2!MN@tX%c6{OQhnWcsuz z^3l>2^7XG>EvKD&vM%sU+kEMzMew&;j#)4lVxpquop%?@2TPX9m0$WoH*oyjci)%0 z?zvxP&z=GQYvtyj{!k|3(BaNM-y?N(b$V6SgF~txqCBy&*bu-FApiaCcS>_hv$O*U zBLM!5uYXmdaGjRsx#wS$r=NXM{(ASHbnRyPC=VoVy7^Y*X%6D9mxT*YhnT>4`R(uj z2o9chX=`m$;QZQaua;s6UM=O}>hjq;Uiu9VWb#F+}tFI&Ds9(nXBx$V}Q6>!%~IX?~s910xK6fko(feXht6c|tnV2+N3 z4kN%2I$zhd`XxEWrHm)q-kk08fstD`7*wJP@jXf7#a9K;-M3qOHJbop&VY_O>Y{TP z%MOgVPN@B%0J|`yl5KAE$q$atmfVa4FnUGE;*Zak_*f|U1sFendX7kpThijAq!mE; z*4>RVX<8ii!7kZa+MqhmI1i16YD_W$czC}6REx^5(+_iMc zS#xsa_s5Ty1mK-63@~vqURl2#H$SpG^7_(ZIeG3_Ie&I0zvM$}v2xSZOFUH~QX$Z0U+lfz0m)0PnjYVrGxH zyY@&|-EQfEvQ0NO<*vvyaYsXG2{zjdH+az5@Fe#kDHZDlzCen=|7NrV*Obig%l6jmd7XnG|8-1lJ4$c9qYUgnB}A{>DB__)J`ExOUBqPMIuudAaiDn{Ue>Zof^AIcA<*aNfC6Q(G%5 zSAMKOUqQiGnE~$K-DTxc2~OWG%u%JgcgvK?lN4}dniD6Cmuc`*1kjLRA-Qy!zZuh~ z%Y+Hz4vHR5;6q0N&V)zJm>@4LdP_ck*`?Yxs;a8xwb$R4@l%hH2ym6tELrjqL>TOp z+?*VlHEV{pM{=T*1H7fB72Mz3&}PSiNgz%L;y>}^bMn3Kd`o7`m?pRV<_`JjqooSC zo28ZkkIDJ{%Ukc1e?9OgnL2d}fa^cW`|mH-cAJ!xAUFQx2im5u|G`ai@<}Ji+I8#Y z{s;ao9RQ>wAzF{-kw>4DPhD`XT==Q;W%1%Aa{q(>mU;8$VDS!db1-Yr_CG-W&pYpI zfYGbahApOr7hiru^LOG2$7%l~C;G#WJ|SPZ`U*My^i$>jzyCwteeZqk8|7%*zqt8E z?H@0_{EBk47Z>kR?)x%un{V2@RsMG0pQRPFxayk!kxu|TCkOrd^&8~QyB?4^vvErc zeVpL@s*l$IWS=jL^Q04xQ_!EB@loJD|LCJ-;8d@ayZ>^#ki-8AU%D1$`=s`99v+Z6 zgJZ#0zj7r2_c?kyh4z2=<6ktctFQW!Ecx&w`RBj>D|11EH{N(#{(*NMT$sZL(!?KbH89WFQ)2wm08V#^LI(a28s9k1 zalCWPeo_GQH8&U$(ec2cphOiSJEUV5bkRkNI~}5CptRNj-S?BGj`stn008fW^Yb-) zOYWZTE4ZTOWzY? zu_mwSke%Qp&y0`6n%0A+Ok8L0RS~TkTRPDTScY6e``R8OL0$eAT6dH}71C&=tNm@KO5>o-5v}gw)=;DS< zA~vkhRLIyzfZ@c&DIZUF6jlO}n6P5d$vVb~ub~v3tOEVK9#^(j!%sXaJV#tn=@Jo_ z3E&-*8Z?KGIGPRRX2JSIJML-$cY9kYxB${nS6N!W&dP2mSKRQ+8=E3G9I=ruEF472 z8vN3PAtM1?KU_cP&@;frZf|dsjT<*h{$z{{4Y}$;B64pq#0fTyl|IaphOR z@w-d5?kJVhPo6K;5dHDu^G_(K*oD*m%dYr_eD6=_FI{n&g7CRxkCOFBBPTms{tAxaoSZBbEAp9(E>z%>fa0a#D!$^&*UGkS zMN(W^A*Y@=7r<+YyuWgrEPLxQS-Nx?IBdTxU%B>M3Lvgry+vMm?mqxep%{vDQ<#O; z0F%v$?jR`83GjIW4o}k4>-C_9hcO#BZjva7OgU%ai8>y?fx{Vs+LwR+v-0?p&q#Gm zjZ{=r>fy`Rz`A<~L$%h{;;nc}&~*IcG1_bRK{5X+3!2?UZAWnJY1%8UNDJBmIBs3k2hx~O~}VM1~C-a(9#UXdSt|s*(rFC0$l4xK-PGKAL7sI zBc-_mZIJB^e~DNRgAvv-2SS0sUe^ANs*rPVf9XCvqcyOw>ki$GE z!`*7nY}pLg0S1zSOvtK&x%ZiMa>sYp%eg-oE2FX!WjBCzfpXI(fVCg2+6ASm=qDJE zo_u`+0(QwqCC#b`wIDA=?f^rN{HIR7`I`dy=4WO}SyeL*2(9(50{)tU^K+;v;D>Gs zH&k$UHG-M1sZJu3$4f*^0xBQiN)KbLWO`T*#3vh?1?Y51RVB2Nz+y5MP$?-1xB}57 zahS!Zb(e|*tj6L}@iOu8G2r&vDQngj0vO4Vv7@sQ4;NvKZ=?>)fpY6+5_})v@^nYV zOJw>a@n+0Hhn)eDB;x_zdc@zn8C>tnaeZr}bhe^1^O#NzyT4-&D+L0b!r$2;osET9 zaFE3~2V4M&R_7eC?fbCS%E(R}Lkl+?F<2~cal&;2_qPMx6ghSiw4KeJ_*54|ied;MED;GMsxoH?D0cqZ}py90z-sbRiqC>)*^@%g&k9Xb+aQr23 zrT-J6U7%b(uu=K(-{eLY0b zEJ6R7fSV-K<$E{$6o*d5a_v{Hk~2;}Rk_}S?HuK!eD`|X`k<(s6Hhn>w@4NMRBzM+ zf;`+-VP8p2P0`x|H+=7#0NO9nH1GV&JxW6!8f@CM8EJl?X?JvhwJ=~~ zy#=kD7l#4|O##mB9A`Kdrl%*PUxO3CX>12gS0{q-6kvO!!7@%#qdO(e(+R*G7sxyO z(g>#PGHjv2Q0g>6i%k3f%f%2TWp5(HVZ=|iHWzK%phUGCL?t%ibng8psuQ9=6wrMw zxYKu4w9EgTHX4#LAZBspE(le}{xQKTlg7lzZz8|Pt4Y&k`l0nUf(Q_zqUbv^6kGnTM8dISI#)jVqA%VVpS?UHEVLNLn-zp z3f%HZaglQWhr6W)S7?6y&68x?&P(OrKRO*cB%r*R0}%YBCwb+CrMsl9-G?=Fmpt`B zG4z^6%F4QS`Nwl>BriKj8vk}7!hTx*bln*;HZN5wn>r*4qGu?6MmgNEb#Qu9e_F;s z`azw8=zi~L3}AV}>pT*v6?4lp=&Es^qDsp9L3nqnvftnbxfd zRB9u@;y2%Z2b|JJDLAi+LC23*<)p8@_J&X)=ViDFK|?^8vd#+&cdF=_>me6@-khW5 ziKm{G1q5Kv z0sKz}2u}`pzBhxjobEIRaDMOo4{>mi0}%T?`S*Vwl_^suVY+ug49$7!k3TLf?g{Sm zb|DSZiGv;;Di*%J^*RHS+pXko3<)Jdl)9zv~Mw-Mr@K163lSfb%3dRpWq9__};JyrtL%my|Vm zrKZ^uwRlJ}GTai;JuhYqfa{*bd};4!5_dZoY@kHd7ZD9?BGtkrhFiIv@*H*wu<5k{ z1gFTB-IY!95odKAS(*eSD>!}^3MgzR3CVHwM@!SlH>EE<-Gepmb-AuwqRy1 z*4Q2L$`c>U|=#+)eIeZ zgPt=Cv~ejJ5|fY&?nVIaXy^*K*b?S9GwuQEGhuulWUOX@3n~W64Xo_-^lu9~LSOAY z3a2QboeNjOJqa1&k4wer3b?(Rwu;+VCY?~h?(dv}6J{uez{V82?LY$17pXDwSQ!0CfUKz_1YLHB`f zn&ik8{}uprO9410f;+td$`b*wgA;f4^0%=lZ&!|5kvauR38uaM#tU-YcfTq5qx0p@ z_dP1N-g1+QjG=t&mgZJ)y*{ThsgFPQ7?taO;io<+lL7YCmVB&0J7q=x@s8i9ylM}| z%I%w$VpHFO_}gX4dn+_OaypCb)OUh-YgfIi@8l4E@bC9POwH%Dkv#J7gL28mPw717 zfbK^|zu8^3N0L*LW#-Hoa_T83$rDdJ4InsED9fE3?EiWAQ916|`Et(LXUXPGTNIcl z@N?2h$H_?xuaUd&_%4)t;$Rz{h3k=4DEs{G^*@zce(^(ySD7c2ntZg zjW3XR+~%OEsi~D8{P<@1?8Tpgtn%|TJr~wR6m#>RhaZ!LXP%*Q(07&W#sO2NhG7~_ zjm?@KEfztEs257eF1+x3dG5IvB^ey-X*ifNhBr8F{5bjReGh`O{FC6?ZT|GCa^fAq6wvjE8wcgl zSQ11A4;@D^MVz7!G6gu_dN99sftd~Wzo0PDnnxmBUDED@$N&s_oLb1U=!}2+Ss9=$ zfFBE^NQNlf%4RT}6^pNS1MFr&`~q%x^Y%XdImV&D08xOgsRaP^TyV4B^xkff7mHH=lyCBD~NM`0l%d9w$eB-e#A`fl0Fd4W@dx?VSbD?9B48%9S zzDsU=ey8OgOH2(3LHx{|M6a}S*npp$D7S2an3zlNTO*0!USEK?@BFw*?tGUwJK%?H zo$w|&@aIGM>QM#pa``D^Br_#e9$N%)GKdFwzBC}8^O7Rvj%5{c#~ToH1OLbblumf$ znA~Vtw6jqjT)A4ZA*%Z*fc!jQaJmubdWa0?4bB-Px(By-JpM>vuVi>GgpS6I;sZmp zCjompwhNeu@859!&&XB9fCFj}9iwb&Y*hsSX({oNk_cs<`!JM^8i$1zH@lAM4+U6n zfx6?Q2BJqqL4J@YMLGc{xu96p-v)W%T^@*`Nly{TNP)YeV~sj=XS^sr+`EFc;C@WLr`qFRZckZWXR&a6o6!k)MNfx zvEpNul|63UL@3I93*7O$Brkug%!aIMH@IS>V?A>IdFQBn>#aM=Upan@ip!NF zxfWc-0PH{$zdK8+0jAa?jsMCwzJ9Gx);#4$)AUx>eN)WwF_;u!TV&m^Ep6Sl4S@PF z3R3Te!uHE9yI8^8RjXD*G|@b8Ql`su&%Z32H-qy8Hyui$O!v6s7AS}N+ixwBFJAsx z0LY`XeKSrfPR+~Bl1CnSQkE@W5fs0|@_hSyKbDhDI95^t7SoWcp0_Uu9xYwET%G}7 zo|BUeg`l$mOc%n@TZ6pCE4OzW4h7CX?`#}AO;j#$BesTVKlRKD;7(tHgRVCD z9Dwyn6DL5CX_-9x{7X>i`k?~p=(Q_Ka zKBQ|O&dA8n{_$xX2vk;8$*+EWJKRr|(PQ%Ep@$!bvf@?Hk+4I)eB~Eq-rS?{zFii* z_J+Lu&U>K4QHbvxdHd~mL7x?JCPe*E*TZ8t6rp_l$&)7FFzqx|w#=If?7vSv^SsJ> zr#yIaw)60eB5)|jp0`tIoPMcf81SDifFnNCkKVvQUvP{=fq|j``z+TY?9&Ojd6S5n z(dO3AK&9ct<4_tI6>;eGiIRNSNlf9A$#i*mext@u=F__`i z6eM^g7k=^(W)uK={$)o+DA>-rI9V06?l*;!WS+5-OCLZRufaz%12pNrXOkkgHG1la!=r@kc;R5XQ4E$mVtX%Q3z|^rtr!I3M>Uz-Ox}%l*;V2&ych z0nR2Tud=c#S+Qn^Or4k~1!J-e(BErHW&=qN&W5R1GWFqr7QikK4!W+kX6dNjtfwv5 z9YOHwc$~sO3vyJfHM#W>i{mtq6kwg8K78#s-Cu=kOgI6HpN%sS$lcc!T)P=$ZU6v4 z07*naRG`iVGD#;chXMyc0WLy#h+f_7m*QGK79B201_-ZsJD<;EDv@{)s|fTcZ6#!3H_fqmO=?*M1*cKO5YzgBS^ zgkbT~Y_!x$9Rv?c1?*FG;bJZ0p4vGHRu9$uY+L>7Z(J#~W zL6&-TbrlY&qLj|tF`y=>7!*41OW}D~Xl--!N*wNvGjQDc2`3_aG%63m<+)WsA zgEv5oP71jGjf{8d(y6MdR9d8^Q4Ae8gitne<3~gE6XPJ5&VG{y@k%tLEonhn^z3`a zAM?sSNV-~SHGoFRT4ocjigCf+q(v~D@tM9`g|brCd^!$8ST7s{+93jmS2$_Nk;sD& zlYSdOV9M%eoQ@d`3RvqD9=tR+*6a9d`oUnN=EOPjD8Mm>%vN>vO*lM<99xK#$;-2D z{fs5W4^+s(y&Qjm8c9 zR4Aw9yp8_fjlla6?NIj0ag7IuWB~f+A3u^ucD2YnfT*pM_%M_+KEm?G{!GI?FqehAypzCZh7cvGX{@W%0jOzI5pW4l0PpE)`U>sFWiYbkDdLIigPfOx2p2&UaL zEWa7vF^7)=Y$H6Rsep3Z#Xnpint86Q&lkqum;4X^~HnhV>rV)}dM+;0~UD$;BY6}7KZbL_hI1_iCc#jK>EwI$+*LR&xNS9{XuqYjcV@;X=P4ryIDiS-z_OLbL^ zTzTaeKo@J7Gm!E3mab!ecqu@+>o?u}Yx&kUuhE+o_Byw}+jB|rF;qZ0X3S`{?#&+^ z!?}gC3+FeSzux)*!<%;7TUNC6XE#0l@SDb-AAZ~Y+283#6VA?Zah5QK z4u|SV1-GpL+&wt(>{*Y8Di2ON!;=E+=LDw8%d4SNV}(qeJVs{B7(YA<>y&E9Q-C_m zn}Mn{K~_XVyIV5iT#|x|je%vdf?npmzlE{;w^oz=4LKbAvGgpp3;W@n5P`79`i`3k zImn{|1vGvFpTpo`#x)0U9|n~8Y{$Cvl^W4^DCtMUNL>J(QR=f!n=fC%E1r8@6+*%6zw045$>RcOM+Rdkd{#I}bh}OTTqD zxbs?|Tw$uXqanLJAp5DeppLymfkRCJ4g+S0&WMLNjt-HsdT_d@kRv?gb};!ONW%rF z0nyBpaq^wux!s-q2`2Js4@>|2w);1Bw5K80E^}?ZO?DEHodd+-*8v1c6So$bN?O^$K?8AE?;JEr~E z?R&bh9h-RR&xE0!-LLsJahYe&en5NL^)w7`&o{qm?D;fl*z*w1Js3B-2TIv3pQbzm zm6qwt!8EaWVVyGj+B-pKQ7BJoB+cG4JbLYdsY_#_7- zMwp?Fi98O%IsD#Q?YuhoeO%rcIHrfZ508YIOUMm5>(F!^Gt-Hh( znIZ0&3{@b5`|?C?1}|ABW`_a?KmoQ$;?z{yl9k|+!s;%mX%-;>ulV%=#Mv{50rY5Z z2g%I4-JO2yz+q1}6Nd@QZ(}TwHPpw9AM>O?^UkMvr+v>f?SA?0m?MV*25e`JdwaLn zJ^fL%i4kwY?{LQ6MvOawX?t8f+m-Rh=f2$f>(}_}D?a0g&v5w;7nXL$gmX7;Tw|j5 z=x0xV1C>_Kz8p*&FPgF~uXZ=*eV{0y+e3|vZ;o*&FgO(8I>WD`-ZXx8ZfAQkIHY!B z?UMq;GI*1xrLjw@>)WIqlH5AGypjpgGLR%7H7z1}(D@k~Nqf%cy+=omNQ$6<*m5=8 zbraC2?t2>jDpn>QN>mBDkEBI`oy&I+NbN*9L@A&g z-N+j`Pxi;yLF)Yp=lFFfa3oLw!~cjH|Br+^8D4pWSQ+T8NJ>h8PKZdXo3ZA=KXafr zyvpj7W=K;2Q$KZ<#6jOmax8!o>ALFdEXm9{`vp;QUXjY|QDJcocQKi6zaU5p!9n!@y zH1|U}VQeC}tEWjv4HU)s3UTtX0VmAO;z=Ga5k}037RDI@4!TZBLM*JhTB^n0Rtjy! zX;9D}xKV(*aJH=nO<^a3L8L&S`AQ0uMYTY*OesXmjD=QoC`h+J_YpEgH~{J(HnJfc zwQ_0?;ruySb0~1QC_vENF%AU=oC4UZP;^v$e2g4@^kj*Ti@_4Q`;DOiPt%Fep+GMb z;1ZV%CP~pE@j20|9Ng!3L7uxy8Bm%5wpTa%B{{}g7n4aP+_D%_T$O3X12%VEKXg}mcZ@zuqvyki%X4?3Lgy);b6+M$3$fx}J# zu7d%Ggf|@DAU4|VfvBwH3DQvsanj*^9=L6g8xT=6x3=pwtE9v@y~eEzrvs1L33<>I z2sD7GSn;M$7JuvvTw;k5SKC%JhPC2rs>LM8=EEg}v!yyHa+A9qoDu%c4(Y5f#4Dsw zdb4q;f%}J)-5z#Xc2FrgfgK7AI0ZNga5Nw%4u=FPQl-(k#Cp~5@IT=_a2_!8MEG!y ztwVvsM*(~Lw7(y!934#GIGC`9s(em54h0+vI1~s=fxwcX)7L4@O)UU8E%_TKlnW9J4~qD)S&Bj>Pt1yx#!V3A8;>#%!J=`RKT-^vPSAjs zc5?Ea&ivE&fM@#}*}isWJnA3*=-=*-ZbRQN-!7EFl(_#n4$_K2VK{El1U{{g!}uG> z&SA{K-bqJ+NK5KE<-$BKM2>l|MzPw>-acsqF?kT_J)lZc*?6hgiku0Xca%$~Cst-m z84Wpn9_LzM_*ytTwhAa%Q@bY-ATYr9&f1OQ>MX;xuGN_ICP3~`9+aA3b)a(8n9ZTs zS@z z@o8^M49A5l{n4$htzDv`x(ix0anP@c2LZIB7&qFRI5bY3clj1F!LYD0;V9qL$c+!@ z9<&RS9`j&k>YzVc+@X|h`L?<5D~vt7^FG2T5NN+_U#5+XFbX)u9drs z0!c}RxCy-xI_L>I2{;t!lLFz!JkFPikzim;a7$sWC3;c7`5r{v5y%JeF>#T86(vKk z9YG|@0~zjKODqkUSjrk)l8ejF2I%TDBg4(ntYe_J!J9l5dy7_awQt4E@J+aI4;k{QOJjcN;0g?tf@E(OHSI4cGPg>z88g4Nv z(E-vpfOECMPb~bzz@Bwg+l5f15lC_s8qS`!AnmMRQmo#KwhqCx4! zjuI}6W9Lv{Xj6c#nzAZ!vsQLPo_jN95GkDPY=NPgm2{_^ht3k=oi?88@y# zUU}s;$;`}<*|U$52mkSJX>4qgtG@h2iHoz})H7=u3z!eajkvb&D3s)+BuPz8QEQWq z)t2es@*OT;m6cWU_B-#%*=H?8da>GHOx(u5i7ybjl$P$+*WBD3dGe`e<)~RRWc>JX zVZ-)}%l^%Gd)!ujyW1K6&T}MEfHQ!#x#gQ<9108;1$Y=A1BIy`PlUDoa2CyjMQSJB zgQ9>nnMb%VBI3UXlRE(`VC=dB>;Rh6f}aGyAQ5m-8Sfed?{Fg!pB95#qYx`Y1+3(N zCjex{dQcfVvI28a1d!0>1y_6O1SnB$lL%k2bTw>|E-&=WQNJ7j(BR_f$SR%IDC?Bs zhcZ*5$XR8r($b1DVP8Zh3(lzut*|NS3k%6m)>@NamM`lW^umB)8Vs%XWe7l9 z!L67z8e2f~8YcQcxP7HCu<9%+MHO9u{j;5Qb^d%Z5puCcvE0qkUm|Mem+i#`Ke zjscAgeW$afQC$9J@Xi8sZv}WBn*vM^+;G}R!qr|V2P_{Md`R0?Fcr7s-?=$pz}@QXw&F7wlC5+?uV8Fs52Uz_(eoR zv28k(sn%m+Yu+lZ)=iM>4kadWxhj9i9m!++fC*M6D%NTUP6Zp<*q(kLMf5aCCypJx zsTq*tjsb9FE~ji%abAyf3M59mz@g((B~ZI+yCgl%EvXPOqoc{b=Nu_4Dw6Mh=LWg_ z^Os^mhYkshCy|lZX#`ADQY+8d5mZZ*xN)yBNnBgMtr<=(@3uX>axWztJkcR4?kKa*MINZl9`nO zz&u%si;LyuSKg4H{OCFb+bP1RzP>@&F3It3rol$ESGK#jSS-BY=g~)>l;e(@FQ=S* zl72JYNNglyVsLLfVC?y-Z)gCpn<3|KjvWpfqTYpj7gh$W!{)?yL%(-+*qtL zKQzX_3GX~dDg|_e*FI#ujZ``~=KG>Q2fd;)_M(+A1j_N@m4* z#D{fT7XVJS0~(5*(N{t%{1=2+47eD02HZ`dtB4b|O~@!ajn))&Z1H+$=& z9}$EJHIPs_T8yR8=F9u?dot25$B!aI)i&mH@jOKzd6%`(zVD`G|Dj z<^=m{ESN~6Aibf@*MYtX1qd=x-xkR>yrYc(NHm@ zhYQ^8zWNR*9Ig@%*xTD1fafJaCj!c7&wI~2n|kKng=0`#Yny`Y5on*>-|$H{Q}&+W z2mZTv%Bl-~G|#yV=W>JOm1 z%Nqr`?$D;|js{K)5i`CbtQM-o*8+gTg+B-#)%C8FI}vS4vc5q&)iAlk)0oZ|Q`8(WlRsbI$&RY}v9^ z9)W#bT|MTM2)W>bPs;lB8?nIf$^8%hM{;tq0dAhy?@4c8`E%Td2L%jJ+}zwEPdxdw zY}y2FDa>=HpLUAOpEp-tdU=slR8(NyQX>uZ^|EQpHkotuQ3}YHHt&{=Xq$yQcS+IC zoe~YO{3&pcH{sBSZIFjN6DEw8XP$jt7BBu#JYKJye(Fj3eEp4gq@uDyL3@T>xoWi# zBtQ4;g>vetCkGb6xY~*Z?(;9aD62kRqXhr*m%gBBr=_Lny6K&F-jf$zdjczGsg-^w6Uyf2Bl4N9p0$m@%VK#%HjGTM2Hw2>Haq(~;j(G(JPi z;n6ajQXDJ=u-bEsLxDk|0GG)G0BUO+aggYG`Zvf?Hyc(j`YwZnjf@?NrL{f ziPBlu4CcQbP@)PB;K7e+VF@t({VO_>G7OS6YGz%cN z%E_SW7APt&Q*<}*ZS2f*Z%^7zt=8H-bm+@uG8l=5F}CW@I0XXr`0TUw_VgP{cmLnW z-5d`vrLol|9SLa?i9MybeYjcDCei3YeHFA1?(x}HtKGcv+rMq!Fka7&EM z?3Q?RWP&8e8C`pQQ>$CR!}h_$0Jr#27FQ?mxd`+fFNMqCAIfTJkLXr|-EvBxm?AS9 zo7%9ifkcudFyCN*W6Z(US#K$uc)PiG`><$FEA0z-TJX0CX>w?PS`qY!#^wPo0mr=n za$6t+wA0FZCjf8#anR=NJ09k^(RT^D^Ckd?E$u9})WW^)AK;F%>Xd-kJ32bCxx=Xn zHfG#7HZ?ZO<}Ev=6&un~Sz}dJm9C>)k_)$WvWrq)lwqf&gIHgK#bD>giQl2Xz)*m_nexi`Ob2H>RCGvrqeyX0mt^8x3Csq48ctXr zEq+bDdi57%6vV-N>59u`!Gd`J)a&F*fR4{S{~`dyDmm|y=g7O@-X)-T(~UorMX$at zD^{+Oty{Orlqr)CHd9VKe!dip9n)uej^oIrfB}hjf>V9Rjw1QyH@>O|JdZv0l!E0? zKK;B*96wgBz4jVev0|ly-E-$0Ess3@u zfBwrovUKTkJpj7@f&a)KZ@*PJ#qYWI?{e)|uaeVGKS}1yo`v;Mn|$hmFUy)WZz<>c z@)fJ(*kczcfX*6u>+N^sjW^$w8-H?xtU@|}x$8c;;)=^4w>U}L|FY$)hB!|EiqtAFo~m?)FCc z{`KDhsQ;2Y_uPvB&_nmV6b^j;NqrbiJ##@q~KMEpgUXa^v{Tbq` zk#BwH$8v9WmQ0&EC3r|MGFy^UYKsEF1)bTqID~O1FyItW@CZ#U0tbWK=(5#0#-YGa zrT~HR_?So;3p}q1;$hfmBLK8hscM|pBhe7M7{F6Q#lQj@=SqOuJ(3z9p$Fli5jNy) zWWIspKOqY@TPKOXaUE{mZ-x?8Fa##&W8=Y{#}Q_16-&%43Je;QyX^zG$@Q52fzzFB zgdi!s(*%KZ+VH(YUP{O_hYu1JI8C2azaI;6jG--42M4;Xy|fINwOO_H z$l@U~lT5Vs!yS7li#B!}zMCAHXHWO=-`#0zzU*c+xSanqn z(pz(_f>M{$U|RZcwNcscj{i&Z}L zXn=zA<{mAhM~@aSIO6BeorCv$YmtEQ%jAoBbIi!502iV(lx@xfoe!3LDBHH}kc^Bp zT;uHocX)w(^($W%wy8bf_@*p$%3Y6zh?UfoWW70&m6a)D(7wFbAT2@o*I$2A%F6f1 zq)8KH?Yi}H$7=H_F5ReM}}!952TnGasUp zxZt-8Ip_&`zyA7L%4yz?b=2Nm(_287YyYqA?;84J!z~E58QmW3$+=$T{ zoOGO69SRH#1+2N%1rZb?S-cRAw#(Hh8B_QXZe42Z=o&%ANVK5;5pM#703)9_d9<{5 zVK3df3A*LBNGCXXBdA1`n~NjJn6(!xnW8#~qq(#UXd?jex+wG?qEIYZ?iQfVwh#nA zZSP8*VDXg&7L=d`U1%6yANm#i4t#Zc1V~LG6+KPBiJ9o>)UWRltlf+E1B*5o85oNN z?4D9n*D8&;Q5x+9Cwrn-QlnB~3$AY)5n93c*x23((J_?HK*=2YGGPd^uONrZ9gWM4 zeMM(GIIi6k$rJ%y0l=MfOhGw%(m7DEysg{X+6wVTaoxmShT2gd1u~68$z;;NQ@{5P z7k&iX+h5Qo)M2_0i-EHAl1wl-18JHjOB#SbjDRk9>Z>{g^R4@wfR&EhcsKD-D*)Xo z!iS1_BQQSk(2OFYOps6p!oT$kaA&(ESE3J_)Y`fxmA4xOnY$jy-)(8{l#GOENt!rX zD=j-a4cBF?fx||#@TohtLzn_MDZ`1OP-!ZR+m|N(IGir~A#)6z+nrDb>UY(lT|ntX zS2^UZ?Zg0wQ+f<`t|$N+;D8rbG(h-RoU}pyI~t~Py$|6M4@lP7i80W1w$_6#4LE(p zAw&dj1fcwW$l}$N*nlMDMB-3jXi$I`V{q6jIf+nYgDZZ)MPhH+!^AN6*yGievZu3B z;#Gz;!N{VbVm-K}2#zf~N_2uthlsNO{hwma6d&`y|MNB6ipT?3`P+IGFd;r(fpijvxAZth)36DVd4S?sxRxP6 z{VYVsP!!8WpZ=7#Im$dIFke%HTTC$IP~z>2aRpKmauSrbR?Ar2)F1#(5i$hP9|BPSxl2ET1A+`3JZ;m>*tmiMx$e8) zk}CMW?Kgh_Fdwh-EV(|j3^-emHy&zH7Xrlnj4jVl;qKAopS0fzz(1qPi0+;7Ik#mLktV^n_oKGze2o+Bp#hXVblfLVfa zD`?)sg;rbz(>8(0W{93ijj`r%hNCevy7e{Een}XJxdo$|H+h`+s>tM5EWXBF;-*5# zz6d*HNoCb6#mFc|hBccD>$Faw-F}D`;y9-VG|0anW!G_!L11rGv>+)cW+^ueHk@XzNjK3cC!B4oW zlydc_Ee(+cT!Wr$@rPUkmhfcrXI`zQX1N(V`U}2muOa;cHte5x=YEMsw^-^QU^@=X z2)MgJV-LX(6UG)>AT!+_{Q}$>7e&bIEH1;9?497~%9Ux8$4Fdaf~;6uBvq|GnLZ^S zSD_QE6FSshs1V)Kb3TqF3fRQLP+SZrKN=V0Tt&n~ObXmPTLHc|SHZF#=Y|lU;%br3 zhV=lKdD4~)@I6(!A^;&Cp~B>pzs28bQ49RHj^9pg}7 zI8uP~gNm5J6S{yf8Cj!$a1QEGXex$WzT|ZUB+1dSdEEyJW}XQ}kw5;?4dAZLSJ~68 zILxJ3k43M(Cja=)6LRy7*8wDKkqJ;1N${O=wLf?1B>+)BkP}Wgwnr+?r$YgY0+eUI zXHO-#yqo2trOV`nm)}tEnOx%5Z3~<$1N?sIzfa>f#c@*KK-s|^nBKai8lqaralWgh zR5{+u%F5-r7haK>Gp5SfXDyUp-FiDX=(AM>%%hJ#D-ZnbFIc>G$;&UlDpi%$a?gDa z$alZ}4aiB4R$1xfR{!%~?uBjw$a6pCWVz+m-^nQe+>5|*zI{g_WVMfz8swM$cI+tD ze5?Z}{oM~dtuot}E?c2DJZ3=5O(*ijLx4yqIQj=f#7vtuRSy6Xu`WCM=vi{xZ~rLY z`sP>R_K?b^r^uK`9(i2F-kf>*$qLwil0_ncdq-1a@P}VU$%U; zT=nHEoMz-upc@6a4>EhEZVt|eLxF>&fC2&-cjE!Lk1H63c^;xI@g3X*A7uPaaEAgz zfdX71a|{Jus3IBLaOsn4XfBEbAE#F{KrZUR6N0U3vegZ3C{Cj z94&9O3;ChHJ`DW^Be%Wx5hSeBK#<-Zhn6dBO5rV0XoBg9@sRHy6%8hm4r%X%nCl2I za8bN5+Xv`NJSH|KUT>Fr4G0}R#-U*wsM_E_(63y1fU|jY@9hHU?r!Y>;|&fPFu<60 z!L~-7C!)k}s90)dV-373{ zP%9^IT!Bm~$daU350r|PfwOBfHlyisG&IVSGr?IP^-1$1)Dew=9Yb4|wnFPWFmSU2 zceOQv^Su`AflzeP1)AfWntG5|O$< zyeZ>R*x_2{;aHDOnGS>k9QVl?9G3{i%9wEp8HDwcesSX2E=!Jb9AJlYaZ1_oSq>R5H@jA+!1f1wU7>UW>VBrOcjv zl*~SAR?p;|?-5P`)7~h{oO%Fu?=DltqP#{Kk3*X%ta~UIJrVCz$ouv???4nxj@lCswQJVNF%Sh)im#wREI2{?Qp*S(?R2yaeK@dFg- zfas%^#(EWV6x^6N)Nv><02JWXfPhqad6jI#4Y!FC@+C7PRo4klTN?lZJ5dZd3e+_D zrPb$`tVB0%h(fMAaKa>9EC-ge7XWW|k-7~ZawQpr3|RvLMB27tPrX{CZKwF7r%F`j z)ImsWaHC|M`LIW-tgclCR>e%PUn0{{7r9kmr8W1p9;biY;KisR79DlGX+= z_+(ATtz7`>hzHJ4j@kwZCG~n3kp!k30`gWnGZlVdggL0t%vcYzmyPk$Cou?w+atn< z?b~_{L;#OLC!065)o=KtpFo6s^3aBXcz~f_Sfi+p8Q>gTucW6Y>7I$qS%F~o%mm-} z0k~TnR6G?~`SBJ2B}Fo7RHj5HBug7Mt&_&(2)PhHTCz$PM8_U8QwqlB^qF8VW#{F{ zrT_<7G{A1HnigzraO;BX_pY`^98lw`zOP37&0BB+mnGheqj6$QF*O(rtq2&&Ffr(C zxN6eTSSMX|t8nlDkunK$a3wAelPSc>z?e=vObYB2!=XTs0t&ce(HNHy9&o2eYx38D zBN)zkaVRiY6zETT>yMxQ=5HY5>TjBkKZgQ`k^;T};7;x+XFYQ$DL?$v;;Dl%FccVoS4VxRbX70WTk{dgM?+F;GGGK;4d@Hu8e&x99;vdrPDT2$RQx8; zuAn>G0N0PiPxKG&7P!uD{wH@kUTDh)E%|GG=)3u`IjdF3ixtNB(`RqnF`L(J(67zD zTRc`u0ju63HMtIWV_dy^4R{LwU@$Ugm({e&_HDaJOc^si3%8>>kVqGRJQF_0~O4;XE1YclT*;0}6cG zi_7;O-osa7$WyRbunO6RB4rxg)~@Q0c9tItWH*5We(|Z??C?Yebp_u8@2M#S+`VXm zeFN@&ij-lZY^;<8GTIcsu)uws(vI z916R9%_wiBxMDKJ?~W2~P&uixKe3aBVb*bU40wkp<`O?lLtpW$4U8WFJL@&@3wQO{%~HenunF^NG84vW z(5+Zzh*b1;DX|vVviFeQ}i&SsU3$Lovo4>gF~93Xjr*u%WiO_ zZ{NON3L#?hw9`(3p0Y#>I|^`Cv%dL93`uL;3Wj%tO-REb9ds%}taCJO!}6ADHNBz7>5G;LjimH>d(79ZsXrP>1N)wC34KS+1cIsZj1?I zzI#6Va<{wn_P$qq!6jfQzji++p5FSDakqzY-bXqGtdW`R{>Wdsjr6)4+U0L(Y=&5w zYUpRl1V{kRu}&Ux4(&WUxpOFRAQVvWEU+ykCwnZwbUr)K=J!A{YikGgjZmsu3(j|f z?a&b^dBB><`A!bsVc#v-@v(jzL-nz-oIQhQPZUGT571TBT%H2}D-zk#gvZN=r@_pi8O`suPUPP0&M? znvx1}Fdn#NJ~?*ijYZ&kJD#yaS6mxwn}PR zDgb!sK>#;A#mayz!TRrw6!a6`*j#L{;r)iU4b?B-_Kt+RtZpvwVh*Z;G3ppVUq+_- z-tnkkSSv&h|2_9P48iWfsCd(k?(7~$F5?ziB&ts=t(S{F&k0 zS;07MVX!GsU0pBh*B9bieY|qJV|R%pkK~bduqo!meoYDlqP}Jz(_2w>W8)(f_~LYz)>A68@@6=W2`r06YvxAs@{5h zf+N4DjfpMv3=|<`Vct;wQ0m4q^bF@lJ1VdwK13Q&COO4=#6y9q7l3p_Tdg#;L)Q#M z%f#TYCKAeb^`N8Al&mxv_r6OL%HP4ip-mvqW#wg102?XOXHJ*hWxHkkgaSxN@X6v2 zmPjYW66faTNizWRQs^^dnG@pUHB4M=9K?G2Wya(jnVgy}#pT7aeP<1HM}a1gK0@6A z8#k?osJ1dlB1w?V+qTMrdGnyNDpL=$nSVQt?d7+>@2i~lIC}M~oXoC{Z)k)!7LxxGhrM&@Qbwtr?Y# z6PI{$`8t~Bd#i+DZO_JsNrl(Hx|(yaVpxmkZfW->2TrH^mchnB#k$TB>HtHDUhEeU z5rGqFc0xbSBipK^3tauKD6k=fdc0=aK5Pu7ayWT$C@>%tu&+}3nt28!F((p-0uBWn z3OE!v6cliV^Fu*pCk;}7%VutL``o=cq;e=Q3@N~ImdohaNd6i020KS|ifSS?>rJxAe~H=>pl?5Q}2Oq1iyk|gUyv~GGKyUja9&ceWPa#d)qKg9)KaTfMOYyIDFP4h4n@1%`4*9VR4pis4Ye zp@2gHhXM`-h9ds+dk}~xS@1`{#wh+s z&%r@7;6^*+Ps5lHJ)Tws>Q}{T1e|T5djvRipC%8KxI^(OacLPSk)>~v0BNKr3NqYt zaF~&)nc{aOl%@_v!|I>{`szIuQo6fD#dEi}w*f<~0w;TkDo>4#iv@Rkj>G|XZ3BmU zGGx1_K&dM0KRrE7Vq;?@3v$|*FJCH~x0XUdYKt5-dz9>{s6dhZP{P_OEv+qJf^L?| zstRznXGu~rl(OP*LM4*;$+La<4eQmIP<}#<)Y!3CgiIimv0@*iWAKT0da*~2cdJ{l zZ&@^85bYO%cxcalN5k&OizWOf-p2$Kn^aHq0SoO{eDB@t7vRol7{AfPnwyyfpuIrW zZ77rvmaLJK>|9Am&p_kxN?TKdq$Z~8b%yRG?L9M&%W$Ot8zZ>fp;f%A3G&-Jw}`J9 zS7M@*#f8C=ZrWgbDZag*^y1|(TT`@B1Vm_csIpWKuJCmF6ZHC$l`)jxm_P?MpU%^v zfJ1>pPXXonaQfn*C;VYdk#%l1D8a?j0p_Pa?Z>3WB+R>6z|qeB&TnJPZNT2#jlaI0 zJ@aSMXBhKtkKg`ok9RQgVvnDB3Fe2_GwqInywaWd3zx@k;lubbaWh)3BN%_Uchrtg$RrZ{n*D2g-knna40Zf6bSBl123GjDBHUYOkEM+g!QH6T(<4AHHiK{4jCL5JaRmnxIbvGI5TlN7!p8n8z>Cf2Hla()e#)qvxhVl}6+i$>~ zL3QxQld^#(PRK_?hi2U!B@&1BJs~?*_DF&hZWT0`G>M6h4gmDbzGFr%1u#iqaB#=v zg3EokxH`(f<(`khF{NK5v3KZx1vr$RG;_R`;+M{jTInJ;e_UFxIp}TR?-oEuDQn_m z&#@0$7A^2={kH}YY)s76mu~Sm9}Wc^3hYGzGr8{N;8+Yx3UJKTg;H>J#I=!ScOV7s zPy4a^vA^#tJ>{T)r-8~}&v*`JUhHKz`RXk{2jXtRFdeRa?QxqGsNIh}KhFC;C}1r- zbR)74pN_Lbfdi%h`)pQLDu9J(Nlc78sB!RsGvNeuC~z1lppYmgEX8n;56)f9P@dY* z=9eVkEbJqFv#A}%%nwr1X8s2!*Ev_Nlwop|Az#f=}XQPdrXqRMQi z1H<8$Z&r)o12zG|SoYSsk>2TKnc$1Dz|*oLhcgY+qfy&XK(*`jCzyyyIS>QvX%jA0 z`Y>+hX}9A$O^+BYOWUs%mh>Q#25x>d){6)7%n3;IkTw*96%+GfO zFlDjQwfpG)zAyLgzO7sm^lolxlQMwglO|16K%8ZWggp9+$||V<=X*5d(vy>)RWo+X z7zO7){Aj7lV{d`z?oP1!M*@c(m6t8MN_R{C398{X|+?n#`Or13>*wl?mU4 zIwJ6%oR|O_u)SGrt7rZW>RXA%pPp1PRAuajvi(oViq;CJF$I6Z$HlSI>;r;6>{(zg ztVlHzq=fosxPY75p;=ir^bZ&GS9`cno9n$S2L!k?I%b62PgIIpFg6F*8B);g182mb;1L9<~m!Lp=T826fs365Y265h^MUOE6R(sh5V%huQ0&QI` z4#=Uj_VzVIZ1$sELnOxolMSt!BcOf;rnJ4rqKnBu8!+wFfMDiHd*jc%GeYyuC;!;@ z*iX2qpnrSEGJZ{*bT!mBx3o+=jN388lLDsxYisMIu&797B4%c0NVGBoSh{8GZG}`Y z?ZUJ{Lm9h2yTT^BJN?jX-n>PUaP5<~pLT*%B?Vk4DUiqLfpVwj<`!Wd?D4Y=cXV_> zu~E5XWTX#3{;WR2{A}O80}K*TDj#x3VG*vRCW9*`Nur?ezM-K(xd7%s8NX?mXXb~7 zdFh1G`?B(Kl@Cdd8#}kVJ>UJKRp2V7#%`s#VY}Qc_b> z@Ru409rDwR@MXKplp~1OWEsws!HU0CYU^s1_T0Q=g03tx%VG@u8KdF(5uk%TFZS{q z|0C)dBGZT}wo}+cO9Ab_=zko8?0xgl=E6zMp}^szKr5t^wsb&3DW)lk&EV#+u^l2a z0HCENFkd5YFt%1Ehp$csEM*o1YYts@=sJUSi8T+vW8KfFGht->gA+kMj*0Y2S=+Yd zie|}h`G#7AweC|#+mE#_Vr(I!r~~5FG}y@0*nNcj?)4VTNO%8c%%-izXkG$OKCH3_ zp8RIy^sFy?f77{}(L95}kzu^il9WA4@kfheoACxB>K174kA3;->E83ZXN>!D@9EzV zh;!YvDN`X|Jr($oPuig!IX*64=FXXe?@r0j&&T>VSvk`Qo*#GIaZ(Nit8|OQ+L?Qb zXee8a!5W{UVsf+7#P4gD{L%R;awZ-e?z3jj)cpr#y2n5SO=2QM9+OT4+q-4F=l5Q@ z4q9ma>QB&0Ul?7;IuxHacWrH!|BxT6&dqoC@W$4p5z4IIiNz;-k3Gij^&fCGUf|L8 zs==57X<+trw4@*Q3pI4(KlQ^OgiyQvyMY(+{Tr_T87r%M2CX#q^~*5KC{K=f8sqgw zNGoQD%Em6p8_JNJ3@D9c4q@n*jmj}2l>(+6P&ot|X-gT}Yn%8ZAnP0hX1CF{2Z>DE zIgmEmBdS681lW#Igy2MHU9ouFwbJRz0Ec_FB~peXOrQ^##C7sS&#@*^_8|TpxM4g) zn?`}M8Cq~0;33P1`?HRI8z=w(KmbWZK~(y{f!FlV4r$tRWK@i{$8fo2OJ`f%*Pm(A zefeYj#@+sI?0So%4hm%c{Fi%lAwpo&0BMZFF~gGrY!mOi^Par+#ydjJkZDt=01QtI zwjZ_u1Muvt{p<$7`!?d5GG$UQya_|<@x89TUhcpDpWsFrE&qM=ap59&&z?$Ej8u#E z_v&kJ%DlNpcMH$3^mprRx8qvrTqv7|;_X0R;T*$tmigwhxAt99QYwo-SfboA^ha?2 z{=ffI^78WJ#g`UIVc|~AUvqP_w70j*6Hh%O3vi8<2LmR4=B25rS$_BXKgrZ-Qxu#x zZal2wZ7TE4XK#6_sHl|JUVl^R%{b|ghGF)AbLY0--XUw&td&O}dm8nTAma+g2IJbi zd8^W5!^TbW>~k+-(=keAPnx=_1c3gBKmJ*kEn6wiJo|!fIwnn=pmCf0?AoH!c9i09G!dNcG0q%4kOX$(8nP5%+plc$OL?P!o82YA-2lTvPBng_!5*0w=aPgd z3wIf5BQI~rced66J17=+6m_Jf#vY*vOf%$yuTzGUDqY+2 zef64kGQJ>B#^t77FWikOiLw@iS2n!DG_0=ZoWwRc6~0 z7TxUZ^`~{pdhO%S)JD*ciO-($-tW5SL0HosgL|Mre5TD>X|ruxZP?1IiO)*Q#HF^u zeBg_H0iA;Dd+uwP7UQ$}2<-!Y7$!&@yu&9A-HCr&jKgZx>(2pmxSJSRFl!U#!e+8d z>Km|$1L&TT6@yH8EGQ8tC_bFTaHB?!coxPnBai}IO|U^nC5bO06SC+^Aj^F>RuX}e zwj-4!D3;EkzIuS~o#Kj5M-NA5WO)xkTOacM$aM7tr! zFh-^UP-c50Fuiu|I_0{aIdg_`Rkyab$@&c&w4II{KMsr4TmbgVy4Mu;3%QluwkRNug1nk`S8Q#a^sJ$SI(1Iq*uJFM1gLO+l`IP*D5aY zWWj=YDxQz)s7;$T$&MX`LeB50Qzt7JP5^w(+O-;X7V<~AjpPttzkVZt`Wl%qae`!{ zUo8IMLwVuFMKT`wos280Tefc1br-?)#UFemU%U3pl9QdS9Q4)I)zaS9rs=jo8Pm#@ ztCY)r-rTtgU=!TlvSll{Y08x|eEPJh@ax3}rxkfwr}>{XbGlwxZA1K|MHTw@*s)`j zyJqRK^!;r z^PiK49)47wdipt;ebg*n7&9J*udS<>-~aYkT5mu9lN}!96Icv~V-*1Ualj}kn z%Z~-j)0XW;xzjCI>lc>l-wc%+NS*LwVzRw4{&3@}3D2PRcYHEyG_+=FmNB-0&wV^7 zzC;ms_k-*REzP*axT{EF^K$?~lSu{45%fDCrnig?NaTpb#NP#M z#JY6}m>^(Jrc9i;8S=7zp~oQ_H#7;9mzC|-eak5)od_n9c;-JYDtD zDKUr#@oG56iTDC(@QWstmi685-$1s*wjUD-^KFV}?1E3!kj>5Z8uSr->C+L>pdHYQ zMJCp~AsAjYEPeuc>7L&}p9q9!di2iz88mne_8ik!0(P{w+F;Q4K3@(Ra5pJ%Lg)a{ zURYQnMLWtQ%Ju*3y$4|2N0mSRcC}j7RktkJl5EG_j-AA*Bq1G=009z04mge@;eWIX zaK`~DM@!&nApt_T9Od|tJL&;<5JCzeg%r}`^zJIjMZK@2ZU4{b&3AUcyIM6{-QTfS z-}%nGnR)Z3d}rRgd2hLPhF}1vwAhI4-QOX-15r6_d5tWpD8_~bjJH%(Y&PC=Aya@I zmRF*{+>oNB67SwCIk8q48m$q3A#}NOa?vh7k_b9!Fb@Cco`Y(OAsDd88Gv4ToOIzp z!N&oCK91R7?x8zl7&)_?!)T8W;y_}sP2vOlKpU(YwJ}|j*T%fJ70eK%X{RbA3RUq3+CI!AN-{JY{`-u`Sid1lQQLQ`suIb+&7*kciwfM{M~ymQilEJEhnMO+hxm^ zqg2w^;x@HZ@p7AO3fOji`Q=xX!Au>AKLhjj2S2(=-g@3Sa>t$b$UDw|i@f%PoJrO%H62IAW80Ge_=xIKZv2lQ zfk9lMjO(YLc~;JU``hr@h{^YE{7-qyo8BOQ_~W1CeSdqAyx|RJ$`5|{V`UtZA^pGu z4=JPixBvS)X>Q&Nrtw<&4J70L_TA{;t*x>bOl9IlhWq1>KPg8Yb%f&l{EM$4d^c?F z?9%J24Uih=Vx3a=H{J9zNYPM8B7sAK$1qmjqvc)q?HlDi?>b*@yW=i->s!uI9Dj1t zPnFrvYpHkN^B2(SBXZ}T?ouW^CHKD$TD|LU-l6Joc-ZyYYukm)dh4hZ)yR-R&bsiB!R^>4r<`)KGS&;A@+J>gYMBom4+ZGBz-D_= z&*k0s+$(Q<<5}`QVB|mZ+zU8-IZLkn*1yZuU%W!wf_>zJ|8R-kGPv&B-;?*h?>+Lv z|GY^qIR89I+LpI0%K# zTFi6QORM8+j$`bh=TYFGDS%H1)yE|8r>xK?<=~g`os9NQNWHi8vjoFz&By0$Q4zM$ zvbU)5Tk{9(^@l%6h9Co+C53wV$8pN9MhayF0w&4$MrTod?-r0x%_GS& zG%?7_Wakv%hIjmoaTRG%NkV2%>12#Z)@w9(Ff5TYyuetGLW(0aWu2VIUc|kJZ6A~&2NN%DPYGwLlsCQ6&5O^ko z9PO4xY`1p*BejG-LJH1{FeiICSAk(M(k~=|X<84@;~aYKL$oG8U2C z(mHb}vp|^cQB-dTIwxtaqrhoaGVXMYW;86XYRTZM@~@X)BOAb|{P0IV2`SQgx#*&I z=uN1r|Ls~Vq9XEz&tEHd-uXXr{PD+uDfuNx8F%Vpg9|I3@Y8XDH8>PiwH4p_)(_ry+lCOW|3m&sQqiq(_t6iM3P7i~D zd>quY6hW6^8~V}5KlVX61(G4`4?p4DPkj8tDph{jl~>8Vf4N^)tz0R` z9>a8nP`z>s;)-xU^ae0xyYW0zuKU*Ydc)#)NT*XhQ6-q?R5{ZO>G=)ecydrt! z=e{hfR;^N|*C#*mVP*IqckHq9t?zsfdf*G?K}gD9`jLOoE2_6#{&~3vO!sBW8)Ort z-Kj(Je}Df+r6Y0JwYy1iqNR?=m*eF#i+}(Dw$3x z{wP$vk#WZ~oCkQA!LSd1@De%wv{SU*$!M=$RIPIh^W*x2w`=NfIP%GVzEm!|;tTjx zCFH8lUxphv)ws6%oD877SQb^)P!gVfjp-J$B6W|#uHbVLW^SZ&_Z zs2ARWZ?^tORD1>O0Lgfk&}=>mXet!z?Q+=yAKCCr;UpY&M9q{as0Y(5M%xV!!u zuV$B8r&~A%TL6=162=CzEEJ&XWi)?8@V~|zzh*wppDAIuTjZ!y=&%*Fvb>=N*BPKX zpuImq_S{Mndke9aYm8~sZvTjYCEG`S;%9LWP9cLU|z37EN0rpUQRs6wx ziRINuqJN+Gqx&HtzF2Y!p;`tT;^fG2)t3{CPA;x6_B;J?0H7barOsSn)9l5E29oT) zSRa_m10p5R>r1_IGs;LcV`!QyI!^Y^6s$84@IiY;2f855zF%Z`FC_n4(MDjh2Wusf z2MKR~9`dtOw39Yj0_&3*XX}^=n@p7S*py}x9UnfKFzK=7Cj%zn$;8i{2l@#6?+|D( zv{Mp2&*Ef0B7utK=)YL?ATC>#Q>n4s~NVpd|y6>MZJ@;^n>XULh@z(%pE(dRYgCVklHBM;&>D+;;n&`oSxN^jjcc zBv{Fu>;+S9-@X<(?aUKZRR|?rKlSM=Ro^qEV5_Ps<+s26KS=TRs!r_^sJo~tEmV~= ziYDl9zhP;JdN1>u0vvN}S4v2e=}U?2Xfz@fP{p!h`Esorb$Ty`Ai%4Tz^*7Sl}8_a zLWkn(Pd;8%7KI1H^6(vxs@_8~+pXj@zcutN$8)bdYV;W5|bf&)RCK& zkxj{QGGyrpuiq9)3i_Pd(*zYE+4g-$x&PTvee|!l+UJWw72H19X&{Uki0Eltd?kTXDdcqnaj* z4+kpMF_o4SYyMYe9JgHumE8T#bE3u95os{vHz%R_jomAUy3x5-ssxJ*^XkWv1?gAapYw?_}t)~sHw zQv0Z~whyNy;!556bjBDgZd+pFq7hv>wil)1NynAIi|S~e*!qG>6-6*tJ^b)vxK*$R zha+`ppJmDR)x?Lup9A@#9s*?XsyGD{z;vzSuCH$ZYT$bGaLlaZrXX`Ki!=&=)G)*; z(gXesd2eKyk)e=_#akhkS7hXRV?B*z)Aqu)AgxLBx-!4)?ej@v7eXBM8;grYLO~ol z;X5@D@ktl9n&AWvk`0%2+VGl7883vs$T}!X4-9sWIK%Q|JCo8_mvKADe^`6q)wDmO zn2PW8F%HhYGp&_uXMRktpccS@Go}8gIu{$I`7k`Ia|+Ci)AErfE!rtF4K{neHd#6j zX$c+t)5Gi=)AL8Mi~hl385-!5Al7RI1$jz8jkkr^M58<{4x@qFc$?h)o|z`|J(xvxdKI-SP`%D*IFDCu zCLZqhRN7P}`8>CNmLYC*b`AGp^ei`(6L$WLa zhHO86!9p-)`NbJ+;HB4-?QefDcc5u!v^Nk>;2R(6!+?a98%nkZLVAM(CZd7tjAD~c zoSAylwqjLvr2vL&6gL)nC5HBt$bPhM2gWF_HsyoCfdiI65!xH=?3$`(3e(vw2lG^X zc#%Xp!Gs#z2E#uuORTp*0wuMe-Tdw+{MK-zP+s7Z-a)>NT_38GkRc;!N+wr177%1` zz4g2|t1jo()^^qT{QT1o$U}d9SdNG47&0ZvT&H_+`(AnK>1QMa9qxa;{cbt!^(QDZ z@ZP%~fzeq7VKYkc`tB2)jNEcIAH}z_J z-x4M5g8F0E24oCxSie>eZhCurVK1OnnZ-21`TPqn==`exa_eW#pv-kY!DH_B4=tyg_95Qz=y66JTn+c(Mm~z@EXl;`xU_4kIB`(0JkG>uH z*&luE2{7`{)pn(^F6t+z1S$Rek@3$TncTTJ#A5zMI9T}2Z~jkp*i&^5jm)lCv0Qb< z@5kW<@ufa>s^O`vtp&sT7U0|t(Zrk?l^3p5Y zz|2UXAN)ZNERNoCgna+|Ka!7s{2!rq=He0ah3#va!2S@0GsN^R^3u2$(7vJtunuk<4IVbs zK1brh5SuQ0>{Nvkhct(PRDWj72#7Rrg+QHCV3yWSS|@qtdfmP&G?P1duxyjWCL{`^ zaE5cDGeSqaPC3KfFhET?JYC_b6P=wPmM>o_b=WiwKqT_1?M<=`8`mma8LX|Xgk)5; z6cifCB2tWXrsLCg8cP_4b3atftiXp7{hg=RJbs;IJq{Qp{rHYmm`)>3_Rdsc zgY1*YnlF`sb7yB^oTO=ZVhqwHAUPTz>Xm5U9!RwBLvHD z-}4^Xv~ewrrB=(;S9}OeuTRPQ-hZJKf>B=qY1=nK$Msjfdbxb|3;(9yg`>A@R+SXH zb~nlupZl7eeb&kPefb+OMyYDzT^F7M9oQe0!w=seC%*24gQ~licjJJ7$n1XV z>F4Cacf3uJWhAV^R1A$-lb|(;0BX2xFlso$OISg!fzcVr7x)8yc0Qze+~R4rqTrv?yKT3P~Jj6}R2 z8)QnC6A#)Cpfvn-*L_#N6*R_49q*K2`R)JR3@p zjgSk@f2&Gb|MX|SQbs)uxAG9_apIR0p;jJZLL2ouLM&pcfj+rNhdIqUn_V_TvA^d@}w1w8}o4Dx4-?pT>Sp`Dh|YjQ^Pyo@pkzp>b|?N88=g2!9myu zmC^ngsHnN}vQNqfE_t8EQ)LX*>3sM@m*`>I)nER)mbViIlLMG|c*B5(XqV!44E3&4 zYTd3Axz?Z>A#TbFa9~HeF`n%}M;g$O6b(230)}v}`qEeRCctq=9|0q-FX$o0=RbRy z9@bp^|6K|R`zJuBW0U!7CWpu$JFOog)%B`5ixe>Xx|v%-&tg?)t!OUisRO(iTb4K^ zsi`ZRzkOinQi>YWqDqX;8iI#t!DN?lJzawf-*h>cc-cNwmk|y_zzh4!<&`j=2>Grk zIP!V0lXplvcI5d)0tZ)%GSN2`uoW>+yM`e@LATBNM}bjYq_+8BF=hE>%41HOGHmxiD*rg&}d)xj*KCb?n zYYF3lPd?sG1h#_q$*Z{?9o^U{waT7-9oQHTfuVAktXtcVJe6VE7&e34G+AR%O_{gn%Wy(qj??n0$@A6jMO~wiWvVb*e@>UJ?J$OSlXJhIPp%$tl3mJs6Z6 z<`Z?CXsBjl;wiG{?3!b;1K3dQXh0KJ`XcSG!T{`Jxbt_o_=;B=qp&mC5lKso5i%1} zbIn+kaN;b8&KmfWOl%`;Wk-L;BaoP+G1M?_C=Bkw*bQT$j&r;qRRk@?p-MRz&5%rH zmfEJwYvTEjUh+JQVV{6rwOF`IqOA|30&&TyI37~}P{f%0D$m1uIVf{(=C3e>Hb;LP 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

    v|uNe4?mA+4fgtFiRLpOBQ5k) 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 V)AB>(4DSE{002ovPDHLkV1j4GMvedg diff --git a/docs/maps/images/sample_data_web_logs.png b/docs/maps/images/sample_data_web_logs.png index 3b0c2ba3f12c0479ce5f99d1a6cb6b5f121ba707..f4f4de88f199213581142dc68d54cd980c58a495 100644 GIT binary patch literal 505363 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 z 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 $B*3?M8Z9J^_2LR+M8P<%tTw5J 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 qdz?Is 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�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%0A_xf03rH+lI{!r(mLv0d7E}YCy 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
    X5&P4&I>r#-f~5 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 K@K~DtVYyFnca08`zKV0j0Hgq&r_ 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

    ;Jnc>6db>W;Hv4zKPK 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%0AB9Haqi71 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

    !~Z>)k(F@n6~e#@5$Wpe=AXg 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 z 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 literal 826359 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
    lF7Q-=#0;!0_MzgQR!g_ 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
    >-lJ2DTsuC0TTEgK6neekrC&sC?V z>QeM|!rmFRL#*>bro{A}R<_6p5JVI-DT^1aqg*mPR zV<{JlKrc1IQ-zLI{_=!bWgJ)x4ppzrO+G*fj7IZ-N0+4oZrg@Hx#0FR11rd>cuOs^jdta(?d%7@ObaTOO8ML5$K|}R&U~z(W?_p zFI_()77sZ2cev+*5@9lW$jkhNO9Bj{ulS)luGZPX^M_1$)lL*!W9BSzxUuaYPAQl>GWamJ?Ber!LSx;h4K`S_48IR#9l9Z-q>r<1CO z1(9S*@V|1BLAV76YIaUc_Am4Tjmx?l^I^EhtNyYA_ib3upc(HOqwfy0cz{+u{|2lH zh1Wo}T)=vMuJ#NUO-eJSW8~6+6QrIP(BEr#!IMEXF3_Sx!GrwG-fhJnHQGpmBjChy zivn#ZLA;M}j3N!5pJ`8Fx9ZAV@@&PL8SHBKPO@NeK${(-Rn144lQPYSl~=AJ-g3Il z3}(M2TYb|`3mC7<=Yay+!I&}_Zk zd3F{)G#%j=}W(jT)?}G@z+I8YJLh>I==0B zBX+;g1^;rx>eD%&W;U7D=v zO~cW}dU<3WShY<45wo|LUt7~w(NCrSU@8u#Ak;(bMNAdlQ4Eo&?Zq)g&}d2x#ID?5 z&Qe3_SGsf zF5K&;6X5cM@+psNvWq<3%#(yb?_*!)3^;f$@j`6Eovy6sJ2Gi?q15kj`-1CxWb?LJ zbtSK}bu(5eMIW^lQUjRDHS?@ZSHRJ8bjQR-|Ly#@vhj07qwbc}fn45sBy7DGpYyb* z$uV)y%?1-%3v=0qkPd2yXtz$m@=dujfxUHEpdkGnJg-Kk>~Mo+SnN-r8cVz_BJ*7| z^|=NZ2Ji{p_<(oZR>3H{KVMqY9wVB5US`-Q{N6HzFL~jQ0+D&zm4DJ&i zDY^vUQcc0>!Rbp2UcK*_h}fpeD-G4U;Lhy-xRRvLtxEgu#3XoTgXNbTAe_Zfs=N0* zie6jC2m7P_cU=6;55bl2b85^X+4hO7QY?>{?8M*zR5M&RaC{QId8@E&tA@(t=uLGD zkmgwVE!Jn=^Zr*c>Z-H`@{4{IogDUby2mIcoheAgAE$p*0&IjlmzebU`{?m;Ol9*J zZ7waK{t_VdO(MuwFLd_#f)iz`_iu&{Ng;j60Pjgx_~?hmq0wQFF;-Kb%bjGGWKV<;3CwWS24E6faxVKhg9cyI~ocsh}>hdXs z?3Ll{wEn8J6Xq+${2W#%J=`}sX5C0Afh+%^mb+JdW6F36#4c`YS6tyUJOjwfA6c30 z-6p0E&(Bh{pa15YpHs3J1L<1ybID}q{>#k=|EoT@14shjl#GX}q+=Yd$=_oarb%OVr->PF%fY+*rgtB0~$I8#_vq!6w( zLnUtbhf6e;Rfl{J;yv1IlP11 z<_3~M|J0lf0AbkTBYEnAk^h;iC zQv@<2^IU9+tm^V^%KgeV2=IF^NV!z9a9Z8~;S!ySsQC!h%pu4c%v9-Bb zJ>2dOL3&2Yk(wc%t!w(n;qWY;;cn#EAQw%(@KVnzWC!94hSA@>$nTiCQAva)QE&?O zW)}Va%6wr`IRJEkv+5dW5%}#yhl*;8KeO-uz{tO_ z9M~1`PFs1vG&OrxjUfhm`rrt8c7U1pdC|cM0O>{r#{v%%igT5waQ_WlZ}L;>V)}n| zMT|yqZyTFVxsMU}6$b6Z?m*={$0NTQvD| zIw}(x9TPRtL1yPpwem7>l}>Ru^R`vL7d5(m#d?(jQ;nLyxPn&EDB{h=3Sz~NmwbowCzmCD^YJ0|9to|)7{%)xb#9lO!_2zHUj0&^x zE8XP{MA-weZxD%eOL|Xmva+}x3<<6_<_H9Lnt~MD)?m)1u!{mSVVt-hoNP>#43lHX zLRltPrUkuj9W+pILIm*#kqrZ3HuiI0bGMyA`8qH(t8S+oCP5o3_2BYwmY@1T5Of?j-q5o% z!j8i|ZWpd()tD|*jkF(tFb`LfBaB@RNs=|tBi|W60gK=j;D%Ke>C)>ym~K->DQQlRo_~ zq0K6%|0W0iR}u{d3!pFblIBR)rjI4L-uqpj*j>;15|3HG(0M!4`5NIP3Q3BMoiXsf zxoW*T442_1C;Or(Mq{|3@Y6SSU8sX=K ziEJ^g8eB$M%)IK@@(_&%Glj64?~)BXD3N_)eizfqH0}o3GC9i~Kvj^YacpMANX?tt z+y8EAX`!27=g)q<@KdF5Zjq8Xun-m|DX*R?wlrytN3+i|2@}%zLz()-^}NJj5Na@T z0B@`>5$!$)%YQy(+9w0)Vgx4DX`16ha^_8aa9}Kk=ub}U119J)PNB)mr07U1@Kc~e zApBy$k9HkJta0%^ZmmzD5u>(xyw;Oq`>DcuZfPwLkoXj(!P}&_mGR4aQO=t6Z$psB z!htTCB7I)VX5BBJnH|$$-2SX11uRvRTMamTSdamw^`sIucuwXzrM| zR7!!Xs;|SfwZ}l%rpmT1v#i-lt9v~)47R)=j92^^@ugsdmBc`^8Dwi|ZN#nInXuoQdmZTVdHst8?**nuaq z@jcWiWu&ppHF4xD*P+b>zur!pPJyR8<14qWT}yvI<#cE=Z+vRt|3hW{?{_iJUyK*q zXyiBj3V@@gQ@F)4fMCFHFvG|YLzh?%_9YRbH@!}oupo*N41PpoH{=>9X2>Awl0Hl8 z@vEZ-44d98t`7@V@G@heq+Y=zjBqSW9aZ#v6h5~G>E z?kAnStoP-g@Q--1A5=24(#ZU$KXJ9~`KbL%Fo?FMgrfT;)W;K-NH<119Zi3Gx3%a? z)_Dm_o#J7eEzE~E`p7tGuCGR!cnEu5^mANlDz2^R{C2nb(|0RT^#B3$SWA6+S9(jv z0ZY9!@px>wx-%wKXhH4&X8Jyrduk*U@TS$CM;f?>i3eT?4&qJ)-FsaVK&cZ7Su+8E_cS(0C-5{MJ-5{OP-Q5i$ zp`dh1iFEf2-QC^YIYZ5`e7k4&?Emnd_lbM&@A=Zi8MS;ASKfWkUSpxIq~y(9pS=3` zq-poDs4Ad9(bUY+c-a&>;=mbQrane)j5HJ#xDg<8^`&Xjb>%_GFI2ihfNa zOzKDEs^-0$&KjHc}cdA>nj;`+O$KaORa5U?U^j$Pj0;vp{j)JLjjG)#q z!Ck#Z)6YNG8ViKZ`?^lyc@Yqb=9edCUeNftv1m50DXG3w%xTz#QW-UU?MDu=J)n&5 z>|*r{5sot<>j-UNJ)_+t|YLU92jl;c04X@0ff%kTpd;rX|6_U+uvvUCqK=z+<#8r1Us0io(nZ?`A8nooG>H$~u)OqOJoOTBKjy;s7S{xc z$V2R|fr%>0Hir6K{8>b$x743;U)9gqbaP#q3cO9s9(!= z7>3dS?))?RIy}bEgVow4ubWa#Ugj-jdn(;H4fBKB8~b~8nxyj^EM)yPyjBXZd~TsHZ%`2Uz_&a?2+cZ*v>mx&P>tAls$4i-Ve? zAm(-aRHiWe=@({+tkG}v{ufL(OKNe1pNf?-=4ZjWhFZ%Nfs0r*IajCdUr84)>OZEz zyc!?ZVj&eVz}2h=WP^0R-~_^1t)p%glCv@5J&)RCN{W0EuLQ%R^Ttb=wbnaR-dsY& z9w$YbVNZiSA_MN|_M16TLzDill@`<<6sOySE9sYTY#Rf-7{NzBB z2^%_WJt@ZUC zzZ11qCuNrrhqdvn(iPyg-&elIL>v3@-0J%^k}-2d1r&S*{=Ttjov!2rrM_a-dj}DK zwzMB(xtG*tYxS3h{5;@Dm-#EW!XavPVgH`9hcFThql+~pSM01-di$cX1|!P)>_>Ob zW$apQBk787d_}anF16`@G&NZhdi zDrpiAUCi9P_m_Ae`qs{4i`rW`vGAlP7UYJz$f{c)YBcRrKO~^@tS8*YeS#b8f}KM- z(1o$+XRvg8$;Dx9(h2Ythj;8ozt^cqXwaNQcGfqYS5Y?U|D{XUunqS1uu=4JQMP+U zHd-)4b0N>Pp;gkA1Gp>@S$kW2p`Qp=H%a?nTky%BF6C&hTl>s+Zqz`{E9L6n%yi12 z_XxY3f+AT_SIVUr@xa0!7}q)PEW#j zla1%vim7BH*G7a*&aCzRzzTWIyRMIk zcZFQZ4(W(U>y5Ft4*&5^k=M3NPA>Y``%U4}yeQeoS|m$iJYt}FI0HnYO?`}?F%uWH zn$GezgjbsGe`W0xZYRrLEp?342qF<=7ynk0Cgjo;ULN=vE(fU1l+=!M`Rc|}kxOC# z6R0&}j;@{8IILN<0bo6bPI|$KblRo zHrB|lzdo_26%=(D5it2j@5a}G{n(12yxB*iyRG>DCi8NYtBw2IGvNkX(h@`-e;aNI zEDrHB_kGr)d^LGU3#-(BkXy7DB#Q8|Kt*8A6u8%8>rX0nOHp2K z{O4kzQ)Qf;Fs+5Kxu&B^EWEtNiJVc^$gRnSGQ^?86`IMY>{vZirigs;Ws+U$|9>l* zOkCpeVjkYBKI5Y*>*Y`LD6M8qTLBb>Z|qVsVM*I$p+P6Wr<{4gq%0x|r0t}{VKnt)VgNABe){}> zSpcR&yx9|58~cv0B#VW|$N0N;W*xK%b-z?!pLFS8^sCO`tyzpl<7tbP37m}aLOng+ zvJ7}@BYedo0*&xjYIFn%NG(-S&spA$rN$2%tL?QP&bzTx)C_}8de<&xUV5lIk0RmN z%^zdS3$vBjT;^h68j%YCT1SMee9T)dz>~aOM1#AzWik3U4bPPjOG`d4@1|K!Yb+U! z(RnET?uX6qM1F5l$(A5x5G@Ye2PtQGB+uhrlC$@DrD#ef`d0YXR3yke@r9HTfRioVqijO> zpEkm$5N>A_HydcnyNVD!2MC_$*tdp)`k$Snh#UCAyT1PWXSTvgd627KRjU(oPT_7J zn9&IijcLQTt@iu%$o^-stdkjUuw;tLQq=(Sjy9>np635;s@}Bn59*TE$XXh5)i)_C zi!1^N`y=s_SbVjgsN`n;{^NhN%J_ZlVcud-yZxf-6o-*V41YOoF*vIRz1vg`xswY? z4nEfn`Ec*)Q>v84@#YYolz9qyBYx(Z_#d13A5~teO^V)9#MhfUfn0CWBz_k@*>ta? zTJ`7$DLGm7sOEW8vqA)Uj|QC-fNSz1-Ua=oQ1kA#!HF|r`W!}*LENm?Ewu@MQ}f*~ zqibRFty@hTCIqQ#qW8rq^v8S`#tXF$0XDOi2CF*VNGgFoi%lPrJbPK;ao8tE$`H+fIEaR+m zfSo%N6%kMsVl1Vn4ILw_>dvmjX6Fjg=+T_Fk>HXa z8WBESD8B_7tTFKtBY3nBLU`l^u5QEX&|WQi3Q3>Tl=yU$14w=LwYp3qM8tn+CWxP@ z{pU@)7Pxpoq{Ayq7CBT(FwR;v^cpdMpvPHEEc%IvCd%I;!7;>;Oi?+J9va*j|KE{(j9Lc0Oohk;! z?0t;e$OU-U^?;-8Ie!yav`;_0R+Z`Q!_4p5^8T*|o~wolk%TvgPwtD!@*M7)e6Xi= zq2nR39Ovriu8=TmVatqO-e0yvddJ>tW%-xGh^a!ARyynytBG-s4i(!DMk# z@LtU9=A(#2+REy>IfaCS54C)jfXlaA0pK;(u~+po@Gddtm2W-dwexsC4W}gN8JxVi zN2u3*@RV+5y_JF2?%)^{gg>zRg+(`BSf;22vxb~ZaC~ZMM>dg=nPrE}O_<46P)H-D zXn%lrzGYV9pA9+}zJ;=7i?m31W&r+=SSP$6(uLsCM?TfT~`w2Vmd9+Yb z|6*~wx$eyPwz(K8%@tSTfnr|>DS6PfU~KYXNA)uCq{RK>zuoRcj?Nr=M}pX1=o~sl zHk)gC>>FN+F|CSk&Yu#-csRnzL7M{58YAg-7UzH`37W zN%>HR>kW!P%w^Q&{KO#V_;MENe5?dU&X2hqyNK(fu2uws^Oq*v0NE)DL&QByBQ_}y zxcim-?N}#uHSz=%mRC!OG3N@KwSVzno;Ce~1GGYA(?U+L?P>L)V1`fn?FQ(Aj(@j> zQd>aL2(N{dsAq^#?6d@-YP%H6kaJ1jr==L^b-+T8aORwCN= z1%>~;)Lm{W2nvzI$fE74>9L2%dy5_K8VSMmmtIB{#t zM5T3hd}HtPIYVJ<4*H{fK`*<9?0Knh!r?;m&e^(T#`wWcVzBSARw;wC{hbM!UNkqX z51UTVbxgXRqTq%7|IAEMaIN1%W~IjTHh35qFsaK>Br8z@#^Y^;b8lq1mTIqm0;W5; zw;7_jhRw#f$O^!?V)8WaD0|9*;)x{1pH?4m_j{qz;S&(ehBZrd3paRJWYD8n(0;(QR%iirvHn zvtiU6uXT5#MV^g%F#^m=W09=n6%J`VRC4#A5-l&CkjU|M&*g{*c}8{Le|t(Wbg_;0 zxz#k}0+(DfTB|7fk<*e=5jQ+7J!g5|D1o3M7ya36jxD2L`onWsIY6{+Qfk@1mN542wY!IGm2s9cpjAM>he%T-)IZDB0|3P6sBs!GI z{_W{#XQwJAMp;W*#7cjlg{-5QlUiO8ya``XIW@E;pcg%_5ccP|amuL5<#Vv`;^s-w zRZk;$)g#-h8qFBUtT`03UjDhO1S|9p>8a3u+Jkz5Q}%75WT37Rvc=tQaGijmF=w{L zqbEPoo)`R?LAAgZOE(&hOxe!l!^qcghUH1mrYF#*_BMk62ZcFoZ z^2^${awLO*96TMR$Cg-J*mjim;R^0mAVIJAUvBY=hpE2>*a{5At#Vz>+G`(J? z8uBGXsfjo@N%tD|1qTo~B;bk8N0ar!HvL zsZC5;|Ief+8@7czuZRM2w<77lYJBe-Bj{q*!$S3Yi&<7OqqQx56c;$@tI#DRX_Grj zWtAF!Wl;#|Cj3y6JQ0p!l5{o3J6U4-S_;YxK28f3M>L(Co%u{FICHS#ap~vuaHJL} zCqJI{gB7m+Qz^1Vxv; z)9=-ItWiy}YrvWc=j4n4?%>LBl~v(^vu_{nvlYH;m8um>z~)M4zTq>P+vPy8sL0^D zIE`9#ZC)JbufOv)vx(q&lHfbd@-mZa?jyaoF+icdy zuf;$2-wN%1ZdktLd@=c%OTaR5s3bDtRv1EKj1nhBeQV5u+N41J2^cO>%F46UTqzf* zB!gn|^P@iOlgRLa`{I>W>&tK&bCo3e5#6rAV9^e=W?>+?qV}MAOG_r3Q2x)U<{nAm z*6{8S4!v@;55L+#vM0(0RceVqPo5Jw3U4>uZaZzmo4BX>1Bf4tULMU^M*ySS-SA>Q zKF?r!uR>nSu|B6C6Clh0TfG(Mol%z#6|bPS_)S$OUwfG}S;SK<%XDl^+s7iVOw-J| zO0QmR&hkq;X~9NPGN}9fgBjaXqLh#H?nz?&YT*$#amqLaxf#T;W}1F`A11Bj6@kwh4ITUCIM)wW5E_$L0?q+2~qBzd&Iv&X<> zU2Nn8qWGh!&0omtD@|t~_P%t5@D!k;zL+*Ay7ZsT#G`hK3Sl5)$Rs_L@W~fx4|@kE zRguMyQ$RhS#XZNKOCntQ=ZSr_{};o#LL%%yy`prxMlWGaO6H8iX;)<7+Ez4rRImu` zV2ZeZ5_51INI*+Q2t9rOGl+o~Tb31aU{qX3#bClU)lWu)h)d_?<5N5t44#~=G8Wk- zB=y3xF5Pd0m$I>ud#Vn(`Zl+cX*@ZWsM{g&e3Z;Xdf!(xDpxCyuWsgT*e&VmYoufl zS<&Vn#Xz`U@j?WMyhJo+sVCxrnSlpn9>VvwG3shtg?O!Um6o`X5TbCkieIA4He($~ zc2`itp(SZZsd2b;Ls-TZJ+xgosUYrN7in3e8OmbS@v$+Gof_jP8M!NG#E(Aff2S)7 z5p-W&6TOfZYV?fssCnec`M3TiUX2v!&QSWC(FE<@#E&q|Q3wShN;&X3Eq7%25QNrj zIXGioiACnNeQWTLHWcn{>jeJXZa^#bp`_`wSyr$O(sejFwpY_iV7D7>oAA7tF>_B^ zR2cEZWR3JX$3Mp2C~l^iQ)jrLC>A%MwY?S?;(1XWS)G+N-D$1zF3O-xt6x%Y3=_9A z)NA?^m^v-KVoP1SBjrR)MkBA^O!p(tvw1y`L8T(ZVmx{0lN1hoayhh*IDT`B=kraI za#MGF!*@~VtDk?07M?UxHTVbI7w!SLG1nGHvXY+d=^g2?f6lJkRXpwH6t_-Tp2DLPRa%1oy;N^HMl# zW7EPy3&+EbBDvO|tI<2HsewJwG)`y09ic0+@3C_(y7(D7_Y%^}_tS4rb2Fh?a1W&~ zO&F5FzTt1)=#%I!G(JWZ&YiffhC52OJeJ-Uf*)Y1SDG)BtmtH##O^0tI%ToaLrO#P z1|D=u4L$9gi8K*Xhm;N{-^v}iLss@vR`cK!oxpibIyz3~MLT|^I-E!p&PcZB$m`?y zXQKt=lm2Wur?Y@8FO!}hR?_Vje*CU>@aZ{SAC>4Ycoqv1n+BJheUP(;D--+d8quD)B}GE0^j`a4L+x3MZy;H}$OY^=Yc1i)nX$(_Zk} z{jKeV%L+g|DV5T#Fo+IL0i15&1U1XPYUAii%sQ1Fv#3RyPzi=_1!5l@U?&vy+K^90kGH1}ge&--z4urCBrnM1u7~+y3MVSraM7mj@8v688PBMHZxhS0s|JNb*~J z)-5RSiT@<4>`Oz?l6{dYvND4#=@PV@(25~KblF*W&)pkR=OfsO$kj}=dA#cO$RpeC z)#$ZF9TMVy-Jg~WycStm0W9e!%8AoE0wE&>(#oM{if^1MEPr`MxCbEc7J#x_R$oqk zzC4%HRON)>09MVO%oX!t@bdA5^R*Zc-kYBbI5sz^_cmUMz=25t-VgyOW%T)P?WaKE__=7ddNPh9AUm$TCMV*HwOHP+eH-Cj= z#j7G#)!flJrM$y}XVn}FTR>bIP(#7v5B}U5KZWviXoe!ms*8Tfti&(2HVVWU0``;3k_i8z+B_p zC)#3DI#Uo}G?=D3Fv*70z&W9K-mU75Qv5_lrJvFx{cDHYnhIR&^_yCN1$o4o9Qb3X zch#nBCyjFs*4lc1VePdq3AG4=7NnqQMgN#8N1W(vjwTfyv|^N9t@XWN0te@>+LFx7 zAEc*vwR&$XE};>kg={Ien0u{%=>th2HgPnHz4dOb=ue`G`qca1gXES#W8E`^>*3=C z2+tf4#J+v6g;DjzcvJ7L$0=>7?*j%9HH?hU;FIZ1XDo(^dQ3ma{Zqj!OZ&f3^rje9 zC8KqEGDJE=cKG}xk&^*Z+q{L4>5Sp>SaLfpWUZQt9o&Vdmo3B;dVD+l=a`IW)_2)w z3r=O9YmcPj4dD9=l|O_~Vt-1STNK+jT9j%PX#DzqP}#39q1WqixZ|wty)lEq8@J=X zqg12HVUjDB->%vf9*X_Fw9Y0oxK{y7UnTL$jD+r4FMkP)*fe%vTVn`P!bbJIiIh*h%CgepePYFV?6i>aoaJMY+EX}XG{);pu zYI#x{GYVNiOq=U3emaA*29_l#*zPU&(e*ixvk+ zOi&DQ>GiCB zvSbr>zNz?(vzE2s(_FIgJ#A(ie=y_7Rv8L~9`_TQpyofTyd8=4@~&2?oI7r$kC}Zt zY8G|ZjT6k}w9-Ob!ApSt)~~0-R&B&nHo#5IGNhpE1eYRe=uc`m64Tz#@FLUnKZL$s zrR6;v6+I5oCq;%raxMcI#h`b*)5O_Fc&;I*hMSrEb?>^84wesd!&OUX#UN`b!27+F zW5Ft4s=%x6y9u8T`V)o8AuO%dHd2)5YS^V=`dW*mNP8cwxL)hqV?xFIB_9{r?kZX} z&^W`2ayg-Z`h0aez7cCB)uLp$kSY5~wfmRoWO&Ukm*O7tRAt#%?dDxoVC10&|->{;EWD-?p^fMy;%Ia zfu!4Ot*c8?d1a(0OQTCIuN60i3SUc4BTr=VeXx?fwK=&IZ5K&D(!sn1y_mrLnKdVY z-+f!+u%|VR+FC#ern=;7w}FiFF+8Gv*e-b7{`C(vi;@tt%N5o4=X7K=Hxi}U7E;dy z)cr}8($E`3+0R2!;U!>V&^1qm2|AN0+L&tX;TK+>Mhn-AcYc4gLzh%!DRtv=lLvD} zzcKEuBFl$R39VseWRcEN?)tbnuPln_G2Djbe12qW44FA>Kw(H&1#pe3h?cLD8y)ex|()Ugt}uSUKLpCb{`w z;WQ=Ojrqw2IM(^^gahz92c``vvc@CQr5p(*w7%yCT{lY$@eMhSUOa{g9k!rWvVl7z zW0A1j$_08z|t2zi|R-X>$OWgKb zP1eb$`CFw9*&UpM4o3EMs&|d7I4*y`$$&LCOf(y-ks6t@(>L|P1I~V#FIA`+AqNU} ze#DNfS7xFfma;aH23^b7YEwcumKj!P3~B|osvgyJkE2QbfF<-RsNw65!0hD8oKIDxlqN_RV?)sIa=egi*f+JiYzJl3NDUhy4LEEAyYNa~?zk zr==qS-DUBgJ}bfn9WF3QGY4zta`M=St% zvJ|J|6#Aa$C>~-QRtW3G- zVi1U{CIRidTe2`!z4TvfH`g3Q%K`bH)%rprs9ylAtirtKfFdLB*2{??$GvCQyIwQ! zv>%7dC{rKS3v;9~yM6WpZXhU2CFIPTm9*g+-)MGrSa3>i(*l5Db%^{9oI1v0IDw7u z;+4u_br1dwY~&N>V=0Ann1}0t5BMqki9kg*>rc=`P`d80YExqRo!WBZj27Z<1tpqNQSp3 z!X)xXPvEvdmbs~KjmFz$acSn=I|b!zi=OvSw%dn8(nQiNHGqOQh5jxky@1ogY|L%V zaSj(SNcB`e>(KN&&6=8~ z#me@_6<*x#S!{6g(U!7hB(l7*&A?b>qNQMG>_^am?J3;4m!C&n$U6tfaAc)k3pbVm zBj_EeRoS4{WL%#|PA73dosmhARj0?ro0;S-{990Oa1e}%n-_HOcvpZE6#Bce?Pt+} zwlKTc>59);itf+Pmfq}_9E}arCEp2Zn#4Vd0~$RuSu1Z${%7_-C=8X>4n5n7Ph1Wi z?uK}I@q6S)rNtK9a#kzKy+yY8&WhhHcB=(Ald8TPN*Q$zm3;mub-FtcSe)?|(oj;( z7R)g5-R{4;@B#6f6Cf0&R#HDrq1bd-k&bC$>@nuO5SiJcq%QbO`nn8Y+!`HW4=%^1 zGyVP2@wa+Vm=UL9mW`idy5im{iACdZ7fU9`n!pA)#7j4Cl#Wthn>3dRgWtQKoKm3Hq-l}Ugg1g@<@e>UR7wR%emUg+h; zaUzyW#Vs)C+1fMx`4S`%^juatlfi3);M$B^U4vdgSiIj$4RZ~>A@bp+d9H?5zw!kg ze>atRPHnFVRl{7@WN^P?&}FXJ@NgJ{&n9KPDtI%Znj#)ncygypI~PCNBN*G|sLw_JMftMuf?03WdYyNa=J@O>Kl-=;tbjIkM8dNc+qxq{$&O zOP%&n38SjTd>8b=6LlA(=@fn+*X;Qz!Eh$Ea`jk=CB^Y2nr^)aO;2SC2_2(Yliaxj zyy52~9C&0V+*h*VbG}M$_jqwmRFRV3mbKR5eW!QQd%lEh`yt8p>udVit&rMNd+XX` zy^Y?_`#=K_8nGRDa|w`_@#^DfiRTcH0m4b9B&&}UL<<@}`9rU!I_Z?3sw?vvXRJuz zOqk)B_U{)jWzOD4t^A_h#@Q=xC0Zb-m9>t$wGTnFA=c=V5e8C~_n3MoE8Esbe{ME` z?+uRsg2CJA)Q5toms6mQl!GTu-B%Co8rYCp>pTC@gtb_sD`Jz@9h%8DHdi%D)%96; zKj-B=w=-kKnubln1 znh-8ZP%bfbWx64lkzaemB#eK^Pvr^fH`tEiZL7HWOW#zZR&_mwz$a*LJf5-sofAmmjGLtoHEPIN3N2q* zk5JY9{`M{XH<$0eqzm(6E6T$1MH^YkPswX*toF7t4hJ%3dJ{2*ZYA`BKTa>$6?Naf zHZK4*G-pEA4pRms)JNuG#R?ytjd}qOhn@CU;iT~_-2ZT@E){+y)N%0Dm&>%*KN(ks zpX&*S{;K$jKl9wwSSr3ih;6Yx70cHGO*B4Ms2KG6S(mC1&)bqFgkXDhAOOmMWakWb z#S`t<7GQgdPmZ+%CxS|n&1=}gaZVSjak>I6QCU4MTFcJWg6|kzbzKQgww;l=dR(`< z#E#$TAWu@CVs%%yS8|^(FMZMnqUCSo_%Bo_LDOv-=C(z0>c9Y)OBdbiL+$P{>=|yY zY;Ns>?<}Xu?Lr^`a;{?f&_kTE0B_jrgaNvY!S2lTEGQg})GAfoPNTvI0Q^483!wrS z7njq5@uy~>6jg8+9lVgK`2=KeStC5fmvMcE+g74=& zABKLWi>}w(s8#s(Fk$*wIseni^S;zy0{OG&;$B3)NCSiSQ<>f1Q;wQMFa_sF%HHb{m+tjR0U3)=PZ7y(3VYSa(>(A z$(wvMHOtbH@!HYp=8N~)dT4Q5JxRe~J zYNmo;)rqVhx)R{Af7&^^vlk1~k#?fctrLHJ!6>8N?Yj)Pf?dg)1EP`Itg3t4c-zLlu zPUwNli$7B<%d0r2q$djAYuxF7gq_(=6maAl@Rnu9fNj+XY@{j zz1LvtZKXUmc=+?)spXk@rAHWj2x8Ln0oSb6YNP_@Qgwq_1mZmCsyfHr? zeOji$f7B@-Vv7MGWi6mgH5n})xLY-+mwj1jCjerW=fJ}su~Eu>vv+aHInej`(SIp_ z3cfw$1TZ9(<^){EK5Y0%+Yg?G+_!_sog2Zu_}P(ft-*at%ep^X=Pu=C*C+Bc#yc^> zE~nK?c{!6Hp$B<#=oFuG+E&XS3U`vI=CWe;^Nj#vPXr?Xo+KH1xzy>&9!Td)RUE$h z<=5gR;6cDlL0aD6JQ=yqtpFhZ0@6k*+4)@sVvaAiBP`y`bIlHNyY+x z6qMw@_%h`-xBdP1lvUetfbjxaqR7k5EDb(qZ|>yqTdr z-+Lw3_Ao(2%mZP#tlr08Y1XMMa2&kI_@i)g>EjV)o3ehTaS4L0{dU zmegK9zwf0FFYc(rwVoN9@rCGg?;ZL2;Sev)GKFGlQ>|$l`c`5LF`IYW zyz=WL?5zISMjSTFJ-RqOO{I9PNt)l!kM-_5Na5F40eL5TGvei?&mYr-ahzSvS#{7- z*p8E_o}39|1-|UMndpXI6iI|tyU6;c8;%*y^;LG*!VotFoEB69Tqo$~9ER#g9>2UUx4{>712!M|G4E(N3=_?#gKX?$ zs&@6j$1zYY4iwm(+AE*f)6ui5R6XPRw}1>O$w_GdUMg+Oj-c_6CEQRdcQoqrh=|e| z^3A(}28Y9{yD*#=ETdM;Qq{-|*U?X%1GP+l%UzVtb8;Ta0+7uPjmxlGotYWP~kNPO`>e7YAH)GV&v@HMnW%?K}e& zQ&rq9J0T^{53__So+pYsKd}!rmwnR~>)zFhuHm9Dts^$CsV`#1BO@QlJ#d*ObOZI{ z1KwN-`u`EQ1|@#u>xL>P4SUS~A(5D@Ik8!fRtZ#kaEz%YSeHXuMjOt1%*ay+0H2{b z{M~%+gcO;=_D#Pw;%2E>^oyZy62xEhG%B)^N92NBY1gM~#RewL$FfBrzug38@lC7s zF577zf_-z{`GwO&xUna2Qw$f=I!uTE-RQP)UusN~u?mv`kF z5t9;-0DXuPu?(ew;P9xiF7IMwrN%xDB}Y&Kz!^r|ZG%{dkssv!bOTk;F)L%VrY|`r z8G%Fg%OMZ+Im-PdiujlOWUh8g!^i`*lW7logjX4MQYJnvGwT^I&k<~IMR0F$s}sCD zx7;;SMZ~s#Iy?P+_gM2xCG|F&Cb!L4OlRZX>u4T>$>PAJ?PMf)_JBC#H(h?_;QP?0 zLy}<2z0n>`NM3&z2-?@8{=p?!^KvTMsbAXV)i$jfRf?2*%vo zQCeM`LzRX7cD|U&x21EddA;<;nC|Mk1PWeUHboF3_FI;_y@m02=5>=IKeXn*8v9&e z^mg#tOooM>p&^JGpHK~csLNW;RFwjyFsjwYOtv=IOkQwNRS>XTP+I*K$NSlyHS>n+ zGVkd<>~C+o_tK77fRdRzF4qY;tu}oevB_9h)^$OkZ1H}%@X52@e~oUyUunnr6SQ|U zz3a;?NPg3L-sEsdIUN#r_r31d;D02+DhVWbqJw}u*J9pXMGN{jkj3h8eLMkvcQ1;p>W+mvoe3pkIadd#`38(t9C(Q@ixtn?Lh=Mi$4HlquCy1%;(fgIMD zyutu$c~28Q2(F8ZVCt7c3B}hJ(-)~XXlkya4{!ZRJJM0ZoG5$!ep+Rs8X!I;+RDY+ zb<{?DB9iHZ;nq8!U&7&xqk-ZN>>#V~(C6;-{2;RgZ)d=2Ola^{tlQgewaXxAck(=K zjc&%QPwR+l4lbFXfpvro=K&9uYrLmYk=_lQz#edbFxOJ8vrI>7~p-W`Udl+^9n?U+a=+!yO6`R z4U;V_BflEL@=2l!!kU8SE`8P0{fMMOD2mzSPaA6R%Cjbl{=m+ZjnQV>!ZmWxO255n z3~>F3G}vjKbB8}7-kNCuyJ=g2!S`UR{>^WogS3#C44$F*Bw25JzH*T?8{qdwPH2;n8nJLjr z4MHcalDzP%eaQhYsSXu&lJyN}D7zRubGqtbIN~$n8pKSK0CkSry&tbshUyfC?*86v zXFb%*A8t;R8vlfFRH+kIC;E2(ks=Fm;w$l6IK|EY^h^nt<8Q{EU-KtV3%s%*OayqV)T%af?^!!EbUdy7a6+0~}khLx6`?&g} zYM|j)ngKP{@o{%jwH)4<9osp(x8pFz-z~Me2RIqt1^O7jSCPGvP_M|BN z?<2=%AlC}i_=wiRtm(iug3wF4zS&#vWvgdSskl!dZnrrEA00qJkv5d ze@P*pn}~oj-?o5NOW`iwI&{*%{Ojdn)y1QWK=A$D+AU`Z^=mCo|Au`D^To}Z+`_Ko zZ>mDY2*@=at|WgKwqdgrs;yh?L%l?OuD!>(^^COEV%uG1sBQR#CJ1toqZbF_ya>AR z2tn#R@~L=&t(Z!XvL=LpU4qzV{3y~sN*C2y#FUTng7d@H55-?~TRyB&9EZ|<2s`8q zzUG#MdQ5TeQiC&4s5>}2cek7S1v~cqXVga=qPeIFaJ=e3n@{%+z5hTzCZD)ho@dgi z)Hrvr=k z1MN>UQ4P6HGwlJ~6~eWUPj0>M6UYmUdzR2fT04s}4XMs8bmr>pnDMPe8dYfr-*r7_q6m*!p@{c_8e&DRw!`SOPko9{>0q z^df5I|6$~Zu8Qg#65P9(+V>6*bCzepT>QWHCR@Uq`Kg@Oo&A>FFQe*7Uwsf#EQCn7 zLz3L&uG}ar#r1FzD$Lw5;eTgXw5BKzQip-L0edSQ?td^|g#klj*|g9-Y8dEPE99p1 zSod|V+xFm?%nAAB+^CCwM=a7wtxBl|!S_A9kt5_wwMq`#1(6c7}{ivFp zcwGtN)0VfjM9vt(Ykv4iiq@orFlz5Na5`Wv>jB=f%f{s&l5>;#4j9djO3eNP1233c z`Rwet`ky;u0B0AaCfT=p0}m&1#zI{V2(8WZdE}$Hne(~4fBr@e=X9=lx~rd5Px=!{ zRfcz08!Y5IhSxyHrFS9XeJ1Z?whx>6K3R$YSxXyuLYbv;HqV8-3PvDL10JimD3Uij zs+k7te7j4%3?Wy#TAj(zlA9F(!WKiN4QEr&+doOp>UKEW10kK4Nc476TEY<@U{V!# z>+%A&icK@-`1i}vA{oRcf!yhP91H{l$AcE3ZxdpfAN16e`r;iBc3;gX5aUG@lCB?U zliut+PQJH1!owx6AY!@AY8XjypTJU8la~<$86X4>K~6jxvK|$LGI*o!Kck-O+CIKX z`!Yf{)HWb}(dtf##m?4TPNHfs<)la8bF&UTeakO>5*jXG!BJ^__3iBbV`p;PSYkl= zZwK#3YpuV&CKN#?0Vd=jz~@G{RCjS*;r`As=@_`_TLz8BbK~sMkUhhDri2J?yR|+& z-BCI1m1W`HuX!$tR6CkC1gv=`uTKI+Sf>JC(9wNpvCkL)kXswIsOmSAuy|uv-Iv({ zrro=o{z)Q#n*y5>qvtgbX{m@6o5$g?&9SWC2x~RvR1T3BxgRyub`^+w86_TvxA5|y zXEw7g&;=Ja&=8{pWKl%SVX?mFRQ+ETiFIMq0ZIAO@=#T4_i%7pqqL1}i-VK#L+kj9 z))c~u&J0)OZ?YnPsq0Z@PY(wxKl?29Ctf5lIrB)6hmzhwFg-I(&Ch*1L(p4#-5Cpg ziF{v#{;&I?n-Ig)g%^2#J<)lhu5%>I(gx0y_&3-xYEqhAl&U`W#J@_FqpXv%j%=&p zYru-}`2oEc;)^rf0qk;Cnw#ZEz~&DWd{ekd}tyM z*{GN3d@K-5pUHmOo*GM^0vlk_OOa z?{s}}ORCUw>y;IMRPT`6tW9`NiJu#{Ln1?`7e7k*nqI(Kn@RxyNaGLACmD?;3Xds%?a5Z_p$Vd#AD7tY){h%6;AUXTTODI`d-l*(W+B*T zP5KW4flUJGAHDlMqO@Jjz?Q!CV9@oh-gG~Nl;T@}d(i+hKr>D6aeH8f3&nY%X5Y#d zlf{1LvzIhpm{piHdw2C*p3t{GnzOMsC7XRD@Zbm`Hrced*59+)O4_-@8sisjkDL-e zuOrQ*9}#_nuVOaxs9t$^>qRc)H~nvh{|m}MHNW&*zx^-6g~2W+T=wqSm;U}Q{!;qx zcfQ3;`T!|Srn9F{r33r-1JviGQGLu(w_&0Fp7*>bmWt`JrUB6236wXz>5Z|es!Qf% zoX%`({r=EH55=-I!FZXk{@SA-PYtF$d-t-etDAcRq{k+%(9LJLZgrF$8Zi;E4v^mu zMN6od9k<=BV*FI9JlDB#Zep-CieeSTnD3rVXJ5Y3V0!lLr3grK<$b0374gF|1>sj0 zN6VRRk^ZfAEb8bnERpDsLm;FJHCge_tyY)W<+)zvypnVmiW_4mABVIq;uS~hQhPqT zZrAI&$TN-<%q7&rOv23HAGFeLNCS+2Dzv&hoBho?p$JQdui>X0#k;rnQu>YG_|5bW z|Ka}(_}mlzU^5>vm+aG2o-`c&5S}Aid=;Uni?7z6FEuIO@x|HW*Me!yeptC~01)qE zQbOKQShri}qG~_+(T}3&tYvxcA$;9G9&$l#IU_DILq}&9`+l$?BZ_EycYDYRmeHl* z>=6g`>e9|N_$kGjPS-W^7yd{6Ey_|tLG7i+UrL(G6-Qvm_7Izia`ID@*W=A7bCItb z4i0ONKsg*sT}|iae!5Mt+_rU5)|*kzn^lP|oxnsw+@FpNQy?_6m=`XQ5KX&|h0PdDSyyf{9UQF9?WAg5Iy`ze^yd7@? zTC3|T-86Ndq96EiWEPFzTqT~%7rzl_M%gO#DkvyGtVOv1w=Po*`jWRy&tuuIs~N-6 z=uBUwKDx3I8xTv;N?$AU6DLlC3A_%Fyeq8xpMCZP@PPyA-S2)!RrYw~k$2(}@ggpE z4u;X+S=_|vYUi#y_u^&YErA0#A@M#e(LepCp9K%fxJ?w0AM@k4xU3$t)qcKo0>z1& zN3k?_A3Vc-_uUiNf}6q~C%?M^#Wg;3^}T!OIf3Ed```a)xWDPa@WVc>OQ1YSmBNkT z|IglgeOZ=V_nDF2`^xgJy#vq|hG+sH;Ti--8V#w3nMG+{M^BpnM4DL|K5Dd<^rTrs zQ6q^IDG?+{pu1s+MmHMm(AB0~mdQ%*{e0h!8<{t=vZ}I7R%KP+sLFfqIVbFnII;Ks z#f}~JgTeFde9!e3QTpR+(D+GqFxY-W8E0`(`>0W%Mu9s@0r^UHO9qdTf3P?%j;>xO zuX55U#?{Ul;>4P#IWIP@r~slYs+8-NM24lG(KWzkf%Vlzt=+Zu_0LHNP?rn>SiXg3 zWZ*haTuwBGr=EH;tgrno*zRO+xY>!rRL=P_(B-8C@)2xkV&ZBJYXGhCWVrqbWS0d7 znXU;XRxB_uY1-0!7@96#VCK-oc$v8wm%Par;^2QAiv#l&NH?B;LEzj5SKi(F7s3yV z0LHb`h?Xl%#Uo#6FH;dvSzj=Sl@t2Ns1*&-cB(XlMLTI$>a)w5YJgux(99ulU2T-h z?@2WOhXCCF=#LJ^>g^Q{t@-dW3n<80lS?z{(L*QF$&)AJ@Vw(EA7PcdCk^y<1BmBC zMqOkOoPOnd--|;o1k>+nXLY$9pvV5i`hkUj zIA;J_$b9tuuP-_Mw7bf!^`!#n5N>5mldG6r*0jR3+Oc+D#6O<^yX}#wjo_lD&|jeH z^5x61iXU4Wqmyzr_xq3RN(N2SXt!1pV)y>P@4wip2^}XBm+s*QPryQTP zu=^BPgx@t`@+HmpYS_tmFpdk6?xxyq>^PbP+dX{E)%bt$FaBlhKKsKz{DWw=`bLnz zh>)V>aS4Ct&XGl_y4y6e9?BwG_ucLrA&ute=Th&$Ann^|i3<@+2vL3TFoQdx4xuns z$JvN2FV29*Dh3JG&wr+$T0q!>#z(u^`ix=L!jk8$Y%GXZ=ds=I7=e{xn3v{}ZK~?I zU7EXnPnyiJs354#d3b4bb``fdbsUZ-kl`51HM(2%mOPe;9YGvU>lhYG$^myu^vfju z;?6$n=%IOtzeu%?@yuf?RW6BY-}ey(V$Q16xAdc9!Z|}A!vm+=T9p-*i?jHBA2qL5 z)d!3Mj!nm@bJi%n%!QfA2lzsg4{W0grt9bFyKouA6%o(v-IUH||< z07*naRKpeeCuw5L`@!H|sl;ss-0Nya)m_h_gTo6#PlrxkYYksq(->FKB!Y~gdSc0UulZSIr9w-u%kS59BZGyqZe#>Z z?PuFi9ZKBldpr3(G;{%dcq*)<)&JG?`T)(lz*Mw+fAWbZV$68h=p1fjo_PGRz+0?? zWs1iLkeB-U?Y!wT_2un?q*)Krta8I|+a+i}#@RooPJI-HZi4*+-5SI#(r4R+QhxO_ zvsLeWP1#s8@y}J94U;Rn=-#@`F0sY#$ zOJAC7N4xb*Yd>lfs8QgyDX_W*e#{)Q1ddo=pRq9CJ@I4Tf8pdXpl1FJo&@^}+?$dc zb-kjm@+N@Fu8*hzRZlen2ylnJU#D9=3ebR;j=<@wFz zX#k6LFb=W#SenC@yUat-^Ys9zeKa`5x^xW8yYaH-ULOu9Rbc=>J{D zZ(JvLpDPp;O9bOaf6*W2oAZoJ0|3`5K!tN?d?7uuzcsBiw5Lyp7t#n86EY&)_oZnp zC$3B_P;2Vi)}Qucjn~z3b0?gVcwA^?JYqog|;>%Ibuo!tuSy!AyL4C|BM26g3reT54T{EM+tqTb+JdJ9IHzN^cHvQk!68JqIB z*8NS9Y8NqH3oW;jqe4R;$N0ZiJkwRv+uw%k#m_Nr{POPxHrn{M$fNT*0r8( zzV93`Gcypm}W%lB20H{Ea!Qh^#DpGGO_t(w0~Z@6B)a*X_0%99paI&YR`eCl@cW%!~C5|*nH zS4yeQsrt9RZzY_d?ku`wS8G$+-;u2fQ9to$y3_jQT=n5=J_6ZebAlvw>0sB5YEfOI z-T&=4vW~jVae)Cb0;_&#u!3xXEIJ>wV9}umf%I-vy+Y!!w&%B()#Y|zIT{Npd|a4X zOCz&bytme+E`WDDH$+^4*!A(h`y{NDa0e*BD;kR|F8&ylQ5WfBW#2w_G;}JS5{#E8 zwesn8Ez~G*Zzv$=5g4CYLa##y1Zz*@vz`O8fRA=`KjtFm{R}f_JyoE&=s)VTbqQg9#GwW!1G6!gN(VBLb(BJ`ev_n7bp?}(bBCF?RqqNZOppSYzau82L zUxyBHp$wp|j&Xv`3q9T}3dhfrM%>xSN9mjB2kTKuzu`tE`)pVLD*FCT^1W6Z^B0u; z=;KcT&D+9NjBaGIz9%SDA8t}SWK+Wdg8+~VF$U9@I#&PA&-~nIgI5M=n1@0TJMP)c z$cI~gt7p2v@cQdNkL&&W_k{}N^0r`To} zH^?dSGmhiiT?fU$^mCtk#)3Gz@B{qopU2hBTd{EPUaQU86va0(XJ}nQxMl$U32p`9z>y zY*@Zq53ki2dxbMQVYV?>mFru~ZatZdwxzi>1ej=zGZnK|h!s3*XtBNCdys;y$U_LZ;725J+viBjstAq8b$6Czl=dDY|-F~ZI zUQD1JM9vegt+kFa^|}DnPhFl%Q*#Jgl+!@_^x?jYgyX?Eod63%<4aiPt)xc=1n(`A zuA19?1(7W@xu@9htGR{8c&xpV%_=xoN~V)&jt89&}a|$wWO)Xo=z92*E{%A zzx?<@>N|3hVk%oQAi+HGyE=Q)zTRn+`I*#DcGgp|)BHD)33_ZBj0eQAeF%a^HaWk| zbdLfe{r0Kv*SjIyaV~&Dtpcvr3p)+buMTghmKU3Lo_42Y)Z*1Ba4#v~7}pvqlrJr) znTPJ@V0&UEJ}hM91UbmR^$n{P&>#QtAE#Ge{c-wt|L)&~b&pd*qb9$)l`{c<#-Ev< zj0O1E8FP>5lII}6vrZTMeZ3UxR@56z7^LgLI)I3l7^iJF8vJV>do+QH&+{ zffzC)mFwI&K6y z4|BLY7*Bw+9njbMM!yobG z=*q?+otmzT5fMl)V0|k=w6J$j?0lhz>SQ%$Fq)pYx!5#spO*{b1kWL z*&?_bbYM~x>~#nEM<0Ef&Ye9MfP1DNu8OccHT<=|4|dnoBI0FzIiJQi+cbc5oU_Mp~(|Ns2QsysL6U0u$`Z)6@8m9!2&a3EWP zdobzQzxrYFpi&nSw0M`?x{`hIg=abF{wpElnn(4*hQF14l^@+9Zzyzh;bOevayA}R zeQe~B$Kf1@#1`v$qX~RV?|=9Yz8~&g%*!-|b|t<1=ecJ;A3G7Wioe1R`(MBPF70?X zT+uxH?B}9B71FP#cP_Ajk3RBn{F&C>1G>q10|36i?;ZTYf4wSxRpo0xYZRza;Eqs0 z{7VCMvGZ8`<{i&iuk#r1XnsvI{tOS1@5c1W2c9eqFm?V^4}(EP6jBi(CJC6JE>I$- zGq4%vkGOZcA7w(i-F!CE=T>;V(O53Zyv{c*%S4DcIp%tkXm_MDNdUT80gG6)-`ux` zxaaL_0l-@l*ycI}ga|>;EfLlq7|(iK3p}n)XWSe=-_7;(({7tW0rq(lf4NA$`Qczu zfp4Inj}J5;uxWK+nbmn$a@_7FkE;7H%3v_Xp>Yb7Xg3{XdI>i+O8_}4JNqAgDulkt zGasauR<=CuKavF{i=k38D^0N)ed!Wg{-ch$4Y?Mz&s(8@LPZ=3%Ukd7n+?nKofhsb zErGn>Z1P(C8U^+|1@eJVT3l^2`R)1IZ?0f@$0x@}!(EqeyfeRtu&HqT>wo=!r$7DE zKTZGU-~5{Z+lzuAs9q01HHU?_bGepdx(UmCiuLarEc2>r8*dsb@#)3P zpNqclH~2|_+FE3HvIu{Js$G@$ZrrdA@^UTN1x3J#0`ReNw!64N)oqJLl(3IoskilD zs0Ogw0&kOsY^sa8G$`;=7sDdJD?>m0x4R%sXIJKC0(0-}QSPO8vH0#rob?fdRS%Kn}*9Ci(C{)M+MAXLjeTjUd0P zzTSA^FZ)Le`DO-m2iuiB2vwI}E*>_;0jQZ$`7`I^yRq|dQ;~O`ZB7^GcfO`rn@Ao*M^bh_g4oD3*GT8|3x|!VM!*jS$odke=>BZ+M`}vsf z%tCrx0Ej~^MAA9VPc%Zelu4>9cg|f7Z8Uo};j~>a1`P8M12di!k zoBMam)971ewF=|r@#Bv@nm%9=J03gqI-+doYeKY`e>FxopE^NH~)!&NxS;u+k z<_?7!&X_ZZJ1Og0hf)vw(s5)xzQ{qh9*XNZcGf{RMV{GYKMDGWZ0ieA3pEPVC~#*f z;9Lan5O~j;Sk^J>=H5V z?zIo#a@)gSuC?{!R}cf@Fo{X9ji<(~j*}ag!S-$17PQ*9Uud%vqU4-6(pLYvO5v}5 zcn5yleE&)vq>aBlv0mTlZaHj6SW|KK*{ufiROV?!E7g)fa(US4Ap0fHjB;W;_w|)O z@bJ_4A6!V6KX@xO;%~mS8=tvsd9;qJ_&RFiFuHaQNI5?~l@4?xeBDl^ZnZHFSUN3X z@)pfoXqfaz_^pK+1s+Ta0Mwxf#2op640DC{2>|!r{(Wp|?Lv6Z3d;|E@PqWv{@MSA za`saCSO4n&Vj*oV1a-IK{*!<5N9jA?{cg}fMR#;$IL!jMo7V>SxcehOp6>1g-Mi>- zRX@z~mfHz}8Cvhp&P=CHl$RA&nz!;{uS0R$hW|*CDGr?VK>5*;D=67LoK?cMb@*L? z1U%nq9gQc*E3l_#{~go>&l}InZmm6H20gWkJS#kuu!3lAoxB5jardzyE$vj-HRQ7=;tP= z6F_><6d)E4X&KzA(7BU^fmHw)>3nW71Mi(IoEYD}D8Y8Pc#szvvJ0VR3hu=y&~NWo zMK8%}-@8Ns-y3PJ>m_B^^4?T;f^j^Mass21PQbM*jE{Y7jFF~1UL(ye)$e}FR>e@d z`3~tG%7wmJ7NMl;flkJ@Kq$|RcDI9N`Ysxr6HA~vF~|CSFX~n5vD0rYYiF4!hdCT{ zgtN8Oy{x&rj&~Z|?PO?WVZ4VtsBjjbF6-hwMsji;*Ttexh2FXB1hH-IVhcQmB8 zhj@q4{Ti5q?aTlwc)ko1_I<@#%{|BORE_oo*~r)!pdS?F3UhoU|sJ$GoT&V1zZE$g&43 z3>9+^6_^8 zhaOwEx_RP>$J2lN%fF1aYKf$cgm+07695w>$q8Di}Bd_cxoCP zjKdkViV}49fY)nVDP~2oG(ZboL1L{G!<7tOBfnEe_fKnGt+RV7*H)AN>tP*ap?*8* zE#)4!*qcdMvE3q3wFDPzb`yOLN{>olxqdsTi|M4l+cfRmY*lytl;x@8GiU_;S{%m+ zH-d!HiuDhyK(ilj0d)^ewRVE$rYU)ZTtQlaE8Wd_4IZ{_uw8Da*nJAPxZb@83DC#!eM@T!KP zkneK5!+Vd!Q6sC~3{RM3(dRdpJq$Gij(H*b#+9}|1SO5HkyL*NE>9Wc(xwG}v2Bf> z^O0v==Q-(gKLqFeWdPJJUczS%G^P)SmtsM}e%*PvjrQKCoEtsgrjl8Xz?~Yv^gsGX zzaL<;mde+b1GdRzhqttzK7INezRVv@eH@@!9h6f9(@!ANz5o7)aiFJuz_tFiKEHV5 z&Gh5fei~y)aQ&56z8N5O$>XV~o(TW%rvS=_hAv`7{%{58{#=>`=nr=$9AtX%(EjwT zZ+-({{-?pW1;n-He;I)LM?ZQ!0DJlQ$rH!0&VD}px?3-Ub<{wiNxttj|FYx|m+_(7 zB=amIy3qIGhaXChaPX)gzOHIqJkYvax$76dcr*PF@Y}d9f_(Qozmr~g{@L|Rzx?Hw z!f-?D@bk1yYyR(i`*+e1mi`}q{ONjM=`;T8Uw=9M6rb@Qe)w@13x4BkUyVah-}=?B zqbxJ+>+4Iu|NZX*;{QGFVctpaa4@PnNl(z`uTYi;vKqei&98?)cdgYeN4oU)_p+_q|^Q2gfWEI*2MJA_a(^JR$((_Lq zjTe5eyxe7?`Q+S{^x8Y;u{P@nhxT<$)(R<3!puaK={ze+&fwB$-QqngcsC|2@5kg% zyi5%uM;cP){~J^$@2Xf=O?vC;iM1XoH?OAQwz1cfT^)b@(RF`Rr&Bof5U~L)&$X0L z7;xKl3sw>x%~*pWyah9~Dzwek-Apk41j2h0huWC<<6(TrqwKCN&8OiHe;r_Z@3BWy z|FK8XAbwsw&}VA7d0h~-uKQY-(}fE|>BFIMENmJ$e66O)-b^1<$CaL*)b0)g57)78 zcN$FVsq%Ak3%IACvudG6fd`BNj`4AJ)A(*Q;b-C|UXQ&^3ECx3@9ODGM~^?mc3{pB zxj~JE0>(I;^xWx>0g~sKzIQ%X+#u`Qe(b!ZYbzBEnsx_5mI)3YJDCQt;?liLo*Q+) zQ_t4xbLmh1!+%Ks>p%UcsTZYcZh;+IqIrbVpL~?YM~A~wTHmuxoE>xc$k6~s+)3xz zDovo#9>nFYF5Lw<&LYr`0-ywQ<=Qc4+4aaFf?R@!Mqdu3$$C zDXR6GDug&zjmwuTD1g#;LRXHB;%G(9t-yw~@i!4ba{P(B8znrZJPd zRlCsD^6s3?txqg2={`#HGKYX6!lnluqKQd0&^DJBs zO{R2V+P=1r_20g^=rV7w=NkFtdPcq_0olT3BfWewu3~^tz6N#NGin?Xn(-;ziuLt& zLEu+_Tw?_-r%TX+dLI67`{cJBSfp=#7xcDXE;{_+uYZ_+^P7*-|MEZoX1 zS+Cq|t*NbR6AF6$x-WF5e=4qGmqRo*t>7a}2H(i!>tuGV#!39;B~Ab*eItjUhWYRo z0+bGti7zcJW+k|?s=FoX`sE7Nb{;_5#H5}Nr(Az@)ejGQQ&8}P+-#wLRg}0Pqg&Q= zoNt}|N4vOk5X`cjae8C{AAtHR_3%`D_tK^*wr3Btd(EIRy^AgqOfvCN^6=`Kf&ANW zQ!|4_wU!sbj2qk1;@oVS8M&DDKmKg$K6Ek;_F0}E4Yvh{5AIJ>(CE`EvmD&g9=_ZM z`nuDF(U}m0qFe>1y)@viNr1ifKmaIP@H#ecHkf98+uzM5uEnoW;69+h&A%1*L!;cC z!U5J3W9gHRmeT$MhjE|M9Rh;WXr2o)5G?OgVVEH9@Wt~1cqp0m;YxU1Kyxe*H zcfRqBsCSODk@9ALIezRTdCg8k&<|NsVCirF_U}T`{pwd=zAoTytCil0)xTh?hoA~X zg|$6a=33_(PZ_8MIxF9d<6>z67fP8R_Gcr?Y$vW6ScGOZV;tmu0T9nIQ5}|%&FqUf zC~3<>iUrI-hT?}-!ejW_7XSqJ53*P1Q~SL;6tKJO2hR-f+#ub@kE0 zdt|L4%l95CDM0VLq;52bwYzIuTe^OCD!d1Bb)jkopuG%db%OG{RL?m^j8ZV0wc2pS zv^7qNyPMzkiGRNHG3Ru7MT{){vOV>YDZm%0=l3PB<*ZkVb0>{!~rec(NXR_ed%-=Y6PzwHBj68~W?fHw-(Iw;JyEC>7 z5XANGTEV)Sw)jFX@e04zg-Z$E+YYc73@(6hiCe&LuXj>^LFH?K@fu$Ew>7vp;9qs9 zrhRF{)ot^gbC$`Wq}kdA0eb&Ru2>u^gP5x-ah$)ZX=fg#oRXi{TiadYbg>)L zzv@t)Ro|=qu2G;yf!(Ko@3stGOjcge+*IbH&CDY&6%skXb`*+LC9Ab%z*sHbb0(#_ z@*G*3!pymgqiJ|_3YQ<8xUH1S!#v^m9cAZaCL&b6t`aihfyqk*;!^LbJT@x4Dc?<* znkH}8nx0)qpI#Va(nESCsS1)z&))*sjVN4M5#FeiS$U9gqO(XFUXCZs;zCaT?=zF>FnuKxKHU$-B`S<*k{W-U3e@5WY4FGu~968 zW&_xe7w*O29Ck;8%nHxrL+4IoQ8b$d_U%vYSTX5}L@PLhQM5FloET46E?-~)8Nc>h zWF+IoZa{xjf-;Di=pTN5ZaLh|jE+u({4g-koAwX(hr(z-*dN(~3zstZ_*B?%@!jp# zT2}eph6!~ufc*-9#Q5wAd>i=#_AA&VU+#lfU%*%EfBCaNi@dD2b#e@7h@ecN<&;~? zU-|AUVJ)TX5rH`Qcjo6sHu0J14b}I&-g;kUHODb8V{C+Lr7d~*J&B)E71<4m;_7_N z(Y(})7g%s`I4JT7MmdfLyBl#Yl3mMa8R{_hAY=_6UVHUNxJkMciyazbSf+*}`v&)8 znfOxb8yHN(lk5bu+bZMVI3e%ZAm}ZSTbdU2v@X<1px<4BS7ufLe(S?WxRl*!i#4x> z-K2p1($hlE(Sh|b-UUJgQ7|~c(R-us4_3hoyf5>Nk$wz5$8ayBwfjE6+6TR_O8Z7> z^XyXg%PxJq?;(c{>|($pEj?Ix8QQsXB>Q#G^xVxpyk6eUPu44H%zG!0?IMdiOfIl+ zVm}_cN3L(SuQ!XQOip7Q%y9v~?H=YUy*G!fCk8-US2++I<1p3A;{yPSY?m3G&bnzg zW4oiZV)ae?E9&>=?C!&>%maL9o6=?G-{lqFQ{LaJX(d179G8mzyQ2OZMsJMZt&zDU zc&=U_W1Q={FuHTJS9gNfVg+Cz%Zi$n>H$N=Twx)Nona7Iz zwYNS=({qcgsJ5dp!7yF=r{03x3g9cOUN;E#x)p#lw#m;R7GSjEws{4ECS_wBqL=Gn z*|xg?=&{|+v`o^Hm^_DG)j88fAE3SXEuk+DW+p^A>O0ytb}xtKB?7Bg8_Vuz*&JwGId%V_17# zoMbB(!1(}&+8pg`jPE9tNy)2aT!8OcfJper+0s6#s7cGkfxA zSDLBAnsNb9p@A(?EEZpyS-^T@DHLF7(TQTzunNrxEhtK~fKqHpE!->xa@Pn_+zRy= z4`h(R`kO7e7QaS;y-xw>!v%PVi?xDtTZP)a-+~*|koPyg~6;T^H#?vq!I73Jd=>c38ExwkIvY1+2A-c0popcABw~ z`E>BREd_7ptJ#9OL~-kNH??NrDjL|0_JDCRX7vF`G^2xcCbQzFW%ib0Et(NP5_y>O&bG?QW zzy9^F(|h=#|K>NpmHKguvqWDD;0y9+`GSV?zwCg^vV#JoAP!WB#f$aV|6adNtBco2~)AK~7EMT9IeWMx+wM4+?;`IckU#R&7VFJ?3&r*68z z&~o`uA2i}VIi#+>_SDtZ44|rOfcbEV5sf25`(}~FhC_#sq_4jG+fl9-`NNklr=Pt3 zTKX{{$@hQ%e@N~46Q0IAz5`zyEr4C_5K+8wabpJgQW2@0#b;%;Mdaa`dF2v8e-2M= zr+?@t(Xx6hHI>))Vz9pU?SmE^2g>tZ0F!Ag%Z}mNiGFNJjwAX<%XW4lOasmibk>Jo ze-~Ij3qh-PcZDpogU9zyna=k@x~Zf1+i_jyF|Dz6lcW##k4JF}ft-G*TcG>yaR}!C z-CSxAv_c&X&M8q><|XUvf*VHPap1Id?TSN?@9h}(9TRMKzWwkDU@r5x?!u~T6?0=4 zaJg`r-$>`Ej&=^g+^74Gx^!WDiE|;=(jcm~I*|EXt-}%ZJ`QCJ%9q;VX;(((Ss=Tb z&pV$k!zV*`hhA}=@(yyTV?I8UM>)4I1GooO`3Qan{bT0~*IAP!He*Wb#H_13uGMRA zZbB&Ui@VmI=it$81Jx?=wtaq!H+Pcfc5$}5x3vn_i?j9F)@$?H$-V93RM+Er&#(3D zTKB8--L8I*KlW%kbnrkd$X7q#n%~yzlJB+dm*?esC-JTo=UVqm-nH)<1!@%7B?`#C z*8@yMJ_An@v#qf2Fz%M;G@`p@o|F?b%8=mlF)6ClsDNw9BLKXH%ajIIgH_X4@vkj2 z(n>r)R3z51>ACc0fA?m3?up~+$iaSA-8Z(^Y^qZfDHFSKu#zQgjqkJSdnK+w`=yb| z^!A76((w2^TWzpRgUPPeO8}H5l%EEC)VpHsVgZ{X*;4AgoP&&2p~t@vVz{qWxPQyu z3#G9FIHKgq;B_TafQka-uR*^$|M<5iy@;Ew{}HlK7QMGt5f%dID4;*}Dsfegt%D%C zy+q2>J|b6_4gUo31!vM5Z3O|hk)y`>aH@J z6%-c|q*pV()mHFz*~oWKM+?u{vWbE_G`XBU9$88UumbAA-OTa6hEPnKk;aXq!cyp{ z;BF9*Z&1Kt#iyaEH4St%r3+dd03J+?O{VVth7kBy>pKwQ>v1as;0|57+O=$lUW;RC z=rVs}3*l3~ueIhIH3)l4A8vQ^9ltd&(f4Et5W{g;{T|*@RceW96xf3l@VpY|um?M2 z;NAJ389EkPZEsQbbKCbe4cw{Iw#_!;T=(1fr0*3AR^4620VLCt<5ihun#lW|1B2;R zJ-yb?>hYBMBOnZ0+YcY!&sOcObn((?I(z;S!dX5TOl3;Y;h~d9;=By`x@;WdZ3H{{ zDv%2c_iw-bPTDunmrk5Kkp_B^zW|3X!lTcQE~SSCn$!OM1EkCHOMhQ~@Zv#$_-?H4 zR^|2de=L?Wn>)7)OpJ5r>%_za3k_{?;G0{TGe}XNMmU^J1B9OLF5+e&Q+a1%Vlw0m z4-Jzr!&gQyc<79U3fvdty^0sZ5vEW9I8G;KOMl`!rbH-vKKV%?@6O0Bk9AlqbyeRQ`g>fd2BB1 zF4opSh0XjbQ&LAz%~l z```kSI~R1CsXVPNv&cAeNKH=80Hm~r?5`}d0x-L>%0dp$V%lFHclSLRHZ{Oz+25XX zP!0lio^waAYg_JKZRcZdNfh1j3P{O3Ct>_nW@No0&PJHP|M<5;*eK|?P$k*}pQBa1=% zx|PMW$b24pCM6Z!%lW~VPhHQk+e-Tm^)$z>V|B*kc>Ii8)?OSgc$IBR^SN6K7pcjVe=(`1~we%VX;k;OG)e zFTi1h13_a28wD71&=p7>%1Z~ptA4qE@U!=E9b#dYL|o$q=Te3ce&#+QDkz}gKc0KH zl4ZoR!YZ@gD~;KRLoQq>{3%3h0hKMYu-2gQbGRaDgaNm+A|8yF$c^Nue^h;H3AiU3 ztshPa7JsE?mW$%3@A|N!Laz*f2D+E+Kp^iV}*b#h1 zzIB!_(eY2W4A?K|@1n*E*4@%4$5q&(4#YM8RqEvS=MXSh&5uwahH2_ie652tkS6;6 zlV<)!!I|sFbMth!f&}Mj7FZlG{4VADti*F+V(8t!59)LsJeoTCS?$FIL1$Z2)O!|M ze=@e3PLHjm_NK*jg6*5VSicW&s3{F5R}>y-ZK&q}*63qC6xa{;w#9bqanOU`oI0DH zdajp4e*kjRLK?$Qdt*~u+Rwoy9cxo*baW)0yEKMnjmBd1E$cb@uXRgi&NPasee9S5 zx(>=?Pb);n-OU8YS~H-|&851T5^8a46u5U3@O@}!p)bz=xXE|p-qrecO5XY=Z@s>q zymvS4JXXdotjl9}Bbcpn#^zA2Z;wvaS)f~RLGbV7i9-O%)41_j;JPLLvSqjjRclR+ zYZ6W>?4Ujq^BnGp{NQ5v%xZJGh+Ds*;kVL5#}1|wCywDtp(|aQUPaNt zbx}TK7^)re44}i}A_tQq69u?{{4j$XomXFbEnUPFjo^lda&>oir*Gib{lI|(SoP21 zTm5g-!9$1A%P)U5lchrZU%vTfxPkfp_kSN^cJ( zT;_21AHDi&x_IFNE|@qZ4gcTDyU)M)VtVPt7XbFJq#yj?uds;!2dRJXKpLBx#RUR# zCi2s(KmI%NX-MDt_P0as$ppLipSCwkX4!W)qFfvpZ?Qx=&(EJ6CXD(c4YKx|eCir@MAFzE9G0w}XprT^Kws&f90` z8O)!yMtwycaB-P;7QI8ud)udX)azBNj1Oa3|LVBX%656P`u@(_C{ggQ4#7t7!*ibX zI%Z*ZVJ`+>3B#{E=|ukOpV_}SX(;eeue)bBOKfc^b+>7-WSiCFZml*uulMc8l&-fD zN-`H5+FP2^zMeMD?!vW)3u9y$-3=9D0SJ9I7A>I5YW;HdyY5Tu%PxtG41GgaW-d^# z&-sgGWLhF&=%WVH@?GjLwzO!S#xN^tN75;Qh8v+WJD0E7c48x@7H zDgqFe5y7GYoOL}|!9W0B;978AODGk(I87NVXsxjn!jKjMJcpI#y2^tqj4kKsjU2MI zxWKV-gSAFI1e;}&>w*!CPyp9e?0T3hHVmW@co%4IMkwLFtKt3;N02$(;#5=&PmEOn z%GNLBLunF1%cx+mREp@eg2anP!!1xo-rm4$AY4q%;Y2?#Wsl9Js>Kr_r+O?!(%Umaii@9jv z0cCGqL@>mU-u@0O>-y^vmg*4_vrwG3!2|A60R`ax&Zcy9Uq_m}(3_?%oaSIFgy_L; zd<*9TXb%9$Uz}lMcs&9q3m}VY+Mg{)zTo}zo#UajruMyK3P>}CkK-sSQ#(!>5zF}Z zU9E*01s+5SI8AHin&;x$JhPYkxT~wZu*$t$&1=@JA`)appNoDD2KS!xto$wWdoAI0 zqrwA%K&Xd)E+E5<;k(@gOO4P0Jna3md2#x&lZVscBZt#`YE9>+@MR8Ivp;(!$oY`Q z{PG`}lC^Tm(9lo->)-j#ci1`5nnv;C{}+Gpm+7sy-b~;5&Ud5ydEDt}ps^mPkFtw~ z0WJ(gu5E@XzxR9J!|J;wfc!uE^FL4Ty!&o?`Kw<|i=_E6VEZL}ssG;h zz866I%J^lQrKS|$x z<(2jJ{N^|Balq}d^tG>jBdph(p`BLDG*Ik|c)5y#i~84{#%f(UC<}dZX(E04=_l#= zm%f-fI9zTDd8CPS=J(`NPsgqRg_t*g`HS>3!2d@cemEUDawOXJ@kbwW5b;4|qGn{H z7A)JZq%-98@;APTTutXJXJ7p5bh`&XsJdMpfGI}(X_6{&oB#p8*OOX<=EEkHz#o)Q z-kUt1yR#2N5YS?G`85ORwXQBFHfdrs;$fg`_;Sw!q|oX?p@Z$PW%m0leeMF)GLwmJ zWn6G`XN_9G0)t?MMLN%pYQj3k^D0aj2Q{N$3e0yn|B%)LN+&t|^I#W77z}a8&u#~G zv?kuyL-d!60}EKRqhZC_74H1$#pOybJ8uQttxxXF?P_Ja0BY-+W9P#(?x5yyE#!hz zM`e?C8)Yc!=DFCnB!``k4RtSe?6Row$!Ol);&^O9U(N> zf93IdJ<4^COgy+_fWoAS#!_nq={l{$X-8OzQ0LbQTN&Zn3akZ8Xz??_HifOCu zDfNzse3)-FSe++gsYEE1j|=Mnv8AIA_@CqYQ*mh{c;9+L+)5@TZe+9(kzdxaQR$IQ z&(V$|fhpaWYjx>WpUzF9 zm}7l1*yW(Kp3nxDMOw<7X4ifriwoWO%UwY$&_&Q>M1@IE=QjW`VkBj%ph(kl?(_j9@p9f9mv4+FKAQ0VHouV>7c@(>A83o_;E1DW(OCHBx%?JiTLdon5&7y?1OhcG5JqwWCIDY};vU z+qN3pw(T^wZQFVCob!LrxBK%w#?uxPs*)b z7t;u>q4nDcE`?G(Ng9^7Ws6gM0cSc0X$=s&e@=n8DWLp8b`oo0+UF@XXO4@)g`_73 zOB}Ot>TCb$+W!*@hfW2%xfInjVAubJ4&Ulq5^8335Hd>R2&ct}eosLZUWE2`XHDwc zwPzMsGjbL%48AuAr;k{;-|#{8B{J0YI{)HhEdk|@K8ASd?Wco^CW*J%DF%n!Gk?`$Qj~zB>5Ngs&~Te0Ae$^)+2yCtBM)S zG&Qt=BTUDW0Ni;Vr;6duTJv?p@ZqR+b5!_TuPa2HRi4gP%btHcH%cL;;ssWmJAv6s zILTpJC3HTti~7EXf<>8Y(Ukxe2cI@BTDW{zka6fNT&x!#1{=oCm$-MWvMTjm;B-@V z4`qnq0sRvTnRnA-MYE?>@3fxR;gfcp&wM^?PaJ@1QJ7YA1@0P7SlqGz`4;0+;T&*T$em4+Ht4Q;^=-W#tpFy-Bw>RkMf3odaI2E>$kX1F9cJ3Quwj6EOQpP$Kr`6 zA&N)Pqai+r_QoQE2Y;(%sxtx4^hRl~ekFL1^-m%~TrEkg!kQVRYEOI1^xz*AuBQLi zN8X;sw-@H7VXh{e9PWvQlorxhnkTEyXjU5`fJK-&{4{v+Q?4*7rr{{7EgXKRu!2=@ z@sp$f?#-=jC;9z6)de0b^+nU~L4H-P=A@ovy@ScmgYMO~We;WlDMkO2iDnT8E-7sP zyLs!5X}W@SmFZsUITcar8RZyOigTx6A-W9kRWv;3&5we+gx%s@*s#|`Mo=QVwV4MT z)8WhVHad%Vf#&)%SLaE@Bi%g|Q`8+3XcJ)W(!}>m;W8Vv^-G zd7R1Id5us6zo+sYs_%$~kBRIri>9BrSqisu{~KiS-oHz`Tz@V*d04Z$SWw+=Bg`s3 zoJ6qYy!eT`_ak>FvoO$qc%^{Nv!mT6&@pjjZf#lYP5NzS_mE(_O~U&U0ZVIQoJ7E^ zV|xpS_f-z}{b_y9es8<}a+~59yy<$sb1Ez!VvHzbU?$&)j^OgE)qzhr%jc(=Hns1u z0QR)I){86l|7QXGuSr*6{_d8T{nGc30#BO-_1UZMpG9e0g~1Zt=$_Lj*pbs;0s$e=N?@&eRF#1w zS<$c%g>lgc&sDfY>4$DO|2x`eGkewO?l*H(ER4cy6eaVlS(9C;OQpYqJX#wV zw$FEri-$GFi<9kJ?d@k*Ieh>QdTQFhM62d;Vk@fnEL4awXsCyRT?*-5c&$B?9K>!h zny*k=)`vlJtm{V$L;kGEWWj$T3}e3_lG1&)67tFz@bhJu672D-Bu0WL>xGf`;|nqc z2M+|h>$;y$?h^^P;HD=2#1LV$zUx0=y4GxycrhFp`c~BS!V`d2* zs@Jc{=9Jd)!jC1ckM=U=yls3Cn>AY|-%vdk z!90Wb7jES7F0?(e+^ap32~W6!rVOTp(inTX7+Yh!SbD)^fKm1d_|Y=fr?n;)Ndx?A z7GB%GBu@T}erQ)^)|7tZr{u?>jiQq#h3$Cn?U%<*ePC2{6;MKcoeklEO>7P<(&GOe zs+suQFj`tUdCyY8Tk)Th1->{}nF{&;F-4K=fnfNu`P>9FCG%HTNxAq4EP8*RJ?>+%uc>G!@Z}hslVUZekfYNP(SiieioPHu+TXvoVAnXdDw&J>2t6{BNqGL?d*iGFkb1 z`IjR;8^F*Ff+qa~dF=kp{=H_vO>SCncy^@wE)xT{M=G zw(whd^1+!eaAh(#56^6lf3W`J%76rEv(2#-FYmJRTjU5>#8*uLTXVeku=cQqdb*5m z13fmqOib{TZN&$bhfw!gtJ_1g?Y}g|8gn~WoK78B^>rEx&u#cgTiw$h%AwkQ87{nRl@xQab2#-}Nx(Las2p{!&&G;I(^{9!DnbkxwCk+vutZUh7wstwV* zq9#-w4=2$Ef?H{uFVauiR#4?^pG})DM#G(c_nDu0X{lYW+nZNsV3mI+0zaQT{r%0T zkqY`tL2FJH^j;l=&fCG5jo{}qB>w(>KI*5q4v7X?`(n zONR+58}FKQ+b~zdj>evZ_5MiQ^fRGr(?8QmH9S0Qyc66UIrH5hzwsIx zMmBTTcwBDDJWAO6U06V;fcbQBHUt&$>vEYW-S52W{4EY=_wCl{CmV%U@rfg_(eTS> zzCc)5!zxmqMT6D=voJ}G;nU@-v45}$sdTDznkdX{lGix2G%7c88jKd~8?)$06*``A zxJY8oCtL`$;0P|WQsl3UYHz`?ZFp98>|OaEv-bboKXD-&Wd#a*Ho3Js_nDIaW(V)= zlvYn01(7|KX_g=iC`&>_*ZR>uUGUBZP8q3b=N%C%?6nWels(3f$|j8S(TI~Bjy9q0 zkiZ%pyirvNUto4uwcq?B*oC@c*lj|J&A+iU{IC;T^N$=V*xzdvwOSxuvGDLpJX!i; z@5nMAntKRM4IYVZc|R3DQeU`c>58UVDO%ACt9`If+C|)$X;~zrw+j+$*Xu#sN_1^B zd!)r^wT)L*ix7}?)Bv%VDJwbvlW>RXPA&6xu|k#y&$C1ACJmJ~D9a}>(6JRrHFV#~ zm>LtzF%~xFan3JhxDTEg@)tG)AyhrfMC5D}`DNzi55eY)}3k^iwfndT!2>&kP`l+A5R3cY@uG1YE z+?A|`HF$Az)Feqe%zm0)o?eQR%bnMW`tphaHx0;#@Y8eO{yE<(YPqW44?Ls!{8?0w zVcuaYd_2FcNWi1re}Pn)&v~$?Ku^ii>Hm&%IQz(`7^HadTKZA(g41_lHJR*(BZh=L zXm}}Is4Q@LT~l*M;eA7~ZMUBjPoeNBU`<0UjZrdiHdU_M88RL}N-7Sr$>(OJeg$b0g0q2ObYOpabx$BCxq~A0%O#Af#BO ziSrv;6+5O=J=cBewZ;CciKz&zMo6Lv2sYHqN4Q75^uFPKSriQHqA*F4ml?8gd+OIK z7jxga>M%=JNcI}O->Me7Avl_NE61^4S1{rKt$?4;?KA&!wr0^>_dJvA9WD}D$y&6D z*h>a*e)pj{e9>mu;lI4fA@w=)JobOwl*l7hnIVk^1qFK3Ts#_sJAfB~7tgA2Uzq>0 z$4DhTTz`()7=R2SQ*Cru&kl6v2PeTzABx&tVv;r7nG`s!`jcxQ@W=$^4Ufx{3ExbJ zOieVuJHM&+pe$y)C@je`KYh8nX(X9ojrDPoqS5|vmS;t~*~Z9@bEIj2O4pWwvmF8D zxqK>rXk*RN+AIEIlVbl}QJW?wg5_2&D+S7;3t_1eKGg(?O)oo$9zxEuGugk@7`tgY zgww#^6*SrHim+b%APBv3Bse2oR3w)C#aeVXPj9lCpRnFFQrF}kl3YAJ9xZfs;Mu%B z-)z*oeaClR4QWXGZ@u*Y_S~9MzFQ1eRWYH=UTrM`KJT#;lDApo4oU$@tdaPl4J0=jR{h!xf~R0#)*_5GMp&!uU14^Oj*}r|xTeSRkrCtt2Y~UWmwSAXWZX(>S1^6>U z5>(k6pj5LY#nb5-fZU(h`=Wy_S_OoKn)Bi*{zDFpo9G(F5|xP%`*GG7 z^BA;MpmFvrH;sFnF_}~9e}8*jy)U-D6{x$^RZ1jSSHGS5J|AG&nw{Dixc@04QU?xD z)STGh6|gPnmj=ex3Ae3TaWzF0;9;6aPD$oi%(Gu{3@u!g*uHgx_cm>17AjqN8ga8p zO$M>GYcy;8#^RxoZ9ElpRw*#y6%b!{z#ZBy*5K8scCt2XGur4H(UUfPA5+gRv3u5y1j`CR;a+Jikc1^Dy7f(ur)9 zC0C@Tm#pb%&O7N?`{lOi_4`A!s!iFjBAZvh_guT}d{A(0m(*CObF2X^*|lFs$ykYh zHwT(}5Y%-n=tbcXtQi5{?Hkb%_4cLGd5-imyUP9O3#Q?aJZw{fZ<6ul{B{0N*HVG+ z;A@=K`itunj8!?;sp`>zY^Uj?1`in4CxrCssbZp()_XUTZ+3pMOtJOqV z?NeSv#LNz1_SM5kl~Vf!e@Cd<1G*ib{X(g~)f_ca=T>$Gi%$U4$pJtl3u#-1RL`94`>BCb)AN{U{ie|)qXo8Fh}tlhxs#?Rg< zS?>2^itSTAq=P)EI(UiZRdboIWVY(dz~(3I+DtmgHO`F$d|DYfV@~JgY82 zZK<#7Ai1w+D-?v`=%vSTexoM!294|E-_bfaWL`0v_%lDU4$_dOE8U;fG~V_5iryI? zgvw5lj%L2tY=nI53-K-z2!rjTrT5LxuXN{vx8i;rXfXQ7Q&bVkXyAQE)PhlNBI+r9 zr=@qkTc$UzMrw@z)iK=#_4G@K6z$oOSqn&W)gHsyZnb*D(iwBF37;q zvP|1;D5QZCX9Yj2^zl?&f{zs}$EfO#$QJWmG^W&s>V)|TImI(Cr$+X2YE@1wV z7r$Lz-ebY)^38Xb`$_5pr=P8IGzGy7LmGji1{dF43ei;BXCV!ixj32UC#{itBJq@ zWf+P7GChbeP_&S5m5N0;Aoa^PJG@>)4sW#)r_%>8 zQwLrbe(OP%GeMyaM>8FW%U7v_5J_L%V2746ab$6ow?7hh^uovQOb*47`pZTUT{(0nISK{Gi#yaN4t#6 zgUOJw;7!Q4Ih7jX;;{0|(%IA`qZbWJeS98km@je{JEYb4WDaAS2tKhK4ZUlatK{UN zwMn8Xm&@)w4mAOz~>qoU7}heq*E1T7yP*bI7cP~Vc(2`RVG1Xcz@hx6@5wH(0T(K5pvzLJ_ldac{rbU zyv--k{^<+}8Ea%HR7Rwm9gGm?lCm-$&0*nn%5yR#It&Z%-AIm^H0#b#yp)Z*{#}{; zjZDJyl}5yD0hq3 zF9nY>I?`BGlKH{F4P*j7bmo1*^26YuiQV0g3fkmr`Bv=fuibh6P)&?=@5)B!+l@*m z*wm-n%eKxZ0N4tP1@b>``2wDv6FKN+RBeM{Ufg|AHKOo&al^sD`;X60hm`(-ZYRa% z8*S-rKrpRs3KK2IR#Aa7HIKRD@(U(640Czx?3J7FIpE*O5aNDDL--70 zm*C*2Jxcz9JHCTyrQbCN7nq=Lo{NV_5=(_JPQsfFr{I|p0kCPBEDoUrht!G zB>8kNiu&zg=fstPJCMcO7Pz8eQ!u+RtZ!$aF5La6r@>SrkEOAG3C8#kgrj^u9*-rK zJj&yWWL4j`;f;^oIC0&egP-H!; z>th6$kQatIAAdoY{VzDI%b1H&ilL#}lI}g0FR4{r52*Mj%dbIQYZH7`420$S|SwjXAM`ieOT1|tpAHuAm-VyyUy~-*g)vZ#s*MqW@nxwuQu#*P z_sI#L>_7XJwknYlVgcPrbs?aNA<=B91Ujt(wf=&Pq}A+#Hd9nK7U9>DGGZ^39$d60 z)k%0mtnF%AeM;f-O@Et*GMe}O%xCekYGWGP0+vT;H}2WHM0+zALt0)C00vSEK`&HB zt0EaJaec3GOn({ER-jZf0JXa@ssPm07frrN1He$Zg11iRUK=#Mzj~Vfm}|IXTp*G# z)8DiE3uff~HXVEoJ}D?nlqI#xGNy{OP}J8}+z!Wh6m9EP0_3lT-TDzYDbj<6Y?+7@ zmpfCy?mP*7TxqQyxQ@9IZ`!TYFo=sh_R&(1$cgS80lwL4YwTT&rpI#C$Lj38ohx`@``JNr( zq%lKQ_$_*u%`r^-Qq=H&oeB$L1FcFD$~&z!=CSVZK6cvht?)Cis}3IXy>zky0tUuT zgoFVFtZ!5BqK%dPsI6k6a&mG32QRbRSiRLHN`PYHr#%b!OqyL@M(vzAtj2xxR0pPZ+Sqa; zJ~)EuKL)J+rP@LILduX2QuNyBMh1Frwgi;xPObk-41Hem#OlVn&*AB1>z{t_IIajGHWeglEqbX`D$^$+alcd73YUY#YmGN@X+O+^$^K1L-bx8!Iuwbns@Y@J*on3?1CeMp|KH4 zMem_%%KHu}?{SXj1dWo3_E|MwlH~!@(BNfCE@^|2{CMG3%BI@zwQ@`WCMV}Y%Y?s9 zQL+6To}h88R!!@movmEUNFd~X3X;#G747@#(nwyJjPE1)glrvs5|JCB{SEfQr->L= zUj~wbd3~SjSN8w2bT+8+%)@HE!1`$O&vAV;|82XtO46;o$^B*SVK|jAQMPxL?BjT{ zq)eAwi<_h4q?^!ZJuTuHXqZR9!(n^mxW(Z{K;`8@h5vB3%v7Vq<^2B+r7ac#plh_p zUZk^3Q4?QF+zTgB8Im!S`*61KRZc|ksLEVf?-!IyQVp2E!$xmD9T5|Q5!EhEdmDRw z{B?2?Oa%CmZy`--0H=%s!eP)TkRJ+*WC(xpYCUbOjb2~MQ!MEs+rM4C!FU_sJVn2p z@MI3={wNVRK4m%S5^Ylk2CFDxtI?@E`=LsVL!tjlZM0Pa-M8R$d(_jhxF?G4F0_?a z0ssm+#;aT6yu_eUOQ>s_G6GX~r?5NfI}LSp0o@#JdeHD?PQ!w%ozs|nY~r=XBHN2@ zqI+XsGd(QAoc3lk@Q-KDTr`6j2E8Wb$l;nrU3zo#OTX0O; zQ0iPE(WlQM-RK(yZK&lqqM02B|tL~Ac~ozy|&|} z9$@(ka_}pbXB)g%Rqq`p#D~xpxPyM~RrVu0x$odYC2^9i%JO!Bc_8_XW$wD)IsIJ5 zmnVR;>R>oF?+gXJIj6!;Y9R->ToLcucXyG%;vyX;q7;0>)h)K~CQ*O?I&Ws)RV4#7 zk{XKCbtm1OxK{pRQhg{&KPpwQ z9gb-zR%fO=%d2uQD#uuOD*SI%kN6|BPIJCEB11Vt@vqvFp=r zUSMQCDg(82;D|_?J_JW6@%@j0Wt;;x-$!W#`<2w-RXi01JntJ{k-IgLuREmFo`~Y} z!FRVmM?Oj~*4XWGR%mw?Tki;-=sA)dE6@B0_r<|)G_2qQ|Hlc9T~ZmYf~v$Hr9ce4XppSu0bY;?B&Gq zszKmWL!Oj9RB1zXr{gT!klABnp5(Sw-v@J%&kNPUSvb)^Ve9u`_Njnkq!0*xK$BEK zWqYgkb!x`-^6*x1JBDq}k~kPdj6opU38$pTOJsY? z-gY1IHpR{Ff8Jk!|Cw~m5SW5OE^c^|XeN8|_jF%C7F!e3vlQaCT8m3Z#S)t`KMQF3 zur<3-h`LfBATNI<6+jz8lFxO8&RhciNt)6&op)YOW!g)y3+W;gU^GNjZ-s7oxZGJu z9>983SDf|O$;!Su*kgPL$!cz43I#C+;AGau1?zTe)`>ly2>yvocc(!U+!wj6tnY2Y zn-mF`TV{bg*?pP8@IG;9sbbqV`v<GP8za6Y|{O7_)R01C%8PQ<9D|f~Uxxc3tJWrkvh}^${Uf)EbFQcIST~)n- z$LXBI8SJFYGYU3d?=KY3^6_G#5lq%)0bimwcl4l*{gv`h+VWcs!ZYRJTa!s*A==*C z)mbAXM#OGxF7ajJJ@^|rFDjDD&fTz{wLOUwnHLHdZYysH&K5M~8zN5+zK+)mXkhK* zj$NU5HpBg{s3>6L1_bH=W_u!q+i5K~I6vmYc9;KWYp;xu8fOq9i~V|gd^Tm{mLR0`h;>j4?t`4MTY54jmjUpJM#w!cR54pE&D z4^aS71VSDpKGJ^qF)5Vzv7Ks^B{_J6*u}NBZWdUI)g43xe4|E7>~6C! z3(tCK(&@82{RS<9yv=89M^E&fMh0amNgB$T>vyoxDBt)=1M~tia2!52xKi6}SN&*| z7FUe=KtJnN#mWBA74t=C6~PV#RomEa%A}+U9)dn5W$4?RK#LyRozCG=x-E9uGNDz! zwZrw7V*dYB(ytF$0WUe1e}8DNa+|V=%%(5E+9gFjNgU`CJzNS+6sQ{vo}`4kAC{s9 z=y0kQWTlAF?hz|d@`?kWiI9bkhY`e^kS5dDumFy7l+^7_@(gOL(n6scof54TiyNC4 znIL9=(k%BU6lF>LVLvi?K1q>*AqVP%`gyu36hShCbvhUW_Xdk(U%bf}95z4yQC!zo z1_&}=gOqnsUVyspfmFT{%*gdWL4c@;qd{8Qme&P3kN?d%f`PnXAWUF$T-DFWq=N^+ zxp{4J8OT_u8^ry|euy!%Ucb?|pG(Y@uJYP26iNgN5GWOU7_H)Mv~4hq2PMBu*B7g& zH1!eczc10%U43hAMr{m8=kq^_qqd9U)<}%xLra*+1%n%UN9g1^&@|MwP_x#8(j!@1 z@!J&GkuI+dK5Pn23Y%=dIyLSQ(ZdWy!6YWO<-jMWLsI%EwTX5;Y zAHG%B7HCwqI)GSzABt}#z&yl|O2VV}2vj_@s$W^2?jQ+-O@}KT-`FWQN$K`+v^E+# zigo7k8CK~GL(xUJs;&O5WzZB{VHcF8X_wgFj1^rYMk~8~N^DeDKXvPGG-F%Mi?#va z__n{Ad1zIQG|pa=#qjbazoPpWn`XgfoP(zJd6Lb(dKjf$rAM4c9W!}vJMa+wZ`SG; zNN={BTPA6I`4`$nS`k;808uS==WW(RW(DfB7vSlv$Sh%XRKJJq{hu59@S|gw3q~*i z5Bm<)@O%Q~T0S>ot>9JRfpj1pz=Da+W>VD{PF;B*oHct?z( zjQ3l7#+ZQjb7UEV`6zQt7J)(Ao_X+>R-1iAoyE9Yy&0RD4Zd2d8Z?^@-(l!{joozw zwQ!GmaqB;SWbE@_F}hy`HTN?>PLzlbciZfxs9U^avMYH{%rx=nc?fk4_(ovsl$mWd zfkHaoKkHlX5;tGY@4mW#4GN-j;07rJr3)KACX^=j39~hZG@VoH^fa?<^rpE6ZSzk_ zu#7Fxm;{w(~A1mlnZ4kF&>-tG?XdHmJb zMW|^kr%7Vkk2;Za2z0`JJB-$6ottR)^BV4ME9n*YBL8N{a2p2i7Nu@34^zfg@}z_h~^?gXq~Y+(tj?LgyYG3}dWqrG0w z=#HkGga}Ml#AwKrIsYGe;C~ucw@ENq;3KuzAD`H;4=3* z`TM}*TD(*Q0h0;ECk0@R%Ca^QtX{8Qy?uEt5#HIajHgyMbYncM$D=-|5z~fRZntcT zFNcpRqiI<@4*6)_XY-WbH*_Y#1Wc2I(xsYAV(dmq_g&>EOInra()bx!ufPP5AVUs#&jGOO-g? zhcx(wMKzI&V9e@#QPYF4gU`etUcA|}TPvIIE5@(#F)&rA%{C(jr3ge_mO0@_V1I*{ zyIy#jHgwYZ8ZNA(8s6uf%(OU>B(xKFwYssz2^>FVpMni+JN)|B|0e&AbT1C3TNuZf zKqaspGz8^) zrDWbb@XR(Ym_*NhE%B=`O87V3gZg( zuNU1SdJIFOzH6EEj=l|WT~D^h+mC9*1F`?B>V*gs4#^``ME6YWcJ_?`tH;5v)`LUf zP?akP??!RIL}?bkO4ro5J=u?efVmgXasm)xwMyPB?v|n3Mj!2gjQ0+2tji zd1GSW^xX1NWXw>hyjEjM3SbUp@4@D0PwDw_t8_EZO&>F@MEIIEtr7(g?q&6K7DD`r zap4bjw>uYQHZw!Ndrdjcx}%>h;uoXCR;sqWb%^BGZoJQBirs~NwTCl01h&+A#ub8l z+DuE-;!8d3f)2sY{ednoOyqj6g&jG@Nn*-8Yuk4(XTbPbA3mLopTO4b;u1C)wI_xhr;(xEX<0k>2zLKjTRvZz6z!Dy7dIXQB_lu z;7CuSB~T!@`ZhcU@%;693jHoIq1PZkvvC|UN~RH3H>!jQ{SSfk6lzFP#pX?Mre{)t&Q1IqbnN@B|?fUkRU}n&M|AHW%J7KPqwFUNF|j zC$MMmPM7|BKuv8NTYSw3;Ua*20@`-rn}8ddx8)V5(IvBWYOt-is-Bl=Fji^WWbLUr zEQdyh);Zv04A{#7zM%0jjsXAH=iyn_=7p{9X&*g;G0>H7?|J|;2u&*}XG+k*yYp}9VqDAMmQf^CIA)B54(h+%X^ixv)D~TQ;WYIc-KB7sU z|FR{L?tZLXp^syUn>Zk@-#JjWxELXI-Y{w1oqgd7T^x%|?dS-vu6ubMOB7fw7fN2^ z$2-*U(>1E@es)!qYNXU#WNp;H3^FwmUE_9bY!L}#=oh?3Z`#s}r`aFAjH4lfaeAed zT5g^;c@t+H+*a1~gXN74mZ#4;XL5j(%KSS&%dPPy1W5!3CG{VmU?9rF+1S}D-{EW>WD zVOy|xrj%ftJl*a)4SyhYEOkv<3=_)m^P!ST$dAEC;0w5+Gl*s#rK zMoKv&?y*0VD^vagQ>^CnarGX94OX41C8Us;C0IV!P{7Zz>X>{k&Q!Cjgat536nG{z z>#_pd3NT*F=585QKad1DY>aUqI2zrREp1QCX46zgZ zm?0YZ9^CXmY4FJRgN5baIoL+BMx@2?W27!FNdkEiAy=8PYM9%xS zENGdXltzo2p&bZ&p_W1TGn!xmj{J0c`y9YMg6@dm*c_UA+nnIUJ|&|woN4*5#yOh_ z5ee(5yQuK${=TIJS*7BP?m#3(tUqGpqzLa`ot2Wtjhf-o=L^p96EoUolUMZna2%9_ zU{@LJ$j#F3CeZA*I|pNR24Ir0=7-9m`-qR`hx^3|k@+JGMkqQq!_=Din>#5%Ey7O( z8-2GSl9e9S^*_skzfS}acrMHofR}vrPV*HHeR4h+lhpyD!#uc?J^Y-wlJf+jz_{S{ zC}Z-v>(O;PhyNbA?m4C#^-At!LiioQnQ!?CL2-;$$V_?2G)_%A_hz!kyKjTLl1{={ z)l}mLBxW|S1mx+$)5jS-jQ2lXaZ#ZY6*-c~xJTQjuy6Ce2zV`jXysQdSj4V1OBmDV z8<7`4EZ%5L-4sWO-oRC~Rtn-8f-fwroIukgDLH7EiL|UX2c4Lv7(77e`g0FEX(PT( zi($(q467>J;f<$~++||QXNzFde*Z?~hKUdY_90`AxfB8kkfPLJ^w>g26W(v^o}uz^-d> ze75T2Km(1?Dr>H(X&3Z80P+e5kdDwr8vuMHSpeN&nny597iIN&_nCe|ejXN=!D;0Y zWO|m4D`PM3&|pq|&|RvF41X>HjL`}m?LSG~y6bv(CGs1wPvCez-z^gG0)HtShaf;@ zXVuwiTM8-0`$#HPmGTS^&HxgO;uh_GfZyU#sKrx#%~Na%QU-^^@ zGO4yxvqhKtjU?ewR!N-vYK~xI!LFW0L;c`Fx%Tma{?sthl&&Zq>FWony_!)f6*AJ_ zvhC_8sL$>tPAq7xr&z_Dn_sJGVzu_acK|naCJA|?541txA#*YXxuxK>vv>e^7uoR$ zbpI7d&RuM%AMBiy^OV&Dulwh zY!6jJ_s9mDp3;O^72JRh&TS1~>*2Rh7E+Ozluc!4HyLVt7u%;UlY*sMFG|B6|Cpx> zg%`OAN=H+9|A8$nlhunrm$5sO6PR(Jttm~3OW!=SaSY2%w5w&Ys z#fP**AC@B)^A!>GO+5tuV~}Ke6D;8|p9!mz0jzl@B@tyMKn{kMTn%Gr;29e$B+Y^e{z7xl&V`&5AES_+nHMrXF;x{pvM6s$;jr9* znCdk`#X4GWiT$}YQWtI#W}^sQ-^|ZX%i32r#P~6ETk3Mnv-*SRChS0((c<{`Y12W z(tS0C#R_~zoEr6gDlXe}$!dsy%g9MiXr1a3?5g;*lEgRh#W8wM?bHXtTMIUrG)msr zqd_E(TzhI%Ub6rrcQoH>dE@Av!X@j9qYlbBIwuolUE3SRL5?>plxP8Sni>8teOtUu zzHP~bjp^l44OyTPOQTY(tKV4udH}K-a=lThPvEy50IRXNCk{0CscYr6p-9^#(Flbu z#~0?ztT7p0*Qy+0>sB(G+32CL6b7aa7fswv(8JU_YIwpL!q(K^!(Y1{4`Vox=xrwI zn4({<(kV*IqdvlBj?Ams_>t@}<~|rykU_Y!_RWGY`p}oN<`xHN?DHM}as(Orj~+El zbw-nE3%Kz8A0~bJXX460rzzs*J1LKvAr%6VoEtrTsJ3@n0bOcR+92KU=tgRoN;^C2 z5ZsrxCo=zFu!+R$*ZIa%sdxE)tSJ7Ly1yv-{X9~TJ0$DX%Joi}5*Z7N^REeX%ZCF- z4na8G<8kNhlg`L3`2^YqdO;7h^QHA!Z)F*mB?5%ERY;>v`2ME4I*0|IwLLEN&?Kw( z%|NAA)7Sw*!P`w(fNVdAm-gFZ@#dSlW`Y!#J>uA&0s>w9 zOxk(<{Et~^Gw(gQ1%4jojC4facZP5u2;7z zxYwU%d`f(ZLPES0f@FvKvl=f7*4kqR9+h!qr*<>As_l9azB1jdotskB7;G@Xgk~ln zjR?t2%AWWK9TXsViv<+$;Mb06ev0o$U@QCKf~XBn%=2SUcvGHxK{kH7xku z1{eE10bDY+FR3zLJMk9(>vz*&!&VM1bdPvhm5AVHXB0B*ZD}>yEfar$eaa z#)d_-wRyweFnt~eBmemmpDcDCJF*~A$66;wlE1RND_-D!&}2(+ z9zUXC-ZY;@7Re)L|9Ps$7_~K?nUzJdCPuB?$P>^~0|+CXEr!1^uWJZdh48hLoAKVJ z0a|MbD>)oD>*FFJ@OYzvR-?X_LeN;IH zgk=Ft%8g@9`q}DpoR8H(;xl~-*n`Hv&hDx->@RJo9_UfR_%;m4UNw?83Y`G&dkY&U zfp^(>bR1h+U*z8kj-PIvJ?Fx7L9UFgq-|F`#*ZMW(AAITCc_oT6O@vHIh+b}B5+EJ zq`*GLS?zmD27is>7UC@2SfcNWadgsEaIz{W(wZSRTddb%U1lO+$$l6Q>1IqsP>Ls= zYx3P7gtj5~PJaq=gFGXt@IWlqt4}?m;On_;)*&0mW{J-`zw+M<^*}X?m9BB=*2XyL z3~o|=pTOiXyoW2RDEZC$AT&}$jkmo$W}}+z6Wq%Iz(1T|3^MjRC#kwg@f8Ay~f!$+5p<~D_8*3GoEMAqd2X>0yi?Z6LP zq>I<2IM8)IU_B5)F7nkU8G>t_NZC`fwdQ7R|7Cpj;_!4E(jdN3ns63i29npLMl4in z2yDy;+fR`@UEJx3L5JHa3nI%>!Z_|;ev{Ma(hBZj&P1#7s|CPoz00=Z?CF?>m4gax zF`v_F+)F8HLk^G8T!nmhhaP7BkqD~1 zwe5#Tn_5_~`tnEnAXy)y7He6E5!yB*m8hS{iSXZsI#YM;jSIrBGurl2J_pcSIkM`| z+)?AzwS_Bbd!?YkYEyHt5@-2rxFT_a%aBRyg$%2751^w!AI($)hVH(L+@;B;)awyn zg`*6XTmg>rW6#rl`>ODXdA$muX2?9`>9GX*c-cR4yHjwii)EO|QG|cTdF2Rvmelw6 z`hg1+o05K#RBcyh#4`OD0xSErvs@+ud&ZB9FYjx2T8Aa&1uRWy0w z?NO8%#-QGiKb~}?J0YGLZ)P5!9Zzxo?RUB-*q)-4Vjxc`a4><{5^J|9r>@%xskgY) zcTA?_hBHrM2Pdg;6qCTOUIgF~DLd>qv!N=-{+-;i9}7a?jb*T5n16=w$<<(~?=LAK z;B8~W3ons8%DkXBHWHQ-TRL&|mv3Xk2}hw5OHWA^Mg)>-Pl#6^FH)y_CP-(O&+K!l zx_k`pIuMh(U3}HR7J)y!g)h6BgU1M~ZO`(Xu(G16h`~dSa9z?EBTR!1hXs6h z#M!^@%RkbX*5P6)SO1UHT-fwkkYH>t)d8F=G|=u@v|!$0L4?C|sV^LDoLuloJ>sBg zX3m_(fplJHf#$*Qf%2DyYykK2@{%wv94H0f&*h{^GA_{HS#+cQvT($EfMIW^G|241 zB*{1Y4s%9wO#Spyf;Kpp{KBi%{<6WfxDRLlUd!m9q0bfcfxSJb9Kv zuKkg`k}4m_gUaZO;lXe6+O^^VjcT+w$ym*}kaP2;07R2+vUd25il?ADMA9i8uW7$5 z9JOhVWbDN+hv+irEw9u(wLr=yQ)VD}8S~L6mYhYJa!mv+S}?B>-|dYE4>`A&DUhK- zJu>L^zkZk6h7=4?&MKCiu%;fxq&(X$u$@Ch>!eiS^2r|MOnibmI_++zwz@}2>~3IX zi1CuKy0Ey^*3=GIofMnuWoNWYS9a-PLJvQKD1|Y$svwNTsiI=>`@=3zwaFw8yZ+Rg zeXij9DE3R`Mm0B#C>>ug#Y2`$%fE^jS>41#f>pR2k@l;6CLjpf?WDr)-U3!ZS$%`J z(RrDotRC`CesV5HfgA;L6v$B^M}bKc$e5QLKW5U`oT4em7lR8?TvwosS;qX()DZ#A zAoMT|{9I_!#5AT!$u-^e4%-2viVzTXcnm2cGnz?RneYM)9)#li?)#&??TYtWoy>+D zf7~&)bLTF5=;6oh4VPSKXTS6;*~$zWYEd|u5Xn3rq~jDcz%|(eXymhSp!+dtxTM4= zwwVZVJy?To`t7sAml2ebfJCXF66^oCOvHdI*Yn(g7BVpUYO zQ=1(wC=(!GW_j|P8tS&fp-zw#HT%i_z2B;hQvXi|r>u$=VNqzSOr&5&;2^ajw6|%u z)WhCz(?v^upeo<_Va|Xv7|@m*lC~D6Owdg2>O#2Wdo|ay_zwy2ezZ1ZA#;X{whgbBGha(S+ePiMeF{L-E-H{J(X|e4(RCV3zCR^6H zO#N0MlMX{3Q9Fb~40Dwd%*ZQzB|Kdwm=FI(ddgVz8E60FJaXjh5;};2uooS_h(TW zz#K5#fq5o%X9DC`bc})k=};+Xv=eVIEhEN4c^%0|U_&s2VF-ev0=hrqW=8^PjY)vb zQ@->`jyj`UftG0C6F&MK(zlRT7z>2T#IG2bLTMpDLzop`G+;qOji+DrSRzekgiq}v z4BBj@1z+N6lJ49c`2=7Zkv4QwLyc|Ry3-!p(P^ve#K4uO?1^TTXZsE-F45NRUIBqZ z1Y5+FM!%@&Z8A<_@&S&CfgF9RO?SoBKZd&^@}?e|QH- zUM!HdPWNn;1~?Ng?%*$4bs832Bc8lt4u`gnX&6BICLQLAM!NS26^t>_$05cNdCk)w z1T3AkEC(2j22udDs8fHdE8&MVF6XO%qYdwh?|hcuee3cPlLG*_sxWV(**Vy=j8W_! z%{{}KV~X5l6{f2+m#Bdtyt0^q*&obLIOwiyKob@%q9X^yLp}Csw*p~&!9#5g`ttoi zasZ@564to_zB8ZY+}@)AZLdq3zZ~F98>GDf4nlS3V;KAO4}}D(0$x(gMtbaXegpnu zpx=rss(emoT4k_76H+RW={D?sJ?3$qlQD*LFin=}*Td?a^Lzj?x@RtNK1^|v0rHxT zQ^9F7_;>zCg>fE@IOGqP_N#lwx3cnb>le>_&xVb*Y)5l2GgDWmF;nNnh$#Ye^23l5 zJ}mNU#7kVBzTyg6_$m|e!XHB?@z~kr@-PaAOD{ym%=z2gpSe%~5~`Yg@gmMWGlhfV zg)%W%AmOP*jl0-wb(<}dX8WG*>Lf3%;%DIvMl`VksMiTlM}dSs!y+pV9)cZZ>`dD# zUILrpEUGfz(+6{I?^6JIN&=e=Xnp}~=kWJDjU^oZdC0OF)!(Qz+xwhvYN{^sMX@+0 z?oRIL@5syD-My|DgOUmF7OSJZ0#pOAYY=t$6|?ZKrk-k7>sM z<|x4!7^88>zXg)lk<|e$kd<{C#&mu6@myoN`;|I2S?C_ct=A7lYNeC!86 z53(|0hEdi+RwoVyUwI}@m&rwE!lPhTP$*m^JqzG3=W-OtQ6NWw90d+^3c$;ww2bL7 z<{#t^rV=ctxG7rkW}}*qkb6*>&MOeMp?L*Nwcu5kyyZ%O_LS^ZIwVmk!g^_}%Lq3hrN#<18LtZ{MOSn1 zMfaE>;Tz8V$S)p8RL?{C#jF6To$)U5B!AvE0VSRU4&Vum$Ia4guaS9>{@F5?pii?XP@@0}J$C2SRG!7;z6)Cx*#te~VyXG>J* zSFYVov~Rhj%}y#v_&V!fR=_a}P%5FF-3E-IV;W=pFh&igfbE=FK)(TOrz=1X=g;li0ntT&TzL;K6!@VCG5SJIbX;v^3^&Om`*gAdxeeV2HWeygo0vC4836#{?k zyq3a-JcN?Pa?wE9ap`$goawwyq5T5!>LJ>H6D3O)Td^3tzG>kgUJ7}8Er%&P&q zH*2A_Q@jIptVW?{uJkwA$nMd?tma3|m1v6c_Aq@4xi1Sr0W{MjPK)Ombg-QTk9^JD z71HWCxS>pAp6W~oeqy4pLKE>pb+gYs8C`r*7U|=R34_|M*4^D_H8tA(NoDU>mo>^{ zJo>HvFvbBU05&*(mz`h6aUYX4nh6|7yWJH9wBSma85bE}k!Jzh89SLn=mUInnFV>7 zpW=2|Su!|saF`zw9y{SVeVnCo)OmueEWfHtp5r30$IBT~3KPuDi1x_f$_M_~RaC7* zj@GWM=aK(8m!m+A0yzrgC~yE%fca+Y&NkcH+^I!(cIj(w&|HN=x1Wy*ek=wq$_jk< z`6!v^QlRo~HYE`z^jVWw0AHB|nMk$#?17*&f&D}*-p}ChN9LNFo2AwMV*Af8{GDC) zmv6ADs!F@+lOMA;z4`6-Z~y+E_O`da#V6{wzx{GM{l%}e(@#Iu4nBCTr$hMNata4{ z%mj|6Oo2eXe99vxTD+4JOT|r3@Jy``2^yq0AztMO1Y;G0m;y2R9vm9%0n82{ zy5e?UiJ%5u)8&8xz?6&Vnn6>_i6(_J88KG9bD&&WkT4uhcj8sL_?zfA9B>NAMSVH# zl}{Q13>9F2@)@}rt zOK>Pf2nj(v++6<*OX#kss<%2Bb-sVY6Ruslu0cYpB0!4=!E!{41xsqGq**2nAK3?l zmXxMQ_1ZQ7*e(r!1&~)@+68ySi2wv;?rsx3bUjGxOlWnGk0+Z8+Qib(5f~iX)b5sn zb~`HIV7RowmgzvS7(FRBV-{vTx;WGmI&H zYER8QL$<)W{552vKXHKwi88XtXV(^#Z2iE#u+n?Nh8AQ=!Qwz25Ty{7*Vrd<2v z8HoV-QIAi^miDt(ZdeInT)x0!tycmg9cqR8AH4*P~kahyd$V$OP>Ww7XPZX3Rs}{0OxVB?!wc4 z{wu9^5x59dZt)rcC_%ymmUVM`~Yr1`~^RrOIcHG zk(-z4kXblPYqIONNjqS1)JM4UN3Y)j9TCw=bkcH} zG=m__2gu6253+KYkAle<#j7yUQLhrgb+#0miBcr=ae($bWW?Th*`->!ueOi=!-ws# z!w$9c&--&*y?V8+U9;LQdF{EjVZ%dv47j^6qXLtISSGift8!69w2R@7VY22u>DM{J}rf0;pC=awH zs5!F(Oy$tr#)c)nJ%hthSFLKYu9of6R_t}{_0p1J8-%WkGbI2P(+fjNb9q&PX)}l2 zDX@J=G?pxy7EY*+P(Lvb&?Gu(OHk$UQCIRG>vQ54wH^K?{)vSuySqJQWvMZ1C=Rw& zlj_fiagp9qXeWgic+WGbg1Zn=-C*kkG}NFL?M{GTzYrNYnDAn0{nhdlnh5w%C$K#_ z{6XU)G0VkzU!z~Oj6goRNsAf1JLL`HXVz8>xp=PRj&8(ttH6+60itVa1;)VCFYc^Q zNknfVNqN+*yk`0NKn>qn2;x9-lufAN(5JL$BUz?YV?C-UEPl82j#;(%&y`yAc9wr~^tm^CLII6Y z(0o7|*bg<2YRsb@sJ~Sf+On!b>yv%AKJ`QF`eTA`c@>9*vRh%izmh!d2gRHoolwt0 zTDNvrl$Mq%Zh`cQpSFn12k*muzihU5b@pU{?ZF(%o)l$Yg$?rYRH;!u@dJ(@(9nZS z4t)VBGRNSl;$UG@+f3Z0`<}+rsd!G}WPVA1OXwR$`gCZ|L-4D3l8z_|R&~L{6fRDJ zQ+&$3%26OkfgA;L6gY4w;C!KQbLKBs=w^<>WzG|h1%SzFKGNjwJF7GWX)0s#LTFF4 zade-r2~9AA?#3rJw!AwVD1T#a4^xjbITBPtJ9g}_GtWHTUUB}*?d9jcR!q!*{pF>X z2w2~s(5t0wl5Er0)2fv#KRlFf?< z*=Z)vkb-djS21|r{ACi>KP||gsX+Jai04Y1xx|$n_mt0SPz8e>Rv-{GUz(`PWdf$8 zv|NB{303Te)AslGS#M9Lb$7NWbSI`jqwF|o8ZbQdOP5U4!OOhsOZCQzximT12y~4OgF;J1)4{IT0BdBwtEG-pWL7=loFO$Y}mu5noe`C-gp54q{2>$ zshHdOrk`I_F0H;s*S_i(c>bsR@3-%N@B8-kYp-*foOAZscK-S2*@-90bW~+99YFto z;DHD1#vlIBzVVG~t+lPgUUA;JcHwI-wC6ng*%E4stZ(TO+q$XSiiW$qZs(h?edV7v zf*^){?JcsgN;?2-cXLSknBAuKRlXJ?9nZV|aII0*@#~YY@7i^mH2?*k6zzT{VyFOU zJQY?hwN!bnmvxK<xknAN4_vsxp3*X(_JpT|Un7$t@sfT!g>O7;#d7p*?%z4ax0PWappA7Jg zx72B($aqbARXfmbxuR0F6WWM3iVQD%cuQ{3EC=W&uS*3=vr`UGlV-+P&Ci?M9;Ow8 zQzlGc6{t+DIsl{n{zq*^L$$3rs7d2xl@`gy+=K`{#k)leIL|9#%LTe)hY!%5vewI{ zIAd|n%}fEWBk?{cb1+8iFWcDE8BHEjV7@k}S}f9T+a29wwz@{<6=i~s@9cC6J4pzU z@VN4ulHYu_U(Qg%pLZemk^8ey6!3$b$A)A#f5e)5vDrVS1@0p8rYSe4$4)=yV!(FH z-_>g#=6r=vQxkL1*4`~ysnl9qcG*tJ!sV4!R;6EK<5J%}!Qk30b7+IIRgM5(UoSIu zy5hnW8AE+t6}=EV`^4PsizkhF8i@T+Qz^K$_eqOid?cG&X}_~M2hWps9{o-iY!ZED zOdva!>}RDGD>PnX26ERN1#%R~Q6NWw1DgT~^93~SQ^XYWM0!?9z6B#Rkj-E4ISR=z z^m+;SuGc>CA*Sd*48WwxZ5qZoBQvwrtr_ z2Q66%=$$AF(rWAK z1-f_Jt{qz(d`Ae4elkho?Ns%PhVynYp@8&{?dY+UI)rH5+Lcx`)+>#WlvR`#OHkFe z&aomZt1NZxvHs2u+abH{kN3!iyO=g)O-k7-4j3DkM=q`K?Ye;Pna)?3^kPfrpfrRA zeM|0u0v{wKu}%ZFHy!XBKzW2Z1KJl@CaC+W!(@l2D zDW}-YH{Yy9w=><}HP>8YmtTIlz3biYwhw*qgT4Uplb`&=PCn@*`~LTDuyf9NnJukW zT{lJjD&3QB4Dt~*TWuo&&b3EwA_mnYSEdA$z%m7m_0 zK$j571fTPHAUNY%rb~t;&r`L`L80YXr7K`Fd5hmO!|d&QU-%WcK2|KGNOtbEhfYZ< zGgFpdIdp<*s|4VDag~r!_3wTebQJ&}f1VC(#4 z&FvgK95RhX?aPUS&Q7c<<8C$y|%0eR2!zA zhyYLnFebpdJUfr-fdDFI-a<@zQTRRl@Wbp2|MhkI>nl2RIOcNu+-LvU-uBQ#&TOoa z85z<5Y-g4Kj$hts@A~VvdUj!0B3K*a$|%Row<;xhM6g57W5#ytF%$v{@IHyb>4Oxb zpQi^XuX`Xx51f2+?=eskHnIX94uAW=&6^f`k|)tA)wjz^M%r!pn!~I@ni+Wln9;Jq zhI*!h2_2G9UQt;sjgB(gy7_VI>S&d4DY|$iWcm)2Yi-`{pRiT{+ zYthMLx3Aw}cW>#mvyWb8$FHpum_D&AnL)R;_u4Ig+HMc-l%|UEiO_?R*(2QrwxUc2 z>xd&C7Q(uZsy{Pp^SY-BAPa3Z9uhRK2r@ilifK&tu6sv|bfDCTZ1@-0X{VlMzxmB? z?Ag*%kM3+~xVN{r+ZVp@1qa^C%ggNrFL;6a`7iAxX}w4HlC#e8oiFcx&%5pU&p$;b zr)sQFJ6{HRi>+|1XTJf8F@M=tXo;WfbEz%D^x$O)k&~r5_&l})whCku0YqIRZ39iTM83ePK2ar5JL3e zaJ@kpVc)u0V^v4RE1 z4L)8_cl;pTVs_-8Jfgwb+{<+uu$?*-y@$2CO*4Yq=uH(Ct8L`#AW@l7;0zt^WkLu$ zhwN$_(1LtQhZ4ibIN!8DgrM5{gl413j#m2;{QxbYx6XI>1p`bl?QIv!RE#-1b;>_I zw%xYvY_&sHH_6P*5*rj4-_1(D8b;>WI-h(okNe@Bntw232K&My96;70Z(8#y=3ep3 z4nM|gHQc=t|6C)bU9xKoHhNh7>(C_=7f)F*qF!mwalD{y5e^`p!_9MUAt|6mLXA&8 z?#b5p#&(yC?cjRO8!E64oi9YQVey>Ege?hP-mSTZ8j+7 zB1~u^*TQe?+_}@*+gfeu(t4|`s2ktfi&h1_ihm%07IFgrFTeT6`yQ z)A9x%Q^U^M#opUR9LbO)L;aG;q?po?C*>5iYrWo+-nV;Up;cx`-Df^#G^NE()r_p> zZgUjKQ6NWw90e8$1(?4B*gP>qajL<9ySpd=jmUII&@2y{eJ&i!hfh~%yNlys`NL$ z%Y}RpP+ACLoOni%oXL4!5IW^={9w|lL$Jjj?S^myd!WtKK9vKNiL$vJ{#d37p1pwn zW>k4aC=RE!Pw+J10YCVak$Ec|?Y6?f7HeF+PNrX~T=S!py|8jmJn@8YksK1e8XA_` z!E4tFtV-!HRpnhwWz)(vwn=5~?e1``-wBE6A<#{S2&p}xc~n$ZDaoS1dSt*jFI6n< z@>1K>K4LYg0c-E*v<(|~*&%fW)-uQs8;C?Afkc|^Cm&L8FM3*|1e8FpA#Kmxwr!g) z;*5w!#j+*d)YPOhRQQ3NXCBjJ$E>QgL!=EK>eJlxQA>-=La4137njIv&T=a+E3@S_ zWp>{2tL$69+hh;#>XueZSj5rUR<^09z^ZHE!V%yWx1)JbHZ<@eIJNsZ7FZ&{y-$M2 z=9V5?x4cSy^@MbE?bXy;vMMp_yUNe4D@y4o8h(2YF0JmYK8beO2XB zyU#-_*egdnEYx3ui49U&9A&1>;9@`VhbR3X%>uH)URYiyjnffttBpcG%7t3gS3G0%buI3? z26URbb1#kW+|j&QEN~*W*|~>aSf61Q3Z_c{dod}Zv-Y%|URQR)Xo1d65X_Za3!A+e zW1|T<=%jq_!s?HvHlCfP$wEo6*^VvtejDoV)!fZIs@*Tr)MT8%FX!3#n87piqx#IS z%!$EIrZm6CI*Q{RVApKU{mPRoQ)GCi3H8d%3S%;3F*cPc2mPT_(}}vU(hE&3BbeXD zas>sAnJXmiS7k}J;p_;LXLu-l6>H(RT|4CNy8kg-wX{`cW>(k|(F<*NcJGCplH1AU z@|P3-h&M}kX6(WP{xKK9k`cqqxt|cx0r^1v0l0U{mNo~c?r%rk(Jr~-yp4ui|I4vB z(G(JWP-ky?e=HNrfSDxPcdpJe2(~A;8o$`_mOnONJ9RK^*HFG4+EDD{b(^%^qeHVD zlU1v#^Susykt?eb825JVY7m_B(2qz7 ztxo4yt+YB_n^rVR2G!xX0^B(uy1BXCHgDPKVOOqL=IwYxnK*;sPo$g%t$*N-yKg%DV zFJ|$R{rRcIXJ?l#_nf0ZjsiIfJT)mGmR$3On0n0@Db6y>aB-?}R*%UaH=+YxMg%xG z=nVIVO9UvMBu433E7oHA9h7wsQ~!yASE00=-uceA+3VhXrG4p3Uv)4&hG6o;jLdb{ z{f}LE;pO&$_q|Jugh1QgUTMmnU^fVa$Hll}xLL2tEX*jgB$M8-0N6okTya7?r3f0n z@<6dw9&Vfl3N$>#fnK74$~g7p7bwA`Jft}J`Q+^BDXJ+P2a4iv*iUJn0i0D{N0e7U zAM%{dY-Hxg%ax>$2H8xG{0%Bj&#Ur1lN(hV7?NN-B0A*DW_w-3GHGDcxRzRpB)guT z9{Z<%`X@W$sHfX!KleHNkN@~j9e#V5ee$Y*78uoQWhDYil^zQQ%NkdTS)5+5i8QXS zUt-$k0~%|8G6 z&)f5!_dExKpZ2t;*}8Ry+M5It|LkW!b5fz zCfe@*Z_ zfQRSVod}|_CSO2rN+w8(m#hxIx>Z(Or`;V~>-DbgAbqcscBslu9qmy)&7P|{`B)5j zm{UgQ;wjKHRZ%C9x4>$IUaW2?cd&ieu3dKJ-~WR>|MVBxw(UC{2w|K}(eKr7uKLtx zY~`whZ25|n5{ScZ#mZIo|8BX}6He*yU+QjOINBn>Eek%|y2jkZOw#4{V)B|LX$uav zOS9cOIgLMX5Tx%-Hu<7U+W9vSkrILqA9h>FGAV$cRI$$LQQQS+z&p>y{2dneSrm_8`gFPDy8|Jfhs*(& zopt0Kjo>^tufn~uD|!dJ^E}h;rgH46@OX8d*#UNoKUVtiEi<`TF6LRr4Hmgm#bvfp z3--VL{d(IZWrfnbe%W^y&7|Zp1m8WWT$58EUE+h^8&c)Ki)iDGcqaJV$^LV1CR2bh zhef$P=Yb~2y-;twD%D3hf3b@>`GIz+uq(g zY|Y~94-wd2Dki^8&p2q!fyLNvUn#Jivuv_=l;8)Mw!OW}7j^3DsvT_S+#=>D`fp`r znJrsdXIr=Jl2X~@0?~I!rt0?{c0+@GQex7<%Ud_e+-A4WXL(Xy!pzN5oolpu^>XXz z=(5M3*qXNaPMH>^6CG%zd7|kSvG$L(g`L5(VY`w;PxeiZhmi+qOnBF|A^F;gI8{y>sNmSBzny9K}UxhKhg^qR_ZSYDHt4l_fjL2v>f_Cr(= zq~w!%$AjyzRQ~bZwU%Zf1``dF$DxNDZ1>*zzjoOh-(g?;^7Zzn%U&z3=z0fle|_ig zqz%xlgB0(uLk~T~^U&D1%d$pKz+#%ObXX*?RDOb z=QT6{!lm*g3{TQ13wfn(Rd6d9mKKl<4prASc%6_k?Evj)KDNiLmeP}``h0x z4d-Xs$tR!WrbF040OL|tUSSp5F4@t#D=oN(5+r}+udc4f^2)@3%3flxG^2}jBGl^T z0?=jKcl-A3vhCibE#djLx>j4U1#a)?mo~gAQ(1B6mxyAu> z7JMFl_+fkVo8N5LUw?hto;ZQggunXgtL?)d{;>W1-~YW~0tM~-#~ypkUh|sQ=uppZ z*xh&EW5*u*OxbZPwL@h#V!e=va!Ee4ryiNQX_vNrnaqid=ZKgWrxUroFN7`Cdyq%P zGnOY{ToJPTv8kokwhMR%pn(oYt*CO7Lu{MHuKOoHd6jDc4+)uGzqM0+q~t9{`8AFwO0yi)CQ`P|gs$k~IQpkQ{mB^XF1qNV_{qm>#v2^tazU}`uD3|z zH{thgozeDK@Zk{XO**ufCW1ZZY#_ihw*Y^S(&MEq1bzXQB!clCLGlOxnIJd3MS)PrK@E#&wPRvw ztw1n#5X2^j$t78j3-r&7EPW4v9`ZrH$PeY5%oh~ z6N|q3lykFC0Q#XdoY|gc39`>WQ;oDW#)t-u=j@Wfw39YuI^YX<>!xT_=lFXnIQrjI zj`~^%$L<^Cy|8eoz9YwiV7L*X)lZqTTl)%ZnGQ%T%pbLODFAtYSJt`#+cmMS)b1JP zSnqEkwErdd)XR{7+HKo+xoviAx3{*oc)HOmei|F4aG^yX%+8col*(j`OebnlE;!kT z@9mLn+^s`Zi=^ySCHw8QVRx=H--~39YvabP_SmCaBI`WY{&ZP@UTw5QkEjW^zGFMa8mbDoGO7^ZQC z2ehA9`DY?VQvl6&CUs_IG_c3UD4PU7NtbaE0b8R0?W1~!MtFf3A($itLCQhd-LLM+ zD-NLwzX<&vUNr&j+%F)%GQ@k*r(%Zn4LiY6U<*v3=&f(gE+}4qr?g0uyhdh%w1^kK zEDVq@=*3F^Sc-#Y#keJP!vX_-iOUxcRAtex$EiG#9yCb%)qNi6slk+r87$KF@0hQC zZF?-&7U`G1^raL#?a*L;`O9B!k3RaS1KvIeD;`{xn8nVvX5EEnf60@+1BUY(79(3C z2Dex5ij;PbY#wggw$(ODQ(AnkHCCk@SlZMpAzRUaZxb6Wkb@3;l`kFJX9pjAu>Jbi zzxM0WrAzfDxZ{pH&WD}5Z^Essm)v>dMG#BGvs)Q}o zwCC*l*sc5$p(w%DR{%9Yw!<1Lt-eY?jJ|#O%U||rU-63b{n{bTcEI-FufiI1I4bVi z>#nn1&AaSXuX>gDsg|yOHx-1x#pK9NOHZ)jxw@9IW47Fd{O1dVEvj0kv4rxfU4Gg#z%%lp~C7T)HyUZ?W zCjmCKS z$MX}UknjMalk!K;rZ_ByEJhc>b~M{Hlsj3Z{cN%(lB2Ze+)5tge2(EmP2aiMXhqmR>TfYEj%(7Gz zOWRa!zFCI|qY;cvbL<7PQ;vEFX$4*_hNm9ldlF&Um@Dbf4g;?g^RIG|2mM09$ZIGo zK8Q2M8_N$Z{2hhBZ@OG4WrQ7kZJG;z_lJjV<eU;Iin?Qly-T?uBap8Nyr$zJNY?_1z_+7xuJ}Gz9 z%AWYH?ol7}8Ba^t-LPnKyc-!&yC(n0E&SpxCHms9#ux89J{asq+zLYM1=?-HVpdm| zKx~2AEV%f1Mcg*GtlX+} zwo$cgy&rn$8kv}Bwe34(16~KImX~9qE2glYuU-al1nmNC9dgZf&LVKFag|3E>;QC> zX`LFX>mYw3|H_NTI3J7Ik*;#Z@i5LY&?U}2E|=3*B>%c;Rmskb-;CFc@o1_;TWHFh z#4aVkkbIq`k;kN`clZT}_jt*FB3F+S72?JkCWo`T2OoUUZomC@wYe^jceW7Zj|G;e zYe)9UC!g&1>3L*^z|l{fgJ$qLuTL@Fc?HVwJX3yR+%x$hs^~8x+9&<(Y-OHH0rw?c zveTOFc`o_iTYeUTwtFjYxp<#C6mWS&a|(UIfAA@qtH9Or#WQFU_xXzjW1nF(|Bnf8 zV4g_<$RY#*EC+BorAbN?lT3=B%`~bBlF8hKFM-&A)A(nio2#QEkg-~w$bRIDS?1jr3)wEB{OKO$xW=5tJW7AN588VIe+nRvz>QBnKaEy9VF*7TGHN@ zlua03%-)=L-g)-5uYJuv`q7U%;NC4Q5*&a$U^@&Kj)fDn_m4dCNZYz~tLm1vqPh_g zyuDC#-EisCfmflH3Hju3^ydX}ssMJ#&?RW|>l!O;nQY$UuDkAf`D|F=s+ zwNa)#&|U>RwtHmy?7lxe;95wD z2fr{MFxKqq8j_akurFwh_znibFH}d%OmX79vgYluLOZNl1T=Q*AVm)FowaRFjAqs+ z=CLuElChLb9SQuQ1=B}4pt`B9#2RZte-33<`l87nH|pRw4XFp!Ya2Z$1SSqmw?aQ$ zGxYG5t^wO96;3~VTJqhSWXxesU_%Q59uRW7nvWzne2Y>imIIyR;t z28U%@Mc~*PE!4r2i99op9aBcWcV5y`u`}P^Po3()0SNd)Wn6`!jibC!SR!*+;*S7F z(m+`3CSL9gz(`>uV~WX`!CsvQqs2qQQLiKeumS%96GBzfo&wLLewopIoHtT@t~jCh z{W4$HCE8+UZh5&D02E$2lgEcK*rX61; zTByRT0SnVa9?AiY!ojl&sP}B9&vxsO>rgNGM$-_PQK#nkqOLpnSNR60CT%`ZbtAt?K!z2 zO#DSzDqf>s=MNFqm1tL2r~jIFmN;E%YS4NwvjOC^VhQqMNOyxoF{y>S`Z%RU3942L z9fvGa)XLcCD6+B?5g1=3F<}O5dwaj;MQ42VP45Yd{Hq^wI%Z{%YllRCY9EtfK~|=T z1o@XS8JQN@7f|1E3C2fa)I0`F0PG8u7h)OFJcryl$~imW|KvvWWkFdPby+b_JBJEV z$o(2?-DTH!@;d86eNqM#Gj6{5W{-<=tFr4gE0{mVw(#5E{#Hr@C9V`UTez4W?f8Gb z^=+pOvM%pctl%iW8gsWy!9GnUR!=|u)bM_mzoZ>@LI;}6;@v;T{9wNK23aQ9vSq8i z_O%!KuI2bGUNPnR&Hwq1^UET8Iz03`>gXd~L6ZfD=zlKhKN-&ZT{+)ciMv+HaJGYc>T1e9WAWoIgaVY zJWUzFK70v&LtCG2%-x4s$tCp^rT}t6FgvD&Tg^Z8J1~Mg;kJ$+>zR2AS;rAY@e%p5 zhJin^YT`3A!65+WgCglI&p0MA0QONyLxIuYU@X8}O)T>qFzC2+%-A_$c==uN_P5x_ zKXH}4{*pJ_*S`7%tJNw#1NMJk^JV+p@9wsL`}}8Y{rU~kP(I8aSpT3Marj~BI6RY6 z{Gnh#DFp&P3MC-AP{*^%#j5rg$eHp2=&q5<1wRPIWR;#|HK>Sm5WAvfk#b>-;?;M$XN8>(S}!1D^fqe4KVprJ1s!ThMH zpbbKr$$Es-Or`R{{jR(2a&7XB8#mfjS6$`iS6H2=oj@0P4*8{QqU*2#_w30awh1QR z-kx5o5rf?$`~BE5M00Hnx+*+TjwllyS_sOFgS1N3X781ez?#x+cG9|~5=H`u1Gwp0 z*R*N5?(S~8_uhN$MK5}hv_%3a%wdN(-k*E!xn6#Mp+B29Z-GtM}}<9}Sc6}`nZ7k8MXVmZgwEfZS!wzu4*sxWpTnH-8V#(8j*UxSi zhNm?iV+^>g}U&RSOB@(=IjJQ3|Gqj6yVkNh!r;mA9AO_xjWC>JhWt|YJSSNE=@K%D8ksvUY> z!#GaZP%e$w?hlU%U!+^;Sf;T8KIQ($ciOg{t#;@d9jaPiFRfaEBwAFUpD{0xSG42t zJEEPLv?CT5a70bkLP`8p?#~Pqpw0o^scUxpdELz5e}8@=e}KU3Vk#AHt0~L*k4l+C zgC}8(q5iY$o@bf`F7rOT+5dl`IsFJ_q)nT**uB61y=~F1RurSCAL?fL@mP~ZQ8tD3k6j&15<9B zH*E?#q!U>><}>@6U5@PU{;YK9`?vuueD2uZrvuzu{H&{nrOSP6$jFxa+n;}stDy}h zkl2M(ESY-%#Uu^EWmq?B)@60w4{61|LVOKMUd=iI z8(9+B7dbr2>H*}?*a%*sM5rScR2VZEkC_8}=f1w-7g`}JGZ(pEy})luaeLd-H(%Uj zPQoca^Kt9fulM*-;v${7I?}GJtdu$3`(4wWd-6A18{wR+H(qw>49QS{G5eQ)x!O)U z?Nk+KTyDz@L^?6OCpK>Kv-J)+c&(j({<)rqm=FBS*$Z%VKD z`KvcyHsv>7e(F=7wYR+GO`j7tNGvDI7On=$$d5&(nu<<)r z{17kKd++;$7DoQp&XMBibDs08^n3herps5K<>zBo7R4epbo?drT0Vf%hgqBe z06+jqL_t(EOi4NtMWiS^fI%c(Y$JxfTjk2>>>e z=JMFx8fO%kC z#>-Eakn$XaL7Cer>KZM9K52bockZmS&ayxL@sHZ(*z7{UcxnVD z_!JR@PyUxSF{CYh9FR(!&=U_?^X{?)I3)j>5FB(?+o^^ryrK$)}vY%aS&yo*Zs|-PRW+x9Cc#A4!)<|G`ftdeBY51;OQs&@dMbVhmRTRlq zXxIweAhf7npkt-pR}_xOwzv-0(l1=4U8QZzjY}%6VOf*+2@!qfBZvb7r*!=2UnJ8(W6oaZUZh+KVyXzy3Bo?qJ9wK z7K2OHe7*ctQo}Bl&{!=~5P-zW=7Kuvp8DYj-^2JGc`SdQq&8K$gq4z^|7b5f^A}#g zwa~Sru}~)D&`kFR6*_@#;SYl*BD~Nz2%`F$(D2BY_&t@Hc;GJpOB^uqx(z9Mvho!G zH~^CHbHAFa09Tj~I%P@)Kx|n>z8$RHaK&2i86z)Zbc=P~44R4@Qkxko^Rnkp`OS=% zdvDhvasNwR1DF&15)J?`@Nk*2Dh<(jqTfJ|&}K9JCgt)n#ds6HN{=~|`J_a)m^-CV zaL@Y3?fwTg_+nFiMan8l)o7enf!~7;%!o=}U{V;H2+xmHr>f_SBIa%r3ZN0((b4T~ zX0Z|__G@@p1UkTVu?%6cMTd4`zdzei|GZ5$Z+X8#Z(*{}?2!BRnX(~=JpRNJcEk6- zZ+-p!_QKQ8a9;5I^UoKEbefw8yWxf(*p{tZypQ|1qrT4glqvs^^B^msG!|r8`W5|? z1$0cwoO$M%zGE8GAqdLIfoLKFy01QHwRfCK^|htq(@=gukk&~N)+l@KYwIOfslCv* zk=2SdmLad{MS3^PjvXydz{aMfz8H@jQzA1kq?0|)>WZlQ2kil#!Z|3w|&P>`_-?1V}~92Z2Q{}Ua7vb&6Pwj zn|RS{U#-YQ2jy)7kD%w6-CpPP4>`3k7)PFPVFY&W+$9C>{ud;W&>k29K-RVK*k|rK!@)z?P^N{__ z`}mG)bTh@tH{48q_#Wfiv~jb2{G(SoP7>e8I5N}DypP}UpXso!fUBse@bLgnAl4J% z374I(%(y6FOvfY2_!Glz)((Ytz2}1twtwv7pA=uRUSrM!cHez}v=994-`RE7e#t)m z@v9s+Auh%wT#PsK%KMl;d5zzAkBe!>_u0?!edaa#Av|Y3e(YmcDlgh0CFgjIu9^O) zyN~&b@kM_gQSMKU0$CJbo?!k6II89kFm#P)v>UZ#{~u%|Va?1h^2<&=ev$wZPcc#+ z709)B6aj(>erSwij)H2y)nu8BH8Iq@udz`hB%#H@YTYOP@t^I2S6^&j6VQJ1jo0d6 zn8&qsW_hlFjnp@ zeu-BPn)dHyQoJ$F^oQVW!e89@W<(&pxK$4abBhU^K$D4d^T7J! zb>RLsdjH0?-*BxOG!53QS&eslbZ56cDw8N>V!X)wzYZe>;U&KKa$AaIBn;l|pqW8ixdoUr8&=>F%@8j23k;OLbB zjO5)9fA~W`p!VC}{q5lC@g{A&K_M!Wjooa{#pyQ~5zFtwesdZQG{t z;2it(r$23%Uw*lR9MIx<&wHNJk265n8e5@0($UK%JW(ADcb_2Vsv)L)C7N~0;(m28 zdB5sUn1`7=b-y4v3u6#KEQeQ*>Nk?FHYs|crOmjUFYUboZJW=Rc0Ip5?Jx^;3ArO5 zT4!<%#KY}Oa|M1W2L}jJ8b9zhDN}fpQ9#9qX}n?W1}UkG zCWU6B0AAJX-`w! zM88vfn)GV!ev>+zrUjs#Rw&SDOutPnJ+`BDy&b$_sgwei3uuy=8BK*OreRj0R69(y zIm)(ojafrt-V7cH0A5|r=`ty!xff{)(4GP4%F9cAt}Q7ErVG*@7U4~3XYBM0V~BS@ zSpwqJp2T+@_zoWB5b*jUhB@i=?!9Vr& zcgb(1YZ`ZVcggIeO!OrMFV#+0_)m7c_V*1~yG&Uk7gWn!OOtkHjfn>=?vPsb!%Oy{^K7X(s@>osNa_P!g7g#;yeK81yml< zkeAlTX1YulDk=_7OL58Afuwf zA~NTqOz&wDXuc{?eMNs7{bLT&-h&hMC}zhjirWFMIW7Qa)x$jYXqX zD_5j__4W2iQL)*U=s<43_-xnQ+#>4%cS*L`CZUP4}JaG*RQi9k2qWk6UTW}y;@AV=kDLj^1y?>;8U%>`fMqn9DMMabW)i2cw91E zAYS_Qgq!A;F7K=CWGOEXG9>rRgWvn#>+Ltn$Mc_ma(aR3Pk*}K?)m+_-bYKd=!KSe zl+U3Vc}I5ozyG^S0PF*vx8qMZ-qxvnx83$r?HpTTr@r76Ux54JO*dPe`ta$epXze~ z8G|kW{%G|-_qoq@+7KsZZ|}VGH`Xd#fwr(t=L#Nw+_7oxd;Fku@_%>T?YrVJH?gFy z-s9kGLUzO6e)}DE`_F%2O$R;Qe*TMJIxu|ViO)^v|DlH;vAYz$U1>1RJ^h%c*|E=j zhUYDojXXvd+Xy?gHf`EsKl$lT9mi;FY_#W}ae77hQCL zoqpP>j^iK~VS0x4(J3=njIAfA4miURI^lNg+^PEbnHFW5w8Qn}be>ooy7iXZyq$sj zwMqf=2RGiN-N#4kpy@`t<<=j28J8_xrf{ct8GB_B;npAj)OQc8T62v3;*MWhvlb#x z5^YzkXcEouu$@}WIq{_DDNpyjFqpQy$kRfxPP`?6A_JtqKM*-s$-$`TAe=t^` zAU#l;hJ4U}U1A6KiJf<$@1%Y1?oG6bNrwLBz3&p}ewAHv>0jB`zxv-A_zw1H83;e} z(NEc@uDWt=$tZK4Kl14LOeo>f7B9jyEMLiYUg1X<_wRrF*&|BIKVIheJ%r&Y+=U>4 z)X`6PH}P+#?}=aHpfvGq$liGR*|5`#9`*$>;1}~7rpRBmU-}MvCu5GK4zDK=b7@Bj&MKU1RBX? zhJ*&}$Q8T!h3wMIHIu5}kwL318cv&$0Yrbf%<_Cxy9G`?^;BabWVb-1Gj<6Pa&Nii zRtMWZ@PQAwKQw_5Wa6R=%wvguO_llf=ytUo#-&BzXjxiok;#zRGQ-#-t@bv*CQ5J5qqzH|C|uv4=J-CT~kRU{9}u?+97VI{XsszcI{l?KHh4ntil^D$*wM8ZYTF+7F*GxaCa zzx$z#oM)hm$%>itE`Zei`q4yqpXuKN?dLy{$1ave42xRpH|?_R&24tb>L#nJZ?K+` zlxQ;MJ11CNqZ|OMl$FI`c2X@90MEh6lrQIIrT}L3Iy-xvhXuHZ^q)D@{{0%;e7t7n zhW5<3->L(I(IDQY1sPf4P}|pzI%&i+950q;f%bW8>rMe2*i}E%!S?>%9v>zs6QEU@ zc=e-?KFWUblb_0Ot1TBm^MK5CY!IMxt`s_0D8W1@ywbL9n+2Br$QN*#mr?TB@X$l9 zcms$I07(6wc;fTykVDqFX{LGs{oAz|{P4pMyY^;}78(J^ilnjjJOOTp3aE2)SOVKQ z%Zc+{u!Rk;3eWnCV~%mtA1vrCU%piHPpLr2_4bvoe8oXQcsBsI7oPD#}8m zE`(D>dLLgb6*`YH4KQbDtU{&|i!50(Ob?k+Fs4BjF&D8(Cu zxqRZ|ACb)4U_ZX?r}p6wz28nd<1D-ToqK{FHt2A3r)F zycHZ`cmC>nfte?yX*zRL*LAc#jlNze$6Xi zXSd({B|GJmle}NiC;$7JFWKcXMKkVF_Q4N*$UgcHe=^X%f`s(@zH`rgj<(<;<{^59(xyGb8iSKax;DZlovGL{h+SmQ1o&D06WJFD$$@B5{d*8pw4m$WaDa)Mg^@2Q4 z`yy=?XD|tL?6Jpa@v$x){@dUAu3hlTaV5I=;kxVo$1b?w6;9K~9(~+ibKwQ{p%4Fq z1Mbn!YxerrU8MJ++`pH3VcNz=KJqa;=VdQ-{|h!|du+KsPYDXB4|tOa&1Tjjd4JVB z5)ecXb-6G=hJic85N4Xt;9%lOL{gV*)GVZnofxL%{qK8^n4M?YNzXsaSF3*h^E>Pn z7rfriJNHa`?sJ|!_hiXBc~zbfMng$ra6M6$gkoOq!~L6VoS$+X{#8dl^PwUnlrfq5u`6~CFci!m>0hoe7`}*r& z|GG27kv>1a{pY@o_2P>!c5Rzq{NfIK$2;EP+VC9uxm64~Zf!$_9o0}SkV2DAY%6*X zq(t5pyQ7WM+DspdX<}%`HR2!3%@_|sG}vUeAT}fa=08|+ahqWb~!k!Q`*Bb zZqXJ!@}=2svRPa#Gz+jD2Je(pp6?4mX!+uN%;N_C2*Roy4)D6-iYtt^c+o`{>A<1a ziYd6%50m9PW{nDDvML|#-(-v;ikzD}1^f_0oe>en?l{uV9A4O$^$W@9)Q*dt?R`4n zvq$zsiNhqkAL3UuM%*zLN#H@lZeKh4H#;f-+PlWS3iP}30sL@CTA2yAC31MP>HIhUYY=3H20FO}(*l~sARN{7GtE{YgI zNNmDiObX!8K&9c#>0$`sPgf9h!!Q+{B?Y-IK*7 z`oyAgKCt9DZ;gq}B}gOHdF5!HZt;dX?g51qG360TF3IK@gOVD8bOu z`zE`|_FlgK@60prKKpJ-g=}O`vhUNTo;fpf=FFLMEWJYxKG=OkJn-qKpKdnjF-?m7 z`LO1&ioAz^Xj@K5(cU>?R+70e`X=o&rZ`iM$GaRF@jP$$@tT4R21Bji3{qC>GuE#d z|5Y)SJx*_|H_%M~(NAtPVf#;S{JE`5aBPYXy<2YniM!*@yRCnH>7vh@M)(ttKjKb4 z=~$Uws+2+X?xe{`J+RqD_BO-s zU!Hixedn6XO?!LBe*2m!t-J32t;;T+?w)<_1)cg?BH6`4ckJ<}xnJD+Yr{Qx^d9ec z1C+U^|MsFg@dHPjvdhYqtE?>_e()Z}yGi` zPjt^b^PG*Z&p-d7o==h~&JXM4!QU-hkUta_$|qC|*z^XnqICkkYo_cn!`=3)$5f6J zMXy!X{+J=U^NyQMdmX|5%D0|!Ke+x<_tcY*x_j@s!A=}cpFU0VgcJftl`F*&I-RgV zrxae0x!|`YtN4Iqj0b5`YKqGAis-3l6ZIeec-6{q(#a=SUHiwo1sVQ%Ph&uRrKh`W z5)&b)jLj-+tfN^>1c-^rM$=(5(^)Wu_Y-6yz$P=>oB(uW@mRz^daX2<>L~UoneWJz zrU}|90oVwbHEWj95<<+GGiSQpci-JKWez{$aP4$|&decDAK<_P53ukEi_w7ppa1!m zCgE&XB73~%6p{Lf7U&k45(@Cg{m=*XFHQcmN9faAU1s`%%oYF~Dg4#1er-o>5j3*+ z31bR<08O81(*DIE^1b)oYYY?U>d=H38kI8P3t)F0Jqut*aOGTSM+0=nqBU3MI?|;r zhRKeyJe=evir-U2;RS(vssxl~k6K?Cx30SCN_V0bYiMTyaa!gcoGsBY|r|T8~3# zF5QB{4-(YOwXOGdG4O_QAnwWjA~e0vNM)js*KS`(*aO7LDPhpsuUIBlbjZg*${ zsYNvFwa~Fm$Q(~QVkWH(iM0U1Zn?(00{IA#QlbIlA@<+6eQC| zG=)mQuK7aQ;D{P0profgeA8z4e1ji*$*=#se0liwW3=erHb$MBB&~StT${-^eJ4Jf zQGm$SHK;Bd2CRb*wiOZl36rS20PS{!^@m8{glQSzkV9rk zAhycPpdoy(sjW8$m4_dGgxgEPBh1+_S7GXGnKrnVE?r{$*wUp-ZLT_8N)!1qPXll& zmN0L<^|q}w$e)w7ly$mHPIQRp%~RQF4D75k4h}x@6(^UKxRi?bwB*^FWrZv^~|Y^GBZiit+jNXPOu}i1YKT$yL9O?dxxMFn7RLc z?)}o-t`Z-IG9G4aljnO282jOSNs*ijOW^;T-`pcd!|GQmF9P)|ul&A+#B2!g&_na= zdc{}2;t=uzhaEcGUH$b-wfS|boB!IsOq=5OAS4&=T zdY>{e?#CgFmu%_*tkr&Y(+}NGfBG}S3-6EzeCE@i&?$hYWbS016vj?4(^!1tbifFi zX35qGwd0RF#)R+S2rB>xm-z;aC@D?|{}J}GQMlip6D>Zc+ZdaEefO<~%U~LY_KSmm zta1k(aEANO&wSF-=X+?&Z+_z@_o+{Q+)dD?#p$P=tP{AOl9{WEWtwG_Z5%xI_>tnG?!91sqXgC?O`gJscp12-4dLN~ApXyhkHxQC{6&qS5@-t!)QN}7FZ+`F z^J5P>lo<~=V5aedd?Rigl$=3ORw9qZZ~xtWaqh*^eE$!l*Rrxwcm8=Fb+_Jfqir$} z!OVL_YYfcY6v=Tlz=;W;#|HO}|NffgZ6EZLrBj@jU-BRBns5ELH1$6zy4u~=AwR$6 z*Y3j~Ip0mGs0cxaufrJV9|IA+CO)c*8eiT^exCShH-1Y=luif6ZZJpj%t;grUPeHA zLDUm$KvFm$IWPZq+kQhQ#!1%EbB?q>I(6vi@%zDZvYPuKsz#Tbe|2lsh25qUtsbdP z(7x-P4!f?>p3pdelUTxmm%cz6*d|Av$U8R;WlV&PA;`k&xDz&i`Z#7$gm_#uArL;G z73K%MM2gC@2N%4hy%27D@3=h$ji(o42d0m(ki|ei9v#vkNn!DwTdu)*xy#90?@C6L zTbtu3@N*Y_PDd~on60jY{CsIKpXsi@?phrM8}HhLXX@Ch#rC?jt3)Uasxf2?l<^?% zLpx+j*x8+Qgq@@3Sz45yI(?)omxDeWZ{|oU&>}kS)M6B^{7lgk=48%4|9l-Wy34fR z5x8Rl2l(t~KWl?Ff;0f88SU(=ufE!S{p(*h`}8o_-l3lbF$_vv><4hH)bx9S{Q8!9WRM`VnSs zhzT?M6iekrz(lbTCe>=efH0O57CeML`5ODmp)h&4Q zEpz;NvCL?(NMQq}L+`tkzKy{Hrv1(!9hyVvm?yy~0(UfC3q`N+wT!}0%+^8Qm~2E; z%dm8VY;<7nwoFb>lc8OjX~2{z6?VPx#v9$m7mMka39>4g2zWsDc`>tellW=1Au8|G6+51=hI&voh;bwPHuHV#`|b(6*z^##nB zn0;LYks5P~L`V3%&6Y5nd7Oo)I1@A7)~3mi^(r)%4Db-0@DQSrbUB&l8L*)GfgaIh zM_8Ph+U3ebI>mW1*{1M>AvAPMe+tQmE9oSI#Zg!(E1T9m{8o8xryNXXn6Nz_m$U)W zm&*m4x2u~vl{b<~c;115bQ!Im}H_4K^F+(ODCfb_S&zTLE-;bq$;tOQU5 zvds~t0UaYahPJUczI5qwoyuJzQ%f(qS6^G~#*Gld5|4%QZyuzuKVTd`t|*5&7h zSGtatcK5;VvPXvo_z9eI@xlP%*afa-TU3NhVx2%q+^O`cJ;ggeQ)jw_T?b&Bm8dCVRmTv?@6C&_k?ENQ-~gma}|YhW4Hr+1^LP z8@utV#Yfz!{4n2)IpF?)u~aQ&YaZ65tV82Kev~O_tHT?je6-u12b=JkumS%Fvt8;G z_x8diMjt5E8YH8C0IER=4c;i^SrBb{nz>@1lF2l<4Rp(BVBHyJ$`wW%Nb279EM8G- z1?{$wPr6$O_-Zwy4^YIq5KB0px{$iS(3oW7&5 zCUD2m7KGR#%{&CS-4bl3$$lyX%On*h9-fIu!eK!XGTUBPIx*=3+$TS8ZazM)LQ4x5 z0b`2l(a8c(3#(K#=g5Nkkrx#cFoDxyiOU3Sw!Q4L%48My;rUKjCT8LyU<(6}C6x4o zV4n2Sgku)aamS|dpp=C)v3sh5$?2kw)JJ6t;X-julUQN75(JOA1A&!QOsL0+%Bo3d zAh58?Kb6IGmYn_MjB=H$mMORfS23Xla#nQ8DJR<>VKEC3pjE>5&Mr*MG`Te^mq#<0vQY6?bb>S6hT(L77&@*2pXt9 z9CHRR%`<7zBs=cOrVnP2jyvu+SCXG2+U#=c<&=}nFvDSlJBv8{v)LHv?r3!#a;BD% zU#d908!#|rJ>#xuSE0~kJO23N-N`z3K5pDN)2_JhcfXV7$bY%HUz}^>;D&~F*V0g< z@M7|IP}@)&OlsI7RYDm2NJF;>BL@)j;rN00D@7w0nn{r+>L&x&jh{8t;f)W!jhBWNjH_u+5V-Jiiq_Kn09xKUq zyroiFXf$P(nZ5Q@7C{iB&=SWCuXrEo9-apZ#~6*1)%x^O&FA9fQkvbGIxS9xKkZMu zkvbWXuW^ob5$hB3vSAzENjwzLAik1!(WAZdKVE>`f$tW94&)e673dG=cf>1H`eUWk zMqg2@iH{LaC1Jh~?5pW>@~<}aOBvZD;L3PgB(+{E^8gV^o4F`EO{Z1FTVN(EU4k8- zbAORwrWHs?CXW<5;nIHzgJ2%s2fh*EIB}A}mjNL@4i$w7A&GGZTkN`%17tDos#Bxb zLG0=;UAn@Jn=sK74B)lkCDX-!pin~>Y!J!`53Yw{^Dz*{dK}+nO5kpEvyQV_lNQSw>Mm zZrf>E2*k!mO>%?|6K1SQI#GDjy4IYi(sBNcAk5wLJ0Q?I_i2$36oo7xSw<1UBDDR$ zX&-krl?&X_$DHE!pSidG_HoN4?50ojclyK6^Z4=O)XH>znT#tRVd04z%4~8R zUL?Se8~(e$=Tp$E4#7fvOqm2>xs^xxUvb4JrD#@cd7yQD+pRy50^jeXi1?OioRh}L zaeKQvZ@o_b;O1D8A-#}3Y4Pq87ktc441n7Q9)4VkepgzMZ~yQ2q}=!!*@@3LJS4{_ zke#B@)xJel$%#%LgtnNz%T#yHc^A0*ADHJp`N@yFfBtj6rH{E8gx{eY_A>fm(`4Tn zyUP*mKcxUxW1Et!jlg}l*3{J6I<;7v1~^>>%FBu+%$BfG5acY--N-Q->$N#STzVzo zPeS-Mru-qieT@C!M3--&{^8_ocqV8%KGJFVka>>!iYo z+C+NAV(u?3{9zczz$P)!GjteD2W4r<8y*7Z?E!46(R-{6KNpG?o`K3MIvDx z(?Z#R1F||0wv(U!IwX`~vNnxy%8}^Ed}9aP3)?9Z3?73Bn)z{n@nWZ($vahe^+Iyl zNo7Y~FhW|iYSmg_yG}>T z)~K!s$%R31w~as&Fvlfg)Z#1H*3SL{;KxM5Z28Kwd>(2{B{=p%fF~ z_GlMqZ{vn){cUhvY1ytdyVP~+O1}XoeSkjH=e1L!Dd45I6Nwd3331S%riE=!eFt; zd-BOAP2hgR4c~WP_`>Ji2&rUlko09I*xMNhEkoeFwT$a%l(Wz5e2s(jc}5lAF7JEa z``pWa|GSL`v`d!+VJ!0Af7qe!H62}Dv0}M76hh15o8S0`Y13p%7}g{~VrBJ4*V*i~ zVs=zTsRdmuYz#3zS2c8*mLujhsLK|EHo`QZ3q`%>7BH!y#Qx%G@*Zf_e6U6vP8H>O z(!@DbjQ*<{YnRG4W}S|6ELa51#B5Y3C0Y+!0_0jsp=ry2uqlZ zRPh%Qx;Lhm$XP8)2`$nl)DiMbW?COk`_GBtDlCRTDZ*VfRiAdJ&1}O;8Ns_`X3NIB z$}LX7OkS{|g4TSAEG=YflbSi!^JZZ&<@uSdZ4%OFUbC_$jkEowNqEYO@V`o%sPMK3 z>3Z{9;FfUEBKYugr(bkRdXoh3c!UK{)D4YIxw`3hE+ZVL>J&wSa+O2)XK|UIrHzkB zaE{YUj=p2hy>jhJvlBg{e5`A(ZPwT&p}fK}_N=ItcAKV`vClb=8sqoEQuNzu>^r~FyBBMh;V=4u#PC$tso zX#T=G=wRoCi2kSmx2kI($+s6Sa&zV!X;lMPteZK_0R(d#0VnWMgaKHS+_kWs6Q46?PKPj>)-zpPL`EL3yyV!=?aV5vN3qSV>_oE+PF9GNW z!&tH=jXbwUGY_o8D5LtPUIo4U~W`@L;E~mPL}`t*aLP#7&ADb4hYPFz{40a z^lb8im{2TegopZu^(W?NPC4a7-?xPe(qYWt)Jq79^V5qjzR1ibUUlVV?v+>mDNXm! zx*z=DCiC}zraRUnfUvn?5Bg!V@vIMjNSh6(*;t4zc5JYJ^|Fh#?wD;_>4DZmoY0s! zb%n+$D`jEBWZ|ME7A(}46X?ereWVsPqH{q20MLr?K-p}rT={rSzmaF?jgfB3_LCa|UqPyOXjGR?BSmw+By`0H1_DyP?{ z31?Y}cA>nUv^;$Ularx+LXm8&4-dNf(6JY~g+>5O=6ZFWWal(d!4Th=|gCR&_vPG~?J?$8p65<|D^B@<%L=1p{5Jx^~ z((d-}gk0f>H27oT3?3;Lj9-TqNHBzGhlh9In>f^&Z^W}kR2;$u0e$>E?-=}eXNyLh{m6aoYhO#)cSm#ht6%-9`{p;l zDI42Y$==xn!zUUyk3II7`|fwYYwxE`+r`pHxNpFPEOi~7!$7Zx=-Ivx;U5GswDY!_ zlnGVzldrV$oQ|EfSLwIV9Q$<}BNO4pkmJWDzoZf343+wkKqjN3L2+w!+vaK-Tg-$9 z2O4v9)H|_r9Wva3SBflhvqeCS?6`BBKUa%d$j_=n+0>WlHy+gQ^hN6jVE_UVL>F!? zJzY0Q4XsQ9`B}0Z8V7t2V4vsT>*N;#Evy=;W0e-#QeHJ(#1_zX*1ap2R8zvG>r!$^*jfjB%1tHX6BP%2WoCE1#9Wp+-1ec2R` zG+FR>t4qPJLAEK93ZkTv`;kj{II&tDeJ(onh4Qs1(S0ldtReeK99_D0(T-b?5u#{FH!M4_19b&Lh zoT16uH4bKHWk`Wxylw7wv^KdMtp(JL1%4Nc{uSmFcwq$oQ>RXInG&#*FA5};67(N% zzya1@$Bi8;2YpYu+L~JRy-~uf2gYCKLzH66?Z;)8>5{$&X&pLk}zJN<-1iE2Qe1uBCuAHC^& z$q{dY+@(!v=DA$66@K>FXPUtM)?ePGb^Ian!%${C_YeNxb?)&$KjF?j=Oeb!MQZo{ z?tX_^ne)y)+wHpRE)pQibcx{MhaWZ5PWXmEJNuq{e{b)ZOMyHI=J($3F!kwY75_Ck zHr_`LlB?VU4?S$(!_W9}<8(XL;^R|r+_pRoTLGQU>W{n)#^3w#v5-o(=(s_uTNVZ z4*U$a_decf>b~YYwbM-hAhZVm*ipa#4-Z)(_Icl4N?#kpN@M!&2gyo|mEe(s1P4s%z2?K0u) z2KUED{~&*a4_Nua_bB-AWf%hq3?Rcr=4$Hz(HHX!_kKMgI)wDJKJtp#qF?a|;`G(8 zWd0k0EKG)}z$2K}MAMNXvnJ{&#waK;2p7$PZVkKuM~{=Wxf7)s3O5=sI@>i{cdI_? zh}drT!fhs7&-`GXA(b;~0))A?>n+6C(KI1ZQ;X`%j<>F2u?T6yHJ#WNYFeymPy$Tj zorzrPgek^Yg}_2KVRhV%KN^XZGmT>#8X>HuqOf8LOkl3|=n{irn;VJ)gXl|2x;Bbf zIKomE(n2#G<}n_Yfr|l$_D$GsSKEg0T`9gj$=-*htR4qEqeVcPXu5ZZE>bhfU5hl~ znra(eT1~wl2$en>3n`+VIwuWhIa$eb^|ImKq@#mL!pNweTY6CzMt^x)tdG(H_N{j1 zsdv^MmH^8@G{2a?gI*C%2EbIzdhNCb_#ZiS{q(0lV>{El+jrl6-S2<@drg|BX`sE| z-tV>7UfSvO-n1{f>{9oiG8uu!6ZEo9l7?*E(*`m@>&i2`Y!e_%cI$vfs;bdYEE~cW5Q{`BJ*opHzmlPHE|NXk$j&?Iys` zyOQF3^`{PL!HRzJ6^C?(5P&(f578dmDEVNH6r>Y3f9=pN)tcCFRO$ zhM=`^r3E9xvuv$CMigXAi{u~+%Yu><8D!QiO(4P!!!}?*=lD|7 z(mWHwQeOBHHn}sjXf4O#n4n3*_D21cYTO9>4(-y!YHx25uaf3QY9R>FE=$)pxTWjl zYe3JfX$2aKn>6>sFIbQPe`pO%0%VGJpsk9fsmPUSv03wSbEh;Hn_9#VWVv>Y{rQ?B zIoOje9~96{mjo;bNivYGL_qxQ0nosf0)jGP6=~zVNkU8GpCp+HB??#gEOrDn~VEn1cmkme!$f3PmXhV)*0@2mck;+E>v)QT0$Oi0Ai z7T8n5#D#Ca7jjE1L_HVLH8^qfUWEwthL+K7R&{hAjRw*>jHSG z6&u^#IDH>CLVgwGt71co#$@qkU0QceF3WNgMr62JDL}9_nk~&{)@Due+tsDDDyPD2 zjcvrv2+MrN`d4G2P9{*N6zx&Ai?8UEAii7UJVHC$C{FLr?)cmz0z-Ywk zuywgp&t@rqASee&k9XK+zv8klnl|<4KL2I+;WIyICpqr8^B#p->OS|`+st+~aacRg zJaAuk&+i@*eQ%Vu^GWhor61J{002M$Nkl^ zg@dy`e7ebce*K&K+#l!N@9w_)*TOCQRF`a`-z+WvSKTFFzR(p*qx>&VJ?)dcpUYF{7=Vx8MFN3F)7gxtRYn8|p8<^opDJ@bAo-DRo=4aFMj-zvB*`bxgt@ zz0ril_CKD_m2bV`8Sb3_xX@j2{u$OE@4J7V3baIyKz}0VtR;qj;$6|f2I*M0aN$yS%gsNrD3AW} zF^z8%>>j_1XP@(Ncj;HY>?$?R?zQLcGPCuD``&lI?an&;{KTmWHWZFL{2+JZPk&(J z?I8#6@BaAs(^8i7vKs5dN)Z|XyqTjg{^)%)sRjBb4BG0zEx)*38u`yk&hrV!MlGi@ zWV}fA?1^syqo3V&-PN6Z>WAH%Z!U6&%s$4wZ}0cn7xE5xh=(7(AI1Rm$HpUnshytB zLTLsWugO^%6HuJdoC43G8}dWIHhbUXz%0WHE(gzXB<;)2cz)1Rh< zGo@(^lRs2}W4bJ)IQ~c7SR?@m-C-8Gw1~0JOr^A_AuNJ++eA=UUW2?8F#|S%2*FX` z_mel@3|B0S*tygZMllI6R2mI5&3o|a>ex{7RstJjxClzT6o;BK@QNe+T7aJwJueg4+T2zoX8-`XR9wNDCM1) zCtGe!h?4?{p`sB4#~pi|2Kd+A8rlC|y?V7dTglJMcO3VcFkzybD2GPj$Po)u7PhCJ zda9W96|#@I)SM!*qdaEx7&mQ~X>RJ2spi;)wCAs=ac@>P>Daw+r_A}Am?wr^HV4}z zeUFMj&>;zw4;r>3f~xoSYnXU-MSDU_icU6Uh^ftJlh(QfM_s96cB4MXanRH*F|+y; z7WE$*^yLZKsc35r)nnZOb4Ah=URjH9T!KE0xp8{zl7LGc3{E$W9DkqmiatELC`-01 zJ#(Kfp<|}Trwj>8fN;za<_Tca(**AJH2kym81OCD*|fp6iY7A)M{0{T)3n?}nsk#e z#^L}s%mH?zc4J)cYHxC#_3LB`NtzXj03n4PbA@skpK`Q8iJ1|`xiV?LqQSd0MN}-8 z(k@4{8JO-$BH&F_v0SvBqYlEUA?6+C*ww36y9Xb9P-c?8pp!(8+hPFC#3tdGvE0T3 z;Z-{rn@GLqGxJl>P(^4qRL75=5)XU_hTGC|ZQMiyZ1SjlH>KPQ)z?Ua@;PZ#J^0W= z?mivmJ>j@x%%94fqmGiptWuYYv3|kAMT>O2_bK-$37npJ?s>PDoI;&^@=5L}h2sb} z>EZBpolYPy?{`R(K3iilJjAAe@h%;HLpWznW}M?6r+sj$+JaMOrIR8dd$A0Wvp7U} zOq+!Mw5dGa&F_o^I7Tj(?fU9Q7+WYFD)hXC%}dezMZXevC_45+4Bw#?TJO1vZO@X|vaAFMS1uA$6ZHd4R4HH7Y2up(eTRen(xELb2@2d}u7#NVJ5iAk5~ z)2F-Hvu2rqyiH0!2(3qsEO&<-dYJpy{8!!b70Yex8ZGk?Gxyt1&JEwvob1<3WjalD z(upU!zbj2ntCAmoI7vO^po6Wl^eNT^jE8T%^|s~DW)-JnkJVa&(}iuV%_gkJf6FUU z#QE!A|7v|5lM*OHV0NZPTC|)PJ^cOeH)Wk?WEzmXNQ<=x!mgbKpdI)cHaPsc(T{Vc zAf{7itV}hc2kwKlF*r!9n>Vu~8Sa!8r!n4s`)y0tGT6)?$_dS20wh~>wY5Mx z`%74k8Kh*uY{?&_aeULyZk15>fAqP_o%NBU+zr=V;|@D)wgsmi<77wu+V5WNZn)vc z?#Dm6K{Pzx1ny^@b%tq!U;F=Vb2nUnhudwhiS9SQ{GPPWpHzPq2d#Egbmg7zjyn1n zQ-Vk?1JB_4*dzB;A1kuCkauAN?5wjs=DIIke1)B?w!r%Ns5I&e)gCwAbc;Lx zKQ1Q)cl-(ayN4f9+2$N+!Di2%<(_)#ucqbx$xo0^w%c#!MEBDhf38i9Gn9{?*Z16W zPj}~Czm|6VFWvWV_?|mnyc~vs{)rQwb-%mse)rpZA92f9H@ICYirtl0eZ!q``e|;TeR>4c(EWG+ z?^|x4z4vlIyZJ76-S_Txeciw+|)K0fj7ESTC-@SKBu5*$@;GUbC ztBs?>Z38_K*lzr|#%2f`I~QDVzPtJx-%?%u=7Bc_(mTfR(=Z0W05r%LYdw;Cjb+GH zks&iTa#9t+dza=jwvj!+f9Uf=&n=QnOagbDq>5Q#u%uJ4`^%)t$~_2&iHz_aTZaYN zY3}F)cTq;3!5gUKM!CJ?7s?%tMeeWvSnO6*HMo3rHte;tQ_Vs?MGHP3NHtdkTTp>G zzIp8RBodX_*NX*}5AR=tIsUj<#3-~6XGkPyf7kKW;U>IqAD>f`|)W_*#HtVz`u`+6DeHSS-F z*SJx+owo4Y-U~e#zE?J6xW$b+3a)XtQ9_!N-#5n1+GS)Y(x6usq%SY2c5AgzJz}>} zc64#D2%W_ChZOmc@4R^Fd z-YxL7)kEuc2TczEen*>)EH6A7AlMFlO}AfJ({1*7N9D%_8tR{-(X7%*IuRnKNcDu# zFVo^+j8r{ec;N+Gs4ZEt*iD>V;T9~faeGWCcGXofZ=wMjp;>_H>T36;FMY|pzvG}Y zS4SZiELrOstCnlA69)1Sdic6^7*Ip%f2y4RrstKq^qhQ+Z!mPx=p2zL?cD1eNhLkw_vV%cjpgowaUe=j zdg=*nkC!&uIB8!aj5zGD!%SnaqN2k6bLj>*X=J{Hu9@zxyY6=1{@-tF6LX54Cc^9& zX1wOinPbfKa%o(zscE&%0m_upAU`1T=ddNfI8#^O=(42gjsV2w%`Hh_NQBk+A)cf$ zYn1uJVDoWiMTsjd%r>FWuDedRQeJ=k^=1cu@#4jD;B|$&@WKnF6?Tmri4~fS&KWcI zGcC0%ue{Q1!f4V5|s02n?QPr0K84wmL>?-zJyo_ z)mPdsVsbDq1|B9#P{hd+FzC~XRgae-C|qNo`nx6lwd%8MRsf{WhIVURm78_IJ}$SU z+||pRRh~9B*aSg~t3`r9ZH2g0DMi%Dq++v_0V+mdw!vrHUp~X{JO*elHdipMR9n|5 za|S&N`e7Ws6BwW)cs+>glK5`y`+`?EQyXN9yd5YO(?~ccyDo zF-^`^n_RWbHRQ=~JsPD5WDwFL@MFPCKjCCECb#ez!dS#N97ZAlqc3st1P!ztnZLpu zOs&GvX%Tp4YW^^%oR~I?%E*{jFDI@z3*mbPu#QUmlp2zpuZz|vL9XZ2>W`C-BrPhv3GIa(&F`+ES<)^l|du0anm^nwe zag!#yHznxHlQ~hGVQVMXtro8^B2Q*~G#;1acz$M0ZM&Q`IIrcz4gyU58 zuYUC_6NF+ugLk3MJ~(T5N+SBF3q$}uYHMqaCpz#zw8edT;rr%Z5x~-q*hI*V1hd4A zr-xY++L*E-jHP{(!|)6(v$>QbA0lj45uQx}wBE@Fp(*{3{3t)^kPrQh%3)T7ILY9{ zH0yPW2}9#y!Z)t;*&whcKl&ag!PpEf60gHI!o}mG)m&R!CtC6+Vphv+%lPpJ%52Cb z?xMM$Ga9BmtTXHD>x|zbEre(d4UM+$Q&=Jl|aq3EV z!T_O+lnuoOOxsXD0G!s;)TmFliGP*v0>usAEI`r^xS;*A)h^(I_GoQub-BVf;}Q@r z8_x*M5t83=$KCE6Z6qXrCrljT-zir^eZAq##!(5)L%W1<;fjJqO>K?U2~$LrCoV7# zdC*SK7vm#*EBN7=^!WoP&=vUvN36u9{aa)2L%v+WEmy`};(;UR5;~-P`-7W)cC-7; zr$6Z)d;AG)N*u9Cy!4mG@VkG13o-^|eiI@v17f>!eYZ5QTXsfK+{{ zHYfEIw`zTjTV7df6HQ`5>n8!B!gf}}AV`hLOX7F^`g@he;R_q1+V+LlaPtacRdLFh{*cL77Mrolrd1SU*xun5m={N<> z*C3hXQupM(<#*s8LF4qoPFL9~$0f4en5_+!c?&AtiVaO}kFkYrRAH9ct_`>cOK9O? zwgb};|5{V$7F5b>wFJlNUb}fUazskgt1zbWsFj&-t|Qb1b|_pZ%{vt#dh@h z?2n!!ZGdl^Ez>4x1mASiO*-oKra5y#*p5x{)}~tZf!=9ag2O*si2>nK|GV0oU0cm6 zIX%sDX<2zLH8W4+fhJHoxBmS6r^OhWQ8Go-C5?7F$zW|U^xA_GAt=N?DvM@>b{yTV zmG;4OG%__dSFln+5cxJo$ZSZKaQeQf*e$ArlC4Lp!;PjSZ@xXG|Lb zg++yOT6TvttLB)n-CpWvk3IG<=gOScI_8*T%zo*UPd+Kzr+b>PJ%l^*$RnkZw2y3` z{!ZFlm&ne$7Z8zAmxLIda?YCGh12Q~WAH0uHRX*1QE3NW=W1cf$pz+{Ol_VH#j!kI zcIJP^^fXTPX@e;(Q;Rh2p-J%_2>rTb6PhavLHr{~soWOWBXUzC8}+86V#y}s#*o67 zB%H;|5Wi=>E|=YVcnFsb#lRmx$j?JBf8DE+$`?<}=ccUP%yt+l@Vl&m6$)6n68`l3KA^G*t zsUay98f<2#4|T^J%Sk7lB(3MC%*l1&`3EBbaDlM;{W>KvW5$fZf^PB~eFkA}GElzI zR`fIe0`T6?=bq|$&%3~*#ls;WEidn_;Ks&60McRZ9}IjLFXT@S*WWkFLcP#-jzcJS zc*irs*?9R_^OlZN-=_XiK!oBbbOqlKAwGRKfQ45$uKnSQa3Ku$v|re`;2DUQFWd*) z_dbLV15V4zWbZKsA$;sr;uc)Q+XknsaR_ngPpj9gbt_k_bib5cd>PMk2On}!Jm`S; z@w#PcoXmWFOu>=qH4YKhsWeK|0^!bpj{x=MWbmenzx*;9ba< zE9QdYfS|oUV0^(j?UE%+-F4r;$;~?SShu%q%n!pb1~!QSkvp^o&k|&YVO&X$OE?AA zoaDzIuR_X814SbyiRnTo(GPd_&tFME$6v*uJU4%-9a*0`q1*~!No?nzP_oTQc1=~S zd+Ozdeo?|ANkHiVtCrP;MWX-H(n!?{_gq6rt70OqCBP5gK?wn)f!L><2+`}&kRAKf z>tnC?TlbJWh;3ae+a3$A@@>*I$MFq9D2_2}%=M(R?a3!n0PWZ;Ezoh_JqtyD8`8xX zDKEYM`^sAP%Bot~lUF+`Mrd~;^URV7;W!Ldj%Zi%1-Gug#ohPn8q;EfwF+@U{Pt+2 z3o{4szF7(FUeM`A;n(Qmr zONdz_p*!!49CYoJV7x0wJNq)#C8|wSfCbB)civ@;9_x67In?s-!;f(H-S>O<>Z||M z(dAc6xc0yQ`yDMd4>SR$NY|~e-sn1-q>(`;L>h+ehXEVU)xYaDY7*6EiI_nUor2(# zK|_sYK1^89qxBZeB}2I(Jc;;ujpDLEHTv8NtdUkqt4u^`Bf^>UR7O;vc8#>iN;M`H zOR&Ko&>*|2VMaL1P3xTFG=73geV|YYCmf0^p_ndRAw4BsxmO!vDH_J{H z@N)I)RrZZV=qApzNVidPxBb(&Dyes0O)#jZg@vDPlpx_BD4a81*` zxz;tIVW{yw8sn8hK>DJea?^feYDAGwy zDKALD*?@NKkZ{|Yp8hPbww55?JDImv{=E+*;j8D%c;wWlQceWwyLKbJZfP%9Nr+nK zvZPsGRkh9pxCp-ho4ydR>n{%dr4|3aqwhhX3EQO|`p6@X$X@jZvy(k>;v@+|D1& zn!>ABt#H$K-OWvtIkq;@Ns;EE#fw*pyt-V)Wu%SSY-!Tw zPIitFil?b9Y@~{c3fnls_YxZ7n*wmb=~gzI0&EN21imLZjqn`450)2U=X_w--9zoc7lz1>Zj zQjrL|shf~iPhLGS!nd9`y=fuwKB{BlSvSP(l_p{IKD-NQCqIWYlHU&$J~DB zsF)m*GZR50Wrhq%XGkmYarkB!0|Q}TGkI!}orqpbXOVbBU~~XdjYcHPfKJf!-hbg4 z=2K=`^!Mb;Z@VR{tK8%l%soHTD0(7xvoYU z_tgp|QzKfCP#4PC6U^5oN=TP@Vf0NwEsnl$57>oZv1c!Ax6g^6(1{Z-6yd$oX*rme zCMHcx&blg>B?p*!Xt#@rNydSvuO9sN;A`{mXbJ?~6Z1P=t(>$isMBt~s5oDFhW6_( zHCW;-R-XbETZCoP2uo-@_Xj4tR}{Xpcx%y0ZA^BT+qDoT9>E)R>@VgJeW&tbLm37n zOhiMmq-d$KOHLaNRiJ1r?2Bc~ePc66T@xdczG&K(P^P_3W@1XlDO{>+k!c9b6OA7~ z-hK3=XIr&!5=kFvl;ClU7L})+cB=icK(q}9#RIS(UMUB88`rPV$fBHwGGeU6JMRx0 zK3aWiaqmr~Y5Aqf#0ilOAD+W?Xx2AgQc9?5Z9RzQIJuG1BojLM(qK2*WCK&j{6)ua z>J*Sa0p#By6oE|9T6;}qOHw)J54vK7LUG${POBr?T)|-4Bw@Qw8*B}U69)lxmIRI1 zK35}deSLR8OzZ8!0gk2t&;@=u+46=qlc$c-F=NeHbZARFr1 zP{q7UTjK^rk>;%8klOZyPz=%xX;WmjWMFSg3OEVIH<`83P}M9O@{JNu)yXtL!Kh-r z)v;`bFf{i?3cjt?HnBp6bYrh}id(BoD5)NpkEs`CCcsECUk5$%E>i+K`Enj`JoI!a z-cUlldYPyS+M2X48%Q=cNBIsJIu3Z)X|H|_X6RcwvX>PM+5W8KtgQ*FHVeM4Uum;?xu>lFvT zV)@dl&d{9OZjK7oR_T7zvZ=AjOl2Va^ky{VP+RdhL6|KwF*x-eRh;K?8=AC6<*GI_oM2j|X*Ho@&m^RZJ`7(9FDFua;51w|n;Puy~o!@A7 z$C*F#q;E5B5l!1Z-f9ME{3rTGX*k@gkksj06qJfO{sR_%K~lT5BQ<3 z)22<^!k8Yn+e$~9iodDvq0s$>+njg(g$Zef>tJE}`_|vPkXHN}!ui#c)@VAN@xTKQ zyHTS@8C?-Jgo(%7n)mVe1Em=cGf*Cz8#kU-?>GaGU~|9tY1!*P-%Y8ga5HD_r+&5N zG}b$>cq#hcZ*JKB!X>{;eh#^9?)!nlfrMZG<{p#d?6K$W?tOdh>62!_85orz`{C;_ z1_r=@^{zhO!dr|gH5%5QiTFB>23mSSXzCziC7#w6YX2etK4e~*Vt}9 zNAF=w6@dTx;~$_H5tnbz_T7K6nUf&C5JvEH6kiI(<2`=_iF$**B27)&XX!F;XWkIGhwV?;iaBq5S77#>9sK*d=5!P)$wHy>G}9f z@IHD7?BDnIYw3o(`U{YF=iAGUJSX1ue`D>cPXi7>v1mSjUTnIoglLgHye=_3v;i6h zZMv5)QPBa%H&t)`iEE11{kG_d__bKBn}19B(3IFi%9N5tx<#_*EaVQiP+H8~QAB3Jc z5@2_tk-KRU+#yA$SkM#pdN(xbXseFx7fSfvqv5EHs8-oOtgDnm&QYd$xNMySPf;hJ zUfxthw_CNLMGFrtK$IpMA}kW1adS4Pw=J@}-&nOuJ53U-ZA-`5A(+~UG8Jxn9Ocnl zfN=FseV@bop?eKA2&BXFR&^^9kg1oHCM|aJf+m)qpD`UGix)m&U7_zV*R&%1=35;2 zu73!~4G`cwk=fBt#9?y>vscIAh$ouljsM3{q@E?p|eR5!a>vu3$7 z&N#!uHArv|&;m41r}FjAt+#`~ophBj;~3h)!FLE5A$+HwA*|v%e>((JK>RgiNzk5E zh<1~3fTmvemRSpFezw-FR{(8byaRQKdWeJNEEd?@q1h z7i%l4Z4)LhKi92TzSPFmgk#Njrx@=@E@-Z=k=cni-+I#>a>yZam^n^1lC|kghlvIn z>l1qF*4Q23b)7y~Bm3A0+%eIBhW7q5XWEtZE;gE9eCb73S-H-}QRX8|cI-cMe>ZB> zC`)_kvc=LoU*Zms&GOstxYK?4qA$3wUG;VM@sE8>jyDU{4^eEAqLVh4v(viVU!Huz z{Kip+#WDv$dYFQkByD``OwXVHnofznYV#kahO#7VpD=!+trx4R!?}?V%ZW@@kqzaFp$3( z0+P*&?u#(Ok#wmUX&*_MGj%$unkBox{WTBiDQa@cODZ9K>Y*2q~knG z_A}Xu$0IFFLC7xz3s*FXJF)MlGN!4#gMoR2R~w`$P4fspNZ=0HCZioV4oJNR0_xSS z{HZ~odL>1I!C|+b1v~ZXgQQq^>eZpJ9m0EBwoW+Y>Zo;^Y$S#jJ6dTkD?{;x1~T+(Du}LZ<%x>i8t%L6ID_RRJ*0=CWj9tYZBi%I;+cs z?K!E~K;QXZ4euQm>8~*8o0ksA6 zhbE-g#vPh{q))jw@uC+^Ds1xeCZhNHY)omJOfBebcb@EcBIy!+`*}GEnv?-FK4_*v z*pBwRjZ52(_ogOoVo8IIat(E$wl$LEp`nb@ohb|?6&fKabXh0*ER&y-UB?!f;9=Ra zW$r@~pnvOI-;&9gJ#0+kbb(k6_voXKx|2^nxmQYm`O9B)qJ^ApJ(pFm9TLL z;p6YN_dR(?iC+$3**xHsjHj6nEfiYBV%m74Frh9X|1_ybBQKO6U-P}vsgCRUxBI(3q3YHW~}be*l|2(z;T^j%e5 zWoxPlI)TZ$9$~v5Ydoe+@J&U94>lS%$n4CrrOVvz+T_KAS*^^tJn`g{8rwVEamOBO zeStMvrcMm)yYIecTe(r@EpUeW{0lF*4;+8IHZQW(hjdzN*-}?Ns$3fB6Wv3PKJF?e zO;CT!k!iRlWrr*vMH=uq?r%>$;Z8o`IQP?=ZgyvW=nOY?mt7<%|Cf7Y-XGnu#~iKr zlg#`gw&t<_JbwH*nT63}Q)Q-)PMA2swa5h5ZoBSk<24%SII4V7b0SVN4?OSyZMfoi zaie?g*=Oy9#gvK(#*_3n?ry5xL!6{lK`+`({hs=ur1i zi}xZ9LfylaxuzGRsYz%UF9AEl*Db|>u`ps5I`P+{hfMi?0*uaLiHZFrD2q7>g%z02 z*&%ZXY0`G`Q?0&QYFs@t*~vmp;Y{$Y*f1m#&)S5YBCQ1L;BYGX>k@|q18ftE(n*bM zdG;CvqV%z$mm;Rw2w#je6Fa~=7CjUwAuEHbbaha()~*`F5jXjvn~=16;I zhcsGx3Eh32EED~}Xb{%tqlsR^@sLLd6Ru{j&KMJ4UIgi(!&+S}pvo<#10g7M3Ew~$1-eL(Svn0I6 zzH2g3_N_tRH&ittbeF#nIjnd8lF%K^7p)%+wkBO7M$yeaBGZwYfx{d}dgcR2&YB3VQhHth%2AE5* z$4tBaJ3yc+o3g2pUQo60e#`49+^`sz167=ub?3;5s@ZfW)$q5e)T0tGx0#umDoI&5 z=B@XdueTNGPYAylLlCkJWuSBjnGl4U*0G_GpT5B6^+*ZZcayL^N8@C5^#*s*MHjgv zjyS@7>QkQ*-KM&Y^5TiWFH1HTDkNC{+0TA%{8^P8-97ZsLuO89r0m4*zT0j(qVEOW ziQMca@zl2fTlpsRr3~?YBSsY2yv^LrA3Q;)Hb>gTcOaB!Zi1hr4WWl{-O8*7jg}#k zFle{ii7E-x!7Vn01Jp~R%ju(HNvBKXhafBRjO-p!E$0|Mb$LOm8Lwx>@A@N zOIxw68~bFoVVsE)=;uP2=+@9jZA*#?XbHwDA+foqZ-ir76-qp){=B4a6mp|BxiaNc zdR$TbWLgw9=>pC)Ef_s=I-|HK-|7kNK%)SsYMR+ZlIA<(4~hfOGGJqy-3|XFV*ouI zHXGrev^Qk!21aobOsiJN;pqtZ$YBoim`+aNoqMKf8KYW2Jy5V$asL$f{#M^p}FQe z*J&JQB^@1BDrWKa7DvF<_H=PY9E< zN{-G1-znLq$&dA!U`&6!H#bb3TJ)NbSDdM>fu+IG-6bKeG@Pxonh;!(#CRZRCSl$q z+~!^nreThd+sue)!cJ8Vof6!qiZf1;7Cd0(Q>IM7J<~S}c)}tOR+Mr^=oWLp1dPzDN0^Pax`fA( zcDr)XLXdjt__G!)A)H4XLTNedk-*Z|!9R1KqP$@s0>G$sN?3*f8+?I3;l|{lYkH?4%P;QRlP}TI|L4BwvkSuhE$+CLU z4oVX+eCVEyj5ydrSweFwt9`)vjTRT8nG6Y~g99->bxC54jl4W9TDAQl8+_TS587=l zI>NZngq3;H96~s>n_krIN@ZVtL2a5_+v2sBSXaeiupHt+rQ~43_7Z7= z?IC;ZWAprJik-IfQaV~)cXp9FK%wSq%@fRj z(DFcF^sX?N-yl8?Qb_}R8?6r%am(HZt?4a`_3np;$`Ep*xyhy-V<7G?<3L-YwLT(0 z!|jf+U24f_=6&f)bLD9HJ_#6>xRE1A%86=+dtJ8lCzR&8A_>#?l;c7E0-S#O>Fy&R z`G}i4_agWE`|gzhS#xo0;!BlH_Y~#-PEkJT;`;;=fTzLK3{4I#rE24yZ)^l_lr||s zmb^SpVnqraDk%5c1yq0(ouEX!9Vp69cO#3kq)D0TR<2xO0-LoIxI+#;*o~8rXH0RL>^hgb8jaiConeF2qHWa=RgE>xW~D(K z?6-3|vR?dPy#!V{W%;hURrZS2@jYKB-jn%C&b~n?aSX?L$5>G>At(9fiuYk&3CSvZ~0e@rxu-A6ZtWHDa5_y%wFC_4e7}V{L7$x`CrMeXpyomko9Cv|7_vuC3I2 zPMtHyF{X5@Z)6C!BV=+`>*|(9c?8S0vAAOLWSNO+)!2nOpSA9nzqrLc@bEnIv+>5F zYE#VFXHtJdn zw?n%-m6eqyH$b?bsf~g)tJk_!GC9Kup@xRKesD1SY8V5<7#PODFb3YU7zpzt(>H%M zm*9Y#`QBcb?9^n!;s*)jd2jL5n2?d$v%NsrZNhL9{z{v-t5pJUakh#8!+}@tP6@=A ztPq4FFJgi9n0w*KH#@Q!Z6d4iFO%H|zHifJG(Y_}6%_b@!^+O3Akp{yO~;c5M*~t`wtv=0lLy9KNG-X z3sPEWs;3vatL)Kx1rWY4JEO8HACFhU`ZB31_Ra+CDyzNMH``fJyR->c)`nu7XnewX z#)f+NJ5{vg^LSjc;Jh?=1O+Bh+lop12Z5YcQh~!WL_>S&`S}#!1kgqq-w#_Y5gtcXsf7 zH(gAq*CGcSJ0569#uk|1oe>z5AmxDp0#iS0sW)MI2f|5>Gi*L_Wo$s$t{>fVC9y!M z1E)ItW&2?O8nnf=1_aDts1deb;yWNEO5ZGj6PuoLv!St&P4ewm5XM9uVKYanGGgtz zGYd4(N;sLO4KwIE8F0oa;kqV33G3^{BxvEQKH<^4{cue?wrf5h?R1sL%9&i2A@-b` z-sx&I1|U4lh9^?r*X*TIqS@JPTGqRcEi_>}+I*K?cA2~Fw%grXZ@uLvPo8XiQI)jY zM;2sB;F)e_M9}ta7Z0L~gcj+hjW~DiTzBrd=ep$*8c*GIH!pCf9T|&gAItNdLk?vL z5Z`1+E0}M*OHVH_9*e%%)ZD7~60FK@GMiz*Hn*p$n~_`O(lWCpAWoC8-3!!TeDOth z@x>QQ;Qo|*`Q?|~z9Y+Bt{ppY4pTfw9C3s@SOWG_PC3>1pfk@r(`Du4xmW-3ikm)t z7gt=E=jv+=ZtGV%7} zm7VYh9VbEbf(!Kgd*?(?Q zr7#PWqjD9?=?}tov7!kcvHzUC!T0&9FH%_|71Lc1B4lOXCxpxT{tz-vq&G zO{+#nQ7XScTHYETvgFsw)~f0Wtm|4^F0#7#PODdl>`BKuv}!UYg0SlQpb(K$E>9 zC)NC6a%PmG^$&&RZY{iRJ&K?eyWR+j&AzuL!%j_PT@tnv2}dU+iZGdp6i?%5lBbB7 zg;_^&x>G_~7S_E|}4VV{eSCtvi#JlY@2ZE0zjO~5*NoX;~2A=+n40CWTGT7;!)w`Y=s1UHLqQ%u)I?UE9Bt^72tD~?^u{V)NoJQh=s}CgOvn&EWMZ+m!w=<%(xkrN6tH_f z=)cDUi%IV7tA!irKEx+-PaI$NfKt*#aAAExeUJsB&xhDM4nnzdblPEO18}YXiG_Qt zX_KlF5ue6M(}Gm@^F5H*(YIbP`g_+a!0^L%#{fA0_rW`-e{8PNB2!bp#$!*b+YN0R zPi$tER&PpkwG!82I!!9uI(^0gLUx=N2tml(5GR zUp8(;p0#hNCnjiMP8j<`^)Uqi1mQLJUbs(7p%CHuEZ)DH08eN&RzWFSC?7&DHs;wt zsh2srJoz6%ix>#=mcRNrZ*$6=0-vK(MmV4?m2?<%?b&nw7E4> zC;vzzU3`xDMk2K6t48Kex@7_o{x?8WZ9h(sNBFRbE2f(=#q(Kx#AIP#9e%GtXrQc| z{sQ0&bJct`60C|{b7Ko-7azIZCely-4F7^46uN+m541pL_)-ZxXOZxT!UU#^3NqDO%KxvfbVw$C|9E`Ula!=D&iHQdd|q(geS>f1D<$ z69VCaq7hQk8tLjbR_RX;m)Y#xA(hp*s|m7PX2vKh4n#+lkD^g}m76+PUG&A8jC#e9 zpl5(^m{Dq!$(Y9;f7}%m6u3D@%`ss+f^{6TKK0aElJ|eQkiYM*>bJrl>EZyjNgC(a zb!UDYBOCAMop+u#G&d@Y#xZS{Qj!ei)h3N~CsVOFJLR3x7xRhIrO%~n1DbX1KVJEV z*^a0E*!Td(kDuU5N=BG=e7@T3z=LPoW^Y4dlN(X2Q+opHJq*Jb7{=qTL=H?(5I&psy@H2nl)O!N zt!rQ-n4r;oGZA9!pD z(lFz8cupeqJi>3@0!zOFJlb;en%T}hwNCSZ%p$R*a5CZ!N?t%U)#r0zAEqHoA91J( zSEHd}6q0(KG@CqcFU6%Q+klv4G^;)V*g|i)Y(touk4Ss;51Hrb(gYMTlxdKayrr*8 zEBJ?@ZNMa?PjmjQe5xSXW5a{M4UJ~J2|n0!?)o>M0DegKjxf;uamHHc9-)?Sjws8t z=rkr`3k4q=?>E1xtYUM3HXQpuHyzRlRGuGHSb^vtb5Fqpn&}f$cyxhQm~q-L+5`?~ zb$HPW0?_m3*o?m|B{$}-u*tj`>(s+;{Ous3kZ$Y(H-5tkn7!-<-9v}>{WBF)4uI`L z^BKG}I=C^0yNkhpwfZb8Bj$54iP zMb1Va{xVwqXZyVK4OLnySX_?8OOy0=m*W8Z)BT)+%s19e{ONcOo!?QBGDjoKLj_U^ z=P~GOBl_RryiQAt+XO%-3WNSmTGSYXYByq>Bq5`Mgsvy4 z(KTXB*&VHEdhEl-E%!6NwH5=Jcz3+;dR(%`QAg5&-l3wU5l10UA@yTP23CRcBLBwf zXJ(5$8f)QpRLU~AZ3~bKha-jKyqSjgfs6qRG;pT*3Q9$Uu!UD1eOdGr&yX=VV#9xr zQzh^XZZ)aU>;ivb*|BCjl&BnXfK975QbUJliCTupDLaFI2m( zB~s%GDpK1D9Iu1sXO7P2yeWM}R=9dbh_pIXRoPi=lz!Z}U5QqS@W@^3ZT$7u1$-qN zIM}3n!~h{u1J=nkRjZhKR&NUgs|K>n7iZC!&5jeeoollhO#hz+5K#7(kJ~x-T5CP; zuC914r^?(V==9A5%c4iGB;FD?R6KF4*1T$*zfzZBfQI8l@^b?!aeLGx-unJ{#ufyq zZv8qhqZYuhLcD`O`+#Bc!&5`i=a=uXaK9CVg3?JHD=ROb(D@P#5n3HiF5jDHX;mX3 zESB`hp8fq!&JCw%;BIs=*Q3)fuw(vpw>ZnjILE8LBP}hnVb0j0=<{_|+(4a=K#!Qw zj{tgLbo=tOwEQSMP#|@p5jwO^T0EWw=UJJna`3)*eXwm@wRapqU)%0s29(Zreu7}u zHO+x%;xRY?{y~do*(~YdFnP`wc;wIj(<~A|m<5YEWsW4o;hgc4DxZdM`j^XzMd#QV zPKFj6R?>=@TDDk_+}}|o6m_#!I{Angx5)U3$}%DGN|X^(_#ggFrV#E;O>PHzMY%D7 zF{Q=TIkKa{7tQ2x!cVownqP&?d!@QV^qxRdq>XIlDKY~o7*i`c@0C2LEGc}d$uECj z-(V;s#5)%PUgG_CmDMrEv1VbK^-;xnyQzLM27h;cOL4vOON4%bi`mX8)~WqDLthvT z__$l$%K_Gm4!O$SQx^cBq~USxhe;Cc!JwtF#Dls~7xR03MdpuB&%`#M;Q_UYl)bu_ zGuIYhLy9ggX3UU}LR^+w4kcK~3Mi;n$C7+Gyioy-0#uJ!+LK&xmR zU69+bwF!(qlc`Va|2h|NB4R{vi4=HifZ#WBc%Qd0y>sv!#f;fH<1a%jRr3A0jrtz+ z7H~_(z2~B$ipN@t;=$An!n?WE6d1IGeO*PQ_R_RR^7b` ziOsogAGnb4G@s-E+2?J~jspQP%?!;-$6x~>aG&xTF&maSHDWBhYG zQKUhLJX_HyuVM}i0+*<-aN6w`B`=r9Nnckt-v+bZaD0&2iR=!)0h}Sg9_dEJWgDRf z$90HPdRLdkJRn8SvozTJHwp4`f*x%v7I7=Wxph!n)#2VSWnX@f01L{+O>DL-Kb3D=Zsw#Ut|IYrql6XC36pd@UJRvD7l3Z1} z{Oa}WIigQxG1;j4wvv=U^ANv4h+Su}1hT`PP-V<10>69-+4DXMqETR$9K^FIqYuoT7~lOUnu# zS|QZPd$Eu??$&LuH|3uBO}$DOmvSmTv#Etu$1K8wvYxk=Po|wLo<5lRIklM~vErc< znzit@c|6$lylr~Xv_}^0#6rm` zkN*}kPWB~E>X3BJlzhY)i?@-^Bais{c<64Zkbem}uka3^+8DJ68g!kdP-he6fji5t(H%jW~;cKASAQQp|07w~yH+(~0`GWT4D6mbJX=>GF#^6FjwwHo*= z>d8at;kunYz+S@;N8u1K7jxU5VN8-N(5_lJ0?#{`A_vVVYBSJsPPKQU=H1zTbIol$ z^9ANa57GH1zRUbxw&nZG^kS@|HZXvY9YLH1AX+kOJM_319&3p>k>PPW4+_0IsrS1N zJu&|rQ7G2`c!-&6<^~@EeZ0+0ea`vCgGN8EmuB@ilJW4g?4=g7n(9lhgDC~3Osnl8 z8a??7HxfYyjPLb7k3@(*d>2)+cJ@B7@oL&#t>v1D+Q>)Afv35X0o*XB_$5x;JQ)yG z1kT^99I~Af@h*s|cnYcS@Sc_RE6xu8y6ztNEq1A*btHr{)?bhRmi3263LhFIL4p&M z#<+;mn4r&@o-c{gH;Mcyr&B;`VT5y~Fu5H*xL*^lPhJH~L+jisBzWFOf1inI+!N2eP4wMuWeMX9f?HPncUiE>+ z1p5gaHxxh3<<9NnN*oK^X4cK+MotAe31HT1cJ<&YEH-Ky70>}%Qc?W7CS&?)hll)D z9Ty8AE5Ccu*uB(`QYwgxz{aUYOMD3DC<6hGzwIsGB7*7N&(HYVbLn+>=M?Z6rL(_y zje51745rgOBk%a_*DcP*Qt6Y?j^_kIf&xVhB?Mk7%i^zP){`E3?w3WG41IJN#v_j0 z)WtW5ctVs7N4)i>U$3&~Hhocl(6D~n+pWbtmYV93Iu|j<{4coiKz~GJ?pcou>nuB( zxzl^;Z!e70h2p+1bLn!WTA5g_LM;T{``W<<{zcjGC& z+Lk{wNX-8rI}{DusP_qWOtqi+8a10)*QjM`=gk6 zS@Gj?@=ekjRC@yyyIy8Po%)9Nhh~#AaEWcV#_p|h47YBi1^n#wh3dVolV%SQB_`M~ zz~q%7#Do?lJ9_rpE*g- z_dxRWOw)#8#HT0*A-VmnNik(1j1=Bz?#d{k3L=Ffq$eQ2zHxW`l6;8(dl9kj&MbZM za&x}f#toOthwjyt?HQnvJeHT2nXR}rMV&41^sxo(x|y&mnyR(Tz?hvFpR2dLJET9E z86s53ph~#2r@b`X?Si3Q{DyoG|LDpYhq)`f@MQ`!e_dVbBFyleoXOyLDDt{&4fQw? z`{&fF9)mCSH4EV+<+qbk{lEjYB9Grf;*|~4z#!urzY}_%igF z8Wjxln`iNY=jmK3)Rt#ltO6+iiBdcWD*n8&E97f;lkm_N;7j!d9r<#nRDv{*1hXJq zkmr9X9tjSBkzZF}F~)D0YV_$GwhiDY_|ZmCc|WR08y@jQbVOXKdY-N6B$O<7VyQv# zU|wn6xm)W3s44Z`+7_mcB2%SFMe5kp4KnTT5@}^c=|4Lq)d#&xwyT9T$+Ts)6Sxf2Uxvf>g1M55OFUYoXE|}n_3c6o z*6f8&1+c8t@pPtNi;c8se_~OP>qM|rrOA!09xU9cfz32kvi#e-@-5$YW$n3=M;9c( zFRY^f%@e*#;%`;hyy{fs2gmS=_JWOzTUXdVRTP6cP79?L_*`fDc6)#8@n;|?yjs|e z%sqkMnn$cu&Hb7puI|vf66>CK=1?_SgH(OXYB5un;F{Y>aLl#RLiIA(6a)Tw_GwoI z-X}H5B2$rhQ;uoRxFe>?A3TCB%vNKt9`iL9^p(xY1D_7AklyD)62~2qQ>gF9hNl3I z;hUw~PYkM5)@c_ys+9pA4ybWBHyV=ndYRkW;j0`y#qn_%lWQ9$m}NIQAwA)BC?zmw zCy}r00vr!*c4W84`7jGJtxxE0dpu_OTO;KySh+C8(mZSjt{R+2cr2Z)N8AAWbF{OT zFAHnq5{P{>?f%taoHE*^V;%QQV^Yp{ln8 z^x3uuKc|tyCU=Z-6&P@PLFYNp4+InMrw;$|;d65Jxvv1djGi18@)$k&{Mgs78g2OK zjUQEv$3Rc@}JUz6=M4lbM zSY&b1&&lqt&6NDz4l7HFlfBpOKv}8#LI7?1cNOhQThBRA?YK8=Eb3cE*#j#gauP_l zrH|V3TlmqgV+aFb_~T!c96AWs_)9vqm+ya*v4$`iy&RqDC&ZHaE7BZk$_U0ziG8Ec=bGM`+;iV-0Y*`s4GzL3MPoPvNzB`&M zzR*SyetjMi$OcVxe-uidN)^O>4p!%%ciMbU za%%D2pp*!m-G9EWV8=Cu|x?!?&;|%cxc_TU|l@Q(&cOEI+4wH z9t;eOv9OT;Nrnmb;!*~*Zm{0T~sgdyZ*7bJT=d#kJ7~g)xkJ3=# z_r^mgc;iExVYyj9KnWl9Qqqyz#89)Hdt%dzX&)Oz9na*AN!_T=hK+V9o zYLlHQo!=6@QtM*=S_%ZEIln(E?f?B{(ZU|JBYg&fA(Z}H@_RC+OZOs`8A9iOR2=>-_nk3nRaVdfR{TBO4w7t3BU`cePLYbvJ?Jlf8P=cl ze}3V<H&)uiZ-nRyKj2Uf)iB4Ml;cZEh?u6!!uE85h=aFSAdaynb= zY|E>gB{Ma4yKhtzALG-;`!>H&lW3;NpV;T%86*R*w3F8%K|NW@R%y*xQ_^1^09cV- zqjA5^CvnkrdART^)v3fV40*(c$7k-rA7g5oY1G1$v1%4-7S5jig4RF79S_ZWv2K>S zK~eWJF}{gW4K{^#!Bg%SNvd;QutU

    Var6 zeh$JR6J;UE(Ta4;Wc|Dpv)EYA$wY0y(>^Xiv5rtk=w-ng-e{~jYbx0swvCNBf1V8M z+zJ`Id)-nj@^;??o|D(M_8A{}dcI&a2YSF9dpE+CceNKj{e@*y?a8(j%Zs)_fmbJ_ zrE8zenCn5t&CSTN|M{`K)AWS$Iyte3mV}SbM(vHoyC?Eu^Fy_1doflA_QSBCE8c!l zq|Lq=t=k-X*{%!b`9Nz|$(;aW{f+>u{~f zjx=Na314DpC9%1Rr4gh*I!8f!R;C0 zk157SgGRsG66PSYBKhW~t+LiZi}cL4vO-T0#mg#1aW*S;p%XHTR@1EELi1^N6-(}y z#x<)x+sK1LL$9sQzV>uTXAx5dsufoZ*aIbg|7mUhyT{QXMdo6h4@sp=rOH$+bAu}I z4(;{1DYTajBHoUZ9AI;`q7n!*4rz;>SbDkG$Nz_uEGw3JM7CE>+5JvRGju&sKxr+S zEXuwmMx8qG01?|zpeLK+VCqeSs@i5=SkUr8t9B8mp45!hkp~_1Wb}8l!5*m9)M#a*Cm&XIkP>41PN=aP|IRr3u3c8TL=26$As5E`>q|YfU|2 zSYNtg_Xy3ne9UCAEoLc=2!ojUq!UsDbE-zPscC{dX^PD~j?%W8pC0{`Ru`6U;)Ki{ z+dj*4qOMKp&k4N082;6ZGO=)X&!%?RvLg9%Cx~jx_GqU|ddb^W?ubm(%D1_@#M;J; z1<|cS3=UJH&xkD`ewmLYWxdsD?5bd`)TPV>5nq1-1S(s#kOg~m>=*lC2&QOala_rYNOxfd<8(1XD_AFN z$&(&C`5MjGr1U;r;tJM6WM^%xu+6bI%1AqOdv-%Oh{4F2J-@Kkd#=05G){s43n@dG zuR^!71BH1@Gw_g^3)R`NwUEIaZJ5R%ec&}Ok(BaMf!HcL2;CD=9sHme_YxI&=CU5^ zE>ywB)kGJnC+qrKK(hY5My{-YcZ|F&S~vS02L~rV%B7HcKj-1nisCd4rC0?yqvmAH z67~|8YbdyMv6TOPjF=(1|z zq8`83*Z=JPTB!e8IFP`UEVUV_P|Mt`;d|uFaaBvU)aL1GWu(cUaum2+B~;@VC_eBO z$wT_x5#{&y3-R=CSeRy9wHYt5zhO&cnpd93PW~EZra8b=Qw+CjHayC;JUGhnPU(`H zLo0K$&cr@G=txS0@_k>=Uj4?)Gj3)-CcL|?bUnr$H-$iT$M@g@h7$te;m{pSUzehAk7ubk8Y#>>U`{ug_%W@YUmZL7Et4d---J)q=dnx zLg@~pQf9(S1o!6^4F6#I&6I%iNlGO;K4~a7z*W-a&R zDpHq^DwqpIgH34>64KNIMIFpO1)m{tevEK}IskSRbXQ90*t zbVHr*HXiC3o1)~P-6O#-(fGv~jaIX>hl63Zo@$dmjht_N{3W@k)m_6(3TI=3n2uZz zfKYu$V#LA5V{w;;IxF8fA;}a?*CvVc>}u^-fdjG|CDjI{Hpkv1ie@>w|jV8Lso~gMZiSlAO+_DZ4t)i z0#gqa5{m1in@MZ@RyL}=Z5>f#fY+O=jua|IjU&pVT8nwC>Y>stTN_;WGAp?AKxjCP z84_&Mg&w?`)^V3m`^A@%{o7krUD*xI9w2a({4=qz{zjak)T6`q6kopZaBj1+9j(og z?yCx)m4&a<{+g|D{`g_U)!V!moKhuEnqk>lwcc$fL#meJAse^V0S#aXm{3{i{_g8O z3Xb(+&#hfrK91!Fm$rER$BO-znvN}a!*=pm>mx6`Hpc52A3Bc1+F}=zyZ!pC1*yD< zGS>$2i_UhHxd&s?P#rUf2DXN8{~`SX8cQfMdfKhqHm)U*i(qwEi@y0Jqmtqv7%NY1 zSNJp-OHZ1QFUv47p3^QR)d0^`F6AmnBm8MZuI=Wg_WrE<2G4=G-c}(q!I7w#G1grk zN1ZGJ@tVK5aj4$y_v;TTdc z4a+xG@sOR`^NkR2=;pBU(vYl18ZX%Rh@80hU{rEl*T9sl*2}|CZ;JNQlRPWsh=QL_ zi^<==lN3zfjLVHN-{ZLdscEw6T#tjP= zenj4i#yhJbQ*>dVd=o1aEj_JNl#|Qy6jv0O(VHA>Ogzj+GeatHC&)Dd|C&l5l|U&~ z?Cf)1hRsl;wN3T>%o7yj4xU}`rRNR2Pc;i5wJdKdWAfwtPL<*@9GE<~fN>&3i`gR$ zS1WTx5dgm@N!_Vr@Fn^7HY7)?2!HZ;pQj$L#JqirbOR%lsmDYwhq7$sy;U9XLg*C} zp<7lH9#hA-(+o&UdP!kOIS4U?Wu7=$DF!NBd7Q`HZ;PPhE7}gt?jcH$O%)M=5CjrI zgImuT&$sQY4Cv`WSPa4wA~I9rAgZrOO~{Y^jNA}DHLLlJw0d)DkuEu3{0LN`M%yJj zD=G8URdc@-)MWVgYoEsh1c6~muqDqpg|tL+&vBEuyd1eUtd?=B_}6AaYZ$%1k{dk< z4s@5Q@8u>}{TG1|FD>|S-WczQhDrM(avY!z%|PC`N8}12RSx-F_a(~9I^$Q)zwT#D zuhboS^og(SDtH?76A#gI!Xsmw_l&LF3riV)xIuuC0LNcP;^i_)c+q3fjAdu0LY4;H zlL*uAPP%?tZqfRiSu>T@nMkO@O+wV0JsoT-v%td#r5J-|>l)1!4aSEIcQf`@K3@AcE2go3Jp#1NA{jhJnPAq>6OUJa%^_p3t46A&SLbzrw2vOr> zOu%bjg`1Np)0U@(^I^}|&>h^An2JPQTI(8 z(S0SIA3f;dwxZFCKUgRu$JU21$G0Mes}urQrSK~$pdRtEtzh`9);7##Q<@a(Z0wQD zJcWveCGEtgxIM-nLOMnGG`ZM)A5!5rrjgC&X!P6cK_3h#(taAh!f#D z*a$)%oY*uQjGScqgYo{nuM=4+(z0^bkkZ55ywwWYSe;8>o%Z3{JaD^F{VZ|H`JYYH zGxC98Toh)6K5KKxcvL2#K<^lRDu{(R&@{_!nwMObtj2KElz9nty5zC`R@nf)j=1xHB!Jl{v+`ov?0) z8CcMozdFCkl13z*CnR;yEGvr30BQ$?;=27sUKHCT^pazRCA`(1heEyuH|oGA)6@k9 zByX`Wt-#ya!|mB6&4JNQ!p9C~k6d*ZWE;X!%UM_KNSf@jw0J#Sh3p2iPoHMSw5K4ALErnV*qZF)%n zI1UcH3hm7`=n5?s1m4eg{deKEH+s7PWow!&_m78rgwI`IG4MGIDB1mZ_QiR&SxMC6 zW5-{FTASXzCt+%IT5Ji<_t%2&|HFE1I8f!%eLxa}N%w2N+mB}P^Eu{|Ys2SBcjrv8 zOS!?l+50AmlQvIYlG09xK|=u~_LeKxP}5#e7$jCwDR8F8uiZCOG%UewEm5TUi|FNc z(~j{Ck6_>rk(3(mMvI;UvFM^uhR>jLZ}N8g12&z6zP^IaKD(+em&JM%Vz$+YkI#cQ z-;061%>zq6p42k=ZC#a1IawoNX^Ji@{V`%rIeHP{IOD4Ue3dS zo(XkDmJaaADIX7ePil>2W~qu)1k(+kWMdHz<&61J*So^YED5IJzQHIryUdW1pfxBbmVW&0puW{8sH$(5Pj?Z^|TQ>VUfzv_7}I87Ge{S9GWE!$8nx z3Ule;y7$?F)J!xSxgCa9^+T)%aYj0)ycSGSA;(fcU7oVqr97m6xOdtE4OXEDR!}QECG_ zx8b)88hLS*=XKIW@C?oRmgKK$Ht6)?v!A90rVsVl^X^JTEN%jnnw&PL190Xyxi;N7 z$r{I&CPo>KK1zRz9ps9=`Pf=fvGP{=ZD866>o%g76-Vswiq(;nrl5M{Zs`?xO_?GA zKs%qa;0D0aBJSB^1b}#va;CZrd^wr6CO0?t?|aPWjX+V1ecG|Wd*~;V&t1lr>=(mQ zH&u)oFMU3q-0b3S2Iuy3256idS0=G|2d%(%(zb26RwnOXg_^~vuW;_VtF6XC z-uJuaKzx*D*E+o=tE`Z}a=6m(gAF1PZu`LG@0T)yU;?b9hyb6aH&@%o_{Bu|OoE+6 z@Ia)V-+Y{=#z?29ME^U#UHV$2r_4jq)P!`XP27#vR+S^=qN(jvO(y-S$_4W=JoZfT za=^pJil^E}E4?l>VoppUOVv#k|7!)UI8GD%eUP?a3&?5V&|64u=n(y*EkH~N_5sx_ zB>V(^d4)aPR!-$yBo&fW<*!<=9HTX9e40BcLt^*JE=X9jf+-@Me|_v*v6%C8flvcXB_(CNl&xh5AB_i>cAWgI45CACza8PNL7c_8-d38y&q3exO!Dh3!Dfu$ zzp>r{&-$AEpR7-ddagmV&uzVU38ZzsZNwCqXZv#Vy+6Nw|M%-MqH!HS3h~VAtxM8M zXYREAvl^qtV-_;blmxT55Cwn8 zR}R!UH8+i&6PYe3$D!BY3tt;hI>Sy@1K-Nonk94NwXz#igsZ*L>PIpQp;W5F@Xn;=aK@Enb3{D(P$ru{?HD{0`J-qqBHKil{dBBz*TJdd=UKx*i{5RhzDs zvwhDQKM(H5y5Gl6u6O$48r81n(DJFA620m(0!ab~!X~9R5rj)xanMgD2`3wgkEqtD zMLg5dHQtJtMinyJ*?$OfM9J8f&ctFlbcT+v_wDEJuF1$!DiY$TK)$9Nh$X$P#FB7B zx!WkvTkIWT*>AYrJ9G1JW!eg~Fxm`oeo(<*z#VveGKZw5Oo0@mza{~5ZZ?s$Wr3=f zza}HEn*-4x^_os8wuU36H8>#;=a%W5cwWrl;|f{xr~pL^+``G60`yN4KWToB6(bG1 z(QKI4MlM)s0Zy(VvcHSBa*l?+H&%K!M^~A3@UAge4dP` zr*YX0TyHvn{*ECNucLkuh23AH_CQwU3sN0?o1`!(p-*{9snP0iXk>y~ywZAJeQxAk zTQ89QJgDw;#SeDbC?S57N z)b{**+fpECR)>FbCm@OjYu$knl3`5dyNT{%VPX6CYVMVe&y)0J$}QSs)u9TX`3>=L zKksh5x)rL8`ARaklR>y&t$M~Kh9+rlk7UY|n$cr}>$}vP3rlopThk@~_E4C3ffE|6 z*~_-V(0MapST63of%HeNpucx=0nM`cbt&A}DU0iH^RUF_S_$O^B@oXBsnE@r+HSv4sw_#RnF77B2oP!ovi0T?h zPH1O05kzc*xA$FmHch1D55V-!7Ft@1Yh1+V1;O0db8r$OniIpaW@$7VY zS^o@m=(zrT8zrX$k6PqmQ6W}193-K-g<*Oox29z?!D2XQ@XvrCR*{m$FbaU&H1gQ; zH#l9>s2K?*pB5|ZXh^Oz+Cu%4`(BCE+p_Z$h?v|bhZ)>sG=XuGNX&uPGA^!V)PqHh z`q!TbKU;DN|5sn_fNpNf<3j(w%ISi1eADf{6Jybo_v`Qe)9w;>zK8jg*#K=jIg~vF z-6z`H<1}-iI5o>a?Wiv7^HyY2gZUI;#jr$RHX79qObGPeagzjNgh7@^EK~_2--8PG z?I^7!-l)gg(9K@8F^(VSP@98SU~qE8=GNzZ@my{oOsz5wH1wbn)-J#OwxH+x&5$O# zvsh<0cs6CW`ybu%$7L1wm!uTUocrLqiQAQ3^d`ingfh6HtEgAQjrN)A3p$-mCOZTB zm368JnG@_j{jP=Sl@(02aE43gt38r?x!n39|4q1qTJ@89pZUJmL&3;CW|+z=N6F3$ zrSdtm#IvIsir<>-fim?=5`T@;AM8lkG>5(o1!Z4OR*0Hl*!itn5F@y1weJ~)j2*5j zc1?0RZb5~+HBC9`4hou#>;zz9P_1UPqBq`v<4T(rlw3zCp4nBn+R#qg(c~3NOcfQW zz1KH4)ZzsD*$3@^9SIh7-|Ptx4!Z!D*qB4d=g?U~9K|z5MT-=xl+{>|`47jpHE_8C zX92iSt;y>PW{pNEj>L5wEcjb-;49$VT0Lj(`9>`3*WZgP&>m!Qla@g)hH2f6Lv!wB zRQ2Ol?6hkZVBut;f6$=l>ryZCLW=I*Z3uA(mT@u_BEXp>f6BX9um%bO0GyVGvnfDd z>Wwxhr#6=@JqEjTNs&G5_}Ffzy587l?`v8CS~Q%a<#(?2^0z>RCf$`&r~}V_N8`RR;K4{0p+|kKFjW<^ zFAgptf-%IJv|hE2&g74)W^oyaBbeE_Dc%f1k9}RLX!ggE(bsK{D#69?^e3%$KD0ik zPksUfqI#h0tC#EsoIc#MSM=N4-+r&fCl7l=b5B0cq{LWjMeK?m;GEQ3fpyCWK}Wb| zMm~4D5sZcE`aH>-PhC%6)T+YA432fUm8P}SAkVmohmFms2WDD$+B9yL&OWmQn>luQ z$R%Rj_Zm6@sw!R`%ycW z1GT@G%51^M9j)4$E154gR|&%H86_r1A34SI@v?F)%yn+}Lx`6Y2#rSwB3@tSgEMFq z&YOi~v>ErveP1bSO^Av=&Nt?RyyRBX_kQ$5jd=d=-*1W2&o7xfUOB)<@KQ~^On&u^ zxgMm}NqiT}ZMF}i5XtcKCl?I((htlD!`8e4u?peHt`kf_<-}w8Xe~{E5&`D^A#M#m zx9AC>+UZYDZvNpMsvr^UeK#41QFHr4DA*c*GqBi^FCQk`{XllK`#gTIu5D3GHQB|JZ)!@6C#fRO*TBB@@Dg zH-=`wd@9O6q%9be$Dg1PriBeQObsX%!srRvXVa-%cOQ_XD3V&2WK>BNVqiZ+_ zYg-#ZF6!v(!L~~R4y_LZ4ytdlct;mX8f6DFluWdIQbY!7N>Fj(5N5Nqd49XWATZM{ z3XIKI^?e<^LhP0@en@dUow~PuUZ51%@VG(?giHeEyFW{}5T1x)_+Kx7_5}YMV-!HU z_q&4OM+I-kAdp#qL~WocXdZ%OkKTSUKM>o zk(>&&%8lt&3Z%FyyWa1F%Q^eDI_P^DO7&+M-s5n~c7A4`5uL?AG*x0A22h}jaMoSu z+sWG)Zd_Rusg_Vmu3DB%9?>#tb!M5eW$x@z&2ma`xl% ze&i;tOCF?C1it1ks2V(!HJPD^`LPW6_-a z*2Nve+M`{PVBPi1U@rqLp%o~TSPF~S?b^e=v@lu*RTCn0`tsGtQ@QHP*Lp-#J&|BSJoC{Q|o1pXL zFpgRc@s(TDl{Fo#+x&t{Ql+_=mQ)zGt1{5mS=xB?qLvl;Mt69!bvo`#4$o_q0eDTP zqh^+uxg0%sxI*WM{B{sdTun|RS79u($i>PE5!bCA4H^7BRA0pGtMU zV{mea1d3qGJJ-GR9}=tS(X3HY{OSojUs?+UFb%OSf>qV>!T}CWyGC5u!^A$WukAJH zpT4cNTcVxGB(X_C{xZe)ATATiFC?O7~f)gn9D1lAR*VA2G zonDXU-#XI&wdt1gJl{}Q3$7{L!G}j7uKu%lRyD^LY~>$tcfhZTCIo`3yDvxFhn8&loJ_IX3v%#^#Bb?YHCVUkm2)m-~vzVtrK1`LF9@PgTSX5ER00zV8S|%AyouM>ON3K|)%MhXYtVq1w(`LA z&_h60Ft%ff^mnB5_^-TW_7t_Fx{o{P< z!@CVH*8!X8NDIIVx|EnZwBf0#O6?^939q`1b=^O{ZDn`8oBJhSezEHsJe-;^m2iBg z_@4R?gkFP|UiE{^oEwPGUwP%;mG?@i5|~yKF>g5RZ(4?14w5^G@6U`vjG+9Aii_v8 zw_cN-kGBK->-CTcc~f1_m*Xb01c;c5<$=h4Np^m3A3Noa@H;+lO_jOhpQlURm=_h- z`#cA0U4=483h?X42Ad32x;aS5QQI^n8Df1Z8m^5bi78@%HtN_LWBUj;m3Me@Hj@gu zIw>q#-?Mq6RYn3Q<0cD!C0<1-t=e^?H^FcwQaZ>S7F9;3 z19244j$#TQLAsW0V6;OHiA=*dA=Wv$?dS~35}|HANYOw36^=JE@g$jrDul!%ryT#o z*7qOfbeR7g-K53R7>pSC27JX3@?@Ea&b?Y)uYD}9Y0!=HT zZ^-$m2syiYZP!F@q)XchUNOqYO1(slE0HwJp|4me+hrl_*^rs2Ez|d+kWteuvVZ{2J*BC)X98UG~q)mWu#yJRZ1Bxmvp|_a=&#_$k71Gp>&_c#dZUG{SRL3`0$FY8#RCdA?^QOCf&MN<=cI46M&Le?r%Is zayj2)cVzTE;RDmKYAQaN#MzpEzL~BHe55ImeqPC;@IM>8(ww1wmty+?t&h=UFr8MaR3sG8Xr0wrDVVT^wRIcTL6_ z&0N%T-rxq1u#&LLLCDLt`mJ=I>}|?WK5(#}?8nW4jX!t0cbnLyj1 zPPhYWZZ}2)^2@T_0MdHJ$^m2W1r;!(Le)l8vua|<+FRW$%!(jgFleYDXkv8V%Aq#1 zI3{fYg6pY*7geV#{(c#F!aGQO8-Zz@<(&a8sxN*ADIhu6%ZwY0=V^#5$OGz|8lo0{GKl_ZRr4>j0+^maSd_4%Rl&}0R$y2;SM`;R5{_! zSV>yWE-s{zPP09);g9+=q&B@K!CrEdodNfwjEF9IKucI^j2GbfL^2sa$S!jStpxm03Ck;j^<~8*K0tx6Uh; zsJ{AwdZ`)MvaH7DbIbjRp#Cg@rMz`5ZAR8Jjbq&z@ux=GEw-t*1=8JuXaC zWTpaT?Az6WbJ^88m-}&U=ymN^nUNES`Ll^u?)7+ifPTjR>N;__Y+BaRV9HsQDWK&Hh0T}ZHAKH1=M6szUB+O=I`8rX50j_H}C$7swg4ph5{;2ry#Iw zvJ>vk<}?=&%fady-AK`jroPmmcj8vwmE5r}Tr-nlr<0@a5SF{B}pd~)!Bw%jB2qU$zg2^A|@?2kC@QdKIoave=3urss36}67pYRCSbrh zP=|7lVvmTNP4$%%^I?6zLI>H(U$a&kS(WR2x9n5VCYuEUM?ktZO_A)Mzj$%DrU`%8 zB_9>o;~2IxOPKVr*vK}B@yL_?lS<-w){%!q51D?K-(3>7J+x!WC*F^9$|=igVgaef zHtsa&LAH6r<;0H$+D?TEuI&}LkJF2C;J4d1sAmsUPoAifXIW5ShLCw_BIc*jbqh*- zEGr)*4p`E%^h1dg^gW_$q=phk`)E5Myd>nPbvG6JLY8RdcdP6`EIH;|+{a$sCf}bk zq5p<+#8?%<7=?YSE)kX&=BN*VS%LMBl7=0;)#o5F@P5tiv6T1D@4&XrmP`EzH9F*t zmOpV}BRXX^vV|^UcapsEhAW_9)R(!u)_*tZbF&UYtw;QZk{F9&>NdMnL-WvnWVG-p zF^zdJ;h!KK{k$}g+r>>>s2kItwloSCQhcIFKW5(cYwxSQECS+^X>?M%`W96J;}GZ= z0qO#(tNn&K>y&*WG50Wv0?F%uBxdq?2;DTZ+;#G8*6i%K`Qa9A@UQ3UsCDPDpxFJx zOKx8NV46!Q?YP*TbiNUcg=FG!4nw)J$k1*EfOwvp=;Zm~;NV$ZY8>}ti<~F!nPFL( zkvpy-j__W!JO#b0HSxz4>(79fzJ-}_SINUBIA5@K4cjyOvEa)X3D?Oy^qZlV%eSrR z0?Yql0iXh22K9i;ve++0)1D0L9aHx|=$e);1m9sQIsYnS4+SyE)lt!DFNGIxP-HSInu4io-QdAj_~8+Z#O6KzpuG0z)|eL1+u(*E zd&Xh^k9Cnk8dub7`g7m-IWB=QT#uhyKW6ZptI1NWdv$y^ zZ#q0&wF(b zpJo95?aW-*Ky`>9Dh&i^&Gs>9`dY6G5YZg5DKMgy^~YUeo;b!^?LArR zjE(HJxJ=~-%8W-Ba3~PmI-bjXIgg?$(+zKKbjtzELc;C(?&u_1f;)lnGU>X>51-G= zXmK1v^=?;qB>l!sYPV^W7*|A}b1@N=LIG^yKF}dLwz5B6WPRGh188}E!O9edqT!6| zjd`~OV2Q%lm&U*P<3Z-X90$pvefhVn%dA!9#9F&OcT7{p+0_~iD;Dc2z5!IyTx|G{ z+Ls{kzW~;@|q8G_8Gf+Q>hi(*0U5DzD8Fq-kv`$UTvHHg#99iSfQ&? zc5(6|8f{N2dDRj(x(K-G$2z@`Uwwyt{bM0I&|{&ZM!vB06g$!!xD-arbFg>PQK|fW z-dq>1N^^NhduF*E4j~C}H9Z|?o#;qEC8*~-GzrLRl3Eeh92}PSL8|L+tKwIgJY4a^ zVQIq4U~GjNh~p}EuuyWzYp5ue;ulKZZf@DD`BHg?!t>i!nLO2Z5e&O>P&ioJhq&>e zxT)3i^tE2;aUtRr8;@`D8h#JIJ5>;@WpofH6z!MkP3Jc(DLL7FO{AqY(wEShuLljA zQmJ|_`SR*iZ&;YG{u;7&#zZ(O0*O_Jf;>ok51Oy%W(jiUH$OY5n!b+sxpv;3fi z#{LX$@odSNVVemVYMoc0f53ot*VV&SZ)v9csQ0R($DI}7_?n410Q>%$nCfmuxk{|!u{VBU z(I^H(*RBth?mt+c8-$>vm-2kd5n;sIPO|0a@}x$;vY?8&QrTNL8d|<;+ne&s!zlc` z%q~u2vpm(+p&;Z}-JYD0!$ro<^6p>C!Ju!H;ly<73S{;j`q=8paTYN2!~on;}O zHk|j~rK?ifp#Q#S zoDHo&Co47h!g%o~wsS6IzF7{AkjJSCgWw-SN|+Pwy$gya9I$ix2)2snd~WdXd3C*|bo=PS2x!(d=xm`8& zHw1jc^uH9o6(EPLm#EVu+g2BAO;M^$tos_%)6(NGOXeKLtU_T-Rl#KZUc+*h)wUK~z6wxX z$~*`1UorpPhNaL_Jf?2QQ*afx*4Eirs7LldZB0ma&s@U2xEZaAc|vsV5;0;ezFN98 zr-CmwSGw9^grgyw|5;_dvShQMAx)R&Q8}pIvN0&)Cj3w){{{E7mueIh{gGv_-&?F*)(LnDW-p)Y+o1Y;G$73V9@@Sx&4`N-BFUsY2M6X=IYD zHs>Ej=aBh03vC=3YpaB^lbcEb1$k=;YJ1J)bWDk0uCFs6ShQxMoZn2^4jsYCm8U1|PgTV?=V?B`@@Xh_+xPzS)YSvBBsS`>t zA#E0kT`lJP-cYG~569Cp36zcuc^(J{pqa_m)7{-!5}oq5Ow z=%X)`Ipb~&gpG&Zyd;zQ*4#VB3ZxXVDc5@FtbcUPp45n8WkZ_C{FgM!zbNq{MOv9Q zl17#NHjjE3(|V@Re6og1{CR&obAp)kA`>roD&w?k24HWE`s_;8|1~8Y7i`2bVe?t~ z@zd~?&hvRT$@{aC!yY_`$U?r+8Ym1pW@GZ+S=!5wu*YK zrIHTnXPd9Am`Gdv@sAZX-<`~6i)$dtH{oJzv)eOg=XWIEj}O15AG=AN*y`+THgS0w{8k3Uz8I@B(mgb+x`)N}RFUs;>?BMe=%dnb8-8t0%jhh-&K)H=&&9re~p%Y>p z_yZrnd{+{;W*}s2`2yYC3>We8$Z1VhbJd!^AhE{p^6X!RxwOFaQ}Mdt_xPcIv>f??>UC4T3|iUa0CTE7u)>0F zAY*s0$@B6IYmi)28-(&te;Lh-dRpC2`gpgh(*S9Kq`N({_QRSHdnO&j-ncI1rN(YV`6iZpbBWi z|LOE_Ci~Tmetiu`Wl_}s`KG49Iqov^vt4X*Gxo8^u@2e#i8zsgQ1mq7+8{JB_)lUV zt6wJSmv9pE#3?A2BGWLtnzcqe#&g6*8gsS2V6S5 zO`3_kU-bz)e4ORK^7E6XyD(;DVU8roSx%e>kifq2${lM2S3_Z@C3@B~2BQ zTFQQO0exId2~4r_0LG(xJGM-B?1A)E%C(dJJw2-EHm$6y^TqMLa5Z-`B{|*P?%4v zB%?C@uZoGYRrN`|jRL!GOOu?jqdd{?Ak~1c?;Dq-cY`W`8%>|PXbPzfKTn1xP6q71 zA49su%E{wi(wQmf`ODOgoX%D`Q=&Acu}S1uSjXi4kCzdDya?2fJjORqp9!x``Ye{? zqxQfzmPI2`XP%0d_VXV1V?I``)d=^sFX$m5aJBOhjdr^(N#xuT-dr4{CimkCffymKa^QVzl9;r40h=}SGRJUl$W_0n$I_GPP4PKCuRklA?)!~jFzsD zJs&tObqLPSI*baeg9y30OGC7**;-6m&CjzoCCMUP{N!SY7sgJ0wu^9wJmL3`CnG2| zZE|I~Tzm4kFff|osU3Wf==&n)U3teM?|e*YUt8o>Icn_XP{ELR8dJ`UvLlj8+Fq$o zCP==sP6%kvhSNgAgN;J&ju+xl0dD7=aT8ro9upqegciZ+>8g>_1uhd=E-5$(qrf~P zC3ZSy7dJjviZ1*Iaq)jy7b7qW661$Q4!FOFmYh6$`Q`JyMQ}U#;pz9N*=p23p+Ja# z!>ewQ@K$hIqu@)RO;BoBaXGAWm9dK9v6zYXM-ivrD4bj=JW98u?SOyx+2~Y!7eo0> zjDJVao#)&UghBwr^1bqarWILf(*(hR0xRXyF$IjY$A?`Mo`XWr6*3-JpUiVtM;m{} zWG(9wi_lyzhgtf<(|Iml za#-U-xg+isBMc>}^&Ug)v+nN&Ar^To*0Bw4)@vKdi$I^WMu!I;@$^n-v{Q)EE?WLY-Y~GY5 zwU?KRtsA7TR2tWjj_2#b&V;igY@H-kE^<07cQP1F`3$Q=Ue@Y5B^BY&WmUvI{_619_0&nX<~%^U#dtO}5g@V~(%gP(Kb36LP)s;SJb3(rTYuz!m6eFTSN%d^ zfs=8?JvER$m3AOZHOKLfqCSf_{(xuV1!G(WQPiNv^knTL%J@l|5br$6EVMA3{=@AzZ`-DLY&_i z3Az5QCzRW;+o~DUsK9uMM#|`4`or6+(i`Xs@)m*oh90v!=#bQ(wcll3H$9z2j&b0Y z20TJUBhl+6!!ddi>{PZ|M%A+Pz(|MXMo+qf(=Fl5$CwMkMD;>XCtMUOcSqHkKHO|8 z-Q1-4q@BW<4KuU==Wm%`M#3Z8_iou`1YGwN-i1GvNtX&$1W8X>>gf1v*M-cU=ZZ!z zM_My+T1JX1{8%e9YuKairx&4Y0E+hOX?c_A&Y=;5A-!@>gQ=74&x@$)Ap0#6V9Sxe z40yd`Pj~SA@7u#F*jA5zb=CC~*BE-Xo$wR@7=5kf{ViP#SZZP^) zZwtG~!^IIu8efhJK2FJk&_D1s}okUqY!!t(o|bZbLCqa%}MD4>KtbjD!3pVV{i{QiBhw zAh4~Fk3Si$aI@-a_W%76>ynu9x*RwU0{}RU$0Cyg|2Q}^q0oz!{dEr!>yt$Oxu*RS5W$C3p)#e)Fm7*3?PlZaZ6|%}BeLq=*i^En zH0ibmGap~vy9sz5++K6N?e1?c-pG=iLIi5`p|%*WmI2-a6ER`Ik8uO**gZ*_i0#M# z#-)1mcK6x8XWqwp`9j+$Y4<$ze@}aSAikm(K{cGJgn6442rWP=>&r9iU`6^7@_>`e z8jrYe-J<((v(mij;PwRRUL=tVVb#w0Y`gmP%JXn%KQpJ^eo@}fWd8fThaJA>sQ&5m zw@vON$tA=l1@2Txk;Sk|g^A|PYn8w+m0OkV1N#V?{agH42XRGHPfI4O6EPS) z+s?baRr^MtgzlW^WZ&Ga2cC-^LOl1%RdR0S)4e96i!HM!|q{G?}=n0uGi_$)`TBB?TA~* z3A>A1ug4W#FYTCsQk$?Y)9R#84cHv@;+Mn&4y zvc@sdqGG+au>p)B6U?%(I&TSc#!&HJ_zqb+_ve0DKlfvNSx^R0uK7;1>w~~wmv1lM zg@jrv!H&`}{%w{}M>3Tw)tNspwStFoDO;Hjlvnlilv;`r*g*yQU~58Mk!a)iJErJ)2r~gxANd?m19#aVNNUd+L+hx zGAP(@|E%>aMp0C`&cod!)X~LY46sW@jzUFRxs~+NO=bqpEEzL1e0FfiQ_epT5p{|| z;1CMNcP?8l@{jf*rc&5UOHY+56-n(6pZFHVPavn+aKSiWJ0oGDIC$Z}YWIHr)8+iy z`1D^6b*&wiW4o%n!ByH9|31@YVUn~(D@H9WMTn$fkP8rm@lKbt=4dHRY$k|0HZ%rC z7D`m$_R9i@Y_E0Pktz~SHlt@@;EWTktrbh14GHN+ib(sF_4wwZY*RT{%lM+r+c;%y zcitTcSq|${p-6D}T?{x1O6X;pOrXpN&#d+8yVNzJ*`w46At z%mhNLm10G{Nj3UN2|bYs?^-kR; z=}@Ea@mH#HYBP*2It=R8q@2j~W?r-?g3{ZrBpjrkI$Hm?|rOJ!TH}$158P#XElv^eJ zaP>k;V5?S=)p2DVy;D0!QQ6zN%)H@H{S=J|V2IaM$|*UL;D84|AAZVkq!gs;Wo)5S zxs;_|@n!K|zaDDz9pBF3)6c??8{>*}n4+6)?vRJYtis*~)p4(S z4$+eYu;OU=-*z&2Ydw^Jv0k%WY89C5frw*0q7_WVgjX-Wt5UPhAd(ywcPG;x=Y5%m zTw?9Iz6z4_Rp+KCCG)18Xo3unie3;&OibD_7u&N2Jh=2}IF8CX8y|f*A%zL5@AvVJ zK{s-}-=g|VQlVVoViOLt-&G_z_A8x8TYe>~^Sp~G7N)Af8lz7trbb{wIA0w{Fl6j2+EI=MSkgNe z{_>Zd$`sA%wu+KU5j{nXHtU|h-<$tI2zgY$+AbR8gL$2VXAXt)AkD5f7lQRHLTben zdJk;aM^x9As$OAos60P72hu1qcX|C8pmmGf0gEqEyA=xh=x9Nk62fO)I+B|gfnN+w zW5wZg46!#EJG91zl=sU#geiRMLnee`qe5s8bixBSjPZLoBShoTK#ca9^|$vhKRY7Yn5h;U6hAJ3 zT}KjqMQhNK=Zk|542xepZDIe!8<_2= ziN~?t6??kU95$^=#z;(jzAPnuli5r@-Ucyfko4MqR6@Oe+naa+Ute=g6o@`dXYcwH zeYw5#t&I;jUh_0zSxZtfUSI8Y=pQ#|omp9bRq;7nDxSI8@F5CG={+=v6^cKDJsVx( zI>db4#58TcTibY98=7H*gWI1Wf0@EIA;|q~D0)IP+|ca#4|L48G!WLcvf(dk8@S|V z{Pvoowh(I%0s=0&!+WF)I+oqp4*9&8*t58O_EIgW#-UcF=cUw@P|vM5Kg46_wW7A? z;aY+ahqY#=Vf*?tb8P!RsA8?oWMnVE!BwMbb9Bv}VEUn%+KwZNuc=b8r4KKsqRVEF ze6kgF1|3%4%~IC@P`BQx{OWDE0Pc3kS*uwl*NCrj?fG&$()xJ4i3{_os287pc88Bc z+DJTp&(|5WbOLBes`J&{)eQY|s^u>6i*MLh?5HT8Nbqd@GVpi(D3P=`>{RMGHwG~NuduOWQ1m9{L2QX zh-YHXXFp~BAqZe=Vz>5fA+2f7`3Vi61`$GGZP9^j}&U+Mg`mVo`yP*h-m^9`M zT;{JvUS;Jr5ZXhq&qBL`RmjyfFL9QRSlC`c0V-s;4=HHlK7ahHV@#nd&C6$yLa;C! z@l{35a8+Q76@+|&emEwGv&d}qycReKbKA8~`7SG{Ez$TJfna74<&3Va&D5aF8Y;n{ z;jdy9SE~D${vL@L)O)1w^(vQ*}!rp{^B z2u*ok@zgixTzZa3GBfrmJ5n1`cP$?@5zW*^)K5^!w9muP95Z!2=ZB_Y z*F9^+Mgmo3d9DX@dC0v8NR6?KLV-eipf8p1m!WwDn@nsxo1S~%kO7iErNm~W{_Tq( z@2ev2vEVU|oTlY!Eq??@otnN6s+4Runc=N{%`tSL^UM1-+Grs2%SeW+-a5}lkZqP$ z&%g2m5^o`bWxD(;+G}Q;J#U4&Fj>>>LO47hP$r5>09x7Kb4<*|2J9K_x2YP_rCK! zP116HzL~Smy*IN&QrvYXV6)4gr@Wmc`8_SW9pA`@6~OI_1!kS5y~wPfISdLxTB$hkC{3LT2nkWnhL?{p9yXkl;T(G%KCwPA1=a0GQymWO+~WEY)sH^{5J0VtO0gHiPf2z zq#PYq?&mEIu&6hD9Aj7S|C=h7us`mStN6ENx9$xg_A^tN>FyAHQ=%Qq^w{x)jQuB4vr&? zW~Fd1jJp{gg4xBDa49q*>&mbxrkpF8T{mBT{TVkGaN24FALt%P|vHIrVucO6537x*|8RH)i zV-s1M?hPBG?Z@~P>za|$PmFeFwcCnU@DjYk_N$3^+zcjGo`gqeMX!i2sJG>_r`{Dh z>EtRpJ)(1i-pJlnVaNxLKz*X!JYJPfZ4K3)$S+4&|J77%Lw!3k)cU;eJfc1F(Bw(+;gI{iVaH(gknQJ$a3+vhboCE^ z(Bk3F*+E*p&ZTtwz}jxLKYlsx_XMJf6M??`#=HoxBa?QrLFxPy!s@(KDyZN`b;ygAfD5~(XmdhJX&e!ifPL+T96A9Z_(Sbq5g?)5ze z{i4A`u(Ho&DKzlWeej1kQY?IKCK@fAUVh&T``id6m#p$BLuJeH-saNmx=ZDQc*mEZJjfq79Mts(ROMU1fu?HCFbe`TY@?ZrgCCO_8`Grt*|s}Z zdZMn6%btza$-+P(sk4-S=cB|~wonFZK(U5h5zT(W)!4+e{(*k7KL;78FBrl-vS|ZF z(}nd;!aV1M&RN&5Ha3K6I8zV(=~A$KWrlD>yQ^4L6&ejLZ)|%wm)?}$)W-!^Xbkc8 z_M}zC`{m_1otwBe*eDT~f>bw}1dr9Ei;~Z1N=P)j3$~vYFLz3-m9;FrseDHxcU8PP zZ&(}^EmfYQqNAmsI8NUK>3-othIT`LRW`&qDPJv3n11!*PW+~;gS@=Ef4((Z zakK=yy@DM731x1yyY3P+oJ;CBPF!yHzE6~_e)qlP5yze=q>ejZ(N9h>vTQ$!M4x*_|4F!^Cg-+JgRl0d7dkI*-c|hP%6BGPWp-3t@{TH+ zQ=mZ#V3b*2= zYAfL`xTBXsuaHHds8*XtMB_3Qfv>{SaYxg_(uYa($a5Qc(5BlRiyf`bAlnVff5bJy zpGkA()uD4p$src$Lzwb)mdxeF8qx96kF?AeW}8=2?ADBAs@71La2hH;)e$}QYfrB@ zBe0Y)+2(Vf4K*U;wG!T1erNL;)Y_R;aDh^08xx0}(h$wiUl+VnEEJrg>d9WN#!Fo- z2OIVUfGn1T4s(JH zQGKq``iWMemD%KPOlQgT_xUj9q2iuDPBSbh#QVW8B8~JL!Mf zhoUbVhg$yc26>~$^8oJ0#X8g8UOTUal&165F$>nS@Xge=Sbt5F`As%PpANbA7EpsYCV-KFNrMV@hCv88^!Ww^Sjh(^f2HjnKImaf-ZC8&31 z%xQC4bXI>4V$0P{E5&KRJf_lur0qxwVV}c_^(7y!$-3t+sQ%(e-*{`CJDWL&cjgeEuaIT2{* z&>rr`Q%}|XIMc%k@8NXRplT3yYRcvhg9F}7Vot{2X}M~Bxoy0Dxm*D3J2&Z6-eIJQ zFlEq0%I-EtnX5eA4u5CkkK^2-`*oi7I0=SWSC_0~=E7Wxfc}vI->r_x;{u2BJU|x4ya!(4@gr8grQ)gUa6^)3*Wf{P&YO-I+5}7E>BU{m; zu=l;H6I)|zyNkQ4%}wBKyHS0{>Db4*)vSRp7Y^Gf&(cD5fSsel)|aDO30_htn%%kOsS`fvh3`^@VbF1Mx6(7bVL z|6n7s?@W9d?FhiOoyRP0J!@eCNUt48^ASCKhMbL-L@U-Ov@h#;$%f@_v$siCV4kQBI50=J}0G zZVvyR`jIbfh}Hi@e_cZ1&4RC!o?Q%BUJO%{&goL{8#b-&3O0=Q)TXO`Rla0i4%<9_ zPMVbFFJ4^Y3tIUTGyIXa*D}?WC1l#Bp{Xw|6qN{^zumYM>V^uOY;mLvsOFNljcjGj zvQKD%cgdKcDLkEeM49865N26lV8?cC`3T(s0k5fZU-UNi8Jk|NsG~bc1v4WvJIyk` zOX4;2LE3jB|F{aNo3>{t``mX3E6r$&*1E&}G!#u6SLqn3?;J7u!2HBsoZ;|R*_yu* zx{_Z8wJ*=2{(Pgme9Ae?dxiONW-N?}5-ZA(Qay`lA8=wuZkF*X^LS(Q7QH$2S;{}& z%)n3^^*NYT82mg>WbL5gp$0NY&Aa9O`c2O?aU_mi%X|FNZof$LsD&ew9Kx-+658O6 zeH?Hc$g#+69%WErHk|vE>aaVs_F})g@%OgA(-nqrss4R(Xx`)y@jAg8UX=gB@}z)%~P&nijKjx9pfkikN%ihtYYGx!Zd zv{!`^V%eTc_WC|VZ18i6T0}g9uU#J0u;ziLL9x^pKMC(ubAfw(o-{E3qyW!&lWsvd zV!NRGMjWHuQ4lcCc6zlfc7CD{(AsqUXG7jq;vR*}@;UPTb7`*DKoaApboJR!P~;cS zN85;({=E2C4}d6R$woxoV#ic{p$N|D{srzzs7wC_qa0e@jJU^VY0#g&pBg54*ZaPIlk}xu@0(jp!9D6>Vg6|j1flgrQi<*dtqTo{v1JS& zYU1IHN7o8x=Jc)98C^4fE--v9oVsu-iklq&Q+XCUp4GdCRDY1-SMf@{^oY&{6hzm zVodCgCkT$0o!ue9#Cflr zGb*w610_gNJL9a2$Oy<5jzNlM!*h3sWavl4wuzxw*fi{Ez)g_oYM}zZ;c?K^U^ak( zV+M7^ZlgEZW}Jib}~16Q#VH z*jp(Q&FxROg13{jVt%oizr)HWqY-0YHzF?i)LbFThnn3LKs4U(gorNEnzEJ=vqZ}? z@>%mtI}bJ~8b8OnSDIK8)qyC5=u1cg7c5nI-oBo2A5AV2#_x37(;e|80r($_Mj*ba z6;)@rZIg9;IA^vB){WoNWoq}NfnymTjmvq4Yh-XDjqT~z=AvVJ5)djfT9-4}I7K_w zIJ65}HJ=>9$Vs=MD$Hwwj2+33+SI#(C*7|H`j$_b+l$ynhs;1(gl4IA`gvRma@%kC@BxS}j8%K9ouF0)x86_O$C};(8Un-$Ol~Dsd3qzxv(7 zG6xv+P19;|xAk3~Pk#XT|75fuh{^55#{XLTKJNC=HgoDaDC09tXvBLqTlPjEo&_L- zF(2y`qH}-Uea$6^9dki;tsi)hkys<}boD_7I=57x8XL}k+=zw`vDcuKv^NQ;!LG@r zj=`$VyvfD3+LG1K6{H#<^6Y{dw+RwyM0!nE2eo z#Yb1u`6{Ydbth&fh23fr=!fh8pjBuFO~jFGP_fUblR2&7k4+!}$G}gjtl)-WwgB9d zMusRZODC+YEX~rHOsAzS(s$B98Y<%mVh*U9+oH#+w*q^b+=wi ziH;|QimTGwv^dF(%rR)pH8~fsEea70eDi$}0P~05&XR8_R0ktWOatW+=0>`IfF^ag z@@LSfR~wxOPOUi))wIBC^CV>ITmW^E0&L?TH#AD6TSL_507r{VwTxM36L-1hr*6Rv zAQ^jDz_J!i-ugN>!!<6ikXwjt&(%3Avc&eV!mmn&6_Q{0@;OttA5Liy#O39mtmKw^ zETH{4IUWn3nOkT&l|aDwN$0IU>fmvDj57QbonK#T?)Z1iqE#KbCcxRh(eX&rVx~w@ zzv4~~^o{>L7(^hbJQ>rh)ZTYiquU&gufgW7`ui+DmR&?YUbg#hQi z>j@&Uf*G*^&%BZ*0RyMaNEkC^7hd%%DUjj^Gu6y#>(!J+wr2z4XKRBJ#D&b9ohKT& zwlp$wS^G>-T#(WHp^dQYt8%WfDLKKNBK783yQ6xY`G;;J1H+%;|w2N9Z{`x zMJCOemez;2C11=Bva#D|tvnlhZv2PA)3Vphy%)F+WrSx~^y3J-wA>uX|f~SUBFfH8*>vb*!Ym2c4W%Rbglt z7#KuP`^kqdnNDSa<6N>Ug8T>WW#ZQ7tI&BeZI&2#e-QIl+<^z4I+uZ}?21)C%Zlgj zQ*vD43w;jgU}7+^1r$9thR)h-D1$ktO~d@lhT5*_pK zbbx<%KG{X%hh2^rsYPm@Fi+Pjl2@tTVS$bCmS_uCanF8cM{QP``-4o2+$ zxH68OZ%jHuw>p|XGn_a(&lE=&3oqZVtn>f$rG`5@WUi%Rzo0{I`Z7iGR6Uk8ZMZ9Cv8vj6FRF(_=`#${`^ zFrZaPXP@uK4rIaUPyd#C{X`^+^?cVDW!gfC@CS$fhp`I-dj~(^I`$IM2E!Q%-7$N2 z`0vja_^I3|2?b1?Erw2%=0()sjL-whWEd77Rjp1;D_jahXIp8Bw)Pkjc zDqZS@N)4*WbTKA=4K|5ij2jdhc<-#Ap-!$xsbH>=@OerZRx~lu#F}WF4VN5rMoT)f``ETUT&%pA( zhX+AMLr03kdsMMP(`3FUs=kjiS$p_tJVQPts8_~oRot?50HLvwzoyC9B&lL)aZ*$e zQ+~eqZ%~0Em<)f})O#93N_-A1cztK@5ClO~=jT2)U@JbWnn8nA9MhBYTAjn1fH{&3 zm_m?skOOAg7X*!U&Ye`L8$c;OnFV`?Z`>n`m`-6qk5_GMApj9Ii@yH(G59$ zogR(}Qgdu8y;=xF<#c9(MPHUm_Zwp|#g;Es5!8&_TQ!=Z4Nb$iFG0WkdY5vXd#9+U zW~=n~bbXC=WCO$2+J3$--@eIqp9ct6`=#g{f*B+l;{&9oPf9ZFEc8% z$WVNtFxD$jIuM%Ku|*C4ZCLqhK}&l0eayzgJFzU=lATt(gC$|&0hxF`TzU2KAu`4L z5khf)vimu+mURN1GDL>{lbYFkoTqh#;3dRg6$!?>PU&{N632@2RaJOXySJYV(>Erto!%f!oxG8_I=+ z?@T&t)4OYuvi0fA_e4v}(Ej{2T;6Ty+#xn#{fafErpM3m8TUx3h7r5O-G8!uD^XN~ zqv?Cle=dH?HqKzC!WQ9ZjlUfu(j7cc&E_tWe~?LOlJNl@A0?ZadID z0Qgzv6Li%p5b-k5&8WnUx}vRXrN6+(2uA5l)E-|+@~tMNg9 zVp`B_#nOmdK19;uISb+U&K7(yBNkn|mS?WU1Qto$JJ{PN-b@F^NRDu--TV_C`T5I2 z$2ym}yB+P@qWNZiXgF(Pg40AME+_TXhsps0zl0#0q9}%t?}&vVFS}>vzy9TN(^|>k zMbOXXyVDP&ZLg?fb(BNc@CyfIq&G)iQVva4ug;v%B49=x@6Ryn6q-x|M>xvvDGdT2 zyWlVvjm}#qlIFj$8XTQz)C^`hM^>9T+z_yQOGwn@(e72Q{FurnN~jWee9O z59E=GLci9fee<3w6~%#nw}c{mc?CMxbLpK~IcbF`#3yW z{&+`RXqPHzSv3ZXBn66cqF@YTo59LEkbmk4Og_brZuJRYHFfC#_<3RuQmSv;bbLC< z*-KcJ_EjHLgz;lG5)*;wi@&M-&F5F_LBvl!i_%~|SxPMAQU@N!D<`ecL%v)lG@{77 zOid`NJ?Iv= z1Xf@dwE>3P^Nxmk6h*t?PL3ABtqf+qi$igunJMKlte3xII>1?eUz8nLx*cVVVkBg{ zO>NF2L~h&9uTR;#?hVf+@NNy#D_Hs6jvWXUd@%%3Zr(uW?P4s51AY4e+mUqA|C2* zIXgte|HKeAI~}3rG0V7Hb;MEr8;A6WGXDa@PWcz*;R+%o7i8#^(;gJd^Og zN@r`rc60X8(@TGO4yeBNMs9m2_3$2cB-TIw>htWlqap`RUXZUp;Q1cPvtIx3zZ}`{ zA}3RhGht<}C3b8Z`ab~UKpelW`@;=7ZPwsxjyMh$E?i)zoO-e?U9xx_JzzW~jtvv> z0qUx&ueF=J{_?VH9vti8 zB0tO+CJ0kQi94*VaD1SN4}=AUz8ywDd?QHr%en=ITrP_ge5mn894h7;z7<7&Fibr< zbAh3P*yzBbjmvnn=o1V|_n>f27RqFh3LJeV-(il?CA-%nuaoS-6&!&D50SwyT%lg0 zf+AgsFGU@TaR|dLw0g|T{G0|_pu#NuFA)Gjnc2BJu2Q^}4XIud{>M_J4@g-EJT$71 z@4Z5Sg$D~{UjV5-94E{hgddAx1P%`+Typ5mo)?^j@ql0>{aLUS3J5!>ZHDD0BtYV*I30fWE~=l6Cbmd8Lu^j>kzuXTKJNWjlWyna0YgLyODc6FuLc z-+x8Z_sg{LG+XX`8wW~lOS>*@+aY%gnnUUt^C}8bqiliP`d>)I9(XWC< zyT){X@W&2W>1T90>Dk5qeU_Foo&}~XZKZTVp>-Gyd#aojs2k0QYblgXKFtBKQq491 z06+jqL_t)c2j|x!4!o{K*6jE;zvrHN+~vy=QouV;4WK@5Nyd1Myq@0#@+`z3fenen zNOw3zGgxQySLIW;r6m4;3Rxgp0wsty34=3nu>l^C?Gdr;c9UeH zep|d`f$nbTvi0lMI6Y(AFh&Z6vECI*6XQd+VIAU3C*P8Sh99H+nAcd}v_JC{7o#Kd zai>rEvea~1_yY45t`!fDpm|Aa%wEk+b@g>)Rw=f38YuJ=&41!AKM%zmAXiLm#tj6%C_y; zDZNFhEnKj`j+i}Hc~okx&~7UqdQ3(;Epmq=H)|B8Fwq`DAKax)aKa9iGoZc(Ubwb{ zABXrI+UQR1ToL}eWZ6#GEw^$V9Wu9{VA!~6lYR6fAGD=MpDb53!J7Zxhd1kZ)e7ZQ zE4kuoJLlPFIUdjpeDZ~Kd+>f=;n=i);DLwilb`sAz3Gi_@S@0TZ~2df8=0ij7s4$K zHx^79j^|=1QlLnIA_c}r0nMMODHI-oY>Mudqvp)@$kGwSr&|GGM(vTV{EF zQoFi8xXc6?tV&oM!cYSf(xO#N9+t$ew6wI2D~y_SENFp^^3@;;Y8{J4p`H#PMfoU( zv3wBf`mM{rq;O78upvz-pUSbz&4fx?ZZ7wr%*Y|)jS%9NHi~mxBz!uq0Xlp_1LX&- zG9+=){jF z*8H`#2iBsA#oMl3x}Zt($E+Dmc0{v;Ysu3)DVlah3Qgyx_)W` zbt{4%SPC#Ua4CbI_o=ZEXOUXC&dj^?CF$%mN5kB8@n8kKSLxIrv0K&p*T*>iNjY^f zPgcB7mOy)Q+6AjNcqro!Yd0(b3CIu?l3NxpT5Px6a*LgH)>-b-1zyIcw4ao5`6h5+ z{Qk0$7o{kaHdu(~wh?nsx2yzRL90^94!l*YLGwWvsLFCq~vdJ?~ot+`BG5q(y{l4?CEj^vp~uSeBe_-$5S{u z5mf|AnSSIN36*>H?6Euk{Ab??Xp%p7E^NI|CkD6_cGj%fqC)|bapf}^fp*8TJna{p zxE}S5KK#Sp%eQU1$gwqKTDHWsZ@JRCZ1mHV&JsaV-OYPK(KxGOl2v(j6S3Klz4D z4HT>yT!E|72}|7F?CBb?<`(%$t^%HW9K2$VBZ@R;gh*>%CCy5~hfSbPu51_G)~?;G zG25>><_IaIyKLRsH9ju|`bA3Y|Ekj`pf@gq{M2%uKH#MSxSxWzrT3A{c+1V2yMB;= znJ1&nmsic?tJOQYc+9^4gYVlfe|@E2 z`2FakkJ`e8i|oDcIm+E9edymmZ0lC9c8mCpo7PJy{IGrWW1q0|&p*$N%&xxnYHQOe zu(!VLoi=mEj7XLVeKV$>{p_>txzD@M?t4heeJuo-yEt9`(wDx(<2P;IZuj4NtH(o| zH@x9>_T!)Y!uGUv*zLFeVM65r%*i;yr$6}td){*|a5}-Wuf67X_O|za%s%_MFWd3Q zEwdRjrhA#p3*!lK4&NJWE*#^kMwjmr#wsf}9q{?$h))Ol(O7Wt{a7&M7va)*7oUq1 zC{mzEfiWonvxN~QU#zFXdO&gFd9EKWsnVu1#%|1MA-8gvC(HmQ9FK7!Fr!c2`rCSfyiOH6+G}LY6$Da+k7D6k{C}m@WARg*ga=slzIc zW4rx29>>Br`bc$H@YNq>gM$m+DhGidh8-vOpcGdf5d0;HlP`F?0$%x3ew>V1NZ`gL z)QdU<<@lg>*sVO^*N!Raj=$VY|y zMgohJ&<3HLxUe9eIz(JqNYH*XFma_~bkX_@*Dxb(1A|TKg=Ku%5OfVRfQHZ?d{r@z zr!6Q8WqoLau&{Ah>IJUqNzl7QCQmB57!Cmn&{y{C>6F!Do%i8G0Ofr`5d}D76v3~n zvqy?1_3OBD-=`e&CsGj_uTp$U`M@RyzjyBLux8PBhJ3k~YF^nX7ar^OXyL+Ks9}i3 zJBC$E#Kka`D8Ssuf^=%&RH_B1^Qn=3OQ(Sci3h+hG?pv1vaRP>k>Ur3wWuAG?^-Fb z=v!?5Z0$nnq&_MoJjy>7!YH<;NEHtlp=m?L|1@1xJi@y*{+e}Z=rf*ida#&-mf~?J znqT;W7ieLAgwGc!E;>0*_zzGtM|eu2|}%BWNSF1@>c)t&od_ zPCM?{Wp<4G!E?!JJjHg*F-QCF6)RTQ>Q$>9hYQX>-<9pmm&hR1)iw5v(@%Fxc{VKQ zli*P=fAiE2S2&yu*tBV*ZQHiZea*8$uw=6k#fbL( z!W%!*;5ECk!m4H6j$d^)5xDS{6Mg~<<4tWwyZM%lx3k($|ERm41f*WHy~ZOl7;a6v z{jxu^C9SfYmpd7^9+xa^y@fM2he~nUSB=ar>R%y<9f?G z;osTa=Zc*&op6j5Bt7s%j41Z>ThabI?a}1L zC5tt3!tQ)r<%1J*TxbK)SXpoZD<=oE&u%;A-fdQcPK9W52p1FZX@P^jTf4j485NBW z=b7Twiau-t^+eWy#_MF+j^V*llVe|6TNgQF9X> zw0k+TPOjXv@x{HXG2gA)7-l{o58tHIoVROtaD_&@(G2inPH&xk_StS_Ua31Wwu+xz z`I{^Ko|V&2J-k+oiY2lfdy!G$h+B?jPp$^PTuXx4F>_soy;q>uIPzAwL z2~nTnKgRfo{kTTFx;{DKz@@7w@>f2-$}P=Tt-93Z0rK3fO@&);z1?vAh8v>Aix!LS z&vIEPUCfp(TkTd|_WJNc5Bpe|FInmAvz{e>zc3A^_E{k-`Wsyam@|8h>hnUMa{-F& z6%$Z%sM#ymJwN~7U%3&$si&N5*IfHMmtz(#T&RtS3te`&`s&{qvJf5Q+2@>Xr<{C} zXG421mpu63L&EP4oygnl^3RDUo@mcJ;~68${s$j?*si+j8hiOGUaAe34*Sh-uky{; zrAwFEx#yna{S4YoqMY8{fVD6i)N`1)1SMqj zLvU3A38h1Miz0qV3g1DwUGM4Y)`Ho*^tWpql-% z32;TY82DhsHB~RH1aP~9@*mpzqJnxQ<&#OKUIAB_2}*RwSI?0l00$y$LX^p$4~-1% zaYX|iO0kV4|#GUd`Z$?v?(X_%_U3cOCLFcw(x-F~D1 zZH;g1IM?pStS6S05W!sn_^eyM!56~x2Jiwu7NsaV;U`=Qh;{Ox|MF*9FdZ+8;#sm_ z44df8$3t3Vc64K{CN~Y*WOdgM6T{|^hGtx{z=d{L$8muhmTNv{;p^gF)1>Hrh8Ah? zKok<4qV(s$KsxHjy&o}mp|a|4lh}xzfW_wl%r2M;dnbv)@lUg0Pt>DcC5q4 zyE%ws?pwTQv3#h{_j!-JkO|=H)O%RQ5=eCTSDh6`T`6AO6c2I$3{_Y}FoIsW+L90%wCe+hI8rwJU{gYdx|N}uQAQtCUPw&FMLmE>~R z=C@Q@jgA`8=6ErIKEZ7YvQr4ulYW2<*VmmK_g5WhPi3k%5l*92KY*5mCV1T;!Y!S| zDenjeG;M)(W~6zN#X}wHtTUMHBi zG@R;1GMsnrxpvAar#P&ym-UhpDxBQfxb|`DEvvWEX^mDk(5tk;xT{3GfIxZh0LI9y z<{F#dTI=q(w(gO8N}a5mRaa__y2}WHGJg4H4%oPHll}JUt9*{|jFJ!dvRkY>a$&r4 zKgn$IBjTYA?qp`^Z`-yVJ~yyNC2N9z=>s0rq>c1G%^g*x)2w;sT$?6WG|1yk+92QB z)@LiWbjj^ag+1%6v!rO(WvQCCTB=*^)YDG4kAL(-I)T<{Z8FT6J$JtS^S@kbum8J? z?39z9YRisU915Gj=cA84CdKha$B;Ur0LO3p>eXwc{C-??)IZe&S?(NNth!#Cl#8`}wbm_I);Q?o7Mx z_rH!1I(cxZxBnMD{~uP_c(nEHdDP$CamQcmRQaT*Z~X9wKepGuK5U9S` zFnjD1pZtuy=O6#UmF}GCd*A!s>ooq-7k_G1jk;rC&sxFt+RI+?TKmS=zv%MdMCm+& zXz`&)fg%N-R1{$Df#*b{CFU}8$;i;|hFmNVFEJ?LS!!G)OMwMO#r1$5rs&2ZWbzObE_ll{vUMeN-;*Jbt8L&yHWkFvTc< z5{9;}lY5nsHk)EN?r(IcCqgIw5=Yfpv>-49(m`F?1v>l?ve=K-^0{!NVXW{z1Qc#V za`#ZJIjX{aiTd25u~a8Td#x7qKqmTuBu!?#P%eMW&C(eZ!z5Dx+OzN+)lViF5Bdna z4W@qUt+(1AbQu;dI_|#vZu`Ua*W1s2{&TzY&cAqHD=n>1-|qAUTYE=`^D-=S-D*}9 z!dEoBw@RCA=+kyf%M|+-_00YY70r%|FqwXudC%BM_`)R9Xm7=V7h@BbAt-)nTQ=_z zfcm7k9@6G`tPva5eNv1M^lL$ic8E7hGoS@3N^VZIxw2NjJ+1#{^E~8*1$UT4C`8J7 z{RWQrq$OYfje=kAXegg0l7s+`73+JYn&SDk+PD%*N>tT)=4PgnFkCM~*^vBe?t}SvAPCF7bMN z9J9DNWX?w}gnrH%LUTA=`h&cXyQV@wc@EBgnpAS4NR|nXXV|0%XZ|8hP+W0$NenK} zt4=`{O~JAT5KzpQ6qLuh0p&hCahf(LYGrwh(G4_gmPdldX~XgdU1CSgD7Wc#a$Qj) zrJhdgxWZO>s>QtMk$lz046%SCjTvNney0O{g3EE)h~do+S;Hs8CJlDTJ%_pnv^Q+n zs=FOJZ1Lg+n)?TA?V8m-AA~-aX|n@aNiRhNrpz*5cc^bM$P}PE?XbTCS<>9hvH1dh z0e4|RImuj{59+|jfghW*4LWfIPT;&Za)7G0vA+8>Xu5T8i_T42uQt=U_h6{1$@(js zZQZIzZMXb|yI~fSp2jq8V&=}9Cq?NpZGbR#7#pQJ0orA2AAeYPIOtxGnwgFV>%h2H zCIYTjx zg4YjvZWZj)Pd>%o{oYIMk%u0jI^zzpzkTiN-?IO?;wNrpk9GKSo^y`#o?rg**LL~k z|7lqJ-*eAj?YYmr!0UVCAOB=8ea(Aq%jPYzB!9$S@cie=`ak$|k9m$43DzA1#vAkN zV=GqL^6PG}y4K@HT;%-d$3Jsr`)B^+bHe2=d;F0*?B_rKr3kyyKK+?5_{ll)`2F(h zUD^K4Z~eFZ<@V)zUM|`57q*`gy)mMko}__`~#k?^p+{T=^kANaS=*eadYBXEL1+e3E6Pp%T~ zU$mVY@72k{6?WPN~Fjg`GFlG!4?+B3*pmawu?}GXWEDTz32`qW| zBZ#Oxj;XQ0WO|EmF<;MIA1=_#I>?oTK!R_o{E#&{C|&|ZsV+ouYZoe}fFd{wb{?S* z(s;d8H!{rB0f8jc%V8-CB5DCJEXEb!lCn}b081=*Ra68xSN3}*fd-*onY_JT&{cdf z!a5{zIRRnB{nTgSDrl9L4kPU)T$QO1;w^CDFB_IN5M4!sSbiZ`+P}0kv{x3aq-6d@ z!H1IoSTulDROY11EIuE63eXpJYw?BOO4>E{{ezF$fyaPjtyuaXgtNI81G|oK*k|Yw zl;*p3w>zD%>cBliU!VNm>oOt~Slzmmt4>y*DA#)>;B$1jstU_GS>~w>@~o??k>y6O z1kw)qVwMG$xUtkpE)dEj$aJ_MS_;|VYm^ovnz3Gi_bT=t(F-B62ad`Xe+HxJ~ zm(`T|Re5EAIx{qD>L7D_55}2_#-l3T+A!|oeP)yJHqD1=l(7TH!>l?Q^6TdtB}O= zo8bJIhU9$`N5f*R$UKC_e805F(16#Ge~-X=F8Uz7KO+y(_Hj-Ou_IvdA3Q@}!x}D9~uoy1Pp9lNsGl}%_%-G{0BD^MZ^|MB#5HK$*`+N=CD z3|wI^@T7n1K|#?DgR-5bYVT8H!zYovgJcZ5C*RStZh4QbbM(HCE)gEF*Yo!FyOz|fd`Y&h}f^W1(whdzL8i;}gg zOBbg~nO!I_M~1!{X;ujGz{Rrx+|bx;)pbqQw{E4a-znFJV$@ASo3^BteE#N1jR-x% zx;F6X-k~z9YiO3Gv`(&RK?$7)WI;DD4L{wq`3kuKYqr*zbKKe+zRf)qK^6_xcYEYQ zX2A4OwQiP5VuZjmf&zS4b0s)%@n^F(Cl}9>%MuN~Htkfk=_Fm9WYkIxyg}iT z8^9Nf_{K(ELOOSza#cNq7_tNki7Jfj7~}d)zwFdyp|{_0hi%xnL7M`{$vRypQ*~Vb z=wpv{qdH{ws7UXXJWd}PR(+vW_<&55%G?s#l~;{5)JX8Y`ad`9xradzx+ z$LS7~R+ZVM4Q4imNu$jNxfz??IL#KyMOs(ecEyiB#QwyIuz!5_JM6?0PjKb+pKiL{ z>xbp~$3K3VE-yXX4Lg2&)pGBz^x2>N;BtG#%U|Y&-E{M9-p=DM89Gx_Dan6-oo$i@ zJMv$b3^A^~_By-r*FUol%A)<4V~&!ddW(JMdq1)BpL?Ob@#5FJiy6|r^rbJhPks8c z_Wn!%+5Yu??~$v#Q{+0cJnQF*ll;NOxgtK>_8iFLGJm_J?C4Vm$Hrjak-F0@6@NUw5Ii3mKrx=P9C{mzEfdUjjhwBE%n$KA; z;M&~XP&)4kiC71em7r@28+pzf^o)$^AuJK%ub4>8R})rtZ1PT-!ze=ti#nA&8de|< zr4RC<9M3PphDa|b$t>&3t;QAOb;*Z_LkB#lRQ$`zBJlo#B4n?DI`OYy-7`5jt|{CzZ$>|bdX1xeB^?VEO8N18ryDLjlCs8u z?`W)wF$anQDAEwtqkwy$%9)D!GM>3KwNJ|Nni|~81jP^+Wcm=*2X1HR=UCV3IQ5s2#?FB8*R893}mpXY$-Fg*#S0fG0^jUHkwX1;aLZD!{k)kQV(N zx>yw*1imowN4vikq_NE6cYX@cW?Z(*eCz!pKiH(kf)gjWxPS_UH;cKGm!>wO=dgEgLsV zQC8vp!Pl%?CqI~5WC1tVni`wj7xz55LTPJn8}TK+WXTdgs?G(VYu2ulLT9HdHRdT_ zF5nFJg{TuxsgNwlrxZ@(L1r90KhK0he_^AAeu3Y2`V3acY&`5;*_KRR<3X@B zygn$=B8e_W<+O+Dr)L>x`Zsf|lThDX>=(tLNdBb*_2LLAeZ0Jq6JoCZP3H6ztnxba zL+pF0dgZN@+_Ff6$0>(0owOO`xa=6gX`1S@JYtm#|I+~+DH;=HcajH6qjZkxXXzNV zfg*k>Sgd>p2IVeKZCI0Vx~4fY*U`abBE^ffiL&I3?__vpkYC*$N0%!a1TwxP-fjTJ^ycK=}BW5qtd zwaVs80p2c${Ofo1x>}yG(xNfz@+k-u2+%vY7elrVhA$zGIaDPkZHFPj{qiaPGAW+t z&R?jya{8*ze*B{!`W+$1Nb!!ls3VVDA~${YLNrM>R;Z}e0B)iR*DT_*_t{jy6D;k_@;lbf848`s;1Km7%}{KN0dm*rmLm_N8o zozTgp>cSH|m{_`#c$DE7@(`eLx7ve%Y~>fT`>zRnB+Yi!)z=$tSYl|Mz04Kqm%R1O z9@V4MYxm!KlU@ATFL?hU5*Y#6;Au}g(P7rhjUftmT;bpv=jNMlwG}H@`31Ar{Qef3 zIrm7>zth{TL#HYUC!O>(SGLEzTBJOG)|scvO-!&Lcc4)pVZAlIwK*~12msSGM-bwr zt30!2)2ht7Cu>t&lf}6jy zo^_htuS;{;h%AO81&S0XQea#Z(EQHkEbn|@9sPnqOhr;Akc z1*QkaPKV^eoszYA)>=XqU?mzyy68;`gPl?U)HEux7$%JZQ*mstNX5MoN2LeVr*Hv> z;vFBD^uKl~#eezBU)oDva-l7iQXFObE*&TT!womMdyttkXX+^RO1twfci3~zJztlD z;ZJD^~i2n<(p#JaVZYb^gP3e~=Ql z%Vy1SDdA2|>xEh%X0T}~X2x~_c>Dq$Wt72d(;Qd5!pfBK8oVo7I zGoI=54=Yq^&z%y?cWfw4#XkN->OG#cE{;W+EcqUpS@nR@W~@LG`c%0TVEK$w(rL+; zzgQeUNK4#Q3|_a1B9`zsHi>b0#EF+doTg8pl2~Q-i|?XHoG$Bjc;I*g`WL|Y!~Z&U zsMWXFwrDK{rt*Ys6CVS=cZ=6z< zR(xG=*}BsfEt+pbvM7J_vBz~;WS8aw3FleVn9Lf51t}*(+(J7k+D|s91!==45~8dH zkHm!zyb&XbLh~H+Bzysx4>-Q*8Zf->NMK48f%a-2>iWF3#nRd zuya{87jSba>7EXZLxyelhMl&xz26qhYc-VZ+q=sAgjuWr)gb>8Tzi$*=wgCuol297 zv;I!oL+6();iINp^H@!*PH;=BkKvcckEQ_q>*!h2lufy9)K1lkt-4@y#x&pTnp=-+ zDb-_)vEul6wrXb~#%6-!$4Aok#1ppf*de2UdA2~8W_D^UavFY zfAu8vfu=ec$n4x@KfdCB>{%zDV5gjVddzM@-`uBmhVF!U-Rs}1(}<7TpKrgx=N z3t#vGkH=lg-GBL0h!_6&BERO^ zx9t-j|A;L5kM?_i$PHQ%aAg$f6Tjm-PAn3B_`{#rYhU{+f4=0BcS#|Cyz)BAKK=P` zd7OVF`Eg=_5cA@>O74UA7ATWbndz}gTM&>@V+cG~_s^+cvpK+JuJ8NT%j6d5TXx(D zXV}YM`aFBpD=)Oa-uHk#^5CDd@F0(HA~S;@o0G&*ZW`xUUh%s~fg%Np6xb^Tn5s0T zhFNtqbePG+UK2Pe+_OQG_)N-VLJcW0(dnl+VR@z_LR~B>LT1W|S;jZx`_9cTlPZ>< ziOKVnr_ih%^fEpeiSuPsKh0N5zu82jTK#3N` z{l2((vQmV8+9a!WtVggqNBP8Mi3Ai>2wqi~&1pX5IV}J>&;&mi>*T>P((pVw17<{K z11@f>mG$M;KU08q!VM7pqEMUd=OV|EofZUI)mEsF zvOr*AwSC)mS)H%56XZ^YzRLn7_^M<9EH?`}$#L85x4VKKU#ShcV6{g|vFoqD-fq3+ zW_!_#FSHuf5lf>ULtz+8h%wSN6oR^cjSeEC3gE^O@5NiOnP)Li1OT=rgS z2Exa8@-tdUW91shITrKjW@7BOYjYddG3j>pIf3?4g8@(aLnp{eT5Z7Q!p=S2wtedk zx1e3HaGr$mO1tC!$E~rX!^$Mr&?nP0o9sGP$lVEwGQSL5vJGK>%*TvL=6Kv^^~lv9 z{BSH~dn`Bbr;I|+5t^hA+JVy;Ee&;AJC*y1#`^MFYi+^;y;Mr)8MeM%JWKq!yT8i@ zI@)#F<18uGb#ZV@x6Ns-vGUsKw!K@*b}1mK|EK_QlT$duxCM1tHw{N;rycl4!J2-T z%1zO2-GhGd=;PZ&U&#SY)n!&+AtyGHQ(5=rPZ>5@+}&JCahl56%f^pB7WbgCSZ-X_ zuV3%(@*104-3R^h<;!i(tX7|Ez!q8OCqMm}EZ!H{iBCU8yj^pNE-c@+ZJY7{!fT|y zz`Z2Fa=AzDXXedYAi3w|_LHCdP;*t4E9mdO>rT7-p1bY%6Q1sUk@@4g<=5ITfAK5( z$~XQ?>xCB2FZ30E9M{K3KJr1k^wRf@^lx_!tG@r1xBMR|uwR|ThklFP_VSm##Lho& zt>U3%i7xW|l1?km^s<;^#}i^3aLSR3W(l~c`NYTnQyUgv)v3s**}{c7@!~W(!tS~E zKDVZ?)y3_xej7J!_H^fd+t-r5|1zRL5s!m3&9XCDNdiEefj;sgAci~{cB(QFP&Pr$X&uv_V<5q zg?;_2={y5vxUe=I@R9$(gAZFneK5L8zbif$DNv+9kpg2u$U1>Z@GAe$27Q zINuuSv+BSs?sjW20qm)#oN6<)_=2}J%Bt%rQqXVTw$)6o_)!zyw3hMO+r6T;_~|w7tD6yWcp}lkWrSAVXrM zo#+7b5`lisrL;ri*hoULDgBOzR{5xoO5nU1Pk~5ub)2Tc${bouB#;(m78etj>&M7E zw3kd!ws$6O(-t;~*U7s5iG-Ls^!AVw^GR+HTOC>DFf;(^l23|uxpBiferb#5N%3Od z#XNKKIM~0z8Ql0Ak|qDH&H-D!VY|By<8a;I`{)Pd?jvZ~*(b+9Ud!^i9)b6z((l<~PVhq9aMEm`| z;2P6VmRt7gvS577_vz$Sm;4`XXe)K)Uu*TC^-2lfHKdILolMv)CFp~zw_1PuHjPpF zd~a&9x~5j!*(+tc)?LvmIp&}J9a~+MM5&(jrvX1g`3M(NXSc|vJ$<&VeL#x$VQZ}~ zcOUc2Yv|E)Q<8(zQ-lS#`MRWa`t<3ZaXMGpj?K$Oix#Qg^{Pw19d)!Uv0Gd0%U}G0 z{mVc9U;F;|zia28e}Vn`$37{m_XWNg!REp#l4}+(UhLT8TfRlg`4_(E#oFu-hBI6k zf5M4RwfPGcitp)kmv-9fo0{!?|AG>{)IR*7587ux6Wp%6^^&(M?Tf6TuGY56E#J*D z9QfELKW>W_FSVUIRj@B%hg|rrUAIoM(pooO*t})4_etb3Tmj;akM|qpYaJ`@wzhVM z!_a|v+_*pw!g%LYcoYHa`WQ|)@hNgA^M1SePuJS-ez)ACk=x$&?!UEffAgy{l(^C3 zNc*6a&)@j3@9OsvQm!xdzJ+dM`t(+9ZY*?VJGkEPN7C$c`H}v^sm6InJk`GW?JMlh zf4+v6XKHT@57!Ak6!Xh~XG%^V%QB3|YrE-ob`hq$G8=izyf))y47NGGK*(^v^ zGLtuXf-5(lO9D@GfviNaURd&RxoXLfCgCo<*Qc?w6_5}_T(9kf#yPFev>D3 z;OHH7$kZbP6Q2;q3FJE#oVza&ELMSI)=PO&_K=Qog2!IEo0nbuI5-rb|KY=z%RV`F z%hpm(iY7jz) z{IW~(Dux43fzW27dD($4xo`7dt$GU6TvSnImHv0mL`P{n*sOxXn z?p;2}#7p3RSPIUWJxBQr z`aAgSZYll;bZP2ik3Hs!clb4Y0)M1k@@Mr2csE#!)(VU&Mq`Uw`-1RBgEut{BewYz~;whVRMXSzg^kuiUu$iaL7f5q(~ zWux@n(KY0*G3LvCb%QR1ly1)3>pZ(rK0foFXKTSb4HHP_3pJ{|C&hp-0H0Mf>WEb`^HXPVsj-~*g?N!M{) zsFFs6K-rFKm>L;T;5G!gmU+$jp;tRm_2rO2UDh{===0Upl|C=#&X?oDV;_N-hjAGr zKQh*>OFFA{aV$RD2TE$Jwy{P&*(=`%I*dUjErH z+QW~mu)lfH1@`#L)%LA#eNA=fw<~`5WBbsjzHOhp>=N6o%S*rXrO&y$zH5K?dwa{@ zzu7+d$2-@MR1aM_35z06hDESEp~>+FB7__58E5}S46nP;A6pZvr}Y}Tw9awqdt zDdius&tCp1&%d*?%TH3ykv06MKXIvFu=@6Q{*#^ioM+1Ke!qR`8^5x%&p5_zyx|%( zYt8`l9D;1OW9M$=6Wlu`(TNU*?vP2xxYiY|E@uL_Xwf3R?4uvQ+#Xx8(v{}l`R)~V z>&?qOKI%JyeA6o5?%VA(ue-!v|Js+?#!Z{-i(j~0aCLG+^9r9g#!F|AP z3S?1096~&fyGmdd73CS;;a~|9(HV6XxME{svOzJ8)tml_0lDBJXr<2zu9!zLO#w>J zPIV!HCBl-&kOVG{rl&)k=)h-Cie})6LrKM7zM$7qG{~P9ldzsEs6!f7zhj8?;#&u; z#gxHS`BI=l25*Rk@;KCsMHLGALc!}L;ySIMffN!WfxP)k&_I!aa91WAKrMFx64SY| z8>NTvz~ZVxZYHwo6#?~)B7{7t7v;FpJrGWT0y4}WlMyJVRCLc)MC31- zd4Z$xa+T?qWs!D46Mp11*7cW6CHWH~lkepoDM4zagm*ToyqNa`{|h_=#>IR=-Yf*0WoZ{IC-t6u7cJIN=9zn)Q=FzM z7t1DmtM}=$!(Nq-OOG}#4Ay273NZqgBGyY8!5`MC+-*=US*2e%_yS!pLTl`h&}DC6 zV`p;czm4^$kK;;+eqJq~!B_>-uEam-0)0c(W~?A{X{uHjEpsB<0Ed!>{$DEh7~#VE zY?@)Yjdgpe`sj>W$+~*YoSqFeb*Q{k_xds3*zjWWZD>%uN_8w0P=KUm1{9pk6J2t{ zCGDT;E#;*WQ(vDeMAs7eY~~VYm$?-Wjo6TYHqE+l(ZeJVh^D4Y6z!DXB4z(}xp14W zJ5s7NuW&Mft&~YXCA~E8>N5`$V%hL}@FkwE7yA$!6}m@K%64sXuyMM5lW!zeHqDVt zSEruaXDe5&wTix78r!%VLCHBa0%M4EB1-mM+URK1H=7^K`xBmeoG!X^M=r8zbnzuF zvaoc<0-P3f+KG6YUgAy{&`ZtBIuX__E zx=3v$n(yOSOo90$>qNI47LL#%tSR+Mq~U&mI&DhT>u+c*7c?&`pRvc+&^;qvs`c;a#Mn?qE78i z-FLNN05D`t@>35V>yom)UG8t%bYh@pT9Ds5v>Axonk|~>cDHrQjgL;ZRy9fH(R~NH z{B=l!YnuE|ZIQ1jNllus%B*u&mu=MKxM&u}2MTlzy2&^LmwkTa%a^;78bgVPq)F2FLfTRhIdLpg-AR|McFsJFP$W zg|Ep)(RBNVcmI>U@#4R;c$sRXS1hmiU8F#f0!0dpp8}E}B}2RZSkqjocsxdG%y_Vm zAYF)$!AW2`Lxa6O*~5%keCYaeDW^v(-CY^%*3y9~^P9N-zm)dIv0|0VkB?P-~Rc54a+jpp(t7{uo) z-Mt=CphS9R>NQ$Ga%Fo`FK~4$b2V6rcKE#wA`bc<5u)@=<5Nez-4|(szkY@`i1h+M z!fT)hO84wVSZIT=F+j&+Ax5*apdo27Og#!P#;|g)Xs(x4MYk+uv{iSfMD18W;;r$3a?-nm!Y)j>8rcZN-zmECBGqh=*%Y!_<@@n&T$nWcljRvcP%fhb3?I6?`&?1M!Z&VU9O`tC{zZbWWHR+9+M7N^pDh>!i;T>=xAfJj{s&|QXcK0~laNodMBETx61e&=KnYNGs?SK;X*wZNZF1>_@G>~q?`Oe;SlrnIh9T+r0A!# z1A#F}pFt_DLwJ7DjnfCc+LWXd>$RSRtJZ3LJ2#1@Qr0zu6H2w^{qB}xuxqDVdjm_I zr$PXaP958;)I1(ffHcX#+i~1SB$>y8vQpzrMC7@glZ#$!ow|~%pmn?YPfF$4ue``R@=H&+A3x}W!zJZbRb6Ylr94EPQ(z|1wyk5c zJGO1xwr$(ClaBSrwr$(#*tXd*Z}vHN-}_c?^|or&oa6h(N`#}k41C9EcsHM%$sQUQ z>{deqR<==QdCV!(QaHSzpmlUZSjaP@`rTHpO_w>gc|ZQ(TW0+Phba!iX(p>}%X~Jg ztywjKjRH;?zLo4a8R9cDjSUs-2!Rzx;3aQa!xV^H;(`LDw6Zuz!D72mu)XyhU0jyKWJbM`U z&og0qqYwB4@&CF2cyJ0G`;8 z--i&lKl>&3YVaivAtd2gkMZ(n|2fC&P0pu1MEzrOT8JfuN2QR1u(K@l+^g3-bRaZ! zx&MS8I;tLh_+5hpC7PF09;T!8UY*o=5(u_gksJ>Y^5}iO_;FU6V)s7&{cZNX;S&GE zCzXPF$^Gts?!BsG{QM87qW11*r0o0SqqSi(XvhB-wZnY4eEK@m+o$KW7u7}C*RJGS z`QIFbZ$8k!mMH8D{&f7k#y$60Xl8jp9gw0)R^tR`#c&ww6qjD~h{)NUQB|>4H^Efh zJM5rX`y|PviA2V(k_e0gBfp!Y=IlQ{s*F8m!E*92`jK!VUkQi)d0wgw#qFS~geQ^k4xh`0#Q-dX0a0RU2>@?-w{v6ckxqnswZv%w8^rC6|hHOKF zrv&h>1or1x$&YQj0i3XEu3)kJLMnBT{b8`=qQ-lvm!?^%_*O_ zQ3uPK9camsPJHW|n?}{u)qZD`c7_@nbuT78*9)Yj58_{4IZ`1Y7HYbGY!e{hi}&)- z@^3T!K1X`%Yo$rao0`UK1HbTm50Nw3-R-FKADwX>!)K0QX8|$fjD#B%k6VM>VK%Cr zDA!6Ig$k*E2SGhfuZOFE?C1Cb=zLi_EgN4-49u+a{hECE@s|oFHA%cVzGeWb&WAWCgMDdIeS8lEp ztaRHVhms9rtvN%aXf0E&LI)V}5k?Ow>L0`JKU|VqK2$CMGBEN^o#awuERokqD451~ zjx@(#X8*7XWhYN0;rRNg6zPgQPJ~^s8o_OiY9@ z&uw`&`13lKzR*s8?1Dj^U?Uo`zqA(4-D4M19@mcHt*bk2!)F>7Ei1qj^6_0Q9G1t= zF^W$DUSKj|W{vbgjFCjiUI#WbqMj^T-8O1~wd%WP+_&t)RA=%mj| zEK84?I+(PzYNZ7pefI}`5Dz6wTBpImkHAed510^qc_2Dni7ys`J^C(p3GAGVJdNM( zZjb4Iu{0am&QFOC2hki;*+d}2>$X#!G;L?Vi_Tn$tQ!o`-Xd?XuOD5Be6sPb=rk0j zDw&Z^F7!vZq)c5Ymi>l^(L)|z^<*HuO6*t8hj^R8YUlU-Ha6KzsNF0fkl%Eww3&)tC4!ALTqzWbR;1e);uy>U z6Vf~vA^w$wf@Ao>t*ijsAV!_bPG&aaC+)2*t$3=t9=CVPzyXm z6*@L=PFxzD7!dY?<9$Le6g!$+-{D}?i_qD;tAk7^eWdT#JmKba{35C69C3T9LTQo! zV}N^=bu_i#e>W0}KzJxFof5WVE{T+nxt^2o>8PAltdt#gvaxvN2*e!iu7h0Iq_hE- zWP^PLsw^@#5vtNu41&PeI*lRVP%_iV0zo1$L5-)q@>v;+y3kb`^)ArxMnOhiADk_Q zdT?V#o}^}@1Lk=mDSJV8(gIRUDXb*-_o1Kzf(A{3hWvS=DI%mZ=-bE+0L$KUNIJTv zvK~2xy#$2AVf;E3;9`~mSp^pb`tMp2qd5llJ!nva`4XypWD&^Mh6gWF=&>ZOddC2u zQtA?%6GBbWfQmseogWlrtf^n2oDHYW!@OQ-kkkbHWEEnLoY&4*=MUXpR1(Zu-GHj8 zI6G4?v@Wx4UNj-vYlYt8pC=(td8p+NAr%+warL86uW=(SG$a!7y2@0fPy>Lw<3&3v zKLQ)L1@#+^xZ?r*PZpOOg0HnH5fGfxAZL`2p11?D(_;`s<)4ITiCRG&8_$Uto z5a-I}GX@$>iKsNyy>*{2$1l7$oN&A#&pln!bBu-Cc{6uZD*eIX{3BF)hvR*0QuZ|r zN!+CEP(gSvr`Vz{4w-+nxu*X8Osk<|w^cY%Cjx);>FfKyZh>lF)YgPJ6!<#d8*bTg01RQ|N|( zTcU<-H(6|+FELt@%#&B^tM5lEo(8y(HH5|>O;Mw$zI4d$eL#ki-jjNMC0{CCj!(q6 z^|1zXkPa_SZirQdZ*?|N$%vaeVC+(np~Z)IQn0Gv@wa> zD;NRq?VfYY7U^8$DJaB4+v~8o$(DuK0oG{OeyfW&VpWRi1VMX9g-U=_tdMFEZV=VB z+mvy6RVT2Qr+ynjDkAPQ9*>~;gM%$j^jR%`^jN9$ zrWuS<)3jy+aXugZryFJ@!iqN zWyqXs^D)a9KS3bYW_Z&cSCcs3Mt!_hUyMxkwGU>4ZRYa&UtH~_SY`W#XhyM589E^( z>!(vZsgG9vgc5T(aXBlS3U||6;YzN{YgXN-N>*N{_8=Hd^oGb5+JZA?SM=B<&ZU5^ zAMIwdVpErKp9^}~BR>&3QIPLmB9`}g0hTt8b%tC>N_nr5K?!3{bg&8=aohv(aWDga zw8#n1><%DqL?qNF_+}AIb-8u)Sk}IQcMEl$;8eY{QokW^_kw=fRO|arT(_Gzpy?QI z;*Pa$86a$`G*GC4KJy69R~%+{bkulVq#qAy%rpR!i@>K>yb6)hQGgDV;%emn98fh^ zyc&X6b6FD54LN&60!zF9U`(vE*uH!JD+YPn)>Sab!P``>SQ3LV>%bc@ zqyLt$iz>DAe&YRO4(xn^_dofJzo&oi>*e^=f2@eQ#A&x7jP3o&@NW1Ho(94GZQQWy z^dJ?y9h)yc=pw5? zbYv9ySa7rnDh2%<-%Dm2DBbygVv2eSAbfH5i_)qgf0lOZLbNSfFUN6%jI1!JA$^jY zj=ffsU<(fN6$`;}ZAwA{5r|1!GUBv&eD8ZnS{VhqyKC6EfW*#3#lSwI0CJs?e?k-i zgd+-Mh6N(r?{?F4MS-C^gm8TV#5CM9KO>}HDso70`$drj>=c~`CTBw3u_Y-1)YN}W zK%R8%z<%G$V#xM|dx48x*Lj^B!K$O%{7MOp!kREw`~{ey8g_KKcqr04)YT*OU;X7n zP{%R@ZOHU0W|YLAiM2RR8%Wd`FA{+y+Jme;`5fUWGAM=_F$GOGkhfMe8Gr z3B`cIgJ02m?$~nAWP-pGg8(EOQ%j>IoH2U}He7HE;e^WJRm-L`SWCXdbox#l-!+*g zIs=3%axz;DvzH<+g_c_l=5Cz zyc?&|^P(8jmDq#tA(dVof035S4!`C`scrIM-LWt=3W42t03VP@4jkq2(RmPQ_&Q>! zy~Ji?K26=Mw&`I(2(MuwZ1H;p-|`Q4mXJ`a1Bjq&rp2SsPQsFrX)xFrFfQ(iM>`vv zOFdOPu2ffG&jzuyOtSTCsQo4^ij}hk_@>>X?&K zEE-?b_U%{`u@l{F&*?fJBG}7 zXH6&cX=W$61o-DlU8Bm~jFJURquNZGpc z1;wPa*vq$MuZ@dVp88fRP~^=we=c(cs<9B2qs1#t(K|3Y%%uO42Nf$u2+t142r5^!pps%xq=afe%FXrVN&k<sOBcXVmyfZ!0`c^QLipnA??XkSVi~@i27i1d(Y>2McCT+bbUGinWyt=f z{^%2>3O+K~H@-a_yZ?qyqM|%UZ+tvXq}dbNW^2g&ALUz*CTmk~-i*6A?#EK)hl>B- z1WpwA1*WUtb;>7d)W8GIKG1(am>~@B7k{9=B^shL0?%0ne=XiIsgyPoGW`S$pJRW% zPXUY$qnsH+S_Um~mAplt`BC!cAo?*%ODnX3Ddb%4!&;K5pboD#vXG~_5ZeP(jnTOv zVNM{4F!(I%TeF4!m>5Euqsojik+UG-plP9IY)FT^&`CP?^|5h zl&nH0lGK{=0&zTI8!UA+W9AA-o52y;7OMq1ZZEM=?e@kSMln~hdm26&KJZgw-}T2) zfPl2K@L!B{A0LF3UzjyIFl#lF(28mfmyFiiJUY~V5i6CIm7}QBb32Fqm9ZXBQNpqf zfpLymT$%}`@kX)XdyQ+CAK1g~y8}X5lfz+$TqK(_181bMyNwre5jHU&;T%fv{P(gu zbqP}2gIdY^)UHtTe#-4j<1@Ul+V{h_AZpi)`V%F&;o#2cTa?ldnJp5OgmZ!; z#_y_xU^k1iOrD4gp44^DC#kDSSF%I0PN#z2^C>oX0+WoPze*<-KcH+;NeDd{K3H$} z;d*9qIr4OB(tv)KAnvla#cA`Su2S%zTt6$gb|V^aPU3$8W4W{qwwz3R}R)Y;r5z9SyLhB~>b5QDF(Tv#n4V=0)sn+NGp z$>&W9^zume~$MmE)H{OU^R^7M9?M0YT z4tCLKIouFV1$u{b&mtjj=xE(?^KM%BpUV2?d$uQ6=-^3yWW6cb{tbC#h}_a8euQkV=rT^J5cR+(D?c%ch;YCabK(Xj-~pUmvVwE9Z4hFGh(KKTUKM!a|JW zkidT+P7UOGw>hZ6%j9p=Tb{b5Y!tQn{sV>|CpA`b{f6896vgen_FZ*dFRBE=E{6(db7^u(%41 z)^u2G^WhTIQx*HWcnO|OWr-l_&9Y-NDaNq9vjXQ~0j~3n1NYbb&uzx>N|bcLwA9ce zOpMQi5+^7cdA`oL`Zwm}6|XQ`ZM)RJ49!Y8mBol{<7xXG_x=V|>&>3Br_YY4@z&G>6A5oB1U%B(4&I(ZKQX{4I75FWDQJI%fsZK~UH*$1 z6Qu$zxC+V>S>qw{ z*nS_37b6uckX~+4@s$@@-nxm4qkYCZVLIus&^(9hn&XySR!I z!dDh}*!f*Mhdk8b9F{Y{B)U$3!A~+Oa*r$<%h1NL+=);tQ8Sf_uj*AOnF31O zD=2lQb-q|W>TQw-pMvO9#6oTI7?`I|F~LrbTGcGxQ{}rHl4U@O_pjrWG{we&Jssb0 z5T^dYOK#2%hKYT`Iy>G3i>R=%h2$4rUfl7Gpl0)P%T?3;Iz+aFRm0l^p?0@j5^slB zl=e{p6zPtuk{P|keT*i~qP=PeA0qiR=XY3i()W7 z$x_L@#tJ;H6A`9qP-(VnfXa?@voKswZd>c%_4=&!_lYKLi;G)xr=}$Jh^4oyeD9bK z5MLpF6ElZ80C6%#p?%t>rV(qaa$Z&GBy-t!-NR{3`^W`eE$yj3n>|UrCtlD0*c<Rrpuzs zjD7kEBl01U!%hFO2FHs6=QgIFjP6SX*1`=YX^dXviUir<4GyuO70L;hri*N|Q0hE^ z;!iHJ%bQv1fEeKA$sl|cRa~CXN&On?DAFbA#%XDr zAKc3#56S-8V1rw;RcdLafR{=D#l+CU;4HA{vFi@O^2J~JMdu(Qc{LDgFhaB!IApJX zZ+0C}qLJ>rh#R_1X6yE&ZNHWKtX>HX=D`njTMjd;HN zPMnxNK8Vnc>A`wo@&-H6-q`&nAqm+x(ud8bqnlFn6B;rO%>@42aI0WR~i=#YhISS#!Ig?78fV6bwNE^xpHrqy_HQW0*C_x7+ zr-Ob!PK^Jt8QURQupG1(cyC!$YbzIO%E5=-l4a5~7cJ{{U)In#&1I(lXKMD-ocG2R z%CxPx^co)E;9%OC$iW6C;HJ@Jt*67bkI!RT&3grt)@@|&aUCjk#>Mq`j6J>3QM8nr z-B!KyT2xVcRvm4sY(+l_pt7{aw)ML|wEiL11B7H2lAZRww|hi>ufBYsi%pj$pm$b% z!^=gB*$}#@2;l&_i5UAXI(0r@Z(}{b6Otu&7thXr59>~#9$Dxk)_#7+Yt)+SRKtJ- z*o+FUjOA_k#8EMT5o`3U?H5Ym|HVF`6@c(gF9{KIp}L^5xdi$NtWXwAf`SCEc}3FZ zk}^u;YR4_Qvf35$&$`Cw=s~A|sgl+EAJW0r3Tor=VZT-CU+*Rky-)c~sbFJ1pmIXw zlW&Mgusk^)ti3sw^BNn)qco~KqV@!ofhM~Wj71MJlo46PhCg5xfpSzU3wHv)QG#&s0~K~%qa z1;ny_7JuUzgRHHd0rMc9L=}UZYPEeWF@Ry9qVt)zPJM@%#dMFRM`2PMfwvZI;0=R76@{D|6cLno=Op zT$^}_JTU1x?NG9#Y;cDcX^7ro?!f@KIPdh>Rq3ew%gyb8!Y0Y;ZE{x>tQtkwU4kFT zw;8V$8Oo=~l{k;Gnnkwic`cONgR6i*DtS-1G0|xU5 z@VCSP5-zx>*G)OGZq`|hlUj%DW(UW#*J5E`qIwUU>jrLgJ|JOn0gO^zdc0c$)49X&2ihW z8m3wozVf`ftsqm`A2>k-L)GNeM$J#?P;SjD7%#YTS!nqtb;g|~v-V(A1`|MU8z3)b4J8qMZn_+Hj4@?zzcZW=9 zGGA}UaqzFF**@o72|(D?I1vz7m0kOt|C^`%fuV(?K>mt5dCD2kF)q_?E;I{`1&-gR zQm2*ddBoNgYI;lH@A2Z_wcH(QMu1X{j-42{Q1Kg^GW^oqB@DLiD+Iy-%vY*tLN`v6 zcM;H;jA>Gg#xv>q5sqQ-`)L@)&!Vo!;(|d@d503G1~`Z9=FBcwNhU06@;6h2f7XM3jT(Xi>790mB7ajse&&S);eZY9L@K@CHvZ^1 zmkm)nxXS36ty|y*j$Khr((ZQ2C(=ucgsK{c+!tw-S&E^j{uZqFVg-JUIyRv}>>zHc zjR#O}rgJI(iWA-EGZhA&I$*oaY~fye)1b}vwC47Tlb0jgfWj*z#dsB@~eyLA7Kf_|s^i%*-3nod#ZLWHzm zG0F(jZ|SQtmcQZBm)xK(aC22!k@pakN@v0vUWGC{B>r=qZtj!dLCM_{%n+rGK&7hc zYnNxP9UFO4kpf$B1=nhn!z^ldfxSeqqbiWk+`+yOhzi1f|2i>>z{KnM^0D1D(NbZ>X3H17rl6-_`Pe1)njQ9#?b@eJODIWDki+!^u`u4HJ@c;Dn`R3xm`_!h z(=DbKZr&D0V)p1LeHtxEPWe8q?4;Pai}dUq)yfI=KJ!9IT9eR&?!Soq?w))6!Z~Sm zKw#|jO8ldKCqOTJs`<^tb;0Eu(9G-s;%s$#cBFJiyv4 z<#xwafp=IlEAG_bHgbz%JtGnNX`fkG-1{J(S~X~Xj#R!8c)uIC#*IxB?l}mYuA;Q0 zKNh+zSHQ1U&@b8X{GOBEzHqf$QIxUUmGDhBfGo1PX$@~}q$JlPXSg4Ocev-sao#ER z=f=S#$p+L`^~kvz1AkS=u|V&4R!K-}c-;T~x5?gfTD^NvM0Voq0@;0kb_bT+~A!*FsIzynDuhsnRVANuY;7olcut zjgK%vZ5r7z^+>JsHc|_6&frxYv`0=Yu;z$E0@kAw`Lm}1kJOqls6&l|4l?;YWb)^( zlrKmP)I9P`8riONcOJ0E2)IDV*rypV5Q1L<(uEx#+- zZz_~$iGS0~+j~RF^pV#!$QlyOLN+1tSaMBBXbUN7KB)X32-P*2IPwndNf7$b0~5IxI(7&*aS3 z5Fv*tQMd%eED0_(V1CcWDJ7>p3!+~>ka5HfZpsrW=+j}JF#mWxE$nt)g>_Q;lQlj8 zHaJn;d|%u4R&344q>;93+t>wJ9SML&;sS#rjZd8=BsU`skIwO-ea4dtxKoU7tD@-a0*+)G>Hd-j!+1i zAg8{4TSUZ-r8tDjDrKi}WdquVWk?F_iQHG92V1FO;j@oMStT<&{KkK&scV+hlUp#@ zsf;0$;JbsI_{2&@1HY$+nGYksO?nHvY0FZWR2Q&hOWUQ?j=k8?+b!g2UY5)HS;p?( z(vqvPbw69mt5@tg%u^B2@aw&~#IF(%?$8=Y+^&3SFkFb4DYa%SD4W4mhuu~awYY6% zqga>KwX6$|x!q94^uZv}<*Aj7LEgV%B5TrA3)5u-MZYoU-2xO{E0))PRi+GNxruF( z2#gYG7NL!&poj9%u_We~Y)<$NomUpzYs1)}ta;6>#sibktrt@0&#oK6qBl`dV%nF{ zU3Z+=T`^TOsaC3oQ-lc9A?d@(%LQLuTs0DA%Litrd%d#I|KcC(Z=pF4KI!YrOMcpm z-}qZYS6m6+x2{EZ0c8Bx-j=kwloK_ zjplI<>H*j59rJV4PW64u2?Q;$k>7{tae+y`#_uiPz*^i{!BsQmW))kU?C`C~6M;?I zccwnC_7<@VQ;H%?BZ=v_Eap34I+=*eM39>%8VOEw(Rlz}g_S40Q;Mde#2ki_l_}h{t8)7Hdisk)Q_(OCHWou9C#wE zCf*_knrmL$;!^h^n*-trb4VFq+P4r4;wS~x2(*Fp07y@@TnCJc4 zI4}UtQKK=3Bv1V;diIBhxlUaOOC1aeV2viq6;w_A(N2Y6Xikm(P|EX{<1iBW*IAkM7f+T&vp~aiT8MWG zw0SE)=Vj_W`}QcejXsmAy1v{fy*A$_^+v`~gAfx70mfauL;4i!Oj#J~sfCfemCc?c z#|t<-T)apo-Fxo{8j#_ojEkzurr{`>jTStxk2%l{n!1RjKtk$MACfFddn^OzwlSm- zS0M|_6;f=6=qRvTjDMr6E%Qh`JZMBuXTfw$Xb_+B93?R$oFxVc`xdRsx&$z^@rG&Y z_7zpvqHmxiBE1D3v>el$TimTmm8SZ`=zpwKtP=Cs&5u*k`-@u;HF^oE&(A^UWqWEfYL0CU( zwR475*<{T#s7VYuY1vY4X{Z@PQyVXk;}JLww`4(x#I`r1!k>6zdo}I7zZQH~K51i( z`qm7Ug2Sp2f9yv{{F2*_WE1} zG~Nd}&f5jejk`&u%u(Lvn2{bxcvW4}C1D#W8p^ogu)@}=S*+_~la$@ymS3%*R4SY%z3KHX zFpJEicza9)=E_GDb!m9#sbSn|kq~tIK{{C>?w_L&oXDl;-*3e|ojK1}M1q5Z(=tL< zMkktmOsT$o9-u&gyPP|K`0-w*6C;2gZ3APnDtLUmOVP~{!b;555xbH%Kn}F{Skib?MyNB!g4?emL+>vW+#Ns+>I=8Yeu55s#>y=Se*KuFB z4dQw13O2tJSgTBU`FuK#ZX}vcx?Tf&$gcfJ)(R2eQm|Bg?nlJ&(C~TaxZpRGLOBl} z7M6Nou3EIeEwo$tN;r<(ew3T#xiYJN$g@o<)obc-8$@~!p7_^lvbjTk@jQpj>mPHl zE-$WMZzJDiF0dd-**TSVT{>Z6ClC(Y2Hfk|bb|`Jt$=0*H8&B-Mj$FIxD3CiC0`FV zOw^)U!$l+`+~N+OBN4yJIoqwIZSkRu0BzPYpdlsq5T%~>6c&ncGyjAt)0g3@bi8vF zFXJldB$&N@pxUQyQr#Hx!4oK(84)m!^RCj&V78(|c0VUfF8`6sl6`wv*JkItjeD&G zhApC)MlH#Fe|8|epAM6@{K%0`L=dKMX%b=6fzhf|_$h-3M`bI%JU1IJQ4i%$Lw#6j zzs*v7!agd8&iLB{{7xGhpmLHgoWo5W6@o>HXgs1Vf324=)`n`pu2RTuPG$t8(D71e@^u82#Wk17&qQWEe9O`P-*8qw{n`sbQ8_^ay zlmEk1p%MqKei9~Uy=lfD9*|eYIb^;N_#}!QP+|l(AT0uL;0U#VjIhV6b<3A6{<*2?5os$ z-JpLQ%g-TRL2X6MURIj~4A<;=+eISu<(d}Y4L0u5ly8aW2%_2@S4EW~wkUhG3a~&+ z)k=R;*EDkFv=?JTgNG5X5Asp35c1JY5qy)Y&mOkg2_GtjXdeJ-1_|ml{F;CYkr9Sr_X^F*QE2?(k~PN=3i zD2*Ap4#T&lTS+ygS(WL`?0G!32{)1I+4Tb{lepq+H1nO)xWR4<##?IS((LPgxiU=O z`$ME|=g19V(?P{tSvBfdakciVR`9>R09|pc6j(QCaY44Yf2*H9FIrcdt5E(3 zSQjZ!#dpS+AsKx+v7_CIs_l&x>PfwdEnz;38mYgzwDp_&H!oeTUpv}9iM}6h{IF`mnxW3yGY6EIp_m({QOSAQW%1AStrg&+I;@GCFU)!n8 zymy`A40y^`&VCqsaj*2H=_%BZ6y?OrV+e^W!Rb7OVbg2%MRVm=W?f4Fxi-?f(7LvJ zd3}BTQgg;DrJ03YTi?HT%je(pj}-KKJ;!}cRE?aJ)5lR)R%1f^Zz_o{K`a3RW?lgEkU&+!0NN;QDs9n#QnDtKcWX^NfiFR`|Zih=EEor#8IA1_&>D1qyN`5)Gr?rC6 zX+3^--Zsh3z#6e-SjAf7M3p*nbObUJSR6AeytZ?lJaqeiROSd9O>_@<>7AhEcE|_ZfJN? zDce@;2!{!Z#n2MvOmMN}#tI}M2XEhIo|RXUdsxL&V=BRmG`SqIGvB{CUka?VvWU89 z<|t)r5q1snF2}oqvz#kn>m);=3Ao44q-yc27PbS}XA`#P8h<$aV*!VAvihkCEdY(L zn$p&<~fFNNwwpl zM@rtjDmU;>GTY>F86M*Xsa;=%sS+}-Zu4WO&}y>TvRTrFyexF;Q4>il8I7XpLo$LY z>K4{^E@HwEp9b}e5O_7r7cIaqxw}z?Sb2-eHZpg!(J>5$1SZ2II*)?YoWyzG1`W$L zBKSsWC|=v$u>vYjajN~sHYW3(1XGRnGHXDG134q6NDYHgL8g$7 zsGP!rT>7I<2pmc#NO25k#&WrGYe0*oHBMpRe;o;ptMhEz7ZYEpkq73tcqX)9OoWKN zC_)NUj1xL)da7otsw`=#+7`Or*fsWl;WfyF-Iu<8LJ(ZNN*{dDq};Dv?bdXDksWIM{M&ehM=F_VE1kB;5(mbWvPm`v5uqY!}GXi zEiy~jOE;6&nN?jKf-WYIK`7$oUt(28%KGtj=V)@x(_Avu3t{hEm;n#2ahOvnj$gh- z0aUgUbU;*xshqQX^2+2fZzbB}6|_dxBl+bTo$}`s{K-6-+@+i5)jT#u0IYhkh!%rWcfZ~;T_a90)a)E@C5c=E zt_8tO->){rt}@->B}|D-QBqFd%hwWUU<$3^TPVbPT;2n^Riz4kBT%P;yD=0Tf$;f6)g@U1$f49*ZBwHWKfam zO7c}5%YP=(PCWT_@A`>OUe=g2)H{DQD8z^#1pI5H5+@ADx3a;Q{mc2Hd@oXBuwA&< zwlDp0l#JqFm`L8|@}pceC%X;JMk8(UokZJcI#cYt9f-OdBaUXMXl-<;9;+PYag zp3b!GM!7!ZtYYjcE*4!rHUHtU&RRz*`vvitm+{@Rvc1+V{mN>@V7RXy$Sy8Vi)D^-k8pAHCg`*}78lFa&OJW$RhN6+Ysd|q-CJrj z`gEqBipw1afs^2{A=0|GF}x4EpnhXkF$jpb)MkGnRK(0jm2B1Hid5G%Xr=cVJOA}h zXCwvP0ZT~&wFf#eeKiagSX(HCm!N4DyV=0Sps$bo1?lWvQhIm>(EVz)lOC5 zTsV}U=T*=?Xhf5@KaV$R*EScENbr&oR_H3c1aIxOZE5 z&sV*4Yl+)V+`68{Q-F$b57m3gZ(}LVQn6imQbwP487&G46>CN#_9A)QC!C9}5c}>m z7>&mmuR$PvG0LE@$(dK20PdvJ-oCVkvQ_ZaL7Y>zv$R`09l;3Ix{L6! z3@9AIaxIFJb>a_9)Lz;%bt)yPzkEYySY)t`px;Bi@Z-&W?Rv;$JEw`1dJ8Q28_fY; zn4#j|XeT04a{t@nydudBA-UYyB7WBLP(ohi@S=KS_goz|z$(miYg_snB`FWA1I{`u zFmZL*k)EAMi63`|xQzms@iTM7NranSd=K@e;^9T^g4AoLDgRMHbwJWO_A7PJ8y=zX zjsRO2#4OT!+hyhLHhVt60sQy;5$^NYdp$xKBt5;yDZXX9p3oV{*o3GkjmOaZ%f*NM z{~u0dflTf6$7h78AF<>HMTYd@MzG93in*(u*0q6bo5WfBOE)>NmKJmIS;p@C(;_d zqoG?&>LC>Vh>M3N`uAbz_xz}v^-9Pk99ZG9pWK(|ToG;s{+O`)Rn4kwY&Cta15Zn-4Z3b(37 z7qkm3L`8o*UHt1u006W_t-D62bbZv;JUWE92NW+vS5s{+aitmMy8o*Qpd&?i6{oFH z*e-5-GlFLZ)Q=-f^VuVe){Ks`WMhtlnSA2w>-$t6_Zj8;W3g;O^gR`Rnv3&Wq!i5+ zyo8s;58x-MC7XMRaz|L#k1`mgr*d(#epr~U0HPd0FWY=$gHwD$rr^vrN1Epj z6SjKXXI8gww!S{AbJuZ7u3j3LL-{CuX>NDeMn5f!T(UO_t!>u&pzlPj_?3fVy;P=4 zmDR0WI85P?gIE`!L)QU6Tc1|=5YEcrJQK0K*Vt91;hctIcU%4-fmrAeho}OCY9ziP zM;oHnQGgw~mPRwT*II9--(-<*3jpVua2X&%s@CgX2V4mUe`4WNRkyaTaB*{AnNZG+ zxRsL4+Z*uJ)wx@2(PhP!W~7I)Q?-5FUe{ta{GUyQsSaq(=Lfp8Q0rh(Kl(k5}0Ogj^>%9lB3C| zHXZ1TiIqS9srpQ50u)UuJwJ~t`SmrWDOy-#t%4J_i(E;RO<`N$T|OB1C-o@QY>~E~ zsE=eCb=tqj`yPD(b8B5CnWcc`n`USHj;*3@Y%IDp1@_?UGujN+C2sjiGc!?4qqnH7 zuH9#Y;!ng{lfk3(jMZtp@ss%<^jhFIEHnqf!ML25Bw&`VSgKDRwLY&YMh%}VpWy(} zs?_Nq37bvm5eBXu?)(&!o3@@~tt+fhOhM-olArV5-!#emsme+8cMfrF=bHFap)oLT z|Koa8vXUh@gT`!S$6Wu5Fa4i6$A2cn zKq$AN_Gh!Jsz-K6tfLGwDH86Hb{fj*I!=YwVLSa2gjtW{T`E(CnZrg3qH(2;I#WBk`XhYvMB?uV1VcdX{P-9058d0`(hHgBD#0DYBR#Cw}C7{1(^!K zwD)w90P6indpr!_v}_WOb`-Xnt|*2a!sEvl4H*`q?V&t(wjS_@wvkj}3b30r4DB0|rP`%aN!!`9EGoaR zfhikIf!AoICv1h4iYR1i(ByzE7KDuiQpUgEL`Ui8Ja9+OC+T}P0aqb`oRT0D>Cn^6 z^a%~!igtVf*!FGxfUC^|bIy(yf*l>tq)E3u&YB((f0GYrbtM9^s*6M3oq^OeGT-oqlo?-TOZjW?h5Tgzi0*@3K7BhTvXx6U%K+CMgv zI7#5g4(XewI6i-XuFJ8MzCz?R!jt+}QPe&ZVZII>ZyGnyv91SSO;hMAP`|3gv8 zzWS2ISz{3=C8?Xsr$EN-H*j0(9BgFOt}J7ZobS#c_&z11PPc;uRS^6YLy5dzTU38g zHbR9sVlXyFB+R!Y27)YDJgS4`Fn0jc&wr97yKXObbzR}ltXKYD*ScHNS}=C&pIY2z zQYUTKg_xB|`*$?&ap|wkjlZh=@8!`Zkyl;j`nytNSeOVp&z(E#c9cu{F9qoDz+>H9 z;O$~z;92f>2jA`UqgBo`{;|mk!E8jsjIbEH7?nU(yY|NVgWWLrl=fBh9fYvtmrPnJ z+BUF<5NCRt%{xt*O+gJ=4@~09-K($!be4Yr%3R=X&f#dhEF-x+0^ueV7kNC0C|UXi zW9(UR^J|zd4sHpkNj?uBx>DacDj&0kvZQJRNZQHhO+fH_p zoiERO&Kd9b6RJjy8uz`{oY%GN$bD0IbgqBb_y1S`nKOYX%R01_%XTocn@4RhC#W%3UP3oarW?xTe}kdy8NVZi)YzhM1dl+ z^i*JO*j{aOA>8oP6iqt2E^9N>&W-o^!*SO2xAjt`)Mn= zi)rz_ob=<^Yd~AB^vBd-3j5FB#3(rnD}Qpu!O2ecS*jyI&cqkk6YfS+zMLtp_3467 zoOw-sWqCxjPkt_9!yuNx#pi-fPWIB-EL7FDlW9`q~9$KbMC zdhPk+lTYNEaG}APTFGx9D-`EC6Q(pRlzw!`wUjESa?+!4o9CuD5*G-w89YXkY|)m{ zw}{&G(I#bJNE0lxZg7QJtIdR`p9*RHhLr7M5iqGQjI{!(btvdB5c6ef87nstvXz8A zLe-Yl3IS}oB%wBazA`EDgI6q0yv^BsyE7`Kvuc}O6r4un-znmI?h?njY-Z>iiZf@w z#TO&|>s~wWy6>Mie)LvPG0paCl8kMA^*(jY%L}IL6q9EB4;t^+ZuBi`-S;Wm*}C_M zX|4TT;^e#q(y3?Tf@*ecFbSV**33fw69_1g%ERZ!MT)w~k_kklhAJWJo~M6l@Em&A z{ev@FdzA}@ssU6Q*d@dA>mFtjF~Mm=%R9hyz-69f#U`33)6P7Bn5gI$jzcx)<=Ehv z{#cZO($w^iMf|YBj{bQE`D*yv3qFdWIOhn*uzkln_+*REK|)L)J%@27m{Y}27%al= z`_z_Iy{{*|4YeMC3e2*DpJuwFYw1?c#o$o$H3NP)#cG>VN!L@AT@!oPnG72V|HO*6 zQ%oEYkZ}ZQptP6ygu^oc+O`vETuHlITvFX%q(4Ms{W`Mhw%Yd;I ze}H0RB>Mp+XOZ1s$K;#DNL!pUe(MC zUV|R3kfae-&6D`PdLfc6*)@DS$0(k7 zd?;_v%f~B)#&2Xb)XkWE1n*8b6EB<(;N=>=0!wq1B^_KH>IM1?(cz#OhP4%%(+c!4 zf7_<#(^J$Xam=3hD{Ly4C&|CWw)EgOurfgl5J_vs@c~L-H%2bQ3s%gn7ufWVpyb6y z>0?puQoc=c|FZY~9*n6P?m^}trA}_CHw1CJCnEM|a4fS#F0f1qXw{8PNgaG*@b7)> z5ttgtBrK_-Z%lE+T~6EH9eav#!BAbCMF>j6sTpXoh5{}BuC2jESqp{?v#ek7B!+#J zRa8AYs!29O14lwiP)ZO%^w1X48yrr;KaC%1X;*ru@`X^K+f|KoM7gs`1KX5G7M zeO)R(SM+i$qM9m*U?`kNR`YW4;i4~k14AXfF5p%=_C`DW>|2`3ae7mLr~!=c>Q~RN zQv<@!(F09VWo>hzuocXen?|edTZH%Y;d9x6y@cyLqcSi&R6OuG( zY8Ab@ZPzEu->5Y6RMI^F-qb5@0NExK|5Y|ieE?U%4#bD4uUzPhV-Z=C@u)GcyE}cF zYoZmwi!;on2lMoRTA`tnf~N>1Y=uX*L9m*^&)>7t74D)xV3WiC@0eFEpoA4tdxbi? z_K#mToTO96jMF5xL$}mcfxB7gU5Hs*+MTe{OSWfbzT!jL2q~c)Tc_AvwpIPkySHiF zcmAq3a@hVb=MPPH&Q&|RfteKXdzakG8oil^@5kH7{Y>JmZf7hkac=b*rW8>Z;mateBV;?MYo{k+oUf3pZ6P zmziCMhY(RL<;E3_KBYcUoeb_2kZf}BS?^z6R#rzUl?Gr})S^=Zmr)!B=Qa_EA(UNz zD_5bmIij+mOofDx9Fti$<<=$p%0}&Y#HaJM)#m9V--FT|I>uT3h^M^iMF|nF%<_pq zj7;`{i8ZolQW>*^G2!M@u4&ze^?It%vnk2;EU)5q?W%`k33Ibm%_0iUv*tfKOuG7p z>9qQsE9EqX+($*CSSw31=nE|iL0Y0J1>Gz8hJ(6@YYl?YEjq-ql^`nVuKYF;3i;lI zR1+uHBdN!t4@4VTwD+Gu5ul$bu6*m1B0?v8|lz$hCo%nx5gO zqA&m2&@X-rZjNyK&wQr$M>)czM6+>ShrPMXhyD!Sx~faL{b7Jq8oy7&i8hQRZmwM2 zw$uj9T#>x$mvv>uvMdT^ozTswxV+#3gIX$RPbKpH8V3pb0b=EdTD2xA4@qbE$mQi_ zZ5CJbBg-8&$QuVfszmN(b!layRyq#vZ!Dqm`|7?GT(M?^W!y?fYDu z-#&07$L-t&^OHWBK+;+k8j?u1=cB^hXDf9XW7LnW`cLHLFn)+@%}3M4oX0Rp z)`_$$J%1vxD?K8#+bFbq9`xmdWfL#7+S?@AeO>NyBO$=iVC34A+&eEUP6_#JM!>JEkq z+1b~Q|F&aw{HBQ zH;IcErSffsGRsD>>x4VR$$89<%itA{+>F@5nQMK)0X9Vg7=s7DX1Ox`*K z@5-eo%>-Sgnx(`W4b!x>J%80l8~C~7HwplF7X4})LdpQk5)Weus=Q@rPg!zNBvV~K zmDl5vwtZAdtG8uOuCSzcVS3WpRy>mQ4gS3Ged&14TGN*-(sfex)@d+0{Lj2RlcA zBu%ZNp*wV>RH6~_GI8l*m4s0(0ER&BAo<>cd!?-3Tj{=Qasz`8MA$X3D1D`>Xm*=+ zL*BD${0?xRQ`x_HxF36Qt^Hf?W$Q8?GC_!nSJNG-9{&(R>cScj_T8U3k~}0ujhc&O z8sG{fhC{M~lvImE6xPY;v`ibuhY4+Sezd#5Ra|ji1c61i?ezdJdM?*5s*`RGwYH}E z|Fc+}{Bx4cbp1X~cAX~=RJP;6fi~=XUb|f%;FG>nmi#kR({WMZy3Dq%CB{!oM4#Y0 zGx?C$KF6V0Xns0-k5@ZSQbCjM;1vhprxG1Lw$e~Tp)-D7`Y@&l+-Gx8RMlqNU1T-t z+2YiRXo4VXBK|IT8ufhmSVDLP4mh8F1MY?wkPVONy)l61ehzvaSBVuNZq<6`aQ4kL zrFg^Rh>Xi=b))1?l`ej7y|x`CKE0{toe>^RI=>)SYFeUK>!KuWOq5a(E|66KLh2wX zRv<)JXDp~mK{p7kOeKvIF_YxoP9c$He(^)cH931P~f(6^|H`AsCN3H50N&G+hZUgDpLHC5!&q#6|vfPYc z_5)9>mPkGOUK`Vh5>Vd6s?pf?GM$8O@d1YEYp zeKpkC$NegfgL$L37=cQAT$LV>FH9ZpOYa)tQcD+`CI#ry3l7V*5Aer#!bX{_Ww%5L zX42euRBFbFQ^Nndi^%|Ul7{fk9Qi}E%qi{VmF`3Um7)*{MS>^8$OS|asBeQ z%A!lQm4;+~-#uPlPJmB(R|`47MyO+CLVq5d&H0r}B)`_NlqFK@~puus=W zzB`q|<+{)HX>Cg`9Um~UF{&DQXxDPGw4CKmKzUp2ouU+0h~YpB0oxzQ)~cgPLT$;{ z3{T8nBmX33-s&`MrJgCx>k7r`6y$*d8%ECQdu;fI&FUD!joAM6^H0k}Uua-fXEm%Ms;1IaC+cR1yyaE-v_z8(!asdNCeqM`= zUtP}UV~OkC(DziwW-$Lc4}1K1gurW(?;{~@^*bS0XU6xCQIDZSECC+IH`b)6(uLsK zax~6}&*Yc%7c823U;xiC424xJi!^_3x35_17A{Vtg z*eL<7{FnCu;G&3}eqk?KFz@s4&c`tD`UW_ia!sD?p5J0+o>2H!H-S^BDrvC$v+3m< z(8&3$=J%v_pYwr2NWV{qg_KKpZ)iNGymS_VJZu9i>Xw;}x9JjtOok|l3-a-)8dpan z0cn2x>5Mhph{eAtHxrRqdiQ6Fk{ zySL0L?RB-iQp6Vb8Tqa=DfF^_hew~k%Pp-*axJPJKX;M_WQSsCZr^i0VP5Khb9@R+ z;|&pEEaWd>C=cY8fTkK=ocZ;~=rBcttL+{9?37STLwF`$a(dP+J-jpov@ z5fpx+h97DR?7x3fQ<9_24;^f%+qW4!@K)*HZ@bqWH_c8nyem6Cz=xcc6TX+WJ%No_ z#P?~pZlkY9xvxVrq|ceJkGKg=R&>(mb0@?WDZRwExpC<8&nd7gQu4vw1F)Q zp*M4J(x?aOrn^5#bmDK)T2jL8(~6!Er~+o6*w*g*cyJ0HKkpn`>1d3B<9^mdd|@Hx zE+QR9Q|x$XtcSlE)zMhrz53LXFlvtm^z~2SYlHoN=qrDw@7PdRUfFa-geg~}oHK1T zikhtw{W7nW>M3BrX0zP3O>VyDS({H#sT0sVQ?#_*MHo_ImaxY;6=IlE- zB+#WL((=)UY$FXO?5#C|;qU2a@#+GGLyr-1-oLLL{V|kiUr3=1zg21Mm-Juv^jlyA z$2bB85nw>OuV?&e^%m$6$EL@<-`*^e9^3@YJf{1%hddFDvbg4h&6iwbcD(nD(e{vg z`kHrhWev@Zyv*v!?Xv?fJ`i`geLl(mZjbHB=F}t$@O6Zn#er)I&EOI}lRRO}Ab}_` zCsb`BeQC@tlb`J_7a!98KQt`!D>t@7jI)<8Bi!S`Kf~IOXPGgX8g5N!2K#wcFI*`% zr4DbRAj1hiPsQ%N{A@hoBMsPWwyk68r{9As+kprCKw?^J&-pS}mCAu?pMNHJGXuIx z{@p*{DONUnIg04{Mh$E@8hj+1%8BG62}t+HCbQMAX%P2YlA$okF8llN$E|4*?wuu~ z-iMXa))J!5JO9w&Mf;gv_ql-3RqU%19ti4g z7V1xBL)aHp{|KfSx2>V9X+frPz%?Yx|Nhx2KRt#G+L(it!4JG|?m;X5K625z3AR~f zGXCsS)yO7+FxU!AMtz6Fbbm%#s)lWZSws75I*Vee8?Jc?x8KkeK z`^bIF%yN=56+_1x-*WB7^D%8TtK0Sr-hs4N*ZoHVtqBs!64M(7O9$nlhVP?s1od__ zw9-o39bs~aQx z6Q%lg?^}%l%^h-*i&0*CY`e&Q98nEaP}?PMcP__BFzZ(b0c{<*HB`n=%BwBX3>zr- za|E$@5zj+pOyO?NSeTB+*n6X>BEn{{Uk1<3+n`d0xxFk?<6}E*ddMcO429;9%cm*Y zL}dJI8tK#fC;*3CURTi{VUG}UU}c8LxPv1|j&R`K7Q=~Wv-NNtlLY8it^OnZ;!vME z0gIe;M}$X0=%ALk*1L;TEA)`fZU|@=fA=RGq9SO$te?0g{y#=gT!c^}AhBAt`J&PvW|y==AXv=>eSijv0K*WljN826yC z;C}BAl1!lWEl>{VRV0*JE2x$jujLuq_bWETYYstckO)HkoC*BJ$32v*1x)}pvV-Q9 z24Iuf3KxUMtV{REqQ={C9Ex)=w9GK*SAtJ^i@|D~yk$)eciWqqto4RNc9770W6I$u zBQfpz^)izp8;$ia?K|yD*mKg3g7K?I`>uFrYLEh(U1B7iU}a68OGhYpGwCMrg)t^x zuNNG4h~bV4pDr|mZoxS{UJV|%hUh9>qIKAA%!*0-{_~)1M%IdtgRBmz2%b}JBt>1ARr-y!$1qEx1^JCpw|2vVWGLJV;~()9Hvy)bTQZI1$@kYRD`|e+ z1MccEmZY7x#J7Lk`19e&10z=6GpuiP+ap#V)2zFwzSvNS@!pXRX1LV*FUBA7TzX)K zh^Re*PS%1yYbG6k@fQ<0aDU3uXPB|jnoKgEf$aMwibqTRjM%x}N72CPXn6TE8m(nR zoGi5H<01u;eX)x}Hp9r6x2v{4{_C2lE@pt%BZ&^G$Uf2Cv=kl!jCl%FydPCB)(Lcy z3+f&)npz8PR!)&10{8a=N%4Z z0+OPy2%g*z!k>uJf=U_a)_H($dp7aB2OlL$3MCwB56Jm?%TeS5@|zuYxUAx)&f&Q` zFKd{c#dqQRzM{jr1(P8fxva3(3wqRpTK2cNNVdiLmPzy4iRE~IXReA)!4D9pL`nbs z?$~V>Y>&^KRE+n5A+F!AS`ULN`4OttrS9%}$|7)Hqk!V^*hABk=vEXQw9T zeel_p-%m=zEes3OpKC2}m;NK9Am?4M;oK?7D8lYc;O%c4 z1;{4{LuOq_HwU;fHpKv0Q!k5ZDI~uQKHcGPMcnyA$)+0^XyJ}5xYGKzV&eT1$=_-`=RMjT`~bl4)rA_r z@r}pO9TPl-W08I}A0wu&+;a#qv6YY@f-uTAa7i zVG~52g~jCKTK2XGHlCg3^ zGZsgx`|Gsf^iI)qtAlN&qStswhLE0f*Wq4jCDFJH!>d6q+z#SUBJX?aB6GR;!n0uf z8*!ryh5{){l)lmSokmcjC^mxTD#M)v=&MFs!m8y^$v1;BAasX*X=v9Ihx^3}EI4X7 zgMSfTgRO--V4$SJTzmhG=TBaP-o=cIO%apF`_=2|?{%vf5nx=l5 z+tk|>X8O&PuORI+91+1FIT=TLMxC8N4HB#pex4A2?Wab7`viHXahm|>Y;bW>Mc&xC z%_&sdwWHlg6Dt}lvZId={4oYcI|@lsqk>Jre4z0`pyttuR!Rbk>Sg}K|4UBvOGsG= zD;h>-1WTzIj{K0yp-!+RZiMDV{t>RWglSUJO|~d&L_UO|P4GXd|Nj&JPtT?=w&?qS z`s)2xIL0vf1k4yS$prri_md#Kw`9=$S1rSt!Crz?#6;nwF$8g6@SsnCmM(;DxR#U8Jq*%FF!Kx*BqE|B6|O1 zYTl7zVo2>i@MWgso8|m6hMza$>X?9#nlSVrWQz=0MRvT^@Ui_CascfHO4C#QK1;9H!@vt&sTCZrI)-t))ZuymCDv)3YhSyU`FeJB41;<6Snj zeaJ#2fQh*vHcrYl9Kyj5r(J{tDZcD?f9PXzo`>-hPr;a{^{U;=uK9ekf7StN~^a5r>~k zPs1JdQ=X?@eg3N$eZO_bo&7ke3~hldP`HcnD<4celbzPuh0AZn z6%^i{ioR!Q6oYl@T`J?3WOq_O*^xo`BY(Pm-69@w`d>7|9WsH72o}OQ3ztPdaS5zn zqHt+IF@e=AydhCUtDB4VJ^Exh1i}%zM%8h|I65!&b9KC)n!XR`tXsEXh>ZjjyX&*Q z_g*`A6%XT~+3Z$-@ujvc<(=5u10lFDCE7S``CqR@f2thhjUyw4XTe#~`0l;iUky~p zXxrdSg8`DGw&yfCieauKhbRmZct{Ay#!QfFBsJSmx-Yb(|6bJg*Hq9pQ`>&?bz;{{ zXZTFoUZT>k`#eSFbbI>?j_)Lo0imKAi38l=mdpUYd^VO}o~mhMGWtQs+&@KX(COXE z!1QRdRpS|f#eolW6n8M-L&8Et)~#*?n%*qEUH~7bw_vR{xl+|rVI9puvlqNO3+7f? zs)f$AS$Q)pR~L=XU~THiz0zKvs4xXv*f1uPA=0yZ%p(w`o@KatX}^>+6&0pLQ&TOIKLmt>9Qg|4Y90FZ7wX+20)VJW$7HSQkJnyycQA1pK z&qt0YL({3PN-o+FPp4>S71yh#EjAZVz&hoF6S!sCMiZ`{Jnee;Ua;QfSkU+7sW^=m z0NNFM1ecAszL4)>$K+i9d#CjqVa<{F=+l-a|M>>p5$KUg?; z^|*GObGonnm;m?D_jIyh?YgmSpMIt+ zdgXG+8u0&L$b&-8KY%Df#b;W2lg(*! zPzl>$rIiMH@ij7^NA{!LRKi4Y$ zLhn}?sU7E$jU-T&2!@fSehpUH1YzjRJPig<(ypai2`=H$*Gjh!f}};&ONYqN@47AQ z3%;Nel4p~lmdpp^m(J}UcPOgN)0UogKzSNdd4oC*sgGm~<4g}s09pB?z8zFiefFAJ z_%x1gE=XZ=KfEt`qk?GG`n$Rx|DQp8K2we(XG4Mt-HS%GWQgEzdZ2g|%TJnK-e@e^kpNyNN7 zMc`gt^2ha28h2212f`WaR^$)Lw{fkm!^PI-@mZ5y- zW}a=0bk+^U_-v_lMuOuhpW%f4n|zRM#EzcD=kY-(W{VnJ1IXcQJF}}4dheJW^*-|N z3)Cha9@m^F?&8TdBWLjqxfC05gW?BGc6NWj2*D+NKJ#LrocVS-0l zmzJ)FHmTrUxc-VJYlzsb)8&C|@z04DGW#>`nS70Y;8P!L)P3Lue=$bD#h+&$YiI5F z(_@_l%9&t8+oVeI5#)7h$PxLgb!H(S$6tjA*&~3%^mcP?&4Tb_7wWSzu%-K{igJPl zDLXbTItpF0LHp-F5911()ontsbIi?O%*zqGF1e*soy+w6Fj@eXZny+^o<|VdSJ>EI zF!tL$B)`=yb9eXkqWQb$jPuh;>{+X^L{eXnryPsA`^$zIS?U9cpaz-TBfqZ~zYS`= zH%Vf6j0*B9+vW*dtA|JE5iFImH}i?y+e@4@7xx5=-1JG4JZ^@=<<4Mkbwe=sdN^}b1~EQbAscO7Zfe4DMMgNMb27bW4u3|F(!_k z*0hfzjC!pNihD}J|DxLiyj}(L=H~xuzd&Ai0${rj#YWD=_KQLmYuDZDlI>X?N$2Gi z%n^?Ew^T-9G%}S08OiqzL3zOyeHh;ec=9*Ay+%C?p0-1b#FDjGeeD#?YkW59~5m%)nKk1&=xshp4=Tct!F?i?8-4S0{y27|YUFnTbmNn|N29mhRTsf9`neT4?k5 z7MtVe>IgnLfOL&ls}y$FOwlwEJ|vmjp;ZABxccLR=pw9nz8tVo%9sTCo)4=df`>LY zsuUZAA~0+e-?tjrjP`4^hmN|!Hvc1v26j?PHd*?jYUpS%p6=<=vAm?fL-@_ZORPGl ze^nSg?KiB!m|y6}1(QjkxEYA>q_o!v$voay&*FQ|XnZK&iPs;1QX zr7ebK5jtLH31Jaa9Uegd7c1@Z!m&tKfsVdnJVX~%^Fb`LJ3gecvgekLW;Nl*BmFNO zQt52e-Shf-042SWMX<6Q z_+?xaQ`C+eoy4^RHqiGc)R0SknHdyg0v}A$n@obN7tH5jEFqqck*UoJ<%iyHfIM-Z5(VeD=K~<68ee5_^?4`C4X9xp0R__qKkmv);u)H)KZj z@)ERNJ`FK#n2CLV^ItsSNJ%MlY3YdO0(`wJ)d78AdgFxVxm>fU+V|jE`*$UydD`VU ztso3!baD2{aPXUijBllgcxpodKMHX#K;X@(eiuRrY1kqlsB4Izi=UbFB88$vwV(9t zzAdN{fe&;KHOo%Y`IF)!kN=5`toS09jJq$2JU4iL9LN_5^Cm?cXDUJr>G;jTRTi$# z_UpJ+lCM_p^L%CXzg4W)#NVCEaftOBdOwdQ43O)mS%o&~El^*C7T||5Fy6*vt`H&# zhB~b$-BKe|@Gs?DHf__ksOnCKf z?=~%zzSo8BQY*A;1!O^c(BeaC7s-RUJlJi*dK~^6EI4G?&YJU#lsSEuG@W??@kD>; zG2eLnLr~19^KKn#3;V4`ZFS#^%NIig9o5m!dS^ zC8>q2B^x|ZOdXKh`)Tf*M>};3zYDFMdg3^qdE1UFHaGHt>$HlR?scT5sDp#)EbfIc zMpOc;H&j`UKHB!bMdFfxRY>w-rRniq0oxYcY`G;)(f4z5iXFBH@q4lZNvh#a=*>VB z)pU@f%d4v=uVD$OE;y%({`om2p#RFoy6 z+|s?-`7U@=T>AAKwOvcnmbn`(nkaXXP-H`LJ6m6YVx%;$!GSDGI@Xzz&7_}f+bkqY*wK)t{=ZaK9q?YMw zS);6Yv!=MdAo;NUp8kc*{q{SesL}J-H1s-Fpgq$OZ!H6ytI;R@oKnn+den5gD>yWr ziX&A*KyQ}$?*ERTGEmIWzsQw)Qz1vbuuy=XPIBTd;rKfi?Q)dPUb;W_DJF<1hQT{! zqtVfwRnRE!2W3HuZ|XV9xep6=zc=h}yL}g3N*J5V$|Q_L%DUb|tb7zG_R)?qva<>N zjt+Wh{+zJlD!N(ap{z-6@NKH3rPuxPBKm^O|E9+n8nbW&(PStZyv0^t-cvDEt%ru8 z_i*H~fEr6;zz61Q*5^<3EQA_lhlYvB!oxmOkjqkC25;msJx_iGBr$fe)yG(sGjhDvyo?+@xPrf6=Nh5!H|n zEh%zezWoWs=JLwP`sU(v|BIWE^Md_@M1z&d%+95iOL$DouO;mijvGAy2fceS+sCwm z!Axne6=2s?YJE(MiWKSgC6$0xJV5?OCQ|wp(Nitg#!x!m7$u;V&x873jp;>@?prV> zR^%UbneAVh&8C<^vif9ZWRoy3H$O+&KOn81!AL}lF5cjvj&=o~sDg=geug|ou2qK{ zYNJx`Eg1AIJ&@Zl2FfE>r+%=uaiboUCBjd(qXo@^aE-x|##p(kj~CTaplAJ@Wj4qv zhP`0+q0$)-u1}}-kf*DrA@jEj=;uaHHp#<6>Hh&IxJS&>slC`2?MUetBDWF{4tc;@ zpe<>q?HdsW^7#+>-QgQ_So}M*+H}<9`|WEd2{=0ZLu5D)@N(?_-66m_JX?(p{uoi+w@3i0JZra z-;-3kCKneXlrg80XXjs_qABW}jDm(W;gP3STaY~oorcB?BM(qmy4gQx!JYHWwO zcBUSiBR#O;PXHZ7;HKNor|WrHiKdcGZSau*i~iWYh;LRr{e77Pv4R&YXx#3dblo( z1u=AnMP;4iM_5z^thG~5B~pmG^}e=`=VFteey{u?NX~o9%-eUJ<};UN59#%R|I4Wd zxC_O9J8IlzFFV*4LFj-J55Hl=U0*gV7?(x5cq=!@Nm#hO z7vL*q#;tN*V0dv+$XmR zebdxbZ#$wRMYn5{ag4fYoIFwfQvRZ2JmWo_pjrgE!z(D`Qq=WEYPL#Vl% z%XcS6U9|eq!Jcg=g=vX62^yxRvbv$?S+3)7fK;XaW2DsSw>%UL#F7f;8hz8j?&4Ea zm8|ML#lrKGHvWTmzS`?pM4fL%84YTj3VjPcR=4zOu6u@q#Q@F`pNU3La$r7ll#~Na zxJ~-U!6%T0*rMSARD`X5+C8wi5%>$f?w9|KU)wCjTsr-CMfmEE;7%p8t0F-i0p{2! z;Tl;gD_Np9nRKC`wm{V0eoA+HQ_n1blugAVeUyOTkmEGkD(3)mX|-*H25oDgZvn3! zNSYM`-uWhD=NRG@g+ZP}ymQ@`JAT=IQQgqe^Lf>cdsf*n-JI6>N?L7iHVIKb0=s<& ziT^6v*2dW`=$L#zV5pt;4`e3_4!b+56MJ|00Z4S<0tmR)u3==Fhm|th9pMMoeHDQh z+pa1+0akjp?Zu7*YquLXCJeSl;joTsaiKY>qC1K9r`UHYhbCs;gaQBX_EJJ@snX;T z%{fNLGuG2POj(W3e=UfvMM2Xo{GPD53`a)Dk3Wk?V(>4BuKpD!9#PvE_p74#P>;P@ zvE6b-@Hwiie5Nc8rI~{CE7hFQs1qb3ySBYJFi|bpZ-J@kgs|Uqyhn(h_KV4iai`eW zC51Zl$wRf(@H8dW&tz64r(k=xA>PWUA~V%bLMbmdXda=J>fh@x@!G?kznFAw_z>$ZDRX<{O^d8v`gVjw7P~GdKPpevCM%45mRh zI(<;z4=418e;wzh*UR36JX3*;-r2Y}g=AWHM0>O7G{YJ2pvePxgG{79ddWp{62O$w zoi&8iQB1il4C=5DWb%!BA*6A-O{i0f!(2jzsKE&6eyUoKWS|uD=X|j2{bZvO6i>6~ z!%oWecLQBX=O;B%HJ#5kofcAOq<$?@%9Lc`1?BE$q*+9Zm&;4%o*^W)$^0Q11Q`JF zT3CHMJC1EJ|BVw+`%TjtxvfN%Rx_VeydbsrZ!8lLcOnEiLTI{;R|82BP~I8ed5LAs&u(lE{AUKcE`bPA~GFnI_wf>vu4E zLu>mUL#x3wrb}S_1(Z?|ct`j(=hIrF+a&pjW;Yt=@A&fKx^Zg%*h8@WK5|KjMXy$# zKbS+TO+|2Yo(!|p94n|*c~!0cXTN|Aw)AkSPn?#v%5}Bggn&Ai6wrrkcJf8SA4KT4 zD~Jj$eVr5r0p)Y0Bu_*p_M;Hr&>_f`Q)Z7sT~RiZX4wwp>HZtIw1TwN_4&L(3SE_& zST;~qdt2qPFG23nnn#2mUd+8uC@GMWe`#`!geTP^eVMiQBD~e#ud-|gsai()TG=}? z2{OyB&Lwh@mr*vIsSOO8AtkOaEnn;_Gg54R!DJmxlynM@D$Z#1{WvsCEkY6(pr7ya zIj25yWMuAZ9qgw{Ne^5#bN@H<={+!&im{c7fvPYHk9quLOyEsFw>Lw3?-JcFA0pxQ zX^$&8p0|<%oGiKOy78)^<|~%M8t#_)%huMB0Y~3CyZtupw$2oT@ZI}t_e(3mMi)Aq zYUN~MG1mLo$J}D)#JI+zX}5f`PTbo_dV{Ot;9=Bw zHU@UmySc&CZzdNJz`7+L(olhXuPdJ%eR_#1UhFRF=s!Mmz1GgCD^)vSJPVD#p02d6 zuGnoFayoa-^)88Z-P~#yt%vJXI>Ejb6Hb=x&t|@*qKLwqo76=GXyWLKnzg%p6cg7z ze0GISKKtyCxZ{osI!qw(h7pdFKPc!Oi08?&UjRtj)@B4fRKye*4S32EDQ{35`{4sw zHwM+Vwv}~iV_%;w?ACQ=ESMWUHb&0}ZaVrEX>4BVo2y$sFFFK-kc3xj3+i<2=(H*M zR<#f!plG1o78%KxE8lFBnzeZga>9<$VJK`Q!|Z zi{%gi7}BmQTVRsfAEl_RlJnica6e2kA0>Sxu=JcA#Qa9E3AiAM$9I}!^aY~b zPlh72tWxXV!9KkZ!*{dL83x|s6}ov-pz^khM?RxuePgqdDr+q`70@I{lOKaJ?&}^QbL2H*i_t)B-pb+s<#VeBIH9GuJ_ylhZ zKm(D?{J;IK-Lc|cC1Yrpdd9C-A{R@+ERP=rPmkVtZJ{Ezk0T%t3W9l}dQ(b66vkO^ zMnWkEV|wbJRJF%$J1XtUu$$K=%wvkHP8OOSK;YekEUKR4?LAijW$qg{TB^`9`Sx4apAKlssZ0liR3AT!~FBZLM< z7^v@O7kAE9?0Tvr{57SpaQ+RQ0c!j3SZyWq3cban9Mb9noZW|?(5Rom9f?%)x+PZy zhv-uj!`_-}1?aSsWxGOAu@l<+VL`h@`vJsUPPv3Vt>{Irg=knGM}ejB#w&18!J_JQ zh9aF=4xeXoe&;uPB4EYv&l=pqvpm6V-_=zR!xpu~i7PQmm11lwxa6#8;C zcty=7qkayDOGFlZ5w1VVeyW!3v)AxCG*v!-M__Cgx&+5} zpQJJ9T1=H3l3AuSR2XZC9=OV8PU!V1;kvhG#i|>nD0vd+x2bRT&mmOI%mBK=z~B9H z@wYmieULXLjh$ENz%s!c)rCEp?QSadV}KV_Rl3!%=*SfV?eF9Y8=84dFP*YYLRrMs zT(o8Gcc{&Jvq6uV+~5H~oAd$L2hM|5Q*zD`S6E49zOPHg{)%ILxFZAqM69xBliAec& zZHzGvEvotKEGrAI9PND)T!)UzDZ8OKNtK@OrR#m?9rv??A~BV(9@6|vJ7qiPZ6fU^ zVgF*2@dQ}K`w91Tkxwe}6ImO^LT6E_{eJ*0LDIgmq7gE^WP8V97NVwNQZDCnm0mJr zuH;dKAloyBIHF(^5XABtu1Ib8f}Ts+pKqbVe_RFoI_9{shH=q?u%PWEZ~$Jh9m8E;qru%cfA) z=AgY^p`NlhcBG&g=#X`f7EQGH7Hb^qp@$xNSbl^TYk?%RkDa~4QrH!^1?NBi^FP~bU;A3a zFEiFht5>g*qN&b>^=(_XN^v+G818+E?vs!fV=D3l7Sk+R&UDFu!oAnVYlh@jM#|F! zcaO4l)8@^>5-Mi(hZJE4)Xw{*)BqU65n{%M`=xO2^LP25$3X#&UBy!V^h((-6}Tur ztzwC_5ZiS!^|`(!!)4xwSo{tY)=5DvitTJ(z zaN>z4`lm}yUuE}g?Y5uZ*DjhC*oTf=U~jo#P1-N>hFfm&!&h;oaPldqcpT>H+ctJs zjmD_#Hq9I^!(^vD-=O(~{ti}f8cW%-tG&?@=cyK~pDec+{Q z?YUjESEvL1{I1>h((}gTTN>+5_?3Aynz@tSr(dBLR{WFV7Z)yU zbwzGh$1dyX8?cVPVe1?zwB5sU$)!U_IkR9yS9nVlvlX&JEtR!TdC`~_!usVuUG8UU zDtsZMwwA*$Wz~w}OSB-LCj!(_t`vBek+cUAr>e2Hsku=HTI)=m{ywV`A2Nj%EDbDY zN>2p4kRmCg7bFYN;2Gc^Kll}r(3soDMMK=ll;`NLgom~)G@h}%!A?IyJ1GS0YJtCc z#xtJbR^306VjYNdB@f_?GtP92@N>^S*OkFx{0;L^2(gD>CB$M8i<<%SS;C9xzCbK1 zcNTS{UX(&pA5~aXr&5S?h$-=mWqX~%{pZi`wg2^^s{}1S2MS0Y^3jFr1SBQf81SBvY`2qk9@>aimtfevE~BC_eLGK z>pPOuH5p4YSIk4`+uS7B%Yx)ijJE0hEs`z~EWU~vQSXV*-iP8hzk0vTc$0o09(9^d zGnr62RO%)jDEq^~_dHiI4mh@R)W-qGEssE+0#9WMWH3AjwxGGjs9baSfyHw6+%xc> zV{VxK6y#BUIX@`PfO!@%wZ}n$7?pG$NA%fCnBz+_uNux3Wa#Fm}tcb*n~2Y#Dfn#Wb4+g^A|j0DTM`CXJ@DT z@5Oo(3$?F(?Q5>Az}GzCQQYj(X;ZlHD3%rWJkiEchlYYP)+nD)_Fdz%sw(Z-jOLd!J#T^42 z0@u*?QPxhE-(h5S-udTw+hvhyN_{Ii21LORAJ@@erk1#5 zsWWOrJ-eh~L{L63V^xkK9#XGpn}a&kbi6=T-3etog}`E#v4eW`I)KE?o%+XnlqR{_ zDvN`B2Z%>_fV{ko=-s3isD|WTrh2L)XfE{bPyxzTq=WKSNfUB^uO29#E+}9c%8Km! zf7))pduX?;;IV$wO9g-?)pB?6+A~*Z45)Ag2$t%&1psL8_ipR9@87!BeQon@L+_H9TAUfSoTUjrp+&x;zKYV%eegjF8 z?OxV5=4_Kls59`aO!^`qY^wkF@pJ)f>BHkt$_+Y@i-0{D4m&VNiUI zO2G=SV}d#LU;%G`>U{VRzjv$L=15_!Au}h0xkn#$Xz9x?Ji%RW5Rd~BQNW>W|Imj% zWN&=q8*Rmk72Xb$3B_^`YXSfE&E2d-*au(#Oj{^xXn+MH{A6Eq%{6w;Ip;VZ;+Ch$ zMCQ5|Svkn{AsIJpk+puqD!lz4d_e!?aLSsRY8#SKMO)ie+uA*0TZf8m`*6AYKS#+9 z__(N+6#4+h5;E%0dlbYE49Lp8NUn6WFtD686R8ZH|wJHi~L*x;(X^j-?s05_q*ENa*MlNWC17% zkbqJ7u)~)5AK!*muf==2n?(pypF>KJbuMV18^TT$tc&TlgyV{WwO9pTsGTX@1LHoP z@je?Er&=_&|I>yxTfU@03%NRLO7DiX)1s$;*w3se*MiOZ!&|LIevLT);`Gx`cZEBL z#?n81XOQA>))Nbs{KZ8v+BJU|e{g8``t|E=)ykEQ24hDUowKo08`mo}e_K%}S2D_f zT#NMqW+lYTMDlNPQy@h`+QXix$#6||pDkRpC{5ScZux$T6c2y6=_XsYbcwxE+eg3t^{=P>rf!oU*DY5!MdPxF91s3j z(}_GyZ?L-F*Dht8l&Xt~VVSuKhH6@E({5JuP&B2KHj>6rO44qycHh=HEZ?sv;XR7l z5(lvj+fdgIxi;$8`$N0mfj#|V*6~H<9vzUMU>#UpQ72153EtJ^lXi^GNRY!|Ckh8l zrO4yYEO1rHox$;PzX6cPuxL5hy;BzM!Q$ONx0@Trj4vij>!kvZ3DBdx?pzLgr zlCHI;OxH3kI!1w7iW||sM=m|EuI`mPkLX{PIzvg{Tw7+VTdOnT?9vX8hj+xC2=oW- zb|{qVm%<7wnLN}M1?BTp^TJ_LHY{kLk{@4<*D5>|1j^L8JER2PH8qlM$4*nx8z15= z(rGm{HrY3|D~WL)TBF?9($Q~!YU{Jb74kQ$barSAKUYfiwM$vpD73$N+uQ6-Z+f#_ z>u|b=iT0z`CHhxMaf338F$Igz^*wFLHMXxJ1Z?OD?&@7nR@r?swZ4zVHPpc)#qf70Tpf`t`>&+q++ItTm~P z0`2X)+}iqgvX;O6^2^f}@r)rqx@EH#^K@{x=$q|+1ze=p3iYK2`bMdgaJVSqZ5YqV z;b4IO&)%EB%XJlZ{?%{aSM9rOd68txi?H#AW596$2SNfNVfY6RJHZ4J5;6lMggq-E z`2@y8G7vk=KNANM$ig~?*ugengBNVevMpKrF1>wU=l891PxtM9-A_-lo-9Kj>2=?} zx6V0Lb?Pitr*0j|i}*DnE9wuP=&~j9GA*`&0H)BirF-0Nx?+``vpO6M&zgo9&)@pi zw{)h+Z+lE-#E7b zzMn{f?-<;t2PSRXu5P<{U5E*PB4wNoSa^oPvQcB=6Z?DZ@t#WCKPp3`jKbBLv&9N) zAZDdf_{?DyH*+AJvBIOt3~%Y{rhcMXRqFVTdKEr>a)hsTnVMGsF%J3 z9xkd$9U2z=Uc`lG7`I7$i5&fwaa-%6cFn&_mM*bfM~19-B-tp489m1{`=BT{P75au zY4VEJ*w#O7%QX&;%D_(8Pu4w$70RYX;aQMnLP`T$3Jv%;qCxNVGPW;i4R0lV?|a|# zP)2xnUv}ALj&yBp7#Dyi9o0NEqBYr?1sX%SDF*u3G^3)z5i8`6pMWzX5;6OUuh<^F^$#S3wE9vXJHB-7*q$^9qrLWU4u_&G^ zC12sk>G>=|=80DvJNJp_Eaxb5pv-|X2Tl(M(&H3^`3a`NvGT-AIKc{!0}ejLafq0P zr+Q&AB>yR6D~pbJD2YGG14w}N6;4DC%1)`OfcB_pia`rZD7Q2;3m{^tvFO3OI#x|N zg~?&H67{%kB|J!D9)i|WZZ=+he4u&?ndAqw2#;Jm_R?73HJzp_7F+n8#Z@%LuqcHv z@pl$i#eRaM6CbG zksg~Ike9E#wV(3}i^zghcwMp|(?daivc`1A zJfA1^uwI6z79C!>P_MUd-Ph-y*2LUp{Hc@m_kDuL~7)ABSjV|}A ztSPK$SU>bd-_aSAwoy2-k{DN;#W9CGrz?Rw^CTg(nq)}Qo|@B>u3t7PTOw=xr|;P2 z#`en;znlIYA=!kW99T%a`q#bgbsjQ}jpcXTe6u}Yp-?j znUi>HN(M1Dyu_qZnDI=fJKCmmmsoQ{Fh0VkFMQz(P6~0XF}C9g9LMY^Gkotq+Gn?a z{Q-N=r|z~l|L#V6-Opbh+EUN9ZQEwVjb19JfLFfqmHwMTWB$4F3KS9EQN86=ijKLK zH6L&^yT_KVZLr6BD*TTFlWPeRBbh~(N%1@U%6%5nM0aJr!|VLfzAAaiSK6jgg-aXS zVJq~e2l5`nY~@PHT~Qt^gKru({Hz`gE$+cySXay?vGz48GEDpM@{PKJ#t9u1taW6q z*16UFT90ULf=52(pX!8R8n1TxHeT(#Im%LKScdpk8QOJ3hKH2l8T-3DD@G5r^on^m zoVUO(SrgufIC$`o_xIPn_O*HaJ|~NzB#hO!es7m;T-;Bn%qW)369a2-HIU@0*r`;Ic8a3W5Z&v$@&^5}1W|dCRIV7fCzqrwj?ai8V zV_MwaV3%rM7*rfA=8J~purlW8M<0FE!Pc!?r#`I~);%BBgdq3?9VTq7xzmum;EC%_ zy5fo}e5~Vo*P%Xptbg2=sC=i9n@RGaP;FVKIZ6sr5XNk4Nrnpa-g_|XT>r__%E#5yoyQ*+ll?@MOPoWK_wXQ}sJ>{b~d-mfzrKl55E?_5| ztDK?Cfiefm960kiaH8W|c3{qtHru!whw&WrGrKBXUNV16m#>uVv{=fUeI^v*fXS}P zYTVl_j}MU|)y4!mF&?~}IV^LwNsI|}LLSj1;^Q*m#-a)lqV5S9ds%E$DMt5fi-SpU z)#8W~;Vboud8uWw6a%srLZczAB^{zp<^~J zx-(U^S{&=u>Z3!pSg(hYz#n5kw}M-8i0f{7A+wL~d@0GJ^q-!D@nrszcq}EA@G{fA`>mo@hRQl^pj1m{beL3LqMymQKFtOXM*6WK z#ZS#YxF`?)IrPINO>&8XM?!XsN}uwznV-zMGQs{~M@4Me_|Hpr{9Xob- zsHC62@#l@$w`}~Kx2(mLeiVPwIvFxBw)2|)|GedY`aziQd*6R|BT~JrJbD>kP&6>J zmlSAC(i8HsuhQE-&$Xt+OY!XXN?X%CZF`1-u{#bXFF1Hw&8e~!a*4CpMpEI^$ zS+gHr#=JNzqsrY1L9;_|3=kTI@t#yC_$>zq>os3n|aTdwT3UPjzKO z$;kF0&snpp<(#-sq3=wwgAtY9KBIfwVKKd~ar9g<2n{K)( zOaG5|b=mKI=V>uz$_A_DsjPYfheKZGZ$&hb@k@v5YIPXT`+$EKR*rS`DlAQtj7zn? z4rCqjY$pyc#as8V=KDJ6DT$IEsB2zyZthLFr=Nb>y;*yrNde*5!3|8viB>#eu?n*_v#KAFUxk*wEtWI*c|8B(jY zUS`81w(ZH3d8+cjS3h%MvckT9xYBm(kW4nUbcBN&*h?ANXR9A_`J;a{$ndU+B6e?A zt@UVQXL53{uK{@j2BSN0iHK*5Bp=3WbrHjp9T;R7eig!!iMGUuE-}$zuayeFqRs26 zaU0Z`5J!&n*uk!Tmw)YRyO;d3W*LKZkS%?*Sb3CrB8f7v=%B;=@Hn*`UlR@yQhT0NFw4Z-uk zk*IqCU7hH^To+5|l;es1TYVh;*Y!l{ztbA4(7|U)N30>}>QVpYP32OFK8Ef`AIV52 zqk~*Ac=+#nqWD>H9Q_x={Fv+oyt$P@SJxW0cuMqN^?meuYyhR`0>=r_&lwk0DigiF z_`uJ60AEFyI&n3lgK#dIbbCtjIiZc^3E>dN{i2Y^y_u7c$MNcYwi4!{;9CRkt{R}o6gW0+CQ%bUdpbPL!^VKL#G2{0`$Y4I(( z*l>`3Ab!ewPS+Ts!$Kmzc`-^ye)?o?;9A`1?}u!O4=ezoZ$jV27D&|T8y>L@L?e7E zPFH~SHV_?wuG+-to{uYZ1zcIADBswK7Cp5#)u1@CRc$tSY@hAg-)GIWeby!~9F!1} zs#aUj8u{hlaf~r?YI0nm zXnJjQs8<^s;+?Z|mhwwhTz&utXe*5ElQO!~QY6|ACB9Qe3DN@(JZPIYU+M?_zUMu^ zZP&iw8r!*Zr~UFTzuIFyf9fy(!dhh9SlU)^kL~NVvlcelvJM&Nl>SwR)&16Q{ia{P z^PM*buTB4z{y;)>(4a!gRA+`Xwo2(uKR$!6;U9~QT6u9_xvattY}Z_>X%u5bNvYH` zX6%3d@j<)of&E$PFrc+-vC<%8dz@c*NICWLF1$|$>2Gd3mVG90YY}XV@&H4f#1dX9 zJIqCkwYjf3&F4Old=?X3yrn^hCku^2o6brphUbmy87<&Wn@Jj9MXmMj%zYfUc+!XG)Q9gip8K?WB zLgV8Rz0I~y=Z35okMXoEOnA2wO2<|;+qzYYvX8fI+veAV@4=gz1P=!W329d02FsQf z#rsfd)aKd$_wvi^s!PtYvsQHaJwCqp#V-Aa47kF6&zgQTyyajTK zcv=Ut68fU^3^_Oz`M}uTH(qJqJyfYMFfv4IUjms5E9OYS$$i5T{v>jK^>8n5Um%wn z8}wko0vX-am(!ynpct-?$uKQn3-9~f^RhrV5o%=L2YK86FTaKZe+)k9pk#AEBc1VCBF(S zL!IOL03Ppq!ci3_))ie^AHU@Mg|@IcZ2o-vj&J)p1pof;|85*uPbxIF$1$T$eRsq1 zHv6RuM?G{+VfiQWTj*+2G|+?!1>S{;If8kuSsPc3DgNf3G7{;AO{H~9>uqCGg&i86 z(nd}`-|04e>KttiatG5qfL{5(zwo~mr@hWY=CBDF>14x^LsB{Gf<)-8wQJXk$6+iZ zmiv$nod*a0_`QAmcKhmAziJ=;@P|FmAN;`|WXFRey~FlT-`{QLD_m9K*uu)JPqMeU zrAl$*Yi%SW#}Y3=_^Ummvl&u}GZ_w7!Qlyx<&x`OTH8ha7uagSy4>c#{0cob=)bB% zbA;>Q#q?j%o7I1XRn+Y&3pNxf6#bWS5Jc8MuG8u)n_|vcQ9sWJ7Anw1t27Vcgaw@; z!3EVX{nw2U`V|clRdOhS?}cmPoc=3V>GhLx`f?kDigNu@^~IF4S7`2oZ+d{^UkXHb z7(cX$AV(HQOAp5dTZtZmK(!_9b_kMxYk)RJAc&oFhP~nx+GAyx!%|t2&Fj-|Md%=O! zwC-uI+spKcJb?wy4**oY=mF2J_yoUYoQ|)dq1Z8bv)CXxEOlX==C>wXlq9Iexb3(K zKMYnF+8tMR@bPMq@(>N=!LuI2ykMoV^UoItf`xv{&C$i~H=7dySMY#V;+L~H0H**; z{W7-eFT%ohr%U)nSkEthI}b!N$$6vlSs;-YLwe+aFRjM_KI~8FuMxej z-cTP5iSx^Xq@~3FY1%=5KW&L|$Snabr%`f?aUndLQVe^%);UbIs=D4P^)^ZLH1e@S zA)5&KWPUm{s!bJ=1umAe5 z?d1v^u|x-1#7Au4nC{1TAuxS zBdmZneqzXZ-nxbIxMlr9EZ|_^UD+ApiG#n-jr!iVZ=Zen%U^b5@Y!dd%_BE9VQBi` z2S4b>c4YO9Z+xTH1C_p(VNJkh1aE7^H#Rn`Y_tD*+mAf7Oxm=7v8$2zAdK58J8};` zW7OhraB#%>`-c>QrQSCcpVc{52oB*IO!zGseTv}%TetL2*sCsDQ{UJ#*n^Xfz~79yd)kHN<{k@MH8~$Bmv$hZ(3qhXG*-9S~T-K-4se{^9seVuC)J@vAs*i zcAalow2wYh6e3$16{6j$v1`feJhO~W$fTBPo*6@ zcG|E1`rG|L>5-8Umrd62l#8rC^w2{N$AQck-;yH9=CpDi~Ym4Zo8&kXS@^)-n79^-Mf6P4DB_9q!Sa=cCJ%qbuZQx7{{fj=`53C zx)*vHOrWixk5Giug2mw~yZ+1Si4vR$tM8y=2A+iRhq{7ScUDhyy*}vbw8KpOS9)qz z|K+Wkpi}1bUp1^SOY4d5$)~%nle(^)=;~q${STd%Gl;UdMp$eB(o;PNmb&uwUvzcV zB~Npq>T?+SD|{i;i`xLuO~w0+<~P@Wr7LGt4#sp6G;%H&26mqN8bG|o-a#lOcgUh6 zIxOv#==Fl7F2;7R+#z&bB7xJK6U3BLnFD1GlsQo5!2EEa)ELWnK1)iE%(Fu>Eofay zJpk%!Qu7QO#I9p$PQk9sJQbXqb9165BCEovt69ny)EI%8V8f&;Beo3b>`+JLfr*QW zjEOdQY0HOL6Pg=>WCY4g1Y);i@u)GmEhBwtyDH5myZ9={E5C!$JgD+Q9jxwqiqL zNbdX%Qo>tgAUURRErYziEu%ZH#|rIJn^gC-7C@PSLvnu^vgz7Z$td0)2tj^T>7N+d zGk8lY7Q7$8s*d0?P?#ydh@ZM&cwLv%{Bj@+J$O%rc)+sf&=u#H1gL&KK04rkS@HFL z7ECxn{g`8MWw4SQfTdG1(oOItfipS`W_)6B-+6S<4@zCRVugDPQ_z?Oy-~GmbA63n zuK3xc2W8B-?z-!&R>ojL$q+K8x3|~c_rCYp&F{F`)^AvE@BhH>Ic(lXN+zg(LIyUJ zb{#>TZT39)Gx>)E93$a*ouXaC@b?a5JPZh@$jqa_?H6?npCJ)J0y(T{->$>bodF>1S?$NIABS#c!M@m1&pmbus z9#H5DJgV8q`N&5;l06(8S^JobPoMtur~S}QHh`j+buhxDOA6P^+8W#d6}gF>fp7_H zkW*kkGgOC*!1^ zC4df>y-w$kuriDa*Hrh-A)H*f!9~KctgTL)8Nt}oFJAuWfd?D{Bi$R{_(s3}zz06y zvDlw_>M8rnzx+%4(wDyE8)|>{XMd(c6c_or6yA1qcX{{;GJWC`pU8XW1^GwhZZI5a zF=&q-8MF-x>pgS{^cE&$qfcWDYduoJnnJMC@|$)+ekP_X?LLK(Id&XlJ2F(b!3F+! zFh@Fg9%Ud+1a-N=9C-auL0*8acRBD)bY44YCm7`35e&`Lgwitsd%( z`)m{yON=R;0YUnv4hp{EXMfhmBCobshB@A&Z85f2N>9M}o+8Uja6HvV={L|%TgSFT z%(=%=C(m2kXrJ6NXe$fq1-?Taqf5HSm^Q)dHP627t#9+gf`I* zf7*WcKX%&HZ8b%W?VLTZS(Dt^OX{_0Dwt7i;7EFd3?}-NbXxd5X}(OJiPE|5ZP9`vUOPDOy|} zQu;482tv9zob*+`-QW(qXbQNBE|r_sf5A0-J{3A7|6I;0{7o#X2sQxmKr)o^Nmwvq zF$RCih1Wp`mt7;sbK$!z&4wO0Y>~o;lcwA(B2hqZjyKrs997u?? z2{|#KlTB&OgQE`)>s7L?;nnV&#hR-;?3(6P-^5kPRp3#jiHndZOf*a~On4N8ahgfg zCqyB_#kN0{svV$}gu-jab^(5C#Tvk*|;SS}vjzLSpoy)z-G zd1047r+82kAYBm7w2gOUeb; z{5D_#0a^KNK;De#bphrpohdVi&z1&m&k!^_rAq_dmc2c;Zb`Gek1MTPC-ZGTJfP4qb#8Fyb#ziRjyB4`)0`N2 zZ@cX_yZi3DJ(f1#eZ3mX5R7!+IGl5?{gdS0<6V=EMLe^8+o#)dT)XkF6W+@Lu(Y}B9f%I8oZeBmsI2Fb={ORMcG z+edA&!iKnED#;&s6J+Dt-~P6J>QjI2o|!9Gu9Ro>LN|2m*|W#KB_kP!rCuy!5=M2_ zGsxg)KJyvFAiQ?%THCsHtA|mjPSyo!6yd{FS6!t80iUnU@@N>!L5vEKHEmUz+qF*8 z`lnD_BP44K45y6^b$0Yi0Hl%^uZ<2u>QpE5A8VV#I+ua;jcZ^WRy{l(R7dQm zGo}(t^mfHW;hX|IhB@SO1nXBp;yi&CS(X`hc}yuB#`2Y|wb9{^f{p{|z`Gd+3Qlrwlq>s5R(`(tnX(!Bpuj4Dz^6t8!hZO<3#3bM)mfpbA#{ zZ$^e}@hR%cfRevTJaD}}tN-!}20Ep9Dm>HrZ-ro~KkAejVz?LR^#{R&A zpfCGogZSjVUb-jocj1SpRDTOMX8BaTIfD5G zM{(9x%!ABdVa~$1j*YlRa}jfAGAC<|DM0368KpI01p{`dlL?sJ_NW|DIEjLTVnj9k zX0q30D%XZ-d7-$McCyU#$ygI!n7|xdlf979q+hA>vc_&8nCK$WUKOu_%1|x^&g&M^ zp1i&kY`EzYqvKDxsrs3)z5bBf>wqyV7NTJ~GA!&s1iAnR9~9PUO}gN~KQE0kMMpYO zcZC!M_u@%#4ZJDDRf`Z7Dx%lRECQS5gDS}3s@k)#$>Je}0Qk69xlCI#CUPHGE)FM@GAu_z{ zgel|%{!8w_To0Y*jQG<%#Dd%8NvONZ7e&f%mOru_7#tjy(h*wg~5#=OYD z00!NsiYn)lK8EzxI#CsFT#?bitr^?jGplRd7 z{VrlA=eIDl#5sQ5IqUquKMwsXmhh&2?Q36aYu2ps#~j{{H#TXvb=84m2DcQFuE&#Or-b2bg2v zVdIf|Y~0tlai>yol!twdg~4lB2O#1YKz_U%2?bP_gq|20(who0>@$!8SFZzGY0uG7 zybxu~)nUE0+RR{KLLDWOjC>d;BTc|Yc)~*6eDlrPILOV5wepa@=%S0<$d0k{YhU}C zz2-Hq@z64a<@l}N`Yrz>FNv~Z+3vied-0pKA!Et&HmtOjzj31-?YiB*qCwB&ov z!fnD$@w%V@FxkAQvq3iXQmilMj5XcC+MLI>PCFBW7P49YHoz~vf;*+|C zHtEa{q~b^hhKiwUVZrrd)@Wxof`PRpx_N6 z@{DTSd3t}3-TB~N`^0y4*dn~wRQ_ZE($LMm(s~ho`MO4%s%a4(4T`}o&uRWCPZ$e; z42gR|_lkNNoK3@KA&;vkMo3C-EUZYexbTb5Flon`CVuCh$EyIRa(r&1oYDzc6)e<1Mu}oeWXaW^ zz?J~c!Fh?Ze1wX!_|5_u9(Q)B9ZxDKr0V<{lfcGgIa&oE)3;Fr4x?ICaaiH`_fuRh8 z#E=Yp9HM%`idGLxap1rKkInwx_r5o4z`#&(@Zdp@C;JyVNR_y<#gglRJdm6eCaH>r zx1LkKna1#7%g8(Rl0{Y4Aw$uB?w^)-rou#MnGnb3lO+o7PzOiPX#d03E8^Jmby({H zd4rC~z{{IgOvMv*&DPVUjoAJXTiC8can*)Jrr483#B`gTg3$R9>s^ z{Egob-C<1;*DZ(_{30s@3A}0eVg!sZxHnlaW6>$VoWzkm#2^+HJV&$s=~nSsi|l0yt2V5LIsE43MeM0G9s5 z`+JebUJiDhDlx`-9}q%S7>3hGrVG+Fp?21P;ZI&eNw!Yyhs6m;2kl zw8dV2{~o(Qva)7rv#plgwa9Z_*A^XeRkj0L-x(>Jvu*N%&usb!`)8u7Sg($iN1U~@_!k_W|LW1jqPHQRYCI17!}BIq(z1fx5nsQN*WW_KewtfUaeKBz38YYYxSsjx6WGk# zv)`G$$b!5l1f1lJxEB<42K_uKzMV$=;kx9^+L~IVh<3|yP;NobY6?QFb&`Aduqdz9 z0-E@^ySk?ohcg)6pH&pk(8}>LDyRA7Kv>+%ARq%2MwG%ae12;$mp*3>%w=lO;D@oc zQ(l=Du9T;wUQO@m>9zO2|NS0*0#DcI8H-VaxX&D-c+*WcWzmQRw>ZwPSs08)I}Q(8 zHJ-Uy$e)Z0Uz})go|qoDHLX>)KykqzIWldJbWJPdggnw^8^FNjYZ(y_{iS%o+>?gG zvyek4@%ZF`*7G{GkdY~HTn266(2v_?K+_(v7C4R8r?(Rp!Bz@-7872DHHs&F&6+y9 z|A^k!N)l+ni!FP4?Ao?QHzIblw;O*OH-@ke5jOqZr-MQzy+($vMul=15re^Lu4&=IcI(sI1Q^z$H#wLhDA4Z+>H_591<+`20DE zc8p_YJXDcVa@Qdbb-}* zN^7fjZItMz_dT}T{_hWW*n58EN)J8K+}vWz#a|MKQR31z-Fxr7 z9y>Z3)`=zkFaPo{4*xfQ^EWzRcF^NSzx1Uqwe!w9&+oe--G$nJW&r|E*WJEk{9o*v`?V)3v@y@&_~%Lc6}UVhP1H@4%s{>USb7-2p(ZMw)> zTbgad@-}T$wmBTd^vIygIRrdBoMtO3}v7~2QW1HZB zCrr=2-VysBcWsx4zQTgiY4rd)Mq~-UY)!jeeXfswK38!D0kPvrM-?9J^LOvChcySi z=-h>V4+HO=E=gDjR8f|!u2_D`T(hcvsb%xa|7uDEx8=7srrd?-e z$-_E%>mpt3vw4jSfd4a36jI2AXI^Tqgt?a=A;BhI^Bq#W3R?tDyWUX9rI-t=hwi5z zrGAjFMjLrYdxz{;@1QnFn>A)62e0M|D_@m4Q073H17!~Uq;o(M0_#!qrT(E&+jpeT zbu4*DD+-L1@f{ART6VDm)ovzP_=jp2Nr zSc67?s<;TyE1MVM`47ks*sB-rC;D82)Fg`F}%p56bIu!Lb#Vm1yk&NyA{rx(y z^22uPt+(1^k3HrGEJkA+@wflzkN(I*g0!Vxb0_QvDS8>A&@F3kuw6QowQ!~)JXV1= z=y{)OA5rYb6e6TSR`4s9=|I_bv+dnxk9EuNt_@tqXUsa9Qrt!o^F&%%wBSL>;dCSx zEDPnqzM&&yXX$XmW*MM(+ltuG>AVxcEW$f_7) zG;>(*F?s8E_YT{hqy2W*Q(g9=^A^|zYZoX?i?|50kl`rC{3P)^UMH8lt?~UW2lU2) zHm3C)1JV@>tL*$GwSLfZEQ0KFP0T4r6YA$sR zQIx@RLQ&LfhoxIV=(P_sBOxD4o2u-GdwTt#*B0>?BRhv4bJoJ4Lx++)({|SKPP=j_ zXXqYNOl*wiBs|_Rx|1*}^Y_pH{LlWo@S|NDCfm1fw~v1GqyA{)#*JBndm(K6?J_J} zIqb7qZ8M^FIo<0+H+=dSl(C)iDi=CAnTm)e-{6ar!>?>wBv0e;w!kAl{;|gh2jmAo z_<{47!$^6nlJx!Wf8P(8{kMPnH~-DY^Pm5G`-u4Tq8GhLn^KkbvllF}ZN~HVsMOj>1kzxVro-K@CgBos|A7<8yGN&Mu@0JT6$zlX*0Zuf99yf#oIK^HRBpb%5Ei?>A) zIBo$qD$n9Iisk<6n_KKXcX!)0&6QqH%)*?pTt@U2to?-qcoZhkq+Y(62iRl*_Hucx z&z1*SXA?4p=_xFix+rst*!6+U&DPx7W_^_{GPXl|F-!_eDF1#Y9Dw(wxg1*uAYCH> zG5MuFviIC10${2@@~a&Mh8*JE{-eis*^4eePx_MHc2Hja%BjqOG6%{WD0ASag9FS3 ztbtgAJ^1)8H@derH)fYY%o?QdtxumK!Y}5F@D_3SttH&argY9w*vXc3>hh&=I(4Pa zXGt{Xb0L8z0yjEUY0Y{K`*6?jEDN90M-dBT!YR}83K42cr9|n?W%o{T-ahw4V&0jT z_lo4a*Y?v{0qb(~R9=xL%tJYh&lxHQY9|cb6?&a`GNW@tQfP7=jqMk%lo3>M3oy20 zK>O6EK4lL*^pI`Xu)*U^6WZX|(WCa;zx_L20tZ`Si1Tq%*54og@P~f=p$~mX;b+dZ zH^1o(*4)0(jY)*7$;|`0PNs5(t~5R=)Sgq9OmQf$xGQ$nRa&RK(l;)sutPGQ?UpfI zZ|~a?jop11;0tUv7~|L_n0;2!Y1ckl9pX@5>(eeSs94u3mnVRM~bvAW&< z<-RyqeSYL9AI6v34ob$aI6^ z;_5A0ljF`aU89{g8cugbW#jMZ;W+Y0znokCFi0#d9ev>`%f+E_+2SnICzbRaqdpTJXfz{A8-$U{bkfP4jW_z+Ec^g=w!}FO7~F{sk0HM>@wNi1bMT4@ zP7SLstWfx+4Qo2wz#5;OuI~x)a_8;?wy3k!ddI6hqzs#0X*|J&X2lD5VPmcR+yzTL z1OvLm=Rf~>`_h-bWN&%PTa0izQI=Ty@|F)qb`l2yvw=Zczy5qb1LFdPmHDf``YXG1 z^JWh-vu<&-)owlF>p0+8ITKE0K=L|KQEiP2mxY5JC3nak2I+vQkW;^BBNf?TT*2tR zuz^rhI%hxyv35m7=2tpZ? z4%@Iu8#w&aeGcP2rr7O2+TU*~&W(s$72@i)?{2rX3e6M`P_5D!u}24n@76fP+au{N zg^3yO_LVv)b*;SaeM6P{i!c-+Wnk>nKOABL-9sq2;c2a|gH z0lkv(EWTxueO_>Z?&mUsu8z=^NZ#MjDHHv-G$e8v^j{84txWV^ie;2VCetbCzdAXB zw^F2o2FcEqp1V^2ostbge5kApxE7X0xuJB84LVB+(Mi{zFRPR+X!Q@bZHQmc-%wX$ zyASo)zHdKh%N47?NpD6u)`AOTPVSIgerHp1$t~Cj55oE*Y|uu~NRNXjHyu_5`P#9t z4Fs4J?f3#qI$pbyi!p)vjt2`JXpaPTqnCAYq||$x!{?)&i0w($QJa?psNU;z`3;0zmA8i@<-X4wG9${!-3H! zC|hYBM10|aUxPsC-*iInx6Yj6A2ZskIGEq{Hh>4>t4f{)vY@?YK&JBsTq!Ti2Qz?S zepY_`ux#jJZLRx}WO4z<4yzvPnYUQBy||Yxge%G*x4s9Z&+I+Y>kd!NO^v#hbF%TO zV_ucXTu;7WzxD?d>_tDhYac`_QP>wU49t!zlk?1k5Ktz9ODz~h(u_^# z2y_Wn|6uBDhIBk(}u32crGPy;2 z6;H%P4E6Jz@@Cu2h_G3@QVS&VYwheFN5pCE9Uhb6Knroo<>9lCSa5PM<+v7=?eYdh zDZuDXXxp@c@GPKq##V{fb)A)xmopaa=LBN(gE$CtO}td*zi^lDaypYZKwB|_VdzdL z?i0%6yk#v4R}nnhKl#Z|D*VLXc^HWcF1WzK!+07-KSETz``z#M`I7;WiPsGun#XRx z{dT+Oo_pLN72`M$D6TDbw=l*BOfdXc=#O7Ni7C!!ZlFo1gwLII;+E#7nf(Mqn&x|1 z$TW>*lY`E2)~VBcFf>{1p+p)Q>V2(~E$CUe0QYf)*|}&%jlFhg(*EZ0VLMy#$1ws% z&rKGL4f<;eg5)xVOz_76mXS{w-7$>uccO_k-vNbRd&SyX;Sxg0oM;(^@GN*6WR!ru z5yfn7YO444D}+0hzeR?J#aYzR$c}{9S4@)Nm9zPHdSj(Vp5zPccYf!0 z?9Myyv{$_16~>z>S6p$0)z>#D26?Z?Yv)j8(l7kNFZefWudEX4cXA&X7kPs$96HOv zu);|x-sk$Bhn}{7d-#y8(jf%I*^WugZGC#X;F1+hGVBn-z#BR~p4V?!!{!JZE*^4j zd94jh>9&kr3wY>c6A zd)wQ5vyyul_=y!xEd5V@^3UuYzy1!}yJwFZ+&lD^N2fw6^(ed#@{M;f9`_?tRo2#A zZ%1VO3}Is^DJI4d;VZlcM9Zk&o@vyntBc#rn)MACupIf|?>Uu(FyrRhmI~WFFl{>q zHAZOft<*XfT6uG2j|}FI92s&_p&6;F)BRRF;>9fB>Ljy|9vZao?d#9-h5Jp?5S#SI z2-h)DhO|WKXl9!`^=1pP+ckKFF*!noZ^m@S?;7b{aqQ2BDE}z_Lnn&z-F;K`-c616GR2o4sch4k7d2Khp|_1(|Ai|vlRE@)4uk%o z)0Wcx$QfWY|7*RF(|>1{$sHW1;17Cjwch+HX*f~CO-_udpQzQT3xK@WaGo7#fS+)=gRlY5WY zxZdc2=NRHb8*pxn+E(j)@Q5z+;FlXTwRV9n=vR4p#u&kce*rzleC#mf_staND|CTn zexgm;bb*2@IVid_UqV)(D!_vZe1a};1=ibuA_bo=8?y7O&;9}qd5L_5zEX+yayyXl zgf8S|M$#?TFwR%nOS}p^m;o7@JJO}c-d+Xvl5{TbGva~U!Qep&*(T3i=|V1CUL03B zbkerzN>kU~XT$^AU{<=6hp_-0NZwwv;;IcjwE?U@p7SSVIxPJF-M9p{bEZpmI<9%L zRm{fdq$K@-O)_LFk;5o{0VI4{Mc)6_J_oU`Tgp$O*{{#n`Ua0G5daki1F6K|{kbfkw12((4831U4y9 zU)0N>5zFGV@NpUGF(QY7IR)zi8zyBM!6zLPu0=KoLPwOqL|o~VVuuS^Azh-`JB>qV zu_s*NW-;S50x+RPj1#W1fvw7bYko(kUf;w}y`e$qK;!<3c;P}KZVZ5PY=eoU4fvf- z!1#tonl8c2-1rb@p$l5XWdtF#M=`nrt~~epSWxJiHCLpI`z-h?Y8qVtNA;S%(@`k@ zX=G2sb+tO8FX}`qlO761KF3ZS5|BDyWuH1MXD=zc_?#WA{PZL^fHIHmi^V8Cj?Ey( zFci-0sCyFSmb1(c2k6UcDyyCv(Lw<)z%Y^0es}^l*N2U%TW`C~KK$Vi+jZAn=N_+k zy~cTk?`kQsull85v{kEChj`-2D8U?+PAy4XT$Hav@*c#H91cx&Ol0_%a_+K|&h?Xb zou1R+-?$qdi%leff3UHDmB(dDERD_A-XR&?b#?_C#f58%;}$dz0AaqLw5!+ED}M5{ z-M)RqR>^}CqdRzuCI0O`Mv;&bcxbJALJ5vCMje!~{Uxhv?E3Q>By(ExC2NlpDy$G# zWj~^_7=HOE3rl+?)883%{TjD(ecpOH2%FkI^wOEz2$y7g&U}G4eXFW!$}ZPAs6G31mXbot$lmH}-eQCxU3F3@mr2&ri8l2OsN^Pa zO>*IGVRt2!T!+btX!Z%=U0$$oO0nBzY*#zZHa0V^aM&@j0RFSVW-HJI@SOj#sJY7C z@xn#ca?eq_b?1m(t?)9KS>wh@I?t)RhHSjrk+*vWr|d(D+5VDC+ibGB-G;2u5A2=v zH?7dU5`$|NftmX6IC^4H{Ws`dLI0I{uf}oMS@d7@I@T6$lyN<6rh{BC*kCY$=ZRh~ ze$J}@is-DKs5~?DU*U%S3$EUff=9oU6uO}$OTI2#cBJoO2%&!Fym9Hx)e7(A244g^ zk*&1;8}xb{|1?iwWWfTGO0L(dem9<~Ty$&_M#NBH0xw+MFb=LsMQ#*QTVXt-YG3Wi z(yk_!Y|0Ro*a$Mb8Gx>VlW~oIe=(po>9@wJ7sSrogU18SntU#xkiF1G#|7no8IJ^rx{hLCJB%fCp^2 zmmsDepjOq`t@lNmu;6>$x1061+0zWGVBKIMw8Y$E`RVN?dc{4^8S z99{4=&D&5ve26K~HIoOdI|5%*u+ZhWrppAyusIFRG3B>GyenAM?Q}(f5q>$?92~+^ zyuFIFfndE27)+BCWDCP+A+8Bs!Z{}T0DYm5S6SIQE?p5<%8WcnWXt6+*2H&&jr~Bk zTn>xSH7~Ly43cppPqx&q#dMb$Z6I`ujqy;1y_9h-rkrf0+d$WeY)=E5Jj%EsyHK_P zrM(!7c!N#A`tN-PzLGast-Z=9TW%fUzCg15TRaAw#B*Sg@0b_^0&IkePm-}aC0p=` zxeNL{>5Hq_XQnhBhp}Iuj9b9^JQHy6Y@*A@4E^x_kJzXXz!;9a>;z|Idnz%uQy+68 z^O%pb+(=Rti~<-2#a$GL^j$Mm7!lE>6VHSdz4jmq*a^jaoT_B!GEO+j4xJ`18Y2t< zA^&tTQHFsrG?p9NlZnnJ4I$^{PLI0afE$D&SZ=_k5fUauVH?lF(kYYtDwF47f(y9% zgezgr4j`h-C(nc~g5$$@CcX*10z0L}ZD_a@uGBBOyb+SR#s!Oz#|g)GeAEEE&Ij(4 z0WYSN7e$Jlz$~p!7Yh>&23fk)fLa_)fIkZagf~l9vWU{X*aj?s5RTZkPcs>pnK;QoG%P$FBXsb4s9Shp(~kiluce)c#zA}MD0R7l47S3{PM2-#_9QB z!HaRz2atqUg*Ah#*c(zB=M-QbjP4`r#K#1j^#Wd2ZWKxK$KqzAyRghyU8(!=dC~6@ zc+Y?>0Y{y6v%T7z%7?sW2du&hQgDTj@_wh_()6aU^WgO(?^!B;8ZHf!21(y9gy(m* z{qr93AbsQb*XerVHSu?4L$w8s89UlPEe}fO6DDskET=P-13pK|&|Nt-X5$rg5`|oQ zAr_2_wKCYe^kp}?=jFeDO(7-(f-=VV%ecbzB7!t2};} zE?s7?zv;g!99MX)ez#)lK6$WDZwm#*58e<*zGiCJ$C)#gSM!Be=$9wh36FyerO`KQ zv^L3T{+h0=^NrbBwE=DZY$nE47QQUru2*OoV$J{mPb$v5JOG(veE(q{5X5fD{Iy@k z_Fp)w){X6Ws7~lri;`pgN#Mbl*Qf#Tm<~~8-9b$E`Qo|rQfsHCx;lH_`i1tDExlHe z3ss%Po+h6Z-#auefB4q#+Pc+?ZOyWF@5irx^{Z{?&Yeaq_q*=8%euR}?b>UvwV%}? zlX$$ZT)EQmr>@7gAGFQ??Vrqc^|?pA&mH%T*!>T_(Vlm~8n2JTSpWEs|Jbg%=9+B% zN4xs%&3}2ftx@>+`Z{9gV^RqTIT(;NdDWs?J4dn0*>pR-DPS_DnBA*aue4fu_#Zta zuhfWO3eRE5%2^$XbH8D+*1K8<%8i^*Fr@dq=RJC>LGNXR4xQu*U%Pkj_KTG(R`@rD z+Q)TB@S^4#-`I?YOmj8{eCP1g1qypKrbVYz7Y(_AUl`pR(ED^B{lz`dR3Bl421c}Q z*8NVM>$9ju2iy*`<`ogrkTT4}1@r{W@;_m{gB5}GXUYBab$$u?YZzLxNKu7Zd`>9} zm?{9aa`1ACEPz)p&e$FM87pM))qP9}#S&z*jy+zQ3mjUABD^T9&6J(nh9_vyg^Dk% z;De0Ek|{QEz&-rwLidl4QBZD?$xgkw@@5&`*F4;9A9|?YF48#JtUv7C;C-qS{ZYmH zrsSA9!7bOd+w;$Bwc$*w4Q84&Zc8tc{^PoG3Ec}PAYWUcJE<(!DHB+9NBT(66Vbhb zK{TyXPDGuS{7T4mTK`2Si$;mr^k3@9>WR{G(f6WWPb19Kf1_TH{)-b6h6^^{WHduh z)E~l{hpP+>l{()mojQ$H<3Il_ljTA(>FmOArq6@yd@mY0NR_6>S z9v%l8XmsVz(j~rG9aXiV@TD&9vk~BiS?>w~E zzCop)?cTMjQ<=RC)(+F^_s~V6esInx1RwSAFThf^_?p1#spB-I1x5wyBJly?bet$d ze8sR9c*t+b9Xz2-ho!%9pZZ~Uu$NE=9Z?v&UBl%?`J69mSBJ$0AsQT4hYjV@W&niy zjAA*u;0bmSHvu`V&;?&qrtUke$|XO%@->y?6zNKEb-HLX$%d}8xF)cw-R~nq@FGoD z;7#zN7XhjZ6hb?2?XbEZaMJw>;R~**_R8W){bV9Pbb0;oHfaOh3;LpXfNtP?3Ajl? zP+i`#N&UjL6kYJd+l#yjzf!p7+5jAqu?Wn(e#tzXb*76}-E(-qSAwn-uJF*uH{t3@ zIJ&XD09WUswoa)h7&{Zb#x@ZCK1Lv0w7Jl7JC^RlL(lK91#JLt^_(V90s4S0;E@-V z;cXD)kTwHN+R&5BQQ(*E=C#4xWJ`5;{fP{CxoKPrWsAB3PA)G(BD4WCr|9xFfG(A* z@c}7_avA6fxIzQJoi5cK=t5?d*ZVAMDg8^@3tZt13q52Inw{4$+xr1+L!SxwWXpxG z%EtZhjQq*i2Q204pUZcGEAtMtX~=b%gYll9wvlWz#!x@`=o`TE+hv2g^v8G%{ocQz zRW})nzzhEQoCu));uy;q&9eYYnL&|RcnSZ|mw}*Ml><%U72fsYrr=bU`uDWP zPW}nV*Fcm(HE~X)QE|$adxUSsGha|%6%%4c#!4!uP$pOIVMO5DCo$?*3WWxuqDMKN z@Jv)bxw80$XHG8&VBuGV9_~boGa02}7)E4alMk!&MYy_y`U4in7AER!9W*3y#B;fUdORHJd?BYD3qGz0Y>N< zbU|M%G%1$`bRGyE;fluYsj-yzQi3b6&<{NPbiRr%_dHA2uWK6C=~5oxLK_65dE|k& zmtaF1ut%>aS{Ol(^H$%^uylJ#1}N8YRSw#pHi&eoRXuKDQ*(>$KQ3e!J*AMJ#lFf`)ob&K3R-V_)Kt!DZ@1%DBO6CH8=DY$V zjZYdlx%P1mIHfdg;SQgn9_mcMy#9b|LaLs{0V|g;$(zTEWD+WYd%Da#UZe|6(JoO< zc$Q;%#5XTXDo=q32rNfmGx0SCe; zk4&QAD<-vGDq%s}E{|GdC*VD!nDUJ?fCDa38k=jUhTPyDB+SRjc^m^^J*VxrpU7@j{SobI-8+XOf+<#+4I^ z(9fLPAcJv*{U3#w=^vZ64!Ny@dl);ONi88SVkR~y26h+=-?XvbHm|PpO`c$Ef97=* zmH>TiZA~82-32Q+c=CJ`H9q&<80>RE6IVMCHW;H=^~03^IzF!^K>s- z-wE7IP;g`WMjeuR=>k=V03$JHj9~$PoGq zmv!2zg?09Y`?~Evx+iS2LUHjXgI;PV&DSDj7P|$F)WzmSpT@~Yv?=*t6l&{Ln_F}s zbBpy)wx)%kAsMuC{`mc0K^v>e?Z=x%^{wrNsM(J7gU)K|* z|7v|g{jR5#(0}m~hriL-?E0VbK`+VssPN9yf1_S6r!Uu)6KJPPdE5yrrPotGI%5W% zGD$feNT-xe3k-&B#+j+9p#SZ<$F2eGlnGtX;@+qjsj!uCH~d$-GFAc~HZ8${whHw^6N&njMSTo8aAU7% zaUQ8mXo~y<8awn2{_-#5VYg$6u>vyD#2Aaa06W3 z_y%7!zbku4dIs$g9^5F?`7i!p7|X)ys#4<(bYa}3J>zB$wx$e|ni6f|V^Pvxv0>K|~>#zXRD>rZeEwji|u&(&VY7uWD03#+mt|KTmq0$qXsVu8b| zNH+kQ=<>D|4nbaWvK3a439f2f+SYN^wYP!FhR11K16{#TOM6kzR7G%Hoq?;<1#FNR zr;GNY{rS`LNEiI^wsM&X8-FkCga9jWoxP;_8IXA zTS7GvWnp>T;O07i}Gq z#tqslkpbE*_5;-(NFr2qWPAXX5V+v#i4ztK?UX}e606oixkAVylv&;imWi8* zHtx21r=*d6*E`}0510_}%w~{RMkVlpUIfwy1iu@EfHG-VM+jJA-RXCZt^iEO4ikNG zx}5%`!MuKO6-!pD2TEbw8oUoWi z`1p%nb94sEA;DuhFM}cXNj&qxSUkde2mHuSStQ_qCtqkI}t7ovn&RHPdXaOXYR5qQq5Qm62IONj} z|DdlB@0oN59s-}{6>!iK^TQj&J56`sZ<_9K9r5hx?)M3eMJVOx_{XLc{7<)EuFdjs z58fOI1ruj}n=$yPpT#y4zFvbpCw~HLrgZ2JG5+tb5pcNRWTjkX}JYH%0 zy2sTX6^b!krv;HXADZbI*K@K3`1r?KKn9-8tMn#BYn9#c*eZ8W2X1)_#f}X{ljrKd&EVV!S z`fj^mVT}zJFb+xwH4j~|pw|BSJKMDx@UQk8uf57HJa>iFDW)~gqv1D=GY8ZD=&@b) zku7UA2!@c@=X!585N zlb66>eA!BkACwt*=LMXW52Qq1!)+ZN{*19tvt3@zh{=d}_woxC+qp78lAhYO&0hJ+ zSK0?Z_(8k=`s?%H(?5`f;o)Jw71uw$At}Db18(DeUvnpOB`gH9Y|?KIR(6@ycs!sD zO%xyPp~wqb{aUOI>uuJMtS83&z)lYEr6lI(u)fhVCTtN!`>^idIeFsxg8Q_|q-c)U z%=@m43$d_Pnz>e`DOvYr*Q&~sx9(Bi(C>5Wp4>WyGYIn6J%#Ht+5vp}WsqE=&ETJ1 zR%7?*5Y_In5YwId^LUnJ-pO6i24aDGlV8?3Wfv-LJ0YmR^LRrCF!amX8p1w?HQ2B= ztN2Yj3@9vRte_+94d*KuP_OFi* z*!L96|010MLR@(!V@rZUWZs@4Cw?4noHY-F`O+$-yPc_T%RHbYs_sSYY}cBgTKcbyS8gx?miwv~IdR=oc}RHV zow)vso{UZz$^-|_4~qIPc)33A1`%KrU77kMOF>VhzY8IyNLRl8EBCHiMpua|xa4MC@s4n&#y3wnLfm7|acy;=QH z26xxD*jdwmH$+NT#n1><`~@dD>6Yl=jxVt4_lfQc47`EHYB|f0DWij$frW}m!Q!9@ z9=h_yMTHJ<1_w6?A>+c+(bY$_chL4LDl`1x3pmlnyi0y;MgcA*1G*1zs2}c;6IjV&QYQFj6Lf*AWHcrWSQy+Ru6`dJ z1ncdaz*0(;XmPrjkDaNZ6nF}6!8Ih6DW{7pUEFjgAfvGj0&FN(^%uxCe5HP$Ym!pc ztg2u1i?(z>fF9?Sz9R-Ye1ufvzB1s=^bpRVn(NucGcsGWy;6OKnZe~S_5=Nf4WS<-@~wvEUPZPI(qjQ@o^FGp5DdftID+|it_@V8U}N3IU~_bV0t?~519*{_bl=0-AZ2N~y#9Px#}$LJ zw^vfX3JYpxg>}f)d;8u284Jvob<|40i9JZ{e-@CHHavpyN%5<-xaPHE5;1hyHD~c% zqlGm!4(sq$7TL7puucRf-Xr-rzzaGs4AaR*rC_k=_G=d4^@Ik%$T{wL$WQ&;qaHkK zP^y5Vz6mLJ)JYmsSpm-~uM-7EB9z4woEf+$ubv#yNNe@3}_VA|J2h zQV#rq9ujcW5$M(;TF>Dl@a_@hbd!JF!^rR)y2&5vKrsx84LpVil+OS{8;q#^P>QG{ z;!gR<6mTIPa=aEE%0EV%DG#)SvP0dp8A?-w>J}QRKi6j9M51i?NWRc!ylF%GsVxOV zo|cwIe?^(s(Ya5%k_UL|;2PZF33-s8ni>@C*bd=9KiYx%0xpq{l3CFOFW^1+GBEQS zcF{1{(hLl_OwB>GRur1ni_2aS15_#r| z=$h*HkT!F9^*`n+f6tu*G~J>m_0_RP>r$I6t)ngGo_{_ekqPE(#_8oUxc};<&31_n z2)uL0h&|b-IYYR2$YU47P)t!0T_j!h!jlw;%is|ikAOW-;Wb{fy4Eg`aZb@pd~9U! zi}D!DJ(b^-&G_txaALfe&m_X>U)qATYcE-0|8)N$8`9hn`(nCkc!XhXV`r^>;r`wB zg?sndZ@=suyL#i&1YUg6KR8D}#rS;BqX+C$-`b{ywDPsqc>c(1Lc^?Yt+v1W!Cq_p ztADqjyKHU94dVp_AMSm0pZ)PSpR)5+Cz~JXRIi48w0q3narII=Yk8X+j?&NP`xck)wHz)DvC8hJY@Wul4jl5UO(StWCdAqVhv1M9iY~`E= zoO@r@9u3KEFd7YoTEog=-|std&NR zwE}BC&#$`4kAaBw2I~{bWF7459tp#!uEY8yY!HDn>nQp@b?U5H|Hjx%=s)sPc37)w zO_IWyH5|{DwpH2Bt;pE@hbwH`fYv)=xm2etKT_-&X#*_|k81Ivh^2rPT`KBG=Ib{qD4O@F-y}jaj9ripK#2$hOMCVZZwIg?i(b!(Qi-ke4ovkxy#F^K3a7ZR)79H=omJ8&}rbf{qp&u57n{ zt9KctL}asGUiEUS*7z#CgkVnhiZ}~W_xYDj&{b6b6;N7c$#Zi0FZIJ?)lB{RD@<;1 z5Fg>G^A{Y8!lvk=EgYvn6W8fPJ^toiqSw<4!QbmwJ?Rwa%IUvJ$qBCc_`+9oU`jw2 zb8^5{zxng~{;75mY_;m-VAdcv5em2n8RW?~LR79BM;$rJ#8@j>@h`xuOdS8*K`nUa zV{CJyE;R8USVvhobWg*BTW`cJe;yEZ0DnF`9mYa7mjvkbM1yl|tAGgwDCvv#!Yt+I z`p~wb5k`2axeo`|3$2ATF)hIYxbQ!LbwK|Jxq@NYu?^iIJS$4S zH~?>xG9wAG9b(C$T*jV!*g`nqfvrf+6iJs`99FnS?m70we@EEm~`bMl<%O6L41+fzzAIs%i z$@_O$lsSI`RgOoxdh#*Ob4Z5M#X~PE)ENrXr?(Askpd4w)j^We(A@XFrF9KFXfK+fib>*)FhN9;g2O!G}&fJ)yKP#tck)jjglmHioc^ek=y zI04G5Wl2O>@I_LXIEy@(aVsz#nvR8Q>9UN)(dgg3`zZSL4a~;fLY56 z4_)XA=<<6-@;d$A$VDC&+?qS=+od8{FzG4tnkWXuBRxHEXAsvubr9-}Cyw&YY zMy`b3A!4j>I!A7ijqum$FsvY)dZ2{2Awc}Xa2h&Z%!3fC!{}L~Dv8h1*Tjd-qmQ7xLSr?AZ;O(>?Z?5KbRI%q#Vp-<@#1&8M-wUH-k-9~ZIx%U z;>S*ERgOG{GN`ef&O{C%C)Lv+)e4kL^W#Bn;fc}Txwy3$%_8gtIMKY>k#Nz&$kir-o4B>22Z(3e$>lRhpw!>q# zMX|IWJUU@V72*J68i_Ar3^PZO(1m4d^1}rAO`L0D9AC4f+Rj%w=Ps_17cicEY*1>; z+~u-R9?5xX6N^*E>(h~-i4E6fdL!ix*R8Vm-~OasxTJPQ_!e-1@?jZmH^_L7G2@e8 z-D;ow%)?@!n8-uqB7VbYZB}5QpHdy<<54=vaoUaUx7@YEZu#pi;ZX#_v3FgaZBQtT z5j9l24G`@|O!P{{D!<{%)iUg9Gg`lW+z6%2>nCLTI!D4YFrkoGgG2V?haa&uXRmen zIij^sMA-X~@C|S4n0@)n|7^G2cAI_aOJA~%jt&`$aZX^9MQ`zRbvfQcLm|u#_gmY- z0jnb;ip{4)*sTR}O|R4DHfdbOV^VW-bC6G6W8_EH!80cMK$DgXXLn|VOW-EW2A<(p zfb{WPo8_IIt-2BB@%(jCZcV^OIyjPtl)f&tKJ_)5;K`9*w}33*C*+ESf7C}#`z{GxGz|0wxTa%KklxuWAbmo=uVg!@Bv5uj+cPtkFkU> zHEi--pb#<}J9H3o4RJ|>*P2*$+yrj$F*?Z{F9WbKvAL0MO^l?WJSpc&=pekkuuQtg zl1tj{1?yYviG9Pi^YDm0a(LXnaYP#%!e7yaeC-}fg9qxWPM?n1v1ZB7OP1Ey|6}hx zfGtg~I?waG_vK%C+g)AltG!xkwYuey8wrHe3@{5U0%9hBWp-jUI~#(HC58!L34%pL zumc1$BZx&Hgw!psR=3nfYVU1Tb$MUUd%OSN$uIBy?tS+@)Ag$By{em4@80`;-}y36 zo;1hg$&)|VQEl7S)!Noob=Fiby4H1QM^J++-a%~-*s%CEB9CVleJVA#h1Lh7Afu+L zz|F!*K-4u`+rnVnb+~zD8ezj&DxRa~n&dk>RCp>p)fNHQ1mk3kN%oytL`9P_6yg#V@f^?@(bk|I4(mpCfa}Tq1Ft#W|!H^|z zEC}gKyhAx*c-KQhAn3(l%;6z8@QxZm&9me=1K|`<`sD;JmKgB`Bs|ic1SURX z_I3V{$%i|nAg4s$!90iE8yO_LqwCD?CM?WHGz z$IRbZ+~Pa5WK#_XVoqDD49_)^s|ZIB6L5G(B;#9jNIy&e&gSjEio#{znJ-*!nb~q; z9k@eE!-YG!_tMW(=q;dav$)Sz_RMm^do%8Hn*%lIYrcym7jFJ#ydAve_YT50d_~TG z+SVMlthcG3R7hy|*m6;-js!1#FIfus_V?+28P>GJqdbHmxG>1Vd9~uL!&)0Ax}~$R z6*=4AE=-x1Z?4SEkhe+(ma-|fo`<-yy1S%^f{@01g5kJE0^PNp)pq6D8oOI36?P3x z+UsW~?A$;I!-41NXu^juLN=&w!~$Cp+Y>k^eP$JYS-4g%$DvEz;KOMI)-pY zZ6WG;UTTZoZ8cW+F2#9H-ixrjk6}Gt>#--oV7%BhZh!J~yKM8CW_d;{tVYs4^w-!_ zacYRy@%{7t1|Pam&xjT)hKH;{hd&Q=owcFG2V9>t(op1ZIKmYSTxBKtE-{azM*}U2BozlA`7QD8u zZ16KOxE>f7;LEPN?mBsv%F|qUbq`N?pN_+n`eS29Ija)wz+L}m(A6_aK5}IWphHUE z=T7?iynctwLLsx}>wpdy+Be{q{_PO4@r&dIO$cjOro+5;wN}`AE%+bolefFt?ySPh z5Gtic^g>3_{~5HRRR7b59KD_Hty&}7E+>*5GPbX*Qw9=n$CVLf@i(7DUm(^zyDjS! zrY%j=`MjToiSNemh{LFM22@Cyt&`lfcT1h!yraqP8PHh>!;{+KGG#}5#_V*jc1LRU zK*LY-KW9!=*cut?*J)QuwN@pX>MM25iWXm0M_*7-ry>kogZlZP?{Ljl7+rv!74>ym z{M72$h{}lLHH~lS_aak3{W4>#ptCAvTP0l3Hlcq2kn=62|NQzc_lCos5`(%9FSd0X%Q*ljkJjQ zEyb+pGs9Be8*7`auDVCEIBrmvUh;vWk-~OmjH!70v=JM`lVV27Q=e5Z7d+zaOOFf} zw?oLNiN`6Dp2+?Q*FSs+Q3K#(HZg z?}c^RXgNl>$SxPJ2GQ8wG;vM_V8TI3vn!FXb~ zCXJ^+<;5RIUa`~%b;M}apvL{oy*un5_C4co$0(4t6)h6lDvpxeZ@&BTEE0&u{W$=Wm}v$#iw~SZ!Us zRchyAbyKVNpE@mc=TppkmtL%?skP62?$>PJzBd)(W5~Yy-S5dD8^Q)+nCj{2aqJ#{ z{Be20|FeDg!ymQ{8#nm97hZV5KK02@%3xWkofnO6IOoB^gKzos?b~l-A>>FV!_GGJMY;ToEJKno2)&&`N;gn`a4e{77RC2?B z&>}1)*s&X+RWf>qc8pNPo$FWxQg9?0{;8*rAAK{<;$ej>R*Z5IufIVEp&^^>K4}eY z>l7-m&JRAPoDlAE(`^j%e}qSuf4nSF$cMMoOEsHcj5iid)bEp zkV#N)c-8>=Kn1^E9&-xwjb=J^7>x3?J?BmNnPhmgM;sEom=gnD`WCz&Xz1?n-1iwX zg;f9rFE1Jp-Vuc3kz|gCeUhm^i68z>a^deduHo$nQ}8>!sPdA+vf0Pi)6ZfinP+;a z-%hFIp4U6V`8OF9N%?u_Ul)1J=^Ak;22;9UqQK=qfnsB(*!_9aB!7T0?z>J=4$3yqc63p6ZhyJom5Uhb}_>!ne!2y2l*u zMt_yTzY2^y`c2+pF+g|8KPkiWj70N$6sDBqB|!fz(Y2Hog95S979+2vo(ICfxR(9L z6%wajt}_){{l63w$=PovOMa!o@5KduSo~n4~*OjsTyC`_+!4jbWo|VjI(=vkBPj{>B6oa~= z$*~LOiu0N4=m0^PBaBS_M2~x06C3n=a$O>%TNY?wbYW-Ks0=|a0WD#yvob|6q=9O@ zN9r;rCrZAhUEOO6YnswToNNRa-|+|U&N#o+|*#d_@OK0NjV{J+EL9rS`bR&WU||a z-_VltLx@LT3oVm2%(N>R3MM3;CVfKpGcdYK8^mjVBex9cFxM{an5b=N^f=5MG*u;| zyD*W5@1(WJC0J`dZjhy5XbTMCVgC64{$meOM4mBU(17p#{ont+{qisWvi;>>{-u53 z10PU5l+W0h{pzp&s{Q`&|GxeDum8Grc6Q3!Se;m@x3||r)9`!c%9VWCfN(oAsKcdM zZBQb_i8g#Fj=aK&s39{|_NS!}C;&}7+={%lD|NA{soXX+mDv@ogtjA$k`5}Bhqli9 zb$NsxF`PBiC{2)XMubYK)*m}K$1#-a9rBFryD%z;zDx|}3pM`9m;OfFeT?Yf%2?4! zKrScN)z?`=OGnswSXJxs^sCFYTd1pBve}rbrx!?ik$)s*X%k~3Ha>7pX9lfOKGnV; zM<}IgElN}?fcuaP{Iyl})~j8wP9%Tx^7x=H6lzZ>kx(;B2pR-}7D>=Nn7fMrB=35e z5rjetWl2#HX2y5kO9@~oJG4B@LSBwQ38mmp5n5DXasK&(J@(RJg&G{vSr188ybF3< zrc*u+`Pcq>=4R%HXOSUQI#WQ>*XhFM`8!ie=0}oe`g)#uMX>WkDP~jpE>WOFfh9(P z^OzQ9)+9Aiq<+qXo6nty7#Zoe=Le4|F!Sf|4Biu%!-t=lH{w0r4s*M{2{z{c^p&z3k5oI^*d zs&(>uEU>@}Fy@KG^99)15?lK4lHs5bKU`)OV1)h&Z5`&Y7L1;=CAJucdU5bk5Z(*H z!$2ohFL35G^ZC?^I6fS#GF#%HA86o*>qzmKEqNQrD{Ucd0Isvui}nxRM~YDluCulm zThD0&g*(s*#)VVpq9YSh`WqUouV*C4ROy~u_{C*)mtoT&#h7o>O2r2c#&)ixz^Gk= zz{YhcT@VVWPa%Xd#)+lM*qo*NUJw-CPNqKD3s;OyEErISQd-&+pl@-Qo_m&RY~y-V zKi%VDUxq50wW}Cod~8U*7dGLcz?DzyV7#dTtDRK%1o2Ni+ZUG0(x%~3#*Q(FkrBh? zfDSWW)hbucWil}HWfA%+T~rlF{v-mXI#NFTJKZiA{W#FEQ46Ht`pzdUQpkXP)1Gzq zXFoq~|L$*JRSb2>s-hQRGg72_M^S?k$P}+B?8RQig#Y|~*Vu~Y8tdyDP|H2SU7!A(7Y^Z1FLg7Rlb`r+( zc$jLff|Gytv!8V%{1?9P1^b=f`5oK3b*r5@bH?ux3;v5={Gx5%yvg4^(lw;>b0++t zR!5EeYBgWtWg1X*xY9>11!yM{{b5W82h-VWxT!X5P}{GN8iv9c7N(@{=wG!KR&ZqS za8_uPK#)(87x^tbNk&#*40&nf(P)dDqMXIS_Vind;G2Z1r>Wj1Dx0iN2K0e`jiH)0 z+uAr{Bd5;VIeGoBkW3FaZ-5=|)7RNKG&b1ljez? z&X!#Nok0J^IVrbZx%!j(pX>F^SCX}6(bXvr{T~}d23Bns`$G;s!f||jRP#m%@#q4% z&v&#&?3eTd>37P{+lzi697e?~zV*~G`>U6`txfYbeZ@P9zJO0%W{S*j;r#0iV1XYo zzhdvuM@hw=ho>_?7YaW!hj1sBU+j75eu)Al3S3$gxL9*XoNJ1eAD=IT+VLH}W4`eo z`EZZxjI5#?u!^r98nllc>$ji1W23b+)P~Sv&J4mkf$vD}mXiz-4XPCWn1npxT!M`C z7p%W98VRuo^&ZDg52~EGNb)F<5TamqtwjU5HrMg_sP^hneh0V$tS{8819S1>Hys#H?&tO1eb45ztkp6QDLbk46aqO zs7#7qVh9K-^Zc-m^G}#JX14eIa#=j6IDZxDdy7}f!g8WZW66Z*y=|&dhw8%pj zmfPEhraanfY;4r-xM8FHk&MLu{=dEMhsRb+1{;$+crjYg!^rfE+qF8R@e99jovmBd zWFx~ms5v<}Jk(fbDA6$-uo-wry*zaZ&vUM;*IJr6TS7)bEoe|r4*bNUpO6O)QU);8 z^V=O!R7qqM=JgbYKFQqlD?%2H>u z5~etIRgB1h|CMKs*wxxSP@Q-#1CQ;$MTbppR!nxv!JC~lE_pVc?!5C(`@6sUJG<|` z`|Pj&>aXmotFE$_Uw+v^KL7d8+oyl_XZ<%jP@Xy5<7IM#xwKa52=U3s6l#Y0ywiQk z5nE;-v<)eH<`9%5NpGT^q#!a6;^Y)$esqrHr2zQ0Kgovt=~EXxF<|oWrXE$A=SStC z+%;CG1tx{Js+_QsTF5!rH7T!tb~}aeI;>0dDKciA?v2RE$_{|FO*(g>uiF~sEsxU8 z`3hq)xYw$z@iE1JA05<=fMyxz8B@h{WjV1)rvkS!jNYy%7NT!j|7Foli)%&b#=JIv z{Ws{!EWAxfPn^w=&H^6#ACu3d@SRovMNiZpGH5`;{AwtHc)}kdXT{ z7&KaoA2_B>b){$4y4);6LdgzQ6-lLcO+GI$_;4Gk+V2Hse zjSw9SkuY6CU*;R#frZHhLvKKy)pJt0I3DH16b;QF8N3rDP{<>^(&V`zYwC z7n0-bu<9~y*uW^l99An2Dejfh(xyO#jIpsFgm3i^?{8!Bb|2T_bAvWst{C8Db@DjX zAzE&Hj|yaHVD(P@lR;y8!Ybs^UO7E#gpjF_(H=!E#DZPgbXY3bG530kjgnkPezqVy zHNJVBIOhtu;EHvK$2Xr`WPp&dB;!pi`JbK9Rc_XA>xy!b zqoyP;-hJ~X`=Yjn{>IznPD z-@VnC4R5*SR{I}c`jYLs;tE{_kKsy{iSZRL_Z#=_wFkfdpnJDBH8wPB=qv1e7*o3k9ybFh z_mu@+(f_J6XNEqP+qV~(RZ(!th@SeC!-7&qKGee+olDRsp^tvIWmSU>D$G^iz^KP` zZ^IFnM^& z>c1=uME!R{vU8={)NK&4Yw8uwHgR1U8H+hg`HSgfa0SPZt@Lf_zvSadd7$5t;N@XV z=%(aElJu)0USBw*og+=Ee;JFGluTtN_1CJ(R| zOgXSZ42C~0?<5#Af50MaM7&Ux5nQ;3@Bu8>D1449_mu}q3w3fOg1YJ+4B7Ma#e`Td zF=804$IO%moZ$E)f8KWiMb87Ss+Wiwy}zMLMhKF!;))C_%w^h3`H(1&w()vl*hjFT zUb=_CM_akzqHDY`GD4V){!^k!xmIiFTCol2P}Hfiw!s?Y<=)pj>IQdUE~S(fjC1NG z`VY$hjKacSM##$nDqWl}1?W#AwT}Ue3eZ_ybU_JlIXK$cA$^A_$@?<#H?>Y=&9#h{ zs6H$x>!QHm2(EY^hA~zYwDe$!P=NNT)*^GEn6o_NuY7vUYUHt1TQ=av_DLz>y6gSN zJEmahZ{k*h)f_p6vZoH5yuU=Mx(v_=W72ty_z_7YbP~g>;6JoS(fN6n8dl4QH>A0n z!$j*95)IG3+2#~@G(2%sp0z{6L)NTt8D$tH#dqIM`Lm$5tRIENh$-vuAF`&V2B!^e zbTJd{gUm85nde>dbpKLwo&C{2zh=)K8?rs}GG`GMZ}$t8=vQ@;RR_g@-sl>)U%hj! zedeAW*3nYqG47Gc=98$$i25Hf+@Z7Ai5C<4B4#qr#OxBWlbbmy-5&gAafH09tIDmV zT%lq#7KXG4J*qQ$dUTj-V@;V|slzuPJ5%B3*+8i}!73P2CQ*YLEk2%8y!C#aJloz- zZQHkR^S=mm=)Op3fr-smrc?u&fe?+KoTAZc&% zK-X@L@^SB%RaJG?-+e~?h{dIH8y?cPSTwty!hzEjwx+Ghnj7jAE>n7t`gLWELMLgy zpODA%s0{7uf%>iYhDO8#c3UUO$Ka>#!ISz!f2yJkaZf7yMX; zbo5yA<)+t*vV04F=m3EXHG)qL?iSHVv#B zef1p^**o);Z~?+FYmyt16L`O&56Z)MjE6SwfMYavM^E#JFR&=el<&%*7<{N#f@{o_ zeBIC;a7AFF(rnvXPS4Ob zQ?Eq8no=1oPC!$HJDCcTOj9%v4&aU8;xs7Q2G9V5c@S_iIJm*UWf#W-T=}DI5m@ks zZ~;e38NLybu4r}aewY*t0v<})NeQ)sQq&sc4Mj%`G|ZrU3H}IMx#J4gC0M~rqDo9# z$o2F|onPvcCKY2OFoC+vpTI=8#qGOc%u(iLmoz^lY{RS09JiDc_z?o3OtISIqGLY3 z%!@EXzEJ0@fV zTpqU>1DZ4$6a2B8heZkGBVUBZkUihVxquX7Tq9Ewv;3-U9rj;-=|=nd5BJ%h{qUqt zL@KjAiY-B0cZ|J^*~Lik5)Py!G|Nl!YHw++wm<#XSJ%sD75?V)$L#hUE3IC;2?8fcUj&%>&O`FI9rL;H{pg*xwg584+GBTr2 zEk@FG;Qf18^EYL{Pjk8CVw4i{pe#l%eK;oOqv{$tXs8EOD%?nW^|%elQym8jXWru7 zgX5J}r=5qb&C-3<59=E0#dCzvDQR{_6&75eY}Jn8+j6i|^^_ME@1cMB@1Z3^XO2OMsQGE?D$m z;^AV9Cp?x8qHq*qJ3}Y_JY1IOn8j5#3+3lJyAbgZ4ZP)DMUs|NlntUmhC{Ut6i2@}Glqld7n37OHq>>5ojwy6W=X1yq*n}~-v#<;Q zl-*P^fj;zJkYy`fIg(;akat#mNhp`mbJ`8ga3m#XUKnK)IPPJ1=Dr);Q^J}XrIioQ zVv3xe6>=ZUP7)QdW&aSaCbg7u=#P*sU9>J>cRz%|RE5ggK?TPQoyAg5lAt7zc3#(K%% zAZ5^3=~cIwD7R3(z}Acu9#r(Kl_Y8Wr3+E+loyD{ zoDz*n+zWFE9z>dJlX;oBg}HmFBvz{DKc2;KlfDx1r=P?$&n_ClOW#ny2M)Zj$_~DD z(4KhmNjJ8)w6w?=Ql-Ns`_#3{?0SWtApSGF2#>Wm&a*_!-U)MbXc-JJRr2KJpvp4? z!#Z_7c+9#XCG&FX-FQ#8CL}Wq4h^Zzle|(Lg*SY{NZ@@8`0s390mLB_sO9%Xm6;cz zDMTk;IL0~*YmGA4VYJH_g_lrO9bb`~1)No_HTDZ1xyo+1a<%=_!w2pDmwT+LzTCFd zR#=TfNMK~i#=M??8&TaV3E-F(`{dF7X0NP!)fM*J@9VUCZrNm=D;gz)kBKK}_X`&J z1*PD58SAm2S7!lE=Z8Eqt#*aiHdM=CDPB0nO11j^jVsFRJIA&2Qh6aIr{_7cXCAB- zKYijzufomrSz9d*9(q;x&&kRuvC!H@-`7tM+OsDHY(;&QU?k&;4#4zEkUS+1d5OFV zaT7dGd7rjes~u>&J}o51ohdof*@BB;dLVB? z%B1zG1!pwR7e;jUN<{9^+IlM=B3`@n!^%b*80pcRUuk=`Z}2f#uJ9%m z@?alVD5YVAO_~;u(FP9f)(FZn`8iKge$DGi~$7zt}5(P>WC{dt90r(iafqm_fZv{Cg$O69mOpEnA^H62*K9LRHCSHkA z6%~O5bK#Lb#oX|8Cc&5juM5xoX6hptR$!YEwlEyeBWz^0X@Q^T*%Sl@goL?ZUAPdg zVBoMSJ~HlXe&H7@;^p#YP|cHi&BQh0RHhYf@P#fS!K^fJPkw}e4D8H&!N74=jN?a#fqT5)aQzLge8bb&UQWzb z=41L4BNYQ3-f!H);1SbW85Bokd_8$?z&cm8IA2EIiToZe#^Skq&e1oOn1jH9c_YN^ zjRqdg6?n}FKD0lA75xZ#fII5&`p@nO7MRj3lzf*{Vr)QDXg4^h0|ezETCETv9Qqmg z;8Ny=gmB?NPulUuU8`)zhBo{7fwT6VCy&{e_w_37*o3W;$7_d9=%g=3UO^i%Z^e|; zhPsd3L%mQka^P6&2Ad4DxGLAy; zG%j<#zW{*1XT#3TVJ$?Dsp}69Oxo&}a=UHCq&=+AGFqF6y*ejn&}d zO_E_TfMHlC91Ttx<6^GIdSxKfb4F^V2;CvCc=CYHa*tgHvdP;mD<|byPuRl{`e`Zm zFQL8c5`DR;NugG>0Lhrfse$ovzI5h&`YJNe`Q|knQRy=*z<~3lI$5?XEuKwRtIw$) zYd2G)U@EHXBnQ^G_qt{QH?)uSV^&p2C1kzP9`#ckhnj6b@04rYx(7CLobyNWKR|GL3kbP|JdSjRGFGRxu&J^oDh+%og8=8J>(k^&tCk0|mWK9PHWxn%2n zu__k4P1yb(#NdVD!8;hteNN1Km1os@sIaqIFq*P+LsHUYE5HEIqb>Cus@hU3uNTSh z80%Lw1o*k|U~&b9?eAfX&GkkeV$1N78scp=GCFDp4!mY>$wRrPr`wgH`uchg1#;D% zs|;`DH{X0ivCsx=*Up`;)i`xvOc1VM3Q8Z3a$vF=*NnGN;5@fe0CP-^=j*AZ+Bz&k)y}lTfRo2 z2G*`wZ5viK+u>8aGAhc;QwuG9>W|$DUDH1>;2{uJD&Ka!8~UbN2K>~Q2%U2J^l3YB z;)EL-R&;b&dq=wt$i*0~1L9N%7GufFJ@O@uwW}`R$)eL_68CqxwKWD$;T(#unSNW0kFH<4}1Sj%DEY@O$ZbDD~=`Ka(l3nng=xNKqF& zsZ3vN);9)6yjM3jn;)L~RF}eU$g%}m`KVwlC*kQIliy43hv)LP6)h@pdruONG02l3 zv)HaLQoMWhq_x*5l#D`9Kt2p>Eb`239NsLYw@U%~RC80k=C%pP7N=9@L7_;8>aUnq>6> z9pa-y&M~ZpT}l%4ln3Etbbhf-kM-N(Gv};UTJieMI-8KOenjubv$nw5=Q(ud1c7W1 z4mFw~D-^1z?iJIg3V|;OHlb6YeDd$j7gxtNzoPk>Wv-!3=3>?##mlE*)0xCPof6&# zIgit&c;5g%F7m{D^qpiIBtTv0e?FYIukx6dH6`@N_kt5<-U7{ zVZG9|hq%%=@8PlK5W3D!JVQkzzYyw+RcCoZ>piYLhNtHfT9Pt|7wVo}cqh9%RV**n z=L82H`f$7`hwCg}Nzb6%1a}YDPzWX;>C60@e$mz4V}}kMvfFRF%^DjUZA1r^LTl2f z!pGFq*4d8j+wI9Go=|-EL2^)M{R`+;c7V>kdggc-}<)t-;}k=n;rxHxpU|2y?5PZJAF|o z^iTT6^UpnR-C9Vh)y}S=!9hEtvhTR#cDwePYh@5sYgcgcJ(hmDTv0Cmx)v9Zp_2*`!8HFNAO8N`bqLVch+e?6(x6;^-M2ns=z%2Kz@GZbYGASe$|9W0d3Y-3o<2S-rB+ zc5iC6wx$|uYOM8;6@=RH!~8Vny{tH&6~Sk&+tAtNjdy5)AKFBesV^%GZ1mXOCPTT5 zQBQO!9E@(`z{A=@eiFK~CLZU*c$vCS7@1n_I(v_d?W^lVbLXLYAOPlV0 zi$wv(0^@)&e(H3$kN1|ACXMykWn7O_DkOY|i@sy4&}Ug7qW|-|SmGIF;Pp)68fX?} z+;dv|nqEdfWDF4QMDahoJialWvmhg3z+nDOM0vMKd6Uhy0-tgK3DHVSxq7H|LA zUd?@`JX|IVcVmw6TMdO%0_10kSjfvciI+&T2}n6FEZYl-Tltk= zwspC9h!YQYsDIGLC5^67I1cnd43?KVX&GQ6GC=s2M;YfX{qb_~`WPjP+^z_Qp2gMt z6Md048e}0LUi-KXw8$U(T+??^s`#!~$ca-jwAV=SU#~;s@OanmXn*dL>%5AWAdj+# z@%9o<^nH|N4#a-!u}9sw$ib2uH*R!AnyN$pVR`+sE5u`c>Y5N77%*wm@d?5_uvJS6 zt~eRSDt}4$sn_Vm+F`$9pR@SY-8$FfRl1I>ZNc&6Wb zn1yA9|4d|=J7`l3HN^BC6F+AzYmujVTT`{IUDaqe?OyFK!WYK17{>wj^u;Q*F$aa} zZBHJCKro!6Gdwin`~|plzfC~j))#0ZZ`765XdZi8S)Auf@G>YiVOO@v`&l^rNdn^~_zTlaS0*{(Lh*q&qxwc)*tr&3yc3dFvOlR$fWvyY8I z9W+`c!KYR`Sr{A8pS~Cqe7U1zg)e+}Yk?8j37D98H}Lp)C-t3VR@cx3o3`=MVSUPI zj**^UNkQe}+ck~tHletvBo5RZl?;bbz08g4x+gh}a~J5MQ#h{kTOtI=#C$?_S>!2` zd!ve7bhKYGT3MsQjcNyzI-;N9P@#UN_d!!A*#?DGnx51d4C3XO>IbIf7VlwZ$Z2UO z+IF#ZluVvZ$RhQJcuGEYy_Ji=0W(h=X+h6cKWM+Ch@6ab^8%2U_@a-9mw{G5&EF#r z=J0SUe8;Ptj7t|K3X~{NqCklPmnj9{Adx>LByb)SbX3@kGaE4yUy_GG`K|ChLv+W3 z#61TSz+y}~-iNWxl`agdD(y^izU4y@1UbRa^2&w56`=qnL8Z@0FX|O=or|tW3=5+H zLd7hVPYRqruE8_7U)~@bG*cswFV7vRW$t3;uHF)d@IzBChl*bGc92JrG@e>{w}-K@ zaD?cR*mfJ`R872gp9fOeFpltAL}BAM%G|j6G%J#Lx-)Fh^XD;qJXher6{Bu=2MjLV zgfaV=44E&!_>$dw&%L&J%VsI2qxuVmMdqDqT**X}Kndo;ayxS5h{DUfX+6C?zIA)k z=1q3xl~-mA^W=N#)G2%Al~>%8m@&6y%NE;x)oz8esI@2L<&2S=Fe7-H^P6`t*gpRF zVEJnX#PS@F$S6tzEqR`VHFpAbG^i8vjxi7u+l6yJh zalLKZHiu=G0-mc+3yu&WwaVj#7hce|`9Uvp`}S?};NPXb8e)!O^gnXssJ;5yt8S>p z$d70CPI>ube4pU3&-r$!OSkLHs2OeN3nEoD8i+HEYw#!fL494lyby!;F~(pPWY|Hm zYV|4^Pe(m;(blb7ZU6rLI$(9Tj7V+XFV?SLZ##GFbgy{wV%G|ulbbhh_A$%i3f}7* zWoSPrPx}#t9>EY#zvbC(_0QF-R=MYWLt}%t`3o<;=w9*|(`nL;8#by(5sGS3hW9Eh zK5eikbpR}j0)(Ggen}=K_5Dd5GEJYQZp%JtE@I9Ymv<~iY`kpMyuNTaEn^++m>!>% zx}k2Oq&bX5!K7=#FSr*I`7Cy#49*`)e7AI?_?PZ0R**6&E zJ`S6NJWwJ_jpDgNCH}~d5Hc9<_qI*iu2y+k%X27(k%>9LPch!sNe(Eb#is!D9nxY^ zh5Bz@U9IW0 zh-~R*i2@}GlqgW5z-2=L_<}f#cu2w^_;TJJ_#sc-*px6Pc#Zyh%7m2R4h8@e%5dOU zu*IhZ{K&L;69EgMsai^LV2&Zf{7;0iaVft@B~^-@I-4MY2O-`Ac!c5^I9tM#2=6i! zbKhb(3ossqz*kegybg;c>PPvK;sUO-2s3zgOyKDt>U#kF3`z5Ihmi|c8K3Y1gpbHWBnaWG z{>=JH&il*xg7H-)10v%iJua4Wot7@{K^Puad{GXKi}X&^PSghwB(E|WL2dg;`( zJg|AFUMo%d&_Ja@VFid%j zV?byA!yy0l`|p?0d#l}a(@k#Ne&o?dJ>17V_ulK?$lv|$cWs-D-K!M8dsOogak7ue zxc-z33sE`J$792w;%Y%H|(yv-ecEYd!72mlpFL99Xw=f z*R6H0<||}mJ$m%0kw1Kl@HkUa@K4FB`sJ5j_E07pHf&HBiAKlso8SDF*Kg0BtG$oz z(?Y^Gzx6G<=9;VR7KIb(?(Vi9JoJ!<-MRIaTLe4lbP_?*UFWj@jiHA2;IANUL@!2Q z^lXoFFtPw1<}A9fLxRN;PLFSDZgOvP2A?jm-|YPap-x86q^j&Fnllk7$)2Y^XJ7((2Oy| zuAUY-SlqU{!nO=g*_*xPc5{yOVH@bv!N!g2Wp3AjWYbZeKn9N`iVz@^p zU?IL(qOURMqkEwvrVrTWnNYTaT`E-vu2z{zaj###S@F4(kZnouu65BOaG<*jG6i9iLTeH0bEy}MgL9L3!OGyFK@b3gLu7k z1`7wwrRiFze$)$mE9Klkc($1-kvEk;x;lANJ`3>qDbDZc^XRn99hKNC)S%#xVcqdo z`_h4sD#~=Ns@8J%e|Vs>*fn ze3T0!FBD7&DWe|DhXzP7)9?b{DS~hJth(5VoN30s(Ne0k}Z7Drq@|a0O?tmtc8L zdjvyztWD}$JqFm=2EY~*kf2lfwEBz$sSz1M>3E^9=!Z*OseCWNpCY?^^;cD81;9(N znu}Vc+_@n)>tcNuD7sc0^NigvCN%DR?=YQheu?s@)o1H9>-CPR|GK-Pcig-Tf_F>3 zg0?gK`Zb3h?wPWUts1*Y`3UQAuE={iTsm4>D8O(a<&)`=J~OWbo<#tmQ+&oj#h!5y z*mvSKxPTMJs4g86$-$5qC7E~gam!LV{OTX*w-0{c1GZ($7B^mQ*}6qu!^5_3|9-pn z+G~9=_1Wj1m8bDWd;h)f_uT><*hv0g``Xv->T9lX@AF4xfIocru&t8UF>@=1P`ueU zDWuKXwd-`4W}kZ(-+ue;Zuo{STefcXx%1g)pR?`qI&W$uR;{+GOWE3cM6VKy6X(1 zJ_oO1%pkV-Bab}lalzZ=4UHn0rOP|fVoSdayvd>cfci&S+1fmWnQzrjBSTui=u!J@ zkr5>9DBzn#8aIbJQNvh)_ALAaI!9_V7f1nDo3J4EqCC{uxv);{iHCecLz^2FF~I9_ zNWf#@P+kl|`h8-0^}HDi7^3#?+h-5|=!e<`(eC-RH|s!E-Pf@Oo?>?4YI%G@t44XL zPAXnp5wUD}R3wF^&t1A^?(&c@sb__LhJJAIT8}xEKE4zZvak0zNvA_R@F}1D!tpRofF8NgzX7qEAvX`hx0!5 zLv|#T(jrknZG*9WU~tI48yo9=?oIb~#y-0W`0ni+5YHM<&T%O7^E7I;czNtpm(Qc4 znjbi%v}$VD^@95PI$s=NCMHbFpu)X0Xg*{I(Qxk>Te)hDt?At0`h%KZd{dtBijiKU z?GkjG;CWtVE#j5+3O#e|@ILG6J#1q&Ydk;reT8DR7ur=qe~S7{&}p-A;`6D8%;1h; zdVqKHl;-OoXNJxTJ?OW{bC}r)KSiF{#mm&0i#ahxJx#AVElp5x+=m-3$`=b2VE&;h*fNg2(7RdAN(Y z>7n1yLtb{{mY5VwG|ikb9>cr?lV|9OfnoF#??*UrrIrGe$OA?QgCkFpGk$%;@Zvr0 zW4J;X;5**;EsDTOkcjt?#PPf!Ul8{D`UX}$@q&dtQdS^{d!Q*_>IiJMUR6oG0$!16 zgC9f@u<9kD9vUR|Ql_2|;vlBO=F}?)5@}pv^1!-alE8v131eSW);wqeZQ^-L&t;-j_9`x{?(F5LqCeSUdrFW%PSn-bt%_#aq33DMR-Qo4t zMrV|w8f_)-=;&}`IbLz2x_?3kTw=85&{gJA>J2R@j{`G1J3Bq32L|!0c3&kgxdu1< zA2@KpZkCrkp<_6JlQ1QXGSr`z7d^WU@O&oRPq!8c$h(88K%{4iQqb7@XzCt6xep&aqxSjXkA7sg-g>Lus95ieJLVRivy&k=#e#D0vfHmx zZ9AmJ8FpZFYN6+@yY6zHO#I^`M~~VQiu0}(&V6y2T+uz5TRf(7va@TMpk5qJ`i0t> z!(glBFVkLX)dwhXB{8$}{|vz!#rML7SbTEvryIC-0Hk^M4{ufIYCM1T(C(eQ?qmv}hy$3CAy@9%Q4i3p>a}K~Lm4a%hy3GP;-K57)<- z12mUU$dM@Mzga^zw3(1sIfi!1Mb4odBrx>E9NkNmLQX&jjb+W$f9dE!{&oFVd1YW- zuFKcG1dC27T%(?-221I`;2H)GxaRA>u2bsWpeN?m3;r7L3%YVK{TKcmV6(Vlq}G)V zm_?@y<%fDD`mf%J_n`^T$|b|bd)@}BI}UNNUM}xyVMl6xR{vGrJO@wmp^oI?Z9SdT zE2YyS%R?*L%jqImWIEm}7vHD7>9XaTgPb_DJ%Tg*);DS?te#iNDFAk`` zs;_QSj5Wg86`qlcqw^B0n#ycvZFY62)|44#mWM=mxh$D2Fx}su)iI=is4YY zU!uUWp@0Sg{39nhpAlcdSw!PC!;{Lylib!F$D#C1H`qw&z_^4lgFhIW3ldW!DaMFk zz&3A5HcG_3C8lH)DtN{!doUsgW)*}q4yz06#FXWNh4Kh1*BIS^4J*|sKOhLBbfzkU zOYk%Z-rK+;=m@~eibf}3ryUl?juAO9P!}3R8<;D?k=ILQkB=s}Ca_*F@)a>z3_x%K zPtRBNDofRi@?9v9;O{Ht;Di7m#tv?#%JeJo~KE$U9P!TZh8Xgt9~1;63l&Vm{{y zS0Nhb-iQD+ZBm?f;>^O;poJ$d zE?y+}E~78#1~0AGA_xgqUfVAq5%9tql$@{av8-0+N&M|k6v zd%X9)zCOEFyD#b+>Qx^Wr^oH^p~JplLkPO%*uwNt#wz3;9UWIV2rYJMPF~K5{ziYQ z6(7gTmpbNkpCwg27H_@(f#?!Sfo2%Z174Lfq-#ya>h-rmM)(X-^%&j;p@F3T_z@p~ zP#^zTLKVBjQK8*%V1hTcG&ic5ipvW;BQajw`9X(F4-JiK0Z8Fh#J|Us5BAY&wfVWB za$DJiLqetXD%{Y}L8Z3=f&C4=difhjxHCpn05topc~rhM65i0*?9 zgFb~(*A4Czs1$TB$&Bid@cmrEqp6D{FLIf)IJYx}E%5^W5>9F33)B11L z5i9Dy;1=^m=i+^6FjN1P?o|8OByVZqv)PLFW41e>1tUi&W|I!BDF5@n*mb-ifuJpO!20R`qgI zJcf9GtMpN#z=fp%qh?HFsX_DG|FlESKk9fdogT8jan2E&pUmieRj|LXwaLBEpFYJQ z)P>n9RNl`EenRumV}d8RVxc~dR(;>5MypmBxo1x5Ob;Q*bX^Emprurzz$Hh4 z$PEY)$^e=`Wxv9^Vv{NaSsVfS7EdI^8%zcM<%_!-SJ5uOXsLvG;W5doH*wPg6OtgI zZDKB@$bgec8ej-3Fg0gja4XMTurPQ{4lyAhMMHOFcEARMJ3>Y_UtpuL-wkg`B@mEY zcoHLw3H%}~Og}2X0oPn(8_YN|aLNEa7{-G^Kjw)n5#gL+3zp=<6u3yJiYbF@!t4<^ zsFyQ+F>`VA2vS5SqMRDz;d?JWq!WrUSKapj8T2 z>g900;1C3kOdCkZu)Owix@PJn)bu_EJaFJICTM`SaIM^w28TE-iLQj;@@Yc1bXK5iW!SC&xx|$8XGy{)Uh|N(^@y zocntFrObsGmyBs>f9lj}KO_-lFk=Lb8R#41C`PXzJ@O;_IVo|(-R>UHVZRy%<;na4 zt~4X%F&}vU*F9!~I`wtQCQ>XFI;E#iWwm+kJOhE){PYE0^t=+h@djgr;OPY&@OUM0 zzgFIQl!wbcNm%@ z^0Xcv9&``!J{jcWc*Ps7zJUYKWLO-Q7rB&R<`#^AB#bzCC{hNotOK3HZxo@?QEjUg z?KrPsL_1kX;Ed4?1-Q0OFZ75)!QrW6rQWU9+{QbU-PDrxq@(Td zFddYaUB?P7$|!%QogM(o7{lO7*cWi)na_>-u91O%WOPJzUg4h3Z@#(D4@o_6;DF-D zZ?I;SLm#8={9S+j^&avD<&0~-9UmFbX&3VLM%Q;=pSCkdscUTup3V`cDLtdR=yl;U zW&OPa?j2jE_@pS$5srMxe~;qDuhHTR{4w0~8YXQ$Y`r}_zP+AqL-7r2tIIjL@-13% za4x$59(dpZyW$ERZmYv|kx%e!=U`qIpYC|q9qL!a5Dxub zOzw}1uZ?M;it?HjPx{@MO5F1(yx|molQv ziKN`Vk>@e$^1c{8)4vgGBSp%(K`eu7qWCHNP+^%`V6M^B*L=J8sX zBL&zhkN9{P>geErcDzbP65ng6uhu--XJ`85^)9E1wJV#gxvfL-{c9AGX2hz8x~yaU zI_VHNK?U5|9m_7=fB5p3?LYp<|J{xsJ>rYj={is+LRztq*(~{MbgWm#(q=o^Jz@jH z!9W|M4f)wxk~?ugg75OjB#vyz9Gp_U!gJTXf@2dhWmf-9$)qA_M*o#g6&Q_fq9e_! z|4No*)))ThzqA*+WlYp7>a@A~uk=IAGQZKbXx+nc0(+P0og7+1|Rq@rs&TEiTy9fq6r?KL3i$4tAiS8Nn-@t=8{{-0l zdQ}k`Nacek?*>OQ8RJziVUbBVQ&yVa&uWMIsW0j32@B;I(@rE2LANCY=8S| zm+fhonJ;BzOXBMM62+6|ljlNUL$0OI5(O4O0Xm_0o!g{ccNDKGCt8c-9`R1!5eNSi z9MT55r`rp}N4d$OaV17x4k!s8(4ou1sELU-T>(=P%TWe?(kg;M!Vn{xZqU`J#JB(= z&gcZ^!hplZVGy_7A=u&hov=_~RUXXEnWEQ8_oS#+Ov(EZI1CxehMZu?Fz=YCEHTLu zB0~9sSDpwlfyq<#kSGV(99;Ft1(O-|3WAyo5eT#i4IEbGX9QZ6<6il?=k5N(*<>ux*Wx%~+|eHy zim_iZ(lBUoxFLs8e&|CVlGn6iFH3O?<2H=1*bEGVI7W%x+#!MC><~|bfbQPxQUYr= zAF`6K!QkbyU3y4{XWnOUQ$8M%;Z48-ZcL~?$x862OQ7tvwJU6h<}VZ%406@g+KQ~Y zkjNu?R@UNKD@EX;haPrsZoK!2Xn$Hx=^0VMFC=gwXTi@0CofgkF|IZS}?9BikI@Bu3^lVS$zs` z+JnUW=K1P+wc3$`(B63c4Ub*TVU@%z4-83kmD4-z37w#&=c^xh&NejGIV~VD_ZeS! zo3k)No2`^5x*Oc}KJyQGxVMs4nu#I1Yu7H1nZAGje%~2DymsnI{RvY;euQHnWDJH@ zVG!C#ZAU)Pkvu^R-o-*fychB0h47o2!(Rj^!%yG|!CQ(f=p-0%>6^f>k>@mRPxANm zF8yR&iv=ulz!RvOFKArMNzF05xF67mMP5R>y!+kn_QQ0UJDz+p7{f7W->k!Pw{6?z z#%*?hRV!2h@H=er z|FQB?7=-of?Y7%*vwi#a`vL*)EXM@iEZ{{?_hnj*Ea`o$avA1=?1QEE%lk~2p46+C zb_#P~0UR^*F7Rv~x1a&@1O4xEPS7FJ0(!VSktVvHqv)mKpck+)@ssB)UNk9gd&n<7 zo%UJxuZM9QczaEm2vvO?6>g5F1 zB!fBX4>-lLyS4bdZ{I%qmw)-HeOZQg5fI@Md(c zd_55_Yw11-zsLLw9imY_mIXgA6YrjuPKoTnfXnE==tz1V(?ay$pnD~HnrKhrlk#{L z6Eq3Rds2R)|MEPPmtQaGw38{FQguS+avG#?r5tupmdk5CI0q#9rFI{i%jS2B@gM*5FF61`sSmB{=FSsWLf)ylOKBIxzX zm3r|{_&Tn-rVYKGa)_CdJ_;=M0#VN4pes9TsRNjCU7`LmslGa`UFO^)Pw*zuAIdlt zFUdFJ;}1(8B???13P=r8zcqXR-i<-`)aCnb++e@^gCp*V&UgwvG$6ol&Oxcyd`mbk z4JpaE3b&@~DqS>d(X+Kq^MnlbjMM-x9gbUq*Kn~F(hF+@TP+#2Sv$U0H%jLjS6&pB zlXOEF;9$vLHHD?H0S9mySH9>_{0-}OH1ap3lwKzOI z4c~@uhDB}o5XogSY((mmgj|Q$!B?=m%ASHjCCk7g61?PFxm;+WdsABB6bvdF9iGkX zu+cbCIH&a8gpnqdNI#kRJ1hjK_IfmX`3u3-VH0E3%rbNDxDi^DLP)dWkggYSq{6h# zZG!+=?9&?=q0LF4d}-k#$vqF`kr~o_aRoXHi;%*0Bo0hPSn)YH$?-yeQ8Pp$&8t39 zXR*4_C1>-8-fWr0+ad~U*{7vnPyo6x31Lh;a^#4|z22<@B{59lWrVTO4XILU@R0Fv zND|!p2L|OOt+>}(8N|T0LI%@n8PX~$gC{HfFyyTe4%$YFL9SmRSWd|(Jv21vMrypp zG2Ded8{0!2CK(s>pZe-DYf_k)J~^Q4d{k?ytJJr4ZOB{eV z4u9>n*X&cD{G@G@$A9qFL9xY{xFaahC=^O43iNvn=shT^`}ZloDyMTW^a53;IH~O# zEWuNX@+wpgAusT>Vle=ZFCisZ6qA4pZ|WjLt8gjfyU(vY3QQ;7N8!hC*`lyFH^~_K zz3+Wbc$NDhqr~F|Q)mEo=@- zT1|~9roQUXAVVn&1(c0Z^Cg9E;Sf{|qby3GWWnrM2;dOZ#~yv$jjP~9IUN2*xEZdY z83@r9Ji|CoTlux)$}@lDc1cI>dn9(zn)CoR6HM7|g- z>8mY-#8E$C!G(M$C-tp7FUDM^VwYT+)Itif2|F7$Z`rKFbc2_AwZ=k?+KTyuIJ=sC zeL;%x#R0r1_#sZLXewIM?wy^T-Yytgpf!E#YVABA(Z1}$Sl7A1HmQGc7%t@!T84hR zdev%&;S7MBytD|0VnJIs%RByq@Bg5eF{&}ooObU$_jp(uVCawVTw?qqC$NA99?LDU zNHjP!Vr{KWK0Pcq{PXb*^H{lfhPF~`*A@M0zFxlhd0pshrsH9S@ZjtT;%oKIbe5&~lSt{&2i2WukTyPjF zJ63|>JU*M7uFPZA;(aW14vL5JT_HTmW$2g^FJHT|$(mYM*s=a9JKHsB*Q{13wI*a0 z&A0uPl95nYlX6riP1WL&EA0zk_=4a3`u+DySq-vI8XM}ydv)4DS0%&fSeeSK)NV&9 zzaf!nvB@>9d!=)o`5U<|tN+e?p1zaTDd8EsTP)@3iN&D8{rT(4l10=X!UDr=^$+~c zjr$rxbK)vl967FV%9i8xby!SZr0}d56)L2A5;r}-0iTBCen_-6#`%1`-i_*%5!;;C z1zRDn_i2T*LM9-~U}z8JkXNR|i5FLt$?h>7!Wp7X(x)cf>s=jDFT=0XSS2WxzDg8W zbP8Zxer{;oK6`b$ZCx+jBuRU=uCRMHHQQ@CJgiBE?r1}%N7w0{vvLG`<)juR3AdmRcl8|844ydUS+9QaexiHYqFeAlRLZ4W_Y*g3=wY^?L~{fI~W4*Wx-B>^A{jN;EJ z9~;(9Ij}jB@|<7UQEh8<#^1P*c=oiO4{BVsSJ|HC;62aS!r0Ct>}$tIywJ^SYTVF{ z0sp8DfH~K#x=APZr1qJ`u( zZxj_iC|=Vt zP`~bRvblcY#TVU^c-PLI9zMh~$oWtYO-*$O4$aclh&|ihfcH;@Lf*V=&pq>$wkdk>rIzeoS8P4}SkaZOLx2 z_uh4v=ph9euYqLX=JaC*dMc%#rGEp05wl$0W7k}BwHqRzeeOBME`QAp{umvJiH%bJ zv5$UChVpthI${tdQ40A{9Jt^O?jBhBjbRkpedoL1^}GlvG&nfqhJ^Rs{XW&T)!~V$ zzH#FQuiM@4d!HYkIw2a8F9({^e;$7LVf*K=e$@};MCl}C2#Yy)z4yI7XR;_jTQQ3T z53o>w^1$F46L8TOfU(`79QP11h<9nXy?gh{P&{n+D=Z3&HW>7X&Cepz-FM%uvVvDy z?8_q~<6%dD-Yq2*V9rq?3{iy);DnH(T{Lefd=hQqO0@cxpZy>gA*Z7Z@$nfRcNjys z&u{Nw$|V@yV~3Z~YD7D2dZum5+Ex#dK!c9Un9nzgw<{W6US3|AvRRm6(J7S8VgNWd zYUc^_AMyUc$rqY5PTXT~nYFRgP>i=J*@;4ZmVZ*;Q9a;C*~QPLSu1rl$MbSt;1Ag$nU|%};*Ntukk4aJ3u{7LvdVrvlDwsnEPTs0DCE z-43#Od97Wsxx*%_o9&>C>*sU;V4JKm8{0L9tNhXa2^*91LOM}8ay>H&YboR(7e~`@ zxxd9>QDWU$fG507P7A9GZ!Tua$ZLz4>4Nf_fBhF1SJ6KHL{Y6Ij2O zN06jkcr9sKlO_Mc_|ZLH)fZm)nR@^x_rtw-9d;myeY^L4$PwUDDpBCVP(Wv+${;;u zAJD2~i#*fcJgP90@&Mbgve7I&;< z)45Z+ckE=Z{lO#0gW)`dYK@*f)iWyiCi|mLZnRY$jq(^Tvm@di|KHOmou?q@YC;Xe zE%k2BPoBr5-(widh4=q;&nCNWYrBUo#Q~+OXUM+v_)+`X!9H87IsgCt^mbdX1=t_I zdfI;P@e{U3A!{Zyj)zpAogMY|$Dh1HI`y>u$@dOg*WkE4-!o<(-P&S5|LF~0H;U}( z9kQ=Ham>E-a+mFuG5;y?ky~p9KrT z>{W`@DSekHFkcEV3i-z_LcG|+ut+!s{7K{4S&M$d$122kB;I&Rj;Wb%Q6;z%1;PYY zt)4TYxXYtjWn~LbEqjVCP@+RC+_t*7j3cs}5Mr;sYT8cpOx=!L;7dq=BY- zGoVVT2n9r&=q0>u+ctat`RDDy2Y=upAy%wh;YN78J>7^dG6IWd@Ou9DE&G=4wJ5ImuARHwLpRm~L)?J8zcHlm-W_%TjLHazf{;#>$xO~< zk6?qhG~VyG-g=80rSYVN1{``kGBRq1zVc6AE+Ko|vr71$IC<3LQ-AcMANAE)7CsiE z50eK*eLU`omA+H$a{R;z#oO=oDu5fFzj%_usII;CI;R16aey-k<29b@?{B)-y@ELm zmT);N3|yndiW8#im<-?KwMP8|k9rhy4BV_Vb4}QtjasmveW6#tYs?MaANj~f{7_fg zjCTk_Lx`E+**fJ0aux?-zd>mOr>$GIx?vup9Bp#@ZMS8Phd$kskQV5uSM@{w|zXXnTz9^cVl{ z?U}_Hl)Nvgug1Kx7%q=r^zRWZ*41m_!{?#pf%dFe(k`l&FOa&zIV<$Ve~4$hcd(0( z%0H+YJ2O%l-;qZ+*-HPx}1WCeOFJvb?f|{3Ov#a zB-Y;LE-rQe|MwZedER%fbZG6 z#XA4n6ZRJm9=F{)*4XWP)@cW6yA1B9tXyNQK|K7m)5G?=AK7j{eeZ4?6p#DjLx=5^ zt}**RKd{;U?I*9bwx(P@@&4Pk+1~qKvfuvJ0eP`c+V$Jp?Vek8Z_j$^aN3p1iQP&^ zRyWzPe|TLn=JBwffm-QCi2{pG0a%mke;Rb|aHns^pWo9b_9ZmS%2Iz^blP9?86wOO zdSgh&j8O^FC_ow6Wsz%7|3r`AFeIIgl71N+PW_>XQ_#d~?vrcJ&@n!}9o1YILI zw#{ScByHTZ(bno72Pl#dw&C|KP^-N$z7qeOYhr%mJ&bp_hf47`X8-X1MTQdCIh?6; zodl4ie9WPpGTsudqDRJX$0?StH_n_rBaiCu`}6nSbyui|@;G?tkmH2`9(;HYLv5KiwFe49KOX8OZ} zly-oJRqC7DG3Df0EH44)z!kVAzkC?(E%ij-gg%6lnZScqVIjD8DWov&2ur5Jq^GNr zg*WD+rB^#}9VDcT7E{X<4&hR1gN0I>F;r6%yuBCt?s9;qU8y5G=LUzzbr!?{`_Ys8 z?Y}>8P~Ilu7jiCXTvcV;-reZ)l<)Y|I}FJsT)cDTa=3ybie`6d>&S)4}xM*eRX?;D(MuvgA0T!>W5yS7y+ z3<6=~`fWgA{`&g|T`nVhO=C+4GgoA0b`-oWu|frqf=+&*XW`ksz#FAo7mNaQz5)hCW^vr;L`?39Yrgy~dQT+G4yMqpc_c;rfcqi^zS#Q7j)7QDN{lvLJ z`SdzZk_VZ z|DQj++y3IQQ})##9k5%kT4$TJgY-8PHs_1apS8U$;^D2;cFp!xUg$&59<}ek)@wg^ z;|lxDpSjLs(7$@-PPVW0c>HTK5QUi*vh9+$ot=73i1=;|FD zvwwc@H8*npWPi6CjeJbcuSzAT5(VZ*0p}m;S^A??yzDPoFwrgDP`C zUgDE7)Vcv*bzp3g@Zu)S$s>)D^IbTjuy5VE)pr$~7Cyv;CxpuW0|#V? z-ziU39nz|WiMi$&FJu899(H9!yd5Moangt59lQYP7wPiDv(o1Up#bf!jNRZqKA?EWIy_$C z6?_OLeIm9+PM=I611u@0DZ{NL_eou-2Pyu}?Ugf8W*(i8!oxh%+A1Sotnf_GWq60$ zO9+<1FfN=g*>)6Sgi(p@whW2AI4G<8j*fEp_@!rbhxZeoeM+9VFT8fl{`osE*jK)J zRB>tLc+ja2bys?<9LlX19a(EMWjFtYG41P{nTEaGo(I!P+?)ddZgdI3ICT?q?e{*i!#YbMsDaB8(u+M+@h&}$l-R{P1`n>OmJ3VH< z`Kg_@NnYQ5GMxOUzkSO7`e7};Hp&+Ez#)6|Kiy%sU)|~5JTt`Rs2{c#$~$nZ$6l9F z{N;mP_NhO6Ixwa;NA1nu8nQq9-0ikq;RoKkx!(TprE~Uc3SYBTANV9tVPfvPdz%~EUp{cw_Wb7`$)i%IZIixz*k1fU?$iRrO8fAw zo9r*{*Wz)K2Bo+C-rqi9e{%m}8KYFM#!B0*(_s~HIA<=1@TKn(18^jGXJ=tPlc z1bY)a2|KTbFZ|1UHhnPRS-O+s;f|pS;|(5z6^i#;EK$gq8zH6y%c%}allcD7m*3&KH8J{`PXq|iayYMC-?3AWjce3$GLJikH~`nHgo zNDQ3|ef4sL_kJaVWVMXieh}j3%?iP>-R{5t0c%%$>)UU;&5i6&KJkPdIeJ7M*z5c- zLgoTOKKP>9ToM5SJ^z^T=1BCZm>5fyn#YI@{{OT09&mCW$DMC&&bwIT1$L1WbIxFv zbjmWRbV}BHcL(4C#FEp%&itqU9jdECg|4o~e|$^JVYjBnFL<$heMhA^=}AlZ`}Xbg z%QjgrT4nu?UviW-D5vm~jv&BBfm@CFlqs+kE0(+46JIaW+CrICvKT`E#bupqdjJKAkO z|JBp>_uqU$7J!Aed^L*p0_#l}x12~jM>TeJ=Ug&0Ehw|%g#~u^);7EQmfP(&Keoo+ z{>BS!`O>*IEZ$`*z5u?4Q-#H)71la1E`P$qHZZEwAq6A0vZBvQZNN5d@75;yu$Aki z8%7LV)Ly9z&P&QGtzK@{n)mIo_O@1CRJ}xeiZ?F_TYQL$(fB+4n|avP(JF6qkQT)P7{Y$z^r=9peJNbCZ9$rBH?{xyZltf$B!CrCt0BE2^U=`Qhyn zyhZeZcyIbT)x8t(0j#dC5Z|nl6KOq%mq%)^NA2N+BWpT(1>ekY7!(oydtTrQItW}N zhPC=Q4t;o?`HwsXa>W4Fu7?NY8fAI4ot?1szV*S~QZo0+%E;`_C-&J#q;S9V44v%N z<)+A%jOYti>-dtw1Dg)mzdhDsSFMo`ca7cq4))v69@u4<%9 z_S@GVJ8W02*8OC9e}Bt>{qMVXxWYZS()41d{TM~#u9J?RzI~5<`WsvITw<56t+fjl zR#^FsX6G%JpI?F|TqTy62fFQcQo>8&zIsWmE7l{QzGY9F{f*jn#kwjR z6(0I!`92^Rng98a$H2+KfJPUJN2X+gq{7F+Yd}XzWLyyE6m%|*#iWHhN?~^~K&Av2 zlue0CW)vDI2sm=ZGlgU$z3vKupFUktV|G&l(5d zm9mpTuu+ok%yui)`fA}`ub~C$$&%@3=mAu-&I1YG^Z{^9fNh5A%B2|Eip80a4<87* zbz&~UZ0oX zI%N|+5tnfsus-=5&S5Z;E(GRIfi6tlWZSlGvzu@Zf{?t2=*XZ@>9wo1>%BW3ueVlB>Rcjx6^#YW{HiKQKzv#hi9Ls0_*i2G)gY zT@t%==~7o7bFr%X0oUeZDrmr^wTXE!A^6--EOSFI# zg-w}UFty32@%WIGMiSsPF=eGW;3sbwOa1)=?v{x)2)76XTmTJg9uMnc5l-l^E?|9I zRaGu`LY$aj4ocyqbtGJ{9rE<+vTe$*(0v9&qRj{n|bmc3Yrq8Oll@}Ll}Q2mT}p3BPNTcn&+{lFgc03VkQb25uI05b}q{{A7ka;g@u zftxGlRj~S}e%ga&JLRdWSr`&LLfUc=*L~;`{fT99jH7`;*+&P(z1~;C^RQeRwd=A_=&R!-t$$`~ z`{-->5T*3c6F2+%rZ3Ujl8&f}UjJo`rT}}+`%0>Q_Tn4Q4rEq|3hYi z%wyn0F~DV}&Ap@c(aY!CvV}ETAII#><#X)YpSn=v*{rTAoB(QCTxXxZXrcY_JP>E=Rdye~Z#9YEbb5(16lH zJJ2y;?L9-fTwCj~qH+nq263vFGXIZ0zS=gP(_jnc)#(0?DqO}V0~@`5Q&L^A{p6AT z_NJ>=ThpRC`<-*<+dtfWz^*tmxCng=>-N?G+n`HeOK@4B@S!)IZU5IB&rX)5qNKnK zKbPpzSCa*Mgcp7o#pi(j`m`p|j5IKkW#k|77<#PQaN}nlTVu01XP?FbRPbg6;40>^s%O zsc{g_K*&j}oC!sEfHg3+4!@_>EV=sQ!Ocwi0fLeWRNf(3m#tO&Z1F^Tz!lamCm zKQbu58gKx^m0~EPq6gh0G2$2l1wMh2ld)dzvu zN%n!>@Qk%PRvdxx623J^fQx=e?*s3z1YVQvQtCk|A1dXau|$2Plc;`2Q(}nd?a2#3 zN(gmn0H2CVLzTyV=1825&G;&d@wp$|BgG@cjCaN~7Uf-CU9P;=FmqQdTw;l@ZeNR( z_h@^oEY4f}GF4v~gg*K`H5RmP>G!bK1>SSwhVjo_N9dan$d~wwn@*I&I)cA#{KPMA zSS)|xi=^BN>tTo7z@V&NE?@G@X#(GKrL>+~Ki4k5>@xewPk-Wy_t)HTqg$yhTh?Uv z-g}>{xY~W=0N8+-x`8WRkV#p@;foyQ__}p#?dLzg)!pr!efC*WoCV+Xw8zu2&M3X( z!M`aXltDboKk!y6OD2?Rz}dL8(T{QC!iS4H&(cM%2)Wr@u7uKN$*0;z|28%@%2iRL z1I>w_plqKdZAb%??sRuTX>s|-Q-^_4G5T$~VX3T63M4M})jZ|$Vcan=>8$ z1QhS_nf$RVHiXGTDxO)r$btY?Ss5%SWBGkj)Ynv3_f{|Qdwn9n8u z>6nH#`C3p|Vs}5h)jsvN_ep_LXsgeywl2AhnGBCJ)s`VCP54{cRAHTiqxOkU-)VpR zxn6tSHRnk25ey45am?CQR8p?>1VvAo9qH8=m8QejzarfwBZK_13dwD(XZqiXGH6f& zDB2N?&4Cek!8y7(uhR}T@3y8DYklqoo=8a&jeh4l-l6rARWyWvEAcow;c&2dmkkzF z%DP>ZiMJX7j~f3`kxW`w-fC|0oRkyA9}zNTFL(x*r#!8I);BU9-^|5`1E256pDugR zKFPltha*y?7irTWDCiZhp35fxdOnHT4r_u2kT#p_g-i?VF8>PW1aBAhBd0m6ir4o< z`Iq{M4l;a@OUiqvPwpIRHKKU4k%Us3)ARxHzn1TU91B;{X^k*x0WFETZK zkb>25ppy=0#v%>_?oxf=E2dzjP3i3d*BG5K2`0+wK`!=p-UW$1z=((XS=$q^x~#1B zhBX&CLB*+D_(aBvJ3cdIIiW?Vw2(3;uH2;;yzzkwQBh3}pH^`Sdp+sZ% zjaRJl=kyP_m@Ceba{Au=J|B`4R&zfY^vGBp)?7=E<_BwqhlyVv<;yaY>^MRZ^Gj}U zzWTm%?AwPvE?s!t|k^(*bg44Znt%F5>ST}$VgAdljLOXo4C$XjkpyS$-#LIECC7(2p zfm|^V#}{&g%M{vEV8wSa^@9W$4o4QS zBII)9Ot7l$)IF>+XhW!9DA(`E>;NkP#Cp3D^~bcp6B!25Ld;=~JiW?JGAD`;gg&&3 zw3Nqgyu;y4gkVrzlo_nhQhh*~Fg;^x*XU?y7lQ+a!C|Gpu&hYHnyp;{uc5zCMv`wr zyI@e1e~?8`1B_#m&6}Tp-u;SSfBp4RB9+L(dx_nB_dRauzI5qQYnOYK?c2Be7-N3K zOH$k#DKQVJr(TzAQr-(Myl89JtWlp7>+;YVZNh7F#Ky)uTlC-?e^Pmm&=;H zYRg(3#m499u$1?0uDoxOGC#~sHY8bI0*)8TBLC^9pSB%4b_k|A`DoX%Z{ZYIHz@KS zfBXsGBml3zE`k?d{~Ur@`GGRb{i)N5iRt%puL~!NNY-?$n=53UJX_mvqHTXU^D%S? z(jU3YgOU;y=LqpqZ0mB$7__8>z`S9-S708d`icPY?74Cp>%hM11NwJn2)Q#kLZcf?KZIWa&PnHM&a|8&&a$<_yGcB4%l-rQ{9}(=vF@}O>hHJ4)vIj1P7tAFdtUCSj_9K0 z#ZAj>!v*I%p9i=6{1cDc&_KVPf7M1;q7CVE!6uc_!wCq{6nLrmiyLf-E@-YzT<}a^ zJoE5F*4f(T>n;n@c~@R(wW1GW5=JqG*e$xUL#L?9wWeQi^+s9$R_b(vPA-VQ!wuP{ zM<1~+ZPKpTu)$X9kIjN%Df6Cr@BypT#n|gFxKPCgWgDBOhxRqw=Eoj$CDVCVUS;(Q z=F24rJTN_cYC`%LWYYqA&v*LxijY77llo>I;UpuyH(or?TH6n5 ztn9Fc#+8XRmoyq5N_>&r!x2WMyrF&-DIRagns;xrF1fN9t7))e$`kBKnKCJ-CFDev z1CCwxO7LvRG%iyrEdgE#xR^B2V2SehL;fwCApb_0G9`P(^2RmCM+;M@7E^K}X#-71 zmV?i8IW-AuPt!ud6@6x!3(sYj~N+S*WCX7##sl)9KVxr9NLw|r@(Z9Kopli&IH9{Z=;w%HF4 z_sjQ7w_S4nJp1+M7yA5WqqR=$In*{}4?TCl74B!sea<^H@5;q%Kee^R{$*>2omo|E z2epQ>4if(9|7@{8``IqDr4^dA$nlEg@{%64Mf2Qr*HSX@PJd}J$yfP@JO*YA1B^3G z66liOL05oIRb!H%!3XaH{p1;X1g*ya1{xJcr#6hRs^j=FN>+#x1s1p>HTW}gLWtsu zEP59e-O-w$SZO)_=8E715%aW8yn_-y63b!%2(g90qa=?3BFBz9%p7%y>iIWHD(X+S zR0ViopnlR)Hh!BZFDQ*OVD(+^Ao%)mLirkm*hYfuu+lEIJqQblw6YR~IXEV*V1v;B zhR`m0L2H-lhZ%7u!((U$)*vtipx`GxgD)c3HUl z2#iTzRo{#~lw;s6P=i-h^K))&5YjYfHD7TV6X!Hzc!4fZed}A^;>vA=0o<%d@1Qslq1Na2%95?a!qx0VvQI!l+D-3y~}f(p7T1+Ip>_Dz~+RS z9@08jE>{s)&*NHU@18y02KsS8cNTD&*9Iv$uyTJ)N(?qqP+FgN{&}vPPq!*XSzj&x z?#vQ4p12J5HLtnRp5Oeutz5a%t>j<#y8mRGq+CJKO`91f_&&Yll1qFZrOzB-U~y)# zzDi1(B@GR3<$nJI4>*kEMbWT8?Id8yvrxFhvKH$h+J@yim!jT#-+kK9D7EXayUu;% zv-V)+e*XgxdfVsJ)d?Ps;CfNB{sY{3nC0z3P%Y0Z+h3OPi2PC|a$6?%F9$k@Y=tbq z3GhZ)hn3=Eh>E4~J3XG5^xu;_d$LL1O{gc-5I@uFO-q&(SYo0VJGKhIhN5l>?ZyZ`_|07*naRPK^-sD_Bq-mRqy_o?dHQyH?*l_RPKa*jCYi zD_;KwTd0j>skGHEV47x^*f) zxD6veb#&;Sjo!`5-8oFrL=uE2ik+|P$0|p|G4`(Dcc{iWg9Bp!VecRA_b>3P~DK`xw_9* zU0!2f{*$L=p`HN}u^HC@S4N6gY3q}6vZz$2@FWvxQ)qawKcv$ML%BLgsW5|>fsS|iyvC05SRp7Fh%aod@0$^t3U)ANZS5i(C-zL5+ zDgUO!D%c7&kJ9B|$Ae%*{srb3lI;?#f>gko;8lt+m%$U`7n~#i!uyjpy$@K+*mxr_A7Z3N;_egJo@@ zF65=1sg{#DAMzNO84Og2{yl$W*gp6A23L@`br0C@ed{TEa*wRH`Sx&GsFczF>5?X`-CEB@f8DU7 zXTj)Fe$H_rMW24SIQzCdd@ui?yq;+ z5C7LbtGlemIyHYjb?tJiDl5{ZuCnme?`|#VO{(w5PaU>*zjnaRm7n&;1#%0c@c4^| zbRmZf*BUB>k3oBJU%M@oYnpdowcP&f-hJAYkP@GpWm`w=8^3*yUAS(6Js`#XC%(JY z;r2rEA9)O%N(_i(xL#U5P(2Qe01-}SCP_;?(44>OHv}iDQcjPHP)8V?-e*nA?zLcz^{ZTGTAbKs!Ya5(TdekL zff3pqRum%>+l8_`YybpU1CqgEWHKVG-~uZOn2QK2@3OT^k*m4-jC0I6z)D>a0IWb$zpu102H&Wl54>H#N=p4Zrd{mVgmwk1hQJ)j?W1V})ef}D zT3AeXo&0!tyJH2EC)iRoroDKDJ;J0B5?%8OYu!t44aQz!`xi=}hVJy*xV2etc- z3zbrBSd?o%6#1zSm}C^lS6y+Xoqz6mVtVCoSpGjNble}8ELgR`pmSvOnrpB1F~(ZM zu~pWJ^JTTTP6`YZ8{~`12?ipg5ypMR$`x+KP7ME(L6e|ZE*sbcz%P4WU%xBB%LQMB z{FOE}%Boz6Vd$}bz43t!XsN`9LMyglHkOp-0WO0l}aoy|@1b5B`rF($lV z(f``lyvBO_`n;@4S+;|VLZu;)cZDo68ME{WeUlHT4+iLse4o60{lQYcq^`(z9vrb& z2>=V~B*dfnc@<0(mIBt-+FJQq*4o$B)~S;x@(!Lmm2F@3g0C$La*2Yy(7((&V;=zPk8#>`#3$Sx9nU_EZ$xyv5>#jT!i zt~Nh0mS|eN+M0Llw3dB)ZOvI{%e6+i%I5Nl!avl zHeX8j3meOAab1a?rRWkJ9hO2pmLK!QZ+Kbm9N<0l6k~_k9LltT{@@ck?En3%hi&;8 zm2SL;JAjvKxuITFZ#}YfTy;&Y{q_I%v@1SdfBm_#93Dva%aHgF>pG%SbfdDqoTG72 zZhKmbv{5PE$Q3Z+$>7r@>oKNdU_9a?Z%mf)@E`inMvWBEWy`H=u-*E1@6-i)B{F1~ z;~Q1X3k22Po-Y6E7hEGHb8W1=UPU^z{+%hKFywr`DnD{jDkNkt!NnMIxptDYL7vJc z{~}YNJWjQXad|xQFG{MU{7L=%qYV9}LX;_yf7K#zH7Tqv#2=UZi~Q}zS;7M?aXHnM z*Qs^^lgr9k zg>WTUQ++_6z`x^zT1rIv)?omyL^`b4X)E<8zZ$^h^3+a$^9RO98!bbo! z|Cz_YOUD4i%J0z--8+BXA}{cn?MLiMxmmePzh5L%sI=?l!wj{?0F! zve|Uu_4n@CZ8u)D+?DWO{ph9kgFCmlFZSQKVwv5bcmlivr-N)kiGAzAeRktzD{ax7 z3j4c{Tw+)JYK!e_?X%ywe3{*NaY&y&7rlTiAFf+ck)@hfcgteEw{O@M$XEP-dFvUr zbWWM|=`N#-*DkPkT))n9W5~gr8xSn3eC^$X_Ps|BSks&m z_bZR}{g3b4>6f^Imq-7fEA1Bj?vv&F#p~wVJ8szE*8jVY$lYN(JWc?Tw&p_~11B8= zj5m!ncyTt*wN2}E2VD?Gkbx#K7Dc0Q`ypB{;v({b_Lz9mDRGK;DK0GpCLo;=NP9Wq zF)$(%q9*x4UAS|h^63HuJ6bW!WZInDC0KpOA_o-EuCO~l!|f6`5uCY9jRD6iyDK@u ziiL=C98(wTVvbG${9{GQk!07E#dq-udMpj zyl^JS;mSTA010IY3VGUGBc(Zbh>0;6f5_*nLJrPoj#CH1&P*Nt@}Yx zL=mIkQtF~*fgZ6IR@T(oV!8O*{Ln+zympzcf=l&^1tI~t1Vi(RP|1z zeG}SofXXUS4TSq+pPGEqMe!vj}%Z<6~47AG0)|Kt#^qr^F0T@_NA(m=Adj%p3+vG*+MM z9k!33x4;$Yl>EqMS$Yr1MW!sldlNg=HKM5|EB6PU-S6oxJA0{p;_`*|kM|z5%WvIe zzx(#{ZT+%(``m9`o&;{+ksg~TYxqi?*3=M|b$F58zPro*^=Hr8@4fpXTeEbIeeQ#o zCDZS3?R5+LsxmgsR3FQ3@@?WFF=r~uIRPU1S7q9fe*59wTkUt>ae-YVf9?Fm&?QAY zm!H#V~K+XLM=mNrf$6_$vql?C2m6jrFzKJSiFL=QZfa_8bZ6)xI$j z$I{^7fc12DS%)sX9O&x_!h3xAiou60cFJ%m6Qv zb39qdDg{mg##mP@Bjk~58d*x>ny0I)$M(zRz_YUMeB&G5=z{)`tmb1KF<<`s<;MVh z8(qr0l1Q?*#n*mWtjRLQPgn@u!FQ@2Xn08Eb0=)Ru?}bhO!LRzDT$Bulh{pwF)BE# zDoSl(^{^qh6fdfBS2M2`r90@w!Vg6g7R;{*g+o|0edPEsOaJXky&_ws(@6(*?Xnl- zyM4iuC2qYUwPV)Nh5{$jhe~a3vYujKfUufYbaK36{W+vlUHfT*)-M$ND5-+Na%N@?b^9i-HkuE2jo5wLy6v{zgVrtA3yb6oc1?v8ql_K? z^dZt1e&{PRVCi0i%SyeNr%x2{|9e}%lmdhHy5;4zacz|?td$a4n+UWsomS!Jo=xr9 z8o(n)2c5k`_V?d=Si29Svh*vnZu!}rhK=+la}jAN<17mTxHyyxP(ghRC?GMiN-81~ zFGxfBV=mZByl1_Gld4!%nf22m`-CzV>vz;d@D*;*eH=f95+1ILfcX=wue#Q@{)_=}$u ze2SvT5Mtqpx)d2^MIr@bMQ{Xbb>&NgBYlRD2Y$m(5vYuiJC;omDkD*2{wt4xnZf{k zW}yh-kTy0ScyhN~unpSxpFV7BWa%B1?bOw;g}7cP!S3ALVjJ$?=B|AEWS~|iEB8OR zW4ARQ?X!1Xy+Q_J<$g)^;np7et6y%n4_~p=7ReH9U%O6%sh$mT0sKFHwb!lS-??#x zjIt_R;oZ{KYyb21?e>mKm*_-ih3z@gXT>^!#s+W{&==Rdcu*gpQlEw*`2hb-`$Z2sJ8SFHEwGS+8z9I?;dw#!O% z8q?;M*mFDE?9pfU+Ed%LL7RX(4fNQA{C6G$CkF$OK4@+@t>BxnoS;S!kGSEByh~sY zEg$k2$N>XbFiEM{vEQVV&~fPXR;7!)7+eU7=tlIY5hg46@=7V;tE_(Rd^>XZptT-7 ztO2P6diP2R5EraOpfZ_EsG}j#Pz0%0P_s|C`_cvHsS3%S4vUmvAy3|{Y19wkeX5W( zUq*&(X}sJ-;dD7RQd}5}LO`4O)}dqc^C~qDGRk6XOb1hDmiRjx9P!;`<&uXP#xd)I z2M@U~di>VEMy_U7u3F_5mXLrjQInCl{e>6WgFpYd z?bc}^OtOei?{%l~N{`hFM@q3O@9XOF(|x#J@Y6*S8DOl!X1(=h|xK)bQx!K(d{oqhJBO+9u%^lp*nXT2sZ%5_(;=U5l* zOz#58;j_n5#3^!5&flX5xMd0He> z`)Egj#>3qYJZHbY^MI{Bv&uTAQMR)tRZ44KrN35LMeaS!q6rq$0*Pc9xu(9TVh8+fVa7Z1Yp@Lu6?k?GD(*YvlRmjvB`Td zzDW(l333&4M@iD-$lO9exky6&wY4Lzg_*>m9A`WZt1pfK6}JB8Q55e zL9B%=-AnAtPad`}-+Ms2^5sEG*(Exr6XxsZ;a*R&fh>&wX-kLw<2?`PC~C2tgR7Z}z>P^!GA;%D#3PSvKo05XHiFuc#$}%N@WEycM7>CtwsNWVG)==K8kD7)UzngH zjFAy!UWqPvkXvx;5(TMt3+U6dA+rQ56mG+~05JIgeK}!P<>9!H_y7s6gJKps`lY0+ zIC16rOg9Jr_bXSd@JmurxZ{W3UDe=LCxaNwblv&#P8VBtNa`8g+a~Vxr?|ATk}Hs z2*A4P%rk87wyn1P+2>rLUMqOmkb|c>dg!3_$&JnY#zwh33+`j;bg_85{KU8EZ|SO) z(t>+YFX@AMjIv)wYW9m~I_-Nq`)!%#bc1+6lZt)g+@1@p$>hh!PE0rsuy$9Ot3*Ua)7OknUZjHmtH84U1 zUMjVrQ7jAGUAuJJqFI;6T{Pcrx_YTL`zP|-2IQZE%}RGIskjphlVM}B_!FxopDSVjyyiZMb59w|&;6Tm znXV9z@>H?}9|HOa1Tbv`CR0p&AYC#KYibz%@D>=%@XPDdBfp$4_Oh8HiI(d3$!zmP zfb+jzEf`?DK|dSinx%SGm9Lw)RLLA`q(c{7DFySzjlqJvN3@WGZDrb6jp-?y^qB#6;zB9UV>)R6 zfIe^sgHdmf3=kG5W7Wd4P$u`X2nO7fb?g0Su57d=Z>q3&UAM-I=CagX2m0(nZ3@u# z^nj&1u$Jni8+UhT&)q6?zfwVAvC}A$lVgK69;#PYx&L?WjL8Ofdb#=MJO*Y21Dbny z&+{4ULsuV?cb$fK1sk5M36wik zfXLz&0fA&XpLoCu41Qq?)O3n~FoYY5oZ6*y2uYz`Qc(KjH59YyJaMGY=69c?*~V94WuoC*`C`8y_^aL&Ksp7~T7S-<)w^FXD*H}08 zJUxMGPB;sr5uf=ST^}7S)jGoQ??GQDrd!ibxYB&a8Non_{4UZ*ag5DKp{KYIEsIXO zpdHO!t?p@fdDd@WNw9W~CilH79>V8x#9K(>f*btXL}i62 zRC+qnW(m}Th1HN0xRk*&Ywm0f-~jh5z1=;wOGigFY3lEMx8EI zEzy`P6u)xm4cFR0|A3Y2bRNocctGeom!Dq#+8eFEw^#1G2IaS1Zo2M&z)CACby4ZL zo(`902lwu^qX!Pype~->y=9B7Kkt0EX5S;;sIsP7lt`jcr~o5hT*%$LeY^XIzu@YPRzE)|>kl>W zvpfFnyS9J#E^Ao6-1$s+!<;%lODBUrj4HZC#VjyZdl|VEt~-2#0>P7v6;ibJ~2>cK9?pT>h(Jxcv1du zhpb|5)uak{rd^$s3A+wU$-aBsKKgqX*y}c)X=_(6v(+mWTbUH@%vTQy6tuSY+QT1z z!EXMeAKUu+a{GrLyvb{gWGpsG8O7zq zsrxHu8AW~1JfXDQWv}UF$`g|lr+0CbbGy{3F8>Oj!Oy#6IO_-VlXAJI2YGp_Fj>3k zs^mCI6fk9fWhAElR39)<68#$sPDBAK_YZMz7<2g8kjSSOF8^v{Eo_n|(xzVf_~O(X zfpJKB*DEB(9qTnp4iEmN552?f7k2C@?TGe2%2C;#m2XmL^0Be!PO?ap4|xon1Pn0N zSX(}0T#Ua6J)Sf?$F#(gUWZJR>w9!T7C<;QJ$YiF zoS+yF>0&&5J?}6QB4ABVkm|=o!tBMq5qtmIdi(G1z1V8-{jRW2*6n}&AKPrH?rdQr zAX{))RR(-0tAMTuak)RHr8fAGjs*Tf?eT5?JCA`=gaOeI=tm$w&^ZlM{dfJbldtrV zsZFjp+|kx^Oco+$vL?e1@MHlZH!Q!A5K_WaN_WZ|mL)LN7RWLtsl@f16F*=!C>N!4 zNolznkq+#{v>d&KFc#|;bzq$=EimHa5(drGq;Ny|#IoWqkOi#XE|kn-E+-2x8{RI# zSgN#BF+DLY<(25@?^KHP*sgIgsN94L1CcGH+9md4+IEFLpqv6Jey3vQz>{B8>3vY9 zc8Q@Avs5_PW(#z@xm?00dK$cX!H4tT!<@v$bmW#4+CRbIW&}2SDF0WjlVo={0BhZ6%hL_!Y8fj=7)fzm32O|EX6);ol7y87Wrv>0qLAw|X~`4kQK)CK zvJ!QAo&Z~@C-qEu1j;OxqOxnKz#cy^YL6e$hO6Q#)GT+wq-XIWsX!5g_#J-vCwlog zxNXwAUD~wVD&Nr;N%3=eW0Bk?6#HqHfTfV1B2w)M1!cl{Y&$dBrVOD>7$;ezYJIP( zEV4Eohpo}tb1Jt&BCH4;C{;K~1ulAYq<28lhhHF>hBwloIOg)Ja#ax;783Y_Tc+eK0;Fi+%nm4{q z0$-7}Xl(W4XT3|8n|8@%i_&3LjU_wEM=k)Hs~dDz%&V2~S12EbUn|Kq!F zvGdMaX_eEow_)KNyXg&A*n^Aa+ML=dJ7Z1br0CJIW@}e8_}>j1&$CM|I>X-m+3)J! zicV{kWnomJPyh;%W%Ekyr*eVwmK*llCFd+p7(VEw#>u!8m?Jv!$6Av)*ceA#1U#n6 z!BRD~?3I!ek<+F!&T<(=^A(w^1m$#AB`(lQDI-2;RI(y#L5bWeIQh1OSuD*&kp^l!^%K)mAOC245Z|>EIW@8|; zS(lwwiLUKF)NNn>#TI+0ZNM$mv9O;i%rvZ1)s=sj$H4JnK$J-1+y9i&>8E&&f`khM zE(X?1r-)F+ahbXo-0{S|@j@}zOj?Ky#Eby3i$u&L5+6>GL}+15oOuzE;@D|61_@yR z0_xTX5K7WYiJVR89*DAbp?&obV6xiAH>TGy5dblFFi~PQ6c4l<69(4Iw2^qavOQ78 zWbJYSj$&Sf+%X_nsXv=?+8I74;DS?7pp%})ubRUiF@08V{ln}bOU5Xj?cUU%0F;r7m2fnz;Jy--zoi_jWWyXMpbazi* z;_{&&5XN;s(heYuW1n~N+1F%orp$_vN6-3^o}av=i&o3&&*|xSW+=0sg)yC~$I~f3 zRZj{Y(z6b>$os)Bc8*wc-?&^WLh~t$+D|;dw@_)9*3-G#w154IB3mt2GlSv*pubV! z67dn*b1V)fwi9?#ZA-@?ZV_VpM+h(1ZlVkWwQNpQiykkP|N9N|N^F5P3F_qsbM4{^KUr0(1S1l9uxtg9 z5f5M>JrIvuBXGfm;1QqcX=cqcxTA@A_=b1$Kt8?qcRXv;0L2%fu&5+a zUOaUwC8zTG1oRZSebDFdYQw_O_aAAuU+&jE22y^X3T1mHgwl=KUTrSj&{$^gyR=>w zb7SHGhODn|!1;j5#&Kpjr^D~U;!^wB9Z%aI{_!KW@}g=VZ;Y+iTaVgXY3!<{Q(Db@`B5H zYinz*p+T4T%Dqtt)LLMVKE2(p{@t%xnaZ!01pybT#=zRLTmJPw{I0e3@%LXVfl^~m z6s=Q|r?M%hgPa&;FD4!H6nQ37-HBCqkSVE~ za+ymmQ)Vb}nW@Y#lRNQ_?rt<=<4h z99C8tWJ{`+?yv6V8_&8AR{ zaOS`B7|3JbSPU@d;Y~Zl!yd#3JBx+pTDe@vjPL~qnmn1?N6^+ zWE)n_)!>zm+E1nHh3L$vjAUS&oG%f5E77UhV)5k!ANry=#So%VDFq?yFz^sfh^`ZK zO^#xO7E&vCS`kH#xVlzfg_714%BsnCu#r-f5BCocTZp3z#3}Id z7zh;2$_EVG=sFJZ6Y%Z}Q$(5o@pLANw5kThy$dw@J)*oYbCHlka3SE-N!ya`Qe3D< zMAwPFh%<1h49X%M>7A(%p)MLnP*VMlgTNR?+!TN>U=eL^E{~*XuY!}Bs6Lskz z5X$kupoDh8l#B^y)Z;tw4nG1}X1jz}!RqZ2u4x1HV{I@lYky~GfmOJ3D})K{q7Q=t z-rEI3>uKpPPB*Ar^@lUMsuzK6WN5%jhx_D1E8G?x@rfdW9h_^gz1I6?gnatFVZ#P{ z>s#MuEiEk`&&Uxd9%^Kf)pBURBGk@VA7J|AQ&bEgA-0oKQGP;$B|mv6&rgYHMIKT*;u*a7fuX+D)tE!*M~e_2E~$ zw_mht)Jml!rb5~PoWRyEpV=H^FQIK}GYd8Cgg>EurGDZp;GX=@uz`Ug-#nn5(B)yd z5@{)_v8MUjeAb;MLIq8p(ctq_h2qA81@BPDkZn28YY*+}v%Rvwe!{KVWtl1*R14*` zg0qeVC=ux2{hcHBbnCF~6M0=DEA^F?op!bq!WS>Ev=#cUR{Ll(xT3$)1O3E03mgO5 zSw!JJtApAHUqs+^04Fc{)%`EXZ|Hqnd+o`?gZ7A+=M^#U8)QBGod^Tegw_nU% zz4dg?Cnt_&M+$>Q^VU>)YS?wte9JA8?%bI-=6S55_P5{_j7qZ+`O|*4*5j%yZ+7H`>iN z-)uMCbdxLJ$#d!XYwWK+bd7!TLqD>G*Ut5eRAYu-F|bQkl-s}ldavF5hAzQXC-;#W zi*l*7Y}rzs_R~dsy3n=6`HUzhCS(-B5o9l|x1t}&aBdjn10o?0X-!JXUaFMM&QZxz zu9&!A*QE~Skw52>gLvX}77n&@*b!s>D+O5#vY zN~T2inq2-xR`r1ntXgA%HQ6qe?Q*8%G!*16D>Dj|))nYV%X5@}Ny|y&AXBPbM?qS< z^xNfM!8)eAQ^~);l#(ga3wU6mE_`O7c=tG^Wj-J$Czb8MMjtX> z^i4g~$6st0ZSi>T1ErPRhU^~X`cOY~KIk!&mioDG%*)9(Q}rqz@)*ctU`h-ybC3b* z#Mdm)Wv2xA2dP5by-j{*IZE;$vkC*q6`UMK2n_THeP)oU6eZfu3*<3Qn-;{=dK&ZO zDaJiWfe0EF;=!UjSl&Q@Ah-~{I5A*a_y@5nmc<4F14POR8^>2iQC6$IMB(~!LgyCU zdL9<_1TctZfe3s|>%UWjLsVU8@q_@Z+VvNNklESLDWfKAfhe0nt(O53ucFQv6%n?N7*nY1}P}vLt0>^d>B55RnerSZs4X- zfFLmaH?S5;hz16S6}$=to>_gAG!0gSt6(ib+b3-oeL%ZZE=&VQ>#+Fu^eUJ7Lm$L; z0V|5(&@Sp8a~y;|h_HIQ)CY_Mj?*zV#sqKCXunle&!fm>AkUyABIkE#t0F3;ZAQ`l zv!C5!fBeUP)jGN<`AYpOYr`tt zchxl}S2G2+L|p(INB87IZWsu2NgID!qfj3EoPL=Q$lOQih?33)7&YN#0wpKp0pn~@ zOyty{S9l`U6JLW}7?jnP#=O%Hr(q}!w4`{SVoe@SF7O`9a+K`6BM)m5&&ZxJe}Rs( zk&bs1RIL1Qd~htCd6vwti%y~K(72Evn#MX8l} zN%1ZPnV7+_mWCCK{4j|qGg;>%PZrCcjo*$}jZ;nvY~I&rw?E%)Ki@xSbA``(;p!Ug zT!2e(%3rPlf2EfyFGHYBx0HSL*>0P^rPqFAb%kAhMy)N<8c{ z7DJecEy-R7X}ItW9QQFGa|~t7RSkFg1Q)H#wITA|&AK0`zSPz%lwbLtem8W;Y=4f$ zpYmj^qg!_$uqXF)+Y)WiWJ3jAUP7;K9<@LE+S_dT()r$>tWOU;^pJhw3tzB1?zqEY z|L})DZ0pyr_jL|S_oYjg9y6Ekz4zXvG0dCa{AT;)CqL=y`JqFH>@WZFFYV4d@02qB z-|ai!`HtVaM8U7S<~#v$tK=^6^@1m^GmHz|D%sv1+p*_}Em;(-0usO(~6$Q4+nt8pI#60Wu1Gij}d;DEb~PJXS{W&D4aP7-g?GPrxJa zB8&ODulet?7fNBui?Wvz0z<5yw8zL^ns2}{0ai6IwCh;;cQhgYQa?cOFSHBSplR}N zR@saCk$*J`g!mx;rpc7)unKn40@T$LLA9&h?{7WAo|0d*mA<|)puu>N7hvqU~ zXj8IX>K_MJ>w%9KjXPJw>l+yr#Xe;VagKM=LeJRfqz{m3X@Tn?kn1U%^Gw`m2ffpn zr`w>x#o`Ud7|ZZHAy#klA&-GP22KP6a6eqI>hm{I0MGf5$G~jDfYWsiT=*Ast%dP1lni6h64CLAC7h@7F6kM6Ei(3N0S2|}(lvZVxc>U?^;y53$ z2Fn9vCWvne)&!yj1MPC=fOdf^%2m5yv{5koPP)UY@)LNaU5*2%@(E^3FaQgIjswRI zYqoZIAB42NQQ|mA;L7UI7y&fsRYy?{0iVn3RMS zH%(YPH55Dmx_B1_Dcj|ri|}3fbpP$&{%yB(=Y67i{?5mQ>KGXuNEPC5X6FZjNr~_W zZW;Rolr+Rwi@$4=^Y%(9qvl9y(jmcoew7qJ>avh>cDDKDfjThoSl+&zfqo7aM`7N* zoUr6lHx|sSlW}b3k|&?$<--8S)39!j>q)RO*7~dk!~O7U<&AwA?=t|}boU?Wc{E%V zvggUn&#IJJ&$0PaWyLyCVz+5C@s=G@P6$p;`0$+>C`;mXB047Ew=B`(PyHgs72=7M z;fn+zE#K0Io0d}hv0T@@SM+uHoJz^r5TZ~}xh^=RG5jhMZH{dV&%6rhBA%7t7#yb3 z@K#pk+Uz^%O7{UNREy+BgyZY*IlMoykN`vXp_E#ul;aO=?zDf~)MJNr)^@pQ@72|~ zKk=qa>(YZ3QC>RkQPfw6_B05_r;iNVzaMP3cQr^ce14s+S*$y9P=JUJ0S_^RO^4aB zzD1ZbzeC^YWQg$ECM)(|Z*H@HdZEuy6P_VUcBlw=I#D+%;5qspRX4d6IK%IspYOH1 z_6*nuE~vE&S5;f7c7_<2>G(~DH8Vc*H))CUc)CdS#x$uOOO+VkrDAe_0%usAcIqU> zPoL}22@0<+SpfC53SoOuC1{S&eCUu zS}kfj9_h5teCcYt>XI}4Ewua5M<2B-ue{QKfBy5Icgys(Yu8#;l`J_jLc~dHYpebK z@BhBP{qsNnbNk3gK4Np{>Ik#~is|>g?|o9>f6;Ea<)`+8AN;^R^{G$!xLPo8j@|H| zSJ+)o?2!wt3c1fq!RhMAdByh7Q@ib|i`RJi;u5)$kvt`XVIK=F_xP%aoG4l17}+Z! zr)lu`KgJNUmt+)|I}+>AL>UEnPIO1GA0vASugHlgTV0-#kQUazsE}quHOM6{vuZ7L zE9xkFX(=E@ytl8QnnKDiOl|boh7SJ9m z|8hzVyh{F7yP~Y@u%f)q?1RFTg?i{Ova4M>`p&8IxQ0xS>%o`mW(;_{kZD~`3@ZR` za-w1!SjWfIU&2+8DHDC5q)~4WWm*UpN^w={??@lzU*u+W&i z19=R*bPTYD=R+O?vmFCYOGLXyMK>VK(6tiLdhR`P`Xzb;KZ8!1ja;XR;$fhl;t9kQ zh&c*`mMI~Mqd*}rD{h^Wh$c-`UV9>a5a(KbrJp`6N_gsnC?}?$mzfYMVxjtmuont8 zC&+NE1k#Gg@-IEmIMR=E1#C>KbU|=WORM~@FjIPG{z>4y(S?1ARc-oH0tk3J|n)VxV1tVG0`#K^S?d?Q%xN`8nZs z5@jcrlND+Yki)#g=U zBP;hJNs5wBT|ngmvb?fAiKgRzfI%L@#fDs0uqI?omE$h&L^AlAbj;j4k&;eL9^8un zGfL51lpUuAs(dYzVW7WnP=q@WYtjUZRcIs6#H7Z3`W(o7CM9{C6zL<*mCSV6<5TrG ziAESrB#c&sq~Mvc)vpcNJ9Z7b3$1Fcb?M4;(h*qhaY5E5%}nNdl)`n;4<&N>S?%ml zxU3u=mOZY}CM7ok{FSzB{-`Z#Cgh%B=Tv`%S-b*?U*-pzS)K8+lh1`yD@- za0YY;0fS~YZal|Iu_jkIa^#5p!5{pAKY#hlU$&2Z>|+|&;b=Z(dr;qGqI3K9?e_4) z4;za4_rL%Bu56EM9c%V^x`_8@nAnTJg#1gJyj`Hy>ksME;dS{}R@p97$8t6QvdX_nxqf21RCs!k-d5T* zc8m^Sa``ve2M%jU=j$FYc^vCPnyj8!UqZV=l5`+Y!25|j(ICfxKvb(7wj{WUV?&1i zV$88=fD9b^iZ&(2o1Q3xcog=O&74rA{-n(JI>Zz3Ogg1k(tOBcAdi7O2J#rlV<6B2 z(FS-_^u5p)KQ-<&jg5V$8loru%6S-bowVM##kzRuY|KW)Z6I2~LLkOX_I-S5MKp6N z7G@|ns+S_LlR=n@KfbgO_*CAho&u9MRf^O*n1kGk6@w)l3Ct}X`R{94v!cdj!I5jZ3<1N z?Gw1JlGP)w9Gn?UgEWj;Sw%`Vf}dj|&aH%*OG}i0JT43%R79)VT<7C)Rgh1d$H2>s z0oD}O3cgr3!tVf7=9o|aJ=rrkCwrGud`1E3@K7*}$CLXw=4x*4p{Y=GdA=)mEn8UT;8% zEWtYi=a)6$E7&_i~HN; zrbGVhh1Zw5c`;pkAnnw_Me-L`7TEW;^;xqN*B{T=9QGTV>F&CK6kS?Qm%sLI}d!v>pQTYg-%U3<>bRC+0Ca|vsf z%(0KWcD>#6^+&zkw4brNP;1PcJNxbI#tN&6O8*=RWC+tgg!mkAnut@RP~aiH=LhQ! zxQSt^cQH-oH||e5+q&#K42l)qDI=^C0Z1R`u?+e$ z)Sr{Ep3$y}<;OC^H|>J{g2 z?;tzop$>{sTrhGYA}HSj3=~X>{0m7vBL9)cKpq2m4CFD8#{l$%&0W!rz>7%-2vKpO z4&4y{-EtNUvmdL!GaS z|L{n&z4MF(_WJXd*a|7-%cKCz7Mc`!*0Q;>6xe1z+uUOFq#%0y$e692TWF0na&I8( zY?K5iD~zh4__8jO;(Am&sy))OGQD!G65L_shc)r9Hg(ybJ<)0Fq~Jt%b+VPh;3U$a zjdE9WkNlbMzw3zom#gR5iuqCoa;dE7GUKqPcfh*4`=qd|a7umhFgi0m1zu6&plp9| zOP77|!46xc(*n4BITd(~tzaJDZsrUr`JdDUwr#&UVxPKUfi=wwm-gm5PGWiC8^y0q zi3IMWzfg+ zL|zVe4I{Qj*40ZI8U(ihS71(V+qTUP960F8eUFSEdWS2B`ucj?aK;(hbSt)odDV8# zyh_`CMDA_enp&H7Qn)|WF=9Jf2JOP-6}n$3`1hu4>Y=Kzeny@%;Ei9X?7+P%=JXIw z`yBh8`As^?3@2v7b9y_dCuK#;Gi^+ipOK&O;O|b)rHTswY5n_yT8!KfddEp z@jdT(kIk7Ae6q8lbGWV7OqWr|{*UQtM~#eY?1^6M>g;hBXN4sdcDNh2R9F;)hnPD5 zJ?k)#wF6&DhmtozHDcLmQQ#-_GfO?nQ;=;y#W?0@8j^X=EG5oMPp0x*p&m1-oUlre zF_F{jBms4Y=*%*`to%nF19=SOF_6c=s}lndg-A0JiuFK^(y2uxG|;8Me}b&sOio^% zXwA3UF`z+IT4jCxol?5@TBUqP;`g--g}UC~cH3?Cmbbjce)-E^+L|?Mtf!~Pb79$2 zUS2L?BjFlA1GK%Z)tMgnuTvGmya=q7vr?)Yi=r5u?NSq6fKg;j6W>qvO}T>-P&iV8 zg#^=Ts*tL2s#N)RlVJc~SSW@{=#iwDF0jM0NdMp^OYPi*vc0FL*Y@n$<4T~0 zB}?2Yb6rENz3Z%n_L1w>=;G}ZOLFAMQC-4)STvxSYHV_)+BwVW?Wa<> zi?MqK|*@bf5 zfuGoDQG6h3bffA%D23Ty-`#4TzJ9(n=>l4mZiMQp3Tu;PE^BUuTl9xx`u_5C z{7}b~l$O||x^Na{`#LF&>8o5X_?+n`$tAxO*F|6fjH_o@kb;ZJOP!br4cTk(gVNtN!wbdn~)>lv;fmUEWdT@R=e!7%hHn_ z^ZfUJ|M&JgzwwMe$2N!d|h)%vapwdk5^? zrV8uo?)CC3E6Ux)3<~M0$_gLD`0C~oY82?WqT_TNR!05(gSyCSM88X{ocGRG=sm7A zWuo2N+b?BuiLb+b{R6K2$88|*`bj=uzQN1Tgg29TpQdN+sTI{VCLKCRKlMXd5;skol5j&O|6IiBN# zgCIB(+LKWru z8CHeFdMio(EXwIe47+dTK=-> zl2Eqei~Z^qbLswL=SLtpH-A$nN03}?NhWPXC<94z1-}9tIrXJS* zlNDI=u_|rp8MAqHax12~@H0Jqjrfl(vHN9#{W&SyuLM@X|8n&@cQ@iyJb=!M!I^k@Oq-TCpe9b~Bu8Z79{_%`Y+Cm#qB8yX*y5i$}ivkLZ z@h_LqDfR1;?@^Y=v~1`{r5w-6GL?@&8Juh^(IuyS+_|B7 zL4K6g)m4>NTT|scC%j6z{P%MK=+PazFjeym1gZ%Wg0nPO5U5|zSli^|mINrpfBMs( z+6_0{V2c(l^3w!dpvoyyaEaCWh7B9+{PWLuw=uDOeAm_0x$k!r?%;aYu3h$_4}Hit zEMI)_Mf;OK`4juaFMeTP`qG!|4R3fu5}w`r4%zl!G~23c<{0k1GK0fjr_GsxVfV*A zG^XdFQQwHkY*%L9{O{R?fjA##4C=UuF;L<{qQ{J%6RL|@CPZfZm;fgkD3L;0EGC37 z|A}%-_e8~>Dkk;$$?PX0MouUs|09oqJO=U@$YbDDi~*-IA`c0Dx-bE)h(wKVCnU~O zI-l>aLYkC0nUamkiVQ0ezgSeqo~H_jR9Ly{ zbrki%2Ord!83}@qA{h%K`aNe(eXz*UsO*u|(4hnSq`Q}O*M!<;_6M*77YZS)f$&5* zB<WtZ=$|M|7dtxV7|+TC1$i29f3jOqB%81=85em+}Lv{du(|@@Xq8Q%QOS>bGH; z9{TZN5~l%AJF#RUP-i}zObp14gK!;`J}0xDS610r*|FJ`AECMTYao!KeLmOYgx3t` z|F~?CwZ?>(Ge7IOq>}o*irhgy#VIuxHKqytCxa0`j4HePTGo3H1i*bhJzbCqp@kFHa zj^PW(H!w|6-oSyRLM6z=LFEv}YIwWi^E2^veleH)in4odOf z*Eb;kw?=$9mwuY{=#tS4_R;h3K|MWETH6Ix!bw#!p3MmYigiwp!e@Wu8{bI2j}PyC z?|a>y<5_2&C6ZSWM^Edu?)m2y70}njlS-)^BNZ zqQVgduYAkxPv{*T9&qgsX&=7cYOUzkMk<^6hqUX8b$dMdkd`$0$Xe+#iY^(8uq9t+ zJRp04uv}#n?!n4c_Cg-uLd~fHu78kaa*`UU9oMX;9ZwKX7nDIgW*_={2rLM#5##)4@u4qukx4{wgX; z$;v@mODkRVGggp)OVob9=S=g1{MiCyi<56*41{ruo`L^fc3QUBE-p;<5X~0$heDK3jk&LX=>RAmCFmJx)NCma?$=m`dSH{ej`2ZXLZA zfzBQRV}ei!fh>{r$YhK}RCb4U>DV!f^eNiq2veCb!c#F4u4GQMs}NYHV0ye=YFnWT zS(CSmwopHegxC!AK~TVC!@;=9A}!x^d5Pben=K_)+fs-ltZ4+$57V|w^&`Z1A9%aO zFcr#bsG`9RA87Xa7A{&WYor>x;)*M>SDJ|J?CQ0Bdv@F4fGp*vO!?AYf;;-4L_$vQ z;J7TdhV7Z=0o$YRT@uiCNXaf)!D`el={l102E99$Xk9`hy2%YvzBlS`-6B~WEiSW# z@|RF1U-Uz=ngrKzPN+J$l+p2F353PE{fGMV;bdVzN-oWHtjIVf&XAvE3ZEZ@;kGLsq$y0jpbp?x$Puu+4`Cty;X% zWMf3HJn%kV%DH&)VvmEjo}5lVz3C@d|wj1px^<(XDS5kJiUK<+^4Jy~#h1{pgnes1zFbk1c;p(rSvr)U@QFLEMqs!fy6 zDcUvUJTZOE9RQQJE8rlu%lklh%NC+cDP(z%PAw-&PEE+atRYivX0S0pA9%aOR~5Pu zND6{DC232Pe+z*@r$Zth@!(E9Ucnh>TvT19o{KxU?dtDa82l& zj+cQ1^rTaC_A}T5c3d6rh(MSi$cK#%bUJ08nKN6+^7-O9gNHcSAU_6b71|P-?{p_$ zTj3$gfC7-9O?Iqw$mfgI65uqxG~n_w7*-h+;EVFnAO=}L>$vE_MPF{S_qj62@TJ=f zD!dGEy5|o3tPB!`K~|K3@l^t?9FD5;tZWQgrw}%8-WUdYyF;s1x>r@z7~ffWQtskY z^z|r&%#LlF4G-t|?u+Cy@R*szA-!Wwf4E`YV7Ots;&Q4Iu#>kz+mH{G!Art+OH+ch zkjq>y^q@~GrfwS;vG*(P>kFsOtqMmkt_e$KRw?X^96B~}0Vb<*_AbAkP5V{?lo>0? zo=wF|fGzL!Ivml%$~-H(Ns?1LXYH0kW`*kJFrh=>%+XFmkS{Ln9)JT! z6PkmA;fr7VqMTK|;SFziL-@rnei7EKTbJpBW8XoT0~|@0Uw(NwMWGZ((J>DU62bZQ zz^3l-n|ro~MlA}^7|6=1Rz8Ajj^3I6h^Pw0_ z9;Jgm|Le}~u;1M3u#iJOqKQvuJl!=o(Hnht>abM!m?{BE!qK&T`*ypIlVQ|}_=lblH@!y= z*>zic!v6D{LbaUG@oXPfY#W}WAhPY8R!*z^+ul7CesJA`;oG-v42x8$)6RC@6KdO4 zbN|lKaGVO;9AO%7#x}%|Pw@eJjI#&S9LlZj-+GNO~%Or3TmWOox z_1A~beC9J2hds)U`zu$j3`ZV$q|tHNWtWBD{qA?>l;>S|VA7KJe*NoThtp0wExhMF z@3CD)mt1m*-NT8`E~7WU`OO)}`}2-FIE2Gm6*5MvyyX<79Mj44Luaa1>+n<_dB{5P zP+;YB*7izlO0!X9Pfc1FgiYyA=~#xWoF)~rQO46YieN_Mq{sG~Yb6eCO|NeFE0bTn-Lkdx;;0AaK4y&o?HfL`&T%i zU1h5i2LwC049o|R)IrxD%D`9UBSGu6q<8Q|{-*2DDtf?8xHhX%$_k3nUY;SZ_?t2) z)8trLDQ6x4t?wJbN}hD}iSv@T>%$ zXbI3J@yD2zW;xxu(k{_oGyVmJ-+VKUr43BqkI(cd=N({qXR7ze7d+$(4pJdl?x$&- z1gq!Kx|sAV$paibi}a-NMV@4)TH<%4DJ=sYf`fYzmf!r5lGpu*KEZL1#+z?kQ5)JC zD#e3rf~5cBE&QzXp_YV%z62*c{W;%`SbZ;mINWin(h>1ZhsMjJ>V&Mr#aXO3=;Y0T ztWshiz@Oct^V2(Kh$XPVft!rzh#5>7P7Mww%H;qzqYXmn=zQBD#Nv#nBgK)9)18@f z@0=OjCLOq*88gCR2LtN&$i$Gn8wXQ#*mSly>9|LJIHt`xt$U^7)dwia#DJcmeOX%d ze&oxX(-eUO8~M^N<3arSY`a!Fk28CZy5!PI>1Ft0as$4EGp@|A2@l}~4{`zr*W`sP zD1!{GcHj9z{_y7I!T`kO8etjm!LJQWgwxA_!L0^t3Xf2#L5B@;DFc-icu0{}WXNF7 zw`0PWXe!g8RF$*CNOy-0t@>N2Q#{><1{o%X-$W>5pTr z$hdUwzD+~nH!{5ctne{)Qt*Y^dmOW*Qn7V@+LQpZ9lh0RAY~ZB)sGB?Yc~#sQ|DEM zQ&!a}{DCT)jIUA255p^eJM*-8Jp1r5N*;?b_dSl0RLJFxSE~os266WT`G_t`27%vnW(0t3Gl1Tzv7x z;eY<;e*&Qn2#w$q+5R>>6Q%;^66xfVPxc4;jLzLC6IQnW;Fb;H5rs2otuEKV$7O~6 z-l54-o$(n;Yh(T3d+#Q)<6zh7N`)rt8VqyVs*{zrh4X=Kb}g*kJ{Z1te_uFClL7fo zVW=F@sPR^VsZ+(vtW6WuZg6 z2ClrfCmgQrYlU_UKp@@upL<5+(3R50(e>^qm#h})(9D)Wyb{iZHiT@ywHZOuCVx(>TJ$ zZ=O|apg6mk#SQggv>+|6vrL|B?2&^|1x`pnAGLyE`egiy9@^P-f(8y?B4G%}}@tbZ_m-0{kURE-X7jcpS+xi;HKLf`<_`iA<@RIm37chMO#^2;>J zg&m}vcY)l{f!LpOJy(ZL6VeBVJ0WLYan>s|A=YRUoL~CVmu!;rBOm#Qh4CV0KIwVS zd!B`;0Vjvr!rwdI@eV7)xwG5D`DY&y&Oh(ku;RIGp_4dWsf4aDQ&=k0qW6OBEUnOv9FYaG9T9BVgzQn##j~uf?)EQ!2>6OLfs+;gyifTfS8Qg+Z_w-a z(5!i^|8Op97F9kO7H2|x7I7zJjN>;3}XN;VgH3I2_MW6`t9(z6~}DtUC^4xa?QoE&A3Pm9SN?OmWk41KX=- zj0I=vS(o04u+YQx9Nnj!Hzj#sZp~D_+F%;CN^u(WP#}Vx5Ds7Tx>?Wks)j)mdS5Rn zZPvIGd&gk)-fU&c^`=DmG}Riw-KF2nf@{>nO?n53!H*)Eh92cHSMTx47Cp=0&^0`? z=soNrMRg1_bp5FAC+O|oOaXxt+o36;1=`4kKl*wmTH*VZ^D4rTi!|QTZg={h3H4z% zR?u(8cXVgoS22e0aY>oppHP3M_3pwaTy$!20Aj1etz#CjIv+YV5XJ-n%G(B8Y&WxI z^y;Xr!%GGjJh!Bb=umAo+2YZODLnuuxb|*$qEAo7USbm1&zMJ zOa3GV0KmfBSSjIB*jh#>oTb&FRe*wJmYl)Cm=pn6qn8fb(HUN@k%NWD0j@-F@RY}w z)9Rsde9N6^O>mCNpeqr4Ou#Z(K*tVVF9gPp;!E$8Xcs{`tvg)y8t^Df#kQ^1>X@pqLCXynw`heN6~d^_WcRo)EFT;Is&&`=wJZGSVa3f< zrJt{OF-T}C<9l}*^RDV&Ce4;1&(GgIIuvfwp<=H+pf0RlTBj|Um|0ylnWqGwBRdA=%$p^ZLVfL(U<|zoW#o1ol9>%MhrCW;C zskVdgP{@mOA6VU|OB1E7AXXbztv`1l>G?!u7%H131714_M!KxsO9Y>nS@A!~+ZyTO zUwOhI*{RhbrwhIqi6f(nMu_xI{={(hF$=?N9fV4{=bn4QS!bOU-uvG7hLS2tGB_mw-Q;=!?e|xg-5pbhn7a|d{SRPe^e-;XQSE?aGjj2=o$Kx?wcrb?vH9v z_VaTN2}iA%DW2JFIDH~+GNFC0_~XOjoxgrKoPXl{@Z!~r!h&|~!k}%{>&PR1^Xt)_ zec_jX-Vn~eX=8YfRl_V7YS#c08Tm=IJnWRf|K*_eu;0R#(A401lnAbq|4~IADaLnp3TlzOkPGQc88J0(;qh}~=+}dq&`OBj{;qpg% zw1c7CR=cNhat(b;CEp)C*dLBrULO{<`z``&X!3#cep6QEtX$Zu34K)f6ve#h(eiwD z15Qr4nn*v~nH-vW#~pXr%5{EIKj+V%ZwGuf>ueu(YaplC_rw+3gpI;EOx@-gj^KIo z=GiynD2X+^`ot9q*EbqIdF{hCnS@@ZlT=?5dp_1o-!Jx>elaE%ObjT-`lwc~H#OB+ zJtlNax%vX=L+;}m5XwyR`jYeuBZBW%EO%CUH#OA@onRy?gO`jLr*H!&U{k%W8C3Gz zAY<-cKRF0?yC&OMMNa}pjB$U=F~@{CbLJ#3l!W^q-e|i_=FZf>T50+6<@Wtw|Mg!M z%N>XN&wu{&@JStribMUp^Ug~qIVi^xJGAySuX&AD@3(~)yx;}lUGI8VIPSRPY$CK= zbS#_SD!4%#v-=x{KJ|e;p|(SHuS_e;$F*X4Y8%CE33P0%M0OfBCANy%lBjByhkj&i zFFlENVsx%%VJVNqPL!=ishI60oUBmJ+9)p9648l`Xp3@GCT1sMQ>JXM$Ya*_lAS0R zx9O&{e|^D}^E8<+C@_bx*`Gea6ZzUB`&YD*(t3kUiS0>!8I$99g2@TdoVI_F4I@ai ze+A3;l=g3;=Vnt2mV{+!c4dBf0gGcoa*g&c4s0tcedCai$z*Fj0Lh9Sf^^i$M9PRJ zt6<9bqMj%ejMJ*}O6>Xx@KIhWI~xt_b$kQ7PvWY+J+uxZ?Yf_F*P0kw*o5cwRXhC<7;aD`zf(;87A0WYt3C$|iyr`2K8`2+7MpVrBE zfpfW~VJFiXX(&KzrVP?FfVUXf6kc8W8@wCk%9Ya>^#K?!f-Il8We{;XzF4;+rlNIA zisc;T=5JW@XwAws<`QXeS|{_BmQ@xuT?Sw(%op%1<|ws=t=k8DTy(q^_V^R^<{EqK zkj-|a#-8PByZOz|zyXbmcWIH*(eg&KLzW>5_ zPY^!6W{X)jYT*kzj$5@z1spW>bsDekQhUh`zGFoX3Hk3F&_lg6typYH^BHUXrqfYI05f28rS!(d9o-E4 z5x<=8ggg;!y2BS8)_DROXTgEDP%342XftPi&6#51rOOfU%IpcPiolZ;j&W>5xfX)R-*$pA*rJn3Cz zH%dWhurVE9dY5?fboPc|2YHl19CU%%3>f5N zd|6iJOi%O0U4unoth|znVdbS5dYaJ4DFfX%yn+oS)e18sW20t<4ff!l&_oqf?BQN1 zd8byDmB=aLdGD=H#Ks|2>$IBvvcGhN+qJ!Tkt!mUMRjPerigEb%8g2U(d|9qEQJL) z^RPxcNRELTiBGQ)_VXG3AxZFGI#r^W*dc)FF^-89OrI9p z`^k_`?j7jt)gWzH3Rb5dv9>ah+a{;cs}G$Mj$GDmM0U%mcEJS~*fowF95rlPud2!o z=K#R^_3I6eRhu~FuDkBK@V)PSFWi6s{oxg_c!jOZWaWEPQ&X6)!xCS2+~RQIZ~m4e zb9%0Rx?sa3Lia%eD+9VZt@5m^uam=dILv8PKZwDemnCIbrPb{ZZ5;~NY#0i&6;gzE z(}_6v*NNzFzkFpl{pcm>M@3z~{sjkwRf}4~i3iQIP!H3+G^@QK9J*pwIB-!*_`py9 zs@3ogohAtuh?H~vgS}zttZEG;)vq#O6rD^$;b`yN)on4Z8yo9wEEC5p)8)N4pCMP; zv@XT*{@TB$zBxa!68dhf{D0qZ^TYf8&rupw$1z(zWZ~bNcJ_utZ&(vvvU+h? zG|NMw6o&M>+q(zDQPwJJH^J`yTgxTGp=wau6TZW(TiRbUiZ4!*;x%7a*XaUUL4lSUJ^T9 z_{&c?h;aljTeeJegmBggE5eO`+a7Ltv|Ayfa^tx3ZZhoB)$ZjN^D-TlldVsOnzAw- z+PbRXx*F;W zx9PM8ZCWJq$fLqDz#27Avu1fXE@;luG#-9&-92IDqM6~$Q{CYncNy>&a%Lw1?Iwwd zPFBWa!wqO#5)RZl@eQ4)oN`L|=tnv!@_W%vjJ6kdfw%l7*(lNe6y2Gzqst=4 zri`|iCNo*^L`4E8JV!f;Ym(cSqE+^c*;5HDc4x<+rMRmvyuIagCXV*AJI;Xe35sFU~TsRj(KPm8_-7`!Tya-CNG1m z{R;uWmg>WH;)@QK0Qpb`NqNO`NXnI6+yF*cD+B#vQrjI^B2;uSfi0hl@o6jNX>UdA zm~;v$EtwfKnXPN_Xd_7BcNY|#>OING9QaYUtZ?P*7j6mNff6Fn6WUR?>-C+1l?-V7 zggYi^p-#p&ATk49mn-lPAe;uLa?Li5${HHbL5FitaRjXX;5h0b<$!%=`jXr<|BvB? zq70<5l)=j*@EA}2?RUtP{K1P1$erZ*oBW-5!%V);7jRivF#;3p*mbb!B@iP0+9s0Vi6Wni@CmqDUiPHV)gGEhax=vIOwqgzI+!y;G9-}Kw5 zQ0~f~{(u)FPTf1Ve<7*CF^oE zzU;&3Ga0B~(;E<~L|O3{>zChy7g#d?M^a)A3!J}WuN!ZIEl>vFG=Ed73_w+>K5<5) z7Jz9maogIyu&}i~!mtcx)Dt^iA%Z#MCXJN) zqP1LydP;2*<^TidWV{H6zX^_ugdn3Py1LK*-Wk2P0jl#_A9Ow*h zSltrZ>lD*iEsE+^dYltqd**$c;?Z{0htis6#rI@Yc4Bl;c-EolOATO&9LXiD+LlAU zM6eS>ywS@tsU3!JUwx>++8Q+JtBIM$DosAr)tVy%x?|#cRC2oa(f+Vet25g2R$&9m ziu~nrC?2xZCn<1h?dt3ZJ9g|y&}8vh9ag@Kq2@1`Z|xzv`TQeXw!DBdg$av}j!uiw zT%}m^Ez)TYtHi0n#K>#KfDY^#6rpUW*zAMTp18E8+ISd9a?ba49FqtJG}B~kJLT3Z;8p8t(2xs zLPUE=!m#+j2R>k7pK#`~5}Q7T811*-dTY4w!VAN%e)X$BoqhMa-)&<;-eVOtZ2=D9 zR<)bh9fT`nqU|eR`AQ)4387I~oxOPR;?N+Y?})|C;p=O5g)_9eR5sfbsd!n$cBe*l zg7WW?4wGtX1tiU3cB3LtA%A&)QASZ+O|Ux*H2j ztIaw(3~u%6)zZUS+kFrxFXJkC?6zH9yb3ym)7&#G0c>|J8=QpNykHMT3-M!`1F@-oW7%Yv~SdgZzm^LE*#CZ17H!8vS%@^9|B zjp8_yyHmi*_R?y#i3zuTENkUm2(Q_{*pxZ67P1o)C-@%Oziv}bPiy2WvC|B=Fs*xJ z|3;fK$NrsM29$|8z>P0;5U8xc3i$v;RgV4Zuv5?~T`bdTcO2n3vA}7ly)axP$!FUB zjrprUoDjQ_1&^@f3RjD*Y8)xA3H84=!D67iD?3iMcZK+(?wKA!iAbRi0Bh<7oZ7Vt zO~%19ZIxz=w5vO1x1$>%L_C5iHJM^7>#k=Nzx18l5IC#(C0$IQUyE-me`=G-ihI+*TDzpCDGQs(E5Q}NGP+q5tiPqG5Fobv`6xtfmM_7< z@^rM??g+qk2g`(5LIe4eRA7bk_s1DpcL!^FC7^__!dS_Uw%b|S9c=6yoK(>}g$#^- z7|SUGz$bG?9UzX0alcy`2w|F56W3&%CYpVrTVzgof+T{?lL)rGjH@ zG$Ic7ZX5~C3WvCOhR&zaq9As9cX#Wo3$@X;T1dc(Zo;Rig%J_uVWxI2ZtfY7Lw-ch zOGAyuJPkF3>XVaMFzouSmIEK#M^QI5#%0$M{k~S)%h=F5wXi@m(>9N2_iu%s!CPZ( zr6vG|!d=2UueBn~YE(OouT->l4VGvkpwbqdD8iT4Z&q2`OkM+HWuad0Y6KHzD4glK zjxn1ASUIO!wo0|_Hf@%TwRBdE;osV;ux8?kG3`MMYK5~b?9{>>4NlCD=f$N@8c-T( z(KaDj;NxXMoGlO+&B)xx2`U#|3s8T^N@cBgnFy9Cpj-4uT&Oj-3)6W0E|7R}Qe#{I zj#~x?k-JUBN3|l6HJ%FXPD&MPSQKo@Wq?ELb(P^O^V@(!=T9G$s&6USMY&jf3CLR+@n?X zU%jCtyzST)Ia10)k6Hm{2@|{YF<^fhydqs9Y)q*_b(B_XMIgFGp%MDTQhq7%Oaiq! zu6l!mUI$Z-_jiN|9ZG4FJdA{e2Q&oh&Pe>=|?u850gmb+(~K2SaLAy9OhDeSP8kKlnj->p%Tdxbn(h zh8Ms1MOw`_9_Fa?#-Z8Q*B^fL;~#}Lo^wt{R?Anc43~cMo8iP0PYCm7G=%=XnPJzq zM>X7_Y$%95Pd=zERJMDLYhS*BYI>_Kc`75E#5j#!uT|%5gilbq<(6B*Ti)`PaM48< z+3IxaE`yVFiuD;oiZUQwd+oL6Tz~P4Uu@@t@a)`k&kg_m-~Vml5sp9pcw0eBeE6dj zuk1QG+|%;50ghqXcOUR9mP4%^r}Y}Ova-3RM%x zP(7?Xj!w20J!fe+_wLQ%ss}s60wk%{pQTTSoVIB4a7J{GES$o5dJ&S{k+oWum$6<7Q${P2fAv`ICb=g=Osn4=J3hqKKHrd^wUqbFdbDg5MFc2s&Ktl zXWzZKH?*m2(+7W|H+32({H|*(yl%%(n58f##Uyx)^#^eq&&9mB8yHHCkVyD^2eob2 z9P6p#w4zm|>cmP?BHsfKJkb8^M(X2bFMF9C(D}+&zS8O{@xtT5o`f(V-gu$((wDx} zboT3C|GGKdap;rwU(^;Bl&zn%D}-khxu@(^yffW5IzZ@_zCL%D6SEzi-jf7$tyYSY znBd|7Wt?5afv?l#3w49GjdqbROchl%;e-Qbgd2akIn=CXq9L0fSHl`36QJ~uw>}t7 zJLw4Plb9f5SI`%}@CBQMM7E?^?YTQGnB*Y6{N*pVi44N~P{;4Q^G*xX#WQG`D^Hz^zF$z{^sNPgnGspmF$XEBQ>v0=ikhd16)pUR1n&duwF^+d8 zarKra&_>2fwX3@#9JRC}bje0(&^WnTgFu3+upoGb;xo4@TxPZI_h^;5+&X%Ky;2(5 zn<~OFa<19*(rkBk_sS1!8FFej1 z7!=`bU#IONU%thi?NzD>tZb7mKcNZ7NxQbOKe%fweCN+y;Vs9tD8`jE~+o>gp5 zG)+&a019Ph4O3MpYnUykxt65iNY51hbkayY(>u1RreT&2=anJcud@M?hKyBXLt0r@ zU(Ysm2JD51c&gr06Rn1Oq6%lbuXKfRc=sW^x|nGg&VjRTO!ZE<#$?cx4s16AAtT7A zs)+Ui-H4DwpX=-DHJk5om^W_RBnR8Shi}SxP8!xhWhBB+G^;}(dp)sZ-U*0$@KK~9GTY$s@7 z#j11CmMvTCAikHp>Bx`<%9#1#C-;Sk3RaS zIn-~w@y77_*T3H6MJ#Q~0tYircn+=Q09$q&G$=gMi;r3uzJBk{ut?2yI?8qdDCCLdN2Z|WQg*K6W^u?G3XeauhL$=Cqd z)(V~k-GBV!AHz?6@{&x4EoGx{zJPfK56&g|Ni&eisQ|j zH;2!C?sMUiOD+j-c*7fPqNt@syWZsBf7Npqh0A|5eHy>)Y#Kf5_R@6h>X z0A&C&7lipK52u`RN;v=g^KErIlV^t?ez@r;JfOdY63%5N=Ww`lpz>>8^IGZs!mv>1 z5j3d$C^z1Wbm^xSH(=<1E#57JdGbAIz~Rp7^yqA#f~?6elbbRh*5S1{)gwRL0~agY zySn;< z^dZ}!f-KVsXZwHt=YQI*=RD^*_Kp4#dW*h_Gco9!vN7N_j*zaAZo26v>GWsp8u%y! zCM2dzs!+?9&eX2O8X2%MK27%1z)y+j*$2;D31sUljtO^8OBzL}5%nylbYB?nW!i!S zE(344^^ti$i--Kteftv;fKKQK`1vCg0S+pyZIqiwV|4Y;IN2>EjL?+ox8c<_`O)); zGNX6^06+jqL_t(%vFA~iz+~?xSNU`mLI7QpUW_-4!NM{$nj)NkN1Gz|u6|9O!6eYa znH2!ri?GP{N8o=EcxI)bX(<@UdD@=aYrY|I)1(PQJ1o zgZjxzINfKRk+Ar$-QgvN%2}$ogbc)d*!E;m_9Wy>!y^ZI*4fUAc5hT^Bx7=0 z&hN*2lfRP}vAO&=MCp_WoXB{`K{oEq7*d0)syew)GlgX!hv`Efs$9#cdU#yI&5=&YrMKTOaF~1kgZleya{S z+}Iy>iLm*qsH&Ee68%W6oQG`7Bysp#f4_&iz)8+ZYho{x(2dwO;E)4dbf8^z)l~s! zJI>$_e(-}PUwcU(r<`(%IoWXz1IMat(g6!~xTWMZMw_bNkv!;}El2kCTXj~6!k%!r z=b$D#)BPIx;$S4a1`hWpDnTQ1=+UZ`+clAKV*TWu1CbW^XcT`IvO_oHfsH)B;)*M5 zhXB`6rcp=HO;T(NaMI&!Kl98p!>2#}>9F5^`(@rC%+bd`{_*hbZ-3h+NX|a{YYEa{0t z@klR@KKf{*;NgcKHs>~>vbwbcu&aMKbZQW{VMmXheXwF~V>oL046QOM3oBNvF!^15 z_0?J_uJbUGd>KKelSEGbX8UgWzH1Y-~;{V4}luJe9O zTvI2A1y3w?oceXz&dh!4?}7Wx3(ZTaLx)03(MF})0w&#-$Pm2s=Z}Uv-@7iHdi)`V z7DqVs8OQh;XPjY^W=9-xgyFLh(lZWlwGOGofh62m8>FFSW zSU>g-FDV_#R+(JXx{r#b6QFsw(vLHBIOk^kVRbY0wk~aCVD}?X`Wsj$4mkLS9&@~Kf75$8eE4UvvI#f9Yx*Emj7CCMKQoveW%AR1IJ|IYXyHEjCn>qieKmPE!tk8~ z;18@#N})=F7rf5Uz*F%Qk%A*1f4rB2KmCIjQor-xCyQs(vl4h#0((^g*!&$@Z2;Fm zD8C*Pc94w^b;F;ELJidw!g>LaS9iNZCK7_%OB<^7o@-9yFj(#n;7CmR{KgOq%Ma(T)?Iya;atZ>34dE%+t;OR4M^+ts9Z$euY? z+I|1iJrQLq-EEP9?gNv+LaOx!g0Vi68>tjw z$~GOI>7JqZavO%L?&%7*X@z^CnC(7^(69dr&P_1o6lnV)&;9NkC zoTzPMQ){~Haoz_|(w)i~VPHa&7z!_gG3ygJd7w}Ap9n_bUvRe5^|dQ5bX!A}VyUqu zOIyVf`3*^S!#XRVYhYMT4y}aNio^wqrPe6tUX2{XX}E#G;jlx8IquZ7F)Q6m#)cHr zU5C=fHsGl)v&TrkZ?UTgboz(_r|m@-T`XtM@(jl4z=?I3Rjj}J-S0B1TRRlHj%{s? z3Z?O?SG_6_4&kG6EVn9_vwCjSmhNVc6ZGJ?EYxZ5F|vL50yVf%p;Yh@dXNdvjL9F; z4#flhzwbNGu0N@G>--f;#K9)6GwHtj?h6MWe6U@ooy!|{4cfpBhdc4|s;fPWLkt0d zsFUhpBA5R?J1{hCPs|5HJ7Og^*R{&&-W&Qg=h9e@vrPwNYP(_*EM^ih4AeAtEa$62 zdZ?`=4JtPD#*G^ls_4Y9WXTd+dBN(7!U>ss7!(|EBtlQ%Fpi-kxJS%vb{pVuzxUpI zE#@?bM%Jl)QTH`TUBRj*Iy|5Oa6duuOMGQDxMHF$L0{?bpqa25Pel8|z!xLpKAqvB zU9u+QNK^hd{WZ?bIGHgtj(?emV9Pp83 zWF04u*mXc+6;wV)jPJVC7rsD~Ts3Nkh%Z{~SlN&!AA72+7+u41oU?Mhv7y#jjkM?B z)ej~`*o^=`a(a?AP3qaLEsTAC5d^MQGMe84g4x z6co;KzS#wkp9tA?&N=58EOj1PEK$30`|Y=fFMjch;alJOR`}V^ewP1Qm^W`;`0$56 z9GD*Ie{6#p;_)Tgr?t}4Q_q|gX3lI6qdKJ1DbCmI_(u9$Whmx~ zDWg~>#lpI}?Vbkk7K0P2i-p}|T0x%F4=$%loj%HVNPhhC=g5RIPl`s@SdbGXIv7jrQc*@amdmvZ4(9XY#H0oDjVmDKcn-a@P(NBq;&5-`Sgb z7_mmcslMY&34Ec~B0-j`0Q8?*nX(q@h$Wi~ce2R1%EF|cMcf%Z$i9=sm0ab(PI{Vq z!(fGL8g!W#iiQ>4MtTuQ_n1~uV=~B4RrsPkf(6(O%Z;VV<(MapYWXnnF^ zqg+i~yWuOsK54Ylf932_9 zyrE&b#3~#~u+t?DVgVL9 z?SP+YfH~BQRc_!UZqRfISs^n!d0mPyb#hwKi{1030|iuG7z$Qk419vw1v#hSseNHL>QlVqmrtiBnQ9PaBG z2^&*}%p_#VjajPc`ziJSp%FGIHtF43b+p?g!jEJ-3^7?nlhrZ3#G7-plI@50^oFG} zq}t?oVRe&N_}yZC>H|nFC35PPR%wN*>N*Yv8p>IUl{H%q;dH{t=J^c81}ipgsF(=b zbb9sJ*sxZP4O-0L7~Y^*9DmPnw4LLUA3@RKASV|vNbrCJ5t zWLvq2U(Gi4mLy*Grj3t=4I4HHuGUrxHrLmMCOxazrWJ_0)vJ9qCI_N6u*y15JoGc9SfA-|>4Zr*>`6O!?hI|_ za910st$i+MdsOrX_y-lLz@6?-T!@aM2?S6ys_E09LkD52YWMbdd(R{4JgKRvDO~xB zpN9>PJmQWVy<Yrh!U=Y0D)(^s^~?K;b67hW!vY;j+9aPmtAVqW0lDuJ6Ar4Dax7}aa-|&b zIt+7*4)k2xJr?F@c4De-2}&7wTI_6H_x1If3|LJa!|z1rdDOvOia*T?Zw~3K(QXay zv*Mi;Cne}N>BHl@5f{$;IB`iYmZ$E9gAdAip7?o0p<7nWtP89equi;F*Xg4Gi>~{vCYqAvTf0y(ph3TkzQqA$>Ec zi7pKcsO?ljPf5PQ++~YSGoe8uCj6+znIz;l6>Z#SN5(B$p}$2ThYp(W6G`^s6d&|? z97@%sT?Hh{7us>$_Vx{Eg0@m+;D>+4DmMkHoZHYz2&7fBtHSR$YNp6m+h;-0&2?JM zbin*(9juid=ho|>QR}M?bw0f$T+T7B_)$k4mC<1)kNIm=zjTBS2u220M&g0QYWUy$ z<~QN2v(5@LXU(*GgBs{jZ-4`yL{WC=l^NQ8%$Yd@a=x2^>5upNC-OnhnON%X?pIm+ zA+gARx)di5&?|JPTJn1CG0VcY|NFsEIZJJQUW3phUY9Sa3zvQQF2VgFyzTX;8+vyB zutNQ`(@qP2`O9DIkXiJPP*a49VZz6C*XuhkK^x&`2sc9NK9YZa!luMVVK;@hYiLN}WOkzPTDvDZWx6ybdlLAf?O*9G zhyPA*|H`IR{-nKc|H49W?tFyI%G`u+%aK)fGQd30i3bu|Ew*>RG&uxV;SMqx}$6Q6+q|S~z7q z5DfW58R)`nSXM*Qm=l>`f)C{f3`B`7O?qm9l^ie}FbH|JU_Y)$>c{^mQuXmIgEC`?Z1Ho8i@ z=X}6OFLjFYf(B?UlfD>E&pM*ae2>dtF(!EGm&MM{JjuV13&-ZCHt2*Qt@wXYyr6%tUllinU&iDtKI3=9@H7iOSBlR zR&wN+h$ErL%Ru8QwHxRP?Z%YlrFX3@kRAdDU+4wNhSbW-e(6J(;>+7D^c9(Lll!EY z2d-k?8Ka-kxBCqvR0>|txJ$$c+9E3h(GU}ScXFhx}J26=hWJBH*E_{s%X1ald(Mo3rU%*Z|n4?paT%lE~b!oh( za->rUVDvgc%Dn)yMvK1D+Jef|ML;;p+%<=PnAu)->p@9*R9XKec`2t$!Vu&&y1ut0w-pT9L8dKTt*}-HRsB4++62Q zbyi+(*Q(bSp8kAoO-}}Is^3@s@>k~kz+j4vI5OimF|s*qja9E4PF7motgtA3_6*pk zjd)>1tJ_D*IKcWn`aldcHHf{M1-M@a4bG6mYU-km71F;6`7k&*m=k6vJqAFIwQ{oCV31Br zsjjXr;M^qr_P4(cgq`p~w-3JQqX~;b0xmk|IZUWu*;20g32JIJ23x1FCwjf0Jkf<3 zITCRu;Ake!V=QOzaSh*ltt=o)#Da4~6DC)(#-s-e6ZTZryo*0|zG8e1={uiZWhFDM+c)Gv~qzxVnUdZRQ&mSIOR1i$KjSr#4`QiPyZ0!b-{1K{Nozcmb(4}f??gM zSgP%ZHiV-NSrP_IYE;*yvsULdK`iFXxK81Vmu{m#uj~rhDAU`C?(Ak%jXg89?Im1V z&;srf(ZD%1ZnVc-v)|-v4kn`&r<}&^iH(wl@+-;|JIU-s-KtQ(HZ@-<`&Z>LEnkVP zjJ}`)&R2f!{N6MB*Z4A4EmDg_VUzY)uoUu4`Bgg!dwtulHae5a{@Fko^tA|E& zyB?gBw&Nxr%GB&%*#|ge7)#MU7)18NvT@yV`J&H) z221{e;y(DJA1J~B6Z15lxM9#ZsJ(6T-0guO#;*k~#N*%iVbr(^Fye(Ao*VymSMSIv zM$NDB9VcW759rN1KxIevt{5IjRt5%r%VSOr!+=7 z6J?O17g*C5cz3MyL)68{7xxXXzB9U|$uXR$=J1sqfCXj}Uq+|Xkku`qNYYvIkF@eO zWg!`4`7*#v{*;xM7w@^>jJjyACb=7};5B_g4=oV~NUlJLRCGt}lAWz=1i7FL>wQ;FJ04Kgb>WtSL z(Ly*|-2+EVT*lu_(viDA_53r$CNFr)AwqDx8K6ly?D+uyu?@>Y!(kY7446Hldy>o^*60mg2=IAwod{%>Ju|jZ7f@yGO zVD+xep6i*-@*0$XQ1I3%i$1bhHMGa1*}3Yn`)%8I#c}SnK2w zjbOPZ#o6;TtU0A^KtNv37sAgU_)(}nFmYOu87tkj_S=l5h?8&UODjAQTIuYZugRPV0+RCE@0@V;1rNlg%mS zSj;y#%ECQ5T_fEYat$YzuFH(Sc#X%m!Q07N1Y`O%w7D+j~N% zwl^=G*P^Y?g(nsA-|rn92`{_*(Qx6f{uU}?ISGh*K1&1HYt|2jBNo+!`7OTHJ}uvT zTu+bRDrtq0DXFNo28@`>3)^e$bZS-w5<`?2w+9}4XgJ~c<3f3DvvoKaHaFaOQ@BYE zG!Fk`AmXdYh80d>lN=kj>F~5~nZupB8LH|+MYV5Fx8F|>;dx7?*zJr|ae9#Y`v<~j zKl_=mc=6(J*Ijoj-fWx2biVY`OBF--W#P8lZZn4(upH)zv;7<2{DvkpUKo0Nd-d*T z!_ji8tzW-EtA`ip06(qh-aZ&66uZ2nq)TlE+W*W>YBp#(!}=ZlI%uUbteoqPDjZp{ zdEp?tKGpYTh3EM2hd!)BDE}XGR1%*UXFIDgi33eaJBA;-WZB6x{i?FZj(cyuN$Wll zW-E4fV};s%$*fUMzm45Pn#AbWt^u_NWS8i3%sIA&^wIoL?;GkH>@oG9@CpC;kN+6H z{N*p(3it1R_q*Y6IgaVSakO&~C<%ugZ3R1;?p)ug@rX){5H}iZFKf*XkPP@q_}~y9 zOX8ma;CeaHX0t0RDpn3n+)M9wI!yCFHCEKNOXGN8Y?bIQZn|MbJ~(7G*hx}Ol1Et;K~(DW7ES%%qJvw2%* zxZ+nghIhUBXJP*HXNE7IcV;;G*nR?GBVX8BR>R45-j-{eY#Cvwpvn;(q#Zo z*uN||OzW0iD;NR}CEkuY&IB{gFp@b{lpXdu6Eyah$sSr+Rqg%I`@z zwfI)tY32E3`9NQztPNiDLK|$d`q%D>9Gx#{G{PqjjSOJr+hIl^){$72(Sc|PctbL< zRl3Mfi{&ioeey1~_{F-TN4jM^=tK9FsmWZ=)Sekm@s*+8@`o>XMAAwq8@;37wh~s? zNdhlAi<67|NaiTl*bW)QegMYc4ta4MSK*s;ERjKi(!P*CGKVVg=oR5j=&^PyD=%<@ z$0mCcUU8E8%4OgZSRnzYJxgTc`Rm;btr6B~<$0#T@GJH7v+VG=CtZUzvbu? zol*a|M>4*UYl<)Km6Lx)SOOHStiZPXm8Vgqd&q$H#bG0@;4M@Jf|ag0+6bG_DqN8- z@`p~JcrY^UgRzvCm-JBb(kqs~2uSh=%<*RVf@i@+TFKuCi1~XN0B_|5P7qUma-gPV zFr9AM3TIFziTW{>ZrP-51k|_DO8)6GP??lj*`n=^7=5LU$k3|W##f?SR=<<0 zUF1xkz&+=We$E#GczMb1X??jUU?Mt}q3A28Lz++{M*);;KuHC(!ykosSdImpt%g)g zS?8hqBy*Z8QyVOSBQ*nqurshC);c%60}*ui<7GYzrTnd+xbKWfV9L)GLvDP*mI^j@ z3@{8V&k+u=2#>!Jt)w zDH&5(6)E#99ZuERJEYTwwK_=4z!71wNuricmRLBNo7WF`Jk&`qPlOJ2@~=96X;?hV zS3OPwDR6_Xe8G$c`z!Ex%3H)BJ^kn<;ns(Cgzw(5B`nc$N*qp9W)9EWqE+s9J~9~Q zG>|Oo{2~@xU6?Dz>;YAoox))e;2ZIX5Xs7=-UMsToAtb&2NTluDLqA`OR;( zogd|;a<~&ox?D?uhx;PRXWlnT%7jBQK&E|RAXq33%NfzBg97VR=b7mE)vtaXzVn@L z+o7F{7caKe*~^wK3-5gAJ8hdiSW46msxd5tu84a$CLim&MWEkHAoMLbYG&#b`=t#f z;jg%IC@dD4m#z;dh0H%ZKR(#Zoip2o4|KwbaZssDsGGblJ!IS zK1!1r*I$2q_}Irj7GCj+SJ<=ofuruLU;V0uLg3yuoq%)mhOW?}iB23>a}?r+NdPl0 z<4aHQH}!ZVaV{VyR6#!1tRSYLCu$*%b`q17{KZsPTNhrh$u%77$1AMPY#lU9zm079 zUa(++O;+GoCyWG#Pab>hvElyv?+;8~;P7MzK|Bz2izY{Ybkl}#peC`s6k<-9#1!ia~j9(Os zzDR$REi(DUCq7}0V4S`P!?Yzp6+&k~$p`N~kSu_~U>DU=0iTh~CidHt?%gvO0(ZY(hZ?$pfH5emUmDZ_7M zAMIqZvX>pf>P2=A5R)DGBB#icQ?zHF*fWP6xGsr7ImWstzHRbF zc`sU39X|G+tHZ~>e@nRFAC3;k9lq4+610(kMPF{acSE@Ne{K(3uGt!vp4br9Z0`zZ zzTg|-<>#&nXPmGqtXMe1bStYd8cwNPdQ>-WxMOYj;&1K=y?@vdmMCt!j+>CrOtzKf z;O8H#=^744oX{4IKWc?`K-6ly%jBkvZrKyl+Fr?uyJ(|e_n7Ur$2LmV?l8MFu~9s9 z0fx5QiP)58Pl-2-cC1z{4Bf!l6-`L5u6+bd%yiZ(-8)Z%Lxt%Clg^Rp+W@R9G zjjPS!p7AAEqZJt_nf)dQ0rJC9Z8jya`sYq*;f#EVR)hhqV*@BtLrtx zL3vF~kiY2Feey>>@a6Zsyy(jy+jK~B5TIB<2L!9U$2Cp|r|Fh(L|(D0tqc%=5`6LJ zI)J{&2LWH?CkGMlt0qBhLa)OD$20hMnalnbO{PT901oi#y;4o^Q#R-!G7zm$kmQH-EI)lyevvPu6-3Gyyrx^UMWUB$?wKBlCS@k9(CR#RTj0*Z zn9qbF4ooDp0vpSbEQ~Jk5b2+gj=2n+RvhiXJFLn;2%J{Yr3nILX!)mU)eY($ax*=m zyvo%68?8xsS()p7AvC_EE8vZM0ZVedQ2s&|qYFe{nGlS$8m#COjH?P(28zRUfhG36ko_>jF7rzD%%XLf{lDpUecFHtJN`ZCa_)xqD%jn zWUzV=%P`>!VIy1Dp;!jc75So$dHxw%B}4KwT9rTF_I^@l(qW!5x|J#e-gUmv_oNIW zU6err3;hObW$X38XazRE4C4FnWi%yxNsn`M%Xszo(R13kOr3!*3=JipoOM}yok2H% zm6}jqNf{tN*F!JwjJ~LB5R8=#u=+<{lmqfKzSPdddaTE;hvI`w$lq7HLzDVI^_SMq zfK$I?*+Q#@wbFh14x?2(m~JNRq3xd0J@C=~NBU{!gvn@7_MSg-MGZx#!CD#6PXMd7 zjJ8O#49LmlO1tABjbi;CQ^>$be<&62*gcf1^59Tao|(QVuaOcD4-UN(TFpP90V;TD zGi+=j`GVJ+@WSCCnM9(>uAGWgrom*Hkb0awHJ&1nMwSdL{yGv$k};)<=z|Cqdj=MT z$ZpA3o+1D^{n0TS>2&TAFbai`ViGXnM<@gsLojszG!is4{KbS~gO5K7eq4W}5&)f$ ztvrZ;`gU50n~oD&!Z2Dr?zwN}%>tXStPp_JyZVSS$fY&%<@8FP##*FPRAi8XgS?S} z6_^SIuEA%6gbbwTm&=#RKoyaKEX#!reI`6aY>50FZzz!ADW{xb2Tjq`E|jyrV{CI+3Q&?T3R&g; z#|?vuJzN(W<;Z{@Wc9R7=$=BN(AvSJwb%N#c%fS1e$PGk*nxAOy6``ASNbJc?381! zR?9QJAy!>W-s4@iJ^$%Xe+ut@_q(+{f0gMkCU~*J}mf9OG@Lc3=>1eDSOXtp=_S^Q5~th)5i)NO**gfBfU7V|_YI zl`|9O%$Z}3jbHxqm*E_(7`E8Ca-j4L(ecm@KZBD7muh&46+usJf|#myqN|$~|GrM4 z6o{37#u+bEyYXBLkAUtH#^d6P|G#j$R=X0z*@iso;MJ(^v4EijItJvZWECr`f@y#M zUK6yHYlYImGfTt0yELfL>M7!BGePm=J2z){0VaIyQbT>o+(vV_a}L3mzw#9ue6WI$ zw7o}XGf2)H;z^A5AOGYh;kH|E3lBZ~kUhuYNmztd?KU6{Ymj;6?T>^G<=3iRH9hib zA2G8$)G9#UuhAF z0)>-VHAfS7vJucXZ#ng~mr|^YjNN*A`_=E(N|x>@+no%jBY}4rN7pGt-m719c(~#Z zn{DEfEyj#vV}egstrO~L*~!fcr#Kou`u=NFndtXZfc65=wW0B-y0Gk|#?US2{X8uK zsXDPT{PYhGhM#`@PCX~wS^j&xtTB6YZD?Il8rMzn-y!D-jg%<6W z*)hgMhua+)+e<6K&A8OqEuEtAi=DvOo3JA|tr&CX*eJ>ZJ;hM<1x&hOvSJ~aj9dN1 zgbed-6vBC8u$%oA0rd^6*;BGncn3R?P&Hk2)!HQ4AtHndmGOjMkf2rt{7qliaur^ZnCuGz(?nsJG$HfihN@NPr2GJD>K0hmGI(&aT(dST6zEc=rRD zZmG=3aa^$GEEeHeT9f)6`C`Sip1W^J_(Ut?a1)jCM@OKO$$xYK{b0hwc(TSf3u~)a zfkkg91HoFkBCiasRt<#D`&e_-DIe!cxFmxK=~gCx@ntei@N(ZKsc74fE4X!!WVEWB z(&a_FW#whC*|No-gEV9WkAy9AceOyM=sBw%ICcZJYH;;-9v~>KARi z=;V*;jZFD4-Ac+!if9X}krg;iW|n_aXQ;EvJL=ZBa8tj%jiU^_9H7pnnI4m^Di=>g!|?Lbb7(~e^k;3n=%n?JlQ_0>OYe+paWJqbl_V!CjjqJ4thlySoIP14l?iu z)^H?^A+YuvN3Zx|TbeY7+X-H80lfO4yG-t{m8kAQ~8CU~}@<;~4o1wJ; zU#2{gS%xns))djpz-53;&;r0YrFgBXV-R>rc+CQXykBGGLg91jm{9Sp}TQLM|HVg0n|pPCOjOeIxkI{QWx zZg#DPWcb}CFo zzk;?hsF+}Nw(hCoJT+xikZLJRB0roe$Yx|?PiT^pfde6t=fZYh9lBGif;T?;sBOy! z6}t#XQ73z3m^acE%9p%g;lgm?g%^fhij9k&SIP0i#D&R^LZB^sCMG&*bGUObZ2=h| znW!t5Hpv#>$T?F$R&E*=P*BK{dd#^2jF-@h)*(1FAw;xUfjro&h4GjNT_@EXxh0?L0-yE5zQs;#|xEMa5{<%{7u zq{)y~%jSg7{Od8{{U5nLEIX_|?9xm^eu+}ox-|B|3AW_e=1^1KVs$ST3GiGGs{QNN zc#8P%q#-$wn8cZ{Q?09?t1vjq6BUc^0mHl0LnhpKzdL!CXCz>oRsIj(+ZW#Rp@YIv zhb;@;p)r)JpDU-LgHXwAFSBP78%0D<=ozv!!yecq#ouOJo9&}qB5dMhHBg~;8zr$j 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≪og7vXP>{|9s|WRw+?|EtJNWDbaZXA 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 k Date: Fri, 26 Mar 2021 20:36:06 -0400 Subject: [PATCH 35/55] skip failing suite (#95596) --- .../pages/trusted_apps/view/trusted_apps_page.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx index 1acb12b71079d..81bd44586ddc2 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx @@ -43,7 +43,8 @@ jest.mock('@elastic/eui/lib/services/accessibility/html_id_generator', () => ({ jest.mock('../../../../common/hooks/use_experimental_features'); const useIsExperimentalFeatureEnabledMock = useIsExperimentalFeatureEnabled as jest.Mock; -describe('When on the Trusted Apps Page', () => { +// Failing: See https://github.com/elastic/kibana/issues/95596 +describe.skip('When on the Trusted Apps Page', () => { const expectedAboutInfo = 'Add a trusted application to improve performance or alleviate conflicts with other applications running on your hosts. Trusted applications will be applied to hosts running Endpoint Security.'; From 533a7bb56fc90526231aabfdec8358dc0546708f Mon Sep 17 00:00:00 2001 From: Marshall Main <55718608+marshallmain@users.noreply.github.com> Date: Fri, 26 Mar 2021 19:44:46 -0700 Subject: [PATCH 36/55] [Security Solution] Split rule executor by rule type and validate type specific rule params (#94857) * Split rule executors into different files * Pass type-specific rule SOs to rule executor functions * Genericize function to narrow ruleSO type * Remove undefined return type from getExceptions * Remove unintentional change to SIGNALS_TEMPLATE_VERSION * Remove extra validation now covered by schemas * Remove extra validation from ML rule executor * Fix types * syncs schemas * Revert "syncs schemas" This reverts commit b1dd59e3f046fde959ba13ed004575c837874ad2. * Fix api test and move threshold executor test * kinda adds eql test * Refactor and fix unit tests * fixes marshalls mistake Co-authored-by: Davis Plumlee Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../detection_engine/get_query_filter.ts | 4 +- .../security_solution/common/validate.ts | 13 + .../schemas/rule_schemas.mock.ts | 81 +++ .../detection_engine/schemas/rule_schemas.ts | 15 + .../signals/executors/eql.test.ts | 94 ++++ .../detection_engine/signals/executors/eql.ts | 129 +++++ .../signals/executors/ml.test.ts | 159 ++++++ .../detection_engine/signals/executors/ml.ts | 145 +++++ .../signals/executors/query.ts | 89 +++ .../signals/executors/threat_match.ts | 89 +++ .../signals/executors/threshold.test.ts | 83 +++ .../signals/executors/threshold.ts | 173 ++++++ .../detection_engine/signals/get_filter.ts | 2 +- .../signals/signal_rule_alert_type.test.ts | 311 ++--------- .../signals/signal_rule_alert_type.ts | 521 ++++-------------- .../threat_mapping/create_threat_signals.ts | 1 + .../signals/threat_mapping/types.ts | 14 +- .../signals/threat_mapping/utils.test.ts | 37 ++ .../signals/threat_mapping/utils.ts | 3 + .../lib/detection_engine/signals/types.ts | 28 + .../detection_engine/signals/utils.test.ts | 8 + .../lib/detection_engine/signals/utils.ts | 8 +- .../server/lib/detection_engine/types.ts | 34 +- 23 files changed, 1326 insertions(+), 715 deletions(-) create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_schemas.mock.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.test.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.test.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threat_match.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.test.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.ts diff --git a/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts b/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts index 8234c3a9a599d..70fe2b6187aa6 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts @@ -22,7 +22,7 @@ import { Query, Language, Index, TimestampOverrideOrUndefined } from './schemas/ export const getQueryFilter = ( query: Query, language: Language, - filters: Array>, + filters: unknown, index: Index, lists: Array, excludeExceptions: boolean = true @@ -48,7 +48,7 @@ export const getQueryFilter = ( chunkSize: 1024, }); const initialQuery = { query, language }; - const allFilters = getAllFilters((filters as unknown) as Filter[], exceptionFilter); + const allFilters = getAllFilters(filters as Filter[], exceptionFilter); return buildEsQuery(indexPattern, initialQuery, allFilters, config); }; diff --git a/x-pack/plugins/security_solution/common/validate.ts b/x-pack/plugins/security_solution/common/validate.ts index 22e4179ae7050..79a0351b824e8 100644 --- a/x-pack/plugins/security_solution/common/validate.ts +++ b/x-pack/plugins/security_solution/common/validate.ts @@ -26,6 +26,19 @@ export const validate = ( return pipe(checked, fold(left, right)); }; +export const validateNonExact = ( + obj: object, + schema: T +): [t.TypeOf | null, string | null] => { + const decoded = schema.decode(obj); + const left = (errors: t.Errors): [T | null, string | null] => [ + null, + formatErrors(errors).join(','), + ]; + const right = (output: T): [T | null, string | null] => [output, null]; + return pipe(decoded, fold(left, right)); +}; + export const validateEither = ( schema: T, obj: A diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_schemas.mock.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_schemas.mock.ts new file mode 100644 index 0000000000000..a855bcb7cb6d0 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_schemas.mock.ts @@ -0,0 +1,81 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getListArrayMock } from '../../../../common/detection_engine/schemas/types/lists.mock'; +import { + BaseRuleParams, + EqlRuleParams, + MachineLearningRuleParams, + ThresholdRuleParams, +} from './rule_schemas'; + +const getBaseRuleParams = (): BaseRuleParams => { + return { + author: ['Elastic'], + buildingBlockType: 'default', + ruleId: 'rule-1', + description: 'Detecting root and admin users', + falsePositives: [], + immutable: false, + from: 'now-6m', + to: 'now', + severity: 'high', + severityMapping: [], + license: 'Elastic License', + outputIndex: '.siem-signals', + references: ['http://google.com'], + riskScore: 50, + riskScoreMapping: [], + ruleNameOverride: undefined, + maxSignals: 10000, + note: '', + timelineId: undefined, + timelineTitle: undefined, + timestampOverride: undefined, + meta: undefined, + threat: [], + version: 1, + exceptionsList: getListArrayMock(), + }; +}; + +export const getThresholdRuleParams = (): ThresholdRuleParams => { + return { + ...getBaseRuleParams(), + type: 'threshold', + language: 'kuery', + index: ['some-index'], + query: 'host.name: *', + filters: undefined, + savedId: undefined, + threshold: { + field: 'host.id', + value: 5, + }, + }; +}; + +export const getEqlRuleParams = (): EqlRuleParams => { + return { + ...getBaseRuleParams(), + type: 'eql', + language: 'eql', + index: ['some-index'], + query: 'any where true', + filters: undefined, + eventCategoryOverride: undefined, + }; +}; + +export const getMlRuleParams = (): MachineLearningRuleParams => { + return { + ...getBaseRuleParams(), + type: 'machine_learning', + anomalyThreshold: 42, + machineLearningJobId: 'my-job', + }; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_schemas.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_schemas.ts index abbcfcaa79107..144b751491b2c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_schemas.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_schemas.ts @@ -104,6 +104,8 @@ const eqlSpecificRuleParams = t.type({ filters: filtersOrUndefined, eventCategoryOverride: eventCategoryOverrideOrUndefined, }); +export const eqlRuleParams = t.intersection([baseRuleParams, eqlSpecificRuleParams]); +export type EqlRuleParams = t.TypeOf; const threatSpecificRuleParams = t.type({ type: t.literal('threat_match'), @@ -121,6 +123,8 @@ const threatSpecificRuleParams = t.type({ concurrentSearches: concurrentSearchesOrUndefined, itemsPerSearch: itemsPerSearchOrUndefined, }); +export const threatRuleParams = t.intersection([baseRuleParams, threatSpecificRuleParams]); +export type ThreatRuleParams = t.TypeOf; const querySpecificRuleParams = t.exact( t.type({ @@ -132,6 +136,8 @@ const querySpecificRuleParams = t.exact( savedId: savedIdOrUndefined, }) ); +export const queryRuleParams = t.intersection([baseRuleParams, querySpecificRuleParams]); +export type QueryRuleParams = t.TypeOf; const savedQuerySpecificRuleParams = t.type({ type: t.literal('saved_query'), @@ -143,6 +149,8 @@ const savedQuerySpecificRuleParams = t.type({ filters: filtersOrUndefined, savedId: saved_id, }); +export const savedQueryRuleParams = t.intersection([baseRuleParams, savedQuerySpecificRuleParams]); +export type SavedQueryRuleParams = t.TypeOf; const thresholdSpecificRuleParams = t.type({ type: t.literal('threshold'), @@ -153,12 +161,19 @@ const thresholdSpecificRuleParams = t.type({ savedId: savedIdOrUndefined, threshold, }); +export const thresholdRuleParams = t.intersection([baseRuleParams, thresholdSpecificRuleParams]); +export type ThresholdRuleParams = t.TypeOf; const machineLearningSpecificRuleParams = t.type({ type: t.literal('machine_learning'), anomalyThreshold: anomaly_threshold, machineLearningJobId: machine_learning_job_id, }); +export const machineLearningRuleParams = t.intersection([ + baseRuleParams, + machineLearningSpecificRuleParams, +]); +export type MachineLearningRuleParams = t.TypeOf; export const typeSpecificRuleParams = t.union([ eqlSpecificRuleParams, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.test.ts new file mode 100644 index 0000000000000..f8f77bd2bf6e6 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.test.ts @@ -0,0 +1,94 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { loggingSystemMock } from 'src/core/server/mocks'; +import { alertsMock, AlertServicesMock } from '../../../../../../alerting/server/mocks'; +import { RuleStatusService } from '../rule_status_service'; +import { eqlExecutor } from './eql'; +import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; +import { getEntryListMock } from '../../../../../../lists/common/schemas/types/entry_list.mock'; +import { getEqlRuleParams } from '../../schemas/rule_schemas.mock'; +import { getIndexVersion } from '../../routes/index/get_index_version'; +import { SIGNALS_TEMPLATE_VERSION } from '../../routes/index/get_signals_template'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { elasticsearchClientMock } from 'src/core/server/elasticsearch/client/mocks'; + +jest.mock('../../routes/index/get_index_version'); + +describe('eql_executor', () => { + const version = '8.0.0'; + let logger: ReturnType; + let alertServices: AlertServicesMock; + let ruleStatusService: Record; + (getIndexVersion as jest.Mock).mockReturnValue(SIGNALS_TEMPLATE_VERSION); + const eqlSO = { + id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + type: 'alert', + version: '1', + updated_at: '2020-03-27T22:55:59.577Z', + attributes: { + actions: [], + enabled: true, + name: 'rule-name', + tags: ['some fake tag 1', 'some fake tag 2'], + createdBy: 'sample user', + createdAt: '2020-03-27T22:55:59.577Z', + updatedBy: 'sample user', + schedule: { + interval: '5m', + }, + throttle: 'no_actions', + params: getEqlRuleParams(), + }, + references: [], + }; + const searchAfterSize = 7; + + beforeEach(() => { + alertServices = alertsMock.createAlertServices(); + logger = loggingSystemMock.createLogger(); + ruleStatusService = { + success: jest.fn(), + find: jest.fn(), + goingToRun: jest.fn(), + error: jest.fn(), + partialFailure: jest.fn(), + }; + alertServices.scopedClusterClient.asCurrentUser.transport.request.mockResolvedValue( + elasticsearchClientMock.createSuccessTransportRequestPromise({ + hits: { + total: { value: 10 }, + }, + }) + ); + }); + + describe('eqlExecutor', () => { + it('should set a warning when exception list for eql rule contains value list exceptions', async () => { + const exceptionItems = [getExceptionListItemSchemaMock({ entries: [getEntryListMock()] })]; + try { + await eqlExecutor({ + rule: eqlSO, + exceptionItems, + ruleStatusService: (ruleStatusService as unknown) as RuleStatusService, + services: alertServices, + version, + logger, + refresh: false, + searchAfterSize, + }); + } catch (err) { + // eqlExecutor will throw until we have an EQL response mock that conforms to the + // expected EQL response format, so just catch the error and check the status service + } + expect(ruleStatusService.partialFailure).toHaveBeenCalled(); + expect(ruleStatusService.partialFailure.mock.calls[0][0]).toContain( + 'Exceptions that use "is in list" or "is not in list" operators are not applied to EQL rules' + ); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.ts new file mode 100644 index 0000000000000..a4763f67004f6 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.ts @@ -0,0 +1,129 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ApiResponse } from '@elastic/elasticsearch'; +import { performance } from 'perf_hooks'; +import { Logger } from 'src/core/server'; +import { SavedObject } from 'src/core/types'; +import { + AlertInstanceContext, + AlertInstanceState, + AlertServices, +} from '../../../../../../alerting/server'; +import { buildEqlSearchRequest } from '../../../../../common/detection_engine/get_query_filter'; +import { hasLargeValueItem } from '../../../../../common/detection_engine/utils'; +import { ExceptionListItemSchema } from '../../../../../common/shared_imports'; +import { isOutdated } from '../../migrations/helpers'; +import { getIndexVersion } from '../../routes/index/get_index_version'; +import { MIN_EQL_RULE_INDEX_VERSION } from '../../routes/index/get_signals_template'; +import { RefreshTypes } from '../../types'; +import { buildSignalFromEvent, buildSignalGroupFromSequence } from '../build_bulk_body'; +import { getInputIndex } from '../get_input_output_index'; +import { RuleStatusService } from '../rule_status_service'; +import { bulkInsertSignals, filterDuplicateSignals } from '../single_bulk_create'; +import { + EqlRuleAttributes, + EqlSignalSearchResponse, + SearchAfterAndBulkCreateReturnType, + WrappedSignalHit, +} from '../types'; +import { createSearchAfterReturnType, makeFloatString, wrapSignal } from '../utils'; + +export const eqlExecutor = async ({ + rule, + exceptionItems, + ruleStatusService, + services, + version, + searchAfterSize, + logger, + refresh, +}: { + rule: SavedObject; + exceptionItems: ExceptionListItemSchema[]; + ruleStatusService: RuleStatusService; + services: AlertServices; + version: string; + searchAfterSize: number; + logger: Logger; + refresh: RefreshTypes; +}): Promise => { + const result = createSearchAfterReturnType(); + const ruleParams = rule.attributes.params; + if (hasLargeValueItem(exceptionItems)) { + await ruleStatusService.partialFailure( + 'Exceptions that use "is in list" or "is not in list" operators are not applied to EQL rules' + ); + result.warning = true; + } + try { + const signalIndexVersion = await getIndexVersion( + services.scopedClusterClient.asCurrentUser, + ruleParams.outputIndex + ); + if (isOutdated({ current: signalIndexVersion, target: MIN_EQL_RULE_INDEX_VERSION })) { + throw new Error( + `EQL based rules require an update to version ${MIN_EQL_RULE_INDEX_VERSION} of the detection alerts index mapping` + ); + } + } catch (err) { + if (err.statusCode === 403) { + throw new Error( + `EQL based rules require the user that created it to have the view_index_metadata, read, and write permissions for index: ${ruleParams.outputIndex}` + ); + } else { + throw err; + } + } + const inputIndex = await getInputIndex(services, version, ruleParams.index); + const request = buildEqlSearchRequest( + ruleParams.query, + inputIndex, + ruleParams.from, + ruleParams.to, + searchAfterSize, + ruleParams.timestampOverride, + exceptionItems, + ruleParams.eventCategoryOverride + ); + const eqlSignalSearchStart = performance.now(); + // TODO: fix this later + const { body: response } = (await services.scopedClusterClient.asCurrentUser.transport.request( + request + )) as ApiResponse; + const eqlSignalSearchEnd = performance.now(); + const eqlSearchDuration = makeFloatString(eqlSignalSearchEnd - eqlSignalSearchStart); + result.searchAfterTimes = [eqlSearchDuration]; + let newSignals: WrappedSignalHit[] | undefined; + if (response.hits.sequences !== undefined) { + newSignals = response.hits.sequences.reduce( + (acc: WrappedSignalHit[], sequence) => + acc.concat(buildSignalGroupFromSequence(sequence, rule, ruleParams.outputIndex)), + [] + ); + } else if (response.hits.events !== undefined) { + newSignals = filterDuplicateSignals( + rule.id, + response.hits.events.map((event) => + wrapSignal(buildSignalFromEvent(event, rule, true), ruleParams.outputIndex) + ) + ); + } else { + throw new Error( + 'eql query response should have either `sequences` or `events` but had neither' + ); + } + + if (newSignals.length > 0) { + const insertResult = await bulkInsertSignals(newSignals, logger, services, refresh); + result.bulkCreateTimes.push(insertResult.bulkCreateDuration); + result.createdSignalsCount += insertResult.createdItemsCount; + result.createdSignals = insertResult.createdItems; + } + result.success = true; + return result; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.test.ts new file mode 100644 index 0000000000000..a3db2e5cbfd99 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.test.ts @@ -0,0 +1,159 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { loggingSystemMock } from 'src/core/server/mocks'; +import { alertsMock, AlertServicesMock } from '../../../../../../alerting/server/mocks'; +import { RuleStatusService } from '../rule_status_service'; +import { mlExecutor } from './ml'; +import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; +import { getMlRuleParams } from '../../schemas/rule_schemas.mock'; +import { buildRuleMessageFactory } from '../rule_messages'; +import { getListClientMock } from '../../../../../../lists/server/services/lists/list_client.mock'; +import { findMlSignals } from '../find_ml_signals'; +import { bulkCreateMlSignals } from '../bulk_create_ml_signals'; + +jest.mock('../find_ml_signals'); +jest.mock('../bulk_create_ml_signals'); + +describe('ml_executor', () => { + const jobsSummaryMock = jest.fn(); + const mlMock = { + mlClient: { + callAsInternalUser: jest.fn(), + close: jest.fn(), + asScoped: jest.fn(), + }, + jobServiceProvider: jest.fn().mockReturnValue({ + jobsSummary: jobsSummaryMock, + }), + anomalyDetectorsProvider: jest.fn(), + mlSystemProvider: jest.fn(), + modulesProvider: jest.fn(), + resultsServiceProvider: jest.fn(), + alertingServiceProvider: jest.fn(), + }; + const exceptionItems = [getExceptionListItemSchemaMock()]; + let logger: ReturnType; + let alertServices: AlertServicesMock; + let ruleStatusService: Record; + const mlSO = { + id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + type: 'alert', + version: '1', + updated_at: '2020-03-27T22:55:59.577Z', + attributes: { + actions: [], + enabled: true, + name: 'rule-name', + tags: ['some fake tag 1', 'some fake tag 2'], + createdBy: 'sample user', + createdAt: '2020-03-27T22:55:59.577Z', + updatedBy: 'sample user', + schedule: { + interval: '5m', + }, + throttle: 'no_actions', + params: getMlRuleParams(), + }, + references: [], + }; + const buildRuleMessage = buildRuleMessageFactory({ + id: mlSO.id, + ruleId: mlSO.attributes.params.ruleId, + name: mlSO.attributes.name, + index: mlSO.attributes.params.outputIndex, + }); + + beforeEach(() => { + alertServices = alertsMock.createAlertServices(); + logger = loggingSystemMock.createLogger(); + ruleStatusService = { + success: jest.fn(), + find: jest.fn(), + goingToRun: jest.fn(), + error: jest.fn(), + partialFailure: jest.fn(), + }; + (findMlSignals as jest.Mock).mockResolvedValue({ + _shards: {}, + hits: { + hits: [], + }, + }); + (bulkCreateMlSignals as jest.Mock).mockResolvedValue({ + success: true, + bulkCreateDuration: 0, + createdItemsCount: 0, + errors: [], + }); + }); + + it('should throw an error if ML plugin was not available', async () => { + await expect( + mlExecutor({ + rule: mlSO, + ml: undefined, + exceptionItems, + ruleStatusService: (ruleStatusService as unknown) as RuleStatusService, + services: alertServices, + logger, + refresh: false, + buildRuleMessage, + listClient: getListClientMock(), + }) + ).rejects.toThrow('ML plugin unavailable during rule execution'); + }); + + it('should throw an error if Machine learning job summary was null', async () => { + jobsSummaryMock.mockResolvedValue([]); + await mlExecutor({ + rule: mlSO, + ml: mlMock, + exceptionItems, + ruleStatusService: (ruleStatusService as unknown) as RuleStatusService, + services: alertServices, + logger, + refresh: false, + buildRuleMessage, + listClient: getListClientMock(), + }); + expect(logger.warn).toHaveBeenCalled(); + expect(logger.warn.mock.calls[0][0]).toContain('Machine learning job is not started'); + expect(ruleStatusService.error).toHaveBeenCalled(); + expect(ruleStatusService.error.mock.calls[0][0]).toContain( + 'Machine learning job is not started' + ); + }); + + it('should log an error if Machine learning job was not started', async () => { + jobsSummaryMock.mockResolvedValue([ + { + id: 'some_job_id', + jobState: 'starting', + datafeedState: 'started', + }, + ]); + + await mlExecutor({ + rule: mlSO, + ml: mlMock, + exceptionItems, + ruleStatusService: (ruleStatusService as unknown) as RuleStatusService, + services: alertServices, + logger, + refresh: false, + buildRuleMessage, + listClient: getListClientMock(), + }); + expect(logger.warn).toHaveBeenCalled(); + expect(logger.warn.mock.calls[0][0]).toContain('Machine learning job is not started'); + expect(ruleStatusService.error).toHaveBeenCalled(); + expect(ruleStatusService.error.mock.calls[0][0]).toContain( + 'Machine learning job is not started' + ); + }); +}); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.ts new file mode 100644 index 0000000000000..12ebca1aa3e7c --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.ts @@ -0,0 +1,145 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { KibanaRequest, Logger } from 'src/core/server'; +import { SavedObject } from 'src/core/types'; +import { + AlertInstanceContext, + AlertInstanceState, + AlertServices, +} from '../../../../../../alerting/server'; +import { ListClient } from '../../../../../../lists/server'; +import { isJobStarted } from '../../../../../common/machine_learning/helpers'; +import { ExceptionListItemSchema } from '../../../../../common/shared_imports'; +import { SetupPlugins } from '../../../../plugin'; +import { RefreshTypes } from '../../types'; +import { bulkCreateMlSignals } from '../bulk_create_ml_signals'; +import { filterEventsAgainstList } from '../filters/filter_events_against_list'; +import { findMlSignals } from '../find_ml_signals'; +import { BuildRuleMessage } from '../rule_messages'; +import { RuleStatusService } from '../rule_status_service'; +import { MachineLearningRuleAttributes } from '../types'; +import { createErrorsFromShard, createSearchAfterReturnType, mergeReturns } from '../utils'; + +export const mlExecutor = async ({ + rule, + ml, + listClient, + exceptionItems, + ruleStatusService, + services, + logger, + refresh, + buildRuleMessage, +}: { + rule: SavedObject; + ml: SetupPlugins['ml']; + listClient: ListClient; + exceptionItems: ExceptionListItemSchema[]; + ruleStatusService: RuleStatusService; + services: AlertServices; + logger: Logger; + refresh: RefreshTypes; + buildRuleMessage: BuildRuleMessage; +}) => { + const result = createSearchAfterReturnType(); + const ruleParams = rule.attributes.params; + if (ml == null) { + throw new Error('ML plugin unavailable during rule execution'); + } + + // Using fake KibanaRequest as it is needed to satisfy the ML Services API, but can be empty as it is + // currently unused by the jobsSummary function. + const fakeRequest = {} as KibanaRequest; + const summaryJobs = await ml + .jobServiceProvider(fakeRequest, services.savedObjectsClient) + .jobsSummary([ruleParams.machineLearningJobId]); + const jobSummary = summaryJobs.find((job) => job.id === ruleParams.machineLearningJobId); + + if (jobSummary == null || !isJobStarted(jobSummary.jobState, jobSummary.datafeedState)) { + const errorMessage = buildRuleMessage( + 'Machine learning job is not started:', + `job id: "${ruleParams.machineLearningJobId}"`, + `job status: "${jobSummary?.jobState}"`, + `datafeed status: "${jobSummary?.datafeedState}"` + ); + logger.warn(errorMessage); + result.warning = true; + // TODO: change this to partialFailure since we don't immediately exit rule function and still do actions at the end? + await ruleStatusService.error(errorMessage); + } + + const anomalyResults = await findMlSignals({ + ml, + // Using fake KibanaRequest as it is needed to satisfy the ML Services API, but can be empty as it is + // currently unused by the mlAnomalySearch function. + request: ({} as unknown) as KibanaRequest, + savedObjectsClient: services.savedObjectsClient, + jobId: ruleParams.machineLearningJobId, + anomalyThreshold: ruleParams.anomalyThreshold, + from: ruleParams.from, + to: ruleParams.to, + exceptionItems, + }); + + const filteredAnomalyResults = await filterEventsAgainstList({ + listClient, + exceptionsList: exceptionItems, + logger, + eventSearchResult: anomalyResults, + buildRuleMessage, + }); + + const anomalyCount = filteredAnomalyResults.hits.hits.length; + if (anomalyCount) { + logger.info(buildRuleMessage(`Found ${anomalyCount} signals from ML anomalies.`)); + } + const { + success, + errors, + bulkCreateDuration, + createdItemsCount, + createdItems, + } = await bulkCreateMlSignals({ + actions: rule.attributes.actions, + throttle: rule.attributes.throttle, + someResult: filteredAnomalyResults, + ruleParams, + services, + logger, + id: rule.id, + signalsIndex: ruleParams.outputIndex, + name: rule.attributes.name, + createdBy: rule.attributes.createdBy, + createdAt: rule.attributes.createdAt, + updatedBy: rule.attributes.updatedBy, + updatedAt: rule.updated_at ?? '', + interval: rule.attributes.schedule.interval, + enabled: rule.attributes.enabled, + refresh, + tags: rule.attributes.tags, + buildRuleMessage, + }); + // The legacy ES client does not define failures when it can be present on the structure, hence why I have the & { failures: [] } + const shardFailures = + (filteredAnomalyResults._shards as typeof filteredAnomalyResults._shards & { + failures: []; + }).failures ?? []; + const searchErrors = createErrorsFromShard({ + errors: shardFailures, + }); + return mergeReturns([ + result, + createSearchAfterReturnType({ + success: success && filteredAnomalyResults._shards.failed === 0, + errors: [...errors, ...searchErrors], + createdSignalsCount: createdItemsCount, + createdSignals: createdItems, + bulkCreateTimes: bulkCreateDuration ? [bulkCreateDuration] : [], + }), + ]); +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts new file mode 100644 index 0000000000000..9914eb04c6ca6 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts @@ -0,0 +1,89 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { SavedObject } from 'src/core/types'; +import { Logger } from 'src/core/server'; +import { + AlertInstanceContext, + AlertInstanceState, + AlertServices, +} from '../../../../../../alerting/server'; +import { ListClient } from '../../../../../../lists/server'; +import { ExceptionListItemSchema } from '../../../../../common/shared_imports'; +import { RefreshTypes } from '../../types'; +import { getFilter } from '../get_filter'; +import { getInputIndex } from '../get_input_output_index'; +import { searchAfterAndBulkCreate } from '../search_after_bulk_create'; +import { QueryRuleAttributes, RuleRangeTuple } from '../types'; +import { TelemetryEventsSender } from '../../../telemetry/sender'; +import { BuildRuleMessage } from '../rule_messages'; + +export const queryExecutor = async ({ + rule, + tuples, + listClient, + exceptionItems, + services, + version, + searchAfterSize, + logger, + refresh, + eventsTelemetry, + buildRuleMessage, +}: { + rule: SavedObject; + tuples: RuleRangeTuple[]; + listClient: ListClient; + exceptionItems: ExceptionListItemSchema[]; + services: AlertServices; + version: string; + searchAfterSize: number; + logger: Logger; + refresh: RefreshTypes; + eventsTelemetry: TelemetryEventsSender | undefined; + buildRuleMessage: BuildRuleMessage; +}) => { + const ruleParams = rule.attributes.params; + const inputIndex = await getInputIndex(services, version, ruleParams.index); + const esFilter = await getFilter({ + type: ruleParams.type, + filters: ruleParams.filters, + language: ruleParams.language, + query: ruleParams.query, + savedId: ruleParams.savedId, + services, + index: inputIndex, + lists: exceptionItems, + }); + + return searchAfterAndBulkCreate({ + tuples, + listClient, + exceptionsList: exceptionItems, + ruleParams, + services, + logger, + eventsTelemetry, + id: rule.id, + inputIndexPattern: inputIndex, + signalsIndex: ruleParams.outputIndex, + filter: esFilter, + actions: rule.attributes.actions, + name: rule.attributes.name, + createdBy: rule.attributes.createdBy, + createdAt: rule.attributes.createdAt, + updatedBy: rule.attributes.updatedBy, + updatedAt: rule.updated_at ?? '', + interval: rule.attributes.schedule.interval, + enabled: rule.attributes.enabled, + pageSize: searchAfterSize, + refresh, + tags: rule.attributes.tags, + throttle: rule.attributes.throttle, + buildRuleMessage, + }); +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threat_match.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threat_match.ts new file mode 100644 index 0000000000000..5a8e945c3b06e --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threat_match.ts @@ -0,0 +1,89 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { SavedObject } from 'src/core/types'; +import { Logger } from 'src/core/server'; +import { + AlertInstanceContext, + AlertInstanceState, + AlertServices, +} from '../../../../../../alerting/server'; +import { ListClient } from '../../../../../../lists/server'; +import { ExceptionListItemSchema } from '../../../../../common/shared_imports'; +import { RefreshTypes } from '../../types'; +import { getInputIndex } from '../get_input_output_index'; +import { RuleRangeTuple, ThreatRuleAttributes } from '../types'; +import { TelemetryEventsSender } from '../../../telemetry/sender'; +import { BuildRuleMessage } from '../rule_messages'; +import { createThreatSignals } from '../threat_mapping/create_threat_signals'; + +export const threatMatchExecutor = async ({ + rule, + tuples, + listClient, + exceptionItems, + services, + version, + searchAfterSize, + logger, + refresh, + eventsTelemetry, + buildRuleMessage, +}: { + rule: SavedObject; + tuples: RuleRangeTuple[]; + listClient: ListClient; + exceptionItems: ExceptionListItemSchema[]; + services: AlertServices; + version: string; + searchAfterSize: number; + logger: Logger; + refresh: RefreshTypes; + eventsTelemetry: TelemetryEventsSender | undefined; + buildRuleMessage: BuildRuleMessage; +}) => { + const ruleParams = rule.attributes.params; + const inputIndex = await getInputIndex(services, version, ruleParams.index); + return createThreatSignals({ + tuples, + threatMapping: ruleParams.threatMapping, + query: ruleParams.query, + inputIndex, + type: ruleParams.type, + filters: ruleParams.filters ?? [], + language: ruleParams.language, + name: rule.attributes.name, + savedId: ruleParams.savedId, + services, + exceptionItems, + listClient, + logger, + eventsTelemetry, + alertId: rule.id, + outputIndex: ruleParams.outputIndex, + params: ruleParams, + searchAfterSize, + actions: rule.attributes.actions, + createdBy: rule.attributes.createdBy, + createdAt: rule.attributes.createdAt, + updatedBy: rule.attributes.updatedBy, + interval: rule.attributes.schedule.interval, + updatedAt: rule.updated_at ?? '', + enabled: rule.attributes.enabled, + refresh, + tags: rule.attributes.tags, + throttle: rule.attributes.throttle, + threatFilters: ruleParams.threatFilters ?? [], + threatQuery: ruleParams.threatQuery, + threatLanguage: ruleParams.threatLanguage, + buildRuleMessage, + threatIndex: ruleParams.threatIndex, + threatIndicatorPath: ruleParams.threatIndicatorPath, + concurrentSearches: ruleParams.concurrentSearches ?? 1, + itemsPerSearch: ruleParams.itemsPerSearch ?? 9000, + }); +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.test.ts new file mode 100644 index 0000000000000..5d62b28b73ae8 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.test.ts @@ -0,0 +1,83 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { loggingSystemMock } from 'src/core/server/mocks'; +import { alertsMock, AlertServicesMock } from '../../../../../../alerting/server/mocks'; +import { RuleStatusService } from '../rule_status_service'; +import { thresholdExecutor } from './threshold'; +import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; +import { getEntryListMock } from '../../../../../../lists/common/schemas/types/entry_list.mock'; +import { getThresholdRuleParams } from '../../schemas/rule_schemas.mock'; +import { buildRuleMessageFactory } from '../rule_messages'; + +describe('threshold_executor', () => { + const version = '8.0.0'; + let logger: ReturnType; + let alertServices: AlertServicesMock; + let ruleStatusService: Record; + const thresholdSO = { + id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + type: 'alert', + version: '1', + updated_at: '2020-03-27T22:55:59.577Z', + attributes: { + actions: [], + enabled: true, + name: 'rule-name', + tags: ['some fake tag 1', 'some fake tag 2'], + createdBy: 'sample user', + createdAt: '2020-03-27T22:55:59.577Z', + updatedBy: 'sample user', + schedule: { + interval: '5m', + }, + throttle: 'no_actions', + params: getThresholdRuleParams(), + }, + references: [], + }; + const buildRuleMessage = buildRuleMessageFactory({ + id: thresholdSO.id, + ruleId: thresholdSO.attributes.params.ruleId, + name: thresholdSO.attributes.name, + index: thresholdSO.attributes.params.outputIndex, + }); + + beforeEach(() => { + alertServices = alertsMock.createAlertServices(); + logger = loggingSystemMock.createLogger(); + ruleStatusService = { + success: jest.fn(), + find: jest.fn(), + goingToRun: jest.fn(), + error: jest.fn(), + partialFailure: jest.fn(), + }; + }); + + describe('thresholdExecutor', () => { + it('should set a warning when exception list for threshold rule contains value list exceptions', async () => { + const exceptionItems = [getExceptionListItemSchemaMock({ entries: [getEntryListMock()] })]; + await thresholdExecutor({ + rule: thresholdSO, + tuples: [], + exceptionItems, + ruleStatusService: (ruleStatusService as unknown) as RuleStatusService, + services: alertServices, + version, + logger, + refresh: false, + buildRuleMessage, + startedAt: new Date(), + }); + expect(ruleStatusService.partialFailure).toHaveBeenCalled(); + expect(ruleStatusService.partialFailure.mock.calls[0][0]).toContain( + 'Exceptions that use "is in list" or "is not in list" operators are not applied to Threshold rules' + ); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.ts new file mode 100644 index 0000000000000..c8f70449251f6 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.ts @@ -0,0 +1,173 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Logger } from 'src/core/server'; +import { SavedObject } from 'src/core/types'; +import { + AlertInstanceContext, + AlertInstanceState, + AlertServices, +} from '../../../../../../alerting/server'; +import { + hasLargeValueItem, + normalizeThresholdField, +} from '../../../../../common/detection_engine/utils'; +import { ExceptionListItemSchema } from '../../../../../common/shared_imports'; +import { RefreshTypes } from '../../types'; +import { getFilter } from '../get_filter'; +import { getInputIndex } from '../get_input_output_index'; +import { BuildRuleMessage } from '../rule_messages'; +import { RuleStatusService } from '../rule_status_service'; +import { + bulkCreateThresholdSignals, + findThresholdSignals, + getThresholdBucketFilters, + getThresholdSignalHistory, +} from '../threshold'; +import { + RuleRangeTuple, + SearchAfterAndBulkCreateReturnType, + ThresholdRuleAttributes, +} from '../types'; +import { + createSearchAfterReturnType, + createSearchAfterReturnTypeFromResponse, + mergeReturns, +} from '../utils'; + +export const thresholdExecutor = async ({ + rule, + tuples, + exceptionItems, + ruleStatusService, + services, + version, + logger, + refresh, + buildRuleMessage, + startedAt, +}: { + rule: SavedObject; + tuples: RuleRangeTuple[]; + exceptionItems: ExceptionListItemSchema[]; + ruleStatusService: RuleStatusService; + services: AlertServices; + version: string; + logger: Logger; + refresh: RefreshTypes; + buildRuleMessage: BuildRuleMessage; + startedAt: Date; +}): Promise => { + let result = createSearchAfterReturnType(); + const ruleParams = rule.attributes.params; + if (hasLargeValueItem(exceptionItems)) { + await ruleStatusService.partialFailure( + 'Exceptions that use "is in list" or "is not in list" operators are not applied to Threshold rules' + ); + result.warning = true; + } + const inputIndex = await getInputIndex(services, version, ruleParams.index); + + for (const tuple of tuples) { + const { + thresholdSignalHistory, + searchErrors: previousSearchErrors, + } = await getThresholdSignalHistory({ + indexPattern: [ruleParams.outputIndex], + from: tuple.from.toISOString(), + to: tuple.to.toISOString(), + services, + logger, + ruleId: ruleParams.ruleId, + bucketByFields: normalizeThresholdField(ruleParams.threshold.field), + timestampOverride: ruleParams.timestampOverride, + buildRuleMessage, + }); + + const bucketFilters = await getThresholdBucketFilters({ + thresholdSignalHistory, + timestampOverride: ruleParams.timestampOverride, + }); + + const esFilter = await getFilter({ + type: ruleParams.type, + filters: ruleParams.filters ? ruleParams.filters.concat(bucketFilters) : bucketFilters, + language: ruleParams.language, + query: ruleParams.query, + savedId: ruleParams.savedId, + services, + index: inputIndex, + lists: exceptionItems, + }); + + const { + searchResult: thresholdResults, + searchErrors, + searchDuration: thresholdSearchDuration, + } = await findThresholdSignals({ + inputIndexPattern: inputIndex, + from: tuple.from.toISOString(), + to: tuple.to.toISOString(), + services, + logger, + filter: esFilter, + threshold: ruleParams.threshold, + timestampOverride: ruleParams.timestampOverride, + buildRuleMessage, + }); + + const { + success, + bulkCreateDuration, + createdItemsCount, + createdItems, + errors, + } = await bulkCreateThresholdSignals({ + actions: rule.attributes.actions, + throttle: rule.attributes.throttle, + someResult: thresholdResults, + ruleParams, + filter: esFilter, + services, + logger, + id: rule.id, + inputIndexPattern: inputIndex, + signalsIndex: ruleParams.outputIndex, + timestampOverride: ruleParams.timestampOverride, + startedAt, + from: tuple.from.toDate(), + name: rule.attributes.name, + createdBy: rule.attributes.createdBy, + createdAt: rule.attributes.createdAt, + updatedBy: rule.attributes.updatedBy, + updatedAt: rule.updated_at ?? '', + interval: rule.attributes.schedule.interval, + enabled: rule.attributes.enabled, + refresh, + tags: rule.attributes.tags, + thresholdSignalHistory, + buildRuleMessage, + }); + + result = mergeReturns([ + result, + createSearchAfterReturnTypeFromResponse({ + searchResult: thresholdResults, + timestampOverride: ruleParams.timestampOverride, + }), + createSearchAfterReturnType({ + success, + errors: [...errors, ...previousSearchErrors, ...searchErrors], + createdSignalsCount: createdItemsCount, + createdSignals: createdItems, + bulkCreateTimes: bulkCreateDuration ? [bulkCreateDuration] : [], + searchAfterTimes: [thresholdSearchDuration], + }), + ]); + } + return result; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.ts index d8ee4619fb4da..86940e9b77084 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.ts @@ -27,7 +27,7 @@ import { QueryFilter } from './types'; interface GetFilterArgs { type: Type; - filters: PartialFilter[] | undefined; + filters: unknown | undefined; language: LanguageOrUndefined; query: QueryOrUndefined; savedId: SavedIdOrUndefined; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.test.ts index 930cafe57fb0a..ba7776af9d36a 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.test.ts @@ -8,36 +8,32 @@ import moment from 'moment'; import type { estypes } from '@elastic/elasticsearch'; import { loggingSystemMock } from 'src/core/server/mocks'; -import { - getResult, - getMlResult, - getThresholdResult, - getEqlResult, -} from '../routes/__mocks__/request_responses'; +import { getResult, getMlResult } from '../routes/__mocks__/request_responses'; import { signalRulesAlertType } from './signal_rule_alert_type'; import { alertsMock, AlertServicesMock } from '../../../../../alerting/server/mocks'; import { ruleStatusServiceFactory } from './rule_status_service'; -import { getListsClient, getExceptions, sortExceptionItems, checkPrivileges } from './utils'; -import { parseScheduleDates } from '../../../../common/detection_engine/parse_schedule_dates'; +import { + getListsClient, + getExceptions, + checkPrivileges, + createSearchAfterReturnType, +} from './utils'; +import * as parseScheduleDates from '../../../../common/detection_engine/parse_schedule_dates'; import { RuleExecutorOptions, SearchAfterAndBulkCreateReturnType } from './types'; -import { searchAfterAndBulkCreate } from './search_after_bulk_create'; import { scheduleNotificationActions } from '../notifications/schedule_notification_actions'; import { RuleAlertType } from '../rules/types'; -import { findMlSignals } from './find_ml_signals'; -import { bulkCreateMlSignals } from './bulk_create_ml_signals'; import { listMock } from '../../../../../lists/server/mocks'; import { getListClientMock } from '../../../../../lists/server/services/lists/list_client.mock'; import { getExceptionListClientMock } from '../../../../../lists/server/services/exception_lists/exception_list_client.mock'; import { getExceptionListItemSchemaMock } from '../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; import { ApiResponse } from '@elastic/elasticsearch/lib/Transport'; -import { getEntryListMock } from '../../../../../lists/common/schemas/types/entry_list.mock'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { elasticsearchClientMock } from 'src/core/server/elasticsearch/client/mocks'; +import { queryExecutor } from './executors/query'; +import { mlExecutor } from './executors/ml'; jest.mock('./rule_status_saved_objects_client'); jest.mock('./rule_status_service'); -jest.mock('./search_after_bulk_create'); -jest.mock('./get_filter'); jest.mock('./utils', () => { const original = jest.requireActual('./utils'); return { @@ -49,9 +45,8 @@ jest.mock('./utils', () => { }; }); jest.mock('../notifications/schedule_notification_actions'); -jest.mock('./find_ml_signals'); -jest.mock('./bulk_create_ml_signals'); -jest.mock('../../../../common/detection_engine/parse_schedule_dates'); +jest.mock('./executors/query'); +jest.mock('./executors/ml'); const getPayload = ( ruleAlert: RuleAlertType, @@ -78,7 +73,7 @@ const getPayload = ( updatedBy: 'elastic', }); -describe('rules_notification_alert_type', () => { +describe('signal_rule_alert_type', () => { const version = '8.0.0'; const jobsSummaryMock = jest.fn(); const mlMock = { @@ -118,16 +113,6 @@ describe('rules_notification_alert_type', () => { exceptionsClient: getExceptionListClientMock(), }); (getExceptions as jest.Mock).mockReturnValue([getExceptionListItemSchemaMock()]); - (sortExceptionItems as jest.Mock).mockReturnValue({ - exceptionsWithoutValueLists: [getExceptionListItemSchemaMock()], - exceptionsWithValueLists: [], - }); - (searchAfterAndBulkCreate as jest.Mock).mockClear(); - (searchAfterAndBulkCreate as jest.Mock).mockResolvedValue({ - success: true, - searchAfterTimes: [], - createdSignalsCount: 10, - }); (checkPrivileges as jest.Mock).mockImplementation(async (_, indices) => { return { index: indices.reduce( @@ -143,13 +128,13 @@ describe('rules_notification_alert_type', () => { ), }; }); - alertServices.scopedClusterClient.asCurrentUser.transport.request.mockResolvedValue( - elasticsearchClientMock.createSuccessTransportRequestPromise({ - hits: { - total: { value: 10 }, - }, - }) - ); + const executorReturnValue = createSearchAfterReturnType({ + createdSignalsCount: 10, + }); + (queryExecutor as jest.Mock).mockClear(); + (queryExecutor as jest.Mock).mockResolvedValue(executorReturnValue); + (mlExecutor as jest.Mock).mockClear(); + (mlExecutor as jest.Mock).mockResolvedValue(executorReturnValue); const value: Partial> = { statusCode: 200, body: { @@ -189,6 +174,12 @@ describe('rules_notification_alert_type', () => { }); describe('executor', () => { + it('should call ruleStatusService.success if signals were created', async () => { + payload.previousStartedAt = null; + await alert.executor(payload); + expect(ruleStatusService.success).toHaveBeenCalled(); + }); + it('should warn about the gap between runs if gap is very large', async () => { payload.previousStartedAt = moment().subtract(100, 'm').toDate(); await alert.executor(payload); @@ -225,30 +216,6 @@ describe('rules_notification_alert_type', () => { ); }); - it('should set a warning when exception list for threshold rule contains value list exceptions', async () => { - (getExceptions as jest.Mock).mockReturnValue([ - getExceptionListItemSchemaMock({ entries: [getEntryListMock()] }), - ]); - payload = getPayload(getThresholdResult(), alertServices); - await alert.executor(payload); - expect(ruleStatusService.partialFailure).toHaveBeenCalled(); - expect(ruleStatusService.partialFailure.mock.calls[0][0]).toContain( - 'Exceptions that use "is in list" or "is not in list" operators are not applied to Threshold rules' - ); - }); - - it('should set a warning when exception list for EQL rule contains value list exceptions', async () => { - (getExceptions as jest.Mock).mockReturnValue([ - getExceptionListItemSchemaMock({ entries: [getEntryListMock()] }), - ]); - payload = getPayload(getEqlResult(), alertServices); - await alert.executor(payload); - expect(ruleStatusService.partialFailure).toHaveBeenCalled(); - expect(ruleStatusService.partialFailure.mock.calls[0][0]).toContain( - 'Exceptions that use "is in list" or "is not in list" operators are not applied to EQL rules' - ); - }); - it('should set a failure status for when rules cannot read ANY provided indices', async () => { (checkPrivileges as jest.Mock).mockResolvedValueOnce({ username: 'elastic', @@ -300,14 +267,12 @@ describe('rules_notification_alert_type', () => { attributes: ruleAlert, }); await alert.executor(payload); - expect((searchAfterAndBulkCreate as jest.Mock).mock.calls[0][0].refresh).toEqual('wait_for'); - (searchAfterAndBulkCreate as jest.Mock).mockClear(); + expect((queryExecutor as jest.Mock).mock.calls[0][0].refresh).toEqual('wait_for'); }); it('should set refresh to false when actions are not present', async () => { await alert.executor(payload); - expect((searchAfterAndBulkCreate as jest.Mock).mock.calls[0][0].refresh).toEqual(false); - (searchAfterAndBulkCreate as jest.Mock).mockClear(); + expect((queryExecutor as jest.Mock).mock.calls[0][0].refresh).toEqual(false); }); it('should call scheduleActions if signalsCount was greater than 0 and rule has actions defined', async () => { @@ -361,9 +326,13 @@ describe('rules_notification_alert_type', () => { references: [], attributes: ruleAlert, }); - (parseScheduleDates as jest.Mock).mockReturnValue(moment(100)); payload.params.meta = {}; + + const parseScheduleDatesSpy = jest + .spyOn(parseScheduleDates, 'parseScheduleDates') + .mockReturnValue(moment(100)); await alert.executor(payload); + parseScheduleDatesSpy.mockRestore(); expect(scheduleNotificationActions).toHaveBeenCalledWith( expect.objectContaining({ @@ -394,9 +363,13 @@ describe('rules_notification_alert_type', () => { references: [], attributes: ruleAlert, }); - (parseScheduleDates as jest.Mock).mockReturnValue(moment(100)); delete payload.params.meta; + + const parseScheduleDatesSpy = jest + .spyOn(parseScheduleDates, 'parseScheduleDates') + .mockReturnValue(moment(100)); await alert.executor(payload); + parseScheduleDatesSpy.mockRestore(); expect(scheduleNotificationActions).toHaveBeenCalledWith( expect.objectContaining({ @@ -427,9 +400,13 @@ describe('rules_notification_alert_type', () => { references: [], attributes: ruleAlert, }); - (parseScheduleDates as jest.Mock).mockReturnValue(moment(100)); payload.params.meta = { kibana_siem_app_url: 'http://localhost' }; + + const parseScheduleDatesSpy = jest + .spyOn(parseScheduleDates, 'parseScheduleDates') + .mockReturnValue(moment(100)); await alert.executor(payload); + parseScheduleDatesSpy.mockRestore(); expect(scheduleNotificationActions).toHaveBeenCalledWith( expect.objectContaining({ @@ -440,206 +417,21 @@ describe('rules_notification_alert_type', () => { }); describe('ML rule', () => { - it('should throw an error if ML plugin was not available', async () => { - const ruleAlert = getMlResult(); - payload = getPayload(ruleAlert, alertServices) as jest.Mocked; - alert = signalRulesAlertType({ - logger, - eventsTelemetry: undefined, - version, - ml: undefined, - lists: undefined, - }); - await alert.executor(payload); - expect(logger.error).toHaveBeenCalled(); - expect(logger.error.mock.calls[0][0]).toContain( - 'ML plugin unavailable during rule execution' - ); - }); - - it('should throw an error if machineLearningJobId or anomalyThreshold was not null', async () => { - const ruleAlert = getMlResult(); - ruleAlert.params.anomalyThreshold = undefined; - payload = getPayload(ruleAlert, alertServices) as jest.Mocked; - payload.previousStartedAt = null; - await alert.executor(payload); - expect(logger.error).toHaveBeenCalled(); - expect(logger.error.mock.calls[0][0]).toContain( - 'Machine learning rule is missing job id and/or anomaly threshold' - ); - }); - - it('should throw an error if Machine learning job summary was null', async () => { - const ruleAlert = getMlResult(); - payload = getPayload(ruleAlert, alertServices) as jest.Mocked; - payload.previousStartedAt = null; - jobsSummaryMock.mockResolvedValue([]); - await alert.executor(payload); - expect(logger.warn).toHaveBeenCalled(); - expect(logger.warn.mock.calls[0][0]).toContain('Machine learning job is not started'); - expect(ruleStatusService.error).toHaveBeenCalled(); - expect(ruleStatusService.error.mock.calls[0][0]).toContain( - 'Machine learning job is not started' - ); - }); - - it('should log an error if Machine learning job was not started', async () => { - const ruleAlert = getMlResult(); - payload = getPayload(ruleAlert, alertServices) as jest.Mocked; - payload.previousStartedAt = null; - jobsSummaryMock.mockResolvedValue([ - { - id: 'some_job_id', - jobState: 'starting', - datafeedState: 'started', - }, - ]); - (findMlSignals as jest.Mock).mockResolvedValue({ - _shards: {}, - hits: { - hits: [], - }, - }); - await alert.executor(payload); - expect(logger.warn).toHaveBeenCalled(); - expect(logger.warn.mock.calls[0][0]).toContain('Machine learning job is not started'); - expect(ruleStatusService.error).toHaveBeenCalled(); - expect(ruleStatusService.error.mock.calls[0][0]).toContain( - 'Machine learning job is not started' - ); - }); - - it('should not call ruleStatusService.success if no anomalies were found', async () => { - const ruleAlert = getMlResult(); - payload = getPayload(ruleAlert, alertServices) as jest.Mocked; - jobsSummaryMock.mockResolvedValue([]); - (findMlSignals as jest.Mock).mockResolvedValue({ - _shards: {}, - hits: { - hits: [], - }, - }); - (bulkCreateMlSignals as jest.Mock).mockResolvedValue({ - success: true, - bulkCreateDuration: 0, - createdItemsCount: 0, - errors: [], - }); - await alert.executor(payload); - expect(ruleStatusService.success).not.toHaveBeenCalled(); - }); - - it('should call ruleStatusService.success if signals were created', async () => { - const ruleAlert = getMlResult(); - payload = getPayload(ruleAlert, alertServices) as jest.Mocked; - payload.previousStartedAt = null; - jobsSummaryMock.mockResolvedValue([ - { - id: 'some_job_id', - jobState: 'started', - datafeedState: 'started', - }, - ]); - (findMlSignals as jest.Mock).mockResolvedValue({ - _shards: { failed: 0 }, - hits: { - hits: [{}], - }, - }); - (bulkCreateMlSignals as jest.Mock).mockResolvedValue({ - success: true, - bulkCreateDuration: 1, - createdItemsCount: 1, - errors: [], - }); - await alert.executor(payload); - expect(ruleStatusService.success).toHaveBeenCalled(); - }); - it('should not call checkPrivileges if ML rule', async () => { const ruleAlert = getMlResult(); - payload = getPayload(ruleAlert, alertServices) as jest.Mocked; - payload.previousStartedAt = null; - jobsSummaryMock.mockResolvedValue([ - { - id: 'some_job_id', - jobState: 'started', - datafeedState: 'started', - }, - ]); - (findMlSignals as jest.Mock).mockResolvedValue({ - _shards: { failed: 0 }, - hits: { - hits: [{}], - }, - }); - (bulkCreateMlSignals as jest.Mock).mockResolvedValue({ - success: true, - bulkCreateDuration: 1, - createdItemsCount: 1, - errors: [], - }); - (checkPrivileges as jest.Mock).mockClear(); - - await alert.executor(payload); - expect(checkPrivileges).toHaveBeenCalledTimes(0); - expect(ruleStatusService.success).toHaveBeenCalled(); - }); - - it('should call scheduleActions if signalsCount was greater than 0 and rule has actions defined', async () => { - const ruleAlert = getMlResult(); - ruleAlert.actions = [ - { - actionTypeId: '.slack', - params: { - message: - 'Rule generated {{state.signals_count}} signals\n\n{{context.rule.name}}\n{{{context.results_link}}}', - }, - group: 'default', - id: '99403909-ca9b-49ba-9d7a-7e5320e68d05', - }, - ]; - payload = getPayload(ruleAlert, alertServices) as jest.Mocked; alertServices.savedObjectsClient.get.mockResolvedValue({ id: 'id', type: 'type', references: [], attributes: ruleAlert, }); - jobsSummaryMock.mockResolvedValue([]); - (findMlSignals as jest.Mock).mockResolvedValue({ - _shards: { failed: 0 }, - hits: { - hits: [{}], - }, - }); - (bulkCreateMlSignals as jest.Mock).mockResolvedValue({ - success: true, - bulkCreateDuration: 1, - createdItemsCount: 1, - errors: [], - }); - - await alert.executor(payload); - - expect(scheduleNotificationActions).toHaveBeenCalledWith( - expect.objectContaining({ - signalsCount: 1, - }) - ); - }); - }); + payload = getPayload(ruleAlert, alertServices) as jest.Mocked; + payload.previousStartedAt = null; + (checkPrivileges as jest.Mock).mockClear(); - describe('threat match', () => { - it('should throw an error if threatQuery or threatIndex or threatMapping was not null', async () => { - const result = getResult(); - result.params.type = 'threat_match'; - payload = getPayload(result, alertServices) as jest.Mocked; await alert.executor(payload); - expect(logger.error).toHaveBeenCalled(); - expect(logger.error.mock.calls[0][0]).toContain( - 'An error occurred during rule execution: message: "Indicator match is missing threatQuery and/or threatIndex and/or threatMapping: threatQuery: "undefined" threatIndex: "undefined" threatMapping: "undefined"" name: "Detect Root/Admin Users" id: "04128c15-0d1b-4716-a4c5-46997ac7f3bd" rule id: "rule-1" signals index: ".siem-signals"' - ); + expect(checkPrivileges).toHaveBeenCalledTimes(0); + expect(ruleStatusService.success).toHaveBeenCalled(); }); }); }); @@ -648,6 +440,7 @@ describe('rules_notification_alert_type', () => { it('when bulk indexing failed', async () => { const result: SearchAfterAndBulkCreateReturnType = { success: false, + warning: false, searchAfterTimes: [], bulkCreateTimes: [], lastLookBackDate: null, @@ -655,7 +448,7 @@ describe('rules_notification_alert_type', () => { createdSignals: [], errors: ['Error that bubbled up.'], }; - (searchAfterAndBulkCreate as jest.Mock).mockResolvedValue(result); + (queryExecutor as jest.Mock).mockResolvedValue(result); await alert.executor(payload); expect(logger.error).toHaveBeenCalled(); expect(logger.error.mock.calls[0][0]).toContain( @@ -665,7 +458,7 @@ describe('rules_notification_alert_type', () => { }); it('when error was thrown', async () => { - (searchAfterAndBulkCreate as jest.Mock).mockRejectedValue({}); + (queryExecutor as jest.Mock).mockRejectedValue({}); await alert.executor(payload); expect(logger.error).toHaveBeenCalled(); expect(logger.error.mock.calls[0][0]).toContain('An error occurred during rule execution'); @@ -673,7 +466,7 @@ describe('rules_notification_alert_type', () => { }); it('and call ruleStatusService with the default message', async () => { - (searchAfterAndBulkCreate as jest.Mock).mockRejectedValue( + (queryExecutor as jest.Mock).mockRejectedValue( elasticsearchClientMock.createErrorTransportRequestPromise({}) ); await alert.executor(payload); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts index cd77cab01bb01..52ceafbdb69b3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts @@ -4,16 +4,16 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - /* eslint-disable complexity */ -import { Logger, KibanaRequest } from 'src/core/server'; +import { Logger, SavedObject } from 'src/core/server'; import isEmpty from 'lodash/isEmpty'; import { chain, tryCatch } from 'fp-ts/lib/TaskEither'; import { flow } from 'fp-ts/lib/function'; -import { ApiResponse } from '@elastic/elasticsearch'; -import { performance } from 'perf_hooks'; +import * as t from 'io-ts'; +import { pickBy } from 'lodash/fp'; +import { validateNonExact } from '../../../../common/validate'; import { toError, toPromise } from '../../../../common/fp_utils'; import { @@ -21,49 +21,28 @@ import { DEFAULT_SEARCH_AFTER_PAGE_SIZE, SERVER_APP_ID, } from '../../../../common/constants'; -import { isJobStarted, isMlRule } from '../../../../common/machine_learning/helpers'; +import { isMlRule } from '../../../../common/machine_learning/helpers'; import { isThresholdRule, isEqlRule, isThreatMatchRule, - hasLargeValueItem, - normalizeThresholdField, + isQueryRule, } from '../../../../common/detection_engine/utils'; import { parseScheduleDates } from '../../../../common/detection_engine/parse_schedule_dates'; import { SetupPlugins } from '../../../plugin'; import { getInputIndex } from './get_input_output_index'; -import { searchAfterAndBulkCreate } from './search_after_bulk_create'; -import { getFilter } from './get_filter'; -import { - SignalRuleAlertTypeDefinition, - RuleAlertAttributes, - EqlSignalSearchResponse, - WrappedSignalHit, -} from './types'; +import { SignalRuleAlertTypeDefinition, RuleAlertAttributes } from './types'; import { getListsClient, getExceptions, - wrapSignal, - createErrorsFromShard, createSearchAfterReturnType, - mergeReturns, - createSearchAfterReturnTypeFromResponse, checkPrivileges, hasTimestampFields, hasReadIndexPrivileges, getRuleRangeTuples, - makeFloatString, } from './utils'; import { signalParamsSchema } from './signal_params_schema'; import { siemRuleActionGroups } from './siem_rule_action_groups'; -import { findMlSignals } from './find_ml_signals'; -import { - bulkCreateThresholdSignals, - getThresholdBucketFilters, - getThresholdSignalHistory, - findThresholdSignals, -} from './threshold'; -import { bulkCreateMlSignals } from './bulk_create_ml_signals'; import { scheduleNotificationActions, NotificationRuleTypeParams, @@ -73,15 +52,19 @@ import { buildRuleMessageFactory } from './rule_messages'; import { ruleStatusSavedObjectsClientFactory } from './rule_status_saved_objects_client'; import { getNotificationResultsLink } from '../notifications/utils'; import { TelemetryEventsSender } from '../../telemetry/sender'; -import { buildEqlSearchRequest } from '../../../../common/detection_engine/get_query_filter'; -import { bulkInsertSignals, filterDuplicateSignals } from './single_bulk_create'; -import { buildSignalFromEvent, buildSignalGroupFromSequence } from './build_bulk_body'; -import { createThreatSignals } from './threat_mapping/create_threat_signals'; -import { getIndexVersion } from '../routes/index/get_index_version'; -import { MIN_EQL_RULE_INDEX_VERSION } from '../routes/index/get_signals_template'; -import { filterEventsAgainstList } from './filters/filter_events_against_list'; -import { isOutdated } from '../migrations/helpers'; import { RuleTypeParams } from '../types'; +import { eqlExecutor } from './executors/eql'; +import { queryExecutor } from './executors/query'; +import { threatMatchExecutor } from './executors/threat_match'; +import { thresholdExecutor } from './executors/threshold'; +import { mlExecutor } from './executors/ml'; +import { + eqlRuleParams, + machineLearningRuleParams, + queryRuleParams, + threatRuleParams, + thresholdRuleParams, +} from '../schemas/rule_schemas'; export const signalRulesAlertType = ({ logger, @@ -124,34 +107,7 @@ export const signalRulesAlertType = ({ spaceId, updatedBy: updatedByUser, }) { - const { - anomalyThreshold, - from, - ruleId, - index, - eventCategoryOverride, - filters, - language, - maxSignals, - meta, - machineLearningJobId, - outputIndex, - savedId, - query, - to, - threshold, - threatFilters, - threatQuery, - threatIndex, - threatIndicatorPath, - threatMapping, - threatLanguage, - timestampOverride, - type, - exceptionsList, - concurrentSearches, - itemsPerSearch, - } = params; + const { ruleId, index, maxSignals, meta, outputIndex, timestampOverride, type } = params; const searchAfterSize = Math.min(maxSignals, DEFAULT_SEARCH_AFTER_PAGE_SIZE); let hasError: boolean = false; @@ -168,15 +124,8 @@ export const signalRulesAlertType = ({ const { actions, name, - tags, - createdAt, - createdBy, - updatedBy, - enabled, schedule: { interval }, - throttle, } = savedObject.attributes; - const updatedAt = savedObject.updated_at ?? ''; const refresh = actions.length ? 'wait_for' : false; const buildRuleMessage = buildRuleMessageFactory({ id: alertId, @@ -240,8 +189,8 @@ export const signalRulesAlertType = ({ const { tuples, remainingGap } = getRuleRangeTuples({ logger, previousStartedAt, - from, - to, + from: params.from, + to: params.to, interval, maxSignals, buildRuleMessage, @@ -266,392 +215,80 @@ export const signalRulesAlertType = ({ }); const exceptionItems = await getExceptions({ client: exceptionsClient, - lists: exceptionsList ?? [], + lists: params.exceptionsList ?? [], }); - if (isMlRule(type)) { - if (ml == null) { - throw new Error('ML plugin unavailable during rule execution'); - } - if (machineLearningJobId == null || anomalyThreshold == null) { - throw new Error( - [ - 'Machine learning rule is missing job id and/or anomaly threshold:', - `job id: "${machineLearningJobId}"`, - `anomaly threshold: "${anomalyThreshold}"`, - ].join(' ') - ); - } - - // Using fake KibanaRequest as it is needed to satisfy the ML Services API, but can be empty as it is - // currently unused by the jobsSummary function. - const fakeRequest = {} as KibanaRequest; - const summaryJobs = await ml - .jobServiceProvider(fakeRequest, services.savedObjectsClient) - .jobsSummary([machineLearningJobId]); - const jobSummary = summaryJobs.find((job) => job.id === machineLearningJobId); - - if (jobSummary == null || !isJobStarted(jobSummary.jobState, jobSummary.datafeedState)) { - const errorMessage = buildRuleMessage( - 'Machine learning job is not started:', - `job id: "${machineLearningJobId}"`, - `job status: "${jobSummary?.jobState}"`, - `datafeed status: "${jobSummary?.datafeedState}"` - ); - logger.warn(errorMessage); - hasError = true; - await ruleStatusService.error(errorMessage); - } - - const anomalyResults = await findMlSignals({ + const mlRuleSO = asTypeSpecificSO(savedObject, machineLearningRuleParams); + result = await mlExecutor({ + rule: mlRuleSO, ml, - // Using fake KibanaRequest as it is needed to satisfy the ML Services API, but can be empty as it is - // currently unused by the mlAnomalySearch function. - request: ({} as unknown) as KibanaRequest, - savedObjectsClient: services.savedObjectsClient, - jobId: machineLearningJobId, - anomalyThreshold, - from, - to, - exceptionItems: exceptionItems ?? [], - }); - - const filteredAnomalyResults = await filterEventsAgainstList({ listClient, - exceptionsList: exceptionItems ?? [], + exceptionItems, + ruleStatusService, + services, logger, - eventSearchResult: anomalyResults, + refresh, buildRuleMessage, }); - - const anomalyCount = filteredAnomalyResults.hits.hits.length; - if (anomalyCount) { - logger.info(buildRuleMessage(`Found ${anomalyCount} signals from ML anomalies.`)); - } - - const { - success, - errors, - bulkCreateDuration, - createdItemsCount, - createdItems, - } = await bulkCreateMlSignals({ - actions, - throttle, - someResult: filteredAnomalyResults, - ruleParams: params, + } else if (isThresholdRule(type)) { + const thresholdRuleSO = asTypeSpecificSO(savedObject, thresholdRuleParams); + result = await thresholdExecutor({ + rule: thresholdRuleSO, + tuples, + exceptionItems, + ruleStatusService, services, + version, logger, - id: alertId, - signalsIndex: outputIndex, - name, - createdBy, - createdAt, - updatedBy, - updatedAt, - interval, - enabled, refresh, - tags, buildRuleMessage, + startedAt, }); - // The legacy ES client does not define failures when it can be present on the structure, hence why I have the & { failures: [] } - const shardFailures = - (filteredAnomalyResults._shards as typeof filteredAnomalyResults._shards & { - failures: []; - }).failures ?? []; - const searchErrors = createErrorsFromShard({ - errors: shardFailures, - }); - result = mergeReturns([ - result, - createSearchAfterReturnType({ - success: success && filteredAnomalyResults._shards.failed === 0, - errors: [...errors, ...searchErrors], - createdSignalsCount: createdItemsCount, - createdSignals: createdItems, - bulkCreateTimes: bulkCreateDuration ? [bulkCreateDuration] : [], - }), - ]); - } else if (isThresholdRule(type) && threshold) { - if (hasLargeValueItem(exceptionItems ?? [])) { - await ruleStatusService.partialFailure( - 'Exceptions that use "is in list" or "is not in list" operators are not applied to Threshold rules' - ); - wroteWarningStatus = true; - } - const inputIndex = await getInputIndex(services, version, index); - - for (const tuple of tuples) { - const { - thresholdSignalHistory, - searchErrors: previousSearchErrors, - } = await getThresholdSignalHistory({ - indexPattern: [outputIndex], - from: tuple.from.toISOString(), - to: tuple.to.toISOString(), - services, - logger, - ruleId, - bucketByFields: normalizeThresholdField(threshold.field), - timestampOverride, - buildRuleMessage, - }); - - const bucketFilters = await getThresholdBucketFilters({ - thresholdSignalHistory, - timestampOverride, - }); - - const esFilter = await getFilter({ - type, - filters: filters ? filters.concat(bucketFilters) : bucketFilters, - language, - query, - savedId, - services, - index: inputIndex, - lists: exceptionItems ?? [], - }); - - const { - searchResult: thresholdResults, - searchErrors, - searchDuration: thresholdSearchDuration, - } = await findThresholdSignals({ - inputIndexPattern: inputIndex, - from: tuple.from.toISOString(), - to: tuple.to.toISOString(), - services, - logger, - filter: esFilter, - threshold, - timestampOverride, - buildRuleMessage, - }); - - const { - success, - bulkCreateDuration, - createdItemsCount, - createdItems, - errors, - } = await bulkCreateThresholdSignals({ - actions, - throttle, - someResult: thresholdResults, - ruleParams: params, - filter: esFilter, - services, - logger, - id: alertId, - inputIndexPattern: inputIndex, - signalsIndex: outputIndex, - timestampOverride, - startedAt, - from: tuple.from.toDate(), - name, - createdBy, - createdAt, - updatedBy, - updatedAt, - interval, - enabled, - refresh, - tags, - thresholdSignalHistory, - buildRuleMessage, - }); - - result = mergeReturns([ - result, - createSearchAfterReturnTypeFromResponse({ - searchResult: thresholdResults, - timestampOverride, - }), - createSearchAfterReturnType({ - success, - errors: [...errors, ...previousSearchErrors, ...searchErrors], - createdSignalsCount: createdItemsCount, - createdSignals: createdItems, - bulkCreateTimes: bulkCreateDuration ? [bulkCreateDuration] : [], - searchAfterTimes: [thresholdSearchDuration], - }), - ]); - } } else if (isThreatMatchRule(type)) { - if ( - threatQuery == null || - threatIndex == null || - threatMapping == null || - query == null - ) { - throw new Error( - [ - 'Indicator match is missing threatQuery and/or threatIndex and/or threatMapping:', - `threatQuery: "${threatQuery}"`, - `threatIndex: "${threatIndex}"`, - `threatMapping: "${threatMapping}"`, - ].join(' ') - ); - } - const inputIndex = await getInputIndex(services, version, index); - result = await createThreatSignals({ + const threatRuleSO = asTypeSpecificSO(savedObject, threatRuleParams); + result = await threatMatchExecutor({ + rule: threatRuleSO, tuples, - threatMapping, - query, - inputIndex, - type, - filters: filters ?? [], - language, - name, - savedId, - services, - exceptionItems: exceptionItems ?? [], listClient, - logger, - eventsTelemetry, - alertId, - outputIndex, - params, + exceptionItems, + services, + version, searchAfterSize, - actions, - createdBy, - createdAt, - updatedBy, - interval, - updatedAt, - enabled, + logger, refresh, - tags, - throttle, - threatFilters: threatFilters ?? [], - threatQuery, - threatLanguage, + eventsTelemetry, buildRuleMessage, - threatIndex, - threatIndicatorPath, - concurrentSearches: concurrentSearches ?? 1, - itemsPerSearch: itemsPerSearch ?? 9000, - }); - } else if (type === 'query' || type === 'saved_query') { - const inputIndex = await getInputIndex(services, version, index); - const esFilter = await getFilter({ - type, - filters, - language, - query, - savedId, - services, - index: inputIndex, - lists: exceptionItems ?? [], }); - - result = await searchAfterAndBulkCreate({ + } else if (isQueryRule(type)) { + const queryRuleSO = asTypeSpecificSO(savedObject, queryRuleParams); + result = await queryExecutor({ + rule: queryRuleSO, tuples, listClient, - exceptionsList: exceptionItems ?? [], - ruleParams: params, + exceptionItems, services, + version, + searchAfterSize, logger, - eventsTelemetry, - id: alertId, - inputIndexPattern: inputIndex, - signalsIndex: outputIndex, - filter: esFilter, - actions, - name, - createdBy, - createdAt, - updatedBy, - updatedAt, - interval, - enabled, - pageSize: searchAfterSize, refresh, - tags, - throttle, + eventsTelemetry, buildRuleMessage, }); } else if (isEqlRule(type)) { - if (query === undefined) { - throw new Error('EQL query rule must have a query defined'); - } - if (hasLargeValueItem(exceptionItems ?? [])) { - await ruleStatusService.partialFailure( - 'Exceptions that use "is in list" or "is not in list" operators are not applied to EQL rules' - ); - wroteWarningStatus = true; - } - try { - const signalIndexVersion = await getIndexVersion( - services.scopedClusterClient.asCurrentUser, - outputIndex - ); - if (isOutdated({ current: signalIndexVersion, target: MIN_EQL_RULE_INDEX_VERSION })) { - throw new Error( - `EQL based rules require an update to version ${MIN_EQL_RULE_INDEX_VERSION} of the detection alerts index mapping` - ); - } - } catch (err) { - if (err.statusCode === 403) { - throw new Error( - `EQL based rules require the user that created it to have the view_index_metadata, read, and write permissions for index: ${outputIndex}` - ); - } else { - throw err; - } - } - const inputIndex = await getInputIndex(services, version, index); - const request = buildEqlSearchRequest( - query, - inputIndex, - from, - to, + const eqlRuleSO = asTypeSpecificSO(savedObject, eqlRuleParams); + result = await eqlExecutor({ + rule: eqlRuleSO, + exceptionItems, + ruleStatusService, + services, + version, searchAfterSize, - timestampOverride, - exceptionItems ?? [], - eventCategoryOverride - ); - const eqlSignalSearchStart = performance.now(); - const { - body: response, - } = (await services.scopedClusterClient.asCurrentUser.transport.request( - request - )) as ApiResponse; - const eqlSignalSearchEnd = performance.now(); - const eqlSearchDuration = makeFloatString(eqlSignalSearchEnd - eqlSignalSearchStart); - result.searchAfterTimes = [eqlSearchDuration]; - let newSignals: WrappedSignalHit[] | undefined; - if (response.hits.sequences !== undefined) { - newSignals = response.hits.sequences.reduce( - (acc: WrappedSignalHit[], sequence) => - acc.concat(buildSignalGroupFromSequence(sequence, savedObject, outputIndex)), - [] - ); - } else if (response.hits.events !== undefined) { - newSignals = filterDuplicateSignals( - savedObject.id, - response.hits.events.map((event) => - wrapSignal(buildSignalFromEvent(event, savedObject, true), outputIndex) - ) - ); - } else { - throw new Error( - 'eql query response should have either `sequences` or `events` but had neither' - ); - } - if (newSignals.length > 0) { - const insertResult = await bulkInsertSignals(newSignals, logger, services, refresh); - result.bulkCreateTimes.push(insertResult.bulkCreateDuration); - result.createdSignalsCount += insertResult.createdItemsCount; - result.createdSignals = insertResult.createdItems; - } - result.success = true; + logger, + refresh, + }); } else { throw new Error(`unknown rule type ${type}`); } - if (result.success) { if (actions.length) { const notificationRuleParams: NotificationRuleTypeParams = { @@ -743,3 +380,31 @@ export const signalRulesAlertType = ({ }, }; }; + +/** + * This function takes a generic rule SavedObject and a type-specific schema for the rule params + * and validates the SavedObject params against the schema. If they validate, it returns a SavedObject + * where the params have been replaced with the validated params. This eliminates the need for logic that + * checks if the required type specific fields actually exist on the SO and prevents rule executors from + * accessing fields that only exist on other rule types. + * + * @param ruleSO SavedObject typed as an object with all fields from all different rule types + * @param schema io-ts schema for the specific rule type the SavedObject claims to be + */ +export const asTypeSpecificSO = ( + ruleSO: SavedObject, + schema: T +) => { + const nonNullParams = pickBy((value: unknown) => value !== null, ruleSO.attributes.params); + const [validated, errors] = validateNonExact(nonNullParams, schema); + if (validated == null || errors != null) { + throw new Error(`Rule attempted to execute with invalid params: ${errors}`); + } + return { + ...ruleSO, + attributes: { + ...ruleSO.attributes, + params: validated, + }, + }; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts index 0146572941331..8e42e60768bf0 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts @@ -57,6 +57,7 @@ export const createThreatSignals = async ({ let results: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, bulkCreateTimes: [], searchAfterTimes: [], lastLookBackDate: null, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts index 65b59d4df0791..aeed8da7ac3d9 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts @@ -20,7 +20,7 @@ import { ItemsPerSearch, ThreatIndicatorPathOrUndefined, } from '../../../../../common/detection_engine/schemas/types/threat_mapping'; -import { PartialFilter, RuleTypeParams } from '../../types'; +import { RuleTypeParams } from '../../types'; import { AlertInstanceContext, AlertInstanceState, @@ -41,7 +41,7 @@ export interface CreateThreatSignalsOptions { query: string; inputIndex: string[]; type: Type; - filters: PartialFilter[]; + filters: unknown[]; language: LanguageOrUndefined; savedId: string | undefined; services: AlertServices; @@ -63,7 +63,7 @@ export interface CreateThreatSignalsOptions { tags: string[]; refresh: false | 'wait_for'; throttle: string; - threatFilters: PartialFilter[]; + threatFilters: unknown[]; threatQuery: ThreatQuery; buildRuleMessage: BuildRuleMessage; threatIndex: ThreatIndex; @@ -81,7 +81,7 @@ export interface CreateThreatSignalOptions { query: string; inputIndex: string[]; type: Type; - filters: PartialFilter[]; + filters: unknown[]; language: LanguageOrUndefined; savedId: string | undefined; services: AlertServices; @@ -154,7 +154,7 @@ export interface GetThreatListOptions { searchAfter: string[] | undefined; sortField: string | undefined; sortOrder: SortOrderOrUndefined; - threatFilters: PartialFilter[]; + threatFilters: unknown[]; exceptionItems: ExceptionListItemSchema[]; listClient: ListClient; buildRuleMessage: BuildRuleMessage; @@ -165,7 +165,7 @@ export interface ThreatListCountOptions { esClient: ElasticsearchClient; query: string; language: ThreatLanguageOrUndefined; - threatFilters: PartialFilter[]; + threatFilters: unknown[]; index: string[]; exceptionItems: ExceptionListItemSchema[]; } @@ -210,7 +210,7 @@ export interface BuildThreatEnrichmentOptions { listClient: ListClient; logger: Logger; services: AlertServices; - threatFilters: PartialFilter[]; + threatFilters: unknown[]; threatIndex: ThreatIndex; threatIndicatorPath: ThreatIndicatorPathOrUndefined; threatLanguage: ThreatLanguageOrUndefined; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/utils.test.ts index 6219da93036ee..6c6447bad0975 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/utils.test.ts @@ -51,6 +51,7 @@ describe('utils', () => { test('it should combine two results with success set to "true" if both are "true"', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -61,6 +62,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -75,6 +77,7 @@ describe('utils', () => { test('it should combine two results with success set to "false" if one of them is "false"', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: false, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -85,6 +88,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -99,6 +103,7 @@ describe('utils', () => { test('it should use the latest date if it is set in the new result', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: false, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -109,6 +114,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), @@ -123,6 +129,7 @@ describe('utils', () => { test('it should combine the searchAfterTimes and the bulkCreateTimes', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: false, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -133,6 +140,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), @@ -152,6 +160,7 @@ describe('utils', () => { test('it should combine errors together without duplicates', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: false, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -162,6 +171,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), @@ -272,6 +282,7 @@ describe('utils', () => { test('it should use the maximum found if given an empty array for newResults', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -281,6 +292,7 @@ describe('utils', () => { }; const expectedResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['30'], // max value from existingResult.searchAfterTimes bulkCreateTimes: ['25'], // max value from existingResult.bulkCreateTimes lastLookBackDate: undefined, @@ -295,6 +307,7 @@ describe('utils', () => { test('it should work with empty arrays for searchAfterTimes and bulkCreateTimes and createdSignals', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -304,6 +317,7 @@ describe('utils', () => { }; const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: [], bulkCreateTimes: [], lastLookBackDate: undefined, @@ -313,6 +327,7 @@ describe('utils', () => { }; const expectedResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['30'], // max value from existingResult.searchAfterTimes bulkCreateTimes: ['25'], // max value from existingResult.bulkCreateTimes lastLookBackDate: undefined, @@ -328,6 +343,7 @@ describe('utils', () => { test('it should get the max of two new results and then combine the result with an existingResult correctly', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], // max is 30 bulkCreateTimes: ['5', '15', '25'], // max is 25 lastLookBackDate: undefined, @@ -337,6 +353,7 @@ describe('utils', () => { }; const newResult1: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), @@ -346,6 +363,7 @@ describe('utils', () => { }; const newResult2: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['40', '5', '15'], bulkCreateTimes: ['50', '5', '15'], lastLookBackDate: new Date('2020-09-16T04:34:32.390Z'), @@ -356,6 +374,7 @@ describe('utils', () => { const expectedResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['70'], // max value between newResult1 and newResult2 + max array value of existingResult (40 + 30 = 70) bulkCreateTimes: ['75'], // max value between newResult1 and newResult2 + max array value of existingResult (50 + 25 = 75) lastLookBackDate: new Date('2020-09-16T04:34:32.390Z'), // max lastLookBackDate @@ -371,6 +390,7 @@ describe('utils', () => { test('it should get the max of two new results and then combine the result with an existingResult correctly when the results are flipped around', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], // max is 30 bulkCreateTimes: ['5', '15', '25'], // max is 25 lastLookBackDate: undefined, @@ -380,6 +400,7 @@ describe('utils', () => { }; const newResult1: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), @@ -389,6 +410,7 @@ describe('utils', () => { }; const newResult2: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['40', '5', '15'], bulkCreateTimes: ['50', '5', '15'], lastLookBackDate: new Date('2020-09-16T04:34:32.390Z'), @@ -399,6 +421,7 @@ describe('utils', () => { const expectedResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['70'], // max value between newResult1 and newResult2 + max array value of existingResult (40 + 30 = 70) bulkCreateTimes: ['75'], // max value between newResult1 and newResult2 + max array value of existingResult (50 + 25 = 75) lastLookBackDate: new Date('2020-09-16T04:34:32.390Z'), // max lastLookBackDate @@ -414,6 +437,7 @@ describe('utils', () => { test('it should return the max date correctly if one date contains a null', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], // max is 30 bulkCreateTimes: ['5', '15', '25'], // max is 25 lastLookBackDate: undefined, @@ -423,6 +447,7 @@ describe('utils', () => { }; const newResult1: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), @@ -432,6 +457,7 @@ describe('utils', () => { }; const newResult2: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['40', '5', '15'], bulkCreateTimes: ['50', '5', '15'], lastLookBackDate: null, @@ -442,6 +468,7 @@ describe('utils', () => { const expectedResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['70'], // max value between newResult1 and newResult2 + max array value of existingResult (40 + 30 = 70) bulkCreateTimes: ['75'], // max value between newResult1 and newResult2 + max array value of existingResult (50 + 25 = 75) lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), // max lastLookBackDate @@ -457,6 +484,7 @@ describe('utils', () => { test('it should combine two results with success set to "true" if both are "true"', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -467,6 +495,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -481,6 +510,7 @@ describe('utils', () => { test('it should combine two results with success set to "false" if one of them is "false"', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: false, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -491,6 +521,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -505,6 +536,7 @@ describe('utils', () => { test('it should use the latest date if it is set in the new result', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: false, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -515,6 +547,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), @@ -529,6 +562,7 @@ describe('utils', () => { test('it should combine the searchAfterTimes and the bulkCreateTimes', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: false, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -539,6 +573,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), @@ -558,6 +593,7 @@ describe('utils', () => { test('it should combine errors together without duplicates', () => { const existingResult: SearchAfterAndBulkCreateReturnType = { success: false, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: undefined, @@ -568,6 +604,7 @@ describe('utils', () => { const newResult: SearchAfterAndBulkCreateReturnType = { success: true, + warning: false, searchAfterTimes: ['10', '20', '30'], bulkCreateTimes: ['5', '15', '25'], lastLookBackDate: new Date('2020-09-16T03:34:32.390Z'), diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/utils.ts index 805aca563701c..47a32915dd83f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/utils.ts @@ -66,6 +66,7 @@ export const combineResults = ( newResult: SearchAfterAndBulkCreateReturnType ): SearchAfterAndBulkCreateReturnType => ({ success: currentResult.success === false ? false : newResult.success, + warning: currentResult.warning || newResult.warning, bulkCreateTimes: calculateAdditiveMax(currentResult.bulkCreateTimes, newResult.bulkCreateTimes), searchAfterTimes: calculateAdditiveMax( currentResult.searchAfterTimes, @@ -93,6 +94,7 @@ export const combineConcurrentResults = ( const lastLookBackDate = calculateMaxLookBack(accum.lastLookBackDate, item.lastLookBackDate); return { success: accum.success && item.success, + warning: accum.warning || item.warning, searchAfterTimes: [maxSearchAfterTime], bulkCreateTimes: [maxBulkCreateTimes], lastLookBackDate, @@ -103,6 +105,7 @@ export const combineConcurrentResults = ( }, { success: true, + warning: false, searchAfterTimes: [], bulkCreateTimes: [], lastLookBackDate: undefined, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts index 559c5875c90d0..615b91d60bb1b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts @@ -31,6 +31,13 @@ import { Logger } from '../../../../../../../src/core/server'; import { ExceptionListItemSchema } from '../../../../../lists/common/schemas'; import { BuildRuleMessage } from './rule_messages'; import { TelemetryEventsSender } from '../../telemetry/sender'; +import { + EqlRuleParams, + MachineLearningRuleParams, + QueryRuleParams, + ThreatRuleParams, + ThresholdRuleParams, +} from '../schemas/rule_schemas'; // used for gap detection code // eslint-disable-next-line @typescript-eslint/naming-convention @@ -241,6 +248,26 @@ export interface RuleAlertAttributes extends AlertAttributes { params: RuleTypeParams; } +export interface MachineLearningRuleAttributes extends AlertAttributes { + params: MachineLearningRuleParams; +} + +export interface ThresholdRuleAttributes extends AlertAttributes { + params: ThresholdRuleParams; +} + +export interface ThreatRuleAttributes extends AlertAttributes { + params: ThreatRuleParams; +} + +export interface QueryRuleAttributes extends AlertAttributes { + params: QueryRuleParams; +} + +export interface EqlRuleAttributes extends AlertAttributes { + params: EqlRuleParams; +} + export type BulkResponseErrorAggregation = Record; /** @@ -291,6 +318,7 @@ export interface SearchAfterAndBulkCreateParams { export interface SearchAfterAndBulkCreateReturnType { success: boolean; + warning: boolean; searchAfterTimes: string[]; bulkCreateTimes: string[]; lastLookBackDate: Date | null | undefined; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.test.ts index 249305ebcd9a1..37959a5ee877b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.test.ts @@ -1108,6 +1108,7 @@ describe('utils', () => { lastLookBackDate: null, searchAfterTimes: [], success: true, + warning: false, }; expect(newSearchResult).toEqual(expected); }); @@ -1126,6 +1127,7 @@ describe('utils', () => { lastLookBackDate: new Date('2020-04-20T21:27:45.000Z'), searchAfterTimes: [], success: true, + warning: false, }; expect(newSearchResult).toEqual(expected); }); @@ -1331,6 +1333,7 @@ describe('utils', () => { lastLookBackDate: null, searchAfterTimes: [], success: true, + warning: false, }; expect(searchAfterReturnType).toEqual(expected); }); @@ -1344,6 +1347,7 @@ describe('utils', () => { lastLookBackDate: new Date('2020-09-21T18:51:25.193Z'), searchAfterTimes: ['123'], success: false, + warning: true, }); const expected: SearchAfterAndBulkCreateReturnType = { bulkCreateTimes: ['123'], @@ -1353,6 +1357,7 @@ describe('utils', () => { lastLookBackDate: new Date('2020-09-21T18:51:25.193Z'), searchAfterTimes: ['123'], success: false, + warning: true, }; expect(searchAfterReturnType).toEqual(expected); }); @@ -1371,6 +1376,7 @@ describe('utils', () => { lastLookBackDate: null, searchAfterTimes: [], success: true, + warning: false, }; expect(searchAfterReturnType).toEqual(expected); }); @@ -1387,6 +1393,7 @@ describe('utils', () => { lastLookBackDate: null, searchAfterTimes: [], success: true, + warning: false, }; expect(merged).toEqual(expected); }); @@ -1460,6 +1467,7 @@ describe('utils', () => { lastLookBackDate: new Date('2020-09-21T18:51:25.193Z'), // takes the next lastLookBackDate searchAfterTimes: ['123', '567'], // concatenates the searchAfterTimes together success: true, // Defaults to success true is all of it was successful + warning: false, }; expect(merged).toEqual(expected); }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.ts index 28edd97de0a0e..fb0166fd4dbee 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.ts @@ -226,7 +226,7 @@ export const getExceptions = async ({ }: { client: ExceptionListClient; lists: ListArray; -}): Promise => { +}): Promise => { if (lists.length > 0) { try { const listIds = lists.map(({ list_id: listId }) => listId); @@ -622,6 +622,7 @@ export const createSearchAfterReturnTypeFromResponse = ({ export const createSearchAfterReturnType = ({ success, + warning, searchAfterTimes, bulkCreateTimes, lastLookBackDate, @@ -630,6 +631,7 @@ export const createSearchAfterReturnType = ({ errors, }: { success?: boolean | undefined; + warning?: boolean; searchAfterTimes?: string[] | undefined; bulkCreateTimes?: string[] | undefined; lastLookBackDate?: Date | undefined; @@ -639,6 +641,7 @@ export const createSearchAfterReturnType = ({ } = {}): SearchAfterAndBulkCreateReturnType => { return { success: success ?? true, + warning: warning ?? false, searchAfterTimes: searchAfterTimes ?? [], bulkCreateTimes: bulkCreateTimes ?? [], lastLookBackDate: lastLookBackDate ?? null, @@ -673,6 +676,7 @@ export const mergeReturns = ( return searchAfters.reduce((prev, next) => { const { success: existingSuccess, + warning: existingWarning, searchAfterTimes: existingSearchAfterTimes, bulkCreateTimes: existingBulkCreateTimes, lastLookBackDate: existingLastLookBackDate, @@ -683,6 +687,7 @@ export const mergeReturns = ( const { success: newSuccess, + warning: newWarning, searchAfterTimes: newSearchAfterTimes, bulkCreateTimes: newBulkCreateTimes, lastLookBackDate: newLastLookBackDate, @@ -693,6 +698,7 @@ export const mergeReturns = ( return { success: existingSuccess && newSuccess, + warning: existingWarning || newWarning, searchAfterTimes: [...existingSearchAfterTimes, ...newSearchAfterTimes], bulkCreateTimes: [...existingBulkCreateTimes, ...newBulkCreateTimes], lastLookBackDate: newLastLookBackDate ?? existingLastLookBackDate, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts index 5bac992fd8da4..85c8483a0b988 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts @@ -58,27 +58,27 @@ import { AlertTypeParams } from '../../../../alerting/common'; export type PartialFilter = Partial; export interface RuleTypeParams extends AlertTypeParams { - anomalyThreshold: AnomalyThresholdOrUndefined; + anomalyThreshold?: AnomalyThresholdOrUndefined; author: AuthorOrUndefined; buildingBlockType: BuildingBlockTypeOrUndefined; description: Description; note: NoteOrUndefined; - eventCategoryOverride: EventCategoryOverrideOrUndefined; + eventCategoryOverride?: EventCategoryOverrideOrUndefined; falsePositives: FalsePositives; from: From; ruleId: RuleId; immutable: Immutable; - index: IndexOrUndefined; - language: LanguageOrUndefined; + index?: IndexOrUndefined; + language?: LanguageOrUndefined; license: LicenseOrUndefined; outputIndex: OutputIndex; - savedId: SavedIdOrUndefined; + savedId?: SavedIdOrUndefined; timelineId: TimelineIdOrUndefined; timelineTitle: TimelineTitleOrUndefined; meta: MetaOrUndefined; - machineLearningJobId: MachineLearningJobIdOrUndefined; - query: QueryOrUndefined; - filters: PartialFilter[] | undefined; + machineLearningJobId?: MachineLearningJobIdOrUndefined; + query?: QueryOrUndefined; + filters?: unknown[]; maxSignals: MaxSignals; riskScore: RiskScore; riskScoreMapping: RiskScoreMappingOrUndefined; @@ -86,21 +86,21 @@ export interface RuleTypeParams extends AlertTypeParams { severity: Severity; severityMapping: SeverityMappingOrUndefined; threat: ThreatsOrUndefined; - threshold: ThresholdOrUndefined; - threatFilters: PartialFilter[] | undefined; - threatIndex: ThreatIndexOrUndefined; - threatIndicatorPath: ThreatIndicatorPathOrUndefined; - threatQuery: ThreatQueryOrUndefined; - threatMapping: ThreatMappingOrUndefined; - threatLanguage: ThreatLanguageOrUndefined; + threshold?: ThresholdOrUndefined; + threatFilters?: unknown[] | undefined; + threatIndex?: ThreatIndexOrUndefined; + threatIndicatorPath?: ThreatIndicatorPathOrUndefined; + threatQuery?: ThreatQueryOrUndefined; + threatMapping?: ThreatMappingOrUndefined; + threatLanguage?: ThreatLanguageOrUndefined; timestampOverride: TimestampOverrideOrUndefined; to: To; type: Type; references: References; version: Version; exceptionsList: ListArrayOrUndefined; - concurrentSearches: ConcurrentSearchesOrUndefined; - itemsPerSearch: ItemsPerSearchOrUndefined; + concurrentSearches?: ConcurrentSearchesOrUndefined; + itemsPerSearch?: ItemsPerSearchOrUndefined; } // eslint-disable-next-line @typescript-eslint/no-explicit-any From 80fdcde8139df3ea6c24848a567b89d29d362400 Mon Sep 17 00:00:00 2001 From: Yuliia Naumenko Date: Fri, 26 Mar 2021 19:45:24 -0700 Subject: [PATCH 37/55] [Alerts][Actions] Added missing telemetry mapping for a new alert and action types: geo-containment, es-query, teams (#95464) * [Alerts][Actions] Added missing telemtry mapping for a new alert and action types: geo-containment, es-query, teams * fixed mappings * fixed ML alert type telemetry mappings Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/usage/actions_usage_collector.ts | 1 + .../server/usage/alerts_usage_collector.ts | 5 ++++ .../schema/xpack_plugins.json | 24 +++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/x-pack/plugins/actions/server/usage/actions_usage_collector.ts b/x-pack/plugins/actions/server/usage/actions_usage_collector.ts index f8a91e3a0a67a..c338bbc998c49 100644 --- a/x-pack/plugins/actions/server/usage/actions_usage_collector.ts +++ b/x-pack/plugins/actions/server/usage/actions_usage_collector.ts @@ -23,6 +23,7 @@ const byTypeSchema: MakeSchemaFrom['count_by_type'] = { __servicenow: { type: 'long' }, __jira: { type: 'long' }, __resilient: { type: 'long' }, + __teams: { type: 'long' }, }; export function createActionsUsageCollector( diff --git a/x-pack/plugins/alerting/server/usage/alerts_usage_collector.ts b/x-pack/plugins/alerting/server/usage/alerts_usage_collector.ts index 884120d3d03df..59aeb4854d9f0 100644 --- a/x-pack/plugins/alerting/server/usage/alerts_usage_collector.ts +++ b/x-pack/plugins/alerting/server/usage/alerts_usage_collector.ts @@ -16,6 +16,7 @@ const byTypeSchema: MakeSchemaFrom['count_by_type'] = { // Known alerts (searching the use of the alerts API `registerType`: // Built-in '__index-threshold': { type: 'long' }, + '__es-query': { type: 'long' }, // APM apm__error_rate: { type: 'long' }, // eslint-disable-line @typescript-eslint/naming-convention apm__transaction_error_rate: { type: 'long' }, // eslint-disable-line @typescript-eslint/naming-convention @@ -41,6 +42,10 @@ const byTypeSchema: MakeSchemaFrom['count_by_type'] = { xpack__uptime__alerts__monitorStatus: { type: 'long' }, // eslint-disable-line @typescript-eslint/naming-convention xpack__uptime__alerts__tls: { type: 'long' }, // eslint-disable-line @typescript-eslint/naming-convention xpack__uptime__alerts__durationAnomaly: { type: 'long' }, // eslint-disable-line @typescript-eslint/naming-convention + // Maps + '__geo-containment': { type: 'long' }, + // ML + xpack_ml_anomaly_detection_alert: { type: 'long' }, }; export function createAlertsUsageCollector( diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index 36488fceb2a1d..ef09937da3fbc 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -39,6 +39,9 @@ }, "__resilient": { "type": "long" + }, + "__teams": { + "type": "long" } } }, @@ -73,6 +76,9 @@ }, "__resilient": { "type": "long" + }, + "__teams": { + "type": "long" } } } @@ -136,6 +142,9 @@ "__index-threshold": { "type": "long" }, + "__es-query": { + "type": "long" + }, "apm__error_rate": { "type": "long" }, @@ -195,6 +204,12 @@ }, "xpack__uptime__alerts__durationAnomaly": { "type": "long" + }, + "__geo-containment": { + "type": "long" + }, + "xpack_ml_anomaly_detection_alert": { + "type": "long" } } }, @@ -206,6 +221,9 @@ "__index-threshold": { "type": "long" }, + "__es-query": { + "type": "long" + }, "apm__error_rate": { "type": "long" }, @@ -265,6 +283,12 @@ }, "xpack__uptime__alerts__durationAnomaly": { "type": "long" + }, + "__geo-containment": { + "type": "long" + }, + "xpack_ml_anomaly_detection_alert": { + "type": "long" } } } From 17d3907730a17eb143fea5efe7c3152b02bd193c Mon Sep 17 00:00:00 2001 From: Yara Tercero Date: Fri, 26 Mar 2021 20:59:49 -0700 Subject: [PATCH 38/55] [Security Solution][Exceptions] - Moves ExceptionItem component to lists plugin (#95246) ## Summary Moves part of the exceptions UI out of the security solution plugin and into the lists plugin. In order to keep PRs (relatively) small, I am moving single components at a time. This should also then help more easily pinpoint the source of any issues that come up along the way. The next couple PRs will focus on the exception builder. This one in particular is focused on moving over the `BuilderExceptionItem` which deals with rendering the individual exception items. --- .../common/test_utils/kibana_react.mock.ts | 13 + .../components/and_or_badge/index.stories.tsx | 79 +++ .../components/and_or_badge/index.test.tsx | 62 +++ .../components/and_or_badge/index.tsx | 25 + .../and_or_badge/rounded_badge.test.tsx | 25 + .../components/and_or_badge/rounded_badge.tsx | 44 ++ .../rounded_badge_antenna.test.tsx | 50 ++ .../and_or_badge/rounded_badge_antenna.tsx | 59 +++ .../components/and_or_badge/translations.ts | 16 + .../components}/builder/and_badge.test.tsx | 3 +- .../components}/builder/and_badge.tsx | 2 +- .../builder/entry_delete_button.test.tsx | 4 +- .../builder/entry_delete_button.tsx | 2 +- .../builder/entry_renderer.stories.tsx | 3 +- .../builder/exception_item_renderer.test.tsx} | 130 ++--- .../builder/exception_item_renderer.tsx} | 36 +- .../components/builder/helpers.test.ts | 433 ++++++++++++++++- .../exceptions/components/builder/helpers.ts | 280 ++++++++++- x-pack/plugins/lists/public/shared_exports.ts | 3 + .../exceptions/add_exception_modal/index.tsx | 4 +- .../exceptions/builder/helpers.test.tsx | 460 +----------------- .../components/exceptions/builder/helpers.tsx | 235 +-------- .../exceptions/builder/index.test.tsx | 37 +- .../components/exceptions/builder/index.tsx | 15 +- .../exceptions/edit_exception_modal/index.tsx | 4 +- .../trusted_apps_page.test.tsx.snap | 70 +-- .../public/shared_imports.ts | 3 + 27 files changed, 1271 insertions(+), 826 deletions(-) create mode 100644 x-pack/plugins/lists/public/common/test_utils/kibana_react.mock.ts create mode 100644 x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.stories.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.test.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge.test.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge_antenna.test.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge_antenna.tsx create mode 100644 x-pack/plugins/lists/public/exceptions/components/and_or_badge/translations.ts rename x-pack/plugins/{security_solution/public/common/components/exceptions => lists/public/exceptions/components}/builder/and_badge.test.tsx (95%) rename x-pack/plugins/{security_solution/public/common/components/exceptions => lists/public/exceptions/components}/builder/and_badge.tsx (96%) rename x-pack/plugins/{security_solution/public/common/components/exceptions => lists/public/exceptions/components}/builder/entry_delete_button.test.tsx (95%) rename x-pack/plugins/{security_solution/public/common/components/exceptions => lists/public/exceptions/components}/builder/entry_delete_button.tsx (98%) rename x-pack/plugins/{security_solution/public/common/components/exceptions/builder/exception_item.test.tsx => lists/public/exceptions/components/builder/exception_item_renderer.test.tsx} (82%) rename x-pack/plugins/{security_solution/public/common/components/exceptions/builder/exception_item.tsx => lists/public/exceptions/components/builder/exception_item_renderer.tsx} (85%) diff --git a/x-pack/plugins/lists/public/common/test_utils/kibana_react.mock.ts b/x-pack/plugins/lists/public/common/test_utils/kibana_react.mock.ts new file mode 100644 index 0000000000000..1516ca9128893 --- /dev/null +++ b/x-pack/plugins/lists/public/common/test_utils/kibana_react.mock.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { RecursivePartial } from '@elastic/eui/src/components/common'; + +import { EuiTheme } from '../../../../../../src/plugins/kibana_react/common'; + +export const getMockTheme = (partialTheme: RecursivePartial): EuiTheme => + partialTheme as EuiTheme; diff --git a/x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.stories.tsx b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.stories.tsx new file mode 100644 index 0000000000000..8272ca9683a4f --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.stories.tsx @@ -0,0 +1,79 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Story, addDecorator } from '@storybook/react'; +import React from 'react'; +import { ThemeProvider } from 'styled-components'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; + +import { getMockTheme } from '../../../common/test_utils/kibana_react.mock'; + +import { AndOrBadge, AndOrBadgeProps } from '.'; + +const sampleText = + 'Doggo ipsum i am bekom fat snoot wow such tempt waggy wags floofs, ruff heckin good boys and girls mlem. Ruff heckin good boys and girls mlem stop it fren borkf borking doggo very hand that feed shibe, you are doing me the shock big ol heck smol borking doggo with a long snoot for pats heckin good boys. You are doing me the shock smol borking doggo with a long snoot for pats wow very biscit, length boy. Doggo ipsum i am bekom fat snoot wow such tempt waggy wags floofs, ruff heckin good boys and girls mlem. Ruff heckin good boys and girls mlem stop it fren borkf borking doggo very hand that feed shibe, you are doing me the shock big ol heck smol borking doggo with a long snoot for pats heckin good boys.'; + +const mockTheme = getMockTheme({ + darkMode: false, + eui: euiLightVars, +}); + +addDecorator((storyFn) => {storyFn()}); + +export default { + argTypes: { + includeAntennas: { + control: { + type: 'boolean', + }, + description: 'Determines whether extending vertical lines appear extended off of round badge', + table: { + defaultValue: { + summary: false, + }, + }, + type: { + required: false, + }, + }, + type: { + control: { + options: ['and', 'or'], + type: 'select', + }, + description: '`and | or` - determines text displayed in badge.', + table: { + defaultValue: { + summary: 'and', + }, + }, + type: { + required: true, + }, + }, + }, + component: AndOrBadge, + title: 'AndOrBadge', +}; + +const AndOrBadgeTemplate: Story = (args) => ( + + + + + +

    {sampleText}

    +
    +
    +); + +export const Default = AndOrBadgeTemplate.bind({}); +Default.args = { + includeAntennas: false, + type: 'and', +}; diff --git a/x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.test.tsx b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.test.tsx new file mode 100644 index 0000000000000..47282d061a65d --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.test.tsx @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { ThemeProvider } from 'styled-components'; +import { mount } from 'enzyme'; + +import { getMockTheme } from '../../../common/test_utils/kibana_react.mock'; + +import { AndOrBadge } from './'; + +const mockTheme = getMockTheme({ eui: { euiColorLightShade: '#ece' } }); + +describe('AndOrBadge', () => { + test('it renders top and bottom antenna bars when "includeAntennas" is true', () => { + const wrapper = mount( + + + + ); + + expect(wrapper.find('[data-test-subj="and-or-badge"]').at(0).text()).toEqual('AND'); + expect(wrapper.find('[data-test-subj="andOrBadgeBarTop"]').exists()).toBeTruthy(); + expect(wrapper.find('[data-test-subj="andOrBadgeBarBottom"]').exists()).toBeTruthy(); + }); + + test('it does not render top and bottom antenna bars when "includeAntennas" is false', () => { + const wrapper = mount( + + + + ); + + expect(wrapper.find('[data-test-subj="and-or-badge"]').at(0).text()).toEqual('OR'); + expect(wrapper.find('[data-test-subj="andOrBadgeBarTop"]').exists()).toBeFalsy(); + expect(wrapper.find('[data-test-subj="andOrBadgeBarBottom"]').exists()).toBeFalsy(); + }); + + test('it renders "and" when "type" is "and"', () => { + const wrapper = mount( + + + + ); + + expect(wrapper.find('[data-test-subj="and-or-badge"]').at(0).text()).toEqual('AND'); + }); + + test('it renders "or" when "type" is "or"', () => { + const wrapper = mount( + + + + ); + + expect(wrapper.find('[data-test-subj="and-or-badge"]').at(0).text()).toEqual('OR'); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.tsx b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.tsx new file mode 100644 index 0000000000000..a7cbe66c16935 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/index.tsx @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { RoundedBadge } from './rounded_badge'; +import { RoundedBadgeAntenna } from './rounded_badge_antenna'; + +export type AndOr = 'and' | 'or'; +export interface AndOrBadgeProps { + type: AndOr; + includeAntennas?: boolean; +} +/** Displays AND / OR in a round badge */ +// This ticket is closed, however, as of 3/23/21 no round badge yet +// Ref: https://github.com/elastic/eui/issues/1655 +export const AndOrBadge = React.memo(({ type, includeAntennas = false }) => { + return includeAntennas ? : ; +}); + +AndOrBadge.displayName = 'AndOrBadge'; diff --git a/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge.test.tsx b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge.test.tsx new file mode 100644 index 0000000000000..489d02990b1f4 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge.test.tsx @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { mount } from 'enzyme'; + +import { RoundedBadge } from './rounded_badge'; + +describe('RoundedBadge', () => { + test('it renders "and" when "type" is "and"', () => { + const wrapper = mount(); + + expect(wrapper.find('[data-test-subj="and-or-badge"]').at(0).text()).toEqual('AND'); + }); + + test('it renders "or" when "type" is "or"', () => { + const wrapper = mount(); + + expect(wrapper.find('[data-test-subj="and-or-badge"]').at(0).text()).toEqual('OR'); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge.tsx b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge.tsx new file mode 100644 index 0000000000000..0e8a8ee823593 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge.tsx @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiBadge } from '@elastic/eui'; +import React from 'react'; +import styled from 'styled-components'; + +import * as i18n from './translations'; + +import { AndOr } from '.'; + +const RoundBadge = (styled(EuiBadge)` + align-items: center; + border-radius: 100%; + display: inline-flex; + font-size: 9px; + height: 34px; + justify-content: center; + margin: 0 5px 0 5px; + padding: 7px 6px 4px 6px; + user-select: none; + width: 34px; + .euiBadge__content { + position: relative; + top: -1px; + } + .euiBadge__text { + text-overflow: clip; + } +` as unknown) as typeof EuiBadge; + +RoundBadge.displayName = 'RoundBadge'; + +export const RoundedBadge: React.FC<{ type: AndOr }> = ({ type }) => ( + + {type === 'and' ? i18n.AND : i18n.OR} + +); + +RoundedBadge.displayName = 'RoundedBadge'; diff --git a/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge_antenna.test.tsx b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge_antenna.test.tsx new file mode 100644 index 0000000000000..472345b9c9f19 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge_antenna.test.tsx @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { ThemeProvider } from 'styled-components'; +import { mount } from 'enzyme'; + +import { getMockTheme } from '../../../common/test_utils/kibana_react.mock'; + +import { RoundedBadgeAntenna } from './rounded_badge_antenna'; + +const mockTheme = getMockTheme({ eui: { euiColorLightShade: '#ece' } }); + +describe('RoundedBadgeAntenna', () => { + test('it renders top and bottom antenna bars', () => { + const wrapper = mount( + + + + ); + + expect(wrapper.find('[data-test-subj="and-or-badge"]').at(0).text()).toEqual('AND'); + expect(wrapper.find('[data-test-subj="andOrBadgeBarTop"]').exists()).toBeTruthy(); + expect(wrapper.find('[data-test-subj="andOrBadgeBarBottom"]').exists()).toBeTruthy(); + }); + + test('it renders "and" when "type" is "and"', () => { + const wrapper = mount( + + + + ); + + expect(wrapper.find('[data-test-subj="and-or-badge"]').at(0).text()).toEqual('AND'); + }); + + test('it renders "or" when "type" is "or"', () => { + const wrapper = mount( + + + + ); + + expect(wrapper.find('[data-test-subj="and-or-badge"]').at(0).text()).toEqual('OR'); + }); +}); diff --git a/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge_antenna.tsx b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge_antenna.tsx new file mode 100644 index 0000000000000..3e9d850db33b7 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/rounded_badge_antenna.tsx @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import React from 'react'; +import styled, { css } from 'styled-components'; + +import { RoundedBadge } from './rounded_badge'; + +import { AndOr } from '.'; + +const antennaStyles = css` + background: ${({ theme }): string => theme.eui.euiColorLightShade}; + position: relative; + width: 2px; + &:after { + background: ${({ theme }): string => theme.eui.euiColorLightShade}; + content: ''; + height: 8px; + right: -4px; + position: absolute; + width: 10px; + clip-path: circle(); + } +`; + +const TopAntenna = styled(EuiFlexItem)` + ${antennaStyles} + &:after { + top: 0; + } +`; +const BottomAntenna = styled(EuiFlexItem)` + ${antennaStyles} + &:after { + bottom: 0; + } +`; + +export const RoundedBadgeAntenna: React.FC<{ type: AndOr }> = ({ type }) => ( + + + + + + + +); + +RoundedBadgeAntenna.displayName = 'RoundedBadgeAntenna'; diff --git a/x-pack/plugins/lists/public/exceptions/components/and_or_badge/translations.ts b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/translations.ts new file mode 100644 index 0000000000000..0a0a46b224db1 --- /dev/null +++ b/x-pack/plugins/lists/public/exceptions/components/and_or_badge/translations.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const AND = i18n.translate('xpack.lists.andOrBadge.andLabel', { + defaultMessage: 'AND', +}); + +export const OR = i18n.translate('xpack.lists.andOrBadge.orLabel', { + defaultMessage: 'OR', +}); diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/and_badge.test.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/and_badge.test.tsx similarity index 95% rename from x-pack/plugins/security_solution/public/common/components/exceptions/builder/and_badge.test.tsx rename to x-pack/plugins/lists/public/exceptions/components/builder/and_badge.test.tsx index 16678e4da2a1d..dc773e222776b 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/and_badge.test.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/and_badge.test.tsx @@ -9,8 +9,9 @@ import React from 'react'; import { ThemeProvider } from 'styled-components'; import { mount } from 'enzyme'; +import { getMockTheme } from '../../../common/test_utils/kibana_react.mock'; + import { BuilderAndBadgeComponent } from './and_badge'; -import { getMockTheme } from '../../../lib/kibana/kibana_react.mock'; const mockTheme = getMockTheme({ eui: { euiColorLightShade: '#ece' } }); diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/and_badge.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/and_badge.tsx similarity index 96% rename from x-pack/plugins/security_solution/public/common/components/exceptions/builder/and_badge.tsx rename to x-pack/plugins/lists/public/exceptions/components/builder/and_badge.tsx index fd561110d885f..6f867d772072f 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/and_badge.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/and_badge.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; -import { AndOrBadge } from '../../and_or_badge'; +import { AndOrBadge } from '../and_or_badge'; const MyInvisibleAndBadge = styled(EuiFlexItem)` visibility: hidden; diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_delete_button.test.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_delete_button.test.tsx similarity index 95% rename from x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_delete_button.test.tsx rename to x-pack/plugins/lists/public/exceptions/components/builder/entry_delete_button.test.tsx index d86e668a93ad6..9ed8b2c41b4ba 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_delete_button.test.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_delete_button.test.tsx @@ -8,8 +8,8 @@ import { mount } from 'enzyme'; import React from 'react'; -import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; -import { getEntryMatchMock } from '../../../../../../lists/common/schemas/types/entry_match.mock'; +import { getExceptionListItemSchemaMock } from '../../../../common/schemas/response/exception_list_item_schema.mock'; +import { getEntryMatchMock } from '../../../../common/schemas/types/entry_match.mock'; import { BuilderEntryDeleteButtonComponent } from './entry_delete_button'; diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_delete_button.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_delete_button.tsx similarity index 98% rename from x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_delete_button.tsx rename to x-pack/plugins/lists/public/exceptions/components/builder/entry_delete_button.tsx index 48bdeb4d5b044..01739bd3f85cb 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/entry_delete_button.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_delete_button.tsx @@ -9,7 +9,7 @@ import React, { useCallback } from 'react'; import { EuiButtonIcon, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; -import { BuilderEntry } from '../types'; +import { BuilderEntry } from './types'; const MyFirstRowContainer = styled(EuiFlexItem)` padding-top: 20px; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx index 4b1df0b7c3213..8408fb7a6a4f1 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx @@ -15,10 +15,11 @@ import { HttpStart } from 'kibana/public'; import { OperatorEnum, OperatorTypeEnum } from '../../../../common'; import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; import { fields } from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { getMockTheme } from '../../../common/test_utils/kibana_react.mock'; import { BuilderEntryItem, EntryItemProps } from './entry_renderer'; -const mockTheme = (): { darkMode: boolean; eui: unknown } => ({ +const mockTheme = getMockTheme({ darkMode: false, eui: euiLightVars, }); diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.test.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.test.tsx similarity index 82% rename from x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.test.tsx rename to x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.test.tsx index 5088dabd41f66..0fd886bdc742a 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.test.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.test.tsx @@ -8,39 +8,28 @@ import React from 'react'; import { ThemeProvider } from 'styled-components'; import { mount } from 'enzyme'; +import { dataPluginMock } from 'src/plugins/data/public/mocks'; -import { useKibana } from '../../../../common/lib/kibana'; -import { fields } from '../../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; -import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; -import { getEntryMatchMock } from '../../../../../../lists/common/schemas/types/entry_match.mock'; -import { getEntryMatchAnyMock } from '../../../../../../lists/common/schemas/types/entry_match_any.mock'; +import { fields } from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { getExceptionListItemSchemaMock } from '../../../../common/schemas/response/exception_list_item_schema.mock'; +import { getEntryMatchMock } from '../../../../common/schemas/types/entry_match.mock'; +import { getEntryMatchAnyMock } from '../../../../common/schemas/types/entry_match_any.mock'; +import { coreMock } from '../../../../../../../src/core/public/mocks'; +import { getMockTheme } from '../../../common/test_utils/kibana_react.mock'; -import { BuilderExceptionListItemComponent } from './exception_item'; -import { getMockTheme } from '../../../lib/kibana/kibana_react.mock'; +import { BuilderExceptionListItemComponent } from './exception_item_renderer'; const mockTheme = getMockTheme({ eui: { euiColorLightShade: '#ece', }, }); - -jest.mock('../../../../common/lib/kibana'); +const mockKibanaHttpService = coreMock.createStart().http; +const { autocomplete: autocompleteStartMock } = dataPluginMock.createStartContract(); describe('BuilderExceptionListItemComponent', () => { const getValueSuggestionsMock = jest.fn().mockResolvedValue(['value 1', 'value 2']); - beforeAll(() => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - data: { - autocomplete: { - getValueSuggestions: getValueSuggestionsMock, - }, - }, - }, - }); - }); - afterEach(() => { getValueSuggestionsMock.mockClear(); }); @@ -54,19 +43,22 @@ describe('BuilderExceptionListItemComponent', () => { const wrapper = mount( ); @@ -82,19 +74,22 @@ describe('BuilderExceptionListItemComponent', () => { const wrapper = mount( ); @@ -108,19 +103,22 @@ describe('BuilderExceptionListItemComponent', () => { const wrapper = mount( ); @@ -136,19 +134,22 @@ describe('BuilderExceptionListItemComponent', () => { const wrapper = mount( ); @@ -171,19 +172,22 @@ describe('BuilderExceptionListItemComponent', () => { }; const wrapper = mount( ); @@ -198,19 +202,22 @@ describe('BuilderExceptionListItemComponent', () => { const wrapper = mount( ); @@ -224,21 +231,24 @@ describe('BuilderExceptionListItemComponent', () => { exceptionItem.entries = [getEntryMatchMock()]; const wrapper = mount( ); @@ -252,19 +262,22 @@ describe('BuilderExceptionListItemComponent', () => { exceptionItem.entries = [getEntryMatchMock(), getEntryMatchMock()]; const wrapper = mount( ); @@ -280,19 +293,22 @@ describe('BuilderExceptionListItemComponent', () => { exceptionItem.entries = [getEntryMatchMock(), getEntryMatchAnyMock()]; const wrapper = mount( ); diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx similarity index 85% rename from x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.tsx rename to x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx index 39322b5cf51a3..d151ec5a81ec3 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/exception_item.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx @@ -5,23 +5,24 @@ * 2.0. */ -import React, { useMemo, useCallback } from 'react'; +import React, { useCallback, useMemo } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; +import { HttpStart } from 'kibana/public'; +import { AutocompleteStart } from 'src/plugins/data/public'; -import { Type } from '../../../../../common/detection_engine/schemas/common/schemas'; -import { IIndexPattern } from '../../../../../../../../src/plugins/data/common'; -import { getFormattedBuilderEntries, getUpdatedEntriesOnDelete } from './helpers'; -import { FormattedBuilderEntry, ExceptionsBuilderExceptionItem, BuilderEntry } from '../types'; -import { BuilderEntryItem, ExceptionListType } from '../../../../shared_imports'; -import { BuilderEntryDeleteButtonComponent } from './entry_delete_button'; +import { ExceptionListType } from '../../../../common'; +import { IIndexPattern } from '../../../../../../../src/plugins/data/common'; + +import { BuilderEntry, ExceptionsBuilderExceptionItem, FormattedBuilderEntry } from './types'; import { BuilderAndBadgeComponent } from './and_badge'; -import { isEqlRule, isThresholdRule } from '../../../../../common/detection_engine/utils'; -import { useKibana } from '../../../lib/kibana'; +import { BuilderEntryDeleteButtonComponent } from './entry_delete_button'; +import { BuilderEntryItem } from './entry_renderer'; +import { getFormattedBuilderEntries, getUpdatedEntriesOnDelete } from './helpers'; const MyBeautifulLine = styled(EuiFlexItem)` &:after { - background: ${({ theme }) => theme.eui.euiColorLightShade}; + background: ${({ theme }): string => theme.eui.euiColorLightShade}; content: ''; width: 2px; height: 40px; @@ -35,6 +36,9 @@ const MyOverflowContainer = styled(EuiFlexItem)` `; interface BuilderExceptionListItemProps { + allowLargeValueLists: boolean; + httpService: HttpStart; + autocompleteService: AutocompleteStart; exceptionItem: ExceptionsBuilderExceptionItem; exceptionItemIndex: number; indexPattern: IIndexPattern; @@ -45,11 +49,13 @@ interface BuilderExceptionListItemProps { onChangeExceptionItem: (item: ExceptionsBuilderExceptionItem, index: number) => void; setErrorsExist: (arg: boolean) => void; onlyShowListOperators?: boolean; - ruleType?: Type; } export const BuilderExceptionListItemComponent = React.memo( ({ + allowLargeValueLists, + httpService, + autocompleteService, exceptionItem, exceptionItemIndex, indexPattern, @@ -60,9 +66,7 @@ export const BuilderExceptionListItemComponent = React.memo { - const { http, data } = useKibana().services; const handleEntryChange = useCallback( (entry: BuilderEntry, entryIndex: number): void => { const updatedEntries: BuilderEntry[] = [ @@ -119,9 +123,9 @@ export const BuilderExceptionListItemComponent = React.memo} ({ v4: jest.fn().mockReturnValue('123'), })); +const getEntryExistsWithIdMock = (): EntryExists & { id: string } => ({ + ...getEntryExistsMock(), + id: '123', +}); + const getEntryNestedWithIdMock = (): EntryNested & { id: string } => ({ ...getEntryNestedMock(), id: '123', @@ -995,4 +1008,422 @@ describe('Exception builder helpers', () => { expect(output).toEqual(expected); }); }); + + describe('#getFormattedBuilderEntries', () => { + test('it returns formatted entry with field undefined if it unable to find a matching index pattern field', () => { + const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + const payloadItems: BuilderEntry[] = [getEntryMatchWithIdMock()]; + const output = getFormattedBuilderEntries(payloadIndexPattern, payloadItems); + const expected: FormattedBuilderEntry[] = [ + { + correspondingKeywordField: undefined, + entryIndex: 0, + field: undefined, + id: '123', + nested: undefined, + operator: isOperator, + parent: undefined, + value: 'some host name', + }, + ]; + expect(output).toEqual(expected); + }); + + test('it returns formatted entries when no nested entries exist', () => { + const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + const payloadItems: BuilderEntry[] = [ + { ...getEntryMatchWithIdMock(), field: 'ip', value: 'some ip' }, + { ...getEntryMatchAnyWithIdMock(), field: 'extension', value: ['some extension'] }, + ]; + const output = getFormattedBuilderEntries(payloadIndexPattern, payloadItems); + const expected: FormattedBuilderEntry[] = [ + { + correspondingKeywordField: undefined, + entryIndex: 0, + field: { + aggregatable: true, + count: 0, + esTypes: ['ip'], + name: 'ip', + readFromDocValues: true, + scripted: false, + searchable: true, + type: 'ip', + }, + id: '123', + nested: undefined, + operator: isOperator, + parent: undefined, + value: 'some ip', + }, + { + correspondingKeywordField: undefined, + entryIndex: 1, + field: { + aggregatable: true, + count: 0, + esTypes: ['keyword'], + name: 'extension', + readFromDocValues: true, + scripted: false, + searchable: true, + type: 'string', + }, + id: '123', + nested: undefined, + operator: isOneOfOperator, + parent: undefined, + value: ['some extension'], + }, + ]; + expect(output).toEqual(expected); + }); + + test('it returns formatted entries when nested entries exist', () => { + const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + const payloadParent: EntryNested = { + ...getEntryNestedWithIdMock(), + entries: [{ ...getEntryMatchWithIdMock(), field: 'child' }], + field: 'nestedField', + }; + const payloadItems: BuilderEntry[] = [ + { ...getEntryMatchWithIdMock(), field: 'ip', value: 'some ip' }, + { ...payloadParent }, + ]; + + const output = getFormattedBuilderEntries(payloadIndexPattern, payloadItems); + const expected: FormattedBuilderEntry[] = [ + { + correspondingKeywordField: undefined, + entryIndex: 0, + field: { + aggregatable: true, + count: 0, + esTypes: ['ip'], + name: 'ip', + readFromDocValues: true, + scripted: false, + searchable: true, + type: 'ip', + }, + id: '123', + nested: undefined, + operator: isOperator, + parent: undefined, + value: 'some ip', + }, + { + correspondingKeywordField: undefined, + entryIndex: 1, + field: { + aggregatable: false, + esTypes: ['nested'], + name: 'nestedField', + searchable: false, + type: 'string', + }, + id: '123', + nested: 'parent', + operator: isOperator, + parent: undefined, + value: undefined, + }, + { + correspondingKeywordField: undefined, + entryIndex: 0, + field: { + aggregatable: false, + count: 0, + esTypes: ['text'], + name: 'child', + readFromDocValues: false, + scripted: false, + searchable: true, + subType: { + nested: { + path: 'nestedField', + }, + }, + type: 'string', + }, + id: '123', + nested: 'child', + operator: isOperator, + parent: { + parent: { + entries: [ + { + field: 'child', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'some host name', + }, + ], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + parentIndex: 1, + }, + value: 'some host name', + }, + ]; + expect(output).toEqual(expected); + }); + }); + + describe('#getUpdatedEntriesOnDelete', () => { + test('it removes entry corresponding to "entryIndex"', () => { + const payloadItem: ExceptionsBuilderExceptionItem = { + ...getExceptionListItemSchemaMock(), + entries: ENTRIES_WITH_IDS, + }; + const output = getUpdatedEntriesOnDelete(payloadItem, 0, null); + const expected: ExceptionsBuilderExceptionItem = { + ...getExceptionListItemSchemaMock(), + entries: [ + { + field: 'some.not.nested.field', + id: '123', + operator: OperatorEnum.INCLUDED, + type: OperatorTypeEnum.MATCH, + value: 'some value', + }, + ], + }; + expect(output).toEqual(expected); + }); + + test('it removes nested entry of "entryIndex" with corresponding parent index', () => { + const payloadItem: ExceptionsBuilderExceptionItem = { + ...getExceptionListItemSchemaMock(), + entries: [ + { + ...getEntryNestedWithIdMock(), + entries: [{ ...getEntryExistsWithIdMock() }, { ...getEntryMatchAnyWithIdMock() }], + }, + ], + }; + const output = getUpdatedEntriesOnDelete(payloadItem, 0, 0); + const expected: ExceptionsBuilderExceptionItem = { + ...getExceptionListItemSchemaMock(), + entries: [ + { ...getEntryNestedWithIdMock(), entries: [{ ...getEntryMatchAnyWithIdMock() }] }, + ], + }; + expect(output).toEqual(expected); + }); + + test('it removes entire nested entry if after deleting specified nested entry, there are no more nested entries left', () => { + const payloadItem: ExceptionsBuilderExceptionItem = { + ...getExceptionListItemSchemaMock(), + entries: [ + { + ...getEntryNestedWithIdMock(), + entries: [{ ...getEntryExistsWithIdMock() }], + }, + ], + }; + const output = getUpdatedEntriesOnDelete(payloadItem, 0, 0); + const expected: ExceptionsBuilderExceptionItem = { + ...getExceptionListItemSchemaMock(), + entries: [], + }; + expect(output).toEqual(expected); + }); + }); + + describe('#getFormattedBuilderEntry', () => { + test('it returns entry with a value for "correspondingKeywordField" when "item.field" is of type "text" and matching keyword field exists', () => { + const payloadIndexPattern: IIndexPattern = { + ...getMockIndexPattern(), + fields: [ + ...fields, + { + aggregatable: false, + count: 0, + esTypes: ['text'], + name: 'machine.os.raw.text', + readFromDocValues: true, + scripted: false, + searchable: false, + type: 'string', + }, + ], + }; + const payloadItem: BuilderEntry = { + ...getEntryMatchWithIdMock(), + field: 'machine.os.raw.text', + value: 'some os', + }; + const output = getFormattedBuilderEntry( + payloadIndexPattern, + payloadItem, + 0, + undefined, + undefined + ); + const expected: FormattedBuilderEntry = { + correspondingKeywordField: getField('machine.os.raw'), + entryIndex: 0, + field: { + aggregatable: false, + count: 0, + esTypes: ['text'], + name: 'machine.os.raw.text', + readFromDocValues: true, + scripted: false, + searchable: false, + type: 'string', + }, + id: '123', + nested: undefined, + operator: isOperator, + parent: undefined, + value: 'some os', + }; + expect(output).toEqual(expected); + }); + + test('it returns "FormattedBuilderEntry" with value "nested" of "child" when "parent" and "parentIndex" are defined', () => { + const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + const payloadItem: BuilderEntry = { ...getEntryMatchWithIdMock(), field: 'child' }; + const payloadParent: EntryNested = { + ...getEntryNestedWithIdMock(), + entries: [{ ...getEntryMatchWithIdMock(), field: 'child' }], + field: 'nestedField', + }; + const output = getFormattedBuilderEntry( + payloadIndexPattern, + payloadItem, + 0, + payloadParent, + 1 + ); + const expected: FormattedBuilderEntry = { + correspondingKeywordField: undefined, + entryIndex: 0, + field: { + aggregatable: false, + count: 0, + esTypes: ['text'], + name: 'child', + readFromDocValues: false, + scripted: false, + searchable: true, + subType: { + nested: { + path: 'nestedField', + }, + }, + type: 'string', + }, + id: '123', + nested: 'child', + operator: isOperator, + parent: { + parent: { + entries: [{ ...payloadItem }], + field: 'nestedField', + id: '123', + type: OperatorTypeEnum.NESTED, + }, + parentIndex: 1, + }, + value: 'some host name', + }; + expect(output).toEqual(expected); + }); + + test('it returns non nested "FormattedBuilderEntry" when "parent" and "parentIndex" are not defined', () => { + const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); + const payloadItem: BuilderEntry = { + ...getEntryMatchWithIdMock(), + field: 'ip', + value: 'some ip', + }; + const output = getFormattedBuilderEntry( + payloadIndexPattern, + payloadItem, + 0, + undefined, + undefined + ); + const expected: FormattedBuilderEntry = { + correspondingKeywordField: undefined, + entryIndex: 0, + field: { + aggregatable: true, + count: 0, + esTypes: ['ip'], + name: 'ip', + readFromDocValues: true, + scripted: false, + searchable: true, + type: 'ip', + }, + id: '123', + nested: undefined, + operator: isOperator, + parent: undefined, + value: 'some ip', + }; + expect(output).toEqual(expected); + }); + }); + + describe('#isEntryNested', () => { + test('it returns "false" if payload is not of type EntryNested', () => { + const payload: BuilderEntry = getEntryMatchWithIdMock(); + const output = isEntryNested(payload); + const expected = false; + expect(output).toEqual(expected); + }); + + test('it returns "true if payload is of type EntryNested', () => { + const payload: EntryNested = getEntryNestedWithIdMock(); + const output = isEntryNested(payload); + const expected = true; + expect(output).toEqual(expected); + }); + }); + + describe('#getCorrespondingKeywordField', () => { + test('it returns matching keyword field if "selectedFieldIsTextType" is true and keyword field exists', () => { + const output = getCorrespondingKeywordField({ + fields, + selectedField: 'machine.os.raw.text', + }); + + expect(output).toEqual(getField('machine.os.raw')); + }); + + test('it returns undefined if "selectedFieldIsTextType" is false', () => { + const output = getCorrespondingKeywordField({ + fields, + selectedField: 'machine.os.raw', + }); + + expect(output).toEqual(undefined); + }); + + test('it returns undefined if "selectedField" is empty string', () => { + const output = getCorrespondingKeywordField({ + fields, + selectedField: '', + }); + + expect(output).toEqual(undefined); + }); + + test('it returns undefined if "selectedField" is undefined', () => { + const output = getCorrespondingKeywordField({ + fields, + selectedField: undefined, + }); + + expect(output).toEqual(undefined); + }); + }); }); diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/helpers.ts b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.ts index 57db94ac6c753..b3ed9d296a218 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/helpers.ts +++ b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.ts @@ -9,6 +9,7 @@ import { IFieldType, IIndexPattern } from '../../../../../../../src/plugins/data import { addIdToItem } from '../../../../common/shared_imports'; import { Entry, + EntryNested, ExceptionListType, ListSchema, OperatorTypeEnum, @@ -25,7 +26,132 @@ import { } from '../autocomplete/operators'; import { OperatorOption } from '../autocomplete/types'; -import { BuilderEntry, FormattedBuilderEntry } from './types'; +import { + BuilderEntry, + EmptyNestedEntry, + ExceptionsBuilderExceptionItem, + FormattedBuilderEntry, +} from './types'; + +export const isEntryNested = (item: BuilderEntry): item is EntryNested => { + return (item as EntryNested).entries != null; +}; + +/** + * Returns the operator type, may not need this if using io-ts types + * + * @param item a single ExceptionItem entry + */ +export const getOperatorType = (item: BuilderEntry): OperatorTypeEnum => { + switch (item.type) { + case 'match': + return OperatorTypeEnum.MATCH; + case 'match_any': + return OperatorTypeEnum.MATCH_ANY; + case 'list': + return OperatorTypeEnum.LIST; + default: + return OperatorTypeEnum.EXISTS; + } +}; + +/** + * Determines operator selection (is/is not/is one of, etc.) + * Default operator is "is" + * + * @param item a single ExceptionItem entry + */ +export const getExceptionOperatorSelect = (item: BuilderEntry): OperatorOption => { + if (item.type === 'nested') { + return isOperator; + } else { + const operatorType = getOperatorType(item); + const foundOperator = EXCEPTION_OPERATORS.find((operatorOption) => { + return item.operator === operatorOption.operator && operatorType === operatorOption.type; + }); + + return foundOperator ?? isOperator; + } +}; + +/** + * Returns the fields corresponding value for an entry + * + * @param item a single ExceptionItem entry + */ +export const getEntryValue = (item: BuilderEntry): string | string[] | undefined => { + switch (item.type) { + case OperatorTypeEnum.MATCH: + case OperatorTypeEnum.MATCH_ANY: + return item.value; + case OperatorTypeEnum.EXISTS: + return undefined; + case OperatorTypeEnum.LIST: + return item.list.id; + default: + return undefined; + } +}; + +/** + * Determines whether an entire entry, exception item, or entry within a nested + * entry needs to be removed + * + * @param exceptionItem + * @param entryIndex index of given entry, for nested entries, this will correspond + * to their parent index + * @param nestedEntryIndex index of nested entry + * + */ +export const getUpdatedEntriesOnDelete = ( + exceptionItem: ExceptionsBuilderExceptionItem, + entryIndex: number, + nestedParentIndex: number | null +): ExceptionsBuilderExceptionItem => { + const itemOfInterest: BuilderEntry = exceptionItem.entries[nestedParentIndex ?? entryIndex]; + + if (nestedParentIndex != null && itemOfInterest.type === OperatorTypeEnum.NESTED) { + const updatedEntryEntries = [ + ...itemOfInterest.entries.slice(0, entryIndex), + ...itemOfInterest.entries.slice(entryIndex + 1), + ]; + + if (updatedEntryEntries.length === 0) { + return { + ...exceptionItem, + entries: [ + ...exceptionItem.entries.slice(0, nestedParentIndex), + ...exceptionItem.entries.slice(nestedParentIndex + 1), + ], + }; + } else { + const { field } = itemOfInterest; + const updatedItemOfInterest: EntryNested | EmptyNestedEntry = { + entries: updatedEntryEntries, + field, + id: itemOfInterest.id ?? `${entryIndex}`, + type: OperatorTypeEnum.NESTED, + }; + + return { + ...exceptionItem, + entries: [ + ...exceptionItem.entries.slice(0, nestedParentIndex), + updatedItemOfInterest, + ...exceptionItem.entries.slice(nestedParentIndex + 1), + ], + }; + } + } else { + return { + ...exceptionItem, + entries: [ + ...exceptionItem.entries.slice(0, entryIndex), + ...exceptionItem.entries.slice(entryIndex + 1), + ], + }; + } +}; /** * Returns filtered index patterns based on the field - if a user selects to @@ -387,3 +513,155 @@ export const getOperatorOptions = ( : EXCEPTION_OPERATORS_SANS_LISTS; } }; + +/** + * Fields of type 'text' do not generate autocomplete values, we want + * to find it's corresponding keyword type (if available) which does + * generate autocomplete values + * + * @param fields IFieldType fields + * @param selectedField the field name that was selected + * @param isTextType we only want a corresponding keyword field if + * the selected field is of type 'text' + * + */ +export const getCorrespondingKeywordField = ({ + fields, + selectedField, +}: { + fields: IFieldType[]; + selectedField: string | undefined; +}): IFieldType | undefined => { + const selectedFieldBits = + selectedField != null && selectedField !== '' ? selectedField.split('.') : []; + const selectedFieldIsTextType = selectedFieldBits.slice(-1)[0] === 'text'; + + if (selectedFieldIsTextType && selectedFieldBits.length > 0) { + const keywordField = selectedFieldBits.slice(0, selectedFieldBits.length - 1).join('.'); + const [foundKeywordField] = fields.filter( + ({ name }) => keywordField !== '' && keywordField === name + ); + return foundKeywordField; + } + + return undefined; +}; + +/** + * Formats the entry into one that is easily usable for the UI, most of the + * complexity was introduced with nested fields + * + * @param patterns IIndexPattern containing available fields on rule index + * @param item exception item entry + * @param itemIndex entry index + * @param parent nested entries hold copy of their parent for use in various logic + * @param parentIndex corresponds to the entry index, this might seem obvious, but + * was added to ensure that nested items could be identified with their parent entry + */ +export const getFormattedBuilderEntry = ( + indexPattern: IIndexPattern, + item: BuilderEntry, + itemIndex: number, + parent: EntryNested | undefined, + parentIndex: number | undefined +): FormattedBuilderEntry => { + const { fields } = indexPattern; + const field = parent != null ? `${parent.field}.${item.field}` : item.field; + const [foundField] = fields.filter(({ name }) => field != null && field === name); + const correspondingKeywordField = getCorrespondingKeywordField({ + fields, + selectedField: field, + }); + + if (parent != null && parentIndex != null) { + return { + correspondingKeywordField, + entryIndex: itemIndex, + field: + foundField != null + ? { ...foundField, name: foundField.name.split('.').slice(-1)[0] } + : foundField, + id: item.id ?? `${itemIndex}`, + nested: 'child', + operator: getExceptionOperatorSelect(item), + parent: { parent, parentIndex }, + value: getEntryValue(item), + }; + } else { + return { + correspondingKeywordField, + entryIndex: itemIndex, + field: foundField, + id: item.id ?? `${itemIndex}`, + nested: undefined, + operator: getExceptionOperatorSelect(item), + parent: undefined, + value: getEntryValue(item), + }; + } +}; + +/** + * Formats the entries to be easily usable for the UI, most of the + * complexity was introduced with nested fields + * + * @param patterns IIndexPattern containing available fields on rule index + * @param entries exception item entries + * @param addNested boolean noting whether or not UI is currently + * set to add a nested field + * @param parent nested entries hold copy of their parent for use in various logic + * @param parentIndex corresponds to the entry index, this might seem obvious, but + * was added to ensure that nested items could be identified with their parent entry + */ +export const getFormattedBuilderEntries = ( + indexPattern: IIndexPattern, + entries: BuilderEntry[], + parent?: EntryNested, + parentIndex?: number +): FormattedBuilderEntry[] => { + return entries.reduce((acc, item, index) => { + const isNewNestedEntry = item.type === 'nested' && item.entries.length === 0; + if (item.type !== 'nested' && !isNewNestedEntry) { + const newItemEntry: FormattedBuilderEntry = getFormattedBuilderEntry( + indexPattern, + item, + index, + parent, + parentIndex + ); + return [...acc, newItemEntry]; + } else { + const parentEntry: FormattedBuilderEntry = { + correspondingKeywordField: undefined, + entryIndex: index, + field: isNewNestedEntry + ? undefined + : { + aggregatable: false, + esTypes: ['nested'], + name: item.field ?? '', + searchable: false, + type: 'string', + }, + id: item.id ?? `${index}`, + nested: 'parent', + operator: isOperator, + parent: undefined, + value: undefined, + }; + + // User has selected to add a nested field, but not yet selected the field + if (isNewNestedEntry) { + return [...acc, parentEntry]; + } + + if (isEntryNested(item)) { + const nestedItems = getFormattedBuilderEntries(indexPattern, item.entries, item, index); + + return [...acc, parentEntry, ...nestedItems]; + } + + return [...acc]; + } + }, []); +}; diff --git a/x-pack/plugins/lists/public/shared_exports.ts b/x-pack/plugins/lists/public/shared_exports.ts index e2af409efa538..d35fe5bb06c0c 100644 --- a/x-pack/plugins/lists/public/shared_exports.ts +++ b/x-pack/plugins/lists/public/shared_exports.ts @@ -39,3 +39,6 @@ export { UseExceptionListsSuccess, } from './exceptions/types'; export { BuilderEntryItem } from './exceptions/components/builder/entry_renderer'; +export { BuilderAndBadgeComponent } from './exceptions/components/builder/and_badge'; +export { BuilderEntryDeleteButtonComponent } from './exceptions/components/builder/entry_delete_button'; +export { BuilderExceptionListItemComponent } from './exceptions/components/builder/exception_item_renderer'; diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/add_exception_modal/index.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/add_exception_modal/index.tsx index b0ffcb8c5b5b8..7e9e7c40258da 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/add_exception_modal/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/add_exception_modal/index.tsx @@ -115,7 +115,7 @@ export const AddExceptionModal = memo(function AddExceptionModal({ onRuleChange, alertStatus, }: AddExceptionModalProps) { - const { http } = useKibana().services; + const { http, data } = useKibana().services; const [errorsExist, setErrorExists] = useState(false); const [comment, setComment] = useState(''); const { rule: maybeRule, loading: isRuleLoading } = useRuleAsync(ruleId); @@ -394,6 +394,8 @@ export const AddExceptionModal = memo(function AddExceptionModal({ {i18n.EXCEPTION_BUILDER_INFO} ({ v4: jest.fn().mockReturnValue('123'), })); -const getEntryNestedWithIdMock = () => ({ - id: '123', - ...getEntryNestedMock(), -}); - -const getEntryExistsWithIdMock = () => ({ - id: '123', - ...getEntryExistsMock(), -}); - -const getEntryMatchWithIdMock = () => ({ - id: '123', - ...getEntryMatchMock(), -}); - -const getEntryMatchAnyWithIdMock = () => ({ - id: '123', - ...getEntryMatchAnyMock(), -}); - const getMockIndexPattern = (): IIndexPattern => ({ id: '1234', title: 'logstash-*', @@ -105,421 +66,4 @@ describe('Exception builder helpers', () => { expect(output).toEqual({ ...getMockIndexPattern(), fields: [...mockEndpointFields] }); }); }); - describe('#getCorrespondingKeywordField', () => { - test('it returns matching keyword field if "selectedFieldIsTextType" is true and keyword field exists', () => { - const output = getCorrespondingKeywordField({ - fields, - selectedField: 'machine.os.raw.text', - }); - - expect(output).toEqual(getField('machine.os.raw')); - }); - - test('it returns undefined if "selectedFieldIsTextType" is false', () => { - const output = getCorrespondingKeywordField({ - fields, - selectedField: 'machine.os.raw', - }); - - expect(output).toEqual(undefined); - }); - - test('it returns undefined if "selectedField" is empty string', () => { - const output = getCorrespondingKeywordField({ - fields, - selectedField: '', - }); - - expect(output).toEqual(undefined); - }); - - test('it returns undefined if "selectedField" is undefined', () => { - const output = getCorrespondingKeywordField({ - fields, - selectedField: undefined, - }); - - expect(output).toEqual(undefined); - }); - }); - - describe('#getFormattedBuilderEntry', () => { - test('it returns entry with a value for "correspondingKeywordField" when "item.field" is of type "text" and matching keyword field exists', () => { - const payloadIndexPattern: IIndexPattern = { - ...getMockIndexPattern(), - fields: [ - ...fields, - { - name: 'machine.os.raw.text', - type: 'string', - esTypes: ['text'], - count: 0, - scripted: false, - searchable: false, - aggregatable: false, - readFromDocValues: true, - }, - ], - }; - const payloadItem: BuilderEntry = { - ...getEntryMatchWithIdMock(), - field: 'machine.os.raw.text', - value: 'some os', - }; - const output = getFormattedBuilderEntry( - payloadIndexPattern, - payloadItem, - 0, - undefined, - undefined - ); - const expected: FormattedBuilderEntry = { - id: '123', - entryIndex: 0, - field: { - name: 'machine.os.raw.text', - type: 'string', - esTypes: ['text'], - count: 0, - scripted: false, - searchable: false, - aggregatable: false, - readFromDocValues: true, - }, - nested: undefined, - operator: isOperator, - parent: undefined, - value: 'some os', - correspondingKeywordField: getField('machine.os.raw'), - }; - expect(output).toEqual(expected); - }); - - test('it returns "FormattedBuilderEntry" with value "nested" of "child" when "parent" and "parentIndex" are defined', () => { - const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - const payloadItem: BuilderEntry = { ...getEntryMatchWithIdMock(), field: 'child' }; - const payloadParent: EntryNested = { - ...getEntryNestedWithIdMock(), - field: 'nestedField', - entries: [{ ...getEntryMatchWithIdMock(), field: 'child' }], - }; - const output = getFormattedBuilderEntry( - payloadIndexPattern, - payloadItem, - 0, - payloadParent, - 1 - ); - const expected: FormattedBuilderEntry = { - id: '123', - entryIndex: 0, - field: { - aggregatable: false, - count: 0, - esTypes: ['text'], - name: 'child', - readFromDocValues: false, - scripted: false, - searchable: true, - subType: { - nested: { - path: 'nestedField', - }, - }, - type: 'string', - }, - nested: 'child', - operator: isOperator, - parent: { - parent: { - id: '123', - entries: [{ ...payloadItem }], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - parentIndex: 1, - }, - value: 'some host name', - correspondingKeywordField: undefined, - }; - expect(output).toEqual(expected); - }); - - test('it returns non nested "FormattedBuilderEntry" when "parent" and "parentIndex" are not defined', () => { - const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - const payloadItem: BuilderEntry = { - ...getEntryMatchWithIdMock(), - field: 'ip', - value: 'some ip', - }; - const output = getFormattedBuilderEntry( - payloadIndexPattern, - payloadItem, - 0, - undefined, - undefined - ); - const expected: FormattedBuilderEntry = { - id: '123', - entryIndex: 0, - field: { - aggregatable: true, - count: 0, - esTypes: ['ip'], - name: 'ip', - readFromDocValues: true, - scripted: false, - searchable: true, - type: 'ip', - }, - nested: undefined, - operator: isOperator, - parent: undefined, - value: 'some ip', - correspondingKeywordField: undefined, - }; - expect(output).toEqual(expected); - }); - }); - - describe('#isEntryNested', () => { - test('it returns "false" if payload is not of type EntryNested', () => { - const payload: BuilderEntry = getEntryMatchWithIdMock(); - const output = isEntryNested(payload); - const expected = false; - expect(output).toEqual(expected); - }); - - test('it returns "true if payload is of type EntryNested', () => { - const payload: EntryNested = getEntryNestedWithIdMock(); - const output = isEntryNested(payload); - const expected = true; - expect(output).toEqual(expected); - }); - }); - - describe('#getFormattedBuilderEntries', () => { - test('it returns formatted entry with field undefined if it unable to find a matching index pattern field', () => { - const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - const payloadItems: BuilderEntry[] = [getEntryMatchWithIdMock()]; - const output = getFormattedBuilderEntries(payloadIndexPattern, payloadItems); - const expected: FormattedBuilderEntry[] = [ - { - id: '123', - entryIndex: 0, - field: undefined, - nested: undefined, - operator: isOperator, - parent: undefined, - value: 'some host name', - correspondingKeywordField: undefined, - }, - ]; - expect(output).toEqual(expected); - }); - - test('it returns formatted entries when no nested entries exist', () => { - const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - const payloadItems: BuilderEntry[] = [ - { ...getEntryMatchWithIdMock(), field: 'ip', value: 'some ip' }, - { ...getEntryMatchAnyWithIdMock(), field: 'extension', value: ['some extension'] }, - ]; - const output = getFormattedBuilderEntries(payloadIndexPattern, payloadItems); - const expected: FormattedBuilderEntry[] = [ - { - id: '123', - entryIndex: 0, - field: { - aggregatable: true, - count: 0, - esTypes: ['ip'], - name: 'ip', - readFromDocValues: true, - scripted: false, - searchable: true, - type: 'ip', - }, - nested: undefined, - operator: isOperator, - parent: undefined, - value: 'some ip', - correspondingKeywordField: undefined, - }, - { - id: '123', - entryIndex: 1, - field: { - aggregatable: true, - count: 0, - esTypes: ['keyword'], - name: 'extension', - readFromDocValues: true, - scripted: false, - searchable: true, - type: 'string', - }, - nested: undefined, - operator: isOneOfOperator, - parent: undefined, - value: ['some extension'], - correspondingKeywordField: undefined, - }, - ]; - expect(output).toEqual(expected); - }); - - test('it returns formatted entries when nested entries exist', () => { - const payloadIndexPattern: IIndexPattern = getMockIndexPattern(); - const payloadParent: EntryNested = { - ...getEntryNestedWithIdMock(), - field: 'nestedField', - entries: [{ ...getEntryMatchWithIdMock(), field: 'child' }], - }; - const payloadItems: BuilderEntry[] = [ - { ...getEntryMatchWithIdMock(), field: 'ip', value: 'some ip' }, - { ...payloadParent }, - ]; - - const output = getFormattedBuilderEntries(payloadIndexPattern, payloadItems); - const expected: FormattedBuilderEntry[] = [ - { - id: '123', - entryIndex: 0, - field: { - aggregatable: true, - count: 0, - esTypes: ['ip'], - name: 'ip', - readFromDocValues: true, - scripted: false, - searchable: true, - type: 'ip', - }, - nested: undefined, - operator: isOperator, - parent: undefined, - value: 'some ip', - correspondingKeywordField: undefined, - }, - { - id: '123', - entryIndex: 1, - field: { - aggregatable: false, - esTypes: ['nested'], - name: 'nestedField', - searchable: false, - type: 'string', - }, - nested: 'parent', - operator: isOperator, - parent: undefined, - value: undefined, - correspondingKeywordField: undefined, - }, - { - id: '123', - entryIndex: 0, - field: { - aggregatable: false, - count: 0, - esTypes: ['text'], - name: 'child', - readFromDocValues: false, - scripted: false, - searchable: true, - subType: { - nested: { - path: 'nestedField', - }, - }, - type: 'string', - }, - nested: 'child', - operator: isOperator, - parent: { - parent: { - id: '123', - entries: [ - { - id: '123', - field: 'child', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH, - value: 'some host name', - }, - ], - field: 'nestedField', - type: OperatorTypeEnum.NESTED, - }, - parentIndex: 1, - }, - value: 'some host name', - correspondingKeywordField: undefined, - }, - ]; - expect(output).toEqual(expected); - }); - }); - - describe('#getUpdatedEntriesOnDelete', () => { - test('it removes entry corresponding to "entryIndex"', () => { - const payloadItem: ExceptionsBuilderExceptionItem = { - ...getExceptionListItemSchemaMock(), - entries: ENTRIES_WITH_IDS, - }; - const output = getUpdatedEntriesOnDelete(payloadItem, 0, null); - const expected: ExceptionsBuilderExceptionItem = { - ...getExceptionListItemSchemaMock(), - entries: [ - { - id: '123', - field: 'some.not.nested.field', - operator: OperatorEnum.INCLUDED, - type: OperatorTypeEnum.MATCH, - value: 'some value', - }, - ], - }; - expect(output).toEqual(expected); - }); - - test('it removes nested entry of "entryIndex" with corresponding parent index', () => { - const payloadItem: ExceptionsBuilderExceptionItem = { - ...getExceptionListItemSchemaMock(), - entries: [ - { - ...getEntryNestedWithIdMock(), - entries: [{ ...getEntryExistsWithIdMock() }, { ...getEntryMatchAnyWithIdMock() }], - }, - ], - }; - const output = getUpdatedEntriesOnDelete(payloadItem, 0, 0); - const expected: ExceptionsBuilderExceptionItem = { - ...getExceptionListItemSchemaMock(), - entries: [ - { ...getEntryNestedWithIdMock(), entries: [{ ...getEntryMatchAnyWithIdMock() }] }, - ], - }; - expect(output).toEqual(expected); - }); - - test('it removes entire nested entry if after deleting specified nested entry, there are no more nested entries left', () => { - const payloadItem: ExceptionsBuilderExceptionItem = { - ...getExceptionListItemSchemaMock(), - entries: [ - { - ...getEntryNestedWithIdMock(), - entries: [{ ...getEntryExistsWithIdMock() }], - }, - ], - }; - const output = getUpdatedEntriesOnDelete(payloadItem, 0, 0); - const expected: ExceptionsBuilderExceptionItem = { - ...getExceptionListItemSchemaMock(), - entries: [], - }; - expect(output).toEqual(expected); - }); - }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/helpers.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/helpers.tsx index 5b49ecbe761a3..0ad9814484a2f 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/helpers.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/helpers.tsx @@ -7,22 +7,9 @@ import uuid from 'uuid'; -import { IIndexPattern, IFieldType } from '../../../../../../../../src/plugins/data/common'; -import { - OperatorTypeEnum, - EntryNested, - ExceptionListType, - OperatorEnum, -} from '../../../../lists_plugin_deps'; -import { isOperator } from '../../autocomplete/operators'; -import { - FormattedBuilderEntry, - ExceptionsBuilderExceptionItem, - EmptyEntry, - EmptyNestedEntry, - BuilderEntry, -} from '../types'; -import { getEntryValue, getExceptionOperatorSelect } from '../helpers'; +import { IIndexPattern } from '../../../../../../../../src/plugins/data/common'; +import { OperatorTypeEnum, ExceptionListType, OperatorEnum } from '../../../../lists_plugin_deps'; +import { ExceptionsBuilderExceptionItem, EmptyEntry, EmptyNestedEntry } from '../types'; import exceptionableFields from '../exceptionable_fields.json'; export const filterIndexPatterns = ( @@ -37,222 +24,6 @@ export const filterIndexPatterns = ( : patterns; }; -/** - * Fields of type 'text' do not generate autocomplete values, we want - * to find it's corresponding keyword type (if available) which does - * generate autocomplete values - * - * @param fields IFieldType fields - * @param selectedField the field name that was selected - * @param isTextType we only want a corresponding keyword field if - * the selected field is of type 'text' - * - */ -export const getCorrespondingKeywordField = ({ - fields, - selectedField, -}: { - fields: IFieldType[]; - selectedField: string | undefined; -}): IFieldType | undefined => { - const selectedFieldBits = - selectedField != null && selectedField !== '' ? selectedField.split('.') : []; - const selectedFieldIsTextType = selectedFieldBits.slice(-1)[0] === 'text'; - - if (selectedFieldIsTextType && selectedFieldBits.length > 0) { - const keywordField = selectedFieldBits.slice(0, selectedFieldBits.length - 1).join('.'); - const [foundKeywordField] = fields.filter( - ({ name }) => keywordField !== '' && keywordField === name - ); - return foundKeywordField; - } - - return undefined; -}; - -/** - * Formats the entry into one that is easily usable for the UI, most of the - * complexity was introduced with nested fields - * - * @param patterns IIndexPattern containing available fields on rule index - * @param item exception item entry - * @param itemIndex entry index - * @param parent nested entries hold copy of their parent for use in various logic - * @param parentIndex corresponds to the entry index, this might seem obvious, but - * was added to ensure that nested items could be identified with their parent entry - */ -export const getFormattedBuilderEntry = ( - indexPattern: IIndexPattern, - item: BuilderEntry, - itemIndex: number, - parent: EntryNested | undefined, - parentIndex: number | undefined -): FormattedBuilderEntry => { - const { fields } = indexPattern; - const field = parent != null ? `${parent.field}.${item.field}` : item.field; - const [foundField] = fields.filter(({ name }) => field != null && field === name); - const correspondingKeywordField = getCorrespondingKeywordField({ - fields, - selectedField: field, - }); - - if (parent != null && parentIndex != null) { - return { - field: - foundField != null - ? { ...foundField, name: foundField.name.split('.').slice(-1)[0] } - : foundField, - correspondingKeywordField, - id: item.id ?? `${itemIndex}`, - operator: getExceptionOperatorSelect(item), - value: getEntryValue(item), - nested: 'child', - parent: { parent, parentIndex }, - entryIndex: itemIndex, - }; - } else { - return { - field: foundField, - id: item.id ?? `${itemIndex}`, - correspondingKeywordField, - operator: getExceptionOperatorSelect(item), - value: getEntryValue(item), - nested: undefined, - parent: undefined, - entryIndex: itemIndex, - }; - } -}; - -export const isEntryNested = (item: BuilderEntry): item is EntryNested => { - return (item as EntryNested).entries != null; -}; - -/** - * Formats the entries to be easily usable for the UI, most of the - * complexity was introduced with nested fields - * - * @param patterns IIndexPattern containing available fields on rule index - * @param entries exception item entries - * @param addNested boolean noting whether or not UI is currently - * set to add a nested field - * @param parent nested entries hold copy of their parent for use in various logic - * @param parentIndex corresponds to the entry index, this might seem obvious, but - * was added to ensure that nested items could be identified with their parent entry - */ -export const getFormattedBuilderEntries = ( - indexPattern: IIndexPattern, - entries: BuilderEntry[], - parent?: EntryNested, - parentIndex?: number -): FormattedBuilderEntry[] => { - return entries.reduce((acc, item, index) => { - const isNewNestedEntry = item.type === 'nested' && item.entries.length === 0; - if (item.type !== 'nested' && !isNewNestedEntry) { - const newItemEntry: FormattedBuilderEntry = getFormattedBuilderEntry( - indexPattern, - item, - index, - parent, - parentIndex - ); - return [...acc, newItemEntry]; - } else { - const parentEntry: FormattedBuilderEntry = { - operator: isOperator, - id: item.id ?? `${index}`, - nested: 'parent', - field: isNewNestedEntry - ? undefined - : { - name: item.field ?? '', - aggregatable: false, - searchable: false, - type: 'string', - esTypes: ['nested'], - }, - value: undefined, - entryIndex: index, - parent: undefined, - correspondingKeywordField: undefined, - }; - - // User has selected to add a nested field, but not yet selected the field - if (isNewNestedEntry) { - return [...acc, parentEntry]; - } - - if (isEntryNested(item)) { - const nestedItems = getFormattedBuilderEntries(indexPattern, item.entries, item, index); - - return [...acc, parentEntry, ...nestedItems]; - } - - return [...acc]; - } - }, []); -}; - -/** - * Determines whether an entire entry, exception item, or entry within a nested - * entry needs to be removed - * - * @param exceptionItem - * @param entryIndex index of given entry, for nested entries, this will correspond - * to their parent index - * @param nestedEntryIndex index of nested entry - * - */ -export const getUpdatedEntriesOnDelete = ( - exceptionItem: ExceptionsBuilderExceptionItem, - entryIndex: number, - nestedParentIndex: number | null -): ExceptionsBuilderExceptionItem => { - const itemOfInterest: BuilderEntry = exceptionItem.entries[nestedParentIndex ?? entryIndex]; - - if (nestedParentIndex != null && itemOfInterest.type === OperatorTypeEnum.NESTED) { - const updatedEntryEntries = [ - ...itemOfInterest.entries.slice(0, entryIndex), - ...itemOfInterest.entries.slice(entryIndex + 1), - ]; - - if (updatedEntryEntries.length === 0) { - return { - ...exceptionItem, - entries: [ - ...exceptionItem.entries.slice(0, nestedParentIndex), - ...exceptionItem.entries.slice(nestedParentIndex + 1), - ], - }; - } else { - const { field } = itemOfInterest; - const updatedItemOfInterest: EntryNested | EmptyNestedEntry = { - field, - id: itemOfInterest.id ?? `${entryIndex}`, - type: OperatorTypeEnum.NESTED, - entries: updatedEntryEntries, - }; - - return { - ...exceptionItem, - entries: [ - ...exceptionItem.entries.slice(0, nestedParentIndex), - updatedItemOfInterest, - ...exceptionItem.entries.slice(nestedParentIndex + 1), - ], - }; - } - } else { - return { - ...exceptionItem, - entries: [ - ...exceptionItem.entries.slice(0, entryIndex), - ...exceptionItem.entries.slice(entryIndex + 1), - ], - }; - } -}; - export const getDefaultEmptyEntry = (): EmptyEntry => ({ id: uuid.v4(), field: '', diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/index.test.tsx index 4d0e3306e3315..2863b92ca68ab 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/builder/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/builder/index.test.tsx @@ -17,37 +17,26 @@ import { import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; import { getEntryMatchAnyMock } from '../../../../../../lists/common/schemas/types/entry_match_any.mock'; -import { useKibana } from '../../../../common/lib/kibana'; import { getEmptyValue } from '../../empty_value'; import { ExceptionBuilderComponent } from './'; import { getMockTheme } from '../../../lib/kibana/kibana_react.mock'; +import { coreMock } from 'src/core/public/mocks'; +import { dataPluginMock } from 'src/plugins/data/public/mocks'; const mockTheme = getMockTheme({ eui: { euiColorLightShade: '#ece', }, }); - -jest.mock('../../../../common/lib/kibana'); +const mockKibanaHttpService = coreMock.createStart().http; +const { autocomplete: autocompleteStartMock } = dataPluginMock.createStartContract(); describe('ExceptionBuilderComponent', () => { let wrapper: ReactWrapper; const getValueSuggestionsMock = jest.fn().mockResolvedValue(['value 1', 'value 2']); - beforeEach(() => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - data: { - autocomplete: { - getValueSuggestions: getValueSuggestionsMock, - }, - }, - }, - }); - }); - afterEach(() => { getValueSuggestionsMock.mockClear(); jest.clearAllMocks(); @@ -58,6 +47,8 @@ describe('ExceptionBuilderComponent', () => { wrapper = mount( { wrapper = mount( { wrapper = mount( { wrapper = mount( { wrapper = mount( { wrapper = mount( { wrapper = mount( { wrapper = mount( { wrapper = mount( diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/edit_exception_modal/index.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/edit_exception_modal/index.tsx index 954a75fc370bd..e33478ad99660 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/edit_exception_modal/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/edit_exception_modal/index.tsx @@ -98,7 +98,7 @@ export const EditExceptionModal = memo(function EditExceptionModal({ onConfirm, onRuleChange, }: EditExceptionModalProps) { - const { http } = useKibana().services; + const { http, data } = useKibana().services; const [comment, setComment] = useState(''); const [errorsExist, setErrorExists] = useState(false); const { rule: maybeRule, loading: isRuleLoading } = useRuleAsync(ruleId); @@ -313,6 +313,8 @@ export const EditExceptionModal = memo(function EditExceptionModal({ {i18n.EXCEPTION_BUILDER_INFO}

    + +
    `; -exports[`DragDrop items that has dropType=undefined get special styling when another item is dragged 1`] = ` - + + `; exports[`DragDrop renders if nothing is being dragged 1`] = ` diff --git a/x-pack/plugins/lens/public/drag_drop/drag_drop.scss b/x-pack/plugins/lens/public/drag_drop/drag_drop.scss index 961f7ee0ec400..57ebe79af2219 100644 --- a/x-pack/plugins/lens/public/drag_drop/drag_drop.scss +++ b/x-pack/plugins/lens/public/drag_drop/drag_drop.scss @@ -3,7 +3,9 @@ .lnsDragDrop { user-select: none; - transition: background-color $euiAnimSpeedFast ease-in-out, border-color $euiAnimSpeedFast ease-in-out; + transition: $euiAnimSpeedFast ease-in-out; + transition-property: background-color, border-color, opacity; + z-index: $euiZLevel1; } .lnsDragDrop_ghost { @@ -16,7 +18,7 @@ left: 0; opacity: .9; transform: translate(-12px, 8px); - z-index: $euiZLevel2; + z-index: $euiZLevel3; pointer-events: none; box-shadow: 0 0 0 $euiFocusRingSize $euiFocusRingColor; } @@ -56,6 +58,7 @@ // Drop area while hovering with item .lnsDragDrop-isActiveDropTarget { + z-index: $euiZLevel3; @include lnsDroppableActiveHover; } @@ -81,6 +84,16 @@ } } +.lnsDragDrop__container { + position: relative; + width: 100%; + height: 100%; + + &.lnsDragDrop__container-active { + z-index: $euiZLevel3; + } +} + .lnsDragDrop__reorderableDrop { position: absolute; width: 100%; @@ -92,6 +105,14 @@ transform: translateY(0); transition: transform $euiAnimSpeedFast ease-in-out; pointer-events: none; + + .lnsDragDrop-isDropTarget { + @include lnsDraggable; + } + + .lnsDragDrop-isActiveDropTarget { + z-index: $euiZLevel3; + } } .lnsDragDrop-translatableDrag { @@ -118,10 +139,6 @@ // Draggable item when it is moving .lnsDragDrop-isHidden { opacity: 0; -} - -.lnsDragDrop-isHidden-noFocus { - opacity: 0; .lnsDragDrop__keyboardHandler { &:focus, &:focus-within { @@ -129,3 +146,60 @@ } } } + +.lnsDragDrop__extraDrops { + opacity: 0; + visibility: hidden; + position: absolute; + z-index: $euiZLevel2; + right: calc(100% + #{$euiSizeS}); + top: 0; + transition: opacity $euiAnimSpeedFast ease-in-out; + width:100%; +} + +.lnsDragDrop__extraDrops-visible { + opacity: 1; + visibility: visible; +} + +.lnsDragDrop__diamondPath { + position: absolute; + width: 30%; + top: 0; + left: -$euiSize; + z-index: $euiZLevel0; +} + +.lnsDragDrop__extraDropWrapper { + position: relative; + width: 100%; + height: 100%; + background: $euiColorLightestShade; + padding: $euiSizeXS; + border-radius: 0; + &:first-child, &:first-child .lnsDragDrop__extraDrop { + border-top-left-radius: $euiSizeXS; + border-top-right-radius: $euiSizeXS; + } + &:last-child, &:last-child .lnsDragDrop__extraDrop { + border-bottom-left-radius: $euiSizeXS; + border-bottom-right-radius: $euiSizeXS; + } +} + +// collapse borders +.lnsDragDrop__extraDropWrapper + .lnsDragDrop__extraDropWrapper { + margin-top: -1px; +} + +.lnsDragDrop__extraDrop { + position: relative; + height: $euiSizeXS * 10; + min-width: $euiSize * 7; + color: $euiColorSuccessText; + padding: $euiSizeXS; + &.lnsDragDrop-incompatibleExtraDrop { + color: $euiColorWarningText; + } +} \ No newline at end of file diff --git a/x-pack/plugins/lens/public/drag_drop/drag_drop.test.tsx b/x-pack/plugins/lens/public/drag_drop/drag_drop.test.tsx index dd1e351b824fe..e582c4318afc3 100644 --- a/x-pack/plugins/lens/public/drag_drop/drag_drop.test.tsx +++ b/x-pack/plugins/lens/public/drag_drop/drag_drop.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { render, mount } from 'enzyme'; +import { render, mount, ReactWrapper } from 'enzyme'; import { DragDrop } from './drag_drop'; import { ChildDragDropProvider, @@ -39,7 +39,11 @@ describe('DragDrop', () => { registerDropTarget: jest.fn(), }; - const value = { id: '1', humanData: { label: 'hello' } }; + const value = { + id: '1', + humanData: { label: 'hello', groupLabel: 'X', position: 1, canSwap: true, canDuplicate: true }, + }; + test('renders if nothing is being dragged', () => { const component = render( @@ -53,17 +57,17 @@ describe('DragDrop', () => { test('dragover calls preventDefault if dropType is defined', () => { const preventDefault = jest.fn(); const component = mount( - + ); - component.find('[data-test-subj="lnsDragDrop"]').simulate('dragover', { preventDefault }); + component.find('[data-test-subj="lnsDragDrop"]').at(0).simulate('dragover', { preventDefault }); expect(preventDefault).toBeCalled(); }); - test('dragover does not call preventDefault if dropType is undefined', () => { + test('dragover does not call preventDefault if dropTypes is undefined', () => { const preventDefault = jest.fn(); const component = mount( @@ -71,7 +75,7 @@ describe('DragDrop', () => { ); - component.find('[data-test-subj="lnsDragDrop"]').simulate('dragover', { preventDefault }); + component.find('[data-test-subj="lnsDragDrop"]').at(0).simulate('dragover', { preventDefault }); expect(preventDefault).not.toBeCalled(); }); @@ -85,7 +89,7 @@ describe('DragDrop', () => { ); - component.find('[data-test-subj="lnsDragDrop"]').simulate('mousedown'); + component.find('[data-test-subj="lnsDragDrop"]').at(0).simulate('mousedown'); expect(global.getSelection).toBeCalled(); expect(removeAllRanges).toBeCalled(); }); @@ -107,9 +111,11 @@ describe('DragDrop', () => { ); - component.find('[data-test-subj="lnsDragDrop"]').simulate('dragstart', { dataTransfer }); + component.find('[data-test-subj="lnsDragDrop"]').at(0).simulate('dragstart', { dataTransfer }); - jest.runAllTimers(); + act(() => { + jest.runAllTimers(); + }); expect(dataTransfer.setData).toBeCalledWith('text', 'hello'); expect(setDragging).toBeCalledWith({ ...value }); @@ -128,15 +134,15 @@ describe('DragDrop', () => { dragging={{ id: '2', humanData: { label: 'Label1' } }} setDragging={setDragging} > - + ); - component - .find('[data-test-subj="lnsDragDrop"]') - .simulate('drop', { preventDefault, stopPropagation }); + const dragDrop = component.find('[data-test-subj="lnsDragDrop"]').at(0); + dragDrop.simulate('dragOver'); + dragDrop.simulate('drop', { preventDefault, stopPropagation }); expect(preventDefault).toBeCalled(); expect(stopPropagation).toBeCalled(); @@ -144,7 +150,7 @@ describe('DragDrop', () => { expect(onDrop).toBeCalledWith({ id: '2', humanData: { label: 'Label1' } }, 'field_add'); }); - test('drop function is not called on dropType undefined', async () => { + test('drop function is not called on dropTypes undefined', async () => { const preventDefault = jest.fn(); const stopPropagation = jest.fn(); const setDragging = jest.fn(); @@ -156,29 +162,29 @@ describe('DragDrop', () => { dragging={{ id: 'hi', humanData: { label: 'Label1' } }} setDragging={setDragging} > - + ); - component - .find('[data-test-subj="lnsDragDrop"]') - .simulate('drop', { preventDefault, stopPropagation }); + const dragDrop = component.find('[data-test-subj="lnsDragDrop"]').at(0); + dragDrop.simulate('dragover'); + dragDrop.simulate('drop', { preventDefault, stopPropagation }); - expect(preventDefault).toBeCalled(); - expect(stopPropagation).toBeCalled(); - expect(setDragging).toBeCalledWith(undefined); + expect(preventDefault).not.toHaveBeenCalled(); + expect(stopPropagation).not.toHaveBeenCalled(); + expect(setDragging).not.toHaveBeenCalled(); expect(onDrop).not.toHaveBeenCalled(); }); - test('defined dropType is reflected in the className', () => { + test('defined dropTypes is reflected in the className', () => { const component = render( { throw x; }} - dropType="field_add" + dropTypes={['field_add']} value={value} order={[2, 0, 1, 0]} > @@ -189,7 +195,7 @@ describe('DragDrop', () => { expect(component).toMatchSnapshot(); }); - test('items that has dropType=undefined get special styling when another item is dragged', () => { + test('items that has dropTypes=undefined get special styling when another item is dragged', () => { const component = mount( @@ -198,7 +204,7 @@ describe('DragDrop', () => { {}} - dropType={undefined} + dropTypes={undefined} value={{ id: '2', humanData: { label: 'label2' } }} > @@ -235,7 +241,7 @@ describe('DragDrop', () => { order={[2, 0, 1, 0]} value={value} onDrop={(x: unknown) => {}} - dropType="field_add" + dropTypes={['field_add']} getAdditionalClassesOnEnter={getAdditionalClassesOnEnter} getAdditionalClassesOnDroppable={getAdditionalClassesOnDroppable} > @@ -248,11 +254,14 @@ describe('DragDrop', () => { .find('[data-test-subj="lnsDragDrop"]') .first() .simulate('dragstart', { dataTransfer }); - jest.runAllTimers(); + act(() => { + jest.runAllTimers(); + }); expect(setA11yMessage).toBeCalledWith('Lifted ignored'); - component.find('[data-test-subj="lnsDragDrop"]').at(1).simulate('dragover'); - component.find('[data-test-subj="lnsDragDrop"]').at(1).simulate('drop'); + const dragDrop = component.find('[data-test-subj="lnsDragDrop"]').at(1); + dragDrop.simulate('dragOver'); + dragDrop.simulate('drop'); expect(component.find('.additional')).toHaveLength(0); }); @@ -287,7 +296,7 @@ describe('DragDrop', () => { order={[2, 0, 1, 0]} value={value} onDrop={(x: unknown) => {}} - dropType="field_add" + dropTypes={['field_add']} getAdditionalClassesOnEnter={getAdditionalClasses} getAdditionalClassesOnDroppable={getAdditionalClassesOnDroppable} > @@ -300,219 +309,652 @@ describe('DragDrop', () => { .find('[data-test-subj="lnsDragDrop"]') .first() .simulate('dragstart', { dataTransfer }); - jest.runAllTimers(); + act(() => { + jest.runAllTimers(); + }); component.find('[data-test-subj="lnsDragDrop"]').at(1).simulate('dragover'); - expect(component.find('.additional')).toHaveLength(1); + expect(component.find('.additional')).toHaveLength(2); component.find('[data-test-subj="lnsDragDrop"]').at(1).simulate('dragleave'); expect(setActiveDropTarget).toBeCalledWith(undefined); }); - test('Keyboard navigation: User receives proper drop Targets highlighted when pressing arrow keys', () => { - const onDrop = jest.fn(); - const setActiveDropTarget = jest.fn(); - const setA11yMessage = jest.fn(); - const items = [ - { - draggable: true, - value: { - id: '1', - humanData: { label: 'Label1', position: 1 }, + describe('Keyboard navigation', () => { + test('User receives proper drop Targets highlighted when pressing arrow keys', () => { + const onDrop = jest.fn(); + const setActiveDropTarget = jest.fn(); + const setA11yMessage = jest.fn(); + const items = [ + { + draggable: true, + value: { + id: '1', + humanData: { label: 'Label1', position: 1 }, + }, + children: '1', + order: [2, 0, 0, 0], }, - children: '1', - order: [2, 0, 0, 0], - }, - { - draggable: true, - dragType: 'move' as 'copy' | 'move', + { + draggable: true, + dragType: 'move' as 'copy' | 'move', - value: { - id: '2', + value: { + id: '2', - humanData: { label: 'label2', position: 1 }, - }, - onDrop, - dropType: 'move_compatible' as DropType, - order: [2, 0, 1, 0], - }, - { - draggable: true, - dragType: 'move' as 'copy' | 'move', - value: { - id: '3', - humanData: { label: 'label3', position: 1, groupLabel: 'Y' }, + humanData: { label: 'label2', position: 1 }, + }, + onDrop, + dropTypes: ['move_compatible'] as DropType[], + order: [2, 0, 1, 0], }, - onDrop, - dropType: 'replace_compatible' as DropType, - order: [2, 0, 2, 0], - }, - { - draggable: true, - dragType: 'move' as 'copy' | 'move', - value: { - id: '4', - humanData: { label: 'label4', position: 2, groupLabel: 'Y' }, + { + draggable: true, + dragType: 'move' as 'copy' | 'move', + value: { + id: '3', + humanData: { + label: 'label3', + position: 1, + groupLabel: 'Y', + canSwap: true, + canDuplicate: true, + }, + }, + onDrop, + dropTypes: [ + 'replace_compatible', + 'duplicate_compatible', + 'swap_compatible', + ] as DropType[], + order: [2, 0, 2, 0], }, - order: [2, 0, 2, 1], - }, - ]; - const component = mount( - , style: {} } }, - setActiveDropTarget, - setA11yMessage, - activeDropTarget: { ...items[1].value, onDrop, dropType: 'move_compatible' }, - dropTargetsByOrder: { - '2,0,1,0': { ...items[1].value, onDrop, dropType: 'move_compatible' }, - '2,0,2,0': { ...items[2].value, onDrop, dropType: 'replace_compatible' }, + { + draggable: true, + dragType: 'move' as 'copy' | 'move', + value: { + id: '4', + humanData: { label: 'label4', position: 2, groupLabel: 'Y' }, }, - keyboardMode: true, - }} - > - {items.map((props) => ( - -
    - - ))} - - ); - const keyboardHandler = component - .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') - .first() - .simulate('focus'); - act(() => { + order: [2, 0, 2, 1], + }, + ]; + const component = mount( + , style: {} } }, + setActiveDropTarget, + setA11yMessage, + activeDropTarget: { ...items[1].value, onDrop, dropType: 'move_compatible' }, + dropTargetsByOrder: { + '2,0,1,0': { ...items[1].value, onDrop, dropType: 'move_compatible' }, + '2,0,2,0,0': { ...items[2].value, onDrop, dropType: 'replace_compatible' }, + '2,0,1,0,1': { ...items[1].value, onDrop, dropType: 'duplicate_compatible' }, + '2,0,1,0,2': { ...items[1].value, onDrop, dropType: 'swap_compatible' }, + }, + keyboardMode: true, + }} + > + {items.map((props) => ( + +
    + + ))} + + ); + const keyboardHandler = component + .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first() + .simulate('focus'); + keyboardHandler.simulate('keydown', { key: 'ArrowRight' }); + expect(setActiveDropTarget).toBeCalledWith({ + ...items[2].value, + onDrop, + dropType: items[2].dropTypes![0], + }); + keyboardHandler.simulate('keydown', { key: 'Enter' }); + expect(setA11yMessage).toBeCalledWith( + `You're dragging Label1 from at position 1 over label3 from Y group at position 1. Press space or enter to replace label3 with Label1. Hold alt or option to duplicate. Hold shift to swap.` + ); + expect(setActiveDropTarget).toBeCalledWith(undefined); + expect(onDrop).toBeCalledWith( + { humanData: { label: 'Label1', position: 1 }, id: '1' }, + 'move_compatible' + ); }); - expect(setActiveDropTarget).toBeCalledWith({ - ...items[2].value, - onDrop, - dropType: items[2].dropType, + + test('dragstart sets dragging in the context and calls it with proper params', async () => { + const setDragging = jest.fn(); + + const setA11yMessage = jest.fn(); + const component = mount( + + + + + + ); + + const keyboardHandler = component + .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first() + .simulate('focus'); + + keyboardHandler.simulate('keydown', { key: 'Enter' }); + act(() => { + jest.runAllTimers(); + }); + + expect(setDragging).toBeCalledWith({ + ...value, + ghost: { + children: , + style: { + height: 0, + width: 0, + }, + }, + }); + expect(setA11yMessage).toBeCalledWith('Lifted hello'); }); - keyboardHandler.simulate('keydown', { key: 'Enter' }); - expect(setA11yMessage).toBeCalledWith( - 'Replace label3 in Y group at position 1 with Label1. Press space or enter to replace' - ); - expect(setActiveDropTarget).toBeCalledWith(undefined); - expect(onDrop).toBeCalledWith( - { humanData: { label: 'Label1', position: 1 }, id: '1' }, - 'move_compatible' - ); - }); - test('Keyboard navigation: dragstart sets dragging in the context and calls it with proper params', async () => { - const setDragging = jest.fn(); + test('ActiveDropTarget gets ghost image', () => { + const onDrop = jest.fn(); + const setActiveDropTarget = jest.fn(); + const setA11yMessage = jest.fn(); + const items = [ + { + draggable: true, + value: { + id: '1', + humanData: { label: 'Label1', position: 1 }, + }, + children: '1', + order: [2, 0, 0, 0], + }, + { + draggable: true, + dragType: 'move' as 'copy' | 'move', - const setA11yMessage = jest.fn(); - const component = mount( - - - - - - ); + value: { + id: '2', - const keyboardHandler = component - .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') - .first() - .simulate('focus'); - - keyboardHandler.simulate('keydown', { key: 'Enter' }); - jest.runAllTimers(); - - expect(setDragging).toBeCalledWith({ - ...value, - ghost: { - children: , - style: { - height: 0, - width: 0, + humanData: { label: 'label2', position: 1 }, + }, + onDrop, + dropTypes: ['move_compatible'] as DropType[], + order: [2, 0, 1, 0], }, - }, + ]; + const component = mount( + Hello
    , style: {} } }, + setActiveDropTarget, + setA11yMessage, + activeDropTarget: { ...items[1].value, onDrop, dropType: 'move_compatible' }, + dropTargetsByOrder: { + '2,0,1,0': { ...items[1].value, onDrop, dropType: 'move_compatible' }, + }, + keyboardMode: true, + }} + > + {items.map((props) => ( + +
    + + ))} + + ); + + expect(component.find(DragDrop).at(1).find('.lnsDragDrop_ghost').text()).toEqual('Hello'); }); - expect(setA11yMessage).toBeCalledWith('Lifted hello'); }); - test('Keyboard navigation: ActiveDropTarget gets ghost image', () => { + describe('multiple drop targets', () => { + let activeDropTarget: DragContextState['activeDropTarget']; const onDrop = jest.fn(); - const setActiveDropTarget = jest.fn(); + let setActiveDropTarget = jest.fn(); const setA11yMessage = jest.fn(); - const items = [ - { - draggable: true, - value: { - id: '1', - humanData: { label: 'Label1', position: 1 }, - }, - children: '1', - order: [2, 0, 0, 0], - }, - { - draggable: true, - dragType: 'move' as 'copy' | 'move', + let component: ReactWrapper; + beforeEach(() => { + activeDropTarget = undefined; + setActiveDropTarget = jest.fn((val) => { + activeDropTarget = value as DragContextState['activeDropTarget']; + }); + component = mount( + true} + dropTargetsByOrder={undefined} + registerDropTarget={jest.fn()} + > + + + +
    {dropType}
    } + > + +
    +
    + ); + }); + test('extra drop targets render correctly', () => { + expect(component.find('.extraDrop').hostNodes()).toHaveLength(2); + }); - value: { - id: '2', + test('extra drop targets appear when dragging over and disappear when activeDropTarget changes', () => { + component.find('[data-test-subj="lnsDragDropContainer"]').first().simulate('dragenter'); - humanData: { label: 'label2', position: 1 }, - }, + // customDropTargets are visible + expect(component.find('[data-test-subj="lnsDragDropContainer"]').prop('className')).toEqual( + 'lnsDragDrop__container lnsDragDrop__container-active' + ); + expect( + component.find('[data-test-subj="lnsDragDropExtraDrops"]').first().prop('className') + ).toEqual('lnsDragDrop__extraDrops lnsDragDrop__extraDrops-visible'); + + // set activeDropTarget as undefined + component.find('[data-test-subj="lnsDragDrop"]').at(1).simulate('dragleave'); + act(() => { + jest.runAllTimers(); + }); + component.update(); + + // customDropTargets are invisible + expect( + component.find('[data-test-subj="lnsDragDropExtraDrops"]').first().prop('className') + ).toEqual('lnsDragDrop__extraDrops'); + }); + + test('dragging over different drop types of the same value assigns correct activeDropTarget', () => { + component + .find('[data-test-subj="lnsDragDrop"]') + .first() + .simulate('dragstart', { dataTransfer }); + + component.find('SingleDropInner').at(0).simulate('dragover'); + + expect(setActiveDropTarget).toBeCalledWith({ + ...value, + dropType: 'move_compatible', onDrop, - dropType: 'move_compatible' as DropType, - order: [2, 0, 1, 0], - }, - ]; - const component = mount( - Hello
    , style: {} } }, - setActiveDropTarget, - setA11yMessage, - activeDropTarget: { ...items[1].value, onDrop, dropType: 'move_compatible' }, - dropTargetsByOrder: { - '2,0,1,0': { ...items[1].value, onDrop, dropType: 'move_compatible' }, + }); + + component.find('SingleDropInner').at(1).simulate('dragover'); + + expect(setActiveDropTarget).toBeCalledWith({ + ...value, + dropType: 'duplicate_compatible', + onDrop, + }); + + component.find('SingleDropInner').at(2).simulate('dragover'); + expect(setActiveDropTarget).toBeCalledWith({ + ...value, + dropType: 'swap_compatible', + onDrop, + }); + component.find('SingleDropInner').at(2).simulate('dragleave'); + expect(setActiveDropTarget).toBeCalledWith(undefined); + }); + + test('drop on extra drop target passes correct dropType to onDrop', () => { + component + .find('[data-test-subj="lnsDragDrop"]') + .first() + .simulate('dragstart', { dataTransfer }); + + component.find('SingleDropInner').at(0).simulate('dragover'); + component.find('SingleDropInner').at(0).simulate('drop'); + expect(onDrop).toBeCalledWith({ humanData: { label: 'Label1' }, id: '1' }, 'move_compatible'); + + component.find('SingleDropInner').at(1).simulate('dragover'); + component.find('SingleDropInner').at(1).simulate('drop'); + expect(onDrop).toBeCalledWith( + { humanData: { label: 'Label1' }, id: '1' }, + 'duplicate_compatible' + ); + + component.find('SingleDropInner').at(2).simulate('dragover'); + component.find('SingleDropInner').at(2).simulate('drop'); + expect(onDrop).toBeCalledWith({ humanData: { label: 'Label1' }, id: '1' }, 'swap_compatible'); + }); + + test('pressing Alt or Shift when dragging over the main drop target sets extra drop target as active', () => { + component + .find('[data-test-subj="lnsDragDrop"]') + .first() + .simulate('dragstart', { dataTransfer }); + + // needed to setup activeDropType + component + .find('SingleDropInner') + .at(0) + .simulate('dragover', { altKey: true }) + .simulate('dragover', { altKey: true }); + expect(setActiveDropTarget).toBeCalledWith({ + ...value, + dropType: 'duplicate_compatible', + onDrop, + }); + + component + .find('SingleDropInner') + .at(0) + .simulate('dragover', { shiftKey: true }) + .simulate('dragover', { shiftKey: true }); + expect(setActiveDropTarget).toBeCalledWith({ + ...value, + dropType: 'swap_compatible', + onDrop, + }); + }); + + test('pressing Alt or Shift when dragging over the extra drop target does nothing', () => { + component + .find('[data-test-subj="lnsDragDrop"]') + .first() + .simulate('dragstart', { dataTransfer }); + + const extraDrop = component.find('SingleDropInner').at(1); + extraDrop.simulate('dragover', { altKey: true }); + extraDrop.simulate('dragover', { shiftKey: true }); + extraDrop.simulate('dragover'); + expect( + setActiveDropTarget.mock.calls.every((call) => call[0].dropType === 'duplicate_compatible') + ); + }); + describe('keyboard navigation', () => { + const items = [ + { + draggable: true, + value: { + id: '1', + humanData: { label: 'Label1', position: 1 }, }, - keyboardMode: true, - }} - > - {items.map((props) => ( - -
    - - ))} - - ); + children: '1', + order: [2, 0, 0, 0], + }, + { + draggable: true, + dragType: 'move' as const, - expect(component.find(DragDrop).at(1).find('.lnsDragDrop_ghost').text()).toEqual('Hello'); + value: { + id: '2', + + humanData: { label: 'label2', position: 1 }, + }, + onDrop, + dropTypes: ['move_compatible', 'duplicate_compatible', 'swap_compatible'] as DropType[], + order: [2, 0, 1, 0], + }, + { + draggable: true, + dragType: 'move' as const, + value: { + id: '3', + humanData: { label: 'label3', position: 1, groupLabel: 'Y' }, + }, + onDrop, + dropTypes: ['replace_compatible'] as DropType[], + order: [2, 0, 2, 0], + }, + ]; + const assignedDropTargetsByOrder: DragContextState['dropTargetsByOrder'] = { + '2,0,1,0,0': { + ...items[1].value, + onDrop, + dropType: 'move_compatible', + }, + '2,0,1,0,1': { + dropType: 'duplicate_compatible', + humanData: { + label: 'label2', + position: 1, + }, + id: '2', + onDrop, + }, + '2,0,1,0,2': { + dropType: 'swap_compatible', + humanData: { + label: 'label2', + position: 1, + }, + id: '2', + onDrop, + }, + '2,0,2,0,0': { + dropType: 'replace_compatible', + humanData: { + groupLabel: 'Y', + label: 'label3', + position: 1, + }, + id: '3', + onDrop, + }, + }; + test('when pressing enter key, context receives the proper dropTargetsByOrder', () => { + let dropTargetsByOrder: DragContextState['dropTargetsByOrder'] = {}; + const setKeyboardMode = jest.fn(); + component = mount( + , style: {} } }, + setDragging: jest.fn(), + setActiveDropTarget, + setA11yMessage, + activeDropTarget, + dropTargetsByOrder, + keyboardMode: true, + setKeyboardMode, + registerDropTarget: jest.fn((order, dropTarget) => { + dropTargetsByOrder = { + ...dropTargetsByOrder, + [order.join(',')]: dropTarget, + }; + }), + }} + > + {items.map((props) => ( + +
    + + ))} + + ); + component.find('[data-test-subj="lnsDragDrop-keyboardHandler"]').first().simulate('focus'); + act(() => { + jest.runAllTimers(); + }); + component.update(); + expect(dropTargetsByOrder).toEqual(assignedDropTargetsByOrder); + }); + test('when pressing ArrowRight key with modifier key pressed in, the extra drop target is selected', () => { + component = mount( + , style: {} } }, + setDragging: jest.fn(), + setActiveDropTarget, + setA11yMessage, + activeDropTarget: undefined, + dropTargetsByOrder: assignedDropTargetsByOrder, + keyboardMode: true, + setKeyboardMode: jest.fn(), + registerDropTarget: jest.fn(), + }} + > + {items.map((props) => ( + +
    + + ))} + + ); + act(() => { + component + .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first() + .simulate('keydown', { key: 'ArrowRight', altKey: true }); + }); + expect(setActiveDropTarget).toBeCalledWith({ + ...items[1].value, + onDrop, + dropType: 'duplicate_compatible', + }); + act(() => { + component + .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first() + .simulate('keydown', { key: 'ArrowRight', shiftKey: true }); + }); + expect(setActiveDropTarget).toBeCalledWith({ + ...items[1].value, + onDrop, + dropType: 'swap_compatible', + }); + }); + test('when having a main target selected and pressing alt, the first extra drop target is selected', () => { + component = mount( + , style: {} } }, + setDragging: jest.fn(), + setActiveDropTarget, + setA11yMessage, + activeDropTarget: assignedDropTargetsByOrder['2,0,1,0,0'], + dropTargetsByOrder: assignedDropTargetsByOrder, + keyboardMode: true, + setKeyboardMode: jest.fn(), + registerDropTarget: jest.fn(), + }} + > + {items.map((props) => ( + +
    + + ))} + + ); + act(() => { + component + .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first() + .simulate('keydown', { key: 'Alt' }); + }); + expect(setActiveDropTarget).toBeCalledWith({ + ...items[1].value, + onDrop, + dropType: 'duplicate_compatible', + }); + act(() => { + component + .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first() + .simulate('keyup', { key: 'Alt' }); + }); + expect(setActiveDropTarget).toBeCalledWith({ + ...items[1].value, + onDrop, + dropType: 'move_compatible', + }); + }); + test('when having a main target selected and pressing shift, the second extra drop target is selected', () => { + component = mount( + , style: {} } }, + setDragging: jest.fn(), + setActiveDropTarget, + setA11yMessage, + activeDropTarget: assignedDropTargetsByOrder['2,0,1,0,0'], + dropTargetsByOrder: assignedDropTargetsByOrder, + keyboardMode: true, + setKeyboardMode: jest.fn(), + registerDropTarget: jest.fn(), + }} + > + {items.map((props) => ( + +
    + + ))} + + ); + act(() => { + component + .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first() + .simulate('keydown', { key: 'Shift' }); + }); + + expect(setActiveDropTarget).toBeCalledWith({ + ...items[1].value, + onDrop, + dropType: 'swap_compatible', + }); + act(() => { + component + .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first() + .simulate('keyup', { key: 'Shift' }); + }); + expect(setActiveDropTarget).toBeCalledWith({ + ...items[1].value, + onDrop, + dropType: 'move_compatible', + }); + }); + }); }); - describe('reordering', () => { + describe('Reordering', () => { const onDrop = jest.fn(); const items = [ { id: '1', humanData: { label: 'Label1', position: 1, groupLabel: 'X' }, onDrop, - dropType: 'reorder' as DropType, + draggable: true, }, { id: '2', humanData: { label: 'label2', position: 2, groupLabel: 'X' }, onDrop, - dropType: 'reorder' as DropType, }, { id: '3', humanData: { label: 'label3', position: 3, groupLabel: 'X' }, onDrop, - dropType: 'reorder' as DropType, }, ]; const mountComponent = ( @@ -546,7 +988,6 @@ describe('DragDrop', () => { const dragDropSharedProps = { draggable: true, dragType: 'move' as 'copy' | 'move', - dropType: 'reorder' as DropType, reorderableGroup: items.map(({ id }) => ({ id })), onDrop: onDropHandler || onDrop, }; @@ -557,15 +998,25 @@ describe('DragDrop', () => { 1 - + 2 - + 3 @@ -574,7 +1025,10 @@ describe('DragDrop', () => { }; test(`Inactive group renders properly`, () => { const component = mountComponent(undefined); - expect(component.find('[data-test-subj="lnsDragDrop"]')).toHaveLength(3); + act(() => { + jest.runAllTimers(); + }); + expect(component.find('[data-test-subj="lnsDragDrop"]')).toHaveLength(5); }); test(`Reorderable group with lifted element renders properly`, () => { @@ -585,31 +1039,32 @@ describe('DragDrop', () => { setDragging, setA11yMessage, }); + + act(() => { + jest.runAllTimers(); + }); + component + .find('[data-test-subj="lnsDragDrop"]') + .first() + .simulate('dragstart', { dataTransfer }); + act(() => { - component - .find('[data-test-subj="lnsDragDrop"]') - .first() - .simulate('dragstart', { dataTransfer }); jest.runAllTimers(); }); expect(setDragging).toBeCalledWith({ ...items[0] }); expect(setA11yMessage).toBeCalledWith('Lifted Label1'); - expect( - component - .find('[data-test-subj="lnsDragDrop-reorderableGroup"]') - .hasClass('lnsDragDrop-isActiveGroup') - ).toEqual(true); }); test(`Reordered elements get extra styles to show the reorder effect when dragging`, () => { const component = mountComponent({ dragging: { ...items[0] } }); + component + .find('[data-test-subj="lnsDragDrop"]') + .first() + .simulate('dragstart', { dataTransfer }); + act(() => { - component - .find('[data-test-subj="lnsDragDrop"]') - .first() - .simulate('dragstart', { dataTransfer }); jest.runAllTimers(); }); @@ -656,14 +1111,16 @@ describe('DragDrop', () => { setA11yMessage, }); - component - .find('[data-test-subj="lnsDragDrop-reorderableDropLayer"]') - .at(1) - .simulate('drop', { preventDefault, stopPropagation }); - jest.runAllTimers(); + const dragDrop = component.find('[data-test-subj="lnsDragDrop-reorderableDropLayer"]').at(1); + dragDrop.simulate('dragOver'); + dragDrop.simulate('drop', { preventDefault, stopPropagation }); + + act(() => { + jest.runAllTimers(); + }); expect(setA11yMessage).toBeCalledWith( - 'Reordered Label1 in X group from position 1 to positon 3' + 'Reordered Label1 in X group from position 1 to position 3' ); expect(preventDefault).toBeCalled(); expect(stopPropagation).toBeCalled(); @@ -685,7 +1142,9 @@ describe('DragDrop', () => { setActiveDropTarget, setA11yMessage, }); - const keyboardHandler = component.find('[data-test-subj="lnsDragDrop-keyboardHandler"]'); + const keyboardHandler = component + .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first(); keyboardHandler.simulate('keydown', { key: 'Space' }); keyboardHandler.simulate('keydown', { key: 'ArrowUp' }); @@ -694,11 +1153,12 @@ describe('DragDrop', () => { keyboardHandler.simulate('keydown', { key: 'Space' }); keyboardHandler.simulate('keydown', { key: 'ArrowDown' }); - expect(setActiveDropTarget).toBeCalledWith(items[1]); + expect(setActiveDropTarget).toBeCalledWith({ ...items[1], dropType: 'reorder' }); expect(setA11yMessage).toBeCalledWith( 'Reorder Label1 in X group from position 1 to position 2. Press space or enter to reorder' ); }); + test(`Keyboard navigation: user can drop element to an activeDropTarget`, () => { const component = mountComponent({ dragging: { ...items[0] }, @@ -712,6 +1172,7 @@ describe('DragDrop', () => { }); const keyboardHandler = component .find('[data-test-subj="lnsDragDrop-keyboardHandler"]') + .first() .simulate('focus'); act(() => { @@ -732,7 +1193,9 @@ describe('DragDrop', () => { const keyboardHandler = component.find('[data-test-subj="lnsDragDrop-keyboardHandler"]'); keyboardHandler.simulate('keydown', { key: 'Space' }); keyboardHandler.simulate('keydown', { key: 'Escape' }); - jest.runAllTimers(); + act(() => { + jest.runAllTimers(); + }); expect(onDropHandler).not.toHaveBeenCalled(); expect(setA11yMessage).toBeCalledWith( @@ -828,7 +1291,7 @@ describe('DragDrop', () => { ; +const noop = () => {}; + /** * The base props to the DragDrop component. */ @@ -53,7 +57,7 @@ interface BaseProps { /** * The React element which will be passed the draggable handlers */ - children: React.ReactElement; + children: ReactElement; /** * Indicates whether or not this component is draggable. */ @@ -85,14 +89,18 @@ interface BaseProps { dragType?: 'copy' | 'move'; /** - * Indicates the type of a drop - when undefined, the currently dragged item + * Indicates the type of drop targets - when undefined, the currently dragged item * cannot be dropped onto this component. */ - dropType?: DropType; + dropTypes?: DropType[]; /** * Order for keyboard dragging. This takes an array of numbers which will be used to order hierarchically */ order: number[]; + /** + * Extra drop targets by dropType + */ + getCustomDropTarget?: (dropType: DropType) => ReactElement | null; } /** @@ -109,19 +117,17 @@ interface DragInnerProps extends BaseProps { dropTargetsByOrder: DragContextState['dropTargetsByOrder']; }; onDragStart?: ( - target?: - | DroppableEvent['currentTarget'] - | React.KeyboardEvent['currentTarget'] + target?: DroppableEvent['currentTarget'] | KeyboardEvent['currentTarget'] ) => void; onDragEnd?: () => void; - extraKeyboardHandler?: (e: React.KeyboardEvent) => void; + extraKeyboardHandler?: (e: KeyboardEvent) => void; ariaDescribedBy?: string; } /** * The props for a non-draggable instance of that component. */ -interface DropInnerProps extends BaseProps { +interface DropsInnerProps extends BaseProps { dragging: DragContextState['dragging']; keyboardMode: DragContextState['keyboardMode']; setKeyboardMode: DragContextState['setKeyboardMode']; @@ -129,7 +135,7 @@ interface DropInnerProps extends BaseProps { setActiveDropTarget: DragContextState['setActiveDropTarget']; setA11yMessage: DragContextState['setA11yMessage']; registerDropTarget: DragContextState['registerDropTarget']; - isActiveDropTarget: boolean; + activeDropTarget: DragContextState['activeDropTarget']; isNotDroppable: boolean; } @@ -148,7 +154,7 @@ export const DragDrop = (props: BaseProps) => { setA11yMessage, } = useContext(DragContext); - const { value, draggable, dropType, reorderableGroup } = props; + const { value, draggable, dropTypes, reorderableGroup } = props; const isDragging = !!(draggable && value.id === dragging?.id); const activeDraggingProps = isDragging @@ -159,7 +165,7 @@ export const DragDrop = (props: BaseProps) => { } : undefined; - if (draggable && !dropType) { + if (draggable && (!dropTypes || !dropTypes.length)) { const dragProps = { ...props, activeDraggingProps, @@ -175,14 +181,13 @@ export const DragDrop = (props: BaseProps) => { } } - const isActiveDropTarget = Boolean(activeDropTarget?.id === value.id); const dropProps = { ...props, keyboardMode, setKeyboardMode, dragging, setDragging, - isActiveDropTarget, + activeDropTarget, setActiveDropTarget, registerDropTarget, setA11yMessage, @@ -190,19 +195,20 @@ export const DragDrop = (props: BaseProps) => { // If the configuration has provided a droppable flag, but this particular item is not // droppable, then it should be less prominent. Ignores items that are both // draggable and drop targets - !!(!dropType && dragging && value.id !== dragging.id), + !!((!dropTypes || !dropTypes.length) && dragging && value.id !== dragging.id), }; if ( reorderableGroup && reorderableGroup.length > 1 && - reorderableGroup?.some((i) => i.id === dragging?.id) + reorderableGroup?.some((i) => i.id === dragging?.id) && + dropTypes?.[0] === 'reorder' ) { return ; } - return ; + return ; }; -const removeSelectionBeforeDragging = () => { +const removeSelection = () => { const selection = window.getSelection(); if (selection) { selection.removeAllRanges(); @@ -230,8 +236,60 @@ const DragInner = memo(function DragInner({ const activeDropTarget = activeDraggingProps?.activeDropTarget; const dropTargetsByOrder = activeDraggingProps?.dropTargetsByOrder; + const setTarget = useCallback( + (target?: DropIdentifier, announceModifierKeys = false) => { + setActiveDropTarget(target); + setA11yMessage( + target + ? announce.selectedTarget( + value.humanData, + target?.humanData, + target?.dropType, + announceModifierKeys + ) + : announce.noTarget() + ); + }, + [setActiveDropTarget, setA11yMessage, value.humanData] + ); + + const setTargetOfIndex = useCallback( + (id: string, index: number) => { + const dropTargetsForActiveId = + dropTargetsByOrder && + Object.values(dropTargetsByOrder).filter((dropTarget) => dropTarget?.id === id); + if (index > 0 && dropTargetsForActiveId?.[index]) { + setTarget(dropTargetsForActiveId[index]); + } else { + setTarget(dropTargetsForActiveId?.[0], true); + } + }, + [dropTargetsByOrder, setTarget] + ); + const modifierHandlers = useMemo(() => { + const onKeyUp = (e: KeyboardEvent) => { + if ((e.key === 'Shift' || e.key === 'Alt') && activeDropTarget?.id) { + if (e.altKey) { + setTargetOfIndex(activeDropTarget.id, 1); + } else if (e.shiftKey) { + setTargetOfIndex(activeDropTarget.id, 2); + } else { + setTargetOfIndex(activeDropTarget.id, 0); + } + } + }; + const onKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Alt' && activeDropTarget?.id) { + setTargetOfIndex(activeDropTarget.id, 1); + } else if (e.key === 'Shift' && activeDropTarget?.id) { + setTargetOfIndex(activeDropTarget.id, 2); + } + }; + return { onKeyDown, onKeyUp }; + }, [activeDropTarget, setTargetOfIndex]); + const dragStart = ( - e: DroppableEvent | React.KeyboardEvent, + e: DroppableEvent | KeyboardEvent, keyboardModeOn?: boolean ) => { // Setting stopPropgagation causes Chrome failures, so @@ -282,20 +340,8 @@ const DragInner = memo(function DragInner({ onDragEnd(); } }; - const dropToActiveDropTarget = () => { - if (activeDropTarget) { - trackUiEvent('drop_total'); - const { dropType, humanData, onDrop: onTargetDrop } = activeDropTarget; - setTimeout(() => setA11yMessage(announce.dropped(value.humanData, humanData, dropType))); - onTargetDrop(value, dropType); - } - }; - - const setNextTarget = (reversed = false) => { - if (!order) { - return; - } + const setNextTarget = (e: KeyboardEvent, reversed = false) => { const nextTarget = nextValidDropTarget( dropTargetsByOrder, activeDropTarget, @@ -304,13 +350,24 @@ const DragInner = memo(function DragInner({ reversed ); - setActiveDropTarget(nextTarget); - setA11yMessage( - nextTarget - ? announce.selectedTarget(value.humanData, nextTarget?.humanData, nextTarget?.dropType) - : announce.noTarget() - ); + if (e.altKey && nextTarget?.id) { + setTargetOfIndex(nextTarget.id, 1); + } else if (e.shiftKey && nextTarget?.id) { + setTargetOfIndex(nextTarget.id, 2); + } else { + setTarget(nextTarget, true); + } }; + + const dropToActiveDropTarget = () => { + if (activeDropTarget) { + trackUiEvent('drop_total'); + const { dropType, humanData, onDrop: onTargetDrop } = activeDropTarget; + setTimeout(() => setA11yMessage(announce.dropped(value.humanData, humanData, dropType))); + onTargetDrop(value, dropType); + } + }; + const shouldShowGhostImageInstead = dragType === 'move' && keyboardMode && @@ -319,7 +376,9 @@ const DragInner = memo(function DragInner({ return (
    @@ -334,7 +393,7 @@ const DragInner = memo(function DragInner({ dragEnd(); } }} - onKeyDown={(e: React.KeyboardEvent) => { + onKeyDown={(e: KeyboardEvent) => { const { key } = e; if (key === keys.ENTER || key === keys.SPACE) { if (activeDropTarget) { @@ -356,30 +415,30 @@ const DragInner = memo(function DragInner({ if (extraKeyboardHandler) { extraKeyboardHandler(e); } - if (keyboardMode && (keys.ARROW_LEFT === key || keys.ARROW_RIGHT === key)) { - setNextTarget(!!(keys.ARROW_LEFT === key)); + if (keyboardMode) { + if (keys.ARROW_LEFT === key || keys.ARROW_RIGHT === key) { + setNextTarget(e, !!(keys.ARROW_LEFT === key)); + } + modifierHandlers.onKeyDown(e); } }} + onKeyUp={modifierHandlers.onKeyUp} /> {React.cloneElement(children, { 'data-test-subj': dataTestSubj || 'lnsDragDrop', - className: classNames(children.props.className, 'lnsDragDrop', 'lnsDragDrop-isDraggable', { - 'lnsDragDrop-isHidden': - (activeDraggingProps && dragType === 'move' && !keyboardMode) || - shouldShowGhostImageInstead, - }), + className: classNames(children.props.className, 'lnsDragDrop', 'lnsDragDrop-isDraggable'), draggable: true, onDragEnd: dragEnd, onDragStart: dragStart, - onMouseDown: removeSelectionBeforeDragging, + onMouseDown: removeSelection, })}
    ); }); -const DropInner = memo(function DropInner(props: DropInnerProps) { +const DropsInner = memo(function DropsInner(props: DropsInnerProps) { const { dataTestSubj, className, @@ -389,54 +448,86 @@ const DropInner = memo(function DropInner(props: DropInnerProps) { draggable, dragging, isNotDroppable, - dropType, + dropTypes, order, getAdditionalClassesOnEnter, getAdditionalClassesOnDroppable, - isActiveDropTarget, + activeDropTarget, registerDropTarget, setActiveDropTarget, keyboardMode, setKeyboardMode, setDragging, setA11yMessage, + getCustomDropTarget, } = props; + const [isInZone, setIsInZone] = useState(false); + const mainTargetRef = useRef(null); + useShallowCompareEffect(() => { - if (dropType && onDrop && keyboardMode) { - registerDropTarget(order, { ...value, onDrop, dropType }); + if (dropTypes && dropTypes?.[0] && onDrop && keyboardMode) { + dropTypes.forEach((dropType, index) => { + registerDropTarget([...order, index], { ...value, onDrop, dropType }); + }); return () => { - registerDropTarget(order, undefined); + dropTypes.forEach((_, index) => { + registerDropTarget([...order, index], undefined); + }); }; } - }, [order, value, registerDropTarget, dropType, keyboardMode]); - - const classesOnEnter = getAdditionalClassesOnEnter?.(dropType); - const classesOnDroppable = getAdditionalClassesOnDroppable?.(dropType); - - const classes = classNames( - 'lnsDragDrop', - { - 'lnsDragDrop-isDraggable': draggable, - 'lnsDragDrop-isDroppable': !draggable, - 'lnsDragDrop-isDropTarget': dropType && dropType !== 'reorder', - 'lnsDragDrop-isActiveDropTarget': dropType && isActiveDropTarget && dropType !== 'reorder', - 'lnsDragDrop-isNotDroppable': isNotDroppable, - }, - classesOnEnter && { [classesOnEnter]: isActiveDropTarget }, - classesOnDroppable && { [classesOnDroppable]: dropType } - ); + }, [order, registerDropTarget, dropTypes, keyboardMode]); - const dragOver = (e: DroppableEvent) => { - if (!dropType) { - return; + useEffect(() => { + if (activeDropTarget && activeDropTarget.id !== value.id) { + setIsInZone(false); } + setTimeout(() => { + if (!activeDropTarget) { + setIsInZone(false); + } + }, 1000); + }, [activeDropTarget, setIsInZone, value.id]); + + const dragEnter = () => { + if (!isInZone) { + setIsInZone(true); + } + }; + + const getModifiedDropType = (e: DroppableEvent, dropType: DropType) => { + if (!dropTypes || dropTypes.length <= 1) { + return dropType; + } + const dropIndex = dropTypes.indexOf(dropType); + if (dropIndex > 0) { + return dropType; + } else if (dropIndex === 0) { + if (e.altKey && dropTypes[1]) { + return dropTypes[1]; + } else if (e.shiftKey && dropTypes[2]) { + return dropTypes[2]; + } + } + return dropType; + }; + + const dragOver = (e: DroppableEvent, dropType: DropType) => { e.preventDefault(); + if (!dragging || !onDrop) { + return; + } + const modifiedDropType = getModifiedDropType(e, dropType); + const isActiveDropTarget = !!( + activeDropTarget?.id === value.id && activeDropTarget?.dropType === modifiedDropType + ); // An optimization to prevent a bunch of React churn. - if (!isActiveDropTarget && dragging && onDrop) { - setActiveDropTarget({ ...value, dropType, onDrop }); - setA11yMessage(announce.selectedTarget(dragging.humanData, value.humanData, dropType)); + if (!isActiveDropTarget) { + setActiveDropTarget({ ...value, dropType: modifiedDropType, onDrop }); + setA11yMessage( + announce.selectedTarget(dragging.humanData, value.humanData, modifiedDropType) + ); } }; @@ -444,35 +535,146 @@ const DropInner = memo(function DropInner(props: DropInnerProps) { setActiveDropTarget(undefined); }; - const drop = (e: DroppableEvent | React.KeyboardEvent) => { + const drop = (e: DroppableEvent, dropType: DropType) => { e.preventDefault(); e.stopPropagation(); - - if (onDrop && dropType && dragging) { - trackUiEvent('drop_total'); - onDrop(dragging, dropType); + setIsInZone(false); + if (onDrop && dragging) { + const modifiedDropType = getModifiedDropType(e, dropType); + onDrop(dragging, modifiedDropType); setTimeout(() => - setA11yMessage(announce.dropped(dragging.humanData, value.humanData, dropType)) + setA11yMessage(announce.dropped(dragging.humanData, value.humanData, modifiedDropType)) ); } + setDragging(undefined); setActiveDropTarget(undefined); setKeyboardMode(false); }; - const ghost = - isActiveDropTarget && dropType !== 'reorder' && dragging?.ghost ? dragging.ghost : undefined; + const getProps = (dropType?: DropType, dropChildren?: ReactElement) => { + const isActiveDropTarget = Boolean( + activeDropTarget?.id === value.id && dropType === activeDropTarget?.dropType + ); + return { + 'data-test-subj': dataTestSubj || 'lnsDragDrop', + className: getClasses(dropType, dropChildren), + onDragEnter: dragEnter, + onDragLeave: dragLeave, + onDragOver: dropType ? (e: DroppableEvent) => dragOver(e, dropType) : noop, + onDrop: dropType ? (e: DroppableEvent) => drop(e, dropType) : noop, + draggable, + ghost: + (isActiveDropTarget && dropType !== 'reorder' && dragging?.ghost && dragging.ghost) || + undefined, + }; + }; + + const getClasses = (dropType?: DropType, dropChildren = children) => { + const isActiveDropTarget = Boolean( + activeDropTarget?.id === value.id && dropType === activeDropTarget?.dropType + ); + const classesOnDroppable = getAdditionalClassesOnDroppable?.(dropType); + + const classes = classNames( + 'lnsDragDrop', + { + 'lnsDragDrop-isDraggable': draggable, + 'lnsDragDrop-isDroppable': !draggable, + 'lnsDragDrop-isDropTarget': dropType, + 'lnsDragDrop-isActiveDropTarget': dropType && isActiveDropTarget, + 'lnsDragDrop-isNotDroppable': isNotDroppable, + }, + classesOnDroppable && { [classesOnDroppable]: dropType } + ); + return classNames(classes, className, dropChildren.props.className); + }; + + const getMainTargetClasses = () => { + const classesOnEnter = getAdditionalClassesOnEnter?.(activeDropTarget?.dropType); + return classNames(classesOnEnter && { [classesOnEnter]: activeDropTarget?.id === value.id }); + }; + + const mainTargetProps = getProps(dropTypes && dropTypes[0]); + + const extraDropStyles = useMemo(() => { + const extraDrops = dropTypes && dropTypes.length && dropTypes.slice(1); + if (!extraDrops || !extraDrops.length) { + return; + } + + const height = extraDrops.length * 40; + const minHeight = height - (mainTargetRef.current?.clientHeight || 40); + const clipPath = `polygon(100% 0px, 100% ${height - minHeight}px, 0 100%, 0 0)`; + return { + clipPath, + height, + }; + }, [dropTypes]); + + return ( +
    + + {dropTypes && dropTypes.length > 1 && ( + <> +
    + + {dropTypes.slice(1).map((dropType) => { + const dropChildren = getCustomDropTarget?.(dropType); + return dropChildren ? ( + + + {dropChildren} + + + ) : null; + })} + + + )} +
    + ); +}); +const SingleDropInner = ({ + ghost, + children, + ...rest +}: { + ghost?: Ghost; + children: ReactElement; + style?: React.CSSProperties; + className?: string; +}) => { return ( <> - {React.cloneElement(children, { - 'data-test-subj': dataTestSubj || 'lnsDragDrop', - className: classNames(children.props.className, classes, className), - onDragOver: dragOver, - onDragLeave: dragLeave, - onDrop: drop, - draggable, - })} + {React.cloneElement(children, rest)} {ghost ? React.cloneElement(ghost.children, { className: classNames(ghost.children.props.className, 'lnsDragDrop_ghost'), @@ -481,7 +683,7 @@ const DropInner = memo(function DropInner(props: DropInnerProps) { : null} ); -}); +}; const ReorderableDrag = memo(function ReorderableDrag( props: DragInnerProps & { reorderableGroup: Array<{ id: string }>; dragging?: DragDropIdentifier } @@ -519,7 +721,7 @@ const ReorderableDrag = memo(function ReorderableDrag( const onReorderableDragStart = ( currentTarget?: | DroppableEvent['currentTarget'] - | React.KeyboardEvent['currentTarget'] + | KeyboardEvent['currentTarget'] ) => { if (currentTarget) { const height = currentTarget.offsetHeight + lnsLayerPanelDimensionMargin; @@ -540,7 +742,7 @@ const ReorderableDrag = memo(function ReorderableDrag( reorderedItems: [], })); - const extraKeyboardHandler = (e: React.KeyboardEvent) => { + const extraKeyboardHandler = (e: KeyboardEvent) => { if (isReorderOn && keyboardMode) { e.stopPropagation(); e.preventDefault(); @@ -644,7 +846,7 @@ const ReorderableDrag = memo(function ReorderableDrag( }); const ReorderableDrop = memo(function ReorderableDrop( - props: DropInnerProps & { reorderableGroup: Array<{ id: string }> } + props: DropsInnerProps & { reorderableGroup: Array<{ id: string }> } ) { const { onDrop, @@ -652,11 +854,10 @@ const ReorderableDrop = memo(function ReorderableDrop( dragging, setDragging, setKeyboardMode, - isActiveDropTarget, + activeDropTarget, setActiveDropTarget, reorderableGroup, setA11yMessage, - dropType, } = props; const currentIndex = reorderableGroup.findIndex((i) => i.id === value.id); @@ -666,7 +867,7 @@ const ReorderableDrop = memo(function ReorderableDrop( setReorderState, } = useContext(ReorderContext); - const heightRef = React.useRef(null); + const heightRef = useRef(null); const isReordered = isReorderOn && reorderedItems.some((el) => el.id === value.id) && reorderedItems.length; @@ -688,42 +889,38 @@ const ReorderableDrop = memo(function ReorderableDrop( }, [isReordered, setReorderState, value.id]); const onReorderableDragOver = (e: DroppableEvent) => { - if (!dropType) { - return; - } e.preventDefault(); - // An optimization to prevent a bunch of React churn. - if (!isActiveDropTarget && dropType && onDrop) { - setActiveDropTarget({ ...value, dropType, onDrop }); - } + if (activeDropTarget?.id !== value?.id && onDrop) { + setActiveDropTarget({ ...value, dropType: 'reorder', onDrop }); - const draggingIndex = reorderableGroup.findIndex((i) => i.id === dragging?.id); + const draggingIndex = reorderableGroup.findIndex((i) => i.id === dragging?.id); - if (!dragging || draggingIndex === -1) { - return; - } - const droppingIndex = currentIndex; - if (draggingIndex === droppingIndex) { - setReorderState((s: ReorderState) => ({ - ...s, - reorderedItems: [], - })); - } + if (!dragging || draggingIndex === -1) { + return; + } + const droppingIndex = currentIndex; + if (draggingIndex === droppingIndex) { + setReorderState((s: ReorderState) => ({ + ...s, + reorderedItems: [], + })); + } - setReorderState((s: ReorderState) => - draggingIndex < droppingIndex - ? { - ...s, - reorderedItems: reorderableGroup.slice(draggingIndex + 1, droppingIndex + 1), - direction: '-', - } - : { - ...s, - reorderedItems: reorderableGroup.slice(droppingIndex, draggingIndex), - direction: '+', - } - ); + setReorderState((s: ReorderState) => + draggingIndex < droppingIndex + ? { + ...s, + reorderedItems: reorderableGroup.slice(draggingIndex + 1, droppingIndex + 1), + direction: '-', + } + : { + ...s, + reorderedItems: reorderableGroup.slice(droppingIndex, draggingIndex), + direction: '+', + } + ); + } }; const onReorderableDrop = (e: DroppableEvent) => { @@ -734,7 +931,7 @@ const ReorderableDrop = memo(function ReorderableDrop( setDragging(undefined); setKeyboardMode(false); - if (onDrop && dropType && dragging) { + if (onDrop && dragging) { trackUiEvent('drop_total'); onDrop(dragging, 'reorder'); // setTimeout ensures it will run after dragEnd messaging @@ -758,17 +955,18 @@ const ReorderableDrop = memo(function ReorderableDrop( data-test-subj="lnsDragDrop-translatableDrop" className="lnsDragDrop-translatableDrop lnsDragDrop-reorderable" > - +
    { + setActiveDropTarget(undefined); setReorderState((s: ReorderState) => ({ ...s, reorderedItems: [], diff --git a/x-pack/plugins/lens/public/drag_drop/providers/announcements.tsx b/x-pack/plugins/lens/public/drag_drop/providers/announcements.tsx index 3bd1d5693005c..72771edbae981 100644 --- a/x-pack/plugins/lens/public/drag_drop/providers/announcements.tsx +++ b/x-pack/plugins/lens/public/drag_drop/providers/announcements.tsx @@ -9,132 +9,340 @@ import { i18n } from '@kbn/i18n'; import { DropType } from '../../types'; import { HumanData } from '.'; -type AnnouncementFunction = (draggedElement: HumanData, dropElement: HumanData) => string; +type AnnouncementFunction = ( + draggedElement: HumanData, + dropElement: HumanData, + announceModifierKeys?: boolean +) => string; interface CustomAnnouncementsType { dropped: Partial<{ [dropType in DropType]: AnnouncementFunction }>; selectedTarget: Partial<{ [dropType in DropType]: AnnouncementFunction }>; } -const selectedTargetReplace = ( - { label }: HumanData, - { label: dropLabel, groupLabel, position }: HumanData -) => - i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.replace', { - defaultMessage: `Replace {dropLabel} in {groupLabel} group at position {position} with {label}. Press space or enter to replace`, - values: { - label, - dropLabel, - groupLabel, - position, - }, - }); +const replaceAnnouncement = { + selectedTarget: ( + { label, groupLabel, position }: HumanData, + { + label: dropLabel, + groupLabel: dropGroupLabel, + position: dropPosition, + canSwap, + canDuplicate, + }: HumanData, + announceModifierKeys?: boolean + ) => { + if (announceModifierKeys && (canSwap || canDuplicate)) { + return i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.replaceMain', { + defaultMessage: `You're dragging {label} from {groupLabel} at position {position} over {dropLabel} from {dropGroupLabel} group at position {dropPosition}. Press space or enter to replace {dropLabel} with {label}.{duplicateCopy}{swapCopy}`, + values: { + label, + groupLabel, + position, + dropLabel, + dropGroupLabel, + dropPosition, + duplicateCopy: canDuplicate ? DUPLICATE_SHORT : '', + swapCopy: canSwap ? SWAP_SHORT : '', + }, + }); + } -const droppedReplace = ( - { label }: HumanData, - { label: dropLabel, groupLabel, position }: HumanData -) => - i18n.translate('xpack.lens.dragDrop.announce.duplicated.replace', { - defaultMessage: 'Replaced {dropLabel} with {label} in {groupLabel} at position {position}', - values: { - label, - dropLabel, - groupLabel, - position, - }, - }); + return i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.replace', { + defaultMessage: `Replace {dropLabel} in {dropGroupLabel} group at position {dropPosition} with {label}. Press space or enter to replace.`, + values: { + label, + dropLabel, + dropGroupLabel, + dropPosition, + }, + }); + }, + dropped: ({ label }: HumanData, { label: dropLabel, groupLabel, position }: HumanData) => + i18n.translate('xpack.lens.dragDrop.announce.duplicated.replace', { + defaultMessage: 'Replaced {dropLabel} with {label} in {groupLabel} at position {position}', + values: { + label, + dropLabel, + groupLabel, + position, + }, + }), +}; + +const duplicateAnnouncement = { + selectedTarget: ( + { label, groupLabel }: HumanData, + { groupLabel: dropGroupLabel, position }: HumanData + ) => { + if (groupLabel !== dropGroupLabel) { + return i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.duplicated', { + defaultMessage: `Duplicate {label} to {dropGroupLabel} group at position {position}. Hold Alt or Option and press space or enter to duplicate`, + values: { + label, + dropGroupLabel, + position, + }, + }); + } + return i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.duplicatedInGroup', { + defaultMessage: `Duplicate {label} to {dropGroupLabel} group at position {position}. Press space or enter to duplicate`, + values: { + label, + dropGroupLabel, + position, + }, + }); + }, + dropped: ({ label }: HumanData, { groupLabel, position }: HumanData) => + i18n.translate('xpack.lens.dragDrop.announce.dropped.duplicated', { + defaultMessage: 'Duplicated {label} in {groupLabel} group at position {position}', + values: { + label, + groupLabel, + position, + }, + }), +}; + +const reorderAnnouncement = { + selectedTarget: ( + { label, groupLabel, position: prevPosition }: HumanData, + { position }: HumanData + ) => + prevPosition === position + ? i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.reorderedBack', { + defaultMessage: `{label} returned to its initial position {prevPosition}`, + values: { + label, + prevPosition, + }, + }) + : i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.reordered', { + defaultMessage: `Reorder {label} in {groupLabel} group from position {prevPosition} to position {position}. Press space or enter to reorder`, + values: { + groupLabel, + label, + position, + prevPosition, + }, + }), + dropped: ({ label, groupLabel, position: prevPosition }: HumanData, { position }: HumanData) => + i18n.translate('xpack.lens.dragDrop.announce.dropped.reordered', { + defaultMessage: + 'Reordered {label} in {groupLabel} group from position {prevPosition} to position {position}', + values: { + label, + groupLabel, + position, + prevPosition, + }, + }), +}; + +const DUPLICATE_SHORT = i18n.translate('xpack.lens.dragDrop.announce.duplicate.short', { + defaultMessage: ' Hold alt or option to duplicate.', +}); + +const SWAP_SHORT = i18n.translate('xpack.lens.dragDrop.announce.swap.short', { + defaultMessage: ' Hold shift to swap.', +}); export const announcements: CustomAnnouncementsType = { selectedTarget: { - reorder: ({ label, groupLabel, position: prevPosition }, { position }) => - prevPosition === position - ? i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.reorderedBack', { - defaultMessage: `{label} returned to its initial position {prevPosition}`, + reorder: reorderAnnouncement.selectedTarget, + duplicate_compatible: duplicateAnnouncement.selectedTarget, + field_replace: replaceAnnouncement.selectedTarget, + replace_compatible: replaceAnnouncement.selectedTarget, + replace_incompatible: ( + { label, groupLabel, position }: HumanData, + { + label: dropLabel, + groupLabel: dropGroupLabel, + position: dropPosition, + nextLabel, + canSwap, + canDuplicate, + }: HumanData, + announceModifierKeys?: boolean + ) => { + if (announceModifierKeys && (canSwap || canDuplicate)) { + return i18n.translate( + 'xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatibleMain', + { + defaultMessage: `You're dragging {label} from {groupLabel} at position {position} over {dropLabel} from {dropGroupLabel} group at position {dropPosition}. Press space or enter to convert {label} to {nextLabel} and replace {dropLabel}.{duplicateCopy}{swapCopy}`, values: { label, - prevPosition, - }, - }) - : i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.reordered', { - defaultMessage: `Reorder {label} in {groupLabel} group from position {prevPosition} to position {position}. Press space or enter to reorder`, - values: { groupLabel, - label, position, - prevPosition, + dropLabel, + dropGroupLabel, + dropPosition, + nextLabel, + duplicateCopy: canDuplicate ? DUPLICATE_SHORT : '', + swapCopy: canSwap ? SWAP_SHORT : '', }, - }), - duplicate_in_group: ({ label }, { groupLabel, position }) => - i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.duplicated', { - defaultMessage: `Duplicate {label} to {groupLabel} group at position {position}. Press space or enter to duplicate`, + } + ); + } + return i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatible', { + defaultMessage: `Convert {label} to {nextLabel} and replace {dropLabel} in {dropGroupLabel} group at position {dropPosition}. Press space or enter to replace`, values: { label, - groupLabel, - position, + nextLabel, + dropLabel, + dropGroupLabel, + dropPosition, }, - }), - field_replace: selectedTargetReplace, - replace_compatible: selectedTargetReplace, - replace_incompatible: ( + }); + }, + move_incompatible: ( + { label, groupLabel, position }: HumanData, + { + groupLabel: dropGroupLabel, + position: dropPosition, + nextLabel, + canSwap, + canDuplicate, + }: HumanData, + announceModifierKeys?: boolean + ) => { + if (announceModifierKeys && (canSwap || canDuplicate)) { + return i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.moveIncompatibleMain', { + defaultMessage: `You're dragging {label} from {groupLabel} at position {position} over position {dropPosition} in {dropGroupLabel} group. Press space or enter to convert {label} to {nextLabel} and move.{duplicateCopy}{swapCopy}`, + values: { + label, + groupLabel, + position, + dropGroupLabel, + dropPosition, + nextLabel, + duplicateCopy: canDuplicate ? DUPLICATE_SHORT : '', + swapCopy: canSwap ? SWAP_SHORT : '', + }, + }); + } + return i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.moveIncompatible', { + defaultMessage: `Convert {label} to {nextLabel} and move to {dropGroupLabel} group at position {dropPosition}. Press space or enter to move`, + values: { + label, + nextLabel, + dropGroupLabel, + dropPosition, + }, + }); + }, + + move_compatible: ( + { label, groupLabel, position }: HumanData, + { groupLabel: dropGroupLabel, position: dropPosition, canSwap, canDuplicate }: HumanData, + announceModifierKeys?: boolean + ) => { + if (announceModifierKeys && (canSwap || canDuplicate)) { + return i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.moveCompatibleMain', { + defaultMessage: `You're dragging {label} from {groupLabel} at position {position} over position {dropPosition} in {dropGroupLabel} group. Press space or enter to move.{duplicateCopy}{swapCopy}`, + values: { + label, + groupLabel, + position, + dropGroupLabel, + dropPosition, + duplicateCopy: canDuplicate ? DUPLICATE_SHORT : '', + swapCopy: canSwap ? SWAP_SHORT : '', + }, + }); + } + return i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.moveCompatible', { + defaultMessage: `Move {label} to {dropGroupLabel} group at position {dropPosition}. Press space or enter to move`, + values: { + label, + dropGroupLabel, + dropPosition, + }, + }); + }, + duplicate_incompatible: ( { label }: HumanData, - { label: dropLabel, groupLabel, position, nextLabel }: HumanData + { groupLabel, position, nextLabel }: HumanData ) => - i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatible', { - defaultMessage: `Convert {label} to {nextLabel} and replace {dropLabel} in {groupLabel} group at position {position}. Press space or enter to replace`, + i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.duplicateIncompatible', { + defaultMessage: + 'Convert copy of {label} to {nextLabel} and add to {groupLabel} group at position {position}. Hold Alt or Option and press space or enter to duplicate', values: { label, - nextLabel, - dropLabel, groupLabel, position, + nextLabel, }, }), - move_incompatible: ( + replace_duplicate_incompatible: ( { label }: HumanData, - { label: groupLabel, position, nextLabel }: HumanData + { label: dropLabel, groupLabel, position, nextLabel }: HumanData ) => - i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.moveIncompatible', { - defaultMessage: `Convert {label} to {nextLabel} and move to {groupLabel} group at position {position}. Press space or enter to move`, + i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateIncompatible', { + defaultMessage: + 'Convert copy of {label} to {nextLabel} and replace {dropLabel} in {groupLabel} group at position {position}. Hold Alt or Option and press space or enter to duplicate and replace', values: { label, - nextLabel, groupLabel, position, + dropLabel, + nextLabel, }, }), - move_compatible: ({ label }: HumanData, { groupLabel, position }: HumanData) => - i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.moveCompatible', { - defaultMessage: `Move {label} to {groupLabel} group at position {position}. Press space or enter to move`, + replace_duplicate_compatible: ( + { label }: HumanData, + { label: dropLabel, groupLabel, position }: HumanData + ) => + i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateCompatible', { + defaultMessage: + 'Duplicate {label} and replace {dropLabel} in {groupLabel} at position {position}. Hold Alt or Option and press space or enter to duplicate and replace', values: { label, + dropLabel, groupLabel, position, }, }), - }, - dropped: { - reorder: ({ label, groupLabel, position: prevPosition }, { position }) => - i18n.translate('xpack.lens.dragDrop.announce.dropped.reordered', { + swap_compatible: ( + { label, groupLabel, position }: HumanData, + { label: dropLabel, groupLabel: dropGroupLabel, position: dropPosition }: HumanData + ) => + i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.swapCompatible', { defaultMessage: - 'Reordered {label} in {groupLabel} group from position {prevPosition} to positon {position}', + 'Swap {label} in {groupLabel} group at position {position} with {dropLabel} in {dropGroupLabel} group at position {dropPosition}. Hold Shift and press space or enter to swap', values: { label, groupLabel, position, - prevPosition, + dropLabel, + dropGroupLabel, + dropPosition, }, }), - duplicate_in_group: ({ label }, { groupLabel, position }) => - i18n.translate('xpack.lens.dragDrop.announce.dropped.duplicated', { - defaultMessage: 'Duplicated {label} in {groupLabel} group at position {position}', + swap_incompatible: ( + { label, groupLabel, position }: HumanData, + { label: dropLabel, groupLabel: dropGroupLabel, position: dropPosition, nextLabel }: HumanData + ) => + i18n.translate('xpack.lens.dragDrop.announce.selectedTarget.swapIncompatible', { + defaultMessage: + 'Convert {label} to {nextLabel} in {groupLabel} group at position {position} and swap with {dropLabel} in {dropGroupLabel} group at position {dropPosition}. Hold Shift and press space or enter to swap', values: { label, groupLabel, position, + dropLabel, + dropGroupLabel, + dropPosition, + nextLabel, }, }), - field_replace: droppedReplace, - replace_compatible: droppedReplace, + }, + dropped: { + reorder: reorderAnnouncement.dropped, + duplicate_compatible: duplicateAnnouncement.dropped, + field_replace: replaceAnnouncement.dropped, + replace_compatible: replaceAnnouncement.dropped, replace_incompatible: ( { label }: HumanData, { label: dropLabel, groupLabel, position, nextLabel }: HumanData @@ -171,6 +379,84 @@ export const announcements: CustomAnnouncementsType = { position, }, }), + + duplicate_incompatible: ( + { label }: HumanData, + { groupLabel, position, nextLabel }: HumanData + ) => + i18n.translate('xpack.lens.dragDrop.announce.dropped.duplicateIncompatible', { + defaultMessage: + 'Converted copy of {label} to {nextLabel} and added to {groupLabel} group at position {position}', + values: { + label, + groupLabel, + position, + nextLabel, + }, + }), + + replace_duplicate_incompatible: ( + { label }: HumanData, + { label: dropLabel, groupLabel, position, nextLabel }: HumanData + ) => + i18n.translate('xpack.lens.dragDrop.announce.dropped.replaceDuplicateIncompatible', { + defaultMessage: + 'Converted copy of {label} to {nextLabel} and replaced {dropLabel} in {groupLabel} group at position {position}', + values: { + label, + dropLabel, + groupLabel, + position, + nextLabel, + }, + }), + replace_duplicate_compatible: ( + { label }: HumanData, + { label: dropLabel, groupLabel, position }: HumanData + ) => + i18n.translate('xpack.lens.dragDrop.announce.duplicated.replaceDuplicateCompatible', { + defaultMessage: + 'Replaced {dropLabel} with a copy of {label} in {groupLabel} at position {position}', + values: { + label, + dropLabel, + groupLabel, + position, + }, + }), + swap_compatible: ( + { label, groupLabel, position }: HumanData, + { label: dropLabel, groupLabel: dropGroupLabel, position: dropPosition }: HumanData + ) => + i18n.translate('xpack.lens.dragDrop.announce.dropped.swapCompatible', { + defaultMessage: + 'Moved {label} to {dropGroupLabel} at position {dropPosition} and {dropLabel} to {groupLabel} group at position {position}', + values: { + label, + groupLabel, + position, + dropLabel, + dropGroupLabel, + dropPosition, + }, + }), + swap_incompatible: ( + { label, groupLabel, position }: HumanData, + { label: dropLabel, groupLabel: dropGroupLabel, position: dropPosition, nextLabel }: HumanData + ) => + i18n.translate('xpack.lens.dragDrop.announce.dropped.swapIncompatible', { + defaultMessage: + 'Converted {label} to {nextLabel} in {groupLabel} group at position {position} and swapped with {dropLabel} in {dropGroupLabel} group at position {dropPosition}', + values: { + label, + groupLabel, + position, + dropGroupLabel, + dropLabel, + dropPosition, + nextLabel, + }, + }), }, }; @@ -256,7 +542,13 @@ export const announce = { dropped: (draggedElement: HumanData, dropElement: HumanData, type?: DropType) => (type && announcements.dropped?.[type]?.(draggedElement, dropElement)) || defaultAnnouncements.dropped(draggedElement, dropElement), - selectedTarget: (draggedElement: HumanData, dropElement: HumanData, type?: DropType) => - (type && announcements.selectedTarget?.[type]?.(draggedElement, dropElement)) || + selectedTarget: ( + draggedElement: HumanData, + dropElement: HumanData, + type?: DropType, + announceModifierKeys?: boolean + ) => + (type && + announcements.selectedTarget?.[type]?.(draggedElement, dropElement, announceModifierKeys)) || defaultAnnouncements.selectedTarget(draggedElement, dropElement), }; diff --git a/x-pack/plugins/lens/public/drag_drop/providers/providers.tsx b/x-pack/plugins/lens/public/drag_drop/providers/providers.tsx index 2c6b07ea11765..4db19e10ec701 100644 --- a/x-pack/plugins/lens/public/drag_drop/providers/providers.tsx +++ b/x-pack/plugins/lens/public/drag_drop/providers/providers.tsx @@ -135,11 +135,31 @@ export function nextValidDropTarget( return; } - const filteredTargets = Object.entries(dropTargetsByOrder).filter( - ([, dropTarget]) => dropTarget && filterElements(dropTarget) + const filteredTargets: Array<[string, DropIdentifier | undefined]> = Object.entries( + dropTargetsByOrder + ).filter(([, dropTarget]) => { + return dropTarget && filterElements(dropTarget); + }); + + // filter out secondary targets + const uniqueIdTargets = filteredTargets.reduce( + ( + acc: Array<[string, DropIdentifier | undefined]>, + current: [string, DropIdentifier | undefined] + ) => { + const [, currentDropTarget] = current; + if (!currentDropTarget) { + return acc; + } + if (acc.find(([, target]) => target?.id === currentDropTarget.id)) { + return acc; + } + return [...acc, current]; + }, + [] ); - const nextDropTargets = [...filteredTargets, draggingOrder].sort(([orderA], [orderB]) => { + const nextDropTargets = [...uniqueIdTargets, draggingOrder].sort(([orderA], [orderB]) => { const parsedOrderA = orderA.split(',').map((v) => Number(v)); const parsedOrderB = orderB.split(',').map((v) => Number(v)); diff --git a/x-pack/plugins/lens/public/drag_drop/providers/types.tsx b/x-pack/plugins/lens/public/drag_drop/providers/types.tsx index 11f460a400dcd..8b28affa45596 100644 --- a/x-pack/plugins/lens/public/drag_drop/providers/types.tsx +++ b/x-pack/plugins/lens/public/drag_drop/providers/types.tsx @@ -12,6 +12,13 @@ export interface HumanData { groupLabel?: string; position?: number; nextLabel?: string; + canSwap?: boolean; + canDuplicate?: boolean; +} + +export interface Ghost { + children: React.ReactElement; + style: React.CSSProperties; } export type DragDropIdentifier = Record & { @@ -23,10 +30,7 @@ export type DragDropIdentifier = Record & { }; export type DraggingIdentifier = DragDropIdentifier & { - ghost?: { - children: React.ReactElement; - style: React.CSSProperties; - }; + ghost?: Ghost; }; export type DropIdentifier = DragDropIdentifier & { diff --git a/x-pack/plugins/lens/public/drag_drop/readme.md b/x-pack/plugins/lens/public/drag_drop/readme.md index 01cc4c7bc85a5..d7183263c519b 100644 --- a/x-pack/plugins/lens/public/drag_drop/readme.md +++ b/x-pack/plugins/lens/public/drag_drop/readme.md @@ -48,7 +48,7 @@ To enable dragging an item, use `DragDrop` with both a `draggable` and a `value` ## Dropping -To enable dropping, use `DragDrop` with both a `droppable` attribute and an `onDrop` handler attribute. Droppable should only be set to true if there is an item being dragged, and if a drop of the dragged item is supported. +To enable dropping, use `DragDrop` with both a `dropTypes` attribute that should be an array with at least one value and an `onDrop` handler attribute. `dropType` should only be truthy if is an item being dragged, and if a drop of the dragged item is supported. ```js const { dragging } = useContext(DragContext); @@ -56,7 +56,7 @@ const { dragging } = useContext(DragContext); return ( onChange([...items, item])} > {items.map((x) => ( @@ -85,8 +85,7 @@ The children `DragDrop` components must have props defined as in the example: i18n.translate('xpack.lens.configure.editConfig', { diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/draggable_dimension_button.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/draggable_dimension_button.tsx similarity index 72% rename from x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/draggable_dimension_button.tsx rename to x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/draggable_dimension_button.tsx index 8449727a9e79d..212b1794d94ea 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/draggable_dimension_button.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/draggable_dimension_button.tsx @@ -5,32 +5,20 @@ * 2.0. */ -import React, { useMemo, useCallback, useContext } from 'react'; -import { DragDrop, DragDropIdentifier, DragContext } from '../../../drag_drop'; - +import React, { useMemo, useCallback, useContext, ReactElement } from 'react'; +import { DragDrop, DragDropIdentifier, DragContext } from '../../../../drag_drop'; import { Datasource, VisualizationDimensionGroupConfig, isDraggedOperation, DropType, -} from '../../../types'; -import { LayerDatasourceDropProps } from './types'; - -const getAdditionalClassesOnEnter = (dropType?: string) => { - if ( - dropType === 'field_replace' || - dropType === 'replace_compatible' || - dropType === 'replace_incompatible' - ) { - return 'lnsDragDrop-isReplacing'; - } -}; - -const getAdditionalClassesOnDroppable = (dropType?: string) => { - if (dropType === 'move_incompatible' || dropType === 'replace_incompatible') { - return 'lnsDragDrop-notCompatible'; - } -}; +} from '../../../../types'; +import { LayerDatasourceDropProps } from '../types'; +import { + getCustomDropTarget, + getAdditionalClassesOnDroppable, + getAdditionalClassesOnEnter, +} from './drop_targets_utils'; export function DraggableDimensionButton({ layerId, @@ -58,7 +46,7 @@ export function DraggableDimensionButton({ group: VisualizationDimensionGroupConfig; groups: VisualizationDimensionGroupConfig[]; label: string; - children: React.ReactElement; + children: ReactElement; layerDatasource: Datasource; layerDatasourceDropProps: LayerDatasourceDropProps; accessorIndex: number; @@ -76,8 +64,18 @@ export function DraggableDimensionButton({ dimensionGroups: groups, }); - const dropType = dropProps?.dropType; + const dropTypes = dropProps?.dropTypes; const nextLabel = dropProps?.nextLabel; + const canDuplicate = !!( + dropTypes && + (dropTypes.includes('replace_duplicate_incompatible') || + dropTypes.includes('replace_duplicate_compatible')) + ); + + const canSwap = !!( + dropTypes && + (dropTypes.includes('swap_incompatible') || dropTypes.includes('swap_compatible')) + ); const value = useMemo( () => ({ @@ -85,15 +83,28 @@ export function DraggableDimensionButton({ groupId: group.groupId, layerId, id: columnId, - dropType, + filterOperations: group.filterOperations, humanData: { + canSwap, + canDuplicate, label, groupLabel: group.groupLabel, position: accessorIndex + 1, nextLabel: nextLabel || '', }, }), - [columnId, group.groupId, accessorIndex, layerId, dropType, label, group.groupLabel, nextLabel] + [ + columnId, + group.groupId, + accessorIndex, + layerId, + label, + group.groupLabel, + nextLabel, + group.filterOperations, + canDuplicate, + canSwap, + ] ); // todo: simplify by id and use drop targets? @@ -110,7 +121,7 @@ export function DraggableDimensionButton({ columnId, ]); - const handleOnDrop = React.useCallback( + const handleOnDrop = useCallback( (droppedItem, selectedDropType) => onDrop(droppedItem, value, selectedDropType), [value, onDrop] ); @@ -122,12 +133,13 @@ export function DraggableDimensionButton({ data-test-subj={group.dataTestSubj} > 1 ? reorderableGroup : undefined} value={value} onDrop={handleOnDrop} diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/drop_targets_utils.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/drop_targets_utils.tsx new file mode 100644 index 0000000000000..85934412dd374 --- /dev/null +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/drop_targets_utils.tsx @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import classNames from 'classnames'; +import { EuiIcon, EuiFlexItem, EuiFlexGroup, EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { DropType } from '../../../../types'; + +const getExtraDrop = ({ + type, + isIncompatible, +}: { + type: 'swap' | 'duplicate'; + isIncompatible?: boolean; +}) => { + return ( + + + + + + + + + {type === 'duplicate' + ? i18n.translate('xpack.lens.dragDrop.duplicate', { + defaultMessage: 'Duplicate', + }) + : i18n.translate('xpack.lens.dragDrop.swap', { + defaultMessage: 'Swap', + })} + + + + + + + + {' '} + {type === 'duplicate' + ? i18n.translate('xpack.lens.dragDrop.altOption', { + defaultMessage: 'Alt/Option', + }) + : i18n.translate('xpack.lens.dragDrop.shift', { + defaultMessage: 'Shift', + })} + + + + + ); +}; + +const customDropTargetsMap: Partial<{ [dropType in DropType]: React.ReactElement }> = { + replace_duplicate_incompatible: getExtraDrop({ type: 'duplicate', isIncompatible: true }), + duplicate_incompatible: getExtraDrop({ type: 'duplicate', isIncompatible: true }), + swap_incompatible: getExtraDrop({ type: 'swap', isIncompatible: true }), + replace_duplicate_compatible: getExtraDrop({ type: 'duplicate' }), + duplicate_compatible: getExtraDrop({ type: 'duplicate' }), + swap_compatible: getExtraDrop({ type: 'swap' }), +}; + +export const getCustomDropTarget = (dropType: DropType) => customDropTargetsMap?.[dropType] || null; + +export const getAdditionalClassesOnEnter = (dropType?: string) => { + if ( + dropType && + [ + 'field_replace', + 'replace_compatible', + 'replace_incompatible', + 'replace_duplicate_compatible', + 'replace_duplicate_incompatible', + ].includes(dropType) + ) { + return 'lnsDragDrop-isReplacing'; + } +}; + +export const getAdditionalClassesOnDroppable = (dropType?: string) => { + if ( + dropType && + [ + 'move_incompatible', + 'replace_incompatible', + 'swap_incompatible', + 'duplicate_incompatible', + 'replace_duplicate_incompatible', + ].includes(dropType) + ) { + return 'lnsDragDrop-notCompatible'; + } +}; diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/empty_dimension_button.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/empty_dimension_button.tsx similarity index 84% rename from x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/empty_dimension_button.tsx rename to x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/empty_dimension_button.tsx index a6ccac1427fbf..cb72b986430d6 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/empty_dimension_button.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/buttons/empty_dimension_button.tsx @@ -9,22 +9,17 @@ import React, { useMemo, useState, useEffect, useContext } from 'react'; import { EuiButtonEmpty } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; -import { generateId } from '../../../id_generator'; -import { DragDrop, DragDropIdentifier, DragContext } from '../../../drag_drop'; +import { generateId } from '../../../../id_generator'; +import { DragDrop, DragDropIdentifier, DragContext } from '../../../../drag_drop'; -import { Datasource, VisualizationDimensionGroupConfig, DropType } from '../../../types'; -import { LayerDatasourceDropProps } from './types'; +import { Datasource, VisualizationDimensionGroupConfig, DropType } from '../../../../types'; +import { LayerDatasourceDropProps } from '../types'; +import { getCustomDropTarget, getAdditionalClassesOnDroppable } from './drop_targets_utils'; const label = i18n.translate('xpack.lens.indexPattern.emptyDimensionButton', { defaultMessage: 'Empty dimension', }); -const getAdditionalClassesOnDroppable = (dropType?: string) => { - if (dropType === 'move_incompatible' || dropType === 'replace_incompatible') { - return 'lnsDragDrop-notCompatible'; - } -}; - export function EmptyDimensionButton({ group, groups, @@ -69,24 +64,29 @@ export function EmptyDimensionButton({ dimensionGroups: groups, }); - const dropType = dropProps?.dropType; + const dropTypes = dropProps?.dropTypes; const nextLabel = dropProps?.nextLabel; + const canDuplicate = !!( + dropTypes && + (dropTypes.includes('duplicate_compatible') || dropTypes.includes('duplicate_incompatible')) + ); + const value = useMemo( () => ({ columnId: newColumnId, groupId: group.groupId, layerId, id: newColumnId, - dropType, humanData: { label, groupLabel: group.groupLabel, position: itemIndex + 1, nextLabel: nextLabel || '', + canDuplicate, }, }), - [dropType, newColumnId, group.groupId, layerId, group.groupLabel, itemIndex, nextLabel] + [newColumnId, group.groupId, layerId, group.groupLabel, itemIndex, nextLabel, canDuplicate] ); const handleOnDrop = React.useCallback( @@ -101,7 +101,8 @@ export function EmptyDimensionButton({ value={value} order={[2, layerIndex, groupIndex, itemIndex]} onDrop={handleOnDrop} - dropType={dropType} + dropTypes={dropTypes} + getCustomDropTarget={getCustomDropTarget} >
    { }); mockDatasource.getDropProps.mockReturnValue({ - dropType: 'field_add', + dropTypes: ['field_add'], nextLabel: '', }); @@ -496,7 +496,12 @@ describe('LayerPanel', () => { }) ); - component.find('[data-test-subj="lnsGroup"] DragDrop .lnsDragDrop').first().simulate('drop'); + const dragDropElement = component + .find('[data-test-subj="lnsGroup"] DragDrop .lnsDragDrop') + .first(); + + dragDropElement.simulate('dragOver'); + dragDropElement.simulate('drop'); expect(mockDatasource.onDrop).toHaveBeenCalledWith( expect.objectContaining({ @@ -520,7 +525,7 @@ describe('LayerPanel', () => { }); mockDatasource.getDropProps.mockImplementation(({ columnId }) => - columnId !== 'a' ? { dropType: 'field_replace', nextLabel: '' } : undefined + columnId !== 'a' ? { dropTypes: ['field_replace'], nextLabel: '' } : undefined ); const draggingField = { @@ -548,11 +553,13 @@ describe('LayerPanel', () => { component.find('[data-test-subj="lnsGroup"] DragDrop').first().prop('dropType') ).toEqual(undefined); - component + const dragDropElement = component .find('[data-test-subj="lnsGroup"] DragDrop') .first() - .find('.lnsLayerPanel__dimension') - .simulate('drop'); + .find('.lnsLayerPanel__dimension'); + + dragDropElement.simulate('dragOver'); + dragDropElement.simulate('drop'); expect(mockDatasource.onDrop).not.toHaveBeenCalled(); }); @@ -582,7 +589,7 @@ describe('LayerPanel', () => { }); mockDatasource.getDropProps.mockReturnValue({ - dropType: 'replace_compatible', + dropTypes: ['replace_compatible'], nextLabel: '', }); @@ -611,7 +618,13 @@ describe('LayerPanel', () => { ); // Simulate drop on the pre-populated dimension - component.find('[data-test-subj="lnsGroupB"] DragDrop .lnsDragDrop').at(0).simulate('drop'); + + const dragDropElement = component + .find('[data-test-subj="lnsGroupB"] DragDrop .lnsDragDrop') + .at(0); + dragDropElement.simulate('dragOver'); + dragDropElement.simulate('drop'); + expect(mockDatasource.onDrop).toHaveBeenCalledWith( expect.objectContaining({ columnId: 'b', @@ -620,7 +633,14 @@ describe('LayerPanel', () => { ); // Simulate drop on the empty dimension - component.find('[data-test-subj="lnsGroupB"] DragDrop .lnsDragDrop').at(1).simulate('drop'); + + const updatedDragDropElement = component + .find('[data-test-subj="lnsGroupB"] DragDrop .lnsDragDrop') + .at(2); + + updatedDragDropElement.simulate('dragOver'); + updatedDragDropElement.simulate('drop'); + expect(mockDatasource.onDrop).toHaveBeenCalledWith( expect.objectContaining({ columnId: 'newid', @@ -712,12 +732,12 @@ describe('LayerPanel', () => { ); act(() => { - component.find(DragDrop).at(2).prop('onDrop')!(draggingOperation, 'duplicate_in_group'); + component.find(DragDrop).at(2).prop('onDrop')!(draggingOperation, 'duplicate_compatible'); }); expect(mockDatasource.onDrop).toHaveBeenCalledWith( expect.objectContaining({ columnId: 'newid', - dropType: 'duplicate_in_group', + dropType: 'duplicate_compatible', droppedItem: draggingOperation, }) ); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx index 21115285b5ce0..cf3c9099d4b0d 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx @@ -25,9 +25,9 @@ import { trackUiEvent } from '../../../lens_ui_telemetry'; import { LayerPanelProps, ActiveDimensionState } from './types'; import { DimensionContainer } from './dimension_container'; import { RemoveLayerButton } from './remove_layer_button'; -import { EmptyDimensionButton } from './empty_dimension_button'; -import { DimensionButton } from './dimension_button'; -import { DraggableDimensionButton } from './draggable_dimension_button'; +import { EmptyDimensionButton } from './buttons/empty_dimension_button'; +import { DimensionButton } from './buttons/dimension_button'; +import { DraggableDimensionButton } from './buttons/draggable_dimension_button'; import { useFocusUpdate } from './use_focus_update'; const initialActiveDimensionState = { diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/frame_layout.scss b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/frame_layout.scss index a8d8146afebb2..ffc0adf3e33ea 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/frame_layout.scss +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/frame_layout.scss @@ -28,7 +28,8 @@ // Leave out left padding so the left sidebar's focus states are visible outside of content bounds // This also means needing to add same amount of margin to page content and suggestion items padding: $euiSize $euiSize 0; - + position: relative; + z-index: $euiZLevel1; &:first-child { padding-left: $euiSize; } @@ -55,5 +56,7 @@ padding: $euiSize $euiSizeXS $euiSize $euiSize; overflow-x: hidden; overflow-y: scroll; + padding-left: $euiFormMaxWidth + $euiSize; + margin-left: -$euiFormMaxWidth; } } diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx index 5e5cfc3402f10..e741b9ee243db 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx @@ -955,7 +955,7 @@ describe('workspace_panel', () => { visualizationState: {}, }); initComponent(); - expect(instance.find(DragDrop).prop('dropType')).toBeTruthy(); + expect(instance.find(DragDrop).prop('dropTypes')).toBeTruthy(); }); it('should refuse to drop if there are no suggestions', () => { diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx index b15b659f2d221..8a0b9922c736b 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx @@ -354,7 +354,7 @@ export const InnerWorkspacePanel = React.memo(function InnerWorkspacePanel({ className="lnsWorkspacePanel__dragDrop" dataTestSubj="lnsWorkspace" draggable={false} - dropType={suggestionForDraggedField ? 'field_add' : undefined} + dropTypes={suggestionForDraggedField ? ['field_add'] : undefined} onDrop={onDrop} value={dropProps.value} order={dropProps.order} diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable.test.ts deleted file mode 100644 index 4f73454b68811..0000000000000 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable.test.ts +++ /dev/null @@ -1,1225 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { DataPublicPluginStart } from '../../../../../../src/plugins/data/public'; -import { IndexPatternDimensionEditorProps } from './dimension_panel'; -import { onDrop, getDropProps } from './droppable'; -import { DraggingIdentifier } from '../../drag_drop'; -import { IUiSettingsClient, SavedObjectsClientContract, HttpSetup, CoreSetup } from 'kibana/public'; -import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; -import { IndexPatternPrivateState } from '../types'; -import { documentField } from '../document_field'; -import { OperationMetadata, DropType } from '../../types'; -import { IndexPatternColumn, MedianIndexPatternColumn } from '../operations'; -import { getFieldByNameFactory } from '../pure_helpers'; - -const fields = [ - { - name: 'timestamp', - displayName: 'timestampLabel', - type: 'date', - aggregatable: true, - searchable: true, - exists: true, - }, - { - name: 'bytes', - displayName: 'bytes', - type: 'number', - aggregatable: true, - searchable: true, - exists: true, - }, - { - name: 'memory', - displayName: 'memory', - type: 'number', - aggregatable: true, - searchable: true, - exists: true, - }, - { - name: 'source', - displayName: 'source', - type: 'string', - aggregatable: true, - searchable: true, - exists: true, - }, - { - name: 'src', - displayName: 'src', - type: 'string', - aggregatable: true, - searchable: true, - exists: true, - }, - { - name: 'dest', - displayName: 'dest', - type: 'string', - aggregatable: true, - searchable: true, - exists: true, - }, - documentField, -]; - -const expectedIndexPatterns = { - foo: { - id: 'foo', - title: 'my-fake-index-pattern', - timeFieldName: 'timestamp', - hasExistence: true, - hasRestrictions: false, - fields, - getFieldByName: getFieldByNameFactory(fields), - }, -}; - -const defaultDragging = { - columnId: 'col2', - groupId: 'a', - layerId: 'first', - id: 'col2', - humanData: { - label: 'Column 2', - }, -}; - -const draggingField = { - field: { type: 'number', name: 'bytes', aggregatable: true }, - indexPatternId: 'foo', - id: 'bar', - humanData: { label: 'Label' }, -}; - -/** - * The datasource exposes four main pieces of code which are tested at - * an integration test level. The main reason for this fairly high level - * of testing is that there is a lot of UI logic that isn't easily - * unit tested, such as the transient invalid state. - * - * - Dimension trigger: Not tested here - * - Dimension editor component: First half of the tests - * - * - getDropProps: Returns drop types that are possible for the current dragging field or other dimension - * - onDrop: Correct application of drop logic - */ -describe('IndexPatternDimensionEditorPanel', () => { - let state: IndexPatternPrivateState; - let setState: jest.Mock; - let defaultProps: IndexPatternDimensionEditorProps; - - beforeEach(() => { - state = { - indexPatternRefs: [], - indexPatterns: expectedIndexPatterns, - currentIndexPatternId: 'foo', - isFirstExistenceFetch: false, - existingFields: { - 'my-fake-index-pattern': { - timestamp: true, - bytes: true, - memory: true, - source: true, - }, - }, - layers: { - first: { - indexPatternId: 'foo', - columnOrder: ['col1'], - columns: { - col1: { - label: 'Date histogram of timestamp', - customLabel: true, - dataType: 'date', - isBucketed: true, - - // Private - operationType: 'date_histogram', - params: { - interval: '1d', - }, - sourceField: 'timestamp', - }, - }, - incompleteColumns: {}, - }, - }, - }; - - setState = jest.fn(); - - defaultProps = { - state, - setState, - dateRange: { fromDate: 'now-1d', toDate: 'now' }, - columnId: 'col1', - layerId: 'first', - uniqueLabel: 'stuff', - groupId: 'group1', - filterOperations: () => true, - storage: {} as IStorageWrapper, - uiSettings: {} as IUiSettingsClient, - savedObjectsClient: {} as SavedObjectsClientContract, - http: {} as HttpSetup, - data: ({ - fieldFormats: ({ - getType: jest.fn().mockReturnValue({ - id: 'number', - title: 'Number', - }), - getDefaultType: jest.fn().mockReturnValue({ - id: 'bytes', - title: 'Bytes', - }), - } as unknown) as DataPublicPluginStart['fieldFormats'], - } as unknown) as DataPublicPluginStart, - core: {} as CoreSetup, - dimensionGroups: [], - }; - - jest.clearAllMocks(); - }); - - const groupId = 'a'; - - describe('getDropProps', () => { - it('returns undefined if no drag is happening', () => { - const dragging = { - name: 'bar', - id: 'bar', - humanData: { label: 'Label' }, - }; - expect(getDropProps({ ...defaultProps, groupId, dragging })).toBe(undefined); - }); - - it('returns undefined if the dragged item has no field', () => { - const dragging = { - name: 'bar', - id: 'bar', - humanData: { label: 'Label' }, - }; - expect( - getDropProps({ - ...defaultProps, - groupId, - dragging, - }) - ).toBe(undefined); - }); - - it('returns undefined if field is not supported by filterOperations', () => { - expect( - getDropProps({ - ...defaultProps, - groupId, - dragging: { - indexPatternId: 'foo', - field: { type: 'string', name: 'mystring', aggregatable: true }, - id: 'mystring', - humanData: { label: 'Label' }, - }, - filterOperations: () => false, - }) - ).toBe(undefined); - }); - - it('returns remove_add if the field is supported by filterOperations and the dropTarget is an existing column', () => { - expect( - getDropProps({ - ...defaultProps, - groupId, - dragging: draggingField, - filterOperations: (op: OperationMetadata) => op.dataType === 'number', - }) - ).toEqual({ dropType: 'field_replace', nextLabel: 'Intervals' }); - }); - - it('returns undefined if the field belongs to another index pattern', () => { - expect( - getDropProps({ - ...defaultProps, - groupId, - dragging: { - field: { type: 'number', name: 'bar', aggregatable: true }, - indexPatternId: 'foo2', - id: 'bar', - humanData: { label: 'Label' }, - }, - filterOperations: (op: OperationMetadata) => op.dataType === 'number', - }) - ).toBe(undefined); - }); - - it('returns undefined if the dragged field is already in use by this operation', () => { - expect( - getDropProps({ - ...defaultProps, - groupId, - dragging: { - field: { - name: 'timestamp', - displayName: 'timestampLabel', - type: 'date', - aggregatable: true, - searchable: true, - exists: true, - }, - indexPatternId: 'foo', - id: 'bar', - humanData: { label: 'Label' }, - }, - }) - ).toBe(undefined); - }); - - it('returns move if the dragged column is compatible', () => { - expect( - getDropProps({ - ...defaultProps, - groupId, - dragging: { - columnId: 'col1', - groupId: 'b', - layerId: 'first', - id: 'col1', - humanData: { label: 'Label' }, - }, - columnId: 'col2', - }) - ).toEqual({ dropType: 'move_compatible' }); - }); - - it('returns undefined if the dragged column from different group uses the same field as the dropTarget', () => { - const testState = { ...state }; - testState.layers.first = { - indexPatternId: 'foo', - columnOrder: ['col1', 'col2', 'col3'], - columns: { - col1: testState.layers.first.columns.col1, - - col2: { - label: 'Date histogram of timestamp (1)', - customLabel: true, - dataType: 'date', - isBucketed: true, - - // Private - operationType: 'date_histogram', - params: { - interval: '1d', - }, - sourceField: 'timestamp', - }, - }, - }; - - expect( - getDropProps({ - ...defaultProps, - groupId, - dragging: { - columnId: 'col1', - groupId: 'b', - layerId: 'first', - id: 'col1', - humanData: { label: 'Label' }, - }, - - columnId: 'col2', - }) - ).toEqual(undefined); - }); - - it('returns replace_incompatible if dropping column to existing incompatible column', () => { - const testState = { ...state }; - testState.layers.first = { - indexPatternId: 'foo', - columnOrder: ['col1', 'col2', 'col3'], - columns: { - col1: testState.layers.first.columns.col1, - - col2: { - label: 'Sum of bytes', - dataType: 'number', - isBucketed: false, - - // Private - operationType: 'sum', - sourceField: 'bytes', - }, - }, - }; - - expect( - getDropProps({ - ...defaultProps, - groupId, - dragging: { - columnId: 'col1', - groupId: 'b', - layerId: 'first', - id: 'col1', - humanData: { label: 'Label' }, - }, - columnId: 'col2', - filterOperations: (op: OperationMetadata) => op.isBucketed === false, - }) - ).toEqual({ dropType: 'replace_incompatible', nextLabel: 'Unique count' }); - }); - }); - describe('onDrop', () => { - it('appends the dropped column when a field is dropped', () => { - onDrop({ - ...defaultProps, - droppedItem: draggingField, - dropType: 'field_replace', - columnId: 'col2', - filterOperations: (op: OperationMetadata) => op.dataType === 'number', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...state, - layers: { - first: { - ...state.layers.first, - columnOrder: ['col1', 'col2'], - columns: { - ...state.layers.first.columns, - col2: expect.objectContaining({ - dataType: 'number', - sourceField: 'bytes', - }), - }, - }, - }, - }); - }); - - it('selects the specific operation that was valid on drop', () => { - onDrop({ - ...defaultProps, - droppedItem: draggingField, - columnId: 'col2', - filterOperations: (op: OperationMetadata) => op.isBucketed, - dropType: 'field_replace', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...state, - layers: { - first: { - ...state.layers.first, - columnOrder: ['col1', 'col2'], - columns: { - ...state.layers.first.columns, - col2: expect.objectContaining({ - dataType: 'number', - sourceField: 'bytes', - }), - }, - }, - }, - }); - }); - - it('updates a column when a field is dropped', () => { - onDrop({ - ...defaultProps, - droppedItem: draggingField, - filterOperations: (op: OperationMetadata) => op.dataType === 'number', - dropType: 'field_replace', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...state, - layers: { - first: expect.objectContaining({ - columns: expect.objectContaining({ - col1: expect.objectContaining({ - dataType: 'number', - sourceField: 'bytes', - }), - }), - }), - }, - }); - }); - - it('keeps the operation when dropping a different compatible field', () => { - onDrop({ - ...defaultProps, - droppedItem: { - field: { name: 'memory', type: 'number', aggregatable: true }, - indexPatternId: 'foo', - id: '1', - }, - state: { - ...state, - layers: { - first: { - indexPatternId: 'foo', - columnOrder: ['col1'], - columns: { - col1: { - label: 'Sum of bytes', - dataType: 'number', - isBucketed: false, - - // Private - operationType: 'sum', - sourceField: 'bytes', - }, - }, - }, - }, - }, - dropType: 'field_replace', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...state, - layers: { - first: expect.objectContaining({ - columns: expect.objectContaining({ - col1: expect.objectContaining({ - operationType: 'sum', - dataType: 'number', - sourceField: 'memory', - }), - }), - }), - }, - }); - }); - - it('updates the column id when moving an operation to an empty dimension', () => { - const dragging = { - columnId: 'col1', - groupId: 'a', - layerId: 'first', - id: 'bar', - humanData: { label: 'Label' }, - }; - - onDrop({ - ...defaultProps, - droppedItem: dragging, - columnId: 'col2', - dropType: 'move_compatible', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...state, - layers: { - first: { - ...state.layers.first, - columnOrder: ['col2'], - columns: { - col2: state.layers.first.columns.col1, - }, - }, - }, - }); - }); - - it('replaces an operation when moving to a populated dimension', () => { - const testState = { ...state }; - testState.layers.first = { - indexPatternId: 'foo', - columnOrder: ['col1', 'col2', 'col3'], - columns: { - col1: testState.layers.first.columns.col1, - - col2: { - label: 'Top values of src', - dataType: 'string', - isBucketed: true, - - // Private - operationType: 'terms', - params: { - orderBy: { type: 'column', columnId: 'col3' }, - orderDirection: 'desc', - size: 10, - }, - sourceField: 'src', - }, - col3: { - label: 'Count', - dataType: 'number', - isBucketed: false, - - // Private - operationType: 'count', - sourceField: 'Records', - }, - }, - }; - - onDrop({ - ...defaultProps, - droppedItem: defaultDragging, - state: testState, - dropType: 'replace_compatible', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...testState, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['col1', 'col3'], - columns: { - col1: testState.layers.first.columns.col2, - col3: testState.layers.first.columns.col3, - }, - }, - }, - }); - }); - - describe('dimension group aware ordering and copying', () => { - let dragging: DraggingIdentifier; - let testState: IndexPatternPrivateState; - beforeEach(() => { - dragging = { - columnId: 'col2', - groupId: 'b', - layerId: 'first', - id: 'col2', - humanData: { - label: '', - }, - }; - testState = { ...state }; - testState.layers.first = { - indexPatternId: 'foo', - columnOrder: ['col1', 'col2', 'col3', 'col4'], - columns: { - col1: testState.layers.first.columns.col1, - col2: { - label: 'Top values of src', - dataType: 'string', - isBucketed: true, - - // Private - operationType: 'terms', - params: { - orderBy: { type: 'alphabetical' }, - orderDirection: 'desc', - size: 10, - }, - sourceField: 'src', - }, - col3: { - label: 'Top values of dest', - dataType: 'string', - isBucketed: true, - - // Private - operationType: 'terms', - params: { - orderBy: { type: 'alphabetical' }, - orderDirection: 'desc', - size: 10, - }, - sourceField: 'dest', - }, - col4: { - label: 'Median of bytes', - dataType: 'number', - isBucketed: false, - - // Private - operationType: 'median', - sourceField: 'bytes', - }, - }, - }; - }); - const dimensionGroups = [ - { - accessors: [], - groupId: 'a', - supportsMoreColumns: true, - hideGrouping: true, - groupLabel: '', - filterOperations: () => false, - }, - { - accessors: [{ columnId: 'col1' }, { columnId: 'col2' }, { columnId: 'col3' }], - groupId: 'b', - supportsMoreColumns: true, - hideGrouping: true, - groupLabel: '', - filterOperations: () => false, - }, - { - accessors: [{ columnId: 'col4' }], - groupId: 'c', - supportsMoreColumns: true, - hideGrouping: true, - groupLabel: '', - filterOperations: () => false, - }, - ]; - - it('respects groups on moving operations from one group to another', () => { - // config: - // a: - // b: col1, col2, col3 - // c: col4 - // dragging col2 into newCol in group a - onDrop({ - ...defaultProps, - columnId: 'newCol', - droppedItem: dragging, - state: testState, - groupId: 'a', - dimensionGroups, - dropType: 'move_compatible', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...testState, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['newCol', 'col1', 'col3', 'col4'], - columns: { - newCol: testState.layers.first.columns.col2, - col1: testState.layers.first.columns.col1, - col3: testState.layers.first.columns.col3, - col4: testState.layers.first.columns.col4, - }, - }, - }, - }); - }); - - it('respects groups on moving operations from one group to another with overwrite', () => { - // config: - // a: col1, - // b: col2, col3 - // c: col4 - // dragging col3 onto col1 in group a - const draggingCol3 = { - columnId: 'col3', - groupId: 'b', - layerId: 'first', - id: 'col3', - humanData: { - label: '', - }, - }; - onDrop({ - ...defaultProps, - columnId: 'col1', - droppedItem: draggingCol3, - state: testState, - groupId: 'a', - dimensionGroups: [ - { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, - { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, - { ...dimensionGroups[2] }, - ], - dropType: 'move_compatible', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...testState, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['col1', 'col2', 'col4'], - columns: { - col1: testState.layers.first.columns.col3, - col2: testState.layers.first.columns.col2, - col4: testState.layers.first.columns.col4, - }, - }, - }, - }); - }); - - it('moves newly created dimension to the bottom of the current group', () => { - // config: - // a: col1 - // b: col2, col3 - // c: col4 - // dragging col1 into newCol in group b - const draggingCol1 = { - columnId: 'col1', - groupId: 'a', - layerId: 'first', - id: 'col1', - humanData: { - label: '', - }, - }; - onDrop({ - ...defaultProps, - columnId: 'newCol', - dropType: 'move_compatible', - droppedItem: draggingCol1, - state: testState, - groupId: 'b', - dimensionGroups: [ - { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, - { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, - { ...dimensionGroups[2] }, - ], - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...testState, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['col2', 'col3', 'newCol', 'col4'], - columns: { - newCol: testState.layers.first.columns.col1, - col2: testState.layers.first.columns.col2, - col3: testState.layers.first.columns.col3, - col4: testState.layers.first.columns.col4, - }, - }, - }, - }); - }); - - it('appends the dropped column in the right place when a field is dropped', () => { - // config: - // a: - // b: col1, col2, col3 - // c: col4 - // dragging field into newCol in group a - const draggingBytesField = { - field: { type: 'number', name: 'bytes', aggregatable: true }, - indexPatternId: 'foo', - id: 'bar', - humanData: { - label: '', - }, - }; - - onDrop({ - ...defaultProps, - droppedItem: draggingBytesField, - columnId: 'newCol', - filterOperations: (op: OperationMetadata) => op.dataType === 'number', - groupId: 'a', - dimensionGroups, - dropType: 'field_add', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...state, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['newCol', 'col1', 'col2', 'col3', 'col4'], - columns: { - newCol: expect.objectContaining({ - dataType: 'number', - sourceField: 'bytes', - }), - col1: testState.layers.first.columns.col1, - col2: testState.layers.first.columns.col2, - col3: testState.layers.first.columns.col3, - col4: testState.layers.first.columns.col4, - }, - incompleteColumns: {}, - }, - }, - }); - }); - - it('appends the dropped column in the right place respecting custom nestingOrder', () => { - // config: - // a: - // b: col1, col2, col3 - // c: col4 - // dragging field into newCol in group a - const draggingBytesField = { - field: { type: 'number', name: 'bytes', aggregatable: true }, - indexPatternId: 'foo', - id: 'bar', - humanData: { - label: '', - }, - }; - - onDrop({ - ...defaultProps, - droppedItem: draggingBytesField, - columnId: 'newCol', - filterOperations: (op: OperationMetadata) => op.dataType === 'number', - groupId: 'a', - dimensionGroups: [ - // a and b are ordered in reverse visually, but nesting order keeps them in place for column order - { ...dimensionGroups[1], nestingOrder: 1 }, - { ...dimensionGroups[0], nestingOrder: 0 }, - { ...dimensionGroups[2] }, - ], - dropType: 'field_add', - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...state, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['newCol', 'col1', 'col2', 'col3', 'col4'], - columns: { - newCol: expect.objectContaining({ - dataType: 'number', - sourceField: 'bytes', - }), - col1: testState.layers.first.columns.col1, - col2: testState.layers.first.columns.col2, - col3: testState.layers.first.columns.col3, - col4: testState.layers.first.columns.col4, - }, - incompleteColumns: {}, - }, - }, - }); - }); - - it('copies column to the bottom of the current group', () => { - // config: - // a: col1 - // b: col2, col3 - // c: col4 - // copying col1 within group a - const draggingCol1 = { - columnId: 'col1', - groupId: 'a', - layerId: 'first', - id: 'col1', - humanData: { - label: '', - }, - }; - onDrop({ - ...defaultProps, - columnId: 'newCol', - dropType: 'duplicate_in_group', - droppedItem: draggingCol1, - state: testState, - groupId: 'a', - dimensionGroups: [ - { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, - { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, - { ...dimensionGroups[2] }, - ], - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...testState, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['col1', 'newCol', 'col2', 'col3', 'col4'], - columns: { - col1: testState.layers.first.columns.col1, - newCol: testState.layers.first.columns.col1, - col2: testState.layers.first.columns.col2, - col3: testState.layers.first.columns.col3, - col4: testState.layers.first.columns.col4, - }, - }, - }, - }); - }); - - it('moves incompatible column to the bottom of the target group', () => { - // config: - // a: col1 - // b: col2, col3 - // c: col4 - // dragging col4 into newCol in group a - const draggingCol4 = { - columnId: 'col4', - groupId: 'c', - layerId: 'first', - id: 'col4', - humanData: { - label: '', - }, - }; - onDrop({ - ...defaultProps, - columnId: 'newCol', - dropType: 'move_incompatible', - droppedItem: draggingCol4, - state: testState, - groupId: 'a', - dimensionGroups: [ - { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, - { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, - { ...dimensionGroups[2] }, - ], - }); - - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith({ - ...testState, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['col1', 'newCol', 'col2', 'col3'], - columns: { - col1: testState.layers.first.columns.col1, - newCol: expect.objectContaining({ - sourceField: (testState.layers.first.columns.col4 as MedianIndexPatternColumn) - .sourceField, - }), - col2: testState.layers.first.columns.col2, - col3: testState.layers.first.columns.col3, - }, - incompleteColumns: {}, - }, - }, - }); - }); - }); - - it('if dnd is reorder, it correctly reorders columns', () => { - const testState: IndexPatternPrivateState = { - ...state, - layers: { - first: { - indexPatternId: 'foo', - columnOrder: ['col1', 'col2', 'col3'], - columns: { - col1: { - label: 'Date histogram of timestamp', - dataType: 'date', - isBucketed: true, - operationType: 'date_histogram', - params: { - interval: '1d', - }, - sourceField: 'timestamp', - }, - col2: { - label: 'Top values of bar', - dataType: 'number', - isBucketed: true, - operationType: 'terms', - sourceField: 'bar', - params: { - orderBy: { type: 'alphabetical' }, - orderDirection: 'asc', - size: 5, - }, - }, - col3: { - operationType: 'average', - sourceField: 'memory', - label: 'average of memory', - dataType: 'number', - isBucketed: false, - }, - }, - }, - }, - }; - - const metricDragging = { - columnId: 'col3', - groupId: 'a', - layerId: 'first', - id: 'col3', - humanData: { label: 'Label' }, - }; - - onDrop({ - ...defaultProps, - droppedItem: metricDragging, - state: testState, - dropType: 'duplicate_in_group', - columnId: 'newCol', - }); - // metric is appended - expect(setState).toHaveBeenCalledWith({ - ...testState, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['col1', 'col2', 'col3', 'newCol'], - columns: { - col1: testState.layers.first.columns.col1, - col2: testState.layers.first.columns.col2, - col3: testState.layers.first.columns.col3, - newCol: testState.layers.first.columns.col3, - }, - }, - }, - }); - - const bucketDragging = { - columnId: 'col2', - groupId: 'a', - layerId: 'first', - id: 'col2', - humanData: { label: 'Label' }, - }; - - onDrop({ - ...defaultProps, - droppedItem: bucketDragging, - state: testState, - dropType: 'duplicate_in_group', - columnId: 'newCol', - }); - - // bucket is placed after the last existing bucket - expect(setState).toHaveBeenCalledWith({ - ...testState, - layers: { - first: { - ...testState.layers.first, - columnOrder: ['col1', 'col2', 'newCol', 'col3'], - columns: { - col1: testState.layers.first.columns.col1, - col2: testState.layers.first.columns.col2, - newCol: testState.layers.first.columns.col2, - col3: testState.layers.first.columns.col3, - }, - }, - }, - }); - }); - - it('if dropType is reorder, it correctly reorders columns', () => { - const dragging = { - columnId: 'col1', - groupId: 'a', - layerId: 'first', - id: 'col1', - humanData: { label: 'Label' }, - }; - const testState = { - ...state, - layers: { - first: { - indexPatternId: 'foo', - columnOrder: ['col1', 'col2', 'col3'], - columns: { - col1: { - label: 'Date histogram of timestamp', - dataType: 'date', - isBucketed: true, - } as IndexPatternColumn, - col2: { - label: 'Top values of bar', - dataType: 'number', - isBucketed: true, - } as IndexPatternColumn, - col3: { - label: 'Top values of memory', - dataType: 'number', - isBucketed: true, - } as IndexPatternColumn, - }, - }, - }, - }; - - const defaultReorderDropParams = { - ...defaultProps, - dragging, - droppedItem: dragging, - state: testState, - filterOperations: (op: OperationMetadata) => op.dataType === 'number', - dropType: 'reorder' as DropType, - }; - - const stateWithColumnOrder = (columnOrder: string[]) => { - return { - ...testState, - layers: { - first: { - ...testState.layers.first, - columnOrder, - columns: { - ...testState.layers.first.columns, - }, - }, - }, - }; - }; - - // first element to last - onDrop({ - ...defaultReorderDropParams, - columnId: 'col3', - }); - expect(setState).toBeCalledTimes(1); - expect(setState).toHaveBeenCalledWith(stateWithColumnOrder(['col2', 'col3', 'col1'])); - - // last element to first - onDrop({ - ...defaultReorderDropParams, - columnId: 'col1', - droppedItem: { - columnId: 'col3', - groupId: 'a', - layerId: 'first', - id: 'col3', - }, - }); - expect(setState).toBeCalledTimes(2); - expect(setState).toHaveBeenCalledWith(stateWithColumnOrder(['col3', 'col1', 'col2'])); - - // middle column to first - onDrop({ - ...defaultReorderDropParams, - columnId: 'col1', - droppedItem: { - columnId: 'col2', - groupId: 'a', - layerId: 'first', - id: 'col2', - }, - }); - expect(setState).toBeCalledTimes(3); - expect(setState).toHaveBeenCalledWith(stateWithColumnOrder(['col2', 'col1', 'col3'])); - - // middle column to last - onDrop({ - ...defaultReorderDropParams, - columnId: 'col3', - droppedItem: { - columnId: 'col2', - groupId: 'a', - layerId: 'first', - id: 'col2', - }, - }); - expect(setState).toBeCalledTimes(4); - expect(setState).toHaveBeenCalledWith(stateWithColumnOrder(['col1', 'col3', 'col2'])); - }); - }); -}); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable.ts deleted file mode 100644 index e846db718f1d3..0000000000000 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable.ts +++ /dev/null @@ -1,386 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { - DatasourceDimensionDropProps, - DatasourceDimensionDropHandlerProps, - isDraggedOperation, - DraggedOperation, - DropType, -} from '../../types'; -import { IndexPatternColumn } from '../indexpattern'; -import { - insertOrReplaceColumn, - deleteColumn, - getOperationTypesForField, - getColumnOrder, - reorderByGroups, - getOperationDisplay, -} from '../operations'; -import { mergeLayer } from '../state_helpers'; -import { hasField, isDraggedField } from '../utils'; -import { IndexPatternPrivateState, DraggedField } from '../types'; -import { trackUiEvent } from '../../lens_ui_telemetry'; -import { DragContextState } from '../../drag_drop/providers'; - -type DropHandlerProps = DatasourceDimensionDropHandlerProps & { - droppedItem: T; -}; - -const operationLabels = getOperationDisplay(); - -export function getDropProps( - props: DatasourceDimensionDropProps & { - dragging: DragContextState['dragging']; - groupId: string; - } -): { dropType: DropType; nextLabel?: string } | undefined { - const { dragging } = props; - if (!dragging) { - return; - } - - const layerIndexPatternId = props.state.layers[props.layerId].indexPatternId; - - const currentColumn = props.state.layers[props.layerId].columns[props.columnId]; - if (isDraggedField(dragging)) { - const operationsForNewField = getOperationTypesForField(dragging.field, props.filterOperations); - - if (!!(layerIndexPatternId === dragging.indexPatternId && operationsForNewField.length)) { - const highestPriorityOperationLabel = operationLabels[operationsForNewField[0]].displayName; - if (!currentColumn) { - return { dropType: 'field_add', nextLabel: highestPriorityOperationLabel }; - } else if ( - (hasField(currentColumn) && currentColumn.sourceField !== dragging.field.name) || - !hasField(currentColumn) - ) { - const persistingOperationLabel = - currentColumn && - operationsForNewField.includes(currentColumn.operationType) && - operationLabels[currentColumn.operationType].displayName; - - return { - dropType: 'field_replace', - nextLabel: persistingOperationLabel || highestPriorityOperationLabel, - }; - } - } - return; - } - - if ( - isDraggedOperation(dragging) && - dragging.layerId === props.layerId && - props.columnId !== dragging.columnId - ) { - // same group - if (props.groupId === dragging.groupId) { - if (currentColumn) { - return { dropType: 'reorder' }; - } - return { dropType: 'duplicate_in_group' }; - } - - // compatible group - const op = props.state.layers[dragging.layerId].columns[dragging.columnId]; - if ( - !op || - (currentColumn && - hasField(currentColumn) && - hasField(op) && - currentColumn.sourceField === op.sourceField) - ) { - return; - } - if (props.filterOperations(op)) { - if (currentColumn) { - return { dropType: 'replace_compatible' }; // in the future also 'swap_compatible' and 'duplicate_compatible' - } else { - return { dropType: 'move_compatible' }; // in the future also 'duplicate_compatible' - } - } - - // suggest - const field = - hasField(op) && props.state.indexPatterns[layerIndexPatternId].getFieldByName(op.sourceField); - const operationsForNewField = field && getOperationTypesForField(field, props.filterOperations); - - if (operationsForNewField && operationsForNewField?.length) { - const highestPriorityOperationLabel = operationLabels[operationsForNewField[0]].displayName; - - if (currentColumn) { - const persistingOperationLabel = - currentColumn && - operationsForNewField.includes(currentColumn.operationType) && - operationLabels[currentColumn.operationType].displayName; - return { - dropType: 'replace_incompatible', - nextLabel: persistingOperationLabel || highestPriorityOperationLabel, - }; // in the future also 'swap_incompatible', 'duplicate_incompatible' - } else { - return { - dropType: 'move_incompatible', - nextLabel: highestPriorityOperationLabel, - }; // in the future also 'duplicate_incompatible' - } - } - } -} - -export function onDrop(props: DatasourceDimensionDropHandlerProps) { - const { droppedItem, dropType } = props; - - if (dropType === 'field_add' || dropType === 'field_replace') { - return operationOnDropMap[dropType]({ - ...props, - droppedItem: droppedItem as DraggedField, - }); - } - return operationOnDropMap[dropType]({ - ...props, - droppedItem: droppedItem as DraggedOperation, - }); -} - -const operationOnDropMap = { - field_add: onFieldDrop, - field_replace: onFieldDrop, - reorder: onReorderDrop, - duplicate_in_group: onSameGroupDuplicateDrop, - move_compatible: onMoveDropToCompatibleGroup, - replace_compatible: onMoveDropToCompatibleGroup, - move_incompatible: onMoveDropToNonCompatibleGroup, - replace_incompatible: onMoveDropToNonCompatibleGroup, -}; - -function reorderElements(items: string[], dest: string, src: string) { - const result = items.filter((c) => c !== src); - const destIndex = items.findIndex((c) => c === src); - const destPosition = result.indexOf(dest); - - const srcIndex = items.findIndex((c) => c === dest); - - result.splice(destIndex < srcIndex ? destPosition + 1 : destPosition, 0, src); - return result; -} - -function onReorderDrop({ - columnId, - setState, - state, - layerId, - droppedItem, -}: DropHandlerProps) { - setState( - mergeLayer({ - state, - layerId, - newLayer: { - columnOrder: reorderElements( - state.layers[layerId].columnOrder, - columnId, - droppedItem.columnId - ), - }, - }) - ); - - return true; -} - -function onMoveDropToNonCompatibleGroup(props: DropHandlerProps) { - const { columnId, setState, state, layerId, droppedItem, dimensionGroups, groupId } = props; - - const layer = state.layers[layerId]; - const op = { ...layer.columns[droppedItem.columnId] }; - const field = - hasField(op) && state.indexPatterns[layer.indexPatternId].getFieldByName(op.sourceField); - if (!field) { - return false; - } - - const operationsForNewField = getOperationTypesForField(field, props.filterOperations); - - if (!operationsForNewField.length) { - return false; - } - - const currentIndexPattern = state.indexPatterns[layer.indexPatternId]; - // Detects if we can change the field only, otherwise change field + operation - - const selectedColumn: IndexPatternColumn | null = layer.columns[columnId] || null; - - const fieldIsCompatibleWithCurrent = - selectedColumn && operationsForNewField.includes(selectedColumn.operationType); - - const newLayer = insertOrReplaceColumn({ - layer: deleteColumn({ - layer, - columnId: droppedItem.columnId, - indexPattern: currentIndexPattern, - }), - columnId, - indexPattern: currentIndexPattern, - op: fieldIsCompatibleWithCurrent ? selectedColumn.operationType : operationsForNewField[0], - field, - visualizationGroups: dimensionGroups, - targetGroup: groupId, - }); - - trackUiEvent('drop_onto_dimension'); - setState( - mergeLayer({ - state, - layerId, - newLayer: { - ...newLayer, - }, - }) - ); - - return { deleted: droppedItem.columnId }; -} - -function onSameGroupDuplicateDrop({ - columnId, - setState, - state, - layerId, - droppedItem, - dimensionGroups, - groupId, -}: DropHandlerProps) { - const layer = state.layers[layerId]; - - const op = { ...layer.columns[droppedItem.columnId] }; - const newColumns = { - ...layer.columns, - [columnId]: op, - }; - - const newColumnOrder = [...layer.columnOrder]; - // put a new bucketed dimension just in front of the metric dimensions, a metric dimension in the back of the array - // then reorder based on dimension groups if necessary - const insertionIndex = op.isBucketed - ? newColumnOrder.findIndex((id) => !newColumns[id].isBucketed) - : newColumnOrder.length; - newColumnOrder.splice(insertionIndex, 0, columnId); - - const newLayer = { - ...layer, - columnOrder: newColumnOrder, - columns: newColumns, - }; - - const updatedColumnOrder = getColumnOrder(newLayer); - - reorderByGroups(dimensionGroups, groupId, updatedColumnOrder, columnId); - - // Time to replace - setState( - mergeLayer({ - state, - layerId, - newLayer: { - columnOrder: updatedColumnOrder, - columns: newColumns, - }, - }) - ); - return true; -} - -function onMoveDropToCompatibleGroup({ - columnId, - setState, - state, - layerId, - droppedItem, - dimensionGroups, - groupId, -}: DropHandlerProps) { - const layer = state.layers[layerId]; - const op = { ...layer.columns[droppedItem.columnId] }; - const newColumns = { ...layer.columns }; - delete newColumns[droppedItem.columnId]; - newColumns[columnId] = op; - - const newColumnOrder = [...layer.columnOrder]; - const oldIndex = newColumnOrder.findIndex((c) => c === droppedItem.columnId); - const newIndex = newColumnOrder.findIndex((c) => c === columnId); - - if (newIndex === -1) { - // for newly created columns, remove the old entry and add the last one to the end - newColumnOrder.splice(oldIndex, 1); - newColumnOrder.push(columnId); - } else { - // for drop to replace, reuse the same index - newColumnOrder[oldIndex] = columnId; - } - const newLayer = { - ...layer, - columnOrder: newColumnOrder, - columns: newColumns, - }; - - const updatedColumnOrder = getColumnOrder(newLayer); - - reorderByGroups(dimensionGroups, groupId, updatedColumnOrder, columnId); - - // Time to replace - setState( - mergeLayer({ - state, - layerId, - - newLayer: { - columnOrder: updatedColumnOrder, - columns: newColumns, - }, - }) - ); - return { deleted: droppedItem.columnId }; -} - -function onFieldDrop(props: DropHandlerProps) { - const { columnId, setState, state, layerId, droppedItem, groupId, dimensionGroups } = props; - - const operationsForNewField = getOperationTypesForField( - droppedItem.field, - props.filterOperations - ); - - if (!isDraggedField(droppedItem) || !operationsForNewField.length) { - // TODO: What do we do if we couldn't find a column? - return false; - } - - const layer = state.layers[layerId]; - - const selectedColumn: IndexPatternColumn | null = layer.columns[columnId] || null; - const currentIndexPattern = state.indexPatterns[layer.indexPatternId]; - - // Detects if we can change the field only, otherwise change field + operation - const fieldIsCompatibleWithCurrent = - selectedColumn && operationsForNewField.includes(selectedColumn.operationType); - - const newLayer = insertOrReplaceColumn({ - layer, - columnId, - indexPattern: currentIndexPattern, - op: fieldIsCompatibleWithCurrent ? selectedColumn.operationType : operationsForNewField[0], - field: droppedItem.field, - visualizationGroups: dimensionGroups, - targetGroup: groupId, - }); - - trackUiEvent('drop_onto_dimension'); - const hasData = Object.values(state.layers).some(({ columns }) => columns.length); - trackUiEvent(hasData ? 'drop_non_empty' : 'drop_empty'); - setState(mergeLayer({ state, layerId, newLayer })); - return true; -} diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts new file mode 100644 index 0000000000000..051feb331aec4 --- /dev/null +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts @@ -0,0 +1,1556 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; +import { IndexPatternDimensionEditorProps } from '../dimension_panel'; +import { onDrop } from './on_drop_handler'; +import { getDropProps } from './get_drop_props'; +import { IUiSettingsClient, SavedObjectsClientContract, HttpSetup, CoreSetup } from 'kibana/public'; +import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; +import { IndexPatternLayer, IndexPatternPrivateState } from '../../types'; +import { documentField } from '../../document_field'; +import { OperationMetadata, DropType } from '../../../types'; +import { IndexPatternColumn, MedianIndexPatternColumn } from '../../operations'; +import { getFieldByNameFactory } from '../../pure_helpers'; + +const fields = [ + { + name: 'timestamp', + displayName: 'timestampLabel', + type: 'date', + aggregatable: true, + searchable: true, + exists: true, + }, + { + name: 'bytes', + displayName: 'bytes', + type: 'number', + aggregatable: true, + searchable: true, + exists: true, + }, + { + name: 'memory', + displayName: 'memory', + type: 'number', + aggregatable: true, + searchable: true, + exists: true, + }, + { + name: 'source', + displayName: 'source', + type: 'string', + aggregatable: true, + searchable: true, + exists: true, + }, + { + name: 'src', + displayName: 'src', + type: 'string', + aggregatable: true, + searchable: true, + exists: true, + }, + { + name: 'dest', + displayName: 'dest', + type: 'string', + aggregatable: true, + searchable: true, + exists: true, + }, + documentField, +]; + +const expectedIndexPatterns = { + foo: { + id: 'foo', + title: 'my-fake-index-pattern', + timeFieldName: 'timestamp', + hasExistence: true, + hasRestrictions: false, + fields, + getFieldByName: getFieldByNameFactory(fields), + }, +}; + +const dimensionGroups = [ + { + accessors: [], + groupId: 'a', + supportsMoreColumns: true, + hideGrouping: true, + groupLabel: '', + filterOperations: (op: OperationMetadata) => op.isBucketed, + }, + { + accessors: [{ columnId: 'col1' }, { columnId: 'col2' }, { columnId: 'col3' }], + groupId: 'b', + supportsMoreColumns: true, + hideGrouping: true, + groupLabel: '', + filterOperations: (op: OperationMetadata) => op.isBucketed, + }, + { + accessors: [{ columnId: 'col4' }], + groupId: 'c', + supportsMoreColumns: true, + hideGrouping: true, + groupLabel: '', + filterOperations: (op: OperationMetadata) => op.isBucketed === false, + }, +]; + +const oneColumnLayer: IndexPatternLayer = { + indexPatternId: 'foo', + columnOrder: ['col1'], + columns: { + col1: { + label: 'Date histogram of timestamp', + customLabel: true, + dataType: 'date', + isBucketed: true, + + // Private + operationType: 'date_histogram', + params: { + interval: '1d', + }, + sourceField: 'timestamp', + }, + }, + incompleteColumns: {}, +}; + +const multipleColumnsLayer: IndexPatternLayer = { + indexPatternId: 'foo', + columnOrder: ['col1', 'col2', 'col3', 'col4'], + columns: { + col1: oneColumnLayer.columns.col1, + col2: { + label: 'Top values of src', + dataType: 'string', + isBucketed: true, + // Private + operationType: 'terms', + params: { + orderBy: { type: 'alphabetical' }, + orderDirection: 'desc', + size: 10, + }, + sourceField: 'src', + }, + col3: { + label: 'Top values of dest', + dataType: 'string', + isBucketed: true, + + // Private + operationType: 'terms', + params: { + orderBy: { type: 'alphabetical' }, + orderDirection: 'desc', + size: 10, + }, + sourceField: 'dest', + }, + col4: { + label: 'Median of bytes', + dataType: 'number', + isBucketed: false, + + // Private + operationType: 'median', + sourceField: 'bytes', + }, + }, +}; + +const draggingField = { + field: { type: 'number', name: 'bytes', aggregatable: true }, + indexPatternId: 'foo', + id: 'bar', + humanData: { label: 'Label' }, +}; + +const draggingCol1 = { + columnId: 'col1', + groupId: 'a', + layerId: 'first', + id: 'col1', + humanData: { label: 'Column 1' }, +}; + +const draggingCol2 = { + columnId: 'col2', + groupId: 'b', + layerId: 'first', + id: 'col2', + humanData: { label: 'Column 2' }, + filterOperations: (op: OperationMetadata) => op.isBucketed, +}; + +const draggingCol3 = { + columnId: 'col3', + groupId: 'b', + layerId: 'first', + id: 'col3', + humanData: { + label: '', + }, +}; + +const draggingCol4 = { + columnId: 'col4', + groupId: 'c', + layerId: 'first', + id: 'col4', + humanData: { + label: '', + }, + filterOperations: (op: OperationMetadata) => op.isBucketed === false, +}; + +/** + * The datasource exposes four main pieces of code which are tested at + * an integration test level. The main reason for this fairly high level + * of testing is that there is a lot of UI logic that isn't easily + * unit tested, such as the transient invalid state. + * + * - Dimension trigger: Not tested here + * - Dimension editor component: First half of the tests + * + * - getDropProps: Returns drop types that are possible for the current dragging field or other dimension + * - onDrop: Correct application of drop logic + */ +describe('IndexPatternDimensionEditorPanel', () => { + let state: IndexPatternPrivateState; + let setState: jest.Mock; + let defaultProps: IndexPatternDimensionEditorProps; + + beforeEach(() => { + state = { + indexPatternRefs: [], + indexPatterns: expectedIndexPatterns, + currentIndexPatternId: 'foo', + isFirstExistenceFetch: false, + existingFields: { + 'my-fake-index-pattern': { + timestamp: true, + bytes: true, + memory: true, + source: true, + }, + }, + layers: { first: { ...oneColumnLayer } }, + }; + + setState = jest.fn(); + + defaultProps = { + state, + setState, + dateRange: { fromDate: 'now-1d', toDate: 'now' }, + columnId: 'col1', + layerId: 'first', + uniqueLabel: 'stuff', + groupId: 'group1', + filterOperations: () => true, + storage: {} as IStorageWrapper, + uiSettings: {} as IUiSettingsClient, + savedObjectsClient: {} as SavedObjectsClientContract, + http: {} as HttpSetup, + data: ({ + fieldFormats: ({ + getType: jest.fn().mockReturnValue({ + id: 'number', + title: 'Number', + }), + getDefaultType: jest.fn().mockReturnValue({ + id: 'bytes', + title: 'Bytes', + }), + } as unknown) as DataPublicPluginStart['fieldFormats'], + } as unknown) as DataPublicPluginStart, + core: {} as CoreSetup, + dimensionGroups: [], + }; + + jest.clearAllMocks(); + }); + + const groupId = 'a'; + + describe('getDropProps', () => { + it('returns undefined if no drag is happening', () => { + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: { name: 'bar', id: 'bar', humanData: { label: 'Label' } }, + }) + ).toBe(undefined); + }); + + it('returns undefined if the dragged item has no field', () => { + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: { + name: 'bar', + id: 'bar', + humanData: { label: 'Label' }, + }, + }) + ).toBe(undefined); + }); + + describe('dragging a field', () => { + it('returns undefined if field is not supported by filterOperations', () => { + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: draggingField, + filterOperations: () => false, + }) + ).toBe(undefined); + }); + + it('returns field_replace if the field is supported by filterOperations and the dropTarget is an existing column', () => { + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: draggingField, + filterOperations: (op: OperationMetadata) => op.dataType === 'number', + }) + ).toEqual({ dropTypes: ['field_replace'], nextLabel: 'Intervals' }); + }); + + it('returns field_add if the field is supported by filterOperations and the dropTarget is an empty column', () => { + expect( + getDropProps({ + ...defaultProps, + columnId: 'newId', + groupId, + dragging: draggingField, + filterOperations: (op: OperationMetadata) => op.dataType === 'number', + }) + ).toEqual({ dropTypes: ['field_add'], nextLabel: 'Intervals' }); + }); + + it('returns undefined if the field belongs to another index pattern', () => { + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: { + field: { type: 'number', name: 'bar', aggregatable: true }, + indexPatternId: 'foo2', + id: 'bar', + humanData: { label: 'Label' }, + }, + filterOperations: (op: OperationMetadata) => op.dataType === 'number', + }) + ).toBe(undefined); + }); + + it('returns undefined if the dragged field is already in use by this operation', () => { + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: { + field: { + name: 'timestamp', + displayName: 'timestampLabel', + type: 'date', + aggregatable: true, + searchable: true, + exists: true, + }, + indexPatternId: 'foo', + id: 'bar', + humanData: { label: 'Label' }, + }, + }) + ).toBe(undefined); + }); + }); + + describe('dragging a column', () => { + it('returns undefined if the dragged column from different group uses the same field as the dropTarget', () => { + const testState = { ...state }; + testState.layers.first = { + indexPatternId: 'foo', + columnOrder: ['col1', 'col2', 'col3'], + columns: { + col1: testState.layers.first.columns.col1, + + col2: { + label: 'Date histogram of timestamp (1)', + customLabel: true, + dataType: 'date', + isBucketed: true, + + // Private + operationType: 'date_histogram', + params: { + interval: '1d', + }, + sourceField: 'timestamp', + }, + }, + }; + + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: { + ...draggingCol1, + groupId: 'c', + }, + columnId: 'col2', + }) + ).toEqual(undefined); + }); + + it('returns reorder if drop target and droppedItem columns are from the same group and both are existing', () => { + const testState = { ...state }; + testState.layers.first = { + indexPatternId: 'foo', + columnOrder: ['col1', 'col2', 'col3'], + columns: { + col1: testState.layers.first.columns.col1, + + col2: { + label: 'Sum of bytes', + dataType: 'number', + isBucketed: false, + + // Private + operationType: 'sum', + sourceField: 'bytes', + }, + }, + }; + + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: { ...draggingCol1, groupId }, + columnId: 'col2', + filterOperations: (op: OperationMetadata) => op.isBucketed === false, + }) + ).toEqual({ + dropTypes: ['reorder'], + }); + }); + + it('returns duplicate_compatible if drop target and droppedItem columns are from the same group and drop target id is a new column', () => { + expect( + getDropProps({ + ...defaultProps, + columnId: 'newId', + groupId, + dragging: { + ...draggingCol1, + groupId, + }, + }) + ).toEqual({ dropTypes: ['duplicate_compatible'] }); + }); + + it('returns compatible drop types if the dragged column is compatible', () => { + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: { + ...draggingCol1, + groupId: 'c', + }, + columnId: 'col2', + }) + ).toEqual({ dropTypes: ['move_compatible', 'duplicate_compatible'] }); + }); + + it('returns incompatible drop target types if dropping column to existing incompatible column', () => { + const testState = { ...state }; + testState.layers.first = { + indexPatternId: 'foo', + columnOrder: ['col1', 'col2', 'col3'], + columns: { + col1: testState.layers.first.columns.col1, + + col2: { + label: 'Sum of bytes', + dataType: 'number', + isBucketed: false, + + // Private + operationType: 'sum', + sourceField: 'bytes', + }, + }, + }; + + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: { + ...draggingCol1, + groupId: 'c', + }, + columnId: 'col2', + filterOperations: (op: OperationMetadata) => op.isBucketed === false, + }) + ).toEqual({ + dropTypes: [ + 'replace_incompatible', + 'replace_duplicate_incompatible', + 'swap_incompatible', + ], + nextLabel: 'Unique count', + }); + }); + + it('does not return swap_incompatible if current dropTarget column cannot be swapped to the group of dragging column', () => { + const testState = { ...state }; + testState.layers.first = { + indexPatternId: 'foo', + columnOrder: ['col1', 'col2', 'col3'], + columns: { + col1: testState.layers.first.columns.col1, + + col2: { + label: 'Count of records', + dataType: 'number', + isBucketed: false, + sourceField: 'Records', + operationType: 'count', + }, + }, + }; + + expect( + getDropProps({ + ...defaultProps, + groupId, + dragging: { + columnId: 'col1', + groupId: 'b', + layerId: 'first', + id: 'col1', + humanData: { label: 'Label' }, + filterOperations: (op: OperationMetadata) => op.isBucketed === true, + }, + columnId: 'col2', + filterOperations: (op: OperationMetadata) => op.isBucketed === false, + }) + ).toEqual({ + dropTypes: ['replace_incompatible', 'replace_duplicate_incompatible'], + nextLabel: 'Unique count', + }); + }); + }); + }); + + describe('onDrop', () => { + describe('dropping a field', () => { + it('updates a column when a field is dropped', () => { + onDrop({ + ...defaultProps, + droppedItem: draggingField, + filterOperations: (op: OperationMetadata) => op.dataType === 'number', + dropType: 'field_replace', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...state, + layers: { + first: expect.objectContaining({ + columns: expect.objectContaining({ + col1: expect.objectContaining({ + dataType: 'number', + sourceField: 'bytes', + }), + }), + }), + }, + }); + }); + it('selects the specific operation that was valid on drop', () => { + onDrop({ + ...defaultProps, + droppedItem: draggingField, + columnId: 'col2', + filterOperations: (op: OperationMetadata) => op.isBucketed, + dropType: 'field_replace', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...state, + layers: { + first: { + ...state.layers.first, + columnOrder: ['col1', 'col2'], + columns: { + ...state.layers.first.columns, + col2: expect.objectContaining({ + dataType: 'number', + sourceField: 'bytes', + }), + }, + }, + }, + }); + }); + it('keeps the operation when dropping a different compatible field', () => { + onDrop({ + ...defaultProps, + droppedItem: { + field: { name: 'memory', type: 'number', aggregatable: true }, + indexPatternId: 'foo', + id: '1', + }, + state: { + ...state, + layers: { + first: { + indexPatternId: 'foo', + columnOrder: ['col1'], + columns: { + col1: { + label: 'Sum of bytes', + dataType: 'number', + isBucketed: false, + + // Private + operationType: 'sum', + sourceField: 'bytes', + }, + }, + }, + }, + }, + dropType: 'field_replace', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...state, + layers: { + first: expect.objectContaining({ + columns: expect.objectContaining({ + col1: expect.objectContaining({ + operationType: 'sum', + dataType: 'number', + sourceField: 'memory', + }), + }), + }), + }, + }); + }); + it('appends the dropped column when a field is dropped', () => { + onDrop({ + ...defaultProps, + droppedItem: draggingField, + dropType: 'field_replace', + columnId: 'col2', + filterOperations: (op: OperationMetadata) => op.dataType === 'number', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...state, + layers: { + first: { + ...state.layers.first, + columnOrder: ['col1', 'col2'], + columns: { + ...state.layers.first.columns, + col2: expect.objectContaining({ + dataType: 'number', + sourceField: 'bytes', + }), + }, + }, + }, + }); + }); + it('dimensionGroups are defined - appends the dropped column in the right place when a field is dropped', () => { + const testState = { ...state }; + testState.layers.first = { ...multipleColumnsLayer }; + // config: + // a: + // b: col1, col2, col3 + // c: col4 + // dragging field into newCol in group a + + onDrop({ + ...defaultProps, + droppedItem: draggingField, + columnId: 'newCol', + filterOperations: (op: OperationMetadata) => op.dataType === 'number', + groupId: 'a', + dimensionGroups, + dropType: 'field_add', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['newCol', 'col1', 'col2', 'col3', 'col4'], + columns: { + newCol: expect.objectContaining({ + dataType: 'number', + sourceField: 'bytes', + }), + col1: testState.layers.first.columns.col1, + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + col4: testState.layers.first.columns.col4, + }, + incompleteColumns: {}, + }, + }, + }); + }); + }); + + describe('dropping a dimension', () => { + const dragging = { + columnId: 'col1', + groupId: 'a', + layerId: 'first', + id: 'col1', + humanData: { label: 'Label' }, + }; + + it('sets correct order in group for metric and bucket columns when duplicating a column in group', () => { + const testState: IndexPatternPrivateState = { + ...state, + layers: { + first: { + indexPatternId: 'foo', + columnOrder: ['col1', 'col2', 'col3'], + columns: { + col1: { + label: 'Date histogram of timestamp', + dataType: 'date', + isBucketed: true, + operationType: 'date_histogram', + params: { + interval: '1d', + }, + sourceField: 'timestamp', + }, + col2: { + label: 'Top values of bar', + dataType: 'number', + isBucketed: true, + operationType: 'terms', + sourceField: 'bar', + params: { + orderBy: { type: 'alphabetical' }, + orderDirection: 'asc', + size: 5, + }, + }, + col3: { + operationType: 'average', + sourceField: 'memory', + label: 'average of memory', + dataType: 'number', + isBucketed: false, + }, + }, + }, + }, + }; + + const metricDragging = { + columnId: 'col3', + groupId: 'a', + layerId: 'first', + id: 'col3', + humanData: { label: 'Label' }, + }; + + onDrop({ + ...defaultProps, + droppedItem: metricDragging, + state: testState, + dropType: 'duplicate_compatible', + columnId: 'newCol', + }); + // metric is appended + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'col2', 'col3', 'newCol'], + columns: { + col1: testState.layers.first.columns.col1, + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + newCol: testState.layers.first.columns.col3, + }, + }, + }, + }); + + const bucketDragging = { + columnId: 'col2', + groupId: 'a', + layerId: 'first', + id: 'col2', + humanData: { label: 'Label' }, + }; + + onDrop({ + ...defaultProps, + droppedItem: bucketDragging, + state: testState, + dropType: 'duplicate_compatible', + columnId: 'newCol', + }); + + // bucket is placed after the last existing bucket + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'col2', 'newCol', 'col3'], + columns: { + col1: testState.layers.first.columns.col1, + col2: testState.layers.first.columns.col2, + newCol: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + }, + }, + }, + }); + }); + + it('sets correct order in group when reordering a column in group', () => { + const testState = { + ...state, + layers: { + first: { + indexPatternId: 'foo', + columnOrder: ['col1', 'col2', 'col3'], + columns: { + col1: { + label: 'Date histogram of timestamp', + dataType: 'date', + isBucketed: true, + } as IndexPatternColumn, + col2: { + label: 'Top values of bar', + dataType: 'number', + isBucketed: true, + } as IndexPatternColumn, + col3: { + label: 'Top values of memory', + dataType: 'number', + isBucketed: true, + } as IndexPatternColumn, + }, + }, + }, + }; + + const defaultReorderDropParams = { + ...defaultProps, + dragging, + droppedItem: draggingCol1, + state: testState, + filterOperations: (op: OperationMetadata) => op.dataType === 'number', + dropType: 'reorder' as DropType, + }; + + const stateWithColumnOrder = (columnOrder: string[]) => { + return { + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder, + columns: { + ...testState.layers.first.columns, + }, + }, + }, + }; + }; + + // first element to last + onDrop({ + ...defaultReorderDropParams, + columnId: 'col3', + }); + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith(stateWithColumnOrder(['col2', 'col3', 'col1'])); + + // last element to first + onDrop({ + ...defaultReorderDropParams, + columnId: 'col1', + droppedItem: { + columnId: 'col3', + groupId: 'a', + layerId: 'first', + id: 'col3', + }, + }); + expect(setState).toBeCalledTimes(2); + expect(setState).toHaveBeenCalledWith(stateWithColumnOrder(['col3', 'col1', 'col2'])); + + // middle column to first + onDrop({ + ...defaultReorderDropParams, + columnId: 'col1', + droppedItem: { + columnId: 'col2', + groupId: 'a', + layerId: 'first', + id: 'col2', + }, + }); + expect(setState).toBeCalledTimes(3); + expect(setState).toHaveBeenCalledWith(stateWithColumnOrder(['col2', 'col1', 'col3'])); + + // middle column to last + onDrop({ + ...defaultReorderDropParams, + columnId: 'col3', + droppedItem: { + columnId: 'col2', + groupId: 'a', + layerId: 'first', + id: 'col2', + }, + }); + expect(setState).toBeCalledTimes(4); + expect(setState).toHaveBeenCalledWith(stateWithColumnOrder(['col1', 'col3', 'col2'])); + }); + + it('updates the column id when moving an operation to an empty dimension', () => { + onDrop({ + ...defaultProps, + droppedItem: draggingCol1, + columnId: 'col2', + dropType: 'move_compatible', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...state, + layers: { + first: { + ...state.layers.first, + columnOrder: ['col2'], + columns: { + col2: state.layers.first.columns.col1, + }, + }, + }, + }); + }); + + it('replaces an operation when moving to a populated dimension', () => { + const testState = { ...state }; + testState.layers.first = { + indexPatternId: 'foo', + columnOrder: ['col1', 'col2', 'col3'], + columns: { + col1: testState.layers.first.columns.col1, + + col2: { + label: 'Top values of src', + dataType: 'string', + isBucketed: true, + + // Private + operationType: 'terms', + params: { + orderBy: { type: 'column', columnId: 'col3' }, + orderDirection: 'desc', + size: 10, + }, + sourceField: 'src', + }, + col3: { + label: 'Count', + dataType: 'number', + isBucketed: false, + + // Private + operationType: 'count', + sourceField: 'Records', + }, + }, + }; + + onDrop({ + ...defaultProps, + droppedItem: draggingCol2, + state: testState, + dropType: 'replace_compatible', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'col3'], + columns: { + col1: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + }, + }, + }, + }); + }); + + describe('dimension group aware ordering and copying', () => { + let testState: IndexPatternPrivateState; + beforeEach(() => { + testState = { ...state }; + testState.layers.first = { ...multipleColumnsLayer }; + }); + + it('respects groups on moving operations between compatible groups', () => { + // config: + // a: + // b: col1, col2, col3 + // c: col4 + // dragging col2 into newCol in group a + onDrop({ + ...defaultProps, + columnId: 'newCol', + droppedItem: draggingCol2, + state: testState, + groupId: 'a', + dimensionGroups, + dropType: 'move_compatible', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['newCol', 'col1', 'col3', 'col4'], + columns: { + newCol: testState.layers.first.columns.col2, + col1: testState.layers.first.columns.col1, + col3: testState.layers.first.columns.col3, + col4: testState.layers.first.columns.col4, + }, + }, + }, + }); + }); + + it('respects groups on duplicating operations between compatible groups', () => { + // config: + // a: + // b: col1, col2, col3 + // c: col4 + // dragging col2 into newCol in group a + onDrop({ + ...defaultProps, + columnId: 'newCol', + droppedItem: draggingCol2, + state: testState, + groupId: 'a', + dimensionGroups, + dropType: 'duplicate_compatible', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['newCol', 'col1', 'col2', 'col3', 'col4'], + columns: { + newCol: testState.layers.first.columns.col2, + col1: testState.layers.first.columns.col1, + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + col4: testState.layers.first.columns.col4, + }, + }, + }, + }); + }); + + it('respects groups on moving operations between compatible groups with overwrite', () => { + // config: + // a: col1, + // b: col2, col3 + // c: col4 + // dragging col3 onto col1 in group a + onDrop({ + ...defaultProps, + columnId: 'col1', + droppedItem: draggingCol3, + state: testState, + groupId: 'a', + dimensionGroups: [ + { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, + { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, + { ...dimensionGroups[2] }, + ], + dropType: 'move_compatible', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'col2', 'col4'], + columns: { + col1: testState.layers.first.columns.col3, + col2: testState.layers.first.columns.col2, + col4: testState.layers.first.columns.col4, + }, + }, + }, + }); + }); + + it('respects groups on duplicating operations between compatible groups with overwrite', () => { + // config: + // a: col1, + // b: col2, col3 + // c: col4 + // dragging col3 onto col1 in group a + + onDrop({ + ...defaultProps, + columnId: 'col1', + droppedItem: draggingCol3, + state: testState, + groupId: 'a', + dimensionGroups: [ + { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, + { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, + { ...dimensionGroups[2] }, + ], + dropType: 'duplicate_compatible', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'col2', 'col3', 'col4'], + columns: { + col1: testState.layers.first.columns.col3, + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + col4: testState.layers.first.columns.col4, + }, + }, + }, + }); + }); + + it('moves newly created dimension to the bottom of the current group', () => { + // config: + // a: col1 + // b: col2, col3 + // c: col4 + // dragging col1 into newCol in group b + onDrop({ + ...defaultProps, + columnId: 'newCol', + dropType: 'move_compatible', + droppedItem: draggingCol1, + state: testState, + groupId: 'b', + dimensionGroups: [ + { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, + { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, + { ...dimensionGroups[2] }, + ], + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col2', 'col3', 'newCol', 'col4'], + columns: { + newCol: testState.layers.first.columns.col1, + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + col4: testState.layers.first.columns.col4, + }, + }, + }, + }); + }); + + it('copies column to the bottom of the current group', () => { + // config: + // a: col1 + // b: col2, col3 + // c: col4 + // copying col1 within group a + onDrop({ + ...defaultProps, + columnId: 'newCol', + dropType: 'duplicate_compatible', + droppedItem: draggingCol1, + state: testState, + groupId: 'a', + dimensionGroups: [ + { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, + { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, + { ...dimensionGroups[2] }, + ], + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'newCol', 'col2', 'col3', 'col4'], + columns: { + col1: testState.layers.first.columns.col1, + newCol: testState.layers.first.columns.col1, + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + col4: testState.layers.first.columns.col4, + }, + }, + }, + }); + }); + + it('appends the dropped column in the right place respecting custom nestingOrder', () => { + // config: + // a: + // b: col1, col2, col3 + // c: col4 + // dragging field into newCol in group a + + onDrop({ + ...defaultProps, + droppedItem: draggingField, + columnId: 'newCol', + filterOperations: (op: OperationMetadata) => op.dataType === 'number', + groupId: 'a', + dimensionGroups: [ + // a and b are ordered in reverse visually, but nesting order keeps them in place for column order + { ...dimensionGroups[1], nestingOrder: 1 }, + { ...dimensionGroups[0], nestingOrder: 0 }, + { ...dimensionGroups[2] }, + ], + dropType: 'field_add', + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...state, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['newCol', 'col1', 'col2', 'col3', 'col4'], + columns: { + newCol: expect.objectContaining({ + dataType: 'number', + sourceField: 'bytes', + }), + col1: testState.layers.first.columns.col1, + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + col4: testState.layers.first.columns.col4, + }, + incompleteColumns: {}, + }, + }, + }); + }); + + it('moves incompatible column to the bottom of the target group', () => { + // config: + // a: col1 + // b: col2, col3 + // c: col4 + // dragging col4 into newCol in group a + + onDrop({ + ...defaultProps, + columnId: 'newCol', + dropType: 'move_incompatible', + droppedItem: draggingCol4, + state: testState, + groupId: 'a', + dimensionGroups: [ + { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, + { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, + { ...dimensionGroups[2] }, + ], + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'newCol', 'col2', 'col3'], + columns: { + col1: testState.layers.first.columns.col1, + newCol: expect.objectContaining({ + sourceField: (testState.layers.first.columns.col4 as MedianIndexPatternColumn) + .sourceField, + }), + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + }, + incompleteColumns: {}, + }, + }, + }); + }); + + it('copies incompatible column to the bottom of the target group', () => { + // config: + // a: col1 + // b: col2, col3 + // c: col4 + // dragging col4 into newCol in group a + + onDrop({ + ...defaultProps, + columnId: 'newCol', + dropType: 'duplicate_incompatible', + droppedItem: draggingCol4, + state: testState, + groupId: 'a', + dimensionGroups: [ + { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, + { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, + { ...dimensionGroups[2] }, + ], + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'newCol', 'col2', 'col3', 'col4'], + columns: { + col1: testState.layers.first.columns.col1, + newCol: expect.objectContaining({ + sourceField: (testState.layers.first.columns.col4 as MedianIndexPatternColumn) + .sourceField, + }), + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + col4: testState.layers.first.columns.col4, + }, + incompleteColumns: {}, + }, + }, + }); + }); + + it('moves incompatible column with overwrite keeping order of target column', () => { + // config: + // a: col1 + // b: col2, col3 + // c: col4 + // dragging col4 into col2 in group b + + onDrop({ + ...defaultProps, + columnId: 'col2', + dropType: 'move_incompatible', + droppedItem: draggingCol4, + state: testState, + groupId: 'b', + dimensionGroups: [ + { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, + { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, + { ...dimensionGroups[2] }, + ], + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'col2', 'col3'], + columns: { + col1: testState.layers.first.columns.col1, + col2: { + isBucketed: true, + label: 'Top values of bytes', + operationType: 'terms', + sourceField: 'bytes', + dataType: 'number', + params: { + orderBy: { + type: 'alphabetical', + }, + orderDirection: 'desc', + size: 10, + }, + }, + col3: testState.layers.first.columns.col3, + }, + incompleteColumns: {}, + }, + }, + }); + }); + + it('when swapping compatibly, columns carry order', () => { + // config: + // a: col1 + // b: col2, col3 + // c: col4 + // dragging col4 into col1 + + onDrop({ + ...defaultProps, + columnId: 'col1', + dropType: 'swap_compatible', + droppedItem: draggingCol4, + state: testState, + groupId: 'a', + dimensionGroups: [ + { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, + { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, + { ...dimensionGroups[2] }, + ], + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'col2', 'col3', 'col4'], + columns: { + col1: testState.layers.first.columns.col4, + col2: testState.layers.first.columns.col2, + col3: testState.layers.first.columns.col3, + col4: testState.layers.first.columns.col1, + }, + }, + }, + }); + }); + + it('when swapping incompatibly, newly created columns take order from the columns they replace', () => { + // config: + // a: col1 + // b: col2, col3 + // c: col4 + // dragging col4 into col2 + + onDrop({ + ...defaultProps, + columnId: 'col2', + dropType: 'swap_incompatible', + droppedItem: draggingCol4, + state: testState, + groupId: 'b', + dimensionGroups: [ + { ...dimensionGroups[0], accessors: [{ columnId: 'col1' }] }, + { ...dimensionGroups[1], accessors: [{ columnId: 'col2' }, { columnId: 'col3' }] }, + { ...dimensionGroups[2] }, + ], + }); + + expect(setState).toBeCalledTimes(1); + expect(setState).toHaveBeenCalledWith({ + ...testState, + layers: { + first: { + ...testState.layers.first, + columnOrder: ['col1', 'col2', 'col3', 'col4'], + columns: { + col1: testState.layers.first.columns.col1, + col2: { + isBucketed: true, + label: 'Top values of bytes', + operationType: 'terms', + sourceField: 'bytes', + dataType: 'number', + params: { + orderBy: { + type: 'alphabetical', + }, + orderDirection: 'desc', + size: 10, + }, + }, + col3: testState.layers.first.columns.col3, + col4: { + isBucketed: false, + label: 'Unique count of src', + filter: undefined, + operationType: 'unique_count', + sourceField: 'src', + dataType: 'number', + params: undefined, + scale: 'ratio', + }, + }, + incompleteColumns: {}, + }, + }, + }); + }); + }); + }); + }); +}); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts new file mode 100644 index 0000000000000..a98a29aea6682 --- /dev/null +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts @@ -0,0 +1,169 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + DatasourceDimensionDropProps, + isDraggedOperation, + DraggedOperation, + DropType, +} from '../../../types'; +import { getOperationDisplay } from '../../operations'; +import { hasField, isDraggedField } from '../../utils'; +import { DragContextState } from '../../../drag_drop/providers'; +import { OperationMetadata } from '../../../types'; +import { getOperationTypesForField } from '../../operations'; +import { IndexPatternColumn } from '../../indexpattern'; +import { + IndexPatternPrivateState, + IndexPattern, + IndexPatternField, + DraggedField, +} from '../../types'; + +type GetDropProps = DatasourceDimensionDropProps & { + dragging?: DragContextState['dragging']; + groupId: string; +}; + +type DropProps = { dropTypes: DropType[]; nextLabel?: string } | undefined; + +const operationLabels = getOperationDisplay(); + +export function getNewOperation( + field: IndexPatternField | undefined | false, + filterOperations: (meta: OperationMetadata) => boolean, + targetColumn: IndexPatternColumn +) { + if (!field) { + return; + } + const newOperations = getOperationTypesForField(field, filterOperations); + if (!newOperations.length) { + return; + } + // Detects if we can change the field only, otherwise change field + operation + const shouldOperationPersist = targetColumn && newOperations.includes(targetColumn.operationType); + return shouldOperationPersist ? targetColumn.operationType : newOperations[0]; +} + +export function getField(column: IndexPatternColumn | undefined, indexPattern: IndexPattern) { + if (!column) { + return; + } + const field = (hasField(column) && indexPattern.getFieldByName(column.sourceField)) || undefined; + return field; +} + +export function getDropProps(props: GetDropProps) { + const { state, columnId, layerId, dragging, groupId, filterOperations } = props; + if (!dragging) { + return; + } + + if (isDraggedField(dragging)) { + return getDropPropsForField({ ...props, dragging }); + } + + if ( + isDraggedOperation(dragging) && + dragging.layerId === layerId && + columnId !== dragging.columnId + ) { + const sourceColumn = state.layers[dragging.layerId].columns[dragging.columnId]; + const targetColumn = state.layers[layerId].columns[columnId]; + + const isSameGroup = groupId === dragging.groupId; + if (isSameGroup) { + return getDropPropsForSameGroup(targetColumn); + } else if (hasTheSameField(sourceColumn, targetColumn)) { + return; + } else if (filterOperations(sourceColumn)) { + return getDropPropsForCompatibleGroup(targetColumn); + } else { + return getDropPropsFromIncompatibleGroup({ ...props, dragging }); + } + } +} + +function hasTheSameField(sourceColumn: IndexPatternColumn, targetColumn?: IndexPatternColumn) { + return ( + targetColumn && + hasField(targetColumn) && + hasField(sourceColumn) && + targetColumn.sourceField === sourceColumn.sourceField + ); +} + +function getDropPropsForField({ + state, + columnId, + layerId, + dragging, + filterOperations, +}: GetDropProps & { dragging: DraggedField }): DropProps { + const targetColumn = state.layers[layerId].columns[columnId]; + const isTheSameIndexPattern = state.layers[layerId].indexPatternId === dragging.indexPatternId; + const newOperation = getNewOperation(dragging.field, filterOperations, targetColumn); + + if (!!(isTheSameIndexPattern && newOperation)) { + const nextLabel = operationLabels[newOperation].displayName; + + if (!targetColumn) { + return { dropTypes: ['field_add'], nextLabel }; + } else if ( + (hasField(targetColumn) && targetColumn.sourceField !== dragging.field.name) || + !hasField(targetColumn) + ) { + return { + dropTypes: ['field_replace'], + nextLabel, + }; + } + } + return; +} + +function getDropPropsForSameGroup(targetColumn?: IndexPatternColumn): DropProps { + return targetColumn ? { dropTypes: ['reorder'] } : { dropTypes: ['duplicate_compatible'] }; +} + +function getDropPropsForCompatibleGroup(targetColumn?: IndexPatternColumn): DropProps { + return { + dropTypes: targetColumn + ? ['replace_compatible', 'replace_duplicate_compatible', 'swap_compatible'] + : ['move_compatible', 'duplicate_compatible'], + }; +} + +function getDropPropsFromIncompatibleGroup({ + state, + columnId, + layerId, + dragging, + filterOperations, +}: GetDropProps & { dragging: DraggedOperation }): DropProps { + const targetColumn = state.layers[layerId].columns[columnId]; + const sourceColumn = state.layers[dragging.layerId].columns[dragging.columnId]; + + const layerIndexPattern = state.indexPatterns[state.layers[layerId].indexPatternId]; + const sourceField = getField(sourceColumn, layerIndexPattern); + const newOperationForSource = getNewOperation(sourceField, filterOperations, targetColumn); + + if (newOperationForSource) { + const targetField = getField(targetColumn, layerIndexPattern); + const canSwap = !!getNewOperation(targetField, dragging.filterOperations, sourceColumn); + + return { + dropTypes: targetColumn + ? canSwap + ? ['replace_incompatible', 'replace_duplicate_incompatible', 'swap_incompatible'] + : ['replace_incompatible', 'replace_duplicate_incompatible'] + : ['move_incompatible', 'duplicate_incompatible'], + nextLabel: operationLabels[newOperationForSource].displayName, + }; + } +} diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/index.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/index.ts new file mode 100644 index 0000000000000..07adce49eb90a --- /dev/null +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { onDrop } from './on_drop_handler'; +export { getDropProps } from './get_drop_props'; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/on_drop_handler.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/on_drop_handler.ts new file mode 100644 index 0000000000000..17b5cbc661ca3 --- /dev/null +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/on_drop_handler.ts @@ -0,0 +1,358 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { DatasourceDimensionDropHandlerProps, DraggedOperation } from '../../../types'; +import { + insertOrReplaceColumn, + deleteColumn, + getColumnOrder, + reorderByGroups, +} from '../../operations'; +import { mergeLayer } from '../../state_helpers'; +import { isDraggedField } from '../../utils'; +import { getNewOperation, getField } from './get_drop_props'; +import { IndexPatternPrivateState, DraggedField } from '../../types'; +import { trackUiEvent } from '../../../lens_ui_telemetry'; + +type DropHandlerProps = DatasourceDimensionDropHandlerProps & { + droppedItem: T; +}; + +export function onDrop(props: DatasourceDimensionDropHandlerProps) { + const { droppedItem, dropType } = props; + + if (dropType === 'field_add' || dropType === 'field_replace') { + return operationOnDropMap[dropType]({ + ...props, + droppedItem: droppedItem as DraggedField, + }); + } + return operationOnDropMap[dropType]({ + ...props, + droppedItem: droppedItem as DraggedOperation, + }); +} + +const operationOnDropMap = { + field_add: onFieldDrop, + field_replace: onFieldDrop, + + reorder: onReorder, + + move_compatible: (props: DropHandlerProps) => onMoveCompatible(props, true), + replace_compatible: (props: DropHandlerProps) => onMoveCompatible(props, true), + duplicate_compatible: onMoveCompatible, + replace_duplicate_compatible: onMoveCompatible, + + move_incompatible: (props: DropHandlerProps) => onMoveIncompatible(props, true), + replace_incompatible: (props: DropHandlerProps) => + onMoveIncompatible(props, true), + duplicate_incompatible: onMoveIncompatible, + replace_duplicate_incompatible: onMoveIncompatible, + + swap_compatible: onSwapCompatible, + swap_incompatible: onSwapIncompatible, +}; + +function onFieldDrop(props: DropHandlerProps) { + const { + columnId, + setState, + state, + layerId, + droppedItem, + filterOperations, + groupId, + dimensionGroups, + } = props; + + const layer = state.layers[layerId]; + const indexPattern = state.indexPatterns[layer.indexPatternId]; + const targetColumn = layer.columns[columnId]; + const newOperation = getNewOperation(droppedItem.field, filterOperations, targetColumn); + + if (!isDraggedField(droppedItem) || !newOperation) { + return false; + } + + const newLayer = insertOrReplaceColumn({ + layer, + columnId, + indexPattern, + op: newOperation, + field: droppedItem.field, + visualizationGroups: dimensionGroups, + targetGroup: groupId, + }); + + trackUiEvent('drop_onto_dimension'); + const hasData = Object.values(state.layers).some(({ columns }) => columns.length); + trackUiEvent(hasData ? 'drop_non_empty' : 'drop_empty'); + setState(mergeLayer({ state, layerId, newLayer })); + return true; +} + +function onMoveCompatible( + { + columnId, + setState, + state, + layerId, + droppedItem, + dimensionGroups, + groupId, + }: DropHandlerProps, + shouldDeleteSource?: boolean +) { + const layer = state.layers[layerId]; + const sourceColumn = layer.columns[droppedItem.columnId]; + + const newColumns = { + ...layer.columns, + [columnId]: { ...sourceColumn }, + }; + if (shouldDeleteSource) { + delete newColumns[droppedItem.columnId]; + } + + const newColumnOrder = [...layer.columnOrder]; + + if (shouldDeleteSource) { + const sourceIndex = newColumnOrder.findIndex((c) => c === droppedItem.columnId); + const targetIndex = newColumnOrder.findIndex((c) => c === columnId); + + if (targetIndex === -1) { + // for newly created columns, remove the old entry and add the last one to the end + newColumnOrder.splice(sourceIndex, 1); + newColumnOrder.push(columnId); + } else { + // for drop to replace, reuse the same index + newColumnOrder[sourceIndex] = columnId; + } + } else { + // put a new bucketed dimension just in front of the metric dimensions, a metric dimension in the back of the array + // then reorder based on dimension groups if necessary + const insertionIndex = sourceColumn.isBucketed + ? newColumnOrder.findIndex((id) => !newColumns[id].isBucketed) + : newColumnOrder.length; + newColumnOrder.splice(insertionIndex, 0, columnId); + } + + const newLayer = { + ...layer, + columnOrder: newColumnOrder, + columns: newColumns, + }; + + const updatedColumnOrder = getColumnOrder(newLayer); + + reorderByGroups(dimensionGroups, groupId, updatedColumnOrder, columnId); + + // Time to replace + setState( + mergeLayer({ + state, + layerId, + newLayer: { + columnOrder: updatedColumnOrder, + columns: newColumns, + }, + }) + ); + return shouldDeleteSource ? { deleted: droppedItem.columnId } : true; +} + +function onReorder({ + columnId, + setState, + state, + layerId, + droppedItem, +}: DropHandlerProps) { + function reorderElements(items: string[], dest: string, src: string) { + const result = items.filter((c) => c !== src); + const targetIndex = items.findIndex((c) => c === src); + const sourceIndex = items.findIndex((c) => c === dest); + + const targetPosition = result.indexOf(dest); + result.splice(targetIndex < sourceIndex ? targetPosition + 1 : targetPosition, 0, src); + return result; + } + + setState( + mergeLayer({ + state, + layerId, + newLayer: { + columnOrder: reorderElements( + state.layers[layerId].columnOrder, + columnId, + droppedItem.columnId + ), + }, + }) + ); + return true; +} + +function onMoveIncompatible( + { + columnId, + setState, + state, + layerId, + droppedItem, + filterOperations, + dimensionGroups, + groupId, + }: DropHandlerProps, + shouldDeleteSource?: boolean +) { + const layer = state.layers[layerId]; + const indexPattern = state.indexPatterns[layer.indexPatternId]; + const sourceColumn = layer.columns[droppedItem.columnId]; + const targetColumn = layer.columns[columnId] || null; + + const sourceField = getField(sourceColumn, indexPattern); + const newOperation = getNewOperation(sourceField, filterOperations, targetColumn); + if (!newOperation) { + return false; + } + + const modifiedLayer = shouldDeleteSource + ? deleteColumn({ + layer, + columnId: droppedItem.columnId, + indexPattern, + }) + : layer; + + const newLayer = insertOrReplaceColumn({ + layer: modifiedLayer, + columnId, + indexPattern, + op: newOperation, + field: sourceField, + visualizationGroups: dimensionGroups, + targetGroup: groupId, + }); + + trackUiEvent('drop_onto_dimension'); + setState( + mergeLayer({ + state, + layerId, + newLayer, + }) + ); + return shouldDeleteSource ? { deleted: droppedItem.columnId } : true; +} + +function onSwapIncompatible({ + columnId, + setState, + state, + layerId, + droppedItem, + filterOperations, + dimensionGroups, + groupId, +}: DropHandlerProps) { + const layer = state.layers[layerId]; + const indexPattern = state.indexPatterns[layer.indexPatternId]; + const sourceColumn = layer.columns[droppedItem.columnId]; + const targetColumn = layer.columns[columnId]; + + const sourceField = getField(sourceColumn, indexPattern); + const targetField = getField(targetColumn, indexPattern); + + const newOperationForSource = getNewOperation(sourceField, filterOperations, targetColumn); + const newOperationForTarget = getNewOperation( + targetField, + droppedItem.filterOperations, + sourceColumn + ); + + if (!newOperationForSource || !newOperationForTarget) { + return false; + } + + const newLayer = insertOrReplaceColumn({ + layer: insertOrReplaceColumn({ + layer, + columnId, + targetGroup: groupId, + indexPattern, + op: newOperationForSource, + field: sourceField, + visualizationGroups: dimensionGroups, + }), + columnId: droppedItem.columnId, + indexPattern, + op: newOperationForTarget, + field: targetField, + visualizationGroups: dimensionGroups, + targetGroup: droppedItem.groupId, + }); + + trackUiEvent('drop_onto_dimension'); + setState( + mergeLayer({ + state, + layerId, + newLayer, + }) + ); + return true; +} + +const swapColumnOrder = (columnOrder: string[], sourceId: string, targetId: string) => { + const newColumnOrder = [...columnOrder]; + const sourceIndex = newColumnOrder.findIndex((c) => c === sourceId); + const targetIndex = newColumnOrder.findIndex((c) => c === targetId); + + newColumnOrder[sourceIndex] = targetId; + newColumnOrder[targetIndex] = sourceId; + + return newColumnOrder; +}; + +function onSwapCompatible({ + columnId, + setState, + state, + layerId, + droppedItem, + dimensionGroups, + groupId, +}: DropHandlerProps) { + const layer = state.layers[layerId]; + const sourceId = droppedItem.columnId; + const targetId = columnId; + + const sourceColumn = { ...layer.columns[sourceId] }; + const targetColumn = { ...layer.columns[targetId] }; + const newColumns = { ...layer.columns }; + newColumns[targetId] = sourceColumn; + newColumns[sourceId] = targetColumn; + + const updatedColumnOrder = swapColumnOrder(layer.columnOrder, sourceId, targetId); + reorderByGroups(dimensionGroups, groupId, updatedColumnOrder, columnId); + + // Time to replace + setState( + mergeLayer({ + state, + layerId, + newLayer: { + columnOrder: updatedColumnOrder, + columns: newColumns, + }, + }) + ); + + return true; +} diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index 6c88eb20826bb..7729486dea360 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -17,7 +17,7 @@ import { Datatable, SerializedFieldFormat, } from '../../../../src/plugins/expressions/public'; -import { DragContextState, DragDropIdentifier } from './drag_drop'; +import { DraggingIdentifier, DragDropIdentifier, DragContextState } from './drag_drop'; import { Document } from './persistence'; import { DateRange } from '../common'; import { Query, Filter, SavedQuery, IFieldFormat } from '../../../../src/plugins/data/public'; @@ -142,11 +142,16 @@ export type DropType = | 'field_add' | 'field_replace' | 'reorder' - | 'duplicate_in_group' | 'move_compatible' | 'replace_compatible' | 'move_incompatible' - | 'replace_incompatible'; + | 'replace_incompatible' + | 'replace_duplicate_compatible' + | 'duplicate_compatible' + | 'swap_compatible' + | 'replace_duplicate_incompatible' + | 'duplicate_incompatible' + | 'swap_incompatible'; export interface DatasourceSuggestion { state: T; @@ -194,7 +199,7 @@ export interface Datasource { groupId: string; dragging: DragContextState['dragging']; } - ) => { dropType: DropType; nextLabel?: string } | undefined; + ) => { dropTypes: DropType[]; nextLabel?: string } | undefined; onDrop: (props: DatasourceDimensionDropHandlerProps) => false | true | { deleted: string }; updateStateOnCloseDimension?: (props: { layerId: string; @@ -295,10 +300,11 @@ export interface DatasourceLayerPanelProps { activeData?: Record; } -export interface DraggedOperation { +export interface DraggedOperation extends DraggingIdentifier { layerId: string; groupId: string; columnId: string; + filterOperations: (operation: OperationMetadata) => boolean; } export function isDraggedOperation( diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index b2c6d0e681b7d..8b0d44caa4640 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -11859,14 +11859,6 @@ "xpack.lens.dragDrop.announce.lifted": "{label}を上げました", "xpack.lens.dragDrop.announce.selectedTarget.default": "位置{position}の{dropGroupLabel}グループに{label}を追加しました。スペースまたはEnterを押して追加します", "xpack.lens.dragDrop.announce.selectedTarget.defaultNoPosition": "{label}を{dropLabel}に追加します。スペースまたはEnterを押して追加します", - "xpack.lens.dragDrop.announce.selectedTarget.duplicated": "位置{position}の{groupLabel}グループに{label}を複製しますスペースまたはEnterを押して複製します", - "xpack.lens.dragDrop.announce.selectedTarget.moveCompatible": "位置{position}の{groupLabel}グループに{label}を移動します。スペースまたはEnterを押して移動します", - "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatible": "{label}を{nextLabel}に変換し、位置{position}の{groupLabel}グループに移動します。スペースまたはEnterを押して移動します", - "xpack.lens.dragDrop.announce.selectedTarget.noSelected": "対象が選択されていません。矢印キーを使用して対象を選択してください", - "xpack.lens.dragDrop.announce.selectedTarget.reordered": "{groupLabel}グループの{label}を位置{prevPosition}から位置{position}に並べ替えます。スペースまたはEnterを押して並べ替えます", - "xpack.lens.dragDrop.announce.selectedTarget.reorderedBack": "{label}は初期位置{prevPosition}に戻りました", - "xpack.lens.dragDrop.announce.selectedTarget.replace": "位置{position}の{groupLabel}グループで{dropLabel}を{label}に置き換えます。スペースまたはEnterを押して置き換えます", - "xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatible": "{label}を{nextLabel}に変換し、位置{position}の{groupLabel}グループで{dropLabel}を置き換えます。スペースまたはEnterを押して置き換えます", "xpack.lens.dragDrop.keyboardInstructions": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、左右の矢印キーを使用して、ドロップ対象間を移動します。もう一度スペースまたはEnterを押すと終了します。", "xpack.lens.dragDrop.keyboardInstructionsReorder": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、上下矢印キーを使用すると、グループの項目を並べ替えます。左右矢印キーを使用すると、グループの外側でドロップ対象を選択します。もう一度スペースまたはEnterを押すと終了します。", "xpack.lens.editLayerSettings": "レイヤー設定を編集", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 59f55f2b9ebf9..d8a6885d6b86d 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -12016,14 +12016,6 @@ "xpack.lens.dragDrop.announce.lifted": "已提升 {label}", "xpack.lens.dragDrop.announce.selectedTarget.default": "将 {label} 添加到 {dropGroupLabel} 组中的位置 {position}。按空格键或 enter 键添加", "xpack.lens.dragDrop.announce.selectedTarget.defaultNoPosition": "将 {label} 添加到 {dropLabel}。按空格键或 enter 键添加", - "xpack.lens.dragDrop.announce.selectedTarget.duplicated": "将 {label} 复制到 {groupLabel} 组中的位置 {position}。按空格键或 enter 键复制", - "xpack.lens.dragDrop.announce.selectedTarget.moveCompatible": "将 {label} 移到 {groupLabel} 组中的位置 {position}。按空格键或 enter 键移动", - "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatible": "将 {label} 转换为 {nextLabel} 并移到 {groupLabel} 组中的位置 {position}。按空格键或 enter 键移动", - "xpack.lens.dragDrop.announce.selectedTarget.noSelected": "未选择任何目标。使用箭头键选择目标", - "xpack.lens.dragDrop.announce.selectedTarget.reordered": "将 {groupLabel} 组中的 {label} 从位置 {prevPosition} 重新排到位置 {position}。按空格键或 enter 键重新排列", - "xpack.lens.dragDrop.announce.selectedTarget.reorderedBack": "{label} 已返回至其初始位置 {prevPosition}", - "xpack.lens.dragDrop.announce.selectedTarget.replace": "将 {groupLabel} 组中位置 {position} 上的 {dropLabel} 替换为 {label}。按空格键或 enter 键替换", - "xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatible": "将 {label} 转换为 {nextLabel} 并替换 {groupLabel} 组中位置 {position} 上的 {dropLabel}。按空格键或 enter 键替换", "xpack.lens.dragDrop.keyboardInstructions": "按空格键或 enter 键开始拖动。拖动时,请左右箭头键在拖动目标之间移动。再次按空格键或 enter 键结束操作。", "xpack.lens.dragDrop.keyboardInstructionsReorder": "按空格键或 enter 键开始拖动。拖动时,请使用上下箭头键重新排列组中的项目,使用左右箭头键在组之外选择拖动目标。再次按空格键或 enter 键结束操作。", "xpack.lens.editLayerSettings": "编辑图层设置", diff --git a/x-pack/test/functional/apps/lens/drag_and_drop.ts b/x-pack/test/functional/apps/lens/drag_and_drop.ts index 519d33a947888..1ab107becfb0e 100644 --- a/x-pack/test/functional/apps/lens/drag_and_drop.ts +++ b/x-pack/test/functional/apps/lens/drag_and_drop.ts @@ -8,7 +8,7 @@ import expect from '@kbn/expect'; import { FtrProviderContext } from '../../ftr_provider_context'; -export default function ({ getPageObjects }: FtrProviderContext) { +export default function ({ getService, getPageObjects }: FtrProviderContext) { const PageObjects = getPageObjects(['visualize', 'lens', 'common', 'header']); describe('lens drag and drop tests', () => { @@ -132,7 +132,38 @@ export default function ({ getPageObjects }: FtrProviderContext) { 'Top values of @message.raw', ]); }); + + it('Should duplicate and swap elements when dragging over secondary drop targets', async () => { + await PageObjects.lens.removeLayer(); + await PageObjects.lens.switchToVisualization('bar'); + await PageObjects.lens.dragFieldToWorkspace('@timestamp'); + + await PageObjects.lens.dragDimensionToExtraDropType( + 'lnsXY_xDimensionPanel > lns-dimensionTrigger', + 'lnsXY_splitDimensionPanel', + 'duplicate' + ); + expect(await PageObjects.lens.getDimensionTriggerText('lnsXY_splitDimensionPanel')).to.eql( + '@timestamp [1]' + ); + await PageObjects.lens.dragFieldToDimensionTrigger( + '@message.raw', + 'lnsXY_yDimensionPanel > lns-dimensionTrigger' + ); + await PageObjects.lens.dragDimensionToExtraDropType( + 'lnsXY_splitDimensionPanel > lns-dimensionTrigger', + 'lnsXY_yDimensionPanel', + 'swap' + ); + expect(await PageObjects.lens.getDimensionTriggerText('lnsXY_yDimensionPanel')).to.eql( + 'Unique count of @timestamp' + ); + expect(await PageObjects.lens.getDimensionTriggerText('lnsXY_splitDimensionPanel')).to.eql( + 'Top values of @message.raw' + ); + }); }); + describe('keyboard drag and drop', () => { it('should drop a field to workspace', async () => { await PageObjects.visualize.navigateToNewVisualization(); diff --git a/x-pack/test/functional/apps/lens/smokescreen.ts b/x-pack/test/functional/apps/lens/smokescreen.ts index cad14c297c804..acc783ad36bf1 100644 --- a/x-pack/test/functional/apps/lens/smokescreen.ts +++ b/x-pack/test/functional/apps/lens/smokescreen.ts @@ -139,8 +139,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { ); expect(await PageObjects.lens.getLayerCount()).to.eql(2); - await testSubjects.click('lnsLayerRemove'); - await testSubjects.click('lnsLayerRemove'); + await PageObjects.lens.removeLayer(); + await PageObjects.lens.removeLayer(); await testSubjects.existOrFail('empty-workspace'); }); diff --git a/x-pack/test/functional/page_objects/lens_page.ts b/x-pack/test/functional/page_objects/lens_page.ts index 423d33e979de1..205a4391062a2 100644 --- a/x-pack/test/functional/page_objects/lens_page.ts +++ b/x-pack/test/functional/page_objects/lens_page.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import { delay } from 'bluebird'; import { FtrProviderContext } from '../ftr_provider_context'; import { logWrapper } from './log_wrapper'; @@ -824,5 +825,83 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont await testSubjects.existOrFail('indexPattern-add-field'); await testSubjects.click('indexPattern-add-field'); }, + + /** resets visualization/layer or removes a layer */ + async removeLayer() { + await testSubjects.click('lnsLayerRemove'); + }, + + /** + * Starts dragging @param dragging, drags over @param draggedOver and drops it into @dropTarget + */ + async dragEnterDrop(dragging: string, draggedOver: string, dropTarget: string) { + await browser.execute( + ` + function createEvent(typeOfEvent) { + const event = document.createEvent("CustomEvent"); + event.initCustomEvent(typeOfEvent, true, true, null); + event.dataTransfer = { + data: {}, + setData: function(key, value) { + this.data[key] = value; + }, + getData: function(key) { + return this.data[key]; + } + }; + return event; + } + function dispatchEvent(element, event, transferData) { + if (transferData !== undefined) { + event.dataTransfer = transferData; + } + if (element.dispatchEvent) { + element.dispatchEvent(event); + } else if (element.fireEvent) { + element.fireEvent("on" + event.type, event); + } + } + + const origin = document.querySelector(arguments[0]); + const dragStartEvent = createEvent('dragstart'); + dispatchEvent(origin, dragStartEvent); + + setTimeout(() => { + const target = document.querySelector(arguments[1]); + const dragenter = createEvent('dragenter'); + const dragover = createEvent('dragover'); + dispatchEvent(target, dragenter, dragStartEvent.dataTransfer); + dispatchEvent(target, dragover, dragStartEvent.dataTransfer); + setTimeout(() => { + const target = document.querySelector(arguments[2]); + const dropEvent = createEvent('drop'); + dispatchEvent(target, dropEvent, dragStartEvent.dataTransfer); + const dragEndEvent = createEvent('dragend'); + dispatchEvent(origin, dragEndEvent, dropEvent.dataTransfer); + }, 100) + }, 100); + `, + dragging, + draggedOver, + dropTarget + ); + await delay(150); + }, + + /** + * Drags field to dimension trigger to extra drop type + * + * @param from - the selector of the dimension being moved + * @param to - the selector of the main drop type of dimension being dropped to + * @param type - extra drop type + * */ + async dragDimensionToExtraDropType(from: string, to: string, type: 'duplicate' | 'swap') { + await this.dragEnterDrop( + testSubjects.getCssSelector(from), + testSubjects.getCssSelector(`${to} > lnsDragDrop`), + testSubjects.getCssSelector(`${to} > lnsDragDrop-${type}`) + ); + await PageObjects.header.waitUntilLoadingHasFinished(); + }, }); } From cf8ebe619b539399310205ffa08d0ba02efddc6f Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 29 Mar 2021 13:11:33 +0100 Subject: [PATCH 44/55] skip flaky suite (#92358) --- .../spaces_api_integration/security_and_spaces/apis/delete.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/spaces_api_integration/security_and_spaces/apis/delete.ts b/x-pack/test/spaces_api_integration/security_and_spaces/apis/delete.ts index 2ba0e4d77bfbe..b22e24d33c246 100644 --- a/x-pack/test/spaces_api_integration/security_and_spaces/apis/delete.ts +++ b/x-pack/test/spaces_api_integration/security_and_spaces/apis/delete.ts @@ -24,7 +24,8 @@ export default function deleteSpaceTestSuite({ getService }: FtrProviderContext) expectReservedSpaceResult, } = deleteTestSuiteFactory(es, esArchiver, supertestWithoutAuth); - describe('delete', () => { + // FLAKY: https://github.com/elastic/kibana/issues/92358 + describe.skip('delete', () => { [ { spaceId: SPACES.DEFAULT.spaceId, From e4e4a01298a2c8047a9089917b5501d64db45ed2 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 29 Mar 2021 13:20:47 +0100 Subject: [PATCH 45/55] skip flaky suite (#94532) --- test/functional/apps/discover/_discover_histogram.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/functional/apps/discover/_discover_histogram.ts b/test/functional/apps/discover/_discover_histogram.ts index 2a6096f8d1a78..72deb74459ab9 100644 --- a/test/functional/apps/discover/_discover_histogram.ts +++ b/test/functional/apps/discover/_discover_histogram.ts @@ -22,7 +22,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const browser = getService('browser'); - describe('discover histogram', function describeIndexTests() { + // FLAKY: https://github.com/elastic/kibana/issues/94532 + describe.skip('discover histogram', function describeIndexTests() { before(async () => { await esArchiver.loadIfNeeded('logstash_functional'); await esArchiver.load('long_window_logstash'); From a1748cb3a76e684bdde9df92bfa4b2f637abb6f8 Mon Sep 17 00:00:00 2001 From: Marta Bondyra Date: Mon, 29 Mar 2021 14:25:08 +0200 Subject: [PATCH 46/55] [Lens] remove warnings when running tests (#95637) --- .../lens/public/indexpattern_datasource/datapanel.test.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx index 669758c5193a6..e6a38ce2bb713 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx @@ -827,7 +827,7 @@ describe('IndexPattern Data Panel', () => { }); // wait for indx pattern to be loaded - await new Promise((r) => setTimeout(r, 0)); + await act(async () => await new Promise((r) => setTimeout(r, 0))); expect(props.indexPatternFieldEditor.openEditor).toHaveBeenCalledWith( expect.objectContaining({ @@ -860,10 +860,11 @@ describe('IndexPattern Data Panel', () => { .prop('children') as ReactElement).props.items[0].props.onClick(); }); // wait for indx pattern to be loaded - await new Promise((r) => setTimeout(r, 0)); + await act(async () => await new Promise((r) => setTimeout(r, 0))); + await (props.indexPatternFieldEditor.openEditor as jest.Mock).mock.calls[0][0].onSave(); // wait for indx pattern to be loaded - await new Promise((r) => setTimeout(r, 0)); + await act(async () => await new Promise((r) => setTimeout(r, 0))); expect(props.onUpdateIndexPattern).toHaveBeenCalledWith( expect.objectContaining({ fields: [ From d16101f377bc67dae4900701b4ffe4604247683c Mon Sep 17 00:00:00 2001 From: Georgii Gorbachev Date: Mon, 29 Mar 2021 14:59:36 +0200 Subject: [PATCH 47/55] [Event Log] Extend ECS event schema with fields needed for Detection Engine (#95067) **Related to:** https://github.com/elastic/kibana/pull/94143 ## Summary This PR adds new fields to the schema (`EventSchema`, `IEvent`): - standard ECS fields: `error.*`, `event.*`, `log.level`, `log.logger`, `rule.*` - custom field set `kibana.detection_engine` We need these fields on the Detections side to implement detection rule execution log. See the related proposal (https://github.com/elastic/kibana/pull/94143) for more details. Also, this PR bumps ECS used in Event Log from `1.6.0` to the current `1.8.0` version. They are 100% same in terms of fields used in Event Log, so no changes in the schema were caused by this version increment. --- x-pack/plugins/event_log/README.md | 73 ++++++- x-pack/plugins/event_log/generated/README.md | 29 ++- .../plugins/event_log/generated/mappings.json | 181 ++++++++++++++++-- x-pack/plugins/event_log/generated/schemas.ts | 54 +++++- .../event_log/scripts/create_schemas.js | 7 +- x-pack/plugins/event_log/scripts/mappings.js | 141 +++++++------- .../event_log/service_api_integration.ts | 162 ++++++++++++++-- 7 files changed, 519 insertions(+), 128 deletions(-) diff --git a/x-pack/plugins/event_log/README.md b/x-pack/plugins/event_log/README.md index 2656718cc15ea..2272341c65f5e 100644 --- a/x-pack/plugins/event_log/README.md +++ b/x-pack/plugins/event_log/README.md @@ -6,13 +6,23 @@ actitivies. ## Overview This plugin provides a persistent log of "events" that can be used by other -plugins to record their processing, for later acccess. Currently it's only -used by the alerts and actions plugins. +plugins to record their processing, for later accces. It is used by: -The "events" are ECS documents, with some custom properties for Kibana, and -alerting-specific properties within those Kibana properties. The number of -ECS fields is limited today, but can be extended fairly easily. We are being -conservative in adding new fields though, to help prevent indexing explosions. +- `alerting` and `actions` plugins +- [work in progress] `security_solution` (detection rules execution log) + +The "events" are [ECS documents](https://www.elastic.co/guide/en/ecs/current/index.html) +containing both standard ECS fields and some custom fields for Kibana. + +- Standard fields are those which are defined in the ECS specification. + Examples: `@timestamp`, `message`, `event.provider`. The number of ECS fields + supported in Event Log is limited today, but can be extended fairly easily. + We are being conservative in adding new fields though, to help prevent + indexing explosions. +- Custom fields are not part of the ECS spec. We defined a top-level `kibana` + field set where we have some Kibana-specific fields like `kibana.server_uuid` + and `kibana.saved_objects`. Plugins added a few custom fields as well, + for example `kibana.alerting` field set. A client API is available for other plugins to: @@ -47,16 +57,25 @@ The structure of the event documents can be seen in the generated via a script when the structure changes. See the [README.md](generated/README.md) for how to change the document structure. -Below is an document in the expected structure, with descriptions of the fields: +Below is a document in the expected structure, with descriptions of the fields: ```js { + // Base ECS fields. + // https://www.elastic.co/guide/en/ecs/current/ecs-base.html "@timestamp": "ISO date", tags: ["tags", "here"], message: "message for humans here", + + // ECS version. This is set by the Event Log and should not be specified + // by a client of Event Log. + // https://www.elastic.co/guide/en/ecs/current/ecs-ecs.html ecs: { version: "version of ECS used by the event log", }, + + // Event fields. All of them are supported. + // https://www.elastic.co/guide/en/ecs/current/ecs-event.html event: { provider: "see below", action: "see below", @@ -65,19 +84,44 @@ Below is an document in the expected structure, with descriptions of the fields: end: "ISO date of end time for events that capture a duration", outcome: "success | failure, for events that indicate an outcome", reason: "additional detail on failure outcome", + // etc }, + + // Error fields. All of them are supported. + // https://www.elastic.co/guide/en/ecs/current/ecs-error.html error: { message: "an error message, usually associated with outcome: failure", + // etc + }, + + // Log fields. Only a subset is supported. + // https://www.elastic.co/guide/en/ecs/current/ecs-log.html + log: { + level: "info | warning | any log level keyword you need", + logger: "name of the logger", + }, + + // Rule fields. All of them are supported. + // https://www.elastic.co/guide/en/ecs/current/ecs-rule.html + rule: { + author: ["Elastic"], + id: "a823fd56-5467-4727-acb1-66809737d943", + // etc }, + + // User fields. Only user.name is supported. + // https://www.elastic.co/guide/en/ecs/current/ecs-user.html user: { name: "name of Kibana user", }, - kibana: { // custom ECS field + + // Custom fields that are not part of ECS. + kibana: { server_uuid: "UUID of kibana server, for diagnosing multi-Kibana scenarios", alerting: { instance_id: "alert instance id, for relevant documents", action_group_id: "alert action group, for relevant documents", - action_subgroup_id: "alert action subgroup, for relevant documents", + action_subgroup: "alert action subgroup, for relevant documents", status: "overall alert status, after alert execution", }, saved_objects: [ @@ -363,3 +407,14 @@ yarn test:jest x-pack/plugins/event_log --watch See: [`x-pack/test/plugin_api_integration/test_suites/event_log`](https://github.com/elastic/kibana/tree/master/x-pack/test/plugin_api_integration/test_suites/event_log). +To develop integration tests, first start the test server from the root of the repo: + +```sh +node scripts/functional_tests_server --config x-pack/test/plugin_api_integration/config.ts +``` + +Then start the test runner: + +```sh +node scripts/functional_test_runner --config x-pack/test/plugin_api_integration/config.ts --include x-pack/test/plugin_api_integration/test_suites/event_log/index.ts +``` diff --git a/x-pack/plugins/event_log/generated/README.md b/x-pack/plugins/event_log/generated/README.md index 347f5743c6d66..a6bc248526510 100644 --- a/x-pack/plugins/event_log/generated/README.md +++ b/x-pack/plugins/event_log/generated/README.md @@ -1,11 +1,26 @@ +# Generating event schema + The files in this directory were generated by manually running the script -../scripts/create-schemas.js from the root directory of the repository. +`../scripts/create-schemas.js` from the root directory of the repository. -These files should not be edited by hand. +**These files should not be edited by hand.** Please follow the following steps: -1. clone the [ECS](https://github.com/elastic/ecs) repo locally so that it resides along side your kibana repo, and checkout the ECS version you wish to support (for example, the `1.6` branch, for version 1.6) -2. In the `x-pack/plugins/event_log/scripts/mappings.js` file you'll want to make th efollowing changes: - 1. Update `EcsKibanaExtensionsMappings` to include the mapping of the fields you wish to add. - 2. Update `EcsEventLogProperties` to include the fields in the generated mappings.json. -3. cd to the `kibana` root folder and run: `node ./x-pack/plugins/event_log/scripts/create_schemas.js` + +1. Clone the [ECS](https://github.com/elastic/ecs) repo locally so that it + resides along side your kibana repo, and checkout the ECS version you wish to + support (for example, the `1.8` branch, for version 1.8). + +2. In the `x-pack/plugins/event_log/scripts/mappings.js` file you'll want to + make the following changes: + - Update `EcsCustomPropertyMappings` to include the mapping of the custom + fields you wish to add. + - Update `EcsPropertiesToGenerate` to include the fields in the generated + `mappings.json`. + - Make sure to list all array fields in `EcsEventLogMultiValuedProperties`. + +3. Cd to the `kibana` root folder and run: + + ```sh + node ./x-pack/plugins/event_log/scripts/create_schemas.js + ``` diff --git a/x-pack/plugins/event_log/generated/mappings.json b/x-pack/plugins/event_log/generated/mappings.json index 629c4af567961..f2515d0a6a8fb 100644 --- a/x-pack/plugins/event_log/generated/mappings.json +++ b/x-pack/plugins/event_log/generated/mappings.json @@ -4,6 +4,10 @@ "@timestamp": { "type": "date" }, + "message": { + "norms": false, + "type": "text" + }, "tags": { "ignore_above": 1024, "type": "keyword", @@ -11,10 +15,6 @@ "isArray": "true" } }, - "message": { - "norms": false, - "type": "text" - }, "ecs": { "properties": { "version": { @@ -23,40 +23,197 @@ } } }, + "error": { + "properties": { + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "message": { + "norms": false, + "type": "text" + }, + "stack_trace": { + "doc_values": false, + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "index": false, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, "event": { "properties": { "action": { "ignore_above": 1024, "type": "keyword" }, - "provider": { + "category": { + "ignore_above": 1024, + "type": "keyword", + "meta": { + "isArray": "true" + } + }, + "code": { "ignore_above": 1024, "type": "keyword" }, - "start": { + "created": { "type": "date" }, + "dataset": { + "ignore_above": 1024, + "type": "keyword" + }, "duration": { "type": "long" }, "end": { "type": "date" }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "ingested": { + "type": "date" + }, + "kind": { + "ignore_above": 1024, + "type": "keyword" + }, + "module": { + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "doc_values": false, + "ignore_above": 1024, + "index": false, + "type": "keyword" + }, "outcome": { "ignore_above": 1024, "type": "keyword" }, + "provider": { + "ignore_above": 1024, + "type": "keyword" + }, "reason": { "ignore_above": 1024, "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "risk_score": { + "type": "float" + }, + "risk_score_norm": { + "type": "float" + }, + "sequence": { + "type": "long" + }, + "severity": { + "type": "long" + }, + "start": { + "type": "date" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword", + "meta": { + "isArray": "true" + } + }, + "url": { + "ignore_above": 1024, + "type": "keyword" } } }, - "error": { + "log": { "properties": { - "message": { - "norms": false, - "type": "text" + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "rule": { + "properties": { + "author": { + "ignore_above": 1024, + "type": "keyword", + "meta": { + "isArray": "true" + } + }, + "category": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "license": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "ruleset": { + "ignore_above": 1024, + "type": "keyword" + }, + "uuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" } } }, @@ -101,6 +258,7 @@ } }, "saved_objects": { + "type": "nested", "properties": { "rel": { "type": "keyword", @@ -118,8 +276,7 @@ "type": "keyword", "ignore_above": 1024 } - }, - "type": "nested" + } } } } diff --git a/x-pack/plugins/event_log/generated/schemas.ts b/x-pack/plugins/event_log/generated/schemas.ts index 030815ce3c3d7..31d8b7201cfc6 100644 --- a/x-pack/plugins/event_log/generated/schemas.ts +++ b/x-pack/plugins/event_log/generated/schemas.ts @@ -19,7 +19,7 @@ type DeepPartial = { [P in keyof T]?: T[P] extends Array ? Array> : DeepPartial; }; -export const ECS_VERSION = '1.6.0'; +export const ECS_VERSION = '1.8.0'; // types and config-schema describing the es structures export type IValidatedEvent = TypeOf; @@ -28,27 +28,69 @@ export type IEvent = DeepPartial>; export const EventSchema = schema.maybe( schema.object({ '@timestamp': ecsDate(), - tags: ecsStringMulti(), message: ecsString(), + tags: ecsStringMulti(), ecs: schema.maybe( schema.object({ version: ecsString(), }) ), + error: schema.maybe( + schema.object({ + code: ecsString(), + id: ecsString(), + message: ecsString(), + stack_trace: ecsString(), + type: ecsString(), + }) + ), event: schema.maybe( schema.object({ action: ecsString(), - provider: ecsString(), - start: ecsDate(), + category: ecsStringMulti(), + code: ecsString(), + created: ecsDate(), + dataset: ecsString(), duration: ecsNumber(), end: ecsDate(), + hash: ecsString(), + id: ecsString(), + ingested: ecsDate(), + kind: ecsString(), + module: ecsString(), + original: ecsString(), outcome: ecsString(), + provider: ecsString(), reason: ecsString(), + reference: ecsString(), + risk_score: ecsNumber(), + risk_score_norm: ecsNumber(), + sequence: ecsNumber(), + severity: ecsNumber(), + start: ecsDate(), + timezone: ecsString(), + type: ecsStringMulti(), + url: ecsString(), }) ), - error: schema.maybe( + log: schema.maybe( schema.object({ - message: ecsString(), + level: ecsString(), + logger: ecsString(), + }) + ), + rule: schema.maybe( + schema.object({ + author: ecsStringMulti(), + category: ecsString(), + description: ecsString(), + id: ecsString(), + license: ecsString(), + name: ecsString(), + reference: ecsString(), + ruleset: ecsString(), + uuid: ecsString(), + version: ecsString(), }) ), user: schema.maybe( diff --git a/x-pack/plugins/event_log/scripts/create_schemas.js b/x-pack/plugins/event_log/scripts/create_schemas.js index 98140ef905198..4b91cf6a73622 100755 --- a/x-pack/plugins/event_log/scripts/create_schemas.js +++ b/x-pack/plugins/event_log/scripts/create_schemas.js @@ -27,9 +27,12 @@ function main() { const ecsMappings = readEcsJSONFile(ecsDir, ECS_MAPPINGS_FILE); // add our custom fields - ecsMappings.mappings.properties.kibana = mappings.EcsKibanaExtensionsMappings; + ecsMappings.mappings.properties = { + ...ecsMappings.mappings.properties, + ...mappings.EcsCustomPropertyMappings, + }; - const exportedProperties = mappings.EcsEventLogProperties; + const exportedProperties = mappings.EcsPropertiesToGenerate; const multiValuedProperties = new Set(mappings.EcsEventLogMultiValuedProperties); augmentMappings(ecsMappings.mappings, multiValuedProperties); diff --git a/x-pack/plugins/event_log/scripts/mappings.js b/x-pack/plugins/event_log/scripts/mappings.js index 3d2deda65f489..a7e5f4ae6cb1e 100644 --- a/x-pack/plugins/event_log/scripts/mappings.js +++ b/x-pack/plugins/event_log/scripts/mappings.js @@ -5,87 +5,86 @@ * 2.0. */ -exports.EcsKibanaExtensionsMappings = { - properties: { - // kibana server uuid - server_uuid: { - type: 'keyword', - ignore_above: 1024, - }, - // alerting specific fields - alerting: { - properties: { - instance_id: { - type: 'keyword', - ignore_above: 1024, - }, - action_group_id: { - type: 'keyword', - ignore_above: 1024, - }, - action_subgroup: { - type: 'keyword', - ignore_above: 1024, - }, - status: { - type: 'keyword', - ignore_above: 1024, - }, +/** + * These are mappings of custom properties that are not part of ECS. + * Must not interfere with standard ECS fields and field sets. + */ +exports.EcsCustomPropertyMappings = { + kibana: { + properties: { + // kibana server uuid + server_uuid: { + type: 'keyword', + ignore_above: 1024, }, - }, - // array of saved object references, for "linking" via search - saved_objects: { - type: 'nested', - properties: { - // relation; currently only supports "primary" or not set - rel: { - type: 'keyword', - ignore_above: 1024, + // alerting specific fields + alerting: { + properties: { + instance_id: { + type: 'keyword', + ignore_above: 1024, + }, + action_group_id: { + type: 'keyword', + ignore_above: 1024, + }, + action_subgroup: { + type: 'keyword', + ignore_above: 1024, + }, + status: { + type: 'keyword', + ignore_above: 1024, + }, }, - // relevant kibana space - namespace: { - type: 'keyword', - ignore_above: 1024, - }, - id: { - type: 'keyword', - ignore_above: 1024, - }, - type: { - type: 'keyword', - ignore_above: 1024, + }, + // array of saved object references, for "linking" via search + saved_objects: { + type: 'nested', + properties: { + // relation; currently only supports "primary" or not set + rel: { + type: 'keyword', + ignore_above: 1024, + }, + // relevant kibana space + namespace: { + type: 'keyword', + ignore_above: 1024, + }, + id: { + type: 'keyword', + ignore_above: 1024, + }, + type: { + type: 'keyword', + ignore_above: 1024, + }, }, }, }, }, }; -// ECS and Kibana ECS extension properties to generate -exports.EcsEventLogProperties = [ +/** + * These properties will be added to the generated event schema. + * Here you can specify single fields (log.level) and whole field sets (event). + */ +exports.EcsPropertiesToGenerate = [ '@timestamp', - 'tags', 'message', - 'ecs.version', - 'event.action', - 'event.provider', - 'event.start', - 'event.duration', - 'event.end', - 'event.outcome', // optional, but one of failure, success, unknown - 'event.reason', - 'error.message', + 'tags', + 'ecs', + 'error', + 'event', + 'log.level', + 'log.logger', + 'rule', 'user.name', - 'kibana.server_uuid', - 'kibana.alerting.instance_id', - 'kibana.alerting.action_group_id', - 'kibana.alerting.action_subgroup', - 'kibana.alerting.status', - 'kibana.saved_objects.rel', - 'kibana.saved_objects.namespace', - 'kibana.saved_objects.id', - 'kibana.saved_objects.name', - 'kibana.saved_objects.type', + 'kibana', ]; -// properties that can have multiple values (array vs single value) -exports.EcsEventLogMultiValuedProperties = ['tags']; +/** + * These properties can have multiple values (are arrays in the generated event schema). + */ +exports.EcsEventLogMultiValuedProperties = ['tags', 'event.category', 'event.type', 'rule.author']; diff --git a/x-pack/test/plugin_api_integration/test_suites/event_log/service_api_integration.ts b/x-pack/test/plugin_api_integration/test_suites/event_log/service_api_integration.ts index df81de6d8c3d0..f9f518091847d 100644 --- a/x-pack/test/plugin_api_integration/test_suites/event_log/service_api_integration.ts +++ b/x-pack/test/plugin_api_integration/test_suites/event_log/service_api_integration.ts @@ -5,6 +5,7 @@ * 2.0. */ +import _ from 'lodash'; import uuid from 'uuid'; import expect from '@kbn/expect/expect.js'; import { IEvent } from '../../../../plugins/event_log/server'; @@ -77,30 +78,108 @@ export default function ({ getService }: FtrProviderContext) { await registerProviderActions('provider1', ['action1', 'action2']); } - const providerActions = await getProviderActions('provider1'); + const providerActions = await getRegisteredProviderActions('provider1'); expect(providerActions.body.actions).to.be.eql(['action1', 'action2']); }); - it('should allow write an event to index document if indexing entries is enabled', async () => { - const initResult = await isProviderActionRegistered('provider4', 'action1'); + it('should allow to log an event and then find it by saved object', async () => { + const { provider, action } = await getTestProviderAction(); + const savedObject = getTestSavedObject(); + const event: IEvent = { + event: { provider, action }, + kibana: { saved_objects: [savedObject] }, + }; - if (!initResult.body.isProviderActionRegistered) { - await registerProviderActions('provider4', ['action1', 'action2']); - } + const indexedEvent = await logAndWaitUntilIndexed(event, savedObject.type, savedObject.id); - const eventId = uuid.v4(); + expect(indexedEvent.event.provider).to.be.eql(event.event?.provider); + expect(indexedEvent.event.action).to.be.eql(event.event?.action); + }); + + it('should respect event schema - properly index and preserve all the properties of an event', async () => { + const { provider, action } = await getTestProviderAction(); + const savedObject = getTestSavedObject(); const event: IEvent = { - event: { action: 'action1', provider: 'provider4' }, - kibana: { saved_objects: [{ rel: 'primary', type: 'event_log_test', id: eventId }] }, + '@timestamp': '2042-03-25T11:53:24.911Z', + message: 'some message', + tags: ['some', 'tags'], + event: { + provider, + action, + category: ['some', 'categories'], + code: '4242', + created: '2042-03-25T11:53:24.911Z', + dataset: `${provider}.dataset`, + hash: '123456789012345678901234567890ABCD', + id: '98506718-03ec-4d0a-a7bd-b8459a60a82d', + ingested: '2042-03-25T11:53:24.911Z', + kind: 'event', + module: `${provider}.module`, + original: 'Sep 19 08:26:10 host CEF:0|Security| worm successfully stopped', + outcome: 'success', + reason: 'Terminated an unexpected process', + reference: 'https://system.example.com/event/#0001234', + risk_score: 987.65, + risk_score_norm: 42.5, + sequence: 1234567890, + severity: 20, + timezone: 'Europe/Amsterdam', + type: ['change', 'info'], + url: 'https://mysystem.example.com/alert/5271dedb-f5b0-4218-87f0-4ac4870a38fe', + }, + error: { + code: '42000', + id: 'f53be013-8a8c-4d39-b0f0-2781bb088a33', + message: 'Unexpected error', + stack_trace: `Error: Unexpected error + at Context. (x-pack/test/plugin_api_integration/test_suites/event_log/service_api_integration.ts:160:13) + at Object.apply (node_modules/@kbn/test/src/functional_test_runner/lib/mocha/wrap_function.js:73:16) + at Object.apply (node_modules/@kbn/test/src/functional_test_runner/lib/mocha/wrap_function.js:73:16)`, + type: 'Error', + }, + log: { + level: 'warning', + logger: `${provider}.child-logger`, + }, + rule: { + author: ['Elastic', 'Security'], + category: 'Attempted Information Leak', + description: 'Block requests to public DNS over HTTPS / TLS protocols', + id: '101', + license: 'Apache 2.0', + name: 'BLOCK_DNS_over_TLS', + reference: 'https://en.wikipedia.org/wiki/DNS_over_TLS', + ruleset: 'Standard_Protocol_Filters', + uuid: '1fd3e1ad-1376-406f-ac63-df97db5d2fae', + version: '1.1', + }, + user: { + name: 'elastic', + }, + kibana: { + saved_objects: [savedObject], + alerting: { + instance_id: 'alert instance id', + action_group_id: 'alert action group', + action_subgroup: 'alert action subgroup', + status: 'overall alert status, after alert execution', + }, + }, }; - await logTestEvent(eventId, event); - - await retry.try(async () => { - const uri = `/api/event_log/event_log_test/${eventId}/_find`; - log.debug(`calling ${uri}`); - const result = await supertest.get(uri).set('kbn-xsrf', 'foo').expect(200); - expect(result.body.data.length).to.be.eql(1); - }); + + const indexedEvent = await logAndWaitUntilIndexed(event, savedObject.type, savedObject.id); + + // Omit properties which are set by the event logger + // NOTE: event.* properties are set by the `/api/log_event_fixture/${savedObjectId}/_log` route handler + const propertiesToCheck = _.omit(indexedEvent, [ + 'ecs', + 'event.start', + 'event.end', + 'event.duration', + 'kibana.server_uuid', + ]); + + expect(propertiesToCheck).to.be.eql(event); }); }); @@ -120,7 +199,7 @@ export default function ({ getService }: FtrProviderContext) { .expect(200); } - async function getProviderActions(provider: string) { + async function getRegisteredProviderActions(provider: string) { log.debug(`getProviderActions ${provider}`); return await supertest .get(`/api/log_event_fixture/${provider}/getProviderActions`) @@ -152,12 +231,53 @@ export default function ({ getService }: FtrProviderContext) { .expect(200); } - async function logTestEvent(id: string, event: IEvent) { - log.debug(`Logging Event for Saved Object ${id}`); + async function getTestProviderAction() { + const provider = `provider-${uuid.v4()}`; + const action = `action-${uuid.v4()}`; + + const response = await isProviderActionRegistered(provider, action); + if (!response.body.isProviderActionRegistered) { + await registerProviderActions(provider, [action]); + } + + return { provider, action }; + } + + function getTestSavedObject() { + return { type: 'event_log_test', id: uuid.v4(), rel: 'primary' }; + } + + async function logEvent(event: IEvent, savedObjectId: string) { + log.debug(`Logging Event for Saved Object ${savedObjectId}`); return await supertest - .post(`/api/log_event_fixture/${id}/_log`) + .post(`/api/log_event_fixture/${savedObjectId}/_log`) .set('kbn-xsrf', 'foo') .send(event) .expect(200); } + + async function fetchEvents(savedObjectType: string, savedObjectId: string) { + log.debug(`Fetching events of Saved Object ${savedObjectId}`); + return await supertest + .get(`/api/event_log/${savedObjectType}/${savedObjectId}/_find`) + .set('kbn-xsrf', 'foo') + .expect(200); + } + + // NOTE: It supports indexing only 1 event per test. + async function logAndWaitUntilIndexed( + event: IEvent, + savedObjectType: string, + savedObjectId: string + ) { + await logEvent(event, savedObjectId); + + const response = await retry.tryForTime(30000, async () => { + const res = await fetchEvents(savedObjectType, savedObjectId); + expect(res.body.data.length).to.be.eql(1); + return res; + }); + + return response.body.data[0]; + } } From 0e40b94348567a721c353b068b6b62c20db428b9 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Mon, 29 Mar 2021 17:31:01 +0300 Subject: [PATCH 48/55] [TSVB] Change the default mode from last value to entire timerange (#93608) * Make 'enter time range' value as default and add telemetry for 'last value' mode * Fix telemetry schema * Fix test * Add possibility count timeseries created from dashboard * Fix remark * Fix remark * Fix problem with time_range_mode * Fix tests * Fix tests * Fix tests for markdown and table * exclude TSVB which have type as timeseries * Add description for field in schema in telemetry * Fix telemetry schema * Fix some remarks * Added check for hits * fix CI * fix CI Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Alexey Antonov --- src/plugins/telemetry/schema/oss_plugins.json | 10 ++ src/plugins/vis_type_timeseries/kibana.json | 1 + .../application/components/index_pattern.js | 15 +- .../components/panel_config/gauge.tsx | 2 + .../components/panel_config/metric.tsx | 1 + .../components/panel_config/table.tsx | 2 + .../components/panel_config/top_n.tsx | 2 + .../application/components/vis_editor.tsx | 13 +- .../vis_type_timeseries/server/plugin.ts | 6 + .../vis_type_timeseries/server/types.ts | 4 + .../get_usage_collector.mock.ts | 14 ++ .../get_usage_collector.test.ts | 168 ++++++++++++++++++ .../usage_collector/get_usage_collector.ts | 86 +++++++++ .../server/usage_collector/index.ts | 9 + .../register_timeseries_collector.test.ts | 61 +++++++ .../register_timeseries_collector.ts | 35 ++++ test/functional/apps/visualize/_tsvb_chart.ts | 17 +- .../apps/visualize/_tsvb_markdown.ts | 3 + test/functional/apps/visualize/_tsvb_table.ts | 3 + .../page_objects/visual_builder_page.ts | 15 ++ .../test/functional/apps/rollup_job/tsvb.js | 1 + 21 files changed, 459 insertions(+), 9 deletions(-) create mode 100644 src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.mock.ts create mode 100644 src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.test.ts create mode 100644 src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.ts create mode 100644 src/plugins/vis_type_timeseries/server/usage_collector/index.ts create mode 100644 src/plugins/vis_type_timeseries/server/usage_collector/register_timeseries_collector.test.ts create mode 100644 src/plugins/vis_type_timeseries/server/usage_collector/register_timeseries_collector.ts diff --git a/src/plugins/telemetry/schema/oss_plugins.json b/src/plugins/telemetry/schema/oss_plugins.json index 3cc054bdcac88..ee96ae041dd09 100644 --- a/src/plugins/telemetry/schema/oss_plugins.json +++ b/src/plugins/telemetry/schema/oss_plugins.json @@ -9333,6 +9333,16 @@ } } }, + "vis_type_timeseries": { + "properties": { + "timeseries_use_last_value_mode_total": { + "type": "long", + "_meta": { + "description": "Number of TSVB visualizations using \"last value\" as a time range" + } + } + } + }, "vis_type_vega": { "properties": { "vega_lib_specs_total": { diff --git a/src/plugins/vis_type_timeseries/kibana.json b/src/plugins/vis_type_timeseries/kibana.json index aa5eac84663ad..242b62a2c5ee4 100644 --- a/src/plugins/vis_type_timeseries/kibana.json +++ b/src/plugins/vis_type_timeseries/kibana.json @@ -5,5 +5,6 @@ "server": true, "ui": true, "requiredPlugins": ["charts", "data", "expressions", "visualizations", "visualize"], + "optionalPlugins": ["usageCollection"], "requiredBundles": ["kibanaUtils", "kibanaReact"] } diff --git a/src/plugins/vis_type_timeseries/public/application/components/index_pattern.js b/src/plugins/vis_type_timeseries/public/application/components/index_pattern.js index 945f30475ee41..8ec35e03c0aec 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/index_pattern.js +++ b/src/plugins/vis_type_timeseries/public/application/components/index_pattern.js @@ -91,13 +91,6 @@ export const IndexPattern = ({ const handleTextChange = createTextHandler(onChange); const timeRangeOptions = [ - { - label: i18n.translate('visTypeTimeseries.indexPattern.timeRange.lastValue', { - defaultMessage: 'Last value', - }), - value: TIME_RANGE_DATA_MODES.LAST_VALUE, - disabled: !isTimerangeModeEnabled(TIME_RANGE_DATA_MODES.LAST_VALUE, uiRestrictions), - }, { label: i18n.translate('visTypeTimeseries.indexPattern.timeRange.entireTimeRange', { defaultMessage: 'Entire time range', @@ -105,6 +98,13 @@ export const IndexPattern = ({ value: TIME_RANGE_DATA_MODES.ENTIRE_TIME_RANGE, disabled: !isTimerangeModeEnabled(TIME_RANGE_DATA_MODES.ENTIRE_TIME_RANGE, uiRestrictions), }, + { + label: i18n.translate('visTypeTimeseries.indexPattern.timeRange.lastValue', { + defaultMessage: 'Last value', + }), + value: TIME_RANGE_DATA_MODES.LAST_VALUE, + disabled: !isTimerangeModeEnabled(TIME_RANGE_DATA_MODES.LAST_VALUE, uiRestrictions), + }, ]; const defaults = { @@ -141,6 +141,7 @@ export const IndexPattern = ({ })} > this.switchTab(PANEL_CONFIG_TABS.DATA)} + data-test-subj="gaugeEditorDataBtn" > this.switchTab(PANEL_CONFIG_TABS.OPTIONS)} + data-test-subj="gaugeEditorPanelOptionsBtn" > this.switchTab(PANEL_CONFIG_TABS.DATA)} + data-test-subj="metricEditorDataBtn" > this.switchTab(PANEL_CONFIG_TABS.DATA)} + data-test-subj="tableEditorDataBtn" > this.switchTab(PANEL_CONFIG_TABS.OPTIONS)} + data-test-subj="tableEditorPanelOptionsBtn" > this.switchTab(PANEL_CONFIG_TABS.DATA)} + data-test-subj="topNEditorDataBtn" > this.switchTab(PANEL_CONFIG_TABS.OPTIONS)} + data-test-subj="topNEditorPanelOptionsBtn" > { visDataRoutes(router, framework); fieldsRoutes(router, framework); + if (plugins.usageCollection) { + registerTimeseriesUsageCollector(plugins.usageCollection, globalConfig$); + } + return { getVisData: async ( requestContext: VisTypeTimeseriesRequestHandlerContext, diff --git a/src/plugins/vis_type_timeseries/server/types.ts b/src/plugins/vis_type_timeseries/server/types.ts index 3ab5d8ac6ea7a..7b42cf61d52b3 100644 --- a/src/plugins/vis_type_timeseries/server/types.ts +++ b/src/plugins/vis_type_timeseries/server/types.ts @@ -6,6 +6,8 @@ * Side Public License, v 1. */ +import { Observable } from 'rxjs'; +import { SharedGlobalConfig } from 'kibana/server'; import type { IRouter, IUiSettingsClient, KibanaRequest } from 'src/core/server'; import type { DataRequestHandlerContext, @@ -16,6 +18,8 @@ import type { VisPayload } from '../common/types'; import type { SearchStrategyRegistry } from './lib/search_strategies'; import type { CachedIndexPatternFetcher } from './lib/search_strategies/lib/cached_index_pattern_fetcher'; +export type ConfigObservable = Observable; + export type VisTypeTimeseriesRequestHandlerContext = DataRequestHandlerContext; export type VisTypeTimeseriesRouter = IRouter; export type VisTypeTimeseriesVisDataRequest = KibanaRequest<{}, {}, VisPayload>; diff --git a/src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.mock.ts b/src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.mock.ts new file mode 100644 index 0000000000000..bb52d215c67e8 --- /dev/null +++ b/src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.mock.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const mockStats = { somestat: 1 }; +export const mockGetStats = jest.fn().mockResolvedValue(mockStats); + +jest.doMock('./get_usage_collector', () => ({ + getStats: mockGetStats, +})); diff --git a/src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.test.ts b/src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.test.ts new file mode 100644 index 0000000000000..8ecc02072905f --- /dev/null +++ b/src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.test.ts @@ -0,0 +1,168 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { getStats } from './get_usage_collector'; +import { createCollectorFetchContextMock } from 'src/plugins/usage_collection/server/mocks'; +import { TIME_RANGE_DATA_MODES } from '../../common/timerange_data_modes'; + +const mockedSavedObjects = [ + { + _id: 'visualization:timeseries-123', + _source: { + type: 'visualization', + visualization: { + visState: JSON.stringify({ + type: 'metrics', + title: 'TSVB visualization 1', + params: { + time_range_mode: TIME_RANGE_DATA_MODES.ENTIRE_TIME_RANGE, + }, + }), + }, + }, + }, + { + _id: 'visualization:timeseries-321', + _source: { + type: 'visualization', + visualization: { + visState: JSON.stringify({ + type: 'metrics', + title: 'TSVB visualization 2', + params: { + time_range_mode: TIME_RANGE_DATA_MODES.LAST_VALUE, + }, + }), + }, + }, + }, + { + _id: 'visualization:timeseries-456', + _source: { + type: 'visualization', + visualization: { + visState: JSON.stringify({ + type: 'metrics', + title: 'TSVB visualization 3', + params: { + time_range_mode: undefined, + }, + }), + }, + }, + }, +]; + +const mockedSavedObjectsByValue = [ + { + attributes: { + panelsJSON: JSON.stringify({ + type: 'visualization', + embeddableConfig: { + savedVis: { + type: 'metrics', + params: { + time_range_mode: TIME_RANGE_DATA_MODES.LAST_VALUE, + }, + }, + }, + }), + }, + }, + { + attributes: { + panelsJSON: JSON.stringify({ + type: 'visualization', + embeddableConfig: { + savedVis: { + type: 'metrics', + params: { + time_range_mode: TIME_RANGE_DATA_MODES.ENTIRE_TIME_RANGE, + }, + }, + }, + }), + }, + }, +]; + +const getMockCollectorFetchContext = (hits?: unknown[], savedObjectsByValue: unknown[] = []) => { + const fetchParamsMock = createCollectorFetchContextMock(); + + fetchParamsMock.esClient.search = jest.fn().mockResolvedValue({ body: { hits: { hits } } }); + fetchParamsMock.soClient.find = jest.fn().mockResolvedValue({ + saved_objects: savedObjectsByValue, + }); + return fetchParamsMock; +}; + +describe('Timeseries visualization usage collector', () => { + const mockIndex = 'mock_index'; + + test('Returns undefined when no results found (undefined)', async () => { + const mockCollectorFetchContext = getMockCollectorFetchContext([], []); + const result = await getStats( + mockCollectorFetchContext.esClient, + mockCollectorFetchContext.soClient, + mockIndex + ); + + expect(result).toBeUndefined(); + }); + + test('Returns undefined when no timeseries saved objects found', async () => { + const mockCollectorFetchContext = getMockCollectorFetchContext( + [ + { + _id: 'visualization:myvis-123', + _source: { + type: 'visualization', + visualization: { visState: '{"type": "area"}' }, + }, + }, + ], + [ + { + attributes: { + panelsJSON: JSON.stringify({ + type: 'visualization', + embeddableConfig: { + savedVis: { + type: 'area', + }, + }, + }), + }, + }, + ] + ); + const result = await getStats( + mockCollectorFetchContext.esClient, + mockCollectorFetchContext.soClient, + mockIndex + ); + + expect(result).toBeUndefined(); + }); + + test('Summarizes visualizations response data', async () => { + const mockCollectorFetchContext = getMockCollectorFetchContext( + mockedSavedObjects, + mockedSavedObjectsByValue + ); + const result = await getStats( + mockCollectorFetchContext.esClient, + mockCollectorFetchContext.soClient, + mockIndex + ); + + expect(result).toMatchObject({ + timeseries_use_last_value_mode_total: 3, + }); + }); +}); diff --git a/src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.ts b/src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.ts new file mode 100644 index 0000000000000..c1a8715f72227 --- /dev/null +++ b/src/plugins/vis_type_timeseries/server/usage_collector/get_usage_collector.ts @@ -0,0 +1,86 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { ElasticsearchClient } from 'src/core/server'; +import { SavedObjectsClientContract, ISavedObjectsRepository } from 'kibana/server'; +import { TIME_RANGE_DATA_MODES } from '../../common/timerange_data_modes'; +import { findByValueEmbeddables } from '../../../dashboard/server'; + +export interface TimeseriesUsage { + timeseries_use_last_value_mode_total: number; +} + +interface VisState { + type?: string; + params?: any; +} + +export const getStats = async ( + esClient: ElasticsearchClient, + soClient: SavedObjectsClientContract | ISavedObjectsRepository, + index: string +): Promise => { + const timeseriesUsage = { + timeseries_use_last_value_mode_total: 0, + }; + + const searchParams = { + size: 10000, + index, + ignoreUnavailable: true, + filterPath: ['hits.hits._id', 'hits.hits._source.visualization'], + body: { + query: { + bool: { + filter: { term: { type: 'visualization' } }, + }, + }, + }, + }; + + const { body: esResponse } = await esClient.search<{ + visualization: { visState: string }; + updated_at: string; + }>(searchParams); + + function telemetryUseLastValueMode(visState: VisState) { + if ( + visState.type === 'metrics' && + visState.params.type !== 'timeseries' && + (!visState.params.time_range_mode || + visState.params.time_range_mode === TIME_RANGE_DATA_MODES.LAST_VALUE) + ) { + timeseriesUsage.timeseries_use_last_value_mode_total++; + } + } + + if (esResponse?.hits?.hits?.length) { + for (const hit of esResponse.hits.hits) { + if (hit._source && 'visualization' in hit._source) { + const { visualization } = hit._source!; + + let visState: VisState = {}; + try { + visState = JSON.parse(visualization?.visState ?? '{}'); + } catch (e) { + // invalid visState + } + + telemetryUseLastValueMode(visState); + } + } + } + + const byValueVisualizations = await findByValueEmbeddables(soClient, 'visualization'); + + for (const item of byValueVisualizations) { + telemetryUseLastValueMode(item.savedVis as VisState); + } + + return timeseriesUsage.timeseries_use_last_value_mode_total ? timeseriesUsage : undefined; +}; diff --git a/src/plugins/vis_type_timeseries/server/usage_collector/index.ts b/src/plugins/vis_type_timeseries/server/usage_collector/index.ts new file mode 100644 index 0000000000000..7f72662e154ea --- /dev/null +++ b/src/plugins/vis_type_timeseries/server/usage_collector/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { registerTimeseriesUsageCollector } from './register_timeseries_collector'; diff --git a/src/plugins/vis_type_timeseries/server/usage_collector/register_timeseries_collector.test.ts b/src/plugins/vis_type_timeseries/server/usage_collector/register_timeseries_collector.test.ts new file mode 100644 index 0000000000000..2612a3882af2d --- /dev/null +++ b/src/plugins/vis_type_timeseries/server/usage_collector/register_timeseries_collector.test.ts @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { of } from 'rxjs'; +import { mockStats, mockGetStats } from './get_usage_collector.mock'; +import { createUsageCollectionSetupMock } from 'src/plugins/usage_collection/server/usage_collection.mock'; +import { createCollectorFetchContextMock } from 'src/plugins/usage_collection/server/mocks'; +import { registerTimeseriesUsageCollector } from './register_timeseries_collector'; +import { ConfigObservable } from '../types'; + +describe('registerTimeseriesUsageCollector', () => { + const mockIndex = 'mock_index'; + const mockConfig = of({ kibana: { index: mockIndex } }) as ConfigObservable; + + it('makes a usage collector and registers it`', () => { + const mockCollectorSet = createUsageCollectionSetupMock(); + registerTimeseriesUsageCollector(mockCollectorSet, mockConfig); + expect(mockCollectorSet.makeUsageCollector).toBeCalledTimes(1); + expect(mockCollectorSet.registerCollector).toBeCalledTimes(1); + }); + + it('makeUsageCollector configs fit the shape', () => { + const mockCollectorSet = createUsageCollectionSetupMock(); + registerTimeseriesUsageCollector(mockCollectorSet, mockConfig); + expect(mockCollectorSet.makeUsageCollector).toHaveBeenCalledWith({ + type: 'vis_type_timeseries', + isReady: expect.any(Function), + fetch: expect.any(Function), + schema: expect.any(Object), + }); + const usageCollectorConfig = mockCollectorSet.makeUsageCollector.mock.calls[0][0]; + expect(usageCollectorConfig.isReady()).toBe(true); + }); + + it('makeUsageCollector config.isReady returns true', () => { + const mockCollectorSet = createUsageCollectionSetupMock(); + registerTimeseriesUsageCollector(mockCollectorSet, mockConfig); + const usageCollectorConfig = mockCollectorSet.makeUsageCollector.mock.calls[0][0]; + expect(usageCollectorConfig.isReady()).toBe(true); + }); + + it('makeUsageCollector config.fetch calls getStats', async () => { + const mockCollectorSet = createUsageCollectionSetupMock(); + registerTimeseriesUsageCollector(mockCollectorSet, mockConfig); + const usageCollector = mockCollectorSet.makeUsageCollector.mock.results[0].value; + const mockedCollectorFetchContext = createCollectorFetchContextMock(); + const fetchResult = await usageCollector.fetch(mockedCollectorFetchContext); + expect(mockGetStats).toBeCalledTimes(1); + expect(mockGetStats).toBeCalledWith( + mockedCollectorFetchContext.esClient, + mockedCollectorFetchContext.soClient, + mockIndex + ); + expect(fetchResult).toBe(mockStats); + }); +}); diff --git a/src/plugins/vis_type_timeseries/server/usage_collector/register_timeseries_collector.ts b/src/plugins/vis_type_timeseries/server/usage_collector/register_timeseries_collector.ts new file mode 100644 index 0000000000000..5edeb6654020e --- /dev/null +++ b/src/plugins/vis_type_timeseries/server/usage_collector/register_timeseries_collector.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; +import { first } from 'rxjs/operators'; +import { getStats, TimeseriesUsage } from './get_usage_collector'; +import { ConfigObservable } from '../types'; + +export function registerTimeseriesUsageCollector( + collectorSet: UsageCollectionSetup, + config: ConfigObservable +) { + const collector = collectorSet.makeUsageCollector({ + type: 'vis_type_timeseries', + isReady: () => true, + schema: { + timeseries_use_last_value_mode_total: { + type: 'long', + _meta: { description: 'Number of TSVB visualizations using "last value" as a time range' }, + }, + }, + fetch: async ({ esClient, soClient }) => { + const { index } = (await config.pipe(first()).toPromise()).kibana; + + return await getStats(esClient, soClient, index); + }, + }); + + collectorSet.registerCollector(collector); +} diff --git a/test/functional/apps/visualize/_tsvb_chart.ts b/test/functional/apps/visualize/_tsvb_chart.ts index 80ab33170c396..6b0080c3856fd 100644 --- a/test/functional/apps/visualize/_tsvb_chart.ts +++ b/test/functional/apps/visualize/_tsvb_chart.ts @@ -43,6 +43,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.visualBuilder.resetPage(); await PageObjects.visualBuilder.clickMetric(); await PageObjects.visualBuilder.checkMetricTabIsPresent(); + await PageObjects.visualBuilder.clickPanelOptions('metric'); + await PageObjects.visualBuilder.setMetricsDataTimerangeMode('Last value'); + await PageObjects.visualBuilder.clickDataTab('metric'); }); it('should not have inspector enabled', async () => { @@ -81,12 +84,18 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.visualBuilder.checkGaugeTabIsPresent(); }); + it('should "Entire time range" selected as timerange mode for new visualization', async () => { + await PageObjects.visualBuilder.clickPanelOptions('gauge'); + await PageObjects.visualBuilder.checkSelectedDataTimerangeMode('Entire time range'); + await PageObjects.visualBuilder.clickDataTab('gauge'); + }); + it('should verify gauge label and count display', async () => { await PageObjects.visChart.waitForVisualizationRenderingStabilized(); const labelString = await PageObjects.visualBuilder.getGaugeLabel(); expect(labelString).to.be('Count'); const gaugeCount = await PageObjects.visualBuilder.getGaugeCount(); - expect(gaugeCount).to.be('156'); + expect(gaugeCount).to.be('13,830'); }); }); @@ -95,6 +104,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.visualBuilder.resetPage(); await PageObjects.visualBuilder.clickTopN(); await PageObjects.visualBuilder.checkTopNTabIsPresent(); + await PageObjects.visualBuilder.clickPanelOptions('topN'); + await PageObjects.visualBuilder.setMetricsDataTimerangeMode('Last value'); + await PageObjects.visualBuilder.clickDataTab('topN'); }); it('should verify topN label and count display', async () => { @@ -115,6 +127,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.visualBuilder.resetPage(); await PageObjects.visualBuilder.clickMetric(); await PageObjects.visualBuilder.checkMetricTabIsPresent(); + await PageObjects.visualBuilder.clickPanelOptions('metric'); + await PageObjects.visualBuilder.setMetricsDataTimerangeMode('Last value'); + await PageObjects.visualBuilder.clickDataTab('metric'); await PageObjects.timePicker.setAbsoluteRange( 'Sep 22, 2019 @ 00:00:00.000', 'Sep 23, 2019 @ 00:00:00.000' diff --git a/test/functional/apps/visualize/_tsvb_markdown.ts b/test/functional/apps/visualize/_tsvb_markdown.ts index caf9cab8b703a..b61fbf967a9bd 100644 --- a/test/functional/apps/visualize/_tsvb_markdown.ts +++ b/test/functional/apps/visualize/_tsvb_markdown.ts @@ -37,6 +37,9 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { 'Sep 22, 2015 @ 06:00:00.000', 'Sep 22, 2015 @ 11:00:00.000' ); + await visualBuilder.markdownSwitchSubTab('options'); + await visualBuilder.setMetricsDataTimerangeMode('Last value'); + await visualBuilder.markdownSwitchSubTab('markdown'); }); it('should render subtabs and table variables markdown components', async () => { diff --git a/test/functional/apps/visualize/_tsvb_table.ts b/test/functional/apps/visualize/_tsvb_table.ts index dfa232b6e527d..36c0e26430ff5 100644 --- a/test/functional/apps/visualize/_tsvb_table.ts +++ b/test/functional/apps/visualize/_tsvb_table.ts @@ -24,6 +24,9 @@ export default function ({ getPageObjects }: FtrProviderContext) { await visualBuilder.clickTable(); await visualBuilder.checkTableTabIsPresent(); + await visualBuilder.clickPanelOptions('table'); + await visualBuilder.setMetricsDataTimerangeMode('Last value'); + await visualBuilder.clickDataTab('table'); await visualBuilder.selectGroupByField('machine.os.raw'); await visualBuilder.setColumnLabelValue('OS'); await visChart.waitForVisualizationRenderingStabilized(); diff --git a/test/functional/page_objects/visual_builder_page.ts b/test/functional/page_objects/visual_builder_page.ts index 90873d72234d0..fbb2b101eb3af 100644 --- a/test/functional/page_objects/visual_builder_page.ts +++ b/test/functional/page_objects/visual_builder_page.ts @@ -431,6 +431,11 @@ export function VisualBuilderPageProvider({ getService, getPageObjects }: FtrPro await PageObjects.header.waitUntilLoadingHasFinished(); } + public async clickDataTab(tabName: string) { + await testSubjects.click(`${tabName}EditorDataBtn`); + await PageObjects.header.waitUntilLoadingHasFinished(); + } + public async switchIndexPatternSelectionMode(useKibanaIndices: boolean) { await testSubjects.click('switchIndexPatternSelectionModePopover'); await testSubjects.setEuiSwitch( @@ -638,6 +643,16 @@ export function VisualBuilderPageProvider({ getService, getPageObjects }: FtrPro ); return await comboBox.isOptionSelected(groupBy, value); } + + public async setMetricsDataTimerangeMode(value: string) { + const dataTimeRangeMode = await testSubjects.find('dataTimeRangeMode'); + return await comboBox.setElement(dataTimeRangeMode, value); + } + + public async checkSelectedDataTimerangeMode(value: string) { + const dataTimeRangeMode = await testSubjects.find('dataTimeRangeMode'); + return await comboBox.isOptionSelected(dataTimeRangeMode, value); + } } return new VisualBuilderPage(); diff --git a/x-pack/test/functional/apps/rollup_job/tsvb.js b/x-pack/test/functional/apps/rollup_job/tsvb.js index 9c4eae268d4a8..aebea93f1e4bf 100644 --- a/x-pack/test/functional/apps/rollup_job/tsvb.js +++ b/x-pack/test/functional/apps/rollup_job/tsvb.js @@ -84,6 +84,7 @@ export default function ({ getService, getPageObjects }) { ); await PageObjects.visualBuilder.clickPanelOptions('metric'); await PageObjects.visualBuilder.setIndexPatternValue(rollupTargetIndexName, false); + await PageObjects.visualBuilder.setMetricsDataTimerangeMode('Last value'); await PageObjects.visualBuilder.setIntervalValue('1d'); await PageObjects.visualBuilder.setDropLastBucket(false); await PageObjects.common.sleep(3000); From 478ad3bad5e375aa886ac750e9cbe5cc87ccbb0f Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 29 Mar 2021 16:21:49 +0100 Subject: [PATCH 49/55] [Fleet] Adding ML module asset type (#94950) * [Fleet] Adding ML module asset type * adding test * guessing asset ids * better guess at IDs * renaming asset ids Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../package_to_package_policy.test.ts | 1 + .../plugins/fleet/common/types/models/epm.ts | 2 + .../fleet/sections/epm/constants.tsx | 2 + .../services/epm/kibana/assets/install.ts | 2 + .../apis/epm/install_remove_assets.ts | 10 + .../apis/epm/update_assets.ts | 5 + .../kibana/ml_module/sample_ml_module.json | 403 ++++++++++++++++++ .../kibana/ml_module/sample_ml_module.json | 403 ++++++++++++++++++ 8 files changed, 828 insertions(+) create mode 100644 x-pack/test/fleet_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/kibana/ml_module/sample_ml_module.json create mode 100644 x-pack/test/fleet_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/kibana/ml_module/sample_ml_module.json diff --git a/x-pack/plugins/fleet/common/services/package_to_package_policy.test.ts b/x-pack/plugins/fleet/common/services/package_to_package_policy.test.ts index ab15212431401..a4cca4455a274 100644 --- a/x-pack/plugins/fleet/common/services/package_to_package_policy.test.ts +++ b/x-pack/plugins/fleet/common/services/package_to_package_policy.test.ts @@ -30,6 +30,7 @@ describe('Fleet - packageToPackagePolicy', () => { index_pattern: [], map: [], lens: [], + ml_module: [], }, elasticsearch: { ingest_pipeline: [], diff --git a/x-pack/plugins/fleet/common/types/models/epm.ts b/x-pack/plugins/fleet/common/types/models/epm.ts index 5ea997d217888..80fabd51613ae 100644 --- a/x-pack/plugins/fleet/common/types/models/epm.ts +++ b/x-pack/plugins/fleet/common/types/models/epm.ts @@ -50,6 +50,7 @@ export enum KibanaAssetType { indexPattern = 'index_pattern', map = 'map', lens = 'lens', + mlModule = 'ml_module', } /* @@ -62,6 +63,7 @@ export enum KibanaSavedObjectType { indexPattern = 'index-pattern', map = 'map', lens = 'lens', + mlModule = 'ml-module', } export enum ElasticsearchAssetType { diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/constants.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/constants.tsx index de7e16e1e5d2b..ea19a330adfee 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/constants.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/constants.tsx @@ -33,6 +33,7 @@ export const AssetTitleMap: Record = { map: 'Map', data_stream_ilm_policy: 'Data Stream ILM Policy', lens: 'Lens', + ml_module: 'ML Module', }; export const ServiceTitleMap: Record = { @@ -47,6 +48,7 @@ export const AssetIcons: Record = { visualization: 'visualizeApp', map: 'emsApp', lens: 'lensApp', + ml_module: 'mlApp', }; export const ServiceIcons: Record = { diff --git a/x-pack/plugins/fleet/server/services/epm/kibana/assets/install.ts b/x-pack/plugins/fleet/server/services/epm/kibana/assets/install.ts index 4196138a2534f..bfcc40e18fe80 100644 --- a/x-pack/plugins/fleet/server/services/epm/kibana/assets/install.ts +++ b/x-pack/plugins/fleet/server/services/epm/kibana/assets/install.ts @@ -37,6 +37,7 @@ const KibanaSavedObjectTypeMapping: Record { diff --git a/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts b/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts index 8d8dad7b24d83..abc91a973e6b6 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts @@ -394,6 +394,11 @@ const expectAssetsInstalled = ({ id: 'sample_lens', }); expect(resLens.id).equal('sample_lens'); + const resMlModule = await kibanaServer.savedObjects.get({ + type: 'ml-module', + id: 'sample_ml_module', + }); + expect(resMlModule.id).equal('sample_ml_module'); const resIndexPattern = await kibanaServer.savedObjects.get({ type: 'index-pattern', id: 'test-*', @@ -459,6 +464,10 @@ const expectAssetsInstalled = ({ id: 'sample_lens', type: 'lens', }, + { + id: 'sample_ml_module', + type: 'ml-module', + }, { id: 'sample_search', type: 'search', @@ -526,6 +535,7 @@ const expectAssetsInstalled = ({ { id: '47758dc2-979d-5fbe-a2bd-9eded68a5a43', type: 'epm-packages-assets' }, { id: '318959c9-997b-5a14-b328-9fc7355b4b74', type: 'epm-packages-assets' }, { id: 'e21b59b5-eb76-5ab0-bef2-1c8e379e6197', type: 'epm-packages-assets' }, + { id: '4c758d70-ecf1-56b3-b704-6d8374841b34', type: 'epm-packages-assets' }, { id: 'e786cbd9-0f3b-5a0b-82a6-db25145ebf58', type: 'epm-packages-assets' }, { id: '53c94591-aa33-591d-8200-cd524c2a0561', type: 'epm-packages-assets' }, { id: 'b658d2d4-752e-54b8-afc2-4c76155c1466', type: 'epm-packages-assets' }, diff --git a/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts b/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts index 2950436fab416..1a559ac5a5c75 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts @@ -296,6 +296,10 @@ export default function (providerContext: FtrProviderContext) { id: 'sample_lens', type: 'lens', }, + { + id: 'sample_ml_module', + type: 'ml-module', + }, ], installed_es: [ { @@ -344,6 +348,7 @@ export default function (providerContext: FtrProviderContext) { { id: '48e582df-b1d2-5f88-b6ea-ba1fafd3a569', type: 'epm-packages-assets' }, { id: 'bf3b0b65-9fdc-53c6-a9ca-e76140e56490', type: 'epm-packages-assets' }, { id: '7f4c5aca-b4f5-5f0a-95af-051da37513fc', type: 'epm-packages-assets' }, + { id: '4281a436-45a8-54ab-9724-fda6849f789d', type: 'epm-packages-assets' }, { id: '2e56f08b-1d06-55ed-abee-4708e1ccf0aa', type: 'epm-packages-assets' }, { id: 'c7bf1a39-e057-58a0-afde-fb4b48751d8c', type: 'epm-packages-assets' }, { id: '8c665f28-a439-5f43-b5fd-8fda7b576735', type: 'epm-packages-assets' }, diff --git a/x-pack/test/fleet_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/kibana/ml_module/sample_ml_module.json b/x-pack/test/fleet_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/kibana/ml_module/sample_ml_module.json new file mode 100644 index 0000000000000..ff7e3478d03e3 --- /dev/null +++ b/x-pack/test/fleet_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/kibana/ml_module/sample_ml_module.json @@ -0,0 +1,403 @@ +{ + "attributes": { + "id": "sample_ml_module", + "title": "Nginx access logs", + "description": "Find unusual activity in HTTP access logs from filebeat (ECS).", + "type": "Web Access Logs", + "logo": { + "icon": "logoNginx" + }, + "defaultIndexPattern": "filebeat-*", + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + }, + { + "exists": { + "field": "source.address" + } + }, + { + "exists": { + "field": "url.original" + } + }, + { + "exists": { + "field": "http.response.status_code" + } + } + ] + } + }, + "jobs": [ + { + "id": "visitor_rate_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect unusual visitor rates (ECS)", + "analysis_config": { + "bucket_span": "15m", + "summary_count_field_name": "dc_source_address", + "detectors": [ + { + "detector_description": "Nginx access visitor rate", + "function": "non_zero_count" + } + ], + "influencers": [] + }, + "analysis_limits": { + "model_memory_limit": "10mb" + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "model_plot_config": { + "enabled": true + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + }, + { + "id": "status_code_rate_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect unusual status code rates (ECS)", + "analysis_config": { + "bucket_span": "15m", + "detectors": [ + { + "detector_description": "Nginx access status code rate", + "function": "count", + "partition_field_name": "http.response.status_code" + } + ], + "influencers": [ + "http.response.status_code", + "source.address" + ] + }, + "analysis_limits": { + "model_memory_limit": "100mb" + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "model_plot_config": { + "enabled": true + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Investigate status code", + "url_value": "dashboards#/view/ml_http_access_explorer_ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:http.response.status_code,negate:!f,params:(query:\u0027$http.response.status_code$\u0027),type:phrase,value:\u0027$http.response.status_code$\u0027),query:(match:(http.response.status_code:(query:\u0027$http.response.status_code$\u0027,type:phrase))))),query:(language:kuery,query:\u0027\u0027))" + }, + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:http.response.status_code,negate:!f,params:(query:\u0027$http.response.status_code$\u0027),type:phrase,value:\u0027$http.response.status_code$\u0027),query:(match:(http.response.status_code:(query:\u0027$http.response.status_code$\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + }, + { + "id": "source_ip_url_count_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect unusual source IPs - high distinct count of URLs (ECS)", + "analysis_config": { + "bucket_span": "1h", + "detectors": [ + { + "detector_description": "Nginx access source IP high dc URL", + "function": "high_distinct_count", + "field_name": "url.original", + "over_field_name": "source.address" + } + ], + "influencers": [ + "source.address" + ] + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Investigate source IP", + "url_value": "dashboards#/view/ml_http_access_explorer_ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:source.address,negate:!f,params:(query:\u0027$source.address$\u0027),type:phrase,value:\u0027$source.address$\u0027),query:(match:(source.address:(query:\u0027$source.address$\u0027,type:phrase))))),query:(language:kuery,query:\u0027\u0027))" + }, + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:source.address,negate:!f,params:(query:\u0027$source.address$\u0027),type:phrase,value:\u0027$source.address$\u0027),query:(match:(source.address:(query:\u0027$source.address$\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + }, + { + "id": "source_ip_request_rate_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect unusual source IPs - high request rates (ECS)", + "analysis_config": { + "bucket_span": "1h", + "detectors": [ + { + "detector_description": "Nginx access source IP high count", + "function": "high_count", + "over_field_name": "source.address" + } + ], + "influencers": [ + "source.address" + ] + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Investigate source IP", + "url_value": "dashboards#/view/ml_http_access_explorer_ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:source.address,negate:!f,params:(query:\u0027$source.address$\u0027),type:phrase,value:\u0027$source.address$\u0027),query:(match:(source.address:(query:\u0027$source.address$\u0027,type:phrase))))),query:(language:kuery,query:\u0027\u0027))" + }, + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:source.address,negate:!f,params:(query:\u0027$source.address$\u0027),type:phrase,value:\u0027$source.address$\u0027),query:(match:(source.address:(query:\u0027$source.address$\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + }, + { + "id": "low_request_rate_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect low request rates (ECS)", + "analysis_config": { + "bucket_span": "15m", + "summary_count_field_name": "doc_count", + "detectors": [ + { + "detector_description": "Nginx access low request rate", + "function": "low_count" + } + ], + "influencers": [] + }, + "analysis_limits": { + "model_memory_limit": "10mb" + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "model_plot_config": { + "enabled": true + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + } + ], + "datafeeds": [ + { + "id": "datafeed-visitor_rate_ecs", + "job_id": "visitor_rate_ecs", + "config": { + "job_id": "visitor_rate_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + }, + "aggregations": { + "buckets": { + "date_histogram": { + "field": "@timestamp", + "fixed_interval": "15m", + "offset": 0, + "order": { + "_key": "asc" + }, + "keyed": false, + "min_doc_count": 0 + }, + "aggregations": { + "@timestamp": { + "max": { + "field": "@timestamp" + } + }, + "dc_source_address": { + "cardinality": { + "field": "source.address" + } + } + } + } + } + } + }, + { + "id": "datafeed-status_code_rate_ecs", + "job_id": "status_code_rate_ecs", + "config": { + "job_id": "status_code_rate_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + } + } + }, + { + "id": "datafeed-source_ip_url_count_ecs", + "job_id": "source_ip_url_count_ecs", + "config": { + "job_id": "source_ip_url_count_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + } + } + }, + { + "id": "datafeed-source_ip_request_rate_ecs", + "job_id": "source_ip_request_rate_ecs", + "config": { + "job_id": "source_ip_request_rate_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + } + } + }, + { + "id": "datafeed-low_request_rate_ecs", + "job_id": "low_request_rate_ecs", + "config": { + "job_id": "low_request_rate_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + }, + "aggregations": { + "buckets": { + "date_histogram": { + "field": "@timestamp", + "fixed_interval": "15m", + "offset": 0, + "order": { + "_key": "asc" + }, + "keyed": false, + "min_doc_count": 0 + }, + "aggregations": { + "@timestamp": { + "max": { + "field": "@timestamp" + } + } + } + } + } + } + } + ] + }, + "id": "sample_ml_module", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [], + "type": "ml-module" +} diff --git a/x-pack/test/fleet_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/kibana/ml_module/sample_ml_module.json b/x-pack/test/fleet_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/kibana/ml_module/sample_ml_module.json new file mode 100644 index 0000000000000..ff7e3478d03e3 --- /dev/null +++ b/x-pack/test/fleet_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/kibana/ml_module/sample_ml_module.json @@ -0,0 +1,403 @@ +{ + "attributes": { + "id": "sample_ml_module", + "title": "Nginx access logs", + "description": "Find unusual activity in HTTP access logs from filebeat (ECS).", + "type": "Web Access Logs", + "logo": { + "icon": "logoNginx" + }, + "defaultIndexPattern": "filebeat-*", + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + }, + { + "exists": { + "field": "source.address" + } + }, + { + "exists": { + "field": "url.original" + } + }, + { + "exists": { + "field": "http.response.status_code" + } + } + ] + } + }, + "jobs": [ + { + "id": "visitor_rate_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect unusual visitor rates (ECS)", + "analysis_config": { + "bucket_span": "15m", + "summary_count_field_name": "dc_source_address", + "detectors": [ + { + "detector_description": "Nginx access visitor rate", + "function": "non_zero_count" + } + ], + "influencers": [] + }, + "analysis_limits": { + "model_memory_limit": "10mb" + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "model_plot_config": { + "enabled": true + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + }, + { + "id": "status_code_rate_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect unusual status code rates (ECS)", + "analysis_config": { + "bucket_span": "15m", + "detectors": [ + { + "detector_description": "Nginx access status code rate", + "function": "count", + "partition_field_name": "http.response.status_code" + } + ], + "influencers": [ + "http.response.status_code", + "source.address" + ] + }, + "analysis_limits": { + "model_memory_limit": "100mb" + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "model_plot_config": { + "enabled": true + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Investigate status code", + "url_value": "dashboards#/view/ml_http_access_explorer_ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:http.response.status_code,negate:!f,params:(query:\u0027$http.response.status_code$\u0027),type:phrase,value:\u0027$http.response.status_code$\u0027),query:(match:(http.response.status_code:(query:\u0027$http.response.status_code$\u0027,type:phrase))))),query:(language:kuery,query:\u0027\u0027))" + }, + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:http.response.status_code,negate:!f,params:(query:\u0027$http.response.status_code$\u0027),type:phrase,value:\u0027$http.response.status_code$\u0027),query:(match:(http.response.status_code:(query:\u0027$http.response.status_code$\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + }, + { + "id": "source_ip_url_count_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect unusual source IPs - high distinct count of URLs (ECS)", + "analysis_config": { + "bucket_span": "1h", + "detectors": [ + { + "detector_description": "Nginx access source IP high dc URL", + "function": "high_distinct_count", + "field_name": "url.original", + "over_field_name": "source.address" + } + ], + "influencers": [ + "source.address" + ] + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Investigate source IP", + "url_value": "dashboards#/view/ml_http_access_explorer_ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:source.address,negate:!f,params:(query:\u0027$source.address$\u0027),type:phrase,value:\u0027$source.address$\u0027),query:(match:(source.address:(query:\u0027$source.address$\u0027,type:phrase))))),query:(language:kuery,query:\u0027\u0027))" + }, + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:source.address,negate:!f,params:(query:\u0027$source.address$\u0027),type:phrase,value:\u0027$source.address$\u0027),query:(match:(source.address:(query:\u0027$source.address$\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + }, + { + "id": "source_ip_request_rate_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect unusual source IPs - high request rates (ECS)", + "analysis_config": { + "bucket_span": "1h", + "detectors": [ + { + "detector_description": "Nginx access source IP high count", + "function": "high_count", + "over_field_name": "source.address" + } + ], + "influencers": [ + "source.address" + ] + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Investigate source IP", + "url_value": "dashboards#/view/ml_http_access_explorer_ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:source.address,negate:!f,params:(query:\u0027$source.address$\u0027),type:phrase,value:\u0027$source.address$\u0027),query:(match:(source.address:(query:\u0027$source.address$\u0027,type:phrase))))),query:(language:kuery,query:\u0027\u0027))" + }, + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase)))),(\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:source.address,negate:!f,params:(query:\u0027$source.address$\u0027),type:phrase,value:\u0027$source.address$\u0027),query:(match:(source.address:(query:\u0027$source.address$\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + }, + { + "id": "low_request_rate_ecs", + "config": { + "groups": [ + "nginx" + ], + "description": "HTTP Access Logs: Detect low request rates (ECS)", + "analysis_config": { + "bucket_span": "15m", + "summary_count_field_name": "doc_count", + "detectors": [ + { + "detector_description": "Nginx access low request rate", + "function": "low_count" + } + ], + "influencers": [] + }, + "analysis_limits": { + "model_memory_limit": "10mb" + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "model_plot_config": { + "enabled": true + }, + "custom_settings": { + "created_by": "ml-module-nginx-access", + "custom_urls": [ + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027INDEX_PATTERN_ID\u0027,key:event.dataset,negate:!f,params:(query:\u0027nginx.access\u0027),type:phrase,value:\u0027nginx.access\u0027),query:(match:(event.dataset:(query:\u0027nginx.access\u0027,type:phrase))))),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:\u0027\u0027),sort:!(\u0027@timestamp\u0027,desc))" + } + ] + } + } + } + ], + "datafeeds": [ + { + "id": "datafeed-visitor_rate_ecs", + "job_id": "visitor_rate_ecs", + "config": { + "job_id": "visitor_rate_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + }, + "aggregations": { + "buckets": { + "date_histogram": { + "field": "@timestamp", + "fixed_interval": "15m", + "offset": 0, + "order": { + "_key": "asc" + }, + "keyed": false, + "min_doc_count": 0 + }, + "aggregations": { + "@timestamp": { + "max": { + "field": "@timestamp" + } + }, + "dc_source_address": { + "cardinality": { + "field": "source.address" + } + } + } + } + } + } + }, + { + "id": "datafeed-status_code_rate_ecs", + "job_id": "status_code_rate_ecs", + "config": { + "job_id": "status_code_rate_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + } + } + }, + { + "id": "datafeed-source_ip_url_count_ecs", + "job_id": "source_ip_url_count_ecs", + "config": { + "job_id": "source_ip_url_count_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + } + } + }, + { + "id": "datafeed-source_ip_request_rate_ecs", + "job_id": "source_ip_request_rate_ecs", + "config": { + "job_id": "source_ip_request_rate_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + } + } + }, + { + "id": "datafeed-low_request_rate_ecs", + "job_id": "low_request_rate_ecs", + "config": { + "job_id": "low_request_rate_ecs", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": [ + { + "term": { + "event.dataset": "nginx.access" + } + } + ] + } + }, + "aggregations": { + "buckets": { + "date_histogram": { + "field": "@timestamp", + "fixed_interval": "15m", + "offset": 0, + "order": { + "_key": "asc" + }, + "keyed": false, + "min_doc_count": 0 + }, + "aggregations": { + "@timestamp": { + "max": { + "field": "@timestamp" + } + } + } + } + } + } + } + ] + }, + "id": "sample_ml_module", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [], + "type": "ml-module" +} From 3a48aa619fa6914962151c8c2af7960150975ba7 Mon Sep 17 00:00:00 2001 From: Josh Dover <1813008+joshdover@users.noreply.github.com> Date: Mon, 29 Mar 2021 17:31:34 +0200 Subject: [PATCH 50/55] Add test to verify Console proxy doesn't forward system index header (#95562) * Add test to verify Console API does not forward system index header * Add integration test to Core to verify system indices warning behavior Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../integration_tests/client.test.ts | 57 +++++++++++++++++++ test/api_integration/apis/console/index.ts | 15 +++++ .../apis/console/proxy_route.ts | 44 ++++++++++++++ test/api_integration/apis/index.ts | 1 + 4 files changed, 117 insertions(+) create mode 100644 src/core/server/elasticsearch/integration_tests/client.test.ts create mode 100644 test/api_integration/apis/console/index.ts create mode 100644 test/api_integration/apis/console/proxy_route.ts diff --git a/src/core/server/elasticsearch/integration_tests/client.test.ts b/src/core/server/elasticsearch/integration_tests/client.test.ts new file mode 100644 index 0000000000000..3a4b7c5c4af22 --- /dev/null +++ b/src/core/server/elasticsearch/integration_tests/client.test.ts @@ -0,0 +1,57 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + createTestServers, + TestElasticsearchUtils, + TestKibanaUtils, +} from '../../../test_helpers/kbn_server'; + +describe('elasticsearch clients', () => { + let esServer: TestElasticsearchUtils; + let kibanaServer: TestKibanaUtils; + + beforeAll(async () => { + const { startES, startKibana } = createTestServers({ + adjustTimeout: jest.setTimeout, + }); + + esServer = await startES(); + kibanaServer = await startKibana(); + }); + + afterAll(async () => { + await kibanaServer.stop(); + await esServer.stop(); + }); + + it('does not return deprecation warning when x-elastic-product-origin header is set', async () => { + // Header should be automatically set by Core + const resp1 = await kibanaServer.coreStart.elasticsearch.client.asInternalUser.indices.getSettings( + { index: '.kibana' } + ); + expect(resp1.headers).not.toHaveProperty('warning'); + + // Also test setting it explicitly + const resp2 = await kibanaServer.coreStart.elasticsearch.client.asInternalUser.indices.getSettings( + { index: '.kibana' }, + { headers: { 'x-elastic-product-origin': 'kibana' } } + ); + expect(resp2.headers).not.toHaveProperty('warning'); + }); + + it('returns deprecation warning when x-elastic-product-orign header is not set', async () => { + const resp = await kibanaServer.coreStart.elasticsearch.client.asInternalUser.indices.getSettings( + { index: '.kibana' }, + { headers: { 'x-elastic-product-origin': null } } + ); + + expect(resp.headers).toHaveProperty('warning'); + expect(resp.headers!.warning).toMatch('system indices'); + }); +}); diff --git a/test/api_integration/apis/console/index.ts b/test/api_integration/apis/console/index.ts new file mode 100644 index 0000000000000..ad4f8256f97ad --- /dev/null +++ b/test/api_integration/apis/console/index.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('core', () => { + loadTestFile(require.resolve('./proxy_route')); + }); +} diff --git a/test/api_integration/apis/console/proxy_route.ts b/test/api_integration/apis/console/proxy_route.ts new file mode 100644 index 0000000000000..d8a5f57a41a6e --- /dev/null +++ b/test/api_integration/apis/console/proxy_route.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + + describe('POST /api/console/proxy', () => { + describe('system indices behavior', () => { + it('returns warning header when making requests to .kibana index', async () => { + return await supertest + .post('/api/console/proxy?method=GET&path=/.kibana/_settings') + .set('kbn-xsrf', 'true') + .then((response) => { + expect(response.header).to.have.property('warning'); + const { warning } = response.header as { warning: string }; + expect(warning.startsWith('299')).to.be(true); + expect(warning.includes('system indices')).to.be(true); + }); + }); + + it('does not forward x-elastic-product-origin', async () => { + // If we pass the header and we still get the warning back, we assume that the header was not forwarded. + return await supertest + .post('/api/console/proxy?method=GET&path=/.kibana/_settings') + .set('kbn-xsrf', 'true') + .set('x-elastic-product-origin', 'kibana') + .then((response) => { + expect(response.header).to.have.property('warning'); + const { warning } = response.header as { warning: string }; + expect(warning.startsWith('299')).to.be(true); + expect(warning.includes('system indices')).to.be(true); + }); + }); + }); + }); +} diff --git a/test/api_integration/apis/index.ts b/test/api_integration/apis/index.ts index 33495ad2c604b..0d87569cb8b97 100644 --- a/test/api_integration/apis/index.ts +++ b/test/api_integration/apis/index.ts @@ -10,6 +10,7 @@ import { FtrProviderContext } from '../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { describe('apis', () => { + loadTestFile(require.resolve('./console')); loadTestFile(require.resolve('./core')); loadTestFile(require.resolve('./general')); loadTestFile(require.resolve('./home')); From f92381eca96ca45d11c05b376320f989c4103b85 Mon Sep 17 00:00:00 2001 From: Adam Locke Date: Mon, 29 Mar 2021 11:34:04 -0400 Subject: [PATCH 51/55] Update link for enabling security (#95519) * Update link for enabling security This change updates the `elasticsearchEnableSecurity` link to the new page for [Configuring security for the Elastic Stack](https://www.elastic.co/guide/en/elasticsearch/reference/master/configuring-stack-security.html). Closes #84337 * Updating test to use expected doc link. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- src/core/public/doc_links/doc_links_service.ts | 2 +- .../public/security_checkup/security_checkup_service.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index cfc2dae0b1c67..2835fb8370b8f 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -234,7 +234,7 @@ export class DocLinksService { apiKeyServiceSettings: `${ELASTICSEARCH_DOCS}security-settings.html#api-key-service-settings`, clusterPrivileges: `${ELASTICSEARCH_DOCS}security-privileges.html#privileges-list-cluster`, elasticsearchSettings: `${ELASTICSEARCH_DOCS}security-settings.html`, - elasticsearchEnableSecurity: `${ELASTICSEARCH_DOCS}get-started-enable-security.html`, + elasticsearchEnableSecurity: `${ELASTICSEARCH_DOCS}configuring-stack-security.html`, indicesPrivileges: `${ELASTICSEARCH_DOCS}security-privileges.html#privileges-list-indices`, kibanaTLS: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/configuring-tls.html`, kibanaPrivileges: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/kibana-privileges.html`, diff --git a/x-pack/plugins/security/public/security_checkup/security_checkup_service.test.ts b/x-pack/plugins/security/public/security_checkup/security_checkup_service.test.ts index 29f1c2555e030..c96b1e888ff9c 100644 --- a/x-pack/plugins/security/public/security_checkup/security_checkup_service.test.ts +++ b/x-pack/plugins/security/public/security_checkup/security_checkup_service.test.ts @@ -73,7 +73,7 @@ describe('SecurityCheckupService', () => { ?.getAttribute('href'); expect(docLink).toMatchInlineSnapshot( - `"https://www.elastic.co/guide/en/elasticsearch/reference/mocked-test-branch/get-started-enable-security.html?blade=kibanasecuritymessage"` + `"https://www.elastic.co/guide/en/elasticsearch/reference/mocked-test-branch/configuring-stack-security.html?blade=kibanasecuritymessage"` ); }); }); From 26b2f976a25d81657c12775f6e4b9f708a7d1dc4 Mon Sep 17 00:00:00 2001 From: Brandon Morelli Date: Mon, 29 Mar 2021 08:35:48 -0700 Subject: [PATCH 52/55] docs: add more info on http transactions/span (#95598) --- docs/apm/service-overview.asciidoc | 2 ++ docs/apm/transactions.asciidoc | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/docs/apm/service-overview.asciidoc b/docs/apm/service-overview.asciidoc index 36d021d64456e..693046d652943 100644 --- a/docs/apm/service-overview.asciidoc +++ b/docs/apm/service-overview.asciidoc @@ -38,6 +38,8 @@ image::apm/images/traffic-transactions.png[Traffic and transactions] === Error rate and errors The *Error rate* chart displays the average error rates relating to the service, within a specific time range. +An HTTP response code greater than 400 does not necessarily indicate a failed transaction. +<>. The *Errors* table provides a high-level view of each error message when it first and last occurred, along with the total number of occurrences. This makes it very easy to quickly see which errors affect diff --git a/docs/apm/transactions.asciidoc b/docs/apm/transactions.asciidoc index 8c8da81aa577e..c2a3e0bc2502d 100644 --- a/docs/apm/transactions.asciidoc +++ b/docs/apm/transactions.asciidoc @@ -22,11 +22,21 @@ Visualize response codes: `2xx`, `3xx`, `4xx`, etc. Useful for determining if more responses than usual are being served with a particular response code. Like in the latency graph, you can zoom in on anomalies to further investigate them. +[[transaction-error-rate]] *Error rate*:: -Visualize the total number of transactions with errors divided by the total number of transactions. -The error rate value is based on the `event.outcome` field and is the relative number of failed transactions. -Any unexpected increases, decreases, or irregular patterns can be investigated further -with the <>. +The error rate represents the percentage of failed transactions from the perspective of the selected service. +It's useful for visualizing unexpected increases, decreases, or irregular patterns in a service's transactions. ++ +[TIP] +==== +HTTP **transactions** from the HTTP server perspective do not consider a `4xx` status code (client error) as a failure +because the failure was caused by the caller, not the HTTP server. Thus, there will be no increase in error rate. + +HTTP **spans** from the client perspective however, are considered failures if the HTTP status code is ≥ 400. +These spans will increase the error rate. + +If there is no HTTP status, both transactions and spans are considered successful unless an error is reported. +==== *Average duration by span type*:: Visualize where your application is spending most of its time. From 92af812c82f58b415d86c5c913b9a5eef899a788 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Mon, 29 Mar 2021 17:45:08 +0200 Subject: [PATCH 53/55] [Search Sessions] Display time labels in search session popover (#95082) --- .../data/common/search/session/types.ts | 7 ++ src/plugins/data/public/public.api.md | 2 +- .../data/public/search/session/mocks.ts | 6 +- .../search/session/search_session_state.ts | 78 +++++++++---- .../public/search/session/session_service.ts | 21 ++-- .../connected_search_session_indicator.tsx | 10 +- .../search_session_indicator.stories.tsx | 21 +++- .../search_session_indicator.tsx | 86 +++++++++++--- x-pack/plugins/data_enhanced/server/plugin.ts | 4 +- .../server/saved_objects/search_session.ts | 7 +- .../search_session_migration.test.ts | 109 ++++++++++++++++++ .../saved_objects/search_session_migration.ts | 40 +++++++ .../session/check_running_sessions.test.ts | 1 + .../search/session/check_running_sessions.ts | 20 ++-- .../api_integration/apis/search/session.ts | 74 ++++++++++++ 15 files changed, 421 insertions(+), 65 deletions(-) create mode 100644 x-pack/plugins/data_enhanced/server/saved_objects/search_session_migration.test.ts create mode 100644 x-pack/plugins/data_enhanced/server/saved_objects/search_session_migration.ts diff --git a/src/plugins/data/common/search/session/types.ts b/src/plugins/data/common/search/session/types.ts index f63d2dfec142c..a7ba8ab9576b6 100644 --- a/src/plugins/data/common/search/session/types.ts +++ b/src/plugins/data/common/search/session/types.ts @@ -31,6 +31,13 @@ export interface SearchSessionSavedObjectAttributes { * Expiration time of the session. Expiration itself is managed by Elasticsearch. */ expires: string; + /** + * Time of transition into completed state, + * + * Can be "null" in case already completed session + * transitioned into in-progress session + */ + completed?: string | null; /** * status */ diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index 95d7a35a45320..e4085abe14050 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -2704,7 +2704,7 @@ export const UI_SETTINGS: { // src/plugins/data/public/index.ts:427:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:430:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:34:5 - (ae-forgotten-export) The symbol "FilterStateStore" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/search/session/session_service.ts:55:5 - (ae-forgotten-export) The symbol "UrlGeneratorStateMapping" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/search/session/session_service.ts:56:5 - (ae-forgotten-export) The symbol "UrlGeneratorStateMapping" needs to be exported by the entry point index.d.ts // (No @packageDocumentation comment for this package) diff --git a/src/plugins/data/public/search/session/mocks.ts b/src/plugins/data/public/search/session/mocks.ts index 8ee44cb2ca4ef..18d32463864e3 100644 --- a/src/plugins/data/public/search/session/mocks.ts +++ b/src/plugins/data/public/search/session/mocks.ts @@ -9,7 +9,7 @@ import { BehaviorSubject } from 'rxjs'; import { ISessionsClient } from './sessions_client'; import { ISessionService } from './session_service'; -import { SearchSessionState } from './search_session_state'; +import { SearchSessionState, SessionMeta } from './search_session_state'; export function getSessionsClientMock(): jest.Mocked { return { @@ -31,7 +31,9 @@ export function getSessionServiceMock(): jest.Mocked { getSessionId: jest.fn(), getSession$: jest.fn(() => new BehaviorSubject(undefined).asObservable()), state$: new BehaviorSubject(SearchSessionState.None).asObservable(), - searchSessionName$: new BehaviorSubject(undefined).asObservable(), + sessionMeta$: new BehaviorSubject({ + state: SearchSessionState.None, + }).asObservable(), renameCurrentSession: jest.fn(), trackSearch: jest.fn((searchDescriptor) => () => {}), destroy: jest.fn(), diff --git a/src/plugins/data/public/search/session/search_session_state.ts b/src/plugins/data/public/search/session/search_session_state.ts index e58e1062091bf..bf9036d361a8f 100644 --- a/src/plugins/data/public/search/session/search_session_state.ts +++ b/src/plugins/data/public/search/session/search_session_state.ts @@ -7,6 +7,7 @@ */ import uuid from 'uuid'; +import deepEqual from 'fast-deep-equal'; import { Observable } from 'rxjs'; import { distinctUntilChanged, map, shareReplay } from 'rxjs/operators'; import { createStateContainer, StateContainer } from '../../../../kibana_utils/public'; @@ -107,9 +108,19 @@ export interface SessionStateInternal { isCanceled: boolean; /** - * Start time of current session + * Start time of the current session (from browser perspective) */ startTime?: Date; + + /** + * Time when all the searches from the current session are completed (from browser perspective) + */ + completedTime?: Date; + + /** + * Time when the session was canceled by user, by hitting "stop" + */ + canceledTime?: Date; } const createSessionDefaultState: < @@ -170,12 +181,15 @@ export const sessionPureTransitions: SessionPureTransitions = { ...state, isStarted: true, pendingSearches: state.pendingSearches.concat(search), + completedTime: undefined, }; }, unTrackSearch: (state) => (search) => { + const pendingSearches = state.pendingSearches.filter((s) => s !== search); return { ...state, - pendingSearches: state.pendingSearches.filter((s) => s !== search), + pendingSearches, + completedTime: pendingSearches.length === 0 ? new Date() : state.completedTime, }; }, cancel: (state) => () => { @@ -185,6 +199,7 @@ export const sessionPureTransitions: SessionPureTransitions = { ...state, pendingSearches: [], isCanceled: true, + canceledTime: new Date(), isStored: false, searchSessionSavedObject: undefined, }; @@ -205,11 +220,24 @@ export const sessionPureTransitions: SessionPureTransitions = { }, }; +/** + * Consolidate meta info about current seach session + * Contains both deferred properties and plain properties from state + */ +export interface SessionMeta { + state: SearchSessionState; + name?: string; + startTime?: Date; + canceledTime?: Date; + completedTime?: Date; +} + export interface SessionPureSelectors< SearchDescriptor = unknown, S = SessionStateInternal > { getState: (state: S) => () => SearchSessionState; + getMeta: (state: S) => () => SessionMeta; } export const sessionPureSelectors: SessionPureSelectors = { @@ -233,6 +261,21 @@ export const sessionPureSelectors: SessionPureSelectors = { } return SearchSessionState.None; }, + getMeta(state) { + const sessionState = this.getState(state)(); + + return () => ({ + state: sessionState, + name: state.searchSessionSavedObject?.attributes.name, + startTime: state.searchSessionSavedObject?.attributes.created + ? new Date(state.searchSessionSavedObject?.attributes.created) + : state.startTime, + completedTime: state.searchSessionSavedObject?.attributes.completed + ? new Date(state.searchSessionSavedObject?.attributes.completed) + : state.completedTime, + canceledTime: state.canceledTime, + }); + }, }; export type SessionStateContainer = StateContainer< @@ -246,9 +289,7 @@ export const createSessionStateContainer = ( ): { stateContainer: SessionStateContainer; sessionState$: Observable; - sessionStartTime$: Observable; - searchSessionSavedObject$: Observable; - searchSessionName$: Observable; + sessionMeta$: Observable; } => { const stateContainer = createStateContainer( createSessionDefaultState(), @@ -257,33 +298,20 @@ export const createSessionStateContainer = ( freeze ? undefined : { freeze: (s) => s } ) as SessionStateContainer; - const sessionState$: Observable = stateContainer.state$.pipe( - map(() => stateContainer.selectors.getState()), - distinctUntilChanged(), - shareReplay(1) - ); - - const sessionStartTime$: Observable = stateContainer.state$.pipe( - map(() => stateContainer.get().startTime), - distinctUntilChanged(), - shareReplay(1) - ); - - const searchSessionSavedObject$ = stateContainer.state$.pipe( - map(() => stateContainer.get().searchSessionSavedObject), - distinctUntilChanged(), + const sessionMeta$: Observable = stateContainer.state$.pipe( + map(() => stateContainer.selectors.getMeta()), + distinctUntilChanged(deepEqual), shareReplay(1) ); - const searchSessionName$ = searchSessionSavedObject$.pipe( - map((savedObject) => savedObject?.attributes?.name) + const sessionState$: Observable = sessionMeta$.pipe( + map((meta) => meta.state), + distinctUntilChanged() ); return { stateContainer, sessionState$, - sessionStartTime$, - searchSessionSavedObject$, - searchSessionName$, + sessionMeta$, }; }; diff --git a/src/plugins/data/public/search/session/session_service.ts b/src/plugins/data/public/search/session/session_service.ts index 785b9357fc895..381410574ecda 100644 --- a/src/plugins/data/public/search/session/session_service.ts +++ b/src/plugins/data/public/search/session/session_service.ts @@ -20,6 +20,7 @@ import { ConfigSchema } from '../../../config'; import { createSessionStateContainer, SearchSessionState, + SessionMeta, SessionStateContainer, } from './search_session_state'; import { ISessionsClient } from './sessions_client'; @@ -78,7 +79,7 @@ export class SessionService { public readonly state$: Observable; private readonly state: SessionStateContainer; - public readonly searchSessionName$: Observable; + public readonly sessionMeta$: Observable; private searchSessionInfoProvider?: SearchSessionInfoProvider; private searchSessionIndicatorUiConfig?: Partial; private subscription = new Subscription(); @@ -97,20 +98,24 @@ export class SessionService { const { stateContainer, sessionState$, - sessionStartTime$, - searchSessionName$, + sessionMeta$, } = createSessionStateContainer({ freeze: freezeState, }); this.state$ = sessionState$; this.state = stateContainer; - this.searchSessionName$ = searchSessionName$; + this.sessionMeta$ = sessionMeta$; this.subscription.add( - sessionStartTime$.subscribe((startTime) => { - if (startTime) this.nowProvider.set(startTime); - else this.nowProvider.reset(); - }) + sessionMeta$ + .pipe( + map((meta) => meta.startTime), + distinctUntilChanged() + ) + .subscribe((startTime) => { + if (startTime) this.nowProvider.set(startTime); + else this.nowProvider.reset(); + }) ); getStartServices().then(([coreStart]) => { diff --git a/x-pack/plugins/data_enhanced/public/search/ui/connected_search_session_indicator/connected_search_session_indicator.tsx b/x-pack/plugins/data_enhanced/public/search/ui/connected_search_session_indicator/connected_search_session_indicator.tsx index 43d4367f85940..630aea417c84e 100644 --- a/x-pack/plugins/data_enhanced/public/search/ui/connected_search_session_indicator/connected_search_session_indicator.tsx +++ b/x-pack/plugins/data_enhanced/public/search/ui/connected_search_session_indicator/connected_search_session_indicator.tsx @@ -173,7 +173,12 @@ export const createConnectedSearchSessionIndicator = ({ } }, [state]); - const searchSessionName = useObservable(sessionService.searchSessionName$); + const { + name: searchSessionName, + startTime, + completedTime, + canceledTime, + } = useObservable(sessionService.sessionMeta$, { state }); const saveSearchSessionNameFn = useCallback(async (newName: string) => { await sessionService.renameCurrentSession(newName); }, []); @@ -196,6 +201,9 @@ export const createConnectedSearchSessionIndicator = ({ viewSearchSessionsLink={searchSessionsManagementUrl} searchSessionName={searchSessionName} saveSearchSessionNameFn={saveSearchSessionNameFn} + startedTime={startTime} + completedTime={completedTime} + canceledTime={canceledTime} /> ); diff --git a/x-pack/plugins/data_enhanced/public/search/ui/search_session_indicator/search_session_indicator.stories.tsx b/x-pack/plugins/data_enhanced/public/search/ui/search_session_indicator/search_session_indicator.stories.tsx index 01b6c89a0ddc7..e9577c3464d11 100644 --- a/x-pack/plugins/data_enhanced/public/search/ui/search_session_indicator/search_session_indicator.stories.tsx +++ b/x-pack/plugins/data_enhanced/public/search/ui/search_session_indicator/search_session_indicator.stories.tsx @@ -24,16 +24,21 @@ storiesOf('components/SearchSessionIndicator', module).add('default', () => { return ( <>
    - +
    - +
    @@ -41,6 +46,8 @@ storiesOf('components/SearchSessionIndicator', module).add('default', () => { state={SearchSessionState.BackgroundCompleted} searchSessionName={searchSessionName} saveSearchSessionNameFn={saveSearchSessionNameFn} + startedTime={new Date()} + completedTime={new Date()} />
    @@ -48,15 +55,23 @@ storiesOf('components/SearchSessionIndicator', module).add('default', () => { state={SearchSessionState.Restored} searchSessionName={searchSessionName} saveSearchSessionNameFn={saveSearchSessionNameFn} + startedTime={new Date()} + completedTime={new Date()} />
    - +
    Promise; + + startedTime?: Date; + completedTime?: Date; + canceledTime?: Date; } type ActionButtonProps = SearchSessionIndicatorProps & { buttonProps: EuiButtonEmptyProps }; @@ -134,6 +139,7 @@ const searchSessionIndicatorViewStateToProps: { popover: { title: string; description: string; + whenText: (props: SearchSessionIndicatorProps) => string; primaryAction?: React.ComponentType; secondaryAction?: React.ComponentType; }; @@ -158,8 +164,15 @@ const searchSessionIndicatorViewStateToProps: { defaultMessage: 'Your search is taking a while...', }), description: i18n.translate('xpack.data.searchSessionIndicator.loadingResultsDescription', { - defaultMessage: 'Save your session, continue your work, and return to completed results.', + defaultMessage: 'Save your session, continue your work, and return to completed results', }), + whenText: (props: SearchSessionIndicatorProps) => + i18n.translate('xpack.data.searchSessionIndicator.loadingResultsWhenText', { + defaultMessage: 'Started {when}', + values: { + when: props.startedTime ? moment(props.startedTime).format(`L @ LTS`) : '', + }, + }), primaryAction: CancelButton, secondaryAction: ContinueInBackgroundButton, }, @@ -185,9 +198,16 @@ const searchSessionIndicatorViewStateToProps: { description: i18n.translate( 'xpack.data.searchSessionIndicator.resultsLoadedDescriptionText', { - defaultMessage: 'Save your session and return to it later.', + defaultMessage: 'Save your session and return to it later', } ), + whenText: (props: SearchSessionIndicatorProps) => + i18n.translate('xpack.data.searchSessionIndicator.resultsLoadedWhenText', { + defaultMessage: 'Completed {when}', + values: { + when: props.completedTime ? moment(props.completedTime).format(`L @ LTS`) : '', + }, + }), primaryAction: SaveButton, secondaryAction: ViewAllSearchSessionsButton, }, @@ -215,9 +235,16 @@ const searchSessionIndicatorViewStateToProps: { description: i18n.translate( 'xpack.data.searchSessionIndicator.loadingInTheBackgroundDescriptionText', { - defaultMessage: 'You can return to completed results from Management.', + defaultMessage: 'You can return to completed results from Management', } ), + whenText: (props: SearchSessionIndicatorProps) => + i18n.translate('xpack.data.searchSessionIndicator.loadingInTheBackgroundWhenText', { + defaultMessage: 'Started {when}', + values: { + when: props.startedTime ? moment(props.startedTime).format(`L @ LTS`) : '', + }, + }), primaryAction: CancelButton, secondaryAction: ViewAllSearchSessionsButton, }, @@ -249,9 +276,16 @@ const searchSessionIndicatorViewStateToProps: { description: i18n.translate( 'xpack.data.searchSessionIndicator.resultLoadedInTheBackgroundDescriptionText', { - defaultMessage: 'You can return to these results from Management.', + defaultMessage: 'You can return to these results from Management', } ), + whenText: (props: SearchSessionIndicatorProps) => + i18n.translate('xpack.data.searchSessionIndicator.resultLoadedInTheBackgroundWhenText', { + defaultMessage: 'Completed {when}', + values: { + when: props.completedTime ? moment(props.completedTime).format(`L @ LTS`) : '', + }, + }), secondaryAction: ViewAllSearchSessionsButton, }, }, @@ -275,8 +309,15 @@ const searchSessionIndicatorViewStateToProps: { }), description: i18n.translate('xpack.data.searchSessionIndicator.restoredDescriptionText', { defaultMessage: - 'You are viewing cached data from a specific time range. Changing the time range or filters will re-run the session.', + 'You are viewing cached data from a specific time range. Changing the time range or filters will re-run the session', }), + whenText: (props: SearchSessionIndicatorProps) => + i18n.translate('xpack.data.searchSessionIndicator.restoredWhenText', { + defaultMessage: 'Completed {when}', + values: { + when: props.completedTime ? moment(props.completedTime).format(`L @ LTS`) : '', + }, + }), secondaryAction: ViewAllSearchSessionsButton, }, }, @@ -296,8 +337,15 @@ const searchSessionIndicatorViewStateToProps: { defaultMessage: 'Search session stopped', }), description: i18n.translate('xpack.data.searchSessionIndicator.canceledDescriptionText', { - defaultMessage: 'You are viewing incomplete data.', + defaultMessage: 'You are viewing incomplete data', }), + whenText: (props: SearchSessionIndicatorProps) => + i18n.translate('xpack.data.searchSessionIndicator.canceledWhenText', { + defaultMessage: 'Stopped {when}', + values: { + when: props.canceledTime ? moment(props.canceledTime).format(`L @ LTS`) : '', + }, + }), secondaryAction: ViewAllSearchSessionsButton, }, }, @@ -370,22 +418,30 @@ export const SearchSessionIndicator = React.forwardRef< >
    {props.searchSessionName && props.saveSearchSessionNameFn ? ( + + ) : ( + +

    {popover.title}

    +
    + )} + + + {popover.whenText?.(props) ? ( <> - + +

    {popover.whenText(props)}

    +
    ) : null} - -

    {popover.title}

    -
    - +

    {popover.description}

    - + = { + id: 'id', + type: SEARCH_SESSION_TYPE, + attributes: { + name: 'my_name', + appId: 'my_app_id', + sessionId: 'sessionId', + urlGeneratorId: 'my_url_generator_id', + initialState: {}, + restoreState: {}, + persisted: true, + idMapping: {}, + realmType: 'realmType', + realmName: 'realmName', + username: 'username', + created: '2021-03-26T00:00:00.000Z', + expires: '2021-03-30T00:00:00.000Z', + touched: '2021-03-29T00:00:00.000Z', + status: SearchSessionStatus.COMPLETE, + }, + references: [], +}; + +const mockInProgressSessionSavedObject: SavedObject = { + id: 'id', + type: SEARCH_SESSION_TYPE, + attributes: { + name: 'my_name', + appId: 'my_app_id', + sessionId: 'sessionId', + urlGeneratorId: 'my_url_generator_id', + initialState: {}, + restoreState: {}, + persisted: true, + idMapping: {}, + realmType: 'realmType', + realmName: 'realmName', + username: 'username', + created: '2021-03-26T00:00:00.000Z', + expires: '2021-03-30T00:00:00.000Z', + touched: '2021-03-29T00:00:00.000Z', + status: SearchSessionStatus.IN_PROGRESS, + }, + references: [], +}; + +describe('7.12.0 -> 7.13.0', () => { + const migration = searchSessionSavedObjectMigrations['7.13.0']; + test('"completed" is populated from "touched" for completed session', () => { + const migratedCompletedSession = migration( + mockCompletedSessionSavedObject, + {} as SavedObjectMigrationContext + ); + + expect(migratedCompletedSession.attributes).toHaveProperty('completed'); + expect(migratedCompletedSession.attributes.completed).toBe( + migratedCompletedSession.attributes.touched + ); + expect(migratedCompletedSession.attributes).toMatchInlineSnapshot(` + Object { + "appId": "my_app_id", + "completed": "2021-03-29T00:00:00.000Z", + "created": "2021-03-26T00:00:00.000Z", + "expires": "2021-03-30T00:00:00.000Z", + "idMapping": Object {}, + "initialState": Object {}, + "name": "my_name", + "persisted": true, + "realmName": "realmName", + "realmType": "realmType", + "restoreState": Object {}, + "sessionId": "sessionId", + "status": "complete", + "touched": "2021-03-29T00:00:00.000Z", + "urlGeneratorId": "my_url_generator_id", + "username": "username", + } + `); + }); + + test('"completed" is missing for in-progress session', () => { + const migratedInProgressSession = migration( + mockInProgressSessionSavedObject, + {} as SavedObjectMigrationContext + ); + + expect(migratedInProgressSession.attributes).not.toHaveProperty('completed'); + + expect(migratedInProgressSession.attributes).toEqual( + mockInProgressSessionSavedObject.attributes + ); + }); +}); diff --git a/x-pack/plugins/data_enhanced/server/saved_objects/search_session_migration.ts b/x-pack/plugins/data_enhanced/server/saved_objects/search_session_migration.ts new file mode 100644 index 0000000000000..b9ea85a333da2 --- /dev/null +++ b/x-pack/plugins/data_enhanced/server/saved_objects/search_session_migration.ts @@ -0,0 +1,40 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { SavedObjectMigrationMap, SavedObjectUnsanitizedDoc } from 'kibana/server'; +import { + SearchSessionSavedObjectAttributes as SearchSessionSavedObjectAttributesLatest, + SearchSessionStatus, +} from '../../common'; + +/** + * Search sessions were released in 7.12.0 + * In 7.13.0 a `completed` field was added. + * It is a timestamp representing the session was transitioned into "completed" status. + */ +export type SearchSessionSavedObjectAttributesPre$7$13$0 = Omit< + SearchSessionSavedObjectAttributesLatest, + 'completed' +>; + +export const searchSessionSavedObjectMigrations: SavedObjectMigrationMap = { + '7.13.0': ( + doc: SavedObjectUnsanitizedDoc + ): SavedObjectUnsanitizedDoc => { + if (doc.attributes.status === SearchSessionStatus.COMPLETE) { + return { + ...doc, + attributes: { + ...doc.attributes, + completed: doc.attributes.touched, + }, + }; + } + + return doc; + }, +}; diff --git a/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.test.ts b/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.test.ts index e1b17968af24f..f9c62069154b6 100644 --- a/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.test.ts +++ b/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.test.ts @@ -521,6 +521,7 @@ describe('getSearchStatus', () => { const updatedAttributes = updateInput[0].attributes as SearchSessionSavedObjectAttributes; expect(updatedAttributes.status).toBe(SearchSessionStatus.COMPLETE); expect(updatedAttributes.touched).not.toBe('123'); + expect(updatedAttributes.completed).not.toBeUndefined(); expect(updatedAttributes.idMapping['search-hash'].status).toBe(SearchStatus.COMPLETE); expect(updatedAttributes.idMapping['search-hash'].error).toBeUndefined(); diff --git a/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.ts b/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.ts index ab5d1b2ff9150..e521c39d7cfd3 100644 --- a/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.ts +++ b/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.ts @@ -6,21 +6,21 @@ */ import { - Logger, ElasticsearchClient, - SavedObjectsFindResult, + Logger, SavedObjectsClientContract, + SavedObjectsFindResult, } from 'kibana/server'; import moment from 'moment'; import { EMPTY, from } from 'rxjs'; import { expand, mergeMap } from 'rxjs/operators'; import { nodeBuilder } from '../../../../../../src/plugins/data/common'; import { - SearchSessionStatus, - SearchSessionSavedObjectAttributes, - SearchSessionRequestInfo, - SEARCH_SESSION_TYPE, ENHANCED_ES_SEARCH_STRATEGY, + SEARCH_SESSION_TYPE, + SearchSessionRequestInfo, + SearchSessionSavedObjectAttributes, + SearchSessionStatus, } from '../../../common'; import { getSearchStatus } from './get_search_status'; import { getSessionStatus } from './get_session_status'; @@ -93,8 +93,14 @@ async function updateSessionStatus( // And only then derive the session's status const sessionStatus = getSessionStatus(session.attributes); if (sessionStatus !== session.attributes.status) { + const now = new Date().toISOString(); session.attributes.status = sessionStatus; - session.attributes.touched = new Date().toISOString(); + session.attributes.touched = now; + if (sessionStatus === SearchSessionStatus.COMPLETE) { + session.attributes.completed = now; + } else if (session.attributes.completed) { + session.attributes.completed = null; + } sessionUpdated = true; } diff --git a/x-pack/test/api_integration/apis/search/session.ts b/x-pack/test/api_integration/apis/search/session.ts index 583db08766852..50bc85ed1e793 100644 --- a/x-pack/test/api_integration/apis/search/session.ts +++ b/x-pack/test/api_integration/apis/search/session.ts @@ -303,6 +303,80 @@ export default function ({ getService }: FtrProviderContext) { }); }); + it('should complete session when searches complete', async () => { + const sessionId = `my-session-${Math.random()}`; + + // run search + const searchRes = await supertest + .post(`/internal/search/ese`) + .set('kbn-xsrf', 'foo') + .send({ + sessionId, + params: { + body: { + query: { + term: { + agent: '1', + }, + }, + }, + wait_for_completion_timeout: '1ms', + }, + }) + .expect(200); + + const { id } = searchRes.body; + + // persist session + await supertest + .post(`/internal/session`) + .set('kbn-xsrf', 'foo') + .send({ + sessionId, + name: 'My Session', + appId: 'discover', + expires: '123', + urlGeneratorId: 'discover', + }) + .expect(200); + + await retry.waitForWithTimeout('searches persisted into session', 5000, async () => { + const resp = await supertest + .get(`/internal/session/${sessionId}`) + .set('kbn-xsrf', 'foo') + .expect(200); + + const { touched, created, persisted, idMapping } = resp.body.attributes; + expect(persisted).to.be(true); + expect(touched).not.to.be(undefined); + expect(created).not.to.be(undefined); + + const idMappings = Object.values(idMapping).map((value: any) => value.id); + expect(idMappings).to.contain(id); + return true; + }); + + // session refresh interval is 10 seconds, wait to give a chance for status to update + await new Promise((resolve) => setTimeout(resolve, 10000)); + + await retry.waitForWithTimeout( + 'searches eventually complete and session gets into the complete state', + 5000, + async () => { + const resp = await supertest + .get(`/internal/session/${sessionId}`) + .set('kbn-xsrf', 'foo') + .expect(200); + + const { status, completed } = resp.body.attributes; + + expect(status).to.be(SearchSessionStatus.COMPLETE); + expect(completed).not.to.be(undefined); + return true; + } + ); + }); + it('touched time updates when you poll on an search', async () => { const sessionId = `my-session-${Math.random()}`; From f9ca6dca65b2566aa3d0af8b56991019e18f6394 Mon Sep 17 00:00:00 2001 From: igoristic Date: Mon, 29 Mar 2021 12:21:15 -0400 Subject: [PATCH 54/55] [Monitoring] Removed timefilter refresh override (#94648) * Removed refresh override * Changed default behavior Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/monitoring/public/plugin.ts | 28 ++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/monitoring/public/plugin.ts b/x-pack/plugins/monitoring/public/plugin.ts index b950b064774b1..a597754d6c409 100644 --- a/x-pack/plugins/monitoring/public/plugin.ts +++ b/x-pack/plugins/monitoring/public/plugin.ts @@ -27,7 +27,6 @@ import { ALERT_THREAD_POOL_WRITE_REJECTIONS, ALERT_DETAILS, } from '../common/constants'; - import { createCpuUsageAlertType } from './alerts/cpu_usage_alert'; import { createMissingMonitoringDataAlertType } from './alerts/missing_monitoring_data_alert'; import { createLegacyAlertTypes } from './alerts/legacy_alert'; @@ -44,6 +43,8 @@ interface MonitoringSetupPluginDependencies { usageCollection: UsageCollectionSetup; } +const HASH_CHANGE = 'hashchange'; + export class MonitoringPlugin implements Plugin { @@ -106,7 +107,6 @@ export class MonitoringPlugin usageCollection: plugins.usageCollection, }; - this.setInitialTimefilter(deps); const monitoringApp = new AngularApp(deps); const removeHistoryListener = params.history.listen((location) => { if (location.pathname === '' && location.hash === '') { @@ -114,7 +114,11 @@ export class MonitoringPlugin } }); + const removeHashChange = this.setInitialTimefilter(deps); return () => { + if (removeHashChange) { + removeHashChange(); + } removeHistoryListener(); monitoringApp.destroy(); }; @@ -131,8 +135,24 @@ export class MonitoringPlugin private setInitialTimefilter({ data }: MonitoringStartPluginDependencies) { const { timefilter } = data.query.timefilter; - const refreshInterval = { value: 10000, pause: false }; - timefilter.setRefreshInterval(refreshInterval); + const { pause: pauseByDefault } = timefilter.getRefreshIntervalDefaults(); + if (pauseByDefault) { + return; + } + /** + * We can't use timefilter.getRefreshIntervalUpdate$ last value, + * since it's not a BehaviorSubject. This means we need to wait for + * hash change because of angular's applyAsync + */ + const onHashChange = () => { + const { value, pause } = timefilter.getRefreshInterval(); + if (!value && pause) { + window.removeEventListener(HASH_CHANGE, onHashChange); + timefilter.setRefreshInterval({ value: 10000, pause: false }); + } + }; + window.addEventListener(HASH_CHANGE, onHashChange, false); + return () => window.removeEventListener(HASH_CHANGE, onHashChange); } private getExternalConfig() { From fe66162ef226f75edba4ca92779e7aea24bf1ae7 Mon Sep 17 00:00:00 2001 From: Wylie Conlon Date: Mon, 29 Mar 2021 12:33:05 -0400 Subject: [PATCH 55/55] [Lens] Fully unmount React when flyout closes (#95359) * [Lens] Fully unmount React when flyout closes * Fix bug with editor frame unmounting * Fix type Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../lens/public/app_plugin/app.test.tsx | 2 +- .../native_renderer/native_renderer.test.tsx | 100 +++++++++++++++++- .../native_renderer/native_renderer.tsx | 43 +++++++- x-pack/plugins/lens/public/types.ts | 34 ++++-- 4 files changed, 166 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/lens/public/app_plugin/app.test.tsx b/x-pack/plugins/lens/public/app_plugin/app.test.tsx index 38bcf8a377bf2..20bf349f6b13a 100644 --- a/x-pack/plugins/lens/public/app_plugin/app.test.tsx +++ b/x-pack/plugins/lens/public/app_plugin/app.test.tsx @@ -72,7 +72,7 @@ const { TopNavMenu } = navigationStartMock.ui; function createMockFrame(): jest.Mocked { return { - mount: jest.fn((el, props) => {}), + mount: jest.fn(async (el, props) => {}), unmount: jest.fn(() => {}), }; } diff --git a/x-pack/plugins/lens/public/native_renderer/native_renderer.test.tsx b/x-pack/plugins/lens/public/native_renderer/native_renderer.test.tsx index 34619ae59ae5f..8796f619277ff 100644 --- a/x-pack/plugins/lens/public/native_renderer/native_renderer.test.tsx +++ b/x-pack/plugins/lens/public/native_renderer/native_renderer.test.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React from 'react'; +import React, { useEffect } from 'react'; import { render } from 'react-dom'; import { NativeRenderer } from './native_renderer'; import { act } from 'react-dom/test-utils'; @@ -151,4 +151,102 @@ describe('native_renderer', () => { const containerElement: Element = mountpoint.firstElementChild!; expect(containerElement.nodeName).toBe('SPAN'); }); + + it('should properly unmount a react element that is mounted inside the renderer', () => { + let isUnmounted = false; + + function TestComponent() { + useEffect(() => { + return () => { + isUnmounted = true; + }; + }, []); + return <>Hello; + } + + renderAndTriggerHooks( + { + // This render function mimics the most common usage inside Lens + render(, element); + }} + nativeProps={{}} + />, + mountpoint + ); + + // Replaces the component at the mountpoint with nothing + renderAndTriggerHooks(<>Empty, mountpoint); + + expect(isUnmounted).toBe(true); + }); + + it('should call the unmount function provided for non-react elements', () => { + const unmountCallback = jest.fn(); + + renderAndTriggerHooks( + { + return unmountCallback; + }} + nativeProps={{}} + />, + mountpoint + ); + + // Replaces the component at the mountpoint with nothing + renderAndTriggerHooks(<>Empty, mountpoint); + + expect(unmountCallback).toHaveBeenCalled(); + }); + + it('should handle when the mount function is asynchronous without a cleanup fn', () => { + let isUnmounted = false; + + function TestComponent() { + useEffect(() => { + return () => { + isUnmounted = true; + }; + }, []); + return <>Hello; + } + + renderAndTriggerHooks( + { + render(, element); + }} + nativeProps={{}} + />, + mountpoint + ); + + // Replaces the component at the mountpoint with nothing + renderAndTriggerHooks(<>Empty, mountpoint); + + expect(isUnmounted).toBe(true); + }); + + it('should handle when the mount function is asynchronous with a cleanup fn', async () => { + const unmountCallback = jest.fn(); + + renderAndTriggerHooks( + { + return unmountCallback; + }} + nativeProps={{}} + />, + mountpoint + ); + + // Schedule a promise cycle to update the DOM + await new Promise((resolve) => setTimeout(resolve, 0)); + + // Replaces the component at the mountpoint with nothing + renderAndTriggerHooks(<>Empty, mountpoint); + + expect(unmountCallback).toHaveBeenCalled(); + }); }); diff --git a/x-pack/plugins/lens/public/native_renderer/native_renderer.tsx b/x-pack/plugins/lens/public/native_renderer/native_renderer.tsx index 68563e01d7f3f..f0659a130b293 100644 --- a/x-pack/plugins/lens/public/native_renderer/native_renderer.tsx +++ b/x-pack/plugins/lens/public/native_renderer/native_renderer.tsx @@ -5,10 +5,16 @@ * 2.0. */ -import React, { HTMLAttributes } from 'react'; +import React, { HTMLAttributes, useEffect, useRef } from 'react'; +import { unmountComponentAtNode } from 'react-dom'; + +type CleanupCallback = (el: Element) => void; export interface NativeRendererProps extends HTMLAttributes { - render: (domElement: Element, props: T) => void; + render: ( + domElement: Element, + props: T + ) => Promise | CleanupCallback | void; nativeProps: T; tag?: string; } @@ -19,11 +25,42 @@ export interface NativeRendererProps extends HTMLAttributes { * By default the mountpoint element will be a div, this can be changed with the * `tag` prop. * + * If the rendered component tree was using React, we need to clean it up manually, + * otherwise the unmount event never happens. A future addition is for non-React components + * to get cleaned up, which could be added in the future. + * * @param props */ export function NativeRenderer({ render, nativeProps, tag, ...rest }: NativeRendererProps) { + const elementRef = useRef(); + const cleanupRef = useRef<((cleanupElement: Element) => void) | void>(); + useEffect(() => { + return () => { + if (elementRef.current) { + if (cleanupRef.current && typeof cleanupRef.current === 'function') { + cleanupRef.current(elementRef.current); + } + unmountComponentAtNode(elementRef.current); + } + }; + }, []); return React.createElement(tag || 'div', { ...rest, - ref: (el) => el && render(el, nativeProps), + ref: (el) => { + if (el) { + elementRef.current = el; + // Handles the editor frame renderer, which is async + const result = render(el, nativeProps); + if (result instanceof Promise) { + result.then((cleanup) => { + if (typeof cleanup === 'function') { + cleanupRef.current = cleanup; + } + }); + } else if (typeof result === 'function') { + cleanupRef.current = result; + } + } + }, }); } diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index 7729486dea360..3d34d22c5048a 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -64,7 +64,7 @@ export interface EditorFrameProps { showNoDataPopover: () => void; } export interface EditorFrameInstance { - mount: (element: Element, props: EditorFrameProps) => void; + mount: (element: Element, props: EditorFrameProps) => Promise; unmount: () => void; } @@ -190,10 +190,22 @@ export interface Datasource { getLayers: (state: T) => string[]; removeColumn: (props: { prevState: T; layerId: string; columnId: string }) => T; - renderDataPanel: (domElement: Element, props: DatasourceDataPanelProps) => void; - renderDimensionTrigger: (domElement: Element, props: DatasourceDimensionTriggerProps) => void; - renderDimensionEditor: (domElement: Element, props: DatasourceDimensionEditorProps) => void; - renderLayerPanel: (domElement: Element, props: DatasourceLayerPanelProps) => void; + renderDataPanel: ( + domElement: Element, + props: DatasourceDataPanelProps + ) => ((cleanupElement: Element) => void) | void; + renderDimensionTrigger: ( + domElement: Element, + props: DatasourceDimensionTriggerProps + ) => ((cleanupElement: Element) => void) | void; + renderDimensionEditor: ( + domElement: Element, + props: DatasourceDimensionEditorProps + ) => ((cleanupElement: Element) => void) | void; + renderLayerPanel: ( + domElement: Element, + props: DatasourceLayerPanelProps + ) => ((cleanupElement: Element) => void) | void; getDropProps: ( props: DatasourceDimensionDropProps & { groupId: string; @@ -591,12 +603,18 @@ export interface Visualization { * Popover contents that open when the user clicks the contextMenuIcon. This can be used * for extra configurability, such as for styling the legend or axis */ - renderLayerContextMenu?: (domElement: Element, props: VisualizationLayerWidgetProps) => void; + renderLayerContextMenu?: ( + domElement: Element, + props: VisualizationLayerWidgetProps + ) => ((cleanupElement: Element) => void) | void; /** * Toolbar rendered above the visualization. This is meant to be used to provide chart-level * settings for the visualization. */ - renderToolbar?: (domElement: Element, props: VisualizationToolbarProps) => void; + renderToolbar?: ( + domElement: Element, + props: VisualizationToolbarProps + ) => ((cleanupElement: Element) => void) | void; /** * Visualizations can provide a custom icon which will open a layer-specific popover * If no icon is provided, gear icon is default @@ -626,7 +644,7 @@ export interface Visualization { renderDimensionEditor?: ( domElement: Element, props: VisualizationDimensionEditorProps - ) => void; + ) => ((cleanupElement: Element) => void) | void; /** * The frame will call this function on all visualizations at different times. The

    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

  • 9AiVnVZZTm={k$@We{_=2TuK1QT``pWd^5ZN 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