%$CDAq.cpp'// CDan.cpp : Defines the initialization routines for the DLL. // 2007-90 #include "stdafx.h" #include "LMFPreEventData.h" #include "CoboldDll.h" #include "CDan.h" #include "math.h" //#include "CDAq.h" #include "LMInfo.h" #include "SharedClass.h" #include "UserSP.h" #include "CoordinatesMath.h" #include "Coltrims.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #ifndef _DEBUG extern "C" IMAGE_DOS_HEADER __ImageBase; #endif extern CDoubleArray *i_det_sum_correction_table_x[3]; extern CDoubleArray *i_det_sum_correction_table_y[3]; extern CDoubleArray *i_det_pos_correction_table_x[3]; extern CDoubleArray *i_det_pos_correction_table_y[3]; #ifdef FULL_COLTRIMS_DAN extern CDoubleArray *e_det_sum_correction_table_x[3]; extern CDoubleArray *e_det_sum_correction_table_y[3]; extern CDoubleArray *e_det_pos_correction_table_x[3]; extern CDoubleArray *e_det_pos_correction_table_y[3]; #endif ///////////////////////////////////////////////////////////////////////////// // CCDanApp BEGIN_MESSAGE_MAP(CCDanApp, CWinApp) //{{AFX_MSG_MAP(CCDanApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCDanApp construction CUserSpectrum *pUserSP; CSourceCodeInformation *pCodeInformation; ///////////////////////////////////////////////////////////////////////////// // The one and only CCDanApp object CCDanApp theApp; CString *pDllFilePathName; typedef SharedClass * (*MyProc4)(); MyProc4 Get_shared_class_instance; extern CoordinatesParser_class * CoordinatesParser_instance; CCDanApp::CCDanApp() { // get the dll's loaded path-file name pDllFilePathName = new CString(""); char *pcStr = new char[MAX_PATH]; GetModuleFileName((HINSTANCE)&__ImageBase,pcStr,MAX_PATH); pDllFilePathName->Append(pcStr); if(pcStr) { delete[] pcStr; pcStr = NULL; } } BOOL CCDanApp::InitInstance() { if(!CWinApp::InitInstance()) return FALSE; // prepare SharedClass and UserSHM this->SharedClassInstance = 0; this->UserSHM_DLL_is_bound = false; this->UserSHM_lib_handle = 0; BindUserSHMDll(); // prepare user access to certain spectrum commands pUserSP = (CUserSpectrum *)new CUserSpectrum(); // prepare source code information pCodeInformation = (CSourceCodeInformation *)new CSourceCodeInformation(); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "CDAN", "CDAq.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "DANUTILITIES", "DanUtilities.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "DAN", "DAn.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "STDAFX", "StdAfx.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "WRITE_FILE", "Write_File.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "DAN_DANUSERUTILITIES", "DAN_UserUtilities.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "CDAN", "CDAn.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "CHECKPROCESS", "CheckProcess.H")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "COBOLDDLL", "CoboldDll.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "LMFPREEVENTDATA", "LMFPreEventData.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "LMINFO", "LMInfo.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "RESOURCE", "resource.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "SHAREDCLASS", "SharedClass.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "STDAFX", "StdAfx.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "USERSP", "UserSP.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "COLTRIMS", "Coltrims.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "RESORT64C", "resort64c.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "WRITE_FILE", "Write_File.h")); for (__int32 i=0;i<3;++i) { if (i_det_sum_correction_table_x[i]) i_det_sum_correction_table_x[i]=0; if (i_det_sum_correction_table_y[i]) i_det_sum_correction_table_y[i]=0; if (i_det_pos_correction_table_x[i]) i_det_pos_correction_table_x[i]=0; if (i_det_pos_correction_table_y[i]) i_det_pos_correction_table_y[i]=0; #ifdef FULL_COLTRIMS_DAN if (e_det_sum_correction_table_x[i]) e_det_sum_correction_table_x[i]=0; if (e_det_sum_correction_table_y[i]) e_det_sum_correction_table_y[i]=0; if (e_det_pos_correction_table_x[i]) e_det_pos_correction_table_x[i]=0; if (e_det_pos_correction_table_y[i]) e_det_pos_correction_table_y[i]=0; #endif } return TRUE; } __int32 CCDanApp::ExitInstance() { for (__int32 i=0;i<3;++i) { if (i_det_sum_correction_table_x[i]) {delete i_det_sum_correction_table_x[i]; i_det_sum_correction_table_x[i]=0;} if (i_det_sum_correction_table_y[i]) {delete i_det_sum_correction_table_y[i]; i_det_sum_correction_table_y[i]=0;} if (i_det_pos_correction_table_x[i]) {delete i_det_pos_correction_table_x[i]; i_det_pos_correction_table_x[i]=0;} if (i_det_pos_correction_table_y[i]) {delete i_det_pos_correction_table_y[i]; i_det_pos_correction_table_y[i]=0;} #ifdef FULL_COLTRIMS_DAN if (e_det_sum_correction_table_x[i]) {delete e_det_sum_correction_table_x[i]; e_det_sum_correction_table_x[i]=0;} if (e_det_sum_correction_table_y[i]) {delete e_det_sum_correction_table_y[i]; e_det_sum_correction_table_y[i]=0;} if (e_det_pos_correction_table_x[i]) {delete e_det_pos_correction_table_x[i]; e_det_pos_correction_table_x[i]=0;} if (e_det_pos_correction_table_y[i]) {delete e_det_pos_correction_table_y[i]; e_det_pos_correction_table_y[i]=0;} #endif } // release UserSP if(pUserSP) { delete pUserSP; pUserSP = NULL; } // release source CodeInformation if(pCodeInformation) { pCodeInformation->coaCodeInformation.RemoveAll(); pCodeInformation->coaCodeInformation.FreeExtra(); delete pCodeInformation; pCodeInformation = NULL; } // release UserSHM if(this->UserSHM_lib_handle) { FreeLibrary(UserSHM_lib_handle); UserSHM_lib_handle = 0; UserSHM_DLL_is_bound = false; } return CWinApp::ExitInstance(); } ///////////////////////////////////////////////////////////////////////////// // Local variables used for Event Time functions double _dOldEventTime; double _dStartEventTime; bool CCDanApp::BindUserSHMDll() { if(UserSHM_DLL_is_bound) return true; if(!UserSHM_lib_handle) UserSHM_lib_handle = LoadLibrary("UserSHM.dll"); if(UserSHM_lib_handle) { Get_shared_class_instance = (MyProc4)GetProcAddress(UserSHM_lib_handle,"SHMGetSharedClassInstance"); SharedClassInstance = Get_shared_class_instance(); if(SharedClassInstance) UserSHM_DLL_is_bound = true; else UserSHM_DLL_is_bound = false; if(SharedClassInstance) { SharedClassInstance->csDAnNameAndPath = CString(theApp.m_pszHelpFilePath); SharedClassInstance->csDAnNameAndPath = SharedClassInstance->csDAnNameAndPath.Left(SharedClassInstance->csDAnNameAndPath.GetLength()-3); SharedClassInstance->csDAnNameAndPath += CString("dll"); } } else { AfxMessageBox(CString("UserSHM.dll not found by DAn")); } return UserSHM_DLL_is_bound; } ///////////////////////////////////////////////////////////////////////////// // DAnGetDllPathName // ----------------- // returns name and path of the loaded dll CString &DAnGetDllPathName() { return *pDllFilePathName; } ///////////////////////////////////////////////////////////////////////////// // GetDeltaEventTime // ----------------- // Calculate the time between two events // returns time in seconds (always 0 for the first event!) double GetDeltaEventTime(LMFPreEventData &preEventData, CDoubleArray &Parameter) { LARGE_INTEGER liTime = preEventData.TimeStamp; double dTimeScaling = Parameter[4]; // frequency, in counts per second, of the high-resolution performance counter double dEventTime = (double)liTime.QuadPart; dEventTime /= dTimeScaling; double dDeltaEventTime = _dOldEventTime != 0.0 ? dEventTime - _dOldEventTime : 0.0; _dOldEventTime = dEventTime; return dDeltaEventTime; } ///////////////////////////////////////////////////////////////////////////// // GetEventTime // ------------ // Calculate the time between the aktual event and the first event // returns time in seconds double GetEventTime(LMFPreEventData &preEventData, CDoubleArray &Parameter) { LARGE_INTEGER liTime = preEventData.TimeStamp; double dTimeScaling = Parameter[4]; // frequency, in counts per second, of the high-resolution performance counter double dEventTime = (double)liTime.QuadPart; dEventTime /= dTimeScaling; if(_dStartEventTime == 0) _dStartEventTime = dEventTime; return (dEventTime - _dStartEventTime); } ///////////////////////////////////////////////////////////////////////////// // CorrectGP1NDL // ------------- // corrects the differential nonlinearity of the GP1/HM1 module // returns the corrected double CorrectGP1NDL(double dChannel, double dCorrectionValue) { double dChStart = dChannel; double dOldChannel = dChannel; __int32 iRand; double dRand; bool bMoved = false; if(fmod(dChannel,2.) == 0) { iRand = rand(); dRand = (double)iRand / (double)(RAND_MAX); if(dRand <= dCorrectionValue) { dChannel += 1.; bMoved = true; } } if(bMoved) return dChannel; else return dOldChannel; } CDAN_API CSourceCodeInformation* DAnGetSourceCodeInformation() { return pCodeInformation; }DanUtilities.cpp=/////////////////////////////////////////////////////////////////////////// // DAn utilities called from CoboldPC DAn // (c) by Klaus Ullmann-Pfleger & RoentDek Handels GmbH // // V1.0 - 31.01.2002 /////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "LMFPreEventData.h" #include "DanUtilities.h" #include "CoboldDll.h" #include #include #include #include #include "CDAn.h" //#include "CDAq.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif //////////////////// // RotateXY function // ----------------- // rotate an point arout a given centerpoint // // input // ----- // dX, dY = Point to rotate // dAngle = Rotation angle (mathematical) in deg or radian // iAFormat = Angle format (deg or radian, see AF_* in definition file) // dCX, dCY = Center of rotation // // output // ------ // dRX, dRY = Rotated dX, dY // void RotateXY(double dX, double dY, double dAngle, __int32 iAFormat, double dCX, double dCY, double &dRX, double &dRY) { dAngle *= -1; if(dAngle != 0.) { // if angle is in deg then convert it to radian if(iAFormat == AF_DEG || iAFormat == AF_DEG0) dAngle = (dAngle / 180.0) * PI; // move x,y to center of rotation point double x = dX - dCX; double y = dY - dCY; // rotation values (rotation matrix coefficient and centerpoint/offset) double dSin = sin(dAngle) ; double dCos = cos(dAngle) ; // rotate and decenter dRX = x*dCos + y*dSin + dCX; dRY = -x*dSin + y*dCos + dCY; } else { dRX = dX; dRY = dY; } } ////////////// // OrthoToRPhi // ----------- // Convert orthogonal coordinates to r-phi coordinates // if dR < 1E-15 then set phi angle to 0 // if abs(y) < 1E-15 then the quadrant can not be corrected!!! // // input // ----- // dX, dY = Point to rotate // iAFormat = Angle format (deg or radian, see AF_* in definition file) // dCX, dCY = Center of rotation // // output // ------ // dR, dPhi = r-phi coordinates // // void OrthoToRPhi(double dX, double dY, __int32 iAFormat, double dCX, double dCY, double &dR, double &dPhi) { // move x,y to center of rotation point double x = dX - dCX; double y = dY - dCY; // calculate radius dR = sqrt(x*x + y*y); // if radius is to small then set phi to 0 if(dR > 1e-15) { // if y is to small then quadrant correction is not possible if(fabs(y) > 1e-15) dPhi = acos(x / (dR)) * y/fabs(y); else dPhi = acos(x / (dR)); } else dPhi = 0.; // convert angle to specified dataformat if(iAFormat == AF_RAD) { if(dPhi > PI) dPhi -= (2.0*PI); } if(iAFormat == AF_DEG || iAFormat == AF_DEG0) { dPhi = dPhi / PI * 180.; if(iAFormat == AF_DEG) { if(dPhi > 180.0) dPhi -= 360.0; } } } LPCTSTR DAnGetLastLMFName() { // Get DAq Module address (dependent on Cobold.dll!!!) CString csLastDAqPathName; csLastDAqPathName = GetActualDAqPathName(); HMODULE myLib = LoadLibrary(csLastDAqPathName); // "DAq"); if(!myLib) { AfxMessageBox("No DAq module and/or Cobold.Dll found"); return ""; } // Now the Function name typedef LPCTSTR (*MyProc)(CArchive *); MyProc GetLastLMFName; GetLastLMFName = (MyProc)GetProcAddress(myLib,"DAqGetLastLMFName"); if(!GetLastLMFName) { AfxMessageBox("Could not find DAqGetLastLMFName routine"); return ""; } // and execute function static CString myFilePathName; myFilePathName = CString(GetLastLMFName(NULL)); // at the end... release the libraries // and invalidate the function GetLastLMFName = NULL; FreeLibrary(myLib); return LPCTSTR(myFilePathName); } double Rnd() { double r1 = double(rand())/RAND_MAX; double r2 = double(rand())/RAND_MAX; return r1 + r2 / RAND_MAX; }DAn.cpp+#pragma warning(disable : 4996) #include "Coltrims.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #include "LMFPreEventData.h" #include "UserSP.h" extern CUserSpectrum *pUserSP; extern CCDanApp theApp; CDoubleArray *i_det_sum_correction_table_x[3]; CDoubleArray *i_det_sum_correction_table_y[3]; CDoubleArray *i_det_pos_correction_table_x[3]; CDoubleArray *i_det_pos_correction_table_y[3]; #ifdef FULL_COLTRIMS_DAN CDoubleArray *e_det_sum_correction_table_x[3]; CDoubleArray *e_det_sum_correction_table_y[3]; CDoubleArray *e_det_pos_correction_table_x[3]; CDoubleArray *e_det_pos_correction_table_y[3]; #endif /////////////////////////////////////////////// // Definition of global variables: /////////////////////////////////////////////// __int32 ipTimeStamp; // parameter 2 TimeStamp information type double dpTimeScaling; // Time Scaling (ticks per second of the OS's High Performance Counter) CTime ctpLMFStartTime; // Start Time of LMF __int32 iDAQ_ID; // parameter 8 __int32 iTriggerCommonStopMode; // parameter 14 double dpTDCResolution; // parameter 20 __int32 ipTDCDataType; // parameter 21 __int32 ipNumberOfChannels; // parameter 32 __int32 ipNumberOfChannels2; // parameter 34 only for 2TDC8 (not for 2 synced TDC8HP) __int32 ipMaximumNumberOfHits; // parameter 33 __int32 iDataFormat; // parameter 40 __int32 ipStartDAQData; // parameter 105 __int32 ipStartDANData; // parameter 106 double dStartDanCoordinates; __int32 ipWriteOutput; // parameter 108 __int32 iDataOffset; __int32 iIndexDataOffset; __int32 ipStartDAqTDCData; __int32 EventCounter; // EventCounter for the data in LM-file bool software_cooling; // parameter 207 __int32 cnt[25]; // number of detected signals for each channel double tdc_ns[25][MAX_NUM_OF_PARTICLES]; Write_File * FileWriter; #ifdef FULL_COLTRIMS_DAN __int32 iTime_zero_channel; detector_parameters_class e_det; #endif detector_parameters_class i_det; spectrometer_class spec; CString myInfoString; particle_class ion[MAX_NUM_OF_PARTICLES]; #ifdef FULL_COLTRIMS_DAN particle_class electron[MAX_NUM_OF_PARTICLES]; #endif CoordinatesParser_class * CoordinatesParser_instance; RateAveragingClass *racpRateAveragingInstance; ////////////////////////////////// // Get user parameters from CCF // ////////////////////////////////// bool GetUserParameters(__int32 address_offset, CDoubleArray &Parameters) { for (__int32 i=0;i MAX_NUM_OF_PARTICLES) return; if (number_of_particle < number_of_particles) { for (__int32 i = number_of_particle;i 0.5) { EventCounter = 0; Parameters[107-1] = 0.; } if(racpRateAveragingInstance) if(theApp.SharedClassInstance) { racpRateAveragingInstance->ui32EventCounter += (unsigned __int32)(theApp.SharedClassInstance->rate); if(ipTimeStamp) racpRateAveragingInstance->CheckTimestamp(AbsoluteEventTime); } // get the TDC data and convert it to nanoseconds for (__int32 i=0;i MAX_NUM_OF_PARTICLES) n = MAX_NUM_OF_PARTICLES; cnt[i] = n; for (__int32 j = 0; j < n;++j) tdc_ns[i][j] = dpTDCResolution * EventData[ipStartDAqTDCData+i*(ipMaximumNumberOfHits+1)+j+1]; } if (iDAQ_ID == DAQ_ID_TDC8 || iDAQ_ID == DAQ_ID_2TDC8) { bool bDoReverse = false; for (__int32 ch=0;ch 2) { if (tdc_ns[ch][1] > tdc_ns[ch][0]) { if (iTriggerCommonStopMode) {bDoReverse = true; break;} } else { if (!iTriggerCommonStopMode) {bDoReverse = true; break;} } } } if (bDoReverse) { for (__int32 ch=0;ch>1); for (__int32 i=0;i 1) { if (cnt[7] == 2) { // die Rekonstruktion hat also 2 Teilchen gebastelt. Wir wollen aber nur den ersten. tdc_ns[7][1] = second_hit; i_det.number_of_particles = 1; } if (cnt[7] == 1) { // die Rekonstruktion hat ein Teilchen gefunden. Also muessen wir nur die alten Daten einfuegen. tdc_ns[7][1] = second_hit; cnt[7] = 2; } if (fabs(tdc_ns[7][0]) > 8.) { // die Rekonstruktion soll uns ja nur beim Ort helfen. Wenn sie aber viel am MCP-signal veraendert hat, dann ist irgendwas schiefgegangen. cnt[7] = 0; i_det.number_of_particles = 0; } if (cnt[7] == 0) { // wenn kein Teilchen gefunden wurde, dann soll alles geloescht werden, damit es keinen Eintrag im Spektrum gibt. tdc_ns[7][0] = -1.e50; tdc_ns[7][1] = -1.e90; } } // old version pre 20.09.2011 //double second_hit = tdc_ns[7][1]; // if (i_det.use_this_detector) ProcessDetector(i_det,cnt,tdc_ns,spec); #ifdef FULL_COLTRIMS_DAN if (e_det.use_this_detector) ProcessDetector(e_det,cnt,tdc_ns,spec); #endif //tdc_ns[7][1] = second_hit; ////////////////////////////////////////////////////////////////// // write all data back to coordinate transfer array of CoboldPC // ////////////////////////////////////////////////////////////////// __int32 address_counter = ipStartDANData; EventData[address_counter++] = AbsoluteEventTime; EventData[address_counter++] = DeltaEventTime; EventData[address_counter++] = double(EventCounter)+0.0001; EventData[address_counter++] = double(true); if(racpRateAveragingInstance) EventData[address_counter++] = racpRateAveragingInstance->ui32Rate; // rate else EventData[address_counter++] = 0.; // rate #ifdef FULL_COLTRIMS_DAN for (__int32 i=0;i<20;++i) EventData[address_counter++] = event_is_good ? cnt[i] : 0; #else for (__int32 i=0;i<20;++i) EventData[address_counter++] = cnt[i]; #endif OutputToEventDataArray(i_det, address_counter, EventData, cnt, tdc_ns); double debg; if (cnt[6]>1) { // pulse hight gamma debg=tdc_ns[6][1]-tdc_ns[6][0]; EventData[address_counter++] = debg; } else { EventData[address_counter++] = -1.e180; } if (cnt[6]>0 && cnt[7]>1) {// TOF gamma EventData[address_counter++] = tdc_ns[7][1]-tdc_ns[6][0]; } else { EventData[address_counter++] = -1.e180; } if (i_det.use_this_detector) WeighParameter[1-1] = i_det.detector_map_fill; else WeighParameter[1-1] = 0.; #ifdef FULL_COLTRIMS_DAN if (e_det.use_this_detector) WeighParameter[2-1] = e_det.detector_map_fill; else WeighParameter[2-1] = 0.; #endif //////////////////////////////////////////////// // write ASCII or LMF output to hard disc // //////////////////////////////////////////////// if (FileWriter) { if (i_det.use_this_detector) shift_detector_times(i_det,-1,cnt,tdc_ns,spec); #ifdef FULL_COLTRIMS_DAN if (e_det.use_this_detector) shift_detector_times(e_det,-1,cnt,tdc_ns,spec); #endif if (ipWriteOutput == 1) FileWriter->WriteASCIIData((__int32*)cnt,(double*)tdc_ns); if (ipWriteOutput == 2) FileWriter->WriteLMFData( (__int32*)cnt,(double*)tdc_ns,EventData,preEventData.TimeStamp); if (ipWriteOutput == 3) { char temp_string[512]; __int32 max_num = 5; __int32 n = i_det.number_of_particles <= max_num ? i_det.number_of_particles : max_num; sprintf(temp_string,"%i",n); for (__int32 i=0;iFile_Archive->WriteString(temp_string); } } if (CoordinatesParser_instance) CoordinatesParser_instance->execute_all_commands(); return true; } /////////////////////// // AnalysisFinalize // /////////////////////// // is called when analysis is stopped (not paused!) CDAN_API __int32 AnalysisFinalize(CDoubleArray &EventData,CDoubleArray &Parameters, CDoubleArray &WeighParameter) { if (FileWriter) {delete FileWriter; FileWriter = 0;} if (i_det.use_this_detector) Finalize_Detector(i_det); #ifdef FULL_COLTRIMS_DAN if (e_det.use_this_detector) Finalize_Detector(e_det); #endif if(theApp.SharedClassInstance) theApp.SharedClassInstance->bDAnIsRunning = false; if(racpRateAveragingInstance) { delete racpRateAveragingInstance; racpRateAveragingInstance = NULL; } if (pUserSP) { delete pUserSP; pUserSP = NULL; } return true; } /* Todo: 4) Fish-wiggle-Histos 6) Add Gap functionality for HEX-detectors with a hole */ StdAfx.cpp// stdafx.cpp : source file that includes just the standard includes // CDan.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" Write_File.cppFlush(); File_Archive->Close(); delete File_Archive; } if (output_file) { output_file->Flush(); output_file->Close(); delete output_file; } parameters_copy.RemoveAll(); } ////////////////////////////////////////////////////////// void Write_File::write_LMF_header_part1() ////////////////////////////////////////////////////////// { assert(!(number_of_events > 0 && LMUserdefinedheadersize == 0)); File_Archive->Flush(); output_file->Flush(); output_file->SeekToBegin(); __int32 timeinfo = (__int32)(parameters_copy[2-1]+0.1); // parameter 2 if ((iDAQ_ID == 0x8 || iDAQ_ID == 0x10) && LMF_version <8) { *File_Archive << archive_flag; // archive flag *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) *File_Archive << number_of_coordinates; // Number of coordinates *File_Archive << LMHeadersize; *File_Archive << LMUserdefinedheadersize; *File_Archive << number_of_events; } if ((iDAQ_ID == 0x8 || iDAQ_ID == 0x10) && LMF_version >=8) { *File_Archive << archive_flag; // archive flag *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) *File_Archive << number_of_coordinates; // Number of coordinates *File_Archive << LMHeadersize; *File_Archive << LMUserdefinedheadersize; *File_Archive << number_of_events; } if (iDAQ_ID == 2) { *File_Archive << archive_flag; // archive flag *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) *File_Archive << number_of_coordinates; // Number of coordinates *File_Archive << LMHeadersize; *File_Archive << LMUserdefinedheadersize; *File_Archive << number_of_events; } File_Archive->Flush(); output_file->Flush(); } ////////////////////////////////////////////////////////// void Write_File::write_TDC8HP_Cobold2008R1_header() ////////////////////////////////////////////////////////// { LMUserdefinedheadersize = sizeof(unsigned __int64)*5 + sizeof(unsigned __int32)*1 + sizeof(__int32)*32 + sizeof(double)*11 + sizeof(bool)*9 + csDAqInfo.GetLength() + csConfigFile.GetLength() + csINLFile.GetLength() + csDNLFile.GetLength(); // user defined header LMUserdefinedheadersize += sizeof(__int32); write_LMF_header_part1(); // Now write rest of Header: *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; File_Archive->Flush(); File_Archive->GetFile()->Flush(); LMHeadersize = File_Archive->GetFile()->GetPosition(); write_LMF_header_part1(); *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; // Now write UserHeader: *File_Archive << archive_flag; // LMF file version ID *File_Archive << (unsigned __int64)LMUserdefinedheadersize; // aktual header length always 1st value *File_Archive << (__int32)20080507; // Version is always 2nd value *File_Archive << (__int32)0x000008; // HPTDC // DAQ_ID is always 3ed value *File_Archive << parameters_copy[4]; // frequency is always 4th value *File_Archive << (__int32)(parameters_copy[0] + 0.1); // IO address (parameter 1) always 5th value *File_Archive << (__int32)(parameters_copy[1] + 0.1); // TimeInfo (parameter 2) always 6th value *File_Archive << (__int32)csDAqInfo.GetLength(); // Length of DAQInfo always 7th value File_Archive->Write(LPCTSTR(csDAqInfo),csDAqInfo.GetLength()); // DAQInfo always 8th valu *File_Archive << (__int32)0x0007; // LMFVersion always 9th value *File_Archive << (__int32)(parameters_copy[7-1] + 0.1); *File_Archive << parameters_copy[20-1]; *File_Archive << (__int32)(parameters_copy[21-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[32-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[33-1] + 0.1); *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) /// start of TDC configuration *File_Archive << (__int32)(parameters_copy[60-1] + 0.1); // CONFIG file flag *File_Archive << (unsigned __int64)(parameters_copy[61-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[62-1] + 0.1); *File_Archive << (__int32)(parameters_copy[63-1] + 0.1); *File_Archive << (__int32)(parameters_copy[64-1] + 0.1); // trigger channel *File_Archive << (__int32)(parameters_copy[65-1] + 0.1); *File_Archive << (__int32)(parameters_copy[66-1] + 0.1); *File_Archive << (__int32)(parameters_copy[67-1] + 0.1); *File_Archive << parameters_copy[68-1]; *File_Archive << parameters_copy[69-1]; *File_Archive << parameters_copy[70-1]; *File_Archive << (__int32)(parameters_copy[71-1] + 0.1); *File_Archive << (__int32)(parameters_copy[72-1] + 0.1); *File_Archive << (__int32)(parameters_copy[73-1] + 0.1); *File_Archive << (__int32)(parameters_copy[74-1] + 0.1); *File_Archive << (__int32)(parameters_copy[75-1] + 0.1); *File_Archive << (__int32)(parameters_copy[76-1] + 0.1); *File_Archive << (__int32)(parameters_copy[80-1] + 0.1); // INL file flag *File_Archive << (__int32)(parameters_copy[81-1] + 0.1); // DNL file flag *File_Archive << (__int32)csConfigFile.GetLength(); // Config file File_Archive->Write(LPCTSTR(csConfigFile),csConfigFile.GetLength()); *File_Archive << (__int32)csINLFile.GetLength(); // INL file File_Archive->Write(LPCTSTR(csINLFile),csINLFile.GetLength()); *File_Archive << (__int32)csDNLFile.GetLength(); // DNL file File_Archive->Write(LPCTSTR(csDNLFile),csDNLFile.GetLength()); // new for hptdc dll 2.3 *File_Archive << (__int32)(parameters_copy[77-1] + 0.1); // new since DAQ_VERSION7 *File_Archive << (bool)((__int32)(parameters_copy[78-1] + 0.1) ? true : false); *File_Archive << parameters_copy[79-1]; *File_Archive << (bool)((__int32)(parameters_copy[85-1] + 0.1) ? true : false); // SSEEnable *File_Archive << (bool)((__int32)(parameters_copy[86-1] + 0.1) ? true : false); // MMXEnable *File_Archive << (bool)((__int32)(parameters_copy[87-1] + 0.1) ? true : false); // DMAEnable //// write TDCInfo *File_Archive << (__int32)0; // 0 TDCs // now follow reserved values // to be filled later bool bDummy = false; __int32 iDummy = 0x12345678; double dDummy = -1; for (__int32 i=0;i<5;++i) *File_Archive << bDummy; for (__int32 i=0;i<5;++i) *File_Archive << iDummy; for (__int32 i=0;i<5;++i) *File_Archive << dDummy; File_Archive->Flush(); File_Archive->GetFile()->Flush(); header_was_written = true; } ////////////////////////////////////////////////////////// void Write_File::write_TDC8HP_Cobold2008R2_header() ////////////////////////////////////////////////////////// { unsigned __int32 ui32NumberOfBools = 0; // do not forget to change the pui64LMUserHeaderLength unsigned __int32 ui32NumberOf32BitsValues = 4; // accordingly at the beginning of the function!!! unsigned __int32 ui32NumberOfDoubles = 0; if (this->LMF_version >= 9) { ui32NumberOfBools = 0; // do not forget to change the pui64LMUserHeaderLength ui32NumberOf32BitsValues = 5; // accordingly at the beginning of the function!!! ui32NumberOfDoubles = 1; } LMUserdefinedheadersize = sizeof(unsigned __int64)*5 + sizeof(unsigned __int32)*17 + sizeof(__int32)*(6+ui32NumberOf32BitsValues) + sizeof(double)*(6+ui32NumberOfDoubles) + sizeof(bool)*(12+ui32NumberOfBools) + csDAqInfo.GetLength() + csConfigFile.GetLength() + csINLFile.GetLength() + csDNLFile.GetLength(); // user defined header LMUserdefinedheadersize += sizeof(__int32); // for number of source strings (which is zero here) unsigned __int32 ui32TDCcount = 0; //if(tdcManager) ui32TDCcount = tdcManager->getTDCCount(); LMUserdefinedheadersize += sizeof(unsigned __int32) + (ui32TDCcount * ((sizeof(__int32))*9 + sizeof(DWORD)*1 + sizeof(double)*1 + sizeof(__int32)*8*1024 + sizeof(unsigned __int16)*8*1024 + sizeof(bool))); // additional data for DNL & INL write_LMF_header_part1(); // Now write rest of Header: *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; File_Archive->Flush(); File_Archive->GetFile()->Flush(); LMHeadersize = File_Archive->GetFile()->GetPosition(); write_LMF_header_part1(); // write again. But this time with correct LMHeadersize *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; // Now write UserHeader: *File_Archive << archive_flag; // LMF file version ID *File_Archive << (unsigned __int64)LMUserdefinedheadersize; // actual header length always 1st value *File_Archive << (__int32)20080507; // Version is always 2nd value *File_Archive << (__int32)0x000008; // old matrix format // DAQ_ID is always 3ed value *File_Archive << parameters_copy[4]; // frequency is always 4th value *File_Archive << (__int32)(parameters_copy[0] + 0.1); // IO address (parameter 1) always 5th value *File_Archive << (__int32)(parameters_copy[1] + 0.1); // TimeInfo (parameter 2) always 6th value *File_Archive << (__int32)csDAqInfo.GetLength(); // Length of DAQInfo always 7th value File_Archive->Write(LPCTSTR(csDAqInfo),csDAqInfo.GetLength()); // DAQInfo always 8th value *File_Archive << this->LMF_version; // LMFVersion always 9th value *File_Archive << (unsigned __int32)0; // number of source strings *File_Archive << (__int32)(parameters_copy[7-1] + 0.1); *File_Archive << parameters_copy[20-1]; *File_Archive << (__int32)(parameters_copy[21-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[32-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[33-1] + 0.1); *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) /// start of TDC configuration *File_Archive << (bool)(parameters_copy[60-1]>0.5?true:false); // CONFIG file flag *File_Archive << (unsigned __int64)(parameters_copy[61-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[62-1] + 0.1); *File_Archive << (__int32)(parameters_copy[63-1] + 0.1); *File_Archive << (__int32)(parameters_copy[64-1] + 0.1); // trigger channel *File_Archive << (bool)(parameters_copy[65-1]>0.5?true:false); //*File_Archive << (bool)(parameters_copy[66-1]>0.5?true:false); *File_Archive << false; // Grouping enable OFF *File_Archive << (bool)(parameters_copy[67-1]>0.5?true:false); *File_Archive << parameters_copy[68-1]; *File_Archive << parameters_copy[69-1]; *File_Archive << parameters_copy[70-1]; *File_Archive << (bool)(parameters_copy[71-1]>0.5?true:false); *File_Archive << (bool)(parameters_copy[72-1]>0.5?true:false); *File_Archive << (__int32)(parameters_copy[73-1] + 0.1); *File_Archive << (__int32)(parameters_copy[74-1] + 0.1); *File_Archive << (__int32)(parameters_copy[75-1] + 0.1); *File_Archive << (__int32)(parameters_copy[76-1] + 0.1); *File_Archive << (bool)(parameters_copy[80-1]>0.5?true:false); // INL file flag *File_Archive << (bool)(parameters_copy[81-1]>0.5?true:false); // DNL file flag *File_Archive << (__int32)csConfigFile.GetLength(); // Config file File_Archive->Write(LPCTSTR(csConfigFile),csConfigFile.GetLength()); *File_Archive << (__int32)csINLFile.GetLength(); // INL file File_Archive->Write(LPCTSTR(csINLFile),csINLFile.GetLength()); *File_Archive << (__int32)csDNLFile.GetLength(); // DNL file File_Archive->Write(LPCTSTR(csDNLFile),csDNLFile.GetLength()); // new for hptdc dll 2.3 *File_Archive << (__int32)(0); // obsolete: synch validation channel // new since DAQ_VERSION7 *File_Archive << (bool)((__int32)(parameters_copy[78-1] + 0.1) ? true : false); *File_Archive << parameters_copy[79-1]; *File_Archive << (bool)(false); // SSEEnable *File_Archive << (bool)((__int32)(parameters_copy[86-1] + 0.1) ? true : false); // MMXEnable *File_Archive << (bool)((__int32)(parameters_copy[87-1] + 0.1) ? true : false); // DMAEnable //// write TDCInfo *File_Archive << (__int32)0; // 0 TDCs bool bDummy = false; __int32 iDummy = 0x12345678; double dDummy = -1; // now handle additional bools *File_Archive << ui32NumberOfBools; // now handle additional 32Bit values (signed or unsigned) *File_Archive << ui32NumberOf32BitsValues; *File_Archive << (unsigned __int32)(parameters_copy[53-1]+0.1); // NumberOfDAqLoops *File_Archive << (unsigned __int32)0; // driver version *File_Archive << (unsigned __int32)(parameters_copy[89-1]+0.1); //TriggerChannelMask *File_Archive << (__int32)(parameters_copy[88-1]+0.1); // i32TimeZeroChannel (starting at with 1); if (this->LMF_version >= 9) *File_Archive << (__int32)(parameters_copy[90-1]+0.1); // BinsizeType // now handle additional doubles *File_Archive << ui32NumberOfDoubles; if (this->LMF_version >= 9) *File_Archive << parameters_copy[99-1]; // offset in time zero channel File_Archive->Flush(); File_Archive->GetFile()->Flush(); unsigned __int64 written_bytes = File_Archive->GetFile()->GetPosition(); header_was_written = true; if (written_bytes != LMUserdefinedheadersize + LMHeadersize) { AfxMessageBox("LMF header was not correclty written.\n"); header_was_written = false; } } ////////////////////////////////////////////////////////// void Write_File::write_TDC8PCI2_Cobold2008R2_header() ////////////////////////////////////////////////////////// { LMUserdefinedheadersize = sizeof(unsigned __int64)*3 + sizeof(__int32)*21 + sizeof(double)*2 + csDAqInfo.GetLength() + sizeof(unsigned __int32);; // user defined header write_LMF_header_part1(); *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; File_Archive->Flush(); File_Archive->GetFile()->Flush(); LMHeadersize = File_Archive->GetFile()->GetPosition(); write_LMF_header_part1(); *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; *File_Archive << (unsigned __int32)archive_flag; // LMF file version ID *File_Archive << (unsigned __int64)LMUserdefinedheadersize; // actual header length always 1st value *File_Archive << (__int32)20080507; // Version is always 2nd value *File_Archive << (__int32)0x2; // DAQ_ID is always 3ed value *File_Archive << parameters_copy[5-1]; // frequency is always 4th value *File_Archive << (__int32)0; // IO address (parameter 1) always 5th value *File_Archive << (__int32)(parameters_copy[2-1] + 0.1); // TimeInfo (parameter 2) always 6th value *File_Archive << (__int32)csDAqInfo.GetLength(); // Length of DAqInfo always 7th value File_Archive->Write(LPCTSTR(csDAqInfo),csDAqInfo.GetLength()); // DAqInfo always 8th value *File_Archive << (__int32)0x0009; // LMFVersion always 9th value *File_Archive << (__int32)0; // number of DAq source strings // here no source strings are written *File_Archive << (__int32)(parameters_copy[3-1] + 0.1); // system timeout *File_Archive << (__int32)(parameters_copy[7-1] + 0.1); // start time? *File_Archive << (__int32)(parameters_copy[14-1] + 0.1); // trigger mode *File_Archive << parameters_copy[20-1]; // TDC resolution *File_Archive << (__int32)(parameters_copy[21-1] + 0.1); // DAq data type *File_Archive << (__int32)(parameters_copy[30-1] + 0.1); // event open time *File_Archive << (unsigned __int64)(parameters_copy[32-1] + 0.1); // number of channels *File_Archive << (unsigned __int64)(parameters_copy[33-1] + 0.1); // number of hits *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // p[39] + (0.1*sign(p[39]) (Data format) *File_Archive << (__int32)false; // indicator for 2nd module data *File_Archive << (__int32)(parameters_copy[45-1] + 0.1); // gate delay *File_Archive << (__int32)(parameters_copy[46-1] + 0.1); // gate open time *File_Archive << (__int32)(parameters_copy[47-1] + 0.1); // write empty events *File_Archive << (__int32)(parameters_copy[48-1] + 0.1); // trigger at falling edge *File_Archive << (__int32)(parameters_copy[49-1] + 0.1); // trigger at rising edge *File_Archive << (__int32)(parameters_copy[51-1] + 0.1); // internally reserved *File_Archive << (__int32)(parameters_copy[52-1] + 0.1); // internally reserved header_was_written = true; } ////////////////////////////////////////////////////////// bool Write_File::OpenFile() ////////////////////////////////////////////////////////// { if (iDAQ_ID == 0x8 || iDAQ_ID == 0x10) parameters_copy[66-1] = (__int32)(0); // grouping disabled for HPTDC, do not remove this line output_file = 0; File_Archive = 0; name[0]=0; LPCTSTR t = DAnGetLastLMFName(); sprintf(name,"%s",t); if (name[0] == 0) { t = GetActualDAqPathName(); sprintf(name,"%s",t); for (__int32 i=strlen(name)-1;i>0;--i) if (name[i] != '\\' && name[i] != '/') name[i] = 0; else break; strcat(name,"Untitled"); } if (mode == 1) strcat(name,".txt"); if (mode == 2) strcat(name,".lmf"); if (mode == 3) strcat(name,".txt"); output_file = new CFile(); if (!output_file->Open(name,CFile::modeCreate|CFile::modeWrite)) { return false; } File_Archive = new CArchive(output_file,CArchive::store); // write to file through an archive object if (mode == 2) { // LMF header must be written __int32 number_of_channels = (__int32)(parameters_copy[32-1]+0.1); // parameter 32 __int32 maximum_number_of_hits = (__int32)(parameters_copy[33-1]+0.1); // parameter 33 __int32 timeinfo = (__int32)(parameters_copy[2-1]+0.1); // parameter 2 number_of_coordinates = number_of_channels*(1+maximum_number_of_hits); if (iDAQ_ID == 0x8 || iDAQ_ID == 0x10) { if (LMF_version >= 9) number_of_coordinates++; // for level info } if (iDAQ_ID == 0x8 || iDAQ_ID == 0x10) { if (LMF_version < 8) {write_TDC8HP_Cobold2008R1_header(); return true;} if (LMF_version >= 8) {write_TDC8HP_Cobold2008R2_header(); return true;} } if (iDAQ_ID == 2) {write_TDC8PCI2_Cobold2008R2_header(); return true;} AfxMessageBox("This DAn can not write LMF files in this format.\nPlease contact RoentDek."); } // END OF WRITING HEADER return true; } ////////////////////////////////////////////////////////// void Write_File::WriteASCIIData(__int32 *cnt, double * tdc_ns) ////////////////////////////////////////////////////////// { char char_dummy[1024]; if (mode == 1) { __int32 number_of_channels = (__int32)(parameters_copy[32-1]+0.1); // parameter 32 __int32 maximum_number_of_hits = (__int32)(parameters_copy[33-1]+0.1); // parameter 33 ++number_of_events; double TDC_resolution = parameters_copy[20-1]; // parameter 20 for (__int32 channel=0;channel < number_of_channels;channel++) { sprintf(char_dummy,"%i \t%i",channel+1,cnt[channel]); File_Archive->WriteString(char_dummy); for (__int32 i=0;i < cnt[channel];i++) { double a = tdc_ns[channel*tdc_row_length+i]/TDC_resolution; if (a >= 0.) a += 0.0001; else a -= 0.0001; sprintf(char_dummy," \t%i",__int32(a)); File_Archive->WriteString(char_dummy); } for (__int32 i = cnt[channel];i < maximum_number_of_hits;i++) { sprintf(char_dummy," \t%i",0); File_Archive->WriteString(char_dummy); } File_Archive->WriteString("\n"); } } } ////////////////////////////////////////////////////////// void Write_File::WriteLMFData(__int32 *cnt, double *tdc_ns, CDoubleArray &EventData, LARGE_INTEGER timestamp) ////////////////////////////////////////////////////////// { assert(header_was_written); if (!header_was_written) return; ++number_of_events; __int32 timeinfo = (__int32)(parameters_copy[2-1]+0.1); // parameter 2 double TDC_resolution = parameters_copy[20-1]; // parameter 20 __int32 number_of_channels = (__int32)(parameters_copy[32-1]+0.1); // parameter 32 __int32 maximum_number_of_hits = (__int32)(parameters_copy[33-1]+0.1); // parameter 33 if (iDAQ_ID == 2) { unsigned __int64 HeaderLength = timeinfo + 4; // +2 for HeaderLength itself, +2 for EventCounter HeaderLength <<= 1; // now in sizeof int16 for(__int32 iCount=0;iCount 0) { *File_Archive << timestamp.LowPart; if (timeinfo > 1) *File_Archive << timestamp.HighPart; } for(__int32 i=0;i maximum_number_of_hits) cnt_temp = maximum_number_of_hits; *File_Archive << cnt_temp; for(__int32 j=0;j= 0.) a += 0.0001; else a -= 0.0001; *File_Archive << (unsigned __int16)(a); } } } if (iDAQ_ID == 0x8 || iDAQ_ID == 0x10) { unsigned __int64 HeaderLength = timeinfo + 4; // +1 for HeaderLength itself for(__int32 iCount = 0; iCount < number_of_channels; ++iCount) HeaderLength += cnt[iCount]; HeaderLength <<= 2; // now size in bytes HeaderLength += number_of_channels*sizeof(unsigned __int16); // add N array size (unsigned __int16) HeaderLength = (HeaderLength & 0x00ffffffffffffff) | 0xff00000000000000; // set 0xff in bits 63..56 as EventMarker if (LMF_version >=9) HeaderLength+=sizeof(__int64); *File_Archive << HeaderLength; *File_Archive << number_of_events; if (timeinfo > 0) { *File_Archive << timestamp.LowPart; if (timeinfo > 1) *File_Archive << timestamp.HighPart; } for (__int32 i=0;i maximum_number_of_hits) cnt_temp = maximum_number_of_hits; *File_Archive << cnt_temp; for (__int32 j=0;j= 0.) a += 0.0001; else a -= 0.0001; *File_Archive << (__int32)(a); } } if (LMF_version >=9) { *File_Archive << (__int64)(0); // LevelInfo } } } DAN_UserUtilities.cppCDAn.h // CDan.h : main header file for the CDan DLL // V5.14 #pragma once #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef CDAN_EXPORTS #define CDAN_API __declspec(dllexport) #else #define CDAN_API __declspec(dllimport) #endif class SharedClass; class CDoubleArray; class CSourceCodeInformation; class LMFPreEventData; // no file support during AnalysisInitialize // no file support during AnalysisGetInformationString // // I M P O R T A N T // // If you use CArchive or something equivalent // then flush first any data of the file before // you call any function other than reading from the // file or flushing the data otherwhise you risk a // misaligned file! CDAN_API LPCTSTR AnalysisGetInformationString(); CDAN_API __int32 AnalysisInitialize(CDoubleArray &EventData, CDoubleArray &Parameter, CDoubleArray &WeighParameter); CDAN_API __int32 AnalysisProcessEvent(CDoubleArray &EventData, CDoubleArray &Parameter, CDoubleArray &WeighParameter, LMFPreEventData &preEventData); CDAN_API __int32 AnalysisFinalize(CDoubleArray &EventData,CDoubleArray &Parameter, CDoubleArray &WeighParameter); CDAN_API CSourceCodeInformation* DAnGetSourceCodeInformation(); CDAN_API void DoFunction(CString csInput[],unsigned __int32 ui32InputMaximumIndex, unsigned __int32 ui32WordCount); ///////////////////////////////////////////////////////////////////////////// // CCDanApp // See CDan.cpp for the implementation of this class // class CCDanApp : public CWinApp { public: CCDanApp(); // Overrides BOOL InitInstance(); __int32 ExitInstance(); bool BindUserSHMDll(); HMODULE UserSHM_lib_handle; SharedClass * SharedClassInstance; bool UserSHM_DLL_is_bound; // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CCDanApp) //}}AFX_VIRTUAL //{{AFX_MSG(CCDanApp) // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG DECLARE_MESSAGE_MAP() }; extern double _dOldEventTime; extern double _dStartEventTime; extern CString &DAnGetDllPathName(); double GetDeltaEventTime(LMFPreEventData &preEventData,CDoubleArray &Parameter); double GetEventTime(LMFPreEventData &preEventData,CDoubleArray &Parameter); double CorrectGP1NDL(double dChannel,double dCorrectionValue); ///////////////////////////////////////////////////////////////////////////// #ifdef __cplusplus } #endif CheckProcess.H/******************************************************************************\ * This is a part of the Microsoft Source Code Samples. * Copyright (C) 1994-1996 Microsoft Corporation. * All rights reserved. * This source code is only intended as a supplement to * Microsoft Development Tools and/or WinHelp documentation. * See these sources for detailed information regarding the * Microsoft samples programs. \******************************************************************************/ #define TITLE_SIZE 64 #define PROCESS_SIZE MAX_PATH // // task list structure // typedef struct _TASK_LIST { DWORD dwProcessId; DWORD dwInheritedFromProcessId; BOOL flags; HANDLE hwnd; CHAR ProcessName[PROCESS_SIZE]; CHAR WindowTitle[TITLE_SIZE]; } TASK_LIST, *PTASK_LIST; typedef struct _TASK_LIST_ENUM { PTASK_LIST tlist; DWORD numtasks; } TASK_LIST_ENUM, *PTASK_LIST_ENUM; // // Function pointer types for accessing platform-specific functions // typedef DWORD (*LPGetTaskList)(PTASK_LIST, DWORD); typedef BOOL (*LPEnableDebugPriv)(VOID); CoboldDll.h#// CoboldDll.h : main header file for the COBOLDDLL DLL // #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif #include "resource.h" // main symbols #define COMPRESSIONTYPE_UNDEFINED -1 #define COMPRESSIONTYPE_NONE 0 #define COMPRESSIONTYPE_GZIP 1 #define COMPRESSIONTYPE_DEFLATE 2 ///////////////////////////////////////////////////////////////////////////// // CCoboldDllApp // See CoboldDll.cpp for the implementation of this class // #ifndef CCOBOLDDLLAPP_DEF #define CCOBOLDDLLAPP_DEF class CCoboldDllApp : public CWinApp { public: CCoboldDllApp(); // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CCoboldDllApp) //}}AFX_VIRTUAL //{{AFX_MSG(CCoboldDllApp) // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG DECLARE_MESSAGE_MAP() }; #include "CheckProcess.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef COBOLDDLL_EXPORTS #define COBOLDDLL_API __declspec(dllexport) #else #define COBOLDDLL_API __declspec(dllimport) #endif ///////////////////////////////////////////////////////////////////////////// // ATARI Time structure typedef struct { unsigned short hsec : 5; unsigned short min : 6; unsigned short hour : 5; }ATime; typedef struct { unsigned short day : 5; unsigned short month : 4; unsigned short year : 7; }ADate; typedef struct { ATime time; ADate date; }ADateTime; // This class is exported from the CoboldSecurity.dll //template class COBOLDDLL_API CDoubleArray : public CObject { public: DECLARE_SERIAL(CDoubleArray) // Construction CDoubleArray(); CDoubleArray(__int32 NumberOfElements); CDoubleArray(__int32 NumberOfXElements, __int32 NumberOfYElements); // Attributes inline __int32 GetSize() const { return m_nSize; } __int32 GetUpperBound() const; void SetSize(__int32 nNewSize, __int32 nGrowBy = -1); void SetMatixSize(__int32 nNewXSize, __int32 nNewYSize, __int32 nGrowBy = -1); // Operations // Clean up void FreeExtra(); void RemoveAll(); // Accessing elements inline double GetAt(__int32 nIndex) const { ASSERT(nIndex >= 0 && nIndex < m_nSize); return m_pData[nIndex]; } inline void SetAt(__int32 nIndex, double newElement) { ASSERT(nIndex >= 0 && nIndex < m_nSize); m_pData[nIndex] = newElement; } inline double& ElementAt(__int32 nIndex) { ASSERT(nIndex >=0 && nIndex< m_nSize); return m_pData[nIndex]; } void Empty(); // Potentially growing the array void SetAtGrow(__int32 nIndex, double newElement); __int32 Add(double newElement) { __int32 nIndex = m_nSize; SetAtGrow(nIndex,newElement); return nIndex; } // overloaded operator helpers virtual inline double operator[](__int32 nIndex) const { return GetAt(nIndex); } virtual inline double& operator[](__int32 nIndex) { return m_pData[nIndex]; } virtual const CDoubleArray& operator = (const CDoubleArray& sData); // Operations that move elements around void InsertAt(__int32 nIndex, double newElement, __int32 nCount = 1); void RemoveAt(__int32 nIndex, __int32 nCount = 1); void InsertAt(__int32 nStartIndex, CDoubleArray* pNewArray); // Matrix operation void SetAtMatrix(__int32 posx, __int32 posy,double Value); double GetAtMatrix(__int32 posx, __int32 posy); inline __int32 GetSizeX() const { return SizeX; } inline __int32 GetSizeY() const { return SizeY; } // Expand operation bool CDoubleArray::ExpandTo(__int32 xchannels); bool CDoubleArray::ExpandTo(__int32 xchannels, __int32 ychannels); protected: void AssignCopy(__int32 nSrcLen, double *Data); // Implementation public: double* m_pData; // the actual array of data bool m_LoadError; protected: __int32 m_VersionNumber; long m_nSize; // # of elements (upperBound - 1) __int32 m_nMaxSize; // max allocated __int32 m_nGrowBy; // grow amount __int32 SizeX; // Size of Matrix in X __int32 SizeY; // Size of Matrix in Y __int32 m_CompressionType; public: ~CDoubleArray(); virtual void Serialize(CArchive& ar); #ifdef _DEBUG // void Dump(CDumpContext&) const; // void AssertValid() const; #endif }; ///////////////////////////////////////////////////////////////////////////// // helper class CCodeInformation for CSourceCodeInformation class COBOLDDLL_API CCodeInformation : public CObject { protected: CString csCodeID; CString csCodeType; CString csCodeFileName; public: // constructor and destructor CCodeInformation(); CCodeInformation(CString CodeType, CString CodeID, CString CodeFileName); ~CCodeInformation(); public: // implementation CString &GetType(); CString &GetID(); CString &GetFileName(); }; ///////////////////////////////////////////////////////////////////////////// // class to handle source code information of dlls class COBOLDDLL_API CSourceCodeInformation { public: CObArray coaCodeInformation; CString csSourceCode; public: // constructor and destructor CSourceCodeInformation(); ~CSourceCodeInformation(); public: // implementation INT_PTR GetCount(); CString &GetSourceCode(CString csDllFilePathName, CString csSourceID, CString csSourceType); CString &GetTypeAt(unsigned __int32 ui32Index); CString &GetIDAt(unsigned __int32 ui32Index); CString &GetFileNameAt(unsigned __int32 ui32Index); }; ///////////////////////////////////////////////////////////////////////////// // definition for exported functions COBOLDDLL_API __int32 CheckDate(CString Module); COBOLDDLL_API COLORREF GetTNGColor(CDC *pDC, __int32 ColorIndex); COBOLDDLL_API COLORREF GetTNGScreenColor(__int32 ColorIndex); COBOLDDLL_API COLORREF GetTNGPrintColor(__int32 ColorIndex); COBOLDDLL_API void GetTNGDefaultColors(void); COBOLDDLL_API void SetTNGScreenColor(__int32 ColorIndex, COLORREF Color); COBOLDDLL_API void SetTNGPrintColor(__int32 ColorIndex, COLORREF Color); COBOLDDLL_API void ReadColorDefinitions(void); COBOLDDLL_API void ReadDelimiterDefinitions(void *pvView); COBOLDDLL_API void WriteColorDefinitions(void); COBOLDDLL_API void WriteDelimiterDefinitions(void *pvView); COBOLDDLL_API double GetCStringNumber(CString cAddress); COBOLDDLL_API void PumpDlgMessages(CWnd *pWnd); COBOLDDLL_API void PumpMessages(bool bIdle=true); COBOLDDLL_API void DoubleAtari(double register *var); COBOLDDLL_API void LongAtari(unsigned long register *var); COBOLDDLL_API void IntAtari(unsigned short register *var); COBOLDDLL_API void ToAtariTime(CTime *pCTime, ADateTime *pATime); COBOLDDLL_API void ToCTime(CTime *pCTime, ADateTime *pATime); COBOLDDLL_API bool ReadWindowPlacement(WINDOWPLACEMENT *pwp, UINT *puiFlags, char *pszSection, char *pszWindowFlag, char *pszWindowPos); COBOLDDLL_API void WriteWindowPlacement(CWnd *pWnd, char *pszSection, char *pszWindowFlag, char *pszWindowPos); COBOLDDLL_API bool TestFlatBarAvailable(void); COBOLDDLL_API __int32 GetTaskListNT(PTASK_LIST pTask, DWORD dwNumTasks); COBOLDDLL_API BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam); COBOLDDLL_API __int32 CountApplications(CString VersionFileDescription); COBOLDDLL_API __int32 FileNotFoundMessage(CStringArray *pActiveBatchFile, CString BatchName, bool bQuitMessage = false); COBOLDDLL_API HRESULT GetComCtlVersion(LPDWORD pdwMajor, LPDWORD pdwMinor); COBOLDDLL_API void DeleteLocalRegistryKey(HKEY myKey, char RegPath[MAX_PATH]); COBOLDDLL_API void CorrectGP1DifferentialNonlinearity(CDoubleArray &EventData, CDoubleArray &Parameters, __int32 rawdata, __int32 iRes); COBOLDDLL_API CString &GetApplicationPath(); COBOLDDLL_API CString &GetSerialNumber(); COBOLDDLL_API bool IsSerialNumberOK(); COBOLDDLL_API bool IsSerialNumberHM1(); COBOLDDLL_API bool IsSerialNumberDemo(); COBOLDDLL_API bool IsDemoExpired(); COBOLDDLL_API void maInit(); COBOLDDLL_API void OrthogonalToRPhi(double x,double y,double &r,double &phi); COBOLDDLL_API void SetActualDAqPathName(CString csPathName); COBOLDDLL_API void SetActualDAnPathName(CString csPathName); COBOLDDLL_API void SetActualFCPathName(CString csPathName); COBOLDDLL_API CString& GetActualDAqPathName(); COBOLDDLL_API CString& GetActualDAnPathName(); COBOLDDLL_API CString& GetActualFCPathName(); COBOLDDLL_API void ExecuteCommand(CString csCommandLine); COBOLDDLL_API CDoubleArray &GetDaqDanParameters(); COBOLDDLL_API CDoubleArray &GetDaqDanWeighParameters(); COBOLDDLL_API CDoubleArray &GetDaqDanEventData(); COBOLDDLL_API bool IsClearEventDataArraySet(); COBOLDDLL_API void SetClearEventDataArrayState(bool flag); COBOLDDLL_API bool AreCompressCOMsAvailable(bool bInfoBox); COBOLDDLL_API void DisplayLastError(LPTSTR lpszFunction); #ifdef __cplusplus } #endif ///////////////////////////////////////////////////////////////////////////// #endif LMFPreEventData.hn#pragma once #ifndef LMFPreEventDataInclude #define LMFPreEventDataInclude #ifdef COBOLDDLL_EXPORTS #define COBOLDDLL_API __declspec(dllexport) #else #define COBOLDDLL_API __declspec(dllimport) #endif class COBOLDDLL_API LMFPreEventData { public: LMFPreEventData(); virtual ~LMFPreEventData(); // data // hdr1 = EventMarker + EventLength // bit 63..56 always 0xff // bit 55..00 EventLegth in Bytes of this event // hdr2 // bit 63..00 event counter __int64 hdr1; __int64 hdr2; LARGE_INTEGER TimeStamp; // low part for 32 bit, high and low part for 64 bit Timestamp }; #endifLMInfo.h-// LMInfo.h // Informations file to control List-Mode Read #pragma once #define LM_FILE_VERSION 0x74656 // only 32 bit for int values #define LM_FILE_VERSION9 0x74657 // partially 64 bit for int values (since 9.1.808.1) #define LM_READFILE -0x00000000 #define LM_NOFILEOPEN -0x00000001 #define LM_CLOSEFILE -0x00000002 #define LM_STARTFILE -0x00000004 #define LM_HOLDFILE -0x00000008 #define LM_ENDFILE -0x00000010 #define LM_REWINDFILE -0x00000020 #define LM_CLOSEING -0x00000040 #define LM_HARDWARE 0x00000001 #define LM_FILEREAD 0x00000002 #define LM_HARDWAREWRITE 0x00000004 #define LM_SKIPINSERT 0x00000008 #define LMS_HRUNNING 0x00000004 #define LMS_FRUNNING 0x00000003 #define LMS_RUNNING 0x00000002 #define LMS_PAUSED 0x00000001 #define LMS_NONE 0x00000000 #define LMW_NOTSET 0x00000000 #define LMW_EOF 0x00000001 #define LMW_TIME 0x00000002 #define LMW_COUNTS 0x00000003 // Data types possible in DAq/DAn #define DT_NOTSET 0x00000000 #define DT_CHANNEL 0x00000001 #define DT_TIMEINPS 0x00000010 #define DT_TIMEINNS 0x00000011 #define DAQ_ID_RAW 0x000000 // for RAW (no Data) #define DAQ_ID_HM1 0x000001 // for HM1 (single) #define DAQ_ID_TDC8 0x000002 // for TDC8/ISA/PCI #define DAQ_ID_CAMAC 0x000003 // for CAMAC #define DAQ_ID_2HM1 0x000004 // for 2 HM1 #define DAQ_ID_2TDC8 0x000005 // for 2 TDC8 #define DAQ_ID_HM1_ABM 0x000006 // for HM1 (Advanced Burst Mode) #define DAQ_ID_HM1_LR 0x000007 // for HM1 (Long Range Mode) #define DAQ_ID_HPTDC 0x000008 // for HPTDC (TillDC) #define DAQ_ID_TCPIP 0x000009 // for TCPIP (not supported yet) #define DAQ_ID_HPTDCRAW 0x000010 // for HPTDC (TillDC) writing RAW data #define DAQ_ID_FADC8 0x000011 // for fADC8 // Source Code Included Flags // if LM_FILE_VERSION9 upper bits indicate presence of source code #define DAQ_SOURCE_CODE 0x80000000 #define DAN_SOURCE_CODE 0x40000000 #define CCF_HISTORY_CODE 0x20000000 #define MASK_LMF_FILEVERSION (~(DAQ_SOURCE_CODE|DAN_SOURCE_CODE|CCF_HISTORY_CODE)) resource.h//{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by CDan.rc // // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 130 #define _APS_NEXT_COMMAND_VALUE 32771 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif SharedClass.h///////////////////////////////////////////////////////// // SharedClass #pragma once #ifndef SharedClass_IS_DEFINED #define SharedClass_IS_DEFINED #include "CoordinatesMath.h" typedef unsigned __int16 HIST_TYPE; class Hist3dClass { public: Hist3dClass() { this->Hist3dArray = NULL; this->i32NumberOfBinsX = 0; this->i32NumberOfBinsY = 0; this->i32NumberOfBinsZ = 0; this->dLengthX = 0.; this->dLengthY = 0.; this->dLengthZ = 0.; this->dBinsizeX = 0; this->dBinsizeY = 0; this->dBinsizeZ = 0; } ~Hist3dClass() { if(this->Hist3dArray) this->Delete3dHist(); } void Clear3dHist() { if(this->Hist3dArray) memset(this->Hist3dArray,0, sizeof(HIST_TYPE) * (this->i32NumberOfBinsX*this->i32NumberOfBinsY*this->i32NumberOfBinsZ + 1)); } bool Init3dHist() { if(this->Hist3dArray) Delete3dHist(); this->i32NumberOfBinsX = __int32((this->dXHigh - this->dXLow) / this->dBinsizeX + 0.001); this->i32NumberOfBinsY = __int32((this->dYHigh - this->dYLow) / this->dBinsizeY + 0.001); this->i32NumberOfBinsZ = __int32((this->dZHigh - this->dZLow) / this->dBinsizeZ + 0.001); this->dXHigh = this->dXLow + this->i32NumberOfBinsX * this->dBinsizeX; this->dYHigh = this->dYLow + this->i32NumberOfBinsY * this->dBinsizeY; this->dZHigh = this->dZLow + this->i32NumberOfBinsZ * this->dBinsizeZ; __int32 total_number_of_bins = this->i32NumberOfBinsX*this->i32NumberOfBinsY*this->i32NumberOfBinsZ + 1; this->Hist3dArray = new HIST_TYPE[total_number_of_bins]; memset(this->Hist3dArray,0,total_number_of_bins*sizeof(HIST_TYPE)); this->dLengthX = this->dXHigh - this->dXLow; this->dLengthY = this->dYHigh - this->dYLow; this->dLengthZ = this->dZHigh - this->dZLow; if(this->Hist3dArray) return true; else return false; } void Delete3dHist() { if(this->Hist3dArray) { delete[] this->Hist3dArray; this->Hist3dArray = NULL; } } void Fill3dHist(double pos_x, double pos_y, double pos_z) { __int32 binx = __int32((pos_x-this->dXLow) / this->dBinsizeX + 0.001); if(binx < 0 || binx >= this->i32NumberOfBinsX) return; __int32 biny = __int32((pos_y-this->dYLow) / this->dBinsizeY + 0.001); if(biny < 0 || biny >= this->i32NumberOfBinsY) return; __int32 binz = __int32((pos_z-this->dZLow) / this->dBinsizeZ + 0.001); if(binz < 0 || binz >= this->i32NumberOfBinsZ) return; unsigned __int32 bin = this->i32NumberOfBinsX*(this->i32NumberOfBinsY * binz + biny) + binx; ++this->Hist3dArray[bin]; } __int32 Get3dHistBincontent(__int32 binx, __int32 biny, __int32 binz) { unsigned __int32 bin = this->i32NumberOfBinsX*(this->i32NumberOfBinsY * binz + biny) + binx; return __int32(Hist3dArray[bin]); } __int32 GetBinFromX(double pos_x) { return __int32((pos_x-this->dXLow) / this->dBinsizeX + 0.001); } __int32 GetBinFromY(double pos_y) { return __int32((pos_y-this->dYLow) / this->dBinsizeY + 0.001); } __int32 GetBinFromZ(double pos_z) { return __int32((pos_z-this->dZLow) / this->dBinsizeZ + 0.001); } double GetBinCenterX(__int32 binx) { return this->dXLow + (double(binx)+0.5)*this->dBinsizeX; } double GetBinCenterY(__int32 biny) { return this->dYLow + (double(biny)+0.5)*this->dBinsizeY; } double GetBinCenterZ(__int32 binz) { return this->dZLow + (double(binz)+0.5)*this->dBinsizeZ; } HIST_TYPE * Hist3dArray; __int32 i32NumberOfBinsX; __int32 i32NumberOfBinsY; __int32 i32NumberOfBinsZ; double dBinsizeX; double dBinsizeY; double dBinsizeZ; double dXLow, dXHigh; double dYLow, dYHigh; double dZLow, dZHigh; double dLengthX, dLengthY, dLengthZ; }; class SharedClass { public: volatile double rate; volatile bool bDAqIsRunningOnline; volatile bool bDAqIsRunningOffline; volatile bool bDAnIsRunning; volatile CoordinatesParser_class * CoordinatesParser_instance; CString csDAqNameAndPath; CString csDAnNameAndPath; Hist3dClass *hist3d; __int16 * adc_trace[80]; __int32 adc_trace_length[80]; void * adc_peak_infos_array; __int32 adc_peak_infos_array_max_nof_hits; SharedClass() { hist3d = new Hist3dClass(); csDAqNameAndPath = ""; csDAnNameAndPath = ""; bDAqIsRunningOnline = false; bDAqIsRunningOffline = false; bDAnIsRunning = false; CoordinatesParser_instance = NULL; adc_peak_infos_array = 0; adc_peak_infos_array_max_nof_hits = 0; for (__int32 ch = 0;ch<80;ch++) { adc_trace[ch] = new __int16[15000]; memset(adc_trace[ch],0,15000*sizeof(__int16)); adc_trace_length[ch] = 0; } } ~SharedClass() { if (CoordinatesParser_instance) { delete CoordinatesParser_instance; CoordinatesParser_instance = NULL; } if(hist3d) { delete hist3d; hist3d = NULL; } for (__int32 ch = 0;ch<80;ch++) { if (adc_trace[ch]) delete[] adc_trace[ch]; adc_trace[ch] = 0; } } }; #endif // #ifndef SharedClass_IS_DEFINED StdAfx.hS// stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once //#define _BIND_TO_CURRENT_VCLIBS_VERSION 1 #define _BIND_TO_CURRENT_MFC_VERSION 1 #define _BIND_TO_CURRENT_CRT_VERSION 1 #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #include // MFC core and standard components #include // MFC extensions #ifndef _AFX_NO_OLE_SUPPORT #include // MFC OLE classes #include // MFC OLE dialog classes #include // MFC OLE automation classes #endif // _AFX_NO_OLE_SUPPORT #ifndef _AFX_NO_DB_SUPPORT #include // MFC ODBC database classes #endif // _AFX_NO_DB_SUPPORT #ifndef _AFX_NO_DAO_SUPPORT #include // MFC DAO database classes #endif // _AFX_NO_DAO_SUPPORT #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows 95 Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT UserSP.h // UserSP.h : main header file for the UserSP DLL // #pragma once #ifndef __AFXWIN_H__ #error "include 'stdafx.h' before including this file for PCH" #endif #include "resource.h" // main symbols #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef USERSP_EXPORTS #define USP_API __declspec(dllexport) #include "TUserSP.h" #else #define USP_API __declspec(dllimport) #endif class CDoubleArray; // CUserSPApp // See UserSP.cpp for the implementation of this class // class CUserSPApp : public CWinApp { public: CUserSPApp(); // Overrides public: BOOL InitInstance(); // Possible Spectrum calling functions... public: DECLARE_MESSAGE_MAP() }; class CCoboldDocSpectrum; class CParameter; class USP_API CUserSpectrum { // constructor / destructor public: CUserSpectrum(); CUserSpectrum(void *pCDoc); virtual ~CUserSpectrum(); // implemenation public: // spectra math functions void AddOneAt(__int32 iSpNr, double dChannel); void AddOneAt(__int32 iSpNr, double dChannelX, double dChannelY); void AddValueAt(__int32 iSpNr,double dChannel, double dValue); void AddValueAt(__int32 iSpNr,double dChannelX, double dChannelY, double dValue); void SetValueAt(__int32 iSpNr,double dChannel, double dValue); void SetValueAt(__int32 iSpNr,double dChannelX, double dChannelY, double dValue); double GetValueAt(__int32 iSpNr,double dChannel); double GetValueAt(__int32 iSpNr,double dChannelX, double dChannelY); double GetBinValueAt(__int32 iSpNr, __int64 iChannel); double GetBinValueAt(__int32 iSpNr, __int64 iChannelX, __int64 iChannelY); void SetBinValueAt(__int32 iSpNr, __int64 iChannel, double dValue); void SetBinValueAt(__int32 iSpNr, __int64 iChannelX, __int64 iChannelY, double dValue); bool GetHistogramDataArray(__int32 iSpNr, double *pData, __int64 MaxIndex); bool SetHistogramDataArray(__int32 iSpNr, double *pData, __int64 MaxIndex); // spectra information functions // index __int64 GetBinIndexX(__int32 iSpNr, double Channel); __int64 GetBinIndexY(__int32 iSpNr, double Channel); double GetBinChannelX(__int32 iSpNr, unsigned __int64 Channel); double GetBinChannelY(__int32 iSpNr, unsigned __int64 Channel); // bins __int64 GetNumberOfXBins(__int32 iSpNr); __int64 GetNumberOfYBins(__int32 iSpNr); // diverse information __int32 FindSpectrum(char *pcSpName); __int64 GetDisplayedSpectrumNumber(); CString GetDisplayedSpectrumName(); CString GetSpectrumName(__int32 iSpNr); __int32 GetSpectrumType(__int32 iSpNr, bool bDisplayError); void SetGaussFitValues(__int32 iSpNr, double x0, double y0, double Sigma, double YOffset, double lowLimit, double highLimit, double usedLowLimit, double usedHighLimit); // coordinate __int32 GetCoordinateIndexByName(char *pcCoordinateName); char * GetCoordinateNameByIndex(__int32 i32Index); // marker/cursor functions void GetXYCursor(double &xRet, double &yRet, bool bSnap); void GetXYBoxCursor(double &xStartRet, double &yStartRet, double &xEndRet, double &yEndRet, bool bSnap); void SetMarker(CString csType,CDoubleArray &InputData); protected: CCoboldDocSpectrum *pSP; #ifdef USERSP_EXPORTS CtUserSpectrum *ptUserSp; #endif public: }; #ifdef __cplusplus } #endif Coltrims.h$#pragma warning(disable : 4996) #include "stdafx.h" #ifndef _Coltrims_include #define _Coltrims_include #include "resort64c.h" #include "CDan.h" #include "DANUtilities.h" #include "LMInfo.h" #include "math.h" #include "Write_File.h" #include "SharedClass.h" #ifndef FADC_MANAGER_CLASS_IS_DEFINED struct peak_info_struct { double position_ns; double binsize_ns; double height; double integral_ns; double left_edge_position_ns; double right_edge_position_ns; double fwhm_ns; }; #endif #define DAQ_VERSION8 20101015 #define DAQ_VERSION7 20080507 // 07.05.2008 #define DAQ_VERSION6 20080901 #define DAQ_VERSION5 20020408 #define DAQ_VERSION4 20020408 #define LMF_VERSION5 5 #define LMF_VERSION6 6 #define LMF_VERSION7 7 #define LMF_VERSION8 8 #define LMF_VERSION9 0x9 #define LMF_VERSION10 0xa #define DAN_VERSION7 20090527 #define DAN_VERSION6 20070901 #define DAN_VERSION5 20020513 #define DAN_SUBVERSION 0x0002 // increase with 1 (start with 0 at V4) #define MAX_NUM_OF_PARTICLES (25) #define p_au 1.985e-24 #define mass_amu 1.66056e-27 #define mass_e 9.1094e-31 #define eV 1.602176487e-19 #define pi 3.14159265 //#define FULL_COLTRIMS_DAN class vector_class { public: double x,y,z; double Abs(void) {return sqrt(x*x+y*y+z*z);} vector_class() { this->x = 0.; this->y = 0.; this->z = 0.; } vector_class(double x, double y, double z) { this->x = x; this->y = y; this->z = z; } vector_class& operator=(const vector_class &rhs) { if (this != &rhs) { this->x = rhs.x; this->y = rhs.y; this->z = rhs.z; } return *this; } vector_class& operator=(const double value) { this->x = value; this->y = value; this->z = value; return *this; } vector_class & operator+=(const vector_class &rhs) { this->x = this->x + rhs.x; this->y = this->y + rhs.y; this->z = this->z + rhs.z; return *this; } vector_class & operator-=(const vector_class &rhs) { this->x = this->x - rhs.x; this->y = this->y - rhs.y; this->z = this->z - rhs.z; return *this; } vector_class & operator*=(const double value) { this->x = this->x * value; this->y = this->y * value; this->z = this->z * value; return *this; } vector_class & operator*=(const vector_class v) { this->x = this->x * v.x; this->y = this->y * v.y; this->z = this->z * v.z; return *this; } vector_class & operator/=(const double value) { this->x = this->x / value; this->y = this->y / value; this->z = this->z / value; return *this; } const vector_class operator+(const vector_class &other) const { return (vector_class(*this) += other); } const vector_class operator-(const vector_class &other) const { return (vector_class(*this) -= other); } const vector_class operator*(const double value) const { vector_class result = *this; result *= value; return result; } const vector_class operator*(const vector_class v) const { vector_class result = *this; result *= v; return result; } const vector_class operator/(const double value) const { vector_class result = *this; result /= value; return result; } double operator*(const vector_class &rhs) const { double v = this->x * rhs.x + this->y * rhs.y + this->z * rhs.z; return v; } void cross(vector_class a, vector_class b) { this->x = a.y*b.z - a.z*b.y; this->y = a.z*b.x - a.x*b.z; this->z = a.x*b.y - a.y*b.x; } void rotate(vector_class a, double angle_RAD) { a = a / a.Abs(); double c = cos(angle_RAD); double s = sin(angle_RAD); double f = 1.-c; vector_class b; b.x = this->x * (f*a.x*a.x+ c) + this->y * (f*a.x*a.y-s*a.z) + this->z * (f*a.x*a.z+s*a.y); b.y = this->x * (f*a.x*a.y+s*a.z) + this->y * (f*a.y*a.y+ c) + this->z * (f*a.y*a.z-s*a.x); b.z = this->x * (f*a.x*a.z-s*a.y) + this->y * (f*a.y*a.z+s*a.x) + this->z * (f*a.z*a.z+ c); this->x = b.x; this->y = b.y; this->z = b.z; } }; class particle_class { public: particle_class() {x_m=0.;y_m=0.;TOF_s=0.;m_q=0.;Ekin_eV=0.;mass_kg=0.;charge_C=0.;reconstruction_method=0;} double x_m; double y_m; double TOF_s; double m_q; vector_class p; double Ekin_eV; double reconstruction_method; bool is_ion; double mass_kg; double charge_C; particle_class& operator=(const particle_class &rhs) { if (this != &rhs) { this->x_m = rhs.x_m; this->y_m = rhs.y_m; this->TOF_s = rhs.TOF_s; this->m_q = rhs.m_q; this->p = rhs.p; this->Ekin_eV = rhs.Ekin_eV; this->reconstruction_method = rhs.reconstruction_method; this->is_ion = rhs.is_ion; this->mass_kg = rhs.mass_kg; this->charge_C = rhs.charge_C; } return *this; } }; class spectrometer_class { public: #ifdef FULL_COLTRIMS_DAN double time_zero_offset_ns; double E_field; double B_field; double ion_accel_length; double ion_drift_length; double elec_accel_length; double elec_drift_length; double i_mass_kg; double i_charge_C; double e_mass_kg; double e_charge_C; double e_pos_offset_x; double e_pos_offset_y; double ion_pos_offset_x; double ion_pos_offset_y; #endif }; class detector_parameters_class { public: detector_parameters_class() { use_this_detector=false; sorter=0; sum_walk_calibrator=0; pos_walk_calibrator=0; scalefactors_calibrator=0; particle=0; parameter_address_of_this_detector=0; parameter_address_of_next_detector=0; ipUseReconstruction=0; AutoCalibration=false; det_name=""; number_of_particles=0; } ~detector_parameters_class() { if (sorter) {delete sorter; sorter=0;} if (sum_walk_calibrator) {delete sum_walk_calibrator; sum_walk_calibrator=0;} if (pos_walk_calibrator) {delete pos_walk_calibrator; pos_walk_calibrator=0;} if (scalefactors_calibrator) {delete scalefactors_calibrator; scalefactors_calibrator=0;} } bool use_this_detector; __int32 parameter_address_of_this_detector; __int32 parameter_address_of_next_detector; double dpCOx_pos; double dpCOy_pos; double dpCOx_rot; double dpCOy_rot; double dpRotA; double w_offset; double dpOSumu; double dpOSumv; double dpOSumw; bool bDiscard_MCP_signals; __int32 ipUseReconstruction; bool AutoCalibration; __int32 Cu1,Cu2,Cv1,Cv2,Cw1,Cw2,Cmcp; // Channel numbers double time_zero_offset_ns; double u_ns, v_ns, w_ns; double mcp_ns; double Sumu_ns,Sumv_ns,Sumw_ns; double Xuv_mm, Yuv_mm, Xuw_mm, Yuw_mm, Xvw_mm, Yvw_mm; double corrected_sum_u_pos, corrected_sum_u; double corrected_sum_v_pos, corrected_sum_v; double corrected_sum_w_pos, corrected_sum_w; double fv_best, fw_best; double best_w_offset_ns; double detector_map_fill; __int32 detector_map_x,detector_map_y; CString det_name; __int32 number_of_particles; __int32 ConsistenceIndicator; // __int32 Anti_ConsistenceIndicator; // __int32 MCP_reflections_indicator; sort_class * sorter; sum_walk_calibration_class * sum_walk_calibrator; nonlinearity_calibration_class * pos_walk_calibrator; scalefactors_calibration_class * scalefactors_calibrator; particle_class * particle; }; void write_sum_calibration_table_to_file(detector_parameters_class &det, CString filename); void calculate_ConsistenceIndicators(detector_parameters_class &det, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES]); bool get_parameters_into_sorter(detector_parameters_class &det, __int32 parameter_offset, CDoubleArray &Parameters, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES]); void shift_detector_times(detector_parameters_class &det, __int32 direction, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES], spectrometer_class &spec); void Finalize_Detector(detector_parameters_class &det); void OutputToEventDataArray(detector_parameters_class &det, __int32 &address_counter, CDoubleArray &EventData, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES]); void ProcessDetector(detector_parameters_class &det, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES], spectrometer_class &spec); #ifdef FULL_COLTRIMS_DAN double GetZVelocity(double mass, double charge, double TOF, double E_field, double L_accel, double L_drift); void GetElectronMomentum(particle_class &particle, spectrometer_class spec); #endif __int32 GetHistogramID(char * name); ///////////////////////////////////////////////////////////////////// // This function produces pseudo random values between 0 and "factor" ///////////////////////////////////////////////////////////////////// inline double rnd() { return double(rand())/RAND_MAX; } ///////////////////////////////////////////// // This function returns the sign of a number ///////////////////////////////////////////// inline __int32 signofd(double a) { return (a == 0.0) ? 0 : (a < 0.0 ? -1 : 1); } #endif resort64c.hKo // The following ifdef block is the standard way of creating macros which make exporting // from a DLL simpler. All files within this DLL are compiled with the RESORT64C_EXPORTS // symbol defined on the command line. this symbol should not be defined on any project // that uses this DLL. This way any other project whose source files include this file see // RESORT64C_API functions as being imported from a DLL, wheras this DLL sees symbols // defined with this macro as being exported. //#define LINUX #ifndef LINUX #ifndef WINVER #define WINVER 0x0501 #endif #pragma warning(disable : 4005) #endif #ifndef NUM_IONS #define NUM_IONS (100) // needed for users who are porting their old projects from the old sort routine to the new one #endif #ifndef RESORT_IS_ALREADY_DEFINED #define RESORT_IS_ALREADY_DEFINED #define RESORT64C_API #ifndef LINUX #ifdef RESORT64C_EXPORTS #define RESORT64C_API __declspec(dllexport) #else // uncomment the following line if linking against the dynamic lib (resort64c.dll): // comment the line if linking against the static lib of resort64c.lib: #define RESORT64C_API __declspec(dllimport) #endif #else #ifndef __int32_IS_DEFINED #define __int32_IS_DEFINED #define __int32 int #define __int16 short #define __int64 long long #define __int8 char #endif #endif // List of error_codes of init()-function: // -1 wrong channel numbers // -2 uncorrected_time_sum_half_widths not correctly initialized // -3 corrected_time_sum_half_widths not correctly initialized // -4 tdc_array_row_length not correctly initialized // -5 MCP_radius not correctly initialized // -6 runtime not correctly initialized // -7 scalefactors not correctly initialized // -8 error allocating memory for internal arrays // -9 error during initialization of sum correctors // -10 error during initialization of pos correctors // -11 address of count-array not given // -12 address of tdc-array not given // -13 TDC binsize not given class sort_class; class profile_class; class gaussfit_class; class hit_class; class interpolate_class; class sum_walk_calibration_class; class scalefactors_calibration_class; class nonlinearity_calibration_class; #ifdef USE_DOUBLE_ARRAY_CLASS class double_array_class; #endif #ifdef USE_DOUBLE_ARRAY_CLASS class RESORT64C_API double_array_class { public: double_array_class(); // CONSTRUCTOR ~double_array_class(); double& operator[]( __int32 nSubscript ); double *pointer; __int32 * pointer_to_cnt; }; class RESORT64C_API double_array_pointer_class { public: double_array_pointer_class(); // CONSTRUCTOR ~double_array_pointer_class(); double_array_class& operator[]( __int32 nSubscript ); double_array_class pointer[7]; }; #endif class RESORT64C_API version_number_class { public: __int32 A; __int32 B; __int32 C; __int32 D; }; class RESORT64C_API signal_corrector_class { public: signal_corrector_class(); // FUNCTION virtual ~signal_corrector_class(); // FUNCTION virtual signal_corrector_class * clone(); // FUNCTION virtual double correct_sum(double t1, double t2,__int32 number_of_layer); // FUNCTION virtual double correct_pos(double t1, double t2,__int32 number_of_layer); // FUNCTION virtual double get_other_anode_signal_corrected(double tmcp_ns, double t_ns,__int32 left_or_right_side_of_output_signal, __int32 layer); // FUNCTION virtual double get_this_anode_signal_corrected(double tmcp_ns, double t_ns,__int32 left_or_right_side_of_input_signal, __int32 layer); // FUNCTION virtual __int32 configure(double max_runtime,double TDC_resolution_ns,bool use_HEX,bool use_pos_correction,bool use_sum_correction); // FUNCTION virtual double find_complement_raw_signal(double tmcp_ns, double t_ns, __int32 side_of_input_signal, interpolate_class * corrector); // FUNCTION interpolate_class * sum_corrector_U; interpolate_class * sum_corrector_V; interpolate_class * sum_corrector_W; interpolate_class * pos_corrector_U; interpolate_class * pos_corrector_V; interpolate_class * pos_corrector_W; interpolate_class * single_anode_signal_corrector[6]; interpolate_class * single_partner_anode_signal_corrector[6]; double TDC_resolution_ns; double max_runtime; bool correctors_are_initialized; bool use_HEX; bool use_pos_correction; bool use_sum_correction; private: virtual void init_single_correctors(); // FUNCTION }; class RESORT64C_API nonlinearity_calibration_class { public: nonlinearity_calibration_class(__int32 number_of_stages, __int32 number_of_columns, double fu, double fv, double fw, double tdc_resolution, double max_runtime); // CONSTRUCTOR virtual ~nonlinearity_calibration_class(); // FUNCTION virtual void finalize(); // FUNCTION virtual void fill_pos_histograms(double u1, double u2, double v1, double v2, double w1, double w2, double tmcp); // FUNCTION virtual void generate_pos_correction_profiles(); // FUNCTION virtual double get_ratio_of_full_bins(); // FUNCTION virtual bool map_is_full_enough(); // FUNCTION virtual double get_corrected_position_ns(double pos_ns,__int32 layer); // FUNCTION virtual double get_corrected_anode_signal_ns(double tmcp_ns, double signal_ns, __int32 side_of_input_signal, __int32 layer); // FUNCTION virtual bool get_correction_point(double &pos_ns, double &correction_ns, __int32 index, __int32 layer); // FUNCTION virtual double get_corrected_partner_anode_signal_ns(double tmcp_ns, double t_ns, __int32 side_of_output_signal, __int32 layer); // FUNCTION // virtual nonlinearity_calibration_class * clone(); // FUNCTION __int32 detector_map_size; double fu,fv,fw; __int32 number_of_columns; double tdc_resolution; __int32 number_of_stages; __int32 full_bins_counter; __int32 bins_with_1_fill_counter; profile_class ** pos_profile[3]; profile_class * single_corrector_profiles[6]; profile_class * single_complement_corrector_profiles[6]; sum_walk_calibration_class * sum_walk_calib; interpolate_class * correction[3]; bool initialization_successful; private: virtual bool reset(); // FUNCTION __int32 bins_in_usable_area; __int32 full_bin_limit; __int16 ** detector_map_counter; double runtime; float * stack[6]; __int32 stack_counter; __int32 stack_size; }; class RESORT64C_API peak_tracker_class { public: static peak_tracker_class * new_peak_tracker_class(__int32 stack_size, double center_left_bin, double center_right_bin, __int32 number_of_bins); // static CONSTRUCTOR virtual ~peak_tracker_class(); // FUNCTION virtual void reset(); // FUNCTION virtual double track(double tracked_value); // FUNCTION virtual bool is_new_result_available(); // FUNCTION __int32 stack_size; double center_left_bin; double center_right_bin; __int32 number_of_bins; double binsize; __int32 * internal_histogram; __int32 internal_hit_counter; __int32 underflows; __int32 overflows; double last_return_value; double maximum_return_up_to_now; bool new_result_available; double maximum_total_correction_up_to_now; double sum_of_all_corrections_up_to_now; double offset_to_user_in_first_run; bool this_is_the_first_run; __int32 number_of_resets; private: peak_tracker_class(__int32 stack_size, double center_left_bin, double center_right_bin, __int32 number_of_bins); // CONSTRUCTOR }; class RESORT64C_API sum_walk_calibration_class { public: static sum_walk_calibration_class * new_sum_walk_calibration_class(sort_class* mother_sort_instance, __int32 number_of_columns); // CONSTRUCTOR sum_walk_calibration_class(__int32 number_of_columns, bool use_HEX, double max_runtime_ns,double tdc_resolution); // CONSTRUCTOR virtual sum_walk_calibration_class * clone(); // FUNCTION virtual ~sum_walk_calibration_class(); // FUNCTION virtual void finalize(); // FUNCTION virtual bool init_with_sorter(sort_class * mother_sort_instance); // FUNCTION virtual void fill_sum_histograms(); // FUNCTION virtual void fill_sum_histograms(double u1, double u2, double v1, double v2, double w1, double w2, double mcp_ns); // FUNCTION virtual void fill_sum_histograms(double u1, double u2, double v1, double v2, double mcp_ns); // FUNCTION virtual void generate_sum_walk_profiles(); // FUNCTION virtual double get_corrected_sum_ns(double sum_ns, double pos_ns,__int32 layer); // FUNCTION virtual bool get_correction_point(double &pos_ns, double &correction_ns, __int32 index, __int32 layer); // FUNCTION sort_class * sorter; __int32 number_of_columns; profile_class * sumu_profile; profile_class * sumv_profile; profile_class * sumw_profile; bool initialization_successful; double tdc_resolution; private: sum_walk_calibration_class(sort_class* mother_sort_instance, __int32 number_of_columns); // FUNCTION }; class RESORT64C_API scalefactors_calibration_class { public: scalefactors_calibration_class(bool BuildStack,double runtime, double runtime_inner_limit, double fu,double fv,double fw); // CONSTRUCTOR virtual ~scalefactors_calibration_class(); // FUNCTION virtual void feed_calibration_data(double u_ns, double v_ns, double w_ns, double w_ns_minus_woffset); // FUNCTION virtual void do_auto_calibration(double w_offset); // FUNCTION virtual double get_ratio_of_full_bins(); // FUNCTION virtual bool map_is_full_enough(); // FUNCTION virtual scalefactors_calibration_class * clone(); // FUNCTION double fu,fv,fw; double best_fv, best_fw, best_w_offset; double detector_map_fill; __int32 binx,biny; __int32 detector_map_size; __int32 full_bins_counter; __int32 bins_with_1_fill_counter; bool disable_optimization_of_fv; bool disable_optimization_of_fw; bool disable_optimization_of_offset; bool new_was_succesful; private: virtual double integrate_deviations(double fv, double fw, double w_offset); // FUNCTION __int32 full_bin_limit; bool BuildStack; double runtime; double runtime_inner_limit; float * u_ns_stack; float * v_ns_stack; float * w_ns_stack; float * X_calibration; float * Y_calibration; __int16 **detector_map_counter; float **detector_map; __int32 TDC_stack_counter; __int32 tdc_stack_size; __int32 bins_in_inner_area; }; class RESORT64C_API gaussfit_class { public: gaussfit_class();// CONSTRUCTOR gaussfit_class(double * double_y_array,__int32 number_of_points);// CONSTRUCTOR gaussfit_class(__int32 * int_y_array,__int32 number_of_points);// CONSTRUCTOR gaussfit_class(double * double_y_array,double fwhm,double x_pos,double height,__int32 number_of_points);// CONSTRUCTOR gaussfit_class(__int32 * int_y_array,double fwhm,double x_pos,double height,__int32 number_of_points);// CONSTRUCTOR virtual ~gaussfit_class(); virtual bool do_gauss_fit(); // FUNCTION virtual bool find_good_start_values(); // FUNCTION virtual void reset(); // FUNCTION virtual void smooth(); // FUNCTION virtual gaussfit_class * clone(); // FUNCTION virtual double get_random_gauss_value(); // FUNCTION virtual double get_random_value(); // FUNCTION __int32 number_of_points; double* double_y_array; double fwhm,height,x_pos; double fwhm_stepsize,height_stepsize,x_pos_stepsize; __int32 max_number_of_iterations; private: bool private_array_used; virtual void copy_to_private_double_array(__int32 *); // FUNCTION virtual void copy_to_private_double_array(double *); // FUNCTION virtual double calculate_error(double, double, double); // FUNCTION virtual double gauss_value(double , double , double , double); // FUNCTION }; class RESORT64C_API profile_class { public: profile_class(); // CONSTRUCTOR virtual ~profile_class(); virtual void generate_profile_with_gauss(); // FUNCTION virtual void generate_profile_with_box(); // FUNCTION virtual void generate_profile_with_averaging(); // FUNCTION virtual bool box_fit(double * fit_array, __int32 number_of_bins, double &pos, double &width); // FUNCTION virtual void reset(); // FUNCTION virtual void fill_matrix(double x_pos,double y_pos,double value); // FUNCTION virtual void fill_matrix(__int32 x_bin,__int32 y_bin,double value); // FUNCTION virtual void fill_matrix(double x_pos,double y_pos); // FUNCTION virtual void fill_matrix(__int32 x_bin,__int32 y_bin); // FUNCTION virtual void clear_matrix(); // FUNCTION virtual double get_x_bin_as_double(double x_pos); // FUNCTION virtual double get_y_bin_as_double(double y_pos); // FUNCTION virtual __int32 get_x_bin(double x_pos); // FUNCTION virtual __int32 get_y_bin(double y_pos); // FUNCTION virtual double get_bin_center_x(double x_bin); // FUNCTION virtual double get_bin_center_y(double y_bin); // FUNCTION virtual double get_bin_center_x(__int32 x_bin); // FUNCTION virtual double get_bin_center_y(__int32 y_bin); // FUNCTION virtual double get_y(__int32 bin); // FUNCTION virtual double get_fwhm(__int32 bin); // FUNCTION virtual double get_y(double x_pos); // FUNCTION virtual double get_fwhm(double x_pos); // FUNCTION virtual unsigned __int32 get_bin_content(__int32 bin); // FUNCTION virtual unsigned __int32 get_bin_content(double x_pos); // FUNCTION virtual void heal_gaps_where_fit_did_not_work(); // FUNCTION virtual profile_class * clone(); // FUNCTION virtual void transfer_to_interpolate_class_instance(interpolate_class * interpolate_class_instance); // FUNCTION __int32 number_of_columns; __int32 number_of_rows; double center_of_upper_bin; double center_of_lower_bin; double center_of_left_bin; double center_of_right_bin; double * double_profile_y; double * double_profile_fwhm; bool * bool_profile_fit_worked; double ** double_source_matrix; unsigned __int32 * bin_content; private: //double dNaN; bool using_internal_matrix; bool profile_exists; }; class RESORT64C_API interpolate_class { friend class sort_class; public: interpolate_class(); // CONSTRUCTOR virtual ~interpolate_class(); virtual double get_y(double x_pos); // FUNCTION void set_point(double x_pos, double y_pos); // FUNCTION void reset(); // FUNCTION virtual interpolate_class * clone(); // FUNCTION double min_x,max_x; __int32 number_of_bins_per_nanosecond; __int32 number_of_points; double binsize_ns; bool is_sorted; bool use_fast_interpolation; bool init_successful; private: void init_after_setting_points(); // FUNCTION // must be called after the points have been fed in double interpolate(double x_pos); // FUNCTION void sort(); // FUNCTION void find_duplicates(); // FUNCTION __int32 size_of_array; __int32 size_of_input_arrays; double* x_input; double* y_input; double* y_pos; }; class RESORT64C_API hit_class { friend class sort_class; public: hit_class(sort_class *); // CONSTRUCTOR virtual ~hit_class(); __int32 iCu1,iCu2,iCv1,iCv2,iCw1,iCw2,iCmcp; double fu,fv,fw; double uncorrected_time_sum_half_width_u,uncorrected_time_sum_half_width_v,uncorrected_time_sum_half_width_w; double corrected_time_sum_half_width_u,corrected_time_sum_half_width_v,corrected_time_sum_half_width_w; __int32 number_of_reconstructed_signals_in_deadtime_shadow; double tu1, tu2; double tv1, tv2; double tw1, tw2; double tmcp; double ctu1, ctu2; double ctv1, ctv2; double ctw1, ctw2; double tsummcp; bool tsummcp_exists; double x, y, time; bool use_HEX; __int32 set_of_rules; sort_class * sort_instance; bool common_start_mode; #ifdef USE_DOUBLE_ARRAY_CLASS double_array_pointer_class tdc; #else double * tdc[7]; #endif __int32 *cnt; __int32 number_of_possible_reflections; __int32 number_of_reconstructed_signals_sitting_on_top_of_a_real_signal; //__int32 number_of_already_used_signals; bool hit_is_good; __int32 number_of_combination; __int16 * used_signals[7]; double * reconstructed_signals[7]; __int32 reconstructed_cnt[7]; __int32 number_of_original_anode_signals; bool with_mcp; unsigned __int32 DEBUG_event_number; unsigned __int32 unique_hit_identifier; __int32 method; __int32 sum_stack_size; double * u_sum_stack1, *v_sum_stack1, *w_sum_stack1; double * u_sum_stack2, *v_sum_stack2, *w_sum_stack2; __int32 * u_sum_valid, *v_sum_valid, *w_sum_valid; __int32 * sum_killers; __int32 number_of_destroyed_sums; bool hit_was_treated_by_stolen_signal_function; __int32 channel_treated_by_stolen_signal_function; #ifdef USE_DOUBLE_ARRAY_CLASS double_array_class tdc_Cu1,tdc_Cu2,tdc_Cv1,tdc_Cv2,tdc_Cw1,tdc_Cw2,tdc_Cmcp; #else double *tdc_Cu1,*tdc_Cu2,*tdc_Cv1,*tdc_Cv2,*tdc_Cw1,*tdc_Cw2,*tdc_Cmcp; #endif __int16 *used_signals_Cu1,*used_signals_Cu2,*used_signals_Cv1,*used_signals_Cv2,*used_signals_Cw1,*used_signals_Cw2,*used_signals_Cmcp; virtual __int32 get_number_of_signals_which_are_used_more_than(__int32); // FUNCTION private: bool corrected_anode_signals_are_computed; virtual void generate(__int32 iCu1, __int32 iCu2, __int32 iCv1, __int32 iCv2, __int32 iCw1, __int32 iCw2, __int32 iCmcp, __int32 number_of_combination, __int32 unique_hit_identifier,__int32 set_of_rules); // FUNCTION virtual bool is_in_deadtime_shadow(double , __int32); // FUNCTION virtual bool is_closer_to_a_real_signal_than(double , __int32 , double); // FUNCTION virtual bool could_be_a_reflection(__int32 , __int32); // FUNCTION virtual bool are_N_signals_used_more_than(__int32,__int32); // (including own signals of this hit) FUNCTION virtual void clone(hit_class *); // FUNCTION virtual void apply_filter_rules(); // FUNCTION virtual __int32 get_method_number(__int32,__int32,__int32,__int32,__int32,__int32,__int32); // FUNCTION virtual __int32 how_many_reconstructed_pairs_at_MCP_edge(); // FUNCTION virtual __int32 get_number_of_destroyed_sums(); // FUNCTION virtual bool check_if_a_used_anode_signal_belongs_to_a_destroyed_sum(); // FUNCTION virtual void compute_time(); // FUNCTION virtual bool signal_is_distorted(__int32,__int32,double,double); // FUNCTION }; class RESORT64C_API sort_class { public: sort_class(); // CONSTRUCTOR virtual ~sort_class(); virtual __int32 sort(); // FUNCTION virtual __int32 run_without_sorting(); // FUNCTION virtual void sort_an_hit_array_in_time(hit_class* hit_array[], __int32 number_of_hits, bool small_numbers_first); // FUNCTION // virtual bool expand_an_hit_array(hit_class**[], __int32 * , __int32); // FUNCTION virtual __int32 init_after_setting_parameters(); // FUNCTION virtual void get_error_text(__int32 error_code,__int32 buffer_length,char* destination_array); virtual void shift_layer_w(__int32 add_or_sub_sign,double w_offset); // FUNCTION virtual void shift_sums(__int32 add_or_sub_sign,double sumu_offset,double sumv_offset); // FUNCTION virtual void shift_sums(__int32 add_or_sub_sign,double sumu_offset,double sumv_offset,double sumw_offset); // FUNCTION virtual void shift_position_origin(__int32 add_or_sub_sign,double pos_x_mm_offset,double pos_y_mm_offset); // FUNCTION virtual sort_class * clone(); // FUNCTION static version_number_class get_version_number(); // FUNCTION // the following variables must be initialized by the user: __int32 *count; double *tdc_pointer; double fu,fv,fw; double runtime_u,runtime_v,runtime_w; //or double max_runtime; __int32 tdc_array_row_length; #ifdef USE_DOUBLE_ARRAY_CLASS double_array_pointer_class tdc; #else double *tdc[7]; #endif __int32 cnt[7]; double uncorrected_time_sum_half_width_u,uncorrected_time_sum_half_width_v,uncorrected_time_sum_half_width_w; bool common_start_mode; // true = common start, false = common stop double MCP_radius; bool use_HEX; bool use_MCP; double TDC_resolution_ns; __int32 Cu1,Cu2,Cv1,Cv2,Cw1,Cw2,Cmcp; //optional: double corrected_time_sum_half_width_u,corrected_time_sum_half_width_v,corrected_time_sum_half_width_w; double dead_time_anode; double dead_time_mcp; bool use_sum_correction; bool use_pos_correction; bool run_without_sorting_flag; bool dont_overwrite_original_data; bool use_reflection_filter_on_u1,use_reflection_filter_on_u2; bool use_reflection_filter_on_v1,use_reflection_filter_on_v2; bool use_reflection_filter_on_w1,use_reflection_filter_on_w2; double u1_reflection_time_position, u1_reflection_half_width_at_base; double u2_reflection_time_position, u2_reflection_half_width_at_base; double v1_reflection_time_position, v1_reflection_half_width_at_base; double v2_reflection_time_position, v2_reflection_half_width_at_base; double w1_reflection_time_position, w1_reflection_half_width_at_base; double w2_reflection_time_position, w2_reflection_half_width_at_base; //the following variables should not be modified: double pos_check_radius_mm; double triple_MCP_time_tolerance_ns; double lower_dead_time_margin; __int32 maximum_uses_of_signals; //double pre_dead_time; __int32 maximum_of_already_used_signals_in_one_hit; bool initialization_successful; double * reconstructed_signals[7]; __int32 reconstructed_cnt[7]; __int16 * used_signals[7]; __int32 output_hit_array_counter; hit_class ** output_hit_array; unsigned __int32 unique_hit_identifier; __int32 DEBUG_flag; unsigned __int32 DEBUG_event_number; version_number_class version_number; #ifdef USE_DOUBLE_ARRAY_CLASS double_array_class tdc_Cu1,tdc_Cu2,tdc_Cv1,tdc_Cv2,tdc_Cw1,tdc_Cw2,tdc_Cmcp; #else double *tdc_Cu1,*tdc_Cu2,*tdc_Cv1,*tdc_Cv2,*tdc_Cw1,*tdc_Cw2,*tdc_Cmcp; #endif __int16 *used_signals_Cu1,*used_signals_Cu2,*used_signals_Cv1,*used_signals_Cv2,*used_signals_Cw1,*used_signals_Cw2,*used_signals_Cmcp; __int32 local_sort_instance_id; signal_corrector_class * signal_corrector; private: virtual bool create_new_hit_instance(__int32 &,__int32 &, hit_class **&,__int32 &); // FUNCTION virtual bool detect_twins(); // FUNCTION virtual bool get_combination(__int32 , __int32 , bool); // FUNCTION virtual void search_combinations(__int32,bool,__int32,__int32,__int32); // FUNCTION virtual bool init_arrays(); // FUNCTION virtual void delete_arrays(); // FUNCTION virtual void sort_into_output_hit_array(); // FUNCTION virtual void get_all_from_one_combination(__int32,__int32,__int32); // FUNTCION virtual bool garbage_was_found(); // FUNTCION virtual __int32 find_next_hit_by_signal(__int32, __int32, __int32, hit_class * [], __int32); // FUNTCION virtual void remove_hit_from_output_hit_array(__int32); // FUNTCION virtual void kill_all_hits_using_this_signal_except(__int32,__int32,__int32*); // FUNTCION virtual void find_stolen_anode_signals(hit_class*[],__int32); // FUNCTION static __int32 global_instance_id_counter; bool ready_to_run; __int32 number_of_already_used_signals; double tdc_signal_dummy; __int32 number_of_blocked_combinations; unsigned __int32 * blocked_combinations[7]; __int32 temp_hit_array_counter; hit_class ** temp_hit_array; __int32 number_of_hit_instances_in_temp_hit_array_stack; __int32 number_of_hit_instances_in_output_hit_array_stack; __int32 combination[7]; __int32 size_of_temp_hit_array_stack; __int32 size_of_output_hit_array_stack; }; #endif #ifdef iwfh938qh4f9q8hf9hq98h498hfq98hq98h Help section: How to use the "peak_tracker_class" by Achim Czasch: make an instance of the peak_tracker_class: example: peak_tracker_class * tracker = peak_tracker_class::new_peak_tracker_class(20000,-w,w,int(2.*w/0.025+1.e-6)+1); this will initialze "tracker". Do not forget to delete tracker at the end of the prgram to prevent memory leaks: delete tracker; "tracker" will have an internal histogram. The center of the left bin will be at -w. The center of teh right bin will be at +w. The histogram is divided into int(2.*w/0.025+1.e-6)+1 bins. after 20000 fill commands "tracker" will calculate the center of mass of the histogram and then clear the histogram. This is called one "cycle". Before "tracker" can be used it needs some information. When you determine the position of a peak in a histogram you will probably get a slightly different results than the simple COM-calucaltion. Therefore you must tell "tracker" about this offset. This is done with tracker->offset_to_user_in_first_run = x The best way to get "x" is to create a histogram and fill it only with the first 20000 events (the first cycle). Then determine the position and feed the offset into "tracker". To prevent some pitfalls it is best to track a value which should be at zero. Now you can start to fill values into "tracker": tracker->track(value); Each time after such a fill you can ask tracker if it has produced a new correction offset (in other words "if it has finished one cycle"): if(tracker->is_new_result_available()) offset = offset - tracker->last_return_value; tracker->reset() clears the internal histogram. You can keep track of what "tracker" is doing by looking at the following member variables: bool tracker->this_is_the_first_run (true during first cycle. False after first cycle.) int tracker->internal_hit_counter (reset after each cycle) double tracker->maximum_return_up_to_now (maximum return value of all cycles) double tracker->maximum_total_correction_up_to_now (maximum total correction since start) int tracker->number_of_resets int tracker->overflows (reset after each cycle) int tracker->underflows (reset after each cycle) double tracker->sum_of_all_corrections_up_to_now (sum of all corrections. This is different from "maximum_total_correction_up_to_now".) The value "tracker->maximum_total_correction_up_to_now" helps to check wether a value has drifted too far. #endif #include "stdafx.h" #ifndef WRITE_FILE_HEADER_INCLUDED #define WRITE_FILE_HEADER_INCLUDED //#include "resort64c.h" #include "CoboldDll.h" class Write_File { public: void WriteASCIIData(__int32 *pointer_to_CNT_array, double * pointer_to_TDC_array); void WriteLMFData( __int32 *pointer_to_CNT_array, double * pointer_to_TDC_array, CDoubleArray &, LARGE_INTEGER timestamp); bool OpenFile(); __int64 number_of_events; Write_File(__int32 mode, __int32 tdc_row_length, CDoubleArray &); ~Write_File(); __int32 iDAQ_ID; // parameter 8 __int32 LMF_version; // parameter 9 CFile * output_file; CArchive * File_Archive; private: void write_LMF_header_part1(); void write_TDC8HP_Cobold2008R1_header(); void write_TDC8HP_Cobold2008R2_header(); void write_TDC8PCI2_Cobold2008R2_header(); CString LMVersionstring; CString LMFilePathName; CString LMComment; CString csDAqInfo; CString csConfigFile; CString csINLFile; CString csDNLFile; CTime Starttime; CTime Stoptime; unsigned __int32 archive_flag; __int32 mode; __int32 tdc_row_length; char name[1024]; CDoubleArray parameters_copy; unsigned __int64 LMHeadersize; HMODULE DAQ_lib; bool header_was_written; // for Cobold2008 unsigned __int64 LMUserdefinedheadersize; unsigned __int64 number_of_coordinates; typedef void (*MyProc3)(CArchive *pAr, CDoubleArray &Parameter, unsigned __int64 *pLMUserHeaderLength); // for Cobold2008 typedef void (*MyProc4)(unsigned __int32 _ui32LMHeaderVersion); // for Cobold2008 typedef LPCTSTR (*MyProc5)(); // for Cobold2008 MyProc3 DAqOnlineInitialize; MyProc4 DAqSetLMHeaderVersion; MyProc5 DAqGetInformationString; // for Cobold2002: //unsigned __int32 LMUserdefinedheadersize; //typedef void (*MyProc3)(CArchive *, CDoubleArray &, unsigned __int32 *); //MyProc3 DAQOnlineInitialize; }; #endif l4 Write_File.h{#include "stdafx.h" #ifndef WRITE_FILE_HEADER_INCLUDED #define WRITE_FILE_HEADER_INCLUDED //#include "resort64c.h" #include "CoboldDll.h" class Write_File { public: void WriteASCIIData(__int32 *pointer_to_CNT_array, double * pointer_to_TDC_array); void WriteLMFData( __int32 *pointer_to_CNT_array, double * pointer_to_TDC_array, CDoubleArray &, LARGE_INTEGER timestamp); bool OpenFile(); __int64 number_of_events; Write_File(__int32 mode, __int32 tdc_row_length, CDoubleArray &); ~Write_File(); __int32 iDAQ_ID; // parameter 8 __int32 LMF_version; // parameter 9 CFile * output_file; CArchive * File_Archive; private: void write_LMF_header_part1(); void write_TDC8HP_Cobold2008R1_header(); void write_TDC8HP_Cobold2008R2_header(); void write_TDC8PCI2_Cobold2008R2_header(); CString LMVersionstring; CString LMFilePathName; CString LMComment; CString csDAqInfo; CString csConfigFile; CString csINLFile; CString csDNLFile; CTime Starttime; CTime Stoptime; unsigned __int32 archive_flag; __int32 mode; __int32 tdc_row_length; char name[1024]; CDoubleArray parameters_copy; unsigned __int64 LMHeadersize; HMODULE DAQ_lib; bool header_was_written; // for Cobold2008 unsigned __int64 LMUserdefinedheadersize; unsigned __int64 number_of_coordinates; typedef void (*MyProc3)(CArchive *pAr, CDoubleArray &Parameter, unsigned __int64 *pLMUserHeaderLength); // for Cobold2008 typedef void (*MyProc4)(unsigned __int32 _ui32LMHeaderVersion); // for Cobold2008 typedef LPCTSTR (*MyProc5)(); // for Cobold2008 MyProc3 DAqOnlineInitialize; MyProc4 DAqSetLMHeaderVersion; MyProc5 DAqGetInformationString; // for Cobold2002: //unsigned __int32 LMUserdefinedheadersize; //typedef void (*MyProc3)(CArchive *, CDoubleArray &, unsigned __int32 *); //MyProc3 DAQOnlineInitialize; }; #endif l4XCCoboldDocCoordinateA ch01nDAq RAW coordinatesA ch01s01DAq RAW coordinatesA ch02nDAq RAW coordinatesA ch02s01DAq RAW coordinatesA ch03nDAq RAW coordinatesA ch03s01DAq RAW coordinatesA ch04nDAq RAW coordinatesA ch04s01DAq RAW coordinatesA ch05nDAq RAW coordinatesA ch05s01 DAq RAW coordinatesA ch06n DAq RAW coordinatesA ch06s01 DAq RAW coordinatesA ch07n DAq RAW coordinatesA ch07s01 DAq RAW coordinatesA ch08nDAq RAW coordinatesA ch08s01DAq RAW coordinatesA LowResLevelInfoA AbsoluteEventTimeA DeltaEventTimeA EventCounterA TrueA rateA n01A n02A n03A n04A n05A n06A n07A n08A n09A n10A n11 A n12!A n13"A n14#A n15$A n16%A n17&A n18'A n19(A n20)A i_ConsistenceIndicator*A i_u_ns+A i_v_ns,A i_w_ns-A i_sumu.A i_sumv/A i_sumw0A i1_X_mm1A i1_Y_mm2A i1_r_mm3A i1_TOF_ns4A i2_X_mm5A i2_Y_mm6A i2_r_mm7A i2_TOF_ns8A i3_X_mm9A i3_Y_mm:A i3_r_mm;A i3_TOF_ns<A i4_X_mm=A i4_Y_mm>A i4_r_mm?A i4_TOF_ns@A i_Xuv_mmAA i_Yuv_mmBA i_Xuw_mmCA i_Yuw_mmDA i_Xvw_mmEA i_Yvw_mmFA i1_used_reconstruction_methodGA i_corrected_sumpos_UHA i_corrected_sum_UIA i_corrected_sumpos_VJA i_corrected_sum_VKA i_corrected_sumpos_WLA i_corrected_sum_WMA i_detector_map_xNA i_detector_map_yOA i_reflection_u1PA i_reflection_u2QA i_reflection_v1RA i_reflection_v2SA i_reflection_w1TA i_reflection_w2UA PH_gVA TOF_gWCCoboldDocCoordinateSet iAll_X_mm159=Z iAll_Y_mm26:>Z iAll_TOF_ns48<@A p`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~OOt _?_=3=_?+_LC7.ɭ?,>~Gѿ|u ?fg=y_yL~5?鹱a|~ύDeadtime of anode electronics (nanoseconds) (Always use 25 ns)time zero offset (will be added to all times on this detector)S1 = use MCP signal, 0 = discard all MCP signals and reconstruct using anode signalsGfirst parameter for the next detector (0 if this was the last detector) CCoboldDocConditioncsumu`@b@.s_w,i_correc HM^csumv`@a@/qCoordinateshG^csumwa@b@0fO$^csumuvV@V@01^csumuw@U@U@/P^csumvwT@T@.^ctofggx@@y@Wmmand ^ctofgnf@p@W^ctof_gV@V@8^ctof_n @U@U@7CCoboldDocSpectrum i_ConsistenceIndicatorD*P@?Q{GP@Q{GP@Q?GzA[=8@j{x?)ljAjAlDD`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~ {_o3K9~?;ѯ?sg~ߚN??߆}~*iٞJ;~{|ϟoT㟿?S?wS#_տ(pf?!C}m%}3[_緗_U ~Lk};w*t??.7;?_Jg;?>{|?~J?P6 i time i_sum U [ns].i@?@i@@i@\( hQ@xxxxxx @腙^?̂A$Al`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~ <;?\~'~~wmD﫟gD>v/T>Ͽ?ҟϟGi[BOןy߿ߠ{w/D_W7ߑ_?K?+?]xweyП~~B5W_?y?n|~W~A=0k^֟U?[U~/ֿy?v&?3k7{{F~A_hTL/V-?]}?z_lSiAnXOߤ/_֟~?eO?m~Okg?J]Wk;[S ߠ/׿|}տ)ҿ5^ky˴kRwQ8}_?J?77ﯧ+ 3pS7T=Կ?WjO^X{__ߔ;{w/篱õ#?S?_?m~C~O;翾sc{? k}ߢ?[ߕߪ ~Om<=K/ӟ׸HY??Я^?T~G߿ٿ+?C?՟|k w~\?C?o߿-ҟO?$Ϗ}i__%Ayڮҿ.{W?*_W=__ҟ??/I?{?U/P~Џ߭?S~C~79[? ~~W~_Tio\O~?R9vJ7~s;W[3yp~W)]}o JFo߿}?CyuJ{O+?Soߗ=O]m[ڿ'V?Пb}vS3?rP=OӟG*ϿI?U?OQC꓿Y>/V=c ?RB7Kԟ5ly_?*?Tڙ_S2v7C?P??Kߪj;[?Q{5~o?E~C{ПLE+שqq7MgS??џ翳4KQ5ZS[%ߤg{w.GHz ~{OOҟſ$3Qx|r{߿?WοmO_џ[F?=Q{Xe$ѿF'\na?_O+?_Ofo?\-CW_G?CD߿V|џ y^CR<~~_cO<ʯ _?+  ߳П~*MAϿCy=vmT T> K ?HRkm|2;_WF翧qlSyr|3Gt_*>?п?ӿ gQ ןEOA;__߫4{yprC~+@po&o/ϿOY=Pڕ_?}|By?ПR]_|)^-oLP+篫~}|⿡ :P{۵?dQ{4vLѿڿ?џʩ?vRKU{P_}[X=3m~O䭏kD=/C~}W/Y?Us?O/|??ta-_M~H=v~?7ԟo_?_+?T~t?ԟ[O<)kSO՟TUZY7R>\?_? _ Gg3;T᩟W)*73vv~[kƕʹ˿ FA~Oߣ%?}O寡z0v֟|%U3^?V){~ji|uAO/ҟ5_]~ARSП871? ?!<7~?_ߔ'CЧz/ֿ5=7_ߒ<[/ӿo?__П{rδw!?L~A~?XUO55>olߤtҟ翦J_,?wkMu_O:OL_V~5{џߦg=s_Կ<7ioM4'+篩R ~=uko?>?[П)^(lq_(tW*Ou>+M>D՟̺5~[LV}G?H_}UV;=5Lq?jOFZFKON~'[KiB7|Я'?)_W ӟ?#?=F?Oq_Oԟ{?'ӟ*^gs?8/?ȬKP>UuU]g5~(?_'??v)_W7?wo{Oޯ?%??Я_?_~/ϗ?wOJX~M#=R~CLv~5~Z~Kk'?\~E|Wϝ?N~IC5>;-OuO_П~[N~~_?X/{_lk?3(?O蟗m ~uo翞?7㟿֟o(~#/M7_[Ͽ-<6w[?矿;J$CgYe?}+埗UlIw,?_*?W "Co??_!Tן8\ƽs!t~ kwMޗB_ίy/=/*_/%??+CDA?\'?!ۿFj?-׿B'oS=\A???x|ׂ~zW'8L&?m{ }VEE PϿV9+e~' |b?bw? =?m~ ?/s_?wt/uj 5~O%~K?+~=g?e+/F-~[s?O$ǣߛ5?'[_}?/~ooo#r?%"\.~o No?D|)t0ѧ/C7;nb??蟖\9b!-;{bg_$| ?ӯR<~=R{_*_Kɿ_kCfTmnoe4~?&_GX!o?;.?GVF_uk_#?Z~_%?R~LrLKo?ӿX~n/ҟ/?,ys;sggL֟՟{۟.?2ҿ S?O/?K7ПoOmg$߿\S?gcgO~~ѿS3s?G H'T??~RT8FQqH?翤'?7;i';ԟwe 3ɟ_ҿ iA:[qL<;ی?Krgǡ?~Y9k;or4GQM?:p<ӟ™'WNѿ?M~ӟo_ϑϐ~FҟsO?LۥoLo@ۙ >F<=LIi,_?? ?"?N]?K?@V73ϟ#ӿ=/uՁt^M?f43:ԟ?4|L??3ԟS^ OC6?? oѿ'3W~}3߿[.fM3kߴ7 }0՟CCA4TEԟUO 7Ko |C?Oݟ?|~^ҟouu`eO>λУ573inҟfތh6 ҟ_?M~?Kq4t0S8??|WyX4eco?| ο?#@c7) ]:5S2v_N4zߩ3ON};|ao֌7z3W2\OW.o/?<(ÿ#~nmN~2js#Ǝk??#fK6jHM|gOsgK_(T?,;&~{?y>i time i_sum U [ns]_c.i@?@i@@i@(\nQ@xxxxxx @ϐt?0AAl`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~=?z~GϏ=?z~GϏ=?z~GϏ=?z~G GϏ=?z~Gύ[W?_~C7ӿkz߯w]ߓ|{???/Og+{/B6c }w;σS[?.zI7៿$t_v_ }זE{27_o9i՟?K GϏ=?z~GϏ=?z~{\>i time i_sum V [ns]/i@?@i@@i@Q*z ףp@xxxxxx @nLbz?8A8Al`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~ <g|?_S=BK?x_2yҿ=w'Q短?-AkI;~g3Ni\CVS_ԿGm?_?_I_?ZMs?ԿU?#?ϵ5I{򟕿cy-?L~A}?O_?^~?[ߔP/G E\jo/L V_)?P~A?H_Կk׿_՟޿??W%?Կ{E7WZ~=|?smEo:w@~5GB@yD?_hO՟3mw*?Lc@ӟ󷒟Яv?4mҿ_??(Կ:}ϴo?B ՟)޿?7/W߿ƶI}w՟'v[<Ͽ@C/?E\% sm{kWxA/ߪ_ 7ӿ+[G?J?K+3?H_߿?՟ֿ%W~[ph׿{K;~??vV|kXSoo{B~SS hj_Zҿ[ϩ=KiW?H9ߣ?G>T~Aw?V~%??FG^JZ]/L{?]O~?}"??HRW?gο/'#C3{V?o5&[Q'?$??{>?g ƾ^]{g~(D 38H~5~F?F~GvmwLL~'~7/m]iڝc_+??JZi?[V7V ?F=?*?W[{?Wx~~o)_*M?J:oﯟ_<5~X:Lӟѿ|'?[vKm opTRS9TN~'_VT/?EZ+w~\=;#Q;[~W>Qc_I[bk;_W}[~ϿMD?i?W?4ڗ7՟ؿ-SNk-j:ű<S&[_HCЯc_53h/_翦ѿ&П!?lHh\?p+cm_=Q?5>54g?]Tx_/7oF1w?ֿY~op5-}՟~ m5t^|/V@E?t,}mkmR~?cP8O/M~L~iQSkhFiGϟ?kҿT?gP??v=ޯo?+G?J~Լ?L^BO.ƕ_Uh?~S߭a[?՟~)j}+O_S+4kk{Sڷ_Rxyޯ__GSߛy0nA\ΧSص_'?C>s?Яc_zҟ?C?Ac?K_֟vD۫=TA(ѿOGoߚ5~؟Rƿޟ?iHoR|pWaSyOW{ԟ^qvƟ0~x5xo՟5Ai.ʯ}ϔ|П?`߮?_ϿQ?? ןo'#mc鿙iU@~[{B~~W)3ߪz7(MVus[=?ZݟEwoqOhj5;jWh3П~ƅ}矧+?,ԏ~Mo)_}&?Z?oͻCm'g¿|l /5~i?+ {?ҿU~~QI?Hk߿?5gM  z?R.+7H? [?Gi?Y [?W1_ҟ@ Lm|ѿ~R~g߿U@iOn?-M{9FO?~W7_G?ω\:ẇ?Hw8{Ïߡo_џ;џI{3|_?||^~n-YO#צ_C6??~ߦ_1 /ѿ-ҿ?M]/ҟLnu=w?ҟ?ϗџT?o_?< ӷ`?g퍞4t36|TĴӟ\?× C6@6t03ӟf#}ȅ~OWOc?ҟ7nk翃IϹO??+O6ԟ/[C];jsO:~6/_G6zlgߛ~i_6t/0Ki_aoеiOv~?ߏoC?GoCOۛ~7ѧo2#J ׿gDSxQ }<4xw_i?#}п:oC mgowҟ3/c#Fn{F^ =#苹~3~穙o|ҡп>i՟?i4rmowLa[?I&П4rayg?_Oßѳ ̓+#:j;#':3՟/}IEҟ@ʿMTL\iNџKN-ӟW?D;/П4.G5KsyK)??՟Do ?7ԟ_EwKon?{~3߈>i time i_sum V [ns]_c/i@?@i@@i@Q*z ףp@xxxxxx @nLbz?]A]AlO`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~=?z~GϏ=?z~GϏ=?z~GϏ=?z~G GϏ=?z~=~A=ɿ+{/_ w33/4_^WG/_?W?Oz)_?~kOusL#gfe9|/ߊ.~|?~Wϭ=}|?;s=os_??_WA'˿Ͽϭ7矿??Vo0wϟ?{?Sޯ?w៿Ͽ|?)埿Ɵ;ߠ/ ]?W5[} Q/^׿uk=w*"~??矿-Rs;g޿?z~GϏ=?z~GϏ=?z??E$>i time i_sum W [ns]0i@?@i@@i@QtGz@xxxxxx @.yΩ?WAWAl`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~ <{o3׸-SLD"hQ=֟~m+%g y??-?3m_Bп*I˴w?7kN͵'K_s7]ϏiX?X>v=׿/֟X??Ig.?~XϿJџ|hF5Cm~3 ?;m{D?Ey5!7^~?տ?N? ?Ww*?ϟSL~C_KwX?WvoC}?R~=-oh__wwGzg?D[Luҟo?__֟ j@7_C~տ?_C~Byߩ2w7g׸ҟ՟?kпK?՟ҟk?V{?C_kOџ~[og"G_|}?s=}7ӟ/Oh?_S?K^ϙ'F?P߮R?mgi?C5s]_~k\u ]H~Tp|?t;? ~~1kWޯOq?跓ƿ{x?<&B+>=}տ#+kߗ?@~C?gy)R?F_ߥ?cW5-?RB>ןkm}x ԟ5??翓,wO?"?G~{@~Sg~?LM~_/_.?M~~OZ~E?Sڑ]?O#{Wџ?J{A}_׿vmkH,?E~Eﮟ"m7ӿ?L? 3?˴ߡmoџ߯uHא߫a?@*W=(_ֿy8m;/Qo6o~-ckuC?Bc?QOAKs?E.C7)LG['ן{+~OCAM ׿O? 7~=y)]П 3(#m?|?L1;Sx~wϿF?pYh?JgʷK/߿_p\ o*Wƿ?ZmD}#*?_ +i_C_pܿ翥?^_cox=mGU<]zFW<~=]/pUCJ߿P1K?O*_͟=xO{g5k m^Կ!ׯA]?/}!V_}aYW@ᘿgmHh_W>TOɪ@>h_?ֿWSX /{TO}[mw?3J7_cG@[oC_?i_矨П {^M?Կ_? ?m?Rߠs?=S?Z_OI7Я?(ѿs]y}?$^3|Y֟j_ԯO(_?ʗ5YT.JqFhw[0vj~GczoOJ_MџxG5?XOv/i?⟿_?ן.gO;?ڒގ-iKZ?ϒ~ǷYO'xZ//2D2/:]w;7e2۟&?]_PGj!{O&z/d_ =5\>K_&+;~+z?i.r"Wo*ᇣW?~~C?Կ>Ͽ=(?p;ڊw[~kg]7>'?'?_/x wz{_"_s{??S?Qg_<#` fOESRa[w'>~A{}=?or=5םJ~?=?*{wOҿ?v&??\+ҿN|srd⵿A㻯uM~f?yOTOW_?#S' {ϣL~|#osy?>/#?%?kw՟<;_mYmVϯK7-7ҟ 7_?P?/ ][oKg?N~OnO?B?7J%_?oϙL~[???ALҟz/oϿN+o3gfП~//S|7?O{?џ+?^?П~{w?/g!kAMw[ͼ#k/՟R~4Ɗ@YӟY^sO׿4|G?O~|)״?ޝfԿ%7Z*?@>ӿmU֟_}翻?B}[~ӟDӟ?So:z/՟?kћ?ltJ՟^矠?/_OH? ~ߧ;:| iZ翡?8~ mߍ/f>~Z?[?ֿ W???YWt>E?{y~џB}O>џ~L֟֟^>05W(߿gm?'diӟ3ZdžԿM?KYHŝ1y_N?iR \7 4'GNW4473NCџf>RN{_ҟ[wߢ?熎\61k?7}o?;co?Y];ߥ-翽4m_Gϗ鿯m??B~wTf|Z?? ]_bQW_o~?B;4_s? ϿD_4ӟi|y'~z?yϿKw??Mџן?[~'O??e'Ͽ[3;ioci>>i time i_sum W [ns]_c0i@?@i@@i@\(lwQX{@xxxxxx @,t)?dAAl'`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~=?z~GϏ=?z~GϏ=?z~GϏ=?z~G GϏ=?z~GϏo=_~=Ŀ/m~[|O.y%ZS;3/_?_?ǿ>1~ߊ~< Gw7ߟ~EA V/\[[k~? ?Ͽ9?3'!~?`xK\s7x z??c~?wϝ?w?㟿ߚoo??7S)tOu?~Mw^W?{R~ӿM_.?e?gk'2;=?{-Q]ϥ_Ͽ?.o_'|kAg}{=?z~GϏ=?z~Go>i i_XYuv [mm]_highresAB**@?**@? Q*Q*@Q*Q*@Q*Q*@Q*Q*@?@@蘬瘬O@蘬瘬O@ԍ,@HHV0A:\0AlXuv [mm]Yuv [mm]!$`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~=֟U{;?#i o0}{?5^O< v>4CMxf>3HN .<]|t> ~S6D!:D>o?o^? {C/?ȷ=?3{.C4=[u~ϭп !|to&:KW ͷ;qm..=:=:~~_ M|m>7wϻ{C|d!zMO}|>&3s]>n=M(k{ʏ.]n/n˯Cwh\7y禿{>&-_|SϭOyz=o~߿/y~n&3m~ܖOxw]>OM=>v<7͛}>> ^7s[~InOw>?OC u7_Mݚg oݿ>׿o;o~n;C}~7<{Zk&Pz8~}ˍ6sO]cgW>o|~C |߅;wmӸ{p:;H?}ig{Jqt>?1wďCvwu.݇og~CtW9ħC84~>D :vSoo7yw=3DJ1uuۙݿogOL]:VK.qVNKn]N{ӯw[ҷ;/S٥Qx'[Tve>g~ߩ>~٥i۟Vϻt7ho3ucV;.]-]1ww?7vӅ[O׌i[ 4?~iht: <Ӯ ?3xu~8~ݿSٕ+ǴcCo?3D.~f]|+i{]>>]{ota1ϛ5p ~[ǣn§毋_N]zu-wN;P& g!9ūy!gp'CG?-v[OnP?Gy~}n}n?]o;ȧ>=7Sc!w>Cy_&ގ8ݺ49M1ԯy=wh\7<>ߝ^мht>ʃyt4Vo7罿;?c>«sgiܿ}8{x3HONV;9D?oyw! >y~7Cߚsh~OM.3~w|=u;t ߍ~O?܈G kJ?O][>]mK~̸~uםGӟ;ug] ێ[:w؛n'N4t|b!:w7P; 9?C|44o73m&>7]<:w=5oۮۯy46:tţKӮ |}k`|mH->{x:wƥ{ێoo\!|V۾;CݝӅS8=D7No?y~>4_g!8[>C=o?<7PC|6g/pS?Ct秋C|>=mku5OoCKUo?fuG?}3tӮoF:vM|u8o~n߬}7!z1ݥG]yo |?D!uCe! !>oV|9w?3иڙ?N.<1ķ]ztץSݠ߿U}>]C|84i|]i]|v om. {o}nn.;}ޗ-]n' i7{?{ƿe]N3$|ݖ{|>_~ m㏁34.<}~3o4^Ӯ;!eo~vcOJLv| ߣ>ݿ . ^o[]nC{̣w5 ]ӟ7?ֳg?0;s& ҽo}?M]vsVwҟ]x1pxum|c~vίc1|ߥSS{O~N.Lߩ߅kum[]7Nۏiߥۏmy:?w'[ϡ̼M!]>1uo~nc8d]xSgxW >Cgߡ:v?7w?գkV ׌ǾO]}]|~'iﭜG?k.]fCx rmףONC|} G<| W3_wv}9_ ԧ~;94!0taon>Cp=4=:Syſۮ;Cky!v޻wu3OMMM0D9 mt{q~OngA|~Ӽ=oypS?mwO}괻|CpY}:o7rpS;u߿ ߛg|?HN; |~[qo^wim[OӮ= CnM|[;78io}hxnsOn|S}QM0[:ۧyw>|?DOgw~~Vwcko GߪwXNnAu?xצ~?4u?7?ͣ[ן߿ݛ7{};.`?}nz;i[uu~ޥMa! iny2]:ug鎻gt<sӮKͣwqu{!ߪio;Doo?77pp~~|n?~8Ui}wmtꎷ &]zv7uwҟ]0pN{|ow9yߴ3ac:?gwi]ΐwӟ]o?>ҵKIvw7~+ig]x.U!-3ׅߩsH>g].~}|oyg.wfgݿp |ӌO = ѳKx!Ŵ7t_w|]1w ~{wn]WWmguho⃛a=+iҧ'C|5Dqw|ynn]zv14_sov7~{s>ϻvw[]>o;?C<cknA>5?3<M<4?ݧ]ux?=]}_<>w q[!M|<48_! m.]=㟿/~7ozH3M{|Nctt[ϛ|nItgw? ׌_ym.=~7o.~ݟ7cGg={Kvi<=:wW~]=xӥo?m?DJso7y|o~v;$G.ӣ[OtuOC{u1M[K~3vCoKJumCu }ti7?t=ҿ~vt[|?{?߿U?u!zghGVw ie`Cgn?v ٥c.}m?4Oϻxv[u~8vtu>7ϻVM;>՟7~w]8ߦ.Cow{io Cfwt0[voڛ{7w:Nww]:xS;vuҟ]sӴ7Nſ;^|ūK_94>.\}M]|nn?]C?zM.=~imot|nuGV5$77}nwȞcy~'&`iwҟo{[OIv?ұw=D.݆n]L{}w.x co?ݥgCw~34!|=ß!qw;i~wc.]ץG۶3o5n]<!zu1^>¹ioⓡp! ӝ >χE!~Cs8Cԟ}~O14=|~Ay1~oh߿;eh~nMtw;!>}?xpoz~Oѝ.3Dx{#:o{.&:w>v7]g74'1pb;]yC ΋~~C44!sp:wՕ!24!z+itus[V0M;s=47ozpG.i[ O{ۼ_\7_ǎz~?43]~y6>Cj.]~+wgw^8oçowOq_^C0W{7ͣvsyoGo~y;n!ycۮK9==4j.\OsycxV:w ѳ_IvŴ~oOY:wch~fұoiץoz[ߩw|o9}^w>+9D7Ky;4OnVwsu߿O&>nqNv~ޥgwCvcKԴӟSoŻ ۾oߪ}^Czm>qޤ!8v\|>_yҵ ߌи~]x]?t=Dߡy~o~Ns;|wMr:Dqt}g䏁cݧ=Cyk9gy&9n?{|cf7=wۭџtgdݿxkh38gsƯ~ǥvg߮PA>w|nn?mu[Gc?4.>i~ ѥP?C  /o{ߩ nK6V.>PJƩ? w?Xsgh 5vC {h]~ktkHM9Mr1DۼץWM̴7m;8|~#ۙG4@v8f~o 3{Ct/Ӿ u=ß]|~ݿ֥|vw?c'ic;.Jvᙧ;Jvݥo?t6C ەKGw?uץ]|p橻>k~v7;Oxϻrj߅ӥ|ޅۥg>nN]L{ӮK7[.!x1ҟg7n}zt5~'[u7w7ϻ4xrf>[ch~CVvoCyKqtu?٥oUyOow-tn޿ ~ws}~+{^uh>>i_ݐ64?=?ԮG?<[O oCҵO!{tC[s/t O~+Cg!O>7ѭssCy7>7e7>=s]Ng_~~ݧGO941w~|3?ڣCmvKn!>=o[M|t>>t݅;Cxi2mмuu~?C?{.C78.}n{&:vKߪ2?ͣw<wt|۾Mw[ϡy¿;oCV?;mץkK.{kN!z|?Co7й_w޺ztsܡy0Vχ12 _v~Vs^C3DSs;VO3>Muwҟ5qvEޭWߪ;.pt0?7[u~WI6?OWM.M;Ỹywom;i~NgOӯcwy.q4C䯋z~stgO; !ogw\]8{'{.mϻMg{|y =n MtP7g΃;sM|kO].>v]:w?{_㸑:Mtgڛq # &zt۟ u~Oïgp~8|MGMoJ?~@^?{{4i|}[7[M4^t s_;C:zypLCrqqt{ѿSWw>O{C7=ÿݖCҟCx _ӟ]8Ct3]8!i~ޣ>]Ǽ[] igIO;]t5?m]8Cҟ!zut;]]~v.q~+?-<}v|uo|?D쎳]]|C~n];uVi5?'9iwҟz4w?<4o.Oww^Vkcn?Cߐ5_w>ow24>tuYzŧg/;gn>CӧKnstmhC@!ބo~[7oA ?On3<77ύt֟C|s#Mf};ϛep\vsu j[vs.ߡ7η>y7ѐ= |u!<39ȗgF|~}ߚ:m񼩝}:7?ٍ}K_C&>Ít!8~ޛs_7D!z}Ӽg^ߡy>vCtjww}gh>1Jv}iO~Mv|[uCO?]tכ}o[ |>O=SnPCv[om=D^;}emoÏcۅc>7;7§ o7K_woo>7oh;OCo7D&:ڧCߥ}OXuVm ϻӥ}:woo_~Jv6.?t06u61N;?.JvN!:8u!=|~iۅo?'G>?}wt34nӮ;gyy_wұܴ>M?+iC4yw{{ސg!?kߩ|u>ҧ_>CM?mV{م;Ow|Un?qvVP]:t7}=zu.>!vҿo|uwc.^v~OswY?qx|[7y;Ծv=otoi{woVv.wt&&:n}~Oх[| v>C&>1rOw§'T!xwqP~MOAм ghL=nvw!:Vg]}Fghioov m7D!|0m ѥwr[Ļ~~C|u{ʏA< ^D{:nwst?׿/ <~]~Ct-uN]=D'DA;~n;ݧ^~?i|i Jwn?]߿g=zcVҭ;IV?csh]NxVϻ?ix0ow[~Mrb~'4x~+i3?.wӟCt7x[w;u;Cg~Bم;O42?-]uw5w~n~M.7;yuMgiSn;3< 4ѯ<Ǵ7}~]~?Gt}k.={[u Ӿt]_N}wCW?=D.X<ҭ;Coghw?uwnCɴy?<n!-}|>o&x&~0 K=4]|n3HwCϛx=ÿԧ_ty_|Sџ7@n]>4|{|^<7~3콯OAyӧ gh޺pN!׿>!vҟ1睟WqVK8L..4wa~v]x~'쎣 t }>oigҟ?o~Nv}:?xvv7ұio ~n~v]:uw4wm׵Ivҡ+]8]zw1$U!]|~N7i6 :ߛsk7wᙟCv4uJvejNmgU{|nK]߆9s7ݥGwҟ71ynC~o?p~{ovtm>{>:ū y:wwϻ}Sֿ< 3Cay|4.>]zxC}Jv3!z{ʏJ_3y{gw!xCi{h]>{0OsKَog;S~ 74?Cߖ]o?H>]ƫg!8C>ԏy3|ĿysC=ÿ}~ێọl{92:m~ߥ!9¿ o~!>-]z9Ю߆>C;!AzvGu>i^{i~mץ<ѧmM!xV|ޥw/ m[Cy;G?<C^χip^ VC7P.ߪw>] ɴ|n!/~g^]L>׿O}&~wD|7^}s[мw&wuqO84u|?VwgowSgwvgiJ6?΃9}wOތ=g?}xx]6?{n!awΓǼ7DqUߩӼgڛnۅ[..Jvmߥ{ތi]ݿx]z][uڙ'9MvgNKиϛm5g۴ONo|~bv|w7OOF?:1D.>~ѣ]7ҿC8}WƭOw}nyѧOw~L޼P{ʏgt:߶q}ߣGP=3HfDsc;7ycso9ďC{;;q/޽PAx7 {S ME]y䋁8{|o~7wV0`_s|[~o i7Jwt3#94>9D/鶳xMpnKJ6?o}{xyoO1!ih\k]o{!ztih7ͧy?}o !7twGnMtovCpz`~ywC|l>:o.\|>8s A޸:O /<'7M[[yMn^w]ѻ;?1wf^~+y?ϻo;.KUyo{Կt8[ߩӮиt4pxNߪiSom~;!>On!0?78ytKt:?qOio~v[8?+9Dgwviwҟ]7eHsxU! y| }wqwgic/K.=Mߪmm琽?' g?]o>]:t7Gv]x~yxu}_VqvC~ony^~nK\tuNﻏ~n?C84n;3^;n}tۙt_co}ny>iܿUssvnMwj!>?p{y{}&{ӛߡO1P7~y2OMxGM)?u!~o~?y{Cxuv>.׿!Ot7 K1w|>D/ G/twߚ=ޗo?: ~n!|fS~4nҟ]~?4_7ѽ 괻qo<7Sw}Oye.t? g5On;u=oCxv~?4o]ҫ G}~N.ݺVs{]=>՟]|]8C㰏=Dq݄O|wʣys[<|>ym8·m|xN.uV{ۯjiu[߃tԧ~ufgo?{vF<.={?p~ϻ? ._Vsn]: P{ )?= }]n·}wx8{ ɴңۏ|o~1w[OK0ѫ{]G?7o'KO3t~>ԾҟCxNn~+9Dx߿4߿꿋PߪYސ~:w5w73v]:uiiҡ~>~}y;ߩyūw.{t|ߝ?M~7I/t!1?o&gHv3~v]zu?;o|[.xi!to}?4oC F:3wfAt>cn ѳK!:Vv]u?gy_y2Dv|uC|Ow281~h3ҕOtݖ.CtzgnM_}ۧyCmy1OvyρχkC?@]|<=vwfhCt+ w|~7⧏&[Mjn;sKߩ!y펿gy#t~7J9.\KN;ӎ_ӝӝ kh^ԧ<$1wu?7 | qӅůۮ;Cׅc>7翓ݝG 鎻;.!:uy[:ߛۥOP]:ا!|=]|}nww~tߛo}w4>AzPGҵGӝ!]~3GC Lt+h\]B^~ˌ?cѻ\;V >7|ޝ.];um|A9= 7Mt;Cx<~L{ۯ>Ck>P|ޥ;Jtѥk/o?'[.= LTv7wm{_.i7_.]xvχ6?xVvwҟC|ڥxhwӟCt;u>LڛJ~ikH> >g~[u~~VI }r|ig~v3xwۙmg[ϮNӼgڙfM.~ޅ;DL;3gJviۥ3n?_Kӟ!}8_w|ޥ_o|n|n6i7Dn]'|ng/ׅӥWw\7y~'iotקKO WMt|Nw|]zyңW7݅[w~v?7V 7ӕ]oMCpn.΋yos_xC㿉?nw{o~owwo}|zt|?4=z <hwG֟`! MOCߪx;yh7Dt>y3?[;ww mkh~s#_uڛnw]!wݛNJ6?G6p;4.|s=8inwgAtuw 94vt<7{!:ѿgowC|M2w?yk~V<]ߡq4o]t[u݃Oy[Mto?7Ww^no~S~ g/.^7xggv~Ot|O[u6x΋k?MImm[u~'|[uo?{]3y:?iy3Nsh|]}w|w3?p 7D!K7]~޼|ovKw|8tgǥOKy|w~M|y?g)?nϭ=ѱ7Ctx_7|t7~3 uu=$OѿM|{߿~>׽wߦߡy6?;O oӟ˧st&>~>׍tM ywt]o}Lv [Ow6 >>A ;yЧ w]Cu?_}7}}nӟݧ7|K!}ra~c?7[vo?uo?ݥo썣Ӯomyu7oMxoҟCtN~Oy1[zy _ozK!ywm}DwǴ<Vst4oxܖݟ)?xoc~Kߪ>i;.~~wNpt5pto?{ԟg>:]|c7|]xIv5o5:]|~ߦ]o_]:VcNܼ7wҟ.uoig3w1w[{CoJv1$]~Gwӟ>]uwҟCvuJҩ =Dݵ7?+iڛCvo0{}qt[t|ſ}. |4ҟCumu6zgvdG^OO3ϐ~뎧G?۾ϻCǼo~vp~[O}Q!C|o94<>gӛs4n3OC=gMx(Vm8n<ݟ ;??7@ep! wmw]3m~ޥiY._ign{W]V6u ;}&:w?Jۛgh~G?}dh9/ [7MJ?sH.7o^vŧ;7 o wsiŻK{=|y>Mn=4.湉ߪMu s:iv=gۥмv'ghӅכ&~w7 gJ7a~g.}t~nwѩy:gw>x4\98N.]=8S.iO{ݟ~oh^oN7}[}a>:wigܴOߪ; |ߴgPv3p 7}|ߝ]u2CХ?M6x>g?n ]:v74n.{Cxzv:z:]8sw|?Ծ/nf\]~cw=DG|nVO1wvs3N{qvӼiڙNg]so?M.>]Mv;. ϼ;n{w:?m{}3pM8]g7?]٥wN{}9Dg{م>߿S?ޖU}W4pw[!9KC߃ׯ~~S?y5=pχ>4!gKWo?ӥ?淋ӝ.]Ѽ;Nv}oWy:0ğCxu, o }\D. }>P; }ڝ3~[O]94U<}мݖGۛ&n+}iu| >m=Dӥsw>׿yNoh|oOߪm2׾q 4t7No_}翕~ޝ!M!wOwiySg?t:~;مc>oNCm!o~v3VwӅc~NV1xx4xk~viץn]S[u7?wҟ鷋oot1OC!>ғ]:g/٥C~wCxw1w; |}biЧ}>C6P]xU?u~vo?@=oӾM2Ծo7~n7&u54Ct-]:vuOJ7[u8ףigh87[vyz]xЧۮK!C=<|>y~ߖ7w<=~<]7=Cy[|? |{nW}:wG ޝ;ݿ͸t.ܛ7.5}oǍu]Cw34.4CxV &]89DNv?ijS!iC&i^>v]7G>}Cw>͟>]gh^v!|MCу]p Ϳ}L;}n '>CKo7ϡ?;7]χwSq(>=,7tMt[os}ޅ?4OgCҥ}k7Y?7~Ooݻԟ]jgIww~o?x{ۼo>ՎKߪ|ޅ?4?~~'i7UgwCvݼo6xww|!8o{hqNйWw\4V|oҷK!uۥҟqΫ ;N~Oҟ3?Ǵ3wң ݅k~4]z;3wv2wc1x܄o]uv6?C 7u?ӥ?ou~+ٕuG ߪww=|~[uw7Gs}nn¿]v?8]xoe]87}կc|ޝ.ܛ<4O}i>7?{yuw~C >E!9yh^mH? y3m펯}_8|?pV;]M8=4}u?׿{|м7oN]Y3vC|ueK8~gNt3=v=8ܶo3Dy>7soe Cr_vuvtqOwoMmomw#vnz~go~m Mkٕc?ןgp>y~۟]|g.{ONvCtұ;xo{CyݟtK[4?]zߚ>o{C}Ο:ߛ3Ow<]z ;Cwu~7P!=qx:|7c;omuh]|n{t ޣsx-]м!⟛9gsoe>ү ;7̓~_w]v;Cx )?}?3w!|=3D.nqu ߮w/c;d>ן74wi}_sO?VӼgP41?okNϴʇ|mo:?tgud<UK/n>.ݻ >]4V.M]!`w=ioϻ·;?+}K.=M.ݻt6w}w?7\çqwgi3N V owҟ{;+ϛӅoVv]|S7Ԯgw<.>[ myҟ?;ϛ]^nCzK/jߥߐe!O0xu?jo~ow3C3wG}o&: ѥׯ>Uott|n}<7|On+{!:g=Pq <]>CwW{v׿svƯn߳Fi|Cp{xu>ύvyzxG=ÿos#quۙ&yߝ>gP>}?ڧ}gvj4Ow^ot!s[9& k_߃O}n_ =ßCVKLoOμoOt!C[uv<+{ϡv\fC:GkMx4>_SIk.߿A:nI?7?87G. w}Cl;?7=D!~x_~m|+9乇g |>.~]w\~:ww|7]o\!~}7tߥS^Cmy}χaw|n ig7wgw<}nhs}.ts>=~O޴Ml~o:?ϼo~v?7p| ;4;oe><7;8q54槁uڙύcұ;Oq~~NINtg߮}2M{CI-iӴ7NݟVw]zNwoyKnUi>7?M!I?Gw]<wq~ޥ}_I?7ҋCr8D.]~+}iم:?} +ǿ.=۴-Mto\;g=xw<ܚN QNC٣݅sC[!>7nCx~gU.Cx }~;Oo~!3ύ {oz3 onjo v~~O}nݿ> ?Oݍ|ۼo~h^xw?4.]¿;vMp:uG/}c{]_sS~槙+ wwۙM|Mܼ?4/~M;}e}Ӿ o7Χy::OC8~!&iɴ;Ϯ~ҷ?mOww{иw}ߝ{~ݿ{kO~ߝ8ף>iݐcyVvtvӣy.zOWMwݟ|M9MxOOynch~|Q!>3W}#߃>g{ܖ.Cߖnzz?ߛA:ǣ=si>ύ|~<mf}~Ϯ/fc7?ͣw+9&~߇>gOo3棡wmGO}pM7oi7Dygw>74OtǶzo7km7]= wl.>~ ~o?~hN{i7D.v7g|>4C~ngzg!8{tg&x8K7ݧMtL_wW7|~Cw;A>8f<χuC$Cw?[W͟yL;}: >v=w7o?y|?452M|;NNwٴ|n7?8}v=zO:8xx'i7n9O]8]|xVw7~o ho>7OwCew]zV }]/x< ~ow]ou1NMVϻ?v'iu꧋iou=ҿ³K'o=|nڛM.|^Wn+7CtIKy:?rh~v[u~vc뎳K.yCNs_~wߦoo4y :?[uڙpn꧋W{C_Ӯ[!bi~8o뎯d>gHM{Ms}_m_O}n>7ӥKno\ ;4!}|o߇7Dq 78GN8|m7g߁޿-!zޖ]>C047Kon-݄ύpte ]K|Owv~;Mԣ[. =C4COo{?=4xwhݴѣ~ߛ[{>y.[ |gs~~'< ѩK .=zt|mg6O.M{;}zxGۥ}!~;uM1Ԯyc;٥M[>>C~vS}>]:ߛݟߪmcҽG.>C~+٥Oj]x~lp mw|7o <}3DoiwA;nt?y3Ƨ?{Jy#<}~緝7ww޺3:{SN|ϼ7}wܿUon;ӏkuօiV y.~vS]n]{C7k:C|wҟ쎧KߪK?wzvw۴u3t6?M{jv]xk{ݟSo? |ݥمߥ];.}wեKxN;o?1^?gwݟ{KJv5.]݅ۅc~<N!|L.tφNχ.m;}VڮGvw}3=z>Cxy>qv?t> .CkOWJ<7ѯ7=,ݟG?՝;]|3ķCyj|!:_.VwO}t =>ҭM߽ⓡ湉ou.nj&~ ҥys3|{ʏ._4m84_3M|=M{h]|j;ǴӟCycMwu&>ã cw7cumy٥ ѿԾi}nqG#C.~ϻO?»q\v_Dߪ}}:w&~=D~LV w_|?D!иaz&]87>{:aߺy}z֧Ggmg5Oo}n;nz~Oѝ.7&9ѱo7&:w~.C3v7k!:tzMythgNCt3Ow~+W?n;CNgw~n+C?3mg~7}~+4xχooҟoӟ}n?S}߿Ugwuwҟ]xCc6{IӥiV鿋yx]{\;N>_w>{]8۾ oN|Х;՟4Nݟwҟ?4.3vݿx~Ocgg}w]~9M5~7i4?'iХi>7;;?xVߛϻ&z~+wҟf7J;ϡ }ߴK.}~.}94.][ mڛ14C?oۆ84Ot?}ǎӮW?·-ӥxݥoeڙG??Ƒzoh;!}v7ey{_VmnH~Py>Co||23ğ7~{6Ow><)?w#~綟w/>=~1?:.t\~ϻw}q7|ҥ+7M?|? ҿ}xnN;;DߪM:7Ctӥy.n\amt{o?ttiއ Nq_?_ٝn8:Cuoᘧ>_!4f<]3494ntvf:ߛg~ti7{v~?vMt^gg.t]x]获n}vC~+7Os f]: w=:?o34]n |3v.ݟ~;܌wҟ]~L?]=߿4v7{vJ7ҧy..>o? nH.~Nݿ]xml3ʷyM]'i7w|n~|~'y<{oIV~wCpOӾKWyw=ټg֥٥W]8Iv 4 gg~w KţP﮼wvtwmǴ7ݿt4y|o6?'مū 7.߿Sn..}ҥ ҟ=ӧK.!]8k3D'o;.|}8 M. 9]8]w]|~3m]:t5pM! ?o_s}n<w?7͋yn&ӥG{{y>[~&> OVnz䆟CpqDG |>Db.Vog.qӮ Cίy ߡ-v뎫7>i>7i ^Cxgh7i?|߄ߖ?un?>C|~huy0?i\C7> |sn;sK.vu#_3D!:]8Cnj~x?!s_V[߃O}o>=[[NC{^Cqg΃ysݧ03HC ^.V|b7pOӮ }&|&>1м ҵ>]G?7m9'o7yn⧡oC]y0}xͣw8ѿoߴӟ]||g1pϛ7o? ig۴3v?7~]<q |y.~xv5ߪ&x]|O޴4^yW.,}s^5ߛoK/o;n|n~V`N;nN۴]3 x'9g+y[?vo w]| ]~+in?Ct6VOtwnCmoPi;ߪۯi>HvҿOӟ۴7pҟ]~쎳;IK|>D7yn=ywӟ]95Ǵo бo?1{?[u}m?ot?|n ~[u7vuv=zxvvt~n:?>qt?=Ds݆Kǡ5Oo}/o}|ߛCo!~ol{|qgc7yn+g7ytQ.Oѣ>urqSTݿ|r#Mwsjh|]ѿ{w-߶xz;ߛ}o{߄Ǎ{ρg~Yyҟ7ClCxO;N}榧ۮKoMvo{8߿UޣG?C;?]|C[u iDa.u|}K!:tw74ޛy=?wwŧ;Ct[OqvٿмvCg~v ͻKxwaڧwng}zxt?=ÿ;1] 9}34o7}&zc>z2?1}m~N> }?4ҭW7}?+iϐ|tߥw1N~pP~zfwA|?ҟ_qwv` >yw>Vvjw\ Cxu1/݅^]]ϻpҩ |.n{ҟfm~4! |;.ݺto43M{ӯ駋w[ߛn;˼Ivxn~CrauVmi>7?N?qS..}~+{ho3_s7ߛ~So?0zL?f;>Όô|on ^ӌ׌i;OoK|4wwx:?!{0|mVަ}_;]x}ןVô7Vswҟ~7!=דk}vߝ'oمcGN]wo翕m~v8N!8d?;J:a;MJ}}]3оynopkfoeڙ wn<Ӯ<:ύw߳S3}?wмt]9}ho;'Av7¿No_7>77o{zyu>=^|ޅ7D!ס ]n«>}oCxxg}ot{ ηy:~>>.Gt~v=o~g:$']: F|.x4WG?O!~njp>1Vwۥj3o;u6v ^}P{oi<٥G}>b!zv;u>ی״3 !~1wvwwIvڅ[Otߥy~]zoigNuENso3.i]o3ߪӼmg7pCq1^CnCﻟM]zwۙ_.f~gמV;nv.>S..]>mm»}wkWMayҟ]2!iq!g6w?7ow3D!zgHowҿUoKCig.>}󡟿3t[u~C[Kx~]M1!z ѵ ץ]|m ɱywt?uw{Cr94!uۙN{Cwp<ѿ]~ߩ4O}U!]s{ݧ}w~7DmC>Crӛ}z3{1qۮ܄ ]:?=ßC|w#ݻwy&-4 &4|q[fyz׿y[:t4.^k٧Ӿy-ҟCqO}ڙ[tz>ݟ]N?㋁িQx W[u蠏tzh94Cps~n7Nw^>ұGt>w]zJӥP!8c֟ghv3J͋ ^{}!.mŷMpt;3H_!vy &<G6Nv]Ӆc0ݥ7OJvsEٍr/w[ˍy=gwCw;_{CWv6?xo5ӟ;u7~w<~g8N;݅oڛvu*>]N]]|_!iguva:wҡ}:?LoӾۿ}VpcxS&t2?{·iץ7w7Vχ܌wҟ4p6O+iםc>7C?gWVϻc. L?O_W^xv5uū|ߥW.qtVӼiw|Mv>:ywgo\thO>U{i׵kmo~v?;.L{|;uEK7[u>3 N._vҟ/K}ݟCpߝ_y~Ot2$CGx߿iмu}3yw~vwW&cfN;}y.?VŻKW<]:8|wxK!ow;CgNDM2mƩmyg1:Ogh:4v7>79D.?wF:G{Ӽ=e~s#ޝχ}i^n.݆D'Do]|~O󘿇&:ܖ7Mr}z0 gx~oOn?go-_ៃ|P294 ҳyM|14_w|}Ct>3 ߪMx4̣^޸߮nԟnC|c?ghtCuiCwo7mץ[uw;.~].JvW.>CpJNv.|toߩ}wg3뎳;.|iuҟC3?S]N|ޕnqtЫۿY7i>g.Pv1p1xvdi:s_ig>G}oӾ;_Kv~p~7٥w4CxVCxtowng?M{3wgW=>SJvh|};ߪ Ǽ?D.fϻr;u7? kڙ'i3ߴ?M;ҥ;.S{ ;nwNχ>y~>!mſۮx3D.c~Vs!uw {nWZ8콧Ow~x =yn;_cu>4!9o7mwu;Ct? Cϡnyn{W?Kwc>ן-^Ӎtz&]x7msyvێ>ڮ'+&zg|ğvo;Ct>CP?C||v5p;m_wCjOݧN2Oӏ|hnw.]?Dߪ}R9D'Ӯoo>gw]cNo?aԟ]MfJvuݺӥ}~qt1?_wܷ;]M;37i5wh>|;.ܡ|;u~n~ѯ]8C wҟnCt6m~Riw3w7N+st3wvn~?_gv/ӏiw|ޕ;wҟnߪ 5ԏ;ugw\oOWM;o?j...n!:8]:Vo.o_.~]~Cxtn1ϻuꆟ]ŧ;O1u:?Mߩ|o3?!wm~n|?4_yםwwҟq8]L.Coί}ny>& }?8ig.?=C0 ~[ޖ/,݄m~{GM ?nyn;.<'1[o;s]χ1 oy.~]ѿt6-?Oҟ]CKgӾKIx [u>y~Ng<|[ҡK!94}P;ӏ>]鉡ϻァnyCt>y<~{pݿ߳mt3ȿӅ7u>Ot:3$?Ӿ|;1s<[1?ͣM|.wo>oӿ|>D7KߪC?MC~oKW4r;ۅҟC߿Sn]|~+9D.~Sʶix&9 |n.Jv҅kҹ;^C!-<},c~mVi;_C;uu[g}t ۟{h]z P]x xc>mktm|h]:3H7o>ѿ!uo? g?;Voۛ» WyCn ҫ>χKamҫx|χ=>CxQ χ0Fj&95P?MA= k 3t>|v>߃Cn[;ߛgh~ѿt4wg>7ѽ7.}uy.7KygU ܴ~+;OCp+ŧ;.L!~?{򮏅};wstg/;i}$O=:>y{Ce~ː~4|Wߪyn]v7wwӟߪP7ɣ[u~vM!7D^4Ccc/:P{ }!:kI6O|i۴7oe֟]}vtw繉n7Ϳ}ݍt=vUy,~u!~!GϻVv=95~~4y0t3иCx = ϛ w/ߛی׿y~'7sJvγ}ߝo_=y?o7syt?ohݧ^o~DߪyKJn]CIo߆?t>ѿ֥ _tV v=xtڙu:vOӾ;.ԟ?󘿻|hn|[»i>~m7Ce!ƩOw>ww~om½. 7hgn؏y!u gnJ7~!t5?'ioig6?c΃Oo?|i>=OӮ;ϡqu?ҡ۟ig;?=ҟ~W\~O}ig~v07Ow>~+iwm:w{NU.\3ϻt6 zg?!?lҟ7OwvCt0?v;~;oϻxNCuv~oN{w |n5DWC|04.]<^?GC|6Ho8v!8;tNyq! ͇}3D3&~q<8/g^vnt?׿M=7yv~AuN!Sm{wmbw~~L{;?{\OJZOtůo{ K~޿<ߪӮ '~g>CgnvCx ?4ݟU}>]w~}ZvMt~Żygw}m^|mxgpHw}s]|osJ< [ϡq;Cx }=K[gnwS[.]>}ߩxN!zVwbut0v1ww=OCץo~hxvpfqwgtg~:?:i>7HO}~';!8s3wvUN!zSjM;uw7xu3t0O!zVwݟio:wg8N.߭t~O;ů;ߩCvңKo|ogw]|wm67_?M.ſ;N;}뎷|u> w.?}a7?oχ}w}5Dge xp̸m;}vۙ-1wވ>]|tuv];84uG?Wүůܖ]uwWqS~ >=|>D k~ߛ9gCţ;G~~ ͻ`cڙDSMpo˷7<7M}?4{>7Mpߗon}~7F:Cr0>}mGc+w]8=>޽or?{ppoz> ӟCy~7ѵ=էMVӣ.}s=xzr|h~+y=s[!0 ѣ}..kH.o!z]8C&Gs}pN{ϻӮ7}7.{N8wvCuo>94C禟J}M|ޛߪwvgo>hkN+م3'o?yϴw!:vMg7w3ϴӅҟ]v;՟]vGw< O.Gߩw}ۿۥ۴3No5Ю۴:w7όìs=y߿\oӮGN'󷡋Kxn]|-JN ӟ=wӟqnϮ|um;Oӯ|>3aڛv3t6wӟs^_иL]m>7?+i>9ݥWWN>]|s[OCn!vôwg>]!>Cp_:Ow^UOo}nGM:-8C)? U·Kס383zXoOq=>ym~;yן>7mS~ yztԟC.=o;ίg7|>}:|޶ݍ~nWN3|ޛot?h74}s kh|OAzM?s=~ixvUyϛwݟmgo{۟ynv]Vs4OoӶӟn!|m7s}ykAoe<=w2w~vҿvC|ҟf|:ݟC|ѥиn{wg5k:qNw!4@;s4]wҿMxw3ߩ: ߿U.4w[OoC]|΃ =.]1w=|Hy=Ww|@{3l;Vww|7& >=i;u783w7?tNvoP]ե=3t:wo6pL;+ٝo|n۴7|ܵC:?4?o.M;3JvMi;u;ߪ}]8D!{iMxwwL.]~ ߪywݿ~v~'9oK=g.]l{}nyc}q޶]{̣Vsi<]87^M)?~+مk?gh>7`?|_ρm(Cw}?o{?>.Cts[ۣ=8 M|ߐ|<{PsӼv}=w[-~߳}s_ڧ߾ypx_ݖOu ?oosyystĿ aOn!wu7?Nq gK G7?utۥ_!|J8xNޣV;!?MNcKn;g~vCOϡqt7xXo .]p{}ѯ|p^MhgCi~nzjw7~OiG |߅g2G[o}R|[._߷!>|wϴNmwhݧ~ox o>Cp'>7ӟ]~齧?.Jvt3x]槡}TvVoVӬctL;}Ѽ3?Mwi:vwqSn]~N=s>[u~vv;u614{Cxߛ]|OC|b6?QM?]:۟gHߚfܿ)?pooiׅ ;ߛ]qv0ҡ}w]Us9ϐ]ҩ;]nn?g<z.>=?]wi!yg]xG-G?}[vWoG~C?>y{C>4O7kM?{i7{ynM |߅3/ǴyEWwu#|ncn=~vei|o~sS?3D> Cv><Ώ[l|>&V]tۛ}z=5toJvb3O{Vwz_ۙi]+947=\v7n{o?M{yo7?OןCt1|`{t0w>һVM \ӟ̣/34~uu}y7p?71w9D\7Ծ>Cxyoo5w4k>7N;K.ӥoۿw|;Oo|޸˴7p~.4쎿KIn]Cjwҟݿ ]}<}w4pn_ v.~!}֥?7w4NӼg7unn; ό|=.~NN4pfCtI8~v䷺}OӾ~󽡟i7c>oo۴ҫm[u7ޥOoi<]}a~vo4|;Mvw1?{.=xχsh\]~7iVu[ 3}ow?y}t0O.ܮݹt>vC٧nhٝgtM7?7Ώ>Cw|o[>Sڛu0Dgp^̣M7P}ןs꧋}in|gG7ύ=oٮMr}&3MV~nˡoCr?ԟynx-nt4^ }os{<77js|S~ħ7cp>O- kw<7ww4]n+_ϻ3tMPUgh޻p Crڝycnj{H< ;w{7yL޹K.?C6vv &⯡~3DVCu|[C.z՟ߥy{Sy~foz o5ތy}}:wv{tҩ}w7v+i1wct:?|!m!8]z|O>Ct0]zNOy}w>^N]ͼg>Cߴҟ]7kwүg/wҟ]|n]5 ^] xc4_=;?+;O^~o?ѥ>]iCۯv=D]^v7w2 }i7 ӛ}oiǥ;N a& OOn ͟3&:=;?o}!<]~ >7wCvoon{{~ҟ湱oP:o{hw}[~!y]t1gL7m&ބ=nǴ-k/{hojg=Dn!:yC!:]|4<><7?&:u3ď]8o?x4ߪmoJޖTy^t\t?Dq|<o?CSw}zO>7ӥϭ=ow=3_ ! =Cp{ң7߃l>gu?į].]8m~74v!=Dn?v>Cpo?8睟7ѫ7o;;]m!6vtt足goy[G|&2p~+w};[ߩӮ޴ꯋ>snh\{۟ҟiiL;s/wmŻ;/Oy? v]y»w=K.sw}?Ny׿~.]!|:3KG}5w?:wu5|4w|n3w6 ~/}{ ysӟ |o3<߿Usϐ]7w݅g~]zNv]:vCx]?qχ }e/~]~+ٵ:۴Ӑu;uow]j3NзK.~CNsh>Lgw=ҟ/ /C4wΏMv!wvv]ݟC>7<=߮>}~N|?ŷ>wu۟nmoمכ_}n_CYg}:z3΍Oo>ݟ&:4/vCx C?{|}C;43DMc}{mwy 2~?4zO!z }?47o<]vU}yV{~ރwKO>7o?ѿ]P \35ߛ=Ӯ_Cx~omЧOmI?᧏[u$C4χsCb~~;CݺMݐw04y/;.ߚ~owwp{4|J?wߪy}o|>St1w>z~~?vKn?]|㳏\V?9 ߙ oiwyᩏۮ;|_7Хo{n7ͫ~NMV|.}ͺf|>$GC:?~N;ӯi|Mѻ|i[u~|;u>o K!tٕM݅g~vi;u7wb>ݥ4pt2v]zݝӟkyLTNҟC[O󘿻xvs_[..u7mL߆.]xu944.\ӮKnnߩo on?}o.Cp~'م߿]{?Ӿ^wܿS.5w&zyݥo?~ 깡y.yKҟ;/]w\Cߥۿiץig~/2;u>:L]]~vuCpL.Cᘧygy֛7ţC?mv~]Vs}zs[mҿ{Z.C? y?[n{t>ПCt8oM㻩}=ǭyn«x Ctƞ3wooxn;w#5C|Żv< ʉ>COУDCQ_};!~78죟y0M]C}ϴ>r9蘭V{iχ>N?>vC4$'Ct{Cwҟ=~џ]: x4ߠhtMvzK!:m!|MJOC[ϡ4ݥ[uӟ7[ߪK.=^0i2w2w[gw]m.}C-|[u>~oҷۿ4||ke>=D;?Ӽwswҟni[uunߪ8Oҟq >nWvww\q kϮӴ3?ߪg~'{UKo;Jcڛv߭w~w|]]vf]~'ϐ٧|k?}o3.=tVC|hӥw{o?͏>7CxnGߛt~<28߳p!:yg߬C|cAv>>s9D_ |~S?C[wo;-t3Dx~3! Oo+q[]:u߮yUot}}:wKOx8U!ޖ.Cw;M!?r˟Ct q !Y|[vݟ~kginC<7?}gpܿg&~wWv ~C~[=!CiC楋ݻv}:ߛy0xDǡ]zVwuvƭMCt4[.vCt:翓4w2pwg|!uO>nKn~~ޥkwi{}:V{iZ:ߩC M?M۝כ?v\7SgO}nM=͛P=gs>qD?!8~o7؏y~s;<79wo?o^]>¹7v[ Inмfg/n£ۿ;OtܖnCtjJyk=z.GҫK.~]Ns}ͣw24_7| M6iyoyyjχx/oi=z3DCx͛ӥ7IJM?evy;_^߳>7ѿg_noͿy4Ooyt.:34_1wV_}n7uVδg.,ơ?{{?y?}nw}-{;vz~ÿcן|mg|?}[w^8UM0^?M?f=3wzw|>Dt1?O'~ޅ[O ߴgVҧK!xvv{3.ݻ+9gwCwv; mo3xw:?'9D7 ۿ[ߩwg|o~Vv]{wҟC3v۟?M{ten[u~NӬsͫwҟU{3՟]<޶..Lߪ?χ1;ӿ.4<|ŷo?M?q{4}w7w?7xϻ:6:?v|};.'}<~Om7t:?O.]g.Cz&zzgo>ҥ o?w?wk7wۙu;ߪӮ<;?'ٝwtҷ~z~vG]|[u3y3]W}i7؟Mi~4Mm7_w<]ϻ㾩}}ͣF8z}u>y[u?z{cv o~vqܝty|>4Nۙ=湉woσ|>D{}r]z /ܶ9&2w~>޼v}5Cyocɼooe6Oo}nMxѷCكk7o<|j qoeŷonoDסy6Og{|&>Fѿ'i{}x£| ҥ ތsN§ ״:Vk;uɴ7C+;u>auԅg>~o:oNowҟCtc>78ҧww]7U{i74.wҟ}KU.IsK.ݟ<~=ozh]8 .]wҟN4|cwūKn翓4[u~ϻ0٣yTV?M.=n?vy ]yg!w7VCMt[T_S!xvAߩ>v7ѱ;=SxCf~ϻ2xvVѥS^C~Gwyϛ}:wmotJ? ]ay&Mn =D|=C}~Oq#!zǾg~v?=8oc|ԧ;~?u>7_8o緕TC4״7?3ܡgytՅ?4~ownC|63[m?<=zu;O&}u1]uv}P>o?|6~wmۡy9ӿ3$WK!>~_~nt77]o?oj7f[u=}O͛y4y7owwNw|ݧ м4A:n߅gVsӟ+٥o.ͺ| P]zmc }o;o|{ C7߿/~!;O.]Oo}/ӏy{Cz&՟swo?M;< =1?g>7iug~V'go?݅i|[n]:VC0?7iJҳKioѝvi;uнiߥgNߡ~+v]vbڛ?w;u>kVχ#C.]X2;ۥ8 >]wu۟ҟ]xSo3nw;?wIVӴ7?}~+4Ӵ.]toy.>;=Gwpwvq]8wg ]zwu3҅7(t Ww~浇G~ߕ}Pziύ|}:M =ȿ7 λ~{nniOχ?o{/]wCwy,sh\7gh޺t§;oϻ Gu\t.y6Mи?dv~_ i_O:?>O!}>=1Oo}L;w߮\XvC=oA|;[u>o~mu;8>}oߥ{ߪM~c\Ao .ݺw=4.]:N]Pv>;!NyzbVLo}Jvwҟ];Dns|n[zߪsHw쎳 Kw3]]zwi~V{Cp'i[! ;uiCt.]~7Q^n{Cxѻ׏y|uץc8 !|S[ߩ|ޥKCwҟλ|ߥ{O:?ތsuߥox | ~H!<7D>]x]:h ߪۮlg>e^Cv~ׇ1H}wݺN.u`{7 ?nO P]>{gCt?7sP7&~ y;_w|3y{ϮgDuf&zh֟wsnMznj{h; ];7yǯo{G??˗7٥݇ߥMObק7^}V뎳;}M~?!zuO~]|{>Ct>ߪ4w~nsӸŧ7O;?ooCquS|xt!~>C{~Oqc3N3~xVn+7͋/tw1fp;?{t¿-oo5t C |~Ю iqgH_VMp Mn?]8{W:oӟCpgڛ=gy|o>_n;~.S>o9W^Cr֥]ҟMv[OKCwڥGn.f\.vWN4M{i7DߩӮ;Ӽoڙ~t;.Jv3m [u77m^7>-֟7F<\~q^O{h޺Ow7Km~Vv:G.:we }OmavC8[iw>=;?2Wyߛ2H!zGu6 CqO>7c8oVsyߪwn>&z4zԟy1Mty~+mŷGW}nW.ߩw!O?9yC!=04_\{I>nįwo{8&xχs|2D|jv]GO74xkq^\tih\7g;Λ>tۮ;Ct.n>gS \ }.~hܿm~<]w?:w5t!ėw|o|nV I3~< |ߥoon.=__;. .?wz_}.гGK;wN`1xCxV|e3p a~Nӌ/{]f^.>9KWo?{4=/wY<<>һ~{Ct5OiףyߪnCPUA|`^yi^Ot}ӸҵN!Cwhh|yg|7|y>Ctjw|GۙЭK{]ѧyoveh3M|j~1sK+ sgwM|xS^~;7 ʉ>/sPχͿ}[Nv] not>M|m;Mijotr7{> J}i1w3t[u>zt=}}繩|Oo\7n}hCxv5ħ=z3~v]o>ﻟ߄!zvx&|n<5 <3|~+ӮݟnߪyF>ӿ{ϐ|q~wC7oC|:g}{; |9ԟwh7oێCiڥKgi.!0VӼoڛo]:OǴT;.ü[u:< |[u~$ϻ:?U3CO^w޺u{{C<;oNw]|{h>pKӴIVӼO3>^?}օg~gv]ٟt3: 3?]]t=4It?݅;3sӮko |oc6OGOӮK.j6pMn!u[uwҟCxu;.yohgڛVgߥK;yWw1D;ݥn.ܭCguG?74]?cOg.ѭP;ow~!: wte>4 ?n~ۼ ||ޥMuӸmot}v}c;O.=3٣Gݍ7ms烏~[Ot>ﻟw[xg繉nWC{C4F>c֟7e:g}}n<]:&8CnN=~h[ |>m34C~+مc][_ӎWv&z&P?{SNgv7;½nvCV|>]8m}?ߴ3wߴou+g޼}:wNoech>xӥPCv=O^]wo5yC{m.]875uᚿu5w4vc/LnSn}U.!t6w?7wmg7tywm:? 7;^L;n?Kӏy;t7d{U}};OCO󽙷t.~o? !'iiڙ|nuۛ.ߩ|;.7n{o8v.]svCtA~gh>=7}n¿vt³o}LJѿah<h7te! =o[Cⳡ|~??gp^q\ So O~g?}]-tmg;o.߿Usχ gsw{;z34.t:~+:ca}+|cϻp:w硋oj@o?xg_;?M{Cd.Ct1wottύ|9ЮowvӴ7=DߩiJv6? n|ϡv&ۅߝj}Oߡwc~zNi״3ߛM!2 Km7D;~ӿwߡߥynwҟC c~i7wawҟ]|.}p߆ܼmgO'[u~v1y ۴3?+iӅc~v~iV~ߦи쿕[ak~vNM~.]z<z ѹ K?~h|o6xu7v7w`~Nv4O>]~+9wMϛe>7N]:t9dg Cm~Nݣso}L.}JsN߿Uiۥ/|+ GN!0p6?ͣch{w!ѿ7|?o&~a;w04vu>D۶7>!j[:ؿ> ~~o;ٝv~OE{o޿m|>4c|[ |{ҧK!xC 7 W]߿Us!|v7{;>G_C 7[/ch^n?|wCp[^.=77eΫsϻo ̓}~Ƿ!M|{ & Q7 \iM붷iڙ9]4OwC|?;>]x]?]Ny6?+7M7_ݟC1_!:ut>.7}G6ߖ>Ci:V oꎳ ۶{|ޥ>wWM|w܌1~nn.^CpMJN3h?owҟCt趻i4784w Kn?Mug!Ivg~v[u7wv݅c~N&}Iv=鯋V[~oӿi;u|nVsM;|n2?M;NnoٵCC e3ſ 4] .mt齯O]w6xϻ~o? |;ӥinkpK;?ϻwfݟ7ѡ?nC>C.ߘݶus{o>]M翕~n3{>77D!xo~:Mycχustڙᯛtiuwx;MtwD~;!u7Dsn}~~>Cvoiw{m54>o?sӸLn;t߳v u{}{tҧ7^rlvC}o}/?tKAѧ7ѽ'>C~hI;n i?ۙv`p>⋛}q jvއҩ oCg|n_qvи`].:M}.S]tԼۙvIv=D翓igǯ4}]73?Sib~]:v54.;u |mo~:tK}| mgv׉g.w52xVM{Ӯw!7xuI?7 eoμߥCM;[u7uih>OK.=w>ݿ;wgk~ބ77׍|?3yuve3?MݟCt6?]:xvo:n.߿@CxwvU|Nv~pM3? } >.MNv]C9|Vwm~v;n{VwnCw[u7x~1wm?]:wۙχ[u6OwҟCU;>Cw3? ]c6ӵvߪ;NӮ;_?nϛեo?7}o?t4OiKϻVvCxwPߥ?1Vqv??Ɵv>gWOC?1w:w34nԥc7?Y<:莯Wv!M㶏m?4?]x]: CG|z3Dn?ݿ-~M=y2O5D]?vv7Dj=]綿ϐ wy2t_-=<9q 18ϝk3gg37=D^;}wۙ~{wvǯG7ύx <|vx!87{hy0?ͣgn~~[z}ig{q;ۅsNy4{tA=; .qC㹉ѿo⏛ؿ3>C|tտ~!|7C<STk|n1qsnҫs^ v]zUm;/?3\sCxf{w~oCҭ;J=G]翙k>o/7?MCxv\ oq [ |ߣ~ߝ~o7ov+Ӯ;q4n]~ߥMt~>Ӷ3m:wեMo?ţ;.޿Jvχ״3>~~Ӽti7pt1~?n!7;n4pwt}ϴ3]3xw=Dێ{{C1wϻ '|>$ >6wf~v7D/~ūKߩ|1?zwҟfv]wsO.aCJҡ;O߭o?qw7wk3ԟio::k~~w{Cb~vꎳ;u>[O~ho>7?͸8!:wۿy~N;woҟOۼg|?wmڙϻpw0u>:wң >8O󞥗>w_tL{}7?y]w~wA>Կx=COtj04^t[oxv;__ ԧOwܽϛ3 iwχ9ħv<oy89}i|o7DwďCקG?}~;;8yq&PgNoCO \Ӯ;?CK78yן]<_Dߪ|uڛK[u>yl g>:?쎣>CѡK }=ǐtG |>8v׆m]>4ύ|߄ᓡoӝ7Iw?{&jo.ҿ{o|=Ows ͏ynG{ _g.N..J;$צJvף>m}{<]:4?~; můP;]~!|n;n;W[ ݥw|~v=>g>O;?t|[ m^JY:}wҟ.N}۟?z5w>ow]84p'{gOmVw7}~Ӵ7ߛg._thqup!?ϴ7C7w7Ӵ:?tN]=f7q3D.N?{g!v]tOCp~Iv_.>ݿ?ahS8;nܤCn>o?oW3y~ߥy~+|h|=3DA34/4Юgx߷}98_{2~>>]|n;F:uvﻟ|s#O}ߖn{o:}󡿿.s[A:7yn䋁=~&>o&|xgwvo5ףiNqlO7G{Chk[ ѭomw0x 5n>o9Wm7D!x괻i|=> ޿G8߿S]wܿ~owwnH^}r4 < n^]ޣw߿ >gg^W~7k>ݟ?}}綿oˡ S>n߳S! aD r?}VCt {ʏ!z ʧ3ỌOߛwS!~y[ S_wߩ}ҟNve>;u4ޛ~h\Cwg6p .7;Gm~KMߪy*w]|ڴ3pLߩoߪi5?pt5xVsμMO3/~ <Ӯ_}..~;uڛ쎫 KnTJu7xtwҟ4ZҧO_ikw:~+icioo~1xv@=1Jvѥi gNs}.f4?S= .N]wόߴ7xv[u1Ky7Mj8[o]{lb4:|[Oӟiץ|uj~Mn;NouC.>CnK]z|Ӂ'[ 4w.=?gx.OӾy_J6?3x}wD..]y)ۺtk>7O~t5OмqӅ}ޗ¿ۮy_} ]n;7O;7G.|[ }o|v]8Nmg?7O{_=c>~&o_v1^xn.t>ߗ/k \|h^<?8og<7~;/f|]vѿahoyn=sh~?א|4N o?|٧wˁC?C~Mc鶳~[^ ?r0_w7ɉo?£K!<3?y;AcێгKqo]8g:y~.]nǩO18t1=Ծ'{?A=s{Ow7.3>qn;CtWy gnh\]Cѧ߶ӧy8u>k6V5^}oi7yۿOw|~87wKgwIvۛn߿Ug:wm{y~+;.C JNgW~ϻyqw-՟]:vo?MgΦҫ ҟ]m~v5=H3n_|}s[xg>/soGMa<7PY2<]xC{󡿇<v]vG𽉿q#=s|q w3}>vxsS7MpܡwMr;DA}C?_CtCv74ng/ qp^gA|o;翓<72>CpiݥOAg?u"w?4CwV4zohc8]Gގw.}z?;Oo^>yѹM_ٛg}n&׿3O/]{t>8w| wvoOte~7i?O}jg;?ۥ8^Un!|i?4 wsߌȥwҟҡӴ3|e|wWayia mti2wiSo>]ҿ39~iכC _ ?o;/Cg=MCs4Cݝqwy:44?q^{?xw }߽k>7k緝.]}K!~|ǿ~>4!:ynNği[ϛmֿߪM}!|d~V]C{!ݿ7Ӄ |}d&^C(V{}nq]?ywܿopy7χiq4]O? ?M!y03ߛn.{Pf|ߩM+|[y}o^yϴ7< ͇ɓ[ͣw3tm޼[u~vҧӅ74]u]:41t3wwmn!?;]+u|}yK禽K ~'i.owҟ]x4umNww}nݥON.xiwҟUn{Ӯ w{ȁ|hK.]NU{~w? KWkw?7ݟ.|O۴m~V5Dw__wK_3d̸L?`MϛڛV~'wsC?3~o|}ϴҹKI~K'|o>7N_yߴ3wdh~+ٝSg]Cp]wC鎯?mouNoi7owRӮt~vҫK!f~ߩG~?}٥}tngkw]x c.CoNC}:wм ~O|?1Om{cw^nC~&>m<8O/{_ g3P7{~o/4yo~os |ރi7H'}>}|ބo>M|au_~'yҧ;ӌyҫK ;ۯ.w34oCun!Vi;uum7$CMt3D!ׅץ<Ǵz}7g!:ݖ.7&u?ig!zx추}fڮˏ8u!:ѣ77NJҽۿyn&z&|~|'oyL;S! {_ұnhC|4DN3ti]e7w3pwZ:|};u: 4.>C1-۶o|~?s޽7=4~wCpL;|ބ~޼s|Sj۾?ğCxuzK_twg?}ێ&}[|n]aڙ|{#G<<o?7ԯ٥c7g?oc|F>{O ~C?\S~t1O<.^4zd!翓oO&:]|{fw|nuםqχ63? ]8~+yxiڙIv64ow|]w]~0N soh;O^Jv;ϛh>7t5MyohݹK1Ns٥K..|n:vݟCtg..t1Nv]87ތ״3w^i;OݥMO<4cu}3:w~CYwߩ;/vMv߳mu:ti棋یҟ]z ե[wnjץc6?'٥mwM;CӾ9D88:wۙ !{>7vᘟ~ٟt^{]:~Յڙqto]{t֧7O t~34.|w!>C9s}co&緥=㟛gh|7Ç~{pz|}S:goe֧~}v>]kt~~ħ74M|dmW^!:ƣD,u~&z8sy{< |> gnѿv7.tڙ>CxVn>ǡygw^{Ǽ[u>{o:VS>uw42߮ o;?[4ޡwyxS{n;?Cݟ=!tbg~vvC 7/[v>_w~pV«wCt2O= |~[:4_C[>0?;ӾǷ7o=gk>kGK?tNoioۼnU~cuԅ;OoOow|>4?vᦿO7K/oig~ϻpnS{o5μo1wa6:? ~N. I|]x.ݺVv.![u.M;i3?ڛ~x|ޥ[~C7 ߩKn.>ݟI!zwygC˴3?g J~]=ݕסy0?|;wg]zu'[u~vh~NxLog.:ߛ'iۮˇ.4pϛ>~ߩ}/3ҿ}.u˷Co:M.=pxC~.[ҟx8o]841ݥ[^.>ݿJ:? |ӮGM?o?{I8qu3ߘwwz'ۯ[ww[u7xtvo'8ҹo&w. ~?Dw?7?[vynt8w{y5m4OÏt 94y~M`ܚgҟ=L;}sC7g|h^-t~?H|?֟ݝ~+iL;}z?sӮ^>&9ߪ}!:[v OghiᛧM12DAzuu?γχu:w.{ݿ >U!8]ߩy;oK';qi߬wI;~'[u7ϻw߷OnХy[ߩ;>ސ|Vasw?3.~t;D?8 wCt2?Jgw]t۟4]x]zv]=yw{4t1w0;ҟ}私k~v?ҟS.;Iy7 M?ϻK!ztvv&kw[n?{Kt.ݻt6v4?.]O}~'mggw]:twmC_ӏiׅם.{|;.CV.Ck.q]8NOVC1w792]:No:VsKvo3]:v6̼uv6|niץ;.Oym7pq}o O!|+NvӮ\cog&P\'{{Dg <}~S~_2?5D|~}~Nw=G7Hϡqw<&zah^鯟3h~޷ofo?SS ei='C㹑KϭѧG94ҧ Kwop!~◛Gм&>>]|v=;3<]>ii~}7yywG?w僛~{?ݟk_|oquv;|;7=}:wv|χ}i7_~>H~ӣyߝ{vC2D854~ݻv?i{ >yw\:w7u?.^n;.=8RMv;u>a>w.} w|n3إۮogܴ3gnOs7^]|MJ.{ސ;~]:Voiw&x>nӴIONfY7ҽ>[v;u>ۼoڙ~b~{oioZ7w'߅gUM~xץigP;3~~nЩ~'i.>v]槥W]]<;u>]:S[u~v=4>}ο:?tkwmg}ӌw[u6x8igk4pO?֟.Soo? \}C?+;} |(n:ߛokwݥO}(>2ߛw.+mchl}8t5?͸ӥCw7P]:/5:mo}7cowוpLy m`.~[4Aϻ]اo?<ݖ]]}!~~o<ۥMpOVs?Mt14µ-?:4M֝?oyDnU< <]>k1Յ[u~Ӽӿ{u|>~v]ϐ {p ߌg}.ݖ7{nsߤ_~;iq{2~~{nf\]1ۏ[u~L{OwvN]|3o?]u?|;u>gwO;q?;w?K.Cϻ]w]NvC³؅3D?o ۟9G^gw<}WNy;ww{g7?pv?ߥ}Nw3www״7wwڼO3/Ci .]CpvU{ymc ϼ3;zw]:w98˴:wiiwҟ?sKN;o?t7nwgw\C?M{ӏٝ7t\\noϻpsϾ?Os.ݥoy桋GwM٥m&: O=ß=~!s[ӝwᚿCb{hץ蘭wѿߛޗo?g{]zV7Ow\]]8@vn.ܡi^p  gh޻ߛgyIކۅc7}^|>'1w~v[ϡ }~^t<ϡ{<ƭ2gsMCg3y_0O3m ǼwӼow[AO}騟v wҟ}omC7V]oߩm Gw='~ߩgw^}ӾKwô7N;i K.w~O>߿Ss>Ջ]zu6toWl{}q|nӦo? 7Ŵ}>:ok~v7?S[.7kig>7~>;/||S&>q ݝ!/41tgݧm{ПU!:CoMg!W-z!:NCg]g;wҟ]:v.~C78vF>п{!xon7Cxy>=xg;.t;n7ݟѿo8Oy <3wݝJ|~iivmuϻ+wKgNJgLyqH.ngg_yܴ37V;/Ce޻ɯ:w;ԏyoȿg51^w]zv :CiwcC{{ Ǵ~2Ю7yi7D.|3<W:4 q~<;_7}nⳡMOm&:߽OǛC~oK/Ko{5Ю KAyooNo7M74.ݺ>] X~oe֟nO2MptvПCVsy~>ҟ]?p 񙿇-]nכ0.LuOO? <7}yyyk̃[w~{6p{>C}Kh!8UyC wHNѝ󷥋y:촿{7nNͻyӥ vׅۥ|5D&znM'{p^c4³;?{vO}禟<4vuw?[u7w5w}w3;Oo|=ww^xv0p;!]>5 &}mcNK.^]z~qt3t7ݟC:ܬwtǺ1ߤo|Own߭w?~N.\~Ivי]N05N;.C<?wҳ iwinҟ潮=?x Jvţۿܴ]W_nm~vw4~7i鎻;| g_k7?翛ҟ翕u>76?=:?w?C??՟i|>ҟNoO?4pd6`>7t7uݴ7WW>?]=7=Go~>4 3Oo;ύ|?&>E8 &>>=8gN7Omuu7/ݿ>7t4?O~CxYy>7WshC5g1ws#oxn;ߪP{;N}noCУJw~~?qtvZO}۾<ޖ/n}wC|ޥ]>|u#ݻO]cOzqMC۟{/|^]zo}۾>C3ߝ&vCwnO}7c> m<δ|>O~!pM7q?+٥whouCTiߝ=IvcgJ<]z]O1|5?~O~How4;xgw:|翕y~:~]xgW~N+sC]|t3n.]8ywUw]x쎫wWSKӮ[߭3ė]|,n!mo> 4 }~;[u~_wݯKI7ѡKߩw1CtamowV]vh3?]LCwҟf|o>qs3ߪ?5f>:~ߩ^]zwc~ϻ>7w[Ing|o6ϻ1̼翛~? ܱӴ?{GD:߆>oCgS?M[]~0f>c Oyo߿UxoNӌô3l|y.]4igo}Cv]o{~?O!8N!vg}zŻ 禟q썣tм43Dqޖ_>קG7k3Pݿߛ|C?7ѵO7m}nN;1tӸoO}nM&5cuۛgޣ94~o3y=SONQ ޲kh] ;>Cud:S38&pi}o{. oA<݄T~ g;O]~>]Crg߳m5Ю vNڧw!7ӭ7)?,g?b!W&5O!>c˷3~?ރݝ.<3O7o>]nso2m;}n^}繑=WW.Ot.>fCk<߿Usӏg7?{|OP;_ߡvS.^U]Ct~oo5i<՟] ~߮|n~V_i>7?;e~Vo6w˼]0x[n.O;>}5N]_ߪy^]t:wi<|?g>~ҵ;vqwkwҟCܴO;?Mn4u}:ߛ μߪy wҟgu[u>ߥ~n ~]|]o>wތ[u7nv]g4^igHxTNGDP{e~:vGWNLI1ߛu3;|o6oӮˇC5NO=4癟C⣏ignzq>=t5n(_o|>m~vqVw8ץMiOw;{~ǁUnߝC4o5N.Tކ&{]~=M~ۅ 3~wӝM?47m!ztǛ?!g=yw^kڛ KӏɃN3V;ѥwҷKߩ|ޥo³۟io>ץM[7wNӼg:wf6:ϻwjCig0wCwᘟ]:uΫPxLxMoܴ|wҟ]ug#v!;j~vinww޺~]ww[u~:vS.>'i~on2tiu|M!zvw..={[n?S g6?M{Hw|n~|OiԟS{W{1'{3/]~Q]~; |O|_ngWNp4 C~cW?m{Gsȯ6?]zVӥ0OCmo| }8S=>xns#].ѱ ѣiooS۶=nχ14_2~qݧK.oP]~} W=zp;?CsCQ+y1Mqݿ;?<4C<.?~vGO{;n/ӌӟ-s}uwS}[u;?]J!8]:{ڮKAy0m9 {{?{ ѭ;><{!z;}ҭ;!3xu3?>4CxWw~7Սx ҭvu;.ѿ1gvv]c}s^ߪnHp+i:?8o? n?pVKOs[IDxvߩӮ;/U.=~'G}J?nӮy]thoi97LL;?ӥyϴtѧ;.ӮӼ7$v4wӟ:OW]OsK2nw|oʻ|?K.~]xwJ ϻt1?[gNS{? ?߿']7[.C_mwG5?Mߩҟ]zN;_injy.} w6tc:]n}~w\C`b>7VsKvio3N-\}iow{kwҟf<{D<fjs3~3NӮK.Ow>1ϮCqi}ϴiMqg:C ={|w͗>Ci=>ݲ3wy]]: ?4{ҵ^.vҡ]3D״ww]s_a oho7[!|xz|}~O14C [ѩ~Czy7A;Oޣw. mggߪyAwo. CigNw^u}&yMtΟy.>yҟ=иߪwoôKuhg=M0ghҥ;oy? [u wӟ4hx{3t3D{qt3<~ޅ?o4?u;.ߚ8wo}w߿Uzмu[ 4;]zCt>mu~Y4pO=ѿO3D=c =sµpO|?:?M.~7i̇ҟy4U>ywҟܴ3u~Vn.jhCqҟ]|l{tڙۏҟCw~o={gp G}ݟV=zpߝχA:i{:7S_7h-o~.=ﴻs74CtAj;t?n|t0gWg}{Oo?<=stojNx[ϡq <7|oߪnhcV&|ŧ׏~[O󘿇?4vo3}>S!-}nǡ ϡM5мwiwޣߛgo;Mo]o n!/}|cο}~M>&4{>]|xv<~\i.Ct4 ;D!~:w6?M&0V;M[>Ctg>~:=o!:t?4=C44~K.=~oԯo3]C|إ[!|;o?ߩm~v7'[.sS?П}y_?O<[={0ziCi>7 iOCI՟f~+94_C`uw|#?{ ? 3~'i7w.]ڧPmśӃٍpg!|[.G>vt37{>7ͳi޻?{|gN.=i[u6 u qS{u0OCtixt>gϛjo8]z;Mtkݥ׿ q{tw!:~~¿^=>hgן7nCx}|uLo.=?-?!|oOuyv]j?[uwa߄Goc~vҟq c.~Ow]o? I }ߥ|7m^ghP7_܄MsS7DA:uϻѯW`Н':Ώmi.^קK[4.>]<3/ѿpwFyп㸉N~{yӟu؅wS{g ՝|o}χ3]xgߪ}st¹ {C{߮ɻ8vguţ;y3+KiG]w>87͋G.|ߕCt=ꎿ k i6p?CxNߦߪ K_i;ϡL.]qV7|nti>78~]vݟ{&:t6Pf]|;u6lu6vw+9i7M\vm>7?6; mu6եiץio7?7٥ݻw6ԥC4 |~io?g~ϛ>;u>7!}jo~n:|nzn}|[u>:?w3]wӟ]}[.Sow7|]_7O|o6}y?Q{As;sD>֟y?OkCi3p?ӿ ~c9ҟMnϮ7՝.?]~~kt6|1'y o(^~oa>7٥>{3toͣwo\7>o§O^?yAy?ϡ=gߛ~D[IޖNy<s[w䏁g.Uo_}z|ypn;ѿo⟡y~.=~K.~Cp}C<.!~]:DM㾉_347U6}Oo>COoiץ}:{h<7h1O3= ׏y{o7;ϻ㸉nݿCУGӾ Gg|mѥoҟCN߿4ϻwCt\^i~nVw|wo ^ckҫ+J6t;u6wwӟ]ݝw^wӟ}ig>7+n?I4?Gwӟ?ͺi?ϧӮuӼmyOC~?L? ASB~M?ikha3ߛT-40 ϻ|j~yE{wҟ L 3]qtu }tMpM.\>7mg!MOt>mO~w~oMgޣ/]gCG ?د7}~۟鎣;^K7GnߪӮm;]vo~[Og>7«ynMszngw\7].w֧vwe>OM;}}I?cVoo5~:߭Ӯ;Nv}>]|1 w>y ަ:nݼ9N[uڙ]: ѭw?1u23wН:w54i..݆ŷۏyϴ:wҟ]8. ]7mҟ]|x1~~+;u>w߭{]뎯;Jv|>D/cNpp~'i>¿ ?3<~N;?ziׅůݺuOwҟCwu@;O 7f|8Si~~ >xsӯӝt2m8:w3ubtu7wӟ ~'iV~n?ۅOCoǼgmڛ}'[oi7wӟO;ןgsG?H={O]~Oy=H߳t;۾gڙr;( {ƩDχg>湩Ozѿ~{n?7<3g湑gӍ|>HC~_&>v7wkߪ>C|9] ߪy7 Ww<7}xoiun?77xѿj]߮μohףy:wLg_۟>m|]ztե3V54ųN;O3>i4x i]_~U3wޥio~~~7[Oo>~LOig}gw~'[vM0ߛǻ?Lm~Vsh} wҟ~1V1w7uwp~N;K|ӮKW.ܡ ~Sތ|}|o3V?MnUIvg7VwnݿM?]|oڛN?M{3:~~WϘϻnvߛ; ~ou3?tyL;ҟ]c>7?Mgٝ߿ϭw|oOCwsOq<ПHOg_Ag]?S|?/п?eD?RVx 7~v'z|og1Ofg~0|oԧy7Vo5ku>~̣wu>Cy3O]=Mj74g CtwCtx{? :죟O=ßo γyݟUOxn=g/  OyoM|44sk~vG?M?U}<7ɓ}!><=8=ßC9owoރi~vu775Ӵ]n c~kp[>ݿu:Ծ ÌMrp|ԧKסqvc֟NC54nK3qnKޣw3D >gh>㺑=Ǡ~{p:g_NN7|^o!xC?goza~v ]ߪ>}G}~v}3t bH~ۧӮyҹCyz6!~w~;Ӿs7}o>oe֧GwoOw\ңۮ |nuՅg~vP{wҟyj?oh@J8ݿ'i{qN;.v_к;ߪww|.槡&مcoS]owo~wܿSOK3.|}w]f|]|owGK.]o~h\?Mvc[O.;.c:?m~mϐ1dߪw~{4c!-Wugo?}ߪK?wh=~ȟc~NםG>ۥ4Ctngw|CGN;M0o ONn5wڙu{H>ҟԟO}y?OS^п_~NWSABV<3ۼL}t = ]=?GsiYo~'i|oio6 mouRO>Kns3nw8>CMxtۛGKk&|qǶϡӥOw|C~߃?cH y_gN=ß7ɗqt姛kϺ0?gp:G'D~o~.=~nC2w~Cvߪyw.ѧ~w\Cch7ojW.?v!]>W}{|Oo?ߎt۴:K!>w4oC[ntҭ_O m:7Юv!9g.|>4xn}<=ϡC?{3y{1i7D?8Vх;. ]~OK/ٝo7vSMg7翕쎫gߪӾم}ߴ3N.?Żg_w8~'[u>ktw7t1 ]+nzh\ϡ~6V;~w4CN.f]8qϻz4w~?ūK.Cw[!:u~>ak6wvVso|;O3uߪwnvU8]97u>Γ٥|o>7xߦO ;niׅc7IvNwӟ]7ԏyϻ vf~|o6xnϻVWy|=Ǽoߩo?7iMI8]>#w??OiMnOO^n~G>֟秝Ӭ2S5δk?R~?d>Wsy? HA{j;?u|۴iw?S~NJηîܘݟ4 knc~vܐꎧ<8O7N[O}]x ۅ!3_ן]|o>Pj~Ve~38]zux?jg<7E󽡳9|n7{w>oo=;?;7|۝!xC=Dwww=ynK!C}GC=]w֟7S]w}>]3)? ѹ}`h|&wyn£緥som~N{tK!:t?ۮynK.w1}o?c֟=MM_tx#:ۧ{ʏvm}Ohu&w~|9g-\S߮^vmvt;ODnN;]37峡6On~|na7?zxu?9|[ݲ}[u..݇w:woӾw]߿ ѷ|u[cǣyqV:~1ui}vO^yKGi7xwVϻtҟݼ~ulqwu75O.g>7ߤ/{к}w݅}qv[9D..^}n4.n槁;u~vO?Nҫ;ioiӥc܌Ӽoua>g]wҟwk:wvw4:V Gw|4xzw3?7iߵ7ҟGӮۯig|nwx\o?:zwo4w >..ߡu\ߩie0|.V?{O罁fX6=֟f];՟ԟݯ \~AoWa4pL;i ۴~ Й4x =߫S=74m򯙷.?:?  Q4n>m_+ѿ+مgNv4x]x]8]ooe|}75t;o7C}qw7~h^zt&i!]=zM|m78/}oh>4f3C'~{=tvMU>CuM?𻉿L{?ѿoݟzz湉64 =DCqc>s>x:?M}oC~|n}m7n¿tnߪ<7M|`y_>̓>t|[Ǎw>~>HǁvC|h[!N.c3~p:_?34ޛ\8^ҟvC[u1C:ߛgn·3o;G7O7qǾ u~_u?7޸8]:ߛqcڛg~hwgߪߝ!NӼo}aO}[u~;} n^W&o~?'~7;ϡy4xv쎳? иt1L?CzwUi7w7u?:wo:ߛ-NM{yο4t|gioK.]<͸txM:iץgH?|M{wWU!zt3?KWoތ|o͸~N;}4vn?]iovۛ.Uswp~V]oYw?oG۴7t7poiם.}M;V4v3Ԧsi܌|ni?~ux~k?m;S|R?ן ܴ_e|{j?i?_C?/;3mD3igǾ4f?3o5oٵӆ߿4u?7+9wuIvo}kڙ۟˴3w?7g^n.~n; W>Ct{xwA:c<>C-M|>]xvC|xu>s!:;_C>C|ޝA=ݟo;ޡ~?d>ןC4:oMم|jVy}oWw^6pwPݥ=}vCx?ꎿ7P?C}I,];v>÷==ؾӮww~wjo~=疾7gy⣛[.~]4Ͻ~|G?yM|p=ۙGokym}oh<߄Wvgt><7;4?7ן=c:4o=y̛9x.\ҟ]7|;ҿ|?o[u6߆quمgn;Ct2?vym|.CpѿV ;NӮoL-٥WnM:N<Ż>|;uڙqvm5~N;wIv miڙ]o?wm74ߦc1xvץo& y8 ߩӮ;Ngh^Vw|O.34o4;Oi7M]xu`wm.}LIvOӾ; mSi?6}wL?ϻp~OCyw]xݟ1]>gW/~'9|?p~.] \ȱ:NWw> [IVҟMi;.{vcis;ҟ۴m1f4N{on?O ek|֟w +F~{ߛP}:͸s^k(vϑ4|i;#4ѕ4wҿm ;O#/{|oӟCxVw|n~v?c֟\8ƶﴳO]!?Ż;n?CŽt18j?D.}< t247cA|ͣwOt?[<|w~~Sgp|y9Xz&ύ|fO}nj74Crp>s٥ow͛=hoj?D _ߪ^]:VsN]zӸi>y.=ӧ>nl..} !o :vCw#~ݿM;y\ 'tcs{zMvCti34]~~o~o;!i>»q? !kyDo\χC {S8kHn;v|[u~v!|oGo;C:w:?M]7?h7~Ct[ |o>o?Mf=`_3h]0 x=?Ngf^4tngs]ݟgCpt:?Cͮ\ Nio~VvC |o>7swc6wuoui7vS{KӾn~U?M0~o3!~[ߩwyK~L|t|ޥWNS]<~s]gקߡi`xsi߅;D[Ow4..+i:wk>gwt1^v W?>C>CxVgno23D.]n?.<]z{=Ǵ|7e:|~Muqu3O[5tuϡy>}ݟ po&K?ݣiqu>yo!|s uw|7C{n; a [?Oӟ鎻 [s ѥ;.nݿon'h٣mwCtmڙѿ 7ΧMjj{~[}>g7mw[ե^]:v={Mt~7ҿNs1v;54nM{p~owҿngy]0Tҩx .}S9Do1!V]:| ]|O~Nio6gg.}M.~4twۛӴ7 ռߥko?o[wo? ~oc7wۛ]woܴ7?e:wmgg^ottNK?ӿݝߩӮo5MCp}_w\ѓ]zV? C4w;u6nt4p8~'u~]wiov`Čh]|ntw4ߛ5w֥_?7mߕӌ˴3? wNf|C?D/wӟo[ 7uv?G߿S?i1<ҟfz? |<e7pg?y?:t?ue]~ky?=_i;п {Ͽ+>H4xX|4ϵkp ׯ?̇._Ni𿑏J禽y}?CwNҟ]<ߦ}/yS~}{=c?t vw޸>=ßCt0^7ӿ'KwwA:t6?+|;>/|ҿ|scgׅk}=vҟ{ʏ!3xo;~ho;^;M< = Cto?{xҥG'ww=D.~7=G=nznh>zxӛC|}}ᘿ߷{gJۛ8[uO:5ios[~2?ԯsi747ͯW77  shs[z cM 4uv7?v7[uڙnj3wѽyCұK硟v7ū;A:?z3P{]<}1{~k3;ѿd3wW&}+73D{vNv~oۼ;uӅ?$=_o~?o?|?vVs}Ż K!84v]xywҟ^疎&?o1w7wg.o~!o:w.>Cxt?[8Iv&|]|fiN^i[uW߭}޸ۏCu:ߛ!1Nи ^i~m˼o~٧.|ig~7?߿Ut=wҟ?3q܄k7'M߭yw[oӴggNgNSߪӾ;Qo[OC7#ǿ4N۝=Y4rҝy^NӴo?{{g?w{sGn2sWud?G?u}ac~oi1~>|~(?П=џ_Oo~u{ϯsa_??A=k{=Mϴ یCwڝOǯq+=-]<6aw|o+G]󹑓ߪc>:`=t1zvVn;muviOݟCo?qW77?{c?.{O{{kGǴ͋>|xOnMM|sh>tNCJ?-ymu>|t>7of3o5}?w83ćC㾉ko7yy}:wkh<3{=z|t-oM㼑 n+{nwzo>sig}C!z9Oo|O}i <=z.7͟oy]!CtaqD^=c3 |}-[u<.7Mw \}nP?]xy«7?/]|u^x;Mcm[оM~ߛ}c}&~7p>!|48];ji 3woK;n G?}{qN>i][u>: |y^w]|2݄ywӿng6ߛϻѯK3J6?!]wҿuiϮ\N[uڙxx+W;uu;.|o~NK'Cnoӏigi:wۙ{CVۥOw!՟]z.~]kxSۅ׼;u6?M?q]Oӟoܴ3ߛq kw`nCa7w|o~?ԟw|[?ץk?oiu]!Jq]>5 f]h\ |;u>ҭow.f4Cp+i07w|n5w-;ϑ47:N;󹁳?tڙߩ|nT8;?Onm7pzk6 }y?3H~AOc۬?ןfݬ:Y=_ϟv_HON;R8sC=M/k(Ru^^ ^/o3xSyK_?O3fލnCz̷iu~vivNrޕ_Cm~n?vҡ'g(ݥPC}n٥< c=vCߝD! .Ct4?G?{_ޣw14ܛ?xC4ah>oǭ3F{ ~3yߝg݅?mȇC^3=4&γ>]~mwnۣ>Cx9D盾ᆟCt3|h<7;gӼo5OJ5HvCtzxCwЛ}{Ӿow湑Ν;?-}n]zҡtw݃gt17zCp?е 9Do3?+zxŧywS.V&쎯۟c~v]zt:;D.>s?Vi?owڙ] O3?c7rmw;u7ѳy.;uҳwoC'i}ohwhu; |>D>mߥ{Nqt9?oohso? ߩӮK/4~ߦ?|o3u翛ӅkC;uuإӐ}5E.~'[u~ ym|۴g.^.]8t:4ϻ3NwVsӮo.U}w\f<.<CߩwӟxM{|o~vvmi:wkNa1t:wY7wi4뿦An{HuO;w~>ӟYן?7ҟk~f3? Oo!?Y7?/o]=_zW=ן?\O5δ+O~n5ֿ?ȌKx潧?;`4|;ҟrlvo?'it?7nύ|wiڙLJ}yo}_y}~Og^},]:P{]vaO ͫyVڮ۾sh|CuNC퇞v>[zGupNquyynK{]zmcCt6w;ޛu }o~^~h^n.C|#]zwv5綝y:߈\p~sKm}KO}~+C|i2O!>=M 7?-OCsg߮Ӿ~Ӆk?+>q.~q߶>y~+7|& igi~-}u k~HK<~p\g~'~^7·7?]n;gh7Ct3eߪ}n!|ghѿtK!zNyK}sH.7&yи oOn{}W^? oeǼg>ۼ;u>9Oǐ\J;wiݩz t;OMt:wuҥa>7? ~.~ݿ;wU|owvw{|w}2ou>7? j~vCynӎON|nڛ .imϻxOҟu.>CwM.^4V!c3_}.y_:w7ioҡ;_f|f}CߩӼ[!x4K80y~S~ӥCUiW;O߻ioionϻ5:w6n?4ݟ]:onSy|. ~+waiW??Y74d>П?μg~OP>?џ潱{O>֟f\3nzG>՟//:?J?}Wvf߼wpi>Oy_3p ߯?f\cᚿSL2OW#ٕoÿ?<釮O#]mgOy߿43Ծ;!<罿~77̣gų |߃McӟChj.v3 !|2m<]8]M_m&zLJ{~ݿ-s?t =奔Oq!|n[G=G!9iұWߪ}!i|Cxgoݧ;/߿\v |~ η>J?3D9Go? |~ ݇Cv]ztiw~n ~{o? }L?o}_ҟi[uڛi ߪy;n{Ӵ3wۙ߿[ߩou]|gvCg~o ݻ0Ns/W?Ӽo1xϻxӬ^Wҟo>7:?0u?7?R~A|'|2?)߳aơp!}[=:2|eIVn=gWn\VFC௡?~3ٵ˦}\Pi7!]|n>?o|ů}:?3ۿyNt <=|MӝA<7.G4{h^{tпo.܄W7С;7xsup~+Fi}h[ ͋>C84 λy:ħC|óynGo i޿wxyώ ^t_}ϴo+'..vvѿM?gyߛ Mr&:K!~D7gh|ߪӾmk>gO^}K?tivqGj?Mzx៷}}sgwӝ3n!>6O}1ſs]:D=zw44gg? >]n?]χw}w\]M;C.w6? .={4߭Ӯ翕:OC/iow6펯~]zgȎϻVmg^Uoӏk~JvНC٥~]w?g~vo{mץ4@om7v?C߿Ug?u[Oӏig>m]t?^ץo~ߦ]g2wg3x ُ!.x:DߴZ?Jz=fQ]7?ԟzu?@>џן]iֵ8̸ D\>՟|^/Y~B?Jџ.o f߬כ {u~=zigh7x:|G~L;38/0? {}-9ҟF|n+s]93p>߿Soﯡ? yig~V Wwn?^1Pz~y|ó]yx: >C943iyϛjn{t3yzGvC:oC1y:gpt5ԾywߪŷMd[Qi>oץ}{O ~Om?7O7j?>yoC=D\}xz3'<~ s>ݿ|pO}x P|?4ۅW.{ϻ? 4Vwchם.C7>zzt~{v~G`߳s>] ϡΫH94Mk&=мϴ|>Gz&vgA>0w1y» ݇Хt>?'gw>zO[GӅۃoDכۛ7;]]|y;ޡw:kߩwiߪ4y>C3~{oo?o+ۏ>]/ҿ1ϻre>όô3owi>|;.=t?Dn..<}L.34NCww\mm:~1~igio:wK';.Cp!8fCg|ooб_N߆|nڙ~?M] !ۼgnhu63۴7p ߩӮK?&6?M?4ҥ]W/՟Ct|ogNܴ7wإigyUxL?]x:3ww FNv]:~Jn 7w?No|ooۼ=kߺ4OoqO󹁻? NY7?П}.t]߾Tci?|n~g1x<ן?Szk6v}]Y5~o'~w7o|+S4*?ȴv48 F_7pxx S}ogf> _OWßSMyo5##]dwҟF.7uvۛ6޶~nu}n.Ӎ/nWи-~鶿 x:8ww5 =9Կy~N;M)?~+y}L{sVo}gh;D!§7 ~{7~nWoim睿oMt57.t_nw|oS~M4O~7i[߷7!}K/}w_:P{=Ot9wnh߿M|݅Ow5Ow^~ nj^cߪyjt~!|~vC?7~nzyx죟8}7&1t;Ϧ]?u6MOnͳm:K;7ѳ;Gy}+yv]{p~1xqtSѿ234.}yoyhgܴ_wgw|ogݟ͸oӥ~]w]] giwt Tvʹk?<ׅ?+JK!<~+;O^Czseiuެ?'?ͺd>~n|?[d7<^O2~o\5 ^ھB^Si|i}_iowҟ wȳi;Jfs(mۧ}< GviAv~HWm74n3._o=<:gpJy!zt{y7D8ixF:}Cxдӟf|vn|8p?Ci}|t|>C3ďC嫡=<;owaj~v7o_g4Oww`>L{}?4![ |~t\}ˍp;w? __yw=Py[Ow|ߥiznӕWno٣g{w|7pc>c3v潛io>q#wߪs}ߩKWwӟy4uJNv.6?D.]ΫmuK_K;ߩ󳋧ۏܴ4MMNϻӌwmϻ?뢦}?NMϱu}yNyTu_3_Xv~?O^diio>7t1voǎǼ{OB [~v=՟*lof]_~omp{2F? e7xC?~s0xi0x~w5/Σ_\w+sﺟ;!5:O[4;u_|hg^eN shiy>Cueh7{#}MG_o>tov_vGunKӅm78]n&y< ҽS!i9_vϡGiu.wwjw]z_8C)?|mg!ttڛ=~k!v;߃|cڙѿ{C|og,ϡvCi~Ӽ{& _t;>7s[y?٥9D.]Ηiw|5O{G]8U]o?ow}?xv?;nݟC6_ݟ.{w~[OigW;Oų;IvM3ߛSig7^ݟMz|>D{]:VϴӾ;w}[{]VSPCtAYg~v]7Gwk.}߆]< |.cy|nu0?N{ӿ۟Wujaw;u:wӟUn.]z|zm~:ti~o? ]91{~n8{5 s_Voigg?^oſ;߿[+?;vCp ]o wtNy?uѿ1wts~st|><~]P! k7z&7oMwӸ_y=o\íu?sc3 gN;]~z} &j7o?s[:tO~>Go3Os΃ٴ3|tou[OC|g.}4o7VNߛϻ36wſӴ:NӼoyhП]px]~^JNwӟyWL];[.}]O}w~L:?Mߪm3?7٥o?oߩu6xM{cCf|NMo?w4tg#y??HוS??ѿu~k|GO{kO~m0|Y6 SL=uB[Ͽ/7AO?? Cw{[A:ԧ;1G<U~HNm?4<7~ 7u< C߿Cp[߆}?;w ?{}< [ K wpߪӮ>ywu3pߪMҥv7oܴgw] 3Ws_w||y2?io;My̸cCt#:[ }C}㶏~>4}o~v?D}o =.;SOvO| m[ <\6Ow\q}oӟqvﶳ~nӏ#n;/CoW_}״:Y8 &7? xa.].?{Yiu>~owҿ:Am4wo^o?If\]w.^?7i4}G]7gi74/! ߝ߭wi5|n~n˴wҟ?^W>M!8oHuZ߬n~Hy_u{Ӭ??՟f]ߴ=YWN\z}_ۙuj]6x އ xmB~??ͺ?W|ozy~翆~?ϯ\*?H}C_j;3.x _;G6p 0`_|m4r0֟F^ y:o57]?5:۴3kn|d3؟ѿ+ٍyfPCpwn{;|oܔ?ϡ hgo׍x][>M◡2Ọw3t<]~>7M~Cێ<77į7=4yݟG?Oqįo77lgF1`7ݟ]<;yzMt Azyn7oV|?O!ߍO/xͣwo8CptMܛw};CGo!z릿ӥ947݆ӿ y=ϻp+ѫio }:<奔47[o&z[]=ß׏Owѫ};DO]zu!:WC }n{~m7H?y:?Vs/~ߡ5|n[?]zt3woy|n~酡~݅o>~Vi;u>Gwqv3 30?64m|~L!V;Iqx]8]ziߥMi;u61xf<]N=4n|n݅c>7Vϻu;O~7o>7~+mu[uϴ?v?+iڛ4M]8SoKgǴ7t؝xtkߡycw]}g>5xNӌ|[n?6ߛSJvf-it? wݴw|o~NӼ3C妟oߩyNCV1cuwE ~8L{igOo#yO=i{v~> ۛ_C?vgP6O~(]V< >a\~AO^v~Rf=ެ_ì?p[{?{|M?~nWL?vvm؟_3ECoo'/iigȃqo?]`7i;Ϯ0Orkt~[uy|nݟ!8鶷{(zm߅wӸo N|>ԯ};C+!Cx k>jM~xshM]<죟V;{[W!:Vv1w>]C|d޻Ɏ[!87`C4mEo?wϻO}߿U4?^w>n³K}L]ztѿ;?]ŻKj{y}!Mp[87z,7y|ӟ]no~3><χ[Ӯ;1O݃&|:o|9M|{sKGS.|[.|>ó󳋧yn3yϻt?]o>~5Ճ?o&~n;oC[ ߥco7r;Ϯio~gW }gO{o?n[}ߝ]_ 7[C;^tumo{k?yvCm}nK. ?i7Gw~>4CstzӸoۮ.Ϳ>]~vu}ߪzy=ßCb7Í<8|=D1V|?Vot|?DnCOק 5O~~N.ݻon]]8n[igwӴo3tG.j}Tvwt7~[Ow}|~nCpU.]7͇i[ݟC:N;![iL;uu6? ~0p+;uu?ҫ ۟ig>7k~ɱ;O}| .޿Soio5xt[ߩӮONC!ҟ]7]|Oӏwӟ~Ct׵~+; o?wg]y5?J:C`2n:};o4M{ywU|]g47?7r84=;4p߭Ӵҟ?:@ӟHS=տOo^vf}ήwYW?봻[73]_T>ӿ Y)?O]o5^C{m~[?vί=Fۛ 6\ҟY{fok(\L~Sӌi\<0f>֟_w{󷑏Jv+ߩc}WM/][u7?^0]aiN+iw66>4{~ޅk0w O |?Py]8Cqgnx5-|s|yzy78D;.߿~zx]>K8^w+yow=&7~n7ovY:ϛ3vM|tӸ,t~v߃/}a7P?,^Mjg7ۣKo}߿~?Mak}~N{wҟ:gh~&sN3o>7ѡ`yz& m3_oѿo⫡~o|n3`{J񘟖g~?X:G?7Vy:󽙇.!{tp|ا{]4Oo}n.}. ѿ]3D3]>}nCt7o}O]zq Ei;umu?7k_~.=Mvݕ.] ~nCt3?p8~]8]igI8gV߭Ci~v߭}w?ҟ]` Jv;OC:ig2vҟ6߼o>·sӮnXv}Y翗4촳ֿ'P?7O߳a7 ۬뿑fzfuHO]7?oOo?? =Ǵӟv_AڟcO2vJ_Ìh{:nC;>2ԟf|fʷso#FNOF>>nmLWom3?M;?翁ߪs(ܴ|n~v>C=Ƕӟf|]:oMw} Oύ|?;vC? 7ҳӾ<3>7} .]z4?.= g.]wm~V]<ףϡqv3}w\ݟ=81o»my;}OnM{& }:v?=>7^>7_v\cҟC7ߛo?£oqij{8~>HGtu[?~ߥi[u>k~vſ =i_@;iݟݼNtg>7? >m~N =~79DߪKGw_Ӿy}'|o35߆]v~;OC5D!{]6uk4w.'[O٥u7:?N{_oӏ{owҟCxvo?nϻp~Ivgӥ? wҟҫvoӾi[ |o3pt1Nmsw?MԵ;ҟ:w:nwҟ~w2wm| ߛf4wY4uy|>D.]~7;{wsXzus_Nig`:?ҟ#ieσS:gSvҿͺ=ןO:8Ggڙ~ c{O3mo? >j4]i+?s#];Ϯoܴ:=a> :ߛ~vswo?o͸͸}ӮC~3O ҳC~?4!~+tտxv\^.]w.tah~}n|]ughJܼwb~g.;u>O}Co?N;^n7^iѥKم[O~w[t5L]g2?f|U}g?w1w7ѭW?م]o5w\w0N{oxM;}W'ixn?.~ߦ]iם#߿mO};!]oiuڙ]vCm|~'iL;i?dtm7|oեs3U? >]wo>ҟOm7f4n??՟ lS\zYuynf}ٴ?Oۏ~o5q׿S7]|R~u?F?7f~>S=_Om{z2fSC}0 f7{ ҿ:ٟoŸx _y̼y6? ~6rbȉ;yWnz4z|nk@N?潮[ 3M+CqjNknO}zӥMqP;>ݿ~&v|[tSCOqwwq3nhCuᯏi[u>gg3٣w& 8vW!>=t6C5Dqw~<3(sonAv 7MrsSۣ>7;ҟg]C3Ԯ>Կyޗzv{w~n?ww{3y= Ӯ2yn!uvLv7ؿ>Mx6>]ݿo:w ѣ>7{3)?ߪwC|gގnuo?no s?C|q5?Cy޿/1~~{w~Х~? WNohL 妿w1D.>潡q:] <7۾o{+97.\{i~ix?x;4?]m=Wyxu꧋Oo\'v>7?|j;ߪӮ |o?Oէ;y0MSs|[~?۴ҫm~ޥxtҭyr;V?bi`7+9'h;u>7?wwKOOw<{WyuO^mo~v:8sCߦKoѥ;i=7t2x3w6~ٝ. 1wg~߿U]Wvw3?m~+;u7LuyҟόӼg[.Oonh}|ޥwӟSsCϨiok~:?M{Yo 34=׿u=:տfX׷:womi>՟ ~-~{ϓN=ܬ_?M ǎS6xxv]]AF~C_?qzYҿ ѿҟ߯Ӯ~u=SL{0*T8OWb0t0zMnOOO˯.ϑ4:Vȯiݼo~v}7mo>7 iP<1?V|n3t:w^>7O{t>G=:v>t>.ݻ~sGwCw1ߛχԅ~]zuv7?N3D!|o{M|ѝvmi;>ܖt6~o!8=~?o77}S~o?c֟Cto=ӿmg_:Ncߥm 2wig~Ǽ?8O7yuu9Cx݄9yߝߎti^B S.7[voM|0}n AtMt!G?qt:w?~;ϡ:մ3ߛp'ϡon?4pߦo>߅[ |oझ44ޡ5ұ nm~v[ߩyW>&?ů w|o~v᛿O4pv[u7?xvCxVo§;ߪw.v||>4NӮ 4利n.>i߅o]uLjgnW|[Oç]OӾO΃|;.ߪK.]]| ҿtx<? !uIK}t1S~ uwhܿUy63O!}wo&~vO{'=~io3yght?oi7ҧ{/)?La}DJ}oNX<ӣ>Cy.ݯo7h7H禝w󡿻?]M.~'iwGw<@n?|߅g~Nxvjgv{н۾?xMvV8vݿwק[8GqtweڛχZ4{mNo~v`wv]3w6qugta6MN ߼v:]uV/>ߴC:?w5vNҟ.7?]uee15oOwho~VM;ӿigNK.Yӌ|oGϻLo}w]6?v^]Ӆ۝CJxvw{G:v?ooO#^yzm/sޮm\X ^f3k<՟=Y6 f|FzY)?[uHۛ䧡YOc>=x:3 U~{*~v4x>O3.m}O6i?H?7z;d̳Kž|? 3a~2?vw7v]kߪμ??~vJ~n?ݸ|oY>]8]4O.w34½)04.?=k3y7ѣGO}ǭ?73Dסq~nk3ooCv[~߽|n_^ Mtѵϛڙ >mүC χm;?7ѳ8Ov)?t._߬}gCyP?ݟ3M[ |>W>f\7ѽ;D?ݥ;shsӮ;]>>Cko}]O{{ѳ}W^rS[]y3CKǡ2tibqѱio~vt~ޥ V~Mt1w£7>}S.|״3zv3_{siUu2ӌm7NG{t܌;uy~N;;>w|>Dߪy|?L]:z;OV!:]t1?M.ߦ]ҹӥиx~熾s݅w4 .tc~ ԅc4v~1nӌǴ|u63M..[;?߿Sf\o[u7w7p͸gw;g6M{ҟio ]:qNvU]W/?w:w1u3 4p fןHO.o~fNz?sn=5S7OXi{Yx>՟߶g>f+\{#? YL|?]gs^<{vOom}i_c)5{CCviȉίw;CyOy?O#W4rn:퍽3N{u>:wۙUooܼo>ѿ śUoext֧m],}~Nng0y oo?3wu<{廡q gPGC6>vww79GCp}7i8D!6 ~O著wmg!ޝ7ɍ}[uo{܄mtӸt;ޡ~D?ϴ:?gg^Ivѧowv;u>5K?>{?+v>7oߩ޼iIo}.\ G.]8qV Ǵ7wm}ߪm7NivwҟU!څcV K.kw>7W^sӟ|o߿Ugw}7翓4t2}wҟy2uf:~7[{]ߪo뎣 |[. L{Ӭwҟqyϴ3 mn|n7r<>;Oyuڙͺoi3N7~cln;yn]?Cg4:]xJ ^f8V wӟfqKv5ߩ~ow;{? {Wv75쮟<>v=H_E/R^?Ho}[?C[NsGoǯx[w][gWOG?)}O=oiCiF?W F6W|,T8i7p̸̼:_F?7T:qq~#iL9ПF>O#'ꛮ^24퍼NҟMxF/vݟF?{4p? <>;}o8ϻ~{}7~C~o5P|w(>Oχg!z&}ҿg.Ka奔. ~h\gh{w޻w{h|¯OCp6ď7}>4o7KϻoM7.}nMv1w»Kgw\C[uۛGc ѽ;.K.^v3yx4U=ofgwoێo!2Vۧi?ѡh<ϻ ߩyQ[ݟCt |[u>7m9|Vϻ߭yc?ҿ[Ӿs>y_izJ}OC߭m1?4KyC~n~tݿ{]|]|1x ߪw4N]zX:Ow|=3?powҟ]~imםy7˗]w?uۛqϡ04VKGwҟVn;.xp >fo>£ wӟݟüg{Vмuեҟ?vĴҟwWOt1 m:.||oiżC}ό|oOwwӟ]zv{_;]ٝ/wӟN{}Ӯ߿|?'zG^ANkurm}[{t?ϴGYO>6xquigg7pLf< ?duܶuwnM{޶J+\oX:j?߬ۛv_moOROO3O]<;C~p ۼoo}se~nlm7eDPv~>ПFnϮAvo ϿU eO><y߷م#s?HW}eݟU8 Swp&:ѳ;!xo|,D|hχ6o8w?{]ow[u?hwHO}t#wf3-ۙ^N}NC2g|t usO} AP!=7{=gp{]߿U}/wg a~Vӟ1}oeCI4OݟC n]܄OY4vۛ߿Ssw.]+};nw ߩy_~.}~'i:wwy7Vtҟ42: >6}w^~+]?ӴΫ]_7Nw[i;.G3wk~Mp]4FwӟU{y}{_ӟyo~OO.?uA/ASῧYӮ'翧4pԟO:?՟~~?|{?Hp8ӮtImo~z}g~jWigi{v{OioO37\}24}o}Ox??ן}y?r;H91w?0y5N#4뗛o[ |o>oۙV>nf~v?>>C·K/tqS?ѿq{ʏ3;qtv{}E~oDoӮ;OCѧۮ>C|禿t|ގ_7{_g7}}otl}nP=՟^43n7Mx}}F =wwt&<34~.CӥMn?o{Ot>ҟO:wt7?]7w|^٥M~ҟCt佺L?]:Vk7N~[u:wҧK[ϴig>;Jt&:iׅc7.n]zV^wig77M{?潮Vm{]ztۙ~L;3u}o.'yϴм~]8]xSߪia6_4~0>a~vQ{ҟ!}w.=M]>78Nv1 .1]iN|>$O]-_<ԟ7=~H9gUi;n6y7|kߪiƙg߮;u>z7wu7?{ҧP~uc7Mt|~g&-}&kΧy~>8[z|sێ&ޗ.Cy[~<<]|z|?ҿ n7ѻwx{w=wg/~+mУ}[Zzߩo?ܖ 73CnA~14wtӼgnCV ;_]8]\}oM?{D]xCtzt4λ>Cvmv:n<]>pCp{Vw5n.]on~simLy՟Cpz?shocܖ^Cp+y7q/9D7oiųMxkҟ^o;VwfC|m?D!<禟.Cէ;n;O{igLq1K.}8;C|[uх[!<N?:Vsy6O.=n_w>?M&:tywҟUg=Nw>JvigOgo?t~o;4O1N[{ߪy|n~v;.~]t0wmg;4~^.ҹK.=~+i_v.NwmVӌgw7;u7wӟ;wҟ?篡?OҟEvݸk~2w7w |>wyL!xvy秅ݻ Mԅ;Ԯ|v?7ύ|i?}c.}w؝<o^cM{~O1DCx C|uҝ߮w]m&~3~|?o;_C;GyG|oG?ﶳgmӅsSCҿե{qtw7 }#ӥà<=:|? w#3}y1wqo[!!>w3߄Chygh~=sCv?O;Cc!>!|u:ѥ7O~}~?{?2DN[u~0v7P;wҿvOow7vw75Nϻ`>ҹo5}igW?|ߥsW^MJڧo>4w;.oi>3ѷKxKN~~7[n]z@G/yNnnJv7xvۛwK߭ތg?w݅N7|;u6ߏ:VϻtZ'28ͺo| on. .{:ni߅c5?qu4::fng<1x iץGLN.]g}woܴ4t2몆o<џooRu|{:Y7{3yS z?u1N{nm{OauS6fŬuxmky? sCWeڛ _3?fߴ7ߦ_oU| ߓOASOueeyo }i䬫#i Ǵ7?oܼOvFV|~Sf~Vio4|Cqi7y_gnIV5mܔ{n?|n9~m}oi7\.o?M{7y9Dϛ<Կ|ޥ 9D1o>.7}4ϻ?x ۅ };w[!8^}t34?M@.CVy3D{ãSߪ|74o~׏>C{~?4ϽyߛуM}xC{Og?w{;|~[8CO_.w#9Cw]/O}z>׿O ҿ=4Cetwk0y!ݥyzͣcڙt!<߿MtuP:Ӯo?ڛ:/=΃߅o߼ܼo|ߦ]߿1?MJvcN! o5|ieCҩ=J]vۙM~c6?MJvI|nҡ ߌwҟ|[O^i;82?֥!w|nڛ~~+? ]ߦ9$/4vҟ]te38/x[;]|t4wŴwh{vowҟ'w .14pf1۴7N5ߛOY/Ο:?ͼY3pL;K{ިۼםv4ҟk6f=qGLMMdwݟo=i3͸CiWoKm3BӬsџ^m~>i<џo=՟ukӿ~=nos}OJvPo{t45ڮoqx?dmf|{=P|J7;^ҟC7 \fOSiHy0?֟F.7#go#ף翓4pϮˑUigL[[@NO4yo۴3ݟCxwᙿC~PޡMwҡm-o|(2O1[4{~8v[<ӝסt=yׅsӸn7?Ŀ7}[{޼Mt; }~8>ynxw|>D.|i7Dr{]q OPCWw_v1O/3y|vûy~Sџ]4p=<鎿~ޝ|IVt7C1o5^C||O~]_t?׿vk=MA._]yz!~6O!oCv3On;|~[gS ]z)?LUtiy}~?+94]l? kIv񼉎qwmۼ߅w?+ |ޅvcߪwVoO?Kn.~ߩw_7u6~.nߩ'՟Cx&OޥGοSm3V7mһ;.>ݿ2N \߿Sߪ]70Nu7w;nwhfOk~ŷnbڛnvuJ[sμg>ҟv:wo>Kߩy~ig~vוjM|9H}gҽ ҟ=3WCKmaߝgPV\3g'|\mOm7?S~vη2:?!:u5_!mϡy6Mtww7͗}~O w7Mp34/ ^N.ރ3<N.^Ct;4!L7{h^owyJΓ>Ct=oħsh^~F!>ħC ^wOφv d֟{ߛ~nۥ- ѣ׿=D܄|A7GcO3't?⇡ a_|n~oi|ovah\vϻxNwߪy9IvaڥOό||nڙMK]vw~okt>p1wvt׽L߭ywo}snG8OӮ |}c>hgtwhg+G~i|owi>7?M/1u:~'[u>ʥig6?'ikңcnS^nJו_W_-cڙV[v]zM{d7?h7xuדig:wץi3uM}c6u~~}H.}iO|n{׬i}h4M=cy?ͺon?uެ'uӮG֟~J~=]7ϧ2xYO }3>oO;7Ӭx[6?Rd|o>5 [f0pSo{Tg7O/7߿S?g'c+F9|??՟O#MvSȿg}wnfIvПU7П}NǴmg׏7xt.|ދk|}Kxgmxǎ[{=8=?oj?7Oݝ8嫡]  1iw2&>7t}<=ϻ>7{ܡv7ңt3=:38ѿo-v&>4OMGwD.s.~Owކ;Ct|ߝxo«7o7|>ԟyݟz~~+Nۮc~omиoj[v75?o׳? .= .ݺzttd|ޥjüu~ϻЭ{KKӴ}ߪywxMfv駛g;ߩ翕4zwҟ_[wӟi[.^]:xN]C;u>7 :n<Q{Ӽoio6xuiWw^ :xϴ7OCyo?7i.850xNQoGw>?30tdqty߼gן?4puڛ=տS{igSץz?J~)?Y_Omo~f2گ:ֿ_;Pg<O|nuj\V<~ӬA:N3~?߿' ۾p{ >}߮ۛu~L:^?ysi~W6xvݸ7}&g}GN{]>~~<O6xw|CХsny=}L?/}zէ]nǣOewm|u?ⷛ||ğ~]M7DnJ4ޡ񛿇4?|?<ϻg6ƣvO}}]"k qh}cp{mp鍷 ;c38tM9yM[uڙǴ7? ܛ&~[niǾg~߄_N7ɡy~oY>\ć=v>~ߣ@c>xҝ!{_nynO[өyn.w+٥c?۴3[Owӟ~oۮKGӏig~nڛ~~ϻ11?3v:C;o] nKno3 gx:wwvhOM84͸uNv{{HOVxtҫo~O3N>['w|4|}~o?8{8o?M?vN?M槙߭yw>f|]:Uigon `u3v]uHϻ]7m7 Soio3[.Ni?:u>^秙K<< >K73HnӼo1?M?w6G/Hw~ϻ`ןןϣL6f;WK+۬g?׿oiZ?|B~["ܴ7?zߎПOyߌ75pOn׳ ~ ߮HSCJ'2xsӟ ] 1}W#? S!5OW߼g= ?t_C~FV|~ 0p~Oӯ_{:? \iSw{P?V]<{yCuf~8]<31 ѥ۾ >qwˌw]|no!7m];Mu_w? G'S.V|h\7˼C Oom?u41{$=gr۟S~/CD?7zCmŧW7coo},|мw9DC }=Cեyh{7ѧyۏy#翕c͏>]~t7O!Gxcڙϻt4U?ӟ3D/wҟ7ŎshܿioaןxyCxV?og]>ujcw\琜n|n3;uV7g>5sO۟ioߥS8ltuo§;C|O{Sߪ}! 3}wiV뮿 mywӟfwҟU].L.4t0q -٥~}ӟko>o? ^koVӌ 1Nn 7t3p7img~~;a_]|[yϬ|?ҟfk7ӟfvO߼gM.1xOo?MQ?;˛vN?YֿgvЋڟ]\~~~/y|M{G?H7v]4_>N~_[:< ?N?=1{?>ԟ#i+[sߌ2zͼoڛM;翝ߦo?{ݿ7kJN.\? ߬i ^n+iw3NMn/'imSޥ;.<`G͸0]·Gt>igA8t³o?DOV]u͋^x3D. ί>7|<7{n ޼n347}s?>gҟCg1w~vM;Azv:ICW?7<߷ŧ }?^!COC綝>~wo.ރ<=x=G34w+} `gHt|_8xt}me>Cwv [u~C? ݥ[]lcn=:$O7?O!9kMr74NKϡvѿ5-77v|SI?g.g|?4q=Ӆmof>xUn{}t7j].~+i:oGN]}[ u;usowMpL.ߩ}Ӽgt:wi]:zhgWv;O?|o|o>Kn.>Ӯ. 3vߩ޼?׼kt~NJv;O_w]wӟ7uj~h}o3xNv=|OY'2w׉xwҟߪitzmnwm7f~w>΃ҟf]δ7<禽鯻οk>7<`w?GӼo7p?ӟ_c6?՟]rOnżߝ7{_ǝ|"?z ~tmz~nցz+\ެgS5Y7A|? qusnmktxMfM{]73p͸~~? ޶7Co0fTx?CO=} ~k(ߘ!??-C5S|? Oo+ȥ~۾׺k=ҟ]h7V%omN{Yo4o> g?7?y{ڙyx>ݸ Ko~~]]8]s< <_}΃>ڮ~w|!ywOtMpa.]s_t^~oѿi.7oi7ȷl74ʴ3?.g_o;|?>yV}?γ>]zv<!gh Jvi!Cxv[uu;? ]x~ץ}!=1jGC~X 4~>C  3H3& \l ѡ[vtw[CxP|~ӼDxw#}|hw{~Ŀ|oH+k<7ӥo}K٥woӟ]|x uxxtᙟ4V]|ߦNߪyo|ޥ ۮۼo7qtۛv]tm7_{gh\i鿋G?y]. ϡ+|ow;Ou^߻xϻCx<~ߦ]7iҩw=3wsӟi>;u7[C5Ms5ߛqLC?7՗C?7?~'٥Ǜ 7NӼo3ߛq~vC?nGvo?l>7zY2vCT72:m~Oۯ{K!HvFvs~o~Uo?O7ӟ~ӁvƯ3O77~iVϻԾҟCyGyn{S˴7oRώǴ..݇ӿNqk(innݿM?=D|Ӆcv|O/f{h>ra!| ;޸1xv3y5݄Gw\Ctep3y[:U.KWtݟC~t?k=ß_>CS}#;z9~>M|etaCw޼={sp;?t|[|<]u?<=yӼo?ons[>qv|U|3C֝w<]=!9>Cw 4yvVo=C?{]zo5S4Юiw8NߦwҿM]zVϻ?3DW3՟:v~vg6?'٥y~sC'wi[noK!z?qh&8DwamN&:͸< ߚ~oo?g߭ӾO4N{3NwӿM~Uo|n~]xJ~'i-٥KI8[ߪ뎧ka~|zbwҟCy{w40ߛ ӟg?7[Owi豣?ͼVsߩ1]]ns?ͺi[I 4t5Vϻ0ҟ]8;u73t6 7xz|yviov3= {?iSq4џ񽰝TzA?'}3z=;c?<dwӟ}ON7m13[u~;i7Nvk mތ7M pOӮy@ߪ}׿~nn?fCy->CZvPkhw]<ܼ9ҿ{ݣy^CD=94?gvCp>;_w7{n;C՝y! 8ooߴMե7ӣ>]~MxnMvn;=fo}{ӛOS:ߛ]y4.۾7g3CxVϻwwA ҡu4~o߳m>yt>CХo_wv:n9Կ}:áCi~ut1Dw.s34yм3~g~~+9Կg>zΌ;{ON;t>7? ~Sn4w?i::t:y/՟]MLC1? ?'};.K?}Cz7N+٥ܼo>7t~no7avߚtW~n.O;?ivݟ]|Ivbڛ߿[o3n^;?{yw~~>ץ_wmKg}v]7??֟F6~}:fwhg>7?1|{_o?yߴϼgv'Ӵ7Կ|(4Ծyzy}nKxx{C:wzGP>3ost>vC?_O]9'7a~CߛFx Coۧw?w}A:ϡv?£'G?ҽMq~N|ioӮ^{_3y=G_z~vy}!wyП1 nhns[oe֟Ctϻ?+yӸpzO.+y}tݥM!:M54C. x[)?~+Sχ>tJM?Fӧ~poFcKotϻv34>m^ێ4t{~O}Gڧ}ooKfCuԥig~VOgokx77]93M|]|׼ϴ|ŷۯ{NU;.t|}t2w3NV]zu?:w7|`o5ww<]zNK}n]:whڛv]8ߩwqu[4ҟi..]z'٥o?y..ߚv~C΋wҟf<&n7?6K7ӮK?wӟU}H~7i7ٻt[u>7 -;J7wmu=ҟ[Ivn{3ޑkyw=e[O2ҟogo_N]8f޴u(;uӟJqymɴ7x5:wڍg?33.}'im?uÑ|?uC4t;П^Hwڛnjןfc~>AD?L翗4?ןߖfIF~O~/zs:~k]'7v~B~u{^kf\v<i?!ގ]mg>!|o3?dmhQZ=}iC5L?f~u!oY}䧁c7~_kcI=?篡?W? ^owSoo+FM;H4z##Foϻv߭ߴ7zy'cnߦ]o6o? @;mg}c_s|n~ʏvg{S>7o׏ߥWӥS}Դ[y<]:t];~ރm;}@y[ߚi<|{]D!:v}q=-ϛg~1Vv| tb;qwܖ^C;!9gnN>=Gw|CxvCtA:uwv>7xụwu>[.]g?ynC㶏= AM`~otg|u>j7WoKߪwϻpeCt4O7M:Yz >+w私;i#{.!zvwۙg^CVG}ݟ~ϡvf|ߪ]M.tio~kIvU[Om.bڙ|o3pUn߭з:CwcY:sެ5Nӌ|G]u6wc7Mv?|n9ԟ}޴ןߌ3xtټkGs|n{? >;~oh8}ޑ.O3.kOkx?Y7A'Sez?_i7K~_\vWS׳?:]6u㟔v^Cmt{ϬSۛu3>3.nơ+>u[6S?7? Oivf=z:~xO37|3?i׿ |~??2OKciAo֟*cmDVyߛF^iFy6?NWn7z4՟Fхc] ?7J|n~nwҟ5:ӟۏyOk~oǡOw\o۟yg(g>:xu4KvC xbxs˿7C)_{:[cV>vg|t}# KO^w^3Dyu.v_ vtץM:M&>k]oz<7}=no}s[JZҟgχ{[ cʃynC?޿=D!v7D_v|]x]z&͏=W|>ԾԴ>Ct5oˏCtҿ9w]>,sh޻V'|n7>٥G쎧ON.oigʳCio4w^wj>:[c~vgҳ;ϡvK8qw?7u3w |\=wnWxxNySnW~[vtʇݼ|ųwҟ6?t~k^ݿݟCt5?]zN{w+u5N;M;joK-uco}̸N;O_Ӯigi5w t1 ]M:?Mg4GӼo7usi1ןf翛O=i7L;iov[uu~:~oӿo>7Nv}y@ f79ҟ}ӿOo zCX>v=o~>ԟ43M{˧S1s<՟'~?f}֬ۛbouY]J-= iӿz^mO|n2Ҧ_.x~o}qui;Կ!nn{[5=vi諟|-^ ߯_~ofL^?h*?!3ig:A*/:rdjȣ{F.O# |ȹSv|?ҟ]mwӟ]{u~vo?{42M߬w|n:? i3N;1M;yoA߃y>netv[u6On(5K.݆F)/՝<>u2M;_Gyn.C_!zgؿg._o7/ݿۮ 7/ww|C㿩!~ _n>{Mw9Hv]8j].C4=MV ݆g.}{tSw~uo3H3M?oK]|翓tҳ>]4_7mvs[~݃ѧK!]7&Wtu?}s]>mcM|44Uq/4tvއ~vۿm?oyg~&|޳ן]: c~vv]e[a{cnAϛt[8C݅GN!|hץ.q+NghܿUsOIѳOӴwC0wgnfCM~;.<'ҟCt0?o_ϻ~oӼKG4ww>nMV?v?:w7ߦܼߥ~+3Ӵ7OMN|o.fIV |߅kOӿҟ4I]:VKgy;nߪMwӟ]|ڙnwӟ!NL{όwҟ]:~Njo|ta2oϑ:{{?M:L.՟ןuK7? ]9 ޣН!47~ޥko>[Mg}tua!~߿UqusStusSs }4C{{ {>yo}ێ}~ϛs|?Կ|OoG}z;?7'}«Kt>±w|dS~&8~C~o|>4ޡwshF<;|C[u1Γy@nF<߿4VKgig~x7~w|hCwӴ3oWMvj+i3w0Cti7Djo3{sӮ8{C߭oK;u: ~ߩc]Nwm~L;wwݕJx5ߛ~'ٝJv:;O]~߆N}{ӝx_ao3O7~vzҟC'{_?Կ O|,?Yg4s׶?ҟ=7:>3t2x<{O姅sӬvfڮk|Pwo\up۬sB3߿oo׵zeֱ ߳o쭧_{~nӿJk?uvy}MW7{3f|v\]v\5?ЫSǑOCo;~}П3 Dδ/?[~ԟ>FNT~S{F[y4z@0zȽs#]}ճcO74ݟMѿHv3mom7VN;ig~v5mo~xݟ \w7:w׺t6ߛ{cߔ':wݔ2~WwܿU]|uSʴӧ>G!Cpw7MxvGo;o{Co!z~xu|/w3>^mah\)?{ߪ7߅ߣyy=Dסż g}g.ݺ߈>C94~7mv?+i޿ .]n_osO y߈M)?~Jȏ-8OstM;;u6zqG&~مcighG>7>oo{h|}3DC1~Cv:z;Cۅӝӯɏt7Ӽg>:Ns^UnOo~߮?~...]M!S.]}ݥWwu?4 ?ue>W}i5ߛIv߅kgw>t5L?{g>]}`5DMyҟ]=c>4o~~]莿K.=zt;Oϴ7?M{Ӯ o|oNoo?7?rg>7wmڛJnu<~iŻ;uu0 Y;4ߛ[Oӿ54ziw|n8onc7x߭?um>7?3?s;???|ogsOsg~OHzuu׼ou? |o5eSL> ??џfQAo>7| _v뜦3]4??ҿ  ^ͺ]w~?﫟aVY5뾦^ᅯk֧!ig_Ct}dbio~2Q5O++ֿ{+w97?zǮ>3z臇vF/}ص{c/L?Fw;OcOgo?Si3p3uڙ]7ПU߭kt]^4wᚿ]Mnc>鶳=ߛ.>Cy!翕O~]6/}ϡ}of֧Gio3?~iwCW!z7??oM|0Ծ;Cx8C?4ypoonCU!v}tӼ?Do}^/w+ŧKߩӾo? |n"V?0V<=.]t6o٥W~? n;wo||}4?g:wҟ޴cy4wNxwag.ߩP{[u8[]o?t4 };}yosӯo0xNχg7Jüg$&ok>m:N<| mڛ~ ] Q]_~7ie6c;{^߭Y:{mu|n3yt?YGן߭Y1v ܝO}4xu32? ԟ}i1]y3yig~uw3Ϧ?}߮әu44O̧a2'Iu3uH;/c4{? ކ?x:u?B2|~n׿Y/6fߴf}OO{꺲o{+۬K+^}g7S=^i?fcf]ACM;:oYOs)^_cOs3~ffގ_GlF+ Cga 3￯mK6<:|dcjk>W:δCHk3tv~ov/~_iCZy{?/șF\>|rj7F΍3z4E4?/c]ӅOcocoϏHnύO;N7|[u޴oڛC~oOПCx|߅k>}xx ۅo6j?M |GMM {t<yGo!z Η>C?N; e_߿ ?Ӯ_tkqv?Ct;C|14>w?=ÿ?-^sh\xu>=|1ѧ>]3DG?;Azs#^o?ohg;]~2cϛoFԧ˧&ϻxѹ' qs3~n4Cxy<=ПCy~CP_ϡ}3yWN{~>$]5O^_t[O~io ??|xL?C|; |ߣg _vtm7$]8OsӮ7}n~.ww|ow.]:D!~]xCן]~CwѣKӝ.[u>7vGN{ӿiߥw|~+94Tg~V]8CVK߆Φyߴkw[u7? |ܼ;u7鎿V.]n?P^дʃiӏy1~ݿM?C |ny~+4nwɿV]yM;[uK߿4p槙gߌ|Oӏҟ]o4 u>4v^>KOy?7;OӯۅoȌVw3xv~[uO3Na3[{ӯyϴ7nެt3#4pLJ7?ˬ3MoOW~;gz-?ϗOjWS׍~{Y_6f}4dWf~̺ܬ{f=ܶz~3om8zǬ TC:?HL=m{:kT|ϩ4v?OYH?ft5O3f~~B6}omo7t1k1p0 7Aq.N?@kԿ"3fJ._rkZ䧕C#F>_#]~?U_[=jыFoOc_7]1O]b~3[{om~f:N禝g6o?N8ҟFig~Nwᙿ~ӯ޼>MnCOGx{p̣wl>gmq]Ct͛{6t2M;8?tԅoҡM=M8mg՟ߪ8p-D_ C~? itmg?uONmj&>C_CV]M}n= y7? >q7=~ρSno~][vw7g,ϡvz~gn.Ctm|>Dt>.Sn;?pOC|[oy{3߮ 3DߡL8 ]Ljsy>}[xv]߅Ӆg~Vo}||o~vcڙɴ4vҩWCxwӅoiۅ[u6p?Mu>J!՟]<]uj~voڙم[ߩ %M]7+ }m{L6vT~A_??sims WէF?=z}՟.? \μo7:OOߖ4~IVOμOo?;u6wc~+i:v48n1t <iv7ߛ]Cu¹ .~=y~P]Cw=nyݿo1ߛ<7mO1ď]>>]~ V<] ^]z Oy <>7Ż2|{Ow|{ʏ^|n⟛~; voOt>7Gmu3Tv]YtyTO^b^w̮Ùqv_3Cv_=_h|]/f4ok?[~?ίaL/.|g?7OgI{ԿzY6L>vu]wz]G??ͺigzY5?sur]W7س[ߴ`vL?ןfvu_}tt?sy!oww>3DyC.t՝=|{CnM&:|[^`ܖ/~gw\ϻߥOo}ͼ?MD^M.o94:|CA]χ~vاy7~ޅk!:8oLo,x:|k-C0W{]oK 5Mͻ~?x8ӣG?oMVp?+w|ޥ34A1~]~yw; yo۟im~w3N?2m:?'i7w7mfsg۴oӥax~LMVK.>sӟwҟ}^_gߩy7_#v'Ο6nGwv{o?M>}(_>ҟ>70t7:3ތüg~zig:5 ~_ӟG{|n|coY71ɴ3x:uܼo7OiHvgLޡ4tz4pL?iy*?zm~*]i=տs^\?7>ӟµw?708^zXҟߦϭ?+O 篡?:~ngڛ<wf\O}C~+iu[u~vk~q]uƟ zyϻt]x~~>gn{ 1ow^]: DΓyu!Kg}s{]|9m y#ߛGyG罧 ďC8Dy5[}n!>3?c|ҟѿt1Osی&~~oYuu?{gw|]|t|oѧ;Ooe>]:ėχ!y1M~~_vv[>>|[ϛ {CoƟ M{_^v1|[ m o34.ݻuEþio>ҭ>][ϛSn~.7CS}i۾i׌i]u1Υ`f޼go~{ܼxAۿ|nKr~f]=_7'sѿ*t~ ?/?d(~fҿ _A ǬÚhߛu.]z1׿v??ӏY??]wi;a#z|Z<?HDZҿ_"mCoڙH6i ~?dgLVJSI+?-} ^m)]'}vitI̋ /2bEÌ}?dcoLg>=o Sf1|h;G ό}gj=gO<~n7FOC*V}mzմ]ч>4 cL{ۏyw:O/ԟ#iyn{3QVM~Nߪ_駛?u~o6=˫Ӯʇt<ҟ}C~ϲOCҿoym{}ݿ~pywmwqӼ AƧ~||t&wS?te!ұ!:Gtٿ;}8MC|<7]i<ۅێ$_];^Ӿ ~w͸]fg_m8?ߩcߩ}x߿ץig~v:w5~[4g>7? x4u7?NӖnڴ7?5vCϻ mn:?w=i3Ns?z@M?f<]|?ӟg߇s?OcW >]P;ӿY16OCioSG̸Lf\}i:i7xOD>Щ=_޷{wumk^g4L{T6M{u|]{:}'s]w5L{]?@f2^OWS4A~8~O}=iֵRεJ~篡A=z[}OI~YӬߛv~"?zY6xuȬG~pgϗ.tkIfk')H8f~k"۬{V^x }|{;:Jf8R/2?|>vԙSПR7w:_)?+_Eox/Of\3}O >:{?UvʧgW3z#WUA k?=4Vv~?`zv-i1ӟ;wӟ_yןҟ4O?'9|Q{Ooi~n8Iv :v[Ls([uۛy1χ !L8o}>~||os.{7z3ghCVwNwl.=+~]: ҥn(cڙ=<uϡvg :ߛw^7ҿO w7_NcnI>]構WPCxV!yM&y͓g~N;.34Nnj{φyoe.gOq1ߛAy5=8wφ<>C9g湉]:y5mCC>At~ޥW!اӾ 7ſN?;Dtv#;zxwڙg}^7kp<}_Pūogu7k5?ߪ<]x=>f|>$]wҟ|ޅg:o?+yJoo?t6OCpf\!t:|; |o~vJ]:Ct1nwҟN.!xgҟnqw҅ӝ.t:?مc`{k%Mv7?u]Ů7ztۙu 3g/C^M;:)|^m?x}? f}qoCW]wvsne֧Kh;B~?詶3h]R֟4:}G|{i}]~Y&a;.~_{&?"{j{j5~*|JW~Oou[?W< L~ESvx+?VJ~O?:?~5YTf۬suiC?.|!? Y6jR=K_,??X~R?P~E?#? _}?@=3URxvo2+~?Z(߬+m/;J?I7_:?'Tk|7A.c)ޖ?)޿4o?2pg~ mg/R~=kd~?{^1{=o2zI?dK\Kէsi;?տ=T=k7Hv屶7pM?ԟ{3 XOy7m:'مOi[Nn|n8m|'i7߿4wᚧvKŷ GKu}~+;shѿ7:oe>ןCꎯ ϾgC]nvCcyӥP߷yo]nn~hoi~Ct{}=`;~syt?7g~k/$v>oM嫛dcoK/;>?xuѳӮK'ܖgy[3񙟿Ci<~C|;4!z ehz1xN{icns}Mt0Ct.޿]<Ǽo~+Ӯ}ۼgVwϡ]w~~yuvtN;Vc>7? ]'iׅ?~ߪ}]Cr`42o[u>7NM;3Lݟ~wyߴ3v.ަ.}L?ߪ}gnߩ7wΛcwҟɷv3VwgMNۏۼgmҟ۴?wc7pt4mG4pGg6x?}}|]Oӿˬ?՟Q4g?a:ԟ?~_>֟3p:XOYW17Ob7MY=:?|n~OX?7OcڙͺN;[}S׽~ϗ^~mbv\5o:_?!}??ןڏS7<-<] ]~\h_Ms]4~o ެuS?7߯S{R|~[YLu=Pxo]7V/Z~m/џ;C7?X~?L/Y6̩wA篡CJ_=s ϴ{t<sG&?)oIoD~Q~~3Y7/ҿ O^{? op ӿ\)]33%z:Of~~3חxύ6z_풵+=cO1Ocƾ߶4~?=ܴou>74:??ҟOi7П:_}:VӼ;O w(~^~Dv߼;u?VutmC.cu)8;!u)7Hwvtұy}C|54Jv߳~ O} ~t۾=9g/34_Cӥ{} }~ӸtwJva7w|?ҿODi~nP?;DwgU|Kߛvҟ]wr߇3o|ێ׿y:o~stoN|wu3o۴w>xoo5y oϛe!~·۶3Oo} 7.}1xX|34Uy|b~vC/ [.!vvk:?O4I6p,}1mhCxt;!=3ogWN{xS.]?M;w.}h>wҟ~ڛϻt0?M}󷁓!:kM;o~qtyϴ3yߪwa 7ʹi7xqV?橋w|ߝ߿@;'{w>M{|nڛqMv2<;m8yόǼgw;Og7/n~}n_~&?'gV+^Zik(E_4){7?H?/goI?$kOCV~K`L A|̸s+džOg;ΡvCy7O71;n/:{S^n]~7g轡~}z]wMӣyPOϻnt &=D.}o7͏g]gwӛi.?>܈쎻&<hep~ڛ7}~sh>1p=t}nj<+i|&2O! ΋>]C|oA Kxӟ_sߪMx&3~{t7ҩsnOn]qv7Vyo^;xtyM|fvyno<7Qێ˼[о;o~+9n?^s{Ugwt5p}no?ws]V;OiХK.]?D71wc~ބowbu:? yg~..'^μ?}>~h]<-wӟnnݿuۛ~+i3v&x]|~7[Ooc[.yߴe?Nsh>w7MO5 ff]TzEE~S+?`w),?=I-? f'?&mg!7Ck@~E:.?>2?H?7|')'Ii2G?KOQYߥKJIKo7S^!(o]O|ܘy3`yRID׿ ?}{ |/i?I{/|*G/M;xW:~3HەTIUC_G*Ͽч W~k[߿oՓg i;vد?HAO}io߶_sG~:?M}ic>-/m7?? |#uڧ߿ :ߛCM. f ϴ3NvP~ʼg+ib>z_߿m~pO~8-[:M?CP]81ߛ&=8ƣM:D>7O7˫uu?Cy8wW]x1V;<3Ŀg~4O!A~֟!?{ϛ7دy:;D8ͣC~>:wѵ߶}{<;4ov38 |~>s8ϐ4nӟw.=M;ҟSy K޴OӥG_o?ϻ?k>~ū;^o>:;OCüo>}Gsik>7J4lӏüOL>޴3 |o_>mڛ ig;?.ӼvXv ܮ|? OK6֟< ~Oc?u?HN/[Aѿocnc36x? fUIS;:oW˿o/~\+~O(׿g=?UC߿˯o/~w~B׿m;S7֮O|i썱Sn}ڷџ|n}?dڙyioVoӏQܼuo?߿AInu6ߛio? \|kn.> 3ww?7qo۴3?y4Os`y77K_1oucq|Gtqh\C|438s?t7Dg^.ݿt2ON.^7[uuo>7P? ;FCs7G_}O7/=:=χes[}Q3D}s[|=yM|}ny|oo~g7a]<߿|>O!xC|p ogCu54.{On}=χ6O! 94]~ou>湉?t]vO}LNѡGo|ޅߩ|ow}.yiNwoCnhӾK!γyoHtҟoCOc7o{]|ޥK!j{*MK3^x?\~[\~rw>S~La5t^%R[Go? ?CZ~cS/^3zG??+[Y;F~/mύ4vmT8Й{|oGvcq~?w4P;[{ҟSݖ@Vӟ|;Ϗg[ 4uCVf\]ig~go?Ø <}z|&uu>=|¿i^|C~n7 ѭ;~wy~+_{~]Dv]뎿;~ߪyqh?m.]g+98v~ԧ;χ޸{v~v?~^N_uۛ||nk>7tw|u~V_.>Jt>7]z?+; o?~~O.݇ߦۼ;OyM{yg{os43v5Nχ{߭wҟiC4pl򐿕۴:3M:u[O~~OyMi4v[M?s^kw^uڛOOm7c=П?|?ҟGs4p}i<̺ˮ8#iucڛu OgX?f]Į|[~z+|]_is~{g~?= :f.5xJ?ʵ[A4m,yOI6R~3{|>| +ߴ;)?߿e?gj{_pGϯ?O_?C~V@?vR0'isI+?OO÷FN _t-? %}v/?|?ҟoՃLTg?~o~{k밝Ow7vػ?k Q7tOO?cHv=S5HnO㧙_?N{o?ǝv=ӼgN7ӟ :~ݿ .> fmqHnzpڛ>]]Ӿ_yl{;|?4ץ =aߡv4=8N<]8q :{n{b~vCO!мƫ??p̣VsP~c>ן7Oo;=7{5mSoM|>>C~>Hg7ďUAQW&y6oVѿׅg&|w= { ;C_}z7hgGQ:z ky!w뎣>Us{ބoe֧xg?;N}n+OmѧoIv:st3o܌?jc~驛ѕ#2s=4䡋oo? ~'yiggw\?Mx?p~wӟ~{oqӾoץ;g|oV4v~~N;ionM;m7?6zvavSgwn^cai~LٴO6NsWioڙw:;Ly5xɿOןkOow?OCz\YO05L;DS?Y{u:48/vf27/??f4p L53Ӭ?:3y?sg%?uH~{~/5O kh?c߿AmӬp!7A֟$??K~u5Eпϗ鯕_%??_~vtԬvI%|'G:)/!?P~?D~~[~T>7I?wo$?X~u폕|0/qv/^ԟ ?49RS~; #)߿?#1\?{?L Tzq gƩxW:_x[h?돓oaoֿvyO}[+>??o"AB.PW)ߥ~ߔ_k?q߫?D~S:;T7QRA]JOן9? ?U>2ԟ7~ If_3/_CAJ'#FO?>^ Ճ~kQ&?[Si_?篵Oڕ75v>X{4vJT6S;@> ~7y3ިsG_??ҟ:]`thklߪy{7~~~{3 ?}vѧ}7嫺t?DWmsP P^Ѵ8t< 7 ѹy~:wj7e>!nko}y~&Vߛs}{Oݍߛnߡv7ooy>N?xt[iOyg>Ct5twׅ;sw.wcӡχuMo_.sO}an<ۏyemgNCѥҟo?ohg>8nм׿<mTv{p<Cмy0O]<4oP?7_y7i?Oo?]]CzS~'iiץ|ӮWUs94ӿ]:vۛNoig6t~4=}L~ݼ~>?6~߿U;n[uҫ;ߩӮ;n|n8#;u~VӴ7?5Jvaw5ҟ&{Oq{HtڛMٴ70oqnOioH~qOG?ҟz~n}Lj;7i68ix[x}]w0p;xuAg?׿ON~?o;k|ӬWwA.cs!mgy~Oi6xuK~,zkzY5t-uI= ?3m'b}fҿ%m{{jz_t@Jvg-?V~Kׯϑ_$?V~O[~O.?G~~w_7ϴWϐ۟,??T~Uߤ>s)?D~v=('^?T<? ?A?*?OkC3՟-?ϗ?,?(E~3t(??F~Q:?:ҟ~$?&Ft?O??.?~}0vO ^үK>ҿ~{O㇘vƏ1[?=~3߻sG;9ҟ[3՟=?/|L~i3翛5;u7xϻo;Oi;O|o~vo]vV>џߩP?=<C7/q{g=?Ļ}]Ν 4?;O|7<7͋.翝\uu뎳MNw|CV|W7D!=|!8Cwuh<]o> ~g6~>75M³wio:?ssnsӾ>ҿߩ|o7tٴ7ow74O}ߩ3wᙿnGw+7ߛL|>4.FL]c:0wҿn?+٥WO4ns:~+i1?U{ҟo禝~? {潱4e{Ӽgwv&=ҟf4X~?gig2yym=ѿO:OYO0 Ǯ|[?7~ ]_{OoSv|?f\oNs\oni?e/ßf?|%?Oj;ެ8omgց~[?7BjvG?Lf]g3|*?#]2vL_"??D~_o?L~MG폕!?W S{gߛ '5Пf_V?E~|7/?'ֿC~t_{~?jD "3\)?XW:{jϿoϿo'?A{ 羌gS~>qh?OQgxWx^aп"姕~~q竿F~Tkq:oK__1:_Cw8'ct>.0aR?I:Ν?N~Q R(=o#A8~?GO~}:J/J?DuQ>it~o׿H5t\-? j_?oT ?!/)|i2W:Cq(?V~>"q쨞0?ٵ\v')U*IJSW=7^5Z,g%?R? g:H5.?L?W8i[j5~Bv ? g}8翧mSHsӟ|?w??՟c;=O??o?9ҟ=μ o? >MvVI7ӿN;o~Cy9ygi3?3 O}t1k(ۮ;!8qtwv!:vz>t!z<7AwΝv7ѳ >y~h|Ct2vspst-n{~m߅w#iߥ8ҟCIjn}[ mx}on!8m~}.& ?{?34ooA~~M|Vo34?e߿UN!4kχ~yߝ=;x:?sxDo;&~^1D!~4s.}~{  ׿S\=igwӟ4܌ϭ?E~{m!G\9ߥ~?F~u?Ͽ|t%?:$gY~X{^!\I?(?OO~޿?~Gt)??\~(!듿4SfRW{o8W/?pJ8!?'?A:䯔ݟ&?(o?ϕÌ7y3f=yowg6ǛT~^J}W*=>ߩJ~ϿB~+oasϿJDZtw)- ?J):B?v'?3?I[ߟWa?s?|s*՟%?N~/:o߯x:?⟐?-/3?O:wU/V9T_vf\:TEʗ;:?@a7GC7vI'0'5fN+?_$?z(gz.? /[ϵYj'WPcdЗ_o󟐟~{_L~[wW'~O??o|?wk=iou>՟u>om93??Sߪ/뿛5o?oi[OmuOo5w7}|nn ]Cy;ߛ~>4^~yzyBi1?ߪmqs} Evn3|>}MV<\O=g?w~yzy:]| |=Ծsh>! >g]M=WJŴ3oiw? 8O}KסvC44^T7oύynǡqu{C|? |vjo3n۶W{ +;ng6;]x=;.?uc.]8ݿӥSwC͓>C|wh^ =>]:7;;w;oϡy6O=7y}w¹м CwҿNo~o|[gIۣ>]4 ˴3·;'i3p[uw2v{ig1?w;Oo/^ҧyϴGӾ}w]:ݤpio?M.CI;ߛ.>94.\~״oiw^oo? ~OwӟF޺4ߛ~'i򝿕mc#i:翛45}7@~F?ԟSyOσ7g3L^ش?ԟ f׿ͺЯ=[?3u |n4׿J~u鏗?Oڟ#?@~\%wo_%?Ͽᯓϒ#?:\~ ?ϿZ~G?'/(?AO!W~e? ??jOu%?km;ߟsGǙ:ߥ;:?@_)/[S+?EW #X>>out|kWmWo׿_#?:_'? ]qQ_qJtsJֵBOM_o7y u#?jw 3M~}ʿo0пS߯a玎?R>Xi6+?R|L~ߠ:H#J?Au?rk(^?L~=| ?{ߟ&? ?wT.>*^uT~}{q{6\|Yg߿r|AdL#g/J 3/UN~oN~HkZ{"FCO=V^i0vڑL)?Ho_տ_߿w>7jSyG>ύ?ѿߣۿ |?<ן?_4pL_?V1~7O4v5_CfV4ݟ^nUmڙx c;I8]x1LO^j.ϻuV?.g1Ov=}o}n| ?·м Own]zub>7oK!~5oŴ|oi\Co>yg7>=;w~_y}>w|oCύCzn ^w߶moumv иc|ޥyUڛ^ϡ7.y78{|i7y}{Ooӟv?3x?|o~|?c=֟ͧϵT>ѿoӰD O; ۙm;EoY'0x}ORۿџf='g+f]i_>h.?OkR߿R~Ay*0ѿh;T?}kh{4xK+iցWw%П_+?&[\vz\֍V?/(C3KxBYD|_?C~3翠&]}Ob/_*?oC:?H? t|7)_$?Gu\C~K/׿M~ w{wyW؟.??Q~U\)&?Oߟ?LG)}|ߨ˴V?ֿ??߿B}?ϗt|o_:NT9GQ9'?嫿FcQoE_SD~nߥNA{x0yro*?IC:~<"?@_ߗR~~CVRF?L~T={U:_O[+*_ߨ o_'?K?m ?NӔ~ݟ,?';ߤ?gj~"{7sm?_Cۧ~O[4ҿ?@gڱҟ~{!~GX?L/x??Omg>ѿ_T??wӟsi?N|n:??7¥?'94V3՟SNf o?Jvᚿ{ҟ|nu?7ϛQSJmMyۼ÷}!3,Cʛ1ڮMt} 1y>]4]8i>oҟ7x{!zOoe94]8CtO3C?S_ԟ]|o˿w=ÿooiw|X8JuyӅ7~f|7=D_sy{ʏ 7ėCtO.] {ng߳C|{nz1y:_?5Oߡ7~o7y}wi𾉯@@w^oCoMtm[uǶ3?1wVs8D{tѿ~v 뎷G_[&L?zdJvO;w߷giv]:thţK|> o5~Tѫ;ywC?Mϡv]q-?k;?OjOu}'2{Iq%R&sC?SsџgA=c? Ai?σcWu>Tsgyig~vμo:?翁L;ӏikt3 ^7Ӎw{|o~1Nv]fݼ_/ϧOx3Ծ>oyAz< ѵ'qVM[:{h<7<ߪӮ;<僡Q~q湉uO=t&:tޅכg}&shxGq34ܖoz& ~Gwiwo?8sӸz?ӛ?>v7ұ }<>yܚ/o6ǼmgCV1vݟ=:{}ynvt~n~v٥sNP1-N94C{O]ӥigū;!zxϡi{hϛ٥Go5}/C.VxD禿J|nqMp?|?p~ߦ3VKwm[u 0NӴ3? ީҩs^>syߩo?g_V]:u2u:u4з;oم?Կi~ݿ]<ͼ;ϡ|gz߭o7ibgKV]zveg|ocS|iߥsvo{#i3v{v}Gsw ?{4O6p#?|ok^~?: |?HS y||o~Yп/O!?O12ۮ+(\>ay?\{ϬwC2BLMNcoVoot뺞Y5V~GC {&3- ;qsx_?A?k?{#H_~K7>[ol\QӬ[m$? ԿW~O_"?]~*~co矮#:Dϯ?ѿ@{?I~C4\ #'?돗ӟ!?S|:oTP'?7Kp~\?Z53'ϭ?V~o:tf=П=:7o?(?O~:οVoQTY*>'?u|c)Կ//W:_W7*o||U:oOv?sǿLW:]R>=@ǹu>AL/U|KoQ:T}vJ:?7#W:MR}=ׯ*M_G(k2?hߤmP>Q ~;oTK\"}Tة%p)? c'?HhoRMg{}j[֟_;)|G_aS[w'|[4?ԟNџ#M;Nv{ҟ߬|IJ~KvO]|M~/:Uy۟yqv<> ~~ߛN7~vK!|ߣyso?+9D!}?Cߪ}}Ӵ.\Cn[ϛ؅gg>:?p 8'[8 [u~vuҭ K7me:wmuw34NC8ݿOk6ݥ? .ݺp'}K.>4y+CiǺawմ3?M;gKv3wk6t׌?'i7Gܴ7~Fw4pOΌ1w3nt|OO4}=տM|?Y?S6=3f}߶ןPvgk'|S4~ϟ߄iߛ_CA?O5~ommk:ksY0xCH?~_[J~Os7翤B&?!]2뮿#??A~MXmӟfV~fg֡~Fⷺf]ofF/Пg?@~^]w_^Y$?H~IpӬG:I??#??L~mt/[/)w Ou?Nj#?K?R~t\sz'?!J?7O)W +B?_:?PGm7q9ֿ?vt^ꯓӟ)?G՟3wvӟ4p߿An_wҟ4 ҟϼů;Ρ~oiyAK{Cy{O0o5Ю7n}G?z;޸m Kv{{h~?{՟~ӣ=Owq g1?v]oߪӾ| }SCi~]u.ڙg|~?|wܾmOwCto󘿻޿i^i]7&~oh{)?-]t۾gK~OJG7>C~{{.>]]|nyo7{}q~n~ވ3ۧM^.y3V<]>C{!~[ҵ}{h=>֧ݻ{}=D[uO:Nc6ߛCpt[Oߴ7Dn8th.џMVKo?M:ow=}Ow<ww\CCi~MnI~6ҟ]w펿 w޼g鎯Kɳx|? ~Us|n]zu:?4Gw|n6yMv]8oN߭i-yOt_O4y\ML>m ϬAc>?ѿ͸}k8>WL&m~nf=2uB)?7wsެCJ~?lgCi[j?O\OΠC?viou?J~7_:ϿOT9Sogϑٟ.??W~̟!??F~S;H{^ҟt%?|7iLoxc|Eu]mw?K#?w>m*?_uIDgO:~;oYuٿ_>wP.K?_/?Ͽ̧qKǵߛu?H9RY6_\ϿPt\''c_ѿ`mwx6q~[/C_C~F~Cg}":BW((~D+u>Q,?QqFJoMV_"?*Οo?Oft\/XzG(SP^A?$Aai|+DK\>+;~<Ho?C| A3 ?]?BG2_W븞u7R~TQJ_C4asG?t|-?7?H?ϏO|-J?VEǂ翿~-qA!_+s@<ʗ/'O_$/q~?N~EkKr:+}zxuEJs -?a>7ůa{w7' \;|8TS??ٟ~_~?:O;ӟ/|o~v't>7V3՟4xoП4pc>7?ioo}PCq3CyN}ߣcN;tgio?o oh^S|ߣy;!DP1<].\g=:sӸ{&ѣC}m뎫O~!< &0x禽yL!w뎣o?'}7|?_g>kj7[]o,?O{uo!O0m[JJ49o{IWg;Y?v_<'Lu>?[~t\f&?%;~G4낿Ɵ ?T~'?u<_5JD':~3u3 |oq_R?L~:?W+Oq*O+/mVwv:UwN?TJZ/sHV90ҟs3>zo:PT?lMo2֟T~)r::?K;co:3?:?f\i'?M*/+?;JHqr׿߳TI=JmgϿN漏@۟d%?>tE[G/U{=8P})<*U:_5ȭꩿHj|~GRi?TT;{^Xh%?B~A?fT~}iW?+|ޙR\~?O y8w|?u?wgc@t>i-i74оwo|?'u6? \P3yӼkϡʣVc]<3?4wiQ(mם;~} 7Hw}2O]:v~Ct=xch㾉΃Чo[;?4v7&|N?+y{K8ô;?{ߪ8ky1oot&wo6?]|[!<<ھ}Ӄc߳Sҟ~{ʏot{{fއw]sw֟mz&u>o:w172]oͻ].vovo^730zvJo.]oig6xvvh~5wi>g?|o6x:S~~3šoIV8{nsOO3^ӿywҟ&j1_ӿS~#䯔&??^~I*of^#I:.PzYыFtTW8>RCo"y#~og~ʏ?td{qGt^~3ҿMsGԟT?yu^ߟ寒JMoSQ:FJ~?ӿ?ƾ?H?~}O?'i~׿_\>џ_O뷙Ϗ翧?v_A}HB9ҟs[:ߧvI~?ߦH n;oi>:w_COi>7oiƝ}7}K/ԧ}7.~Ojyl?t7P;! Kx ?4?g.{ٝA<ٝgn|mߡ &Cx |CG~xvWN~٥y̸]|Mu>?vxx:)?{]v>g~Cq[>-];gMo߳Et[~zzK..4süףs#]:?oo_[z<13ogO;ow?:wG>M-kh>z6O.=:wijԮۏVy᫟3DG>]wѻݟ m:i;]u[u o? =;uUMx~NO94q _|}wo?$3?՟qtۙ Oӏi}1uɴ3?MN+w{Oo?M{~ЧK󷡿;u|u>ͼ7~woⵥ?un4t1f toL{4L>g>7t:wu?7^igџf<3֟Q47< 槁P>?N{ϧO'~?v6m[?;&li=qmwB~;Di?D~O3oj[fWqm!?w&??u+'P~3}mzO/{Ӭ:HgGWXY<6{=t>PԿ ]~N wq|?돒/o?wO2I? t|;[7gJD?xo[}w?Fa:ϓOa/y[;:~nֽ?\V8۟/?/qr=Wk_fߦ:Fq*w{'IyH2x 翥yz?[ӟߠ::LO3ǯS*ǿꥹ5HǓ_Z~CQϓ_*?{G6KWu^fg?ﳿO~op5|G?)dYߤzvV?O~k _rWms>q:\[~:#=_'?/P&2So<MayhF?PUNWϧz8)F4sJ~j7~Cd?Owj^??yﹾJ_g/??_kSTS߳~[sGu>:M_?۴7?Oy?ϡ LvMInӴ7VП :?{߼g~VP|o7w?O Ϗgn?gwǼg楋;7Pm歆鎣- ߡT!|}zyS~+ ״aMch`ny =^鴻N^tŻy:z~o~?twn]C0Hw}nKnUCwKNW?;VzN{owC|m;߭ۅoo0N3w|n-|}6qи+i޻>JMvu;.~+iঢ়tgw|oN|ŷ;.JNot3?{]zV? 1wN ~O٥g?}7[u7o;s٥ig~nOo7g7VHswӟ.<Iw>7w?MןNHg~]|LOg5O5w?7y*? 763Sۙmo}sm:DOCO:oΓMz/_'?Q~/Go~B#{1R~Ӕ??[~Go3R_tџ$?ՋLPomֿx}>/^oj_t/ǟ'??V~?Sdz)V8)fOqy-S{/oU~{ktT埧?u|f~?L~F뼬~F~Y~i-3?M~BBp/?%~}XHҟsO+c~F~NCG=y&?\п]~?d}`ȴ#?~ ҿOsiSe͞iڙ߳ӟGosso]?ҟ{?:翛wҟA.\7ӟ]sߌgig3~Nߪio>7xwŻ;xNnۏg|ޅ?柆i^^MVK|mѿ?]z7٥qh]zҧ| ѵo?o |S!΃}!:|[Nv~ޥJuU7=M6DW3~t94ޛ0Γ>]v]q? {_zyz}ė_ =CץۭWVi>n|nxxn~M3~>H?}~+ۼ}nG/}c|_9ѿMpwm|nڛχ4;ߪץig7w3w}ߩM+#|?Dwmߪyw2o?ng8in^.ߪ{v9?ckX{o4ҟ&Ow7Gwҟ}|nwӟ5ߛMg|ot|;#?9M{'1:?Ӽ?ҟvS{ciOm3y?H5ߚO=_߿~~BLNoKAGM{3;T ͷAҟ4OkL~CJmKӬ+G_$?w{Yݹ֟ /L~f]BE{+?-ҿ 3K?䯕"?Mw?Ve,?mo?ϑ՟"?O]Wz7;\?]X~?vJ?@ۥJ?돕՟/?L~Q+O?Pq?LտPϟ~c/۟!?_:YtpGaƹcBeKoGJ7|yzS"}_ӿ?I_iOY'y{iCiH_i?H?S~RϿJ@}+3tt\={?fcP~O)?|~7"??L~I:oӟ'?N~~>xBQTu/ Ӕo?N~UY}todPS9kOS+Z7U7E_y.ܡw1tz_-<}p]Co(euCބиxԮc^nxz6x 7Wݟ]z~}q^&y~7cφo3?yxO_{[9D'4ݟt?DG^Oz;Ow\[g]!}tm74P?Ǵ8ouS7=֟C}3wwpnMԅ?4in]zv1v6c޿4Mߩw^ ~ҿn.~;O7wҟ~ߛy0O Ko?ҩ;f|S{n~oK&ܼ?4nC7y}V?i|~v[{OC?xKog3MO~W wӟ_3]<'H~烿U~o ]~~ʹ}?X~Y?t?ϿՕsg4o)?ߧ)ӟ˿Wן&?C~3 K#L?~_"?!J[>?)A_/?^~cO?]]moB?/f\;4/)L#5qKuO+M}\xKS:_:[<~[mRxfoPyWX(~:T3/ҿ?L~[*ٟj(}ϟԿ3opf73I~F~~=u~V*[ϿIwGT:/q}矠#ݯkwZ{T)};o>tM[l'?yxx~_~i:D?׌џ ?P~rϗ:);]vToן]ҿt{g~}i:_oTn0Rt7?3SS>W|*W@Vx@~C|D~T {j>kH_'O3?H~G?߯o7~O|e-RQ!?%}<ҿωε~o_џwm~ExgoCi?ֿs_Ӽ|?ҟӟPTn߭??43iN7vn@~i77wn~~jPiC}SoyOVv=G6puCt=|{y>ghChwPs< wh KksyO΋9Ԯ79D!:t |u始oiMwhץy ͯyC3񐜚ۿyu:4_Ctz{f{h{p{oC|w#< nCh[χ^G]ߛގC~;!Dy!h>ms=ӟU.=~4w9G]Cxt:wiUVw?3.L{O.^Ctw78U]}״뎧wNnMC;Jvm3ߛw:wk]8ϻNJo~|]|vFny?o?o. x~+i7yw7x}Ӽg~o?xnMc8]8|G'uҟ=Xgvڙߴ5fg7iivT|3/smi8|WIW;Mu\OTr#?)BT+ǏiJ_iQo_{5R/<:?m:;8_+?+~?MO)뎎/VM~q/Ue?Kߥ7z?R'~N֟;<_&?M~]\)/?KߡϏݟgo.J_K_?M~Om|x#Jqsy2\|V[u<߿Q uoN~ ܟ'?)gߊH7|7(^_r;C?.X~?^ku Ӵ?HΟ"?(i3/ϕ?h?U_艹7z4ZOE?џLOW~"u֟|K~ֿsDcy?:?}V yw?7o XN+k߭iLom[ߩ4 ~n]So}|([Ϗ:n4~ܔ4O > {[zX8ѿ-}:w}yh~[]gCxߛ~mg>yghzt&:t?w2gu~ͻ}:nj?Dx̣$/¹Ioڙ4|w=;nCv]zNCoo:wqP!u}nP {߃xvn7Cim}O{Mr`S~tVy1>|u!:]uoh\ݟ@;t n=?F}ŧW>7ӟU..C~o_=ioCt-nj|ny4t[uҹ и~N{1M;t7?Cҟqt1u}]&7pM!:t?p~S~Vv;O'՟] KסKq8]:vvCxu1wۛC^g~8~'i8L;]| INw^:? ?k;<BL?Qzϟy;_ΛO_x:߿L3FӿM~:/G:ow]b÷t3?/Un#H6ێQ5՟sGן󹁳?N:Nswo75?M{oig7~o5s(_e.o~~+9w4Ǽg쎣۾μoe(إswnJ͇mO.]1wO?Mvs~>gvCti|qG6V<7a!u?_p݅{sh6V?TzGӟ=tte?ק;7> yn} }o˴|svun?ݿo< ߛgnүG }>]w}Oo:VsCߛϻݝp죟yJv6?]8LIǼg7ѥK L;Ѕk>|ޥo{ߩN KߩmП1x?A3[_ߚ=ҿMOC?7aH 5_{ek<_y0xݟ&'?oZ߿X~-??^~nI?ϿN=>keg5矢)c@~?#?W+8w~kw /_x._=u?ڼwϿ诓/J9_Ki %׬I:kKeO×YՊ?IHtwuX3x_&?w"9Yt\+%OGqyH{_"?wϿ/v+?k~;iHo{3_7So.R??Hm=ʏM~:gOF~O} }H۬:_~x:EӬw:ʇkJߟg̟=֟tg菐/rk}O+?:/M~*X??[1-NGiRUf ~Lu|~?J{|ϣ\~B?C/WA)Yo뼼U<4zv_ )ʋ!I'ϟQ=WοoT 6gПu~JLo*Y@i쪙?n7[:&??ZX~xJ'T"gP?Qmt{r\e7P9_)~ʛKʗ+o\(\}OhsW?IYEט\i9v??]߿W~{ϟПo|?ӟGy?O?C?u~v:?;c o??+v7pN;kLL.U~~.ߦ<~ng.^Cw0M[鎫 5O}o>wڛ-] .=oes:WߪwwۧyCw{xN!:ɱیonCt0ބ_?`!Ctv}#1μ.=2?}o;Cyɑ>7ssS\3W3O^&:̓yޗ.~~Oqk3į]uv&>^>7C|nj;i{;?o=3h>n|! 3w}CnݿM8ސݖC6ĿC micmC?kM|ҥC~w~;wϻpӁ~oߪPnCxv4x=>|ߍsg~V'٥K߮|o~wҟCp[ |o>7xCt0퇾:DCqߛVs(24 ggy~'G.M;4pL!<7Jvwӟf^~N;/|n }F4M?M{OY7pL~{?=i[Ocy?{i_Cciן?sMwԿ?MXfx#?vﯟOW翆~{?M?kן=ɋ<͗?`)?+"}TK_)?OwԟOt~3?^+>vR>T#_bZ{;D|(7JKҟ/ן&?q:JZ?@*=(OҟdOao'I{Sۊ׶/LU'|Ͽ穾~'#П ?+oRa_r_N'no7~[(?xo=ԟ_B7Pk?M5t7wt\DO%e:<O?c??L>(^}GQJIS>8asrO8)x]t?S~)?HK6O{?L~uJPzm)MHJ~h!?B~A??@ϟҟy߿4~''<O< #y_~K>;|nӟH:3՟|߬;u~V{П]gf\4޶m1wv g> gk)h~v:M>n/ۥ}oCLg7O}o?{tg߳@{qV=>xϛ{_ y~7<]>J?vݧw??MCv] _K^7ݥS8~3?oynn.ܡϡ&zh{h^ߪ |ޝ8| ?D?t1u'}ߪoi3kj;u y~N.|;u~i7O30wҿ g^wzwҟU{wwF Ӵų|o6?M;Ӽ;ϴ3k4U{ߴ3v~n|ŻK'y.xcN38&egŴ3pL-iufNiڙߦ]XVӼg~M7|_T~?MA?翧ӬS? v{L|n}?_ пә4y_~?G7|gϿ/_!?_.?gfAB]/u#]ouo~vG\/1/%G'EoП!??_?㯕?:H?J~$?77N~[XR ]~ ?W:?;:V~ԿK_ϿN׍~߿Z~-stzB:7m~߿M?G|2xSDZ3iևt<o7Sy |g#?g_O~~ߩ)?M~07Odơ?V~SnaS:(}!?!Tq[6)}]LO:bgk矤??J~_CSRLo~ݿ++{7oRT/KMʏ%??NSY_xw:_'?DηϾϗ߷;gZtM?t.? 4~?oG6 \ŸЙ~L>ѿ~o>׿mPϑsGwK;?{owҟo5|ooi2m5O3i|(o}4VCEyp?7c|l>~oov磋}:v]xC㶏󳋇yߝo.>ޝyyV~?.]~+ws܄OwC7C3ގo!|t.܄x0ooes8Ow||[u~oЧ{^~ޛ3H}܅3Hw},C~?Fu[ӭwh^n>߷t|[u><|?oA~>{ok>>tֿ3O>sSC|`~|u?P;|MxY> |9(?ѿ[vϯowv?MRu݄{!oy_s3ߦ۟4owa>;uڙ ]x]_w=on8L?xw`>zK.14puVx g鎿w9y3o?Mcyϴ:ߛ ߭wVn:n -i7wrn|G |O?MX~A=cgL|{C4{cM^Ԍ1t\~\֟&k|?5/=?_myA?CAy}Nϵ'W7~7S{&?SмzϿ鏔ڟ#?h3uJ~oѿJ]ϿG]~sA7ӟf-%uHw-?#oϿD~ 5翧?Gk/[?@/)w_?&Γ?@}t]3/_%?_|&?OBoK}qK#??L~qut"ǯ?%|K?J5o_ot|#]~kIGo/~?䧙ȗqvlw\B;?翬/:oO~(T9lwfԬu_CiJ?Q~_(??H4P?Uo#NuO;~K:?|23aI?)N|+kD/gq:}&?W/?@nt~4dՓ۷u<ٟ"?1/S|>W|~FqW~r|KCߨk(K:I睑{c"S7IϿFxRVu\xO&?Zm~=erg1OR:?Iˌ\Uiy~G:\ֿO~߯{_?t}֟3?R=GJq:޿HoNq k篭!˷_#OG~9'H])+~!?~o~N\~S=3ӿ՟5?_?Hsi5y~ov?ws?? Ctͯ>]zK.y<;S~G}i» n.;/g{Doeڙѿfҧ7ߝ{no|S~~+{w\]:MӅs|  Gusk~иz!o< >|kxo1D.v7[OKg.}..Iv]zuDo;uݺxni|~ߩm5w~٥3wkڙMKJ޶}ig~vMo?2c?vqϻM߭?+iZy{?  M|>ҟӾiK8{S~ucy?;?|~?ПK |ό|?M^T8OG?_OJF}O֟T~wBM^9?П?V^~S?@~A?Ed~j>'?I?ѿ+KP'N~mtZkǿ_*:T?Toe:O/U_K~ IMuʏ7ßRߧQyT?mT^)~Vy.;j@Gu/L|)4/t~ot~3|ߔO!(ֿsyOAS{3^֟v~}?G?G[s?wHn#?翓L4 _?aUo;OoOyo(}̸M;.>aO.nᦼo].Cyp+94n9и~7?>m~_te>]y뎷K!tҵP7]Ct{yig[G.}z0G?ms^  3ߪw}n }z|7 wSO}0pyj{~ˇ|]!4N}w~1nsiu>w|>D.o5Ю;.5Oyӝߩ{]M{wCtvm:v8K.LxLUgP?]xqϻsߪw/;Oӏ!:tu:7ickڙOӿ߭Ӿ{G|VM~Oio67iO3ϻyMvk~M͸L?#P~AOCԿO7ڼg~Bvڛ/37M@&o?mpA&OR~W֟E3{jӅ4/*i֫_{QMg3m?ѿ5kh?ϥ4TQ+??T~isKA~,]Sov]wok_)??K~IR̺Yt]lN~OX~CuV;Uoi;?֟h/ |oq7t|׌/K4O{_&?$]qOt^矯_I7U}ulTϿȌK.YOt?V~9|U+_'?aǿ?fL?GʯZG:o+?:?__R3|i7)}i+&?o tI?v~Z_?HK #O:.3?ST~~[['?9Q#Q<ƿM~Cy Zou~疎翥}r]?@k923-]p?[~*G ^yoTǽ:ʏg*O.?oϿKNy5 833?F8)Qx? SS<k+oUuߥ? 'I3T_q(_Uj#ogF-BO6{?FW}/ OP8_,??I~1smF~?ꏒ&??O~fct<'?1'p2?ziG?d&?({*C:Js?S˔_)f7#?ϏQ'?}=ϗʟ0rnR~K{?NE_~}k~џi/g;?]/՟;u~v#9|-:v:ߛg?M^|oi5g7?[u~ϻy.|o? |wmڛCyJv 7o?[O gur̓vg>ү۾`ܔ_٥k=]|ϛͧ>i>nۛ/gh>{]܄Mo Ͽϐ{u]u*?c]SSU&?V~>kg󏖟*?z/kб;J?H\-?\~O ⯗翢߿u?I?tkOSSweoR>?L~~ ?_*?$/j=7=_^џYqf%:&?M_'?G:o+tܟ"?-D~KgHaJԮ {%?\9ߡ|oxM~::ߎYo<ʏ&?&3dWS?75p)~L~~7_?NߛytOݿ:?INT6먿oϿIOR:f|g?FH__'?*?3;џ_yO_I3zѬwC:TTS;<:/fSroM~Mϔ9T_t~'#>{*m}?D~G?U~ :/L~BŧT|HBߦo%}&?K}+v|J_9?Hy0wgџ.?uҟCy_>|-9ҟ^-9֟;wӟIӟoi o?M?ߩ|os|[ 4w?g/c`ţymEnjŧn(/:gzzCw3?§Mi^J-o7}O/y;q^\~.CכOy:w1wMxC|~o<7o {ҧo?V˗7ti7?ߗOnOqwv~̣`~?oMg5?{y>y?&9ǡO+yk96Oů;!:v gUo|}|n]ܼ<|>s]|n2w.^]|qVvS{ӟU.o_0O0xN;sSw~L37w5M~ow״7ߧg0wᛟ6ϻ7ߛ6y_3N~'?7ͧ?M;o_L;g?wҟs_xM; z4lg&?y|? |1/7 G7v~3i =m7ӟ4?@\~V3-?U+?%~ ?3o2?T~SGj_t¬wگYZiS|KO_*?_Mwԟ4]ӬYmOQ?v{௕c/73~+? L>/ u#?i#f_&?N~&/-o2xӬ?fޟgϿOTHu|ӵ5tv?ԙgP~ :w姙y_6yfW_y [>kgg󏓟/o"{4\ϝ5t\;JH)??_~~[3ox:s&?7mV5S:7g"򏕟ɿrlCa~?laR>}Wuҟ_#g?̼Wߧ?7{33ϔ/~?Y~Ow~?H~Gr<*O+3??{,AA47ȯyxtVM!v[!Cū+hg|tKxo|h>jg>:w\}nMt^ݟ&>ahz; o3Mx4s=D៿Ura>._8M|z#uم{3VC㴏ţ;ᯏ[o {38ϻiףCӥcw7v]C34湩8ovu6Dޣw0O:6p7Lgw\C-CxN7ѥ[?y}|i|n:|n}?wҟ7՟n;yW>Io>7?]voWa7tyۮόߴ3M. >UsӾܴ3?V?y+:wou~GӼ?M~˴3w;ߛt1ӟig򄦝> ~OmL~_ҟs9꼧p~ 7'k>W,ݑs~e|?O{~noVN~OY 7߿#?j^7ݟ.?_?J~I?f}uf}=Y?5x]f=䏔џ'?F~Wmwo!?zοfOW{_+?_&??U~~/fS?H/?+7ӿ_au?r 3+/j?쯓u9v'?9]guOct4;ӬC:?'_ϕQ_xϿo:OowR?C޿jퟤog䧕'_$? _C4_믖?t~/__c4t}^_*?(=#I2tt~~ #:O)O:"?wD~.߱wVqoQ+?;Շ*??[~ #'&?S_{ҿKw>nߤ=!3_qOe3oX+Gz?Sy9v?Q:kTEJoRg7:_t?,/_'?_M6W?7::#ߑRe7S /07)'8$oW|-YO{38f-?+3M~'JڹM7Jkt)?o:oKsoϿZ{C;J/_Kg[_? :N73&cG{#i+?"i~!?s~"?![k>}W~׍}?ßo@>֟ϝ{sO?w?:v~Vӟ :fO5wJSsӯiڙ~+>Oӟ}O

v7U+cӥ|o?2wnqu { 3O]MvS?ҡ/ѩ ѿmݖns}:w W ovC/u- {lng>:~c~&>0g ӥ=OigO?7>:wd[yLsp:wWswCtg|c1?uwҟ]<~N{Ӯ 'տ3ߛ]|C2pߩ}.~ק?-};~+9O|n6?ҹy t:n|;u>3xNkHVӎONy7?UxLm~vwҟo'7M;?{w?C.Vsi3 ]L;unL;Nsoۼ}i3x<;ӟ?vg?Oy_ҟ/ϟп5_ѿ_y|?v_S?|?C|T=׿M^U{~%?[L^WE4;+۬3/Qϓ3͓4o4m֝'?V*H/_+t~˿M~JoP_?K٬{{-ß%7Z8"34Oܟ'?޿u߿~&:K d')uT/ҟf?z+?__R3_.?AgG 6)E?_#}B_(?,eQ:JHRy2|g.?&?4+ug\ou_"ۿMu:GϹ:?_K?CW(jyZToϿHo+~?L~?O~YrϿHuB/Ww~%?'gn_&?3oGڧHoyT|t|F_U{'ų={/џ⻭G6{ϿW߇?N~nqQj7 Od옎7ӿ\ScTi(?JEr篡r.߅~>O5~_~]'wty??sOHnu>ןҟ#inϿ? L#u~1:w3w1p >? Jw1w;N^7/vSyz\} ܛѿ{SoӾ>Cܔ'7O]]xCC~+٥|φtvo[u ΋~n.}yn۟}ߝχm?;n?C~ޝ.\P{=|:4><ݖOmhoN&|L;w!9gMvVc>7]]{wom{Oy.3O;q4~oM|o6?MwҟӼK/kӟfc!{O1:7ϟПiڿoSyߛNsk|io}ߛ_OCG_ߕV/f7gO54iҟOta篔_&߿_%??C~v4oӬcA&Km{L5?@~W|__o&?j]v)译X>N~~_?ϿO*? ]Ͽϗҿ~j{ٟ)?Sg?N~KW/_i䯕멶?t}_SOOf~V~K:?@aֿͺ//޿@;*?im ?6k@!?UmO7O/)OY/̼JO?U~Gu)_Gv:?WM~?8~?R~K:_Hׅ$'/}P'h&?/H?F:swqoe)>ꁿHR7V~Ad~m׿ϥ*^깿Cu|.oiTE7R9&?-O~)K7qEg#;ܟ%?zO3zoGx3ӿN?W6w*/ҟf=؁TR>_uL~ߨr;*]՟ǿϿTJ4as|bRJtʧ'?)rA/V| 3:ת~FmP:߯TI=U$IT:ޗ7[_C_&?Rt<*>&?]mxcnkӿGӿok#RV|ןdo3Co$B_+}/?r{[nO_u $7A:~?L~?c_SuտJT=?\~PfF*_пΤ=0ӿ9o+~o~?Oq?ӟ~~c|??ӟ;s_vHӟ<П{sK?=ҟI~7u>o?kt:w6OۅOxl7}v,ѿ/xk᚟tᘿcCloۏO7[CtKA|{uVyߛyh7[.?tvx}~O[A~|ox}z<]ޖe>~n.iO Uuinypۥy~i\Cx睿<~~Ӹyp`;}}{m._w@ ?7gh~ϻ6x?t[ϡ~o^UߩymOP][uOΦPnM.}L.= Ixw6pVt1?c|xuߥ?M~ҟ=y֟:?1pߦ|ioڥχڛ]?p]MnuN;]z<|xy4? <_2Fw|owm|?}P|ܴ7x>֟&H~7ilXqM;? ^M\~?_O/O1翷g~j_C5Ok{翆C!|??H+_C=?~Z?V~Asetϐ[|y䯕N3տͣri?&?M7s-?"۬b?L~noqLB'}诓ϟ_$??G~AO/X7~ʍѯ5Q?_~K=M~zgw'JeȌkG?t^_Cۧ:>G5ID6_?+'?G~[?7g{/#쏓&?c[:of|V:~U;xU<>u.VKO#//H~J9ƅoϯZ■?TןO{@s?X>|?wi77?g:wӟ]_?N;7m~xFoKtM;ܴ[u :?3Ծ;xx Mno;槥y:w9Ӵ5>ߘwߪn(˯]z 啇v{7O۴gtЧ;{~~Ӽo7nhCo9iwߥOO3CIҡwݥg^y5CL!]8S{_w<ig~nu6pMf?wm3.=7u7V{4}y>?Gv? ^H|ݟO|?'o?oKJ?}k;)F~C~kh{R?7O]ma4'0?v)??V~YӬ3CtϏV56g}w??\Z[)O/vH6SP+?&!|w-͋4_R"?ֿa诖my/:\?t\_,?@~OJouws?u=5?oփ 9ϕ_$?8Bx~#U|>/t\jG_C~?T~G:?@k(⽣ߛ?Z~EJ_%?F~>Q+E!muoBmϗf\ iֹS]ZSۙw|u@oP_'?_'o;矠ߛ|z䧙wf^Vﯡ?'WjG7S>4tTy:OB*)?xGߥ|xO?txUUOE:SI:O̗3ߎ?Mi?U<A_ѿ_D?M'uRy?@O2tW2zT~Tuouǟe}ǵL:W(~yW;گXe 'Oc~?P~K[ӿd2]<ѯT|;(=R6oOOџڣKlK5(~Ro-ҿUOw:/P|~⽯?F :_WnϟyW<_OXiAʇ/s3.c?S=^+~'?@~o/?ڿW~^mk[*=^fϕNW:oT~~~Fk՟,?H6(??,?H>ouTa K\jgK#WVFO&=~_mZ}?/y?|??ӟ#?|iw_ϱϴ/ԟ޴7p>ҟNNҟ[o7|n~ |o~Oy75ԾoG/;ݼgs Oy1OMyʡ8{xCt2tjg<7oߛ]C&Ct|o~gp:w{4CvKJwC 1VC:M2>v|t3t|~~tڝn?SMts}xv> {ʏJ4.&OϺۙ~{ʏ&x7A}!7yԕߪM|wJ?ҡ +?@w&VQCmw?D|w>c֟=֧o7nwҟӌ=Ls<B~C?߿=o'{~R2p?@?ﵿ_K=_~ 0?mP֟+ǚ>K/瓿A~n]3{Ͽ\?Uo'?F]ygf7iG"]5iC^~bac_$??y@5f&:i)=,/Q8翓 S\P| ]j^cJE^?7t՟*??O~*o)^_.?0Wϗ 7ӿL~aփ0o'_*?zY5If>[/)_M:oO_|eֽu+˿LKE-_P~A7&?:OόǬiƩ/smoQ~t7+]?Ou/ԿSެymև#qK?v_S)E/</RoOr;ߵ4JO,Cw%Oq~7]^|/ӿ?R_'?Oo/q⯗~|Ydwa7S_8"0zoR={jSu?G_q1(KcP'*'#/S@~fR8~Kur|Oʟ۔^꛿O>ҟ+x矤ֿu~N_ӿu7p86O3}g?}zcĿ}:Vv=6&2O]wni3~ |9ԮoemwC;]u?<7&?7~?{ʏҽsA9&|CMz)?zt[oܴStu C|iVsg=|Mu~ 7+|na7?۾;>yvtѥۮ;[ig~ʹ9ׅ?D/ywҟ.^sKߪ7D'蘭Ì|[uc |?MSgWxvy0p|߿Ssm7y}O~ {}_vf{i?OP|{v6c{?ӌ|ov|&?{4g~9.5H?HL>u>U<~ϟҿ0vo+K&_믒oVo/?'7W~^?o;#Y'}ko;[_,?ͺϿϒ_.?F ?&]71:IuӬ#''hݬgnxo!R'?WH~uFyL[^kg)?ϐ?wwtfR_?H|_.??N~A:f~3gzx dyX)Gw<ʗ!?dX+=t?'H_R9Z)qE?@?qgb|VOUu\)_~ƊoIהN+?2ϟϕ?IiP%?_3ߤzSN:O_/?Z/q:AVugt{I0뉿ʍY_KiT8KxK8H_Lп:yzG?Z~Kjo|fʗSߡr_NԿwV>QsGߤyyb_|.?G ߥ?ӿ~?yCSc:|1i֫#?1z7Q5TOj@~'?xW'oM~[:Z嫏t~~?G~{׿-?3HܨG?#?O3?L~o gϓHP|6iO|џ mO( ߯?_'?)̕?A~oR_O*￙&?_qSG(~9? ?'+?п[~:D6<_R}S{as?wڛMkW:yMdOof7{?5V?i{&?B~A'W \>՟k'}׿#Y{SxPN[s[?M:?S ;8)7N;ioV?Mߩy4v4wN3?1Noi?_4p~?P^Kߪ<]z|}?4߷͋v?]>|V ;x3 }o|otu5DOt߻i>zwkgw]8Ctcg?;ii}nG?ΓyHN&=}oиoKqt..8N{stoOكi{;_]| .~\.{ Mt2powt[g!:t?]!7ė=nм{h|t^]>΋ypC߮woe>ק;.4w7?o;.7ou7va: ~M~m4Ձ<ԟN;4L?t>7=hge秝M;4x4vmyEk|?+?ө|Cok|_E~?s}/ /ҟF-?O{a{W:׿jֽ_"?y_KϿ|%?_~+?ǿM~CϿAt;/+??D~?i-?_?I;/߳\i}毑*i{G4r9g//5{+?L~Yo4#JM:s)?J~P:f3]?/c_m?Uz%?WJ?I?:ֿN~ MJ'?4kof"??PpOM~ʏ_zϹ+5|?ͺYGZx!H:O}Out\U_O?u-7|A]S$moLA'O~N~~/2(fʗ~s;mTt^AQ8WxF'62IwϿ_Ǒ L72?w:??Pԟ_ϧ?ӟ'QSy?χsKou>ӟH/ԟU?vCy2im߮ig6{Cwۛc>: ~mN1?o]wyOU!twe5翕~>ԏycNgn ͏}:w}=o?S!~:ۧ}ow|oL;}7?34!~M[>N!ڛqwo8Cg~]8z߿]n.w><湉ѿLϡmџC|j~Vn_xVݖ? <]xMr[usnnnu?'տNc w?MM>?{_Am~*<;?֟4|?O76ҟ]:u?ПdyҟgW~yƿfg:~4ן3v ( [:WPӾϵ_4f=S\jS~!;~YkwW~Ͽo%?ϿE~Ѽ_7?S i?J~ /]ϗ_Z7?It]fެ;Q*mx%_/?\~s_Rn/<c?iַRX?f4T٬t^L~ߡ"3oj)ϗ۟.??\~IxEYΫ&??G~sJ_GORוFg&?ok^}oq&:'?odyt|+qS#?z3_R,<Ӭ#(^E?ҿm~?H_gZ\契RX~vf|F?B~cJJt\W>{O~NПdZJ^n(uG3H7f~5_2|==UϿϖǿvw8W|'_C?TofHkG?HtoCϿL)k(/f}TO_*/twԿt?G~S>\o&?wD퐑Jtf~3/tꃿM("ox.@~7? ?D>({(::ۿʿFΌTO!-=VN=_~Ai+k֟_ߏgOo~}Ͻχ?Gwҟ|T~?' ;?oi[ONۏy~+4p߿4Oҟ?Mpm]8i1ބG7[lt|{:w9ͣѧG[>C!wwk{h|CD!<9D!C i=gѽ7>߿U }?[ϡz|1 ]?؝|n{,̣>ϻ[&mݍpy5ύzou{sh=M=?O󷕛!>6 ]L;94.;?۴3ӮO~tᚿ+ԧK!!>~GV7DߥMܥso3Mxvg=s}P?Cmoҟ_~t?쎧;ߩ|ߝߪK.\ϴô; |ooxYoi-N:~q k!|ݟ]]w|[u~N7Stnwҟ[wӟ&bvIxig1|g;߭gڙ~:v~@=i]<՟ɣى~O_|n)^||o4=6xA/o??R~Cg4My? QuiߗSf=ZϿ觵J~KӬ/"O'gp!k_zY4/m_,?z<Vkv"?Zى 9?;͟MwY$4f}ԬK~~37_*?5ӟ~U_Пt+LE/Iԟ߿@\)͵C3/;o?S~3}?C'J/_7yS o?|4w?Y5t͌<|:f륶t#?J}[S}:֟ڟ.?+oY_?C~SGϿ0zroSȝї?B~{:Vq?7Y7:[FmWRyQ{?)R+]QA_[T87Sg??O~g⟨BeS9kU[ߥ=k3e_qHuS9~o?USTy%~zoy#iֵwTO:?H037c'gY~ߣN~>Pտ?Et^O&?)Cgt\ t\/ojU>~K˿S~.,^;'?O&?~[ʧП&?W?\~]7~F7rh/߬+k{=/g:v3w?_ k<׿?ֿ?ןg{~Ɲc?wӟw|oHoimg_C~3;u6n|ū/1|ݺ?yF~n3[;ߔ.CʣDJv)~ͣG.^cVSwn۴w7sh޺> M6wݟow2ys7ot3qu6o[!L?4O>@ }|ynl=C7Ԯw:{Cw!>[i74/\o?!|o|c۶Fzw?ϻN.qvcg_|_:rO!zmύ|m~s[~gНt7Aagpѿ+٥o?ghзg.ݻ6pnj[Ivwݟ nu6ϻݥi?Wߪcc>7p{w4v]9:NIvۛqt:N1~7iڛv{1w6ߏi7"3~io>7yig;ПOzM^LfL{T~? OG'f3Ci6qA'~T~C3PkoZ ^6Im_ߤCHۛi˰?'/woc?㯗棏.+V}|im#]Wy? *?ocM?B~O5t\&{Ӭ3{C?W{Q"?_5t[%sG/ SGϹ=u̺Yw4|d)G>|MiSП:@_?ݎҡqN g'/~F~C:/iTŬfg?LQ(9R~}MmK\ot\՟.??\~Kޅt'#w:3?9sOQg:[(x?KW| ?W/ݟ!?g:/?D~AJHA_V*EgFL{^Rw)}~;'֟|u?N YgoI'??X~M?8&'tџ*g_)~sJjgO|e_c?W~MHkfgj׿c7R|))Ko~wi?L?t>t Z~fM}Rϗ:;J-~F@)!oR<4_ϓoOt~Q؟_foj/u?>SUߩ\R?{W1A+|ï?Z~~̓?I78IOFOm)L_R~'Go/qn'@S~#LJ_?)?Zz~jƯ|f|+>ox.?{/OE6Hy3'8S:JK͔^OU.~;:/:KomTԿO~AyϿSJM~ylu>T玎د@tLR9tw0|^!coF!?~vߕ#?ϗ+;ӟ/={ӟ?ПҟH;wo7iV7mioڙߩӮ|o~M.}7kn?3w:wۙQv] ͛'94|>]w!x]o]>}xVM!]Vҿ]߿U݆䤋gw>|ޥC{7{v7/v>g{}s}[G7O ҿw?}Mfv0;v=g.׿ ~}sGy^]Cۥs O! 7Vy6pv?Mrd]yM;g~cH޺?Og{n?]n;Ρ~Vw;._D!z y8 KV+W}иOwӟq~+;.C8:wҟ4Mm{/ԟyqc~ן#}c7vgGsO~&? /4y'{'Oz???vv6of~|ۮ3y8Cio>W 6\~4}_~E3m?v3E~7Bk4I/F~h^8ռտ5?f}-՟S#?WYOS7 ~Gi?woϿoE~Gw_A~17?寕~?/_ ??N~?#?&#GJӬCN~|ޟ'?ߚ*G󯐟YL^=m%3ou/̺|)߽Կ:K)]=׿eq |r_={p~oC7]GdG_"? oxߛLu\ퟤ)/g*(_W6AW:oꏔΓiڬy̼%3/:?lsKџ3GJLs_fgt>?O~uK=yicUO;?Oԟ%?+O}_CM$y?ӟON{yAE:IrOoT~*H?t }Q7G?#?V~_csG)_SO?-ߥ*O~{~(}af~ IFf]OR 3W0G??ϑۖor))?M~S~̺0v/R 4|v7uN#oKߕO #SU/?Ϲ?F{t~Z÷gT/7U?(;=U}(6{*?T~VjoJH~ I ϹϟQ>/?P|ǿ]~uC{/]3?E7)??O~}tt\&?&}3篣rӪxc)&?W~'?_,A?,+T`r')5t|Oߌ8)mm2?_<-o埿Hf_~5~o ~< A~PCӟ#y?i?֟ҟ՟ҟ4諾JO篡?Y{|nVv/go?M?]<]Cw2.S~po~NA: ʋ9NU.k}wOVy7^iߪ}^姡q iynK q[=-;w3~y~͟ؿ~?H/}n;ݟ]~{7ߝ?Cxw<~o۴붿q>gK vg ;wy:w}hp^ӣO3DϡnPC-g.]|cvM͓>n?34U?o8]x}}o3^o?M|o?4ۣO4ϻ?|[ϡ~p ?]cڛMno5Ӽߥ{wt;~Nnn;e5?+;u~&b>7M?{4~7imu൯?OK?k~4|ӞS A'߿y_џ{|}?5hRMY2[fYG50OQU>k@n?R>;02tW1O'K:~n꟥r/isrSOM|GUG~ 'ȋdF~cI?ϣV~xsŷoc싑k?fFvj~ ST>U~J\e/Q~Fֿj?OR*;Yf{"܌qMT~uOП:\J[S篓gg~(HU*oK~q?՗+Y:+ӿ_&?Sox7_Kz_[TNo~3zR_x'?}1~Ͽ'x(@VmS|V3v~>kAG>4i?L~߿ϗ:n3폓ϓV<~q)?Zm/?AaWW!~o(JR}K2w!?W*W֟.?_kV?@>M_ տUoRO1Dϴ?R~Co~/\>■?O|?gӟҟsK| iQLv73ߛUwӟ4 V/?}i6?MMt?iVvg) ݟ]]CyRNo}P >i?؝ig{м[u>7<8C|:8Xt~_CL;Cw;8N; ygog><]1 4yo5 =:ҟ7 3yqlov7 ~yyχ}n?W1|r|QWzԟ7{C|o~vw3=uy`}z:{v>׿Ow<݅wCt7w2w~>{}nnA~<]: mo{h|ߪ}} N4]o?M߿]zv{Ӽg~vvnv|n/L;sCwӟm7?w:ߛ{}i@/n?;ԟvc=ҟt{ok&ϗOW{? }0MGL?|~o}?׿5{>p.?&s;?#?w3|#l$ ͗g\&_ONi٬_k^ \/~^~&yv&?o_??Ro.Y )M،ӬuHOOnjֵS]TThg'?"9ߤ?_eѿ7)*ͻfT~4Z/HǑ߿\ەOq?@*g*eR>;o?=Ag)oï*ѥ:f w-?͸ܬO wϟ7C_'??V~qڮP|? LǷ<92X+]S̸Tu̟K)_,OԿ^3?@yKo ?xS::)?Iw)_fzmt\~nHUqL~F4)*?7oпs:G_{LNJL_OmgJ+#_F\Z?XzPo_'?g:/ß_C-o翤?鏖ڑSVo6ߟ/{Y~X[>W߿?(?[(QGn>~(k7=_)_Cu|٥MN]zϡg߳yo}z|O =D3VWCj?Jf=gP{<;Os }O}74!|n⻡vҿ~C|hҧmu{[ i^mi[u>3Ow\VӴ7w7wa:ߛϻxvߥog?pL{]7zJuƴ3?oK|n޻ig~6qt]w|]:忕4x I+yya6xnc>7?.ަ]n|n0:͸O[ 4tڛM{G7/u>FӟL~u~:џO;߿Ʒ{i;\??П/Ohsɷc>7xOSی{^i!?ϥ~_?{:{/(OI?_~w_4/ӟ~WC՟!??N~!s?@1?_7RK):Gj>uoo*޿&?oPx/Ͽ/'??T~uSO:Hi3_:Z8Gyjm{5m? MOt>?t>V~f:of=ެgVT?a>3A)>Vw~:*eG翝I^Y?t$dGk[0ϒObR=Rx!?߿V>x?N~uI3]~nN?Eiy{g/B/ߟTzuW?ԟ*?f|~Ton4a'f_RT:QJ?Cեۿi?#?"fҿ#Կ5*i֗_yqmm)^R~E~~OoϿBOioR's4f=_C?ϿORyo#[:?(D~OTM:/N+ì:Jߧz~~嗿HRU_w:( HK*'g<;|(R>T.([3?G~TTW~?3[;ܬ[:7))f·wkSC_'?Fyu~W\:o{_8_wJLiG5~𛱧:_gcH(+*k?I?/S?Mqƾ~x??)K:gWT~E:H֟oo<_T+ן&?={w}t;*o|G:Ν?L~IO~@՟*?'ookKKt^~2is'鏒{*@V}{^/i\5~NL~CoOϗz?5~nwL;ߛGsӴҟ|u:Vߩw_o?MØvgn7d>g| |[u>U0ϡP> 3^.;D iϻtok7?go? ۮ1wv{(ߣk]|&|no;MnPgH~Jv0?6vͣn < ö7OA:s#wss}nyw=o~n.-ކ{wڙM{o|}ϴ䓁oc!o;7]wh|CߖOm}yχ_~ێ|م[Ю]Cw?ҧy[ϡq?+N.^޼u!8zxtu5Nϻt:ߧ.]|nߪm0?ya~vuڛ?m~v1~OCU;nv].]W޺1;u~vᙟ=1ݼig>Ow1yN߭3ϭy3}OϽNCi?{?;cH>՟B~??5gߊTj_D~?xO~o]#KV~X~<37||ϝ?W~o+ߡy_'?M~f5hK?gkiy&͇4?ϗ4j3OCw"iN~6g6k+.?3N~σV~~W47ӬGkJ_f=۬ߙH:{:诐[e|Gg/2߿Pv۟&?)ͫy~ ϿdYR~>.Y`9c?Q:R"ӿJqiʿ_K|')_uI6bЎo!?z3_ϑYX){ߢ:ہoN~.)CzĬ?JA<9s#kϿI鿢mJ?MϷ? _C{*?y2,f?H~|mW䯗wI~Y*?z8\'#?~?tB}tf]Q\:>3O0)~Fy0V?#??\~Kʿ_&?I?B;u:Otܧ/F~CS;*}m7;??J?v+N;(/y()篡@?IgE??P~C2;X?T~[1 c=jBNLF?~L>D=#?w:ǝTnu}u~n:fwi7?ߦ]ig5:wo0~gvSz?.߿4u󫽼yK m94>}?m?t;_7y.Cww2w~ wq^!>>ݿMIyow!m5&}dܾoK!:t獵 >g7K^7?o}Mg7`94?o;oCr6n{^]<>np7=0iL;o?xK?4!:uhI:俋o5M7|o~v; f\ݟ:w'94Cn;[|mo6M?n_|?ԮK_۴7ҟcڙݞwx}wCiy_ԟ:ӟA/~T ySfWҿ_Cßs Ioͯ|~O}T!i6A՟ߓOi ,o]wi?\~$)_u kew$okI]5/h^_*?SgֿF~OY?I+[YwZ@~u?Hgk߿FM*?ͺ]8:y_+s }/:4)~+ߌ,=+2z?R ?d~ÿL)/ߟ?(߿ꃿ㯖/.֟(??T~ӬTn&I?7z!o)~RoRj뵽t|~IzT>37o=;r)ߙCR9y_'?tSڡ_o(iC_t~vTyHsP:u?J?J~n?U=||ovNfU{7П[oӟyg3߿H~O?vqS_א ɻ0P[!Wv7ѩMvz\~A!ztɑӿom=`t8=vM.=D!8м|< w/zry8{:&i~o8i~i\)?n|N<]v |>|勛n_oKԧ o}hoA:G?OKgtot~OiΏy nJܚ>>Cxu|u->ߪC&x;Uם{~Usw|n~Vstwҟ;ߪywCENMGiڥ7Ni6?qtĴ7~t?7?+i|n6q;u~vuҵ;yԟ]3?7i?:ן&?c%&33yu6p{o9П;s?Oo7y?ԿS?R<د {WۿW?yOC= |k}iS4fڬ4?uOYJ^~o/wMY'?z"y/џ\Y5t}Ŭۙϝ_*??^~|ϿU?ti}?'џ~ 鯐u/?AwП'!K~vfep?M~ko??Rk??Jo9s_Aʟ_xC?ͺoV~^FgP|gCz/Q8_K\P~x'3ܿ3O+?|Mʧ:g:?oLGLǷì5 ϬoR)ktI{8?B~ S|q0J{v֟?M~[~F~GOjdHHؿS=(=BPM~ MguGF^OoS:mַ O3/ _RDS}Oot+_'?_/Rx_Wt<ϗ?ȇʋf]_S/OJ?KYN~u?0vtx'(w-?;L1Η_\i\5^_.sWm;t~׉KN9Jo+;~E?#?_|G:?oϿK4{<|Kt<u</h?N N:߿v?TΚ3ׁF#u|W'w1@5J>qCGV)Lo(}%gG8$SooKZ}LG~O~xx!?33yןQS>П¥?wg>|Qi7֟[vPwӟU@ |^{O3L_cI| oiVv߿:x7gp{4w7(?;»7 ߪ}o3ӟ]zuПP!~7?v[n{3!V; T?{]/woތK!uӥGoS!]'[u>]~hn;?w36NMJ7;u>7tomogڛv&7I=nK~Oowҟ[oG{o?7c޼gڙϻyÌ=i|4ӏiןSi?֟w]7?_П_C?=_k|OۛMgSW~T~+?(sO47s_)5?OsQ&?K~Ӛo&Ͽ߳f}hK̓Y=0[l9o|o~?߿R?H+_ߥy?ϕ-?+=[i?ҟ~]{J?@ǟӬ m://3ПkO!_!?L~k~SϕC7)4f&^)?"ޮg7qJM5"9R|;D/?tM3/W t_,? ?uԌKΏ[I:I?_S:o"?.?Fn(~?O~Jo{!^Ώ?4|bkfF.pF/yYY_??)}zY3umȕY{Gh;\i8/Piօ_Q8f7?iFA:/PH>4Nutͼ.Mf\\j=_?t0vw䧙cnjC5eY7r7fW؟?u>_z#[O{=i7_OWʵCc何R8۩6S<?joW'uccGE_*? !#翥\|T{7ʅg?G:#/+߯z/RT~iRzuiL2R8*˿#3e+?SWuϔퟦzw{:niZ{NG*_WʯG:BRg)[t> g켙CR;+F_C???.?1UVzeJIsK1~o3/R;RB~ԟDߛ?}+i?KL's<@|>֟;S ;ivӼOn1~3Ϗ:8S{ӟy|n[@_CO?M{s?٥^^~\?74w7wk!Vsn=|;~n9o~&vѿ{}]w]]{vCu? ރ~>vomoJvC4?+91wu!Cw?~}v WM[u?}[&i oO ]O}~S~kwMxHo;_.N·yo^igj]cu~ŧKҟ^Ck» 7n;~~|;C߭sKOwҟ#?M?|?|S#:~V~J?@5IoJ\DZ=U>|_([+>ҟ~u ?'o~+<\)>o0c֓\})=~O-us_]Am;x~OCOcwz~?_6OR_aOS94zjO֊ώSWTE?PW/mo{Q7?Gs?i?:??ҟ/ԟ[{o4~N;wҟ|noiڙ~G6p߷ךn:?s2>C⡼޽cWy2f};8NK?;?M{t|nVgw]z1Oy~n9Cpn#7ߠ=gP =~~H.ǭύu v<7ѻˇѿe ɫg7ͧ+w }wϻG?\mSg~χ`؛No5yLvwown.|g~1}3C|h^>7px ѹӼſy1bߪ}73w2:ӿ-^vo9DjztЧK!9iuc :VۮKߩ[wf>;O3]o?Ivӥw`;.?Mc>7p~7[!'io󳋧i:~{#i|Ov=9|o/NCtOTnw>ԟN{=|y#o>{?_K+~g:f]|evm=>[5~B?yN_CI/Z~Mk1 /Լ_o#?W~'?_~_yпSV۴SuO*?F~4o?]_C~oׁoiIߩ#]{Lf}ڬ+=&=+w@UOY/tf~_*?wZkq!G4&lֽ_,??B~-wS:﫟4~NF,?V~W4-O_3t!? #GsivO֟.?+ٟ'?GKrϐ/׬{M=;5 fLu<ʣY2xu"ۨ>Q㯕\(:ҟ?0@~T_ѿOm/?^~(:A3or8N??H?xI᫕8<N 2/)^?R}u{o߿+meGOxuc#7>0h{#_xft:J)<[*?[ʷojփ>_O3?I5po_&?&@T:?@OP<XuӿSf/R1t_)#'K/9R~M;)⿣[;oXrR ?HەӎIgQOS={I0ioqI~=3Ʈ]Oߡ|O-3Wvy_/Uo{?O}G{a?i5vaƟ[P{?!/ox@q4˿S~~Fm)V:_&?R>0)_Eʇ;Gq}[n:?ByV|sO7G.\۽{ovXJOSyxg?Iqt|_ds{O'H۩>L rk翧Ͽwsi~C9|@vsWnS5՟umu>:?'Jn ӏkOo?'i3x]ڙ NͿޘֿtmo-}o(=8>;|=wVx{on^C[xY~+ܶ|߼74.;O]84vv]CVӴڧyVqvʡ>CcAxw 7߇ M5 k!8~nykzs#:o{á ߡ~÷}W3Mra?yC:[<:mPt[7]C|i>gy~Chw#zӟ-v:38綝!<}§[tK{ ;O^Ct:w?Dgwwqt3D1~ݥ;O ;.^C1xѥ;.nnmߩӼ[u>7~o!|]Nwӟ]8vo?'٥.];k>oO1M;'1?M>ei? >?uן]N GsSPз|Z~O۴<t!? ?:$п!f?߄~~omo}4տ?矤y }kgF~k\%??oZ92cӛ|ΥVӬ;?Gͺ?ED~U?U<믑w?J~ziov$?_߯4W@4o5Կ!h~/|Ro?D~vJϑw磿\~L~nÔ.}RW?O~<%?ͺߤRB~:?Hͺ~:MۊoJt\~?S~]:Mӿ|i֋%ΗGYi?̧3넿'?[/~{Q~ߴiAaO;?4SA_4OP~TV~7ϟS|iAu2hϯG̋#UzEo4l0t=uL~Fq3P_&?i_R~6oHGQk;7w0G)NJtsRh??O~ya/R}mORyIoR}og?EIt-LUsWT*ߤxR&c?T~]*gG;JoxBP|sou0KPN7_d섑o?qnOwS'՛S|sP3Oo<|?]~o`{*~/I?@f| 7S>2;?鯓GU矠u:f]7ӟ#?,S"?$xKgƯYGF$?;k#E-uso6O7_o.Ά~OiY5:N㏥x)_?SПfgt\&?T?#t/)?nJo7;JgÇ:?@ TO*?=GJ?wߣW~3䟿oG~HpGtϧriߤGUq~y~J~OoS~74{'jԿ/L~[~Ag|~~oS#y?V} O?w#v4vom>ߪ7ӟ1?|kt>7~'[uuݔ|<}LJ?(Ow^n»;=3zxǩOƼ>.1OM woyn7y}[:uvC;IvեCw= [u>7?MN Cw9n< }t?3ԧn_ͣDߛ|n~?xOo?{k_ҭ7Vp-^v«}w|=i7[M~Ouy}1oܴ:w7Ee{v3? <.^_[ |۾G}xwVs?uۧg:3Vs!>7NCq[Cx|.iJv1>ݥT4v]'٥ >&;ϡu7?{&хc>7pߛM|o>7ߩ5 MӟsG{ӼXM;1ן?7NzKK{~W^o͋o7q߅~V?(_imH?CӬ歹/5OhPOCU~C󘻚7]}o{P~~~W*D?OޯϽB~FAO?8f]|nR+?S}{97ߤ/_#?Z(u^~$? ?_ ??C~S4@f]ή8~O]h{h)?ͼfJ?J_3ş/29R9LjK?ϿK"?w8iw:Lu\t\asL|g?N(%?2mGi[tӬluIcu<+H)~UͺϿK_R7~߿4N n|[uNow^W.nݟfo?m|>D.\o/owtO{}wjgw]χc}o>qtP߮}.}+j78Kߪw ^o?iߥwѼ[~w;?g~wӥ}w.!}wg>7 ϡgmm >}w^nj?7Cc>:? >Ck~V{|[]:s#c?oN37ݟvݟѿnt> [o {s#}?kڛ~+^wм<~'4NOҟhGo|o?t7[{^n?S]_~槡~h|ou?ҳo? c7M{ mVM?][u7 o?7iuڙ{sKvǻʃC9ҟ&HP~Aǝv/?c94ǝ?mѼ? +{ֿJe}.?S4f]ϬGMYO=s|V~E35ßi4N~ki^߬CyC:h{g|wϩ7jO?SN?O?7_$?$!Ӭ?׬fJ_v:m{끿_&?D~nKw?woK]8N~}4Kgk77Y^z@yO 5zo#^䧡oϿOտxaO/R>x|0m1|f]?R!_1/yquJϕO*CK:w_G?O?@?g2)ϬṡYL__*_參V~ҟ?OcQ98~F*7ʱwQRjS=u~?M~~G?T|;՟_/?\ʟf*C/<4zNg%IϗfMןxO~#_'?ɿU~k7t<:?aS'?oŌKM壗*O)x{}z H_< ʟxڿY7=o6rZiU OPzvՎ~o_(?'? T(?}) ކo^OqOS)JouP:QZ:둎7֟otѿc{χsK>ПsOӟsϏ?&bڛNIv[u7wf}=yۮӌô5nijg1jyLg7[u7xt哻-}̣|n6w֥yߝyUoӏW<ߡyi~Ly|ſoQJ9D!fwӝߪ쎯K8Onq m.u:D!|g?h!zm=߽gCmN?_=o ~?/{v~ow˴t7?ݟt[=ӿC}o!z;mo1:ߛM7ïys~h^h.5޼>~Z8埯;7gysh~<7CọvݟqVw` }o? >O;ߩ+4߿[.vC1ߛfuk3^}|o;u7?7|n~Nvf\vy>7w?ӮKߩ|ߪӌ}翓4>nioe5Owҟy3u6MSy?M<4wڙ~ߟOw=c~nP+=5{/{g?B.]R۷R~$ӟ~nӬ;f+ld7Ͽh-?_"??L~W_WϿKD~g'_so_%?Rm)O}k7)f=Eҹop$Ͽϖǯ?ϑo}ϒ#Ry~ :_ZiK _P?T9dȓo+?OsO3ԟ!?<ӿ>kϗYʧO?`wiOD7P>הCkʗߦ=.f_T|S={7SMD}_^SF~y*?wW?/??I~\FCJoY4cf=/W{w}7zOvR8/u8OjYc?Rkq=a܎M?GZ?|uz7UF{+])w5.߿F)?SόkoϹꍿϓ?P>/N~g:D)};m|)Y?J~fG~TCJL**)uOjS?:z-_R')fތ/RP~d+?u?P|~?L{:q}?[݌~V{ݷxK:OJ/vX**O+_f/u<6/(տwViտe~_Cg)= [¿G:οHߤcG鲥|]G:]ZwBEk[ߓW~Kߪ鿠5~w??Rۛy\Q;Ht#Oݟ&?,{wz/ҟPO0vk+F[^X~?OGa?wӟ#-}TBQmsy4nw7w3ߠ4N v>7wo^/?i94nC)m cynN~MtCtoe֟C}K.~Cw٥ ӥ4!93ߛ]g.Cp_:1Dqj>zvѿ@;7Cw\Ṇҿn~{ʏ< ëݛo?Nisnj|Z~N~~_M4_,?;[<[c;篣yoUI~|fìY5L޷@)?$Y2̃]Q[|ϗrVT?`7Ȇfz]_X_g?/?q!7?[~G5R_j_r{"S?}߬wn!߿dI?avwR⻣oL/!ZK6{_x~3O|ӿȇϯ=n7yLeP&qDt^~omsm3)cwƾuI툱￷ϓ?Rz+*ӟ/Mf:䗫|VLURfF/P=*?#?wT_>VC:PKy[ +=ϟϿHr?@{*[X~v:/տYJ_SsWu_S| w"?>o{j7џs?{sK=ig:~;߿[o?4N;'~o|ivwzo(nzv0O.^Pϻo|};ϛ٥G.M =Dn~ &zt>ϻ|a~g!~}ߝϻ7zt4m]zts8z3Dߛ>ϻ ;$]7?oм潡q}&xyߝx4.Kwo5ӟ?|[u~v~o~NӴ-٥/ԟau}K?xne1tˌ|OwҟMvۿ. tmNqt:?2?xn{?f{i>gwu ['94>C.?M&?NSϏi8&{ǝ?pm~m=ҿпhi?ϙ4f_oy{_+?w:i~oR?26+Tf>~3d>M^|SjG\~u_,?L~E糿J~y:o߿P{?!'ϿfCӮmP5|)g՟#?tX|TeџoLf>b֓~3W1ÿgAfSt|WV tKLQ://c߿?O~cyi;c_$/#;{qhZ)G\4 CB7Q8t~|f:-c+Tީܼ~Oҽu߿xV:oJ#:/|q/矧~3x(߬t+WFoI097q]ʏodL(^!?ѿK~:S Tn?I75~Z~εDf=_{ߑƗL~ߟߏ~Dwן:ou?GwKNo# ?JfӼgg=|o]sg.J5~vuޔVЧ5݃=;s&<7ѿo.C+xzt4OMy.}a!tǴ3?{o5~C ůۏ_wC4HG}wC ͧy[N;c3ޮ~Av!zm77D߮>y.o>7&0p܃3 ³ۯ.g]Cϡ |߅o_߿m7w?ԟ>~h^:^]zz|tҩ;vCKw=~'iqw7Cr٥[u~ץ;u[O7w7n33O~ݸ|o[u~nOig:~ۼo7u6kVk~8o9П&_?5kӟ#{4s_>yПg>7hs·v4pk;4y%}%?[NXBj^5<'˵ 7i_Ҽ'O|iۚG1&KHf_R|~O'#۬|M>2ya_sN~SvM7ֿL7|ﳿE~So?'Ouߥ_"?x͸vV{?h֏_W~M?_ϒ:f,2iпmY鳥zG?MT)TY:}{f]0v?M~ʏG3O,C3m7Q<~=廟s/ӿAM޿35zD0<(f]ߌE_.?7N?~8п?ϿA*9SJ/o`1t5O^*"1z`tLW%t\F7qfSt6|)V䧑[#f]:/V~O?ߊGQ<翧Q~5wf~/:|z(囿Lڝ?Nq#:OTGߤ|di͔_^5$v|NS_RM|rg6vͬ_㿘v_?|eS\6[:$?{c_g󏑿u>2zV5/ߤ)=~_C~ϿC*>*/U>Y~N:U3F52Y?|zR_qC:?HR4L~ JW)}/RC)wt>^*=?r4r)_7~ o[ Ϭe/qQ5#߬)Tۙu?B~e20~o?W3tsn}ϙSo˿]~J?OS~^h~nP:2s:02\QQ{x:/?>y?S|w~O폓?L~AOfʗP_T?`~)R?7:?yXnߪ}/? >C.>~?3O7mץyp3wأ>Cp+٥W+ oMu~-;w~O]tv8+Ni}߷K7wnig~vA>0mҫgC_G?9$nN/Co7gh^}:^?>] V&0x܄OWy7m.!:v|n}]nM<Ŀ=~ cߛ&>i\C{ʏI?Iioom~v;u6 Sgn.^]|9o?'iwkuj>g:w|[u~vk>7~7i|~ig~VӼgN;w}nW|Mw}yH|Sk{O}?㘼ϯk<ԟgԿ~R~Sio\~.ni^o#k?U~s?W+Y=5_"?'ޚ7|N~6?ѥ4f=_vZ[g.ϿO&??E&O{~/_*?wL}f}ßdmZ{?䧡ןIuf(+M˔/ϏOe9~ϐ?D~_CL~{?O#jf}լcTA*wN?4ۛ{7ϟuo_? sWY$?H/*?g~Ϳc+?3􏗟_ ?L~Aoӟ/?D){{To|?|c3oQ};)_TZeQ<$eJIkGM$m]<鸌x7)?F~VG`ϗ7/P>{|)=Fifee3q{ӟcOӿS=矤C:^#}'Ncc_ ~Q)?zJ&}R={+_&?_'?t}ve_&??i~OVk?mM}tT?sHᯗ/t3՟&??L~*45_t{I&?Foo;_Kzoo')t])]bmg_؁/\z-_?wϳI~>|r^hmrk(} xc❿_ʟ\ik3?4՟ߗ+?'3Կg@>|џҟ|GM?߭/|;ߪk>7~o۴3M;|I~N{>N.>>|?o;Vvw m[uuavv]8qv-~V=3~>{ggv=zv>~u»y?}o?1D!9n&kӮ Pt^w{w7cy>v[$oCu>I!]xC&r&KܥMzwʹ3?+y݆eӿ?toe>7OMw{#}:O.Cp~n;}oh~>]:oPqvӴ7w!<&0o:O?+7}wҿO4:ߪ|n6p.M{oio!~뎷yowOw|;!: 3?oߩϡ~iO0y߭=@=?MNoiosmy?s翇SAǝgsJv_߿2^Ͽh.?ON~4?T~4RϿN#߿Tp?U~MگY?H5?j{l~N3߿ϒb7Mo[cOϿD~篓Ͽ믒©N\mϿIZikf+hp%?Ϲ/?G?"_!?W:ο@ϿL~icVQ>)U տuй=Ӭ:Ͽ3|zW)7v۟.??M~K?N~AʯOCwqG3טS6Y0if/X34oOh oÏş|bf]ɬZyt^?HDZG?ϖϔ;~_Sq#Zh_GyR#΋Y\RniϏߑsN[?W~ʷꃴ=U 3QϕKuJSqWOe?qu4WzzImi?묥4z7q:߬տU_gO#/N~NO6̆ KrV~Kѳm )?W}29ן_'?#wloLPToS?~T~O7M_㏕)!JϿNߓ:SwRzxERso1_Clև}͔^yMt^Oe?R< YJ?C;?+HP2zTA^(_O##Fx!R|?8_mw|FOcki;fH~G1矦|GusxпӿY~^s7Q9O:3%YF^όܛyt HůOo?o :ٟ'??^~f:4uGTOM:s#믓w6*~/տ{K~fT^xL~]:Ưџ:?K평kt|w*=yt^'џ?(?g/~?"?ka+FW&4iK5?#?~zs[~C~F~A/mX&N5vCi?=-9֟ΖO?;[_?'Qo|ϑɺ~3i7}Swmҿ'i7Ln>մ~?yv3_ot>~o/t)N!zuţK.=|Tv ͇}s>|^{3y~;wenCoo_.<)?o.?o|u~n..1D޼t;Vs{=t ?8 ?oK~7}v]8]~cN>gߪ! >g>C_o?[u~vj.ύ|o=47ҧwH.nS~x>7qi?܈8K.}ˏ7{ҟ~~1VvfU2wdj[u>7Ӂi˴P]u7wv[sK'ҟ]48L;v? ߪO76Ϸg?1waI4MU.ޣiOH~?{g޿?Gv@:?5b?O]No'C2i~Ӽ듿U~5/ߍ~/~wP7@~|]OlJ;Y4ͧ/5x?K?kK?fe:oQzӿ {*}~}K/R|V~u?4/+{~_O7c4Z*?<+={?&}X~U~#MI>S> 9VW8 m'3^V/)̺OCIkb[R1toߏN~%G~)Ͽ|]T5zOj|*3ؿH%?_&?N~~JZwύ|ߟϿO?Ou\ϔ?@o2mgWN&;fo?/KwߗSXiE?䧑j!'olV~:S?t~?B~U&ʯ_&?NJwU^NJQ~GrOkU{*~[eơz?R|7IM*~ X?P| _r*&?K?]~^)k= _RTof~/r_Ij3g6_ϿB-T<:W=[~_&?,{=7< uC}=z|M{A>ПCtu~>[v7ԧ;Mk?os&6O= 7D_ow0Ow6_潋WߪwowacAy֟o?x'94߿z.]? \ӮK!8ߩ}]:wg۟[u~݅9$4xt7v;^ywӟS|oʣiK|n6ww[u>7q|? 3~8u~[s?xvSo{Gii7 N{0ߛy?MП&b3T?׿M{^}~O޶ mo=t mF?k/*ss[,4ϗf_&??K_+?ʿI~{sv?iV]Bu菒/տ[7i/ҟfhz⿤YWqW|y_u_ookS_Jk? '*YjwӼ˟Z~Co/uf]qGYZ['?M|W?FO /7}Rg?Kw`iKZ~KowZ?~k]w\ݟ"??^~St{wHüiO~Ioֹ_C8 ^Ǔs?_篣|/("W:?/U~٥|kʗ/}o%? EYHoj)'?,i ^[-*2)]v0)k ߩ^13m7?t^e翠L?Fto gg?@+?^|*f*O~;_GT)>_&?+k?:W??~^!Ӭ=m 2aKY|z?S;h~ZSבB_џx~ WA^ӬGA? ?y]>ӿ'志JNvfj~-'j?-u\f(?_,?S?j/,][mgdozoӵO?MfW~~??mW_(?&ߥR93f=i$HT>1?IY?6C~ot{LTM:.CT햑_f7'?5ſ/~;R|:7ϟ87=4?@5vEt|+J׿v#L~/*eꯓ~mq+m)VJ/m|H{*_*fƞYgsHy[X U~8M~~ҟ~k/2ܿT:Nwt''ڷWRyVJգ?#U}W+=0{W[_S=kTO_?W+C߷ug_OS:7(תM~F5y~#s??YޟO7:޿鏔JYO5~П^տB'SDџӼ sKv~No߭y#iן{wӟy|[_Cifvχ~o[u6Ow]<.Cuٝ.ݟyM?|[ϛҩ v˗] ѥ;o7_xϻӓ7}9|xӸo|_Ǵӟ]uF<q ߽7i8o>]>mF<:Ow\!tt]V{]nCxkhm}!z܄y~+mg~vyA:t>7gtg|CLߪ}ntkIvҟ]?n?]z };Ouc?|nVvMqt2+i~n6t01wa3.?f]|?\~fLt=ϖ'tOѿ>ӟV~M_ﯓ q?gg[Q4Olf $L|&??V?om[)~?C~o'S5?HKO_xSO~@?M~Q:of_ӿ CyJvoT/[:OFPO{*:;7SSΕ?$?A-2?)nﯥ5SJCo_eуF/?)J(2zJ߿䯒J۽3;y5|P:PGEJHGK&??]WL~uoo?7('o~~':?IO~ IϬt[yV~Z'bO=tKA黯_:=7Uw^?Kϕa-)?w'7+"?:?B7Sd֍Wﯡ|ko2]{R$Q:>RTNo?iҟJf?翤ϓL~)o!ǟoӟfFo:n]:IP4dW*vz}RNQ_ϙ~OҟR8[ _S)!ǯ)ߍece캎#U;9Sc_CyON?7?#c״]7(]1zgƎ W|fῗpmi/D?T_ oU՟(?N~*W菓O3N?G/8O_zR}3zxgx@Tq|Gow[no-T_:N\_R5Sӿӟ >T'[t~Io//?1+?'@~jRt>*oǿL2Skims{"?L~z??ԟ5^oS>ֿߟ}D~?y_ӟ;s?[s?;_??{4{GM;1?it?oi>7V?M_4Un<]8]fC sh7agwC?N8oCw!q:tgOC:Ow~{3DMk;^7yoҿ;&~1O7Kw|n3w+iC!wCr[u8wᙟ7o?CL?CHg_> }.{37Npvҟ]:tѡqw5gߪPOioIvMnOONso~vڛ={{~%?!w~Fxo/~i,o皏 9sg Z3'7.o-??7&mQ8!3UsJ?/O_xO*?S~>R/uϧJ/)M_d[5Zt'??V~W:/f4x>_F.~O-?ID_;3O ӎCc_O2\>߬6o{=u՟.??U~i*??_:?$?xwJF~# /̸tR y*W'Q*O{L?DGU}kP}2矤?8)F8o|Gl<3SA?,?_㏒?H!ҟ#?W/W^7t4vuB~AE~_ ~R??՟<֟H>ӟs?;vn{:?Gҟ6ҟڙJN7[u~vd۴3p?xS_C]OVi{}9۴k(?w/=GCCxv]mghݥK!u1VsS޾ {?-݇u莫 ;~Cs]۴ӟU.~r~h^371$7}{~O} }! =4;D[?g7ӟ]8Nh7Ouo˗_}V7 K:w?½~z߃pߪ~C ~CO.]<38-^>C֝C궻-=qt{.];nkҟ4gݥJvK!<~vݿt0Vwҟ]|7ѭ?MJ誏ig!<[OG⥏yҟii;Oߪ󹁻ig9ҟߥcw/ԟU禽4߿43Qig?M3ןLaSi=;G y?߿<՟/z }WRּͯ? 7p~OcAҟL~|f4ER$?5;~wϿo[}5}wCkoCUͻGwϿHa6fmH[_C۽P+??M~wjiլ&Y_?^PK+ZWzgϐ۟ ??H~uIs.?sN{fh{O/q?G_&?ҿ'{,oߛu?O#?Pg~ i#i"H)_NuOR~?M~8ώyl?q3Sҟ&*iy_C0Kt[)Oӿ"i\~Z:O;e7q:?돒FV~V3"[ag%??\gB)_(?/P>(@?Ov4h2|t:?snReGA^*~ 3oxZ???O~: 7c?t{VV90t+Z~[tt~_eq ~MTM&yt^a?R?HtFOtK3ex1J?ATMz[(~['Uw[x|u<ߥ|y*ùџ~Fȅ򯓟ϓ>fѬG*Y?6|~G_'79#oS?c/1RxNT;U:4Sȧ(T_rS=O~-~W9пϟx?O7~?D~X~Z}c 3?5͟vq_p|bo so_uyK<Z/x1v7sr7eѿD?S[Wgx=\=qK:Lk?U-m>5TOߟϿȕ᷿L~~K<#+f:7R/8k?z[ϷsOOv/;?g)*xv:/U*/T^v>_>t5ߦ4;w?Oo/~-?+{? ?NtK?Ndz}6~oKVV~=oJ~Te(ӟ}OJO_ m{'~Lơ=;~_~M~Kv>7??ҟ]o37wfПg7?f~|mo~ϻyPqẉݻݟ{}G{(9|{gϻ}ߟ}K/;? :NAz34o?OC!ڙGm1puA9gP{p ӿӥcA\Ƀynǯ|iL?7M3p~+94ohҟxݿO]..| |n?U{yNyh][u>HNOv&7^oNMO7x? ӴL߳T~Ay? \)?7K+mϟ;?7k䧅Sۙ~mLgSNQ-?(͗A4ƃI~WW4_3{o??7Ϳ},?_X[:9k矦G&8K 'oҟf~C4?ϝH~coNqsoϕ~_)~'H/R$ie8grN7Tfy?B~Iԟ.?#?.ߤ{c_a2|8|:o>t?Z~Wߔ@{9y F=L~?N~OS=P)?>SP:fߦt]T;)ww;嫿Fmt?M~]*7)/篡|{>+p{J;_ʯ? :{_ҿ/׬ꏓ=nʻì=o?H~fʧ/?"_OϿO?wt꯿_C(d4r')Gx'??^~?G)^O知=}TG/W*J7U}/)wt>f4忆rysx=;(?П3[t<~n3'c_~F~cCw;dCC*'_רPz(q:/_/m_ߩ>&?Wo՗o~~ ?,B}(c_+uoRY:?KdM1t~HObKOcrOMA7S{tcKRO#7qeT>^x?M~E/-OV~IӬ>:rqSP>T{+~GyUSTkiJu_ۧ8價{;j{i𗙿a+??Y~Oo~ϿM~+*?mկ?esuwt"ox߿?P~?R~st~;t+?P~|ϿYWg_=+Nw#o2?&T_I*wV:4zgM姉_OWI{/݉D\=X~?Gp?=?ϏLywӟ]o|O4NYig~2}yCn?M]|m;}2wӥWghq u7Mynggg~.2v[Oti}yoϼ=4湉~nNv7Coėq3D.!:vi!и> ~Ow|7u34[O?͛O_J?Cn:Vv5w7·>mߥs;NC[y:wCSnhpn ^ѿ[u>2'5sѷW1OKTq^igSw\v|4x [uo;ߪw]}o4N}3..wsww7q~&6xl.MSyw4ߩk6Mci4M8mڛ w7}k_1s#&wΟ'?Wʗ*?_*COc +J*_iO.OuR<&?I?ϟ8ǟ[:oy(8 FW:/V3q _JzxϏt^>R<0~7Ou8R});ȩHnj7Sَ3f~|F?P?SП.?ƿY~UVY[>wj<7Uy2|q:L<.#ڍ_oRmP>/ӿ%?-W{߬-)K%?OՇԎrKN:HmgcK?='T~8Oϗ'~4:?ןgDG@tTnϱϏ/m~N?;OO;u~8g6翁g7Oi7{?i.S߿ N7>D.}ݟѿ ILCuӾyzڮ3ԾG;?ҟCM.~7gtΛ9gw|y~ӌC6ChK:MlS.Ct}fgMf6ѽ m~[|s| ӌo}!zܖCpLϻw;4qt{3w>|?p{]xUow|nN6VwϻͳiߪӾGwIVwx4y;C }'[ C.ߪ|n~ߩi1?Mhn&^4n͸~'ٍM;ҟMO׌Ӵ:~~7iu}oܼgڏ:44{<B?J߿|?'??@~C~O~_kO>i?3yOGf]Ӭ[f/z'?M -:O?Oߥ5t*?{3TS?R_8?M~Q:@~lOmo~oahП*yrs# x|67L~%ʟ~}Y?!u~ogj5t\t>~K򏒟JM*^/_?O?u?Y~f4tt(g:O/\D?P%ot_8*s*V#OR| #J?IRGϿOiߥt||cL~~;i#wPyt'?W:C?@v*f]gYלcJN]^eF_/?.:*/4ut4zPR_ } _c$ShJKNNJ~|q:͟'?wTKL giJ+?&g4xkJES}^?C:)P?R?KTN~ϓoHR95ZihGONGioQtS?[u?M;?N`? ?A*+]&|c6?:33OLRfMo;_=oOuL?ޟiNuwʗ/|_?IG PDӟt#;[~~K/?K~+,C={?=僿HO?{+Kjm?i?L~ 翤Id?H73L)j{|G?<ҟ{χϷH~?;;Tns7?? wӟ4p߬oi |nߛϻpCtǼ77p3ui.{o=]|t7ҡ zE]w}7?ͣw<7]L{>7ɧi[ |n~=zia]{ݖwon{? _ts]mНݟt7w~~nVs߮|$Cm7=_; w 6 s=04Cj6q ah>zvO޼G?5o!|p7Pݿ>o?%?U~~_? v'{_m|忢1~|NtigfwG(v.ɯi;C+gaW?MJ:~>ҿV~|e:ޏ?WAOqCJiOsG[}Oh폓՟&?9_*?5]Gt~)O_W/1 7ic3fڬw?Hu7y?J)3&?[ϒڮvOloSG?IhY75 ~ߓG`ی&?S3_wP)oC/ҟo3ѿ.|n ?H~ʹ|g?2rC0?+W?pKwCO~J[Ч7os_n.!zD!C1(gzo}nK!<޿ߛ{nޖnvЧ;jk:<7}fC!yOo޺?!~3D!G;.]eP;=|;ߖKJuu nU{8t:w |;޸:O.~CwӼ̏yxu`۴o?0p}Ow|]xCxu=ħn4&n[u˴?ݟٕc}owߪL;'iô3 a644 ߭󽱻ouǷ|ot>??ǝvn{o_~:ym6k~H>П'N)?M+i$K{S )k~ƬC?ҟfԬo=̓??-?:YG0l[A/j?3mgwv4O|ϓOzHh.?Gh~|o3mVk?RI_!?5oh^.U:ߤ0LY)}M~/MD~4 2o<翢t3}п{#yCe&UmZ/*T:|.?͋>? "O߿w翛+?(??V*WӬoGv8ן_4[j3?@~G??]T_Y՟iNwߥ}鸌| _{#טO/ WOu0w_)? -7/f4f(᯿!{YO0ϑ;/t<юi̺֩_&?ϿIV~h^5{7N¿xmJ~_? ܬy=`Vzu?>`?sv]ؕw#߫Q.n)^G(_e>H/v_0);:?z^qR{L~~[~? ҟfk_Gi+?H_,?$_dt~:*?K:L~r[Qϓ֟)??F~OJ?H/_'?ҟ~)O?LҿN~_j ?SgϿHߤ?M۩':?zTSmO:T?n'5/???R[忢ozR>t:ޯUC7S@6Qz}z_uS~o&S;2zͯx:f=R%oϗׁ翢_/=[)V50uxÿ՛o/qt 3*_ kt<?UotiKߪ㛫/q:_g?'?p)}^k_CQ|ϿKRL?TN|mTe_>U~t<?#?^2ro_o'J~!?ϟпOб|~x?ҟo?w/ԟ]<՟߬μg>7+i5~?i7ߪMiҟ|(oѧ;.{{}7f~u|}qv?3oOn=n?Cxt.݆w|[uu|77Ͽ4g]޴ﶻ ~y[u>j~߻w~и.=p3o.nM7o?N.O 4wy|nڙGҟCiH~?y4|ot?ֿML>џ5ԟosmֿпR}_?_ >-yտW?ߤIu_CS+?}ϴ3yE/N[f=Oj=7?iSg_㯕*?Fh>7'M]~@?sK?ZN~6wɿH~A4_Rm'#GJ70?.~o)oQs//.4GhL~=g#:/O?_~c0/~F_[3rot<П'?'ONf*vRR{?ȥ?o_K_:y? #篣5Dys_V~*S*0[_x|[7WymL~:ʷ?=v_t_&Ϭ?f翥)^?7E~7,?J~5>U/t"#:+?R A?>4|G~W5_&?:JFv~D} 7ҿ/y˔*?@GcS~&?&?<_I?u#/@{2{xvIC4!T?5 /O?FP|o)?ۿU~@iQgO73JM@)~st_g7NWj_?)F&?v3mj~/qo{ϙT3HPyt|/翤?Q~(B-:LP8? ?VoyQzHTO&_[~A3~DϿ?c{Aџ-?G/ԟg?7مg6fӼg~;k@V~'ۼg1C^~;u|o>mѿ;nMn~OgoҟCGYj嫡u0g|h]zYnCpnt[ ?G u޼ }ynݿvpw>ͯ>`39_.7=7t>i7<7Mr?] {~O}nlOo\ϻx{Ooik_Oo:?ԝ.Cy|޿A>χ?7M}ݥߪwץOOqvχ }ggwﯡ`feYt o+=:?/f7м+mok|e:ο/m# oq:]|x? y4_hI~V~:Ov:[_";iTzQ4?w&?q^e/?"{fʇ=?33~MsWo֕?H~C??M~yNtqNSR>_)O/K{*wmrm?\~|EUϔ/{?ҿL~.u^-vo477ScҟRϯ̺*??M~KٖP|L~{*/~nSN~:MS^^Q7KR|/ȵڽ?@P5SHiͳU~^&?C[xNuTo}[kcx 6ߤ5ߤ;t\k7N C~Hg_w h?Rv:ym4i?v_R7yo?.JSTuJ?^u^#+Oq}?Ǵ)~vTGs9LH?|y?hc@|?Mw>[sGg?OiO7|nڙ}OvzyO_on}w\Cpwt 8l;}~C4.=ţ;?KDt7D!zu};J^C{1~ӿzP?]Mxw3~znKߛ٥_< s~v:4s=oKygO_ܼw]}vw|wG?7O?9']:vynooC㷏~k~94!:D.yMJߣy:V |m>9ݻNs];Kq3D_:1wߐt:?nߪӌ |>ϴK;wᙿM{oig1[7:w.Lд7:M;XVsKOǼ׍? }K.M=;Og}i|?{{?m~xgs׉L-4}?_/ҟ_ωL ?O/ig%͗4O3/֟=5OO\s[E?#?wʹIf\U+?&ܬA$?+Kzmzo-/[w+55v˿]~Q=T{B*mOPfP!?M݌8۬7ެ Ǭ_niάu|ϿB~;?_&Jꯕf]xC"7Iͬ'>̼YsmTIL(){i?U~G'fSm[џ%?,wY6|hUS22kRr/]JάoqxrwGi篣}ogx#_FOTS54Ok0{T7-ݟ?m|{+_*?fwSZ)m_et`ҟ@)?-<:R}{A&?S23~n֡L~yo/*7\ϿNy7z*{*?:ެq/P|_(w?翤|!j6#F_fIH*?HnKQ:)K>џg#Sի_:;j7$7>O7h)Z_~>)t0z0!?I74H&?5?P:s_=П~F3O)oYG6t5r3Ku~49V:1J?B73o%ϓKH=_CY4L~U:(^уOտߡNj9I_~I?7Ɔ_jՃQzߧ_矡w/o c+?_*/_!2rHEp)(_&?&W/T~xQwvO3} ?'Kյ4t?t|·鏖nN~Εοo)E~I*?qVF?M~O|0R||k7_t0?^~}+WLgN~:cS?HRh{?H{8JU/ׯre_;!?zߢʿ]~'t/p~7/_Sa:wT_:Fbo _ϱČOC+~#ߧUCuҿ+Oϴ:~;kt8ݟ{P~n;߿1~c>7u;9` 8y:wgoK|{u7]nZѧK3wegC4~w+iu34P;罿7>7uNo7<7OwCDqz|gs;GMm`?C?ͣܖ_1wl>go}ޗC9~wMxwKێc3m|ޛ緥ow^p~潛|[.7oƉS]otNionu>7M#ioyy^gןsO>֟#pLLa_~Oi}??HWJ~ڼO~G{s[-v;i|?Oӟ!?ϒf]p??M~'o֩m֙wZOgR~MkOyVWhֿ&hoF4Eyϗ~OoOf=άG3f>5 {jIf}=KۚןT> wC:W(}2iօ~oulYws/OtT[~_OP.诗wORC7St%Sk_~3\{iR~n_A? t>s;\73|i_MޚCu?_(޿o{|9R>վva4zre֟V~vTxT~3йտF~ngП?g_㏕&?_oqtU^,L3zW?o*?t~?O~~[7A?#?"嗿I??>T>-48Tn2M?o|~ז~G~{p 哗G&i:?/ۯ_}_Q|/џ;:/&?%ӿC~ S_wZɿ[~1ן?1R=a_RoOT~?"/ǟ"?;գ?zQygA?/?7hoSaxSx_ҟQ_4՟z%?4y?֟Cw4ןӼϑN?O4ߦ? ܡ5y|;u7Mߪioڙn7|n6ppwҿg//qC?m<]|ztxfHӛvCϴ<7ʿy~343~i7=Cŷ}:}~n?|ūL;>Cօ>Cx-|?o<=|\gpG7Ow> ѿ{;w3Ow7uet[{{Ӽ |;O;~ߖ4OiocwӟJG;#i=iwiD߳4M;(l ϗ/?_"?O_KN~g6&?ϿIL&?;Wϧ?ϿEWz&?Y _3ͧuI~L~Y?eAL(ff|yJ7S?H(]9_k狿N~#ߡe=uӿD~y֧0/W5 {>6t ެ;IJ׿H?N~J?NQ_ϒOϓsO[~ ?O?g)?x:(ϗ:K/q:}}rF(,IoR3"v\:_çwz?uz]Gϕo)])|/_ϟv~7ΏYO~)]S3ft?I[)$LP9JbGeR)Ճf-}3'3f_xHg?R v_?c翤N?o=_tkT*oGOV~CJG#+ɯ3*??M~o?aO?O~q=.2_v/Ng)VG^ګOc'keRziן?x5W ifGiJ@07)?)~f?R|Ou~_GϨ{ ?Rߨo?\6tS~=[)O7/?H6[ai;_+>{J߿CtoϿH)=SV~ZT}')V(_G\ozؙe?S}|?teOQt>V~KYf~'A:O㯡z糿L~ϗ4տ5_?ܬ77J~F~Cowd8!؟_C{*?zJ(?oA?sM73Nf:G+ճW~/o&?ʿU~9U$m|ԟfwy8^=U.~ qKY6#ok~ DTn9s<:JtS/Rk|_?+~LG\kO|??w;Hn=imI~Uow|m |n6?;;{.\wҟFg}om~v7 }s#|9 -]>{~Oq4Jﶻ-n~VFzvgw3=?+q>gwC}oh\]ϡy0wkŌwҟ?ӾK7^]~'[Omg~M߭Ǵ7?~g_?+.~Nħ[mџ; O󾉷Mҿ??]~W~F~4f=/G:?`+=me#_П(??A~:Oџ&??O~OS P _G4_y\)f<3)f?@_~uV~A8/gtoxw"?$o?ϘgIzq{:O4qT={^ϗ L{s|5C{?Kx~?L~1wKK 珓?8vT~O著uH+Ug~m/UvK_MY^}{?L?[ߟP~_|?YY>5v*?)&??M|CGZJ)#/yL~V U8'?џjWV~~6zC)fJ@ҟoO#ww3 8~RIJ}G15kqIFϴߤ|oc/wi诗_ݎ/SyT*C_#"׎\_1wSt~gJ(}{믓߿A~o)W97*zV~y?I?=uϓ+oK)So|@R_S~T_;7TOJ#77c~}?O~~G0oe?M~Eg+T.~;nh%?$_$+w C^pJOqV'*?;短WkD/_]_vHοƟ&?(?3]q_o?E7P(+?:ο\gD~'_^νOj/x~=Uxg&?4?+mR~\hoA|?#|?'9ҟ[Ӽg~L?4ig~vJ&;`io[u;]{|o0O_&sS[My=?CJ6tigtCt>7yK;oy.>n8Oo7󞅧Mt't|n>g>7΃yǭм]>}} =`vݿKi&o˼7Dn;ߦ?ۮom?3Dێ:ߛ.&~ޥw:ⷥ? 翕4 ߭۾;>/~N;gM{|nd~oC߭4q{GLTӟAw=S3|7yO0M>AA \{Лg.?F{4yqn?|[I "Ou:s oV4ogf?忴f}Z~u?kɧg,տ SS3/fORt 7#?+fS;)?Tm/U)FJ_:I[(>#_(>L~79wS)W׺7뵿٬{_*u:eRySt|8 moi}'vO_uTioq*__'?W+~7|-SFo|UJ?^k~W>Q[:Ij~V~yo?|o?v?QZ~yS5?=/տcOVS>5t>H*O2)S:S3S})?uIl#<}KJ=?O~I/䧱H`U9הmTO(g3#bAӬfJNӖ;)^_&?IA:h ;O)= kF/wnW;5|g)~˿^~ @WKMSzEYZ*?f\?R:N*G?oSJ=e'&x?!{u3Ww7yn};W}yӅkߪMܛ}Kߪ;7:@!Ǵ춷t1ݝ.t܄w[wCsh|Cx C!Ӯ?to޿U}:vo7?wy>7s!7}[o7O=zӝǡy!~g^ߪn}>oy[zgh{w4C|zweoigݿM?g.3.<;9>yԿsu?o<:7|o󹡗޶ӟ].ߪc~v6iҟ]]M2wŻ;.w? |o5V{槁kwwhץw|.&N4[>]V4uO;+ivu7{HNvfOn4pߦgix=~}~kֿtڟggT?Gj?=篡ѿ|=mw?ӬAKͻ?W~W|y/7Hi&?ǿ]~B͏S74h?RLojy?4&nֱRmo=5{IӬc3g:_W?h~|ߟϿA_/?TC<}O@*f4=vs[׬uTn;cϑOҟ)_*?_/;o4{LJ\_Cu4;iVW|zӿO^<%gOvQ:{_?R~uSy̸~ߛ|?4vK{*_CS+ͷYlKֿ>)?Oן:?T?\*}d!~8~OyT?ꏗ<H}7J/?E_&on:J*W?#?7@_2&{+#O_? oo)ݬ>7ra?-ZӿU=g#SӬG|?+qy:ߤ|b G*=?EJTNsNV?~%*[o~?IcOc'H/Sz<CQ7߯[U4v!#D~2VgةH޻?M~~9Rce6c<ҟ_~S~^:_޿+ڏ׆tT߿Jߤ?X~Kcs<uv=+ӿW~~%L&?Rן&?)Տi?@Ӆ40џS{)'K =տ?ӟg={sWNҟH_?G:~;;ϑ[@N3՟[o4yL6?CO]<.?.!|[u)_?4.z¿Ӯ>U.^]8Csu;~}e4кJ?t׿{x=;n!:w g};ѿowCw?:g7<OM68vt{Mkg~iw[w7DCn6V>}<o~g7o>7I^w~L.>]ڙ~~+9ԟiow@ߩw]x}ތ=ůOߪ}| |ޥi7DIxǴ3|[ne>:8Coy|R;.} ML\j7ouڛ~Gv Iq:oĿ;OW?cY{ct??ԟ?^??տ}Jۙϟo:}O~W~GS-^j^OSϒg~uҼ_y?oBCU~kmi"iL>ϯfoYVMӬ?]~>qe_Oj7qo7&gV~u It>̺{fӬ?-?\iHe֏_"?7OvϿO5R߿/v7_%?ϹaR|:Y58M/Gì3Y7|(>3Q>{G/ c/ٟ-??O~nPR󶿙_O;?*OH'5O[o'6J?E~JLf?y0s375P+?WIJ_CgySQgʟ?N~oy1?_CTwczP9-2/__Z*O7SGm֯!/:F)?\^S|~_&?S>՟@)kOR=?)޿_TO ?EJ_CEgp%7*?Jt|'u~_CR8!oҟ?r{ϿHT-߿Bb|_&?(o_pa׸/)=)_M4SoϿDRyt<](;)JIcw?U^Y0|L_)'翉R)4`_?Wʿy5ZmH[?~3J/'|Z:F/u?K۬k;? ǯt^;*sRyTL~!JHI M[LS_z̃I@?M~Pz/J?Lyџ~I:&?&勿IoOҿ#dFc #W:?@ה~R}|GD7xL~~ ONTo?@y=^tAJI' ?o"?K~S_?;ӿC~:_~߭?G~O/^J=NEo!ʇOZwoӿ[~{W?H)q\7kѓN?ә~L~O~|-?M8֟gП?O@O8ԟwlHnߩ/ԟ=|ou_CNҟ^7o?p[uڙ >χ:?K!xC2u2w=CyọD^;}n1t뽯ύvV;~.>C|9wg3ӟ7gOny;-}ͣw2?ߴ3o! ]CwnC|[uo=m} }vOӾiW7C}w0O]S67)[~P~(kX_R4iNnfzvK_G6JeP>P=-}Rdas|7O>~ֿ&П;7(92W:_&??gJkA_R4돩mhߤߛ?;߯~OTs7ޟϿL_R4W~\A?R|R7^<'翙_R;oR)@qkϿCk:I_z|(A:HCmW)_&?'7;Da2?_`|M*?)h??Nɯf/?S? ts峿Koe+~⛪|AF|A:oIw07џ&?T.~#uƊoSq?_*}Γ_32zV<|uOgF*iW[#?[~gGn>Tn?V~G'ct{K$/?O~wʗ3?Q?\5՟.?W~6JM{;:A?,oϻ wQ_gϿo&(??R;{DO߿~J~~_O~~3HןN]QN_ig~sKߩg>7?3u~4No8]}w> o|owoϯ?p ҟi>7wh>7szI.~}ut 74.CutV7>qw뎣78.~]vcy§K!cy]|7 W~}g{A}}~ρ34χ?234ʴ|>D޸.ޖowˌҟ7;7ѥ7ooS~}죟{!7q?'igS߭ӮOӟi>9h?GOߖб=s |)?Ok<6B?7i{vm?!~orԟH~v|@~7i֝~7Oio֟~Ok~&?V~u?JA˚;+isMߤߛ?I3쏗eѼOQBq;i_zY'ϑiP7͵λf7~?B~)ut<O?@~]oQ}[94w\ϒoHt\'??Z~ƹ~1k~/2*ET~oYWǔΆ?|ty(>6oGO^O?HȌRQ94/soҟQ}jrF\|Ο!?1#ÿ; ?RzzTV*?M#o|~nK[V:4g+?#w#' HiKBL7P< ;_or߿/c*;?t0{_?S}W_ۿA~34ڛFt\27)O)gч ͺґSR?@m_K'ϿOFlCF(cR~[j?߿m֋wǿџF6O2|j~n]m?L~W S<>ѿ+?F:?ꑿM=j~3C'=tt< i2|xҟ(m[FϨ\Q*|k(^P?uf\ы7%?IRoD:?Jꯕ;o翣p3T*oR׬[zTU_|jTg_S:wG~S_*?G_=Joq?ح?K{|vT{)+ou|z7[?/fiHJW)>΋׌1rO>q͕u\FҿL~E_ϟ-&?]~:U??ߢ[:B?)Kj&g矤vG{O?N~>W=3#'~OGKyT=߭X睿M~}>k+?K埥qo@1d/ѿ1`Oϭ>ӟOC[ϑӟ/ԟ;vΖ~V3՟u6pL?@vwҟyҟkt~vۙu?7? ^+_ҿyMo(wҟ`~wҟ]c>槻w?9Dn?]|nVү;N3-ӣ>]|74ޛ ڙǴ< v|t04_n⿡zxOAygwoCCt! \ozP;wT<^$ҟf}U:U:OP;D kߦKu?T>m/O+ILu&h{oc&H?Q<_)v|߿C_&J/[?: R)_*f}o2|Yg6t\TƞU_PW凿D?7iO:q>ozR_[e+?dOc#mR&?S(D7)L~'ϴ_yA*/ʏY4t4I7SKD_G{JHJ(ݿxN~.ݿG:.G#+_R9Oc̺TN]T)J:Fߥ;]|fJ_C>|y-?#R0vS7zM?Gʯ?O~eߠxt^E~M#?ݿW~&?TJJ(A:SOҿWt\~/R8*? ?Kq:*U~7_[:u|\Пk_]~F~O*_[Οѻi?{sOןk)?,{Gu/mKo?Su>WogϹ_woS*PǞ?#?M߿\~?s<ӟ}ҟST6{t~?C?v=֟;3՟#??ߦ?{[ҟ[߬o?П44NMg5?Tӿy4CynC.u {3Ovn?]t¹i|7/tߥ}Nn_!zuwvӅ7_w~+_ w&94asu6~} ;4i}詏;ߪ}!v? ;O^y]]x.oۏ:1~'9o{?;9ė]| k~n{.\o|{o4?}wҟمoOw?+i-i3{OqgP~AAA//^H+{vok6EQ)?!͇K4ۚI>i矠߷V}3?N~~7/{j~R|ww%?W+[GR~u9|*ܿݟ&?9n{*e797h^Ri>?('YɿT~S5p@~q:?[iBߛj7yHC?#?*/3Yt^H~yzWo+Go~Of7_]+?Y_/ҿS3nmo͸?I?Bwirv?0t2낿ϕ$o)c#k0rn~C'"O'~_GO/DiSzYW:/:O*?'y1[qӬEwkKTQ> )(oܼy5MO:HiRT7Ft)?wTof/?ͬS|O o+ϟo?轙]_/F~-s}NW:G4Z~.ʿ\6AR޼T|'J_&?ܬ{m_xϔf7GO0WS<$埿K_mI_]jg/翣Q{sc)3|RQ|?B~IO3JڕN__&?0mm)3U f/ҟ;xW~7c/ w*ҵ5f죱?H5rx%U w #_㯓K_ՓgY76fֽOmg.?RT*~7yDL~;:@|')/U,>/2zC>=\x[(ߤ_xO_&?~{?1ϿHQGI~KW۬T?7ߦr)oTOᯕ)3gG:_?L~UG?Zi+3OO<N{;(^NWI~oT6/Wx|VF_q7S}*ӕtI6TS:78S?F_7NU"?w?_Rz%j/t|?[Wҟ߿H\cs՗TDoH?/63'ڮT8??PM>/KT?Y~A^x?L~:WJ{k{CN7PQ`/R}{N?h??J}%?zߟg߿myP>ҟ|՟sOn[wҟϏ/ԟTN1?ufҟ[@ ^7} mvUn]8o/w:Ct4x4?Cp_?}z;. mwU.CCt4ߛ_ww>翝o~v߼?I?gg?t5gn? ^ߪwҟNw>ߦ_g4xt6?~Unsg>KMҟimo7wNsGVĕ#9֟Mxٴ?v>7xxԟ&.?55? ZH?~'YW5?y(M{?S*?@f]+w#? 3U4_}&y?]~]w{gϿWϚ?V֟B'|/hx<uB~,T:࿨;7YӬro)_#?M^m?J~>qK?M{?L~/f]ҿM^q_f|of=?ݟ$?џ_#?wIOҿ?S~(?M~|Gh{l?uտȌGůa@(~?JO\q:H~_ϕ7gwg\O?ߤpi?/?)xe?%/Ӵ[)?@vZOCo:?H9o_Q:nsG7S0oE_&?R{?I뛭T>L̃~i?HoS})T~OT(_Ϲ?͔/4{=U:CVoV流G(JI?T?J~v4QT=[?iH7?t>?R|fω[e/q}[}@M?p7@J_(C:y7W_7녾OWJ_Kz/S7|}w~~7}>四>΋}yw{7w}!>y[~5{h]9D~~>>>=ԟO9(~K.>]t7߿xo:?.=߆.o< .LIǴs4wk(l}߼u>7?8 ~]|lӥҟu=wwӟ}ivNv{/u3M.< ߴ3x~tgwvݟS|ҟθ|?MOǴ?~Y\}iA/~Sw#?O'0O篡CH?`?5a#kufW6~_