From 245de2c60273b2f4e6d61d321e48e1685203b466 Mon Sep 17 00:00:00 2001 From: jtyoung84 <104453205+jtyoung84@users.noreply.github.com> Date: Mon, 30 Oct 2023 09:56:36 -0700 Subject: [PATCH] Feat 10 bergamo session (#13) * feat: adds bergamo parsing * feat: updates schema version in tests * feat: adds bergamo etl job * feat: fixes flake8 warning * feat: puts hard-coded vals into settings class * feat: updates doc string --- pyproject.toml | 5 +- src/aind_metadata_mapper/bergamo/__init__.py | 1 + src/aind_metadata_mapper/bergamo/session.py | 602 ++++++++++++++++++ src/aind_metadata_mapper/core.py | 6 +- .../bergamo/cropped_neuron50_00001.tif | Bin 0 -> 2622 bytes .../bergamo/example_description0.txt | 16 + .../resources/bergamo/example_metadata.txt.gz | Bin 0 -> 76696 bytes tests/resources/bergamo/expected_session.json | 127 ++++ .../procedures_examples/basic_response.json | 2 +- .../subject_examples/basic_response.json | 2 +- tests/test_bergamo.py | 209 ++++++ 11 files changed, 964 insertions(+), 6 deletions(-) create mode 100644 src/aind_metadata_mapper/bergamo/__init__.py create mode 100644 src/aind_metadata_mapper/bergamo/session.py create mode 100644 tests/resources/bergamo/cropped_neuron50_00001.tif create mode 100644 tests/resources/bergamo/example_description0.txt create mode 100644 tests/resources/bergamo/example_metadata.txt.gz create mode 100644 tests/resources/bergamo/expected_session.json create mode 100644 tests/test_bergamo.py diff --git a/pyproject.toml b/pyproject.toml index cd7f02b0..a304cf34 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,8 +17,9 @@ readme = "README.md" dynamic = ["version"] dependencies = [ - "aind-data-schema==0.13.95", - "aind-metadata-service[client]" + "aind-data-schema==0.15.9", + "aind-metadata-service[client]", + "scanimage-tiff-reader==1.4.1.4" ] [project.optional-dependencies] diff --git a/src/aind_metadata_mapper/bergamo/__init__.py b/src/aind_metadata_mapper/bergamo/__init__.py new file mode 100644 index 00000000..bde8cab7 --- /dev/null +++ b/src/aind_metadata_mapper/bergamo/__init__.py @@ -0,0 +1 @@ +"""Maps bergamo metadata into a session model""" diff --git a/src/aind_metadata_mapper/bergamo/session.py b/src/aind_metadata_mapper/bergamo/session.py new file mode 100644 index 00000000..d7a38bed --- /dev/null +++ b/src/aind_metadata_mapper/bergamo/session.py @@ -0,0 +1,602 @@ +"""Module to map bergamo metadata into a session model""" + +import argparse +import json +import logging +import os +import re +import sys +from dataclasses import dataclass +from datetime import datetime, time +from os import PathLike +from pathlib import Path +from typing import Dict, List, Tuple, Union + +import numpy as np +from aind_data_schema.session import ( + Detector, + FieldOfView, + Laser, + Modality, + Session, + Stream, +) +from aind_data_schema.stimulus import ( + PhotoStimulation, + PhotoStimulationGroup, + StimulusEpoch, +) +from aind_data_schema.utils.units import PowerUnit, SizeUnit +from pydantic import BaseSettings, Extra +from ScanImageTiffReader import ScanImageTiffReader + +from aind_metadata_mapper.core import BaseEtl + + +class UserSettings(BaseSettings): + """Data that needs to be input by user. Can be pulled from env vars with + BERGAMO prefix or set explicitly.""" + + experimenter_full_name: List[str] + subject_id: str + # TODO: Look into if the following can be extracted from tif directory + session_start_time: datetime + session_end_time: datetime + stream_start_time: datetime + stream_end_time: datetime + stimulus_start_time: time + stimulus_end_time: time + + # Data that might change but can have default values + session_type: str = "BCI" + iacuc_protocol: str = "2115" + rig_id: str = "Bergamo photostim." + camera_names: Tuple[str] = ("Side Camera",) + laser_a_name: str = "Laser A" + laser_a_wavelength: int = 920 + laser_a_wavelength_unit: SizeUnit = SizeUnit.NM + detector_a_name: str = "PMT A" + detector_a_exposure_time: float = 0.1 + detector_a_trigger_type: str = "Internal" + fov_0_index: int = 0 + fov_0_imaging_depth: int = 150 + fov_0_targeted_structure: str = "M1" + fov_0_coordinate_ml: float = 1.5 + fov_0_coordinate_ap: float = 1.5 + fov_0_reference: str = "Bregma" + fov_0_magnification: str = "16x" + photo_stim_inter_trial_interval: int = 10 + photo_stim_groups: List[Dict[str, int]] = [ + {"group_index": 0, "number_trials": 5}, + {"group_index": 0, "number_trials": 5}, + ] + + @property + def num_of_photo_stim_groups(self): + """Compute number of photo stimulation groups from list of groups""" + return len(self.photo_stim_groups) + + class Config: + """Config to set env var prefix to BERGAMO""" + + extra = Extra.forbid + env_prefix = "BERGAMO_" + + +@dataclass(frozen=True) +class RawImageInfo: + """Metadata from tif files""" + + metadata: str + description0: str + shape: List[int] + + +@dataclass(frozen=True) +class ParsedMetadata: + """RawImageInfo gets parsed into this data""" + + metadata: dict + roi_data: dict + roi_metadata: dict + frame_rate: str + num_planes: int + shape: List[int] + description_first_frame: dict + movie_start_time: datetime + + +class BergamoEtl(BaseEtl): + """Class to manage transforming bergamo data files into a Session object""" + + def __init__( + self, + input_source: Union[str, PathLike], + output_directory: Path, + user_settings: UserSettings, + ): + """ + Class constructor for Base etl class. + Parameters + ---------- + input_source : Union[str, PathLike] + Can be a string or a Path + output_directory : Path + The directory where to save the json files. + user_settings: UserSettings + Variables for a particular session + """ + super().__init__(input_source, output_directory) + self.user_settings = user_settings + + @staticmethod + def _flat_dict_to_nested(flat: dict, key_delim: str = ".") -> dict: + """ + Utility method to convert a flat dictionary into a nested dictionary. + Modified from https://stackoverflow.com/a/50607551 + Parameters + ---------- + flat : dict + Example {"a.b.c": 1, "a.b.d": 2, "e.f": 3} + key_delim : str + Delimiter on dictionary keys. Default is '.'. + + Returns + ------- + dict + A nested dictionary like {"a": {"b": {"c":1, "d":2}, "e": {"f":3}} + """ + + def __nest_dict_rec(k, v, out) -> None: + """Simple recursive method being called.""" + k, *rest = k.split(key_delim, 1) + if rest: + __nest_dict_rec(rest[0], v, out.setdefault(k, {})) + else: + out[k] = v + + result = {} + for flat_key, flat_val in flat.items(): + __nest_dict_rec(flat_key, flat_val, result) + return result + + def _parse_raw_image_info( + self, raw_image_info: RawImageInfo + ) -> ParsedMetadata: + """ + Parses metadata from raw image info. + Parameters + ---------- + raw_image_info : RawImageInfo + + Returns + ------- + ParsedMetadata + """ + + # The metadata contains two parts separated by \n\n. The top part + # looks like + # 'SI.abc.def = 1\n SI.abc.ghf=2' + # We'll convert that to a nested dict. + metadata_first_part = raw_image_info.metadata.split("\n\n")[0] + flat_metadata_header_dict = dict( + [ + (s.split(" = ", 1)[0], s.split(" = ", 1)[1]) + for s in metadata_first_part.split("\n") + ] + ) + metadata = self._flat_dict_to_nested(flat_metadata_header_dict) + # Move SI dictionary up one level + if "SI" in metadata.keys(): + si_contents = metadata.pop("SI") + metadata.update(si_contents) + + # The second part is a standard json string. We'll extract it and + # append it to our dictionary + metadata_json = json.loads(raw_image_info.metadata.split("\n\n")[1]) + metadata["json"] = metadata_json + + # Convert description string to a dictionary + first_frame_description_str = raw_image_info.description0.strip() + description_first_image_dict = dict( + [ + (s.split(" = ", 1)[0], s.split(" = ", 1)[1]) + for s in first_frame_description_str.split("\n") + ] + ) + frame_rate = metadata["hRoiManager"]["scanVolumeRate"] + # TODO: Use .get instead of try/except and add coverage test + try: + z_collection = metadata["hFastZ"]["userZs"] + num_planes = len(z_collection) # pragma: no cover + except Exception as e: # new scanimage version + logging.error( + f"Multiple planes not handled in metadata collection. " + f"HANDLE ME!!!: {repr(e)}" + ) + # TODO: Check if this if/else is necessary + if metadata["hFastZ"]["enable"] == "true": + num_planes = 1 # pragma: no cover + else: + num_planes = 1 + + roi_metadata = metadata["json"]["RoiGroups"]["imagingRoiGroup"]["rois"] + + if isinstance(roi_metadata, dict): + roi_metadata = [roi_metadata] + num_rois = len(roi_metadata) + roi = {} + w_px = [] + h_px = [] + cXY = [] + szXY = [] + for r in range(num_rois): + roi[r] = {} + roi[r]["w_px"] = roi_metadata[r]["scanfields"][ + "pixelResolutionXY" + ][0] + w_px.append(roi[r]["w_px"]) + roi[r]["h_px"] = roi_metadata[r]["scanfields"][ + "pixelResolutionXY" + ][1] + h_px.append(roi[r]["h_px"]) + roi[r]["center"] = roi_metadata[r]["scanfields"]["centerXY"] + cXY.append(roi[r]["center"]) + roi[r]["size"] = roi_metadata[r]["scanfields"]["sizeXY"] + szXY.append(roi[r]["size"]) + + w_px = np.asarray(w_px) + h_px = np.asarray(h_px) + szXY = np.asarray(szXY) + cXY = np.asarray(cXY) + cXY = cXY - szXY / 2 + cXY = cXY - np.amin(cXY, axis=0) + mu = np.median(np.transpose(np.asarray([w_px, h_px])) / szXY, axis=0) + imin = cXY * mu + + n_rows_sum = np.sum(h_px) + n_flyback = (raw_image_info.shape[1] - n_rows_sum) / np.max( + [1, num_rois - 1] + ) + + irow = np.insert(np.cumsum(np.transpose(h_px) + n_flyback), 0, 0) + irow = np.delete(irow, -1) + irow = np.vstack((irow, irow + np.transpose(h_px))) + + data = {"fs": frame_rate, "nplanes": num_planes, "nrois": num_rois} + if data["nrois"] == 1: + data["mesoscan"] = 0 + else: + # TODO: Add coverage example + data["mesoscan"] = 1 # pragma: no cover + # TODO: Add coverage example + if data["mesoscan"]: # pragma: no cover + # data['nrois'] = num_rois #or irow.shape[1]? + data["dx"] = [] + data["dy"] = [] + data["lines"] = [] + for i in range(num_rois): + data["dx"] = np.hstack((data["dx"], imin[i, 1])) + data["dy"] = np.hstack((data["dy"], imin[i, 0])) + # TODO: NOT QUITE RIGHT YET + data["lines"] = list( + range( + irow[0, i].astype("int32"), + irow[1, i].astype("int32") - 1, + ) + ) + data["dx"] = data["dx"].astype("int32") + data["dy"] = data["dy"].astype("int32") + logging.debug(f"data[dx]: {data['dx']}") + logging.debug(f"data[dy]: {data['dy']}") + logging.debug(f"data[lines]: {data['lines']}") + movie_start_time = datetime.strptime( + description_first_image_dict["epoch"], "[%Y %m %d %H %M %S.%f]" + ) + + return ParsedMetadata( + metadata=metadata, + roi_data=data, + roi_metadata=roi_metadata, + frame_rate=frame_rate, + num_planes=num_planes, + shape=raw_image_info.shape, + description_first_frame=description_first_image_dict, + movie_start_time=movie_start_time, + ) + + @staticmethod + def _get_si_file_from_dir( + source_dir: Path, regex_pattern: str = r"^.*?(\d+).tif+$" + ) -> Path: + """ + Utility method to scan top level of source_dir for .tif or .tiff files. + Sorts them by file number and collects the first one. The directory + contains files that look like neuron50_00001.tif, neuron50_00002.tif. + Parameters + ---------- + source_dir : Path + Directory where the tif files are located + regex_pattern : str + Format of how files are expected to be organized. Default matches + against something that ends with a series of digits and .tif(f) + + Returns + ------- + Path + File path of the first tif file. + + """ + compiled_regex = re.compile(regex_pattern) + tif_filepath = None + old_tif_number = None + for root, dirs, files in os.walk(source_dir): + for name in files: + matched = re.match(compiled_regex, name) + if matched: + tif_number = matched.group(1) + if old_tif_number is None or tif_number < old_tif_number: + old_tif_number = tif_number + tif_filepath = Path(os.path.join(root, name)) + + # Only scan the top level files + break + if tif_filepath is None: + raise FileNotFoundError("Directory must contain tif or tiff file!") + else: + return tif_filepath + + def _extract(self) -> RawImageInfo: + """Extract metadata from bergamo session. If input source is a file, + will extract data from file. If input source is a directory, will + attempt to find a file.""" + if isinstance(self.input_source, str): + input_source = Path(self.input_source) + else: + input_source = self.input_source + + if os.path.isfile(input_source): + file_with_metadata = input_source + else: + file_with_metadata = self._get_si_file_from_dir(input_source) + # Not sure if a custom header was appended, but we can't use + # o=json.loads(reader.metadata()) directly + with ScanImageTiffReader(str(file_with_metadata)) as reader: + img_metadata = reader.metadata() + img_description = reader.description(0) + img_shape = reader.shape() + return RawImageInfo( + metadata=img_metadata, + description0=img_description, + shape=img_shape, + ) + + def _transform(self, extracted_source: RawImageInfo) -> Session: + """ + Transforms the raw data extracted from the tif directory into a + Session object. + Parameters + ---------- + extracted_source : RawImageInfo + + Returns + ------- + Session + + """ + siHeader = self._parse_raw_image_info(extracted_source) + photostim_groups = siHeader.metadata["json"]["RoiGroups"][ + "photostimRoiGroups" + ] + + data_stream = Stream( + stream_start_time=self.user_settings.stream_start_time, + stream_end_time=self.user_settings.stream_end_time, + stream_modalities=[Modality.POPHYS], + camera_names=list(self.user_settings.camera_names), + light_sources=[ + Laser( + name=self.user_settings.laser_a_name, + wavelength=self.user_settings.laser_a_wavelength, + wavelength_unit=self.user_settings.laser_a_wavelength_unit, + excitation_power=int( + siHeader.metadata["hBeams"]["powers"][1:-1].split()[0] + ), + excitation_power_unit=PowerUnit.PERCENT, + ), + ], + detectors=[ + Detector( + name=self.user_settings.detector_a_name, + exposure_time=self.user_settings.detector_a_exposure_time, + trigger_type=self.user_settings.detector_a_trigger_type, + ), + ], + ophys_fovs=[ + FieldOfView( + index=self.user_settings.fov_0_index, + imaging_depth=self.user_settings.fov_0_imaging_depth, + targeted_structure=( + self.user_settings.fov_0_targeted_structure + ), + fov_coordinate_ml=self.user_settings.fov_0_coordinate_ml, + fov_coordinate_ap=self.user_settings.fov_0_coordinate_ap, + fov_reference=self.user_settings.fov_0_reference, + fov_width=int( + siHeader.metadata["hRoiManager"]["pixelsPerLine"] + ), + fov_height=int( + siHeader.metadata["hRoiManager"]["linesPerFrame"] + ), + magnification=self.user_settings.fov_0_magnification, + fov_scale_factor=float( + siHeader.metadata["hRoiManager"]["scanZoomFactor"] + ), + frame_rate=float( + siHeader.metadata["hRoiManager"]["scanFrameRate"] + ), + ), + ], + ) + return Session( + experimenter_full_name=self.user_settings.experimenter_full_name, + session_start_time=self.user_settings.session_start_time, + session_end_time=self.user_settings.session_end_time, + subject_id=self.user_settings.subject_id, + session_type=self.user_settings.session_type, + iacuc_protocol=self.user_settings.iacuc_protocol, + rig_id=self.user_settings.rig_id, + data_streams=[data_stream], + stimulus_epochs=[ + StimulusEpoch( + stimulus=PhotoStimulation( + stimulus_name="PhotoStimulation", + number_groups=( + self.user_settings.num_of_photo_stim_groups + ), + groups=[ + PhotoStimulationGroup( + group_index=( + self.user_settings.photo_stim_groups[0][ + "group_index" + ] + ), + number_of_neurons=int( + np.array( + photostim_groups[0]["rois"][1][ + "scanfields" + ]["slmPattern"] + ).shape[0] + ), + stimulation_laser_power=int( + photostim_groups[0]["rois"][1][ + "scanfields" + ]["powers"] + ), + number_trials=( + self.user_settings.photo_stim_groups[0][ + "number_trials" + ] + ), + number_spirals=int( + photostim_groups[0]["rois"][1][ + "scanfields" + ]["repetitions"] + ), + spiral_duration=photostim_groups[0]["rois"][1][ + "scanfields" + ]["duration"], + inter_spiral_interval=photostim_groups[0][ + "rois" + ][2]["scanfields"]["duration"], + ), + PhotoStimulationGroup( + group_index=( + self.user_settings.photo_stim_groups[1][ + "group_index" + ] + ), + number_of_neurons=int( + np.array( + photostim_groups[0]["rois"][1][ + "scanfields" + ]["slmPattern"] + ).shape[0] + ), + stimulation_laser_power=int( + photostim_groups[0]["rois"][1][ + "scanfields" + ]["powers"] + ), + number_trials=( + self.user_settings.photo_stim_groups[1][ + "number_trials" + ] + ), + number_spirals=int( + photostim_groups[0]["rois"][1][ + "scanfields" + ]["repetitions"] + ), + spiral_duration=photostim_groups[0]["rois"][1][ + "scanfields" + ]["duration"], + inter_spiral_interval=photostim_groups[0][ + "rois" + ][2]["scanfields"]["duration"], + ), + ], + inter_trial_interval=( + self.user_settings.photo_stim_inter_trial_interval + ), + ), + stimulus_start_time=( + self.user_settings.stimulus_start_time + ), + stimulus_end_time=self.user_settings.stimulus_end_time, + ) + ], + ) + + @classmethod + def from_args(cls, args: list): + """ + Adds ability to construct settings from a list of arguments. + Parameters + ---------- + args : list + A list of command line arguments to parse. + """ + + parser = argparse.ArgumentParser() + parser.add_argument( + "-i", + "--input-source", + required=False, + type=str, + help="Directory where tif files are located", + ) + parser.add_argument( + "-o", + "--output-directory", + required=False, + default=".", + type=str, + help=( + "Directory to save json file to. Defaults to current working " + "directory." + ), + ) + parser.add_argument( + "-u", + "--user-settings", + required=True, + type=json.loads, + help=( + r""" + Custom settings defined by the user defined as a json + string. For example: -u + '{"experimenter_full_name":["John Smith","Jane Smith"], + "subject_id":"12345", + "session_start_time":"2023-10-10T10:10:10", + "session_end_time":"2023-10-10T18:10:10", + "stream_start_time": "2023-10-10T11:10:10", + "stream_end_time":"2023-10-10T17:10:10", + "stimulus_start_time":"12:10:10", + "stimulus_end_time":"13:10:10"}' + """ + ), + ) + job_args = parser.parse_args(args) + user_settings_from_args = UserSettings(**job_args.user_settings) + return cls( + input_source=Path(job_args.input_source), + output_directory=Path(job_args.output_directory), + user_settings=user_settings_from_args, + ) + + +if __name__ == "__main__": + sys_args = sys.argv[1:] + etl = BergamoEtl.from_args(sys_args) + etl.run_job() diff --git a/src/aind_metadata_mapper/core.py b/src/aind_metadata_mapper/core.py index fda677ae..a575dad9 100644 --- a/src/aind_metadata_mapper/core.py +++ b/src/aind_metadata_mapper/core.py @@ -5,7 +5,7 @@ from abc import ABC, abstractmethod from os import PathLike from pathlib import Path -from typing import Any +from typing import Any, Union from aind_data_schema.base import AindCoreModel from pydantic import validate_model @@ -15,7 +15,9 @@ class BaseEtl(ABC): """Base etl class. Defines interface for extracting, transforming, and loading input sources into a json file saved locally.""" - def __init__(self, input_source: PathLike, output_directory: Path): + def __init__( + self, input_source: Union[PathLike, str], output_directory: Path + ): """ Class constructor for Base etl class. Parameters diff --git a/tests/resources/bergamo/cropped_neuron50_00001.tif b/tests/resources/bergamo/cropped_neuron50_00001.tif new file mode 100644 index 0000000000000000000000000000000000000000..b05bcbb5565442be141e5d3e8b61a8813f5b4849 GIT binary patch literal 2622 zcmZWrO>dP&6h3oi-U}L2LuzSFDh;tk3rTBRiU>AsrJ^NZp`s|F)v5&Cw4e#G(O{4o zVuXcm(1e8=gKpKtxH3WGUvTZlKj6ZRNqwF(A9rp&&7C>#`Tm$Q)A{+`vQODBFj7&LVXZ4O+_jfT>IA}Wbn&Fc@Kb$utFK8@^GPlLt zOZS*OfSRLjix`wF6Zb2wQQ!E0SmIem!q11`S_{U%hP5BRd67@VdmMldqh7VTCcs%w zH%K#u?0C0uoK`n`Z1)aDMHQS6CTOb1vVj;mCa3wQE(BskBFG`~VPR%%x5!FVfj6E4zW zkU89xrYd5yy}rjxIh?kJrOCBxnFT#Jy@=kk)1A?Xyfmqye*>>p8*rNf4oI)XO4*j0&jsUM4;@o*2@x@RY7c zZ9JD5rZ6_4)$)NJEpu>yf2q3l&fC9l`~jz_0i5BLJpqipyzB^m8_X ziA9O4Ohkrw3{msY?c|u~L#T0v34IoWgN9(d73 zeFVILQ*|Edeuh_*vqv{_@BuTQ!s68nfB9P^&L&RYE&+K}C!$j$9*QjgZ{K&&$A1Ln z8Ff-W;OTWk0TOIr5*R>`hQkB?ASwjrV^IJ%ZU!{Wz3vu<``X$l^TESwyaI9K&@p~8 z#p?~wy@!+I>0lYZ1mCbVu{{%!WJCT==G#7vX@@1d##DO#EX-et;dzhaY(j+xgqK;v eTZ19KjJBMrxo72&|6ml4#4@PvT+JeWQ~m>h4q{ON literal 0 HcmV?d00001 diff --git a/tests/resources/bergamo/example_description0.txt b/tests/resources/bergamo/example_description0.txt new file mode 100644 index 00000000..1d3244eb --- /dev/null +++ b/tests/resources/bergamo/example_description0.txt @@ -0,0 +1,16 @@ +frameNumbers = 1 +acquisitionNumbers = 1 +frameNumberAcquisition = 1 +frameTimestamps_sec = 0.000000000 +acqTriggerTimestamps_sec = -0.000021560 +nextFileMarkerTimestamps_sec = -1.000000000 +endOfAcquisition = 0 +endOfAcquisitionMode = 0 +dcOverVoltage = 0 +epoch = [2023 7 24 14 14 17.854] +auxTrigger0 = [] +auxTrigger1 = [] +auxTrigger2 = [] +auxTrigger3 = [] +I2CData = {} + \ No newline at end of file diff --git a/tests/resources/bergamo/example_metadata.txt.gz b/tests/resources/bergamo/example_metadata.txt.gz new file mode 100644 index 0000000000000000000000000000000000000000..17463649665b3792942270f9c317952ba4916ddd GIT binary patch literal 76696 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�c{692+FQTH+v6rUmN} zuCT4F=cD0HZidze$dp}y-0y%HH^^@((7VxTWxIsuoO4J#9H7PSy0 zE8LKxgSuk{i)z}wSz=tru0r&;h=(M`rF|9FEgq82i*X$}1=liUj*D@rHNa6ymQ3am z9GYPesSwyj(S{_oL9FW*Xl_V<@&J#H*$YQ$Z|?L#_V&VdF#{-7s1#Q*=fj z)H^dslj+^!mxqOjadGWO`=Pnv#DyaC{kU}y<<&cr=MKwl8K<&p595+w*2dmZg(z?4 z#A#=4E~*n-%55luc)Bk-%@&0!%xK4r^Kk9_sq;egR#eS4Hj3;a97apoEHLj{vduM2 zU|w*t!xcEYlI-l45|~$>>_w0Z$h&N6?Cuhf=WS~0@-U#G%GBCcF0dik)ZWS^uz_sq z_VYwwgP*CVAvbQo z=#ABVhh1HR!h5~uD@8K57Q$EJvaX#6?Ot=tbRJOH(=}0A@*Ihq(PmoQ6!`o)s~=3g zp#6t=52+?!*k9B0fmgp`3-XGnM$M-=#6H^@HkOVYW7zZkX6IuG)6QQ5@z1H!#TxX@%vyw7BshTy_Wvm&vwH z8DjY~nM)pv_)_zCtWzTkim{H+;tUJiPUd?Q6^W73janS1zeoIDsSHvY;`i>0iula$ zwORCgC;#mC#((DbdO%-;Ix=7Do)v|@hM;fod$D=o_o^d(4J(nphG1mArUrhmI?~r5 zh4eM>g5SFh>1*f(zn2;5Yxo11uNi{hE4tj*u~X&+h2$MknDBF)De+nZ)0n5 z0(+_J9GaE6&L^hr_JZv&3Ble>dG?e8Ge1Xy>H8(}68@UJ)m^;Dgm-jDBen_Y(U#A;r%r}Vxt!wmX&uEM}tw^M%Y?YmCkIqaIo*2ez5&dbUqIHcSQJLSj^PUJ{ z(yUDj)7fsXFw8uiV~NP#pRTq1LjTZ}LwThA4C%^gH8o8B)Ri;wp)05VPhC0QpLgZR z*0gRzx^jLSt%9x`JIQb8${9hra*QrQssZWB(MP&+P)Ju!A9UqVk*=IG(3K-L4)eAG zq$@`NW^q|aSB^JyOwk_=tTR4_2>=0uki#+57n#als_O&9KtrH)TWyvfP7_eoV64(!Z+3aPx_ZQ6# zUC+*My4*hQ%%@pagcX{a78B3WnUD3-}yAFq4|0Ng(+#iaL< zYQIkL)P8#JuE-MKot|EDc9XF!9P3}CRtD8;&1gtYn$o+;Sb~{C{cu5_QL|>b50zeG zdcEI0c2W6W4>pz+N*RrMpOaEk_Zm{Yl9lpacFMgRGmL7}=mH9Hfweud|{~yF0UTP3MkeEZ@E36a59P+*)=8%QN9NdtY!%B!bFe5Ps2PEe38^j#c zk(k3pB<4VYm_r#7b1;RN0|ydw7`_F3Ub7r?SQ@r1#~hYp4&M-SD4=?D>JnemLNJtr zBW2kwQbKH)B>N7IAR~AY&V%Jzqp z^AMY=u)2irc;FsMLC zWzaq>Rs8)S+j1%Taw+<9Df)j!Df)*cHhim~uTS+$+J>jahBIb8YZ;G4*wsi5|8coq z7pZk$uzEwFkypNbthsW$R_YOfNZFM)w6lKJ;`(XTiBfyzb(nVh#3D9K)H$OR!72Sz zCqY-1?ATPJ*;p^eri!-GjYX<4IUd?H|26L@@1OQ#ypkh4?lVTaM6fck{cbbzw3ca~ z1I1YW0xw?e(JE4cPLI|zhOq)a2Q%68+4SACv3+BWH0t-GT0Op$IVY)p=5|-I4M`Up zyT)WrAG`Jzr{aZ289kmMuG=yRlcZodB3K0C;!>PoHldGDZcbd=Lc7>Y>sXk8n)c4 zLnF#-8vC^8x6`Y)_Jp*Ie=>QQU{A!qv;8}88D##|WtjPEmqF9VUP{BT)~=k=J~U8! zVlL2-RM0NP$5Bqwqy4@RDO0-E623HBTY3*g zqp4xir`g)S^BxKsyoX{dGFwX-4T0I3Jayk(!HQw~fue l#7!Z7jmbYPb{QkYat|%y