From c27b6efe12d1d8279e12207a4c87ff59c88bd16a Mon Sep 17 00:00:00 2001 From: FlightControl Date: Thu, 24 Nov 2016 14:55:07 +0100 Subject: [PATCH] Got mission dispatching working again with SEAD_Task and A2G_Task ... Next is debugging all, and ensuring the scoring and Failed / Abort is working. --- Moose Development/Moose/Core/Base.lua | 2 +- Moose Development/Moose/Core/StateMachine.lua | 33 ++++++++++++------ .../Moose/Tasking/DetectionManager.lua | 8 +++-- Moose Development/Moose/Tasking/Mission.lua | 12 ++++--- Moose Development/Moose/Tasking/Task.lua | 25 ++++++------- Moose Development/Moose/Tasking/Task_SEAD.lua | 6 ++-- .../Moose_Test_Detection_Dispatcher.miz | Bin 40418 -> 40413 bytes 7 files changed, 52 insertions(+), 34 deletions(-) diff --git a/Moose Development/Moose/Core/Base.lua b/Moose Development/Moose/Core/Base.lua index ac045f4ed..86f47f663 100644 --- a/Moose Development/Moose/Core/Base.lua +++ b/Moose Development/Moose/Core/Base.lua @@ -133,7 +133,7 @@ function BASE:_SetDestructor() local proxyMeta = getmetatable(proxy) proxyMeta.__gc = function () - -- env.info("In __gc for " .. Child:GetClassNameAndID() ) + env.info("In __gc for " .. self:GetClassNameAndID() ) if self._Destructor then self:_Destructor() end diff --git a/Moose Development/Moose/Core/StateMachine.lua b/Moose Development/Moose/Core/StateMachine.lua index 9c89f6d7f..caf7492b7 100644 --- a/Moose Development/Moose/Core/StateMachine.lua +++ b/Moose Development/Moose/Core/StateMachine.lua @@ -48,22 +48,22 @@ function STATEMACHINE:New( options ) self.endstates = {} for _, event in pairs(options.events or {}) do - self:E({ "events", event }) + self:T3({ "events", event }) self:_eventmap( self.events, event ) end for name, callback in pairs(options.callbacks or {}) do - self:E("callbacks") + self:T3("callbacks") self[name] = callback end for name, sub in pairs( options.subs or {} ) do - self:E("sub") + self:T3("sub") self:_submap( self.subs, sub, name ) end for name, endstate in pairs( options.endstates or {} ) do - self:E("endstate") + self:T3("endstate") self.endstates[endstate] = endstate end @@ -99,7 +99,7 @@ function STATEMACHINE:AddProcess( From, Event, Process, ReturnEvents ) sub.ReturnEvents = ReturnEvents -- Make the reference table weak. - setmetatable( self.options.subs, { __mode = "v" } ) + -- setmetatable( self.options.subs, { __mode = "v" } ) self.options.subs[Event] = sub self:_submap( self.subs, sub, nil ) @@ -136,7 +136,7 @@ function STATEMACHINE:_eventmap( events, event ) end function STATEMACHINE:_submap( subs, sub, name ) - self:E( { sub = sub, name = name } ) + self:F( { sub = sub, name = name } ) subs[sub.FromParent] = subs[sub.FromParent] or {} subs[sub.FromParent][sub.EventParent] = subs[sub.FromParent][sub.EventParent] or {} @@ -187,7 +187,7 @@ function STATEMACHINE._handler( self, EventName, ... ) -- self:F2( "nextevent = " .. sub.nextevent ) -- self[sub.nextevent]( self ) --end - self:F2( "calling sub: " .. sub.event ) + self:E( "calling sub event: " .. sub.event ) sub.fsm.fsmparent = self sub.fsm.ReturnEvents = sub.ReturnEvents sub.fsm[sub.event]( sub.fsm ) @@ -243,7 +243,7 @@ end function STATEMACHINE:_gosub( ParentFrom, ParentEvent ) local fsmtable = {} if self.subs[ParentFrom] and self.subs[ParentFrom][ParentEvent] then - self:E( { ParentFrom, ParentEvent, self.subs[ParentFrom] } ) + self:E( { ParentFrom, ParentEvent, self.subs[ParentFrom], self.subs[ParentFrom][ParentEvent] } ) return self.subs[ParentFrom][ParentEvent] else return {} @@ -271,7 +271,7 @@ function STATEMACHINE:_isendstate( Current ) end function STATEMACHINE:_add_to_map(map, event) - self:E( { map, event } ) + self:F3( { map, event } ) if type(event.from) == 'string' then map[event.from] = event.to else @@ -279,7 +279,16 @@ function STATEMACHINE:_add_to_map(map, event) map[from] = event.to end end - self:E( { map, event } ) + self:T3( { map, event } ) +end + +function STATEMACHINE:GetState() + return self.current +end + + +function STATEMACHINE:Is( State ) + return self.current == State end function STATEMACHINE:is(state) @@ -288,7 +297,7 @@ end function STATEMACHINE:can(e) local event = self.events[e] - self:E( { self.current, event } ) + self:F3( { self.current, event } ) local to = event and event.map[self.current] or event.map['*'] return to ~= nil, to end @@ -432,11 +441,13 @@ function STATEMACHINE_PROCESS:Assign( Task, ProcessUnit ) end function STATEMACHINE_PROCESS:onenterAssigned( ProcessUnit ) + self:E( "Assign" ) self.Task:Assign() end function STATEMACHINE_PROCESS:onenterSuccess( ProcessUnit ) + self:E( "Success" ) self.Task:Success() end diff --git a/Moose Development/Moose/Tasking/DetectionManager.lua b/Moose Development/Moose/Tasking/DetectionManager.lua index 17aad91d8..9aad97773 100644 --- a/Moose Development/Moose/Tasking/DetectionManager.lua +++ b/Moose Development/Moose/Tasking/DetectionManager.lua @@ -381,6 +381,7 @@ do -- DETECTION_DISPATCHER if Task then if Task:IsStatePlanned() and DetectedArea.Changed == true then + self:E( "Removing Tasking: " .. Task:GetTaskName() ) Mission:RemoveTaskMenu( Task ) Task = Mission:RemoveTask( Task ) end @@ -420,10 +421,11 @@ do -- DETECTION_DISPATCHER if not SEADTask then local TargetSetUnit = self:EvaluateSEAD( DetectedArea ) -- Returns a SetUnit if there are targets to be SEADed... if TargetSetUnit then - SEADTask = Mission:AddTask( TASK_SEAD:New( Mission, self.SetGroup, "SEAD." .. AreaID, TargetSetUnit , DetectedZone ) ):StatePlanned() + SEADTask = Mission:AddTask( TASK_SEAD:New( Mission, self.SetGroup, "SEAD." .. AreaID, TargetSetUnit , DetectedZone ) ) end end if SEADTask and SEADTask:IsStatePlanned() then + self:E( "Planned" ) SEADTask:SetPlannedMenu() TaskMsg[#TaskMsg+1] = " - " .. SEADTask:GetStateString() .. " SEAD " .. AreaID .. " - " .. SEADTask.TargetSetUnit:GetUnitTypesText() end @@ -434,7 +436,7 @@ do -- DETECTION_DISPATCHER if not CASTask then local TargetSetUnit = self:EvaluateCAS( DetectedArea ) -- Returns a SetUnit if there are targets to be SEADed... if TargetSetUnit then - CASTask = Mission:AddTask( TASK_A2G:New( Mission, self.SetGroup, "CAS." .. AreaID, "CAS", TargetSetUnit , DetectedZone, DetectedArea.NearestFAC ) ):StatePlanned() + CASTask = Mission:AddTask( TASK_A2G:New( Mission, self.SetGroup, "CAS." .. AreaID, "CAS", TargetSetUnit , DetectedZone, DetectedArea.NearestFAC ) ) end end if CASTask and CASTask:IsStatePlanned() then @@ -448,7 +450,7 @@ do -- DETECTION_DISPATCHER if not BAITask then local TargetSetUnit = self:EvaluateBAI( DetectedArea, self.CommandCenter:GetCoalition() ) -- Returns a SetUnit if there are targets to be SEADed... if TargetSetUnit then - BAITask = Mission:AddTask( TASK_A2G:New( Mission, self.SetGroup, "BAI." .. AreaID, "BAI", TargetSetUnit , DetectedZone, DetectedArea.NearestFAC ) ):StatePlanned() + BAITask = Mission:AddTask( TASK_A2G:New( Mission, self.SetGroup, "BAI." .. AreaID, "BAI", TargetSetUnit , DetectedZone, DetectedArea.NearestFAC ) ) end end if BAITask and BAITask:IsStatePlanned() then diff --git a/Moose Development/Moose/Tasking/Mission.lua b/Moose Development/Moose/Tasking/Mission.lua index 226a0266a..2d1481a90 100644 --- a/Moose Development/Moose/Tasking/Mission.lua +++ b/Moose Development/Moose/Tasking/Mission.lua @@ -13,7 +13,6 @@ MISSION = { Name = "", MissionStatus = "PENDING", _Clients = {}, - Tasks = {}, TaskMenus = {}, TaskCategoryMenus = {}, TaskTypeMenus = {}, @@ -57,6 +56,9 @@ function MISSION:New( MissionName, MissionPriority, MissionBriefing, MissionCoal self.MissionPriority = MissionPriority self.MissionBriefing = MissionBriefing self.MissionCoalition = MissionCoalition + + self.Tasks = {} + setmetatable( self.Tasks, { __mode = "v" } ) return self end @@ -141,8 +143,7 @@ function MISSION:ClearMissionMenu() end --- Get the TASK identified by the TaskNumber from the Mission. This function is useful in GoalFunctions. --- @param #string TaskIndex is the Index of the @{Task} within the @{Mission}. --- @param #number TaskID is the ID of the @{Task} within the @{Mission}. +-- @param #string TaskName The Name of the @{Task} within the @{Mission}. -- @return Task#TASK_BASE The Task -- @return #nil Returns nil if no task was found. function MISSION:GetTask( TaskName ) @@ -178,6 +179,7 @@ end function MISSION:RemoveTask( Task ) local TaskName = Task:GetTaskName() + self:F( TaskName ) self.Tasks[TaskName] = self.Tasks[TaskName] or { n = 0 } @@ -187,6 +189,8 @@ function MISSION:RemoveTask( Task ) self.Tasks[TaskName] = nil Task = nil + collectgarbage() + return nil end @@ -406,7 +410,7 @@ end function MISSION:GetTasks() self:F() - return self._Tasks + return self.Tasks end diff --git a/Moose Development/Moose/Tasking/Task.lua b/Moose Development/Moose/Tasking/Task.lua index e8de40bd1..b02d35102 100644 --- a/Moose Development/Moose/Tasking/Task.lua +++ b/Moose Development/Moose/Tasking/Task.lua @@ -98,7 +98,7 @@ function TASK_BASE:New( Mission, SetGroupAssign, TaskName, TaskType, TaskCategor self:SetName( TaskName ) self:SetID( Mission:GetNextTaskID( self ) ) -- The Mission orchestrates the task sequences .. - self.TaskBriefing = "You are assigned to the task: " .. self.TaskName .. "." + self.TaskBriefing = "You are invited for the task: " .. self.TaskName .. "." self.FsmTemplate = self.FsmTemplate or STATEMACHINE_PROCESS:New( {} ) self.FsmTemplate:SetTask( self ) @@ -432,6 +432,8 @@ function TASK_BASE.MenuAssignToGroup( MenuParam ) local self = MenuParam.self local TaskGroup = MenuParam.TaskGroup + self:E( "Assigned menu selected") + self:AssignToGroup( TaskGroup ) end @@ -691,7 +693,7 @@ end --- Is the @{Task} status **Success**. -- @param #TASK_BASE self function TASK_BASE:IsStateSuccess() - return self:GetStateString() == "Success" + return self:Is( "Success" ) end --- Sets a @{Task} to status **Failed**. @@ -704,7 +706,7 @@ end --- Is the @{Task} status **Failed**. -- @param #TASK_BASE self function TASK_BASE:IsStateFailed() - return self:GetStateString() == "Failed" + return self:Is( "Failed" ) end --- Sets a @{Task} to status **Planned**. @@ -717,7 +719,7 @@ end --- Is the @{Task} status **Planned**. -- @param #TASK_BASE self function TASK_BASE:IsStatePlanned() - return self:GetStateString() == "Planned" + return self:Is( "Planned" ) end --- Sets a @{Task} to status **Assigned**. @@ -730,7 +732,7 @@ end --- Is the @{Task} status **Assigned**. -- @param #TASK_BASE self function TASK_BASE:IsStateAssigned() - return self:GetStateString() == "Assigned" + return self:Is( "Assigned" ) end --- Sets a @{Task} to status **Hold**. @@ -743,7 +745,7 @@ end --- Is the @{Task} status **Hold**. -- @param #TASK_BASE self function TASK_BASE:IsStateHold() - return self:GetStateString() == "Hold" + return self:Is( "Hold" ) end --- Sets a @{Task} to status **Replanned**. @@ -756,7 +758,7 @@ end --- Is the @{Task} status **Replanned**. -- @param #TASK_BASE self function TASK_BASE:IsStateReplanned() - return self:GetStateString() == "Replanned" + return self:Is( "Replanned" ) end --- Gets the @{Task} status. @@ -812,28 +814,27 @@ end --- StateMachine callback function for a TASK -- @param #TASK_BASE self --- @param StateMachine#STATEMACHINE_TASK Fsm -- @param #string Event -- @param #string From -- @param #string To -- @param Event#EVENTDATA Event -function TASK_BASE:onenterAssigned( Fsm, Event, From, To ) +function TASK_BASE:onenterAssigned( Event, From, To ) self:E("Assigned") + end --- StateMachine callback function for a TASK -- @param #TASK_BASE self --- @param Unit#UNIT TaskUnit --- @param StateMachine#STATEMACHINE_TASK Fsm -- @param #string Event -- @param #string From -- @param #string To -- @param Event#EVENTDATA Event -function TASK_BASE:onenterSuccess( TaskUnit, Fsm, Event, From, To ) +function TASK_BASE:onenterSuccess( Event, From, To ) self:E("Success") + end --- StateMachine callback function for a TASK diff --git a/Moose Development/Moose/Tasking/Task_SEAD.lua b/Moose Development/Moose/Tasking/Task_SEAD.lua index 57fda8f21..bd5aaf225 100644 --- a/Moose Development/Moose/Tasking/Task_SEAD.lua +++ b/Moose Development/Moose/Tasking/Task_SEAD.lua @@ -47,12 +47,12 @@ do -- TASK_SEAD local Fsm = self:GetFsmTemplate() - Fsm:AddProcess( "Planned", "Accept", "Planned", PROCESS_ASSIGN_ACCEPT:New( self.TaskBriefing ), { Assigned = "Route", Rejected = "Eject" } ) + Fsm:AddProcess( "Planned", "Accept", PROCESS_ASSIGN_ACCEPT:New( self.TaskBriefing ), { Assigned = "Route", Rejected = "Eject" } ) Fsm:AddProcess( "Assigned", "Route", PROCESS_ROUTE_ZONE:New( self.TargetZone ), { Arrived = "Update" } ) Fsm:AddAction ( "Rejected", "Eject", "Planned" ) Fsm:AddAction ( "Arrived", "Update", "Updated" ) - Fsm:AddProcess( "Updated", "Account", PROCESS_ACCOUNT_DEADS:New( self.TargetSetUnit, "SEAD" ), { Accounted = "Success" } ) - Fsm:AddProcess( "Updated", "Smoke", PROCESS_SMOKE_TARGETS_ZONE:New( self.TargetSetUnit, self.TargetZone ) ) + Fsm:AddProcess( "*", "Account", PROCESS_ACCOUNT_DEADS:New( self.TargetSetUnit, "SEAD" ), { Accounted = "Success" } ) + Fsm:AddProcess( "*", "Smoke", PROCESS_SMOKE_TARGETS_ZONE:New( self.TargetSetUnit, self.TargetZone ) ) Fsm:AddAction ( "Accounted", "Success", "Success" ) Fsm:AddAction ( "Failed", "Fail", "Failed" ) diff --git a/Moose Test Missions/Moose_Test_Tasking/Moose_Test_Detection_Dispatcher/Moose_Test_Detection_Dispatcher.miz b/Moose Test Missions/Moose_Test_Tasking/Moose_Test_Detection_Dispatcher/Moose_Test_Detection_Dispatcher.miz index 2cb89bdf80f8482e1cfa105175528717f3312231..ce493f85192e3104874d4e2f2515745e2b82c9b8 100644 GIT binary patch delta 25059 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 delta 25014 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 z zRK;m=-W&s52Y~_4(jM#s>nuYUAB2X^JLdJ}c39d$R?Q*H(8zc6^+BvvcUZ zK6r4im5oVTjLDHf9hks|2KIUwvWk+z`!x%43Y4) zU=M)_$Q;4Iuo;qwv$DkJUKLmeZPXbLPO;h1U!n;*Li;d|15S-vF{6KM-^GvoOy^kQ zN%0TBPJFcmgpRZhBuF5ocd%gCK9V|KbXEjr9}Jp9GFRMcsfscd*vi4=7zZf|^tuWD zT`KCgBJ1$QfV`N8@2qJcfdTdO!Xg=4mVE0~&V~uXkr*y2*!YGTRC5K9LivZYMxMJR z_B86Qd=w7TJLSC0DmFqHNjLG}1>rKofe@$P@y1OVNi$9qKDva0SpKh}T`()7Ohi*O zUMOn;r1IE*Km?4CK9Cp<-h&v*8XkKV!V2~+AbBI2J}hDDZm#0AZREk(-SN_2 zKwioPgaGnm?Q{5bB(K}-)*hY7pIjXNTcLG_dGy|AMmT1VPD;KO_fARwBJs5@M5eY) zx&b4mrcY5y&b&+EN>~*4F-peUI->sQs`hHgBD6;@!~A}XV3Y+TZBK#K>0&^_R3qhE ziZ+R?{I!0gC?bU{QXd6cqN)TBWo%l3+?N?HBuZB91rUqu;S6cG?A2s&8ii$!xXwpf z6KI2QzPeaiB|N)XKEE=@YgZpk+JB`LNh_lR)aM-Ix$(4Lw3c9RL|?QHR?z`@yEg_! zy;R7j+Um}gzf%q80S8l&34ml6)(r_?9Y*fyR|_vPyLvV%~dEkYyUNkA)0z4rl z^)k6GRYWvgC5b^SDF+rUuK*4+m9+>WJORo(kcJd37nd`bW;OtIcm3lXODeo31xG9i zRUb7EgK#Z~26|<<7Dg-yP8n;PTr5eKh)XO9diYg5sm~?Oeqs7}l7)|t*hkbSA&wX? z8w#3)4lx(w3Ub%C3&8S0Px@hs?&2Rz<(tPV`^0>l9Ue^Oo?bb0 zYmpbf%{el%gskeg|9VWaTN=SIUv_h-wE>3|SZ~-`864Pw$9a)d0+AIM<}23@a|B(* z*QG?`1zsJBDEXbw7JVb9F_1?R^@L-F8;OcN3%HWF8XboP@~*;1u(!$ct_Wy1!$)Q* zHgb42l;3rpUdah2`%#bwAq9|J9oy1iY0h8kyDkN2uc2xC9oyDwktRP0pf5?GI+pH& zZ3>*MMReA3If9DA-$=VX%aAi0(K4kSJ3P^$_KhIBJ)!oSvn3osWJ#6yc@)M%Bt14o zXqoO+zhDD_Yl81&JaLNXD#x@N^SqEpxuNU0Td1etsV{&j|(6SC>Ut_U|#mLL7kMnoMo zvoaQ)XL5cHq5CnABJi3o=$gb*M{Vc-0^xrR%V;`_=1BB#*0-UB$a8+6zc640xv%%n zn*#`{+jB|8k*M4Aj2bPo7|w1n#vzJBYa(39X5bGBPn?+@YUY00=YL^=1}sT=HpV^& zULVnre}q9G9usQ6EFWs(yPBzpV+TpZX4}N30Njc?^hA`W|JAwy;y?2vEzJL)ba~7w z#6$*6;5FO?w_-vi-=KR8qZq>!mvt)wV{biy@?4AfX504Q%Qu%mvmFTOk<1*lqFXgoJJJe`!!A*)PNpmB^iE@fG|~RC=iM)!7~cxaDz?>mH}~_HjG_!?{`#7@c-IsGxpd_)s(?+~Ia< z7Svw1Sijb`m+jGM(;L`O){9H=5Y{Fz2Qf9AAR2p`I9#qU)}}YoUYs$I*-D=?K`*;) zHhaeIcrQ-Q`PY}M`e4>3fkPNrBomgH1_E)EUYw6o?ukCe8jL)~`ckFQl4kOYYH&(< zCTkG5=wrvssBkH~By5}6&4%A1e3~~yegn{Wyif8r1C`}7A6QO6@xKjjhLPrd6xn=q^g+%C$!bYQrgyO8 zm<)!>pya}pa1^7nXazX)4q(jOTF&$dN!2?zb{>mJ)$>@U6hUNeP50~>WpYh&XKM9t zkYDQ>WokR28<76e@wW*i+LS=m{JukfeL#`E#@wS3O!xSZn=9upn~zkA;R3$9)|oP6 z2^&JkoAulXOC8`K|54>J#b*gJDg1Og)VzaX0u%o`+tY3UBS91cSd-tlA@8Jzc;S(1 z#t)%-%y4tXj2f7=C*iNl*O&i8haqTwI%7@H2$Y;IK!5SGbWgzUQ{_&{Wve{0L*`5X z_t*b`;gI#$2Nv#y7>RIh8C=NnBg<&WLTNB4?z5F88J-W!3ESV0^7G$zt|_JHK42hC=U-Z0 zDpv|Y8hT}EB+rywCV$SA*of2x?p)HO|MQ{DT0YnLCRT+-C$_4RqKhV^U6R)4!iM3Z z9iFcdBiAR4-B+)+TR zCOqHSF+Ul^DiCF)df~h-?-0P=5-RUZBBX!1G8dQM5j=r>qWN*(_3sF=LU!&+*G0&7 zC1e@Z);LuxnXQhtmE@s}1trdo`A|o78Q~!q*VdhAfu3>0B}4Q;*4|x=TmZ-$<|&Q} ze}1aFC_%x`FJUuu!q28f-Bv1W$OcoGXDz`gSRVWKh9#|tpl=}BfUle$c{FEX+8CB8 z;!J8|=s^`~fwc`umVl)}t}H?EF<>c*N{eI54sGIFW?^!M;XxE+d59M+wW@+&_tfW) zoV^L)1vsV_hQlsYZ&Fwy64q=N`y5#oPAAthHPvo&mx0eIA zi|sbx6JT4Fr~WQNJD<9@ZaJC6g!~R9J^V{Gi>y9ZXVe>`@jYt>!y@xxY6oNOlhtil zqOA*V;q7dP=?B3!5pze_*qa3Or{tJ5Lqu3G%A=}~iN#S`erFQhj{#CPA?%dD`W;Zh z@kyvMcKd7MD^7qt=B;vCqK$57)(SK$L5B=*!VNFanIQ9J+D!T8b3U}iI-*@&iZk~> zawJB!^J*+$-M$DC1dHxt<&HMP3F-#(F^efx6_iRIXp!y09wbgVCh-RsO$(~dZR-Y~ zuJv98ELd(Y4dUIP1OU+qT?vv>ga-2=!BzwqsP$f+REu{q1_HiaMc`_}IQdRCc<|9uo7^W_!e?zv$Rp_{ z;4u%2`xh1&je=r|>S3Sjye+NTns_v}bf70U>2`L*^h3hBxGbnsX&Q-2^uIE7SukTTGaCL-xLfg46SEbwL_0>pR^+ zB&1$9#@@d%)AYY(*AMWn)VDaBs5~EY7k9wvnt%4)n2LX~`}UenA$1?Ewtn%^e#zN{ z@X@Y8YKch$Al}@W=}C>Q_0sKFF>1!E0BqW^cHVvL1Y{m;R|Bi4NKMn83V{p3rJPps zus}vd4gIH?ZmROO0Ir?iWOk01msjG<9pZm3>4(}J^>zcesCW+uI|HMndhp%F*Xb@` z7Acs8Z_)*1xbo~gJef%0rVAH#i2mBc6~M(%QIk6Wo5FRT%LH%BAC4mPtsF+!0qK)8>4VQ^x-EgXRw68XPqn~sxa#a`uNnEF zex$L^@W`nu)xg?88v+Wty9w{iFs?UT2svy_YlJ)Iq7&mP3(_iCrj9(Vdp0-1U>^-Z z*5VEzT7$(XjWq~Q(k`r%Vtk)~sc<&J>453LP9X9mx_z`--VvmG23y1G2>MMV!HMFP zoC_vlcZ}JPm6qS(B~(?UbG zWAnx7TAX=A{LgJhETd<=5w3*bFKeP3Yw>;{Zzty8GjA|9Uq3=wIUH2*2s@KwZCC=U z7NF41p_|xd#7l+MHSMMBR!df09~RkHlHU{k3u|YY-dWvis6S}64O};UpIxdMfuKG^N1#TYoSf0fidZ~gf{HG^vJoopp z+7EgD_WA>QR#A;RRzpD(mCKq5YtJas)$L}6(S=%yH!^AZWw=G%YrR{)M%?hZUW7)<%P%-B(mu()L^vs&wI=Q~r zq}gS}J7tK6omYPDFSPURTm zRDSd9u5{8J{C&ds4eGHJL;;|^HX}IhUNFzomt&E)IlP}9?He}l;!EQuQ&8CA-V=P@ zJPGZ&%teOO*+$mJf4Rf>tf>kwXNA^m`qeBUH26*g)dl)mj6Wi&BflL*2%H?c|+8=y_E z%zJ!NyD=n%~As< zP70(hIA*cJrVLHTd6%O^j|dxC$l{(S*)lY4GF2rqdS0^f?5xf97`u$co+76VjF;U( zeZ63;zK$qdd&3f5z7GTCXD;EK5s+4m0l~WV z;Vc6jT{Qi}nfd0IAUTV@$zVB{6(mdcI>A^jaZxzC&^z8~^QlR5mc$$5jHL=p{`T%-;mYO~caxqGIB6~oSV0!|0)yP)*gSn;+0}H6FhP;jkQ77a5)Is+11zFczYqQA z5yJF;JrZ19!A_1KZF$&#Hr;qyqS7)+B(Zbq`|S66W8w!8GZ`&IWX$P+1jE@60O91% zA*gAZl(h#!zJS`SrCZ~&ZSLc=iu&B5V$@?Li&xg(;M}!WLt9)kUmzz%Uc!3VdlMpd z6l&ctCGq+<4>Ts?1!1;p1ob|Jb%vbAqtVA|D*(J&Q4Ns<$qgYUKuriLS*hP(w<%H5xcwE1Rzzd8ec}t3=1JM*-t2P^LNj^ z8{@qmZmM+s#gJ-gEbl@+_c@^C?$WCiYI_~ZF&~m|T9%ElfRpHFHdk)If-m55xw}}4 zTfRRx{)vFXJUV^{>rrQ1?yf*{%K}dLu~)`b>&H96_C?+#W%wqiFipDo(z~rx}{6JeBlTp zP;XHkW_iT7i5!ogNN_N1z>Wh!mweWr8XA3ntWeAZ*+4`jx!FyC!d4HBtcHf;rxH#2 zinSC~6k^e!1pf}vA^f7|Ng^+#CTH=6qBD}pSHh@{21)yTP}3L0;3v{wl`ng)cR6B&psk89FmvQ?}Hgb#dyzRaRNkhx>_ zFAIC|zh;2ks`JJkav;v>ana{69gfiQhh3EY6?q z1b3dB2$_x*lQ_nJ7;S`k)lbN~>(}&w%SNZS^qy7)@vmxqN>#F2p!r%eY~r##2XaVG zX!nfJqza!w%q63b?kjAK?~xAA5v+;kl2+~T*jlb4c1Q75D(spC74L3LFrVy9!KRA1 zh*etH2z1_FqT*nSEuc2_6wB=nQouz_ihN`|2Rf`qi32M3y{|Sf9kMeSA@_icbi{`J z{=u9ZzuhM)t008Y`~vD<&4%r#xCi|VbBd(JnsZtUwAKP61gzDaERJKDSs|4z-NPN_Dd3(?}#bm1PxE| zWsYloh6uf-z@+8b@a9UeA0U9|Oil9A(-*2%R*~6w{u|rRCu`;u2dBe74BXAZ)^e(GE*LSt))@6LySiaQzZO_~A#x(~O7_2{a|oI7c11Vc z`ANlmTdc#h#&c#7d*PJL&r&x;6wy7^i^kipw4$2h*x{fI?lP00>FNjAc9|bE1*7qB ze;v-xa_p4A;LF1T{p z;5p+rTa<`Q_-bW0{ZRydySiP+P*URR)hFAr1& zJR(S1Cgv?YIliI?bP+SA;96&W)|oo^6Sx;=d3S@ceqY;9B7fV?m7RNsU}YWoG-123 zc_7~6o)KNpqqp)&z#Q39pCfUN$O(aOkwV;6It{PoQJPi~yLHiD3$4uh z!S7iS-EpPyYUKqenr0VV@yEuYs3Mp?^7bV0-|jza9O)1tD%cT| z`XXu8({rQf_-O1eNY3$Ul>eA>2sALDx2c+gD#}O{SZ9&sU?Z;8Wk_;RkJd z96=mwKDuA5RtNI6DLo_k_#{|OVD|OMN#!T1M^92`fSwlsHeDj8kV7V`8dCOF$&xN8 zqTMY={_nN;`wuG3`pPALFXa4gTTi@kAOxaSzvN5YGI@$cnt41_o-@Q}!!n%)l}|VG z5uG(Da=Zfdr+p)9wsu8|!!FfD|9$VEqoR64l~uTQ*qz7pk1X(R7xh}*#AY9U#why= zLK{g13=Or4n3oiOi(@y(LfVU_2pSv=qezsE(6@B%s$L9sbk<)$XbeMFST(JFJ>lj2B2{dd>2lP&zFFEfe$sRL`v~8rt=n#o7Kq~B z@`_IldWBnT;;(n;_C;H@qNZM7HonWTZr_Cj&Rs9{8*###7X@iJCXKquI205AaB~3H z&$p}rMrCm0)C~Sl08QW?w6CbAa20NPSkjAy*mc)pbJX~%ps+fU6T_^dZN@CdR7n{E zlhk3qWq?<}FYTBod{F;P{3 z+ld)kU<+QUc5smq!k_dLf{2tW^6Bl1we=+7y02Rzv&<6a9G@d#sxa3bd6g=fB1YQJ7S=bn`ECeTuyx;8! z>!Re0d+=defuiL9u{NcjmC%n#bpWJ3vIb_Q!D9K}{cR;izs+49oeA+H4FHvy$dOQm$@ zT?Lx83~)~n8V$>*FTE;C_4?Q5A|U#iPNsa(l9AX5nbe~BHthKQCxjKJpO=7Fk!{GA zHE(dw*loI{MabS$S&icPcFcJ3@RtsvzKtTE5@3xV{AaZurH!991?;2t61=;)yVhZY@cRn-bDWOwGr})U^VCtf0RZk!|McW zEX9}$Ypk1^(9CR?1zT&VhAnSFCHhA>2COc`**IrPTzDn+p!g6vU2q)`=jpqHsTxOU%`RQBK~L@*5dQZ zOe2r2Q+-h_b#*fYaAlFY_?dqc~UMW zLUOgMu0DZgzh`yb`5L3I!n%h}PhU+Mryxy!7bHH|R|kw!Ac8b2po>%-9-n6vn5yTI z-@jNs1;P9)Z7#X<$Qmnx3$yex#%1^lqsf~7Mc$<&$>Cz5SB^&CZ%LN!^E(z}#F6NS z-|Gbjr|OrHZ~kd0do7eiiX~N$3yfCH3%f&|gDsT*<$UpS%xPlYGV)a15Ztc()OQF6 zZ=nCND1gPmJJDvq-fgnZZZP~FuVe_CA1)eX_MCFqtb&PIb^I?bmyB)S9bNYI{_JQA zU0xYGc9o%74?m=IGSb4HWzIS#9=B&_=$?4a3h{;P7kt}RvlrxS8wt4x)M)O3taQGl z(@3C|*ydkY3*BbJoc2hk$h&OGyUd{j)+47pL>m>?cWtD$*Ltzg8X+gIO*|PU7aOhx z{wu6lETCfIQ}FJGlt2{%N`16wY|4xTKWW3Z(}&eRM9t-%scAYa`UpA;_|c7ol2&RR zHc+eH@x420q&NnO1l=C>hHd+i`cKn?0#4BEXc<)=5Y}_a%Hk|Sgm44rzQBr$HPrTT z2`LWB7Ie4AR)C>E;AO%WQk)G|7LX$p207kGJ>8Q1dIXXC`uAu_IrB?^DcKB}_(UxrV40)QS!G_1E>>at!Y#&Q$(VXwRQZ_S{18}rUM78JowjvjJLtQI66a)9qf zE;$DGn3Vt{0{4jJMe~;i(+|dixEL281*?o?fVhC`g47fR>)?|E6A0rB1rty}M>MxV z=z@i%Nn<>E80Pnlk!iCc!ik`+o;=hFJ#AL+Iy?v3c~Mb(|A~LNKe(G~=1{_io*Bb^ z{KEyvuErBFY$m=(6a0Yvdw`p3jNBqQ??qBDM=GH&9YRW0nc^r%facjB?(>p8j&>S2 zs`m}H{m?-@8`?f-*?(vi6;e1qG~9;|^~c6PNkua)Q~?=rR>X4}_eUrE;{NEL>j%xI zHsHk~1qEuFQuM|Yt_kx-sc8#>9Hq3*u@{s0+_$%%UP-IQ1G=Sh4d35}gC#^GN3Rv4 zAJqMlSxj+>pgK#hWK6L0NfpUDF>E>gT*OXhuI!3miGLy7>d|i#KgHquM>e|WRJl{X zO=zEq*ntp_A=d+7Zsi!;gKjKKJYfs7fj0zT?A%(z`$?7wpR4vM#%5G^ZgH_BhV5v#OW4Ub!trgL@0lkF-4?CG_=Mg~OAXXQOsS{yf>eG{5Kb+M_o& z@t+R=4rtye^*HIp+5-#c*M+zq+y_31ZpxK!bzTVhw*nX!;gV-+evB5K60A=i0CQ&s zW3b?|rokxe&p|*|=)LVz|3ytrrFc90*0F%`qaeV~^YT+q%;WQ-5cPWB@J8P&l7Xm& z348sE4jvP+@uV4B6j9Fu*bFkxdf?VMvYCD{LUtc@3fYSq+T0g5z>SD7D|DlGH!IS+ zJrYeeqCzBDaoPuSe6fkq|9pd6|9LfJlrDT{?6|(EWBUeiTDq~dGjxZ2Y0Txv;29JrbKURN~m+V#plEVYf-K51qnmRM&&=WT(UcU zS#h+kp43gjeWv|ovOp={vSW24i{SSv++y{fmn3 z!sZ*DQ9>^lHGe3uz$;Mc3{M7DAw9zX-ePUKWiV4qmG0g<iur{^6=3bIiag>EXk$}gJjudK`b?Dcj6$e;g zVu0vyVvY+2(0%g<JQ`!f+c;OP;7(P2a6c;!6K?pO{$YLBrYM? z8{!u26LGvuQ&ezt89uogo^7l50L)yF7Fq?pZsLDSr7zG{NCWcL)KWd#Q938}v8t}h zRh@vvE#b4CehBRiHQAVjx7Sx!Ta26iX+4hTj?gS#rPX^nU6j0wN>O#jzv=b@C{jEQ z>QVE{#%~vpsvBg)h5Z`S5F$bS8XP=SFu0)bl;(PodG{;6#_HJv9#O-=vtTovoF4v! z;jWp8u5pDdLrM1y<=;B}AOG{9G@?byX&M5=^}m9k{ce=hs@xE?WXp?HNa?5K3^8ih z?$v7b8safsdQsPD(h;>EQ|>T-k2SOjDfJ*rCm^fW8DDqs<~(z2PRS+M%i$wxU&f0B zC%rpK$RLV^$2UwqD%+_2s@S?<_X)|28SlHAv}*E66AVt&x{W#gLqRhk^drIdY!(GdrU<5pSI33sL7~n*D6h#^bVpRAYecs^d_hv9f8oLO0P<<0i;(o^b!yV zy#%Quy-J7BL3#}x=_T+zyzh5r&YU@!$@3>One4sSzSniHUGk5rJ;~dOpec}pUL96~ z3B(a=DPg=0-3q|LiP)X`xH9#-4F|_BiB{$jNq|i8C3oRHlskwuZzEyss`z=hDwKZH z#uYWJ@S3CaQ`WbZ+{yu11qQx>3%BqJB}8-oX3Ke@*2UVf?LcnWf{>}vAqb?hFQ;r- z22T++O!DIJNjl&Tav6mYn=gqF@kNIm(z=V!OOcDL-8dHt zcTtd5p2xF$wEj@a_NBa7(!|_668ecxi039r#&_k#LFvlB&#aIJ>ZCzL7%IXg>P6 zL7-dkPm6#Q{lT%27@GEAH4{2hW)5e{%$T{U*iHBB=J4BCo!TKG-dOEG<9(@&!(doJ%j#1EIAt^weO{! z?J#TsD>%9@UfsoW6wbld775CmZaxyklVGpsz^?Mgk^WxK@szcz`vYhjU+i{JIx#b2 zH^Fr5@$$>TlpoF(l-7H$`m`kt8Xm{^hmfV>`>N%n1Xw;u#oyIruE`rVBG`HOF;u&7 zZ2|Rvl)K0d(0Q#}4k`Wh?W8MWT0-~G={K2{+itWDgH4A!JQDC{BSr*VOFKLE4sZD{ z94w{!*tdUrFyx`&Jp2g8Q?V+pOy2HM^C-Hl->VIh z>;Z_^Bcdnq1hldtYwp8P8$U)&QV{7S@2(3=f8h`4$fAMd=;?=U!tib8D!X`xUvJLq z7U+rdOzYe7@NAB4~6wUK*14_7;KZA56|u zpW+Do6r{KR{ffQ?gp(SLdzL{<9AFPIN#vp@1{7Q>Rt{LoiMdMh@gIRIG`G zQZZL8YHF{Y1l#>#Ahujg^^v7-@Gt}4>lMA%Cz3T1AoqHE#TrZ*JZx>9NfCn!#YE$F z3wY;Qb=)3eVLevN8nzCPp>Egy*7Fvy+qw6Z5k1yGNF$Y0)N%qV=SO6G9_lf!KRzWj zlg>jDZTp@3o&LO+s171PKDzxx!$XZ%*gDhP+#FjPbR$t8Ww|hke2r&&Z4|OCLwO_k zM^WBzG{dKLvP8JJbIbnQF*h}IT3sosJR2tfH>%v)S(%7mf(&H79hp!e=##f{6-z%dlWEHa*=peQh*7 zq&tK#l8`G}=s`;vN~1pS$YJMytF;1OG-@4`^E1MJ{&Jgkjg(dV&;A$fgqfosa(_QQ zqds0{6UYkeq)Y2@!ioeG!3%CGjD`YKg+O-&T5-fb*b;5zPfg<&LO+%ghqqkylXD5t8wKiP1836Du_d|nCZ$MC{o(T z?I%-4y2uy*#o4`zjbH8NvsKY66jwXPQ*jW=@UXp;VooHgt>?J-m}9vcR*?+S zd+J;2=n-QuFb}N_91z@3@K36h&YAY@QOt6{B-{O+5rW&EvZNN?)Iu|*EpO9@^naO& zzy)J17<2>!SO&%iwk$9!*2mY3Wum&~=TO0$4}^AZ_tU|4%|kb$R~M`@)&>`5zLSDd z+Jwe#eG%*1&!W|kG}>MM#S~gAt5tlRKT2BTE`DM#e7;}lnR7xA_2gUPncB2|E9ZH% zQmSn#z0JPK zGor1xeY!bzkT-AT2JHpqr&n_d)e+7)-0N)FyNcT#Vt#SNG7xpyB@})naa})kQJ(pj z8CF8x<)w^>7dS8Z&RMCgL8_^%NC%re9KRSxAA7s{3)02rTVal(($M49mk8;)#>O!X zJ_m^}3DB`3Y(-P)wodc92@PI`iI(LJmiHR|O^vBWL__SON5$y1%~MYUtXJf z+evvICaQwLSK%yV_RzU9PL%`m(M9t1diISHbjj-+mpe>}F8<$lHA}|%=D(#nBggCA zJ35|Ci~}_KTqUtO$nUlxd6WV^O=(TGg`v>`$YF-SO^<~*VN?`)!xSnZ8FPke-PiB! zGoiTYqRU1Zyt}rV<>pOUEg8{ZCEjThj>a9~BrY|F`O&Z0t?zYTD<}=ToWiyXX5(^z zemlcEWKY|+<4-;2twJ`OTsz;Piw7dY)13oEABVbv^T3c<#99{ ztMOhYO^%K(O*_97z0J-S+xiu<-*pnSPg}FWK!SdOamqoXH{-ZLZkp{y0bYI7DJVtg z12MQm1q^MH%rbmvT&<-nSu1O87qb}e&C|BOz4XttiO5YpZYn)!T!Zx`;ya}stp}Di z9d`hvs~V|z!%NfLZH(Ftftx6XC?Khe%urX|YbKW$Lx<0$ORC3YLKMy&-;=@SpVc2Q zX(b0c5vwe;?svf98Ml6(GdQz3iF#0^>Q<*^Mn&PpOag07f5|z%0a+SKB{@UzY{d2i zJcq4nT}Z>8W0HaFL>zy*x!95r+&8!Qzz!dRT+7%Lk_zRU#Ed;uF8oO2i=vh{MREeC zdyufX;)9_j{%Ff>2u;~7q0y33o~rdst-0Lrrr*QrL!z_OnRxa6(-=pNODOZZ-zB|b zz6ReoOVguy)XZW|cqy#Uman(Yj&HZURrH5Iy28Xknp@Lv8_S){zsMW=)F$eQG-z=P zA<~%34^yQ4qCK7irztA%5;Lh|=3TD7EaY*lnBJZ}GXc$e4&wQJ;C;94N%d;XHkfC( zw6G`5o-ZT9=!F1xRrAlz`3tD^=QsbfjW-M0aV_jw)uxz70OO> zH0{MB7dDpAO~;gvoYM*PnAMW zjs~NEm!2pViz6MUkE32xFBL}uM?1COd=zV-HR=*CNxU>g;%gHqX(>|RbA2^e#vBLG z9rF&}`V{1&jfOyswk0&_8frfG6hBkj6mqLhv_`H#@DZIdP+ycZvzn7XLyY;Cbzg}( z$xLN69@Q!>L&;j`15(FQAlft#ZujL(`3bZM3=9>Sg?UF_i!co_``c%eRB6d2C?VNt zgHUCrhiB+%!^$+IJ9BxPU(YXYN35ape7OAulYnUy0FBV$=E+Tz*-U#dZrB^391BczSzMxD3sb9GLWwK6W2@P92gC*6%>g zC+%Zl`ube$hEH0`S0IceJcKIZ77>Ck9~-5U4CNVL(in%1rnP#CG^9S_k;{}OQL7$P z=N@$qD}@jrJ05~krPW}cub~6rO46FyE}p0ZOwKbFHjFbZGl$;a{;F`uxCWtMNl^8B z4t@vaXedwlm9X$^@$L3(6rl=;fIZ*2G6>{sGX!$Hl%MRe?M>$couFFEh6fEe#1KCY z_TDQ&p7{n^sD}IqHsA2ejAn;@gF`~-=|WkBVwN?%XYQ-3b>%FC*;u~+*IXa?RKPRw z^*24mEXo=fM+WAd5?jSNHg_oJ3q-WT!TR{~X{cS9)5*07t$kaod1%4ORZNp-LxGIr>k5CjgLL|wbATx{uTQdi!UW1fR({9 zNOfQ!!qytWZT*^Ui>Qt4>9C1!gRU}S4o|MNyoKJ05 z{Cx#aN^NeB?O}2G2!bNRHkFH_tly65i9sB`5p~Y}+x5jG;8T;EZS5fs!!?Z-Q)v0a z`kc`IjG=#MRYy1CN2NbGqYa0%Q8g!?u96suOMXUUn^c)!eNX?k%~O4?VZ74Wu*!)V zMGrV_r0$)uQ7@gED!iHLe7BoDC9B9%C?1d~d`RfQn;M)S@9N{mx0UJ0VqPW(vpK~B zQE34gT(nwt6nBNa4b+^ICnqO+o!=uOywnmRu>HMFauQojX6iIDvZA-|cwV zHwF87d-x>O~21>o=wK1Hy z{@#lnBxg9sPNd@O|J3j`zhB-{UKr|HUzSFhL&cx0%)Zs}Om!8NU>0a%jHjRL8RBpV-oe zN(@LX$hSvt5(SZj!qyCL^1+k?dsf~P()}V>eT`%V%bl)2OvuwTWsLI*KWaSIaQ1PN zoB&(@?qK<=4~lrFkSRx!!t_!mIXXzNl{(4YvGTE}P7eBHGcFg^zk71hnW=A^3v?39 z;I5OL5gfzm2T+_uVX9E_y;^Ct?wnOQmsC&J9)e#Zot7tX}L;(W2|^#h^LKiJadgq{5cDuGsute^4TPXIJAL7jsiK~;2X zb4K8-ot%#yRhqNpd0+s&7A>4EcIdf}n`R=2e1kAP%oFH73F*o=1Nfp_oeYL*J#)~k ze%?x(=donQhpEw*EFXP`1A?Hs1ax1Q0^*k_bQ7^VaFjO1!Az8o8ND6TPR_0h1?RA+SI?)@xWM!2`Ze456!CxZ& z!8iW6rHCwjUdi&PQ^;8NsOFzrL)%%r*bf_F1R;k@h(aAJ%9Y=0+n!%lf5=HiD}xoA zfsXpGabLdpe8?%uH|u0w z_ymBP0RV1%{L`?D4iB=+H)2|N!knQ_I|t0eI>Wy>xiX-U(WH+VXr7D zzs~tJ(iffzz}Jp?W^`B`CAH>dknWcV3=@W$a8gVjou;pT}qjFnW zZZ&y7QWDuwWgXuk8ft6H>D&s znR`JXAn~=L9q{@CxRRWwesDcUgpPGG{+3xXbrkz**f|)~WlTh}V0Po4#{Ybc3bThd zDs#IktCs(>7ZH&3fh>MrSGXXyYuF>=t?6RqeWx%z+HODaEtS-5a;N3<)w2@+sKm&E z4eAmYZY$@BmiRiGSBAG->*OJUwo2)6yqW*+aq+ZBm}D3Y^xk!5x$0=}2M}B7OMKzy zTxJ?#=f0xJ?CWP>&gVrZX9Me$kE(v+t2<);OS1~F z192JUY$_;t&L?2DsguMoZkdk-AmaFqu6*K+AhBDt&Bx8CHdEh=`Qd#tlLSoGStuEAwwDN<%af+J#I z7duw9?zx#0C>Q3oaPx*84t{p?hvrxz*#H?717r}dmp$*zer0a|vuoPIaE0G56)sh^ zm-RPr+Ds_+I$i>^|>B03rv_xc^vFWiy+%)_q737bO2m-qhO{hgZaFFLLuiM z{(C{TEz@&pfYfzm?ktVMmv=YmmK9i+dmKbUtpuhKy$Ag@UMsLE^+^pnd({xh%I_`W zTsJKc1NzOy5YcFiPeZ$bd9j9zHLt62c%Kz z8!Ow*k2SH-lcHZ{pLy7hE2!dYW|a6!lQ4(-sqT)&rc{odli|uXY=P={E7DG`p;0b3 z!3RsF&f@t!Yi_semST)?SFj@)R3Y~TZ>n~7;fD62av@bZR7(5u%MIjHjwB<|P_uQt zhOI7@Omi}T8VXy95_cRA<{gkddN}d=?Yo(tS;z9UVNbs~ae%42V?ls>B_iF7KXysRy zz4wm?p+ycwWPpu-4A^+(>a^Q>CZk-zYBx};?wZCQdv1J1-pC^v4n=dV>0n->(1LjO zNb;!ET4PIof(hI^TVrKel54k{_Idx{VfUjxSrow^`jijsoxowkq{&nda~l(yvc$V` z#fQ`K!67-C3YG6#=_vQs|E*UbBA``dS>u5n;(#A^Kz5c^R{sliR)BGU5;TTN(@(0o z@2E<~kj7i~=Q(z9@EyS%6{pQs+Dve&OePjuJYHHf)qCe%Vb5d#{ZAh_R8lDgr9tM_ zKoDRh2x!xE1nD0v>|+&w8xtMU2PRQQBc#QcsC7>TP+w4LkP_qIMH2)J z2m+PtIIbe=u>~evUQ{L0Q@&yVTUmXP!FxqTo$1^j$_D&m;;Gwfa>-!*Bux{*4dNLX zu8S#pe{=ismn_Wy8gZgY)?kwsA)NEc9(>D3zwM(j$^W9cXD3`OQ(fU}-Nd_gp0EQ7 z8=Y6)^1rUi5?XeBWZPb{wH)lv$TuYEVn-QLS1kV=Gj!bA11{14ZPtT}gHVRw%-#Ln z1n3rwx(tF7>&<}CdUQ8h15^#wZULfGp;$i|i?YCHb?4A+J*Bza=s?6!N8zlwSbULT zcg5d9RC1j!DwEPDw(Epa&$n&7jXY694&LPbtt2%tk1U#sz16lLQUU#>vmi=rUB4)+ zpH&x&>ZuLR$E3`|B88H}w4)(!e_SG=C0mnlMH{oUsDw~ncTS3!&X>C41Iwd>x)(ev zpTX!}j0&`i>#t-nS;|Cj-T`S0Oa(B}$74!Nl@HWyGp4H0Gt6oZaS+z`O1ofyA0c=A zSVg?8Je;j+GGOl*@+6BM$ZtELQ)*q9;OxFP-IJQGWGI>=UzBh8e-%y_QB#eZQh5B~(P*ks z`z=aCo_Hq+GWHC}@Fl+Eb6ba>5F0nh_9wc8zn2r-2}`*T!zY&twU&Br3XTS?p^^L1 zmKIjZ;$KK$K~GaJv&4xArev!;v&ewX=wH3-jCk&+&(@}{6eQgxGs1D*aRP?Df$7&dJ9rGP`ThML zsW(lag$u!iQcO#{BC6>ZRJeWnMg-?89!<_rW|;RD0MmCto>%q#GB?QztFiAh4lNQpu0jm4Ik@`-}30(56X<={?_>GZZUjhdD!yBX=2(#f07 zRSEZgp(Z>1XoZbVR4@3iiUR}-QE9E|{8nksK82#?XPfP06ZG8zJJmN6SY*LWZnoMV zt=oHx01&Hsaml%-0qS76rYriih-^ApQgNmHKYcQ1`H0G)TppeOn$5gPS zz6K@Vo6x~QjK2zd;<_$}>@OjmXr%_KbvmhR+&1xlXP)UTuKRltLk2bx?8wiSL6z~RhGuhX_h+e}FL-