From d054fbc7dde86efca8433ec3b053336db3f74164 Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Mon, 30 Mar 2020 19:10:47 +0300 Subject: [PATCH 001/118] [SIEM][CASE] Add triggers_actions_ui plugin (#61810) --- .../plugins/siem/scripts/optimize_tsconfig/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/legacy/plugins/siem/scripts/optimize_tsconfig/tsconfig.json b/x-pack/legacy/plugins/siem/scripts/optimize_tsconfig/tsconfig.json index bec6988bdebd97..c4705c8b8c16aa 100644 --- a/x-pack/legacy/plugins/siem/scripts/optimize_tsconfig/tsconfig.json +++ b/x-pack/legacy/plugins/siem/scripts/optimize_tsconfig/tsconfig.json @@ -4,7 +4,8 @@ "plugins/siem/**/*", "legacy/plugins/siem/**/*", "plugins/apm/typings/numeral.d.ts", - "legacy/plugins/canvas/types/webpack.d.ts" + "legacy/plugins/canvas/types/webpack.d.ts", + "plugins/triggers_actions_ui/**/*" ], "exclude": [ "test/**/*", From ed1a5ceaf58106133785ed44ed575cb8a2edf51e Mon Sep 17 00:00:00 2001 From: Joe Portner <5295965+jportner@users.noreply.github.com> Date: Mon, 30 Mar 2020 12:15:11 -0400 Subject: [PATCH 002/118] Add username/password validation to login form (#60681) --- .../__snapshots__/login_form.test.tsx.snap | 16 ++- .../components/login_form/login_form.tsx | 47 +++++---- .../login_form/validate_login.test.ts | 63 ++++++++++++ .../components/login_form/validate_login.ts | 97 +++++++++++++++++++ 4 files changed, 201 insertions(+), 22 deletions(-) create mode 100644 x-pack/plugins/security/public/authentication/login/components/login_form/validate_login.test.ts create mode 100644 x-pack/plugins/security/public/authentication/login/components/login_form/validate_login.ts diff --git a/x-pack/plugins/security/public/authentication/login/components/login_form/__snapshots__/login_form.test.tsx.snap b/x-pack/plugins/security/public/authentication/login/components/login_form/__snapshots__/login_form.test.tsx.snap index a25498a637c2fe..7b8283b7bec0e6 100644 --- a/x-pack/plugins/security/public/authentication/login/components/login_form/__snapshots__/login_form.test.tsx.snap +++ b/x-pack/plugins/security/public/authentication/login/components/login_form/__snapshots__/login_form.test.tsx.snap @@ -51,6 +51,7 @@ exports[`LoginForm login selector renders as expected with login form 1`] = ` fullWidth={false} hasChildLabel={true} hasEmptyLabelSpace={false} + isInvalid={false} label={ - @@ -170,6 +174,7 @@ exports[`LoginForm renders as expected 1`] = ` fullWidth={false} hasChildLabel={true} hasEmptyLabelSpace={false} + isInvalid={false} label={ - diff --git a/x-pack/plugins/security/public/authentication/login/components/login_form/login_form.tsx b/x-pack/plugins/security/public/authentication/login/components/login_form/login_form.tsx index a028eb1ba4b707..01f5c40a69aebd 100644 --- a/x-pack/plugins/security/public/authentication/login/components/login_form/login_form.tsx +++ b/x-pack/plugins/security/public/authentication/login/components/login_form/login_form.tsx @@ -9,6 +9,7 @@ import ReactMarkdown from 'react-markdown'; import { EuiButton, EuiCallOut, + EuiFieldPassword, EuiFieldText, EuiFormRow, EuiPanel, @@ -18,6 +19,7 @@ import { import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { HttpStart, IHttpFetchError, NotificationsStart } from 'src/core/public'; +import { LoginValidator, LoginValidationResult } from './validate_login'; import { parseNext } from '../../../../../common/parse_next'; import { LoginSelector } from '../../../../../common/login_state'; @@ -40,6 +42,7 @@ interface State { message: | { type: MessageType.None } | { type: MessageType.Danger | MessageType.Info; content: string }; + formError: LoginValidationResult | null; } enum LoadingStateType { @@ -55,14 +58,21 @@ enum MessageType { } export class LoginForm extends Component { - public state: State = { - loadingState: { type: LoadingStateType.None }, - username: '', - password: '', - message: this.props.infoMessage - ? { type: MessageType.Info, content: this.props.infoMessage } - : { type: MessageType.None }, - }; + private readonly validator: LoginValidator; + + constructor(props: Props) { + super(props); + this.validator = new LoginValidator({ shouldValidate: false }); + this.state = { + loadingState: { type: LoadingStateType.None }, + username: '', + password: '', + message: this.props.infoMessage + ? { type: MessageType.Info, content: this.props.infoMessage } + : { type: MessageType.None }, + formError: null, + }; + } public render() { return ( @@ -90,6 +100,7 @@ export class LoginForm extends Component { defaultMessage="Username" /> } + {...this.validator.validateUsername(this.state.username)} > { defaultMessage="Password" /> } + {...this.validator.validatePassword(this.state.password)} > - { } } - private isFormValid = () => { - const { username, password } = this.state; - - return username && password; - }; - private onUsernameChange = (e: ChangeEvent) => { this.setState({ username: e.target.value, @@ -271,8 +276,15 @@ export class LoginForm extends Component { ) => { e.preventDefault(); - if (!this.isFormValid()) { + this.validator.enableValidation(); + + const { username, password } = this.state; + const result = this.validator.validateForLogin(username, password); + if (result.isInvalid) { + this.setState({ formError: result }); return; + } else { + this.setState({ formError: null }); } this.setState({ @@ -281,7 +293,6 @@ export class LoginForm extends Component { }); const { http } = this.props; - const { username, password } = this.state; try { await http.post('/internal/security/login', { body: JSON.stringify({ username, password }) }); diff --git a/x-pack/plugins/security/public/authentication/login/components/login_form/validate_login.test.ts b/x-pack/plugins/security/public/authentication/login/components/login_form/validate_login.test.ts new file mode 100644 index 00000000000000..6cd582bbcb4c00 --- /dev/null +++ b/x-pack/plugins/security/public/authentication/login/components/login_form/validate_login.test.ts @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { LoginValidator, LoginValidationResult } from './validate_login'; + +function expectValid(result: LoginValidationResult) { + expect(result.isInvalid).toBe(false); +} + +function expectInvalid(result: LoginValidationResult) { + expect(result.isInvalid).toBe(true); +} + +describe('LoginValidator', () => { + describe('#validateUsername', () => { + it(`returns 'valid' if validation is disabled`, () => { + expectValid(new LoginValidator().validateUsername('')); + }); + + it(`returns 'invalid' if username is missing`, () => { + expectInvalid(new LoginValidator({ shouldValidate: true }).validateUsername('')); + }); + + it(`returns 'valid' for correct usernames`, () => { + expectValid(new LoginValidator({ shouldValidate: true }).validateUsername('u')); + }); + }); + + describe('#validatePassword', () => { + it(`returns 'valid' if validation is disabled`, () => { + expectValid(new LoginValidator().validatePassword('')); + }); + + it(`returns 'invalid' if password is missing`, () => { + expectInvalid(new LoginValidator({ shouldValidate: true }).validatePassword('')); + }); + + it(`returns 'valid' for correct passwords`, () => { + expectValid(new LoginValidator({ shouldValidate: true }).validatePassword('p')); + }); + }); + + describe('#validateForLogin', () => { + it(`returns 'valid' if validation is disabled`, () => { + expectValid(new LoginValidator().validateForLogin('', '')); + }); + + it(`returns 'invalid' if username is invalid`, () => { + expectInvalid(new LoginValidator({ shouldValidate: true }).validateForLogin('', 'p')); + }); + + it(`returns 'invalid' if password is invalid`, () => { + expectInvalid(new LoginValidator({ shouldValidate: true }).validateForLogin('u', '')); + }); + + it(`returns 'valid' if username and password are valid`, () => { + expectValid(new LoginValidator({ shouldValidate: true }).validateForLogin('u', 'p')); + }); + }); +}); diff --git a/x-pack/plugins/security/public/authentication/login/components/login_form/validate_login.ts b/x-pack/plugins/security/public/authentication/login/components/login_form/validate_login.ts new file mode 100644 index 00000000000000..0873098a0ff1d5 --- /dev/null +++ b/x-pack/plugins/security/public/authentication/login/components/login_form/validate_login.ts @@ -0,0 +1,97 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +interface LoginValidatorOptions { + shouldValidate?: boolean; +} + +export interface LoginValidationResult { + isInvalid: boolean; + error?: string; +} + +export class LoginValidator { + private shouldValidate?: boolean; + + constructor(options: LoginValidatorOptions = {}) { + this.shouldValidate = options.shouldValidate; + } + + public enableValidation() { + this.shouldValidate = true; + } + + public disableValidation() { + this.shouldValidate = false; + } + + public validateUsername(username: string): LoginValidationResult { + if (!this.shouldValidate) { + return valid(); + } + + if (!username) { + // Elasticsearch has more stringent requirements for usernames in the Native realm. However, the login page is used for other realms, + // such as LDAP and Active Directory. Because of that, the best validation we can do here is to ensure the username is not empty. + return invalid( + i18n.translate( + 'xpack.security.authentication.login.validateLogin.requiredUsernameErrorMessage', + { + defaultMessage: 'Username is required', + } + ) + ); + } + + return valid(); + } + + public validatePassword(password: string): LoginValidationResult { + if (!this.shouldValidate) { + return valid(); + } + + if (!password) { + // Elasticsearch has more stringent requirements for passwords in the Native realm. However, the login page is used for other realms, + // such as LDAP and Active Directory. Because of that, the best validation we can do here is to ensure the password is not empty. + return invalid( + i18n.translate( + 'xpack.security.authentication.login.validateLogin.requiredPasswordErrorMessage', + { + defaultMessage: 'Password is required', + } + ) + ); + } + return valid(); + } + + public validateForLogin(username: string, password: string): LoginValidationResult { + const { isInvalid: isUsernameInvalid } = this.validateUsername(username); + const { isInvalid: isPasswordInvalid } = this.validatePassword(password); + + if (isUsernameInvalid || isPasswordInvalid) { + return invalid(); + } + + return valid(); + } +} + +function invalid(error?: string): LoginValidationResult { + return { + isInvalid: true, + error, + }; +} + +function valid(): LoginValidationResult { + return { + isInvalid: false, + }; +} From 956f97172b09b6be9cf4882553e71fa65db1cb16 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 30 Mar 2020 18:00:00 +0100 Subject: [PATCH 003/118] [ML] Fix jobs list filter in url (#61822) --- .../jobs/jobs_list/components/utils.js | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.js index 37b9fe5e1f2d0d..1f2a57f9997758 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.js @@ -388,17 +388,23 @@ function getUrlVars(url) { } export function getSelectedJobIdFromUrl(url) { - if (typeof url === 'string' && url.includes('mlManagement') && url.includes('jobId')) { - const urlParams = getUrlVars(url); - const decodedJson = rison.decode(urlParams.mlManagement); - return decodedJson.jobId; + if (typeof url === 'string') { + url = decodeURIComponent(url); + if (url.includes('mlManagement') && url.includes('jobId')) { + const urlParams = getUrlVars(url); + const decodedJson = rison.decode(urlParams.mlManagement); + return decodedJson.jobId; + } } } export function clearSelectedJobIdFromUrl(url) { - if (typeof url === 'string' && url.includes('mlManagement') && url.includes('jobId')) { - const urlParams = getUrlVars(url); - const clearedParams = `ml#/jobs?_g=${urlParams._g}`; - window.history.replaceState({}, document.title, clearedParams); + if (typeof url === 'string') { + url = decodeURIComponent(url); + if (url.includes('mlManagement') && url.includes('jobId')) { + const urlParams = getUrlVars(url); + const clearedParams = `ml#/jobs?_g=${urlParams._g}`; + window.history.replaceState({}, document.title, clearedParams); + } } } From b844fc584a7695527dec6ce98cd04aa8fd87f5b7 Mon Sep 17 00:00:00 2001 From: Melissa Alvarez Date: Mon, 30 Mar 2020 13:04:35 -0400 Subject: [PATCH 004/118] [ML] DF Analytics Classification: clarify subset of data used in confusion matrix (#61548) * clarify which subset of data is being used in confusion matrix * ensure dataSubsetTitle updates correctly --- .../evaluate_panel.tsx | 59 ++++++++++++++++--- 1 file changed, 51 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx index 1c5563bdb4f83f..4dfebd360a087a 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx @@ -54,6 +54,43 @@ interface Props { searchQuery: ResultsSearchQuery; } +enum SUBSET_TITLE { + TRAINING = 'training', + TESTING = 'testing', + ENTIRE = 'entire', +} + +const entireDatasetHelpText = i18n.translate( + 'xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixEntireHelpText', + { + defaultMessage: 'Normalized confusion matrix for entire dataset', + } +); + +const testingDatasetHelpText = i18n.translate( + 'xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixTestingHelpText', + { + defaultMessage: 'Normalized confusion matrix for testing dataset', + } +); + +const trainingDatasetHelpText = i18n.translate( + 'xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixTrainingHelpText', + { + defaultMessage: 'Normalized confusion matrix for training dataset', + } +); + +function getHelpText(dataSubsetTitle: string) { + let helpText = entireDatasetHelpText; + if (dataSubsetTitle === SUBSET_TITLE.TESTING) { + helpText = testingDatasetHelpText; + } else if (dataSubsetTitle === SUBSET_TITLE.TRAINING) { + helpText = trainingDatasetHelpText; + } + return helpText; +} + export const EvaluatePanel: FC = ({ jobConfig, jobStatus, searchQuery }) => { const { services: { docLinks }, @@ -66,6 +103,7 @@ export const EvaluatePanel: FC = ({ jobConfig, jobStatus, searchQuery }) const [popoverContents, setPopoverContents] = useState([]); const [docsCount, setDocsCount] = useState(null); const [error, setError] = useState(null); + const [dataSubsetTitle, setDataSubsetTitle] = useState(SUBSET_TITLE.ENTIRE); const [panelWidth, setPanelWidth] = useState(defaultPanelWidth); // Column visibility const [visibleColumns, setVisibleColumns] = useState(() => @@ -197,6 +235,18 @@ export const EvaluatePanel: FC = ({ jobConfig, jobStatus, searchQuery }) hasIsTrainingClause[0] && hasIsTrainingClause[0].match[`${resultsField}.is_training`]; + const noTrainingQuery = isTrainingClause === false || isTrainingClause === undefined; + + if (noTrainingQuery) { + setDataSubsetTitle(SUBSET_TITLE.ENTIRE); + } else { + setDataSubsetTitle( + isTrainingClause && isTrainingClause.query === 'true' + ? SUBSET_TITLE.TRAINING + : SUBSET_TITLE.TESTING + ); + } + loadData({ isTrainingClause }); }, [JSON.stringify(searchQuery)]); @@ -302,14 +352,7 @@ export const EvaluatePanel: FC = ({ jobConfig, jobStatus, searchQuery }) - - {i18n.translate( - 'xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixHelpText', - { - defaultMessage: 'Normalized confusion matrix', - } - )} - + {getHelpText(dataSubsetTitle)} Date: Mon, 30 Mar 2020 10:05:31 -0700 Subject: [PATCH 005/118] skip flaky suite (#57377) --- .../feature_controls/advanced_settings_security.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/advanced_settings/feature_controls/advanced_settings_security.ts b/x-pack/test/functional/apps/advanced_settings/feature_controls/advanced_settings_security.ts index 1f22ca59ab2d48..7e15ff436d12ca 100644 --- a/x-pack/test/functional/apps/advanced_settings/feature_controls/advanced_settings_security.ts +++ b/x-pack/test/functional/apps/advanced_settings/feature_controls/advanced_settings_security.ts @@ -138,7 +138,8 @@ export default function({ getPageObjects, getService }: FtrProviderContext) { }); }); - describe('no advanced_settings privileges', function() { + // FLAKY: https://github.com/elastic/kibana/issues/57377 + describe.skip('no advanced_settings privileges', function() { this.tags(['skipCoverage']); before(async () => { await security.role.create('no_advanced_settings_privileges_role', { From 9bf63368e78204fd10901f6df163f94104b95910 Mon Sep 17 00:00:00 2001 From: Melissa Alvarez Date: Mon, 30 Mar 2020 13:17:17 -0400 Subject: [PATCH 006/118] [ML] DF Analytics: ensure job state is up to date (#61678) * classification results: fetch job state on load * regression results: fetch job state on load * outlier results: fetch job state on load * remove deprecated code adding jobStatus to url * update outlier result test --- .../classification_exploration.tsx | 14 ++++++++++++-- .../evaluate_panel.tsx | 10 ++++++---- .../results_table.tsx | 18 +++++++++++------- .../outlier_exploration.test.tsx | 3 +-- .../outlier_exploration.tsx | 13 +++++++------ .../regression_exploration/evaluate_panel.tsx | 10 ++++++---- .../regression_exploration.tsx | 14 ++++++++++++-- .../regression_exploration/results_table.tsx | 18 +++++++++++------- .../hooks/use_explore_data/use_explore_data.ts | 14 ++++++++++++++ .../pages/analytics_exploration/page.tsx | 10 ++++------ .../components/analytics_list/actions.tsx | 3 +-- .../components/analytics_list/common.ts | 4 ++-- .../analytics_job_exploration.tsx | 4 +--- 13 files changed, 88 insertions(+), 47 deletions(-) diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration.tsx index 263d43ceb2630c..41430b163c029c 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration.tsx @@ -18,6 +18,7 @@ import { getIndexPatternIdFromName } from '../../../../../util/index_utils'; import { IIndexPattern } from '../../../../../../../../../../src/plugins/data/common/index_patterns'; import { newJobCapsService } from '../../../../../services/new_job_capabilities_service'; import { useMlContext } from '../../../../../contexts/ml'; +import { isGetDataFrameAnalyticsStatsResponseOk } from '../../../analytics_management/services/analytics_service/get_analytics'; export const ExplorationTitle: React.FC<{ jobId: string }> = ({ jobId }) => ( @@ -47,11 +48,11 @@ const jobCapsErrorTitle = i18n.translate( interface Props { jobId: string; - jobStatus: DATA_FRAME_TASK_STATE; } -export const ClassificationExploration: FC = ({ jobId, jobStatus }) => { +export const ClassificationExploration: FC = ({ jobId }) => { const [jobConfig, setJobConfig] = useState(undefined); + const [jobStatus, setJobStatus] = useState(undefined); const [isLoadingJobConfig, setIsLoadingJobConfig] = useState(false); const [isInitialized, setIsInitialized] = useState(false); const [jobConfigErrorMessage, setJobConfigErrorMessage] = useState(undefined); @@ -65,6 +66,15 @@ export const ClassificationExploration: FC = ({ jobId, jobStatus }) => { setIsLoadingJobConfig(true); try { const analyticsConfigs = await ml.dataFrameAnalytics.getDataFrameAnalytics(jobId); + const analyticsStats = await ml.dataFrameAnalytics.getDataFrameAnalyticsStats(jobId); + const stats = isGetDataFrameAnalyticsStatsResponseOk(analyticsStats) + ? analyticsStats.data_frame_analytics[0] + : undefined; + + if (stats !== undefined && stats.state) { + setJobStatus(stats.state); + } + if ( Array.isArray(analyticsConfigs.data_frame_analytics) && analyticsConfigs.data_frame_analytics.length > 0 diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx index 4dfebd360a087a..91dae49ba5c497 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx @@ -50,7 +50,7 @@ const defaultPanelWidth = 500; interface Props { jobConfig: DataFrameAnalyticsConfig; - jobStatus: DATA_FRAME_TASK_STATE; + jobStatus?: DATA_FRAME_TASK_STATE; searchQuery: ResultsSearchQuery; } @@ -318,9 +318,11 @@ export const EvaluatePanel: FC = ({ jobConfig, jobStatus, searchQuery }) - - {getTaskStateBadge(jobStatus)} - + {jobStatus !== undefined && ( + + {getTaskStateBadge(jobStatus)} + + )} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/results_table.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/results_table.tsx index 20d126f4ac6ca6..dabb8db514226d 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/results_table.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/results_table.tsx @@ -86,7 +86,7 @@ const showingFirstDocs = i18n.translate( interface Props { jobConfig: DataFrameAnalyticsConfig; - jobStatus: DATA_FRAME_TASK_STATE; + jobStatus?: DATA_FRAME_TASK_STATE; setEvaluateSearchQuery: React.Dispatch>; } @@ -381,9 +381,11 @@ export const ResultsTable: FC = React.memo( - - {getTaskStateBadge(jobStatus)} - + {jobStatus !== undefined && ( + + {getTaskStateBadge(jobStatus)} + + )} = React.memo( - - {getTaskStateBadge(jobStatus)} - + {jobStatus !== undefined && ( + + {getTaskStateBadge(jobStatus)} + + )} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.test.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.test.tsx index 030447873f6a53..7cdd15e49bd14c 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.test.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.test.tsx @@ -6,7 +6,6 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { DATA_FRAME_TASK_STATE } from '../../../analytics_management/components/analytics_list/common'; import { MlContext } from '../../../../../contexts/ml'; import { kibanaContextValueMock } from '../../../../../contexts/ml/__mocks__/kibana_context_value'; @@ -22,7 +21,7 @@ describe('Data Frame Analytics: ', () => { test('Minimal initialization', () => { const wrapper = shallow( - + ); // Without the jobConfig being loaded, the component will just return empty. diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.tsx index 214bc01c6a2ef3..d686c605f19126 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.tsx @@ -27,7 +27,6 @@ import { import { sortColumns, INDEX_STATUS, defaultSearchQuery } from '../../../../common'; -import { DATA_FRAME_TASK_STATE } from '../../../analytics_management/components/analytics_list/common'; import { getTaskStateBadge } from '../../../analytics_management/components/analytics_list/columns'; import { useExploreData, TableItem } from '../../hooks/use_explore_data'; @@ -50,7 +49,6 @@ const ExplorationTitle: FC<{ jobId: string }> = ({ jobId }) => ( interface ExplorationProps { jobId: string; - jobStatus: DATA_FRAME_TASK_STATE; } const getFeatureCount = (resultsField: string, tableItems: TableItem[] = []) => { @@ -63,11 +61,12 @@ const getFeatureCount = (resultsField: string, tableItems: TableItem[] = []) => ).length; }; -export const OutlierExploration: FC = React.memo(({ jobId, jobStatus }) => { +export const OutlierExploration: FC = React.memo(({ jobId }) => { const { errorMessage, indexPattern, jobConfig, + jobStatus, pagination, searchQuery, selectedFields, @@ -173,9 +172,11 @@ export const OutlierExploration: FC = React.memo(({ jobId, job - - {getTaskStateBadge(jobStatus)} - + {jobStatus !== undefined && ( + + {getTaskStateBadge(jobStatus)} + + )} {(columns.length > 0 || searchQuery !== defaultSearchQuery) && ( diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/evaluate_panel.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/evaluate_panel.tsx index 74937bf761285b..9f235ae6c45c09 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/evaluate_panel.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/evaluate_panel.tsx @@ -39,7 +39,7 @@ import { interface Props { jobConfig: DataFrameAnalyticsConfig; - jobStatus: DATA_FRAME_TASK_STATE; + jobStatus?: DATA_FRAME_TASK_STATE; searchQuery: ResultsSearchQuery; } @@ -248,9 +248,11 @@ export const EvaluatePanel: FC = ({ jobConfig, jobStatus, searchQuery }) - - {getTaskStateBadge(jobStatus)} - + {jobStatus !== undefined && ( + + {getTaskStateBadge(jobStatus)} + + )} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/regression_exploration.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/regression_exploration.tsx index 3dfd95a27f8a7f..4f3c4048d40d58 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/regression_exploration.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/regression_exploration.tsx @@ -18,6 +18,7 @@ import { getIndexPatternIdFromName } from '../../../../../util/index_utils'; import { IIndexPattern } from '../../../../../../../../../../src/plugins/data/common/index_patterns'; import { newJobCapsService } from '../../../../../services/new_job_capabilities_service'; import { useMlContext } from '../../../../../contexts/ml'; +import { isGetDataFrameAnalyticsStatsResponseOk } from '../../../analytics_management/services/analytics_service/get_analytics'; export const ExplorationTitle: React.FC<{ jobId: string }> = ({ jobId }) => ( @@ -47,11 +48,11 @@ const jobCapsErrorTitle = i18n.translate( interface Props { jobId: string; - jobStatus: DATA_FRAME_TASK_STATE; } -export const RegressionExploration: FC = ({ jobId, jobStatus }) => { +export const RegressionExploration: FC = ({ jobId }) => { const [jobConfig, setJobConfig] = useState(undefined); + const [jobStatus, setJobStatus] = useState(undefined); const [isLoadingJobConfig, setIsLoadingJobConfig] = useState(false); const [isInitialized, setIsInitialized] = useState(false); const [jobConfigErrorMessage, setJobConfigErrorMessage] = useState(undefined); @@ -65,6 +66,15 @@ export const RegressionExploration: FC = ({ jobId, jobStatus }) => { setIsLoadingJobConfig(true); try { const analyticsConfigs = await ml.dataFrameAnalytics.getDataFrameAnalytics(jobId); + const analyticsStats = await ml.dataFrameAnalytics.getDataFrameAnalyticsStats(jobId); + const stats = isGetDataFrameAnalyticsStatsResponseOk(analyticsStats) + ? analyticsStats.data_frame_analytics[0] + : undefined; + + if (stats !== undefined && stats.state) { + setJobStatus(stats.state); + } + if ( Array.isArray(analyticsConfigs.data_frame_analytics) && analyticsConfigs.data_frame_analytics.length > 0 diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/results_table.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/results_table.tsx index 7a6b2b23ba7a3f..b896c34a582f73 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/results_table.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/results_table.tsx @@ -86,7 +86,7 @@ const showingFirstDocs = i18n.translate( interface Props { jobConfig: DataFrameAnalyticsConfig; - jobStatus: DATA_FRAME_TASK_STATE; + jobStatus?: DATA_FRAME_TASK_STATE; setEvaluateSearchQuery: React.Dispatch>; } @@ -381,9 +381,11 @@ export const ResultsTable: FC = React.memo( - - {getTaskStateBadge(jobStatus)} - + {jobStatus !== undefined && ( + + {getTaskStateBadge(jobStatus)} + + )} = React.memo( - - {getTaskStateBadge(jobStatus)} - + {jobStatus !== undefined && ( + + {getTaskStateBadge(jobStatus)} + + )} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/hooks/use_explore_data/use_explore_data.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/hooks/use_explore_data/use_explore_data.ts index 6ad0a1822e4900..d637057a4430d4 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/hooks/use_explore_data/use_explore_data.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/hooks/use_explore_data/use_explore_data.ts @@ -19,6 +19,7 @@ import { newJobCapsService } from '../../../../../services/new_job_capabilities_ import { getIndexPatternIdFromName } from '../../../../../util/index_utils'; import { getNestedProperty } from '../../../../../util/object_utils'; import { useMlContext } from '../../../../../contexts/ml'; +import { isGetDataFrameAnalyticsStatsResponseOk } from '../../../analytics_management/services/analytics_service/get_analytics'; import { getDefaultSelectableFields, @@ -31,6 +32,7 @@ import { import { isKeywordAndTextType } from '../../../../common/fields'; import { getOutlierScoreFieldName } from './common'; +import { DATA_FRAME_TASK_STATE } from '../../../analytics_management/components/analytics_list/common'; export type TableItem = Record; @@ -40,6 +42,7 @@ interface UseExploreDataReturnType { errorMessage: string; indexPattern: IndexPattern | undefined; jobConfig: DataFrameAnalyticsConfig | undefined; + jobStatus: DATA_FRAME_TASK_STATE | undefined; pagination: Pagination; searchQuery: SavedSearchQuery; selectedFields: EsFieldName[]; @@ -74,6 +77,7 @@ export const useExploreData = (jobId: string): UseExploreDataReturnType => { const [indexPattern, setIndexPattern] = useState(undefined); const [jobConfig, setJobConfig] = useState(undefined); + const [jobStatus, setJobStatus] = useState(undefined); const [errorMessage, setErrorMessage] = useState(''); const [status, setStatus] = useState(INDEX_STATUS.UNUSED); @@ -90,6 +94,15 @@ export const useExploreData = (jobId: string): UseExploreDataReturnType => { useEffect(() => { (async function() { const analyticsConfigs = await ml.dataFrameAnalytics.getDataFrameAnalytics(jobId); + const analyticsStats = await ml.dataFrameAnalytics.getDataFrameAnalyticsStats(jobId); + const stats = isGetDataFrameAnalyticsStatsResponseOk(analyticsStats) + ? analyticsStats.data_frame_analytics[0] + : undefined; + + if (stats !== undefined && stats.state) { + setJobStatus(stats.state); + } + if ( Array.isArray(analyticsConfigs.data_frame_analytics) && analyticsConfigs.data_frame_analytics.length > 0 @@ -215,6 +228,7 @@ export const useExploreData = (jobId: string): UseExploreDataReturnType => { errorMessage, indexPattern, jobConfig, + jobStatus, pagination, rowCount, searchQuery, diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx index efbebc1564bf9a..c8349084dbda88 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx @@ -27,13 +27,11 @@ import { RegressionExploration } from './components/regression_exploration'; import { ClassificationExploration } from './components/classification_exploration'; import { ANALYSIS_CONFIG_TYPE } from '../../common/analytics'; -import { DATA_FRAME_TASK_STATE } from '../analytics_management/components/analytics_list/common'; export const Page: FC<{ jobId: string; analysisType: ANALYSIS_CONFIG_TYPE; - jobStatus: DATA_FRAME_TASK_STATE; -}> = ({ jobId, analysisType, jobStatus }) => ( +}> = ({ jobId, analysisType }) => ( @@ -68,13 +66,13 @@ export const Page: FC<{ {analysisType === ANALYSIS_CONFIG_TYPE.OUTLIER_DETECTION && ( - + )} {analysisType === ANALYSIS_CONFIG_TYPE.REGRESSION && ( - + )} {analysisType === ANALYSIS_CONFIG_TYPE.CLASSIFICATION && ( - + )} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/actions.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/actions.tsx index 425e3bc903d047..4e19df9ae22a82 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/actions.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/actions.tsx @@ -33,13 +33,12 @@ export const AnalyticsViewAction = { isPrimary: true, render: (item: DataFrameAnalyticsListRow) => { const analysisType = getAnalysisType(item.config.analysis); - const jobStatus = item.stats.state; const isDisabled = !isRegressionAnalysis(item.config.analysis) && !isOutlierAnalysis(item.config.analysis) && !isClassificationAnalysis(item.config.analysis); - const url = getResultsUrl(item.id, analysisType, jobStatus); + const url = getResultsUrl(item.id, analysisType); return ( = ({ location, deps }) => { } const jobId: string = globalState.ml.jobId; const analysisType: ANALYSIS_CONFIG_TYPE = globalState.ml.analysisType; - const jobStatus: DATA_FRAME_TASK_STATE = globalState.ml.jobStatus; return ( - + ); }; From 0070bdcdd5cf22251a18d921605f019f91a68768 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Mon, 30 Mar 2020 11:25:49 -0600 Subject: [PATCH 007/118] [Maps] clean-up unsaved state check (#61705) * [Maps] clean-up unsaved state check (#61535) * close layer panel in functional test * skip vector styling test * skip saved object management test * skip all of group 7 tests * turn back on group 7, skip full screen * turn on all tests except full screen * unskip all tests and resolve root problem Co-authored-by: Elastic Machine --- .../maps/public/angular/map_controller.js | 10 ++++++++-- .../components/color/dynamic_color_form.js | 16 ++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/x-pack/legacy/plugins/maps/public/angular/map_controller.js b/x-pack/legacy/plugins/maps/public/angular/map_controller.js index 519ba0b1e3d964..bc97643689e12b 100644 --- a/x-pack/legacy/plugins/maps/public/angular/map_controller.js +++ b/x-pack/legacy/plugins/maps/public/angular/map_controller.js @@ -310,9 +310,15 @@ app.controller( const layerListConfigOnly = copyPersistentState(layerList); const savedLayerList = savedMap.getLayerList(); - const oldConfig = savedLayerList ? savedLayerList : initialLayerListConfig; - return !_.isEqual(layerListConfigOnly, oldConfig); + return !savedLayerList + ? !_.isEqual(layerListConfigOnly, initialLayerListConfig) + : // savedMap stores layerList as a JSON string using JSON.stringify. + // JSON.stringify removes undefined properties from objects. + // savedMap.getLayerList converts the JSON string back into Javascript array of objects. + // Need to perform the same process for layerListConfigOnly to compare apples to apples + // and avoid undefined properties in layerListConfigOnly triggering unsaved changes. + !_.isEqual(JSON.parse(JSON.stringify(layerListConfigOnly)), savedLayerList); } function isOnMapNow() { diff --git a/x-pack/legacy/plugins/maps/public/layers/styles/vector/components/color/dynamic_color_form.js b/x-pack/legacy/plugins/maps/public/layers/styles/vector/components/color/dynamic_color_form.js index a1c15e27c9eb36..5e8f720fcc5e35 100644 --- a/x-pack/legacy/plugins/maps/public/layers/styles/vector/components/color/dynamic_color_form.js +++ b/x-pack/legacy/plugins/maps/public/layers/styles/vector/components/color/dynamic_color_form.js @@ -28,12 +28,20 @@ export function DynamicColorForm({ }; if (type === COLOR_MAP_TYPE.ORDINAL) { newColorOptions.useCustomColorRamp = useCustomColorMap; - newColorOptions.customColorRamp = customColorMap; - newColorOptions.color = color; + if (customColorMap) { + newColorOptions.customColorRamp = customColorMap; + } + if (color) { + newColorOptions.color = color; + } } else { newColorOptions.useCustomColorPalette = useCustomColorMap; - newColorOptions.customColorPalette = customColorMap; - newColorOptions.colorCategory = color; + if (customColorMap) { + newColorOptions.customColorPalette = customColorMap; + } + if (color) { + newColorOptions.colorCategory = color; + } } onDynamicStyleChange(styleProperty.getStyleName(), newColorOptions); From d1cf0acf3f0544260afd23733e2e1c50071c89fd Mon Sep 17 00:00:00 2001 From: Shahzad Date: Mon, 30 Mar 2020 19:28:49 +0200 Subject: [PATCH 008/118] [Uptime] Update ML flyout to add cancel button (#61627) * update button * fix type * update snaps * update layout --- .../__snapshots__/ml_flyout.test.tsx.snap | 31 +++++++++++++++++-- .../monitor_details/ml/ml_flyout.tsx | 9 ++++-- .../monitor_details/ml/translations.tsx | 7 +++++ 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/__tests__/__snapshots__/ml_flyout.test.tsx.snap b/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/__tests__/__snapshots__/ml_flyout.test.tsx.snap index 354521e7c55b92..ead27425c26f3b 100644 --- a/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/__tests__/__snapshots__/ml_flyout.test.tsx.snap +++ b/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/__tests__/__snapshots__/ml_flyout.test.tsx.snap @@ -53,9 +53,18 @@ exports[`ML Flyout component renders without errors 1`] = ` + + + Cancel + + @@ -206,8 +215,26 @@ exports[`ML Flyout component shows license info if no ml available 1`] = ` class="euiFlyoutFooter" >
+
+ +
diff --git a/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/ml_flyout.tsx b/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/ml_flyout.tsx index 917367f3e8dada..fdecfbf20810c9 100644 --- a/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/ml_flyout.tsx +++ b/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/ml_flyout.tsx @@ -7,6 +7,7 @@ import React, { useContext } from 'react'; import { EuiButton, + EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiFlyout, @@ -64,11 +65,15 @@ export function MLFlyoutView({ isCreatingJob, onClickCreate, onClose, canCreateM {labels.TAKE_SOME_TIME_TEXT}

- - + + + onClose()} disabled={isCreatingJob || isLoadingMLJob}> + {labels.CANCEL_LABEL} + + onClickCreate()} diff --git a/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/translations.tsx b/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/translations.tsx index 570dd9d1bfa26a..32374674771e8e 100644 --- a/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/translations.tsx +++ b/x-pack/legacy/plugins/uptime/public/components/monitor_details/ml/translations.tsx @@ -124,6 +124,13 @@ export const CREATE_NEW_JOB = i18n.translate( } ); +export const CANCEL_LABEL = i18n.translate( + 'xpack.uptime.ml.enableAnomalyDetectionPanel.cancelLabel', + { + defaultMessage: 'Cancel', + } +); + export const CREAT_ML_JOB_DESC = i18n.translate( 'xpack.uptime.ml.enableAnomalyDetectionPanel.createMLJobDescription', { From 9831c12e1a8c7b82037278d495a2b777fa7f389f Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Mon, 30 Mar 2020 11:31:35 -0600 Subject: [PATCH 009/118] [SIEM] [Case] Design fixing (#61681) --- .../insert_timeline_popover/index.tsx | 18 ++++---- .../components/timeline/translations.ts | 2 +- .../public/containers/case/translations.ts | 40 +++++++++++++++++ .../siem/public/containers/case/types.ts | 5 +++ .../containers/case/use_bulk_update_case.tsx | 17 ++++++- .../containers/case/use_delete_cases.tsx | 15 +++++-- .../containers/case/use_update_case.tsx | 3 +- .../case/components/all_cases/index.test.tsx | 2 +- .../pages/case/components/all_cases/index.tsx | 44 +++++++++++++------ .../components/case_view/actions.test.tsx | 2 +- .../case/components/case_view/actions.tsx | 2 +- .../user_action_tree/translations.ts | 6 +-- .../user_action_tree/user_action_item.tsx | 1 + .../user_action_tree/user_action_title.tsx | 41 +++++++++++------ .../pages/case/components/user_list/index.tsx | 19 ++++---- 15 files changed, 161 insertions(+), 56 deletions(-) diff --git a/x-pack/legacy/plugins/siem/public/components/timeline/insert_timeline_popover/index.tsx b/x-pack/legacy/plugins/siem/public/components/timeline/insert_timeline_popover/index.tsx index fa474c4d601ad5..cf1a4ebec9bb66 100644 --- a/x-pack/legacy/plugins/siem/public/components/timeline/insert_timeline_popover/index.tsx +++ b/x-pack/legacy/plugins/siem/public/components/timeline/insert_timeline_popover/index.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { EuiButtonIcon, EuiPopover, EuiSelectableOption } from '@elastic/eui'; +import { EuiButtonIcon, EuiPopover, EuiSelectableOption, EuiToolTip } from '@elastic/eui'; import React, { memo, useCallback, useEffect, useMemo, useState } from 'react'; import { useLocation } from 'react-router-dom'; import { useDispatch } from 'react-redux'; @@ -62,13 +62,15 @@ export const InsertTimelinePopoverComponent: React.FC = ({ const insertTimelineButton = useMemo( () => ( - + {i18n.INSERT_TIMELINE}

}> + +
), [handleOpenPopover, isDisabled] ); diff --git a/x-pack/legacy/plugins/siem/public/components/timeline/translations.ts b/x-pack/legacy/plugins/siem/public/components/timeline/translations.ts index de3e3c8e792fe9..101837168350f8 100644 --- a/x-pack/legacy/plugins/siem/public/components/timeline/translations.ts +++ b/x-pack/legacy/plugins/siem/public/components/timeline/translations.ts @@ -25,5 +25,5 @@ export const SEARCH_BOX_TIMELINE_PLACEHOLDER = i18n.translate( ); export const INSERT_TIMELINE = i18n.translate('xpack.siem.insert.timeline.insertTimelineButton', { - defaultMessage: 'Insert Timeline…', + defaultMessage: 'Insert timeline link', }); diff --git a/x-pack/legacy/plugins/siem/public/containers/case/translations.ts b/x-pack/legacy/plugins/siem/public/containers/case/translations.ts index 601db373f041e3..a453be32480e29 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/translations.ts +++ b/x-pack/legacy/plugins/siem/public/containers/case/translations.ts @@ -10,6 +10,46 @@ export const ERROR_TITLE = i18n.translate('xpack.siem.containers.case.errorTitle defaultMessage: 'Error fetching data', }); +export const ERROR_DELETING = i18n.translate('xpack.siem.containers.case.errorDeletingTitle', { + defaultMessage: 'Error deleting data', +}); + +export const UPDATED_CASE = (caseTitle: string) => + i18n.translate('xpack.siem.containers.case.updatedCase', { + values: { caseTitle }, + defaultMessage: 'Updated "{caseTitle}"', + }); + +export const DELETED_CASES = (totalCases: number, caseTitle?: string) => + i18n.translate('xpack.siem.containers.case.deletedCases', { + values: { caseTitle, totalCases }, + defaultMessage: 'Deleted {totalCases, plural, =1 {"{caseTitle}"} other {{totalCases} cases}}', + }); + +export const CLOSED_CASES = ({ + totalCases, + caseTitle, +}: { + totalCases: number; + caseTitle?: string; +}) => + i18n.translate('xpack.siem.containers.case.closedCases', { + values: { caseTitle, totalCases }, + defaultMessage: 'Closed {totalCases, plural, =1 {"{caseTitle}"} other {{totalCases} cases}}', + }); + +export const REOPENED_CASES = ({ + totalCases, + caseTitle, +}: { + totalCases: number; + caseTitle?: string; +}) => + i18n.translate('xpack.siem.containers.case.reopenedCases', { + values: { caseTitle, totalCases }, + defaultMessage: 'Reopened {totalCases, plural, =1 {"{caseTitle}"} other {{totalCases} cases}}', + }); + export const TAG_FETCH_FAILURE = i18n.translate( 'xpack.siem.containers.case.tagFetchFailDescription', { diff --git a/x-pack/legacy/plugins/siem/public/containers/case/types.ts b/x-pack/legacy/plugins/siem/public/containers/case/types.ts index bb215d6ac271c3..cb3df78257dc17 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/types.ts +++ b/x-pack/legacy/plugins/siem/public/containers/case/types.ts @@ -114,3 +114,8 @@ export interface ActionLicense { enabledInConfig: boolean; enabledInLicense: boolean; } + +export interface DeleteCase { + id: string; + title?: string; +} diff --git a/x-pack/legacy/plugins/siem/public/containers/case/use_bulk_update_case.tsx b/x-pack/legacy/plugins/siem/public/containers/case/use_bulk_update_case.tsx index f1129bae9f537a..7d040c49f19716 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/use_bulk_update_case.tsx +++ b/x-pack/legacy/plugins/siem/public/containers/case/use_bulk_update_case.tsx @@ -5,7 +5,7 @@ */ import { useCallback, useReducer } from 'react'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { displaySuccessToast, errorToToaster, useStateToaster } from '../../components/toasters'; import * as i18n from './translations'; import { patchCasesStatus } from './api'; import { BulkUpdateStatus, Case } from './types'; @@ -71,9 +71,22 @@ export const useUpdateCases = (): UseUpdateCase => { const patchData = async () => { try { dispatch({ type: 'FETCH_INIT' }); - await patchCasesStatus(cases, abortCtrl.signal); + const patchResponse = await patchCasesStatus(cases, abortCtrl.signal); if (!cancel) { + const resultCount = Object.keys(patchResponse).length; + const firstTitle = patchResponse[0].title; + dispatch({ type: 'FETCH_SUCCESS', payload: true }); + const messageArgs = { + totalCases: resultCount, + caseTitle: resultCount === 1 ? firstTitle : '', + }; + const message = + resultCount && patchResponse[0].status === 'open' + ? i18n.REOPENED_CASES(messageArgs) + : i18n.CLOSED_CASES(messageArgs); + + displaySuccessToast(message, dispatchToaster); } } catch (error) { if (!cancel) { diff --git a/x-pack/legacy/plugins/siem/public/containers/case/use_delete_cases.tsx b/x-pack/legacy/plugins/siem/public/containers/case/use_delete_cases.tsx index b44e01d06acafa..07e3786758aeb5 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/use_delete_cases.tsx +++ b/x-pack/legacy/plugins/siem/public/containers/case/use_delete_cases.tsx @@ -5,9 +5,10 @@ */ import { useCallback, useReducer } from 'react'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { displaySuccessToast, errorToToaster, useStateToaster } from '../../components/toasters'; import * as i18n from './translations'; import { deleteCases } from './api'; +import { DeleteCase } from './types'; interface DeleteState { isDisplayConfirmDeleteModal: boolean; @@ -57,9 +58,10 @@ const dataFetchReducer = (state: DeleteState, action: Action): DeleteState => { return state; } }; + interface UseDeleteCase extends DeleteState { dispatchResetIsDeleted: () => void; - handleOnDeleteConfirm: (caseIds: string[]) => void; + handleOnDeleteConfirm: (caseIds: DeleteCase[]) => void; handleToggleModal: () => void; } @@ -72,21 +74,26 @@ export const useDeleteCases = (): UseDeleteCase => { }); const [, dispatchToaster] = useStateToaster(); - const dispatchDeleteCases = useCallback((caseIds: string[]) => { + const dispatchDeleteCases = useCallback((cases: DeleteCase[]) => { let cancel = false; const abortCtrl = new AbortController(); const deleteData = async () => { try { dispatch({ type: 'FETCH_INIT' }); + const caseIds = cases.map(theCase => theCase.id); await deleteCases(caseIds, abortCtrl.signal); if (!cancel) { dispatch({ type: 'FETCH_SUCCESS', payload: true }); + displaySuccessToast( + i18n.DELETED_CASES(cases.length, cases.length === 1 ? cases[0].title : ''), + dispatchToaster + ); } } catch (error) { if (!cancel) { errorToToaster({ - title: i18n.ERROR_TITLE, + title: i18n.ERROR_DELETING, error: error.body && error.body.message ? new Error(error.body.message) : error, dispatchToaster, }); diff --git a/x-pack/legacy/plugins/siem/public/containers/case/use_update_case.tsx b/x-pack/legacy/plugins/siem/public/containers/case/use_update_case.tsx index 85ad4fd3fc47a9..4973deef4d91ad 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/use_update_case.tsx +++ b/x-pack/legacy/plugins/siem/public/containers/case/use_update_case.tsx @@ -5,8 +5,8 @@ */ import { useReducer, useCallback } from 'react'; +import { displaySuccessToast, errorToToaster, useStateToaster } from '../../components/toasters'; import { CasePatchRequest } from '../../../../../../plugins/case/common/api'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; import { patchCase } from './api'; import * as i18n from './translations'; @@ -94,6 +94,7 @@ export const useUpdateCase = ({ caseId }: { caseId: string }): UseUpdateCase => updateCase(response[0]); } dispatch({ type: 'FETCH_SUCCESS' }); + displaySuccessToast(i18n.UPDATED_CASE(response[0].title), dispatchToaster); } } catch (error) { if (!cancel) { diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.test.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.test.tsx index bdcb87b483851b..5f61ccf68fc86b 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.test.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.test.tsx @@ -202,7 +202,7 @@ describe('AllCases', () => { .last() .simulate('click'); expect(handleOnDeleteConfirm.mock.calls[0][0]).toStrictEqual( - useGetCasesMockState.data.cases.map(theCase => theCase.id) + useGetCasesMockState.data.cases.map(({ id }) => ({ id })) ); }); it('Bulk close status update', () => { diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.tsx index 27316ab8427cb1..dcfa1712c6ef9c 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.tsx @@ -21,7 +21,7 @@ import styled, { css } from 'styled-components'; import * as i18n from './translations'; import { getCasesColumns } from './columns'; -import { Case, FilterOptions, SortFieldCase } from '../../../../containers/case/types'; +import { Case, DeleteCase, FilterOptions, SortFieldCase } from '../../../../containers/case/types'; import { useGetCases, UpdateCase } from '../../../../containers/case/use_get_cases'; import { useGetCasesStatus } from '../../../../containers/case/use_get_cases_status'; import { useDeleteCases } from '../../../../containers/case/use_delete_cases'; @@ -107,11 +107,24 @@ export const AllCases = React.memo(() => { isDisplayConfirmDeleteModal, } = useDeleteCases(); - const { dispatchResetIsUpdated, isUpdated, updateBulkStatus } = useUpdateCases(); + // Update case + const { + dispatchResetIsUpdated, + isLoading: isUpdating, + isUpdated, + updateBulkStatus, + } = useUpdateCases(); + const [deleteThisCase, setDeleteThisCase] = useState({ + title: '', + id: '', + }); + const [deleteBulk, setDeleteBulk] = useState([]); const refreshCases = useCallback(() => { refetchCases(filterOptions, queryParams); fetchCasesStatus(); + setSelectedCases([]); + setDeleteBulk([]); }, [filterOptions, queryParams]); useEffect(() => { @@ -124,11 +137,6 @@ export const AllCases = React.memo(() => { dispatchResetIsUpdated(); } }, [isDeleted, isUpdated]); - const [deleteThisCase, setDeleteThisCase] = useState({ - title: '', - id: '', - }); - const [deleteBulk, setDeleteBulk] = useState([]); const confirmDeleteModal = useMemo( () => ( { onCancel={handleToggleModal} onConfirm={handleOnDeleteConfirm.bind( null, - deleteBulk.length > 0 ? deleteBulk : [deleteThisCase.id] + deleteBulk.length > 0 ? deleteBulk : [deleteThisCase] )} /> ), @@ -150,10 +158,20 @@ export const AllCases = React.memo(() => { setDeleteThisCase(deleteCase); }, []); - const toggleBulkDeleteModal = useCallback((deleteCases: string[]) => { - handleToggleModal(); - setDeleteBulk(deleteCases); - }, []); + const toggleBulkDeleteModal = useCallback( + (caseIds: string[]) => { + handleToggleModal(); + if (caseIds.length === 1) { + const singleCase = selectedCases.find(theCase => theCase.id === caseIds[0]); + if (singleCase) { + return setDeleteThisCase({ id: singleCase.id, title: singleCase.title }); + } + } + const convertToDeleteCases: DeleteCase[] = caseIds.map(id => ({ id })); + setDeleteBulk(convertToDeleteCases); + }, + [selectedCases] + ); const handleUpdateCaseStatus = useCallback( (status: string) => { @@ -289,7 +307,7 @@ export const AllCases = React.memo(() => {
- {(isCasesLoading || isDeleting) && !isDataEmpty && ( + {(isCasesLoading || isDeleting || isUpdating) && !isDataEmpty && ( )} diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.test.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.test.tsx index 1be0d6a3b5fcca..49f5f44cba271b 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.test.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.test.tsx @@ -60,6 +60,6 @@ describe('CaseView actions', () => { expect(wrapper.find('[data-test-subj="confirm-delete-case-modal"]').exists()).toBeTruthy(); wrapper.find('button[data-test-subj="confirmModalConfirmButton"]').simulate('click'); - expect(handleOnDeleteConfirm.mock.calls[0][0]).toEqual([data.id]); + expect(handleOnDeleteConfirm.mock.calls[0][0]).toEqual([{ id: data.id, title: data.title }]); }); }); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.tsx index 1d90470eab0e1a..04b79967aa36e5 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.tsx @@ -34,7 +34,7 @@ const CaseViewActionsComponent: React.FC = ({ caseData }) => { isModalVisible={isDisplayConfirmDeleteModal} isPlural={false} onCancel={handleToggleModal} - onConfirm={handleOnDeleteConfirm.bind(null, [caseData.id])} + onConfirm={handleOnDeleteConfirm.bind(null, [{ id: caseData.id, title: caseData.title }])} /> ), [isDisplayConfirmDeleteModal, caseData] diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/translations.ts b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/translations.ts index 0ca6bcff513fc3..066145f7762c9f 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/translations.ts +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/translations.ts @@ -22,13 +22,13 @@ export const REQUIRED_UPDATE_TO_SERVICE = i18n.translate( } ); -export const COPY_LINK_COMMENT = i18n.translate('xpack.siem.case.caseView.copyCommentLinkAria', { - defaultMessage: 'click to copy comment link', +export const COPY_REFERENCE_LINK = i18n.translate('xpack.siem.case.caseView.copyCommentLinkAria', { + defaultMessage: 'Copy reference link', }); export const MOVE_TO_ORIGINAL_COMMENT = i18n.translate( 'xpack.siem.case.caseView.moveToCommentAria', { - defaultMessage: 'click to highlight the reference comment', + defaultMessage: 'Highlight the referenced comment', } ); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx index cc36e791e35b40..340e24e8fa55b5 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx @@ -154,6 +154,7 @@ export const UserActionItem = ({ labelQuoteAction={labelQuoteAction} labelTitle={labelTitle ?? <>} linkId={linkId} + fullName={fullName} username={username} updatedAt={updatedAt} onEdit={onEdit} diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.tsx index 94185cb4d130ca..af1a1fdff26ced 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.tsx @@ -4,7 +4,14 @@ * you may not use this file except in compliance with the Elastic License. */ -import { EuiLoadingSpinner, EuiFlexGroup, EuiFlexItem, EuiText, EuiButtonIcon } from '@elastic/eui'; +import { + EuiLoadingSpinner, + EuiFlexGroup, + EuiFlexItem, + EuiText, + EuiButtonIcon, + EuiToolTip, +} from '@elastic/eui'; import { FormattedRelative } from '@kbn/i18n/react'; import copy from 'copy-to-clipboard'; import { isEmpty } from 'lodash/fp'; @@ -33,6 +40,7 @@ interface UserActionTitleProps { labelQuoteAction?: string; labelTitle: JSX.Element; linkId?: string | null; + fullName?: string | null; updatedAt?: string | null; username: string; onEdit?: (id: string) => void; @@ -48,6 +56,7 @@ export const UserActionTitle = ({ labelQuoteAction, labelTitle, linkId, + fullName, username, updatedAt, onEdit, @@ -105,7 +114,9 @@ export const UserActionTitle = ({ - {username} + {fullName ?? username}

}> + {username} +
{labelTitle} @@ -137,20 +148,24 @@ export const UserActionTitle = ({ {!isEmpty(linkId) && ( - + {i18n.MOVE_TO_ORIGINAL_COMMENT}

}> + +
)} - + {i18n.COPY_REFERENCE_LINK}

}> + +
{propertyActions.length > 0 && ( diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx index 3109f2382c3629..87a446c45d891e 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx @@ -13,6 +13,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiLoadingSpinner, + EuiToolTip, } from '@elastic/eui'; import styled, { css } from 'styled-components'; import { ElasticUser } from '../../../../containers/case/types'; @@ -40,8 +41,8 @@ const MyFlexGroup = styled(EuiFlexGroup)` const renderUsers = ( users: ElasticUser[], handleSendEmail: (emailAddress: string | undefined | null) => void -) => { - return users.map(({ fullName, username, email }, key) => ( +) => + users.map(({ fullName, username, email }, key) => ( @@ -49,11 +50,13 @@ const renderUsers = ( -

- - {username} - -

+ {fullName ?? username}

}> +

+ + {username} + +

+
@@ -63,11 +66,11 @@ const renderUsers = ( onClick={handleSendEmail.bind(null, email)} iconType="email" aria-label="email" + isDisabled={email == null} />
)); -}; export const UserList = React.memo(({ email, headline, loading, users }: UserListProps) => { const handleSendEmail = useCallback( From 4d8bae4a4c2bd1182dd3960f0dd3aea73613cdf3 Mon Sep 17 00:00:00 2001 From: Aleh Zasypkin Date: Mon, 30 Mar 2020 19:38:39 +0200 Subject: [PATCH 010/118] Migrate Security and EncryptedSavedObjects test plugins to the Kibana Platform (#61614) --- x-pack/scripts/functional_tests.js | 1 + .../config.ts | 30 +++++ .../fixtures/api_consumer_plugin/kibana.json | 8 ++ .../api_consumer_plugin/server/index.ts | 78 +++++++++++++ .../ftr_provider_context.d.ts | 11 ++ .../services.ts | 7 ++ .../tests}/encrypted_saved_objects_api.ts | 2 +- .../tests}/index.ts | 2 +- .../login_selector_api_integration/config.ts | 5 - x-pack/test/oidc_api_integration/config.ts | 6 - .../fixtures/oidc_provider/init_routes.js | 104 ------------------ .../fixtures/oidc_provider/kibana.json | 7 ++ .../fixtures/oidc_provider/package.json | 13 --- .../{index.js => server/index.ts} | 17 +-- .../oidc_provider/server/init_routes.ts | 98 +++++++++++++++++ x-pack/test/plugin_api_integration/config.js | 5 +- .../plugins/encrypted_saved_objects/index.ts | 55 --------- .../encrypted_saved_objects/mappings.json | 15 --- .../encrypted_saved_objects/package.json | 4 - x-pack/test/saml_api_integration/config.ts | 1 - 20 files changed, 249 insertions(+), 220 deletions(-) create mode 100644 x-pack/test/encrypted_saved_objects_api_integration/config.ts create mode 100644 x-pack/test/encrypted_saved_objects_api_integration/fixtures/api_consumer_plugin/kibana.json create mode 100644 x-pack/test/encrypted_saved_objects_api_integration/fixtures/api_consumer_plugin/server/index.ts create mode 100644 x-pack/test/encrypted_saved_objects_api_integration/ftr_provider_context.d.ts create mode 100644 x-pack/test/encrypted_saved_objects_api_integration/services.ts rename x-pack/test/{plugin_api_integration/test_suites/encrypted_saved_objects => encrypted_saved_objects_api_integration/tests}/encrypted_saved_objects_api.ts (99%) rename x-pack/test/{plugin_api_integration/test_suites/encrypted_saved_objects => encrypted_saved_objects_api_integration/tests}/index.ts (88%) delete mode 100644 x-pack/test/oidc_api_integration/fixtures/oidc_provider/init_routes.js create mode 100644 x-pack/test/oidc_api_integration/fixtures/oidc_provider/kibana.json delete mode 100644 x-pack/test/oidc_api_integration/fixtures/oidc_provider/package.json rename x-pack/test/oidc_api_integration/fixtures/oidc_provider/{index.js => server/index.ts} (55%) create mode 100644 x-pack/test/oidc_api_integration/fixtures/oidc_provider/server/init_routes.ts delete mode 100644 x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/index.ts delete mode 100644 x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/mappings.json delete mode 100644 x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/package.json diff --git a/x-pack/scripts/functional_tests.js b/x-pack/scripts/functional_tests.js index 242ee890d48475..b0ca33b00fde83 100644 --- a/x-pack/scripts/functional_tests.js +++ b/x-pack/scripts/functional_tests.js @@ -27,6 +27,7 @@ const onlyNotInCoverageTests = [ require.resolve('../test/oidc_api_integration/implicit_flow.config.ts'), require.resolve('../test/pki_api_integration/config.ts'), require.resolve('../test/login_selector_api_integration/config.ts'), + require.resolve('../test/encrypted_saved_objects_api_integration/config.ts'), require.resolve('../test/spaces_api_integration/spaces_only/config.ts'), require.resolve('../test/spaces_api_integration/security_and_spaces/config_trial.ts'), require.resolve('../test/spaces_api_integration/security_and_spaces/config_basic.ts'), diff --git a/x-pack/test/encrypted_saved_objects_api_integration/config.ts b/x-pack/test/encrypted_saved_objects_api_integration/config.ts new file mode 100644 index 00000000000000..c1be2e98b3b99a --- /dev/null +++ b/x-pack/test/encrypted_saved_objects_api_integration/config.ts @@ -0,0 +1,30 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { resolve } from 'path'; +import { FtrConfigProviderContext } from '@kbn/test/types/ftr'; +import { services } from './services'; + +export default async function({ readConfigFile }: FtrConfigProviderContext) { + const xPackAPITestsConfig = await readConfigFile(require.resolve('../api_integration/config.js')); + + return { + testFiles: [require.resolve('./tests')], + servers: xPackAPITestsConfig.get('servers'), + services, + junit: { + reportName: 'X-Pack Encrypted Saved Objects API Integration Tests', + }, + esTestCluster: xPackAPITestsConfig.get('esTestCluster'), + kbnTestServer: { + ...xPackAPITestsConfig.get('kbnTestServer'), + serverArgs: [ + ...xPackAPITestsConfig.get('kbnTestServer.serverArgs'), + `--plugin-path=${resolve(__dirname, './fixtures/api_consumer_plugin')}`, + ], + }, + }; +} diff --git a/x-pack/test/encrypted_saved_objects_api_integration/fixtures/api_consumer_plugin/kibana.json b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/api_consumer_plugin/kibana.json new file mode 100644 index 00000000000000..92449d0136ce50 --- /dev/null +++ b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/api_consumer_plugin/kibana.json @@ -0,0 +1,8 @@ +{ + "id": "eso", + "version": "8.0.0", + "kibanaVersion": "kibana", + "requiredPlugins": ["encryptedSavedObjects", "spaces"], + "server": true, + "ui": false +} diff --git a/x-pack/test/encrypted_saved_objects_api_integration/fixtures/api_consumer_plugin/server/index.ts b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/api_consumer_plugin/server/index.ts new file mode 100644 index 00000000000000..170b7e0c6d09d8 --- /dev/null +++ b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/api_consumer_plugin/server/index.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { CoreSetup, PluginInitializer } from '../../../../../../src/core/server'; +import { deepFreeze } from '../../../../../../src/core/utils'; +import { + EncryptedSavedObjectsPluginSetup, + EncryptedSavedObjectsPluginStart, +} from '../../../../../plugins/encrypted_saved_objects/server'; +import { SpacesPluginSetup } from '../../../../../plugins/spaces/server'; + +const SAVED_OBJECT_WITH_SECRET_TYPE = 'saved-object-with-secret'; + +interface PluginsSetup { + encryptedSavedObjects: EncryptedSavedObjectsPluginSetup; + spaces: SpacesPluginSetup; +} + +interface PluginsStart { + encryptedSavedObjects: EncryptedSavedObjectsPluginStart; + spaces: never; +} + +export const plugin: PluginInitializer = () => ({ + setup(core: CoreSetup, deps) { + core.savedObjects.registerType({ + name: SAVED_OBJECT_WITH_SECRET_TYPE, + hidden: false, + namespaceAgnostic: false, + mappings: deepFreeze({ + properties: { + publicProperty: { type: 'keyword' }, + publicPropertyExcludedFromAAD: { type: 'keyword' }, + privateProperty: { type: 'binary' }, + }, + }), + }); + + deps.encryptedSavedObjects.registerType({ + type: SAVED_OBJECT_WITH_SECRET_TYPE, + attributesToEncrypt: new Set(['privateProperty']), + attributesToExcludeFromAAD: new Set(['publicPropertyExcludedFromAAD']), + }); + + core.http.createRouter().get( + { + path: '/api/saved_objects/get-decrypted-as-internal-user/{id}', + validate: { params: value => ({ value }) }, + }, + async (context, request, response) => { + const [, { encryptedSavedObjects }] = await core.getStartServices(); + const spaceId = deps.spaces.spacesService.getSpaceId(request); + const namespace = deps.spaces.spacesService.spaceIdToNamespace(spaceId); + + try { + return response.ok({ + body: await encryptedSavedObjects.getDecryptedAsInternalUser( + SAVED_OBJECT_WITH_SECRET_TYPE, + request.params.id, + { namespace } + ), + }); + } catch (err) { + if (encryptedSavedObjects.isEncryptionError(err)) { + return response.badRequest({ body: 'Failed to encrypt attributes' }); + } + + return response.customError({ body: err, statusCode: 500 }); + } + } + ); + }, + start() {}, + stop() {}, +}); diff --git a/x-pack/test/encrypted_saved_objects_api_integration/ftr_provider_context.d.ts b/x-pack/test/encrypted_saved_objects_api_integration/ftr_provider_context.d.ts new file mode 100644 index 00000000000000..e3add3748f56d7 --- /dev/null +++ b/x-pack/test/encrypted_saved_objects_api_integration/ftr_provider_context.d.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { GenericFtrProviderContext } from '@kbn/test/types/ftr'; + +import { services } from './services'; + +export type FtrProviderContext = GenericFtrProviderContext; diff --git a/x-pack/test/encrypted_saved_objects_api_integration/services.ts b/x-pack/test/encrypted_saved_objects_api_integration/services.ts new file mode 100644 index 00000000000000..b7398349cce5da --- /dev/null +++ b/x-pack/test/encrypted_saved_objects_api_integration/services.ts @@ -0,0 +1,7 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export { services } from '../api_integration/services'; diff --git a/x-pack/test/plugin_api_integration/test_suites/encrypted_saved_objects/encrypted_saved_objects_api.ts b/x-pack/test/encrypted_saved_objects_api_integration/tests/encrypted_saved_objects_api.ts similarity index 99% rename from x-pack/test/plugin_api_integration/test_suites/encrypted_saved_objects/encrypted_saved_objects_api.ts rename to x-pack/test/encrypted_saved_objects_api_integration/tests/encrypted_saved_objects_api.ts index ab9f7d2cdd3395..7fe3d289112114 100644 --- a/x-pack/test/plugin_api_integration/test_suites/encrypted_saved_objects/encrypted_saved_objects_api.ts +++ b/x-pack/test/encrypted_saved_objects_api_integration/tests/encrypted_saved_objects_api.ts @@ -6,7 +6,7 @@ import expect from '@kbn/expect'; import { SavedObject } from 'src/core/server'; -import { FtrProviderContext } from '../../ftr_provider_context'; +import { FtrProviderContext } from '../ftr_provider_context'; export default function({ getService }: FtrProviderContext) { const es = getService('legacyEs'); diff --git a/x-pack/test/plugin_api_integration/test_suites/encrypted_saved_objects/index.ts b/x-pack/test/encrypted_saved_objects_api_integration/tests/index.ts similarity index 88% rename from x-pack/test/plugin_api_integration/test_suites/encrypted_saved_objects/index.ts rename to x-pack/test/encrypted_saved_objects_api_integration/tests/index.ts index 424160e84495e3..8c816a3404ddbc 100644 --- a/x-pack/test/plugin_api_integration/test_suites/encrypted_saved_objects/index.ts +++ b/x-pack/test/encrypted_saved_objects_api_integration/tests/index.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { FtrProviderContext } from '../../ftr_provider_context'; +import { FtrProviderContext } from '../ftr_provider_context'; export default function({ loadTestFile }: FtrProviderContext) { describe('encryptedSavedObjects', function encryptedSavedObjectsSuite() { diff --git a/x-pack/test/login_selector_api_integration/config.ts b/x-pack/test/login_selector_api_integration/config.ts index 6ca9d19b74c179..d8e42b4583bedf 100644 --- a/x-pack/test/login_selector_api_integration/config.ts +++ b/x-pack/test/login_selector_api_integration/config.ts @@ -130,11 +130,6 @@ export default async function({ readConfigFile }: FtrConfigProviderContext) { saml2: { order: 5, realm: 'saml2', maxRedirectURLSize: '100b' }, }, })}`, - '--server.xsrf.whitelist', - JSON.stringify([ - '/api/oidc_provider/token_endpoint', - '/api/oidc_provider/userinfo_endpoint', - ]), ], }, }; diff --git a/x-pack/test/oidc_api_integration/config.ts b/x-pack/test/oidc_api_integration/config.ts index 557dea4d51b0e4..9ef00320f0e60f 100644 --- a/x-pack/test/oidc_api_integration/config.ts +++ b/x-pack/test/oidc_api_integration/config.ts @@ -51,12 +51,6 @@ export default async function({ readConfigFile }: FtrConfigProviderContext) { `--plugin-path=${plugin}`, '--xpack.security.authc.providers=["oidc"]', '--xpack.security.authc.oidc.realm="oidc1"', - '--server.xsrf.whitelist', - JSON.stringify([ - '/api/security/oidc/initiate_login', - '/api/oidc_provider/token_endpoint', - '/api/oidc_provider/userinfo_endpoint', - ]), ], }, }; diff --git a/x-pack/test/oidc_api_integration/fixtures/oidc_provider/init_routes.js b/x-pack/test/oidc_api_integration/fixtures/oidc_provider/init_routes.js deleted file mode 100644 index 3023479f7be9d8..00000000000000 --- a/x-pack/test/oidc_api_integration/fixtures/oidc_provider/init_routes.js +++ /dev/null @@ -1,104 +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; - * you may not use this file except in compliance with the Elastic License. - */ - -import Joi from 'joi'; -import { createTokens } from '../oidc_tools'; - -export function initRoutes(server) { - let nonce = ''; - - server.route({ - path: '/api/oidc_provider/setup', - method: 'POST', - config: { - auth: false, - validate: { - payload: Joi.object({ - nonce: Joi.string().required(), - }), - }, - }, - handler: request => { - nonce = request.payload.nonce; - return {}; - }, - }); - - server.route({ - path: '/api/oidc_provider/token_endpoint', - method: 'POST', - // Token endpoint needs authentication (with the client credentials) but we don't attempt to - // validate this OIDC behavior here - config: { - auth: false, - validate: { - payload: Joi.object({ - grant_type: Joi.string().optional(), - code: Joi.string().optional(), - redirect_uri: Joi.string().optional(), - }), - }, - }, - async handler(request) { - const userId = request.payload.code.substring(4); - const { accessToken, idToken } = createTokens(userId, nonce); - try { - const userId = request.payload.code.substring(4); - return { - access_token: accessToken, - token_type: 'Bearer', - refresh_token: `valid-refresh-token${userId}`, - expires_in: 3600, - id_token: idToken, - }; - } catch (err) { - return err; - } - }, - }); - - server.route({ - path: '/api/oidc_provider/userinfo_endpoint', - method: 'GET', - config: { - auth: false, - }, - handler: request => { - const accessToken = request.headers.authorization.substring(7); - if (accessToken === 'valid-access-token1') { - return { - sub: 'user1', - name: 'Tony Stark', - given_name: 'Tony', - family_name: 'Stark', - preferred_username: 'ironman', - email: 'ironman@avengers.com', - }; - } - if (accessToken === 'valid-access-token2') { - return { - sub: 'user2', - name: 'Peter Parker', - given_name: 'Peter', - family_name: 'Parker', - preferred_username: 'spiderman', - email: 'spiderman@avengers.com', - }; - } - if (accessToken === 'valid-access-token3') { - return { - sub: 'user3', - name: 'Bruce Banner', - given_name: 'Bruce', - family_name: 'Banner', - preferred_username: 'hulk', - email: 'hulk@avengers.com', - }; - } - return {}; - }, - }); -} diff --git a/x-pack/test/oidc_api_integration/fixtures/oidc_provider/kibana.json b/x-pack/test/oidc_api_integration/fixtures/oidc_provider/kibana.json new file mode 100644 index 00000000000000..faaa0b9165828d --- /dev/null +++ b/x-pack/test/oidc_api_integration/fixtures/oidc_provider/kibana.json @@ -0,0 +1,7 @@ +{ + "id": "oidc_provider_plugin", + "version": "8.0.0", + "kibanaVersion": "kibana", + "server": true, + "ui": false +} diff --git a/x-pack/test/oidc_api_integration/fixtures/oidc_provider/package.json b/x-pack/test/oidc_api_integration/fixtures/oidc_provider/package.json deleted file mode 100644 index 358c6e2020afe5..00000000000000 --- a/x-pack/test/oidc_api_integration/fixtures/oidc_provider/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "oidc_provider_plugin", - "version": "1.0.0", - "kibana": { - "version": "kibana", - "templateVersion": "1.0.0" - }, - "license": "Apache-2.0", - "dependencies": { - "joi": "^13.5.2", - "jsonwebtoken": "^8.3.0" - } -} diff --git a/x-pack/test/oidc_api_integration/fixtures/oidc_provider/index.js b/x-pack/test/oidc_api_integration/fixtures/oidc_provider/server/index.ts similarity index 55% rename from x-pack/test/oidc_api_integration/fixtures/oidc_provider/index.js rename to x-pack/test/oidc_api_integration/fixtures/oidc_provider/server/index.ts index 17d45527397b8a..456abecd201bec 100644 --- a/x-pack/test/oidc_api_integration/fixtures/oidc_provider/index.js +++ b/x-pack/test/oidc_api_integration/fixtures/oidc_provider/server/index.ts @@ -4,16 +4,11 @@ * you may not use this file except in compliance with the Elastic License. */ +import { PluginInitializer } from '../../../../../../src/core/server'; import { initRoutes } from './init_routes'; -export default function(kibana) { - return new kibana.Plugin({ - name: 'oidcProvider', - id: 'oidcProvider', - require: ['elasticsearch'], - - init(server) { - initRoutes(server); - }, - }); -} +export const plugin: PluginInitializer = () => ({ + setup: core => initRoutes(core.http.createRouter()), + start: () => {}, + stop: () => {}, +}); diff --git a/x-pack/test/oidc_api_integration/fixtures/oidc_provider/server/init_routes.ts b/x-pack/test/oidc_api_integration/fixtures/oidc_provider/server/init_routes.ts new file mode 100644 index 00000000000000..6d3248f4377b1b --- /dev/null +++ b/x-pack/test/oidc_api_integration/fixtures/oidc_provider/server/init_routes.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { IRouter } from '../../../../../../src/core/server'; +import { createTokens } from '../../oidc_tools'; + +export function initRoutes(router: IRouter) { + let nonce = ''; + + router.post( + { + path: '/api/oidc_provider/setup', + validate: { body: value => ({ value }) }, + options: { authRequired: false }, + }, + (context, request, response) => { + nonce = request.body.nonce; + return response.ok({ body: {} }); + } + ); + + router.post( + { + path: '/api/oidc_provider/token_endpoint', + validate: { body: value => ({ value }) }, + // Token endpoint needs authentication (with the client credentials) but we don't attempt to + // validate this OIDC behavior here + options: { authRequired: false, xsrfRequired: false }, + }, + (context, request, response) => { + const userId = request.body.code.substring(4); + const { accessToken, idToken } = createTokens(userId, nonce); + return response.ok({ + body: { + access_token: accessToken, + token_type: 'Bearer', + refresh_token: `valid-refresh-token${userId}`, + expires_in: 3600, + id_token: idToken, + }, + }); + } + ); + + router.get( + { + path: '/api/oidc_provider/userinfo_endpoint', + validate: false, + options: { authRequired: false }, + }, + (context, request, response) => { + const accessToken = (request.headers.authorization as string).substring(7); + if (accessToken === 'valid-access-token1') { + return response.ok({ + body: { + sub: 'user1', + name: 'Tony Stark', + given_name: 'Tony', + family_name: 'Stark', + preferred_username: 'ironman', + email: 'ironman@avengers.com', + }, + }); + } + + if (accessToken === 'valid-access-token2') { + return response.ok({ + body: { + sub: 'user2', + name: 'Peter Parker', + given_name: 'Peter', + family_name: 'Parker', + preferred_username: 'spiderman', + email: 'spiderman@avengers.com', + }, + }); + } + + if (accessToken === 'valid-access-token3') { + return response.ok({ + body: { + sub: 'user3', + name: 'Bruce Banner', + given_name: 'Bruce', + family_name: 'Banner', + preferred_username: 'hulk', + email: 'hulk@avengers.com', + }, + }); + } + + return response.ok({ body: {} }); + } + ); +} diff --git a/x-pack/test/plugin_api_integration/config.js b/x-pack/test/plugin_api_integration/config.js index 830933278f2bc6..83e8b1f84a9e02 100644 --- a/x-pack/test/plugin_api_integration/config.js +++ b/x-pack/test/plugin_api_integration/config.js @@ -18,10 +18,7 @@ export default async function({ readConfigFile }) { ); return { - testFiles: [ - require.resolve('./test_suites/task_manager'), - require.resolve('./test_suites/encrypted_saved_objects'), - ], + testFiles: [require.resolve('./test_suites/task_manager')], services, servers: integrationConfig.get('servers'), esTestCluster: integrationConfig.get('esTestCluster'), diff --git a/x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/index.ts b/x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/index.ts deleted file mode 100644 index e61b8f24a1f69b..00000000000000 --- a/x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/index.ts +++ /dev/null @@ -1,55 +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; - * you may not use this file except in compliance with the Elastic License. - */ - -import { Request } from 'hapi'; -import { boomify, badRequest } from 'boom'; -import { Legacy } from 'kibana'; -import { - EncryptedSavedObjectsPluginSetup, - EncryptedSavedObjectsPluginStart, -} from '../../../../plugins/encrypted_saved_objects/server'; - -const SAVED_OBJECT_WITH_SECRET_TYPE = 'saved-object-with-secret'; - -// eslint-disable-next-line import/no-default-export -export default function esoPlugin(kibana: any) { - return new kibana.Plugin({ - id: 'eso', - require: ['encryptedSavedObjects'], - uiExports: { mappings: require('./mappings.json') }, - init(server: Legacy.Server) { - server.route({ - method: 'GET', - path: '/api/saved_objects/get-decrypted-as-internal-user/{id}', - async handler(request: Request) { - const encryptedSavedObjectsStart = server.newPlatform.start.plugins - .encryptedSavedObjects as EncryptedSavedObjectsPluginStart; - const namespace = server.plugins.spaces && server.plugins.spaces.getSpaceId(request); - try { - return await encryptedSavedObjectsStart.getDecryptedAsInternalUser( - SAVED_OBJECT_WITH_SECRET_TYPE, - request.params.id, - { namespace: namespace === 'default' ? undefined : namespace } - ); - } catch (err) { - if (encryptedSavedObjectsStart.isEncryptionError(err)) { - return badRequest('Failed to encrypt attributes'); - } - - return boomify(err); - } - }, - }); - - (server.newPlatform.setup.plugins - .encryptedSavedObjects as EncryptedSavedObjectsPluginSetup).registerType({ - type: SAVED_OBJECT_WITH_SECRET_TYPE, - attributesToEncrypt: new Set(['privateProperty']), - attributesToExcludeFromAAD: new Set(['publicPropertyExcludedFromAAD']), - }); - }, - }); -} diff --git a/x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/mappings.json b/x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/mappings.json deleted file mode 100644 index b727850793bbea..00000000000000 --- a/x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/mappings.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "saved-object-with-secret": { - "properties": { - "publicProperty": { - "type": "keyword" - }, - "publicPropertyExcludedFromAAD": { - "type": "keyword" - }, - "privateProperty": { - "type": "binary" - } - } - } -} diff --git a/x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/package.json b/x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/package.json deleted file mode 100644 index 723904757ae8a5..00000000000000 --- a/x-pack/test/plugin_api_integration/plugins/encrypted_saved_objects/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "eso", - "version": "kibana" -} \ No newline at end of file diff --git a/x-pack/test/saml_api_integration/config.ts b/x-pack/test/saml_api_integration/config.ts index 0580c28555d161..a92f11363b0fc3 100644 --- a/x-pack/test/saml_api_integration/config.ts +++ b/x-pack/test/saml_api_integration/config.ts @@ -50,7 +50,6 @@ export default async function({ readConfigFile }: FtrConfigProviderContext) { serverArgs: [ ...xPackAPITestsConfig.get('kbnTestServer.serverArgs'), '--optimize.enabled=false', - '--server.xsrf.whitelist=["/api/security/saml/callback"]', `--xpack.security.authc.providers=${JSON.stringify(['saml', 'basic'])}`, '--xpack.security.authc.saml.realm=saml1', '--xpack.security.authc.saml.maxRedirectURLSize=100b', From 300df648f011966964a45125484629f80bafc23d Mon Sep 17 00:00:00 2001 From: Pete Harverson Date: Mon, 30 Mar 2020 18:42:03 +0100 Subject: [PATCH 011/118] [ML] Prevent training_percent of 0 for analytics job (#61789) --- .../data_frame_analytics/common/analytics.ts | 16 ++++++ .../create_analytics_advanced_editor.tsx | 14 +----- .../create_analytics_flyout.tsx | 11 ++++- .../create_analytics_form.tsx | 8 +-- .../use_create_analytics_form/reducer.test.ts | 24 ++++++++- .../use_create_analytics_form/reducer.ts | 49 ++++++++++++++++++- .../hooks/use_create_analytics_form/state.ts | 2 + 7 files changed, 104 insertions(+), 20 deletions(-) diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts index 95a8dfbb308f8b..9791cd9210fe21 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts @@ -62,6 +62,9 @@ export interface LoadExploreDataArg { export const SEARCH_SIZE = 1000; +export const TRAINING_PERCENT_MIN = 1; +export const TRAINING_PERCENT_MAX = 100; + export const defaultSearchQuery = { match_all: {}, }; @@ -172,6 +175,19 @@ export const getDependentVar = (analysis: AnalysisConfig) => { return depVar; }; +export const getTrainingPercent = (analysis: AnalysisConfig) => { + let trainingPercent; + + if (isRegressionAnalysis(analysis)) { + trainingPercent = analysis.regression.training_percent; + } + + if (isClassificationAnalysis(analysis)) { + trainingPercent = analysis.classification.training_percent; + } + return trainingPercent; +}; + export const getPredictionFieldName = (analysis: AnalysisConfig) => { // If undefined will be defaulted to dependent_variable when config is created let predictionFieldName; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/create_analytics_advanced_editor/create_analytics_advanced_editor.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/create_analytics_advanced_editor/create_analytics_advanced_editor.tsx index 7675553515f846..a3e5da5e2d039c 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/create_analytics_advanced_editor/create_analytics_advanced_editor.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/create_analytics_advanced_editor/create_analytics_advanced_editor.tsx @@ -17,18 +17,12 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { collapseLiteralStrings } from '../../../../../../../../../../src/plugins/es_ui_shared/console_lang/lib/json_xjson_translation_tools'; import { CreateAnalyticsFormProps } from '../../hooks/use_create_analytics_form'; import { xJsonMode } from '../../../../../components/custom_hooks'; export const CreateAnalyticsAdvancedEditor: FC = ({ actions, state }) => { - const { - resetAdvancedEditorMessages, - setAdvancedEditorRawString, - setFormState, - setJobConfig, - } = actions; + const { setAdvancedEditorRawString, setFormState } = actions; const { advancedEditorMessages, advancedEditorRawString, isJobCreated, requestMessages } = state; @@ -45,12 +39,6 @@ export const CreateAnalyticsAdvancedEditor: FC = ({ ac const onChange = (str: string) => { setAdvancedEditorRawString(str); - try { - const resultJobConfig = JSON.parse(collapseLiteralStrings(str)); - setJobConfig(resultJobConfig); - } catch (e) { - resetAdvancedEditorMessages(); - } }; // Temp effect to close the context menu popover on Clone button click diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/create_analytics_flyout/create_analytics_flyout.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/create_analytics_flyout/create_analytics_flyout.tsx index 32384e1949d0a3..b0f13e398cc50b 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/create_analytics_flyout/create_analytics_flyout.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/create_analytics_flyout/create_analytics_flyout.tsx @@ -26,7 +26,14 @@ export const CreateAnalyticsFlyout: FC = ({ state, }) => { const { closeModal, createAnalyticsJob, startAnalyticsJob } = actions; - const { isJobCreated, isJobStarted, isModalButtonDisabled, isValid, cloneJob } = state; + const { + isJobCreated, + isJobStarted, + isModalButtonDisabled, + isValid, + isAdvancedEditorValidJson, + cloneJob, + } = state; const headerText = !!cloneJob ? i18n.translate('xpack.ml.dataframe.analytics.clone.flyoutHeaderTitle', { @@ -61,7 +68,7 @@ export const CreateAnalyticsFlyout: FC = ({ {!isJobCreated && !isJobStarted && ( = ({ actions, sta })} > setFormState({ trainingPercent: e.target.value })} + onChange={e => setFormState({ trainingPercent: +e.target.value })} data-test-subj="mlAnalyticsCreateJobFlyoutTrainingPercentSlider" /> diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/reducer.test.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/reducer.test.ts index 8112a0fdb9e29c..c40ab31f6615fa 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/reducer.test.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/reducer.test.ts @@ -16,9 +16,11 @@ type SourceIndex = DataFrameAnalyticsConfig['source']['index']; const getMockState = ({ index, + trainingPercent = 75, modelMemoryLimit = '100mb', }: { index: SourceIndex; + trainingPercent?: number; modelMemoryLimit?: string; }) => merge(getInitialState(), { @@ -31,7 +33,9 @@ const getMockState = ({ jobConfig: { source: { index }, dest: { index: 'the-destination-index' }, - analysis: {}, + analysis: { + classification: { dependent_variable: 'the-variable', training_percent: trainingPercent }, + }, model_memory_limit: modelMemoryLimit, }, }); @@ -151,6 +155,24 @@ describe('useCreateAnalyticsForm', () => { .isValid ).toBe(false); }); + + test('validateAdvancedEditor(): check training percent validation', () => { + // valid training_percent value + expect( + validateAdvancedEditor(getMockState({ index: 'the-source-index', trainingPercent: 75 })) + .isValid + ).toBe(true); + // invalid training_percent numeric value + expect( + validateAdvancedEditor(getMockState({ index: 'the-source-index', trainingPercent: 102 })) + .isValid + ).toBe(false); + // invalid training_percent numeric value if 0 + expect( + validateAdvancedEditor(getMockState({ index: 'the-source-index', trainingPercent: 0 })) + .isValid + ).toBe(false); + }); }); describe('validateMinMML', () => { diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/reducer.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/reducer.ts index d045749a1a0dd5..28d8afbcd88cc3 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/reducer.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/reducer.ts @@ -11,6 +11,8 @@ import numeral from '@elastic/numeral'; import { isEmpty } from 'lodash'; import { isValidIndexName } from '../../../../../../../common/util/es_utils'; +import { collapseLiteralStrings } from '../../../../../../../../../../src/plugins/es_ui_shared/console_lang/lib/json_xjson_translation_tools'; + import { Action, ACTION } from './actions'; import { getInitialState, getJobConfigFromFormState, State } from './state'; import { @@ -29,9 +31,12 @@ import { } from '../../../../../../../common/constants/validation'; import { getDependentVar, + getTrainingPercent, isRegressionAnalysis, isClassificationAnalysis, ANALYSIS_CONFIG_TYPE, + TRAINING_PERCENT_MIN, + TRAINING_PERCENT_MAX, } from '../../../../common/analytics'; import { indexPatterns } from '../../../../../../../../../../src/plugins/data/public'; @@ -141,6 +146,7 @@ export const validateAdvancedEditor = (state: State): State => { let dependentVariableEmpty = false; let excludesValid = true; + let trainingPercentValid = true; if ( jobConfig.analysis === undefined && @@ -169,6 +175,30 @@ export const validateAdvancedEditor = (state: State): State => { message: '', }); } + + const trainingPercent = getTrainingPercent(jobConfig.analysis); + if ( + trainingPercent !== undefined && + (isNaN(trainingPercent) || + trainingPercent < TRAINING_PERCENT_MIN || + trainingPercent > TRAINING_PERCENT_MAX) + ) { + trainingPercentValid = false; + + state.advancedEditorMessages.push({ + error: i18n.translate( + 'xpack.ml.dataframe.analytics.create.advancedEditorMessage.trainingPercentInvalid', + { + defaultMessage: 'The training percent must be a value between {min} and {max}.', + values: { + min: TRAINING_PERCENT_MIN, + max: TRAINING_PERCENT_MAX, + }, + } + ), + message: '', + }); + } } if (sourceIndexNameEmpty) { @@ -249,6 +279,7 @@ export const validateAdvancedEditor = (state: State): State => { state.isValid = maxDistinctValuesError === undefined && excludesValid && + trainingPercentValid && state.form.modelMemoryLimitUnitValid && !jobIdEmpty && jobIdValid && @@ -365,7 +396,23 @@ export function reducer(state: State, action: Action): State { return getInitialState(); case ACTION.SET_ADVANCED_EDITOR_RAW_STRING: - return { ...state, advancedEditorRawString: action.advancedEditorRawString }; + let resultJobConfig; + try { + resultJobConfig = JSON.parse(collapseLiteralStrings(action.advancedEditorRawString)); + } catch (e) { + return { + ...state, + advancedEditorRawString: action.advancedEditorRawString, + isAdvancedEditorValidJson: false, + advancedEditorMessages: [], + }; + } + + return { + ...validateAdvancedEditor({ ...state, jobConfig: resultJobConfig }), + advancedEditorRawString: action.advancedEditorRawString, + isAdvancedEditorValidJson: true, + }; case ACTION.SET_FORM_STATE: const newFormState = { ...state.form, ...action.payload }; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/state.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/state.ts index 719bb6c5b07c77..fe741fe9a92d46 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/state.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/state.ts @@ -82,6 +82,7 @@ export interface State { indexNames: EsIndexName[]; indexPatternsMap: SourceIndexMap; isAdvancedEditorEnabled: boolean; + isAdvancedEditorValidJson: boolean; isJobCreated: boolean; isJobStarted: boolean; isModalButtonDisabled: boolean; @@ -140,6 +141,7 @@ export const getInitialState = (): State => ({ indexNames: [], indexPatternsMap: {}, isAdvancedEditorEnabled: false, + isAdvancedEditorValidJson: true, isJobCreated: false, isJobStarted: false, isModalVisible: false, From 1a93fa75a9da99a76598e378948f4e21b015a65f Mon Sep 17 00:00:00 2001 From: Sandra Gonzales Date: Mon, 30 Mar 2020 14:59:56 -0400 Subject: [PATCH 012/118] update to reflect change in registry /search to return 1 item (#61625) Co-authored-by: Elastic Machine --- .../ingest_manager/server/services/epm/registry/index.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts index 7c315f7616e1f6..ba4b3135aac1de 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts @@ -6,7 +6,6 @@ import { Response } from 'node-fetch'; import { URL } from 'url'; -import { sortBy } from 'lodash'; import { AssetParts, AssetsGroupedByServiceByType, @@ -51,11 +50,7 @@ export async function fetchFindLatestPackage( const res = await fetchUrl(url.toString()); const searchResults = JSON.parse(res); if (searchResults.length) { - // sort by version, then get the last (most recent) - const latestPackage = sortBy(searchResults, ['version'])[ - searchResults.length - 1 - ]; - return latestPackage; + return searchResults[0]; } else { throw new Error('package not found'); } From 5042a0d7576fffc0c1ad4aa674d7ca643a5de90b Mon Sep 17 00:00:00 2001 From: Sandra Gonzales Date: Mon, 30 Mar 2020 15:00:50 -0400 Subject: [PATCH 013/118] [EPM] update registry path structure (#61621) * update registry path structure * temporarily remove fleet tests Co-authored-by: Elastic Machine --- .../ingest_manager/server/routes/epm/handlers.ts | 3 ++- .../server/services/epm/packages/assets.test.ts | 14 ++++++-------- .../server/services/epm/packages/assets.ts | 10 ++++++---- .../server/services/epm/registry/index.ts | 3 ++- x-pack/test/api_integration/apis/index.js | 1 - x-pack/test/epm_api_integration/apis/file.ts | 16 ++++++++-------- 6 files changed, 24 insertions(+), 23 deletions(-) diff --git a/x-pack/plugins/ingest_manager/server/routes/epm/handlers.ts b/x-pack/plugins/ingest_manager/server/routes/epm/handlers.ts index 8623d02e72862d..727d26b5868dea 100644 --- a/x-pack/plugins/ingest_manager/server/routes/epm/handlers.ts +++ b/x-pack/plugins/ingest_manager/server/routes/epm/handlers.ts @@ -76,7 +76,8 @@ export const getFileHandler: RequestHandler { try { const { pkgkey, filePath } = request.params; - const registryResponse = await getFile(`/package/${pkgkey}/${filePath}`); + const [pkgName, pkgVersion] = pkgkey.split('-'); + const registryResponse = await getFile(`/package/${pkgName}/${pkgVersion}/${filePath}`); const contentType = registryResponse.headers.get('Content-Type'); const customResponseObj: CustomHttpResponseOptions = { body: registryResponse.body, diff --git a/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.test.ts b/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.test.ts index 5153f9205dde73..6d5ca036aeb130 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.test.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.test.ts @@ -11,19 +11,18 @@ const tests = [ { package: { assets: [ - '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', - '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-json.json', + '/package/coredns/1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', + '/package/coredns/1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-json.json', ], - name: 'coredns', - version: '1.0.1', + path: '/package/coredns/1.0.1', }, dataset: 'log', filter: (path: string) => { return true; }, expected: [ - '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', - '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-json.json', + '/package/coredns/1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', + '/package/coredns/1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-json.json', ], }, { @@ -32,8 +31,7 @@ const tests = [ '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-json.json', ], - name: 'coredns', - version: '1.0.1', + path: '/package/coredns/1.0.1', }, // Non existant dataset dataset: 'foo', diff --git a/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.ts b/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.ts index e36c2de1b4e807..d7a5c5569986e7 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.ts @@ -9,14 +9,16 @@ import * as Registry from '../registry'; import { cacheHas } from '../registry/cache'; // paths from RegistryPackage are routes to the assets on EPR -// e.g. `/package/nginx-1.2.0/dataset/access/fields/fields.yml` +// e.g. `/package/nginx/1.2.0/dataset/access/fields/fields.yml` // paths for ArchiveEntry are routes to the assets in the archive // e.g. `nginx-1.2.0/dataset/access/fields/fields.yml` // RegistryPackage paths have a `/package/` prefix compared to ArchiveEntry paths +// and different package and version structure const EPR_PATH_PREFIX = '/package'; function registryPathToArchivePath(registryPath: RegistryPackage['path']): string { - const archivePath = registryPath.replace(`${EPR_PATH_PREFIX}/`, ''); - return archivePath; + const path = registryPath.replace(`${EPR_PATH_PREFIX}/`, ''); + const [pkgName, pkgVersion] = path.split('/'); + return path.replace(`${pkgName}/${pkgVersion}`, `${pkgName}-${pkgVersion}`); } export function getAssets( @@ -35,7 +37,7 @@ export function getAssets( // if dataset, filter for them if (datasetName) { - const comparePath = `${EPR_PATH_PREFIX}/${packageInfo.name}-${packageInfo.version}/dataset/${datasetName}/`; + const comparePath = `${packageInfo.path}/dataset/${datasetName}/`; if (!path.includes(comparePath)) { continue; } diff --git a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts index ba4b3135aac1de..36a04b88bba297 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts @@ -58,7 +58,8 @@ export async function fetchFindLatestPackage( export async function fetchInfo(pkgkey: string): Promise { const registryUrl = appContextService.getConfig()?.epm.registryUrl; - return fetchUrl(`${registryUrl}/package/${pkgkey}`).then(JSON.parse); + // change pkg-version to pkg/version + return fetchUrl(`${registryUrl}/package/${pkgkey.replace('-', '/')}`).then(JSON.parse); } export async function fetchFile(filePath: string): Promise { diff --git a/x-pack/test/api_integration/apis/index.js b/x-pack/test/api_integration/apis/index.js index 0a87dcb4b5bb0d..10c06adea85644 100644 --- a/x-pack/test/api_integration/apis/index.js +++ b/x-pack/test/api_integration/apis/index.js @@ -27,7 +27,6 @@ export default function({ loadTestFile }) { loadTestFile(require.resolve('./siem')); loadTestFile(require.resolve('./short_urls')); loadTestFile(require.resolve('./lens')); - loadTestFile(require.resolve('./fleet')); loadTestFile(require.resolve('./ingest')); loadTestFile(require.resolve('./endpoint')); loadTestFile(require.resolve('./ml')); diff --git a/x-pack/test/epm_api_integration/apis/file.ts b/x-pack/test/epm_api_integration/apis/file.ts index 2989263af40a7e..c67f472e8fb78f 100644 --- a/x-pack/test/epm_api_integration/apis/file.ts +++ b/x-pack/test/epm_api_integration/apis/file.ts @@ -19,7 +19,7 @@ export default function({ getService }: FtrProviderContext) { it('fetches a .png screenshot image', async () => { server.on({ method: 'GET', - path: '/package/auditd-2.0.4/img/screenshots/auditbeat-file-integrity-dashboard.png', + path: '/package/auditd/2.0.4/img/screenshots/auditbeat-file-integrity-dashboard.png', reply: { headers: { 'content-type': 'image/png' }, }, @@ -38,7 +38,7 @@ export default function({ getService }: FtrProviderContext) { it('fetches an .svg icon image', async () => { server.on({ method: 'GET', - path: '/package/auditd-2.0.4/img/icon.svg', + path: '/package/auditd/2.0.4/img/icon.svg', reply: { headers: { 'content-type': 'image/svg' }, }, @@ -54,7 +54,7 @@ export default function({ getService }: FtrProviderContext) { it('fetches an auditbeat .conf rule file', async () => { server.on({ method: 'GET', - path: '/package/auditd-2.0.4/auditbeat/rules/sample-rules-linux-32bit.conf', + path: '/package/auditd/2.0.4/auditbeat/rules/sample-rules-linux-32bit.conf', }); const supertest = getService('supertest'); @@ -70,7 +70,7 @@ export default function({ getService }: FtrProviderContext) { it('fetches an auditbeat .yml config file', async () => { server.on({ method: 'GET', - path: '/package/auditd-2.0.4/auditbeat/config/config.yml', + path: '/package/auditd/2.0.4/auditbeat/config/config.yml', reply: { headers: { 'content-type': 'text/yaml; charset=UTF-8' }, }, @@ -88,7 +88,7 @@ export default function({ getService }: FtrProviderContext) { server.on({ method: 'GET', path: - '/package/auditd-2.0.4/kibana/visualization/b21e0c70-c252-11e7-8692-232bd1143e8a-ecs.json', + '/package/auditd/2.0.4/kibana/visualization/b21e0c70-c252-11e7-8692-232bd1143e8a-ecs.json', }); const supertest = getService('supertest'); @@ -105,7 +105,7 @@ export default function({ getService }: FtrProviderContext) { server.on({ method: 'GET', path: - '/package/auditd-2.0.4/kibana/dashboard/7de391b0-c1ca-11e7-8995-936807a28b16-ecs.json', + '/package/auditd/2.0.4/kibana/dashboard/7de391b0-c1ca-11e7-8995-936807a28b16-ecs.json', }); const supertest = getService('supertest'); @@ -121,7 +121,7 @@ export default function({ getService }: FtrProviderContext) { it('fetches an .json index pattern file', async () => { server.on({ method: 'GET', - path: '/package/auditd-2.0.4/kibana/index-pattern/auditbeat-*.json', + path: '/package/auditd/2.0.4/kibana/index-pattern/auditbeat-*.json', }); const supertest = getService('supertest'); @@ -135,7 +135,7 @@ export default function({ getService }: FtrProviderContext) { it('fetches a .json search file', async () => { server.on({ method: 'GET', - path: '/package/auditd-2.0.4/kibana/search/0f10c430-c1c3-11e7-8995-936807a28b16-ecs.json', + path: '/package/auditd/2.0.4/kibana/search/0f10c430-c1c3-11e7-8995-936807a28b16-ecs.json', }); const supertest = getService('supertest'); From 9ff8be602dc02b110ac2fd750ef71d4ba3000b25 Mon Sep 17 00:00:00 2001 From: Ryland Herrick Date: Mon, 30 Mar 2020 15:12:45 -0500 Subject: [PATCH 014/118] [SIEM] 7.7. NP Cleanup (#61713) * Remove unused legacy services These were migrated to NP in a previous PR. * Remove unused legacy request types * Type our siem client as optional If a plugin does not have siem enabled, they won't get our client. While it seems unlikely to be in a situation where our routes are being hit but our client is unavailable, we will return a 404 in that case, similar to the unavailability of actions/alerting. This also removes some redundant checks on action/alerting clients. * Remove more redundant dependency checks In general, we use optional chaining to ignore any intermediate null values, and defer checks to our actual dependencies, e.g. alertsClient or siemClient. --- .../routes/index/create_index_route.ts | 6 ++- .../routes/index/delete_index_route.ts | 6 ++- .../routes/index/read_index_route.ts | 6 ++- .../privileges/read_privileges_route.test.ts | 7 ++++ .../privileges/read_privileges_route.ts | 7 +++- .../rules/add_prepackaged_rules_route.test.ts | 9 ++++- .../rules/add_prepackaged_rules_route.ts | 11 ++---- .../rules/create_rules_bulk_route.test.ts | 9 ++++- .../routes/rules/create_rules_bulk_route.ts | 11 ++---- .../routes/rules/create_rules_route.test.ts | 7 ++++ .../routes/rules/create_rules_route.ts | 11 ++---- .../routes/rules/delete_rules_bulk_route.ts | 7 +--- .../routes/rules/delete_rules_route.ts | 7 +--- .../routes/rules/export_rules_route.ts | 5 +-- .../routes/rules/find_rules_route.ts | 5 +-- .../routes/rules/find_rules_status_route.ts | 5 +-- .../get_prepackaged_rules_status_route.ts | 5 +-- .../routes/rules/import_rules_route.test.ts | 7 ++++ .../routes/rules/import_rules_route.ts | 39 +++++++++---------- .../routes/rules/patch_rules_bulk_route.ts | 7 +--- .../routes/rules/patch_rules_route.ts | 8 +--- .../routes/rules/read_rules_route.ts | 5 +-- .../rules/update_rules_bulk_route.test.ts | 7 ++++ .../routes/rules/update_rules_bulk_route.ts | 11 ++---- .../routes/rules/update_rules_route.test.ts | 7 ++++ .../routes/rules/update_rules_route.ts | 11 ++---- .../routes/signals/open_close_signals.test.ts | 7 ++++ .../signals/open_close_signals_route.ts | 6 ++- .../routes/signals/query_signals_route.ts | 2 +- .../routes/tags/read_tags_route.ts | 6 +-- .../lib/detection_engine/rules/types.ts | 9 ----- x-pack/legacy/plugins/siem/server/types.ts | 6 +-- 32 files changed, 138 insertions(+), 124 deletions(-) diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/create_index_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/create_index_route.ts index 36764439462c3b..3195483013c19d 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/create_index_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/create_index_route.ts @@ -30,9 +30,13 @@ export const createIndexRoute = (router: IRouter) => { try { const clusterClient = context.core.elasticsearch.dataClient; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); const callCluster = clusterClient.callAsCurrentUser; + if (!siemClient) { + return siemResponse.error({ statusCode: 404 }); + } + const index = siemClient.signalsIndex; const indexExists = await getIndexExists(callCluster, index); if (indexExists) { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/delete_index_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/delete_index_route.ts index aa418c11d9d165..c667e7ae9c4635 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/delete_index_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/delete_index_route.ts @@ -38,7 +38,11 @@ export const deleteIndexRoute = (router: IRouter) => { try { const clusterClient = context.core.elasticsearch.dataClient; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); + + if (!siemClient) { + return siemResponse.error({ statusCode: 404 }); + } const callCluster = clusterClient.callAsCurrentUser; const index = siemClient.signalsIndex; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/read_index_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/read_index_route.ts index 4fc5a4e1f347f3..047176f1556116 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/read_index_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/index/read_index_route.ts @@ -23,7 +23,11 @@ export const readIndexRoute = (router: IRouter) => { try { const clusterClient = context.core.elasticsearch.dataClient; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); + + if (!siemClient) { + return siemResponse.error({ statusCode: 404 }); + } const index = siemClient.signalsIndex; const indexExists = await getIndexExists(clusterClient.callAsCurrentUser, index); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/privileges/read_privileges_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/privileges/read_privileges_route.test.ts index aa4f6150889f93..3209f5ce9f5198 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/privileges/read_privileges_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/privileges/read_privileges_route.test.ts @@ -62,6 +62,13 @@ describe('read_privileges route', () => { expect(response.status).toEqual(500); expect(response.body).toEqual({ message: 'Test error', status_code: 500 }); }); + + it('returns 404 if siem client is unavailable', async () => { + const { siem, ...contextWithoutSiem } = context; + const response = await server.inject(getPrivilegeRequest(), contextWithoutSiem); + expect(response.status).toEqual(404); + expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); + }); }); describe('when security plugin is disabled', () => { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/privileges/read_privileges_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/privileges/read_privileges_route.ts index 2f5ea4d1ec767c..d86880de653865 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/privileges/read_privileges_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/privileges/read_privileges_route.ts @@ -27,9 +27,14 @@ export const readPrivilegesRoute = ( }, async (context, request, response) => { const siemResponse = buildSiemResponse(response); + try { const clusterClient = context.core.elasticsearch.dataClient; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); + + if (!siemClient) { + return siemResponse.error({ statusCode: 404 }); + } const index = siemClient.signalsIndex; const clusterPrivileges = await readPrivileges(clusterClient.callAsCurrentUser, index); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/add_prepackaged_rules_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/add_prepackaged_rules_route.test.ts index f53efc8a3234db..f0b975379388fa 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/add_prepackaged_rules_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/add_prepackaged_rules_route.test.ts @@ -63,7 +63,7 @@ describe('add_prepackaged_rules_route', () => { addPrepackedRulesRoute(server.router); }); - describe('status codes with actionClient and alertClient', () => { + describe('status codes', () => { test('returns 200 when creating with a valid actionClient and alertClient', async () => { const request = addPrepackagedRulesRequest(); const response = await server.inject(request, context); @@ -96,6 +96,13 @@ describe('add_prepackaged_rules_route', () => { ), }); }); + + it('returns 404 if siem client is unavailable', async () => { + const { siem, ...contextWithoutSiem } = context; + const response = await server.inject(addPrepackagedRulesRequest(), contextWithoutSiem); + expect(response.status).toEqual(404); + expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); + }); }); describe('responses', () => { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/add_prepackaged_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/add_prepackaged_rules_route.ts index 4e08188af0d12a..3eba04debb21f1 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/add_prepackaged_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/add_prepackaged_rules_route.ts @@ -33,16 +33,13 @@ export const addPrepackedRulesRoute = (router: IRouter) => { const siemResponse = buildSiemResponse(response); try { - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); const clusterClient = context.core.elasticsearch.dataClient; const savedObjectsClient = context.core.savedObjects.client; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); - if (!actionsClient || !alertsClient) { + if (!siemClient || !actionsClient || !alertsClient) { return siemResponse.error({ statusCode: 404 }); } diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts index 32b8eca298229e..e6facf6f3b7a8b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts @@ -42,7 +42,7 @@ describe('create_rules_bulk', () => { createRulesBulkRoute(server.router); }); - describe('status codes with actionClient and alertClient', () => { + describe('status codes', () => { test('returns 200 when creating a single rule with a valid actionClient and alertClient', async () => { const response = await server.inject(getReadBulkRequest(), context); expect(response.status).toEqual(200); @@ -54,6 +54,13 @@ describe('create_rules_bulk', () => { expect(response.status).toEqual(404); expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); }); + + it('returns 404 if siem client is unavailable', async () => { + const { siem, ...contextWithoutSiem } = context; + const response = await server.inject(getReadBulkRequest(), contextWithoutSiem); + expect(response.status).toEqual(404); + expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); + }); }); describe('unhappy paths', () => { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts index 1ca9f7ef9075e4..daeb11e88508bb 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts @@ -37,15 +37,12 @@ export const createRulesBulkRoute = (router: IRouter) => { }, async (context, request, response) => { const siemResponse = buildSiemResponse(response); - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); const clusterClient = context.core.elasticsearch.dataClient; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); - if (!actionsClient || !alertsClient) { + if (!siemClient || !actionsClient || !alertsClient) { return siemResponse.error({ statusCode: 404 }); } diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts index 4da879d12f809e..a77911bbb35e87 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts @@ -60,6 +60,13 @@ describe('create_rules', () => { expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); }); + it('returns 404 if siem client is unavailable', async () => { + const { siem, ...contextWithoutSiem } = context; + const response = await server.inject(getCreateRequest(), contextWithoutSiem); + expect(response.status).toEqual(404); + expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); + }); + it('returns 200 if license is not platinum', async () => { (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts index edf37bcb8dbe74..f68f204c12730d 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts @@ -72,16 +72,13 @@ export const createRulesRoute = (router: IRouter): void => { try { validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); const clusterClient = context.core.elasticsearch.dataClient; const savedObjectsClient = context.core.savedObjects.client; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); - if (!actionsClient || !alertsClient) { + if (!siemClient || !actionsClient || !alertsClient) { return siemResponse.error({ statusCode: 404 }); } diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_bulk_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_bulk_route.ts index 85cfeefdceead1..33ffc245e76680 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_bulk_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_bulk_route.ts @@ -35,11 +35,8 @@ export const deleteRulesBulkRoute = (router: IRouter) => { const handler: Handler = async (context, request, response) => { const siemResponse = buildSiemResponse(response); - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); const savedObjectsClient = context.core.savedObjects.client; if (!actionsClient || !alertsClient) { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_route.ts index 6fd50abd9364a3..a4e659da76bb2b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_route.ts @@ -34,12 +34,9 @@ export const deleteRulesRoute = (router: IRouter) => { try { const { id, rule_id: ruleId } = request.query; - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); const savedObjectsClient = context.core.savedObjects.client; if (!actionsClient || !alertsClient) { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/export_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/export_rules_route.ts index c434f42780e47a..50eafe163c2658 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/export_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/export_rules_route.ts @@ -28,10 +28,7 @@ export const exportRulesRoute = (router: IRouter, config: LegacyServices['config }, async (context, request, response) => { const siemResponse = buildSiemResponse(response); - if (!context.alerting) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); + const alertsClient = context.alerting?.getAlertsClient(); if (!alertsClient) { return siemResponse.error({ statusCode: 404 }); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_route.ts index 961859417ef1b4..77351d2e0751b4 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_route.ts @@ -32,10 +32,7 @@ export const findRulesRoute = (router: IRouter) => { try { const { query } = request; - if (!context.alerting) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); + const alertsClient = context.alerting?.getAlertsClient(); const savedObjectsClient = context.core.savedObjects.client; if (!alertsClient) { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_status_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_status_route.ts index 4f4ae7c2c1fa65..6fee4d71a904ec 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_status_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_status_route.ts @@ -35,10 +35,7 @@ export const findRulesStatusesRoute = (router: IRouter) => { async (context, request, response) => { const { query } = request; const siemResponse = buildSiemResponse(response); - if (!context.alerting) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); + const alertsClient = context.alerting?.getAlertsClient(); const savedObjectsClient = context.core.savedObjects.client; if (!alertsClient) { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/get_prepackaged_rules_status_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/get_prepackaged_rules_status_route.ts index 7e16b4495593e6..7f0bf4bf811796 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/get_prepackaged_rules_status_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/get_prepackaged_rules_status_route.ts @@ -29,10 +29,7 @@ export const getPrepackagedRulesStatusRoute = (router: IRouter) => { }, async (context, request, response) => { const siemResponse = buildSiemResponse(response); - if (!context.alerting) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); + const alertsClient = context.alerting?.getAlertsClient(); if (!alertsClient) { return siemResponse.error({ statusCode: 404 }); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts index aacf83b9ec58ac..61f5e6faf1bdb0 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts @@ -101,6 +101,13 @@ describe('import_rules_route', () => { expect(response.status).toEqual(404); expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); }); + + it('returns 404 if siem client is unavailable', async () => { + const { siem, ...contextWithoutSiem } = context; + const response = await server.inject(request, contextWithoutSiem); + expect(response.status).toEqual(404); + expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); + }); }); describe('unhappy paths', () => { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts index 2e6c72a87ec7fe..d9fc89740c9efe 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts @@ -57,30 +57,27 @@ export const importRulesRoute = (router: IRouter, config: LegacyServices['config async (context, request, response) => { const siemResponse = buildSiemResponse(response); - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); - const clusterClient = context.core.elasticsearch.dataClient; - const savedObjectsClient = context.core.savedObjects.client; - const siemClient = context.siem.getSiemClient(); + try { + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); + const clusterClient = context.core.elasticsearch.dataClient; + const savedObjectsClient = context.core.savedObjects.client; + const siemClient = context.siem?.getSiemClient(); - if (!actionsClient || !alertsClient) { - return siemResponse.error({ statusCode: 404 }); - } + if (!siemClient || !actionsClient || !alertsClient) { + return siemResponse.error({ statusCode: 404 }); + } - const { filename } = request.body.file.hapi; - const fileExtension = extname(filename).toLowerCase(); - if (fileExtension !== '.ndjson') { - return siemResponse.error({ - statusCode: 400, - body: `Invalid file extension ${fileExtension}`, - }); - } + const { filename } = request.body.file.hapi; + const fileExtension = extname(filename).toLowerCase(); + if (fileExtension !== '.ndjson') { + return siemResponse.error({ + statusCode: 400, + body: `Invalid file extension ${fileExtension}`, + }); + } - const objectLimit = config().get('savedObjects.maxImportExportSize'); - try { + const objectLimit = config().get('savedObjects.maxImportExportSize'); const readStream = createRulesStreamFromNdJson(objectLimit); const parsedObjects = await createPromiseFromStreams([ request.body.file, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts index 645dbdadf8cab0..b19039321a6d83 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts @@ -37,11 +37,8 @@ export const patchRulesBulkRoute = (router: IRouter) => { async (context, request, response) => { const siemResponse = buildSiemResponse(response); - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); const savedObjectsClient = context.core.savedObjects.client; if (!actionsClient || !alertsClient) { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts index 620bcd8fc17b0f..fab53079361adf 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts @@ -74,12 +74,8 @@ export const patchRulesRoute = (router: IRouter) => { validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); } - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); const savedObjectsClient = context.core.savedObjects.client; if (!actionsClient || !alertsClient) { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/read_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/read_rules_route.ts index e4117166ed4fa6..bc52445feee767 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/read_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/read_rules_route.ts @@ -32,10 +32,7 @@ export const readRulesRoute = (router: IRouter) => { const { id, rule_id: ruleId } = request.query; const siemResponse = buildSiemResponse(response); - if (!context.alerting) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); + const alertsClient = context.alerting?.getAlertsClient(); const savedObjectsClient = context.core.savedObjects.client; try { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts index 611b38ccbae8bb..332a47d0c0fc25 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts @@ -69,6 +69,13 @@ describe('update_rules_bulk', () => { expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); }); + it('returns 404 if siem client is unavailable', async () => { + const { siem, ...contextWithoutSiem } = context; + const response = await server.inject(getUpdateBulkRequest(), contextWithoutSiem); + expect(response.status).toEqual(404); + expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); + }); + test('returns an error if update throws', async () => { clients.alertsClient.update.mockImplementation(() => { throw new Error('Test error'); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts index 4abeb840c8c0aa..789f7d1ca07446 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts @@ -37,15 +37,12 @@ export const updateRulesBulkRoute = (router: IRouter) => { async (context, request, response) => { const siemResponse = buildSiemResponse(response); - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); const savedObjectsClient = context.core.savedObjects.client; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); - if (!actionsClient || !alertsClient) { + if (!siemClient || !actionsClient || !alertsClient) { return siemResponse.error({ statusCode: 404 }); } diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts index 717f2cc4a52fe4..454fe1f0706cbb 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts @@ -67,6 +67,13 @@ describe('update_rules', () => { expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); }); + it('returns 404 if siem client is unavailable', async () => { + const { siem, ...contextWithoutSiem } = context; + const response = await server.inject(getUpdateRequest(), contextWithoutSiem); + expect(response.status).toEqual(404); + expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); + }); + test('returns error when updating non-rule', async () => { clients.alertsClient.find.mockResolvedValue(nonRuleFindResult()); const response = await server.inject(getUpdateRequest(), context); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts index f0d5f08c5f636c..5856575eb97992 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts @@ -74,15 +74,12 @@ export const updateRulesRoute = (router: IRouter) => { try { validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); - if (!context.alerting || !context.actions) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); - const actionsClient = context.actions.getActionsClient(); + const alertsClient = context.alerting?.getAlertsClient(); + const actionsClient = context.actions?.getActionsClient(); const savedObjectsClient = context.core.savedObjects.client; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); - if (!actionsClient || !alertsClient) { + if (!siemClient || !actionsClient || !alertsClient) { return siemResponse.error({ statusCode: 404 }); } diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/open_close_signals.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/open_close_signals.test.ts index 612d08c09785aa..72f3c89f660c70 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/open_close_signals.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/open_close_signals.test.ts @@ -49,6 +49,13 @@ describe('set signal status', () => { expect(response.status).toEqual(200); }); + it('returns 404 if siem client is unavailable', async () => { + const { siem, ...contextWithoutSiem } = context; + const response = await server.inject(getSetSignalStatusByQueryRequest(), contextWithoutSiem); + expect(response.status).toEqual(404); + expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); + }); + test('catches error if callAsCurrentUser throws error', async () => { clients.clusterClient.callAsCurrentUser.mockImplementation(async () => { throw new Error('Test error'); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/open_close_signals_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/open_close_signals_route.ts index c1cba641de3efe..2daf63c468593e 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/open_close_signals_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/open_close_signals_route.ts @@ -24,9 +24,13 @@ export const setSignalsStatusRoute = (router: IRouter) => { async (context, request, response) => { const { signal_ids: signalIds, query, status } = request.body; const clusterClient = context.core.elasticsearch.dataClient; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem?.getSiemClient(); const siemResponse = buildSiemResponse(response); + if (!siemClient) { + return siemResponse.error({ statusCode: 404 }); + } + let queryObject; if (signalIds) { queryObject = { ids: { values: signalIds } }; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/query_signals_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/query_signals_route.ts index 77b62b058fa544..f05f494619b9c0 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/query_signals_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/signals/query_signals_route.ts @@ -24,7 +24,7 @@ export const querySignalsRoute = (router: IRouter) => { async (context, request, response) => { const { query, aggs, _source, track_total_hits, size } = request.body; const clusterClient = context.core.elasticsearch.dataClient; - const siemClient = context.siem.getSiemClient(); + const siemClient = context.siem!.getSiemClient(); const siemResponse = buildSiemResponse(response); try { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/tags/read_tags_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/tags/read_tags_route.ts index e12bf50169c176..adabc62a9456f4 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/tags/read_tags_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/tags/read_tags_route.ts @@ -20,11 +20,7 @@ export const readTagsRoute = (router: IRouter) => { }, async (context, request, response) => { const siemResponse = buildSiemResponse(response); - - if (!context.alerting) { - return siemResponse.error({ statusCode: 404 }); - } - const alertsClient = context.alerting.getAlertsClient(); + const alertsClient = context.alerting?.getAlertsClient(); if (!alertsClient) { return siemResponse.error({ statusCode: 404 }); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts index ada11174c53408..68716bb4e3795a 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts @@ -16,7 +16,6 @@ import { import { AlertsClient, PartialAlert } from '../../../../../../../plugins/alerting/server'; import { Alert } from '../../../../../../../plugins/alerting/common'; import { SIGNALS_ID } from '../../../../common/constants'; -import { LegacyRequest } from '../../../types'; import { ActionsClient } from '../../../../../../../plugins/actions/server'; import { RuleAlertParams, RuleTypeParams, RuleAlertParamsRest } from '../types'; @@ -39,14 +38,6 @@ export interface FindParamsRest { filter: string; } -export interface PatchRulesRequest extends LegacyRequest { - payload: PatchRuleAlertParamsRest; -} - -export interface UpdateRulesRequest extends LegacyRequest { - payload: UpdateRuleAlertParamsRest; -} - export interface RuleAlertType extends Alert { params: RuleTypeParams; } diff --git a/x-pack/legacy/plugins/siem/server/types.ts b/x-pack/legacy/plugins/siem/server/types.ts index 4119645a5af470..a52322f5f830c8 100644 --- a/x-pack/legacy/plugins/siem/server/types.ts +++ b/x-pack/legacy/plugins/siem/server/types.ts @@ -7,12 +7,8 @@ import { Legacy } from 'kibana'; import { SiemClient } from './client'; -export { LegacyRequest } from '../../../../../src/core/server'; - export interface LegacyServices { - alerting?: Legacy.Server['plugins']['alerting']; config: Legacy.Server['config']; - route: Legacy.Server['route']; } export { SiemClient }; @@ -23,6 +19,6 @@ export interface SiemRequestContext { declare module 'src/core/server' { interface RequestHandlerContext { - siem: SiemRequestContext; + siem?: SiemRequestContext; } } From 8b31ce0a890e29f2c5cd4437576b1a09ced87921 Mon Sep 17 00:00:00 2001 From: Ryland Herrick Date: Mon, 30 Mar 2020 16:35:38 -0500 Subject: [PATCH 015/118] [SIEM] Check ML Job status on ML Rule execution (#61715) * Move isMlRule helper to a more general location And use it during rule execution as well. * Add error message back to rule error status This was unintentionally removed in a previous merge commit. * Expose mlClient as part of ML's Setup contract This allows dependent plugins to leverage the exposed services without having to define their own ml paths, e.g. "ml.jobs" * Move ML Job predicates to common folder These are pure functions and used on both the client and server. * WIP: Check ML Job status on ML Rule execution This works, but unfortunately it pushes this executor function to a complexity of 25. We're gonna refactor this next. * Move isMlRule and RuleType to common These are used on both the frontend and the backend, and can be shared. * Refactor Signal Rule executor to use RuleStatusService RuleStatusService holds the logic for updating the current status as well as adding an error status. It leverages a simple RuleStatusSavedObjectClient to handle the communication with SavedObjects. This removes the need for our specialized 'writeError', 'writeGap', and 'writeSuccess' functions, which duplicated much of the rule status logic and code. It also fixes a bug with gap failures, with should have been treated the same as other failures. NB that an error does not necessarily prevent the rule from running, as in the case of a gap or an ML Job not running. This also adds a buildRuleMessage helper to reduce the noise of generating logs/messages, and to make them more consistent. * Remove unneeded 'async' keywords We're not awaiting here, so we can just return the promise. * Make buildRuleStatusAttributes synchronous We weren't doing anything async here, and in fact the returning of a promise was causing a bug when we tried to spread it into our attributes object. * Fix incorrectly-named RuleStatus attributes This mapping could be done within the ruleStatusService, but it lives outside it for now. Also renames the object holding these values to the more general 'result,' as creationSuccess implies it always succeeds. * Move our rule message helpers to a separate file Adds some tests, as well. * Refactor how rule status objects interact Only ruleStatusSavedObjectsClient receives a savedObjectsClient, the other functions receive the ruleStatusSavedObjectsClient * pluralizes savedObjects in ruleStatusSavedObjectsClient * Backfills tests * Handle adding multiple errors during a single rule execution We were storing state in our RuleStatusClient, and consequently could get into a situation where that state did not reflect reality, and we would incorrectly try to delete a SavedObject that had already been deleted. Rather than try to store the _correct_ state in the service, we remove state entirely and just fetch our statuses on each action. Co-authored-by: Elastic Machine --- .../detection_engine/ml_helpers.test.ts} | 2 +- .../detection_engine/ml_helpers.ts} | 4 + .../siem/common/detection_engine/types.ts | 8 + .../ml_popover/jobs_table/job_switch.tsx | 6 +- .../detection_engine/rules/types.ts | 7 +- .../rules/use_rule_status.test.tsx | 4 +- .../components/description_step/helpers.tsx | 2 +- .../components/description_step/index.tsx | 2 +- .../description_step/ml_job_description.tsx | 2 +- .../components/select_rule_type/index.tsx | 4 +- .../components/step_define_rule/index.tsx | 3 +- .../components/step_define_rule/schema.tsx | 2 +- .../detection_engine/rules/create/helpers.ts | 5 +- .../pages/detection_engine/rules/helpers.tsx | 7 +- .../pages/detection_engine/rules/types.ts | 3 +- .../detection_engine/routes/rules/utils.ts | 9 +- .../schemas/response/check_type_dependents.ts | 3 +- .../lib/detection_engine/routes/utils.ts | 4 +- .../lib/detection_engine/rules/types.ts | 2 +- .../signals/__mocks__/es_results.ts | 38 +++- .../rule_status_saved_objects_client.mock.ts | 18 ++ .../get_current_status_saved_object.ts | 60 ------ .../signals/get_or_create_rule_statuses.ts | 52 +++++ .../signals/get_rule_status_saved_objects.ts | 19 +- .../signals/rule_messages.test.ts | 61 ++++++ .../detection_engine/signals/rule_messages.ts | 27 +++ .../rule_status_saved_objects_client.ts | 37 ++++ .../signals/rule_status_service.test.ts | 195 ++++++++++++++++++ .../signals/rule_status_service.ts | 116 +++++++++++ .../signals/signal_rule_alert_type.ts | 185 +++++++++-------- .../signals/write_current_status_succeeded.ts | 45 ---- .../write_gap_error_to_saved_object.ts | 62 ------ ...e_signal_rule_exception_to_saved_object.ts | 73 ------- .../siem/server/lib/detection_engine/types.ts | 3 +- x-pack/legacy/plugins/siem/server/plugin.ts | 3 + x-pack/plugins/ml/server/plugin.ts | 10 +- 36 files changed, 701 insertions(+), 382 deletions(-) rename x-pack/legacy/plugins/siem/{public/components/ml/helpers/index.test.ts => common/detection_engine/ml_helpers.test.ts} (96%) rename x-pack/legacy/plugins/siem/{public/components/ml/helpers/index.ts => common/detection_engine/ml_helpers.ts} (89%) create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/__mocks__/rule_status_saved_objects_client.mock.ts delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_current_status_saved_object.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_or_create_rule_statuses.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_messages.test.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_messages.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_saved_objects_client.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_service.test.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_service.ts delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_current_status_succeeded.ts delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_gap_error_to_saved_object.ts delete mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_signal_rule_exception_to_saved_object.ts diff --git a/x-pack/legacy/plugins/siem/public/components/ml/helpers/index.test.ts b/x-pack/legacy/plugins/siem/common/detection_engine/ml_helpers.test.ts similarity index 96% rename from x-pack/legacy/plugins/siem/public/components/ml/helpers/index.test.ts rename to x-pack/legacy/plugins/siem/common/detection_engine/ml_helpers.test.ts index 693f0bd0dd0fdb..ba93b2e4b8a0d8 100644 --- a/x-pack/legacy/plugins/siem/public/components/ml/helpers/index.test.ts +++ b/x-pack/legacy/plugins/siem/common/detection_engine/ml_helpers.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { isJobStarted, isJobLoading, isJobFailed } from './'; +import { isJobStarted, isJobLoading, isJobFailed } from './ml_helpers'; describe('isJobStarted', () => { test('returns false if only jobState is enabled', () => { diff --git a/x-pack/legacy/plugins/siem/public/components/ml/helpers/index.ts b/x-pack/legacy/plugins/siem/common/detection_engine/ml_helpers.ts similarity index 89% rename from x-pack/legacy/plugins/siem/public/components/ml/helpers/index.ts rename to x-pack/legacy/plugins/siem/common/detection_engine/ml_helpers.ts index c06596b49317d8..e4158d08d448dc 100644 --- a/x-pack/legacy/plugins/siem/public/components/ml/helpers/index.ts +++ b/x-pack/legacy/plugins/siem/common/detection_engine/ml_helpers.ts @@ -4,6 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ +import { RuleType } from './types'; + // Based on ML Job/Datafeed States from x-pack/legacy/plugins/ml/common/constants/states.js const enabledStates = ['started', 'opened']; const loadingStates = ['starting', 'stopping', 'opening', 'closing']; @@ -20,3 +22,5 @@ export const isJobLoading = (jobState: string, datafeedState: string): boolean = export const isJobFailed = (jobState: string, datafeedState: string): boolean => { return failureStates.includes(jobState) || failureStates.includes(datafeedState); }; + +export const isMlRule = (ruleType: RuleType) => ruleType === 'machine_learning'; diff --git a/x-pack/legacy/plugins/siem/common/detection_engine/types.ts b/x-pack/legacy/plugins/siem/common/detection_engine/types.ts index 0de370b11cdafe..39012d0b4b6834 100644 --- a/x-pack/legacy/plugins/siem/common/detection_engine/types.ts +++ b/x-pack/legacy/plugins/siem/common/detection_engine/types.ts @@ -3,9 +3,17 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ +import * as t from 'io-ts'; import { AlertAction } from '../../../../../plugins/alerting/common'; export type RuleAlertAction = Omit & { action_type_id: string; }; + +export const RuleTypeSchema = t.keyof({ + query: null, + saved_query: null, + machine_learning: null, +}); +export type RuleType = t.TypeOf; diff --git a/x-pack/legacy/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx b/x-pack/legacy/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx index e5066eef18c8b6..a0e0c70d2f2044 100644 --- a/x-pack/legacy/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx +++ b/x-pack/legacy/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx @@ -8,7 +8,11 @@ import styled from 'styled-components'; import React, { useState, useCallback } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiLoadingSpinner, EuiSwitch } from '@elastic/eui'; import { SiemJob } from '../types'; -import { isJobLoading, isJobStarted, isJobFailed } from '../../ml/helpers'; +import { + isJobLoading, + isJobFailed, + isJobStarted, +} from '../../../../common/detection_engine/ml_helpers'; const StaticSwitch = styled(EuiSwitch)` .euiSwitch__thumb, diff --git a/x-pack/legacy/plugins/siem/public/containers/detection_engine/rules/types.ts b/x-pack/legacy/plugins/siem/public/containers/detection_engine/rules/types.ts index f676ab944fce43..bc559c5ac49721 100644 --- a/x-pack/legacy/plugins/siem/public/containers/detection_engine/rules/types.ts +++ b/x-pack/legacy/plugins/siem/public/containers/detection_engine/rules/types.ts @@ -6,12 +6,7 @@ import * as t from 'io-ts'; -export const RuleTypeSchema = t.keyof({ - query: null, - saved_query: null, - machine_learning: null, -}); -export type RuleType = t.TypeOf; +import { RuleTypeSchema } from '../../../../common/detection_engine/types'; /** * Params is an "record", since it is a type of AlertActionParams which is action templates. diff --git a/x-pack/legacy/plugins/siem/public/containers/detection_engine/rules/use_rule_status.test.tsx b/x-pack/legacy/plugins/siem/public/containers/detection_engine/rules/use_rule_status.test.tsx index 7269bf1baa5e51..0a30329baf68d1 100644 --- a/x-pack/legacy/plugins/siem/public/containers/detection_engine/rules/use_rule_status.test.tsx +++ b/x-pack/legacy/plugins/siem/public/containers/detection_engine/rules/use_rule_status.test.tsx @@ -12,7 +12,7 @@ import { ReturnRulesStatuses, } from './use_rule_status'; import * as api from './api'; -import { RuleType, Rule } from '../rules/types'; +import { Rule } from '../rules/types'; jest.mock('./api'); @@ -57,7 +57,7 @@ const testRule: Rule = { threat: [], throttle: null, to: 'now', - type: 'query' as RuleType, + type: 'query', updated_at: 'mm/dd/yyyyTHH:MM:sssz', updated_by: 'mockUser', }; diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.tsx index f9b255a95d8696..79da7999b081a4 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.tsx @@ -21,13 +21,13 @@ import styled from 'styled-components'; import { esFilters } from '../../../../../../../../../../src/plugins/data/public'; +import { RuleType } from '../../../../../../common/detection_engine/types'; import { tacticsOptions, techniquesOptions } from '../../../mitre/mitre_tactics_techniques'; import * as i18n from './translations'; import { BuildQueryBarDescription, BuildThreatDescription, ListItems } from './types'; import { SeverityBadge } from '../severity_badge'; import ListTreeIcon from './assets/list_tree_icon.svg'; -import { RuleType } from '../../../../../containers/detection_engine/rules'; import { assertUnreachable } from '../../../../../lib/helpers'; const NoteDescriptionContainer = styled(EuiFlexItem)` diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.tsx index 69c4ee1017155d..05e47225c8f4b4 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.tsx @@ -15,7 +15,7 @@ import { esFilters, FilterManager, } from '../../../../../../../../../../src/plugins/data/public'; -import { RuleType } from '../../../../../containers/detection_engine/rules'; +import { RuleType } from '../../../../../../common/detection_engine/types'; import { DEFAULT_TIMELINE_TITLE } from '../../../../../components/timeline/translations'; import { useKibana } from '../../../../../lib/kibana'; import { IMitreEnterpriseAttack } from '../../types'; diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx index 947bf29c071484..8276aa3578563e 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx @@ -11,8 +11,8 @@ import { EuiBadge, EuiIcon, EuiLink, EuiToolTip } from '@elastic/eui'; import { useKibana } from '../../../../../lib/kibana'; import { SiemJob } from '../../../../../components/ml_popover/types'; import { ListItems } from './types'; -import { isJobStarted } from '../../../../../components/ml/helpers'; import { ML_JOB_STARTED, ML_JOB_STOPPED } from './translations'; +import { isJobStarted } from '../../../../../../common/detection_engine/ml_helpers'; enum MessageLevels { info = 'info', diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx index 4ccde78f3cda72..9d3b37f1788fa2 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx @@ -16,10 +16,10 @@ import { EuiText, } from '@elastic/eui'; +import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; +import { RuleType } from '../../../../../../common/detection_engine/types'; import { FieldHook } from '../../../../../shared_imports'; -import { RuleType } from '../../../../../containers/detection_engine/rules/types'; import * as i18n from './translations'; -import { isMlRule } from '../../helpers'; const MlCardDescription = ({ hasValidLicense = false }: { hasValidLicense?: boolean }) => ( diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx index 6c46ab0b171a29..05043e5b96a30e 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx @@ -12,10 +12,11 @@ import deepEqual from 'fast-deep-equal'; import { IIndexPattern } from '../../../../../../../../../../src/plugins/data/public'; import { useFetchIndexPatterns } from '../../../../../containers/detection_engine/rules'; import { DEFAULT_INDEX_KEY } from '../../../../../../common/constants'; +import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; import { DEFAULT_TIMELINE_TITLE } from '../../../../../components/timeline/translations'; import { useMlCapabilities } from '../../../../../components/ml_popover/hooks/use_ml_capabilities'; import { useUiSetting$ } from '../../../../../lib/kibana'; -import { setFieldValue, isMlRule } from '../../helpers'; +import { setFieldValue } from '../../helpers'; import { DefineStepRule, RuleStep, RuleStepProps } from '../../types'; import { StepRuleDescription } from '../description_step'; import { QueryBarDefineRule } from '../query_bar'; diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx index 271c8fabed3a57..4a132f94a9871e 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx @@ -10,6 +10,7 @@ import { isEmpty } from 'lodash/fp'; import React from 'react'; import { esKuery } from '../../../../../../../../../../src/plugins/data/public'; +import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; import { FieldValueQueryBar } from '../query_bar'; import { ERROR_CODE, @@ -19,7 +20,6 @@ import { ValidationFunc, } from '../../../../../shared_imports'; import { CUSTOM_QUERY_REQUIRED, INVALID_CUSTOM_QUERY, INDEX_HELPER_TEXT } from './translations'; -import { isMlRule } from '../../helpers'; export const schema: FormSchema = { index: { diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts index 7abe5a576c0e57..1bc5d85258ffd9 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts @@ -12,8 +12,10 @@ import { NOTIFICATION_THROTTLE_RULE, NOTIFICATION_THROTTLE_NO_ACTIONS, } from '../../../../../common/constants'; -import { NewRule, RuleType } from '../../../../containers/detection_engine/rules'; import { transformAlertToRuleAction } from '../../../../../common/detection_engine/transform_actions'; +import { RuleType } from '../../../../../common/detection_engine/types'; +import { isMlRule } from '../../../../../common/detection_engine/ml_helpers'; +import { NewRule } from '../../../../containers/detection_engine/rules'; import { AboutStepRule, @@ -25,7 +27,6 @@ import { AboutStepRuleJson, ActionsStepRuleJson, } from '../types'; -import { isMlRule } from '../helpers'; export const getTimeTypeValue = (time: string): { unit: string; value: number } => { const timeObj = { diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.tsx index 50b76552ddc8f2..710dd2cabeb655 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.tsx @@ -10,10 +10,11 @@ import moment from 'moment'; import memoizeOne from 'memoize-one'; import { useLocation } from 'react-router-dom'; -import { RuleAlertAction } from '../../../../common/detection_engine/types'; +import { RuleAlertAction, RuleType } from '../../../../common/detection_engine/types'; +import { isMlRule } from '../../../../common/detection_engine/ml_helpers'; import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; import { Filter } from '../../../../../../../../src/plugins/data/public'; -import { Rule, RuleType } from '../../../containers/detection_engine/rules'; +import { Rule } from '../../../containers/detection_engine/rules'; import { FormData, FormHook, FormSchema } from '../../../shared_imports'; import { AboutStepRule, @@ -214,8 +215,6 @@ export const setFieldValue = ( } }); -export const isMlRule = (ruleType: RuleType) => ruleType === 'machine_learning'; - export const redirectToDetections = ( isSignalIndexExists: boolean | null, isAuthenticated: boolean | null, diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/types.ts b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/types.ts index c1db24991c17c7..1c366e6640b29c 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/types.ts +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/types.ts @@ -5,9 +5,8 @@ */ import { AlertAction } from '../../../../../../../plugins/alerting/common'; -import { RuleAlertAction } from '../../../../common/detection_engine/types'; +import { RuleAlertAction, RuleType } from '../../../../common/detection_engine/types'; import { Filter } from '../../../../../../../../src/plugins/data/common'; -import { RuleType } from '../../../containers/detection_engine/rules/types'; import { FieldValueQueryBar } from './components/query_bar'; import { FormData, FormHook } from '../../../shared_imports'; import { FieldValueTimeline } from './components/pick_timeline'; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts index ca0d133627210b..a0458dc3a133d9 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts @@ -19,12 +19,7 @@ import { isRuleStatusFindTypes, isRuleStatusSavedObjectType, } from '../../rules/types'; -import { - OutputRuleAlertRest, - ImportRuleAlertRest, - RuleAlertParamsRest, - RuleType, -} from '../../types'; +import { OutputRuleAlertRest, ImportRuleAlertRest, RuleAlertParamsRest } from '../../types'; import { createBulkErrorObject, BulkError, @@ -300,5 +295,3 @@ export const getTupleDuplicateErrorsAndUniqueRules = ( return [Array.from(errors.values()), Array.from(rulesAcc.values())]; }; - -export const isMlRule = (ruleType: RuleType) => ruleType === 'machine_learning'; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts index b5a01e3e5c6df6..25e76f367037a4 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts @@ -8,6 +8,7 @@ import * as t from 'io-ts'; import { Either, left, fold } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; +import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; import { dependentRulesSchema, RequiredRulesSchema, @@ -47,7 +48,7 @@ export const addQueryFields = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixe }; export const addMlFields = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixed[] => { - if (typeAndTimelineOnly.type === 'machine_learning') { + if (isMlRule(typeAndTimelineOnly.type)) { return [ t.exact(t.type({ anomaly_threshold: dependentRulesSchema.props.anomaly_threshold })), t.exact( diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/utils.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/utils.ts index 90c7d4a07ddf84..8d7360bae8eb9c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/utils.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/utils.ts @@ -16,9 +16,9 @@ import { } from '../../../../../../../../src/core/server'; import { ILicense } from '../../../../../../../plugins/licensing/server'; import { MINIMUM_ML_LICENSE } from '../../../../common/constants'; +import { RuleType } from '../../../../common/detection_engine/types'; +import { isMlRule } from '../../../../common/detection_engine/ml_helpers'; import { BadRequestError } from '../errors/bad_request_error'; -import { RuleType } from '../types'; -import { isMlRule } from './rules/utils'; export interface OutputError { message: string; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts index 68716bb4e3795a..d8dacc7c64397e 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts @@ -84,7 +84,7 @@ export interface IRuleStatusFindType { saved_objects: IRuleStatusSavedObject[]; } -export type RuleStatusString = 'succeeded' | 'failed' | 'going to run' | 'executing'; +export type RuleStatusString = 'succeeded' | 'failed' | 'going to run'; export interface HapiReadableStream extends Readable { hapi: { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/__mocks__/es_results.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/__mocks__/es_results.ts index 31b922e0067cd5..6d7d7e93d7e6e0 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/__mocks__/es_results.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/__mocks__/es_results.ts @@ -5,9 +5,15 @@ */ import { SignalSourceHit, SignalSearchResponse } from '../types'; -import { Logger } from 'kibana/server'; +import { + Logger, + SavedObject, + SavedObjectsFindResponse, +} from '../../../../../../../../../src/core/server'; import { loggingServiceMock } from '../../../../../../../../../src/core/server/mocks'; import { RuleTypeParams, OutputRuleAlertRest } from '../../types'; +import { IRuleStatusAttributes } from '../../rules/types'; +import { ruleStatusSavedObjectType } from '../../../../saved_objects'; export const sampleRuleAlertParams = ( maxSignals?: number | undefined, @@ -373,4 +379,34 @@ export const sampleRule = (): Partial => { }; }; +export const exampleRuleStatus: () => SavedObject = () => ({ + type: ruleStatusSavedObjectType, + id: '042e6d90-7069-11ea-af8b-0f8ae4fa817e', + attributes: { + alertId: 'f4b8e31d-cf93-4bde-a265-298bde885cd7', + statusDate: '2020-03-27T22:55:59.517Z', + status: 'succeeded', + lastFailureAt: null, + lastSuccessAt: '2020-03-27T22:55:59.517Z', + lastFailureMessage: null, + lastSuccessMessage: 'succeeded', + gap: null, + bulkCreateTimeDurations: [], + searchAfterTimeDurations: [], + lastLookBackDate: null, + }, + references: [], + updated_at: '2020-03-27T22:55:59.577Z', + version: 'WzgyMiwxXQ==', +}); + +export const exampleFindRuleStatusResponse: ( + mockStatuses: Array> +) => SavedObjectsFindResponse = (mockStatuses = [exampleRuleStatus()]) => ({ + total: 1, + per_page: 6, + page: 1, + saved_objects: mockStatuses, +}); + export const mockLogger: Logger = loggingServiceMock.createLogger(); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/__mocks__/rule_status_saved_objects_client.mock.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/__mocks__/rule_status_saved_objects_client.mock.ts new file mode 100644 index 00000000000000..7528dc8b656ec1 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/__mocks__/rule_status_saved_objects_client.mock.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { RuleStatusSavedObjectsClient } from '../rule_status_saved_objects_client'; + +const createMockRuleStatusSavedObjectsClient = (): jest.Mocked => ({ + find: jest.fn(), + create: jest.fn(), + update: jest.fn(), + delete: jest.fn(), +}); + +export const ruleStatusSavedObjectsClientMock = { + create: createMockRuleStatusSavedObjectsClient, +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_current_status_saved_object.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_current_status_saved_object.ts deleted file mode 100644 index 1fee8bcd6c2f0e..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_current_status_saved_object.ts +++ /dev/null @@ -1,60 +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; - * you may not use this file except in compliance with the Elastic License. - */ - -import { SavedObjectsFindResponse, SavedObject } from 'src/core/server'; - -import { AlertServices } from '../../../../../../../plugins/alerting/server'; -import { IRuleSavedAttributesSavedObjectAttributes } from '../rules/types'; -import { ruleStatusSavedObjectType } from '../rules/saved_object_mappings'; - -interface CurrentStatusSavedObjectParams { - alertId: string; - services: AlertServices; - ruleStatusSavedObjects: SavedObjectsFindResponse; -} - -export const getCurrentStatusSavedObject = async ({ - alertId, - services, - ruleStatusSavedObjects, -}: CurrentStatusSavedObjectParams): Promise> => { - if (ruleStatusSavedObjects.saved_objects.length === 0) { - // create - const date = new Date().toISOString(); - const currentStatusSavedObject = await services.savedObjectsClient.create< - IRuleSavedAttributesSavedObjectAttributes - >(ruleStatusSavedObjectType, { - alertId, // do a search for this id. - statusDate: date, - status: 'going to run', - lastFailureAt: null, - lastSuccessAt: null, - lastFailureMessage: null, - lastSuccessMessage: null, - gap: null, - bulkCreateTimeDurations: [], - searchAfterTimeDurations: [], - lastLookBackDate: null, - }); - return currentStatusSavedObject; - } else { - // update 0th to executing. - const currentStatusSavedObject = ruleStatusSavedObjects.saved_objects[0]; - const sDate = new Date().toISOString(); - currentStatusSavedObject.attributes.status = 'going to run'; - currentStatusSavedObject.attributes.statusDate = sDate; - await services.savedObjectsClient.update( - ruleStatusSavedObjectType, - currentStatusSavedObject.id, - { - ...currentStatusSavedObject.attributes, - } - ); - return currentStatusSavedObject; - } -}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_or_create_rule_statuses.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_or_create_rule_statuses.ts new file mode 100644 index 00000000000000..913efbe04aa16f --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_or_create_rule_statuses.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { SavedObject } from 'src/core/server'; + +import { IRuleStatusAttributes } from '../rules/types'; +import { RuleStatusSavedObjectsClient } from './rule_status_saved_objects_client'; +import { getRuleStatusSavedObjects } from './get_rule_status_saved_objects'; + +interface RuleStatusParams { + alertId: string; + ruleStatusClient: RuleStatusSavedObjectsClient; +} + +export const createNewRuleStatus = async ({ + alertId, + ruleStatusClient, +}: RuleStatusParams): Promise> => { + const now = new Date().toISOString(); + return ruleStatusClient.create({ + alertId, + statusDate: now, + status: 'going to run', + lastFailureAt: null, + lastSuccessAt: null, + lastFailureMessage: null, + lastSuccessMessage: null, + gap: null, + bulkCreateTimeDurations: [], + searchAfterTimeDurations: [], + lastLookBackDate: null, + }); +}; + +export const getOrCreateRuleStatuses = async ({ + alertId, + ruleStatusClient, +}: RuleStatusParams): Promise>> => { + const ruleStatuses = await getRuleStatusSavedObjects({ + alertId, + ruleStatusClient, + }); + if (ruleStatuses.saved_objects.length > 0) { + return ruleStatuses.saved_objects; + } + const newStatus = await createNewRuleStatus({ alertId, ruleStatusClient }); + + return [newStatus]; +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_rule_status_saved_objects.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_rule_status_saved_objects.ts index 5a59d0413cfb9d..828b4ea41096ed 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_rule_status_saved_objects.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/get_rule_status_saved_objects.ts @@ -5,24 +5,21 @@ */ import { SavedObjectsFindResponse } from 'kibana/server'; -import { AlertServices } from '../../../../../../../plugins/alerting/server'; -import { ruleStatusSavedObjectType } from '../rules/saved_object_mappings'; -import { IRuleSavedAttributesSavedObjectAttributes } from '../rules/types'; +import { IRuleStatusAttributes } from '../rules/types'; +import { MAX_RULE_STATUSES } from './rule_status_service'; +import { RuleStatusSavedObjectsClient } from './rule_status_saved_objects_client'; interface GetRuleStatusSavedObject { alertId: string; - services: AlertServices; + ruleStatusClient: RuleStatusSavedObjectsClient; } export const getRuleStatusSavedObjects = async ({ alertId, - services, -}: GetRuleStatusSavedObject): Promise> => { - return services.savedObjectsClient.find({ - type: ruleStatusSavedObjectType, - perPage: 6, // 0th element is current status, 1-5 is last 5 failures. + ruleStatusClient, +}: GetRuleStatusSavedObject): Promise> => { + return ruleStatusClient.find({ + perPage: MAX_RULE_STATUSES, sortField: 'statusDate', sortOrder: 'desc', search: `${alertId}`, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_messages.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_messages.test.ts new file mode 100644 index 00000000000000..8e4b5ce3c99242 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_messages.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { BuildRuleMessageFactoryParams, buildRuleMessageFactory } from './rule_messages'; + +describe('buildRuleMessageFactory', () => { + let factoryParams: BuildRuleMessageFactoryParams; + beforeEach(() => { + factoryParams = { + name: 'name', + id: 'id', + ruleId: 'ruleId', + index: 'index', + }; + }); + + it('appends rule attributes to the provided message', () => { + const buildMessage = buildRuleMessageFactory(factoryParams); + + const message = buildMessage('my message'); + expect(message).toEqual(expect.stringContaining('my message')); + expect(message).toEqual(expect.stringContaining('name: "name"')); + expect(message).toEqual(expect.stringContaining('id: "id"')); + expect(message).toEqual(expect.stringContaining('rule id: "ruleId"')); + expect(message).toEqual(expect.stringContaining('signals index: "index"')); + }); + + it('joins message parts with newlines', () => { + const buildMessage = buildRuleMessageFactory(factoryParams); + + const message = buildMessage('my message'); + const messageParts = message.split('\n'); + expect(messageParts).toContain('my message'); + expect(messageParts).toContain('name: "name"'); + expect(messageParts).toContain('id: "id"'); + expect(messageParts).toContain('rule id: "ruleId"'); + expect(messageParts).toContain('signals index: "index"'); + }); + + it('joins multiple arguments with newlines', () => { + const buildMessage = buildRuleMessageFactory(factoryParams); + + const message = buildMessage('my message', 'here is more'); + const messageParts = message.split('\n'); + expect(messageParts).toContain('my message'); + expect(messageParts).toContain('here is more'); + }); + + it('defaults the rule ID if not provided ', () => { + const buildMessage = buildRuleMessageFactory({ + ...factoryParams, + ruleId: undefined, + }); + + const message = buildMessage('my message', 'here is more'); + expect(message).toEqual(expect.stringContaining('rule id: "(unknown rule id)"')); + }); +}); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_messages.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_messages.ts new file mode 100644 index 00000000000000..d5f9d332bbcddb --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_messages.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export type BuildRuleMessage = (...messages: string[]) => string; +export interface BuildRuleMessageFactoryParams { + name: string; + id: string; + ruleId: string | null | undefined; + index: string; +} + +export const buildRuleMessageFactory = ({ + id, + ruleId, + index, + name, +}: BuildRuleMessageFactoryParams): BuildRuleMessage => (...messages) => + [ + ...messages, + `name: "${name}"`, + `id: "${id}"`, + `rule id: "${ruleId ?? '(unknown rule id)'}"`, + `signals index: "${index}"`, + ].join('\n'); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_saved_objects_client.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_saved_objects_client.ts new file mode 100644 index 00000000000000..11cbf673044091 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_saved_objects_client.ts @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { + SavedObjectsClientContract, + SavedObject, + SavedObjectsUpdateResponse, + SavedObjectsFindOptions, + SavedObjectsFindResponse, +} from '../../../../../../../../src/core/server'; +import { ruleStatusSavedObjectType } from '../rules/saved_object_mappings'; +import { IRuleStatusAttributes } from '../rules/types'; + +export interface RuleStatusSavedObjectsClient { + find: ( + options?: Omit + ) => Promise>; + create: (attributes: IRuleStatusAttributes) => Promise>; + update: ( + id: string, + attributes: Partial + ) => Promise>; + delete: (id: string) => Promise<{}>; +} + +export const ruleStatusSavedObjectsClientFactory = ( + savedObjectsClient: SavedObjectsClientContract +): RuleStatusSavedObjectsClient => ({ + find: options => + savedObjectsClient.find({ ...options, type: ruleStatusSavedObjectType }), + create: attributes => savedObjectsClient.create(ruleStatusSavedObjectType, attributes), + update: (id, attributes) => savedObjectsClient.update(ruleStatusSavedObjectType, id, attributes), + delete: id => savedObjectsClient.delete(ruleStatusSavedObjectType, id), +}); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_service.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_service.test.ts new file mode 100644 index 00000000000000..ea9534710d418d --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_service.test.ts @@ -0,0 +1,195 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { ruleStatusSavedObjectsClientMock } from './__mocks__/rule_status_saved_objects_client.mock'; +import { + buildRuleStatusAttributes, + RuleStatusService, + ruleStatusServiceFactory, + MAX_RULE_STATUSES, +} from './rule_status_service'; +import { exampleRuleStatus, exampleFindRuleStatusResponse } from './__mocks__/es_results'; + +const expectIsoDateString = expect.stringMatching(/Z$/); +const buildStatuses = (n: number) => + Array(n) + .fill(exampleRuleStatus()) + .map((status, index) => ({ + ...status, + id: `status-index-${index}`, + })); + +describe('buildRuleStatusAttributes', () => { + it('generates a new date on each call', async () => { + const { statusDate } = buildRuleStatusAttributes('going to run'); + await new Promise(resolve => setTimeout(resolve, 10)); // ensure time has passed + const { statusDate: statusDate2 } = buildRuleStatusAttributes('going to run'); + + expect(statusDate).toEqual(expectIsoDateString); + expect(statusDate2).toEqual(expectIsoDateString); + expect(statusDate).not.toEqual(statusDate2); + }); + + it('returns a status and statusDate if "going to run"', () => { + const result = buildRuleStatusAttributes('going to run'); + expect(result).toEqual({ + status: 'going to run', + statusDate: expectIsoDateString, + }); + }); + + it('returns success fields if "success"', () => { + const result = buildRuleStatusAttributes('succeeded', 'success message'); + expect(result).toEqual({ + status: 'succeeded', + statusDate: expectIsoDateString, + lastSuccessAt: expectIsoDateString, + lastSuccessMessage: 'success message', + }); + + expect(result.statusDate).toEqual(result.lastSuccessAt); + }); + + it('returns failure fields if "failed"', () => { + const result = buildRuleStatusAttributes('failed', 'failure message'); + expect(result).toEqual({ + status: 'failed', + statusDate: expectIsoDateString, + lastFailureAt: expectIsoDateString, + lastFailureMessage: 'failure message', + }); + + expect(result.statusDate).toEqual(result.lastFailureAt); + }); +}); + +describe('ruleStatusService', () => { + let currentStatus: ReturnType; + let ruleStatusClient: ReturnType; + let service: RuleStatusService; + + beforeEach(async () => { + currentStatus = exampleRuleStatus(); + ruleStatusClient = ruleStatusSavedObjectsClientMock.create(); + ruleStatusClient.find.mockResolvedValue(exampleFindRuleStatusResponse([currentStatus])); + service = await ruleStatusServiceFactory({ alertId: 'mock-alert-id', ruleStatusClient }); + }); + + describe('goingToRun', () => { + it('updates the current status to "going to run"', async () => { + await service.goingToRun(); + + expect(ruleStatusClient.update).toHaveBeenCalledWith( + currentStatus.id, + expect.objectContaining({ + status: 'going to run', + statusDate: expectIsoDateString, + }) + ); + }); + }); + + describe('success', () => { + it('updates the current status to "succeeded"', async () => { + await service.success('hey, it worked'); + + expect(ruleStatusClient.update).toHaveBeenCalledWith( + currentStatus.id, + expect.objectContaining({ + status: 'succeeded', + statusDate: expectIsoDateString, + lastSuccessAt: expectIsoDateString, + lastSuccessMessage: 'hey, it worked', + }) + ); + }); + }); + + describe('error', () => { + beforeEach(() => { + // mock the creation of our new status + ruleStatusClient.create.mockResolvedValue(exampleRuleStatus()); + }); + + it('updates the current status to "failed"', async () => { + await service.error('oh no, it broke'); + + expect(ruleStatusClient.update).toHaveBeenCalledWith( + currentStatus.id, + expect.objectContaining({ + status: 'failed', + statusDate: expectIsoDateString, + lastFailureAt: expectIsoDateString, + lastFailureMessage: 'oh no, it broke', + }) + ); + }); + + it('does not delete statuses if we have less than the max number of statuses', async () => { + await service.error('oh no, it broke'); + + expect(ruleStatusClient.delete).not.toHaveBeenCalled(); + }); + + it('does not delete rule statuses when we just hit the limit', async () => { + // max - 1 in store, meaning our new error will put us at max + ruleStatusClient.find.mockResolvedValue( + exampleFindRuleStatusResponse(buildStatuses(MAX_RULE_STATUSES - 1)) + ); + service = await ruleStatusServiceFactory({ alertId: 'mock-alert-id', ruleStatusClient }); + + await service.error('oh no, it broke'); + + expect(ruleStatusClient.delete).not.toHaveBeenCalled(); + }); + + it('deletes stale rule status when we already have max statuses', async () => { + // max in store, meaning our new error will push one off the end + ruleStatusClient.find.mockResolvedValue( + exampleFindRuleStatusResponse(buildStatuses(MAX_RULE_STATUSES)) + ); + service = await ruleStatusServiceFactory({ alertId: 'mock-alert-id', ruleStatusClient }); + + await service.error('oh no, it broke'); + + expect(ruleStatusClient.delete).toHaveBeenCalledTimes(1); + // we should delete the 6th (index 5) + expect(ruleStatusClient.delete).toHaveBeenCalledWith('status-index-5'); + }); + + it('deletes any number of rule statuses in excess of the max', async () => { + // max + 1 in store, meaning our new error will put us two over + ruleStatusClient.find.mockResolvedValue( + exampleFindRuleStatusResponse(buildStatuses(MAX_RULE_STATUSES + 1)) + ); + service = await ruleStatusServiceFactory({ alertId: 'mock-alert-id', ruleStatusClient }); + + await service.error('oh no, it broke'); + + expect(ruleStatusClient.delete).toHaveBeenCalledTimes(2); + // we should delete the 6th (index 5) + expect(ruleStatusClient.delete).toHaveBeenCalledWith('status-index-5'); + // we should delete the 7th (index 6) + expect(ruleStatusClient.delete).toHaveBeenCalledWith('status-index-6'); + }); + + it('handles multiple error calls', async () => { + // max in store, meaning our new error will push one off the end + ruleStatusClient.find.mockResolvedValue( + exampleFindRuleStatusResponse(buildStatuses(MAX_RULE_STATUSES)) + ); + service = await ruleStatusServiceFactory({ alertId: 'mock-alert-id', ruleStatusClient }); + + await service.error('oh no, it broke'); + await service.error('oh no, it broke'); + + expect(ruleStatusClient.delete).toHaveBeenCalledTimes(2); + // we should delete the 6th (index 5) + expect(ruleStatusClient.delete).toHaveBeenCalledWith('status-index-5'); + expect(ruleStatusClient.delete).toHaveBeenCalledWith('status-index-5'); + }); + }); +}); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_service.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_service.ts new file mode 100644 index 00000000000000..5bfef134b0baeb --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/rule_status_service.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { assertUnreachable } from '../../../utils/build_query'; +import { IRuleStatusAttributes, RuleStatusString } from '../rules/types'; +import { getOrCreateRuleStatuses } from './get_or_create_rule_statuses'; +import { RuleStatusSavedObjectsClient } from './rule_status_saved_objects_client'; + +// 1st is mutable status, followed by 5 most recent failures +export const MAX_RULE_STATUSES = 6; + +interface Attributes { + searchAfterTimeDurations?: string[]; + bulkCreateTimeDurations?: string[]; + lastLookBackDate?: string; + gap?: string; +} + +export interface RuleStatusService { + goingToRun: () => Promise; + success: (message: string, attributes?: Attributes) => Promise; + error: (message: string, attributes?: Attributes) => Promise; +} + +export const buildRuleStatusAttributes: ( + status: RuleStatusString, + message?: string, + attributes?: Attributes +) => Partial = (status, message, attributes = {}) => { + const now = new Date().toISOString(); + const baseAttributes: Partial = { + ...attributes, + status, + statusDate: now, + }; + + switch (status) { + case 'succeeded': { + return { + ...baseAttributes, + lastSuccessAt: now, + lastSuccessMessage: message, + }; + } + case 'failed': { + return { + ...baseAttributes, + lastFailureAt: now, + lastFailureMessage: message, + }; + } + case 'going to run': { + return baseAttributes; + } + } + + assertUnreachable(status); +}; + +export const ruleStatusServiceFactory = async ({ + alertId, + ruleStatusClient, +}: { + alertId: string; + ruleStatusClient: RuleStatusSavedObjectsClient; +}): Promise => { + return { + goingToRun: async () => { + const [currentStatus] = await getOrCreateRuleStatuses({ + alertId, + ruleStatusClient, + }); + + await ruleStatusClient.update(currentStatus.id, { + ...currentStatus.attributes, + ...buildRuleStatusAttributes('going to run'), + }); + }, + + success: async (message, attributes) => { + const [currentStatus] = await getOrCreateRuleStatuses({ + alertId, + ruleStatusClient, + }); + + await ruleStatusClient.update(currentStatus.id, { + ...currentStatus.attributes, + ...buildRuleStatusAttributes('succeeded', message, attributes), + }); + }, + + error: async (message, attributes) => { + const ruleStatuses = await getOrCreateRuleStatuses({ + alertId, + ruleStatusClient, + }); + const [currentStatus] = ruleStatuses; + + const failureAttributes = { + ...currentStatus.attributes, + ...buildRuleStatusAttributes('failed', message, attributes), + }; + + // We always update the newest status, so to 'persist' a failure we push a copy to the head of the list + await ruleStatusClient.update(currentStatus.id, failureAttributes); + const newStatus = await ruleStatusClient.create(failureAttributes); + + // drop oldest failures + const oldStatuses = [newStatus, ...ruleStatuses].slice(MAX_RULE_STATUSES); + await Promise.all(oldStatuses.map(status => ruleStatusClient.delete(status.id))); + }, + }; +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts index ab9def14bef658..de4ec68e8fc8a7 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts @@ -6,11 +6,14 @@ import { performance } from 'perf_hooks'; import { Logger } from 'src/core/server'; + import { SIGNALS_ID, DEFAULT_SEARCH_AFTER_PAGE_SIZE, NOTIFICATION_THROTTLE_RULE, } from '../../../../common/constants'; +import { isJobStarted, isMlRule } from '../../../../common/detection_engine/ml_helpers'; +import { SetupPlugins } from '../../../plugin'; import { buildEventsSearchQuery } from './build_events_query'; import { getInputIndex } from './get_input_output_index'; @@ -21,24 +24,24 @@ import { import { getFilter } from './get_filter'; import { SignalRuleAlertTypeDefinition, RuleAlertAttributes } from './types'; import { getGapBetweenRuns, makeFloatString } from './utils'; -import { writeSignalRuleExceptionToSavedObject } from './write_signal_rule_exception_to_saved_object'; import { signalParamsSchema } from './signal_params_schema'; import { siemRuleActionGroups } from './siem_rule_action_groups'; -import { writeGapErrorToSavedObject } from './write_gap_error_to_saved_object'; -import { getRuleStatusSavedObjects } from './get_rule_status_saved_objects'; -import { getCurrentStatusSavedObject } from './get_current_status_saved_object'; -import { writeCurrentStatusSucceeded } from './write_current_status_succeeded'; import { findMlSignals } from './find_ml_signals'; import { bulkCreateMlSignals } from './bulk_create_ml_signals'; import { getSignalsCount } from '../notifications/get_signals_count'; import { scheduleNotificationActions } from '../notifications/schedule_notification_actions'; +import { ruleStatusServiceFactory } from './rule_status_service'; +import { buildRuleMessageFactory } from './rule_messages'; +import { ruleStatusSavedObjectsClientFactory } from './rule_status_saved_objects_client'; export const signalRulesAlertType = ({ logger, version, + ml, }: { logger: Logger; version: string; + ml: SetupPlugins['ml']; }): SignalRuleAlertTypeDefinition => { return { id: SIGNALS_ID, @@ -64,22 +67,15 @@ export const signalRulesAlertType = ({ to, type, } = params; + const ruleStatusClient = ruleStatusSavedObjectsClientFactory(services.savedObjectsClient); + const ruleStatusService = await ruleStatusServiceFactory({ + alertId, + ruleStatusClient, + }); const savedObject = await services.savedObjectsClient.get( 'alert', alertId ); - - const ruleStatusSavedObjects = await getRuleStatusSavedObjects({ - alertId, - services, - }); - - const currentStatusSavedObject = await getCurrentStatusSavedObject({ - alertId, - services, - ruleStatusSavedObjects, - }); - const { actions, name, @@ -92,23 +88,31 @@ export const signalRulesAlertType = ({ throttle, params: ruleParams, } = savedObject.attributes; - const updatedAt = savedObject.updated_at ?? ''; - - const gap = getGapBetweenRuns({ previousStartedAt, interval, from, to }); - await writeGapErrorToSavedObject({ - alertId, - logger, - ruleId: ruleId ?? '(unknown rule id)', - currentStatusSavedObject, - services, - gap, - ruleStatusSavedObjects, + const buildRuleMessage = buildRuleMessageFactory({ + id: alertId, + ruleId, name, + index: outputIndex, }); + logger.debug(buildRuleMessage('[+] Starting Signal Rule execution')); + await ruleStatusService.goingToRun(); + + const gap = getGapBetweenRuns({ previousStartedAt, interval, from, to }); + if (gap != null && gap.asMilliseconds() > 0) { + const gapString = gap.humanize(); + const gapMessage = buildRuleMessage( + `${gapString} (${gap.asMilliseconds()}ms) has passed since last rule execution, and signals may have been missed.`, + 'Consider increasing your look behind time or adding more Kibana instances.' + ); + logger.warn(gapMessage); + + await ruleStatusService.error(gapMessage, { gap: gapString }); + } + const searchAfterSize = Math.min(params.maxSignals, DEFAULT_SEARCH_AFTER_PAGE_SIZE); - let creationSucceeded: SearchAfterAndBulkCreateReturnType = { + let result: SearchAfterAndBulkCreateReturnType = { success: false, bulkCreateTimes: [], searchAfterTimes: [], @@ -116,11 +120,34 @@ export const signalRulesAlertType = ({ }; try { - if (type === 'machine_learning') { + if (isMlRule(type)) { + if (ml == null) { + throw new Error('ML plugin unavailable during rule execution'); + } if (machineLearningJobId == null || anomalyThreshold == null) { throw new Error( - `Attempted to execute machine learning rule, but it is missing job id and/or anomaly threshold for rule id: "${ruleId}", name: "${name}", signals index: "${outputIndex}", job id: "${machineLearningJobId}", anomaly threshold: "${anomalyThreshold}"` + [ + 'Machine learning rule is missing job id and/or anomaly threshold:', + `job id: "${machineLearningJobId}"`, + `anomaly threshold: "${anomalyThreshold}"`, + ].join('\n') + ); + } + + const summaryJobs = await ml + .jobServiceProvider(ml.mlClient.callAsInternalUser) + .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); + await ruleStatusService.error(errorMessage); } const anomalyResults = await findMlSignals( @@ -130,12 +157,9 @@ export const signalRulesAlertType = ({ to, services.callCluster ); - const anomalyCount = anomalyResults.hits.hits.length; if (anomalyCount) { - logger.info( - `Found ${anomalyCount} signals from ML anomalies for signal rule name: "${name}", id: "${alertId}", rule_id: "${ruleId}", pushing signals to index "${outputIndex}"` - ); + logger.info(buildRuleMessage(`Found ${anomalyCount} signals from ML anomalies.`)); } const { success, bulkCreateDuration } = await bulkCreateMlSignals({ @@ -156,9 +180,9 @@ export const signalRulesAlertType = ({ enabled, tags, }); - creationSucceeded.success = success; + result.success = success; if (bulkCreateDuration) { - creationSucceeded.bulkCreateTimes.push(bulkCreateDuration); + result.bulkCreateTimes.push(bulkCreateDuration); } } else { const inputIndex = await getInputIndex(services, version, index); @@ -181,27 +205,21 @@ export const signalRulesAlertType = ({ searchAfterSortId: undefined, }); - logger.debug( - `Starting signal rule name: "${name}", id: "${alertId}", rule_id: "${ruleId}"` - ); - logger.debug( - `[+] Initial search call of signal rule name: "${name}", id: "${alertId}", rule_id: "${ruleId}"` - ); + logger.debug(buildRuleMessage('[+] Initial search call')); const start = performance.now(); const noReIndexResult = await services.callCluster('search', noReIndex); const end = performance.now(); - if (noReIndexResult.hits.total.value !== 0) { + const signalCount = noReIndexResult.hits.total.value; + if (signalCount !== 0) { logger.info( - `Found ${ - noReIndexResult.hits.total.value - } signals from the indexes of "[${inputIndex.join( - ', ' - )}]" using signal rule name: "${name}", id: "${alertId}", rule_id: "${ruleId}", pushing signals to index "${outputIndex}"` + buildRuleMessage( + `Found ${signalCount} signals from the indexes of "[${inputIndex.join(', ')}]"` + ) ); } - creationSucceeded = await searchAfterAndBulkCreate({ + result = await searchAfterAndBulkCreate({ someResult: noReIndexResult, ruleParams: params, services, @@ -222,10 +240,10 @@ export const signalRulesAlertType = ({ tags, throttle, }); - creationSucceeded.searchAfterTimes.push(makeFloatString(end - start)); + result.searchAfterTimes.push(makeFloatString(end - start)); } - if (creationSucceeded.success) { + if (result.success) { if (meta?.throttle === NOTIFICATION_THROTTLE_RULE && actions.length) { const notificationRuleParams = { ...ruleParams, @@ -242,9 +260,7 @@ export const signalRulesAlertType = ({ callCluster: services.callCluster, }); - logger.info( - `Found ${signalsCount} signals using signal rule name: "${notificationRuleParams.name}", id: "${notificationRuleParams.ruleId}", rule_id: "${notificationRuleParams.ruleId}" in "${notificationRuleParams.outputIndex}" index` - ); + logger.info(buildRuleMessage(`Found ${signalsCount} signals for notification.`)); if (signalsCount) { const alertInstance = services.alertInstanceFactory(alertId); @@ -257,44 +273,35 @@ export const signalRulesAlertType = ({ } } - logger.debug( - `Finished signal rule name: "${name}", id: "${alertId}", rule_id: "${ruleId}"` - ); - await writeCurrentStatusSucceeded({ - services, - currentStatusSavedObject, - bulkCreateTimes: creationSucceeded.bulkCreateTimes, - searchAfterTimes: creationSucceeded.searchAfterTimes, - lastLookBackDate: creationSucceeded.lastLookBackDate?.toISOString() ?? null, + logger.debug(buildRuleMessage('[+] Signal Rule execution completed.')); + await ruleStatusService.success('succeeded', { + bulkCreateTimeDurations: result.bulkCreateTimes, + searchAfterTimeDurations: result.searchAfterTimes, + lastLookBackDate: result.lastLookBackDate?.toISOString(), }); } else { - await writeSignalRuleExceptionToSavedObject({ - name, - alertId, - currentStatusSavedObject, - logger, - message: `Bulk Indexing signals failed. Check logs for further details \nRule name: "${name}"\nid: "${alertId}"\nrule_id: "${ruleId}"\n`, - services, - ruleStatusSavedObjects, - ruleId: ruleId ?? '(unknown rule id)', - bulkCreateTimes: creationSucceeded.bulkCreateTimes, - searchAfterTimes: creationSucceeded.searchAfterTimes, - lastLookBackDate: creationSucceeded.lastLookBackDate?.toISOString() ?? null, + const errorMessage = buildRuleMessage( + 'Bulk Indexing of signals failed. Check logs for further details.' + ); + logger.error(errorMessage); + await ruleStatusService.error(errorMessage, { + bulkCreateTimeDurations: result.bulkCreateTimes, + searchAfterTimeDurations: result.searchAfterTimes, + lastLookBackDate: result.lastLookBackDate?.toISOString(), }); } - } catch (err) { - await writeSignalRuleExceptionToSavedObject({ - name, - alertId, - currentStatusSavedObject, - logger, - message: `Bulk Indexing signals failed. Check logs for further details \nRule name: "${name}"\nid: "${alertId}"\nrule_id: "${ruleId}"\n`, - services, - ruleStatusSavedObjects, - ruleId: ruleId ?? '(unknown rule id)', - bulkCreateTimes: creationSucceeded.bulkCreateTimes, - searchAfterTimes: creationSucceeded.searchAfterTimes, - lastLookBackDate: creationSucceeded.lastLookBackDate?.toISOString() ?? null, + } catch (error) { + const errorMessage = error.message ?? '(no error message given)'; + const message = buildRuleMessage( + 'An error occurred during rule execution:', + `message: "${errorMessage}"` + ); + + logger.error(message); + await ruleStatusService.error(message, { + bulkCreateTimeDurations: result.bulkCreateTimes, + searchAfterTimeDurations: result.searchAfterTimes, + lastLookBackDate: result.lastLookBackDate?.toISOString(), }); } }, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_current_status_succeeded.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_current_status_succeeded.ts deleted file mode 100644 index 50136790c34791..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_current_status_succeeded.ts +++ /dev/null @@ -1,45 +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; - * you may not use this file except in compliance with the Elastic License. - */ - -import { SavedObject } from 'src/core/server'; -import { ruleStatusSavedObjectType } from '../rules/saved_object_mappings'; - -import { AlertServices } from '../../../../../../../plugins/alerting/server'; -import { IRuleSavedAttributesSavedObjectAttributes } from '../rules/types'; - -interface GetRuleStatusSavedObject { - services: AlertServices; - currentStatusSavedObject: SavedObject; - lastLookBackDate: string | null | undefined; - bulkCreateTimes: string[] | null | undefined; - searchAfterTimes: string[] | null | undefined; -} - -export const writeCurrentStatusSucceeded = async ({ - services, - currentStatusSavedObject, - lastLookBackDate, - bulkCreateTimes, - searchAfterTimes, -}: GetRuleStatusSavedObject): Promise => { - const sDate = new Date().toISOString(); - currentStatusSavedObject.attributes.status = 'succeeded'; - currentStatusSavedObject.attributes.statusDate = sDate; - currentStatusSavedObject.attributes.lastSuccessAt = sDate; - currentStatusSavedObject.attributes.lastSuccessMessage = 'succeeded'; - if (lastLookBackDate != null) { - currentStatusSavedObject.attributes.lastLookBackDate = lastLookBackDate; - } - if (bulkCreateTimes != null) { - currentStatusSavedObject.attributes.bulkCreateTimeDurations = bulkCreateTimes; - } - if (searchAfterTimes != null) { - currentStatusSavedObject.attributes.searchAfterTimeDurations = searchAfterTimes; - } - await services.savedObjectsClient.update(ruleStatusSavedObjectType, currentStatusSavedObject.id, { - ...currentStatusSavedObject.attributes, - }); -}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_gap_error_to_saved_object.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_gap_error_to_saved_object.ts deleted file mode 100644 index e47e5388527dab..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_gap_error_to_saved_object.ts +++ /dev/null @@ -1,62 +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; - * you may not use this file except in compliance with the Elastic License. - */ - -import moment from 'moment'; -import { Logger, SavedObject, SavedObjectsFindResponse } from 'src/core/server'; - -import { AlertServices } from '../../../../../../../plugins/alerting/server'; -import { IRuleSavedAttributesSavedObjectAttributes } from '../rules/types'; -import { ruleStatusSavedObjectType } from '../rules/saved_object_mappings'; - -interface WriteGapErrorToSavedObjectParams { - logger: Logger; - alertId: string; - ruleId: string; - currentStatusSavedObject: SavedObject; - ruleStatusSavedObjects: SavedObjectsFindResponse; - services: AlertServices; - gap: moment.Duration | null | undefined; - name: string; -} - -export const writeGapErrorToSavedObject = async ({ - alertId, - currentStatusSavedObject, - logger, - services, - ruleStatusSavedObjects, - ruleId, - gap, - name, -}: WriteGapErrorToSavedObjectParams): Promise => { - if (gap != null && gap.asMilliseconds() > 0) { - logger.warn( - `Signal rule name: "${name}", id: "${alertId}", rule_id: "${ruleId}" has a time gap of ${gap.humanize()} (${gap.asMilliseconds()}ms), and could be missing signals within that time. Consider increasing your look behind time or adding more Kibana instances.` - ); - // write a failure status whenever we have a time gap - // this is a temporary solution until general activity - // monitoring is developed as a feature - const gapDate = new Date().toISOString(); - await services.savedObjectsClient.create(ruleStatusSavedObjectType, { - alertId, - statusDate: gapDate, - status: 'failed', - lastFailureAt: gapDate, - lastSuccessAt: currentStatusSavedObject.attributes.lastSuccessAt, - lastFailureMessage: `Signal rule name: "${name}", id: "${alertId}", rule_id: "${ruleId}" has a time gap of ${gap.humanize()} (${gap.asMilliseconds()}ms), and could be missing signals within that time. Consider increasing your look behind time or adding more Kibana instances.`, - lastSuccessMessage: currentStatusSavedObject.attributes.lastSuccessMessage, - gap: gap.humanize(), - }); - - if (ruleStatusSavedObjects.saved_objects.length >= 6) { - // delete fifth status and prepare to insert a newer one. - const toDelete = ruleStatusSavedObjects.saved_objects.slice(5); - await toDelete.forEach(async item => - services.savedObjectsClient.delete(ruleStatusSavedObjectType, item.id) - ); - } - } -}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_signal_rule_exception_to_saved_object.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_signal_rule_exception_to_saved_object.ts deleted file mode 100644 index 2a14184859591d..00000000000000 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/write_signal_rule_exception_to_saved_object.ts +++ /dev/null @@ -1,73 +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; - * you may not use this file except in compliance with the Elastic License. - */ - -import { Logger, SavedObject, SavedObjectsFindResponse } from 'src/core/server'; - -import { AlertServices } from '../../../../../../../plugins/alerting/server'; -import { IRuleSavedAttributesSavedObjectAttributes } from '../rules/types'; -import { ruleStatusSavedObjectType } from '../rules/saved_object_mappings'; - -interface SignalRuleExceptionParams { - logger: Logger; - alertId: string; - ruleId: string; - currentStatusSavedObject: SavedObject; - ruleStatusSavedObjects: SavedObjectsFindResponse; - message: string; - services: AlertServices; - name: string; - lastLookBackDate?: string | null | undefined; - bulkCreateTimes?: string[] | null | undefined; - searchAfterTimes?: string[] | null | undefined; -} - -export const writeSignalRuleExceptionToSavedObject = async ({ - alertId, - currentStatusSavedObject, - logger, - message, - services, - ruleStatusSavedObjects, - ruleId, - name, - lastLookBackDate, - bulkCreateTimes, - searchAfterTimes, -}: SignalRuleExceptionParams): Promise => { - logger.error( - `Error from signal rule name: "${name}", id: "${alertId}", rule_id: "${ruleId}" message: ${message}` - ); - const sDate = new Date().toISOString(); - currentStatusSavedObject.attributes.status = 'failed'; - currentStatusSavedObject.attributes.statusDate = sDate; - currentStatusSavedObject.attributes.lastFailureAt = sDate; - currentStatusSavedObject.attributes.lastFailureMessage = message; - if (lastLookBackDate) { - currentStatusSavedObject.attributes.lastLookBackDate = lastLookBackDate; - } - if (bulkCreateTimes) { - currentStatusSavedObject.attributes.bulkCreateTimeDurations = bulkCreateTimes; - } - if (searchAfterTimes) { - currentStatusSavedObject.attributes.searchAfterTimeDurations = searchAfterTimes; - } - // current status is failing - await services.savedObjectsClient.update(ruleStatusSavedObjectType, currentStatusSavedObject.id, { - ...currentStatusSavedObject.attributes, - }); - // create new status for historical purposes - await services.savedObjectsClient.create(ruleStatusSavedObjectType, { - ...currentStatusSavedObject.attributes, - }); - - if (ruleStatusSavedObjects.saved_objects.length >= 6) { - // delete fifth status and prepare to insert a newer one. - const toDelete = ruleStatusSavedObjects.saved_objects.slice(5); - await toDelete.forEach(async item => - services.savedObjectsClient.delete(ruleStatusSavedObjectType, item.id) - ); - } -}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/types.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/types.ts index aae8763a7ea39c..08b3f864314f98 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/types.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/types.ts @@ -8,7 +8,7 @@ import { CallAPIOptions } from '../../../../../../../src/core/server'; import { Filter } from '../../../../../../../src/plugins/data/server'; import { IRuleStatusAttributes } from './rules/types'; import { ListsDefaultArraySchema } from './routes/schemas/types/lists_default_array'; -import { RuleAlertAction } from '../../../common/detection_engine/types'; +import { RuleAlertAction, RuleType } from '../../../common/detection_engine/types'; export type PartialFilter = Partial; @@ -28,7 +28,6 @@ export interface ThreatParams { // TODO: Eventually this whole RuleAlertParams will be replaced with io-ts. For now we can slowly strangle it out and reduce duplicate types // We don't have the input types defined through io-ts just yet but as we being introducing types from there we will more and more remove // types and share them between input and output schema but have an input Rule Schema and an output Rule Schema. -export type RuleType = 'query' | 'saved_query' | 'machine_learning'; export interface RuleAlertParams { actions: RuleAlertAction[]; diff --git a/x-pack/legacy/plugins/siem/server/plugin.ts b/x-pack/legacy/plugins/siem/server/plugin.ts index 98631ea220a54d..dcaf805c54f6e7 100644 --- a/x-pack/legacy/plugins/siem/server/plugin.ts +++ b/x-pack/legacy/plugins/siem/server/plugin.ts @@ -18,6 +18,7 @@ import { } from '../../../../../src/core/server'; import { SecurityPluginSetup as SecuritySetup } from '../../../../plugins/security/server'; import { PluginSetupContract as FeaturesSetup } from '../../../../plugins/features/server'; +import { MlPluginSetup as MlSetup } from '../../../../plugins/ml/server'; import { EncryptedSavedObjectsPluginSetup as EncryptedSavedObjectsSetup } from '../../../../plugins/encrypted_saved_objects/server'; import { SpacesPluginSetup as SpacesSetup } from '../../../../plugins/spaces/server'; import { PluginStartContract as ActionsStart } from '../../../../plugins/actions/server'; @@ -48,6 +49,7 @@ export interface SetupPlugins { licensing: LicensingPluginSetup; security?: SecuritySetup; spaces?: SpacesSetup; + ml?: MlSetup; } export interface StartPlugins { @@ -164,6 +166,7 @@ export class Plugin { const signalRuleType = signalRulesAlertType({ logger: this.logger, version: this.context.env.packageInfo.version, + ml: plugins.ml, }); const ruleNotificationType = rulesNotificationAlertType({ logger: this.logger, diff --git a/x-pack/plugins/ml/server/plugin.ts b/x-pack/plugins/ml/server/plugin.ts index 674c3886c12f8c..7d3ef116e67ab7 100644 --- a/x-pack/plugins/ml/server/plugin.ts +++ b/x-pack/plugins/ml/server/plugin.ts @@ -11,6 +11,7 @@ import { IScopedClusterClient, Logger, PluginInitializerContext, + ICustomClusterClient, } from 'kibana/server'; import { PluginsSetup, RouteInitialization } from './types'; import { PLUGIN_ID, PLUGIN_ICON } from '../common/constants/app'; @@ -49,7 +50,9 @@ declare module 'kibana/server' { } } -export type MlPluginSetup = SharedServices; +export interface MlPluginSetup extends SharedServices { + mlClient: ICustomClusterClient; +} export type MlPluginStart = void; export class MlServerPlugin implements Plugin { @@ -135,7 +138,10 @@ export class MlServerPlugin implements Plugin Date: Mon, 30 Mar 2020 15:59:43 -0700 Subject: [PATCH 016/118] [optimizer] validate the syntax of bundled node_modules (#59972) Co-authored-by: spalger Co-authored-by: Elastic Machine --- packages/kbn-optimizer/package.json | 3 + .../__snapshots__/parse_path.test.ts.snap | 73 +++++++ .../disallowed_syntax.ts | 194 ++++++++++++++++++ .../disallowed_syntax_plugin.ts | 73 +++++++ .../common/disallowed_syntax_plugin/index.ts | 20 ++ packages/kbn-optimizer/src/common/index.ts | 2 + .../src/{worker => common}/parse_path.test.ts | 10 +- .../src/{worker => common}/parse_path.ts | 11 +- packages/kbn-optimizer/src/index.ts | 1 + .../kbn-optimizer/src/worker/run_compilers.ts | 11 +- .../src/worker/webpack.config.ts | 5 +- .../src/worker/webpack_helpers.ts | 15 +- renovate.json5 | 8 + src/legacy/server/config/schema.js | 1 + .../ui/ui_bundles/ui_bundles_controller.js | 5 + .../dynamic_dll_plugin/dll_config_model.js | 20 ++ tasks/config/run.js | 1 + yarn.lock | 12 +- 18 files changed, 450 insertions(+), 15 deletions(-) rename packages/kbn-optimizer/src/{worker => common}/__snapshots__/parse_path.test.ts.snap (64%) create mode 100644 packages/kbn-optimizer/src/common/disallowed_syntax_plugin/disallowed_syntax.ts create mode 100644 packages/kbn-optimizer/src/common/disallowed_syntax_plugin/disallowed_syntax_plugin.ts create mode 100644 packages/kbn-optimizer/src/common/disallowed_syntax_plugin/index.ts rename packages/kbn-optimizer/src/{worker => common}/parse_path.test.ts (83%) rename packages/kbn-optimizer/src/{worker => common}/parse_path.ts (83%) diff --git a/packages/kbn-optimizer/package.json b/packages/kbn-optimizer/package.json index d32c7489641a06..b648004760d7c7 100644 --- a/packages/kbn-optimizer/package.json +++ b/packages/kbn-optimizer/package.json @@ -14,9 +14,12 @@ "@kbn/babel-preset": "1.0.0", "@kbn/dev-utils": "1.0.0", "@kbn/ui-shared-deps": "1.0.0", + "@types/estree": "^0.0.44", "@types/loader-utils": "^1.1.3", "@types/watchpack": "^1.1.5", "@types/webpack": "^4.41.3", + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", "autoprefixer": "^9.7.4", "babel-loader": "^8.0.6", "clean-webpack-plugin": "^3.0.0", diff --git a/packages/kbn-optimizer/src/worker/__snapshots__/parse_path.test.ts.snap b/packages/kbn-optimizer/src/common/__snapshots__/parse_path.test.ts.snap similarity index 64% rename from packages/kbn-optimizer/src/worker/__snapshots__/parse_path.test.ts.snap rename to packages/kbn-optimizer/src/common/__snapshots__/parse_path.test.ts.snap index 2973ac116d6bd1..f537674c3fff7e 100644 --- a/packages/kbn-optimizer/src/worker/__snapshots__/parse_path.test.ts.snap +++ b/packages/kbn-optimizer/src/common/__snapshots__/parse_path.test.ts.snap @@ -4,6 +4,7 @@ exports[`parseDirPath() parses / 1`] = ` Object { "dirs": Array [], "filename": undefined, + "query": undefined, "root": "/", } `; @@ -14,6 +15,7 @@ Object { "foo", ], "filename": undefined, + "query": undefined, "root": "/", } `; @@ -26,6 +28,7 @@ Object { "baz", ], "filename": undefined, + "query": undefined, "root": "/", } `; @@ -38,6 +41,7 @@ Object { "baz", ], "filename": undefined, + "query": undefined, "root": "/", } `; @@ -46,6 +50,7 @@ exports[`parseDirPath() parses c:\\ 1`] = ` Object { "dirs": Array [], "filename": undefined, + "query": undefined, "root": "c:", } `; @@ -56,6 +61,7 @@ Object { "foo", ], "filename": undefined, + "query": undefined, "root": "c:", } `; @@ -68,6 +74,7 @@ Object { "baz", ], "filename": undefined, + "query": undefined, "root": "c:", } `; @@ -80,6 +87,7 @@ Object { "baz", ], "filename": undefined, + "query": undefined, "root": "c:", } `; @@ -88,6 +96,7 @@ exports[`parseFilePath() parses /foo 1`] = ` Object { "dirs": Array [], "filename": "foo", + "query": undefined, "root": "/", } `; @@ -99,6 +108,7 @@ Object { "bar", ], "filename": "baz", + "query": undefined, "root": "/", } `; @@ -110,6 +120,36 @@ Object { "bar", ], "filename": "baz.json", + "query": undefined, + "root": "/", +} +`; + +exports[`parseFilePath() parses /foo/bar/baz.json?light 1`] = ` +Object { + "dirs": Array [ + "foo", + "bar", + ], + "filename": "baz.json", + "query": Object { + "light": "", + }, + "root": "/", +} +`; + +exports[`parseFilePath() parses /foo/bar/baz.json?light=true&dark=false 1`] = ` +Object { + "dirs": Array [ + "foo", + "bar", + ], + "filename": "baz.json", + "query": Object { + "dark": "false", + "light": "true", + }, "root": "/", } `; @@ -121,6 +161,7 @@ Object { "bar", ], "filename": "baz.json", + "query": undefined, "root": "c:", } `; @@ -129,6 +170,7 @@ exports[`parseFilePath() parses c:\\foo 1`] = ` Object { "dirs": Array [], "filename": "foo", + "query": undefined, "root": "c:", } `; @@ -140,6 +182,7 @@ Object { "bar", ], "filename": "baz", + "query": undefined, "root": "c:", } `; @@ -151,6 +194,36 @@ Object { "bar", ], "filename": "baz.json", + "query": undefined, + "root": "c:", +} +`; + +exports[`parseFilePath() parses c:\\foo\\bar\\baz.json?dark 1`] = ` +Object { + "dirs": Array [ + "foo", + "bar", + ], + "filename": "baz.json", + "query": Object { + "dark": "", + }, + "root": "c:", +} +`; + +exports[`parseFilePath() parses c:\\foo\\bar\\baz.json?dark=true&light=false 1`] = ` +Object { + "dirs": Array [ + "foo", + "bar", + ], + "filename": "baz.json", + "query": Object { + "dark": "true", + "light": "false", + }, "root": "c:", } `; diff --git a/packages/kbn-optimizer/src/common/disallowed_syntax_plugin/disallowed_syntax.ts b/packages/kbn-optimizer/src/common/disallowed_syntax_plugin/disallowed_syntax.ts new file mode 100644 index 00000000000000..ba19bdc9c3be7d --- /dev/null +++ b/packages/kbn-optimizer/src/common/disallowed_syntax_plugin/disallowed_syntax.ts @@ -0,0 +1,194 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import estree from 'estree'; + +export interface DisallowedSyntaxCheck { + name: string; + nodeType: estree.Node['type'] | Array; + test?: (n: any) => boolean | void; +} + +export const checks: DisallowedSyntaxCheck[] = [ + /** + * es2015 + */ + // https://github.com/estree/estree/blob/master/es2015.md#functions + { + name: '[es2015] generator function', + nodeType: ['FunctionDeclaration', 'FunctionExpression'], + test: (n: estree.FunctionDeclaration | estree.FunctionExpression) => !!n.generator, + }, + // https://github.com/estree/estree/blob/master/es2015.md#forofstatement + { + name: '[es2015] for-of statement', + nodeType: 'ForOfStatement', + }, + // https://github.com/estree/estree/blob/master/es2015.md#variabledeclaration + { + name: '[es2015] let/const variable declaration', + nodeType: 'VariableDeclaration', + test: (n: estree.VariableDeclaration) => n.kind === 'let' || n.kind === 'const', + }, + // https://github.com/estree/estree/blob/master/es2015.md#expressions + { + name: '[es2015] `super`', + nodeType: 'Super', + }, + // https://github.com/estree/estree/blob/master/es2015.md#expressions + { + name: '[es2015] ...spread', + nodeType: 'SpreadElement', + }, + // https://github.com/estree/estree/blob/master/es2015.md#arrowfunctionexpression + { + name: '[es2015] arrow function expression', + nodeType: 'ArrowFunctionExpression', + }, + // https://github.com/estree/estree/blob/master/es2015.md#yieldexpression + { + name: '[es2015] `yield` expression', + nodeType: 'YieldExpression', + }, + // https://github.com/estree/estree/blob/master/es2015.md#templateliteral + { + name: '[es2015] template literal', + nodeType: 'TemplateLiteral', + }, + // https://github.com/estree/estree/blob/master/es2015.md#patterns + { + name: '[es2015] destructuring', + nodeType: ['ObjectPattern', 'ArrayPattern', 'AssignmentPattern'], + }, + // https://github.com/estree/estree/blob/master/es2015.md#classes + { + name: '[es2015] class', + nodeType: [ + 'ClassDeclaration', + 'ClassExpression', + 'ClassBody', + 'MethodDefinition', + 'MetaProperty', + ], + }, + + /** + * es2016 + */ + { + name: '[es2016] exponent operator', + nodeType: 'BinaryExpression', + test: (n: estree.BinaryExpression) => n.operator === '**', + }, + { + name: '[es2016] exponent assignment', + nodeType: 'AssignmentExpression', + test: (n: estree.AssignmentExpression) => n.operator === '**=', + }, + + /** + * es2017 + */ + // https://github.com/estree/estree/blob/master/es2017.md#function + { + name: '[es2017] async function', + nodeType: ['FunctionDeclaration', 'FunctionExpression'], + test: (n: estree.FunctionDeclaration | estree.FunctionExpression) => n.async, + }, + // https://github.com/estree/estree/blob/master/es2017.md#awaitexpression + { + name: '[es2017] await expression', + nodeType: 'AwaitExpression', + }, + + /** + * es2018 + */ + // https://github.com/estree/estree/blob/master/es2018.md#statements + { + name: '[es2018] for-await-of statements', + nodeType: 'ForOfStatement', + test: (n: estree.ForOfStatement) => n.await, + }, + // https://github.com/estree/estree/blob/master/es2018.md#expressions + { + name: '[es2018] object spread properties', + nodeType: 'ObjectExpression', + test: (n: estree.ObjectExpression) => n.properties.some(p => p.type === 'SpreadElement'), + }, + // https://github.com/estree/estree/blob/master/es2018.md#template-literals + { + name: '[es2018] tagged template literal with invalid escape', + nodeType: 'TemplateElement', + test: (n: estree.TemplateElement) => n.value.cooked === null, + }, + // https://github.com/estree/estree/blob/master/es2018.md#patterns + { + name: '[es2018] rest properties', + nodeType: 'ObjectPattern', + test: (n: estree.ObjectPattern) => n.properties.some(p => p.type === 'RestElement'), + }, + + /** + * es2019 + */ + // https://github.com/estree/estree/blob/master/es2019.md#catchclause + { + name: '[es2019] catch clause without a binding', + nodeType: 'CatchClause', + test: (n: estree.CatchClause) => !n.param, + }, + + /** + * es2020 + */ + // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral + { + name: '[es2020] bigint literal', + nodeType: 'Literal', + test: (n: estree.Literal) => typeof n.value === 'bigint', + }, + + /** + * webpack transforms import/export in order to support tree shaking and async imports + * + * // https://github.com/estree/estree/blob/master/es2020.md#importexpression + * { + * name: '[es2020] import expression', + * nodeType: 'ImportExpression', + * }, + * // https://github.com/estree/estree/blob/master/es2020.md#exportalldeclaration + * { + * name: '[es2020] export all declaration', + * nodeType: 'ExportAllDeclaration', + * }, + * + */ +]; + +export const checksByNodeType = new Map(); +for (const check of checks) { + const nodeTypes = Array.isArray(check.nodeType) ? check.nodeType : [check.nodeType]; + for (const nodeType of nodeTypes) { + if (!checksByNodeType.has(nodeType)) { + checksByNodeType.set(nodeType, []); + } + checksByNodeType.get(nodeType)!.push(check); + } +} diff --git a/packages/kbn-optimizer/src/common/disallowed_syntax_plugin/disallowed_syntax_plugin.ts b/packages/kbn-optimizer/src/common/disallowed_syntax_plugin/disallowed_syntax_plugin.ts new file mode 100644 index 00000000000000..7377462eb267bf --- /dev/null +++ b/packages/kbn-optimizer/src/common/disallowed_syntax_plugin/disallowed_syntax_plugin.ts @@ -0,0 +1,73 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import webpack from 'webpack'; +import acorn from 'acorn'; +import * as AcornWalk from 'acorn-walk'; + +import { checksByNodeType, DisallowedSyntaxCheck } from './disallowed_syntax'; +import { parseFilePath } from '../parse_path'; + +export class DisallowedSyntaxPlugin { + apply(compiler: webpack.Compiler) { + compiler.hooks.normalModuleFactory.tap(DisallowedSyntaxPlugin.name, factory => { + factory.hooks.parser.for('javascript/auto').tap(DisallowedSyntaxPlugin.name, parser => { + parser.hooks.program.tap(DisallowedSyntaxPlugin.name, (program: acorn.Node) => { + const module = parser.state?.current; + if (!module || !module.resource) { + return; + } + + const resource: string = module.resource; + const { dirs } = parseFilePath(resource); + + if (!dirs.includes('node_modules')) { + return; + } + + const failedChecks = new Set(); + + AcornWalk.full(program, node => { + const checks = checksByNodeType.get(node.type as any); + if (!checks) { + return; + } + + for (const check of checks) { + if (!check.test || check.test(node)) { + failedChecks.add(check); + } + } + }); + + if (!failedChecks.size) { + return; + } + + // throw an error to trigger a parse failure, causing this module to be reported as invalid + throw new Error( + `disallowed syntax found in file ${resource}:\n - ${Array.from(failedChecks) + .map(c => c.name) + .join('\n - ')}` + ); + }); + }); + }); + } +} diff --git a/packages/kbn-optimizer/src/common/disallowed_syntax_plugin/index.ts b/packages/kbn-optimizer/src/common/disallowed_syntax_plugin/index.ts new file mode 100644 index 00000000000000..ca5ba1b90fe954 --- /dev/null +++ b/packages/kbn-optimizer/src/common/disallowed_syntax_plugin/index.ts @@ -0,0 +1,20 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export * from './disallowed_syntax_plugin'; diff --git a/packages/kbn-optimizer/src/common/index.ts b/packages/kbn-optimizer/src/common/index.ts index ea0560f1321535..c51905be045653 100644 --- a/packages/kbn-optimizer/src/common/index.ts +++ b/packages/kbn-optimizer/src/common/index.ts @@ -26,3 +26,5 @@ export * from './ts_helpers'; export * from './rxjs_helpers'; export * from './array_helpers'; export * from './event_stream_helpers'; +export * from './disallowed_syntax_plugin'; +export * from './parse_path'; diff --git a/packages/kbn-optimizer/src/worker/parse_path.test.ts b/packages/kbn-optimizer/src/common/parse_path.test.ts similarity index 83% rename from packages/kbn-optimizer/src/worker/parse_path.test.ts rename to packages/kbn-optimizer/src/common/parse_path.test.ts index 72197e8c8fb07a..61be44348cfae5 100644 --- a/packages/kbn-optimizer/src/worker/parse_path.test.ts +++ b/packages/kbn-optimizer/src/common/parse_path.test.ts @@ -21,7 +21,15 @@ import { parseFilePath, parseDirPath } from './parse_path'; const DIRS = ['/', '/foo/bar/baz/', 'c:\\', 'c:\\foo\\bar\\baz\\']; const AMBIGUOUS = ['/foo', '/foo/bar/baz', 'c:\\foo', 'c:\\foo\\bar\\baz']; -const FILES = ['/foo/bar/baz.json', 'c:/foo/bar/baz.json', 'c:\\foo\\bar\\baz.json']; +const FILES = [ + '/foo/bar/baz.json', + 'c:/foo/bar/baz.json', + 'c:\\foo\\bar\\baz.json', + '/foo/bar/baz.json?light', + '/foo/bar/baz.json?light=true&dark=false', + 'c:\\foo\\bar\\baz.json?dark', + 'c:\\foo\\bar\\baz.json?dark=true&light=false', +]; describe('parseFilePath()', () => { it.each([...FILES, ...AMBIGUOUS])('parses %s', path => { diff --git a/packages/kbn-optimizer/src/worker/parse_path.ts b/packages/kbn-optimizer/src/common/parse_path.ts similarity index 83% rename from packages/kbn-optimizer/src/worker/parse_path.ts rename to packages/kbn-optimizer/src/common/parse_path.ts index 88152df55b84f4..4c96417800252d 100644 --- a/packages/kbn-optimizer/src/worker/parse_path.ts +++ b/packages/kbn-optimizer/src/common/parse_path.ts @@ -18,6 +18,7 @@ */ import normalizePath from 'normalize-path'; +import Qs from 'querystring'; /** * Parse an absolute path, supporting normalized paths from webpack, @@ -33,11 +34,19 @@ export function parseDirPath(path: string) { } export function parseFilePath(path: string) { - const normalized = normalizePath(path); + let normalized = normalizePath(path); + let query; + const queryIndex = normalized.indexOf('?'); + if (queryIndex !== -1) { + query = Qs.parse(normalized.slice(queryIndex + 1)); + normalized = normalized.slice(0, queryIndex); + } + const [root, ...others] = normalized.split('/'); return { root: root === '' ? '/' : root, dirs: others.slice(0, -1), + query, filename: others[others.length - 1] || undefined, }; } diff --git a/packages/kbn-optimizer/src/index.ts b/packages/kbn-optimizer/src/index.ts index 48777f1d54aafd..8026cf39db73dc 100644 --- a/packages/kbn-optimizer/src/index.ts +++ b/packages/kbn-optimizer/src/index.ts @@ -20,3 +20,4 @@ export { OptimizerConfig } from './optimizer'; export * from './run_optimizer'; export * from './log_optimizer_state'; +export * from './common/disallowed_syntax_plugin'; diff --git a/packages/kbn-optimizer/src/worker/run_compilers.ts b/packages/kbn-optimizer/src/worker/run_compilers.ts index e87ddc7d0185cf..0dfce4b5addbad 100644 --- a/packages/kbn-optimizer/src/worker/run_compilers.ts +++ b/packages/kbn-optimizer/src/worker/run_compilers.ts @@ -27,10 +27,17 @@ import webpack, { Stats } from 'webpack'; import * as Rx from 'rxjs'; import { mergeMap, map, mapTo, takeUntil } from 'rxjs/operators'; -import { CompilerMsgs, CompilerMsg, maybeMap, Bundle, WorkerConfig, ascending } from '../common'; +import { + CompilerMsgs, + CompilerMsg, + maybeMap, + Bundle, + WorkerConfig, + ascending, + parseFilePath, +} from '../common'; import { getWebpackConfig } from './webpack.config'; import { isFailureStats, failedStatsToErrorMessage } from './webpack_helpers'; -import { parseFilePath } from './parse_path'; import { isExternalModule, isNormalModule, diff --git a/packages/kbn-optimizer/src/worker/webpack.config.ts b/packages/kbn-optimizer/src/worker/webpack.config.ts index dabfed7f9725cb..9337daf419bfac 100644 --- a/packages/kbn-optimizer/src/worker/webpack.config.ts +++ b/packages/kbn-optimizer/src/worker/webpack.config.ts @@ -29,8 +29,7 @@ import webpackMerge from 'webpack-merge'; import { CleanWebpackPlugin } from 'clean-webpack-plugin'; import * as SharedDeps from '@kbn/ui-shared-deps'; -import { Bundle, WorkerConfig } from '../common'; -import { parseDirPath } from './parse_path'; +import { Bundle, WorkerConfig, parseDirPath, DisallowedSyntaxPlugin } from '../common'; const IS_CODE_COVERAGE = !!process.env.CODE_COVERAGE; const ISTANBUL_PRESET_PATH = require.resolve('@kbn/babel-preset/istanbul_preset'); @@ -77,7 +76,7 @@ export function getWebpackConfig(bundle: Bundle, worker: WorkerConfig) { ...SharedDeps.externals, }, - plugins: [new CleanWebpackPlugin()], + plugins: [new CleanWebpackPlugin(), new DisallowedSyntaxPlugin()], module: { // no parse rules for a few known large packages which have no require() statements diff --git a/packages/kbn-optimizer/src/worker/webpack_helpers.ts b/packages/kbn-optimizer/src/worker/webpack_helpers.ts index a11c85c64198e3..e30920b9601444 100644 --- a/packages/kbn-optimizer/src/worker/webpack_helpers.ts +++ b/packages/kbn-optimizer/src/worker/webpack_helpers.ts @@ -18,7 +18,6 @@ */ import webpack from 'webpack'; -import { defaults } from 'lodash'; // @ts-ignore import Stats from 'webpack/lib/Stats'; @@ -55,12 +54,14 @@ const STATS_WARNINGS_FILTER = new RegExp( ); export function failedStatsToErrorMessage(stats: webpack.Stats) { - const details = stats.toString( - defaults( - { colors: true, warningsFilter: STATS_WARNINGS_FILTER }, - Stats.presetToOptions('minimal') - ) - ); + const details = stats.toString({ + ...Stats.presetToOptions('minimal'), + colors: true, + warningsFilter: STATS_WARNINGS_FILTER, + errors: true, + errorDetails: true, + moduleTrace: true, + }); return `Optimizations failure.\n${details.split('\n').join('\n ')}`; } diff --git a/renovate.json5 b/renovate.json5 index 57f175d1afc8e6..ffa006264873d3 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -265,6 +265,14 @@ '(\\b|_)eslint(\\b|_)', ], }, + { + groupSlug: 'estree', + groupName: 'estree related packages', + packageNames: [ + 'estree', + '@types/estree', + ], + }, { groupSlug: 'fancy-log', groupName: 'fancy-log related packages', diff --git a/src/legacy/server/config/schema.js b/src/legacy/server/config/schema.js index 4b7618712cdd83..a66d3b24732f08 100644 --- a/src/legacy/server/config/schema.js +++ b/src/legacy/server/config/schema.js @@ -195,6 +195,7 @@ export default () => }), workers: Joi.number().min(1), profile: Joi.boolean().default(false), + validateSyntaxOfNodeModules: Joi.boolean().default(true), }).default(), status: Joi.object({ allowAnonymous: Joi.boolean().default(false), diff --git a/src/legacy/ui/ui_bundles/ui_bundles_controller.js b/src/legacy/ui/ui_bundles/ui_bundles_controller.js index 1a78569e874f2c..7afa283af83e01 100644 --- a/src/legacy/ui/ui_bundles/ui_bundles_controller.js +++ b/src/legacy/ui/ui_bundles/ui_bundles_controller.js @@ -73,6 +73,7 @@ export class UiBundlesController { this._workingDir = config.get('optimize.bundleDir'); this._env = config.get('env.name'); + this._validateSyntaxOfNodeModules = config.get('optimize.validateSyntaxOfNodeModules'); this._context = { env: config.get('env.name'), sourceMaps: config.get('optimize.sourceMaps'), @@ -135,6 +136,10 @@ export class UiBundlesController { return this._env === 'development'; } + shouldValidateSyntaxOfNodeModules() { + return !!this._validateSyntaxOfNodeModules; + } + getWebpackPluginProviders() { return this._webpackPluginProviders || []; } diff --git a/src/optimize/dynamic_dll_plugin/dll_config_model.js b/src/optimize/dynamic_dll_plugin/dll_config_model.js index 9ca6071b8f5158..eec369b194fef6 100644 --- a/src/optimize/dynamic_dll_plugin/dll_config_model.js +++ b/src/optimize/dynamic_dll_plugin/dll_config_model.js @@ -28,6 +28,7 @@ import * as UiSharedDeps from '@kbn/ui-shared-deps'; function generateDLL(config) { const { dllAlias, + dllValidateSyntax, dllNoParseRules, dllContext, dllEntry, @@ -44,6 +45,22 @@ function generateDLL(config) { const BABEL_PRESET_PATH = require.resolve('@kbn/babel-preset/webpack_preset'); const BABEL_EXCLUDE_RE = [/[\/\\](webpackShims|node_modules|bower_components)[\/\\]/]; + /** + * Wrap plugin loading in a function so that we can require + * `@kbn/optimizer` only when absolutely necessary since we + * don't ship this package in the distributable but this code + * is still shipped, though it's not used. + */ + const getValidateSyntaxPlugins = () => { + if (!dllValidateSyntax) { + return []; + } + + // only require @kbn/optimizer + const { DisallowedSyntaxPlugin } = require('@kbn/optimizer'); + return [new DisallowedSyntaxPlugin()]; + }; + return { entry: dllEntry, context: dllContext, @@ -140,6 +157,7 @@ function generateDLL(config) { new MiniCssExtractPlugin({ filename: dllStyleFilename, }), + ...getValidateSyntaxPlugins(), ], // Single runtime for the dll bundles which assures that common transient dependencies won't be evaluated twice. // The module cache will be shared, even when module code may be duplicated across chunks. @@ -163,6 +181,7 @@ function generateDLL(config) { function extendRawConfig(rawConfig) { // Build all extended configs from raw config const dllAlias = rawConfig.uiBundles.getAliases(); + const dllValidateSyntax = rawConfig.uiBundles.shouldValidateSyntaxOfNodeModules(); const dllNoParseRules = rawConfig.uiBundles.getWebpackNoParseRules(); const dllDevMode = rawConfig.uiBundles.isDevMode(); const dllContext = rawConfig.context; @@ -195,6 +214,7 @@ function extendRawConfig(rawConfig) { // Export dll config map return { dllAlias, + dllValidateSyntax, dllNoParseRules, dllDevMode, dllContext, diff --git a/tasks/config/run.js b/tasks/config/run.js index 50417ebd8333d7..dca0f69c356682 100644 --- a/tasks/config/run.js +++ b/tasks/config/run.js @@ -58,6 +58,7 @@ module.exports = function(grunt) { '--env.name=development', '--plugins.initialize=false', '--optimize.bundleFilter=tests', + '--optimize.validateSyntaxOfNodeModules=false', '--server.port=5610', '--migrations.skip=true', ]; diff --git a/yarn.lock b/yarn.lock index 2e57d6d475f39e..b3c2aa94d07d10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3821,6 +3821,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/estree@^0.0.44": + version "0.0.44" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.44.tgz#980cc5a29a3ef3bea6ff1f7d021047d7ea575e21" + integrity sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g== + "@types/events@*": version "1.2.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" @@ -5312,6 +5317,11 @@ acorn-walk@^7.0.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.0.0.tgz#c8ba6f0f1aac4b0a9e32d1f0af12be769528f36b" integrity sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg== +acorn-walk@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" + integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== + acorn@5.X, acorn@^5.0.0, acorn@^5.0.3, acorn@^5.1.2, acorn@^5.5.0: version "5.7.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" @@ -5332,7 +5342,7 @@ acorn@^6.0.1, acorn@^6.2.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^7.0.0, acorn@^7.1.0: +acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== From 5808f86f60e33bb68d39a374f71e51051521bffb Mon Sep 17 00:00:00 2001 From: Nathan L Smith Date: Mon, 30 Mar 2020 18:34:23 -0500 Subject: [PATCH 017/118] Use docLinks API for APM doc links (#61880) * Use docLinks API for APM doc links Remove `packageInfo` (from ui/metadata package from the legacy platform) and replace with `core.dockLinks` in the `ElasticDocsLink` component. Fixes #56453 Fixes #60945 --- .../app/Home/__snapshots__/Home.test.tsx.snap | 14 ++++++++------ .../components/shared/Links/ElasticDocsLink.tsx | 9 ++++++--- .../ApmPluginContext/MockApmPluginContext.tsx | 5 ++++- .../apm/public/context/ApmPluginContext/index.tsx | 3 +-- .../plugins/apm/public/new-platform/plugin.tsx | 11 ----------- 5 files changed, 19 insertions(+), 23 deletions(-) diff --git a/x-pack/legacy/plugins/apm/public/components/app/Home/__snapshots__/Home.test.tsx.snap b/x-pack/legacy/plugins/apm/public/components/app/Home/__snapshots__/Home.test.tsx.snap index 88d9d7864576f8..2b1f835a14f4a3 100644 --- a/x-pack/legacy/plugins/apm/public/components/app/Home/__snapshots__/Home.test.tsx.snap +++ b/x-pack/legacy/plugins/apm/public/components/app/Home/__snapshots__/Home.test.tsx.snap @@ -15,6 +15,10 @@ exports[`Home component should render services 1`] = ` "chrome": Object { "setBreadcrumbs": [Function], }, + "docLinks": Object { + "DOC_LINK_VERSION": "0", + "ELASTIC_WEBSITE_URL": "https://www.elastic.co/", + }, "http": Object { "basePath": Object { "prepend": [Function], @@ -27,9 +31,6 @@ exports[`Home component should render services 1`] = ` }, }, }, - "packageInfo": Object { - "version": "0", - }, "plugins": Object {}, } } @@ -55,6 +56,10 @@ exports[`Home component should render traces 1`] = ` "chrome": Object { "setBreadcrumbs": [Function], }, + "docLinks": Object { + "DOC_LINK_VERSION": "0", + "ELASTIC_WEBSITE_URL": "https://www.elastic.co/", + }, "http": Object { "basePath": Object { "prepend": [Function], @@ -67,9 +72,6 @@ exports[`Home component should render traces 1`] = ` }, }, }, - "packageInfo": Object { - "version": "0", - }, "plugins": Object {}, } } diff --git a/x-pack/legacy/plugins/apm/public/components/shared/Links/ElasticDocsLink.tsx b/x-pack/legacy/plugins/apm/public/components/shared/Links/ElasticDocsLink.tsx index 9fcab049e224fe..8c2829a515f831 100644 --- a/x-pack/legacy/plugins/apm/public/components/shared/Links/ElasticDocsLink.tsx +++ b/x-pack/legacy/plugins/apm/public/components/shared/Links/ElasticDocsLink.tsx @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import React from 'react'; import { EuiLink, EuiLinkAnchorProps } from '@elastic/eui'; +import React from 'react'; import { useApmPluginContext } from '../../../hooks/useApmPluginContext'; // union type constisting of valid guide sections that we link to @@ -17,8 +17,11 @@ interface Props extends EuiLinkAnchorProps { } export function ElasticDocsLink({ section, path, children, ...rest }: Props) { - const { version } = useApmPluginContext().packageInfo; - const href = `https://www.elastic.co/guide/en${section}/${version}${path}`; + const { docLinks } = useApmPluginContext().core; + const baseUrl = docLinks.ELASTIC_WEBSITE_URL; + const version = docLinks.DOC_LINK_VERSION; + const href = `${baseUrl}guide/en${section}/${version}${path}`; + return typeof children === 'function' ? ( children(href) ) : ( diff --git a/x-pack/legacy/plugins/apm/public/context/ApmPluginContext/MockApmPluginContext.tsx b/x-pack/legacy/plugins/apm/public/context/ApmPluginContext/MockApmPluginContext.tsx index 8775dc98c3e1ad..cc2e3826116280 100644 --- a/x-pack/legacy/plugins/apm/public/context/ApmPluginContext/MockApmPluginContext.tsx +++ b/x-pack/legacy/plugins/apm/public/context/ApmPluginContext/MockApmPluginContext.tsx @@ -12,6 +12,10 @@ const mockCore = { chrome: { setBreadcrumbs: () => {} }, + docLinks: { + DOC_LINK_VERSION: '0', + ELASTIC_WEBSITE_URL: 'https://www.elastic.co/' + }, http: { basePath: { prepend: (path: string) => `/basepath${path}` @@ -36,7 +40,6 @@ const mockConfig: ConfigSchema = { export const mockApmPluginContextValue = { config: mockConfig, core: mockCore, - packageInfo: { version: '0' }, plugins: {} }; diff --git a/x-pack/legacy/plugins/apm/public/context/ApmPluginContext/index.tsx b/x-pack/legacy/plugins/apm/public/context/ApmPluginContext/index.tsx index d8934ba4b01519..acc3886586889d 100644 --- a/x-pack/legacy/plugins/apm/public/context/ApmPluginContext/index.tsx +++ b/x-pack/legacy/plugins/apm/public/context/ApmPluginContext/index.tsx @@ -5,7 +5,7 @@ */ import { createContext } from 'react'; -import { AppMountContext, PackageInfo } from 'kibana/public'; +import { AppMountContext } from 'kibana/public'; import { ApmPluginSetupDeps, ConfigSchema } from '../../new-platform/plugin'; export type AppMountContextBasePath = AppMountContext['core']['http']['basePath']; @@ -13,7 +13,6 @@ export type AppMountContextBasePath = AppMountContext['core']['http']['basePath' export interface ApmPluginContextValue { config: ConfigSchema; core: AppMountContext['core']; - packageInfo: PackageInfo; plugins: ApmPluginSetupDeps; } diff --git a/x-pack/legacy/plugins/apm/public/new-platform/plugin.tsx b/x-pack/legacy/plugins/apm/public/new-platform/plugin.tsx index e30bed1810c1d1..a291678e9a20cf 100644 --- a/x-pack/legacy/plugins/apm/public/new-platform/plugin.tsx +++ b/x-pack/legacy/plugins/apm/public/new-platform/plugin.tsx @@ -9,13 +9,11 @@ import ReactDOM from 'react-dom'; import { Route, Router, Switch } from 'react-router-dom'; import { ApmRoute } from '@elastic/apm-rum-react'; import styled from 'styled-components'; -import { metadata } from 'ui/metadata'; import { i18n } from '@kbn/i18n'; import { AlertType } from '../../../../../plugins/apm/common/alert_types'; import { CoreSetup, CoreStart, - PackageInfo, Plugin, PluginInitializerContext } from '../../../../../../src/core/public'; @@ -124,14 +122,6 @@ export class ApmPlugin // Until then we use a shim to get it from legacy injectedMetadata: const config = getConfigFromInjectedMetadata(); - // Once we're actually an NP plugin we'll get the package info from the - // initializerContext like: - // - // const packageInfo = this.initializerContext.env.packageInfo - // - // Until then we use a shim to get it from legacy metadata: - const packageInfo = metadata as PackageInfo; - // render APM feedback link in global help menu setHelpExtension(core); setReadonlyBadge(core); @@ -140,7 +130,6 @@ export class ApmPlugin const apmPluginContextValue = { config, core, - packageInfo, plugins }; From 71a2f3a0f733c8ea7220892b3bf4c97e7e5d61bf Mon Sep 17 00:00:00 2001 From: Sandra Gonzales Date: Mon, 30 Mar 2020 19:49:19 -0400 Subject: [PATCH 018/118] add fleet tests back (#61888) --- x-pack/test/api_integration/apis/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/test/api_integration/apis/index.js b/x-pack/test/api_integration/apis/index.js index 10c06adea85644..0a87dcb4b5bb0d 100644 --- a/x-pack/test/api_integration/apis/index.js +++ b/x-pack/test/api_integration/apis/index.js @@ -27,6 +27,7 @@ export default function({ loadTestFile }) { loadTestFile(require.resolve('./siem')); loadTestFile(require.resolve('./short_urls')); loadTestFile(require.resolve('./lens')); + loadTestFile(require.resolve('./fleet')); loadTestFile(require.resolve('./ingest')); loadTestFile(require.resolve('./endpoint')); loadTestFile(require.resolve('./ml')); From c65196943df380f61410c4cca70a0d327783d9ee Mon Sep 17 00:00:00 2001 From: Lukas Olson Date: Mon, 30 Mar 2020 18:13:21 -0700 Subject: [PATCH 019/118] Rename async search params (#61641) Co-authored-by: Elastic Machine --- .../plugins/data_enhanced/server/search/es_search_strategy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/data_enhanced/server/search/es_search_strategy.ts b/x-pack/plugins/data_enhanced/server/search/es_search_strategy.ts index 95ffd7b06df214..57d31553382bfb 100644 --- a/x-pack/plugins/data_enhanced/server/search/es_search_strategy.ts +++ b/x-pack/plugins/data_enhanced/server/search/es_search_strategy.ts @@ -63,7 +63,7 @@ async function asyncSearch( const path = encodeURI(request.id ? `_async_search/${request.id}` : `${index}/_async_search`); // Wait up to 1s for the response to return - const query = toSnakeCase({ /* waitForCompletion: '1s', */ ...params }); + const query = toSnakeCase({ waitForCompletionTimeout: '1s', ...params }); const { response: rawResponse, id } = (await caller( 'transport.request', From fcefe7d902cf65e85f4a1bcdb781e89775b17619 Mon Sep 17 00:00:00 2001 From: Patrick Mueller Date: Mon, 30 Mar 2020 23:27:44 -0400 Subject: [PATCH 020/118] [Alerting] add complete alerting/action privs to apm feature (#61159) Based on a [review comment of a related PR[1], the apm feature definition has been changed to supply all the alerting/action privs for both read and all apm privs. [1] https://github.com/elastic/kibana/pull/61113#pullrequestreview-380544712 --- x-pack/legacy/plugins/apm/index.ts | 31 +++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/x-pack/legacy/plugins/apm/index.ts b/x-pack/legacy/plugins/apm/index.ts index d1f7ce325d23ed..d2383acd45ebad 100644 --- a/x-pack/legacy/plugins/apm/index.ts +++ b/x-pack/legacy/plugins/apm/index.ts @@ -105,10 +105,17 @@ export const apm: LegacyPluginInitializer = kibana => { privileges: { all: { app: ['apm', 'kibana'], - api: ['apm', 'apm_write', 'actions-read', 'alerting-read'], + api: [ + 'apm', + 'apm_write', + 'actions-read', + 'actions-all', + 'alerting-read', + 'alerting-all' + ], catalogue: ['apm'], savedObject: { - all: ['action', 'action_task_params'], + all: ['alert', 'action', 'action_task_params'], read: [] }, ui: [ @@ -124,13 +131,27 @@ export const apm: LegacyPluginInitializer = kibana => { }, read: { app: ['apm', 'kibana'], - api: ['apm', 'actions-read', 'alerting-read'], + api: [ + 'apm', + 'actions-read', + 'actions-all', + 'alerting-read', + 'alerting-all' + ], catalogue: ['apm'], savedObject: { - all: ['action', 'action_task_params'], + all: ['alert', 'action', 'action_task_params'], read: [] }, - ui: ['show', 'alerting:show', 'actions:show'] + ui: [ + 'show', + 'alerting:show', + 'actions:show', + 'alerting:save', + 'actions:save', + 'alerting:delete', + 'actions:delete' + ] } } }); From 1687e8ef5ae8bfc6d1df61070671905861fe49c9 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Mon, 30 Mar 2020 21:56:43 -0600 Subject: [PATCH 021/118] [Maps] convert redux store to TS phase 1 (#61704) * [Maps] convert redux store to TS phase 1 * review feedback Co-authored-by: Elastic Machine --- .../maps/public/actions/map_actions.d.ts | 29 ++++----- .../widget_overlay/layer_control/index.js | 2 +- .../layer_toc/toc_entry/index.js | 2 +- .../maps/public/embeddable/map_embeddable.tsx | 12 ++-- .../layers/tooltips/tooltip_property.ts | 8 +-- .../layers/util/is_refresh_only_query.ts | 6 +- .../maps/public/selectors/map_selectors.d.ts | 12 ++-- .../maps/public/selectors/ui_selectors.d.ts | 9 --- .../maps/public/selectors/ui_selectors.js | 13 ---- .../maps/public/selectors/ui_selectors.ts | 19 ++++++ x-pack/plugins/maps/common/constants.ts | 28 ++++---- .../data_request_descriptor_types.d.ts | 19 ++---- .../common/descriptor_types/map_descriptor.ts | 64 +++++++++++++++++-- x-pack/plugins/maps/public/reducers/map.d.ts | 52 +++++++++++++++ .../plugins/maps/public/reducers/store.d.ts | 9 ++- .../maps/public/reducers/{ui.js => ui.ts} | 34 ++++++---- 16 files changed, 215 insertions(+), 103 deletions(-) delete mode 100644 x-pack/legacy/plugins/maps/public/selectors/ui_selectors.d.ts delete mode 100644 x-pack/legacy/plugins/maps/public/selectors/ui_selectors.js create mode 100644 x-pack/legacy/plugins/maps/public/selectors/ui_selectors.ts create mode 100644 x-pack/plugins/maps/public/reducers/map.d.ts rename x-pack/plugins/maps/public/reducers/{ui.js => ui.ts} (76%) diff --git a/x-pack/legacy/plugins/maps/public/actions/map_actions.d.ts b/x-pack/legacy/plugins/maps/public/actions/map_actions.d.ts index c1f5c31eb42106..b4a8ff90c35123 100644 --- a/x-pack/legacy/plugins/maps/public/actions/map_actions.d.ts +++ b/x-pack/legacy/plugins/maps/public/actions/map_actions.d.ts @@ -5,10 +5,14 @@ */ /* eslint-disable @typescript-eslint/consistent-type-definitions */ -import { Filter, Query } from 'src/plugins/data/public'; +import { Filter, Query, TimeRange } from 'src/plugins/data/public'; import { AnyAction } from 'redux'; import { LAYER_TYPE } from '../../common/constants'; import { DataMeta, MapFilters } from '../../common/descriptor_types'; +import { + MapCenterAndZoom, + MapRefreshConfig, +} from '../../../../../plugins/maps/common/descriptor_types'; export type SyncContext = { startLoading(dataId: string, requestToken: symbol, meta: DataMeta): void; @@ -27,31 +31,20 @@ export function updateSourceProp( newLayerType?: LAYER_TYPE ): void; -export interface MapCenter { - lat: number; - lon: number; - zoom: number; -} - -export function setGotoWithCenter(config: MapCenter): AnyAction; +export function setGotoWithCenter(config: MapCenterAndZoom): AnyAction; export function replaceLayerList(layerList: unknown[]): AnyAction; -export interface QueryGroup { +export type QueryGroup = { filters: Filter[]; query?: Query; - timeFilters: unknown; - refresh: unknown; -} + timeFilters?: TimeRange; + refresh?: boolean; +}; export function setQuery(query: QueryGroup): AnyAction; -export interface RefreshConfig { - isPaused: boolean; - interval: number; -} - -export function setRefreshConfig(config: RefreshConfig): AnyAction; +export function setRefreshConfig(config: MapRefreshConfig): AnyAction; export function disableScrollZoom(): AnyAction; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js b/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js index e51e59ec41e18e..04de5f71f5bfc4 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js +++ b/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js @@ -7,7 +7,7 @@ import { connect } from 'react-redux'; import { LayerControl } from './view'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { FLYOUT_STATE } from '../../../../../../../plugins/maps/public/reducers/ui.js'; +import { FLYOUT_STATE } from '../../../../../../../plugins/maps/public/reducers/ui'; import { updateFlyout, setIsLayerTOCOpen } from '../../../actions/ui_actions'; import { setSelectedLayer } from '../../../actions/map_actions'; import { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js b/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js index ececc5a90ab89b..588445d0b49928 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js +++ b/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js @@ -8,7 +8,7 @@ import _ from 'lodash'; import { connect } from 'react-redux'; import { TOCEntry } from './view'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { FLYOUT_STATE } from '../../../../../../../../../plugins/maps/public/reducers/ui.js'; +import { FLYOUT_STATE } from '../../../../../../../../../plugins/maps/public/reducers/ui'; import { updateFlyout, hideTOCDetails, showTOCDetails } from '../../../../../actions/ui_actions'; import { getIsReadOnly, getOpenTOCDetails } from '../../../../../selectors/ui_selectors'; import { diff --git a/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable.tsx b/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable.tsx index 69f55815d16a0e..3c9069c7a836f0 100644 --- a/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable.tsx +++ b/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable.tsx @@ -45,8 +45,8 @@ import { hideLayerControl, hideViewControl, setHiddenLayers, - MapCenter, } from '../actions/map_actions'; +import { MapCenterAndZoom } from '../../../../../plugins/maps/common/descriptor_types'; import { setReadOnly, setIsLayerTOCOpen, setOpenTOCDetails } from '../actions/ui_actions'; import { getIsLayerTOCOpen, getOpenTOCDetails } from '../selectors/ui_selectors'; import { @@ -71,7 +71,6 @@ export interface MapEmbeddableInput extends EmbeddableInput { timeRange?: TimeRange; filters: Filter[]; query?: Query; - refresh?: unknown; refreshConfig: RefreshInterval; isLayerTOCOpen: boolean; openTOCDetails?: string[]; @@ -80,7 +79,7 @@ export interface MapEmbeddableInput extends EmbeddableInput { hideToolbarOverlay?: boolean; hideLayerControl?: boolean; hideViewControl?: boolean; - mapCenter?: MapCenter; + mapCenter?: MapCenterAndZoom; hiddenLayers?: string[]; hideFilterActions?: boolean; } @@ -153,7 +152,12 @@ export class MapEmbeddable extends Embeddable) { + }: { + query?: Query; + timeRange?: TimeRange; + filters: Filter[]; + refresh?: boolean; + }) { this._prevTimeRange = timeRange; this._prevQuery = query; this._prevFilters = filters; diff --git a/x-pack/legacy/plugins/maps/public/layers/tooltips/tooltip_property.ts b/x-pack/legacy/plugins/maps/public/layers/tooltips/tooltip_property.ts index c77af11d0ae24a..46e27bbd770a17 100644 --- a/x-pack/legacy/plugins/maps/public/layers/tooltips/tooltip_property.ts +++ b/x-pack/legacy/plugins/maps/public/layers/tooltips/tooltip_property.ts @@ -6,6 +6,7 @@ import _ from 'lodash'; import { PhraseFilter } from '../../../../../../../src/plugins/data/public'; +import { TooltipFeature } from '../../../../../../plugins/maps/common/descriptor_types'; export interface ITooltipProperty { getPropertyKey(): string; @@ -16,11 +17,6 @@ export interface ITooltipProperty { getESFilters(): Promise; } -export interface MapFeature { - id: number; - layerId: string; -} - export interface LoadFeatureProps { layerId: string; featureId: number; @@ -34,7 +30,7 @@ export interface FeatureGeometry { export interface RenderTooltipContentParams { addFilters(filter: object): void; closeTooltip(): void; - features: MapFeature[]; + features: TooltipFeature[]; isLocked: boolean; getLayerName(layerId: string): Promise; loadFeatureProperties({ layerId, featureId }: LoadFeatureProps): Promise; diff --git a/x-pack/legacy/plugins/maps/public/layers/util/is_refresh_only_query.ts b/x-pack/legacy/plugins/maps/public/layers/util/is_refresh_only_query.ts index a56da4b23aa1e5..3599f18671cedc 100644 --- a/x-pack/legacy/plugins/maps/public/layers/util/is_refresh_only_query.ts +++ b/x-pack/legacy/plugins/maps/public/layers/util/is_refresh_only_query.ts @@ -4,13 +4,13 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Query } from '../../../common/descriptor_types'; +import { MapQuery } from '../../../common/descriptor_types'; // Refresh only query is query where timestamps are different but query is the same. // Triggered by clicking "Refresh" button in QueryBar export function isRefreshOnlyQuery( - prevQuery: Query | undefined, - newQuery: Query | undefined + prevQuery: MapQuery | undefined, + newQuery: MapQuery | undefined ): boolean { if (!prevQuery || !newQuery) { return false; diff --git a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.d.ts b/x-pack/legacy/plugins/maps/public/selectors/map_selectors.d.ts index 237a04027e21bd..8c99e0adcc14fe 100644 --- a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.d.ts +++ b/x-pack/legacy/plugins/maps/public/selectors/map_selectors.d.ts @@ -5,12 +5,14 @@ */ import { AnyAction } from 'redux'; -import { MapCenter } from '../actions/map_actions'; +import { MapCenter } from '../../common/descriptor_types'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { MapStoreState } from '../../../../../plugins/maps/public/reducers/store'; -export function getHiddenLayerIds(state: unknown): string[]; +export function getHiddenLayerIds(state: MapStoreState): string[]; -export function getMapZoom(state: unknown): number; +export function getMapZoom(state: MapStoreState): number; -export function getMapCenter(state: unknown): MapCenter; +export function getMapCenter(state: MapStoreState): MapCenter; -export function getQueryableUniqueIndexPatternIds(state: unknown): string[]; +export function getQueryableUniqueIndexPatternIds(state: MapStoreState): string[]; diff --git a/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.d.ts b/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.d.ts deleted file mode 100644 index 812e2082241bd8..00000000000000 --- a/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.d.ts +++ /dev/null @@ -1,9 +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; - * you may not use this file except in compliance with the Elastic License. - */ - -export function getOpenTOCDetails(state: unknown): string[]; - -export function getIsLayerTOCOpen(state: unknown): boolean; diff --git a/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.js b/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.js deleted file mode 100644 index 912ee083962126..00000000000000 --- a/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.js +++ /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; - * you may not use this file except in compliance with the Elastic License. - */ - -export const getFlyoutDisplay = ({ ui }) => ui.flyoutDisplay; -export const getIsSetViewOpen = ({ ui }) => ui.isSetViewOpen; -export const getIsLayerTOCOpen = ({ ui }) => ui.isLayerTOCOpen; -export const getOpenTOCDetails = ({ ui }) => ui.openTOCDetails; -export const getIsFullScreen = ({ ui }) => ui.isFullScreen; -export const getIsReadOnly = ({ ui }) => ui.isReadOnly; -export const getIndexingStage = ({ ui }) => ui.importIndexingStage; diff --git a/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.ts b/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.ts new file mode 100644 index 00000000000000..fdf2a8ea0e4f37 --- /dev/null +++ b/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.ts @@ -0,0 +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; + * you may not use this file except in compliance with the Elastic License. + */ + +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { MapStoreState } from '../../../../../plugins/maps/public/reducers/store'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { FLYOUT_STATE, INDEXING_STAGE } from '../../../../../plugins/maps/public/reducers/ui'; + +export const getFlyoutDisplay = ({ ui }: MapStoreState): FLYOUT_STATE => ui.flyoutDisplay; +export const getIsSetViewOpen = ({ ui }: MapStoreState): boolean => ui.isSetViewOpen; +export const getIsLayerTOCOpen = ({ ui }: MapStoreState): boolean => ui.isLayerTOCOpen; +export const getOpenTOCDetails = ({ ui }: MapStoreState): string[] => ui.openTOCDetails; +export const getIsFullScreen = ({ ui }: MapStoreState): boolean => ui.isFullScreen; +export const getIsReadOnly = ({ ui }: MapStoreState): boolean => ui.isReadOnly; +export const getIndexingStage = ({ ui }: MapStoreState): INDEXING_STAGE | null => + ui.importIndexingStage; diff --git a/x-pack/plugins/maps/common/constants.ts b/x-pack/plugins/maps/common/constants.ts index 814825483d0dd6..30a3350ad754e6 100644 --- a/x-pack/plugins/maps/common/constants.ts +++ b/x-pack/plugins/maps/common/constants.ts @@ -90,16 +90,16 @@ export const FEATURE_VISIBLE_PROPERTY_NAME = '__kbn_isvisibleduetojoin__'; export const MB_SOURCE_ID_LAYER_ID_PREFIX_DELIMITER = '_'; -export const ES_GEO_FIELD_TYPE = { - GEO_POINT: 'geo_point', - GEO_SHAPE: 'geo_shape', -}; +export enum ES_GEO_FIELD_TYPE { + GEO_POINT = 'geo_point', + GEO_SHAPE = 'geo_shape', +} -export const ES_SPATIAL_RELATIONS = { - INTERSECTS: 'INTERSECTS', - DISJOINT: 'DISJOINT', - WITHIN: 'WITHIN', -}; +export enum ES_SPATIAL_RELATIONS { + INTERSECTS = 'INTERSECTS', + DISJOINT = 'DISJOINT', + WITHIN = 'WITHIN', +} export const GEO_JSON_TYPE = { POINT: 'Point', @@ -120,11 +120,11 @@ export const EMPTY_FEATURE_COLLECTION = { features: [], }; -export const DRAW_TYPE = { - BOUNDS: 'BOUNDS', - DISTANCE: 'DISTANCE', - POLYGON: 'POLYGON', -}; +export enum DRAW_TYPE { + BOUNDS = 'BOUNDS', + DISTANCE = 'DISTANCE', + POLYGON = 'POLYGON', +} export enum AGG_TYPE { AVG = 'avg', diff --git a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.d.ts b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.d.ts index a0102a4249a592..ca0e474491780d 100644 --- a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.d.ts +++ b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.d.ts @@ -5,21 +5,14 @@ */ /* eslint-disable @typescript-eslint/consistent-type-definitions */ -import { Query } from './map_descriptor'; - -type Extent = { - maxLat: number; - maxLon: number; - minLat: number; - minLon: number; -}; +import { MapExtent, MapQuery } from './map_descriptor'; // Global map state passed to every layer. export type MapFilters = { - buffer: Extent; // extent with additional buffer - extent: Extent; // map viewport + buffer: MapExtent; // extent with additional buffer + extent: MapExtent; // map viewport filters: unknown[]; - query: Query; + query: MapQuery; refreshTimerLastTriggeredAt: string; timeFilters: unknown; zoom: number; @@ -29,14 +22,14 @@ export type VectorSourceRequestMeta = MapFilters & { applyGlobalQuery: boolean; fieldNames: string[]; geogridPrecision: number; - sourceQuery: Query; + sourceQuery: MapQuery; sourceMeta: unknown; }; export type VectorStyleRequestMeta = MapFilters & { dynamicStyleFields: string[]; isTimeAware: boolean; - sourceQuery: Query; + sourceQuery: MapQuery; timeFilters: unknown; }; diff --git a/x-pack/plugins/maps/common/descriptor_types/map_descriptor.ts b/x-pack/plugins/maps/common/descriptor_types/map_descriptor.ts index 570398e37c5d45..b2a4c6b85a8563 100644 --- a/x-pack/plugins/maps/common/descriptor_types/map_descriptor.ts +++ b/x-pack/plugins/maps/common/descriptor_types/map_descriptor.ts @@ -3,11 +3,67 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ - /* eslint-disable @typescript-eslint/consistent-type-definitions */ -export type Query = { - language: string; - query: string; +import { Query } from '../../../../../src/plugins/data/public'; +import { DRAW_TYPE, ES_GEO_FIELD_TYPE, ES_SPATIAL_RELATIONS } from '../constants'; + +export type MapExtent = { + maxLat: number; + maxLon: number; + minLat: number; + minLon: number; +}; + +export type MapQuery = Query & { queryLastTriggeredAt: string; }; + +export type MapRefreshConfig = { + isPaused: boolean; + interval: number; +}; + +export type MapCenter = { + lat: number; + lon: number; +}; + +export type MapCenterAndZoom = MapCenter & { + zoom: number; +}; + +// TODO replace with map_descriptors.MapExtent. Both define the same thing but with different casing +type MapBounds = { + min_lon: number; + max_lon: number; + min_lat: number; + max_lat: number; +}; + +export type Goto = { + bounds?: MapBounds; + center?: MapCenterAndZoom; +}; + +export type TooltipFeature = { + id: number; + layerId: string; +}; + +export type TooltipState = { + features: TooltipFeature[]; + id: string; + isLocked: boolean; + location: number[]; // 0 index is lon, 1 index is lat +}; + +export type DrawState = { + drawType: DRAW_TYPE; + filterLabel?: string; // point radius filter alias + geoFieldName?: string; + geoFieldType?: ES_GEO_FIELD_TYPE; + geometryLabel?: string; + indexPatternId?: string; + relation?: ES_SPATIAL_RELATIONS; +}; diff --git a/x-pack/plugins/maps/public/reducers/map.d.ts b/x-pack/plugins/maps/public/reducers/map.d.ts new file mode 100644 index 00000000000000..30271d4d5fa8b4 --- /dev/null +++ b/x-pack/plugins/maps/public/reducers/map.d.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ + +import { + DrawState, + Goto, + LayerDescriptor, + MapCenter, + MapExtent, + MapQuery, + MapRefreshConfig, + TooltipState, +} from '../../common/descriptor_types'; +import { Filter, TimeRange } from '../../../../../src/plugins/data/public'; + +export type MapContext = { + zoom?: number; + center?: MapCenter; + scrollZoom: boolean; + extent?: MapExtent; + mouseCoordinates?: { + lat: number; + lon: number; + }; + timeFilters?: TimeRange; + query?: MapQuery; + filters: Filter[]; + refreshConfig?: MapRefreshConfig; + refreshTimerLastTriggeredAt?: string; + drawState?: DrawState; + disableInteractive: boolean; + disableTooltipControl: boolean; + hideToolbarOverlay: boolean; + hideLayerControl: boolean; + hideViewControl: boolean; +}; + +export type MapState = { + ready: boolean; + mapInitError?: string | null; + goto?: Goto | null; + openTooltips: TooltipState[]; + mapState: MapContext; + selectedLayerId: string | null; + __transientLayerId: string | null; + layerList: LayerDescriptor[]; + waitingForMapReadyLayerList: LayerDescriptor[]; +}; diff --git a/x-pack/plugins/maps/public/reducers/store.d.ts b/x-pack/plugins/maps/public/reducers/store.d.ts index ebed396e203997..72713f943d6a64 100644 --- a/x-pack/plugins/maps/public/reducers/store.d.ts +++ b/x-pack/plugins/maps/public/reducers/store.d.ts @@ -5,7 +5,14 @@ */ import { Store } from 'redux'; +import { MapState } from './map'; +import { MapUiState } from './ui'; -export type MapStore = Store; +export interface MapStoreState { + ui: MapUiState; + map: MapState; +} + +export type MapStore = Store; export function createMapStore(): MapStore; diff --git a/x-pack/plugins/maps/public/reducers/ui.js b/x-pack/plugins/maps/public/reducers/ui.ts similarity index 76% rename from x-pack/plugins/maps/public/reducers/ui.js rename to x-pack/plugins/maps/public/reducers/ui.ts index 287e1f8dd3ddad..7429545ec0e46e 100644 --- a/x-pack/plugins/maps/public/reducers/ui.js +++ b/x-pack/plugins/maps/public/reducers/ui.ts @@ -3,6 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ import { UPDATE_FLYOUT, @@ -15,19 +16,30 @@ import { SHOW_TOC_DETAILS, HIDE_TOC_DETAILS, UPDATE_INDEXING_STAGE, + // @ts-ignore } from '../actions/ui_actions'; -export const FLYOUT_STATE = { - NONE: 'NONE', - LAYER_PANEL: 'LAYER_PANEL', - ADD_LAYER_WIZARD: 'ADD_LAYER_WIZARD', -}; +export enum FLYOUT_STATE { + NONE = 'NONE', + LAYER_PANEL = 'LAYER_PANEL', + ADD_LAYER_WIZARD = 'ADD_LAYER_WIZARD', +} + +export enum INDEXING_STAGE { + READY = 'READY', + TRIGGERED = 'TRIGGERED', + SUCCESS = 'SUCCESS', + ERROR = 'ERROR', +} -export const INDEXING_STAGE = { - READY: 'READY', - TRIGGERED: 'TRIGGERED', - SUCCESS: 'SUCCESS', - ERROR: 'ERROR', +export type MapUiState = { + flyoutDisplay: FLYOUT_STATE; + isFullScreen: boolean; + isReadOnly: boolean; + isLayerTOCOpen: boolean; + isSetViewOpen: boolean; + openTOCDetails: string[]; + importIndexingStage: INDEXING_STAGE | null; }; export const DEFAULT_IS_LAYER_TOC_OPEN = true; @@ -45,7 +57,7 @@ const INITIAL_STATE = { }; // Reducer -export function ui(state = INITIAL_STATE, action) { +export function ui(state: MapUiState = INITIAL_STATE, action: any) { switch (action.type) { case UPDATE_FLYOUT: return { ...state, flyoutDisplay: action.display }; From 4083d6682f01a008331483bfde6a08f5f1ab1d6b Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau <189600+XavierM@users.noreply.github.com> Date: Tue, 31 Mar 2020 00:20:11 -0400 Subject: [PATCH 022/118] [SIEM] Cases clean up Phase II (#61750) * allow case to work without security * disable configure button + add call out if license does not match and if kibana config does not allow if * add skeleton for crud in case * fix link to timeline + disable action on case on read only + allow read only access to our saved object in siem + manage no x-pack.security + show msg when read-only + fix reporters bug * add actions required in plugins * review I * review II * review III * review IV * fix types * review V --- .../editable_title.test.tsx.snap | 1 + .../components/header_page/editable_title.tsx | 9 +- .../use_insert_timeline.tsx | 2 +- .../siem/public/containers/case/api.ts | 2 +- .../siem/public/containers/case/types.ts | 2 +- .../containers/case/use_get_reporters.tsx | 6 +- .../case/use_post_push_to_service.tsx | 8 +- .../plugins/siem/public/lib/kibana/hooks.ts | 47 ++++- .../plugins/siem/public/pages/case/case.tsx | 36 +++- .../siem/public/pages/case/case_details.tsx | 28 ++- .../case/components/add_comment/index.tsx | 5 +- .../case/components/all_cases/columns.tsx | 4 +- .../case/components/all_cases/index.test.tsx | 16 +- .../pages/case/components/all_cases/index.tsx | 72 +++++--- .../components/all_cases/table_filters.tsx | 2 +- .../pages/case/components/callout/helpers.tsx | 12 ++ .../index.tsx | 18 +- .../translations.ts | 14 +- .../case/components/case_status/index.tsx | 5 +- .../components/case_view/__mock__/index.tsx | 1 + .../case/components/case_view/actions.tsx | 10 +- .../case/components/case_view/index.test.tsx | 4 +- .../pages/case/components/case_view/index.tsx | 24 ++- .../case/components/case_view/translations.ts | 53 ------ .../components/configure_cases/button.tsx | 49 +++++ .../components/configure_cases/connectors.tsx | 4 +- .../case/components/configure_cases/index.tsx | 12 +- .../components/property_actions/index.tsx | 5 +- .../pages/case/components/tag_list/index.tsx | 168 ++++++++++-------- .../use_push_to_service/helpers.tsx | 59 ++++++ .../index.tsx} | 72 +++----- .../use_push_to_service/translations.ts | 67 +++++++ .../components/user_action_tree/index.tsx | 25 ++- .../user_action_tree/user_action_item.tsx | 3 + .../user_action_tree/user_action_title.tsx | 6 +- .../pages/case/components/user_list/index.tsx | 11 +- .../public/pages/case/configure_cases.tsx | 19 +- .../siem/public/pages/case/create_case.tsx | 15 +- .../case/saved_object_no_permissions.tsx | 29 +++ .../siem/public/pages/case/translations.ts | 22 +++ x-pack/legacy/plugins/siem/server/plugin.ts | 8 + x-pack/plugins/case/common/api/user.ts | 2 +- x-pack/plugins/case/kibana.json | 2 +- x-pack/plugins/case/server/plugin.ts | 2 +- .../api/cases/comments/post_comment.test.ts | 24 ++- .../server/routes/api/cases/post_case.test.ts | 30 +++- .../case/server/routes/api/cases/push_case.ts | 23 ++- .../plugins/case/server/routes/api/utils.ts | 12 +- .../server/scripts/mock/case/post_case.json | 1 - .../scripts/mock/case/post_case_v2.json | 1 - x-pack/plugins/case/server/services/index.ts | 31 +++- .../server/services/user_actions/helpers.ts | 2 +- 52 files changed, 755 insertions(+), 330 deletions(-) create mode 100644 x-pack/legacy/plugins/siem/public/pages/case/components/callout/helpers.tsx rename x-pack/legacy/plugins/siem/public/pages/case/components/{errors_push_service_callout => callout}/index.tsx (59%) rename x-pack/legacy/plugins/siem/public/pages/case/components/{errors_push_service_callout => callout}/translations.ts (50%) create mode 100644 x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/button.tsx create mode 100644 x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/helpers.tsx rename x-pack/legacy/plugins/siem/public/pages/case/components/{case_view/push_to_service.tsx => use_push_to_service/index.tsx} (71%) create mode 100644 x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/translations.ts create mode 100644 x-pack/legacy/plugins/siem/public/pages/case/saved_object_no_permissions.tsx diff --git a/x-pack/legacy/plugins/siem/public/components/header_page/__snapshots__/editable_title.test.tsx.snap b/x-pack/legacy/plugins/siem/public/components/header_page/__snapshots__/editable_title.test.tsx.snap index 24b1756aade2e8..c8d4b6ec3b4c8d 100644 --- a/x-pack/legacy/plugins/siem/public/components/header_page/__snapshots__/editable_title.test.tsx.snap +++ b/x-pack/legacy/plugins/siem/public/components/header_page/__snapshots__/editable_title.test.tsx.snap @@ -19,6 +19,7 @@ exports[`EditableTitle it renders 1`] = ` aria-label="You can edit Test title by clicking" data-test-subj="editable-title-edit-icon" iconType="pencil" + isDisabled={false} onClick={[Function]} /> diff --git a/x-pack/legacy/plugins/siem/public/components/header_page/editable_title.tsx b/x-pack/legacy/plugins/siem/public/components/header_page/editable_title.tsx index 29cc1579f9bcc3..165be003847794 100644 --- a/x-pack/legacy/plugins/siem/public/components/header_page/editable_title.tsx +++ b/x-pack/legacy/plugins/siem/public/components/header_page/editable_title.tsx @@ -34,12 +34,18 @@ const MySpinner = styled(EuiLoadingSpinner)` `; interface Props { + disabled?: boolean; isLoading: boolean; title: string | React.ReactNode; onSubmit: (title: string) => void; } -const EditableTitleComponent: React.FC = ({ onSubmit, isLoading, title }) => { +const EditableTitleComponent: React.FC = ({ + disabled = false, + onSubmit, + isLoading, + title, +}) => { const [editMode, setEditMode] = useState(false); const [changedTitle, onTitleChange] = useState(typeof title === 'string' ? title : ''); @@ -104,6 +110,7 @@ const EditableTitleComponent: React.FC = ({ onSubmit, isLoading, title }) {isLoading && } {!isLoading && ( (form: FormHook, fieldNa }); const handleOnTimelineChange = useCallback( (title: string, id: string | null) => { - const builtLink = `${basePath}/app/siem#/timelines?timeline=(id:${id},isOpen:!t)`; + const builtLink = `${basePath}/app/siem#/timelines?timeline=(id:'${id}',isOpen:!t)`; const currentValue = form.getFormData()[fieldName]; const newValue: string = [ currentValue.slice(0, cursorPosition.start), diff --git a/x-pack/legacy/plugins/siem/public/containers/case/api.ts b/x-pack/legacy/plugins/siem/public/containers/case/api.ts index 7d5ae53b78ff80..bd243d0ba5f64c 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/api.ts +++ b/x-pack/legacy/plugins/siem/public/containers/case/api.ts @@ -119,7 +119,7 @@ export const getCases = async ({ signal, }: FetchCasesProps): Promise => { const query = { - reporters: filterOptions.reporters.map(r => r.username), + reporters: filterOptions.reporters.map(r => r.username ?? '').filter(r => r !== ''), tags: filterOptions.tags, ...(filterOptions.status !== '' ? { status: filterOptions.status } : {}), ...(filterOptions.search.length > 0 ? { search: filterOptions.search } : {}), diff --git a/x-pack/legacy/plugins/siem/public/containers/case/types.ts b/x-pack/legacy/plugins/siem/public/containers/case/types.ts index cb3df78257dc17..d2a58e9eeeff4a 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/types.ts +++ b/x-pack/legacy/plugins/siem/public/containers/case/types.ts @@ -90,7 +90,7 @@ export enum SortFieldCase { export interface ElasticUser { readonly email?: string | null; readonly fullName?: string | null; - readonly username: string; + readonly username?: string | null; } export interface FetchCasesProps extends ApiProps { diff --git a/x-pack/legacy/plugins/siem/public/containers/case/use_get_reporters.tsx b/x-pack/legacy/plugins/siem/public/containers/case/use_get_reporters.tsx index 6974000414a067..2478172a3394b8 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/use_get_reporters.tsx +++ b/x-pack/legacy/plugins/siem/public/containers/case/use_get_reporters.tsx @@ -6,6 +6,7 @@ import { useCallback, useEffect, useState } from 'react'; +import { isEmpty } from 'lodash/fp'; import { User } from '../../../../../../plugins/case/common/api'; import { errorToToaster, useStateToaster } from '../../components/toasters'; import { getReporters } from './api'; @@ -44,9 +45,12 @@ export const useGetReporters = (): UseGetReporters => { }); try { const response = await getReporters(abortCtrl.signal); + const myReporters = response + .map(r => (r.full_name == null || isEmpty(r.full_name) ? r.username ?? '' : r.full_name)) + .filter(u => !isEmpty(u)); if (!didCancel) { setReporterState({ - reporters: response.map(r => r.full_name ?? r.username ?? 'N/A'), + reporters: myReporters, respReporters: response, isLoading: false, isError: false, diff --git a/x-pack/legacy/plugins/siem/public/containers/case/use_post_push_to_service.tsx b/x-pack/legacy/plugins/siem/public/containers/case/use_post_push_to_service.tsx index 03e10249317eea..d9a32f26f7fe77 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/use_post_push_to_service.tsx +++ b/x-pack/legacy/plugins/siem/public/containers/case/use_post_push_to_service.tsx @@ -148,7 +148,7 @@ const formatServiceRequestData = (myCase: Case): ServiceConnectorCaseParams => { createdAt, createdBy: { fullName: createdBy.fullName ?? null, - username: createdBy?.username, + username: createdBy?.username ?? '', }, comments: comments .filter(c => { @@ -168,14 +168,14 @@ const formatServiceRequestData = (myCase: Case): ServiceConnectorCaseParams => { createdAt: c.createdAt, createdBy: { fullName: c.createdBy.fullName ?? null, - username: c.createdBy.username, + username: c.createdBy.username ?? '', }, updatedAt: c.updatedAt, updatedBy: c.updatedBy != null ? { fullName: c.updatedBy.fullName ?? null, - username: c.updatedBy.username, + username: c.updatedBy.username ?? '', } : null, })), @@ -187,7 +187,7 @@ const formatServiceRequestData = (myCase: Case): ServiceConnectorCaseParams => { updatedBy != null ? { fullName: updatedBy.fullName ?? null, - username: updatedBy.username, + username: updatedBy.username ?? '', } : null, }; diff --git a/x-pack/legacy/plugins/siem/public/lib/kibana/hooks.ts b/x-pack/legacy/plugins/siem/public/lib/kibana/hooks.ts index 95ecee7b12bb11..775a7d7c0acca2 100644 --- a/x-pack/legacy/plugins/siem/public/lib/kibana/hooks.ts +++ b/x-pack/legacy/plugins/siem/public/lib/kibana/hooks.ts @@ -53,9 +53,24 @@ export const useCurrentUser = (): AuthenticatedElasticUser | null => { let didCancel = false; const fetchData = async () => { try { - const response = await security.authc.getCurrentUser(); - if (!didCancel) { - setUser(convertToCamelCase(response)); + if (security != null) { + const response = await security.authc.getCurrentUser(); + if (!didCancel) { + setUser(convertToCamelCase(response)); + } + } else { + setUser({ + username: i18n.translate('xpack.siem.getCurrentUser.unknownUser', { + defaultMessage: 'Unknown', + }), + email: '', + fullName: '', + roles: [], + enabled: false, + authenticationRealm: { name: '', type: '' }, + lookupRealm: { name: '', type: '' }, + authenticationProvider: '', + }); } } catch (error) { if (!didCancel) { @@ -81,3 +96,29 @@ export const useCurrentUser = (): AuthenticatedElasticUser | null => { }, []); return user; }; + +export interface UseGetUserSavedObjectPermissions { + crud: boolean; + read: boolean; +} + +export const useGetUserSavedObjectPermissions = () => { + const [ + savedObjectsPermissions, + setSavedObjectsPermissions, + ] = useState(null); + const uiCapabilities = useKibana().services.application.capabilities; + + useEffect(() => { + const capabilitiesCanUserCRUD: boolean = + typeof uiCapabilities.siem.crud === 'boolean' ? uiCapabilities.siem.crud : false; + const capabilitiesCanUserRead: boolean = + typeof uiCapabilities.siem.show === 'boolean' ? uiCapabilities.siem.show : false; + setSavedObjectsPermissions({ + crud: capabilitiesCanUserCRUD, + read: capabilitiesCanUserRead, + }); + }, [uiCapabilities]); + + return savedObjectsPermissions; +}; diff --git a/x-pack/legacy/plugins/siem/public/pages/case/case.tsx b/x-pack/legacy/plugins/siem/public/pages/case/case.tsx index 9255dee461940c..2ae35796387b82 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/case.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/case.tsx @@ -7,16 +7,34 @@ import React from 'react'; import { WrapperPage } from '../../components/wrapper_page'; -import { AllCases } from './components/all_cases'; +import { useGetUserSavedObjectPermissions } from '../../lib/kibana'; import { SpyRoute } from '../../utils/route/spy_routes'; +import { AllCases } from './components/all_cases'; + +import { getSavedObjectReadOnly, CaseCallOut } from './components/callout'; +import { CaseSavedObjectNoPermissions } from './saved_object_no_permissions'; + +const infoReadSavedObject = getSavedObjectReadOnly(); + +export const CasesPage = React.memo(() => { + const userPermissions = useGetUserSavedObjectPermissions(); -export const CasesPage = React.memo(() => ( - <> - - - - - -)); + return userPermissions == null || userPermissions?.read ? ( + <> + + {userPermissions != null && !userPermissions?.crud && userPermissions?.read && ( + + )} + + + + + ) : ( + + ); +}); CasesPage.displayName = 'CasesPage'; diff --git a/x-pack/legacy/plugins/siem/public/pages/case/case_details.tsx b/x-pack/legacy/plugins/siem/public/pages/case/case_details.tsx index 890df91c8560eb..cbc7bbc62fbf90 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/case_details.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/case_details.tsx @@ -5,22 +5,36 @@ */ import React from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams, Redirect } from 'react-router-dom'; -import { CaseView } from './components/case_view'; +import { useGetUrlSearch } from '../../components/navigation/use_get_url_search'; +import { useGetUserSavedObjectPermissions } from '../../lib/kibana'; import { SpyRoute } from '../../utils/route/spy_routes'; +import { getCaseUrl } from '../../components/link_to'; +import { navTabs } from '../home/home_navigations'; +import { CaseView } from './components/case_view'; +import { getSavedObjectReadOnly, CaseCallOut } from './components/callout'; + +const infoReadSavedObject = getSavedObjectReadOnly(); export const CaseDetailsPage = React.memo(() => { + const userPermissions = useGetUserSavedObjectPermissions(); const { detailName: caseId } = useParams(); - if (!caseId) { - return null; + const search = useGetUrlSearch(navTabs.case); + + if (userPermissions != null && !userPermissions.read) { + return ; } - return ( + + return caseId != null ? ( <> - + {userPermissions != null && !userPermissions?.crud && userPermissions?.read && ( + + )} + - ); + ) : null; }); CaseDetailsPage.displayName = 'CaseDetailsPage'; diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/add_comment/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/add_comment/index.tsx index 46a777984c6e04..ecc57c50e28ebe 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/add_comment/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/add_comment/index.tsx @@ -31,6 +31,7 @@ const initialCommentValue: CommentRequest = { interface AddCommentProps { caseId: string; + disabled?: boolean; insertQuote: string | null; onCommentSaving?: () => void; onCommentPosted: (newCase: Case) => void; @@ -38,7 +39,7 @@ interface AddCommentProps { } export const AddComment = React.memo( - ({ caseId, insertQuote, showLoading = true, onCommentPosted, onCommentSaving }) => { + ({ caseId, disabled, insertQuote, showLoading = true, onCommentPosted, onCommentSaving }) => { const { isLoading, postComment } = usePostComment(caseId); const { form } = useForm({ defaultValue: initialCommentValue, @@ -87,7 +88,7 @@ export const AddComment = React.memo( bottomRightContent: ( - {createdBy.fullName ?? createdBy.username ?? 'N/A'} + {createdBy.fullName ?? createdBy.username ?? ''} ); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.test.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.test.tsx index 5f61ccf68fc86b..a6da45a8c5bb14 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.test.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.test.tsx @@ -87,7 +87,7 @@ describe('AllCases', () => { it('should render AllCases', () => { const wrapper = mount( - + ); expect( @@ -132,7 +132,7 @@ describe('AllCases', () => { it('should tableHeaderSortButton AllCases', () => { const wrapper = mount( - + ); wrapper @@ -149,7 +149,7 @@ describe('AllCases', () => { it('closes case when row action icon clicked', () => { const wrapper = mount( - + ); wrapper @@ -182,7 +182,7 @@ describe('AllCases', () => { const wrapper = mount( - + ); wrapper @@ -213,7 +213,7 @@ describe('AllCases', () => { const wrapper = mount( - + ); wrapper @@ -238,7 +238,7 @@ describe('AllCases', () => { const wrapper = mount( - + ); wrapper @@ -259,7 +259,7 @@ describe('AllCases', () => { mount( - + ); expect(refetchCases).toBeCalled(); @@ -274,7 +274,7 @@ describe('AllCases', () => { mount( - + ); expect(refetchCases).toBeCalled(); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.tsx index dcfa1712c6ef9c..161910bb5498a4 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/index.tsx @@ -17,6 +17,7 @@ import { EuiTableSortingType, } from '@elastic/eui'; import { EuiTableSelectionType } from '@elastic/eui/src/components/basic_table/table_types'; +import { isEmpty } from 'lodash/fp'; import styled, { css } from 'styled-components'; import * as i18n from './translations'; @@ -35,7 +36,7 @@ import { UtilityBarSection, UtilityBarText, } from '../../../../components/utility_bar'; -import { getConfigureCasesUrl, getCreateCaseUrl } from '../../../../components/link_to'; +import { getCreateCaseUrl } from '../../../../components/link_to'; import { getBulkItems } from '../bulk_actions'; import { CaseHeaderPage } from '../case_header_page'; import { ConfirmDeleteCaseModal } from '../confirm_delete_case'; @@ -45,6 +46,11 @@ import { navTabs } from '../../../home/home_navigations'; import { getActions } from './actions'; import { CasesTableFilters } from './table_filters'; import { useUpdateCases } from '../../../../containers/case/use_bulk_update_case'; +import { useGetActionLicense } from '../../../../containers/case/use_get_action_license'; +import { getActionLicenseError } from '../use_push_to_service/helpers'; +import { CaseCallOut } from '../callout'; +import { ConfigureCaseButton } from '../configure_cases/button'; +import { ERROR_PUSH_SERVICE_CALLOUT_TITLE } from '../use_push_to_service/translations'; const Div = styled.div` margin-top: ${({ theme }) => theme.eui.paddingSizes.m}; @@ -75,9 +81,13 @@ const getSortField = (field: string): SortFieldCase => { } return SortFieldCase.createdAt; }; -export const AllCases = React.memo(() => { - const urlSearch = useGetUrlSearch(navTabs.case); +interface AllCasesProps { + userCanCrud: boolean; +} +export const AllCases = React.memo(({ userCanCrud }) => { + const urlSearch = useGetUrlSearch(navTabs.case); + const { actionLicense } = useGetActionLicense(); const { countClosedCases, countOpenCases, @@ -217,6 +227,8 @@ export const AllCases = React.memo(() => { [filterOptions.status, toggleDeleteModal, handleDispatchUpdate] ); + const actionsErrors = useMemo(() => getActionLicenseError(actionLicense), [actionLicense]); + const tableOnChangeCallback = useCallback( ({ page, sort }: EuiBasicTableOnChange) => { let newQueryParams = queryParams; @@ -251,10 +263,10 @@ export const AllCases = React.memo(() => { [filterOptions, queryParams] ); - const memoizedGetCasesColumns = useMemo(() => getCasesColumns(actions, filterOptions.status), [ - actions, - filterOptions.status, - ]); + const memoizedGetCasesColumns = useMemo( + () => getCasesColumns(userCanCrud ? actions : [], filterOptions.status), + [actions, filterOptions.status, userCanCrud] + ); const memoizedPagination = useMemo( () => ({ pageIndex: queryParams.page - 1, @@ -277,8 +289,12 @@ export const AllCases = React.memo(() => { [loading] ); const isDataEmpty = useMemo(() => data.total === 0, [data]); + return ( <> + {!isEmpty(actionsErrors) && ( + + )} @@ -296,12 +312,22 @@ export const AllCases = React.memo(() => { /> - - {i18n.CONFIGURE_CASES_BUTTON} - + } + titleTooltip={!isEmpty(actionsErrors) ? actionsErrors[0].title : ''} + urlSearch={urlSearch} + /> - + {i18n.CREATE_TITLE} @@ -339,15 +365,16 @@ export const AllCases = React.memo(() => { {i18n.SHOWING_SELECTED_CASES(selectedCases.length)} - - {i18n.BULK_ACTIONS} - - + {userCanCrud && ( + + {i18n.BULK_ACTIONS} + + )} {i18n.REFRESH} @@ -357,7 +384,7 @@ export const AllCases = React.memo(() => { { body={i18n.NO_CASES_BODY} actions={ { } onChange={tableOnChangeCallback} pagination={memoizedPagination} - selection={euiBasicTableSelectionProps} + selection={userCanCrud ? euiBasicTableSelectionProps : {}} sorting={sorting} />
diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/table_filters.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/table_filters.tsx index a71ad1c45a9801..a344dd78910106 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/table_filters.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/table_filters.tsx @@ -43,7 +43,7 @@ const CasesTableFiltersComponent = ({ initial = defaultInitial, }: CasesTableFiltersProps) => { const [selectedReporters, setselectedReporters] = useState( - initial.reporters.map(r => r.full_name ?? r.username) + initial.reporters.map(r => r.full_name ?? r.username ?? '') ); const [search, setSearch] = useState(initial.search); const [selectedTags, setSelectedTags] = useState(initial.tags); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/callout/helpers.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/callout/helpers.tsx new file mode 100644 index 00000000000000..929e8640dceb6b --- /dev/null +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/callout/helpers.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import * as i18n from './translations'; + +export const getSavedObjectReadOnly = () => ({ + title: i18n.READ_ONLY_SAVED_OBJECT_TITLE, + description: i18n.READ_ONLY_SAVED_OBJECT_MSG, +}); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/errors_push_service_callout/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/callout/index.tsx similarity index 59% rename from x-pack/legacy/plugins/siem/public/pages/case/components/errors_push_service_callout/index.tsx rename to x-pack/legacy/plugins/siem/public/pages/case/components/callout/index.tsx index 15b50e4b4cd8da..30a95db2d82a53 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/errors_push_service_callout/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/callout/index.tsx @@ -5,22 +5,28 @@ */ import { EuiCallOut, EuiButton, EuiDescriptionList, EuiSpacer } from '@elastic/eui'; +import { isEmpty } from 'lodash/fp'; import React, { memo, useCallback, useState } from 'react'; import * as i18n from './translations'; -interface ErrorsPushServiceCallOut { - errors: Array<{ title: string; description: JSX.Element }>; +export * from './helpers'; + +interface CaseCallOutProps { + title: string; + message?: string; + messages?: Array<{ title: string; description: JSX.Element }>; } -const ErrorsPushServiceCallOutComponent = ({ errors }: ErrorsPushServiceCallOut) => { +const CaseCallOutComponent = ({ title, message, messages }: CaseCallOutProps) => { const [showCallOut, setShowCallOut] = useState(true); const handleCallOut = useCallback(() => setShowCallOut(false), [setShowCallOut]); return showCallOut ? ( <> - - + + {!isEmpty(messages) && } + {!isEmpty(message) &&

{message}

} {i18n.DISMISS_CALLOUT} @@ -30,4 +36,4 @@ const ErrorsPushServiceCallOutComponent = ({ errors }: ErrorsPushServiceCallOut) ) : null; }; -export const ErrorsPushServiceCallOut = memo(ErrorsPushServiceCallOutComponent); +export const CaseCallOut = memo(CaseCallOutComponent); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/errors_push_service_callout/translations.ts b/x-pack/legacy/plugins/siem/public/pages/case/components/callout/translations.ts similarity index 50% rename from x-pack/legacy/plugins/siem/public/pages/case/components/errors_push_service_callout/translations.ts rename to x-pack/legacy/plugins/siem/public/pages/case/components/callout/translations.ts index 57712e720f6d0a..f70225b8411621 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/errors_push_service_callout/translations.ts +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/callout/translations.ts @@ -6,10 +6,18 @@ import { i18n } from '@kbn/i18n'; -export const ERROR_PUSH_SERVICE_CALLOUT_TITLE = i18n.translate( - 'xpack.siem.case.errorsPushServiceCallOutTitle', +export const READ_ONLY_SAVED_OBJECT_TITLE = i18n.translate( + 'xpack.siem.case.readOnlySavedObjectTitle', { - defaultMessage: 'To send cases to external systems, you need to:', + defaultMessage: 'You have read-only feature privileges', + } +); + +export const READ_ONLY_SAVED_OBJECT_MSG = i18n.translate( + 'xpack.siem.case.readOnlySavedObjectDescription', + { + defaultMessage: + 'You are only allowed to view cases. If you need to open and update cases, contact your Kibana administrator', } ); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/case_status/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/case_status/index.tsx index 50379878453269..2b16dfa150d61b 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/case_status/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/case_status/index.tsx @@ -35,6 +35,7 @@ interface CaseStatusProps { badgeColor: string; buttonLabel: string; caseData: Case; + disabled?: boolean; icon: string; isLoading: boolean; isSelected: boolean; @@ -49,6 +50,7 @@ const CaseStatusComp: React.FC = ({ badgeColor, buttonLabel, caseData, + disabled = false, icon, isLoading, isSelected, @@ -89,6 +91,7 @@ const CaseStatusComp: React.FC = ({ = ({ /> - + diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/__mock__/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/__mock__/index.tsx index c4f1888df39e91..0e57326707e97b 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/__mock__/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/__mock__/index.tsx @@ -12,6 +12,7 @@ const fetchCase = jest.fn(); export const caseProps: CaseProps = { caseId: '3c4ddcc0-4e99-11ea-9290-35d05cb55c15', + userCanCrud: true, caseData: { closedAt: null, closedBy: null, diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.tsx index 04b79967aa36e5..0b08b866df964d 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/actions.tsx @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ +import { isEmpty } from 'lodash/fp'; import React, { useMemo } from 'react'; - import { Redirect } from 'react-router-dom'; import * as i18n from './translations'; import { useDeleteCases } from '../../../../containers/case/use_delete_cases'; @@ -16,9 +16,10 @@ import { Case } from '../../../../containers/case/types'; interface CaseViewActions { caseData: Case; + disabled?: boolean; } -const CaseViewActionsComponent: React.FC = ({ caseData }) => { +const CaseViewActionsComponent: React.FC = ({ caseData, disabled = false }) => { // Delete case const { handleToggleModal, @@ -43,11 +44,12 @@ const CaseViewActionsComponent: React.FC = ({ caseData }) => { const propertyActions = useMemo( () => [ { + disabled, iconType: 'trash', label: i18n.DELETE_CASE, onClick: handleToggleModal, }, - ...(caseData.externalService?.externalUrl !== null + ...(caseData.externalService != null && !isEmpty(caseData.externalService?.externalUrl) ? [ { iconType: 'popout', @@ -57,7 +59,7 @@ const CaseViewActionsComponent: React.FC = ({ caseData }) => { ] : []), ], - [handleToggleModal, caseData] + [disabled, handleToggleModal, caseData] ); if (isDeleted) { diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/index.test.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/index.test.tsx index 92fc43eff53e98..3f5b3a31271777 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/index.test.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/index.test.tsx @@ -16,10 +16,10 @@ import { TestProviders } from '../../../../mock'; import { useUpdateCase } from '../../../../containers/case/use_update_case'; import { useGetCaseUserActions } from '../../../../containers/case/use_get_case_user_actions'; import { wait } from '../../../../lib/helpers'; -import { usePushToService } from './push_to_service'; +import { usePushToService } from '../use_push_to_service'; jest.mock('../../../../containers/case/use_update_case'); jest.mock('../../../../containers/case/use_get_case_user_actions'); -jest.mock('./push_to_service'); +jest.mock('../use_push_to_service'); const useUpdateCaseMock = useUpdateCase as jest.Mock; const useGetCaseUserActionsMock = useGetCaseUserActions as jest.Mock; const usePushToServiceMock = usePushToService as jest.Mock; diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/index.tsx index 07834c3fb0678d..947da51365d66b 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/index.tsx @@ -34,10 +34,11 @@ import { CaseStatus } from '../case_status'; import { navTabs } from '../../../home/home_navigations'; import { SpyRoute } from '../../../../utils/route/spy_routes'; import { useGetCaseUserActions } from '../../../../containers/case/use_get_case_user_actions'; -import { usePushToService } from './push_to_service'; +import { usePushToService } from '../use_push_to_service'; interface Props { caseId: string; + userCanCrud: boolean; } const MyWrapper = styled(WrapperPage)` @@ -55,15 +56,14 @@ const MyEuiHorizontalRule = styled(EuiHorizontalRule)` } `; -export interface CaseProps { - caseId: string; +export interface CaseProps extends Props { fetchCase: () => void; caseData: Case; updateCase: (newCase: Case) => void; } export const CaseComponent = React.memo( - ({ caseId, caseData, fetchCase, updateCase }) => { + ({ caseId, caseData, fetchCase, updateCase, userCanCrud }) => { const basePath = window.location.origin + useBasePath(); const caseLink = `${basePath}/app/siem#/case/${caseId}`; const search = useGetUrlSearch(navTabs.case); @@ -152,6 +152,7 @@ export const CaseComponent = React.memo( caseStatus: caseData.status, isNew: caseUserActions.filter(cua => cua.action === 'push-to-service').length === 0, updateCase: handleUpdateCase, + userCanCrud, }); const onSubmitTags = useCallback(newTags => onUpdateField('tags', newTags), [onUpdateField]); @@ -219,6 +220,7 @@ export const CaseComponent = React.memo( data-test-subj="case-view-title" titleNode={ ( > ( lastIndexPushToService={lastIndexPushToService} onUpdateField={onUpdateField} updateCase={updateCase} + userCanCrud={userCanCrud} /> @@ -260,6 +264,7 @@ export const CaseComponent = React.memo( ( /> ( } ); -export const CaseView = React.memo(({ caseId }: Props) => { +export const CaseView = React.memo(({ caseId, userCanCrud }: Props) => { const { data, isLoading, isError, fetchCase, updateCase } = useGetCase(caseId); if (isError) { return null; @@ -317,7 +323,13 @@ export const CaseView = React.memo(({ caseId }: Props) => { } return ( - + ); }); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/translations.ts b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/translations.ts index 3fc963fc23102d..17132b96107545 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/translations.ts +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/translations.ts @@ -118,56 +118,3 @@ export const EMAIL_BODY = (caseUrl: string) => values: { caseUrl }, defaultMessage: 'Case reference: {caseUrl}', }); - -export const PUSH_SERVICENOW = i18n.translate('xpack.siem.case.caseView.pushAsServicenowIncident', { - defaultMessage: 'Push as ServiceNow incident', -}); - -export const UPDATE_PUSH_SERVICENOW = i18n.translate( - 'xpack.siem.case.caseView.updatePushAsServicenowIncident', - { - defaultMessage: 'Update ServiceNow incident', - } -); - -export const PUSH_DISABLE_BY_NO_CASE_CONFIG_TITLE = i18n.translate( - 'xpack.siem.case.caseView.pushToServiceDisableByNoCaseConfigTitle', - { - defaultMessage: 'Configure external connector', - } -); - -export const PUSH_DISABLE_BECAUSE_CASE_CLOSED_TITLE = i18n.translate( - 'xpack.siem.case.caseView.pushToServiceDisableBecauseCaseClosedTitle', - { - defaultMessage: 'Reopen the case', - } -); - -export const PUSH_DISABLE_BY_KIBANA_CONFIG_TITLE = i18n.translate( - 'xpack.siem.case.caseView.pushToServiceDisableByConfigTitle', - { - defaultMessage: 'Enable ServiceNow in Kibana configuration file', - } -); - -export const PUSH_DISABLE_BY_LICENSE_TITLE = i18n.translate( - 'xpack.siem.case.caseView.pushToServiceDisableByLicenseTitle', - { - defaultMessage: 'Upgrade to Elastic Platinum', - } -); - -export const LINK_CLOUD_DEPLOYMENT = i18n.translate( - 'xpack.siem.case.caseView.cloudDeploymentLink', - { - defaultMessage: 'cloud deployment', - } -); - -export const LINK_CONNECTOR_CONFIGURE = i18n.translate( - 'xpack.siem.case.caseView.connectorConfigureLink', - { - defaultMessage: 'connector', - } -); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/button.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/button.tsx new file mode 100644 index 00000000000000..9cfc51da22e87e --- /dev/null +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/button.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { EuiButton, EuiToolTip } from '@elastic/eui'; +import React, { memo, useMemo } from 'react'; +import { getConfigureCasesUrl } from '../../../../components/link_to'; + +interface ConfigureCaseButtonProps { + label: string; + isDisabled: boolean; + msgTooltip: JSX.Element; + showToolTip: boolean; + titleTooltip: string; + urlSearch: string; +} + +const ConfigureCaseButtonComponent: React.FC = ({ + isDisabled, + label, + msgTooltip, + showToolTip, + titleTooltip, + urlSearch, +}: ConfigureCaseButtonProps) => { + const configureCaseButton = useMemo( + () => ( + + {label} + + ), + [label, isDisabled, urlSearch] + ); + return showToolTip ? ( + {msgTooltip}

}> + {configureCaseButton} +
+ ) : ( + <>{configureCaseButton} + ); +}; + +export const ConfigureCaseButton = memo(ConfigureCaseButtonComponent); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/connectors.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/connectors.tsx index bb0c50b3b193ac..8fb1cfb1aa6cc4 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/connectors.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/connectors.tsx @@ -48,7 +48,9 @@ const ConnectorsComponent: React.FC = ({ {i18n.INCIDENT_MANAGEMENT_SYSTEM_LABEL} - {i18n.ADD_NEW_CONNECTOR} + + {i18n.ADD_NEW_CONNECTOR} + ); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/index.tsx index 18d5191fe6d33c..241b0b1230274f 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/index.tsx @@ -84,7 +84,11 @@ const actionTypes: ActionType[] = [ }, ]; -const ConfigureCasesComponent: React.FC = () => { +interface ConfigureCasesComponentProps { + userCanCrud: boolean; +} + +const ConfigureCasesComponent: React.FC = ({ userCanCrud }) => { const search = useGetUrlSearch(navTabs.case); const { http, triggers_actions_ui, notifications, application } = useKibana().services; @@ -255,7 +259,7 @@ const ConfigureCasesComponent: React.FC = () => { { void; iconType: string; label: string; @@ -16,13 +17,14 @@ export interface PropertyActionButtonProps { const ComponentId = 'property-actions'; const PropertyActionButton = React.memo( - ({ onClick, iconType, label }) => ( + ({ disabled = false, onClick, iconType, label }) => ( {label} @@ -76,6 +78,7 @@ export const PropertyActions = React.memo(({ propertyActio {propertyActions.map((action, key) => ( onClosePopover(action.onClick)} diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/index.tsx index 3513d4de12aa1d..7c456d27acedac 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/index.tsx @@ -23,6 +23,7 @@ import { schema } from './schema'; import { CommonUseField } from '../create'; interface TagListProps { + disabled?: boolean; isLoading: boolean; onSubmit: (a: string[]) => void; tags: string[]; @@ -37,89 +38,98 @@ const MyFlexGroup = styled(EuiFlexGroup)` `} `; -export const TagList = React.memo(({ isLoading, onSubmit, tags }: TagListProps) => { - const { form } = useForm({ - defaultValue: { tags }, - options: { stripEmptyFields: false }, - schema, - }); - const [isEditTags, setIsEditTags] = useState(false); +export const TagList = React.memo( + ({ disabled = false, isLoading, onSubmit, tags }: TagListProps) => { + const { form } = useForm({ + defaultValue: { tags }, + options: { stripEmptyFields: false }, + schema, + }); + const [isEditTags, setIsEditTags] = useState(false); - const onSubmitTags = useCallback(async () => { - const { isValid, data: newData } = await form.submit(); - if (isValid && newData.tags) { - onSubmit(newData.tags); - setIsEditTags(false); - } - }, [form, onSubmit]); + const onSubmitTags = useCallback(async () => { + const { isValid, data: newData } = await form.submit(); + if (isValid && newData.tags) { + onSubmit(newData.tags); + setIsEditTags(false); + } + }, [form, onSubmit]); - return ( - - - -

{i18n.TAGS}

-
- {isLoading && } - {!isLoading && ( + return ( + + - +

{i18n.TAGS}

- )} -
- - - {tags.length === 0 && !isEditTags &&

{i18n.NO_TAGS}

} - {tags.length > 0 && - !isEditTags && - tags.map((tag, key) => ( - - {tag} - - ))} - {isEditTags && ( - - -
- - -
- - - - - {i18n.SAVE} - - - - - {i18n.CANCEL} - - - + {isLoading && } + {!isLoading && ( + + -
- )} -
-
- ); -}); + )} +
+ + + {tags.length === 0 && !isEditTags &&

{i18n.NO_TAGS}

} + {tags.length > 0 && + !isEditTags && + tags.map((tag, key) => ( + + {tag} + + ))} + {isEditTags && ( + + +
+ + +
+ + + + + {i18n.SAVE} + + + + + {i18n.CANCEL} + + + + +
+ )} +
+
+ ); + } +); TagList.displayName = 'TagList'; diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/helpers.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/helpers.tsx new file mode 100644 index 00000000000000..1e4fd92058e8d2 --- /dev/null +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/helpers.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { EuiLink } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; +import React from 'react'; + +import * as i18n from './translations'; +import { ActionLicense } from '../../../../containers/case/types'; + +export const getLicenseError = () => ({ + title: i18n.PUSH_DISABLE_BY_LICENSE_TITLE, + description: ( + + {i18n.LINK_CLOUD_DEPLOYMENT} + + ), + }} + /> + ), +}); + +export const getKibanaConfigError = () => ({ + title: i18n.PUSH_DISABLE_BY_KIBANA_CONFIG_TITLE, + description: ( + + {'coming soon...'} + + ), + }} + /> + ), +}); + +export const getActionLicenseError = ( + actionLicense: ActionLicense | null +): Array<{ title: string; description: JSX.Element }> => { + let errors: Array<{ title: string; description: JSX.Element }> = []; + if (actionLicense != null && !actionLicense.enabledInLicense) { + errors = [...errors, getLicenseError()]; + } + if (actionLicense != null && !actionLicense.enabledInConfig) { + errors = [...errors, getKibanaConfigError()]; + } + return errors; +}; diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/push_to_service.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/index.tsx similarity index 71% rename from x-pack/legacy/plugins/siem/public/pages/case/components/case_view/push_to_service.tsx rename to x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/index.tsx index 944302c1940ee1..aeb694e52b7faf 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/case_view/push_to_service.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/index.tsx @@ -5,8 +5,8 @@ */ import { EuiButton, EuiLink, EuiToolTip } from '@elastic/eui'; -import React, { useCallback, useState, useMemo } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; +import React, { useCallback, useState, useMemo } from 'react'; import { useCaseConfigure } from '../../../../containers/case/configure/use_configure'; import { Case } from '../../../../containers/case/types'; @@ -15,7 +15,8 @@ import { usePostPushToService } from '../../../../containers/case/use_post_push_ import { getConfigureCasesUrl } from '../../../../components/link_to'; import { useGetUrlSearch } from '../../../../components/navigation/use_get_url_search'; import { navTabs } from '../../../home/home_navigations'; -import { ErrorsPushServiceCallOut } from '../errors_push_service_callout'; +import { CaseCallOut } from '../callout'; +import { getLicenseError, getKibanaConfigError } from './helpers'; import * as i18n from './translations'; interface UsePushToService { @@ -23,6 +24,7 @@ interface UsePushToService { caseStatus: string; isNew: boolean; updateCase: (newCase: Case) => void; + userCanCrud: boolean; } interface Connector { @@ -38,8 +40,9 @@ interface ReturnUsePushToService { export const usePushToService = ({ caseId, caseStatus, - updateCase, isNew, + updateCase, + userCanCrud, }: UsePushToService): ReturnUsePushToService => { const urlSearch = useGetUrlSearch(navTabs.case); const [connector, setConnector] = useState(null); @@ -69,25 +72,7 @@ export const usePushToService = ({ const errorsMsg = useMemo(() => { let errors: Array<{ title: string; description: JSX.Element }> = []; if (actionLicense != null && !actionLicense.enabledInLicense) { - errors = [ - ...errors, - { - title: i18n.PUSH_DISABLE_BY_LICENSE_TITLE, - description: ( - - {i18n.LINK_CLOUD_DEPLOYMENT} - - ), - }} - /> - ), - }, - ]; + errors = [...errors, getLicenseError()]; } if (connector == null && !loadingCaseConfigure && !loadingLicense) { errors = [ @@ -125,25 +110,7 @@ export const usePushToService = ({ ]; } if (actionLicense != null && !actionLicense.enabledInConfig) { - errors = [ - ...errors, - { - title: i18n.PUSH_DISABLE_BY_KIBANA_CONFIG_TITLE, - description: ( - - {'coming soon...'} - - ), - }} - /> - ), - }, - ]; + errors = [...errors, getKibanaConfigError()]; } return errors; }, [actionLicense, caseStatus, connector, loadingCaseConfigure, loadingLicense, urlSearch]); @@ -154,13 +121,27 @@ export const usePushToService = ({ fill iconType="importAction" onClick={handlePushToService} - disabled={isLoading || loadingLicense || loadingCaseConfigure || errorsMsg.length > 0} + disabled={ + isLoading || + loadingLicense || + loadingCaseConfigure || + errorsMsg.length > 0 || + !userCanCrud + } isLoading={isLoading} > {isNew ? i18n.PUSH_SERVICENOW : i18n.UPDATE_PUSH_SERVICENOW} ), - [isNew, handlePushToService, isLoading, loadingLicense, loadingCaseConfigure, errorsMsg] + [ + isNew, + handlePushToService, + isLoading, + loadingLicense, + loadingCaseConfigure, + errorsMsg, + userCanCrud, + ] ); const objToReturn = useMemo( @@ -177,7 +158,10 @@ export const usePushToService = ({ ) : ( <>{pushToServiceButton} ), - pushCallouts: errorsMsg.length > 0 ? : null, + pushCallouts: + errorsMsg.length > 0 ? ( + + ) : null, }), [errorsMsg, pushToServiceButton] ); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/translations.ts b/x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/translations.ts new file mode 100644 index 00000000000000..14bdb0c69712cc --- /dev/null +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/use_push_to_service/translations.ts @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +export const ERROR_PUSH_SERVICE_CALLOUT_TITLE = i18n.translate( + 'xpack.siem.case.caseView.errorsPushServiceCallOutTitle', + { + defaultMessage: 'To send cases to external systems, you need to:', + } +); + +export const PUSH_SERVICENOW = i18n.translate('xpack.siem.case.caseView.pushAsServicenowIncident', { + defaultMessage: 'Push as ServiceNow incident', +}); + +export const UPDATE_PUSH_SERVICENOW = i18n.translate( + 'xpack.siem.case.caseView.updatePushAsServicenowIncident', + { + defaultMessage: 'Update ServiceNow incident', + } +); + +export const PUSH_DISABLE_BY_NO_CASE_CONFIG_TITLE = i18n.translate( + 'xpack.siem.case.caseView.pushToServiceDisableByNoCaseConfigTitle', + { + defaultMessage: 'Configure external connector', + } +); + +export const PUSH_DISABLE_BECAUSE_CASE_CLOSED_TITLE = i18n.translate( + 'xpack.siem.case.caseView.pushToServiceDisableBecauseCaseClosedTitle', + { + defaultMessage: 'Reopen the case', + } +); + +export const PUSH_DISABLE_BY_KIBANA_CONFIG_TITLE = i18n.translate( + 'xpack.siem.case.caseView.pushToServiceDisableByConfigTitle', + { + defaultMessage: 'Enable ServiceNow in Kibana configuration file', + } +); + +export const PUSH_DISABLE_BY_LICENSE_TITLE = i18n.translate( + 'xpack.siem.case.caseView.pushToServiceDisableByLicenseTitle', + { + defaultMessage: 'Upgrade to Elastic Platinum', + } +); + +export const LINK_CLOUD_DEPLOYMENT = i18n.translate( + 'xpack.siem.case.caseView.cloudDeploymentLink', + { + defaultMessage: 'cloud deployment', + } +); + +export const LINK_CONNECTOR_CONFIGURE = i18n.translate( + 'xpack.siem.case.caseView.connectorConfigureLink', + { + defaultMessage: 'connector', + } +); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/index.tsx index 75013c0afde5d6..0892d5dcb3ee7c 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/index.tsx @@ -29,6 +29,7 @@ export interface UserActionTreeProps { lastIndexPushToService: number; onUpdateField: (updateKey: keyof Case, updateValue: string | string[]) => void; updateCase: (newCase: Case) => void; + userCanCrud: boolean; } const MyEuiFlexGroup = styled(EuiFlexGroup)` @@ -49,6 +50,7 @@ export const UserActionTree = React.memo( lastIndexPushToService, onUpdateField, updateCase, + userCanCrud, }: UserActionTreeProps) => { const { commentId } = useParams(); const handlerTimeoutId = useRef(0); @@ -146,13 +148,14 @@ export const UserActionTree = React.memo( () => ( ), - [caseData.id, handleUpdate, insertQuote] + [caseData.id, handleUpdate, insertQuote, userCanCrud] ); useEffect(() => { @@ -168,17 +171,18 @@ export const UserActionTree = React.memo( <> {i18n.ADDED_DESCRIPTION}} - fullName={caseData.createdBy.fullName ?? caseData.createdBy.username} + fullName={caseData.createdBy.fullName ?? caseData.createdBy.username ?? ''} markdown={MarkdownDescription} onEdit={handleManageMarkdownEditId.bind(null, DESCRIPTION_ID)} onQuote={handleManageQuote.bind(null, caseData.description)} - username={caseData.createdBy.username} + username={caseData.createdBy.username ?? 'Unknown'} /> {caseUserActions.map((action, index) => { @@ -189,6 +193,7 @@ export const UserActionTree = React.memo( {i18n.ADDED_COMMENT}} - fullName={comment.createdBy.fullName ?? comment.createdBy.username} + fullName={comment.createdBy.fullName ?? comment.createdBy.username ?? ''} markdown={ ); @@ -231,6 +236,7 @@ export const UserActionTree = React.memo( ); } @@ -263,12 +269,13 @@ export const UserActionTree = React.memo( )} ); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx index 340e24e8fa55b5..89b94d98f91dbd 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx @@ -21,6 +21,7 @@ import * as i18n from './translations'; interface UserActionItemProps { createdAt: string; + disabled: boolean; id: string; isEditable: boolean; isLoading: boolean; @@ -110,6 +111,7 @@ const PushedInfoContainer = styled.div` export const UserActionItem = ({ createdAt, + disabled, id, idToOutline, isEditable, @@ -148,6 +150,7 @@ export const UserActionItem = ({ > onEdit(id), @@ -79,6 +82,7 @@ export const UserActionTitle = ({ ...(labelQuoteAction != null && onQuote != null ? [ { + disabled, iconType: 'quote', label: labelQuoteAction, onClick: () => onQuote(id), @@ -86,7 +90,7 @@ export const UserActionTitle = ({ ] : []), ]; - }, [id, labelEditAction, onEdit, labelQuoteAction, onQuote]); + }, [disabled, id, labelEditAction, onEdit, labelQuoteAction, onQuote]); const handleAnchorLink = useCallback(() => { copy( diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx index 87a446c45d891e..914bbe1d3f38f4 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx @@ -47,7 +47,7 @@ const renderUsers = ( - + {fullName ?? username}

}> @@ -81,7 +81,7 @@ export const UserList = React.memo(({ email, headline, loading, users }: UserLis }, [email.subject] ); - return ( + return users.filter(({ username }) => username != null && username !== '').length > 0 ? (

{headline}

@@ -92,9 +92,12 @@ export const UserList = React.memo(({ email, headline, loading, users }: UserLis
)} - {renderUsers(users, handleSendEmail)} + {renderUsers( + users.filter(({ username }) => username != null && username !== ''), + handleSendEmail + )} - ); + ) : null; }); UserList.displayName = 'UserList'; diff --git a/x-pack/legacy/plugins/siem/public/pages/case/configure_cases.tsx b/x-pack/legacy/plugins/siem/public/pages/case/configure_cases.tsx index b7e7ced3083319..7515efa0e1b7ae 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/configure_cases.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/configure_cases.tsx @@ -5,16 +5,18 @@ */ import React, { useMemo } from 'react'; +import { Redirect } from 'react-router-dom'; +import { getCaseUrl } from '../../components/link_to'; +import { useGetUrlSearch } from '../../components/navigation/use_get_url_search'; import { WrapperPage } from '../../components/wrapper_page'; -import { CaseHeaderPage } from './components/case_header_page'; +import { useGetUserSavedObjectPermissions } from '../../lib/kibana'; import { SpyRoute } from '../../utils/route/spy_routes'; -import { getCaseUrl } from '../../components/link_to'; +import { navTabs } from '../home/home_navigations'; +import { CaseHeaderPage } from './components/case_header_page'; +import { ConfigureCases } from './components/configure_cases'; import { WhitePageWrapper, SectionWrapper } from './components/wrappers'; import * as i18n from './translations'; -import { ConfigureCases } from './components/configure_cases'; -import { useGetUrlSearch } from '../../components/navigation/use_get_url_search'; -import { navTabs } from '../home/home_navigations'; const wrapperPageStyle: Record = { paddingLeft: '0', @@ -23,6 +25,7 @@ const wrapperPageStyle: Record = { }; const ConfigureCasesPageComponent: React.FC = () => { + const userPermissions = useGetUserSavedObjectPermissions(); const search = useGetUrlSearch(navTabs.case); const backOptions = useMemo( @@ -33,6 +36,10 @@ const ConfigureCasesPageComponent: React.FC = () => { [search] ); + if (userPermissions != null && !userPermissions.read) { + return ; + } + return ( <> @@ -40,7 +47,7 @@ const ConfigureCasesPageComponent: React.FC = () => {
- + diff --git a/x-pack/legacy/plugins/siem/public/pages/case/create_case.tsx b/x-pack/legacy/plugins/siem/public/pages/case/create_case.tsx index bd1f6da0ca28b4..06cb7fadfb8d30 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/create_case.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/create_case.tsx @@ -5,17 +5,20 @@ */ import React, { useMemo } from 'react'; +import { Redirect } from 'react-router-dom'; +import { getCaseUrl } from '../../components/link_to'; +import { useGetUrlSearch } from '../../components/navigation/use_get_url_search'; import { WrapperPage } from '../../components/wrapper_page'; -import { Create } from './components/create'; +import { useGetUserSavedObjectPermissions } from '../../lib/kibana'; import { SpyRoute } from '../../utils/route/spy_routes'; +import { navTabs } from '../home/home_navigations'; import { CaseHeaderPage } from './components/case_header_page'; +import { Create } from './components/create'; import * as i18n from './translations'; -import { getCaseUrl } from '../../components/link_to'; -import { useGetUrlSearch } from '../../components/navigation/use_get_url_search'; -import { navTabs } from '../home/home_navigations'; export const CreateCasePage = React.memo(() => { + const userPermissions = useGetUserSavedObjectPermissions(); const search = useGetUrlSearch(navTabs.case); const backOptions = useMemo( @@ -26,6 +29,10 @@ export const CreateCasePage = React.memo(() => { [search] ); + if (userPermissions != null && !userPermissions.crud) { + return ; + } + return ( <> diff --git a/x-pack/legacy/plugins/siem/public/pages/case/saved_object_no_permissions.tsx b/x-pack/legacy/plugins/siem/public/pages/case/saved_object_no_permissions.tsx new file mode 100644 index 00000000000000..689c290c910191 --- /dev/null +++ b/x-pack/legacy/plugins/siem/public/pages/case/saved_object_no_permissions.tsx @@ -0,0 +1,29 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; + +import { EmptyPage } from '../../components/empty_page'; +import * as i18n from './translations'; +import { useKibana } from '../../lib/kibana'; + +export const CaseSavedObjectNoPermissions = React.memo(() => { + const docLinks = useKibana().services.docLinks; + + return ( + + ); +}); + +CaseSavedObjectNoPermissions.displayName = 'CaseSavedObjectNoPermissions'; diff --git a/x-pack/legacy/plugins/siem/public/pages/case/translations.ts b/x-pack/legacy/plugins/siem/public/pages/case/translations.ts index 8f9d2087699f87..0d1e6d1435ca36 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/translations.ts +++ b/x-pack/legacy/plugins/siem/public/pages/case/translations.ts @@ -6,6 +6,21 @@ import { i18n } from '@kbn/i18n'; +export const SAVED_OBJECT_NO_PERMISSIONS_TITLE = i18n.translate( + 'xpack.siem.case.caseSavedObjectNoPermissionsTitle', + { + defaultMessage: 'Kibana feature privileges required', + } +); + +export const SAVED_OBJECT_NO_PERMISSIONS_MSG = i18n.translate( + 'xpack.siem.case.caseSavedObjectNoPermissionsMessage', + { + defaultMessage: + 'To view cases, you must have privileges for the Saved Object Management feature in the Kibana space. For more information, contact your Kibana administrator.', + } +); + export const BACK_TO_ALL = i18n.translate('xpack.siem.case.caseView.backLabel', { defaultMessage: 'Back to cases', }); @@ -169,3 +184,10 @@ export const ADD_COMMENT_HELP_TEXT = i18n.translate( export const SAVE = i18n.translate('xpack.siem.case.caseView.description.save', { defaultMessage: 'Save', }); + +export const GO_TO_DOCUMENTATION = i18n.translate( + 'xpack.siem.case.caseView.goToDocumentationButton', + { + defaultMessage: 'View documentation', + } +); diff --git a/x-pack/legacy/plugins/siem/server/plugin.ts b/x-pack/legacy/plugins/siem/server/plugin.ts index dcaf805c54f6e7..2235207070fe39 100644 --- a/x-pack/legacy/plugins/siem/server/plugin.ts +++ b/x-pack/legacy/plugins/siem/server/plugin.ts @@ -121,6 +121,10 @@ export class Plugin { pinnedEventSavedObjectType, timelineSavedObjectType, ruleStatusSavedObjectType, + 'cases', + 'cases-comments', + 'cases-configure', + 'cases-user-actions', ], read: ['config'], }, @@ -147,6 +151,10 @@ export class Plugin { pinnedEventSavedObjectType, timelineSavedObjectType, ruleStatusSavedObjectType, + 'cases', + 'cases-comments', + 'cases-configure', + 'cases-user-actions', ], }, ui: [ diff --git a/x-pack/plugins/case/common/api/user.ts b/x-pack/plugins/case/common/api/user.ts index 3adb78ccdac07c..af198470737cf4 100644 --- a/x-pack/plugins/case/common/api/user.ts +++ b/x-pack/plugins/case/common/api/user.ts @@ -9,7 +9,7 @@ import * as rt from 'io-ts'; export const UserRT = rt.type({ email: rt.union([rt.undefined, rt.null, rt.string]), full_name: rt.union([rt.undefined, rt.null, rt.string]), - username: rt.string, + username: rt.union([rt.undefined, rt.null, rt.string]), }); export const UsersRt = rt.array(UserRT); diff --git a/x-pack/plugins/case/kibana.json b/x-pack/plugins/case/kibana.json index f565dc1b6924e1..55416ee28c7df5 100644 --- a/x-pack/plugins/case/kibana.json +++ b/x-pack/plugins/case/kibana.json @@ -2,7 +2,7 @@ "configPath": ["xpack", "case"], "id": "case", "kibanaVersion": "kibana", - "requiredPlugins": ["security", "actions"], + "requiredPlugins": ["actions"], "optionalPlugins": [ "spaces", "security" diff --git a/x-pack/plugins/case/server/plugin.ts b/x-pack/plugins/case/server/plugin.ts index a6a459373b0ed2..670e6ec797a9f8 100644 --- a/x-pack/plugins/case/server/plugin.ts +++ b/x-pack/plugins/case/server/plugin.ts @@ -60,7 +60,7 @@ export class CasePlugin { ); const caseService = await caseServicePlugin.setup({ - authentication: plugins.security.authc, + authentication: plugins.security != null ? plugins.security.authc : null, }); const caseConfigureService = await caseConfigureServicePlugin.setup(); const userActionService = await userActionServicePlugin.setup(); diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.test.ts b/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.test.ts index af6f8bf223ee58..23039da681ec65 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.test.ts @@ -20,6 +20,10 @@ describe('POST comment', () => { let routeHandler: RequestHandler; beforeAll(async () => { routeHandler = await createRoute(initPostCommentApi, 'post'); + const spyOnDate = jest.spyOn(global, 'Date') as jest.SpyInstance<{}, []>; + spyOnDate.mockImplementation(() => ({ + toISOString: jest.fn().mockReturnValue('2019-11-25T21:54:48.952Z'), + })); }); it(`Posts a new comment`, async () => { const request = httpServerMock.createKibanaRequest({ @@ -92,7 +96,7 @@ describe('POST comment', () => { expect(response.status).toEqual(400); expect(response.payload.isBoom).toEqual(true); }); - it(`Returns an error if user authentication throws`, async () => { + it(`Allow user to create comments without authentications`, async () => { routeHandler = await createRoute(initPostCommentApi, 'post', true); const request = httpServerMock.createKibanaRequest({ @@ -114,7 +118,21 @@ describe('POST comment', () => { ); const response = await routeHandler(theContext, request, kibanaResponseFactory); - expect(response.status).toEqual(500); - expect(response.payload.isBoom).toEqual(true); + expect(response.status).toEqual(200); + expect(response.payload.comments[response.payload.comments.length - 1]).toEqual({ + comment: 'Wow, good luck catching that bad meanie!', + created_at: '2019-11-25T21:54:48.952Z', + created_by: { + email: null, + full_name: null, + username: null, + }, + id: 'mock-comment', + pushed_at: null, + pushed_by: null, + updated_at: null, + updated_by: null, + version: 'WzksMV0=', + }); }); }); diff --git a/x-pack/plugins/case/server/routes/api/cases/post_case.test.ts b/x-pack/plugins/case/server/routes/api/cases/post_case.test.ts index 96ce3c1a7eeadf..5899102224774b 100644 --- a/x-pack/plugins/case/server/routes/api/cases/post_case.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/post_case.test.ts @@ -19,6 +19,10 @@ describe('POST cases', () => { let routeHandler: RequestHandler; beforeAll(async () => { routeHandler = await createRoute(initPostCaseApi, 'post'); + const spyOnDate = jest.spyOn(global, 'Date') as jest.SpyInstance<{}, []>; + spyOnDate.mockImplementation(() => ({ + toISOString: jest.fn().mockReturnValue('2019-11-25T21:54:48.952Z'), + })); }); it(`Posts a new case`, async () => { const request = httpServerMock.createKibanaRequest({ @@ -85,7 +89,7 @@ describe('POST cases', () => { expect(response.status).toEqual(400); expect(response.payload.isBoom).toEqual(true); }); - it(`Returns an error if user authentication throws`, async () => { + it(`Allow user to create case without authentication`, async () => { routeHandler = await createRoute(initPostCaseApi, 'post', true); const request = httpServerMock.createKibanaRequest({ @@ -105,7 +109,27 @@ describe('POST cases', () => { ); const response = await routeHandler(theContext, request, kibanaResponseFactory); - expect(response.status).toEqual(500); - expect(response.payload.isBoom).toEqual(true); + expect(response.status).toEqual(200); + expect(response.payload).toEqual({ + closed_at: null, + closed_by: null, + comments: [], + created_at: '2019-11-25T21:54:48.952Z', + created_by: { + email: null, + full_name: null, + username: null, + }, + description: 'This is a brand new case of a bad meanie defacing data', + external_service: null, + id: 'mock-it', + status: 'open', + tags: ['defacement'], + title: 'Super Bad Security Issue', + totalComment: 0, + updated_at: null, + updated_by: null, + version: 'WzksMV0=', + }); }); }); diff --git a/x-pack/plugins/case/server/routes/api/cases/push_case.ts b/x-pack/plugins/case/server/routes/api/cases/push_case.ts index 1b24904ce03b75..aff057adea37f5 100644 --- a/x-pack/plugins/case/server/routes/api/cases/push_case.ts +++ b/x-pack/plugins/case/server/routes/api/cases/push_case.ts @@ -15,7 +15,6 @@ import { flattenCaseSavedObject, wrapError, escapeHatch } from '../utils'; import { CaseExternalServiceRequestRt, CaseResponseRt, throwErrors } from '../../../../common/api'; import { buildCaseUserActionItem } from '../../../services/user_actions/helpers'; import { RouteDeps } from '../types'; -import { CASE_COMMENT_SAVED_OBJECT } from '../../../saved_object_types'; export function initPushCaseUserActionApi({ caseConfigureService, @@ -54,7 +53,6 @@ export function initPushCaseUserActionApi({ client, caseId, options: { - filter: `not ${CASE_COMMENT_SAVED_OBJECT}.attributes.pushed_at: *`, fields: [], page: 1, perPage: 1, @@ -72,7 +70,6 @@ export function initPushCaseUserActionApi({ client, caseId, options: { - filter: `not ${CASE_COMMENT_SAVED_OBJECT}.attributes.pushed_at: *`, fields: [], page: 1, perPage: totalCommentsFindByCases.total, @@ -105,16 +102,16 @@ export function initPushCaseUserActionApi({ }), caseService.patchComments({ client, - comments: comments.saved_objects.map(comment => ({ - commentId: comment.id, - updatedAttributes: { - pushed_at: pushedDate, - pushed_by: { username, full_name, email }, - updated_at: pushedDate, - updated_by: { username, full_name, email }, - }, - version: comment.version, - })), + comments: comments.saved_objects + .filter(comment => comment.attributes.pushed_at == null) + .map(comment => ({ + commentId: comment.id, + updatedAttributes: { + pushed_at: pushedDate, + pushed_by: { username, full_name, email }, + }, + version: comment.version, + })), }), userActionService.postUserActions({ client, diff --git a/x-pack/plugins/case/server/routes/api/utils.ts b/x-pack/plugins/case/server/routes/api/utils.ts index 822d6d70c7d612..a3df0fc93d2ace 100644 --- a/x-pack/plugins/case/server/routes/api/utils.ts +++ b/x-pack/plugins/case/server/routes/api/utils.ts @@ -33,10 +33,10 @@ export const transformNewCase = ({ username, }: { createdDate: string; - email?: string; - full_name?: string; + email?: string | null; + full_name?: string | null; newCase: CasePostRequest; - username: string; + username?: string | null; }): CaseAttributes => ({ ...newCase, closed_at: null, @@ -52,9 +52,9 @@ export const transformNewCase = ({ interface NewCommentArgs { comment: string; createdDate: string; - email?: string; - full_name?: string; - username: string; + email?: string | null; + full_name?: string | null; + username?: string | null; } export const transformNewComment = ({ comment, diff --git a/x-pack/plugins/case/server/scripts/mock/case/post_case.json b/x-pack/plugins/case/server/scripts/mock/case/post_case.json index 25a9780596828f..743fa396295ca7 100644 --- a/x-pack/plugins/case/server/scripts/mock/case/post_case.json +++ b/x-pack/plugins/case/server/scripts/mock/case/post_case.json @@ -1,7 +1,6 @@ { "description": "This looks not so good", "title": "Bad meanie defacing data", - "status": "open", "tags": [ "defacement" ] diff --git a/x-pack/plugins/case/server/scripts/mock/case/post_case_v2.json b/x-pack/plugins/case/server/scripts/mock/case/post_case_v2.json index cf066d2c8a1e8b..13efe436a640d5 100644 --- a/x-pack/plugins/case/server/scripts/mock/case/post_case_v2.json +++ b/x-pack/plugins/case/server/scripts/mock/case/post_case_v2.json @@ -1,7 +1,6 @@ { "description": "I hope there are some good security engineers at this company...", "title": "Another bad dude", - "status": "open", "tags": [ "phishing" ] diff --git a/x-pack/plugins/case/server/services/index.ts b/x-pack/plugins/case/server/services/index.ts index 52f41aae293ab0..cdc5fd21a81385 100644 --- a/x-pack/plugins/case/server/services/index.ts +++ b/x-pack/plugins/case/server/services/index.ts @@ -95,7 +95,7 @@ interface GetUserArgs { } interface CaseServiceDeps { - authentication: SecurityPluginSetup['authc']; + authentication: SecurityPluginSetup['authc'] | null; } export interface CaseServiceSetup { deleteCase(args: GetCaseArgs): Promise<{}>; @@ -107,7 +107,7 @@ export interface CaseServiceSetup { getComment(args: GetCommentArgs): Promise>; getTags(args: ClientArgs): Promise; getReporters(args: ClientArgs): Promise; - getUser(args: GetUserArgs): Promise; + getUser(args: GetUserArgs): Promise; postNewCase(args: PostCaseArgs): Promise>; postNewComment(args: PostCommentArgs): Promise>; patchCase(args: PatchCaseArgs): Promise>; @@ -207,13 +207,28 @@ export class CaseService { } }, getUser: async ({ request, response }: GetUserArgs) => { - this.log.debug(`Attempting to authenticate a user`); - const user = authentication!.getCurrentUser(request); - if (!user) { - this.log.debug(`Error on GET user: Bad User`); - throw new Error('Bad User - the user is not authenticated'); + try { + this.log.debug(`Attempting to authenticate a user`); + if (authentication != null) { + const user = authentication.getCurrentUser(request); + if (!user) { + return { + username: null, + full_name: null, + email: null, + }; + } + return user; + } + return { + username: null, + full_name: null, + email: null, + }; + } catch (error) { + this.log.debug(`Error on GET cases: ${error}`); + throw error; } - return user; }, postNewCase: async ({ client, attributes }: PostCaseArgs) => { try { diff --git a/x-pack/plugins/case/server/services/user_actions/helpers.ts b/x-pack/plugins/case/server/services/user_actions/helpers.ts index 95d35d5a57a57b..e89700419b19d4 100644 --- a/x-pack/plugins/case/server/services/user_actions/helpers.ts +++ b/x-pack/plugins/case/server/services/user_actions/helpers.ts @@ -35,7 +35,7 @@ export const transformNewUserAction = ({ full_name?: string | null; newValue?: string | null; oldValue?: string | null; - username: string; + username?: string | null; }): CaseUserActionAttributes => ({ action_field: actionField, action, From a7bebba9d8cf20e5e5de6644d328496153c7771e Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 30 Mar 2020 22:04:07 -0700 Subject: [PATCH 023/118] skip flaky suite (#57413) --- .../feature_controls/advanced_settings_spaces.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/advanced_settings/feature_controls/advanced_settings_spaces.ts b/x-pack/test/functional/apps/advanced_settings/feature_controls/advanced_settings_spaces.ts index 252d0a0a787825..4b105263f3ba5d 100644 --- a/x-pack/test/functional/apps/advanced_settings/feature_controls/advanced_settings_spaces.ts +++ b/x-pack/test/functional/apps/advanced_settings/feature_controls/advanced_settings_spaces.ts @@ -14,7 +14,8 @@ export default function({ getPageObjects, getService }: FtrProviderContext) { const appsMenu = getService('appsMenu'); const config = getService('config'); - describe('spaces feature controls', () => { + // FLAKY: https://github.com/elastic/kibana/issues/57413 + describe.skip('spaces feature controls', () => { before(async () => { await esArchiver.loadIfNeeded('logstash_functional'); }); From ef7213552710c1457a5afae06a553450b64d359b Mon Sep 17 00:00:00 2001 From: Robert Oskamp Date: Tue, 31 Mar 2020 08:38:43 +0200 Subject: [PATCH 024/118] [ML] API integration tests - add recognize and setup module tests (#61793) This PR adds initial functional API tests for the modules/recognize and modules/setup endpoints. --- .../apis/ml/bucket_span_estimator.ts | 8 +- .../apis/ml/calculate_model_memory_limit.ts | 4 +- .../apis/ml/categorization_field_examples.ts | 4 +- .../api_integration/apis/ml/get_module.ts | 4 +- x-pack/test/api_integration/apis/ml/index.ts | 12 +- .../apis/ml/recognize_module.ts | 80 + .../api_integration/apis/ml/setup_module.ts | 229 ++ x-pack/test/api_integration/services/index.ts | 4 +- x-pack/test/api_integration/services/ml.ts | 22 + .../es_archives/ml/sample_logs/data.json.gz | Bin 0 -> 1643792 bytes .../es_archives/ml/sample_logs/mappings.json | 3162 +++++++++++++++++ .../services/machine_learning/api.ts | 36 +- .../machine_learning/security_common.ts | 7 + 13 files changed, 3541 insertions(+), 31 deletions(-) create mode 100644 x-pack/test/api_integration/apis/ml/recognize_module.ts create mode 100644 x-pack/test/api_integration/apis/ml/setup_module.ts create mode 100644 x-pack/test/api_integration/services/ml.ts create mode 100644 x-pack/test/functional/es_archives/ml/sample_logs/data.json.gz create mode 100644 x-pack/test/functional/es_archives/ml/sample_logs/mappings.json diff --git a/x-pack/test/api_integration/apis/ml/bucket_span_estimator.ts b/x-pack/test/api_integration/apis/ml/bucket_span_estimator.ts index a50d65a48c2bb3..3f56fb927d1318 100644 --- a/x-pack/test/api_integration/apis/ml/bucket_span_estimator.ts +++ b/x-pack/test/api_integration/apis/ml/bucket_span_estimator.ts @@ -18,7 +18,7 @@ export default ({ getService }: FtrProviderContext) => { const esArchiver = getService('esArchiver'); const esSupertest = getService('esSupertest'); const supertest = getService('supertestWithoutAuth'); - const mlSecurity = getService('mlSecurity'); + const ml = getService('ml'); const testDataList = [ { @@ -103,7 +103,7 @@ export default ({ getService }: FtrProviderContext) => { it(`estimates the bucket span ${testData.testTitleSuffix}`, async () => { const { body } = await supertest .post('/api/ml/validate/estimate_bucket_span') - .auth(testData.user, mlSecurity.getPasswordForUser(testData.user)) + .auth(testData.user, ml.securityCommon.getPasswordForUser(testData.user)) .set(COMMON_HEADERS) .send(testData.requestBody) .expect(testData.expected.responseCode); @@ -133,7 +133,7 @@ export default ({ getService }: FtrProviderContext) => { it(`estimates the bucket span`, async () => { const { body } = await supertest .post('/api/ml/validate/estimate_bucket_span') - .auth(testData.user, mlSecurity.getPasswordForUser(testData.user)) + .auth(testData.user, ml.securityCommon.getPasswordForUser(testData.user)) .set(COMMON_HEADERS) .send(testData.requestBody) .expect(testData.expected.responseCode); @@ -162,7 +162,7 @@ export default ({ getService }: FtrProviderContext) => { it(`estimates the bucket span`, async () => { const { body } = await supertest .post('/api/ml/validate/estimate_bucket_span') - .auth(testData.user, mlSecurity.getPasswordForUser(testData.user)) + .auth(testData.user, ml.securityCommon.getPasswordForUser(testData.user)) .set(COMMON_HEADERS) .send(testData.requestBody) .expect(testData.expected.responseCode); diff --git a/x-pack/test/api_integration/apis/ml/calculate_model_memory_limit.ts b/x-pack/test/api_integration/apis/ml/calculate_model_memory_limit.ts index 7fb0a10d94a4bc..c36621a9a64035 100644 --- a/x-pack/test/api_integration/apis/ml/calculate_model_memory_limit.ts +++ b/x-pack/test/api_integration/apis/ml/calculate_model_memory_limit.ts @@ -15,7 +15,7 @@ const COMMON_HEADERS = { export default ({ getService }: FtrProviderContext) => { const esArchiver = getService('esArchiver'); const supertest = getService('supertestWithoutAuth'); - const mlSecurity = getService('mlSecurity'); + const ml = getService('ml'); const testDataList = [ { @@ -158,7 +158,7 @@ export default ({ getService }: FtrProviderContext) => { it(`calculates the model memory limit ${testData.testTitleSuffix}`, async () => { await supertest .post('/api/ml/validate/calculate_model_memory_limit') - .auth(testData.user, mlSecurity.getPasswordForUser(testData.user)) + .auth(testData.user, ml.securityCommon.getPasswordForUser(testData.user)) .set(COMMON_HEADERS) .send(testData.requestBody) .expect(testData.expected.responseCode); diff --git a/x-pack/test/api_integration/apis/ml/categorization_field_examples.ts b/x-pack/test/api_integration/apis/ml/categorization_field_examples.ts index aab7a65a7c1223..b8ee2e7f6562cb 100644 --- a/x-pack/test/api_integration/apis/ml/categorization_field_examples.ts +++ b/x-pack/test/api_integration/apis/ml/categorization_field_examples.ts @@ -79,7 +79,7 @@ const defaultRequestBody = { export default ({ getService }: FtrProviderContext) => { const esArchiver = getService('esArchiver'); const supertest = getService('supertestWithoutAuth'); - const mlSecurity = getService('mlSecurity'); + const ml = getService('ml'); const testDataList = [ { @@ -300,7 +300,7 @@ export default ({ getService }: FtrProviderContext) => { it(testData.title, async () => { const { body } = await supertest .post('/api/ml/jobs/categorization_field_examples') - .auth(testData.user, mlSecurity.getPasswordForUser(testData.user)) + .auth(testData.user, ml.securityCommon.getPasswordForUser(testData.user)) .set(COMMON_HEADERS) .send(testData.requestBody) .expect(testData.expected.responseCode); diff --git a/x-pack/test/api_integration/apis/ml/get_module.ts b/x-pack/test/api_integration/apis/ml/get_module.ts index 4478236c494a8a..6dcd9594fc9aac 100644 --- a/x-pack/test/api_integration/apis/ml/get_module.ts +++ b/x-pack/test/api_integration/apis/ml/get_module.ts @@ -37,12 +37,12 @@ const moduleIds = [ // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { const supertest = getService('supertestWithoutAuth'); - const mlSecurity = getService('mlSecurity'); + const ml = getService('ml'); async function executeGetModuleRequest(module: string, user: USER, rspCode: number) { const { body } = await supertest .get(`/api/ml/modules/get_module/${module}`) - .auth(user, mlSecurity.getPasswordForUser(user)) + .auth(user, ml.securityCommon.getPasswordForUser(user)) .set(COMMON_HEADERS) .expect(rspCode); diff --git a/x-pack/test/api_integration/apis/ml/index.ts b/x-pack/test/api_integration/apis/ml/index.ts index 78f99d8d9776a2..4e21faa610bfe2 100644 --- a/x-pack/test/api_integration/apis/ml/index.ts +++ b/x-pack/test/api_integration/apis/ml/index.ts @@ -7,24 +7,26 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function({ getService, loadTestFile }: FtrProviderContext) { - const mlSecurity = getService('mlSecurity'); + const ml = getService('ml'); describe('Machine Learning', function() { this.tags(['mlqa']); before(async () => { - await mlSecurity.createMlRoles(); - await mlSecurity.createMlUsers(); + await ml.securityCommon.createMlRoles(); + await ml.securityCommon.createMlUsers(); }); after(async () => { - await mlSecurity.cleanMlUsers(); - await mlSecurity.cleanMlRoles(); + await ml.securityCommon.cleanMlUsers(); + await ml.securityCommon.cleanMlRoles(); }); loadTestFile(require.resolve('./bucket_span_estimator')); loadTestFile(require.resolve('./calculate_model_memory_limit')); loadTestFile(require.resolve('./categorization_field_examples')); loadTestFile(require.resolve('./get_module')); + loadTestFile(require.resolve('./recognize_module')); + loadTestFile(require.resolve('./setup_module')); }); } diff --git a/x-pack/test/api_integration/apis/ml/recognize_module.ts b/x-pack/test/api_integration/apis/ml/recognize_module.ts new file mode 100644 index 00000000000000..2110bded7394cc --- /dev/null +++ b/x-pack/test/api_integration/apis/ml/recognize_module.ts @@ -0,0 +1,80 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { FtrProviderContext } from '../../ftr_provider_context'; +import { USER } from '../../../functional/services/machine_learning/security_common'; + +const COMMON_HEADERS = { + 'kbn-xsrf': 'some-xsrf-token', +}; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertestWithoutAuth'); + const ml = getService('ml'); + + const testDataList = [ + { + testTitleSuffix: 'for sample logs dataset', + sourceDataArchive: 'ml/sample_logs', + indexPattern: 'kibana_sample_data_logs', + user: USER.ML_POWERUSER, + expected: { + responseCode: 200, + moduleIds: ['sample_data_weblogs'], + }, + }, + { + testTitleSuffix: 'for non existent index pattern', + sourceDataArchive: 'empty_kibana', + indexPattern: 'non-existent-index-pattern', + user: USER.ML_POWERUSER, + expected: { + responseCode: 200, + moduleIds: [], + }, + }, + ]; + + async function executeRecognizeModuleRequest(indexPattern: string, user: USER, rspCode: number) { + const { body } = await supertest + .get(`/api/ml/modules/recognize/${indexPattern}`) + .auth(user, ml.securityCommon.getPasswordForUser(user)) + .set(COMMON_HEADERS) + .expect(rspCode); + + return body; + } + + describe('module recognizer', function() { + for (const testData of testDataList) { + describe('lists matching modules', function() { + before(async () => { + await esArchiver.load(testData.sourceDataArchive); + }); + + after(async () => { + await esArchiver.unload(testData.sourceDataArchive); + }); + + it(testData.testTitleSuffix, async () => { + const rspBody = await executeRecognizeModuleRequest( + testData.indexPattern, + testData.user, + testData.expected.responseCode + ); + expect(rspBody).to.be.an(Array); + + const responseModuleIds = rspBody.map((module: { id: string }) => module.id); + expect(responseModuleIds).to.eql(testData.expected.moduleIds); + }); + }); + } + }); +}; diff --git a/x-pack/test/api_integration/apis/ml/setup_module.ts b/x-pack/test/api_integration/apis/ml/setup_module.ts new file mode 100644 index 00000000000000..71f3910cd4e937 --- /dev/null +++ b/x-pack/test/api_integration/apis/ml/setup_module.ts @@ -0,0 +1,229 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { FtrProviderContext } from '../../ftr_provider_context'; + +import { JOB_STATE, DATAFEED_STATE } from '../../../../plugins/ml/common/constants/states'; +import { USER } from '../../../functional/services/machine_learning/security_common'; + +const COMMON_HEADERS = { + 'kbn-xsrf': 'some-xsrf-token', +}; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertestWithoutAuth'); + const ml = getService('ml'); + + const testDataListPositive = [ + { + testTitleSuffix: 'for sample logs dataset with prefix and startDatafeed false', + sourceDataArchive: 'ml/sample_logs', + module: 'sample_data_weblogs', + user: USER.ML_POWERUSER, + requestBody: { + prefix: 'pf1_', + indexPatternName: 'kibana_sample_data_logs', + startDatafeed: false, + }, + expected: { + responseCode: 200, + jobs: [ + { + jobId: 'pf1_low_request_rate', + jobState: JOB_STATE.CLOSED, + datafeedState: DATAFEED_STATE.STOPPED, + }, + { + jobId: 'pf1_response_code_rates', + jobState: JOB_STATE.CLOSED, + datafeedState: DATAFEED_STATE.STOPPED, + }, + { + jobId: 'pf1_url_scanning', + jobState: JOB_STATE.CLOSED, + datafeedState: DATAFEED_STATE.STOPPED, + }, + ], + }, + }, + ]; + + const testDataListNegative = [ + { + testTitleSuffix: 'for non existent index pattern', + sourceDataArchive: 'empty_kibana', + module: 'sample_data_weblogs', + user: USER.ML_POWERUSER, + requestBody: { + indexPatternName: 'non-existent-index-pattern', + startDatafeed: false, + }, + expected: { + responseCode: 400, + error: 'Bad Request', + message: + "Module's jobs contain custom URLs which require a kibana index pattern (non-existent-index-pattern) which cannot be found.", + }, + }, + { + testTitleSuffix: 'for unauthorized user', + sourceDataArchive: 'ml/sample_logs', + module: 'sample_data_weblogs', + user: USER.ML_UNAUTHORIZED, + requestBody: { + prefix: 'pf1_', + indexPatternName: 'kibana_sample_data_logs', + startDatafeed: false, + }, + expected: { + responseCode: 403, + error: 'Forbidden', + message: + '[security_exception] action [cluster:monitor/xpack/ml/info/get] is unauthorized for user [ml_unauthorized]', + }, + }, + ]; + + async function executeSetupModuleRequest( + module: string, + user: USER, + rqBody: object, + rspCode: number + ) { + const { body } = await supertest + .post(`/api/ml/modules/setup/${module}`) + .auth(user, ml.securityCommon.getPasswordForUser(user)) + .set(COMMON_HEADERS) + .send(rqBody) + .expect(rspCode); + + return body; + } + + function compareById(a: { id: string }, b: { id: string }) { + if (a.id < b.id) { + return -1; + } + if (a.id > b.id) { + return 1; + } + return 0; + } + + describe('module setup', function() { + for (const testData of testDataListPositive) { + describe('sets up module data', function() { + before(async () => { + await esArchiver.load(testData.sourceDataArchive); + }); + + after(async () => { + await esArchiver.unload(testData.sourceDataArchive); + await ml.api.cleanMlIndices(); + }); + + it(testData.testTitleSuffix, async () => { + const rspBody = await executeSetupModuleRequest( + testData.module, + testData.user, + testData.requestBody, + testData.expected.responseCode + ); + + // verify response + if (testData.expected.jobs.length > 0) { + // jobs + expect(rspBody).to.have.property('jobs'); + + const expectedRspJobs = testData.expected.jobs + .map(job => { + return { id: job.jobId, success: true }; + }) + .sort(compareById); + + const actualRspJobs = rspBody.jobs.sort(compareById); + + expect(actualRspJobs).to.eql( + expectedRspJobs, + `Expected setup module response jobs to be '${JSON.stringify( + expectedRspJobs + )}' (got '${JSON.stringify(actualRspJobs)}')` + ); + + // datafeeds + expect(rspBody).to.have.property('datafeeds'); + + const expectedRspDatafeeds = testData.expected.jobs + .map(job => { + return { + id: `datafeed-${job.jobId}`, + success: true, + started: testData.requestBody.startDatafeed, + }; + }) + .sort(compareById); + + const actualRspDatafeeds = rspBody.datafeeds.sort(compareById); + + expect(actualRspDatafeeds).to.eql( + expectedRspDatafeeds, + `Expected setup module response datafeeds to be '${JSON.stringify( + expectedRspDatafeeds + )}' (got '${JSON.stringify(actualRspDatafeeds)}')` + ); + + // TODO in future updates: add response validations for created saved objects + } + + // verify job and datafeed creation + states + for (const job of testData.expected.jobs) { + const datafeedId = `datafeed-${job.jobId}`; + await ml.api.waitForAnomalyDetectionJobToExist(job.jobId); + await ml.api.waitForDatafeedToExist(datafeedId); + await ml.api.waitForJobState(job.jobId, job.jobState); + await ml.api.waitForDatafeedState(datafeedId, job.datafeedState); + } + }); + + // TODO in future updates: add creation validations for created saved objects + }); + } + + for (const testData of testDataListNegative) { + describe('rejects request', function() { + before(async () => { + await esArchiver.load(testData.sourceDataArchive); + }); + + after(async () => { + await esArchiver.unload(testData.sourceDataArchive); + await ml.api.cleanMlIndices(); + }); + + it(testData.testTitleSuffix, async () => { + const rspBody = await executeSetupModuleRequest( + testData.module, + testData.user, + testData.requestBody, + testData.expected.responseCode + ); + + expect(rspBody) + .to.have.property('error') + .eql(testData.expected.error); + + expect(rspBody) + .to.have.property('message') + .eql(testData.expected.message); + }); + }); + } + }); +}; diff --git a/x-pack/test/api_integration/services/index.ts b/x-pack/test/api_integration/services/index.ts index c29116e1270c59..9c945f557a2d8c 100644 --- a/x-pack/test/api_integration/services/index.ts +++ b/x-pack/test/api_integration/services/index.ts @@ -21,7 +21,7 @@ import { } from './infraops_graphql_client'; import { SiemGraphQLClientProvider, SiemGraphQLClientFactoryProvider } from './siem_graphql_client'; import { InfraOpsSourceConfigurationProvider } from './infraops_source_configuration'; -import { MachineLearningSecurityCommonProvider } from '../../functional/services/machine_learning'; +import { MachineLearningProvider } from './ml'; export const services = { ...commonServices, @@ -38,5 +38,5 @@ export const services = { siemGraphQLClientFactory: SiemGraphQLClientFactoryProvider, supertestWithoutAuth: SupertestWithoutAuthProvider, usageAPI: UsageAPIProvider, - mlSecurity: MachineLearningSecurityCommonProvider, + ml: MachineLearningProvider, }; diff --git a/x-pack/test/api_integration/services/ml.ts b/x-pack/test/api_integration/services/ml.ts new file mode 100644 index 00000000000000..841b200b870801 --- /dev/null +++ b/x-pack/test/api_integration/services/ml.ts @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { FtrProviderContext } from '../../functional/ftr_provider_context'; + +import { + MachineLearningAPIProvider, + MachineLearningSecurityCommonProvider, +} from '../../functional/services/machine_learning'; + +export function MachineLearningProvider(context: FtrProviderContext) { + const api = MachineLearningAPIProvider(context); + const securityCommon = MachineLearningSecurityCommonProvider(context); + + return { + api, + securityCommon, + }; +} diff --git a/x-pack/test/functional/es_archives/ml/sample_logs/data.json.gz b/x-pack/test/functional/es_archives/ml/sample_logs/data.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..03ceb319a6afed6ed0ba1e5f81125b03c56d00bb GIT binary patch literal 1643792 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

~1b16fgAY&r%XslM}_?lO1^Q$BC;pR=ztO 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 G(lFA!?6?T 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%0DSIJEl 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

  • >HJ>} zVB8n&N{@W&T3oYB!NPd^s3>^2l#yspK;q-JFP-y; zDA%8{&pxJQv+J{q*fL_z3Q%O>03S$( zbyZw+N=IS4fe)%sk@hQr1;XPl4wfGM=gvSdn|a6dz#(=A~3;}yII3EHEs9otP~DrEOpJ64J%9k8cM z6AKZuT7Y3<0>%*?4@DTrZJ{G|0m-uDo`;wrPGH`QrnAyN|}Ynw)NWZHYqc~Uu+lTcsOGUe=le2#cGqyv*l_%FRqj23u!z>&0?%| z#=M)V;WFkU8H!RU>FE0`31#e4O5?JUC~Rfhzx6=4+>uWX0&>8JyaDds3mrUsyE$2= zT*^Mi7>ti^^8agaDeJB8VQlc**GqKjd{_;mj>j&S9tG{niAL{6TxFBZgO9LKI8#@z z%J{d}IvnNUSh++xcutev)mGBGPjUOh{WSCm?FRjbJiGj@lg)4cfoSKmyX<~8UlfsI z-_st>B?uzQ(|P^_x=J+Z;62TDX2MxP*RNsYDj_^}{u?N3?pnNNm;z)LhIXpiiv7Lk zN;GTKUhKEv`QHPo2zbG%vSxA$S~rB~~{5~cq)#mvKUp(T6y}0!{MW9)+(W-gYdJYeVwxr+SfBI3^VX&Al+IQ ze71@i4dA04X?rdVhuK!a=w>TNlGXSlCXo1}Ss>9H=Sz-!0-w=EKU@x?j?EgYoit~> zeEe3^JiyYLL@rDU)gBk0vb$n^v06l$O`a{oEf0QcuJrTS>|za=)5HLuwy|WAYuIisyD`DNHJ7Z$l#I^BMEw^+ zq(3?u`FSRg<})MAR$=eqv3}UmJ${44&dtUK-OMJuqPX5h-`fVRx36q9GV}=~Zx;vx5C*x6!$m95>0K_%ZNy!D^&L7Tf3W$q2aQ6v2?h6 zmNcn0hNek_W&$251HVT}3IrCohD|H2GH{wX9gIHI@}}303;mJ;V<2r9WNtWi`0YcZi;Hm*a825guZrv@E0))bbBK7mmz?cpvKw*R zkA$}pPcmkIdX^GiEnTEb4{DwjbLhS}&I30K$+OtD;-N4bHDZQKai|}}OUhQasj}kb z={(NqDQGJavsz1S_>SIgbKX`Cfx>JhbM6?|wN^c;$8ESECxP3?62srh*49stck>Y) z$hF4w-As?=Fs>3)I<8OG%|Yo%{e|GzlfYm_l+bpJ=nc5y)s{!5Y`3|E z*t7iMeSW(vV^YAqSK?B|>e@z*jLwx1ZkBYTj*1lBU>V4Vyp_+1O5iQjgi z9JY<%7sTKaH=f5?@fh^ zcqbwN?U*rWxxj=OX|j2!gr#CeI%#F3YAqy_!3cB2edDXX{JO8sCSe)dg#LApVGv!7 zf*PSya4q%BXxXRR81>=6GdUe}?pm8JH}8vbmu+{&CpZMDt;WmSa8!45ypCfJGmct7 z=@@+(?(@i14|>86$6axRPB1B_X+Upr!U4aPq@^-Wra3Ka`*R;bs4I?$D=lN-F)b$P~+%|;h1t4pR&6wM{f@r!@C>W z^>(p`^8=ZFcc`vzTNJ9takQ&HI~|o@W-VH%h%mfiQs8A5|92#09?Y`V20fG`qt}ip z?unLwQUpyQH>#5Xvcv1O zBlk(?V@{_XA6fkVY4icM6HvPz2AM|-wE5M+bsRaw^EQo`zBv!H_L0tOW$vH zH~Afnv=^VouC06&NKZ9hSbJD9Lf*`{YOJMC}Ho zTzsG9tHhktR!7i29%8yUSy&02)Rm@ok-O1tZ40kNJ_>9Cd8(4Ey zjs?gMji;~n=p8Be-a(@k{7AF_Ncw? ziNT6+Aet6Vc4>-rFQ}e}sBqYhbJtXB&rZkJ%hXhd-n>x+m&8`P_v;eDF)yc=QX0!} z_QFQSo#95#j50wUAtC(mbI*b)d|>pHl3w`)1U-mSq>MUOqM)waDlCj*3+q{#P{UM0kO-x1O zli9J=qe%zkc`5>1t`!Z)f@$XP#yG)J0agKpc7i6o0(5BY;rHti0ZX#^^lhyE`t5m| zPvp8M6bc6E>l|XB$^_Cc&kcHOLfcWEl+8LTh`Z zeMJ@&+W1Z9@JWj;eFB0Gas;Y{(F9SukbEJq7-u?xD4etx#W+18i*R9ht?tga@LGFP zI=s%aDC@YOB@G-C(lMt{8*_r_DVX!xMn%E|eDj5{*0yJ#4e0{>hd;(l+JF4N1$_-Z%JuDd%f1hWCR2v;p--46^$2l>jFe7>N4CO@y=D5)=Vvz1&t(4+i@%9oanOHXJ zriX%RYhpPXFDkYlXLU=j2SHJyaN=7rRrO2%!l~I(Tqrz%(?Cl~PwPJ4K;D>VYs9|Q z@(2%VdpZJC?{TEV!Vf1uZM(9bDi2Ku&UsccMF=$O2^K{1z(nB8kCaXh>?}#9y;aB* zC$Hm>Z#wRsk?mZ1QXs4CK7KxdtjHGhZ7dDSDr+%NNNL1EYvzO>tXPOgak>y%Zr1tg z3NZ9Oe}2QBg)m`lt5VxXC$!$F1e1=rFS0!3j{wk#j#UdK9lvKREbCpQ;DAbXQZkEjM-wc=TIQ7w&KP=JK)_-d zBeiMQ`aUT_pR9{TFMWTp!Xb>Jc+BlwE=r80US1GXeBrLKJj6J%EQxfcAgboDrqfyDq4pq#+4nc zsI9r)pULT#cAp-~Wp=&F|GaH?4ola~hBX*Di#_aDYGvT0n%T90(h>MP_1!TtU7@^> z!07onZ1^&{!V`)dS+fBtpx~6C6n@>f#-TaXX(F0u6Pcu$i-Olk)y1SQpEuM6c zo+phqB9JW{+ly@Cy>p})gn>CSY#0|j=3D@mWv*Q~GKBE%Ibn962gh8&zW;gwA2=5@ zM|R-MY}$GlO=uR_0MQb*Vz}o_Hy?w`iLl=1cd)Y={8zbo8Ye*>yBty7u1O@wwSbbb zcQsG8uHc^26bFZ@ES?ESjLZZ_z_dV_6S6b`5eq5ZvC_mhl#oH2$@w=eLIx+BU!Yh0 z%ubB8C`hUq-_KNK z7wNhsm8D6$A_NA1$fPmMsB!RfAZu3xP70$V6T|AAmAc;}6-#hrJo2-0Tf7oQdml+MZ zT~{UnlJ`=J0|2?Ylc|Yq|JRFwb}gE8(0-A$UJ2K7y5=A~lL8i91ZF2XqQ;pp% zu1AqC%zoRGUvhZ&?Qap(e*0VN@a}lh-I4w13*a7piv^`kNMQKZW1s+Bn!QppR}JpN zeOc^wPuVJe+C1#2Sv5R~vjA+e8i83de02b+0LzQ*&F$tfZ>2*t*5hIY;OedoB}KHn zRUDlwk55PE%hY?vwoDAxkm!ucddBW=rFNu@`p@P4AaItAF+LSu72Ys7$Ll_ga5Xg}Wvrs64>$~aPe)_Amwl~Iu{co5h!f~7hM0a<# z-Q8@~PuZueSYNO5b;L5U$C6#B{&Cpn)O0)P9a{!54gn=&`rT#f$YW!=ia9!11{Y+@ z;eI^Pd|SbW3S%Nu8W23nA1HoIHTSEYZ9e$G`SWdhH~LR)3^RGC1kr$Z$roHKxM4Ch zsm2jO2t0hVKya!m@(H3{=66|H_!Zgl6(1mGf zus_BGd~htx9hgSLcRwg^t2RJ?{psJ8X{%A83<+QDm^)#m^2jFi&7+5mF4toqyL=Wc z{*>i?W|xT+8qeY^0Jw8|aFt&z@0Mlum~WpRcFW}X<;x|{hrLZro_oGsOLy@QN;-(Y z$U?Ojky6N>ugc-C{dahx#Sqk~alu(yfx>IJ#%rgJsRI2(iJZ4hko?play|lgnc9VO z!uYcwsNp=R7u>@=#hj!df`{@&q4^!A*hO~paD7v3vyTs}k8rXtQ50!(Ad`%O4!b>x zvPdnUbbOz$K82BiwhXe4p`4c(Z`67a!A?RF?raE-bZztSjkg@IUCJ+i+I;}9rSNeM zc?x>vdkbF%CHKF-R03>QLm*ipa={gIwuRH&aJ7VkHl3N0YBA&U{K)5G#>cX_D&Q?{ zvyaQ|O;OTd`}}<`*epEkMt`bZ{54v*8;9p5L+1KrR+44Jb{z+};LO5rnz8cXfyuB6 z)*vq8G zBmeZm(`+|w;NS(69e|7DNS2iYF%#f2>hc2@5Cf1Qj&quFsaB8?3(1OZZQo!OytPBL&~2#UKH= zU8dp`25g7Di~?|5uWsP0#_ifFaiyd6WvanLhw*|ibk9!0Wn6g39N@H152rO}IN+;2 zjnmG+w~MEFBl;TSXPsx%9eDgkq?J12;fD4mJ)|@WGJ` z>$oFjBAjF1cyEri!KN&vM(#iYMgl@|E2L94r2>DxV{dh^`iOVNk3aWpeZdDtPiX0tPXTM`Jxb4cpCTw+iJ}44+~IVT z!Al_T*8S=x+cSlNZ4VFkKXTaGGJ9O!?lxsyX}D9DtXA8ztum0cI*zT&W>A@;&bKh-TsC^Ym?`l&rB9aiV773?7A zqp=fG75JK<3xc0w3D&@O#qija8s3Y&7W!Dm`j*lO{!a`!|MPb7wnZoSWXMS`eP4P3 ztbu?Z#kozgDXzpoS-MMs>4>OW3FXbQ0UodElnqEoJW#W)%ip<+fszuvs?f|)^@`MGAk5gNn0ZoDz4`rSwc2Dt(&*Z4 zMNR|2{rRx9T}-XN_I<@zC7>2dGFsoyQ@vL?5lL6ERUDW@)vD=bt4c8MQ4Bm%UzKP* zr2H`rvy&=Mo-A7>S3Z3pECGY7Av7V_F1TJu|ICs&e!+($HVv)-g`#&aHB{8t@DMV00(S=X%nUGFf z*={BA`nh&F36hn%CwyRhJd7-T|FY*05yyHI6tz{jg@*Gebr(=HRQrF@g64O5`60W` z%XN`IOc5e$J1}mMv-YHPh4PhTr0$b9h=hrq0v9ELcgaw7`+ac^ddjiYd0+JyUQA zmywF7Hw-S}GQcgp6*#BaZl{;NchkrN{8=~#JcZ;`jiGrF$1lu624<}3KI4yPZ5o*; z369AO(~Dfot2=NG)>7?x$td~%=c!eW(O!>`LE-ndf*+(c3hhr2CoS_z2N!Lw!%`U| zwP~N-Cvmc^b95G*jI4cs&DT!Dr}6uFH4N&0ZuWdXfZ`#H(8)9OJ9ghs!1)}SUsiYI z4A@zJUOINpv#@D}i$EvmOgP7kXHrd(m!uf?94?-;A%cUen(_*fwG}$w{fmIkH~)x0 z=bL{l-~;1BXJqaBS2l-H>1$z7EqCeQcE-51T}qpH)TWVOcE!xw<=yfr&z>G4SMdw? zeyZy~Ztth|q;!a!=j^=HI#Rimcn{-Py<%dT9s@=reL=upk{5AdC9^?UePn?CEj4e{ zHbDQjW!`8+PcM2udW)S58WybuL7IAT^zsP0Y3dbm8NdTL58&LVey<)@kbB)^pYqi% zHe-KzUxC_2MA7raz5?}!rUU6btC_+XM>~QG)aCaqh|zol2KLZh2*%N4_NZwjjSq*R znK@n3$%XG*%S4S9!2|NH60*!n2u-+j3l5n_V1|cIhTwR_=7E);lgw37Zk{q&@H{ex zdExeXbqB_6pVyw0436bI377D%M7#+dlW+&)Y$PS;VOHO8H-t<_IZbOh3*(sbJoqEv z_yd(-wt?dhEeYm{eF=&6?_a|lWJ~xZf{2{6ws1#3LVI7~DQ)-o#v?c{?0mmLLDI*~ z>S?`sq|vkETAT)2;ruMuedVA3-n}TcCeYnmU$9jh`g1Vp@cSYs-vbwP=IZ=@dQTW6 zMvnu~L#LB8GZNs3dy>F}JtnQ-!W-HxuSi?(fBidx(Es{(tF8BG5jwI5y*u(luKl$b zsE)i53mi_UI;A8zUg1fc1;vRRPFi1;+3myfz9_deTu;{6s=YetSl=tn7sKyKu3C#!0Ucd*UD153S0=e)By{aK? z{z?oK`iigsEc3dP@(7-=Y2?8ahW@^}S!ee*=y!4-1JNNBgMsb)+G3B}m8v}{9R}xF zOw~q3sG-s@_%Z~hMk0m|Y)NU!r0`Zo8uvjmE=@qCrdA{*D+X_3NciUK){4PsEh%y{ z`a`2p);o@Uy#B~o34v624#*n}$~U@EThv#_m3UZET`4?((?Cf|Q~&q;Df^JUfB0}) zv|C$0d&`TISgX4*v=tS7pBDY+!^4wNbUR<_s1bp7F_EarQ_Lvgx*)lgk*<_O zKAYy^2*sWh9ckL;->fA0zNQ0P)3$M0VxO7KC4lXP`U3bcw@WHapGB< z4p4UOM!`3}D4()&^XCno133TN+g6(WfFaIPNZlW{B^5xsk8#$XmJXjUax~t#gO7c~ zoJpeQnRCqX=|QX3EO@7Qq^KF-QURC5R#^RpQWj}z{C{%>Ws%srC)6~DNQ2hHptM1` zUErSw-_f24PueV+M_nPevr5y&J)NqXl~5M#=jl{?SUTFyvob1$p|zR}<|q;c%tRPz z81$-mKZs3*{+M3aD4Pm?fm$OWn{5Tvlg`bbwpSn7gZ>%o5Y47q5R~wU7HGO-wCK~U zhrMqw_u(i`qee<~lCI%2Zq^x`%KJ`Uc(J!W4W9N_3$1O`crE$b8^&cyDxoAJ?ry$S z)W8GnFbcneAcGMMzI0>Fkq%@?!7oYxT&*G78jpLd$Az-o!zQL8 za?(4-GvP`=>9{=KvaQ#GF59A(uj35CZ<<5_sR1eglLZaSUNC2ZF~=tSN%QCL{u#mL z@BZ0p{yZL0fZUD#Y4Jf~KLMaCF*NZR#ed;i$)pus2UqdzO$UN$Lh9~jvwq4xWySh> zm9MW_xdN9QSFJApP>w+7an;&G)6w%qR&8VUqh?P8w|tWRqgpa2oa8}k3R59F6H@7R zwJ9>uZKDjdCA#B)DZL4!Nc3?MNvi=g`KV&S_xx??D=wt>#RgvL6@H}_umfh zuh#ipv3P=;aRz(z;U>S`JifXwH`sZZs81>Hh{1n*gT8|QU#veA*-f!VeX0njwg2*v zFx@U)HGE2-y0uZ5ZiDC{?-?V?)`Cih@fYbkWu=VNEv#cfBgbky?Z9EPw<<7gTvVFc zLH_KVu-3Lub~V(lj^X*67G}eV3m1_+IP-8pJq(IPYrm^sDH*ZqV*sAPBo4zavTD_OWSbXaC_(ln2$hPySMjBsmW@4UR3FOqq3^RP~C%K3V| zx~CEIQp2mO``;ZTTMe(SJt7_#&yx!t0vC{U#M~#Ucm8y zXSM70M=JNvqAZ^v@-J8GKpMBc!U(MFD^F0}_uh51{Z)h#u(gNAW9NAiutQ*{@PTpC z8Ur)Sz$IaJgoCUUXWp7rRFcHcKiyHojCSBsH8+pZ^Q89!_T5Z^vuM8twmu@a+NXJ} zW(CCxlRQf$)Ba$TRj7Fk@7j1^lI*g5%-8e9JlU+lmibc=kS-jeNvvy|ZFT=+qwn@z zVzsA54DplK?H6B!?xmfvT1*o_v9CK?4J&GJFn5oSN7rd8r*bU=Is@1Yi7FoO zRUHODrXDTBoD!)I46^dr&55jc6A_62916sLZVtpx%XJDJLWH~NB?RMII2q9!TQ`HM zmGdnn+)CR#aG=tvgDUhyhZf$)@pi}lnJ?$pMe-O-Wwu-Ng=*%zLyDy?bzNS#o?fvf z9&)FtMPRryG~{Ae1^SDQxq*~j`Z}|K0oqzG=z_XrQgUI^7+*Ga>eX*hbcc|5RpU;_#pO2x#)3zw^^0R&8oc0H=%fcZ-tk@ z)7sYe^;!=X(lB*(_ta?Q{5suisI!``xC@DuRmDW=7#~WUwI4ZOX$FzL2}!wl!vH80 zgs#o3&XeW>PVKM;4xxJrpikH8o*5KwDxIZRUP@2J&c};6p3FeIsjS!e=C&x|T$1b6 z0!5Xj zX`iMIEb`fWy~rPN)tj=oflnv53HGf9C1iI?ya;wyx4kX-V7*#AY~Y<+lg2j;gxNhQ9vY`h zR@E{vid(2>rF#yJJ~so+6)?`E42;(TFH|^pl*&aq zn(ssD+xKr89nIkyrUGZtwPC7He`(zY%I(Br2n1}#w61>P<(qD_Kf9lA%6W3PTF%OR z6YLTgL4B-tIA^Pm)t?%VyRS0m3Za`LaaX`QmZI=|IvCZfKZ}+>%f8Z1tU&snPi@-l z#D1VA%QWR&KQv618IE~CA4m6?zZZ+PW<>ydg4Z_dx!CoI z@_FBegs9&BU-s#2#jemHL~v}|Xu}5Kwq^#YCurdxmKxcm-bGMs@j6ZxhT$|Hibb+X zW)EeVFRugr4XrljLT>Ty9EYoSwPNAcOo_+rX|iwwl`bSDTgD|DXE&J?Obh3vGo&Bv z74w!`bu0z(+kW2mFBBnR$5hDR1LyaH$;0THe^A0JZ>;b!(`j}F90Ib;1ZpS);2pM+ z5n?Uv#JJBwyKS4%ovoJnVwP-fSND0mbj!f%+O>1&?e4Y|Z>c{t8akg|WqMZ#8)_+g zZdr$ak8lhE{37&1I2)>yX@K4|)yHTAq*`F3a&|+VY@qZ4bqt*cA+*t6^*nXtFodcN zWLJa9w8kOq?Pei7k9@sLuJVUj`9#e^*ybPLVvfV{t?x_QzTPbwuZx?U#^UZ9bO{Hz zcDO;jj-7^ZY@H2l6+5Hi@%%Dr6RV^U72|Ck~8R;4n5VsHtmup%+>EnEp zFXm6lH}FhXSB(&PDcaY|-bW&1E4IPzA<=;N?K0`t-jZEj2c~zU?wxeov2>CT1Bw0V zvsOu=0+L5-V7OtSv+_W&yX^7qCh>#%Bw#CdcMbk?GVCQ{y3i{pOdS++^m}Q5%)IWLV&tEpuY93 z;CjM9TX}dq&`wu*R_HXq6i|+Fh3^)A4Mg7RDL3OFVo;h}OM)%7ENQFLodPutwtu`Q zz_v*r5k3$E+Y`@%4IM&vxf!RO_flye5!vsVaR{<}%SwmeeOfjPB)*7@pp+i1GlMsB zdfj2`qP!{QN%@q2%a`lBISsolx8zbe*4jD7lD9gqF@()EW8$%Sn!2@GYI=B#P-d$e zg5e>2Kf=TSwkjAc0;ud1maU{bmS!bg;3h`xIi?Z@H@~aP+Xs#JjG*WRsHhJ=l)iB= zA>OfZ__q`vV6iHTWwO34=Z{56!|8=457sugdk&z@5Qf<_b>2yGXpDp98zHPeGBk$N)oQBeH|c5(*W*Q=Mjw^Lm=>>!5#*c% zg_<8i`!*e3?Fg=8C`XaX-m7JDe|=TXXU!RbrpB($OxFkxw0bCgvjMG}yJ`=O2HW&? zvR&1VFIpEf@XQM)gl1x(Tx_r0fMqB&Yh|F3z@egvv*1THf-O0r>t7+T{nv-HOz5I_ zK0>(LYHm1ozeV(ORgE~rR+UMeNx{sK+1PlyCX1=-P4VRxeAIGvHE+_;y3Ba&>Jbd% zq}Cr1kDISjj6m6d04zjJ3|@fLGC#txh6X|ou6?R#(kVBBrKvWlZ+22o+9hx@u|aa@ zyOX5)wOs9NID}1u3Y}X)Gqr=w1D>g!h@NY8TJ{Uee|~+Nm$PJ3J}jPSz`O`rR(HNL zS{_Hr+Fu`!l+(;*Du4?T3SmPy_8%&R{~ZPl`-)*ZrWM!5D@EcVx6C=5e`34iVUxOG z6CR$n#uPe)2np6cB7=1^NY0bX;54MEdz8t#C?AWm^6mGULw-LqiqgZz>o~r&=a2a? z%lX}EkhZz8H*rzswv1D_c;iFYAMWR-m?fXfB0LJFMZ^DD0{8Em-a7@_w&B0_&}gvauQLUjrgSY{ zTV_xe8E(HENY1qvlEQm!AXqh$Zg>LgQ?2|lF_nLOB(SuJq7NSkV(F=3`M}mkBtiQK zxYn#7xu+V7xQ6pKy4ZNnCK1?omdw5?ZkKn(I5o4Yhtxe!+C?+F_M~`>on{k0_l9m7 z-`{<80;zEJw#X7GU^ zik_Hd8aROng+Kw$xd#Mv5f!Dn8I&`sz(v6syt?-kZn%u&a8lbs={@F6i$zi*t-s7S z8yZVTJfFLIe6g8jzyC|_2{418UyRUtH+^#-<4i>2fi}H)IT$Qz(*}9Og{4rn7*S8IXs!RBwwQU~82dzIM9s|#l>l^|Dy%r(8{*+m4v4uz| z9Ule?#lW`=&IEMme|oKt`JeBpnSf0g_`YE#;K}lt^wxI`(OZf1H&LHnY#@hP+YBXS zoNPouyk6r(z#l&4*J3$)N*4LovIq{8x>OKe-Q|IT@Y*Bd0q{KO%OL=eOS*%TD-RJD zd{8UK)ffp(f;p}s0uOkB9A_7KZA>#6l=K2W{1!mK55Jwq3k+?3SNdlk$>u#H4&6X( zTFE3_N?ilNFUj*Xwu5w~JnZHiy>!z~mH8G9YY~zh-L3i}o?`VR+5+WzwRqUTd$=Zz z4>^prCq?6>oN&_82mD1Y7$y^t@+U@E)6oXt5?;a3EK`6}Z?Jo_nW^+~UuX0$M-rCs zf#Ds-z}|O7OM|^yI`t~XVXWCefh9N^QZwbMZ29jQv;1$)GQ2`cwAqY~`Q88ANdC`=Dyg3UUmo&y;4?x-N5}_xe6n zsj|xy zK^5dB&p5tCYJZf|eSw4I@cYWQ-wU`1t*ksupyHhzj{{5+nI7}?d@)ZJ`M10*8mBh3 z*?^1q#nnTLMd6qwhD-Amd*Y$^b&^UgS0qYvh0YT488mYPxy^l9QKA7nXJw)Z4%a~ z&}+z!DY%l8aGu*{eLt7Qtk}*{{+cX`HN0fO!dTlqyA0u~cGR)R9<|DFpKHaSXlPf{ zO(6TA_zG7{TjsEZW+2v8U-(8nPcN+q$ggl_Q|-kOjq0ENhrsWTp^Dqb-!k~XxqNK; z2)Z&4`sI-;CQ#HXo?^R=P^L@9g8*$$X|aqdwY)6mi{$HSHT#;Ev)IJOg*sYm2Q^$` zqZQG$W=cHdPE%Sy`G7tPgclsXM2f!BI0pu9T^*%;V2r9mev%db*tC>S``Eh0)dqb* z_&^YFhZ`6eIFEBqR;}AWInKxyGUQZ%`+UBnG_UXijzdm>!q^!)x$EoIRnaW{|6_F* z;el1RJ&2_(MXwGQ682OpPmPDo>E?qy_km0U#OX*8cOJs^@lhR+weGcaA~5<-aOSjA zLN*uY$UMXEq4w3^-!|qM2Ai=;oI^y7u2thdz^XMViJMhJsD@UZW(s==Do*Q{Vg-x) zE51b;>_xd+<_{Zi`ttiC+Xa*P8^l zuqfBpxA*gagB!O?r$On6bVK!|gGk+k(tXz(Znmu$77ykV=J^^;7xz$j+%fJH)^tV) z=3tk_nb8zM2df$dPNTbCN}o>Inh{h4EfwaT zv`X8|lHRr>NTO&oDxh2~ikswawFz~^wip>baBo3v-}{!0+K!8^KQtaVr<-ULN~9!k za{v6A$N{?u`VyQ{=Dy_y>W4szw{hG+ieWb(Omeka%t9)tJv9A>2HEOa#qyj^rRZ0) zB^rCptDIBiLt?7{kU($0MzU>$2Y#WDW31*&=KXfYDw*SS=~nEoJ04$J=`XbJXYLiK zn{kN677M2-`~jH;2&V@nc}hoh%H067d^s-`$p-#I!*gvrE>(N4omBU{Kwu3asI5IL z9%`q_DW&~e)F@UA6J=_kyg*Mh+foccG|1oE6oTblN}?ST8#~R93Y9ka*O4m7}2o zpa>x~R!&ot%O3_6drG+|h&H6NA%YQ3hLRdPR-2KLlyW(kG`$-^eMTvlz!`MbQ}t3< zsfCjfDbkt^hxn*7VKSVGVq_Q9fR};q-BEN>4(Mu`FJ{U8^*wxZvj{NtJ8V}3LVwN6 z<$QTlyU*Qy)ap6MW(%U$8A9}$LGg(GDwPJD({u^U3x?{d+A%$lr`uPa3j!12CAWeU zJ9L&QnWi>9qK^H6>HzrLn*gT&?M?RKY)S+45p;!gCA{*+3LoL{RxKcBSosV!VvOz$ z=$KT%yEq9sKm)!8waPZ1a z%oM_!5oFhv%~H5pE|mEtThcdq$!@+Kbiq{QbY@YXFaW7;~2<}C* zyw?Fjlb-m_MbF>^LD(Kntsrn75m{%ao%d2{A2Xw&W(JAj921tZgJ1#P!AU@M+w{qg zzR@p94yRnMLl`~=se|f)_2sO!mpZ6DH6D^Llh^KB&9g?*X%6EV`ba`Sq^k!?UiWg6 z6@#eQVrv5lxZGg7vvGEc?1;eLpLhCf-3m$%Mp%qKt@Pn6$05GTk@SHDeBICa)jTv^ zc7Jgf0m&i{;&lMrC?`BCwgL@^v2QusgrL4s38e;Smm%herdoo36O5Ro;_m zEI7Vzo_RIOakdiPE#uOFAFG&BQt~4myrdu7lB?rv+9|8YOQ7%!`U_+zkZiyH1VyoNU-HWA+55Z#XN%62a zO|q_$0T#n{Qs484Q=!HvY~Y!;DC}e`1&dBHB~mSviWqSF>mLDF{PmCXg!h5Hk4T^H z8h2v?{F)tKT58b(%?E8%?%Bce*0?=2Q@ac1%9UZyG>cp zpU=kM4V*#emfc<>WvVuiQM=2OL8f%Oi85iL7u>{gfM?q%{jOL7qTWJ~{uPT$|Dh4J z)n;7853QbEEIXj%>Kfwrohk7cJYDewX#^d=bL|=IqTKo`!{BgF?F5xF!?g%BnDG>@ zf>A~vq1+y*By7<(M7e$UCW8;03x??<=$=2d@XLyO97h>}!&M`w@i5wC+QH9zDJN{T zy5K5~C(LgP#;uvQJtP$dPNCKgF&2 zJv{0;bNVza3{q>dr*U0f$H(mD`9@a8I6VL9AC<9Z+y%g7+uYek3bL9Y`9gv$G93fY zE03b6m&peEN7cUj*e;7tkk0YytEw3oPG1#0 zH6KMMO2E264?GmkGO;(^b7pISiE0tKHMVbS%*^GiPPd1uD8qU4S?!;v3h!Zf7ENS z`tldz5)QfP3a_cxNs|YaXXk_LbS-NGx3q`11entH*~Px9;TjQpfJKw{%4tV->B)`6=z^Ug?_ z7^3K~e@`fLj6682DC^wUYIF|THsN+@FotCt>{+h6Ja<|Pd*iaH5qR9r}Vwz*Uv`ApD^3M`< zBUu>XP%jmjluFQUWZW`uz1PhxU8MEFk5>uQ{qbrLo5s|-58W~wg+W0siX}NN^8s>e zb_Sx3q@z)IT`!<|T^5dp&kMogVNp*NbKP$@^T!XT46BKLdOpm(N=E@N5{?26Dh~y} zT8td$Y(u=gg73Lcd3bsFt;VyazBU+m4S|EHh3_)6CZqI>!=SnX@Xo@*@1j$Uzj3Qg zqW_8<{I#5~7f;3Ytg_4rw_RNpoGkz~>ohg7Lecf3)Q(wn z%$LmcM5cDaO^ZhU9!F+VxEVO(N?YrBvk;4R1$ZfvJ-FWv(@jM$eQVpSE=t%a2GaP@ zp^V%avYD!&p%eDncPA4D(ufacq3{KYk~m@+xKh zef6e<4D` zvf6M-UJQ9Sr5P)QK5|q4*Pp1P`LC&?`L88>APJi1y%-|4-Av#?5Ejoxmp$vJBVfZv}hUvHr^oyQQ~ru_^d-{qJZ+jc)H3} zX+omOD!9D^=U%QTdb*|RI&4NT6?EWq<7<#i2IHIv%{DD>C=WR2)a0d*!86CH!`jRk!Ob7XsXnD_G$5Sn_?XX z^diWhZ>w3%h37N*5k#Tn1M{mieht>pRs}c%)oc7YJ>8CN@9#S5tGIK)Nm^KdZu%z2 zGP`L;!EmZpa`ju2yxb|Lg_k-r zAj|2`5bknzSA5(q<_mb?+v4MLcav&6IDM5aQB_Bo?XRk?zhVNr<9M>M`>IAU-%sIE zE-{Q3`_di!4Li9va-$==Y?u+k2IT_<&QMKrp?IY^KhXz9vCD6MNdWYlU&^mMe#>ehQO^0DT-2i*R}?r!;TLnCjej)MWl>PD%`#oqIE9YoRO zBX5mc9t3&&u9}6W@BO5*C@YdUQ&sikM%z^`5m@k!W;re{?;hS z?N2I^$VCQ1cT$=~VNjQVWKH;aX!lfwXD1+U&iT1CWLgXl>d_=Bs%deqI_B6BX;iRg~ z-d&H6u=4^h3IrE{hHAV;5LR)2WQxs8lHyo}3?E2B^||^k5)0o}5qIcUYY)*;2-GA- ztxGfw^D?^ntLcTOK^HeowRu0gO;NyL+18k zLtE)lh!qmjGi>Gb{aJf;)JK@WG!6?)*wDh!mMMXXwdRJj-(EIU;D2m#l7SBlRKq56 z(4~lN50Ft1lr}=C5@&!}(NP?}p!FV`>JCS7}6Gc%6TU#nuLbWQZS7%LQ!!*>ixZ}ogOLnr}?0&OaZQwWf zX@Uh3PvOnml%}vLmg^R9TFu0%wP}|rV$t*RF>@H6_1u_gq@oRIp{&`fHYLZ=C1WI6 zA!TqhH$Kq{93-6XIQRU>_!`{IHH!|u5^ia~ zL)?zj0#rEQZ&!<5@ezL9V*8Nlb31W8E>yoB5_nE2LgV{2=ywmnikkKog!gPk>!glG{0ljx($QKdP~o(jpF)WMj9Bcxk@|Iu|b0@LE!UX5c zk$XRq!uU2tVSL+6Ve|sNsYJBD{yV9sO&K^QateXtKsNpBwFg`{NW6`54$tCk~?ykD*ky z6euDjtQzJ!icr8UI1ZdVwIKbpn$4GY%Pmw~kgioqG7-P_Ie6R*$DC?Hx)TYzlNf~f zq4|(HO>wZ}330I0IQ-f$endbVm7PimN9P7RU#p|jw&?Et%tv8+epK_HT!F}MudL%KP?d&K9EG{vz`AFYoDP(>&5^?agY`aywr{< zbz;-oUT+5BjDweL0nvY);lDZf_U<0wt9-lp+$3%|(g@c#(^^f>skA|tPPpiK**N=V znk=dg>8b1JWMbhEKF(4X<-A;Qp-3QgnsLiLUjH-#DM_ThO9>L*4Qh~1Wgvqt=%PZX z#6aPw4Dj7yqIv<=q0Gg-IF2&+WK{wV%!EIi6|?ojX1!Rg682;LmcQp2XHiY(C<@>x zpnPDSCb27&5{a?y!aX-b?FF3UD{+-%Tv;O%Qn5Yz2*53!|N5sVD;0ivn?UBD-VS2x zkXri;{-Fyj$6-(egw~~$I2Agj->naJhy6A!^u2q$ncdwj<^>kb2~}A9(if>`tI5c% zXX`JJW(_J&%LmQrifo-zhQv*r^&;GUh5!?Ol;#cqoyrKyEnU-q7LJv+Y)iB zxy!9&&+MWb$CQuD({y+MJfoY^uu;@9oEyM>KY-kcV~|YSkS1$AvmVVKj%aSliJ49P zXiXC{&sNEjE8o^A*C^{94?eA01b8+YJN|vJGB=fk_J!^NMYGzqqBtlbR!AhyEH|BNUEGo*W(fcSA7=0^ zSr;D{o7)GR6FEIM$0%W!E^Xsr@)39#+O?N)lHNHIg@fF4Zzy3OVfCsx)7p5Ikaq>c zl$Fl-BfViizZ@NT41nPSy;raF$`33ds0Kk9fWe^<3fy4%iN!1Kv+>XfRe1d(g8h2A zwOoI=UC_9C@%l7c`M&GZ_+i=T_~%#Ybqm;%XakeT%1MT|$Dt?a?CN#vnGgoiK~U%^ zxWNH+BFJV57U@fVm72zT_3MDXuTJt#{Ald>e(5kLS}=%xddXOfB{U z2?h%T|L6y>yLL065vzA13D}x>?nDU9ZDAx?+f?ojXHcF>LVMj;7k~0N3d;UK+frGa z^Vv)`RK)Cf9HqJ$U^|Y3Yas1oKHO}PU$_UrE#L#!kGnQQeCn^C0lnQFW~%8rC)LpO zdTGyuN-X)w48Ecp+E&A;(-jtb;Z0hSlhhR-| zL<8TCwF+vq=3nrwmJ(_j`pV3E=9M+#n6)fDf>xCU z)DLN9;8Q&fpzH$9(lf4tG!!zUnoP^RQnwMAfB2;(GQ$Uw$b2?21G((Oc1u)apoF+u z;y_nbZI*cdxP$n1y8_;E^@Nu#H8rj{E)^RCgFv#o|JvNFi;uJS%UNoSS?&GLgS;7| za;o_`l`c5ggg3oNT9#XRVm`dSN~+fQ1XU{nlspU$p734kX|O^^)dQSq0Y#Oxg1kh7 zdQExjk7~w#dqco%jbu2m4<&qHr~;VILEFJ(o!TC%AyA%Rs3^jf_NP_9v%9&~wBBJN z6fR9Ste1-wRK;7!>uvk0`0J`%gutyPv5$I~c)PR*SS6HvsD70uxK>#js^Qc75w9G% zzMgK?I+7I%MTg#)keDZFk*v_#9WeLYd>%ol3_@#~Z-tv78%*Ac+gtX^6f z5yg^?;Xk}im9Yt&#BgDdWwcDf2X#LX-tqcQ8D4~SrrSOc0&~hX&Zo*06HdSihFBjV#)R(Ij{Il_9uk&bN zLa>(Mvs=wm*UP<@qk-dR=R@%@#Bv|)a4G~6Zl!eS0|=#(XRsT8y&jJsUU#WB>&R$XdS za_rEzX?<_yUyt#|xF085%;Hq=)x5Z#ZIc&wr?1RKxZ`R%bBTwncTAPMQ9$|FJxz76 z^EPF?%kVUb6;F_(WQeU`&O56U>R@3UQ`$kT*DRW-O^i53FTe)|Lgz#d+RNFx+~-9> zQ0%ah=wKzJJI^Rf*pTB;vyp}H-SYNkwpMhTy+W zQ&DV`Ob9A0dc4Bl&h|E;y;E_l;k;v=myTo{JSt#=4&j(;t*xH8>5A@b29k-jANq1G zjw4}yw%1xz`Y~$sE$pyyU@B$1vso>!i}mKy@?m$oe4-)sGB{aX+*5gkuLyY@^`al2 zk9x0C#H-*BXi#*V!D$h`61pc6wmW4Yg;Csi+8NR?shkedG=n1Lf8MBD7|#Ek%)p?| zx|IkhzCiI(Xk=FJJ3 zqq$qC)s5OuAdo#7=5$gXI3~R@Tno~b!J_lIbj=9-?tcjc{>SeL1pdeGC48XwvXox- z_JlwezP1_z#Rr&B;#?$gq8o$Z>c8rI>}cmpe5qP*XAd{qr**M|AGiE;Dj7?nDXc)R zXj)B4>oPWLUV7zu`H(qXOIC)|Kp7g zm=)KX`RCN#(@C#=iF^MjOSxzImT#9HXI2R%A9-IT@hWv<@}!i8Nt_9Wa{G;sA>f6bI6Cl*HV;d+7yQuNUU1%eH<5z2Qdn3eC6zZuWe@~W3{-!Cwk6CiVv|pu- zg7b+9zmg+)1FJqt#Mb-hq*t75zeV?4qrE$F4R%F&iv9kwCHKq!{rj8ps=-t2%<@=b z`P*|7UHIHX1QeMo&AyXTgzi|4TX3>iy;|;O#d`C3mhidh5vI?@3m;N>aj1@?$%g75 zCn}b8ik?;}E!(%h8^df*?qgjUV~qpVB?-oOwFVWR^`^O%ti}xg_mQhL_`pzTOedgi z`Rt6aB1mU5jCZ3DD6Oo~*yyA9iNdfWtqQmo$04gdbx6d&X0Tet=fwk*%Z4@-zplIc{lC7Vu4!9Q~zqZ*tvEq=skGDxYd0bDsHNwK~?| zd-W#*mA_3j_-l!^xwtE4tJR{5P;7vy5?`}1fKV)cUOs4EhAHkmmq$8UBxd0&gJ*XUn3Q7#P0hG7 zJlH@xGdc!1F4=Py2uFuC=*sW6A!Nt@|BQ^M2r) z<44MyIPv;Axx4-bNsvT~B2}Phm-6ekhq6q7=mCiV0RpVjt((|l&@(+a?CCyzx+R&m zy!HKa#41mVN652G%W{X$d0@hkA0kc6^^^+e$Q)yWaTRErWlRyno!Zwnd(=wW(Spvv z-p6-`#RQ!dBhVHFlX6OARkGkAd1eyTND6Mka~>}8Vv!YBNtWDZMKN0?UyCGk?SI*T zli+IEDTm_fR-I1M&;ayf zh#Bzl?JxmoVDE<&imh5vk3jwS)Kqa|=`K~aCRPZCY!cBYrtEUDTr6gJ@-?|yFD|kG zNo%w0lNFN6o`}58?~gbu4~a+7vt-0_7MO3qy^so(L_nn86Thl>xbIldm(r&}@ews% zWk9n%GB3OL^?zaIq-~ukg%1QV^vLymeE%bwzl2j(OJP`y`e4}#ED_4#E(dVwT4}@j zGflwz^^uMfnR9^N_5Fl{MY2jRvbzu?_VBHVK;+Jx*or%2%la`(45wd9_QV7Cbd?N5 zS(~B~F9<@veH|)Oy-weJ8LUA! z;DcfHVXIbP5G_n9xL4c>)vA8}!;cqq?s2x65bF=-cybH4{#Jf{UF1*6?ehBi{xIc( z12*C~xEv8Fm;Klco1<16hUk)6(GdN|SPH3HaqO0$R8h{l6m&D zTt8yt!~8j%L|A>e_*Vgu_TuRxFZ&&tC|28=Q-swO=LMnrz=2{7D{4q0Zyz5I(bMF{ zDlYMXVjF6tBfioyLMbr#MpY7m=Rmu!6U0bG`5qNpe3)1$z47|pFezem<0JAKmMfv* z6wruPg|ZP?%uIz3YD}4-faZt&@fruM3+w#)nqA%{^W}PV-z1Q5A|BUvi+fA_Rvr?M zd}o>X6>$1cV1zegLwxiiu6;pc*Wu)TRF$*T8IGYNW0pwkoDrfC9?{7M??Qb8?>-GU zoIK=&AqRt1ZNP-SmGwRA2Mc}g>F4q%auQ)G2DRV8+F5p=JY;aG4ve{-LT6Xmsj+E> zqjq*x42s9_>E?i$3h~7RM1ju#Ff&R81VM>1%-82aoeEM4rnPSFR6t?6i7+-COb1-h zTC=8WiSDNj7}tTDR0?7>@2-R3&*FH}z8DT)Ef~3Nd>&}99ait4Wn5f#S1kS> zPwSv!O*Huad6wB-WpMhLF~my3G`y1I%PSmdXd{|fXzI8fBC&vOe9XYGE*-ZeBhYqR zlL|(hm8C51>@g1zc;SdmHXw$#bCF#=K|p+!&F=#Fhtk?lfwmQg9GZpLGI>$!8=7sm zkBW!Vv!wEJj^H%Wp}s@Lf~WiS+8-~1VX z*EfF-soI4*AR=n*q@!520wW)6#_$oPS#t`Zl-%>TOeDwaPvRti_t18=AL24!lk0rF zdd%mCryS~=b*iLq#lgo+Iy5aY%vLDb5|86&DY;;6AWrsEj5gB&_z3&mBqN$y8A=0N zOQ@rpEO8@>zxoS7@g~6q_(1OcTY;-9V?L;)+;b@ zwMt--^Cv&WrH0gY8WHlLK>bpnTixalw|Q|DAVk#m;ytiSaX6M~JTQ?r6C4;1xDTl#%eWM+@vDCNkb6Yx}W5Wc+A6F?`=6 zh+w8=!|JToETDU18Q_43>D&Dn z>UjA0?}4Np(S2_{&!$s0wrs-=lnOsZRml_%6nvL8Lh0skofVeeWyNxyTr4l{mLr1E z9hdY0qq~oYhtX;38wh3s0Vjo^jc&yIdSZ5UY!34i0;CcQCw5sMFG)w?cN(D*Z4PUi zk2_p*818`xZUDE|?}W86LI))yYJmByjLNMS5bNF?=8xj|v=E+WfUO?=$xn)80sGQ| zq&1GdupLhwlcE*T7q)9nJmj8b%9c69aJDV;ZOlv%CI#t>Zrf2)*K48}Wi+*Df0*Nh zTFDgK)3S>vZ9~Jw-hUo4X&Z1t+c>rh-?nN)9hP~joS$Z@8SN^oE2(@wk&_5_v5MLC z)ADLrBv0_3-_Gv9M*-$mH)&nir(W^9?9y2LKAN=du08PxK3!P_rIj|T;@{5kiTEmS(rEeUCSJ4W(kMV`JMEtg^wfi%#`(?g9j)>Xbg84k5rVITHbA`f zU4MnN%JRY(TrwpZgFl@n|JyZjp*au8+Q5$Z`7O@Et+gj+L$}n07ixWGE?^MsJ5`O= zl(J@J^O{@&`iCVAg(lx=i=yb84% zXV@zMRvD92p<~k^@-@o9;`VS9{(9AtPX-?t2zD_Cw1(U+;x$_XFu0{Ag|9X%TEQ(6 z^ZElgUaWfOh z%ZD*ZjMIjh=EMccbo;a`iu3Z@pZ;oOx*dxYjPLx=qPt})FoYH~6$ZWzZ6hn#AFt`v z;#OXPEKBaQo5eajcj7p;wkQXdS?{$$FH z69-Ov zK27?!b618Gq5LkKWIs@gal&{{gWEeMc(s4k3=MIBeGitS!iYV?fB!~jM1=Gje|eMs z-4L(#nBWaKq;+3g7nSoJE9wBvQt_;A%^i~BO)lok%R7G+uV;GwQ5;9L?a+w!2e&MT zlM$L*iLU%ODc$xlZpAs>)4KSQLNHr-c0A0UCcE1eW}W5~hgk~ml9xr*y(!{$WHU%b zluz{qMp#-)oDfp#J?(F3_@FJWc99;dm{3m)s8q^SF``6Q8m~Wy;{aJK zDGRTBUOXkm)A~NtJuzBFL&Zs_Wi(VxiN@N`(@nr~7Mdf$B=P@)c%RvxqS~(XF-nAj z_zXi^2d^r%l*v6I?d#o{5&jQrqBmPLoD@DV5ZZ=3(7tbC3%F6F-Le^2=LEb(@b^}< z>TJvIue8K~*PqDoWEl>PaPwlZdQAMb<;Cjq_I?&pBR_m&PQo@Td$U{Kq2(IG9Tg>m z;t_hH#9oO9!`5!(0VN}Dg!;SSTI-Cp+@N$arUfw+BH=yI{C0O*n*YOB9|F+)>O%@2 z2txC*s$=-hN3^naQGh5LQ3qrQXlTm326Bnk`*H`yr$hMcE}XUT#k((g-RmO1$^k>} zJd5|n|7Y+dLT!~1$=i;~jyoPWv_e*zLD{f~5K2~_7>|;}q-OhwW2M#jARVU(a}M4Y zOPK7b4WgrL4kN}1%{j;We=Ttk<+^=c5Ga}8_ubZrm*4*V)qt`&As@6($Xc$12B@JC zpjkBngH2(*=9Cpjn5yoN<9LGDN~!E6V!fZ;-Db0S^5|R90y%_H>*tgm78|M_Pd}$( zO*{ghB_}tK(e;{tLJ`vw!K-7<%v;8cR@UMiFY1FZrkrMtu>5+rJoc|WH8c1?5SII^ znIXRDGE*WV&#*NC<9jKcQn)q`&vUCi$d3m4OkYJ z=@foPmj?nzO_cCwapa-z)jC_`$xU*Z6?q_&(AU_AV`ONzp6ai9c1Zg|)s%SLoi0sR zmNdI|a2IZwj&IU*jQ0e*9cyRS8fQW@T}c?kaUyC)+J{im;lrzeWX%JcACac*!qDBZ zqYkuyHN-Qv|I zxz5+C$B^uKN8#MQBiOPh`{NiKE}UDjCmxw6ES#$Y+BN+P=XQ!=Vb#tU z*v**M~a;Vxzx7;4n_N zEtFW7J0VD(f6QDiC}#l1CqBsj16mBt}cw$B~#+jdYYtJZ7ohX;1DqSc1*7- z(wBHbCoFbEaLYJ~#ef`snlIlsr>B-qKoNQi-Rb8q1BA1IogZ>!Z`Fo6$H1h@_*Nk2 zN|K9kF!JJ|n62`fv<#fGaqwkPAl>MT-)HlDae3PyF#dCSrwC#zTON^rMT`$I1S(I8 z2gI{fuGKbh`}Z_+`0DXud2D=WsSI&SF%zK8GXJ^@&CMR68I(5LG~j#)4K94=hrIrm zEvSd9Hl^@G0Y}vqE9(e35kXq4jJ3L4K0YQ7S&{wov{>EEaQuuw&5gQk<#e@ICn#@! zYuwx)Jy!nn@nAVk0Rky3KE%d)o)X=tHXA!WIP}f1PAhKkrYq}dKXkwD)_ZJ(P19Ze zeZvTwqroA*^%3R#E_e8f73eetohnDb1BVv#;i!!xgv1bVJuhaLx5@Wx4u8{63BP-% zRe95Uui#f67LAMlndWdW$z*_H>Zb>IhKtgK(VnPIUAg>6YO%t&{C|YlPJg^g-=Bob zA96^0yp-HYrww;e6LBkM1V%1$3R}->r2hMCw!oyX{3#pNFFTfwm|kiG|=Bu3mhE*KVO8&J@&If$Odq zqA7(-w{52DxpT@@R!!7!Yq@O8$S+bO)aZ+sdRPI_ija<`s6 z+o#!_a9)2)P9k$zHt z7AIRq$`+5e%f(ajJ;@h0bBJ*dNTiOc+qCS*Sj;|Bw`s+cXu$s8X{KMD6c$HhuV>`1 z48FI!CsI?_?5iWjDG}5IeB}v9?$`^a0JH@8y}iexX&P9{%5vKE^qUBbME!Wnva9AQA4%1 z{^**1t*xa&H)Z?Kctkx-_OX6|wLZd(u=R z)PDS}WikRj5QN&JWoMCnA5=kbYXHU`rPTKjYPQ>*x(lP5gEfhO_OL7qC>OZg(_X| zKAmW27V3=l5`bOCa+htWXB1Q_gunh7N!w@uZc+$v1kVC-f6nB77Qs$#ldsF$#p($9 zfPLo?%HHc5-?r5UtUf#*p3gGXE2IdddNutqV3ZQxQ>wS4aJD9rb4ddOw-|+R%{uP( zbWEXCgr+InO;m&xY-%{DGVVST|_4u5OFj zw}V)-4I6Wua5*9uQFdp4Ip4$UbR}z|!TbNFEAAS|Lii~wia39Odm7Kxu@DFE7K7N? zI$YS*7vebAitU+)c+>{1W5YA*gNRgbC&pOW3UodfO(~qN@;I2LKJ)L-2X!+VdZ!+T z^U6lAnst-k&la;p2S(4f*o@=Q&)U!A`su+~JdRpp!%VKNLGh40P1dfH9IwQ2vFQ!! zZ=gXZR)lYUwuYX#%BnI<;MN*TWMLyj9LTY$C7DxC^Jv{sFvxH(&s$OT|C3m3Dy zziuGOgZMM4g|Nd=U*jaW&PuN*`L_Bs*S6o#G)Tn%ikFRwoICUc&5Fj~m0D>x{ zC%}o~)@rtAEDNd)*o2Qw+JMKx$H3M{+}pd*2`W}#ASrmt0h4$sa$L0&m8X_%kPEf+>8V67=o;L7Pxocmo?`Mz2I(aD8 z3kWX5+R-NoD$9G^(>1&DhRB+_u-0QVTIQT^ORFvsPVR|mh2r5GqCO;2J zQ5rLbuj!UO9EB<1g7yriPTJ39Bd|GqRHg!8Qu5ttCfBohzL_ud@((|1rgMLAHx*Ny z#pI9VINE9Spo74s%s{-vQ}-rFS~^+o$2)oCrX(UQf~ z(6=UF@XST36ydtwtGf4s?@!=3fEcS0-Ony>vwWUhWOpID=$P*J6;}*@zpp+%8cVaY zoI)jdU=}qOo}faBgiE0432nPhp@O~Q!WqpNhPIXxYCS!2k9hS_i%mxkg9A=z9|w1W z*@_idj}^CGf6h?TX2vQyjB3N>=g7F~G1l+V@K9mQzq_1DBH;DyY5qV*6gSkPild>*m=r`AL#1pc z{2x^s_V_4{_+a2c1Qjc=a9Np@8i=M_4ayFJI6tIBHeL{i1G}6*C2)_QJv7b2>KDb2 z5qfXkItmo87!;4gzOgN~t+o~)$?iPo*H1x?EyAjzL{OAS_i>ivHq9acUKI+r?&VGb0-@=) z^DJni{2^`^%6)A*aytk2l^XjD&H~K3kkV+E!+=fWz#0RzpGa6;qL~957uj%lT`0tE zs`X7ZE7sK)Dnq_pZ@_MldpdYaZjq0I?^9bKaJ*H@z|wS%39aLQhX;_#G9Q%EhG-6e z`PKsR+(R0&m|sj|>uQ5v%&7p98vFBVy`)i~@TlTzrIe?Ri%Z%B~9BGVYYl!uS1o|v^A z&t$mg?T);0~73;_4^{V*1E^z2Qa$HW6`(_x$)+aN!X3+W>8;B6QVDe#m zoa9`*2h1`XyNcnB337N@u;!6nk2Y66z37zi8HjbOhRO+|ac%8rz==mVyV-~?Pox0K+#7B<5f zF_+8RUt<_CAFY*Ff|5=_%CB;A*(3;}GfWz0KUseR47afR8rK-tXb!C=OkJQ*U_HyrhL>{k3fiRYG_l_PMYk48HUM9bQwl*?jYDtjF_5rB zwEa1Ibu14A69r;$x|f5{jqv7>@$E@r_hgN`#MtK-2r|Gni2<`%RAQn9yfk%zn7=Zw z0-kdI6ko=D{~0~JTETP8_4*ce(15bVr^g$}*3Iv_1jHmJDiIF%1tv zTOii%n2(d=ETKA1)CRUx8xOZ*QuHKn&@n@eP#MdpM4N9UTq(}EInd@iU@2^34l-C* zR_oaE9CU_JK@!D2V(LjegaAmjd!&LaW^7!M!@$yGDFx;IYCc~TLgBzVbPjBN0&`Q= zlX75_fbs!(oU#kbXo~`JdJ<OxSAe1IFyCL-H6d012@}+RF%60G0Snv#>oQPN z&=!Apyoo5X-6$x=+Tj_i`o4qnd{V85Rs58lM<%erfrWG({S z^@;2+sXhv_lTh*@dz@8g>jR!mOU|T$Eo@*ygnl5otEi-gY&jT37?wja?F3icA84q! z!qVxV-|C;g{PfTNnOrrb)BUMR;?vPKvF=iRPC`J7&vv3=nK|B;9t>-67&T_BbM0|c z77Li7HI*ax$oy@8p!YfjB&hbo`c3bhkD}ug<~54QY-Rl9moXQJ_S}Q42^;3EmBHg@ zcL6>ZgSOTm5NG)PI|N1dDiymD#sn@nQ({ZaL2LFI*IaNI43ni5Sq}nj6y_5XnDV~4 zQFvOeVN=@NDIAyMFaQ-xUXSZwJNDTxl)dg|D>r*>|9}mxz`JO&p|=_*-!}wdlk=-B;U6JjM7Gj;f(EM{32;FoYV=a9xqNNIvV(N_?TSv1B4Idp4Gak`LSCtm+DF z9nm8vJtRnG>--XWqWX3`8gqciPAF8vA;3sMmgvm^SM_iHiGcDyt_V>6$JGQbAVK+L z1qNd5GsGJ@l^BvRFf>+n0=cv`wOo0RI~G^iFp^+Yi~Pkz&BuETwuc?(4si_X zFTHO*fBN?~SUr_uPW}Bq6S#mx#$H%c_%yUViaN%b0Wxi2IR=vT7_fG*xWS5Nx3x6! zzFNU!{Vl#(6Bvc{YFR!$Z2q<^7uDpIxW6o>)t|SI>(!UP-LF@%t#gm!3afJ%+xR!5 zb6g4byjWN?3=ZuKH|~P~Ak%>inp5TUjl#e3Tz2 z304}1yF`irZ6E` z3}{m?k51Y;oPfO*SK}~h0=P`$qFff+f79-dgC=j)C+qSDV@Wjm!22#8&w{jgdM$Zi zvBOjK=Lp&HSWH_M!6t~HF z9x_!lRrQJ)qkS_LqVJd5Sg-~%f{;g55ZTCTPvwVykXO&f1hnwk2 zqnUT`!O>r$*i~^np5GYl2=$j(8MKc3Lrt<@|4&OQ0bD?$>v0%$)?-u4b$M59Zi~$=WS0aBpVIWEJoxa&gFPciRXC>ueOYRaD=0o9W({e^m49KcDW1EVtQ>x9@UkeLgZ$+~du7 z(>rCu>Fs5d2>R~wQj#!*kPysZ7*o`s8G>qaK!S=B-7R5A!1xQ80?If8dHmBUc^&8Dtql zDHddq#^R&|=NWf81aW|r@WWfHhxpAVtuMHMgz^)U#qc?3?W5jFM4=u7X6h?tJTcZv zpQMZt*W)nC7-%VYI=j9rHrK0!PKfm!Y)>G10q=gvkwutxMnX$MV3>Tm6?`A9lm zD>Gd)qDj#dHlL8gxc>YYx}V57fQ9%61Jk&PcG|+@$=AO{!Sn|NOuwci6uF==H*idFSC3_#c*!Pjy?1))*f1z|0djzgx~ z+;O&dkQTrB3sn#P<-5s;vzbVu!{4@q(2WVPiva6tFnVHO3asdWy3sx|F2LcS?xB44 zMc?cCwp_!@QhY2ou=pQNjlwV`ZCbef$!DkciiICRW zw80vHV2Y2XnTdi0>Hr_@=l^S2N`MQ_gu&z_WXOC854!}*xy@)~coPR!&ebAPI-TX+ zTYux497b^gt>r%4t`_B{xUV(@Pa(ILjtN0hBJ5UN z&v+)Z9Uvzn$|1o_O5Dd+z=oN7CwBb;XDH>KjA2HMeS6^DrN9}un?!+?9<-duILuV( zVXtjMAmoNYl^Bi|yt#bWM1A-(C}r)sCX$=wwlAIQTC>Dv z_D~f#Iyyw(U=ZN=?85jNHvYwJIlHfFa*63F*6!IZgowKVKNb-;tNG&tylERe`i8>k z?pE1&_<5XuUrrHSw$^SrH%9a(x!CpmpEJ*mGlVF2?6dXO=tHWDxK!8g1RnnSdt+Nd zZ|DE`Y_vbU>e8oBk6|An!EsIa<*)`FSFdWO;`Yd!k z_-|`jo7_7eM@Ot!z%Aa93mZ2ktYH$e3)PeFOeZLX4?p9))&kdWfv}xd2Tf;wLEbkZl>aJ=)OeZvfd}*Y5 zs^+sz^;8kPRPb;YNg3-S-M;piMBSj%vb#k-435+G%1S~FTSkltOtGFMSG#sM>1e2} zw8bf*J}@I;1e|F^z^}08rlvEQug=!ogpGg3akv%S0*Wb{CAj($0%c_onF+Qd8#J!K zVQjFE%^II&02bHN*_YYrDM|g;E_X9`SxQnGN;dM|jh7S}yvEy0VbALni#4sjL zlD5zwV*e5bzdpQL02`uPr;sP`=Z*_;IEm`9 zZhf)q3c@-N__goTHRRlaI&m()~+#g1;}EVN$?9I(9eoivUNFT2sTklPrB)&KxHdPrqAB&i-kyEE{Pe%RIg5}X zKJw@FudT;`Rdl6_XCYGYBPph+VZos577I7PNaSd=+Kqwz^0!|MOR(Gmp!__A&)=m)ZO}yRSw=Y(%R*H4 zm4n20KydB7CAhVM8|H(tzWMBLugr{Q&$Y8ZxZqp>kIz6`d>39CWg*ez8LY4*2CNg- zm+`)zX9#8ZEBRbh)^OmA8n5nt=3W- z9(0z-K|KcST#>`3Si(oFMp`8{c#niROyL*;ekTmLmmK`lx|&w&t#a)HyxDiFKX9;4 z$KWDqc71M0NItrOVsljIM0(SFkq{O2hG}#L&m@F1ju1BR zj)mYwFbBlFe*7MR-aTgBj&e7F3(k~Cle3V)r0bGQzlmcXbp6&(RkF~|yd07FiYsyy zSiF4N!d#L!!x~=SRK>LTvs~N}rf0(y`>IdkWtnwpDEXNEE-TwXDMAZutKzR%B)9Q_ z(w+_EZjf#fG7B!+$Oy=m54fFOVVxgM+45CG=f{a5o0x<%bDz^NP)~CkT~Rncjj=;q zl%s%cG=*NTK3408RT25nt2H5HGj#8V`jmF7VV}tRAqglO#24?fdM%05$!#+$j}5Kx z;nx#}cRZUk(kelmO*-Zzpf_*Mxc~lZ%hEMmK*IM)TbYrO&*c3v z5cLSqf<>4>e$17BlmG5{=)mF{1%fuVM>qLQZXf$1_2Bv}v}en`iMyeeu)9ey`J@+g$W7H9SwJC0^^|FBJ`V&XTAvliJ z2fpjM+3}8J$zAh-bDY8wl8~{LI=&nVGB+kr>Pn3tA2$%+W>dgZ&Y$9m$lf*`k+dCj zGsc&BIh`$L>!Q5dJT>H&dry7|08M74{XV_vAqenH@0bmq%W>-70>luu<3cgzxBMN| zlT|`@J{MQq>fmrvfo0MNtqutDpj~Vq-j+RI?Ztk*jP5Nl8?BYW4OdcmvvZJWMdzx; zu)j~2vFybS?BV5J%6Y%89v+^GdHJ+@e86(gxD1DZs#xw>E~o3N+!TuyypEfSXlbLK z^)xUFt75inv0<-IN7qEO;gP7Vd~*AIP<@w0(BKrIgr=Vj`mAI^^`yqrb*nF#R^D1F zY2EHgc{tQNjP|@WC9O?8Z@r-|H6LxW*e)d6GzN@B3oqLC=vHOGF08~+R7{V}b^j>m z0N%y*<1(@ZZp%gQQ2iG%Az8UO>O8wyyZ~A!x6eoGkrrNqA@p|Q22%TNl`Zs?1F!44 zp&4*&nN!?&La{tJ#zSz{=cuFYo&E1f0cTW4qb8xf+K%L!3jkqja+2R93{0gmveyF( zrWH#oVk=wk%lXDNIgEVxSmfOvU&TZjfago~bVmt496u(f$(ysp(06m$A3baTF=_G2 zT0HsaJYJ(R4Jjv%&|WebtyC3^s2Cs#E0&c2cZ|eYSW-qsQtc1)J^cLEzkHiQziozi z&8@$mzy%~cpNxe?jeUD$?o#D_69%Raq4h+l*rPWL?X+mgx{BehG~Q zVOgXVaobED_yJ?8et63$c&+39H2I-{soGyfftrxEC54?nS(e;-5(TEYAoWDaH#U#W z^nththl83p#p-T$JG)yIFwM8KDItS11QtPk{LjZCNbZ`CqnD}KcC7+v7jO&}oJZj) zcu@iqp7(>H9W~OUZ<$h(ssacWoDcGlM*3b`)^@YsKu?7WNC-W3do3{uo!okI(#oeTxoS{9=q2d@r!AMA4|LRM%9D35Jz!jhGxLWD4!qi;@ev0Ame1LK2u#&;g(Lm z>Amv-d91Wrg&&K>)JMWd& znb&T9&J45Zy|ZEVew+kc5u8S0RtU)iw~!LR8|C_e*^cVCkgrIqqXrC`*LudS3jiqx zDz_;4prPz=M)CnM2WM{fO2gO(S04*^B5Ki#))MGM&7x@|CkgKCo$zC@w;U0Y9k5hTLqg;1#hT{DgguJAVh5`ryKgroQ~EE z)-}R3s(ag%3^(cCo{WS*jC}?>?A1Rr1D}&9FpjQr6RDWdh9-yY)qY{UjiS)dGA&+Q zFW`S}=8Y~CyJ5LhMx0DqdkO>n7&HgBcE5b=Jx}$w4;I6Jxx2FEwvlA}D--t}<=Pj# zwcK_u(_8d-=HBQxNQ5PhC{h>HGV<3?7Hx?DnFRs`0t6T_-O*!-M%IGEtgMsgXsZG~ zKtjXWk`t~JF+F9%-EA+8hYul8+e>G?riDJNfY7#=_qUpY!;zgL0*f%T=vFn3{ajf2 zZce~r?nE1X+a1%(ja@wK$MFyvnxbqYfy74hak5%Oc?n}PHKZJo*%l33pr5fUTk#8AEwv#G`Ej~L->PvL7T{gr+kKpHVH^~08e z%Q5T&v`#rqAyKwvTjE+iuHR^r$b>6bZeOj2Uxg7r!zVp1kJb*eye#e0-IjKkm4`*c z>i|RtbamM~}4o*9(2Y7z1gpHH2|z#G&qAR0nadC3xE_T&siF+r3&~ zIR@2SsKkIJyYL=KN#M(@<*l0EgyX31Hf}JxUo94^gee?Bd%R9-iKOL48Tu-%^6YqE z9j1WWM-hQrg|~|N%V}SxGXgMbjGbbTb~^1GwK%kLSX0IIA&Z<}{||xIPrLnNufP52 zhZH{0e^wfp`?gRDYwMhl%0-y6S7SiU$V{qWOR}Ji@E$V(;+bB7AY0`B$zTDCSn}K0y6rIu4H2c=@*4M7x^3>{TZ$$g&!;P#;FY*g%yt|; zWZ;vkr>5YJc&&tDRBN=I&6{O8VOhd6+W{;3)Ewj5kovoIhcr<%=U#xuQwF}&S zOAeSc?+m*cy)1u%m-8h7n8_DGA)7XnaFRMidFg^!TvvmL8(|F?Z^MZOa^(Gd8~vBIzL#CqBip__(Pxz5?y}Wu30n z%0XbwY>?(qNpxAQAvUqLO_X@2lvjH{o%t-e&1QhwEH~x*AP9j-Mq* z*eDgCL~ua>3^gTvwQ_X4*3&`=8DK;>MJ%<-Sz6zq{2L}y_QOR0#ecX+f2)xx>!(!? zU4|}Yk}#GFcxNb@aF?S%l_Wh4pTKlC%eafVCmGC=W%BL6)}h?nZ_jaH`_AMv>|S2a zXUqI0xqf_@=S2~+0g9Welceb7wLW@^-ejybl9SuO;z9l_E8&pF1uQch*>q|_wx&jz ztqTJ=r1ZR2)W*_rm;t64{J0k9KVi(bU;hf={I7qdpK6$IM{d}|mtaWSp-KptGn>%< zj>(m);FyNYTlZF29?0*+ao~B37R81dH_wyHYz^;1pi8>p%$x+h%S#!Xm$x2Y*aEH; zOgv(rB~#fdV{pW#n)ts#5=MLK-0Rp_BK$!Mut?+DL5>mOq%wyZOaA=5<=rKGU?|AO z*I-b{E{A~Cz?Ja&+t!M*kNaJ+&WoqKDE;TR7x?*W&3e;%i!_$_?Klb84)}29_cuwF zJZFpBJm~e_cydlu8sDyHEOJMUF$5D5hy3a2#*l&gzT3XQyDMGVYvMSD zYQGyvjFU#!yVD)jF}_E4y1-hr1#vihP|dgzItIn7QJ`(uHl@^a01>wIdY2}xsQBA7 z((6N|@NXsPcemN%-lv(6c|R`#+VR!-K+zc{rX4!Rbzi@&RS=;Ylc?8CZIDV2jYr{W z3LtY4XuoFM%iU_P6b`40Q39>^NTY&TfnP%!-?k!zJVc&G(Y7v2J`LIi)}t+(x|8BX zB?i=V0}iB?2!+VK-QS}+Zvttz9(6~`*H-IfkzCI&*P+h7>Yz_W%&RO&XFS~Yc-%Drtpyo>cU(N%aNl`oTzvQx!h&;hzCyY+MW`qNi0Bt9+ZVsrO0^xg+KbKqu!eEl2vF{Yuf!2+_FOyHKD#F8F3JcgfSLn!C1E z+C1@9U3p<+3%(sjT0^tgh7}Fr57X4aV3Nu}ZP!ZTp-vn4XN-!Plo-o4l9?DxZ+f*i zvdHr7r;UY=>&gvv!pFz6^~C4CZ7H`)uXZ&COhSmUltOy!LWJkNc0s?_rd3_I^Q0}` z5SRt8*?Le7is<<(uSWa4x3zLm>0$ARd6w*B$&^O%baNvDFVm)GH_E)%_h_P=G^>c# z!fUnFOA5Wm2o81JCRQnKjKNV^ z!jEBihcq&AYmZP1_WOShXzdYLgVv0NF6wTT7_e%DU?~H@D_0}1ce6w{@-HW*Wei(! z9O*9#xwF;dHLPiJo!kIY%vkATprF5 z_f=Ee_M{EhmEqtEmQosylF6JP6i!43t(MRZy}Dbsx(>bG2oC64w7-NiifQJ!(GmQH zQV5vcl7hU3dA+_SJhHE59%5fAZZa8hqZaB0#IgP@m9`5r6ltvb&}g`QoMsKzmY1}e z;u2;Vyh89T#(HXoEAH<)K`Ol6#yA%6MS}4Yf73=yedXb(Ror9excDN(cyID?-jn3Bb)j`Cyj{XE zR2C}nL__k^G^@T!D-@BLGDK@4HE})B8an05FdC-e#EeVn_?A{jm1GCBihui~?H$@5 zLsS*8nIF<$sT{#R0-IFul);Z_xv}DL4biRF35;;@;z^);ZEISM18A}I7xLZZOL7IE z6XNIY5AY;eZF%yWmJ!yg#p46KbnDtdgwV0_#CUX^X5AIP5VOqFeEc!e(eYuU&_r=~ z`z6CW8mup&Yo-s#jNx}--v_Yqr|$>pXuxN_HPNdJ`L-OwJ~)b3*%7HK`eNzh~7PY_!L0G51$5X!40iJ%%QytC|2XZgbp}Oxg*@T?kx$b ziS+rX;B$VxDw3zwB0#qqa}z>k>0(doM{7c;MiURkXGw@PLgGDR3g(M@KX*z@PoiI) zVA}XGgug<$ZU3s|+m-1lx2-%P8c?5yDSr0hs~HsUVp@A2 zMZyfcI(@YgbUNrm!o|5{cprhc?p0jFOIx4a{_%GNHb3s#LcIR=$3Ii}K<}^_ocp$A zQ04@OuMTcSOdYfu1%{kddD*6YvTGyJuF?C;zv>ozUS*2_t!gvc6M^G)^4o*sPTXO5 zEIlM19?w#vz!-(!9a-42f)b~Q>B*9~V+R)3L|froiqPvLO9^$VL1ADwx%7XyCp^1V zq)p)iLFnwQ1q)w|2+mcPTm5nnSkr*eJ_)gwAzfI>$R-*o3Z>JJd2$4RoDBv z$gklqOm32YuWptHrD!XYbDSF~*hBMWt44wC;stTIaiDlq{e4eVb+(;Cj z2eDh|C|aNy0sJ*GfY3}jLanu2*0&A(j9u{8m2Q8ox!^ytS5Ab{LI|0=lx`1MEkFvS zT*?*fIC&Jy9KSCo0oj;@;#0PsFXqW2`;ry;Q?Odlqhn596sw}V2U@4i+vSX{=N{EB zrxH*+h7VKH?V|$0oDGP}IDh3xIP0-zVU}NZs@+-wPyuj^lMObtTVbU+ATEPmvF&+N zZcQr(ykZNiLBtIkr;;-2q*f74UX?J=o(0H-B$1N0@r{So-|PPJyKy|FiZTel=E!&R z+na2@NN!i~|6lUu?Ft9tM&mz8?V`L~u^`-XbTthL+fbt6_djQ8SEhtuC@^yc$r9wC zUoX9T>R9Lq&B`;BXt&79}A533@9FOYTi5|cW=P0L9TyS$2hq|M0aYDB@dp~NHh zS=OW_e2t-qExcZdAbj*>ot=mRgmN=zE_sM%jQc|9Sk<$WHI{XX|-JD$yIh8y6)Q< z{Yjv>yewS{&iexicZrpr8jreXS!xy{r{}@D^CN%dETIF4IajRiqM!rg=3{q%YqENtiuHm4+*Q~3j;o*x4 zFFq}@+5B!^B+F!$f4O-qR)HM&+u(;U4OiBpDWhWBT(%c?*qXQWn0O>TOAfD;4p&Hk zw2ugQm*l4RXoOH|iLg|O5E+dVNNt@}^{&0R$oR(qlD_{qjEzoU>RY#+bxBpLL0}XL zc(0@m%9EnO^yMtex6HYK zY9jYNvc$pBPmVAx6^?rvYV{I-P)Xc zICXe)8PncChB&_`N0^ri0cn$D4$kmsV!G*Ar54`IS}etFctZq*i+X~>@wz0?sUO&l ztP%z4aqd#@gKk)Jk8{7<#>qi=#mC#MSS^yv)n$l$a0DOoBam~;v)>*hqm0bA&x^;& zVXCCPw39g#z)8138loxTe1u)N@a0B*LKR?gSwSp?)4k&L^0Vj(ey_)D+k7_62|h6Q zt-HyXg>$&3RL9_CB?!#6QPNa0VjXV|lzzL78z?V}mu#7=lB?BnxeAGEb;rtMxGiqy ze*mbgJ}(|B&$0}vq`=Fd0^T7*{9Duyf_4;~QA9~6bWp;Z6G<6YEP@SNcW@t$4U5fx z#HD?guH0=1XhSadWJZ|c*3#V}wHerolQ`L9;F~RHMgE*T+^p`hTCv!svvZP@etA`6 zxmU5ntZ5A1#uSa-U(T}bDkQ^6Sesj53HcA@UV3YUNiZkcdas%Q2g_GpIkiI6Ut@i@ zTNv!057Eq?{6KRKwb<-)@sY z=%%&TWjhwjn$Z-t5A0$S$J% zD)^-(q`Rx+DqGC*c@fZSn;=H$oS8}Y{mjh5YZRrv=%TGlEpOamZLx` z6<*7fn6k-OEH?YyIEf4xV{!0SSJv|6uw9KN9=4~er@)!Tg>Q@?j4Hx~u3-9T ziVwm!fHAE#egmfnWQvR(Y5?0~B^*NLi<;s?FU?CCK(|nfPCC}O7HZR`Y7b{<6 z++#Mt<{a?Ct~&Z=MdS5@ez;Sw5Yl(G!^;paw zURn{DV`8gS=3#^w*WBhY?Q1* zT~=Kut8io`No4-p=hBip>9pZ4qSmpE0F}S7DRo2}eJo0b--(kbcQgg_r)+tZCznOG z3|#k3fTU4g=dqA9Dlx^w`B_%5nbRu3RHpEESb#-HZ|n%`B!D%FIzg4fE7+6~&8gz1 z{#tQQUefSMsQiy1~G46OT@%gw#JGNFul7hL^jn*_Et&4}-_JNV-S z{#C33CFtsmoFwNhuT*=m4GkdNgIs!AG}^M$P>ws3-~e)PpEl0Dfq{TGiWAls=b}@- zs=a?DU@BgL@LeI69%?||b6!7$r$5zHjE_bs4o!Xg@&jkmNGr6ADHm76Kpif*zY^y< zq>jFqt@`aY4z?S{nYb+S=QZT0$@(UH9xNSg?_T*f>%FI-}tAp77oQvGTBZKs-(DvvaoS0y5x? z!){iTFbjEfPxn=waz#TN7d{bU7$$Dmxt6LZKb_bP;^UpZ@wp%PuBs9Rs#l}Zjh{ma z759so4OG4d!NSIRUis(GMgEf9tUiCf%L1;FCrJ~_6W$sXo75;ve|vC73z-o~2;&4mg2~AJT zu+_!^iMR^Qe4|3MfY<}|#I6TsM6IiJIdMDbz2}FOhehKeKT81vz#iO?(fjXdpP~^a z>G)t%Kz7J9yhvgB0_lvY_xyVQOIy(VWq?W}KJo3PXFAmx%RyisjMS!HqkCV#3%j?G zRBkrfB<^i6Ouc@DEt^~}9zU-_G6fCpXkZ$8O)tx<(*GSzzU?#4TAJtp8E0VX+k+=8IpbVO!y_m~l_*dLTboi! zoDoe74E#PD4{JZ1a?TzWATzau3_p!##qDlGPSN^Zr3S@rbG5IZKH`t+=&)FrPMg&`ox?o z;zg6}2z_6qzpKR!wA@BD&kGOMgY94ci-GMf0>6Rn_bGg!|NIl5_O>v~sicfLsZ~V1 zvl2r9W+mj0OzfQ9caQ9w-8DWCee)$Kvh~JhaQ(1)$(A83-3;v{=kfAPN1n$U;@|5- zqVZ2mlPc*;Tqyi8Z_L1mhRtkxy8G_vf$asfh2Sb+Lcka&f;zTE02~GX{-I?F6Fv|` z!QMQu1IrO{5!6LayAs7dFp5;@)Teke0pB)Ej8gGW8bYOmIB`2cNU4a_+RJ;^g6bbXwggr9 zKoC@q+yNh0gSMI_aEiAEzF%U>o7EW5K6sTFXJ?*!V6ILDok z0Xr@Y$64#WWNI<{1E$jY>+S{r>u>-1OZs6jmDbQ2wD#oc;$2t`0#ndtJeAbz3A9mZ zg|*+8&xXx73Cu>-wZCZsuJ7g#P1@f>vvLZ+t}J3KV7DAySW>$bN<3UoSDRHioE=~x zYl6c+^K`@!N{$Fa1m(^dgEz%f3rlLLRtL-x+e)+kG(f9TVCq|6f_3rZuEc zUjc4gXZMr!CZctEJr>p1y>DF3I+Hr}^6k^1a=d&}qda|w*NSP+q){mEImlv`5zIRm ztcpy7b(UFeaXMBlCeoDB8ceLCl=fE4in!y#9Mg&w|h{cc+P znK@O;MA}B-n;5?nFEc~Dreo5SJ7EJ^=?V}+ai>BO;$FRNl-~O00NYAZq-+GGC?ahx zB>Y%2@jw(0*XRP#7m&pPAoDv!*_#N$UL^`GZ+s6?Xyx0dW994A`P53#SZUzWrr~$s zaCz$~L~UPXGDa#S2aq8u_?%lQ?TIoI37Bs_L;&;6hYL<q`)c>8PAH9Uc(tgf>I8$=}KAV98$GtvK9b{lG?-VSbqE0k&S1KxZsk?coh?l z(b(;pxIJ^+wx(*~NgM_j_S}-xU9p@^=DV>{k;c^_v$M*+yE;3oVoW*)ze+-_7lBUf z;@F7*zfl8ffGLK662nSGl&PG9e?GyZJsdG|3Yy^qQE2WeyFhPxiZH$k#zPG1L_(Zg zwt{5P!bLPNT~P?A)1<;PHi}sITx`C1UaxR6>+KYd^UY+PEO&YVlI%BMHBLx0m9nZl zEFEUYsV^Xmi%6Y10SA)dfIBM(8R}}Lu%k1=8So14%G#f5dF?b?+i~)Nc0u!;ZMzPy zvK7ZgF_lZ1ivVyIT1UHh7>5zUDpn9tHz`w z@2gA8CH{{QmZ+XCHQ_Zd0NkIcXKlLfBgC`7mGW1iQxb&y8+=^EkUz18~(0Dy=Maj$^9Cx%mq`Z=--~ zs+RY$fX&Gsvzy|678^Kl{X|9CDZM8uDi2G?*734=t%?mrMPiY_ij3%MEK5r^FNA5H z>xeq6h6M{QPZ7(Gvb?(>xkjDq-`Ak>MtqT=wcSRrt764*)&gE7kB#rvnIkIi<9hP+ z^qkF$=hgP$86akHBt6S z6id&f^VTdWmW-%8J{?_OC8O7K7a0=RKclxL@ZtnJ8Jvss-g?2jz`nB+jEG-exX0h>t)wN$GEnN0V zTkJhrM;viW4^2nh@yZ#%3l@P@2`5tSYA$+!O0&Dt8$hP85uL@ruvt~q(|*Zpz|mjs zzxp!S0D9*WCQ`SGUdvXHeBY3R6TG(P3_HMMHk^3%T(ZJ?bu(E%W%KN2GF?7QVkv+& zQxMwcU(23Ixc@hrf>3%=GFZA-nOJpNdKyQ$WkP5sP(eTpv(Fb^b?&4=q5>J9avV&5 zV(1nLr5_Fz7hk^m!_T!)+Fx`U^F{(utWDYMz>ebx)#gUzT0meT&Q`6(GdPM6^=z`( z3V$c*nwvp@ETDR4wrlaw7sJX4%Bb=v2W`vWwAx!~)53r1-6ay2L z@R9M@9I!Sx%XPiX%zxfC3|!#@{Rgg*y>HqWu@_KC0M?2P6a|<2TtZN5T+Nt-UC0VY zY#2;1a!SH%F?%ku=k2V9HE@-BRC$M+$D?PCN2oj`9sI^gn58f5a)&HT2NrsoPS{e! zn}cmKh?s~s*l$8`#@83{$zfdYV}h{n|8v1%T(k$8-`m^N@XIz(1$<+2#hI5aXK@*> z{^xW$bP!!(Ux-#8SJP!Sg+Ie(`)SpHHGB4aF4&T0xY}H9rsBU;u2pw4x+>PBgYc{5 z&Kl?F{#_j7gair;7eLb!P`9mD38szbMsa#Njx+q9L|zjWY+Qp|JAp)1h#@+*KoE6Tm`%*T6D~beSP0O&zm72p$_=AYsWGqAyoZpd!hu zf5igQzkaMGul7@(ia4UF)Ym!EGE#75IR%VWE2vl$)$a{+q9j85I9b8czQ>m+hn>L2 zrtQ<_`(?41m|MwZ$^y0c^>pbkrVarq^jpm$|fK0yYJ?<+dkwR?8%UMQ!k41NS7S z057{vnV?TJ;QsO(l|(ocpxGbH$1Sj7mc@+EdNOMF>;=H*uT z_(&59>_AFjXGgY8nhw6M`bt%@y*FCt1P<2`ubPz}nvSK{N!Yf<(%@7i5#X4FR|W@^ z^rSM=R?EOJZG%vr9>d_VuL}p$oZt*}nhNN+az?tKIec2JrN$vX2^rY34b&8I9dcut zD0gcWkBe+GS$~?WOMg76U;yWE7@%6_6@00ZeVP|{v&C$kJ**bRI+j^IYuQ&p)v}jT z>thX97av7lG9?*n!*~;~5QIcJww!19vSFt=AEv4}Tz)M?Vk*$HYq7gP>)^Go7xp3( z4!_0{4!_nX9J)o^hz~A06Rctbsg~$4TG7I{9$o8*=B=xxX-Tbt)n@WI%^oILh^Jw< zulck)=x<3(DElfEc)OWUTQwyec*n_$4W)9?LA48|qTx+bo(bPmy{l!M3nm6>JuH?L&NtjOoikwb-Ahrr33S2GP(U|$M^_1ONfL7Y$pm)ihi)URRTgX z8HD0olJz&Im=j!ya3TRgQg>^`V``|oopBK&d!K;FZDQf786+FQ=Snc{LnZ%kG&~2+ z*f1mAmr1zKpH|D|B)cu{=aFI=EbA)SgYq6X<{wn8uHhi;ACZoMm@;iQct+I#`UyVdp{{yO_SolKD48OZ<~uKP+bxp&FAFu7UHw@>ggZtB($ z2hGw0lR+~ZZz>fciio%Xd>@Fu3>Gd1$pTQCS?`0B5$P+~7jC>rna)@jI9{cbfObaX zjA|>{tC9&6mTC^aAig~AA*fXx+_l5P85~YvdG0O#BY!>*cF|`0awtwJ|4LbP8_821*pm_}m2Mlx|(Ig2OnB5cZfQaJMbs0)G!z`1K?* zV6m@SRTmR(_ddFErK(~|I^4cWxmOihC!Ia;k)#M#jS^edCxf)fu4U0FS*0< zg7qQqPj3h$t`mEO4_pd~X%93GblbGcR%{@%r4EIZeYtllb^a}!#8=Tj`;u$eNg=GV z+x292KW(IiFpvpi75AoMcxNMWE5@Xw_^VVwkVa@4#T`VX@EL)h>q!NnRXlB3Z~`DD zA}=cy3(6YfMJscSyC~KV+07b|gvP_K>rB8zLTfvX>iTW-o0q?itgoT5?jMtmjpJ1- zP&PsrK+O)=7^ykDB|WjF+LyhwJ{_Gg@3M{=08xwWHilqYqwDppV-s0q0g%#=gWI>n^NX|c$j zwnbDj3yA+E5Iy3 zur?=@TgdFdAAd(+_K&|WlO2fd{Dp@X9@udl>G~Y6i-9?9;_3lMfC>k0c!1hWSnzO- zR|{Ip9%!Byh%X}+lvbXX4wXll)=@yE3x*R5JZ)SBg2@Jc?onQ!<0~OYm43H*-h=gH~ z%qbbvse#__ns#ixyPPHg>4N4x2<_Bi_BK!hWTZ#hj@7*702w@o!+`XT0_-~guK8Uy zUCkF?Fq{PS3r?MBI=Hs%+tgfeXJcndrlbS-buz&{1Gv*#(EyI(qkLD>7DLQzSk#Qs zO2#B;bzmV_;ZN{*e?Odo@EujX+n4on_&^lDJIicD_C7(4Kn3GbSx2ORcg2h&_?B=5 zHn|8@^6r;9IYw3#p#hKEC~&$?nBbq;^7bLp`%qo}RiL-xmsFy|@d_g7T76nFy8i1j zS>axWdYM4Wa>0)rq+Ox*=n$z6aOZY#bEn%Nq-03Fl_#jTBq!{BtYhqbeaBeGb7iRA zZ_0CMGkdmV0F~JgE?17Za#fA0ecu&0{i!C|&hFC?U#TWKO37((gD7>sBbH~PGs#OE(yif=2WT8jsB z7`45!TEdI&;Z3oIUquGr;l7AKaD&BP1%=BV>m$<;U1MCPresh$5Ra4iYeWQym4X*; zr%o#Siig|6uwqt8?di^7ub9`t7=L2a;`^To6#ft^|9$v9hYwr`g(EIV!Qd98iHa4J zl!A0P5>J$q!c>%0dM`0dBCr?F;_$HdTl>UzIeRKH{2#1kKA#nfh}_|MtM3MU6B;YZ z9_um;u3KVUlA&ZvI`)o}^=o3{Q^!Z-#PCPGh|4C}JGWs-!A6ka()_X0b^;F7E5 zsc8*w4k^Chov6pb2QC!@N1V`{vev31SFwVs$#Iu!IGOs8wN^Xx6mzz0eXK-lMl*Ko z1(qKs%jM*0noWxZjmGD1##O@MvIA4mIAw|P>RZX4WJLa9y!l}rG$&En7>Iz>P9H^x zVRmC^i^E;u(oD}P6GAd?ollr?`{6K5{uUAce4Sp5m^UumNL)38R2ow`e32^8)A`Ej zUlg+?)rEm4a5(v4vb0vLXRBy1l3Z(Yvi%(RVvdDShqoHD_F2b2Ab4n!1f@N zwFwP;Z)4gKZ-1+8;Ok82jNbUh!aZ#W!4(^hVcO({@ast%bKFS2%d)O%N^#pX=sV)Zuei zF>Y+{8zXZovGj@&l#s8&atwr$qDIzd*OmciY&d{RMz9}?=j=AS+1@@(o@)R$0XKJ; z-Xd>X-sZ%J^>jM6@{n{G9A`S#LEu3{AgZ(C8=#o)sczPmmY|s3L14UL!YboV4UQn2 ze~ z2~FN#-Z!j&!3Uyn+igxD;)13Xur|cpiU|}i7iV8P7Q~6Rh!eW#I{`E}iKEE6Qf(9S z$!a;f%N|#ceMqGD&(7Vuu}eBal0HIHyzJPaz<9-`bQr%(j=GOh zol}ufask;$Ul>V34^v`IGVZ~dLInz~Jw%VrN^xq~JWZyk3B@l*ril3gi+ND zYR0ivIrr7{bUVbxV>z7a-q}QABvedh5OCiV>&bvf6$zxavQvkG))kx5(fU;;z(sJH z1acIu6WBrlFYq9vZn)x0r@($mlH%ZeNF6wr^%<1`!+6942`Ju%UtF<*sxc~_YX|R^ zXq^Jbvp9-)o9dRHPbL`-ZZ8%$#daRih97bkyzI%VXTdARBt!O3;~ZB&G-#1dH^yyX1pyV@^ z%(*}gd2=2J9>(GEK!!3bG$BGRd*cdhkjmrJk@Zz(pq=xP4m&29K!sW{%#?;*bA@_Zp>Zms zMzjKs<0#_ca}yn_`Q$!Zu0GA4HV?BpZgZ1eyGpQJc6iTejwWGq#jJF2A8%e-mFN{! zJ|Em)Re%slGl)I=0r6HfL|BpyT*e@r2WGjlr=&JJZSm`>g(SB33H8G^GV@h4C^jFK z=QXoNRTM1_Cqv^I8)1?e4&Q42oB=3pCO5@;^AG{xBBGJm_k`&3_D3N#+FVkcCwp0X zL^?da%0zH*mQFgr&6G)0(}8azWlxfrZJ<*^Q1<`aU0rkAMzZ}YxAq;g^ZkLhxROo0 zPO`bSliK(Vk`Rd&MXE^2DcxUxdnjAP5IrC;AV5IbN>w%r%?5gK)Hr?mw1)auS)6iE z%8%bUYnqv0d{ajQ6Wp|^<75sKv74V@*49f{7si2sr;<4bbgfzx7j^Gpf6Qi4(^fg& zZ&N2<9pSUTHsw{hSzO*`e=W8*<)#~ujOX(hf2_nnx_}7anc;25#D0^=bChEZyWZ{oeD@}_kLumHVgx! zYW-$h=^Zf}Vbq_o*}>?`l8th6T`sas`6aet?qtxJ#Lwlv75KJ3`E$0tTRhy%nUbw$d_t6L5LP*(&?`Pp4l-H#DtV z&EF|yWeJPu!dTL=_>lj79d)-5xb{Jd=jW48*9rr!Pg@!hoJk_35bOv{qcwNqWc6q@ zcPs&;${)fY>JDr=SH@378GR}Rghy(Jz>9SHQ&>z zw!^TJ5&rEsy!0T0c_y;hju}mMUSX0jGmuMsZ-)#AMI<0OzIlnmtG;2v*dx+mY@ELx3Rytn4 zN+w)W8i8_;gba!?DTo+|Jn04Gf*6R=kLE>aaLW{xS~T|&YvUd}IwiJ3@57(@n-Thm zv3uXO81JQI3xhz#7;3kgQq?A__e+Bh0oot8S=8Ft9LR1LQ?bqN*6`47%SN}0{Vh0K zkFlDd?mfo%Wi-e&_TQHdv-2dOl~9poq|RGATEf|GSKJh9V&#Z6TFRI#Snnpky!5RR zO5YtWc0N`U!w1HyiDOCV%0l;%w;cq5`Nm1-cQXia$^j35GN(aEW0>j*=ViIgF4oJd zW<;HO@mtN_go@uFtaMa94;|eXm7(;BczIHfc~Bl$?_fL(C|{Kqy;_5cNUoHQ>>jm} zI3|P@M}%_U|Io2D2p<>;m19ZhT;}#Nd<%j=TZ7yin@d|GD)z-uni@W1Cv z7+Yp=iH5h(^@@MVr@8`KSfaI|N-2~uHWuDE>CTIy5r*HQE1(bmFh7RXoBA?y9&e^KTQ!+wATV(BS5A^UwRu+LMomQaOK2r_sJU zxIgLQi>qR_D3{sArhxOX+CG%AT089yo<=*@rR+X90a4s~|S!@$yi1-wda zG>-okeqX|`S?f2|P7nO0ha$)7`rie6;a&e#CW|ud`{as_3e4b|H!Oe~$XY)A9aU2Z3BpnB5 zs&*DO=B`Yh9|A7uBt>@cn+{&1qar&$fkLT;zmAxKVok)R%5_Y62bO})>JH0y)_-s_ zx}#w=1gvV6GKb1mRvCxx7D&5N70%%_B+hM{fcM3ha+!Tutk&0?;%Xh)j@rWjY51~q zpS{$w^dtsIhp{AM@XzOAhI^aQ8D(({7SCIX;jW5-oH2S;qKX(H;K9XhnVp3nd+Okb z%=yQ|Eg=6mBIAG$3|@*xZhcqXMlVn1Aci{n?i%A1-o)e1MzuwzaMGrMvgjbmm&N9K zvCRC!>1}qsS!}oKI~-QS%RCEwR&Re|ZHin#3?PGVO9#l;$-Y*k1mUZ^)xqG!tk${3C0gUMqv1d zAM;;FGr@@Epes887!2diB{n95!>qrJhZRCYP)Zv=tlzM-1<#d0z_J?s6yhq(aW2YNl zt{+#|lfdilnu#Ej=f~_Insm&5mAtieD&{n2cAhrysKW;bvYNZBoU}ywg|yBxjgIm8 z@{k&#sA_KhofNk(uU65*tk)=CG$HBz!0r%!5CkU2U{D`HZEGsFbK8ffW$7Jp?g?bP z=4b>*a2807_6s-bi*oajea@Oh2$fLH+mg$Nk!#L(~(saTFAp!=j< zFCY6L3QT!Hxp$?ZR`vFk^UQ`nj{fW@YPWVX-%!1 zPv<;$7*INd&zFVf5+|Xd{2`3{Stj})y=?CcjgGw}B$7okeH7n(V% z8H$K-0YV8Uj?Ao~TtU;Q#&{fWECr*kLJfn6IQ|I#%cuL0afIphXL1^X;P)@A5aJ8P>-VFe*TYL7)IFaxV$DqIsU~s@OnL-7G#9 zv(!x7EpBg$#WH*FQsW4h(Dsfb;PS2s*bkLoGMI|W-7l{JkN44}^V4hAV>Kq8!ykI7bwx&KnGm;v!ea5^xITBQ}2w_ftFy(`+|?L?+Hf>fOnaFZN$f?(3|_ElOHN0*&)_(K># zn)dF718E(4vKN$4E1~McohFa_VYo6=)^-w#!%f_LN@!sD!hYyTZ9Y=DIU~nm% zvRVqmQtIO%j5;pcTv~XA&o6Odi#DHIT(KH z$99CMMuE*m2$wVe_G z_EntW&c2L0!i3$mp_v;-W2eZe$pKrf;awP9v$S2CxZ2%+mH z2v^y~5^%>0pb#$vIET|HP%+%RTCaA_j^)F{BGTSRuksw=86+VJo^1^eB9{|$oC&@= z9ZO%O?}0KV($r^$NbTp{nH>mdH&v250cbg~()*<2og^!XwOq<$#pslM!tfj<4AwfW zg*IBU1nYw!iaNZSoH;LXwA6H2GVISa+0;8v{y@G85!SPN*s?4$`14|e3+?aISx~#0 z+f>pZkN5q&M^Q6Klw{3SJyE!uqlr+ zRI_zT$yL%QLl8_d_Wtjy^xDe6X5<>@P*D+2sA8vwwAwT}pNHm|A{D>rB)S=)o2&^BcY%V!bO!wV) z>`&t?pu4SD;&NF$UIC!r6pQOsxyjns-;-H~yie{a%kQ*x$dy>qar{+s*qTK)T{udl zg!&dLuz@&{o{BalxuyaaQ+P(i7^bA;FF(Z~{NuknQX=qyD1@I%Oo89|&d}Y*v9}rm zN`&|pJF(iv3-4NW&1Sg8VsDN9lwE8VSJ!2u7A3nT z4H~%6IIenv(U9E&nW5Yz`+B0oZ(0uTJeHyp7L0mJ4rdrUVz`Uhm%Vu#!PYl#^S7hf zmql{Woo?OUNX@YeWzuE133%)Z9Nivzg{laSygU$N{jR{3>vCA zPA!s8YLOlUl#J-_XX?=)4DPAJlp&HBxTkg)!0y=_RF(r8<7U7NUcimuHeugelc=~! z$8oAU7`^SIF6G<@fJrwL&#Cb99u+n53M$9@&0<^DEEnK#O+yaX7GEzu7n{{0d)Pc( zUwej1H-2+XYu==vO=QI*l;z9I$SF6Il?HBuI84W)U5M| zaXJEuc6zpNZoIc^0M@5+6&r+`c%v@JGb@oVrhk<{$yOd(pi?7^vfe%Bdm3xsy;4{z%S( ziohmE?uyNAcE4U0tL^R6M5u@Ewh=G+oCNI<1eA{7^K_Q5(%?)noLp^pYsSq$w(32n z^}IEtvW!P2njIyIaW0QJ`J(vz=CCvOLKOeI5uXPe*u%3i>VR`KggQ!VuU3+lSSgWF zy)8PU2S;xjqy*Mgfrs`Ku)hUFA+E~mpupvI3E>&;@DJ(bt%&AQ*Vwlj}+ zR5RF*gGjp4I5tyq_ozmVbm*Loipw|wS_*i8}s-KoIj1zVISHe?dJk+R(79V z6xWNQ!-nE%jJXB*ORaTJH0Bn@l8nb6=PBM*JR)=8l1RVMh5K35NvhL?Aj~i;ltt@Y z>+Qn;e2i&c7ytby42uu#C0?-jyZrl4qbsCDLHoXo z-EE#_6E%SFHp3ELlG%O@-1ASrG7FXn2Q}ZZeHg!g=ve*22S!5NSQ17xfCz&?4cTeV z6fymaUw;~>3%OUtm&H}KEf%YX>~nGHVRqz7x4+b(nyfQdx?wEoz&lSyR~a5*9sKqg zZ?~fSE9WFjT}_D)JBN3CwAefIXm53S1b8viv?fLG@1vQf#gfo{ws>!xmNL2)gn?N& z2$geq#jldNO`6W=AcjAV(?H(Vl*4*k-rr<}CwOmT)|RdA#aRmAYU)yfxZ~Bu4InC^ zq~q{>8DPg)M2Y5`Qv_a9p#qv_4J;M0oEvWNWgDCb!xg1gG$QfO7!o%P4*xtF5=TOYE%e%#Dk?Ep4>`q~HqMEQFz_;`0L=aFi z1phuy($^Rj+2by$U%*KG!t_a^uaNLd(<$K$-hVU1Fe(6jo8cE-2KO;m2!DLvxD4*p zoG+GwbpD|`_Esanv}RP~)Dp*AR=`J~*Pq2{)WH}7@i&CCDDJZR_4Q-K9(Y*j-AzFE z5|!=KH3i@e14;+pS7{C`t+gmF!>7F_pIP|WKr1@?T18MojrB`9@tHP7lw-~@-E4mL z1~WfvGM0QZn)z8I2cu511u>xPgvpg5jGG>gxGj0{4am3I-6foho5u)$ zk>0?A+cq?R@siv#H}HZ`(lLA-9(j;u$}YlRFlC>6H}HruF-?82_o+0F(}+IUK@AP> z!;JH04`5UuTx;#^dwyrq2geeUup_CD%g;d^n9+~mIp3`mt;vM%ip2^O2>W9=9onKT z6o1_zdb3{MJ>xD4#0Qst8rGt_*JO~FDD1XW3fC_t?#xs9)^voOr?Uf-%;JucMi6f< z$Q7UJZX?Nw5iBYY_I0q*OdQ*hfrIOzQtbs?KaDsL7s3W*>FbigPtn~M zUND6cj7GGIN4;UTs=MNDW{_}_YLjxUgGJoIL&F>1qk~`_N;Vx-Ga}Y!w zgKf@@UveNsZP~>)!+_c(2Ig-zspXz`o<%6Lo5$;$a-042xcm#wA&#)&rJe;!t0{;= z>5;t_^$UohW$IvF*)*FxtT-2+v$J?R2Xi7|#VjtU-_v;=;r%#kI^ zD6!kb7BmsN!?6XCbaWQxTkP0twACEhi~+ZzwGFQ^Zya!R;XTt$Z0 zyq|!D64f4oRdiWUqjAnC1uA~;JEQ3Tb9b%XZ5v7Uuk6|H==A%+ZBKpk*yy2r!_OsPkj zSri1-N5;&q%QaZn%<&ix;<)ejt3`EF+^v?YC9N>gcJ&ttKU06@W=^{=ke2;PtjUJn ze_f`*cIZAYY6e(x#R7xtA0Md8s}Cj{&y>-@Qe2O)SmUg8ws{Ecpv`s{nNp>#zy3CZ z4-6i%q8p#lBEX$;T6n25BG$wPtfUn=Qse8COgtPUP}@xNj^UQywwARim)GmExG!&( zk3>v+p(54Z8=a%rHif6;$LC|`n@puDrSKcS)B%1(3=5g?1F_}yogL#4)dsCNF~-X! zlTO;Bm;UjxkZ?#@-wnf~%YQ4F-y`K{m zttlu2r;g2yfloSTRx>Cc%HO2Kn&B4jqJ>CP#||F>Z}13nx3MJza9R`6!9g)?99*f7 z5bS=71;Ph)vV8$<_U#!0VPfmMQ;zj%E~puSwaRKS6M-53I(2)Hv4s;hSzP|OuKw7- z7mLkp`A0)SHv?=DTAQra*u5VzbGgU!2(^dg1L$QsVFw0K=_!)(`1)AOM2Kt!<3mv8 znDb6sGQArq2Zc39rp3_eSJN18Q}t_@h62J7L$qoMVbZrgt%cRBKq<;)oaZq%=_q)p zR#Q1C4n%+G?quQsP0 z05kP5CaD-f@ntY10nchsSNnQ;4v_{^BLti4{=LSuopRv zV0AkVaa+&g{n9YUlcX>lj%xi7TmKJaE8(b(y9T%G^x7=Sr{Za~xTBQT_A9(to*~`& z?x8QX016;$Ps#_#^W=gD8A3??Sr2j}M`~oHhSx-nQ|ebq7JC>3(dHE#^TGywB;kvq zWK*2mgp$KG&r<$4H*D7Jz#3?!oT-SZp`#*CJd5K&(6&{y7x7B?nU5r-jz*cM<{T1P zhf(IKKRX|5-(<4Z21mrHLc(hnl?emW193L?SBePIdQK#4yQ(99XHM8YTb^4-soX`~akS~RBz(73coskbREJy}OBy6@-hBS>w) zs$M3{lx5mCL*Q{~E8>>lgoDE~fbVyEKpd<+CLaf6 zR`FnvdkD9f<8U_{Aqwi42K7o&jD(WOAT0c9E+(O>x<68EEkC|%RMj1bUjX$(&e&HQ zMMq^_uy{v6YRF-R)X(^i%foryvLRr#DQ>IvvVaZwlj;VD$Ma0{v#(a(4nqM?R@>X> z;%Z&Nnh1i}&bx4_J9^EDr?2=oFO|x$)@;g$=V_7^NUd;s@2KA;0u!7A(2cc@CBb}4 zWl&?%%6heR3jL^dsvT%1~ptLi>iXffMVT?_!z-s?+;e+o>gB7thC|xX^ zzj5#vw4VQ});HC>SXWPTB28Lf@kJur)D!(HR-0C(s`^9of%Hwb#X_iv&lN~vVooeX zHS2-&ZF+^l0^W2kA*w^WVuNQPaI57J(gSon>{lu&`fKxe*y+*%=+<|wPxa{wsF{Gx zglQLrNsJM%31MDtpBN=fJZh6GMC~=j0D0!c{Ha`0eF3l6e-VI9J=49}ie3Uevz0tA z8(V*yrZ$*1lE@)MvSkfN(7-=>81(F~4yL?TV5!FdG_t-bqj+#fqSXII0Q9d^o&T@j z&ENwhfS$O{PdK3~wN|heuEqoCSZP9~#@pL!~{ir;aC6z0}U$;aI3wz+yPaNPA8-ZuDI9R3*y zc6$Y_akg0~o5b8N-+jSc2LYFYYp}`@Jox?x0&~Cr;VeNbvGrZSwpSg$W&>8ok0Ug2 zAX8qLW*WnI(#BKFYMTmpdWK!EcC!J0K3+G+s~2TBOg)ktt+r=4tUWCsHz%48)1%;b%OSRs&$f#nmYSU%^e6cF!gmcEKbsG-hQ_hT? zalst7^rb)f?dSHyc%x@<01h&&a3IGKu(pL&2wfp;d@k12^=7+TR)uN;);4=`5ztNj zm>bFFERllcnmzfj{3g@0MhUzOCbeQpu~_%u0}T@NErWUH;bKPhY5`s=2!%x>Vx!$! z?5;2TfMjjkyJrl_7V&8P5&2L!(YDyY3AJvnnTW9k z3j@WQeXtP19_|F7p+lu)g@*5Iubghq5F9kX?!NeU0t< zrFZi*@}L`l%B#j>HV#xot5py?-L96;#UDkryjhgX(drh~_I~gTYW->X&^XNuskmpg1skPu_*Cjv zpmN)C7TZ+S5uunxJhRO@G4Vi-7(`#<$me4Hcvn8nH@ETsiBeR{4Y*K8)!t*d>C(>Y zYmnLA8hLo;Q%aNhPR~<%#LtoEB0E&@|3{qS3(39nM96^u8x!ckJ$Qi z^H|l)I1EwkOu)6yGtOOyhE+IkXqE! zwL`ON{dw8w`Ei;_PHiksO653HQJ5aypn>SG`%+SAW*{gd=ug0I<$^vo@cI*0{BIJ~ z{^@MRf7}5%*-q)b4gh;TV}>fVf=G8lU~8T4(x{5?QN?pO4phbJMfdZ&+j71rw$G1b z?z7dhFP9zt?4{gTwd3jG~jDAa~HQ6r;X^%$d6@GgX3&ftn$vANPp zrS*}CfCDlW^ot3@3Vd(yFcsbS9E3Go!QIOkmC<087=h{vn3=H53PFn&!nqm;bfOpj zKW`szuB-KRbw9tJKQD`$$Mw3rxw^O_HJ- zighY>Y%33u2a|lDGJD@vCI?prAAeB<{(?t=?IXjc=tTcPQ|i83^)eIvggZK?QTu2T z)@;C%sC*|?Z`#lE8;q4|j7>}^vVIX)xrfh|%L>QS-sAm!Wm8hO^le~jJ=|Y=Xg=gl zGb8GyCo-ZCWeAAatQaYam1Ir`sR^!sSUn3-)#`{WAd0B}_&0&5|M>R>SgZ&~3{t*V zN@$OBSk=tHO875Sa5fcrZQ?Xq{ZT=HSFYFd)pkpfSjFRcE)uKy(z~ZnKg;}mbG0a+ zx2xq5#_7&mbD`#dy;n&<&SkYavP`;#Ah9VMudk*{zA6kcyei||;*MnwZrWm?HiEva z0S4}{QU){?8}Y>lYmbqx{PXpwYW!l8m@9mMMC}vLVNpKl8vaVIx!^%tlf}havjQE( zQjv8dSa%Xl?sz7rH|F}8@v3~fu1Ff!vkP%|AIAFX$=rHrI512`cIMM&4bjhZp#f?vsT#v!h3`A zL3p~lR$3dpiT3RDJ))`m@seSLx ztt>)du4XqEndW1^1Xcwsbn(1Jl(OVlqSdyjxmr{=MY*M=u@9Df5!_7O(e}!} z*UxHNL<1%3{)zdZ`6jcb$_YYtHHLoiLop!HBSclJSO_|11qoIG!<-aWADNoPyA=LI zbt(MkJjhCIe%H=~e!yC{0;_asG1Ha>*^nVP7>tDzH;H6wTipHldrTn|+x7F!%~MHs zC5%FWAoW=1d~1dRLG5|@&^yfptTLKVAn=w6qh2n0Vi;)cM@bM}<^(L17>bnuzRDWo zn<)ZOaQ%S_TYqQ{TTe_$K=>fz%HL<~pl$}%`z0NOFU(ofWweXnB!B}sj+l1&yo0Fv zt^aDZ-4=J%V)2Y4Xxn9f!2J_wrmADx{SV%>e2ur5aK9q$$^vg|z6-pPPvwF#_WuP;v$lW8le@7o3c0{ji>I z4jO3VAsbI_6&H4yU)>des~;<3EMdR8ON67f9q%5FV#d?#0?CuIA+eff;?y~=P&kCk zl2m~Sxaa9{wgSKv)OvU=6h7Sr3-H`?ery&2g~Y$TCRhFPr~mfT8M(0tA9RmHrO-}$ zWwp;B5v*Bp2#veCgOSYg22H^Zy#Vnm&+R* zfZMM7BH7o}Q@QBdeStI|LSjum^iDH3YmCJCV$T4(J;%H(SjUZXgu1pcnz<-F!0p%X zVz~R=ZwT%-jSPJE+w^d^-=tSF?wXn8GijL9M{qY8^NH^#GU63a<2b_M6mh?_#(r+c zTEH?k6_J~5x9-!RZiYZ?>Z?;CZ_^Sf+^yM?kGs<(MR3{?nc27_%m=0hN<{SJ=#I0s zo*dE&uuohYd5mS|q^a2x7sN0JWK_d?F?8>3z!YL7+!htn?g-wtVCRmS#_cj~ND0&W&Dcg>h=#QikQp;O^FKuvsW-h`HgAj8Gt&By9xoTFR z(pq9BB(sXQUpPVfa7Y; zW?Te*Q&*Dkn@h%Ze5DPNUVF3hf%;8S)@nnjZyU>;V385q4U|gg1>tay(bg(z7!2UX zE7y$Q?=e-_CXTN6XHbR3w>=|gYn1ho4<|O_nMycjX*w4QraQco)%D($~1|J~dbTEnn+!vjhzpaRBW=`20rP;&;Y|d8l*kTE% zsV(uh#FS=7)olQ1dABK-*Xv^bR4%V>t0g^O+n3_|bGD*qsVj8@iJhk=`mQ}R8$xd` zlVKg2m{3c6#8ycrLL5tGYM=yc&ml0$eDEp+jW!xM$)w}XXJs1>3Ss*S*%^nxa1V6n zFX$7prZ!+9tB9n`%zI0PtY3fArTitQF@uXwHNfS1aa}xA+XfQw&UWtv0x9t#G^2vapJo5h5l0Rmh!C$}3#q zMhg~?1A(~r5Xtj1<_q#MyyJ^ zE$<$m%VM>hZ*B=N+^_5+QD(Z^ZNYF)xrG@|=K+!@<%8igds`v)!Y}$Zum~v-pUHvP zUiuPlbLIf>G_K<9;=loyLWJf?E?h#fVWQxC7k%6VIl*He<;2tq?5Zyzmf&&bpr?v= zJc#4K%eGPF?^U@helM>gWEP*wr#V%eI-|UIM(#CrVeWPQG!ox+Q?ilx_DyDFy^wg= zDgg++jCA-+$btI5dQN`zRtAA}qL0aE(lV#p5`MY%CW2-beM@YEgWeFR$(>mYFuYk^$O%HE~lH z4hPq*hQey56v`90I0f*75*rHmmo(ph6xgt>b z_3BU4qR+51!eEuCVB|&Y^MRLWd1N*j*HLQpx3{M`PkJi&n zAZulCQkoEz`a+~Gg%@yqv999GI1#kQ8^wZSS}S3#&5&X^7~tJc_MSzGf!O+d4ci=Y z#?*$xo&yo}O?XUGxK}-52X!shH`QTK zdq_4W&d-y|9cElt6Da^Cm~~7V*c>s^C>55<1w>np;Pi&T1h7Gv=6vlz{}l?DNo@^2 zaQ-Nj@<-RX-9G)absMm$T@F`5&77A95$b(8Ut)o2Jb>ewQ>b14Uqa1?d9~iam3Xm$ z|29UMUzT{O8d+`s`v#bYi=iiJlc(lm=yWL$AacNYW`&FLgiLd$MktA(EVJHAN07`q z&p5oB?wAVg&#$Ms;upWA_`kpXX$Bt{Jha4j{=Cx%sSTJSf()~$_2XYhmJI@5@uZCh zEU}u^uG=6&=DI3w%lXZ+S{DtG<%LDNYF@|;GP{U&)t{G-m2Wa*s+=U4V*&f^QZ8$2k0snc*;XWN!1o$rui6#^gixWzwbtLw4X6pXX8zVoUgl zhiw~Q6$DCM=gavNG*jErd6}@1bY_@mRhYnBpWw>pC&V`6dY&J5{fesBGZRs zW}vicFKFD6@@wxo9?3>6D=+1--m0ImoN80$|L2CB>glAv@x4E9oxg4csyQPdAfb%tuYEy3fd6B>}-P_KzQn^g z4tzu#O3Ov{eKZ*ED|8~>VU8lUI=Lo;lY{^I7X)*;^=ZM~> zz#Ie`QF&CkVSu++0ZKEot1sb{+km=U>f^ml2LKzt_~A7ae^ojBVfM=z3Q)w>cZFLm zgAUfokfE_vGXZNS6+BXN8mCj9fcw`_8c){A(sS$teAuS;UG6;^eTa5LTF z?)U7P)pS#5@`!xkn`Tod1Y`mQzBmFTUfQ~t8EDwFr|6Z9gpNW}qF0`2XS_T%Yx*O4 z&!%Wn-hVgyvEiP5;)s**LH8oO)mm!9_iDGDitwow7^#%hvjCGoY`++nii0wI4-&w5 zFvo$J?YXCx%kp{-clKpT(y&f~_^;;D+_?1g#D8_OvXT03n)y&=JwXegnDAoviVigk z)f1@w|8sYB&21Y?_P^{qX6O5ZZ*lD8CSKo7#lG3B-)NDx7*V7bqU@{u`t6}D5g@uj zU_gL?Tya?y6@{MZ!BNlY?$azdt309n2k@d~Y(@2<7N}qR(h{iQ0|Nmy;ewQruwB}p zidJ9~3XO?#=9J@YBms!zKAgsJz%yDxwY}bCi)_1IeVG#lr%e}rsSH!eU8xw{ev$N$ z!h$vF&^z4<)u1#UC`Tm@5v6QYV8ZqkDR(XN*GwBgmVlS}`}l2Z!l~k_SD2z;r9<`5 zx;lGRqbS&4Gb-hfwi)~`m8(ZaU^yynV;Q3jzHy;{JcHw@U2Pf{e;*gS$gbwme>fcX zQvcsNwRLa_iMZ#k{VzW?9a*QzyGE5$ykb>r23PwyED3IcBP3q;o#r8Mk7~4f$vnLN zj?09J+Z9IQKvmRE+&&laN^E_5)*)D{tg~7qP_HE;F!&U1-!W4p9ggvGf4asIr8Wi2 z?|J_`+rU1oN0s+KYe8M!#la-C>hhD4A#wdIHBuFKxHOb=EQ-4u)87!3u4>kTIW4^wghXm! z5HiVdDsn_q_HQXR^zF;ql>K?xP{IdouipnMG~xbTvH{Im$r)VHjh1xlXyME6S&RAY z!fH&@I-bW#)Y&(UL+6{#JXXMjLjiG}e=syQQ&OuCXS8bucI$(x=O! znqcs5ClNamy<+g6?WxYHBZq1{(^4x>;I>ePIY0p~>I+<7W6|!LKMCA^^XKe!O|;ve zR0{5n1d;15tcJm+5q@` z+UBc)Cj*=#vORdIzv6%r$}x8Ei`ZXoHOk!v&YW@_ zZr}Ct)M)?y50ohC5C0mZf1lX+wv7W_vR5S&uHjuSY-QyMpxV6~tLT;X)Nb7(=&V=aiOJY`JI#VtsT84`3PHS-k_i)AyvNw# z5Amv1;7DBd&wJ+K?U(*Uhd&yx)+N4%=(-{|zb$-rqHm9^sD`O-Cf#0%o!goge>h=;PJaCjLBMy%Ri;mUr|)L)f!-0Yed_;&OkV>2)hGUij)H2+Fk>8XNw3PD zA_=N-(4CJdr<>(wv)o++7~bM2SX$skBE;gpw}wN?etPI$;bH0E_$-A^9p`wtl#sDt zFpe~x?5R;(<7tBZzNAtCh9!J7<5>7}+9|a|yGSaJ*^ij!-DvG*& zHa7OO=&oWZ@jO1O{Quq6cDKtu&-3};51YH26^_UwmR2b`HV@>;WT`J#OeN;rZ8tD;I$Rp z3V>{z(ld3ip$gU(?uk(glk4hW6nIy$cBy#s#&P{G_NYGI{u{{!loxm@8lbfKT{HWY zwNR*8dT26gZl*g}$~sBN0mcbJ(!*Z|*YNSN18`|k);eME<|uftnDCyf6Qxq`{--5B z3LhYm^L*2#@x5=4m0fiF%T{1$Da;JM=YwiU5X8ea9)bXC>i-HRt>(87l&%0r#!3+s zcfNOup!BeGh`fwiYR?pb*FCGuI)!*Av z1iueQ5fDyj-(=c}XDyq7Dg0?U1Dv%XlobB5yJh}mnHRo1)gcg%<0KdYG*#7HZMD(n zTr7|+`ZJXkXt_dKcCcVdI(Ap-UEKqA_Y&Sh1c(DP{2UkMq?zamo;!}JvMdBHEK#l+ zVs)kF{8Zm7s-{v)4AiKpoEe=_4|EavPr>Gb5mjVX`)Y5&oIgR{F6KE{S1&dgkK%ZO z-{!(9oB4VH0Q89vRcX2%7lY%X6VFM~)-RGm*9{BnRfS@_PkEg=(5xZrINK0&s-XaX8O zhna!jjKQ23AsA2BII?I>0rhsCKV<7HPR{y5bR3*Wmx7L|7w9z2;-LC{#zWcQ{h&|h&7i{B)Zj3D$fkm%e%@k)| zDQd()r6LTD*(AbLd?d_rwYiSH2_NtCyk7q0aRV+!A{3pIh^WXS=t#5hv~*}4hPEA= zB;eFA8OfQ6wd@d#=$@)_yGmp`roGe3;2jNd1+WPatkwf;CGgz4gBoc4=7-sjHG;1F z$-5B#7*Zj-Yy(!p09QH%C)k;G>MnbdfH#;PGY0f+$@Sh|ZRRTij$3KL3{y3B@L<=f zvG#f}<;SNZ^=0VXuAG43RC8_b$+fQfh>E$GG=e`E5C_k=^84ygN4BDVpH_E%N zL9L&r2f`73O!O8(^8y4EiQ1ACShKI%4+v4VfX1JfTUgqE#+PUYI}yXfdw6#@^V{WY zKmBT*eOztU%Lj;@w()jbiICxR4p{PVwESi*63g{^xyiOy*IS~%q4h3YEEX<0k%Z^E zIJm=7=?3G1P3Z_d3`^VxLMufKU63LYftGo=o2s7pimoNXupz>D2`?7PSHKFi5i*B{`XQ(-cEV4yIWazX+#++_xM*^CN2OFq*YZkkL6aULmgHKs8QSit`q$(I{Xk1Ble>IPq z4Y#Y^d^5%VjFS6O0r@=r8D&$_p?DbjxEKCH1!7hM=ihWyV)K;mY2s}sEap)YRYFQsu z60L=856jU&e3 zs7;~6q5e< zcJ@n6jC;1OGivkOtLj7r3xGmxO;Rs#$qux@%*Xc!pt>nL5Kr8A*a0kz{gA^6&%S1V zEq6P5l*0(VEw@X zg4h!pWj|sC2z4Rpk2M7d{WVMw{%8-Zow8qLGqB-}T1ClJRpbqxbXQ}#{^};8R&^Y1 zJc*MCR?*QB;KJQ@{gA;W`)>JRp5NU(;OL9)#d%`Zglt#QT_g}Umes|VM2~GOJUbbd z^XZo7daC$K2+6!;QrVG~=LQxVeM#Wu41!m!PBlp2dN#*se5ex}q!pOj`}S-=lbT!- zW=mEO;~OP>vp6{7aE+`;KaQ%Rt7&5E>KfLv+kU=Y=Gl6iuZR-d!?G{Ly&hcAK9g>k^P;S-Tajmk<28xkv?;beN||rrC#;v0@)ztx0;YDB zFfX~KJ*JkdrlZfoBhtb2S*j>FK@1d^+{5h;Zh)>wIPJ;`z_p(T38v!RyPA3L4Cg1x zVBh{PhNv}Vuwo)b^uBrq54P?+ae+q(<^ zb4N{z7|CRvqG!5O01YSWlpdOnzR!}9)j|-ItTfDe76($B5ekG!&VrReS%nIO31gXc ziYrlHAy6sP`i~QI>_2O!m7R?hz_&i35v<#=h@u%)kTp>migV_rsEuah37Z_UKDOlE z?UtXfmzyl#epqepwr7o8yR!jB7xWXkmLHLfop;maO@$G-5;(*lG4C5wzvCR+V3=_b zn>vF5q}R-aIJ2x49$&sk;PKt@|9s*F-p^jXAF8w!-~K_b`$ZF~w|z53`KeZP@D%^Upw zF9e?}3gHLo@ELr7#OL041Kb-4q(PS!uA&iW#Vfo?Q9(L1Wenos8%L8tQy_kT+j<5k z?CN^-6L^dM7?39@JTx6kr>REZ2_8VI*ntjzV-t@UVNy$Z7PY&A!n?Qvy!0Yc1t*w* zvns=!t-_Vs{GsK-j|@Q@VATw6yt>D^iVksmd7e?e|xlS-&a+BU@}uOErqK=k*2_P-`qwDRxx)6#AEj=|I zO{c8yYKg&!`}YQ3AqTHePgnT7m`zNo@(*0^Tl!H*HO#pH>#omNp}}X}CB82BJhPl2 z;e(;G`ei%NB2_&z7Pk9%Qev%KM@-BoGzSi)j%vg`T%)lFS)s>udi ziZU%Zu3L7h-7;%xUJv%9!}0U1dF7Ir92RpFiZdyr3bW`3s=G>YdlqDH@W*3N?e}HQ zkte7p3f{ayu=)knkoDr_3_dUrR+C<6pR?*#fmOBx3w$|`A&)K2N;o}Z8j;M3CvtLC zT8|L^DNexsJb&0xL2;ukNkDF-`5*zgi(X7c?v^X0W9Wh@>7e~AOJ%*ro4zz$PBjw} zUM4ZZN?GMt5ZWk$tnhF)3}Do${#jH3rqT&^Xb~Gk0fyN6wybWa!Q&+xuvxlB%{1I@ zbRnLuq`~y_X!v@}lC9_W`Es3o$gbA&oCvAU6DY%}SZ!KO&po)KDaZRc-!AU2nhYW@ z{q$t`yq_ka>jO1|(E+nhtk;d z1hPfvb)z88S0G!mDIJoh%L-em@dk#Vn23LU)U?}gtCEzmksWW+%x0*0p3oiE0}{NX)aNM z*IA~uHjaB$i@I;HXt=Jo_RSEQvG~@v7d8ymD(m1^Pl{k{(Fjz&0Nx$R04$s6ZN+0Y z9!zao&G0?!eQXXpRTp*%FfBQvDOr%Lwsm+?I#ynWckN0XD64VeK*pgC-}OI*>nR)d z_v&*Ou#9E12HwCxb#i&;t&`r=cXFZA!+-pVs$BS~c6#`^2O$z(NZ}5;Fs(<1RO3_^ zD}W@NGU?jHsc-@+Wead5$H5t3G3vgN>%)8p|0E~8O2>Y{0JZ3&{sPp}>ZkyIg?HWd1|Hs3b}P`Z5`zHC&i7s zW9WG?MJuWitK1I{)$p6pH*KGd=WiSci%V>;mp6Cw%_7ghLED@A-NXE0IbhFh%Sg58 z01{Qt-7i~uXgYpQQ+psts@OKpf`m{$UhqUuF>6NvHE~#h41p5Qf|xdFV*xN~0TfMl zy`nDouind5~NI=V=14Qy6<-%XG0SjD>oJqL;3DLZPK_Zp4qi$eWY&Y}u zBHLYWZz&C!F?25!ozWFbn|Cjio|+D((-a?&#^JS95^j4Cp$iw&#XUu%9ZLsdGFw<} zaI!Q2lnU>(QYXmLKM^c_e_SH_)HeHO1|J}?^vw5v!UtW7VG|&n@*PJ!DsauV0tzb+&jQ8^oIK$wlJWq8IyP2O8E6l&wj}$D?U z7-EOJ(=qMGgzc%@tZQ9?1XQ**=mYWm?YrMWd#@E7znd`m`m9fV ze_V84Di(KGDMc`s%t{C4376wKjY~5+!GZ$dgTQE{Q^pK)#&JbY8M8VBeX0!t9d=V! z@K87Grnh_@?u|k5xo83^b!%d#Mg?r@I9}`kM{hhOx)=koTzsA9i)?*AT!}-HEcjvT z2P<e2Bqzo!aApjXF5b>Z37nDVwZ?El)7Gol=%9@~G4S>`Y~XDjaQ;>^ z@V37(3#d1SEORJYfZ?WgGpU$zjd3%cyz$^>tLv(-Pq({*n~x6ixf~zgog6e1L@0 zGt;z$4^mnkf|73E8j@1&P_hG4l@W3#3{$*4K|rtr@mx+1YZu$iCi|EzS9i-bfwaAg zCv->RqC0!03>uTTC7aTL`Z6SL?=#D(=85>i!e^9>T}tDOi2=l=mK2Bw$4uZ_o|13; z{l8m+IDBCEn3(cM>neyYiMO&57?|r2#{f9rI53U}a1zxHO>um_UjBOy&dswM_%dIO znuaJkY_Pz&^w4xXewKQ=COBf2L>yW5ZAPmdp*AD9(?;r+B6cMU0Mou+bqp2Kt<_nm z5z;-E&H}OVDRHzF+zJS#Z9?B#$qcmo%+Iu8GE~IQALFNEjG6p|Pvt-x% zfEOjeJsfW74BkHx!U!W*!IYKG5Arn(nekVwOQ`6HC+F{%r^_-{$E<) zh0yb`@9o1=!hRYV3lB?2#%D>vdVm+4g7vY=UF_vbTu*oYu7N9uz*TWW2`s`pFD2aj zPxK6>8q~y^OC)lQ=W!Ce z0E)if%fG%}uXY4A&}>&OL>U~sm>SWxT^>y+6l_U{?CDn72C4bUIoDfs<)kRdtv&bO@#>k`WrEkH?FIn$cK2Dg}c9*_>R zQ4s};ZNA-IKV-Mr?Q(ZDUw@1__{DPb;XeOF&3Wi)4the0tLT)bac-Ac=;a5d1Lw2U zT8Q(zP*CN}NqDI&(>=BIb{!QdnDrsXZ}{vnh{~)`r^f31@H>X8H9BMPfq~*&)B%GQ z7Zfb0LhD|FUpodrzRfUSQe+_>#7P9Xn}Ac?DlH0`T|&8m;P$BGZzEq zqD#A#inUxP1>7Zrl7aj0%h0zy1Gfqs?**2z761RayVmBmjV1e6w(=d5c|Y*Y_WEXh z^SG`!$-T*!El8$CgcPYFDS72zzde*KVuT)$7!V-HR5^CprqP%l95#ARpF{nJ;N?_} z(i6?kraI+#q$Gy>*G4ICo7M>4=|wvAVnM0^$HI))*!^&ck4SWDg)n?6Dt08`m{r z@s4pkAPp{-gtiUrF5<&s40RAUxfHq3#Oa!AanoD2-`4~-K#gMz8}g!%{HghJb$>mb zN0=RlFV;!w@@j(n>$=o$F$U*BJn3+Lk==6bgvR0Aal#yY2R?Z(_Jijgr}MNRR%=cz zUX(Lwea@Yg&C_|WU#hKrx2I(eABf_4f75xfgtVqOQ%M2}^#R^T)nzydGq0MZC`2DTl!xC= z++@CT?PNHn7uf@6OtFZ)r|^sb!o96SPn?i$EpPw?4i&Uf_;?=Ejz}&XO)0KF#Pl#f z{P&PECU^?k;%_H!q-qHD(pq`F7z%sV96^_OyBE&_ka0%I)<5Yp1YH)lk@1sJ+j~@# z*l6(Iy<2?1N5-g zMyx-aAdCsi)bpD?j@C7+ylofc9}%>E{g3>w0YorjYd`oDOf?LQfK6S#ZEYW{g5kH@ zc<9%MwxMs!>*-{kZI(BSa?#j`?jV8D)ykuqjVQDpQ2?WIwRGS-O(VIpUy_N;5DE>T zMBt6ojpu*5Q2fvLF229_9voV4w;YO+box5G)g8no^xG zwo(ZKom!!u73GvT7AMbd$8k((?*r5)O7)YGb9Ogb1AI18sz=Sat7dX6oVy^VWLRbw z*-+;2x{9MVVG4d|cx=a6=vrfqi794q!madl>SjJQK4KX29DV!SAR~tO%C|3byY!K( zF<@tSisgb5YC@r+8V1AWI*T?#wL$!i1HD>aO;%n+<7zTp%wja?;xrtJAO-CU+v0#W zKzNCC*u2b+E^`8fO)kCE4E2YX@Ut8tavCC)g{M0rJI^_h#t225TLgc+MUeAVtfBkr zUpaiBcjSyNeoC?1#q;PzAgJWL^$b#JXuO|W>)OJmI}12Hbj+k!EQ)MCnPi{J^)$vv zez__qDQm0wO6?9UNLvLj16PmMKnhZe{*mwvtIXA@em%Z5ihHEmCVveo<~qU?TX4K9)nt(VF6RW>qW?LWZ% zKjGEX#s{s!JEci&B23?>`D(UTLGv9Zj?v`9@vcD}<7icFWbNByYnRcxFp7Flz~ypV zv1n#7;h|bB3p?#B@D*hsY>L_aW05TvP`Ad^HJ@+&RJ?*9CGFu9yMb7%Ah=R8rt&jY z9aaqQ1wa)8Z-84)54^ec1DYK*g}itsz@q;T!%bs}6~f7VCiVaGJA#|0K;`Tu^R~A}!>% z9a&JQb&p_|#QtbpEyRR^fYMR|QKEr9uM{+Re>~IhR#yVgwhrK1LlfxZ~WWOKJq6LACuRVBU&&O=F{4(|X z1s;|4>^$q{Ag^Pno5O(8LHs;vypAhe@PSL>=lT^9Jyp#e6*i$N*2-~>52``vOj<4W zs3ZUQ9y?oWknVvG4200=`nT2X>Bwq$jsPo{h02v6ZeO|l%-{4y70%uDdvF}}@}a{J zU&&(Y&Ezv={qQmxS&WnPE~?o(W)0nVfAJ!^5==7wiu3FyOXG0Q4<;ztiraEQnCnSE zt!q2k0LmI>;e8yflNt5ymyX+%S&A6B?9IOhoTZ3nA%W>YjWCi~E>k+nVH}u>ny|iz zk({=XdO+%Azaz(i#%TBA<8racK4p_~J()-BmJYh@li+SOOR2cq^6ug)Xq8aXQTIH% z#e(C!2jz%&?PcB-VuY**OZ>Kqsyu|ncZ5p9Uq@{_b5-0LXqC>caYjgFj=8MtTXr4B?wNA~ro?Lcr?9(fI)q*%nbxrgFN{-5m{x?thV5%atSbcp-UHy(GU`_Z z51Q5j%Bp7N+*;>!i@86=D$AeppBsc^j@(X-B%wVAp&O_MVW7$gGJk5TbY&s<{dgAV zU57SZzfA9MK2BC2C%5It@)0olezhuYuBXN6X$8>+cuE?IeFP?Ri*w zC$`nnOIp=P!XqipgB3}~@y)8Ze$1|m`Nz+b`8@mhxL!uOC+(K)B*`8;Bjyp~ zDM;v4JHZX?ZYxq8<|;wdTPiG9&I~h>$20u~JyJx7Gb;OH76jL^1hjsywm9Z{OuUq?nFR+67_M%W0V_ zokPj3s$`1VP%~_?aUT|5JwjoZ&CBa4?9HpmD$>L_NeNqB;zRiq&tSQ~APxTcWB^oW z%GuR6QjjV|IQ3p!l8lr{Ap}v%co=Qc`|jKjEO%gD8GrHA2mI_{C7lJc<3D!g1Ly%gqK>T+EBq7krs6$ zZqg__jT5A?=c*#e^(T3 z=`kE$I~_vLm--8J9g3n}I+ZghO_U~F_B83+sa~~2IR+2(j*0Q~r_at05ITc5_7vjp zOZmrV%>A{oUOk@DV`TB$$}m`EofA^IlqugZ2#k{E50>FCu)zJ{E_*tru1V?A`t;c7 z&CS;E@;)iE;^E^Y>ejxy{`?jr$ZbYvj2o#pNe|P0NHfm9~4K{V@u~Cr>iuq)=E*2kG*D(mMmT(#FfR_%Q$5?Mnq@>8h+b&C zEupNJyW*BL8&drI7Xq10hh#thH3SoMbQxtI28t+5=^KtI6Pc=~#J@{oM$LTK&}?+Y-}L+1YW> zKyo4!r9x};l*|gxREBTIJ*=*OVsf}mmFGVPlf#WAVc_m=7zQ>d#%)eLp2;?iffr*2 zii-cL1MC=E0%*kw8x?Rj`&7=$yX)y>Fes9$&5Se*|7FjY{wTd-)F_Pl|K=dSn7^49p<;> zSs?eJ)CkzwtD7=gPnU}_GSS=b_}G!;cE08~70r)2J{AO&j_K#g=oQxDbvBe#T=K2V zHSbAMry~>1Dkd!;a-_yqS_5A10c?~(@jj-J_Wq|v2F0;j6_KTHi`1R$fPxq>J0MPT z34o{enYsH7HV(S(p%@FRT+GVs_I_53&7?h8_r(6h{vtQHNID>%r@nz@G}d^K@SXqU zTi8<(+X)aku}&Br8E~+SIIS2{d*sMJVEQzFyo~_jA8+#ygX`1ac}U8Zap$SK~M7K%n|!0Xk^X zl($=k+1;d=MXVxHm**r!f29V+YZxQ?t?g?;FT4}Wd-um3ucltUyRt@&r2PXB@+u-Oi&a%zc^ z{9sQEzXQj^r8u;-_T;n4=j`w7)8u}=napt{9)nRvH78NPJ-SgwaMg5RJbS?xE%gaTTv-<7f=J2mRyeakdnr(iX77R3#cItErl7*INtpQZ=gwdU1AITWiIyrw%& zxc8NHBh?A2bV|&KX<;JRAF31s8KLt;0uKs zKe#zQ02CG;PbftrL|n!UamrC@n%k)8Ykv~}4)WR`S^M@=6FcTY5(HMms6(LkN+nP^ z*s4Xt(`b`Fe#S=7{B|2p+Z5HeDHbKX>|fol*5M59%K@}+w|KI*{p#{3QoN9xh#_Tg zwREIB&(^3^+~O$dyhgOzx=^{EbQn7-hzX)Bytc;%7Bn%E8A|u58@xPO+V?^aABf`Q zk+}eo93;$`b#aso!@vwBxy^+pPT0;0Vtzl4qo_Pss&P6gXVdKVe*LAmn-;5VJ-weT z$DkM1+CFlZ#?<%sV`+tj!K8!oMYdrjRWZyqTbVy^=nbeizS7o9VsNWyMD!8D*GdYv zPdxYSZ&+y?JJEXcLk=J4zqE}l{?N5;7zaknr7VY+2qkFT?8fi0v*@TE%)OngR*xCr z^9D!eQx&^GI$9UI`++q0=hK1ojGe(u%&k$wr~D5C-%}&(187RT8@kbv1FP-xEu0q3 z$N%qtM8NWoSbh7)FFAZ53YPs)sUnH!>)1+2%Oe8~K_vCQfXby;?)O{mu!)9mC+we= z1^kuRD1$)^9Q$h>ytw^6hg4gk@bCX#P8ZpAvA&D7Qd=*=Nw`w1nX)D#U@kcEny1^JN9qG%tP;-PlL(AjLjCML+vBFwmQL`xflhEdABf1} zxA!UQ#v=&hsF$)jr!?n+2&&?xtlwkfXenTBIS<9UoR`^V4Jcnmy&g`|5U8$h50z=~ z&!+?5`Rd9>hHRN7S`yDkVtRySsSpsJwK~S5qKa6jv~8wQ{r&;Ly0%JYfeA2@aC;4)hXT9APB4m<=ShDDp5O|!UYm>@vf5{O<^Fox?gV|v-S1#^Q63< zMc>g6(nsuBiYr+E)WfMZ`iQ~x(qZxF^33a&465 zILpb~-g@T*C!2LbHgl|y`Wp8i zHsVFKOTVgYeOz9xmJiGMdX_xf8ayZizUx<$n|hqp^6p{~9)yw(;pa(2l~P5VZKQ#H z?A7r6+g(orTODCq!-Hp-bd=*TE&ZuDl}tAuSfSPKtC&mKt6v+d-D3|8M6%G6noN9V zAczB-84xO`zAwu=g0n(u90pfz#Rd_q%A+#C8v(viTx?a~ttqQHa-nD%5z z!8L-uYYcY%{u@UPd}v4Fq1+Vn@-h1|UCx(Rv9dV4>yuz=H5=VAb$u9^1{X~S(=!#U zl}w;u>I9L*DAL!QYez9dc%qGC)(U|Esb}3YPubsNl5^BD_PEUjZ2c1oSIZTA-!MuO z`U<-cu$F>!IaNfuBj_0VO*jrjMY{^ceDZ$_p@ot!{+b>I7yLPO)p?z2HgVHZ$30@vEP zy&!NObugDaLUiEpDdph1i7?p{9j#+0!VoPT01OVp&cHnjD)%|(pe^0EF*e%UABLnk zL~<~s-fS2Hc8JDQP7R^PbZuiC5p8IY(&7;Z^W};L0}d2az44qpqMT<>sk4j3fLzy;|-G7A6g$ISQ~_r4%M|* z^4XNofM)nXo>p6OC}WOrK0>1g1~1o6M$OZ;A&dhS%RO-X6V^zsRn@z4JO8Pnk$f~S z-pJYyJjxM{I+oa-(%Z{uj8eCpztX`dgb8JpxWqt2(=Mf2BDtgCC@5|z`a=rywP63TA z!S)11T~DZ+@IKXwEV0Ku0<}0OgqafblrrJ0QxML4F$N`}20C~9|5l+>a&G_Xz=u*t zn~O0&i0Tnvr2?n+5N-c_$O-)WPg=O#(t!GQvKaf!MzhW3GQUgq+0_+*udSD5l=FT$ zqunmfqMj5w`+H%o!w;J}shAeD-@X1M^xb=z_}6t`MjU1Sfd zMe?}YeCkAI#~s*k$Xd@#w#D3rQcTfs{L?&jxXzRy2*u9JkGdf$4C!g=3AlYVsUaNb zgfPxPUTGdRb@9!y1NrysuHOa(V;~0u3ktj_LJ}~}?HlC!B|0h!++Li92sb$MHqX|} z{Y|pJ$@1H5Sjj;5GHy9b<4OknP~!1+m?H1l`yK>_ti>cMN_&p5I91ioBfu?w1mUqb3R)gQ+yI$=z_Fvp48uqW&1>)x8^ct+ z$M`(_y?|u2Eu?n21@l4(!KBbBp-7ec622Oge9o75cTdSCd)nRKg^Xt0CY%OhHXi8s zRd$u{E>~NyqzXO%NSJ!a5QwP_EoW+;2u9h`*T`}OW__W({58*GTK|I7`&Xda$y0+#zt_Kk?P+VvX^+R>7muCuETsy}!?jeWn&HgNPjd!J)1U#WE!t5ktLGe6nBW56ist)2|B0 z$7k7Tp>YhUsO*lM7q;fkK`UP*xAu?Awg8Q7u_EU|UAv!F+ZJrLoX1!;8}*P7r}YAg z#^sA~3adT0XBiFX4D8=yl$+K!w4~7ZmADPxIEST`4PYVr~2l)_R0WeyX`oOcCO&v*f$5neR8w=yk2eh zVFYisG!fukbVqa|%!fqAB6r(|gUNI$mUz$}ry$%jXoqjgo{5zuSr++-*8M=O#kv<$Y55!Vx{1tBLo6)Mwr3-MFD|0;C9_;Poz;kvF4?N11TsaBtYsaDB zA&~UGDIO%psT%i8bcx|IjG>e|y?aqmWIfF%>x7{MY0Kag4VEUfK%5!u9A|4$^sJ?c zv!N)k^bx{bMU>HQN@k4vmlsAAMQO@up{B$YTLkzz&h57s#b)oar_C-;9;M;a zZD-;f7!Ljb|MJe&&qd$>B){AAmi+kUe^;b0N?e&eq3EaYzPAZ|OI z{!@%eND~rAQ0P1<>NF7&26Ad7{TR zSS0uz8aej+t6^Fm!YdzPH6w{-_*5|&Pm9wmZr7Bdgo zezjRyAo-HzOQ6SW+zNr0gI+5H{x`)#xE-C_2fUgl59<y@sK!Q=UB!BbVR4ZvNPf? z(x<7~lE`Uk!Ub439sb1=3acr%Y7fUo6znbr4FQcJ* zD$HEVdU2RjJ>B(t6W-(8W4Y#vs^EYxh28uwflr*}-yR>^{}n2vmZl%t4-ACJP!0wi zci;z6<*FhT$`Kk(bhGA%>~>*aPn-Lygf?*4pFAdSmJi9|X?MGVry!hOiqS5w%Grwr z3cr2dpnu31YFph;V0+%8@aOD{-P=a1pw_`WY%1 z{QO6HF+dM5wD#=_2AxpY52H$rWlCj=4bqB1vlJ>`33j_p2X4W(gykl=+g)#0+f|(o z;M+rvQcx`~eyjqZ`T!7T^}a10Ctu{uE{-+OVo-RHFr=k(#G53YWf~b_0B=N&m?DKf zpcX=d7gKctfT6u;su_s5pJGO6$?bx~Xjr{4s&tm5lsQ*XB27m+>-OR-!~o5&wu(Y- zzWZ|Hc94B@z;f<@q_<_Ix18UR39lDQJdn@Rb-~DRkAc+1z$j;0LVMC`bpmOI41YFb z3E?y$8oBpg@p{9Binqe4qJ#ZF?^G99`j`OVEa@6k_V@s@@#vxOKu&iUINo-zCPC|thT(+O5q>Gy%*^bU?d3(1YBDotT`ef>y);!E=47 zb?UDHw57n(x3-b(R01u>P(eeAQ)d5VNDy^Y0j;t^G7pu0(<`WdGP_L4=j?I0x%%?7 zuBnrbfu&w%BFm#E5!L^actm}XRZ*=eFrvV|P(mT?Zg_jLUFp~u#R-y38i94NG0GUk zIA+>X&00`>`=1b~9&^tFDNXGMKv3u&lEjL&z~pu+$}`tW5pdLvx$0wxO;l zxBX^;w;_i5&obL4pI6H~UnV!%>Uz7(lQ6&@t->g0_HueasBPF1ReccH@v8K#@z^`h zLZ&ELLV4h-MKOGdNR3oa;M(Z`Z=n-Yfele1WYxMD4kL-FKfwR`u4N_DexP@{3M~E5 zl}s;;Dwgt8h+=9z6HV{z-DaD{X}(<1JUCE2tQN`RZu4ofSM}vJ@Bgaa`?hFc{N+Wq z>T`kt<*9aq#RXEvp7(mXs_$q9XrD++W0*D}=p+;)V@WBC@o)VJ(mVb1$B_Q5Kn?~y z@cThj@lzGzZGyCh25ASUiB!D+i`#m;9cMvOgF>lwc6XCMZIc^|>|yL}x-O%jaygT+ zm-6i&5JGJ)nt0THk;PeU|M)O!V~pIa7FV8QJ>6Gz?H6EfB0Fa|EK_x=AjUX0C+5!v zHCALS zmoK;LT`Z!xaQ`JeY#^EeD;5Z>U>+b8D|0Gp|Z#IGB1YT+}*5}8-RW{Uz$ z#=?DK_GL%zmYlg}p`Nh2W97sK$gt5s%dQqkQ$g4%jl|nyftdTnx=yjTABTc&CKU@>65Ue*C+ofX#jY1n0B$HUMkirH!{e zD*I7{ST!YX4l9?q>5ZVKz8FR!nklE<6X-F^ocB#eJ6=&gJ2w}Sq+#iQeV zjSg5jpMKYa{mb1l7sc)SF-_AM;W||mmeAdw;D`&%6sea@oYkrO%nTMtLj2ud1by{l z2u+&7CM6O{$~t!Gy1h6Z7ld|--re!a(O~#dgyu0a zl46AvlWnf@0uyxIR-6tJhqSw~KZ3C}M#$lX{LeV_fHZr52g6bXX01l+z1MV9_btxk->4Km=mGQlXbYJ$mV zi@;q*n3nCQjD-sm2Qk|kz8(eS8Io1)t(Hu`=$-H51VYUx?SbT{>CO}vjb)+ z1fO=SDy)|f5MUejUqFup8!42&I~q}cn`hCL7|DZZN-Q2Z<2-KvW}4=m7*m#~Vy+=s znoX&Ynw*j|ylvYz{B}558jyq5jcuKbzq}wq#$QA^tq^0XyPDW-$7xh$L(qDg&8UkM> zkR`g@{dO(*{_!CIz8{a9j=%liAODlu4-5sqP!fji*O-KU*rG;cTpU)p5qXs7yFv6(bWcCF!2EVGF845@D!(lJ8eE9%6_h= z_T-MxOp(%BU>)|;F$`hMq{O=35;xdoSJ$pFT$de`gZ7rVN)TxYu97i#ZC(^rWL8CY zKSSEcdSqT?xec#gE9Um&Y^7pXH(72^=E=g%$X!D-a+@yADAc)}%yR;F{R2YC?L`xh z+%ql$GXa$?EchYLQD4~H)vVmUvx>sJSs{CZbsZY@GKe5=t}9v$$eTkMXj}OuhEbbi zs##RU;(G+4fe(bc(W-WZJGRidJvdFaTwHhk`%}JLEDN^$m{|0+FG+04V#Gl^UcUOP zSu_zn_@P9j?wh$5iiH72L|6*pnx2F`p~@+akX$l;niLWUR`REEmX%GsD zqzFrc`H2>?${=$0ixo4ogUeZJKQIvUgmN$_`SgPb8bQib*uRo+rBxxO0oZNG=_2Mo zyPK_r%iU)6kOBQ+LpS)^jkDUebB6q$uUP(h#tvUUo_P3ukwsfcIUo&_mYN`E(Msq9 z=RmTer=>Xc2U#jcT4+P0tQX}5p}Eeiw+@=m#ZrN#Z{I&g6j4S?Lo}}heOe7xjv@rg zyl}2k40~-6$7t&|*et5B?fM}eEvsGTmrI~Pkd0%m;AN#foz0q|Y3VEC(R7{;yg)A* z6UCJVwXcksAXZ9y^5Dfp#~@Z}#1vIZoe&sYCq6BRsu^u@U>Psh)@R^)hXpj za;R^i44MM7|Cz{%J|yVc*bHUK^=|P9O(FN5EQo^k5qo8z-io(}LEr)4#;($rMFZm7 z7wNo9v=+eBF(!+)ODY6XQzV!aX~UE>DtPOp2{KX;Hz&6iG=mO~71nv6qqPo>=L5~~ z+DDW@yTN8TjF3*tRn8b91d_>C?P2V8n+4kpIv8wL`z+b+9y4IB&S_-r-@V|FlHP&U z`?7doov+$eQye~=J8?Ot$Tg+PN#5Bz|63b82F$mNd-1j8IL5a8?Xl_0_qK$;2NYC= zQxM~RtDk55VjKaX+mF+^zHd59Ja?{J`6AgSUw;-|Rvp#L zz{_TTW!2`627W;C`1~U4s#KXU?FTP2sTw7$F&1%ZQTz8-0o1N@ zIKqf2PWS%USB3 z0efE-kFfI;Z zZjFUa&i|!9J{tXgAEvO{i+Q1zDu{l?{1}ZW!-(}%0O&{}4P{1v6_xQa=x`vViX0e0i-=}abe#U zj)>s>z-3o^L5v9290NvI${@ilS&=6u{yd&w@a_Np^W%{7!k{d)m6}StkAJ830|S9El!Q)wQ0?K^4+HSYvWEprle?m^+mF)~RqeC8 z-Tr2ke7esqm3`&6IOzv^yZ8DNg;|gU zYkS}&Lf2PJU;Ws!VroAy6zGOmKSI`z6;qsO%A@M0r6@uk+nl=>2UBwv$$;C7)4<)P za)G;>-EFo{Zd~VT?HHNKDh0eGPC+T)2NVs*|2I<`04;#&w{}GeqdH+v|FkDDKzGkV z?ku)}N-niepa@gCzLI;^d#rPN76M5axT5Qa5t^b%OzK3*RCM!xDvABFbGg&X1cu*e4m7r(&7Nfw#1fnG(njlKu zJc%hnHpfU9XG)-h-Cpj(Tr19)I59IJH21d7%kaZsb8n#>bQ!Q11KC~}A;iWc#Rf4^ zq0-+5_988ii(;6Wonv zM?EQw>!q;bas5Tgay5lyxl|yjk@F`NlZ17qks(U3uoaEchzcgiL6;gv_1A5Q`0L?_ zcsK(Ck02|>5UNLGnsSYlz}-2x+lsRQ@}?9$`@Gw1b_tPTOdpn+x9u1%r*?d5?nM(1 z;q%q~8c6~EjqSUs3@V1UPV)B9c_(r$2_SxRHmigYY=65Jsl#64kd))Y$3aUb!5qZ& zzICZ&dtrnImQkJxgD@stFAv>roQ{$s*g9O;hV7HfduT@Qke7!oRdVG_jeK$F#}bXa z@8+vH)>HtRWBd1!o2X(}lHdut+;Hx2*Ydt_%dx_UY9_D}wXj?9{&K%~aoo`MU32^@ zwI2Xs_iUPDVCf^S4m+8Idtrp=F~iOX1xr=qTKmj>#e@{cAsfb)wTe;7$>sG1akHy; zt@kDIfH+@aF(<&-a(luuuKk|%)`8Yl$EJ|N*eFbci0GOKu+icKB2M`3E}Vh36$57! zX&4tK0usv+glxR2at%y|(2fJk-6ot4U~_4dBwO=B zi3i&kS-K@uny{>mxb6w@>?Nh9*bGcuaTW_=f?lCgRpu%@mZ&fosXJ^*FL^% z8^cS>F;pu7%5~8fQe$3gRa@+^S(Id}cWaN?#{NQbb-#5Ywwnwft7G}nmQ&E4sy6ba z^}Zq=JLg+71xC%db|+^Or9^)sv#vx{BPOI!K*`itcBMH{r@G&MdefGvz8S1!`v2Tr z?RL}3l6{qV0rl-qb+`X<=5RT4816j-oX>wwA`*jRXW34e%+pU*av)M%B}*+!mcoLy zAYfEdwRWnjckRt(p}kOTw*#(f930IImZwn_tjxB>=C0V3e!JgfdtSKGO19&uTEDS< zAJx3iZqKil45O^Y&6ChtFLwKP9GyvJj~PoXUz6^!o>%sFK*>P-KT{?9dYbI3C3>D} zULkk_tC!rW|Yl zTPZejRyVjB$HDWZrrvI@7R$xWO_AL|4a*7J3~hGP5`D`F>&5{)iq}mwo^~mLZq-aYGJkUF&@wh+v^747vDd3V*Kui`}+(&Fjxgl zrl76{oNS_9c?~V?8K4TpSySOOFfx(R>AdpLNKHuJOw&T;F=a$pi z4VsTi&#i=&j?gc%#|t3Gw0LDMPQ=&#lV$LT2~Eg>klt;u)^9Ni=%P)P(OXi`$FE?kWQ$ zT`f4Hh?B~mRkG2(+uK6+ta_z%FrB8(g9?h#d3cmnal-eccGd+db0u7a4K#Barfftg z4X{aWU+UJi8R|;i;~DD^559eiS4%6Ej5c=(P+5wBQig=>p;Q1-hAVORdkAVI3J#<| z?(KY4WS5)yU9rT6+@M}P$pKjT!6$OHh#TP5AWK(EhQ;^OY{BXnm@a@oaKT?%^>h%{ z)iy_q5R7A6u<%+(Z;d=)IR5_EmP`To0E>-BZUfLc7_^owhd`0G98ORQt3tCAFjo5p z7veaOv+2%%y(})X`R>d5uKiiqktJ^u1jx#n>*FM>h2Tvklym@|E^9WAo*CeZNQM&H z0G9RCitVaFh6AA1{Rm)<+AxdB?ZExBd+8)3%+aa<-)3?t^Q79h z90moiQqQ!m8bNj_esNJw0))xB_?vz2Iy+zA6%#Ft%PAd2VO$9)8N@$KvqS7<%t@5S zEvXfNbWlC@gV9|%x?VViRUOR}3rd6_b90C%Mvs!c;u^%S2At`oQ;?u7(`Br;9K`-1 znwz09s}eTX#~|tAYMfS^_-?VAFBjRixP!mDpRc%f@wmCWl|1$b%8j|Z)p*h|d79ka z7#OEtfHa|?#^?=_JGCMllyFLUNw*@r6ESzu=>szpBp(0xn!)2AUk@|dOFj4$kuM#B zjewsaVP2vX1UW4cW*YU3RTI`1F0pX{Ejfy|-4!=i#VXsZ&laognwf_?nfpVd}tXDt0m~SAw`Vj_PjUxok@9t@T1Lu0n z_hg&i`bi4Wa=GR5kkZFAVnn{LAc3O*P8xC)bEw;~EWn#wZ+o7woAgJfih?)d7Z|I ziCVNIJFFi$JB5$+b_&NrOXktH<>4x?d<=P1A%TogiGk7sGsvM7vP{IS8?3d5-N{CU zl-G0k|8BGE_0@*6lss+6wVZ)|JFb;0rQ_p7JFYQu0*Y2>)a2E|^fXR;URofD;saX4 z7FKHtB5`&;N~26j(3gGpCj*i1{;Y+_^NSVx`gPm-)9GkGWZTKDw;TjDy`T;JgshbI z{oCFBve^CuUP=M^-fOYK@|zZL-d>*-o83CQyj@(ZR}6MmZ~7$oSxyFvp9hvJdmsGV zLFuCDQ2HV{vf3GDG)$rI-h;x2P<;t`cg0#%`d2yp@D$cUHRb)GTJ*Q)2mAQNI)*HK z-~>R+WuvWRR~Na&XF)I~yVgMcx(~J2^Tmq7T3mpW;KNeJG=R19#4->+|X6awQ?oCE?NDu$o9Tl3YjxX&)L<@%0Mq2V6RagMZFH(sC8*A<>??uc*2 zmM));)6>;QFe;~Q7B$L~DA-+k++mIqjExf^IwL(jD5j(oR+`+zgdv1CKQLhY=7-bt z8@PN7+N7-pK{XtV!;wto8#f$q0gguzfvR+`=bQ8OHUmV&l{nt^!qcN4u)R>aXgYij z)2Z#nrPf8prFP8I0eqHcB{)#PPf* z0j`c1=}_cQ(HI$=@E&gdNpy-~M?F8c!Y|gzyTAunjO?edB-7A#kKf1*Ou;UmB(Roa zpypiR?SaxW8rO`zdVU43Wp*{c__QdN7aV)l5LUMRoOD(1I~`Q#tBXzXHM`E{%VoiE zsoFo6QoSPNt20cMZxZV_|qm)5c0b=@5JxZfxH|iOMna zU|z$25-jXFN9ihtlLlG_$tZe7w9E!jI^;_8?j6-{c&?xLz2ES01|Jv*pXm(rGX};s z9ZE6m7twa6<4hxq!FM0T#g#aTb2G}S;ZflBYq7g3HfIHMNH*#@-EuBdQTupvx|L|s zA^W9j+tT_8$lA<}2q+0WLUSDKRXq@SX)15<0_S^!G4(u$-`e_!{Wd^{n0fT=nY$_) z?TypHq)2;}qagWY@LmO>eBN|8EKEdQk;3F+v)b-5d_2WwdwzAjVB`}{KPgsDOhVJR z-K1FMV(HL2&Azd>jD1e-v013_TaN6hA<+ptrHEcB%b4eQD`NEaAUl^lUHjJ?20Q=t zW|-48=GnKebiGr#irVKXY}`r|6erA?nG8af-Np9g4(&)xaVR|8tZ}Fz+um#zt4q%Q z_9XaMezr~V?`E^UxIJ&8>0SBXlL7DdVLGsV5DI)rud0H2)(dQ7YUH5zWE$34aLa~h zqjnVPMJtR_PTB+KWwat}9W!ST{ig%BVUy$Na&L@8$>SM5xv84RZfqCaJ&2j zCFSO9U2BjqdjIfpN>g|HJ@|)L!b*qg7ul(e#xTO(@V!mtPCO7P$GGp8A_Qmg2f6Qu z4J$l36Ap~u|k`CA}QhOof zno+rNMnw1E$!f>R3f2*@nA1#@P#|05%mK7Ms_)Iwdb{+aZ#!VtY1+3E1BKB#&ZHM6 zZz`FH3vCiuOm%@jZRV>l*)lu7U1B?UyIy6VH(5U?V-K{pPQd$=n!eA)suxR!);}iP zCf1rRc%i_7m8rc@u_xi0Be*-l4q7q7H9-ppf0x!_c=rc`pzr<|u->Ip(0Wd{iz!1n zgnbm%Xh!WqRja0huOlwT@pOkN74T(omtEYiuNTbF#Nf7#3EhTr*1ENUk7M0f4JaLi zr>mWSr#K`C2l$ZFLZkk3KF0Z9^u}>cT18@T9)wZa*O#z+XL2Memxh1g1HG59+=EZx zc6EW@Y8X@*3qKtckn*{4rZP` zvEn4a8$N*qSS6&q+Da{!lh$AFwJATL5=}Y)Pm?n>`P&jx?hzXT1POkk-?zTqm4YfVHY#8G-D!{=li&{P2EAb^(`zggt*3ZG>lW z>|v;uGZ#>5G=?KM;o_1UPhWuK5iB;Bi)FURE^oKlC6utuW|9v`y zzDN?SkBatX$fJOF5H{s#filV>R|>0r9zCm8;H3=pVzzsewfM!iT+jCHPc!(yKqW5o z{1Xb?E-l+i6qHD#R*&Z$rh9pdOYub^?)~j%k!`Q$n@f&@Fs$HA0{@_#;FH(F)o9Xz z{6&&$oo191qDDn(cz>11dlF9QC=}*#vNd=W$=0t@L71q$Gxg-KJs#MhY8XB+5SBA3 zXpiMjQ)mfTUWtMng~(^{tV2A?>01M#g)v|`bvSnom(AuEb5_N?zXQ3W%tCxm4x*Iz0ido#aXX4`Z4sVS^kK4-PzRTvfA^!fW=1>Ji>8C;i){Vo##tI$qi|5@ID@8D<7@p|D-+6r|M_|bA7EkiXoF<*b05^Nw;aNL+t(vE2))yJm7G0! zMObB%C}YPhv(T~~TuxN$c5qvXh3eJPQFgj^X4WyhU3hr}Y|0-vo7(iGKh{-90V>tp z+E7wZd;HtKyTBGrBAh?uYDPAK>lDa_YXq}dNN5E+X^=+eOp+&WB@T+dE6ohSH<+VL znBlq{58Z(*V%yB>4nA(y+7;p{eW{IuV~(0t14;+xX>xguj12uu!(&wFjSWA0Dsa1U zdA(3dTgyzEDJ>!NJXo2agG({34(%V?Pk^sZ){_WURZ$RXdg7K zZC8sg>*f4D+uVMc-z~OR_~*Ofx(cn~_9-Ppbrh->O@`F@bXmRH7^ZFDP$epdT>$H%%4d;KM`n-Q zOc!)BkIK8{{9-#BNWS_IuGAqrGH8!PWAH>Nz zyyaZ7c%14@+2D5h6SPuX>5zSzCUDm(SVgVqGFYPx01B$+0X7Id^(H#uwGujaGG`1S zLPWhQc}O$t&GW-D62nWR2KWFA*GJRT<(_@YnOPU%uxEjgBWwXJxMghQy8f`-#!>W= z?S}ii^=egQ=kv=Y<6zdwV4au-Za=a1{du?V+_o`SuUsh|7GET%H%dcudX;%FY!k|R zq;-z6d0?Sbu`!p?)3jcA47rXv`uc|M`(Fv*{PEumaQ^u38GL{R&i2k1>B z1MiDu>>5kEqv3pMfJ!3<_|=n~PN#;16}Y>W+`$__N>Dx=5^ETxbT0So+f&Or*;`h_ zp!_X0ivPoRM^#4Vn~b)9fR#3hjzd#$KFj7ygy)M*@s$JTZ_nZ+T!wOfnzntn>*ehZ zUe7HVJnuhQx>7p8PM55UZn`9lY6~xqgVIJ}CvTj@Fl$7VA+WAzTG;4gI7HUnD`yWv z>8lg;cG-j^sP5)U=CF}Bc>=gTi(?;M;e`q_FI{u-Dr{tyf4vswZPzop+l+UNj(6z?U zM`vC=yoXxjnMqHW+^KtuQm|S&j_{?0^RVeu2W%w%>&KSGEqs6ljeH_kb=8+L3eG{%1uCsB%?6(pYmf+^H$S$(~n_qun#L7GIy^eD5ReA2c za=xlpO2@_**_aib?=K$|9bZB6m3@~ z9fS4^DlzO=s;FU#iX&3#7REYGn*W%Ft9fHFnl*|hWKeO!UYYTUXzs=X&!^W`K{;!k zd$jG`c&gVX2f7L=!gtbK1<5r9Br0RpqAuB>{fk50zh2cgXnP!F zNFovtXI|EV3`@Y2fW(?9U0+y+%Cv523UmSpmdRwVV~El?E3s{v$$Xe z!|1y_Nikc_LRTPV?}w+xmM)%*q!-hq#%iVLCIPxvVbNlRl0DV19W}zW@Im>U8B6dA z%{{!22TE9SDy;6bt8OanxTjrA3KH4{T`Jc~6#JE{oY^?jQb?`4YlP!!90#P9yRQ%K zVUN96G;dh1IPZortAJM$m3ppqJXhXIH0hxGA{)03YI?f5b@(Ep`mgM7ShxGcLeR=a z&3N!Ak)!=ge!#ln<6i_Uf8c7|53gn){~C^jz+|EA(N`z!#b;4avkNHfWQCDkXBTii zzNjw4#dtkA4TGXIAW0JzaUdMn zX=W}i!AZb3*~Tbt;SDab-Da`6qH(%2S$EGJIEnJ`l$Xw};HGrl%0<(G_eGkYX;#8q z!M8V!#Zwf0wTL?^F63~7?(uw%1YV~f6dClPp$KZe>@}xg{`y1heA$r|%$X##J(KIw z8m`7bG9lDVD*+eis<@yj-SRO)Fs15vQ(SD;*~Kj&E)Bp#$}qHNNqo;?YL$E}35H56 z$!J|nv(Id!r+wK~?u7DqG@iqx6Vp?$ zAM5{xFlBCD) z$DbKc{rGdO$8V385Oh9TV`?XXu}Tp8kZNZpM=O9R^EO-vEA7KV9M9+kjjIn15ZU#7 zd9~hcnBj>QoCsT*y6*#6%h?#36H&c*ISj5MOqZ8OG@@Czy5Ypwh0hDATS_EKrW|t zBZWfG^x&wc`}Aq<6**_pd**ELp;>*LoWS$`Z47STHcsFI5PPpK05IzB3 zD^^gGA%w{}e9!85Q*bR-g|jw^#6fFSvDv0rWveHMaU(M#4!7hYd4saEqTqXE-Xyhz z_(+G+^V0G5MP_o1jST29a6N=55_5QFATmTxiW)3Z3T;J1+(t8Hl@e#w2|H~bH{ya6 z>D)eKh>96h(F`+h2F{vo&g3rfJbz2-(G)d2jgvrRs(<*?3^pyBUC-{e>j;Of<+hv# zmElM&R-LMBdqY_y~pihdEK@cyIvMI*=qfH z@vyyJL?j+zu@?f*{mysKEL5zHgJS6s>7aO-Y0L=;2?Kyd?|2X?>f%*1NOf_G z6INxgU7Fesm|s{J!{a!O0QI@cZFaw2F4vi-L9^8sBvi{zBRf|1T54R{afJ<{Ru*|v6m1M?-!-5&k$=>Oze)~U%dAvyS7Ek6l(3m3H zenAo4*$kd%~J8+R0x9qu8AWmIo43R4~B_s09bX9aEysUJl0E;K^9{K?9 zp&2Dt46d@?YwIG)=E8zsgE#t!a1NO*cpD=xylo~g48|3U`6GeOz@36$W$@c70iUa8 zP<#e0at;Sh)!Aar1YA6c<4G!zWU1JSq6`sUZ_~nF?0s_28W}tjSuVjOQ&?_iRv69IK&4M#l9UJTW^WgyX-4|m* z4L|>s!v~_6da4X;Wa|^M4859pD`wOYl;<2SiJXaAfLkkb!5JG5Vzy1g-fW5+_<I+FO0h0yrXm zQt0XBbE?*O)rg)oL2~?Jlgtf#Ac~%+&l6BS=pKe@8Fa8th6D($T2aGLiG_}w8)hBv zoFs^oyzpR7g5*^RUY|3#+XsA0GH}zfm_cUMDet?vi?;Bw-3<#sW@Ej1GOfU!y-*-+O8MRIhooJlY(~w{oB)Jgr!ywXS z%JX13h3XY6D88zf@1UI z{br4?c@5LyXpRHZ5B8^ISqZ-_oR$)U7qcN3>j9CtEsC2`ibYE&4gnEJR|^opa2HF3q*L04XHo3^bYVJM#gug1Jx>yQkRl%d7oFE&Qt0RLGH!%<4OC+f zM)8Qqj^LbWj$-W1#EJJ^gX8ySXtRiHedjidJ|u~X4HVQGj{;S~y2dsOJYLg_b?+8e z^I5S(wi^7vVq}dL<-PA--D}loQF%lBki7M$nUAxuW9 z@NFxVb4SE?M+up+y-!Fb0KNz*&Av^#lMq?i400N#%8?$dbaQtaMT?k7nXcIEh75mL zM?`f`2Ac_u6y^ON2s$f|NQTbEgfp(CsS1a5T;#LL-N3DZ@Ub8F0q*kBb1q}t2hNAwzWzKJP_uxTus(*>?kz8(Q~BRBTEIx4dy?HyHG~vj(79I3 zlq+RTMeW0jc8ubHXLKC#@WJM^?7Aoy@4FKmV!L#a>_gedCnq@^UulCh#NMoQgrBA~ zgwrxYH&zg2ak%!gfw;!KqHO>XCw#JDj>8Z_`|jjs~+Eo9yno10>hZHmva$;Fpz!YJ=?_gq8ECXC8M z(qZpBiP|Bu4W3JS{LTa<88p70LTF>?LGPM{;IuO-+}z&}yVt&th5z4k61);68Au)7 zJ`*C2X)^GDL`i`f7`p$ocRZBi$u+be9(=c0!S`;~n?)pdJLWm?6&DUiD`=T=s9KYZ z%%3Km2c}tF*g0zTZdi-d0}Tl76_*C4Ed-v5ldy~oBqO{&7MPN-+{EZ=g5{Id$s&7y z-f=w@BS-;;u#@>KXMc%&?ub~l6iw^XdcMj&ENAn`NS+IU7QSU`2 zS}nXYbf_v61SJ@p1SY~b#l;m)*Am=CX6y)#Gh(zi{K&|3YEoov(%F6lTKaE~y4~ z=~y+g^_^+3y?PGHHbk-pQZegF{k#Q=!rTKo)yi0S%ElA3wpP0-FfR~Q&i%gH%U$}v zdZ2rjl`_8ZLjUba=@>ap<=bF5-6ntx9&H(3ip4;q%KDDu#ZCaYs7Bgoy=B@7eU$b} zLS*BN^NUC<((X9#god&WRO|>^hQ2 zt*-YX;b++oQRHl^t$4VOcw<57p~)b6JKd~ka1plEu0o;U&ZjWk7-tdyOtd~Y;mC@8 zkZjk1-#lmc{l5qteIKjWzyCdl4@7ZvfNB-xg6@_3KIGT~GpH^Ch2x=^b2WBsk{|(| z$?=4x^o;ZM4cu!#WLNXq$B#t>REJd^=#RK%zolOIPpUdlF(@64rz>%*HIMWvVCx$* zOzBYqv4UkwRPCa0*jZ+*<3XuriN=5Z*^xN~A2<^dQ`?^~#X$w*t%gf?!p(ngLjBtB zauIMipOd<03KkFGc%Zj!bh}x9C^iq-cJ^>Jj}cnWn0M{o2v+gnWpl4pQ_?|rn#@%J zS8p1DrNA~y&aeyF43v58N#F8J1+GjGr1A?&5OArbQ%7{hsl>t`uOl%0$LmG{>#0j( zv=6$b6Z+M|$~I6~Ea9(b&iLLV(08YC9Ek=p3cf|2Yj(RSZi>hZowE)(@0hABdny%k zPc`GbYD_xnzDR`wcnu<&FgQ6SJWm+Z17ULC$k?OaR&@9S#>NKT(_`azX-@57!2F$4 z`{x-swJ|50x4och1(l-^5ZJ)gGKemGS|UWo(>Mv1LTjGwVso2)+$`?akC8UtR{M0R z*tz1`R2=WP!gvCsWJ)rMFDIN%HY(Qn#Uw`t5odlNj%~l_8R< zT9!MtZX)S|1l7bo)wqfk5uApbjNrb1-vge;@nkb7*4T&5<5iK}70cD)>NXX8FF1g* z?5^Rkx2>!~#hP^ZeVJ@udR)Yg)+roAhUZXKzFzTjU{)y;B0Xu|GB1=@vbo6jj+_$Q zz$bgxFeUhO8e#O-cL!vvwbX_OoznbJv7!#hZr8{Tpjna zc|+`1WnI`gK-R^9>F7VtS~#(#iLUiemhL~lEH0BRS`aLrZ|>%!C5I~WfLeC z?sFL8%8at4Tmv4%@dU7K6AGV~v+Kp(Vv~KIZJz*ok_EvpM2x67@Uj_&swwG6JWZA_ zJw{z|h*S*r889gZ0^zOg{zxE5SopmK z+oEiWLU_dtk|ZH=2zHfrHJZ2z6ex*ZPXIC?HAdSBC z%1O9|Ef^GT%btnCZA<2FbUh7phyBBo0rqaXDO(Sb5RJ18ZU9EJFiNo+gjlbXji@37 z&lH?n!;j1be*KS*5DOnTQ=Cife|JpnGZT1k0oC@a;jdxF9!hp4OXA{5oL;m$TNbz5 z+3I?e-7U6{o7+a^uOYQ^cXH=FatmdTrbfM|7Rs&Il#b5RoI@t9q>&jlPjOba^UMzv z0Qa3j7Ff_=zoxlpL7--my z{)AW6Zep^MQZ*bZ6H}+94`B9xa>pAabzV^(&2ZSTwt#v z=!*=AzkAip zDC->$LM9{|4$Pp2^h$%>`4G~UvJH!eB71%d>rxCOL0F2Va65aLZ=P1!!+gD2J**=E zZfSKFsg0GlynAhov_3u_xAdrVT%54XtyeT9R|*_3%L0y^8e`f(24=O(WF4TeeQ z@lSJk?9ZP%5(?l0=L$?o4|En(bixI1gYYSVX~_g~EN<9!d6wlADI)##Yy;5U+#-Po zaXdK#vPD=di^=xL8rFe)0Ep-S9E8W+_SW)ogY31PBXo7oE{iUH)kz z*aU@zvTNFA2V!-tHLMC*-(pwUll@2sC(NCY#Yr5@Rr=fk?A z1`+%NJd)!{@*c}S>>%;Sd9m6&WjH#0`*Be$uW4}ZuqhYH{q8-P3eQPvjHfJ01|`Gu z`ZDR?!6&B&TDuJAW5bII=iUvZAK6p6%rGk*{)x0p0IYM3(hQBTP4=ucC5O-0vqpL# zL3+WvK=FlM2%vS&|O zz)KQ3s~D3G;M3LkH9jJdgQQrG|6mi-K-rJpJr{uoDY++$cmOZnJHxqbPA=Ef)qkKW zd;5}K4j(uZPRD$Z(96~bsjFsC%@=Z~GiCe{tZqZ0zymp+=(<9ocn+nJ%sVTV*~j&! zh}Q8&O`$0J>+%$eiZ$sFJWW=w4la=J3p>OFj)C3XY6sFN>zREs292;uoT*9kED|nf^XFhvi~jQDlo_Uiag+noCdSvn^?}M6eGKLxqbIr zDiohcEwW-tIu1`$+rb1wrjD)qGRL97-mTQVu59mPu<*)q9M`aT*}JA2>YQEQ@V+oqd@t zZ)0OG#@=;Y@nydP;K{mz>!BdL@Q}=AOW8oz^lqy7;FU zm%_;)nzP6>^{pW|J_q$Jw)aP(;{V>)aal<3bpSN=DJkTN9aL1zO|BI4y42fI3wYs# zjRR{bI>o2;e3dQNkE@#qq3uFp>waT9)7RRBqNN|7j(9JU39KNFApy}DW)$2Kk!e3r zU9B%40tE^KyyL-gsjsMtUbWw*$( zS7im=Bpn7kiIXU+QMmdAtX<6RvQ06&zJ5wg8(fG8QE}pMX@fQth^i^+SUp{FUaup% zIKnY_330T52qPW-E}4{Cd9pdf<2&fAY;HY%`<4LXT1I!D>doN;Q7|5`1&(w@=N`CT ze220PRI`TiJC42yL=#;0VY$A#MGUL=!r=iNPsOZl)^@wNxqDn)XP>h9v0k|H;!gv& zNgW$||3o3TbxRz*qDlQR`y$7&so)|_$Xqi3IC$O6K;dvN=nYI7A2j?S!57C) zYsHTZ_#stsetr{654<^xDh|E#=hPxATR^1+6!LzU6Nd@gT8ImWYZ4)D+cfQSi`>x$ zxdfCY8jm|C74~lFoK!fpJDyr7JtP@Q|LpZKuoY+Q0kDHtAD+Dbsiigw>^QT8noUGSy0B&Tq!A-^TCQET&Xvd>Q_@g?wbbHuM_iCX$N!%zCByDJMdMEsE3R; z=Q`JpdBNMY<3@E7@Ene#a^HG7!|GwaUOi>YW$~q0E}tS1WUJk{Na3mMywt)|$JNCm z&x$GO5Ijx3D&SOv7KP0^+&tHRwHYS}E5KO+(I?$E;1yislridv>Mc2stTFUFpDseo z3tcNtedgsH7(ogn_*}rOHTVoEaRZl*~^ja2!iXAU!vOvn+|neYZ`jDt%o8S-)szdwanzWJ74>je0LD*f*{ z0Xcji3bm(8kCHoo=39Q*h&sdyWXBkT!{ORUFpg-vBMGG2d9nGjUSDV1`^~}7@lFzp z1J7`*YPT#SG=vyZR8V4*FM89{9b^SEN0nrjcXed+d5qLMUn(%kEBMt)Dq&tw58{z!{&5_ zX_b!D{XN!uITIExh6DAb_U*&6%$pEmeOM5?Fm1KAt{Fam>I$DfolQ6^;)AndXvGF9 zGhpD-h)u$#Sv0F8N{X^dR3nxi6HB1Or1JmHz^|L^rr2yF$}R0SgWp^VW1r5hwx>d#2c4Og591j>%l&xa9TtG0Jtyhb` zA8#Xb8U}2>>K@sCcSRIuhiSa3K06&(FC#?Io93khJyjQ99oq2)VnrQNHOd%C#ki_BxNcEN z75C$DL18MM#BpQ}=#jdMVzVi-hxy|=62{WYyjUi-?25jS8eLNiQ!5Wo$JA*iT(#W? zdDS_Na9hNe2kzcNjF3m5Jd;*=9nl$dp7~(4^1QiUm9CUE1gTAxvXf16jO=}a$Sc=e z@Sv?pNElSjpn9#eKvg7FALkfPy5fNw2Xwa03*65hm)VzM@$ff|r6)+YoI8ehu|3K8ZAn^}{n<20eP$TfjjK*K6HmjyU^p}P< ztHA=%m_It_U7c{j+aP>G?|;>ZdK}6zS0)_umbaZYjt6iYAWBLEE><_$e73kRVvMXI zriypG#g})z|1G}dMDfZ)lTq{GMK=3OV`;@}x$ECy62p)%!qUHh^$6pfiEy@TU|Ooc z&5@bnhaxFEU&K@d-~N@u2L_KsV|(AVZJ-aMwQ2)(kJs>5!5!aK`nPK3emG#0X!LJA zb!&Z7Y_i+zYV-fxU2AjOwzmC6#KHTaZ)w`oc5>UB>FdntH^ydc#j@m~Z1+09{%**% z1zH;r35pci&NNM($lSmNmlyV9?af28vA@x|b(SD$=#=h!v|)Ap-X1(6A58y|qO4j* z>ZrUxvHu7k4omCMd3hImjt)AsifAo7HBEEVgVxs_ye9gvJ|+@Rr>z5sZ2zcwtPLA5 zIOV&W9aEi#hx-Ff>O<7^Cvg_2i!oV14FBe=3txGESv|H30K_-vOi;XcXl`9V&JyFe z9oUnP+vkb54vpKw;wdf;w@1kcyt4zf(DsTc7+8#>JTjoxF)&>LJr-#lZCvx}ZJ=Q< z^fHR(6}s`=1F=eIYp7#6(_R7-P}vr-pm4rSn*I8dHCr5hdfcqnRdG>Xts*Lcc|5nL zvQ=aA2V%L6N93dBJOi!H2z+EW2L|IT@e`Y;2ZsXQ1)!;#;YwEUbJB6D?XgKKsGLBu ziED&OE9k~&C;;}EvJ%*UX$bfV8Tg~rh!uaXrW-$fT$Pv0+a+A>H@9WIiLlPIaLI6Y zI|JTvuxot#Y_NOyN5)50&|1{MLg^JXID7{7jp||Gu=ikW=BTDIekciGfwkgDuKr-8 z3W}0JuKu?_$GX?Ye2_DMs!thd(+*5&S}CtKtOV;f8Cz1hJCU=Xlx+j5mk+ng`}(1{ zs~^_z&<7lNdyUeDeH#>@LkH(x_D?xVJFq4n&;OAjTA>v_CxCPLTn7$BQBU)>@1)}j z6>xEeFylK1SX#j4C#;Y)6{G!Wj8@mk&Ue4=_mRnJT7hD?@WVG~DAbDF`27K!1w5lQ ztgG^&u2#jT;$l_S5wU@DCAUHk40P>pJR%=C=UJ4hLkBjXQ3)c6@fQR$3^4Yst}=vM z7jK=Sj410zh@{K>(TReo>DQ@=g2Po;q29=7oa&R!3XQ;`qm(X~B-HYQ+N!&{y1#!a zR^`*?;U2BB^1neHC?U`mZT(@KPM>O9#QjoU-1u?W+uL;C>NEg1bkG?9xAFLF zzsFoCm9Ynauj7gpDa~FD{pl%lmXgYj1ggz7+wXU-}|! zS8;&Gv-9C~p5g$KN77?{-jNrc_tm4*l)sWbk|yC6jJIUL`e6ZrYkj0%0BdFa_(KF; zKmL$xWj*ou0o(^;PYw*Nh_tf;#id~%L93zk2UM1~NQ_MaVqa+NO|@QE_t(W`apBcU zW6FZ9cH-zS?0zNPjPDj1amHYO>={HuO9bdu+?nKz4kecEY zNZ4U`?N8+_GG%Sy{Qi1#TW*WHY75vMVay%&>oka-r3!Uv=9yeD+%4dp<`$M6M^oZ{RSb zK}I^Rm)JqW43uQc1>if^vH9F6@j5I(+jaD^79G83E92c>Z0_%i>rK7+E29tM4U@(ki65g8 zjsrTq=h*@Z-y0a5dr6 zEUfSfVOkk&ab-m-y_^mA`rt{h{_cAOtdk01-=8Ddhr6R|yu)cN00t$?8H*d5aLAag zPnvT}1UoFMxGk4!RG$`3-*jpzFmimmytpo_Rq=UKd%f0VQtxGzX9+Ba+ut{#ces!k z(QQ06A3w*5ArFC{+VMy_j|t)>Vt`VLNpf9)Pxo94foAip@xrv3VhG>IY9+o;*Gin2 z>*6jLQxmLV0@flyfqqb;oa@)-wu=tKQJfB#uAg>L)y&?l%7<-nx!h^8To<2LHLbufSm=dMc5&G`*bqTte=4UDX}~CLxvFlq<@&NN zz=4~ahx@1UDJ>b+b|20XSqS|%aActaCI>cUWAgvaGybcr#T$m%?p1U|IKsq0r4zjn znGs=_^5p;+A{#-Z<;+o)?$r3BYg61GBk1A8_I~71Hw`N=ESA=D8BJNTW!N9FX#gzR z6a1V}yDRJR>(hFBvy2utoCz@Zn;ZqqzFon=Bl7WYo)x~#ibz+m;KbKOqA`IVevcsF55JEX6NvesJ16afgH0>Yt_iwO3Vz<0{&4|+ z9;X48ZS!8MYO`Km7I&Mwn5fu*@qtrSgzY_e{un{SntVK-Z3$V*MF3Ahz*I1^(+ee0$p%u9aMThsJRpdr|kfF%iOUR*N z23C?Q#6lUulsZW(n?I8CW5Te)t7=)?19o0tT*rbFqj#)zuEpK^GB-AH(r&eeLHPhZ z-zr>1Bbqy$>fHn^KPG&d&Bojk!;NAw&2;TsW8o&Qx>MtWMA|;XmZZifju_)E$Wcu1 z)odJ^feq)SyN)CH5s;1;2QR0OAR^H0599ox`Ab!K?mg-0;m-LBiViddvQ>^5o#A)B>B=MA)1R6z|R!1tiP*$3% ztxd7glc6BK^%)@8OQS5b;*gH&g|Z9kh_E_VRC`b~3ukQ_h={c=fM@PEt7Y*C{_fY! zZ##_#FHyCy0@P002;J zE#7~?1))^?fMOCOKYT)r1Q_`vWOiEn+zoqeCg$`Qv6&A>nsZdg(gMGq#J z$3Sv-+NN_kN2_0-9_nRrwJN{f!~pkzjkR=EFTAZ75he59ObO{`TkGDJ-J8XHXn z8*E~D|Kz{6PWZXtXn+$ggK(dA+@v#5AKwZm?g-|Ou?*CY3-~}3Cx;uAgS%to!D68i zsL+7(njK1DlHyyu?ut%?TcU`0Th52@rIrTB8zl^gH)8{-v-FBW0wa;yIk;e>m??>HP8_{|qdHpe-cHwj<(7XYb+k^# zEhBs19V7So`V4B>umT+@rWRZg8Fsb8;i&4ndbzC*ay}TXoOC$yVpTrfZ`MT#?yI*^ zA@J7~pXDwddZ9bR#EehO2-`m?A1D8jwWm(S8d8Cd3qu6_I#3Yvvij5qM}769k%Ag@ zhOIZBORj`UU(pXDmi~*s#*#U|e!KW_wB$POfzB%40$i-6Ff1#QxinW@N|Pp; zl*e~IBPY)+V@y-3GiDluMxfayzEHpwW$SE{KWOuc3e=k`U}ZPOMZI~rxE?S21ZQHo z?v{Fbb;c;Er~T9N(Q=+aRLMo;_RqMNpZ6o8i8K?$OYU27B#pE_`Ou$rQVW(IF+hx3N)+ha(lmlrv4+ zhi$nouB+8;B+t}X+*x9#;hty2OmX`Y`v3cf+OO)V(`%gQKU{PYrC!hGjP2D5;bj&-_bCn1+|r z5;oKwzo&#CBU~%0BdLGuysQ!xJlzla`#S`kKg3Auhwm2ffsxQT;(@OC+-DL?!vrk% zFV#-(g7XuO&++9stL4M2v2(zg;E44PfYf39rq%xY>NIqLT+QcH=CS1$#$E zaXOXw>b1;xR3oq|AExIk_bTxc1J6wvkS3vto??QG6R9+H2A{~~G;xee|L1A$e9Fki zsRF){t?wT1?bBG$FaqPv+$|V5fd|tEUdUSkt6V+#(Bc6xo=`nOtRd^Ec-WS4#j3+a zo+T6!I-qUnce`0V+{4SaO)er%XoDx_Bjq^p-yx9FNsiYN2n7trJyRITh5^f-kp@GY zvfNK2hy{Y-daT3|>8W4d_Nw|Xrld~b15vmS@Y#&Af~FORu*nw8 z_{K)#R9bqfMUcTC$LXLc%3rHTPhIQks#@V-+H&bx+SJ!#4_ zHE_>@P$nWk#r^Cg`#jIi4HRkU*|q>kLH$4i8flqjL~#d~6P_lr-+zN3^UrU`b-(=W zpTA$g2S!5Xs24__r`0qA>y_nd;Z*}UeH#kC-A!TLg$DP(J=VnFkL7He7+&tvtIb{Y zwJ2BBRlQ8ciCb;aSqjJ+j_ns9?zqT!qi$eOKA6w5B3Bz5X=<c8t|_}-#kox*u;7C*3l29?Dtb1W z`NKG`Vu~;2#SNhH!}c};$3r!iog!qhcUvwFpQyF0VM;y%&$G(cDvc{>GcJktN}Yzd zDeAQXaZ|!D7n!(d2vr*3`3U+Ruwwtk4>6^L4}UJ;15xxnS&=Wk_2Y`kG>pKC*_idT z#c~%HYxRd~UWmFIRPa!uyP~NYxmyF1Q$Ku0+m^!_=6U@x};5oY0koDxs~Rj^*ePHf=ZrLwI-S zf>A=9jI=v6|L>WjU>ww+#c3cWs%CIq)~jk;e1?x!^?g)4rp?MTVD#@s-ySd;Ix3fS zc3fQyavP>(L#{Ya5V!ZeA6`S8by7;0F+^Fy#X#A!UYC9b*MwcA0ZKa=&zaI(`_1i4Gn-b&lUKnb@^NpzrLa!wNacXfNqF&2KGA{N(t_8hpb9BV|~9MP3nRnbCX@x+IF8Cl-2bJ~SUs=UcPNjK+twG6kRV(vAk+ zqX`aM5teAGy}(l}glV|ePBN3kQ}phBP@J`|+8SrrN@VXdbP9S+TWOeqR<1HH@F7E; zf;VJRQn@>0^Fhw%wyrNFY(#Ne+*GSoWa>(cX2OyOrJ3Qj4@5H?kI09`c}6s)7C0nM zo?;44v;a&5*uyENB}{2yk0`hPfDH{u)u#S%j-dgaIp!b(Qqwe3FZ@7D0Y8dZTbk)l z-!yLCSPZkiuF7ItU0%kbmqSbp$QrV;-}uqUWaFXPs43^GAE1oF)8Ur-fv&_E!iUnl z>U%p^UZ>0tT#2NDC^1rNO4Ff9vA1>@U)V64LzHVcfQB^q<(#y0D3L(e7AT%TAx(R10#=QX;^WHqI3bb zIiRRixh~oDNTZaR(oH^`nEE1P{VX*I%UP|8o8_u5m)U9dGd4_xP8%-M-nL_^VNE^= z&o@ZwsBt(5Q(r+unBhbXG!UzIw<_b>ut-F}0jp))x+Bf1XqA0xbijyJ_P7UfsO&2U z=SaGSW?=Q6!udH#OzCv9>SbAjeMh=g;WSPMgs~{Wb+x>#Zp(UE0TNfA%k|Ut`e|L< zE$?DEsJ44?8Z_>zn;p6@7mmBHFkWsNSd$OO^HmQJO5e`9#u4Jm71-U%32LL))jR}=Q&%JE1?+X7m(XTgG64EC#j&9~a{)SMnTe3_-kyAjK2O*Gz#>`<-secp&iE;L z#HVToBGF%$cfHV?5@jei5%e~SNNWYq>?5OQyRztS#$(Z_3%YY?qu^(l<3{JC>;fAw z@hl4L2d*=cc1hTQ=MUL49K_k`W<3E$7TfExzRFMGHC~7D!Wa!74wt`ctS+vQ6_}Eb z)aNPX9T=&(6Ol$*>4>qr;&;ZTIq=5EGlBd`T*1Xr;+)Y(6(ylTZh)4$64St+LZgswr@7KWgR2i)7Gio`|^}wkW8K0z?f{{ z*8fPITFoN*;a)OY8^ReKEI`r|w*_HF3I7j@+lE+fg|#+46z3flANlyUZ{szZ@?r6A zy!Z(2g3ejLJ`;8uHei*-aC=pZSjPItsQp=-FKFKYQm=|nn@=~J_IN$1*mda4^T)0m z*5sr1JOyc;RFOJ4-ykKQqm_J`#mb6U#VtPEmug}tT=tJtWqk9t0Ki6t z9MD;kK~celRZ8TDA~uY`Qin`0xFwRS6O<~$S)4{6UE64N{jl9ut5vZo>djSEw;7c_ zc-?Z>O1aR5!v#LtClUi|^1*nX+O%2;9E_zPz9>q;PEK)VBv2d;^w)4a25n)vR9SXp zlrLJcoYKijl`Nl1*CDd=U8!-Oc9Dh&hrwqDuggOEJ4#Rw2j`-y@9O3DVDh6sW77cH zFoOKIg2U!|4Oselxn5Nf1&95@&JraKH#-WJQ6UG+_*f9Q@uYkpoN>vpjqjUH`IAygIhUL^& zG>pKCD=7Dk{!An4VRv_L%Z0rLjz56YDWJgeZJ+DvvZ|LCH^o(5UHNZ=VrFxhC~gid zfD>+i6gS%z3BO%Oyy78vXf}kJc`D8_K_g_6DGetP-WJ%HX)4YtY7L8|$;?i)T^f4? zJO9A2Go^_0$0#ac=+@^HqH$}b1AwzR)eNB-C{|jZ#;__e>R@-irbi@SC&g^G#dTG$ z3-Hia92U=#uL}3JGl6UcdHZjl4|(&g!_`VE9Q7FBih(oF1`B8Q9c|!v(uFXD%D$5g{7IY+eQX=i{9Kpo8@PjCJgh!d z_5F6UF22-7Zd~(x!?yNb94@BWa@ba2NcW1dW4rovkjt?{!{1;R5V(@{n;5g=l&e6?2l45VH!04#(FA>pJz3q$myj)eg zy7-shbQmBGM{~OLbyrFI|J+^MlG{d-{gsVv0mYM*O1p);E1Y4nSDAcBqRarR9I(ag4keUK0r4TPFB(4U{I7Gd z1EIZdU+Unr7TRdZBJj9u1zM(NQr`non z>37_O+c0xnohlRi@V^+j5Xwls|1E_N3>D1=d@yv2+_D{5zFzTEDfr1pv0`6BxwSfwqBo|G8hI#mcyFphmH4bTC;*22}qQ7%p?Vc&de znMH#S1cA605DxgE{rtx!oe!8&+)@mOOJ-D%*xv`?w>ca4sn}w9;|Lv(sktJAXwJ{b=SoPV7zQtG>p6JROA|G1FdV|uCEDm@b%Wyq_vL9 zG^L5tR9bdW6n{ULPf`dWh@+P46J!J$O}`DzqTqd3x&=lQ{plAdMRM8EG`N5h3)WV#H^oYI7SXw6Dy=M!2y@B zTMz}w6SIL)4*2JP24MH+e-6R{hxR^VUV4{Gh_V?NbD>l!l&@b7$bl;j!QixwlLme+ zjmU2AlKE=4Sp;TFl-744w&Aet?HS;J{b6pQ@UVD*yiSF#6oD#RV+m)zVKuxMJ?V41 za=e;o%Nz}K9blXhqq&qWVldCA5XbxJLPfR#cMJ@dB`d1zf=;5s} z7f6-uC`DpF@N=?S%$D%8EXkJJ)iQ^0wU)sBvGPkGX~`vBdE4qjLihaAQ{y4^I<>Wo z8HQ)g;9r32oh0xM5-!GBg(ex{hA|sxUErrBLP*M;sYlfh9}rZnjEFeQj!5AHK~z0+ zx5JPZhHUC`WJERc)Lxzrp{ZoD<8^<39j&Srjn;p`%!icGip0H1aBj#Xs>k(Eo1A}s9QtpVb1t|Yfrv;b&Z2stJ#ftFPoh~H4Dt+2=vd(A8&B`|_ z4Avf3_vJ$HeDGOQrg*cO@3!#DZfX}12H(OH0-q>PHiaP4Z$ZF$v6eUz9XZM zifLTJV0@azP^D~rF0H}~`@eksM*v=5|B-&G8NSmSS&TZPZQt-N&mS9A?>n{^;RerPvdcs?Myl{ufFlSVxp*rhd{*rEu*Oz`_TD z0NYPBTibdF6j~dVvPmZcrEGQO5LBj2q*N2>8s^>R`D!_vBzLpFW{Y4An`zLoY!EK@ zXj{&}Lu7ZG$JH{#L$uwwi^R-DpPxM!SHH?oyj(IV9^tQ(4R%ZhD%xO2I490)oO;6W z&NF?fq)t%0w8C;isc^=fQc+-Za9ywUSHsO>$6XLn($<9tE?I$!Czu~{Rm!+Eyw!&K z`oftU2YrDGBR(gSb^efi$v%HxhGv|#+ko>Ramy0plIMD+FPd@}Wt-x$_%e)g->oZ! z2}Ile1Jsbc&WXu>!1}M*eJ8YbfYySC3gKV_Ed1D>sy{}Md6nF3KyI5{>0QRd{H6Ej%={TB3mM2f=DbRB!A^SFo1w1uO+q93KV@rVAzLsREKe zenP;yuHz4UU?8wYJur0P^1%kIRRni_3Yem%S?$Qf(<$9YTL@J9vp6138cPe#XS?Jf zD}Z0)YLTO*Uxb@3`YRT9qt+Pi8Bs7O9(^mkbuZ|9_WC`;EIv6?Fk-w+m%#rpN@m(4 zD+^@*Jn%YanBn!ni*g#T-Uop9)%#jb<6H`2eCH!D7uN6KqQGoTF-Qn=i$-9etC;Vz zB4lt(Q3Y51NgD@Q(KN{2Z1ekRzD&L(H>-y{knX#558)$k1R?c2J%o>+7LS(|7WitS zRpB^8A#*QcVuCnFWKZNm*ESLsjHAp1<_$B>iQVI7eNL}31mnL?dcO9o zL)y+g$r$rMdlnX$RHU4yu+hfJGmII6lQuZ z$t0ieZnF&zsNx!R%rVWHk96a{d)=@ z2%_uR`ZNUgK0-9sF}YQ=1M7{ZobP`ki+v`8U3n#y`{OnaB*n5kSX|kF=6#>ZJcw zi;w?C@v-La|L+=n>?QIH_@Qm&*`!87IO;T7BT+H}B>|-G0BDtNRwMz}>ZfZo1ah~# z?KV^>;ZNs)guu}T#8a-{hu3^r=eN^PXPcP)xfEUS?A;(B$Cg8!UTF<)a4;(#x`*Ly z2bSR~t?-Ho$9+#K!W1KVq{YR`le&jd8c#p^!RTsYsN<)!1%DhjBJ+RwQ>g3YPrs$` zfgq~)#wi4R5fcS>p%qGIU`kveeE$@CfSd65lSf)!iz2%of>S*z(#PXhk>u#wvxDpx8tPY6005hl*@?`TJ zG__Wl&vqExHe_lo;Dh#+5L&|RQTf|Od+;q=fmNEIhQKZnVa?PL0ac~rkCt+mY zW|QP$HUHd12i8L&TlbQOq90>ZZs)IKE7%l|&DTi`3oh`1MBEZD9AX?cRf-W3AA(q` z0B-`*+Te~Zn6D_VCx-w2u_f^V9|$7z*@)r5-VZFmEt`SP%&;lb#1%v0r?+#FZ`ZS1 zOoZzX+&EwtEf{W=Q9EAbMMB!*_O~a9!%L`{Z*h2DJWdY75f4l>NF@Uyu7+zRH$)4< zXiw^~PU;0ols1M*DKQvzew>MKl&V}BWc7{^ny&{RPC6+X9kOr{y2ViP6U8T-eaLrr^d zUM!h6P?o=F=e8cRwPx6Bw+ZD3(%eBD$n5~Bpb zKSBeD|M8}l062H?Sil1jSln&GMA;BjW8i<62fAYwMuiR|zQhQDV}BmU1INV@vLDbp zn?nQ(yBey+ZMN=9i3y(l6brmUJ;4(E3$54<)r`IVHT_qOtl(@c0lxJE7wZ;{z=XO=r_>Ot3lsqy zjeLFYr!ZFJw{XlxoU__Y^V!`rS?o4{W%tv}&p_MVt=55X_IZ^TfzIO2x90^guC78 zX5{*rBhru)Vl=N!=BvYjVDASWn_e~plfrVE3QC-0%~ePEV2dOWzMxyBlypdxY*Zl)Y#KsxT9&7d{kw;xsJb49C^}RE~p6Ml*7Y z+3hsT=e~vvKHYKfIA4}kKRBjSUfE*=pVOo<2I>!p`D$Ju2ApKyc;4zJr7yXi{e97K9n zGYoc}A0(l)7ZlXOF4|4Ej$R(3n{Ht1V?@4P$mNn5SU9||TY@*IAgF-ld;xH(1i5@f z+%YDZSg&sK^)}fgceBOKdbRs9#WD5!`Ysf{9yYvb=54c@@3!!|ZK{@s!_mTH;t}yO zEN|x#j!xih7JZWz?Ys4lQ)uRhQ`Y(B1{fL|N3=3b2wE>@sEjl}g@*43OSWPAKj^H6 zg8|h#UFjQ_`ZhhL(mtjGGvLqSIGBN^JnbS|-zB%nJkN3Tyb7A2M8FB8!y#ar5P|2|l{*Uyi% zgjiZ)INUvTK>7u*GIvTEeIn0w41fDQKkjt%jEO&`KmR$H^eg0qwn1zs=~vkZbRe4Y z%1O#-8)*T~?D_*ao_rXp`}&eEX3JS(aFlGi@biSIoBVdSo^2o7O*ngYSAPnF76Z`_ z*2E+5byBxNDxA9ILO{3&uNzz+$JqbY5C}wr^LmZ)0tEl-8pkr=Ti?eB$}r*6B9<6>Tw*0gl>rakNj}Z>RZu5hza^#e9aMGn&SyU21+y&x^*(cQ2BXbav1C@z8#~dRwD(Af-kP;oMIGAbm}c>^jJo5ydq3Aur0$a$?~ncc=K- zSD2QeB0W23($ZI#&@u$vF{tLOWJ3kV`94enr%2^0VunRFTVgT>fBeQnJzy;D=3Bm< z`^3;D`!?Hd?y|?MR=)6KrI(0|OD^atT&ON20HWom#)Ie;GrE@JJ<2uQC?$W&MazCb zw5uw?5o?%J90yUOz;MPSJuxrh7p!ohPL=RWP2s|MgW!M<+S0j9GpZRkLPsEH$p)D-h3DXe;#E_D_~I&(F#;?V6-18Nu4;M&P5rCkH3V#_?KEnqQ8hXr8O$E@0H07^;YEnv;?8#s zXDjOnfoJKV(ct<1dix((%JIqN4nAbrzWqOwJ&9~P7M^ip7^N~$c;>uUjpQc_&oBV3 zEj$~H(hd0_V)Sko&@7vQwmvW^gVV`W>k_npO2Hq?@kF+G4}@mvv!*+6F`BmMy>2vZ z`=!=&MmX3M56dr7UCWHXlW3lXhUc*7dT;XP##6Q6+WilEm2 z<=YTszx_x0VK7Bm$O)~vTg#Qu5F646MOoR1Y9*TWS4Ix6m(XnlWk~wXAI2AvetT}l z;6=LA-3FW;-R$vfNw=1jY(=;BCp>GCYAc%(58yAdU9YA#(5}}Dk|4~2>#68T5Zo2N zVMWwg>P%p8g>MP&oH@Z+;1kzsbZK=}5@*J5+z0Jx3N0mLwK7hM8aw2-pQJtrjPAZ=bM;yLJ>tO~l+>Fm?(QtYSWGCR&fXRr)R^F1o@ zAXyT}IoBr&ozWJSACDEs&r*!H1GcaX`JjC!(I|jm$BmBQrOQ@S0a*DU$Jgd@agIcy zq;h{MuL7XaO6YZVmv5%YW}2-R0dnIESw>kHquU2m7u`CN3}e}*cqG5hPQ#YlKv^_Z z@ODxHJ4KiqDWl-@a)jsasJnDZT~Og8j}G`S|vTP*F_Y zu_=1w#^nVZ5{V-l^^UQ`AKRdP#-$vU3~kBU~kzc;tPR z{I4*SqoB;FcLpQO{~0UQ?L`4Y9?LA`xwuFsqmBq;jjDy@pMUC@<-!MokUW&=aA@Yc zlfQk6gR4=X!owy7u!e8HQeWO0pzN_&Zu8UH2EWf{!SSML?tQ*q=etExm}e`i2?&sYEucDl*zW$2!01n zuNvV+Y~ruYHh)|sk4d&#|gsN56IU$vc z0L+shu$wNQeNbY>U>ZJtTTX`)Xx){z1E9^<$!@VJ*8RNX2PF$&Yc1EEZoZBS8p{?8 zE$dT>DITfkOV{#Hn#&aNIgR#r9wSNj^dbg0aoQ^70yVdqc)JMMh!TM^)Y>ehZISkYu)1=Z6C*27?pTaK364~j)ZeD!Kmr0R-UIxBb^89z_0ZwACamzeDBpx5ifU^@nZlSfBcxj2QHSv;wx}z@!m=p=NDSezdk||nDIfph5U}31|@(uhiz{1 zVwY^Q-R&a8o{sAi)U!IPvS9sk)L|TgssTj<@Vj|(umbY8IVPvdd7EM_nM0FPrT{e{ zb2Yral;BJ;;lLDxTrJ+eP2mGU{2fU|Jtk8{P`C|~z=Uu2=$@%k1sP0ws5&T#OFrfs z7}`Jl`;)><6q|MS1h4Hnd&tu-u$!0J!%Ky!cNh03&2xiI)7;5B3>u$|y@#6Q0iv_y zX0yJ_0uUWBHCJI2DhnG#>pEh$*GR*Syrrn(A^TNIGBC~XK3{;$gSQu_0G-oAbZ;SP zG_?X3EpsqhXDwB#UM3h7#;Kzl>V$EIq8kEJ-yOvJbfHy(z{+c>PL+Uze-qi@ci1dS z5ZWU4eYRT^`*pH~U$^`m(!Uvyi|AZ%dt92)c!SMYg`(BoEmtFK+6shOb-JbzF}NmUWdL8jYy$ zXDnO5ox+dr+86OarUxfDIZ_)zU#DS9oK(gH%DNmU+Cq}b8aifC<$|}NJF&MPFQ{A) zSc8aUv`^JQC5m$(6}~i*TB4X}=M+)uYez*4{Fa;#%)X?mt2|G98karXWKXLdjH??mSMgoK{JitnHfeb z6~Z(XbbY`S4eHE?Kh!8142#c!HHawd>eHxDi2}VVqy80QcBB!|*(nY$0{hxHS)#-aX4bYdgu2P`DQa z4`BW9pFbn`TW8Ay9|+>_U_5PT<|DATm(*f44vc0{Hf4gSu-y2$2@mYIDc6KOZMXSq zm8_Ct^C>S{ITK%loUP1#$w3GN zzZa(gpO{9>U-_SZ7WqEOwu_s9(&5Beg35wTfhDL06b-%qnrBIEK=JU|A`t$JCOq2< zbqz6A(NMD&EWDJ=apvT=pSG^Ps?&j~tG*hio)%w+c=WAFQt?XKasUB8GG>XTrd=g% zw#x6f+4`rC+!Ph7BG2~ z{7^LHYlkKY#o}N!W~|n@Hn>k@8NA%8p7#Cj-#Zcz@PP|KF}?&{p;$}FrJ_zo6poc6 zz-V7M9#Tn6Sq-dnUBa_Qt(c(6D(;3ZK^WUtx4cSME<&h;5{U2x>dVQm)_#$=VUWH^tK}q>lM&y}Z2-3Mjx9y(b+k19o5?#*rF_FF3(bxUPhORgrO-Dn^W!?ZEnWmF;(%b&|n!6x$7Y zM|a?dVSipIbv_w}i#3Zz1d6Cy$#iAqldWskl-}+HoNV2k7RJhHKYKVZ~$g zb@=3wuj=5070}bAjxa}jXVf?V-qULxPD+fckid;`#3|zqB^pXBF!!^Me*_@>;~(kw z7jr*D7a-!cjzbO!ze{Qr<+t-K2&^|wC|{VQjPAm5oNJwXn!|6zS9O`!65QL)*ERT& z$_kIikF*s(uS64%&joT288xBYbFR}kKP5U2MQfIW6KgWxd8KmQa8`DsvJScxM zqB$_W9uaNN%pYJhr8-6|y%Gk7?UJRE6K5$RAd%d714y6Ep6f{Xoj401$1?K$GTCmD zeZFaO2rAFO)#@?IixhkIR(!%TJZMPt;;#2gm zgl|`>91m13Ghct;n1W+`eOlesiR}`)k-^FD4!ymMgsNd+(5qxBr7!ddi?E-eE^N73 zpl)kBi`&g^mpo=g_V<3hy$@8xoleUYq4>CHZA;_A66|f@xAeSt_?;*3%veBMlEH-d z&3RB}ogloztIwU&DpX+1;5Ac_3)={z%etoJOB5IfC%>~{yMtt3C~ifJuVpm~R2faA zex6;aFk`#i49led7fBF?NA$-lKu?-n1s1UX~SIv!CMId?Z)7~{*#u`68BU0VCgs6EV58k`l0FY-(aLZx*=tG zF}mlNU7XY_Pl^Z9d6xY$UmA<&mz*6WS79H*3p2%QF|LV`l0yQ83-KN*j+ANgefahC z2F(BEo6!0F&4={YKQ31I8(4#`S!S!ArIf!%ER9-Cw)73U<2Vchz6!*aXTN*uT8TP@o0Uhz4~ zy%m5qC>8msRBE*H0p5VDSQ6VlT;8S_dIf$WrO0%(3#Zne!HvbCR$rzKWz<+tH<*@3?o+4@uRf6Hw1=_w1b z1NcC%m#BVSh`uFN!SU3lurCjfhtpSC;3}NPb#b&I?zxVUPqEcZdJ>&EgI`}+542uP zi<$07`}X?)(!TxvA~*i{%tsWmYDP8VM(7ACwj2ajOXc}ANtCv=r+&Y?W|6dF7`x7w ztHe{VU$T${!?n)+<@q1!++TS_G-&=ZU*QC+7=E+QnI_(*+84x3@v=&CLMdgQ^~A98 zP@b-vEzW*Ab;~(S_`3i$zI&I#2ZGo*@MRUc0x?Zoy>6>YQJg`fR~><*1Abn<;(s3B z*MEE!kGjhW2rqd~B?EU=elJePL}$G}08<4lAF})H@*&wi71=%yoaNh&ei%sYUTs=g zv)CJ}?t=^t8I`yWg7qcdni!v~L>Pxtlf=N@vO%FVUAdDIa9tThByL=2+OxK_6(N?KC z1IUZCO5s!A`EH6^D;?mSjk(Y-$AB@W!lv+_0DK*x^DG^O<(b8?z6_)<*5(h(+eMbI zl0TR0+xviUR|I_amw72qeP`%w!-AH6eLPssv-niOffq$X=OtTV&*{;e6YlbxUU=w; zfSo5ph5DR&FF~bwL>GVEX}&I*9QHJiFG2S*r#|)i`VXp_1Kp^ z+`(}V*8dbg{cfD@-O^pQUIISeJQdq&A{oAwuNiv;l=f|nDlb>;F+OU9VKu{2K+(|q zah_IV+8X>6e+dbdo=mEOWW-V?@Lbe!;uLq*H7L-cxoDk&N?k5Gw9R9bYzk^$)8|0n zteYZqswm;w)w8K9zh~>oRKFpofxc}^rPj;a%_>hGARo??$85XZtk;`lyW8w`I6k+W znJe909hY)QlC^exHQHClVB(Q^z8tGz0h@9-WI{?rGtL>llK6)@T%tqiKaNLHEqKRV4to+Gt!Byc`F{w!*zb~>{U*;BFnd$~z& z7x`)#QknHT^MaJ@$?)5y%Ad3KZJyi|**Z`l(0v-NK|NHKFo?;q3bRe)470nXpyIK4 zo>j11OB|O4Y;NwoS>Zd6O%RwpUFV#^`>`ldj0@Iu^M(4N|1;Dl`_B)xzUV`dx1ove zQ}7y5bx;ihLu2Jqs)$v*<=vOxYSYMvQTc#p#j4w^cs#V)Py6!gIQJL0{3<;x9v)w1 zRjW}l&_f_RT}qh0G#smmpr-;iCr%tZ&e0wM7`_xr+9s(1lyj)-&AJ@t5L$yva}L!w z&XH7mEjWK+!sIFI>l2s*EBNv+?b!#vHD_^m)|Q<3yu9CSisT`IXRfntu==a>%ng$X zN5FV_;rsE&QKJn3ekH7E!2fl=6}e2yfR!1ekPP`obq4<&NuaRjJ)Y!5TWX~==slie z#2NTula22WT_t3GxR``Ya1|nez0Y0VNgSy9mP#eOiL#T7404g@cjR=+#@Zrww!SO! z%u5=;Tf5EM)RToKa;Wyia zS&CKuIl0?!9zquBBM=nbP_r`SW0MorhsERKJh@wDnZuiEed#~*XHE$SG)3}O5bb60 z0>x%tm(KujHeRiD^(nYS=R#=iyH?-!GAXFUfK}g0kwV%kY}>|#!(N*(F2dn^x7;Q- z1t7^pk+CxCV_%{F?U42 zthelRL*7 zGS#;q5xA}Ev4sx=;dWp;6<>o3%fFU`IEPr9a+NYmw9pkDm}Hw5pYx*huT3oxek)Fg zNkvoHgY)c{e7XA@2h~>NzE*8QWvOCG(~cty;cg|Ac-)gEl0mUUX}Gn_HBbvfHav_-E#Qk0(e==)A*~Vy))K6=r}4OO zU5&hX3t`zQkPA^}UPCbp{pA$OD|BgQq4Ml_7`_b2JBoCdVR)$)_eLU+`!g-Z>-z1P z;VSD}dIMnVJy50B?y7HLc=uCBVgWu71lz%C145G@k<%K*G;`eOn9AE~9Ovk2y!0LS zSuYQj-kx)|Y(k}2ff|84@s~u|!%gz~~M&z;O73h8^78*ndFDp-r#>?O5 zDUbk3NSb{ZBLysc+V(P zHpDqV60H;yO`HQRn{dkd9_ip(*@U5c!_Xz@o!PKOnqGd zv4*gbG{^gA#F|@$!7rnVK-yyzt(VwEDc`q02H^MYkF}KV&?E*n{oT>GS3+Eh;XEOh zDVHfVM3gJZV!_vM!+Eh6`_G&8I!|u1Ppg0=`DJ0aVrwcupuzv;$58Lt#}Dbx7qcx3tU$!& zTdyp*90k@jAy^74q3keP=YBs<1B95QtOOF4sC_D&IcE2U~LO~k8Y^SD{vCHZ~74ZzpQc#tBt5<-*)!_d!sn7Q0bd$2!HF z3(7j;YtWrM?o%;b2?FcJ;5_ve7hDWNTKEk)3-E5sFaMRnWF~h{yIrVpW9l47d5I^% zaa00|2K4`(C(CRC!V%oN%UVcSoh4k+>9H8_4Q#luOes9q_6CrY8$lc7)v;c>_o2JK z_dllJU)nq!0s6^d^P69z4E2#J2f<h)3hs$vFE270<8zQCPwIX^eLfo*rCt z`~TcsYjfMilKn6DJLb;&!Ebpuo0oG_iIdv(H&}!vMii+fDSPE#zdf`q&ImmqF(5!d zRY}DqhQ_>b)YEtCz?d3Djd9W)>4&-Ul|od8 zW@(-U!$3Rjs5kRAp%rlmhmy+u@fru~;p9;Ce!X0-i?CtlC;-At`vkyfsm~99@n4@0 zfYViJFeU+l+(**zcX?;55k`dog4`)X6Ch{>p#pCC^oU1V?Y{1R_~yq{!R*Hwe4%#` zOe}qCW!)~##?crsiWs~%5Sa^?s*}}j<_3Yo(fj1wFFZS}*xfv=6U4Bt{DbpoHH7=o zI|m_pST<l7ujC%xQ`)GenO+z#=6U+sutaK}F8DT(%%y-9Wa zzWHqsTV8zS+h3s}>Jwa8r9{RZIvhkDFU5?R85hI|8sMcjv%TLewzV{-KV;L29Y2=K zhhH*{{$8z{TMyp+jNs$%sd)1DA7}7|-tjT9>O;ETL_?@wsO?Ou89=9SDiRT| zDSUY+vB?FI+iG)NEsFBPyh>W*mKPG630J;7Dwe0{$3&0Fhr?+m8KrS46-1xZ=4_vN zA0@9zQlb?XIw9<36p@lj3NLgcB#u}lCb0)O*+y!Fk<4^c78vvT zq&jq2IR1vh_Sc0K5o@v02eH+1xmfRtZFNc?R%$6Oa`6v$u0JS_W|#J62!@gk#pPu( zr+rH)nv`~z_C*Lz7+lX;PkhpjC@mD+Zj7KppeSu6QJO1QzvlKWv@y0x1GlL$_RJ`q z*o4+asZM42Xb^Rbb~E8-3=UhAWzE58e;6l0Wr|w2_GHd~1MsYOH;=`ARo+extivt5 zFjz-J$p`D{rg3?aGO7r~rA%1TSL&h@7(>V`lwxQS*Y|%q39omKM#1anEm}{yUvG!; zFUJ?YH3oM{RzzdKGPw}sP)oE9+OW2ZT~*+;0FF>bN2QT?Q>`|S#l8jh{i0gVaX<}b zc%d}zVcAbj<8If>haJ3cTYU8CbZ+pdd{~^Y$SgCsb)&KSB%Xl)h1q^^v75>Ow-7dQ zg99UkB~p1>X>%r_7LKCng}~JYzA#XXnppn~B0v}BR5Xe@Kc2t!(wcg3bE=ko-!e$={#;eO=?r03H$j7F0WzSESJm6RuR4FTAE>x%W-N#hGh z_u-OoDj5FfPrv4HHQfKKXvSUCAEya-oBVOk7Lei#-yU%Rbr|PLnw-pSI0&q_6han= zR<*LHP_O(Un?{Z7iKAMntU{Vkq!CUaXg9OUH%wc#^FU} ztfyeMDuaotz*4yg-rnoE0tMXlKCI#1A?A*>Q^?>XVT zX^Lq_g(^MTY!i?7 zbwjJ{x%COL9T+$Z5sU!~tEKfVLC&5b>+4VAc(T5yk`2W}S$A(MeteTf;p_V(XDpdTcsr1+3uN*+_adOvbp6 zu-0jt@@urja$>0G`i!rr=DX9FaVbFqxNkZxtv#lK^=I3%+Mh#|)$pZnohk03XAq46 z^$1fl21iXdckKG(HJ(@%BY1gF>uAonbDD+wQ`U9DuqSjv>aT?f306c<_@mR;c`IbI1^f$hgbuFC9@j&LO*Zb@0Zn0Vv7Dv!_ zD{>K*Lb#K;H~idbrjoAFnDX)YWx9QtWChK42*J5`d!F1VOK8Fo#kIhD6uir=;o3>s zjNQLsRNN-F@!tlc;wJZ?eNt9(C!IFjWd*U(FtEHVykPLFQVG_fW6aCF`s4Vb>Svqv zyK1v5w!7*hoQ(vrEW3}awQg*NC}Oy|xrlzIUb1K?`9S_6t-lmc71jozLUaOgLnwf> z#2YG{^2!a?N!FapMLBCt8HhnT&GHBk=dP(W(;wii5^~>8Pn(kv{)9~eo3Z@FS57_{wLrn03)X2nT_cv>?`y77kTPsivNB5ECR6d{~zA#oc04Y}d>6 zhsTt0R#$=UbJVvE8`2&sTZ(f>56cJ5%aCrnTe|3k1Gw+Xl$3Cv7G-*r+yL!+AcTg9 zQKGQv)oG1`RcNkg)zoIuAT!`;!55OS*&jC`wIOZE0o~dm;!$9#UtT-Ui!Y&* z?RJmFvV2@W>@bFaKaC@12z)5Fi{+x&Z2{gFNnzU5WG{lG;dXRo3N*|pE#DP9J|A1B zsbp(tLiRvFB;s|QHLS}BgHi9~#D%mJH;VDfUFt|ATC0cs3#*(3>WT1$-Xl?b*?Y2f zO#x^)2+Z|Bnb}_YTb$B*>rdD?@Dja;Z&u}UzAgZl05XcZ0`}_@j+veMZM%1Yh0C51 zZ?$-7FesJW_fpzW#o#OF@%|nQKm7rmMAq|UiowHUab0fat7?Pe zZoD2BiBQ9R>KdWe=8=Zs;Gx+tTuoE0h^$LB-sG}Eh`Cj__*gI9`u)@F7+Wmmh=Wd$daaVFB@hkz)G z+UAJ%)pspx_3(ux(4JZRFtG(g$FcD^Y6#2e4E~{x7+GEpe$Nqz8r*i32XKQ(lN0Se{)72l45cA-1E~mtog0=FQ&hcenh4!Km zLO6zYYB9L=O6jaTg1vvEJgNVru=hW+zlY#SCDy(@A)r%}Ycz^_@<7f6_u3uGi4z$C z{;-XQ5rCy*-)$bQs^YF%u9Db#`O1H|@V!_5qle`qu5_Hbf+VJ~c&0X(4zIv3oN85goS=KTdr?EaL}v;FCh*)I)= z-Lp|(Q!C$EpFsO6BR4{4ndU~Lz%biKM2>K)L(INU7}3Bv8&AM{D(uc5%2icd7gyyb zmApO7_=2E%*ojl4;Db30Hi0x+22aXI%NMCQYaoQgLtw(BBEsWQPyDSjRLKluisMoT z&I|urW5p4v7gXw?Ni?fT>Y%?W8M+&7V__{Nmx>TLmlHeF>Evpl#O8b4Up0{ z_P6>oHlE-Wv7~*!spge0f)&@B>e~M;sSLrTI0aAZ+&)cvN-t~th}#Xf!C=|f#2#d{w04mjj7EXECW?Jm zqcyyvv$sEs3)jwe*b9Ba4ba`EW~uKL@Xa}w2weK$GQjjWT?%~qk1DMb{a;QK$))7n z*r!i1(EZ~t1ayB$Rj+>dV+LPHf^KgKS9~`zG69{+S>Y%!83OO5Cjg)`WC;8@97n{9 z!R=kSxh>vp0C^^mObz$p0?E|q@%eB%;bbbaI0x1%#A!x2lcXmGY}Xo=X9GAYHJ(j% za5Hh#IcJ*VShR-K6vtkqhK27&YkI(5m_Z7|G8(PDz1y4>-Y3Txg9>jbC;=eYQ_7;Vc`oCcvt(}ryp2|9C7Y{pIIH*jR8sl-AvG27Ey&L) z=eR3`W2j@Z_U6;l0e;KwN?`shjwhT({T99$c_kcj$14ODZPYpA(3IntkMx0HtuV9POy{=xffV4QghXa%&0))+iw!c{Pvq+1RBwW zZwtwts1?BoP=hfwW0q)6pCNLMe+Fl363GV?is$9~$N9YY2%}z*A@qNUC~^ALw&xROd5vp z`NmhiwFhG-azikLddbbsq?l1olnq+X-aTw#c-w6OQ(Qj!{9P?DRmT&x7jqK3zNt2M z<*L{%cB$^N`V2E*v9ps{wECw);z7BqX%eY&SoFkve0-52woEaF^LPc3k|;?=se|ZS z`jwUm_JY@uF^p@cnxzm?_^cV<92{{5flqARhbD&|#(<$Gr!)A>YIZs?Y=6uq5ow;v zT7V5HZx_Yg!)>`3k{8w*Z4bLO04FSdUN+YLGtEq@FziynXxCOU>$_N-R0lJj&!0Zs z*5M=PlxmJgfBhRPUNv+?z!#E$+FL8xnF3S;U$@#Zn~_s(3{ZU)nC`vzG_4ym&bO#B zBOJYPM5hT~@TGqlR>iVb3ZM9t~Ch!$b2ybGk%YZA_vB zB`9GK?QyAka{}+$Oa@^RW7<$0IvEA*^fq9wx$gh^H5QA$O2wkDX7Gh1be_2emDq%g zsI*fZDjEi=BFk%qs4PVpe;mhC_&-_Gt6D6JkL&du?&t|NR$l@$-TlSG&C4xGok?IO z8cIGIPcxlrEK4YQ0nTZ&Z+^F9%m~0XE1~g*UTcVO>X@6&&zLd7cd1^6@BW(oJb*Dm zV%gg>Vmmq6goD7sRiS2r5zU$IDB}LEdM~f|g zTl#625HuJ77Jn-4<(REf-TMOk5u6rQ-j^S$WpTg0Uw>G{#xR%a2523E9`-Lc1U+9T zKs1_c0KR>Z!Uo>fRG3{^v2FaY ze0ZI1%2m+RMc)gCG6OFV0U#P@wF;&#t&$0S7~{RYq_q$RH>2qDt}6e-zuqQL^sl!w z_(Bpz`!nxK>_^+Ux0@MwI0h^OK;dn&1eW|{?L&V6rn-fDO%uym{l^RyjWKw z+Wz@J2--HOalsdQk6BY|pF_CnA}t$_15=3+)>}5iwf;Hj>ixpk)a#Thf8Hh=w0=$| zd|0g3*PC*lWVA*LaGttVdy;>&Ik_CG`XtigF2U3CF?PBV0g~Ix0cpnst?^YVirUV2 z(kk_QP1{_iLgl)f?*2`3-RI5EW}qpq(%nUH>j;!`h*8+gZ$xHuCCrR zf>3LONVOAiNhEbj9TC<-^}w4V+$KHn-tr0fZnRfL>_R9A$AD#MrI-mvwB-o>wRpE& zU)_3?tLGH_5u8NKi;`sjSyx51XKy8XSO);dVluq9U&(6o;7bzHE zxJY<}DY936_PwP&QMkIdA#m#ei}CUpTzQCeTA3rxjA)4bcZy5<_p8e|+9bB4J+5KK4$OAIlh?d|<-IG;pc2hA`7p_Mt1hdSOW^Bvq&;3%ps{Fm6mULG1Tm5p-=* zD1$I@xiY?V!5DHodfG#-cGq%SD#D8;QITr!DfSqg9Z z-dUl!AciWv)}#mz8ifNYy{0yxeQer=$rXBVb!`y_kQhR=4XW+&#DCOWQ~`T>o4? zLK`2j=y~~IIbANTq%;ARuqw=prx>DpvXtqBmGB-Lr@2k|EK>iHGoe|td^TzV)};E< zWCC{1ZUkiM2Q|PAhfoh+y?36cpiAc(+h+ag8V@qA9{0Etiw{ZqmG z^T6<5SQY9}o|?fI20%b;Z7c{bhNQe~1sH)<*{gx_*>#D%i8H9)Y zNWln2$6r#3&R_l*1|89b&*1%c>Z=L{f$^Y}n^8;PXr4;?_vdU9wfB?zt*+L)U2$72 zmyf5UIxkX%5BDkezI{6XKYCg=%&uM}1=SdysLuO$OnQU9aTewwbm5BfgjouszTs6% z#*Q?!zCnPt_QS*fJ%i7ZK-*ts9@&e5Nl%9%)U%gxm18sbSSitxed_;{Un3w&u2tCi_>m_8pVCU+@;k z&Sg{1y1vAzUB5vRBhsQsEk(&6^Xs>pvO_@V0f7NQf>b3{i4z))nc;EI>F#q}%u2v9 z2VWETLreI9^soDs^A+4$xG?Y&!C%dAY-^wV_1o7irvJHz2!#(s@%OM5{m2%iiwLB+ z3Y24@fEQ;Q;b@iV0BUrnMG+s5;#oj3*@L=TUQJf(>?XS|@U>|?Zn-iiLg?LArdIVk zzh4}(OTnZ=_C<;k1QX*WAVp%%GHFJrqJ^VFK?G$Y^I8IuJ8oUrBl!CMe+am)$rSAL z3v&2C6s`}(OHd2n)tkT@AA-^*q;R&o07$7)Oup_r^5RV(s>TAZ}yAo3}d@nDOL=Mpr zFKd}VX%XkJuV;LDF-o4;Af2#|0&sZy;5mm2c=KSwN2>R=QDNp7y|1yw?@k@}QtEmY z2i5(mY_1ivg2%fWLYon;F@Q43PyDqi7Jp~Yv&r--yS_VEheK_IE5UHPy!walaj5?G z>9~2mt**w=4u@iEXQ!ADmJOvE+lw;r%o*uaypthl#ktxu7C_EyeR^%(_3i)u^uBRs z>tN6rS^Mr|0sWf2Dq+-tk>^6@QZeO9HZkx%x3k4$~~vDZ5(U zmz%UIkofgoPm+X|7r!ko?p(KPk;m|{@|bjdJWp)^Ya;i4DJ}d7EKrXga)uESsutaz zeejXQQRu)p-~!+0r%efJH`)?32x=cp;x)GT#~cNC6-2$)OJP@!!8VW%GgElr#xbf| zNfTc#?~uB!XOG#{3bL!FyZea^vdasf+Pu}pAiMIsbcDP};xu?4@z3VW8wNR?Faz}u z^vW#_bC5au=ol5`o^WCCzB#ufO)S9&Nbf2 zoQ`s)wd*$=w6nN=x2;QkUQQR;6o419v~_F-YXq&b<-JNp+xD%pm8T_R?ZatU&fZE@ z&TA4(;gZMXOC3VWfu>UX3bMj=Tq-NICWrX3iV~bR$~OTNK>h?e)!JgS7T9R@Lwj6)4Sz! zq~nTy+XNi#ZJ;0`t zhV&l@hIy;BF>=qWD+Q{Jv#!TTQ|X0I$WysfPQw*lCka-SqM#aFl}E8R&1L&LKAyGn zp+dibDq!lr3)sU|_OJwunO;wyB6XrMkN}mPIRXh#eO@|(p08YhwIbrM?NM^%rNTPU zRsZkVLmv>;$mChgBW3|8qRNf+a?eaGC8GLU%w_wxpYk6XL{ty#vQ2M6iY1m40ADr; zpW?M$4ui@^RY1`pDP%=GC3~E#o+qo)KYneJ`SNmBw{0?T1ZrF=oXGLuELnDkFXp1S z*<_FF)#R?2$Fv1HEW$~^w!Cwx{ZL8o7|&-*0i~nyWm2+|c8QfLY;`%Y*FKD}6$-8= zTze}b6SV*?S}3u%-cMJwVp`X~ygg1uE3)=orv!S509J#b@R{>mz#oQEQ^bwY&-3DDYrc)F!hEw_EF)=fZDmdb&AUzO-X+lR4sqx$Jun%1|L-FEP-QTl z#$HH4Q4#>V$i+~yG5syIOpqdG8Y_fn!RX-jFt{~2Z2ZL!KS%KQ!_WC2r?AwDZpe}K zva4ZGUIR+zLcyPmyvE@^tS0OACYu+V<0&qY+ZFt$D? z;eE?H*q8Thc%!&oLFw`7aD9>L2asw;NMXQ2VIf=MTi3hs<;v2r;4G{T-5cvAbH+Q( zQ;6ZF{)HxDcp#jP?8HEwvPLS)X{4?MLRui&TpI?T-y!wGWC^eL9e&AjSdGq zsol3JIX|370=@Q~b#J|dTwDmwQ<^C%K~T;$+~#lvQm#WK5Rcn9(ECu@js-RzOpEM# zHG5ny|5{=~8WC0)Lz%F$ZAT~*R-cy+zUS!j zaC^kW{8+{;+9K;W$Hm*#neP$4Qvz@&=|B3A?{wTBPY9LnLmBc)^O%Gh@A?cWU8ZNnS za;v?LO}Z%-m}9U~BScKgoJHx9oj}gl^Yu+2%y{i2{4^rw53lQY_>1piV;S%M$l(Kn zBPO}vn?eui|P}L^#~jN-I`2pgSgZkXEcd zDIFNkQ$s;HMO!I)$RtqSO2FlLl+uaPF^AHLvA$pj35Jkj-+09@T}jnnj&|*jY(ZC$ z-03JJ^f**vAoEF$)Ad@G^=V(;{iP?V`fo3{!l;P2sv9qkW^V196Zpewat+_pbp$nA zzWYfo`Q_b8z2tX)!G?r%7fm|uo+sOCgQi6fCCc?%vmI*E15FF}177W!hikf1mdr{~ zenIoVZO#Q+pmHrbOV`G^S3H;F zz~HtjU;uQ*s>mkU=L!76Z7iMbyfTMD=mbf{^2Vm3bdR@>lFv6D3nyV`FzTZT_i2ruMLaP47TLmsy`C zgmMs+8l%?Oc`t+NpDE)}9O>}fH(35s%;%fz5q4m;iZHID&Xvpib^2Vn5=}bzo+o*0 ze26IPc)P7g3;gPhQ2zmabGQRwjr4uNLRqcwrxAF6=qmI0!x4t!Vr!pJ@p4935u~#z zonMtO$Po;c!;J;-ZBM}qPuVy!Uve0EG0Ude>~WgK)NT)0ze-42%j-N?39IsubQHYE z=2$Nzt?-}&+Q=|r1TzB(h4)o>5Lm}j(frgfrGkb3-aNbZ;a37Cn}l-U14qhFBYTj5 zmA%N^N*I)rg0#7IECg{7i3dEAXVF4H(Y?jISY)@^!*aXV@Ly@v9lQ8Lc~4W**n^5c zR02xJ@bhGSrI9hka>YEXCwiTX5~G!8CJ3tlcu0)qu%XV1eIpDXC>fp_aPJU3|8O)J z9(oH>RCszxnw6rU+H9rBjbYyHX|pYTEs^7U1QM&R}N61mPAMWZl&>-bh?#SSF%&~(u_Cc68|979rPsOu#JbR-G{X= zRuUVy{bz8huBXLaO!aIG17ejONn{;5=}1+~LU?|tybhoH0xDOQx_AnLg8aP&yN5@O$99EZKHQOa->#{uMr5^mpbx!!7_ zPJ-p-eI2exqVjez{H}zOj^7ulDGbMeE)Al9p~Pa4VPmvc*BlaaYrKm2yy0MiaO_XAQcVHYfMH- z9sxabjL=p!x2S!jMkqeK{>6XVAHL5&HjGdltdlpg_5+FZMmdB^7$joC4G&H8Y=lH8 zgQnr?KSnen(UuOlTh3t7voFOR>{bgpfJ94p_Xf1wmiYQ%j^bE0w3{}FN!|hSF`H>QDcpsY~e*Z52@f3Cy zvHj?J+1E1YV4VyJm;GuC)NNnEUz)k#YE~8Z#cc7~p#odT@Bp4gQc7L-0d1D+=_Z?J zcgu&^gxaeGI7#bRd1s<{+tPxf{vz>;t#*X>RP|#@PQ}{ABs$%*1fw> zd7p{kT?AAIuU5GcO!5vLym-dOF)2~T(r-Eo57XIv_V6&t9^hghqgO}Lth-zM)XG)2 zX5G^B(t+_jH4^|^Xu(@2SWrx(+4n##TYaek%e*n$EHpw5cw@!hX<$-btfr)}lUQh! z7aNQkpm(E>vqM6ysvHERpddNQqlyp`Of2CTjsrWX!qnC3>3WjgUtbrC8+e_^Y!-3D z8JQ>LZbSMK0!f~frN^hk>P1qr!A9)cLtqXP69L~bH9~_jZ5ehE1rcasKuQ)|kYP`o zEZGsz)M<5$j)2J0cO?b-7zI~Cpxntc$KFMyYFTNl(+UsTSzQ0=d4}R?p3Rrnche%K zqkH;JtID3CavCCNxkdF5XEPi1O}75j}PGtkuiLlIlui$>{&(JV{*VB3y+;F;)KJ zJg7$q?^-hNm4Tm_AcF}`EB=p@7Y*+}Qv(W3(`7#&V?ZIY_MJ7*``DRPgQ#cD7Ntx8 zr9fK0xMe}L=?UA)F}Sf1666fRWVHbJSZ3G7{AMy+Eosc%-vTytZd_jYp_{;}4@(Ef z^X-}SPDKWA1$rtnNSWa8QL?!vFs_XjJA{Avk6#mD0}#oTQhUf;a{jhSV4-RLcDOz- zdN&5qScvv{m17`%dS!0ljCx)pbBmko3NPh|Np&U{&*1s>({4u(X4&1-Rq+^8vLRpp zL>02#?(}7LW3SU-xx0III>?@<3z`XrRv6dlrwS((vXFuD&z|_IIi{e>3Pp<7c*T^^ zM(xoA`>zij@fALBe0-%hBW1G72^YK#!t2^w?C&oqMM2s;NNiXS+|&W~;ekR{JbdFw zNvRqc9Ld$~EPI?T7qRYw>g$~ZIm^r58#!OUM}sND?xE?Bd6ASYJ?7;EQ;KQLgc_(r zwx3fDyo}bt;OHxfrj9wm)n3JcA73|N?Yq#!2cmF#*alg82NE!}k6cVS2ug5`SJ`~BSk5BK;p0yP zeE%MsD*OFi4j(vvHXPZG?!9AHYpD$nIw2XZ1VPR0N}Y4Vw6q=Q2AnO!Q#g*KnCxJ9 zTu&aRlSQ^#UdCnsyS@W%-xWw;_wGpaU)C-E$}Q!4qK+Y(qa32Nm(fzZ9%SI zgp-_MeuN3{fhK8bBd^zbhW`)?e;kF9rB}YQYGI#ZR5=9F3PzyqsaK+Xx{C*G+>Gqa zQ?Zz2x7l^EnrsHkZEJel2~ASv4LCw_TYX+SN?s&6D}|!_qmJQo+t&^e=R1tF@Li`- z)G;(MaC^qFKKyUT!WMksNXc!2(d__jQG1MTQP$q(oHONR98gRD_%-1v?r$K^A#4%x zOrAx4+m?B_+N_p~Y(Bf5!r{M~lv(;Fcy3s-Q)R!Ey-v-3listzQ(+fSGPwVJo_w$7 zGQ#)Tmm-P|3>IsI2{3vFg}By$VAgBMj`uLWzyH~h@r4fzo&d+z{@6VU)i|ih1g&xv zm^Y!VP#2!J^CErk5sMbt=j^Y^dVOCsD$1VJ39-BzsY!8rC&bFr(oyp~)ntS75vxPg ztigduIPq$r9@c&%U2uzW&RJ5|5I|EZr~NL+JA$s^fyvy+26WGNd$}G|!=Q{0gvvE% zTKX==2lZ(#oDIO!cwU&gfuu3JFXo%aX{?IYb}>k(9e8}8vVEyJZ1)$8J06sxNr&Q# zRG?Kp#7t@VR^nNsGTs=?z6JAM8x%93pgIT~z4d$ZTN0|9I>(MsAAgZ<#drPv+LDlb~|0i2Di5FeUhZMybXy-Z5sxl z^pJD_y-a$ylqMm5U7SPI;5z5OyUjdg2SfAgH9CHMizXSq`Edx`LG%!{i}aTX$soazf-@6F*>JAXwh^KmjBgLjNYHzbKuEwsSRtLV2|9?CDC*g+$+^pw z#4hQcMvQnC$J6G}mXO${!MF3tB9Z`)+I_LId&AKYZTiWop`>H+`HCB8VQFs$sToS; z!Qb%38z0}GERG&>9#Jk~VG7RYTw^t0(3j85)4{n4Sodoxo&;HgG_kKHtMpkq~j+~9Yii47S;VS3YgsVI1 za^qnfM=^{P%32lAv&SjczNX9ds-O|_Pzv1ry%o#*5QWXb6u3*zPRG>Ku(G{9V6>yP zVqiT2GnR>Q4kf7I6pu{ddJTa~W4&$0(qBIjSlTp{@aw0e7Y7*mDL^~ovi%!$%0hXg=_@CA1OAo$=~qDqp_K>J?Nf5Is++Wkk0yA z=q>WcauihhCnsx6lpFFL`cgNtq7KqE|(!?R6Ar(+Dy zMwY%a*D1Z%0U*^Uz;h)A3Y~?)8i6W%!o;Nv@sy1NcBuxcw$=O-3mKNzyn7#27a_yS zlhP6KJgHD`G~I40jDSBQP?Qe)OUB8BI=EO0A0iV~&N2^JJbq&lbzuRdKV= zfAEC%S>=`QO?$Sr&#F8$9XQXE?+hj)k@f%FU2AjOMzZ}YxAGm6c|Y*Yd2Et(vXzSC z-A%sSf<#!PMUlE7WtZ~nZ#Qj+05Jm)0|Eq8l})ysP;5*Oj(U1dpTiWsASgSBo#08H z`UN}_7eWTE&W$BPP;QuLRuOpPqnS2IWW5=WW*SPusAc6z6kfAInKDC^RsA`pxFe?v zr8ikoJSQJlYxog?w&;NT(Tf-q{++7WL8`S1m|P*B+gak^A4ACi z^z6AxVx+Uy_#L$wl&w-*>RRTcP7PSv&hqeqk-#^Uf|i!6^`LJrf0jxZC*W(40z(B3 z(de?bRm@21r(1kg7jT)Blgs;Uwn>(&ySvrqX1ia)`udOkea2V^z1=@aSu6-&XpHqV zns^YNXDby7ME`w1gUu@~)IAJ|5K{zT9Cbg8Q3VVR;EAcSti^KM-!}-^Vtw=7h?)YS z6hx4ws1Zh@Nmxv~pb~}`fF1hEIp_LUzqlW#QT?7R&b_^dM@h1$o9up7gqjQE7R8-J zyH8Sh<*N8Jns`8-uQsfAP;i9x0<$p$2hp`7Q=}b0RK`&m(Co&#j&jqA$*)eGxA70(z6xOS z+gB-kAc)DAq8)e_zH4{5k9|TZ0AFb=Ir1q1LeF9x!1kJjynt^6>$A(($K`4tXbfMP ziqO5vJ!WG-F2d~*_-E%lYzMjR@4CR1wY%L94n6nqEO^B$SmlB+>^J zl$2B`8gcTzwkbeh={w_aFN#$;1|JMloNgr4l`2qpmOH?!S|KVX7qJmO%gEvK4 zvdoHNwM*U?i63h}KjM`T^tk5d7N)!H`e_fZ+pZpY7!gZf6OV}V)h&e*&jv;S9ML$? zEl}Wn7)RgFF4hftr3h+;XoSUYPiL(Te;B%0|Mpc19~i4j_2-}~*Qrla zvJyfa8*Qo%l0`BHK(~Yg zFQrU}Y_2#wy@GPL<*MIX(Y^`EufBORsw1H<1znN*s2do8+@%QWZB>_2o8rEz8C^9R zEaQ$Qko?*eKWxR>a;NsFla(cT@*ZmA)m^jM>p81)m0oT+qy3r=-5xR2{H??jkKFTY z{#s)L2HWPKUuRIsZXj8Miv4*6He2G9bviIu>xhKE=@z!?Yu}aEudf5h{OjxV^>|u_ z{tQIidpWIzHd?Zn%l>i{K6r-8hr_?;s>=ugq`t-ofSovvcJH~x^oMM7ngecAdEI(UHjVK7%V~4@@Q42m!1FKvP2mG0!LvUFUE3BtEwhdx)L~hsLZuwJ#AkcL#LtRM3&JmA;(nx(KF#decD!P~vb9`f}4c9T5Z z-W01v{`F(A#Ujk(|22`>-IIkmv+#bOzk65Y&q=mh-aPvOz2gd9g|<;nZ4lO*)N`XB zGKA}uh~ja5oG$bb)wbX=(23^QXdqnB;S_dzYLiO{O=xKX&SFLpt_=eCh$@f6iIWHN z(Y-O!t1n%N!Ux`pr^s2BwxdNOZp7(S+Flg?@C<96@7CFe32s1tG-Tud1zur2y;2qMNCs74<*thyU&U^>7+1zSw|;{kcL{>0=d8Z;(^>I zKM43h5OOcg%<$)+Ym=i7%2s2jU;pV;x>O3JeP6Ko?0g73MUsXWoOe%~)jmt`AIWEZ zhMgav$7oUamf@}BcslLrYFP2OKHv7V)&Vmg`Ds!M^`-_QME7k^!z%}v6zX<-8dsLG z#meXPuRiE*kmQ9Aj0D~O3`DdzdKvhXqwtA8Ql2VGxalN_?rBZqMx0K;d~RzR^0?ow zSIO!_wpr~UF*DyiJ2&r7m)nPe=Iy5V^8jzYu#lun( zxUXhWBzM&^yGqZ#;{&Z60tCnj$_`pb&ZZHd-2cyrq%xj`zl%nv7^GKBn z*mX`fn@^PHzVI;Wnf${IISbtNTU;LW%#xezX;B33@6KD6tF$7@X^bs-yFOl6GpH0x zG-#U_*;h6?pd85r5%zFtBL?C$_bPdD&Vl>s%mNQLD1P4JNa0gI|K`-D;_s%!59zNX zsGkRxy)#=*GpZRkLPznKOELILULjNL>5Gzt&~CNQlTWA7x{zACeB=~BxID)9MLH;Z z+^*N##QNd4^w3wTb&r`ix7Ix>T6m)m*S)2$iigm7%IiAr{OwzXM1O?`Y&auMvVSWN z{aNh-IzJAIF=`E^yjkbxt*@+YqC31Dt*i~?AY%5TkEdlN3LnK-x|B)+kleF_i+gbz z(;mK}6*g#bmnWNiy$k7^kJzP+81N`3>dKwkN+|J=J73c@?!{c@U`ZS!oM{3j-tN4Pr~q0%4kaAms?pws5Uq^otrQ( zJK=VjZ<7Ce3Ta1N<5*u=*mFzH$6~v90<=7f0CxQ8@sRf-yQ{Fh10!yN5haOHM5`&% zzfd!Vb8M~pC)@;4nxkD=Gai2XlLrrfI~7{{@?Zb=Am$X#<4TzB84e*F9A=iaMZDoF`IH7AsLv60W)Q!XA53_3R@1uv#P! z$;WJc9}?ZkuA?bgNlJHU&CZaCtbRp2p3c)5jalt4KAGag5#wMpP7f@FAPR?W1NK0c zqmM5fCfaP#e)gc{pCRG(KVPNrf#K28xA2{jvd`^QDT06(g>*zS5thHHiK@dcn?~X3 zAMDE3tG|}nCfO|kbRR><`O~Mo3Luu(KepENJwl^F#h34kN5`3p=t|>9M`s8VidaS< z-_yfK$%)`nv%t~ZT0)Ja*3xEt{HJda>$_7T)R+JIyYJI~HVk523LgVYA8~`_0t5j`<0lmJi4uVMK&~V2q*J9ycOU2u{o~JV5U$tDO!v})6cWLc#Ukb)0e3nA+ z-KA5Jazm89h^@n6GfwB`-Dep205#(_DV{dB+pv|{*wzgZWTtZFVy}cQXx~tcCmx9B zNg_2&_`Q3X7TCTb@EeMmX|hNKBi7=zbntYJidwey3g6eutT~w@lp7~4>%9EERE72YB$h_f|Ct(d|XH{^8cVxOtmm$CnwWSwue zt4246@d{(uKdVir$<$-oCQubu)|*#j7R{j~bf>;*DLJgxQKhDn*Lo$4I#8Qb9{4qs%Kqe6 z+>$SfEKs1)aIrXyg1*~UWoJiWzV>e*mlGTd=@;X^R-=gq^kkmgSE&L9!j=<`(`*U_ zxZMPA*aV>#4(|c1X2w`#TQ*{~_j>L1p8>3X{pTpxYoUdYxL@ld{8A0WXHTgPZYi2J zDQT%QJb|xv!3JQk-7lY$+ak{%LcFW10AzV_2e@IY{P=jpo3FsD5H`@+_a!V$qZkb{V7v>)Z69EQ)T7l+X$5z6&ZA(T`e zw&Qeb*1N2DP9C%8eMqmRhsGd0{h*jzPSPch{Sg|2)mY*Ycb=?TZCC(sIl=eL!h1Hs z2`z#1m`NRKoD&&Hgw=$`jJVsl_!)os8TMK7`%>M7PUK#X)!T4hjDP&jMKnpU%{I%J|cbKZgmsXe4R3RppvVrlLxBN z#KZ1PJGagTI=4y@W+l<^RtP%`?Dhg(H(`-^dzssX)z$5;ONP-@>DPjW19ND^YAW*%K5^o9rP^Z<$TAi!lbvd~~ zyl!$Q@A;_V>9$f_@yPu$dAu|*e=Lw$g=bz(+!S$L5!9`<)<1si6w#Dv6ijTybuWjv zsYBev;k~4Ymv8O6w}|_-JSt)Mm=RPS29=m=6!C&B_M&LHXQB4>M7)kk>E1X#Q^c$E z7140|s@5r%bK#URZ3A|SSZxx<;Jwk4oP78+#Y%-=`49?a)cUfzxm#Sb2gg7B^;F;M zZ-IxOQ}{p-GcT?8?M*=UsfS)Ih)NW`7KG9%DkPTqw9zdH*o)I)l=)`UitSBa?33L- z{|L#RWgFs{uPL-4O3}olZ>{?~2>Om(%m(ymIodyA9V6igFuhV1Jy#_cP^0<#!cgft zWm_hOeRb@wKZY>*$5BkeLkr(oVX+SwSA+2J$vB)34KX@g#VRWP=Vj^80x0Cgb8^2e z{(1_uhC>xBEXJU4TTaM86>Q}z;xV+=%AHLGtC{s*qH*eo<^=gyY@kuF+wve|L%%u+bzD1AdxAvK3 zIELU=n2{-mQ?@M$Gs2e0i^pQMtFZ_Un`>V1xp;b5?Te@6v3S~K#p=lqpT|dz0L-2a zh?OLqd!#Q7-+DrCP+`(;Xe;Zptd>Kib;^DUzX_^gt6|J+*8lLvcifezRVP z6a?N)?b`UU6CSbkryv3?`wZBYgQ(Y@3b`^+o?0cl$Q^iuY!5qe+K2mnzDV8`c^*92 zpY`BZsX)tlioKNT_;jIav=T}@=8n@%9r;EIj@818#+-e!9EF!~Fn(2E#REf>3;#Nbokk|w2;SjoBo@`>C5 z0y6H!SzKcISOk9?foJ!-=j|pmSa#OJTn4batBhB2IUH!8ql!=sB_6bA+N!lOpfIlS z*BEiQc?W9M_621m3qa}T0@}5x3*QY{qGH9K42&>+K@{xO#t|e8@J*BHtu8dAa|7Awinq8@9)M zU6R8UCrDF@B^r9ay-xRb;CfkGuDr-R!gOz6D;`0dvDD~*5hQ8{aA8b~A=%WZAqFV<;y zMScfAFu6_MZ>F;o$ z$7+1Jra1H(nXOJyU7W>mBh&b*cK@28TFe+!%cr?FDL*vvy{;UjMO`j|SL#NjKI zl}n{0%J9bNUEE?*zr`z{uKlno_5p{Si_PLjw0z6U+@1Px&NM^yE8v zX{f~DQ*)H?7lqPPh148t)()`KW>IgR%`3~^Jueo?XKTp-v{u(70%bq9Cwdg1_~ z*w6!n#TQH877e!F&69d-EcY{S9iSCX2PwRLn&i=5z&m8D4FM`tOWHVLMGKkXqU5r{ zj`o3cL}=#rxE+n7etG*W*%^_P4k3*m^=6yWdPR;0M8;w)4k|$Lj+isSG;=- z+F`(<`c3i3cpb8B-}+N&72s`AK~SLIaH6K@V9OvnOPTO1yf`FnIY&i|;dm31b`-Hf z|I$a$wR+tnm7}O5qE3}bC7kukKI7r@Jeq^yUYkaVS-Bwk1c~ne3h$G3a{IJKajo5U zle{mI=p*{jc3|b@AO475`L=k7e3AW7$*7-SWeh?8XLyac7-)R9zeoWUj(e30ttH%8 z+UkY-?N1%cO87t!K?gg&2XfI_HtQf8CWT=UV+oZQy!=<1at;SH)m@?hH{pwFmELFT zN92UwF0+s8tnqk175#!^`uZO3qx1_(UmuOo-@ix(tkEW5MFvM_#*z3ahcn6T=|zTv z_=+0lr@$Hj6V0iDGPn_?e>&BYZ9V+|Jlb$VC<$F}ulmTxoCFc@EQkL{s!lZ6fCm|D z$XTGZ*YojlyIyY-ru?8hedF@aSqy^oxW?sQqKU`s`L<-Gk$x{-4y(e&r+W@cr&&A0 ztM>ogUD{+pZW4`;86-fS}F?&8o@hcXN1eUgw##dz-WM`|Nz&~19 z&!FMSCG%!Dfx{tcsVUvBaO-Kbt=`>Pngzh7ZH(0P#p30_3(90hy< zN{+f=vJu9>;*5dKAyZwU1am^UWV+tqN%P;jav4 zsomf%zrUYH>}n3b{j(4U<&dQk2PwDMAP}}&Pci`iFwUM?DI#jMf_vsUlU%c&$lQ)n zGXTCmD5VXp|0N_mdw{`i51ae*A1&b*K5!!Vr9+U=y3j?vw!8?6%2fgK7vvB+%75WO z97aO}g}NW7?{Blk`eCz-)Xz?+?A4m5-G!(>p7tPVnaWbqk@h^o1YMCfI7|07ps%6O z3SP+JDH~vWm~xC;?v~s(@G3f7Ewc3$tOZh zG+=Of5cXyIQ`1s}vo<_1eQFN7pRJeE4J5D|K+gj+*y8|a`_9?Q?x(hfQMVC6$m;dd z5ptaUvqIX4ycT@^>!>(9EV3tcmTt`j(l8w$Z1Ap2q9kX=Xel8JYXr(S?+Bo*5wSal zb^;$bRXQ3ALW1!(*Ie+Rtw|8sda;f=>uM&NPdG|(*;qU6^ABI&78iJc_gLBD=^P%Y z?lM%^qU`$N{yrwk(s~EZ!oik<*Nq)Wy3-g-TUk~*FkfWXZqOp8A`VZg<6Co6F;K%s zt>KrgiuN8j7I@%BHmA35{~}QPRjg9>>iY?NAd1>Onu|rkkuo7ByZ`{^+$I@}RTe@G zL`X5=*dtHqYTeyYbu&DKqo|uvjR`mTa=w~pWkDXQH1>4oXJHY_5$RkSdwC!6QHjz; zlR@{#(=fArl*Uw$5z|Ivm{jmdl;_tyRmZv|#MlMuy)!W>aK()Bp4-segfQUpSTqQ2 z2?TF^2uhofV$e`s1l7r^lT7< z7WfhF9O6(A12M zKmr5Ni9;^0f>NlFdLkWD&L3ew4bI{)Xk$XDVKcp7Z)WrC!$a|KJN=y8+;GNBxE!qh z`Wp^SfGev>huv`+mq}fUb+vwH86-mhUj6ywbj@%jL;Xb&oFtLgFe4=nn>N?)NaSrA zLTf_a{$?g3@kk+pyY%)}*Fotxh%hmhg;3{#V_7a9!eQVoRi;}`Z#VO0ws|O~k9ou; zvX`VaK{l+s`=?7>D_2cM(4WRj`q~hYu|*jf_-*9TVsVfds^Fc~2s8yCr_NCGKR7P; zVJJ!YHn~4GQNF!lC>@Q2UI?L`_R4CX;+9@o1ZkpRCp<82sPVHVdm220b28B_9A&&=XgxqmNV2e3HaLR`a$4s z^nuu_t{UNKB}a=rYUtbIRU-hu`k`eK3m=FA@UcD7=@^{Yzoxnja`4wrbYRjQL*fPw zq-Zb?`G^ySkxnVdGgVysEhC`UW0l03D)YU~$HV?{9gl5|9 zu}VLnDFRR9aH)sQr~H0__p_OPn%{43r;ic3_rSY9eac)3Rx0wgzPq>!L}@YUz&lc^ z*PDoQ86*{ETV3f*1+o+BdSVxuL&}|CnmmPvp zYLEZpoBy=r8Q=pa%3WhYXsvSIiDjrPqRuiX^q~T*l{&Ox86fyI)iF4X7eO&ROFb^~ z+s$-!U1S^hhO1&7skI%nTgPD;T7q>Yy8Y1%mD`JP43(v%hbpgugbT`0lsDQZqW`@kALa3Zjd1>vM%U0np#%b>$VSQdop2-bKQ zhf|y@XT)C>Z~>K2q->o5tW6)+*)oHGemN}wccmK2;W{t+R+o~FzNcY$`#@hABDxSB zJ+cA6AWgCZbeqK4V(Fxg^+TY$w-eg#nVR^UqIlo^6hYp1KTZBVfw5X->rXvOTv-Nb z1O)%X-aUS(Q#u~D;h^i`lWoO%kzK8?Zr3!i{o0x)W{qYGB|kRs%OvSebyQa*N`sZ=V@LJ;{lM~!-#jYe*!G6I%YUC4hpX#{MK+yHue0TPwgfb$fp}0p zm*p5m(YHUJ%gW``5qF$&yh=y>(oQj})(LGPtr5!L6a|?81K2{c6q4N1Qv1e+GNeYb zx`)Ux2<5EiB+%{|QPZe+q9IRKr5fB_zJ^=-AAEo&uoK04HGP1W*VS|h|9_GH-!@sy zZsA8rO7Ds_zSX|$dB6jDA`E_U_j@LXpN)MU;2F)c`(nPD(O{dh4GE1A-F?@}L5u=% z69{*^(}oVS-LldF`XZg#6ujk=_>Inn79Li?ndynb=sG4B7!S@lNh3HqR~Q@o9?i)& z)Rf%!KSluj`yVH7&M_qyiAL+nTo;M;${HwvG)RMtX4=*><=Buhp1x6#79?`-C5wk3 zn^O);*W~!{>Ep^((;@dFS!2s-F-jrvzh_c;copr*VYpMqteD~+|B%w`c<)X$C(AEc z2>i%!46bA&Jgxh#!OD! zUrlfGf(F#-vAot2WE{#dIJE4xSuY;$;nCYvR~{GYEnOlRHGdheW`l-ztvH*&1$u4! zoMFr1_33voeq26&`FB*x8EYD_}g!%9L=R8kkDgb z0hzSnK_@hCRaQYNm)i+sYcAfr6&0M!ONCPwncWxaI zN;OM{{q+xlroa6+mh1j^^4CB8GXRl|Pj4Vdc>k}gfy!~Yz!yYq!iyZYMv=nt8U;sM zxBUIM-sE>PY?56p@+N_VvvH*5Ftn!vUaUQyZu-L^Uo z4?H!_9!Y`z=oEZf&)|-o-sf^g5~$z5^a6e^=D#}$fg0KR*0uXC3gMMC)D;lIM2QJH z%^j*H^VHpH_II}q0Z9+#2tH)<>|?fCWThsk6ZomOluazhDiLGbh|g57mkzh%x{7Q z9nPloN0k;)&rsb2eOTewTv=r1S$29u8jZo>8^-%RS+D;zzn?DVkJ*>mda=HWk*d{O zJj*M7dFwmB;=jC)Se9D3XgX|;lNI$`MPvD%1Ac~tuE?PxmkfJ#dlyu5SuTn;1E9;;bQOrFw<7Gyak{!LC7O=o( zO<6pV!@$x*v(fAI!ws4+e4gbwdJ@p^dgy+fiCf)8Ftu9M{s!ZuYiTv1q;>>w%cw`J9cxEk^hVL_Lpc36ivxajdx{+|S<`OzdftS}nO>#+% z(>C7MEp<2fa=OCJc$iZOFP_3tFbY(?>ocr&K3!&;Z22BAZT8Sy^LnurXTj%ksJbS` z(ff%{WtA?T49CA+B#kR|M5*f(I*CQOBQFV$wNr{4Lz?HHvW$0H?;EWBg__HH9ZR5J ze>eH1VJ_?JI*E~Xf=)QRM=24K9jzvUv!Gtq#7g{M>Bq0h6&`I?)LUoqOpXGa57xH5 zTQ3&tOh_8158tT-?CxrMR*r4AKCpH-7$=EK>q!Um@haQGn=oya4mr(}zm-6R2;UE6 zcf@PMMS%R6RszGykr85_S9+~UVIScEABf`h(PkH7n}1@cez6X+M^{fcysAilsK6qg zxDk#rOqbJQn&sKYyjaa|rj0%iXO&qjha|PmcDT%9s{|`e@jmj1>>#Fxno-7P7m?^?i}ut{3a;nB(Js%4Ov^oFVrtT|6CA z$JvGp|DB{U72fpFA=SgXUQaf;U5yqrQvtH4h;5j+Ogb(Qa2pYo6hUZePdKFr0vUso zY7>L1hPwbd`p7PdyZa2|&NtB1bn-{i~rYM$AMcub4EAfdN! zW!Z87`>S^m_ZV;QEiEV=jxUn0HCEHLFe%lO5i2A*x~BxV6IKT%jYrLIO=7iX&gpGu zLnBs`Y(SID;VIaF*xt8=>7Cm`3O8F>1l6(t4;JTDw}pxo%F6^7&)O&mf`i+Br>pr^ z1hIf`C9%4)ALmGfD`9G18jGwy-da$)SUS>PBVynMGy?63-Y)q2Vi}|cn44(Lw2Y;{q%R;n@wPpX z7X{A6!)B8&7TF>z);D>vp#l2P{W=qcyo+!ukJ0`H8)V3Kt4YW6adOJa&?6SY2&M$X zZcVNG0qag33l`B>$OxY-3_OTdiNN;=jlE2fzu8lvgAYW}`e^OC^wuY&$wpc4cn~QK zWR+D=^KF_>q-55pMyYW)U*n>P@AIN~%w~W-G_a-#j32{QY`5WuvJEYb7b=%X2f}fR zH3%%=E(&zasBg`2o(PL%Lx-#Is)yp z)=s2tc@dQJ0#_3mm@PLaq~xqvSHq(?F3>!{w5C%++FV%co{*Nqcm9O5vYK=pzDTZD zxR@?3+M)=#Ri5gr$F?ik>zMJ1tBBUP;DG@=$$ez+-)+g>zt1uS5s62FV@@Z##>z4% zPciN%*xwuo!SUd?ewL7Fa3hh>J(yUSzrW3951Xrfe&^MFIUD&~4qa#RH*!mH zkFwIWlOg)gi{yZ{a5SeN@vR(nuHcazBtUBqxv~jT1hN_zB=g2{BT_ivZ)2>&w{Oo= zjiaN{ekAx1NA&oV+HMV0znV5EaqVp#n`2(Oc=#>~m2aoTBAex_`Io#Al+S9fTaHv$ zC_da?w{q2V5Izra+cOAJR!5fp*fcEaE z7`gjXV*}cen}s7mND-gxq{vWNN4*oxVrfKqrky^9cup8gn_Ag*;$I-%Kw4Z(v*q+= z^$;n#^(vOrySWW76ttwbk}hXKxiY-=!evE z@RC_&ZP=%7MwZ{228Nr;Z%0PxSQJibSn*;Nb%0h|3oXlnwUshlw#kc6c~SbYX_#Y+ z&2S#aMLHMjtGu|+7TL}GY7-M}IA|}zzOBru-IQLq|^Pf4$fn><_Pi)dQiE7Q?Ew=PF`2uw$1J?W4>USZ%MEG=Du{s}rT zA(7PW2evyB9UK7J#fT2{QLzsHxf!!5C7_zu#?FLe^149@=xC0d^wzhPMiX8dW#Rpw zC$wi&)<6#9p^6rR?~aS3;n^Ba!h9&mKIWg`!F$YZXT`%RW*c{woVdK{QSgk-HSbSv zD_@_Eh2vy>jSuvAoInjm?VfxLiQ4`IYAgv;ca=~L`tX0l50wGzGYoZ!XAqo-Q z`vj(;Q;+eBg;02?`2>F_mF+X5$`IH~j0bL9wC*Rn zdQOKUUG%&?d{&k~xl2gDH5X8(Wvefq!C`h7!9d zbZr%D+qGM{b~2E@9j79%kTC-Z5!ANA3`x0^J#nWU3tjL~E3y4UQ>XCG=J(6wko^Wt zNP5D4gGdY#QqXSPX=NSMpc@)`TV|cL1Ptl%{IIu1`74wrIx_Zy@x4xq2pR&(yjJT^c?xv^e0zxsbi zT3I&Kt-d>%m1Qgh>8gHurQ26q5N2#26!ZgfxcwF?RvF(%+N$QHd5Ss ze?iTkvONS>;x>>DgX)^nfq0x0tSV{7RDc+pS_K*t!drPyrKpbjWB?6TI4ri1I4p5| zIHZZF52Jw~5`u)8Vc}sL;C$Nzg|f;jNEvl_fD{g)bk`@t(>M$aCNtn0IFjpC21oO* z7h#9~2h(=3N=4t}2|H9)la9ON?Xz_@MEudPzg;sau=vqa_3O+0t_%8V%@m};KH}&O zcc1_=_Nq73%z(eyR{{I(gw3{O5Kii0QC$QzlE(SO7-pLC>*FjeN^aSUSoows7iKlTCKwWODcn0OW8KCk_cD4STpTU(g zt=jh-sjj%(+L^O*@pM!kC#M`-Y%I+h7SLVYFgs9DO2w>{E<|RCgJjMs$OL8cghNd! zc#Ewuv7OgHP2dA(09`s9tw$cL;1*seluc^#Ev^Bx_?njI{TDr0lB*)n?T|DU{T zZEo9GvVUc3zhg4*2fjJ6wSY^qf8?q8r;q!lo7lR&y!~*B)9u<(BOk4f`!Ni4*;y*6a5Xu%9loyW%pL z74t>VN^QFkXDU2*d1();PvQ=jmz9UaBkD9+xzdS%NxRV7F--1P#*Fk31nWL|@{9YVK9f}>^ z^GgqzmyKGBBRjP3QgN0;djOX}Xusw0@u)h@cBrK+AU?j;`WM8)*NBc2Rjof)DkB5p zF#R-5fdoT2e$`|c0gXE0&wXr^7QjH^p+d+I zztzJjvzo~R7Qi3>MDX(M)3M#h3inm&KM=&ro+oti6tqA6cT+2@MuC;7f~JxYBlmP= z56*6eMG|0Jj-!5!Yzwqrfe3Wnn?`6|#O_iT#MXYMblWH<)WV9#<7Y{AwTuP~bimQd zmx$W>ujx3I!GP&XEp-9UcIODSni_F{>H6w*+Z(Uf=V&qn^3i&%tdrAOEr|WjtxE+5 z(S85rYs+$ljrgp}V4qO`zOyX3D2w%G^>qcO@@Aq|cM5DD^JLW|c5OwpCBW7n9*@G%#}qN7}(>kEBw4mXTsD0#82erB3zEtL&S9#~7nRs@_kTQi_|+|=}K!sDLx#qb=Q z*3GOM1KM_wsq_%-SQ}f0praY=$MH<|V#6_uW4xxm! zMQh2OblPwiQ7}IV0=<;8sp3TP{Y$y*<_4Vy^IPy)Rm%6iLQU4Qth_1?2=6{D$XWWv z)kJlziuc~5;aYC@&}bz7<20S*A*x}1 zsb7V1wajjP{j|&$d3v2~X65}dS$l8;`-Gov$`y1W_hon4zV732g>n7$yBI?(ie-^7 zjw5Z%%A5s{t9cFLaT6AId(-e_MJ23w#D1Q=X72D_Gv~faVwy0k{jqkOy$%15u%^;5 zyw|)PL!}h%#2OJDb)k44x*UA}s?mj_-`++j2@yjUU2X^KVPIatT&Gm|Z16U^kw|9) zw&Nt~Xza%D?>t*3UrYa=Rk2Pk=6QLyy2l~?sKq%8hF5bL+xckuc452VN+|KTJx!)D z6V~7}Z^966{5~cFY29>0Wq+zx)B@JvTE2dv6cg~H5tTnaEvdKQ`?L-Hh{~_ikDpJd z<-3=FQyZ%7VnA>FRJvtzi(cBz+pRbbq6RugyvVNC#ljbcWpQHE&k|G^?|gqFW>J4LCpp=o6BXjIx5*L)X<*2_(;=94&GqAMSP z%8YKC@s`UN`f()+)SX?W(w|Bs599J4NzU)JNmRtgHai|n-4@ApKA#7wI3%$3I55TLfoDc}~Eca5^(m6BM;g$(%zGh)F=eK$Xb z!|ID)Tf(aUz=;apP!i%tJK95QJqC0@S){@dX^vD+50<;I7spZUwu980>{~v+_~-r_ z2i2q2q7Qmo`*G&S#Kl&=E#IwSw0RdwJOocuFhW?1liZ{OzXHPCwu3$l1b20?FvJPN zqzqKH9L_QRzX!(Z(7U})p`OF1*C+H33MHZSwO*Isrt%IrE{&$j%CMHbuPjdQ2ygEg_s(r_K#V_Yffp~M63beYA>8N8FgwLgo~tsILU zC+5PWhjf%H+&k0yGqCcQe2BP)x(2;^I^X=rL;i3=*PuWSB1ZGNc(&D|Ko!o|c94qE zj+hI3aXhSITru*YcW`l8+!dS6X@R$Uox4lad11F6N<8d7%ib;*D$v`dASwVFI{v3o zx*7YEiq(OK!J|y53xm>oG;+`TtI{ zb?l6#IAHsuDhE{qL+n5VwoYgbePJqDU{czrp8}orpzCH^IkqOW?(H@XU;230`Ix)7 zY7F}zt)bV)1(DVS>gIh53QNb)lfXdsn-8bR7RlE#zsyU}S^HY7XGd8Zp9M#&>)-x* zEf9YQAZrhc2gqm10ER;v-h$wu2;;v*YHJxj41#u*n@~haB@Exa!^7`B>H`T&eeu)` zp;!yz=a8D(&%ZaeAcmWr3#B6-RojE=lOXnCRi(_NQWKw%{n@$85zYd=)f@$(_t>$y!0UvNxc2OLBt8$Pcj!50ZgGoC zF8w#of9tkGs{`pwbOd6qh;xc^V=M~9jA+9Z{B|Q0Ph^ZakdO9lh)!ac^)OH@b}5rY zDzk^hi>z3pgUo&pP6CC|Mng8w%lo9fzg--dTK@6+5%}9(T%wwnuK2tEA`Qs9dulxL zo~G$L$X%ON0g;wZaygOI2}e1Kt&D*Qyj9dTYpT6KI|WaT*dDR< zQ~Kfror1v9w?|T^wa`XO7NH1H3j*usDqpksEm@_OgOxClq zxC{0S&g;Zh%|b-OpoJ4#?Mcx{`PXz69)zX=D%jS^z%VkxeyWd6X-XYe7)V-2{F&GP zZcG8XC%3-SVQ(xz`vOU9*-z<8xqCipNoin6Q!5?1?Aog_{q`CUKB9iUS-GBNNpV*! zo2=6w-|#GeSY7${fEap#27Aig)8avKn%r2;MZg8!ng`n~W{DkWhw0E@Q42(DE#iJ&*hIl{q9BT zKQMTC8d&-Wo-DUkIuDsP;%cfE1$N&rTuLd?w9*XqZ*x^Ful8nc4|A=~cF*5JWaj(Z zML=d((~0V0A6uHPSM%GA|E8_?;|^czR~{3OgXiI~cIG`?56sI#J5w3Tv^p?2fEJ_;77?eD?LsqfQu0$Jf_*6TwF3n*O>RVA+l6b-VH1jCg+XkN6(m3Knqh3N#1xOs(`?>aZ3DjT8tfSe z19_)0wr@ExTsjpHJ8+x`VVG72O6Feat-ZBx@uiQ@81Eu;P>TYSIiOew<|C4`PUpG6ScbJjt#fIiFDM2jleMYMG)OcJyP2Y3~=0A8uq1XzS z88C-L)Ie8SolsR1ZYkxJ;2(bXJNKUwV>Q)QM;L*9cpE^~4{uLmY=AC&gs(vt?d?ho z*p#UdDToy6kO1M{O_e|dwnxSPzr4+sd2&@|cljLF8Lu|auAx$0`iO$ForX&7Ve!~F z&Az1(A;%Z)D+|y>mV$_Z47oZMoK{i}%u^H^1^hNsR5j0zzI=*;@Qc5^3pFm^rTznh zLt|*|2f9fL)|a&~un8#vp3%hcJv*+@gcNMIag>+n717;1yDWS`nauCA>)EQ&a;x7F zsR-hJb@|(aWcx9x%G2Uea++OBD+~&fmH`_Pq~jeOA4E#&kB5TeTqrJJo=4jQ`1nU# zGU^{EC>`--kD%pu@s6zqfjI^!o5KA&MMvusynyukY#iu#?BRPeTlq70a+9w;Jce|u zpT6~3O3G?Njz!BIbHCvo!WICP2Sx+tm+21MbL#M`9u6}@RsjV}4Ajl+I9jR=2*GI~ z87g7Am93{*=>wdl5i|J%If%f}F1{uUuvxIX=EYzH% zv}aL{7-c9mxK=gTZ(HM}IUx9twi=ogs+w92JtKA?2dxLMgi}^aVOYdvRXvD(o)ied zr_>RyU7Kn-0M&jwPF61U-h*YbTHbyw{nzL^faAxm%()P}me1kJ>0>9aYSF}F_cZ&z zzEqMpz2E;0TWuug3lu)k=v8^M=mO8eg0j72(%@DCf+%5}R{Vf~Ag0jLC?MFN(9&}= zBano)9M(?#;Cc}I@T^kq|Hp_id-ZhF&^ll&@jGBoj1{)zB%8%s4Z<(CW#eS*F-vle zK5{LM-RkOguNcDRT0GIXd~qJe?9dJ{ngxckoFK*#=KQ~BVj$jEM?$UMsvA1%0?yyQ zsAftVyRhwypQ< z+tWFPhq4eMYtX4$uE&9jFlaN-HKY0PTZ}iKRX(1FP~*ES+jt181sLe5iyu3dB<|tIk@=4 znHk0s+uXrGS#-aIY#Dxeagxblbje!-Z5K<1N(B3TVwZ~T=~0PFpE%pEX#I}*|JD@F z`nt4>pi@-S5(L)Z07!PsU0m%E@%TB-Zm+Tu?;9vz0>JhI8N7k++PWGyK+VLp3lyr3 z6K#Z)hdjPNeMZ2ti6Qan^QpQ9fgGH)-CK(RQ>%fyY)%ZLy_h$^ejG=`;8*}Hv%6wF zOBUIDw%UXsbnI3R)ie&*Kxkp*Pzxv?l%FN(*#GSTS{qZua9-$uml)fBg9P8*hilk$x#5n$b2#UGsdWXI7w*n^X(gR#EvRlX>eMZ!1^ z*5jVntL88ks(YH(tA!E|(&u3p4-C@AXk2}Q83n?BzytF?4^&!rHR&}(IbT@^WO}yt zkRHaH>uO9jw~0p4q?+6FZCoe?5rfp7M8@lJU|K!Qrpj+QYdhjKY{yC9_3;9d7qcv% zCuQ;_E6Z#XlCd})mbdmx-{tnqI9>}S8prcz*+F(r<|_C&C64&VPF|(U2J#hC|4rDF7CKWnIS^Rt_JI{37;i;e=U|5 z*8xGxQ#!D>zV6$lHWs`4a$m2-5)a0j4FiAUvWl99P)0S!42 zuA%;{3)9QvWWNEqf;kni3<7~->p_Sg0OXGt6}fSSq=AY&82c@dj`o~nqx^Bgaie2u z=xPwCBFb(zoSjV!ml zmpxPEyGut`qFcioHOO=B9v=^@)6}!Ti5kWb`1(*#V;rLg8z+v@Fraec3p%TrXqFlJ zfazGg3RSqTUZ)=#bS(O!v;~$vVy2^uwRVaTIDg(nD}*??rTh`fJ2akyA|-* zGDHt_`0qHbtUUCopgSe_IA}v1KOn${-?KF|Xis;~7Ro`}9<7$r|5enrjbDdH&c-#j@G5v}7XpBv&)SIK}g~F0eS~J<)g`HeNEOyv$zt$J^*Vl@{$y&e@FXW!p56Ui}lgQZMDqim&r}; zfqA_OOdAj4b{Ro4tEQ#vLH~Hi%i2@pA$6K#B+vRYSw|MWliOvC;La`xbUK&=b%&aYd~g*mC6(KaHNLX+ z2Q04U`Bk#ME{mJh#q2sTK!M_*f46~~ox8<7_5lA_Xdctdto-%yVD~KPvzl|<34;q? zNl?PTgJvk{-j3C!azsj}RA4ZTDMJJ|%+Z)B-Ud0Fv$(2<@)6Ml?dC~T4FenRg^?nE z+C#39{FfCgGGPl&f^>y}>Uxvk%<^SYuD%q@L&fIz1vtl%zLuD-b>`lCghzfW4~<6N ztLeJDIb{PzL(YGH7~ya$%f~sKAQ=#qC8Zqgn`%d#b&5;YOl(D`$eQ}5r<)=RB_X2n z>~b?-4+EPfqcW9#dvaHkOi0#wd6$=!|GQ6bL|LwWQ%>(x|99q>ELmJ!7I#Hx3ZccK zoTaZ?&17s}HR>J1lVz2F;sJWPtyOC^PNA~Wuc-e<6FyQSI6<^Om%$GVoqhPA*#N)Y zh|X^@`LK_n*6PR4>DvbRuzt}Q&p^cJSeKS+H3-xNj-|}{irDt$0tXv%df;3>v|QKu zRiiM&fWB~jfb%YyvEV#_C)_Tkczm8_pOz_$_i2qkfJ$F1Y2wfL` zVcU*P1Ll;kI|JVEj1%e)yQW#w02Q@;_wNAoz592gsBLeTRH3zR3w}yyYp7#UmsIs2 zFrJmLzG$dl^CRd7TWorD<{~SvlP{%*lYv1o;wHbk@&f^5?Ge$yIGZK~RcOaiP~>1` z?}3H;qJWEmuI@W>Pz{le8!!|=VG$JAG?&~qU*3;c>m`_k)(ogFN-s~Mz{XGgfeOTF ztG(1%8Y=9_aa54l)szR2)n;~|T$FjXm?90emaNzld2ck-dNlFidmjDT!D$30Fdo3+ zunYGZgqeZ-*}Ll7YX6eTu>eUGI)KjO(IJv*uQY$yiC6N7b&vE8i(_->)%$h+^xsjlm2Zjpm_DiDbfPrJ76XUoi!NJ%_WM^;!Ds>CDUmNjUKpSUrq=OX}9*iTGIT=o=E?GMRtdTASUjH+eu>AYL7D;Mv()@?rtGCw0VHDDhDIENQx2 zNQDD6^c;M!AN;hLaQN7`eEPqM%HEj9VDRw6JFj;NS+F z1xTM;XFrtd_vJ&edAu**l~2oN!}os0aa#NK9MhG==-!2KqO0bk@jQiZg|LC1hC}l# z&zZs|qZtNoyMQhF!$8@mQWnK%{pC+^j=%kZ>RdFKxx)vNNZS|ZII-?IrVd@o;wTIX zSrz>2kad@6T-0VSaHmb9LqQH-e0HvMG(1MP)(<#l@Qtgho&?Aw-#Bp(XY#zfJvy?{ zH0RtVM08;TXeYFDQhxpF`I=@8)o>FVZJ3U1DidvC`J9qiD5pIqfjJI?a?Ozkqbc|i zctqyADZP$BE`}kA>%ZKh4$ul-qCT6US zU=HVM@o;<~VDC6$t+;1<4XQgmkMSjP(0anU zi@$Fi1Ubhi7Xn$xru%?3ZpRmO{C3b_zuj$j+vWClM`QeeBiTe_r2PQj*Yx(;6v=Z2 zilWJe^4t093+oUPls3-rN%crJog!M}QIZi}q|jP39lW#v+3gGQCO3;Q$3mzKWXQFv zV7!G|R^&9LD?yMQX@?V6%A3C0BDf)^GsQ3V#d5t~Zj0U3 z&8|`3eMI4*Ttdg^EO#rHdlDat0?J497uksx-qV~rbRcu^S_{9~fhZsQsupWjCt6!A zMBy%bNtG|MF(U-bNw^8S@@ia4V!!Hq(plYZR0fozV;U8eE|b zsN=q7dqOTAHsmZYy=h)=S6uBrET3{Q{L9*0`Po=?kJo;tb1*VQM^TV&p>`oP zlJ~lfQ{!fwX5;zuq1&g%^ZV8Hf7>1X^)fI`pf7Bi)wZ31=+|8JdGePrGabj0554nb zLu+mo3A<7Th63o$F*T4iNM|iLi}5kGaN;uFenjx9C8JO(2l15@14x?Z~8Dtqw@I+6rAglwhC8tuH1mti^IOo59l^hCu-i#pI z78S8K_&^efdmEWftbJ=8AurLcMR1-0z;O`uhO=KNh2ykZx@MOq*kRKESBgr3J%#o1 zzW571y4*kPdNpP0s_|1@;`WDgXW21Dm&gad`TEoul_E4q%LEVXAjvY>7C_L_2Tlw0 zIL*8^4oCAEF_3Hlyh&l;n{jPF=p>A*OdLl+sa_g|lT@-Q%hSQ#9{1#Q8UeJm=WYcV zC_a|Akh&yhPTI-7nzh_2v{xtlD4=XC-dskYV(7Cpp=6>{YaEmCaH1%!pJvZMF|0!c z_oRLWY!By^RHr8P-aeO1BeA>Esf7=W1kxl|WbzROL2=NGTxiLxJ<+K>r)6;1 zkFz*SBjNj#T>OXK`e~ceDxPu&A-dvy)OP?{=(dl3<3WKVuKhf|_l{5T>GgZKiuAfl-t9FVe z=1Uvi@7^u<55@i6ezkp{@;j|B!G+4_V|vbQPTcR-j}P#0-Z$Pvx<0O4F&}1U+Nc!? zR}N&?3JGYX;TIo>PS#OL*eb?_)7lvlOO3`;vtW61ua-PCYbt=74$X!W5>Dl#burvY zNH~syl7YvX1*r|PCMA5gUp~O2xh|h}j}MflFmA?a^mNZXF#EXNUgI5o+%LCR%LK3{ z?*1b1TFp-qUeDAHZn&egq7>%f|di%pN z>IPES7+onF8@Kai&3bF-!3HnztQcR6al~(urKmE@NiV&2^m{!z1dHIgZJuoSi5gaW z_52UNYV3Ts_^Dx7ZLnH2m5)q8Y0#dyU#eFy( z<=N-n?!!S$GzR2#X)t){TbA~Cw zoL~cqF?5|6wk(){n!zNERtRhuoSrZH<9h;yYi)vK|6l9Z{dXL1`0ahZkz>LQ(WDc+!{oWr35^}^nB`n+cvEi#V^SNq=?tw& z8@R8wZerC<>}g!6mXYm2RGQzzsHyvoVtS1xs4qu8Pg$ZMmXxG;h|S zuRg- zCtE*IMntdvooe0wd-21F2J(p{nkM!8Wc66^c%`G{*P3l`o}*PZyH?Vdv5L0DQHhZ=u)jlK~TdETrJSfQ>!)&-h@5^ zY{qE-Gu0N@mfNeR;_m{A&HXAt?K=0)Gr+et$N*S=*QI{_guRHNg@| zXn(ZU1$^TusL=(f7u+*#d>^`vxFzSubJ(C@<8lqi{BFJ5ZT?y<*Vj!2@>EqDqil97 zj(bsUjN{3N=y~>UeNcgh=K$d64a%wdfsWHUQqSOh8X2cD!ORVs1*M!kWkNxsbCYCE z6FLt!20^DI1E;&VQbbWuT@3V549rU3mU;%;a2h2s+2y@{EVs+z{l5ILT;p<+usa~d ztabb0n1_++W%0GM(e!SL^3Hsl{*2-R;x|j-#j}s9q=wZ;Z@pnXYu}I^=Rf^(+aXf9;poO9=nA`0PV} zUgdfb^sMHf{h?X<7E*{AT`wOo=h~Qc^c=3#I1+?j;nhd2sKr1oI2 z%{*^Wp5lI+1xfbYPVCKcyMHQf%KgKAi!SU%dac!jjZn+R*UQJZnVgN2g$@ z{cNVGeG6rkhK#DilctN3^il*bb+hS(XO2o(w<>FHi`1JnvOBb*XVlrxcMTr5%7tlVfA1@ z&xBRXOq3}AcPWih&e4+&oM{1H6`|SK;Vq@%)zmn6+o0h!T%VRsM+VS#5loDtAT_aHPMZ@W2sM2e5-}@%**_af*PcaV z=p1AKBowONaU`&1)T`AfsQE8=iZl*Sx{hsG+>6s8Yn^S7`?y^_lm-4)d z*{#}&i zyM~4!F+}W{g6~2kvp&!$TC(O4@||7+PB+Ez`nc>WPZva)#c%$vy)t zn9}|veT+O_YjScJPk%9)g|-5Wofr;r5EM>Jw}5X@oyBr-JI=3`J{-QiD<9yu8G`XK zcNYiaN+|hY{34sd&I#IW=im^i(1%D5M@8!d(w1rMjTOhSGYg!xgI!<+gaYgqX*q zL$p7Ci*hppB_h6FKFrRO(QAbDB#s{JYH=3cvMIXlTEUF6(kV})sO3x{<>3UA?9~q~ zQ4~HfIEp5gzCFLeL3Txu&SspaMM03>=mAGMrPt2@v_@w@xv@!b$EY*2FO1yH)fIer z*)+9#F+xIhtuq1foR)3nBH1W-KTkrf^CpFYfx%mzM>3@z1_is0H9*y%y_S-6$_*oyYBTY*r1Sj)Qsu|8l{cmtBv|U=L0MC)PrB_Da`sg7V|!d<~RJgpW6UgX3;#Dz|^{$Mp} zbdh{yoUgR3N=eH~&)~&O82B}ij6uh;R66D~_h`sS)}@~DPdW$90}0U`Byyu8~0s_Z{3_m%(stS9>M(=I(o?i2N?nw6&P7r#cx znN1eAsF zxK4037hZB4IyE@gg)gY)7DeV>l z9>-ca`_&kwHmm>}ZGPubUy%9!@xI&^klOXSxLvLHWr`~hFTw?nrH%>8J(jB9MEX#w zaX=eALLJcopsHi{)5 zdS9eOf>(h)D6@D-B9#~pm%Az?;Lp;aY;cmo<%9eeH{9yx=>^(LA>~c}k8dyIr9fw6 zWGjVg5LCS@!a_@?g{bKxY@ik-JrrQ~&7$C?aJszPt=GFkNE)D@-TEck3{g&!D14^! zLH$P3rEcY_`FQ&xX|6KmzAFK*P-zdUplR|FAU36}51yVyfFH&#z{~V0g4VB;tK+Mb z)Yq$D7r&0?>PV+x?5W;L5Tw?kUP#!pN_HuNHP?roI9u%fQX}7$@B*ITDs-rjVSNU# zkgKV@bcGznl8@Lgvis{& z8qMLze;9GRH1_~R*CIbXnh*t1uZ#J@sD%jt>aMjP_7ozp@^n>CptLtiJa}m75ouI01!U2G+wX`!N zM$Yl;t`V$zb%yM3{9)pxU+x#$qDr694Q{~=|Q4>Z$0D#@Y%~P>1Zg+S4#FT6X>~+-jik9|V z(7W63t{<=|e4R{fqaf;SR)?NYN-`HZa}97e&WC0DbzWgzUavN*Js>C4k*R5g zF*yh=3AWV?Ub?#)#gdQ6Gu0!IhDKu}nQ%~mIF8=Z(+4+sa8*9-icJAY`!5ZwXE0=&o128dcg7J_H3hkE=VvoySrR zY*~OOj|nx<=}}h{)+`8|JWcdT{lP5PpPKgi*Bb(b|MPtUh5z&Y0zNPr3R5Y_pl2Pc z)+~P3F^W10+l3Mf=~$?mF*XfqmYZvMjU-U`uob7%I3OFW+vRFqeBAA>q1;SZil24w z7s1_Xs&a9+<=v%lHwq;mcV8r7*0_)|!m)Vt10NDh4&~z5seyo&*}_{-E6Vu5gi+jU zk#VHoG&wfPk$!6NGdvr)Q%(ynb(RNC6vs0__Wu(2Mv1dO+QfidFM7jiL)@h9^ZNcxuB?^B!s$ zVF&8Hb{y|g0FU<2R3N(w9^O)<7bgz>dsRXlY`80tjFG3iqA2P>YH)sC2d20^d%O#` z-*ie?swaE9FYgcMT=x&V23f8_X1UrnWS=D=iJAS*b3MOmHjI9pXJb|hMc1F!W80Hq z1u{iKX;0&^B!a$9jcdLBwGl!4sy-7-KeGHw6h$2{#lqNy(9Eft{!5xuio0zZy;lk? zzYwaf_RDfJU0&(4#m_ytI-6Je{CfEi`649-ls0rvHMqkAq)|X=xir%*w=JPuF0RV;^>Ve}(P&JsP6j3ui~`t1tL^!q9Hp;o^_sk)1VYCb&qwI_(qfHC zh!`?F%iv6k32GQ>&b;JC20@NRIm^6N&W#Gdz4cJ3h0o}p3NPTTokJ<#9&jr$P!+6# zqDC?AY;*6_Oz17Yjn}~nUipjd>UOs-o0McP_PSq9z`0fI{cipE08ieTEz;-``LH-o zZmQ-oF)4sHb1uM7@xdnhJC&vO|GB%i zLIg|@U^GB$=z?w_vw^Ng->9&y8A@PhUHUNVROUJH710Xbdz2f6H%J6~*0}rE z<7@r@#;%)6T>|id&QXz=`o`@6ZElq+F`TBMVP^cE5A(-fgU84iH`q9i^OqYHJnS|_ z_LxB`yUw>HEDmU(b+iJB$NTdcW91>q(D-lzNK!M-u^a&4|I>E z=(H!)ntJ0yP}+o)F4a;Hr$EYQO3efu;Df6@oyV;;z2o^^zFy8(+0Ao=%yAVil_$QV z!llY1((&*`7KAG6amDIAj}_|yWqfZ&C}pA~Gm_)Bu9_+C;;#g2*WZslwZ12wfAo`h zQWKv*W_oGjb=pDTprI09DGs!TDK;50=N-`_b#iS4n{5(_Ct9EXFki3dyG3@h`2?xw z=07-&RwiJ`(x&fg(;QWaG1OEv9UhjBuhV2br4)oWwu$dgybOryG2P&2OF>h~oK*0S zMUU?x+J{)BxvAHn#`U0HQ^e=%K3h$RHAwMlHC##M4FGC$EUm_I%7OZsl<*H^D5_o| zBN?hNIcu5h@hZ&ypa5DAr?d<4UtR+Tk!CWjV;1b1XXPMU8 zIPO(_YK^(Y*0H%i*SN)A7o&+aNFXWNbPZIZz$glCXRsDls+Ix*aW9UC_bp$HeRBcW ztmgOG!)8ZyU5!*b;AoXnG4~qU0mq@FWA1e8TD1Za z5efm8IirjYXX?1#9rM3?Xr(k;-u^gy_eWotORYiEa;{dAE!7|hE<*<)`k64*YBnvyF&bZ&GZmauhgr*Oe2Xa^rKhVzfRh*Tlp6ny zS}1;;wukXJBfY>qw7i6@Sa>PU*s}cNm!{0cFMT02wFHd|Zmr-}NT+N9LRW*pipI2@ zaml2Smu1BzndW0rZk)RqJvRS2&)3<<0{*jEZnN7JjCMn49X6PlK^TkjYIc!5lVhaI z&q@I$qx0V{l68gz6vuAInTn2gj>(Q1$J%-+XcmIg-V>LFl6hlnY@VvcZnWg$*JGK) z?>!a&TU&B*UF^n}AmysC4Wm(x0)y_TZ3jOmoofx<`(`tRbeoNlc}6QTR`YolS=IdU zCVyV-y20FF}HgO&c$qau8Urn+}m)6vDKX6^D&D3E;+hIL?_Vj#OU! zXaR@49;}9v4%5R_HMcfj)LIdB%NCB6QPy8XA*m6HFsQ&BcR|B142Yd$PKGm09vBGM zHO#%K0pY9FEmISpa3$EL*6t{d6A+e=+^DEy$`!|Y=1!!;<5rtSJ>A|)@q3+eF<;&< zb}JHOzmIqbB(1ChiKKLeG7>xil+`Dt1LZK~$z8X9NL-H5=-4L3EC(TAm*-MkJ#-t_4T7#yD?Kq8 zU-^sVdzGXB7UpX&$_?+D7^5f-#AUcu-Uk$7V`Z!p5`Hy@*f*~Th<)>_ABZL9K85OS z;}~9z1FNJkDxUCy(wA%A#vL~apk067V^~#2Y&Cz_mrXYfi5UVl^)|pEFpUoY1=+qCPF5+qt};BdJlV#*~iM z)2$@-&JiL!QP9c@m>I|17@fup)6y7g@ZJp{ts#~2%Ac_+$0{98@cRJl{fJ8tbDwZa z)=Cnx5(efo7Tu;4R7TxD#e|N!(j7r%TT_RqY@lo)xY*!X;K9gqQasZzb)eRxXPxnC z7^m zCI-u2%j-o#?}b(lHKU@Sx$^jAXcjM$z=Z>(#i1E8m&n}#zS&V0e8nzCz-7Zdt|l3n z(p-6=>eJZQn5_A4zZ1ax+wZg2HL~VcW*pEZXzH-jP9&`q0*1ppL?0{f+m?I9Z8!-~ zzLa|S3>cZ+FYo@IuOA5VVYF3Xm31Aq3alDRI(83JtlPE<%m_^gr#pCclw_Xyj zF%3+suf;t%jcT#uoOzz@7Mo(d+Yq8Xji+WHY(A`N$6Rm&DYj}@={P-II@oE8C(_2l zN0=~?4ICjGY$f9X5=1F+(@LwDjizd$zSiu=V^luJZ@>pgsP2T@Al4z__D%}zv{zR9 z8fsVqs%ws+b|nx(Um}XK>5{(0(|iMi`=9t0&0sEy%{qUES9qO2&S%@_ZNAQ6f>x{S zVYw>u+B-?H;}?IR zB!YhUarV9j%sV5iiREaXgCFp`c?w<$;uOqPln#%!r1sQ<_z_-9jG&JDZ#wsWCBox# z2Do#(po-d#hCLYcme-^$8+|$$3RWvmO@>wZB1z~V4PN*rW2wG^WGOm*ccd}j_I}VY zZnOvv&!4?!7Ea9i91Z;zQ)R2ujd)w5%GMp^66?`-30yS}%=%rbcp5cUoWO2=m))#3 zw-51V?G$|DR-6P8jS5EGK^C~W%bw=D=-@%{9Oyg@!DUpIsVx#y!=WACOV3Wn<7pDh z(paL>Sn=5B0^8Db=4ISgs7JCW8|HD1wGdw^BlS6rHMDxI&eWqnogQipnqK_1^5v|= zfSJ8RHX}51!qppkl+;-worp;E#JxBULK)ZK$)Ag8EtlP{^5OwU)XN4w2whxWs8qVR z>F{Xx_);wCkozKi>O9vteJo|P#|l^EEh{lhVDK6$L-l@G!Mq68+Is1W6FYJWcTDB%Q;%1xl~~g8c)H3Kf*Vh` zNNYF-!kLyUCc2_GTA?wlxif|fh3W(a!JG=pookjxD=O-AE$S*NuGK6}&3$7rwpP~B zl^`&tnMczy<^?BuOilzX<7S%<;C@SiA?4gHx7ker@Pnf*VO!rTn|xRd5>#nXOFVv> zE-pPR9W`GhU93wLUPto4@b_WM+V1Y}S{6)b%{+IcxTW<`s9i*1wpv6*IfuIZc9@20 zd^r;OMA}IPm!iNR)~J~jOu2Azky_k zuqwTksa2nv4!YANbAyz)gOQ9K-;;UzK<8GW@D*KSHp5i!f7x|}EemQl3&B!2y zY2`J%CV5alz#3u9Lo~^ltY2j5FoD%ZGT~xYk(h5z8S9q8JBb4)J z+=_4wwx0;Fe)Ur?8f@g`H_v*t3_4gRLkh7_4dXQJ4KuE0$}(NPb<3X~&)a{FG0#Pd z*8qSE$p5n2{4p=?2qcCfqafS0v1fVyo0AEZsHtqW@`!ZgoMw@);*L;{;5>?-GpRT; zW_;kN6ysKr41tHpU5Gty2~`QHl51BJs3hjTxx!kj+pkI#sC0yw?aTTU35|O(cGzO$ zsNKEvTI+EMm^fc$A2-GPF(-&t3K4tIcKAN+9U)@n5$TBdB1u&jEZ+DVd9&E(83N?s z9i9DK*5C@o;6SUz2|3Z5OgjtZYn9zaCEeVaVeB^6dy)x zxV1N?vRtA#Ewp2T!@pLt&{4Z^tHjnb#dQ#h4)(EffH`p}N+HVK_-CiK)uVt|#^l=8EQOmR4IG;Vw zi&nmUG76euc+o331XDe{CRUoqEJZWTN13fE!Ga6$mg6<9-Z7>8`5IUBuBr|Qd(`eF z7NPH(|4JBW=K-Hd*qdIqOj!5(aay4H)%J3?SQcBNvv;)FXl3Pw%|@%Cq~q`~ENjP{ zf)$cLX~(3AHIF80W{xjc)tV`(ttZ+Lf?`U*f}bnX`uRh{asv23_qi%D_X*NrTyw#L zwk8FfD`8+Ptn|@%7S0Tp`(wrpHwoeZy|8-Bi`&gM0}zcH6NTg}cw_GCz*_ONhlOd* z(>8X-tUfOtV22@XTWi%2vbqws9wasJ>WuKDAKRgIFoqOjgbY_Y5qQ08(7&+z{kjDA zUp?IK<1^p0MNm12)3ny^HB3F@QZ(^!zrcfHR0%As)bo6m?XtV)qR7{`a{@6ta&Av( zlPxdIrO4UJy}kOxbnJYQzHCZZO1J=069KOnOq}mXxu9io%C)zW5M2~pFcSi|yuLyJ z7XhOzEPw9H!V;hR6!-R4)IlWU94x21l$e= zuH_Z!fNrgP`(z}w6Qx@X(Qg$6nLMQCaE$9nPoNc0!m9{LrV_X`mxoh)&;So-)M-B) z3(=m-L*WD610_E735lo`9FEOVRWbo4%TW*&0sCsJvHcVY^K%72VCB7V~ws z*?!7bcQ`Pf4tuzJ{I5&WJO`~CMD2C`wM;|8AL%YOdOLvKpps z*te>p;2K!G!HUkowcz>+Q);PmIeS&3)Y4riE4~~lS!tUJtV$Tz{k{w{*lEI;Q{nHY zC#;h-Zoo;Ts3>8YM?bS{yLiYUwBn5Q!q*uXEI}==4vD;%>U|%Ng{~4PJv1GBr|V3n zN_F%n@`S=i8!AZZ$LYRqEQ`6Tr7ETjz<@GA+IomZ5BhZwTX)d!4q}P*Xr9rw)hawh zahlQcnUJ&CYmAt$!#NUz*ti3y*To7r5MPybcC%UEm+|L}+P^Y!fuD-zv z#mqVybr8(NSEJts)p87&(}8v~uHdi8i%XqFrb@)y3104rI`0q?_ckj|H38zLoCKe``?TEcqFrDK zhZp&J8?)Ed{C>V7s;MrXnE`p$!-|qX-P$7NbeJ>+TZ$(g!%rw!^TPzPULO=uWEEvO z;WTdJ#b7rW-A+(2LbOs^dy5wjz)Trwe0|P)Qcks>>wgje{qCPL_&`qpO)Nmq^guZX ztbRa?86dZIf{?$i{=YBpCglwSTXDom@MB(l&Q{s&YM%c^)K*l1{y%pbG+VtyaLaV;Cs zfrogK`PN~1+TVUP^AWE+I~ijA38Om+h_%k(N-O|i(bU5^m>1m*#I}?m&<4(uh8xmm z%L5n)eXe-xstT;vO>c=cXo{HQzOlUVTjfk?QyMwFXf<)pUZ?%!`Zh~jqTevJsQqp3(%b9ZIuWgLcq!y zR4h_wzO3_d{)I)d;J5`Rd-ql><~d}AcXyjh{12%q84RV%tJob%UnCD(2_+q+r%C%N zX^8taEt&I>V6u*S9a`qb7BV8IRWNvNEX+QmQ{LB$BEG}aVPF43;PC5TX76g$VXvGU zV=K@!F>WUh`#peD7O>m-}r*9m1$x%3QX)!_!<16hq+AKas4W^G^=NoBCKARhc^V?65SDGwqjHj^Um%a3Q@?6J}(9k^9*F3$Yi5mENf@? zAy0@+e1fZi6E1iQIdw|S>>&o!(m==8MX9m`%yKu+z8vRH4(nMD$5u7 z9iZdlF<(>KT89B9K;zdsh1O+Qhnc@Li7W|gVI!!q95_5G9TO+Ya2idB5we&%gw7;e z+g>zDW<@Yw5>>5%am|(HvR)MXT~p8ddv3+FtGupW(sy=`G}o#&lGpy zI6xCiC-YUl&hE3P&3^e>(3wLy4VD*b;H#ucD9J#Z4MS*lE}tE695(Q#_^+q9t_rc* zwRQ;)8K}ii^cLR7;Qd*D?W?L8To;F_1?XF?uo?%Jt7;P+?08vAE48~TZpTSn{$piY z5A(m4>nxAH+(d@kZ|hg%`q;xlc8Ay(wtZEjNeAs|60J%(j-s-MQ+cdK-(Rzjk2Hv- z@&FcOLjn&>Ie$)J=9o~8Upx_*Jt)u4-~%KkUyCvzCcY`B>WvRUX%iBFxDvu?W^8BC zOjIyy!(~oen(O^W8%Gk{RHS>i*c5BZEann>Ef{{M32=Em60f5g8EjRamkyXOvaHpM zfa7WOt_v}bjB3ndOmdZD4o=e1{{W|9C6kgnVb65YHf=VjqhYU`=MqcMC$d&Tz-n8C zn27*?rPONhWprPE``Q6?mlu$NXJ7D=(l3CmIEf4wV82IBHu3bg#yd*+=E`kXH9 zyMH%iCEx>{XTa3NHw9`q;Y+8C^eO?Vt3hD&unaR3)oA2J7iaQiIeR@WZx{J|mEA-U z#x5?|uE7f*R;b$xw(6sj(e?lO;eEU4vJIZ&`rgLG5^~{TOLEZ-hPG`a&@2RJtai9N zqJj5IYeOT{y6*aM{oQtz6J?p2;3>Bg_k;^rnM3UR?(_dY*e?} z)Th3mzUlZT(U}&ISBn8fUGnhM$=Z#%UF53I>0`tW-hrgxasVG`5a(=+It) zSdhLoZjS=Nie}-3k^;^U>Qc$@xDCg_?_z-aEnR)e0CnfZmTH=9ts9QihBYpmJ2JuRJszL0=@LE1e@6wf>*Gt7~rCNVb3F*1iKf-yeL79Vgj1c3g=!ce8J>2urjm zQUy{@DZhTZDcb~y9*`IiAfS|MH<3l5F+DhH^qf9N?p_hm0?PDM+jiuTNtrUwgbsTy zY6Z`p70m)NB)q-|Ie)+SZOEQ3or4HO?P9=CiJ}Ilg3XkNKPeNcjb?aIz6*EcB)SO| zlI~Y|uTStl$xXJn&r3MjQZ&4azE@|6uH-Ye_Kmv70DM;iiihuK+1-VgL0Z_>!uLZF zglr={PCrMaY%Akj0KUD1zXkw5A}LNO&D6AR_aeBBN;Cc0=+Mb%+w$$AEnW$MYEY;h ziC%kEtBE)HUADrtcvz6NF>Jx<;q}+r`D&RxqHXR;mGi+$T&Oj%&s5h6I(R?fUPS5Q z(NO$dtrhI2(2FqM(PwD_64=Q-yx!5^nR=aaVNyHJR;)28yvB1A z8d%U4pMA}FvuGA+Qu8vTSNQVR0S&^)3^X9F8yudm8TTctQsI*a~jQqSgZ{d+Y776SCTX!|scJ24MN$f6m|oy%)8CrEkys z+G`oM$K*;7^_rH?&~^`b=`t|WTWhAO6Vwz&+f4nu%;r09n^iK;|Gs$$Qokx|a31`P zC~nK?iD(JX_YkUVD;JB#*B6JaQ|bQf0bl!I(Q;v(p-~j&@D+QeK7HW zd)RAz7DcTx0doY@XyFQejKourF(R@NsZmb5kk+?hDRAI_sTp zmY{icXnKoZd>691dH2f$FXqWdsLYG)x>3q;SY(Gyw^+4;_I<*~1MQ`l;-URA?dPto5nAg}?o3kw z8BsoJl)YsG|AdAeyn~WapdL;$=i%MqT*K~-t6?e_J`e=%vk`ger5~2_Pzi$KJZLlH zsygYA-QSh5STp&5BhkyH%4K+laks-eKKxC-xw&0`4mdT!eUVtHOR6P(^oPrf+`d0t zi8{Y(u~Y1}a@c85r1KrxFFFcdP6SGT~UQ3(>^c#QHNWs(^{bEAGeXQ5u%(B3~tt z`Os+X=?ij^lelscyA`GFZZRx%TZ$(hmY-$on0p$pxrPT6HausrwObwIKo zc71}IyeJl{>mU+esGqxE`co^}`(izRxH`dRy!z9l(enFe*_nm%C8%nP1}TcCVw{d; zc=F?g@`2v0RVjz1Gf_6=BQY(bQxG9)(8;o_90fVuz-F-Fq;G%97N$Yqwwwgep4_9& z9+Ru&!^72W{@AHGdtu9ma=LqN&$jV?sDu>{@zdW6i3AcrlitG*b-+|$2~V&f=)sNjCY~1Rl^`>hf!iLm4;P1wkY5IIWJ28 zT34~A70TuDQ?`pWcZ>BZTh5a#xz7%@Xexc(Q}6yFRdYFIu~-~+j}6nq`+(w6_%amY zo(pX#zv#vUibmmc$xUi{!sw0~joPGMIuo=_!>KJN(5JEyqu)|2h$iK*w+$?a-c%X` z=@{B5xDp0645!(Q$y8ZWS1+F@AC_wv{#at+Rd z&JnZ4TF|O^DplQNpc6UteZKuq5X2 zm^tr{$>>leaSem_;Cvawh)_OSi|W8HAZcK8uo!LgN)VJ0nv^q!=03h9+TuPOZxswr z;VPRil1)|sV6Q@>aO1+%ax#X-)XKG^G4<7DI>}uz)yjYi&j3E^-F<(ZmBP^@8IGgs z05^&^`=7n0{Lh-C8(t6Qf7aenJ=9|m&M6Pr=OS?Qh^ac8agP(GN}7OzL-oI&UPFlv zF^WFoZX5@)l4osCblktz%a1gso_gCP%=YcJUQSeOW1;;GhSeZT(Zqx9^Avw@0cT%S zQ{mj96SwF~O{Z&}s~|dyb8;b6X4-ONj<~VYf;u72!@rt25B(XV1@aNmS5U$$Z>;c< zB0Kvq>Rn(yQ+kFk7*@1(fWWOdiN*qn*I(V!uGZOhLqqm>>>ny=>RJQ0wSTByJRXmy z%L$fT1vq9n$K;+o0Qzb!bmRmph7L-`Y7%lqstnu!KQhnu_R#Yezt}_yh7Sx>2!~P- zF`L}Q38ESXRSFA%ZrX~=bFhMOM~;UTOtl&|d2yXDk}XbBT-`K_?hHo*j?zNkXRaFo z;yhH~N<8ss{4A-!R?C3aB>aFBUMc!&S9JBX^r`1ksXzzVDZmsa*)a(TQnB~@!zRYp z@BaS3jf%ZzhG`-JZCk$G$iUwMpeSuppmmGZ;xsBmP(U3w;3R6|V>GtBDAvV4p+qjA zWK6EIyR4Xpr{Rt-)P=Zf`@HtSmpEN#y&6h1YX2}@9boNMfV0MY$_38n!vDK54r-Wm zC*RXxIBd9Wp40fftqAb%4LysVjNAihXe$YP5(`2|>jfimx*7*{HYemv!=ih)2kZNM z4R`lXe2QkU7|8Z|fQoCC-Q}}S5A((LCIQ@8EpBm&0Qsl2W(I7}0SoGb`#-T~0r9Vw z*<(^X+-9E_n;ZP^Kw;f_K`sK&wrcQp5yN&4D%ZvwFU z-J2mNIzmZkPq*k~J5&vWDvhh#1byDDJvO89>OFzFe}ozn zf4rT+2Zkzk0~u)Dkm%&_UI~I~9W#Mv z8OJ$aOA*RS8pm+RSBWPYlYg8h@0bfOX%R}U9sHU~`R?RngqCsA0!T3CL(ZE#^;UAT z_x2fJxcO|VK7qAwUjuhCjjKdK;j!{F^qV)bLDL5}*f?OeT-<(@j+j5qDnHr6(Rg|( zl-w_F5G6zUlc#`Q>Bq-|-m~QWLLEXk2yl!Ek4rSl5%#3p(~;ePN-~N&sp)ZIYf>*b z^T$fnH;27|e^8W%5(y1HFi@!)O2WV-v}zcn{ToAB>xxKk2fKLOl#^gPP|e$?!?Z>6 z;b9IxKU${p%nXMJf?7GN{nf55xDJ(o;&FVsd|_?_O$D?95<4>fC>7QqG;5(Sqfpub zh)b*7vD$US@@nMj$Df=<0CXt=N;p``nXs^_^f`sqEYVRI6;t>s+ur1WzWn9$KdYeW(R`AB>YctYqrF@-84G%$Y#F zawU(A)lubjQz!W4VC8iv3GK`4F0F@Z6jXJs@hByAW&Dm}5#w&0L|uJqllb#8n=kGb zMY2lf`QJAWMTjdgUM_JtyRo2tCN6O$lxQIT=~>DfYv%&<(LP0EbbNqSPc({-Ag;ZD z7k}EnXg9*EmA6N@Yrp-Q0P&{TX!t-7#Lw0_rkB1wdK;yL(ro_<(uzD$3W9X)&@+X` zbUYwcQ6GPH(-?m~6{J5sz~hqKXOB6Q=rlZ67UUu@T+UPL7IY~72G@=K#o~c>np9w} z8I7a@9wECEEA%~eF**UMf#@XT-jXC>c=cx1yQ91a@(Au-$O!J;Z;eNA{RpX%X=poB zcZ!dvVdbZ~LXOyn5VC}W-)m(fq$a{Xl4+CA>t%3A1GnTr$9C0wK5;%{TVz*{$yK(T z|CKM7$^3B>GTmsk3>N{~a`u8i8#|iOaEr~xbYJ3$$KvTWm2FAG;XwHZ9z!T^9KN28 z5Rh3a;f-5|Y&(2vn3GmJ*$BwwZ1d|wU5anYZLb<ijpoPud%OsYmRG-hy&ArS5KLCC7Y~!uB=Z{UXu(RZ zEt=V+8VU4vgcvDM?9Rx*h_RQcGj8YW*@%(vsiO7Ge*zf!=0CIdgYd@awQnu>+ex0M z5(HJN3Jrf!)D`YDXpFa-_5}ky?O6&n2zPU{e(1_KrpP!8Os!h9fM5k}&85L^TL%+E?otmY=MZ zvRUx(3%BGrP?h55emlw9+(6cr@w#T0Jrij==|lNZgySZzvxTT;DFz z>(wyouxw@wJrYw`__~F~{XHe1qc9X5;JQTMfDsT1PFM_(| zoCHz#R40qW`v@Ux<)ZP(I^D*p@PUIYj&w{Y6TM3HNP(3>4Qs5?f@B3)kvap#nH9~z z`r`21>L1hzS4n*gJ}^A62GSAZ8sDj#T8e`5VN+^%B+Ok6R_}{^yM0WS+2i_QO93qI z#PI+ud4!eElj{XM0L_xWbj z^8RGeI~oK*<-{Z^?vjJLD7ed=;l~Vu-v56~x)ppN2&`w;tO?{`U^Dq@7tp zL=z3iKTlU>*ZB}4V^xDzT`U!5de@rC<@roX~Y8&4_QdJZAG-8`;?{+Ii^zEE>^pNUgXz&7jU z!xkRI4Hsq=}JYG(>>#C)qm1YEd2p$*|_a3R48uBiML0Lr-G2xxW3n`g!-~RSw zT2)iewTV{MpJ_0ejTnn|&7{CzB{E_FtQTQgL}SIYoL;luC0Ok&4fzO%2neb^)fQHJr8FoO_L39M3n=cah%T? zUva7gV5w7@X;R>JCk@EFX1=*NJ*zUp*@{zo=_6`WFNKv_I2qF=C`Umx38bDWm0DMt zB-kvrd7w6heKv{7EJ~K*l`xWH>q4=vCCQ)pD7yl1=g$qd;jVJ`&`Ag zQO{?p0*-u z)pxH0!29m?fTUPD1u?yVPTkZ}6r@KP4&tOnb~Tg~l*+(3C<9OJfWIK3MRu2bEb@6? zEUs>okBiMs2!zM0?@~@#ECQcN-=z{tJp4XO9b9;1If=~pjv#lGNFjRa*mj*)P^pKf z*@n)z;Cb~<>SiNJ5}0fJu08Q!bYS?;DpRReCLRq9!KSth{NsY7c z_|XFnPNYo2KgV#Gtcsg>Uqc+NQR^Pjrf}MMFO~KY9pZfml;nYw*yQ8ZhMjU?PfeoC zJ(U1Ur9Iv7SEw-X6!y%1@8R%wL|RT&%H*#7v>mor#Ktck-SZyjsol(VmP@i$3(GU%5;?icV7t*2s{s z78G!j?WC39XY~V=9f`6ARiBk}0c|a=bgDFJZ#84(yI)$CnDBuhR`xeT8_377Vq29U z>fmW`XcDJ%gs4js%r_KK7B}EH-tSMXG>i3zyx1n2nUFe7= zyOUmVFOHgg_4Q!szR0iOaoy5D+9UII7e=SjbDyr*v!%1~UaQeWgYTQ^@?N=?A@pT7 z<=pJ-OM4p8>W04BL41O1ugG~=F7Y*=JJw9EA`kSNz<0O<{XhmHCbc@jZ#fD|9!s(r zcd28lJN)i;<4E!MTZ8o2H0-Fy4$A4eIQ&+liHG0msuAFc1+Cv=6uMfa)%$Rli&-Wp}Z9UI?d=y=@d3i$TsN|o~tzwSo(;Q{4TRzl_;nQS+N_FG+dl$ zU%1PD6-Vrje@@=W6r&tjNiB9DZ zC^2l!XB?gwR))tF0M0!?OwDHy_t-dkr>9A>1W@tY{avKCEU$S4Boe`g6|PHHipRt0 z_Dr=2cn1i%^QupA+7OeqHb+dEfl<|nr0DJlKfc%$~}S(LjDY_ zeA`y35?*;@g^!V|Du+PvKe^axzX^VLs)UZ5)R_|Qv+M5PCqW%O6^b|8 z{Qf3eEpj~h51M12v{o0v=yGcN>zAG+5>N>x9>Ax`NA)~}&?qy%V;^$YQ^DJH^3(!E zTbv)Kod-NXG*ikQp`(&T@Atn3Ao}}XhZJa`bI`UO&}Hta5&|X9BJE7O)Rw!Yaf7G0 z6UWgipgO1@i)?kZPVTa0UVO-CwC!#3v^(6E^AroW=bAjN#1fCU)3wnuUeJwK4s`^+ zXF8~gOiweW#r<6;(A6mvdfJA@OnK_PHfCQ8wwRatU)y4{{76-oqO&haVtZ`G=1GPpi?8)&oBq#)i|1R>?)vn;Zde{aSTBonT zd0M%!gBGh+b?-iHu|OPikKy9C6i+-DKT8<^CnarZVA1;nJ_ALO=}950D@=2AsdRWs zM#8i~lXiDh4dC~-sw}?`M&b(Op#5;`UL`96r7KZTonfYDT%?RO%p05z(zqcf(Z!(f z`$>-betp0GytoRCa1D*#tsBexbdCYMEAd2w_pj4s*=nZ(J_rKMoMBJ*sO#MYpAFo% zLYA!|dly{8!)GKvCN5jkk;N}I$qv8=g7|zkBZR=(w{2TM;jE>B_j(qkDq9Ysj?5D4 z9+ddChi7)R)-mj{aaYF6JWt@$A-nF~U0nn(%ZnU&5O*8||Hs|6ZMTga+g~|9fKJ~p zc=KE`nRq2}e3{9aH%O#SL=@>oN}3~o{i&v96A-IFph1v;yyoI%i(;X>xmCTZYVX>c zq=VpedtF1txa!%Yfo1V$x@KZ1MSB~+up)B_EVU68_xW)gQ96U=7g*mxMngO=SS28!%zy_$8=6+{-~B0yW+ z!Bf(^jn79b3s!^|X5Dk{w`*%#o%@;|<%0L(%?z8|n3x+u}LQv(5$I6Ps zg`#wi*I<#gF~$@k16uEH7? z;Jm|UWvE(JKN3L4@`*AWpIng4SgB-EKS7hG;2HY~@C`_4C+Nk8R-?c&P~&nPSg@WN zVfg-==XXPb35X|h9Q|Bvq4UpTxqQsFurHep(c;x@NiM+!)V8u;k*fP+(y47FrgUhY zE=MaZQK%ZTr2s&N;m%vQ_M@DD;Y?`hxlZ8({zh>Ee>)E+(9Kc+X9W7lzcd>PNSBMi zgt4@tKs-{@yZ_IMhjNxJ=djzi1jb&dw7*~S0dmvYw@(Ma%Lok&-DYJ8!ZgZs2pJvd zMr+P(ccdw&+ygkIuaL*6BSNkR9aZrUUwt4D^3{j@LxYg(iL+N?56;|YRSyHpU%AdT zXUZQjz-m##isx|>lmONXP%P&++j$8HyI!pyCRfR-ZRDjZS@mGjQTsBCY+pt}J5IC} zco&C(;Aa^VVT6?|Eus^av&39j&@7g@G~A>cLHQllTh)}dzB@;66|wf+*@Qmku=OY~ z=~(Hbx13N1ZLgFdLOgBbU<=UR)j9l0_Gh_WfBe{n7`O;@R#!c-+p4|nLH*s5vGL#2 zWLqsK)CDDH-Z1UqqcMJ=S4 z8eq*=iuK#_Zk`bW)pineX4?|dPRu%66tj=zd^y8Gwz3)*xr?Q`MYF%QffwJo@Y3KJ`8sW*zrNar^ymTi4f{ zGzOdM>x22Jk{fbPTzwYA;T7HGTIR~tU00qAIk)rMVinipzQl}G<53*PoxPpZ^|wp> zb#Ys4W<)I>fAou7>Z@BrLTXEIRq}bL%YN<6lR@_FG}%t)6;Yt~n#HCDNLPd%<%H=@ zm)CgX@D?V>uyj-}m9AOF_099L&kji`jlduOmBR~2h&^$Ep4fx4HZ#?OKz*uZzQbJI zT%Mm5n?K7HU7wFF`|&tV18Bbw=$H4|)%v!iI`Z4D1d6+7=-jXE-zlr|%@5gNc)gD% z9gHs{*g7zopoAa{40sfh)6v=wKB^<6WtCz~tsiRd9r^l!8k+yig4{#NSgDTTAAowaOCiSVBifbYYGF>0i4V2>!LfK=8yF zFTMxo)>NrRfpN6l~+3fz~N5U0mFlp>lP__G=I%RH~ zAdOv*B^`LD>%WETtw#0v$Z*4tBq;_mZS4!YB1&1s@l0HBRYM+Q4g6|`-G5?!F$e6! zo|ee}c{aZoY7@HSZXZ8_dK9RX3eUw?cjN~@zEuG*Qx%vae*$nG=H%-RZy1kL$GhNldcCvgHK7s?a zCG@PSDI2S5#u4rR&PK&%6P;rkk@%gEy@*EPK!ryS}gBw^r~3RHd*;ltgZow$sVw0&wde7p}Hx3>uHA% zLYu!--ZdRoUnX~}lt588s3-eT2mg-Ieb&Q|Ne-}z&lN=RK*;!DJp~mF@l;0k?t0y$HKd-I+w{ z_IR#Zdy{lfoi1OiwIkZVVzW;a-?Y)FV~h%ck_8KC7ooA@0XdZy_Ly@wTK9TODG0p% zaHhH!vG`rFvzK>wJqVOBkWoM0`3~a<@xV=wA6S()>t#`9SNF4`*)HJ16|dT+oT1`X zf4_7Doi6d};m(ZT_?6!E^*A=hfmXwmfMf+1t@esZ9+W-SG;m-Qa4he9-B9Z~*`zgl%>r?(f@3uuoO~iNcl}zAq<(5~A@`~3ns>*< zqMaLHt7@cncRrQjNiTeCub23Ic+p9r{$g%RGttzh1oAPN0`E29!M*GKA4s1nt$ z)KKfMZyS}UPL@YfYu}yagk2Y~MA{`y57gtpP?6hQMC-){-M)Cl#si6%+6f%K&8IS( zt*$?q&DMEJR5GFD08b!wnN zss3eiEu?VDqkW@3-n50$-Zlg1Nrm`_E1MJhaRgES@ADy~_M4lk#eq)xhkWOPcsP#w zc{9Jed(4)_sG zpAO5@Q~?NzD*phgS-Y#73N=vmr*GpZECzt8CHnOphv=b%# zK;rIc8%L>4NNCva+!rLcPWJ8CkLPh(y-QD5{wsL-C%E$y7yfg0@xw_f zSDo6K_S;9|?|Itz>#-z*@rTRwjt=eQ$8piXT@N9oLeZgUlmx2^%y}t{#J&8YpGPn@ zdRaFD^?_b2DeLz%}x@YARIB7MoHR(%GJK4)kxBw zdNvi?g05xzUfTSX2nbJ9VVKdK#-m{057-4bh2!CF+jomXihH-t9?HAB^@d1uTdl`M zsNU-Kr6#!@pRUnu^;;!IUU}__V8D<4Qt|CJPt?O~1eO4xiQ>JA_M&R>&4G;I1_zBBl zEjH^_aeue{%c{7Y=bz@c<*Lkt{LAOfI#zWKI#=Orjw3OCwkjR`t=bJ)by}tbIPa~( zUE5s}&YSq+#7Ass|Juisj_H>nk%#6jjK_7lg|~2H7126{xq&dfw@aZ9o>`PJb+=O!^&U^!Kuqt$N(T7fCMs$Gi7krYQtdvu(X(Kv5wX6_8PQY< zo|CdPw9Eni0D3j&-c!zK`a(_m>hoKiTx9i7DzgOW}e=~aTvOf7~(B3k9#N1Z08 z_(5MrG0U!&>+72cc8IJ29Kvap2AAv2e3fk%oAP14!7&+q@{4p~R5zw?7Y6k>6fs?U z?{sjzjI=>-aMg-veH)yV?wK41xOq!0h`9;wnUU5h-AqZp!bZrN+TLEBQ7*9~C4F>s zA|W|$B&B&Sd~Q7RT67_$@r*bg#Bl&Dmhx`rn@{sHy8}pETra2`x9ziEgtVyc)^Hqj z+l;mrO*-gahKBBK(ak*}Q|lZPaD|J_PDYOrc5Ng)ZBSmJ-Zw%AriJ%_IE}db>%Xy# z_E##S{WXUdoC|k}JxJ*>wt`y$*{n?ws;$L=5ffVHDlWG;5it=>8sgC$2Mo8(bFVh@ zKey55d%Gz99FlwJY}nA5d)RO2sJMqpSm{VT%?@R!11{~gbE48r!ROP+aW-v4Pir0= zp->aK2NPs7d;A+(5TwS6e|ek#c0TqP-+%<;a21S)?9+*q1i2aoS_Txc*si_q-L?^q z>wjG=J-%5M_uFh%?s~x%*~euuo8wS?#vYCCt#Gydx^SOHEtF)~{rzS3B0Iu+R|HsJ z%Y|3RtcM zln%=;vLQNJY@w(fMOh7`R@^W*PS93?85gJ8EZTbE71I#CJk}EZ0|wenGb=xw4YY|p zNMJzv_^H*Rz|@5_Tw~!*BTe7w>=@r9QtT>2@=cnuT>){tc5AhbOvUX}&1u(SNr&ud zQqqA^{EagSJC_`|@eb6_+>?@4lBp1Avo$ym&IEBxH2obmirs|C?;1w2Pm9UK9;DO` z`_R(0Ft9c_C8JMl(7q=v9Wb5Xi)7HKza;=!u_>~7_TM?c@TYDOfw*B+?zcGR={EYRSaJuj;cz~8; zDsia1`;U}O(2pO^BkxWueAhak)mm!9_d_sU<~?dLV2rWmxsH>4fmU{pM{BZp`c)Yt z+kW1Zt54LR$Hf{ds_WktLp$ic*S>u^U{2UTEjVI)BXD>P{3Ky|p!T$$qj6d?V}v$@ z@O#kF{R_V0i10gV_j@oew;!atklio38wo<1y&8%uL7+15aKnSYt2RVDO;l~?x5X+h z#(jy+#>GQ89!VjT2zb)TjM@`NynUZN>xH=1{a%o$*>W0=e4YlO`2CxwW9l@?RY{G* zNh6ssu^XQW?T10so&#};0hW@Elp)fAK}9i%MnFY1fPSDF%YJy#|-4^ab zu)W{#)D$=MF=>pi#FUQl(j^H8=tZE} z?%U^mVBfy_?Z3{F?Gj7hS@5h+u3L-Yu+s}Jh&qo%g`+yX4zXDu4zi72AO3n-Jl?HW zSpi$P*;1yTwFkcxg;3j*&NVUW8K|zU+MA^V=ZlmER#xK4v5YkmxKA*l-7t{aS632p zV{L^dJdM0&)=J@ys5>0sXZ*va8REAMeYC^LN}`*QkR`5^6VSN2cYSMZU6m(m@0|?Jf4s<+TDX=9q7)~XXF@18 zl<-d9$ukuRUT+2N3@W%`K03}dgY#=lnX*aq_x0J7DbWq+ob~qcU#>)ONLaYoMX7cp z#9gKvkcqS18GKRje79KN7TatyFYhRLZnaVuAttIDn@UV{d^(DcsD+Y_+|$%@(AE%M zpw=>B;2IdE3;jS{61~_66Wc_M^4wz396yiN1Z$3Xfuefs?|vh&`Q2}gdh91-BdEns z7(VM|WLJ*^Qz`^P3CAfGoDA?F2|Z>_xouOA z*>Fv}#C{}*;`DM?u7!b$;^^f4Y#~7Uc?~9pV`r56O!PuHVf+FXn)roAR0( z6RSVtMN-o0;`e0_4j-gJvS$CT=@>fA7To}835uU4jtoR2Oy)+a$g5fK-Z*09VdtLi zm6@!e8@>SvOs(`@2Y@)AkbYK!z?fS2$5`fdCvE^!K7eC5j+_)7c=+#nvC3xIdRaac zTO2<}EyY{gso^gBt&|UHp(Mj?aUPm>h?F%rMO^qjeA0GpmT=V@s8rSqaRswd>OhEq zIn7)&XFJwwi{`71%8d<}d$RjJvG(1YZH=?pB0z%005^zSif#O zU*k?kZ;P94d7EwTH^t+exX5250j;iY=ezsyOtbdw)1mK0_SV`!ctgbbAm`y<&V(4K zx3(85?)=sdiAJel%D^%~E>m`0?L4RtjPz`c}r#50BlL!e*s!_Z6dLV~s zsfF8IZX9z#w6lxf6o7!s&x`EptB?xi8XwQ-I0{(L7N;HTetcZd)|>1RKKhID2KEd` z-jtO}Kx@Q{xOr=^nIT3G2wKV4o{gh24J{Hw&Nk7kGiCAqyvC9E)7 z5ISCfJkD|-dvF^8{Tb+g7{`Mkrto$WC9o0ZBhoNkb}7EL<(PLt7vtO{pzy^o(Y8H*nS4f6JF z^%7BYL3+XsGb;ZnZp5)6wUhD-rv+Yo3lb7&FHIEwI`@M4uVIF94sFj6pky_|o_wl|yd^ZI&mQ{bT8VRaIa zd%oGMH|e-t+t5_pPI^MRhpZA%I(VOll^%kt@LW)0xSYk3%vXu3QF0ZQIV&~Q1OcB$ zNTVS3V;&HgFV8=o3z2{O>VN!_zdM^R548u~ljdNpvd(IeB7#$k0xit(Tp8w!Jdu6; zPD&RJ=D1ml9UkAT$#&e+c*UQg?Du{5`a$wZz2a+Or33S2ywrMITpCHG&9I=5S19-> ziV=26D9==cYHd2o}qCSVKvvg zQ#KBY0z=o?dbP?vX7h4O5)`|qLO~NAuN(i6<=+6BT&ts=yu<|D9F!&-x7qrp% zSg*E_ufzd+Cfq>N4?Q#2_=tk6vUv~BE4@-jxP=in@Df{);$GHAV7C^=Ay(?#gj|bA zJ~Z>aE%McP8mG%G+!mYb>=WSPytr@A1`n3Q!jURh9k95%k*DN?lTz1OFv*yGJxwWH zsTIyAXvI8S*dYNNU)mand7W^ED89wC)oO2#wXvai{Qh^U>*4oCJU&(0imiM1K?*H{ z4%W$#kg@I~zz|rd95PzZ+p3Di12*2Q^{%+Ne=M@~s@yJ097r!drCVF{?wM=1Dc$;; zrK91C?E5v6XjhO55*N7PNgiS)v{PLR?Wt&rCZzPfqB}tnQlF%bZnm{ zNh^gVhBi!W&4)uBd$z{eZU4qoI;)43j>_lZ zj0fpyupUR|*!LL?w1Z$$j*=PHo(UV729GN~#^9aR?uf`a%0#?=LtyjkH)mvqsXgeL zRQDM*uE#+5`p77h<4@Vq0LOAX9Sv<$=goSyUVdC>tNEtP9^flRh1dyoyXxltKX=!* zT!etQ8U;2%lN;ZQYL&h?p-s2Qo99J(?DO3s*(KR(HN~NB z<-KW3Lq`mCt6U}?Sm$Z5Yh++*8|M^Gpn#`_`;2pf*l7sk+OW`YOG*sm)|qCHvq?f{ zaP7PE6TPzFY8aT5%onmHv8=7Vu0L+m;2ti4w9{`xLB1`h*Qx0Ev$i|!Z(^;o` z+Kj=Ac9o08W9ED<9JJ*ofSdliIroYpH9-NcR77&6wBn(0K8^`tFDV&bzd>O0&AR|> zzIm6z2S$KRbm=4Xw|z+6N)#A%z@68vyK)P0wp-VdO*mlFAp=kWZuWV3pRAJ)1)vCy zif~^y!NT$)cgMm?)Zy3h(k0>%@I?x51-z`G;KzERx~Hgp3G8nM&WqQN$Qk=&;<2JZ#q=ICR>q#;Aimh9uY!e;n}0J7HX$p;0Cy`@S~YJ`0f7?w65_9C!!&R4~&G?fjx*I5c-Ujs6>Gg2!f`{ z5tST z;?0c}=uF@yzN2X-@Re;H&@JdLTj=8%S&jj-@a5ba`f+aCrOzeHSB&)Vr*Rs37^@r?fb?A<|x1}K}`*d3xq8ds()Xvv`SK5I8E;I11PdQ=SkSX>yNb42VR0N89 z4iMKF_~Q$cg5LhwG1-L=1QGXoS_*vaN3}+;#DI!(1>`A2+VdW@S_*5Yj#Hxr?j&a5*>Ox*CYpf2uJc=($=a5o4!=mjuvH9iH1--%$W@s)l4ov`Vzi_0iiMv6*K}_| zXZWRIKd4vP&!Jx9pWlt>RTkQV2sv6GlbdQ7^=#UtLZm+17Oo3U2VBbFK+YncMv3IV z7EcfNd2yewm-ox(P4e(m6xqXF$oIGHBHbjDE^q5_2;SCJvJy=^h|kv&!U-)NcDJg@eBA9wLOg%1o4 zqM^0#Y#m|wv40TW2)bivHHbPHVN<2OQizr3S|Y|e{)EjUe{Jm-0ih(>eYW1?_^8zO;?nivp?97#V&MX#h?!G_`woBS3n~M7pWl@ZOPmNo2*E@^NNg=JigB-E zYs6R7>7n+;)8B4%dbqpa1Ru$5@z4WsLmSfBNR3G&t~4J0H@phRlcyCrxkMhsXj>~2vk_sJr=|G3Oo_d%j|kdENqEp3%uie(J0 z)DT<=B^q{@^VIAzs$5_oJiH4!cpD^4Ow@b9zwisA1wOdaiwxi;qZ{(Q*lqGv zzjD_by8h!D-;`rOvr~}@2e03>hgkQBwEh%M18UpW$R3Mqe-!NQ58LN#bA82bGXnQ* zdn@nVa7wSXTHRA9@%TH>X=&2vz_c_+7`z<{cu3ShO%uJq*AW3H)cZbS;LAAmvOT3Q zl+$n}Zb+Q)^Xo<>?$s1t_|iw1_V!UHRHDH8jhRh-sZG1~RIER3(|}o&9QfV@v0uR6 ztePzzC%~ZknU z$0C1D{;u|qTIcWV4|dv|accaf>qVpMr+G4_mYTqvUO#-y!nuSbV0!SWDKW-CiiN|c zv;_W8nG1X=`o7-8myYtjjxPMjlg&#pU^OYGQ~x)VY>%G)piSdty=@BmO&E2Ttnc7J zt_Fk5Yt)}kJ2C=fR<9Qine%m>1@OUTr^>?jZTpqz8fpYiuXlIhM=Wp^XdEz>P{>Q+ z_1!cg=T%2aUJE%xYv0-8TR3I46oy5-yjO!jXWuwKH;UOBc!oMz{b8HV8$8N<-7V z1AIIt4@Lgq|D6V~ylyLN6w`UygIKt1Kb*I6wRo_cr-oEo9T;`)Rf5(LKY3LQWY67K zLaGV3%<9lM8c77zei}ftLpNR(YLMtRWtjs?Nb&uMQAG8b?pTcja{}NdRg4JkY9i8o zzRos&MV^+JnAD%eX{4ao8+x|eu2$QG2^>1{Tf7y7R<{)BvmgALZyp*a*bIi+*I^pU zn>rEfE(H{i-Sd>E8X*}9&Q1_Xj3RCzx0ilCv62$w6l8K}vC9a;DCLZ~W^8`_rXytw z9~cRnvE}bx@N!xUZM0+&a)DC>bzqjM6u#JD%GvVQJNx^W^EuUUNCW1u{sc}pQ{HR~ zcoR&gZ~P|8f$~npqHX8<3n6VKn0Ta}C+%yvz*Sk^D8npPIRFU4ECk1(}cx@bIV&Xd|@BIIR7ecKFS-h_@$ z(A>zUnqzgz6lqHf8E)*H6C7>?{%VFD;p?Ft-HNVqf^L zaGs_5<28*m6$R0T^3+Xe(DK5z%{kA?O>OY5bdh+xyA8cLun2%t7npR#weOh#)bX|U z2?C-d(hA`MidT4!2#5DrccDAr_g@h}{QZ{zApZVK3Lgjp;vl?dXd}AgV=F~~6^2s` zA**rJG18@id8H$K>4cHHdvzyNPt|cc&r5uY?tk_~THs zLl6tX3Y=I_hA^#;>K>*Cg7v=kg1#lm8fS4kY(_0nT5#o>k-cWmg66*^5dnN4i0s#; z7DAiQ-FUz#_y-&}I--4{8U-dM5H9sox@ccNSAQC(!!EShY#X8LDsSVBiHAxk(XhOpFW)N^#m5wQWt4vo1%+QH=sGCjd#RIDDZCrPdjF>j zC9_&meKFJiWq9f#wC>{~aW#s7-qsf`%esOZ$ims04#;9Nw~FnDyf`GgtO)vK-6V-E zFK=fO;xg)0{`q*+dyzA-Adkb@Sj&&ba$fyA3>yBm-1P)RNNOCl6bHoPfKz64Ov7!g zt;=E^3dzDc%s zi*1I3YO6K5mF%Fhjj{P@$2$z$Yn4KYN9uX%V5L+6Lu^UBe-8Y|htk3Jq6;{&ib|_B zDuM+h1`w9&k`iH}23zRTcc*^)WT%xNFwrYBDWyb-OSLh7!lqFh!}_?|*tp)TP*z#x zp$cWyi^SvKi!^W5I#eiA?CaQNNcp521|R$O2{^)i%aO$gwpa?us-^Z4ME;6dxc+uN z)%Dxo{_R!z>n#QhhW4YYaI24+pc(@@iJPWU5aT*K!}xPJi(IuW&6=(9$9=v`9-cmA zMIM+uFr=kSN4B86cR?f`$WEqu@o0qJyi7j>YH%)rD+(zhVFqAsAb{@6CUBw{BseBC z)J2eEMeIV~?1b5bz#eo~)As31sKkKr3Cj2(ACBpse1boTv%qNF&mh|*9}D>3cDYaP zR(bJx8|eHRidg7tLsQ<#n^Ov9L~e|bM1VB>qx6|sAHdskwpBewDNWJU=!rrGY` zJ}bT~H_d(r{xr@4wA&`uyX=ziol~?&fbWO~0Mi6?4NPg`d_SwcfS8!=?VFzh zi23HHQHCxAmVRXWu5u8l=$6A{1!;zAJ9EJwwOJ&tWwzn?ivPoIk*$-%QwThVn8DB$ zN6Q-$S$OL(fT41=Xh_}8bHJD3QlprulppFj1@Rlpk0vi*GNcaox z!jLc2EWBy_!gyxkfi39F-}V{IU5TL%oiGVLRcwEN zXZ3OWCCCR1(kph28R4hxipAb5^@&wNi3i?sxYj{{mpMEWW=0dKU}3EPZ=$I%S5jDo zSH_s|4g$u}3%(4mvC3GJ!Q$)DDr2EN=*}a+<}*K##zgS0)hICZ6(&`ZI36StzW=73 zDY*9u^9OS}NZi_qFHhF|Jqd;7l_-}^4a_r6Qv z10%t8XcHm|WxXW9l`zim+P$MRJ^mz=(k|*VBwO~!aT?S`d2qvb@0+~HR`C@a`Z6!rNY8ONpTXB7r^( z$moO-OzN22_wZPJMPl|gr3|FG4fh?pcjHSwha49MNI-_cTp6bFG zn+A$r%5uNiD|~HWTP#=Wya?Fi{(Y!-?or;vKOyK9>B%wW#VzMPTI}^7r8U| zz+G(#GmLOQIgy&_A>*-EN^y9-#N8ad@Qx};FBH)J^^cB1E%?CT$QWAtuC=p1s)K3_ zbztNvb18L%8_`yF;LqAT0J5amdQMipr6K#A;{Z8?;-Di=mbYSH!NK{};^DGRwGIK7 zLr|^OvA~RSFKN_-D=*lYVlv4A5}hyK1PpK)G1>_!B8Gp}yc18RisMYO39NmLxV29@ zS&gF(n=<7(?tTB>kaKl5c>NTNC8@Wwhp>|>rwV={n!juYvGwU^qjCaLQWt$l>`mZE|S ztCWby7^`8_p^v4ErqX!vf7^`FAGc{_jA-BMcCkrT+o#RLP`M%E=h`thEHC=-xnbpM z(b)L^<4}x4J*75IuimIP5p7D=! zjq10*{m1L{&k=aWz|wbpnQk=;A*kUm$54kxl?stkMYvOeQcmq%8V=fYQbY_L0Ux%9 zg@1j1-0q4tMuRtbc`h$~cYqAUAHv7V#p3btHdN!#c3IX2CL1#EgiE|6p6P*@$ewO2 zf_t^Ta5OM$3zmU1tEi2bwKWYlme3}QYkOUdqFxf$zQoB5QJS_Bkbe0Ji(b5f+PuP< zoL!^THvlg3SP`3nGu9k*3r?@Bs(A04?;{4gbCX87&s>V>ybZM$|$|Mo2 z&j8w^Xvs}wZer_d((-PR<*Q_u`1vr!emnAXnEuIfdH04u1?}jo|Hd#lq#gbFT?!uvV(=iAvVnbwU}W1k zt-xciEjog+5(kFHl%W3{pWS&|LFszAStg9* z@Z0(RZv@4stqVeN>>R}lw;9IdQcTg9T+CBpDodbNm6*blK{=6{n1SqD`kQ@gVJWZChG+*KZ_*r-@k!&AII#K}H^=sH-7?RG7xe<3)#NT)XT|-0xVyF`w~ZwGD;s`CZQUSC=@D-r?WCoo)a`0hx2*C zCS3LP+vU2ObaVTh+#d3L86YV{Y{Qirb;lSEp71ulXt<+ST2(wm&$ApXO~^k%Qet_* z1Y&$7HdxQ37hvIs28rD7o@F>V0SS$`a-Ljy)9 z#a@!%r{pHRUxsA6r|T+n60leh9!O&LbT#n^Jl~oyb4KD2%)RfEALJr#lA7Oe{dI=g zkmh$$6?T?c8!>--W}k5MRk$Dn4Ua%~)&r-KGU}vO5dd6X1SaU>d(@8DviW!{{1#_% zI{4d~h?eEIhx|Fov%B4XyU7wULs%{c^7^n`Sxr1FU#AW{@?;0MBETA^ykIB6zH!0E zf$YAM9fC;CEqu{&pIyd@Fv>YrkJ;~j?#PXR4_qo~4g?{BtJX_6p|T8gL=JAA-b+Z- z<93PB@4vvvREIy0vzY2=i|5aWe3`(hcs{HiLM)1QTXm(*-Z8X8B6;2G)lBFe*AkE8 z^DI6qVFUdQ>oO&lEW>Cr7TC)!df<&hQr^1prtX$ZasjOMDom-pth#EfR!rO^)f zKoF#dnqCfUeFVdz4_~da3bb=)7YdFeH7CX9Gj1>(v1yc%(PBk`q>t(PdH0aj6^*Y` z4lZwV5Gd=#99p&Cjt_}O!2LW)yqX1sxf%RS5cH+pLPttfd*!K&XyL4oc%JHW5+)0Z zZ!H9(#ofBein`+NVEQ(Jy^qLH`{G@x)E>V&&tEPETx5Pne;{wLrj2YsT zgCA-Ur0OJhN5uk;f0fhoFk$2ymby}DQVxkx<8ZC0Lx0g_(ehc6Rc;M zJ|_2hcJKd|xm~@>k-GNPyRw#e?ENN7sLU{2SIl>t6vEGwC--;b-I{%xSnUFR2x@A1JjyFFZeY@JeJB! zFgR`$2FKPDOElndEgZkcWFF6~$d4Z7i}#naTEzE1B1N{!Iwz!ZF;<*Qw-=oKQO!Fe>L<5DR-o2_H#ovhU!UB2F+s=>Uri?&jK?FQr}WTx44yAtS1TJTDodi_&dMaQ zVjQIHRkzT-UhHH*s*Eu~C=<4ctc&`Ko&DkQ|6S`ZHjY#o9*2mGxs^gX*8sz~R#|x= zC;`kYlp%)Mb{Y!T1-A}*Q@Qvkcfjnp%>)vo@_uo=&rJl%T2P%v-@m~gKo_3 z3o*920k|JV zcGgm*8Z_Bwp=uV2M?|LFYxb?O40I^jECT7V#Uv3_7C`MoMYFJy2L+?~L@Jcl!#K&jH1L}3^#v@lHl+g~w+hUwaiSdfc zeZ|!sf$O!Pf!Si`yiT)ZO+MvkE|T9h6qdiQVc-rt+J;3S-b1K6ww4xfZhYYuzS<`V zTv!HCd+-Nw78ME%jh~aveX>qIC4pMR#bqBldR~-+*{_y7jOs&mLD7)?ah{Z5saYTg z=DxiniVLfmB=^GWZ7J$ZK-d?)g+@6ZAwv1~*8n8H{q>TBxIh3d&WEe4;~bnJ-H{9G zXNnr=aIF*{;5ber5pJqe6kfjnz0S6q%_YjiPz7wM00^xZ({`>nJFnvNFDc^8eM2X^hvr z3&f)apSQcekgU0%8bo;!7&lIEPh(Pu=;TwL?f1{gI(^q&+kmT8EXrZ(Td}Blt1#KE^!Rwtoo5x8y8u@L@=NdeT}0`G?@*Zl^?#t*b^lc_U~&7z(bA1;X5B8w9}&?QC-O%? z*)&pHtg3Lg-K6WgYkbO8~ zl{H{w1`6LCOO$ivS>dMycYB9JHk~xH431yOypJh-_K-YoAM!xa_4smEWEdPby)82C zw(G+lzHdA91;V6((vzZ5@zXpDrd$M?Sa7c;UNDOlcd>~&xx%fJ@>!r-28T^z2%;Ri| z6kK0#p$rl*l)(irPpov@$rw$WNGu*q(~DPQi+c(neU%?o6AS$>}_lfTpT^L8Hu*{?5r#l-a(i0)T<>;-B@#*R;l2g+|! zgTZNmYlCqGUm%~vz@?h0kqBCS8&A|@DL2NTj+90bX{~5v!=h|}I)YXm8(_S~Qz#%8 zEdiXY;+z*yXhsV~EYf-k+5GxLI9p;?{*a|`hrYXOut6Kv>Nld}Uye-QZc}T!-|AE2 z!FRs3R4p{#X!5i4%o+GP`4c%(<)A0La^oOb4GiT9xaq8jgCpg;^e(hZ0^(qPL041#d%Kv>;7hVZ$v zplE#l>)X^*P$B5Hnpj`x^QLiAEHVgUER)XK5OQlLloAb%urqr~|A)VZgmZs=zxe3_ z+To$S?@GYxB~4aY!#PZw!a&;*!F70Y;VcVQ2oTRD3%*Hn_$N)^Z@3Q`qMdHQHJAjI z(8MwcuvZA-Yvp_PaBL;v}HuTNj zVSIvGpPU*#!N3Dxcnl)CW=d#lsAD|Fh@rd+l+6k$iXhTdHOS%Coqx>o(!ZVywPKAk zekzKNEkY{{((JLTpdHefz z+|J%2EY4VZXf%L6&y%KWDaCaS3f{VeUjk0)NMp1;du`MS9a3g=oG2-scC5bFh6>=; zQ5ot4a0hdH4D5Z3q=9BsGe~E3Oqrpw4y?|=oELFo)&!E-Q?T^MZC>oKbhUg~uC@up z_+fb$@ItG+^DuRSuC9>fSVXYH@D~Ud0ZI>xhs=30X{9-*!%9c|6Yy{l~rH@T|z7bgn{w4~aQ!O>E;M*N z5H$@6rNh+)3NjG)He?OJiLn9dCbxdPfVx0%^DioEb+QVqp6SUnfLKl(;q$D5$r0DE z$+nTcs%@{=*(TZEK5SDQDu)5bh(WFLrgsL&HucKVUmuN#e_y6vISL{w9+nn>jbTcY zX)3XLDG(9PB&medqS;Mm&g=g9Yaj!(u)NsRDL50LJSG#A?ol_g;XuN}u^ zLEx8asEMKzu|I@-6o2@=b|Q8#c|d&MyJo1pykIJ8z(ld7S$L~2$|_9NGgX0kjJpB? zWjEXHs={~rbNjGK?(@TD_aR%~;Q$P;e64h~5`(tsYFQBLu@N+@kBA4&nF^;$f%B8# z@@BM0m(l3_ed$T?<**Plj#EY%aa1|kG!*sfr;hh`_&^XFN24d3l1q zLIXG`lC3V0zf7G`~s<)ZT^^UlKn$^pXPz|b3|Xl&fNNA zDEdNbS5Lyqv!j8P&XWj=>sJdnl1ddxi5m$}`;VL|t(6K%SSzBqWUNVZ<)4^CcO8fR zpEVBM!`4&-G3d^0>cg9_ECLk?bY1{n=@1jNjYzAa;=j%%t|y(a7MJ@E>CG}U!ym8C z3cE3K_Iiw2Y+ZFAW!B14;*ocrd{WD8!0wf@!bI75_Vq}G)4W{1i5g%M6o4V%_*!(d zyq;i#py0bV82Y{qq3_!TeBeUp8w$c@MFcC0z?xbNzCRQo+H^5~^(9l1pI2M`iJTV< zr|X+6-zU5DwjAqjcCTM{znz+Df7j40gAW8DcPJ)7Xzx2G z!NMu4r7$ca39c>z6VeuR0g&vs!l+fd$pejI4L%WirV3gF$Dg>*FNJfHy- ztZtYE_yy~G)s<;~sp)$SOnnVSAwq!4Fymk^n2nKIt*+xdE!7LiFa#q;o#JHey)k{f zgB%8q!5PZ{&gH~Y)7yu9x!Y%X^5Jm5&UWeMz6Lk)N<&?s}LaX7)n(u3yKHj z`HHn_#&G=j)w$o#FKuj_!GEM-7$A!{VWHzSUJx>Tg!s zUhsYKhRI|s3RkZ@))7jnP=Q;%^$sus;KJ13@_)c&r)nkpYGkLzanHh{5FAT&UHWIDOYrMz98;So;cHpvg0 z+imh^o`mWQ{%lS|*5G7kT7vOcZJGUYALB3^*ro`;{w%f7E7Lv3c<>rTuJLU;4LWJyYa@GrJgAvWRr8jgjK-s2t@E8+SHDN zPA{cJoM*;r!72Phm~JRewBY9YlQ<0=j}Qp^QXkE?H_Od#J3sDjC6q%JDPp+0)y2dk z_I0?sW9Q1?Zvmu6H-ag@L2Nmt4$>KdGFQM;MiG2@!P-@rBH zKoBBeyO-xoWf`arj$9~9l+lBD+xkN}3-I1N7YKNw7Jf)R1=(y<_qHvEG8VW8^|q}n zC>p%QbxO>mdp9VYee5`4-tR;)qDN{5_RP2a;Dt2--&=ThMx|^bZ2a;b0q!$1+@nkG z0zPmd;0^@fqIKxX8c=~9ubT>~xa*y5`-3zPA1D=Z>i~d?1L(qe-CQ z(dari*GIXhyn=INHVdYU8Go+Mq|bKQW4iG>aady7XZ{4vkCXv8kmb+G>yeakqNL zVHn?ltDtTw65=vY%t#C|*WQYs@Yl6*1?@lMF3r#8; zST-briZ#?S@X3#m=J~7NYYWh$fNwAo;}}v1Mkz)6izf@gU|89O(!{8iROWnJ2;S@; zmicZKYB2gEI*nBMWNX?b%kVQKU*4{goAhv(2avk+9$g8yV&rWVQeq0DIVLu z$x1b|CQzxS#CmBRxam%_PAy?|%ya5+K{m&TF+wZWG-utlxmf3CF*NrX3&Dk(i{(XN zt`_j^5|qetbFs4;W09d1@EtQIP=OYkV7C62l2&Q#5X)#A&UKG^ofWtlkN@bt+!p+Ix+)_UhpE zbxmt;sNs^p)<;;g_t71$tO7GGoZ}SIiI+bFS1($lzcu135FBG)>u+6jm zei@`yT&0Lm-t8br24_mz__S3Y5f6p)^l6if1&r2>DRf>rvvB2`B*j4xW0`aocNMY% z(omsPlT#ad>wgoH`+f8Jg17!q3@&UfTv-K1PJ^$I;@)!PR9ej!*NDzJGE zX%`gIS!<8T{Gxn#Mr?o+Hl1v>EwADE<94&jlH2rt9pILIe%lB%?W+%5-u$+i>(OEO zY~A76i_&AFp;66OAs7-o92+5rAe_S|0cPY#T9iFYrBV=Uv=9MSSYeD=SP9kFN>Nfm zt*}~63Oib@G!%~*W6ZA-J`w3`Wf_>Qkg^Nro!@LnUrc`zr-Px`=)@N#iHGzNhs)`B zVwS_uw>sL@6SMN{cubwAGaI+k;CRX{Vb1#ycz2|cri}aco*Z!&Z#+3lES1dHPHVvw zZ9M&U>Xi9aFYO=KX*>mkaao7VlVxDV0nUAK&2rWeP5n8XM-AYpPq}(Xm+NHz40rCp zO!0I8wj7yD18n8l@c{cxQf!?J3=A``o9w@9))1wpNyMVW+m$GX^;!%8_mThqN#KkG4&xQ;!ir8ru9fV(*k=)=mnSdx# zDq$iVFk*#xM$3}%Saco|?o**HF99PH2)AHxGvOLZk9SyJ><`{F@?wlru*yCzH_0l` z?z4bSW%cc@L@GG$djHgS*DmL+JTw|D_5X8sZOd&VN%mJZ<{dS4zu?VoyS=+T?s4>Z zFEKA0kO*0{C_({Bc4)qSvuL-7BC|lEK!AW8?rw+GAPQB5!>r7c=ggDN>ir>5w48o# zfhH2p#x7dJ(!~4Z&?Akz2dW9%ICo#+cPIUu!v!OSw4HkkPztNyoN?~mmy=Z0TRIDv z$d%ci7FmByb%QtxUtZ~VTWk93x8-B8T0Uq0x~*2#RjhYlFy-|AjMnBtrADadQce%X zk`A}?CAfN2LLnDI5pU6@VP@$-q=EjJ%cYi-T3jqady_V8kC?Qf#I82lz<9*2$P#o7 zOnWILG>3o%rk*0Mh!dIu%v|M~AKco_#u8uaAaI>ME85`LjM1L+;3juRD7NN#m99u1NsOVAaPPmyGA z(G%MZ0Ski}hu>bht+$@ob}P;zp?hla?Q2zL<09JGzW4x0rqqk;6->UNzivTC*bRzz@k`_z{} z*!l1+Z%UWwV-j6Wb`!iO!GPxDT*<8IV8k2LJ={+rdn=^;YKlIPL?`RzGU_IK~$PlV6BReu;1tQfA>ISle8~DAp#6e;s|& zc(+7jSn23IPiC)jkxmIX-77~tr)Vf}UX)io(+^TIc&BiDwt`U36+3Efj1}Qp&5cJZ z!r@CWZliB=3|I)ObndN>h3%s61uK8hC*hDjiODb+z82Sa*{XWl+($6@q-VZRfV*3w z)HFiJr;CTdjiICi?W@cKJ0&lcMCg|W)&LELNt8Fnv}Zz4O|57JVZ2!_7A61kZbS>W zv`hkm!hH&JM=}Z8JAzZ+zGi!8f&E6DMXupw^ZE6nF285@S+QD`Gjw%pF7BoCz~Nxh zA^cV5fd#ygc%s8w4lucO@*2t+s3*I^ySDjcM}%F$VDwTjs$F}Z9Il%a3#NbjV@%zg z$RZ>(Y4p*{4To`9(6ioX0Dfkg9E%=J8h%s0DmZ_>44KdxrW;r?&+1x*Yc3rHmpECfqdKuBt zxd<(yIoq8JcE@2b`1o`fyi789-~d+|9Z?*EfQC8v7)jhTscMRFr<`C8rK&kaG*?{9 zBTn;Zc>6A9^z-iTW12zWOVGKk&2l9)pbbs&f@qEb6CI~~>!Bso*)$;Z?xXb& z9YX)-gDM_uvgx#SV3oX8Ry|a!MOHrF0s^(s(Hf7L0Ha9bTt^rURv?j@hCV|CBE$Qo zL*zWA8?0~<&2tE9tc7oW_-CN{TVKJ*^SD18a2~e6`6hyq|9F$XZQ=0_C>V(@$LLwy z#wf6i0Czd3L^hedCwd9PKAcycU~^ln*VQ`vUaan78QBTh2shUzimF37>;yMYhFCYx zB&*ahBCr<X~JRB3Xia;e~l_VlRIZ?*~I&LZTg6>L1$0#J|4K?Ah0e3uk@sdG)E*EPw7H{-T0~s``-Q` ztJY69HN07O6%Nd!wjp%K>tKab3;SnmMQ98r8O*cGC|+GK34`&8{XG z5nBRhVIdh_@OO@APOZ^SzWfxGUD(&3*#^G*Ve(5v{3(YE29JnibKgB-&`Vf19L8Z# zthYuinsDt-O&M(W+br-J;{+_0*LT_Gy1FVOMAzQQg#I$R%|#hJnGoJB9b4y_XjR(b zij3ayS~|icd}pxAgo4dEa# zfm|wbZoGeIyc580uW6(YFgM7pSl896xQ*~nFH*B_&TD7zJC1h2$ETy+JX5FIMIyy5 zzlFkPw}jaVMv4OB0=6@&1Ny%I%T{a05vZZDxlf=u^})Mv7+6vM z$BUz7BT|IjQPvOja&sWH<+s{2kPnLj;YC{)i)D5X3v?GVTG&0@MS!q5;oYM^Z1C|? zd*e>&m^e=|sB{j`g~Ingqa4m6#0|t#svqwAfTH${=^uhCXb31dah|Jm#B31_0YAt3 z_&@(Kq8auFXMUs#sj-fSFqJcvY$K$Ddg+e>^6z{s$~3*p1VL z&9CLnOi2-s$Z2#!W%7^jM^nIV&Kb`9kU`o@KfC4b&FIMTrd(e$JQW$OUjuv(h4nY5|^|& z4vd~pO->!5;($w<+KB4+yLIs4s$Ij+WLgiEvt7T_|j*|-fj+{myeX<5iRo@ru?D4kvQq+rH*nD~VK(MLUOcY?;2Y7OHK!a zI80CToSEFa?KG=)S5F%l;AWG-W3HaPy#JwP??i%Uv@7hYUP7R}c)GcXC7}-<@KRVB zEWoK%yiK)wdW5%c)A}H>lyY##WT1SrpHh}@<`Uv+F7UjuF}{k!s8`mXrtvvdR1H@x@pm82?Lf6Ex?Te|W7|(ij80$g zPp45XE<~)@Elzi~TIcrO@P6swx}V5>72qnEi1<9hVG*W`YGMYWP4tvE6fiPIsZ=Ps zLi8&w?12<}$0yBP!mfO$&<9O*^PzG7`IGOwCAi zeY|)|qA`|az2t*E9rnwduJH#lXPef0Skkr%b6pF%6OZv-&NB|@}4Z_{a8NSdIy@#_hJF>pzH&hiWLfLh&s8Xn-3SbBH z0Td&fHL{OmMW>M^NYI+?;6la*lDO?z1%u&ffd;osIRYpBBZ*fO zLEGAf+YofH0$6kO%2Xwv|c6S z5OE(K_7NA*|KAQ-UXxG2ep?lb<^8hG9+!_X5wh^1QACBOA2N&$7Na+s?mtHiO@o`J zqv?DTwA^XDi^0LGquCE>{wd~XC5ID7Xk{lzps=>*wscSS`Mnt5vpm-o(^x zMzvk&m@jCq**Td4NlFR9VA272oDA&{01QVsTq$7;3)@9`)ia`nfR$Q`dyQ#Jw6R*4 zBYg^JA6Xj)kJm?*=w*v!WQ_tCbsWC1x?}JWC)=NALJG%=PDL_UeI%hUrZ_^E3Rzj# zRsE76D6_}gs$NIs#ZG$qOTcfiSi@Dwf~RZGCHx#pI{1#0+8qLXAwYB}_;TgX;&5t& zsAr-?Ek~7=%wWLl41q(lbH{)e&EUTOB?7$fe;K6)7Mc14Io_AlL3hLr27x6G`1Zx2 zT*OOYesfI+OHa)f9Cfa_Sh}@2=>u@Jf{#xI!*}B(R?lwPplQV1%L#xQ!kmK_VW31n zPb35ov@VtgV8n98m^#wTg(6`aO=}c3KxFPyDp$-h24N)CEka$<@G}?(nnv}qq{Ld= zLSBU(HVv_tQ<1QEs8*{gV`@ko?4Bfjnd(6>u<`Nf82Bo+1ejBJtjM$>+@~<4CPVoj z_Rf_$&M1%RV=)dZ4sV!h*T?$fzYvgY)5n4fq9A$hb2`2TV>Y^mW58fi+T6>*D0W5# zTE8t{1qI;8`TlNszkDvT=cgr(x)+kBg*~@icf#r2TBjcJ&#y}x4l5nsUnL(lV$kRn z|Ggdyym4-VY*;D0WtoUd#c=Q6$n~*Iz=08u|H}`tuB{L6^UotlAI9cBCI0OrEFO*n zbGK#w@JO66$2`k$3c(!V`p+o&etCUcl&kEf+H9WganL?uaW*isAXuNyL31aIv*1qY z_<9+xY;W~gVQ?t|Zi#}EqZa`gh?&(Zg8-uwPEdsxu?#$|pq@+LP9&IQ1_7V>QN^~J zLpY3yweJ)cD)h|>>KO+t0oY|T%OkAHyG^lP)Y(FTg0ZB7@qBr(UgQ}MUM2rwE9E#*0~Nsf${BJ$I;A2J ztmQ-)=7n3@m0M67$X{dbV!!^;Y6Cf3V?ks+ItR6e8E3U)HlZRG4gyQ{GLOjfmTB+I0UxyC5( z7$V>wcv*&Gu=c{ut^bsa8O9@xD|mYJA%% z!@$xQA~^FE`x$~II`N(3$$lCtFC##u0UY&Na1m`VUEXg^vQ_|u4|Rb9 z;Y9+)=HzyUzT-$2e0)06U50qt7wJ^YNsv)aj1LSv@tRE!?38ct)IK;w+mM*jL`&yI zP38x7vAOTwhqPBu?Hx_^rWG~cW96FPW0cL`-{siG=?S#B1-Xmj|H_Gn_{9j^2x&3)x4g zckEccdb%#MhoZh;J_5G37QY8E>q}^sZ!T5eLU?DxzToD`ko@5?dCQ?8+3E;OUV4tS z^2+OKAi?OKa!YYtTJ>?WMmTi~{W=WjXcj zNNR_|#lwBJDeG@#-T32ALSS*f&=OO7@_TU>pnPf=yj&IQ3|1hf3U$&fU5L1}Thu6C zA0dNwe7cq<(cMte(R-e`SU7s)Y$kZ4Jqw%o?pZofTWgpMI59_iK@Fk)SbdBKiuQuG z;d5Ir=wLB(Y&{aZQu;7K!(kjI8)&W|6ylyDfiOX{t5tP<=cCQTh}rMNc_bnJw6uOK z?usf~RFT$w^rf3WHxjSa7Q&&Bd=6a=uw`b~g3dfR;!1Gl-WtPUItl-c_JPl)@jBsE0HN-OM z2~;TGz$zl0)50F{WJO!`KYflRg+I5p>YrK13R!>@xszV@e=lQ*w45r~S(EG4t0otWIJ-~wI!x@cnYHsT?w5~%tasIVQ5TQTWgEroLJ8X4S^omQ_nhID35UTV1g2h6RPr%BsRzlr;>(b3>KDgICMa#Z z(oK3-V+@!(HP<=!blFCA?4hjSvHt2`pB!ePuGYoVqxW>aFY~&(D(lB=m0gv$>$`IO z*N3|DTANKwl~iuG=7{m?-t(Wq{;xfIkTOLm5X*+2(J*$`y9JH{aa-cH-;>5|vKzxn zhwgduaN*U6sHbpW3HIi3Y>KU|5O6sw0GV+qE4LK@u#6sY4|t2Q%-Zs~Z(CSqXY1C& zr@nhg+pD!T7zJviB7Sr@nt0Ea-(Ay)X4lVKSPJmvf~Mv~SDSL9c3> zW6I0yc8*z3iB=mQpALERY~~jx(zNAGhdI+f$`^8)R@8ud)Jkg@-lb}-Z$WTyly9$N z{pTkH_YPbFcJ=`|ToA>*L9M9K1?d{L_7aia8^vMZs=PM4bVOK$DR5{;y>*x}Q)%SF zfbpUDR<5##>Y@6!35Q&U`8k$*Sy;Wo1$L7BGL-s^`=k|X5O!!D|<|}4?DBBs`ia=W{*yO=TNnu z-(N5a41xvArGe;09Wy-Hmil3@%>!kBcu>{la(!E^7FqedSS=zY{&q`~;em9w0^O@o zT`Wz4JEf!KJoB1P#G19du%%)Us6dc15J>inRec|);wGZf?|hNbXw|OF^7{u2B=?c? z1tj0)aKT8CYHS6%>QVJkX9>rEv85=@IRq$LcVSB%#;U&lVnEB>FmYg=yHShl}%>bzq-_Y2?R#1%Wq z&UPHzXP>-55@XV$NEImArF{MFrY{799*`IiAfS|8aY>}mm>w=QdRDI$jJH}jks_Q` z3WDmj%AIJE)VkJdy)EWoCpRUIewgpaES#;V+O6<&X=|Q=!}aU`#t9OhmIVc&OC8^M@u8 zUj0Epdeh`Aydetd{dH+$2}$T3bSi+WanvE+&$yidNE%Q0SJSfyxC_T~Dn`vC9O;oT zf{}#s@^@~*9y^jyxoA3$PFH)t%Ru9(bu4@#L-yrj-BlM0vSzJQhIW*}=UupE8+5ay z%=@;ogzpE_#iCO%v@%vXiaKcSoS3*_Uh&4bj+DhD|K)3<(izkHAi%Q$Iz=FISC&(+xhJx z%d^k<>N<8>_GkspQU;e()3pq)-$-1@rF7MF+?}SXf%KLh3)4{g;6P@NPP841U~QNT zJZcvvglC*PScZh=a1*c&*Bp-IAc0xiMaZBM1?jFRk;&uA3b9SjBqa%Fsuso_Io?yY z5A&PldI_5=dcbz?03M~eu4ITSinn!5waH9tJo_99ymr4BK? zAqvc=qLf9JzI|ETN$9W=1tpn)b&X}-lt~l!TZnMG&EPgy57;GqJoKxH;`eOOTj?fz zr#Y;4imBWD@-i~vTfa*ZN&BAVEob0Z+Szuqy1#>u-?s54;?fDFE2e|xlkDI+5g99! zhJP`kh95RkWd+R~JX5Ne01anK8xaoKEYdDC4c6qt6}hn-^r7<|*H$RUKx)uPRBy71 zcQ0{qH%_9VOZFh{VOwVxtNXuU;|^Zpo>pn>>fN5qx+b#r?Kx%M_z>WC zS4hxXs765veXD>nQcj!3p$gn$lR#qfXzlMJU;mSRTFw_2+2wV#Cw!VtLTdw?eFl!L zf7^{+R4^z34DM?d9tQF^A1(Aq8wc>gmYFj8-I}nZ&UMN zz^*QxgMsb8Dp5pE)`VkP%afd};f|aH)E?XNyRm+n(FbK z$$bkb9oeVb_YEP?rLTpe2YvfE@2~XjN;xwOieJyU^b~$ObbC-%9-^Gpj2-ZcFJo>G zFW=4HG&FyEqnyR^G2{eYH3rJP9O@)^#^g>O%{jvjIG$E8HD9r_#@#OR0uQ)I=p6y6 ztg`llk;M*Df@p}+Lqs+h5@OOk}w;CmEg0&HWr6TsMotQsdzv=ZiwW z9HY*cgLHbxvLTUFcxK_jT-s(H!7I{D?5_xt{_C&Vs|Gi*Qz2<&<=Zz@I|ch0n*vR*@bJ+dB(jocQEwk3>9<$EeKREaDw2e@b!Zpltj0k3 zCnzL0;x{`;9U#FK_u{zQn)B6a4&^AIWpr3JUDKd%(rYGFFDA+cg$9KBX27KN}m5k5- zo~{mobDkDN^d5>92A^vt>^Pmjkd7WqP$H0GFz{S!0Z*(xKzaKA7Zgr6P*&j$QJn6L z@)Su&`vF+1HB|bjpwqsPtpq`Vw2}B>;=b;<7;*l>?Khs*z_DfR!>7%9J_-t zbY$-|z^B~92ix=JW&tg_(!d{W5?wj*Sydzlt?j%5ERr(PtAx?hY7lilFEQh&>500! zC-keqeL21AbepeM4_UFiYT}y???%(oL9Cq7)Kjg~JJD3bO2_JHHgo~U49)WQfqB6k zJRiDoD#yYziSai02oFmFPHP$Tfg>)GQt*3B9N_m?15yg;3=FB}QjUOh6!Y+K$U<-( zofCGuaD=7qH~d8{!u91mTg=x;!8*T3LQ6hDIa6om6I4P;M%&lZZO;lHks?ISqx*8C zJVHhR_7h}KI>O)*IAzR*Ra`Y!#T4!Jbxb4n^~>201JGV0OFyW)Z6yZErN$Uk@Dyd; ztZyUgaUntoW`fo3V!pgyWHwV~$+0I6`s6IP}l7`>WbbV5=H4)PdP+tyHUX`!WQ1kxI2lErMP zF$-@PsBWd!f6#HPeE^ikwox-}n01fGQ=i?;kzl`juH66g>yu@Ea|Mr-kog+j0CwT@ zAa*zO|6zIc&wPCy(|tp|0=d#ci?N*14^))y9E=6tndrFW^s}!B6-QQvlfC+gTc+<@Iilg;ely z20-ab$&mQRlbrmgM+h{UA~D01?guKn5~>snT1rcvHon79ew2brK?fSQrF_S;f~^HT)KQZ z8b3+zEgfW}euiIPs3H<@PHTkLv*;ef9rsEp3X37^U@VvJ0KN9zp9B`yzPNw&489k| z;!`z;V{4yKICq)7t%gw_zO^`c31zhuCGf4agkghC0%VVFYFuva?y~FoY8BCzIS0g6 za?!eRd=NsbKRy{k-%OVk8+?QoE2V{JOL&rJLiIFh+qKUC(Rl+K(2&Y9!9#`R%|SjF zX*bZISOcyAo&xb3$QdN|vTxG8L3_ zhf34;luFD`kH7fs)jz$My>C#7IW6MSDQFA0dsoBufLo4$I)F0{wU~pdSsEmfXmKx& zgV%7VO8sUT`&FLmZm}%35eOcfK--!ZwohUz5TBGkTL~x~j;AY{;9ZER%>-s0JRNXm zMyZ*g1(TLLW#}5%!;_>7JXqT-+(im3zKuDJvAl5&jcI`F{@jV90)l1o#fL93Frh`k@tGEltfuU5b`Z0$!$v$nWWPvuV+f!Dk zZKrO_iR!O?du(M|i6$Lvr`f@kQb$Ttl+@dq=<$*2d~0}!mE6SI1t^?pHU8I#x1>Ey z6S<(to~AdV7oCkEWxUD}P%>W9%^)Mj@EXVKCSR^eX@Td&?n3Rmlq8p$M{6Na9MS{<9O_`z22 zEb7VX)p_Q)Qrh@tX)e;+yJl0n_pfdA_C9g-8cRakBQa-$6+t?ifTE9rpvbalJ`z|c zD;acezQWENPxJLyxc#)sua-B>z+ZKKmYbWtPvOo@uOD*i7^R$2chk*2^*)@2>K#(3wLVME&A-&fD z71fqWbC` zJhgIO`|CI##Zaq+l8)X_QYk|C5SKwSf_a>D8YOyb!ITq5#e^aNbi5RSn`UjF=M;JE zb&OB^`o-+|VB|GA1#Mf<=%x{@lOcgDQI3G*6YCjz(u>pZiE%GZ0>G*B!F+wUS!dhD zbq!zG?3449&UQ5l$_7~S8Nj#H zDyq@DBVNEJn_jQ_n=;R3ev=nhk^V+Zy|-_|MP==eWw5oA@2y@U9UPxz7ddE4%T-EY znZ%Pf{9jL9gB4RqhGwywJ~nTwcNtoJXh^)kQfC(k9S_%L!`_wy~Rt zv)4*jOUB)IPqP`!=}|Z#Gz&NY1;4IFh`P$NppDa>=3)r0nX$nK)y&0s_ZNY>&wq)a z?(<(}@BSK~Sf!V~{fS*C7DhRUdZlXcBL&ZS-pW=(7yPi(`WQf$vYuFNuI8VYAFs1d z`8vCrud|DJnXWj*U`9(ZopO?nMcGb68PzMMBkgp}(qxE?u?Y>2*Fv!nnC@vdqbNUv zBnhv3;arRhvGZ0yKoQM4zON~=aBbjtKZ!hhJ=|~xor6KA*(x!RlIv)1#gy`GI<$zH ztf)5%a63+~QSfPbm#>!DcK!*z_mHpCd$Zrx7AyX zh%nXQA>IUJ_c9@SG6n94&ZvH7xk5P}vO60X@{--5!!wflP}4-)i=_=oeTXEXecjth zEV2>>)uJ_GrULeSP65!kCC4$~L5?98n}_V8SYCaYN9YW_LU89Pk4m;i0Ke6E(&2ZQ z4scKUlQj2C>=d%$or1%AN7!(H=ip#D*O4|aJb)VMy*R)WuKBh7?;-NS0KV+8wI90U zP>v#^xr6pGCOY;(s7%%gW}_0+xyg&=CM)jOmz(Tkkqy_hO;ODGy7>J!Y%5nwhROHS zmFacLL@2t*Y1R&14w>tzFWYTO&RFJ!P_gqcp(H~bH3xw5_umMh{PFP@zmHV>HiI_| zR;bcBXxm5VR;HF?AZO&@InOX>ba$Nx+>PUbQK~n)UF7TaW}U6>FP9M?wjSjkYAmjV zMnO4Ysg>&K^d2hFqyz9Y^&XseiUePwaKIn-uj5Seo{H42qP>P`%Z<^r%{stEusSG} zVxZY1`OqXscH%B>EDJ*lr9TRS8fa5|W&+NubexjF?Kt8V0i^71vwFxN$=mrwUTm); z)PwO(K9qCSANC%_pRI(F4!jfX&xTmlyZf}kU*nk+J=s%q6o=ryNPOZ!vNkRe}tV^HZQ5=*Yq}qwBz|(*C+86iaIMA1>doPOl z=k49R$e;lJJb2xE0-3XNuFhZfR-#Eq-)Rc)Y8f-MMB^+Rr4}g9I7aY25p{tqdVl;m z)^qrI$f7rrgSI_~PF@w280xqiX3ESoiudSd4Tl42Jeup>W*i6X9!pxd&F@#)=d3^) zZgCYkE<18HNGyhBX@|uLU5IiDQ{lMvJ;uOdx4f?}(e$_XF0Q z>SPE@YH28(4xR-g)j^#8{V^ot7n_WS;SEuoKHVW2z3^?j65XVKD?w0$5?apy!?{tB z()ckD<3^hVW%pQ|zTN;rFSF12HDvOLlKE^{T+UVdBe%#s#787b7fZ+5X*PU?*O4Iz z9M;6D$KvB=Po-~1H1#4l9r46;f(6clJ=E>3S^to&h>|HLydesx{kXWtGSOZdCs?bj zvsyH;cb&4HlK@+dqs|W#y9SSl*P&u)tio|MJAy^)So%7L4Q&$2g%W{TgF z{fq`#%J&0!3dPobP?elY45Ukj+UZY~rP_BSrpKs^TkJ`d#~X4B8Nf&)!3@8-nF+pC;)ObQlZ=vZ{bHSHC9lh`M{(f(GtR_DBK1I-TsaZ zy8S&q=r$hQBI)QX3DHa4tQJJj;MnHU5Lxv*`s>9P2jIoIh^^2v$<}xY1S_?z~NBI4of|tg6 zZv8m0+1EY-LbQ^?wl+N3Mv3FDN^R}X2lx@wC;#!^lTKJ5SxE5z>1Ebdk0Vr(Dw_*R ztmT9FNceR*4{!}?H2kHk`e`?zsQa)H;5j( zfwD$&C~FLXMKcak_jJ_+q}B{>3^PiGWn!c{NniNx#{g0{tTvAxoH=}8BBaKW&>g7z z_|4a&2#G)_k#kFwV>LU8Y+vp^m%GZpHk}qj&YFHrUQ`qJ#i%WNDEENmk6~o*@Vw53 z?A1i4B74$(;`$MlfYOouA`RRulvUy0h2q2!8Z+Ud zupXSUi#c7yrtC)R3L>q`ma^8TaDM460>DF*iA}M&dd~jL03CNL zgqb#jBez;&COdMgUo{!u%G9$+$nZ~ z+z`anf4oC5^&jshoLojy&|O>dIJ%s0##W0WWM?5{&JJT8{Usy(YMgI3myXN)Al6pXc!c`k;tsY@rub9`o~4KfCbaxMgbHvObFry zvzZ)ee64S<0C3hGoN_TaGy@O=zv8`u;9=eO|H6RwU*{q1V)^JQ{m^HmtsX;&@gSM^ zKxEc6+6DXazS#Ju@w5tc4g5M>T-V^6gT;#;Pj>G|Zi_2O2r`HqeijK(+~2jLnybDY z1oVDzf<)!w>4>~cB?x2CiDCP49PXvW#5^&V!}i5kX|WMEKnQB!bvrTQ)|iR#UyNA< z{S*;{7_mQ#BxD>x2)spG3nSE~g?*w@e)zC6dAG%A@!8r4yBEcRB6|SX-pAXqy_veb zA+?rrLRuH5oiWM@yg-clP5CTIXTCqng)-CzhtC*u1PUKO zfD=B$A=|Y#n6l)XpC+_jLvoPNHn99q@Kc&%{!@)2G&rodAIX=plj|BvIP)uVK7$b< zd<7ucKHffO>+Ej(u)|shQ?t&x%KKLHHVevGEueHPzDR8ce+(6d=_zE;`jZosP=X;q zZ5>h08D>r#q&4c?AbMBy9pD3JD1L`iL+d37d_oM3(Hypu0v^3=P70rBI{3x7h^9l( zj_9#`@W*U7*~jgdGCs!Ezu_>1tj;k{Q#Tyy7f*)d;v!qXXyweM@Esa2#0{_BNC$1b zsSQ>zi?x6qJOinjKGlx+_iq72jVZ5PlUzsCJejXPP); zFyG8?|I$vN9j&0}h|g_L?7lXNHzy?AJ3qOzAbK_F{R;1-JH^ZIN?7Swzs%;c6D}+> z>>Tl0E86=im~o)I50LvKCFUq)A~?>$q#}kpp>$leJ#1|h5gCr17bvbyD{vR`NOZ5)^DHB`pitJ`g|`g%t<&W_Moec)|L5XrjhwTq<#;xcKw z68^_G8q-_N(gAwHWLUTWctKGkn%aCH3_V@xvmz*N=kKvHCVCfrU)kumQQ z?%R2ki$Nyb{ED0hbhg(aD>m7u9sIUk?X#;j-0T+7Bb$7Zt+SfWF`20~>!4F?wSdyW zd6@)XcwrFbmCj-drm*YH;x#oiWbvW&z_*|~DkLCKgcrFp8opv{V zCg?pTDiwOW-d@Cn^B7Aq>VCY)ez2f6tb4}cJ22vu_W_wDkpdu@g@-Qep%KiDG4|Wv zws+@@l*-f1xP_m7XA#Lha~IVRnm}xGsr_^)7jh8(gkOh?=>Aqu=e}a~pYU6DTdW?+ z3Z-m9UPXU4TQ!}tpjFfYO2_QW)O#?9uQFHg0cxNYB_m<>?%}@I2_7d_QJhe$0dinl zE<~LC_De_#I0oFmM5KTR2JT=ACN82YF$Beb^_G zS5L4Y_SwfB09z`Ue|=a(G@Fxj*^Vh556zo58BrEK#*+@_7ilRcnMHh;ogcvB@X!Qt zbF`FmfaO+FiwI3nNdV?4W$}T$hRgCPEPp?R?lAJ~yK7AJ<1p942of<|E+vt+Dl)No zEO!rngrd=lhNX5r|UR`H5yVcDN!mT(yjA6PU-Ra853?&@>1)`4-A&yr{$Jl9F z%VW%hSciBnPoZzwmut+3Hh>Xf6MKjqfcE6cUy#=pL(&+pZM@Ou?n0M?Gu%$eT#CQE z%e9o9S;j74syusxj5e~BGh!E4^Mj)5SnT53#gl>d>O9@#-p2MqNEbv|E6Kq#dOR1R zUI1%}gWWVn9cG*nq2T6DG0r{&AhuylbaX7r;RB-=tKlb~pe)%-53L$S$l;AMe*|M2 z{>PPlWy7G}FSdCc(X|EAVqM2(KElW@Df-RHZ?O8p`=B?6R%8Y4DSyEX)Fz2|IQ49^9x;450$M(R4r*3E# zx)!Is1R&}`1gle(D@Tm(+HT zNr&f)Y|}a=5q~&%U5zEoOU|)*0yk`RIn|aTz-=uNTu@1QoG#I@H1c0;2v;5zE%P5I zJ9Wd7kf1ry$9JD&;=?bqam^>a5XPkJkMJA`pOb40Hucn*kOizgk? zFH)RBN~B-x$*0l~Zv#I^yH6<1!cL!F+Fiq@*U5MR9@H9cFq4mz-L!wZdef z8oZ;Zt5F^9@xn6HP%Jt!mi0x?V>Ah`iR6wN#Au!iqO}#)#Q`!nSNt9;bl?AU9*y8& zGCDJa4KvPa$Ez@w|O{44tC+6}Y^fM6tQv zm0z;^tnd@b(Nna>6F3WyR&&(%94&H3IAx)7`E;ONrgnpZaxGkb3Jp6*NesMQBb}u6 zli`sT%1kR1GN{ZLC&FkZPxOKR_^x9a3LijGc4*t=U<$gkzmD~23XQiKMW`Y@Xb%!8 zF&T$04nwdSmvz$CssTJ_@1a@(Q=0{Yc@Nd2NeAQ0Z2oEyo?P~=73*!y;Z3C@addl5 zE<N4z$$L;=hm3?~JJ>3;w+Nk(o&+1I)c*oR^2js0rook__qxf=Jz=|VK&0(La z4dINEvD7X5o7^kqjKnl16fp*>tW)jXVE5v~TLh^;yp47*hOVoFIq2NwrIG^1O081H znyWDc`@FCxb;NPrS75>~#rZTbLI%hW#nU?5U%>~Tvxn`Mau-J4DP<z4m5RMX z=}gpONe16?!Hr{y7|~1Wy%@Oi^V}nGB>LKNSVEO$!dgt=#~J6VuW6^|HYWv zJA7aw@I`Vk<=jOrgeLZyTnJAO<<_>-UJI&8NGcBtaX!!+5_JE(x_jL2vVHM+wRyg~ z4Fhkhdk^9+JcMqzn=oZuO;;-PcDzFjd26AhBkwXh$=vENso281=2dc}g{|pGgKxbG zUP`QV2c4b}<{Cr1_na5Rj2FBiURqQJIKoRCY$yYH_I-ND-2t~AMaaWbv7Aa`#cM*^ z>tfa~vUxO!Yiel+wS>QYdfr|Gm_Ea+ce}c~jnaY7(IKck=gy3U*Ky-Mo0W^CgWxii ze=(CyA~oUKJ1Wky>{N<4ub_ZYx|H*?zslJ7T-py^?c;xlP`U=D<_1&HnWvx`)r=dV zQ)s!B5JE%+?-}j|7G#gAQ&I6hGcnh!0pvGo?TfqS?RI_t0*C__oN)i6_E@V~I&-mE z3nd+AFOpQtta1nxGfo)1gG@LgXXr^G6;XylH5!(bl*Bk~n2J}TK|_iNrC|y~3hcpm z?Yj2a_}60yav5|k3^AIuw4^vJv_+hPg?9f3jrH~R=^?wi-DQs}j4jsJxndBK!ne$H zuUtEOS5z*RjI5uQDXpM|4xd~x>6O#S!Iq27PzX$WH5Fkf(mM4+Q9?VXWn3HmeaO+c zQP>_U-u!*U(ReWMM4tWBLSVHp5Z4MyiC_^;$Jb3#zu@Lkv9{%WeO^5l>lGAkpW*MG zi_Nx=z`_(Q(rR83_x)W27V6ha2hht@%~cwi;HB_#!Ruv+8>uess}3fK(%N!qco1Nz zA6a4&z$FT>LE(i)^YqwNjS4S}H`Wl$MgrdU8sx165i%i`%KOVwXB(pp#lu5T77P~O zVyo57c6Sf;>f>#3Q|zw8kXyg~^Kb#Gc|p;(orXe z4uzbLbTHL##z8}&B{db{ZU9qo_uN?>ZwEBa{rwl;{fq$ayPxylA{FhhU0EanQ}zUE zA%ys{!sOn8*oyw+4Spdm0)9jOmIqBSKU z`*aaRWzHO7&JqWI(2)!zdOE-h;w(oQ1NJcAOHZ=2!j*7@F)*R=50ZoKN;XRig;XIjWpfLPbN)v4;b^Uzp2kNc>sAL(6W9^}bxMW4(xR-Q9cp|I`wi3eUs4 zyVt`?#_5}jbZ(QDAud2(IM6p`xgcVsQHNe2eo$$UM(CgxuRX|2DlgUBy}FKZ9%9w? zU@|tyvriBr6HZwzg<%P`bv=w`aV??v$tfpFsfd~lEU-ls&27>8W>?<8H_WbXi~H5% z_S2^@VxOfxu4bfjr}%WiTl@CuKmegYUcY*gjbV+M#``zOy^MA0k?3Q6l^rcHiW`B9 zjKS?YDX15Ij6&&~kOxmg?(wJtnZKFLmKe!FcRcMS$y*H~D0Or2DzrKxZr(wVw~b}| z9B?<(tN`%YKHffO>+Ej(utP?9XRhK{&1b)2co-GOT0H6CeNn_-ZHSTwc@#!R!sebT zIgCL4W~mA@do84s8sDin(W(fU`n<)adEdUxzmJ&u3=PfU9CYRO9&IO5khvN|vr*x4 zE^}^)l_$n|uZtc0;K2J6bLaQ&AIpc^a+7WMUy3zyM%VVfgP=Py!MB#FRM72ygIMFC z7ELT&6D%eGmkYM=Jk0ViwBgB#rHdlg3A$rVJ913DskMn@uP{n(_y1L8uSKE(e z8HU~Tp^DC3-vo+UHBG6wJJ4W7EtF)?y9%a<|X?c^mvW2O>lQ=2la7elkQYnsnH`$lkDHD$JE&!uYa>7;ktu4kq^% zLzhGuB@9Q@72xGG$_aL&5)Qfw$G8$_aTP|=kx~=GMi+iuDJ4=G#nmuEV;Y?1k`qT& zcTIG^6c^hTzAHDI^6@si+Fsr5P_D$R#L=tCLP2^warD~d(@}YuO<$pv3d64VGUF1K zE19FBjW_3kVwYla4wMlgs1zw<#4$meDaMGyPku`Iuv!SsUa!axd?8|_!$}Q(WzD0P z(3Z7u<=eXdc`6Xr?=aZdanz#rtcRy7)W3Z?_${;j%AG@;ArvP}F~WW0ZKOl5zD1|E znzYhlMW^yIikhABSq~BtV%)A6Az`$l6U#@}DGDext)Y&k*sj-O2r+eq%$X&|=;o~2 z^*&T+`t`Rgi2Qo^^?1A8ZICW({hrTJQPy(Nx1wy^2Tq}_Tr?RICU&pOU(7N9qW<;Fkc*{`3Zc*`MCz@PY9QP2}09?B%(&(g7OU z6wQTN9HGs;zlBfY@dBB?lA4}^DEd?^VGRi?W$l?yI4Bf zE>nos8i!0Iya+!tYhX=|r2pOX1PgA7E5CI|Htz8EQcK3-QncR%rD#83JNFOycavG9 zV>w8HRVTO+id&H~nox@)L>usG&W=#l@JK&7T7=D&!Ma>VLHpI1VO@OLm7A+F`!l;P z*H2dka?;i9xts-ltNBbl>q@;%oM=#qDIKM!>8*}IH1H=J;lkI61I^t~V&^zIW{DP1 z*>WCK!f}dNYL&Am<{jSsGXT>umj?L2_;qji(RXbo^qL#1#Zbp)M*T^#&^dR2-!#%; z<#Y00Xj{rY-fr)UeRk{5sfO#c9^}ar!SnS4AGpoh`1a{IxLmg|$#r=Uht z9Z3kGuU`!(RA|L96JF{!ukgFE-~P6>cS5Yu8uLyVwqOmXpfm5PPYa+LLIVxCIGBzY zB5WrE-T=YXFT>?Q=0U{v(++;yuJ+m0y4-!tjtiou_BmaPTY?`mco)7pfP+Rx~63Gj4+AlqomojxM4r_J0MWdY9dlJIoPc3i+DeC|=9% z$W4Z}Q)G>>(h+@`-C!;h0@)ML82UjrY=0%-kkKqWM5YWBSjwDYF?=6lF+^p?CX-c2 zpe|tD;IY^X{sj^_W4Z4Zn*l^1{eqlF8#siE2 zJH34-73x7Wke51Nx=2n`Q`08(7|t)s<#jn8cg59nb_Lk{rChJG>*xJ8W-mG4!?@R3 zox@>VBc^n)UMAO98-V~d^SeF5v?Gj-)Yqt)+9#3Fykolm6+~+0Mbd>Az={k27?Za)k z%iw$5JfYy+?uneKc0Oh>6_mT)9$q~{CK-DUR~TysHLvH5z`M!1GXtBuf2=bV$aTuM6j)E3CKC zm(w**$_JTSigY}$3ROSq$QlU;4s>(vG!FDE^wvsCESETga<8`|r6 zs~Ec1;z~#NWokqyP7w|>{JhheNKM=f-I5_VB^09w9fT=CoUs!2`%(0M|3d)18>*E@ zIm;YAFfDqA(~w}~*@nRfYeDcJfLFt4a`@Csg>8iu&pJMP_yxQr|K1bfeEJp0mg8U9rQu9s|mv^>d1Qoevam z$B{*ATs|3F*B9BK=E`6dF(u4+OEB(jjptVsYeTp&)>-5z5#r}oQ%w`5S>C;_l)p^@ z{t%sJ8Emc(d-w@lJIdX zyZb9Bev6wmA{TVH?_rt^-HX~QGRLJ^M)u(s~e~lRTyUYr}b^WdLiV z+&%18`(`r$7TP>W6`}I;ro3NmRvF`A6g=M6S^BQkN8KF;L&4+cWR)wWW8rcc!-8S8 zqlBm8e+GL?SvylE8iV}+HySw+15BixQO#VOGdyEkcr*)L=b`&dYrF~~L>g8s=Y|+g z+gbipC`uthnqQRj-oD>&5h?QycYO|Mt)(iJsgQJ!I1RWGP&xvihXy>hL$Oq0MPLhS z+OsbxyYWMR!I3fl59mo7AT=bP)%zpfDa>F zQ4b{0k+a{$7lY_lmfp&dD zV6w;>l2z)`*H0w15Lt}Gk|02Ub3A9xxSK*CBXJcOdE;KMc-WJYP#1jm7N?vWDH+N} z0A#V$QEGU#knmefP^}7}-wq(C7G3=I=zOG*r3^WTahxJF_Xb>?6Q_7hKN zOCzIhl1M28tEprE_+JDjt47`62T_>pg%S`+LSG`m+$n|Awt_&gP6JmnX^3UA8E@-L zqf^85JU@JHvahhAAYHK1+fyozd8ZoH~(%4 z)puG4{Apg#DEI=X#de@W@EAvWn`9A9=6)}F3=7~`2TviD^|rrw#)!kAMRro zZQ=W&*a z1q&Y}YAR$Tu~I3iY;|+@)sHRjz~Bc_Y(2A%8J>e7z1xEjPODfu*oVrh1MB4{G049U+osFX%fhSjE#Xn76z1#ztg4gD$6(u!Au_ot^PX0~RfLOZ;8N3VJPW%e3d<5 z!(>DtK`5eqx6cw~`oZe1)iQvwbX=kLXMohq>rBG`R3bInhp0m8;ndk98Axb7bW!~c zqQDqq!g+!b0Ap9tU%wTvq8I!X$iEnAe8{)4`?wKn0hbe-ir?qb0uEwH2Jp>vJH~L- zWhhEh;^*j%SCtxPx7ZO%CABegQ0Dx=fD<%f?Bdlg5tM%QOXb)_Z{1=v8Esn|U2f<~ z0i2fAb|&adDZ-sO=@7%migkwlwi{3VjI}SmLhLrbiO45}Z+NkCxV-vZ8^R~=5-WUz zhoFp z(#>)uU?nI`m}U#Yz*K5DgMZ-bdO0l7#mLj|%Slwh5hKs#E?>{L*?qBl+%Ai521V!g z@=VgdIVL%^4DP|tGYBgk*(cm$7A)o~N4?)XtPEj%l%Ae&k`_=8GmA4QoF!H{W+<;W=9r)o&Opwu5NWA$hu5yZ9J}zw3c2>`+B9 z-V>*7`*7b0k+pv(DI!jv7G9Y-ZDq}^-ybh6h`y`oCBqK}LgZ)`+Ea+TUi_89z$DG! zA8tcQvw9yIUk?-51ohrTqvEyg9@oV_&;0+%K0q zDRk!Q7)?QY1_omm{=(9f>I5V%2Z4=pFgl}#2-6vcKl?2M){lY$hoSJQ*yY)J^D$rc zg1tj@Da!d81NH{-q+{<@HlCTY6lcf5PWO{l{=Djy4f}!TPK*mdjA6{gG4Cc=%otXyz8MNvFHi(GKulqaY8b$UcjWo zi4zX0U?;5Qrn*V|;~NBOzyCP`wcr0dgC9hpw!bmENIp`a7mm7ISfxY~*R31}sw(WY zR){sS^^hIx#YuoLYSZ@j=5C$M^QU5-z0Yo-kla+WExM23or{EgOjuXeMe8xV;Nj`e ze3i6g;qdkZ(;A8&L%8z4>xp;V1(&&lx3iv7fM4FhIx2vXIvwG&k}uBY4-{Mcwj8!b zMw#&*aS#PYWaH8wE{!ewuoe47_IWhmgvI9Sn-60^-o_FW#dev!-xl|q$9)8akBf1M z@;As()ADz>Sv~II1Kr`#$0=^5M3_U-IV zg=q2Fie_}>+u!DOnfoZma9S^G?szc z8YdWKqFU7Q2aFl~CRY2tf!cR4W^g10!^%$tL0~@bjLsyK#q_27a6N}VGSuO>CdRn|EwnxaYyX- zgJOnJhjSws(?nXzq^#yfpnC3A+=wbY_j7ZI(G;|25OX*Sz(Pr_Qts%=QJjJ|opCes z1AB^g8|ygO%)xFPM~fn9G}@o9vt7Qwy<2Q?1n)H8F$A%#oX%AIKHG>#7)>&AZ?Cf1 zES$x=&2adajxg)pddDdwBslS03aKJxHnaacJTrJ!0aybJd9mTQNGb)UF1HnoZD0s zZ~1od?no(=bO@iOHZqqH;;}e*_HyC;Uv1;-ANzy4*0|0ae36<;rge2){qsK&aQ^+J zS?D*tq5q!252E1Q&wXGd30+#r6-x6?Tl_*W2m_taGcziPvJL(2zOr>6wu@WX^81+Y z9c<2lW<-KluP&y)j!GX0aJTvHAy!GJtUv-5cUGnk@^|*jz4|w;nASUnm5$5P^stj$ zN3QiOCk#GFZ(>H(_<&hzVz@Nc;MgpQur;$F=$zhfF=e;keyN<(JKLRJWZ4J4)eEA) zs2NImeyJ0o)49c1UE!LiiS47dSE@_xSKY(zL>C3QTaK5q;hTO?C;_kSq4_?I6dnEJ~PL#oe5 zl8`X{tQpntM+u!`rxb*Nvfd6?G_*`HPHIN@?Kp{M1lB_SJn^y1i}gPHJHPdKJF(V7 zkjcxo9>P$PQG0il-D6{7tqDengpbu(!f8*a-Bsh*605D@B8u9S8fofWoA8m4zapsp zufHl$ySGujSU%d{0(LTY4x&Kun|UoRDiE#XhX-sx&+ouV0Ch7q@_sST-ftI+s1Gb;V-|FmRYzz;5fzi1-bqc3v;YG(yUjT8&LQV=KL%jt|+Z-2(DZYnhI_uVAG zH<*t8+8ln$cg3p6_PgR{RXi`M-AOMjL?2|QGv+oFq7NUMj=9t9?lQ$S?y+QGZ^H2b z{-Hf7&36~Z)LLm4Ye>N92SV4vRyQPYF}9a1=-jkaVL-g zILBSU8KN^nGh-=ATVqNS=N;$2$wRjAR{H&Qj2ZE|(p%|#QWR~u#<&ngmnyf0X>4X* z@>@X}tY4t=3E;v8n?!Ys!SU{HQ7rGW`^Vj<{NXO&X1lw`WQk*Z9)U^kij{VMW*Wx;$NH@rfQUhF=dH2 zu|C0@-)6s7C`+8%cLU2n!rfXI{ho3V*n9?jLEgAVs_yd{ek+b=tPax_zAtX?^2I8< z$(Q4p!Dv~>meZA5$DVWkq7+R!_FiS{R#+CPVyz?A63#SymgB2pB_&ii$(_OV-Vbsg z%JLc>*-4`o{g@-$k3%v=`K*?OL@y>3frL^2Iga@_)Iw>%RI9Dv~S>d*d)r> zrsT5s+r@kVC+cPPWx@gn==?%GgmPZmm$P}3wm|TRbU?jI^x8KOQ|D4gRN5KUL^EljPOC)JSMLx+t#UJhAM}o>v9(XAal5nz!Z1+&f%V@N0Cq!a zuHS8w09Vwddhb`e6PV!LnJ_*gHDW)j}FO$I0r=+KS3FXNh7V$(xx2q!#J?s ztF$xkJ}q3ss?=||NuVlLmCiTod^NA(5nR47EoY_o!ZdhTI=WtE2NmiUTsIPqio`%M z@7zfB(g9rIOU3E03|7D~s_GmmP>xpBaet6O+{nteKkhrNg*IBU6v?q5ic?$_UY430 z?@JozXPu~@!)}`dw4#*Pn{AP=v-#uu_mQUQ%hyMtwQnKwa$*t*0q85l&^35oI=W6* zdRI{wDNqgk%A0-*HA;nY0iQP&LdKjeCFImerRPPnD|sK?#HmZyqrT4l>~Hh_$*eS3g3ifQJ! z(J8)XK@`|EJ)GXWLWFB%FWF#Yu~kK7k|uvDV1+xaVY179U5 z`|AKV@UeAoOU>_eAP-`|v}A?y(=Iw>G(AKNB2|N{_fe^0trlJiE1P@2o2MdLWjZBv>jxyej+iQvBOQ7hVi5$@m11EmEgF-l>q=0g!%bzD*J)xt^!vS&i+;# zfe)HmMy%0V%eu2aW=nR$GCk5yD{aYo6Ih9)V_1EwAPAHZW#Jzp%Yp!3G&vr&i#?p4 zSNZeiagS-O_>DNx#=w4?-vVOitNF*pYL(5Oqh1KH#YlkZb4YF<(-np3hLS54Z&bmk zIzB!fm51ra_ER56F81NCD$dM-G$VT=O?B56q)ZzZu|fx&u-sZszmYCmT<%wP5-KkD zdxPFcI$9UXU6}nr45wwXnQ`a&GeHyf%cpst7i(19N+UP@qc?xdA2zGiCS$4+V86ce zMatiDGP>gG>5IgQ+~BFnaQbn&0sxkq2v3UoaTt40%n&_w8#;oiFv`h@P^+WF8EQn` z9oFlY?gVvU3O|T~>Dk({k+mOq_&*E-qe^k%KOV(YoXhVw*mwXF6GegQ)6Y9qjrAuW zVn>hhU~yaDNHt+MmHzm2;G1rrRT~pgKH+d!V;qh;7Pfs)mr-2>QaN#2Kt2sxNm}>| zjT!Cl@GHUZkAETHSH-}G9}HhfMiY`U*wlrS|00mng3`{Uo>2w4ITcIYdG%($CXWSH zSNiQZ9++%eSKe$NZx`A9?QOoE!%Ob6qNuDeUo67Kh*RZ6buBid?-Z*!gNLU>?=%i*09YfbeKKCYZvB}zR2D?hgG?R%t+ zoC>4Z8iaw>no7<5Oq7sK2vdHWje`b&U01!&itO)fy~;|R$T6{@%8T7E8!C8GIu>3f zy_5?R(eIbUdu1pxMsBGzL{RUKf}hL1(gvJ4YKKEls!;zg-@WvG{rca2_s`j{757W$ z!%Ae~Tg#Ys(&IZuaEg)2H?!blf(p0kNGNQvNn9V*6{JUN*WKdbF3Yoz`6_yvzx|0- z_WPDaC;XsyAdN15YcMs;IIA7A@+9a6B>f-?R7{V}q##l?Reti@Z5(xH(4K@z&0j^0r-cvw1WUS_zyD{305aefn{a7I(cYXUPjPV*>E;h?VI zo3?lXs=WAsU9a5R{h|8}3gTKp%6RBf||4ZOwO?cL+DvhjIQXTI|KckOmIcIFEnnvS2->~b80 zT3yO_c(-o|J22oSVYVmy?S#JmV&5v|@X37VMc=iQb@r!d@%rxNxc)b+{$mgU{pjMi zEmpf-G=))M)v9DOaWE=qCIEG~Z-N~+z3cmBzQ5Z(ud^Neam7>2T)L6^Q~w>)V^-Rq z{oAWQ1z*m3WT< z;LmC=sWC$7Xs^8Q?Mfo*rjGdWCt5>WMTMiQuC#^_j>cBKJ%_53F2FGaOcH?G8J9#k z+eAeL_SRMK0={wli`8PW&TcnQ=&mE`(HGWODQBo@g`1|a5sm>) zJ+$P^2!T@zLYaY+KaQMA5}}3Dw7M^VGEiT?gwt=cQLhGJpyCVPdQh~BoM|}(tQ8BN zjJGy4x*-j~Z?bXpTbt7Wp0k^6G5@d_PFuh2Jytmn1Kj_Y9+nQ0mtm%M21%|XwoZPe znybTDU~di7PsKwQs1%$?rKvMfdlJXEq;%(UtO zK>APc6!zn^@bsxz?l-<4u;1m+i{utS@F@&xuy;&de=UIE?J8OT$54`i_|sK-NC_4Z zR5g_N<~1|$g^sV7^^RaZbfr)YDx-;Xyq2Mb0`$9BfA-y9gA}v)!ndau9PhZ=19LeB zR2-0cPd3R+lSwL{r%AK|FlNDhzT6e}+3s;$0m2uZwF=UaP}DY`wF;k<4y4m$v_i>; zUuSWDTjZ~V1nhY=&T)V4h_h72WL2H=7GMX;RwZD*!h}^TO`t1;Rr?$Fk0qo%h-xXh zRP?9;(`wQx2;&4tIh#>2gUrw}L93~5pWlw-C}=T7l;vW*UhMC(+s*BAyI8Go;5?%& zUuPH%vJr*R-emd0$ERcKRf?rbDPxM(oLK%v%DAUtf{wie37;%w2f8cTccmPVS@AkP z7T!y!5Ly|omk>)r+y3iOS*1PJhB07Xr^5JNoE55LBf;;*$yT%Td|fP7*-gIPMvVIU zYA7I_g0{`uat<%tQ3ygw2kVKpcBzc13Q#C?D13!b^yr>iyIuVSBw<`I5fNdrl2~cI zZ&kJE-|yIPLZ!3cV8aQ~EF_3sF=~X7%)+0UQvU{lV7@HyAt_08S?ns^WWevsaa6<@ z^d1>rtNdy4yo~v@jND_OoU>FAKBvb(5Kl4^(`iZ*NT=~B1wr6M&$y@Z^n=1(`L*7j z$5>BPLfaAkTF5e5r#^^|i2WmGA@GlP1CEHH85s0(trP)f8K8_O@EFmRTr`cE43C=dHgQxDl~72qhhPuaa2Ham5(Updyma%OUqw9(O`z z;}6fq!!FvYV2%h6BCgu?`pv%)RQ@wo8~^#+41N$r<+F{B;Y&X-zcz>hqdQ19qlO4q z^1Oz(fphYQ6XC6Tm6)-1A$E^Y2xpMe)hb&St8E^ug}=P|h4>4{Tr|B^JCbQnB9C(u zN{>lL(P=Vi4gY`cuC=*sBia6yTlYIA^M3GK94A>{j;6E!cu3Mii+cC3%%! zf4k`i2SN`>3*wO# z^X=+sbDLmeqrsg81mhX+4uWL#EtKl+QTaf4kvgtcS~{V$j)hOY$I^}vC@qsBD4lSt z5(3^Sp|n%&r~FrcQdeK8Q~sN`Gx)&ZSV_-(4#nChpNylR6tA%Z-80AeOMdmkd{I#< z1h~^Ckyjqxm2kCMd{`CBYCSKW;5*t_*Dte@fwle3T6SyIy@)Fnep)m;dRjKvifOW@ z!W)`36`0vcIGP1EN@W+pV06+YYF>kb)Cu0OtV)7h4}oDM3F&p{nuvPi1N`h8n5S|kY6&NFeA>^5G+B<8kNd-WJ* z8kwV*@{#!>SykbTP7nro#jFhz9=$pTDg^7NiipLamRrRW=na$L;O*TfDMPm`yu1h7 zU67r!4lK0@C%yK15k(Wa?M!ZSA8uSKEB^Y$=j-SN?rzl3ONk@m#=NMs`7=AQetx`b zFH|^m%8mo@8Is@ea`!7(=swgG$k$@Z2l;7|zS1P56|qiU!^`260x|2|8zp)b@9siKh$%|PWH?kh0XNuqdEbu^&b+)U z?pN236^*PT5K4$=y*nMz*i!-DNzc zU)H)kEoG!lS1TRSV$(HPOBuNs-HQi$na4&kP5z$B% z4sh@qRRPxlcH890&z6J6i<3mtL+uk1LrUMPMbFL#S9y`*2T~eZ`~be+NTvfSlZ+C4 z4ZLUEZ7+_GpG4_5G^ z87AWXvafIKhQeLke3Re|YJ#=fd#-O5^T*=3OnJ}N$9*Phceft>5qEPK)YcxF54F>j zM}S07(^x9D`c6*NAb3PrstmKrIkHB*i+8YC@YI`o)wJzZljx+SkcfHW+ zMUF-hka=gANtCt=2bILC15~+3ftFv+`uF9-wqNVRY7Nl$kUa07xllGS@;bL>Yh=@S^(=v}o_KBJ~H_4(@IG0|R=? zCKe>)?0!f!SK3~-7DrQwz|XiuVLKt3iRY%eE0;JWkMoxasOEaR8^>cVL$+Hzl*>i+ zTwE86)l=fii5@Enr7-9rp|rLZebdh5cv5l#wTEYetD3H9mkffYL1v z=upqRmI?(9Njen%ztKi2)t-X>PTfWQ_D2F$fBR$hd&^za(Na)q;xhoW*WFVT1a)jz zdZrZPp+(1~L4U$V8xL-h9^HUW<+?1Y;;#yh?$@JsH;mVy`-OdXcf;EA@`3U+T<0KJ zsM2&9lSZ{8$MCk+kCX7!oCRT(5P^0#gfVNWt=Ut~L>}1N+zs0f?1SZ?iRI{C;ndGq zD~^JaW03|;>Xf!!^3QFPE9}GZ;AotGejz*`%Efj0P~1Ik%6DlI?G72}@FFX_)i`wq zT7P&xuwJANtPct2E#V+F5dkZXP;Pk`)a_UQuMDQ3Dy6{fHB+8TwMRDKm>lVmtN&9= zkddl7BdiG0*&M#K9tSD1!e>G=FB{ovZv8**%Sl}2AIiF7?^0E6in|rO@tbNy9RS@` zT)r-L63S0p{a=eIAK@=j=|FKyR}qMX$dd;4*+n4smn6Hog0HTM#Ul;X=e4M* ztxk7#qJu?E{Yly2s;8-JAYs%bdIk8aU8`4B)hv4niXMThCg09wK%A*RK!)apwRA15 z=Xj08_qv5OZsGoS4^RC1KPTgf=`}btOB_c*iVh%4$CQgSVm=M<^M9JT5Nug83x>@& zjx6|KoCTnHSS<_4gR6D2LE*63I1by8kp#ypn41K59b${V!7i43Fuq8_7t+c^YP=Q9 zvP=ZS{6H$;J;B-vtmPF_YqE|4h5ilSiC85ndAo|j{MsT4b7ZJaEJ0Ue$9|b`Er@36 zuA2!pla>X?`$9GD#fu+$RKI`1g99J*g@_qfqUCE&wksIXCF_|i=O*lHNzReT?>N( zZmwnm8#7+&Fg7g4V3$n-m#OZHhjsb>xp-eLu0B?aMRE0<%&50xKgac4Z7I56&%KB{ zjib>+@^N&U>Ijy*ge90!s4;Dr9jL0IuT!I9MndkT5`MV>fRe)zcaO@~FFz7M*+_kN zIq?iWaH1@iT!F3~zI~Ksq5w#tafjK53B0FKBW}TQ5D~Gqc%+H|o4&XyKQ5|lYw~ls zGRBLPo30+om9Z8|KFUs$_!V3x3Lu1IQX=Jt#i0Xr2KV>G4K{F-vUf1d!T8$igOBR% zaP0bEdId5Z7z4^p80l3`D{w6giuuI`P|lRpJ@IzC8OH&*wfcuIhWo~0?!^qS@Ip$XT~2}<2SI5sXg@QsFN0_&aKBdCBXvhNV&G03PhkV)p|kC*_*mQ( zC5qS{PRtU6KMPe5uhub{+1Bx;)f%E;vXR$bC^c&mDmhziSoq^$<_Ci1o)>ExA`8x& zgb{f_M$t*R$76TIu$)?ht~YD_ymsRlnwhYkX@{!(TI=5Bz$lc18*&mX?xDA9&&Be( zSQHuDOV32y?;kT}DXK#u}5&Wl3DoE9PFBrGtG3eH>J&RUOHONd&4?&)+d z&UzOD$&5(MakzJV?+9@Zj^mDys$D~ypN~nKpYdJ}#tU@j%fVVG*%0e4lA@;dGdS3=Im_@lp;4 z)`yC-)uPGA>&xVzouoNv^i{CP`M@!DAbp{}IWuRF5i60<7s6^VZIxGhL@Y)O+KDyj zQ|i$jv}-{mt`xOr@Uwd+&bSpPf!c>FZZ6AWQB}o<`Q|3&ay06U`|HY{KjYqol8@li zWuR>^XJnxJCD&RqVXV-}%R)GlD+L2Mp_kmTak@MIOm|gV!7cm*WpjE?_EFCPUB-k* z@uBt$!>e))zew84@^D9vr!0?RI@Z;Hi;v~vrkdX!e*H%cJp+AvN)6SP>X_Gm?ZZoP z%C%_n;rBAdE=;031-lXidboan)jP(~uDtnVKu>16OL4Fw^_2C226unSZ zGA9DpmPXm&QDQ!XeJD%jzCZt&K-r)FJc*BTa`LkLIaJN+aa9V(J^p7_`lo<4ub(=x|nd^m61Bw)IhLtA#;%-D!B)VDA~( zUAY*y;v@iA1GdqvTw-@VLCzar=B*{c@%^vIW5iACsh zy3e`Qs)a#``xrHof+-%-M)lE`pD#knyDO`yDg@k=(}Pdg!0YRIakYB4UIB`3ZWH~> z9VX^Dkeem*zFX1UyRWQqrp17wfUr{ch&l# zSUpwiyXR`1>UqP>d7@T}7ejAn2e#M$-;_(V+}PaQmN3qw{anU0oFf~qtzidg~INNe(MIMd0vfoawca%p0Wuk35-PbF4|#!R_gXBjtj=f17~s z@86zQJCj<2jO?0g4)dX{$th8Yqi81A4wYxMfW0OU(+f(b)wmZYOY%NL3R_&4*YLv= z-53YW$yrE@cnNc}>5ijI<tUl`g+FMn096u3NH+Hd&4Tvc3eny) z_U7eTe_z@O9~d4x6Vskk)FnJjf#uw0q@MLSNS~sB+?wHawP50GKaBz|vSN1gP~G2D z%i?+~7MVWZpC#3dm!NYALOtphccI-Q@{zN_pk4xUTHzB;#$0Z1rOkk4vOQBz9}K$6 zll*CL%n1>MvKc+MjidbTjDMO^t;F1Cz^9f$2guMv4s}`!qlun&W*{lCc+c2YtmQAu zp18bUEf%XnI2uRK0;2Is3{b~a`|Ue*(QEgksJNwAZi_l#-*FAeP4*i$M*{UT23!ZOV z21p<^OsTLf(rSg$qxwV))~c0Qjtp?+PB{$_t263lYf(^@So%}FOzh0|xtZs#oG+;c zE!=>UfLiMA{<=cNfg+KQz8LwL3afTYl7!a-`>~n>Nf%B$GvCFP);tviA^EmAjrlAH#328 zCAz5F5*BN?5hsh^n{qM#`=-QZ2Kf2+saA%ACgw~z_HG?>VY}n#S~?bXq2#0WY3Sl1 z+J1$%>4Gj4nbdHC9mpo4Z`ZG3PD*Q2(ld_npqvt_-S_ebvg@}6lYcl}*Dt*W-9fom zTS6@gN(aHfE99B7`Y1iWxFg5Y^BbE&d}<{73;y$5EQ{ z=8h=ubrh(rtwmo-xx2(y{qfnr`fY<-{>M~OT%&xV+sk=)gWxTaC|YVqiLM&Z74S2K zu7cyR_g~r_m3SBqT~iBkVypKTaWvu8Y}KOR8$xKn>!!LZmpCPla|&E>H;yO0J+vO; zZvOtJtRU$v;05~dVU=nMqvzmU1aWPh`a*AVOex^4Jv<+H8%*#ZzKQcDZ{kmHfWmc4T@>$glVUGe|nj^;$QywDuK8^zM8=Yl8Ad`syDF&-HRi7 z_1e~=APpJpOekhTC$^Vh6mTz&H=hMyT?4)pPgPmBSD1n=S-eQYQMm^Z2(?i1;kH5L zPA1P)CPn2+v8{{`Xu>!Um)i$#t!2gu$krsSFQZX}m1|+!iCi+rZPS-Ii7!K9?z?v8 z_LOamgP=Ndr9mwa8xq|Sn(OWMnqcBuLeBX2d{w-^sTK(xMiMz;$b%whJm*Q|%P2_GBJLK4uR_VoDD>-_N&j8fpIIGOF*sPifL_K6k4J7pFa^$`}4mO zQ2X=0XYhd&K`pre8RY{#9KoUx$ZM)FQw9qQj#ZkAn{ga)O9~vU%iC&mvn|~kQ}J!b z3a)tF`c)4ct?;%UQ$7TrhHf3?o=b#)AP50Y_hlWlAP z@Y%PM5l3wqJ}x%Xvwzx~us8e*6Te+vJJhBXA>5qW9rY=!U^x zSM%cUa`C)+$k7CUF=1!ANZYOQ5GbA;WBNKR3Me1T&qE*&jOE6eL?4@S3|?c$nH#4D z1e}jtKp9+G0|HLJOiQJ$X{S6$D~GmZyUogBxNYNVCCWQnrwq%u=hc`}H&y8spB%erSFTEUHvDmU~^3}DVG z)xhHN{+>c$+Fc`aq4~Hu z&C*;YlBKzd3CSQggg-czc4%;Ue0UAltZzqp9d7W?6X=Jmg0iJ`8_+n}Wb^TYVUg zOUEXb;Iw>fEeJ|aj4M2J*{0w@ZqWj6$#KBtzQg(_4TMh)v8&<&(z{mqJ-I7+)_;?tUEj3V zI2Glthh0Yii~M-;=k7sW{^vN~%^@a74c(GFYlx zdq_5%zMf`fE_%u&gk_{>uqQ2SeK$~XZr?_Tz!aB|!qHv0-ZRcM$GU`8%>0$A&V7}_ z%vY~xzn-i*H?antk+atYRU8A^2H`Oo5l;7&T*R$7jvP0KDIIke#MdRt&0&w%1+fby zA8V&ct0p*ABOoh*Uq4$#kr8I5j(Nv9HaU=)sbR`vV!9_YB?|)D)VtaW0*;oMCgwh; z^0tq~PCX6^WVxGd8_{B=gC#)J{d&Hsicc?M45)^y|L5)i!$3U0TASN8lI>r)e*lwt zKlsggTxYX+I9_k+mcQJBL|9@(kt$HKSNZkZO*tYU_JG8I00E`q+N>=aJr5lAoH>2^ ze@4Qul2s0u*AV#q`tG_YGx)&O!zPNWFNaBDD2%sf4Bf53v6<+usZPTf;z(I}U^-I1 zN~NslitdoBB^vz0XEf8UA1LkW9OF@5r9FK`70}CzTYjjZjBZxez|Rg>$`DzCLEQ{$ zG3<+~{7mW@a<|-d^o_xd_^QZ&E5PGh$aC)(_vxE0udaRef`3&{H&ENyQ zXTq_$PsoJ3T&&f@pt?;OK0`;#n(4xGcC~kF23ze_;q&doCeHw%^D+w0&y#T$uA#a> z?HOAt_;?S>%9D~I_J{M(wtctJiS?j_%o9?hfDK)Hq8iF-|Ih>h182qtt+=ry#-h26 zlh&uS(fK~6;rhP0oA0T;6{#f{meQ?+K&lr4`s_=!XSvYi|Y#sSE4_ z?u_7`B!W>}rj_6}G^fAsex}mjhH?b>z(CMUFF`^I?2QjWX%iA8w$&i0T3>jDgk@Hn zll0QT?Kqwa1xkwhSS*WGp53fh^ZaK0xzQ4*uZ}vWX+~LHyZ*4ag&RXHpmZ>vupzE= zjs#;N1$;$4^%`{JY;J~bttJ?5B5-Ua^IkZq4oH2eO!=pG5jg(oUE{snsnrkkBDAj0 z?bPX^76jScjL(!pVOd8q88_p2pqMlw&&y?YTjcYIP;9i+aBY>&OAXgUNeA6mNew%v zXgt>N^E_Y&U6{9?OmI53a<|O6xCf39fjKw|A1Xfkj>?Wdyp6!|hqtru2Fs3PYtX** zq7xw3!=N%`yf}9(xb}{b{|}iHU4MZ)a}q2@+kQQp?0S87(_H4(X5!8Q@6|Q$mRTo_ zG@f5q!b*nv|9zDdwSuH7l6u4G*F#35;q42f#Ci=o0`+h)NgQ@`@`oE*jym;@EW)tX zz%RnsmvX@Im7{iF+C4g?1K8ulnPQIF#*PNnPY2>~=pEYz9 zf)7Mt{A9{za^_p#GOA#_)yjz!uZT(r`)Rt{Rsx`{bG85QS5h^DAub>Bc)eGCCr8v9 zlZIc|aqA@vp}gM|7kRn4d88qCf3RoCovRCRtYTxQY;GDvEG@1*F&!?a=`8{0NLreK zBqQFTN!*j;14~F#Jl9G`gc*?2SU?GPK$r0cDO`SOxU+NOnf)J0YHeSVX#v-vt=5|JklB>jQk-_K&Csln%ku^n$QD&^~3xFdw!T9+HpHr_2iGcu*q7nVPN5mfN`? z4B$zADjpy*^#hl{)uJGIfH32RIjI_X0Nh|B#MCEu$ZapR%}u$uTVGz^L?pdw2me#F zOWVzGe@Fk_BhsO7nhane2HfB$__HW`q z2XVrQ%zc8tcsHBIY8ce5ky7~LSg((%|HZ8~4iG$6mUUmuvrlDF+~x=Ea8ALBCR8z0 zm!Lg7wyE%~Jt-X}r%RB+u_#iW5FBI&@GG#s6jGgl(n1R3@gFitg!IN(ap0ziM9F{r z9zn@}{5}jy((|5hQ)C6VLOMA4CV*r$3Q_=TXTmdWM5H2NFIR+pHXiP?Z8xy1hl{+7 z^#ZGn`!wlfQsvifNfI!V9z%obboa1i*!*#t)TUH|HkT1fvLLac787BlezpeQ=MW;+ zU|3(E_`&S*!+QcZ-^a4c_y3x~2co!n;v1#N5)52mTMvV>2gCCjyg#mcJ6+B7c1unx z34Lnbklp3wO;OUg+Li6pl^ckjP`9>_qhLI10i`4Jc^J>WOTP?V4gm9qmk>;BUsvA` zaCf?qlFV!6MI_mE29sUQ54n)P|2LKIHgs-)5A>ezMkhZ3vb)p)yoh5z=S5TLnexo| z3M&dDx>~HR_7qZP8sdIR1MufMUuD+|9M{GA{yM*<(fRAh&zA32m*d!ccc&@ci$0d= z)*h3Nr?1l^*Gt-GCNMaj!=xDO`*x5p;OH+i{UW*6&=n>7u-$IjH5_}l90 zre?+MhZw&Jt3;Cy;pcHf=t@@5A}rVf%vly-8ujDP|-QjiY0VV#0Cwh94(i3(>)w$!We;V;-vxSC3MB?Z;RvhmUV& z-wwyu(kn18diAq#mq^e&k*y&i9V*%pEm!N9N@LoOEVh4|iMrv`OOT#+~mzxNLcMZ6F zx=K}Y=G%+3jItg!wU7z&gIW+|ud*;R0h`9{0C`Vw;D|c@vnQv|ENk)UQ&~J_`R4i} zQoMf_e5_7wYZ<{|w5$E~>1a1iRjTm9lW2!E*(kUXD99coV`>Fc%2*d;OaTwAw}&e8 ze|_mOh`-sS$cGOMmWPrnFtqBb8pS^BnVI4JqQYM`POw!h!FGs+bcAM%{C5PJ@#O~EQ$;v zCBMDMAC~tt-qr_wmejPm7_C#&=m6q~S$SGAV*d0hja98Sv12=D_%31lbvZ^Mm1D|y zSZ4CvE`(>+DJ5+)pE}CQ(%96uKe#&sNoC#k-wj=22#7s}A=w)S_ zq}2{cB|`9VUlbJrR_-@vqm-9vV>a60WqLVZMRS~Wd6f>Q^lG$i3)4lAT8)6ZlR{k! zrmt0R)BDF|vH1pGO9pGbFG`jBm8zq%pW0eaVe{Fm)kEamUmxPxPWRR6k7DM5%^4j_ z{Hmz(&~)saCV8r4gx05d?v&HQ!-+frF>66kRjW$P1ZUjto#vAo8{(Fn#!>%oNz|V? zOjmZ7UF27bSoQzlZ4O&EV%e=?DzSRv7KfF9(qVbJ9s(xVI2|B`#kUdO%AWXuj@Yaf z3odX$0ke=Aau>TO=#4?37a~DX(8cVk8U&dTOH||7>h;#&r_#GS zibTMDH;tV4$p-MMxLvFknWu5KKGp<4?b-vNx&obfgqNdeNLY6dO$W|tN=~IWbkVAH z49<@MFD`ll&Q58nX2u6)AOoYIGf1Yr4)zd*@cl;uI-B|de*ZBJo&6B6E7mZqZ}8Qb!7P;PRsH}+%oQBCXPbN6McL+daew{I zUAe|f=$E*P+j1aWeKGE1T>-9F*)sdISS^c)UbXEMoF#v)E?yLHo4_`GlyOaLC8TsX zew7vj@B%7YGb^#bIoAv?oO@yxx@l&mLkI~m($@>-l~Y_h`TVCxy9_juzQef;M3$g^ zircMJpc2GBSlg`)vSPwkYFVGg_w|2{@7cQDjFZqJ94q~TU0q%k**yCzzm0ihA30fP zyNau>a4I9wdW{YeZWlP22lUCK%0!qf=pI@hX*96+X7K<)5es|$TO;1&~T{UR1r10G; z6sMhGJhRxkE5Y~s<1Z0}{`gB{O5GoS99fM)B^C7`NF!T0&fpUkQDd8LM8n(GfuhvDg}eT9k87x3MLf>~{u>xpgd#$LcnZzPha5%wam z;96(n#a#iAq@M&^%2sF{B`ot~coH z;<1FOC+FHu$uBIo@>0gifjxsi_0HR7wHlfJHW3s}>2EKoFS!csX=VI=lG4C*HDtb0 zdF#nrz)BQkS8#=jp&xe<_@!9QAG2lt zr7TvL5mUvKc{ojC47+KuYS%9Oc^OZB9e8-C4Xwj>VWorfbZKNIEZw^n1^$q~Ai>UD zPjzw~GiN|)NC|C-h}?u?iW_cq^S$3*x5hIdaNbB?XSzy{;>Fer7K4l~HDgSOr6 za&SYACub&Q#bt2?AI`4x@*;n@x~8FdSl^u1YPj8srKZZK^USG5lMKSYOjBPhdCW7n z|Gto2@9{KqT4)_hlMOSFM5|_w_?Mpv_-!ibfDa4>zpXn&(ghtV7;m+5BBjAubAL!T z(;lVyverZQ;G0QY;NdiltY-SF~ zJGT!pEd4NyJy~q#hs|1RL6B*ynHg0#)q$N+ly~J~vrpB+HX9EoK;EM*uGVGtdA*G2 z%64NrSNi!p-%*f^JC6~;H)NN)C#6H;dHipC)`LkYW47cRtM$>V4ZF~c4=y41R9;$V z11VAv=#}J6u+6zA*&e4U_iSp9b27Y)&Hd0MYdwxwfd%}KvvE_My;D7Gxk+fi$UJoM zkX@{AUvv$N8|a(`TC2;_9$Mo=XfAyC`n+U-{dKxc#x&Qosun;>^6+$AGd(e;opMgY zAgK&W&>$KNv(iYbMRPM7QdRKoC5!rOW%hHUs^C;88k_spS!XASS1kxiiEmwJ(8Z^w5&>0YfVqWcy4sJnxeEjCu}LJD6pR8E;5)H`EORx_%VHI41KznQ zLuYksZEaHX%%ht!)Ss3PtJ4&%`XFL9i!5K7zEpoAwF#Sft; zO>MqBzwdm)8mZ0Ru8Csnk#J80-#Ahm9&`$(*217_ZMm3f$9&j#|JoF{`3fiGVL@FK z;Z_{SMNy6Qe6sv{GP%9ZR>hawn8__Y%(G;p)n({_pgXR`3JWlJR}4KI{E&vmXX)$rxLN_5^4b zzk+%c6o@Jh|1$2n7}vtle!CmTfvLw9zTTJlzrDuT-bn0s)6Aqxzp&n+0jlvZ+bVbufnp}m@0hX*d)WPwj zC0nOr4PtYjkmd$!m33ANyBGCggsz1VyPyipSGzvscXt`xZwz+YB#47!LHeRx;wsAKVXS}F-TApJGgw1;Sa1U?ih77*>it6i=((!eg3e(_&A`uj;9HrE-HJKk} z?{TcB^4zbdQgtCPE^*0DMU2QEWsaHOlY2-~iX{lij^?*j=6MfR4AZMQD3h*2VC)9s_Al zE@#RyUiFMgYNdmFaT2*Ob%}PnDA${1{w3RX+u8h8eA(PAPR&jX;cr`A&oeU=wNTQ5 zd%Cs+Qbj~wc*i0G%;X4_3z{=+gqKdzh6Eg5X(5z4aQF7@%Uqen>Pp{U_&^kvPo`WT z=Dls+yt9dE55~LalR&IzQn8?U3uUYtyT~hF7XQg%nab>Ly(~7@m)9}Z+EEB$tE-SI zP-r8BtvxRpBi~I|2rI3ii?6nKC=UHP;EdUm5VoUC!FVPD4?5CiM;OVJF%r8}ZpU~p79EAGVcVCivW11#MAdb!9J zpYzpX1MASJU+AOKwY8Xbw>(|t3vCNsYtK%{+NmgC|IrFIb!E<6yly0XxG0B3F zUPnB<1rJQZAy*sK2(q-bY{Q+{AZ4zRxo?lDJJCWCM^FuevIx*y2F}ZhYT>0I0XNt< zcv`Zw^-loI$84FwF@HmYWP+feyWMMbYFp=PbVS|v>cIxT}eFZ^h0 zyOd(aI}xkx@>qf7E&S6g&?3+CZ(^kgZ<<@h^jq7tzZ?mgSIIRO$Tgb;(Q7RX()wD> zOkhsyW7=}zX&*P>Brf}p6~5l&%R3Y*U0&y3mJt9xqBmFH1qjup>dc=W*_W&S&~zkz zmG%Tm?r^M*#82gv4$cOuCjnNcYkv4*HA2VwjSGP-SB=rUnPK>qst9Yk=Kr;!BJ5;2 zEIsuJDXj4DHDx)sDJg6<3MzvY98Q1CJJ;yrf*WiSNK4)RKNZ)0j&iOi^K?m|1gZ&d3NBmL^o#mb8q{R*#jFdF8dxt$>?P2H<3 z*p(a%C{2y6!NAp6^)M)qR0jDmB|>ZZHNw5(wj41JFkhGJ`|HQ-HoGnEFZ1Om9MHU2 zT|AUm@aZlz>^Un6stegO|JtIbVI`(?be^t0)j1x~1fXAlM#Fgg)l^VwFiu}>x3mBsx% zHUoTIKipFaEZmRdQD9Z`*{>J<-~740US;$A^J1QT$}Rw}){&luu_2!Wd~1u+l{9D= zQQU^B^7v$&eLv04SiuCEAHb9cFiZ&8y1FMXf{qnh@RBRVc@Vqyw@-ii6=DSoP6@lS zn`%)C@JEaz_@lWL;IwIQY!Q0u9vg$zdKmkt>So%`j9|v_8ds2Qit=+&R{ryAGL+xW zt)_~!a6678`>n$3lbE$!Uliqic9)kou}t@0%|{y0ntL1gX|h+GffFac&Fr1Z+Fg+Un~ z8Z|S9*;;q)Xs@j8UK?MY`Zq~iuCE|5yFjtPr%y$M0yuNGtm=#>Xti2&%c?yo9Tlg` zqXrYX=`sPnnBnh2&$$u8VqnU)_pDM}{0iqft z8UzVwEw34eHjU~FwyLXl?M>y4QlSc`I)Relc1I33sl?*vWIkDBaHzkXLG=C93!yyO^HXSzYg?U{6RJT+GdYYi31o;y~hB zYqdI*xWX6C1kbTWNU(G5lD}5NsH5}tW>-7RBIBA>rQaUBol-|=y^f)3`i$x8n__l* zlih9B|4bk^US;c>&F!+0#&y)hU8JH=UhQriu9jnr;d>>ZbbNoE%CN@LH3^|4lX$cj z{bk=>sa+`T#HEkeAb5p;EDS%8ev|aupZ3MJUjFtUjr808s9lluIPdLOH44&Hk>_Yn zA;d8)Vp}~}*ny(}bBgHo<-#kZcY^g#>e{VHS5nuponY06rX%h+^$L6t5j`31nGf*d zgrPPxXw3jHkqk>VGz7=EH$ffJlNoS9Ben)zm|O`kT8V-xXJ~_0CB96LJuJ6O*E4WG z4zHZ?LY3XNe%-yF&OX5(9#Ic&82N=R&~|H;n(nqAV7!)5iY6I({}^X2nO2AukS8J; zU7%Hf=_!@{XLjEOcp*fGM&GeIh0#hVAKK@!Z(=$zZ_es)5L<$TURy8G3PNz6P)6R1 zgOo4~xx}A>t_|?Q>X%X1aP>cRjo9HdkG%+YVQ18|_>_vel}%rQTo`}v73A_t^#{9^ z5jLnN?m|h&+;IxV$`ES~vmARigJ5Qu3Nw)G2Jg1lb7Zm`&^)|ZlAA6aG{_oUrgT8A zL~A3kE*0W(2vpyK(c1!@tapRmO=b&HhC2{VU>AYd#p4#FDhT@-!kJC(vis%rrn&X& zd3=|;imOb1*8)L(F!APt(o@qhbDR`e7Zh#yq7A+xLRi$TA0%iR%e)Xu1V>9AVE>-w z+#F~yAc6DuuOqox<8iqnZNYVbS%A0wYBH_Eu$j3TOwfXjcN3G z=tY)11Cxhj?aTZ9m z7xZnvGFzu4A!UE9SshEHnlo=TUQLmir`OE#r_R?#M5NhV4Y&R0V{^q8A%V@+rAS&0 zgK{90E*F{wEj!dmxBdpO9fy&LQV@Bxy+L}Rw11nz-BMk+NLmRc9e2-DB<-X7%WFg1 z7zlta5wM$lm~F8Z#;t{r5qTG3AT_Z{gaZ<=HOB0rRP?7aIK9T^J^^yOXuwv(pz={< zs9PpQ403Ci{;=DI(*jl(ak($1t0g3#{~s%lUfji?GU=@o(Y8Hcm4~In<4EhF!qJSW zARy;sXk*orxL|j>RM62wIzT2G<=M20`&df)rkQ|x+LV-BfCO;t;=NUhfs$L1I_DY- zq}`ZO=vILHa2WaMp~~npd+L622OnqfKdWV=GTMne)wfSUdHF6+o~lHX4#Fd)t!f)l zAk_F%iJ>=$QT@Ph$4aR%!UUQ;(4`1j#JB`fzdAX{UASlMv zR@eiM0Q!((3qmaJvT;D{a~a^tJNq#M6j~Qolhyh*2DHsWE`393c_9+g)fPf7l_w>` zo$A8T5hTb|8~@=){fi> zxBcbCIU9AV`qXsz9d9L77*A)a*nf`QiD;+PlOJryf&mIRTaEYnWU|Vc46xGNHzO>0 zhtCxd5#xtX;&rN)b@%hIp8iOzBn~R}s@LN8EaiCG)+Ty}y|h^K6BVF{{ZKn_(-f zdGUH~HJWt5ex1bFu;WqfsT6RA)=emg)>98cM<$r%3|@2-Y=n?t4U+OEK z0e<*f%o_Z+|IOhG=fZ4y4O*kN3dUQloJi6rD8)cg65#cMzaqG5PNF|QWxUVH7C{5U ztvFiLzMpL7*?jr__6D}V@d1OeDd-&f zi`fXyY+o*mU8NQkQ^rNE;55Ls@CQ|6XdB$WBY6Dw@3Y$Ak_*tbV?he-w8sKadpNFy zKsn%Ym*X8B4{g$DLR=Ad;V>&2Pt39PY`Q2Ov+K>n3_d9Sp)vQUp`QkFlRU+DtJPnc ze3Uq1C6sj3eVyXB!9;Ro0bkhqA}}{Z#|Aj^z?htKo&@B;wD;B>GGwf2$81r$LHPDf zLz($xj9q%_+d{E3!ipfBO{!;Z&JAu1*jN8ILnOSXx^aO>ejb z2tA-3eo}#$Q$c8K?h~jFom|4JanylSqER)qFP>pV^MPFnbyQKnv!B;#?^DE-e70dfD6y@y$L@Z2RH&5y1TB`y9Ry1EvW!-e{WtEx;nV<*O+5d(*<4SH)wH;qO=pjb?0U0WO|BsgrD1lk zCgGKZOf3(b#w5HNN-`Y(-#FzGq<1lM1T_AF6cB52LsXBkOnRlcqMdKxOsK6ENJDD` z!O z7tPSOfA4hY;0|Bt9s1~*KW{r&IR;9OkZXKtg5x{TgP~l{7T5dO2m5P0Ip)*d(`4~* zvs^r8^Lg>Pn9m<0{=d^4!}{$2zq+vg3`*W1Vw|?vge7ZRgpDldx6wR)U_G}l{*@hbH|K6(4jD$tN`N= zv?#!Kd{q}rAD4^l?)}wjHjQY<96M790NvSIyt1~Zq+B%*FrMX>qDjZ`aY`N-uOgN) z)-wsSg2tvI^u&Vgh}2jI3@~3C#G6;`~5w0*TDEhJ{@xLnAWx zr=bv8kCakumus_Vd zTZ|~sp4uXz^3ZfV9j8TC@R3TcgcGP2Orn;L=;<1(E2jW{2681tgoou7vr@UkJ_y5g zq>U{?`?9W}q%elZSua5l%xEqIotQBv>rvmT$$!d<=tjl*5w0EI> zS)cyW*P|!{l~B^L_B^HGUi!F%awOhj#ShQzC<{A4B}J4=@n(BBM&_=@vS5S;oM^<_ zU*ELETKGZ~Yfp7`7Mc3?Alr%YT8W|#vUYo^VpwqYn9c#*XT!Ncqs6?giq%8*el@$l zFCv#^7w!Wn&v|PWL90H1%9GM@ah#=ADIzYha3Ds*5sfON1H?q77`*B#rZwO_Qy%iu zLl6{hu_3nslNFxhcEPwiLtqFZ_3>X6suv7sOV5`lyga;Vn!Pvz=j(}mPvI1 zOyo>9;+h6bSAJun$4|1(}80B@`yWk+omG=FAB?DxL=zrtY1P@FE&b;pjx;xcbVTjHK9kH@;f(1CThC{erbFDda z_J=R@p65oU{+vvLN(hu>fHFC@&y`iauZqdT`m4L*0bmS&U(0aANMyc=I_onsKdd(M zh%D{?@Ds3i`>YO`Z+ThT*9PJPh${t@o|g`+;XHOW04E4C6%IuMUn zguu!`J2IjwsE4Dc#e`;nx-FVBZG@MOb_o}FY!O1KmqKL=zQFG>{?+fz{Hv4IYa?^t zx^z|u)+2ErdZtpu0G5jmXQ+ec4Vh13nY+M%afg$ zpdJRp%0rUDaPlhczKo101V}BJfcM10Rvluxsx0#+1n(_<*DpCr1Ze9_BTkZyUNr-- zoio@uHCxFQXp5CyT4l=-Q0i93<6%$O6ZClDJ{(0Y;Aq#y<8H`$%xSw*3(6~e`JA>A zO*)K^SI@v$OLGvU;Y>-USzi`4U3&`9%1V1DXbvo-b4&#QfCC(aZz(y~nw8kjV=Vu+ zLC&?eo&s_)+Lmf9n)VpJE4H*^!oCDRS%(>(qwTv@L?=OZg+>6FL=p`Ju=|FS?b4)# zEm>ryD%x43Fx_dAbqBgy)k`0U#Wv!fs`&>FO9N7z-%NW&ZQ{o zj5M1om&0~*Mt3iF;9eXCj-RO9QEcGtF0zN!Y!Q)J9P;g5WpOWF>8M7NjN(`06i<-c z(9OPBiIj>tl$;t~`mF>DTm}{44F@=rqaV1G2XqrC#oD*A^!qKO-{(-QC1<{EO{0q; zdN~5pg4g6yLnf{xy}dR3g-te$?h4XKce1+8?w9k)VtpGSmsLi0iTt-R>FuxXBJnpE z;qD%mj)>!wKR_QW5)p%B!ZBeyGs6^PgjB>EZzKJ<0jUfwNay^^pOSZU6eqXI#_OjB zPVQ+FS9%57H|2K0#&Qf)BZanTN~(kJp0?sn95igsmf32vc)!d(uCno6xK$SG@@Z%# znsm?|r|*~XK2j}!z70aJ`|OY+>ZgXeE?SC>1mz?m5_Fv59ZZ9+Ted z01)X@Y6O)aB7%w>4&gQS*jHG=quL;Frws#CTePL!W;dHPEZek!RrWICi_y!l^dHDRabi5od=~juDPS=yi2t!?05qdhkcO@wZW&*rPE`po^*42n059F%*Ac-IT z5>ur8<%b-;5Jk@ZI0~`#NGQ2>BA8X=I_l_>TwR3QBw(h{wim+JW5T-$E2hlBdD12(jYEkf&ay$Z%#t(-`bqbUbb2T`BPfaG&i2GI_B zG`J@J@}aES06Xi*~3i+c)FO~MgjUFnQnPa+Go0zsAEW4c|7lb&F-PY;=_~9Qh(V0Jf%-@}ZH5Hlrgc_?e!ipf_ zCrf+CtcF3A2e`-qR+TZwmj`ge4W~RnRab8(4>zmFMYe{o&OS{dS?fS*0lO7APc5MI zykxkXj+0*MwT-lQ3H9V20>6fsSz?(Ki>MKKF3toXggnGAt?~WI4@*q|?;3h&PnKEI zQ{TRf+No`}97G)^B_tTRmQ0uF|8Z*r+-BoA-#-K9)e^>$Jr>u?RZJ`9)J_L&Z}j(; zp*>a}?RK#Lq;!;gl_If_k3=~7mZKpwsydsVWMev|n>aWvcuZVNU_+;p2aBn{QJ4Jx zj$QKqJBKfvA>AaWzI7F~laFCJ1`0!^Mcw5f+=1h{ILyu;!tuPULhw{4U4JSb=19C; zPd?2a*0+<#h@b4Gj^pJu=;=6Kc|?W6>HG*2ft&mRHlt!mg2z3C}IhS~gD?C5$ z7HV=gwVE<9-0s6sU@WO4u)JAh*Q?E9{h^pgD5ytG%S9l#yo!C?L=mHlL3JgRbf_Mu zrI%KgcBv5|Yzf}d7-o8+_;@9|L0{EDIL$INMD0|E8_g;WrIdhbIQ($Rf0D zJMC0Et;A5rW1CB}Wz~4y5sz^%j;mg^4dc)Ob4MDEg8H{!Qh&|{vEIxvoHH6IgXjbeJMmo)Imh-zO zWG11yJ}(KlOenFmFY;E_?bsT{&akm*AQ2F*J~17HUuCh^2Tzj=wAsqvL8>Wi=m z>JLbUzPETOMxn5m%quVKp>prf6uY45&g|y~cEM?rFIOa3&+jlHE(Mtp5xPmThkqt%P|ll6VEia>Fzxj79?w@;v7)-*MNP90`LCcTR( z9mGefS0EM5m_E&6UX*V}zKj6wzly`Scj>FjQ{%5InN@;@#Y z%LrTc_@-MJbg$Lo@=`>RwvVRU{b#2m>UfE@iqmGe09OE6knb?plVohCycY(kyvCk< zx;QLgMTHbzwa3#xV;<&zzB!MF7&-GPQn6jy#mZ6C(bMHdN zHsng>TrsCiE!n)A%oe1)3+%w*rJ2vZizw#;(Pu?=wVF&H<7$L^qr3zip)&nl6U_QR zViniQQ`7PDRaRV$;Spkj+fvkpgdhBRnC7)X2FD{}1%Rzqi7oxM5nF38iXZ+MVvX~X~>;e8S zWTn`%L2?<4w4wh|&RloYhysrKdY0 z6#DQnY`#=Ib(M8Am%$^fg11O|3bLJL0OrQ=L$!jp1Z2O7=^noMA%`zSA^Wsf}%pO~P0h-@<$k3@e~PIqPi>UecPa^}~c2>@?m0>c;1oO4H3 zApyycQ2^Im(9Vz5IO^pL)PT+n$^{>pa$gsBv&9U)8%wxxV-6$Xu1?Bv`SxQmFBX&R zcDa~N@Y=0?(p{UNi_}TV>w5B(yJ3j23Q8rOWGKIWoy1{nB3*V8Q!vLMJz}b-3QE`3 z4uM56?`R=%ub4GPi$gxXq|n13F$;%3zH1bEIB{o3WDVLDrGvG~I;%xWO}Y{TRg>lp zZ@xKiP{k?z_F#VpY{+3i_=%GB50A^~a+N*8n}0LAy@@q|w3xCB6~A}u+$~3MImUQh zycAG6s-LGW-UsC(alzH>gXT9=XX?NZ?;|(dyZYgKU&`sI3~bia0`6|Lf^J-3M+1X?OjWari3eo4eV= zYLnfsHVgQ9u%VIpsM#Pf*_4jSJ@rSwEM6)mw;WwVfAlVtbTmFsQM(rcT#%7OTJi0z zlQoqDd_aY5#kkU3M+|vA5)!F*D`*>N_> zc%1dgdNOC`4H99A7DZ}7Nj}Q2-)h=28$vY*GzbzP;q-Pq!CFR2+ygn5i62o3M>pL8*mEe;{X(`M{8Tv01OP z&sn+Lmi4Uj?23`0XQxt(tl5-|s@9BWq}LOIm$W5MG66P-e$vCqVE~WG!mGN`>IwYm8%WU`#sp&T}9fU=!Zg$2r{%q=l$L zPco~a1rbhI!wpK;V_v{qTW1dBm{H{Y&zlJH{^!jpkr#JC0?T92Jh;#b40e^tr6Q8? z!LaKO<1}EmYl8W%ysxsG)$;Zs(g`>o5+7sQ#@=-kK;gicbQGQ^XW9kn3&tXz!>P( ztVsvm`Knr2Eg~!nLzE#-5kAEcNKzAPg_RM01%zrsQ43&mK!ARV!!_}pKQ*l)FaqOL zaOoSol;g47a6_gI4%&1|bzQ^TZCPEF%dB`@luu=+7L>DqYUqzBs2&&_*IYoH2@yOk z88nx#l5MOa%4^ON!y$Tc{%4YS3PGxKv0=qj5XmjIw7uYlQY6|$iccdGgztTC;S0+Z zMEQ);B>DKzh=@Kh6U2%@Wv$U|{W>NU{|IEu&!4OEDZAc${(Kwjz&;0_*1XXbPw%SD z;sHX|!<>cM|2-W)U#Z?jgk;7&OP>p33>i!1eK2Q1DkF`?3t_N&OPO<7UmP96GOL+@NnCg(83wEjkOcDr2IO7WbLVKYt90#tsF(v_#+uEVq5P6h# z=$IoCat2me=Y)i-T^yV_H58X1svCl}(!u2sz9``)(XAi)u6Qh0+2eA(xvGlA<}s>6 z1ZVU_8QT}D?;rktn-2Q8yt&_0*=+{j0PA8K%`T+u&RJsS(6>>*PVI?4ywZ3RU0_x^ zbkB3F9gF04r6s;^N^vqxp9q(F3bsQ}hf$sc?2@RnU zSPbp8z7-KFh@oLES8!!-s!>d%Oos7w@5-yIr|j$X@_xICNs$jzyb@mx@($Y zFHzjEJ|4XWk4c8WFZ1NqauZ<|Fk-*ycFU2{34bl`2Em~6avr{fg{EYk0DlU1NXw_u zpLQsCg%3ng@W@STm;?GYKnzl13oK~HsytU>H;mEfZUa5PeydpRXz$?rmssf!;xy2* zYw@dk*xo<+=C!Zo^700pkE3XhJvmEY8agsHlaRE=SV&qkC>@XItLwnvx`tx1Zysfu z_|7D*risd&cm+)7@Oc`>5W@sjhcq%jU>ccilJOr-rjZ%(!6~!6H4{+At@ETEYfT?T zhZmUa`-lBOoF6IS`w-7Xc~fTFRq=Emi*Gya35v;MPcjN!n2O0gSJ%S3-J6n*#xu?B zDvKlWPN3Fz5RApT9Xh&05vz<*F@YTcw_9uIzSAm_+kL5mb_j>z15q3vZFC3fj8k_( z>}_Zwvhv-V!V+V6V{FH^ye-y#D;}2E^bUUl=M@&0t5vzqw%J8-6PwzJFa0caw9qwC zr0qD;Bf6d#w$>h=j;(V|zH%EG8OQZEy(-E4w9DzGV3{P&X{#bi@JuSAnWf@Dlsip& zZEW*Wfu*Q`Lh-moyx?P^{|Q1dXWIz~Y_cmfHi3xhR>oEp>YmGHsgj zIz}~6LPLb^7*85n+$y{d?-f;^umcDkqzKjkNq5z9+n^8lqc#h!7ly0b`||D@BGRku zV)M0(r2>Ae{Y#d}F_R)}@ZF75D0$TlN=N0HCRwS*3ACIuco~`Ru_RJY z6P6WG%Bq-juJal*QcH25(H4c}HZs=fU^(W5Q;wjh+ko+Ax%LyrT{uT55te=3%b&<; zz%n|Ov-GiZR@{w5I2cn1i;v$n$HBn%ShvEk+?Bn|L2#Fb!zhb3d=YMvxnWhJg# zU>wnuXs+ z!P@^m9S7%2PPInjWhY;;-6_yn_;Z?X*$H@H4y1 z3eS`35MTBprj9QOyZ2t|-Ti39)WDQtbl79VQwS>z|hIP5aK}K zV$s39juXnAkOz9Ve!|G9jggT1S&{iqE#%ZA*RmoWIO)W(nhh8bQXLEM@u?Oj;JV+4kDUuGJzHc4KoM+f$}HMT0@0yZ6+1pxbH6W6hLw(48k^ zRau9312E(36U4y_r};Q|J8%k(AwqC#1VyD@c9{SG2`5b};-ZArw=u+h`^O2zw<0d+ z3%G*@rH3Xoi&QqJJcla==lX~v9{rh|M*aZ9-P?z4k==s-s#q#@9@8B|-=!k(2-6*F zW+kKX?W?56GGz_J(VF?mevAm^|CnZ`0>U=Qxn+@wyozuoEH%8ned~Y!MDV(;!2mvR zD!h(3A%Q5%oZv<%ZbcH|E3^acGvK-4L~DB##@Fsx&X!C2xGEOQ+hvvAY;NP2K5@l^ znop-dK&Ts(j^nRV@z!aJa}%a6P_si6MYX|m9EM0kchrSe2uF)=A75smpMU$~`_|&y z1O;jarJCCWYM96w^Ns5!lnlotPlMOh2VV$i`!hHI-9RG03(W4CgnrJ4e6GqxSuHPb zvd_!yb*x>t+omNz`Ow5j=;Bl$@4L7-K_ajv9m8iz;k6N+1YZTRjxhgYMv|-Qvk zTc?=T2E%DRbZ~mFX2Tq045g!bh&zl0)H8U`g1S)fB;RWhd z7>uPwrXrhwQq1nJA%5OwULheeq^#@0&yfzPxoW(GbXWE9nlVy&EW%4=sgxcEw=Xw`Hf+0 zjG7%->jd@GPU1vBQrj-?%M9o5!daV6sjq9eyIMYE7n|D`TDE~6&3?Vd!PEY{wVETk z^49iZx9AGu{SLvSk^yu5D$~Z2^GGDCEaAeEUBXaIa7GyfvO*h64LV_#KojuG@j7iv`UGV)m8J0~ZWhS}G?FbB+0_!> zfJhiS3B{VdOS%H<5XG9{Y3bPdDpR>kJ3LTjVmCWzN2VVsPOa{42lCaF*3m41Q^aYb z{rJQF;M&@0)&j0a&Jy50=nt@xI|-Y?T?&OFGyGT3+rd>-&HF zp3d{fn!o{Q)Z*Yg&H{N+SsOok_bGeatfFmd-FN0JS%lD=!$=kVmKdJ{5!jOs-SZ_B zYtAEtVlOWPC)&T9)2y}arY&2ea6v{m0eLN`0cBQXd~Qc z#k1i69Qy0r<+GYC>EJuxB(8B3502rL19)Rp5;oCZ4hFX!!DU1Z*8uoR>8C=pCmudw zv2i0{-bd2;r<29TxC;`b7>48?LL;#1nKU`Xo!rU+-5fhjGB}9Sgx()5bOme+M84bP z+F4p3$1w_LdoPVwIP28OQ8OhOa5wW5bkG7%@(N2NB@DiYxEP78Fc4`a-`gr zTr8ZfS>$57%H({miuFyl$}S&P7iHy#>}Fr83`f`^l7SsN0T4Q;e`&1fl2oldA{|lB zLyH|5QH6Gq*}Dqv%zo+xVS1znwL#fd<;BK5*8oLSSiAlvTp)k^*ZB-^z_=E>?OSVqxLG`^*MAc?l!B{CSw{$)R+5lmfL>lsZ{0xwuBhg)}EJ+ zwdWCM7<*cd<@o3aBfm*iIY-1u8skG}IeOl_u$JN61I8S2P6=^9ya9#Vwg9#bZbzHt z7;(pmr#aTFzzSUy-Ze)kZ_abPEtYF+kfT3xU*2Jl|`qN zSx%Hw5CtCyavQpkyUqT01a&|BJAZpJkuux^y~jKb!P(G+X0lc1(&Y>`TB~+G!J??( zTOcl!v!mI*+@PU)Xu z=r;kP{;+gNou|Novk}Gs^#fM@eB$wRXa=Sav~O3^)KWZ<^~1`Q@lCevf$RqiIvWza zdu`tQLko0{mOhBMBO!fYx$^BClqO(l%?gaG#kp@-SBy2%2X|F@fB%%Nil@!PJ(frC zCvh5aEIP#e;dTj-ncYM6?s*}oL2YPN* zu0&3Ki-+vmbL-FBbU3b^Gp^6-i^a|MX|wJose6{nSLl+|%2)TE+uGBT;q(7qrJjM7 zGBR9OF?g-uL;k)uL12}zMhfpfTABF z)@;jV?!Vr`ZZ0?*Wp!6Aw`BuT;h@dpx{rmecg4dh`T*c;j)hy zA8&*Wo|KNK^PO?#AY{YCQ3tUIm&E!T-ZYt6aEH**fw}+v7p)=aSx_?E z|HR1iFhJHGk`9oslGN(7j)=TaFaBwXAn@`{4>~0$PEy4I6)@;DJAFx};hx_Loj+q~ z(l(aW&nKubMYg^#sddnBoX`Y}QKfV);f&eNgT&#S%_83HimcCbbw7JO?$nCY_>uv8 zKaE{+sy{3pX6Kt0h1)Nl76p`o_s9=g_1!lkq3J-$ECGP31caKA>El!oNv-c?Z3Wb~ zeF61t3!ol(+HTAXeSvk@J-%)QHt12=oWadN9YrJC{x%CQscfVOJvkUm$ zzc!DXNd10Pd92|xANNj6rBfYK9IIweG8R|!B(XZ9@R{d~Q=;@Yfn_-o3=dRi(Tpf3 zjbsjoVd)69)`I!1F#P`Ko-hm_I1voToN!VUt{Z`YFt@o>zB8`d9I@hdp(Uoz;t%6= z2>_QxwaRYGVo~Ct+iA&X$sB|pN=4kBtBZqeU`jgJzDoA0rV$x}@f!+;_Hh{^xYjlz zQfM53*IOPGB0x1{TZizrsJDzp#5z)Q!4MW!Yjc4wa;V&sU0t(>t5{?gtIg$&$2O#s zi_S!<0IhVDS65Hj*X!kdwABFJgtKHDLLUvKWyO}$QUu#SI~{}Ps|M?Mq+^x~-QXNbSt_Z|({`nHn1( zNh!8&OFA&WN|giU7_Q*W{RAjVn4cWZCfM5rU$jd4$T%V?Ly2S7*Pq%EyOEGMl%@FX z1d=kby+85nnz|X7u8b17a>S?xjW(_;;}6_yW8qs*_bOM}mu!2xyuZegxs#I2*nx29 zn?zPaPbHb)dC3^NeWi?A9f^w>C-Pegkd4(pJ1_;|Wu>SUE;4b^DY!8UDFkg#L7@Dw zHkfVWhmDqki1{M{cc~FZGRtL3eXeE(mWWU^7oJ`sn~8|KJ2V3UM{pLXTWhWTQJ!0s zH`{WVt;%>0Lw)^cNuUu#$dcsYbMaDDK?gA;UEG%Wm(m~9thl@X+g-KsT}dzD*dNSk!10S+=@tgBi}mGG z_N7>7i{fz^X@2OpL+1eOnrEYc-3HdFYm6%<1O}yp`KzP}Yi)5#g`sfkfE%hNT#Z!6 z8=76_L>ajEGKL4yni%G&O6p8&CAOVR87$(1lxbs38fk@=3H7_06&Rz!OFY5pVz$r3 zn-|GtN#*V=P6NM>lz09LD_9n{SydK`MHls&*iM~^h_QEUYO=ZK>f%I1Mvm8K=(pYCl7nt5@n8SITF7fT@p;~5FtKzTdINo%`9XoOkeRN*L zt(%gJxcBqq84Jd6ZX4r@zze3}T~lJ3nPo4~qP!F=ino4548Q|(2PW_ywSYHTW;x=H z6lI(t1h<+QSYlc5TnM5<$;JaJ<^BXt17k6j+{Ht&F0-rbvZ%@dQsccD6TLIX`;8x( zIqohqUVCafa?V$^K`0mLJeI!elyL5UCJLW^3YnnH;oZm15^9_^>OhXTkq$nXQ#c1V zIOdN8_S%rbT-}Vwlm}^u(YC)#qd$!EA*?-@=DuvM*V!h!tjgup_5A^Ya5wqJ@jH_D zUK$Fv3DS+V$ETz2d}+cOAMe0@M=C@n))6iysFVZmzVVq!_$vmu!g^KQ_WS@U_wZ9p zy78wsCy{%I?R|gZ!#;hRLVT#1f%YXEucE?afUmHgD?p+Kq2A2o7aM%=lJ1}A=I8U5g!aWyE z?TjQL+^TQD(x&Un3y+@z;|Ka>RGOe~8Jcq>MVLRf6hGXapKyO8?5}us@q-216m}h3w7>X;| zSone#lsHAqWV?11Tr=^}i<}Y)*H3w%Enyy`7jakgttJhbd>dMT!6i5FH?h?9zmNL^ zI1liA4kLVR1sxaH;!xrt724H)}?ddI54aZP+`#m)8=-$26uaj+lYWo(l(r>svmkW3dX5? z*bYmL(_#a=(oysF-2eckh2ybIs zouYjg-}!_@!jN2QXat%`Wx0S;W@tzCTz}4973KA&d|a-xy9~UtiWaWUub&%wDk0s_ zPd~TzuymlEXG#_?OBu0Kp@x`JO|dA&{e)YgBjX#aBNPJRgGDJc-S8>aDfX$oQ|xFk zithZ0H4s80nqlv5j+C;5vQPoxVG9Osw;3#Q_2l2ah6cjC@(R`FqO9(-?S1*RsP1u~ zY%cmN5p3v?{-vw7MZ{v$+7pu@^KqU@TBl5G3M1j3Yv`|xBMrG7n4;y%iT~&BYP;LE zk?t=diuV_OYnz@tZ8zO))An@xjgA#tu`K0Kva`;we+F_K5hjKrL6IVzlWen26b>-p z^t|(C#i?M;gC2kQcP!?` zG6g^Xp2G)50`Is7Mh<+dM$~~@I^X+Rv#*>c?h#j6fZMe!a>#SlF(D;?42nb$QM zng75vhZxHc?Z;qElS}49ZowTxW=vY?ySy~~X#&%sDdav+lPuzovAetiGooAvn^QxS zrmeeV{TZA_2BU2tymzx!j+$n8Ej0m0Y&tDm(a`ndqAVY>RaS07 z^lLNLyfZL%AHoo9cK4ib%hBe+L(;Kuo)lUq5C*LuUd=81@g+wBasweEGqMSS~<{oC{)TWxnI1-Rrn$x$pW{P|T5A3)LY)Z@RRE*SZ0 z9as^CM3pN)oSb(~k0QCz{h^!&cAlt&)onk{7JF8GIdCSlLmISVQ#w4)GYty29}z|8 zeT2fOmoy@LAhK3Z=7F%pK@{esjLQyC0->7I$7rrKDBgeZKNvp$C;xdg0d33)U5N+1 zLe{{BSUauKdt#3?Jtva;vp5YL&yFIT?HrR3Pe57H9ycx zxu9Y}ED}~Or+YUv55m1HN(j`O`2qeMPCS$PX#pUdeO_)iA3nq(x9#H381NokmWsUH z7m0_u6>HML_eGL$;UXXBaB&|13D|V_uEmBDKIje2nrq)S8zlr7P6Wh8I*AbQ7nZmE ztCL~??6B0xZ4m8~E0R7C4*!WvP^L;`?G-Grd3Kty7`BJz5D|gFnc2NS5wMXy4 zNLvZuUG?QD!8?hq6&RC_-Sbt5b=Jib$yV>vhm^q`b(-^X1%QUslrs@;$kjwMtt~&I zYY=TMYpSa?wU!O1{}p#fiaJd%&TZ8UM3tKx_{LaQi`C}+jn4qoSzG=bPA70~ zn?Hs_TV5@*%MIZ1{bsejSvJzQ!Yw!(0$07%m&k=JsZo;q>DlRkJI}nZbJ&nvKZe#4 z|7J}xOX1~BIJLH+9Ss7eW+B?Qe{|(9{4rj|F1Gz$Qxv_%#Z*m*O^e|)mk?iab;@Q2 z*J3p8D5>FSs9QdED_oVu#k4vVI!~NAIB($cT$j){Fe@2}ALgm1U^zl2b6yXBKh%^A zHO#9I5c}_((xH99&JU;8dp*WREUu*=qKS%%oWfrth|pkr-<>$ot1=f@QHNrkOPX^{ zEVoCwWN^x+fv;`j+3nr7SZDC%)hfGLuF7JH1hc9K1|*mTk4eYJd6I2)WmI4QkQ4$G zfA993^C^mS!8b%}EmJl+ImQR7Mr&tfGd@N~bv4DRO{2O_g^$SAC-BM)GtO$qY(gi%aLeNFbKDZ)`Zzfa&0vuRx8Jm7A(y@6_?5*a|{1^F4KJs4B-PP7@qdx9(O?J zi+dl{!m0_e237^{jU}pjaZe=|_;WZ7%&bzm7G=39pQHsogH6lg7HQEMmsrrbz4hR# zvy%!!YtjLCo_SKs8PeSV@ttIZ6E={BKrjY90dOS|o-@GWGrJf7GB{bm6}=I0PpTns zdfBd;2NFV1Zmo0xlr|+-daxlT*d-uX@!#2WGva=JtROwTnBe(3-m;1GGeq;Ft8DXW z1DLybxCS40fZY1Z&l0v)J#|XJZCW0#!&R{*8E(JKGa0ItMWkgN+s`3^7>5rfl-QG@ z#VmuLakw>xI0kquQbr^;O*R-qk{jFmu`B+e9W}i5HH3X1rjV%4R()Qqo!i}i`Tn|C ztgl(47ul{{uCLnw@o2<=1TI$9y%Qn_1ZJfJdp+O#0)X9j zBE`dH<=c$BptOOj=|I5Vmo%%1)r=~17?>u;8cIcTPIx9NhnPcBg6KXOi)V(^^TgUW zaKafBhP4(t^yhFE7~YyqTQ08PAI#ooA2-+QEjB1@5G};+&>i>;h3=EqY>3s`q|GTOTDxPj#rAn$ zIAt@-`xX!sepzm^_t%RR(%W@p*jO`EejRMqtBQ8;LHC4jmtkYUlhP6LMJ9Whay~!Oy04f-&$D+xan-XF?mIDvUH&lo%sh&Ib1f zZ5EgQSmGA`&boj|ID22LE*HykgCJ_pN#M2kGfh+Rn`aVWwc9N4;9=>=dY)`+-`G=V z8z*})K_Tpbi<>n>4aE2A1)YXC>EQK_hMs;hl~+kTrjr|!( z@T7E{oNw+^0H(ylOlAp_+z-T41IRu|$_wJSpoSePTaSNwD9T$!l{wO= zHIJe^>X7cyWiQMO&4>}NxZ4l%WV&@p-k-whKxf-9^EjVsA|?00C!>|z!>6W$>x)c$ za!fyvIYl^yUrG#?`0P3AKvH7&16|`>C@YEfX+L>Hd%IS6_h0-08%6WOs~kRn!tRMj z9Ux9fDZ%%;$p?1C@}S&$8BW95bCT<$UdNu;c=+wHp$9ysCOE|`X|%EHVgo^6_Tb4- z*pRdpx|)U9Z(9oLAbSStplWB5E%tgg}^^{l+lA1CK2>L>L~GB}ok80V~1 zJU$_T3qs+2*D0K-n$F8X0Om}bDa;`Wsnw%M}W%fJfNIy&~pa2g5NDC~X} zbG=x28tVO~S<3aClemM;A1@3Jo|+D!<78h?E=d6Q%y@o5_$E}j?~!Cf&GhOiOCT8$ zRyZmRHpxIyWnEIB+cacmyg(QALf15GziNMAM4f3WbEW*G5NQ=s?hpUpW0(__CV=BO z4JeJ(`Agp}TV7^m27%;eb=jiKk1hNh_!{^rHG1v1I*gVYn34>-{5-VOp*w6Lw26nc z$~RNOOX%w&VjyX*zL;!@RhkM*G3u&z2LAZSRPgVkb8s6+tom|7{konHgFK4m>Yfho+>X^^43D3#J`{)_kug%GGc~ z8hatNBo;2xHm;&*4RO>_#Z@CtM{9F`evjbvpWipu<_2olin}2p^Uwyb8P`VBIAT`~ zsRK66;XRXzI9H*4eOhc_b>I0HEQihTvjgsS+wa!J?IM4;E0@{Ts`zrVx&Q7{x$zD1 zb<%@&)4=X$8`Cm*ak(isyX%MSHoINy-WRJ6zVH8XvA(z~uNGw-(!1_i0=oBX1q*zQ zVtZ4TBYlk+#s?;)WBfcb$y(ERxzA8|XBk{mAkdl~gbPj-w^meC%^&~tYp^YeGt5YJ zgkTZnpZ)e40rB5nkHSBT?|j!7n=@&o6>6#G-nBYt6STdV0Ikpf`2|8>gJj8HO$2sW&TDf_i1n<1|l|;RZaFJVuKc( zW5fpIh;NzYM`Z@4D?^L;pnI&!sicfLsa0Zb;hPmP2AQ({HYku&1H5|E^h!NlX(kIt3L~Eq3W^WXbbfv;>@#(J;?wp<|#@bghE&g2I4i? z6iSB5?e^vKO1SMAicRUVj5rBz^Rar{k1@)^Z~wx=&41-To`tdy^+tjuxNyp9DGW>D zD^!e#(aXesdWmFR$I|*UI1S8gOXl^JH&|D8v01_OzmdZ*#5mf{Jh6jk`Z5{1j-m~o zoer)qGFfZ1z%&lwu4g#$!(*77pd^e0An?grMBor`!oodYDx07Q{`>P{+tc6v{m*eE zVX)2bTv6+%rxjQcyYMUF`SMz{mIU|bZ5rv&meL_D(uY_r6M@*7XFh7oj>9)Es{nV0ek|ZC+2!4Chl#rO z)qLqs`l{}EcWmsY_!2%W9UAAES=CHq(C8xzL-v%Nfyzkz6hNWYh#+6=cg2Vn=D;N9Ju=D48}k%>{TE!r|i z6TmgKZgr~A6WRI%c2%D|X<$Vx?qnjTu*+7oy}A3dHb2ROJ@x0dSUqg7n@d$auIv3} zun*1{{IVWCEgdw+$%YOAnwrTtKhu(w*lXff(KR z?y+aDmac;d(H>Ztb4GM^xcC0Os|T90&MuuiNbasTw*_3=vyYqg0+}znU+!6QnbqA- zgvaBdWblx5R2(OTIRq+NB@lfVLpX`KS`j6H>Rc&eR3)2Pe7eoHi}HR^R(^X- z*TtX4`Qd1>zAP7?vya(_#oczdSjCaF)rOp@YIN{lDl4kv>KYiS2UF7Vc%FGvBPx9% zL4@iEQ$9I1+}OchF)Am@J@TERF{%%+sMg0SN>TZNx4$Ad{Px#I`GH}i4dZ?ogo_W? zZb_s4Q-Kw+s8z|FSz@?s*FJUYU+wiCzIMCYVvV&>`QtfKHuc%!k1$mC7xC{_;NtZq zM6Iv)R(A?pMX-@-{28a&f!387Mh>3W>vmTZZRS1y4%{)$@>5Pe2$zk`UZ?-%vk1 z0KVM}gPVPIUf_N4+FJtAdEwwvwx?S)LT9w5^~+lXI)8aPW-k`vgzlMIr?t>VOP11$ z6<86Su+8%QpYe7{h|iC?gA5LDOzg#<$!Ty0qTN{Uugm3jxA}Ap>sf8eWzjw9@N5Il z0kVPDhDbf2Yit<5eK05;hv&&@HP*y&nC~S!9O2Z5F$1L_dN#$veb{Oz1d`7NX#`5OV^H-C>A5l3CnHKoui8m?Fnqj^z3aunQPyGR~J3UdAwP6K;mnS{@G7Z;n% zGe=hleWBH&PXoAcPyqYehrU%OrJ`-e<>B10iYduJtLG_0ARSV5^CU_pAk^`y&jZE0 zeY+L7zYp&xw?v^<`ep@rOuMiKs{V^VVX{|0z0TnSDAEqrtbn(A=?$@Vs(Q>yy2oxlU_)OYO4-Gakg!z!t=G@ zB7&8NrX%V+)49TMLmDf1aGj(6~sv+E%eB9iGpV#_1wW?A_3EDpemA9mU;Q(JtU+|=yXG7EM7>oD>iGthbCU~8 zl$3bFw~EM;%KbT;1&1M;_5D=bt+LPA*GV`{%@dU^h@vm-#gOP5I470I5L*J4ObDKr zj;-TlZHH*7F!s=^6#}Ry(la=Ta6_>bVXAov^CVR6h2sJLp=aCIptot&gjz!%ff-2UsuKU{bskzJ{4v0}Z&wb|=6IqT>9O)tI`uq0zFwedz^%ZXJ^ zvt!L}C)G|ECO?5VVvwm~+;^?SQxt(2v00CddBUdVqFs`rSS|inz+RM@*UyHa6vP@6dw&)F)JOb=b1x>Z%{0X z)0#cDK2iU6P7kK{dJS4I1g4!NN*N~%Zw{bqLudRKo2Hq=2T+(kRT=`>`h)^pFMZm; zj2ID^np`>}1V5tM;Lq4J>TWSj#joSaFEk5BPievB?D=F^(BI7qO>-YavQ}$KOq<1`f z>Vc7m)KqM!gQ4|xXx}-(X-{c}{V|+Q79kduu8YmhCVMDui!TL+mXlRs2wat#DmaY_ zLug7m=FT^Tt2jf(Ai|{(ek$KgFc5{|>Pycw0aNiww$2bqjsKA_7VOn?Uc7F zWwzUbDa!{;Y_a9?&ru)?{FMs4o!8eeQ{iAtGW6Q{CTNAFJPN&Bd2LflEc|C6{z2cd zjLP5rsX^Gd&d(HP4*m*j#NX)Mzlnm-boW1X2U^qzqYk4DY>0}H$y{n;*mKdwq}rK3 zj?)3)Sf1c=vtDN(vc+<{z-HIZp!clmwkZ_K0(;VN_(cv6V+v^#7L<4mZ{~kaGdhO5 zGUt-T17t=mQCu4#n}y1vEy7J4-|rmb4bux)@wLL9DhAO|#~B`t_R#T)+D-0@v^Uo5KfCxIURG zS$yjgG8s;ABNVqHMarRSMXV7+s+>_GRNFCS{-{l(q*l#Ud~GCqnyzD8K)R%Akf=7iy3_M@fIYW)ZT+Ky*J^2LiW;yBk#Orbx;p^p_K> zI-om%7A+D3;Ukh^)4fdfTloHsz@{b;t}&*3vKse;4dA%`KX+Hx+_sTy|H`fVj@kMCz+0R+-dx++z1bwSH!rs+ z3$hqdq6(zsQhxn*Q?>~RJs>e4K)|(|vP&|Bp6S6+&*|>dk*;A6Z=((lr5Re$`8`F{ zw$TpnTZq~dqjSUuodaekT<|sspD?VlZUj~OAU$^86Y%_H5W&~K99M$2%dfeq3{fYA z7#^{!>M1Lq9&X#EcROssS;*h2_xho6(n{ln5EZl1F?pUMyq-sj(JYe~Ck4m+6ccCQ zZKa)x%vpy^x0PD(15#!*3*6FoF$N1vZ~U0z4OI&$=>}zUA(>ST?eq9BAELzU>^ZZq zZD?@T)^{14x%;9#24Bwtp4DydPW*Nq)>C_0GA3s8Ez%8&ZqD@(punw5TljS`L0E*> zRtqa3jv^^uRAaG1i37OUsPw`ww)IEA2L{JQdgnW9CiLNRt0qv~fmS&;@Xl1aA}$^_ zVBThv!4g+bn7nSJ%2cyO_iW|21P!puhTTF8diUYFxVu?L5VEn(1eDx8um>?)^}w+h zxmm9sw(#n0T9**N&sUz9j+66LFfcySLlyvrxMTuuanei=CE=2(jgY}PvTIjJ#ZbP$ zAD~*vF0!{V1%tQ0w04o53MC_3pHd#X6J58Q+k}gJ%?wIH99|p6nQqR{iN%n3*rpLf z)-du*&A{g-vDMzjalc{jEi9_QcW#5g#OAWuKH(-HZlSN}h9(E5W#UsrHhX zl7cfioq)4r%fR}vC~u$IujwP^qq?DQ&6QI~N7W5V2k3cHpU!bw#TJ8>T@j>E6TIVt zyFv&MpUQ}UEfzfQzTFDUzy8oM6$Kv{JbI;fKD|I7r2w{K0$H(z|7XTDbZcXQD;~3H z1g^(o?dOEk#na9DadY!DUNGA=y)dcGeBs=+ zHx9r#n+95v*ZkGGEbg++b-8?u1)*u30sXJ`)gA5*hR1XU)E|+Kfa9>8L)_af&X`|0}pYu2P= z@HaWwOG_D;21~fBa%wZx(!D z_#id5`C})gUKm2D0VtmvY?C`WErmyJ76txC52Y!}kHr(<^$KqPlg(pQJvDqDtM;^X z%$+AqDn%rRC9qE0FbjWhHw>iqmFI@N;D{CU)!#W5ys)9Y80sxG@3t{ed_QSCf7>$e z_QW;&v=7^guG9E+!)2gzKoSGUgy+5)LVWv=?m z4pjX(h0Immpkzq?u0h7W`xe4rZ)mR8bGFm0b8M)ZgMJ(ZinnMXq_AXF|1Ng3N(A0M zPJt|6ZL2wGD_=b=V$&YzTHFu6(4;mz=!77+Y5~!74&g;AxyigiNv* z#nn{_;qdkP>gsmUulwq}tyg=$_QUV)%Z&G3RcuO!@CKVa3WWEKs;!Qs(>UBwU0|3; z5yN0~uZS9~gZJ6SR0;xf5_4&X(P6KB(D1WzjV1e=r^@ z;WV6#qP#DcniDn;SQ}htox9}3t5TKT2k9m ziEwHWfrt|lsNP;9!(JFd33N-DgF~$Lr&JQa<2jvt+_89j4;S(5X0^P1xak$)o>^a@ z>eGRP+%Eb8HM7z|yTKlR3si-5w49;~J9&ML(+sAlLd%(RPR6DzXb)kqFwV6z%de;s z+%_P8H9`q)Wam5g+4f1))odW=-@*$O7{u6J8g1dM&6bBKA2yp}waQjmx&By`F+HwR zG~u3PYVKG6bPtPD+Hh-6OorH3-y|ChNEB&vz)6bU;4d~cNjg|b<~(3Xq$nbI#w`~I zK=xl0$o}zCCGpF@{^Ps+Uo9Ye;(|5W0bQZCkJL-egl3d%a^Z4m7+`s?L66UUXJQ^a z@S&*rSr%ctcv`K??9-x>S3B82$T7;=s=iH)mQOYmvSv&=fX|Z)b~d7;Ah~A(Q|s^+ zX*~=?|FyjDgVA`$Hpps3v=oG7-a6mTXplNwuVP9HuYMVE+*r&7oog)muo-nDC^-e} zOu{>fY=`Mj&ve6=w-bEdKxsP_nT6^k$Y;o1tcsh>;_kA{E*2~JGp2@k+{({FQB*y3 zO3-avUR<4_VoN&ajzcD&T)Rew80H$L9SZ_t&*>2lXc>1_#>U@B$)p#?hxX=Ql0t4I z<@VXSQJUH4oj<@FyC&53sg9`HK+4wG96;FWN_}ucs0L2fG!XPy`WKF2`LW3EidA$N zwW_tj_`{}4hfpomh;48*+loMWRorg*;N5nN-6&Eo!^oL&Q`ZyFd$DsDg5 zAKZSpTs|(h?el0pFYru7UHgrX;^UEXXd3H?S8Y`unv9y?f0I~?)!E@yYmuX^#^*Zi6->3}^?Y8BrB zdgcrch8D8VYn+3BtlPm!U%qj1+Qi=pYh(x>-mLJeXXau16#h>3qK=9`` z`A_2&0gxW(TyEv%t}BD{gdX0i2_)&sbK#h=zMo!==6ZJ!rvZ~>x7T`;T^HqD20r|Y zM#)}kHLwGNLuu7rsiEiT)M{$hq@(UQ9P1Db3pVIT{E6j_2KG`6lxFJ7vcjSa>d4Y1 zt{m0Dg;xiLg_Ck&jk?!;L2RpB*l@$bDPN?h(^$c+kPd?K1QgyILD2$6=f*L`W!FjJ zcmn6slJIr(>{ABkJf^WY{yAb9=Z$q@U)c?j9wZM4$R@aj+n8{Q?y zhSH?%$+s%cc!0}039msiqajv0P}}-Dg|2N41iz0~H%0INs7l^d6DTEbh)l5hMflpy zKHC)KV^LQA+T`9SwiQp}G$LCvrFHpmyWEx!*?swNwUGS{2C-6&^a*-%|v{i9s(G?%eaU>sB4#;OB)26UJk zYchEC-Fd>?h&#GhSb5_^P}+oqaW^$1D8Vq}a`>KdzFACgxuF7FJbv>DaKBQr#q#cY zy}HbbPm9%MdyT>Kx)Tt$|3JmPH+okXyj(?G+N<)=bUd9WQ)`sdG?oUp8_R6@aAOww z$}MUJk(v)QW#A3NsWieJ7)(P3wg3Ek1WW(<_Ys5Im=C&!way4Df^;@TaIt0sB`+>R zjzVc(bfIertwlVF(}-v(uJ)j2!BJ~IOLaiiMZ;0F$H*wwO-aYv`SPpR(2BY5lOJ0$4nQ(+Oay`hmyA-G?H(C>M9_k!oY9r(p>?%X00V(Kl*sSy5c1 ztMd3{Onp65Le^PY(FN<3B&sqQ0de32%dHeruAciyr2&^X6x=D*UT#G)0d17*7(>Bh zd*A)$-%BdIW(6fSpj-}-tv@g#43F3};!=`nJzThYt_fk)4IZe^yf>yDO?+$+bhR@W@h(wT5 zF~@Z)`r!eaPOwNK;0HjyO?JJwyjm79YV(}crq!(;2nTDANXNnRaF|1nCvco@Jsm;x zuji#(1ttT8A4ZbtqM(_B`#1_#bq^BXyo%uDn^)&a7j;(xjEz(5Q=EE03s7S_qCvey zer)q8p1)bNMb*IdxiG3&t(NO;wkeACj8Sq|YTt}e)gQexMo0Ff)*qUVw%??}DugU_ zLJ8%OJ$wXt!s&&hde@Lcf-IIu9x<@Hp&x}`{Qe&ikp2E2IecL7V3gkUQM>u8CXiB6 zG8YoQXW|39URL$v8Jh*7Qi-IivbZc@VK>>Q3{VH&5E@!vZUPCeoh$si>qmWcPxsI@ zzJwNysQvSjk@d%MxXdB$^E8<$VM_%3!rA>9CfPZKVv1J8C(3f>LwhSf8KpMzMf*h3 zsH46k`=3&@-wRCZhBWasO?KfsuQnpx>kJzwh8sEDGKR!k}8a75`8BVCAbv${he5WoEEcW?9W$KYP+t?ybd)vMmLYC@AgaJf=AQOTMLK5v%W*eoqL zWYfW3l6}2+D%W=aAs?>cfL;`3M4q~`#&Z#|waq^^n%xfyAXgBh2x^Z?N5^lHkcB;o zs8%`4F!3#l3(5ss0wkL-Oy+A1jNl#yPg zz-P@2s@xRSg#rsUI!CLKzlY;CJGS7Ne!Y5HU#`pS3EtrA<;`_WfV#f^v*h}#en}+? znhS`Rkyf6Tj;`~RQg!ftk?^VT)xo&K!QF76gjQeqeu)U_t?^{llb6{3GExtg?$mSw@I~ z!Ib`bX1i*BOQix%rSn&_B^iU?%(Lv&+lb5`=8Z9Y5gcm|hr!^!ZBvd}B}}Xb)oZxF z;!xNFV_{F)gL+yFjyYk}yjR@_s{B;T+!!1g+p}>B592f-n5yN!T;DBLm)Z7ueY=Rv z5u9%8RMknTfP13WshTP2csoyBRTZoy@m9zHVa{{S4um|Dtm1;JY_K9&?MP)+&zUj7 zxkFW4WPw3jeypv)V88(a5r=dRfP2m3u3JG0t?Hax9QfE(;0n*;G~kvhF908H*Q;fA z0sr=|_2W7c;tr{3)p@MI-W7dIxH_v@)gGRXs^jpqLu9c$;0}qbShpiJUdWj=0|9H# zNLCwWgh%X*sHsS%t;6@N60mrxb%5Xl zT|BEW8^Wa2OxS7a11Qe84Z>RMC@c<&dCtSZc`m=b?B4ositgR>z&U(i{2({tj?Vl- zp9Zg*4P>D~Kvg4QnhF88i{%{^+2Zk=4*JrgvWly#vUtiqfo;phZG=#GvCeaZwKWIy z4QrbVX{kHdKQ$Rb|32RWS`%%Em4@x6M?)+#41)G6pw-yLtag0{WH5^_x{xl2168zC zT~=!q?P#M1Xb+^6(5hg()yj#K3WJIjP1v-#2s?FSY5Gkc*cES0s&|$mXSWc-K4p)~ za+^%ewv@&W4Y5^c4ad$NSrA*dCLMa`Nzex6Bf{8*DZ!jz6QvM16G7<^>9BQ{Ijb~R zwteovKVKHU;unAUErPng{FcK9MnYZ60SQH2(t8~MD1Ay#?N<}XaW5v<@ScSub+Mz| z0Up6=@Uj%rehyf(`}N0%NXOSuJVAejtE!XE%MsK~Nk`fF61GzDh=QPzOgIJqNw^l; zVc@nGMc|q6QhRU7LE2ukz_sJtw@Y4;<+E)O?il5>(alegFX%PZrEW(vz%{58q73ss zR(9~R+ZGSpbfQ=)=k@eZF0+fp7XFA(u(bt}5IVxFtlHj3VKiDK8(Bjv9IZVp9Vq8Z zrYi0Q36v-aFR&67FM`v9NiE=)n{m-jTE*a62`}X#(U<=vV6uUodr-~c1B1h4Wb3=f zqy1)LSFLD83zxC zh_xS|jC?=MmjjhDl19SdfWyxcf%$=oQ_HGcS%NGeTnON*$+aNUNJ1%QQP?S|IQ7Q} z_`UjZ#NyP54@Q=`s#!s0kEGABzezOOtoCvqmA`(z$6*&0E9)YHyAV=NDX~O_kRKN% zDlcbcvE1Co68Xn(z-dCv&Kak@(^7BgDNBs!qAK>J^QHwOsRNzM$Q_kC=At*R9icWQ80923gW!~n*+c(SGw>mG}< za1_gr%WQMKzKe0Fr-^Ahs$bRi{PbKw{l}*R;WsJe>LMyF$eyA89LM<@Zh9c81q&w7 z80if&K^<0er3r+W9a#I;ta0Y5#CE=`z*Rqqmbw+qsMY35=Rz^7D}z02{pnf1X58exNEyROal(Jf>W|JNA4{`yO6692?ysu2%# zt?q{a)H@zTQiiH#Lla_Eu5B(1;BV-{&yuxM7_{PXoL|sdt}lvmo2{~o;`;8UNM>!@ zi>rp#*sl6=ING*DiB-*@ba0+0ZyS`O%d2pl9Q@B)yemu+mlejg4sO1YX)%&%g9TWw zy&d*nFEw27i+{v~UHAKWRNk`lBD8=?gTM?pRFx=W;4*}DJABbb< zIRFDe{J!wOGta#VmL7=hB~!v`FAg-kzWYA{ZQuV9LEHC#{mvnCyT=cywroEL!vUx_zQ3l{)^+35)qyqqber4suxx99JE(S1R&0Tm2y z*Wo5P-uM5GLGQmu;do`89{RF!Ql!CYun>96w zjc{iT(gblR|Mh#rHWgoh`CYi`7k0{_Vb8qcna)T>y^gG*V_S z_9mUsUBMw(WFOa;pJGJ_3Hx@Mlv-!u*uB%E@ZF~T(rcmdvagC&>4-m1W*07Zw1%uy zoC$b`je~c1Aa$+26}f_WZ8VpXmXNjB6`}Q^%C8A$-C|DYN;WtnEO^@4lycmf4P;k@ z$c4w=vA$yy@GwpzFs_Ofe8#=6OvBZBvw66sk$Aiz2}z=cdrzH`W=I&6P`4!=bmvL% zYAxwFS{lKyM;)u*r5FZudkb<2j0*)#@b22Dtm4WhRFb`ZDRcN$(eTZfT@Vo;j5#l{ zZUa?ws{_70(uH=+Jut==K^G6>G(eYPBMxeD9l7eW@VZquof2?UM$^`fNk`oIN*}=W zpH8dctO0E9a%?C`?|zu8;2JG>u(3E7fI`9V(WE%HP5WTHIG6T7cL4+~gAUfokkI8& zwSg+%)f`8cO6B@XAmT}!Ut!r*c3BpmvX6_atGgmX3{P1ZvF5|!>Kl$76<)I@8IRx1 zx7yb#9f^W2!E$%LQg^cv+EH(scSF0EHAxB!5x5}MB1sE4*Ncran_m_Isa-?&pw zW3gR|hF8sqCP0T=ag@ndLN=tm7nj+^YW?8`W6P$%H=e`!q4A#!*qrQs@u^sS`0MG0 zhGTO5XTjd8d!pETr0{oaIWeTIJv$v~&qMGIoYK?Ua1w;I*r`ETfv?;&>E8e#>w}Ag z#m+EqvA#;SSN1k)8xCPGd|;%oIO2m*hlbT`po$)p&kgc;x=UP4kiU2mr;)ik6+%D2 z>jVh>RBX2qaoeLd>P(dud%q4BD<37xP%|YRzUN65OX=zS9A;&9_f_Ouhr#E*ofm;Q z<1h;z8>#EH^zGpMbJxi?KetT2Iq^($+5sc0HrA}5gv25Ak?@-^h@L{?co3&c6F)9* zw(AnWcDn(*O%TO7@yM~xQsR3zrK0W0q{J(xq@(ROsr{fTGZpLgZ^AR!V1f1cc7oy$ z3e0ns3l$rq19w(!3=i#SOwtwK#RfWj_uDx750Sl380XMOW4vw#IeN_Hk~0(Ri{|8p zh%TJ6Sp>oq5O1!F61(5B&3#!d7Hc*ipCuz#^+FVAqXon->~0x1wtq-6gueeKONh0P zOx8sK6$v;MkP)9`=>yKj(iUP?nr{%WVr*?Qs=f4~Q7?RmZ-5Vs6w=0g&>c$q%_*;$ zL5(9b7B7UFo0mEdSn;`Q_5bphml^X|5rij3>`oDL>G_XF*D`WfGsn>%^mV?Cd0OutZC=DAI?d zD7@dM_E|Fa0yU}f{z>WhdLC}KXME+-;GM{d5@sb_FW{!x z6T)_tM>ryt+36opkcHrl*^Nc71=*AOP4*^_h-^n|`^hfmJ3$Op+!em1pJ`&0M8pvr zOcmiz-;2WDZ@y@oVtaWrTjSUpF3DLKit<)<7fNi78;~A6G#!RtBo^Dxzsn za7O*leoi1K8YRo1eX7N@h>gXBOEITf=>}`xpI#x5`R-p4$b9#&96k_*%>Gygd^-}1 zeY#k%2T@>hGo}0l11oifXV}aj!}H5=Kgak6e-6i?FT=ba9u~#b{BFL^w)1T)N5$VW z0Y1AM?UeVSD~S+&pSXgo^zd{zou*z_>WFL~&3O4~A`nXmrfw5{`H zd8(LW^|Wop$6=S4#%SBu@A6kQqTSvAHM$|~i39C96h)m(u}u%dK)rmG?-SKrRk_PbEyyHUQajp+u6f>nSIG%ffw6V-FTm~(4oOnx4*g{ zC$SA5l8lD`I*-J*vuC4p(LMx9j3s`6Hl_U_VMi+)L5$JDF^yi?9VLn@K!6nAggPu7 z&OR)%1qp!I#mpv%0?R3>&Ua&zTXpS5=0o`7IF57^RmWZx5A&<+dOg3s-r#6CX4jfv zuTslPCv&X{qe%ze7b%E!!bNINekhjp9rT8no|<*LUi|@>nPmPS6qq&9M(Ae6)_d&g zUpGbl{W-4wk^N{}kLq;q4`PUvqaeeflvS?%cg1{(a;R_sUz9N5JMFqzEmjYY4b1EF zvYfAC^=-epk^MrEcPBTkwdb_x!Uzu!uO;ffb1$q@^C9JOg>s-IUk%j_y!E#?nJgqS^i>9Y{91dykK2RGy`<6~wDBaPW!dR7 zM1Gmi*6Ufey}4gS=9*Vu62(Y(+urZ>!cA1^q;WQX#xwwb*6X28e6>e+p!K)}!;G`qF`H0cDu+cqwWnbru&1xB&mF`dHIOGBci*p=P`)%O&wpcD>el97ibS9D4evhM&UZ))B_NH;Q zS1GJyZ2#XE>0}FcSv>ug{OPLdI8o!|b_Kw?a0aieQA;db(ydCcgsJPA9mD`Jvi7Zw z1{4+k5~4%`RS^b(;W;t>B5NdW?EMn>Rx79ck z6z{jEJ&jR`JPxg;$D~8+bXi^{V)89Ght&7+Si*X8)#}Leas!w0Sd*-e++W%olnH2c ztWGIAM0G5(^ljm@OKmI&0d*K)xlnNZ;K$d-{81YZ(R(ab&K}@v_z3y!dbYTYiMhs5 zAqzHTfC^doymaiGChsel!#M@R$<8@nsowI=u1y9$A)=_Lz)9FmRYO=11n8wb^k5d!e<>&NV2zTQUU1S7C_EiZZ$ zDo<_i8ay-|FV92KcGqC>NLQ8<#5lO7Il{#VFY4M)y0+Yp5l1iTYF9^da8<2G%)>jm z|INw}n*DT|96r#0q8VBHfu|>iVW1GHbD@dgA{d`o6<_h@#;fyn!1~_T)q0*SXN$-C zkFiTPyw|xP@%tjT&mM!QYXETnh-3hKH%$?$WHC!r1_@y&dv6pf^e zfRD;b-y+aHW&H8CSRLxO0fhpQ9Z1L%oq#0K)4B-_06`R(xJsHFcEWIX+zi>0OdK8b z%@EtvQR@Z1LWuL?F7ryP)p{9qU1_l>r$O4b-Yn&@pf=T+kSw#3o1)XEZo(3tT&4)B88LnQr9t@ zl+wC*X@y~6R$3IUmX1h!Xzfx_{_`V-yq-;J^>KZFIm_;5i)D0J%lRnU@*?*}(FPAm zhrsDlwA`r35CZM(H{GtD%zH9w>Bi9l5DMuui#QM%Ml2PgQH%N>BWdeOSnmfTX=8iP zK1tnc`BU^&K^T~{K-pYc-;h@CEV%G+_v|}|v$Xy^j)yJ4K(kn0t!H1e&)KKh{boB` z;JA6@>z@T#%lnm@hqivdxOSivOgaKjQ`HK28ZPQmaB}U_NI6D(s*rUh2@Fx18DS$N z0f#@dsFcoNWMrV-{O|asxZoxC0`WcW?yEKp0OlD8C*I6gi0=W;yhG1{hZH^00oW{V6Ec{9J8FIRPV++r!tlq&Cc zu^TWay=jeQ;y$c&e14Jhy8z)Ljs$Rx_2j6ZE8=>Z-_@1RaDws(avSdjD23pv7Pu?s zElv6KyCE9IB1=E$sIDM}YNgHi?-YYCWi^X_{>oOQxp34bQB8~T7?3sJt>6p0nbkTI zJTJiTsd2C^i8L@0eyk)GJS`nq&*MqZH?RsJIgYG?`MJ$TkWq?x{cJw1qEitq_mjO{ zbT6vs5?e%PZQ>?GD?ah1!e<$Kj>ksIFghlxJM=}=6f=b5f4=++J%%zN|FpMEy(dCWwWKT`RSF?{@ zkX*x-N*nLhcoGj-YZLTnwFWoCW!I5SNMM}1bQFhSRMTvobMC)jO!MO$9*Vmw$hBbm zE1(U>aS}N;rV{=>ZM?YMJg$~CJ~_<`b1noA_A)igZuy3>96Jal9k-`zaSP}bp*^G^ zRuBmQH%2qVTt1z{Ew=JQR{+aVU~sHN zE(~$XMVgnZP7kh1ZH%nASF9hiMRvKE6%P^eB6!8KP!#2rZ%-LV;*Y~)>0#;cI87H@ z%{ksgp?!;(*?B;lo?47M8a!xXjFAR|M(c=^j5YSR{q}DJ8vl9d2>$%H|M^o69~dZQ zjjVtBK8h}+a1aF6Md8Pi7-DS21iZ0W9$|<5d7PGXZ8^VPEsA;e@%{?3;iHOhO^b3C z%q?$b&q9f#+2J6jbZDNYw3rKxQwkiuk;3iFspLp!mQlDM$5aroPC`&BXub6V+Iw6p zE3WB1KG|R!eCY?~5rQaCqe$VuHE_K@RtMqF+BjerOHi!b-s`S#@pZe7K?QxUZo|DTg4(JG)Cd4rZZfz`UZ^O4n1`J zZ@!65;C=HdhYt*t#U{wc8vEbc<7Ja@Oy$bu-1lbaHZEld@9IzEcnE-FQ`q&BrlH8b zKnA-xh82jd$2kx;*uK=vwdLEzN@PJO>2N$zLk9Rt;ZW>n8FI)92@^e)z&bV}3*t0m zUO*P16O6S~HdVmhVx4doF(AHpmA@UV6E3m^DTHe$UxsoRSmw&4&t@!b(3!zi8{(@M zn)%~6j-0kE-hI}Q!G_(>7TGqtx?iu0wWWX!1On^2{iybUu~-B z+s!I62%-wV(kC#~yZMPWGz2o*#~;RVAn&mh#Fxj_cAed>7OSgR4eh9vIFH`zVDtJT zA)1Hz9EOsN!~Zv3PS{F=Ppx2T=ZHakiE5lggdv(at742WGeiMY%Z3(WRM$|UiTC{R zfVzgr7PJQ9E>7t|3>6%v&Kp|6Ur}YBHe2P zwmY;MXL+zisZe{0UWda_(s6dWcEH97+&ss3aZy2xCW?&`YXJs?FuR#R7}mlGa7G9X zIMW_$>t;@a<8#XXH(+>EUQC1f0a_WxiL%!~80{%Ra6FnkJ=$ zIM}>%Dj^O-NeANT8ar5FaAOA!xz4Vp1qn}IZD$=TauTvJX*i9H4|0$+SXAC z-efn$9geHbJ-_gZy+dbt(WB6LlD^-=ho$4D9;IA?TVl9T zEJDgUO}L^?H_63*Xq%q?Fq~Ky--EWStmIC@I&hcb2N}drEs|N^n#nAoRMi*BzCNXq z&jk}it>Dk%IIt5-O5uF2ujkq3X0?nd6OMcBgoL!?bm4<-I%O5C?)73duppLnzzwTP+;npXms*HQz%cCZG@*D^6crH!g~RCko2>8tAEDSxD)_D_XDG+z6pT2_sMW6Cg%Y*j zx%f4LpclW^+V7kUK_hG5mNhntY38`mDejX&44CZ$WjWQvszbZpL(ud`Y#c&~W4kGK z;)z*ymHl1Z-9{SQcCUJtGFy4&6Y;S*>kJ-}42pkE*NuV4I?}whh;#TPqwv{L7Stqw zAJsNC8qHcrEUfg#k+s-(aX8O%x1}*ZhQEHx;R8`@JTXHM*@Oh9wv#185JpvQrgNrq z$m102JQ{6OZE2`l_lO>}0lR@)D$dF~m3r$xO*3#9N;>pTckr2@5pvcKc7eo>3FWO7 z`+?q$PB@$>$F)>=R%$fiOj_Gug!2bF@%_-JY;Rze|1n%MaAXTw%gA62yx@bQ@+KrYy z(V(Bhn9`B@MN+eZ3tSrPoNwaaF`RCc5Kf7;QaFaof{i8A8X=iBwHRJuVNtfBTwWWj zj~L&96hjBN+H+wQAbEQbFGqnjYWV4|mN41iX7>GC8#goaM{yFYEhc(+?txp+=GQmd z#Vo?y9=S9Lx%Eyo*A2Xb-Ao1V)^8YZ=qLq~j@r{z3Nt2bq{EnTA{peU6w=u7alT$C zY^_mFN(`EgPOSP$Jr%yRwW_xwXm58cTcjPa%K;_Z-P_FImknpo4E(;Rj| zT6IKwvCo@#XKgx(^K?+}hWpk4mv^H*5!|xxICxkxY8Ee2->a0w zb6o-VeMh(^c7$juB{58)vR=4gTdjBUgjyv18MA7r2+Q`0v;5})tQycoPsnbylw2wb zKWy6LXeow>Hzc=2TN<#!mBJYut4ZXo$I=m>A(!-H+}Ep6lN%7kXQ`=`x1>Fk7RTtg zf=8qS=roNRoRYY=x#WZy_>m45!JdW!cVh#%pZujLHL>;wtCg}z?GJT0Ih@uO-+=aM zXO~Hr;{Z}ADk(hyiE!p4}DTEgHRA?rf#_ea=43w%fbn|GB%m=C+Mw`&Vw= zcg)WB2i}~-8)tpJ<#oKZwSI#nSYkwxDp0bc{QBEN+2(-g0f7NQ0@}(ZjuZ+#(}Sa) z?$f6u6tSVg3u8lc=+j|5gd+(r)C@|-@QW9jnAM6#x*PoPNO)_h*P|L~u*6^{nbmNZ z1x4pd7)uP($|~MI!v|Hy`52pS`SHUEm2qM|=%0HSGF`ZC1=c6Vg|8OVFj;$e+5nz? z@aJ(B_#HA4e$>Q@Wtm+U)zvCSLg>0J=K$`SBU6F9{{rJpXMr{8sQn_v87z&+TNk^ztj;Z#1@jGlLaa-K|?qoBGBR)6)+NKHGgLn!x zD=a?`Wj~ab83C`NBV&oL4-2L>C18AXNE?%eILCapq#c&A0mZGbe6j(>F(32~ zriaL{*R5#cvhg#%B{)Ob;iWu(9;d@BL-WqXQ+AnMJYL?GPgAJoCA3|H9y@zQuWn5` z2EWLBwNNIe#SR{aF_C)B2 z#OmK+Qbg?`$q;%uUttF=G>((Lt5o^AxFTkxi4_C03qlYjouw8>N=7*#DL04MXcMmL zMSRd#_-059TQdP;qj8=q2H`F1Cg~8|HL?7HKaSIhV!JYV|GFtw*V&(oVtxHs1d@xL z)gJbCp5p4rlg0s+^Bn-kOeqd{)>!DTm<0`b0r*NyrvuF*ujgKw2zt zy{O8s8~9?jxhcN36ubKDz?sl?=e*P?cEC#GkQ|tm4#_iBbTB(ERXvm7`%2-e&YU64 zOt!Z|3d7R17{^`$XNEbm)DN%Dc|Qh+u*dZJtMBF*QYC z7LF)G8IKYiBmlSLPPS9Q(5AQ7A0xp0`r}EP-f$oEj+Ql}nnA#w zozk2dLLH6eG8)Pe{+LZ8IPNOJds{r*R8OmH13zx@rCl!K`?AkcV+-BUH5VMqOB}AE z)t;7&mgS3-dvFvV*#@tZRD=mjM(R!*l#DQ79NYd6LsIAIsL$VSMN)i_<^BY>-DtOy zu*1-eKXI#YU_&#~b-AFq^i!FFF%yjlmNrMPO)-E?A}<^VG7~z>!maNLoA=fF>hZG6 z{L0!-Plw6*4pGxu<8dXkhA=AtReWA(jX z=X=jiV-|iJXi9a8W?9XMW^gHT#&1jzI=FCJmB~j zZ}%E`d_!%g6XV9i;bQF}={Wcz6QxFTTq0LW!Z`e2aw7N?^Q3-63s=_n#9|<6Jga~@ z>&$^XDJC=1Ml1OD$z*0CE=Z8d9nuR{v!aQWW-Blazmc>YUcU0DaTZ}_*F5Q_ST3Kk zYH`(NfX?XUu7uvO(7k6bdDX2+NAee`eW0xoD3bdz%3dl8Vjecq-M zq{X3}aYl^Q(oy~6yPZp3ZA}fQD|tnH&^PMkR8mHr)G7hUYc^n-=StBG-yo z@&bMc7w{HCWTvK=%mwqDwKgI&=HTAVgk?&#qxnx*`l2l`|EVQ?5qrVc)pa_k#~hIm zpgXOFhNye5^RHMAo8e^=AK}Gb6?bL6 zc_{C1%2oCmUhG?+arCvBhAN~$avx_w_`RL!riBAoUX{fryIaGHz9}QA;oiG+mhxNZ z;3%%QyaPj)8H?3xHl<_xJek4P#YER7B~1C8JRePAXK-GHQLUVg)Z#di(l~J_uQK6r zZ!sSv;P#+^ylw|JBU9KMzDErmPC@f0avJ0ZtVDOaxLZ6G+0)}<3RE&UG>cWQ$(cJx zou5lqvnCyQ=Q;9?Gl7qFw?2ib0NUWM2?ouA`x%?oxSj0#x1;!sy6_@fqjh`559L3+ ziE)14d~D@Ej1n?OywJbln89ud_!UKI3$@HDjt9&&GcbKKsl7fRle$~H{IDJB`(;tV z7b4NJKbR-N-}P-IiM{PPp4RlV$rYEY$?JKFKEV5f0;F;TZUlZ>xE`sAZD0z)8cDe^_yiy-h;m9F5-CILd2Njm zZS}lk;Um8DCv9B|O~Cqz1^485rFfjq3+HMY$pCD~+NP|o%SBd|Ut(RtXDObA8`~B3 zx|4NlKRq4hUZm!&k^-kT_@;Ueo5me+Q@qq`Vi~oukvmQj;g}!e-mbCm3RAvmixXe9 zDBm27$ct}%Zyql-!brHy%ak78&<2drAYINh(PE#`un&j+fK8*6l{DaNt8Kf?t``^4 z7KgJ#p0oSq2CPer|!Ev5qS`&5w)@JdhGfpUXLLQL0#anRSL{Rwso0GKQVw;{& za#B=qVU-dI=({taiM%vdGN+aZ+IC~tNCNXLS9Y|^?5?P8v-|b3SZ!`2a~_X_i3we{ z;r{lHKo0|5?Z+nr-OYTbiE(9c%>m|9_`Xfc!aql9A{%%=r_?$V5pc0^ZG-b^v^K4n zhxZ-q&&k~l&^<|>GPd`U9J`U%fuf+}g!9*c%?vCdDqT(;vHH+V zaDT>T0jOOQp;ft9-K>{aS^2eC9(hLi@Irj(n9;)3+C$PYb-v_GC1Wj2zSGc2Vjz~E zq=L3`V4Kzwj6{P{KiOJ2X?TKycB?YX2^F+a7o-5FVa8eQm`%~q3eCVIw3*43B1*~O z{Y(BhPA36S%Ykl(zkX*eJpd5iT;9Yk`qOS?3O$xuK{}==c3@311TW^BShbN+-_%QZ z2>8`RI2);?KLmfdgP4U<6`?&@Knp+}AKA9zZ)2?YA^e38j2^ni_C5uA2hIDg+0kra z(z!4>+#$FKB@7=oVB=;JpPFc!qr4`YWZe@uyee^3RbPsJW(V__~{$ z*tUpRqfzaN=|K7-Q?E)ge1@0j%1{M+rfZ*@3dl-EguwM-tt67$E$y@wV9{FrtG~yx zu75vGtsdX@6nqs??fV^*uKt|OB1eExOfPSW3SN!uqS(Me zk8~!TJ?UEW%GgQQ`oq#eb-t8SX)VsmSAGsD_0v1dNJanJto4N4D)aK%Oe>3y*z$~1 zE*(EK`w+#?HpXciejYbLfV-e~m(q~zYG?x1r9@p00Bc#0TrKYJGPp*6DXZX*->#5f zpO2}(LlSWRz7V%RjME8S(MhyfvHSv;;H#>P45IC^d=y?s7VED0EHyijw8nVPRA5j# z1iwr`-hJGdpbylVH1~jN&J5JaM78`or;{dRom26pmT$wP#F>>4i4z zAaLxD;xw8Gu>Su$Fh0A6e<_Q{4ylINqR+zn3VoCcwmnzZ0=7F-(!qAV zYn&3sl`o=9Fu5y;Ha020g=;rtD$TEs)=D5)b<7M~E zXr_2w&f)ce%Vj76h||9qf~J$oJ=_-6GP@~Pi@zd-*|YW^)V6voLRbAE>2NqtSyTsi zX%q^Lp9muTm}REzI6ycsSqniCr&d~y6Jd=a&N$74Zl4W%)F!Rt2A>fhoLF)%Gy>~U zWh$qPI4#<_TtO1gbA9$wwa>w)JzNPpn-cXCfENUx5PrtQr@F2BEYWA^rDO89+Ljk@ ziw$f^$J=@K|9j>>9(uxiAfKmoa4|&<08Zc@uT6|QODO?-5vu*B{{{;@KgPNaK7PpG zoFedyY<=IV*q}+=btABDE+%qr2-U$bZa5lcbzdzu4OMA>&Zdi{-zc$v70ajfLkv!L zi#rQsh8v#189#hQeXe5+M|` zhvr7@k1O$Cd>wkmoC#`)4tnc)#;(^hIoP{I`(jd?n>itek! z7O(0s=I?}7GS)7Z(wJzy{o=b=Ci7hm9~d7YBYU4vK_4QGUpE6Qp>vUgA2efeslDw9 zn@;H16(;Y?>+7fN>&@aJijQaFAMN(MH!OB3a|b^@9T4Z4XOv3gc}8WoqCrec0vFVA zu<$bYjhUvtC!BR6l4>-tWTpjJ-(J}H1KE>hi@@f@**9Hx~i}|Ck1oV&) zvTg%9Z&Y|0A!);V_QTV%-2AP$$}X1c%Ugei-E11{dpL&Eh$+K+_IEzf!Rj}i- z+l(a~!fC*0*O>Fp7n4`nAKB;f;o+``gq`(OCj_Beg_Xg#^PN8iL+k!ZT8iMiho)od zi|o9&#^L%VevFIPDuDNEq+9$zeJMqRby~&P@V>oNSZd@6*_p>>B;g+D-9E}J#F?5> zoxp_;O=y;c;Kt{2FMkq-s;R?D{6U;Wb5d7S{_Cb#U1xtTiuLtl5!~HpGs>jq-&7*g z(MFlntw~4m`Q}_Lj}Ym(g~(G8KdaYGuqNdvnixwXfw2`tX#jC$MJrG@jlia*aFbI%vu3{|>Bl(rAAk5p++OH^Vl9OnnoxA012)%tF+x-Kgmr91A&IcN(t2c}|k@Abu^=bAC;i2Ne+$N*&# zT@|(+nnb;X=SYd_IV$mnZl3FX`2TJ1uFzwc{WZKLfNBkbpQIeZ`r)}vMK zBJM~@SPY4>Yi3|UHkG-6bEjFOY_}=zik07w#|2it^9OMjd1O@N>f)(duK=AcZ{U1i zlvN~cjBmx6qUW8fhF0{V>xsw6!Nb!L`9;p$vPMN%Y4G0@W|db49S4xB`@5l>G+{ZH zcoT!Q1iovHJs>uKW{lfPdutYE%woT8a({7z5{TzCDSl*-G5?dP1 zcJ`!$`8+wqN-{h#?PXZulIt7s#7Gq4p+er2NXeMt9EEEqh%`dFLzBK5Bsc%X_irL_ z{r*i3A2<2+I77w;d+w+M*8!J z!fvNkAA|qaTNh^MqVeby9c5txQ<9-}HQ(H_a}tMJFTF%L1QVmlat~GFf;AbdVspLx z$P}S?yD|(q)a%`UBT)P9zpX>Pj;zUz?tfpTby^E;v}C$r_F*nXU_ldSbuOf5AsKog zqufD)3(nwl63W<^@2w2idiD6Zf*0g=jl=DPmAFD@9W#5JqQq6RB^`2KWb&9R8lkqq zhIwKGKKeO6iLgj6n}*tcf} zma_2LPJoTl93y4nPvtC97HB3J;G?Xbvg+yaE++al`TWGrozuuq1oosO_&l|1rNFru zoWa3mo+?F{og(?zhjCh)NG{n};sm8s@%Aye4IuvCLrjbl=!V7iK0!EaNRvq240Otv z^x6Q7aZF7y!$&p3ftzj?;<^M-U1S2s)yCS+68whS9)-^+ySQZyErY;z4@}3$dFF35 ztQrT%t(da}6e4=03AV!rF*-*L)3^kL6GTuW04Cczmw&_f4~;MG{_Fg=7XHKW2Yn$v z=*=s(TnTVAr75EhLK~W~E6=%aQzh22!J`}64_zkR4;F!)K*5SXACZeT3V(= zyB^uc{SFTQ#h>>@%6^a?UghwC6QOU!2Pu@ZAz^CGjAoR|a;0;@2@fe}hp&&(VT=Aq zP6L3uG8+CUKYy;ur|f3^`Eyi7qQ{P$CF%{`I9}4A$F#+oLFu?W-vMB7k;5mHa|6gH zASiM~PjCo>fMqJlwUl^Rtcdn<^1b(MX7tg2XVMv;_zZ7>z!3@lc?NWHtA@0vTP#kGfV zvG#~`T%2b%)i?6unCO#e5X8%AW>bYB$_WdXOLQi<6+|#|fPC;frkwjeCgkw`L;m{- zlyf8d-Zw+QsicfLsZ|Q`AhZEv9!Qxp_^l&as#}d3796yBM4{hxB8%lkSv_Q%;_@;= zIM`qF8K_*LFZ$zSd;xLtK=8bDu$-@MgK)76KJ|L4jBwwzKaw!yuwG!ez*{PXq&Q*A z=K~D{P$^@(+rr2b$~Ht?Fr*bYMGLZK2G$GAnZJk$W!jlrS49Q(wKoI%^EjQ56VuyW zE*`U|sP0(Tbsy&rpD>L!^wu${TkVUCcm4*}B;)V>eEG6CJ&Q3;yj+U^`}BfU@UK#W z#+b593qqgUep`_jt!uTlk+s#ejyCB5-T9M-tDyC#?%L^=-6b0(OJX@_y{YdFlevcuJFB$0!mZ3Eju4$?)6{EQ3Y zsFMHB-L)+@ZY0@X*_d}!*Zsn`ZM!FYSPlf72vIf6%F?P zH%&%upyBID?AAhM+uJZhV$H1-lShsAw>YoTX|5(W2-r<}kE!<> zuForh#Y6T~`_rKjG^lRjS(V<`V0@tMjlw0@P+p^k?2Z#{gp_TK60|ej)F^4{Oka#v zhOT^foyR0Sn@S9U9*J;XqV0TEncr#S=sTZ_!^I;!eNP#be#Lrqt{%ecH9Wp1WC&_m z?fc>(bGjX7NevF0N)hV_^G7+fr}>1$Lp`rtZmbGP&%n#Jc2x1U5rq-=m;*WJ+GIYb z$_>ioRztu5ltR_vsX-!naCh(G4%=}$edgzm#Jb!Tn{2n(E*~2P8ItCCn?2uC`MlL6 z#&#esIn7%SC?1uksinXuKbZQ~D_I3kq3^KyBla=QjKS|wWt0unvPKeR4D)(4jevap z5dq{T6Zq?o1JtsCwI33T>oH&|xWf7K8SZG{#P7J2-S4$&)w1mq616*il`6KHi0)Nv zApWqLZRN|N!E!rYb}myYbo2&SLG=Q-#KcI=9-zE3&Qca2rg@7P?IcspR%ut5diaOy z0Azl+o?Q*59v(_U_p`SHbVi-MRl~rrQ(E6Ull0{5Ek-@j@5$-Zu}8vQjN!oAt72lZ zTUsrJX$NT+QB17I6A#SOY{xR`3~s=~n0GB?WUnyLlcz(XDh>QLwOVs$15H^4Fe0_K zEsThNcWui4d$_5!KoUBOf+g`GYC&MW?HnE;06*7B(KaYbv)_~BsCF^N@V4}oZJ9m7 zkIL;b7K2k1Xc9XKwT$%#!RPDG)B}pg;5TWJCS2&m%paLZe`Ml_=}Ctnv2JFPFe3#u z3Ik~7Uxy@DqNQv`9fq66iidL;4&|Wx=~>cPaXk!7mVsH%5>l5D9rs&u5?nP*)^T@V zd|nirtlWLc*8yS2p+(0d_-NIXj-iaM#S;(V6IOqqI^Yiht0Jve945A>_C~6>?%uD! ztK#5ZmIm&bQbSdXxGpOH5NdDyc-^Q!erd-ZGzUY&bTtaJF|1|^5Zus<$m{wYIi2pt zxB42M)lEKs%0B1we7(y1IjI{0p{wZ}#d%#VplFERO}7Q@tPKeCz$L_J!qq58KcG%l z5SpLEL+fbn>1WjO77E1&to__{V)tRV_A{1%&Qp4d3NEZtB1$RZB?45|44xcLs8pRt zK0@;zuotHT&fkjX6@YVbzsPRNFU59O{)wY=x0M;b0aD9nTJhZdCL83_4l%`}^PBWu z3l!Ge5~#(9^j2FvH9%4oEi6Q5o#S`|!~?hH!nG9ESHE@aP{Rd771n_q46f2!iv#U| zD1ZF!3`@|nIB&9J44sd20sXGnLSg%qZHxKtzT6Z+yP#+xjK1eQs+o<&@(Vc@*FuSh z@M+2gOQ^f>;@aSt<|x8NEjP76mUmDC1?s~H1WQN{_{+^PQV3IXb-;cB>Gs0urj zg<%Ihj>5q7)D_!X&~lmTUF>({_|6f(A@4IE8S)#FXdAI-aWzS?n0qPD;#w^6pgT<# zva(#_pzA$A=>V=kQNPzyA<+|mBdIcGQ0_2p1HzY15Ct$pg=je&>?%1tgy&^&@nfoD zx;JKqJjYNs>VaToG3PV*p_C!@p<__>J8rz7dbhk?E#c+-j7s)Z(6hSeLG-*7 z@3{75(eQZxIsy@WTe|Cz!-e-k67WU|AEtU5;YcLE2}7vnj)sJTIVDy*u3BUyPLAjN zA2v~v;evrG)=(0L_GGKaf%4znj7oTc(8>HaKV0W`<(uj;>`jEq^*k$57#Gcix#rQk z%gDV~6FnB%+##TNY@e=eo6rhx4J!xR8a|5?)|1~x5_WT9oKps;#rZ*AuB?-WcZcrA ziRcFCzEtUpFMNc8n-km!#jW5cF}F`cSAxLw+qj-VQEU`H!s`wizYe0pQU& zfvTf1rifx1z@f#z?Y}y<1>k~#%G%KS$LOLZS!2}Vz}RS1`txYRbh;Ih-;Lww8gw19 z<2ZB<>rK>o#O{!~OSWgDe2MDO#KZ8L)FT#>2FCBadVug;Jx>?y2c;8-JG?KdcNP{J z_t^v#*GfVq+j3@x3HzMP=Q~tS7KVyfmtmER2$9sB8N3OZgv>$fDJi` z=0j8Wcbnbh+iiY-k7M`H(;eN#)m}2%Uz_3l$&Ok)(fIxFCOgQMS={-9GeP{|EIhqE zF&@%tZ0!vwsk1IXc+da|N*m*vdl0Cg<@;kq|Ms`ve?O$v5}JXo(0!Qq=nmc02r%+oud`=h3vTZh-8iO2CbNigOna1zLi+$ zDBnEofv+z62HUh;KV`deT|Nd~KhSk}4TP?xDTvT5d%5j)0(e~i?szP#CPjJ+_VV6KHpd@`2zx0VL>KN@EBdIMuT8{HYjOgLq= z6oy5V+0`Jh{>ZcLqSCS>5c@qi2_Qb(XRrAE_igc%<-5gAz~5su$Xv_Yz{p(x?s#OL zCZ$+#gF8qw^IY;+4JFSwbvmUX65?adph6bDYE$r2DOyNz|Lh39a6u4!FWiz2Bw=u7 zaV-wiS_%HqL^FDkwlr+YX`LT>QzdwEHhFdrpRil3%Ey3~#mMzKtC<`}JGv52G&ny_ zSH;3g6EMDGUU=N>+5W1hu5)5_?8_WWg|xUCh&AvwM5Sact%_?*5$=}|Yx$S!*>!^= zTz{>KKt8&vccv*S*Mh*>(9C*K7)@Qr`q=No39{qhS;(La2T%;zfQ+XIt|n*bBDnV5 z@i_Z7+r`=h+QobOPI%(r7gTRP(y5vhj2J2e)3}&D{2sQPamiZzKYsbSW04FO3{@nD zvJg=vOYWr8hPxQ-AH%U4|IUgX_R`9`!pU zIJS7cs0LgupmJ_Zo>^e!WSG*z#yy8b~JJsKC;mFtIlc=mRUx6o+U z^z9qtaq>-)mK_g}mW_d{38TXMpN*0A2JgU{8><48W#=a$ETe6XA*krY`w))4|JQ&* z$AJ_KY~xgm0_{1-8N7xl&eBIq{BE2?%?n8`Zpw01@g%*;^7SL!;Cx$r!QpqLN|OE%05&O2-3&@%EsrOq+jVclfbF;9Bmn!|CdIla zH_Lgp%IC%A>0#A$%GY7pUZr1A&3M{jU(}t3C%G$O#UuMPJ^G*^4fHGwJX8{%V4;W} zqs)aO&RIo6jb;aLSDM;3iMQ)x{Y;`1W=42AN#2nc1qQfK$Dw&%7aUNG{UK5gaW;}P#ol7p2+ z;n4b8hWN=f&U>P#C7~fFLU3bgU`m5pxP9u3Y%XR|x6-C5jV8C!OQB(4>Enm(A}ZNh z45&)mUWGsz-lc`B>?BH6th-x0!gKnRL5)?cSIYo)UZlO7jHb2h4AS7Oe`7qrPLt#7 zn83%Djn_HXdlv=XlkR0wH$V_!ErfSSco#waLILb#VH!HnR-4Xw)#B!R#5ZT@5gbV<=LXX z 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%0Agd3%XY-e3_dVCAToQOfr!28 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

    izYH^EaJM{TopI#x?J5}MRa7R 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%0A?=^ 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.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

    a7z&f?3Qegl32|?Y)7mxpS2H!gu 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�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

    !3cLf7GCOA=6jv}aF2rqxugLu1%vj4zNUgnS4 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

    {K@?QNEad`)aBEg(!Cg&VWqc<7>{MdB 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

    L&vCUi~!t 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�_Q+e%r>UYHjJ#21(cSYib-axlj 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

    M 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Μ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

    w*-1C|>cI+=fW{N;{9 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

    E9>s28e!5&Hd2SZEYC4$jm3gPGFvW+(cU! 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%0DZiDEZ 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 FDghuhJ-q+` literal 0 HcmV?d00001 diff --git a/x-pack/test/functional/es_archives/ml/sample_logs/mappings.json b/x-pack/test/functional/es_archives/ml/sample_logs/mappings.json new file mode 100644 index 00000000000000..1c7490e139be55 --- /dev/null +++ b/x-pack/test/functional/es_archives/ml/sample_logs/mappings.json @@ -0,0 +1,3162 @@ +{ + "type": "index", + "value": { + "aliases": { + }, + "index": "kibana_sample_data_logs", + "mappings": { + "properties": { + "@timestamp": { + "path": "timestamp", + "type": "alias" + }, + "agent": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "bytes": { + "type": "long" + }, + "clientip": { + "type": "ip" + }, + "event": { + "properties": { + "dataset": { + "type": "keyword" + } + } + }, + "extension": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "geo": { + "properties": { + "coordinates": { + "type": "geo_point" + }, + "dest": { + "type": "keyword" + }, + "src": { + "type": "keyword" + }, + "srcdest": { + "type": "keyword" + } + } + }, + "host": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "index": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "ip": { + "type": "ip" + }, + "machine": { + "properties": { + "os": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "ram": { + "type": "long" + } + } + }, + "memory": { + "type": "double" + }, + "message": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "phpmemory": { + "type": "long" + }, + "referer": { + "type": "keyword" + }, + "request": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "response": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "tags": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "timestamp": { + "type": "date" + }, + "url": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "utc_time": { + "type": "date" + } + } + }, + "settings": { + "index": { + "auto_expand_replicas": "0-1", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + } +} + +{ + "type": "index", + "value": { + "aliases": { + ".kibana": { + } + }, + "index": ".kibana_1", + "mappings": { + "_meta": { + "migrationMappingPropertyHashes": { + "action": "6e96ac5e648f57523879661ea72525b7", + "action_task_params": "a9d49f184ee89641044be0ca2950fa3a", + "agent_configs": "38abaf89513877745c359e7700c0c66a", + "agent_events": "3231653fafe4ef3196fe3b32ab774bf2", + "agents": "75c0f4a11560dbc38b65e5e1d98fc9da", + "alert": "7b44fba6773e37c806ce290ea9b7024e", + "apm-indices": "9bb9b2bf1fa636ed8619cbab5ce6a1dd", + "apm-telemetry": "e8619030e08b671291af04c4603b4944", + "application_usage_totals": "c897e4310c5f24b07caaff3db53ae2c1", + "application_usage_transactional": "965839e75f809fefe04f92dc4d99722a", + "canvas-element": "7390014e1091044523666d97247392fc", + "canvas-workpad": "b0a1706d356228dbdcb4a17e6b9eb231", + "cases": "08b8b110dbca273d37e8aef131ecab61", + "cases-comments": "c2061fb929f585df57425102fa928b4b", + "cases-configure": "42711cbb311976c0687853f4c1354572", + "cases-user-actions": "32277330ec6b721abe3b846cfd939a71", + "config": "ae24d22d5986d04124cc6568f771066f", + "dashboard": "d00f614b29a80360e1190193fd333bab", + "datasources": "d4bc0c252b2b5683ff21ea32d00acffc", + "enrollment_api_keys": "28b91e20b105b6f928e2012600085d8f", + "epm-package": "75d12cd13c867fd713d7dfb27366bc20", + "file-upload-telemetry": "0ed4d3e1983d1217a30982630897092e", + "graph-workspace": "cd7ba1330e6682e9cc00b78850874be1", + "index-pattern": "66eccb05066c5a89924f48a9e9736499", + "infrastructure-ui-source": "ddc0ecb18383f6b26101a2fadb2dab0c", + "inventory-view": "9ecce5b58867403613d82fe496470b34", + "kql-telemetry": "d12a98a6f19a2d273696597547e064ee", + "lens": "21c3ea0763beb1ecb0162529706b88c5", + "lens-ui-telemetry": "509bfa5978586998e05f9e303c07a327", + "map": "23d7aa4a720d4938ccde3983f87bd58d", + "maps-telemetry": "268da3a48066123fc5baf35abaa55014", + "metrics-explorer-view": "53c5365793677328df0ccb6138bf3cdd", + "migrationVersion": "4a1746014a75ade3a714e1db5763276f", + "ml-telemetry": "257fd1d4b4fdbb9cb4b8a3b27da201e9", + "namespace": "2f4316de49999235636386fe51dc06c1", + "outputs": "aee9782e0d500b867859650a36280165", + "query": "11aaeb7f5f7fa5bb43f25e18ce26e7d9", + "references": "7997cf5a56cc02bdc9c93361bde732b0", + "sample-data-telemetry": "7d3cfeb915303c9641c59681967ffeb4", + "search": "181661168bbadd1eff5902361e2a0d5c", + "server": "ec97f1c5da1a19609a60874e5af1100c", + "siem-detection-engine-rule-status": "ae783f41c6937db6b7a2ef5c93a9e9b0", + "siem-ui-timeline": "ac8020190f5950dd3250b6499144e7fb", + "siem-ui-timeline-note": "8874706eedc49059d4cf0f5094559084", + "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", + "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", + "telemetry": "36a616f7026dfa617d6655df850fe16d", + "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", + "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", + "type": "2f4316de49999235636386fe51dc06c1", + "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", + "updated_at": "00da57df13e94e9d98437d13ace4bfe0", + "upgrade-assistant-reindex-operation": "a53a20fe086b72c9a86da3cc12dad8a6", + "upgrade-assistant-telemetry": "56702cec857e0a9dacfb696655b4ff7b", + "uptime-dynamic-settings": "b6289473c8985c79b6c47eebc19a0ca5", + "url": "c7f66a0df8b1b52f17c28c4adb111105", + "visualization": "52d7a13ad68a150c4525b292d23e12cc" + } + }, + "dynamic": "strict", + "properties": { + "action": { + "properties": { + "actionTypeId": { + "type": "keyword" + }, + "config": { + "enabled": false, + "type": "object" + }, + "name": { + "fields": { + "keyword": { + "type": "keyword" + } + }, + "type": "text" + }, + "secrets": { + "type": "binary" + } + } + }, + "action_task_params": { + "properties": { + "actionId": { + "type": "keyword" + }, + "apiKey": { + "type": "binary" + }, + "params": { + "enabled": false, + "type": "object" + } + } + }, + "agent_configs": { + "properties": { + "datasources": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "id": { + "type": "keyword" + }, + "is_default": { + "type": "boolean" + }, + "name": { + "type": "text" + }, + "namespace": { + "type": "keyword" + }, + "revision": { + "type": "integer" + }, + "status": { + "type": "keyword" + }, + "updated_by": { + "type": "keyword" + }, + "updated_on": { + "type": "keyword" + } + } + }, + "agent_events": { + "properties": { + "action_id": { + "type": "keyword" + }, + "agent_id": { + "type": "keyword" + }, + "config_id": { + "type": "keyword" + }, + "data": { + "type": "text" + }, + "message": { + "type": "text" + }, + "payload": { + "type": "text" + }, + "stream_id": { + "type": "keyword" + }, + "subtype": { + "type": "keyword" + }, + "timestamp": { + "type": "date" + }, + "type": { + "type": "keyword" + } + } + }, + "agents": { + "properties": { + "access_api_key_id": { + "type": "keyword" + }, + "actions": { + "properties": { + "created_at": { + "type": "date" + }, + "data": { + "type": "text" + }, + "id": { + "type": "keyword" + }, + "sent_at": { + "type": "date" + }, + "type": { + "type": "keyword" + } + }, + "type": "nested" + }, + "active": { + "type": "boolean" + }, + "config_id": { + "type": "keyword" + }, + "config_newest_revision": { + "type": "integer" + }, + "config_revision": { + "type": "integer" + }, + "current_error_events": { + "type": "text" + }, + "default_api_key": { + "type": "keyword" + }, + "enrolled_at": { + "type": "date" + }, + "last_checkin": { + "type": "date" + }, + "last_updated": { + "type": "date" + }, + "local_metadata": { + "type": "text" + }, + "shared_id": { + "type": "keyword" + }, + "type": { + "type": "keyword" + }, + "updated_at": { + "type": "date" + }, + "user_provided_metadata": { + "type": "text" + }, + "version": { + "type": "keyword" + } + } + }, + "alert": { + "properties": { + "actions": { + "properties": { + "actionRef": { + "type": "keyword" + }, + "actionTypeId": { + "type": "keyword" + }, + "group": { + "type": "keyword" + }, + "params": { + "enabled": false, + "type": "object" + } + }, + "type": "nested" + }, + "alertTypeId": { + "type": "keyword" + }, + "apiKey": { + "type": "binary" + }, + "apiKeyOwner": { + "type": "keyword" + }, + "consumer": { + "type": "keyword" + }, + "createdAt": { + "type": "date" + }, + "createdBy": { + "type": "keyword" + }, + "enabled": { + "type": "boolean" + }, + "muteAll": { + "type": "boolean" + }, + "mutedInstanceIds": { + "type": "keyword" + }, + "name": { + "fields": { + "keyword": { + "type": "keyword" + } + }, + "type": "text" + }, + "params": { + "enabled": false, + "type": "object" + }, + "schedule": { + "properties": { + "interval": { + "type": "keyword" + } + } + }, + "scheduledTaskId": { + "type": "keyword" + }, + "tags": { + "type": "keyword" + }, + "throttle": { + "type": "keyword" + }, + "updatedBy": { + "type": "keyword" + } + } + }, + "apm-indices": { + "properties": { + "apm_oss": { + "properties": { + "errorIndices": { + "type": "keyword" + }, + "metricsIndices": { + "type": "keyword" + }, + "onboardingIndices": { + "type": "keyword" + }, + "sourcemapIndices": { + "type": "keyword" + }, + "spanIndices": { + "type": "keyword" + }, + "transactionIndices": { + "type": "keyword" + } + } + } + } + }, + "apm-telemetry": { + "properties": { + "agents": { + "properties": { + "dotnet": { + "properties": { + "agent": { + "properties": { + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "language": { + "properties": { + "name": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "runtime": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + } + } + } + } + }, + "go": { + "properties": { + "agent": { + "properties": { + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "language": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "runtime": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + } + } + } + } + }, + "java": { + "properties": { + "agent": { + "properties": { + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "language": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "runtime": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + } + } + } + } + }, + "js-base": { + "properties": { + "agent": { + "properties": { + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "language": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "runtime": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + } + } + } + } + }, + "nodejs": { + "properties": { + "agent": { + "properties": { + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "language": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "runtime": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + } + } + } + } + }, + "python": { + "properties": { + "agent": { + "properties": { + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "language": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "runtime": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + } + } + } + } + }, + "ruby": { + "properties": { + "agent": { + "properties": { + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "language": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "runtime": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + } + } + } + } + }, + "rum-js": { + "properties": { + "agent": { + "properties": { + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "language": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + }, + "runtime": { + "properties": { + "composite": { + "ignore_above": 256, + "type": "keyword" + }, + "name": { + "ignore_above": 256, + "type": "keyword" + }, + "version": { + "ignore_above": 256, + "type": "keyword" + } + } + } + } + } + } + } + } + }, + "cardinality": { + "properties": { + "transaction": { + "properties": { + "name": { + "properties": { + "all_agents": { + "properties": { + "1d": { + "type": "long" + } + } + }, + "rum": { + "properties": { + "1d": { + "type": "long" + } + } + } + } + } + } + }, + "user_agent": { + "properties": { + "original": { + "properties": { + "all_agents": { + "properties": { + "1d": { + "type": "long" + } + } + }, + "rum": { + "properties": { + "1d": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "counts": { + "properties": { + "agent_configuration": { + "properties": { + "all": { + "type": "long" + } + } + }, + "error": { + "properties": { + "1d": { + "type": "long" + }, + "all": { + "type": "long" + } + } + }, + "max_error_groups_per_service": { + "properties": { + "1d": { + "type": "long" + } + } + }, + "max_transaction_groups_per_service": { + "properties": { + "1d": { + "type": "long" + } + } + }, + "metric": { + "properties": { + "1d": { + "type": "long" + }, + "all": { + "type": "long" + } + } + }, + "onboarding": { + "properties": { + "1d": { + "type": "long" + }, + "all": { + "type": "long" + } + } + }, + "services": { + "properties": { + "1d": { + "type": "long" + } + } + }, + "sourcemap": { + "properties": { + "1d": { + "type": "long" + }, + "all": { + "type": "long" + } + } + }, + "span": { + "properties": { + "1d": { + "type": "long" + }, + "all": { + "type": "long" + } + } + }, + "traces": { + "properties": { + "1d": { + "type": "long" + } + } + }, + "transaction": { + "properties": { + "1d": { + "type": "long" + }, + "all": { + "type": "long" + } + } + } + } + }, + "has_any_services": { + "type": "boolean" + }, + "indices": { + "properties": { + "all": { + "properties": { + "total": { + "properties": { + "docs": { + "properties": { + "count": { + "type": "long" + } + } + }, + "store": { + "properties": { + "size_in_bytes": { + "type": "long" + } + } + } + } + } + } + }, + "shards": { + "properties": { + "total": { + "type": "long" + } + } + } + } + }, + "integrations": { + "properties": { + "ml": { + "properties": { + "all_jobs_count": { + "type": "long" + } + } + } + } + }, + "retainment": { + "properties": { + "error": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "metric": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "onboarding": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "span": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "transaction": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "services_per_agent": { + "properties": { + "dotnet": { + "null_value": 0, + "type": "long" + }, + "go": { + "null_value": 0, + "type": "long" + }, + "java": { + "null_value": 0, + "type": "long" + }, + "js-base": { + "null_value": 0, + "type": "long" + }, + "nodejs": { + "null_value": 0, + "type": "long" + }, + "python": { + "null_value": 0, + "type": "long" + }, + "ruby": { + "null_value": 0, + "type": "long" + }, + "rum-js": { + "null_value": 0, + "type": "long" + } + } + }, + "tasks": { + "properties": { + "agent_configuration": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "agents": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "cardinality": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "groupings": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "indices_stats": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "integrations": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "processor_events": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "services": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "versions": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "version": { + "properties": { + "apm_server": { + "properties": { + "major": { + "type": "long" + }, + "minor": { + "type": "long" + }, + "patch": { + "type": "long" + } + } + } + } + } + } + }, + "application_usage_totals": { + "properties": { + "appId": { + "type": "keyword" + }, + "minutesOnScreen": { + "type": "float" + }, + "numberOfClicks": { + "type": "long" + } + } + }, + "application_usage_transactional": { + "properties": { + "appId": { + "type": "keyword" + }, + "minutesOnScreen": { + "type": "float" + }, + "numberOfClicks": { + "type": "long" + }, + "timestamp": { + "type": "date" + } + } + }, + "canvas-element": { + "dynamic": "false", + "properties": { + "@created": { + "type": "date" + }, + "@timestamp": { + "type": "date" + }, + "content": { + "type": "text" + }, + "help": { + "type": "text" + }, + "image": { + "type": "text" + }, + "name": { + "fields": { + "keyword": { + "type": "keyword" + } + }, + "type": "text" + } + } + }, + "canvas-workpad": { + "dynamic": "false", + "properties": { + "@created": { + "type": "date" + }, + "@timestamp": { + "type": "date" + }, + "name": { + "fields": { + "keyword": { + "type": "keyword" + } + }, + "type": "text" + } + } + }, + "cases": { + "properties": { + "closed_at": { + "type": "date" + }, + "closed_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + }, + "created_at": { + "type": "date" + }, + "created_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + }, + "description": { + "type": "text" + }, + "external_service": { + "properties": { + "connector_id": { + "type": "keyword" + }, + "connector_name": { + "type": "keyword" + }, + "external_id": { + "type": "keyword" + }, + "external_title": { + "type": "text" + }, + "external_url": { + "type": "text" + }, + "pushed_at": { + "type": "date" + }, + "pushed_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + } + } + }, + "status": { + "type": "keyword" + }, + "tags": { + "type": "keyword" + }, + "title": { + "type": "keyword" + }, + "updated_at": { + "type": "date" + }, + "updated_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + } + } + }, + "cases-comments": { + "properties": { + "comment": { + "type": "text" + }, + "created_at": { + "type": "date" + }, + "created_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + }, + "pushed_at": { + "type": "date" + }, + "pushed_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + }, + "updated_at": { + "type": "date" + }, + "updated_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + } + } + }, + "cases-configure": { + "properties": { + "closure_type": { + "type": "keyword" + }, + "connector_id": { + "type": "keyword" + }, + "connector_name": { + "type": "keyword" + }, + "created_at": { + "type": "date" + }, + "created_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + }, + "updated_at": { + "type": "date" + }, + "updated_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + } + } + }, + "cases-user-actions": { + "properties": { + "action": { + "type": "keyword" + }, + "action_at": { + "type": "date" + }, + "action_by": { + "properties": { + "email": { + "type": "keyword" + }, + "full_name": { + "type": "keyword" + }, + "username": { + "type": "keyword" + } + } + }, + "action_field": { + "type": "keyword" + }, + "new_value": { + "type": "text" + }, + "old_value": { + "type": "text" + } + } + }, + "config": { + "dynamic": "true", + "properties": { + "buildNum": { + "type": "keyword" + }, + "dateFormat:tz": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "defaultIndex": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + } + } + }, + "dashboard": { + "properties": { + "description": { + "type": "text" + }, + "hits": { + "type": "integer" + }, + "kibanaSavedObjectMeta": { + "properties": { + "searchSourceJSON": { + "type": "text" + } + } + }, + "optionsJSON": { + "type": "text" + }, + "panelsJSON": { + "type": "text" + }, + "refreshInterval": { + "properties": { + "display": { + "type": "keyword" + }, + "pause": { + "type": "boolean" + }, + "section": { + "type": "integer" + }, + "value": { + "type": "integer" + } + } + }, + "timeFrom": { + "type": "keyword" + }, + "timeRestore": { + "type": "boolean" + }, + "timeTo": { + "type": "keyword" + }, + "title": { + "type": "text" + }, + "version": { + "type": "integer" + } + } + }, + "datasources": { + "properties": { + "config_id": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "enabled": { + "type": "boolean" + }, + "inputs": { + "properties": { + "config": { + "type": "flattened" + }, + "enabled": { + "type": "boolean" + }, + "processors": { + "type": "keyword" + }, + "streams": { + "properties": { + "config": { + "type": "flattened" + }, + "dataset": { + "type": "keyword" + }, + "enabled": { + "type": "boolean" + }, + "id": { + "type": "keyword" + }, + "processors": { + "type": "keyword" + } + }, + "type": "nested" + }, + "type": { + "type": "keyword" + } + }, + "type": "nested" + }, + "name": { + "type": "keyword" + }, + "namespace": { + "type": "keyword" + }, + "output_id": { + "type": "keyword" + }, + "package": { + "properties": { + "name": { + "type": "keyword" + }, + "title": { + "type": "keyword" + }, + "version": { + "type": "keyword" + } + } + }, + "revision": { + "type": "integer" + } + } + }, + "enrollment_api_keys": { + "properties": { + "active": { + "type": "boolean" + }, + "api_key": { + "type": "binary" + }, + "api_key_id": { + "type": "keyword" + }, + "config_id": { + "type": "keyword" + }, + "created_at": { + "type": "date" + }, + "expire_at": { + "type": "date" + }, + "name": { + "type": "keyword" + }, + "type": { + "type": "keyword" + }, + "updated_at": { + "type": "date" + } + } + }, + "epm-package": { + "properties": { + "installed": { + "properties": { + "id": { + "type": "keyword" + }, + "type": { + "type": "keyword" + } + }, + "type": "nested" + }, + "name": { + "type": "keyword" + }, + "version": { + "type": "keyword" + } + } + }, + "file-upload-telemetry": { + "properties": { + "filesUploadedTotalCount": { + "type": "long" + } + } + }, + "graph-workspace": { + "properties": { + "description": { + "type": "text" + }, + "kibanaSavedObjectMeta": { + "properties": { + "searchSourceJSON": { + "type": "text" + } + } + }, + "numLinks": { + "type": "integer" + }, + "numVertices": { + "type": "integer" + }, + "title": { + "type": "text" + }, + "version": { + "type": "integer" + }, + "wsState": { + "type": "text" + } + } + }, + "index-pattern": { + "properties": { + "fieldFormatMap": { + "type": "text" + }, + "fields": { + "type": "text" + }, + "intervalName": { + "type": "keyword" + }, + "notExpandable": { + "type": "boolean" + }, + "sourceFilters": { + "type": "text" + }, + "timeFieldName": { + "type": "keyword" + }, + "title": { + "type": "text" + }, + "type": { + "type": "keyword" + }, + "typeMeta": { + "type": "keyword" + } + } + }, + "infrastructure-ui-source": { + "properties": { + "description": { + "type": "text" + }, + "fields": { + "properties": { + "container": { + "type": "keyword" + }, + "host": { + "type": "keyword" + }, + "pod": { + "type": "keyword" + }, + "tiebreaker": { + "type": "keyword" + }, + "timestamp": { + "type": "keyword" + } + } + }, + "logAlias": { + "type": "keyword" + }, + "logColumns": { + "properties": { + "fieldColumn": { + "properties": { + "field": { + "type": "keyword" + }, + "id": { + "type": "keyword" + } + } + }, + "messageColumn": { + "properties": { + "id": { + "type": "keyword" + } + } + }, + "timestampColumn": { + "properties": { + "id": { + "type": "keyword" + } + } + } + }, + "type": "nested" + }, + "metricAlias": { + "type": "keyword" + }, + "name": { + "type": "text" + } + } + }, + "inventory-view": { + "properties": { + "autoBounds": { + "type": "boolean" + }, + "autoReload": { + "type": "boolean" + }, + "boundsOverride": { + "properties": { + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + } + } + }, + "customMetrics": { + "properties": { + "aggregation": { + "type": "keyword" + }, + "field": { + "type": "keyword" + }, + "id": { + "type": "keyword" + }, + "label": { + "type": "keyword" + }, + "type": { + "type": "keyword" + } + }, + "type": "nested" + }, + "customOptions": { + "properties": { + "field": { + "type": "keyword" + }, + "text": { + "type": "keyword" + } + }, + "type": "nested" + }, + "filterQuery": { + "properties": { + "expression": { + "type": "keyword" + }, + "kind": { + "type": "keyword" + } + } + }, + "groupBy": { + "properties": { + "field": { + "type": "keyword" + }, + "label": { + "type": "keyword" + } + }, + "type": "nested" + }, + "metric": { + "properties": { + "aggregation": { + "type": "keyword" + }, + "field": { + "type": "keyword" + }, + "id": { + "type": "keyword" + }, + "label": { + "type": "keyword" + }, + "type": { + "type": "keyword" + } + } + }, + "name": { + "type": "keyword" + }, + "nodeType": { + "type": "keyword" + }, + "time": { + "type": "integer" + }, + "view": { + "type": "keyword" + } + } + }, + "kql-telemetry": { + "properties": { + "optInCount": { + "type": "long" + }, + "optOutCount": { + "type": "long" + } + } + }, + "lens": { + "properties": { + "expression": { + "index": false, + "type": "keyword" + }, + "state": { + "type": "flattened" + }, + "title": { + "type": "text" + }, + "visualizationType": { + "type": "keyword" + } + } + }, + "lens-ui-telemetry": { + "properties": { + "count": { + "type": "integer" + }, + "date": { + "type": "date" + }, + "name": { + "type": "keyword" + }, + "type": { + "type": "keyword" + } + } + }, + "map": { + "properties": { + "bounds": { + "type": "geo_shape" + }, + "description": { + "type": "text" + }, + "layerListJSON": { + "type": "text" + }, + "mapStateJSON": { + "type": "text" + }, + "title": { + "type": "text" + }, + "uiStateJSON": { + "type": "text" + }, + "version": { + "type": "integer" + } + } + }, + "maps-telemetry": { + "properties": { + "attributesPerMap": { + "properties": { + "dataSourcesCount": { + "properties": { + "avg": { + "type": "long" + }, + "max": { + "type": "long" + }, + "min": { + "type": "long" + } + } + }, + "emsVectorLayersCount": { + "dynamic": "true", + "type": "object" + }, + "layerTypesCount": { + "dynamic": "true", + "type": "object" + }, + "layersCount": { + "properties": { + "avg": { + "type": "long" + }, + "max": { + "type": "long" + }, + "min": { + "type": "long" + } + } + } + } + }, + "indexPatternsWithGeoFieldCount": { + "type": "long" + }, + "mapsTotalCount": { + "type": "long" + }, + "settings": { + "properties": { + "showMapVisualizationTypes": { + "type": "boolean" + } + } + }, + "timeCaptured": { + "type": "date" + } + } + }, + "metrics-explorer-view": { + "properties": { + "chartOptions": { + "properties": { + "stack": { + "type": "boolean" + }, + "type": { + "type": "keyword" + }, + "yAxisMode": { + "type": "keyword" + } + } + }, + "currentTimerange": { + "properties": { + "from": { + "type": "keyword" + }, + "interval": { + "type": "keyword" + }, + "to": { + "type": "keyword" + } + } + }, + "name": { + "type": "keyword" + }, + "options": { + "properties": { + "aggregation": { + "type": "keyword" + }, + "filterQuery": { + "type": "keyword" + }, + "groupBy": { + "type": "keyword" + }, + "limit": { + "type": "integer" + }, + "metrics": { + "properties": { + "aggregation": { + "type": "keyword" + }, + "color": { + "type": "keyword" + }, + "field": { + "type": "keyword" + }, + "label": { + "type": "keyword" + } + }, + "type": "nested" + } + } + } + } + }, + "migrationVersion": { + "dynamic": "true", + "properties": { + "canvas-workpad": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "dashboard": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "graph-workspace": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "index-pattern": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "map": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "space": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "visualization": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + } + } + }, + "ml-telemetry": { + "properties": { + "file_data_visualizer": { + "properties": { + "index_creation_count": { + "type": "long" + } + } + } + } + }, + "namespace": { + "type": "keyword" + }, + "outputs": { + "properties": { + "api_key": { + "type": "keyword" + }, + "ca_sha256": { + "type": "keyword" + }, + "config": { + "type": "flattened" + }, + "fleet_enroll_password": { + "type": "binary" + }, + "fleet_enroll_username": { + "type": "binary" + }, + "hosts": { + "type": "keyword" + }, + "is_default": { + "type": "boolean" + }, + "name": { + "type": "keyword" + }, + "type": { + "type": "keyword" + } + } + }, + "query": { + "properties": { + "description": { + "type": "text" + }, + "filters": { + "enabled": false, + "type": "object" + }, + "query": { + "properties": { + "language": { + "type": "keyword" + }, + "query": { + "index": false, + "type": "keyword" + } + } + }, + "timefilter": { + "enabled": false, + "type": "object" + }, + "title": { + "type": "text" + } + } + }, + "references": { + "properties": { + "id": { + "type": "keyword" + }, + "name": { + "type": "keyword" + }, + "type": { + "type": "keyword" + } + }, + "type": "nested" + }, + "sample-data-telemetry": { + "properties": { + "installCount": { + "type": "long" + }, + "unInstallCount": { + "type": "long" + } + } + }, + "search": { + "properties": { + "columns": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "hits": { + "type": "integer" + }, + "kibanaSavedObjectMeta": { + "properties": { + "searchSourceJSON": { + "type": "text" + } + } + }, + "sort": { + "type": "keyword" + }, + "title": { + "type": "text" + }, + "version": { + "type": "integer" + } + } + }, + "server": { + "properties": { + "uuid": { + "type": "keyword" + } + } + }, + "siem-detection-engine-rule-status": { + "properties": { + "alertId": { + "type": "keyword" + }, + "bulkCreateTimeDurations": { + "type": "float" + }, + "gap": { + "type": "text" + }, + "lastFailureAt": { + "type": "date" + }, + "lastFailureMessage": { + "type": "text" + }, + "lastLookBackDate": { + "type": "date" + }, + "lastSuccessAt": { + "type": "date" + }, + "lastSuccessMessage": { + "type": "text" + }, + "searchAfterTimeDurations": { + "type": "float" + }, + "status": { + "type": "keyword" + }, + "statusDate": { + "type": "date" + } + } + }, + "siem-ui-timeline": { + "properties": { + "columns": { + "properties": { + "aggregatable": { + "type": "boolean" + }, + "category": { + "type": "keyword" + }, + "columnHeaderType": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "example": { + "type": "text" + }, + "id": { + "type": "keyword" + }, + "indexes": { + "type": "keyword" + }, + "name": { + "type": "text" + }, + "placeholder": { + "type": "text" + }, + "searchable": { + "type": "boolean" + }, + "type": { + "type": "keyword" + } + } + }, + "created": { + "type": "date" + }, + "createdBy": { + "type": "text" + }, + "dataProviders": { + "properties": { + "and": { + "properties": { + "enabled": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "id": { + "type": "keyword" + }, + "kqlQuery": { + "type": "text" + }, + "name": { + "type": "text" + }, + "queryMatch": { + "properties": { + "displayField": { + "type": "text" + }, + "displayValue": { + "type": "text" + }, + "field": { + "type": "text" + }, + "operator": { + "type": "text" + }, + "value": { + "type": "text" + } + } + } + } + }, + "enabled": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "id": { + "type": "keyword" + }, + "kqlQuery": { + "type": "text" + }, + "name": { + "type": "text" + }, + "queryMatch": { + "properties": { + "displayField": { + "type": "text" + }, + "displayValue": { + "type": "text" + }, + "field": { + "type": "text" + }, + "operator": { + "type": "text" + }, + "value": { + "type": "text" + } + } + } + } + }, + "dateRange": { + "properties": { + "end": { + "type": "date" + }, + "start": { + "type": "date" + } + } + }, + "description": { + "type": "text" + }, + "eventType": { + "type": "keyword" + }, + "favorite": { + "properties": { + "favoriteDate": { + "type": "date" + }, + "fullName": { + "type": "text" + }, + "keySearch": { + "type": "text" + }, + "userName": { + "type": "text" + } + } + }, + "filters": { + "properties": { + "exists": { + "type": "text" + }, + "match_all": { + "type": "text" + }, + "meta": { + "properties": { + "alias": { + "type": "text" + }, + "controlledBy": { + "type": "text" + }, + "disabled": { + "type": "boolean" + }, + "field": { + "type": "text" + }, + "formattedValue": { + "type": "text" + }, + "index": { + "type": "keyword" + }, + "key": { + "type": "keyword" + }, + "negate": { + "type": "boolean" + }, + "params": { + "type": "text" + }, + "type": { + "type": "keyword" + }, + "value": { + "type": "text" + } + } + }, + "missing": { + "type": "text" + }, + "query": { + "type": "text" + }, + "range": { + "type": "text" + }, + "script": { + "type": "text" + } + } + }, + "kqlMode": { + "type": "keyword" + }, + "kqlQuery": { + "properties": { + "filterQuery": { + "properties": { + "kuery": { + "properties": { + "expression": { + "type": "text" + }, + "kind": { + "type": "keyword" + } + } + }, + "serializedQuery": { + "type": "text" + } + } + } + } + }, + "savedQueryId": { + "type": "keyword" + }, + "sort": { + "properties": { + "columnId": { + "type": "keyword" + }, + "sortDirection": { + "type": "keyword" + } + } + }, + "title": { + "type": "text" + }, + "updated": { + "type": "date" + }, + "updatedBy": { + "type": "text" + } + } + }, + "siem-ui-timeline-note": { + "properties": { + "created": { + "type": "date" + }, + "createdBy": { + "type": "text" + }, + "eventId": { + "type": "keyword" + }, + "note": { + "type": "text" + }, + "timelineId": { + "type": "keyword" + }, + "updated": { + "type": "date" + }, + "updatedBy": { + "type": "text" + } + } + }, + "siem-ui-timeline-pinned-event": { + "properties": { + "created": { + "type": "date" + }, + "createdBy": { + "type": "text" + }, + "eventId": { + "type": "keyword" + }, + "timelineId": { + "type": "keyword" + }, + "updated": { + "type": "date" + }, + "updatedBy": { + "type": "text" + } + } + }, + "space": { + "properties": { + "_reserved": { + "type": "boolean" + }, + "color": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "disabledFeatures": { + "type": "keyword" + }, + "imageUrl": { + "index": false, + "type": "text" + }, + "initials": { + "type": "keyword" + }, + "name": { + "fields": { + "keyword": { + "ignore_above": 2048, + "type": "keyword" + } + }, + "type": "text" + } + } + }, + "telemetry": { + "properties": { + "allowChangingOptInStatus": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "lastReported": { + "type": "date" + }, + "lastVersionChecked": { + "type": "keyword" + }, + "reportFailureCount": { + "type": "integer" + }, + "reportFailureVersion": { + "type": "keyword" + }, + "sendUsageFrom": { + "type": "keyword" + }, + "userHasSeenNotice": { + "type": "boolean" + } + } + }, + "timelion-sheet": { + "properties": { + "description": { + "type": "text" + }, + "hits": { + "type": "integer" + }, + "kibanaSavedObjectMeta": { + "properties": { + "searchSourceJSON": { + "type": "text" + } + } + }, + "timelion_chart_height": { + "type": "integer" + }, + "timelion_columns": { + "type": "integer" + }, + "timelion_interval": { + "type": "keyword" + }, + "timelion_other_interval": { + "type": "keyword" + }, + "timelion_rows": { + "type": "integer" + }, + "timelion_sheet": { + "type": "text" + }, + "title": { + "type": "text" + }, + "version": { + "type": "integer" + } + } + }, + "tsvb-validation-telemetry": { + "properties": { + "failedRequests": { + "type": "long" + } + } + }, + "type": { + "type": "keyword" + }, + "ui-metric": { + "properties": { + "count": { + "type": "integer" + } + } + }, + "updated_at": { + "type": "date" + }, + "upgrade-assistant-reindex-operation": { + "dynamic": "true", + "properties": { + "indexName": { + "type": "keyword" + }, + "status": { + "type": "integer" + } + } + }, + "upgrade-assistant-telemetry": { + "properties": { + "features": { + "properties": { + "deprecation_logging": { + "properties": { + "enabled": { + "null_value": true, + "type": "boolean" + } + } + } + } + }, + "ui_open": { + "properties": { + "cluster": { + "null_value": 0, + "type": "long" + }, + "indices": { + "null_value": 0, + "type": "long" + }, + "overview": { + "null_value": 0, + "type": "long" + } + } + }, + "ui_reindex": { + "properties": { + "close": { + "null_value": 0, + "type": "long" + }, + "open": { + "null_value": 0, + "type": "long" + }, + "start": { + "null_value": 0, + "type": "long" + }, + "stop": { + "null_value": 0, + "type": "long" + } + } + } + } + }, + "uptime-dynamic-settings": { + "properties": { + "heartbeatIndices": { + "type": "keyword" + } + } + }, + "url": { + "properties": { + "accessCount": { + "type": "long" + }, + "accessDate": { + "type": "date" + }, + "createDate": { + "type": "date" + }, + "url": { + "fields": { + "keyword": { + "ignore_above": 2048, + "type": "keyword" + } + }, + "type": "text" + } + } + }, + "visualization": { + "properties": { + "description": { + "type": "text" + }, + "kibanaSavedObjectMeta": { + "properties": { + "searchSourceJSON": { + "type": "text" + } + } + }, + "savedSearchRefName": { + "type": "keyword" + }, + "title": { + "type": "text" + }, + "uiStateJSON": { + "type": "text" + }, + "version": { + "type": "integer" + }, + "visState": { + "type": "text" + } + } + } + } + }, + "settings": { + "index": { + "auto_expand_replicas": "0-1", + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + } +} \ No newline at end of file diff --git a/x-pack/test/functional/services/machine_learning/api.ts b/x-pack/test/functional/services/machine_learning/api.ts index 74dc5912df36f1..afc2567f3cce9f 100644 --- a/x-pack/test/functional/services/machine_learning/api.ts +++ b/x-pack/test/functional/services/machine_learning/api.ts @@ -277,6 +277,16 @@ export function MachineLearningAPIProvider({ getService }: FtrProviderContext) { return await esSupertest.get(`/_ml/anomaly_detectors/${jobId}`).expect(200); }, + async waitForAnomalyDetectionJobToExist(jobId: string) { + await retry.waitForWithTimeout(`'${jobId}' to exist`, 5 * 1000, async () => { + if (await this.getAnomalyDetectionJob(jobId)) { + return true; + } else { + throw new Error(`expected anomaly detection job '${jobId}' to exist`); + } + }); + }, + async createAnomalyDetectionJob(jobConfig: Job) { const jobId = jobConfig.job_id; log.debug(`Creating anomaly detection job with id '${jobId}'...`); @@ -285,19 +295,23 @@ export function MachineLearningAPIProvider({ getService }: FtrProviderContext) { .send(jobConfig) .expect(200); - await retry.waitForWithTimeout(`'${jobId}' to be created`, 5 * 1000, async () => { - if (await this.getAnomalyDetectionJob(jobId)) { - return true; - } else { - throw new Error(`expected anomaly detection job '${jobId}' to be created`); - } - }); + await this.waitForAnomalyDetectionJobToExist(jobId); }, async getDatafeed(datafeedId: string) { return await esSupertest.get(`/_ml/datafeeds/${datafeedId}`).expect(200); }, + async waitForDatafeedToExist(datafeedId: string) { + await retry.waitForWithTimeout(`'${datafeedId}' to exist`, 5 * 1000, async () => { + if (await this.getDatafeed(datafeedId)) { + return true; + } else { + throw new Error(`expected datafeed '${datafeedId}' to exist`); + } + }); + }, + async createDatafeed(datafeedConfig: Datafeed) { const datafeedId = datafeedConfig.datafeed_id; log.debug(`Creating datafeed with id '${datafeedId}'...`); @@ -306,13 +320,7 @@ export function MachineLearningAPIProvider({ getService }: FtrProviderContext) { .send(datafeedConfig) .expect(200); - await retry.waitForWithTimeout(`'${datafeedId}' to be created`, 5 * 1000, async () => { - if (await this.getDatafeed(datafeedId)) { - return true; - } else { - throw new Error(`expected datafeed '${datafeedId}' to be created`); - } - }); + await this.waitForDatafeedToExist(datafeedId); }, async openAnomalyDetectionJob(jobId: string) { diff --git a/x-pack/test/functional/services/machine_learning/security_common.ts b/x-pack/test/functional/services/machine_learning/security_common.ts index d59c1edcb00abb..1145b6f93a4f83 100644 --- a/x-pack/test/functional/services/machine_learning/security_common.ts +++ b/x-pack/test/functional/services/machine_learning/security_common.ts @@ -12,6 +12,7 @@ export type MlSecurityCommon = ProvidedType Date: Tue, 31 Mar 2020 10:33:04 +0300 Subject: [PATCH 025/118] Delete legacy `embeddable_api` plugin (#61767) * Delete legacy `embeddable_api` plugin Closes: #61545 * fix test:karma --- .../core_plugins/embeddable_api/README.md | 2 -- .../core_plugins/embeddable_api/index.ts | 25 ------------------- .../core_plugins/embeddable_api/package.json | 4 --- .../public/np_ready/public/index.ts | 20 --------------- .../public/np_ready/public/legacy.ts | 24 ------------------ .../np_ready/public/lib/test_samples/index.ts | 21 ---------------- .../public/np_ready/public/mocks.ts | 21 ---------------- .../dashboard/np_ready/dashboard_app.tsx | 2 +- .../np_ready/dashboard_app_controller.tsx | 2 +- ...embeddable_saved_object_converters.test.ts | 2 +- .../np_ready/embeddable/search_embeddable.ts | 2 +- .../functions/common/saved_lens.ts | 5 ++-- .../functions/common/saved_map.ts | 5 ++-- .../renderers/embeddable/embeddable.tsx | 7 +++--- .../components/embeddable_flyout/flyout.tsx | 7 +++--- .../embeddable/embeddable_factory.ts | 2 +- .../embeddable/map_embeddable_factory.ts | 12 +++++---- .../components/embeddables/embedded_map.tsx | 8 +++--- .../embeddables/embedded_map_helpers.tsx | 3 +-- .../location_map/embeddables/embedded_map.tsx | 4 +-- .../panel_actions/get_csv_panel_action.tsx | 5 +--- 21 files changed, 30 insertions(+), 153 deletions(-) delete mode 100644 src/legacy/core_plugins/embeddable_api/README.md delete mode 100644 src/legacy/core_plugins/embeddable_api/index.ts delete mode 100644 src/legacy/core_plugins/embeddable_api/package.json delete mode 100644 src/legacy/core_plugins/embeddable_api/public/np_ready/public/index.ts delete mode 100644 src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy.ts delete mode 100644 src/legacy/core_plugins/embeddable_api/public/np_ready/public/lib/test_samples/index.ts delete mode 100644 src/legacy/core_plugins/embeddable_api/public/np_ready/public/mocks.ts diff --git a/src/legacy/core_plugins/embeddable_api/README.md b/src/legacy/core_plugins/embeddable_api/README.md deleted file mode 100644 index c2f67572df873b..00000000000000 --- a/src/legacy/core_plugins/embeddable_api/README.md +++ /dev/null @@ -1,2 +0,0 @@ -- Embeddables have been moved to `/src/plugins/embeddable` NP plugin. -- This legacy plugin is still there to make necessary CSS working, but soon will be completely deleted. diff --git a/src/legacy/core_plugins/embeddable_api/index.ts b/src/legacy/core_plugins/embeddable_api/index.ts deleted file mode 100644 index 52206e3d0f105f..00000000000000 --- a/src/legacy/core_plugins/embeddable_api/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { LegacyPluginApi, LegacyPluginSpec, ArrayOrItem } from 'src/legacy/plugin_discovery/types'; - -// eslint-disable-next-line import/no-default-export -export default function(kibana: LegacyPluginApi): ArrayOrItem { - return new kibana.Plugin({}); -} diff --git a/src/legacy/core_plugins/embeddable_api/package.json b/src/legacy/core_plugins/embeddable_api/package.json deleted file mode 100644 index f625408fe4c6c2..00000000000000 --- a/src/legacy/core_plugins/embeddable_api/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "embeddable_api", - "version": "kibana" -} diff --git a/src/legacy/core_plugins/embeddable_api/public/np_ready/public/index.ts b/src/legacy/core_plugins/embeddable_api/public/np_ready/public/index.ts deleted file mode 100644 index 4b69616a777e9a..00000000000000 --- a/src/legacy/core_plugins/embeddable_api/public/np_ready/public/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export * from '../../../../../../plugins/embeddable/public'; diff --git a/src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy.ts b/src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy.ts deleted file mode 100644 index 5357c2458e3b04..00000000000000 --- a/src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -// eslint-disable-next-line -import { npSetup, npStart } from 'ui/new_platform'; - -export const setup = npSetup.plugins.embeddable; -export const start = npStart.plugins.embeddable; diff --git a/src/legacy/core_plugins/embeddable_api/public/np_ready/public/lib/test_samples/index.ts b/src/legacy/core_plugins/embeddable_api/public/np_ready/public/lib/test_samples/index.ts deleted file mode 100644 index 4f0537aff5dc29..00000000000000 --- a/src/legacy/core_plugins/embeddable_api/public/np_ready/public/lib/test_samples/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -// eslint-disable-next-line -export * from '../../../../../../../../plugins/embeddable/public/lib/test_samples'; diff --git a/src/legacy/core_plugins/embeddable_api/public/np_ready/public/mocks.ts b/src/legacy/core_plugins/embeddable_api/public/np_ready/public/mocks.ts deleted file mode 100644 index 10510bff0c97e4..00000000000000 --- a/src/legacy/core_plugins/embeddable_api/public/np_ready/public/mocks.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -// eslint-disable-next-line -export * from '../../../../../../plugins/embeddable/public/mocks'; diff --git a/src/legacy/core_plugins/kibana/public/dashboard/np_ready/dashboard_app.tsx b/src/legacy/core_plugins/kibana/public/dashboard/np_ready/dashboard_app.tsx index e21033ffe10ec7..cc7299b8848905 100644 --- a/src/legacy/core_plugins/kibana/public/dashboard/np_ready/dashboard_app.tsx +++ b/src/legacy/core_plugins/kibana/public/dashboard/np_ready/dashboard_app.tsx @@ -21,7 +21,7 @@ import moment from 'moment'; import { Subscription } from 'rxjs'; import { History } from 'history'; -import { ViewMode } from '../../../../embeddable_api/public/np_ready/public'; +import { ViewMode } from '../../../../../../plugins/embeddable/public'; import { SavedObjectDashboard } from '../../../../../../plugins/dashboard/public'; import { DashboardAppState, SavedDashboardPanel } from './types'; import { diff --git a/src/legacy/core_plugins/kibana/public/dashboard/np_ready/dashboard_app_controller.tsx b/src/legacy/core_plugins/kibana/public/dashboard/np_ready/dashboard_app_controller.tsx index 0c6686c9933716..a39266ecd8db38 100644 --- a/src/legacy/core_plugins/kibana/public/dashboard/np_ready/dashboard_app_controller.tsx +++ b/src/legacy/core_plugins/kibana/public/dashboard/np_ready/dashboard_app_controller.tsx @@ -58,7 +58,7 @@ import { isErrorEmbeddable, openAddPanelFlyout, ViewMode, -} from '../../../../embeddable_api/public/np_ready/public'; +} from '../../../../../../plugins/embeddable/public'; import { NavAction, SavedDashboardPanel } from './types'; import { showOptionsPopover } from './top_nav/show_options_popover'; diff --git a/src/legacy/core_plugins/kibana/public/dashboard/np_ready/lib/embeddable_saved_object_converters.test.ts b/src/legacy/core_plugins/kibana/public/dashboard/np_ready/lib/embeddable_saved_object_converters.test.ts index b2a2f43b9152d2..d3c3dc46c70570 100644 --- a/src/legacy/core_plugins/kibana/public/dashboard/np_ready/lib/embeddable_saved_object_converters.test.ts +++ b/src/legacy/core_plugins/kibana/public/dashboard/np_ready/lib/embeddable_saved_object_converters.test.ts @@ -24,7 +24,7 @@ import { } from './embeddable_saved_object_converters'; import { SavedDashboardPanel } from '../types'; import { DashboardPanelState } from 'src/plugins/dashboard/public'; -import { EmbeddableInput } from 'src/legacy/core_plugins/embeddable_api/public/np_ready/public'; +import { EmbeddableInput } from 'src/plugins/embeddable/public'; interface CustomInput extends EmbeddableInput { something: string; diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/embeddable/search_embeddable.ts b/src/legacy/core_plugins/kibana/public/discover/np_ready/embeddable/search_embeddable.ts index d09b7612af49c6..3cb8bce80fa41e 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/embeddable/search_embeddable.ts +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/embeddable/search_embeddable.ts @@ -34,7 +34,7 @@ import { Query, IFieldType, } from '../../../../../../../plugins/data/public'; -import { Container, Embeddable } from '../../../../../embeddable_api/public/np_ready/public'; +import { Container, Embeddable } from '../../../../../../../plugins/embeddable/public'; import * as columnActions from '../angular/doc_table/actions/columns'; import searchTemplate from './search_template.html'; import { ISearchEmbeddable, SearchInput, SearchOutput } from './types'; diff --git a/x-pack/legacy/plugins/canvas/canvas_plugin_src/functions/common/saved_lens.ts b/x-pack/legacy/plugins/canvas/canvas_plugin_src/functions/common/saved_lens.ts index 60026adc0998aa..2985a68cf855cc 100644 --- a/x-pack/legacy/plugins/canvas/canvas_plugin_src/functions/common/saved_lens.ts +++ b/x-pack/legacy/plugins/canvas/canvas_plugin_src/functions/common/saved_lens.ts @@ -5,8 +5,8 @@ */ import { ExpressionFunctionDefinition } from 'src/plugins/expressions/common'; -import { TimeRange } from 'src/plugins/data/public'; -import { EmbeddableInput } from 'src/legacy/core_plugins/embeddable_api/public/np_ready/public'; +import { TimeRange, Filter as DataFilter } from 'src/plugins/data/public'; +import { EmbeddableInput } from 'src/plugins/embeddable/public'; import { getQueryFilters } from '../../../public/lib/build_embeddable_filters'; import { Filter, TimeRange as TimeRangeArg } from '../../../types'; import { @@ -15,7 +15,6 @@ import { EmbeddableExpression, } from '../../expression_types'; import { getFunctionHelp } from '../../../i18n'; -import { Filter as DataFilter } from '../../../../../../../src/plugins/data/public'; interface Arguments { id: string; diff --git a/x-pack/legacy/plugins/canvas/canvas_plugin_src/functions/common/saved_map.ts b/x-pack/legacy/plugins/canvas/canvas_plugin_src/functions/common/saved_map.ts index 78240eee7ce130..4b045b0c5edcf2 100644 --- a/x-pack/legacy/plugins/canvas/canvas_plugin_src/functions/common/saved_map.ts +++ b/x-pack/legacy/plugins/canvas/canvas_plugin_src/functions/common/saved_map.ts @@ -5,8 +5,8 @@ */ import { ExpressionFunctionDefinition } from 'src/plugins/expressions/common'; -import { TimeRange } from 'src/plugins/data/public'; -import { EmbeddableInput } from 'src/legacy/core_plugins/embeddable_api/public/np_ready/public'; +import { TimeRange, Filter as DataFilter } from 'src/plugins/data/public'; +import { EmbeddableInput } from 'src/plugins/embeddable/public'; import { getQueryFilters } from '../../../public/lib/build_embeddable_filters'; import { Filter, MapCenter, TimeRange as TimeRangeArg } from '../../../types'; import { @@ -15,7 +15,6 @@ import { EmbeddableExpression, } from '../../expression_types'; import { getFunctionHelp } from '../../../i18n'; -import { Filter as DataFilter } from '../../../../../../../src/plugins/data/public'; interface Arguments { id: string; diff --git a/x-pack/legacy/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx b/x-pack/legacy/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx index 3cdb6eb4602244..817be6e144fc83 100644 --- a/x-pack/legacy/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx +++ b/x-pack/legacy/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx @@ -14,7 +14,6 @@ import { EmbeddablePanel, EmbeddableFactoryNotFoundError, } from '../../../../../../../src/plugins/embeddable/public'; -import { start } from '../../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy'; import { EmbeddableExpression } from '../../expression_types/embeddable'; import { RendererStrings } from '../../../i18n'; import { getSavedObjectFinder } from '../../../../../../../src/plugins/saved_objects/public'; @@ -39,8 +38,8 @@ const renderEmbeddable = (embeddableObject: IEmbeddable, domNode: HTMLElement) = ({ const uniqueId = handlers.getElementId(); if (!embeddablesRegistry[uniqueId]) { - const factory = Array.from(start.getEmbeddableFactories()).find( + const factory = Array.from(npStart.plugins.embeddable.getEmbeddableFactories()).find( embeddableFactory => embeddableFactory.type === embeddableType ) as EmbeddableFactory; diff --git a/x-pack/legacy/plugins/canvas/public/components/embeddable_flyout/flyout.tsx b/x-pack/legacy/plugins/canvas/public/components/embeddable_flyout/flyout.tsx index 576c7c4794b08a..08cd3084c35cff 100644 --- a/x-pack/legacy/plugins/canvas/public/components/embeddable_flyout/flyout.tsx +++ b/x-pack/legacy/plugins/canvas/public/components/embeddable_flyout/flyout.tsx @@ -5,13 +5,12 @@ */ import React from 'react'; - +import { npStart } from 'ui/new_platform'; import { EuiFlyout, EuiFlyoutHeader, EuiFlyoutBody, EuiTitle } from '@elastic/eui'; import { SavedObjectFinderUi, SavedObjectMetaData, } from '../../../../../../../src/plugins/saved_objects/public/'; -import { start } from '../../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy'; import { ComponentStrings } from '../../../i18n'; import { CoreStart } from '../../../../../../../src/core/public'; @@ -27,7 +26,7 @@ export interface Props { export class AddEmbeddableFlyout extends React.Component { onAddPanel = (id: string, savedObjectType: string, name: string) => { - const embeddableFactories = start.getEmbeddableFactories(); + const embeddableFactories = npStart.plugins.embeddable.getEmbeddableFactories(); // Find the embeddable type from the saved object type const found = Array.from(embeddableFactories).find(embeddableFactory => { @@ -43,7 +42,7 @@ export class AddEmbeddableFlyout extends React.Component { }; render() { - const embeddableFactories = start.getEmbeddableFactories(); + const embeddableFactories = npStart.plugins.embeddable.getEmbeddableFactories(); const availableSavedObjects = Array.from(embeddableFactories) .filter(factory => { diff --git a/x-pack/legacy/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts b/x-pack/legacy/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts index 2bde698e23562d..1caea1b4b728f5 100644 --- a/x-pack/legacy/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts +++ b/x-pack/legacy/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts @@ -22,7 +22,7 @@ import { ErrorEmbeddable, EmbeddableInput, IContainer, -} from '../../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public'; +} from '../../../../../../../src/plugins/embeddable/public'; import { Embeddable } from './embeddable'; import { SavedObjectIndexStore, DOC_TYPE } from '../../persistence'; import { getEditPath } from '../../../../../../plugins/lens/common'; diff --git a/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable_factory.ts b/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable_factory.ts index ddb937dd989264..b9cb66f8312814 100644 --- a/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable_factory.ts +++ b/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable_factory.ts @@ -11,14 +11,13 @@ import { i18n } from '@kbn/i18n'; import { npSetup, npStart } from 'ui/new_platform'; import { SavedObjectLoader } from 'src/plugins/saved_objects/public'; import { IIndexPattern } from 'src/plugins/data/public'; +import { MapEmbeddable, MapEmbeddableInput } from './map_embeddable'; +import { getIndexPatternService } from '../kibana_services'; import { EmbeddableFactory, ErrorEmbeddable, IContainer, -} from '../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public'; -import { setup } from '../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy'; -import { MapEmbeddable, MapEmbeddableInput } from './map_embeddable'; -import { getIndexPatternService } from '../kibana_services'; +} from '../../../../../../src/plugins/embeddable/public'; import { createMapPath, MAP_SAVED_OBJECT_TYPE, APP_ICON } from '../../common/constants'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths @@ -171,4 +170,7 @@ export class MapEmbeddableFactory extends EmbeddableFactory { } } -setup.registerEmbeddableFactory(MAP_SAVED_OBJECT_TYPE, new MapEmbeddableFactory()); +npSetup.plugins.embeddable.registerEmbeddableFactory( + MAP_SAVED_OBJECT_TYPE, + new MapEmbeddableFactory() +); diff --git a/x-pack/legacy/plugins/siem/public/components/embeddables/embedded_map.tsx b/x-pack/legacy/plugins/siem/public/components/embeddables/embedded_map.tsx index a3c4a655a49379..c7e368da1338f6 100644 --- a/x-pack/legacy/plugins/siem/public/components/embeddables/embedded_map.tsx +++ b/x-pack/legacy/plugins/siem/public/components/embeddables/embedded_map.tsx @@ -8,9 +8,9 @@ import { EuiLink, EuiText } from '@elastic/eui'; import React, { useEffect, useState } from 'react'; import { createPortalNode, InPortal } from 'react-reverse-portal'; import styled, { css } from 'styled-components'; +import { npStart } from 'ui/new_platform'; -import { EmbeddablePanel } from '../../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public'; -import { start } from '../../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy'; +import { EmbeddablePanel } from '../../../../../../../src/plugins/embeddable/public'; import { DEFAULT_INDEX_KEY } from '../../../common/constants'; import { getIndexPatternTitleIdMapping } from '../../hooks/api/helpers'; import { useIndexPatterns } from '../../hooks/use_index_patterns'; @@ -198,8 +198,8 @@ export const EmbeddedMapComponent = ({ data-test-subj="embeddable-panel" embeddable={embeddable} getActions={services.uiActions.getTriggerCompatibleActions} - getEmbeddableFactory={start.getEmbeddableFactory} - getAllEmbeddableFactories={start.getEmbeddableFactories} + getEmbeddableFactory={npStart.plugins.embeddable.getEmbeddableFactory} + getAllEmbeddableFactories={npStart.plugins.embeddable.getEmbeddableFactories} notifications={services.notifications} overlays={services.overlays} inspector={services.inspector} diff --git a/x-pack/legacy/plugins/siem/public/components/embeddables/embedded_map_helpers.tsx b/x-pack/legacy/plugins/siem/public/components/embeddables/embedded_map_helpers.tsx index 4b32fd8299ef7f..56211c9ff8935b 100644 --- a/x-pack/legacy/plugins/siem/public/components/embeddables/embedded_map_helpers.tsx +++ b/x-pack/legacy/plugins/siem/public/components/embeddables/embedded_map_helpers.tsx @@ -8,14 +8,13 @@ import uuid from 'uuid'; import React from 'react'; import { OutPortal, PortalNode } from 'react-reverse-portal'; import minimatch from 'minimatch'; -import { ViewMode } from '../../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public'; import { IndexPatternMapping, SetQuery } from './types'; import { getLayerList } from './map_config'; import { MAP_SAVED_OBJECT_TYPE } from '../../../../../../plugins/maps/public'; import { MapEmbeddable, RenderTooltipContentParams } from '../../../../maps/public'; import * as i18n from './translations'; import { Query, Filter } from '../../../../../../../src/plugins/data/public'; -import { EmbeddableStart } from '../../../../../../../src/plugins/embeddable/public'; +import { EmbeddableStart, ViewMode } from '../../../../../../../src/plugins/embeddable/public'; import { IndexPatternSavedObject } from '../../hooks/types'; /** diff --git a/x-pack/legacy/plugins/uptime/public/components/functional/location_map/embeddables/embedded_map.tsx b/x-pack/legacy/plugins/uptime/public/components/functional/location_map/embeddables/embedded_map.tsx index cfed52f4e5d276..168d71a31dd45f 100644 --- a/x-pack/legacy/plugins/uptime/public/components/functional/location_map/embeddables/embedded_map.tsx +++ b/x-pack/legacy/plugins/uptime/public/components/functional/location_map/embeddables/embedded_map.tsx @@ -7,9 +7,9 @@ import React, { useEffect, useState, useContext, useRef } from 'react'; import uuid from 'uuid'; import styled from 'styled-components'; +import { npStart } from 'ui/new_platform'; import { ViewMode } from '../../../../../../../../../src/plugins/embeddable/public'; -import { start } from '../../../../../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy'; import * as i18n from './translations'; import { MapEmbeddable, MapEmbeddableInput } from '../../../../../../maps/public'; import { MAP_SAVED_OBJECT_TYPE } from '../../../../../../../../plugins/maps/public'; @@ -47,7 +47,7 @@ export const EmbeddedMap = React.memo(({ upPoints, downPoints }: EmbeddedMapProp const { colors } = useContext(UptimeThemeContext); const [embeddable, setEmbeddable] = useState(); const embeddableRoot: React.RefObject = useRef(null); - const factory = start.getEmbeddableFactory(MAP_SAVED_OBJECT_TYPE); + const factory = npStart.plugins.embeddable.getEmbeddableFactory(MAP_SAVED_OBJECT_TYPE); const input: MapEmbeddableInput = { id: uuid.v4(), diff --git a/x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.tsx b/x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.tsx index 282ee75815fa51..d4e3069186f606 100644 --- a/x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.tsx +++ b/x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.tsx @@ -11,10 +11,7 @@ import { Action, IncompatibleActionError } from '../../../../../src/plugins/ui_a import { LicensingPluginSetup } from '../../../licensing/public'; import { checkLicense } from '../lib/license_check'; -import { - ViewMode, - IEmbeddable, -} from '../../../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public'; +import { ViewMode, IEmbeddable } from '../../../../../src/plugins/embeddable/public'; // @TODO: These import paths will need to be updated once discovery moves to non-legacy dir import { SEARCH_EMBEDDABLE_TYPE } from '../../../../../src/legacy/core_plugins/kibana/public/discover/np_ready/embeddable/constants'; From d78711b3e8d2d072043f1ed250c540426c72f460 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Tue, 31 Mar 2020 10:03:04 +0200 Subject: [PATCH 026/118] [ML] Fix date nanos preview rendering. (#61792) Fixes the rendering of columns of date type date_nanos for the transform pivot preview. --- .../app/components/pivot_preview/pivot_preview.tsx | 7 ++++++- .../source_index_preview/source_index_preview.tsx | 11 +++++++---- .../components/step_details/step_details_form.tsx | 4 +++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/transform/public/app/components/pivot_preview/pivot_preview.tsx b/x-pack/plugins/transform/public/app/components/pivot_preview/pivot_preview.tsx index 51ca9f38a3d109..7965eeb779a3f2 100644 --- a/x-pack/plugins/transform/public/app/components/pivot_preview/pivot_preview.tsx +++ b/x-pack/plugins/transform/public/app/components/pivot_preview/pivot_preview.tsx @@ -163,6 +163,7 @@ export const PivotPreview: FC = React.memo( schema = 'boolean'; break; case ES_FIELD_TYPES.DATE: + case ES_FIELD_TYPES.DATE_NANOS: schema = 'datetime'; break; case ES_FIELD_TYPES.BYTE: @@ -235,7 +236,11 @@ export const PivotPreview: FC = React.memo( return null; } - if (previewMappings.properties[columnId].type === ES_FIELD_TYPES.DATE) { + if ( + [ES_FIELD_TYPES.DATE, ES_FIELD_TYPES.DATE_NANOS].includes( + previewMappings.properties[columnId].type + ) + ) { return formatHumanReadableDateTimeSeconds(moment(cellValue).unix() * 1000); } diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/source_index_preview/source_index_preview.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/source_index_preview/source_index_preview.tsx index 2a467ba4a57729..06ae4c81efa184 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/source_index_preview/source_index_preview.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/source_index_preview/source_index_preview.tsx @@ -22,6 +22,8 @@ import { EuiTitle, } from '@elastic/eui'; +import { KBN_FIELD_TYPES } from '../../../../../../../../../src/plugins/data/common'; + import { formatHumanReadableDateTimeSeconds } from '../../../../../../common/utils/date_utils'; import { getNestedProperty } from '../../../../../../common/utils/object_utils'; @@ -97,13 +99,14 @@ export const SourceIndexPreview: React.FC = React.memo(({ indexPattern, q let schema; switch (field?.type) { - case 'date': + case KBN_FIELD_TYPES.DATE: schema = 'datetime'; break; - case 'geo_point': + case KBN_FIELD_TYPES.GEO_POINT: + case KBN_FIELD_TYPES.GEO_SHAPE: schema = 'json'; break; - case 'number': + case KBN_FIELD_TYPES.NUMBER: schema = 'numeric'; break; } @@ -177,7 +180,7 @@ export const SourceIndexPreview: React.FC = React.memo(({ indexPattern, q } const field = indexPattern.fields.getByName(columnId); - if (field?.type === 'date') { + if (field?.type === KBN_FIELD_TYPES.DATE) { return formatHumanReadableDateTimeSeconds(moment(cellValue).unix() * 1000); } diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_form.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_form.tsx index e56a519f808035..d47af47214851d 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_form.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_form.tsx @@ -10,6 +10,8 @@ import { i18n } from '@kbn/i18n'; import { EuiLink, EuiSwitch, EuiFieldText, EuiForm, EuiFormRow, EuiSelect } from '@elastic/eui'; +import { KBN_FIELD_TYPES } from '../../../../../../../../../src/plugins/data/common'; + import { toMountPoint } from '../../../../../../../../../src/plugins/kibana_react/public'; import { TransformId } from '../../../../../../common'; import { isValidIndexName } from '../../../../../../common/utils/es_utils'; @@ -148,7 +150,7 @@ export const StepDetailsForm: FC = React.memo( }, []); const dateFieldNames = searchItems.indexPattern.fields - .filter(f => f.type === 'date') + .filter(f => f.type === KBN_FIELD_TYPES.DATE) .map(f => f.name) .sort(); const isContinuousModeAvailable = dateFieldNames.length > 0; From 0033e04e0a59cbd8ed8f7b3d1abf47ba3e19ea92 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Tue, 31 Mar 2020 10:10:32 +0100 Subject: [PATCH 027/118] [ML] Fixing job ID in edit job flyout (#61840) Co-authored-by: Elastic Machine --- .../jobs_list/components/edit_job_flyout/edit_job_flyout.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js index 29c79458fe431b..9066e41fb8f237 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js @@ -366,7 +366,7 @@ export class EditJobFlyoutUI extends Component { From c0a5b23963d85ccc10496efd12247ed42d04275c Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Tue, 31 Mar 2020 12:27:29 +0200 Subject: [PATCH 028/118] [Drilldowns] Fix missing $store in filter state syncing edge case (#61261) Co-authored-by: Elastic Machine --- .../state_sync/connect_to_query_state.test.ts | 94 +++++++++++++++++++ .../state_sync/connect_to_query_state.ts | 24 ++++- 2 files changed, 114 insertions(+), 4 deletions(-) diff --git a/src/plugins/data/public/query/state_sync/connect_to_query_state.test.ts b/src/plugins/data/public/query/state_sync/connect_to_query_state.test.ts index 5da929c441cdee..06e4c1c8be6d5d 100644 --- a/src/plugins/data/public/query/state_sync/connect_to_query_state.test.ts +++ b/src/plugins/data/public/query/state_sync/connect_to_query_state.test.ts @@ -463,3 +463,97 @@ describe('connect_to_app_state', () => { }); }); }); + +describe('filters with different state', () => { + let queryServiceStart: QueryStart; + let filterManager: FilterManager; + let state: BaseStateContainer; + let stateSub: Subscription; + let stateChangeTriggered = jest.fn(); + let filterManagerChangeSub: Subscription; + let filterManagerChangeTriggered = jest.fn(); + + let filter: Filter; + + beforeEach(() => { + const queryService = new QueryService(); + queryService.setup({ + uiSettings: setupMock.uiSettings, + storage: new Storage(new StubBrowserStorage()), + }); + queryServiceStart = queryService.start(startMock.savedObjects); + filterManager = queryServiceStart.filterManager; + + state = createStateContainer({}); + stateChangeTriggered = jest.fn(); + stateSub = state.state$.subscribe(stateChangeTriggered); + + filterManagerChangeTriggered = jest.fn(); + filterManagerChangeSub = filterManager.getUpdates$().subscribe(filterManagerChangeTriggered); + + filter = getFilter(FilterStateStore.GLOBAL_STATE, true, true, 'key1', 'value1'); + }); + + // applies filter state changes, changes only internal $state.store value + function runChanges() { + filter = { ...filter, $state: { store: FilterStateStore.GLOBAL_STATE } }; + + state.set({ + filters: [filter], + }); + + filter = { ...filter, $state: { store: FilterStateStore.APP_STATE } }; + + state.set({ + filters: [filter], + }); + + filter = { ...filter }; + delete filter.$state; + + state.set({ + filters: [filter], + }); + } + + test('when syncing all filters, changes to filter.state$ should be taken into account', () => { + const stop = connectToQueryState(queryServiceStart, state, { + filters: true, + }); + + runChanges(); + + expect(filterManagerChangeTriggered).toBeCalledTimes(3); + + stop(); + }); + + test('when syncing app state filters, changes to filter.state$ should be ignored', () => { + const stop = connectToQueryState(queryServiceStart, state, { + filters: FilterStateStore.APP_STATE, + }); + + runChanges(); + + expect(filterManagerChangeTriggered).toBeCalledTimes(1); + + stop(); + }); + + test('when syncing global state filters, changes to filter.state$ should be ignored', () => { + const stop = connectToQueryState(queryServiceStart, state, { + filters: FilterStateStore.GLOBAL_STATE, + }); + + runChanges(); + + expect(filterManagerChangeTriggered).toBeCalledTimes(1); + + stop(); + }); + + afterEach(() => { + stateSub.unsubscribe(); + filterManagerChangeSub.unsubscribe(); + }); +}); diff --git a/src/plugins/data/public/query/state_sync/connect_to_query_state.ts b/src/plugins/data/public/query/state_sync/connect_to_query_state.ts index 331d8969f24834..3256c1cbd65a1e 100644 --- a/src/plugins/data/public/query/state_sync/connect_to_query_state.ts +++ b/src/plugins/data/public/query/state_sync/connect_to_query_state.ts @@ -91,7 +91,10 @@ export const connectToQueryState = ( } else if (syncConfig.filters === FilterStateStore.GLOBAL_STATE) { if ( !initialState.filters || - !compareFilters(initialState.filters, filterManager.getGlobalFilters(), COMPARE_ALL_OPTIONS) + !compareFilters(initialState.filters, filterManager.getGlobalFilters(), { + ...COMPARE_ALL_OPTIONS, + state: false, + }) ) { initialState.filters = filterManager.getGlobalFilters(); initialDirty = true; @@ -99,7 +102,10 @@ export const connectToQueryState = ( } else if (syncConfig.filters === FilterStateStore.APP_STATE) { if ( !initialState.filters || - !compareFilters(initialState.filters, filterManager.getAppFilters(), COMPARE_ALL_OPTIONS) + !compareFilters(initialState.filters, filterManager.getAppFilters(), { + ...COMPARE_ALL_OPTIONS, + state: false, + }) ) { initialState.filters = filterManager.getAppFilters(); initialDirty = true; @@ -173,11 +179,21 @@ export const connectToQueryState = ( filterManager.setFilters(_.cloneDeep(filters)); } } else if (syncConfig.filters === FilterStateStore.APP_STATE) { - if (!compareFilters(filters, filterManager.getAppFilters(), COMPARE_ALL_OPTIONS)) { + if ( + !compareFilters(filters, filterManager.getAppFilters(), { + ...COMPARE_ALL_OPTIONS, + state: false, + }) + ) { filterManager.setAppFilters(_.cloneDeep(filters)); } } else if (syncConfig.filters === FilterStateStore.GLOBAL_STATE) { - if (!compareFilters(filters, filterManager.getGlobalFilters(), COMPARE_ALL_OPTIONS)) { + if ( + !compareFilters(filters, filterManager.getGlobalFilters(), { + ...COMPARE_ALL_OPTIONS, + state: false, + }) + ) { filterManager.setGlobalFilters(_.cloneDeep(filters)); } } From 99a9288eda5139378b309ea54497a5eb96544208 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Tue, 31 Mar 2020 12:27:58 +0200 Subject: [PATCH 029/118] [Drilldowns] Simpler url parsing in sub url hooks (#61245) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Simpler url parsing in sub url hooks don’t use url.parse to extract hash * review improvements Co-authored-by: Elastic Machine --- .../ui/public/chrome/api/sub_url_hooks.js | 16 ++--- .../chrome/api/sub_url_hooks_utils.test.ts | 58 +++++++++++++++++++ .../public/chrome/api/sub_url_hooks_utils.ts | 29 ++++++++++ 3 files changed, 91 insertions(+), 12 deletions(-) create mode 100644 src/legacy/ui/public/chrome/api/sub_url_hooks_utils.test.ts create mode 100644 src/legacy/ui/public/chrome/api/sub_url_hooks_utils.ts diff --git a/src/legacy/ui/public/chrome/api/sub_url_hooks.js b/src/legacy/ui/public/chrome/api/sub_url_hooks.js index 27d147b1ffc72f..f147aef7b4b7d2 100644 --- a/src/legacy/ui/public/chrome/api/sub_url_hooks.js +++ b/src/legacy/ui/public/chrome/api/sub_url_hooks.js @@ -17,11 +17,10 @@ * under the License. */ -import url from 'url'; - import { unhashUrl } from '../../../../../plugins/kibana_utils/public'; import { toastNotifications } from '../../notify/toasts'; import { npSetup } from '../../new_platform'; +import { areHashesDifferentButDecodedHashesEquals } from './sub_url_hooks_utils'; export function registerSubUrlHooks(angularModule, internals) { angularModule.run(($rootScope, Private, $location) => { @@ -49,17 +48,10 @@ export function registerSubUrlHooks(angularModule, internals) { $rootScope.$on('$locationChangeStart', (e, newUrl) => { // This handler fixes issue #31238 where browser back navigation // fails due to angular 1.6 parsing url encoded params wrong. - const parsedAbsUrl = url.parse($location.absUrl()); - const absUrlHash = parsedAbsUrl.hash ? parsedAbsUrl.hash.slice(1) : ''; - const decodedAbsUrlHash = decodeURIComponent(absUrlHash); - - const parsedNewUrl = url.parse(newUrl); - const newHash = parsedNewUrl.hash ? parsedNewUrl.hash.slice(1) : ''; - const decodedHash = decodeURIComponent(newHash); - - if (absUrlHash !== newHash && decodedHash === decodedAbsUrlHash) { + if (areHashesDifferentButDecodedHashesEquals($location.absUrl(), newUrl)) { // replace the urlencoded hash with the version that angular sees. - $location.url(absUrlHash).replace(); + const newHash = newUrl.split('#')[1] || ''; + $location.url(newHash).replace(); } }); diff --git a/src/legacy/ui/public/chrome/api/sub_url_hooks_utils.test.ts b/src/legacy/ui/public/chrome/api/sub_url_hooks_utils.test.ts new file mode 100644 index 00000000000000..4dec5263023447 --- /dev/null +++ b/src/legacy/ui/public/chrome/api/sub_url_hooks_utils.test.ts @@ -0,0 +1,58 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { areHashesDifferentButDecodedHashesEquals } from './sub_url_hooks_utils'; + +test('false for different hashes', () => { + const url1 = `https://localhost/kibana/#/dashboard/id`; + const url2 = `https://localhost/kibana/#/dashboard/DIFFERENT`; + expect(areHashesDifferentButDecodedHashesEquals(url1, url2)).toBeFalsy(); +}); + +test('false for same hashes', () => { + const hash = `/dashboard/id?_a=(filters:!(),query:(language:kuery,query:''))&_g=(filters:!(),time:(from:now-120m,to:now))`; + const url1 = `https://localhost/kibana/#/${hash}`; + expect(areHashesDifferentButDecodedHashesEquals(url1, url1)).toBeFalsy(); +}); + +test('true for same hashes, but one is encoded', () => { + const hash = `/dashboard/id?_a=(filters:!(),query:(language:kuery,query:''))&_g=(filters:!(),time:(from:now-120m,to:now))`; + const url1 = `https://localhost/kibana/#/${hash}`; + const url2 = `https://localhost/kibana/#/${encodeURIComponent(hash)}`; + expect(areHashesDifferentButDecodedHashesEquals(url1, url2)).toBeTruthy(); +}); + +/** + * This edge case occurs when trying to navigate within kibana app using core's `navigateToApp` api + * and there is reserved characters in hash (see: query:'' part) + * For example: + * ```ts + * navigateToApp('kibana', { + * path: '#/dashboard/f8bc19f0-6918-11ea-9258-a74c2ded064d?_a=(filters:!(),query:(language:kuery,query:''))&_g=(filters:!(),time:(from:now-120m,to:now))' + * }) + * ``` + * Core internally is using url.parse which parses ' -> %27 and performs the navigation + * Then angular decodes it back and causes redundant history record if not the fix which is covered by the test below + */ +test("true for same hashes, but one has reserved character (') encoded", () => { + const hash = `/dashboard/id?_a=(filters:!(),query:(language:kuery,query:''))&_g=(filters:!(),time:(from:now-120m,to:now))`; + const url1 = `https://localhost/kibana/#/${hash}`; + const url2 = `https://localhost/kibana/#/${hash.replace(/\'/g, '%27')}`; + expect(areHashesDifferentButDecodedHashesEquals(url1, url2)).toBeTruthy(); +}); diff --git a/src/legacy/ui/public/chrome/api/sub_url_hooks_utils.ts b/src/legacy/ui/public/chrome/api/sub_url_hooks_utils.ts new file mode 100644 index 00000000000000..8517877acd3877 --- /dev/null +++ b/src/legacy/ui/public/chrome/api/sub_url_hooks_utils.ts @@ -0,0 +1,29 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export function areHashesDifferentButDecodedHashesEquals(urlA: string, urlB: string): boolean { + const getHash = (url: string) => url.split('#')[1] ?? ''; + const hashA = getHash(urlA); + const decodedHashA = decodeURIComponent(hashA); + + const hashB = getHash(urlB); + const decodedHashB = decodeURIComponent(hashB); + + return hashA !== hashB && decodedHashA === decodedHashB; +} From 25a1119afd5eca4f7c7de173fc1c77293ddb1174 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Tue, 31 Mar 2020 12:29:20 +0200 Subject: [PATCH 030/118] [Drilldowns] improve dashboard link generator to support dashboard-to-dashboard drilldown (#61307) * improve dashboard link generator to support dashboard-to-dashboard drilldown * any -> unknown Co-authored-by: Elastic Machine --- .../dashboard/public/url_generator.test.ts | 17 +++++++- src/plugins/dashboard/public/url_generator.ts | 41 +++++++++++++++---- 2 files changed, 47 insertions(+), 11 deletions(-) diff --git a/src/plugins/dashboard/public/url_generator.test.ts b/src/plugins/dashboard/public/url_generator.test.ts index 5dfc47b694f609..d48aacc1d8c1e4 100644 --- a/src/plugins/dashboard/public/url_generator.test.ts +++ b/src/plugins/dashboard/public/url_generator.test.ts @@ -21,6 +21,7 @@ import { createDirectAccessDashboardLinkGenerator } from './url_generator'; import { hashedItemStore } from '../../kibana_utils/public'; // eslint-disable-next-line import { mockStorage } from '../../kibana_utils/public/storage/hashed_item_store/mock'; +import { esFilters } from '../../data/public'; const APP_BASE_PATH: string = 'xyz/app/kibana'; @@ -50,12 +51,13 @@ describe('dashboard url generator', () => { ); }); - test('creates a link with filters, time range and query to a saved object', async () => { + test('creates a link with filters, time range, refresh interval and query to a saved object', async () => { const generator = createDirectAccessDashboardLinkGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false }) ); const url = await generator.createUrl!({ timeRange: { to: 'now', from: 'now-15m', mode: 'relative' }, + refreshInterval: { pause: false, value: 300 }, dashboardId: '123', filters: [ { @@ -66,11 +68,22 @@ describe('dashboard url generator', () => { }, query: { query: 'hi' }, }, + { + meta: { + alias: null, + disabled: false, + negate: false, + }, + query: { query: 'hi' }, + $state: { + store: esFilters.FilterStateStore.GLOBAL_STATE, + }, + }, ], query: { query: 'bye', language: 'kuery' }, }); expect(url).toMatchInlineSnapshot( - `"xyz/app/kibana#/dashboard/123?_a=(filters:!((meta:(alias:!n,disabled:!f,negate:!f),query:(query:hi))),query:(language:kuery,query:bye))&_g=(time:(from:now-15m,mode:relative,to:now))"` + `"xyz/app/kibana#/dashboard/123?_a=(filters:!((meta:(alias:!n,disabled:!f,negate:!f),query:(query:hi))),query:(language:kuery,query:bye))&_g=(filters:!(('$state':(store:globalState),meta:(alias:!n,disabled:!f,negate:!f),query:(query:hi))),refreshInterval:(pause:!f,value:300),time:(from:now-15m,mode:relative,to:now))"` ); }); diff --git a/src/plugins/dashboard/public/url_generator.ts b/src/plugins/dashboard/public/url_generator.ts index 5f1255bc9d45f6..0fdf395e75bcaa 100644 --- a/src/plugins/dashboard/public/url_generator.ts +++ b/src/plugins/dashboard/public/url_generator.ts @@ -17,7 +17,14 @@ * under the License. */ -import { TimeRange, Filter, Query } from '../../data/public'; +import { + TimeRange, + Filter, + Query, + esFilters, + QueryState, + RefreshInterval, +} from '../../data/public'; import { setStateToKbnUrl } from '../../kibana_utils/public'; import { UrlGeneratorsDefinition, UrlGeneratorState } from '../../share/public'; @@ -36,10 +43,15 @@ export type DashboardAppLinkGeneratorState = UrlGeneratorState<{ * Optionally set the time range in the time picker. */ timeRange?: TimeRange; + + /** + * Optionally set the refresh interval. + */ + refreshInterval?: RefreshInterval; + /** * Optionally apply filers. NOTE: if given and used in conjunction with `dashboardId`, and the - * saved dashboard has filters saved with it, this will _replace_ those filters. This will set - * app filters, not global filters. + * saved dashboard has filters saved with it, this will _replace_ those filters. */ filters?: Filter[]; /** @@ -64,21 +76,32 @@ export const createDirectAccessDashboardLinkGenerator = ( const appBasePath = startServices.appBasePath; const hash = state.dashboardId ? `dashboard/${state.dashboardId}` : `dashboard`; + const cleanEmptyKeys = (stateObj: Record) => { + Object.keys(stateObj).forEach(key => { + if (stateObj[key] === undefined) { + delete stateObj[key]; + } + }); + return stateObj; + }; + const appStateUrl = setStateToKbnUrl( STATE_STORAGE_KEY, - { + cleanEmptyKeys({ query: state.query, - filters: state.filters, - }, + filters: state.filters?.filter(f => !esFilters.isFilterPinned(f)), + }), { useHash }, `${appBasePath}#/${hash}` ); - return setStateToKbnUrl( + return setStateToKbnUrl( GLOBAL_STATE_STORAGE_KEY, - { + cleanEmptyKeys({ time: state.timeRange, - }, + filters: state.filters?.filter(f => esFilters.isFilterPinned(f)), + refreshInterval: state.refreshInterval, + }), { useHash }, appStateUrl ); From 0236376fa9a8921c9763f40ee5ac06d777249408 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Tue, 31 Mar 2020 11:44:01 +0100 Subject: [PATCH 031/118] [ML] Fixing reporting of http request errors (#61811) * [ML] Fixing reporting of http request errors * fixing types * updating translations Co-authored-by: Elastic Machine --- x-pack/plugins/ml/common/util/errors.ts | 19 +++++++++++++++ .../data_frame_analytics/common/analytics.ts | 2 +- .../hooks/use_create_analytics_form/index.ts | 6 +---- .../use_create_analytics_form.test.tsx | 3 ++- .../use_create_analytics_form.ts | 14 +---------- .../post_save_options/post_save_options.tsx | 3 ++- .../pages/components/summary_step/summary.tsx | 5 ++-- .../application/services/job_service.js | 12 +++++----- .../calendars/list/delete_calendars.js | 24 ++++++++++--------- .../util/{ml_error.js => ml_error.ts} | 6 +++-- .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 12 files changed, 52 insertions(+), 44 deletions(-) create mode 100644 x-pack/plugins/ml/common/util/errors.ts rename x-pack/plugins/ml/public/application/util/{ml_error.js => ml_error.ts} (86%) diff --git a/x-pack/plugins/ml/common/util/errors.ts b/x-pack/plugins/ml/common/util/errors.ts new file mode 100644 index 00000000000000..4446624bf2e7f3 --- /dev/null +++ b/x-pack/plugins/ml/common/util/errors.ts @@ -0,0 +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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { isErrorResponse } from '../types/errors'; + +export function getErrorMessage(error: any) { + if (isErrorResponse(error)) { + return `${error.body.error}: ${error.body.message}`; + } + + if (typeof error === 'object' && typeof error.message === 'string') { + return error.message; + } + + return JSON.stringify(error); +} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts index 9791cd9210fe21..d77f19c0df79d2 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts @@ -11,7 +11,7 @@ import { Subscription } from 'rxjs'; import { cloneDeep } from 'lodash'; import { ml } from '../../services/ml_api_service'; import { Dictionary } from '../../../../common/types/common'; -import { getErrorMessage } from '../pages/analytics_management/hooks/use_create_analytics_form'; +import { getErrorMessage } from '../../../../common/util/errors'; import { SavedSearchQuery } from '../../contexts/ml'; import { SortDirection } from '../../components/ml_in_memory_table'; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/index.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/index.ts index 0eb3d7180c2000..9df0b542f50a12 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/index.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/index.ts @@ -4,8 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -export { - useCreateAnalyticsForm, - CreateAnalyticsFormProps, - getErrorMessage, -} from './use_create_analytics_form'; +export { useCreateAnalyticsForm, CreateAnalyticsFormProps } from './use_create_analytics_form'; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/use_create_analytics_form.test.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/use_create_analytics_form.test.tsx index 1a248f8559ffa7..182e50a5d74d1d 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/use_create_analytics_form.test.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/use_create_analytics_form.test.tsx @@ -10,7 +10,8 @@ import { mountHook } from 'test_utils/enzyme_helpers'; import { MlContext } from '../../../../../contexts/ml'; import { kibanaContextValueMock } from '../../../../../contexts/ml/__mocks__/kibana_context_value'; -import { getErrorMessage, useCreateAnalyticsForm } from './use_create_analytics_form'; +import { useCreateAnalyticsForm } from './use_create_analytics_form'; +import { getErrorMessage } from '../../../../../../../common/util/errors'; const getMountedHook = () => mountHook( diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/use_create_analytics_form.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/use_create_analytics_form.ts index 86c43b232738c4..34f1d042649000 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/use_create_analytics_form.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/hooks/use_create_analytics_form/use_create_analytics_form.ts @@ -9,7 +9,7 @@ import { useReducer } from 'react'; import { i18n } from '@kbn/i18n'; import { SimpleSavedObject } from 'kibana/public'; -import { isErrorResponse } from '../../../../../../../common/types/errors'; +import { getErrorMessage } from '../../../../../../../common/util/errors'; import { DeepReadonly } from '../../../../../../../common/types/common'; import { ml } from '../../../../../services/ml_api_service'; import { useMlContext } from '../../../../../contexts/ml'; @@ -41,18 +41,6 @@ export interface CreateAnalyticsFormProps { state: State; } -export function getErrorMessage(error: any) { - if (isErrorResponse(error)) { - return `${error.body.error}: ${error.body.message}`; - } - - if (typeof error === 'object' && typeof error.message === 'string') { - return error.message; - } - - return JSON.stringify(error); -} - export const useCreateAnalyticsForm = (): CreateAnalyticsFormProps => { const mlContext = useMlContext(); const [state, dispatch] = useReducer(reducer, getInitialState()); diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/summary_step/components/post_save_options/post_save_options.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/summary_step/components/post_save_options/post_save_options.tsx index c24c018f50d758..2e7cc9c413a252 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/summary_step/components/post_save_options/post_save_options.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/summary_step/components/post_save_options/post_save_options.tsx @@ -10,6 +10,7 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { JobRunner } from '../../../../../common/job_runner'; import { useMlKibana } from '../../../../../../../contexts/kibana'; +import { getErrorMessage } from '../../../../../../../../../common/util/errors'; // @ts-ignore import { CreateWatchFlyout } from '../../../../../../jobs_list/components/create_watch_flyout/index'; @@ -69,7 +70,7 @@ export const PostSaveOptions: FC = ({ jobRunner }) => { defaultMessage: `Error starting job`, } ), - text: error.message, + text: getErrorMessage(error), }); } } diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/summary_step/summary.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/summary_step/summary.tsx index 75994b53588992..d8cd0f5e4f1f00 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/summary_step/summary.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/summary_step/summary.tsx @@ -24,6 +24,7 @@ import { mlJobService } from '../../../../../services/job_service'; import { JsonEditorFlyout, EDITOR_MODE } from '../common/json_editor_flyout'; import { DatafeedPreviewFlyout } from '../common/datafeed_preview_flyout'; import { JOB_TYPE } from '../../../../../../../common/constants/new_job'; +import { getErrorMessage } from '../../../../../../../common/util/errors'; import { isSingleMetricJobCreator, isAdvancedJobCreator } from '../../../common/job_creator'; import { JobDetails } from './components/job_details'; import { DatafeedDetails } from './components/datafeed_details'; @@ -75,7 +76,7 @@ export const SummaryStep: FC = ({ setCurrentStep, isCurrentStep }) => title: i18n.translate('xpack.ml.newJob.wizard.summaryStep.createJobError', { defaultMessage: `Job creation error`, }), - text: error.message, + text: getErrorMessage(error), }); setCreatingJob(false); } @@ -94,7 +95,7 @@ export const SummaryStep: FC = ({ setCurrentStep, isCurrentStep }) => title: i18n.translate('xpack.ml.newJob.wizard.summaryStep.createJobError', { defaultMessage: `Job creation error`, }), - text: error.message, + text: getErrorMessage(error), }); setCreatingJob(false); } diff --git a/x-pack/plugins/ml/public/application/services/job_service.js b/x-pack/plugins/ml/public/application/services/job_service.js index 0454d40e789237..bbfec49ac1388f 100644 --- a/x-pack/plugins/ml/public/application/services/job_service.js +++ b/x-pack/plugins/ml/public/application/services/job_service.js @@ -169,12 +169,12 @@ class JobService { function error(err) { console.log('jobService error getting list of jobs:', err); - msgs.error( + msgs.notify.error( i18n.translate('xpack.ml.jobService.jobsListCouldNotBeRetrievedErrorMessage', { defaultMessage: 'Jobs list could not be retrieved', }) ); - msgs.error('', err); + msgs.notify.error('', err); reject({ jobs, err }); } }); @@ -256,12 +256,12 @@ class JobService { function error(err) { console.log('JobService error getting list of jobs:', err); - msgs.error( + msgs.notify.error( i18n.translate('xpack.ml.jobService.jobsListCouldNotBeRetrievedErrorMessage', { defaultMessage: 'Jobs list could not be retrieved', }) ); - msgs.error('', err); + msgs.notify.error('', err); reject({ jobs, err }); } }); @@ -302,12 +302,12 @@ class JobService { function error(err) { console.log('loadDatafeeds error getting list of datafeeds:', err); - msgs.error( + msgs.notify.error( i18n.translate('xpack.ml.jobService.datafeedsListCouldNotBeRetrievedErrorMessage', { defaultMessage: 'datafeeds list could not be retrieved', }) ); - msgs.error('', err); + msgs.notify.error('', err); reject({ jobs, err }); } }); diff --git a/x-pack/plugins/ml/public/application/settings/calendars/list/delete_calendars.js b/x-pack/plugins/ml/public/application/settings/calendars/list/delete_calendars.js index f06812b2a91289..50777485903d28 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/list/delete_calendars.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/list/delete_calendars.js @@ -7,6 +7,7 @@ import { getToastNotifications } from '../../../util/dependency_cache'; import { ml } from '../../../services/ml_api_service'; import { i18n } from '@kbn/i18n'; +import { getErrorMessage } from '../../../../../common/util/errors'; export async function deleteCalendars(calendarsToDelete, callback) { if (calendarsToDelete === undefined || calendarsToDelete.length === 0) { @@ -36,17 +37,18 @@ export async function deleteCalendars(calendarsToDelete, callback) { await ml.deleteCalendar({ calendarId }); } catch (error) { console.log('Error deleting calendar:', error); - const errorMessage = i18n.translate( - 'xpack.ml.calendarsList.deleteCalendars.deletingCalendarErrorMessage', - { - defaultMessage: 'An error occurred deleting calendar {calendarId}{errorMessage}', - values: { - calendarId: calendar.calendar_id, - errorMessage: error.message ? ` : ${error.message}` : '', - }, - } - ); - toastNotifications.addDanger(errorMessage); + toastNotifications.addDanger({ + title: i18n.translate( + 'xpack.ml.calendarsList.deleteCalendars.deletingCalendarErrorMessage', + { + defaultMessage: 'An error occurred deleting calendar {calendarId}', + values: { + calendarId: calendar.calendar_id, + }, + } + ), + text: getErrorMessage(error), + }); } } diff --git a/x-pack/plugins/ml/public/application/util/ml_error.js b/x-pack/plugins/ml/public/application/util/ml_error.ts similarity index 86% rename from x-pack/plugins/ml/public/application/util/ml_error.js rename to x-pack/plugins/ml/public/application/util/ml_error.ts index c970b4296844f9..2a0280404c1891 100644 --- a/x-pack/plugins/ml/public/application/util/ml_error.js +++ b/x-pack/plugins/ml/public/application/util/ml_error.ts @@ -7,12 +7,14 @@ import { KbnError } from '../../../../../../src/plugins/kibana_utils/public'; export class MLRequestFailure extends KbnError { + origError: any; + resp: any; // takes an Error object and and optional response object // if error is falsy (null) the response object will be used // notify will show the full expandable stack trace of the response if a response object is used and no error is passed in. - constructor(error, resp) { + constructor(error: any, resp: any) { error = error || {}; - super(error.message || JSON.stringify(resp), MLRequestFailure); + super(error.message || JSON.stringify(resp)); this.origError = error; this.resp = typeof resp === 'string' ? JSON.parse(resp) : resp; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index f2ea8f8c6dd0c8..1f7a1294fe7867 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -7420,7 +7420,6 @@ "xpack.ml.calendarsEdit.newEventModal.startDateAriaLabel": "開始日", "xpack.ml.calendarsEdit.newEventModal.toLabel": "終了:", "xpack.ml.calendarsList.deleteCalendars.calendarsLabel": "{calendarsToDeleteCount} 件のカレンダー", - "xpack.ml.calendarsList.deleteCalendars.deletingCalendarErrorMessage": "カレンダー {calendarId} の削除中にエラーが発生しました: {errorMessage}", "xpack.ml.calendarsList.deleteCalendars.deletingCalendarsNotificationMessage": "{messageId} を削除中", "xpack.ml.calendarsList.deleteCalendars.deletingCalendarSuccessNotificationMessage": "{messageId} が選択されました", "xpack.ml.calendarsList.deleteCalendarsModal.cancelButtonLabel": "キャンセル", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 0dd584e32a2486..f93216662ca7c1 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -7420,7 +7420,6 @@ "xpack.ml.calendarsEdit.newEventModal.startDateAriaLabel": "开始日期", "xpack.ml.calendarsEdit.newEventModal.toLabel": "到:", "xpack.ml.calendarsList.deleteCalendars.calendarsLabel": "{calendarsToDeleteCount} 个日历", - "xpack.ml.calendarsList.deleteCalendars.deletingCalendarErrorMessage": "删除日历 {calendarId} 时出错。{errorMessage}", "xpack.ml.calendarsList.deleteCalendars.deletingCalendarsNotificationMessage": "正在删除 {messageId}", "xpack.ml.calendarsList.deleteCalendars.deletingCalendarSuccessNotificationMessage": "已删除 {messageId}", "xpack.ml.calendarsList.deleteCalendarsModal.cancelButtonLabel": "取消", From 65e8f2b603f8164efe1b15141907e3f083ebadf8 Mon Sep 17 00:00:00 2001 From: patrykkopycinski Date: Tue, 31 Mar 2020 12:54:58 +0200 Subject: [PATCH 032/118] [SIEM][Detection Engine] Allow to edit actions for prepackaged rules (#61312) --- .../rules/all/__mocks__/mock.ts | 6 +- .../detection_engine/rules/all/columns.tsx | 1 - .../components/step_rule_actions/index.tsx | 1 + .../components/step_rule_actions/schema.tsx | 1 + .../rules/create/helpers.test.ts | 13 +-- .../detection_engine/rules/create/helpers.ts | 13 +-- .../detection_engine/rules/details/index.tsx | 2 +- .../detection_engine/rules/edit/index.tsx | 11 ++- .../detection_engine/rules/helpers.test.tsx | 9 +- .../pages/detection_engine/rules/helpers.tsx | 4 +- .../detection_engine/notifications/types.ts | 2 +- .../routes/__mocks__/utils.ts | 1 + .../routes/rules/create_rules_bulk_route.ts | 17 +++- .../routes/rules/create_rules_route.test.ts | 23 ++--- .../routes/rules/create_rules_route.ts | 29 +++---- .../routes/rules/delete_rules_bulk_route.ts | 7 +- .../routes/rules/delete_rules_route.ts | 11 ++- .../routes/rules/find_rules_route.ts | 14 +++- .../routes/rules/import_rules_route.ts | 6 -- .../routes/rules/patch_rules_bulk_route.ts | 19 ++++- .../routes/rules/patch_rules_route.test.ts | 1 + .../routes/rules/patch_rules_route.ts | 18 +++- .../routes/rules/read_rules_route.ts | 11 ++- .../routes/rules/update_rules_bulk_route.ts | 20 ++++- .../routes/rules/update_rules_route.test.ts | 9 ++ .../routes/rules/update_rules_route.ts | 21 ++--- .../routes/rules/utils.test.ts | 46 ++++++---- .../detection_engine/routes/rules/utils.ts | 34 ++++---- .../routes/rules/validate.test.ts | 5 +- .../detection_engine/routes/rules/validate.ts | 14 +++- .../create_rule_actions_saved_object.ts | 35 ++++++++ .../delete_rule_actions_saved_object.ts | 25 ++++++ .../get_rule_actions_saved_object.ts | 35 ++++++++ .../rule_actions/saved_object_mappings.ts | 40 +++++++++ .../detection_engine/rule_actions/types.ts | 68 +++++++++++++++ ...ate_or_create_rule_actions_saved_object.ts | 39 +++++++++ .../update_rule_actions_saved_object.ts | 56 +++++++++++++ .../detection_engine/rule_actions/utils.ts | 22 +++++ .../rules/create_rules.test.ts | 2 - .../detection_engine/rules/create_rules.ts | 8 +- .../rules/get_export_all.test.ts | 1 + .../rules/get_export_by_object_ids.test.ts | 2 + .../rules/install_prepacked_rules.ts | 4 - .../rules/patch_rules.test.ts | 4 - .../lib/detection_engine/rules/patch_rules.ts | 9 +- .../lib/detection_engine/rules/types.ts | 8 +- .../rules/update_prepacked_rules.test.ts | 62 ++++++++++++++ .../rules/update_prepacked_rules.ts | 4 - .../rules/update_rule_actions.ts | 50 +++++++++++ .../rules/update_rules.test.ts | 6 -- .../detection_engine/rules/update_rules.ts | 14 +--- .../rules/update_rules_notifications.ts | 55 ++++++++++++ .../signals/build_bulk_body.test.ts | 12 ++- .../signals/build_bulk_body.ts | 2 +- .../signals/build_rule.test.ts | 83 ++----------------- .../detection_engine/signals/build_rule.ts | 2 +- .../signals/bulk_create_ml_signals.ts | 2 +- .../signals/search_after_bulk_create.test.ts | 16 ++-- .../signals/search_after_bulk_create.ts | 2 +- .../signals/signal_rule_alert_type.ts | 10 +-- .../signals/single_bulk_create.test.ts | 10 +-- .../signals/single_bulk_create.ts | 2 +- .../lib/detection_engine/signals/types.ts | 2 +- .../siem/server/lib/detection_engine/types.ts | 3 +- x-pack/legacy/plugins/siem/server/plugin.ts | 3 + .../plugins/siem/server/saved_objects.ts | 6 ++ .../security_and_spaces/tests/utils.ts | 2 + 67 files changed, 791 insertions(+), 284 deletions(-) create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/create_rule_actions_saved_object.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/delete_rule_actions_saved_object.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/get_rule_actions_saved_object.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/saved_object_mappings.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/types.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/update_or_create_rule_actions_saved_object.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/update_rule_actions_saved_object.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/utils.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rule_actions.ts create mode 100644 x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules_notifications.ts diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/__mocks__/mock.ts b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/__mocks__/mock.ts index 6d76fde49634d2..5e0293325289be 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/__mocks__/mock.ts +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/__mocks__/mock.ts @@ -71,7 +71,7 @@ export const mockRule = (id: string): Rule => ({ to: 'now', type: 'saved_query', threat: [], - throttle: null, + throttle: 'no_actions', note: '# this is some markdown documentation', version: 1, }); @@ -145,7 +145,7 @@ export const mockRuleWithEverything = (id: string): Rule => ({ ], }, ], - throttle: null, + throttle: 'no_actions', note: '# this is some markdown documentation', version: 1, }); @@ -184,7 +184,7 @@ export const mockActionsStepRule = (isNew = false, enabled = false): ActionsStep actions: [], kibanaSiemAppUrl: 'http://localhost:5601/app/siem', enabled, - throttle: null, + throttle: 'no_actions', }); export const mockDefineStepRule = (isNew = false): DefineStepRule => ({ diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx index ebdf0fc27b6c8f..a155f3eb2803cf 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx @@ -48,7 +48,6 @@ export const getActions = ( icon: 'controlsHorizontal', name: i18n.EDIT_RULE_SETTINGS, onClick: (rowItem: Rule) => editRuleAction(rowItem, history), - enabled: (rowItem: Rule) => !rowItem.immutable, }, { description: i18n.DUPLICATE_RULE, diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.tsx index 9c16a618226628..aec315938b6aef 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.tsx @@ -141,6 +141,7 @@ const StepRuleActionsComponent: FC = ({ /> )} + diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/schema.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/schema.tsx index 511427978db3ab..bc3b0dfe720bc5 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/schema.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/schema.tsx @@ -10,6 +10,7 @@ import { FormSchema } from '../../../../../shared_imports'; export const schema: FormSchema = { actions: {}, + enabled: {}, kibanaSiemAppUrl: {}, throttle: { label: i18n.translate( diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.test.ts b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.test.ts index 212147ec6d4d84..efb601b6bd2072 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.test.ts +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.test.ts @@ -515,10 +515,9 @@ describe('helpers', () => { actions: [], enabled: false, meta: { - throttle: 'no_actions', kibanaSiemAppUrl: 'http://localhost:5601/app/siem', }, - throttle: null, + throttle: 'no_actions', }; expect(result).toEqual(expected); @@ -534,10 +533,9 @@ describe('helpers', () => { actions: [], enabled: false, meta: { - throttle: mockStepData.throttle, kibanaSiemAppUrl: mockStepData.kibanaSiemAppUrl, }, - throttle: null, + throttle: 'no_actions', }; expect(result).toEqual(expected); @@ -568,10 +566,9 @@ describe('helpers', () => { ], enabled: false, meta: { - throttle: mockStepData.throttle, kibanaSiemAppUrl: mockStepData.kibanaSiemAppUrl, }, - throttle: null, + throttle: 'rule', }; expect(result).toEqual(expected); @@ -602,7 +599,6 @@ describe('helpers', () => { ], enabled: false, meta: { - throttle: mockStepData.throttle, kibanaSiemAppUrl: mockStepData.kibanaSiemAppUrl, }, throttle: mockStepData.throttle, @@ -635,10 +631,9 @@ describe('helpers', () => { ], enabled: false, meta: { - throttle: null, kibanaSiemAppUrl: mockStepData.kibanaSiemAppUrl, }, - throttle: null, + throttle: 'no_actions', }; expect(result).toEqual(expected); diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts index 1bc5d85258ffd9..151e3a9bdf4d6d 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts @@ -8,10 +8,7 @@ import { has, isEmpty } from 'lodash/fp'; import moment from 'moment'; import deepmerge from 'deepmerge'; -import { - NOTIFICATION_THROTTLE_RULE, - NOTIFICATION_THROTTLE_NO_ACTIONS, -} from '../../../../../common/constants'; +import { NOTIFICATION_THROTTLE_NO_ACTIONS } from '../../../../../common/constants'; import { transformAlertToRuleAction } from '../../../../../common/detection_engine/transform_actions'; import { RuleType } from '../../../../../common/detection_engine/types'; import { isMlRule } from '../../../../../common/detection_engine/ml_helpers'; @@ -145,11 +142,6 @@ export const formatAboutStepData = (aboutStepData: AboutStepRule): AboutStepRule }; }; -export const getAlertThrottle = (throttle: string | null) => - throttle && ![NOTIFICATION_THROTTLE_NO_ACTIONS, NOTIFICATION_THROTTLE_RULE].includes(throttle) - ? throttle - : null; - export const formatActionsStepData = (actionsStepData: ActionsStepRule): ActionsStepRuleJson => { const { actions = [], @@ -161,9 +153,8 @@ export const formatActionsStepData = (actionsStepData: ActionsStepRule): Actions return { actions: actions.map(transformAlertToRuleAction), enabled, - throttle: actions.length ? getAlertThrottle(throttle) : null, + throttle: actions.length ? throttle : NOTIFICATION_THROTTLE_NO_ACTIONS, meta: { - throttle: actions.length ? throttle : NOTIFICATION_THROTTLE_NO_ACTIONS, kibanaSiemAppUrl, }, }; diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/details/index.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/details/index.tsx index a35caf4acf67b1..b8e2310ef06146 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/details/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/details/index.tsx @@ -277,7 +277,7 @@ const RuleDetailsPageComponent: FC = ({ {ruleI18n.EDIT_RULE_SETTINGS} diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/edit/index.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/edit/index.tsx index f89e3206cc67db..60d6158987a1db 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/edit/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/edit/index.tsx @@ -119,6 +119,7 @@ const EditRulePageComponent: FC = () => { { id: RuleStep.defineRule, name: ruleI18n.DEFINITION, + disabled: rule?.immutable, content: ( <> @@ -140,6 +141,7 @@ const EditRulePageComponent: FC = () => { { id: RuleStep.aboutRule, name: ruleI18n.ABOUT, + disabled: rule?.immutable, content: ( <> @@ -161,6 +163,7 @@ const EditRulePageComponent: FC = () => { { id: RuleStep.scheduleRule, name: ruleI18n.SCHEDULE, + disabled: rule?.immutable, content: ( <> @@ -203,6 +206,7 @@ const EditRulePageComponent: FC = () => { }, ], [ + rule, loading, initLoading, isLoading, @@ -331,10 +335,11 @@ const EditRulePageComponent: FC = () => { }, [rule]); useEffect(() => { - setSelectedTab(tabs[0]); - }, []); + const tabIndex = rule?.immutable ? 3 : 0; + setSelectedTab(tabs[tabIndex]); + }, [rule]); - if (isSaved || (rule != null && rule.immutable)) { + if (isSaved) { displaySuccessToast(i18n.SUCCESSFULLY_SAVED_RULE(rule?.name ?? ''), dispatchToaster); return ; } diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.test.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.test.tsx index fbdfcf4fc75d86..522464d585ccae 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.test.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.test.tsx @@ -107,7 +107,12 @@ describe('rule helpers', () => { ], }; const scheduleRuleStepData = { from: '0s', interval: '5m', isNew: false }; - const ruleActionsStepData = { enabled: true, throttle: undefined, isNew: false, actions: [] }; + const ruleActionsStepData = { + enabled: true, + throttle: 'no_actions', + isNew: false, + actions: [], + }; const aboutRuleDataDetailsData = { note: '# this is some markdown documentation', description: '24/7', @@ -303,7 +308,7 @@ describe('rule helpers', () => { actions: [], enabled: mockedRule.enabled, isNew: false, - throttle: undefined, + throttle: 'no_actions', }; expect(result).toEqual(expected); diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.tsx index 710dd2cabeb655..b6afba527ccdcf 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/helpers.tsx @@ -58,12 +58,12 @@ export const getStepsData = ({ export const getActionsStepsData = ( rule: Omit & { actions: RuleAlertAction[] } ): ActionsStepRule => { - const { enabled, actions = [], meta } = rule; + const { enabled, throttle, meta, actions = [] } = rule; return { actions: actions?.map(transformRuleToAlertAction), isNew: false, - throttle: meta?.throttle, + throttle, kibanaSiemAppUrl: meta?.kibanaSiemAppUrl, enabled, }; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/notifications/types.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/notifications/types.ts index edcd821353bc89..128a7965cd7dc5 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/notifications/types.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/notifications/types.ts @@ -49,7 +49,7 @@ export type UpdateNotificationParams = Omit { router.post( @@ -40,6 +41,7 @@ export const createRulesBulkRoute = (router: IRouter) => { const alertsClient = context.alerting?.getAlertsClient(); const actionsClient = context.actions?.getActionsClient(); const clusterClient = context.core.elasticsearch.dataClient; + const savedObjectsClient = context.core.savedObjects.client; const siemClient = context.siem?.getSiemClient(); if (!siemClient || !actionsClient || !alertsClient) { @@ -112,7 +114,6 @@ export const createRulesBulkRoute = (router: IRouter) => { const createdRule = await createRules({ alertsClient, actionsClient, - actions, anomalyThreshold, description, enabled, @@ -136,7 +137,6 @@ export const createRulesBulkRoute = (router: IRouter) => { name, severity, tags, - throttle, to, type, threat, @@ -145,7 +145,18 @@ export const createRulesBulkRoute = (router: IRouter) => { version, lists, }); - return transformValidateBulkError(ruleIdOrUuid, createdRule); + + const ruleActions = await updateRulesNotifications({ + ruleAlertId: createdRule.id, + alertsClient, + savedObjectsClient, + enabled, + actions, + throttle, + name, + }); + + return transformValidateBulkError(ruleIdOrUuid, createdRule, ruleActions); } catch (err) { return transformBulkError(ruleIdOrUuid, err); } diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts index a77911bbb35e87..f15f47432f8389 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts @@ -15,13 +15,12 @@ import { getEmptyIndex, getFindResultWithSingleHit, createMlRuleRequest, - createRuleWithActionsRequest, } from '../__mocks__/request_responses'; import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { createRulesRoute } from './create_rules_route'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; -import { createNotifications } from '../../notifications/create_notifications'; -jest.mock('../../notifications/create_notifications'); +import { updateRulesNotifications } from '../../rules/update_rules_notifications'; +jest.mock('../../rules/update_rules_notifications'); describe('create_rules', () => { let server: ReturnType; @@ -49,6 +48,12 @@ describe('create_rules', () => { describe('status codes with actionClient and alertClient', () => { test('returns 200 when creating a single rule with a valid actionClient and alertClient', async () => { + (updateRulesNotifications as jest.Mock).mockResolvedValue({ + id: 'id', + actions: [], + alertThrottle: null, + ruleThrottle: 'no_actions', + }); const response = await server.inject(getCreateRequest(), context); expect(response.status).toEqual(200); }); @@ -93,18 +98,6 @@ describe('create_rules', () => { }); }); - describe('creating a Notification if throttle and actions were provided ', () => { - it('is successful', async () => { - const response = await server.inject(createRuleWithActionsRequest(), context); - expect(response.status).toEqual(200); - expect(createNotifications).toHaveBeenCalledWith( - expect.objectContaining({ - ruleAlertId: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', - }) - ); - }); - }); - describe('unhappy paths', () => { test('it returns a 400 if the index does not exist', async () => { clients.clusterClient.callAsCurrentUser.mockResolvedValue(getEmptyIndex()); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts index f68f204c12730d..6038ad2095323a 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts @@ -22,7 +22,7 @@ import { buildSiemResponse, validateLicenseForRuleType, } from '../utils'; -import { createNotifications } from '../../notifications/create_notifications'; +import { updateRulesNotifications } from '../../rules/update_rules_notifications'; export const createRulesRoute = (router: IRouter): void => { router.post( @@ -102,7 +102,6 @@ export const createRulesRoute = (router: IRouter): void => { const createdRule = await createRules({ alertsClient, actionsClient, - actions, anomalyThreshold, description, enabled, @@ -126,7 +125,6 @@ export const createRulesRoute = (router: IRouter): void => { name, severity, tags, - throttle, to, type, threat, @@ -136,16 +134,15 @@ export const createRulesRoute = (router: IRouter): void => { lists, }); - if (throttle && actions.length) { - await createNotifications({ - alertsClient, - enabled, - name, - interval, - actions, - ruleAlertId: createdRule.id, - }); - } + const ruleActions = await updateRulesNotifications({ + ruleAlertId: createdRule.id, + alertsClient, + savedObjectsClient, + enabled, + actions, + throttle, + name, + }); const ruleStatuses = await savedObjectsClient.find< IRuleSavedAttributesSavedObjectAttributes @@ -157,7 +154,11 @@ export const createRulesRoute = (router: IRouter): void => { search: `${createdRule.id}`, searchFields: ['alertId'], }); - const [validated, errors] = transformValidate(createdRule, ruleStatuses.saved_objects[0]); + const [validated, errors] = transformValidate( + createdRule, + ruleActions, + ruleStatuses.saved_objects[0] + ); if (errors != null) { return siemResponse.error({ statusCode: 500, body: errors }); } else { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_bulk_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_bulk_route.ts index 33ffc245e76680..0c5ad2e060924e 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_bulk_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_bulk_route.ts @@ -18,6 +18,7 @@ import { import { deleteRules } from '../../rules/delete_rules'; import { deleteNotifications } from '../../notifications/delete_notifications'; import { ruleStatusSavedObjectType } from '../../rules/saved_object_mappings'; +import { deleteRuleActionsSavedObject } from '../../rule_actions/delete_rule_actions_saved_object'; type Config = RouteConfig; type Handler = RequestHandler; @@ -56,6 +57,10 @@ export const deleteRulesBulkRoute = (router: IRouter) => { }); if (rule != null) { await deleteNotifications({ alertsClient, ruleAlertId: rule.id }); + await deleteRuleActionsSavedObject({ + ruleAlertId: rule.id, + savedObjectsClient, + }); const ruleStatuses = await savedObjectsClient.find< IRuleSavedAttributesSavedObjectAttributes >({ @@ -67,7 +72,7 @@ export const deleteRulesBulkRoute = (router: IRouter) => { ruleStatuses.saved_objects.forEach(async obj => savedObjectsClient.delete(ruleStatusSavedObjectType, obj.id) ); - return transformValidateBulkError(idOrRuleIdOrUnknown, rule, ruleStatuses); + return transformValidateBulkError(idOrRuleIdOrUnknown, rule, undefined, ruleStatuses); } else { return getIdBulkError({ id, ruleId }); } diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_route.ts index a4e659da76bb2b..71724e3ba9b58c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/delete_rules_route.ts @@ -17,6 +17,7 @@ import { } from '../../rules/types'; import { ruleStatusSavedObjectType } from '../../rules/saved_object_mappings'; import { deleteNotifications } from '../../notifications/delete_notifications'; +import { deleteRuleActionsSavedObject } from '../../rule_actions/delete_rule_actions_saved_object'; export const deleteRulesRoute = (router: IRouter) => { router.delete( @@ -51,6 +52,10 @@ export const deleteRulesRoute = (router: IRouter) => { }); if (rule != null) { await deleteNotifications({ alertsClient, ruleAlertId: rule.id }); + await deleteRuleActionsSavedObject({ + ruleAlertId: rule.id, + savedObjectsClient, + }); const ruleStatuses = await savedObjectsClient.find< IRuleSavedAttributesSavedObjectAttributes >({ @@ -62,7 +67,11 @@ export const deleteRulesRoute = (router: IRouter) => { ruleStatuses.saved_objects.forEach(async obj => savedObjectsClient.delete(ruleStatusSavedObjectType, obj.id) ); - const [validated, errors] = transformValidate(rule, ruleStatuses.saved_objects[0]); + const [validated, errors] = transformValidate( + rule, + undefined, + ruleStatuses.saved_objects[0] + ); if (errors != null) { return siemResponse.error({ statusCode: 500, body: errors }); } else { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_route.ts index 77351d2e0751b4..85555c1a57084e 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/find_rules_route.ts @@ -15,6 +15,7 @@ import { findRulesSchema } from '../schemas/find_rules_schema'; import { transformValidateFindAlerts } from './validate'; import { buildRouteValidation, transformError, buildSiemResponse } from '../utils'; import { ruleStatusSavedObjectType } from '../../rules/saved_object_mappings'; +import { getRuleActionsSavedObject } from '../../rule_actions/get_rule_actions_saved_object'; export const findRulesRoute = (router: IRouter) => { router.get( @@ -62,7 +63,18 @@ export const findRulesRoute = (router: IRouter) => { return results; }) ); - const [validated, errors] = transformValidateFindAlerts(rules, ruleStatuses); + const ruleActions = await Promise.all( + rules.data.map(async rule => { + const results = await getRuleActionsSavedObject({ + savedObjectsClient, + ruleAlertId: rule.id, + }); + + return results; + }) + ); + + const [validated, errors] = transformValidateFindAlerts(rules, ruleActions, ruleStatuses); if (errors != null) { return siemResponse.error({ statusCode: 500, body: errors }); } else { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts index d9fc89740c9efe..43e970702ba72e 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts @@ -109,7 +109,6 @@ export const importRulesRoute = (router: IRouter, config: LegacyServices['config return null; } const { - actions, anomaly_threshold: anomalyThreshold, description, enabled, @@ -132,7 +131,6 @@ export const importRulesRoute = (router: IRouter, config: LegacyServices['config severity, tags, threat, - throttle, to, type, references, @@ -168,7 +166,6 @@ export const importRulesRoute = (router: IRouter, config: LegacyServices['config await createRules({ alertsClient, actionsClient, - actions, anomalyThreshold, description, enabled, @@ -195,7 +192,6 @@ export const importRulesRoute = (router: IRouter, config: LegacyServices['config to, type, threat, - throttle, references, note, version, @@ -206,7 +202,6 @@ export const importRulesRoute = (router: IRouter, config: LegacyServices['config await patchRules({ alertsClient, actionsClient, - actions, savedObjectsClient, description, enabled, @@ -233,7 +228,6 @@ export const importRulesRoute = (router: IRouter, config: LegacyServices['config to, type, threat, - throttle, references, note, version, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts index b19039321a6d83..85255594ee4805 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts @@ -22,6 +22,7 @@ import { patchRulesBulkSchema } from '../schemas/patch_rules_bulk_schema'; import { rulesBulkSchema } from '../schemas/response/rules_bulk_schema'; import { patchRules } from '../../rules/patch_rules'; import { ruleStatusSavedObjectType } from '../../rules/saved_object_mappings'; +import { updateRulesNotifications } from '../../rules/update_rules_notifications'; export const patchRulesBulkRoute = (router: IRouter) => { router.patch( @@ -89,7 +90,6 @@ export const patchRulesBulkRoute = (router: IRouter) => { const rule = await patchRules({ alertsClient, actionsClient, - actions, description, enabled, falsePositives, @@ -115,7 +115,6 @@ export const patchRulesBulkRoute = (router: IRouter) => { to, type, threat, - throttle, references, note, version, @@ -123,6 +122,15 @@ export const patchRulesBulkRoute = (router: IRouter) => { machineLearningJobId, }); if (rule != null) { + const ruleActions = await updateRulesNotifications({ + ruleAlertId: rule.id, + alertsClient, + savedObjectsClient, + enabled: rule.enabled!, + actions, + throttle, + name: rule.name!, + }); const ruleStatuses = await savedObjectsClient.find< IRuleSavedAttributesSavedObjectAttributes >({ @@ -133,7 +141,12 @@ export const patchRulesBulkRoute = (router: IRouter) => { search: rule.id, searchFields: ['alertId'], }); - return transformValidateBulkError(rule.id, rule, ruleStatuses.saved_objects[0]); + return transformValidateBulkError( + rule.id, + rule, + ruleActions, + ruleStatuses.saved_objects[0] + ); } else { return getIdBulkError({ id, ruleId }); } diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts index 1e344d8ea7e310..dbb0a3bb3e1dae 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts @@ -35,6 +35,7 @@ describe('patch_rules', () => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + clients.alertsClient.get.mockResolvedValue(getResult()); // existing rule clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); // existing rule clients.alertsClient.update.mockResolvedValue(getResult()); // successful update clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatus()); // successful transform diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts index fab53079361adf..f553ccd2c6f81f 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts @@ -21,6 +21,7 @@ import { import { getIdError } from './utils'; import { transformValidate } from './validate'; import { ruleStatusSavedObjectType } from '../../rules/saved_object_mappings'; +import { updateRulesNotifications } from '../../rules/update_rules_notifications'; export const patchRulesRoute = (router: IRouter) => { router.patch( @@ -85,7 +86,6 @@ export const patchRulesRoute = (router: IRouter) => { const rule = await patchRules({ actionsClient, alertsClient, - actions, description, enabled, falsePositives, @@ -111,7 +111,6 @@ export const patchRulesRoute = (router: IRouter) => { to, type, threat, - throttle, references, note, version, @@ -119,6 +118,15 @@ export const patchRulesRoute = (router: IRouter) => { machineLearningJobId, }); if (rule != null) { + const ruleActions = await updateRulesNotifications({ + ruleAlertId: rule.id, + alertsClient, + savedObjectsClient, + enabled: rule.enabled!, + actions, + throttle, + name: rule.name!, + }); const ruleStatuses = await savedObjectsClient.find< IRuleSavedAttributesSavedObjectAttributes >({ @@ -130,7 +138,11 @@ export const patchRulesRoute = (router: IRouter) => { searchFields: ['alertId'], }); - const [validated, errors] = transformValidate(rule, ruleStatuses.saved_objects[0]); + const [validated, errors] = transformValidate( + rule, + ruleActions, + ruleStatuses.saved_objects[0] + ); if (errors != null) { return siemResponse.error({ statusCode: 500, body: errors }); } else { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/read_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/read_rules_route.ts index bc52445feee767..77747448e94fdc 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/read_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/read_rules_route.ts @@ -16,6 +16,7 @@ import { IRuleSavedAttributesSavedObjectAttributes, } from '../../rules/types'; import { ruleStatusSavedObjectType } from '../../rules/saved_object_mappings'; +import { getRuleActionsSavedObject } from '../../rule_actions/get_rule_actions_saved_object'; export const readRulesRoute = (router: IRouter) => { router.get( @@ -46,6 +47,10 @@ export const readRulesRoute = (router: IRouter) => { ruleId, }); if (rule != null) { + const ruleActions = await getRuleActionsSavedObject({ + savedObjectsClient, + ruleAlertId: rule.id, + }); const ruleStatuses = await savedObjectsClient.find< IRuleSavedAttributesSavedObjectAttributes >({ @@ -56,7 +61,11 @@ export const readRulesRoute = (router: IRouter) => { search: rule.id, searchFields: ['alertId'], }); - const [validated, errors] = transformValidate(rule, ruleStatuses.saved_objects[0]); + const [validated, errors] = transformValidate( + rule, + ruleActions, + ruleStatuses.saved_objects[0] + ); if (errors != null) { return siemResponse.error({ statusCode: 500, body: errors }); } else { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts index 789f7d1ca07446..9916972f418433 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts @@ -22,6 +22,7 @@ import { updateRulesBulkSchema } from '../schemas/update_rules_bulk_schema'; import { ruleStatusSavedObjectType } from '../../rules/saved_object_mappings'; import { updateRules } from '../../rules/update_rules'; import { rulesBulkSchema } from '../schemas/response/rules_bulk_schema'; +import { updateRulesNotifications } from '../../rules/update_rules_notifications'; export const updateRulesBulkRoute = (router: IRouter) => { router.put( @@ -90,11 +91,9 @@ export const updateRulesBulkRoute = (router: IRouter) => { const rule = await updateRules({ alertsClient, actionsClient, - actions, anomalyThreshold, description, enabled, - immutable: false, falsePositives, from, query, @@ -119,13 +118,21 @@ export const updateRulesBulkRoute = (router: IRouter) => { to, type, threat, - throttle, references, note, version, lists, }); if (rule != null) { + const ruleActions = await updateRulesNotifications({ + ruleAlertId: rule.id, + alertsClient, + savedObjectsClient, + enabled, + actions, + throttle, + name, + }); const ruleStatuses = await savedObjectsClient.find< IRuleSavedAttributesSavedObjectAttributes >({ @@ -136,7 +143,12 @@ export const updateRulesBulkRoute = (router: IRouter) => { search: rule.id, searchFields: ['alertId'], }); - return transformValidateBulkError(rule.id, rule, ruleStatuses.saved_objects[0]); + return transformValidateBulkError( + rule.id, + rule, + ruleActions, + ruleStatuses.saved_objects[0] + ); } else { return getIdBulkError({ id, ruleId }); } diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts index 454fe1f0706cbb..53c52153e84e6e 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts @@ -18,6 +18,8 @@ import { import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +import { updateRulesNotifications } from '../../rules/update_rules_notifications'; +jest.mock('../../rules/update_rules_notifications'); describe('update_rules', () => { let server: ReturnType; @@ -35,6 +37,7 @@ describe('update_rules', () => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + clients.alertsClient.get.mockResolvedValue(getResult()); // existing rule clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); // rule exists clients.alertsClient.update.mockResolvedValue(getResult()); // successful update clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatusEmpty()); // successful transform @@ -44,6 +47,12 @@ describe('update_rules', () => { describe('status codes with actionClient and alertClient', () => { test('returns 200 when updating a single rule with a valid actionClient and alertClient', async () => { + (updateRulesNotifications as jest.Mock).mockResolvedValue({ + id: 'id', + actions: [], + alertThrottle: null, + ruleThrottle: 'no_actions', + }); const response = await server.inject(getUpdateRequest(), context); expect(response.status).toEqual(200); }); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts index 5856575eb97992..21dd2a4429cca5 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts @@ -21,7 +21,7 @@ import { getIdError } from './utils'; import { transformValidate } from './validate'; import { ruleStatusSavedObjectType } from '../../rules/saved_object_mappings'; import { updateRules } from '../../rules/update_rules'; -import { updateNotifications } from '../../notifications/update_notifications'; +import { updateRulesNotifications } from '../../rules/update_rules_notifications'; export const updateRulesRoute = (router: IRouter) => { router.put( @@ -87,13 +87,11 @@ export const updateRulesRoute = (router: IRouter) => { const rule = await updateRules({ alertsClient, actionsClient, - actions, anomalyThreshold, description, enabled, falsePositives, from, - immutable: false, query, language, machineLearningJobId, @@ -116,7 +114,6 @@ export const updateRulesRoute = (router: IRouter) => { to, type, threat, - throttle, references, note, version, @@ -124,15 +121,15 @@ export const updateRulesRoute = (router: IRouter) => { }); if (rule != null) { - await updateNotifications({ + const ruleActions = await updateRulesNotifications({ + ruleAlertId: rule.id, alertsClient, - actions, + savedObjectsClient, enabled, - ruleAlertId: rule.id, - interval: throttle, + actions, + throttle, name, }); - const ruleStatuses = await savedObjectsClient.find< IRuleSavedAttributesSavedObjectAttributes >({ @@ -143,7 +140,11 @@ export const updateRulesRoute = (router: IRouter) => { search: rule.id, searchFields: ['alertId'], }); - const [validated, errors] = transformValidate(rule, ruleStatuses.saved_objects[0]); + const [validated, errors] = transformValidate( + rule, + ruleActions, + ruleStatuses.saved_objects[0] + ); if (errors != null) { return siemResponse.error({ statusCode: 500, body: errors }); } else { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.test.ts index 3a047f91a0bcbe..31a0f37fe81c90 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.test.ts @@ -215,17 +215,20 @@ describe('utils', () => { describe('transformFindAlerts', () => { test('outputs empty data set when data set is empty correct', () => { - const output = transformFindAlerts({ data: [], page: 1, perPage: 0, total: 0 }); + const output = transformFindAlerts({ data: [], page: 1, perPage: 0, total: 0 }, []); expect(output).toEqual({ data: [], page: 1, perPage: 0, total: 0 }); }); test('outputs 200 if the data is of type siem alert', () => { - const output = transformFindAlerts({ - page: 1, - perPage: 0, - total: 0, - data: [getResult()], - }); + const output = transformFindAlerts( + { + page: 1, + perPage: 0, + total: 0, + data: [getResult()], + }, + [] + ); const expected = getOutputRuleAlertForRest(); expect(output).toEqual({ page: 1, @@ -237,12 +240,15 @@ describe('utils', () => { test('returns 500 if the data is not of type siem alert', () => { const unsafeCast = ([{ name: 'something else' }] as unknown) as SanitizedAlert[]; - const output = transformFindAlerts({ - data: unsafeCast, - page: 1, - perPage: 1, - total: 1, - }); + const output = transformFindAlerts( + { + data: unsafeCast, + page: 1, + perPage: 1, + total: 1, + }, + [] + ); expect(output).toBeNull(); }); }); @@ -364,14 +370,24 @@ describe('utils', () => { describe('transformOrBulkError', () => { test('outputs 200 if the data is of type siem alert', () => { - const output = transformOrBulkError('rule-1', getResult()); + const output = transformOrBulkError('rule-1', getResult(), { + id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + actions: [], + ruleThrottle: 'no_actions', + alertThrottle: null, + }); const expected = getOutputRuleAlertForRest(); expect(output).toEqual(expected); }); test('returns 500 if the data is not of type siem alert', () => { const unsafeCast = ({ name: 'something else' } as unknown) as PartialAlert; - const output = transformOrBulkError('rule-1', unsafeCast); + const output = transformOrBulkError('rule-1', unsafeCast, { + id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + actions: [], + ruleThrottle: 'no_actions', + alertThrottle: null, + }); const expected: BulkError = { rule_id: 'rule-1', error: { message: 'Internal error transforming', status_code: 500 }, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts index a0458dc3a133d9..4d13fa1b6ae50c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts @@ -29,7 +29,8 @@ import { OutputError, } from '../utils'; import { hasListsFeature } from '../../feature_flags'; -import { transformAlertToRuleAction } from '../../../../../common/detection_engine/transform_actions'; +// import { transformAlertToRuleAction } from '../../../../../common/detection_engine/transform_actions'; +import { RuleActions } from '../../rule_actions/types'; type PromiseFromStreams = ImportRuleAlertRest | Error; @@ -100,10 +101,11 @@ export const transformTags = (tags: string[]): string[] => { // those on the export export const transformAlertToRule = ( alert: RuleAlertType, + ruleActions?: RuleActions | null, ruleStatus?: SavedObject ): Partial => { return pickBy((value: unknown) => value != null, { - actions: alert.actions.map(transformAlertToRuleAction), + actions: ruleActions?.actions ?? [], created_at: alert.createdAt.toISOString(), updated_at: alert.updatedAt.toISOString(), created_by: alert.createdBy, @@ -136,7 +138,7 @@ export const transformAlertToRule = ( to: alert.params.to, type: alert.params.type, threat: alert.params.threat, - throttle: alert.throttle, + throttle: ruleActions?.ruleThrottle || 'no_actions', note: alert.params.note, version: alert.params.version, status: ruleStatus?.attributes.status, @@ -167,6 +169,7 @@ export const transformAlertsToRules = ( export const transformFindAlerts = ( findResults: FindResult, + ruleActions: Array, ruleStatuses?: Array> ): { page: number; @@ -179,7 +182,7 @@ export const transformFindAlerts = ( page: findResults.page, perPage: findResults.perPage, total: findResults.total, - data: findResults.data.map(alert => transformAlertToRule(alert)), + data: findResults.data.map((alert, idx) => transformAlertToRule(alert, ruleActions[idx])), }; } else if (isAlertTypes(findResults.data) && isRuleStatusFindTypes(ruleStatuses)) { return { @@ -187,7 +190,7 @@ export const transformFindAlerts = ( perPage: findResults.perPage, total: findResults.total, data: findResults.data.map((alert, idx) => - transformAlertToRule(alert, ruleStatuses[idx].saved_objects[0]) + transformAlertToRule(alert, ruleActions[idx], ruleStatuses[idx].saved_objects[0]) ), }; } else { @@ -197,28 +200,31 @@ export const transformFindAlerts = ( export const transform = ( alert: PartialAlert, + ruleActions?: RuleActions | null, ruleStatus?: SavedObject ): Partial | null => { - if (!ruleStatus && isAlertType(alert)) { - return transformAlertToRule(alert); - } - if (isAlertType(alert) && isRuleStatusSavedObjectType(ruleStatus)) { - return transformAlertToRule(alert, ruleStatus); - } else { - return null; + if (isAlertType(alert)) { + return transformAlertToRule( + alert, + ruleActions, + isRuleStatusSavedObjectType(ruleStatus) ? ruleStatus : undefined + ); } + + return null; }; export const transformOrBulkError = ( ruleId: string, alert: PartialAlert, + ruleActions: RuleActions, ruleStatus?: unknown ): Partial | BulkError => { if (isAlertType(alert)) { if (isRuleStatusFindType(ruleStatus) && ruleStatus?.saved_objects.length > 0) { - return transformAlertToRule(alert, ruleStatus?.saved_objects[0] ?? ruleStatus); + return transformAlertToRule(alert, ruleActions, ruleStatus?.saved_objects[0] ?? ruleStatus); } else { - return transformAlertToRule(alert); + return transformAlertToRule(alert, ruleActions); } } else { return createBulkErrorObject({ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/validate.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/validate.test.ts index 3727908ac62de7..77e05796fbcbe4 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/validate.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/validate.test.ts @@ -43,6 +43,7 @@ export const ruleOutput: RulesSchema = { tags: [], to: 'now', type: 'query', + throttle: 'no_actions', threat: [ { framework: 'MITRE ATT&CK', @@ -154,7 +155,7 @@ describe('validate', () => { describe('transformValidateFindAlerts', () => { test('it should do a validation correctly of a find alert', () => { const findResult: FindResult = { data: [getResult()], page: 1, perPage: 0, total: 0 }; - const [validated, errors] = transformValidateFindAlerts(findResult); + const [validated, errors] = transformValidateFindAlerts(findResult, []); expect(validated).toEqual({ data: [ruleOutput], page: 1, perPage: 0, total: 0 }); expect(errors).toEqual(null); }); @@ -162,7 +163,7 @@ describe('validate', () => { test('it should do an in-validation correctly of a partial alert', () => { const findResult: FindResult = { data: [getResult()], page: 1, perPage: 0, total: 0 }; delete findResult.page; - const [validated, errors] = transformValidateFindAlerts(findResult); + const [validated, errors] = transformValidateFindAlerts(findResult, []); expect(validated).toEqual(null); expect(errors).toEqual('Invalid value "undefined" supplied to "page"'); }); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/validate.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/validate.ts index e654da99fe67b2..1f3d1ec8566848 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/validate.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/routes/rules/validate.ts @@ -22,9 +22,11 @@ import { rulesSchema, RulesSchema } from '../schemas/response/rules_schema'; import { exactCheck } from '../schemas/response/exact_check'; import { transformFindAlerts, transform, transformAlertToRule } from './utils'; import { findRulesSchema } from '../schemas/response/find_rules_schema'; +import { RuleActions } from '../../rule_actions/types'; export const transformValidateFindAlerts = ( findResults: FindResult, + ruleActions: Array, ruleStatuses?: Array> ): [ { @@ -35,7 +37,7 @@ export const transformValidateFindAlerts = ( } | null, string | null ] => { - const transformed = transformFindAlerts(findResults, ruleStatuses); + const transformed = transformFindAlerts(findResults, ruleActions, ruleStatuses); if (transformed == null) { return [null, 'Internal error transforming']; } else { @@ -54,9 +56,10 @@ export const transformValidateFindAlerts = ( export const transformValidate = ( alert: PartialAlert, + ruleActions?: RuleActions | null, ruleStatus?: SavedObject ): [RulesSchema | null, string | null] => { - const transformed = transform(alert, ruleStatus); + const transformed = transform(alert, ruleActions, ruleStatus); if (transformed == null) { return [null, 'Internal error transforming']; } else { @@ -67,11 +70,16 @@ export const transformValidate = ( export const transformValidateBulkError = ( ruleId: string, alert: PartialAlert, + ruleActions?: RuleActions | null, ruleStatus?: unknown ): RulesSchema | BulkError => { if (isAlertType(alert)) { if (isRuleStatusFindType(ruleStatus) && ruleStatus?.saved_objects.length > 0) { - const transformed = transformAlertToRule(alert, ruleStatus?.saved_objects[0] ?? ruleStatus); + const transformed = transformAlertToRule( + alert, + ruleActions, + ruleStatus?.saved_objects[0] ?? ruleStatus + ); const [validated, errors] = validate(transformed, rulesSchema); if (errors != null || validated == null) { return createBulkErrorObject({ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/create_rule_actions_saved_object.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/create_rule_actions_saved_object.ts new file mode 100644 index 00000000000000..23c99b36cb4a76 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/create_rule_actions_saved_object.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { RuleAlertAction } from '../../../../common/detection_engine/types'; +import { AlertServices } from '../../../../../../../plugins/alerting/server'; +import { ruleActionsSavedObjectType } from './saved_object_mappings'; +import { IRuleActionsAttributesSavedObjectAttributes } from './types'; +import { getThrottleOptions, getRuleActionsFromSavedObject } from './utils'; + +interface CreateRuleActionsSavedObject { + ruleAlertId: string; + savedObjectsClient: AlertServices['savedObjectsClient']; + actions: RuleAlertAction[] | undefined; + throttle: string | undefined; +} + +export const createRuleActionsSavedObject = async ({ + ruleAlertId, + savedObjectsClient, + actions = [], + throttle, +}: CreateRuleActionsSavedObject) => { + const ruleActionsSavedObject = await savedObjectsClient.create< + IRuleActionsAttributesSavedObjectAttributes + >(ruleActionsSavedObjectType, { + ruleAlertId, + actions, + ...getThrottleOptions(throttle), + }); + + return getRuleActionsFromSavedObject(ruleActionsSavedObject); +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/delete_rule_actions_saved_object.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/delete_rule_actions_saved_object.ts new file mode 100644 index 00000000000000..4e8781dd456920 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/delete_rule_actions_saved_object.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { AlertServices } from '../../../../../../../plugins/alerting/server'; +import { ruleActionsSavedObjectType } from './saved_object_mappings'; +import { getRuleActionsSavedObject } from './get_rule_actions_saved_object'; + +interface DeleteRuleActionsSavedObject { + ruleAlertId: string; + savedObjectsClient: AlertServices['savedObjectsClient']; +} + +export const deleteRuleActionsSavedObject = async ({ + ruleAlertId, + savedObjectsClient, +}: DeleteRuleActionsSavedObject) => { + const ruleActions = await getRuleActionsSavedObject({ ruleAlertId, savedObjectsClient }); + + if (!ruleActions) return null; + + return savedObjectsClient.delete(ruleActionsSavedObjectType, ruleActions.id); +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/get_rule_actions_saved_object.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/get_rule_actions_saved_object.ts new file mode 100644 index 00000000000000..3ae9090526d693 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/get_rule_actions_saved_object.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { AlertServices } from '../../../../../../../plugins/alerting/server'; +import { ruleActionsSavedObjectType } from './saved_object_mappings'; +import { IRuleActionsAttributesSavedObjectAttributes } from './types'; +import { getRuleActionsFromSavedObject } from './utils'; + +interface GetRuleActionsSavedObject { + ruleAlertId: string; + savedObjectsClient: AlertServices['savedObjectsClient']; +} + +export const getRuleActionsSavedObject = async ({ + ruleAlertId, + savedObjectsClient, +}: GetRuleActionsSavedObject) => { + const { saved_objects } = await savedObjectsClient.find< + IRuleActionsAttributesSavedObjectAttributes + >({ + type: ruleActionsSavedObjectType, + perPage: 1, + search: `${ruleAlertId}`, + searchFields: ['ruleAlertId'], + }); + + if (!saved_objects[0]) { + return null; + } + + return getRuleActionsFromSavedObject(saved_objects[0]); +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/saved_object_mappings.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/saved_object_mappings.ts new file mode 100644 index 00000000000000..f54f43c41ef6ee --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/saved_object_mappings.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; + * you may not use this file except in compliance with the Elastic License. + */ + +export const ruleActionsSavedObjectType = 'siem-detection-engine-rule-actions'; + +export const ruleActionsSavedObjectMappings = { + [ruleActionsSavedObjectType]: { + properties: { + alertThrottle: { + type: 'keyword', + }, + ruleAlertId: { + type: 'keyword', + }, + ruleThrottle: { + type: 'keyword', + }, + actions: { + properties: { + group: { + type: 'keyword', + }, + id: { + type: 'keyword', + }, + action_type_id: { + type: 'keyword', + }, + params: { + dynamic: true, + properties: {}, + }, + }, + }, + }, + }, +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/types.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/types.ts new file mode 100644 index 00000000000000..525eb74d18fb24 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/types.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { get } from 'lodash/fp'; +import { SavedObject, SavedObjectAttributes, SavedObjectsFindResponse } from 'kibana/server'; +import { RuleAlertAction } from '../../../../common/detection_engine/types'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export interface IRuleActionsAttributes extends Record { + ruleAlertId: string; + actions: RuleAlertAction[]; + ruleThrottle: string; + alertThrottle: string | null; +} + +export interface RuleActions { + id: string; + actions: RuleAlertAction[]; + ruleThrottle: string; + alertThrottle: string | null; +} + +export interface IRuleActionsAttributesSavedObjectAttributes + extends IRuleActionsAttributes, + SavedObjectAttributes {} + +export interface RuleActionsResponse { + [key: string]: { + actions: IRuleActionsAttributes | null | undefined; + }; +} + +export interface IRuleActionsSavedObject { + type: string; + id: string; + attributes: Array>; + references: unknown[]; + updated_at: string; + version: string; +} + +export interface IRuleActionsFindType { + page: number; + per_page: number; + total: number; + saved_objects: IRuleActionsSavedObject[]; +} + +export const isRuleActionsSavedObjectType = ( + obj: unknown +): obj is SavedObject => { + return get('attributes', obj) != null; +}; + +export const isRuleActionsFindType = ( + obj: unknown +): obj is SavedObjectsFindResponse => { + return get('saved_objects', obj) != null; +}; + +export const isRuleActionsFindTypes = ( + obj: unknown[] | undefined +): obj is Array> => { + return obj ? obj.every(ruleStatus => isRuleActionsFindType(ruleStatus)) : false; +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/update_or_create_rule_actions_saved_object.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/update_or_create_rule_actions_saved_object.ts new file mode 100644 index 00000000000000..3856f75255262a --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/update_or_create_rule_actions_saved_object.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { AlertServices } from '../../../../../../../plugins/alerting/server'; +import { RuleAlertAction } from '../../../../common/detection_engine/types'; +import { getRuleActionsSavedObject } from './get_rule_actions_saved_object'; +import { createRuleActionsSavedObject } from './create_rule_actions_saved_object'; +import { updateRuleActionsSavedObject } from './update_rule_actions_saved_object'; +import { RuleActions } from './types'; + +interface UpdateOrCreateRuleActionsSavedObject { + ruleAlertId: string; + savedObjectsClient: AlertServices['savedObjectsClient']; + actions: RuleAlertAction[] | undefined; + throttle: string | undefined; +} + +export const updateOrCreateRuleActionsSavedObject = async ({ + savedObjectsClient, + ruleAlertId, + actions, + throttle, +}: UpdateOrCreateRuleActionsSavedObject): Promise => { + const currentRuleActions = await getRuleActionsSavedObject({ ruleAlertId, savedObjectsClient }); + + if (currentRuleActions) { + return updateRuleActionsSavedObject({ + ruleAlertId, + savedObjectsClient, + actions, + throttle, + }) as Promise; + } + + return createRuleActionsSavedObject({ ruleAlertId, savedObjectsClient, actions, throttle }); +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/update_rule_actions_saved_object.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/update_rule_actions_saved_object.ts new file mode 100644 index 00000000000000..56bce3c8b67a36 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/update_rule_actions_saved_object.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { AlertServices } from '../../../../../../../plugins/alerting/server'; +import { ruleActionsSavedObjectType } from './saved_object_mappings'; +import { getRuleActionsSavedObject } from './get_rule_actions_saved_object'; +import { RuleAlertAction } from '../../../../common/detection_engine/types'; +import { getThrottleOptions } from './utils'; +import { IRuleActionsAttributesSavedObjectAttributes } from './types'; + +interface DeleteRuleActionsSavedObject { + ruleAlertId: string; + savedObjectsClient: AlertServices['savedObjectsClient']; + actions: RuleAlertAction[] | undefined; + throttle: string | undefined; +} + +export const updateRuleActionsSavedObject = async ({ + ruleAlertId, + savedObjectsClient, + actions, + throttle, +}: DeleteRuleActionsSavedObject) => { + const ruleActions = await getRuleActionsSavedObject({ ruleAlertId, savedObjectsClient }); + + if (!ruleActions) return null; + + const throttleOptions = throttle + ? getThrottleOptions(throttle) + : { + ruleThrottle: ruleActions.ruleThrottle, + alertThrottle: ruleActions.alertThrottle, + }; + + const options = { + actions: actions ?? ruleActions.actions, + ...throttleOptions, + }; + + await savedObjectsClient.update( + ruleActionsSavedObjectType, + ruleActions.id, + { + ruleAlertId, + ...options, + } + ); + + return { + id: ruleActions.id, + ...options, + }; +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/utils.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/utils.ts new file mode 100644 index 00000000000000..3c297ed8485552 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rule_actions/utils.ts @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { SavedObjectsUpdateResponse } from 'kibana/server'; +import { IRuleActionsAttributesSavedObjectAttributes } from './types'; + +export const getThrottleOptions = (throttle = 'no_actions') => ({ + ruleThrottle: throttle, + alertThrottle: ['no_actions', 'rule'].includes(throttle) ? null : throttle, +}); + +export const getRuleActionsFromSavedObject = ( + savedObject: SavedObjectsUpdateResponse +) => ({ + id: savedObject.id, + actions: savedObject.attributes.actions || [], + alertThrottle: savedObject.attributes.alertThrottle || null, + ruleThrottle: savedObject.attributes.ruleThrottle || 'no_actions', +}); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/create_rules.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/create_rules.test.ts index 14b8ffdfdacec7..4c8d0f51f251bd 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/create_rules.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/create_rules.test.ts @@ -28,12 +28,10 @@ describe('createRules', () => { await createRules({ alertsClient, actionsClient, - actions: [], ...params, ruleId: 'new-rule-id', enabled: true, interval: '', - throttle: null, name: '', tags: [], }); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/create_rules.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/create_rules.ts index a45b28ba3e1052..bebf4f350483b6 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/create_rules.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/create_rules.ts @@ -6,15 +6,12 @@ import { Alert } from '../../../../../../../plugins/alerting/common'; import { APP_ID, SIGNALS_ID } from '../../../../common/constants'; -import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; import { CreateRuleParams } from './types'; import { addTags } from './add_tags'; import { hasListsFeature } from '../feature_flags'; export const createRules = async ({ alertsClient, - actionsClient, // TODO: Use this actionsClient once we have actions such as email, etc... - actions, anomalyThreshold, description, enabled, @@ -39,7 +36,6 @@ export const createRules = async ({ severity, tags, threat, - throttle, to, type, references, @@ -85,8 +81,8 @@ export const createRules = async ({ }, schedule: { interval }, enabled, - actions: actions?.map(transformRuleToAlertAction), - throttle, + actions: [], + throttle: null, }, }); }; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/get_export_all.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/get_export_all.test.ts index 20ddcdc3f5362d..ca6fb15e1fad90 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/get_export_all.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/get_export_all.test.ts @@ -76,6 +76,7 @@ describe('getExportAll', () => { ], }, ], + throttle: 'no_actions', note: '# Investigative notes', version: 1, lists: [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/get_export_by_object_ids.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/get_export_by_object_ids.test.ts index e6d4c68d7108d6..175c906f7996cf 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/get_export_by_object_ids.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/get_export_by_object_ids.test.ts @@ -84,6 +84,7 @@ describe('get_export_by_object_ids', () => { ], }, ], + throttle: 'no_actions', note: '# Investigative notes', version: 1, lists: [ @@ -205,6 +206,7 @@ describe('get_export_by_object_ids', () => { ], }, ], + throttle: 'no_actions', note: '# Investigative notes', version: 1, lists: [ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/install_prepacked_rules.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/install_prepacked_rules.ts index 801f3d949ed78b..bcbe460fb6a66c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/install_prepacked_rules.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/install_prepacked_rules.ts @@ -18,7 +18,6 @@ export const installPrepackagedRules = ( ): Array> => rules.reduce>>((acc, rule) => { const { - actions, anomaly_threshold: anomalyThreshold, description, enabled, @@ -44,7 +43,6 @@ export const installPrepackagedRules = ( to, type, threat, - throttle, references, note, version, @@ -55,7 +53,6 @@ export const installPrepackagedRules = ( createRules({ alertsClient, actionsClient, - actions, anomalyThreshold, description, enabled, @@ -82,7 +79,6 @@ export const installPrepackagedRules = ( to, type, threat, - throttle, references, note, version, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts index cd18bee6f606ff..3108fc5f3b7187 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts @@ -28,12 +28,10 @@ describe('patchRules', () => { await patchRules({ alertsClient, actionsClient, - actions: [], savedObjectsClient, id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', ...rule.params, enabled: false, - throttle: null, interval: '', name: '', tags: [], @@ -56,12 +54,10 @@ describe('patchRules', () => { await patchRules({ alertsClient, actionsClient, - actions: [], savedObjectsClient, id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', ...rule.params, enabled: true, - throttle: null, interval: '', name: '', tags: [], diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts index 5394af526c9177..d7655a15499eb7 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts @@ -6,7 +6,6 @@ import { defaults } from 'lodash/fp'; import { PartialAlert } from '../../../../../../../plugins/alerting/server'; -import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; import { readRules } from './read_rules'; import { PatchRuleParams, IRuleSavedAttributesSavedObjectAttributes } from './types'; import { addTags } from './add_tags'; @@ -16,7 +15,6 @@ import { calculateVersion, calculateName, calculateInterval } from './utils'; export const patchRules = async ({ alertsClient, actionsClient, // TODO: Use this whenever we add feature support for different action types - actions, savedObjectsClient, description, falsePositives, @@ -41,7 +39,6 @@ export const patchRules = async ({ severity, tags, threat, - throttle, to, type, references, @@ -57,7 +54,6 @@ export const patchRules = async ({ } const calculatedVersion = calculateVersion(rule.params.immutable, rule.params.version, { - actions, description, falsePositives, query, @@ -77,7 +73,6 @@ export const patchRules = async ({ severity, tags, threat, - throttle, to, type, references, @@ -125,12 +120,12 @@ export const patchRules = async ({ id: rule.id, data: { tags: addTags(tags ?? rule.tags, rule.params.ruleId, immutable ?? rule.params.immutable), - throttle: throttle !== undefined ? throttle : rule.throttle, + throttle: rule.throttle, name: calculateName({ updatedName: name, originalName: rule.name }), schedule: { interval: calculateInterval(interval, rule.schedule.interval), }, - actions: actions?.map(transformRuleToAlertAction) ?? rule.actions, + actions: rule.actions, params: nextParams, }, }); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts index d8dacc7c64397e..38b1097a845f8b 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/types.ts @@ -142,12 +142,12 @@ export interface Clients { actionsClient: ActionsClient; } -export type PatchRuleParams = Partial & { +export type PatchRuleParams = Partial> & { id: string | undefined | null; savedObjectsClient: SavedObjectsClientContract; } & Clients; -export type UpdateRuleParams = RuleAlertParams & { +export type UpdateRuleParams = Omit & { id: string | undefined | null; savedObjectsClient: SavedObjectsClientContract; } & Clients; @@ -157,7 +157,9 @@ export type DeleteRuleParams = Clients & { ruleId: string | undefined | null; }; -export type CreateRuleParams = Omit & { ruleId: string } & Clients; +export type CreateRuleParams = Omit & { + ruleId: string; +} & Clients; export interface ReadRuleParams { alertsClient: AlertsClient; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts new file mode 100644 index 00000000000000..7a3f233475117f --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { savedObjectsClientMock } from '../../../../../../../../src/core/server/mocks'; +import { alertsClientMock } from '../../../../../../../plugins/alerting/server/mocks'; +import { actionsClientMock } from '../../../../../../../plugins/actions/server/mocks'; +import { mockPrepackagedRule } from '../routes/__mocks__/request_responses'; +import { updatePrepackagedRules } from './update_prepacked_rules'; +import { patchRules } from './patch_rules'; +jest.mock('./patch_rules'); + +describe('updatePrepackagedRules', () => { + let actionsClient: ReturnType; + let alertsClient: ReturnType; + let savedObjectsClient: ReturnType; + + beforeEach(() => { + actionsClient = actionsClientMock.create(); + alertsClient = alertsClientMock.create(); + savedObjectsClient = savedObjectsClientMock.create(); + }); + + it('should omit actions and enabled when calling patchRules', async () => { + const actions = [ + { + group: 'group', + id: 'id', + action_type_id: 'action_type_id', + params: {}, + }, + ]; + const outputIndex = 'outputIndex'; + const prepackagedRule = mockPrepackagedRule(); + + await updatePrepackagedRules( + alertsClient, + actionsClient, + savedObjectsClient, + [{ ...prepackagedRule, actions }], + outputIndex + ); + + expect(patchRules).toHaveBeenCalledWith( + expect.objectContaining({ + ruleId: 'rule-1', + }) + ); + expect(patchRules).not.toHaveBeenCalledWith( + expect.objectContaining({ + enabled: true, + }) + ); + expect(patchRules).not.toHaveBeenCalledWith( + expect.objectContaining({ + actions, + }) + ); + }); +}); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts index cc67622176a044..7eb0d8d1399be4 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts @@ -19,7 +19,6 @@ export const updatePrepackagedRules = async ( ): Promise => { await rules.forEach(async rule => { const { - actions, description, false_positives: falsePositives, from, @@ -40,7 +39,6 @@ export const updatePrepackagedRules = async ( to, type, threat, - throttle, references, version, note, @@ -51,7 +49,6 @@ export const updatePrepackagedRules = async ( return patchRules({ alertsClient, actionsClient, - actions, description, falsePositives, from, @@ -75,7 +72,6 @@ export const updatePrepackagedRules = async ( to, type, threat, - throttle, references, version, note, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rule_actions.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rule_actions.ts new file mode 100644 index 00000000000000..ac10143c1d8d07 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rule_actions.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { AlertsClient, AlertServices } from '../../../../../../../plugins/alerting/server'; +import { getRuleActionsSavedObject } from '../rule_actions/get_rule_actions_saved_object'; +import { readRules } from './read_rules'; +import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; + +interface UpdateRuleActions { + alertsClient: AlertsClient; + savedObjectsClient: AlertServices['savedObjectsClient']; + ruleAlertId: string; +} + +export const updateRuleActions = async ({ + alertsClient, + savedObjectsClient, + ruleAlertId, +}: UpdateRuleActions) => { + const rule = await readRules({ alertsClient, id: ruleAlertId }); + if (rule == null) { + return null; + } + + const ruleActions = await getRuleActionsSavedObject({ + savedObjectsClient, + ruleAlertId, + }); + + if (!ruleActions) { + return null; + } + + return alertsClient.update({ + id: ruleAlertId, + data: { + actions: !ruleActions.alertThrottle + ? ruleActions.actions.map(transformRuleToAlertAction) + : [], + throttle: null, + name: rule.name, + tags: rule.tags, + schedule: rule.schedule, + params: rule.params, + }, + }); +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules.test.ts index af00816abfc3d3..ca299db6ace50e 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules.test.ts @@ -28,12 +28,10 @@ describe('updateRules', () => { await updateRules({ alertsClient, actionsClient, - actions: [], savedObjectsClient, id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', ...rule.params, enabled: false, - throttle: null, interval: '', name: '', tags: [], @@ -56,12 +54,10 @@ describe('updateRules', () => { await updateRules({ alertsClient, actionsClient, - actions: [], savedObjectsClient, id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', ...rule.params, enabled: true, - throttle: null, interval: '', name: '', tags: [], @@ -86,12 +82,10 @@ describe('updateRules', () => { await updateRules({ alertsClient, actionsClient, - actions: [], savedObjectsClient, id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', ...params, enabled: true, - throttle: null, interval: '', name: '', tags: [], diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules.ts index 72cbc959c01052..0e70e05f4de78c 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules.ts @@ -5,7 +5,6 @@ */ import { PartialAlert } from '../../../../../../../plugins/alerting/server'; -import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; import { readRules } from './read_rules'; import { IRuleSavedAttributesSavedObjectAttributes, UpdateRuleParams } from './types'; import { addTags } from './add_tags'; @@ -16,7 +15,6 @@ import { hasListsFeature } from '../feature_flags'; export const updateRules = async ({ alertsClient, actionsClient, // TODO: Use this whenever we add feature support for different action types - actions, savedObjectsClient, description, falsePositives, @@ -30,7 +28,6 @@ export const updateRules = async ({ meta, filters, from, - immutable, id, ruleId, index, @@ -41,7 +38,6 @@ export const updateRules = async ({ severity, tags, threat, - throttle, to, type, references, @@ -57,7 +53,6 @@ export const updateRules = async ({ } const calculatedVersion = calculateVersion(rule.params.immutable, rule.params.version, { - actions, description, falsePositives, query, @@ -77,7 +72,6 @@ export const updateRules = async ({ severity, tags, threat, - throttle, to, type, references, @@ -93,17 +87,17 @@ export const updateRules = async ({ const update = await alertsClient.update({ id: rule.id, data: { - tags: addTags(tags, rule.params.ruleId, immutable), + tags: addTags(tags, rule.params.ruleId, rule.params.immutable), name, schedule: { interval }, - actions: actions?.map(transformRuleToAlertAction) ?? rule.actions, - throttle: throttle !== undefined ? throttle : rule.throttle, + actions: rule.actions, + throttle: rule.throttle, params: { description, ruleId: rule.params.ruleId, falsePositives, from, - immutable, + immutable: rule.params.immutable, query, language, outputIndex, diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules_notifications.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules_notifications.ts new file mode 100644 index 00000000000000..f70c591243a765 --- /dev/null +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/rules/update_rules_notifications.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { RuleAlertAction } from '../../../../common/detection_engine/types'; +import { AlertsClient, AlertServices } from '../../../../../../../plugins/alerting/server'; +import { updateOrCreateRuleActionsSavedObject } from '../rule_actions/update_or_create_rule_actions_saved_object'; +import { updateNotifications } from '../notifications/update_notifications'; +import { updateRuleActions } from './update_rule_actions'; + +interface UpdateRulesNotifications { + alertsClient: AlertsClient; + savedObjectsClient: AlertServices['savedObjectsClient']; + ruleAlertId: string; + actions: RuleAlertAction[] | undefined; + throttle: string | undefined; + enabled: boolean; + name: string; +} + +export const updateRulesNotifications = async ({ + alertsClient, + savedObjectsClient, + ruleAlertId, + actions, + enabled, + name, + throttle, +}: UpdateRulesNotifications) => { + const ruleActions = await updateOrCreateRuleActionsSavedObject({ + savedObjectsClient, + ruleAlertId, + actions, + throttle, + }); + + await updateRuleActions({ + alertsClient, + savedObjectsClient, + ruleAlertId, + }); + + await updateNotifications({ + alertsClient, + ruleAlertId, + enabled, + name, + actions: ruleActions.actions, + interval: ruleActions?.alertThrottle, + }); + + return ruleActions; +}; diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.test.ts index c86696d6ec5ebf..f2c2b99bdac8c9 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.test.ts @@ -33,7 +33,7 @@ describe('buildBulkBody', () => { interval: '5m', enabled: true, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); // Timestamp will potentially always be different so remove it for the test delete fakeSignalSourceHit['@timestamp']; @@ -80,6 +80,7 @@ describe('buildBulkBody', () => { references: ['http://google.com'], severity: 'high', tags: ['some fake tag 1', 'some fake tag 2'], + throttle: 'no_actions', type: 'query', to: 'now', note: '', @@ -143,7 +144,7 @@ describe('buildBulkBody', () => { interval: '5m', enabled: true, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); // Timestamp will potentially always be different so remove it for the test delete fakeSignalSourceHit['@timestamp']; @@ -208,6 +209,7 @@ describe('buildBulkBody', () => { version: 1, created_at: fakeSignalSourceHit.signal.rule?.created_at, updated_at: fakeSignalSourceHit.signal.rule?.updated_at, + throttle: 'no_actions', lists: [ { field: 'source.ip', @@ -261,7 +263,7 @@ describe('buildBulkBody', () => { interval: '5m', enabled: true, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); // Timestamp will potentially always be different so remove it for the test delete fakeSignalSourceHit['@timestamp']; @@ -325,6 +327,7 @@ describe('buildBulkBody', () => { version: 1, created_at: fakeSignalSourceHit.signal.rule?.created_at, updated_at: fakeSignalSourceHit.signal.rule?.updated_at, + throttle: 'no_actions', lists: [ { field: 'source.ip', @@ -376,7 +379,7 @@ describe('buildBulkBody', () => { interval: '5m', enabled: true, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); // Timestamp will potentially always be different so remove it for the test delete fakeSignalSourceHit['@timestamp']; @@ -435,6 +438,7 @@ describe('buildBulkBody', () => { version: 1, updated_at: fakeSignalSourceHit.signal.rule?.updated_at, created_at: fakeSignalSourceHit.signal.rule?.created_at, + throttle: 'no_actions', lists: [ { field: 'source.ip', diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.ts index f485769dffabcb..75c4d75cedf1db 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.ts @@ -24,7 +24,7 @@ interface BuildBulkBodyParams { interval: string; enabled: boolean; tags: string[]; - throttle: string | null; + throttle: string; } // format search_after result for signals index. diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_rule.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_rule.test.ts index 37d7ed8a510822..e360ceaf02f4dc 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_rule.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_rule.test.ts @@ -38,7 +38,7 @@ describe('buildRule', () => { updatedBy: 'elastic', interval: 'some interval', tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); const expected: Partial = { actions: [], @@ -67,6 +67,7 @@ describe('buildRule', () => { updated_by: 'elastic', updated_at: rule.updated_at, created_at: rule.created_at, + throttle: 'no_actions', filters: [ { query: 'host.name: Rebecca', @@ -124,7 +125,7 @@ describe('buildRule', () => { updatedBy: 'elastic', interval: 'some interval', tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); const expected: Partial = { actions: [], @@ -154,6 +155,7 @@ describe('buildRule', () => { version: 1, updated_at: rule.updated_at, created_at: rule.created_at, + throttle: 'no_actions', lists: [ { field: 'source.ip', @@ -199,7 +201,7 @@ describe('buildRule', () => { updatedBy: 'elastic', interval: 'some interval', tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); const expected: Partial = { actions: [], @@ -229,80 +231,7 @@ describe('buildRule', () => { version: 1, updated_at: rule.updated_at, created_at: rule.created_at, - lists: [ - { - field: 'source.ip', - boolean_operator: 'and', - values: [ - { - name: '127.0.0.1', - type: 'value', - }, - ], - }, - { - field: 'host.name', - boolean_operator: 'and not', - values: [ - { - name: 'rock01', - type: 'value', - }, - { - name: 'mothra', - type: 'value', - }, - ], - }, - ], - }; - expect(rule).toEqual(expected); - }); - - test('it omits a null value such as if "throttle" is undefined if is present', () => { - const ruleParams = sampleRuleAlertParams(); - const rule = buildRule({ - actions: [], - ruleParams, - name: 'some-name', - id: sampleRuleGuid, - enabled: true, - createdAt: '2020-01-28T15:58:34.810Z', - updatedAt: '2020-01-28T15:59:14.004Z', - createdBy: 'elastic', - updatedBy: 'elastic', - interval: 'some interval', - tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, - }); - const expected: Partial = { - actions: [], - created_by: 'elastic', - description: 'Detecting root and admin users', - enabled: true, - false_positives: [], - from: 'now-6m', - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', - immutable: false, - index: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - interval: 'some interval', - language: 'kuery', - max_signals: 10000, - name: 'some-name', - output_index: '.siem-signals', - query: 'user.name: root or user.name: admin', - references: ['http://google.com'], - risk_score: 50, - rule_id: 'rule-1', - severity: 'high', - tags: ['some fake tag 1', 'some fake tag 2'], - to: 'now', - type: 'query', - note: '', - updated_by: 'elastic', - version: 1, - updated_at: rule.updated_at, - created_at: rule.created_at, + throttle: 'no_actions', lists: [ { field: 'source.ip', diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_rule.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_rule.ts index 1de80ca0b7eaf7..9c375d7d45d5e7 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_rule.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/build_rule.ts @@ -20,7 +20,7 @@ interface BuildRuleParams { updatedBy: string; interval: string; tags: string[]; - throttle: string | null; + throttle: string; } export const buildRule = ({ diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/bulk_create_ml_signals.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/bulk_create_ml_signals.ts index c1b61ef24462db..355041d9efbdb5 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/bulk_create_ml_signals.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/bulk_create_ml_signals.ts @@ -30,7 +30,7 @@ interface BulkCreateMlSignalsParams { interval: string; enabled: boolean; tags: string[]; - throttle: string | null; + throttle: string; } interface EcsAnomaly extends Anomaly { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/search_after_bulk_create.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/search_after_bulk_create.test.ts index b12c21b7a5b56b..06652028b37410 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/search_after_bulk_create.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/search_after_bulk_create.test.ts @@ -53,7 +53,7 @@ describe('searchAfterAndBulkCreate', () => { pageSize: 1, filter: undefined, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(mockService.callCluster).toHaveBeenCalledTimes(0); expect(success).toEqual(true); @@ -111,7 +111,7 @@ describe('searchAfterAndBulkCreate', () => { pageSize: 1, filter: undefined, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(mockService.callCluster).toHaveBeenCalledTimes(5); expect(success).toEqual(true); @@ -140,7 +140,7 @@ describe('searchAfterAndBulkCreate', () => { pageSize: 1, filter: undefined, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(mockLogger.error).toHaveBeenCalled(); expect(success).toEqual(false); @@ -176,7 +176,7 @@ describe('searchAfterAndBulkCreate', () => { pageSize: 1, filter: undefined, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(mockLogger.error).toHaveBeenCalled(); expect(success).toEqual(false); @@ -212,7 +212,7 @@ describe('searchAfterAndBulkCreate', () => { pageSize: 1, filter: undefined, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(success).toEqual(true); }); @@ -250,7 +250,7 @@ describe('searchAfterAndBulkCreate', () => { pageSize: 1, filter: undefined, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(success).toEqual(true); }); @@ -288,7 +288,7 @@ describe('searchAfterAndBulkCreate', () => { pageSize: 1, filter: undefined, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(success).toEqual(true); }); @@ -328,7 +328,7 @@ describe('searchAfterAndBulkCreate', () => { pageSize: 1, filter: undefined, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(success).toEqual(false); }); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/search_after_bulk_create.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/search_after_bulk_create.ts index ff263333fb798b..a5d5dd0a7b7109 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/search_after_bulk_create.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/search_after_bulk_create.ts @@ -31,7 +31,7 @@ interface SearchAfterAndBulkCreateParams { pageSize: number; filter: unknown; tags: string[]; - throttle: string | null; + throttle: string; } export interface SearchAfterAndBulkCreateReturnType { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts index de4ec68e8fc8a7..78b0cd84eeda32 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts @@ -7,11 +7,7 @@ import { performance } from 'perf_hooks'; import { Logger } from 'src/core/server'; -import { - SIGNALS_ID, - DEFAULT_SEARCH_AFTER_PAGE_SIZE, - NOTIFICATION_THROTTLE_RULE, -} from '../../../../common/constants'; +import { SIGNALS_ID, DEFAULT_SEARCH_AFTER_PAGE_SIZE } from '../../../../common/constants'; import { isJobStarted, isMlRule } from '../../../../common/detection_engine/ml_helpers'; import { SetupPlugins } from '../../../plugin'; @@ -244,7 +240,7 @@ export const signalRulesAlertType = ({ } if (result.success) { - if (meta?.throttle === NOTIFICATION_THROTTLE_RULE && actions.length) { + if (actions.length) { const notificationRuleParams = { ...ruleParams, name, @@ -255,7 +251,7 @@ export const signalRulesAlertType = ({ to: 'now', index: ruleParams.outputIndex, ruleId: ruleParams.ruleId!, - kibanaSiemAppUrl: meta.kibanaSiemAppUrl as string, + kibanaSiemAppUrl: meta?.kibanaSiemAppUrl as string, ruleAlertId: savedObject.id, callCluster: services.callCluster, }); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/single_bulk_create.test.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/single_bulk_create.test.ts index 93f9c24a057f20..45b5610e2d3c3f 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/single_bulk_create.test.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/single_bulk_create.test.ts @@ -160,7 +160,7 @@ describe('singleBulkCreate', () => { interval: '5m', enabled: true, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(success).toEqual(true); }); @@ -192,7 +192,7 @@ describe('singleBulkCreate', () => { interval: '5m', enabled: true, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(success).toEqual(true); }); @@ -216,7 +216,7 @@ describe('singleBulkCreate', () => { interval: '5m', enabled: true, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(success).toEqual(true); }); @@ -241,7 +241,7 @@ describe('singleBulkCreate', () => { interval: '5m', enabled: true, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(mockLogger.error).not.toHaveBeenCalled(); @@ -268,7 +268,7 @@ describe('singleBulkCreate', () => { interval: '5m', enabled: true, tags: ['some fake tag 1', 'some fake tag 2'], - throttle: null, + throttle: 'no_actions', }); expect(mockLogger.error).toHaveBeenCalled(); diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/single_bulk_create.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/single_bulk_create.ts index 0192ff76efa542..ffec40b839bf64 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/single_bulk_create.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/single_bulk_create.ts @@ -30,7 +30,7 @@ interface SingleBulkCreateParams { interval: string; enabled: boolean; tags: string[]; - throttle: string | null; + throttle: string; } /** diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/types.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/types.ts index 93c48ed38c7c48..543e8bf0619b00 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/types.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/signals/types.ts @@ -158,7 +158,7 @@ export interface AlertAttributes { schedule: { interval: string; }; - throttle: string | null; + throttle: string; } export interface RuleAlertAttributes extends AlertAttributes { diff --git a/x-pack/legacy/plugins/siem/server/lib/detection_engine/types.ts b/x-pack/legacy/plugins/siem/server/lib/detection_engine/types.ts index 08b3f864314f98..efa0a92cc573b5 100644 --- a/x-pack/legacy/plugins/siem/server/lib/detection_engine/types.ts +++ b/x-pack/legacy/plugins/siem/server/lib/detection_engine/types.ts @@ -60,7 +60,7 @@ export interface RuleAlertParams { threat: ThreatParams[] | undefined | null; type: RuleType; version: number; - throttle: string | null; + throttle: string; lists: ListsDefaultArraySchema | null | undefined; } @@ -118,7 +118,6 @@ export type OutputRuleAlertRest = RuleAlertParamsRest & { created_by: string | undefined | null; updated_by: string | undefined | null; immutable: boolean; - throttle: string | undefined | null; }; export type ImportRuleAlertRest = Omit & { diff --git a/x-pack/legacy/plugins/siem/server/plugin.ts b/x-pack/legacy/plugins/siem/server/plugin.ts index 2235207070fe39..13b58fa1d57eb3 100644 --- a/x-pack/legacy/plugins/siem/server/plugin.ts +++ b/x-pack/legacy/plugins/siem/server/plugin.ts @@ -36,6 +36,7 @@ import { pinnedEventSavedObjectType, timelineSavedObjectType, ruleStatusSavedObjectType, + ruleActionsSavedObjectType, } from './saved_objects'; import { SiemClientFactory } from './client'; import { hasListsFeature, listsEnvFeatureFlagName } from './lib/detection_engine/feature_flags'; @@ -121,6 +122,7 @@ export class Plugin { pinnedEventSavedObjectType, timelineSavedObjectType, ruleStatusSavedObjectType, + ruleActionsSavedObjectType, 'cases', 'cases-comments', 'cases-configure', @@ -151,6 +153,7 @@ export class Plugin { pinnedEventSavedObjectType, timelineSavedObjectType, ruleStatusSavedObjectType, + ruleActionsSavedObjectType, 'cases', 'cases-comments', 'cases-configure', diff --git a/x-pack/legacy/plugins/siem/server/saved_objects.ts b/x-pack/legacy/plugins/siem/server/saved_objects.ts index 76d8837883b8b7..7b097eefedb467 100644 --- a/x-pack/legacy/plugins/siem/server/saved_objects.ts +++ b/x-pack/legacy/plugins/siem/server/saved_objects.ts @@ -17,11 +17,16 @@ import { ruleStatusSavedObjectMappings, ruleStatusSavedObjectType, } from './lib/detection_engine/rules/saved_object_mappings'; +import { + ruleActionsSavedObjectMappings, + ruleActionsSavedObjectType, +} from './lib/detection_engine/rule_actions/saved_object_mappings'; export { noteSavedObjectType, pinnedEventSavedObjectType, ruleStatusSavedObjectType, + ruleActionsSavedObjectType, timelineSavedObjectType, }; export const savedObjectMappings = { @@ -29,4 +34,5 @@ export const savedObjectMappings = { ...noteSavedObjectMappings, ...pinnedEventSavedObjectMappings, ...ruleStatusSavedObjectMappings, + ...ruleActionsSavedObjectMappings, }; diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts index c92e351ed59180..f1404b79a07afd 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts @@ -151,6 +151,7 @@ export const getSimpleRuleOutput = (ruleId = 'rule-1'): Partial Date: Tue, 31 Mar 2020 13:12:44 +0200 Subject: [PATCH 033/118] [Logs UI] Log stream row rendering (#60773) --- .../log_entry_actions_column.tsx | 98 +++++++++++++++++++ .../log_entry_field_column.test.tsx | 6 -- .../log_entry_field_column.tsx | 14 +-- .../log_text_stream/log_entry_icon_column.tsx | 67 ------------- .../log_entry_message_column.tsx | 15 +-- .../logging/log_text_stream/log_entry_row.tsx | 40 ++++---- .../log_entry_timestamp_column.tsx | 34 +------ .../logging/log_text_stream/text_styles.tsx | 10 +- .../category_example_message.tsx | 11 +-- .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 11 files changed, 131 insertions(+), 166 deletions(-) create mode 100644 x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_actions_column.tsx delete mode 100644 x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_icon_column.tsx diff --git a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_actions_column.tsx b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_actions_column.tsx new file mode 100644 index 00000000000000..e02346c4e758a8 --- /dev/null +++ b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_actions_column.tsx @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import React, { useCallback } from 'react'; +import { EuiButtonIcon } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n/react'; + +import { LogEntryColumnContent } from './log_entry_column'; +import { + euiStyled, + ActionMenu, + Section, + SectionTitle, + SectionLinks, + SectionLink, +} from '../../../../../observability/public'; + +interface LogEntryActionsColumnProps { + isHovered: boolean; + isMenuOpen: boolean; + onOpenMenu: () => void; + onCloseMenu: () => void; + onViewDetails: () => void; +} + +const MENU_LABEL = i18n.translate('xpack.infra.logEntryItemView.logEntryActionsMenuToolTip', { + defaultMessage: 'View Details', +}); + +const LOG_DETAILS_LABEL = i18n.translate('xpack.infra.logs.logEntryActionsDetailsButton', { + defaultMessage: 'View actions for line', +}); + +export const LogEntryActionsColumn: React.FC = ({ + isHovered, + isMenuOpen, + onOpenMenu, + onCloseMenu, + onViewDetails, +}) => { + const handleClickViewDetails = useCallback(() => { + onCloseMenu(); + onViewDetails(); + }, [onCloseMenu, onViewDetails]); + + const button = ( + + + + ); + + return ( + + {isHovered || isMenuOpen ? ( + + +

    + + + + + + +
    + + + ) : null} + + ); +}; + +const ActionsColumnContent = euiStyled(LogEntryColumnContent)` + overflow: hidden; + user-select: none; +`; + +const ButtonWrapper = euiStyled.div` + background: ${props => props.theme.eui.euiColorPrimary}; + border-radius: 50%; +`; + +// this prevents the button from influencing the line height +const AbsoluteWrapper = euiStyled.div` + overflow: hidden; + position: absolute; +`; diff --git a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_field_column.test.tsx b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_field_column.test.tsx index 5fc4606a774d57..d6068b6e60992a 100644 --- a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_field_column.test.tsx +++ b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_field_column.test.tsx @@ -25,8 +25,6 @@ describe('LogEntryFieldColumn', () => { columnValue={column} highlights={[]} isActiveHighlight={false} - isHighlighted={false} - isHovered={false} wrapMode="pre-wrapped" />, { wrappingComponent: EuiThemeProvider } as any // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/36075 @@ -58,8 +56,6 @@ describe('LogEntryFieldColumn', () => { columnValue={column} highlights={[]} isActiveHighlight={false} - isHighlighted={false} - isHovered={false} wrapMode="pre-wrapped" />, { wrappingComponent: EuiThemeProvider } as any // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/36075 @@ -81,8 +77,6 @@ describe('LogEntryFieldColumn', () => { columnValue={column} highlights={[]} isActiveHighlight={false} - isHighlighted={false} - isHovered={false} wrapMode="pre-wrapped" />, { wrappingComponent: EuiThemeProvider } as any // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/36075 diff --git a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_field_column.tsx b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_field_column.tsx index 202108cda5ac07..c73c9674f96835 100644 --- a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_field_column.tsx +++ b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_field_column.tsx @@ -13,7 +13,6 @@ import { ActiveHighlightMarker, highlightFieldValue, HighlightMarker } from './h import { LogEntryColumnContent } from './log_entry_column'; import { LogColumn } from '../../../../common/http_api'; import { - hoveredContentStyle, longWrappedContentStyle, preWrappedContentStyle, unwrappedContentStyle, @@ -24,8 +23,6 @@ interface LogEntryFieldColumnProps { columnValue: LogColumn; highlights: LogColumn[]; isActiveHighlight: boolean; - isHighlighted: boolean; - isHovered: boolean; wrapMode: WrapMode; } @@ -33,8 +30,6 @@ export const LogEntryFieldColumn: React.FunctionComponent { const value = useMemo(() => { @@ -63,11 +58,7 @@ export const LogEntryFieldColumn: React.FunctionComponent - {formattedValue} - - ); + return {formattedValue}; }; const CommaSeparatedLi = euiStyled.li` @@ -81,15 +72,12 @@ const CommaSeparatedLi = euiStyled.li` `; interface LogEntryColumnContentProps { - isHighlighted: boolean; - isHovered: boolean; wrapMode: WrapMode; } const FieldColumnContent = euiStyled(LogEntryColumnContent)` text-overflow: ellipsis; - ${props => (props.isHovered || props.isHighlighted ? hoveredContentStyle : '')}; ${props => props.wrapMode === 'long' ? longWrappedContentStyle diff --git a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_icon_column.tsx b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_icon_column.tsx deleted file mode 100644 index a4099cdf5a1fbb..00000000000000 --- a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_icon_column.tsx +++ /dev/null @@ -1,67 +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; - * you may not use this file except in compliance with the Elastic License. - */ - -import { EuiButtonIcon } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import React from 'react'; - -import { LogEntryColumnContent } from './log_entry_column'; -import { hoveredContentStyle } from './text_styles'; -import { euiStyled } from '../../../../../observability/public'; - -interface LogEntryIconColumnProps { - isHighlighted: boolean; - isHovered: boolean; -} - -export const LogEntryIconColumn: React.FunctionComponent = ({ - children, - isHighlighted, - isHovered, -}) => { - return ( - - {children} - - ); -}; - -export const LogEntryDetailsIconColumn: React.FunctionComponent void; -}> = ({ isHighlighted, isHovered, openFlyout }) => { - const label = i18n.translate('xpack.infra.logEntryItemView.viewDetailsToolTip', { - defaultMessage: 'View Details', - }); - - return ( - - {isHovered ? ( - - - - ) : null} - - ); -}; - -interface IconColumnContentProps { - isHighlighted: boolean; - isHovered: boolean; -} - -const IconColumnContent = euiStyled(LogEntryColumnContent)` - background-color: ${props => props.theme.eui.euiColorEmptyShade}; - overflow: hidden; - user-select: none; - - ${props => (props.isHovered || props.isHighlighted ? hoveredContentStyle : '')}; -`; - -// this prevents the button from influencing the line height -const AbsoluteIconButtonWrapper = euiStyled.div` - overflow: hidden; - position: absolute; -`; diff --git a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_message_column.tsx b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_message_column.tsx index 5ad7cba6427d16..0fe0cbdfac5931 100644 --- a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_message_column.tsx +++ b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_message_column.tsx @@ -18,7 +18,6 @@ import { import { ActiveHighlightMarker, highlightFieldValue, HighlightMarker } from './highlighting'; import { LogEntryColumnContent } from './log_entry_column'; import { - hoveredContentStyle, longWrappedContentStyle, preWrappedContentStyle, unwrappedContentStyle, @@ -30,13 +29,11 @@ interface LogEntryMessageColumnProps { columnValue: LogColumn; highlights: LogColumn[]; isActiveHighlight: boolean; - isHighlighted: boolean; - isHovered: boolean; wrapMode: WrapMode; } export const LogEntryMessageColumn = memo( - ({ columnValue, highlights, isActiveHighlight, isHighlighted, isHovered, wrapMode }) => { + ({ columnValue, highlights, isActiveHighlight, wrapMode }) => { const message = useMemo( () => isMessageColumn(columnValue) @@ -45,24 +42,16 @@ export const LogEntryMessageColumn = memo( [columnValue, highlights, isActiveHighlight] ); - return ( - - {message} - - ); + return {message}; } ); interface MessageColumnContentProps { - isHovered: boolean; - isHighlighted: boolean; wrapMode: WrapMode; } const MessageColumnContent = euiStyled(LogEntryColumnContent)` text-overflow: ellipsis; - - ${props => (props.isHovered || props.isHighlighted ? hoveredContentStyle : '')}; ${props => props.wrapMode === 'long' ? longWrappedContentStyle diff --git a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_row.tsx b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_row.tsx index ce264245d385be..7d7df796d13adb 100644 --- a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_row.tsx +++ b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_row.tsx @@ -17,10 +17,10 @@ import { import { TextScale } from '../../../../common/log_text_scale'; import { LogEntryColumn, LogEntryColumnWidths, iconColumnId } from './log_entry_column'; import { LogEntryFieldColumn } from './log_entry_field_column'; -import { LogEntryDetailsIconColumn } from './log_entry_icon_column'; +import { LogEntryActionsColumn } from './log_entry_actions_column'; import { LogEntryMessageColumn } from './log_entry_message_column'; import { LogEntryTimestampColumn } from './log_entry_timestamp_column'; -import { monospaceTextStyle } from './text_styles'; +import { monospaceTextStyle, hoveredContentStyle, highlightedContentStyle } from './text_styles'; import { LogEntry, LogColumn } from '../../../../common/http_api'; interface LogEntryRowProps { @@ -50,14 +50,13 @@ export const LogEntryRow = memo( wrap, }: LogEntryRowProps) => { const [isHovered, setIsHovered] = useState(false); + const [isMenuOpen, setIsMenuOpen] = useState(false); - const setItemIsHovered = useCallback(() => { - setIsHovered(true); - }, []); + const openMenu = useCallback(() => setIsMenuOpen(true), []); + const closeMenu = useCallback(() => setIsMenuOpen(false), []); - const setItemIsNotHovered = useCallback(() => { - setIsHovered(false); - }, []); + const setItemIsHovered = useCallback(() => setIsHovered(true), []); + const setItemIsNotHovered = useCallback(() => setIsHovered(false), []); const openFlyout = useCallback(() => openFlyoutWithItem?.(logEntry.id), [ openFlyoutWithItem, @@ -105,6 +104,7 @@ export const LogEntryRow = memo( } onMouseEnter={setItemIsHovered} onMouseLeave={setItemIsNotHovered} + isHighlighted={isHighlighted} scale={scale} > {columnConfigurations.map(columnConfiguration => { @@ -119,11 +119,7 @@ export const LogEntryRow = memo( {...columnWidth} > {isTimestampColumn(column) ? ( - + ) : null} ); @@ -141,9 +137,7 @@ export const LogEntryRow = memo( ) : null} @@ -164,8 +158,6 @@ export const LogEntryRow = memo( columnValue={column} highlights={highlightsByColumnId[column.columnId] || []} isActiveHighlight={isActiveHighlight} - isHighlighted={isHighlighted} - isHovered={isHovered} wrapMode={wrap ? 'long' : 'pre-wrapped'} /> ) : null} @@ -177,10 +169,12 @@ export const LogEntryRow = memo( key="logColumn iconLogColumn iconLogColumn:details" {...columnWidths[iconColumnId]} > - @@ -190,6 +184,7 @@ export const LogEntryRow = memo( interface LogEntryRowWrapperProps { scale: TextScale; + isHighlighted?: boolean; } export const LogEntryRowWrapper = euiStyled.div.attrs(() => ({ @@ -204,4 +199,9 @@ export const LogEntryRowWrapper = euiStyled.div.attrs(() => ({ overflow: hidden; ${props => monospaceTextStyle(props.scale)}; + ${props => (props.isHighlighted ? highlightedContentStyle : '')} + + &:hover { + ${hoveredContentStyle} + } `; diff --git a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_timestamp_column.tsx b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_timestamp_column.tsx index f3ea9c81108c61..cf9c75a361b55a 100644 --- a/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_timestamp_column.tsx +++ b/x-pack/plugins/infra/public/components/logging/log_text_stream/log_entry_timestamp_column.tsx @@ -4,54 +4,28 @@ * you may not use this file except in compliance with the Elastic License. */ -import { darken, transparentize } from 'polished'; import React, { memo } from 'react'; -import { euiStyled, css } from '../../../../../observability/public'; +import { euiStyled } from '../../../../../observability/public'; import { TimeFormat, useFormattedTime } from '../../formatted_time'; import { LogEntryColumnContent } from './log_entry_column'; interface LogEntryTimestampColumnProps { format?: TimeFormat; - isHighlighted: boolean; - isHovered: boolean; time: number; } export const LogEntryTimestampColumn = memo( - ({ format = 'time', isHighlighted, isHovered, time }) => { + ({ format = 'time', time }) => { const formattedTime = useFormattedTime(time, { format }); - return ( - - {formattedTime} - - ); + return {formattedTime}; } ); -const hoveredContentStyle = css` - background-color: ${props => - props.theme.darkMode - ? transparentize(0.9, darken(0.05, props.theme.eui.euiColorHighlight)) - : darken(0.05, props.theme.eui.euiColorHighlight)}; - border-color: ${props => - props.theme.darkMode - ? transparentize(0.7, darken(0.2, props.theme.eui.euiColorHighlight)) - : darken(0.2, props.theme.eui.euiColorHighlight)}; - color: ${props => props.theme.eui.euiColorFullShade}; -`; - -interface TimestampColumnContentProps { - isHovered: boolean; - isHighlighted: boolean; -} - -const TimestampColumnContent = euiStyled(LogEntryColumnContent)` +const TimestampColumnContent = euiStyled(LogEntryColumnContent)` color: ${props => props.theme.eui.euiColorDarkShade}; overflow: hidden; text-overflow: clip; white-space: pre; - - ${props => (props.isHovered || props.isHighlighted ? hoveredContentStyle : '')}; `; diff --git a/x-pack/plugins/infra/public/components/logging/log_text_stream/text_styles.tsx b/x-pack/plugins/infra/public/components/logging/log_text_stream/text_styles.tsx index 434258343eefbc..69a6abbca4b347 100644 --- a/x-pack/plugins/infra/public/components/logging/log_text_stream/text_styles.tsx +++ b/x-pack/plugins/infra/public/components/logging/log_text_stream/text_styles.tsx @@ -4,7 +4,6 @@ * you may not use this file except in compliance with the Elastic License. */ -import { darken, transparentize } from 'polished'; import React, { useMemo, useState, useCallback } from 'react'; import { euiStyled, css } from '../../../../../observability/public'; @@ -30,10 +29,11 @@ export const monospaceTextStyle = (scale: TextScale) => css` `; export const hoveredContentStyle = css` - background-color: ${props => - props.theme.darkMode - ? transparentize(0.9, darken(0.05, props.theme.eui.euiColorHighlight)) - : darken(0.05, props.theme.eui.euiColorHighlight)}; + background-color: ${props => props.theme.eui.euiFocusBackgroundColor}; +`; + +export const highlightedContentStyle = css` + background-color: ${props => props.theme.eui.euiFocusBackgroundColor}; `; export const longWrappedContentStyle = css` diff --git a/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/category_example_message.tsx b/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/category_example_message.tsx index 023082154565cf..3855706bb6d47e 100644 --- a/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/category_example_message.tsx +++ b/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/category_example_message.tsx @@ -34,12 +34,7 @@ export const CategoryExampleMessage: React.FunctionComponent<{ return ( - + @@ -63,8 +56,6 @@ export const CategoryExampleMessage: React.FunctionComponent<{ highlights: [], }} highlights={noHighlights} - isHovered={false} - isHighlighted={false} isActiveHighlight={false} wrapMode="none" /> diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 1f7a1294fe7867..ccfb2707a51b95 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -6303,7 +6303,6 @@ "xpack.infra.logEntryActionsMenu.apmActionLabel": "APMで表示", "xpack.infra.logEntryActionsMenu.buttonLabel": "アクション", "xpack.infra.logEntryActionsMenu.uptimeActionLabel": "監視ステータスを表示", - "xpack.infra.logEntryItemView.viewDetailsToolTip": "詳細を表示", "xpack.infra.logFlyout.fieldColumnLabel": "フィールド", "xpack.infra.logFlyout.filterAriaLabel": "フィルター", "xpack.infra.logFlyout.flyoutTitle": "ログイベントドキュメントの詳細", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index f93216662ca7c1..06eb805d5af0ec 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -6303,7 +6303,6 @@ "xpack.infra.logEntryActionsMenu.apmActionLabel": "在 APM 中查看", "xpack.infra.logEntryActionsMenu.buttonLabel": "操作", "xpack.infra.logEntryActionsMenu.uptimeActionLabel": "查看监测状态", - "xpack.infra.logEntryItemView.viewDetailsToolTip": "查看详情", "xpack.infra.logFlyout.fieldColumnLabel": "字段", "xpack.infra.logFlyout.filterAriaLabel": "筛选", "xpack.infra.logFlyout.flyoutTitle": "日志事件文档详情", From 08c94bf58b47579f8268e21bc085cf29e0791902 Mon Sep 17 00:00:00 2001 From: Dario Gieselaar Date: Tue, 31 Mar 2020 14:25:34 +0200 Subject: [PATCH 034/118] APM] Set ignore_above to 1024 for telemetry saved object (#61732) Closes #61546. Co-authored-by: Elastic Machine --- x-pack/legacy/plugins/apm/mappings.json | 156 ++++++++++++------------ 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/x-pack/legacy/plugins/apm/mappings.json b/x-pack/legacy/plugins/apm/mappings.json index 5d14ae03f9a33c..1e906dd2a59670 100644 --- a/x-pack/legacy/plugins/apm/mappings.json +++ b/x-pack/legacy/plugins/apm/mappings.json @@ -9,7 +9,7 @@ "properties": { "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -19,15 +19,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -35,7 +35,7 @@ "properties": { "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -43,15 +43,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } } @@ -65,7 +65,7 @@ "properties": { "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -75,15 +75,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -91,15 +91,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -107,15 +107,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } } @@ -129,7 +129,7 @@ "properties": { "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -139,15 +139,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -155,15 +155,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -171,15 +171,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } } @@ -193,7 +193,7 @@ "properties": { "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -203,15 +203,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -219,15 +219,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -235,15 +235,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } } @@ -257,7 +257,7 @@ "properties": { "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -267,15 +267,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -283,15 +283,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -299,15 +299,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } } @@ -321,7 +321,7 @@ "properties": { "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -331,15 +331,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -347,15 +347,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -363,15 +363,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } } @@ -385,7 +385,7 @@ "properties": { "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -395,15 +395,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -411,15 +411,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -427,15 +427,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } } @@ -449,7 +449,7 @@ "properties": { "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -459,15 +459,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -475,15 +475,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } }, @@ -491,15 +491,15 @@ "properties": { "composite": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "name": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 }, "version": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 1024 } } } From 241a7a620a2a752c26980953dbbf1e1913405dab Mon Sep 17 00:00:00 2001 From: Sandra Gonzales Date: Tue, 31 Mar 2020 08:43:24 -0400 Subject: [PATCH 035/118] [EPM] update epm filepath route (#61910) * update epm filepath route * add CHANGELOG * add title * fix path in changelog * fix typo --- x-pack/plugins/ingest_manager/CHANGELOG.md | 7 +++++++ .../ingest_manager/common/constants/routes.ts | 3 ++- .../ingest_manager/server/routes/epm/handlers.ts | 3 +-- .../ingest_manager/server/types/rest_spec/epm.ts | 3 ++- x-pack/test/epm_api_integration/apis/file.ts | 16 ++++++++-------- 5 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 x-pack/plugins/ingest_manager/CHANGELOG.md diff --git a/x-pack/plugins/ingest_manager/CHANGELOG.md b/x-pack/plugins/ingest_manager/CHANGELOG.md new file mode 100644 index 00000000000000..b336c65b7c4b9a --- /dev/null +++ b/x-pack/plugins/ingest_manager/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changelog +Significant or breaking changes to the Ingest Manager API will be documented in this file + +## 2020-03-30 + +### Breaking Changes +* Change EPM file path route from epm/packages/{pkgkey}/{filePath*} to epm/packages/{packageName}/{packageVersion}/{filePath*} [#61910](https://github.com/elastic/kibana/pull/61910) \ No newline at end of file diff --git a/x-pack/plugins/ingest_manager/common/constants/routes.ts b/x-pack/plugins/ingest_manager/common/constants/routes.ts index 5bf7c910168c0a..a31d38a723c2c0 100644 --- a/x-pack/plugins/ingest_manager/common/constants/routes.ts +++ b/x-pack/plugins/ingest_manager/common/constants/routes.ts @@ -13,12 +13,13 @@ export const FLEET_API_ROOT = `${API_ROOT}/fleet`; // EPM API routes const EPM_PACKAGES_MANY = `${EPM_API_ROOT}/packages`; const EPM_PACKAGES_ONE = `${EPM_PACKAGES_MANY}/{pkgkey}`; +const EPM_PACKAGES_FILE = `${EPM_PACKAGES_MANY}/{pkgName}/{pkgVersion}`; export const EPM_API_ROUTES = { LIST_PATTERN: EPM_PACKAGES_MANY, INFO_PATTERN: EPM_PACKAGES_ONE, INSTALL_PATTERN: EPM_PACKAGES_ONE, DELETE_PATTERN: EPM_PACKAGES_ONE, - FILEPATH_PATTERN: `${EPM_PACKAGES_ONE}/{filePath*}`, + FILEPATH_PATTERN: `${EPM_PACKAGES_FILE}/{filePath*}`, CATEGORIES_PATTERN: `${EPM_API_ROOT}/categories`, }; diff --git a/x-pack/plugins/ingest_manager/server/routes/epm/handlers.ts b/x-pack/plugins/ingest_manager/server/routes/epm/handlers.ts index 727d26b5868dea..48f37a4d65ac62 100644 --- a/x-pack/plugins/ingest_manager/server/routes/epm/handlers.ts +++ b/x-pack/plugins/ingest_manager/server/routes/epm/handlers.ts @@ -75,8 +75,7 @@ export const getFileHandler: RequestHandler { try { - const { pkgkey, filePath } = request.params; - const [pkgName, pkgVersion] = pkgkey.split('-'); + const { pkgName, pkgVersion, filePath } = request.params; const registryResponse = await getFile(`/package/${pkgName}/${pkgVersion}/${filePath}`); const contentType = registryResponse.headers.get('Content-Type'); const customResponseObj: CustomHttpResponseOptions = { diff --git a/x-pack/plugins/ingest_manager/server/types/rest_spec/epm.ts b/x-pack/plugins/ingest_manager/server/types/rest_spec/epm.ts index 2ca83276b02289..3ed6ee553a5076 100644 --- a/x-pack/plugins/ingest_manager/server/types/rest_spec/epm.ts +++ b/x-pack/plugins/ingest_manager/server/types/rest_spec/epm.ts @@ -13,7 +13,8 @@ export const GetPackagesRequestSchema = { export const GetFileRequestSchema = { params: schema.object({ - pkgkey: schema.string(), + pkgName: schema.string(), + pkgVersion: schema.string(), filePath: schema.string(), }), }; diff --git a/x-pack/test/epm_api_integration/apis/file.ts b/x-pack/test/epm_api_integration/apis/file.ts index c67f472e8fb78f..11ab906aa0ea4c 100644 --- a/x-pack/test/epm_api_integration/apis/file.ts +++ b/x-pack/test/epm_api_integration/apis/file.ts @@ -28,7 +28,7 @@ export default function({ getService }: FtrProviderContext) { const supertest = getService('supertest'); await supertest .get( - '/api/ingest_manager/epm/packages/auditd-2.0.4/img/screenshots/auditbeat-file-integrity-dashboard.png' + '/api/ingest_manager/epm/packages/auditd/2.0.4/img/screenshots/auditbeat-file-integrity-dashboard.png' ) .set('kbn-xsrf', 'xxx') .expect('Content-Type', 'image/png') @@ -46,7 +46,7 @@ export default function({ getService }: FtrProviderContext) { const supertest = getService('supertest'); await supertest - .get('/api/ingest_manager/epm/packages/auditd-2.0.4/img/icon.svg') + .get('/api/ingest_manager/epm/packages/auditd/2.0.4/img/icon.svg') .set('kbn-xsrf', 'xxx') .expect('Content-Type', 'image/svg'); }); @@ -60,7 +60,7 @@ export default function({ getService }: FtrProviderContext) { const supertest = getService('supertest'); await supertest .get( - '/api/ingest_manager/epm/packages/auditd-2.0.4/auditbeat/rules/sample-rules-linux-32bit.conf' + '/api/ingest_manager/epm/packages/auditd/2.0.4/auditbeat/rules/sample-rules-linux-32bit.conf' ) .set('kbn-xsrf', 'xxx') .expect('Content-Type', 'application/json; charset=utf-8') @@ -78,7 +78,7 @@ export default function({ getService }: FtrProviderContext) { const supertest = getService('supertest'); await supertest - .get('/api/ingest_manager/epm/packages/auditd-2.0.4/auditbeat/config/config.yml') + .get('/api/ingest_manager/epm/packages/auditd/2.0.4/auditbeat/config/config.yml') .set('kbn-xsrf', 'xxx') .expect('Content-Type', 'text/yaml; charset=UTF-8') .expect(200); @@ -94,7 +94,7 @@ export default function({ getService }: FtrProviderContext) { const supertest = getService('supertest'); await supertest .get( - '/api/ingest_manager/epm/packages/auditd-2.0.4/kibana/visualization/b21e0c70-c252-11e7-8692-232bd1143e8a-ecs.json' + '/api/ingest_manager/epm/packages/auditd/2.0.4/kibana/visualization/b21e0c70-c252-11e7-8692-232bd1143e8a-ecs.json' ) .set('kbn-xsrf', 'xxx') .expect('Content-Type', 'application/json; charset=utf-8') @@ -111,7 +111,7 @@ export default function({ getService }: FtrProviderContext) { const supertest = getService('supertest'); await supertest .get( - '/api/ingest_manager/epm/packages/auditd-2.0.4/kibana/dashboard/7de391b0-c1ca-11e7-8995-936807a28b16-ecs.json' + '/api/ingest_manager/epm/packages/auditd/2.0.4/kibana/dashboard/7de391b0-c1ca-11e7-8995-936807a28b16-ecs.json' ) .set('kbn-xsrf', 'xxx') .expect('Content-Type', 'application/json; charset=utf-8') @@ -126,7 +126,7 @@ export default function({ getService }: FtrProviderContext) { const supertest = getService('supertest'); await supertest - .get('/api/ingest_manager/epm/packages/auditd-2.0.4/kibana/index-pattern/auditbeat-*.json') + .get('/api/ingest_manager/epm/packages/auditd/2.0.4/kibana/index-pattern/auditbeat-*.json') .set('kbn-xsrf', 'xxx') .expect('Content-Type', 'application/json; charset=utf-8') .expect(200); @@ -141,7 +141,7 @@ export default function({ getService }: FtrProviderContext) { const supertest = getService('supertest'); await supertest .get( - '/api/ingest_manager/epm/packages/auditd-2.0.4/kibana/search/0f10c430-c1c3-11e7-8995-936807a28b16-ecs.json' + '/api/ingest_manager/epm/packages/auditd/2.0.4/kibana/search/0f10c430-c1c3-11e7-8995-936807a28b16-ecs.json' ) .set('kbn-xsrf', 'xxx') .expect('Content-Type', 'application/json; charset=utf-8') From f1866b331e00ebfae83ec8d02e0dfa1ab4d43ea9 Mon Sep 17 00:00:00 2001 From: Melissa Alvarez Date: Tue, 31 Mar 2020 09:14:56 -0400 Subject: [PATCH 036/118] [ML] Settings: Increase number of items that can be paged in calendars and filters lists (#61842) * set size limit to 1000 for calendars/filters get routes * update comment * update default size comment --- x-pack/plugins/ml/server/client/elasticsearch_ml.ts | 8 ++++---- x-pack/plugins/ml/server/routes/calendars.ts | 1 + x-pack/plugins/ml/server/routes/filters.ts | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/ml/server/client/elasticsearch_ml.ts b/x-pack/plugins/ml/server/client/elasticsearch_ml.ts index ed4dc64cde3bdf..caedaed92e5b1b 100644 --- a/x-pack/plugins/ml/server/client/elasticsearch_ml.ts +++ b/x-pack/plugins/ml/server/client/elasticsearch_ml.ts @@ -514,7 +514,7 @@ export const elasticsearchJsPlugin = (Client: any, config: any, components: any) needBody: true, method: 'POST', }); - + // Currently the endpoint uses a default size of 100 unless a size is supplied. So until paging is supported in the UI, explicitly supply a size of 1000 ml.calendars = ca({ urls: [ { @@ -526,7 +526,7 @@ export const elasticsearchJsPlugin = (Client: any, config: any, components: any) }, }, { - fmt: '/_ml/calendars/', + fmt: '/_ml/calendars?size=1000', }, ], method: 'GET', @@ -671,7 +671,7 @@ export const elasticsearchJsPlugin = (Client: any, config: any, components: any) }, method: 'DELETE', }); - + // Currently the endpoint uses a default size of 100 unless a size is supplied. So until paging is supported in the UI, explicitly supply a size of 1000 ml.filters = ca({ urls: [ { @@ -683,7 +683,7 @@ export const elasticsearchJsPlugin = (Client: any, config: any, components: any) }, }, { - fmt: '/_ml/filters/', + fmt: '/_ml/filters?size=1000', }, ], method: 'GET', diff --git a/x-pack/plugins/ml/server/routes/calendars.ts b/x-pack/plugins/ml/server/routes/calendars.ts index 63984728a18dd0..34950c6ed79f77 100644 --- a/x-pack/plugins/ml/server/routes/calendars.ts +++ b/x-pack/plugins/ml/server/routes/calendars.ts @@ -42,6 +42,7 @@ function getCalendarsByIds(context: RequestHandlerContext, calendarIds: string) } export function calendars({ router, mlLicense }: RouteInitialization) { + // Gets calendars - size limit has been explicitly set to 1000 router.get( { path: '/api/ml/calendars', diff --git a/x-pack/plugins/ml/server/routes/filters.ts b/x-pack/plugins/ml/server/routes/filters.ts index 2f823d79a8e53f..e827ed96b12af1 100644 --- a/x-pack/plugins/ml/server/routes/filters.ts +++ b/x-pack/plugins/ml/server/routes/filters.ts @@ -47,7 +47,7 @@ export function filtersRoutes({ router, mlLicense }: RouteInitialization) { /** * @apiGroup Filters * - * @api {get} /api/ml/filters Gets filters + * @api {get} /api/ml/filters Gets filters - size limit has been explicitly set to 1000 * @apiName GetFilters * @apiDescription Retrieves the list of filters which are used for custom rules in anomaly detection. * From 810cbd2820c25ba715c3b10aa9c4117a65f74caa Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Tue, 31 Mar 2020 16:20:37 +0300 Subject: [PATCH 037/118] [SIEM][CASE] Fix aria-labels and translations (#61670) * Fix aria-labels and translations * Fix conflicts and bugs --- .../public/components/filter_popover/index.tsx | 1 + .../link_icon/__snapshots__/index.test.tsx.snap | 1 + .../siem/public/components/link_icon/index.tsx | 14 +++++++++++++- .../siem/public/components/links/index.tsx | 13 ++++++++----- .../siem/public/components/links/translations.ts | 15 +++++++++++++++ .../components/utility_bar/utility_bar_action.tsx | 1 + .../pages/case/components/all_cases/actions.tsx | 4 ++-- .../pages/case/components/all_cases/columns.tsx | 5 ++++- .../case/components/all_cases/translations.ts | 6 ++++++ .../case/components/configure_cases/button.tsx | 1 + .../case/components/configure_cases/index.tsx | 4 ++-- .../case/components/property_actions/index.tsx | 5 ++++- .../components/property_actions/translations.ts | 11 +++++++++++ .../pages/case/components/tag_list/index.tsx | 4 ++-- .../case/components/tag_list/translations.ts | 13 +++++++++++++ .../pages/case/components/user_list/index.tsx | 11 ++++++++--- .../case/components/user_list/translations.ts | 13 +++++++++++++ 17 files changed, 105 insertions(+), 17 deletions(-) create mode 100644 x-pack/legacy/plugins/siem/public/components/links/translations.ts create mode 100644 x-pack/legacy/plugins/siem/public/pages/case/components/property_actions/translations.ts create mode 100644 x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/translations.ts create mode 100644 x-pack/legacy/plugins/siem/public/pages/case/components/user_list/translations.ts diff --git a/x-pack/legacy/plugins/siem/public/components/filter_popover/index.tsx b/x-pack/legacy/plugins/siem/public/components/filter_popover/index.tsx index 0c4497f7630c9e..3c01ec18a879f7 100644 --- a/x-pack/legacy/plugins/siem/public/components/filter_popover/index.tsx +++ b/x-pack/legacy/plugins/siem/public/components/filter_popover/index.tsx @@ -76,6 +76,7 @@ export const FilterPopoverComponent = ({ numFilters={options.length} hasActiveFilters={selectedOptions.length > 0} numActiveFilters={selectedOptions.length} + aria-label={buttonLabel} > {buttonLabel} diff --git a/x-pack/legacy/plugins/siem/public/components/link_icon/__snapshots__/index.test.tsx.snap b/x-pack/legacy/plugins/siem/public/components/link_icon/__snapshots__/index.test.tsx.snap index c5086c8cde285b..986e9161c519d0 100644 --- a/x-pack/legacy/plugins/siem/public/components/link_icon/__snapshots__/index.test.tsx.snap +++ b/x-pack/legacy/plugins/siem/public/components/link_icon/__snapshots__/index.test.tsx.snap @@ -2,6 +2,7 @@ exports[`LinkIcon it renders 1`] = ` {children})< @@ -52,7 +53,17 @@ export interface LinkIconProps extends LinkProps { } export const LinkIcon = React.memo( - ({ children, color, disabled, href, iconSide = 'left', iconSize = 's', iconType, onClick }) => ( + ({ + children, + color, + disabled, + href, + iconSide = 'left', + iconSize = 's', + iconType, + onClick, + ariaLabel, + }) => ( ( href={href} iconSide={iconSide} onClick={onClick} + aria-label={ariaLabel ?? children} > {children} diff --git a/x-pack/legacy/plugins/siem/public/components/links/index.tsx b/x-pack/legacy/plugins/siem/public/components/links/index.tsx index 14dc5e7999a653..62a67af6e08b11 100644 --- a/x-pack/legacy/plugins/siem/public/components/links/index.tsx +++ b/x-pack/legacy/plugins/siem/public/components/links/index.tsx @@ -23,12 +23,13 @@ import { import { FlowTarget, FlowTargetSourceDest } from '../../graphql/types'; import { useUiSetting$ } from '../../lib/kibana'; import { IP_REPUTATION_LINKS_SETTING } from '../../../common/constants'; -import * as i18n from '../page/network/ip_overview/translations'; import { isUrlInvalid } from '../../pages/detection_engine/rules/components/step_about_rule/helpers'; import { ExternalLinkIcon } from '../external_link_icon'; import { navTabs } from '../../pages/home/home_navigations'; import { useGetUrlSearch } from '../navigation/use_get_url_search'; +import * as i18n from './translations'; + export const DEFAULT_NUMBER_OF_LINK = 5; // Internal Links @@ -88,16 +89,18 @@ const IPDetailsLinkComponent: React.FC<{ export const IPDetailsLink = React.memo(IPDetailsLinkComponent); -const CaseDetailsLinkComponent: React.FC<{ children?: React.ReactNode; detailName: string }> = ({ - children, - detailName, -}) => { +const CaseDetailsLinkComponent: React.FC<{ + children?: React.ReactNode; + detailName: string; + title?: string; +}> = ({ children, detailName, title }) => { const search = useGetUrlSearch(navTabs.case); return ( {children ? children : detailName} diff --git a/x-pack/legacy/plugins/siem/public/components/links/translations.ts b/x-pack/legacy/plugins/siem/public/components/links/translations.ts new file mode 100644 index 00000000000000..bed867cd5bf504 --- /dev/null +++ b/x-pack/legacy/plugins/siem/public/components/links/translations.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +export * from '../page/network/ip_overview/translations'; + +export const CASE_DETAILS_LINK_ARIA = (detailName: string) => + i18n.translate('xpack.siem.case.caseTable.caseDetailsLinkAria', { + values: { detailName }, + defaultMessage: 'click to visit case with title {detailName}', + }); diff --git a/x-pack/legacy/plugins/siem/public/components/utility_bar/utility_bar_action.tsx b/x-pack/legacy/plugins/siem/public/components/utility_bar/utility_bar_action.tsx index 19e884e326390c..330e7f83b5b286 100644 --- a/x-pack/legacy/plugins/siem/public/components/utility_bar/utility_bar_action.tsx +++ b/x-pack/legacy/plugins/siem/public/components/utility_bar/utility_bar_action.tsx @@ -18,6 +18,7 @@ const Popover = React.memo( return ( > => [ { - description: i18n.DELETE, + description: i18n.DELETE_CASE, icon: 'trash', - name: i18n.DELETE, + name: i18n.DELETE_CASE, onClick: deleteCaseOnClick, type: 'icon', 'data-test-subj': 'action-delete', diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/columns.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/columns.tsx index f4cfac49f72e6f..f757fd33a93a82 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/columns.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/columns.tsx @@ -46,7 +46,9 @@ export const getCasesColumns = ( render: (theCase: Case) => { if (theCase.id != null && theCase.title != null) { const caseDetailsLinkComponent = ( - {theCase.title} + + {theCase.title} + ); return theCase.status === 'open' ? ( caseDetailsLinkComponent @@ -184,6 +186,7 @@ const ServiceNowColumn: React.FC = ({ theCase }) => { data-test-subj={`case-table-column-external`} href={theCase.externalService?.externalUrl} target="_blank" + aria-label={i18n.SERVICENOW_LINK_ARIA} > {theCase.externalService?.externalTitle} diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/translations.ts b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/translations.ts index e8459454576e39..1bee96bc23fffa 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/translations.ts +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/all_cases/translations.ts @@ -59,9 +59,11 @@ export const CLOSED_CASES = i18n.translate('xpack.siem.case.caseTable.closedCase export const CLOSED = i18n.translate('xpack.siem.case.caseTable.closed', { defaultMessage: 'Closed', }); + export const DELETE = i18n.translate('xpack.siem.case.caseTable.delete', { defaultMessage: 'Delete', }); + export const REQUIRES_UPDATE = i18n.translate('xpack.siem.case.caseTable.requiresUpdate', { defaultMessage: ' requires update', }); @@ -76,3 +78,7 @@ export const NOT_PUSHED = i18n.translate('xpack.siem.case.caseTable.notPushed', export const REFRESH = i18n.translate('xpack.siem.case.caseTable.refreshTitle', { defaultMessage: 'Refresh', }); + +export const SERVICENOW_LINK_ARIA = i18n.translate('xpack.siem.case.caseTable.serviceNowLinkAria', { + defaultMessage: 'click to view the incident on servicenow', +}); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/button.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/button.tsx index 9cfc51da22e87e..b0bea83148bda2 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/button.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/button.tsx @@ -31,6 +31,7 @@ const ConfigureCaseButtonComponent: React.FC = ({ href={getConfigureCasesUrl(urlSearch)} iconType="controlsHorizontal" isDisabled={isDisabled} + aria-label={label} > {label} diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/index.tsx index 241b0b1230274f..b8cf5a38808011 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/configure_cases/index.tsx @@ -298,7 +298,7 @@ const ConfigureCasesComponent: React.FC = ({ userC iconType="cross" isDisabled={isLoadingAny} isLoading={persistLoading} - aria-label="Cancel" + aria-label={i18n.CANCEL} href={getCaseUrl(search)} > {i18n.CANCEL} @@ -309,7 +309,7 @@ const ConfigureCasesComponent: React.FC = ({ userC fill color="secondary" iconType="save" - aria-label="Save" + aria-label={i18n.SAVE_CHANGES} isDisabled={isLoadingAny} isLoading={persistLoading} onClick={handleSubmit} diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/property_actions/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/property_actions/index.tsx index 0e7a41edace043..6b8e00921abcb7 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/property_actions/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/property_actions/index.tsx @@ -7,6 +7,8 @@ import React, { useCallback, useState } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiPopover, EuiButtonIcon, EuiButtonEmpty } from '@elastic/eui'; +import * as i18n from './translations'; + export interface PropertyActionButtonProps { disabled?: boolean; onClick: () => void; @@ -57,10 +59,11 @@ export const PropertyActions = React.memo(({ propertyActio diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/property_actions/translations.ts b/x-pack/legacy/plugins/siem/public/pages/case/components/property_actions/translations.ts new file mode 100644 index 00000000000000..4d7e15a76739d1 --- /dev/null +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/property_actions/translations.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +export const ACTIONS_ARIA = i18n.translate('xpack.siem.case.caseView.editActionsLinkAria', { + defaultMessage: 'click to see all actions', +}); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/index.tsx index 7c456d27acedac..f7d890ca60b16d 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/index.tsx @@ -17,7 +17,7 @@ import { EuiLoadingSpinner, } from '@elastic/eui'; import styled, { css } from 'styled-components'; -import * as i18n from '../../translations'; +import * as i18n from './translations'; import { Form, useForm } from '../../../../shared_imports'; import { schema } from './schema'; import { CommonUseField } from '../create'; @@ -66,7 +66,7 @@ export const TagList = React.memo( diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/translations.ts b/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/translations.ts new file mode 100644 index 00000000000000..f7f215248dad89 --- /dev/null +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/tag_list/translations.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +export * from '../../translations'; + +export const EDIT_TAGS_ARIA = i18n.translate('xpack.siem.case.caseView.editTagsLinkAria', { + defaultMessage: 'click to edit tags', +}); diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx b/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx index 914bbe1d3f38f4..579e8e48fa147a 100644 --- a/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/index.tsx @@ -5,6 +5,8 @@ */ import React, { useCallback } from 'react'; +import { isEmpty } from 'lodash/fp'; + import { EuiButtonIcon, EuiText, @@ -15,8 +17,11 @@ import { EuiLoadingSpinner, EuiToolTip, } from '@elastic/eui'; + import styled, { css } from 'styled-components'; + import { ElasticUser } from '../../../../containers/case/types'; +import * as i18n from './translations'; interface UserListProps { email: { @@ -50,7 +55,7 @@ const renderUsers = ( - {fullName ?? username}

    }> + {fullName ? fullName : username ?? ''}

    }>

    {username} @@ -65,8 +70,8 @@ const renderUsers = ( data-test-subj="user-list-email-button" onClick={handleSendEmail.bind(null, email)} iconType="email" - aria-label="email" - isDisabled={email == null} + aria-label={i18n.SEND_EMAIL_ARIA(fullName ? fullName : username ?? '')} + isDisabled={isEmpty(email)} /> diff --git a/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/translations.ts b/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/translations.ts new file mode 100644 index 00000000000000..4d50d11f391017 --- /dev/null +++ b/x-pack/legacy/plugins/siem/public/pages/case/components/user_list/translations.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +export const SEND_EMAIL_ARIA = (user: string) => + i18n.translate('xpack.siem.case.caseView.sendEmalLinkAria', { + values: { user }, + defaultMessage: 'click to send an email to {user}', + }); From d73671e2b50f25cd165baa8b328117fcee61453f Mon Sep 17 00:00:00 2001 From: Aaron Caldwell Date: Tue, 31 Mar 2020 08:03:05 -0600 Subject: [PATCH 038/118] [Maps] Explicitly pass fetch function to ems-client (#61846) * Add fetchFunction binding appropriate version of fetch for ems client * Wrap standard window fetch prior to passing to ems-client Co-authored-by: Elastic Machine --- src/legacy/ui/public/vis/map/service_settings.js | 4 ++++ x-pack/legacy/plugins/maps/server/routes.js | 1 + 2 files changed, 5 insertions(+) diff --git a/src/legacy/ui/public/vis/map/service_settings.js b/src/legacy/ui/public/vis/map/service_settings.js index 9f3d21831e3dab..a014aeb182c673 100644 --- a/src/legacy/ui/public/vis/map/service_settings.js +++ b/src/legacy/ui/public/vis/map/service_settings.js @@ -53,6 +53,10 @@ uiModules tileApiUrl: mapConfig.emsTileApiUrl, htmlSanitizer: $sanitize, landingPageUrl: mapConfig.emsLandingPageUrl, + // Wrap to avoid errors passing window fetch + fetchFunction: function(...args) { + return fetch(...args); + }, }); } diff --git a/x-pack/legacy/plugins/maps/server/routes.js b/x-pack/legacy/plugins/maps/server/routes.js index 6aacfdc41aeea2..20e022001577a8 100644 --- a/x-pack/legacy/plugins/maps/server/routes.js +++ b/x-pack/legacy/plugins/maps/server/routes.js @@ -44,6 +44,7 @@ export function initRoutes(server, licenseUid) { fileApiUrl: mapConfig.emsFileApiUrl, tileApiUrl: mapConfig.emsTileApiUrl, landingPageUrl: mapConfig.emsLandingPageUrl, + fetchFunction: fetch, }); emsClient.addQueryParams({ license: licenseUid }); } else { From f29a5dd05b9ddac7d55a9f164fc5e937d9e47d8a Mon Sep 17 00:00:00 2001 From: DziyanaDzeraviankina <54894989+DziyanaDzeraviankina@users.noreply.github.com> Date: Tue, 31 Mar 2020 17:17:09 +0300 Subject: [PATCH 039/118] =?UTF-8?q?Auto=20interval=20on=20date=20histogram?= =?UTF-8?q?=20is=20getting=20displayed=20as=20timestamp=20per=E2=80=A6=20(?= =?UTF-8?q?#59171)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Auto interval on date histogram is getting displayed as timestamp per 0 milliseconds when x-axis bucket is collapsed Closes #57822 * Fixed incorrect interval label displaying while scaling the chart. * Updated agg.test.tsx snapshot * Got rid of context and refactored agg hooks * Fixed agg.type.name check * Added functional tests to cover the date histogram interval editing * Fixed some expected values in tests * Updated some test cases * Added a new visualization to visualize archive * Added testSubjects service to replace find where possible * Updated tests to match updated behavior Co-authored-by: Elastic Machine --- .../public/components/agg.tsx | 21 +++--- .../public/components/agg_group.tsx | 4 ++ .../public/components/agg_params_helper.ts | 15 +++- .../components/controls/time_interval.tsx | 4 +- .../public/components/sidebar/data_tab.tsx | 4 ++ .../public/components/sidebar/sidebar.tsx | 4 ++ .../public/default_editor.tsx | 1 + test/functional/apps/visualize/_area_chart.js | 71 +++++++++++++++++++ .../fixtures/es_archiver/visualize/data.json | 21 ++++++ 9 files changed, 132 insertions(+), 13 deletions(-) diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg.tsx index 2a452732076233..83fbf70c9099ef 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg.tsx @@ -35,6 +35,8 @@ import { AGGS_ACTION_KEYS, AggsAction } from './agg_group_state'; import { RowsOrColumnsControl } from './controls/rows_or_columns'; import { RadiusRatioOptionControl } from './controls/radius_ratio_option'; import { getSchemaByName } from '../schemas'; +import { TimeRange } from '../../../../../plugins/data/public'; +import { buildAggDescription } from './agg_params_helper'; export interface DefaultEditorAggProps extends DefaultEditorAggCommonProps { agg: IAggConfig; @@ -46,6 +48,7 @@ export interface DefaultEditorAggProps extends DefaultEditorAggCommonProps { isLastBucket: boolean; isRemovable: boolean; setAggsState: React.Dispatch; + timeRange?: TimeRange; } function DefaultEditorAgg({ @@ -69,6 +72,7 @@ function DefaultEditorAgg({ removeAgg, setAggsState, schemas, + timeRange, }: DefaultEditorAggProps) { const [isEditorOpen, setIsEditorOpen] = useState((agg as any).brandNew); const [validState, setValidState] = useState(true); @@ -103,18 +107,15 @@ function DefaultEditorAgg({ } } - // A description of the aggregation, for displaying in the collapsed agg header - let aggDescription = ''; + const [aggDescription, setAggDescription] = useState(buildAggDescription(agg)); - if (agg.type && agg.type.makeLabel) { - try { - aggDescription = agg.type.makeLabel(agg); - } catch (e) { - // Date Histogram's `makeLabel` implementation invokes 'write' method for each param, including interval's 'write', - // which throws an error when interval is undefined. - aggDescription = ''; + // This useEffect is required to update the timeRange value and initiate rerender to keep labels up to date (Issue #57822). + useEffect(() => { + if (timeRange && aggName === 'date_histogram') { + agg.aggConfigs.setTimeRange(timeRange); } - } + setAggDescription(buildAggDescription(agg)); + }, [agg, aggName, timeRange]); useEffect(() => { if (isLastBucketAgg && ['date_histogram', 'histogram'].includes(aggName)) { diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.tsx index 08b69ef37f5286..f50abc3ebb599a 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_group.tsx @@ -42,6 +42,7 @@ import { } from './agg_group_helper'; import { aggGroupReducer, initAggsState, AGGS_ACTION_KEYS } from './agg_group_state'; import { Schema, getSchemasByGroup } from '../schemas'; +import { TimeRange } from '../../../../../plugins/data/public'; export interface DefaultEditorAggGroupProps extends DefaultEditorAggCommonProps { schemas: Schema[]; @@ -49,6 +50,7 @@ export interface DefaultEditorAggGroupProps extends DefaultEditorAggCommonProps reorderAggs: ReorderAggs; setValidity(modelName: string, value: boolean): void; setTouched(isTouched: boolean): void; + timeRange?: TimeRange; } function DefaultEditorAggGroup({ @@ -67,6 +69,7 @@ function DefaultEditorAggGroup({ reorderAggs, setTouched, setValidity, + timeRange, }: DefaultEditorAggGroupProps) { const groupNameLabel = (search.aggs.aggGroupNamesMap() as any)[groupName]; // e.g. buckets can have no aggs @@ -185,6 +188,7 @@ function DefaultEditorAggGroup({ removeAgg={removeAgg} setAggsState={setAggsState} schemas={schemas} + timeRange={timeRange} /> )} diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts index 10590e1a59f4ac..073cb7d5ac66c2 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts +++ b/src/legacy/core_plugins/vis_default_editor/public/components/agg_params_helper.ts @@ -174,4 +174,17 @@ function isInvalidParamsTouched( return invalidParams.every(param => param.touched); } -export { getAggParamsToRender, getAggTypeOptions, isInvalidParamsTouched }; +function buildAggDescription(agg: IAggConfig) { + let description = ''; + if (agg.type && agg.type.makeLabel) { + try { + description = agg.type.makeLabel(agg); + } catch (e) { + // Date Histogram's `makeLabel` implementation invokes 'write' method for each param, including interval's 'write', + // which throws an error when interval is undefined. + } + } + return description; +} + +export { getAggParamsToRender, getAggTypeOptions, isInvalidParamsTouched, buildAggDescription }; diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/controls/time_interval.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/controls/time_interval.tsx index 9aacd6a10262fa..971a62faf7d7c9 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/controls/time_interval.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/controls/time_interval.tsx @@ -61,7 +61,7 @@ function validateInterval( timeBase?: string ) { if (definedOption) { - return { isValid: true }; + return { isValid: true, interval: agg.buckets?.getInterval() }; } if (!value) { @@ -131,7 +131,7 @@ function TimeIntervalParamEditor({ const scaledHelpText = interval && interval.scaled ? ( - + @@ -128,6 +131,7 @@ function DefaultEditorDataTab({ diff --git a/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/sidebar.tsx b/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/sidebar.tsx index 29039715066be8..071e10682e22c2 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/sidebar.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/components/sidebar/sidebar.tsx @@ -33,6 +33,7 @@ import { PersistedState } from '../../../../../../plugins/visualizations/public' import { SavedSearch } from '../../../../../../plugins/discover/public'; import { AggGroupNames } from '../../../../../../plugins/data/public'; import { getSchemasByGroup } from '../../schemas'; +import { TimeRange } from '../../../../../../plugins/data/public'; interface DefaultEditorSideBarProps { isCollapsed: boolean; @@ -43,6 +44,7 @@ interface DefaultEditorSideBarProps { isLinkedSearch: boolean; eventEmitter: EventEmitter; savedSearch?: SavedSearch; + timeRange: TimeRange; } function DefaultEditorSideBar({ @@ -54,6 +56,7 @@ function DefaultEditorSideBar({ isLinkedSearch, eventEmitter, savedSearch, + timeRange, }: DefaultEditorSideBarProps) { const [selectedTab, setSelectedTab] = useState(optionTabs[0].name); const [isDirty, setDirty] = useState(false); @@ -214,6 +217,7 @@ function DefaultEditorSideBar({

    -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

  • ); diff --git a/src/legacy/core_plugins/vis_default_editor/public/default_editor.tsx b/src/legacy/core_plugins/vis_default_editor/public/default_editor.tsx index b504dfd6a55e95..899b9c1b5fd6eb 100644 --- a/src/legacy/core_plugins/vis_default_editor/public/default_editor.tsx +++ b/src/legacy/core_plugins/vis_default_editor/public/default_editor.tsx @@ -92,6 +92,7 @@ function DefaultEditor({ uiState={uiState} isLinkedSearch={linked} savedSearch={savedSearch} + timeRange={timeRange} eventEmitter={eventEmitter} /> diff --git a/test/functional/apps/visualize/_area_chart.js b/test/functional/apps/visualize/_area_chart.js index ebbeb01cbc9177..8f2012d7f184d0 100644 --- a/test/functional/apps/visualize/_area_chart.js +++ b/test/functional/apps/visualize/_area_chart.js @@ -554,5 +554,76 @@ export default function({ getService, getPageObjects }) { }); }); }); + + describe('date histogram interval', () => { + before(async () => { + await PageObjects.visualize.loadSavedVisualization('Visualization AreaChart'); + await PageObjects.visChart.waitForVisualization(); + }); + + beforeEach(async () => { + const fromTime = 'Sep 20, 2015 @ 00:00:00.000'; + const toTime = 'Sep 20, 2015 @ 23:30:00.000'; + await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime); + }); + + it('should update collapsed accordion label when time range is changed', async () => { + const accordionLabel = await find.byCssSelector( + '[data-test-subj="visEditorAggAccordion2"] .visEditorSidebar__aggGroupAccordionButtonContent' + ); + let accordionLabelText = await accordionLabel.getVisibleText(); + expect(accordionLabelText).to.include.string('per 30 minutes'); + const fromTime = 'Sep 20, 2015 @ 08:30:00.000'; + const toTime = 'Sep 20, 2015 @ 23:30:00.000'; + await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime); + accordionLabelText = await accordionLabel.getVisibleText(); + expect(accordionLabelText).to.include.string('per 10 minutes'); + }); + + describe('expanded accordion', () => { + before(async () => await PageObjects.visEditor.toggleAccordion('visEditorAggAccordion2')); + + it('should update label inside the opened accordion when scaled to milliseconds', async () => { + const isHelperScaledLabelExists = await find.existsByCssSelector( + '[data-test-subj="currentlyScaledText"]' + ); + expect(isHelperScaledLabelExists).to.be(false); + await PageObjects.visEditor.setInterval('Millisecond'); + const helperScaledLabelText = await testSubjects.getVisibleText('currentlyScaledText'); + expect(helperScaledLabelText).to.include.string('to 10 minutes'); + }); + + it('should display updated scaled label text after time range is changed', async () => { + await PageObjects.visEditor.setInterval('Millisecond'); + const isHelperScaledLabelExists = await find.existsByCssSelector( + '[data-test-subj="currentlyScaledText"]' + ); + expect(isHelperScaledLabelExists).to.be(true); + let helperScaledLabelText = await testSubjects.getVisibleText('currentlyScaledText'); + expect(helperScaledLabelText).to.include.string('to 10 minutes'); + const fromTime = 'Sep 20, 2015 @ 22:30:00.000'; + const toTime = 'Sep 20, 2015 @ 23:30:00.000'; + await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime); + helperScaledLabelText = await testSubjects.getVisibleText('currentlyScaledText'); + expect(helperScaledLabelText).to.include.string('to 30 seconds'); + }); + + it('should update scaled label text after custom interval is set and time range is changed', async () => { + await PageObjects.visEditor.setInterval('10s', { type: 'custom' }); + await testSubjects.clickWhenNotDisabled('visualizeEditorRenderButton'); + const isHelperScaledLabelExists = await find.existsByCssSelector( + '[data-test-subj="currentlyScaledText"]' + ); + expect(isHelperScaledLabelExists).to.be(true); + let helperScaledLabelText = await testSubjects.getVisibleText('currentlyScaledText'); + expect(helperScaledLabelText).to.include.string('to 10 minutes'); + const fromTime = 'Sep 20, 2015 @ 21:30:00.000'; + const toTime = 'Sep 20, 2015 @ 23:30:00.000'; + await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime); + helperScaledLabelText = await testSubjects.getVisibleText('currentlyScaledText'); + expect(helperScaledLabelText).to.include.string('to minute'); + }); + }); + }); }); } diff --git a/test/functional/fixtures/es_archiver/visualize/data.json b/test/functional/fixtures/es_archiver/visualize/data.json index 845e9a5e088257..abca5a98bf7fd2 100644 --- a/test/functional/fixtures/es_archiver/visualize/data.json +++ b/test/functional/fixtures/es_archiver/visualize/data.json @@ -69,6 +69,27 @@ } } +{ + "type": "doc", + "value": { + "id": "visualization:Visualization-AreaChart", + "index": ".kibana", + "source": { + "type": "visualization", + "visualization": { + "description": "AreaChart", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"filter\":[]}" + }, + "title": "Visualization AreaChart", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"Visualization AreaChart\",\"type\":\"area\",\"params\":{\"type\":\"area\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"area\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true,\"interpolate\":\"linear\",\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"labels\":{}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"now-15m\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}}]}" + } + } + } +} + { "type": "doc", "value": { From aeba1b7bb0f11501804837bdd4dd602844cae9a4 Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Tue, 31 Mar 2020 16:29:00 +0200 Subject: [PATCH 040/118] [ML] Handle Empty Partition Field Values in Single Metric Viewer (#61649) * [ML] WIP support empty partition fields values * [ML] support empty field in anomaly table * [ML] remove comments * [ML] fix context chart * [ML] rename empty field label, render as italic * [ML] rename empty field label * [ML] fix focus chart * [ML] add time range capping for fields_service.ts * [ML] empty string labels in anomaly explorer --- .../components/entity_cell/entity_cell.js | 8 ++- .../application/explorer/explorer_swimlane.js | 6 +- .../results_service/results_service.js | 36 ++---------- .../entity_control/entity_control.tsx | 38 ++++++++---- .../timeseries_search_service.ts | 2 +- .../timeseriesexplorer/timeseriesexplorer.js | 21 +++---- .../models/fields_service/fields_service.ts | 58 +++++++++++++------ 7 files changed, 96 insertions(+), 73 deletions(-) diff --git a/x-pack/plugins/ml/public/application/components/entity_cell/entity_cell.js b/x-pack/plugins/ml/public/application/components/entity_cell/entity_cell.js index 02a9e569f28a43..d3917412bfb7b1 100644 --- a/x-pack/plugins/ml/public/application/components/entity_cell/entity_cell.js +++ b/x-pack/plugins/ml/public/application/components/entity_cell/entity_cell.js @@ -10,6 +10,8 @@ import React from 'react'; import { EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiText, EuiToolTip } from '@elastic/eui'; 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'; function getAddFilter({ entityName, entityValue, filter }) { return ( @@ -68,7 +70,11 @@ export const EntityCell = function EntityCell({ filter, wrapText = false, }) { - const valueText = entityName !== 'mlcategory' ? entityValue : `mlcategory ${entityValue}`; + let valueText = entityValue === '' ? {EMPTY_FIELD_VALUE_LABEL} : entityValue; + if (entityName === MLCATEGORY) { + valueText = `${MLCATEGORY} ${valueText}`; + } + const textStyle = { maxWidth: '100%' }; const textWrapperClass = wrapText ? 'field-value-long' : 'field-value-short'; const shouldDisplayIcons = diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_swimlane.js b/x-pack/plugins/ml/public/application/explorer/explorer_swimlane.js index e8cb8377a656d7..d7333f00c89cd6 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_swimlane.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_swimlane.js @@ -25,6 +25,7 @@ import { mlChartTooltipService } from '../components/chart_tooltip/chart_tooltip import { ALLOW_CELL_RANGE_SELECTION, dragSelect$ } from './explorer_dashboard_service'; import { DRAG_SELECT_ACTION } from './explorer_constants'; import { i18n } from '@kbn/i18n'; +import { EMPTY_FIELD_VALUE_LABEL } from '../timeseriesexplorer/components/entity_control/entity_control'; const SCSS = { mlDragselectDragging: 'mlDragselectDragging', @@ -309,6 +310,7 @@ export class ExplorerSwimlane extends React.Component { return function(lane) { const bucketScore = getBucketScore(lane, time); if (bucketScore !== 0) { + lane = lane === '' ? EMPTY_FIELD_VALUE_LABEL : lane; cellMouseover(this, lane, bucketScore, i, time); } }; @@ -376,7 +378,7 @@ export class ExplorerSwimlane extends React.Component { values: { label: mlEscape(label) }, }); } else { - return mlEscape(label); + return label === '' ? `${EMPTY_FIELD_VALUE_LABEL}` : mlEscape(label); } }) .on('click', () => { @@ -393,7 +395,7 @@ export class ExplorerSwimlane extends React.Component { { skipHeader: true }, { label: swimlaneData.fieldName, - value, + value: value === '' ? EMPTY_FIELD_VALUE_LABEL : value, seriesIdentifier: { key: value }, valueAccessor: 'fieldName', }, 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 4dec066a7f325f..b7aa5edc88638b 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 @@ -1259,39 +1259,13 @@ export function getRecordMaxScoreByTime(jobId, criteriaFields, earliestMs, lates }, { term: { job_id: jobId } }, ]; - const shouldCriteria = []; _.each(criteriaFields, criteria => { - if (criteria.fieldValue.length !== 0) { - mustCriteria.push({ - term: { - [criteria.fieldName]: criteria.fieldValue, - }, - }); - } else { - // Add special handling for blank entity field values, checking for either - // an empty string or the field not existing. - const emptyFieldCondition = { - bool: { - must: [ - { - term: {}, - }, - ], - }, - }; - emptyFieldCondition.bool.must[0].term[criteria.fieldName] = ''; - shouldCriteria.push(emptyFieldCondition); - shouldCriteria.push({ - bool: { - must_not: [ - { - exists: { field: criteria.fieldName }, - }, - ], - }, - }); - } + mustCriteria.push({ + term: { + [criteria.fieldName]: criteria.fieldValue, + }, + }); }); ml.esSearch({ diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/entity_control/entity_control.tsx b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/entity_control/entity_control.tsx index 8911ed53e74d0d..7bb0b27472c881 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/entity_control/entity_control.tsx +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/entity_control/entity_control.tsx @@ -16,6 +16,7 @@ import { EuiFormRow, EuiToolTip, } from '@elastic/eui'; +import { EuiSelectableOption } from '@elastic/eui/src/components/selectable/selectable_option'; export interface Entity { fieldName: string; @@ -29,15 +30,22 @@ interface EntityControlProps { isLoading: boolean; onSearchChange: (entity: Entity, queryTerm: string) => void; forceSelection: boolean; - options: EuiComboBoxOptionOption[]; + options: Array>; } interface EntityControlState { - selectedOptions: EuiComboBoxOptionOption[] | undefined; + selectedOptions: Array> | undefined; isLoading: boolean; - options: EuiComboBoxOptionOption[] | undefined; + options: Array> | undefined; } +export const EMPTY_FIELD_VALUE_LABEL = i18n.translate( + 'xpack.ml.timeSeriesExplorer.emptyPartitionFieldLabel.', + { + defaultMessage: '"" (empty string)', + } +); + export class EntityControl extends Component { inputRef: any; @@ -53,16 +61,18 @@ export class EntityControl extends Component> | undefined = selectedOptions; if ( - (selectedOptions === undefined && fieldValue.length > 0) || + (selectedOptions === undefined && fieldValue !== null) || (Array.isArray(selectedOptions) && // @ts-ignore - selectedOptions[0].label !== fieldValue && - fieldValue.length > 0) + selectedOptions[0].value !== fieldValue && + fieldValue !== null) ) { - selectedOptionsUpdate = [{ label: fieldValue }]; - } else if (Array.isArray(selectedOptions) && fieldValue.length === 0) { + selectedOptionsUpdate = [ + { label: fieldValue === '' ? EMPTY_FIELD_VALUE_LABEL : fieldValue, value: fieldValue }, + ]; + } else if (Array.isArray(selectedOptions) && fieldValue === null) { selectedOptionsUpdate = undefined; } @@ -84,14 +94,14 @@ export class EntityControl extends Component { + onChange = (selectedOptions: Array>) => { const options = selectedOptions.length > 0 ? selectedOptions : undefined; this.setState({ selectedOptions: options, }); const fieldValue = - Array.isArray(options) && options[0].label.length > 0 ? options[0].label : ''; + Array.isArray(options) && options[0].value !== null ? options[0].value : null; this.props.entityFieldValueChanged(this.props.entity, fieldValue); }; @@ -103,6 +113,11 @@ export class EntityControl extends Component { + const { label } = option; + return label === EMPTY_FIELD_VALUE_LABEL ? {label} : label; + }; + render() { const { entity, forceSelection } = this.props; const { isLoading, options, selectedOptions } = this.state; @@ -126,6 +141,7 @@ export class EntityControl extends Component ); diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseries_search_service.ts b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseries_search_service.ts index db5ff2ad919102..f973d41ad7754e 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseries_search_service.ts +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseries_search_service.ts @@ -128,7 +128,7 @@ function getChartDetails( obj.results.functionLabel = functionLabel; const blankEntityFields = _.filter(entityFields, entity => { - return entity.fieldValue.length === 0; + return entity.fieldValue === null; }); // Look to see if any of the entity fields have defined values diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js index 1a26540709f348..5e505757dd2aa3 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js @@ -78,6 +78,7 @@ import { processRecordScoreResults, getFocusData, } from './timeseriesexplorer_utils'; +import { EMPTY_FIELD_VALUE_LABEL } from './components/entity_control/entity_control'; // Used to indicate the chart is being plotted across // all partition field values, where the cardinality of the field cannot be @@ -94,7 +95,7 @@ function getEntityControlOptions(fieldValues) { fieldValues.sort(); return fieldValues.map(value => { - return { label: value }; + return { label: value === '' ? EMPTY_FIELD_VALUE_LABEL : value, value }; }); } @@ -192,7 +193,7 @@ export class TimeSeriesExplorer extends React.Component { getFieldNamesWithEmptyValues = () => { const latestEntityControls = this.getControlsForDetector(); return latestEntityControls - .filter(({ fieldValue }) => !fieldValue) + .filter(({ fieldValue }) => fieldValue === null) .map(({ fieldName }) => fieldName); }; @@ -249,7 +250,7 @@ export class TimeSeriesExplorer extends React.Component { if (operator === '+' && entity.fieldValue !== value) { resultValue = value; } else if (operator === '-' && entity.fieldValue === value) { - resultValue = ''; + resultValue = null; } else { return; } @@ -302,7 +303,7 @@ export class TimeSeriesExplorer extends React.Component { focusAggregationInterval, selectedForecastId, modelPlotEnabled, - entityControls.filter(entity => entity.fieldValue.length > 0), + entityControls.filter(entity => entity.fieldValue !== null), searchBounds, selectedJob, TIME_FIELD_NAME @@ -576,7 +577,7 @@ export class TimeSeriesExplorer extends React.Component { }; const nonBlankEntities = entityControls.filter(entity => { - return entity.fieldValue.length > 0; + return entity.fieldValue !== null; }); if ( @@ -739,7 +740,7 @@ export class TimeSeriesExplorer extends React.Component { const overFieldName = get(detector, 'over_field_name'); const byFieldName = get(detector, 'by_field_name'); if (partitionFieldName !== undefined) { - const partitionFieldValue = get(entitiesState, partitionFieldName, ''); + const partitionFieldValue = get(entitiesState, partitionFieldName, null); entities.push({ fieldType: 'partition_field', fieldName: partitionFieldName, @@ -747,7 +748,7 @@ export class TimeSeriesExplorer extends React.Component { }); } if (overFieldName !== undefined) { - const overFieldValue = get(entitiesState, overFieldName, ''); + const overFieldValue = get(entitiesState, overFieldName, null); entities.push({ fieldType: 'over_field', fieldName: overFieldName, @@ -761,7 +762,7 @@ export class TimeSeriesExplorer extends React.Component { // TODO - metric data can be filtered by this field, so should only exclude // from filter for the anomaly records. if (byFieldName !== undefined && overFieldName === undefined) { - const byFieldValue = get(entitiesState, byFieldName, ''); + const byFieldValue = get(entitiesState, byFieldName, null); entities.push({ fieldType: 'by_field', fieldName: byFieldName, fieldValue: byFieldValue }); } @@ -775,7 +776,7 @@ export class TimeSeriesExplorer extends React.Component { */ getCriteriaFields(detectorIndex, entities) { // Only filter on the entity if the field has a value. - const nonBlankEntities = entities.filter(entity => entity.fieldValue.length > 0); + const nonBlankEntities = entities.filter(entity => entity.fieldValue !== null); return [ { fieldName: 'detector_index', @@ -1150,7 +1151,7 @@ export class TimeSeriesExplorer extends React.Component {
    {entityControls.map(entity => { const entityKey = `${entity.fieldName}`; - const forceSelection = !hasEmptyFieldValues && !entity.fieldValue; + const forceSelection = !hasEmptyFieldValues && entity.fieldValue === null; hasEmptyFieldValues = !hasEmptyFieldValues && forceSelection; return ( { if (!interval) { - throw new Error('Interval is required to retrieve max bucket cardinalities.'); + throw Boom.badRequest('Interval is required to retrieve max bucket cardinalities.'); } const aggregatableFields = await getAggregatableFields(index, fieldNames); @@ -243,12 +260,17 @@ export function fieldsServiceProvider(callAsCurrentUser: APICaller) { return {}; } + const { start, end } = getSafeTimeRangeForInterval( + interval, + ...Object.values(getSafeTimeRange(earliestMs, latestMs)) + ); + const cachedValues = fieldsAggsCache.getValues( index, timeFieldName, - earliestMs, - latestMs, + start, + end, 'maxBucketCardinality', fieldNames ) ?? {}; @@ -260,8 +282,6 @@ export function fieldsServiceProvider(callAsCurrentUser: APICaller) { return cachedValues; } - const { start, end } = getSafeTimeRange(earliestMs, latestMs, interval); - const mustCriteria = [ { range: { @@ -334,6 +354,10 @@ export function fieldsServiceProvider(callAsCurrentUser: APICaller) { return obj; }, {} as { [field: string]: number }); + fieldsAggsCache.updateValues(index, timeFieldName, start, end, { + maxBucketCardinality: aggResult, + }); + return { ...cachedValues, ...aggResult, From e8143918e6c51cf09c49e9a0591c110540103bda Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Tue, 31 Mar 2020 10:42:50 -0400 Subject: [PATCH 041/118] Add an onBlur handler for the kuery bar. Only resubmit when input changes. (#61901) --- .../components/functional/kuery_bar/typeahead/index.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/x-pack/legacy/plugins/uptime/public/components/functional/kuery_bar/typeahead/index.js b/x-pack/legacy/plugins/uptime/public/components/functional/kuery_bar/typeahead/index.js index 9b8bdb50441c9b..0ea5e1e2b83725 100644 --- a/x-pack/legacy/plugins/uptime/public/components/functional/kuery_bar/typeahead/index.js +++ b/x-pack/legacy/plugins/uptime/public/components/functional/kuery_bar/typeahead/index.js @@ -27,6 +27,7 @@ export class Typeahead extends Component { index: null, value: '', inputIsPristine: true, + lastSubmitted: '', }; static getDerivedStateFromProps(props, state) { @@ -151,7 +152,10 @@ export class Typeahead extends Component { }; onSubmit = () => { - this.props.onSubmit(this.state.value); + if (this.state.lastSubmitted !== this.state.value) { + this.props.onSubmit(this.state.value); + this.setState({ lastSubmitted: this.state.value }); + } this.setState({ isSuggestionsVisible: false }); }; @@ -177,6 +181,7 @@ export class Typeahead extends Component { value={this.state.value} onKeyDown={this.onKeyDown} onKeyUp={this.onKeyUp} + onBlur={this.onSubmit} onChange={this.onChangeInputValue} onClick={this.onClickInput} autoComplete="off" From 4899aaf5658970ceca982975b079a37d20555985 Mon Sep 17 00:00:00 2001 From: Robert Austin Date: Tue, 31 Mar 2020 11:01:06 -0400 Subject: [PATCH 042/118] Endpoint: Add ts-node dev dependency (#61884) Co-authored-by: Elastic Machine Used to run CLI scripts written in Typescript --- x-pack/plugins/endpoint/package.json | 3 ++- x-pack/plugins/endpoint/scripts/README.md | 6 +----- yarn.lock | 26 +++++++++++++++++++++++ 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/endpoint/package.json b/x-pack/plugins/endpoint/package.json index fc4f4bd586bef7..9e65f23a38860a 100644 --- a/x-pack/plugins/endpoint/package.json +++ b/x-pack/plugins/endpoint/package.json @@ -13,6 +13,7 @@ "devDependencies": { "@types/seedrandom": ">=2.0.0 <4.0.0", "@types/react-redux": "^7.1.0", - "redux-devtools-extension": "^2.13.8" + "redux-devtools-extension": "^2.13.8", + "ts-node": "^8.8.1" } } diff --git a/x-pack/plugins/endpoint/scripts/README.md b/x-pack/plugins/endpoint/scripts/README.md index f0c8c5a9b0b660..34d0a1ecd8edea 100644 --- a/x-pack/plugins/endpoint/scripts/README.md +++ b/x-pack/plugins/endpoint/scripts/README.md @@ -3,11 +3,7 @@ The default behavior is to create 1 endpoint with 1 alert and a moderate number A seed value can be provided as a string for the random number generator for repeatable behavior, useful for demos etc. Use the `-d` option if you want to delete and remake the indices, otherwise it will add documents to existing indices. -The sample data generator script depends on ts-node, install with npm: - -```npm install -g ts-node``` - -Example command sequence to get ES and kibana running with sample data after installing ts-node: +Example command sequence to get ES and kibana running with sample data: ```yarn es snapshot``` -> starts ES diff --git a/yarn.lock b/yarn.lock index b3c2aa94d07d10..aa96a740cb3a9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6103,6 +6103,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^1.0.7, argparse@~1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -19550,6 +19555,11 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + make-iterator@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.0.tgz#57bef5dc85d23923ba23767324d8e8f8f3d9694b" @@ -28788,6 +28798,17 @@ ts-log@2.1.4: resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.1.4.tgz#063c5ad1cbab5d49d258d18015963489fb6fb59a" integrity sha512-P1EJSoyV+N3bR/IWFeAqXzKPZwHpnLY6j7j58mAvewHRipo+BQM2Y1f9Y9BjEQznKwgqqZm7H8iuixmssU7tYQ== +ts-node@^8.8.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.8.1.tgz#7c4d3e9ed33aa703b64b28d7f9d194768be5064d" + integrity sha512-10DE9ONho06QORKAaCBpPiFCdW+tZJuY/84tyypGtl6r+/C7Asq0dhqbRZURuUlLQtZxxDvT8eoj8cGW0ha6Bg== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.6" + yn "3.1.1" + ts-pnp@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.4.tgz#ae27126960ebaefb874c6d7fa4729729ab200d90" @@ -31990,6 +32011,11 @@ yeoman-generator@1.1.1: user-home "^2.0.0" yeoman-environment "^1.1.0" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yo@2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/yo/-/yo-2.0.6.tgz#7b562f68a0434237c24a1fd3982f235035839516" From 0082ca7ad8a7af7dad79d6912e6de5ad6db3b075 Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Tue, 31 Mar 2020 17:01:44 +0200 Subject: [PATCH 043/118] [Discover] Deangularize and euificate sidebar (#47559) * Split angular templates into React components * Add tooltip for field label * Adapt SCSS * Cleanup angular directives * Extract helper functions * Improve tests + docs * Move css to _sidebar.scss * Exclude _id field from displaying the Visualize button to prevent an ES error * A11y improvements --- .../__tests__/directives/css_truncate.js | 81 ----- .../__tests__/directives/discover_field.js | 97 ------ .../__tests__/directives/field_chooser.js | 257 -------------- .../discover/__tests__/doc_table/doc_table.js | 1 + .../public/discover/get_inner_angular.ts | 22 +- .../kibana/public/discover/kibana_services.ts | 2 - .../public/discover/np_ready/_discover.scss | 121 ------- .../angular/directives/css_truncate.ts | 61 ---- .../discover/np_ready/angular/discover.html | 13 +- .../np_ready/angular/discover_state.ts | 2 +- .../discover/np_ready/components/_index.scss | 2 +- .../field_chooser/_field_chooser.scss | 36 -- .../components/field_chooser/_index.scss | 1 - .../field_chooser/discover_field.html | 26 -- .../field_chooser/discover_field.js | 139 -------- .../field_chooser/field_chooser.html | 99 ------ .../components/field_chooser/field_chooser.js | 296 ---------------- .../lib/detail_views/string.html | 106 ------ .../field_chooser/lib/visualize_url_utils.ts | 110 ------ .../discover_index_pattern.test.tsx.snap | 0 .../np_ready/components/sidebar/_index.scss | 1 + .../np_ready/components/sidebar/_sidebar.scss | 155 +++++++++ .../change_indexpattern.tsx | 0 .../sidebar/discover_field.test.tsx | 111 ++++++ .../components/sidebar/discover_field.tsx | 186 ++++++++++ .../sidebar/discover_field_bucket.tsx | 99 ++++++ .../sidebar/discover_field_details.tsx | 98 ++++++ .../discover_field_search.test.tsx | 3 +- .../discover_field_search.tsx | 2 +- .../discover_index_pattern.test.tsx | 0 .../discover_index_pattern.tsx | 6 +- .../sidebar/discover_sidebar.test.tsx | 131 +++++++ .../components/sidebar/discover_sidebar.tsx | 326 ++++++++++++++++++ .../discover_sidebar_directive.ts} | 25 +- .../index.ts} | 11 +- .../lib/field_calculator.js | 0 .../sidebar/lib/field_calculator.test.ts} | 126 +++---- .../sidebar/lib/field_filter.test.ts | 96 ++++++ .../components/sidebar/lib/field_filter.ts | 78 +++++ .../components/sidebar/lib/get_details.ts | 52 +++ .../sidebar/lib/get_field_type_name.ts | 73 ++++ .../lib/get_index_pattern_field_list.ts | 44 +++ .../sidebar/lib/get_warnings.ts} | 38 +- .../sidebar/lib/group_fields.test.ts | 114 ++++++ .../components/sidebar/lib/group_fields.tsx | 78 +++++ .../sidebar/lib/visualize_url_utils.ts | 188 ++++++++++ .../string_progress_bar.tsx | 11 +- .../{field_chooser => sidebar}/types.ts | 15 + .../np_ready/embeddable/search_embeddable.ts | 4 +- .../styles/_legacy/components/_index.scss | 1 - .../styles/_legacy/components/_sidebar.scss | 127 ------- .../__snapshots__/field_name.test.tsx.snap | 6 +- .../components/field_name/field_name.test.tsx | 18 +- .../components/field_name/field_name.tsx | 43 +-- .../public/components/table/table.tsx | 2 +- .../public/components/table/table_row.tsx | 4 +- test/accessibility/apps/discover.ts | 4 +- .../apps/management/_scripted_fields.js | 2 +- test/functional/page_objects/discover_page.ts | 13 +- .../common/layouts/preserve_layout.css | 2 +- .../export_types/common/layouts/print.css | 2 +- .../translations/translations/ja-JP.json | 7 - .../translations/translations/zh-CN.json | 7 - 63 files changed, 2006 insertions(+), 1775 deletions(-) delete mode 100644 src/legacy/core_plugins/kibana/public/discover/__tests__/directives/css_truncate.js delete mode 100644 src/legacy/core_plugins/kibana/public/discover/__tests__/directives/discover_field.js delete mode 100644 src/legacy/core_plugins/kibana/public/discover/__tests__/directives/field_chooser.js delete mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/angular/directives/css_truncate.ts delete mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/field_chooser/_field_chooser.scss delete mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/field_chooser/_index.scss delete mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/field_chooser/discover_field.html delete mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/field_chooser/discover_field.js delete mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/field_chooser/field_chooser.html delete mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/field_chooser/field_chooser.js delete mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/field_chooser/lib/detail_views/string.html delete mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/field_chooser/lib/visualize_url_utils.ts rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser => sidebar}/__snapshots__/discover_index_pattern.test.tsx.snap (100%) create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/_index.scss create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/_sidebar.scss rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser => sidebar}/change_indexpattern.tsx (100%) create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_field.test.tsx create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_field.tsx create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_field_bucket.tsx create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_field_details.tsx rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser => sidebar}/discover_field_search.test.tsx (98%) rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser => sidebar}/discover_field_search.tsx (99%) rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser => sidebar}/discover_index_pattern.test.tsx (100%) rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser => sidebar}/discover_index_pattern.tsx (94%) create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_sidebar.test.tsx create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_sidebar.tsx rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser/discover_index_pattern_directive.tsx => sidebar/discover_sidebar_directive.ts} (61%) rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser/discover_field_search_directive.ts => sidebar/index.ts} (67%) rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser => sidebar}/lib/field_calculator.js (100%) rename src/legacy/core_plugins/kibana/public/discover/{__tests__/directives/field_calculator.js => np_ready/components/sidebar/lib/field_calculator.test.ts} (64%) create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/field_filter.test.ts create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/field_filter.ts create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/get_details.ts create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/get_field_type_name.ts create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/get_index_pattern_field_list.ts rename src/legacy/core_plugins/kibana/public/discover/np_ready/{angular/directives/field_name.js => components/sidebar/lib/get_warnings.ts} (55%) create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/group_fields.test.ts create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/group_fields.tsx create mode 100644 src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/visualize_url_utils.ts rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser => sidebar}/string_progress_bar.tsx (80%) rename src/legacy/core_plugins/kibana/public/discover/np_ready/components/{field_chooser => sidebar}/types.ts (78%) delete mode 100644 src/legacy/ui/public/styles/_legacy/components/_sidebar.scss diff --git a/src/legacy/core_plugins/kibana/public/discover/__tests__/directives/css_truncate.js b/src/legacy/core_plugins/kibana/public/discover/__tests__/directives/css_truncate.js deleted file mode 100644 index 8dea9c61475dbe..00000000000000 --- a/src/legacy/core_plugins/kibana/public/discover/__tests__/directives/css_truncate.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import angular from 'angular'; -import expect from '@kbn/expect'; -import ngMock from 'ng_mock'; -import { pluginInstance } from 'plugins/kibana/discover/legacy'; - -let $parentScope; - -let $scope; - -let $elem; - -const init = function(expandable) { - // Load the application - pluginInstance.initializeServices(); - pluginInstance.initializeInnerAngular(); - ngMock.module('app/discover'); - - // Create the scope - ngMock.inject(function($rootScope, $compile) { - // Give us a scope - $parentScope = $rootScope; - - // Create the element - $elem = angular.element( - 'this isnt important' - ); - - // And compile it - $compile($elem)($parentScope); - - // Fire a digest cycle - $elem.scope().$digest(); - - // Grab the isolate scope so we can test it - $scope = $elem.isolateScope(); - }); -}; - -describe('cssTruncate directive', function() { - describe('expandable', function() { - beforeEach(function() { - init(true); - }); - - it('should set text-overflow to ellipsis and whitespace to nowrap', function(done) { - expect($elem.css('text-overflow')).to.be('ellipsis'); - expect($elem.css('white-space')).to.be('nowrap'); - done(); - }); - - it('should set white-space to normal when clicked, and back to nowrap when clicked again', function(done) { - $scope.toggle(); - expect($elem.css('white-space')).to.be('normal'); - - $scope.toggle(); - expect($elem.css('white-space')).to.be('nowrap'); - done(); - }); - }); -}); diff --git a/src/legacy/core_plugins/kibana/public/discover/__tests__/directives/discover_field.js b/src/legacy/core_plugins/kibana/public/discover/__tests__/directives/discover_field.js deleted file mode 100644 index 6ffda87ac2be8d..00000000000000 --- a/src/legacy/core_plugins/kibana/public/discover/__tests__/directives/discover_field.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import angular from 'angular'; -import _ from 'lodash'; -import sinon from 'sinon'; -import ngMock from 'ng_mock'; -import expect from '@kbn/expect'; -import { pluginInstance } from 'plugins/kibana/discover/legacy'; -import FixturesStubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern'; - -// Load the kibana app dependencies. - -describe('discoverField', function() { - let $scope; - let indexPattern; - let $elem; - beforeEach(() => pluginInstance.initializeServices()); - beforeEach(() => pluginInstance.initializeInnerAngular()); - beforeEach(ngMock.module('app/discover')); - beforeEach( - ngMock.inject(function(Private, $rootScope, $compile) { - $elem = angular.element(` - - `); - indexPattern = Private(FixturesStubbedLogstashIndexPatternProvider); - - _.assign($rootScope, { - field: indexPattern.fields.getByName('extension'), - addField: sinon.spy(() => ($rootScope.field.display = true)), - removeField: sinon.spy(() => ($rootScope.field.display = false)), - showDetails: sinon.spy(() => ($rootScope.field.details = { exists: true })), - }); - - $compile($elem)($rootScope); - - $scope = $elem.isolateScope(); - $scope.$digest(); - sinon.spy($scope, 'toggleDetails'); - }) - ); - - afterEach(function() { - $scope.toggleDetails.restore(); - $scope.$destroy(); - }); - - describe('toggleDisplay', function() { - it('should exist', function() { - expect($scope.toggleDisplay).to.be.a(Function); - }); - - it('should call onAddField or onRemoveField depending on the display state', function() { - $scope.toggleDisplay($scope.field); - expect($scope.onAddField.callCount).to.be(1); - expect($scope.onAddField.firstCall.args).to.eql([$scope.field.name]); - - $scope.toggleDisplay($scope.field); - expect($scope.onRemoveField.callCount).to.be(1); - expect($scope.onRemoveField.firstCall.args).to.eql([$scope.field.name]); - }); - - it('should call toggleDetails when currently showing the details', function() { - $scope.toggleDetails($scope.field); - $scope.toggleDisplay($scope.field); - expect($scope.toggleDetails.callCount).to.be(2); - }); - }); - - describe('toggleDetails', function() { - it('should notify the parent when showing the details', function() { - $scope.toggleDetails($scope.field); - expect($scope.onShowDetails.callCount).to.be(1); - }); - }); -}); diff --git a/src/legacy/core_plugins/kibana/public/discover/__tests__/directives/field_chooser.js b/src/legacy/core_plugins/kibana/public/discover/__tests__/directives/field_chooser.js deleted file mode 100644 index 47392c541890eb..00000000000000 --- a/src/legacy/core_plugins/kibana/public/discover/__tests__/directives/field_chooser.js +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import angular from 'angular'; -import ngMock from 'ng_mock'; -import _ from 'lodash'; -import sinon from 'sinon'; -import expect from '@kbn/expect'; -import $ from 'jquery'; -import { pluginInstance } from 'plugins/kibana/discover/legacy'; -import FixturesHitsProvider from 'fixtures/hits'; -import FixturesStubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern'; -import { SimpleSavedObject } from '../../../../../../../core/public'; - -// Load the kibana app dependencies. - -let $parentScope; -let $scope; -let hits; -let indexPattern; -let indexPatternList; - -// Sets up the directive, take an element, and a list of properties to attach to the parent scope. -const init = function($elem, props) { - ngMock.inject(function($rootScope, $compile, $timeout) { - $parentScope = $rootScope; - _.assign($parentScope, props); - $compile($elem)($parentScope); - - // Required for test to run solo. Sigh - $timeout(() => $elem.scope().$digest(), 0); - - $scope = $elem.isolateScope(); - }); -}; - -const destroy = function() { - $scope.$destroy(); - $parentScope.$destroy(); -}; - -describe('discover field chooser directives', function() { - const $elem = angular.element(` - - `); - beforeEach(() => pluginInstance.initializeServices()); - beforeEach(() => pluginInstance.initializeInnerAngular()); - - beforeEach(ngMock.module('app/discover')); - - beforeEach( - ngMock.inject(function(Private) { - hits = Private(FixturesHitsProvider); - indexPattern = Private(FixturesStubbedLogstashIndexPatternProvider); - indexPatternList = [ - new SimpleSavedObject(undefined, { id: '0', attributes: { title: 'b' } }), - new SimpleSavedObject(undefined, { id: '1', attributes: { title: 'a' } }), - new SimpleSavedObject(undefined, { id: '2', attributes: { title: 'c' } }), - ]; - - const fieldCounts = _.transform( - hits, - function(counts, hit) { - _.keys(indexPattern.flattenHit(hit)).forEach(function(key) { - counts[key] = (counts[key] || 0) + 1; - }); - }, - {} - ); - - init($elem, { - columns: [], - toggle: sinon.spy(), - hits: hits, - fieldCounts: fieldCounts, - addField: sinon.spy(), - addFilter: sinon.spy(), - indexPattern: indexPattern, - indexPatternList: indexPatternList, - removeField: sinon.spy(), - }); - - $scope.$digest(); - }) - ); - - afterEach(() => destroy()); - - const getSections = function(ctx) { - return { - selected: $('.dscFieldList--selected', ctx), - popular: $('.dscFieldList--popular', ctx), - unpopular: $('.dscFieldList--unpopular', ctx), - }; - }; - - describe('Field listing', function() { - it('should have Selected Fields, Fields and Popular Fields sections', function() { - const headers = $elem.find('.sidebar-list-header'); - expect(headers.length).to.be(3); - }); - - it('should have 2 popular fields, 1 unpopular field and no selected fields', function() { - const section = getSections($elem); - const popular = find('popular'); - const unpopular = find('unpopular'); - - expect(section.selected.find('li').length).to.be(0); - - expect(popular).to.contain('ssl'); - expect(popular).to.contain('@timestamp'); - expect(popular).to.not.contain('ip\n'); - - expect(unpopular).to.contain('extension'); - expect(unpopular).to.contain('machine.os'); - expect(unpopular).to.not.contain('ssl'); - - function find(popularity) { - return section[popularity] - .find('.dscFieldName') - .map((i, el) => $(el).text()) - .toArray(); - } - }); - - it('should show the popular fields header if there are popular fields', function() { - const section = getSections($elem); - expect(section.popular.hasClass('ng-hide')).to.be(false); - expect(section.popular.find('li:not(.sidebar-list-header)').length).to.be.above(0); - }); - - it('should not show the popular fields if there are not any', function() { - // Re-init - destroy(); - - _.each(indexPattern.fields, function(field) { - field.$$spec.count = 0; - }); // Reset the popular fields - init($elem, { - columns: [], - toggle: sinon.spy(), - hits: require('fixtures/hits'), - filter: sinon.spy(), - indexPattern: indexPattern, - }); - - const section = getSections($elem); - - $scope.$digest(); - expect(section.popular.hasClass('ng-hide')).to.be(true); - expect(section.popular.find('li:not(.sidebar-list-header)').length).to.be(0); - }); - - it('should move the field into selected when it is added to the columns array', function() { - const section = getSections($elem); - $scope.columns.push('bytes'); - $scope.$digest(); - - expect(section.selected.text()).to.contain('bytes'); - expect(section.popular.text()).to.not.contain('bytes'); - - $scope.columns.push('ip'); - $scope.$digest(); - expect(section.selected.text()).to.contain('ip\n'); - expect(section.unpopular.text()).to.not.contain('ip\n'); - - expect(section.popular.text()).to.contain('ssl'); - }); - }); - - describe('details processing', function() { - let field; - function getField() { - return _.find($scope.fields, { name: 'bytes' }); - } - - beforeEach(function() { - field = getField(); - }); - - it('should have a computeDetails function', function() { - expect($scope.computeDetails).to.be.a(Function); - }); - - it('should increase the field popularity when called', function() { - indexPattern.popularizeField = sinon.spy(); - $scope.computeDetails(field); - expect(indexPattern.popularizeField.called).to.be(true); - }); - - it('should append a details object to the field', function() { - $scope.computeDetails(field); - expect(field.details).to.not.be(undefined); - }); - - it('should delete the field details if they already exist', function() { - $scope.computeDetails(field); - expect(field.details).to.not.be(undefined); - $scope.computeDetails(field); - expect(field.details).to.be(undefined); - }); - - it('... unless recompute is true', function() { - $scope.computeDetails(field); - expect(field.details).to.not.be(undefined); - $scope.computeDetails(field, true); - expect(field.details).to.not.be(undefined); - }); - - it('should create buckets with formatted and raw values', function() { - $scope.computeDetails(field); - expect(field.details.buckets).to.not.be(undefined); - expect(field.details.buckets[0].value).to.be(40.141592); - }); - - it('should recalculate the details on open fields if the hits change', function() { - $scope.hits = [{ _source: { bytes: 1024 } }]; - $scope.$apply(); - - field = getField(); - $scope.computeDetails(field); - expect(getField().details.total).to.be(1); - - $scope.hits = [{ _source: { notbytes: 1024 } }]; - $scope.$apply(); - field = getField(); - expect(field.details).to.not.have.property('total'); - }); - }); -}); diff --git a/src/legacy/core_plugins/kibana/public/discover/__tests__/doc_table/doc_table.js b/src/legacy/core_plugins/kibana/public/discover/__tests__/doc_table/doc_table.js index 6b97da79fc5893..9e74df08233dad 100644 --- a/src/legacy/core_plugins/kibana/public/discover/__tests__/doc_table/doc_table.js +++ b/src/legacy/core_plugins/kibana/public/discover/__tests__/doc_table/doc_table.js @@ -61,6 +61,7 @@ const destroy = function() { describe('docTable', function() { let $elem; beforeEach(() => pluginInstance.initializeInnerAngular()); + beforeEach(() => pluginInstance.initializeServices()); beforeEach(ngMock.module('app/discover')); beforeEach(function() { $elem = angular.element(` diff --git a/src/legacy/core_plugins/kibana/public/discover/get_inner_angular.ts b/src/legacy/core_plugins/kibana/public/discover/get_inner_angular.ts index 031e10e99289f6..607d79b81618e9 100644 --- a/src/legacy/core_plugins/kibana/public/discover/get_inner_angular.ts +++ b/src/legacy/core_plugins/kibana/public/discover/get_inner_angular.ts @@ -27,7 +27,7 @@ import { CoreStart, LegacyCoreStart } from 'kibana/public'; import { DataPublicPluginStart } from '../../../../../plugins/data/public'; import { Storage } from '../../../../../plugins/kibana_utils/public'; import { NavigationPublicPluginStart as NavigationStart } from '../../../../../plugins/navigation/public'; -import { createDocTableDirective } from './np_ready/angular/doc_table/doc_table'; +import { createDocTableDirective } from './np_ready/angular/doc_table'; import { createTableHeaderDirective } from './np_ready/angular/doc_table/components/table_header'; import { createToolBarPagerButtonsDirective, @@ -37,18 +37,8 @@ import { createTableRowDirective } from './np_ready/angular/doc_table/components import { createPagerFactory } from './np_ready/angular/doc_table/lib/pager/pager_factory'; import { createInfiniteScrollDirective } from './np_ready/angular/doc_table/infinite_scroll'; import { createDocViewerDirective } from './np_ready/angular/doc_viewer'; -import { createFieldSearchDirective } from './np_ready/components/field_chooser/discover_field_search_directive'; -import { createIndexPatternSelectDirective } from './np_ready/components/field_chooser/discover_index_pattern_directive'; -import { createStringFieldProgressBarDirective } from './np_ready/components/field_chooser/string_progress_bar'; -// @ts-ignore -import { FieldNameDirectiveProvider } from './np_ready/angular/directives/field_name'; -// @ts-ignore -import { createFieldChooserDirective } from './np_ready/components/field_chooser/field_chooser'; -// @ts-ignore -import { createDiscoverFieldDirective } from './np_ready/components/field_chooser/discover_field'; import { CollapsibleSidebarProvider } from './np_ready/angular/directives/collapsible_sidebar/collapsible_sidebar'; import { DiscoverStartPlugins } from './plugin'; -import { createCssTruncateDirective } from './np_ready/angular/directives/css_truncate'; // @ts-ignore import { FixedScrollProvider } from './np_ready/angular/directives/fixed_scroll'; // @ts-ignore @@ -65,6 +55,7 @@ import { createTopNavDirective, createTopNavHelper, } from '../../../../../plugins/kibana_legacy/public'; +import { createDiscoverSidebarDirective } from './np_ready/components/sidebar'; /** * returns the main inner angular module, it contains all the parts of Angular Discover @@ -125,7 +116,6 @@ export function initializeInnerAngularModule( ]) .config(watchMultiDecorator) .directive('icon', reactDirective => reactDirective(EuiIcon)) - .directive('fieldName', FieldNameDirectiveProvider) .directive('renderComplete', createRenderCompleteDirective) .service('debounce', ['$timeout', DebounceProviderTimeout]); } @@ -149,16 +139,10 @@ export function initializeInnerAngularModule( .run(registerListenEventListener) .directive('icon', reactDirective => reactDirective(EuiIcon)) .directive('kbnAccessibleClick', KbnAccessibleClickProvider) - .directive('fieldName', FieldNameDirectiveProvider) .directive('collapsibleSidebar', CollapsibleSidebarProvider) - .directive('cssTruncate', createCssTruncateDirective) .directive('fixedScroll', FixedScrollProvider) .directive('renderComplete', createRenderCompleteDirective) - .directive('discoverFieldSearch', createFieldSearchDirective) - .directive('discoverIndexPatternSelect', createIndexPatternSelectDirective) - .directive('stringFieldProgressBar', createStringFieldProgressBarDirective) - .directive('discoverField', createDiscoverFieldDirective) - .directive('discFieldChooser', createFieldChooserDirective) + .directive('discoverSidebar', createDiscoverSidebarDirective) .service('debounce', ['$timeout', DebounceProviderTimeout]); } diff --git a/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts b/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts index 2ceb06f325a9ec..55f369eaecd2c2 100644 --- a/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts +++ b/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts @@ -16,7 +16,6 @@ * specific language governing permissions and limitations * under the License. */ -import angular from 'angular'; // just used in embeddables and discover controller import { DiscoverServices } from './build_services'; let angularModule: any = null; @@ -52,7 +51,6 @@ export const [getUrlTracker, setUrlTracker] = createGetterSetter<{ }>('urlTracker'); // EXPORT legacy static dependencies, should be migrated when available in a new version; -export { angular }; export { wrapInI18nContext } from 'ui/i18n'; import { search } from '../../../../../plugins/data/public'; import { createGetterSetter } from '../../../../../plugins/kibana_utils/common'; diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/_discover.scss b/src/legacy/core_plugins/kibana/public/discover/np_ready/_discover.scss index 62e7a96ed80cf7..8eaa66cf586244 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/_discover.scss +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/_discover.scss @@ -1,9 +1,5 @@ discover-app { flex-grow: 1; - - .sidebar-container { - background-color: transparent; - } } .dscHistogram { @@ -12,22 +8,6 @@ discover-app { padding: $euiSizeS; } -// SASSTODO: replace the margin-top value with a variable -.dscSidebar__listHeader { - margin-top: 5px; -} - -.dscFieldList--popular { - padding-top: $euiSizeS; -} - -.dscFieldList--selected, -.dscFieldList--unpopular, -.dscFieldList--popular { - padding-left: $euiSizeS; - padding-right: $euiSizeS; -} - // SASSTODO: replace the z-index value with a variable .dscWrapper { padding-right: $euiSizeS; @@ -109,107 +89,6 @@ discover-app { text-align: center; } -/** - * 1. Override sidebar-item-title styles. - */ -.dscSidebarItem { - position: relative; - display: flex; - align-items: center; - justify-content: space-between; - padding-top: 0 !important; /* 1 */ - padding-bottom: 0 !important; /* 1 */ - height: $euiSizeXL; - - &:hover, - &:focus { - .dscSidebarItem__action { - opacity: 1; - } - } -} - -.dscSidebarItem--active { - background: shade($euiColorLightestShade, 5%); - color: $euiColorFullShade; - font-weight: bold; -} - -/** - * 1. Truncate long text so it doesn't push the actions outside of the container. - */ -.dscSidebarItem__label { - overflow: hidden; /* 1 */ - text-overflow: ellipsis; /* 1 */ -} - -/** - * 1. Only visually hide the action, so that it's still accessible to screen readers. - * 2. When tabbed to, this element needs to be visible for keyboard accessibility. - */ -.dscSidebarItem__action { - opacity: 0; /* 1 */ - - &:focus { - opacity: 1; /* 2 */ - } -} - -.dscFieldSearch { - padding: $euiSizeS; -} - -.dscFieldFilter { - margin-top: $euiSizeS; -} - -.dscFieldDetails { - padding: $euiSizeS; - background-color: $euiColorLightestShade; - color: $euiTextColor; -} - -// SASSTODO: replace the padding and margin values with variables -.dscFieldDetails__progress { - background-color: $euiColorEmptyShade; - color: $euiColorDarkShade; - padding: $euiSizeXS; -} - -// SASSTODO: replace the margin-top value with a variable -.dscFieldDetailsItem { - margin-top: 5px; -} - -.dscFieldDetails__filter { - cursor: pointer; -} - -.dscFieldDetailsItem__title { - line-height: 1.5; - display: flex; - align-items: center; - justify-content: space-between; -} - -/** - * 1. If the field name is very long, don't let it squash the buttons. - */ -.dscFieldDetailsItem__buttonGroup { - flex: 0 0 auto; /* 1 */ -} - -.dscFieldDetailsItem__button { - appearance: none; - border: none; - padding: 0; - background-color: transparent; -} - -.dscFieldName--noResults { - color: $euiColorDarkShade; -} - .dscResults { h3 { margin: -20px 0 10px 0; diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/directives/css_truncate.ts b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/directives/css_truncate.ts deleted file mode 100644 index 6aa645ea9368ec..00000000000000 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/directives/css_truncate.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -export function createCssTruncateDirective() { - return { - restrict: 'A', - scope: {}, - link: ($scope: any, $elem: any, attrs: any) => { - $elem.css({ - overflow: 'hidden', - 'white-space': 'nowrap', - 'text-overflow': 'ellipsis', - 'word-break': 'break-all', - }); - - if (attrs.cssTruncateExpandable != null) { - $scope.$watch( - function() { - return $elem.html(); - }, - function() { - if ($elem[0].offsetWidth < $elem[0].scrollWidth) { - $elem.css({ cursor: 'pointer' }); - $elem.bind('click', function() { - $scope.toggle(); - }); - } - } - ); - } - - $scope.toggle = function() { - if ($elem.css('white-space') !== 'normal') { - $elem.css({ 'white-space': 'normal' }); - } else { - $elem.css({ 'white-space': 'nowrap' }); - } - }; - - $scope.$on('$destroy', function() { - $elem.unbind('click'); - $elem.unbind('mouseenter'); - }); - }, - }; -} diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.html b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.html index e9338b8bd57ccd..fb38f3e7d4c496 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.html +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.html @@ -20,20 +20,21 @@

    {{screenTitle}}

    -