From 000cb66751c3ea0186e1e564f493ed2475dd7059 Mon Sep 17 00:00:00 2001 From: Samer Zumot <54731842+samerzumot@users.noreply.github.com> Date: Sun, 23 Aug 2026 14:11:43 -0400 Subject: [PATCH 1/2] Add activity index calculation from accelerometer data (fixes #642) - Implement get_activity_index in C++ core using multi-axis epoch variance - Add get_activity_index bindings across C++, Python, Java, C#, TypeScript, Rust, Swift, Julia, and MATLAB - Add automated test activity_index.py --- cpp_package/src/data_filter.cpp | 22 ++++++++ cpp_package/src/inc/data_filter.h | 12 ++++ .../brainflow/brainflow/data_filter.cs | 33 ++++++++++- .../brainflow/data_handler_library.cs | 19 ++++++- .../src/main/java/brainflow/DataFilter.java | 41 ++++++++++++++ julia_package/brainflow/src/data_filter.jl | 18 ++++++ matlab_package/brainflow/DataFilter.m | 20 +++++++ nodejs_package/brainflow/data_filter.ts | 29 ++++++++++ nodejs_package/brainflow/functions.types.ts | 4 ++ python_package/brainflow/data_filter.py | 45 +++++++++++++++ .../examples/tests/activity_index.py | 56 +++++++++++++++++++ rust_package/brainflow/src/data_filter.rs | 33 +++++++++++ .../brainflow/src/ffi/data_handler.rs | 10 ++++ src/data_handler/data_handler.cpp | 48 ++++++++++++++++ src/data_handler/inc/data_handler.h | 3 + .../Sources/BrainFlow/DataFilter.swift | 23 ++++++++ 16 files changed, 414 insertions(+), 2 deletions(-) create mode 100644 python_package/examples/tests/activity_index.py diff --git a/cpp_package/src/data_filter.cpp b/cpp_package/src/data_filter.cpp index 561fcc124..bbc26a14d 100644 --- a/cpp_package/src/data_filter.cpp +++ b/cpp_package/src/data_filter.cpp @@ -585,6 +585,28 @@ double DataFilter::get_railed_percentage (double *data, int data_len, int gain) return output; } +double *DataFilter::get_activity_index (const double *accel_x, const double *accel_y, + const double *accel_z, int data_len, int period, int *output_len) +{ + if ((period <= 0) || (period > data_len)) + { + period = data_len; + } + int num_epochs = data_len / period; + double *output = new double[num_epochs]; + int res = ::get_activity_index (accel_x, accel_y, accel_z, data_len, period, output); + if (res != (int)BrainFlowExitCodes::STATUS_OK) + { + delete[] output; + throw BrainFlowException ("unable to calculate activity index", res); + } + if (output_len != NULL) + { + *output_len = num_epochs; + } + return output; +} + std::string DataFilter::get_version () { char version[64]; diff --git a/cpp_package/src/inc/data_filter.h b/cpp_package/src/inc/data_filter.h index de66122de..bac0f00a0 100644 --- a/cpp_package/src/inc/data_filter.h +++ b/cpp_package/src/inc/data_filter.h @@ -236,6 +236,18 @@ class DataFilter BrainFlowArray, BrainFlowArray> perform_ica (const BrainFlowArray &data, int num_components); + /** + * calculate activity index from 3-axis accelerometer data + * @param accel_x input 1d array + * @param accel_y input 1d array + * @param accel_z input 1d array + * @param data_len size of array + * @param period epoch length in samples (defaults to data_len if <= 0) + * @param output_len pointer to int to store number of epochs calculated + * @return pointer to array of activity indices + */ + static double *get_activity_index (const double *accel_x, const double *accel_y, + const double *accel_z, int data_len, int period, int *output_len); /// get brainflow version static std::string get_version (); diff --git a/csharp_package/brainflow/brainflow/data_filter.cs b/csharp_package/brainflow/brainflow/data_filter.cs index 98fce81c2..83121b26a 100644 --- a/csharp_package/brainflow/brainflow/data_filter.cs +++ b/csharp_package/brainflow/brainflow/data_filter.cs @@ -1,4 +1,4 @@ -using brainflow.math; +using brainflow.math; using System; using System.Numerics; @@ -585,6 +585,37 @@ public static void write_file (double[,] data, string file_name, string file_mod return result; } + /// + /// calculate activity index from 3-axis accelerometer data + /// + public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int period = 0) + { + if (accel_x == null || accel_y == null || accel_z == null) + { + throw new BrainFlowError ((int)BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR); + } + if ((accel_x.Length != accel_y.Length) || (accel_x.Length != accel_z.Length)) + { + throw new BrainFlowError ((int)BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR); + } + if (period <= 0) + { + period = accel_x.Length; + } + if (accel_x.Length < period) + { + throw new BrainFlowError ((int)BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR); + } + int num_epochs = accel_x.Length / period; + double[] output = new double[num_epochs]; + int res = DataHandlerLibrary.get_activity_index (accel_x, accel_y, accel_z, accel_x.Length, period, output); + if (res != (int)BrainFlowExitCodes.STATUS_OK) + { + throw new BrainFlowError (res); + } + return output; + } + /// /// calculate nearest power of two /// diff --git a/csharp_package/brainflow/brainflow/data_handler_library.cs b/csharp_package/brainflow/brainflow/data_handler_library.cs index 067e7ad73..246ce0057 100644 --- a/csharp_package/brainflow/brainflow/data_handler_library.cs +++ b/csharp_package/brainflow/brainflow/data_handler_library.cs @@ -1,4 +1,4 @@ -using System.Runtime.InteropServices; +using System.Runtime.InteropServices; namespace brainflow { @@ -187,6 +187,8 @@ public static extern int perform_wavelet_denoising (double[] data, int data_len, public static extern int get_heart_rate (double[] ppg_ir, double[] ppg_red, int data_size, int sampling_rate, int fft_size, double[] output); [DllImport ("DataHandler", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] public static extern int perform_ica (double[] data, int rows, int cols, int num_components, double[] w, double[] k, double[] a, double[] s); + [DllImport ("DataHandler", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] + public static extern int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int period, double[] output); // unsafe methods working with pointers [DllImport ("DataHandler", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] public static unsafe extern int perform_lowpass (double* data, int len, int sampling_rate, double cutoff, int order, int filter_type, double ripple); @@ -297,6 +299,8 @@ public static extern int perform_wavelet_denoising (double[] data, int data_len, public static extern int get_heart_rate (double[] ppg_ir, double[] ppg_red, int data_size, int sampling_rate, int fft_size, double[] output); [DllImport ("DataHandler32", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] public static extern int perform_ica (double[] data, int rows, int cols, int num_components, double[] w, double[] k, double[] a, double[] s); + [DllImport ("DataHandler32", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] + public static extern int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int period, double[] output); // unsafe methods working with pointers [DllImport ("DataHandler32", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] public static unsafe extern int perform_lowpass (double* data, int len, int sampling_rate, double cutoff, int order, int filter_type, double ripple); @@ -389,6 +393,19 @@ public static int perform_ica (double[] data, int rows, int cols, int num_compon return (int)BrainFlowExitCodes.GENERAL_ERROR; } + public static int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int period, double[] output) + { + switch (PlatformHelper.get_library_environment ()) + { + case LibraryEnvironment.x64: + return DataHandlerLibrary64.get_activity_index (accel_x, accel_y, accel_z, data_len, period, output); + case LibraryEnvironment.x86: + return DataHandlerLibrary32.get_activity_index (accel_x, accel_y, accel_z, data_len, period, output); + } + + return (int)BrainFlowExitCodes.GENERAL_ERROR; + } + public static int perform_lowpass (double[] data, int len, int sampling_rate, double cutoff, int order, int filter_type, double ripple) { switch (PlatformHelper.get_library_environment ()) diff --git a/java_package/brainflow/src/main/java/brainflow/DataFilter.java b/java_package/brainflow/src/main/java/brainflow/DataFilter.java index 13bb57db3..f5474d8ed 100644 --- a/java_package/brainflow/src/main/java/brainflow/DataFilter.java +++ b/java_package/brainflow/src/main/java/brainflow/DataFilter.java @@ -104,6 +104,9 @@ int get_heart_rate (double[] ppg_ir, double[] ppg_red, int len, int sampling_rat int perform_ica (double[] data, int rows, int cols, int num_components, double[] w, double[] k, double[] a, double[] s); + int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int period, + double[] output); + int get_version_data_handler (byte[] version, int[] len, int max_len); int log_message_data_handler (int log_level, String message); @@ -1073,6 +1076,44 @@ public static double[][] read_file (String file_name) throws BrainFlowError return reshape_data_to_2d (num_rows[0], num_cols[0], data_arr); } + /** + * calculate activity index from 3-axis accelerometer data + */ + public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int period) + throws BrainFlowError + { + if (accel_x == null || accel_y == null || accel_z == null) + { + throw new BrainFlowError ("Null pointer passed", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); + } + if ((accel_x.length != accel_y.length) || (accel_x.length != accel_z.length)) + { + throw new BrainFlowError ("Array lengths do not match", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); + } + if (period <= 0) + { + period = accel_x.length; + } + if (accel_x.length < period) + { + throw new BrainFlowError ("Data length is shorter than period", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); + } + int num_epochs = accel_x.length / period; + double[] output = new double[num_epochs]; + int ec = instance.get_activity_index (accel_x, accel_y, accel_z, accel_x.length, period, output); + if (ec != BrainFlowExitCode.STATUS_OK.get_code ()) + { + throw new BrainFlowError ("Failed to calculate activity index", ec); + } + return output; + } + + public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z) + throws BrainFlowError + { + return get_activity_index (accel_x, accel_y, accel_z, 0); + } + public static double[] reshape_data_to_1d (int num_rows, int num_cols, double[][] buf) { double[] output_buf = new double[num_rows * num_cols]; diff --git a/julia_package/brainflow/src/data_filter.jl b/julia_package/brainflow/src/data_filter.jl index 70b7efa00..929e86666 100644 --- a/julia_package/brainflow/src/data_filter.jl +++ b/julia_package/brainflow/src/data_filter.jl @@ -461,3 +461,21 @@ end psd[1], psd[2], length(psd[1]), Float64(freq_start), Float64(freq_end), band_power) return band_power[1] end + +@brainflow_rethrow function get_activity_index(accel_x, accel_y, accel_z, period::Integer=0) + if (length(accel_x) != length(accel_y)) || (length(accel_x) != length(accel_z)) + throw(BrainFlowError(string("Arrays lengths must match ", INVALID_ARGUMENTS_ERROR), Integer(INVALID_ARGUMENTS_ERROR))) + end + data_len = length(accel_x) + if period <= 0 + period = data_len + end + if data_len < period + throw(BrainFlowError(string("Data length is shorter than period ", INVALID_ARGUMENTS_ERROR), Integer(INVALID_ARGUMENTS_ERROR))) + end + num_epochs = div(data_len, period) + output = Vector{Float64}(undef, num_epochs) + ccall((:get_activity_index, DATA_HANDLER_INTERFACE), Cint, (Ptr{Float64}, Ptr{Float64}, Ptr{Float64}, Cint, Cint, Ptr{Float64}), + accel_x, accel_y, accel_z, Int32(data_len), Int32(period), output) + return output +end diff --git a/matlab_package/brainflow/DataFilter.m b/matlab_package/brainflow/DataFilter.m index aefa98f39..d11724d57 100644 --- a/matlab_package/brainflow/DataFilter.m +++ b/matlab_package/brainflow/DataFilter.m @@ -460,6 +460,26 @@ function write_file(data, file_name, file_mode) data = transpose(reshape(data_array.Value(1, 1:data_count.Value), [num_cols.Value, num_rows.value])); end + function output = get_activity_index(accel_x, accel_y, accel_z, period) + % calculate activity index + if nargin < 4 + period = size(accel_x, 2); + end + if period <= 0 + period = size(accel_x, 2); + end + task_name = 'get_activity_index'; + temp_input_x = libpointer('doublePtr', accel_x); + temp_input_y = libpointer('doublePtr', accel_y); + temp_input_z = libpointer('doublePtr', accel_z); + lib_name = DataFilter.load_lib(); + num_epochs = floor(size(accel_x, 2) / period); + temp_output = libpointer('doublePtr', zeros(1, num_epochs)); + exit_code = calllib(lib_name, task_name, temp_input_x, temp_input_y, temp_input_z, size(accel_x, 2), period, temp_output); + DataFilter.check_ec(exit_code, task_name); + output = temp_output.Value; + end + end end \ No newline at end of file diff --git a/nodejs_package/brainflow/data_filter.ts b/nodejs_package/brainflow/data_filter.ts index b032298f4..fea2f1cbe 100644 --- a/nodejs_package/brainflow/data_filter.ts +++ b/nodejs_package/brainflow/data_filter.ts @@ -65,6 +65,7 @@ class DataHandlerDLL extends DataHandlerFunctions this.lib.func(CLike.restore_data_from_wavelet_detailed_coeffs); this.detectPeaksZScore = this.lib.func(CLike.detect_peaks_z_score); this.performIca = this.lib.func(CLike.perform_ica); + this.getActivityIndex = this.lib.func(CLike.get_activity_index); this.getCsp = this.lib.func(CLike.get_csp); this.detrend = this.lib.func(CLike.detrend); this.calcStddev = this.lib.func(CLike.calc_stddev); @@ -607,4 +608,32 @@ export class DataFilter } return output[0]; } + + public static getActivityIndex( + accelX: number[], accelY: number[], accelZ: number[], period: number = 0): number[] + { + if (accelX.length !== accelY.length || accelX.length !== accelZ.length) + { + throw new BrainFlowError ( + BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "arrays lengths must match"); + } + if (period <= 0) + { + period = accelX.length; + } + if (accelX.length < period) + { + throw new BrainFlowError ( + BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "data length is shorter than period"); + } + const numEpochs = Math.trunc(accelX.length / period); + const output = [...new Array (numEpochs).fill(0)]; + const res = DataHandlerDLL.getInstance().getActivityIndex( + accelX, accelY, accelZ, accelX.length, period, output); + if (res !== BrainFlowExitCodes.STATUS_OK) + { + throw new BrainFlowError (res, 'Could not calc activity index'); + } + return output; + } } diff --git a/nodejs_package/brainflow/functions.types.ts b/nodejs_package/brainflow/functions.types.ts index 177b54aa9..ef3011b54 100644 --- a/nodejs_package/brainflow/functions.types.ts +++ b/nodejs_package/brainflow/functions.types.ts @@ -370,6 +370,8 @@ export enum DataHandlerCLikeFunctions { 'int detect_peaks_z_score (double *data, int data_len, int lag, double threshold, double influence, _Inout_ double *output)', perform_ica = 'int perform_ica (double *data, int rows, int cols, int num_components, _Inout_ double *w_mat, _Inout_ double *k_mat, _Inout_ double *a_mat, _Inout_ double *s_mat)', + get_activity_index = + 'int get_activity_index (double *accel_x, double *accel_y, double *accel_z, int data_len, int period, _Inout_ double *activity_index)', get_csp = 'int get_csp (const double *data, const double *labels, int n_epochs, int n_channels, int n_times, _Inout_ double *output_w, _Inout_ double *output_d)', get_railed_percentage = @@ -445,6 +447,8 @@ export class DataHandlerFunctions influence: number, output: number[]) => BrainFlowExitCodes; performIca!: (data: number[], rows: number, cols: number, numComponents: number, wMat: number[], kMat: number[], aMat: number[], sMat: number[]) => BrainFlowExitCodes; + getActivityIndex!: (accelX: number[], accelY: number[], accelZ: number[], dataLen: number, + period: number, activityIndex: number[]) => BrainFlowExitCodes; getCsp!: (data: number[], labels: number[], nEpochs: number, nChannels: number, nTimes: number, outputW: number[], outputD: number[]) => BrainFlowExitCodes; detrend!: (rawData: number[], dataLen: number, detrendOperation: number) => BrainFlowExitCodes; diff --git a/python_package/brainflow/data_filter.py b/python_package/brainflow/data_filter.py index 33608363f..73bbdf2c1 100644 --- a/python_package/brainflow/data_filter.py +++ b/python_package/brainflow/data_filter.py @@ -536,6 +536,17 @@ def __init__(self): ndpointer(ctypes.c_double) ] + self.get_activity_index = self.lib.get_activity_index + self.get_activity_index.restype = ctypes.c_int + self.get_activity_index.argtypes = [ + ndpointer(ctypes.c_double), + ndpointer(ctypes.c_double), + ndpointer(ctypes.c_double), + ctypes.c_int, + ctypes.c_int, + ndpointer(ctypes.c_double) + ] + self.get_version_data_handler = self.lib.get_version_data_handler self.get_version_data_handler.restype = ctypes.c_int self.get_version_data_handler.argtypes = [ @@ -1293,6 +1304,40 @@ def perform_ifft(cls, data): return output + @classmethod + def get_activity_index(cls, accel_x, accel_y, accel_z, period: int = 0): + """get activity index from 3-axis accelerometer data + + :param accel_x: acceleration X data + :type accel_x: NDArray[Shape["*"], Float64] + :param accel_y: acceleration Y data + :type accel_y: NDArray[Shape["*"], Float64] + :param accel_z: acceleration Z data + :type accel_z: NDArray[Shape["*"], Float64] + :param period: epoch length in samples (defaults to full data length if 0) + :type period: int + :return: activity index values + :rtype: NDArray[Shape["*"], Float64] + """ + check_memory_layout_row_major(accel_x, 1) + check_memory_layout_row_major(accel_y, 1) + check_memory_layout_row_major(accel_z, 1) + if not (accel_x.shape[0] == accel_y.shape[0] == accel_z.shape[0]): + raise BrainFlowError('invalid shapes', BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value) + data_len = accel_x.shape[0] + if period <= 0: + period = data_len + if data_len < period: + raise BrainFlowError('data length is shorter than period', BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value) + num_epochs = data_len // period + output = numpy.zeros(num_epochs).astype(numpy.float64) + res = DataHandlerDLL.get_instance().get_activity_index( + accel_x, accel_y, accel_z, data_len, period, output + ) + if res != BrainFlowExitCodes.STATUS_OK.value: + raise BrainFlowError('unable to calculate activity index', res) + return output + @classmethod def get_nearest_power_of_two(cls, value: int) -> int: """calc nearest power of two diff --git a/python_package/examples/tests/activity_index.py b/python_package/examples/tests/activity_index.py new file mode 100644 index 000000000..7ae28921a --- /dev/null +++ b/python_package/examples/tests/activity_index.py @@ -0,0 +1,56 @@ +import numpy as np +import sys +import os + +# add python_package to sys.path +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))) + +from brainflow.data_filter import DataFilter +from brainflow.exit_codes import BrainFlowError, BrainFlowExitCodes + + +def test_activity_index(): + print("Testing get_activity_index...") + + # 1. Test Constant Signal (AI must be exactly 0.0) + accel_x = np.full(100, 1.0, dtype=np.float64) + accel_y = np.full(100, 2.0, dtype=np.float64) + accel_z = np.full(100, -3.0, dtype=np.float64) + + ai_constant = DataFilter.get_activity_index(accel_x, accel_y, accel_z) + print(f"Constant signal AI: {ai_constant}") + assert len(ai_constant) == 1 + assert np.isclose(ai_constant[0], 0.0), f"Expected 0.0, got {ai_constant[0]}" + + # 2. Test Multi-epoch AI calculation + # Epoch 1: variance = 0 (constant) + # Epoch 2: variance > 0 (varying) + N = 50 + x = np.concatenate([np.zeros(N), np.sin(np.linspace(0, 2 * np.pi, N, endpoint=False))]) + y = np.concatenate([np.zeros(N), np.cos(np.linspace(0, 2 * np.pi, N, endpoint=False))]) + z = np.concatenate([np.zeros(N), np.zeros(N)]) + + ai_epochs = DataFilter.get_activity_index(x, y, z, period=N) + print(f"Epochs AI: {ai_epochs}") + assert len(ai_epochs) == 2 + assert np.isclose(ai_epochs[0], 0.0) + + # Theoretical variance of sine/cos of amplitude 1 is 0.5 + # var_x = 0.5, var_y = 0.5, var_z = 0 -> total_var = (0.5 + 0.5 + 0)/3 = 1/3 + # AI = sqrt(1/3) = ~0.57735 + expected_ai_epoch1 = np.sqrt((np.var(x[N:]) + np.var(y[N:]) + np.var(z[N:])) / 3.0) + print(f"Calculated AI: {ai_epochs[1]}, Expected: {expected_ai_epoch1}") + assert np.isclose(ai_epochs[1], expected_ai_epoch1) + + # 3. Test Invalid Arguments + try: + DataFilter.get_activity_index(np.zeros(10), np.zeros(5), np.zeros(10)) + assert False, "Should have raised BrainFlowError for shape mismatch" + except BrainFlowError as e: + assert e.exit_code == BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value + + print("All activity index tests passed successfully!") + + +if __name__ == '__main__': + test_activity_index() diff --git a/rust_package/brainflow/src/data_filter.rs b/rust_package/brainflow/src/data_filter.rs index 8bdb06ee6..3e2a61b20 100644 --- a/rust_package/brainflow/src/data_filter.rs +++ b/rust_package/brainflow/src/data_filter.rs @@ -859,6 +859,39 @@ where Ok(check_brainflow_exit_code(res)?) } +/// Calculate activity index from 3-axis accelerometer data. +pub fn get_activity_index( + accel_x: &[f64], + accel_y: &[f64], + accel_z: &[f64], + period: Option, +) -> Result> { + if accel_x.len() != accel_y.len() || accel_x.len() != accel_z.len() { + return Err(BrainFlowError::InvalidArguments); + } + let data_len = accel_x.len(); + let period = period.unwrap_or(data_len); + if period == 0 || data_len < period { + return Err(BrainFlowError::InvalidArguments); + } + let num_epochs = data_len / period; + let mut output = Vec::::with_capacity(num_epochs); + let res = unsafe { + data_handler::get_activity_index( + accel_x.as_ptr() as *const c_double, + accel_y.as_ptr() as *const c_double, + accel_z.as_ptr() as *const c_double, + data_len as c_int, + period as c_int, + output.as_mut_ptr() as *mut c_double, + ) + }; + check_brainflow_exit_code(res)?; + + unsafe { output.set_len(num_epochs) }; + Ok(output) +} + /// Get DataFilter version. pub fn get_version() -> Result { const MAX_CHARS: usize = 64; diff --git a/rust_package/brainflow/src/ffi/data_handler.rs b/rust_package/brainflow/src/ffi/data_handler.rs index e466eefa0..197a2b679 100644 --- a/rust_package/brainflow/src/ffi/data_handler.rs +++ b/rust_package/brainflow/src/ffi/data_handler.rs @@ -272,6 +272,16 @@ extern "C" { s_mat: *mut f64, ) -> ::std::os::raw::c_int; } +extern "C" { + pub fn get_activity_index( + accel_x: *const f64, + accel_y: *const f64, + accel_z: *const f64, + data_len: ::std::os::raw::c_int, + period: ::std::os::raw::c_int, + activity_index: *mut f64, + ) -> ::std::os::raw::c_int; +} extern "C" { pub fn set_log_level_data_handler(log_level: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } diff --git a/src/data_handler/data_handler.cpp b/src/data_handler/data_handler.cpp index 2f177faad..db07d10be 100644 --- a/src/data_handler/data_handler.cpp +++ b/src/data_handler/data_handler.cpp @@ -1726,6 +1726,54 @@ int perform_ica (double *data, int rows, int cols, int num_components, double *w return res; } +int get_activity_index (const double *accel_x, const double *accel_y, const double *accel_z, + int data_len, int period, double *output) +{ + if ((accel_x == NULL) || (accel_y == NULL) || (accel_z == NULL) || (output == NULL) || + (period <= 0) || (data_len < period)) + { + data_logger->error ("Invalid arguments for get_activity_index: accel_x {}, accel_y {}, " + "accel_z {}, output {}, data_len {}, period {}", + (accel_x != NULL), (accel_y != NULL), (accel_z != NULL), (output != NULL), data_len, + period); + return (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR; + } + + int num_epochs = data_len / period; + for (int epoch = 0; epoch < num_epochs; epoch++) + { + int start_pos = epoch * period; + int end_pos = start_pos + period; + + double mean_x = 0.0, mean_y = 0.0, mean_z = 0.0; + for (int i = start_pos; i < end_pos; i++) + { + mean_x += accel_x[i]; + mean_y += accel_y[i]; + mean_z += accel_z[i]; + } + mean_x /= period; + mean_y /= period; + mean_z /= period; + + double var_x = 0.0, var_y = 0.0, var_z = 0.0; + for (int i = start_pos; i < end_pos; i++) + { + var_x += (accel_x[i] - mean_x) * (accel_x[i] - mean_x); + var_y += (accel_y[i] - mean_y) * (accel_y[i] - mean_y); + var_z += (accel_z[i] - mean_z) * (accel_z[i] - mean_z); + } + var_x /= period; + var_y /= period; + var_z /= period; + + double total_var = (var_x + var_y + var_z) / 3.0; + output[epoch] = sqrt (std::max (0.0, total_var)); + } + + return (int)BrainFlowExitCodes::STATUS_OK; +} + int get_version_data_handler (char *version, int *num_chars, int max_chars) { strncpy (version, BRAINFLOW_VERSION_STRING, max_chars); diff --git a/src/data_handler/inc/data_handler.h b/src/data_handler/inc/data_handler.h index 2e50e284c..b933f76a5 100644 --- a/src/data_handler/inc/data_handler.h +++ b/src/data_handler/inc/data_handler.h @@ -69,6 +69,9 @@ extern "C" double *data, int data_len, int lag, double threshold, double influence, double *output); SHARED_EXPORT int CALLING_CONVENTION perform_ica (double *data, int rows, int cols, int num_components, double *w_mat, double *k_mat, double *a_mat, double *s_mat); + SHARED_EXPORT int CALLING_CONVENTION get_activity_index (const double *accel_x, + const double *accel_y, const double *accel_z, int data_len, int period, + double *activity_index); // logging methods SHARED_EXPORT int CALLING_CONVENTION set_log_level_data_handler (int log_level); diff --git a/swift_package/Sources/BrainFlow/DataFilter.swift b/swift_package/Sources/BrainFlow/DataFilter.swift index ec21ef5a9..68aa696a2 100644 --- a/swift_package/Sources/BrainFlow/DataFilter.swift +++ b/swift_package/Sources/BrainFlow/DataFilter.swift @@ -704,6 +704,27 @@ public enum DataFilter { BrainFlowArray.reshape_data_to_2d(num_rows: num_rows, num_cols: num_cols, linear_buffer: linear_buffer) } + public static func get_activity_index(accel_x: [Double], accel_y: [Double], accel_z: [Double], period: Int = 0) throws -> [Double] { + guard accel_x.count == accel_y.count, accel_x.count == accel_z.count else { throw invalidArguments("Array lengths must match") } + let dataLen = accel_x.count + let periodToUse = period <= 0 ? dataLen : period + guard periodToUse > 0, dataLen >= periodToUse else { throw invalidArguments("Data length is shorter than period") } + let numEpochs = dataLen / periodToUse + var output = [Double](repeating: 0.0, count: numEpochs) + try accel_x.withUnsafeBufferPointer { xPtr in + try accel_y.withUnsafeBufferPointer { yPtr in + try accel_z.withUnsafeBufferPointer { zPtr in + try output.withUnsafeMutableBufferPointer { outPtr in + try DataFilterNative.withData { native in + try checkBrainFlowExitCode(native.get_activity_index(xPtr.baseAddress, yPtr.baseAddress, zPtr.baseAddress, CInt(dataLen), CInt(periodToUse), outPtr.baseAddress), "Failed to calculate activity index") + } + } + } + } + } + return output + } + private static func withMutableData(_ data: inout [Double], _ body: (UnsafeMutablePointer?, Int) throws -> T) throws -> T { try data.withUnsafeMutableBufferPointer { pointer in try body(pointer.baseAddress, pointer.count) @@ -753,6 +774,7 @@ final class DataFilterNative { let restore_data_from_wavelet_detailed_coeffs: @convention(c) (UnsafeMutablePointer?, CInt, CInt, CInt, CInt, UnsafeMutablePointer?) -> CInt let detect_peaks_z_score: @convention(c) (UnsafeMutablePointer?, CInt, CInt, Double, Double, UnsafeMutablePointer?) -> CInt let perform_ica: @convention(c) (UnsafeMutablePointer?, CInt, CInt, CInt, UnsafeMutablePointer?, UnsafeMutablePointer?, UnsafeMutablePointer?, UnsafeMutablePointer?) -> CInt + let get_activity_index: @convention(c) (UnsafePointer?, UnsafePointer?, UnsafePointer?, CInt, CInt, UnsafeMutablePointer?) -> CInt let set_log_level_data_handler: @convention(c) (CInt) -> CInt let set_log_file_data_handler: @convention(c) (UnsafePointer?) -> CInt let log_message_data_handler: @convention(c) (CInt, UnsafeMutablePointer?) -> CInt @@ -805,6 +827,7 @@ final class DataFilterNative { restore_data_from_wavelet_detailed_coeffs = try library.symbol("restore_data_from_wavelet_detailed_coeffs", as: type(of: restore_data_from_wavelet_detailed_coeffs)) detect_peaks_z_score = try library.symbol("detect_peaks_z_score", as: type(of: detect_peaks_z_score)) perform_ica = try library.symbol("perform_ica", as: type(of: perform_ica)) + get_activity_index = try library.symbol("get_activity_index", as: type(of: get_activity_index)) set_log_level_data_handler = try library.symbol("set_log_level_data_handler", as: type(of: set_log_level_data_handler)) set_log_file_data_handler = try library.symbol("set_log_file_data_handler", as: type(of: set_log_file_data_handler)) log_message_data_handler = try library.symbol("log_message_data_handler", as: type(of: log_message_data_handler)) From f649af13a645867b1dba7885e9d42d38fd754c52 Mon Sep 17 00:00:00 2001 From: Samer Zumot <54731842+samerzumot@users.noreply.github.com> Date: Wed, 2 Sep 2026 16:04:26 -0400 Subject: [PATCH 2/2] feat: update activity index calculation with sampling rate, epoch period validation, and baseline noise variance support --- .github/workflows/run_unix.yml | 2 + after_processing.png | Bin 0 -> 143534 bytes before_processing.png | Bin 0 -> 141002 bytes cpp_package/src/data_filter.cpp | 25 ++- cpp_package/src/inc/data_filter.h | 10 +- .../brainflow/brainflow/data_filter.cs | 26 ++- .../brainflow/data_handler_library.cs | 10 +- .../src/main/java/brainflow/DataFilter.java | 45 ++++-- julia_package/brainflow/src/data_filter.jl | 24 ++- matlab_package/brainflow/DataFilter.m | 39 ++++- nodejs_package/brainflow/data_filter.ts | 38 ++++- nodejs_package/brainflow/functions.types.ts | 2 +- python_package/brainflow/data_filter.py | 45 +++++- .../examples/tests/activity_index.py | 153 +++++++++++++++--- rust_package/brainflow/src/data_filter.rs | 26 ++- .../brainflow/src/ffi/data_handler.rs | 4 + src/data_handler/data_handler.cpp | 73 +++++---- src/data_handler/inc/data_handler.h | 4 +- .../Sources/BrainFlow/DataFilter.swift | 27 +++- 19 files changed, 437 insertions(+), 116 deletions(-) create mode 100644 after_processing.png create mode 100644 before_processing.png diff --git a/.github/workflows/run_unix.yml b/.github/workflows/run_unix.yml index f0d10f9d8..688da4702 100644 --- a/.github/workflows/run_unix.yml +++ b/.github/workflows/run_unix.yml @@ -378,6 +378,8 @@ jobs: run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/band_power.py - name: BandPowerAll Python run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/band_power_all.py + - name: Activity Index Python + run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/activity_index.py - name: Denoising Cpp run: $GITHUB_WORKSPACE/cpp_package/examples/signal_processing/build/denoising env: diff --git a/after_processing.png b/after_processing.png new file mode 100644 index 0000000000000000000000000000000000000000..76637389476906a5d2c7356707665371cbd7ac96 GIT binary patch literal 143534 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 Mr4^+rB#Z+87bQKGumAu6 literal 0 HcmV?d00001 diff --git a/before_processing.png b/before_processing.png new file mode 100644 index 0000000000000000000000000000000000000000..b7572dbb9e55808203dff6c016c50f76e7f88e32 GIT binary patch literal 141002 zcmeEtWmg}{R8*o zTdQZy>YA#a>aOZ@_TJ}Iw3>=6Itnog002Ojmy^-}0APXu0N@T1065xu!F4`rH7^4XIp0{E;a!+ZWc-#Fxcg@AUnI`|82nL>}JhQ zp0s5Hy$G_4oZe>u0Mqo}2UsOmX$t@X0P<22T3&glMxI`zLyrOV1V-u?lOG!oV@TKt z_hb5Q>^gR3ZRms0X=%Z7dE%65GapoYO(Km$;!$}g$@o??Vjc9lPr#ljbr%5& z2CL$Ry*c;Z=d>)Fm$);-?8b1QJ+Bmjv2EwYKhZ(i?v`~F*89r}eMWIaSr+@4pLT zH# z(`Oz+ATF-N7N7rF{ln-CEI_T&?rt(bQeNIyueZB(=l$BYtq)dK^izT-EE}HN{tfGA zIi_%-63_!8`YyJ(r3IgfiD?D`mR0rs?_g;VB(Qd_ACvO)(YxQm$k0S+!6B4L!v@i% z@wzM#P1B+z{`PB$CHtiav;QVvO<8dJ{MSc+q!B+A*eIG`{3Ftjp zj_a>7R=~7QC~~$)bO9obFoAy@p&P?tU#6Kp~RA;B z$40~TcgkHOST3AnP_Y`rt(iGO1pu@AmLq}9x4U=_VeD`xy$=?kBxVy~H=CFwpsr{jxXXWE>Aq#%% zzxxKK&eWej)|2Z5bz0#KkLGom2)qO{0(Mf=zqdPUk5bJCZ2fT%c01pZ9Lt+yhi5nB z1gTiPm9Xk|Gywq|zF_h0I($U{OpvBU z53>^!GjQ!!FIL&oSbkO2hY>9hq7r5MWe|6kACg(0u>4qX-?lsN=sxEUk>uL5IDfVg z65TLF1svrT1SL8}C!S0V88lcR%KJK{pes5R5;AE0qnoVAFIM{Pev1Y3SBi?>vataQ zjMlv`%e-=e^;w?GbB5aC6M=2ZyH1w|fZjDRrC`bQy2o z2Ll3s9}1F*B1LUg!j+oXqvQh(=r#jgu61vw)mno;*5+qD-tf8cx5Y^of-U(i-Hi<& z_J|>G-6X>${3j!=<(qvcx76(Hn9w)ZsqHyy@KJF9Sqx6t^W4zyZq@qX>7*WW{AxIk z2o|u3BOW^h6FY=+zj5eB<_hxwsSBMkI4C~KXEik}i!mRKV3tDHK9bID`Ysy9B$*DX z!Fa&m)$*iPS*GydWA1JqhEh*C`c-gectEAHq}cujVTMV!>_t!geAt{h+v*4C?8F`>a_eWC zuMS}iriYx{_}ybe@2*x7hBIZ{rlVVj_Qwa)Zw$R=X(R(vYH)>TS8|~7aeofo)0hZ8 z()d0K9!Y1a_-zS_QN&j4*daJAFLMq4T#^uubsQ5OCXy{ybSmk!gzB;qlY{_OcAS@RQ&>6_(a`1fx2!-btHO{4c>Cmn)i3|Aar0+2P|Pq z&C4Ch$r!%($~)c?HT>m9e_uRMOTHl5n0myu`;alTYX-;9TltS84pnCwBd4~pW?IFK zT%8t)pgNTLpknW_2;a}$SDhEmiMwgwa#2gAH$X4Y8EyZG(Q;{VM!j*D@Mgg*1npAzkgM{xA5S7 zzrSWkFqkcw=G|WLMVqRrMKo&HKTR<3&bvPLm|s)*v6x~nSnqY}r0R{kF`lO~ zSPcLGJv}{Hz0Lvivo~!(Qrz?Xv;Lk1uTBdv$YNtzr}^io15P2nbxOhV60>UFL(D1_SUro$u>$kitr#H-b-Fs7V$^ znzrP#4>o4|h52fXXdpPdMWj9AfOQ@BYxf+1Vy!a`l#7wl?uO&YL2_GVclN>3zVd@r z(*yeFR0obDcbhY$;w=)jkyE^GSExA!3l`Oh1kry|qiQmKIS*&@IC2+v^aZ$|8KGpi zJR4xe460?BMGjTT+RHMk6t*0)M*W04pj$7R2kuq{b)&zvw}&JXLjOz7T^B1JnX%@c z*+Rj7Z5LH0$%2n+-cni#(5ln+-hx?QaE2(R-)w z*R(vRx6)uG?A3ru%)bnjFyY1`Ymk+y{Z^$U9s06Ko9Do3B&Nk|2`FmLI8r+K@?;QJ z%ISbVFMZM_=p=zv)**52y&0UrPn1K^oM5{ubX;9Q24iQhH{+H`<8#72Pgh}HboA}X zN>wutZL;Z&C~U;JDhl)WiO6J3JNH>Tp_p=}ASQ6fU^b&X+S1%o&pZ$9)fk@1Otxo< zgh6s%W&EY}_@TXLL!xVSAtA6FTgMh1dEJu7qh{J8Jzjg+GodsV3JbT~##y~iYTFuI zc0cgvt1K)pm-h6K8yS@azh`G3rb!eIQO@NpE-8U2^t(c?>o{gs%HzkDj6f5ZTEkuD z2fTPFd^!S$v2Z`9qx09A{N)QyT4()84o9PK)u@T~yOHy81`>4K$`A z=GTX0C#*o-P-C1hUbI}?DiWlhu9Us<$B>tv0wWgNG2ismUIPcXMrg=EO`sBs-6x0k zOx&3)z(jy-1q)pucYN>LE{fyd7WYw1d5?BcrPMYn79xr3<`FIXEqQRv=8iNYXo%Mp zWe=$qO=TE~2NLwlu}i%9?d5nkcyT`@6OJ9H?W*;=FD0>51KB@@H%U9hSz(N&#dQnT z#g~ZUK3B@e|Ev=%Pp*jHco40|+0`0X8xZ}X1A2-vrgblsKwcT`*5nX(7!2S)QXh+g zkg6xKpifrKOaFMT>bHo)uB1HGf=J4bHoQoUN|rhK9la)PNTE%uE-Yk^;aPv@C}zK; zt|swbJHnW7+g*6G1?)x7E&Ixwi!^c&;XY#%@i3LzGLE^JSpemit?;pnww+z-Nahtm z_>U6bD)O+>B?Q=%m`hxl=383EU?nKgubE!uIy|b!R<;nts5yc19=KL9^AZd3*IP0a z{pvucT;$BS3C%&(Z{O!a6V&jC*ih?m9U}$v^4*P_!C^@zygO@`QdXrgSq)El>?*e_ z)lU@#Q%PFv>^QgTN$Hpf?n7wAPTG;pEDk?&RLHC0=ydVIV2f~>@n zvqc0c01d{{?ShinX|cSJ3VDmP-_QOEjSvW0ace%fs*YH3PXjk~N=>R!zG*nA-J@EN zJHHs|E~@O!&9!6V9HCq(l|71Bl>jWb^Q3vyrdIJDikW{@aVckZV0eU=RAJp_i`D+H z;-~tVV9a*>wJtP-QqDUNQsp<eg3&JC)Rr9J_tXmC}$2wiLF=S@OJAG$@UAmW77 ztJE1)S_M1v*6xTSzA$9j&4*J9x#5N`T23RoIjXyxCL_X}OeFCETw3BMpdK6ARI*4W zi%kK>M24kJfSMZnZdE@m+6bPzHa4)b&;)suR3akKG(=Jsapo@lW%p;`r zN3CyFsz8Npk~2K^t2iv;A7Jv%S+uP@G!f5GWG1l#N&j$_Z$%x_D~n6#VYFnFCs9ud zqw?N7P^~o#P;j#m(29_}CCWPM=im(Ncz=zO-%0gD(hZlBJ2R}wD1G|I7hO=QyGRgo z!oxI*Frg#4(px{}EJd!lBUR$ZGV~2#!o07#N=oTg?@r;YQ$+!MchG3qjt$V{xvboN zFSg3&j?ppxyF{r{OLf1eGpnx079$QKeY2`jtt2#A2tCWwmWq(&qj1nnN-%OaMuJJ& zZIrvt^ZbY9xX~X+J#4Fde3d&tRD9h+l%U*djixr;p5M`l(>krXr6$Jx*Lv_1tK_(h zsRE43yX)`GKVx;3)J6v3DCzoG%IzZ+tei_(xV~qNr13q@62&m~L+!j=bFPbze8vsA z5VOYS68t9)m?nwD&k>f2AP4@IGoY8?0LQUAzqKv~)baI^XvJ~B(WqA|`lA*ZCu^#4bgBG^1&Y&6JaMl7F>O z=gxeTAemvLl|Z2yecJ381WZFKAiNWeTb@kZdob0oZSPwIuY5&CIoUfSxbJMRD4XEG)YkAf+SjL`fICAkZ07~12Q$LU@-2&!N2aVeH8O@N=T(CH zIdles#K|=JE*ghso+zfMBpk~^dcV}}sFia-0f*C+xXOf<*_#5mc z=1kMAvZ1}RTqq003EpENh=`(9-xNsNcQeJJtKIYh#5Nru7%Ib6DPcb=pDcuF(dRb5 zR7FOwf^Vm>#&!Mg;k@NksDr#F;?oOfgWiB+3EC(9=Ryzqp3MD@A=#rqkWsW+pr2ZBL( zYr$PwXOvN#pDD5Gbfcm;LwZ@XZ6=<9`^rVeK?Fu=>>o?B=uFDAkPTTa`qKbxj3>;< zjOwBlIxRtKF{1rp!Tx!h8}Tc>$V*=obzVN&?0M!cl&nUw6RIl>6>T^3k4J+u@vAXV z%|cS-=2h%mD{#F>c_-DebEaQGq$A3WG@J7MrjE^0>e(3LJ_F@Jno`)tTJ`-I};% z-@iJLl`emm=Y`IC@-YVuG47rN;_&PM@(-i~FKRrL;<`GF{QUe#0_`q>zR=3@0keft zC>$WT;WF1Z7Q|s8<9FEsBqM*Zh?&UBD8%Ueu9*Tsk-glpg>aC7tEvT~ntVt&Ip34< zeilzbjsnq#Vz~39^EYJzaY6H@e26@jb~W!gn|g!3K_Cs;Fe`1&6sI0Sb|Ds9@&Tai z6;+aq&D*O#=Rhl!kA=-}%8lYA*Dn@Ar&gsEh%Tz36d~fjV9Etp=SWFgU7h|QKy{G* zqGeN)37KG9qmpk{YNf<6chlk)$Q!tlLu}&>$W>$gpgJ4C;J2aKeXd zD2<&X(q_Gt(rfeo!1uf8D@SpL`9sY%N+lF;w*=QNEl6M=SmU8gi zhg}A5h6&znjqDxGQ-wf7+iW74yKz};jj1Py+@MK4(YP9UW&LRQ9HFrJDr2cFg_KVT zLFB1SKu!B%01DmRQcuTR8aEmU(HY0UB~V*_#&b5Js6CZWl64qjTrcUGftriaYO0g3 zbDX6H5~bx!9tj`G~WdBd{Ral;GH8EfH|!Qb?mTG5Ny_g6fI5QJ)m26omVb0IV1b?W zJtk!J`FFv)15CK#6_Y@_cR*eePdSkiiDe1-trGQ|@d4sgkkz`9ZscgR%C8st} zw=Y4A>mj9(5DD~hoX#|Hf^rd`uBJH1#qInMExwy@AJNrsuvq~S&&ucS5ji8|Q>t}{ zI`h0P$mxV$=g1ne(NP-Z2aQljWHjpqrtatA8kmLLeK$AKQ#J zecdHk-u2snW*B8B{sDYav`5Bzj8rEP)Oc|mMOTKhF|N+)sO_Fui=Ma*-Y9yhQCIF%$&EM?c4Xe=a#7DAU0fy_pN=t;|Gg@5>qA#i} z^r{1lqaKp=%ku7FDJ?cikXqg&cMXP+jC~s=HLnn;k$B=dEcn@ynGB>T(0TQH9vf@e(X53c`FXbB9?WK({*9p0X6m%#Zw6O}$u~C11a{)pZF7!%^6xo3qj#&^TeHy_mE^JZ|3p7Al90#F zQlcNu$k_66y(n5*)Q1tOcO`&zx8`D&H3E-b}mn+RW4-VLVdM z8T-$Tw6ZTW_5Q*{uh;p~#iOK7Pv$|l9gE?8tD=~6_f-=Y_ls&kqtTkIiU?V7{txN< zz|web|3bPoustEunU>6{3+<}%+`YDMV9nY{Qq^izW{+mF9ny>VXT*+v^%W(A8wI-U zB3%U`9$b)Mq)!K^;fJ9QdhU;o%TF`S##`N2~AbrJD9=LC2@Xch^mkYXqDDAoSO60KCKc9 zkW>Mlxgv=ES>_{WX(Lc(Nlh9re3MK(DZ+ zVrT}WHaMaiFSyX+RSprIBo}kbLqMBopvFQn(QPFYP=P(x=dqZJp4dU7oow~d38$tnJIoN8v;`(k}l3<{OXF1(7Bc{J=F2*&L#jVt^- z7&l}g?iQlAMl)%)AXzz2MURxS%*6QC660H&jV4HVBZ!1mmfj04h+mWfa}eLmA(R4L zQxDlL*^MHc7fwtTPN)D#gW={${l)0kP~U4@FH8F_RDzwab+kklDG3>HhCfGMx@eK4 zT{VXg%zMxr=?pre3zbH1=&(L(&QW7@vKJpHChzSttDkdNP#j>>vdXk;ALzxxwcAS1|h!&qjHFuqZhHXO*K`$1F1fY7Ig7uI82tl8{qBCMHt+Yz0ZL5_ zGpOiBt6D337#`O2qZ)R%3Q$QWN~&;lbo?8xN#crhUU-A9E=z=QD!iHSHl>y{jdlH< z1lB)fH%}B1Ots&fFe8xd2nE4~yFrvlN55lsMu{NpRVyK|h!{nFe*-pz=fV+H6(hM8 zBA_*t(l*0T)VlvSLQt(I@W+Rr`1GJUITCVVRx-Z411ayvfYa?C6q)HOf1rqUgy+F! zrx#e(9}B&}Fi$9ML!emlcef-m%z}&rv~B`K3{vqN#?Q5c%WtpGoYqmW|LV1ZM_$sl z3q*X?baV*XuCgR$5({A;Ha<`9UJg^p`umGSV35UF7y7>|l}!}gvSTWmhnVmj&*CRg zV?{&3s{Heex?AOZvdHvHA5up@XI6ZO6prHr{de9};I0jtktv8EF-4lWbRIGoJ;J%i z#4#3@vU#{=w=h5vPlc7xUqOHsouZ)q)s92w%;|%zvQWftIuM+iQ!kWFt zv8iNsVL6mS33>lrjz`*3>;8>Iw(9^HcV0|}%4wD3@Iw#NT+$F0ZygJP$D;SQrm0w4 zST4NJ5sWch`77F+2}ZY~6Qp_N@)Zacg5Tc6YxozKF+0COh|~7_Q^;;p$SvJ3rA%BB z{(&I5$CA5t^~d^qZu!5Osh>*3vMZY;r33Uzw9+7h(8k1DA{l7{mk{l2B%9<;DCF{M z_%5TsC8Vk{MzK~EW6L&AS!^TEXG4PFLK~?tq7Sk#O=D*x6~t?Y-mx0(J3ba<4)ReM3Nua#YHtVc^I@!B zIqshmvT4!0i`GBdIl@_|wJLP;{;uxOp)RZxD|SmYr)zTBkR2B?InNm9K|+jWD=@g9 zU}7-dp;tN!65(HhBh;74ldc+c^LQoa4wJMOc^^YG-WrTALM$3N%4wu32o_>dO?}Gg zdu@6CF|D6+1dUCgBCf3D)L&5ROKElyCSNb>T=BWg{)Pr8mWpc?gDfbj8&{^A++Pc{ ztBaN`&r1mQ2|FX3IdMPA{S~BANkjW}G*MSc+yivUTw@6U#0N;3b6UiP@jG0ENvQsc z`iF`8SKg^d?89F3m*vPicQar9XY4 z5C7QkhcVtM3uCg`ND-81;;TkMcKsKL1z%VTD6*||(8=d>GA16Pw4#z@q{c-2wu?5E z{(I^n`=dXKGd9=s`**k&m;{oHEBIf?`l1#dW)^dUHhSk+*%@saHL%4~JgA#$cnc_- zwqwy$hsNcM$2zrDN5G04cfxC)i}m@N);=@g_-g%)z~VeGo2tvPpKmRtE>ydo7ej(!ErZ(ZdG3P~`+gna%EDdl7U%*Qi1&`t>Y$0zCiu(J%V-{P>cw zlmrzk<*&R@Ws4ixL;@vSkpyX2ZE=YS{i3O?N5>B4)Cv}6H>+Kas^FzUh*eI7gN7cf zq$)iUBUZi9UdX;X=WvGA$rvN47+gCQJn4{hx;CX>Z$;i%O5J(fb!8UgP_9J9Wh5!` zf-0Vu%H*lr%C*f+9N)ixNl7C@=3z|@rbmSfCF1Os=d6u-BSq#tinAI7)9d}LOOr1G z`EZ#bP@A`{mQ}0r=AwI$Bx9q|D-+c$qI6C&N0^6Dj_L-^;V~0`Qcysdo1fpk^m=e{ z;X9gz`!mW=IC#7KDN*3_FO!|#U@vIig=yRR<(hpxne*bFII@loBQyH8es*aqU^Q0O zB5k16E?b;Grp~3y8WRwpdoSXY|CuR*;9e$VF)UqCG;-2G?WPxxR{aL+T?IYk)C1|D zm-SJPw=`5i%Fa1$z}|%XpdGGFDu%0U{`sD$vtR4*@)Il(j#L{68rWw}peaS)Owg}i zD4KJ`XI!D8V%E$`DdLxj+bmTPVOP$-dz~a(G2WM;{r6rfT;Bq`87sR++0WQBcN-ZK zXw2K@SGP}PWuqo8k5hkQ9XKd3`ssd}jmZ*M!5?v3&vG%;;7@xYz7@Ptu^g$-`WI8y z%fpFd7~wvH(vlUu-*lgcvb=4-PV{A{Xtjb%I^rF`HMEwXV#eCb5~#r5BvCKmV6?gx z-EqfeORkH&pMC;We1_zHMLE^mX1>#$dA+kC&x!Z(g2g_yzfp|mQgm^{IdtTN+U|01 z6Nmi?46^eo+srN%2b$@Krpmrb$ZOeqE6F`!PF81qXpV#mXWkWk;D+BvfE<*`A9F}z zjWo1&^?#ICs+#i60!`w`d!P&@ta%Leqcf4_x&_C+V`|E=2x+R>ik#fzWpt1obVwVY zuM-pqMBsRYdZvR{-kPfM5#C?#}D4kRo#`hD4vOQG8jnvc$e?ENM5a3g%O$GDDJqoLrTzZ z+Ne9>)b@ToG|7!S>O-fIx&~skzgZsUW(016!gc@Im)6Ku>0mjff`YP?N2Z2#X;m|R zKf=+1XmUk>WHHvijHPPLN`>hgACU@`{1_hlC7T{xG=$w-AN(KY;c%$caAd_%QX5~t z#7JDg?lKBWuHi4zZy{21%F7t__4l#ip%aFQy+K?BPM!K8XwtiwNn^s?I<{p;Z=Zch zULW*@>E-=<7!=c9hO@(@5*Q;))2Hr*_Qt)_W;2~li;aj&xIIon%s;K4$X z6#(j*@NxKzGpbjgoE7A`tOEm3(Kw`9)sD>ja`lF}sIkKGIO#E7V<)zzbfb=YKpO$4 zo*xU!L-9Y-CI|evdkUqk<3=>peiYXCxE$*wiJGDlV1xfB<&=FlkLAP4U-dQtT)NC( zT%SiUGl``T;W&bh$}e7^XJMrleefdMs6|q}bQLxFg36)kzyq1vQdSfQ%a`tq(JQ}lXD+%F$A?mw8oQ99#vdrOfy3|M~nos6-2IK z$q)W9sf@T@CXj1Kw5IoL=a~v-M%ok&3t20J1|GcwF=lCt81+ibX4Evyt2kPMl|=Ys-L6_2Ypqho%hGMz$&^A z+nBAE-Ao-kU&DV=VW2VRBjK@xDQ1M(#F{G%De#-RNR&vV3!0pqjFKrG8Brte$WKlV zetPnm^nAyn3us$seZ9K6N(lb~kfVd9w?PBlP^F>Fn&rqWxoW06ZnTIYRvJ!1FmkCb zMZkI~yZzSl-gGWbZ;q=aZqXuWwn$b9YX_IlfsFNhMl~7IsF3U1(-zIWWA5`F*#t^& z1T(K_l6R_*i=g(s3&FXLD$LBm+0yXzSEaMxC!n}7P-(X{x6JfMU_IS#RlGB(Ddc`N z{TVQLe{*JKo+oNYbQL$KIxkx6te=N=wyLR7u{3N4G6~C~n676gm`|@tnuX3;e@?j& zk_35jeH!PHJI-T(-J>z!0I9v*MJnHRO}45Bo|4b3-e2}E+CoGJ4~%qHzW5AG!lm2m z$KLnxC8G)&xZc|@sZ@LMe`gO{+nE#8JIm~#f`BZv3(ierEzs!6!m#=bJy z&F(iNc)*7by8TlXu>tcXN;-!83ySwK&`dX;y^@1tice>ulvp4YWI_1a&Sr-jWlu&V zp&}NNVjDE5-aU$-Hd76taI8*OsUK0)7@N`L+|v6LZ9*H72G`Wjg)tJ_`_}X=MvtmC zt=Rp~er=0Id5Z)z`NicZV(;&!aU}009$Lp(R>)Fp+w#YfRn>%9%}kvqR_#+e@l@5^ zxOu@g3)yZwoxe(!hRw!)ZL0J^$8M@;)Axt0bKjRkKk_Df9CRBcw?FPQqJ77dv6wa@ z1#%CMR}B>ZM(~WFPRZn$g0)E@BO}`!9CAIFF-P8+?i0D+2!)0)AvzyF-llF5zyb4% zN2Z_L!%MN?ByutdkYtOOC8%(rU-J@FlB4ACMlAgwjQVbT$TqagXIpECVe?fY;VQ0< zDeKQIEmw+ByDAVG70)6u0a`-W{(Q|FWMS7g=@+O*t$5eoh zHh34e>M0DYbHxdPV?hrt2-RC8r4ng2=7iYy^jej;0D6M=?iD0Qjf9nRdWwbfLtIve zE_?gL>Q#OfcO8J}S<8-v?TD~a77}Q!#m8aE&0qi}8K(@V z{=PxgkIar!n4|1c-Gse>3g+$Lhh~)}#z;Gy`a7wnC%Ij`VNa=rZTq;0 zspH1tDNjIF1&VCvSLS)n4jnhrS@MibxC|Xtrm3WN3TjnCUa7J3`_Q}%@h4W9cl1Np z9{TLU`DK!MsTQf)Vv0`(3{Wx_OkM@zSjV^KW2kZ%T@ht+weYj4BcTsfxeCIM_LXcT z%uB73^A(Gqk|^Xx)F5ljd@g&DvTd?|6p1w3y4xXbGh;>t(CWrPvt{OfogNG916FVQ zCWM;^ZyT!SEX_Q!Ob+otGKa!$xuZpo7|#%DZ;eykDa3&kO>LBm`6uE+^34&+LrV=k@+2HV(`8AfCvEj&lAAW%akZ{lDN3=OCy@uq91Qd9N}aQK^a z{i`bzWU;wRb>uq|sAO5N+%-cd62wf{D@nctN$)YSHH+F~&m}YW*U>{g-Y+_ata5*D z)!8G$L%P%NNORR!o;%Vi5fNp}S3%5NjC%Ktv_s34 zRkr~^;r9nPHa2F`w94VM!T)kwA1JM^o?Nj-8Yu&HURF&+G%|6$G5GIY&cFYLp{(@$ zs{0M*^Y5uwbyKzJoFzl?4s0+tak@4oS$(>k6ykTB?_UvU_2d75!;>J~_Q#f7$ADnM zaN16F&7ZbQxI|P4ZHs^(+lgw7Wl7m<%h7&_P}&myn0m#1Z70PH``hD`Rxwc>j=_{CmM?@PTF9uRq!3Qn+(v<(H|avWSEQ?Va^!OTIsjP6ehs8^6fG|_gY7G2ekt%jX5 zl|(YGZ**7z2n#pyoxfJ$EyuAhqydA5r;cNV-Z>8q(R?mO_3R@_5X0Zuf`qsK4n1qP zbD&C5QlE78Shn?kI7!)T2WuI(xxSv|1++hRI})axob%>ozZyOG`HJ|IukG?i@K~~u zWrSF3pAHa(f_8ajxGjIhjrG=SllO+xxOFW4PAO*cx`-qe_MTOd0u;?N!hHMrv}`eGjz)l1jH|z9 zl2g1pO=|3WUWoeKcqUbWml4oeTUKh{zJ06#?NWHo<%YkJ;Gq)0dOGNztl zQCUdK_Ov6f^Y({@2KZDiE|$`~U-EkR|9XR_U*=4!b3pg17vbf(n3S_tgRJ||t4*#b z`85}S$)|~v%9ySrtKqZM^`p5XiRPb^{j}SZZIS8WB(aac;vEBJwkN4)GG0QV(CF3X z80{LG%}oj~&3Nr*U73KA%?VPk9e1zeqLYpWu9D3qu5XG37o&xCt$ui}QwK7QY=RUm zPG9%^RxD(`(){`EOioTN3iUm4JoUR++g4@nA3j&2!Ggtzl>yK^qV}ibn#(ywcGH`q zS+C>j$_B4Xv$XW|p-J?G5AN>nZPx%)6qG-EvFy}5AJ64cLxOf(cY@vxOc$aF*)1>% zzdh_{aof&O9p>cby6(sG?d|l1MyBoWKns7sj9qR(t&P3?zzt;n-+%0urK-%O2^g+x zef$`{u~FbX^#}O`==Y}&@p48Ilc@k7AHVo(99l3u4AAfOcA0|^EsM(<17Nb!U<%#H zF`7sn2>7>Q;>#Ci{`@Ka5PX#InVFfO{{9cTwU?4Pk&@iRL#>YM92O&3glNN_I1U$E z-JE_8f1LhOAi=4rs|UxE@bx<+Q0%?Z4g4pm`{T!tF5mYe_4yOfyhJHT{`iUVKJff* zvRbD_5^ukLV6J!cX8|^RXXz`8#Z$76UEowWMEkObS4;kUwLWHqH9D#3saTH?Yl93o^cioaL%1)jy zCDjFCxH$mgc$rCfva_=@uiHhPZ_xZnr2=6hz#nKfyLoRAP`A^ARYmmifC4{&<(;IX zV{HW@2NqKA#l7NZwgBdm*{YkjZ}dUie%I($lPPUM*?i9A0F%4Z)ql#!{=whnW^&aT zZ^~ge)!_o9g6Uxd;lf1pfXT-MEVz9fV&1?Al&k0EUTVgJqo6y)Cp^yg)l%WK@y!d@J{Enkpp(J5oK!Ssd zTkZ+nO5^f;*0!G@bUuT|MTkaCm}Wh>ys+?3uaOmE`p-TeS-70f0C?b&P0@2^0<{@} zeVb(O=I*y)@`2;Un#<|HH(UXM%lAcke*}Uy_n~3zfAj6!b%_uY69d)9BO}RukSg=s zP@uzA|MUs7Y4s~*U~e&BFv189__pfnC942C`B+*-8_h*I&V_AM1)h z1L}r9W;;9gy^uioh))=4f$%InDI*)L=nV|8sO&(D07Tk*cqd(Wuy;^kA!d71FzP2n zGOPlK4=(u1SkLQdww_dOr=CCalH=_q$#~jve3&$UmG{ z3IpPL$RD1NcRGK-hOz^#M1X^4y+WCQbo=1(H%ai@?so5-?}3Y%`c6IkLBP^{?+$8^ zv<~oDC&k)RCkcOH8VxqYcxP!ch(`IXLZc(3ci(^H^=~a;E+#0^8Qvp6uHdx?B}zJI z*oSHUc2(Hq+3d>Ujr=OVdLl_Nh^r8A#|FEV3u}P}^DAmQ?AP>xZ!jkx49O?Nj7^5& z^7&D3v7-+=Un_&wSbK9zhP}4fdiT;SQGUW^vcep<0-f_D3SK?lo4CU!;-@^Pz4bb4 z!`K(VYO_*K2k6M}l|0ej0-X%ezXlTNQZ4m)TLukL4X2B}Ykv{zy}J*ZcFLT0Y8?l4 ztH87Qlh~}mc7gOdmGb>iUDiaPzXwk{(M;PARf3vDdCq{w*)n76ma%|ti3}!DRQ?P2 zqFcb9Ii`bEW&7a4jfX1|bl4gSSTrk>z5FphHevXzSB#li7-1R=_xxuVj-9U$E-+`k z+lnKvLw{kOln~w>z(xUIRS?@@jJZsyueZhHXBx? zJOlas%F~J=`e68m!1TPkJK`O0SN%z6ZCECM3n7VpJ0`?8Z|3hmE`2GPC{`}9|BMTBqIGUitTCkp#s%1IEwcH@th5w^N^_Ea_i?gub8spgR~Ce!zS9AsIdp&o~n| zcvCeTI9-Y9pBGS|deub7pYox5d85p98DKCRAsT0+AgS+sQ3dK$co<$7V`w=7>K@VL zPB68c;kG)G{5n4u(6t`a?=|OKwxv4%ogNiOU40<^L2#dA^b9l8OpyIr@O-GQ?v(KpvzRH0o#$iN%Qi8_#h?2(;3Nt-9fb^SFu3G^`1^jZkOJqLVl3bW%8uz-#%J!!in|?VQR8#c6paH$#N-li711_08 z_SD3TIOx%c#kOFBR4(#8sLf+QroO;@^&UPjcD61_>Aq9ZJ#B@t7EX5S*;SLxd#a!t zQ8m`%Yy4EP+n{}m$AEFgUIA3O>~!!Q;BM>6zd>eVpf-pOfxC{zJA*H0^tX|j(dwx1 zI`RRgR>r5wRPdkHsQLF1`S2E)nU=yrgU*+nnuT2l*&XNFY}VkfxR!%H>fh5A(wCsm zu|0XDnM<(4P#j(Jr|^2Pgl4eFUu?%wQEJWMw95pyl)9Y7gVo?^z;A=zr=dorGd}V9 z-7?`hYi*jH)#@kF&>(!zRO@F^I0tsXN3p@o>es>)>tMTHLZC1r(Yjg8G)0rRV9c{9 zt-I$1Vs8{`(A=`6fDs}VYU+jk>?r6b7H%uP&6bh{K*N(^t2%Dn3Sq4#c?8)W1R z>;Hz~;ET^8D=#txL%B9orpWSRw0ck!cCf;;1!zB*pspge(<}yX-%hz8{=%>=U|;6UAiA%&2p6M#!6-+6DP$olYMSNpAYH8WXH1qT^lgQu0r+acdt{d0Jy(f-Y z{$3h=W5;CIHaPBOpT6rgs9a7Hd~O-Cw?PKmL}csBGehspi=Mc0(!xoyxa0^tZX3T> z-upSGZY3$Aia$fmUXm>Q-p49KSy3Rll#xIrROYAL$68qZL-Zo`?&Oy*9OWzjDorNTB;hh|m=VjlX@`m}V|Z?kM{|N}r@waP zXf>+VB#(;MIFygWV{oq}XsJsP8YQV^O^o~IH09f@Z+%OAo zlw#LQjPp!L2eRYD0Ihn40xYHtHyo8)gpd5nYLqh=3r-mq_Pk63=ugp+4JiVp8wRLw zTG!LmRF?ettYxB2e-@d32pRM+_5;(WS}xt$7N~r^0FP@KWoYZYUPfyeNiJ*IZWr|o zVkpO!=8p3FDn-fP9JK;lS$yo%wwqNp!VIS$_`BQ(h2*jEe}{d$Thc^6O(nok*xs1% ziuP+6gQn_P%&&DBsGw3VyK7skreEd$9Q1ZLwcCgwD|6B~eJ673Ao6GNy`%h4+d+M% zEms%Mn5UV=zDxLKOqjetDTi)aBf!>k1tjfmX-O?nzNt1oXV1&VJe|TB|8bPP>krJ@ z`Z}lW9Ib_=rThLfn1#DB|vO!eBAXgUB_%N3Y#NaN%xx>JX?DZTKMT! zH%WSWIuwAOx-Q{`kv9AxjbjLMpg~NEh~)V->6<16q>RW!?=+1B83qyhYFC^UHSU(~ zK4e8KYs&ALA?wJ}Pz7tWFP3qhnh=Y9>P~TK`G}RmER}xo?dgHU;_7EbC>`bkVI#tf zP9=BBmcE(GYJ*6+g890(gvE;R72nU_pK0+_LsmR(%m*tLw~HJ&Y(nctmYFRJ=J@@- zfWJj(p;SsR4TMDOTgr8{$=EjAN*;B{awKku2dgZC+JdgW=>M4vUW!G6F zX3I6^5l`*3CVflmYNKX(meo5g=J62i{A;c1<4*o=I5h8S_H-dyZbQm~v~RYRPfeH4 zc9tay`z4T6i{mshFfm3=Q=9fGFkU)(>g!olcu^4?w{bYyXY`~Oe7JIGMfzY$&%j!v zt`w0|du&-SI>VP3R1x3#U!}qSc9nVmAIjc3DvsdW8Xep{!QI{66M{PgcejDyZh-`M zcL^Tc-GW1KC%C)2e$DTG@4mb4djGsxu;|51_f%I`ojSGmIs5Eo@*b7dDk&-XFD+>c zo_9gLZ$yQ>xPgsaMe8a5-*g_dp`juBX5FTnIUP3F;{}p-$ot}7db1&QL|^g4=AbSj z9c-G1V@}mDSw%S;kh>?WN!#j&iJL2#_4`!|uG`#g68dq_3Gf>r%E|I$sN7yX%}i!I zNwdJ7YVEcLVr{}FYVN(0E_ad1TU?a;V@ROnmp2u-QA!mQe`8s4#js8mnWu5%vmlXw zLTW{*6`j;5ae#p6hWV>EiOzt?&@@UG*T#}*#7Z34}*4gJAZEy zZnXNt0{+*z7kmdU`lCh-2EvbQR+Ul7RszK{!To(nWCrcSu$DjalB|}n-sAi3Bq@~8_52qI)CW?A z<8i}dP_xn~=?C*g{}>_&P$dhwhum6j{h;!not=Gu*4osSxGdQqtGfL?0}NuGub+{oFa8Y!QWO01ktxuLmbr4UC;S(gQFTDgKNWSPdu7x8Mc|G$oMgsexb4j*%&vv>? z9Vp7VYw_ipF)BM4n8qDXr>()yowL?`fY%+om*sVeYjus4a|^Qe5Z(;3;|ju>=^vfX z0pHglmnhE4&Rs?U%lp{_0T;5BSR0%YQPk3Xut1_1r)XPsWY8vxqh$P4jD*;*hb5<8 z8JtoG{T?*r1u>*3-#7xgbS?ea7IJG4T#;+|W+E_^_GN+NbW1@`(G< z*LFV?AHWDa#P|#DDa9#!AVBPROZn%g-+-(SRgqGN=<(`>xlDgnl2_Ocd-D>{pL3t27|T%u~&%EEyEM`pjaQ{Alq}wBe_whnxUcUTepJv8!VR ziSpV?vQ^mPJwF@d=Kj&1=}XXW1Vcu~VIp$E`eY?UNu?p&M3=;^kWFAxby_25qU57N z&%MRV_1mrHm6>+mx(6=T=`3!ALvOazj?$-EO7S)0$Lw7x!&l!+tg4m}7W(HHC440g zF!T~^zM5qaLJ@8IGK&+6POiGThU@Nk8sp{!yD_CZBdrX65&1T-3Q2w`?}2sL&@4X> zB=#&Mz01Rar3y3cM3`)NlNHyT-7K+zwPGo@@|1Pi>{^{iqjiP0$#Yv<5Rnop+uVTL z4}3RzGk(r%D@N70GkcnevP=H@V^vq!I)1(^nVqlD@E7b%Pa$wAKOdjmOSce``Op59 zO6eJ5Xq<9}l&O0t&-2v_A5KDx=EbWP<<_dds1Frysh~mF9F%3Hmlh~`$v-a-H#u`z z{-lQAA_!O-L^IZB_8-sP* zIOkr@k>zA0ftH0ZXS*+zX*eWkHjA96Vg@PcD{Th_=EqVU{Y9Bb%*=HKl)6>g%7udd z-ptB29?flw8Lvdz)1Fx+8RRGh7B4T_+#Cm4F+6_Kl4RUBbu(S2r)|D(UrEx`@ilaQ zf(=!AeR8e8u!~>)y73qErY&%3WhZo1P_Xu6V`lTyB@Z`8k| zeyz(m?fe|SFU9C8^F2cdDh+?!C?o6i3 z36aQbPjJat*YSjFpQ$5jiU&djU%I^FTsfG zLQ2P9qx3ad`dBa1xye{HCxhcsZf~udYrl+e&IT7|QZ;ZAmW+KI-k4xlIEw$u-RE4h zsv(^{I$T$)uj?Xg5wbT~LnQ8^d!2RjYpN~zl2t%B!_+}UNn4{BK-tBn0oUeXENYOq z_l|t?!-u89FL;2=i^R!q1zl0h$iY>i783|6yK5p>UlO0_pgf)-c24HUh#;{wBcV`F z1yD3BFT^udAU>gWjvn7%j>#AcRBFEiY}N`eDVcl%-E5My;jZdLZi1Y{m5Fr@5gsKY z_bb=|OS^?h);Nn%tldjXEb)<#-IQFZKI?guNcvSJ;7}^Lo%6b#(BUH`*QP`|IOf1> zWTY8TWS})uO**(lDwi-bv3PEJnfaHNoshKtNruo@)%JNTR-4Q6U)Z8!0_6rVWulQCpI=K4&-qsFDA?I_GG%n|R;X}T;W zQ7R7@(`JgXwxCfl?LA8^qrGpF&J$;|T`>kSWmb4a{L^Oz#jP_65lTTetRqD9+WL;T zUKC#-_ETy|gTzL@jp#S~PCu3@XdFR!d{1qun7G{f79)_M!oTl^Gve)4a14<@Zuv0u z;l@Ooe3XL@tJn30(6%#_sd7_Q)j3`(lh4vp@i)2Sj%p56`9lZ4!dW*jX#zRx7-tS@ ziiSO;wthv1nWCRKqGbf^a{L@(#?qmyFfwlX6)gTOZm94>lnhCDdPWUsaE-NHvw1dR zk&Gv&E;x%@lv?Jn%Bm#}acl2*GAL-*$l8yO5WiDfQUf(6CoNi%fGccU|3a*@j_vD@ z_(D0jQ4Y_u!I%-GQOQRi%ND`|$L74Vk{gG;VPb+bb#3foi>1^8WsRWU*FzDNPH_?Y zJ5o~dW|q1KP>E+vj$1uOjS&!1OS3nj{Zt+&>^t8+4F$I7*W5@G;h+q3$H*^f?iC+a zQ0OJa{=qA3b2EovRwJG|Q?SjX5PQW|;XQ0(-|WfljU*@I64pDcu~tkJ0?$NE+3)jk zY41FKiB%@|ssde@Mvy0t{XQ$;8Cui&EigkIY&!LOj?Kq^io={WUX>TrEN3;N=OhDh ztyf-bd-T~$NmS!YwCIe#=$9D30O_`<*iJSmNQ_JsYV)tFl8g4nOMnsx-UUt+DLVY~ zz5x*D5A1)Hb#wqeio^{O9_~|g7F3hvB>DTUhNa`4ygvdjuqewDk;D9N*Xc@YY*v=< zJt&Hsb}=s|C>FPut42#S*_s*XA_$j!tmrgyz^ivK?B+Ieii=C#>ES4reip^Id zFx61tLHW^SBPiMyiK^C9WJgGJfd9ieg}02FTN9z=;tRVI{E&t))U?=4PT zreBQZ&C2XN7GeXq*UNpiENc=E--*o}f^;u~WWS#&Zo&aj_V zX88rCQuqv7+yfN0j5T~!qoers%8;pKz%9#s!!NM)!%d!KQT&7!63>+0F1%6K_aA4h zGgq1~uKH(wjHG@PLE~Vqh;Y}5EB&1u<&5&DfShIQZ;#t5A-)-hECrzpp2k0>a#Rb# z2l?nmEIcS_j|Bckd{e=^FFmlu&I%{8K~E)a2H^`W;yMx<0yOypMGOUK7a1yN9ReC+ zg_TnZ3#uU~rW=?7#LglTk`mr6mNdb0dODcb(lGlseI!a6-b~ihK@bQSH83AfocFK& z^_0fe>VgKT52q$7h^xf-?w0VedECuid8!5yoQBIkZK9Z(VSaVc3dqMA9lkFYu@S&+ zU5Nr%wEY{Q)%k)@VtEjtkRq)MNa_8DZ(Z-hG3edP_KTX=_d@A>dpV1)bq(QRt~kDz z$=QMUI-acLrGz=P6}2!)>Fn=HM4UzJSA1Se~@#fj(N33 zkT&B>Sw2Hcl|O*h*xTkFSQf>=mMvJsu5IOJPS-OjlgyFsj=KK`n~8xghBKlQS40*x%YG_Ir91^>TU04wZVyMjVPE4>`HzWlN;to^ zsnbxfW#?z2Le=QAv7YgKWuA$jLPwL0cJEM#N`2sZ2DLdJ?p+@yRN|TtH zF+TQ05BL~w^PzAGp$?AprD*5RCG#PsLd$Gu@PPi|Gn;!j|@=C42U!ouhHWFq1aIZYiCT|bYE$Zh?Co=C-0^u?MQQR3(A!$Y2R}T51=4z`0yJl=c~H?k)Sf{q!Bm z08-6nsJ%~qjL@KeP_7B9SRd}Ix7g`P$#$7DcLqSRT>UPc8{E+CgcSJ*8weqhS1n0$ z2f$PVLC40UXCQs@iNo03=qTN` z_=#GkR$?l#;F@zkG9QA2idBrxYFI6WABs%|e8ycZ%BO4L5}!?>YPXGrl%NmY9*c|H z;CA#^#WMlfe9>MxZ+m!-ly{TxODG7tcZ4z@3yKC$ClYofl_^LJ!7xptQYg8X=4U(x zNfd=1-PTy_9zhK|f)zbvvAF&eUO?VPz4Hz_UP<>9X+E>VLdF=BlQp{Njn}E*)Iyci zX#tqEz7VcBltKV{L|B$SW^c&KLu=+CSNzwChfGaQLG;qU5@}zxEK+&nQtJ$^A+d_M zd~4rnMk)wrvjHzDq5}XSs1vk^Lf&E1!Nw`MVr+KWp$$GRx7+-wD3vVqYYYgC^u+Q| z{4~s-;8ecvRiO)idi)@Nkh0#9BoDt(P&-YhH& zt(1qg|CjPi+6lAuB1vE>kz15QFZFWyvxcj;hjOx&o1NgN!kf^sP6ft^3a7HniA&7i z!K3xV-#%-5zhGZ!!9f%%3CLN&_|HP#_wfZt^NBhpd82`(Q~ei7MP$#AC`(K;hWr<4 zMQU69dyxy|WSA$~)O>g4Af~+N%rKYz`zS?fm%iJLUF_ViO_;p=`tLYk^^}MRWI#m8 zrlZ!d8?tG|?jSiixrolK*AQI;MTPQCC63OGIA?x@p%bLitYy48NXib*`%R5BCP&_b zAC~_)k!&Qn$6`xk?dV2kJg9{&pS>*B^|zpmIh@tZLe(s>XkaS3ylX`kh3c%~Vz2aJ zS?pH~L>){+7dirHd97Uf39NYl@~MIjqTS;B0blOpUl%;>M(iu~^{a zSlPXV`U);ThqRU<&(FgAL~^$57-rYid;!T46JudA1@MFXN#%2p^v^F6u_V9Qcm7iM z)RnDTe~$es3I;K3ji~}Vi-m$mVKCtBuse47idhu0XCG9tJ?YI7<@Q2WpZ*?3I?}2y zij(h{b*R=?)nN~nW$FpC!3bq4HBtGlLZZPv8GLe1jZNEGlEma-PAk;T4>hS{1oc(l zEi=XLw$(;nPkCHTeg0EBo3AFXbe_}Eu<{a4BRyfc#fm(X(NV7Y9ygnTbeZa7jF&4V zT{Y=y1x-GE``{sJqWXZaO~|2+DaO;t*pvKU)g`+64nj#}p(M~N;rnE^{Pr!`7l?8R z_B)UwFG-%Fo$!z-gK#xxKp+!ROsp`4mJ&A)uD9$n5B?dCxJlsS|5Y9FCI;CyLCYk2 zSrP~^)2v=3`<)MI7AW2bXBZhLplBr*!Ho$kutuBr1uuD04j;Y&LjJTIIT@etHr2DH zc~ass$d*v`v7dm)DWI(nMKq{tCW}2>70*>$`8mtov)%C`EQx2-QXM0MQBAky{%mUu z3LJW|Q9Kmxi4l}mr>%>>S}M202`Op*tYl{0>He!cE8WC}E|_6DJQP`gWH7TdgJ5qg zlH^j3UMVhk=9MzzL*d3a9>!Ynf%9((Ce;IkqB9x}l&^pZZ_c|3id@URL{^T@`kW1D zl8WsK)AK9w4L2Jm+*g|oCIZb)!r}%?2C);`kUxz0J|%Pv*T{^B;+q5#;thMaJ73wk z+Eoet^p@n(oJyOKm9D76Zl=QS#rn#{9!z_c>G}B}fX&|DIY3Uy+#Xi<`zU_$SH{1CF{+zTA_rx!Jglp&E6Qe^)Yid5 zwUY;~lms)5ydT>Htrleh8fyLGEF1#l1*ep)HK1B+nLr9XS89->*PjMOK8i#q%UPs# z-Y8s8MhLn89evBewN|ak2*A@}YivJ(B}x*RHnQB48Ab2su=;8Sh75%QO7`sN553~+ z3gt@jR;^;sra*j>hUzgQanoYrKxRt6Mfp??nUL6D|9Fs7#9wPrzFCU^S&NZ4ve1tT zYN$SwWVGtp5Eij+bXva-j8PQEq=zFVt%T89K>ktgNRRUKSqXo$rgd1q?~CoZ0HLVk zRyA@P&_MQsNY!)vjzynEui_zG0@jn>BE5>9)E~1eIU&I>C~O28#=;)aRPnI!jtjA` z(H+?-ikqh*Vo5^;6otVLLHtD0NI%o=RjRJ`JTqlpYtk3AGh{X;wv0E1Az(8`+bA&O z11>H(N_Et-5r+&KmI)%Z36v*bqcTe^WK}Q`m%3_@#AdS4__N~@r5Tlirri)91fCHu z-X8LqtF07qMnqa6T*jo#e2Ol?&+XLo0(#E(DSF4BaTt`0C63^qd=O~{Gv!1p*2*&X zU49Qs>*4Y zD~)r4tmHN1o4q`_lnIpt-i@ZB3~~KzwU<)fdMa3OQedcIHXUX5HoarPpIPIi!%ODd zV;YFC&mrDnag_n1qhA+N-<^NCN!>THpqiNV@JF={NKMM0ejGhzwq>Ok_RmOdY8D6K&puwz94C-ZF%gs)HUvUH6>HjEaBJn<(8=g4j!|h%{c=8yI zQ95ls>cP9Wi&k>@ldQtUJwX~lfe2!RFnFu*afPx6BVL56UXW@Y$7sf`YIkEsm8T^z zQa5;@%u1!HP{V`1ZBlf-s&z^8V5K75L70{L*M0XlI4)3p65y*hT|oI#xJ_^P(%MzE z=x+dCH}^xFIRjnxHkr30w|V2U36c?^Uqa%%z|s1U?EAsS((w{ayg=bP6QkEcWX{pa(j&3`i3&N#^_xG5Fl9f7G39vSD+=ukD8-$p zc^nsMKfX_*5XWPe5i)JWzhf`%DIarv3ec!Q`68{$VE}4qL;33&HYn$fORI;Ne+?&R zWt=4hVr(Wzxro3WGbGJLTMS)G_>?8@OQ?B;%zC1@y{ZqA^9tiMZxFmZUgGMqnf}f} zOmnx0HN>(ElOIVr4r_n}_Wp?bB;c6MhYBAy4SzjkyxIv__Q+sAceO2C4b6LiopX#7 zho;ZM`YOCWy#`qn_Au>*?Jo(B!O#*Sn0|p=wSCuRSq%nt;jzRDpHQ^)Nm4=ib4f}fzqAwXUbyLyKaxHr zJIx!arZb<_`U{aiAJQPcBKD4HhMei60Z3N>wu)xxV3-hzP#5k4pkK1}3TpEsV%@}7 zQ3Ua2hcm~H^rMkLKA8BAkxn+R{S-a$^G7luV;9GPdYX&7izuPAoz8|uErSet2^##6 zh01F{^@YYd>8fKF&hTE|m=_1)-<#~8(6qtYgK?075TcyE=qWHRiB_6_p`6EaYE(ds zJ-6z121du)|A78AzCG|=9tehDNp{hHg+5r{U*5)(_gWHlJfnvMKWvg`ZEP>52uLq7 zwxlcySfu@t^<_u>@{h39lymB ze)9wjQ`>NVhsL<4jy;HOfshEYpMtH9Fjd#YhRe3wt7-C6niotlR7riYjSwh_T|fSr zwSN2{%3t_%J2j7Fq9%BOv=WDv63Pe*9SNeZR-C|x>b$4ZUwMG=y5&z%n0RzgP)YLvYIys@SxI_LL@B~UI#K|&$ zQdPw|?R@hEyhxM(&!An3j+y2E4!s@lEpCSUzIRm(F}`O4_5TElMwtsE1%R^0gO881 zS_ktby+D3L=br6A2q@sp?7{BR2K?_cfM8g?YfH5Cw=h6ueQ9YaZx_P!&5@AkJ)C#_ z!5iFl^|0U%oYXz}*J2K8K~)iPgShJr!W;F!?q#472RIxU515v2;O51@!pd5`=F|=> zcQ-tS(o}7Q-N|y)6<&8Nt2Bs4_JUP8DM@){`|gp5NKS%7rU{d?IY;?zIR}frW(z)?zn5_xdiuVOcT@JXz{-T#pThfPmZhb?|}pX!L%w3+H}>&aeA`B!&q)i}wcMuYr6N_2bF;+U7&~ zIFReVJ{Ift-Wf6*$9KmA!B4`y8K0c&`{7Kz;%lEWA{B>4AV7lbrxj+`HXcx$6i%;*a`KUM#c`0r?!vvCc|}p;l=JBypB!rn$i_) zKd@RB-gIST)Cnp0D9cuBPi=?iiX{B+4Ud_=1-@0sZL7eRWh2R`QPkhxZDh62w&z>V z?e59_$YbaFc+oT7+v>wNFnA$kQM@)5EZaX7R^Yx{XHiw+fQ5ac|KovTck5MwD??oy%X*=Jf1_bUo}4avzR25ifzgLR-<3WF z*PBPjHyUYPu>G{&aE|RLin!!PvV+VLN2G{SUxZv6j=yx~`vPOR>85J&N;M@R1Nh;Xr$u0h}Wyw@IzJe{XmjmmtEaf zb!hYka621w@pj_UG6;5BzDN~B-b`c1KGY37wgW?pG(7~D#@#J2yp?Ajz;)c+PkNfl z_Sxlzvwt)*>>68le|`==WlM`uBDFy&ETZ<%Uj$(66-zDBI^B2QD;R-_Vz_6 z{3zF>mv{PS_N^UXY$|v?Y?HzMDlDB17^2(Fm*)$xHSG5tY=L7k+=ZWGlM6 z627O1I11Zoxf-{J=fz=DVY;dI1 z#@ayfV0*e+1o=mgKj7|pd!vHZ|H*dt>5uDw;6+l}D(y~`t$+r3I}P!;`<*@EW(yHF zkLezR7ejR|fV{B7cY_vVDAyGhzC$tNO-54K&Lbb|3UW6(L~62nkO%qi6$%FHs4tWE zdF}lcFq$B+Us*r0Kbf*In!&pmEm&KBU>c{G%?fjR$_j7QSd08r5@`Ptb98YR>Gy8h zJbcD`B1gXc=-KZwpnipM(ilrT?CXDwv^=oxmd2xzw({P(=6P=e2xMbk8M_qdHtvn{ z^Yk+z%EZIZI-;}Ccg5X6G~o~+;9u&ZthgB7%*+hr4nY>Los&Ej~bYm zZOMSTbl_IwHV;{yrRIq<;hZ|t!-K|P;juq?cC^|wItzVU5j<$ovJ4tu59~JY>b!kJ z8bM_aWZ4c}vC_!bvzYA$LAl<$Nsa6LRBx+)V`}TX^J(MW;sW2=1p%LrYoVgGq1xHV z40EG=c20dQ4@N08oX zHy`!WFYt+19%-++gA`K3U1qwehoLE!;wb)8E80CK;hw_$!!}ff;wzeN>Z2V>fE$@axA6y>_9qajV9zC%A6`AK z;b+Fp+pZ(UclVK=h1nXU*D8|nV{h1h+Kt_Y9P0%_EU}M99EM^~ zu-;m4RK(g>=oPs3Fda58sIch}DAlmwE88CVk#B$Um!*p@)w(UtH!57*$V^dz2XYH{ zw`H*N7C^JvE#mqD^)F5Oe*D-IRyv6i7YqxH(c4aNCa$W1b*k$|0~za|fKxzJFm>}Q zO#Izgt}l1&{o6 zt8icp-wzs@?5>y@vVC@!jpmv?C4!PZzzu)~$uXn^o#}KA+#PieERK7(u#&UzO&ELj??GIKFBg8ZXK7RHh`ioD9(p!xL4$_lUme^?*W8H35wN5nn#wbl* zFDrv`gYS>Cd*W06p$e7ITBSFM0hbR9C&b(8+c%&?%D}pz8#g_Zw4BBsJ&tupOOsZ| zy_>^*O`hwsj`;ti@O35;JG)tg&{99AG`bQGwL)l+8b__eouT3463`BnU6lbdL)52? z*hp2gLZjMTx8u_B0}YVlbR3Vt3UluHa5N}CB3{z@p`cYZw=wpc#vw~zO^})8bp1x_ z+!bzV<)AR)?}p8|efwcCrIIP%Obfvp^8=*brA5;{)q6 z-K+=lQ>~?G8q)JmEw|G1TpRcYE!-;MC?^CU5DW?o(9P(ihP7@S*y@bXfJXAi*t69R z3<@NP&Gz4SAP_Y{XepB3`GJp0itJ(1y5iC6m&2>3;DSA`*4ttJFQ!Coo@dJ0PxJBP zh{CyW9kMbqKt2@BOUKKt&VirXvICs(%eCtBp2%A_kQM=Oi{V#5?i;T)LtaU#bc?>P zeY10WfkXK2RU`^Qfz475WY_$xf$aS3tM$QSdfK=ABl_&N@5h%ie1Fa0l5;x(!KhD% zw;C6hx5?ENc0{kuC)sg-8@bkuJ$4+O#ar?vh(Nah!guWTH4cHp2ZY zu&LEwEvsjmpw@f(EPUU~5iXl9Yv!>F&%&KijNXT&V<2i`K_R^M)_lEeo5W+lbT>$_ z{+K%Iq0^$hy=T;!Pz1On)Iyc#>Y_-a-_4)zy8I?T9{j<9>xjvs(Z(z|k})XQ%$&lG z%W521P0F&hU82{UcbSo%cg<_VV@n@5AbwV9;Xd3J*7p(}!)g%3y@pL_jK5aJM4&~< zn?CM^^9qHF^ppXa>8GNY1EvKeYLlaOkx>}VL}O#U!_nwgcN|lp)4J`Z1uk2I_e<$* zEcZw+Lu-5txr|J^8tx&wcxR|(~1;7ro!sw8d@k!5RnZ?(QVw} z19eG03I7RtM456zs?FstB|xfI_^>j&$K%@eJq5joq~isO+!@LYv>GG$jea;|VS+er zq&qH*YRVNEbrNzbF?1>?)rn=F#(z(6Ur_=dmHS3PE$KvYbY3Z!sXf!gt;0SQpE1gH@aJbhr z|MfOteFWqVx#~ImFVh_fJu)VsCoDP1IXF}w3ku`({sFHGV5__NF732E6whYd3*Ywo zcy#~zbXM(pvb0rJKgD`t^^Zc2$CX=VzHHKzz*gN?Z-xKB(;!`U(Y5h3sbX<>2!FZW z#ZkB_^29e9%(&pL1*vvaIonn!X67H4!{svkBbkfS%Jsq2Kd>V(?XmW(=Anms9S*1n zv-WjlJDKaTY{Ptdb%82)h#OqCp~?yRD@|IaY=YwE8qjtED(xI$ymJnW%>jB?%}Jxy zdF4~|NI=aeqExbM(ylnX}TB_$) zFi0Up>{{5=;SfCb0DNqWIU zWO{IUj?G3R=;@t|ctceq6vSm&VB#9H1S(^&E}i>08fANopC!1M?wvuhIU#!=a_hAXF{5xv1K;I z%YKJ#htF7D?Ou1}fE+OJr++8eAZl11aa@ZrhHcgLpXq`>Sl8y#$D{K5d zIu1q5C)a>syk<5;WOKcET?3misyL@qGrri=a`m;UH;HNz%#tOK6wd0TPg|;Ep?OPM zodt)@IB9aD5no9GlO$I?F{OBtX@Y=*l(g?6sieh1CR_92V&i;O^j43^$r)S6P8(7t znhQpDW^oTVZG>3|4Vav+_6ujDb0`hZ)h_8k`?J74CO5|wc2zFvCx#WJ$pURsO6o>?aj;mg7bEiFEFGEH@oXcx%7X@kR+MEU0xEcwfK(2^9Y$ zSC)&5i||>ZhnT6z)9v$!=ak=ZP1~ zXlA&9Wg{nto(X~|%M|bEZY+0}NbX5F%zg z6A3+kxP*JY-|$9773JglkJvSpzcnQ_^)J7-*LV5%LizNd|70cw_V#{}F3in^NKH*$ z2{NkIG_1B9x0r&Y@;d;u;{Tn9Sk)^_7DLq&)d%AUW}$<~C=G)gU_tBC)Tf1e|4E*& zvDaA%#@W0d+Gm5FIJ?VhYa`Uq_n?x9z=en(`tgxLeLVn)83g(tnJE~dEclT!+bmR6 zJLfFL=p4N{XfKF`mTBK9DUFOx$&>0CpZbvDoZf4EX5g+9cjdj8R{Z~;?Vy?AeK{ma z>C3-2Zr4a6p+W$gxe>DOz?j1UNYD~&aJOK1aGW}xj zWVzeH@>(+pp4dp7?n!I;+?#=o5gaWyckI}iFGK6lv3laGX{mgBx(?n4p-Fq1G9^E@e zfM=}1tl`Wq`ZrZ@WNK4WrpOaXW8eEzO zysx*5GB$BB4_;buu5PJ5Fz)2i@zt!_0VJ#dt3T@0@a)WkypXwK=wdzsYm>adS>r;< z@o5$1mjIEb$8Fju2{zcr^eU`8ka5AA*8Zc^Jb2OY#-fvjfI1x;dxZ~op{b>|y6kmj z5xPOo@G4^~IS|mvOHWV7h?Izp&E+h{!^11Ctep3@=njAZ0OP4MB`**$L)DYJn?`Oc zg&mkel)=H=mHM>l4wX^A12;U0`hqp`uFa7v{4sGC;6kovWAt6Y;N<~)ls zwLCa5<}A)^VQb1Uvw6vg{j#juLK=@i*akj4KAdYu>vC}TTH%=KXe;K%2w28~U!`9P zZ02&zDF=6KzxLDe$x%nrm}O8J6phTcFSqC0aErhdp(a&a>3XDHdMG^brGG0!PG`R5 z^U_PurPQl^;AS<;G1rErM2o3d^ftUPBCy~d*Ye<2{9sm??rqp(WTqKVa?gxheHc%x z`0?N*sne@Lj5!{_hAe}6l5}qM)Pvg1r>6#(21a)I7{-BR6-~>d;kf!zY%0idxOOLL zHWj6_i|(jvm+Yy0(QWbDa1z$7PSs7UPcl>XO5*zkf=``^6ZoZ6{TlRfsD{kaXX8gn z#P9#Q8C_-6D>F8mM>m+BAeTbPmN{lP64w~jm<7!aSSN(qhsiheFp`-e5CQLjTPZFX zr7bF3ojzCPH??jN@kOx!RP{4o6Of28vAW9q^80sP^Z>t#;SiCRu9_S3qa9kZ#Tc#G zni&JL(3H(ogmen8Eji-jhny-!vQwXZ{ROP!g%*d>UvMM0kD5Y@?MRCzgA1@mqG57~ z3tPFGf!+9g+$UuaCOxL(4Q7#8|Eg+*EE<9Z8GROv*31ZK=TfRyA-MIxCL_1oi?zy& z5@iD9UEI3hd#Vzushjibjj5ZE2#hJ0HOl5(0jj+Zqjgo01hS_Jqe5z^!M3caZeGo% zn96bFM?FD9heO;cU=smqn+RtiM%xtUQEoev+U=9n!rc*lFK%Y;N==^+&@n?;-0h5H z#^WmHW($`+{e5waw}RWJQrPL);7t5%4*eG56hh)L_Z@+2C>{U`Aeroyb+0 zMU3v9^3%G;>n1OHjxH@wmX?Y9BQuPiG>N`38KFt1DU&ye&N4Y6^O_;>>LszUSaAJb zuW`J)!gydpgaA$f|LeBfUeWXFC8iq6()qhNU-z#sGz6Gjs;a6+thj*8N{+j4@n{Yc zHj*xL^5&f?DLf>9Po~JD1;-M42(%%03Pz|nZ~*+|%pVjSo%-flO0^WW3&eNNFiGe4 zPnp+AQ_|u`8b1t-OwKO;q{Aw5{x@wh9%$B`#lQz3(4hSJAFkp$PGl* zLeL7!5-b&wodCAtL?C1P5@G+Ei?+gT{EP%&%&`+MW`z*}dCxIV+66#+3WgEEnBY0J zJtT`e4<(OdXZFV8hEKNTwX^$;MlU;#0ZUCrvkbO0KuK;m9hlL?igP-{o={o=W(ZGs5r zL43^G<{&C7qBQDxmfO~<-msIe)u!I|hlUH0uDCZ6e`yo8h|-1Bue3j9-~|k2*^Ih+ zE;v7Y7S>hw#>=3lF~=ECdf&cMJ-GmIaGGb0Sx4)}0f5Awl6Z-{<4zU$v;(Dq3izWb zDFVu#%%U-aQ|p`$Ue$)<(-mhil93C!nzs>qA*5K1)_zw=zGhKx%f*<+l@F;rYN-&0_fcZ%#Ho$rN%Dk9B}zoLdBHSYu}#j2?5@rw~nP70-59FUWCgUSm6dzlNN)J*dKE1h_Plo1j@+nCIC98t4|!qM0N{1W91I~4uJujh}=+iK)Jk5^>6Esp!EoS ziyQ+Lk!`*!!wI|zywl#MV~66ivH_Z%Y|^2)AMc=jZ;2x5Xcp|ZiSTBIz0J5^vi4dR zW|~^{n0U9yx-)O&03aE505i?z*Xxbz46Cc_%odc7`pMoKy>F;5EO1NGG(t3t3&vwi zFk|h^n=%EHRnUhw!_8Z+Th2D#8*zY_G8L$KCrt>iiF*&)6(qlxf)=B|?vTU>damww zZ5?|?R(&eSiX>6pR)K783%c(ND!J1SXYOl&+jBn*E&|bp_Ds~};>L5q3Z%KM&n&B6 ztQ?=c*9NhaPcYT|rLj)mg|p}P-HHyUosBS-4Uz-N z;+N1&RBF5V=gMgS-9i9p!F3XyR|x-@1g&-pBk>)?jDL5!@3iKeXz3q@C6;OuV%#SX zKym~Xp!E#w`9{oDs7DOqerMA%d4J6BT*cm#h@_9C5HmvuGBA$cxk-TGv{!kQz6W;H z@8gkisU4nZ166J;8#!+k{uBC#%)rfUV{hj%N%+3cgRZ7MWjqugka87`N!t8wpJ;8F z``#~`)gZJm-5~jCRSPpMH71k+R`>fm0hl4Yx4tIuCZF|>W0I$u1whh_00IoaTZ6s& zmnnRTTwIRq71o^2lT}{>Dx`3ZsRiD7=d&{(l6jO4)XK!TKF>vj#i>SMVEi<-VF%bI z+%(}20Q7~aOcrKz(DOn6maIgq3Lq(h3Q&4JLRE-*c=3(xyTB6Pzd}F*s+;)<>)U1V z%5&O5?@ii)OE!@lL4Ci?vQiy5f9EWPAwHPOGj}4ls1_{0=i6wI6x^h7m7&@V{kuWq zr^vj&Y7yC*yofe_J$wMc^YJqooSLG@;e})}2{^b6&EDrfV|lAyp%CNWp--J0EUdH; zP|;BVwhaTA!0>z5d~l%ii;n1v4L*`zW%bC4ww{P+kzVjPey-ICZ_|i{Mm{f|%dFe5 ze-Am37#K7*Z{zJGBRgT!@wqqtu3G#8%+L6+NRJQAS}@$aV2F^d7b~*`p~4tHo?Ar+ z)?HLHj^a08{Eiqj3U-McV1&Rep{@UV#n~`k>2qIyg0o-AIbvmZqSRk{#5^T*p}EZP zXtJ5nqs*QTTF>(#F*2`A#ZBfwMf1J`5sTb7yqltF8^wX%o7r>If4|%j(UwvHq3f?xcVQVA%H#Eq~?d4 z%p3dk75fx37Ez5HB%NFEcXaggMak@q`g#4H;Y0>D!!8hjX=+BQ2&PToc^Iedrss$DRPpx0G^j5+x7rCI>P$&OSZ9dzvYLfom}Zp=t?K05)BjtuuI3#{i)^l@C?o#mndb`hQCAboC>o% z6gRV={ml#@``g!6!{ZV#b=4d{-g@0q084~xJP|NX$Y{vmQlsP;g{nT_A>biKr}MYJ zEj_U0|C?f~y_1tqJq4Vn*Y>NmDqNt6#|StA z0x=YZc@awKHOLl|BFL=7&?Ch$LSQ#9{Uon|>SpzZ#;af2lpkT`Jh7Nb+?zia{%VH= zoD$$m-N8L3z%tcI@FLLGyd}@+#$~b^;&Bgtv)D&=+uZyW-pVvhaKy9ee+Obdb|V9A zvYG5T0pfGFffGm9h|v~q5Bbvv=utlbuWnOa5tbaH4(?xUY|M9H-8#1U7tFRetZ)#u zOJsQn{*(VK9kvG;E`TIMJ1ALPtiduXH+!erHPx$;fe3=F*Xp|-BUjQ7DBWOI6QGO1 zwo740um*4jgTaBTfw&p`nz16~dgYe;)=GcL)J(Mc*vrbaL!T5n&EyX08#Mu6#fLvbr6TF7mm@P7X9do*HZ?rC*y~lot)68R?8&+Dd zNSH_T76!?`lh7$V#>6UMy5gI8@`2bud6e|3I%7IJfdg&;qzBt92Ptdi0gme=#;Irk z9mIQU4y-?Qn(l0}aX*Kkf3j%0s?y1x_%><`wBNhojpHu?o8n}wa*>Z%5A1tH$-ax{ z7h{YRWNLRYeQ*6&zOiE`YF%@jXEG5&bGX}v)4pFq;r1`)s8pxT59h1GP#hR<%JX(kzkW*>b-`?5j-n!^IIZgfd_u3K?9`trU zAaZ`c75!f6xF-muhhtnYkj=z5Be|lbrRCpGQWzMRcNMP5f%VBGkm_kaNqceGf|nnd}M8F+gIMW8m1`n@&N!q zG;|$cvV0${cnO#EshCVHEb@N;MpP)`h%&VD0Qn*QnxqBP8iN3ouFH_O1Ir8x6LbCl z(DfEjRejOB=%Kq&x{;Dpy1OK#5lKNny8F;6C5qDBA|N2rEueIVv~(W2Ip-~Y|9i*1 zZ;bc$V2=aiuxstLW`6UV9-@G-(PapMfsCZ9t82d28_%0Dl>V$;chofZ3t7tA@BbHE zOzC+JnoRJ>mYkQ@#cG7+%R3G%b0sB=ho&|5RjrRf2~*$#g3f=RPyBT7xzFj4&{(+v z&w}?d6!Zo`_c~l)PpTf^X{QD>mxezbC_wlaaCe0*-)#yRHn^-NPJsqh#RvZ0Ad{L{(?g!*$XNh@ZL#`4L|LX^4a8>^GtLU46 z^_fVsB8;P#xg|c-yWxp|gTAn&lpE4;kbK!uU9wLIZo)<;?-aoK#ixo4EFg-g6 z=?hZNcT!UN-OGZTNUBHAHYHn$98WtwB%@l|VIvobnIA4vg&fRVD652wPDT8R<(A*e zKp;cb@7Cy|ukTB5?_rNtx7AoMEe@b}5PH{(B4u(Re9xd3vfgi;RuWeb4;B&*?iOX8 z>Ex8C;yzjoh;Xr5Wambt`wc(8#HIL0?l#P}M^705yyOn<4+-`>GXK@oWIj9+6||vR zAIW;MZ>A|4ehWG$`6@{;0zNg<)3#Xb!fn3Cmo4y@jJoq_p zuBD|bUrFZ4IWgvX;<|}`=ul?PaAoKa|;rL zcXNY5TMzAawtCyR7CnLeQ&M0b4KMSPJnN-^?Qi2dR-VqMOeAV42`cKBN5WKaWLjM>5gK1IAe zm9K2_uX|EfB<&wl(gvbJ%qhe%qkGMjHDtHymuUnCyJcV=jHh`~xtiY}=847Nkiur` zCFA%)_>Dh|Nmi7`4{_NZ?Kkgw^zlVA-T>b<|Eyx1{KQ%!ouKK~P6>)A%`@0NQ{2;TCQpS9J46yfskkCFh2@D+l$t^>Zt)+mN$0C1nbmZob2q)lwms*IP`}a||g4M3wHtk(ae2 zNdX(5kD%v|PO@(?)L#8n@`qRDp5kO_Z2c#9cMXvCJVbjKKfu}%v}=8dN{)_PHL0QQ z$30e5kq@w9K(6|HDd1Fnf2qPD8g$or;QL)I&Ttx!dkV-}fAjnOfYjC3(`g~k!vCJd>UnDMAJHjd7J!#rH{mhTo|W_`iD9W7H5#vp(;R=k;W_my3U48Yf;`RjA-PdAy$ zQ?Pq~@XM#C2j1bZkWjDnb$?L%$!v#M31iBSV&EgvO2ptz3zqXJOd#85Qp$H<>s_np zWyq_Y4>8TV<}di(bm!N;DVGeI1}|vwJi+EoB8+?rC@@Yc$ZYZ!JWIy zuRnAU%&rl@U#zkM5jJFd1T@LiuAfGt=ASePK;vu?XAZsY{ za9p6os4KFM?r6d5{r~S)Xo?H8A$@3>YOW9IKNlB*6)o9BYYOm&nJe4jejr_n0U8ee zisfm;1f}7i?)$)}9G!+W_H@Y|EMKd2)~dJ6QChyVv;)+2lfrX zRi?viv(N&59KAS#IB|0Il*3x1I`41kob?`_O4yI>iUSPC+Q_p&1;g*=NDEH&X9EKR zVtz?9Hptts{a01e~q!OgV_FKBEt_uRA6^U?A>BGBu3kxBBC~rc7|FMS4x{mw^ z^r&*yapFGvDW_RHB}P4(Hk5j~{z>>gS%>$2-yPBlSGw%@Sk*?Epz_I_of{n@tRZpE zx-m8q(rCa_gPj&(O7Q8ij1Xm#$HwR1@cHFJr5*3(_`(6}f|aa@@3_>tDsAd$*HWfA zORX{3_8}hDx8Nc3VKaX;l;`xW`-`%bwi(8o} zscO81MQ}C=xD9m?JN_XKPqZ1IEpG?kJMDTHvq_*x4J{NE+HT~#elD^_&1~wXvfw_i z!m2U@&K3z?c%e%%}^b^*X{CuY3l%i5hkrBy)-zhCArt%jgL2@^+Kr*F- zGkgqA1%>o-z6ul!#+{mhK;0J6@<)}gYVp}El~ozfzf;Xd5+Jl(Ju&Q6u-p*GoHv{% zCsGlo_Q8z?Raa3gBx)ie^n};S#5~>zv|ciD{TawdZolP^2%|VH7Sp40i5f1(BAUstBO%p z=8n|V=*n^JouJ+`4|;^%&z~OyyhMric0(J# zgZZ_948hdXrT;sIlvhhK#M2U;ynKf)P`?-%uEWZB-V4Bl2XxTF(Gln>+V8+KEzBg$ zU05?6dZsmk%Z~a0w76GkrR}i5 zh7l<`_*A(Cm84pKNnv@V{Ct=9iueKl)fcWXJ~5o6zoH6v7fDQGjjl{?*#XEGS_Pxk z)_8U>c$RE0pC|U+fC2qMg4hSYZs*bKZUSMSxeW*;Y(BnpCia^Wox&m=g4}=>iGFW2 zD(QZ^VAlVymHh7RN~R!Q+T}7v>wNs8T%_vtidh@7Z&gcZ$AzOyPLSl;n^ujMZAMhD z16k>BOo#3xXda?qv_>zcUyn8~M%UGom}rXO!K>Or0W;(ZKsz#(ZX2 zt8i|M8LrzK_3m*apBVpMZpflIJfZoZc`RI-&HINH=er_~D(+;_X_fT#&U2#5N_5DXNj0@- zEE-=9L3Jf}vStngbRx7K9>`Z{1+*RgyG(d-QDp;gH(2OlW} z&v=lxP}h`zEp!bJ{F%8vB4h?Ae*4jJbz3sTZSb|>Fi~m3@7`VPkl@e=9HIpi^sKqK z>H4Ke|7lKsNx1MC7FM*U2Lv+ibj!s!#AWM$>j=b5gR9GX_jZ5ikz}|nX|1Etpo&PgDg@o*EwGk3n24m=UiL0f)_Q_dP% zKSD_m?9W(1xFn zf9A=pN?uZvfBZOhcXx_?iv{^f#AL3lD&Ie4AZJqz1XKRnyfe|c@7T$|7s_oncFZQe zXt)}zU!9sLZo*Lu7Xzurow9JU#-f#9Q^l#MU<&bft$5@fWO?U4Pcv83R2s_iW_UYH z9nOJI4_=Ly=e;wjtC-E8bVD2d*yiJKd%N7)IddvOQg99@Ds*nwo~j5F=17rv%uPzkdDtFX1CrgsiQt?S~6;)L=s! z){A&bsP4EM8);x8sbBe{-egjU^yHRYLos^sH%{^eCrr@h<4{7H^L=kPYNogs=NHab zp&(8JkiweTaTeW?t5xl{G@u1=YIbDlGC|lpUY2PhsE>I69^1;wsv{uU;`2q(3owmW zg|C5fX#ljw8&6jxPjSQT?96u-sj`6^K=(_ZBWu4-2|>GkhPL9}720SZ!$^VIm>~?EdZf-F2AQVlk>F46-`&Tnvl}+!_B1~}JfXU|8}WJ-?Tq!l*}Q&Z*S5P*B>Y@VQrU(ARgsD@+aG$efP=- znMEC0hJH5>qk4U-;9!m&<`sLAf!Bue)k@O_DvPk!G$>{Iv9@*E_dR4+_>|!yLS%XXpT5>-$@Nq&<3q5y;0xJ8 zq5kE-jIZ8HPfkV%2nC&K^A|OS1!jV^Rrmns=RU%d~RI>x#m$oCa zM$0SDZU!?)2J~O4jIAY-1k7!qj-QY@HEhr8#7yiDnb!OddPb@ zOj|~o#4#TX?`b!|RU)nW5SiJ^b6Y~068`edZ=7-MaMf)*A^zK896UVodWX)EpdeMV zfS6p+i8v~%ASO;eBXhs5HS3ZiU2WU%{N#oc@;=)K*Cqb_rvgIM5L-`{rc8~%L+vD{#NHKD3K&^z5><6 zC-3t1Sq2}CWGL)I=fQjB4gJWT(D9-mGDksqncU6ied{a^OGCkH^W}zZnMY_iM>~tn zb0^>4Zj>@H72ZTY#>r<>T~4yC%QtJrUzT~d?RO?zAzB~aX-?0_mz17P85$NQ)^c~) z;mZX#_aPH0a*5_lIk**2|Zp-)PL;+@1}5;bLO!daI&N+WD45 zB_(gdmpe(YyQ&@DZw5ah)8!5gUvyH+dzq`tG1uf-KF`Mr8UZapFBdb#eQUbEaxpz@ z6KU&PTc2F)h}}Vpc${FHPP6X|s1)v(+;%C(|Tp-mZHca)6!kVHd5Ez4t^l1;3Q-cgH zE-oqXa(m{Tn$^EmR5%()oSdF2NW=d~U9%$AbM8I`Egq%hwRlo8vQtp}VOeL? z2)MBuPlv^>*OQ-y{UjtO#~fw9z@nf!<(qoNE^eg$cirbE?)|D1ffKU%v`LsUCE@0I z%UZLl@Xzw(E=vK(uXC*8pW|v-ooek`d~C_s9N2d3Vz2hj?*c8~qy{*ek*Y>1x?eUK z+o@9h{;Q)XFALFe-d1u+rsMEji~FN%)3ac%K)MoyP*Wn6ha4I|i(s0M{Uc_m@-m#~ zTIp-!SqQ`S9X|-deQIsbJfm|v#v7%_WK59|j`Iskn{u{>@NTtrPEMuH!A&4`nzhQUazl|^BWVpK-?>D{ExeySC@>)vQTA*;tK3UgVS#9 zzPimNDe|oLFW<@goL&iq%e9 zpgjl2XJWaxD1Ba^YitfwSWFkGn$-&t4Tg44sjmL@ENU<6+CA~g=up5JSEeQJ&Cb!# zPOq@(xbl%*yTgn*lOvVK)ng%5E#>~o3ZCVzVCtJmASAf0AU|g3k($*T2*VhB{JCUP zLAZJj?dQrzNrWAr6BAZuhlw@z*)9LZ-yh?7%m&ilReV@(7iHLpSH)jHiHg)oFYnW} z0fU1pLs&MEQC3y$;^NK_b1zptFF$y$f3|_A)>uiG&vvp`qJ)Kg${_kAHQ#cIdcin+ zkwy7!-zA;}Xjx^;Yb4xKk$SRVq(S?&@bWj?w{t;ao$lXD1{z~nt@G|`6x5wp<$f<5 z53LY9*ZWu88NYu)Dt)ZN&sy=avXy-TAXJj#oUJp%mJDNoYB@r|JZ5gHBVHS+jnLo81%Uaqsr+(@r~f`-2C_nxo7ZXkxxe{jY*n5aRa;NHj|`!P zv65iGTD#krMb1G3t1&A7W$pT-KInVGcD4*DU6n;gxS^uy!nRrEk>R6AY?9VUr95qR zzNyz^H(y1POaYcm>TzwBzyQAT^?lfnyB%1;OZ#N2JEM+anEO%h0gq;v^`oonR=G3E z$A5y4T^+8Dc+sND8_qiOAp3XRQH3EExa4%KS@q|!B-HR$%vD_}k42J#>w{WL?bq9P zlhMef{Hl=}n(}+)#mlLRIo_Wm6axccgn^w#{ikuIld7C786E-S0?^WljJaF)w#k|J z%*8O7Pb612pC#l=Q292R0+X%wR1kbodCxzNrU-pMf6?d7cM0$Ob%E{KY_N4ZnfwcG z5#D#p=jX)ZRWiSjv1!6UjLfsoZUW;|Thw=UtYp#doTsFAlXUl~R%vW(j3 z@{?5V4{5?^^0$5B3lKkJQI)Qn;-7*s)XdJ%-$c{s3pO>C$U0 z(?|XZhO6xhB1;~af_dqeoTWd^#Rj|+PP?!=$6?YEXr4Q@6y456hBPTQnpx0& z-THtgslva1|9sYylzh&#qIjOPnreD@@PkOjO4DBD+RO{#>wPo4%7VlKGXg= zw&?wL@`nl^|9;T&8#C!mlNz z4wEhqi*&9>P%;Sj^W|RF;W%}v>u5*H=T3hWZY%$BtyYpM83gg4&MIswY@2GSWFzIZ z)4-O5QzmnueMVEnci>1)z)-j{FXi=>@V;mbyI!rpt?J`$k@%dmd>&9gLRzPxkdvep zu6WywHESbl8%I|x`V_AYzmxZ;_xBm^zf?doB##;feSNWeeKFNaqn%R>6qL+b!M}B+ zJ~6S)anhX(Csnl(b4BA!HLzr#(s?ItNFJw4nl8UEAijxuW^0FBB!Yec_xN~`@E)bN zk2s0^_oiNg^G0@&j_+-oS?gx}0nK18I~FN*S^n~@p~gPi$aY zzTY*k6QhdF$lSC+kA6^8+Y3AVMW+E793Cze9-}FA4Jwf&l>mSIY=^-=mVd{yIgQR_Uj7h}OBz60y9O9EB7ojnY1{kk4qn zwI+BJ6lqezz!Dml_CnYC6Eal!?~aJVSB0S0_;0P;Kr&i~lsQ|&$B)Di0;S=xv9a-L z@Oyr`@RDx%RCq*$if_y60_N(?9+!KXnkK0^E4x*Gq;!Y>5E6;rm(rMD&jWEw)Ft9vt7SVS={L z{@ZNcYoi#oyPGv=@5-wcU!*C#<4>=JD9I+vC^SsZ5!^ zo8MSSGk)iYw1$RB^9T+wGg(+Rf2`3V#&*6S=Z@K~|BC6&auE>`*`KdZ{QjNyH@C)Lwr2o~Wj&PM1G-Rl*1R16trIzo8$Rq+HdhXb1&dMDIh@k} zXHsMR!kb7Ep3OP>j>&IF^WNPU6&H6R?|kZqNITnmP#N{&DYUXY{pt7`$Hoiq0IT-DDa&-K)Km7y|7NE|i;dK&9eyvys(*AXUB7@jPV|6;sh@9E z#1(N{kDhTKw0>?~`|75-mNBHGkxW5O@nPF^Sow-X4QiJ5W~x%)`sE|9`8MN{URTmQ zEE1b+-{KdQPwXLY|9c|pPNK}xsolpYg1>)coqAyjGcqE7R#kZSuI#nnyLazud1e5B z5WrZ*d8DM;Cw6CyIsY8_1X(XU3uYHOv-};`%f^gjnl|~)GpRC*a793Z`EQl_mOXR| zNW^zD0-x=?*9hnkKW{^kQ@wP8ZW0olBnoie>HL!z=Z2cIxzmyVOIo50iih_3Oc(U6 zU;>FbI6EN5GU{ukovUQz({j1xC2AX>YkWWZ8~=JDYx(N9%-18Aq{J`!Jq>605T2^iYUY-8W@ z9{`lvhfy^R%vk&TYqW6B{b4hNIZeL~a=K!P-6gtWRt_cjJN@xOOM}y&sSd3`>tu0zQ*UW-ws0F|E--(+5!U@NHhtE#Gp_L)>vBtt0Y~%lEV*p{-4WL4 zOQ6%?c=$5DXPKnvW*<7Hc{GK`|K_f@+{TvyWwN4JjR{ zHF-XL`G?XC#f-VI1S%K!eRF4Xe7z=1u|NK}I^42k+zoP!7ytT{^Ge~O&8^-(yyyBk z6b@nhgnUdeUVXXMi*FAOD++Q(u)Myhmo1|g;mSl>v&6zZT|Fi9Qn~b-GE;Ink$!UX z9-ZUF?ig?UV_iw6%FJ2b%n{qO`o~%(#!tbLyK4LKjRpaPBC)EQmXk+DL8oM6T?S ze1SQ>p51Bd$=I4ZsJZUfG^KNcc z#WLOR_w$?_*m2-43)K_)q~w*PO9|@qSb$|v@H0Q8Wsu|YvRA3+N5;*BjTQgiva>@; zYIf&f({sFLlfo63N7qs1B1iT}-8L*q!t`;@Df=iZU)$s9*%ng#!YDeq-56Wd{CKz< zy?Mb6vx&U}Uy$WM@I)vc-JLCmsb$RMEOi%L-7NdFkCZEHm9X$nC%!nO7#wd7I&N@| z*H8#pCS?2+wk^W{QE%h`ReGz6r88V<4HJvJ&l@k}sPXk^)i7*OxU(J2}5NFf57s@~AzLBr6303euWE4;81X9y_|qS{(Q zc1|&JUy3@+zVSoTNirLlK`ia*>sMJMF%w_|=UNzexDMBMl-K-INk35XmW^d_m7h?vt8~YO=e0 z>9l%`q&=$x!oN~LBJj<;E)z0rY1IdsClb^SKLo|z$Hw|@rrCh*-NYCKw9LGt?k7(t zfOezn&@0#H1FfUK@R$t)MfuzM1)kt4bMWe9Tk7;Y4Rx$%-wWf#kEy=wH&iXV$yt))xqE>9-+7 zPz4k|b{XI#Kl5|KwyU`1G$d634hCxEb;D2t$B8{~fK|3 z7$38OX|}JARHxsQbkOr4Cj9VXt#0mg<+Xm<{dD*6$MS0K7~N5Enju5gN5EL}Kb~%BpO0?+Qc0;TH6vn$iU?+jk>Owg-08 zJk;sX*e{< zR~4M!6i7ARJtM`g7yLPos;2l9&XAyD_%4AKK}d%zOU3#&lwP~4{(E2#!{E6fu-QN5 zDw}n^8CI*+%hU^NTv9ZK5$YN}>DLJp3eKwusWC>8h*I!vAqidaq3e2cUshFjbgVOv z1cRN2sH5qUlBc;rrK(_G_QY5*83ki$;`Pz6qaxQ&dzwqxD_E<8*#5j*J)@yv!t2+N zgj!?NO|jf0#=bqNgBG2AWn>EM6b-l&!1M~aV~St4*2(lFQ%K5;!#*J}81vTU@8uw& zl9GI%*dFOSlGtZmt>ZN=?J;7m%b{8EVUfF`u7E^~bgq@snexZH0I_~;u zOm%h4PVk#J=Tskvz5&hi#?G*r8a*~YS~f4Y({{DQ8$U^$jry~ZN|lAy723PS6WT?s zu42tZWS0Rc)?my>5p~pm!5q-Xo4JFMN(NHm>fx2@a@1eeZ~=`L`w4?1)pLg4qs=Y= zrEX|*Xu&AloJ=KyI*~q_G^><_gI&4FyIEbDRDR!!sFRx>Tlvzm+7OT=6e%UrmXcDI z;VnUZUNrB{Yc0V0dBambNL=GDqOkXx=>*&ahWJ~y7Z=^H=7^rwch8hc? z;EYK~P%QU!)(q>E2KhclHbWYZB@$ruRTw! zzP22Fl!B(au_aLOrTyojgq;5qvKL6s7_()5h$!a-e7uFVFR%H$pp@1kEvu+_!p)6e zbaJ-*?v zOyKnO0q&zXjgr$FPNOD+S14>eNI66`c)9=MpImMP{6tC?2(}4!pZ8Uo4@uqIn>$*1 zeMTh~W6DG&R7hU_)v*3f09`Xj1*Wz3l8qEIG%F5oZ}#r^wh))bRGVvSbka_}rhz^OX4S;NrZ{dQ^={QQGZlWBSDdB z4-^&{nO75fvOp~eJ;NudY)uQJ3M$^VWnu4De74^8!tivOIC3Oi4mP%il@KROiYjSz zMt@U74B157awRrdeKP}Q`0r?ulmcDRFBT4uah#WZ3)V7Imb;8?)>AH1biQOLI4r}} z+Tf3;Th6f~-J)XiEXd4M0}#5T*iW!f#(i!Rs2~mN@b*#5-@LkZecaNY#-dd#6y5Da zY!+)~gnzcWUj8$24(d4Z-$Ze_ujK(}j30XQ_UJ73>g-Ruwq9yqsL;~JB?77j&qFc3 z9BiLOoKhw@+{cGchJ^RAu2GRH=Zvi(%^od1>l6F-(gksw!-VOTtoms4256{j_Tzi) z80B3VTeW#_>zOIt)BEyRcBwR!4!xkDFAZ(+tKS0QBN@pX*6u@}c$6>ai09jl6fO?4 z;@U4*k~towWeB=3LdC*tj0eN*on(vjYhhagRz=P>hhaf-dwWszvw!X!nOvc_B$On5 z!_MvWKb?aaW;PUo2NBFv-{m(U2mvW6bMyvNO7Gyq6ij+Bkp3K4lyDgS^sqDY+IkW6I1dn0;(u zHd36p#Ki81xr(I{a5kHRq)g5mts*qY%E&i&;FnK-wAb&AsktrV0Fw;3m^4E&yn=5X zm>$eso+hG(M<(&Rd_Qwqx;(UD)8kN6WO~)?eKc@8AU@peKc~tsDH(7zb32yunUL^t zXA9Y~G^xU%ry{BhJufHqJp0g>o8E` z_ah}V8$4z)Lv|ZcGiJ#*AK)Y`cII~k0&pdf;sX`9@Xq()t778@ zL0BDlBW-Ht^33^cqBp(~$ns+q;x=@!yUUDvQiFO3`{&9RkdDFA|W|?r`!KuvF)pY_Z#~rrxK9bLumAY8MODx z-s#^uT!Q-V51IZF-7>;`uX=a7S9R&=mRw?O@Jt{bR{q`6t=<|uZr->)RWhr+AJ9A| zz)~>N?`kM_mfqUhVd*wB={afMLgL-(>@#d#&!P2YS@wC_4!sM^fH`gt&Z)H@(8|lu z+h1ygG8XVAr;ORJljGkvWt-{WVZ>`FwYC-axFL6SHJ(;HVk5;)a99i<9?40zz{luu zUU0+v66sg9C2|_k+pAMmWsMlI|EmjI*(T5TzsM^tj84slHXIE{kkbD7WnE`p%GNDJ z9}T|s3OtnpCt}VbTdWld^84qD`)DKJiVW5~`M2wvKOJMSff+Ir5#hBn zn~8x?YU6b$n_mUmf4LBW zv6{3&$w}^&xs}EJ2a9Q!|ER2-mVU=%&11fgv-;9xbKiUF{9;75V#0MtE|zy%_jsaa21z+9AVfFkwW)8$BZ6g=j-E@2IHU57TOHZO z(t%3rnR+t_;Y2gf6V?P@WDugyVC{^&j357E zd*@_0TKw7{n7i*58ee9YQ*!CC)U>RhyE=|f`OeS(GAZa|(=JD%d&xq8m>f@fyivIV zsRAe7xfN{bPm*IsT0l3~RaCf^b14He%NMAY=&+9roTsw_ zA<1Iu{~X9P!~#Jk@mI*9*|A8DIGhcy4*hY7#r1AshtC7mfXhw3TlD1C`R>OZUOh~+V!}e~5w~8MHq(3Lyz1kH zqlI>@vZ-~te)FMmgVexVi8Cr8tn#^Ed#BXU@w$<_SUpV3=GL+7WcWXZ8?nB#^uc24U80 zpMO~R)WXu%*2PwsexN2%$JluAWMiP(sA9oyuOg08;Gw{vaOiyd8`<^*D_nN0y1T^F z$x1uXT8xynlBV&KeRe>|-5|=OzCKWTFxUIS9}Md>3qeMncJGBc>$uLH;+s>dtQO~A z{GO|CJ|DFC4dm=fce~%A=$-?&=~Z;0I)(T7xx?+h3BjCs%ik_;m$030Usb>xCtjAC zQYVzu;cht%tQoKW)Y`X7C}tr|i5As*TV_v?SM91xM&?_H5guuA#t6ye{^Znv);!gJ zY%9(#P8zfg}SnO0e!8bS-R` zTn=z6g{b7IxidM-5EKVqYIrZSc#O~>}-pTFIX=H7{tT_Y~#cDquGSKjR$ zY^GgVL-=3C_3sO~;npJV3{-11m66k)o|>8Vrwf_oaSD|Wy|shhi~qIT|2*?i@IZE{ zaXC+~?O%1t)lClm>a!XpO>{HfPwG#Xd#vkt4|l1^5hYZ^E0y9&XdO-*kf!{XYzwHs zzK)5FT}x7;T^&=RsrCN<&tH1j#!pw83_M9OmX(n~a&>ilJ-qXc%od17L&Wen{!`8W zV$j9S&vqhTlS5z48}R%M<%GbIERnX>*I#ODcRfVDe}G&K=q}g|iasGA{7uEc!0_=1 zgV(Yb7pM<0ul?;4QK2V|VS0=IlXO{pq)rxLF0p*o?TF0I4k9~3cpHytXt-#eva>UA zaP%KE7*()va;o*O;Q_Gt+yZ%6O$9e(-%Cut{4zCdiI5cguIn$|LTfn)j=V78x^Q3k z9QQg(LsJWwlOGDD=0v^ul=clfWT1S4bU zkfKE|?a5C^#rK@t|C3&lDSeA)UUC#g0topwPwjTH?6u$F;Vgq$a58HJ?o)dAeda>nI zH&!sXFW|3zx9CP!S$R&5yFXhU=6~qgAVeKmnHlu=0>2P|FG`%Po83-c{Oq zh|)9(4g){4nfWdvDysfglHauJZ)U8mE(az~kEoAuM05SXK<9r$P4iyS6#0-8ENWYR zN)gw8;b-0&8u+&t2TYutafOA`0Sb;;?hlN=WJv`{KIGG@g6^M!D%}O&t*pt( zNnY1~@?bjdJ;uFROO&!cTxe_o*|n>i8#mw>lTcF+f^rrSzq8UlmZXV|OvHClOtkl> zo2C!Rk0v4PkG<-Qfk!UMb^_SL2W|6g!lV)hPe4Q~HI>}g!7kE?9iovX`uWQO83!pg z{5Ub_C^6`+U{2h^!eZ7z5CASEAL`g3s4^>n*zg}n`K(p<(e54j4LqdserGy@)93e< z9*0Loc;UDgjHWht%^|(dSB64ct@dC|bkfC1;0j)-k7FYio4sp6<4tz;GTmoj5&SXx zA0Kg$4(qeN(%s4`IK{sibwPuxtDF33+rOR(RaH!z0brE1w6sp#zLPce=}&0n=I0|f zFD~V`cNC`%S>vLI&BGFvT~)9yCGObDn3O&}b0M7IPU~(%!5H?c`!D-5Ojr>FQLSrw zZ41xLJS481KyQ}_^ci6tevP-XGioXoyqHAUn*E}xH5<#a@94N0@kE?6ZhzrZI4WAs z!Ph^(GrfV;y)QUFR~b1-2g-q5hv)AE6!OGdZ~A`*ak($qL6{gBUzX`6fBDi>l=9_^ z;2w_4SiZvcx!(?emM!m`@9&cN?3^G7$*8(N2Hk(Mkc<3~oceoGg=8lwlX(M6Q_XIg zuSB)LqF=q9h;Z}prWiIGV|+U))wubGtYJN*-NUDKOZrvfhQKnDz#)s; zP2%hilYYImgTUH)^Y8pLLt^R7BDGHOI^@XP+ z+jqk&`OUP#6{j9>_>f{UCZ@CGiMGdxWPE}TQE&!U0lJ~Im_<2>6w(@wCqlbbsX`L zqqD-(_a``VF z3hWm=p`8`pNgvV`|8;aS<5BOs9zG1n?}!xsd9S2D?BYkAWP@Hrv?dYQIl+)SIoaz8 z5}w@S<8xuDwxEJwK}33fba;NNPeVl%k&N z)$rN;q3etGy#oSe3Q^gcW<)sq!U?RN94KmI_zY{|nTpVYtQwD!zcFHe05|hlYmYw# za1V`Jj)>}i05co8iz)SV#d6_xm^Hk&soC1iv|a>VBTYsP)&@DF=A+b5FEk>aw7fmD z1Xf!kd@cnmKHgi*3nrHH!^a7PRK$moQhgT1!E;lHTRwiU(`m1ca4G}#cdQ4H8Z38i z$J;;KJyLlm*Wi|P+utpq**5xyqQ0di`FjKEgO7o;Y}S*U;bhMz)!~WoiJ3PG>f>@8 zKR<1JcT8L_p0a=_JqyrG@#Se{zxQ9gEjNlka{*>rQBeJ3GOyhhG-IDW*+^p_tWK>l z+-4u{2YudksejxNWp;FAvwYgo&qKivE%q3Wn};16O~;{Kx=s8upb&m5YFXJ(+!Leb zzHl}&({P!kX*5JOr$+bu;_KdnW>32u&#;9`-2VLe%(4@zmQ^48AypU*)#$dz!TUv0 zVj4Lg*^hnU>SfwQ#3V0l9jGmiv98bs6Jo)VKn;&5u>Xh8#mGkiyyhTfHmyJGrITDd ziv8&=!>cW($ble5o(2RllTw1!+4dOctD5kpCQ+x>I`^*cbA#5VIYFK!$&17@lBb%J zlr*AJK_2jg9MvL_bHReX2c?M`JVwd zNGqvB$iO+-gg?sB0oH!Xh*U^*6Lv5TtR-h8=hd(6fl3y}GK>_7n;-~os_bMR9!|h8Pd(BK>AfV!v$Eg;u|$aFUz1P`594LU35J zeWm4gQB=U=Ih$t+=E?g68Ww+N(TBRY!uihET$8Lzl0gg6xlyg#A==S1re;*H)z95aI8%lGrs zL=`m}`K1u3?s|^ZSZ!*i$ei-VcnvszX)(H5yHc#JG9+{Dq-Qq zb~x1%rTssAy#-X3Y5OfsiGb2zASEH8V1RVDbayM=-64pSfJjNVl+@4-Qi9UmAl)F{ z=X&S&egAdVS^slptyyc<%<%g1JokOYzOKFZus?J%DLm zPgP^>rxS|WN51p)CnISu<8Fe}@As_qe>;M{FzxhI;oEPm=ADr_B&r6nPme3*__1&( zXm;h%39lUq2N)WV0z3HLUXlE{ou#0q5H6XyFqv}`JY$~yt^5Q0ejM?o5sTba1ou*Z zb`am#O<&}7IloiH-SOCE2?-}%8H?FfOzt!9iwGEmpRsjH?h;N4KOWD(b-L>7cwtv${@zei?+c z&2P&}78T>q?p^x%@AGHl1B8N_rkrn@>oneZkxKF$39SW&WI@oK7mg5&Wab?5P<{D= ze9Lb}?5s<>IX${WtB_vDlGx*Lt)(l9jyGi!>bhTp*;0vKJFjLHf|$;fIB^mBF>dSG zar6uf2LGL=h@skv7LS2&jgYr@V<20FnR9Y@soN_qEp|<@9trzQydmvK%EPP`dp%B%@P$(7G(L&W0Vp zmc{!-(kceXf{_YeoRx`0(dv3+I80#}xc-2#`{4%FUG_kFj2>p6CD=F2ua;*N$J?Th zVMJ?@^>3MfLR0=>#4@8rT}s~d-DZ4)em=|JZK=Kii(z%K6cY6V7TnJj9=8dLYPw{8 zO%Y_!e<}55QefZ>-k#~(EHkaRE7&ZrA#3}td~6XQ9xnbH)e6j_vkJb(p4vFPTkipB zk~Gyud0TvVX}!(%)Tm}cBnRX?vL=6Yp|FT#~4~YPl&LL%AA}V>8wOIu0;p7bu3?u{@Hw`V1d2rB;zE8V{;b6m)Svxw}N-q zynwMZq31(;Jx28MySL`KsDhMkdoLLO+UK#Xy^(dmuz>H#-E>9K<^K_%e7I#tJJydaQ#xHj{!Wgvxyihuc!OhuhOY)#aaK`xUVcmpN$sl z^$q7K@piw8mj)Rp0y47gmu#HEHKW7Bc%+`*lhvswDD(01z`3z}Hovs=4zwM_L_`)} zCDDgqm>95sQOqsdO|FCW zyp`of(Iv=p8v}jE^Jqk^C)}ImW6#(4Iow;534JezoHA|32McJR57eZht+d-P)VX4NauWDF~7b zS@OaxP%`_AudnYAfpgz2SrerQ>5Isz8jH{H_geV&mX#&JGv|<$2|Lvd!jp)7`U<89 zyV;HwP&r8f4wQA>cI6OxV((bC9^F4kuILzk0tyO|YS?LA?|zuF8oqb{MD=avDeEe! zRhMj}aoD-wyFPu3P{c}cTY2~;DoUf?^(71^tw#5c;%7G}+T7%PlyhcRvHm-GgsCG4 z?t*e%)fBAT{7!fsy0&Io+?l+J>E}COdiWqw`?YU3 z+oaL;z-KF@KHpf&|7`vBzOJ7{3ZV)qqd^T}q+yq_%C4^d3Xnn4eLc@e2BmN1U)3s+ zEmN%XkhS4!>4DY@Y<#qgjj3t=vo%(1H#P*P4_p?arrca+obJP!h`R3m^=lD;0Rxcf zLPJA)0XriI`e|)g9R?~YS=|!XB#y|7DZ%%Fn%YF7At}yn4B;N0cd>eE@Vmu{L@i^m zb6Y)MUM56v4d1>oP%x>}BnXhZ!totcli7NknSGc*QIMGoUI$6bhIz<*W0a@(1$1&{T4}Az<1VZ z!Z~=kVr5chdY|Dua4`|P$qk9G;gO3?+!YSBwQ?$8ISTKubq(~2TXI{pJ4uiZ6Ye2bHB zSf@E|wspr|TdjO%&i=J@Y@%P}G^0PMMogMWbPN5CWEeqqst1J;gT3o}`SW~*K(^5q zRU@GnoK$nwqjd~(UMFM#Aix4*N&9{+?IVF4vYdaJ4Y4Tm0J~K0HeNhvk9_z;IUTNH4_)2RB&}(ondmZ3Wl91RTZGMc6d@*KMZ=( z-Iw{hH_O@KF*g6Z%x(M+RAatm7zu-QQkzIPEgI$H3b)wK`sFI(g);4ZWCslBohp!$ ztvji|ZWA%h;0j#+3AXn0EAwu2576QjaiIN?_f}@pOw#2> zP0I^&Op>{wE6tn@Jj&DRk<7oH)TaORsQ)8JaMUNp?*l8CYu{aL@fw*|)qic~O(_V? zN25ioqUqHXxuYCBKnm_zi=_matGafRrmYGUKyZYDrJSAw%^*9?fnr8A3mG4 zdM=7SXxP&M#Y&O#nz})pmWvE=MTESjH<&fI6;la_h&~i`mF3T=$3MM(UaKLEDz@0o56U;VtU_-{D;LxX8>*y^mwiADeg#6ZUW)QpX z5N+cUze<^)yxAzqUnoL!Q>svC!9dNVxGYl$`N&z>U^`Jc#2GoDTgQ}0n(c!-HHoyt$4^HjEF$}rWNk2`)R_RgHeSkZE< zmbJlr^ZUCGUm@HoKF7s%!envgFXRt=LPF{*ZSILw@AKf_zoq%k*Qi0VuN%09zsvgg z5Or5yEt!_E7-x`v_jgCB`-MH5YXwa_;SJp)J?wN`b?)SAKDMTL&uYSsUzoK1lXhCO zO~l`XT2~ssN>@F$?zkwGf^%%Hv`A5DJlQczqqE%Low4avUKTG}7j%||Jh0QaD3@z9 z!y7rCb@idvxYw?RUo^^tUaOX3F;*y_kAL!SdxEx9c}1geso9mK%C{B!+UTi9bk?0` z-`3WxzB(LQuaC?b8?dXtxSW0$pND;99l}udr8b#X*~hMaW|d8RW=By{S2AZs>*QLn zgmtudT|oVOlH8nqN#VdtHE<-ea6DgH+4E~KXF+LlBH!G~V69(>3ywb13&s7G$5n^l zc0Ej}SjThE&e2}$r3$?8h`8^i$?Y-4Ks>(rT|IQOWQ?t})S|U)-?WhJ(<4~;rhEQ8 zV#?Zrw>C`r7wqbnFt|5lMq%7>&@(@W+#Vbh1g;xlpbMm+r}vy}3ZQp?bZjcFT01jS zSa%1tJ{&Upo8098;D^O57(Cg6c-u^O{bT|HlrT)po;KayCROJ~F)=Y=Vs+=AEf=&X{w|L<0U&;%NH%C(Ujb5}^RXtB8r{riRpnk%^r#MfTpx zMB>>gP5!Y93#xaaIk7I!=q$9pn@IKLYfLh-*48I7$>i579E@O!geK>!$lOxjwOTor zo;nS|{1(pM@#?z^#y8oh+jK=Je&UI#=5z;LMRRNN6&v*5eoG!&*k_f0>nmI7v_ahxZ+%sZ*-BF3){N92Sp;ceS9Rzb1B$b{$sn1q!SQye%0ghN~nQ2Afk36Vsa$q&5MbW*x_^;oWJJqUNVHA zrYY((y~;RL$-Ha&koK^7I%D_3V78KT4KJUR>*n z>}?Ur)4w3g`|-ts^7IQ)r+p?0kvZ*#tzM^owxWLVD}|;e(x&vVL|Jq8`@SfS4MNke zc@&4A;%`w^hM=#1t{4x}FX!qec^GEHzx(LE<;aunIHR;fB|=tSOo-7PWVEL^7{X*L z{tbCz^F&1`rTWBsPnd()@TDU0Ju2cqw#E$S#IdC)*|b}iqy-++>u4Tfy0nF7Coz^ zh+vzh_LyrLXOH>Qx1Z>P!Z#V3HI)MmymS{|*7*u$3lWJh&T{q(J?=5()2e*j%tNi!e@=O;|^BA8ytj45#xAn?$o0 z6T6(r9`V0>OGX|hR49-*UVoJUA+b9qP(l0*|6ng@WfwKjDyuL9IraU5VyYoiL5{c0 z!|S((_&sbyT*O#01V+BX62u!;7)L2TvQ100Q~XHFYq%Z6M8BF$~C!;gEWl54zImw&xN5>H*$CO@Je z^VhKvOIMb!%f?He73)8wfiKPaPL*m>^b(zu&0vD@k^H%Zyr~M@&fF;#Ke=6b&vPy| zf?#8{g$B-^S%$}Y*^Y;9M%c`^b)GWUCewVi47X9v6LH(9t5k^>AR=QcGruLNSD{75 z^QhI!{t2VN3(aZP>7qF|j~#8Yxgan6hcAs12KXICs((OnA645(+aX zkfB|V%_$##Ip5Ld%3eRZ?pR2Y?2M7aij<+#=2(t(l|cHPc8A4q;0Xu1)h%VOjSMRS z(Yu>+hGSatou_Z=B#@)M%~77Ty=5v8FCQH)6!WClV=X#c{;{7#vHw^<`JCekWi(*sN z?`@l#ftSPE&jiQVi4IE5k?!)pp45$x7}Mv|^@p`)Y4L)YUtIF1esC>wXFdlqs)zRXkJn6K8_TC`(CeV14=pgV zMv-!B%V@k-tfdu~o7nW&7u!F;p(|WCP|TYe$xUbb-s3cVP}*_v%)^7ukQrx` zvF>Xx;ls5srSd?iAo2U3Bk}5d;?w ziX6ptW*vUH?}A*-6p*2a=X8Qs9{gU}+jD%Mul+XO3+8)s!?uVjvZA`zj$e|8H9dop zYFOi?HIpMD>3315wa{r9RHUt#CuU`WS1GUFlvKuya6btXb)vr-!8l?I9JR3F+`!Pg z6cAEi~RJ`+ z-&yfru*D|qk~)7Xy4(~xixIfEO7YGG`YJ9#if{7UBleyrRMjuiU(Chl79J7 z@Q|S0vRpnQzrtp16i0fk=P_wImJ>(7LHizlIQ*~SB}PpK?y}9UIN7=s+}(AaMVkP$ zzMWvXCix9#wqsOy-Vpbc)A_6?mC}192M)LgveD9UPMi+2-{+w1hqyaNniFwVOo?Q# z)2Keo6}2thElVXhuMhSX@+Xd#6shx_F*4I75((TJYqM5oohnV4#Q&tYU@Xj_z7?+1 z27w1k4U>Ua+c{e2$V8%%uy~vbsw4?O?~dW~Ixlzc9WB&~=dh!?IN3D;rR?t-Wgo%H zPF`DES~*(S<1qE+GO+1#`FV6qOvRgi7|p}tb>`S6x8wc1?0$)fN3*w(=_L6p#x(53 z)1j$hl#mh@6Wxs0V(4^o!0=_`#Q3FA@|0^;o*`lEbFxY94^Mg1=yA!0XID}yE5HE^O&KQ1A-`3BpuV2R`+BC)^zyTm$lKWiRA;gAo#{N!hJAWS?b#v#D{J@ks)g_!}68wqaf*t=l*p=jo3dJ z%{mA7z6g5C+3`j%ZaUeddBDYtz&j2x`I;y*aX4I4Fw;1dw#D*+M*8&ZtYTsz3v#0> zYkA7PB{dgUq`lQGr(r_d>Vw#Jqv zHa8i7@Jd6IrI9nZ$~`lPUXuBM#rSTfSlFK)_Bk|CW+MVZ!kU}w3%9M(PEFn>+D9<( z?=5}X859yi#Z&JUNg^U>$@*y{Zj^7R~?Nl&j)cpK>?x$Nrc@nZg3nsK^?MWy4ohJUYvDbGq=UDzf}-An#sB8Q(S}hn_%LVLI8tikV1JzT36_Q*(rpYS0e z8GVio;zq}R!HFy*gw*Iyh0#dU&g64?Ic!{<6aF{my717(a`S7`CmLH#s>wD1KVzEL zqq~1~=`}-6`%!>^$U7uf(-ha@;O@Q@T<_3trh`kl^mmrr3_0o%*>{USq&Utak&X0M znvKt`B=^k5T2TWo8VaaA_sIwtuC^0LP2YNOISa`Qw4G&!+t)WC=a4$rWo$l@oaXPS z%f2P;+;^XYDRS+0V5*&twhKSo_MPbKoj%At>2EMN7NtJUy~49n-1HJ}vob@Il@lV{ z(P7E_OYl-Sar~N(VdL6B@}I&E}l^F_Nvp7AlZV{aB3jo#pwgXYc{M@ z?{w?VEAcuXx%c;JDkp7f$Z-=!gwLyrTrl#DGd_W2#RDtJ&z(oeLd*x`F&mDPn3Vd4 zJPTEK58auNbox{qe?2+&4f&>^Ff0iLOEfYG5lQx9a;RBjPdS5$wN?(+K$mP9cQDYA z)eA;mfgdlM<#;o=yW()Ly@#cW_W^hAyYuG!qIy5SRxgt1t5_gpYWrbXVNDqT^Jrwv zuIFEba(?K(6(i0PUC$J|I|vPQ7P2PU_AW+MmMRxd{Zpg>lz<n%|<0_VShfUlRTsR#&9kQ>j&-WHA|NBmWA=BGGD{h z-WISLOeoI#gkB(Xqbzgn{DXcMyCEm>KhIp9u_m)9qxl#` z3VaQO$&by;sI_$f+iA^^H&sUa6oyKQyqo;E6(xr@BltK6$t- z@B9ykcPrIC8J_G?gD}011wS$&EMr?3UIwYZz-TdT*PQj0OT{y9{Pn{|od}v5Ka*qM z_;6eIUar$a%yu8;XW7L&&Ud))I~u&omnRcyz}D&0?{p};GrY~14#l^@*s=H+%h!*n z#28{v|HUIQ#nM$X-rP;|c7gwRC`z^y>Rmx?@6V_#eu|BX=p(o}e)PO|Ii#j8iD6F* z!%bU?nKAu?f>Bd`pV8+vJ@N3hsxRAPyr!1OQ|$1xl}=LS7OvsPT$f@Zi;4Hb*+wY> zIvNNoi5}t?q9i=v|I~E)F$_ZFrqRf*qwgfG+XgPRuqmv&3;sw8$);lS$N0(;J%A@=BbP6l<^(Tq*v zPeR!u)&H;`laytWd2Rb7c47kK)t3%e5C9ru-Q@ zk3uSb2C*^ZzHCbv2|s(sR2xl+sFP~nMI1H+=ng!}R;3j!-lrfF{z=P=`QUzFMHbE+ zau|x)Posw1Gq%vrzdYV!yq@EtQlv+H{o(g|z!ScCYeC=^R>hakQXY@7s45b%5MMaQVe_qCa&#fU`mRiXb^R+qdfEk*0w65O`A733GRuN-~n#;){3pH#N%&* zHwIz4j~LaA2W@k|1WgUe2eM%qU1u6*NsuX=V2cuG2*XK&iZ1Z;Lgo`&dz9C6Mho0D z1Qyeb9EysHRKG}#cB55IVn1($QgG3sicS4t8BlrSfVuk7vk zpb3b4I3WUgDhhSkpU-EqPjP~2mWH$Xt9%}0P%0jH-E-m&3HH|K$d?Z+a~fKZ1Tf$a zKM#q88*f52lBauM8ek6cPxGXnx2ui_%nyr1YZ7;mwL@UY74qzFJF5#r?d|s%9pr-X z0er)>1$|n2Vv!rS2MMM=Xi;H+ewi+!!0R+Du8_at7iYb1WsleBPu*YK`()3L#`8RY zifz1vXe1qH0Als$3ZLYkZVh)_NAgtwR!v?0702R!XbSS1KVbaT8%ZtBV~N_3KDLQa zpyTJCdwV~!-7vkpJer)>-PM(nKMrr(kGe81#CZws@XFz#`4#f=wc*fM^YuhsT5`8Lm;_Ohsy z<)gjYc)WY)uZ=eA7ef#Pn$i`lOVw^g$t0}#dVJq-)|)dICn9|rk=S8F3_HCk$THFV zl5?Z0Ew3#ca_6*Uhk5-K0y!E@S}Z$(uUh0H5lVvPkxV?o5LOCWn%HdXyWcR3AB~H$ zTQ!Qip|il9AzPWUOsS+)-_j@4tXHk;X5svx-Xw@`x;XP1sKoXqN#AMzj=r}h#DtGL z^?2N9hHt(9DgEWKqep5JeNd2U9kp?xMeSOUQepU>Rhd|xwcNwkb19Ur)^aFf?s^Zo zltk+0zb3g4=yLzjt;_KUbFm~A*gn$%x~VB~t+f9WEUH*f)P!+g<6?%8aE`5fBqprF z!I$x6<8|7uB~_6K_=2xZENBs?c>aAODJl5?d`19kw~E@k zEw8otwa}yNmb9#_@x(tytgMcxKHkjVwW`7~3F$t6{vzSz^qSY>_}y@>!sX$CoOA+D z-pjWs7j7W6_&bF+5i0*dDqI)OL(9zw0*VmgNi7Hq+NN_-L+Twrvjg%DkV&N7^*tZ^% z)b`N(Fsj@w0m{Jn@%FFltBab`KcWB9SQkD%s!th8K;P5u;JkDAtvzO) zRmiHWjIFNbi0(dc;BIp(MCMU~G8JxsZbZEF6Bv^#;V)Luq~mam-8_8b`)zlmoDs}4P{$0W>PJjV>i_6wlYZ+cu0g1bAQ0y}E; z-x)7HOxqK6x-K%QE#Nyh3v|j>6;0lp(-OIDKo#}+ecoV@rZR{R3Oq? z7g>O$40sT2PF4GtfUgwTacdTK7?*(u&u?h4vKHZ4n^tI6v8pAp`GSABZd?Mql-k;a z{(gCO!Qs64Eo*20RT4kS>K^@}p`o+0)l}qZA+i*y2Vr8eNgRUa=J}VG&Rf z-(=o)M>8mb22qnNkl1`KrsisYHyJvBkOX~*wO=$PMiPge--i!q5np?mYB=m@>F5H% zv*MLWFKI?bhGx&4F2Detjb0ZB_A{-=Jy8A3GwOBuObiOraE zUBoT|nd+T}6J7MX51Qd1cI&vzw8I>2$~@kW()M)E0K`9M2H9<9?=}NFd1gaXMJ0d| z1GHKt)`2|mOs_Esj%{5`WNK<3{C936%o+2FzrbkThhaxe#X^xz-RV-4oGSncGkH_?m^(Y;&^!BFVz? zml^y5;FAdc5JfV-9Npa9zH3&5WJ|?WCREkDx1XtXLP(r~1Zo}V=k3&4PL>BJbGt~I zWzhcv!e5}gt=XU}rL3Z&091Wv=gLHRm-%L7B;5DMV|qUA`Y$B>m;}Is;yIXlmHDOU z7V~FvResz&Fx%nu0qG~ek@hD{Qfsn{bsG{8#C?{6v1dh26%&^A5I+&-_SUG^kjC#c zpC4_`^y*ZY6F;xt6UwP7d@3U>&UFS7V{hc-Rzb#1M>XykPR;4{#V+rY?o}@1vVV~r zxGk{5|MTbN!WxYG5t4*3rbRg2Bc!juYXR)$NRq9@xeo$oYcg9KUCv5MwF9AgCSI4RCg}ysM3-s{q0_#!^piA_;g4Cz!d?+ zJ3ak9Y&KO+tY&OpRUDDp-Zx}nVR@O@L(1*^eZ&F@R-95w=QlKsJ!a#<7HoYEJ|2i6 z$JvTid0h9tNBF$b5w9XbO8i44 z_T$Ho=|O(j*a3-O2`Q7$vOAq6R0W$S-#2x+p)t+ag(;+gt7Z zaD{Hs*af`5vp=EF)ys^-v^XawCUkGHstFdEHB3rc_`SE#@S`j-Y{x=8zGK-|>u=Hg!l$Bl6Xb!j4a;h>6&Pi8hc+u_?jz(US@ z1)F(bdvlNXcD1)!(enC{JMeaM9Q6Mmr6^f=2fPWg?Px0_c~o;I$m zu2x-eUu_f=Ly_?O6hObe@(^oRk3QIig6)AB#oQa}fo=Bp7=FzVfPQ|!B!ssUHE2`4 zfDSuV(8`0fw!H<*UyOaeP zuTT}(&0&cK^&oCTN!grPR-BvLJU2J@_MsXc8VL!>w6P~-s1JdGbvnhBmG@#KmtWFz zvI~J1l)RRfl!ivU<5od&BNYe7S4_eu5@tP^zN!T=u;&S~@=et-bN&6k#l^*m7xCbt zr0cd!Y~6I_Ty+75J$J+$axg%QNTjHH;MU4Gvk5MH7|qlXJVKBofb!%CVZj>ZV~aiz z$YIrPdQ$&jrAI_W$RefPRZ9RtKG>mOwUrqOI)ze5aZ@HheR z&>wmPkf-?hQv!;m8mPE}LPJ~o`f#%q-?+KeB)(8oQxkV{<4k0?fz>}@$@^&UArSY- zaL*NsT40-23b7f7JgyQI6BXq@VJTKHqNuL^lY6%wwHem)UdBsr!D)M1 zT>k}XN2$K05j8y^(jsVJoLZ^eF3i+opFVdp(bFSQ^6}}KTa2;IRoPIOS0q4EmNbKl z_N9()?EUajqgtV+D1=?*PCToH-I(^LYoPAd?nsj?!cREMwBxkOX*xkme}(VK5lomK}1YU z5oQmXnj|D)=0=~C6lmbOjE}3MprUFtxL0IJAnZI{*U|%d*xnJ} zzYif4Ur1OO6AO!qmR8g}6@vDcn3w>?ym!Z26N)#AIyybjlb{Pg%94S`Bp%!e3yj#6QSnUs=)4`usZf0DdS^x!IAr1-5T*kMZ;gZ9PvYe@{7|~eu zyLAVIf4@Qf49mB;z97rlD=hVAX;jN*88+!o+_wg$VA*cB5tY;~xyoj4MRem1jv>)-|F8B1uPUBL(*%r$Az~x3@)o)x^bK~3~Rh+-B!smGBdk+dX6}Dc6a*_ zivAEWfdE*)_v4OrCkXQYhK7%q6@IL@Q12_76$wla$meX8m5E@~FdrqyXD6kWr>yO^ z90O^(>WplArml*0z|IKH*LS_9#&#J(Ii7tqvCK%|55w~8I-5>0(=+uFUwB1sri?oA zaI`cuG@y2R34}ZFRH-sP(6w#3MII&O3xEk6R$4P>I=Pf-Lr$58z?fAn7_nL${uxOf z91>!#a*?fCPy=5ydn5oH-Vi1KEPRBj+6M%E9rR%lB`F+Za>7KoHx6J$Cl7nlFc@2R z2D6A_lb(dvur^h^zkG9;!>^#C(hd=$UYDDdm8e29Y{1k~$@Ba+xvTHn&Ttq_L57QY zq5@K;45;XL^;dh7trO45UFVTu`SeE$uSZrnv>?#bXT32N5&1CI1wwIXK&btl#5uIs zm@J*Z8Vu_+RhqlU;6n!o=$Okp^|_-3vhBi;08jX>FTu7ChJWQ>tBQ)keSMJ-gl!R0;ibB zbx9blaKIM#M3GqB3)}f-2j`*gGf9W1w^z9l6QVzD!DO1>o*_98(dsJ@A;wc@@I20- zFxDczP8*P)t{Hv>uOr3h+6@W{nj1_0n@bjGHUZCYHr3g7_NdzeSG`}H3*q0GIO6!{ z53y5>7UWj67d-K=ku*-ZZ$}33?DE1`Sj6CKUH2!7{%SvBDj7=x zxB@I-D-|q%*RJ{EvD={biia5OJG*b$_L<#Ysd9M%Hgn86bKLl)x_t0}hPRoAIo)1FVm5 zqkSU{S;i13h9=tKLh19+e`cHXrI5)NRNBFtOdfSBQqXE1;yco&1_kwrw{SOf)CqSv zG8Y`hg@lBruaA$8c)5w!1!UQIvZbkIVz5`SAf1ENeaf~ut5hnV7f&NYeE35B2of+O z(iHP}{OW+84DWF9h%{Mtj5dF51+5t#7es45K0cT$0f`>kba*NHY>E2^2f~nYaZHm> zOiR^s3kq5dOCha9fOARa091ibmmQ9{VgDIH5rP698|uZoq#U1pZZ77e<6qs%90-CM zu3&_Kgd{|_IL`A%21w=*o+OtMBJn`&2a))7e8um12ikN9S4M=Cj(bB27>%w8E6Kev z%FfDq;eF|f;7F{y>g%T+lFPz_gH#USPEcwp1p@j4xKVKyk?Nr*1RGgE8Q(%0AH2E* z*iE;|Jq}Q1tleVAOY>oRsI~wn&4vUI*%)4{W}&LRe34=v#+^Hv z_4P^MuZhs@j`-UN`fc!qArZE~)dBcr*!(r5-OIxvIS?p+2|OG?88EQ0{s6Bey8a#% z-^u%nozPqE7?a`2!DF7D)&>*>&LavG%U=u~ZRQ$hsC_&=dEoIFK`{bZ7%xn$6`B@= zr26X0u_zR4?Zj&RRW^D+p19i#wQ^|JyDvL)UGN5FVDt3QTNjq_;SiRMd!4_I`HprP>wvPh<|fQbA$;_0o(^Ro7pYrnQyy@ z=q@KOkM}F?dE6k>R|xbO`eSOu$3r$7ECoC;qQswl&XYx}%9@sv(icH5femk95Z{Ie zsq{_SV7$a2DB~yM1kRNLlnAh5@hmk6Brj1tgIXLs#vs=SG~y{mqXJz0_ z+hyi1DTxIdQ!yZK`Xx4244x=}uU`hCju)`DW=1SQ0|5K+BYM}HGa2@owv#!Zh}6_n zagJtKSoJEw+X5j8D4uM@_0f78<6Iho z;a&KxRv=*@k^U-r^X3hLFCmjCaOlnpAqAX>JUG6Tt3QKIXb}FtAw|8!9%D2?0YI2p zNg#*`L4CV0ruoCL6g-W14KcL}Rar^G92+47q{~a-^FpHmMHCduDbNFyIj$qb>CX@- z8>sJdfR)q!{yzCaJ#;Tnx6m*%_fk(MMM2{YnH0+VxJx$B69*(j970-_tqfo_2(9*o zU~N0BN|32g{4`dmRrShsPam*~4$$X8{LBwkChcl@f)@$aZF%3n1EQ{KZ#YwCB8TWH zcYXnHQCC-1MTHm{85!cQu)W)mHV2C!-gG%Fcma?@?d7pkBaSs?QZ>a1Uys-Q&^B?x z*u=!)Pa7sQY2X;b2lee;&;)@95wQs+5#n;bc@t@f-r3PX0Q^XZQ=JhMCSdAkosPot z>J=0)PdGUzEM{~dr4d41$&I)mQ1X3wv3YlF`MVOB9D^o|J^-tVnxHv@jg1ZMH{rc| z9T3DOU@r%FQ!yzsaM$1pWI>YvZx+yfaIvZi{I(9@2fUg;i;Jybf0VrlURIBrAkIU_ z4UJu5^@2|~ml{{2Uxbl9FRoN#I6 zOsZ@x^6G%Is{z21Y(Bg^Jj=_l`fShM)nmfGGYm*KE9S}?$3O;FQ=M@-Zpec*+E^2H{v6`xk zjE#K~qokt~)}oK-PJ9<1T|lH`c>er0=?_s5`-I1`c64q`w+K)HpzQ!xXPIa#CF1DgsXhxfg%1C7YC$S=H185cv@=9ylJl4G4`V zJ;V>^6>2^O03`?jhjL9Oa9Ds_Zua{QL`@h1i4>|LT1v$Ekdbk^6O19Rq|}NSZbC)= zkk6BYEfE_O@|&)Yo+BYv@87+nfu=<)T^_M}j}PexcJTH<^Ac)Y#K;PwCJ|PE)=fMV zf`C*@NJ!{Ipo29$B~{f9=%Mb+8|TbLa!|XCAZU`L(+p!AW1Pje{_hgUW>K|`Fo~JK zg>Ea}=vS;8S$&@oY}P5|$SyTa| zzG;8)kI%c>WrDpSIsWa^hnet-2UoD8y4nEP`C$UKuh5Re&RRWqWLXR80NzjGefk*C z`YEd_-m%#Gi9U!N^!qo|Ys6*?%HC+?+=Z_(jCY^As zX)1iQf>ejnBm+ zIsPlh#0qr)K$Vq;zoP@=qw6tiQUgas_-5tRBnS`bxA@&^>+A$U*#~Tv55{y{$e?-J zcL%RIGC@4J&)Ya2E|qqZZ!4CD6jpx!mpS?`d-S)n^9WK(aou!XA(AUVNf2oF_V*2- zLPKbzfvOT1LWGT&8$ozboP`ECDmuCifh}`8KLdu&TR6qmQVlF7y-QFmEkHcejpJ-k zfUlX4owjMMq(Fp;bve(vdwMw0bR$t0wx9>FBDCF5mxB6^9~AZYfI9(%)UX0KQ6J*! z%qYxQo&ER3h5q*^$ugx;iM(ZufS&$;Wx=7LL@QL?Twtf?;?lHl0x7RQBgo|k>JF@7 zXn&^phaT4X)+N-QTcXtot7G3KU32~pu!c^Z^FHuv%S0bF&s7z!u0`Gs4r};QU0sma z5IbZ2t^APt$B!p}770DXjw;pj$5Tsvb8|Uq=w_V7jB2PtsFsQO3Fqf1_?xnDo}OrD zH1gdKd-5Rc+ver<`q4$dsnFiR=7OCx(XF&A*&(BZPD^HSyx*ti&euq4ihr4$j%p62 z-R6_LK4u$PLyaX3 z>6$kZ&=>6i&=Y&j3&|5+j4*f?g7mpt4wsGk&Q5pg@La?kU$-Hr!6Q z&i3|mRIHBA(jR9caYP=y3J|qXQYG(LdQ(@gmK#ROzklzuu*SrryOJJzpSta{%Pq0# z4>3gZ~ft) z#h6$mo~j!gAw9-fmB)CGA7^H*j_XX6ofvO9Q=6+`nwb?NLp>>B*A++8HW#GoaqRyv zsURw*D9xiuCkF!)GaX86#M~Cvf1lmE1EWl9H*GSW&bBsJC!}qjQBoaZ%r;A~N;t+d zb~u>)8QyV34Jg30%bXX~DW8Fg5jT*jgg_YqODz}?(3yD&IRCB=(Jjkk_Xzttp{kKl zWgmDwilPP?pOW?J6^`b!6jf2WPLhs}8vo<=ivtUbKXTBrQZt;?3p`*PtI9v2p2%yi ztbeHb)-kmHT)=4AW_Yabxr0{WN9T5TYn;q|`l(92=3_FJ?DCBbGE&}iG>>DpbHai` z-nP=WeV^^-nTwa-nLK~oq;C|(wNa}1Xxr4>Jju^xHGuScabJ2-kwSk#0r!CA?Bt~X z@R*5$#!=#Mtg*vGPEIK}LeJ4!(%tT(-Klfd5j)>0D4igc^>{>rH4)=|tH~yD)a=Cm z8-`zia6E3L+i9`-vzTQ2u!f73$mA=mV~MJqX{d<%z8uAni`wBWRInviAgpZehal5#_E$x=j(Sf%gqcmCL`%tsI^SWB5Y-`ThGdsF5GOG(;l_1B{JLq7zg$ zBq4J`Essj7`x6(GCSeW}y$Yqo6M7)h4#Q?{=FmEgm7dA&HGwFyg5#X6K~3 zCiXB%gaqnB`~W?YF6>pnGQ5IDd`s!uroF$veBzv?G@gaCl}(UvQ-z8~OlV6REsI4c zhKco6cVlr`cPtlvPnu>gQSXKUHzorU_o@@t9e(4J6pQTg>FFx^=QqLrw|B*h=Y+ky ztV750zfZR{URC|`^a_hXrg*N^CNa=%Y3(L?zd>2~8q0TLdQGRPk*||FwM%&^a-~h) z<1>6Xhx3*hLyxu1d{s~DM5R~l;dKz%v(uQ^Yf4OVqDU-{HXsC(U~a?uMIQq`h9uF<9K%I_=@vo;;(5m9pAx! zDDrYmFUhrU5sum9u)K)JLdI+FU~{h2vv~Jz`i<)GFJ-kG?+qT70MS%Mz0^gpWHf2& zh@_5?^2;b_&Rt70XxGwW?>r{EZ-05}u(aH;sfjZGwY(zRQq4+Bced^wX?0G|_R2f8 zbK>Y|&(?+3!rKI8wZdF+Fmsm~vy=3+uz#{2j8V9#L83t-!VVmP0fVr(3j#Qyz=!B*KS)4v|cv#uG@yz&m zcdoD2X%hkB)d0p&OEauxK~EG;`&JFP-;z0}XousTR890~zb%16i90cYW@{O$WupA3 zGX1R*b;*V$$9X5`$w(5H=Nles20z{i`>(DLl}TxR+r1{7s+6&*k+N1}l=hk!>1uoiux{3H670fP+-i|>c} zSR<`LXm*HyAUWk?^UR>{`Y_&HhukdZW9>4jP;BI(y%?p#ZF30tMBd{DaN!Nuoo5< zEaw`Np$|aRrqrpv?w3e^4Pf(q|t|va$oZV1f`XE24Ae3%CVkdT=Bqn~wUwR1%wzwX3EGinc!|?e-kr6xj9bobDFblW;hG zytD1S(kiKYU8i2CVm(>Nwjg@y=w*`Rn)uWGBDUd9gjMcGp*IlrN%{WzFv&_H-jSzk zWT3_y2PfscOWwgP=BPV#-##8E(rG-40o3REs!B=wFD>Mk%FWBGhc1em=e%_%t{|VqL09F8wRHYrtypff)W<$D|=o|>f6hegpZq2c$ z6V>Wz(Id$up{#brVAV(OC$vNK*EC$dEWWI^I_%~KZqU&-fpgI$J%S1=WnI2@;l{M`(nzrA{mx{IS4OJMnWYx z(pW}BvkNboV2E(5u1UrquuRZ4@7mugPidSZdK|_ZQJq>j z*TN#1{>@KX42XEe#r4X&pZ-B6HsQD#dd}?MynX=N+mM1~oyyE?cIP}@mt9ZDp!zpi zNTeh-Wu2yp4qj*W-@lUSWTNcx=`AA)-gD~8&bV*dtVT0nzO|g%-Io5{$H0Kwtp!sB zr*ioK5hZ)8NS|dq_n4H}aG>$AwAoP*rFNmm| za6G=^y<&Y6CH0mt28%>!e$=q3{5be$naiq{=bcw^af7T?NC??a6)p0$-)GB`c<>C{yA!DY77SHs-={kMjOcYHhhf%^=?`m(MlDg?5GZZvI-)) z47Xq0>7+GH#F?y9`9kvAWnL9T-wze~NYl&E+J30SFN4D*y=<<`_a))T0F}k|HFsTG z%;uAiftGu>2~?dnqe=;^5FCjLPL*y6O$)ivnrQ=s(BZFFOB-oPT_4M+vNr}czB{1OJ2x1GXnkDip>1{o<9wLiNP9Ozq`{Y~QADU9uq4djQ2sUHn zAtvE^xUc8Y zJ!po5?@y6`w0v@`N+1toLr59gUJ zJ02@Fiul8ODr+igHQ4b*h>1h!nM$wW;mKrRI?uMo<6_yz71qI3C1hg45iES#d<}Km zoZL^app>oT^XN(}{OG=~t#O6N{k$}Ov{cSrpvZwPv{{b?O$>9q!;<%Bs{UEH_biJM z=jUZ(%#i@Ai-54pK!jS0ri9{7+m@T{eEBc|$4?b+x5L|-goJWQ96NBnfSHQ5udQ=O z=ym;AlfIso{(xtlD6+U%A^qP9Q1*|T3H)bY$^#?dKI+<1KWd)Sc*`U!+nz6ZvS5pY zF##^khT!@OrBbV=drhUQKrhVxjS7r)|W0gAaKZ`AOY6%@btp9km@+|Ch=_o7L;VdWM>BQIOCG^*^d?fV;hCsLF zjvx?cf&}3=!-|`~2(%zY3KR}*574!X)_Q+pCy3Fq?O~8Z@Iq9h7S&h&@>xXmQpRN) zNk%;r!2P&GMGl%u`cx=H@5;?G*)qRI&+s&7haE179Xad~fn5j=*^`=2jWx93$pM?&-;S9dq*{WGYyZ=LnV z_r6HxSxvsG0L^LTI{&|0uj+|Z;c^n9LS0>56>MZQd;3CL!FOx^K74Hs@TeFS*@9^y1ssG^n41en<+UwJt}kG`msQ6uN}#r&6& zc81<97SARX>H$2#>ag$A{v|97#y z9`$+Pu+tQDpd2es2GmaQtkY)3CY_&Gf2SHEV|Ea;#v$(ns=mKb_y!^L$ zX8_g-2Gw!DySpRwhH1P6S(13VBU*Y(#I7!?uaPZyb^Nj4soE3H!FuRA$~fENj>GV; zxx9((I*Co#BhaeidwhD}Fmpo4lPaTS{~X(Yw!PgVLv))abwBZg%;RT1nn!qHp&TMg z=0L!6BybEfT65=!m!W+cu{=5Bc3raE{8aJru`%i=nn#hs&0C*^0{L{WV5BXchAaYU z>6G!?Gon9&r#HuKU%yjz4I~}Bk+s_DEMhnWXf5 zc3;yL$%3Oj;aOHXrN6c)ES3AJa=!Y*hdvI|Q-36ooptSon#k)Hqg7ZLOc;D1;J76L zXFe=1Ep|NZ@u$Z|h0EhBo(5-HrKO(EKsmuI2h*Q7pM9vLdxv-6+DN$XY# zeKW%2iubet^wi!D_gH%gQOqs`H;Lc#FcIxva67a*5g73RSWg=hLj`Vsih4#F3lS-n zbjrKUb@#!1bU3D^r3U;`8_P)LE5Lt#HaM$4gUVI)Uh@PKZ5)fby2Y2~?YvW{QIZXE`sKXy$oe?!Fiz4aDhcJq)z5PhJ zh_i5Z_4ZC;>tI>bu_8=ro$rk8sPDU+ANBw!3h2~IyA9LGU>z+tSb%cft||7w;-_cM zdh5gO?Hl$q#=TX$^4<&ac~-XR_BQ52TpauSYRbT9k^)fCzz~c5yvau`qm(?x7MFF# z2Z2ag&AV}6Vm9PWLyS4B&TeAdJnCihbDQ}S|E9U<))6BOw2NHbi!m}`7nREA+RXn0 ziL3r(Kh|vvvYQ^0`n)a(?8N6qdaX&xgpZ_#y z8GI9!=yJjx*4kRPz5Ohky-KzLp|Me-k&$wB<%fp;Q`w)P=*_{=zB9AWb9Qm?JGQIi zd&ar2j?Nm^(x$A}&2uM~JNQT(9NS#2arc4Ir_7Pke3t`msf~NtYq=7MytDj94<0_g zlD#>*`d)~xgai!u%juO}f9fIR@}MOpA_DFlg?p-GcR4~*7g1D3=5>Gcc;|8p7m0wN zsFe;gDWU(=6uw?}oi$gQy@AEn7Iv@Eax>IK^VOUCtGdw1ePntj0r7*mc`6xxFivW= ze@Z%yTA+L2U1DLO00WbNe0rfbJ>#m3^Ep+tEt8JrXFU8A7A2t`9nkVU^%(z zWNke)FmfMVI1sL`RWMmRYbhuQqg*tDob1y}<1MXd`2Oa&V&i0f(W-zp8TNx+Gxq+% zM?x4RG6zV`gz1!ua%1><4m1vqJ%!*Qt;8$q=z^c7=v`gOI{bn%Q);T!G1cc(;u4C# z`{{;gZC`hF1x;A`s1$Lg$n$d&Is~(;fbYo3X-9U~7E7UL6On!Y-a(ylaX50Z(amyC z!{z9_I-l9bwdu|4e9M_t>Vj6Ku&LKVu?=8+;l`{oe~b^VYY*(~6wctgz-G~lre;2roSG8JGuzXEdxc*4JKd-f z+Tny93oENoyx18eQV6}qii617fbc4m2HcN_R zq{_~EmzhfI?NgMCY<T=vkOkfAs~O9h zSb5#YM}D2ZX&6{DiYm*`2n$WlbSQYtFJVhY2C?6xBgIy~k(9A9c&%Jwh%Y%dV7(Hx zvSQHEcZ7eb>w1PL+rr+?LFP>)4b5oGvdG|tn><&TEsrm#D5^`uZu$d~F znv&Aeh^eWm|D>UZhK-aI6llQ;n>!q@m$+8Y4GIg(%R5Jb)~TGzoAj6`YYabIcH@jQ zb=mj67JH94xc{}e(SvM}Z+L$RlJC6fzoc+MDdQz8XM%)Ax~|$-*K15qN3~_s-R(d* zF_^P!3znsfjBob9fB;gF>yfrvyv$?Oey!a*5G4peH9f0q(rz9sm&*tUu_27Oj#FrbgheVz%1{ zK8GHViv~OwpAY@fB)~a@2EI@U3$H?2tm|}v)D~!T`iJHAY3qO*4e0PxKt%MpGH>o& zbv+Ib3i?G87fG=P4U6z1gLn&+O!p3Oz-%_Q%>SOp9@Lb#e!X?sn+T+lOPVOw*h&h} zw|voLz@y-?J8et9C#8O=g9GhHwoLrC)$!1fEGTaFWbipR0yBtyp9XMZ00$zlj=6gY zy?Ym5Z}%_LhVEc14)k?Jkck@@8>3}sKg~Gd=7>>zW;oi+|00l`{>ojL2mRQ`o|JXQ z$L$w1j+ipl)4M;d70p%xaYBNE+CU<+)gMC#Gz>t$=yiQK2y_bs?8X5!D|PdR!@#I; z3p8jMeQL=F%7~%>6a$2og|o>!ggq$kS;c5OW0}Jx6^uvQt|zO1KDA4f%$^_CjGteO zi-4NW3mymbZPJuKFbAY*yCqIgH6vH7&C{@?PqSgC2=5A)T_6p z5ERUKnOdM|askTU8~_sjN~4OYx~69Qf$;qeVb4xi=J;sP|9R>7y29!6P=GtGJ%$9` z@%X{p1}la%zo_{;X!-_J4p0D)4{Z#lx66rr9S86b%LDfYug`7eum>^<3Q*u@c%$ZE zv+6>hf;k5s@&-_80g+k?=r97p7&>llyr8a5(082WBe=kd0u9HD?*_=^fD~8=6xy}k z(g=d9A}ILu0p%qD@8_IpizRQEw=u$LCM43TW~j5Y;elPKYgT%NJeAb%vRkNhr)Jmg zSc{zU!n3O*8;e}ok9;8p)zi@h-?j50!$e-` zx#NuSepjsO8sPEGQz=pR`L5HsT*SA6PcUR-0Fj+HE6^XjiP@7VEV!U#2=1ir{J_#c z8##U9AtDr0q6c^Cx@IXM*ztOAB!Jw%SOKeJH}SLG@O#SEOq44g62ZYi>&3)B`y~%e zJ|aB3cx}{<)v|IGP)0M1xUb}xn&?>Jd0S4%gV)cttl+$@wI>Yfck9_%l4IVTd-Cze zg)I-cEep#I_sErfvi9C>$-HnyU|n;E3GnUlo}7|nO_oXIVjgBO_j+L0_2lDG)U)TT zs;K=^@*(JN>AQOMbn5#f;m~ARiEfQ*lCf<@mNip+jyi)kcD~!^4mD2kRfl27q#SZGkPK*LA(!qSMA=%HUSwjJS5z1tkSt7ENR*A~cIwR7c zQw)*%z1l-m2*&n))UC}7oLA#BT0R1mu(fO6P_7K3wLI1{VO_7S&M(cm83`#Vz57it zVKFcUhIy$YkMQ^`jJRy zjlHiQdtX=(iq^i0NYTirc}yH*Fd3$4Ncx6G)YcRC3HFH@*IrMBk46$3yW6Y+Hik^W zT(2lv1GkB~Wl#N|J7p#=d?GVT8O4Td)7D~f;`^;$%=n16EMLAd6q$B^$9ZPsk1OEU zz8I~i(l*MBS`rDEuDgRKN9t;}#?GOX+L9QDGQz|AnR|`CzUw4}67&T_Eay5otbis< z*yZ)PbJ`eEm{PoMp2>J+)~)5tqk2{#_=t|Hx!u&Q$@^PO9Gu?*1=Y741>eRaOTx>J zwy{dA2c`*{Xw}Ov4WXe6ZKCjvq-{K(k3gfTD6YHw)+xRSy5+D9rXrTL@!2?J3OFS? zbBrCxAX8?UTR-DBTDg9gX5C@8OsLH7N-!{I$|c(R317f}*>KM2@k`6%+!aBXwHRi7 zKWh>U2Z!j}<9DN>vX2zO9$w1%(|S{&QJc8(QRi=cbm#Geb2a}(wB7I_LKs2L+7jHU zU&O+r$5XPT$(*fA`3gbjR3+62b^cJ2og(ZQQL?>Hj{7)7^3-NHRgRzCkuMPphZ$hk zyI7CTR7>vo3cgxkz0;X0fo+(bd*F$ynJiQviHLT&Yi*1}o_U5&*lJ#Rg&akLK4PVt zsnuN?uj4aYK&4fS`18Gku~S3_9Us*LxE@JYOrDvzVaC+jDWo*e1(Nd13AP7Tv)`zS z@ptSbo+=Y{>HS$!EvnmTuy_w8N=lej!a{{z`=z&ypI0G|h-PdKiaY5WAqfovw!u@| z*|a776cGcbEDj;feajnZtv3p$`w9W!&#X(IWe_=Py@zyK1vlxS>ffkXcA=U|}KNCy9a0hil1peQ0(t zFYjjBx#{ZE%A9u43PbF(gFdnn_0M<}DjSBIq@hgx#8JZ79>}aMLv^{{qJ}Ec`>L)h z*{EHc>@#!OXvoTCuuJ(;wzLAtf!u3uq7emilU&5)k0TkSQ%=i2)E*5~Kl0(L>B>Zp zy|-<8R75SRPDh5^2&ygTKz&=u{{2TPo==Cy=81Kq`Cm*mZ3j+(6301lIUf@?RJew& z=1$V7jAXmSLpwE9c6rO@T^_e^-e{W_{+YVm9ES~SatxW$R&TtHU}~(2_bTCPYaqvu zDgH7%EsB3*^8}68@3B5yQ)`zWu_hkORA*48^TO35;H#FnjtKdN3Z_?E$+#cEj=D}g zGB11C7NTCr=j!tm&<;%Ng?LesS!`c?^diNTynFsbgR5V60@q^qH{Py_r+}$Uvj58r zvFvNfF!r5Y1v%-08OzPCTXiUj`_ZGB-&6&6^i*qcv=(QNX>>~aEJAAZVO2<`&$K%n zpU@6|dD0iLxWjuj5$}bV5LF~oN1#f|Ef%>=q0gjHpSvLZTw>2hz&1m`wy2%s$SW(e z%$KAB``LEdj}MKz#lz4ke9p80XY%5|gnIGV30}>p30^OlyhMB;v;*9<&y$M+t+9>t z@bA4r!gX)1jHo~E`5X+v%HhOZT_3>#2w*W`cl8BZ!eKW?jcjy>#;(wF;R!cs;olOHu29 zIWx1SWRYPfnKs0rWeEg6iTrH|ebT#YZ7&BBc5w+~|LlJu# zud3mnoD+ZHO5f5Z`9~e)p-LenV#fFozf1+4wdz{I1PGwuAd zG=j=Z
  • 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 JERxU<_+KA9r!oKl literal 0 HcmV?d00001 diff --git a/cpp_package/src/data_filter.cpp b/cpp_package/src/data_filter.cpp index bbc26a14d..ecc571bb6 100644 --- a/cpp_package/src/data_filter.cpp +++ b/cpp_package/src/data_filter.cpp @@ -586,15 +586,32 @@ double DataFilter::get_railed_percentage (double *data, int data_len, int gain) } double *DataFilter::get_activity_index (const double *accel_x, const double *accel_y, - const double *accel_z, int data_len, int period, int *output_len) + const double *accel_z, int data_len, int sampling_rate, int period, + double noise_var_x, double noise_var_y, double noise_var_z, int *output_len) { - if ((period <= 0) || (period > data_len)) + if ((data_len <= 0) || (sampling_rate <= 0)) { - period = data_len; + throw BrainFlowException ("invalid arguments for get_activity_index", + (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR); + } + if (period <= 0) + { + period = data_len - (data_len % sampling_rate); + } + if ((period < sampling_rate) || (period > data_len) || (period % sampling_rate != 0)) + { + throw BrainFlowException ("invalid period for get_activity_index", + (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR); } int num_epochs = data_len / period; + if (num_epochs <= 0) + { + throw BrainFlowException ("data length shorter than epoch period", + (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR); + } double *output = new double[num_epochs]; - int res = ::get_activity_index (accel_x, accel_y, accel_z, data_len, period, output); + int res = ::get_activity_index (accel_x, accel_y, accel_z, data_len, sampling_rate, period, + noise_var_x, noise_var_y, noise_var_z, output); if (res != (int)BrainFlowExitCodes::STATUS_OK) { delete[] output; diff --git a/cpp_package/src/inc/data_filter.h b/cpp_package/src/inc/data_filter.h index bac0f00a0..ceaa2eafa 100644 --- a/cpp_package/src/inc/data_filter.h +++ b/cpp_package/src/inc/data_filter.h @@ -242,12 +242,18 @@ class DataFilter * @param accel_y input 1d array * @param accel_z input 1d array * @param data_len size of array - * @param period epoch length in samples (defaults to data_len if <= 0) + * @param sampling_rate sampling rate in Hz + * @param period epoch length in samples (defaults to full integer seconds if <= 0) + * @param noise_var_x baseline rest noise variance for X axis (default 0.0) + * @param noise_var_y baseline rest noise variance for Y axis (default 0.0) + * @param noise_var_z baseline rest noise variance for Z axis (default 0.0) * @param output_len pointer to int to store number of epochs calculated * @return pointer to array of activity indices */ static double *get_activity_index (const double *accel_x, const double *accel_y, - const double *accel_z, int data_len, int period, int *output_len); + const double *accel_z, int data_len, int sampling_rate, int period = 0, + double noise_var_x = 0.0, double noise_var_y = 0.0, double noise_var_z = 0.0, + int *output_len = NULL); /// get brainflow version static std::string get_version (); diff --git a/csharp_package/brainflow/brainflow/data_filter.cs b/csharp_package/brainflow/brainflow/data_filter.cs index 83121b26a..54ad41d90 100644 --- a/csharp_package/brainflow/brainflow/data_filter.cs +++ b/csharp_package/brainflow/brainflow/data_filter.cs @@ -586,9 +586,9 @@ public static void write_file (double[,] data, string file_name, string file_mod } /// - /// calculate activity index from 3-axis accelerometer data + /// calculate activity index from 3-axis accelerometer data using Bai et al. (2016) formulation /// - public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int period = 0) + public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int sampling_rate, int period = 0, double noise_var_x = 0.0, double noise_var_y = 0.0, double noise_var_z = 0.0) { if (accel_x == null || accel_y == null || accel_z == null) { @@ -598,17 +598,33 @@ public static double[] get_activity_index (double[] accel_x, double[] accel_y, d { throw new BrainFlowError ((int)BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR); } + if (accel_x.Length == 0) + { + throw new BrainFlowError ((int)BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR); + } + if (sampling_rate <= 0 || accel_x.Length < sampling_rate) + { + throw new BrainFlowError ((int)BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR); + } if (period <= 0) { - period = accel_x.Length; + period = accel_x.Length - (accel_x.Length % sampling_rate); } - if (accel_x.Length < period) + if (period < sampling_rate || accel_x.Length < period || (period % sampling_rate != 0)) + { + throw new BrainFlowError ((int)BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR); + } + if (noise_var_x < 0.0 || noise_var_y < 0.0 || noise_var_z < 0.0) { throw new BrainFlowError ((int)BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR); } int num_epochs = accel_x.Length / period; + if (num_epochs == 0) + { + throw new BrainFlowError ((int)BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR); + } double[] output = new double[num_epochs]; - int res = DataHandlerLibrary.get_activity_index (accel_x, accel_y, accel_z, accel_x.Length, period, output); + int res = DataHandlerLibrary.get_activity_index (accel_x, accel_y, accel_z, accel_x.Length, sampling_rate, period, noise_var_x, noise_var_y, noise_var_z, output); if (res != (int)BrainFlowExitCodes.STATUS_OK) { throw new BrainFlowError (res); diff --git a/csharp_package/brainflow/brainflow/data_handler_library.cs b/csharp_package/brainflow/brainflow/data_handler_library.cs index 246ce0057..2107f5386 100644 --- a/csharp_package/brainflow/brainflow/data_handler_library.cs +++ b/csharp_package/brainflow/brainflow/data_handler_library.cs @@ -188,7 +188,7 @@ public static extern int perform_wavelet_denoising (double[] data, int data_len, [DllImport ("DataHandler", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] public static extern int perform_ica (double[] data, int rows, int cols, int num_components, double[] w, double[] k, double[] a, double[] s); [DllImport ("DataHandler", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] - public static extern int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int period, double[] output); + public static extern int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int sampling_rate, int period, double noise_var_x, double noise_var_y, double noise_var_z, double[] output); // unsafe methods working with pointers [DllImport ("DataHandler", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] public static unsafe extern int perform_lowpass (double* data, int len, int sampling_rate, double cutoff, int order, int filter_type, double ripple); @@ -300,7 +300,7 @@ public static extern int perform_wavelet_denoising (double[] data, int data_len, [DllImport ("DataHandler32", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] public static extern int perform_ica (double[] data, int rows, int cols, int num_components, double[] w, double[] k, double[] a, double[] s); [DllImport ("DataHandler32", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] - public static extern int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int period, double[] output); + public static extern int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int sampling_rate, int period, double noise_var_x, double noise_var_y, double noise_var_z, double[] output); // unsafe methods working with pointers [DllImport ("DataHandler32", SetLastError = true, CallingConvention = CallingConvention.Cdecl)] public static unsafe extern int perform_lowpass (double* data, int len, int sampling_rate, double cutoff, int order, int filter_type, double ripple); @@ -393,14 +393,14 @@ public static int perform_ica (double[] data, int rows, int cols, int num_compon return (int)BrainFlowExitCodes.GENERAL_ERROR; } - public static int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int period, double[] output) + public static int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int sampling_rate, int period, double noise_var_x, double noise_var_y, double noise_var_z, double[] output) { switch (PlatformHelper.get_library_environment ()) { case LibraryEnvironment.x64: - return DataHandlerLibrary64.get_activity_index (accel_x, accel_y, accel_z, data_len, period, output); + return DataHandlerLibrary64.get_activity_index (accel_x, accel_y, accel_z, data_len, sampling_rate, period, noise_var_x, noise_var_y, noise_var_z, output); case LibraryEnvironment.x86: - return DataHandlerLibrary32.get_activity_index (accel_x, accel_y, accel_z, data_len, period, output); + return DataHandlerLibrary32.get_activity_index (accel_x, accel_y, accel_z, data_len, sampling_rate, period, noise_var_x, noise_var_y, noise_var_z, output); } return (int)BrainFlowExitCodes.GENERAL_ERROR; diff --git a/java_package/brainflow/src/main/java/brainflow/DataFilter.java b/java_package/brainflow/src/main/java/brainflow/DataFilter.java index f5474d8ed..1fb538730 100644 --- a/java_package/brainflow/src/main/java/brainflow/DataFilter.java +++ b/java_package/brainflow/src/main/java/brainflow/DataFilter.java @@ -104,8 +104,8 @@ int get_heart_rate (double[] ppg_ir, double[] ppg_red, int len, int sampling_rat int perform_ica (double[] data, int rows, int cols, int num_components, double[] w, double[] k, double[] a, double[] s); - int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int period, - double[] output); + int get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int data_len, int sampling_rate, int period, + double noise_var_x, double noise_var_y, double noise_var_z, double[] output); int get_version_data_handler (byte[] version, int[] len, int max_len); @@ -1077,10 +1077,10 @@ public static double[][] read_file (String file_name) throws BrainFlowError } /** - * calculate activity index from 3-axis accelerometer data + * calculate activity index from 3-axis accelerometer data using Bai et al. (2016) formulation */ - public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int period) - throws BrainFlowError + public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int sampling_rate, int period, + double noise_var_x, double noise_var_y, double noise_var_z) throws BrainFlowError { if (accel_x == null || accel_y == null || accel_z == null) { @@ -1090,17 +1090,34 @@ public static double[] get_activity_index (double[] accel_x, double[] accel_y, d { throw new BrainFlowError ("Array lengths do not match", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); } + if (accel_x.length == 0) + { + throw new BrainFlowError ("Input arrays must not be empty", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); + } + if (sampling_rate <= 0 || accel_x.length < sampling_rate) + { + throw new BrainFlowError ("Invalid sampling rate or data length shorter than 1 second", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); + } if (period <= 0) { - period = accel_x.length; + period = accel_x.length - (accel_x.length % sampling_rate); } - if (accel_x.length < period) + if (period < sampling_rate || accel_x.length < period || (period % sampling_rate != 0)) { - throw new BrainFlowError ("Data length is shorter than period", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); + throw new BrainFlowError ("Invalid period or data length is shorter than period", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); + } + if (noise_var_x < 0 || noise_var_y < 0 || noise_var_z < 0) + { + throw new BrainFlowError ("Noise variances must be non-negative", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); } int num_epochs = accel_x.length / period; + if (num_epochs == 0) + { + throw new BrainFlowError ("Data length is shorter than period", BrainFlowExitCode.INVALID_ARGUMENTS_ERROR.get_code ()); + } double[] output = new double[num_epochs]; - int ec = instance.get_activity_index (accel_x, accel_y, accel_z, accel_x.length, period, output); + int ec = instance.get_activity_index (accel_x, accel_y, accel_z, accel_x.length, sampling_rate, period, + noise_var_x, noise_var_y, noise_var_z, output); if (ec != BrainFlowExitCode.STATUS_OK.get_code ()) { throw new BrainFlowError ("Failed to calculate activity index", ec); @@ -1108,10 +1125,16 @@ public static double[] get_activity_index (double[] accel_x, double[] accel_y, d return output; } - public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z) + public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int sampling_rate, int period) + throws BrainFlowError + { + return get_activity_index (accel_x, accel_y, accel_z, sampling_rate, period, 0.0, 0.0, 0.0); + } + + public static double[] get_activity_index (double[] accel_x, double[] accel_y, double[] accel_z, int sampling_rate) throws BrainFlowError { - return get_activity_index (accel_x, accel_y, accel_z, 0); + return get_activity_index (accel_x, accel_y, accel_z, sampling_rate, 0, 0.0, 0.0, 0.0); } public static double[] reshape_data_to_1d (int num_rows, int num_cols, double[][] buf) diff --git a/julia_package/brainflow/src/data_filter.jl b/julia_package/brainflow/src/data_filter.jl index 929e86666..8e2baf974 100644 --- a/julia_package/brainflow/src/data_filter.jl +++ b/julia_package/brainflow/src/data_filter.jl @@ -462,20 +462,32 @@ end return band_power[1] end -@brainflow_rethrow function get_activity_index(accel_x, accel_y, accel_z, period::Integer=0) +@brainflow_rethrow function get_activity_index(accel_x, accel_y, accel_z, sampling_rate::Integer, period::Integer=0, noise_var_x::Real=0.0, noise_var_y::Real=0.0, noise_var_z::Real=0.0) if (length(accel_x) != length(accel_y)) || (length(accel_x) != length(accel_z)) throw(BrainFlowError(string("Arrays lengths must match ", INVALID_ARGUMENTS_ERROR), Integer(INVALID_ARGUMENTS_ERROR))) end data_len = length(accel_x) + if data_len == 0 + throw(BrainFlowError(string("Input arrays must not be empty ", INVALID_ARGUMENTS_ERROR), Integer(INVALID_ARGUMENTS_ERROR))) + end + if sampling_rate <= 0 || data_len < sampling_rate + throw(BrainFlowError(string("Invalid sampling rate or data length shorter than 1 second ", INVALID_ARGUMENTS_ERROR), Integer(INVALID_ARGUMENTS_ERROR))) + end if period <= 0 - period = data_len + period = data_len - mod(data_len, sampling_rate) end - if data_len < period - throw(BrainFlowError(string("Data length is shorter than period ", INVALID_ARGUMENTS_ERROR), Integer(INVALID_ARGUMENTS_ERROR))) + if period < sampling_rate || data_len < period || mod(period, sampling_rate) != 0 + throw(BrainFlowError(string("Invalid period or data length is shorter than period ", INVALID_ARGUMENTS_ERROR), Integer(INVALID_ARGUMENTS_ERROR))) + end + if noise_var_x < 0.0 || noise_var_y < 0.0 || noise_var_z < 0.0 + throw(BrainFlowError(string("Noise variances must be non-negative ", INVALID_ARGUMENTS_ERROR), Integer(INVALID_ARGUMENTS_ERROR))) end num_epochs = div(data_len, period) + if num_epochs == 0 + throw(BrainFlowError(string("Data length is shorter than period ", INVALID_ARGUMENTS_ERROR), Integer(INVALID_ARGUMENTS_ERROR))) + end output = Vector{Float64}(undef, num_epochs) - ccall((:get_activity_index, DATA_HANDLER_INTERFACE), Cint, (Ptr{Float64}, Ptr{Float64}, Ptr{Float64}, Cint, Cint, Ptr{Float64}), - accel_x, accel_y, accel_z, Int32(data_len), Int32(period), output) + ccall((:get_activity_index, DATA_HANDLER_INTERFACE), Cint, (Ptr{Float64}, Ptr{Float64}, Ptr{Float64}, Cint, Cint, Cint, Float64, Float64, Float64, Ptr{Float64}), + accel_x, accel_y, accel_z, Int32(data_len), Int32(sampling_rate), Int32(period), Float64(noise_var_x), Float64(noise_var_y), Float64(noise_var_z), output) return output end diff --git a/matlab_package/brainflow/DataFilter.m b/matlab_package/brainflow/DataFilter.m index d11724d57..cf1c94f8f 100644 --- a/matlab_package/brainflow/DataFilter.m +++ b/matlab_package/brainflow/DataFilter.m @@ -460,22 +460,47 @@ function write_file(data, file_name, file_mode) data = transpose(reshape(data_array.Value(1, 1:data_count.Value), [num_cols.Value, num_rows.value])); end - function output = get_activity_index(accel_x, accel_y, accel_z, period) - % calculate activity index + function output = get_activity_index(accel_x, accel_y, accel_z, sampling_rate, period, noise_var_x, noise_var_y, noise_var_z) + % calculate activity index using Bai et al. (2016) formulation if nargin < 4 - period = size(accel_x, 2); + error('accel_x, accel_y, accel_z, and sampling_rate are required'); end - if period <= 0 - period = size(accel_x, 2); + if isempty(accel_x) || isempty(accel_y) || isempty(accel_z) + error('Input arrays must not be empty'); + end + if size(accel_x, 2) ~= size(accel_y, 2) || size(accel_x, 2) ~= size(accel_z, 2) + error('Length of accel_x, accel_y, and accel_z must match'); + end + if floor(sampling_rate) ~= sampling_rate || sampling_rate <= 0 + error('Sampling rate must be a positive integer'); + end + data_len = size(accel_x, 2); + if data_len < sampling_rate + error('Data length must be at least one second'); + end + if nargin < 5 || period <= 0 + period = data_len - mod(data_len, sampling_rate); + end + if floor(period) ~= period + error('Period must be an integer'); + end + if period < sampling_rate || period > data_len || mod(period, sampling_rate) ~= 0 + error('Period must be an integer multiple of sampling rate and <= data_len'); + end + if nargin < 6; noise_var_x = 0.0; end + if nargin < 7; noise_var_y = 0.0; end + if nargin < 8; noise_var_z = 0.0; end + if noise_var_x < 0 || noise_var_y < 0 || noise_var_z < 0 + error('Noise variances must be non-negative'); end task_name = 'get_activity_index'; temp_input_x = libpointer('doublePtr', accel_x); temp_input_y = libpointer('doublePtr', accel_y); temp_input_z = libpointer('doublePtr', accel_z); lib_name = DataFilter.load_lib(); - num_epochs = floor(size(accel_x, 2) / period); + num_epochs = floor(data_len / period); temp_output = libpointer('doublePtr', zeros(1, num_epochs)); - exit_code = calllib(lib_name, task_name, temp_input_x, temp_input_y, temp_input_z, size(accel_x, 2), period, temp_output); + exit_code = calllib(lib_name, task_name, temp_input_x, temp_input_y, temp_input_z, data_len, sampling_rate, period, noise_var_x, noise_var_y, noise_var_z, temp_output); DataFilter.check_ec(exit_code, task_name); output = temp_output.Value; end diff --git a/nodejs_package/brainflow/data_filter.ts b/nodejs_package/brainflow/data_filter.ts index fea2f1cbe..05660cece 100644 --- a/nodejs_package/brainflow/data_filter.ts +++ b/nodejs_package/brainflow/data_filter.ts @@ -610,26 +610,54 @@ export class DataFilter } public static getActivityIndex( - accelX: number[], accelY: number[], accelZ: number[], period: number = 0): number[] + accelX: number[], accelY: number[], accelZ: number[], + samplingRate: number, period: number = 0, + noiseVarX: number = 0, noiseVarY: number = 0, noiseVarZ: number = 0): number[] { if (accelX.length !== accelY.length || accelX.length !== accelZ.length) { throw new BrainFlowError ( BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "arrays lengths must match"); } + if (accelX.length === 0) + { + throw new BrainFlowError ( + BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "input arrays must not be empty"); + } + if (!Number.isInteger(samplingRate) || samplingRate <= 0 || accelX.length < samplingRate) + { + throw new BrainFlowError ( + BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "invalid sampling rate or data shorter than 1 second"); + } if (period <= 0) { - period = accelX.length; + period = accelX.length - (accelX.length % samplingRate); } - if (accelX.length < period) + if (!Number.isInteger(period)) { throw new BrainFlowError ( - BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "data length is shorter than period"); + BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "period must be an integer"); + } + if (period < samplingRate || accelX.length < period || (period % samplingRate !== 0)) + { + throw new BrainFlowError ( + BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "invalid period or data length shorter than period"); + } + if (noiseVarX < 0 || noiseVarY < 0 || noiseVarZ < 0) + { + throw new BrainFlowError ( + BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "noise variances must be non-negative"); } const numEpochs = Math.trunc(accelX.length / period); + if (numEpochs === 0) + { + throw new BrainFlowError ( + BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR, "data length is shorter than period"); + } const output = [...new Array (numEpochs).fill(0)]; const res = DataHandlerDLL.getInstance().getActivityIndex( - accelX, accelY, accelZ, accelX.length, period, output); + accelX, accelY, accelZ, accelX.length, samplingRate, period, + noiseVarX, noiseVarY, noiseVarZ, output); if (res !== BrainFlowExitCodes.STATUS_OK) { throw new BrainFlowError (res, 'Could not calc activity index'); diff --git a/nodejs_package/brainflow/functions.types.ts b/nodejs_package/brainflow/functions.types.ts index ef3011b54..9740931c2 100644 --- a/nodejs_package/brainflow/functions.types.ts +++ b/nodejs_package/brainflow/functions.types.ts @@ -371,7 +371,7 @@ export enum DataHandlerCLikeFunctions { perform_ica = 'int perform_ica (double *data, int rows, int cols, int num_components, _Inout_ double *w_mat, _Inout_ double *k_mat, _Inout_ double *a_mat, _Inout_ double *s_mat)', get_activity_index = - 'int get_activity_index (double *accel_x, double *accel_y, double *accel_z, int data_len, int period, _Inout_ double *activity_index)', + 'int get_activity_index (double *accel_x, double *accel_y, double *accel_z, int data_len, int sampling_rate, int period, double noise_var_x, double noise_var_y, double noise_var_z, _Inout_ double *activity_index)', get_csp = 'int get_csp (const double *data, const double *labels, int n_epochs, int n_channels, int n_times, _Inout_ double *output_w, _Inout_ double *output_d)', get_railed_percentage = diff --git a/python_package/brainflow/data_filter.py b/python_package/brainflow/data_filter.py index 73bbdf2c1..10d11fb5b 100644 --- a/python_package/brainflow/data_filter.py +++ b/python_package/brainflow/data_filter.py @@ -544,6 +544,10 @@ def __init__(self): ndpointer(ctypes.c_double), ctypes.c_int, ctypes.c_int, + ctypes.c_int, + ctypes.c_double, + ctypes.c_double, + ctypes.c_double, ndpointer(ctypes.c_double) ] @@ -1305,8 +1309,18 @@ def perform_ifft(cls, data): return output @classmethod - def get_activity_index(cls, accel_x, accel_y, accel_z, period: int = 0): - """get activity index from 3-axis accelerometer data + def get_activity_index( + cls, + accel_x, + accel_y, + accel_z, + sampling_rate: int, + period: int = 0, + noise_var_x: float = 0.0, + noise_var_y: float = 0.0, + noise_var_z: float = 0.0, + ): + """get activity index from 3-axis accelerometer data using the Bai et al. (2016) formulation :param accel_x: acceleration X data :type accel_x: NDArray[Shape["*"], Float64] @@ -1314,8 +1328,16 @@ def get_activity_index(cls, accel_x, accel_y, accel_z, period: int = 0): :type accel_y: NDArray[Shape["*"], Float64] :param accel_z: acceleration Z data :type accel_z: NDArray[Shape["*"], Float64] - :param period: epoch length in samples (defaults to full data length if 0) + :param sampling_rate: sampling rate of accelerometer in Hz + :type sampling_rate: int + :param period: epoch length in samples (defaults to full integer seconds of data if 0) :type period: int + :param noise_var_x: baseline rest noise variance for X axis + :type noise_var_x: float + :param noise_var_y: baseline rest noise variance for Y axis + :type noise_var_y: float + :param noise_var_z: baseline rest noise variance for Z axis + :type noise_var_z: float :return: activity index values :rtype: NDArray[Shape["*"], Float64] """ @@ -1325,14 +1347,23 @@ def get_activity_index(cls, accel_x, accel_y, accel_z, period: int = 0): if not (accel_x.shape[0] == accel_y.shape[0] == accel_z.shape[0]): raise BrainFlowError('invalid shapes', BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value) data_len = accel_x.shape[0] + if data_len == 0: + raise BrainFlowError('input arrays must not be empty', BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value) + if sampling_rate <= 0 or data_len < sampling_rate: + raise BrainFlowError('invalid sampling rate or data shorter than 1 second', BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value) if period <= 0: - period = data_len - if data_len < period: - raise BrainFlowError('data length is shorter than period', BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value) + period = data_len - (data_len % sampling_rate) + if period < sampling_rate or data_len < period or (period % sampling_rate != 0): + raise BrainFlowError('invalid period or data length shorter than period', BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value) + if noise_var_x < 0.0 or noise_var_y < 0.0 or noise_var_z < 0.0: + raise BrainFlowError('noise variances must be non-negative', BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value) num_epochs = data_len // period + if num_epochs == 0: + raise BrainFlowError('data length is shorter than period', BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value) output = numpy.zeros(num_epochs).astype(numpy.float64) res = DataHandlerDLL.get_instance().get_activity_index( - accel_x, accel_y, accel_z, data_len, period, output + accel_x, accel_y, accel_z, data_len, sampling_rate, period, + noise_var_x, noise_var_y, noise_var_z, output ) if res != BrainFlowExitCodes.STATUS_OK.value: raise BrainFlowError('unable to calculate activity index', res) diff --git a/python_package/examples/tests/activity_index.py b/python_package/examples/tests/activity_index.py index 7ae28921a..2c50d46aa 100644 --- a/python_package/examples/tests/activity_index.py +++ b/python_package/examples/tests/activity_index.py @@ -11,44 +11,151 @@ def test_activity_index(): print("Testing get_activity_index...") + fs = 50 # 1. Test Constant Signal (AI must be exactly 0.0) accel_x = np.full(100, 1.0, dtype=np.float64) accel_y = np.full(100, 2.0, dtype=np.float64) accel_z = np.full(100, -3.0, dtype=np.float64) - ai_constant = DataFilter.get_activity_index(accel_x, accel_y, accel_z) + ai_constant = DataFilter.get_activity_index(accel_x, accel_y, accel_z, sampling_rate=fs) print(f"Constant signal AI: {ai_constant}") assert len(ai_constant) == 1 assert np.isclose(ai_constant[0], 0.0), f"Expected 0.0, got {ai_constant[0]}" - # 2. Test Multi-epoch AI calculation - # Epoch 1: variance = 0 (constant) - # Epoch 2: variance > 0 (varying) - N = 50 - x = np.concatenate([np.zeros(N), np.sin(np.linspace(0, 2 * np.pi, N, endpoint=False))]) - y = np.concatenate([np.zeros(N), np.cos(np.linspace(0, 2 * np.pi, N, endpoint=False))]) - z = np.concatenate([np.zeros(N), np.zeros(N)]) - - ai_epochs = DataFilter.get_activity_index(x, y, z, period=N) - print(f"Epochs AI: {ai_epochs}") - assert len(ai_epochs) == 2 - assert np.isclose(ai_epochs[0], 0.0) - - # Theoretical variance of sine/cos of amplitude 1 is 0.5 - # var_x = 0.5, var_y = 0.5, var_z = 0 -> total_var = (0.5 + 0.5 + 0)/3 = 1/3 - # AI = sqrt(1/3) = ~0.57735 - expected_ai_epoch1 = np.sqrt((np.var(x[N:]) + np.var(y[N:]) + np.var(z[N:])) / 3.0) - print(f"Calculated AI: {ai_epochs[1]}, Expected: {expected_ai_epoch1}") - assert np.isclose(ai_epochs[1], expected_ai_epoch1) - - # 3. Test Invalid Arguments + # 2. Test Stationary Noisy Signal with Baseline Noise Cancellation + # Stationary sensor produces noise variance. With baseline noise subtracted, AI should be 0.0. + np.random.seed(42) + noise_x = np.random.normal(0, 0.2, 200) # theoretical var ~ 0.04 + noise_y = np.random.normal(0, 0.2, 200) + noise_z = np.random.normal(0, 0.2, 200) + + sample_var_x = float(np.var(noise_x[:fs])) + sample_var_y = float(np.var(noise_y[:fs])) + sample_var_z = float(np.var(noise_z[:fs])) + + # If we pass the exact baseline noise variance of rest data, AI must be 0.0 + ai_rest = DataFilter.get_activity_index( + noise_x[:fs], noise_y[:fs], noise_z[:fs], + sampling_rate=fs, period=fs, + noise_var_x=sample_var_x, noise_var_y=sample_var_y, noise_var_z=sample_var_z + ) + print(f"Stationary noise cancelled AI: {ai_rest}") + assert np.isclose(ai_rest[0], 0.0) + + # If baseline noise exceeds signal variance, clamping to 0 must prevent negative values + ai_clamped = DataFilter.get_activity_index( + noise_x[:fs], noise_y[:fs], noise_z[:fs], + sampling_rate=fs, period=fs, + noise_var_x=1.0, noise_var_y=1.0, noise_var_z=1.0 + ) + assert np.isclose(ai_clamped[0], 0.0) + + # 3. Test Signal with Known Variance minus Noise Variance + # Sine wave with amplitude 1.0 has variance = 0.5 + t = np.linspace(0, 1.0, fs, endpoint=False) + sig_x = np.sin(2 * np.pi * 2 * t) # var = 0.5 + sig_y = np.cos(2 * np.pi * 2 * t) # var = 0.5 + sig_z = np.zeros(fs) # var = 0.0 + noise_val = 0.1 + + actual_var_x = float(np.var(sig_x)) + actual_var_y = float(np.var(sig_y)) + actual_var_z = float(np.var(sig_z)) + expected_ai = np.sqrt(max(0.0, ((actual_var_x - noise_val) + (actual_var_y - noise_val) + (actual_var_z - 0.0)) / 3.0)) + + ai_test = DataFilter.get_activity_index( + sig_x, sig_y, sig_z, sampling_rate=fs, period=fs, + noise_var_x=noise_val, noise_var_y=noise_val, noise_var_z=0.0 + ) + print(f"Known signal AI: {ai_test[0]}, Expected: {expected_ai}") + assert np.isclose(ai_test[0], expected_ai) + + # 4. Test Epoch Semantics (Bai et al. 2016 summing adjacent 1-second AIs) + # Second 1: low motion wave (amplitude 0.5, var = 0.125) + # Second 2: high motion wave (amplitude 2.0, var = 2.0) + t1 = np.linspace(0, 1.0, fs, endpoint=False) + s1_x = 0.5 * np.sin(2 * np.pi * 2 * t1) + s1_y = 0.5 * np.cos(2 * np.pi * 2 * t1) + s1_z = np.zeros(fs) + + t2 = np.linspace(0, 1.0, fs, endpoint=False) + s2_x = 2.0 * np.sin(2 * np.pi * 2 * t2) + s2_y = 2.0 * np.cos(2 * np.pi * 2 * t2) + s2_z = np.zeros(fs) + + # 1-second AIs individually + ai_sec1 = DataFilter.get_activity_index(s1_x, s1_y, s1_z, sampling_rate=fs, period=fs)[0] + ai_sec2 = DataFilter.get_activity_index(s2_x, s2_y, s2_z, sampling_rate=fs, period=fs)[0] + + # Combined 2-second signal + comb_x = np.concatenate([s1_x, s2_x]) + comb_y = np.concatenate([s1_y, s2_y]) + comb_z = np.concatenate([s1_z, s2_z]) + + # 2-second epoch AI should be EXACTLY ai_sec1 + ai_sec2 per Bai et al. 2016 + ai_2sec = DataFilter.get_activity_index(comb_x, comb_y, comb_z, sampling_rate=fs, period=2 * fs) + assert len(ai_2sec) == 1 + print(f"2-second epoch AI: {ai_2sec[0]}, Sum of 1s AIs: {ai_sec1 + ai_sec2}") + assert np.isclose(ai_2sec[0], ai_sec1 + ai_sec2) + + # Show that it is NOT simply the variance recomputed over the entire 2-second period + recomputed_full_var_ai = np.sqrt((np.var(comb_x) + np.var(comb_y) + np.var(comb_z)) / 3.0) + print(f"Recomputed full variance AI: {recomputed_full_var_ai}") + assert not np.isclose(ai_2sec[0], recomputed_full_var_ai) + + # 5. Test Multi-epoch AI calculation (4 seconds -> two 2-second epochs) + comb4_x = np.concatenate([comb_x, comb_x]) + comb4_y = np.concatenate([comb_y, comb_y]) + comb4_z = np.concatenate([comb_z, comb_z]) + ai_4sec = DataFilter.get_activity_index(comb4_x, comb4_y, comb4_z, sampling_rate=fs, period=2 * fs) + assert len(ai_4sec) == 2 + assert np.isclose(ai_4sec[0], ai_2sec[0]) + assert np.isclose(ai_4sec[1], ai_2sec[0]) + + # 6. Test Invalid Arguments + # Shape mismatch try: - DataFilter.get_activity_index(np.zeros(10), np.zeros(5), np.zeros(10)) + DataFilter.get_activity_index(np.zeros(10), np.zeros(5), np.zeros(10), sampling_rate=fs) assert False, "Should have raised BrainFlowError for shape mismatch" except BrainFlowError as e: assert e.exit_code == BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value + # Empty inputs + try: + DataFilter.get_activity_index(np.array([]), np.array([]), np.array([]), sampling_rate=fs) + assert False, "Should have raised BrainFlowError for empty inputs" + except BrainFlowError as e: + assert e.exit_code == BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value + + # Invalid sampling rate + try: + DataFilter.get_activity_index(np.zeros(100), np.zeros(100), np.zeros(100), sampling_rate=0) + assert False, "Should have raised BrainFlowError for zero sampling rate" + except BrainFlowError as e: + assert e.exit_code == BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value + + # Period greater than data length + try: + DataFilter.get_activity_index(np.zeros(100), np.zeros(100), np.zeros(100), sampling_rate=fs, period=200) + assert False, "Should have raised BrainFlowError for period > data_len" + except BrainFlowError as e: + assert e.exit_code == BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value + + # Period not an integer multiple of sampling rate + try: + DataFilter.get_activity_index(np.zeros(100), np.zeros(100), np.zeros(100), sampling_rate=fs, period=75) + assert False, "Should have raised BrainFlowError for period not multiple of fs" + except BrainFlowError as e: + assert e.exit_code == BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value + + # Negative noise variance + try: + DataFilter.get_activity_index(np.zeros(100), np.zeros(100), np.zeros(100), sampling_rate=fs, noise_var_x=-0.5) + assert False, "Should have raised BrainFlowError for negative noise variance" + except BrainFlowError as e: + assert e.exit_code == BrainFlowExitCodes.INVALID_ARGUMENTS_ERROR.value + print("All activity index tests passed successfully!") diff --git a/rust_package/brainflow/src/data_filter.rs b/rust_package/brainflow/src/data_filter.rs index 3e2a61b20..09a14c3e0 100644 --- a/rust_package/brainflow/src/data_filter.rs +++ b/rust_package/brainflow/src/data_filter.rs @@ -859,22 +859,34 @@ where Ok(check_brainflow_exit_code(res)?) } -/// Calculate activity index from 3-axis accelerometer data. +/// Calculate activity index from 3-axis accelerometer data using the Bai et al. (2016) formulation. pub fn get_activity_index( accel_x: &[f64], accel_y: &[f64], accel_z: &[f64], + sampling_rate: usize, period: Option, + noise_var: Option<(f64, f64, f64)>, ) -> Result> { if accel_x.len() != accel_y.len() || accel_x.len() != accel_z.len() { - return Err(BrainFlowError::InvalidArguments); + return Err(Error::BrainFlowError(BrainFlowError::InvalidArgumentsError)); } let data_len = accel_x.len(); - let period = period.unwrap_or(data_len); - if period == 0 || data_len < period { - return Err(BrainFlowError::InvalidArguments); + if data_len == 0 || sampling_rate == 0 || data_len < sampling_rate { + return Err(Error::BrainFlowError(BrainFlowError::InvalidArgumentsError)); + } + let period = period.unwrap_or(data_len - (data_len % sampling_rate)); + if period < sampling_rate || period > data_len || period % sampling_rate != 0 { + return Err(Error::BrainFlowError(BrainFlowError::InvalidArgumentsError)); } let num_epochs = data_len / period; + if num_epochs == 0 { + return Err(Error::BrainFlowError(BrainFlowError::InvalidArgumentsError)); + } + let (noise_var_x, noise_var_y, noise_var_z) = noise_var.unwrap_or((0.0, 0.0, 0.0)); + if noise_var_x < 0.0 || noise_var_y < 0.0 || noise_var_z < 0.0 { + return Err(Error::BrainFlowError(BrainFlowError::InvalidArgumentsError)); + } let mut output = Vec::::with_capacity(num_epochs); let res = unsafe { data_handler::get_activity_index( @@ -882,7 +894,11 @@ pub fn get_activity_index( accel_y.as_ptr() as *const c_double, accel_z.as_ptr() as *const c_double, data_len as c_int, + sampling_rate as c_int, period as c_int, + noise_var_x, + noise_var_y, + noise_var_z, output.as_mut_ptr() as *mut c_double, ) }; diff --git a/rust_package/brainflow/src/ffi/data_handler.rs b/rust_package/brainflow/src/ffi/data_handler.rs index 197a2b679..d66ef000d 100644 --- a/rust_package/brainflow/src/ffi/data_handler.rs +++ b/rust_package/brainflow/src/ffi/data_handler.rs @@ -278,7 +278,11 @@ extern "C" { accel_y: *const f64, accel_z: *const f64, data_len: ::std::os::raw::c_int, + sampling_rate: ::std::os::raw::c_int, period: ::std::os::raw::c_int, + noise_var_x: f64, + noise_var_y: f64, + noise_var_z: f64, activity_index: *mut f64, ) -> ::std::os::raw::c_int; } diff --git a/src/data_handler/data_handler.cpp b/src/data_handler/data_handler.cpp index db07d10be..5d6294a3c 100644 --- a/src/data_handler/data_handler.cpp +++ b/src/data_handler/data_handler.cpp @@ -1727,48 +1727,65 @@ int perform_ica (double *data, int rows, int cols, int num_components, double *w } int get_activity_index (const double *accel_x, const double *accel_y, const double *accel_z, - int data_len, int period, double *output) + int data_len, int sampling_rate, int period, double noise_var_x, double noise_var_y, + double noise_var_z, double *output) { if ((accel_x == NULL) || (accel_y == NULL) || (accel_z == NULL) || (output == NULL) || - (period <= 0) || (data_len < period)) + (data_len <= 0) || (sampling_rate <= 0) || (period < sampling_rate) || + (data_len < period) || (period % sampling_rate != 0) || (noise_var_x < 0.0) || + (noise_var_y < 0.0) || (noise_var_z < 0.0)) { data_logger->error ("Invalid arguments for get_activity_index: accel_x {}, accel_y {}, " - "accel_z {}, output {}, data_len {}, period {}", + "accel_z {}, output {}, data_len {}, sampling_rate {}, period {}, " + "noise_var_x {}, noise_var_y {}, noise_var_z {}", (accel_x != NULL), (accel_y != NULL), (accel_z != NULL), (output != NULL), data_len, - period); + sampling_rate, period, noise_var_x, noise_var_y, noise_var_z); return (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR; } + int sec_per_epoch = period / sampling_rate; int num_epochs = data_len / period; + for (int epoch = 0; epoch < num_epochs; epoch++) { - int start_pos = epoch * period; - int end_pos = start_pos + period; - - double mean_x = 0.0, mean_y = 0.0, mean_z = 0.0; - for (int i = start_pos; i < end_pos; i++) + double epoch_ai = 0.0; + int epoch_start_sec = epoch * sec_per_epoch; + for (int sec = 0; sec < sec_per_epoch; sec++) { - mean_x += accel_x[i]; - mean_y += accel_y[i]; - mean_z += accel_z[i]; - } - mean_x /= period; - mean_y /= period; - mean_z /= period; + int sec_idx = epoch_start_sec + sec; + int start_pos = sec_idx * sampling_rate; + int end_pos = start_pos + sampling_rate; - double var_x = 0.0, var_y = 0.0, var_z = 0.0; - for (int i = start_pos; i < end_pos; i++) - { - var_x += (accel_x[i] - mean_x) * (accel_x[i] - mean_x); - var_y += (accel_y[i] - mean_y) * (accel_y[i] - mean_y); - var_z += (accel_z[i] - mean_z) * (accel_z[i] - mean_z); - } - var_x /= period; - var_y /= period; - var_z /= period; + double mean_x = 0.0, mean_y = 0.0, mean_z = 0.0; + for (int i = start_pos; i < end_pos; i++) + { + mean_x += accel_x[i]; + mean_y += accel_y[i]; + mean_z += accel_z[i]; + } + mean_x /= sampling_rate; + mean_y /= sampling_rate; + mean_z /= sampling_rate; - double total_var = (var_x + var_y + var_z) / 3.0; - output[epoch] = sqrt (std::max (0.0, total_var)); + double var_x = 0.0, var_y = 0.0, var_z = 0.0; + for (int i = start_pos; i < end_pos; i++) + { + var_x += (accel_x[i] - mean_x) * (accel_x[i] - mean_x); + var_y += (accel_y[i] - mean_y) * (accel_y[i] - mean_y); + var_z += (accel_z[i] - mean_z) * (accel_z[i] - mean_z); + } + var_x /= sampling_rate; + var_y /= sampling_rate; + var_z /= sampling_rate; + + double adj_x = var_x - noise_var_x; + double adj_y = var_y - noise_var_y; + double adj_z = var_z - noise_var_z; + double mean_adj = (adj_x + adj_y + adj_z) / 3.0; + double ai_1sec = sqrt (std::max (0.0, mean_adj)); + epoch_ai += ai_1sec; + } + output[epoch] = epoch_ai; } return (int)BrainFlowExitCodes::STATUS_OK; diff --git a/src/data_handler/inc/data_handler.h b/src/data_handler/inc/data_handler.h index b933f76a5..517623de2 100644 --- a/src/data_handler/inc/data_handler.h +++ b/src/data_handler/inc/data_handler.h @@ -70,8 +70,8 @@ extern "C" SHARED_EXPORT int CALLING_CONVENTION perform_ica (double *data, int rows, int cols, int num_components, double *w_mat, double *k_mat, double *a_mat, double *s_mat); SHARED_EXPORT int CALLING_CONVENTION get_activity_index (const double *accel_x, - const double *accel_y, const double *accel_z, int data_len, int period, - double *activity_index); + const double *accel_y, const double *accel_z, int data_len, int sampling_rate, int period, + double noise_var_x, double noise_var_y, double noise_var_z, double *activity_index); // logging methods SHARED_EXPORT int CALLING_CONVENTION set_log_level_data_handler (int log_level); diff --git a/swift_package/Sources/BrainFlow/DataFilter.swift b/swift_package/Sources/BrainFlow/DataFilter.swift index 68aa696a2..89008de40 100644 --- a/swift_package/Sources/BrainFlow/DataFilter.swift +++ b/swift_package/Sources/BrainFlow/DataFilter.swift @@ -704,19 +704,36 @@ public enum DataFilter { BrainFlowArray.reshape_data_to_2d(num_rows: num_rows, num_cols: num_cols, linear_buffer: linear_buffer) } - public static func get_activity_index(accel_x: [Double], accel_y: [Double], accel_z: [Double], period: Int = 0) throws -> [Double] { + public static func get_activity_index( + accel_x: [Double], + accel_y: [Double], + accel_z: [Double], + sampling_rate: Int, + period: Int = 0, + noise_var_x: Double = 0.0, + noise_var_y: Double = 0.0, + noise_var_z: Double = 0.0 + ) throws -> [Double] { guard accel_x.count == accel_y.count, accel_x.count == accel_z.count else { throw invalidArguments("Array lengths must match") } let dataLen = accel_x.count - let periodToUse = period <= 0 ? dataLen : period - guard periodToUse > 0, dataLen >= periodToUse else { throw invalidArguments("Data length is shorter than period") } + guard dataLen > 0 else { throw invalidArguments("Input arrays must not be empty") } + guard sampling_rate > 0, dataLen >= sampling_rate else { throw invalidArguments("Invalid sampling rate or data length shorter than 1 second") } + let periodToUse = period <= 0 ? (dataLen - (dataLen % sampling_rate)) : period + guard periodToUse >= sampling_rate, dataLen >= periodToUse, periodToUse % sampling_rate == 0 else { + throw invalidArguments("Invalid period or data length is shorter than period") + } + guard noise_var_x >= 0.0, noise_var_y >= 0.0, noise_var_z >= 0.0 else { + throw invalidArguments("Noise variances must be non-negative") + } let numEpochs = dataLen / periodToUse + guard numEpochs > 0 else { throw invalidArguments("Data length is shorter than period") } var output = [Double](repeating: 0.0, count: numEpochs) try accel_x.withUnsafeBufferPointer { xPtr in try accel_y.withUnsafeBufferPointer { yPtr in try accel_z.withUnsafeBufferPointer { zPtr in try output.withUnsafeMutableBufferPointer { outPtr in try DataFilterNative.withData { native in - try checkBrainFlowExitCode(native.get_activity_index(xPtr.baseAddress, yPtr.baseAddress, zPtr.baseAddress, CInt(dataLen), CInt(periodToUse), outPtr.baseAddress), "Failed to calculate activity index") + try checkBrainFlowExitCode(native.get_activity_index(xPtr.baseAddress, yPtr.baseAddress, zPtr.baseAddress, CInt(dataLen), CInt(sampling_rate), CInt(periodToUse), noise_var_x, noise_var_y, noise_var_z, outPtr.baseAddress), "Failed to calculate activity index") } } } @@ -774,7 +791,7 @@ final class DataFilterNative { let restore_data_from_wavelet_detailed_coeffs: @convention(c) (UnsafeMutablePointer?, CInt, CInt, CInt, CInt, UnsafeMutablePointer?) -> CInt let detect_peaks_z_score: @convention(c) (UnsafeMutablePointer?, CInt, CInt, Double, Double, UnsafeMutablePointer?) -> CInt let perform_ica: @convention(c) (UnsafeMutablePointer?, CInt, CInt, CInt, UnsafeMutablePointer?, UnsafeMutablePointer?, UnsafeMutablePointer?, UnsafeMutablePointer?) -> CInt - let get_activity_index: @convention(c) (UnsafePointer?, UnsafePointer?, UnsafePointer?, CInt, CInt, UnsafeMutablePointer?) -> CInt + let get_activity_index: @convention(c) (UnsafePointer?, UnsafePointer?, UnsafePointer?, CInt, CInt, CInt, Double, Double, Double, UnsafeMutablePointer?) -> CInt let set_log_level_data_handler: @convention(c) (CInt) -> CInt let set_log_file_data_handler: @convention(c) (UnsafePointer?) -> CInt let log_message_data_handler: @convention(c) (CInt, UnsafeMutablePointer?) -> CInt