From 826f2a05cd27772c22736c4d732c6f809ed304d6 Mon Sep 17 00:00:00 2001 From: lafirest Date: Fri, 20 Aug 2021 21:04:34 +0800 Subject: [PATCH 1/2] feature(udp_router): add customizable udp router --- rebar.config | 4 + src/udp_router/doc/router.plantuml | 43 +++ src/udp_router/doc/router.png | Bin 0 -> 214976 bytes src/udp_router/esockd_udp_router.erl | 361 +++++++++++++++++++ src/udp_router/esockd_udp_router_db.erl | 91 +++++ src/udp_router/esockd_udp_router_monitor.erl | 217 +++++++++++ src/udp_router/esockd_udp_router_sup.erl | 112 ++++++ 7 files changed, 828 insertions(+) create mode 100644 src/udp_router/doc/router.plantuml create mode 100644 src/udp_router/doc/router.png create mode 100644 src/udp_router/esockd_udp_router.erl create mode 100644 src/udp_router/esockd_udp_router_db.erl create mode 100644 src/udp_router/esockd_udp_router_monitor.erl create mode 100644 src/udp_router/esockd_udp_router_sup.erl diff --git a/rebar.config b/rebar.config index 1b38b51..202b9f0 100644 --- a/rebar.config +++ b/rebar.config @@ -18,6 +18,10 @@ {src_dirs, ["src"]}. +{deps, + [ {gproc, {git, "https://github.com/uwiger/gproc", {tag, "0.8.0"}}} + ]}. + {cover_enabled, true}. {cover_opts, [verbose]}. {cover_export_enabled, true}. diff --git a/src/udp_router/doc/router.plantuml b/src/udp_router/doc/router.plantuml new file mode 100644 index 0000000..bdf442f --- /dev/null +++ b/src/udp_router/doc/router.plantuml @@ -0,0 +1,43 @@ +@startuml +skinparam dpi 300 +left to right direction + +frame client { + card clinet1 + card client2 + card client3 +} + +frame router { + label "router converts the udp connection\nto long connection in the application" + agent router1 + agent router2 + agent router3 +} + +frame connection { + card connection1 + card connection2 + card connection3 +} + +clinet1 .[#red].> router1 +client2 .[#blue].> router1 +client3 ..> router2 +client3 ..> router3 + +router1 -[#red]-> connection1 : client1 +router1 -[#blue]-> connection2 : client2 +router2 --> connection3 : client3 +router3 --> connection3 : client3 + +note bottom of router1 +different clients use the same UDP channel,e.g NAT +endnote + + +note right of router +router2 and router3 are multiple channels used by a client,e.g LB +endnote + +@enduml diff --git a/src/udp_router/doc/router.png b/src/udp_router/doc/router.png new file mode 100644 index 0000000000000000000000000000000000000000..ca6d5799ebc24da22c47338ac750d9039271e232 GIT binary patch literal 214976 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%0AyCE>^g_lnJ~w|P3qv_25OPgHMW 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 literal 0 HcmV?d00001 diff --git a/src/udp_router/esockd_udp_router.erl b/src/udp_router/esockd_udp_router.erl new file mode 100644 index 0000000..46cf7a4 --- /dev/null +++ b/src/udp_router/esockd_udp_router.erl @@ -0,0 +1,361 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2020 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-module(esockd_udp_router). + +-behaviour(gen_server). + +%% API +-export([start_link/2]). + +%% gen_server callbacks +-export([init/1, handle_call/3, handle_cast/2, handle_info/2, + terminate/2, code_change/3, format_status/2]). + +-export_type([sourceid/0, router_module/0, router_options/0]). + +-define(NOW, erlang:system_time(second)). +-define(SSL_TRANSPORT, esockd_transport). +-define(ERROR_MSG(Format, Args), + error_logger:error_msg("[~s]: " ++ Format, [?MODULE | Args])). +-define(DEF_HEARTBEAT, 60). + +%%-------------------------------------------------------------------- +%% Definitions +%%-------------------------------------------------------------------- +-record(state, + {behaviour :: router_module(), + source :: socket(), + attachs :: #{sourceid => pos_integer()} %% last source's connection active time + }). + +-type state() :: #state{}. + +-type router_module() :: atom(). +-type socket_packet() :: binary(). +-type app_packet() :: term(). +-type socket() :: inet:socket() | ssl:sslsocket(). + +-type router_packet() :: {datagram, sourceinfo(), socket_packet()} + | {ssl, socket(), socket_packet()} + | {incoming, app_packet()}. + +-type transport() :: {udp, pid(), socket()} | ?SSL_TRANSPORT. +-type sourceinfo() :: {inet:ip_address(), inet:port_number()}. +-type peer() :: socket() | sourceinfo(). +-type sourceid() :: peer() + | integer() + | string() + | binary(). + +%% Routing information search results +-type routing_find_result() :: sourceid() %% send raw socket packet + | {sourceid(), app_packet()} %% send decoded packet + | invalid. + +-type timespan() :: non_neg_integer(). %% second, 0 = infinity +-type router_options() :: #{behaviour := router_module(), + heartbeat => timespan()}. + +%%-------------------------------------------------------------------- +%%- Callbacks +%%-------------------------------------------------------------------- +%% Create new connection +-callback create(transport(), peer()) -> {ok, pid()}. + +%% Find routing information +-callback find(transport(), peer(), socket(), socket_packet()) -> + routing_find_result(). + +%% Dispacth message +-callback dispatch(router_packet()) -> ok. + +%% Close Connection +-callback close(pid()) -> ok. + +%%-------------------------------------------------------------------- +%%- API +%%-------------------------------------------------------------------- + +%%-------------------------------------------------------------------- +%% @doc +%% Starts the server +%% @end +%%-------------------------------------------------------------------- +-spec start_link(socket(), router_options()) -> {ok, Pid :: pid()} | + {error, Error :: {already_started, pid()}} | + {error, Error :: term()} | + ignore. +start_link(Socket, Opts) -> + gen_server:start_link(?MODULE, [Socket, Opts], []). + +%%-------------------------------------------------------------------- +%%- gen_server callbacks +%%-------------------------------------------------------------------- + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Initializes the server +%% @end +%%-------------------------------------------------------------------- +-spec init(Args :: term()) -> {ok, State :: term()} | + {ok, State :: term(), Timeout :: timeout()} | + {ok, State :: term(), hibernate} | + {stop, Reason :: term()} | + ignore. +init([Socket, #{behaviour := Behaviour} = Opts]) -> + parse_opts(Opts), + {ok, #state{source = Socket, + behaviour = Behaviour, + attachs = #{}}}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Handling call messages +%% @end +%%-------------------------------------------------------------------- +-spec handle_call(Request :: term(), From :: {pid(), term()}, State :: term()) -> + {reply, Reply :: term(), NewState :: term()} | + {reply, Reply :: term(), NewState :: term(), Timeout :: timeout()} | + {reply, Reply :: term(), NewState :: term(), hibernate} | + {noreply, NewState :: term()} | + {noreply, NewState :: term(), Timeout :: timeout()} | + {noreply, NewState :: term(), hibernate} | + {stop, Reason :: term(), Reply :: term(), NewState :: term()} | + {stop, Reason :: term(), NewState :: term()}. + +handle_call(Request, _From, State) -> + ?ERROR_MSG("Unexpected call: ~p", [Request]), + {reply, ok, State}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Handling cast messages +%% @end +%%-------------------------------------------------------------------- +-spec handle_cast(Request :: term(), State :: term()) -> + {noreply, NewState :: term()} | + {noreply, NewState :: term(), Timeout :: timeout()} | + {noreply, NewState :: term(), hibernate} | + {stop, Reason :: term(), NewState :: term()}. +handle_cast(Request, State) -> + ?ERROR_MSG("Unexpected cast: ~p", [Request]), + {noreply, State}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Handling all non call/cast messages +%% @end +%%-------------------------------------------------------------------- +-spec handle_info(Info :: timeout() | term(), State :: term()) -> + {noreply, NewState :: term()} | + {noreply, NewState :: term(), Timeout :: timeout()} | + {noreply, NewState :: term(), hibernate} | + {stop, Reason :: normal | term(), NewState :: term()}. +handle_info({udp, Socket, IP, Port, Data}, State) -> + Transport = {udp, self(), Socket}, + Peer = {IP, Port}, + {noreply, + handle_incoming(Transport, Peer, Socket, Data, State)}; + +handle_info({ssl, Socket, Data}, State) -> + {noreply, + handle_incoming(?SSL_TRANSPORT, Socket, Socket, Data, State)}; + +handle_info({heartbeat, Span}, #state{behaviour = Behaviour, attachs = Attachs} = State) -> + heartbeat(Span), + Now = ?NOW, + Self = self(), + Attachs2 = maps:fold(fun(Sid, LastActive, Acc) -> + if Now - LastActive > Span -> + esockd_udp_router_db:delete_in(Behaviour, Self, Sid), + Acc; + true -> + Acc#{Sid => LastActive} + end + end, + #{}, + Attachs), + State2 = State#state{attachs = Attachs2}, + case Attachs2 of + #{} -> + {stop, normal, State2}; + _ -> + {noreply, State2} + end; + +handle_info({ssl_error, _Sock, Reason}, State) -> + {stop, Reason, socket_exit(State)}; + +handle_info({ssl_closed, _Sock}, State) -> + {stop, ssl_closed, socket_exit(State)}; + +handle_info(Info, State) -> + ?ERROR_MSG("Unexpected info: ~p", [Info]), + {noreply, State}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% This function is called by a gen_server when it is about to +%% terminate. It should be the opposite of Module:init/1 and do any +%% necessary cleaning up. When it returns, the gen_server terminates +%% with Reason. The return value is ignored. +%% @end +%%-------------------------------------------------------------------- +-spec terminate(Reason :: normal | shutdown | {shutdown, term()} | term(), + State :: term()) -> any(). +terminate(_Reason, #state{behaviour = Behaviour, + attachs = Attachs}) -> + Self = self(), + _ = maps:fold(fun(Sid, _, _) -> + esockd_udp_router_db:delete_in(Behaviour, Self, Sid) + end, + ok, + Attachs), + ok. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Convert process state when code is changed +%% @end +%%-------------------------------------------------------------------- +-spec code_change(OldVsn :: term() | {down, term()}, + State :: term(), + Extra :: term()) -> {ok, NewState :: term()} | + {error, Reason :: term()}. +code_change(_OldVsn, State, _Extra) -> + {ok, State}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% This function is called for changing the form and appearance +%% of gen_server status when it is returned from sys:get_status/1,2 +%% or when it appears in termination error logs. +%% @end +%%-------------------------------------------------------------------- +-spec format_status(Opt :: normal | terminate, + Status :: list()) -> Status :: term(). +format_status(_Opt, Status) -> + Status. + +%%-------------------------------------------------------------------- +%%- Internal functions +%%-------------------------------------------------------------------- +-spec handle_incoming(transport(), peer(), socket(), socket_packet(), state()) -> state(). +handle_incoming(Transport, Peer, Socket, Data, #state{behaviour = Behaviour} = State) -> + case Behaviour:find(Transport, Peer, Socket, Data) of + {ok, Sid} -> + Tag = raw_packet_tag(Transport), + dispatch(Transport, Peer, Behaviour, Sid, {Tag, Peer, Data}, State); + {ok, Sid, AppPacket} -> + dispatch(Transport, Peer, Behaviour, Sid, {incoming, AppPacket}, State); + invalid -> + State + end. + +-spec dispatch(transport(), peer(), router_module(), sourceid(), router_packet(), state()) -> state(). +dispatch(Transport, Peer, Behaviour, Sid, Packet, State) -> + {ok, Pid} = + case esockd_udp_router_db:lookup(Sid) of + {ok, Dest} -> + safe_attach(Transport, Peer, Sid, Dest, State); + undefined -> + Result = esockd_udp_router_monitor:create(Transport, Peer, Sid, Behaviour), + unsafe_attach(Sid, State), + Result + end, + dispatch(Behaviour, Sid, Pid, Packet, State). + +-spec dispatch(router_module(), sourceid(), pid(), router_packet(), state()) -> state(). +dispatch(Behaviour, Sid, Pid, Packet, #state{attachs = Attachs} = State) -> + Behaviour:dispatch(Pid, Packet), + State#state{attachs = Attachs#{Sid => ?NOW}}. + +-spec raw_packet_tag(transport()) -> datagram | ssl. +raw_packet_tag(?SSL_TRANSPORT) -> ssl; +raw_packet_tag(_) -> datagram. + +-spec unsafe_attach(sourceid(), state()) -> state(). +unsafe_attach(Sid, #state{attachs = Attachs}) -> + case maps:is_key(Sid, Attachs) of + false -> + esockd_udp_router_db:insert_in(self(), Sid), + ok; + _ -> + ok + end. + +-spec safe_attach(transport(), peer(), sourceid(), pid(), state()) -> {ok, pid(), state()}. +safe_attach(Transport, Peer, Sid, Dest, #state{behaviour = Behaviour, + attachs = Attachs}) -> + case maps:is_key(Sid, Attachs) of + true -> + {ok, Dest}; + false -> + Result = esockd_udp_router_db:insert_in(self(), Sid), + if Result > 0 -> + %% the connection are exists, but maybe not Dest + %%(some router close the old, and some create new, when this router doing attach) + case esockd_udp_router_db:lookup(Sid) of + {ok, RDest} -> + {ok, RDest}; + undefined -> + esockd_udp_router_monitor:create(Transport, Peer, Sid, Behaviour) + end; + true -> + %% when this router attach Sid's connection + %% ohter router closed this connection, so we need create new + %% or maybe we should just throw a exception? + esockd_udp_router_monitor:create(Transport, Peer, Sid, Behaviour) + end + end. + +-spec socket_exit(state()) -> state(). +socket_exit(#state{behaviour = Behaviour, attachs = Attachs} = State) -> + _ = maps:fold(fun(Sid, _, _) -> + esockd_udp_router_db:delete_in(Behaviour, self(), Sid) + end, + ok, + Attachs), + State#state{attachs = #{}}. + +-spec heartbeat(timespan()) -> ok. +heartbeat(Span) -> + erlang:send_after(self(), timer:seconds(Span), {?FUNCTION_NAME, Span}), + ok. + +parse_opts(Opts) -> + lists:foreach(fun(Opt) -> + parse_opt(Opt, Opts) + end, + [heartbeat]). + +parse_opt(heartbeat, #{heartbeat := Span}) -> + if Span -> + heartbeat(Span); + true -> + ok + end; + +parse_opt(heartbeat, _) -> + heartbeat(?DEF_HEARTBEAT). diff --git a/src/udp_router/esockd_udp_router_db.erl b/src/udp_router/esockd_udp_router_db.erl new file mode 100644 index 0000000..249078b --- /dev/null +++ b/src/udp_router/esockd_udp_router_db.erl @@ -0,0 +1,91 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2020 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-module(esockd_udp_router_db). + +%% API +-export([ insert/2, insert_in/2, delete_in/3 + , delete_out/1, lookup/1, start/0]). + +-record(in, { source :: pid() %% the router pid + , sid :: sourceid()}). + +-record(out, { sid :: sourceid() + , destination :: pid() %% the connection pid + , count :: non_neg_integer()}). %% Reference Counter + +-define(TAB, esockd_udp_router_db). +-define(MINIMUM_VAL, -2147483647). + +-type sourceid() :: esockd_udp_router:sourceid(). +-type router_module() :: esockd_udp_router:router_mdoule(). + +%%-------------------------------------------------------------------- +%%- API +%%-------------------------------------------------------------------- +start() -> + ets:new(?TAB, [ set, public, named_table + , {keypos, #out.sid} + , {write_concurrency, true} + , {read_concurrency, true}]). + +-spec insert(sourceid(), pid()) -> boolean(). +insert(Sid, Destination) -> + ets:insert_new(?TAB, #out{sid = Sid, + destination = Destination, + count = 1}). + +-spec insert_in(pid(), sourceid()) -> integer(). +insert_in(Source, Sid) -> + ets:insert(?TAB, #in{source = Source, sid = Sid}), %% junk ? + ets:update_counter(?TAB, Sid, {#out.count, 1}, 1). + +-spec delete_in(router_module(), pid(), sourceid()) -> ok. +delete_in(Behaviour, Source, Sid) -> + ets:delete(?TAB, Source), %% XXX maybe shodule this ? + RC = ets:update_counter(?TAB, Sid, {#out.count, -1, 0, ?MINIMUM_VAL}, 0), + if RC < 0 -> + Pid = ets:lookup_element(?TAB, Sid, #out.sid), + Behaviour:close(Pid), + ets:delete(?TAB, Sid), + ok; + true -> + ok + end. + +-spec delete_out(sourceid()) -> ok. +delete_out(Sid) -> + ets:delete(?TAB, Sid), + ok. + +-spec lookup(sourceid()) -> {ok, pid()} | undefined. +lookup(Sid) -> + case ets:lookup(?TAB, Sid) of + [#out{destination = Pid}] -> + {ok, Pid}; + _ -> + undefined + end. + +%%-------------------------------------------------------------------- +%% @doc +%% @spec +%% @end +%%-------------------------------------------------------------------- + +%%-------------------------------------------------------------------- +%%- Internal functions +%%-------------------------------------------------------------------- diff --git a/src/udp_router/esockd_udp_router_monitor.erl b/src/udp_router/esockd_udp_router_monitor.erl new file mode 100644 index 0000000..4d15360 --- /dev/null +++ b/src/udp_router/esockd_udp_router_monitor.erl @@ -0,0 +1,217 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2020 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-module(esockd_udp_router_monitor). + +-behaviour(gen_server). + +%% API +-export([start_link/1, + create/4]). + +%% gen_server callbacks +-export([init/1, handle_call/3, handle_cast/2, handle_info/2, + terminate/2, code_change/3, format_status/2]). + +-record(state, {pool_id :: pool_id(), + monitors :: #{reference() => {router_module(), sourceid()}}}). + +-type pool_id() :: non_neg_integer(). +-type router_module() :: esockd_udp_router:router_module(). +-type sourceid() :: esockd_udp_router:sourceid(). + +-define(POOL, ?MODULE). +-define(PNAME(Id), {?POOL, Id}). +-define(ERROR_MSG(Format, Args), + error_logger:error_msg("[~s]: " ++ Format, [?MODULE | Args])). + +%%-------------------------------------------------------------------- +%%- API +%%-------------------------------------------------------------------- +create(Transport, Peer, Sid, Behaviour) -> + %% Use affinity to resolve potential concurrent conflicts + call(Sid, {?FUNCTION_NAME, Transport, Peer, Sid, Behaviour}). + +%%-------------------------------------------------------------------- +%% @doc +%% Starts the server +%% @end +%%-------------------------------------------------------------------- +-spec start_link(pool_id()) -> {ok, Pid :: pid()} | + {error, Error :: {already_started, pid()}} | + {error, Error :: term()} | + ignore. +start_link(Id) -> + gen_server:start_link({local, proc_name(Id)}, ?MODULE, [Id], [{hibernate_afterr, 1000}]). + +%%-------------------------------------------------------------------- +%% gen_server callbacks +%%-------------------------------------------------------------------- + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Initializes the server +%% @end +%%-------------------------------------------------------------------- +-spec init(Args :: term()) -> {ok, State :: term()} | + {ok, State :: term(), Timeout :: timeout()} | + {ok, State :: term(), hibernate} | + {stop, Reason :: term()} | + ignore. +init([PoolId]) -> + gproc_pool:connect_worker(?POOL, ?PNAME(PoolId)), + {ok, #state{pool_id = PoolId, + monitors = #{}}}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Handling call messages +%% @end +%%-------------------------------------------------------------------- +-spec handle_call(Request :: term(), From :: {pid(), term()}, State :: term()) -> + {reply, Reply :: term(), NewState :: term()} | + {reply, Reply :: term(), NewState :: term(), Timeout :: timeout()} | + {reply, Reply :: term(), NewState :: term(), hibernate} | + {noreply, NewState :: term()} | + {noreply, NewState :: term(), Timeout :: timeout()} | + {noreply, NewState :: term(), hibernate} | + {stop, Reason :: term(), Reply :: term(), NewState :: term()} | + {stop, Reason :: term(), NewState :: term()}. + +handle_call({create, Transport, Peer, Sid, Behaviour}, _From, + #state{monitors = Monitors} = State) -> + case esockd_udp_router_db:lookup(Sid) of + {ok, Pid} -> + {reply, {ok, Pid}, State}; + _ -> + {ok, Pid} = Behaviour:create(Transport, Peer), + Ref = erlang:monitor(process, Pid), + true = esockd_udp_router_db:insert(Sid, Pid), + {reply, {ok, Pid}, State#state{monitors = Monitors#{Ref => {Behaviour, Sid}}}} + end; + +handle_call(Request, _From, State) -> + ?ERROR_MSG("Unexpected call: ~p", [Request]), + {reply, ok, State}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Handling cast messages +%% @end +%%-------------------------------------------------------------------- +-spec handle_cast(Request :: term(), State :: term()) -> + {noreply, NewState :: term()} | + {noreply, NewState :: term(), Timeout :: timeout()} | + {noreply, NewState :: term(), hibernate} | + {stop, Reason :: term(), NewState :: term()}. +handle_cast(Request, State) -> + ?ERROR_MSG("Unexpected cast: ~p", [Request]), + {noreply, State}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Handling all non call/cast messages +%% @end +%%-------------------------------------------------------------------- +-spec handle_info(Info :: timeout() | term(), State :: term()) -> + {noreply, NewState :: term()} | + {noreply, NewState :: term(), Timeout :: timeout()} | + {noreply, NewState :: term(), hibernate} | + {stop, Reason :: normal | term(), NewState :: term()}. + +%% connection closed +handle_info({'DOWN', Ref, process, _, _}, + #state{monitors = Monitors} = State) -> + case maps:get(Ref, Monitors, undefined) of + undefined -> + {noreply, State}; + {_Behaviour, Sid} -> + Monitors2 = maps:remove(Ref, Monitors), + esockd_udp_router_db:delete_out(Sid), + {noreply, State#state{monitors = Monitors2}} + end; + +handle_info(Info, State) -> + ?ERROR_MSG("Unexpected info: ~p", [Info]), + {noreply, State}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% This function is called by a gen_server when it is about to +%% terminate. It should be the opposite of Module:init/1 and do any +%% necessary cleaning up. When it returns, the gen_server terminates +%% with Reason. The return value is ignored. +%% @end +%%-------------------------------------------------------------------- +-spec terminate(Reason :: normal | shutdown | {shutdown, term()} | term(), + State :: term()) -> any(). +terminate(_Reason, #state{pool_id = PoolId, + monitors = Monitors}) -> + gproc_pool:disconnect_worker(?POOL, ?PNAME(PoolId)), + _ = maps:fold(fun(Ref, {Behaviour, Sid}, _) -> + erlang:demonitor(Ref), + case esockd_udp_router_db:lookup(Sid) of + undefined -> + ok; + {ok, Pid} -> + Behaviour:close(Pid), + esockd_udp_router_db:delete_out(Sid) + end + end, ok, Monitors), + ok. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Convert process state when code is changed +%% @end +%%-------------------------------------------------------------------- +-spec code_change(OldVsn :: term() | {down, term()}, + State :: term(), + Extra :: term()) -> {ok, NewState :: term()} | + {error, Reason :: term()}. +code_change(_OldVsn, State, _Extra) -> + {ok, State}. + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% This function is called for changing the form and appearance +%% of gen_server status when it is returned from sys:get_status/1,2 +%% or when it appears in termination error logs. +%% @end +%%-------------------------------------------------------------------- +-spec format_status(Opt :: normal | terminate, + Status :: list()) -> Status :: term(). +format_status(_Opt, Status) -> + Status. + +%%-------------------------------------------------------------------- +%% Internal functions +%%-------------------------------------------------------------------- +-spec proc_name(pool_id()) -> atom(). +proc_name(Id) -> + list_to_atom(lists:concat([?POOL, "_", Id])). + +-spec call(sourceid(), term()) -> ok. +call(Sid, Req) -> + MPid = gproc_pool:pick_worker(?POOL, Sid), + gen_server:call(MPid, Req). diff --git a/src/udp_router/esockd_udp_router_sup.erl b/src/udp_router/esockd_udp_router_sup.erl new file mode 100644 index 0000000..4487ff0 --- /dev/null +++ b/src/udp_router/esockd_udp_router_sup.erl @@ -0,0 +1,112 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2020 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-module(esockd_udp_router_sup). + +-behaviour(supervisor). + +%% API +-export([ start_link/0 + , ensure_start/0]). + +%% Supervisor callbacks +-export([init/1]). + +%% shared with esockd_udp_router_monitor +-define(POOL, esockd_udp_monitor). +-define(WORKER_NAME(Id), {?POOL, Id}). + +%%%------------------------------------------------------------------- +%%- API functions +%%-------------------------------------------------------------------- +ensure_start() -> + case erlang:whereis(?MODULE) of + undefined -> + Spec = #{id => ?MODULE, + restart => transient, + shutdown => infinity, + type => supervisor, + modules => [?MODULE]}, + esockd_sup:start_child(Spec), + ok; + _ -> + ok + end. + +%%-------------------------------------------------------------------- +%% @doc +%% Starts the supervisor +%% @end +%%-------------------------------------------------------------------- +-spec start_link() -> {ok, Pid :: pid()} | + {error, {already_started, Pid :: pid()}} | + {error, {shutdown, term()}} | + {error, term()} | + ignore. +start_link() -> + supervisor:start_link({local, ?MODULE}, ?MODULE, []). + +%%-------------------------------------------------------------------- +%%- Supervisor callbacks +%%-------------------------------------------------------------------- + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Whenever a supervisor is started using supervisor:start_link/[2,3], +%% this function is called by the new process to find out about +%% restart strategy, maximum restart intensity, and child +%% specifications. +%% @end +%%-------------------------------------------------------------------- +-spec init(Args :: term()) -> + {ok, {SupFlags :: supervisor:sup_flags(), + [ChildSpec :: supervisor:child_spec()]}} | + ignore. +init([]) -> + Size = erlang:system_info(schedulers) * 2, + ok = ensure_pool(Size), + + SupFlags = #{strategy => one_for_one, + intensity => 10, + period => 3600}, + + AChilds = [begin + ensure_pool_worker(I), + #{id => ?WORKER_NAME(I), + start => {?POOL, start_link, [I]}, + restart => transient, + shutdown => 5000, + type => worker, + modules => [?POOL]} + end || I <- lists:seq(1, Size)], + + {ok, {SupFlags, [AChilds]}}. + +%%-------------------------------------------------------------------- +%% Internal functions +%%-------------------------------------------------------------------- +ensure_pool(Size) -> + try gproc_pool:new(?POOL, hash, [{size, Size}]) + catch + error:exists -> ok + end. + +ensure_pool_worker(Id) -> + try gproc_pool:add_worker(?POOL, ?WORKER_NAME(Id), Id) + catch + error:exists -> ok + end. From 6aa62dba21e098bd594e6104410be1429107d4f4 Mon Sep 17 00:00:00 2001 From: firest Date: Mon, 8 Jul 2024 10:41:22 +0800 Subject: [PATCH 2/2] feat: add content-sensitive proxy behaviour for UDP --- include/esockd_proxy.hrl | 63 +++ src/esockd_sup.erl | 14 +- src/udp_proxy/doc/proxy.plantuml | 43 +++ src/udp_proxy/doc/proxy.png | Bin 0 -> 181703 bytes src/udp_proxy/esockd_udp_proxy.erl | 292 ++++++++++++++ src/udp_proxy/esockd_udp_proxy_connection.erl | 67 ++++ src/udp_proxy/esockd_udp_proxy_db.erl | 127 ++++++ src/udp_router/doc/router.plantuml | 43 --- src/udp_router/doc/router.png | Bin 214976 -> 0 bytes src/udp_router/esockd_udp_router.erl | 361 ------------------ src/udp_router/esockd_udp_router_db.erl | 91 ----- src/udp_router/esockd_udp_router_monitor.erl | 217 ----------- src/udp_router/esockd_udp_router_sup.erl | 112 ------ 13 files changed, 602 insertions(+), 828 deletions(-) create mode 100644 include/esockd_proxy.hrl create mode 100644 src/udp_proxy/doc/proxy.plantuml create mode 100644 src/udp_proxy/doc/proxy.png create mode 100644 src/udp_proxy/esockd_udp_proxy.erl create mode 100644 src/udp_proxy/esockd_udp_proxy_connection.erl create mode 100644 src/udp_proxy/esockd_udp_proxy_db.erl delete mode 100644 src/udp_router/doc/router.plantuml delete mode 100644 src/udp_router/doc/router.png delete mode 100644 src/udp_router/esockd_udp_router.erl delete mode 100644 src/udp_router/esockd_udp_router_db.erl delete mode 100644 src/udp_router/esockd_udp_router_monitor.erl delete mode 100644 src/udp_router/esockd_udp_router_sup.erl diff --git a/include/esockd_proxy.hrl b/include/esockd_proxy.hrl new file mode 100644 index 0000000..4926957 --- /dev/null +++ b/include/esockd_proxy.hrl @@ -0,0 +1,63 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2024 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-ifndef(ESOCKD_PROXY_HRL). +-define(ESOCKD_PROXY_HRL, true). + +-define(SSL_TRANSPORT, esockd_transport). +-define(PROXY_TRANSPORT, esockd_udp_proxy). + +-type proxy_id() :: pid(). +-type socket_packet() :: binary(). +-type socket() :: inet:socket() | ssl:sslsocket(). + +-type transport() :: {udp, pid(), socket()} | ?SSL_TRANSPORT. +-type proxy_transport() :: {?PROXY_TRANSPORT, pid(), socket()}. +-type address() :: {inet:ip_address(), inet:port_number()}. +-type peer() :: socket() | address(). + +-type connection_module() :: atom(). +-type connection_state() :: term(). +-type connection_packet() :: term(). + +-type connection_id() :: + peer() + | integer() + | string() + | binary(). + +-type proxy_packet() :: + {?PROXY_TRANSPORT, proxy_id(), binary(), connection_packet()}. + +%% Routing information search results + +%% send raw socket packet +-type get_connection_id_result() :: + %% send decoded packet + {ok, connection_id(), connection_packet(), connection_state()} + | invalid. + +-type connection_options() :: #{ + esockd_proxy_opts := proxy_options(), + atom() => term() +}. + +-type proxy_options() :: #{ + connection_mod := connection_module(), + heartbeat => non_neg_integer() +}. + +-endif. diff --git a/src/esockd_sup.erl b/src/esockd_sup.erl index 5565a58..704993d 100644 --- a/src/esockd_sup.erl +++ b/src/esockd_sup.erl @@ -53,7 +53,7 @@ start_link() -> child_spec(Proto, ListenOn, Opts) when is_atom(Proto) -> ListenerRef = {Proto, ListenOn}, _ = esockd_server:set_listener_prop(ListenerRef, type, tcp), - _ = esockd_server:set_listener_prop(ListenerRef, options, Opts), + _ = esockd_server:set_listener_prop(ListenerRef, options, Opts), #{id => child_id(Proto, ListenOn), start => {esockd_listener_sup, start_link, [Proto, ListenOn]}, restart => transient, @@ -76,7 +76,7 @@ udp_child_spec(Proto, Port, Opts) when is_atom(Proto) -> dtls_child_spec(Proto, Port, Opts) when is_atom(Proto) -> ListenerRef = {Proto, Port}, _ = esockd_server:set_listener_prop(ListenerRef, type, dtls), - _ = esockd_server:set_listener_prop(ListenerRef, options, Opts), + _ = esockd_server:set_listener_prop(ListenerRef, options, Opts), #{id => child_id(Proto, Port), start => {esockd_listener_sup, start_link, [Proto, Port]}, restart => transient, @@ -191,5 +191,11 @@ init([]) -> type => worker, modules => [esockd_server] }, - {ok, {SupFlags, [Limiter, Server]}}. - + ProxyDB = #{id => esockd_udp_proxy_db, + start => {esockd_udp_proxy_db, start_link, []}, + restart => permanent, + shutdown => 5000, + type => worker, + modules => [esockd_udp_proxy_db] + }, + {ok, {SupFlags, [Limiter, Server, ProxyDB]}}. diff --git a/src/udp_proxy/doc/proxy.plantuml b/src/udp_proxy/doc/proxy.plantuml new file mode 100644 index 0000000..8062e05 --- /dev/null +++ b/src/udp_proxy/doc/proxy.plantuml @@ -0,0 +1,43 @@ +@startuml +skinparam dpi 300 +left to right direction + +frame client { + card clinet1 + card client2 + card client3 +} + +frame proxy { + label "proxy converts the udp connection\nto long connection in the application" + agent proxy1 + agent proxy2 + agent proxy3 +} + +frame connection { + card connection1 + card connection2 + card connection3 +} + +clinet1 .[#red].> proxy1 +client2 .[#blue].> proxy1 +client3 ..> proxy2 +client3 ..> proxy3 + +proxy1 -[#red]-> connection1 : client1 +proxy1 -[#blue]-> connection2 : client2 +proxy2 --> connection3 : client3 +proxy3 --> connection3 : client3 + +note bottom of proxy1 +different clients use the same UDP channel,e.g NAT, the proxy will first disconnect the existing connection and then connect to the new one +endnote + + +note right of proxy +proxy2 and proxy3 are multiple channels used by a client,e.g LB +endnote + +@enduml diff --git a/src/udp_proxy/doc/proxy.png b/src/udp_proxy/doc/proxy.png new file mode 100644 index 0000000000000000000000000000000000000000..608a15dcb83613acf7541dc27e12e81862739b8d GIT binary patch literal 181703 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

-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

KE1KW- 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 + gen_server:start_link(?MODULE, [Transport, Peer, Opts], []). + +-spec send(proxy_id(), binary()) -> ok. +send(ProxyId, Data) -> + gen_server:cast(ProxyId, {send, Data}). + +close(ProxyId) -> + case erlang:is_process_alive(ProxyId) of + true -> + gen_server:call(ProxyId, close); + _ -> + ok + end. + +%%-------------------------------------------------------------------- +%%- gen_server callbacks +%%-------------------------------------------------------------------- + +init([Transport, Peer, #{esockd_proxy_opts := Opts} = COpts]) -> + #{connection_mod := Mod} = Opts, + heartbeat(maps:get(heartbeat, Opts, ?DEF_HEARTBEAT)), + init_transport(Transport, Peer, #{ + last_time => ?NOW, + connection_mod => Mod, + connection_options => COpts, + connection_state => esockd_udp_proxy_connection:initialize(Mod, COpts), + connection_id => undefined + }). + +handle_call(close, _From, State) -> + {stop, {shutdown, close_transport}, ok, State}; +handle_call(Request, _From, State) -> + ?ERROR_MSG("Unexpected call: ~p", [Request]), + {reply, ok, State}. + +handle_cast({send, Data}, #{transport := Transport, peer := Peer} = State) -> + case send(Transport, Peer, Data) of + ok -> + {noreply, State}; + {error, Reason} -> + ?ERROR_MSG("Send failed, Reason: ~0p", [Reason]), + {stop, {sock_error, Reason}, State} + end; +handle_cast(Request, State) -> + ?ERROR_MSG("Unexpected cast: ~p", [Request]), + {noreply, State}. + +handle_info({datagram, _SockPid, Data}, State) -> + {noreply, handle_incoming(Data, State)}; +handle_info({ssl, _Socket, Data}, State) -> + {noreply, handle_incoming(Data, State)}; +handle_info({heartbeat, Span}, #{last_time := LastTime} = State) -> + Now = ?NOW, + case Now - LastTime > Span of + true -> + {stop, normal, State}; + _ -> + heartbeat(Span), + {noreply, State} + end; +handle_info({ssl_error, _Sock, Reason}, State) -> + {stop, Reason, socket_exit(State)}; +handle_info({ssl_closed, _Sock}, State) -> + {stop, ssl_closed, socket_exit(State)}; +handle_info( + {'DOWN', _, process, _, _Reason}, + State +) -> + {stop, {shutdown, connection_closed}, State}; +handle_info(Info, State) -> + ?ERROR_MSG("Unexpected info: ~p", [Info]), + {noreply, State}. + +terminate(Reason, #{transport := Transport} = State) -> + close_transport(Transport), + Clear = + case Reason of + close_transport -> + false; + connection_closed -> + false; + _ -> + true + end, + detach(State, Clear). + +%%-------------------------------------------------------------------- +%%- Internal functions +%%-------------------------------------------------------------------- +-spec handle_incoming(socket_packet(), state()) -> state(). +handle_incoming( + Data, + #{transport := Transport, peer := Peer, connection_mod := Mod, connection_state := CState} = + State +) -> + State2 = State#{last_time := ?NOW}, + case esockd_udp_proxy_connection:get_connection_id(Mod, Transport, Peer, CState, Data) of + {ok, CId, Packet, CState2} -> + dispatch(Mod, CId, Data, Packet, State2#{connection_state := CState2}); + invalid -> + ?ERROR_MSG("Can't get connection id, Transport:~0p, Peer:~0p, Mod:~0p", [ + Transport, Peer, Mod + ]), + State2 + end. + +-spec dispatch( + connection_module(), + esockd_transport:socket(), + connection_id(), + connection_packet(), + state() +) -> + state(). +dispatch( + Mod, + CId, + Data, + Packet, + #{ + transport := Transport, + peer := Peer, + connection_state := CState, + connection_options := Opts + } = + State +) -> + case lookup(Mod, Transport, Peer, CId, Opts) of + {ok, Pid} -> + esockd_udp_proxy_connection:dispatch( + Mod, Pid, CState, {Transport, Data, Packet} + ), + attach(CId, State); + {error, Reason} -> + ?ERROR_MSG("Dispatch failed, Reason:~0p", [Reason]), + State + end. + +-spec attach(connection_id(), state()) -> state(). +attach(CId, #{connection_mod := Mod, connection_id := undefined} = State) -> + esockd_udp_proxy_db:attach(Mod, CId), + State#{connection_id := CId}; +attach(CId, #{connection_id := OldId} = State) when CId =/= OldId -> + State2 = detach(State), + attach(CId, State2); +attach(_CId, State) -> + State. + +-spec detach(state()) -> state(). +detach(State) -> + detach(State, true). + +-spec detach(state(), boolean()) -> state(). +detach(#{connection_id := undefined} = State, _Clear) -> + State; +detach(#{connection_id := CId, connection_mod := Mod, connection_state := CState} = State, Clear) -> + case esockd_udp_proxy_db:detach(Mod, CId) of + {Clear, Pid} -> + case erlang:is_process_alive(Pid) of + true -> + esockd_udp_proxy_connection:close(Mod, Pid, CState); + _ -> + ok + end; + _ -> + ok + end, + State#{connection_id := undefined}. + +-spec socket_exit(state()) -> state(). +socket_exit(State) -> + detach(State). + +-spec heartbeat(timespan()) -> ok. +heartbeat(Span) -> + erlang:send_after(timer:seconds(Span), self(), {?FUNCTION_NAME, Span}), + ok. + +-spec lookup( + connection_module(), + proxy_transport(), + peer(), + connection_id(), + connection_options() +) -> {ok, pid()} | {error, Reason :: term()}. +lookup(Mod, Transport, Peer, CId, Opts) -> + case esockd_udp_proxy_db:lookup(Mod, CId) of + {ok, _} = Ok -> + Ok; + undefined -> + case esockd_udp_proxy_connection:create(Mod, Transport, Peer, Opts) of + {ok, Pid} -> + esockd_udp_proxy_db:insert(Mod, CId, Pid), + _ = erlang:monitor(process, Pid), + {ok, Pid}; + ignore -> + {error, ignore}; + Error -> + Error + end + end. + +-spec send(proxy_transport(), peer(), binary()) -> _. +send({?PROXY_TRANSPORT, _, Socket}, {IP, Port}, Data) when is_port(Socket) -> + gen_udp:send(Socket, IP, Port, Data); +send({?PROXY_TRANSPORT, _, Socket}, _Peer, Data) -> + esockd_transport:send(Socket, Data). + +init_transport({udp, _, Sock}, Peer, State) -> + {ok, State#{ + transport => {?PROXY_TRANSPORT, self(), Sock}, + peer => Peer + }}; +init_transport(esockd_transport, Sock, State) -> + case esockd_transport:wait(Sock) of + {ok, NSock} -> + {ok, State#{ + transport => {?PROXY_TRANSPORT, self(), NSock}, + peer => esockd_transport:peername(NSock) + }}; + Error -> + Error + end. + +close_transport({?PROXY_TRANSPORT, _, Sock}) when is_port(Sock) -> + ok; +close_transport({?PROXY_TRANSPORT, _, Sock}) -> + esockd_transport:fast_close(Sock). diff --git a/src/udp_proxy/esockd_udp_proxy_connection.erl b/src/udp_proxy/esockd_udp_proxy_connection.erl new file mode 100644 index 0000000..e53956b --- /dev/null +++ b/src/udp_proxy/esockd_udp_proxy_connection.erl @@ -0,0 +1,67 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2024 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-module(esockd_udp_proxy_connection). + +-include("include/esockd_proxy.hrl"). + +-export([ + initialize/2, + create/4, + get_connection_id/5, + dispatch/4, + close/3 +]). + +-export_type([connection_id/0, connection_module/0]). + +%%-------------------------------------------------------------------- +%%- Callbacks +%%-------------------------------------------------------------------- +-callback initialize(connection_options()) -> connection_state(). + +%% Create new connection +-callback create(proxy_transport(), peer(), connection_options()) -> gen_server:start_ret(). + +%% Find routing information +-callback get_connection_id( + proxy_transport(), peer(), connection_state(), socket_packet() +) -> + get_connection_id_result(). + +%% Dispacth message +-callback dispatch(pid(), connection_state(), proxy_packet()) -> ok. + +%% Close Connection +-callback close(pid(), connection_state()) -> ok. + +%%-------------------------------------------------------------------- +%%- API +%%-------------------------------------------------------------------- +initialize(Mod, Opts) -> + Mod:initialize(Opts). + +create(Mod, Transport, Peer, Opts) -> + Mod:create(Transport, Peer, Opts). + +get_connection_id(Mod, Transport, Peer, State, Data) -> + Mod:get_connection_id(Transport, Peer, State, Data). + +dispatch(Mod, Pid, State, Packet) -> + Mod:dispatch(Pid, State, Packet). + +close(Mod, Pid, State) -> + Mod:close(Pid, State). diff --git a/src/udp_proxy/esockd_udp_proxy_db.erl b/src/udp_proxy/esockd_udp_proxy_db.erl new file mode 100644 index 0000000..d8a5dba --- /dev/null +++ b/src/udp_proxy/esockd_udp_proxy_db.erl @@ -0,0 +1,127 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2020 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-module(esockd_udp_proxy_db). + +-behaviour(gen_server). + +-include("include/esockd_proxy.hrl"). + +%% API +-export([ + start_link/0, + insert/3, + attach/2, + detach/2, + lookup/2 +]). + +%% gen_server callbacks +-export([ + init/1, + handle_call/3, + handle_cast/2, + handle_info/2, + terminate/2 +]). + +-define(ID(Mod, CId), {Mod, CId}). + +-record(connection, { + id :: ?ID(connection_module(), connection_id()), + %% the connection pid + pid :: pid(), + %% Reference Counter + count :: non_neg_integer() +}). + +-define(TAB, esockd_udp_proxy_db). +-define(MINIMUM_VAL, -2147483647). + +%%-------------------------------------------------------------------- +%%- API +%%-------------------------------------------------------------------- +-spec start_link() -> {ok, pid()}. +start_link() -> + gen_server:start_link({local, ?MODULE}, ?MODULE, [], []). + +-spec insert(connection_module(), connection_id(), pid()) -> boolean(). +insert(Mod, CId, Pid) -> + ets:insert_new(?TAB, #connection{ + id = ?ID(Mod, CId), + pid = Pid, + count = 0 + }). + +-spec attach(connection_module(), connection_id()) -> integer(). +attach(Mod, CId) -> + ets:update_counter(?TAB, ?ID(Mod, CId), {#connection.count, 1}). + +-spec detach(connection_module(), connection_id()) -> {Clear :: true, connection_state()} | false. +detach(Mod, CId) -> + Id = ?ID(Mod, CId), + RC = ets:update_counter(?TAB, Id, {#connection.count, -1, 0, ?MINIMUM_VAL}), + if + RC < 0 -> + case ets:lookup(?TAB, Id) of + [#connection{pid = Pid}] -> + ets:delete(?TAB, Id), + {true, Pid}; + _ -> + false + end; + true -> + false + end. + +-spec lookup(connection_module(), connection_id()) -> {ok, pid()} | undefined. +lookup(Mod, CId) -> + case ets:lookup(?TAB, ?ID(Mod, CId)) of + [#connection{pid = Pid}] -> + {ok, Pid}; + _ -> + undefined + end. + +%%-------------------------------------------------------------------- +%%- gen_server callbacks +%%-------------------------------------------------------------------- +init([]) -> + ?TAB = ets:new(?TAB, [ + set, + public, + named_table, + {keypos, #connection.id}, + {write_concurrency, true}, + {read_concurrency, true} + ]), + {ok, #{}}. + +handle_call(Req, _From, State) -> + error_logger:error_msg("Unexpected call: ~p", [Req]), + {reply, ignore, State}. + +handle_cast(Msg, State) -> + error_logger:error_msg("Unexpected cast: ~p~n", [Msg]), + {noreply, State}. + +handle_info(Info, State) -> + error_logger:error_msg("Unexpected info: ~p~n", [Info]), + {noreply, State}. + +terminate(_Reason, _State) -> + ets:delete(?TAB), + ok. diff --git a/src/udp_router/doc/router.plantuml b/src/udp_router/doc/router.plantuml deleted file mode 100644 index bdf442f..0000000 --- a/src/udp_router/doc/router.plantuml +++ /dev/null @@ -1,43 +0,0 @@ -@startuml -skinparam dpi 300 -left to right direction - -frame client { - card clinet1 - card client2 - card client3 -} - -frame router { - label "router converts the udp connection\nto long connection in the application" - agent router1 - agent router2 - agent router3 -} - -frame connection { - card connection1 - card connection2 - card connection3 -} - -clinet1 .[#red].> router1 -client2 .[#blue].> router1 -client3 ..> router2 -client3 ..> router3 - -router1 -[#red]-> connection1 : client1 -router1 -[#blue]-> connection2 : client2 -router2 --> connection3 : client3 -router3 --> connection3 : client3 - -note bottom of router1 -different clients use the same UDP channel,e.g NAT -endnote - - -note right of router -router2 and router3 are multiple channels used by a client,e.g LB -endnote - -@enduml diff --git a/src/udp_router/doc/router.png b/src/udp_router/doc/router.png deleted file mode 100644 index ca6d5799ebc24da22c47338ac750d9039271e232..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214976 zcmeEucT`hZ-!6!X4Nw_mkS0P1ML4(iN1^M2p`=l*-oTC*Hjhm(EwuRqVT^YVd`EY+!tr^v|2sNnbSs)B#c zkdYk|K5+#6#fq>UYi{8}CTnhQjxcsHH@jrwdFhdhi=&u;fTOLk zy^E`zEx)OQ-MOnUCNi=km#x&bU4H+bj2t}1Bgt1yF|6x#n4Yt67k_>O;i{joYOQWmaORfy7SVYATnRGc^Y<3^&wdPQ)fC4T=3o{tH;!EJ z#^SkhGJA6FeL!YuH)_yWsxGO_AK#$G9J=Hj!F z!DD!r4EamwqbWg>PF{nLP1(H2vjx69y)|{`M16y5+`*ZZmK}h~2*1b{t=oRe?3$s# ztjy!KkPLRwhZk*S$E!RGpr>2iI$p&%TpezV-Qo><)0&(Vxg1zK!_? z9yM#j*c&e@++dlM4}Aj$EjB%HYYz{`0xt(6Poh)0-%E`)qmf*1*r=X{8w!L3z|_v( zJ39f1;{3`d!Kd|QK@_{)XL3B`I?tV2*APt!;UYy*v$oAM^$cmAfhTx96rJ7-;oOw;<$yVBw?c3lDAN*J#F+Ol2F2 zA0?BK1(3n--ct84T$-Tt`NMVpVD)UxkyiotwQimxKNd~>#O04Dw?9;FW^te3lG)Sg zLby-PCwpy*%dj0i0SUM-aQyD8Kge%oZr!|n^62do1=|Py9im$k#`Ss@k?`Bdq4ib2 z@uy>ZD@$f>Zf>*14h^)M2f!Ww<7&-nToV0{pTYlz>pehH{NqS)RDs~{5B!9a~{4>%LgONbpCf;HbvT?0Lrzx5 zg*o^0B}+Ih;9Yl=f4T2X+#3!`vhV2}vOixClknpT#`AT`ct@|D$iX|~oy}!&_m%Nd z%kIY%l%Y(p^YrxYYgi2UnG*uZ%FOhTNSX56>GbpZ9YY8I+H~PnE#&&2lGO}ZqXh?k zoiTiR>KgV_^}a#W%wld!!!K!}b6|Ogm*bOvZP@uY9J8xEkv3?HCig@UyU`lg#ZYGP z&7~3N?_WL)4{LjY_ddLm{{0e1`7xe81Z@3*ThlgSQPg3w&Ua^XqSl@DhGW2Q6O%#z zy)n1s5iA){(Y@z`ys`X7mG%>F6%#A$#wu)v`2Y8hy1@-TY6Gj=bj7g7qB9|cQMC8> z)_*zsPxl)9WDM_`&WCO-r$hcS-woM+da1CJA#(l40*241%7d^l@b`VU{&nBUT#nha zzg&^x-!GFEgO&K}k28Uf|EHr5axg<+G=F*G{Ox}|8*cQUJ~H?3XU~J}{mX18&i(t@ z?Em@fv_spp6(RNG1&5wx)g0{e;LzO?&ZrtKCYazj)0+~zvG=nnHlN=a6L~a>c=c~I z_}#Z%67o_|?Ttg#FZ37cg)9un$MAUKOo+*y(wk_u2f4o|NX%q+} zLs%upRou5HJY2+i^Jr$KoA$=(8yQ-Rb=cd_4Jg zWn8aO{*d3<)F4nyPs=7ysC#YI-=Pue%V=3vmhv28bQl+PUHB+{AkpgM@uk&iK>w}M zSViRq-e|V4Qn&fj2HM3ciTJ&M22yQ%5>ovpUb-QBd3n8E;Ay9^MS;Wj%*<=J0I~?t zdIEzxp2Z}z_+F?`MYMvum|KAb|5U>3*#9u@jl+v{%u&9(tKz06+X?Nf@%wv=!}MQe ziEB-hzLkWgVAIY(GjlGCxjYxgoCa~#9s*6^oKvmNC7h?ViV#Ufr? z&&GGLhSnz3rMT~3jR#j5RO&p~oQZ=~s>t=f^4AwKl6z?>UBN&gAw81Omt{`X5j5LV z{k#zP$uu!*xkUf{(rCl`eQ)XL`IpR@X&;)TNFq(rBc9 z#WSS-=Qv39_wPPy%*{+z@-^}ZTBuuv#271&7XLYq<`%G@f3NrK8Pa-(26T|YFXjqn z-Nan2qn0PL7FCU2QC1gQ;Up-RNGHj&)rE^S{xMJNm3VlY+@1MnGA(Wg3IM3w*RQq9U`FV<=C9u3arlr|MlSOjWktA(8T| zO#$BBGdq#OZ`~93c1dywy;=*Y^+BIP@ol zP+rW;rw7Q|QQ$LX)+HqzmEK!todeodr`hXw*FL;eO6vAsa&ibUBmapE{c4kKHe>RkHaJ`fv4-WcQ7%HvoPP|>X|H>L zY>#<>JblpyzOqv5(0gD%UiAbvoUjp%HS{fy_v=rWL0=TPg4#F8yie{~nJ~@F87YUz z_G3z^ayM&s#>JkKzgY2Cc7FeyRM~i;G1z;d1t|Y4agXm-&H+$Dx{6mvr1GRW^(6}s zFt@lc26ky2vVy`|dT^x@{{yu_Svo%5hhQ^sSHq@}NoGCihF+OJR$IO}WObbQl{t!I zu!jC82g$tY@yOkGp-EOMhdLVCT%4?Bod30i}@pOo&otHk%34Nqq z>D#Fvt2B8@;#)1cq@b*9?cG4R9BgaZ_|^)u`eOHFzSr;YjI8Xf)XH{36%~B!+oFO} z{kB&?=A1&b6EyPlhjLT`L5%J$m3*IopZx10@;zdB(jZF%=*|MiDTD1eWnads&Wf9-(5XYB!&86wt z4Dhg@w(ZUQrlvfxjL$RN*^sTLz8PsO5ydZ*{LZ}Xx+_b>jAkoKYoD`c>&>(V$*PV>=LpHMk?&yFqzH}>?XExUWB&1 z^5xHI3sp`bF?@@rp`z;_X{_)kFe9Z_l-iz85BBhU=89%kC8_O==8vUBGnjZSx|TLS z(YohmEGD~84ujOy_trH6Bvz&y@#qm$BQojkDygaYROHXeeykyGiKVIZ8r5nPi^&sdN(M!bS6Z$m$=Be!p z1ezl@LO>=Bw@d6X@*}=sx{3WLlOms@vd@=lgs8oEDfOLKBCF)WR`Q=W29ZfVpIfO5 z4p2)<+-*v;8e`rkH6?>jY=8yF9~?d&Wr?jDZ0YNIdQI!SaVQHje+WWtu6oV`pEYcdEzNcJi{@wOq z-_@tyx}+?EebK1y#$d%W%T&9EtP3q2@e>6!mfGGGgCDpV{5oLBu|~&*#CXB z_23oeji&PGc_m=h8Mz`OVp=>We76*9 z`t3Q_H{Fzv54JVQ%rk)mH61p^?Qnf(`XKvWh-yXAJ3jsxtl)kYS7t}TfI+>-a4P$N zqNstm={+rm^{+vb2Xo)X9DEO2j^8rn#bEdf^`;6OBItX3UdRDY^W7QjrRg!)WRdKx z=Y0-K6dJHZn820JPgJq~?(8oKWRS)?L?uUT+zW!;ZBqM~BZ0o4GNhTq`g)?CIU ztE_L$bZBpd;N1&RSP=FZMyv0iQ`NR?YCBtgc2Y&|G#uD`TQ7f?t6l67KpZYWbB)m9 z>(-ljS?!>xCw3?2c`6=~V9%#^<=(uusp_Q?7wCm&> z%|b!)?K|Y(lT%B1U=~wKzUbO1Y!yVk zs4-DEwQ(;b&q3-lT>lEj+`53OZtexfdA7@-?2(Fs!kNE}=aBx(cteGHRC_z|b0E)x z)Mivs&|T;0zrARrH}2=n?dzQbsdk>d*RX9ZM7QW7oN;eps8UbJUY}hO2U?es32|>X zcf#G(RrW%m^K?8>4eoexDIzw^HO7ZH^HkD%ux#+eaq0q_qQcoWg8s>_m zWHw|^1LGK0Bl_onpTJ*;X7&eD}f z2-JmddRJeu`|;hof8fLZ9=@VbSEDERJQ#|a?s|#4ol#B9vNynI%9U_A=eI3BD!Tc( zH9-%x2xZJx%U&qaT%X;Fl6G4eXK`ro^`Gq;(C}@UK#n_i8>lGO&ZZ<{1HdxvT(9tZnUw*liLcumuvtcNxD(gtoF`v^wx(fSDL?SEH|92|Zk#)AFV6=O z(C!ni88uwa_alaM?Y_tG@h-|xG3$2w$XsSeX?KGhHCR<1e7qAAnNgq-2Qu2%tk{HB z-gLu@o*`1Z-@{JJX%=qFvavscE4fXtOxUzerc>)6=lg1|EaL#5|l zs+#pmiqJo?t#(hub-H;HrDwcPV_p=69p6^PUM;n7t+a>0e$=hWsd?_S_hByl2|9My zoCqz=`s#UOkRCZojOH0<wD%u7gh&MIws zM#lVaFv*jFG={~3#PZ@r*LF*3y3Fa}qKorzzP;BMHH^Ykm}0O646xqX@TZi%$`Oc# zelE%8!IPzLO5|5w4 zPYW=ES48Ky7&Z0A3=dltIJZu?4u$L&twXwh?C;ohATu1I_6WqYi~ zS39HE>s?m#_jWxS9J-DC7xfo00V=t!&c_tbL$Y2d8;=}bW-BEN4z_3Nnl5kW@NriTQ$H;!Gelc2 z7=!*jU01N&CYID4+dVEJY_KUw1z_3V`=~}2j4!3+*K%0;(j|x#KB9IsMD7r0Z+V$% zd)3~Z?Fy+7Vb52uwr@H$C3_Oa;z!WPcADlSF`6_+*L7ZiFbuYa8vN4Eerz***Ssuaf$BjVtWuv&L+C{F@ zmpjisTrcUGA1jvh11()q&zPo^q_6$K19=1$V~p0*(-+Q2yDhzPLlGFOh;$QhPzz+}zUz4On6#yIe2I$WHRg6+L-`kfmFnDVT20zIj$={4t<0 zu#f+{`)smk0tFcA-}SSK(=e~C-YE$!_gmfH@e?q{Rj<)Ir5-zN16QisP^EQ#-3A(; zIb$5t!;}tgjLzxHu8T3k{_Qjg0P6@q>YIFXo@vWcTvsc5^jO$tJ6>M1+QX?JfrVv{ zF*YPafKKaehcLOEbhdI>o@Qa@MIA8tuHXE66@Y<(=C+oO?(|d_ecx2=Z#P=J95mi_ z4X|a98u!jw)e0_7NU^?Hty$$riU?`ZAlP%OW?;r=* z$#P}v+Lj&)N+`+mG8-zYjHl2Sz%WaS>4WO}@M|NH5P0{F97q~B;VY5Kby`f`gaHej zN#RJ@ywl#RA9c7l<@7UnWG&AiZ!&Q=YswR@Gz6d7Gnrg80So0b7?qt8w$U7=3%L_Q zxQ&@^k$yz|?p}%v4RsA}9~ptvzvp(`-M!~cHNIYM;Va40@UEhW9|MKoicOcDeRH)F z`9&vO>;fiJ%Afsl!EvZW^X74?wY^@mRf{eC2}m_@-Fu;>t$38_OD2c={_dm2DX!;d zaxJM(CxE6;JDb^{B(oC6`KVw=BUe?1!Y4dgN>a{Bb~S8BO>Q$z8yK%NYP+3>5WnxO~?X6ocoveecR?W zD>aQ46gNoa&H7^w7pt?`!a~LFSMpGveIzYF@}!B%ckh0}Vj{B@6E83`?{$h!T`{cl zXnI8lj6PCk)wj7kwgo5$(0o-@RrO^nLpeD)p&*ca;xWG{n1Jy^s;9k>)ILobb>TWz zoo=bxJf|jfZABVDswKUjFOW~v4qc@jE^*CwkGbMpL1P0ivK_J6Ge}mPnTbtY_#h=P zX&p?^QeMZG$6z}yhw^zTai&W1)fys8m8APBQBx-!jzHgcoqfYGROhJ+0qJ=csx<8H zD&mYs&-DKQ2zkPmuD1$#(dC8e5=UIA#&jJ=c6QS#nr`1`NM?4^+%(Xs5}2T6xoe$jMyqvZn9EX$Eo-@jv72H3M~PLU zkpM8KQxk$VLr_OPi>6Z! z5&2-A07yK@Dj0)drI+VNpvY^likx%;^iTS=8X9J12D!L+yXM@sjU z#BzG`wG<_XzY>gv>MJcB3&(ZUr|Qc$43wnwMeH|}`X0qB2p-0^%IDXt_~m?J-9{bX zny^M#_iLoS{`iZcoDAM75vH^^HmdTe|j6g^wPUiu9vLZ`I9)Xi^ zu887_*tE&H^4aHt&>(}p)OM>O^E)sJrm~nzB@2^g`Fq=SPqG&w)fa{3a2YSg zoT(?@3H{*36dK{tXfP4sIEC58U;4FH*lo5qE*M66_J|491omYGhuMsZ31FI zGc?)@e}C+VKinP8&o2IS5wvu+Q&JDy*wD`!1J~V`y~Y4KdZt`6YwaV=UQ4JQhwN?N z>+9JdXgh+uiMYi(fMgUCLax#(dGw?6)FJ-av?&OiCig5}W^|4Z@ z$3&aahFOrwbaP85xsu5Q%5V4DXTO>1wX6vI85|j%`_|@}qG-L~JOlA%Y1?oC2b{e_ zvzKFx>pMx6UvZvru+zY~{WbUkL6CCTWUnh8wD_1sl(+PATdh?$5HZROk_b}QN6ted zrL9P#hZZZNCxPyqKD+Te7{#O;PQ96M6%`dB%Pue>qUibc|D>fgMb9mK{TMVoJx$61 zUmK5wwU|m9kyKIO3O79@L8?`e;(k8Q_D7aJQ0B)|bj;;mDaq%s+!Ma0j@w`yMCyM@ zwJqe0p>{wI^j6$7K(@yUT=`z7d0z5sCt-+Q1n-LG$QC!0O6@ZK8OuFAlU5eJ#+?a% z6|SGrT+mWwI{qZhKYf3E)$8<5j>U4Qy_G1K;?~TPr(Xs*W)N$|dgVdTAN2BwmQYEx z^1Lm2-$GCT6cf~a0N=r@IgIMF?5xFmC0>|6%b1ul($fpp(AxE7n}2}=UpI~ZoT35p zG^-~zv|AegC%tH+PZXc`7PZ}&$nw>1pInECet5lFsmIWg(K3v9;6S3oXgj204kO5` z#cw>B$d|Zh&5u!x`wY4>z?k3y-b1RvIMqsC2!^FK&NdHEt)Yrfn8-~;+{YVJCh15q?hkp!)y^m?w%?e~m1#n5J zWoln6A4qY#u|~%iYr%YmomO@)p)g_;}`3a?Daa1}?scl=9O8Gv~ zr&g9Rs<~b(hbYwbM5WT@kx<2o>o#!v-5->l*?lm_FIMfy+nccs9{CS>K=Vd)sW5Yb z^GitB;doL@#bAJi{s4IL(cSw&`1(@i59!`2e0pyi=(EnN!j;yRE5qh&7!u7+yDw=k z2eED^(zvhy10n&X5GJXq*Ra7kawOGnREk73XfN7|%{$J0zUmx*D{|$q-x_jP35o~N zTF0;)ypwu6aBXYFwE_=29{BtfvMh4N?s>9(l+l&z^yq_E?l5+H1NwWDJ<0 z)*auIA*-As;khzi4GQl_ckEANkzuueLgP_bYL<=t<`KZD@m_1BD+4cOFjj;)zkC3!?NPxMuKmK)Bvjdy(Cfy2&wDz?RLU6YOYcyyQ{DGIxS zu1uE% zpx*{1>@Zl6UVpYU#1`}H=#JDT7)5j_;{+7H#08#*Vm6UUytO&&9MG_k(3Q<$({f(T zD@8*e77}buDJ5^eBfbax+l1$Ah?h3n%N(k>z{HB*5o|N4eXBSSzdHJWGa6fBTS~*c zkX*qtr{E#BR#a)oGBoA3X;#271c3SNVkv2^(h?3Wbj{Wex37(Vf*MMSGIDXVk@8CK zBSq1{!M%`bBqTVl*6Yh_R);BC(9?sw%Jrxqu?eGq@ZYm}+sy%u@HK3R{rGVmGsNgx z`w^)hAn5xLp?*CUCqRlSVyb{TTuGUeo`HdZj*gC*SrU{*&@JR+uod&! zT3SH!`!+Lk_U_}V=cN@iX2#hE}^>P!L*!!90W*IY^YgTM1YRsPS9Y! zYSuH|(90-4v6>@1Y@nGfn9HZ6izB66_!s&68&zOOZf){~$5~nY3v1>Itrio^jDqzpknhq(7C6 zx+$0t3YaIOn1$UtxuypWw_hIh^HRw1@jJN{3n=Zx-Ko_`PQ`?)#!nVVMNCDJQ`C2R zW2Dq_5rYM)s4~#G?Cor|G&LnlddGmK^zaH#JQR+B$`v^mEUJOG#0pZ{3IA)7?Zy1!AMYtHLE6sxV(UGT_Pke@$g{zoOm@O%EI8s_pe)V@~yAUS>a0XET!qf41%*HGZb{ZO&4YK>~kKiFX z8un@xcgecy>U*)lyzUT8xsCYA!q!j%!qX{pP32s}kEcGEa z0-v^^en(Q}0AqkYLexstQu5*FH#NWxq|zZe(AZ0GE+J7vEdJv&$RtA0*uif0)4xUm zdV$b^p>;mPx(79=@oZA8WLXcCvDWoXSe0_}+uxnrh}s2Y2#JwY}!@; zY9GbDZ~3jQtuJ1jFhKT2VmjllnRX??PSf+he)&?T)@>OG5#8{UzS!0X(nt@5j{Q5O zfq8j2z1Q-f3PVS@l%p?vQ%X^y&i-w6Om zE;*HbZcA}tI)S%C2(yze%1IXBx>Fj&+Hy0f>)Gf z@h+&)eKQP*b=ajxAbI9bo!&n0u-}`ba%|59Y$pk#5istEdtTwaILMce*I1u3b1N7~ zD!18*r?7RhA)#-syq$^Ju1`NzJ8St|9`|+_{S+>>V>!4B7v@<2@ z`aRM0Mkf3~XM#pQ&B2`2KE}*f*LCW`@~!b%_9lQJIE<0nHq==d@5IbuE33NQ`2NgpPre z>;5hgG!IIya;rIT+9N;F1qvA>3c3qPYn<4uEWptydw8tfG|9 z5&+{4rn0{F-QD$2T-+NlnH}ZAbSBRF$^arc;zK*8dLVdBo0Dsecs`STZ`)HI0oX!6 z@uP~#Vpg#pyt-xY=leEwpLcz0LKB<=t5uNRdjwpCxAgw7w_Tg}N;Nk(ci-%GiJ_MR zuEQRb&GAu&@d=rUSCi5JV6HUSdcZ1)%`ta#cQG+d?MdY72pJ8p1+t%!r7#IZke@2C z_4KH$PRXa8dyy17MFx-a901V>a#da>QqVSTN}kcu9NuM``}Sq5k(*d;wD7-+6L2(M zqk#=H5MW$mU6FV!PlBq=P<__~au!x%FMImyq;^@3^=?nOw#IV()OEGRpf$tJv?Gy8 z5`io_`I_-O8g&kiKy>H%gQ$QB4;mVnn@8=<)2=kuwsa`H`3pgCyCcQzky zk3KQJ*WPBSl=LTYb8IWIG6=Mwb-N{%p_)bd*PtQS8EENdrY&tj^#<8wzT69>99)14 z_9G2CIok%sSM~6gvh!Yivfv9*VIZOEvs}1Xt-T@4Qd|Ay+ZqZxtej$b4o2kR`fdMeK#P_yRic`y+k=@w3KdqAmf z&#%pP)4Sv~puK}e?Vak4Jde1wme@FK9o6S`r#DA`_XU_+5)*pns<>ZW*u*7A_{v<* z*KI>KqwWq!)sL(>Ac%>vJUv!JfIGkTi7hp>_W(3+2Y<59{$T!W@`yU-2{I}3PEcOV z?1rE;)fSL6vg%>I4Fa}G7#69&x3as(QFLHGA;-%Ep!Z~C=8;M1MO8eN-AS-$%9z7Dm^ zVbAp=E+6Bt))oPrA-=9pj)vB5biB^Riq&~|q_o=?sARSY`D%bq0Psd41?c__s;=Tv zyzP5wA_}jOv}An&%TovavaIE5ed1IX)rXkAn85i(Hsg;R>*cTY>=Zs`0-nr2T1LWf9@4xpYqsHu3B?a9~VGtt2iochQdK_K1WW+^Tz?u z>sWS4*f8SYc3!P5O$?W>yirSKU zPUkG7NVMrkMS_WjPlKnBk8P)+;A;|0(#&d`E@CUtweA-IIPQ2S0>ssDgMad|(_RU# zXED1(Ndn|VQ!RcJm4F6yXPb!Y5Z@@>O`SJA3fMJiUdr!_H0J4 zm}?%(!%;2e7*Jutq;%z_GnO3I{Acn5?OqqGKRcP6Ae_&&=uq2E^qV<3%+_86CRzY7 z8boC}TjKr4!lnJ|KRjKG*V98R4GWbBxGrfcHn&!uaK8DAG6G#QPp7H1 zg-zq@z18c9t@L5%A*X_}>bE7mGJV@mwdWznn?u6%q$7k&IkrY^Itl17X}|319I^=d z+x~R14tOaedOgrL+K-l5MMOlLJ9o~D6Q+So6f|#p%^-y9h%a^g+87rXS8g)|#w=F= zK{+`&&332$7oh}{BA)wIj%iz3@89)L=`)HJfu0O9~i z)oQ?b0PWsF&-7-Bq)o*mm1-cD8T2;b#=x<7l5!{J*g+Z)QS#|&#_(;vrx*a+l~XJJ zs(b3G0r;Gvq?vXOR4_684b0EyZlSJ~`4L5XAa-g{-#1*W|7rs7iX3f^(ozdMDL(;S z9N-;GyQAT`0P;TQI;w3@XcI$7s>Yx6-YOvBmG7fDeVddQnMBsUwOv^3&#ft_$dr#A z%hN8pRBVs zmr;K4Iv0vJ&Nx@#Q-RJz=fHz_k;33|D1FR!eZEnH{=$VEJ{t|7iX007Q<{X<<{1SV zNtdR@xo=%xoE+$>5*Y2j4>q20(#P z8T-o@Sx?UoF2AB41nT8lcU0Pb^6F^#A_S&;N-G;Nj(P`r5|}(>I`ns4CF;e(aRVnh}hW|8PvXB zp)ofEo2dvIt6|VsaVc9*d>%E?;?dw?Yte>1YEM(%XAAOOL<6v8y=p6~)fldH*@&@# z-Pa2+pCqyW!4%LUB(ysrfszS1iAE1S8nlJLJP+Dr8|vLL$S=<1qnB&T{C+@Fj|!k? z#*yPu+-jFEU*=Rw%8^4f>LP(|=fm1e`%r;Ssd;-0iQg1=TLS95|EkWl0BQw^u~gGo z0SFCSqT7p7kV)8J0T#gb@}8n4kK)zp(7z2tX@EnQ)v@e6X+2(b4|f}ss$|%DLBpa? zU{)mu6y}MDB2*5Okt&!f^hN=|0$46+gBB0hwQS7)X~M97bD1JvYs*ljzu6Mb|E?Ba zkC|fp;MtYp+vUX|rxtjsNz}ow(aWh9K#*i|QCt!L8^DQamwFLQE98YJFOBWCu%=$6 z|8^BLGTVgpn8&t)uxL|HnBLM8AUpv@y%n-~Dax-h7T?gvE zcO!BHO(%n{_u!aTYu^@0D%Kr;MMIyciUlJ!9Nkt&sL9tvbR=ER zEq#3`wP5uBk=9Us7J9P$uvk1fwk+_fkfYL8ht*dL9ID_qI7ReY?0f5(-Dh)%-Ni5& zAQP`!Ars(AbMe@>%BfP`o3;jELib!>nW!~2HKnDcU7nTy)mK}kvXTcCtY^tTd_+Sm_rwC}-uu)zYo|7lL7p_V9 z-z$gk+kXPxG1X_09PQ#CreOmqu+qfk1RIhFv`1OgPM6;KW}+309de7Vg2QQ;~e48ftru3ht$4au9TA#{??tL)cutkuLl zO}6~nXb8A-0@2i`-pBtsdeUcIY7F8fN$&m}ocmCnBCNJ7cUY=d`w)pBN7w`Wv%#xP zc<2w?J{%651{wJJann*O!d0#NTPf?qc2XC4oQ7%66v;?868u)d^T$i*3h>V-uBYWU zyv9+<0ewf7!X0Z%E+h<^ujFlWH2ts z9OJ8~VI*GeL3>mA!tN&~2+K_|B9|UCJaMO*p`+mfx`pDtSM)cBq zWxfDOBDHKE%Xjg2XeM|TuTqI|sq>`n6AxF!YP>1Cg_-4w-{S;9QuzGggymo}?umUhfVGvft-`*DS#6R0Clem}wOf`aK(;DXoPuiyx2w zcwdQhX8Px)c}UYl{j}x@w(3j2X>&5|L)!GOgVES0e;u-ac!-DoeJC58%KC?Q{5IC@ z`}`;V{|B)>`>(A7N79qGojkrxMvzXdiy_?bT&1Y9)@E!t1H<#?*ShmC4C&9-dM@{EI{F@68iHI#}$n`i-QGmz4$5 zOqqN4?%lmRHx-X%UGvW-BU^iy!$XsY7)y&+P5@7X?GoOX#bbHg%F3D2ue?=C&fC`l zJ4;5E+aW{`OOBv92P==DWrB4^L?*i~4%+=3*IL3@rQKJO_FPWKc|rdVBFCBb)nY(L+Z>=3@Yd4dGnAb{o+5V=5L z1E6*wvPc5#6o6{&z=4LFDRd(n*EH;R<_8Qd2%Vl42Zips@S;`I8n$d`c;9;SNR5-! z4%lq28a8Mu`x@qQwh%&Q!T0Q?2`;csvJDbKldlu^`PAMNF; zpwI!dJF@@=_d)=fM;QYp!LP(nZU?pag#4M>4`#tn=MYHYijOA;u0BMp&~$Zy*xbq2gdV18|GKt*!0t z+qV&jlK*l$uu!}4DyPl_VSwHPl4b-fmf(W`97igEOzPK|$u2o0jJucdRQhgxryyBk zaKo3YkYmU>3NYr+lL*^+7NSZ6)9MUB0V5+Ng?%QYq_@F@_q-<8h}}pvI+$@p z-vyXwgxa652o);W-?2$SN&Tt08K@eNe^IgRq@?-mAqZE}cWD4;0=_Zeg8&k=SAdMF zahXq-3C4A&qVhqydx_k{?xc!FFh5{lIsysNPTdu@zY1fMRQzI-9 z=KR)o24vB=q`cOX!ATXZnBb(w)|amnfcM&AkIE`JW6fs2fBguO#L1H<0jkvCGLQVP zEds>;GSFjy?I5W#O3d4vLm0tdUS3jy1~pl@rSJL&4-Na^`udk7?{%=Z ziqJ%Q&j7iJk|I0Qr;812kdQ@3oUlzy0x!vjl{C~Pm6Qyzf80|t!@Au2&u{`?;^78J z)Sq7>a;Vc0`-e{F#4TIfrL;RioA{{)U}11~4)=_@hEgX_rAgDP8L&yVaO@ck`@{>A z-`BF7EOx+mCPZ5&R3ueOeTKl+b@KP*^L=yXM z{PFle3wFrnTod5}K9R}YBo)cjnY z%EXOd-VPd!zn3Q*G)`Qfjf{*GFsQlvyOV2GB()T`!RX-uzO3chvuD6_n_F7)E5;+( zWx@BpxO{m}t`RpzMb)YyzBi&hLC_FNBhAcb?ll#iL3G*uw zle%)&FTy_b5UN03^pr^X>$t$b66Tjx4}MTL=6kcE)Ima3P*SRQ{CZn8Zyf}!xVzF` z*HKW$a6=1OJoZ5rRM$y+Wzwl;)z@k;q$-R}PfrJHa)sO9<{>tKy^itD$jE3Q;u3*? z2c=&P?f{X*%F60sB=j?t=AD85j?3hspL=JY^kcbl>QU>jKBAiREf(Oi*Y%q^tKl@Z zWA0x{Hp?MPPpy;)UwP|RflR6y%uBfk&M4*nLrz%=svtP(Zv~Pr=oCmSEsEh+IDyR1 z@w2BJFI!0K$@{k1?(N$N_L(VZ^DbxxtStf22e#OnnuL%8gloJ=4grE!x7ef!xbVhx z1O|iI6#o59L!hVl>2U#xgOZz;8csX&-Dr~8miFq5z~eOCOF1mNI7EL6nNZrr--1~E z9zd#r!S(Ardg?9yT2^c1&lcFR@2%y2E{}cUJvULX#U<0JVVTj`1?hA-gj%)|IH&P{ z7<==88rSZ9d^-*uCxnnRsdj}_NYb1pJ58nvl~9OO?B>}yXrOT?NhJv(l_Aw`G^Es-v5jq}}c}$L2LrWI@M?3lFH)eWOP z8NK^7drD(e0T{B~MxPMp?b|0vgb3pz6%NieCs=bw-KrEhHB9ooudB?AR+hZis8a*QFB$1x$oGp~Tcd526 zqL;7(%PQ`=!|9c3%{flnDZ zS-RhTCev~W+TUv%UuOKIEsZJ*D)1T6UuvINYOcFr(PHD$x0xwtfmKYS+iAvXY8Su?>$hNCZ);ImS8mv!?M7eE z_+0Z$E0ozCKkuKXoy#N$6@0>qHZ<&cR;N3;tq#K~Zn@k%pk`O0IQnvH2;5aCyh_XT z8-ElaU6-;XATGQy`fmLbnBf7X-%ielx}8z_g`Y=KRo|{Q{%GvuT5Lp%*tqVwHkH~u zo9K$wq5=_q$Z{QiY?hDrJYg#G&u~ag{ckgW`p9R+2Q3axLm|f(iJw7ysf`vhmfOVE z!$%40-QZrjG^X?HyKtCe>rXE)qVre+-tNQGwvoPOB59WNPh&Tj8nkXAo^PD;@WUE? zyV~(8($o1I+v2t^))HlyR2WM!)y&OruP64zTbeN!fj`#%v3~vjeI8FPT?+7#jg4JfUm?_S)%s-m zZL6BQ9apzlT^F`0zipXLt}jp4F`9Dhzgyi!*EzXKQ_n^*y3O5*=Gyo)IV($n=@vbF z^{RosK7rV)6HUr&XZ`xkjAaBX!*jY-q*ihBvnE4R?UIiH@>{hh4;qmjhooYHxMb}t zs6zBGql*-AQBhGTn&|rV>&3)Sx^jmy%ch*$Cjk3>^L$ZOv+t60G3WlT9h`N+JL>Pb z)(Fs3Jp?!zcaq3qPGo#rPR{l1wM`6)HG?JuNctct$>!9lOE@O>592nsHO#5{3?ngl^uvdGFr6hYug7r>AFU zdkpu~|MX^z<{Y+|+PVzIs2eYMocB$P1*A}VCZqKNndOEwE;)zOhYlUuzWoJK8Y<+} zlNEPcTU*;@X3a*ai7$#X&Mh|RyS$y>E~2U}Z)QLpPg60VutrV+I)0f#mOlLaT&~~| zA^H+R`xTp(wvCh6DIzYqv%AjDaCU+cTuy5LQGeIO-rZ%sBlGb{S;;eXYIPmg0nMHk zgZsh8x(EcxsdgRZ*RNkMijcnituTc0ZHaV-l9#0Gj7=x%5=+$T{!Gt^Jba(U)Lw`l z85vnuSBIaER`MhYP7IS80InOdTw~j2(XO(i5MfYd-{-A+&2LxeUYlPonI;%0liFCh zlHop8izPu_inocTHB@SJIvt+ z)|Z(*9vhy}j8BoJ;U#kS0t7*TU06~QEoJ%c?|H0m3JWbQExA^&K6voptsh5L{6LD| zj?3YVcLg!Bb%w^ZD;WwSxl0Xbtii_nHN~Z9@$vDN78XQMIuJQKv+ap$IC;t}wNL4f z#q7HJVp_d+lxw94`uX;bIvE`vZnx#9acwrI_%P9$FN~LQF_ifyD};H*X>Oza*fM!} z8o}R0teUfH#PhzI=EqDi^c2myAosFhvN|wXovJrsNTywWNS1aR`La7!!=F#dZ zvg#07+I6TKq>28%eGdWh(fp8wjo0r6XbIx;?I<{zHMp5s)Nj?!QOdet>Db*R*Ud~3 zYWJEP^9%{DJ2z+U%bisIP_Auf4sV7DJn|C6k1Cl6T$V7@OXkl!>72DT;rHw^eS6cz zlCAAyd;PDT`5cIeqD5E8cHi;X;lo_U7O-m5(Si0dep-a&30-h5$BwmN#-IpVs=zh# z7*hJC*|)lD>|ttAZ!kDcby-;5@c!}GryMn^>JycjC7&~QK3U27ndkJ>{op!SbfV5t zfd1gY1F%TQ^-8*Ioqd>{+01M=7iIR<#@NR@^#u&9O3W&I#EeOyBvv1b3DR1%#bTEa z6R+11TsMI7qT(ncY#M$2XJ?!9FkL^r9o=+dcR~G|8)I(7u5$rw+bDhMUe%tf zj(t@fn~Ys!2fS0g61?073i)YTiR58wd?iI33Rfu_0NF_$og%Og|IG63Su@wQ38fdi-zZXC4A!0FjJY0sNE@Ac5SEj(kO8~(}~$7>8-_pTtmoOwA3dndb3ZNH{h^MF>toL!y=gwHx(_ zGhUo$iH(~D82`N2>kEz^ipy>6&3bftKP{Hi$n2q|gfcyby3A+XC#HtdGJi4mH9w}X z_O*@nos~-%3Hu)ls8P$l&JO0L>&${h9es0b*sIA(e>wxRJMcKQqimznrukE2!>V2j zHBB_d-Re$({9Mp|@5Y zn#N=A4f=`zFPK^?3m`*%go$8VwQ&ve?0r$jMG6scR@~KrJJZ*%@>;}&)-#+6Y_pF` zm!2`N>sGo=jxNa(8|x99d7ON2*Ab6*9ekV{4=ejH=Pz2lT!49C8OSzV{SMUq zI8_X`DG@ar_2Ifm;tdB!O)W1oi?d~6ue}%R%pBJx4A>s5BaG0UJ9oh2E+^&&pCDZ_ zi*nsyPyM(GNmto)G=F+wnb9Y)Xl=cw@*P$~3P+|2+l&XFMo)G-=8V_l)On8AHYyI+ z*#;^My+6;U=v0l4XpqH5PcTK2vd20_6VsZ`^G$qoZ5(ePzQJK)S2mBs_zR!6TFKmV ziL^Akz(YkdMkW@WB+KIg!ibYTj8@3v@x^s z_!{9cIhHljbXiZnFZUIj(nM&ITgz1ly{5*xpdIQT&Y7O{_2g+7dzU&@p)^?$e&UAn zSVvs6L(R#!Na{{V;9^DQD08H@-@1IuaCY`Kt)b0b(*rXja!<=Oa>cFGOg7^XV)`zb zx^H?rJy~n*geQ1@jcA-0E%BVHO7a-YW!H1-GHOikN<_n)4<(1tj3*4u+{PP*vsuN{ z)~HcEr-wcH1n41piU-InXWV8t;yEW6#3habGUwPUJ%^n3`ZVNCj^~$$qz&vIs%(2T z(Rj$Nd9R+rVAExZ?16GEiOerA13d;}moVI0C8MFb>k`lCeqv5`ES71zKuI)AI)o=R zW7UY&%MBssP|KeQV%2_W=JnjJT+8`QA3HtW4SgCAV62##%z=6%AoS^8$r8o!ZW}CM z*ddpW*Bqv9t>Gtl-3Q88c%42L%k^erMiu*f^^EPS^ojRkQT+1Pa8|E-uS<2tvi$Uq zLAg1raY}DW-Z|uALY|4+Nk=t_?SqZglYVx~vLyB-PM`BUE8mpuSc>)vbBj;GZ%|JlL$G6qrNOj=qs-jw6&7>v)v!MiOpzY}Ku!7F_X$eJlIDGXY*`ZB3J%SGRvm3 zhf5mF$*E@W82ZNM%j-(zw0WJ{1o>&K0yEx%@Tegnl3*exCMH04i0yxLGcz+YB_$;$ zCg#o^q5nDJz@% z!IaaDXV$w(kC<+HSKi}gjO}iIGQ;dKuC?2~P7SOV-z=Q@wfRW@Iq&H1#++#!RKOV& zqn8U3cI3zrgtn|<5~ha?4XfY3UrU?YepI}gumI;qU~ZQZ+ORS zh``YD-g}N(T&tUY%*W>}L6 z*nJ|z$*Qw&-tWs?qu4KzC1Ph&HMe&sR!6X{R~)wK#*{jMetY$UEQ&SQT<~!ZfUr?P zgT5GSyz;9Q7La83cD9V+?6o4Y*S)rpUqZr$paqc)0B}8fmMEx4UxkA}dVBX0{2<~e zk%q_Mr`hW{h_zI1gY_p)T>yg3CNqs*Z`I+Hrc}qu}1egiY&W~KP9dC|tH5%*w+;POX^LMzvgmPwLshTJ)n812~Lj66X}aq;3P0&Isw z)e$k)n>R!<8Ycwp!MEZgExluShK(te`R?aEr}gma?ZHOnuhJ?XyH};c7Tnqc%v>R|~(ALPONM@N9fX9l1yK+nw>fSMJUc!&S$74JeKkgtTe z^U|eDDX!YrU(j z%c?Nhl&kWqjvtS5IIv&Z`Z+%$f(dB_T7;te7$l=wT3YcB9uQ<707p9~sg$utqPj$3 zxb6%6{fui93B$)J1GvOtzqWW^Ko)Y;Fc@2;q}0Eki=JzdE}i!ojfuA<+&i?&oH=#K zEPcDDDyI0|MJMV+Du}5$n^%pg$;sKgfv0*pXbD5ekXHES%}#$N-gKuHk-S((o4ZY1 zAlTR`iC5m~%ziy_H(3V{k13E*%X;4n2?+riJ$v>nVyjjE-5GFi$4M9z5t^K^0NoI; zE+XowwE4D8MN$^Of}a+TWnKef-zZ0SYJD2;wESj^(wiU}y1Tn!0m*`NA+4(q4?cU4 zo!xLtjbtLRjB!VNLI$BJSODTwT;H;;FF*k)@r$e+SHr@pD=Wzj2x4b;f7sHQ-A^|Y zpt-7(SlmsGmz_17pQmjErOgn@tUJp=&2{)h#S8$;3*d&Ma!TNUC@Ec_k-T%rS)=)-49mjrF>8`7#1)?3-IBNXjBwS;k7} zCHXSKL1q7xq+5IEz1^|j;3?7F<4|TAa3SIfBr^khSc#v#X^U9WC!^Sh`7X&+>1eJG z07olBB-*X>ejGaduZ-%eUd$`M-@pJt*Wd)Il$}(IKMjgMv%u?rUY6+vWQU1n-Y8=c5V%?EZ)$RT%kK&8K)@a z+|O*k`nes}!Hz@01+CFIKYc(r-Rn6$ZsSrBA;1nNGE|)*Gat(r*t*C_W$fxIR|om) z4S7QO6G_7}apNg6jWtW1Oe-uZS`=LOGd#e4**t4~mw1A6XiA(bNC#%bi-?XH%LN;| zyHB<$O^>!$4ha?8V(QDXCZ1i}K^-6N_3WXy6>n?yYtM8rM&~V98lC!AM|i;cBqmxX z<*_riAAjGNDGjRcp6j+Of2{zzW8Lz*i#osVqIRU2^K$y{&qlKm# z4x#IdgNb~8VtVI;c0WT~z&^4^(w^d$jWw5h$1*-%PIjY}lT>U0H zn3$@!dhWNxXyY#(_ps7IR)U$sg$Cb6w7!lp{r&wlH8rr+u?H&I&jrk|g(T7}uCS+& z9VZ8?`HuXROd%T@7&rhQYKZVWBX**_&3*j-4W}mG_Da=sVWOk=@SU(jtKG-iBkkWE zfCNHMA=>Aa1~m?ux<%4;OWe0yq%7W?*Y4TF)0sMUU^p)IEMwE4S@p$}b9}^9;d4Tkn$X29mt%)$EcA&j4PdfYT^K*0V=LF^D<)Ooflx$L!gh$`yoXApBx$6}1 zzBsqRDnpUu*}(2{Em!us_%PR;XL^qG?8?z+OP3?|a9yhV25qh{?UKP1@lh)urpoC} z9up($_TEK^fy{4TN~BXG>ME57zWm}`Rp`on{%|6?9wxt2SV~F?9k2c{m6no`LfDPz$&ln3c%M*fe^)SLQsY`~B|U zM|OO(E{;28Y^M|qdi(K&Vx{Q`B1_P1z@{*;%g!Ml7kG%tKAWWUjJ8Dw>MGoRDo6*~ z;7<9Pfy8+1UN+5%tr{m%PxYn_{}Eh=xVVb5P!Sl|pw(^4JI2Fkthu(lHjTNep^LUL zVOq~K^mH=~e1XI)AEI)4sQ?|N=@%&CE~iPd(X&~X*_fnycW@mMO}BS%L1#cuyQcgPImm63up@Nde?aT zzks3xi;W6|cppDm&h04b8OHuwT1Rz#(2e|yk5Bf@g^lAuBl`A!lr*JS7 zCI>1ow6;iFT{{PF4QgtmhpXL?rM-4=9p{P2rBTBN*D=?$zSE1uJoRyS$SVZ0nhkzQ z0*-ELbb24kr17OfA6oi9vyf(UOGm$R3W0@$7W^%Ar-Z%T_VukK5pIVYA3V4^s=5;#kl)*dz@kcOaVfGY z+q-!cdeWK$+A~$>v+;6A)t}1sSz2~KNxw~<`lrk`{?igk3+B}MRGZL<9X64Z{eC6G z#LWn94OuIK$0X8v-y`l{jq#bGUsjh%uPj^+>})=tCv2B~w4(d1y{6805);MY;W8R0 zd)g}v4-t8S&Lo8@9PtW0B?Z}x9f32apf?DNPLy4_Ch=-%pS-wk?G3yKUp7|CAGMsZ zj`>mTvFl{(lIKEsH=+XXa!`FAGkr^tA2FE3ZW}{|P9Q(_^1>S=UMm5{}An zoOxK66L#hNNWm>0|B!Sd%HBX#RTXyH(8OLJW)R=N%0z-k3UtRM5@V&_xAeHnIfElr z7VEAVckI>Fpu)c4wiPYEi)@}-wO3I;XYF8Tw6wN@rkL$!VU*=E2=(AlPd%5yR#Fsr zB4XIz?A#lQ_@~;&DF?e|143j1{IJ`|i0dv~cNQ2&VmNk(;#0FeTVbf4SMm<~KA*(rVp@GlF}fg5d06r|JLFXcXkO`HPi;&vBMx3;#n z%kh>+C{y+!zXz_E&Ew1Y_HKvUJxs~yQSE^a)rOHgX^*jr=&4U^o~z2!Q4=~2R@b#6 zqG5UXyJIu+t`=KDSKM-D@FLr7?3LY4g(5h85LaEGSmUNRtaTxS!3m8x;(w4K0P?#4 zU5tz(oQAEFbm!mP`~4~8W(a9VD^4OJy4=%r&%I5q(YI$4agUrSTITFXJ(=HiXgJ+- z#M{$H(IuCX2o_-Gj4l?j7eNQ0UZ;GyTap3l0J=DH+x>GsUM+o|z~gD^!XLH@Y(flR z{~NQU)juQZh01N;A?kERnpQzk5n&Z$U1k1cQyf9wizPN=+)`<(FEBQOr+8glBrPh+ z9jmz`dfQQQ*ctFGYSP;x3v?0bdcHT~xg+kwTuwdHbbTTwLv^m9!bswPiufjB&ynj$ zh{T8l2-8?a88E*{zMmQGZ?U(x#~TowwaUNuq?~xLv5K?vC=o-{?;bA(GYuL-W0<;) zWifXe81`GW)6am6ZIMgyWq2>D4&a_q_+`+PKnz|*5W!vHD#-xZ}S&2q|(V*^pn2@$0!S@sz%iIjhpSD(y zlREVUn)|pwW zNPe&w9&&C0M)Z8ocG${B1XDm{OLC^Vax|nzEPdUxafQwFyVPu{vrV}~ct1>QvI!)H ze+w9bO=WKC0KJwt8mnv@R^Vu`D=CeAPn23U>5S-e^#6WS@;mc{Am5&bl7`l{wjAVD z0uhp%B!Jxi>qNBsR%mh%4VQh`k#OhEF>t9$qYS;Ctl@@SMLy&Jwx6G0Rb9QKjYlLj zG*nQ-k20}22Y0o3n+`SyDor6G0iA(f#c74sr`9vq%zZoEX&dvG(L`1WG0nm5d3P|* z5|4Vw9nO4wZcgUddHFwyz1ZJMg}!r<+tjGs5`W4REEH-S*Rl9WC|q3lQ*HDbV-%)) zKTKa{dQ1`$#vwg+0hv4Vlox(?lmzJ3TKp`Wu@iKUn7<<2YY7gk;%=|kiD|&Zjuv43 zNw(0Hc!O06E_P3n*RET4|KUS|35P=b){c2MwZ5A%0eX)nKTG)SPR}RU%V$)3fz-y| z*dT+Tpd@eppO0{3JcE?s>P0q?`bjwg zqM}`E1!uYeN6DooCnrC6a0*fxP~De!SDX{)|KT}Yc+QPM_T%0QttZqC@9v;--E|j} zm+S7f#KwX*-SY7a5iB@u{a&8+aobGJ{hzQ|jaq+6W%1_n)(?01&vV)K>_8GAy=)i* zn(p_76aXTYjWzjbd|2C*zA?$U~Vl*KwG_ch-HEpb{T&}R5Wb)mCWoOv)Va@i{ zhUsH;xm^+vCKwFn#Ea1~9+d<`VFmq|5260tw`+jq}tU-s|F zAc~S0v8!PF{Msysy#*hane`^_5Dc!n)YwqAl94r?f-wTRfq(rUvaMe{P7aSdZu#Mv z9C#Yz@y`@;>Og+##W*jZuO*B{@{zgCztC;%Bc)&XH{2DW6*~PX)4td%+U3C7PpiY+ z1(z|zrWy#E&9c|E>Q|D7@9{Doa2gK~M(S-a=0be*q%xT%nw_KPbSk%~aT`K&X=!OS zDo9gP=p8z%;!{t5cmjsCo&Tr#5kJ30p}Lv{!=T}1Ow&M|W=v+l`Ea3U z{7r|2(7pd}9oH`&x)%>M3ZHn9p|ZeGlGy{62$yGky5H^U>4dPe&#CDHxMe7BTH4x5 zklaB@3j$0~+KUz~0yHR7{qZDAXMS45$gl>p(K%{<>1m0g+^7iGTCfc(jK_Da{j}b5 z_zr%fMX(wNs?lvseQPkS6Hnxo7kG%~!F3Yr9L_m9CsA^l)({ z(;`Nq4KKz~dB;DX`ovV~e>oYD-TwtX*t0Cyvreyv6*zXL(ef2R*5yrg?SM;&^IRc7 zAG+}N=>N!P{Wz{Dig+_7Pj0RAKy}OoVok|3F6Vd0KHU$_8L7vRyccpV^KV`Z@#684 z8(9`*x4@zk9asPt;bQ-PrtT`ytB9Ya{>2l%9PXWIkn4em@`~#J^riA%W0pMV2>#Dn zMH?VooYi~R^GCjVoFH#;RDB zg`As?su_$gD+%CLkPScZeWIy(PO1LCEwo%PxAOe`3KmD#enR>V#-?`n_-Dw!KFAPu zwI&t&{R~Lb2M=l<9XUU5-JAfyf5S5*sDtLb^A}wxR5#-2CND*^TsyAe&xZn_>s+sI&dD;A`B(w9H03C%2 z<>lq5D!RlZ1xWlfgp|;Pg`4Vpq>ZnyW+X(NF|BR3=}|!C4U#NJK5NO#A)$yQuQ`K; zGCMdxuvqFpO)jQ}^X5q%cb`wo%xo%Rp%fAB>iKebXr6ljG2*AyCZF63b<=0P8)|U^&sl%DVP!79@YH;u-BHBmX?<< zQ&>eZ`N4L~G57kAD!TI3KrU7aM7n1eT}0GD8rEn4XwyVX8k*3_JY*D{(CpK zc#Y)p#_{ITSD|jxwhW4R@7(GOEFu#*9RC|8Q@*!g7{%*G_e}$5zVfvrM9nifbIj>X zlb$D$r{0}({C}9QUyfvhYpY(2cf{9=5t!q4&ujttZKJ7^MB*3RtHsLUYKS|3C070A zM60&gczN?$=ZUyLNVPO6hb+JCPUE8`44wlP|FToRD|7q+O-SKK2A?m8@h;5iPTy7V zxqdS13+1Rb&!*OPK^gyf%5Fa%nzxU{9Szz)5$Xn7knTuKJJb_F3HJ${Oq(qHMe z1m~1q{L#)Hw|G!{ZQ@K-Rz^;BdAZ}{m86R{w#8XTaE1{~Hy_gR`9A+lNS5&VCW3*X zK5p@$?1~@L!D>WTORKRa()DGk;Phmx84mDw;?-bMyULH7(`=z!OZl$XR`Dap@!e2~ z#ueE-U#BDx<4(kf|Jty5&-r;e{5JLTB`(shyL&4sHF*Gc`~`fm>RDkLj^rt7wM8kCt&$zj(IfzO(V(?ohh*-r8Zkpiy_E+cEG5t!jSQ_sDN< z0U~LSjr-2(d!{|b7cI%cDiO*tU?k5@@_KrBbQ7yr9bi+3b^;T)4kQahQ_|Aj`B$d0s2HyJhtoDjx zHWHaEsVT_=V(s;EZgQU=a{ykrZwda9clgJQE&Ro%_j}zqs(-Jk)iX;Et2|Md$l6%! zG~@`yY&dR`p4v^(pu%wh;~^Uw$UFa>_)oSzuRPB5PyM<`36BSunhTDe@@_^WN2jsA z+E6>Z*}e8>k?JqzH#CR$U5Z_ue-;)uz`bk7t5nL|IDW55 zIJ4`)Rd;u97=bUJU;0+4kR7-D7iG;+uKv+_ahg^5smEO68kgX!&l=45)Rnt7Tq+f{ zDIeRREQ|Y2Ldpxl<98`0!fk4poy1x^X>{rs>a-COq(7mR<6IPNll=!v%^010(oM@B zjgDX0zKj?#zpl|3F;>2Xrh!hcc0iv3CBq5csGlUFW~9<*KU#{s_o?oN)WNj$-NP3o zG;Y{Vq9pe+zRnZ%ZxGd_{G$U3IM3o8<)&%Tyxzlo$H>vQwc{J0*9Px+aYx*}dlui- z`0)Pri+5%eJWX6+Rd=hmVOjR7;cN-8mP2LhK*ETMBFUbZl+>8z>NtSn1+gCwvnF-= zb8Bf{QTE{7FRyP0))_% z?}1!vpF?Ut_@g}x(He)+Wx zQ$wu5l*AE6BQo~lL?43PqW@N{^OAnGAmwp~E~!y3d&)dQ(Z=oD=AUN1^xwLhUrwk& z=C&=%7@=8Pp5RN#$#!MCjk4XG5#^hi#Znf3gb3$f5eYV5`0cyXBTy13o-Rif2E<%i z0SCWV4gT_t9`Z;^E@LD_Zn3O-ppOF5bqc4xmz=Zw;&5m`xqtWwnHDc@ybA*|Fi2tE z`=%?;np@iP<4F)cx#7N_8rAa6dK~zHf2A-R=Co6P+7#Ufv-p=WtR9-|h0?8i|GxhU z$ zo2M)%L&vR`19e%b_7V+L|8KOCG5==akLG5fWQV&WLbP>!lLwKlz^qn1zL%KTFdLNE zRsZ5Wj@&hI_5@OPu5d)90_qhEctHaaC33$W(^G4YEkNm`O@R=+q`>lbn(hAQgei0X zhy)i(_9n(bwe^xE8U-HXNaV-z)GbZG?H`yhuuT3vtIvu5bS&TA^7afzAov@HL;?T zn`j24+#krWxlMJk%?8!OG_O@8j5Z+{E_w*Rw7%yUkj0SyFjB zE5{F+M**2Ni}OrJ=;qbO>D>1?z(atZ45~DM^`C>lxr{MWvalv^nWtu~r_HB(CeSn=RVG(E zo1F<{o1(Y9&X*k<9#I}kOdo|1IA6W9B^^iNir7mE-%e(+n^zq$0l9%P_iYU-9#Hw>{AIs@)na0-DOM5o56!9*WjZoC zz04*qMgvsLz@s&D)5_+b`Q2J~j`{px?$Q;;a{Z|o?b$W7uFSIXCx`O`UYhaf=-5^` zRxN_eaoY^`=X~zJ^_<`t+dtPxnjfCY(OxdF^HnlfL=U zIoIr#Ckf3yVKMjq_mx|Q_wTTMO6i&Q`tKl04)c4}u_x(+iuj*;e@q=M-<^4NW~X$% z&qy7S@*9}6dlkHzvB=f7_y1iqPIU4iSQ0~-=avNN^#3x(#_ZAAF$O?UiV^@s&)`fE zK%PXkXiNyA1P?@|NN&OF!3aXMr%qL7A&{gwN$LE>RaB*ck^a0tf}GW;kwM1GZ!DR3 zeLL1kY-ZgnvF;!L`z{K-UZ56FoH*gFOH>sxbgjY3qLc?$#N+CpLA2GuCjyE8BzRBm0$IIBY4?W97PygYg}HS@KIXWw<_5SE#_7F0MVcYS7o zP|y&>uL@TAYE+cMsmgngZWuRpLYs2{xY}1M37SE?MXtReO4$f*>*wDR9rW)jLYWSz ztop9sx0U&RTUxb59`}BZq;P5HncXCd{rF|I#+XO?CyGDwNpY43N(W%0(1Oc?sz67S zID2iP+y-Golz{$M%x&62O7g||T{Cxtb3<;>cuc+_Q{#lLZh&hPNklf-I3E>yY5ivo zL6};3GH0SiB3AMsJc^k8>ZCX7pBC^_KevbEI28qqN60@H6`m8kd?^TWWSknh#e+KdHxs4{Q(&e zQnW9sH1I?o`PSZyMZ>CrNd?oNg{K<|&wpcx9PH`uF9 zkg!MbsDRAPSi(1MJ{SFhS_hR0+4RDFUeAfX_DbtlSa{KX&kWz`Ec+z(k7^>cu2ll` z+lVl9^g_}$`xKAYrs2rVuFJHN>+l?2^{SLPPO8gxsx0`OUDoICW!LR~?>QHuY87gYGDX)bh`T_W zSFWkp^zdBoUgjLqDi!M56Jp0G*6ugv7u+Q&cdE|dG-Z}AJR20G=jMVIRj24e|rZur>yrH)g-)oybWVIw_XLQ|Eoa; zS+H-heo{}vIXe0hR9_5=+`3^Q1E;|%a-B>1CK(m#8cD})A34vzp8aci@Dn8Oe~+dh zC8!QnCmp{(D8uqtSYH1Nuee9g?r0)A>3J1DIc^cFD)rDENsP1RP_YVz;>p#G)7zr>K_7fv# z)35z~kzc0PI(4kQOmHfu7CKeMYuqx_0#S)wHu|nW zyii6=#PC3I=-yS%-cl5i3YrH}?#urE`VTvvq0r_{eE;BJ=#I6bDE4alaHv^A&Lr&E znO*J6FnAuV%F~Z-7qPyMCPF4Lj@6UpG zIE%f$%Y+UlTWmt%4Jy=d$6%>YQONOp6xi&;1+35?7Irc7Baz(bY0ObldWqK+GI{HV zhI17%56(8@b%mtm(Wx87T}bVRoM=KJQdQbnGmrgT?Ci1oLl%I|jfvmd6tPAsH$VSt zbsQieYOcc!dYYSGnZ`rztEQ$#Hu(?%8p;v@H9EAl_U;2MbZ3Q&lT+q+PX^?z(5y{? z>T2J-vRR^|H)mQARVoD z9K7^V!lvACZ5f2|*Ah~VT9U++%2uIv#(%XGGc2qSCr??KW>?nib85tcd^EO>~FnO(#k4}0v*^7-&H*8b7%iwy?0VEnQrn`YzO<1qM z@Q&3*xQb94-l*l{bs4xyh)BDj9qZ_4xIkWNXzKpDQ7~P0?}*$KL@_~9U)t`tU;UJ% zWI6#FV_;4!DtCfKXy_z}S55|ipfAzp) z!x5W@n;q^i_|L%=(eY-Y0qYIiapSyQt1i!yL1~SA=**qC zOiu1WS3(FZzJB>~lQp8Pt1H7Se{s5i`VazE8IoJ;2~ft>orXp`uI^a_id( z3>?Ie{^EneLhMK|ScVCGO@X5Qrl`)G|GxKUFDB%V8zhd>_puW94~1?$a2yIubNvg9 zph&wHN5=L_;sX1f;y(UC+}AD;8^(*+Fs;AXFrVb!FJKogxV&F{G>8yJw*PjOaaF7q zU8vLz;|`0HhanuQh`zoX27su#IV5PyPe&`coW2J(%OoTuZ1)BkySZfwRnvFjCEur= z6*P(ZQ^_lJy@$xz!;~HvvXzJWbcqT+bE}=LDl?U@LHu(k@2{KSQF7>BWs;Qe-!rsj zH4XdxdY#P*+a336yqF`8*L;4Y(LY_6YfdRHD)OINdjOK_eTnS+G8-50%amSvCg)5d zxhhi@w?tlq=h?>nt6 zyJ;LlqX$Lm+Z==SZg;V|2w(K_gE;Bj)a}HCr4n>lE#tgKqC;_-YQBcIT$VzlP(^XFNYuT|#rxC1J}E-UHULdLpd#gVun{0(-a zwr~ewz-LxnCfwUQpM}qD7l6KbPjyFg^Vj|st@KlQkYZVg$5bH`0qX{8f@sx-f?qh1 z7#@v@!9aiiJ6%#P6C;nKqxnpfV{i)^W{uYHMk0IU7E-bOhcUV10~LBF^F?urdTLW8 z_&Om0I`!_MCZET}>7he89wv0%a7_3f)Y*={0T$BabGkUa;EUsh#2R4&az%drjnuAp za3Mp=qEy*h7gVg0 zt+=2s;q+CU^yb*>a0>hOU8x-X_+qZDq%T~QfnL>P>5EKR#~$vLD~0X*PjGHMz3Q{m zYbKAGsQv@BaX*f&Mo-KaSRFf!I^g6g3&)|yjSv?;po+s40qQuVl|HBQtqt6dj@IR;oOz0^V+>GAD9AL;(y z!@$2bJ-TY>ZYSmVdNTvSL+8*DGzNQPeC;H%`N_5S(Ag-t>K?=s#6;jIo)Id-okTWS zgDXEvZg!sc#9W06ln_(zCw2OL&=4m$*}v^>Y&-k+R!&IQgLO60a~QLDGWEr-L}Qtn zH~Y1n!d$9MyB6~)||FDwk9~eMA zEdOWStz^SgYm>pGRC;(LZU7F^ttF83nG{yiO{J6KWN82@`rdV@Fl9z_>{pM+Os>5X z$a$Zw^cZqparGKGxN^oy3dhy5K3xibaJ=m?)O`Rm_b0#1ly2YLrOqvkoaT?pgb&-$ z2p{&I4N$&q17d>bpEg<%Fz@EvtDY>D;_6p`cxEQowz06XhgRA-i1 z3xb<(Z?~wiQY0J3>GIT^GVi%@0|lLN*fBpEkX$7M2S0% zn$YB0rxrS_aZqui=XBH%r?ZQTF#EZu7baD}22Twfi3M60eRoBzwKkngD(CB*1c zitFax3gnhqb}A3EiO0coh3bh(azMOdD}wovK0cM1TvgD(Pe+`L9Oin%8xwMi7teUU ze&WDR{^G!nIzEEIx+)h6d#_?7w$)|80`miYqr%`K#E0ec{InaAD~%~cV^%!exW@_@ zBDu=V7S6&VKA3J!R5NLw0CuzpdGWEiSyhB}1$dC{92=XwTg+QZ9V?j6RV&tgAp7MxA>vo-$5q{Yx3Y#_MplWF3tH)KwZ5Ahi?%tRk=XsRm9eR?*JJp zGe|B}`%uq&YHPq>4;L{)#f+{h9*>7@UmJb!_-1(0>XVJ4*iNza8u$5V2#SbusRNQq z@tZh$=MuqV^3hR**3UhDfqEw7-UFHxM(vcgX}F!RGG0G^rAbs7diPqy|4p~J&LCff z3l0n8`0NU2D3e@U@F0k2po{kh&OI3)EK6?d>CufiEp_-g=}ABQdxdZ;+F}RkT7FnZ z&ez-2ZlAy`73LJb)MC6B+2$JLJOcec3__}|JXM++mL@tz9$wS*n%;3(>73s2q9_oJ8hiA5jF@lVd{l=t%6vCt$Tx6o!6sru`$qplb3bC!c9Bw}cMFQg}IsF9v)-Tx| zEY#&EYE;Ve{eUGx64&{{D3s3gyR=elr%{nN6ZL$WM*e8ti&-n;mmxDF|C|ZBMT#ym zpPVQWcU*tx%hR3lLB_ZowcRY`!T!g$`tKhDLKE6~<)(X*_Vq2k4qSJRQ^XY&iP8`A zDEyYkK>Jdwc_+ZcSiJtfjyGB)r_|lI!!?sNr#9Id(wcV!ChH$T#gN?`!4S<2A^f;r zslP1S5Rgte!~fx*43jLE(3I8Tg+cexI#S$3w#Gaj5eO|b!u10xlPIzY$E@e-WJ^7f z_F}#@(bUa4xpSiXy!c`Bs!%3OqNd{fm3I8Bse4f03{f zRpLC@zi4}QGF}DoUdL}5NZH*@5a*(O{rWXlXa4z|9Hpq`$s{E;5mCd&7n-+vlCRPi zX&<2kMDH!l_XA|PYNw-#i)Ver5AVxxu&U`S4dPx#)&1i?78!hUuv{o&eDxWNoCtIQ zb4KTHF%~E1o2ow9I<*{KGUMDoy8ZuIn-o|^YFs%Wo<;oYwmqB%4AaKCuv98p9a_jcndYNkGU>iWB zs!FlUEHP6Ks||jd8n*|y`>2`O$<)`$e=_>m_KjUDd$4>uc2RhiDpfeCD!)X*BKp|K zDCs~|txXQDY~rb5(VdAb{x2AUKCBXs>sxRv)~~}6L7&i_I=S|kDiwhDmX5}{%+8ssi$@-uC`RNxf z{BCM$I`(MyW(i7^ti44laa*WG{CO2Br9ejPzivRThnYRmuT>LO2@dG3`|Xpn(Men! z@W|nhT&s9^5{&gXk9hZ?Jxhn4>0?JqB7k;s)!{E+zg`Xuj7zY&H6^kE)C=39Meq*~ zzh5z`g8Nwhr&pqe39BVIrgJ(|D%bspD_kLXM8i-<(N1BBqC0lOJtiTkx`;8tVKT7~ zQTli?b*ZO#4aoc5f;Fd@xA^Jc)ysur(ds%#*A~6r@rPWt;*Pm~L?1#1?P6k$PmUjy zRCaSNf{g9OP9BIOCi8M)**(-;&CHKXA`AeK1;m5SVL$3iW#B z=UO?Cf9tFKxoRsH6(2wc--aB|4{yWI|2CIvrNmUg#C>vC`JHf=`#;R0fjdj>!vm7^ z@OGdGC#P*D=N=P;-?dGz^7Gq3ISg!y1qoeY&)HHC+zj&lwlf040-v-cz&QV6L|@VRv9V9IGurGDu! zQ|7JMSWH{T>P7Pb|DXz2bQ!?8H`k=}Ksk=rM*|?8LqYK9;2gt-IK#C#?@}p?7s!Zs zKQ$qdCN(ef%h*m^DC2U?6r%7O4BdpSHE=WJ*u-LCci*0kb>$?@3zX&j{#>y>H*g&6 zlc;^(>(_m+DnOIzgm1nB1_z=w|AYM zldCH_*E@iXnkWFp8Vbhk6aty)n1OrrAY)`{2=#a3y5NiqTsoeB9z%tO+fW3B@s?Nu)%07#B7bQ3|crqH#R=AkLsG1NOSFYyDh!ao#T6^nSXcO9gb zIF_x29+m@DhNjOf%2ayvgvt5ye*c|p5`JK!D0JmxGC7|>eGZv>o|xl8!u%S`j@uxmN*sHo|HQUuiBNt#frc0WZK|Y8UI~@_g@rKmFaQunmQS%` zU~o{%G5OEpnLz3vZbUbP`Z}m?Y;f;SGi8}`K5Fx^O9b7*FVhoYlO0q4uHeeLidin} zY<&=SHMnZR>f#r{$tKrsW_UB_FLs+;v8x}5tUl9O5|nN-V|DC~K!e0x>#7JtMgM(v z#H$z0@?$66`}c_8^;uXdge|viBIN+ zQoe&C?&&doRm?JU!)W3Jk?>d}_79qQ|Apr?s;HRi8^W|H0bLbwY$ne)-?(vuaU#W7 zmdwG!L(q3MR{jY1h(@j*zpbQ9&C7B4e4Wm9V(B|CW*X3%6RJZM3zKac6~k*Q@9Gje z-0-j29UjXsBhJr%1g%mhZXP&Py6pZ+npvLbCbOP5NREbDaZ9)A=G2|=U;6hQ=Ok(N>#5s(IH zM7jm(5-CwikQNXW>F!h-q`RfNyMOy(X3l%Q@Ac00JAce|&WzWb&vVDV_g-u5wNFk@ z+g?TLGv5lGhG(q$U<%77>S`r3%rKg*q1Izj{DEgK zO+@h6Ue**brd4`yfA_MjT{^z4+?fVaoCN9f-@J|SU%ZXzu@;Zp3HK^znawOF;7PE+1szSJ8^3C6q2z%% zzDDVEC*g-s0V0Q1faAng3tXOXn8pD0EmSmT(3J^~`ob^EUqRi6l&(-HONHHkVz35d zi$HZS03FkA!RG)JblqzU@beo43J=7di)ds3D?Kp*WR=qOw-Ic+O`GRZTi$=(BU2uua%4#?P47DscuO6+ zaOUMuD31uy7S?B;D=NCzzv~!{-wjIlY7?A3z)wdVH5^kAdQm`x))x{O(fanf(ZdN!X|3 z@WNNEX1gul9y#wd$|aSlq$@Xcu=p0>pJ5WPoXHehFu9$(CYDX;GpTJk#cow9#Pjj+ zK~3d@lYVr3{M58Ps%L(*^y5`UZV6lVW~yWDwj9oJ89nzdqEV`HscHTs z_#@(8{m6_cv&LYZJJ?(w0O3gAAGXjTSgpXqO#I)cA4%foP*Bfk5d1^nS|!8l=;-X+ zx_%2Pb7pOon;N%}nZwG=rJ9@EoYeM9y=CM)dCh`yp~5zso3zLK=V1b74dN888wZZYEwS@)PUJqjpcEJ_(Rxov?Fngy$Gv~hwS#L!H8R1$ zuQmTUcs07v%NBi4ismbT=<&&R|KT>R7CE!4QwKP% z>@4p$59Y?BqoXTl9(j_3nN4zjh2N9WY5~{femf#2(!=SX9_38ZiE{gq;_;R&vmf%` zY!!Q1cNJQ{=}N2}Y;rt#(&nJ_WprHE;L3pWl)%mi&g@ESa4dB>NeL zdDYc>-yhL?Df~rHFilH?87YjQ{wEuBLB~n}&_UzYe-4TV=vNMoj#@0E^g%OTfU80N zKj-8DHLWC#JP{e$)>`@DZ2SHM3&HhV?Xk}~757Yabc9QLYHLqh!kLyhQ^|quO#=A% z-RSvdWBAvkbNHruan@#ne2Ht4&%L32?pEenZZiDK z5y9{l>%(*%>0mh+#nL1Ubw}9kDI}J68|m2TTWg<#AQcjlq4+Cfz-WGw1_ZDPU_-N9 zQV-$H8b&Weve2lI;7GIw5Px0ifG=GgnNM||F&Qfh933h!wzET_dnM0gC_`ZrBUcKm zWjd7ic@zw9iI>pqILr=?jvKwuReq4+hx*KH&Fuz!*MTc-vH)VGOuKu3o9 z9;|zuIOn;YI&J-6hWVCYb-AJLjifVZ;9FBX;dB5JPig=6#T0Gug}>4%zoKXNj@uYW1oq zQeu3)BZH(soMut+^KhR0h*6j622Q)6GJ`f!MwW+mO9(q*q3&Rf^RxIgGRFUWcvQQP z4LC*&TI%bTFwxKe(yk9E1~g=Xd8X~_*Ppo59s*@v22*c5dTL;qqaO>&$o^-U=^^uO z2Oxr}S~?VbFnR9yvKinuY`I7*19embtZdlU^M*!@T7INy8SN2T1H* z)XqzT%fjpvFQi3d-`3;?oYx6MiPfrHGRi1_c2UA;4fkMPI1qg}G|L0p)gci}{h8in zl$6F2Fc696$N%~bTY~gPJ>PL$e}_RX(K2F$kBq*5euFOPaSI$@w*MSoj?rrOYKai4 zEobV*fozIZ6jx*#_!cmC>X)-m`}6L_uzJO**?Z15*JAtB(aXL4c)Kl-A_Z%(1y(;x zGbWvE22>iUql?Qi(qlS#!$p}4EU%a|<{-x|v(s*kb18?XSWUiVB$LxrS-5ieT{4tB z#rlQ+bC5xh^#6PxCVZdZKi^lg1}O~6Wvvd8r%2sJaPVXGC))p)FX8m}Y^>dQ zrcv_Gi@G~!KPT2K7ihqu*;^Jlb2%S|G8^Nd`^=o}S6^E~E9JC^WwwWe_&IzjT!_0Y zeJQfMcEWFygu&6Ry2?7u92PZ0%N!2I=wc69FAfn>Re;RdJQ$;bV;S;zkg%~942^=6 z3gDv%7KYPKxJd{EHx~q|V0?+DMf`sPRZg~e&}~SuUbxv)0~qukiQ6Rb{vBpLxZVdE z{QUX5ZPkuF>&N6%irTkrKA+DGo1zbrGSt*`?i^2|@9ofOj$gip-HdaKG}$89balAd z#xUyPdOF#&eh9nGQg-X(@?*h&7J^4-nzftaiVhE^pDy*$P~$XfmgGo|>F84a9lDyj z9V9GZavR(_LAd_FQl8X$qG(f`+<`xUXvd!Td3g}~Do^EK960>VH#^X12P%(N%a7pI zA>bbnkd&Dq{?8MEwL19IX4Wb0)2Eg(Je46U+c4cJBw=!2Av8)hU}-|gLVEZzfjAl2vcyHSI5dl z)^@gA6D=O7#kaeOehEFH~` zc0zbwpJ``lfXwgw$>SQ(ObMIzSBz$j3Eq07aW-+D6-a7#8e_TUa_)MNr5Q5c?k`A! z@F1uy@C+OSSv}CmfQQ{OWCtHM035WcT%z_WzbZ+r0WS(iN3*~vWTyg33y^T00-t6a zUk}|zNV5%yK*rwC$x>>&h;J?r_Z5NYCU{nGX^;lod$%S6uUzFBtGPhZ7O1I_>~(!E zI(I7Yc8zs)om{v(7dZ_aY@N)*ZME;u*eS(ZI`D{$RLd_ekjKIKdPOZ7u7U40RyHng z`{CeGP*^s_X{ZirLHvAA>@KbaP@CKmnpWxS>a)Q0$=Xv$5goTG?jaW|1^fK)$RHp9 zOKyKq`3S4o{9#y9^@Ot0(N4y5O68IV>1qnShVi)xcYq5gf z&DU;qS(swx3p+@CZEt!5!rR&gZ*7QMiC#UXfKI&$zEY~Z_ceQBndG8~hXk0U05o=mbwE2Qq{s^>;Y!@rK{DG?~^uD)m}@ z3)1~*Al!P+rvJ*avcAk#SG_oom?ezCb~so=Lqp;-Sa9chFj0Xdf~+68$4=v=Z7uy%azXR%f03HHbfhRi}nM8xy|=*-QDP4hR0l~ZQr zO)lK8eRt{;&8j7kA&PbJO6$mwhfen;OLCO*Jjh8b^Xz?#T046Nm$ll(QE03-UF@Tc z%?N;ieK;*gdn4I123{ay8Z8x`{lZeck^w7JX!2@i?&6s-V>tDmN!D&{^U13|8W?z{J09Qr4++J{`Z1=Fp+_Epr6&$|AXIoCShw|irKze97{tf^HOLuz3Dim^g&HTlY>sp&<;xQ`o(r6eL@nO5hvGY7Z)X~^Dg_Qsbt^2hS@{&_c49^bOjlmzpCAm zY8lzc@YHR@u1#QD6wu)?(b!?AY`B((U~u=hfR;A2ZOYO@Q`%PkxJMjvT=z|9TdZyJeSME7+_P2o z2cJ9PH2b&o)Rb8+e-R+GE(jnNWjEiq2vMBou!#M!HYVzqsVjWlh(YP;yAc=HMG8s! zuwcoKr%X_Q0mTsr|;4D+w zKLs%xj399?O_2z>yoC0uzK&dFe5=rEvci7-EX#sT?Zm%V5HuvE1h;G}9Vn-aRI+Kb zcBP-DNk>z^HLY|Gz*EmRpz2i4ip3}%B6=>ZdwAfN!mOo%o#f`qnw+J1Y6pv{G0E}enN&{Hntrl)?PM6jCt)h!I!126+| zTXNq(?FJGs$v8Os0fB)uI4!}k`Y^^PS=?rGO7zf)2WD3&Wxq$J9tdM>sPhqb{>hIo zc~nAf@!}^yjO?uL0JGI2k0i{6uF**-lV`yOuig`YQ5hS69Fm}`g37aUq^^8#lj z-Eq9Uk{toWjUYFx%*%W||9wfRnee7#T_bJ4D5QEdUg*ve9iM1@k9Q=Wjg^*HSBXXg zIbge^t(ND|YMvx!=f1ZhYZs$&yw9SL)ju&|U+a@Oz#pQK zH$_47!&8spr0U$8^rag8EGT&TNy>X`3tv_<*^dN`MSxoCuK4@w%o_K_%I(rg93}h) z--E^$?Q*hXBxk2DbgKZ-_{50<2pv$!2=OxNs9)r2Tf%^FD+(lY+AS^PRUf^#rKTn( zA(0>r1F~4)zz5`sO=g7z3E}bAdymZL_K>vtMQN8R6)`y12F{b)V}=neq-iou zs_Hj;M5SZi?9aAV_xaz;Y#9zF&)!>IZVj-4#j;-=c7c0+yvKA3NLj6~eOvs5_R#ZW z3D5I0-ej$yyoQg<-!x#|r6#IY0oJJ2t?m6LCBD6Td_*(8n_=9u1k1=`4?>qsfL}k3 z8sP0)ZQfVBFWVM9I~)DT&Lhu#Z8WjP&1*9h#v-}qxf~8oxW#l7TR>)uMT9+%lKwog z1iFuUlguTu0GQjN`V6{4v?V2DEoQvX{I*PWs*t_;cvyVvB#E@PsJrr}!ajai)O8Xh z^80>J{xYxN<6F>9t!y3R-%L$cA-;RKqrjT>)2klCu!AV+bW@yl>#lg6@@R!*@wLa= zaO!bk3Sa0%Bg}j5^ksUfE|CSQ$u0Sy3EPhyO-&MqdNv@Zp$&r98R!BDuWk?~&9uXR z?e@J6@1F-d8syCgynjj+M2*%zg$W&pjt9B9Kc_wh=kGUc)IWq-h?I?Mk zGl5F7A4V~-B-N{mKU@y$6jaiveY*0#k;qrO>Ah3lrF#Z|E z=G@$x28?``RD^+Lg-@(T5Cw%D(+x0b{@9{&S9p&*?920uKq>KfjwHh7|}_)-k+EHZLO7MeDuDHDcV#~%!5FdO0IH2o}*(wkblHKQy0rL$;&S=(SJUywtePVYecly5FgmG#X6 z-pHAjI?sEg{xg%F(QF;m1{Pz(iEd3rn79*-DhEgmTR2tY{M6nr=v~B7BD)esbE!uO zckaZr-9~~$%4X$6@x=REe@d+NC`btEhKmS2i|Cc=zU1gUDZ_p0y|qIi+ZM2Hc_?ui zrT&Kx_Vv55Y~ml@OpCE@37!+ETQ3uhJ(k#ph=&55Ea4M%X(u(ml_3nlz+%SpQM40c z$xUj>3u&#KK=MT*J2{-`qfi)yrCUwKJ0vXVhtV6!)z-e0%Cj8k6Wx4i zm)-oL{PVRZe*V{0Bp#AfvDwPA=;b*ahcjfW01(u|1GTjS6O~Y1mrOiSSHbFtsJ!{2 ze8`LGdt`6A7Z>l)K-&{iJ}F>!6LPT=E|Igtg{~w*sX<`mVe4Wh|7Gh|mYZ+9*`yk&R2RW% z2qG>PGw-Hu&Xkjl{~n-f+Rw=8%sG%?0HgASU$1toL2(t83Om4FL!xX%-f03CNh79uRM23+=5NBXwlNZ19oQ)BRN86M8b zF$=HtTl1k`M9lh-WtKe7e34-!XYGC4uEL`iBwprwb&dD=%>jFHum&ub>`_?ei~7J@ zFF{Xk5MVZ3*ZpnUbj9*OtkSxLUPE9Kuh>T}2K_bFMba@a|t zSgdJPuJstSvXF?a@v_=zsbs_EZ@#tA8TNrEl|;a$EYSF-Z(WdC^6b$U0jhh|{$HgMa}ml4__?`nRhruV04&&_ohKxo@e@HqL<0i8@O% zLI{^4&wK=;_Rc&f=2cxSEfFGeDbNgb+yisYEA{&d>Q=Jf#qRxv@i zr(_b|Eg`~ucFm!BBsipglyOAb%2)qRCWy~hNRS zB9&gnz_6oRwC_T6-Nwv)-3jfloD8zD)-j;Qx*1?7h~jdn9^J}pKbA%tsE^~jDJe6`2E>b>Y?v9+u4ftxcVPr zAMozR3Tl6Ve7?RZh=Q1GYrWbQC5{llt0b5+w51L(@~+{DWy{kd@0qpn%H`EnCc!d5 zj%JhQ-ue0px*PVs@qnuYrU<#pvB$W^t|A2W29hSdJcVG7T zHBDCDv+WMEpO>v=%Lran@mcGQH~OMp$tkm|cR3l%HCvRot}m)SH_+9!y{>SZ504l! zT;JU#WUNr>kdr;#wy`&qle1N8blCe4PFLGVU}%+X!TsYleKyz|&`=6|VKxD-<^Fue z>N>}C^(QH893K+2!j`-u+eO|eHt}@#k??Q6+kBC$FTajfGXvOvwg?=eBQDO~!vs(A#Y+sP| z*J4k-k^8}u4<~UE2uw|-(wxcFrGRTC$B&y@P)&Y`J-`$Zmd&m#fw6GYmruD zmwkJvkd1$Misz2`*v=vuNU9zui4mh*zOCP~BY%3Fo$)(Lte(LM19v(&jL*-plOnzS;Y#^}Q~;IlWJB zdIZU&iuOG%9m{ns)`QlFdLI$7Zkz)A?>Ia9V3@qNwzfqU4f+`&^Uo*P7!5-L(!)tf1k> zn*dsg6IK9x5jr7M&Vr8h8c$&B5Qx77ZODgU1@$j2!k=GXzl!vm%|2yi8mr_r9Sja< zZnK$7W*cf&Y!0=Jd(&TV-&|)fADZS zK*Fo=;*v*UH-~s-mA>A`zU}f|DV?`IK-{1SFZ)bgnP>u~H@m|JmpCH7fL;O<(d>Al zTG!PcccY8l&1_?}*xwhuqRj3FWf2;VNJ6F}-F1uY-EZzusn21YV+ynKGwkWkMuk>k9z$|6;U0h^c@z?4j1mVlvjT{_X7<@{LbE7<{gB%T3mG@(+e-w-@Hys< zCW&PgTsRVxu>VVvQ<4K17IuMmI6p4~+>Z3dqy3cSg8aSJMb(+Ded4aDODKb1MOT6Z z2b08Y)eLjZqS&W=(IzTxQia9*S!34fN|9Z}|9lbiUr9>HICc`^+c+)vt1F}kT*Z8U z_y=Wf^2vF(B#2~~Te)>Fk5rBMpD$gqrK5jZ2eK+y2d#9KfaKvYI*5AN@e(193Kv}T6!;C-MQcH#YUSdI)5hD#&CC*i%skNG^ZOa zwR8ULf0MG_n-_wj>?R4x!sH}nykBZxmgX_2!1aHIy_=y1q90lXa{(e5&G-y@C}>H_ z)-30I^eCD!%TXc_JS=f1vS1KFOWQ-_^Y~cyuM-3?k;mD8Lqk^PEu5T+O31#iJ3XX5UKbo*Ox{}~e7)y_@}AgI zo=)S?$$jGzP&P&C*N}azp9?8@Y&v(RPtEfK_vRRzmkcUfHp46p+}fTm=(d^o`~l2w-HBKw3`;OC1wlwF;- zISpX)?~b6gJCcr0c@JNyW^2I%{pN@r_-IoU#HquPqDzTZ72{W9=lyGK;pzE59}Me| zm_Be>Uv=G03bJtD_z8@fyW)@M`t7lDLwQ}NqV!=A5lwxS#}-rJ+mGyty2`HK70I$V za|uZY5|Z^`y0P8|lIpR?@N+#1&@b{VBuBUaq~L$@2=tLm)t@g4@QT?%UM~~(LUqDj zc3|ot?hbKK zi;q^daas~Z)Muzi93FI@;?l9O0E|5Kxy`gcM=D|=4el^w6zAYpkL&qvlqfk*ug(T=P>bGMn=GDD0CX9aHy;|I%aG6>js5^=hiX zHzy?$DW@m-fbPb#$eZ33^SeSO$QQ~?(1<&UNr>NQvs4*W**c-kXE&6mM>+@5;15-L)UqkJ@Ix#y0Sm^@ZmOTW2*e0-#3e#ILO!~MyYo`a&d*xi(gYNFDlXK z*_vgfrp}z0+9+QK^N*EI%A@TtXjz<%ovjIu#h)+FiVxN440~!%vtR%cIuw z-E2j5ua$+74?shNM!;)nvJJ0CZX}Ltv3}oIN9puTz;!-JKx?ebACFA1Ax%wT^lRmF z%DH7Jd)dF9)VX;M7ZSTAKgvx~Hn9&@&G@W;wA~541nr)hNvM)s99qONQkH~x_c{(* z>OF}5YdyZC-_{g<(J%qCN!6ZVpO(^G9AzF!i9o+V16mos z1e@o03~KTkqjHs83d)|BL9fMWM?X>-!|y0GfQFE1pH0E}`n8U=uF!PKFJxe;Z)(A| zg&^d`@__70)4}aD18L>dP>kZ)R&jgX)aNG$vSoy3A4&D7Jw5dlz0d=$w|@b^XF5o4 z2K;TtF^OQCYn(2&+3FA}Z+!mWiBi_;IREvq!Lo2BjV7^=_}h+!rrTWMubPEu&wG_} zsWjC|J3%6K^W>zCP!V*=E7#iQu0te486s7e~o-BE3Sm@ ztCPFzd-q{D%7=_vQ!Y{Zmbv9NEQ z`p>76oU*cIDN^1oF)DltZF)9(8v*f9u<^X*j9TgU5+RBt&wk}i6s zZTy4DHxF1xa=m~Yd`RZF)#)loXK!yEu>y2#|4}bpL<#l%$I)KKC{mlX)1A-v_9p-y zH%Hd9n)LFfFB@sbZDClCXadun$L~h+UM2C?DgGemsZ)r!Pw699T}2{4kmb*nu34pl z9l2h0_^0CwA=%c#^@~Gj_3B^h0u@4H+BNKNUz`;_mzPKSrfX@A^4oUau}=AIw>+3A ztk?gM<=UTT7e}g8Pa?3yJ_xW4u|RzsviA-?NBKf(H`($q2?vR_{eCo*zP43D{K1Rl z%t>mJu-0)o%!6ArLc8Z$LGuiXC#^~mzf3hYAe~iY$Q9>XMD3$fpSx85jz5aC$Ip%( zNc}|8m!qrqZhOwZ%VL}n&3z?uFqqf=V)g&h_93qPBjrNm5dWp)OZhTVT)zVlrJj)K zft7V;06|NH?C)66u)Zg}LEM0WsrRxW=bqGHcJ=$#OZ*Oxk2O1|8_fooIbF+2q)ocM zPGMRls9d!6+Tw-Y&C)g$JZnO`rq5wgao9gv;aR+CP=%q5had;-Zu>oEnYu2ATaT!_ zjhFlVlZQXtq$+H%k2vu-`6Me6y_yt+Z;2Yid~2-uyAUDc{V!!t30d*oNZQ1Kdm@=E zFxD$D?S~tpJdCFyLI4wk{|zcBBp|Fu<{dKWD*1E@b>AFb6dQyygWDb=oT zc%ID+UPKZZkGw|o+Bkn1JtF4@pdFVcjD39aZqU|6U7qmW;$Q#ejr>)q-I+Syu<8k! z=mR|}D;Lioaqf`i+eN4F(`C0{^y$qvoI?JAmDO=3H22M~gTb`27aLU*^Dh99x$PFU zdX>gAQoF@pO9O`Yq^b^S-Xyyn`Dd|7AMI-w*)fpuDv$oAm%V*N6$0q_6Oqn)7s*E% zZZln_3tg6QnHA;ocw9I$lf_WxI4(oLdVzWYUhdp2-a2o=OEoeN%!9>F_v8JN;sjZ~ z8kfKEj~q@@@=xWcin)fV_mR~9G1-JRF?}7>WycGOKYmBmD^%})ArV_0_BXDUORB>l zX2M4~n9JUya%L5wdn5XJe<=e>IS zH40{CIo)R4+v~=?emG;fMk`M>3zV&Ki$-?YvqErsIEqns%EE~=I?}4yk%y*acs6mD#heJv&)+8u+U^I|Td{@wgds8_F&?YjdUp0vSZw6sp ztmk_d9YrZ70Un!drh350fa_^t$?nqG=@e&12^#5*h|1^HI>|QkL@MEAY+|GDm)dWY zp>;A`Y>zPywK$(6l|>axMz1<}@t?sIvB#bFCH- zX&bghXS_DFmMn1Gt}E;cyd|8x{L!G}`)jQVOd@@_MUu>CUwyp0MDKjOs6fG6k7sgn ziqq+3W8Qb^2^Y0aP*Vbw-ksyZ!~5E&z7c-ipeRk}G^HD#sMgkO^F*>pIToDmD3L#+);gmS zRgK}C(sSXp&l3+a!cCU`+qxjXvn^(7OBk}eM|P@3W;+TIVZ~hOFTzpL^C{eP0O(M< zgzz**>GYcKs8<^iJf{XFOWEboWJxHcQ-UON0Q>;}u{B`3gwJt-R-9hZ2YV_Ni&&<@ zMyoMUPf^(S{q^=Z2C?HFSx5$g-s69@f1v9wW4QmRukAxRfD(?=x$XL)77Um5byEf*m?|E*Q2pQPJG$Gkp833&}Bqr>pfhM~_;&Z91IIn=WztJ~Ve!~)#;ak7c9sy-h!$;AC zRWIB+!)|rUF5EQ5`<9lQz2J_o+nW|1xd-pn2k5S39nMs*|066^=QCO^&V`3S#0sY& z_vjDi{}MBGxzV04T<3NEygJ&foPjqnY`@$<%Bc^HwX`Ptl;IC;rRM91Mw*})$AlC^Kwr&x=XBAH}By`2KFQ%Dq)l6KfO0!c?>FX;?w^(8n<%s4MstduRzJhbzF2d(s zN$4H+hRPTQGmC{2e7m1&&LcWe`HZ6qFCzJy?uRBi_;QzQpD6pfM4 zgo&t8h00O5xyAS7!_BEE>qOv)1l=viW6w$5x~bj1<;C$Hx^`Ji5S3r~s&QNOBG zaKBo=CYHx`;|{+oebzM{K6nNSz_--+snvsO-qFF_lX2_7z$ul;=ct$)Ax#IHF4*|^ zRBup&y^x*74=I@g8@mQozT5V3En-@|p5ID3n5=a~Y5)$1^}W#eMwQD74t9;-<`vJ& zg4NPe`1aAxq&kN&{sfR}2mNK`+f29^e^{s)pSgG<5IoBN=MQrImb}5%dUjS|PR67r zbc1GN;x&W*tgu@xnwv?vkzAT)%y7{+mgp@0FKpQ!pj~SQl8MIKIhXyxd4L1H>*ZRw!`_pziR8p5f`oD zIvU-QD9W@l8@8mp4@WDa;`w!a58?m*ih9QvzPA1XI^5#iyh6h2SJKaCTenjzpwUmV z*uo`UEND*sphwolR8vD<*s~i;@)?2lU4#dk{wz6MRJGbJuq-@8R=gj88j!gADEjOy zCXjs6(ATizd!q1RU(HfqlKi(iw$_Z{BBiY8aNNTZ?pWLQ#P-<9^2fVNz14!58j|zv zlQd}w(6D^5U9$vcI`{-4>B?ORPxxvrU*5gu{*GS3M_bZxoX>5xmsYlJ9KjB<1Vn=9 zpOpUZva*$nCILizogfdyEw0?VoYU|_ul_(`Ahnh&$3WTs-et^vKSkBvX}jb7c6+>_Ss~*$a-Un@lf~zn^}WomVe;!!+?iR<>&M z$&(ZBKP?4_V98-V^ZyhOvSC*1dC+Zk z3vwo{XIWXcDILeibt$u%)Ab37n+V|!Qu6HNq`(}dj!W`*Il_bBouRw3ZCCz z0SnkM9xe>fey86;00mh5QHH$t{K(m%xLK^4>+zPtj|umV_5ECXmg*kph14UfG~N~- z|KK1N>#-4`i)J3=y)NH_-1c@p4MD7e)1I0c7NsR#7jUGPFxmnV&2Y@~+$T zyxP+2FK7pvT{eN!Fw5=;?e7+o4If>+aBt6$xgS1sr<9X}pNhcgoa0diRlDjPbGIv# zM#P93zB|;0A}yIMal8ZPXDZjdAIj(6dNz&x)vdRoc-y8CL_IuSKiShv65k$iVK9o_$*fDu%GL&Ry*`%gtxv3jx#{{k1qlh5Y9Mv?-~Tr!U ziC!aef-&FDl$1L-URI;}%Qf;pTAFZEY9_3ZZ^-}tH!FWnQfYwOCMy%hr()^79ZMxK}l6rm02Aj0f8;F z*ui{FKX9NJRJEq{iCrIJd*m9eeOPFzohB!IvZkz3|Gu}70r1{z7B5|H{hLTXVaDM~ zXE-}^*s>|B<82T-Cu*ZUgdS44PK`# z9S8`Rrk#d9mtHz+IfG2qkU2%2Qk$Kh=qC@g?}~2){65_ybN@`nWz(sKjQug`DCl*c znr&v=+bowk-S`9-Kbm$Re&n)nfcOa}5GUV2@Csrhz$KL~@ zA#m2Xbm%FjtRe^F29vpmuG86sX-%Fo_TQ1cPlq z+1P;J#S@up&t7i3+pE1gzCD8S4c3cx=*!~rvNM=!8>Z@{op2|sAlZGVx&e{+WGvE z_1ky?)v_=endI@x!_?gOgom$6dJQ{!cYmVm`4Y)OR5HkTDZbR@HF0b9#L@aXVxgw0 z3p&d7S4SGF{vFFuT<;#Os%OGf> zq@;xF2LB0K$*(VWj?ljKW=r4AkziJqvpciG@$kOgj?r+QH?uaR|5(0A`;yMDVFYf0 zf#KDHvMHsdo5>&qhU~+FTs8*?U)doJ<6j-axp}$Q(H}Q3?|tZ2$T!zf|5fB`-Unp> zRs`dudbv47oubojEZuC3n#l15@)bw`1O?CI+NxZqzH)i_a}u-&Jw3h=$32XScz}!1 zeDiw4+Wk-AdyRoa1fk{5DtwdSscFwW%WSV77dQ-`1fwJH$U%?~erQ@+T3fp_gAsA* z>FEIht?P(}#y$3;>fB11Dj)I@vLS)yy=R>Lq0D#fq3a8JoV-C@1`ceX%A1nG{=6FR zelWT@nCtSnze|q%8)mqmV0`l}!7p#tk^#A8$YH-Qs@S$Z7YIs1Mcc9k;j?TSh%6OM z6}~5Hk;{}l*9fQQ8=d=e=UV8q=l=wl2E+JGX;Rj=mXj5ZE~f6sOuKr{ToxO|Z&?NP z8)CkA?QT7-6cnxXv7PZNVNZY1^?yej`M_JCmTeV#iEJW5d1x%N1M?=#RNowKz2ba` zg@g0TE8iC&uT3=}p|>Riq+#AZGohgem8re7IWsL0EW7Pk-TcJLSu-jd+^*3n%Xd)z zTDP2RHac2bP1*L^+S;)(q!$qM)wv@`C`Nh)&l>g~(NQ+;3G+}wHlP6`|Ah z^(z#y-S?n~-J6pv)OMdu~Jdb|cys&aVqML~i>N*!91?_cMJrwiJgZ_3Kb zGX1u@czj)L^ z-hj;STlDXJxW!=;#FY7N2JE1QIov$=!IN~)jPw!oolOzfH7#6GcoWE4D~G+0_XuMyc^K!c=Ycun-nY5+_4VcDWk_jOS1ZBli;f;$#|*g+WFyOi zRgHU(izuEN;tqXjM)L&6Q!H?N!oqqvT>}Qt(3f0SCt^*D)+uYo7{~oYDq@QwQZbW0 z@O$6x-pEcp@d+1QW6*XkPb390DkDhZcGR_%%|vFGrLwY46z9K+{vCXBHNdP`W5 z<#iEJqkcn{MyY)Ki?X}s>*FrzRi~dVC%0x@OzqcZ)X(PQPn6zy`?KJ&*F1p0Tm|hy z(XL*rALHF++|QYcdU5|s7iUFid9(DzLtaEKU%YHke*gWly~~}3qIGaE1gAB5LNzBO zs=C_!@#FuGulJ6}LjT{#b)0CSk|aB1Qxe%bd#_}by=AXZ5mENamc38Pn;!#O@=3F;ZidtsbIy)*0rhJr!J$!0E7kIYzeRTbz>CIQo zibtoWpqRQFxxbr+^`~ylMO}((;UBv`HZ`tJWuEsm*VKgE%4+foaXs$O9e$h~Mk-D8L#xY8fnb~+z|DK=+x++<%# zW86BmCFZ!fpt_~nUN?}M8E3D`1$1&$CthQI!A6N!uIkxIOhI({vhDtsB}b1x#H0TH zdY|)lc6JEgKK^6+)hh~l`J-wAjygx%%i>JJ5ZH--16pz)9Q&_-)Gz#r6g_box5$IY zR_|RWj^5qtdydJQRp!AbpH~=aRW+7PfLEeg(Dm8!^m+f!JoqYpmk+W=DMBspHwQiq z^T9>Ma=JM#1egbrp@=;XxjiZG^PjRZy5NGlb#%DlDHz5`c-1)eR1mCdDz&1Rzq#V9EZV8 z*jC_>n#@_VRt8TsS3)-C$3E^G;^r06FAGx5fvfm5l9GCONqp!HE`v5uGcLbzhfbku zMr4ko<=zZ2Kf$5Tu>;1J&X+zu;4Y>Cxu~QP=st@DwEZw0Z_0(CukUt!d}>6ed5e#p ztodhrdxwc>5m-@|n=9&)e;J0y$;#Yu9b1(@D?d;}eRD?NDZG^dQJBJh54^xOOy6y7ZEbEE zP8TO7C4t)ng@*g0qSqY0NDu+dcCOa^U8nrxR7p>udzr`?KIE`W7%Di<)oU~mZ+14G ztq>zsB5!_?T}u68rS3`lU;hbsyqdf6P9rt=Z958?-J^2@GU+VBmAPksopOw~WbwAIQrXUF=Y#j2Cv6rH0&0yo>OI_ z(-h|_N7dumB&mpPOEa* zjgJ}-p)e$1Y_iV0tBqu+7yizLt$?#w;;^k>4O z@1tSZV=)}4uN-RJMH=@RIN~A_Vl1(8AfZqL9+rRA(hI(Ik**G!K2z-anE#NbPEiN_WEPOyZ=;8gD;2N73j*yPpv{a0L-529i|+3A@bX zPKJCx_1AQnT_v58r@Q3~4vOgoZ<+#GSXdyi?89RM0h+nlSwgTppgabg%@EFtii^K? zTOzLVOk5bwfD$&QcI|huM*nN~Uc^8ND!>?u*T?vVZ3>C}B{oz74p+b!0QLQ z2h^Mf2C3oE`cswL7;l2WEi(Lei)jcp(1{6brnz~u&Uy6)Jv}`Qjo5_WsiMJRWBZv4 ziGqv6K~v|Y9daquUYz0dn^S&J;JNI!WLNX4WcsWu2G9cv4rLB*D~*kQwa*oQ-qVie>1L?Rtlp5%aB+dG z(FcdOw8`v?Aeo*yA_jZxq}2K1bfaR{*=&2$qXC@jKRW07URw9Hggjk`s+{%GN`1y; z0|&KteQ<;5>S?16*w3)AEIZ>>)l^NxwjagG-HD9DUA_30bj9@Rp!d}f$LnIdUSx=m zePJ#&Zth@rc4Z(yR=LejZiz(wcV@ulx@fgUS@}++x-cYB<9#Ub^_#2p=l)YKBx)Xej8uOhow1f1V* zH~5jQ&sHCJ?fl?LILP zUn4uYaUYT!8-Cma+szx}h&&^oT^MusHTH1bQH<}%Kid>GKg?b*=)?&)AgZ3;;kN%0 z3q|Oun$cqA@~t_=vei7095OLPJ$hsJ-o{3yAfZB)NEOxgG%PeURn=}olvt|RVR58j z?aJ4c`ff$ei*3BZ@WDtQfZ|Rf|B~6D>-gB%Lk}@2{pKyT0+Sdtb18-l=3f`F7_Sx8 zoha`?ASr1)h~s^oW6`eC{eB5a==wxir}bwaJL$+jPH$CNgp<| zv;IxYMxZPAaDRT}wucf0z2vSg1tRa$hf5o&&^~}I!f0XHUJ3KXu9qFkNL2dz>03#R zg3Fr1;U2r$l|*y5bt*E2pN!IiGt@WNl;=3D({(m2+pqGg0Nn$b7BN?-?+E|?8|<;` z>|ef?0e<0B{_1yKO-)E9%~m@f>06aa>Uu=Giq*=-?hKJ}HxU6K4VCR=ETWpEx18-ruFRa-W3U- z{rQaB1dNf9X46eX3l4Uo(S{QFuOd{L8FO^R{Nt|O`%%!%f8J_rLnrT{e0zknz5SJ- zTX(Xd6nMCU1E>|BWY~dHUp$Car<_lzGom#tZ>14)?py$Mmw{X&2t&wFXBu&Xz?=t^ zTc&(@RLI!!$4NefaZOw5Tu@5k+V<=`ySh4b5K3NU3^fI!D9gG9ps#g504h}g)4OQ# zfHAQphPfH>!z@~W1Q&DR1c!Czpw8NZ)Ay9G)}9b3cv?(%8Fc#3<=E4_rG`^ zSFiSpM{(QV>o1sEE!4;Bj-9Q2>^1Le0@Ic6Opqc+yLKLa6|G^r8`%p?vStyC;<_G^ zfXw=i9yNG&wV}B`OS!~?Xmh!9<po!UaDSa!$bDg3O3MA3T6N1YcIE68aZkTj_mZt{hJO^X_45O=Je%F6@=*)oGOKu} ztwnNH9Rt3Y$Z-3u2`+V~?Z&>>U~^Z~q$%g-oJacwr*3{pt#ThX-(IFsn$^+CA>&(9EpN3D6D1j~cB&kp-S>TR zx~M}9D2D~=an{D2ku6o3oJU^#Zdae|ZLEM&U+|v6@y>Tv&aI@Xw4yiHL#5?#xt+Qk zX1m1tZn`)#)!H^{Bbdw^bsh?SxSD0GKD@i=H`1RKYnTlk(tiXalfe_E=GCJg@@1mG zt#Qx+^_3vel zx7|wM>64G&GnBdMxv@T*s0oFNj5ignQjzvCx85Z#Q-uK^pH!@|zCKj}oprIo_A;r` zHie3qHqREixW85~c5oL5qtJ z_YX=S7?kBpUV1MA>$2|4b7@GY`&n9*moc&Ixor*NUB%ud2;d!T4ik}kJdj@e)YjJ2 zG&3DUyf{%Q(VeNhKC_A9%Kh=zm%IEDo|?*&A4{DiSW4|$&# zoMOz~9NLXmcC(G;k6t;0@pG9wJI@FhZ`K}r$QBkv#jt06U*Oj5j$$2tO=w(hxu50m z-3N$gFT0f#>EUr$?oGZpJtcadOf?_1Qm^P54Fp4>#DsLg@_Ygln;IK43RL4-AoG?f#f;$}TaaSy zQJy(kB~B~0F1>`hB}PFzJGl?5Ej4X{8OuhF%(`pE)=37_rJzJ*g6TjkJU!O?>=KRCTd|g8HFfsbmR&_|SZcBRd;)|NI~PkmHzSIZgY2Qv`2Znbg<7g*NC|&; z*==`Et6Vty!-u?5bM;Hr67nFz9KpD^lS`m!kZV3Hk0b!mSSEqx*>a&;$<|h(JI1)} z5$$rlLfj;zq-q5T$vWBqJV>M}U^9?V-+JZSth8Aw5xxKyiog7lbosyEWn?f3G3H>- zcHlvc6pb{uAD)JW<@i=uRoE5Gmq=XFhbi5Ze-gJhHP_G3;zG0s^yD=aGwq39_wFGt zk(U-dEYu5yp9NBW9#I%>y3n{mz6MNGGjTG5+3Zkoa+^+nh~Co3@6aV#de;<~))a8( zK=!59?mAp}b`RdA5g|%SJ#{0jlL`Tb(FX|7<>Qmt3>&@{1!k+hzRH^Z>Wt}-@H#ozSj^^OmU#Swl*;gprcoLe3nilk!L z^TmaQs~cMR%Tg?cz?0yq4{-;9xv>eVZDm0F?B;s+)aY1URbChqVmlS$_Pvg_%Bn7T zrjGZf z514d6;#EM5n*+lO>91JtMt=}OUtj+0SuPGOow@^H(&9sMgoKFm@kZj3Pu8krC95@E zXf5o0YcKhj<7jzwUAc^o+JM~rb5jL~S?I@e7fg~E&2&6ounhjbs$ZY2%GeU1;oH^4 z44Oo%EA?5#R|y;z%cqPOo8@ympJOr(YRB^*?)RqDzgN2d9eg=0A6+=VI_-T4IRKe_ zP>?yM6mVrv+*uq68OptVEGdgVotE72D^*XPb6BN@P-W@x6_pcaYLmCchlD@gf2`zk+5>Ulm-J9hc9-1%}MX5BjEr6HWj74m1 z6G7=Np3{0j*Rzt(6-kV5w|1~=shr`F6{i8^@PcLYdipRO83^Hujc|+)TW}uCqLY-H zljt|G>{sc&uSPem$HBpYs4nMz@+gg0`)wRaLlsoz&$%g9+K$2*Z~2C$AJ-k0)lc{p z+nwJ$pvaMqa%^E-z-sq?Ti>Q)*hCY0ofr3)NN ziHV*^*@i&sYJXvGeb#f+>+<|FYIAh(gAT^t9*OWX_+Q3v#728FjJ`&nKp~+LGXk9J zqNV0x0Ri_=v?}v`2Q!Lxv!PLhpk=ShI|>QlAEAc_J>ER-R6S6xVqpV`H>SLim7)Fg}6&TUWQvH&R5Q zVQ;SW^4(s2QCn{{>Gc)xU$iO_Sq%;BTT8+yR5IW{q-HZrkEpd(30D*fvhxU;X<+dC$wM+#D zE-nd#j1#E*VE$@^8GI|;Z+tx-G5vmZdOv%7P8aKJE2_<~`F_VjSK2u|fn1qv7q@|VEcXU77E2`J?UAWKB3cW4KtBV9B@Nm^`VHyaqPsaBw)fe>Ucp1o>&XQ+O8{23WnkzB$Q(}SMd+!uCzGquE{wN^R+*NC*s)pnn9Hz%t}};8_KN0FW1@wK&>RxiYnq_sNIv6l$zXl z1&fT*@@{5M+%r9QU&mPe|Mv95^LS)Nj^Z>kf~spc5(J1K)==EeW#afVoY;87EijNY zw#~9`-zurCRx$&eY92(No}~GF2-&{tVO^(+jRj4$Bi- zRy78#e>z|y{+-m&H!nl-a_)+A#NJquVPKVPdK(4!q~UXsW`}z#s3x={<9viE>QZ89 zZodBIc~DhA74rENVgNRft8q#|!;<>vZnAAsdamEJ9HZt3pge5qrH~NhyrjT^ASsU$ z%qph7Q>e6EHGgt}RI2_!c(z+vDRdPbTof+&Lp5{o@0C6g@+KrUmKD&4hg>mF}v z^fR9~X!9#WA}LSvOL4aA(?NceO2|y=F@-MP`rFnScFMXuA)@ zhdIP^pf6(o;V= zB(kyhVM1tWQy(_7J<6%A+fZL0|B{U;JbZ4uCb8wVp`n>6PY3N4Sq4>vc} zxv+!ipyI=8!txyA)Kr{SW^EAu4W_@N>bA|I&S^4~n=tXAbBWdg(}B-@fwf=_0`LKx zDko2etjZ9odIioF6(R=e;ddhVyQ_ZqcWRCji^5r{Qv_o{u=nW20+w(gpODp5o~HDF zT}!yzk%`jBx1s}G*MqgH-f_O`N^p0`ng!n2OyZ}MApI)74Z;SBXJn>+*ugr%{zNih+p~c&r6T-$*vMn09cSnY+x6I)? z?`~yZr|GKt-^WH?8^r^+kMONhVzXOz%jCR7I}O33zxgBkF`s8Cmf2@szx)2yhJW8*|i5@ zV_B&dWU`=0OCVG%unG=^nxpd*LI=!uPu+*xmqydG|KkOd^Vd`#Xz4d?C~>w})VfG4 zzh-@yQ%$e{oHVEi|6-%9#Y+oT%HWk-PrP#Y@mAUmHMPU_S%J7^g1Z(LnUeSqD{i%` zF9T;a6mLqr|KxUy^f-#f!c843Z5?|^a{0V!`UUqbqRv?H$;m4OG+Rc3zjh6Bm(>?d zfwH9Tk#s^3w4vJdVmaa2a-fjv$48`tI2){}m&~r)RvA{oR(CD;5^9DP29*a+ZUjUr zsqkW<42iCla9)&hl3=+vqO22R*xO4R?tb%Tf+7pf+0l&2Y?%n~muJsrps=Gok495; z6t&xO>LQrtK^O$RMUV@^7F`U*7r1u;`*%qeHR6uW`0WCShvATl(?Wu^VmWY7SQ=iz zS{%5&FyrG@;qcm@(74%K9E49YjgQulFu$@hco$~92~M6~#{&zd-TnShngb3s)g1q6 z1Bco}4u_SladMvfw{PoNTf?k6MJyQa^{9uCeKDQGTp0vi$jyexvT zUYS#(^(#X^xI%A3r86L{|^1+1dv84Jw0Mw z#egNSE=D3x;azx@&^ah@bLamCG=W#tt$31qpp~b|sq)vZ)d(jDSy3^#%Ye)O@D@HJ}Hd}G| zUr%VNj$q9Woz@-_zwU^HnzD41TrhFX*V}#yXIi5ly@Cp4jo>S9T25MXG0bcergq zgpt|(q{oMWyi#rzQq3b9Cz1H{Q$bs9S1Wz{$LH5MQg7?GG``H&A*fb@)VrmFiJDgT zdMZGizOfO2xZm#SI<-cB0vk!7J?*(JQxbo#P||}1+m{z?z#zm_pM8g0wLvIGJy9|f z8}BJn^(~YhAnLIdmSCY-Y8WN=Jjk>PerY!7-;FB)npgQ&!C7o768Vy0Rcq7hvq6ez zBiktS(=357Z)70jZ)lKmAcCBKLsiG@Ee>kXl1=qGTEoIBf_P+P1l=`2+%#8x|0TyR zsyh)I%<)Nf3tMoOlav1rr!|>&eSYuH=G`-rg_U~Kzx}rOw*f9LLjpQM=7&ArXL*eX zuQND`!7VsVdZI3^cF;Xp>-I8jEF2ZA1rQ|I3O;y7IK&+9k1v5@BssUeNpEsNK8}9l zO1>&31B28esGU*lo2--M!li(-?uZ@M@u-4)KXZIeBZz#Tes(dCdn;=Vi2e_Rt$C6q2jMajjXqmtfp;od!Eoic8Q zg|}7D6aLQ7P1Z%o&@bh~1$6hz&~oI1b@|?;TR2bowNQMR>lrK0nD003COd~W%Lfs+ z0k^O%mm)A|CwlB<`TC0M=_OaZrQ_%K*!l5w&GV`eXi)1>LEU;WrPJ>H%>)zW^p_7y z_Y}Znm<`NnSLQ&_nnQeMuw>rN){XRI5y_=cJ11Qx&X$OFw7WsvEOuCq%bCa+B-UkY z7<8zc7<_gre&A#aW|wNEJSHI6EZvS&)zJ&Cgrwy^K0U9aI_`XKULGFFgDk5QPq4Dh zW*=WzBRRIVDvuBD911-(%CSNmw;~ew_I>|r9}cLg!H5DAFWA#kvyjqK*oSNxB3t{7 z!lD=p!@;Ju>|5zLOmQ^6$Oo|i_wx(Nrn9qM)J9`vMxgpj5sSVDkkr-G=oltkgHFW) zhwD(xU1gNV;-Uqs&P2WyRTP_Q)8f=|aaDi{*A43J1D7P*<;5`hNzc_Ahv%mav#)dH zGH+{S$d&HwV4&09Zfmaz)&BIAEaEc}iV}g4r9m(AwY~hCn>6vNaWTt82k?&2`Ev0$zib+#eR#XTus=7L?epO2IPvG8+ zt%_DyM1Yp+M;{!4OhU;)D4tbz&-d3WarP9W>$v|cAiS*|dBE)v7s>RFwJr&mzrEwC z78ix5JOxUOyYEc7J3T^F<=xvWW{)HZ?N_$9w@14estFL%e#H#etjG`Mcw(HBnQ4}^ zV@XKX=2~(jH<7KYv7Fo4N z57&hey+l5MK}t!T2BwGXaH}~_ zQM9GS#iVz$efJjXESx)=o)c#$?~W=DC70UK5%DO6s#P>&6awDs@sV3p6{^_y z6x0p$^iAliIjpqE;c&FHX4*)ltgnnab7&b^M`?YM*PQ7fT7@_7&7eY8KY>Rqo=yBG z#GC@vAEB^&%lZTY4?Fgr9k|>-dTmSx4WylqU}n6D98k@l2uqh0!NTP&fATKT*OxQ! z2m)**5}#I%NvFmcoH?e>-a<~nRTizer6p2ALfSIue@X=AUEWKCd8Nl$6l`pLgM$tr zO5L{(I$mg;rH6-yMOZ_+X_ZEZ9krV4iQhCqh)y& zsx>UOIpF)}>jj#evbEuZ%Lr+t$6L6|=++e1>c*nR2iAHSb$;!9Ek`1;(bP72*xp*V z^03(3syS*q(9wdldXV|^XT0OB@kJJG{>bz{tP$KvR#bzq^AYZKn`)zZnzM!FiY8lg zA*^osknV*8?hE0kvQn?ByzFZ^-Ywwiv@yrZX|))Uafa$fU`v35H*$o$#N%*bP06QL zz-fg{rR?#3P!V>za)!~TExLARkXa-4Q0Ue#I@VZQz#$$|;~asOW)-8?iID80>(G`D znQvaEXKe;V-E3&0Iy#db`C|LwnH-cCN8Yo7I?!73o2CNjVi%6pxj)}?D5UbA>HH2z z=n#T^@ue|UFbokm_OOtoN?VjVVWxD{lW0EFetLbWdA|TRn*{_pW0$Uo!l3rq;`P}^ zF^%-UKq(mK2`>pHBp{I`eQjn15rb3?5^@@jj`Y^`q=+=>osId&Zd(($=Rfx*IyN>o zb^?PiX-hk{-XCsm`=G-Pf}x5J6vZX1fP!*u0U&Unltw{84gvij9v+^`LZ#g`6k1C= zH1tOP7I_)UcKSIcc9HmHeEbag!~|AdelgB02DM!0FCR`7p1)CcO0WOIoSmm?DX4I? z@^vKeX=;HyWw30C3oeJ|&9SFXhZtBTC;mEk4$ zW}%m9;vjl&*)#1;7W()i@KfJi^Ym;UMK#=Wt$+aQDO(b^mG+B|x2$ztv0oesuf^1^ zdOA_#atL}0XDne0FXMOH&-I9!tjx{zWcF4c?mHQ{7Y%2R-6|(*KvjK1IOQ-9-X6?RM_15lC2fgVskeK@9gvZG#DFGp zP{#tL0C1P==-F@!qUvJ3>0&lR|8^h{x<9R+2lfRWAh}GbxZtzxKV}9JBg5wmg73vI)@&UHGT_maYbuLNz)z* z(~fIQ1E)bp9hU(COEUe$Yy;JnZZ>ajPRmerjuw@3iY5s-2>^AAEV zhVBF7BnaEt_2NE<`1|$i*FAoPBDRR?`l>(LfDyQ%5vD0pK6?a@Zej3cn-J_41X*&>g-DEI1v`6{<#YP7UB_FUw*CBtBr58t zHQOp>ae+PXil?#NhB8+p^_DK&wbG*HJ$PS*Z3rdU_{SA>unkO_Nrsn_YEu zIPBRPdUlcG-IK3>=mDvAEwHdNeXMmWF*tkIgrdv25C|wO;tc<`p%`t>V~>uW20i|K zFkV)xmN!P_wokoD=~Z;@N>Y$O`s%dltlYV?mlFSwxk*7m;d!Lad7w8k<<#-^HaK`7 zc|hR_9DG?^)G9KNG!1zyVhj4Z!Nj)~HTJfa+R3y)C3zrAITkLeR$BrcLbHHD1WMnV z=Do=;H>_!CGvK8`_r~;FgCFRvm6n%B#iBZ6x1n#M=(q-~pq!qP3GB>jxo{#oMp)&B8#| z)Ie00vK}Va7Ko?nCh4ea2nl&!AnGfkg{EyAy zE{lsDI>Q->9M^9p^_Nd=O%)k-q0`BwO?p(5G|dH7@BM|R8WF3vr`s&(f@h^VM&IGv*Kk$D|-OJELIk19Dl{0dBdz}YfuSE)RJRAB-} zIZW%xCMH1l`2O1 zVchC%I=K~0IlR2Q$XVuxB_>Kx;{H3Bv?!A=sdcv5n(Nhts@Et4XQs({n&pw8i=|s; zp?5#J_{~C7K&`;>0b*E}r`&9l@_UBmc+dlZ@57!2`=3mO5tY--@&fbts+k`A=$x!=f0^Sj zrvWiyg-uhYA|JP-MH{!p=$h9lOzy%Abl~{ew{BspN_v;yJ2f740j&D0X2T@%aNiU3 z+j>A5DOAS@8nIn(Z*R1OIP4wNruzGF(F?@$!z?qupjE*>n*(V69rqa%Pu4&!2m_-Z zJ*Qjbz8F{(2MA9YD*l9tiA+0VXc^NMKB(Pi=}eR_w|;G2%k_6(3&YTK>`Pn3Bi4eJ zm**34NF)Fcc|1;R2$bY_A~PM7tgQb2mpL&mq(O~iEwRX`GX{n^^j?=4InI_Y>dm*1N2$_ zhtCm=-yUN9jWxxf5RoBnXbPFf6Ngp3i`py4t@7uz^1pb{3H&630IH@0+c7t-@_yD?XA%1X48>d0AGv? z*HbN`4j_~DJfhFnyYS1%vVAJ~*q?!%77;iU?dnpgt8u1I&cA+lN8UA(HRBnE$EJBp z3=Ffjdo}}&i2v)&u+m_yyoaT!%`gQ9!0rsK)X2AQA0!E$$~puv;7ulI&_W_-ji{nw zR{#K9)WkhRZ25H#>Smq0PK>{LJ*%R3$W_Z(EE} z%kdX7JP5|ZMJlUFesgztBLTB2U{~S4HYIX6?*#MmnKoTm7`c5&{)4W)D{x`pT|s?% zsrmc_mxroFk20vUA?v3>VXUEXuT@wgaOv#Yw5w6?ScxfBDXV5#?t8Sn*3!pmD1)Gy zl+$G{5fZag&#tT_a$4)`&d+owvX;T$YO(siw$~?rn*}Y@j%03bQ8^8 zanOdnAS{)V!Br7GDnV4j(cpVoX*c5&h zww(ncJC)4f11(S%z}JMoZ1U_E@4|1S^$EiOeESBu-ks%O&YyUNl$nK%=J!+FE`fne zVeT@fA6){%wt~Jbb+p5Y=e6ceb-i`PX6^Ch`s8(({&??Qq zeh4I-wh&k1m5d3V0C`V%RzM32F8`t5Wg4XM<3nm18ovPe8zn-&=on74QPQ8E(73?h zJbXKYo}@fkh~V`E4(Fq|7cWdU&93vlopg_~uxt#DQ)qk*63kHYT|!6)k@?j|ms?zD z?TooA?NQ^r`i%1_dW3i}>PpkIJ2eW~u7`b*p}*kr-`U{a7|O z_6t{-HSgED_4BN}I?Lstnkm@TRr2T*DZh+-qJM34v_%bK0fc6e&BFz{1rMkgOYlRh zZKm%-sTg$xb+Gv0U0u$Yp{+P3^YH&XckC&$|+5ef7C| zVZIhsKi%_Ar17Wa0i0*iMnynCCnP8lui4t)10aGSHI0iQiYEv>oE%eprSfH!SQ8|o9h8s~EinW;HJ58OpDLoPo2=gP_i zq@@LRzF^vDxPoxb{*b11tNT!a?lC=&C^Q*bDF2TG6lBe?ydQ8wyqUfK&eqn(k9Q+% z&Aq=KvzQ#QR-KGySo*#n|<)(&)SFii^YC)!3 zZ23LJcZ&`u@0(rb|NXv=zji_Q1JN?X(JAvLp49z_EB+oON7p}gbG08!QgUNhccYz^ z-JWhRPrA|;ZNdFdNZQ8OJ$Qz(@fs$JhCxOm;&G`z0i)~tJQYbfIU~ybQc7V zyPQqi!s&rVhDD<&wWI~0JVv05Xp7ley;8?x&~kA;i>Qof1^CFmYgj#644!}xH(Wl$ zae0C(3$+QtpoV+%5Iu~|0zqU8$A8#7;5UQZSZ`{XECswO`boyw6c#S(dGOI# z%X>G%Y|v!sVcVCeC9bzHVs_F@dj`5^$`(wd0&>!kKp&=3n(h2&Mt)nwuHh#_=HwJ{ z`szutElvh-@&}xQAK|$ffwD(nV4!XBFq@-9;NxnWe60ex$}=Z#%P#rXTMNgJALIH* zBP(3<^dq(t+`jPzKfeQhe(QQ>xiogG4(p+?&>Ll(c)!A^PbES|AbRYJ+k3E!F8Q&t zk_~0$xH>HK`$jUSC}+^I$Srm{k0ctwZbBy^y03mrdyMq*0pX2@49A+s$tABOu-KB04>wf+|W7t_Q(oYZ{p6NJ1HgG{q>u`7Ws5v?ZAzeBWb0_5LFeVfPN4^9 zHJnbQ`s2&T`**-~3h!1N-JqiC=LdfzSl0VD0olKX?57_aRpKl>)T= zxrpwJekuKFdod!@2R!lP|G^=_!c%D73GSq#s;X#3af_7Iz1YfQ-sxFKm?N3XKnvMp zH^TAek%Thf(SUJGPtW5IA3jJ&vAl!?`*byA~**#{^Fh`!jwCSAh4?#yQp{6*6B^y>eTbY-x^l-LCTSX}3i zTb{T?UVf2l*h z#+i)I^$Ii$mcy|ilDj5_dk6$Z@b&&r&~l4;dyU)i%|AOo464cb+NNKHxoy3FaKf>@ zf55eYPJA&s-lYGgcxabf-0vG7k99AAgPS*I=|d%rIvrbMMAHUb2j_d3|6)nqVnuKN z+IauLPxhxTi+`~{J-rI-PvqpR|GAzDAm8tyj1fo#AcQRn-HC!3N!QI}!}d9(B-_kW zd|0@NG%nu>8RngotlyLfMg4{P&A8n|2Dii$?A5ROU-dmEUF&}Rjw36F}= zTee)KNvE?Es6Y5--WqCM=B;$juszhhl?`jXoK>Iy_)3 zpt$c<1;yIi4$J#>lXg?$K?$I(4wEpB85bCYZO=qr;690`qfhl?5w)*Q7d?7jvzyMl z5qyQ&j24+o!~HN@HH<}@`sV$iyfEpg#UZeD4J}EtkD^U5Z^%68bg%`kjS$~pEmtLh z$b5v;aAIYq?jAVP?l>;Hy^Z-}>_6o;Nd`StSZ$Z?W_zS8{SIjl z(7Pz_8v_ME36G(|rBIRg20cRPI$Fzxw;U}!xMbl4^^qUF(p>E5Ra$UcHKYScY{xD8 zQha5iZxC}x2){sFho7xrgS&cj?AaN7HM@A=B^5+cQb#3t9B!%)FIVq<)v9qW+&c|Q zbai|5ssabcr~b%r4O|e&Cd{f!bq!xo&#%2d*gs%33WjnZVH8^QgI%Mm)6F8a)9|t{ z@)FsfTvayAbetQlUGZy)#}da!eed5P+l_r;ljO;=l*RWpLb8+%+pkvBLt~=Q089+< zQC_;4JHyR2cKTV1hy)8?mTnuk#_Yrna*v&_`_MP4vY$_ev=e%1V_w*Qr2TtI^*IWB zmg_T}APqVN`w9J#KzKpWExTjfrFCvK0O}Ex57_1?&|qN$EE!_a_sp6krz$3ENgr2C zR4xU_l_J~W6>$CGc)T05IA+KR<%~~SSbW&+qQn;;e=^GtgSnC*!^acD+aIJG6+p!R*#n&gGfjf06mK|&H(Ijjn~4gIGbbIK7j6`R>^aOhg$)=DoQ47J1==C1FLd?ZCIe~FU4Nj(~km> z%F~luHLR;r;Yg(IsqzlJD7UReMYjO6@E<29inf;;-2BDYhd*&sFd7+kP+9L^RIyw+Ijwu9Zv#OCGDckI*t&uxQy z;;P(EkbnR|;lp7$-ivgDb}Gk;wGx{&!z?Ka+Sx%_365VrJO`GHoZ2R6 zre^XLqlx-zoNrT7eq0V05|ijM+_Iq8=(|m$P@YeHb1dzLI2I{7j(pYuZ2WYyU9CX^ zZ9A)L$S|d>(D-0GU8#srU-HNhD#P9zTrPc9I2ahIwHI7*BmFoiK6wvn(E_^XqRW}q zG}=w#ERQbW$14Y8jAmM#sza3G*V{}tO+EjRl`uV~tKu%XNjF%avZCZJvsnThLrqOh zRY&>XfM^Z9gJmUa_h?S`jRGi#e(gUNvY30QNmW!W7hq00Nn>1OG=r^j)t-4W80 z9-1t=W#*sA|8d^Ix%jlm`s0YNpVJ)7=@mc8wN$dIW=rgE1%6&g^sv=Rfr0@u`*j@o~}k!OM+;;}x{YF^Olg(nqq!%?{FVUbb9!eE-Y zx}RT&!*^sKP4!(2jEh%@zy;!43VNT-sg#3Anqm!9gyjk2(XyHzUEOfHLz0Id68YW7 zHudrT6x}2l#!XH}+c)&eqQ^99KtRacQ?b%@(@bLfx;EQmiRDkHiP$BI4EJX(pdZ(M zd=R9K^StdJOH&yumpAHmB$4H`WH^0(jFQW|HAKX!S~kH`CtW54hnQs82E4dXh*0-O zwq7jJx9?-VBY|r61|C#---V6}+cK(4y*ww`g%CI_X=ofB4F2N+I;QaP+0wUTO`tSi^$#HqXZXpLER*SL}$4)=NV96gUr z(T4Ep7ho5E07KMh%Zw|SX%HGb@#3^?zwB{bNOxqXP0-u(go|bpI9TW!DTT#t%V+Fi z!4&n!%N4z5L1clk`7dAh`q$B5USzmL9?IjP zmEe4%b$9#vT>}I+EH&u&Qfswp=I&ty`Gv4(r@A`$1(u1}4k@L+;{EaL0?`e-*|x8r z9nHbI+s1+3#QDEo^rX;=|I=$Dfh0*3>Lr@FJge`22foFK3}aYN(IcVQ~-Yzq5>%b>{m}=$*K} zPgnb~&d6uTw{K6iSJ?EG<%P3aqn~-Kb)-01NNt!y7HuNuj)y(w(<2`zK5W)hI zX9|7;!4v7Sp;XONvpwsmFh6|Mf@(GHi`T!`Dss<3>MCobVhZvrNGF@}P|nt=WPXtt z4j`swRJ*t4h=C!>3)KD3UjF5;FubKweURatlTYGqTTg0jEfv4Mc<%SDBI-Q}V=j;~ zFl$P!euKy4o~1QvLpZ!TZMbRH><&4=E8hRv&@;HLQ0Bg4Jcf6}{@RJvecxDe>c$6M z&(?`bHiK6ap7mGg^?n6JUGc!}p<2U_l7wtm zYGD$bG_*K!aWu_Hc790qrhMd-M_7B*5(HK)7ysw-KRz0MK- zbaxT$;5+C`%_O@M*5)&cY*Msp&A?d+I{(jVK=kGPt&jd?1E z?@|f8juKrDRZgqQswQx&a#)we{((X9^a;r2F#Q!oVN%!d9H4P8#)ke?z%B zZQ5)wRIBo2CGF@pe7M)DuG_k`gub+?RR2CR==1z}{v<58SO$Q|66j}?PZ_Kkz$Tat zg)fex1C}dv6x$P2m{={j8bxm9=)lg@@84GxS_2mv=8SoY5Hl z&O&L@R2hjlWa@VBe*+;^42&~Z{=FO;3lV_Mvps%sg^7;OZA|Qp{O_A{=4BYI;i?|d zT`4jbQLDO9^y1Q_+kx7uB?QL5Y`=M{5mg4lvofeSW-P?3L?M?a1 z9)h2&xTjH};DZ-6lt(%oY=;M-`DoGq$JbW}M4@k6qaH;?#70`ATe?G#?i>*YRJx_5 z4Mddg7Ll$&N*XMryIZAa2#KNN+v7R+dGvelp1(ZjdST{Qd+oK?UK;>FAPJ3PbYr$A zZqdpof4>>NdU8v1>hrzwMaJ8+k@hK)ut!M3d;Y)H(Sn0dXQm^jY&<-gE&ZWAZZ9G^ zmdgV$gN4Dum0uc0@{izM!`)u~UkCIfI8AOB1(GowKfUMZBA|E$PD3zNnbmKLIz}PJ z`kxrvOvpcYN^mp%zO=`%wyDOc; zdupE%v^=L$kbHu?crWt?Qsj6uCV&~VsPtdbCmH6-nEP0 zeqYrzBRQ2)PV>;I#+43|@jTsh4_86^kEj=C9{>8OBrUH*xjf!YmdN*HXk>-r0s=E4 znjx8%8y_$1&k)N_U6G5Jj!;cA@1mV`#0996?=(tm=PNQ2lj(QaMuT72XZ%^W~ zimu*z1C!UEogTuSJ|_!{u{(Z*5yuIp=G1W?Zs(612p>+xqE}8dsWrh&Jh<`wuXnF} zVVn&jiXw-6z!i=1x47MWc_j*;DiRK(pd&fB(RBYW>n0o09L2Kn)c@+Qr{R(8?q(Yv^}=E?DNd!zXQ)eM!WATm1Y54Pv<&T0G+FiXxfQ5XGsvhWTBJO}OZ zAMsB_>f}#lB;f8sICo}m9+2`a9?MNdCJuY$W7qJmmH*ceCvp07eUr~2OR8*3YKTJp zONiZ*4*OWhw5xwSQA%WNiBYu98>7d&#{1uY3_5$|ZXYv=xPg#!I4Li!hYLI-_DmYL zNO?kMlVeU@Bu69&yR_O~!TT!yUxU;+rx=cw<+>JPL%BNd?vm`$2Tv(N*4|xWXLTK; z6LoLgU2X}db6C$Bpi5_HVJ?J_eh1mMl3;FeytJG8RF zgKWp}^#A+Us`L+V98JMKB}zkZKppwzmC{N3@o3mC6$*%=;~uKD`#RurXG?;|#qj&5 zQIMdnF!Ua345q36b&2sl!qD~A$&l4=&%3M2Ch7C*UkM)zsU78z6!9sAQ zu|3J91v2?RFu~rLCN_gTuR3p!fJ+rz&gh#i%L9WEb{rb=ZouK$v_ z4EIs>D*)xfjU0DZG;NPmPQc|g_IUm`{y1F5QVt-CSR8TH?0Q42KTBoRU;RFqM&uU~ z#p4Rq%$%A{HUaoBg1A!>dVy}?VPeR%;UPo~ldlrndyd;!#Jw}e&fWWCMa3i?dNTG6 zCu+rG8127^^u-Eq_G#w^7fzmZ{dFlM{H{=OSoJqXGI8B~B(n7yVzAkyCoBIrV_Up@ zfx(4~G%YbLg+?xuc%hH~SeNQ&Qzy>c_FiktY}I@@RBUK7z`ik?>{>i|GUV5j_vobK zLG|82l~OW$K@EL~7_)Y+LNK|DNc#x9%)Qw(9U?SF4b4xE7g@!O3E=s%{l1qkJ>-_s zV`}r&sQX2nV|lHu2>|n490w3{zh39ME>FAr^*>Jg{0x8)jgqtZ`%p%lza5dd`p44~OE!ZYm@rIlHk@Jl$f}#>y)Q-OQyoqrOZyAB z<25FprHYmg0N^yeJ)5ph!*r)NxMBNtb7a`=QiPb-)Kj9Vs^zK1^RUNq9)Iky6`5&N zR#rj2CODuUVB3Wi2km{6e=QMSd7=oD_#rEm7w!IT%Q2!xwz9z?0V>6VJ&oLG5o}~2 zITO5pGi?s@;bUTWzJGwB>1e%p8R>mHtzPZ5$cef`uPN*Rap9!@qhB}}@5juZ+xEU| zoEXyYOqeVc6!2&f?820@M%lO3DLp&SS0sq&dT-qX95I6b=-Thg^8+TVf296t!+F@63Ge%!rNrcz|gsoJ;r@}(u!<;z}^ zLHtGV!Hxd)!JS^bDDtXmP3C|zSlpp7RtX6y{P@C4%(SIeiqFq--S=%xWFq4ivfVq4 zSNl7nZ5%GKPYi@1H7_rFh%z%*S$(3Vect=8WeMf`{vEJ3c}#%EinPU$#=*WFWWAI2 zV$t2{K=IBGY0@i&+SNsgdceB;nfDfnA3WF#!#pF9=Tnk&_*Zg{hc^!yaKnpopo-N~ zVT^mWCc|5T_UUFi?c8RXkj55{mf7T%4)K;37dJHV8by9zZs^YVcbRLQ;pBK*98Cg$OML+RFn_t<4>l-7PG0$S4e`F&bx>|E z`%Ld|Qk3c0jO!~z6&2gp#^~AN?#Ot}VXZa>g>>1)yN>ren)oBVkdSdYsJ0%w#%XB>Kzwh%OIU(MycjAYUcC}%f z;}OILp{8wVN+iN$vmQ*h)t1VoUOkkA2OlJ2P(s*xxXXm+d+fh|xYn6&Im5MqcbcKX`L=&DFuSom}?p@}AqSF5X|qf7{=KcV;0@ zXxgD7K^1ZBJVpd+@bXdV-*a2MBkG?Hcd%SWe%1T$oaU}MqZ_dUBSQicicR6&<%N^( z&PHEC6OTRlox}nB>a@%*=s+tt#AD=#WK;X+Gl$mpqmaAxyiiRj3pihHSGTX@leVyT zP3m@qL;6w){#o+30bv!KHZY;NMl-Y5{`ut66^Ib3VoY%9zkPJ!Yv0r;N&~+(RR`Ni z89~=}?<;s>zXd;I%fiC$g5;^@sHwp2x&ykNOvU?ekb=KHfPv?VwCGvYc%CM9nXjaL z)>+~j4$m9Uz4Ba@AF}|a*^ZdT5ocd^?z+8wk!g_Ub~=z?i^ENeWdKQjetjN zY}&96cYMV0+r^9PZHicJW(nuF3-6IJX=w(?28orR$v@=9HLvsG1khmE_~2yIho6p` z7EF9P-aGPQhx#Xoq8lh9;(6%|#c+qVVnrq!%+y_7Mwgv;oOH|D?J0!ue*azV^F3Tn zS(jL2r$*J9!nrKM^=qvWDujPu{jK?f-DNu`<@@M@=cm#>g5SK8-2(VBArr@Y3-Z0) za7z7vv2#B^j+`qC0@XYD-v2z!!hL?OX6b|=1^Oy?0x|KImb6tzN}1z{fU+1z>&O8yZ#47X(9m$P?< zjzSGt7@6uaws_yz7Uv?u75WsPLbohL{9rfUk=ODs&$9kR!E^@`w>fIaSnl7S8nK)1 z5PueN&j0rg2PsI3O0Dvs)FlV5-$EV7756gCq- zf3E$v&~m-MFE^N5c)Eo_&@e){>J|g__IIG zZsArM+`h1+)>vv#@gxZ=?(aBE2D$LD4*?lcfnlHTyyz^>s4GjS-aZh_Y!wPjb}14zHBkEXDjd zGM+Dr%VgoMei0N=f=8;wR{bYK;`)yChtmNP-M=L<{M$kEHx42bR;e=XVDAuP+1(sT zPk~K?-<52tk}M_)#-rzHWY(dl8OlzeYZCT3s7A`u^6|OAk%BVVa!;lzsBy+U*OW^w za+L>BF*6z@;hMR5$SN0T9z;`!uC;Q5WQ~f~viHex0vJ1Egdj}Z@f6#hy4bf`+#$BR z+QQ+p*2eD=Bmr%PcV}AT&@2yE>WPy*mIV72d{14B<}d`Enr>B&s%0at^6Q>(?8KS5 z;nG~o+0+m*5LibbIe;b-7Xw{eUxxd$WB6x1K_dntOf!Un6k1ACTok0rn31vqj1+i3 zpqIv~7Tq7Om48d4r!9l>8At7wWQ`=YrksxxOVJj~X#{^82E4c|UOIIjm@{-Ax`l$r zJQO{GPH&Ir#XujA>G8v7PGm|(xQe%jFgggX+H~oFLBNX_h41oueW%zBs>?x=+m$Mt z8zSc{h-G5aEt-P4#x6ClH9kEfE&l><3COKLwO0dx-{?!A`mx3^yu+hXHSM5r4x$o2 z=tCH4FJ>L)92!XJ|iH8>aqZos-RZ62`wS}s%Y^zcyqFn`dr7|WW9z(-PhHO z{M`p;HQXmyvG<`c{Ty0@a%xk?Ylk270#u#Xz&0=DJXWh|;Wf`Xcs*XVLxl}UeMdh* zBO@o}VA-gh8tqQUA&`BjeyBw>jMXrP0zU}CbduD({494h>|CIl=R%i;V{7r^Mx$7Y zY!b4LL2pvbcnwq<(lzKB3|XrhAie79(nxv2W5?bhjzgXUhPg&kr+zR}$zA?8Sa>A& z&b@T<{=qyp#{cigcGGnqJAeu4z5G-ds?pG-<}lNmP32nHO$4QEx37=!p&`Rk+cDdq zW~aoWr*&uC6TYH5SR9=gs<*wudiym-eC6{+o%#H-@f^j7X?wo|$chW9SD|!Jzc{P{ zx<43au;wjZ^ku?xEyw_~(m>@ZT5jAFF1%F!$-E;4>i6;ptfHjkN9ZhY*xm6LyO@*UuqL^VXS3V}>--vM__4YivN!Qy zFHOv>cpr=cL&*4-qV;SGF(g`c)tloUeRf$D_a#Hw`{ zPjchMsRcJfkj~+7!($6%HJ7EaR1+y#k?K{JmQ$Ns!TP-}qL#f`P}v=^qIU+x0%#Z9 zJy#T9@Ol#^rOcXIHzOu_LsgQ>|Gi294kATc=YK2|=4Y&{0;9B;>466R44{ zFw};O05t+g;_jq^$i!;VeViBgl7g+N2vu|g4r%bjeFovh68NyC2GNr8n19`Q7%{!V zfQ>QqUg7&A@{mIF&F& zG)>iQpR{YV;3PC-*_Sg!=(f_rQ8$Po!v$?} zL5D$1dBx(pk?+d zmVzr)P7HcnIfs5k9Fhemw}y^_igxeN`&bQ65)&hJ1<3A7?Iy;vFpu4Zo6a6*zd3qh z|9p37BKoqa_=@?DuOGtSgpR^H0mb)Bsueljgzqfd6~b<-#tD2j3$s7&g9vnE=R|2; zrr${q3Vt-1ZlzOpO%WLjZKlgLtKO`8Jd=;ng|!7YET2vFQi3pj+=}Px%?Ntsz3QWh zr0b}vB_R(le)M9&?ZS@+LjiD|7)FNl;UF2Iu2zO7l3o>dn!B5~7_}o5UPGF^tBQu_ zzPf%LdHOQ*)b1=%%1@uq17SA}$Tji=R+d5MnLSpn5$ zB&)6laYYufZk@Lm*0e9T=;cz~q4xv=yfr?pM4W9(67}dOpM(6Axvw!B1X}&M$`hf9 z!`|T3Yo-{x~ zw7eXM41@e!W$tQ5iX-&SeM$G~=PmL&-yUixKwwCJm`p=T` zXib_TloCQmAwZJy+gj(LU;DLHs_+BBtDR<$x$K{UjSzx?Sw@Rl(EXij_t}f+mMA3| zsDYk!;!>1HS`ZkQ$=<2NUh~=kwUGRDb2v*(QjnqxldcA^%qmI7gE!*%l)VphgDHxW z34Z*Zq^0~_#-wsG?ay?WZbltiK(xryEe4b`nd1niEjUH8n3%!-A($sQ?K7GcnSqbO zOpSmK#FyQrs*b!#IAf!56NEN|;?$qQOIS`>63fJh^=@-gfsN`_N4bT_X}fj3k%n%L z0cTuH{KA6#aKC*n*Bev$RXLbk5IT%^LD5@<&I&OB=wf+QsWJyT&a64tZlig{_t$#> zyOrf+t2^y&t)O;ax)U^IpTAvpaat)*IZ3E5kSR+h4}%A-4E3^K!T$F$quT30?iL_! zHbA9jJzB1g2nY(I5OT_j3sjxu zh4=1zJdBEGPJ{>`KU1oQ^XW0Ir>`9HCxTN%Lee{z#bFm&Cn2Y~P^36s(@8~rx+%L0O15_WeZ4c{557w93eBGefzp89<6)WB zzcL~4jV0p@dHqNo|1u~x4XU`z2$z*RUj7Bhx!{TKvo3~*fPk32#P&uGpG_Y=I1VI% zy3UTe0`k7Nr^P#ejk{y=jlL))?HKpc-yMIqRf$14j@{}b!2pjm$zs zR^_^ne6^De(sSEB+XU0LwPToJiL0VE^ne_2p2fh6l5m-IM%6N1AxeKFc;|tZD)&U* zuxBfAMi$kzRFbswICOXNe5p~nL%QcqcJ=DZ5-SGR(Uh~QxO9RbCh2MN{}C9+Ub8_q z1(3Lu1zBt}!pA+LRbWs9i#Z&Xc;d{}yCtN&Ce4?szVLn^Y_gc)^$sUQPzXAFuKv*n zARfKw1<3vY^6dc}z&08v|B~3{s-8MA)0O~O9pS>w9vs2SBoVjOy{*X*7ea>8N;fGDDpA>Rzo|Eg%dXH}=0eB7dnnL(y(8No9ViCKC>xu_g}60s|-vp4YOmHn4M zl8saq*sK0U024qFOw!PnSr2g`FHHxIx_M@ziIr=3i!(ybckDBiLSUiv8Kbob(N2hs zE0rF`d8|GvxkSZ*zUtb~O2REu=^6vXp{E=0!Nm}z`NyWp7xZV_^T{FZl0Wc?>F zM`7nD>gtf6I%~Z=ki`I7g&>FG zzGc+~)YiAiXvxrty0-<{aa*&PpD+vUtcQ{3=9sHIzv(x6i11vD{|C zC|v;Fc69pC*F8~K_?78jL zDf+7A-D}*ja9nSTXXAhYhn&w(f8OwK0Q{sq#LoIhU#e2taS^xb z3;+0R5l1kLS8L?QPZl|P?KVRZ6-r$u0YZUA$pq*BSG~{AKnd;gv(?E9;2)p`BTk)6 zsED6C4%K>91@8ieV=u81NcWIqhoH%Drl`9}OAFfyF5A;@B+At5fH$=ypm&QWLYTb0PYBHt!Pb5xp2EuHE01MXQA&Iwe(bV z1khbHL&)yz!yQ3h+rtf0KVJ1F&BDvQc4hg8&!;d6Ne2d%#7M($19VdPjBbsE&7&f>)7RhPZhD7L4Ab?S5rCmp`ewmmC2pw^7|oW&G7G_dmcyK zo&gvU1+sq34(wyGl|ZqdJEP{YfL+nZu{iY^fOA9j?PNj;F&Vqx12`5)AD`5bQ>pRV ze;7%Hz(W=pztBAdO6{$cfUbCUs!ULk6)nI94&=~gP4W5DINl8kx=E+oO=e#b#{f1J zOF2XGy?h_DI$h*bx3Awg_kTR@re3($iI~i^Ju%w~0Q7|3yZ60m@)v7fmPOvKd_L8R zx!hM^IKjRFRt;j1uA{V}@yv)=SeJVzyN)4)^lIA)$Pq0EevANqbQXpyy1OqBhcgkX zX@>O24E`o{1>E)_-f$c+KzV)wVNd-4kM*D$Vi#`p;&&@tG|kPXiud*X%ibWit(rJx znPA4kX1Js)_hA(>53--XE`)1x=()0$MnMAEj5>cb`&83*`IQ(`gBLgG>A$d_9pak{ z0T!F`;nyR`dyxCM6egUyNI$oue(-Dxz{|`emjgST5A;ZHt`Z<4)HnRTMrHo7G_pA8 zGKMP(sFg|W^&{KnO_M48UaNj=-^|xVhcr{U_7PqtW$5_r#MX>y44r8bUGJ2FAD*F{ zfZnnEQ5GQWM?{5Uq4iK#iUACS(H4<01(;)mOab-*b(5q1$>nelz_jZ)a{&JS9}3z% zxq+0T!|X0xJ{o-;(PdT|mNQx3Y3{u^hZ{xr=#1Is(lvb-b}OCI;>DBW&KP8$SirD&x^M86&MX8Z9qeh!iT96 zviq--?Fmf)D!b>yW(?M=9M}n5kdsphr}st=6u_0%`Va+e^#E|~h^t8WtYcA!&?G!m zPdx&eEc65D-s{WJhQ%JMa>e}INieK2BKGJ8Gtios;uDcoK-tV+>7Dh2NsCo}6RnLg zmd(j{Svjc%wHbhJyHMYZZMnd#=WW1P?EE6+J@ClDj_O&r7=Q8aJIF_}g4lBtefr?9 zzv|=EdJ(tR1<>*Q5~@R+R;P93+Ru=HB7flar(Ey-oq26a@2z`PgH3z#*jZvV8~4fs z(aljKVw%r52I3l5me&Rrb6C5eA41vv=9yL=<52O)P`Po;(c@_{gzCcX$4y={uwOJG%AY_@os4y=PI}UknOsoOdYgjxY&OM*pN%6 z)K;StMQrf!CO=pK5yMu3h99l{ruwh1FsTZ_(&By9Ru)CKs-Q_Qfh~Z<9+3n=bYZ+^ z1oh3+a_y!4j-Qw5a^>tRj|GnIfB^#!<%0Az7l8fbr*6>lLkfl*!WoMI*}07!Fw}HQ zXSCC}7)~bWkcM2C0pg$sD>^>He+vTU6H1U;@0GJ_kMSBTexYN4<2HJ3?^KgBroWAS z!x-2D_b7Vh_`!PbSYcO`ZHo0!k&FGcR;#dahZZ)MLSlG8d#v0D-p5f3mXcWzS6TGs zM4{@8n=Zi4oN4j`TmZ)f__DbjunH(dvc7STLEW$$7pao+D1zT{zy9TXX?rEbvED3o zsTg;qnd7t&YW3`Dv|-K-mZ0z3BZGQ9y!JhLoAK%j`0N0%d$9WzWgJgHm5YaW9R{iw z0eC*BsNRS#vE#6`%e{3<`08xOoBkZAMmar5+&Ng_)-8PE@y?I0*j#H~$nx&y7+}=OjA38c2^a`lfKV5ik%qm^JVA%#Hi0&2BmQ_N znZw8Uly3u$Z4MfR%%9jl!{lycFh7gS8UjS+m6Up2%K}#&G0f1dXnfh{^2Vk4?AY1(XSK&!Xw7V|joTt@bRp9*klts6mt;mYN4!jR z3?Kx`u)sjH>MHdY+{CQ7&SwNg&bgD!_7@ox4iADcU$hGjHVwV-OF(!r-P}~O333Uj z&ad_%R@XYdzvBojdH-+m#W{9%{Rh6^Y|E*e1fO6EV!BeN_uQ%+{3L!>O>hurwz`8_ zW@1zgT1bHPl?OKp18G6et+z;;Gm;KF%qC15pNPZ~Neic{xx4s{C_otlu-Q zu-%!<07?*9H5dTp5_GAE0SZnn^h&j|Z+z|uP26$r>;va7jQ8>#ZuwOANN<=6nmiDa z*~;A^VkFWb4lFY5`_M!I8eYJ4-J5T)SwPXE&3G6Gq7{|pY{RKspQ!TD62E~Y`6f|Q zzHYHhOf;)*H!~KDgDTzGAU6TJw=6)EvtU{`Ly4qnkO*)@H`~K1qKxF$j63hFEr>n3 zDxIxr`hV6s;V6|s&tuh~@@wh}C`R`~@*qqLoi(|NnhVgtty2uddw)9R)0QKr;JNhF zuG`;8DD*>^zHS@QmTODyZJ_cQ#nmL)y>OK*ypnPOP<+L4N>Q9|bnL)sTx+XoPR&w= ztkq04(P-y19wUIKD4Ct8kr5qqf=;pPnoX_BTtXJidKW6@wd#8y@%E4R4xElWY z$@BG~!dr?YKgmtI*(pUdRBsSlCev0nO(_K`vcZzr<-ibaMIYjk3N4EU^mGOKE$$-v=)otvkc;=*Ds$=Zw_ z7fMae16m(_0%|eJRRZTs4?azfDUQJcqp!smS@h6X$uLSeG>1}4Ikn+P3uy>zebW8X zyFewp4#0uYE9v2Y`O2`R-bJRwjapEAJqgvv zu_(*{Y}oYP&1oFkl>vibQWFg|F#oi?re&!>mvcEB}F%6(y=UJq>s7{%M^mEN?x2Xl!=-+ye+iKT5ta(XFxNtvH z!bjs&Q#!}bl?jq38=e2o7@woxaOrt!SSP=)4& zCl8o5lxR(6?{*{>QXP5Z|KXnw1&N(tOYtPt(5|AXZY^E#x6 zMANKxNV>VqYN5f>idZ;~I`D|)SH*THTsiN*_ML)^F~iCm7y0ZJey%+Xs>hrFe`X6< zd)zyr3}>$i9++lf_cLz3JhWx7gb?1#Eps?F!CwZ|0PG2lE+bPHr<=J0W#ArZNV0AO zXf#1!(4YwC&gQ_?3i!vIB5c*vLk6)&!(g?~L9(Pak>qV@H%}gcwwtke09%5~uhMfG z;sqOM>khRFR7Vj$O(N1&xGPrL$3{?$y z3zerWkT0Yw2In5zaaFg#YrOlPW-~c_^p9GFDB1?JphM$YhhmQ1t1AZo+7)Ptc5Z`9 zJXHUx8XkD}D0qm6>Q$1xHsVlgqmCU=w#4NH7<@Wfv-b7Pxvo#_D%lcd>k%g2YL-$E z#8*DxQ_W@MAPQ`WJ-E!;$)NheLW#=@cS?BwKy{4OptK z^y8;5l|zT1ZagUtO!tN+2JB>!@tD6JS$}80&GgT;NI8K|QQMlb@jl!UI^_2?QbnFk z(f+`AERI(6n0FV1>H`M_P@~sB2LVpXG027IKnc%X>BWzV_t-sv>Zz&b!DoEn&{FCs zOyJnL5N4h^AD)XSc!jzFPLfpu(m13)mLXpE3KyP#B9eyP^?9SbZ`x2w#xg_h2I%zY zzC0amOf3!}<5^5Lp5NX!+par|D4U2jOOEnbj#{0jv(mxgCyk6i9$QwBp@T(GZ+4Mo z6uH1%ainR)cgMF3Dgx~Iou#?ZokM&?!tcv}Zch9T2=<_+Mjm9=LXWI$to3qfJNch5 zjeDwMwZL~~ui_J~PO-DNbcF4#NHL8_l;@;I=X@=Al0D&n)-Fs1Cy^!vMkTe|;2jhPuZ@G3rx`-!# z>!ud+lQ^)I{Xt5J0$uDIdXkb)Dr$0*B&z(#N(-_u#4t|l<$Ft#>$I8fwWtRT6t08y zOwf#$jOK&x+*i$nW>9skEM-Xc?1uQxMr-Cb*%HNKmiJ8;Yz^bMOxBrk#IKdW@tp|L zm+Hg^KZjSQ73}YtOe<`ECvcl2oF7zQs@0KHG5@0^`rM@AG$Am zRNZJwu1)Z^v%X$d=u`)X(H8*}8+5ch{-;+^a;|oFX_xqca<&GAK`Du)V$XanL4>+>THcE3~35g`WPk>k{J*CvxIZ znrU)jxavLc8Nj!^%g%E&v}WTW-IFypOTkZuTb36}pj9$2{}M`FCR&?uhowQ8i;qH`Hb_^B=YlZA;lWxocuw^o%wC*=#3R`MFGR=Y5Av)Pgdq(=;Oo zbp?(!M8KTd$mQUCKAAP!VjN)+39^p{R9NJ2es>fgnkA2`>mLGrAb)M&99d}#)c(oG zs4#PKuCxm;_hNC?zkzakDc`Bq*61QIfUJ`Fnn%bmL}fAorU4lV?jW!L{67BESFJOI zB}dnYj;J*_2Sg8TsBf3%RGFzO)=idB+&GZ-(O1ZPyi_ro9cCYrZyxhnl~><=!9Q+} zKe?ytFry_b(p_EQgrTRAZAKUhvYUenZaLQV(s9g0716n;>lJ5fd-qhhDSf+H6B; za|yBn`5TNuFhXuasb}NLcl8k9CkzJ?f%6A883t4$xtq=8P$0Ca90q^hyTlBAz&Rl+ z0Hy)o`qt_%_D&KnA5U9-1diS}Wv5mvsM(0Og}ItAd2gZ6>S}9CBW&})$R;H^G;y_8 zQ+0j^G*8KJxekD^8Mhd4;aYAWySIuKMcujDQ9x&PueZ%|i)nf%L@Mjz7CMjBq1nU!d7^ z0eJ^5@kDI65GeY91A0#&eQwOXfgcIOZ9R*OIOP?5#BVCNsyuQs9-iNbv{Q=MgsV{C z95|^DE^AH+mgGNXi(ZezJ}UETLzgwAQDvct4nQPh-hd8a`|1j=>3m}vc-XF{eq9=3PH}dfFqUK@dm{Ni*Vy07l@|M@bn??Pb@fC2D~xj=9WR26uJ>fe zO))6~MockGQUNu@+>Yy*^8hdniwf<&z?X#ClKd!A+JD& zMh=s=o>Rs2=P#0i58az*wl**d0}e*Y$);yeEb0Lz%laBKj*GGq$VOgTD|*HbGM{FM z4|y2lj#pkEo*aiD3#nji%q*^mKs;T|^=5c(!M*+Q$1^viWo5y(VjOkJAKnjARWdBN z`@0i}Rsq9@g(Rzl%9(3Ya{%i200tLGRRGQLi<3|dF*OO`-0S&b#a{!>jom;d^fG{z zqhep*;?YdljJOxAKuOyS71g7R)jlnNdg-1x+6h$p#Y}dFK{N1frc?LD&aCLXMc0b} z?`f(`rQZ1ObM%*htIENa)D`x~*sIP08Nug!Q=aSl)Zoq$=O;&!xn{?kg7~>&Li>Wo zE%Y_+O-&IlNsn&)JUEn3o&^8r{l^`gC~;;>6)i2%-EVgZI+P!Ul55b2;BTK{>&)u_ z`$Ok_#@Xoy87fJT9_ZpQ3nGS1&jr45obyt}EagO88vLgOtX;))G=z9$`GXJIFp$H7 zS7A;#X#6L)5)wKJY))=26Co+jRnRLE%g@K;XQ?y7R#$ohs}JOL=81HG#w7VdMVb&l zw5TNEm?3#nl86H(BxqRcS!t3E+Am;Mcs~h&l8}tg`YP~TEb5!El~)P(q`d4+ zg+Z3J4Hk?z{KS%VM3>jLALrW`q7r_BTCnc};MR0R7c9JU_pX}`HUkXW?D}CCAv!bJ z+Y-s8>}3lFdk1P-fGMX>&xx!y(wH9Cd`%V{7w>>Yf#Xd=O;?m_??6p1$mK@t>S~~n zSwmf(MZ67)y@VJGtzH__q)V~DYYzc&BPIamu4~iT$<|20OVom=KJd*k^kui6Gy;jI zp~qq=BwrN@eS@XohzwPjN>qkU;eBbxW9wJKHB)sUeRkr-)`GE|*%xghDzUs*(xQmS z;>~C#O&P?-l|(M_4fr+{2eLuY;4;fuMuGhXuKtJtEq5&1geT&HWe;D0BJuP>vL&&K z7qMw6@U_`(nUFBTV+w2`XFv&93>m<4P)UK!&e<&W*tA97>v$y!BG4NJ$V~JhKv5a8 zcY(nEL#FmRS6Z-c2PB@kh7wlmpoG=~$DrZc%wR;2Qvoie#ZTmIUYRBcI!w*=WQJT0 z&=PmaG0Gx(2j~uxXU+g6)4ND*oc;u;DZ#T@h;)|SlTA#PNMugd0XL9@H8okAQ05&4 z3r&5wD!AkFBcS<7)&h&0pY-3k5ABIz$_eC~L`gSp?rg?@slteD1g=hM4n^y(CB!yT~(PaMu}ptUXfn47BDHExM*y|>>SiM;oQu+djT04>Y6`B&px9v8@Y14;06+^40EZw3%lpMQ#_o zq1!#RJXD+s&*_F``#^S`A>w}1rO%{1~YFIed3<9L%yJ`)E@()(^1{I$Em? zALfDe_C~~UK%0(bqYeRmMe;T$D;=PUeqq6;)5kKQd-GG@%PVX-uev-%EmH?eEHuNe zORv)aYt|ba(h*A z`y0Oe4#L}l8fKAqyo!qFUEF+#$uF{wL-tT9l@z`;hEaD6e;ZRt$g%r|*XD4&cu`mQ z*4KP{psv|>n;x>A?DMaldiq^4@0U#+C<2XSs7Je?;19?P}6 zC^viwJ6j<4fE62NVTj_RuE04JHHAwTOn+B>ISp_P2cmV>+hh+|kCO$XkzmSvH)a|* zZ8hFwgiYBYqGDpTu;)AHL*gOWuLKV=Ie!0qirZi&Aq03(yN0+0hKtkWGSS0shtz`hGgCq?3+8!?+Muz_Bao>i zSZ9a|)!zZH8=%lMg$2m?o2%W>odTubAoohs7gYC{hWxTKWmWu;h6T}F>$SmsLh)S3 z2TBn}I)yJK)jwId+#YVKxV0>NAzaGRclKIx z%9zWD&CXH2BghBlkc5N(xkKHx&=v~UQBI>TXFMp9;rgsXHJX@Rf6$hNIR}J<$)2k( za$&%3%Q^wPeXiYnBA`c>K0MebjRCy-X%)~bpRiR zKnR5MW%{`~Y)~x%0Vzhim%)zMV+Huh`O;>Af})v@7Dx5{jqJ=<4s}y0(O`E5d|EbY zPWV!65#cPnu>fF~A*RB2408S236z_?OC5YlB2u0#2sL6{dgvBlBZ|v-v|qvmbZmlM zt=qR}#PF-kYD5rz9nxL`J1a0?y4(CcH#VREv)isx@s}0ZnMhI=5nHt!MUl->N1^51 zTGD-&aAg-T!xGzFC|(+9(*R9#A*4WvQou#}W%F!jr(Y>+QT0NaEh-bQ5Y39Kp5<`# z+S2t!vm@Onyf)p)w)-Y?7;;mXhL&+h8D!-zcPJO>6X7iqdidim)utL>+_8`B;`Fy+ zYDxwMB6Tyn3%V=yIVx4i54m6p^Oh=Whl`2cDxB@-51mRuKS?l14@s^u}Vejx7|_9iYunlEM&v z0Hycgqeiwt4D*!o)9H&j2~fDencMEPRgNzM^oXc=tsbvF;qM-X){f(FfW{N60hBV| z<4YvnCS-e)A>ufH(}5mBDlt#MG}#kmg3jnjOIgAYl&N+DC@m6@OoB_m)Wd#ck1^~s z)xZ-C_^ujk=L#)y~EeE=SUACQ_iLhkEX?g>y+aj2oiK21Mx!}V2D zUO$c_C-InEW&*9pS;5SnlM@;`MK)rgKU6wkc!*0pCc!p*2RogeITeMNnhXIOn4wza z-kwz5>*S|NqIz#q7ZG!JUJ|<+@9qh1H{2p4P^8!W==0{MH{coHDM`T3(L8z|eI~;G zhRxuICE2V8lgvI6{`}Q9Ar4rNF(2+1WPSP&V-W7Ln5IGjEp);*GqcbQIqH^KVuNY? zR{y#2$?;(0S6Erq6ajo;hqQf#)^r`V?G;&%%LEr~SXtwYPaVGa>1oCVt#Q;FW4hhe zrw+Yjq0cwy2RT?Won!(lcCOPnb{wy}wLYN8=sBzI_j0w-+yVtKa8qoEVm6uW*wa5v z939UK_HOe%vM;YtkX**fY4t9ut4lw5c=nwp!>)Y(^kK0p)mL>bE2{SwFC3MhLmrc> zLrCOYlK$)FOSy~HPuA&AYFxgRPD7!7F6=t%+Bv@G%Kr*~a7@mZNRE+Np0P_p zQciNlV<@bcVRpgRg(~juJmOx7m32!Ya$o`deX?1CzIEE;Wi}qq(Km5Lrxf{ zq@?iBgN&b+umu-5N#npOx$El!KpGw~MMcGnn|Gdra+$ndlnCeH77u^M6FL5KNAO06 z`f{7YXqq=CSc*-Vr2H6dh8cM+8IPa#m*=&*bFimSY6+72=J$_7?%P=PGg4D4Sm&+& zNO_o9JyJ%MPq#^5^71lO`pREmCok1P6O=r6=Je^|LZj!xU_Cp+j`!#QAR=|(SXW}d zZ{Z}AfS}e~3PLGR8{`-@`1||M&CLN=gL?>h02?*+P0Zs|aGw?k_MpVsdGSCyHQvLY zN+vwKhi}OEBPSc8zTP!C@HF{+lJ3Th&n=j|7(@}dVR43b){nW51vMTlR9(v zu2BQ<-){?zjE$$DkAVZ!{U9{h+S*D>OM{0iz$0G@hByR&e}#{8np4KjcX$QUhT+e6 zLhlLD3R*eq!>Zy;0mLkmUzo-!nFz_4(-mG=@UiI4cZcX?su=hnS60r)#9ME#GCjp- zId$rz4&(uZ${nzTY0FXTY~2(yLMt}JcoIG^Zt>igC36+4kAu*@7R2L{b}w#+{|XNm z0sKQml=(qdNlD4tnl-2caCAg`Jo8fNSy(rLm;cKe&PfEe*Eqk=Wa*^&gO{vEs*H_o?v0GYULW^EXx#JOoIyS7&KeY$UcZlb3+}8(}{=T~a z#Gl|a9C&!h&hPw#6FvxN@B{CNIAMfE&zIqr{CLaVn(9|yZjq732PfR<%Jxoj+SX^N zT|A06MdwY0QgQ^33%nD>lhvM~Ai0r~&` zOPBZu1J9U@3J7kRTD345c!GCI=JfV?9v&VFo_lX1Y7v#6{`_^yl){jcM}IK`mI3mi zi$NXGsOJUps<&_7!gT^_7=X{0hK7k655)idZRhw0w;rZT69}%DS_xyOd5bmD+gGPf zl9I-Y!M%{5U>v)Lx;Wu-1aBRhdI{Z} z2}xFmyHY2bS%gyJ$b~CCaWj+ub9vyHe!z)H@E)-X?C}qB)M@SQeV)?`hG%+ySQ`%Q z^h}#<(!=#zWbwA~wvrAO77Wm)H~sm=v3QDw(F^o+A~G@*$Kq`}+iM@ojHn`hz%-!%VJk zETA!Xz3uOZ94^#9SBaQ>i_F?Gr@O8$*1LFAAx7uKS*>?=J|*lOsSLxNqwl1p_uprn z^f}ljsE{xhI@y#Yu(JR5-WcRX&6NJfOD(mX4+L-ioL4Z5i*uBsE(2b2s0ZI9HW(fD zBK+S=_~=*%y^$u^Uu{vSpjw2feXs47+eZe0!Dg7JErx^2@ZveO8_a0@3YMV%<0FMm+}&K# zR){1AN_CEpt&-Hlhc_*i~hmQu{Kk&-D$=yN^g z_3PK4h`xlOR{;SZ7J;gKT=N8^%2UMiM#QBOn?&cpY904Xbw1WVIFS&Q?zva^eUfJ8 z+ie(3HvCRoCr{1$5UD?KG~|`Jl;eo0m7EH`GGWtn$MQ&x2WD}EI5Weqg%>Ucq~M|+ zrqySN+ZE)tq*1-NQR#Si?J$+iKEskxn>SehX6nNOF=(*vE{ z^$Mi`xEFH?5L7;#!oll}Za7b~-|yqS?SgKsL600r%D>;IaQpG~h({U}sLv65_yaRp zEL-Tg?O@MYUITn{A>zlF>%{c`|Gh@{PV5dCDrBnMXI8P1e#uzl&LqC~nwBBJO83*> zXJ`6DsD4XyNAT5^FL2*m0(@mm7MiGgG6*BAO3Z)T9~#<*GV)3LJY-EJ!?oAfFcpS% z!45(H+7ald|9bmmliL;FDG>^I7`z`{d;j+(KRdWj2KomDEc!kl%G1qc>%sK4o=`FCE4f`&&c=C|L^Pf|5eN9BF6r~3SCzJ{Ll0(*sw zZ7?B_aFjy!-#wg+ zB3!A8n?Lb0R(X^FY|?gLfaLl6{W6dVN(5WG3)9ff-jSD=U#NG7eW$;-=5k)~KsgjYE-@Nli-J4d`p<)>$$ zin3a;g#+0)`(taRv|o0@+7h&LcRNA~3WydD9fCfAkp+yTAP2nLSZd@-dX??YI<#$J zPha|Bl#p`z%sTE|f}At>*-F{7(9s-i%{%Wrb!-y&eXbX@+)--nFEsLiA$p(3wrRY* zw=F<r*PTvPV&2s`QHM8j=JHrKOtiJ=@k3S`Yj`fcAw{*^ZA|E&+)AaYu)!;bIr^*#^O<>oh@EKn)NcaAvR!6mo}>*&pIxC z332nGkx5+vP{6opie_mNO*{84xe)*c)~at9 z=?3f!7hk;5m%p4+^FAX;wk`{GW3)yOQOnR!Zae{{(OaiO4v_AhCLMa*lCyVjm;DQ@ zVyjgNZw3JItf^>Kq&I9C%{q3bgSrrlE z{cU<3>+L$qG{|Z(Epg+^dQ2h$@N-e^k# z$6qgkHlvx1T5XfLGgdKOd4Q~D!Uhud;t%PL-7>J4c-u7{I$voX&N5Hj&F@1fUWcy0 z>^Ave1j^UtHbddAf=dvW?AddRL@)pu&C=_Lf9w5{oQWxbyB%fAptNxNeBBfan4&Bd zdMju@7iz{Oxixu0#6v@~ERTo#aUy7IF(_R*$fQi#c=&1vhhGXseO3!#*$2Fbf)Jyt2^eo zrQWPZOP(h5WrJ>AB%FC3#=AQc)@w7{Q(x;m@Y9so<(FzSIUV-|8<^~IY4n56 z+3-RNx5?^vb5&_ZVQ}@wKgFC%cguS@ALHWkdc0nn*>ES9g#d@!!RDo}JhMQ-V1N~A zAr8;A+BE$qKr0HSJAAP83JMlFnuQw%QPp(H3Oo+i?m!a*kksk*|zNm>yVe3PcZ; z*o!WGGZzuzl=y0C*1aD0#C3|0_E(9utsCW^{7?w{mSEJH)me1X!eVF=YB_(shNayb zsq2*eH+kOKP57`bh?QKNvAf2eT?4D#`yMGmg)S1})cR#!peRvncJLe~kpgX9=gR7x%b0>?V$npugZ! zy&qm(b|g*3&CR#;)W|`|cXMu86;+oFJB->rb2WR?ULK8$9NNGD4%G=%0I?uV== z#3G)Ro2-nccj9or+GuQbo*Mxw$Q8t`+&iJ6AIxP_A>Wl;B8b&lXrSliaNMhbr=4%? zu2fna@HO(jnTwsgBq{lJ4at7jT-ig{ubDT2kxJcyBMDs)o?@H1&{9szJKj-0KKIkZ z&SlOvJN>-JT&9ctQDlOp*IAMiI4D!r;G`Gt;zr|^LL`bss%Uoj(kk*4saI+CquFht znux|wvRP@hph}4zWuvwj()sl++3<#wgarN;>@XGZTd!Gy0!U+fR%-`wj_`85mVWHx zj)bxj>kL=={QCFBP~U&GNSN!mUsJW1E}w&u6339J6bsRju(n!w$p zX)m_UDPpAr7G)PXt~XhB)4qKpN8h6hYrf7nTC}(p3$6!Bfl(G3`&wW=(_P4N+~?~a z4x{Xr;198B%ZOSeZ`;;fLf>ie#Q|RDiRx2@qDIb#co2HmEM6tRI4L8A`hy;>fi^ zHoFCLpZ?h=2>Euvcp)s{TLm|C^6UM2$$1&+$^yF!1);dsXJLEUWr7=x^m7<@+HG4Qsr+YFwNO87di*6#H7LLdN@B zRfd8^-BVCN77m(7+u3p0@4z{yESrU57HGe7z$*G|#RC)j*4AgG<-(Q(Fk}zqvd!*q z0aiaiz18Q!85tQHjrfIUR2px2G!R`)=8O5odHdu-R*U_x9~&5v&D!&VgLlJCu|il$(IO^iezw zWpp>rnhOY9avvfqd9bhrPIw&?S|)OKnJ@zRWIrj>L~B(B=0&*p?9M5Gj08`~h@%Vc29FTP^kVS5odwt32FOwWFTBAh93E4V!2Wa|bL^!XBTy z-K|4y-S!EK23q0zZiXVnPPMnFG39y<2+#^ZQ39Noe+Kb*}TdF77 z!iVUO1NgR8r74Qd?xA}NaV<9rR7OLab+JD>J3sk050cfvq(qHx6K#Y`lR4*0{WD1B zy_JfG=2!*}5$S3V%Xp7^>3b5Np0E32a_k`B(RV%l_@Kr{nCoafnh%%H9Ar^KPuS@~ zl8nB)9i?W!s7RPP{be;lKSlL;B$$5iDiIeFF9admK3KRh>^x%A12y&((^vTsqHF&1 z{arSU#f)0QN=12sD#}JW%?Go~sxEkn1*)XvGxPHrW8VY>O*U2;qQ;gt=18Up=Wi^E zJq;&3zRh+wQB*&9E~H`%+MZvR69`-E)%_pRVAu9ExwyaJLyfQEfVk>-LgpE_j?QpHD&;qlY6023OVT$n|V}k8R zprF%i(ewpFjoaxNcVTd6)c)w8fiE7gQkX`6Vf0nQLhzgW_9w$gE&EF%|7JCe*8rw8 zJG|bND!&fkVc-5e1Oj0Iq&=7n=A{iOt@kPuHl2xn8dV%Gb+eFyDm4S%vu~_YGik z^zC2L+ryytaO(sA3;7bemsznjfM`A>u^889k4`9oB2-;90=T;75X2ytpXte7UUV4y zj&7yldKPO3+tyMQTEeaE?U}uM)N+}lpB}oJicZl9Y+sDC_K=(z~n{qll|{OxyENQo~t1k*O8t-c3* zY;&$-2B3y&`=$#eZ$J}drS{28sxcNDj4I4wRi_z?{pW-Ppnw+v*@Kzp>he3>t5=yp zbZ&=UwaLDQuz{xsq}kOD98plDr`l?if=QYo%8=x)2h(v|x|pY6dX6*L;FyCe%7*!y z5=|XgcW6s6MSS1%6A%*)@QnV*-Glc5CM#@aPhAIj7eOU+HKj>|H^q-&5Lw>IOJQ3d3er%qeDySqNunLOTaJfuU(ZBc{i!F4t{O7UFqO9>oO zo@=k7RZ69*Vb!cPNKJv#NmzuFv?tSQUHiQA@E7=>4J`T-{N_hT=rj>N?-b;E*-{Hc zL$8>>>fiAra?CjzIetAw*qyF2R8bnUw=*ds#zWn6aJ0{(s!AfG(WEIqkk^uB1f$$& zrIqcG7w#D7nPIR-pq8bZP0)QZU1>M;`1?^4TgTMP-D=fKsW6kXU@C+?-h&0h=2#;; zvaR231yc2%#}`)(<@8khXp29XU4hF34ekCp7*U%~_i{5a`ST(M;HcEIu(ELSnG?`2 zspUhxI8wB&TBsN;@$}p4cx5~4XMUcfr^qAL zdA~-a$req=Uro{51(B}An_M>cY%*7OOdbL}0lClGNx5k1n!m+@Ox@)aV3F+a5oX-F z75f?5Qd~}d08mzBlbDh~jtHl&>o)l|xZlZNZ@qB-{3Y4x15k^iOg##Gsfal&KdGA? zE=>9jZp?M~D1YP&7bLl^E=aVf^03M@`TN(GKF$}_PL;H!axsxO{(!~d!b&6WVBz`7 zeE+sp9=OSXQqAHO-pww<;bM6u`P*)x;MAu}s+AbyS&h8W$P;{q140`y;;MqrZ*ECm zx5_OCKZNN0%VbcbREMRlt*=8B8dQ+23>(7ew~TL=47sV@6}Lgx!=YCh+>x%0gUPmn zm{Jg`YU62fD**LcS^s33r16J88?0Z1SEb|RP1d6X~IFbtgLf%-Uni)8bWF6FxwP1 zc*WTx4>WnT=%~P(PQO#HARs{QeCN4EC@+tC*VmUCFy&>@=c@WaM&|5?iBCsVgP~%- zc&G4zF-%Cl%Uowp^j3mF97)b=K-xcghsgI4;rRnsWI~)xoJ*qqyZm9N)&ACtqcAna zJQ{z4>}=1;;*t`m!{pP)ZY-vxI&~&SnZF7$n(uz>Fr6WrAv;NknhF1!*o10qzd1iK z>6wuMtF5BVeV#VKXwhe_Z&AkAE~#XNk2|j$RePQ0As57HnpFL~;?we@O-PyUS-1wj zIkVc7xKbPR2NY+V`&oW9->5jd>w&9VHxC{hg>dRY^REwVuj1PJKo6~8esk;*YEtzt zAkWx}MI)Ysz2cp~jtOHiz|g^?1`+>M$`CgwGJ)WFKph8cIiQi41LipE>)>#-TT$=g z;sUJ0Y(h`BNg(Cz%%!3d1*PZG9zO;Y7Ei0=nz-dZ0F;nTzh8SR+kZ}8Mn#VCmNh_)c5XXf?FZ@6~$uV zGD>f3OkZP|tPlmNQjF}YLlkRIkBZygyjTzNzq%l6Hc_kDk&Ha9;PX(-I!A~zVvcJW zC6WcEV=z7h!LPS@bt2pu>``NeUcAv%EAsS3J(~mCGsMG`KRr z?|I*DZBD2eM@TC75WhX3@WKfPG3mKyS0aqY1eR;S)v}|yRiz%e)K>2oK`dS*Kw9YM zcWKNr$dcI@wyxXde!wXN`sn4NT3=^$;G&6o-rp+Qu!<+!0%rhm6H}|$AH3j#-+Q_D zPxOIfG^*?yheeDJQu(%QMp%ilw(sJG-b7_^e!jK(IBB7P?uQS&D=8ntr{T!lU~LS* zblYlV>XJLmC^HVmL`C>?Gchf}`LyQ=1oDT_t4^Ih$~86UZVbenM5TJgDoue*6V-_k ztm%)~jalr} zTLX)w96QM}r^C$5d!?g5x&*%7v;h$3!WvR=soC8piAtp%Dyi?@6)O4T1zh%E(;5J! zyo`Wn5^#D}9>zd(U_SIlyCtfLy5!&(%38cHA6# z22^&0Qx?T-JelC>1Job+^K}<=m_T*V1Q( zo*lytusX+KXYS@u?Q-f&fpK=*EM8m-1&^l`2zQ`HAN=~#J0toSI`7*f35Dfe)KpYS z3M>;QfpPFd$HvC^%Equ5cvI0mV#xvLyznLntJR(!mF zVLlBC!*TTsFoPI)QsW1YaqU~Gs`H`r{X3*S1@B6P;Ks1Y!lSQ<%Cwjf8>2A*{KjDn zePX#R*Q7(&hd$FatUIPC*7{P3VpWyb8jNGxhK&aq=`*7FJ-r^EJwVhBM?vlP#@l13ZX}9BDNsf$z4x)#0~x`1@}1{a8`ge<#3S>2(duJE3=rvMtt(bCn9Qe zrm(ZOhdG@qJd3i|3y1BHprB-3YZ(AEU$?xR`iYRxn=FD%f}ea5%W`gK*O$|e24E9~ z+O}4cVW4}SapdZDd9rjv1G>40_3l{LE!g7+h}Eb@K)=51{^rcOt%QYOEFfdYZ1 z7EYbfz*eZzty~_*cg|HhYwd{#@*6a&#X%+uan>-*tQRrpVLkHSg6pXPos|V@pq+pp z@`chUd?2Nj>F1A-w~+LQF;31NAcGC)?0Eo3tY#=o)j#Y>?<2YLCF5_$49R7CzKGs4 z;<($_Z%~B(y7)bQjU?fqsNDF~7c2oic{BXxST}g!?9)=soli*+Bqc~}k{~TCu@6}t zQ3MzlDD-_%bTfY&1h)K|VDokj7^hCO=`7aG(QpvfbaJ-qUkWWjSKu%@2X-kXW)mKAfkU9xtqQ+r zwNSfdoeSQ^S6>r0Li=7NYYdW}RGW7&p$KEvGY6y5tY$SJzNI#{w7kcWT*|ADD%&MuV%lMSwT^*4J|SO~=R7u2 zFif!67HYwB4rcjLGkEk#6Nkz6`pt!W?KQ;>?XeaE@VBzb`i>6;Q+j{$pxdO>20l~h z#^*Dz$*82Ve)g0X-h1Ujb9dgfA?Pj|i34Gnuww~L?MvF?)^6yVY8m7o16{FZSg^FT zH20gj`v!(T$XOxqLCQ1Xt*3L(8f}bBCKd~Va<7uyay(Fd4W+6ERZ}KT`s(2YR{fsA{oG|%@~F4r&YJl*nNe8VqHCr z;MZ@$e`2SnwhyqnLvf7`9`kWp+B~GoECrfRwQu?kQ7;Z}W6;SRkjmae%xgh#vs8wz zw*IC+Cf1<>-KBoiM7o44W4lN7g&`Hxtx#|3X7BD?b0&0L8I5Z-isq|E$~AFcnh%fV zGe77u6pz?ZQIRlqz+YEAW-Jj|CuI*HK;kI~y;-#uo8M;ZZblv_DX~weW(U!$c2ByO z0~3M64iDI!(gaMh@g{Ak0=}s3xeraZZDKcc$Y4jLSvTorX%j{ z>UJ#TkGI}fJ1LRvA6nO}fTfUOLe8$K^ym||I3C+z;$9g+VSl~Jgfnr6zq_*8|k*;#oZgM00o&C!8v*6kvA#o2pcEBVG73oKY#X9?x*3G?G647!Q8xcTs4LaS`_$LT(%{Y=R&apJ3qo zNeT{X@B`{`8jX@53k8LTa@5D87fV=G=a_-aX%Nj{WxDiWuUBi6*$@|z%K&m@E7%R# zj7K1np|-!ZScTCHpL$p6Q(=k~#^n?!gD`b^CSb^&58Z2O?_g5T0w&7qB$4vFRLSAi zz=7oABt#iCxnRwMBguYHa9=NzGKDp=Jh&)dnXGY!F}wwEu#@{19T_SOM%}&N4X|Xs z{|O-%%$Q_0N9cw#*WKR*Ri2=25CiLx{NlNu+_sxJ>C5vm(EFjc?iq zOgC+Ia_c$CJmkj(i|r+b(w2>l^GbPx8{fC4gXr4e&9mtPF*~A1Y`2}&4 zvl+@+Lo`5n)iy6(TD*$$2%2)esWWCae*tCe77Jpo&=Gu}^5E6!R30|cLKuZbI@em(;vrJ;iHV!` zNWZffX-Sp$Ai?uF^&X&U_{}Q`c3^-ZmsOZ!tG9}=X4Y62K@AbDonr@1_I`c3FxQg9DR!}O`iXgF8F8V zYBXMXYN7Nj&Js0&+{jM)S?mQGf{%vaYo%=fRs1>ghryITr`N&#fDYds(GjjUb4p@K zXw4ZUy5f(UM-8A}am*kef0=elAf2)jU9Gvg5FM*k&vS9^Z{4serZ<#{w_dAR?{CSb z#&@x53CQBAA()0nR&J9!Om$6B+-t4T(s_9|*syCA$D>FK0ZE=}SyU>qtKvOo&RP{S z_(!EFk4%oXMx@Yy?zQfc3jmhbhC!tK9&fyjUVzJRo6LpFDWC&*gV#sQYkWW)2aZtV z>J@Jz_-D4UwzOF<2k3VO@OGSu|-lgo~IU)h+Lm<05Y1a2<$1-t}G!^0O;CHMzZ zoMpSyH=@gBy2~Q*)q=C-Gm)J(m<4hId`1~;$gUm|12>n~{r-k<0beMMl`&Us)y>8dl$w~V>{#^mh zKB6~Kg3K&y61u#Dxf@SQpYObp2DO~IsBznBwCUJ)Lp;J(FT5>}$=Sb^qwXq0 z^uBy~eu^;xn(|)&6jRNT#S9_6@A{9Frm544;l!luPS*~1XK<%@77dKA`R^|~mmwr8 z3plWDTO8{k3Jre`oa>xcG%3v1$+V|PT9Uyqzo7SLUcn>DqE^V&_5GF&hBi5S(6o4a z<7q)Lky`%UUCnA+v#=D0W39uia7hI>!3FKErne1C6# z&M?RW3kj`r#1;P{yO-iY)W-+sA7J2NWKMtX$^BaaKJxYD<)VyFpBT+wrNJm@@XckD z%z<+kXKA+eR4wx1v3uWD=(I@&?~ewR(&FcI7UsW5jyIe3q)?_q->G362`wF~`*53K z5cp(y{mL(^mk|bAxp8siG9*{8lGDk+MpB*Z*P!x)bIJ}-7AjB*fq|3hWL`{^rgfk< zh8pF;58~}Y7V7xp001(g0?+Qb5(s;732xj!z=N(rAHS~TEK z+@XY;o`U9!>!yiL72wRgv`Vlnq>u$3{5dVgmvK-tyL)=V&87U+^2H`_#0dx#o0J|1 zP9>wR9^>I+TWBAV*`Fs83hwWpLGn0$Em#hd0Hd-z{E~)BF(d2A+7FN)S8MPa;2%?M zl=EIP5OWX$%4~&9D1(Ma!F~Hmeb9uDt3RiB$|#1sNOb?1lA){+9W}MrkQh>iJ*u_Y zuF$!k_=^98IOfdqvdPpLumPY|Y|y+ZQFnxK_S`x6a3HaLvAH4q*87{lKh?#a*w@P{ z@u;rcjc9C)hcSz4W;zUOXb5T-yVLv@oS)~)r`N5y`6oNRW>0AFKDO&@Vzju}Ux%>J%EfVAO0mHL8>pl}lX)maCjC6FLqA`scp znFa?of}f!>VZ4R%sBEPqDYoC83UU8zm3g$7`VprNHo&+I881C@%mzoGtS^%m(@8t` zo`bv*@`$S0eKs>@i&MlwDS6Zoo-m7)gb-8}3?PN;;+?ag0!WxhFgUFi71Xl#`qK7^7YGqFI(E_(`YU1i<)Y>jIh!_Me68{(MH} z!LDQ9&=du$CE)l@&2%V=t$=Pg>vj64&k~=x6xt%*pRaqlJRF91@#dg31j5sZ`!1VL zaD?eHlU5TfZm?&2LTzh7%6_y!8p)aOCmX1^*x%JljY91(v%y)d&G>n2_4CwHfFd3D zO9LAsM*dD2-1EmBB*BT>BgE2RJE+15n zj@m7vL{rD0&SE+HOy(X?InA=D20k5=|Bh`HY{eY2};CspULi(0+L@g3aWn;$FW&#s!f@wZj2<1`_{pPHVcN z5&#tk34>SK7%XNiEv1Qm%M5S_jjKQLB`tJuL6cDJ&QY6@Nf^J>v2^E?INdwC%BuT}0Gbl$ z5Dv6T4-VES$q#^&ng8a^W@^+UfiN*~eFA^)_q;;OWHL&hTt?EBkqswr>=c^I3Bei| z70|9WE;aY`%v8Qz27nkt$+2MoA^ZdT3*Nsi*0T=P#2Mf?-5B-c^K*=(_;97jQxFAu;i3 z)ErU#Tsi%7KkJA=Xq@^M0bri&&Wy9rnGlbergNE1z8_ZT;#)7RIJM?SgtVnqEiEo6 zQy{&4n{T0$19-g5gqqu8CW%0TvIZ}`H5P7ZfX;NP%oV(y(dS&qXjt@MTyGe3>de_U zCodnC@W9LW_+p3$GcsMbMq{u8;mP;lCfd*CBqy&?9V~sJc3SSsY ziC~w?2h2`*Z*&Z+mz-}FL4pA(hA5qd^lz=I?Lt(r6}Z%_E!=c{U0(^cX~WLe=(jq> ze7?znoCT~p<>G=^wTHZU8^8fj2n`r0bKZ^SPl3N<#zY;+;Gi~Zyh0a~4be57D1<~z zA`4}WmG!`A$HOPHqJhFY=I}axW1K zG^09Ho)b%bt9@_!(%Q5aPvC_1DZul?Be+pO?W;}qDb~D8rjUzVa9L2s6!hz6S-~jZ zF{_>p38-FPX5HpIxovFTTtUHQheR`9KA(Fn0ct zl<*GGTa|T^_JKvBov*k~_iS@{1ex}j{&PVu8qkw}pHYZK={7XJ0}jsFq8iE1UQ_q4 z2Y$F5`q4(HlpE%t&PFluPmxamtPYWY8ddzWuy}U8ei!w}qHg_Qs6!KJmG@4ikm6Ee zXHs+ohY^+<_Ia|IghdrhW(dt|6~yCn@0wp9X^gD&jpFDQSNp_UA_s6aFmV!L@Qv{6fjb7n=~HbX+#dS_Vjp0i5E7y|BVM?AN=ClBeHu|36H)0 za9XP?Lh*-Dg54Q(%xYM)&^)-)Rq98?^3|PolTmY1CiSDku~UHqK_{JZKRDcf+}k8k zW)WW!HX?+9GVU@S-NEcz4tuK(6hL_gi)cC8uX8qhuZ5MFma zj%k93h*2rAOGQE9-ri4lVV6fAH5f2nCb(hqNXQtb^{FTx!?=3U3J$JZP#o&0qmoL5#Uj9YgC=K=CULv8KK zI@8gZPek{)>O;gCBX9@MN%_dN3in4Cs)+2p%44ImwxJD$7D_5=Rg{sj4D0#|gAAv8 z6NX4h*$LNk2GX2en!;~nZ~*=MwprFGKJ#?iSSr~uEW>3zUxzf!Q>CnNJ;N)bn5i*s+f z6-yZ%*v_fgL=QJdil}Q?hl;EL-1Iq)XhszrBOMc--k@moqPRnRo#%izwR*nIq-wKq zNH!RJDrTZmD)fslhHL~;GB>eU$n)2*{?*U|qp}mcTgi?h8dW?lA0RTAW53wMAO%tEF z^D%L}Zys%d-Af#4SSTQ4_KH^Y>@v~t?~}H5;C5w$bDE{$g|^lSG`f3`EAv&nKw6o}i*vac(isS1Cy zXV2Fa;{T2`0gLf+G&a{Miu3qd#iN7sAYOL&#`)->cW1qAg(9!mf5U*4 z7_AcWoDL&^Cfuv6sBL@@7Vf7MJmz42@KQGIMLNQV&s^Tapjg2v1{m*m{?ySfw}DZ9 zOH@1X6yJEW!(2!$=;-LEuC7kqJq~bv!yup*y#3W5vva8jefS`eo4A^cVL6D4$Obt$ zLMHWEN()RweREThV1YA5F;t~0p2_EqAulhl{@4mkoj}B`o&tujk5ccgyg^MNgdez= zC8{lH>g6RXbnSR1!!N%|FmN)81r`Ur!CZTF7LrAWL@7%hJ%wIAo4jO6-ThU{xbF06 z4r*B=yt0P2R+v$k*$DXxsHc7cOSf)vYvOS*;9YP6S`dORSTvl~r^`N6*kCn7&4-Z1 z?K9)i=;-2Nq@Uj{8O`@{cvO<)HIy^359+|SN7SPPnt~7AX+F;QCR)sWfgYq*$s4Au_Jux=Q0TByeAmZjY4*WvRj-|4HY2jskhLWnP7MD5__>T@s z4bNzzW9+o;(6d^F6x+$9!w;cT8GJY}3f&G~_@jz!SyiJ_h>*a*33Ez$1&_(>iy@K3 zO!2Z)_0@$AH~Gv9K|^sOR^{$TRT@$4xRhcL767XO0(1#69iUI~SU_M6Qr)U3Q!t#A zpLvCfF>(Cp{G?MF+kq8Mny%X?oONP%!!!hH`gq8Ic3-eCcOsiSWjB` zAtlH=LN=-Ns!_rd%(>Jmp_DIu{rdIYwZrw0SpY@H)!$a|n}f;Lm<19B3rTX(SRA*r zIGa|l+F82M%cc{hY%>O-t}}WB9XW@7=Uo}YrO|T1)LH;?s=OA!LcP*!4o!V+R83XL zSNzl2vu8mMhdhv+XFt#bbc|l{D;R;jNGkt+23BTrC_btw@9dOvN_xlZN=&?3S@j-x zsecO!cU&V_6yOZvfP>GnTD$A}KuBz0U{IXu+RfAJ_zn!fE3(s_8OJ6F3!x}H|K|fO zyv}X8Nvp!=rvrg4@lz7oz+G!p;bD6qogBLC3J`U zfDyVSOr{(l4_3cl-rgRepc_H}&^$O}f9D@EbMvuYWg|9YA|R(>_|(B1Pd2GNpp%d- z9pr=S+r#rB6{VAtv1`<+ZTCN(<<@VgeKSd*3_=CkufUy$0^E2A0}KhfYd>(qQZpFh zKkoMcsnZw3T|*=f@pRJ-isi;M(KzLTK(wLi@dm47l zSuzPoQBx65eW3)rYLqAJ{RWSCaL27Lkm@-E2AnlmvYA&V-UMmsA|Q}2rGfY{;iwW=2{UciS+_llK2KYKTQfciU9hk=exOerD~ zVo-RiK<>c*0xYdO5maQ&Z zH7*W-NEyf>09fI9-;BkHgnKVX-6DZMhn`$;y8+pk1?(vNn~_?+j{UnhQ;?!Bh@j)& z90jOqN49b>CtXttKNVWaJZ(Tds%0AyCE>^g_lnJ~w|P3qv_25OPgHMW zV@DwaEgz{=X+jx)FclIsQL}B(v&8-~dtojC@tha#zAPsSM1yHHBkN&cuoWL5*&vx| z{LxgEvqLzRdYuADC`MYF7cP|5qEig)uJbzX&Fu`AaIQQL1}T~5WbI8*>X=S9zF(te z&jSc3lGR9VrkOU%HlFaMT$+M=FfHuG`$YrKcIm zttYCncq$&&yx{2ddK@u1ISF8(cRpY?3mdX=P@q%fkahAy6)qnN>M$V3RL0bB-60nQ z&QWE3@x>=0@7`U^y34tD-yYTz0wL!voy`JxEspL(f0IwEdL<;P4tUsJ`Gmb2R(Y5F z$xyJ4$l<{OXt}7aCeBU_^z`fqW`S-14{`sm_`I{vo&`RKx9FP1y!{4&u>c>SpbF}A>Cc!4s2418EVbK>dSSZ+Y!m12_;i`)XS zLFQ*rZ-3#^%|Ae!`&1L$?upK=68+#Yk_S*tAjMOtYT^A;@cwjJ`HL0$)3@dqpR{YzV3m6aoGvI3khT;9?CU_|Zj{Ln2V6Gh zn~dJoEGS8mWzq;!HWiFSs4e|XD*#z|Cj1-xBGk__uh8cLa0qbW zTw;UjfG>8jCG*XDYG_75?(@8m8-h3aQ7&gN8qR4wd+2(!os^KR%&HDC(zjn*?aF5k zmDR!L$0ZjNKF0Kj-A5Hj@q3?KbXdX5QZG_$rXdG=RE!27;@tjS=0hdX#)E(Q~!lSNRHHtoY0{4cIJ4Ut0fQ@{kY#*_ILw)^^ z{x1l`ik)R!Xg11J(7LCwQIrFtO#?j1?{MeBW@%I6gNiJ1PU4HZwW!67fNg<-`rQsLIQ!w>2URo_{jIIA=jb2O z-xmwM)4BhUM-9Qwh~6Cib}*XUu{(;R7X{_guE=)=C?T^Qnr|TFvFoUOhpByT%XpC* zNP>Do#?T**FZiko2Q37HY{8qj&$!A94;GmX9v+b0y_*OZj6*?vgXv99v%?xx@4}?U zP=!^gSW>LwxG9Y<%}@tH;Wd`)0Gtw?s$!rS!}vj>xT_qLqov zSPfn*U_9xuaMhVn%wuV2aw!2YBsv5l1&$}5XKs!(rAQ@x zKVk!ZUni-vyrMR22;$@A;!%IxffHx7 zp2J{k%qoDCy@qGeEs9@8?Me}mzAuiSZ|@H(DRkIka)~cO#e+Lw(-8Z=I^%P2Do{5u zDOnZJg){*Gb8>Q0kBkE-k0PTAG-3SaUi|sOMQ?)C?;A7&aZGf&tN7x%C!4~y3=9kl z)llnum-J47Ybiwzadvt612Zi#0fFk?EDhQPCTi+yOxo|<5#vc*u$}r^^V9oKp&#W6 z1h*Np!{X7bkOeSCWYes@#O|Qo4i#?ICP~iGVuXf}@1sYLKu8^=IFJkHeuXlWspi+Q z3;F?>1Vx6Pe>NHcxx=O`k&-G`5`s9@wu<&s#V7Z3>F|G~Aa3y#p&ZB<1@}VQb06j+ z4M??|om$F(EHEgcj!~y~v!lQEt#Aq}Q z3koFuWWYmLr(DcIHANdi50&I!`$ZW1u0#>djgFrB@E2zGy_dL24`yR0{vz}IhK399 z{p=xOfkDe=G2^?sdzE0waTe#MQsOhxEw6h(xdYQJPSa7B0x>!oxl9)$9O4I1_pb(y%RV!{_wu^GQg$WgGJQRleW&}3hj*gDPG~tU2_FKaVz&4Ra zQ%XWlpTY{l3qw@fgPPC5>>gGiC>2>fReF8}ihCGxffVrB!uJMmW7ryI|LBn$NIEuz z`f}LJCxy(i;G}qTb(8=zEMf(tUHKg$i&xq0=uco{nQIF?FBoeD7i3=t1RfGQ18B>y zH@_1i1_~rC6Vr1gCQgIlW~mC}1&D<$?034J^0~SnOheT?j8RfZAo^BziAI-14o$!g zgvu&^KvlEs*pm%Pfc()d4$hKppJ9G>6U&K0JZcc^6Z*I1X5wI;o$7&2u&@P$Co_X^ zftn{WNDT_n$F5n}#2i=eK6~I0N)r2i2xR^`&}XtQz3PSx|0%L&k~0yYnvH2;QBf(x z+zJ#;AlTe8u0+KT=X(;~Qs6>^w(67kDFa^-^GdHR)RZuYRxx;ffn+0De!Y&5Ol9jX zYWC~&VM;kr&@*zZ!ZQSxeh;2M@L)OG|U6KdNZ^1wij05dZp^H ziq8EQn#5QW6z;9FdVU_pj`YmT8&I4`B8~QH;494uWQmnEBYDfj<^ZNTo?@_H5x90j;g60#w;1nb z;(M2`e~yoDUkx~`2aKWU9y=fr<%*E-I&o1^J)wE&MnhN}#qrqsppOLE5w7D=oF##v9-f9y?NykG&Qv=6!m!d!IuTIe6|NLDt zRX{3I4JK&t=*+%pkdl%@i=(}7`{2O?L&H?LKhV%%x_7GJ#&4LT_ghxxT(0)Nz~2*x z#a{(J+B}@ar$et`mkq3#nT4O${=yUv-^S-XD6A6!?i#3&2KfL%5%_b}zz;EH`)#=M zpFde)YomC1KtDJB1QH}Y(T{X7y+s~ z-n0dttr-KFoZD|>`TtmOgZUo(`RT%mX88>`{8iv;r*QK(GT@0xY6%6T=?|hXcsDRgvu{zj3wo=fixU;__#NthAmy znNLi{EIn^c;K1y;`b8jMzNY~f{Ko1Nl9&w%VUom!3Tfg~XuWQWTnD3~haFzPNCWh< zb%%zUni~2h|79~}Gi#Cwi(Xo<=ZF2nS+hB4 zmdpZ}+K_I+-DU!+EcY=^7vkQ;4_kNpGjx|@9N%rBv<_|n5_ozF3JM~@PYr04u$?yy zn+OlW%8Y9RWgv-$=11`Bh;nV9j_9e`_xpcYjn06j>>}*G3E^Fq+@>0jB(^XM#O zE3`v)h}?)VgIcCEi;M{T(3u z{9aL^XNnJ=!Z&V+Oyod68y6q%#rgTCjcD|VjVPK+G1@OuaCF%>^%$%NI)nOuIWfv& zU}1ql!zfH(dy$2$f^*PZfvjR10z|hZ`p|Rh_LenXu5}xafIXp4V<&GKi2lAq+Jwv= z;P1aQQbzw@e?OY8v7$X4x{W8OdmADX{oJ`@G&RnC3*F=B5+P!icBd)8ODxAf&gwg^Pln1=0dwsWv`ki&@V;tY2 zBBoP7k>hhr7GGn;W<}tD!i> z*2^-2D`$hNOApQz-VZb=)W!^oI_OVMB|u{vH0oX%L@osJ4_D=iHV6}3J#{2P{o2R$ICx5jBn`3G~7T^WYplR1^{wMfYF7P6`cm_2wvU z5t7g!=T#0hLQw7@r%|u7vn=tM=er*y(yb6Y3Me;OLOnS^22E$0i3ua1&eGP@eDhyM zEAU={nBNY~Natk-OG`^IMTIti>)^0a zSzWDCY_keg=8s!PARs?JlS#bD{=??O)}8*?e;iCW8gL}L%2Eno(FhEjU_{4Ee4iR} z+re`fv@e`Yi^+f%n|hN^o{(7l9E>(69IZg zFfd3E*N;F_#X%cri;DHVs`oQu`-?hII!`h>GHIjOl>akHEvcP8=7BR>19i?X@aNk!MO@H;v>x>j#PSrQ!|D*&Uw|Lf~I zgO&!Rs_*Nc*Okk_FM`S_n;aV2sb3HX+9%WY{`T|QDmVJoXs_I$L32U-Wyy-x zih=qL_kW(|0@^<>0W>F9bhJyOfBIUVLsNj?N`(G1b))6~;z*R6WTK&+{&h#7JwTu? z%F&!)$O}pi9(kj{_z1jI=__<^XwIlM}AjMpLe@L9!=?X>^8+FukCO1#EL$=X@Ap! zgao;;Fg!G!-Pr74jEy$v33d=gm;7C&3r@a|Zxu?ZH8htE(J5@GQHjO5WwT~DS>vZmA5XmE`loSkfZD~2jC ziO<*d)gGjxWtdGPfrcLE!9;&jr2m{yk76_vxoW`@M3)HL3*)F-3k>OfW{b$4-d`6- zZT+kWB|t4%LHjw~HAUC){l*9jLmxC3|6!JoiMI4Ws99iR=mSN>E+uOJ-B{yE8SCw_6P%Y0VX$d?R!x>kXz3O3D7+BlC%26k>;^PesaTrr`F*8nY~Bn-(!*O%5A&O{X8DCUfOjC#|H? zw@{5t(Oe0svs5#%i|((dMwJn?zVD0LxZGTP(j63>4E$XX_bo04zh(8RzcqF6*Gqg; z$~pDL-05Vg)W3Wy0utBbB4Bmc5FJ_p_;lZBvrZ_MnJ(1;5#1vba4HeEtnE%$M(k_`EQyql-zz>rxnG;ZDh_7`ZyboBJ} zT(CHK5&OSh#ODoS7#A9C5W|p*df)fkw{L)X_5<7oz!5Bvwgnsk#xyC*3L=-G)%v&Z zm#d9x2~njShda$t2+_C=UWR0QOMyMYbDYf|8TdDdALlpjymOxoO#^)6-o0m*&44EY z9zedQ17kM$-I60;f^U_~ov-IWDSLS)t@N5M9BMR?mVB0qEH z3_P7u;Kcz?0RUy#Yw^&rN5RXFD0Tc_9Z}RltACVW#u+;OPmexGZKQ2BVs~$kPA*do zP(I*0$2jM~K+@08ueG&xWyMsH)0gdh-8YVZ7sQ`MExq=IDH~s&gg$U`Az?u14_imT zPTW}}YUB>6Bm7X92E)c>*h|WD_pUB5=fPzScsiO=Qh|HvUtn3TT-CoyMyRk4d@E)q zIQLsf-c{ZnN|CZHkV>-m@p?C?HoVcqHZ&DK;&kKFa=6)#g+3NfY+4LV#blE;^E=(v z5nQ%wD4#vKVS^5~(I6M~w0v^Dy1OiZlnX4)`~V@$_yu`Tg+sc6LBgmf2HKvHACRICY1sHJ>ivmfjN{N$xDPnBS06QpdPj zix6u7O7g};udLhTsPS)cAPT2+%DDpqGUzG5Gpwu^0H>*!0VrV_!a6*ivj1*Pcd6t0 z8<)uA8rKLgZI@!y( z>m&x}ksMzXShrd+{~ud#9Tx=}b&sR2u!@R^ib#o+w6wIMQVK|SNJ@@?h_qM;l0!)& zDBVa5X&??(X~hzW?pVSciG;bDw+9J@*{G-nChz^Z);!2el@% zYO2+WsWX-l&nTL3&2Y$3dAu%=j{q43xg9UyOT*6iLT^^YPBM`9!SKMy;Uvj(b4bA= zMyj9HLh?*}SNJA$#wttuXs^wLgeA=7_+4UfpRQ$=k6vsn$|5RyRKq+cxZ8CiF)RTE zyx8^0*U7#I3uovrJ?HBiEaom{7p% z2TR`ySXcssytADT1(CFFZgaKHXaZp;G*X% zMht@sXSu!UHIv%=7Sp7J2T$SBkUV#TEJ}~1IS-s;LHXyj|9+uT0bvOeoO(=RT|Z?;E|t1tr(sjH ziCHIa@9lWQ|M|gY+hT*+M}dvw8ZSrD4DzoZhNMNh$b(^x-r)!1#*p18ZoNB6$<^*I?(EcHx=Her{_pUIHB3X`$iI2|MmFlPfi`G|U-7-B6ow>idVawc+##PiahC6X+lp4IZ~Xtb{hBB}S+1kZIV zE%j)SdEjAJd3s7cxoW@HCwA71E2@e5d5FGNawe3ZH9k0l#fM|BUo+b2jB0}J2So8l zUZaz3$Qf-_U2shg8*kWv2qakp0-T7_NNv@8+Wy`d&zUH>*}G21yYfIS#lA5l_;AO( z^T#{iMTyH%u-Dh0`+;6uNW^w`BYDf)GJy9dtnP0vmqaXyteS<0jg_225081S;+_TfTS8Vrv1L?vx1}%NF{Pa$iO1SEzdI zKvWU4yT!x(Z5j{S)^}laqwW7bPtO(Q&NRE{!`rr@nhqTFMJqUCg}_ErK04{5 z9lz)vZ%%ZZnp7cyn$lo9n@63=fqmG_>;*M1-FPkG9(W^0sNQaZlHoQ*l+Q{jwa>o8 zmt8Cak6;mEqFPmYLAPjICc8#j&cIgzw0OoR?(O+w<#z z8!U{T%YHDinr-I1G~v}_#NcuW+YS^Ujz3iAJ9qLzOI)b?A%PXVij|8LWfZzgUFPnu zxBbvS61bA%Gt}@O5fkOes*`WjCO@8Lz#F&6sgAnpsPwpOHYdxd=IN_$FX6Ul+asck zo??<5s)1DOe!q;mPRZNnLGN42O)hU`$-EyUm~{`CzGkODX}OtbKv| zy{dEzIJ|9m@4^)-DcF2$6y+L1%#V-89O)o(l(3Wm2sAzkW*WDYJxiXwP>9y&(I_$J+b=hGb;VM;GCJCLmg3H_8P&7%$e;62&M&ugI$Mc8+~b=3e!M_6*U5;~Ke~|C6lJgchnA z>;HI{6y`O0C}iFsx_8S=0|W`)>Kc^HQWYzA*B=9QQaZww;>fVkp%S~u&|#KLx!}eE zw<}wjB{v_~)cDaum$EwhZzWry30|S|U1_ij6C;6hXf>T~i2^xBTex~) zKowJ|iey3omHx?2GH_WfbA~`Y7ue%gJ|-ui_6FYDHcat|{m-hYGi2o5Yjp>EIqTn{ zV)xx!$N(l|w0tYPJW-rlz_FsGqH@_kG8sfC)_vmz-nbWtn$6$iK5^GjpFMjexmge` zndV4JOq$N8M8r2H7l(~3R8%5aC%(q9Q8}ba?|w|%rR|Q`Zski}lE2O=>D6Z*I@X_~ zC<~sQd{EUf)*C7*eAN%WM<4>mN*V_uv}8}=#toXP3%r?7U1>7+#K}0o%*4DS;o%--+oxC4^#zzD z&s7n6=7&a=pF1g{iuKFvBPH!a=!T^9La%SZ*ZTK^$L5WLAGMWi3x(3gf)R_vQ~Qa& zoW?-o$Q?{u>;$A2CE%I`kw*JZ^BUtdc7<-EoLTp_z3rNj;eLJ*pv(fQ9s^)pFIbQX zu^g_Ep}mCudd)>4A5vCv39op+QB@g!rTj>$hJWgqEe}kC*QsjMJ69yUo+e@_2-kd?!CiiNU<~s(V3 z{>^9o?m!fm?@+aSaq`4GS_Wg06of_X67KQyE9Q||ooR-3AlimQi`M9^nV4jHv5kmb ztZ#w@ZXd1y*E?m+eEj2cCYv^Anwy`b>>yr}_W9t8VxAR2NlSfbeh{dh9IxR?&3BN+ zsN4_t)Mc)=wfY`}mp=uDN9AXKUQfO65B}t5leb)6>KNO6WNb9_J(Q|@@Bu$-1k_Kc z|LE(fPzYUN}HzW@eJO6qjgZSb5M&K-Wt0MS_T9?R(?Y(xjt8 zuW9CN&qLp^X(hKZEDV0Z4FTT9Oh1@VqT?0942v$r%`0KPucBQh&0s zDIynp+gU&#cd+kpm09!}k81L^=p1%q4joZ%?bv37{fH2gEI3a724rY-8OpTt*r~i$ zh!u22JP|Szi2FhDS+l{Nqs69l`m6RLEj7t<<7dD4JM!{%8!Zkc-`>E*q~?4waw`A2 z{or*=T<@!C=wCI{UpFXUH!^sdHipD{2&QeX#1E9( zwFXd;EymyRUb`iM{cxxCUQBOPH<-D3w?>zH(=HS~l-j!8EZ{#K#8Cq2xj*Bmx!DWP zEn7z42aL%--pS9)3%1Z91w-`m4FghAI6PW^efNy-F-?>6&MxO)#P4o>QX1njh~_l{ zF`|hrtAPT8XrY}e-Iz$$sfSR z=JW30XR!#m5ovGuspb1#7gB2ychIXbGjrr#G`I8K=eqGWV)6f1O}ODaAqDR(> zE3LJS{UH>L9<*udR7itby!Fg6)`HsMrqMC#BxvJU#4Cuk#@|r@?BPf(6noEwzQW;G z?^@yChpLV?^5q0f{6x9TS-b=VybuN{U}6nRN57c{=~a#Nwmd$mvr3WI_`P=4fa7x6 zAT2G8Kp?={JRj|JbA&aR*_1OfhlsK0zzRx&*i=Je;CYS>ptyn!#6B=jQ@;ZJnz+q@ z)u98AkOr@_UEPOlL+K!I)u4JFc>1&SQv9&zRFN4EUepuNQ$oTXsb2c_lsVo472+s>1sT%t1_-UA(p0dkx= z1q^mR_coVsW#bL-Ms%1O_p5NMd$l$Hs5?w5DDSd^m~Xjb4ZGhAJ~yOaUX$Et@+LdO z-HR*zw*jvnb;IF^(YCjew;&B$hue~-$EIDn! zC1T)g9mj4?8`S5Z7?e?VeFz%in>U|td_V6$tzQw5@N4lNvQ)$Ul*038R1_$LQh1ds`w5(e5-TPYh4wX7)*c3cm1nN;@p5 z_X%PwF~WAyAF0&t#e^V(-+=_I=yjzN&EUtS4d+r&H`^2qO|kMCtqwY29UUv^-zE3N zr@!D(8Ih(L#koE~74`EdT@3H>i%@WvEsWPBjyGV7If?zHQoxm%5nX zWbZQM_?K((vd*kZ_=&k>H}Pkko{V|d;g$HS1EUERV-XeH@43fde_u`I+PWhP3)vM1 zeutlDfGGJ%DGFKF0tb@CBN+zq@l2;l8P+Rnp!Idnk(GXR7HqTawV+&RkF7UDL~%71 zQNHZR=gO%5Y-znHdg4M~;O2C0_S~mCxUz*Q#G^uN;HpMQ<)V=I$ zrE-{!`b;eL#=l?%(8Z@|x{VMik?u#{W@|Ba(O$AV(_HFkWP&iw&(RSDY+JcZhi%^i z9;hTQ6YGWUyO#SaBi8e$<%0J#Mb459(9R3nsC#iQC%Wk`oQ7>aPFi9krkZ{w;#!WZ zvw4FTuWu3*`G@zTK;^|5>(^URK_Kb;uz zi@$Rllh}H9N0L!mIsd?T&3anCV!~56kT3h8$k)@uWe!}T4&&8B)r#fTXa>|J16YTO z%2QHs1eGPFV>t7?m8@UrNDNSyoQ5?J31(D+bBO7i8%@}-wj0(O0EbbVX) z3F?YoWI3Yj!yybtY>ch!ytid^5K|9hV+^p07901nww8P&R=^6Cjs|rLLFMVG;0T!N zCaF>sALC*0_N3mzX)^=}&0!|=;LybQ%bqM;tND75uP^en&jBiQ{APi9BYv7!RZ7bk z(V3+oIF#ZrGPgzA%n64v8QYZn&N>s58MABei+3WcxwX8)go32Fcseppnm{{L3w^K0 zu^Qx`&5Fu#y()X2&Uuh${swdq+hccibfx==9jK^+Bb>m%r+ehPSZVL^-q2W6V$7`0 zU}RJfre~UoNELj%`J(3SAMe;Jy`I?0I$NXj#hyG0&n4_rgBtt&Cu!v8D^?=Dg23K} zz6w~u{C!1WC#EG9F5}HOb2tcNUxMqdC!LH>b>)yC2gugecnCvJ*nkE!{?RbA8mwxF z4$FW&MGKpYf(o4o7;4*?mOcDVI&|Y}6c*$_cI&MXU)pWU$*HMd^4Hqs9T8-e^+9>N?ycE)AUjn2141Vq<0wywJVx>iTsCRlOE8YcO633&dAyv~26PWP z#V8pN$+)vJtm>{lTkHHH(FVSsCoi^0l|Xt?rHr~j7GbIhrxMV&i(LW-@GQyPPB_k* z*nj%h=RvSsIMW8z%$0UxiUPzkqOK99Dy}8g>SvMUCr=_}h}3AC&^xgB(D5i)&|1YZ z0!jtIlr3{6VL`KaU7peVqoazEf+M^-REW!hR&8M90id?}2ifDhk7fOi9irYnQZMgKx zOyTav*q-j|vuCfX`D*{Z9kW?-6v=&`ZEjEVUf_)EqpcrjKvG#7Kp5}jHE&O5EuNO- zbDAZi@Im7f3(=C;_gW>HivK`8;iCJin7Ro$>F6Ebnp@6XV1OEU0TUymO4GH{lNbN&fdzgD|GvlePZ$(JkWvBG_{#U=8pB-i1XdR~XvA7t{sS zc=wg_n@bP;{yz5Sl4szD09+c&vJmw|VfE+N*Uol7+J+45&(^%>*}Z>e5tRQ#M0X4t zyK&=JQ1JXFp!Sght8n!z&+F#uK6GDWkTUKX(KY^`iAocg9H@10L!RoU>mlWRyfLk~ zdoNcr3t2g24jJP#bUFu;$5j$;JoE?~k#&Z}93e!vy9^7vVdax7*xlK10{O?kD$_wJ zQqNy&C$OD?{=#A!Gx^e%O8fQ7^Mg`d+t7JV(>%krr$Z#>xM8+89wg=dVWkPJ>x?lp zbg80ml_{7|Ql4Hj{pa7oSWkKuFyFZHH?Mj6lC_FkkYNcMxn~%SQ!$y~242@}1PEt= z=v&vD3cTCfZc`;_?QUA)kMut;-YF1L^;wE%dj$~Nr@yi-u8A4foQ#`aZ+UgXgr)op zoo=Q~#1lZNY6t^rS?b4Y{AT_IAO6?XJqnwR8!@^WD)g=;jc|4MC*Sc+qcv_;hu^0_ z0(dRzm_#(dyd-~-!fA6}t@JqDN2ag*gE`g*HD^6WGd1kWUhOybt^YXkfr^@DYd|#O zDa9prTb&6L5!XwPdf&vz7#mf+Q+tO&6cuVxsbSyMrda=!Ebx<_F*xsiWj1?{C*h(t z44Y|g{)({4QEEGWhH~c%gIMBAZ)uFu*4^WqrT~&v`fa+NgZU{AdC@gk{%s+a^uD8%#YK zJtzAU^;5fg$>LSKi`zfP(OXq_x;~9ha*@CpY^--`O@y4jBx>H6szr9J{4O1Z&VR=6 zSJIeRc#xk&YgK8Mai!}L*B%dZBQD0sh!g|E5 zB;TdAh~u$n!pOxr%*~lw#5s8P7z?zEi0^AKdvOL{p2AinsktcRA@-hbern&#D`FKk zt7qR}oQJOg1|-H{{&|m~1*=s7BFk*JI6>?8<5xtaUQM?}Jo&ah#kI-&F$H3lFBIjm zrCW3BcSL7aVLIY}q9ZaP4XLkg44PBSpEgURM2=LfySd;0HQgNLL2Cyc>E94ZJQHf6 zr!G7cBze{TJ_41*xaMTHm0@)ms}@eFH`5IvD_j)Dg{IOF%$A$<20Q2b5SI^2W-r^vggM;9w(ZKYo^khg%7{?0yM5uwT+0pUy^8CN9Z56 zzbD#I&@S?1Bd>I5k1#N7j}z%8!;k3`ycldX@jis~!EZ$H5>HkM4Ie-gT_ewQv9p9L z6j6gZww$g9c#k36SujXSFAspMA*MFD+)N7XP&e(zlx!_eO@PtW%uc212|_==p6jy~fi3TZ z`*US0ROOr0X9&!zYmCsOyd%;|{*C7aoHSphE({VxoSh*iqr^}k1OO}AAYMbIEJmYQB18eU|=E``K*K+bB z3Gd+vI*k#)Ima8m1K)x(lo^!3>1u-2XA!@ur$Uxv_{bI=%z6|RR$o)wHjyUX>6FY` z9UEyj51d*$jntZIqzID-Q6CX_56_V|*Q__>jTdy5tzaQ1#nx$-`yO_9ywtURHEo4H zP+<@RISp_S?j6xJ_-~RA;54ZX@`ADYF!6s0UknUEtZRMW%N)uR3OR_KaYG9}!k)W!>xlpnlg=t(|af+$!6{fE|xsh#zyzV;-=TMDZHYKu8fU-vOi zx#qf+-jGuzd#t3#H3NI>9?JnKXLYoVQ08@-LqEUC@rp^IF;wGRQ%nQz$td zf3?RxI8f^vCPKcKAdSk7=0PN&?dJG0GbBEp2}y(*^G8mNsMCDDhE*2syP@gSY{SHw z->U+2vh@%@-N$@=72Pvo+|^HetuNom3-=Q>mpu;{4K))g*>{zhb{d^LH;Qugh@Xyj zPppIC?3*{d{UgteL3t}$eyKMrcKl{mJsj*5^vNCAIYhilpB-i#1-u1hRjvUpew?kJ zhDi*IKmkMOzr)1vnA^^`{kH*Of#*$=mn{ZLqfGESZ&rqj77%!{Gc;ken1jW-`J-Dg-ct7|By@oG^92v zf*aB#pZnm$asU|8#m4%)OvFufu1d3w zv?&uizPNDv>p~9H6QzxnzFDlmT?#1gMKw6T29!~; zYmd6m(QiC}HXaMzW{uu*yIvl#ALMy=p5y(`Bf*d@#MFQu5$^B`W}!VJEV}QgLlx|2 zP$oXRqh4)%bzVAvcbZuX2t6s1R5`%ApR;4*DuN47A>*axSP9S5!NJt#Sa2NB5{A@w zVDtfj2{vA|H`Wq?VzDSQUD=R%A>?Ci8@%0=_>f19 zEHsPku0D|)c2n-QLWr{!NK1osO`L=ul!>6tuUlpxTUS>%PX-=S;PJ*HBqSs$nE<6~ z&UJ^Mmm!$L>so+lbecwhB>*42BYGDtbYO`yD)${Xwc$vZhxF56OF@x{Ex=bb(*f zGBaeMxr9l!YML1msoRR8TpS)u4?X3{lh@gx@SNw`0a7|WuC_%~m7b=-@9YT?U-b7h+7#8NYqlnc_C%8}iUDy< zl&Wf|exV2iO6B)!uZumOJXs548f$-dJeto$F5xP{FQ^zun9w?`|3RF6LB3{g}z^X`$)ao{d)~JL4rU>0e~Nzm1vL1wp@`&dLLwW?fN{5pRQ!+m*?{xaEb4UIa}xq{|PiN75glU)>c0z6m9w8 z3H)5ia3#m1^23H>wB;W+^b${>>_QYqXxY)ST^9)XJoE2^3(ZVwm9W!fyp% zn;sBTWc4t72lHPbQG-wh@Yf;OTtVFtKxetTMIF2(b`ZF1v%2rs>Zw#g@X(ldr1p?{R%EdKl))sW31M#1?+EClX=0L%s!0u9#QHJW-MT-K~>xirloV} z)#K|=1?ZVWAg*DW&`JtJ8N1%hE;w_^FL$JCnwk{S^x#cQ_FP4Q^2a;3+QUO`m>9uF z0zHE28*e33)&OQ;qrCmcPwkkHLrkk2?scZP`N? z`dbr{u1~!L7M-8Hs>CYW2y|@|nba>Y1BVXZZ@@=E+wTI^F$Y|m2%z!I_Hz-_+`k4)+yogLAEeeFHgkOAHPUZtP<%CgC(m&A-G*oN z;QrT+fv>+$IJD`Oprf?F9Zt?6M2_RQ1m@%Qk&(|4?+I4PD~(qBAs z`SneX@aR9R+PKZJyWU%U`?DBHWqmWk0L=f)5Zn7Q__aPFfzm2TVeLUt+3V>$%1M%g zc+}~{^&{t{Sa8YpyO^H2_CI9wEi_OtW9ch7=Qb8Ee#&s-hNIS@WoVg!Zg%tXXz3O$ zhQ-!=1l{+Nt*2`!=SLb@*`cf?mHAnA$3Nz9Kb)2p3q~%A+PX}CtfW9r{~Oxfx1FgD zVj|-IX0`vA21Ep+2+Tn%z&si(2SD5MD)_5-#~iyENQ`J5*w+B-Z~SYv_HSXM!SOk{ z%>|-cVPi}vCteK7oPKS{pu^ZGFx3*l?0~gG@i^KVxfcZxvAo4-`*-(B3#s`gyPISsyf< zEIs!7Z&YJ4u6el@I*oUbzHW+eC$wm78GfhXW_(%mc<0r#xp@S;p3BMJ5yFoG9cE;u zm~u`)Sva$dnwhGi0x=@6`;nK0GSgSX-VT`f@{8}u%tm#qDX8=onfs{97^#VDKLA4D z)O+A>J-{j6Ial%u+RpxbLS*GjMIgCZPJO)XoI2aSe=A=F`C0b$24e8~Etwan>a$4f z9iSdk?VsWOmxOXHZ*MjAj%qoKyr&7Gl?u!>Nt4nrEzpsf|gDzYH*)xGxgGsgy`C%j!(cwwMc3RsPUl+ObgxMvl2aW&iw9?CVi`kp^M_PN$0WozRup>TyBok70|s(<0%Fn?68!@0{X zkvwArJQsv7-X)9X!Q3JAsDX_HqDY-Y^!=7TaBF87R)SvYtAg@40@P zW@==8;o6kuD=%TS^q~X2it!sZ8U2n?Hf0~v?mcF-YcwrL2-NlRB`5IM_EsO-?F@7_ zLsi{7CS-G?tIT`Y>Lyw7E6izOOjdsM_(ryWg;Bnto6pX#oW0fADX&9< z{Oqo9i3QyA*RR^#w}*C05>qbnBuO~4{KEJP$IvsO9)9--#AVw@e+IiGZo?afGH;0- zw!f)%Z@k^oUcAiM2A=VJMDzHZ6mFET_8k`xk~j}~ETXCtcl$RNCf+ij)KcR!>9ie( zOB!`11`H+KI_RJfr8db`E3@aHG8awN(TCwxUye*aJjJlKz<9Y*ccRshI7$ER-px*h z*8V+_N&)IwJP1O8Sk|AYG_@9XmTip5b(`)K+_;@losaPPxoM^0$xZ3?`j?=Wk~%-{ z*%B)BF;StDsgKG%cZce2+US5JzlhNPo98*O!REu0Gdv zPJrAiyT*((i+sB=a;c!gf$YnO)<51OYAg3L^~JMehmxWTeqaIyEX-7E7e{LCpNvXQ z;a@3-9u{|DJ@5Jwe=qzQBIecc(5QMR16tru_vD+miH$VvTm3TbTIFXuoG>3Ff}t09JVKq=FsQjz;1VB9z7v+-o8JQN8!)jj@9zY}$hdF(++H#9 z*z9s{cx41{hf-9fj%2+jrgVFYes-7h(PUe$k%Z6iXQo+>Z$JxeA#II07?XnkXK%x8*4TW2$lKui}qQKX~0xHG4P7@z=<&jps+~!Vp&2 z3GQ0m$7h1A6R-KbC7(Q^Ku`4bU;KyX9fups3etEr4fE25ME?f9Fq6`?xg00Pdq#SM zyw{)N+W7WfNb{x)$h;HDBvVempf$19PK_&4t81KkGbkdo#FNxqM&WxNy@;U{oN2s$ zIOe@3JHP(^T}&T=zJbWy|KFp*E#Pro_UM70y4OKO!Utcm-uaCPv$UT9B{Ak?REi^M z_X$8w%FXLeSPEZZzJD7BJS(`Q-l-O=`Mi1?#y1F9kpyIEVq#3CY%A3bu!soD?yBs zS;#P;vc7+LuAQ7XQe-m59^0mPhQe-K>NNCs#i>e-eWg|Q_G67|&0_xo4#cnBCIohh z6czya$g0M-;7MuLYABb;?+M37mAsL@$wBN=x863Ncm0{U z`&>{!=K@7}=5p)g2STzZpJPf%kLh~k_Nk;RNydYkGV7XX`%!l&CWru}c~*=@hT-2# zHtT;**YU@OeQ`ZDrr>Th@6_=?9Zr)i0P%w~m^uO^WhM=2*xPrmd{WavJFk<`aiYu% z{n@xT+jZRFq4o)_D=XbEWERvRb!E6(K$~OhDpuqbQK`DY-$mTX{0CzDy?QO{tPtGF z-eLHsl#kU^2Y?3;H3*Z^rTCsxrD_6q|2X^8XC5%4no1AIYU{ZPK z8b7RA`LrQ?-aw=vlIK@wvA;7RZGu@#qa)~cS`I= zdu*@-^?6S<#>}m1k+KEm(CFfK_*faY6@lMWSv2ff{#xid55nE#HkT+(0*{?iNF+topy z$b;^`2Ej_t7+PH_Ino}r1AnRPF(Gee2udF7jbW4myf8NfKEX~_Lp$q?)tH{3UyfmI z<&rV}I!q=r1`werFRih5!T&qt=(t40XCd!3)rG#=M~MBRz67|VpUG@X_-b(8er`V0 zM^PcffOAtlhP|ZpAckq<3P)8FX4kn|TFAV2RQ7Z|GjGADnxx0g9Q1Sr)-T!nhoEH9 zvg*1$Gw$_Wd1FnAlUI&06Nj>YR|O=zPx+T$g@4_18}NglH=SFsTYr*GKVR|U=oT&W zz}6fWVKT;4)X6+Xfvt*3=`AWU-D zS%oZeC9i(28BlGUEvUL29%RTzrrd(fS1s{%=!S%^LDiLvFC?j#r%VV@0X}U-_RcVKKdq0 zaYzZtgqTE561^#k0tf)ZK{j;o*x=vZ6rDpQ3FN(9|L&R$^*SZ6{$x8 z4(^C~=mJFR#IC{5)QNCPW=^ga8ue{mcuo(g-$dL;f9%Nfmz2n~1U+~kK8mHEem-6K zWH~bYt2pC1PMyo-@wKB0cJy?#Y|DFHH zDcx3yH)_Gf&b_R>4w*5D2``VfCQr10c;26Y-}*tkR3u?^9JDXB-uh1Ui|pO3`^m0` zJt+9~W|k4N@8of3%>;<-QO5-S&y4U`l$>uPMl}iO5BU2(S1V}V+BgZGWinA7l`=K# z95HcNy#5&a80~@8;`!Q`DXYuH+7hKtb1HoWc-%9iq*v2=f$KLldyK)JRc4q0Vrf0{ zU~ijZeKX(Woi+qv@Y(--4L{BJWAd9$MLRKbEY@!*JMR|Ny-^XlYFM>*aFv?VU}Bm% z7N@UUnMHXtULz&RN9KKq?Y2>=g#hAisc5iHdHOBU-RyGQ-a`L|y-7&S+}t4ERiKj% zJ>6G=Upe-iO78~g(k{|jsl7w1wQjWvrXm*(hvnprDnCebfiyr%=|AQEor%N^{lB+= zF#)@GFE5x&HD}(}GD|b>eR)*jj(wXe;aKCvtN*z`Uzm84Z>7UfvV&r%s(2H z13%+6eQJFV=ZE0Eqc=Hs79Kym$p>Qi);Vj9F)AQrYm=T?%qneVT>Q=L_&beULFJp& zunFo~zmyF!?Qhn)C6HH&@wXB9QJOWCCo}>f*IGR=>D(TCcCgy>^1Pe+LZ;OiWqEOh zS}T{Eka6On3#R$h1XO^L8L~;qX)bun6rRN|YE$=N7w<#TBd8L-hwu-c=i|s2P?f$Q z)2`uk_&zz`guEXS%n_)B`S$?-^DQKMG*IIbCS0z;75t02Ly&UrhX=fDi_Wo)BtRXf znEp1;bBprR$5vfu)0v(`h~^DQc-v>AiWM*azq#%YM!v! z_acwWxiZi+G`X2C8!fIcLH-jcWMwuSk;bdZRpFC8(M_H_kcZ!Vu^Lk|sym`6FN{ed zZ6McsGSMoKU;b+*6j8JIyS&7G7jpMe$v-KeGCY)WmgaP|&sLmA>JbtJJCWe8={|~L zdUaObixm^+3AOK2uTlTAG!CA_Eq3r@6Bq5gD&d&!GO8$PLpa@sOhhx`{$yd0!}XYH zXvOjK7$22tPaRE9>~!`OR~OFzUOc+1BD0lkrg!bfz!FmcbPZGmEduRaGQR$;zPS02 zgu;m9Xt({fJ-xG(cQgZU-t@rysc_=O$)ieqf!*O(Isd$x8W|R*BJ05_WvIZ;B!$`> z_pI7E&3&fv6zdFcxtqH$`f&a02&x7-R5g@{d;0njHO*R2b&SKraoInYhsiZ|jE)I& zPKkWC5kNm&EB54j+;%zc7dd|WhBw#bVbS^VWELvwz4QxrSx;hEh7uo6KrE1){?uz; z7%cN?R3uN7tZtpNP9sS6gHRd>Sdu(X2a%j}Of3Gk#j*-#gyL_=O!vtu>)p*q=%(A< zO#P6ynd-Xp>)u1pj$QAqh=LC3@_>m^lu}nbHg~U0$WbssW{o9sBF29(s=sIDCH4I9 zt7guPl<5y+Y`N^JFC}RQaAX};&^7_EpLjN7@pUJPDx?--Reah<2IeqDZb@;!sMZ#O;5xAfnpA_Xhk+W-Rnqns*w=J64xQi^oP}ur?||dR)#JAD>m#hnU9=Fip7HC zFDcTa~O@{WREqv<>I2o3I01mg{i6vE%3PPO^k z3woViluFtDPs_aRLn$s$rhjnRfLPq#?769+5^xrITUZZN^W&5g7&jis--`E{qCoWJ zsB@1FMfGb0qT(SKvP%aNV^JgPZYlz5`W+%iPiq(~iJ4=Md1w7Ni`kVRXZ~p4Dh>t^ ztR2L!P*X*+hg9qM51cA`mhuT^)4tz$bJP5nKkrG({4n|qOmdP#3n|m`jN~Nw<)eb0 zR;OfmwbBHZ1fpv%#;BQ`;OjIWX4}g~c;o!nwEtvxy~x?#Z}6)a)tO;LQC!!nHJ`6?#rG ze~isPV)InmO$D{?zmS+C?;y31Q-bz9=vYeAk?<)T%|_qHu2Q}K{!q{H$nxT1^J?O2 zyqbvm#TvG7`6ri)Ur1J>zhRmMPYgN5N#+cexOI4jug>2~a!`A6&V9C2fTl|QY)$qH zvv|>20pBNS+P7I-aTgmu73M90*j3~WP*x>*fO?}$TR(BCjw)%<3>;T{@4y2ZA|fqo@o_)HDEU2OX=+=dhzf|wQXIW z|AN7-H=W=1BT}s8CqBP0D3XoK6XH)KjKEh)(yK=w`n4rH8++UAT)~Y$5K;^Lu2ZGd z85`eeYwss9EL?vUi<#SZm@xjrH`7|Z|0>ds;SglTU)zeX%5>@B2uhZWKWzuc^NW+g z078g(jaUwIZ!)*{c!V$K8TDS4)LTMbT$YWZ{H?(M;JlMh(@S+N>ZopVec^-A3j@aQ zzcJe7=m5=nFzSW)wLgP}S5n#!Zv~H>!Wnp1)DG-IaQziwk;<3epNLwy!2L%_w|&jR zLZkNfrJLI!iafm@HZJ=Id(6>eS$^1p%|y$!ZTpwCC8s@u1Q*4|D+c~Z3!&IG)=m?E zNJ&a+-<{%nB^19ueR^}#o@qq&gbkz}zD^u_UyB9=+~_d~xG0nQ-vLL$xs_>N_^CP8 zLXyg9vlz~Fg^XJSav>wzx+S*35Upo$+xJGiy+_S;L(W{zgBKSjkbDD0cCG3qyVl1^ z+Fw1J1P1aEl1B`$rX#`6ti4|&XUsB>V!?6bNS+U$U8yx~){EbN#xM0P_BKQB+ks_= z0r`S5Z%;q1d;pUntS}jCr0?rk4&IKqTCb$ zgz~so#?@pVyt#8s{s6&we&G~cX=Y#gZRt?ZLsLos-&v9-F6EZ90=mZ^I&I!J5741o zO-x!r=fHj4-s{+j;krh?v{ zVcOHalPrLue$-R?38C+^mRK@+VhiEGvoA-~F@Hn{5Mqyhp7Fq9#U|>=k);q+5WYLN zRo5rw$3UNTV|bDFPtnHa=YqJ|mBmScrz?jC2GPi^`cj&58V093ItR!zUn_esj zb|GOI=bbhM+&yS`eU_Czbi5EbXsP@4`M!kh#NNSuqmJ1ZVTOVQ8_oe~Q?Zy@12OYA z+e-yFFpnqS)m|Jd@&;EDD>Q@4#`JdNd9njzWiUrLl9`qL4cVBS#DiaBW%}m2R3$SX z&?1@caPFHi?{JPy+=}f0dz)}zHN->Dz@(7kA~P3 zKao8Z?b*o)pa7GkNZZf@`4(;0fIEITiGjP%r5xnK(~D^pWbGc(x+YY`C<6&01Fq$IHP z`taccSbc(&`Hvqz>%bK_@&zB*cpD-!D6z#j8??A zxBajbgb#w?=qJm`(Y(61Rre||w0xHKZC*<&YkIm2Iu@(AzpdKEm*#H^J6!p=foGQ!J8~g$H?iWXjY^h%Roi@mkeEp@%HtSTAL}l z*~JKCWDvzw_|l)VX@^I}IQlX}*@2w#q$lOcn_{KrHc9%$@9nZyHW3k&aMJNdfB&dV zj{&{Zx@?ZcpM=iu0>sdFd=;P)7pAdd$WDB~;$VeGs~CK=1O=H*lBe%QdPO1mH1}pa zD0_hwP9T+P7@J75hU8WdYP=$}>5?NY$m5|r8G1tcv!jpG zTO%8(yU7Afq4U?D(YQY;K#gD$A}w1_cz72H(PHioJpcCC2J%mO?u(j|JuY-p&Gw|` zL9k^@bz^!#tvtUBnFlOG#xF7M`6!Q|N^QU~I{ zDW`=mmHk4iGsXFC`>cLrIGLyOsbN;+Lr!y^yW5kQI9%bPs-9qttbE-Rtlfs-4 z+i9y%Tg=bF1rT{iAix3ApBT-m@tu&7ibv5ZA3+`oT2s-sm@7eSzWhr{{fdgP zT7P!c@kN(u2#DLVNCj?kbyq1cGE23CPvqE`(be!j$jId7Z>rXDq>_sXLCb`^-SKV1$#>Q0EJaS^SY z?y@NT?rFF+(i1CErCy4ha%rttX~c8QEDgWYFh{>{&d!b%hNK#%UKKXlo5j39b@8*q z$ZT5Zo@%Usth{x@s}tWnw!NZl);4=qs;ha|a@5tKPPEO|W=pdv`~MjG?szQJH}0pL zNEsy}L?S{cGh~!VWQXiz@0C5vs_eZ-Mr4+~37N^v-h1yo-|L||opXNg`+5D@IUdh_ z-`Bpr*Z10wy-E1ZUpebyn|x*ddvOO95*$;daoV@wI3NOgaQfS-MqxTH*WCLgtu^K4 zsO1!+3=YAecgdIBm|Fyfa!Q;8cQrd@x;`!CuKuLar+60^Ao*>ea`SM3#j<#z@BFqO zm5KnJd+&zIIG5v83JD6Tp83N2AELsowa-b--b+u7qzd7*^>B8efq7!~vHJ5N(9qEI z^z>A>4YjpzVhov^o8PgMRSDT7E?#ZG-LWsBMVVB&XW?&3aU^v9Y^m_aDv8d?x`g&?QIt|Xm2XOj#aUV!m5pkni6J&?H>ZLSa`@KLZ zz>l!47HE-wjbt5B>56aI&FyLP=v>9W0B}~a#4@r%7^u%sDQ{_AdGh!zc6-g>;kwf) zqn0lI^~HhIMvuK&*G5wKTw^r_Glc!3%6cueS%7)F()yG}fo-J32{e>8&4P-lVgk7HRFz`{KGNw(5yqv&Q(&_D-Vlw_cj1ogtWyr_a&t z(AA#y(IPUQkU>S>u4nR}x4UYuV`L;&)>Yq?w9JG*^0H;T_y{LC^E~V~HDuPOvdjp# zAf2P@=QY$)pb5XNOHnGgt#oEaHo?-5TfinfDJkjUbu#B{U?1AvwqoRNY;2^ZrB(aK z1xpgpH@(CZWV8rY&hfq*N0c`e2{C>d$6h~`y{-MaZbbg1!bX@*zu{kwb^ezNIg8tD zvgXRC2US~w`Rc3W%2^}s<;->GT7LJ-UPV|7GFMJvCKzG|JOpE-=9BQK}RS{z*C zcWbDzJf}7ggsm=uvLDcvu7MnG~-jAlRxR{fZv#+P8HKx!vQxXU^xwuLjV<*=g*bQzEA3o)v zcIKAa*u1LMM~yqfo^a%={LoSMz7772T0)YaU)XZ{JK!{NadGkV^aM1{>Z)m;6bPje6_!jd1rsXxQAzN7-`)%9AW}z8l{06eVeM*srr~e}+YW03 zga;k?n9uS0-z9!Y`^(;zEFEueN}6!w+%wy!b>@$Q7eA;nthPQB)6wkEy?NA=D4@}~ zb7@yT@{t``3GWs)k+vs;dace#dV&4&Y0UjZdFyjV^1%uSdnVeocin7+f!HT&KN`ft z1O0SoE}A^-vi)Ldu|&_P%jHQbyr!|%X_wj4_rUTf$nHn(O~zMBGx5}81oM0hIkQ}j zTGC~eH4Dh~Rk!0{ebpd6!f6upKd3Gw@wOel!{mdq83;=u4u$wM(@Eg=v;4kKYtwth zj&$w>qH^{V`#18UUi(J#?PAaHS0?+d({kvpudSWO!otGF_VMx(5fW9 ze_lPplS6r9OhRLIUC_d7TzwTU-E6MIJN@kIosGio>1rdFPa$i|(#)qiKQ)uC1RB!-pnOQ-!6jS& z#9~+3g`*9L@CA>9wUp&Uis?QuG1r(km19K`@rO~rp6p)X9h1fj9`8Tv#cqJ}X)$!I zR^{IMU-}TSu?|8V38kEiWGlovL&eJcaaD72!m`?@eODO~PTkrgwfa0gVpzzfO(4-^ z{=x|VB-|H5?nHH48uw`b^5vDCGpzLS&y-yKYJ@>JR;dv$CPSD<@L&tY%f^$b*E-bT z!`Xx>-$Oo|i%4tk=WxT5@Ua+qRTiwdWn>HxN>n!vj*3d3e>GMP3Ot%T<9-jZ3_+!K z!^47om41~;sCK!|-&=s(UaK_&ncHJ3?6frQE7>}nD=xBWz<#UR*)yyQ(-aTmify-K zAFy*ozt8XM-p`0kp*(oWyW%bOFFq}`g6*bJfG-rU#%0jISMjdw|~2Svn|tQNZL0V zHg6L`o&o!90s{kKeOpL~tfHc#oLs$ykSi1xaQQ`e#!tnr=r+)T9djLNgK$>A`MHG& zmqsDlYHbLS%!eoe8N8w4F`;v5LyklDd3N)Ry2$b$3WQ@{-K8(}lP|T2-oJ{8=~J>U z$&lw4xw#ONqBiY?+WMv_64zjPIA3S)&70I!k0(#OTlvLuOebzROpH&6g)>JQ?8ahq zPvc)Ob}eU+O1M(mxX`CL9(*2u(_&%Qvp;-sWu>qhUhszBbi)uA_h7hD{IX=bucEmG zHRf};bR0>!2Np8P5Mi&osF%?$x)zm8EySua^p%}=`Rkc8!^Ev<#)V`ND8~Iv6VsA( z@?x8)rikC>@~H;u+2EP{}$}> zDLo&77{>ZdtdBIeRJ&52oV$lg>-heMUbEO^%XJNfn^^xNP-B55aU_I96m(9k; zhTkHNg^xkZK#-MBb9RQkl7YsBEPgru95VX#@bRIF7ht^A`0d-b#zu1I?5wP;S>42a zQ;**&!t3JSlo63b`jynp;f36K_{)tRlXb_4Vbj!Avck-=@V?@$(txU5$Rq;9xE1pk z+Xsrvdq1hJK(_aY&r~6wKFN{{_>^IXVKui;We2I62TXQ!S z`rM6TJ#B!bM6WV2#^;V9?SX(_&w}#3H|kZ7;)sL%mcpbD)7VN_NRo z#j)FbL^QM6p}@>A@63>ndbn5MgmAk{2n+n`WGoNG4X{9!&6gK7^A0V zJ$~83$DmS!{JR7*I*%Veh6Qr!9ib5s!UCE%Zrs4b!((A#(NB7MT!86V=OaN>Q|>2u z2++-0VzEQ#iA&2s%g{`Al;h4y`X4td04otYU_qJI81@`*H770oXpv zx!^lPx3~x859M`D{fQ?%oQ7a!mn5|*` z7rcSA!^PqW6sMnQXLtl8Mp;Za=9Mi=jeN(6QOo4k%k8XbmU{aJH?Wg9^nH*T)zbu7 zZN{UDcL0*(K`NAE-*D?x(@UNHZ_qN%>2DWBML|(rTU%RQ4I@71oVS5%{+iP+IaoD@ ze^@nn0RaISnc(H(ccY`Dplb~cLWx+!N6@pxeT4K!y!XJGLe{fg)$T)GY>CfL(#6nR za%853=QjSA&)Yz0*}d{Z8>8MVqap5|o(#L}-r^8-po3&I=qWN!O}=@)EKHmRyWUT0 zul3P^&YsDb+ta7pt4%J~n~hsy%gp5p;g07FAJAVLJ~xzBcEd5fj}_=`tDmhJ1WJfp z@z0)SnNbd3aNKIwk7mkmVeU&`YCfxzw;V&?#;lMML{-{-QzTnjeX7wQ9uYfuBGlm` zGIBwr#8I(Y_$3oAdx4n9G{`b!n{gp_Vf)K!gbMLH4%JZWfpSLKd2&)$VrM+aHoF`p zzNA012s3>SYfG!%z}iw%f z`ZL)GH9vIWF|6qNVK}D5v%|66H)b+*%k-d9PpGkHBP9Z^Cg@gQfN7I+sdW8+4XAX# zw6d~j*>_?1S-h^Y%+JqX8N$U|>KjdtaRI$8Ua`ln~o(lYuosf&F{pZt3?*}lXvdZhuv~wj`i~L^j@u!PJPppycoMhsY3-RjsXS@xWHl<^l6Eff?Mx_h7HE`8hk*BG% z_?{GsSm8jO+9xO|W_9Rq%1j&=Gyja%5V5x)O^O=^M?iROG1Ao}Vr1XM;61b(_AG05&Z75de2U($$6K#$LFd%QE zV$;#4URqbCmHj?S)WJ>QU;I*sXDD`2THZ#jBYA747s#LN7kZ8Cm=b@X0-$`3xI^3g zO*nh)?Y#^Jxx8A{7D+hFcKly}qCp-tCZHoO%B_x1l65MsS$m76O6t%XT2d zFC+U2%VgMy4N2O7Ge+!RNQW;sXmrS~;HME9U%`c!;XbmX9CGReKDE~1fg_{AE$mdXVV=eDRim6W#g`QGMi6W!P=^imNR**2o0{^; zMahWC33g^8Fy}ErWu#_+A<86w3 zlQAtj6nRR@TJ1)*Av;&2751JBW_$?| zNKY$ax8J>46dg>bpj_}N#HjPHKLyDZO0i&4+!hY{^uAj_BC(Bf+U`m&A=qiZt=CJH z*eU?hxGC~POSbpc$Um>#+&@;U%ZX_y8F;8-Z*KddIdRYk*Jn8zz1@Fh6p$paeQTe4 z;C|co`S@h`_V&eCLr%eEhh)8`;E(K_-8(0ngl9@+(!-nBlBLZB7hB$Mragj(UA&nSBJu@G`{ml(N^^w*XhOW_oClOKS=NJ>leG>7zm0UJ~0I|PC9$Bx|w6a{N^)Z@^I0juHXxxvtUWwz#X-GR5 zzkD67v>bd1C<_&B4-b`()EaV}^TyB`jT}sF&bp{hnjbYNVzAHtRSR2b3A&Lh>hB?Y zh3?_2LUTt=@Aq~{+S#C?*)4G08GPP3?(tK@Z%?9i4XdrL5oj3Tx_tdiM<|j*#*QD7 zodc8t&8wIs@-Yq^uLglxLmEu*uKW1zmSa?&k)0rHB_h>n^dm=G!6a1lLa&Etqp{q) z`tU$+M^i)&{<2fUNx2d?k(rwOM+4L7n+y<-`9UT14jTfvaF6*ThF{oBW&X%ql;z>0CDYCMDh51YPZ-dNh$NPUnhHdc&d6hka_@JgD@=tG zI+lr4rF=Pl2;duR-_zydQ0Wf*L-1o&Q_cyS8oJa(vZ6n;{AOK^uc=hCdg^Xjh6T~m zZhhCQArc=>Ex$Q@WhwdZ8Tf?%eu#j$I+r=M&N|YIpRCQ4-PT0%qVB?q;&-nhH?_i* zlQti3w(+aoXk=RJ)_6w=Mqk9s5%{*W$Mm`!#`ls_1} zcyVh7bu}n#rVVz2^p??+6~c`2Ya?D-o}qZ@)Zm=YKFv3f$5JI@U*%>{VD%dG>(0`+ zGL$xR3>{%VUdPKD)zNv`g~@$=_Dt8i$s4mj%znOr>lhk~!5GYEi&9*Y!U4m*)AiSSj=lsL?KKOkG6 zFo2!e>TvT(VoM1Nkl{T;Mnz0F_#*`Kz9jIOERGc3k?<&s?W=d?EEG{`pSGc9{% z2eH>1*2Dd^Fgs^AX_N=1jB*I;)9cFByBp_sG-;^+u&CJ5KbxrqW$HW1?)Qa7q6xof z4R2@JXt+&zHj#0PQeEN1cd6;@tn1!*ZTc^Fko#2n8P0Z-NqlG3^kNIo%aa<^@i%Rnz+O4C}EAkGzSW%219(pyygFobJuy_qhD(6{;Q4dkjpU zmf)+Ld169YV|{0H)oRc6N-ih+MrJN)^iF~RP7>A0LWOcixU6im*MpiG%P!mfvh}q? zf%i}g0g`H|-soqArom4xSFlM*Lx1e2L35h?c$bp>Yd@X-5ahP`ePyLi*cB^3bKAi+ zOShw!cYd_RQ;sh~{pn{D6-C@EHy27E#k~e4`=8wamhde2!)|IOK;e(| z=mN?e_i;fba9Vj(HC{yik^0R!)U*MxbxXXgXLX`|N4k}UeiPX0FB$BAK|5e%j0|Ii zHiC+yJ%c%Hju7tMmH^Vlb3?%C*P>Z$kxoOsG7`~hYR*Mf-m6?%bmhv`j~`d26wU<& zPrlq;|L$<04D?N9`;zZx@%+h+xDB4b*gP|9Ck^*t5&gz?$cN-($Q#yi=b-7nhO$Jk z0`K}`^72dv(|v7Moks@TD77K{nU5C(*#0u$Ci{`wg#FGR;^etAtrd4*Q90_b0vRGa zmNCC&DK!Rwl8KK<7ZvR{LTFP;cWHh)QpBAL)`H$0m9Cd&l-|I%w>#YVwl=k;Sbhle zkUR_hJJ!InIZjlvQq#DzL$Yr(uGbv>V--2l+TNRc9`_{mL-OpN!l%yuSkq>T6N%`w-z~XqvyPVIO}ryhc2FPCH_@jzz?IlvWFB*Puw|&w zCpG?KW{#A@-iFHh1(+gHkIQr}tnbd%a~;`P_7;?VYjPZsO~xpIK}`5JUR z{S_F!d9}@FIx*odmtE6h%QYBbRCYb6cbQf-C9V<}!7Y0@&D=0%RGyBrSS|Oh2iLlc zGcqY5mATM1TP7p&YyZUl4wo3ufVaWcv$OT8EoTrSCkyciW0~2Rkp661BgS>85Br(^ zi9c(cY_e9)&Ualrr0tovkx)NfEGbU=FNYQnLAZ%y7?Z3D1l%HqS`jp`=I%HWf(LXI z^nNPhb<`S9#9^T?w$!KxdFDGjrf4fHc6n>-#Q;i7t*+}@Jy|+mzYZp7T;(&(wKOwT zv1iHWb5EL(F(W1QC+C;BYd$NOH&f+{f7h`8!leMUeIXaPZfAOg_^o4WpByzC*QPl1 zDU|04O6So$WfSd@JfeGV!>i~3--V`B?ulsyuyF9yTz|{79yzc&Lvy0Va7#690hvUYqHS9PF1eZS~QTD6fv4%N5 z*ZtXRwK-iGkHjHJ<$dKJZtsnffx*bawtD+qei_dgyP3y^UN-U`Y7BVt9F6L|ZWNO{ zb_!>&(2F&z%AODZmvPlj>yOC4%F}UYjxp~#t&dVC#c#2@f609uR~p(lD=VFE-&*X) zxk<}(nrBs(+_Q9$xFqXPhGtEfu+86;@^?_`)csU_B9T+@x?|xe^q58t5-G)e#+i)m zjBy#^^y+8(me`3hHK_iaQEhfUE8efr=tb-Y zfQZ&WH|H2b4S}zCdiZKXiBsM7n#_G7NArkJgC(^Oxe>J?JxpqmZVro36_}Qy>{0## z=-hdm_hDcDX@LID`Ktd0pPobz%%4XK0&&l80W90LxlgrkNvi5H-!=xZ6cV6On%x3; z*kwL^h?oN*{0w@K?f!quW!{|n6Zeh$&M7JTakqS8r-!@_x`<7XHZ!T!4%M5%Bl^++ zl|50;4BHIdVS^T#@_!{ z&}59X^BZ$!5U64vjOb_0Y*ZRk7fU+rR{eipGURzCa*IuUpBYZUG{T7Sn6+Ii}DLDsMQ+JspFy=oS-p3dL= z)(+v#&@LK(l}CQ0d{S_IsYZ_EKICBYHm9DR`lr*VARpj19^Bnvr|!Dfea8G(GQ^7k zVE4D#e=8+3DO5lJ#thhWo8}=M0N%$3^X*^|E6}+C)V0HQ&>Q4E=~)4OEoCZF;R?uX}6LwSYWRi9_#j(zq-qbd2qqmcS`@~eX?v#HrIxJEmJBFYD*Ed)j*2u#Eq z#NQgdT4j!OK~99!&2=K#8{YeJOEvxjn@eO=ZrXzxf_U!AyYv0t8> z3-8wvupf(c$pC>c;=0><0$GWDg+#umZRHm2r?BuI3bvS}TcT;3YxZ$Lb*P14m2?%E zf2RB`H&i@|$T3^Q8yWM*a)2>_mOi9w<=mQ0P!2>|eMsesJog!&4}1p4Xhxy>gFg}e zH1iqgnjuI|YDTBvZ(3!^$kTn$;j&cL`?P;CZb9CtEOrC8Z~fv0f9D!l5smoMHbQEG z;EjA2hZBITmatE;Xcg~c4X8CFZ`_7zJ+uMst6LjC%0vThd|v1jGZIJp=if?B)yk1~ ze7`Y^2S9LDa{F{_^Bm=wHt~G2N!@rz3 zc4J`$QXgg@Pw>mK3AFQ^S_Tf#U>fV9j6+9N8(Jj`CZO8W*>Xz8qh^#dR^ zr$h1>;MOFlFqo83Xv|hb{xT*#zDxel=>&B4Z|0{F$qbmV;leL5F)=JG?DOZ9AX?eF ztxi~dHhsU(10n7h(siWWVpg($hthe9QgQH;y8%`H`+70ovpnga^7AbL_P4Tve)jBH zZ0ryraWmPWIl0~4+L{n! zBgi48b{w7&Drd*vI{3z%5HFCm;b-8h|5n|WLLm_@v$(kU;dOK@EN@Rwz!80GXsE2X zXob`Rg1_|ud9{d}iqfi&zk9WWwo?M|p51ZZRW9T+*w4(=0l;@F5fzMt6qIL9>^$lS z49=cA<0Js>dIYmp=-gk37L2AF6jQJY)xdxbV+a!y({-dcBZJ;;3E}l}WsAv1O@<(c z*!0NhX(L$(zERQ8a5)opz=F5FJz$pfebiHt82tYUpk#Zly@@ovcR-1L4hms`z9F>J zdV61gDxkO&qA+wY0#VwJ)a-3!l(ryn7ek&#E{|%pzyVpD&?G6AM~L5qjvH^bYoRCt z;nk}6z?7aIxY0MqiyQj;6}Q7Yj5)Md?Jdv|gd$rlnXUCO%fkT0D z23d;6Ee;HM-PMk>NXP$!mg%0BK30zjM}2qUHRe1SO0}-@hz1wXDeb)5UFe9|JK@5D z-vRW{)6?_)yZ7O@uh6Z9U4CL>ON@w{Zw7-8P#K<-FzW80u+7f+8F=ZNtiu--rsyN@ zp|Q8KbBU38$j=WPgzB&-aB326D1Pcv#k+GxC7)TI7f%)VB)iP+& zHx9?qdv?+lz45I{PqIq+QqGz5Fe31v@{eFvIDU8nc=$(UF)ky;0P0*_&;XkQRz_Rf z>I?#RI%_b9wM9$sodJ0lQ{mx z)@vVb+gX~Jm>3&>%FWFMEIb<+qde{`%yXbQ(x_+7fS&O` zdL*3K*3r>1Kd+BLJc7iE{96K@G&6n=k`2vP{Tw7idaG8mI2aCsvZay`7Md0C38Zk`n0tHV6@4L_u~w{$*`C@Kx+ur|8>gL-_#; zSb4p&q2Zleik~3TOyRt(Zf_6RM{(!mRqK%H8h5XzP&PR`Xw#gwv8oSd|@G*BRafB%#e8VeLRO<*cVTtNAI;1Mod7sx;#h*`~kObX>sz;1B> znX0?>10z9pZf-79rQBh>&JS8I@tLwMuxNN|(AEfcr%QeeETwWP2ujpUlDFk2ZeNqj zX>_P~0Z;^p&r|?lyAfVWw_clF4`ng(1aPjrnEw(N4{vWkP6CV@^V~U{ z93D_C8xr_=?hInX{hua6lqRUArbd9DADw&~+`W?%0%S||0yd(7??m;y^(`xX{Z4#> zhNPsVygWdoCMPHTCDZ`c0ZmI05zOLK|I@`Ls*)8#!{?ls)nJMBJfr9UpXq4>gN3#> zNeeneiZ}ti2x}?HZj~I&vZbrUR2>(H_dfrfDTI4j%E==$g_eha&U4Z{Zx)3>5XKk6 zVreO8c7SzP|MIymyo$=eq{H(Lsm(CL=A#qwI{zSAd-|C% zZC)Os`w}9Y{9pbA>@#@(afNqwvNx!xs3<9g5+zlMNih)(6d0H5FF(rT%-TR7<42yu zAL9z_w?U!{CDh>J&CPS4P^$fJHy2BC$zSTx#<}{5@p0mNRsc!$SGq>U$!XgVNd3}Q zr!|hBmlx4@miPV7yvL*SKY34-TiUXU8O5&U7-Y*S``00EZ@Kj^nWsJJ?MuL4`MbA| z5U0!vLMP|X8t_Z^(RWrC#$~M^9eu%}4q^_P-0$=TPHU6 zy;Gexlr*?z(a&wn{k5|6F1@P~HKIc4SawpC&7wf%z>Lpp-Gr!}4-Dzg4t$)@Ne5mY z*@4F=K-@&{X>d7p{XWvN`_oBuQ`A5IoRT6$z<|RT_RXNuhA-U*oSW%h#m=lhqlK{B zB+OF$+XS5>D=fNezso$JUgJaBOpluElk$2LMggE4a;QRTPMFs=A9hC{v8bvss211f zvH|52ukz5R~+wEdJbczMyR{g-8pQci($cc19^)!Upc2Nib}ma6j1W_hC;2WU z-TPpaXD4S!ygd!miwRYG!uIBy{D-DD2JTDx1=Yf_kAGsVkJFww7@r@Vo=9!>4&d?C zI@pb@ro}oMmBnu&`j68}vTkc@gPu4r-*fJUOxVM&AsF}jc9ry!Ke@frU{_0vubdD& zCnq+^z0f@Mm-F2wVDSO6Ge2-BB`+^Tl=wf>37~sWcB(x0Z0tz!&BLUEoEm(j! zl_f$-cKfz(so7Ou%vTwztK;?aFA(e#R|<9V2K{*E2A*a0K~oFD$K@+`0f`Z@z;4zE zz$J>X0^C9GS_zhuQz0NhM_i+a0z!V-URA=u&7F8#0J?tY8+sn`AR88k{3}7xA>iaJ z&QL0DE1yvVw${i(BQ@w$h3U6{5Xos$!??mYEZu~z})06KxOpjDa&xUrheHl_1I95DN9@=P4 zg#=b#N*ndR;f%-&9UTCF>FuK3IEuclTA5jXn39=kWMCk2m=?imK**^6=F`*9WQ8!{ z63KcEHpHw~Ve|MdLd@a_{a#oS&=}KW*!@X0C@5&2h6JM?#L#%S;#Fli>=r8r-dmo- z?XmTlcD>HDnbvqTgU%FbfD`fT1VwU~3r%HQrjtKwu)97(-d_nLw}ItqN(qUH8}mI< z&j2rIkSIyrcRD;EF1Z?T#{jsuZt9^gFJ1|S`HF9g1N_`E4x}dQrYS*MI;)rHl`(!k z6ik^Qt|{}kK8F8p)cxYkek(5|SxC|WsTSl+wbMVcpU9dw9v-kj;nIN~7CZ_NQ0m7Q zCrHi!hw;(w9K+-$s{1$)E{cR$EDa7+R=(C*UK&8Vdiy!TU~|leCyNe_jIL7-o8W7z zt6g+t#Kmtr>|6Dk!kM0+oGKNZgXNap8knQQ!^`DI2R_`3BUSD_mt$LL%+5n<8YfDy zYj0h*!gsYDs~3uxnE=jR2`#!~)%f-=`@Q{PZ8>R{V&$LbN+v?S>^ubP12vfeJlxtH zHlg6LR@8bX0nzv`3)W5mf)?-CAQ3MR6x_KN=Y@H`UPDW(-B>wmMU&JQ9TQP{n?2(p5!*iG8elxvQBRaq(Zbe6YJ8st`FKoZ}2HFoeq-GK7)5%dY zoRgFAsv^a3!*^tKYP!oTZ=CzR_kn2QK><6ae|DzNi!eQ5{X2Zrm#r-`3SLhkrKr5n9;iBID>9Lp?15G7127(uU zw;hA|>yJV+t*|FG^cfLw%yFY3V2I7Zy3C+_E5``JE9)H;s!=#5kemxUTx4Kp4`UrH zFd;84Fd<_{wHAgYBZWYp4h!%*;nkIeS(0vnU(xppgW@bc0L=c0D ziHY&>ltb1CDI?^I5WD4tpdgS8I)v947<>*d##o)stJUTeT!ez%`X*}Kw{L;AzGx3j z8$%dERH`AGiuYpE@2;Si(H8W+9>ELFc4lm`FW<-DREoHij354mD~^LSP=GcZ>k8Wn ztwU%(CtEb z0GR4kRATDuPcfeg_a*1@UFT~fdK^Q+)&9Rmvys314o1OH1s^|t?^x}_a~P_msD*j9 zeqpFQX7KPk=aOeeQe-4?A)17bFY$e4YI|)hEiH>XH|3=rB!VA_L+=7;Bkp3#srKqH z9|O~-9&SAzLN(YGv8ktIxGgCofeboNemVe2hd^AjKw2YtV@T5T@-Ca2y1BVM5EYe` z#b;;NCd5A~ZlIa5O+Y(`&fZ4#xcUE5gZo-&b?R7K5Wu#u?$e#A!ee0)1vB85qt)m( zd$9dwe6jVyEY9)jziGZ04)b?P7+zp$q>O1G%f|!5w|E$LuoBWg# zzOBUpSDqJOdXW{TujcJezLBo3XG-nIYP?Lhw9lHO*BkU?xpJ=~UGi6PF%6v_9oE5% zwd>I6`T}ew(Dt1~HeAcOYt1@4TS&iCMkq00gk;hFG*1XGq!*u->$|s?`N8W~phV!FEIbFV7a4Xp)Iq^3qI3y`COdf?@^o~ zN}YFMNm?Q{@H^{R+_{JBVjx?AT1_bB><;$pvk-TWK|Kf9FFN^c%`0|e)Q(Do7L}De zRnGqu6lTspFTJ+*QC&UyR6sTiK!UE_xpRk^x#V=L9Zd5c3fM&X`jQ{`QX+}<|69N# zvJ1Wjz!dP#BjB{wm$rMfVm^D!eE`cA=XiAZ((mDQKb5B{?=b7RfLgz@O{e|C=SIT& zlmUKpuH4K!Wts{V&On?5r5QfQdvh$d5luv9Cw+G}z*5X-Ys*&ODSfJ!3E1P`YT2?6 zKsf~B1+sjd>lEEuzii?Xw z`Re7%oToG*A|g%SzYBn|#XU>L-sBq{J(y>pFtXGQVJcMR^7yYZ-=f&+Gb(T8Cl~Nc z&d3N>k!OH|Y%C5aJlj3oTgq-E9Dxld>n5BQ^McV#eR0;Q->B=1S3Gu`mM2r3y-9De zos<*I7ruT3Z8&4Z6{bBLN{Rz&QuSMBkE_SAg^hkL(9p=ve;tZEoG#hTn;;#{Fc$*Z zAdDw~X#u@}YR{X7Q#Xlz%GEB(%&P>_b5mf1m|))wBO@a>H#Z~|P&0wz6qMbvviujS zf!_`6PtCJ@!>b2Un~MXS*RQ`eSc!#jV=@>*D9F&29dB&&(97dQ%OvSv{AVJk#PBd2R}&=n>`Y zxIhgQ=&V+bTQOc1(4mJaX)Bc%438q`rZ-Oils{we3r>^id7S`maFZtmUN--!BNudp zI3N}fymT(0t7vF@dwaqZIPesZl#P{X0Lx@SHRk8uJT7IxeB-e3bgE>f`ahc1ulR~g-j-Y$RUE6eBiBIO1E!6mpa*pF6N`nsAWgcjl}d-nsW2JC&Yj;a5UYD^ z*x&qFt&B6Rl$$uNRtEa4Gmp%hJh&%%_Z2bH+SJt6LQM(=GQi(XPE6okz6|%nGWo&+ zfmnq&h+@1r9)kOI>=bjhMOM>s!Kh*gf$l*D$7;}f)&rNopIk7;uettW6sKi0vyT6A z%U{-n&D?uwb|@O|<1m3#XBKN<1wFh6!ekUwnUJ*EA6AtlzJ|@B+q=8m+fIbZDW526 zr)0kA1UThBigM2cq#`=0(-;tf{nceMcbaV<=g3DxnO9xpO2$RlEr0xT4xkwbW<8(= zz;Zrp9<+CQB$tRylyvrTTI^_Vr}@HFe)O}aUpvKKlb(6b&rf~o;)M(19W581;{HX( zYxBT{41K25&sWrDi7SkP$ss%9pc#MA`J!N0!1$q3b8d*{clO82Hx^1QS7WsN^|+(e zLM~e!EKv>kp7JAh5+#Ew6U+^fk-eu5^6>P;fCdFRx=zZ3)8>cLww$hr&6IX!TM_HX zP2CRVfL>adXCsG@3*s$MHK@#|q@+L?`uVej^+l8lX)^!07m%nx)|{|s)cZQmYdi;@ zX|Z%mc_1qoxc`N_l4o)ZD3T^dM@?Zvz-%ye&V~Bi`NR~P6B{fx(oHEDq?ypxHA~& zWcC9)?Z^E~n7%Y5wxC^SM?^iau&{u>D$K?U2?>FYKmk^Y4j*bMr*e1}f;u~DbTYXX z@RCcha%JN;!#kA2tgWrjoH--XOePDJS1GA@$&YWw5jl9*3o{<=v5&&~5qqf9zdX{w zi?&;>hn3J%lan;8d5r#hYvnk;aX4Y;jO#VqrO0EM5v%&h7lHRtugK8umfLH>4yaK!jrtXk%>~b90VT zO1E=kT!T_MgKENy{96hFtMWz~Ev>zkbnW-<-f_BAyBaLpT(W<^yKUhy+Bc8WadVBS zfm0`D_2pT3S9m-xJ zA&EkX$l8?dSWbs7iz~4c>q82(mzXL3?_OuCzTJDm7i_n*+xEhP=+QgO$h)j4R8}I2 zB&r2$3k7OA4`0hmXZ}x3m2vJB3Vit<1Z=8x(-Jz zm%t%eTI^y({+K?K70vLA5^b%#2hdf#5nm8)AZ2SIC0 zX5V%(E)m@|AtnhM;oR_;7Ae=1w|QEfM2&qCZBE|Id;Q;u_s`_Sn*ob5C!KtbBC5`!KD4j72r9DQfKaaUui?G3AJN-%5=7Xu5LyZ6x9~ zm?4LJ5Qw5npaD+va3J{6xmbV7AcKa5YA(leJ}=&Zsf&Ya$6JR1>X*@aKgf^3K7BIFV=*{*chaMhYxxMI!QJ zkMD<%P1Y~ePiNvv_KxpT4vV)>6Ap;ulgul#z#?&!-&K2He5>z!5(krtH8gdQKfQ$T z#?$xR3ilix7zfSXbX89jem~XVZgK}655Q9(uG2D4zfSB#tD@VAJmBu1+#S9COXDp| zGY&R^=W38yEvc>UVQz}@uj}f)g8bN55nqa%92FP0tNZH9pRshN1kNq1{Fd_;*N<~V zLgbg)Mejb!=$+%z`8wnH1Q)*VtzEB|U`FfQ`*1eH$8Fs{zANlF5vg?_P(F@GfdJF) z&Ydv!cck$Om{xSNjVLTVt_>RlB){eL<&7Uxfs>Mr8EXC?o7o2uirArH}ykY zLWvkRU_F4pTZ^;*k)5{n90Afz=vL@OXFA}N=});1>AwTDPt^Gc>A|nVE*|CC}ftqNB|WV#7#x?|b@Dk5&T>2-G{I{&!(nIv6Tf zl!$=HnGql8uDuJYJ<VI`ivPY*)n~fE=WmuQ23q`90I&0 zQuK9x-~~?>p?+QBxRPV#0m9ytNlJEX3wV0=M5>Zm_L!awG{gn4c>VU|(=MPsyw}48 z%s(W$@4dmsv^^K2NC3?eE*hB+sK;`>l7J%!>P_rx2e>URTLwf36!wN}Ue zbFvi*pgxW#RJNSR&6K`DgtM`?_iANG-hp?GPtdKIjFHLB>H52YA6vN`%$hZ{2!yFaUm>h(<3^xS09(cb+Byiv@P;El;?s!;5jv<&24@c%&XLuyttF zI+A=g6`PgV^IzVskq=r`Jo)IC*zj7{IL)JICO)NuD+za~COzB{op_hw{o6P6I)9K* zvY=Y!WoAT1qY&M93ILEgpw?nQcrTW4)7^(q&oz$}At{$(&*lt9RMll-PgMwxm( zUFR0r;r-(Z4B}YxZ`OWcaBw#PC-A+wiD_;xtGnW@+R>5@w^2Ix)(?iT%OoH=zlEjWiM&GMD(GrmJEmP%f`+Ip?bK`m0Yz-^g0PQ-s|wxBrDmm|h)7nh6w z^+4O_k)rvx39gz*ek0bHv+6mxp1Rb*Kui)vjf_W>nL0orL0x>9IHC=f6au7U@BK`y z3iSW^3C@DjiqT6K!#{OVY&#odIOEH&6H$WmqhW} zBBPDP8#}S)ZXY9xL=)|JU;O?;MI~Y>_^S#jJ^_a`wgp$B7uvch z>Y>Fk3R?lqfzlR7Ho{16RcvvRlazTwTwdFn$y)x<8pf-UKe4j##ag@)VqQx0*F&Ia zv7Zs(KU9G<6UTO-tLFz^;5Y}GcKIC)`5dtBJCj|Q_z(`wAF}soWvOA;GT;nAzM_c7yU!=DiB-Ey?}lr+$lCl(3qJ(&J}#4NDdm zX)R*x4L)uxjGcHkWn?M<$Hdu+z~ANn5h6?d>pI2-z%ver@=1%puPu^u<1X2CV?*;{bG_15|rsiKO! zzDfJdl|C*L{YBy>7FD_G1}=z#0tG0N=brx3TqjYa<`;2#$w$rMOdox>S(|gCT?|BO zh2H4ux>SZ2i+O{=)i=M)LnMg~Az|b98+zp$9*U*SdtN~y`;NSC)f}p5k;cJcDFPYl zYQ2``*ZBP>=#kpI%=3TPd(Wt-vgLgkWfUD$R0I?dlpsk!L~>LlOArJk3kXPtCP~&& zK|oR?Ihg<@N~TF|AZN)Lg(l~m;jIHYGykjp?)P`y{xECdbnml6?W(7qs#68(N?Jrc zza(F($Xnm0`R$7`O`rX*LR|R&_+k7o{^V zo89^}&K7^WlMpZIWS%syxGODis)%GThEycPf{0CR1(P_czG|aVWSctvw}5vkz`5AW zuHhcFfeBkYol}~$a~n};Eki@gW;`js9%cPQt5FRGrlrH|+CqH(zM@5+=WC-I$H_36>eMhtXBVnD@eR1$p`P>@lW_VO3 z()z;Ot8=a}OM|rj&~FbANA+JyGE7=Kk=aj5N@)1BUVi(;(h&GHPj^*|AIi3v zyb?ir|4Fh8^AB8ymwyD=rhjzg28)Ub22>09X5V9zm;TxFpHV8{kVcZk|rpg2jqO0TvZ-#oaurrDtdF!G4_zwYz~kj zKQsqbI9RPqrc)1(*sf%T6O!j>`~ZUwjv?O2=ppbQ3Mjcszjda;No z@m~Xl#pXoB1ndNC`#66HN{sWn9)wA~puKXd?adj1HF-?~_pL*7%jhz>*ZYSpsKEpc=+$td%qEwfT8%{asR5w8EC&&4JcXJu(mvMqRL?BQ6vN<``!Uy>)8 zHpyv$y5hoqBbmz$7RLsG32nF}(0p4vx%=9lqaeF2C9mDDNFMUsy@?*RBs?R{BHu4` zb5s60<TI@S-WG3@ZvL>=F9?z8RbJChtj=9Htd-w6uR3Ir zD&l-(y8AWRp2$S`2jIYu=42Io#Y4I1WR|lf){KZZphy7`0iHY4<@rR4=>4;2wtul;uqv8gXeOIyz*7MdzfD_@T3bR5w;J0=E;@(?BUY^Bc1^p*Bw~)GVV0}_C3{6Vs%}Omp^1%bOrf&p!Pzc z<(@3x(l}G459pKbZ8jOg4%%)ykr%x(rbEx`}2rGw?U9Jqlw+#(M8rk&j?NwS~9}50D zIh6dzo}GEXvg<`_Ptan@$Gd=YAw5veNR9lzM*cdimd9e+hJR|0>*kapgJ+$9(@v>! z`wH@}m(K_HBOWFq@lqZitEJ{C$D$ zneA%z9APw}`wYcU45ozL1&|yptNP82AyZ`FFr}ctSa7!&maIye+jxb!0hqCI6d%1Y z9d}RIHE5}DBBn&>tHt2y6DNWoSP~PXt)r9X`Xip%D7>rm&D`i5zp0r8+?2hsGY}@k zCnzYSKNJhM+1~9DiUFR|sQu2TW zli9c0-OCU_5fu@kuBj=&&tFhj2*DiUU1|UZ8NL5wHD*e>suAwhT%au5@&c6msy1eB z_gtyA8t!^d>yWcXUtI@Z7Y$3;gV<*T#KAe|vROl%bL<_`idX%WG3~{(R|5zxES_Gy z9uP%cFwutuHP+IR+%t$sGAP9EU49q`p)kQT=BUuE?3i46;(l`klCC!=wdRC%oAb{U zQ2@%8z88&RN0v!{%Xrwhd#!ZKx^`!3NnW90J9$J~_1U07mTO|F_u6{i4VDI<$BQED z+bD$9y|Al*;fLqW?;`syVYFESKP~&(iyWY}5Yu0D;B8E^qr#Dm7AXwUVPW(ZIdhWl zegm|7<{{03EnucETAihJA7k+c-bGM%i_W#Po)Fu4%Bz$cLFx2A9?*COx!QNz(}JSq z4N{paszmNqtvKvNr{r_pcjz&$ZiTTQ)Lx04Utj{#2U#JfVaV1aWyD}-nRy9_@UUBN zC#;?=2f_$wqiO^8JrCFqxyc4hzX%AQZZ~KfI}s1;&m^4ZeeS`5g;m zmHpvoz)IcwLJG~{qI5;B0j|j?_Q+g`^1NxbYz#z#`_U8=poxli!3gp*JRIUc2WnSH zqWF^r=7FRcuXP4l$3kKMGxoD__q*SW90x-08Sr|bo93c0+z#DeQkwfz z-tkq7bsyT*+sH6$|EQz~mhmOouRaLS%t>Z726$LgWOfWB+|3VB(u~4h|G6OhIsf7ksSIqXdLS zpIVcghm4SiaQ`RL9#DHQ5WaL~c(ayrr&G7gf~P)rCAEs}78Uaz_lG=V9K_x?1ftUYX0i*L-`CVr*%Bel>;x2&0eQRU1pob) zYe&JEF`uE$FES*1MFDrVn$Zf0@|jZn>&BYPw@Jm$yV`@t|l(x4vvM za29eGK%s*%2jv6~d-WE4y^$EK=@pvuOW_8Ozv-m6hjoKB-Mj{&0$`&{vU%ZlLU;le zuR;%Ov;gO>Z}+d|Oo*fELLOICoH;8ZFr7sjYxf2WCJJ7R#pA!OqG6ev>Nx2r38>88 z*)$h$;#@M94J8P-<9g(RCXumvT+dtMCuDv%n1Lk`*k=;oX4@8*TBHKcA- zSyaM#?CcCDPq|q!hk^LKaBB%uBUu-xpXMRjXc?`2zrt$eq=JBe61V7)j(CVU0rq7* z>}v(^GPXN@&)xlJ_+C1+Sz1ZT<>pVc;FwZU#Zu*4XU*%u7qSodX=sziMC&32 z0bTGDtQ@ASGaeFGOzT>$A;fmC0_ZqH4zgWh+hLcWhoAi|=R5(3cv{<&C!5J$8)T#8 zKU?A&HWIFoda&pM+``*^{KK_1)Q?$vW9>c^F`g?ZDUxwwW7`8t@WbztaH1+lDYw`v z%~n**&~F|@>p@yP4F_$_x_Rxe*x#nMlw-=`D{#A5^@#y@-cTeA7L+J>$^-F~cR$~? zD=pfLe#ChAN-v%R@X7$dAj*IQD#YPSF@8yJXuw6)OP8*c>^H&IX8=2k&}z2r6FS6U zlBcKT1g3A3M^vWgS_%D!Ao)wBaRE0D9As(tXRuetHd+`VlyV_a5d*kSRCs*dv#GK) zo46i0EoTJ{n{{g9vUKaxj8UE@ARfLF<V}|GdmwuMg5m$6x#1=wG`DW~)4|!%8~r9``X$?}&DB{zB|0&7 zLAZTySN>MN?H6QTqfdHVLHMuXwDz*@s)CH-6~7036ljkOW|6p8f{57mLiB;`Ksnvk z-4nTXg}?x7%5T~maDC+p_(JW)-tF{FZDJs>!!wC|2y@TlKP<)BAg!omDJiV=sNL7U z(x<4xY5L6D{D2Dri(Zwzs5lM#bdTOIVbfIxLJ$D(Hg2dJ?tHy9Cws!CcD-bBv#02R zQ`CUt=@H)5)?pHsfG5KLDZSTGQ%PX;>pGZluV;|(XrE7;JotmpU0}6oirQDD(`4@e z|8>iaCSY`p zmfOk9hkX_J^vN>xS2}It)cZMhQ9T5ux*J!niEzmLi||$g`f%?6zMHP6xW!i`MaTY#8&XkYMmBE;nXg%)j~P+a+K~r zYyracUY>P!!+d_tc}8ORi%xtsA=y1@ko5z7Cw3|B%}3yFkn;GQ1X%qqLQ8T=_S0ai zJ@XJ|H2SA8G4*Vpdx|gfDX%HL$g;U_mvGwk(z9EGs~s1Io)BgqkP|cL#NdGB3QAsa z!e%rr_wkh0C{Qj?=-4>vU2QDXBzB0awk1qrxu_EBoA%dFcXOfzeDA2~=bHV(^~Tjn z9W(yJE|0lywKBHvYobLP;HYW%vO^-HKLHU04&6RmZe9_Ac5ssCoQW&8Un1PMf1mZG z=1;E$xmBDP3)p_Xq{^})L(F~Gd8Q1%feFV%%zHo3!Kl6ye=lUSGy2I$)@aNZVFEIqUR%+zr+3e z1*`AWDS=Lnj*FQP*+_wc+uvo!@hk6GKfR5qF#B{lN}$3wPNxiUc_(Cj z#YDEx+r*hXbiD3n@?>7?Yx;khJ6NTro0CeKnPP3ISYNOzauPNTec54G-PGezL@yu+ z^DJ77&I|AYAk2(z|MfbpiA9`1mqLt>LPA)0tQcam5uZ4Zsy=fr39;FKY90PrIy9LA zWI?A=ug?)7Q56u9Ro;&Tcdza(qgT#N-SDN=-2wLn2zm8*mKZxN+%v>;e3wyTu-Vxj zDv{C=Ghc{s-3D?o^I9)Re!f1I$v}W0;T$DVg{QdFd|py%X3bZUYF-6HuzNb@CV~*F0rp~yW8DD3x8NH=m^(jU^%9`rH*pssJp{Zn5V*6D46>&u z{}wngGrCEx6ASwbJ>-`mdb_+Kf{MYv1>jBy34U{+{Atix@UC-4Mh29MaBvW|9loK= zKz8!vNyt;Apoof&j)r0mad8TCiR>hECJ5gg<-QcN{^T<)XK91t-_a|p^xf#yh;mFs zy5Olso}XmpSn7#&@1WC^jOE)O-<34Cm!3J>0Gf?GKH@XLH4cU*&67j#L5aKCRB8W?wKXM$`o7){0A)q{Wmaj&IZ`MFD^|! zl`1X}8iz0!LcxygNAK}r{WUoRxA)Fm-9;C6t>$Q+<1vz=u z$&{(D)09Ib=-yD-B2l)bbyU?90^)dWK0z_|6<4HQ z#9r$`IfV;h&_e>~j9a&EX=|qzRogsCYC>gM6dPa##{Z$!srH;eywN?;8|}eoo9Fe?=%R8p@-* ze*GF=Xn{r~&>0cxIzZ|kw5Ys#^{NU9bx+z2L@nsv0=4iDK~EBQnT-!Pl?BQ|B;W^m zWb`j>kkF6q!+OM5+x`5rKaxo@bpV2%YGmy|>Pm_w#o%n^k)c2TJ}r1hv8zZX0|YxK z$KJtV84}!~?-?PXFLWD%JnDu92DDj(L@JxFeElT>;-#T|02Li}%$Ln9cARU|DW)&q zbN~9OZcab}$Gg@(90tME0-B#i+W8GLvvSFyUJ|f`BaAc{TBt=SK*rL&^us~ZYIO^?)@2LdC9YaD+logxaCZe6%@)@72KrqTk!wCt`sEI*@_gQqaAes~7vfrXw_nnkfyZcwawRIjq z*O5E+mU`clYks&OpgRy3X8Kvq`Ey!C zC_jbG%%9%MK&bX}VthhgypV3yUz@Yz)JEgd-_=7iWYY-1N}~Qex>+fC9HJ9V{sI!G zrjz;BZC$NX^WSnG7hiw`prnDc1%mx{mwuKZZ3(zp5N=)Q-<%e3 z^F!3Cz8EDK{DoT*Vec|jRYD?PyP9;L2Q(KwjgZ(wM%~U8?mJ$Pz$mX!$310n&VBP# z1*GnQZ&zwA{M=+nJt+Jo>|^WCpt(_n3$PkEB;ZGHl~yjrmxXOwJb=WWTb7@73&GO> z7jf!2$w@>XJ3hsY*ChYB^(vbha`d?PIVas}G<8TsG<*yox3hsG&Xc`AeydXPBzeV5 z*1;~KpYXre^lL#jE^xU`r}oY8998J&tOEN8>1)hnFU27rSU^}f`Gdfl$mnjv4ypk%wwu`6=eBS7OcIJ*2oLYf55cEU1A+ddxkAG6L_!^(r zIx+eWUY*|cNZj3#6iSH-up=zNoFR#J*8m^36+Z$>z1)Ha3Fwe%14xvp4`N0CXE-^> zW1}>HZy!{s|?4;f+U+cbnfatY*2K8yb5_xpmQz9C+qa~i5iQ8 z^2bGDpBmTFfxCWDElm=Aab~uh6Dl}m!~Qq zcv);xEi%A_{ZaY2#t>7?bwJaQ7r^f9=uGk0qa^F)D-F!zWdu~o6G)_iJecv%hyC~!LXYz|0*OfK)lwh3Bf zcvvT)#1fTAV=ivzNO$*Zc1=ud@PmuKo%0RG!4FbaxpI$bDRgK}v zK42a3Gc11b2oh{UAD1NpXaTknlBS0~$H=WSsc{T^@rRU1F7*S|tsZ`eSan@O0}79d zHM#sFLkrtkE75hi$fAK8k8vCR3VCw4?Kd zGR3Z6W|=Yh#UC=sh*zSJ6dF(2UDeli9mU1>1VWNX*66UMox4MtdVg3M_QF8N)&y%D zQ*wRk1{1j27l%K^k^9YC5k9c={8^s)b3kr`$WgtPoKZBS0+teg z*nF3LcUJM)Y{=Q{rkkRUj+`KW)3fY>+^CUPQkEZX5Aw12NnYe#`#=|5^10MkD;gq1 zi?P`>sHKv{U^YlVA74K>6iRK};+;a1X}xi9|F zzBHIZhQ@^N;mTdWycflST=WNRmG(zZPUNwWLy8{BeaYih_9IM;v+v(`WEj=Gk`9&- zTx@h}*J{>W@s^(O7qFxdaeo{1Wj^I1nT?eTV%m%MBK$Dw-!2qhwge>efh(ZD?qJw# z`*euaz-~u|&asvFtOXRl8csM&Btp*?Xx-D|G89^pjWjD5hlFiB^~&xCDA~A| zUy00gFIWO6DmnoHTi-|eO_14aC3xScV*@DS=Vy9Cjs*3nH29xov8Qh0vD{SDI`>U* zsYR?HZw)25IlJZUomghuWdhqdx|ey64ElGd>_zH5a&lVLNz&JOEN3@76i#Z=52F$w zGJ}7xXMVn>fmP$mnlC%4W!K^t9}-(=Ti~|R>o`h!#p&zALSG-jve#V(zZ+SuWtgN8 zGzO`a8YI+umXdG1NFyTgrB4_ddluC5^`pX#$SVV3x+Ok-IVY)G{WZ=SnH8?|@06&m zq?x#_e!F60=yK$D+p80_gK1v5and#~nIgGc!tnNXpCSn(sqBrKX2_fgVZQD9lJ~#? zssN$o2h+uc(*-5;^g08X+<;B-ocHp7VH5r_X!qiQDnNLRT+1*KZb$z-pjxMO&r(NS z%$2Dfx?%hb$L0|oeQdN(fK{Ndcp&n(1Ld27V+H`u_e=NCGjO~iC!=iU5~Q6rQ4Ilk z-Ya(bI%;f8o{4E0gRvYCt7D)Y6sgI!jZpAv>uXjG(gLw<-Uta^;PKe6#$OQ3!m?E= zsTu3(*%)Oxp6EibGNnnIX0iZ2`(6YbIm+*$Ktz(0l|v#2FW)Pts z28?a0;UR@d{K@lZnrm@>G#_IdgK?S zvpwLeFy0qy9OrgDuVjrQg<-j(nUaTfeW_Gi>)Ij?lYx&2uua=* zPYX*;wjGR&3%QFgF;%rST5k^q>?E&My?n_~HpSY2-Em8|+=vxQE<0d>q`EKuLa$kq zfHj3zV@NpjW&OcL0D2s9sZ!X}m8cdyV96VE73}uZ>uo9OZ`{1|R%VC=K*hm5LtGInPPnQ5uWH{RGW`2Yt|M*P3=1pw5(9tzUVbiB)dU=2)I2+vgzX)yt z1X)od{a*~|cs#b>bXyi;#^MN$QO-^mD(711+JI*3EmVX4Up8ev7&*=1S|{y1@rmVb zE3PZiGo$$;yd52%2is?`y34rW9m|rhUnHsTt*zkzGWmLEbYzdwPC?I~TX{yfO0r0u zx2Gwhdh1q9`_+3%Qzz1~sv8V<%r{e)WBw!(8N%7!=`C29&L8CN{R>_$9CyDuMW5(I zx6)}mGrFz5vFtHd_9@OoCw(icH-GN4-sjljS5j%Y+}5kJBX)^(;T)=3%~X)MD?0NF zD--taB7Y|Y#e6Q+XXha=n~apK)Aw`UfLP`<#@zWC4z{!*_^ru~V{<})sTn>A3k8K( z&W;PN(x}%t6}s&Wj})?~wzYeu=a@$z;1|!ivnvlyq`_gN= zIo0Z06>brDKEbsZ%ek$U{?==2?N>}p{N2{InzOeUS^9&TLZX>2Uv@1hC$F`xcVnuIvf?dFZmgFtER_ET~6}s5ep7 z%iC<*6yU05{()#2|Zu9^3WV!H5H{i*S|DfoVN&R$9!N!lbL2%){Wle)fIvLr$ z#j{lh{-A75En4Y&IPjOO|LZ~b-ZXLF3%-O`$RtsT@^0*G_wiV z=Vw2!Ow_j&jKm5Aqs_~vrZ|41($C=wNuXx1A}U%hC_wt{STx=1F~bY>0)zI2ZK*B_ zS}(ph(iwv;upFx6S)t%EogJ!uaW!Dfp?I$R(A;g#Kti1N;3-XffJ_ zs$;4;$SxiaXw{;u5*Lr~CQNg_c+ugC%a#yy08`Rx9{!zVU2Zg>%QLE@v3Y1IAKj6l z$#<{O0NK8m-&}jsu+9nmpyA=|`vgrV`*Q!YG*rnLUbKKmpORK%WQ4HWv+3E9IBd@j zW$KyVT&ci^*+E(h#_TSu-!{q)ghdAkN2Yb>*o}4X&3%|f*LALnR+3wHj8}jf=AUg# zXKa|G?07$2r?|Stt(40GeCA);*>m_Nw3sYoqA}Iw84ut5ujuB@!wuXP>rz@TF!NH= z-V9VNsaBA4h-g6>{6~pp2h@b7$g9fAHO7v$%SgRH(Vji^TX}oqhihu0v}eh=%o$V0 zHGsg@0#-?Xb5gQeLFkVxIVWCN5|Z|+#BT^?y>#00by>AnN=m60+&Sk zUP30`rL**Wco!~V=-RVJrcl-+^{k8ga*MXtt@%o{FtQ#yZdt+-Z&Z>GqB?3Ltj6(M z-m>$Sdq_{~?#v%^*_?A<$K#sn;tG0H=wR`V=n(q}R%nXaDQQ`B>)n9IW`;QRpe19~ zzNh>$kZ-yBsg;yIhIa?~`^FuVv}Jv?Bkn6y$8+D=f^MugOvfWpLu?^~UdM_xsSONE zpSs}Qm$-FL;NPu})%Ivr3Bi3my+e-~Ywiy;a9*)YBvRybS?)$z#|k>Brr8;DU@Aj! z%QL!)+4uA?bFo5J?G^b{@Tgb*=pR`o3pXL(AsqReI9v<8aGzV(wvGhlS{K>se^xV| zC`-a&qD{vCnO|L=af90WC6E67x=_?%cW-uQ6#^-zb3+vzO082>n6|q^;I>w zf$upE?>e&cd!OOg|2_$Z%sU@9P(_M~^;{yGm+H7L&>M<}vE{w{Ea6w6*8jW~W7{9b zuB&mZWIRcxJFg+ruQP9E!vAcPI{u$zY>WgOETK+YS5G((>jEP}eL~gX^@w^1I%` zkum)1?wdBlqhGdKsYS|LH$L-wp(!7{MJBxa`QQpm!ApR@Km6ethPzJXl9KM~6UeUH z7s_hozPn;d?E>69@sp}ai;$iM}tge*1|GvR0XM-SP zuI>v__lcKYRO3l$>%-}E4D-0)l^Q*z)+7?c@@He|{&7MZ7ISW`AH%eivJEPXpa@B0 zM}~siT$yir3I8oYaaZwTzZ743K0e;zPkB(0vMn{QuO(THVh-y^(av=9RXG0#rM&5! zckj%gI|$A14*^TJQbDchc@zk+p-I34yzZ_!B`4gXVg&Nui>TX<#N-(nSsuxxb6j6^ zG?kNE`GBu&uAp9Em!k22P~x!+>f>lfhPpo&Zd*+H*n@p=1@<=U5;Yw8gE9E~(!(`+ zJ{D+Zt{yLQU`yN2YV@zoH3KMuaX!E}>-3qs z((-gdZl9CWkEN?;8!aMuZi`=<ERYWHp{MC;^fN*~)qVbO(MQrizCp-Wk z&IddAJN!=FSz1z+nX$k#A=BYH88MaFe_B{%l*mh6r#0$&&flA=UyZyUBOlER1_#Q! zHb70s?aehPET|3ikLOW}T&U>fIMdhfzA*(woR`&);prjBarg6&`9G%?4lVmq)Uy)g zqPR_(-gpx;XplUdBfGJmrXkWi^E^WdjnV7yV0|MtC=LxJ=Aa5&Z?;J@REJub>5oIB zQNy)oHs}sMcn=HN8~cthve;%2jzE^$I1!KfXg*Hk`e=Up@i)@JP$Kc1=6+R|!%rFc zI$KnIa-Q{|>1CmQIMgrCgObxwtL(ys3sl0cysWHs!ruGNUHrw~;QoY8l#x7EeTd^* z8_r=^eM(c|Smi#Lts&s6AM+Lgn?#57hJL<{5PKlvG0 zKG4#G_L+pF7vDRhniCcBoKf>7$)a!kc4o9y%X)}88%-;{kx`-0FI0}rb6Oal>du40 z>?>bCKC19PE8w!6;&u{W^!6`IQzeNiluEr@g+4$?S{ozKuAxw0Ff(2XJB=4)%!MmW z$!ZHEUQn!+;9w}L)q;9-aCifQgN{(I8A>qXa5$)0y0~cf`(1`r8kPBw_>!@QPE^%J z^Vvdw^W}NO;U@Ye-s%kPfy7xiYo$3j2L}dH43V zO{i5%FB^JME59+RdSB3mz3F>nc15O*9Hnn$*U&3xrp^wQOHU%H64db1)XlD zf=}apy7n_D5lwqQni2G7i59 zkATDN%Cpi{QfhiB=H*Yxhk}askdw7A($M|;T>@?nu4qq*n~SS!(eBuqaKmNJ&6nQD zQVqx&w`tpt(wFy%K%@nZ6a)rZWZu?{bBbkjxQqTlA1B5=J(KX}4eU#)hS+p%1SeF9 zg@Vw(y|Uj%zr6M$qLznlDDaf~vv;5>p1%GomGEx->#-`&h_mEtg*fn2;R&F?ppYUs zoJ|^HY(hd?Js4Z6fDx$X`(8mG?-1cHlsD$nJ3>&dL6MQplN}k5$#y#i1G<#;%s_t0}X>7ezBDQ*JHo<>7Z-kh4_A;T6p3!ap_~C*KeX} zcb5(Sc}0;!w<1@Q`^)FbpniN!%I|NM zf}66a0W4>81+MA8%`cUXp#&}KfI}~mByIyB0+TIw)ot?QlK(CAVrwj)=-!(IyhKvwCZnf^tj;qZSs+o%Whd;x92QBEewTs3M)!yIUa1=H^@cFFs%zr7=aqM{bU zgeHfw1^D`Q7dd5}|8I{w2WOxwgs}>}$eH*HG5)tW5xYv)4<<9@q2`*P%Tz?;e-Wv} z@90K2^8eeIrqcBWrvK$UE<8g=S5*EN!IZlX8|U=jmir!-``P)I!n-XwKNvuia{G(s z-JxoiMajeGF)W&S$KEfGT9s5yQ%wydP|kN-eNLI7K}QSTq7E$lbb^byGiO4N&$m9- zO^aF-b zE!lR0OCk33*3FYIkDPT5juv;VmV`)#Bg~&n*RF-&kKhVwD@Go4;OtZ32X{q|RV-sW z_C;)lpzGi)!hd-dLwzYay~ZtXJ==A4CERaxTrt0GGmonWcOz~U3w$VsttPZr=&sZj zzkT&kL)^;1yD62-yB{CoTfNbn6*=v-EcVvMM)}y9ul;4lDslSfxEqJ)F+C@}3^sHp zAKciC_t@#0_uHP#T3&zf0JGG_f+KbH@vGB}m+|JdNON5uyAZ|GpKf)&+cYa>8F9SaK1fHW5Yq|i?S!`^!aCAGH3&+;+ zY){U9dUGq^dQy@)r!`M>`;*N*k=kgduxK1CCsl-JRSpx5z0L3lt##{~bp2yRbPcNw zZ|+Dr{(Oj9Xtr?s!DB@?J)W=LIQAT8u92IPX*(je?(kOt3rNDgUrK^L6jM9bJX zk%&1lwTP&&^FV23XI3F}__?`#@miKq$WFyfp^S9B%rtWq3A@gF$$;^h;&$h)b$8^( z5EpK)&0#=J!WyZ&%{vgIU6`9*a&|uKnb^kp7IaUhp<@6=`_;RftCu#|KGN|x zT&BDx&Bpwa&iEQ*)lev}>y4+x?i26XGaYBnZD9_2qP0%jZnl!u6bAO9|?xblTmjzZ8U8OTUq?VQdW!9xb@J&HE`# z*P+>KYvwUJIz;Oh#P_JJmnR3;+gm4l)&dLOYgPEGO&C<_UOqPEr6`NyBbGtYZTxGF zxN=1_A?h+{oIEOMmE*>`(!u~}|W?_+5%Y_s!kwpmjK1))AsZIv3` z`Z$kQHiI(r4C8&p1;WD~49{^XxL0Vcz?+4VPyQ@RNDOGJ2*m18b`d?tq0T+Wy*ep_ zy6_mSW$FF7;=1J#ddwxX0SNiHh(eNfVT$m%@VE3B0}(-IX1)8%wgV%2HRQSV-+pn& zQ7Lp`=*t(+>ovljEPAz23UFULvN4r+X+|-)E?)%=#FWjPa{m3+1zc4{>A|v{aUwqB z@@H)G3`ts;eBpBfeD>oFYD*L8mO6=f?$A9qXkF~;aO2CD`h*b?%Mqc#YtAJf8kWmj ze)3vUa+GLDw1>G$eP){-d!&u}PxiKwxKPqNW4uBGZ&6kB2XI6=#touwH#+#-HyhMQ zmW8rhFRb>iffh~kSb31qcgT%s{tU;rGO9!mA%cNM_sR@(PY|s~$<=-B0@){Zq}lk^ z8t^0UD=&J{oSKXEnK?bX+*41_H^CSdQ=Y`N*1PpFYbWWhR_CqLl3(CFH&%AmEDvG? zqK=!zog~oNdKoxS?Qgrj$QZ|dfj|beU4Qq6@BJr-(_*I&63@M4FL@Wm;W?isFIsrd*usF~mo;v70MOl?v25Km30 zWcDwFlS~%XAmSm5btiT54J5*JicPiLF)PCXz(Bs!%R=i@YL={-5pZ{XVC3Clh`Ylfy|~YL<6CXS&9+rdON`(|NLgvNxw^QeWVr)z z_DY|bh1=Fcg7K~r--iB>@K-VX+7<#`f(tj4N1PpJ;nH2bVANH|qsFM!;Sx@Q#X&l= z!}=my8qZ<4#JI`syo3Vk!}>gA*y1o9)9Hl|(^+&3!g>M@MFrOn&sa&+65CiFuWd@~ z&J$rAj=Hazju}>3TMQ=*)}`d@zdy)5qMJ^#b#CzRiV7y5iK|o4=itRE@3Y2}9k~N9 zlBi4{zYk~qkar~5v>P^YISdD?e ztJgUcQ_k>0P7uCwO4mMMI_Y#RD!s$_7v5z@?HJqmLUtVIBLIgC-~ z+E`v&rT-(2l6OmyR@kxh+bwflcPLO&D0s-%DPBaV5@#(fUxY!uKR(;7)OIxKLm9*iDTPs_w#%@b0jyWm`g^Nws z>f6tWfUHs$>3tTbXkQplX2pH=qnHWSO;<}V+APSTm2}l2)GaB>n<^-ggNqyMGEM4b zW|CVI?{(~G@l-Bz^})=dB~{ri%(1nlcF7@IUlNuVM29XX$_qJ6q^eblU)-z;V{dqI zl_!>O@Ji7368p?X4r)kfz!6e5{DwlVQOvne2;@S{pKBne*S2A4*?7C1KJ3(Kp0r05 z@n|g!Nf-4;y33CX1&r@LgUl4omYP|98^x{RD3`^V(@N$WFFN!# zmQ&xk2Kz!YCwc8L)227_<3qM8FRx|P_og=|N>+V*M9|($@Rsj>qsyf8;+OSxyyC4p zg}hUun~L>O=!~tj(mAYL6w8pBxlHKA(Mv9mn2;RP@YTAvQ#WEd%yKPr9P2*UH^n<9 z8=mvfam|RB^3Ls5-!$U4d+RV4T*OwGGTN2nwlrfY?nGA5g-0AoKfv4jmR6y(FMU(^ZxA@J@rvmeF;R03%!mj)gP^}Q-hO+JKK^P*|VgI zl&jr_Df#(>H^RTJ9A{XZR2OqimwJvXB~S!>rf|K?DYJog=flIkfQ<)BXIWA;)j||H zbEo#XJrFBhWKp8Sx)z8G{843W$U6Dd5vxR>D8f{##hbISxgesj+`>!QZ9DwnqP*ge zRPtDkzPOcF9HMd;Rg4N9mbUE!v*e{b17fK!(G_zi#_43`sau$4==pS*vPm*}1Zxs`V;M(+SDy3FJp>nO~8cBWZs$6xi8 z4%%g|8TRyjP;Oy6bt}r3M-pvDs5T% zG-`@ygGQ&7fO>UG;(9S159%)d2Cs5UB7EW z^AMNEj*IU(k-xl-WMB`BPhS)!HEaEIwz}-0;fQ>{*-;umW8Q41?+`NXiaR1 zZV2-}cai~Z&Fsn&a$VO=Jif2fh3V~BUsl8)4u+^~&CYcS zt5Z8UUoyb6G4o$yh0LC&k5*NlPPLo`!3b11(UpyX&c1Be?MVBvbua3Jf@^mNUx^nJ zT0J9gRrG*zLhNDH;)$kh7dN`h@-(o;^s>&yo2Uho=INHWiNKGKipj{91P&jhPNpNH zh*B%c&FisNsly)WxdSB$c*; zh?owI0IF67x$$ggd+Ip{Uv;57qS{V{t&V*rOZ{pqiAHtI9&3g?6UHa7&=O4`X^AO= zY3}W|oDf?GuC(yNa1-3W(12sWDF}ZqBhv5w3eY7;;RN>X+(La^e{WZ2$Jv2_b#IeU z5$sCuO8c_1EW`XOgU_BMW%td{?6(`mT-oRP*KN1NYi}%Nx}D|;2+oi}=_frkSpz@U zcZbC|W>s&beyT0CTbwLOWW92R-0S5uRKb7Un*1J8{_fx^5B9rvw-;a*yoqVaSjUPT(^iS1K;OqoEzNO)|JIFvMBF0gQ-Ch=2OH3O{=T>^l<<> z%KDPp1OTdD_Hf+twUdVMI7b^LX$AFK4|b>ciEx!g+^O}1yDj~#ay*7^r2N0B)CNXQ%SvtOw=EbVGcj=JOp-Evcc2Ij^T)?YD2w z(cc)yoBPOoEMUN`XuxM+U64qaEfm)hU^VB>UO!a2_ENCyWW};d^7>OTzt%_Xj%Qfd zrg>S^`d)88BCwHXF-lmX@($>&3Kpn|R~Q^<)p~-(}CfS1-cv=T1Q%ID5yjzYZ)M5EMGiS?*$fWH3ZCE_c9gE5bO^9e~JM)G4fm&9k#P z>Uen9d!(;ly_J7FSS#l70A*jl@zvQA9;Sg5&oI^k^`P;5obue%h%qWXnPeeL*fh^kbZieKiz<80O3zrY;IP`&v;X0OyI5Qey ztD1>uO5v^J%GZQq$ru9_HZ$%uCv2pg-ARn2avt>SF6Hy6eX=$Q=0`phS2~hVAexC4 z$&=tAV^xM1A0gY}SBUEtoeU}zKx{+IMB&^ZM)8sIjIvXMPt2Is5kK{=bap=J2b-*iDbtMDYY{y9tr$ zvgHV_^ssJ+#t>cx)Rn_lsZPp19UpM`a)rO&X^w$mgtH>5DlJ>eayH-~bEjC3`I_=J zo)~&hi8MS3VQmqQS~QD`B@D|RdH@G8=9}_#vTN!6)Urb-ro*T(I41maznf#aaIH^x z8p`?5Ye}9a_S12EoJq1_W<#el+~Vv-)nrhrC2QpyvMxJY-AjqxnXXP&>PE$&SP=dz zU{34*YwgVgpprR!xfZrm*d1tWV+SnEG(z55!O7RV+no-;qvuC&{srN#0`k z3P;0c53H?_WrF>(q2E2YdcdEF`Y59%QY!{Uu5G>fpIUx>J+Xj7yZ`E;$0VysP{Fmo zr-*YYK3}((Tu`fH@(N0Mb&p$^Ss@BZa_0*wb!Z-)2)b&7zsLN=3T(qvB*$OkoYPB8+K|5jw`q zrv*HE=+S;_9SWI);3&HSspqp$E;_r1@5_~kxD zdaP1pA-9}sIxT#tZJDs#S;)26sj8}My|T256;svRaM?CdG4%yFd;?J|rD!pb3e_vN zys!2Tc{b{vo{zIxr(*1kYnyA7BM)GcH|Gn|xjd|^UfG8fR84%xoNT>en3|)LnTUcE z&raHSebWJ`%`dB$s=4}xZ10XOiH7<()|4~})Nct#G$s32zXSPU*73vhoa6c?etOPM zZKG*fC`96qdwF6Y&Dq4OqSgd$;|&JEXRIdpKe_-%g(VqGYPFs314eBb~s^X;CaSR5XPnJ-@`$ zxrZB?{3z}}AmH(~sYt<&5nYZj0kLZOK@%yX?=ISpl6GkTz?=aj7cy~-xXmuL+N;HM zR`^$)n3G56@Tdsp-DVbmrW~_DIazJ()&80-|HfWP>SYxXj0S0I9FWFh6so|9-bkae zE25&E^O(iKlG#{@zbv5rP&zt}fztT>Z@t~Y2e8vE{t}e@&Aa^d zYXz9)&?Hhem`u4E(h&E>T%L3qin8GLzN-E1fZ(Yu4_F|;b)APdo-6X7$~KkDUB-djm6VnotR_Gk@W@+0W2Jvs-xlP4 zyaks1S=uU)3RMjN65^#h_BY9_-_Fo!0hM!t2=@+QDXD^wMqnZZG(RvM;5c7CpFtrb zzN)iAKG?6D(dBN){Q5>rrNGOx+2sKuRp0zIFuZO0*u@8DJGD2z7TW~N2zy94CvILnHB~7b z@#Agn{e=R=4$EcCc5Qf0d!p=E|J|L9jUy@SH(2Ls+p6wNS5=yxF>}GUa&kr(U)ISe zMD@IJ?He83J`G_n#@pE>NEyu2y$t!$F>MK(Of%v9=|a@2Diib!Po+EngPi@P^^c3K zZ^08pLDz!XI=}|4yZ;#&5-g_~d~S>*r0Gym@^QkUwn%Z1v98W`5nLy3vJz*|;qsPB zUO9Gu2pN#f&^q{y;eyhZx2^&!it}_M@ADkb3F$XLMz5OBbZv_A7}WVZg_q5lPd;<( zilZye=bhc{disr#@1ABn-s%g1uL|TCh0gX+X5U1`o1s3LqYH@@HO7eJ_jkRYVGw2{ zmG*Z=h=i*fQGl1J87Bb-S6BhxaT|;$0B&Nn4{^S-vJ!Nj0T;|_d8`gF&VXpxfvTCV zj}HkD7Xu;c|JK6>yCJHEAu=HMtl6nnvBH4xlWDUv^~HSTy{_S|L~JdMi;zLQ3>Rc?D> zD746SqPvCOtQ%~Zja`Qr@Q*_h>rU_zi*L<{L=;=N(O`Lp?`sN)fc-`1sLjIAYkZ*_ zOf{{%*|hKP%l4e7bBw!=@eSu9Bc0}_9|d$I{44?Wh5L!4L3;fr;U@N}md%z2_S~s( zEplgRP1GdvgIjkF!@P%C09l`0W#7kEVhidNBZO;x7;=nXy#V_IM%g`WV5;{hY#c=K z;pb1H@qNbcWCsHCvNn(R7JSW3k3#K@dbT!003|>e>@Sz4p=!33#k}R=N*6w|w$|I4 z5|ev{pwna5MOw_opi`S{V$b3@Pw>yzUwihc7kgSqJM4^DSJl8}r9-=Qg(GH&)5{+y zCX%eIY13S(U;`WPe1`}q%d3gj>ZYmuWV*v#)$j-)NyK|}Gp||VF$UaWBBbZ$sY{)m z9ZZoz1?@NL-x(m4F8JYHianv@x#Lw^IU_?KYVK(V@W~Phgnn7Ll+86~@G-2^8Unv` z0aWHo26fV`dgob##=9;=@lh2G(o*{N zE`_-M@e;}2xZI10c~BM#S`&%Sh`4lWzGLPh#aoUT0UYrB;LPsNC z(R0?`;*9F}lCD5$Vxl`IGB4|FLT`*Gv#!l_Ot~ImE^|Be+XpvJ>3_^vF7hVRY_n(l zfw6>y3iim=V%H)Kr-rSXdxg=n$!lW|x9T>H2y~9D*U`g{J6ls8<@eI`5V<-64jO5b z&Bu?reuYllUM72FYLrOd!}Va|C295TifmRU%_a@5@YuSONz>Curam6u6ko5X)b*03 z)^G(gUCT%<*h+pr)F}Od3;A90LyuViBw&v)({1qPg|JQ~F-(Yj&Rhzde3Hi$Aq$#A z?1MScy_QDYRCqr0jBgMnOJFk=|FY`V=NlN*9woJlCm@Nzoh$V@>YPxW53aC<1++^8 zuABGO{6d)<(FL_5MRED{w%z0?J=pZs_FMU=5nOo-BYbMi(F+>q~~2+TD2Y46~m>< z8O}d62=h$m-RzXh2VpT3LK3hAcaJvPi-U#9Uwix8fk0Z)p#ff(}x3Sg!8Afs_3kiQeWVFXA;vK zUEkZZbVniE+1k-jgb9deeXiPINZDS$U@56coF%5$qf#4sCM_2K3XuIZl5V&I4G!?| zjRCv+{aK-Yq-l-IR0|;gE&@WnxcJKV&&pKxy!*Vaipo*I!fJp}?el;S1;!vK;fRp{ z&{qGbkLWEpHMrWRqk)ff8mR;v0ONBat7g}hy3?xnZ4+5v{Xw$$<_kX(@svWEinrL? zdE8BaE0TyWSQ1uZO=~!i4?lk#(cN6a!KHAGYDPm-obbMK@3l7A-P3j?QyT@ASk0L( zrtc8#fxf}w=~N=lxr#6MLxeOm*?fpbdgNIgdx6pgYim`}pMSnxo$(Y8t5Aw!Mm?4_ zQ$ISKrVSutrM*`s;SYCzl0NjWHPDUCKQ}v}TM+)n#al1@hXrV^`x=*?hmac|y6$eh zl^(CnzZLl2o~|neOdSx6f4?f0D=_T67j`D-A=w}&)18pBDoE`ukJ~l?jHEs%Jsz}Q z(UF@YQ@$^_2v{{9Ugl1#823-7gb}Ld z_@SmMs3YDD=o~{w$FXa6jk_ZTp0m&OXsRd?O&vF>tuIauq$57htZtQbP99l*#XxGB zq}>Nm6;*({mDwB4^2Vr%3SQErQQZ2}(VsuT&bQkPxCiKKU0zV)dDqWZ2EJgXCxg{u z$1eV6S#oi2-QGkkM?jcnl<(Av!D<1iVuc56WNiceUY6sDauo@F>-iN6sCkgAthN`b z$2ERUl#so{u3O_?gY;U-I}~+orEy*4aEOdcw8M@m$b~@WJ9QA$jS#(iyOwH?5Eao& zB~gn9hKWx(-OS0I$dXaklcmk);CGPd%El_9$mIoFy)W2DsM+(!tb1U{dGEJXF0Zsj z0oa@`Q*sJr%zVwsrI=We?GE42bqSj%`^El5-X9z1Qr*HhrA- zC}mFJD(Qe27|G6h6mBXFJa2nw-OG^b9_#MZ?GhbSf?S31VDXsT{88Q1SIbo_yG!zL z9~K*5F4y|m0@Ps?6NlW42mXs%Dy19lw+)pcMk#oYT- zb9t6?k!S57Z6$R8dmE|qC8|cMLPj@-aEyxeo3=nDw0+}em-qq0|&tP8~V&C=sCde`$7#uOfg z4PaG4wsxfC`v)bT(K~e}@qqS4Sv;gt>$Q>)%k~tPWB)_#@SGul_d!2q8rKf^#-dZqmjN+56%X=E^qpeXZ2^?sQXq|D`^5}5A zwSn#f*!oB)vLAEGDx-5C3x7!UBQ~Hg-8RsT#l(Ai|xO%=zqu7|4n& zdvyOQpX}_YVZQ6@2|&WDGO+!E?O{0V42SlV(OhruD1DA}J*qU5`Y-I%i< zL?%PBl!NT)=*ON6Yc(75x4r^kZAt>{IIUI%`(LF6hOa77i5xMzNV_KwR&mka4;}-QO<*xmvyc7KX>V)BUbn%oY5yzf-ZVYe%Y_IbZpBghxPYNw^jC!;a6yRDvFj!inG8+yP{wwzpZ% z*hM)&zY#V#BJb{kR%Y_n8U@N|5 zM*`G$Dk3-2279G{3lx*HeyW<}SkuYq;I+$e^)poW5U?7jhlmQsXn?^Z()t{AeoiTX z(vz;1-;Ae@X9E5*7}x^SS}9;U5{xAM7oxJymIt{-b}Wfslfh3Q9?*rbE2cF=1q`os z5xz^Z%RXF#!Wg}*h_Wvl5iGumr~PtOv>x@GboUN_b3!OtM*I=yIS+87eA3`tHFx;) zcz?1z=Br{2<5w0p`7l1&Dr-}a6__tw@$JdC%^WIby1xwEEcwg0-n#_Uh<@mXBEoqQTmluHc3qjRoURAt4R)S}6y%aoT$o)6%cpNY7c?osz3E_ONH%d8t2lwX#%jAUyT! z2Yequ(%b+QYPqf=#>unwVq`gk^0W48zm2Qj?MgPJw{W=}l|l*FN$_OR376-Z-dbTU zMtK3oXOfmgYv@{X7u81yxEG&1_q*#1say{ zXcV1{nzAZYs=cEC`qXWiQ~Vn7_+6F|5H^O3ZLnYn@~`pQRlF(~Ja~>`+@I#!pWb?# zl?6U3AyP}e`#z^Rwr05;F-2S&0t_=QPWQ)yjcveTMg^7_A{_dKb1(BOjLO~TJo)G) z6!!!6`)AsK$&{%`hCg`~DQ5I3<^mBCFLHuS|3e^;5u#?61A1Ho;@le3-Y$MO*jDc_ zD9S{(5Q#&(TffrELCEMkyS2VFL~S32AFcIv*xA70e=Y#-3$l_s7x4)6E;k1F8M56@ zJ^D5hp`;sn!DgM7mPaiVV7F;oVT@D1?OKSZ`OG`LJ z7}$&oJRyiVvitD2iJwVv{`vWWs3OO>O?@m--cuXTAZUwi)60L^QM+GLf?|xjpQd8y zJ`31a_>muS-m67Fe$@8=1fgTC5`N}H8Lt43Vi<0|+)I!2(Y)AUpb5qUXnMhbzf}6v zv+e6G&}9n&1Xk0>ogOGF7SBXJwc5Q?=Ai!w;sgWxFH|DEsOxnavR1W7<^_-hb0Hgky(6M~BrhzKbxPqW15iKVhBgX$G<^6#vnSO6 zIjHcZs(549GC2c}dV40~a(8}#DvGXNhO^|T-E6JGtQu@Sfdd?e5Z_c3jpqmB6&8($ z3Cri5f-!J1aR8(dY|_ru@z2}0Z^K|PkWZ+ny!n3yj`4tT2*=I}sc2gHR%gqL6;M57>y5 zUh2y?))c#Iqg3Z>XKL6LCD5|{C!xrS2R~YG$!&u0-C2xT{Tx8K)^KE|QU*G~f8abi zK29XXOtNHwcLx~*Y}a#q)WLT>RN6Tz90?iM3aF09iV9t!C#+cz=M`7GpRehQs`0cZ z5vC~4Tzph_q8%{Ykr3pXZy>7vIJ<|BlxE-e`a?0`J_|w=31q;qDCjb6A%X<8+8A*< z(iHdHvsn*fodx36MvdaK+WFm#zF3!D4caA=CuR3;aA}gfw>D23L;xHo$!u9jbT3+a z1Lti2nYNJ(@yV_NOxstba&m5H>%dGZ5keq`%5syG;5UfIk0`u+lG% zoEq)Qc=5uOimOk)hXMtq`N*qa3IZK0CKYAuwLKj?lLPR~2W?jkm2v>QuGnyncyt}K z7OOp(3RR%?^XSIcC8U>@vEB4&^nfj~8P}xQaQD&0RAfQ9mx~y1%|}nv?mgyS0HX|R zXZY3ssGTY8I^gOoIIC)wzgn&)7?HcLQrkn5@DEC#wyu2uK&F=t*n#`O2h8u%!u-^q zN$YfC0D1Un3S1nNF#yeMLnQ9XwSXD%js$7w%4Bmc7`I3Hlfkqvs8(Em|NIIL&B)Bm z9Nv@q%Jg4DPIuFJW8-8q90&7?wE_Q8X>YesQH5Xd>DyYfv!Klb!K<1+d(wVBGgy?0 z7!(AyY+b=zRFpSSyimxzx=(Gww7xU17J-(+QwV#|tH*gpT=hy4CRtFd3c|ItN78KpyU%t(mf%t-NC~(_Vvj70~!| z1o`a82U5+cHIJPQdSWJ4*mQn$XI=RfO7qSA;c^2^(95c92dNV0q|K&W*z}}b=c~1D z&Yq=(?_5zLp(>$=uFuH1ul7&7YO8jRrakd^080*r4hkwN6M=K|FkX3Q>vW4hIMM$ao0QjH+&$3cuWEc<=XsCF>W;CV zMdFkw-9}+1WjR^^^g(gE%#={u+I|tt0vxcC<18C}^k~N+w-k2Ps8B>=_0(I>*6p>% zzdVyi1uvky-XdtbG<0*G;F0wsaZw&VEHv*|`oetAKS&PwzQUN&`}*TT(td)Izwtgr zx>oB4`Yz}gaY|E%zyZt?f7Rk8(K7^iDxD1VB1)LcMB{5v-EILDH!x7Xy4Iy6z{htH zoCE>{8~&d;&N~K9{}TC1_qoYZ?w3A+gE8paFrvthR5LyD@c0El_0_tce<5<*pDhEapkL=Rhqv~Hf6vd#zZ67J1{`QW zQslkY0&GkGh<H zwpb?=)AZmez?gBvqf`seHn5;)$jXJ@=@={thX9NMwkwcQ+S__KCE|g=+}uXSCzP!>W)pwRAjH~#3vD!g)?G$V}%kQU5$d;T*lOR9i;Y`~a;)L(Q&s*6J&Hq18?Bx@@iI~E9f_vX#B5;053 z{=2JK^Xf8+Tl(BoO?+E-}Z^jYV zRvb_>0Yn9@ckkYTGiX%R)Jpc8UUL4|faH69RZ(%5XOY~7u`93aQiyQO;&f~RRveJ) z2Ma%=6kA+Za+oO29Gg^j?D=3b#M))0yMR~)y|gZwd+;$WPD{K8dWF>7k=B~ZNHRBmM{7P*#pijF_%^?zf zLQ6oyLs4uw{R@N6a>%);x?m?RK;3eS?p59m>I!zXY|Ik!J|hwzu;)L%T<-%hO{w6( zqR+#Z>&9}!&(-nHYA>}K)%$@CZBk6-={T8gU*9|co4~g$*x(`YQ39O4vq}2pJClaT zvfX+zwK^=CoMBJQy+n666e*QS!sRX2R&{X$W;J@wUmOMqe$LjdVf46SH7c7ZlAa?= zsMR3vu{!(Xb#eP|E3P0#n(ZJUmCmTY9H%!G1I5jP!pFCPAG;p)0TwJ!@(>Pcer1MG z)3_)IRWkq{X*S`G9JEazaoWu5t0%$v=gs9XVa3Bl=sak>KOL>k@zY&cpf%V&RpQd{ zyjoGI`6ULySJ!7hcdhF>QFb=}Z5NC9*hX`Nhg}e39LaZWd*WBsZ*8FsNm*fPkd{a8 zlRds!f4o7|3<}`A#I2}2EulGCdW-X%a`&YkLmk3(%gs`7JPgQGfU znKa&DtYb-K^oy@JQ1$th~uY9Esu&dLk^gguLV`ta2;qM} z=EzwQ{=`tjE3i#oMrAJBO@2GJM}&A9LDSY+l_+(@M?~hZMJv~vVNg{~&JVAMv1KY@ z$4DCx^1NN1^zT;pt;i&DM18KBsO+#0UBIUbyF@Z3$^(y9O?x=_-Wp$Uw2K5ir6S?X zS%OGZ55qtCME^tZMbO37EO#F(VT{vgp`e0-X)OK>Q7X+3D6cLq*KL|5bW`@YrnVMcHB>Y>e-02V1p$xXYq6A=3~MK+61?iDEJH>bD9v z-7HCgPkEwtlFcrD)rCha&kqL=mSpa2RCvZCpAsuv|%XFK5uV7z9B!1hP zSdpDg+@8-J@8PWW^eos;*{j-lFQi!-&##&ItV5C|Cm|HyRQ?f6A%RodCWDlAAGxf2 zpN%Jz37*UT=*l;VTeyOHtGd%?r*23`@h25|EQ;vqDGvz7K!B3W>zw14$Ezpa{5<5# zr3PyeS^_wDsX)rE!(a&DC5o24&di8s^D3SLAFj&P<~qz%S^1gM*+C~PHWpJt{;pht zyC8*)4Z5t`ta}59_J3XpUnp6{W~7rB$LfNGgi^9{jk)N9@{O0H#4Z#}$DXRp%O6!N zooc->DA{>K=<(d+%HQ@=E4Tc!_!Pgb zi8L(*_dt@#h*w@1DATH@!anyPD(7>K>*rU`aqg{1!OzEXUYIszP01DWvv_ir)7$-l zT42IGiwPc}>ls}i=Qvj50Uvi$qUg9wm>{ED>{O&mY_Q0^CQgo+0n>4na{9roy=h3j z;LfLNL+$S0O3xux5|wwJJor>{d8ce8el#>xsKTjcZz2fA%cSD$NSYO2>}0-S&Bvz} z;;tY&B*Ts+dfLRsre#&Tl_lP^>tr|55(1Q0%GSlZO`r|h^Zc5vdQ{R~DW%@Bf$1&& zgwT5Zv@K%6a^aZwhwa{!+`P zkuaUm4LeqhIzJ#+yV8Qay&*GIIfZ_DcU3dgOYKm6n=bloe7YavAMq?o^jS^m|=BDf|IQUx)plpR#y0HfwH_G_`i+wXU|3u<9C3^eO0 z+-OlSR;DaAe!pe01u>Fm$YN}#!o@>p1!rnOB(l#>n>)8nHbbhXV_1O}wA)2{r&nqr z;g8h$ssK8gk)EEOkue{QUmp$u=PXj?j=*fbzdz+3C)^EGC__U-<>gWZ0}lSuTntn^ zWaU5`_Np^L$gbvSTB&LR4rF0oT3o;VBan3la~TMAi%ZVmHY%IvpZfDM*hCjE<|-@F zbQtY|+9!Eih1S5#JNfAfn+=|?syR3?_ERWEAmuQYUfiZP%y81qK+s4*rh43E zCgp;c*&$}Cot*X)Lb5$=R#%g6PUA+(2s@-x!^eQM?tu1nm}=+c!ofr_anqv;d=C$W z6$Yt91?+92#78r6wcZA3al<_*8j%?3bA`7>E%-{T3C!bFdhO&sWbZAL=>gdGFNv`Q z{={o7OWGz6V7{B8G2_~M1viMlZ1&C!@+pf-vPe{yr-QQ@O-T8>K4P1 zytCoszj;7?tW@X$#alE0qm{nC`#7A=My+H_^@Df}K2^XsqMp9@Y)l%LmQm$hJ1yTl zzADc#Zvjb3cOZF|!z&QNCrg$}8+9(o&VKszDG;m@M}yxUaB+6YE4?ZHBCB`5?Y<~GdD}lCBhjVh6^q$NX&J8`o5tHQcwWXjoq~wgob*JE1uC1GJb=gcOf)GE2Y|ZQyGT+CW6Th*}Z%L$?LhZXmEkz{`t zZ24xh#SB-~+~YnEi2x}eL~TKHrKAKJV<-|;>?QwTUQ z0N`+hROoblFz?ElcCb{jAA$FM|AdEJw@ zy$D^tu8?!tYF8b8UQoo8L|%qCRHuGVk4>&~93)0ZYh?}Bk~hZZIayY#NFZSMOUq0P zj4#)*_|-99{By?#qqf&??8#cN5OZql;WoX}$NXIPy%o-Jy-nA)E!mX2muEUgrGfg0@u{dqK5a>b<4wY3b46X$}JHbFcbw6*sECcEM zdLfWWX*b=lM6_J=hJ;Pqw*=?v-ApBN{M-#VPdmt`ScEH$!q{3;_{2tX^rYu<&tlWw z@0v81$|dxC|2>sLUSM0bHgd2A1np>nJrFCH41R}FGb9BC2cn3wzDLM**B(QCJ(pO> zlaPgvAhD8={8E6TJgPcfMrK#^OHKMz{4{F&R09G+S(TfwQ6hB{`1EIo^850YCI)hrZup&h zQdhkFmulD6GMdGrK^~4(xHopkDwJJhx|KCp685Q{*xxmO!@!*wMe4S-OUaVGz+;6P zColPi%dgtVHnMTdos=C>*!o#kte3cIo_f0A;%vi3mHI?D;-)*(scT@^V9C*p%G4mgh6Ky43WAaul z*PE==BYCz*Js~{9`PHHFFGvP#6N3-#CBI;S)Z$2!Z5UFFu`T-kC2JAEgY-zkwpZz{ z?d5*9^Hv}Pjj>PWW$GB$++K1Ttu|g?)Kj0bHXVz$Q}vK0kUvT^PTceMeujEGg6Z|% zBXhRFa{^Y|uSsLBPH6@F*{QQW4nt31Nzk+qdF>24!T9q7FQV4ch(|NfXO?jWC_Y#9 z!QlLG3zL2E%v)6Og66pkRoF@UY%5{}-P>JMowu-3=gShX-i?Tf0fpRK37C@9uoVo5 z!>m3_xgKs0oG!>}@w7h{vD^kLr^G?|L73M+b4H#UHT8$Fr%QP4dhrVS8boK!dOamC z+{Vb*AUm|A)a@xcdLuPtq$`M1F~?tr;Msa9h*5zEYE=QIPsOY6-n{vth~iYSz890P zso=hPDtyBkH(aCXpSYVx-id9~ajN@z{!0NgskU<2>f=IboPOett!K3QwS(U8>(_H^Vc4K^NQcQ`R!9aXY z4l1_wH+a-7v;54hA!FLQQfIx70I|g&*xo8<?Y?k%ba^ z;%<4-9(kM-6UCzh4+(HHDbE!TX5ez`UK_N7mXBS!-O}`1+2h9Ou>a2&hW%_26aW2q zB$4|fP3SGvS5ytEkfwEFey;&BN!)7a>C+lSFNdr}w$smrk}h@&!g?uw6SbGDxE(Lr zudV`AL1<_WQ>Cnc0NQ?ue0E|qcfGl86jZ|syMuP9LR>1va@>NJF>8r8T$D4_pmgH3;){d$0DW|=$Aslqh73l!!% zM+i>nLLin;^Ze33qtSux*eeEb>-SUfQCcwpn>7Y=%Kh^=X=A7|<#zGYUIl1f*;O%U z5z#nPdS_ECI&>{3S9A-bRUZ?z7T6SIkXx|1Sx_;^;X9XJpp~Mi2Wx+ z0nRd@q4~EBaiIQo3`iQiidadkuXn#@mn;TyoK(ff?}U&t6=_yk{&&z@@2+6t)Z^XW zY^%LUKUq@3Sv*F^s`~%AM66wNi>8_3+C!iq5ES+A^Rc?E>D$)EAq_3~+#csTML~`45RTUdH|RqW%^Q&9N82%T%WQEg#40@{d)z{|6Wesq!J%10}WWf2F-Z{?yRW z5FGG*??(FOYr`>~-y1{|>`(TojlapD&fc!c=&GG$p z-dBpde`?<_#L;bSZSCzJqEc@_+MYg2k&xcM^l6{N&VJ($M0jGOqM}k#fCw)PoGcU6 zqz!>Ad(`;)`gZX6(i8&8?tiJy{q>pYWSPOJsVl&=U~PUtSw}-*|NIXtWof+iW6?lY z)>Q0G(>DZfZ|~QyUrQx)I9C|x=~bB^H#R`0hbHyb-@1gVlhnn(bQCNS5CVRrPz6+- zaZzd-8tDR5&AyPh(17~390s(_W8?*x#KYJLAAf&;AixaP_3quf;3Mnk^aAnS9TKVi z|8=X!XYlxip)xhi_x1|1?vv^o8l#87rOnl|-XtxB&PWAWU0wb8^JicJB_(S>sCOn(;eS}c+ZTz4^t3ed1uB4&aC>`u zNJz-~`no6e!Xd|4{jrx!-c06j2?V;1MhJ(@(b1BUl0+i0 zqod>E#f!j7@4Wk4L=f?fs-J$70l#ZtWOPNKF*P-HcXzk8wl*;_abdwxFPiGKuO7AD z5(#|9`X2k-(F|fZWxq<{X1`&yV~=^YPuj zD?P8PuRpZ7QCuvM(4lW)V)FQLRu0Tw@4)JAz8TNq5TJvx#$bP%{I%SAdN?2_Z6a!* zrltn$*ucO53SIvB^OLtV6V18*+Txa%1eAc)Yin}}+}4ZM$!$A(=FGzWt@B%Nun*7xk%ZXTdKA@_AiY^#PvvwBGrea z>Omk7a1*Ac`8hC;8ZzM20(d7!glgmF4Cvp+M<*oC#L`yfv|>)09-WskfjT-mK7Hy^ zGYVQYb4yE0i;IiP%iz4okNY2>KqQM6SISes{}%5JP#*k^UX3hU}j^SNe;K5)hHh6WmNquu}5>$|T(q^6K5Ulx>$&Ez3DCK-B7NnPkx0?9H;G-d zgyrSU9WodQk`7;>ZFu?jJ+HFt$MnS8o;U66GFzu){kER@`qs?1mjOhJy6opqOYG|B z%dkdZ3r&vBO58E9axWOjCAiSh(fOnHz_?M0KPj8K5=B(a$)(X6prusgG%Q7wB7p+D zZ}=Brhv-7nphv*9faeBpO+#Zrq-R&~>6={xwoE+gRX3KL%t4F;|3LG+o4*MPWTqvA zW4~50bmJbw&CSi9J$vXr^=)OU^(mV6Ez5o+r=j5mVrl!A1pi6gUmfrT=3ifcuLT4z zUq*wSvhQuxwY0Q=`Dtk2mcL*F(0ldNk48gt>Xo~hSQI>N75fd6vG>2DgY@x6D#iNX zb^ktab-Tzo4{SoP z#d>;r-oO7dvv;t+e}?GO0X_HX*1t5{X(A$kp!@3Dnkx*}X9;TwMqb!kqOJ${oQD-+ zrOlq`iSP&jcKPlu0)YVX^)l>XB$7|X@aXWcgMY~-D(HCddj1Ny%|DMHUt3)TGWvDE zYb}E3GFnYstQeOfQgd{0#%${M6S8qXvDYE|I}+2e?@;P{$B!R(l1czDQBDr5$^=+A zH3S~KRFQdkKF58RX~h&w-u zl=B5Lku~x0@zuxnuh07jxTQ)m0U1kPp0JqMI4S@I23&_L#K5Wp z1$+=?sTSAXK0@8?RMS<*+uRU~@`)S59)@IWgD7-5AdX_7uip<2WEdEb27l(}_K(F@ z%Ir1N)6)Y_#LNuY9|h8twyv%&EEbCa{Mt_a0|!nManhPwtk*lP58G$Pza`N@4G`45 z0sc}mv!tk~C_lerY6WcB7cXf4<7x87V%>jz|C|FtN!x>(Q8Rsg+mgZe!NI_`z#r#d zIoLy|UaI5u6f`q7B)-NztykZ$X%nN~H|GsE^fastNcLA$c)Gh2H#Qg<8RN%=|DcZW z9=tAbNlHuCn23VUp`$bPOr{S3%ej)NA1!qG@{hl+4b}uV?~=ojdG23!xD2a`PXLBp z(K-cu_r|uLKWh9x>;$vuQBhiYT}rBdU|;};(=#y0%}E?}rk=9!^l7#|cK>lce|71! zcU&j-i&@47h;aYcXNZW1I9Kd|gF8U{sjI6algVIU=-Pig)KxEeu%$qT1l&<*Xy}O( zC%{^kmzU?{JSdw6BXExo&Xb}(Qa$PaTAGTAid;#2tyw|WEZh0>|L{dH@Seb$IKng2 z(wY`Ma?4G0bfU1+IRym| zp@7v0*xhpZ&nKDEH84C(Ao|qM-H?-0;OGKr-SF_Ro*fb-&8+(u=KUiMovWXyzG(AO ztk*AYA=eOi5qAY=bMuDfO-^8`y;@3=|G5l1Y@(TphXE>S0XXuSiSn1O>u!OS%S>T&aOKu|WfI_j5#J7Kg1>)) zpbBpP^L4Z5|DGQ3*N^WT{p}|Xex&;MF$D)dxb*a(%>Da9ywrmCpRea%0J!#N??yo0=L{__6-(9Yq2 diff --git a/src/udp_router/esockd_udp_router.erl b/src/udp_router/esockd_udp_router.erl deleted file mode 100644 index 46cf7a4..0000000 --- a/src/udp_router/esockd_udp_router.erl +++ /dev/null @@ -1,361 +0,0 @@ -%%-------------------------------------------------------------------- -%% Copyright (c) 2020 EMQ Technologies Co., Ltd. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%%-------------------------------------------------------------------- - --module(esockd_udp_router). - --behaviour(gen_server). - -%% API --export([start_link/2]). - -%% gen_server callbacks --export([init/1, handle_call/3, handle_cast/2, handle_info/2, - terminate/2, code_change/3, format_status/2]). - --export_type([sourceid/0, router_module/0, router_options/0]). - --define(NOW, erlang:system_time(second)). --define(SSL_TRANSPORT, esockd_transport). --define(ERROR_MSG(Format, Args), - error_logger:error_msg("[~s]: " ++ Format, [?MODULE | Args])). --define(DEF_HEARTBEAT, 60). - -%%-------------------------------------------------------------------- -%% Definitions -%%-------------------------------------------------------------------- --record(state, - {behaviour :: router_module(), - source :: socket(), - attachs :: #{sourceid => pos_integer()} %% last source's connection active time - }). - --type state() :: #state{}. - --type router_module() :: atom(). --type socket_packet() :: binary(). --type app_packet() :: term(). --type socket() :: inet:socket() | ssl:sslsocket(). - --type router_packet() :: {datagram, sourceinfo(), socket_packet()} - | {ssl, socket(), socket_packet()} - | {incoming, app_packet()}. - --type transport() :: {udp, pid(), socket()} | ?SSL_TRANSPORT. --type sourceinfo() :: {inet:ip_address(), inet:port_number()}. --type peer() :: socket() | sourceinfo(). --type sourceid() :: peer() - | integer() - | string() - | binary(). - -%% Routing information search results --type routing_find_result() :: sourceid() %% send raw socket packet - | {sourceid(), app_packet()} %% send decoded packet - | invalid. - --type timespan() :: non_neg_integer(). %% second, 0 = infinity --type router_options() :: #{behaviour := router_module(), - heartbeat => timespan()}. - -%%-------------------------------------------------------------------- -%%- Callbacks -%%-------------------------------------------------------------------- -%% Create new connection --callback create(transport(), peer()) -> {ok, pid()}. - -%% Find routing information --callback find(transport(), peer(), socket(), socket_packet()) -> - routing_find_result(). - -%% Dispacth message --callback dispatch(router_packet()) -> ok. - -%% Close Connection --callback close(pid()) -> ok. - -%%-------------------------------------------------------------------- -%%- API -%%-------------------------------------------------------------------- - -%%-------------------------------------------------------------------- -%% @doc -%% Starts the server -%% @end -%%-------------------------------------------------------------------- --spec start_link(socket(), router_options()) -> {ok, Pid :: pid()} | - {error, Error :: {already_started, pid()}} | - {error, Error :: term()} | - ignore. -start_link(Socket, Opts) -> - gen_server:start_link(?MODULE, [Socket, Opts], []). - -%%-------------------------------------------------------------------- -%%- gen_server callbacks -%%-------------------------------------------------------------------- - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Initializes the server -%% @end -%%-------------------------------------------------------------------- --spec init(Args :: term()) -> {ok, State :: term()} | - {ok, State :: term(), Timeout :: timeout()} | - {ok, State :: term(), hibernate} | - {stop, Reason :: term()} | - ignore. -init([Socket, #{behaviour := Behaviour} = Opts]) -> - parse_opts(Opts), - {ok, #state{source = Socket, - behaviour = Behaviour, - attachs = #{}}}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling call messages -%% @end -%%-------------------------------------------------------------------- --spec handle_call(Request :: term(), From :: {pid(), term()}, State :: term()) -> - {reply, Reply :: term(), NewState :: term()} | - {reply, Reply :: term(), NewState :: term(), Timeout :: timeout()} | - {reply, Reply :: term(), NewState :: term(), hibernate} | - {noreply, NewState :: term()} | - {noreply, NewState :: term(), Timeout :: timeout()} | - {noreply, NewState :: term(), hibernate} | - {stop, Reason :: term(), Reply :: term(), NewState :: term()} | - {stop, Reason :: term(), NewState :: term()}. - -handle_call(Request, _From, State) -> - ?ERROR_MSG("Unexpected call: ~p", [Request]), - {reply, ok, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling cast messages -%% @end -%%-------------------------------------------------------------------- --spec handle_cast(Request :: term(), State :: term()) -> - {noreply, NewState :: term()} | - {noreply, NewState :: term(), Timeout :: timeout()} | - {noreply, NewState :: term(), hibernate} | - {stop, Reason :: term(), NewState :: term()}. -handle_cast(Request, State) -> - ?ERROR_MSG("Unexpected cast: ~p", [Request]), - {noreply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling all non call/cast messages -%% @end -%%-------------------------------------------------------------------- --spec handle_info(Info :: timeout() | term(), State :: term()) -> - {noreply, NewState :: term()} | - {noreply, NewState :: term(), Timeout :: timeout()} | - {noreply, NewState :: term(), hibernate} | - {stop, Reason :: normal | term(), NewState :: term()}. -handle_info({udp, Socket, IP, Port, Data}, State) -> - Transport = {udp, self(), Socket}, - Peer = {IP, Port}, - {noreply, - handle_incoming(Transport, Peer, Socket, Data, State)}; - -handle_info({ssl, Socket, Data}, State) -> - {noreply, - handle_incoming(?SSL_TRANSPORT, Socket, Socket, Data, State)}; - -handle_info({heartbeat, Span}, #state{behaviour = Behaviour, attachs = Attachs} = State) -> - heartbeat(Span), - Now = ?NOW, - Self = self(), - Attachs2 = maps:fold(fun(Sid, LastActive, Acc) -> - if Now - LastActive > Span -> - esockd_udp_router_db:delete_in(Behaviour, Self, Sid), - Acc; - true -> - Acc#{Sid => LastActive} - end - end, - #{}, - Attachs), - State2 = State#state{attachs = Attachs2}, - case Attachs2 of - #{} -> - {stop, normal, State2}; - _ -> - {noreply, State2} - end; - -handle_info({ssl_error, _Sock, Reason}, State) -> - {stop, Reason, socket_exit(State)}; - -handle_info({ssl_closed, _Sock}, State) -> - {stop, ssl_closed, socket_exit(State)}; - -handle_info(Info, State) -> - ?ERROR_MSG("Unexpected info: ~p", [Info]), - {noreply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% This function is called by a gen_server when it is about to -%% terminate. It should be the opposite of Module:init/1 and do any -%% necessary cleaning up. When it returns, the gen_server terminates -%% with Reason. The return value is ignored. -%% @end -%%-------------------------------------------------------------------- --spec terminate(Reason :: normal | shutdown | {shutdown, term()} | term(), - State :: term()) -> any(). -terminate(_Reason, #state{behaviour = Behaviour, - attachs = Attachs}) -> - Self = self(), - _ = maps:fold(fun(Sid, _, _) -> - esockd_udp_router_db:delete_in(Behaviour, Self, Sid) - end, - ok, - Attachs), - ok. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Convert process state when code is changed -%% @end -%%-------------------------------------------------------------------- --spec code_change(OldVsn :: term() | {down, term()}, - State :: term(), - Extra :: term()) -> {ok, NewState :: term()} | - {error, Reason :: term()}. -code_change(_OldVsn, State, _Extra) -> - {ok, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% This function is called for changing the form and appearance -%% of gen_server status when it is returned from sys:get_status/1,2 -%% or when it appears in termination error logs. -%% @end -%%-------------------------------------------------------------------- --spec format_status(Opt :: normal | terminate, - Status :: list()) -> Status :: term(). -format_status(_Opt, Status) -> - Status. - -%%-------------------------------------------------------------------- -%%- Internal functions -%%-------------------------------------------------------------------- --spec handle_incoming(transport(), peer(), socket(), socket_packet(), state()) -> state(). -handle_incoming(Transport, Peer, Socket, Data, #state{behaviour = Behaviour} = State) -> - case Behaviour:find(Transport, Peer, Socket, Data) of - {ok, Sid} -> - Tag = raw_packet_tag(Transport), - dispatch(Transport, Peer, Behaviour, Sid, {Tag, Peer, Data}, State); - {ok, Sid, AppPacket} -> - dispatch(Transport, Peer, Behaviour, Sid, {incoming, AppPacket}, State); - invalid -> - State - end. - --spec dispatch(transport(), peer(), router_module(), sourceid(), router_packet(), state()) -> state(). -dispatch(Transport, Peer, Behaviour, Sid, Packet, State) -> - {ok, Pid} = - case esockd_udp_router_db:lookup(Sid) of - {ok, Dest} -> - safe_attach(Transport, Peer, Sid, Dest, State); - undefined -> - Result = esockd_udp_router_monitor:create(Transport, Peer, Sid, Behaviour), - unsafe_attach(Sid, State), - Result - end, - dispatch(Behaviour, Sid, Pid, Packet, State). - --spec dispatch(router_module(), sourceid(), pid(), router_packet(), state()) -> state(). -dispatch(Behaviour, Sid, Pid, Packet, #state{attachs = Attachs} = State) -> - Behaviour:dispatch(Pid, Packet), - State#state{attachs = Attachs#{Sid => ?NOW}}. - --spec raw_packet_tag(transport()) -> datagram | ssl. -raw_packet_tag(?SSL_TRANSPORT) -> ssl; -raw_packet_tag(_) -> datagram. - --spec unsafe_attach(sourceid(), state()) -> state(). -unsafe_attach(Sid, #state{attachs = Attachs}) -> - case maps:is_key(Sid, Attachs) of - false -> - esockd_udp_router_db:insert_in(self(), Sid), - ok; - _ -> - ok - end. - --spec safe_attach(transport(), peer(), sourceid(), pid(), state()) -> {ok, pid(), state()}. -safe_attach(Transport, Peer, Sid, Dest, #state{behaviour = Behaviour, - attachs = Attachs}) -> - case maps:is_key(Sid, Attachs) of - true -> - {ok, Dest}; - false -> - Result = esockd_udp_router_db:insert_in(self(), Sid), - if Result > 0 -> - %% the connection are exists, but maybe not Dest - %%(some router close the old, and some create new, when this router doing attach) - case esockd_udp_router_db:lookup(Sid) of - {ok, RDest} -> - {ok, RDest}; - undefined -> - esockd_udp_router_monitor:create(Transport, Peer, Sid, Behaviour) - end; - true -> - %% when this router attach Sid's connection - %% ohter router closed this connection, so we need create new - %% or maybe we should just throw a exception? - esockd_udp_router_monitor:create(Transport, Peer, Sid, Behaviour) - end - end. - --spec socket_exit(state()) -> state(). -socket_exit(#state{behaviour = Behaviour, attachs = Attachs} = State) -> - _ = maps:fold(fun(Sid, _, _) -> - esockd_udp_router_db:delete_in(Behaviour, self(), Sid) - end, - ok, - Attachs), - State#state{attachs = #{}}. - --spec heartbeat(timespan()) -> ok. -heartbeat(Span) -> - erlang:send_after(self(), timer:seconds(Span), {?FUNCTION_NAME, Span}), - ok. - -parse_opts(Opts) -> - lists:foreach(fun(Opt) -> - parse_opt(Opt, Opts) - end, - [heartbeat]). - -parse_opt(heartbeat, #{heartbeat := Span}) -> - if Span -> - heartbeat(Span); - true -> - ok - end; - -parse_opt(heartbeat, _) -> - heartbeat(?DEF_HEARTBEAT). diff --git a/src/udp_router/esockd_udp_router_db.erl b/src/udp_router/esockd_udp_router_db.erl deleted file mode 100644 index 249078b..0000000 --- a/src/udp_router/esockd_udp_router_db.erl +++ /dev/null @@ -1,91 +0,0 @@ -%%-------------------------------------------------------------------- -%% Copyright (c) 2020 EMQ Technologies Co., Ltd. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%%-------------------------------------------------------------------- - --module(esockd_udp_router_db). - -%% API --export([ insert/2, insert_in/2, delete_in/3 - , delete_out/1, lookup/1, start/0]). - --record(in, { source :: pid() %% the router pid - , sid :: sourceid()}). - --record(out, { sid :: sourceid() - , destination :: pid() %% the connection pid - , count :: non_neg_integer()}). %% Reference Counter - --define(TAB, esockd_udp_router_db). --define(MINIMUM_VAL, -2147483647). - --type sourceid() :: esockd_udp_router:sourceid(). --type router_module() :: esockd_udp_router:router_mdoule(). - -%%-------------------------------------------------------------------- -%%- API -%%-------------------------------------------------------------------- -start() -> - ets:new(?TAB, [ set, public, named_table - , {keypos, #out.sid} - , {write_concurrency, true} - , {read_concurrency, true}]). - --spec insert(sourceid(), pid()) -> boolean(). -insert(Sid, Destination) -> - ets:insert_new(?TAB, #out{sid = Sid, - destination = Destination, - count = 1}). - --spec insert_in(pid(), sourceid()) -> integer(). -insert_in(Source, Sid) -> - ets:insert(?TAB, #in{source = Source, sid = Sid}), %% junk ? - ets:update_counter(?TAB, Sid, {#out.count, 1}, 1). - --spec delete_in(router_module(), pid(), sourceid()) -> ok. -delete_in(Behaviour, Source, Sid) -> - ets:delete(?TAB, Source), %% XXX maybe shodule this ? - RC = ets:update_counter(?TAB, Sid, {#out.count, -1, 0, ?MINIMUM_VAL}, 0), - if RC < 0 -> - Pid = ets:lookup_element(?TAB, Sid, #out.sid), - Behaviour:close(Pid), - ets:delete(?TAB, Sid), - ok; - true -> - ok - end. - --spec delete_out(sourceid()) -> ok. -delete_out(Sid) -> - ets:delete(?TAB, Sid), - ok. - --spec lookup(sourceid()) -> {ok, pid()} | undefined. -lookup(Sid) -> - case ets:lookup(?TAB, Sid) of - [#out{destination = Pid}] -> - {ok, Pid}; - _ -> - undefined - end. - -%%-------------------------------------------------------------------- -%% @doc -%% @spec -%% @end -%%-------------------------------------------------------------------- - -%%-------------------------------------------------------------------- -%%- Internal functions -%%-------------------------------------------------------------------- diff --git a/src/udp_router/esockd_udp_router_monitor.erl b/src/udp_router/esockd_udp_router_monitor.erl deleted file mode 100644 index 4d15360..0000000 --- a/src/udp_router/esockd_udp_router_monitor.erl +++ /dev/null @@ -1,217 +0,0 @@ -%%-------------------------------------------------------------------- -%% Copyright (c) 2020 EMQ Technologies Co., Ltd. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%%-------------------------------------------------------------------- - --module(esockd_udp_router_monitor). - --behaviour(gen_server). - -%% API --export([start_link/1, - create/4]). - -%% gen_server callbacks --export([init/1, handle_call/3, handle_cast/2, handle_info/2, - terminate/2, code_change/3, format_status/2]). - --record(state, {pool_id :: pool_id(), - monitors :: #{reference() => {router_module(), sourceid()}}}). - --type pool_id() :: non_neg_integer(). --type router_module() :: esockd_udp_router:router_module(). --type sourceid() :: esockd_udp_router:sourceid(). - --define(POOL, ?MODULE). --define(PNAME(Id), {?POOL, Id}). --define(ERROR_MSG(Format, Args), - error_logger:error_msg("[~s]: " ++ Format, [?MODULE | Args])). - -%%-------------------------------------------------------------------- -%%- API -%%-------------------------------------------------------------------- -create(Transport, Peer, Sid, Behaviour) -> - %% Use affinity to resolve potential concurrent conflicts - call(Sid, {?FUNCTION_NAME, Transport, Peer, Sid, Behaviour}). - -%%-------------------------------------------------------------------- -%% @doc -%% Starts the server -%% @end -%%-------------------------------------------------------------------- --spec start_link(pool_id()) -> {ok, Pid :: pid()} | - {error, Error :: {already_started, pid()}} | - {error, Error :: term()} | - ignore. -start_link(Id) -> - gen_server:start_link({local, proc_name(Id)}, ?MODULE, [Id], [{hibernate_afterr, 1000}]). - -%%-------------------------------------------------------------------- -%% gen_server callbacks -%%-------------------------------------------------------------------- - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Initializes the server -%% @end -%%-------------------------------------------------------------------- --spec init(Args :: term()) -> {ok, State :: term()} | - {ok, State :: term(), Timeout :: timeout()} | - {ok, State :: term(), hibernate} | - {stop, Reason :: term()} | - ignore. -init([PoolId]) -> - gproc_pool:connect_worker(?POOL, ?PNAME(PoolId)), - {ok, #state{pool_id = PoolId, - monitors = #{}}}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling call messages -%% @end -%%-------------------------------------------------------------------- --spec handle_call(Request :: term(), From :: {pid(), term()}, State :: term()) -> - {reply, Reply :: term(), NewState :: term()} | - {reply, Reply :: term(), NewState :: term(), Timeout :: timeout()} | - {reply, Reply :: term(), NewState :: term(), hibernate} | - {noreply, NewState :: term()} | - {noreply, NewState :: term(), Timeout :: timeout()} | - {noreply, NewState :: term(), hibernate} | - {stop, Reason :: term(), Reply :: term(), NewState :: term()} | - {stop, Reason :: term(), NewState :: term()}. - -handle_call({create, Transport, Peer, Sid, Behaviour}, _From, - #state{monitors = Monitors} = State) -> - case esockd_udp_router_db:lookup(Sid) of - {ok, Pid} -> - {reply, {ok, Pid}, State}; - _ -> - {ok, Pid} = Behaviour:create(Transport, Peer), - Ref = erlang:monitor(process, Pid), - true = esockd_udp_router_db:insert(Sid, Pid), - {reply, {ok, Pid}, State#state{monitors = Monitors#{Ref => {Behaviour, Sid}}}} - end; - -handle_call(Request, _From, State) -> - ?ERROR_MSG("Unexpected call: ~p", [Request]), - {reply, ok, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling cast messages -%% @end -%%-------------------------------------------------------------------- --spec handle_cast(Request :: term(), State :: term()) -> - {noreply, NewState :: term()} | - {noreply, NewState :: term(), Timeout :: timeout()} | - {noreply, NewState :: term(), hibernate} | - {stop, Reason :: term(), NewState :: term()}. -handle_cast(Request, State) -> - ?ERROR_MSG("Unexpected cast: ~p", [Request]), - {noreply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling all non call/cast messages -%% @end -%%-------------------------------------------------------------------- --spec handle_info(Info :: timeout() | term(), State :: term()) -> - {noreply, NewState :: term()} | - {noreply, NewState :: term(), Timeout :: timeout()} | - {noreply, NewState :: term(), hibernate} | - {stop, Reason :: normal | term(), NewState :: term()}. - -%% connection closed -handle_info({'DOWN', Ref, process, _, _}, - #state{monitors = Monitors} = State) -> - case maps:get(Ref, Monitors, undefined) of - undefined -> - {noreply, State}; - {_Behaviour, Sid} -> - Monitors2 = maps:remove(Ref, Monitors), - esockd_udp_router_db:delete_out(Sid), - {noreply, State#state{monitors = Monitors2}} - end; - -handle_info(Info, State) -> - ?ERROR_MSG("Unexpected info: ~p", [Info]), - {noreply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% This function is called by a gen_server when it is about to -%% terminate. It should be the opposite of Module:init/1 and do any -%% necessary cleaning up. When it returns, the gen_server terminates -%% with Reason. The return value is ignored. -%% @end -%%-------------------------------------------------------------------- --spec terminate(Reason :: normal | shutdown | {shutdown, term()} | term(), - State :: term()) -> any(). -terminate(_Reason, #state{pool_id = PoolId, - monitors = Monitors}) -> - gproc_pool:disconnect_worker(?POOL, ?PNAME(PoolId)), - _ = maps:fold(fun(Ref, {Behaviour, Sid}, _) -> - erlang:demonitor(Ref), - case esockd_udp_router_db:lookup(Sid) of - undefined -> - ok; - {ok, Pid} -> - Behaviour:close(Pid), - esockd_udp_router_db:delete_out(Sid) - end - end, ok, Monitors), - ok. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Convert process state when code is changed -%% @end -%%-------------------------------------------------------------------- --spec code_change(OldVsn :: term() | {down, term()}, - State :: term(), - Extra :: term()) -> {ok, NewState :: term()} | - {error, Reason :: term()}. -code_change(_OldVsn, State, _Extra) -> - {ok, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% This function is called for changing the form and appearance -%% of gen_server status when it is returned from sys:get_status/1,2 -%% or when it appears in termination error logs. -%% @end -%%-------------------------------------------------------------------- --spec format_status(Opt :: normal | terminate, - Status :: list()) -> Status :: term(). -format_status(_Opt, Status) -> - Status. - -%%-------------------------------------------------------------------- -%% Internal functions -%%-------------------------------------------------------------------- --spec proc_name(pool_id()) -> atom(). -proc_name(Id) -> - list_to_atom(lists:concat([?POOL, "_", Id])). - --spec call(sourceid(), term()) -> ok. -call(Sid, Req) -> - MPid = gproc_pool:pick_worker(?POOL, Sid), - gen_server:call(MPid, Req). diff --git a/src/udp_router/esockd_udp_router_sup.erl b/src/udp_router/esockd_udp_router_sup.erl deleted file mode 100644 index 4487ff0..0000000 --- a/src/udp_router/esockd_udp_router_sup.erl +++ /dev/null @@ -1,112 +0,0 @@ -%%-------------------------------------------------------------------- -%% Copyright (c) 2020 EMQ Technologies Co., Ltd. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%%-------------------------------------------------------------------- - --module(esockd_udp_router_sup). - --behaviour(supervisor). - -%% API --export([ start_link/0 - , ensure_start/0]). - -%% Supervisor callbacks --export([init/1]). - -%% shared with esockd_udp_router_monitor --define(POOL, esockd_udp_monitor). --define(WORKER_NAME(Id), {?POOL, Id}). - -%%%------------------------------------------------------------------- -%%- API functions -%%-------------------------------------------------------------------- -ensure_start() -> - case erlang:whereis(?MODULE) of - undefined -> - Spec = #{id => ?MODULE, - restart => transient, - shutdown => infinity, - type => supervisor, - modules => [?MODULE]}, - esockd_sup:start_child(Spec), - ok; - _ -> - ok - end. - -%%-------------------------------------------------------------------- -%% @doc -%% Starts the supervisor -%% @end -%%-------------------------------------------------------------------- --spec start_link() -> {ok, Pid :: pid()} | - {error, {already_started, Pid :: pid()}} | - {error, {shutdown, term()}} | - {error, term()} | - ignore. -start_link() -> - supervisor:start_link({local, ?MODULE}, ?MODULE, []). - -%%-------------------------------------------------------------------- -%%- Supervisor callbacks -%%-------------------------------------------------------------------- - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Whenever a supervisor is started using supervisor:start_link/[2,3], -%% this function is called by the new process to find out about -%% restart strategy, maximum restart intensity, and child -%% specifications. -%% @end -%%-------------------------------------------------------------------- --spec init(Args :: term()) -> - {ok, {SupFlags :: supervisor:sup_flags(), - [ChildSpec :: supervisor:child_spec()]}} | - ignore. -init([]) -> - Size = erlang:system_info(schedulers) * 2, - ok = ensure_pool(Size), - - SupFlags = #{strategy => one_for_one, - intensity => 10, - period => 3600}, - - AChilds = [begin - ensure_pool_worker(I), - #{id => ?WORKER_NAME(I), - start => {?POOL, start_link, [I]}, - restart => transient, - shutdown => 5000, - type => worker, - modules => [?POOL]} - end || I <- lists:seq(1, Size)], - - {ok, {SupFlags, [AChilds]}}. - -%%-------------------------------------------------------------------- -%% Internal functions -%%-------------------------------------------------------------------- -ensure_pool(Size) -> - try gproc_pool:new(?POOL, hash, [{size, Size}]) - catch - error:exists -> ok - end. - -ensure_pool_worker(Id) -> - try gproc_pool:add_worker(?POOL, ?WORKER_NAME(Id), Id) - catch - error:exists -> ok - end.