From 573047cc34b8fb2c8adb73206090393ad87f82bf Mon Sep 17 00:00:00 2001 From: velz Date: Thu, 14 Jun 2018 18:15:07 +0530 Subject: [PATCH] Hall Ticket Issues Fixed : 1185 - Velz --- Apollo/api/application/config/database.php | 9 +- Apollo/api/application/config/routes.php | 4 + .../controllers/Reregister_Controller.php | 42 ++++ .../application/models/Hallticket_model.php | 1 + .../application/models/Reregister_model.php | 89 ++++++++ .../assets/js/controllers/BatchmomentCtrl.js | 167 +++++++++++++- .../js/controllers/generateHallTicketCtrl.js | 215 +++++++++++++++++- .../views/hallticket/hallTicketPDF.html | 12 +- Apollo/assets/views/partials/nav.html | 2 +- .../views/reregistration/promotebatch.html | 6 +- .../images/university/Dri_0Litx9Mo8TkS.jpeg | Bin 0 -> 12758 bytes .../images/university/Dri_RWnpeVXBKMuD.jpeg | Bin 0 -> 7150 bytes .../images/university/Dri_xjR7i1TZw2Ln.jpeg | Bin 0 -> 7150 bytes 13 files changed, 524 insertions(+), 23 deletions(-) create mode 100644 Apollo/images/university/Dri_0Litx9Mo8TkS.jpeg create mode 100644 Apollo/images/university/Dri_RWnpeVXBKMuD.jpeg create mode 100644 Apollo/images/university/Dri_xjR7i1TZw2Ln.jpeg diff --git a/Apollo/api/application/config/database.php b/Apollo/api/application/config/database.php index f8df5be8..2e630305 100755 --- a/Apollo/api/application/config/database.php +++ b/Apollo/api/application/config/database.php @@ -76,9 +76,12 @@ $query_builder = TRUE; $db['default'] = array( 'dsn' => '', 'hostname' => 'apollodec.com', - 'username' => 'apollod4_DEV', - 'password' => 'apollo1234', - 'database' => 'apollod4_ApolloDECDev', + 'username' => 'apollod4_SIT', + 'password' => 'apollosit1234', + 'database' => 'apollod4_ApolloDECNEWSIT', + // 'username' => 'apollod4_DEV', + // 'password' => 'apollo1234', + // 'database' => 'apollod4_ApolloDECDev', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, diff --git a/Apollo/api/application/config/routes.php b/Apollo/api/application/config/routes.php index 05e314d7..a17e6779 100755 --- a/Apollo/api/application/config/routes.php +++ b/Apollo/api/application/config/routes.php @@ -269,6 +269,10 @@ $route['getSheduleDetails'] = 'HallTickets_Controller/getSheduleDetails'; $route['getUniversityCourseId'] = 'HallTickets_Controller/getUniversityCourseId'; $route['saveBatchSchedule'] = 'HallTickets_Controller/SaveAllBatchSchedule'; +///PROMOTE BATCH AND RE REG +$route['getUniversityBatchDetails'] = 'Reregister_Controller/getUniversityBatchDetails'; +$route['getStudentListForPromoteBatch'] = 'Reregister_Controller/getStudentListForPromoteBatch'; + //Reports $route['report_status'] = 'Report/status'; $route['report_filters'] = 'Report/filters'; diff --git a/Apollo/api/application/controllers/Reregister_Controller.php b/Apollo/api/application/controllers/Reregister_Controller.php index 89eac9e0..8c5c9091 100644 --- a/Apollo/api/application/controllers/Reregister_Controller.php +++ b/Apollo/api/application/controllers/Reregister_Controller.php @@ -28,7 +28,49 @@ class Reregister_Controller extends REST_Controller { } + // For Get University and Batch Details for PROMOTE BATCH MODULE + public function getUniversityBatchDetails_post() + { + $branchId = $this->post('branchId'); + $getUnivBatchDetails = $this->Reregister_model->getUniversityBatchDetails($branchId); + if ($getUnivBatchDetails) + { + $getUnivBatchDetails['status'] = REST_Controller::HTTP_OK; + $this->response($getUnivBatchDetails, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code + } + else + { + // Set the response and exit + $this->response([ + 'message' => 'No records found!', + 'status' => REST_Controller::HTTP_NOT_FOUND + ], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code + } + } + //Get student list for promote Batch Listing Screen + public function getStudentListForPromoteBatch_post() + { + $UID = $this->post('university'); + $batch = $this->post('batch'); + $branchId = $this->post('branchId'); + + $res = $this->Reregister_model->getStudentListForPromoteBatchmodal($UID,$batch,$branchId); + if(count($res) > 0) + { + $data['status'] = REST_Controller::HTTP_OK; + $data['studentStatus'] = true; + $data['studentDetails'] = $res; + $this->response($data, REST_Controller::HTTP_OK); + } + else + { + $this->response([ + 'message' => 'Something Went Wrong!', + 'status' => REST_Controller::HTTP_NOT_FOUND + ], REST_Controller::HTTP_NOT_FOUND); + } + } diff --git a/Apollo/api/application/models/Hallticket_model.php b/Apollo/api/application/models/Hallticket_model.php index ab0f3740..fa35a558 100755 --- a/Apollo/api/application/models/Hallticket_model.php +++ b/Apollo/api/application/models/Hallticket_model.php @@ -678,6 +678,7 @@ class Hallticket_model extends CI_Model public function getStudentListForHallTicketmodel($UID,$courseID,$batch,$requestedBy,$branchId) { + $this->db->distinct(); $this->db->select('T_StudentDetails.StudentID,T_StudentDetails.MobileNumber,T_StudentDetails.Firstname,T_StudentDetails.Lastname,T_StudentDetails.EmailID,T_StudentDetails.ProfilePicPath,T_Student_CourseDetails.EnrollmentID'); $this->db->from('T_Students_Fees_Status'); $this->db->join('T_StudentDetails','T_Students_Fees_Status.StudentID=T_StudentDetails.StudentID and T_StudentDetails.IsActive = 1'); diff --git a/Apollo/api/application/models/Reregister_model.php b/Apollo/api/application/models/Reregister_model.php index cba1a571..1af927dc 100644 --- a/Apollo/api/application/models/Reregister_model.php +++ b/Apollo/api/application/models/Reregister_model.php @@ -12,5 +12,94 @@ class Reregister_model extends CI_Model { + public function getUniversityBatchDetails($branchId) + { + $this->db->select('UniversityID,UniversityName'); + $this->db->where('IsActive','1'); + $this->db->where('BranchCode',$branchId); + $this->db->order_by('UniversityID','ASC'); + $unviversityDetails = $this->db->get(UNIVERSITY); + if($unviversityDetails->result()){ + $result_university = array(); + $result_university['universityStatus'] = true; + foreach ($unviversityDetails->result() as $row) + { + + $university_array['universityID'] = $row->UniversityID; + $university_array['universityName'] = $row->UniversityName; + //$university_array['courseDetails']= $this->getCourseDetails($row->UniversityID,$branchId); + $university_array['batchDetails']= $this->getBatchDetails($row->UniversityID,$branchId); + $result_array[]=$university_array; + } + $result_university['univerSityDetails']= $result_array; + //$result_university['centerDetails'] = $this->getCenterDetails($branchId); + } + else { + $result_university['universityStatus'] = false; + $result_university['message'] = "No records found!"; + $result_university['universityID'] = ""; + $result_university['universityName'] = ""; + $result_university['courseDetails']= ""; + } + + + return $result_university; + + } + + public function getBatchDetails($UniversityID,$branchId) + { + $this->db->select("BatchID,BatchCode,BatchName,str_to_date( BatchDate,'%d-%m-%Y') as BD"); + $this->db->from('T_BatchMaster'); + $this->db->where('UniversityID',$UniversityID); + $this->db->where('IsActive',1); + $this->db->where('BranchCode',$branchId); + $this->db->order_by("BD","DESC"); + $res = $this->db->get(); + return $res->result(); + + } + + + + public function getStudentListForPromoteBatchmodal($UID,$batch,$branchId) + { + $this->db->select('T_StudentDetails.StudentID,T_StudentDetails.MobileNumber,T_StudentDetails.Firstname,T_StudentDetails.Lastname,T_StudentDetails.EmailID'); + $this->db->from('T_Students_Fees_Status'); + $this->db->join('T_StudentDetails','T_Students_Fees_Status.StudentID=T_StudentDetails.StudentID and T_StudentDetails.IsActive = 1'); + $this->db->join('T_Course_Fees_Details','T_Students_Fees_Status.CourseID = T_Course_Fees_Details.CourseID and T_Students_Fees_Status.FeesType = T_Course_Fees_Details.ID and T_Course_Fees_Details.ProgramType = "Y001" and T_Course_Fees_Details.FeesType = "F002" and T_StudentDetails.IsActive = 1' ); + $this->db->where('T_Students_Fees_Status.BatchCode',$batch); + $this->db->where('T_Students_Fees_Status.BranchCode',$branchId); + + + $res = $this->db->get(); + $data = $res->result(); + return $data; + // $result_array = array(); + // if(count($data) > 0) + // { + // $result_array = array(); + // $prestu = ""; + // foreach($data as $r) + // { + // if($prestu != $r->StudentID) + // { + // $studetdetails['StudentID'] = $r->StudentID; + // $studetdetails['MobileNumber'] = $r->MobileNumber; + // $studetdetails['Firstname'] = $r->Firstname; + // $studetdetails['Lastname'] = $r->Lastname; + // $studetdetails['EmailID'] = $r->EmailID; + // $studetdetails['ProfilePicPath'] = $r->ProfilePicPath; + // $studetdetails['EnrollmentID'] = $r->EnrollmentID; + // $studetdetails['FeeDetails'] = $this->getFeeSemesterDetails($r->StudentID,$batch,$branchId,$courseID); + // $result_array[] = $studetdetails; + // $prestu = $r->StudentID; + // } + // } + + // } + // return $result_array; + + } } \ No newline at end of file diff --git a/Apollo/assets/js/controllers/BatchmomentCtrl.js b/Apollo/assets/js/controllers/BatchmomentCtrl.js index 31e6d86a..54f27adc 100644 --- a/Apollo/assets/js/controllers/BatchmomentCtrl.js +++ b/Apollo/assets/js/controllers/BatchmomentCtrl.js @@ -1,15 +1,174 @@ 'use strict'; /** - * controllers for ng-table + * This Controller for Promote Students Funcitonality. * Simple table with sorting and filtering on AngularJS */ app.controller('BatchmomentCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state","$modal","$log", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state,$modal,$log) { - $scope.myModel = { + + $scope.myModel = { "universityName":"", - "courseName":"", - "batchName":"" + "batchName":"", + "batchID":"" }; +$scope.isTblShow = false; +$scope.isLoader = false; +$scope.isLoaderShow = false; +$scope.isLoaderTxt = "Loading..."; + + +/* + * init function + * created by velz + * */ + $scope.init = function () { + + var getUniv = { + method: 'POST', + url: apiPoint.url + 'getUniversityBatchDetails/', + headers: { + 'Content-Type': 'application/json' + }, + data: { + requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID, + branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID + } + }; + $http(getUniv).then(function (response) { + if (response.data.status==200 && response.data.universityStatus) { + $scope.university = response.data.univerSityDetails; + + + } else { + swal('University Not Found','','error'); + $scope.university = ""; + + } + }); + } + + + + $scope.getStudentDetails = function () { + + if($scope.myModel.universityName == null || $scope.myModel.universityName == '' || $scope.myModel.universityName == undefined){ + swal('Select University','','warning'); + return false; + } + + if($scope.myModel.batchName == null || $scope.myModel.batchName == '' || $scope.myModel.batchName == undefined){ + swal('Select Batch','','warning'); + return false; + } + + + + $scope.selectedStudentsID = []; + $scope.isLoaderShow = true; + $scope.myModel.all = false; + $scope.isTblShow = false; + var university = $scope.myModel.universityName; + var batch = $scope.myModel.batchName; + var getStudents = { + method: 'POST', + url: apiPoint.url + 'getStudentListForPromoteBatch/', + headers: { + 'Content-Type': 'application/json' + }, + data: { + university: university, + batch:batch, + branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID, + } + }; + $http(getStudents).then(function (response) { + if (response.data.status == 200 && response.data.studentStatus) { + $scope.studentInfo = response.data.studentDetails; + $scope.isLoaderShow = false; + $scope.isTblShow = true; + + + } + else + { + $scope.studentInfo=""; + $scope.isLoaderShow = true; + $scope.isTblShow = false; + $scope.isLoaderTxt = "No Records Found"; + } + },function(error){ + $scope.isLoaderShow = true; + $scope.isTblShow = false; + $scope.isLoaderTxt = "No Records Found"; + + }); + + + } + + + + $scope.selectedStudentsID = []; + $scope.isClick = function(e) + { + + + var ide = e.target; + var val = (ide.checked ? true : false); + var sid = e.target.id; + angular.forEach($scope.studentInfo,function(value,key){ + if(sid == value.StudentID) + { + sid = value; + } + }); + + var pos = $scope.selectedStudentsID.indexOf(sid); + + if(val) + { + if( pos == -1) + { + + $scope.selectedStudentsID.push(sid); + } + + } + else + { + + $scope.selectedStudentsID.splice(pos,1); + } + + + + } + + + + $scope.isCheckAll = function(e) + { + var val = (e.target.checked ? true : false); + + if(val) + { + var len = $scope.studentInfo.length; + var i = 0; + for(i=0;iSEMESTER --> - sem/yearPaper CodeSubject NameDateTimeInvigi.sign + Sem/YearPaper CodeSubject NameDateTimeInvigi.sign @@ -75,7 +75,7 @@ - sem/yearPaper CodeSubject NameDateTimeInvigi.sign + Sem/YearPaper CodeSubject NameDateTimeInvigi.sign @@ -92,7 +92,7 @@ - sem/yearPaper CodeSubject NameDateTimeInvigi.sign + Sem/YearPaper CodeSubject NameDateTimeInvigi.sign @@ -109,7 +109,7 @@ - sem/yearPaper CodeSubject NameDateTimeInvigi.sign + Sem/YearPaper CodeSubject NameDateTimeInvigi.sign @@ -126,7 +126,7 @@ - sem/yearPaper CodeSubject NameDateTimeInvigi.sign + Sem/YearPaper CodeSubject NameDateTimeInvigi.sign @@ -146,7 +146,7 @@ - sem/yearPaper CodeSubject NameDateTimeInvigi.sign + Sem/YearPaper CodeSubject NameDateTimeInvigi.sign diff --git a/Apollo/assets/views/partials/nav.html b/Apollo/assets/views/partials/nav.html index 41a0295b..c55de2c9 100755 --- a/Apollo/assets/views/partials/nav.html +++ b/Apollo/assets/views/partials/nav.html @@ -346,7 +346,7 @@
- +
REREGISTRATION diff --git a/Apollo/assets/views/reregistration/promotebatch.html b/Apollo/assets/views/reregistration/promotebatch.html index aab2a0af..92e4f39e 100644 --- a/Apollo/assets/views/reregistration/promotebatch.html +++ b/Apollo/assets/views/reregistration/promotebatch.html @@ -64,10 +64,10 @@ - --> + -
+
F?Orv6qboh9CnHB?W3lZ%RAk=9z5PR}~wftHB@LJh?A}m85$dS|*18bcHlz=yj9x zZ4HAfmppG;7)Pau*8c9`m`!a|vw@{->FEhEq@O5)Y>#7_@k?k<8n5;|I^w>-frZK@ z)R@T#!dRc*Alg&dvZqlQoh;ZR#LrR)1(`BPQQww(R@-6U0UCD6Ku(O@aJ9ct>fB$g z3FA#f-PxsyIV8G2CIjM#DKeKBq!3e!BM(;HzM|@UbW`tZ;?sW#9b6P~fAB4k^%j|5 zP)}0Q5%VOftvu8uP%#y(ei0AIs}^*v$bph=5y4`JJry@Vvn>84t$L{!n|DBdRn|=e z#hNBfOVQ9eE?qf@>a4(}`Za8?X76IWOXdUMbIM<2_B4F1=c4CzY zyM#2R$S{HtfBujO#MG?0)o}B7qgtuX0&uI^v_@HtV zoS*{pgC(-@vTbCPp(-@K^ufH(rMLPsJQ~I)WLypJA0FrhH>f*Y83}O+=P4$X#=!kg z|B#V;-Bw_+d8*~NR>v(VlJJ?n>ejk5ME1Ps-{8p)wFFQ;@fzuiWf_2Bp#Rbon^lRW(J`m%w=-&+*mAbw z*j0oy_$>e~whY+Ms!eoGV!wD6X+s2MS~WkSA#pJlH6+zvKbYxBl0NGuYWCIRho`PC_vBvQ6X&bD*;^u<3$F72f&!FXWbraV z6b^~8D6EfI;fWHkRi8J9spCH_@o=|Qtcj#$_ttr(xHfwAoNdcJtxJIF9?7j)ut&+qw?v-8myEtU4C89=%RZ zzB3`wKOT5`OpC5F+AHEHD|v$UdBGZ%0qMi-fuVyT<=u`7o`L;{@e&&P$Bh>w)x!+s zkuZP*KZW@8op~Pr9MI*wggGDjq;dHX`7?0`)WBgv2dk$r$79-A#XXV6OWV z#$R&9j*b#LaKUaFQ_}FOz9D=CFMNehU4_~%7;IP&f+$RDCR8hUd|tQCVg{$u7Vq8P zN7we*hcF6JlZ9R8dsex_os#TPi9}K+MT1i1w$163PrMh!JK(cv%(BK0{M5$Ai`Am} zFg%W9|6vh!kLN=>IgwVPKs~p{I%Ztq7``1DV6pNA+;MAq@&ADrL=`U$3M!(N67k`d z(O)CRw^DJKyKp7`?h0RW&-itk$u@9-VX11PG3Z5qT~u0hWP|V#4CfH7Iq_g>P=Om* zhoQVDWyG8PWsx8MqP(&36i!D5JWSl;61O&-g~_s6S;XA4n@;p&hBMTLQbJ8^djPjt z2^obC@(!@ka9&iZYpH8jCfzfJV3e`H11drvORh=hE>$;Xzd?oC$EkZ)ShjiE;y{G{ zwd!z55U}Aw&NnN0}pXVH#PUJ3js#t}Hs7 zxG#|x1^X6A)ugXq0Tm_G5D4C7{vD;7M4WFNcbS2y6vx*FIdG>D7#Q_M3Wp+##uX+6#Lyj+`#V+$$_6n$_p z9?6_nxUaG>P5C^`)i+VC13d{N$_TME20&ZJf+D>Q88^TD4cX_jJx!HGw9M*dD^X3N z@Bz9*M)n?|hz_Z3IvMI113h-Gz=Pg>TJU}}%3EP}SfLB`UYTiKx04ew{u+pN`qh2}TCq%#o& zs)r_BcilVyBsfoOJ6{tJ?T7^I5N$iM*lJ=sbRew2t6ntYw#Zv^l#?BfC%s~gI1Y~} zDs7+kIhAnMT5^|kRRr*z6!J#T3kUaruE(VpT*{sgT4u{DW|kz#NXAyRVrxsmNJx51 zytE?$`|dlloU0L|#=BpPFXhhMILD-VPkg1)x9ovdx^s}$MmpoUqNMX~9+qgo)p{#- zRX^cKvQJQ}QK{n(JZl{z$M|m~W*eH+kS)3;Rh|PAv>1-m-RX5ogwr6JD?UQW87AtK z>G8(v8j~LQ5`g`NX13cbZS>U&D3yzmipgISu?H;dli8p+-L=*uHWev<3;!zzI;$!g+PzRq757SIi8*OO|K9Xa z+!v@UdN+uNw6tgLYU}EE6HO}ku$b)6`L|59OATx$M+_A4`eHLeNHs73=^w84>COXU z1G}b3tg|W-M&ck^ZJrTF26xsztL&d2p^kho@oV-vT`dfp9F zp0u;b7Mhaw58Zg)F~1Urf;6uqV;CM!5s3%5Pi?~~EdsABL&tmcS;_H-6o0y44EV8z)wCKh#Uv`8~ zo1+CZCd%gYwF+mem=ohPH*};V`OG41SJuOakk*i{O5!b>7Bp~VO-bA^72d$T=i9B) zqVRdfmR}>cA`d2#jTf>u``54P=fi_&Yr-zPv4nW|9E^Ua*RysqQ@`SvX-5|b@x;} z7ltE{qP?Wpvsg}nlD#zi9jM9~73YSz(rq=xhJ0Z~oN#hnIOlnx{R8-G#HGgNh!6_} z=p7Kw-c_5Dm}rL_4gOmq7SZ2C@A$*Y%7n^79#vfo<@ z-UL%>B=lB7V*XoU&9kPm%S!u6p>j5{6ZNnL8*ayVOTglzjAGa7Be5Oce^Hn z_?7h`i5kbO|Dkk)4Jt-fPga~iY4&PBlgr|z`k75m+4UgtYQpQVS4PdJ2JVzM`(DBe zC{&#NvY+`#Q&OzGba9W(E)dNvNfIaXGUbW0Ipk>BwdDO`FEo(BWQ{k|!gpc<7tl3* z#x{WNZFQd0s=vRgI>$mSN|o?RY(lzhwBBAVWJOy)5!vGT%Y~Frsyzp0k;0r@t!1}S ztwZclIX}xvJywRfsndW7-;gH^$%st-YBhSd`qBG^f_c57vdCyfWlaJ%jzMMzs2cB7 zn$h-F{oCoVpZ~T?K|kZutV#fG^92;>S55ex+aVL_p%x=nxnJxkI%B@dmg!s{DZVF> zySpk$0=-;sHTb}Skkqf(h*n=~*lCV+m8pto7`7~dR~W=j0Qb=2px=?_oUUya&maaV zfMl|(tx`H<5)htw6naY)R+1Y8+$y=FqR%Xoux_wLzXQ@m8VjCvr;0je$GC?(#i$zB z{GlA_<}v&w(j7X}Vw^c8g4aS@nrlP4yJ)I5O2U;eyJQLTC5l`Nfv9PHjpov0b$pB$ zci&lu%?_!HB+X?4bJZn!OaQ8&IN4BADSrYY)qJr+Qb&@(ETLB!a zV7}*Ktk%j8EQ}5`skW)xASXw-lk;J75hU7CG8cgru2i`vp;6mSPa^kCtU(K4uL$Rh z&FUYy4vB)Jm8jUJdubbGfKl4jOzoX2;G0yY%oW^$ZfjBAc|pyLHgBM=76k^`_8}SH ziASV~`PiJ=qV8X0gh>2h&$FZw+L`(|HaGD&HJz64aSp3zgyoZEkm`mD^BJK(5E;b7 zQ2VGJ3R_!L6IT+fwwVn6-{SLJgf^8XjbYSHzna<}(gKTm#rSslRPxPhsz{x3j#dh4 z_gCofaas&7c?23!4k&DtvePjH=jFWaR$cLKmVen-wfq0&X6twQt20|}73JncDQ*v-vKFv9wemb+Lz&^DlsU0#w(O}YqRRn{22D3}Nsb`*oi29O~ zskpUvjZQ(^gu7UN9s;6p!bZ9ELi&W6$SRKTa*?(8yf8?VwTiZa$B?>1X8mrv8QU38 zvxj+hB#OtaKQh9lzq!heTea79#=q|cC!$~rL`Ir;XB@LnRot$#fX(shdD!TMNzyLs zu@#NP1{7Q~HyXa;3!%=Hl|0W!tv3hkT3&hy<~Ts}FE0^QM9(~sO6`L)k7dLNO}tXYJ~2qnn#jJ)if#Itfe8@uB30@Ldg4x`VovCx7H03K6T#+Ma>K z7x=zq+6;)(0Ob1)76lZ)yWwKqj(!l?WYJM?<52-&1lu9IvJF0#s(G@W#w2+iXVnfZ z{JYp8n9^SYlHQ|+h&B5O{83H$KyEPCAq_3K-ivL{lyn*z^wqBU zE1cBXFjraFx^!%xmik%Hj=9Y$a1sPQfekmfqs;mA?`~P+>)kb;93LEl^n>4a%&HnU ze`02ii;Hj-Q+du^4>oY66!~C_#1Q6wZ1ggkuOdk)RQINi#m|Z39 zm#&?1`9O2DU4A-qw6NV2w1F4fa{KIX00mn4I~DM!?oY`6V#f9?Q`+j)B24_6$p?Dw z3cRkWzs)&ptv_X2bc0>uBO}537C<-QhAogD!?AjnTl%pzt?c9ka94A$wOU?WajRg;VsVCOsl zW)+g!aW^`XwBLW08wO6oE^-94sPstl-b{#HQ3YAfsT(*g#;^WON)E^RV-(wBZ|?vd z4B(^m)v6-O(zQCo?9w3&PJ;Wkdg#URcpCB`cD1z&rV6rhRxxWhMMrX8x`kJHo^uN8{us0tZ(9;ko*&xh0VHNmjo86%0$KmtK~vl@2jHXw8l}& zV-=Ra2gZ|4`JiEi983z8CTkqOs*Fe%cGQIn$mqa`+r~=yhK3Am@eQomOCbhX-O6Ps zez%kNb2^9NNnCM=X==0=>(>RFzzUFAgX{mDUgLZrzQ47>@{0|>zHfPkEtOkFLXid2 z0e~}^$|sjAMQnK-TNzyT%w=E$&GYw{_>Y&nZx5xLy?mT+84bO7p}>U{ip8I^2k&x1+KP|!?5 zwv}4_uavM#)oa+Zm!M0D4UlW|+p5{UX&$hUgra*?)yJ3IMpj!jHrj?VpBayI3A8JC zT}PTA42bX&9nP)mF!4tv2DgG!!YrH28OcY1fqvuhS*5@XY?9*g1Jz^M)rjTq&cD7H z19we-Wn|xV17ZXtuj4SF;|hPH>r;1jtWp1}6E{mL{7!J$P2AfJ0k#Z@SRniiXQXVn zizwBTaX?5+SCPf7n6SsE_!4>Mf-p?h*{&8fse8n(EB@_6JLdYYpm_JOFO-6(dPVV( zWCvYCsaS>ck}-2hiz<_7*tVXot8_hteBb~{42sB@FNJ?MvOAMJDn6cmcKi&7Y&;pV zb=kvrFxj=nkX-PT-fZSl+>$$ojHjzCGc7em^B>v2xn61YI40T&(47 zVTF(mf}cIr5{>lx4mz-PLwCY**y9B_Fh^--{Q?C89RA$TZr15n#w&%`xvR-+L-WI1 z02nNLF9Y7HQ)_(6G9AGAc&iVtZ$wDoG!rIvR63IQ_{rFz!G+vV@xxP53!;qij+xq3 z1ve=Qct7?pnF5j6MI-?T@^=}FP<@@}V1LWKj0DnfPs9)YP<9!(6HtYY$}DBGe0)Di z$rC%>x2MqJRz>;cmAHkwslLHBh#~o66o$v6qP1Q}G!O(uss+cHuUOR~cq;WAHqLNuL- zij(oZ0;H|LebIiKXukj?crqlR&{Avt*y?aad;tNMcs?{LC9zu)d!G@!R8J*;Y-SJ^ z2vgb*{Ax-L{BV6+X7CPx8a%@rjAEQMSS+r5=fLIo97nkN!&b?)sd&=Zz=f2XICxo5 zhAM#Ay7*h{($?ctWs*UJ;!e!67EoQ!Xa5$>t&aYJTE4A&LYTDT4*DtGt*0VE)%qE! zNStIE66#r2{O{xCvKv^vI$64zF*EI5<|lpLR=t3k;Ddue5rGw7?qZ7?x)j9Wye(ev z>|%!|?-u+Eohzc+9-!J{#BXr}*)i3-;Ipz1Qi|a_9JrU|u}v=agd~oxMX}+OKC_pxxr^9hlp#x~-S+wChgTy1la4f{uD1DnU5pSyv6pH8HuB~BnhHtH z#Dp?{Y9ywl7+KH{jSoBu;TvqYSosdoBjLDc_ghNk95S=t0#!SkI@>cxozA1B_gTyR z>UjFrLw}=r-J{LSG5AZP#pDA}<`o>}u24?5JXUMj-Qy+BFZLq;!`HRpJK<{_DL-E}^ zg~WS~k?qd9M3JnBImj)_)1oHn5_!G)(vO&S5)9bdjWk?TH2K#^IdO^kllG!zEjLr| z>1n!bhvq=P7dpkFSkk@s+Hf{2A3__u6NdFiAm3C8wW$ni?H!PTGV~g4y|7T_@u6>+ zBu;l5FB+93vHSVqx&QOAbOv%G^4)=%VE&2Xnk@O@LWRey>$jB?t?qj`7Gk3i zb2#u0IE41Pj8m<3vFdc}ZWN)TWS!y?Z~2}o0wrlO{$rJ-ZE1!kb9XZVlx=8aoC5I#O02sgKYFicF~j+78Lx44qHl&qYB zf&#y&iiQgOK1^Og4oFK&%RtY-0S0r(333a{{eQ>R7XTAAARG`50`dXKn1CQA;8iz( z^V%ah=-TA}4N3rroB~KjMSYEG-2jjQK_D`65QvhFlIr>mkn9>|0xQ<>nXvLb zmi7wgS5MCG7`u7f6lL%26Y;jX=9Yk5%Fo|-gk&_#98<4(*nt4D|3~Cn14u>zxQ3ui z05Y=w6(I*w{2vcMG60B)SBjk3go00v<*`?CzO-q0$M37}0QzeVGA0lcKn1We^`H22 zW1E$RIets16L~=`1r(%iE$tcWM zRopF)3t4ck+PmE(O2H63wIS96YW8o?9)5`ec=h2&<3X*qA`i8nJeQ}j_YN5yoBXcj ztzudP@S??^OOUMITHsijMPKyTho)iDgG5RGYnj3hg?`};gA{t_uV+YErS`4~m3SjD!Z%$9-V#d>||t@|-Rp zlg2*g>E^g@0>7DQv%{aMjn0rV$WqZ2fVHKu@nx(n5{5Ymy|eiz&c0jQflpH9p7tOT z$8F^61-2N&K$=az@n=TQ4LV|=W2-)SUFtPw+p}c0Zd!0k?{tI=iQ|63ld1I1DmCuzm3+ML`c0A;ByacLm6}0w{q;N6j(Gm3TRJ;b*8CHv0rJ@^_5w zF0ovLj9OA7ZKVoj;OINWEE$OmRcmVB7{Sj^k_rDECDe48zCG&Y+s&Hn;qi)FX=~9r z{3YkBRaKh%V_eKf>|0Y`(-K_yOL9`MOn%}`z7#ql!c1cN!5f|nw#3;&qK^!~t65u> z(#|NYwz%X&{$hm9-)Oaq?DkCsv8LGf8uPoX^-=?nhJqKFxn<;i*gkq~(EiCNE<$CW z`SqE6=qP5Z;6t1wd9d$m(=V3oH%h(Wf)KFL^sN3~)CO9N|Inbjc7l{vf8gOTu;fi?jiBQB0Q|wvUMc|Gz&E@ zS`6e`S}UX4Gk8WoRL6m?nRIB|*s|{_B_*_aWxi*hW+wtta8R_QA4>;ln!lk^wB>n; zpzgPVEpukzKMMj-k9$kR*bBE;YlFE zdY0Qc46YJdnNc<&W;So-^MJ9M|A+zc`^aWohbzOX)IC#!SDQaKxb>1_(+dN<0ysyE z4Ogo#x)!rF=&U8G*m?DzoHK@P?cOvQ?_d1SmQG8bCe0bzz2ffZ465ZkJn^dd*<^w6 zL5fMCwD`MIYRJ7`MfDzi?@OWbIdQA}(`P67GCM6wNUCg&Na!-|o;*UrTH~V0B2(i( zNUr9E8X0AMB4(jrQ<*dwTI7ULz3-nvVUrsf0>DSkW(Mos#{{0Qlh zQz8chbTbd<SfA%S(e$IRED10!%E{OzW~A~kPU1F4 z%P~6F{|Wyu5qs6M*Ci1MHC$R|O@jPrVY>b^rQZ)o3f}F;;GrzF9f1xdadGjdJ^3f$ zE6TiMp-y*C89&oao_sgTsWtSfOm%#!9@!{R4QJzO`#YU`&UgiQ;~P5j^)j^}5#mu} zvv)k4S?tq*(3KcP4xckpecad|m%{~r2`-*~BR&P;_N;KtEvlKnUHWXIImIf|>)(Uu z4QB0myUt_Zqq&H{l8ZQSYKKVC0YRr&dwy^#-cmcl1hWUWu3b6H>{N z0gTD+CAdQE33{$@$H20CYv#brB!{>>OTcQ{veeN4D@IyYoVZqk(dA2$hROIBdhT|N z1T`4>E?D2`R<`%=hX^rY2Y3^QhIHqxg&N=>)3SU9rTeHsyG+*DZ7jZi`hi?L?3d^}9@{^t}zE{=8SBL>q|-OJLjZWEarzSt)Jqed^fP=ilrS&>Wg zt$>abU8CrX10XnX!*Fbb!Ir@h2HiLBMr`K!jlk?6+kbe1y12p;FpmUa^{ivEfbz^n zm9+RINw)JP?IrnR1KLJlhM9B43sTk@f|8 zFo6ak*Vr0|5AbJJd?Ssp)qQj$C2c9z!a)1IIHHS_{sn)MH}I_23-9YI>xYagdm~=C zsPRD?ZTydaeIYyBLtZ(ZBa!n@-S5xtllFv41oU700dR9j3Hf+&&P<{~0@sWZE=A=U z=BKe{0OEovRoQmR6^*CX;8%b)-q)#3Zo0mOu1;mOuTlf0>(>0~6~o$cI=Izg;AQd@ zLu$>noSaXGhLj<2Kq$(gM1g+5a+= z7Fw~BsiWFsU`T%lC8_02Epw83?u*L6rPR2PuKcf95e5o6-Z^dBI()WA^6$O=U!G{6 z3x+3aLM9kM!`S>&L9(m^lfk+t(l_6nsRAUWeknIkHTr{p@7QX5+%w1fJy`8$4DScU zaoRcXocc|@#t~!b*coTp;w;P!t>x4FA(x|u-)*%mTJPgzXWgBg_E%6StJtm) zs}zXs?DB%U!l#(ItXuTMhvq4pE$DW|u!j^woiFRYw9KzPvGlLheIClwPQCFi3Lyz_ z@_Hiire}8+;n`&JXJ9dTUbedAufpwt4t}9{*>PPX!(dy1XVL4NN+op~ zM<(5tG2G&G`Ay#=TH=5@kh27t3S0>)vw-#e zSING^f8Qd8CD|dWKta`8G zJIP|z9`{i`?u6VfS4nH}{^Map&x}@)c|h`pSG^|H@r5le9aFNi_4JS95IiSz(xzb?tgtx@ow^4uaL{B1=e-pvzc zMC+vzak`Q99^v>{?bN)t#~TV&r4q!jl-Jg&d+(oC!9bw*GFtcxULBrqb^StDF z4!Qv011pAqGYo&fw|eSFImcobxz)6CUn}CL%q9oC8bvIdj$ogzAN{RX#7go2fom9wPrN=Mz|6d|(JWb(QLS;suKBRy#^FJ zJYwRo4a1`c#E=u=2L~aACP84Hm*ECF{WlDgFD7tex0;_KG+M_r+TY?1W5AesmB-@^ z*)sm!eDo_)F_ksjS+*hHx4*eZ(`did=5hLt#6xQ5vRx@`m}SS;I1`P`Z>R7OO_SH+ zht$-vbLZ`t4!z}vi;ql+0y}DIYCXncXSclsIJ1F$(|$rES?d?2DR>uGpn7VzAe*X+ zNLZ!J{P{q(bKC_cf2%6>A9GqIBe`qDbLfLO-U2+c6ZB@kKO{)tvP+cU{B#r~`4B2e3j$ z>ZxC-D)yn05pd~-^UOAXqnT2r^D8k71BcOv-V~Al&gLh6yfJ|jS#P6 z1jIZgl_P~HsypCElR8f#bnUSzmTqJcGYsGn0sR4L)s^QBFS*)It6FSvxTFb9W5MPm z6M6Nzn67ofFxv5(EBw4_JU-vwO?m^~zhHYOH}_7{c6`fP*E2-{ll=zm#2>H$0x5st z`u?KEojM<%6PMSq$zBvY^u*_%@rPWC9bob%^{TV+&Y!myv?Vva>gBqeNDq0_2SNRP z>(y|R1RDNuJPXla+rk9qqkYaJ9i>B!f(r(E1C1%A;@h!}3LF=+`!{{|d55<6N@IA^ zRV%PUfdP%mmt6_4i)WX6h8AL|qX|t`4^vsHI7avd$E*-bKUY3Tp{7+2&Ih0P&lCQO zO6dxqJ9eToF+QMGXR51uWM;N2Vyb34>^%=a;`^piM~dh`HTL%vx?Dm^4=YKmXL8pA zyu~i@eKa#t(6)R^J|J9;cCfG6F1Gb(Ljz(x;YUj#q~pb3^jAdee$$=g%W~mX-f5;wBB&x#q!#0mS!K_T6<*i+8q!%!rX>XC z=wZv!6IGEk*$(?79A#x&vp=wDFRgs6Wsw=MLmvTGFRVS|%ifm*6E|DNzr^dDC>xYT z#5nk3-))WSe(F9?l^ay+vU`W1_txPDDOFcEM{hZ2CbZED!&Ag(g##mSxvB`i{;7SG z&J+J7GFqZJbKhFxF!^m`?NXsQM`!-cPBEf)1DzfzYNmE|2R$IK90n#<5S^NNJk^F$ z^>xo7nrMt}+nonruy0Fr-z2H|ac9+e%8=C9K_)JD{pc`aCUX+RztIiS&R^ zE+#PhPiPuyLd^RAa~)^592gL|Jx|F9=Q@plgs2^+C&r_r{U12gK zY-fjaM(EBq8_bRLpc1rcb@gDANz;u!ziIxpfiKFL^Xao9YxsHYU$@dsH6r0=bI=$` zaL5eXAKx0&JQvWNC$yA=!W3$uC{ZUs5%ayNmxsAv_Y^9wFM%Y%hLVunmiMJaP8le? z`JjU10qX3egZOV#pEx*e;!}W(%>*@{r!m%69Tf1lQLSIVk0tG!Cp))YNU`ojs3e&_ zyWX3_ITu9s<>$wez-4CVoDQ$HH{v@|0@dJ-3;uW z)YOh~Ah5*9n&zyDlpNj@!j_4y$o&gs!Rf|? zjY`L=i^4c8USH8n55Uzf(V|2_pW|fh84&yGZ5ly@UgW0Yj%zfPn7$vaG!iEm`!VecfMpQa0SuVwXVCTJa%Va@kC$Ebm z(H49r=XHpOx^iJRRdax%VplC~|URY|b7SRZMqFRD@5p6N#> zuiTe7$Kgxe_uHuf$7hTQCM;-rJC&FJb;AzvQha3NV*gFUzLU35`koF|7cBcMci9%| zYDtJQnTX(v4nw7=%TqLDGtN7+55L%=)0o~KNG+{})C@3XHm}Bsx|4s@S`mA&(GDM( zFw~yZx**mcSSI1b#W;L#YMUAIr}*=u3O{`0x?O}#fYayms}jQ47N~13X?N|K8ZL(463E8#Ep_c(Pt zB^lTD_HunyET5IvPn8m?(%`G%J!EDk;^*%UclqHY-4i_s;pj_Dec}7;FihQMb^8XwgKJ$U=iK7&*Yl1yMQ|^p znXbOMEB>jDi?lN?EH2+px!(cn(1_p!kr;EgMDb~#Oi-$ohqvyEyrB4q160{l!Z{s` zTT%!My8b1X09{_z`YJ7VgAD_4Shd$W8PA0N7kq1S8PF|A6~y$o8Rm-N-vUq=5(DTdnNikW%)``ts}{CW#! zGOG;gg#cbQtUd|h6|Kpijh3m@yyiF5{KmpIHbsY z0sa0m8nxJ+)w5hUTops*{uu2?Ve*H4#lX7dpk=`lVykqM-;jOK|HDVBMRpG0RvsJK z4J&z>;v=-I(#;f!th}HUg9xjW1a+Jr#yHUHh;3)DGAMw#0b#RK0eQyCayNssoHr>u zvN5%8KcR2BA)kmLVr)_MvaF+ZT(+K>Mx8O6j5s^I>; zv!_`{A890l&887X{mV93vk3UfnD%{}G%GWRuN-X$;|hbg7z1zen=c(_!obyyQBOvr zGO+EW{|>zF`_z-w!Mak;E5J($OzYoB?_^7-Xh(BI+0bf8+;+OWv0`XO7yIxN;TFa= z%lkIP*hMbn>WP2N%4S*L#JXsqz9EBnOp=A?vTp@qE5NU~5xew}7PFK5?m%f*djJhrEN%f(el zbE`-;Ufee$=X!bQyIFVr9VQCKr(pGb8pBEB~2}o0wrlO{$rJ-ZE1!kb9XZVlx=8aoC5I#O02sgKYFicF~j+78Lx44qHl&qYB zf&#y&iiQgOK1^Og4oFK&%RtY-0S0r(333a{{eQ>R7XTAAARG`50`dXKn1CQA;8iz( z^V%ah=-TA}4N3rroB~KjMSYEG-2jjQK_D`65QvhFlIr>mkn9>|0xQ<>nXvLb zmi7wgS5MCG7`u7f6lL%26Y;jX=9Yk5%Fo|-gk&_#98<4(*nt4D|3~Cn14u>zxQ3ui z05Y=w6(I*w{2vcMG60B)SBjk3go00v<*`?CzO-q0$M37}0QzeVGA0lcKn1We^`H22 zW1E$RIets16L~=`1r(%iE$tcWM zRopF)3t4ck+PmE(O2H63wIS96YW8o?9)5`ec=h2&<3X*qA`i8nJeQ}j_YN5yoBXcj ztzudP@S??^OOUMITHsijMPKyTho)iDgG5RGYnj3hg?`};gA{t_uV+YErS`4~m3SjD!Z%$9-V#d>||t@|-Rp zlg2*g>E^g@0>7DQv%{aMjn0rV$WqZ2fVHKu@nx(n5{5Ymy|eiz&c0jQflpH9p7tOT z$8F^61-2N&K$=az@n=TQ4LV|=W2-)SUFtPw+p}c0Zd!0k?{tI=iQ|63ld1I1DmCuzm3+ML`c0A;ByacLm6}0w{q;N6j(Gm3TRJ;b*8CHv0rJ@^_5w zF0ovLj9OA7ZKVoj;OINWEE$OmRcmVB7{Sj^k_rDECDe48zCG&Y+s&Hn;qi)FX=~9r z{3YkBRaKh%V_eKf>|0Y`(-K_yOL9`MOn%}`z7#ql!c1cN!5f|nw#3;&qK^!~t65u> z(#|NYwz%X&{$hm9-)Oaq?DkCsv8LGf8uPoX^-=?nhJqKFxn<;i*gkq~(EiCNE<$CW z`SqE6=qP5Z;6t1wd9d$m(=V3oH%h(Wf)KFL^sN3~)CO9N|Inbjc7l{vf8gOTu;fi?jiBQB0Q|wvUMc|Gz&E@ zS`6e`S}UX4Gk8WoRL6m?nRIB|*s|{_B_*_aWxi*hW+wtta8R_QA4>;ln!lk^wB>n; zpzgPVEpukzKMMj-k9$kR*bBE;YlFE zdY0Qc46YJdnNc<&W;So-^MJ9M|A+zc`^aWohbzOX)IC#!SDQaKxb>1_(+dN<0ysyE z4Ogo#x)!rF=&U8G*m?DzoHK@P?cOvQ?_d1SmQG8bCe0bzz2ffZ465ZkJn^dd*<^w6 zL5fMCwD`MIYRJ7`MfDzi?@OWbIdQA}(`P67GCM6wNUCg&Na!-|o;*UrTH~V0B2(i( zNUr9E8X0AMB4(jrQ<*dwTI7ULz3-nvVUrsf0>DSkW(Mos#{{0Qlh zQz8chbTbd<SfA%S(e$IRED10!%E{OzW~A~kPU1F4 z%P~6F{|Wyu5qs6M*Ci1MHC$R|O@jPrVY>b^rQZ)o3f}F;;GrzF9f1xdadGjdJ^3f$ zE6TiMp-y*C89&oao_sgTsWtSfOm%#!9@!{R4QJzO`#YU`&UgiQ;~P5j^)j^}5#mu} zvv)k4S?tq*(3KcP4xckpecad|m%{~r2`-*~BR&P;_N;KtEvlKnUHWXIImIf|>)(Uu z4QB0myUt_Zqq&H{l8ZQSYKKVC0YRr&dwy^#-cmcl1hWUWu3b6H>{N z0gTD+CAdQE33{$@$H20CYv#brB!{>>OTcQ{veeN4D@IyYoVZqk(dA2$hROIBdhT|N z1T`4>E?D2`R<`%=hX^rY2Y3^QhIHqxg&N=>)3SU9rTeHsyG+*DZ7jZi`hi?L?3d^}9@{^t}zE{=8SBL>q|-OJLjZWEarzSt)Jqed^fP=ilrS&>Wg zt$>abU8CrX10XnX!*Fbb!Ir@h2HiLBMr`K!jlk?6+kbe1y12p;FpmUa^{ivEfbz^n zm9+RINw)JP?IrnR1KLJlhM9B43sTk@f|8 zFo6ak*Vr0|5AbJJd?Ssp)qQj$C2c9z!a)1IIHHS_{sn)MH}I_23-9YI>xYagdm~=C zsPRD?ZTydaeIYyBLtZ(ZBa!n@-S5xtllFv41oU700dR9j3Hf+&&P<{~0@sWZE=A=U z=BKe{0OEovRoQmR6^*CX;8%b)-q)#3Zo0mOu1;mOuTlf0>(>0~6~o$cI=Izg;AQd@ zLu$>noSaXGhLj<2Kq$(gM1g+5a+= z7Fw~BsiWFsU`T%lC8_02Epw83?u*L6rPR2PuKcf95e5o6-Z^dBI()WA^6$O=U!G{6 z3x+3aLM9kM!`S>&L9(m^lfk+t(l_6nsRAUWeknIkHTr{p@7QX5+%w1fJy`8$4DScU zaoRcXocc|@#t~!b*coTp;w;P!t>x4FA(x|u-)*%mTJPgzXWgBg_E%6StJtm) zs}zXs?DB%U!l#(ItXuTMhvq4pE$DW|u!j^woiFRYw9KzPvGlLheIClwPQCFi3Lyz_ z@_Hiire}8+;n`&JXJ9dTUbedAufpwt4t}9{*>PPX!(dy1XVL4NN+op~ zM<(5tG2G&G`Ay#=TH=5@kh27t3S0>)vw-#e zSING^f8Qd8CD|dWKta`8G zJIP|z9`{i`?u6VfS4nH}{^Map&x}@)c|h`pSG^|H@r5le9aFNi_4JS95IiSz(xzb?tgtx@ow^4uaL{B1=e-pvzc zMC+vzak`Q99^v>{?bN)t#~TV&r4q!jl-Jg&d+(oC!9bw*GFtcxULBrqb^StDF z4!Qv011pAqGYo&fw|eSFImcobxz)6CUn}CL%q9oC8bvIdj$ogzAN{RX#7go2fom9wPrN=Mz|6d|(JWb(QLS;suKBRy#^FJ zJYwRo4a1`c#E=u=2L~aACP84Hm*ECF{WlDgFD7tex0;_KG+M_r+TY?1W5AesmB-@^ z*)sm!eDo_)F_ksjS+*hHx4*eZ(`did=5hLt#6xQ5vRx@`m}SS;I1`P`Z>R7OO_SH+ zht$-vbLZ`t4!z}vi;ql+0y}DIYCXncXSclsIJ1F$(|$rES?d?2DR>uGpn7VzAe*X+ zNLZ!J{P{q(bKC_cf2%6>A9GqIBe`qDbLfLO-U2+c6ZB@kKO{)tvP+cU{B#r~`4B2e3j$ z>ZxC-D)yn05pd~-^UOAXqnT2r^D8k71BcOv-V~Al&gLh6yfJ|jS#P6 z1jIZgl_P~HsypCElR8f#bnUSzmTqJcGYsGn0sR4L)s^QBFS*)It6FSvxTFb9W5MPm z6M6Nzn67ofFxv5(EBw4_JU-vwO?m^~zhHYOH}_7{c6`fP*E2-{ll=zm#2>H$0x5st z`u?KEojM<%6PMSq$zBvY^u*_%@rPWC9bob%^{TV+&Y!myv?Vva>gBqeNDq0_2SNRP z>(y|R1RDNuJPXla+rk9qqkYaJ9i>B!f(r(E1C1%A;@h!}3LF=+`!{{|d55<6N@IA^ zRV%PUfdP%mmt6_4i)WX6h8AL|qX|t`4^vsHI7avd$E*-bKUY3Tp{7+2&Ih0P&lCQO zO6dxqJ9eToF+QMGXR51uWM;N2Vyb34>^%=a;`^piM~dh`HTL%vx?Dm^4=YKmXL8pA zyu~i@eKa#t(6)R^J|J9;cCfG6F1Gb(Ljz(x;YUj#q~pb3^jAdee$$=g%W~mX-f5;wBB&x#q!#0mS!K_T6<*i+8q!%!rX>XC z=wZv!6IGEk*$(?79A#x&vp=wDFRgs6Wsw=MLmvTGFRVS|%ifm*6E|DNzr^dDC>xYT z#5nk3-))WSe(F9?l^ay+vU`W1_txPDDOFcEM{hZ2CbZED!&Ag(g##mSxvB`i{;7SG z&J+J7GFqZJbKhFxF!^m`?NXsQM`!-cPBEf)1DzfzYNmE|2R$IK90n#<5S^NNJk^F$ z^>xo7nrMt}+nonruy0Fr-z2H|ac9+e%8=C9K_)JD{pc`aCUX+RztIiS&R^ zE+#PhPiPuyLd^RAa~)^592gL|Jx|F9=Q@plgs2^+C&r_r{U12gK zY-fjaM(EBq8_bRLpc1rcb@gDANz;u!ziIxpfiKFL^Xao9YxsHYU$@dsH6r0=bI=$` zaL5eXAKx0&JQvWNC$yA=!W3$uC{ZUs5%ayNmxsAv_Y^9wFM%Y%hLVunmiMJaP8le? z`JjU10qX3egZOV#pEx*e;!}W(%>*@{r!m%69Tf1lQLSIVk0tG!Cp))YNU`ojs3e&_ zyWX3_ITu9s<>$wez-4CVoDQ$HH{v@|0@dJ-3;uW z)YOh~Ah5*9n&zyDlpNj@!j_4y$o&gs!Rf|? zjY`L=i^4c8USH8n55Uzf(V|2_pW|fh84&yGZ5ly@UgW0Yj%zfPn7$vaG!iEm`!VecfMpQa0SuVwXVCTJa%Va@kC$Ebm z(H49r=XHpOx^iJRRdax%VplC~|URY|b7SRZMqFRD@5p6N#> zuiTe7$Kgxe_uHuf$7hTQCM;-rJC&FJb;AzvQha3NV*gFUzLU35`koF|7cBcMci9%| zYDtJQnTX(v4nw7=%TqLDGtN7+55L%=)0o~KNG+{})C@3XHm}Bsx|4s@S`mA&(GDM( zFw~yZx**mcSSI1b#W;L#YMUAIr}*=u3O{`0x?O}#fYayms}jQ47N~13X?N|K8ZL(463E8#Ep_c(Pt zB^lTD_HunyET5IvPn8m?(%`G%J!EDk;^*%UclqHY-4i_s;pj_Dec}7;FihQMb^8XwgKJ$U=iK7&*Yl1yMQ|^p znXbOMEB>jDi?lN?EH2+px!(cn(1_p!kr;EgMDb~#Oi-$ohqvyEyrB4q160{l!Z{s` zTT%!My8b1X09{_z`YJ7VgAD_4Shd$W8PA0N7kq1S8PF|A6~y$o8Rm-N-vUq=5(DTdnNikW%)``ts}{CW#! zGOG;gg#cbQtUd|h6|Kpijh3m@yyiF5{KmpIHbsY z0sa0m8nxJ+)w5hUTops*{uu2?Ve*H4#lX7dpk=`lVykqM-;jOK|HDVBMRpG0RvsJK z4J&z>;v=-I(#;f!th}HUg9xjW1a+Jr#yHUHh;3)DGAMw#0b#RK0eQyCayNssoHr>u zvN5%8KcR2BA)kmLVr)_MvaF+ZT(+K>Mx8O6j5s^I>; zv!_`{A890l&887X{mV93vk3UfnD%{}G%GWRuN-X$;|hbg7z1zen=c(_!obyyQBOvr zGO+EW{|>zF`_z-w!Mak;E5J($OzYoB?_^7-Xh(BI+0bf8+;+OWv0`XO7yIxN;TFa= z%lkIP*hMbn>WP2N%4S*L#JXsqz9EBnOp=A?vTp@qE5NU~5xew}7PFK5?m%f*djJhrEN%f(el zbE`-;Ufee$=X!bQyIFVr9VQCKr(pGb8pBEB