From 6c620a3ab30a308585a34775102182eff1836835 Mon Sep 17 00:00:00 2001
From: Zee Spencer <50284+zspencer@users.noreply.github.com>
Date: Fri, 10 Mar 2023 17:17:42 -0800
Subject: [PATCH 1/2] `Furniture`: Rename from `FurniturePlacement` to
`Furniture`
OK this is the second-to-last-step; the rename across everything!
After this, I'll rename the table to `furnitures` and we are *done*
---
.rubocop_todo.yml | 4 +-
app/controllers/application_controller.rb | 2 +-
.../furniture_placements_controller.rb | 67 ------------------
app/controllers/furnitures_controller.rb | 67 ++++++++++++++++++
app/furniture/embedded_form.rb | 2 +-
app/furniture/journal/journal.rb | 2 +-
app/furniture/livestream.rb | 2 +-
app/furniture/markdown_text_block.rb | 2 +-
app/furniture/marketplace/marketplace.rb | 2 +-
app/lib/space_routes.rb | 4 +-
app/models/blueprint.rb | 24 +++----
.../{furniture_placement.rb => furniture.rb} | 12 ++--
app/models/furniture/serializer.rb | 12 ++++
app/models/furniture_placement/serializer.rb | 12 ----
app/models/room.rb | 4 +-
app/models/room/serializer.rb | 2 +-
...lacement_policy.rb => furniture_policy.rb} | 10 +--
app/policies/room_policy.rb | 4 +-
app/views/furniture_placements/_form.html.erb | 20 ------
.../_furniture_placement.html.erb | 32 ---------
app/views/furniture_placements/_new.html.erb | 10 ---
.../create.turbo_stream.erb | 6 --
app/views/furniture_placements/edit.html.erb | 2 -
.../edit.turbo_stream.erb | 3 -
app/views/furnitures/_form.html.erb | 20 ++++++
app/views/furnitures/_furniture.html.erb | 32 +++++++++
app/views/furnitures/_new.html.erb | 10 +++
.../_noop.html.erb | 0
app/views/furnitures/create.turbo_stream.erb | 6 ++
app/views/furnitures/edit.html.erb | 2 +
app/views/furnitures/edit.turbo_stream.erb | 3 +
app/views/rooms/_room.html.erb | 4 +-
app/views/rooms/edit.html.erb | 10 +--
config/breadcrumbs.rb | 6 +-
.../{furniture_placement => furniture}/en.yml | 6 +-
docs/erd.png | Bin 168550 -> 222543 bytes
features/lib/Room.js | 2 +-
features/steps/furniture_steps.js | 5 +-
.../{furniture_placement.rb => furniture.rb} | 2 +-
spec/factories/room.rb | 2 +-
spec/furniture/markdown_text_block_spec.rb | 2 +-
spec/models/blueprint_spec.rb | 6 +-
...re_placement_spec.rb => furniture_spec.rb} | 14 ++--
.../furniture_placement_policy_spec.rb | 22 ------
spec/policies/furniture_policy_spec.rb | 22 ++++++
... => furnitures_controller_request_spec.rb} | 14 ++--
spec/requests/rooms_request_spec.rb | 12 ++--
47 files changed, 256 insertions(+), 253 deletions(-)
delete mode 100644 app/controllers/furniture_placements_controller.rb
create mode 100644 app/controllers/furnitures_controller.rb
rename app/models/{furniture_placement.rb => furniture.rb} (88%)
create mode 100644 app/models/furniture/serializer.rb
delete mode 100644 app/models/furniture_placement/serializer.rb
rename app/policies/{furniture_placement_policy.rb => furniture_policy.rb} (64%)
delete mode 100644 app/views/furniture_placements/_form.html.erb
delete mode 100644 app/views/furniture_placements/_furniture_placement.html.erb
delete mode 100644 app/views/furniture_placements/_new.html.erb
delete mode 100644 app/views/furniture_placements/create.turbo_stream.erb
delete mode 100644 app/views/furniture_placements/edit.html.erb
delete mode 100644 app/views/furniture_placements/edit.turbo_stream.erb
create mode 100644 app/views/furnitures/_form.html.erb
create mode 100644 app/views/furnitures/_furniture.html.erb
create mode 100644 app/views/furnitures/_new.html.erb
rename app/views/{furniture_placements => furnitures}/_noop.html.erb (100%)
create mode 100644 app/views/furnitures/create.turbo_stream.erb
create mode 100644 app/views/furnitures/edit.html.erb
create mode 100644 app/views/furnitures/edit.turbo_stream.erb
rename config/locales/{furniture_placement => furniture}/en.yml (86%)
rename spec/factories/{furniture_placement.rb => furniture.rb} (82%)
rename spec/models/{furniture_placement_spec.rb => furniture_spec.rb} (59%)
delete mode 100644 spec/policies/furniture_placement_policy_spec.rb
create mode 100644 spec/policies/furniture_policy_spec.rb
rename spec/requests/{furniture_placements_controller_request_spec.rb => furnitures_controller_request_spec.rb} (76%)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 3f878b97a..af6797505 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -41,11 +41,11 @@ RSpec/ExampleLength:
- 'spec/furniture/journal/entries_request_spec.rb'
- 'spec/furniture/markdown_text_block_spec.rb'
- 'spec/furniture/marketplace/products_controller_request_spec.rb'
- - 'spec/models/furniture_placement_spec.rb'
+ - 'spec/models/furniture_spec.rb'
- 'spec/models/membership_spec.rb'
- 'spec/models/room_spec.rb'
- 'spec/policies/room_policy_spec.rb'
- - 'spec/requests/furniture_placements_controller_request_spec.rb'
+ - 'spec/requests/furnitures_controller_request_spec.rb'
- 'spec/requests/rsvps_controller_request_spec.rb'
- 'spec/requests/spaces/invitations_request_spec.rb'
- 'spec/requests/spaces_controller_request_spec.rb'
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 99ca2e89e..5217be6d4 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -124,7 +124,7 @@ def pundit_user
end
def space_repository
- policy_scope(Space.includes(:rooms, entrance: [:furniture_placements]))
+ policy_scope(Space.includes(:rooms, entrance: [:furnitures]))
end
# Retrieves the room based upon the current_space and params
diff --git a/app/controllers/furniture_placements_controller.rb b/app/controllers/furniture_placements_controller.rb
deleted file mode 100644
index ac2936fbe..000000000
--- a/app/controllers/furniture_placements_controller.rb
+++ /dev/null
@@ -1,67 +0,0 @@
-class FurniturePlacementsController < ApplicationController
- def edit
- respond_to do |format|
- format.turbo_stream
- format.html
- end
- end
-
- def create
- respond_to do |format|
- if furniture_placement.save!
- format.html do
- redirect_to(
- [furniture_placement.room.space, furniture_placement.room],
- notice: t(".success", name: furniture_placement.furniture.model_name.human)
- )
- end
- format.turbo_stream
- end
- end
- end
-
- def update
- respond_to do |format|
- if furniture_placement.update!(furniture_placement_params)
- format.html do
- redirect_to(
- [:edit, furniture_placement.room.space, furniture_placement.room],
- notice: t(".success", name: furniture_placement.furniture.model_name.human)
- )
- end
- end
- end
- end
-
- def destroy
- furniture_placement.furniture.destroy!
- respond_to do |format|
- format.html do
- redirect_to(
- [furniture_placement.room.space, furniture_placement.room],
- notice: t(".success", name: furniture_placement.furniture.model_name.human.titleize)
- )
- end
-
- format.turbo_stream do
- render turbo_stream: turbo_stream.remove(furniture_placement)
- end
- end
- end
-
- helper_method def furniture_placement
- @furniture_placement ||= find_or_build.tap do |furniture_placement|
- authorize(furniture_placement)
- end
- end
-
- def find_or_build
- return current_room.furniture_placements.find(params[:id]) if params[:id]
-
- current_room.furniture_placements.new(furniture_placement_params)
- end
-
- def furniture_placement_params
- policy(FurniturePlacement).permit(params.require(:furniture_placement))
- end
-end
diff --git a/app/controllers/furnitures_controller.rb b/app/controllers/furnitures_controller.rb
new file mode 100644
index 000000000..ce031e143
--- /dev/null
+++ b/app/controllers/furnitures_controller.rb
@@ -0,0 +1,67 @@
+class FurnituresController < ApplicationController
+ def edit
+ respond_to do |format|
+ format.turbo_stream
+ format.html
+ end
+ end
+
+ def create
+ respond_to do |format|
+ if furniture.save!
+ format.html do
+ redirect_to(
+ [furniture.room.space, furniture.room],
+ notice: t(".success", name: furniture.furniture.model_name.human)
+ )
+ end
+ format.turbo_stream
+ end
+ end
+ end
+
+ def update
+ respond_to do |format|
+ if furniture.update!(furniture_params)
+ format.html do
+ redirect_to(
+ [:edit, furniture.room.space, furniture.room],
+ notice: t(".success", name: furniture.furniture.model_name.human)
+ )
+ end
+ end
+ end
+ end
+
+ def destroy
+ furniture.furniture.destroy!
+ respond_to do |format|
+ format.html do
+ redirect_to(
+ [furniture.room.space, furniture.room],
+ notice: t(".success", name: furniture.furniture.model_name.human.titleize)
+ )
+ end
+
+ format.turbo_stream do
+ render turbo_stream: turbo_stream.remove(furniture)
+ end
+ end
+ end
+
+ helper_method def furniture
+ @furniture ||= find_or_build.tap do |furniture|
+ authorize(furniture)
+ end
+ end
+
+ def find_or_build
+ return current_room.furnitures.find(params[:id]) if params[:id]
+
+ current_room.furnitures.new(furniture_params)
+ end
+
+ def furniture_params
+ policy(Furniture).permit(params.require(:furniture))
+ end
+end
diff --git a/app/furniture/embedded_form.rb b/app/furniture/embedded_form.rb
index ec91bee7f..d7ca3defb 100644
--- a/app/furniture/embedded_form.rb
+++ b/app/furniture/embedded_form.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class EmbeddedForm < FurniturePlacement
+class EmbeddedForm < Furniture
def form_url=(form_url)
settings["form_url"] = form_url
end
diff --git a/app/furniture/journal/journal.rb b/app/furniture/journal/journal.rb
index 5f92f87cf..9d342ddeb 100644
--- a/app/furniture/journal/journal.rb
+++ b/app/furniture/journal/journal.rb
@@ -1,4 +1,4 @@
-class Journal::Journal < FurniturePlacement
+class Journal::Journal < Furniture
self.location_parent = :room
extend StripsNamespaceFromModelName
diff --git a/app/furniture/livestream.rb b/app/furniture/livestream.rb
index ec325afad..092a9041c 100644
--- a/app/furniture/livestream.rb
+++ b/app/furniture/livestream.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
# Renders a Twitch Livestream in a Room
-class Livestream < FurniturePlacement
+class Livestream < Furniture
def channel=(channel)
settings["channel"] = channel
end
diff --git a/app/furniture/markdown_text_block.rb b/app/furniture/markdown_text_block.rb
index 7d1fc31e3..9d276fbe0 100644
--- a/app/furniture/markdown_text_block.rb
+++ b/app/furniture/markdown_text_block.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
# Renders some HTML in a {Room}.
-class MarkdownTextBlock < FurniturePlacement
+class MarkdownTextBlock < Furniture
include RendersMarkdown
def to_html
diff --git a/app/furniture/marketplace/marketplace.rb b/app/furniture/marketplace/marketplace.rb
index c891feef0..bdaaf7f7a 100644
--- a/app/furniture/marketplace/marketplace.rb
+++ b/app/furniture/marketplace/marketplace.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class Marketplace
- class Marketplace < FurniturePlacement
+ class Marketplace < Furniture
self.location_parent = :room
has_many :products, inverse_of: :marketplace, dependent: :destroy
diff --git a/app/lib/space_routes.rb b/app/lib/space_routes.rb
index b0e9a3e69..5bf72555b 100644
--- a/app/lib/space_routes.rb
+++ b/app/lib/space_routes.rb
@@ -5,8 +5,8 @@ def self.append_routes(router)
router.resource :rsvp, only: %i[show update]
end
router.resources :rooms, only: %i[show edit update new create destroy] do
- FurniturePlacement.append_routes(router)
- router.resources :furniture_placements, only: %i[create edit update destroy]
+ Furniture.append_routes(router)
+ router.resources :furnitures, only: %i[create edit update destroy]
end
router.resources :utility_hookups
diff --git a/app/models/blueprint.rb b/app/models/blueprint.rb
index 49bc66e7a..ef4000250 100644
--- a/app/models/blueprint.rb
+++ b/app/models/blueprint.rb
@@ -26,19 +26,19 @@ def find_or_create!
def set_rooms
space_attributes.fetch(:rooms, []).each do |room_attributes|
room = space.rooms.find_or_initialize_by(name: room_attributes[:name])
- room.update!(merge_non_empty(room.attributes, room_attributes).except(:name, :furniture_placements))
+ room.update!(merge_non_empty(room.attributes, room_attributes).except(:name, :furnitures))
add_furniture(room, room_attributes)
end
end
def add_furniture(room, room_attributes)
- furniture_placements = room_attributes.fetch(:furniture_placements, {})
- furniture_placements.each.with_index do |(furniture, settings), slot|
- furniture_placement = room.furniture_placements
+ furnitures = room_attributes.fetch(:furnitures, {})
+ furnitures.each.with_index do |(furniture_kind, settings), slot|
+ furniture = room.furnitures
.find_or_initialize_by(slot: slot)
- furniture_placement
- .update!(settings: merge_non_empty(settings, furniture_placement.settings),
- furniture_kind: furniture)
+ furniture
+ .update!(settings: merge_non_empty(settings, furniture.settings),
+ furniture_kind: furniture_kind)
end
end
@@ -102,7 +102,7 @@ def space_attributes
name: "Listed Room 1",
publicity_level: :listed,
access_level: :public,
- furniture_placements: {
+ furnitures: {
markdown_text_block: {content: "# Welcome!"}
}
},
@@ -110,24 +110,24 @@ def space_attributes
name: "Listed Room 2",
publicity_level: :listed,
access_level: :public,
- furniture_placements: {}
+ furnitures: {}
},
{
name: "Unlisted Room 1",
publicity_level: :unlisted,
access_level: :public,
- furniture_placements: {}
+ furnitures: {}
},
{
name: "Unlisted Room 2",
publicity_level: :unlisted,
access_level: :public,
- furniture_placements: {}
+ furnitures: {}
},
{
name: "Entrance Hall",
publicity_level: :unlisted,
- furniture_placements: {
+ furnitures: {
markdown_text_block: {content: "# Wooo!"}
}
}
diff --git a/app/models/furniture_placement.rb b/app/models/furniture.rb
similarity index 88%
rename from app/models/furniture_placement.rb
rename to app/models/furniture.rb
index 7f0d70706..292189691 100644
--- a/app/models/furniture_placement.rb
+++ b/app/models/furniture.rb
@@ -4,7 +4,9 @@
# {Furniture} is configured using the {#settings} attribute, which is structured
# as JSON, so that {Furniture} can be tweaked and configured as appropriate for
# it's particular use case.
-class FurniturePlacement < ApplicationRecord
+class Furniture < ApplicationRecord
+ self.table_name = "furniture_placements"
+
include RankedModel
include WithinLocation
self.location_parent = :room
@@ -24,7 +26,7 @@ class FurniturePlacement < ApplicationRecord
delegate :attributes=, to: :furniture, prefix: true
def furniture
- @furniture ||= FurniturePlacement.from_placement(self)
+ @furniture ||= Furniture.from_placement(self)
end
def title
@@ -36,11 +38,11 @@ def utilities
end
def form_template
- "furniture_placements/noop"
+ "furnitures/noop"
end
def configurable?
- furniture.form_template != "furniture_placements/noop"
+ furniture.form_template != "furnitures/noop"
end
def write_attribute(name, value)
@@ -71,7 +73,7 @@ def self.append_routes(router)
end
end
- # @return [FurniturePlacement]
+ # @return [Furniture]
def self.from_placement(placement)
furniture_class = registry.fetch(placement.furniture_kind.to_sym)
placement.becomes(furniture_class)
diff --git a/app/models/furniture/serializer.rb b/app/models/furniture/serializer.rb
new file mode 100644
index 000000000..acb24d400
--- /dev/null
+++ b/app/models/furniture/serializer.rb
@@ -0,0 +1,12 @@
+class Furniture::Serializer < ApplicationSerializer
+ # @return [Furniture]
+ alias_method :furniture, :resource
+
+ def to_json(*_args)
+ super.merge(
+ furniture: {
+ id: furniture.id
+ }
+ )
+ end
+end
diff --git a/app/models/furniture_placement/serializer.rb b/app/models/furniture_placement/serializer.rb
deleted file mode 100644
index 4e4f83abe..000000000
--- a/app/models/furniture_placement/serializer.rb
+++ /dev/null
@@ -1,12 +0,0 @@
-class FurniturePlacement::Serializer < ApplicationSerializer
- # @return [FurniturePlacement]
- alias_method :furniture_placement, :resource
-
- def to_json(*_args)
- super.merge(
- furniture_placement: {
- id: furniture_placement.id
- }
- )
- end
-end
diff --git a/app/models/room.rb b/app/models/room.rb
index e1106a3b2..c19cbd798 100644
--- a/app/models/room.rb
+++ b/app/models/room.rb
@@ -49,8 +49,8 @@ def unlisted?
publicity_level&.to_sym == :unlisted
end
- has_many :furniture_placements, dependent: :destroy_async
- accepts_nested_attributes_for :furniture_placements
+ has_many :furnitures, dependent: :destroy_async
+ accepts_nested_attributes_for :furnitures
def full_slug
"#{space.slug}--#{slug}"
diff --git a/app/models/room/serializer.rb b/app/models/room/serializer.rb
index 6850b99d2..459d5c8d3 100644
--- a/app/models/room/serializer.rb
+++ b/app/models/room/serializer.rb
@@ -11,7 +11,7 @@ def to_json(*_args)
id: room.id,
slug: room.slug,
name: room.name,
- furniture_placements: room.furniture_placements.map(&FurniturePlacement::Serializer.method(:new)).map(&:to_json)
+ furnitures: room.furnitures.map(&Furniture::Serializer.method(:new)).map(&:to_json)
}
)
end
diff --git a/app/policies/furniture_placement_policy.rb b/app/policies/furniture_policy.rb
similarity index 64%
rename from app/policies/furniture_placement_policy.rb
rename to app/policies/furniture_policy.rb
index 13fc15d98..b53e5a02a 100644
--- a/app/policies/furniture_placement_policy.rb
+++ b/app/policies/furniture_policy.rb
@@ -1,8 +1,8 @@
# frozen_string_literal: true
-class FurniturePlacementPolicy < ApplicationPolicy
- alias_method :furniture_placement, :object
- delegate :space, to: :furniture_placement
+class FurniturePolicy < ApplicationPolicy
+ alias_method :furniture, :object
+ delegate :space, to: :furniture
class Scope < ApplicationScope
def resolve
@@ -16,7 +16,7 @@ def show?
end
def update?
- person&.operator? || person&.member_of?(furniture_placement.space)
+ person&.operator? || person&.member_of?(furniture.space)
end
alias_method :edit?, :update?
@@ -29,6 +29,6 @@ def permitted_attributes(_params)
end
def furniture_params
- FurniturePlacement.registry.values.flat_map { |f| f.new.try(:attribute_names) }.compact
+ Furniture.registry.values.flat_map { |f| f.new.try(:attribute_names) }.compact
end
end
diff --git a/app/policies/room_policy.rb b/app/policies/room_policy.rb
index f4672769a..81c199c83 100644
--- a/app/policies/room_policy.rb
+++ b/app/policies/room_policy.rb
@@ -20,8 +20,8 @@ def create?
def permitted_attributes(params)
[:access_level, :name, :slug, :publicity_level,
- furniture_placements_attributes:
- policy(FurniturePlacement).permitted_attributes(params)]
+ furnitures_attributes:
+ policy(Furniture).permitted_attributes(params)]
end
class Scope < ApplicationScope
diff --git a/app/views/furniture_placements/_form.html.erb b/app/views/furniture_placements/_form.html.erb
deleted file mode 100644
index fa4bca0c2..000000000
--- a/app/views/furniture_placements/_form.html.erb
+++ /dev/null
@@ -1,20 +0,0 @@
-
- <%= furniture_placement.title %>
-
- <%- if furniture_placement.configurable? %>
- <%= render ButtonComponent.new(
- label: t('icons.edit'),
- href: [:edit, furniture_placement.room.space, furniture_placement.room, furniture_placement],
- method: :get,
- title: t('.edit_title', name: furniture_placement.furniture.model_name.human.titleize)) %>
- <%- end %>
-
- <%= render ButtonComponent.new(
- label: t('icons.remove'),
- href: [furniture_placement.room.space, furniture_placement.room, furniture_placement],
- title: t('.remove_title', name: furniture_placement.furniture.model_name.human.titleize),
- method: :delete,
- confirm: t('.confirm_destroy')) %>
-
K{@ z?yKM4RB9D-S7gr&_}|^;a71+S9UWP|)mw#*Y-E=&9dww;s8;jz@bEZn+;HT8N=oTt zmg7>X3%%+K#i%DQZB;dsR?646kBB&Vw97m z#(JuyxAEy$vPzDO*PHB? +9?(9sSpYjxW3Ok)kENVk9LLdMCsGL7ZStLulGJfi5@iXES1Em Sglg6jhf{2STl7lLChHue4nc6NgQoV?fSIS#KC;(|~y zj{QDZ>HxG7GHhk|JDyf%7``#6HgHZr_p~o?-=?msf<-A7nja~fRnIa%?!Hyn482t6 z!@afStPkWY%rjlfU8Ii=;_ 9~2PuU;o<@Hj%UX=WX73~OT>M!!T}&~u(E^XIF`qZ7@1KOR?w2J^GO zo{vss^0JK3@CVX!PBLGY+o!-WbCv^dJ!gLckOQwy0nX7b72`CW?zWNapx<*RHROBG z-QWA)ERGTxMf=ko@B7N$xbWq|S)E*`Mb?8^6CSK+ac4YE2MJj_C$ts1pT&_XHk#>a z+~$#}^N6z_Z&Lr;8+`&pCYo$HLr%KOVBAYhI4Z4ti~dheNX$?#W)4SfK! sWT4bSuR>P6RL@rPL9mho@%G IW??ysKgX_V-I&{a;;hkP>0ku?}@SBb0?emFU%hA zcFCqY)R)ghtz2|rcE5UdW@+}aRh!yhN5x82zrJXW>f0r0*=#?-s{WKG+W_at8ry?c z@xNvE^T+3%?!x1W^Fwz zTQU~y7ylmmbJ$zJ;>TlhuotFlbId-n+}&`v0s|_^=xbtS;Wqo9=bJF7%yNPn)329Q zofQrAH_7J5`8q=@@Z XW0fp Mux z;Q`lcl$Lei*?vI`)$7$4`8$2IWV39>D(%q-N;n;-O3>%IZd22h<8? R{&vjA~YPv1t??mlJ5uu*qSj|BZeX8;`-4JxMv}eZKtWy3aT+DTh5hA7srY6X1gb zqxb#8ecvOdnwVKn_Fa74j^n?#*1WeeRQegGdeFPu)LjuFZc?FAUh 7V8>{y)R87ydtusU`go2v~#!H<)ykRB%+Dn; JG zaG_xg)2|9+&tlK}HvW!!n>LpHt69l`s@E5zPeft^fID zzCg*yMME ydUlARL0q2m^@|ZcZJu`TfdK;r~gjogU=V{%$b8{~OOD`#)rv z@;?#*s^R}8j5rnlQ92!H8xi}J5?|FFy6k!F(=qB$GaVD2B@`#GNTUA8_O1E5%Fb;i zupiy%A@dU66~M+a00sD(LaCANDf#=Sj2=_bGWi4v+inu1GI~SKUWl8(>$*b}%H^!E ze@Zx)DiWkkBx_sEi=OHzdO_59^u)eRf`2~?`7_t$)c>nG^w_G|o{z8Th8DV?V&9(T zI E8t!9-|JEG`Zdu? z);*Eo1fHW^U2&cZwi}V`tO!=utsm(q;kFuR*sqrP)}kKsG7-#{wJ3n!d;~CYmn3O^ zmHmJPC3Oi}+ xl(}+ z)7=b0H?9o;R+k0|3ogu0 ?;C&u z3tK23qu}DN&iM1937_D|nH^y*`fz`}bfH{~G7o0Du?(2n7tC1bH45cIqorUL+8E)@ zEniWs8^Zpcd{`AqZ?I`wfeyO1esi|HZ$BpUS lAkQ1*SWutJU3pi zheC`Ja=@ElZ_Li46^yp9{RN$46^9?D^4cdG9l{9*$mPIWJp&v)(j~gUkGHR)g8|}n zUGm?R C&>uRwkzJ&HVc$6cG99B!+6e(d(e@ T`P}9>YucScYDUtd z(W*JC)G-*+8dsrAu!!(r&VmEr>4o$d!n_I{y8(4CMfvVN?elo=g|Js=gGI=ub&r#M ziYZ46I=A)T!i>MK51jW5!c0 -ksn&SmR- R$ m^!;pKH3K?LnBZ}4ccab8?!&S zt{xUh(gRdL$Ru-E!tby?fmqQ=X?#3qg@(lmWCt7$2l&f(!xr|2{yCR6ob=jvkudmb zH^aJkjV-)JZ@-yBVNzTbDIY^n9|%r~QIukWCRE4l@-9fHlj<8EGLz%@_v7;MSN}{L z@^}A5CjNJ4$Up!8bR(Ys*-p@B$ID2^DtJ_cHp*o?-Uk6YzV1ogor`Er7{f9siYj#O z!#LV?Pij{F>9RPvet>cVJ~N>W`cEhW*&J*~IL;E$MIJD_pQ-zv|8R7;aGPH7)4fEl zviz#!O;m;5fflkDA{Y8@EW7Y0o~&EGnt_Y8E5KZah-cWA&XE$%voquU7tm`oPu`Y& zNY7agdO3p9?*!#5u2xVFbeNkCMJ*8ym(b>=^0yF7)|x_jer+&wRECs4<`@SNWXL%p zf()c|A2F)lKw#!hB8@@)^g#>VEjshHqB8t!a37{Q;WBtm|9@vBP8yW~_!v3+BH$mH z;ED{;*i#xU>op5+@yLSQ&5oz$ltsm5`$47(zgnLHVtMibbCl|T7)iWGF(jI+@E(cG z&%mvFdK}$H^W?2thcRbK<)&Nq`|Wf)vLm(0#xP-LOv0aa3-~of26^FDTcdQV!62xr z2T;lTELkTdUdufU&XDF!Gk_hX+2xSmgjJ(N55cdG>Fk$J!VjCDJ%yO8i5)OU!#? zQjMQFKSB%cqR*K;;V^W2TRUWgvSu_-J6v3cKp~E|8DT$YnufcouBJ9VBV0aoW_qmG zJ3Pq7Aeo==Jfh}c+SDjlq$a%m@$#Wr@!s%usKq63P1_zY>m~o^I&3dwwo)ak>Wkxd z!^}F0^WBnagrPluwV!C@)-ClR`#|c+4ElID1|XX3`~`tn+lhg+u^N?}aUoI@Wqi#6 zWT?foZvj%+3V7o+kTL$vkQ->gOLxY=4MKRh suDeWt8-Jr8P&>uR~M!_xq@j#TM^Auqo z1ODcg5$?mH>BM>Qiif4f*vjQ9_6a;H~b!PX-O-PfyK4&Gqsx#GJppzW8f -1}|8!eOcAQMm0lTF<=2u)pkpdqbSXt3Chr(VH)|E2VwhNCe9Q$|wz z6k-EF -C9GiIySJ$CYZ6gjiI9;q(>O@Hs-FXmf>3fTAq1-R-Ru2A_F;Z*rV9e6 z3^0i~1kTQTJKav<5GUntQrRH5)juAhu@1B|Ym6rDYc06}=mq5Es!~mwnV`MqyQRt~ zRV0ce1tkaR%q1O))9b1T4$iip3Dc_x(gy}kXp80spgjXSqu3}4kcMjY=Evl1N|J7J zI#7To&xJ<1qu9$F=2v^2mV4O=`b$q+^X}?ltr-qpJ}QF>34jF^iLEUco@fZLAOD&L z)*ao>jCuaYiwhaE=R3M`0B$=SwNXrcV*lSEV@BH0*FvE?f-+2RM48-Wae zX90en3n$kG$R5v#E^U%CXXya9vkR(YQ@hA{Uz) aW2*R zt{4W6?PpxqtJJGhbC$8nW}Ltth&|+;YMxXI|CVyqpLj4t4;HW*2tcn9#6gq-fR!p_ zy3ulTs=j&t8PvltY|35~8!llK?@q6~GL#=pDoMM@qXA8n7!zdv;Y+@S$wE;xP_|B( zV jh^C87!V `4vS&kObuNU~skuSNVDK1DB1%8x%vQvj zl@T+7EJY5CXVUP0DY9`6W9%lEwX$jeMhS1a5O%t#_3pMHJW(fUe( !b$FK1m$(99>Rnzk@MGdeq3K{^|ep>R~r;a6R;S37!@6h*I| z?)`e~HdQFRIGusM_(SP92IlWq?AAsBk+Vj|1=_%VI-#MX1c9?o4ZAxA#H2O}07&W) zTdGpapU3c7t-7NyndkC01LUgGT5hcxfvs|Qr^KU=*z!QAj_vrZVj8}N$3(1!H+2^6 z1NOXoyRTkQ5!n{6h2BK3E+3#89gqQH4SL$0zsCr#6N6VRc0Xe}hK~@?X$AL *HhyjMVyx(%aq84$4u=fFIyxNfI%a2hr6B%@aU=80m zW*qlSf2ulhGRT|2!Ezv04S^Ub7<*lyHzfdH-U@2gyU_fK&|@Dk_cD?a)$zXc45#bY z5GT4U2*@VEO;4qx %#9 C(+aM-Q?n7{~bo}_(&ETJ-Q>KdCr*pJkcTO)$I dLMyI3oH0IvCh}8>5 zFPDo}OgJ5RS?e$~g$7(A2@nu`hI-~CtWphQ*kZ6r7)QHsUoAh5xpK!;Z*^4a`;-S8 z**o#xiCR7aoTdXSBQ(biPAfTElCo%?nRpg ^m}Z_IlWp$ASPCG$7Ify9 zXN>V5Tg}hAl$>w8Gib;K8w87`_Wnirb0xIlUGeusge0P42rbNxeubOxka S)A%}Mj* zzSQQq0jo6dVJ@S(_*rO1oR&3ww?tw6u4} (Vco;2Qt5Mk=Za1i7o&b_F6QoI?w0;4CT(jG0Z z#F<`Aaljls BR7~>OAyu%dUtj_2&ORsCS>4Y$IHfR_PLd78ZJl6Z3^|b6 zz~wko-<;U&Fw^0q EygWJin30U^MeV>ih z?RdZ*`%!XtAQ1~TvM~30jP>~uJR^d73xFQOeyNs#4(N}i40-`ih$lQVivwgmJuw&z z%&rY`qSilYl3u?53xqCTpkurKd6H^CVW_d2+fVs9MuI&2T6N1l#px|^F~N5`?B{Be zX|4(j8rDRU2t&SGLOJoT2pA=knCNa8;%7ZLAJ8qKrY(hv5db>KHuZfl1_q`vESZ|g zSpaxz(jFjLcD{VbAqD+{ppY- >{0!x~!KOFn*BJqv zBrk<9hBT&2Wui_AwkO3RNG#EQ>=!V@)Bl=aL`hOHN;p9#7>`J8fi58!m?00CwL*Wh zCMVbTn6n;`OLYJnNy00kEq+CmT9yq7+hBELtW4f6<#ixFClO2ul@K|9V^ ~jX2hAIWHg71+5cN&HX|x$&+PcF_ zArZ<}+(Aoh2m23xqiB*eo5hGcizZ@*k@stCf$r8o(5}p|8VtDheg#Pf0bV~r0xAq7 zj 8(W?N!&2rA0YdIL_|HQ=}AptUS9!The@q@D71*M94Xn$vc4CR%J6*F&` z8fQ;+!m~CFe8xqXGr(CVSnee~^Y|UTUwO Li*ZG~`UK8N>vFr8&}Ai|Ex0 zou6_+dJhJb2uCErP_=lHt+!MRAs<6R8$9iX7jg;_zQ9`VMk|-{;M( T}!7(I1?n2_lbT_iSi0Y!!u!b18k5on%1J9Zc5K0z?x z+NVK5l0YMLCWl%>XRN;IhYO9@Y4PL#(hJPbK@rI269&x{8Wg8HgKSE=#Mf+_Qg17H z0f0|)Kot_}knAY-AE;kQtxh%d+@C($o{D3;n)<2a}XWC_n^* zfW;N)B+7lKq7FOEP7-K6(d_7$^35Phvv5k8OnT5qg}%+bftVW|H>tPov3x}Ho^TWL zy7ZSU&g0k9n=;=G^s1sd38RX|erle)dA$czq$GG@7IIWMKY1aPAo> N z=!wU?9`Ul(BpHSQ2{3SJe_R>*hzJ?@E-Lf(hl1}IpzL#VXrDf0<`dBY;>oCMMOLEd z65x{H_FJns_Sg$Sd?TqDVqcT|qlr-0wDED33geYMu(wI%fb^p#5Ou`%97C5i5nQr6 z;F_2R=fKEFj#Vg-szi4R7}QQl60U3~a~tLBiKtp==_FcH2T*D$2tJwezk;PuH+>Hg zj0uh92^LKhV#_J`3G&k>6!kKBG<&YE*#i^m!kyBHYH970i-@loaLfCqkWlwKdtGb@ z9c-#;BHJ6GuPzdG`FwI)AhF^hrTv;|&@N^=6h1p-;jLQ_=hJgv&UGT$O8)*gRkAq_ zbF-a%IYmTznd@I-^uZXC5rH&NBn%%g>tyjjjy?>?P?|yn34~cfgFgrXM-hgKU{@(g zFZ6-D@pr%S96{@Tx|JKNsA^uuGxd(n;V~_
eUl@@10kfV_CW$AEzxM zOaLLwXZ)7eXL7oyYCqt$&5L$ )ULS~&Fuuw-^&Fb%GRvsx=^3 ?<-d!39Uaz5x^VDOEUVkl-gQ zHv*T4fI?&q-#LgNMr5J`$L&@ct4JpbBdY!sR@xl7hK?sEw@P}D93kYBGCU!;l$cCz+Upo$n0nA>8d!P&GYK1p2N-gf$Nwwhe;o;@84wQj!E( zmLio(FIa5T4}IwXvg2k&0Po6NnD8EWzp)2(VJ+^Gl*)!q_Kf6#b|L!1K^QoczcW&B zo8*WaUy1hSL4?J2H^G5DX%h=tgH3raU)P8_Ir=gT(BEy{w|c4Cn*22-Uo!ozjte)9 z+$!wRi?mL^67;1nLZ6vkI>|FA+)YV&OW5-lI)0HiBHZ{+omg^$dg%%0V*{xgx;2Az z+t{v9QEl*DloQ<5YOOo|&9>hvWhOAWAglJ9y8W&lJ9da;h^@X3sYeXM`aJwvdQGhE z`;roAm=x!hvwQ&L-?w3<^9@KS`Jl%f@ALBVofa**qZVfpbo 1s1F(6ou;`M-i-}>AkL>RLr&6KI zSFb+&<-9th;-xNNv^{s$Xd?6~w&TgYM~_x}4yugk8Qz~B?`MYs{pCl$!|d?MMMoQe zwM4|n?o!8yGGd{iUGsSARCo10*?IB -g9@Sr+fg#y|ad9hBnUHK_PWlWMt&a#6;Og4BQeH z{ogJ&q+gd_u8|$As4kd%V_5TZvZ2E9Qb+-tC?C+BoY#mk3ElW~t%>iI{cFqFNmEn? zd?pv2v5pAkm`&N)*_vpbD2kUMA YL8KiY8Z#z=yyC$^wrzMNOync(E(&XO_Ax zS6H8 6J;1vTTy`Nr9=kIARiI? z^!S8?wXiv qWb=Cbcsu3ZXjg@bz=kM!Ma4Zp`AV%lJ^Lu6QV)UYtX;oeYxDE- z_6aj!O^1xU0|O8A_4R!KrP+%uM`-su`mW2!j~`c9Jd5sNU4(7qC=nOuq4hl6Dr|G_ z&6~q4UQ#D4EZ)4>&(2 u;oGHrbd3(eV z#qNn3N2_MrrD U z1xFpy{f{x&WT{O~P2Go}))4%BAjEG8eQBU04fET}J+rfgqVpPcVd?JY?Hy`rshUc1 zooi;lM&|>vpq4I$m>j$sdyIij*)iqCZLZ3yDrZ+$*SZ|XoHb(iMn=rYS`zg(B_=BS zW`?e9qG_9iDMIorch(?3e(=r7u#qqp``YP|&SO_b{T9z8g<0F!Jix@hkN;PHTfl%n zf#sTndSpOTeC4Cnjk3{<^aK3nosTvP+r0S!%J#9WY@^scs)^&h2H{ZZ*o=&f?w|;F z?b`Leyj+Gv99^=B@Ad)x9tCe0{Cdv%oWyZ63utYNo$4~JlZJl&jP`Qp$w7gpMP?7e zQ8{t`{P`HIDX=d;VcM}d-q^uOmD{8oX$-UXX6^daZSgWbK0beTArt-P>({T(X!8sd zN2fTKto{4(#A^m~=-~ApIjB?22?+^9LqqWvr^H=52M65&mb4(^`3PEZa9m2i6Qh#) z{`2S0l`qzwX9v?=gwec6Lqp>kZT{=Dw6s=8*o6QO4?cVlXA-nrji2;6tiKMzmktRb zx?HEG*`j@;G3BZXaM+5Rg?T|r3tIbojG%aQS8Z+W%b-7>ddDbEXxZ=b^Ov~`joj0i zfmpYeGkbCewudT9&Hd+3i)fY9@^c*CCBu;KG=^H FIS} zdjvjAhYRos&Aaj#OnMzy8L#p{SC>MsJzj? sI6? zVv?iN7c58GB|mnUVJ#cag~{z(yJn43d%HHe6&2+m+}^snx`t|$b-Niq6a**S3$+OM zHmM(Ac6)+2E{mWbBcy{Qi#-z`8m4fwLk?B7R?lo-b52g{7&OSGl#k`*E^%=tSywM# z&@T%v^9aIl_+cTyBx1K2dGAz k~%<;Rl`A8@o(*C$c{KSbDi1S<@h|_KIF_fmJ+uHCvQ@`x0+J(!GDGms- z6rjLOTi-833S}8O)O(WA2pQXA#^Gl`KaY&`4t{ ?!dU-Leqx5VKHIa|5csJU=^iV<4?-2%Ykaa&3d@H4BUA(Nt4oV-8AHVe=M6TgPVu zuHrjx`uqE1&kx=gzlD-f7FcaSxgWaZpRT*(bp_D;kay1PGAv0hX5z<13}3zzBYG0e z&~$Q01FMnz+TZTpM>F_V7kgdSa#^+&&=`GtvjT+>pPWq6NpM{>5x}Fu0h|Q8UlJp4 zsM!3ajB{O4U`Z5gu6Ka9j{^c8<>nrRW?K>OrW}Kvi~C$ALV4`(zbaDhL0_NItMG8f zd9bpZ<$;3Dch5FXkM-Bn<26o6N+wwBkyyEM<+Z619hiQ#l`jt8Q{^~$ x~OLx91azU)iy> zwUsi^ZcAW9#tT339g)?Ao+TX;W4z->QVv7sJ|-)R({hj)N!KhbC7`72XMUj6?6@Ed z@tQu*mgP?C_2U&eez>kj&wK?$F`{YW78-)8YpHl84Cjq%iu3Z80L&!zG-x~4yz%AM z+rhy>iykLv*_Vr3Kw2<;QeyCur(|RbU|hRH9ngRTGc++#i1FFmpiq{nf2ui|#k%TS zeWq>xywM!aB+$u2xJpPqum4z7^bQe6*BZl*X^INLeNaksL13PEdM?Se6RlDe+~rwx z(5UVpxdZZqot+R|Pr}i^ UWqxw+nZiHak|UY%F@y$ zJbX9mmz-H3o$qMn5 lfK(av(ZQR9d{|{@H)0_>L&ApddFO7A>Uc zNSFS+EQtCuZd-gI8) AM=$#l^)3ZO4r!Cnq;Iet Q8=o3cR1>ZBNNZ*RsP z=`&}t!f%u&-*o-#C+g3GVCi}e^=zZ=gQqneQ;bPl0xiA=O4bT>AP)}vA|I1poF!^6 zDQBbtHW5>P-@bhZp%X(}rK(Rg;mc4r9~0eUZJv`LYS@ID#4)AXuyLbC`^P5|OY8?a zR2$ytugA@HEa z&hKBVw7Yk~SyKG(2i>a&4^|2xNP=yDub^&Uy~Ef?pBC~%9vF}tB ^8l`}Y^qN4Kl?OUG!md480CI@4)j}?7GQe)Nd@G#qgLHXro#kib#0W&kR=T+VD z#*G4)tPnK58j0Y)4CUqJlNj+VcXB~^hj5Q@$+@_+5!;v?76`d?yLa!7R?pd*8|dFs z6MJbDmgvzo(fL?+CByCBB`>NC&MPY$bf0_l<`pmZ;lms5(lUz~80_QX<{k!X&-*>F zbSrXjkKxfsx$p3!j^TaDUbrxfBxUmjq0Vo)qJr0ZHf-9j=rlWP7cy~RE-6{gEUjT* z{psgA9l95aN=pwLn7eNiHGUHm6~&G#at9P=xOwyD4Ul_Mrmtl8hMf&|!x22Td=X~V z`}bmbtEXjTWZpW=*#!1yrcG~qnwi#&d2RxO>6El|9xB=e7V>7V=908MPfnqy+(9{B zhMZcLVHNk)LG$>u6QltGsBl}M{%WQpYbZm=B)4E#yMMmGHSjEr=>R)>9&TV9CgTq} z{ChZ^E-0^!-QC@k(~i{IIy$ZBvqwz7FLh($zlEl(RphbDN60$y^PQueZpZDhje_$v z@BL ynl% f@Hlp&@y5o+>W;pv zt)(ZY7F`Z?N9gHkpM&p)>T^}05j3w65fQoP=2ifzzM77XoUxq(0$ZSMTDLgn$puf; z`1oUbrlh1iqYXKRJ3eoH`gHD&vokr$gt}-{-f{_W#Aq+T9a*hiU3WizJVgR*6C2#q zc!w$+7UrzT88~s`gv6lAw4Pz4(bcOc{R7M{l60Dm<8Z(a8JHuoWNg-mS^XU$#v8bo zadk;)@^!#^A1 ^aR#9%-#U}p>uO{8yjEGSSd3#J-tInhzaxDMeGITn% Ne=Te6wxRQ|KHlW+h(WmuUY^Tmi L*O=s4 z9Q1ckFwV)zEd{Tp ^E1|_VxF_sOl!GKrAzYv4Mt$033Jn@N86f znA%0VRcJZ74N-)+Raw7WIeY`syXjENF}aHuHOP}>+wnu-IS)`v79F9K_i$f_K(M!O z-%i1JErdbb&{r4{nr1)4D<&p31TCu#q&~soi1-(=y&G1-tq}C#)^iIzuD>=`J;x2y zeR5_d1f3+gm_se|9*P8d;4(EewU5QcVi;48da$U+&Yxe4h%}|8{6aQZ^=I%fijz$E zab@K#*m#BB6-?-rw4ADMDXtQ?ajG|&o5v?7){HLTzP-&Nc1Mhxv#$<+bv_XD>eW&P z28QJ{G(72%6{;d|)muOgmakZG$eO9ltJ!dl2AKFJv C>wbfkkV`XE^WcbYFw0)Yk|~CGA5q+TCp@nj|h?f z+!(M>=2cPiEhu$q=eKl#6)?tJ08W%@vRS0ft$RHS(&_%wDz;6BsSSk}RKWBjD^8ft zi5qq=X(|~kaj~QJ(fU;+b$&{tQ=)q1Om^_{B CVO0qI>Jnybq46ybAH#)>?=CAyVtQEooAp8^kV9`FWmF)7-PHJ(5h%P*S{Mbp| zac(0{K50m3#mM&DgTB%NOXE2DS*%)?LF-PfxeY6q$ww>RgojT<@R^>}?i~hH!2f{L zd>NQJQALXwC@uZ{G$tk{dA8Klca`~OPKC isblZ3D-Vt%| z05jG3r21@oLDqHX{0Hyf=K6b*-23>N05W936|-!3^lV<|0bC!lpSGY_>FxmVoxd9p zzyvLE35Ad&A}!RVTxG;(nyjR3<~7><*EoQ4yM%(%vxbpz6(b{Kz!B5ML~=+mX?DAJ zZ}}r6rGQAqOid3#ig7_|cPsi}0i4y96atdSlhD)O1x8&=338a$&qNZ7;)GxPIoQ07 z&!nk+`)w-1MdQsnq;UJsGTe?&j^{rQ?a &51kdk9^avNYc-iE=q4L^@D%=abq9|a=s`J*12MJ+GxZe2{# z*3&aTC$Z#+fPf}Uf_wMxw?1FJW5=rAx`dr8SFM5)24M8hW<)G&A^-Z 43d>6rhA=u*1wcrnac4s4m%%{`>du2f^`| zvye`AG)8{s_U*Ypo_tz&f2mDY(@+z%siAb6cxs*o_?tsW@9y}`AfD0Qz4znhE})&x zPTlT<|6Z2!e_j@Z*?b82_z~qdnC{1;sx^_CfVjSdf|vZwc|NrB;<9c_g}z7n;vwM& z8#iv;ENHnOVEH!cr44N?nQ9fh&Lv0_$0UguWFoJ#L2Nne?%i5A^W<9ocx*YU>9Fzd zh1v14(|m6F`cf(?A^>0g?_qDR{w5yDP+8pH!(8abe0$Aetbnt#^N)r!?*D+Ti?+hT za&~v8!{0UsY>T-#Iy!p$G#j_g`xSpncjQkcPLaK&TmODUOX=(HRaI5p&n)q<6Y$W- zXEU6yWjJ!+9#`s94rpp>w)FO{f>`n9jH2RZ*xI+CUcIZRpqrYSS`PLIn%LUieILLJ zUjKT0J`qO5ZD23trI(yMd2$0iy-Lf46cJut-fO0&t;4MUynpn`V@LM 84Sw&kq2VeDu4|3h=BuOm^y-(9_4@enqto5H)KHqY zdr2*#JbCg2idO;b#MZvPM~@$`Iqr+LcHUkpw6a|!!U4|@x$qh7?R(1GS(d`i!c1Y2 zzAN^n&q5$D^mv2 !Y(Qre3ec3F(!>}a!&Qv;81D?;MkhNZv@TS z|9SNhULHl-5N%aLQdZE?N?f}ZU&KXCO$|djWUtuH9WU9!sttx=g14e$BwFkdFOy+Q z8YpRkpcHShT>R&5QjQ1^qscuv0UZ9RlEvr4{C?q&b-}w{Qu`{$6c9p$XeHhF__#y| z&}@8as>#UUOEd)5UAtbO{9IN<7^K@xalMk&53H5GH(#2rV*bZs@7TdrQd6@DR!$zg zXDu99KY+si{mf!n@G;uW(n9mL8_0u4$=ff{gWnx*J7Fw+_t=*{!dNh>R0LLg*8RBv zF_Hjc>(;ODwY&8bH?OVM)9Yeen1FzME~@&v$caAiS8%_M=c^44{$XK|D>7IX5D-8p zJdUSdAXIg%Jd7(n OocYMO$tt_F8RH-`r6 zx4-tv;fRO`C#ZMlm7vDL@%udSR4wkLr6n(HtRjI`D_5ckP~8{T n&Zn z^fK&Qmqgs!08eV8gM$M^^jw6$dhFJnNCr{?Zv{-EP|yTF0e9hBBKHHGy|$Wx!eZ2v z$siC|9^VId?1
mWU zLxY9#JTsFCvG+XOTX?IXK{XRMBh=voqq6E(u^7;#N5o!Ou90#& ErzD{1pXWVcUJ>wd@4EU?7kn4Jfmjz>?rR?G0 z;LW6Rg4qy)egk*+J<2@Zq*(+~b{m?SGmar8x2kHrH>Y}RaxhZ5gjNoXkAv Z$zEKT@hzeD*kA?4BHHUH{HEx5B^5M;#MKL#sUHYP1l7x%dK}9ybUXs zc1n}{^0ZEOozm`3wkJBQY;2ksT$6w-Egc=skeAyq6S$uCj@j7ZJ~kgwM-gJ35z!Z! zp11f6l7_}c(s(GjxSaw#X#1U9Xw&fq)%&pH8UP=4NqTgUtRBKUybQ&SJOepi5fOW! z&LGgd!sm$T4wAc}$`{ft-8_qXW{9RiNCGGzft%=8vF3~l3JNHr2)TWC?%dfNRHqRe z9R|$< %2dit*@(Z{8IsT%FTOk#iXt7zmEVlE}C2{dGLi_N+H)}~^ zLQY @oTQp)+|n?;3H1OvS_~#n za58}PnDI_8skK|Tx`E&^i8?TWUZ30NrCVY!f)NfxOpK#h^c#Y-z+88_@vi;jggx hS>#V@Gfgf@kp;I(GiLYbYLd-C}49l8 z?;O2&aU-Gut4sE=v!9{$sJwERh`N~D=auZ!E;L)>6)8vR4=KgW_>xWeVf^=|kS2ud zbHc48FJHb~452paI&FzI7g5TUl#~DnZ)Rj 1Sk)4yhFL53$8)lhRe3W4RzK;& v7vGMV46_WI%I7;MKGwRxw(g%MhA)JVX3veQ5L0oBD-{?K z6bU}R+CT3)`AL|Gh{18zbl2{_}2Obm?GqWMhL6-DpggKpYdO}bRF#9Gu z{Y^gMqZ~uVvKQuUh2U4BK*+&BZzeQR2%ji8)~RZ0n$Q}6)Y3^jJ)-^hk*Gc%@;SG# zkQ!s`1Cl-G FJW^~obcXvu&^uwLBh~*hJp>p z8Un9;mnBvllBEQh4+zxYgUr_B*j;hUJN;$PgdpdlPPWgDm;H+}S$jV;Xd8QsAyE)H zx^Urj_4R>y>)aD%yDM;>ws v#M6NBp8U+(+WK8dNmNjTYc-Qk zwNIiS6Z|A9<25`R{y0lylZCfqk{pC6V22x1iL*@TG}3z-Fy(=z`J$0W!p1G9?Ag1Q zXuxn`tnu+Fn+=k;AipAZ^e6?NOLpt~cTK>^?d H~CC)6P-`(sfi)jNaW_ zyR*kNs&l@$q~s9X`~B+KOq`iRi?Q28m8`X1e{;?IgWURM(|6YBmb})xTy2ni#H@We zK45GuG0JfY5Mk;9X699hRegss{v;@fmN*kCskAsn1yC?$4YPpNNPntJGv5t~{7GP- zEAG;K0ar`cJhqdcj)I&RaW7FTkAs8Vk;QC5D Qe zgZ_qJe+L@_D1q4RBy8~f`Sw?#p)leXAy;uKt9}_3l~{OHE6lvjT-wWVNNt uLo2VxNr z7Vv6LKzPt}V7m?UirhC?C-(f!n+-_L-9ix~IdiT3 uwiqI`B=}zA7eJhw+b9N@*Jq?)Y-Flr9y83s=yH1?pZ|8 zect7;>6EA%q`1He@;r_1Mc)q{S$ElZUG?3oY@;60>&-pWBo9d6xN!tIWNmOD<&A$* za$NO~Mc}c-;;&Wag?|AVYd;S$KrvD2L}#zXbYK$lWTOA@W?CZBz+ >wf~ zpn|Tip@08@;G#SAcBD5$%XLB^M-y$B=+dCf1Vg~&%C50N;Ym!b*|6ab@L 5bj$OG8tgq?nPw&79X5I0U zn)$yRJvhOppu)-}yv7apaHIaaf`Wo}-lnD|jM$GbzM?_NZdX>y=FxDjyZ<3Rd(HPC zO$+2_aF 7ABv%AJqY0Zfxn>kD4$2@#2e()pyL`FjQh#b}W?T_`Su7$%HLm^aoSb*%qfS8E z#`ByvoCBVO&-f*S`MmVy$jqfa{^DaA{*u~(_(J^Wb59?2=l`tb+jv(jyLK%zH8rI; z;WK~;zmqt7KSCdXjI>-xOe}W@o|S+n4A$t=7>uxE(XlmS&}ml_ kJMG`Zz$;>&@q9yxVV`a z7haK?@)nK&Y5s(n<~DW&?8Wj9eP9fgy l^i47tNJ}>VUCl4#l%E%qvIlAPE6MyRpE5-K^IfN_sHm$+lNtT z7+CM+?cF^0ZifL|%`*a#md9r|XsfMjeAmGGvh#9e@1Fbj?-LQ;?@K$nD|sG-R+93? zYDy#;dPi^nt4jDi7JHG4`w4CX>njR8WlP1UDiH@C3W9_Vs0(S`sIW_et_fe#lRHO) z?+wHiI5@(NYJ)a~Xn?_xh?KPS6AzEY>gwvAOBj1(&z+;t(|b##njn$)4}@CP4+vzF zwUw5Z)^%T0B*5Em+;rE~^-Re3T_p)M uDJT%zcq~295*M`5Jpwm3E^6xBwoSfWq zP}i}b+sl?MgCTt!f>TRttA?B 6cWn{D=L3dSdzQUKA8ek0Vmn$PSne?JpwpBi( zIm+f8=33v(4NJ~+?rLNo*Yow)w)cyg%V4ys3QA?IxxuUhzW`_WsG_1`Ob34b)@io9 zmUp-P4?Lp| v13mwilFtsAPXDO+^o#V7Fk dr@C6NY0ktrcb znj|SDMU$DNLPZ0jBtw}}-Oo4H+WVZd&+m8taeJJz_S$yT_w#uV*Y%n%o57NpkU3T9 zaX$Z?ZDyxIc}@_hBHA0wo_>f9KzLdUiC0lk(OOtakw6Wo!=gpD)QVNMlRtvMMT(pk z83B}Yu3te!y?17)P+zdAfp$igpg?UU;iwZkY)-flC0MqQ=3v~)Q_o$<)CX{v4x?i` z$ZK?iq=#&s2ID4bHgI?CaHD?Igd~8Z<3|60wYeN8{51Fs>aH%mdU ${P4ax?2xulQ+2b@;a%Z?5-zb8{aLj}|oF;zr;qM{O}uXcr)nEwR{b zAOT`6`apO!p|chc5laZkw-3FI=#4~14FAJ+s{CW*7{Z)qWBD#ADcK5BE_~Ri%awVX z(B~c~!D(F!2OsCg60`%2Ck^Ge_3wJ?9~-xgTWKkvn}7p w{L$F `q0ZbWHyjf>da zrjTOmh)?F-yB%n{vV=B=>y1^&+0YzUgmYHRoWYgD9oMcMb>-mAWgIQPi?X0>_{M*J zwK*ScGk9yAxegEFIxg8#*d5^8eu|1M&_NCS0>a|WTMv23F^1T}Ics_+nSaCSPsz;g z_pN+enpPXhWHuwTwI>?uz9=yy4`>NB66)hBT{%sl^#F$3LYPV>BSi`tJ&@y0XjrI8 zbf!&fDJmOQ4VtKDdF3$?UrhbCZ*Tsy#4<%*0P`egq51bi=0D>X 1g%Wr;bn%q3iNFSn={D^ixcZvSF3c`mBE;lJRq>e0Lxkz*^rzA}}#*FQr;j zv^ywF>J3@-80y%gGu37WXDou=j{a2 AgDTyIHz)Rb8DW-`AB=#Z^VcwQ>&Bt=vbQL zU`rP-GEzU@%ojc?g!c1hrL7Nf43>n247~krz$HM%x6e}Q7o|sJ&U-#+S@EI34(l~V ztFV9dox7e^_VXMq?Nxi%$1PiZFv;_e1^1o1aT`*&tQsRH=7iMgZ_Yz}$vM-rGM7dY zaUUxV9I|GJvGv4%hv&?Kh;|U@2i=_@?fAijYE%Tj_{ybq{#}m2e~QwFd%d+li5DcU zJ$bVZa}a&adn8v&!K?&o`GC$Q{jEM6A-!rg=~*@3<2Is}Vk?VYR?rS0C!Eo86U~n8 z+I2Qwu(=oF;$|Ow 7Nu-S-6suDm#5^yscg32gEgoUIf5_*xv7z>i~0 zgLo@gqws9CmY`rN<)zIwPE`le$^r%I)or1b06 zs2A!|y2;65x!2OuLyUzP!%y(Wzp5bsM%4fg!Jf|wpFYhW+I%a?rGH4~%%2Yo_9stb zN?7icp$9B+xPxQG)GuMz97gRp$K2d@)gT)#!0lQmw+e9XFy|A<9pF&2qRU;TMdV!v z9$!@qeUy0l@|1qcnkL6O{{daKcHO#j@mDTfc=%$r5>Ot$ptvJ%CQ*h7V}wd$W&4Jy z`7c1_7hGO908A&p#ExTCBH=3~KA)aGf3DEBZClSez_{YqJ$0I{?8$oJ?AF+OVf^>2 zN6{zyT -y 0Yuz~JEEn@4Beb)XfbdcU(s@9e<9+rCPQ zMsaa*$zkoc{L;g4^a}tJi7DJxX?3+*0lPS7dpQlyT1Q6#MT-U>F`ZZ!w7dU_y-RoD zvu+?QUWlMJY}l{_W`{g?HAqZ9pobEilqzo_joZ?g?+6Z7m@r|&c~l;*E35SAikzIr zxV$U!BG;i5QdA-UzJLP |!jUB~O0QqP*7&3W%1H@{w}=}g4VYjQ>z0oYI=7x(zQ$?M(F?Xu zRK!LEl!~_;{iPU&Zzp(?mQr9jVm2LPW8 RWGnhtv?L)Q zDb!^G5~GZ|cYLC^FfKtq4lExsbf^~HGwwzY)OM%PREX~>Swa=XM!7D4DrxCI`nGV= zkQdT9 <{u3HkUmfGSFU{Q7qpxK!G>yEmD|Hgk4Yqx%$f;RYf$L|@xu(S~L;Kcg>q zvZ 7XBl!dK6*s2X@q6x4_<3s*7INB8``yy3v3zff&PHR?a|H-rbGL0cwL3r=qY~) zT_Z{uq+P9|jJ;W5S-t0-TJZ&`{u1(jXii!$(TF)}t$@$T)@f0}#Z@`|Y>N`RAeW$R zk8zx67+gx10fVvN!m_qPR3)q|6DC}_rx96N@6pHn&g~>+wVV479d)*{-# 9HLa>70BuFwRNx&-LO|L*F=fFj2S%4)k2n=Jx&jt=CozOs~`lHQ_v9(MkkTi~BI7 zdbhWChq$RdWMt6g7d+Lu`<*(z^h~Dbqk_(3SJr~*o;qXlN$cYOR)wDFNdGU{s^?On z!t(onT!%^$b9FSRMv!?3N|^f`N7s`VlTZ^^ZNB9h5@Hn;+ojlBGuYAnp0eS_Vx#(1 zwu=fN2|b0sjf!}jYwcjP?u#mt&P+;YZ#>}IH>(1xx&7jE{zo^hP90ypRH*#Ptlr&o z`CDu5lCG~_DWDSRXZ`Q8oU{9^Cmpjb?tUW~%{@dUu|S zayLld#Ac3mon#lF7*D>LgsTUy^w^S C@|Y4AX+zkI7T(qJe*H z#b8Hg=dnc_p1{RZ-rrcJLdtbV2@qI^9u9&rQyZBd8S_0W6Zu1%zQUEpzoaV %GJN`2iJq!M8wcT??HNt7Ppuz@I=ZXJ-r5>E1l0OFx3cEMRfFJfh z*4lF4|MZ=ka$k@kG@8C LfX MI<~dykB#TGEeuYq8crqh_{ozzxim<)KWP4V*ojF=e|)u) zczAnzFCA!&b#O-LL$l_6&b8LzND=aU2@3k9R#t{Kd>dDmm8Z_$0-uwyJouBw5&Jj^ zuUwgcc0!PFprzt$6FL_t6KW)ZwKnR>t0Ce-Wnb|96Reie(6QgnI 1PVzBy5I+ALrV5MB6Ji~&=B^&InUBtj-hIi!Dlf){65uU6?t9#ZvVn7uP67@rm= z4d)^?{APn#>1LB@3o#yudV`Ch6@Z(Tv2p&y0vmpPb$fKkZH#J+4N^6Zs;}f%dUDg3 z5t)9C&)=)}Cz|Z{coVxKBNlg~P`bi*`m4p7-u}`yUjNQ*%`pRE>|Qm+t*>yH`+R*_ z_Tn^2dWZC}e|Fa2erm(qEAP*>vb& n8Wx1+$ z`KmkBeQzF-Rg3nGKbbUeZp5mobNBY|eO;2CHmXPSRL#wI)O_x&^=kKZ%cMS^mb}`u z`D$>_t2Ijx-T%_C(K}+6<)`t|M=b~Md;G(1^Ks14y|ybZZ-eC;M?U}9H7R+&M{Aw2 zZFH7 >$0?%FL^7*$mP6oQt}@zCnt9{CdMRxe7?n`lJcsmSzsS>zSDIh zp#YcBKj`0-IeGGAvGk~ yo0esf=k&=mf za)%BS7P4~e>>27Dc3hhCq__4Kl?Z$;s6s*HNIp|^Dv;4f>NIHu1p_EZsM$ei6457o z!bw$oIf%DI4K{ttmPwFWr?7pnqN(~S*40BK_$g@K!?K~v;*s&*fqQhh%me-aK@gL5 zbXxO{o4eYxNO2)<2V!mBxlbQ`?2Eb2Eg*x5tvF05p5epDVFW11`c5Z~%~6!KPi*ni z$1;|%*`U;RIS0(5R#2`Nk%f+N Z$XV217_In{_n3n zeOq#D=a8JU!`B;`q#ikP^k~e}ad#$L#C+(b{9}XD=k?aT{#g-iloiKG%k oiwQ+J*@GcfeJNB_g8V(J$y+Hp#=_sw>GFIr{qu(R;*(fik$S=LJDqkx(4Ug_WL z;J2)ePF)+FmhG}9Sw!d-t+G|^RaaN{C@*iWp`o^$+r%Ct7oFz8CnafAR#uAWhyBY+ z&vq;;DK8gI4732ZJ17O5^68I>RY?#X#F50z)OGZoE|i$*fMKmtsvGIH1UC4irm1lx z-5b)LoJWsNA4_i#Pz4IIH|w&Lv!?|S&0Dqg)`L!u$YB*;Yzo`8W>=9@0d^D~?v|N1 zI^dpr-;DPvhiVjn?131Ey4ReGhybP#&F122UL}{o1M7IcLtRn|z?*$S*FJro*#+fU z!!c5TJ&Bn#?y;?Er13D&g2&Y^XsHC6LYXi?S=nK--5)bg#g;opBu?_Ie10Elg@bgK zl~u?`cRhFY#y#G ))1j^OQSED!?={(Uzi;yWi}}y3pT1}F z@#^4SeN_i2#iZKQeOdEobnT}|ZJKa8Bo*L6$MG_jW8@CJgb>lMH}61EZZf9h=sDUB zKc*+DE~seA`*Y>a-=_sZF@HJ)mY@=O^ZNCit5elvr5a}XoiD6b`cgei=jBe$iUF6e zIpiGbzmy~Yk9e~v#c|{ID;5oyP#fBAhivZ^afiQucjegzNh|T{lSUN0ani3pmuC&{ zjz+%k(4o5%6UPDj1hnvu)&vvUSr>WFHRU)$qQK^JtE;PTz0F%Y 1@?=OzNa1IfWchfryXfc4FD;LI0<`V$?aDIA zWIjmV+Hccjqg$P>hfm)c85ucg&GXzP$q}hL8giaJyVqJ_a~d8RUV6a6gQs%ez<4H| za+x?`f@e`?Ps?SO b6KV1{0==+yO{X@$RcFr*O{$c#yVl0!Gz9ysBLK2)i|PiNX`r!n_>J5 zOH)zz;-yQLaZg6cO3j=%b&Xedx6-rHr8BG(C#YYaYeCbYF+hjnlKwp}%x$DWWM^$d z{;Uw%#>dBRM#cB&(IbG9Y0l2^^Io1hbEehyYb6&KFIn=ZS=2$WH$GWU#QYqAQ2#@3 z_Mmmh$jXxL*3BvCcyYWVVIBZdeW1%e)YZLQsaf9>?C#9Pivhs$jU*z7aL @FeZ$ytR6 zU~a;c4SlCJr4T|@klel?;7ahW(vs=kv-UpjmcBjXOvV}6BlZ^`2P9r`z+j`yXh;rQ z9!5)nf6#V+Btc~#?d*lk-`0@{)*ULReBJQVRkFJJ`hK~Sg13Ah!nJsXOwzQ_slw+Z zqCF5==2$&fUGwY?H&?(dH9`aX@G0HiHSr+7!Q~+H=)ehx%F3Va5=+aI^Gmniwz~Dz zH}UB*qecH*_XYD8`zxB6nVmO_8l$FWrFvBPu%4_`E7nu1?Nh?X W0P(f zTl=&%0`SdlZf!es$jr_bR?g*zLn^hkwEo)P?dOsAVi((T`Qq%i^_DMGj@}gu$HF42 zh*SA&c(}vN>#xnKGx&q78u;cM>v+8*W4s_^!d|r3xxPcnXLDG5`~h@m#7}k-U_a;p z@f-stO*#(rYZbd-+{TZJU`trAcXBHRa;wiXHqOG(g;e3C*P!Ecu74qi7Sdw}0`x&g zwW
*PM cmPOj5g zVJXe_JVvjyFCf4vCAqJMY_k^)Q+J)zwKV+w51q1)Sr53p?T$UNju+n#_YviUfRiEd z_tNA9TJ@Eem%sIqvawB@5^9wfV%!Wp4D?p;rAw-$I~G}`0*-7TLR>gJaG~KyKY;vq z9rnseUs5kz*bfvYMvRI;$5^*|7r4Z996PT*9#YxTKf2{N-*$gr^QUzDmbLc3In~h6 zf8F!E3(xWwUyTe6-GR1aQ9YpFfvMswe|fchrJkN%!t&@#RY`Xop6_$&J9V+R#!XFi z!3Tkxf#CMh0S?Hakdg_~53{X#^F|l&j*rHDusJ5|Ttpd6D|{PpVz0IsvvR9@G~Mm%*X-y>7zarSk7xRAkDJruprr0q$T; z{E076_X`{wn7+@KD&nA4jS;V4e_&uXK&h}we|LV1d}S24JBN{ko@phPl8Nv7m#dXo z`=6Hj`;}O>SZlOHKKjOpzqJ6P FL|Cq=sruoij%mo;l(N-|UR%WoCRE9j&RT=J`!hur8bD$FJLAbg*;5 zZf?kP=XPU6 Au>|uKIK4HxzRL^+3jx4?FNT%r>n6V=A`K&dv4b6@NJT{6{MT1A~Ejhql7Qr`C7v z-TMx{-@(I&zo6xVkl~((u5e1;Gd;v1Il3xM?9z~s?fLn}5HdlRym#+j=V}}GL@*?* zb>Sn0|9n~<_?=Dh*!GhB?ZU#s51&3c7OMUI2!CCYQX`|Ynzx!6W$Z{mD+yW(_+2+o z`u@5 m`-RT`-H%_v-5BvFqwU{c-PTp{>Tqt+ugoOqx;D9o{N6Rg(i;I9_UM4CpMWh%v04 z%CklelT}cVuu#hbe~b9t7A-` PhtWWUDBj4nru?isIITB z=Un8Mc^}7de$RK6>g-qfXEUnl4eYui&NO^nPF>^6J@xCJe@GnUS1C<{%E5(DFCg12 zDt~oQa=nGZ&Ye4HKsWg=QtlhA;GL<(rH}4sW*N83j{Qz^=g$w_9Q)?wOL0W06+3l> znL+NpmDL`m=mSAs^}}cCVsUkoO#hylG>~vQ__zRX#`A&12-UZa;~|AW`W-m%n!iV# zO!CD!MZ4Mq`eEgOoI(^EZ#G*?>kl+4^YS;jx?0AY)#tr>2|z1wJJ?bB=e4ERTY`_j z4w#HGZ5q0_#cp-og}-N+%4NHeBS!e9!bHs6L=`Ng@ez45iI(hMH=k1WeQr^a7}tG` z=4kY?p#u-!T>%b}MZ{2Rqno#aFkGvUUKe`qU^=qy4|t`{MGweWdnWhISMrc=;yKzh z`>Mj)jJGHOT=n+$8NB`4WSC~iYx&wsI}(kfokj85*{yHvkc aSpShDV+ {Vs&nWCWO^_hW$Ml;A=yWXyypiMV@@oja+3uq+tgOZYGFL&KJ^1JdG*ApqPH_}RcWh&+OM_HY=yl)Ok zuEh=o>Jvp7((v{5O6S5F0XaWCoHg=8h(g0IBK~mb%&@nQF8uJhbljHyo(etPWPTq_ z4#ga<4~mNP93A5frKdSMj;6O6av3hbYLu+`z=f=s+6CMC4Il0UX*^)x^?l>;jv1hz z*wa?VFT*Rk{>HR(TITY=LTEr(6UoJZqQFkgkp1tZYu)efuWMjX!2vNqUHvdwRCs04 znWfyjKh=B|=`3o*PK3cvMj6kdQIQ~q*YB~WRm+yn$%o>qB6U!fpNNd~;Szt@+m+D} zw8L{hx0jN7`{A!SFs(vO@)LMiACbt+H7DUJ#$?S^OEk`M3l{cA5ZuDm@@d3!xk*4= zfG r>c&+YW#tRJR{|G&fGmFCIusgoJ`dl zXc*jeoW}U^^apI6@gouz3|AU?p7S5 eNiee|S{f?TeWdlx&zVaW6&1YN%OUi{+^iu0*cJ#v%4 zVL#IQu&;N`3|*%#BP}OaIY#NBv%*e}Zpg4~2)_D9gFxosCWL_!^r3Cnfe>NM%y)l_ z&UP$lViTayyQkf0qDQ9Xlqh3=aGB}TJvn#^IC!qyNZ9xHz4ra?G8NDzk0-Xq@5b9V znC2H1y>(g93xvaH4-R-kdx4(pNj5&bHh#E<#?#fG+xE?<%X{?bh02@jb3a`FFwJJc zf M)_=E%jSc>Ee zdQ qVw@h(1`*-PTh=7t*yw^x+$ZPfG>Hl!7&VDRx~i8HrAo(&-sv%snqs9xX! zmZ}^Ut_lk6-s F%OfJ^9wCo2W=I?EmF<)7_Oj=Pj^9Fbgh|QUOosUWfS}L|{+twl3{?D#K z>Yv#?wD=#y;e)JZyj>i`dP2RJS0$!r^_@5|#UR@;&mDAzyPP|r|DZuT=>y)gK~oBb zj!6e!lTz3p@OSO1*2e#)Q>JdWf&N|qqi QS L^(B(WQx4 _ujLP9U`TYT54dCR$l*Jj_e`{jP1b%@;20b@%RFfzXVSWfxD6 zDF`X33OYEJX7K6Lb46?ZseHml4jWm)Ek)BOY8OvW>E6Bdr~^235$^A%wPD)@EaZ0x z@VVudz3#BZ!d<<*sY<~<#7hw{hPnA2p0|*{+S%Eqg&wv+8Z;YM2m0~lR4yoF{R09N z lc0%^8hlo+9r{Bcon~YsOARtO{ iX)ZJMyewQeub3#rY%b1Kr8QZaRbWH+4^4k>mX#d9M%-UjrvR8xi5ytH9*r)l#L; zv+!(u`XnSViM0(z{1_npw^U4G-_0lqCO{X<8uv2tW!kQFU5?5+^&cy)AgMLKub^;o z1$k_u_z=R9g6gkS{-WvU-=c4Pz3V&spU$LgsEVAgzHV1hT%0WXc)DG71N_Ny(@mR_ zZ(q{Z)@Ds1`8WiNhPwuL0imv@muqGmTN_z(WNPW-g4?&N epSd8p=Zu~#31`~Puo7849X7z z`-;o9%6ak8yR9bE`-sY;idyTHODX^!7o`Xj5Ro$!#Rm>dBkHoy4P`{3vvs`L<(PTl zh@AxJz}JRVyUuI@L}Yy2z=V4rR_k)H!LEqVu*bsz5CD)Ds^kh6ol|6VtcXg>v#wT- zZvFjgj^W#cix-`|bEvG4W}TSe(!J_^af|*P<$OI^Qd_RJ)2g*s%o4;^se$DuX|LJJ zk9;x!QOSkL`L`p|o(gVo+itUG&%V_Vt!ARzy+QYE;)L*i93K31G=1jL>nC)i=E{ok z>}+}Z!V_B(A)F#Mu*CIH9jsk_zJxJWmY_#eMr*;y_8mMpot4fzAs1j##mZl2@%M8a zPb6j-N1N-yR^eKy*$9kadU4ghTo=C=X353T!yU~PrD T0K#!e )J46bmuu#g89nVenuUDJH!%0Ukt&A&WKIKKao>uxt%Njtl!+|P&( zhO8(a@a^c`71-wkDsmn?C{fMdktp3?`RC$wmp&TEBR#o7G3!i5C|qyj-Y$;6K4Qi$ z3K%_LhU`5G6=~a=|M=qGq$a%F!g?vFcI=C7L~GadzEe{ghXu2H`-$clYa_NHEZX{P z7Sv^;Q)ZyacK2_A?xkq@$~a+P(Z!4zGX|lY0f=lu(Yp3%iGO?yOckR{N}zf}c{sQt z5MFYJI=Q$!eDr84KMMydw&krjhd)t8e-N`Gsrdvp%mAG!Vx!~q0f`d+Q~Ko@TD;`R zRJs&LbTNa3TbKPm5pgdGsZg|5Uw68HZ7rgu=!S(A31!;LhA+=6Xvsmn?*(g87H<-8 zs?hKzLf!yJ1$g`f Yxlf+l D|60_?Ff3OP6T@ZNgGu0RczL~NqSF-LJnNKG6{z!ctgQOe_e;zZ z*KUIkNGhI0hYysB$L6!kZ=PbvkT<)(_sf{f^@qAuv^_kRoF`9ok;1@g4im<#wc#JV zuPvGLH0g)K;@WNnZf?&L%?)CM_wJp{HvpAL3!Ul9_bFbX<`N3HhMxV8K&2(gG_=8= zyPis&ZYg?u*+xax0jik~#z 9II$+{?;nyuPci)SDm!z zMQLXW*Hx=lB`lvZ4+6-0ofbW$HnE+yaD}(4DrI< z^B^Z@ik{w`t;bD}-4Ug=1Zl8@rn@WRKmfqo)rN+K%5uJ&@jVOaD#YQZPgY3KsW3a8 z?WASyb=-0^e-rXlOj!3hOV36{F~wpJLf>X<0Ug)E&;appEjqeRV4&nA`P8t)cUARS zFI{&xz=05?b_+{D8!4#_TUFpjEe;_HoQanh1%bDt1G2$eTksRQZ92K*_0D~=qLcR2 zq`sJ~JjVB*gRxIgbo3m-Jn-;#O atqa! Tq$*yY@N# z|3$n g)?z@lW zYNRYOShD2A$HO%rvs2!Th_3&Bb?GSC4V-miW?ZD=v^tr3iZ6kc&wjfud)1gS=>4$v z7Mbw{&p)}J;F4i|&PpwFrx1o3zJP>#QG$G1Q3;lfZ%}WNkDfoF)2j+oue zn=szVl07xfJR;S-x$@rBiv9<{Tj@aXm*!Px^tN2q^HxQw&vj9l^D4h**eB%TC?2u8 z>?5=bi?H~q;{hWqV5oB)T#KAjLgww*tUSOYaUUfW2!z;Z9DoxCE*3{Ih3CwVJ31H4 z`4_#PTy}|ziA h$SQtn_wZpU|wR#ZG)sPdmXmDHu++4cqB z0Di+Y-(CFAZK-R~{q%IJ8y4n$?afm%SCD>Qc;7iN+r;3*tC?#YiUYrN-~!auZHq5W zzejqlOg*JuLuG{a 3W@-9Ooh?s!>(?f zy{j~ux|1{;dU5lCYs{jIVT|x~6z9XsLt9wfyH$Pm@ykP{kta_!^POHk#@mb^%Qzx_ zal_>+7AC#zl6KdCIzR&6HZ5~CTfea$GDB&l$LOPX?d$WOJn_1_!vBkWUysCV({yw` z!6SX#srh3YuT=&5h-7~%<`jE3%4*>Rru`J5r#M(>xcAp6c)Sj|w#$aiN!3C#lel|g z_p&VI1@3DGsP2$8mp-Z`HT&a6<2GNY7O0J@WI9D>shy~?>f2m>g~2bdr}*ma*agEW zvz!W_*(Zb;M=%rd@a;=QzRP*>vz9wJ%)ene;O9ck80E52Yns7L8I2%6uE@Zf-RVFm z+WBFA33x`i)~*V?+08 ToylE0L6EQ;RzhDOGg@s317AVC;t`#VuSTq22ROdy}$;W89MDHj*u&b*IMuFun zNhFOOM8rNsw?8nV2rJxvEe*`&=DmBbs8G;>!G?*VQ*otvOUiA0Pe)OUVGe(*;xN5U zU(df7(L&hi?yBMrgNPEt8ER2u-$vQiVzoI&Tri*UyCzC&No74>=ry} (|?4Iiu=S35>FP6l^>3NjWsqoBJToGUz{+)u?hanGy*@k z9+4l~QDM>@h$VHW*PVH{hxE?$$yTA}8!~usnyqRGj2PX|m@xrha^~KPcO*9ZXE$qa z%~|DiZeD3(UBI#&4nsRt2>{W6*z5b2b)j-%t>EB+DR ed@?PUg6@b}dpww(^qn97 zha^E%#Do>Re`*sG3(eD~9tpy3`|6~!8N0}SCwbx%S>ZcaccTcK5)?@sI3X+p9Gw+b zFUk&D@JHnutvSER)SOOP%@ %9@e^NL4|tFM`tq)QTxrxC({R zgRvDMIlGGOE2tCh1ZxIk%MEMS=UtWx0h(Vy)DBPFqzZ`5F7rcN%(5?v(wwKOEfsKV z?5~ z r{W?YFOjA6{{Q{?DYO87vN%{Kl%S?uo2R*Qh~Ifi#h>% z& T3LykkGVj$r)TW(BKJ&B9>)K|#40o^=qWM#fXYCSdTO8lnW2 zKr?DX9QEue#2c oh!2^+lzX{kXCQiW}vn=udjAqA+Bq4E3K$jly zKC+{83dsSL#$E0lU{~1BZ$Vz?6Yy;bov)}}tKe+0*i!mE YZi^u|NVP%9l_>4LsU$m`$$-}7?z>PB;3gDyS!H;TpQ6@Vv=0BORMeM$ZR p zi6vI&3;>ehlHo%azst=XJ2pB?g<>7;g3Hr)A07A;S!79K;HhB1fB;g!ufI?G4Sr>G z00TO}8XwxWTi_rg^W&>{Q4gYg;k4+W5Bx;2f$E9ZKArn9T2s`YixDf#%<~oyOE(#r zd88jsMgh#(whToNBr3zjMML79knqL%U3};Cg%Dl0pZF^EKpi|~%C_7Kgd`5@-X8`S z+7~>knQ)H5#CiQo577st1r$12zMP_4K-U7no4Lb_bFEoj*htDZWLGo02YGt7LVpVt zHS?u>>mdDts-$QrQ cTj2Zt9RDJwWEyL+2t4SEEzS 6CQ+%cyZHbPnRfn)J~m}Z05;)Y5SoL~FM zb_-@^i?ZV@J#jPZ-k@t;dIqRX06vTzxWFtbj@F)}5<-<$p!3Q?ECRhr**hD-1%;+4 z+eDayfO*L0oFc8_A=^US5t{B-3#x^DfJ=vgE(VfSwze;T4wj=2PYZ32*uMUGbNs${ zm;!MJ+5?y%6e H!eoE(8ZD |Y2-UfnTkNDj4~tKqzP*O8A!e{*04wfrQ!<$Y71 zPlf{&r`2$o+hf&_Z>LOwg46FYMamP2hs&(5Enqn#KdNi_Y)%O(*e-9C5_G@fesGO( zTm4 yf;bfai_*HH{>%ujo#aWyA6cJIIB9g<(# zjtd6aPSivH70^mtJH+(5b^M|n8&Q?f=KLF;rD0e8OT@xG$U9ko^y|!B&;ACLluy&U za%Qvs^}CPY_6v`S3cY%D(dE4Sd`{KMi>cJ`lz7mFq3fo(x+Z-bhu9MijDi^F*V?0A zBbm4OBDbpUn1=IiKKsxFDv;*Hp`|lzNC@n11q`8}wvev&Nc0qhA}*j!#Y)45c~d ga0&GJe^PWHKpZb`#cbaz zxPrO=A-B?~c5m|CNm&u~p}<8^ob}*HVZ>!&qj}@YtK;dCgi@Bg!zZ=_2MpMO8i%Xn zFzI^uOZ$%+HODmY;KBTI4gZ^`FUoi8mcfz`u49q13mJ>+bN=DFp;XN*-S#x9JQ0zG z1$-|^$2Zw)49vZRS(N{YbF;9*t@rk26TjufY{^97NJaH|>k65!T0X<6c&>cN>NSB8 z*#)(U?)8N~NqOoKg@^SWAj3s?K+2+JqdNc3&Rf67P$^Fe6=b3mBl@?84IN4r2gz6+ zDnDdAcvQG?;$!9f!f&ux9NTI%CfnCd=<69`BQH>_sf%aWwo@K+v%<7*No&oo&9E}` z1->UTf*M|Mx(BM3CHbup{+0&0_NI(Y62r7f?;FI+12p{n=1?>b+mU<^k&;SnMZZc! z@UZ902MrkDz`#T{DB6jh4{W-0@1FTzg)-=>LT$ym{CBC$m=jiBy#jr%{({jWqQk>= zb cu?D0f(>eTL2ZS$JKRvYWtf;J+#`C?!LC9gmZ5*f*7Gq6xRx8 zV6(uPHTs8Db_mTfgM>s&L5&*YxMxRV>`SCh6t;#i{x+Fg#W3_AF9vCrvhg9=aFj$x z8ipGQ!8158cM-^)VSX`;rszb;szC=JveJOfZmllS3!NuEEmnAF_4&^fm@d_p!uc`v zIY#EhkLr&s+?Cc8bce^s@7{rqDkC>HclC*WsFqlBsM2Y_w4#i^Bq`y45F(Of$~EqN zn(XToEL7vmi@6tQO@&{QG(U;ZoCsl5FUj+!#xI*TD_Jg?^zB7gXl7K8O()`4s~i>% z{{;ZF>x-QOZ|@#O5fX@GH7?FDJm3+ySF1UVXJ7^}-%;kgz7$n#9~K`Lg0QoNGdj z%`c}1+o3*wu|ZLF#aTa2l$Rg1wgQRUsvf;?&ocJGvuE#W6CRd+EU^6L`fw_Y4lBr< z--Ki(;p)QSGJ!q1Amc@PCgx#3Ie2%4VdL?|jS~h;S@XI|&V6D~^7f637T+u0IPt;b zx3j^iZhtbpXR2&O#-8AEU;96H8VJ_9yO**6pyr@&K*7>XM9tf(iee sMj0QMetCCbqFYw1rUa{= z^kl%7$f@woP$$M>hYWM*kA1tQPyH~D@x`g7P+uT|r#expQX`?X3V@dJ(EL%_NlYvg zVIxIMU`OvEglurt)NKNBKrX@*b|n;6_wljaL@p0>syJ|<@Eb5PU71W{XB pnxKz zaG477$4tITbnmeC6~dB%FRl!NV
DfRT#O zDj$gbPjEFdXha*o1veeW-$c`XgWui=3{K=|bA 7e}^k(E 6YqOx+%n+8Vf8TXvQ`gWFEP!*-=#?-))b$>pj*AhMg z51*@%RWpBfEpOJnR~bC`#+yIxML2)h`a1gL$!#c*9SSVgcd$;TNfNas7iwxlVQL5K zLdew!WQ4(NK3Y0)-BWAmV}s#Aqi>?%(G=5ufpXHgH-xAQY+)d#5kYb_J3$E#+bDb) zRJCn8by`UU1)U@jq5%YIprzuev4vlL1ud~6BuZFh`t-Sn690_i$j=uS8@N8Lp*Rsf z6y5{6rCX#J`LG$Vt3!0S|HyXdE)!n3rtdLLx0>qRoAw|(gfRY!O=e}N{Q8(o&O#oH zAYBUzG7kuWFGAG!ytX)W|L6{z2~iG&{@dc@K 1fR?T6Kbp13Io`MW$XMDuTf^;vzS5v=~Q4$u5k*`Z7ti&2!0ax(SYSAcgPMz zBrUu+Vx}Qvqw}}WEo&&Jzp~8NcXu6>k@tb8gXZgm(X5`fRNN`{REM85=_^_Hc`?^i zgqD{s7X(pQvV^k%2fw(a#b`x}O8h?}YF%{5+`uow!;Y8n+HpL1a;6){ESind|38Xe z&?-cl#qXy4Jtiu8lIp$14aJ|Ly)z|&q0@x-5`dklVYy-yJC2=iIeWIea7jImp)R2w z>FWoCD|@+&gVB>=^qI}9KA Zukd}P1v{}{|E6H!Wh8Znq}}nkqct~A~QpHM`*V>+c;4%`riKW z?GxshIs27L=KbaRf9=p|U2|I6Br+~8cSs}1GVRN;+m7pbAlqFQCFkbkoIF-AG4oJF zMNVD6u{sN>_EVxAkKGr5E5;i>*l4ncxMs(#E!nDf>d)xQ`=kT?D*D9^ncnU b;*sIqpP$SF~QN|I& z9Tlx++?>tIEBFg-5=BOD4X0gV50&GbpzsWt7cPr_2xR8vyX2aI c7+g zI0d*j6u7r6;eRS+PEc#5yZVSr{(}REV>h9`?sQoBzu|2q52f~?GAkqU-%`xjm{9k~ zkR2mN7fS@-#y%C?J&eJb#6-Nhxm7kf2O W>*~jsX1~sbraz( zGv`PCFIJ$Gl*lp-hm7Y;+phUs6#v9_`?^J6#(ujTCYvl!MyRBv{FM^yC`TX!BU~o* zb?xu4(F-EoT2Xc6KGa~oSOG&jYtLueuU^TZ=%JU_>5Egz@(@lr7%Jgb!(v$&%=wJ~ zVrYGMo;AHMt!!UzR3IgX+anS>%gCG=zQ@;BAf*Zl!Bt li`KC$;#e9N0A6xA?S111&9^tvUA9KN`f2T z1e3>Hv8{EV#Avr~)TY9hhH9W7UO{VD1W}p!t2=8@F(NHB*!XrvI{|G0NdI`HmU<2C zv5?d9)sKvgi~`m@XTlNWKfLxKb;mO(WiobPPv&?@9?%EMKRUa?^ TY!k0JkuW#j5mCdB2L5UfHup)hDr;wagaF!%J hJKb|{x7-tz0=D7a+y{fBnt86v+(psBh zF#x0X`N=Rx<6RMU|C{2d$8S-lat7cF_0cr0(S%?N{}H`IRZAaAHaa<7+&_mp<}heG zwpbF;hg7i$fr?W6?u*yF_Wp`Ep@@9m_*u=b&%|4(gr lXw$E3|ZBj2SMgQuRoQ&yo*8Ve^? z5!#A^vnE=*uJX;DH `w3y~Hu+UN z3M@D^%p}Hp7|(}RoeB%7FQEDn;ChbjRz`>OKOAuhHI5(-!NF|Bs2}d1-%W_ls%=vE z8sQdbJ7gw7>GR}9w7EI&rnHt^aO|>CT@SyH^;MoU{Ze0_5u;_N8(o~O5Rfw1LwWZe zBk3n*dp~Pbe98V%dHYY@%lE?zK7AP1DNp^2Tk5;Q%NiyX<~3EW&77U<65df*Ha9pv zVPkm(w9bRPyoM6JU@cwUn>H _7D})eAcTMJhDT<1yaGpKCAgeL_qx#oM<)J3d z;qR`RaE+CrgpFy?+aK&+>w>3K^5?!_-OV>_UPYXaxA?>MXstUUAjJ#fUk^N1?KSB0 z$^l_^7cAxt(0zAbdfzhFFT+45yL8D5r|c4ersR|Gi^91z+praKbW*a@9zK*#N=ia+ zuS1URgD?XHG424^O9wQbkWUYh&Q9t4m4eOz7c(SCN1h_Fl^gAzi?Avh4PhV=f7Pv9 z?Oa`5e^~9?wM%iPi;F5J(t8Tp>rbD`!FZm(crk;B2ocf3VOU15x#2^Z5OSWUP6RW& z@aOikU0~zM`2G`xkusCLk<7M{_d2WJ0Ola9TQC~i7Nxkhl@H58C)}oM*RF?-93cfq z=k>U$wM~R&<|ocRNM05gvt+Ag(~qv85uVA(^}Y7oX4KfhgU0i_ vVQO+U$8`pgvdR7RXYjQ&>k*RPT4K1;WU^YIHEZEQnn*0VoYl!Kb&Yy zDhlR0?MXPk#@Tw)h-ZV~6)3YK #;(W0gE2*4MH9CzieOH{^x}>IiTLsN6 zKkj9_e}1wOs4dcUGux3V*FMw(1;z{Zbwj2^`4Q>Tvdc-M73c0&EqA_OoaDNw;L*;D zv%&hr;WJ`HhqR_BzfV`|7xA6;5b n{P%kT=FD+-^#hvLn!x7U=DE#P(y&8SE)WA zs# $bMntp+yvDZG3Q}SIFbku` z!gKS7c^w*ZfDlQgqLfWNIAyirz_?q)_!SPE6Hsp=a+{L1B@v`vy !sp5>kC8$j&}8CcM}y zpKLru$=(~?kNNoe_C*H9e`SYkd2lIj;(D&fsuvqA4D;e+-61BnA3oeuJQo_?i?&as z`TN~!++wWr&UGh(Vr^MQTcMPLtIdnn)80P>ZE(NB0g^+94wWDbz+=1P)G15f1pj=O zw&(30Hjx>S#gDqf?}IVMf=E}3rp~rUZI3?mYcRcOebhG4NOymIoL2ItFG}>LEk} Ifo2SUGMF^iZuXvr+Bb$s>{}ohj?O!GR&nC842AJ-?K!*V zHa9ji+YK#Ll hCj%|cPWJt}Gh;aCq+-Q7FBQamLGM7Yh{yFCOH-)kFxLt9QCW0V3! zPx|tNmIC54*5~SjeU-BjjY!t2s-JQd6IM|2;V13HtWXbs|E{%lb?82QIDGQIx`p9- zm<)2mPk8RL!}^+M)1WwWF0M9|xZnR69um^LXV1gd37fvx4&k(IVQ84E)=os2t!0z& z8NT~Y8J=fnQdkaPDn*wwN=4=S+0-fGys1FkNUOQQ<`TsX Sh75Wg_&_Zh64u3D ze}8QbalP5Imo8cI{$4ew94b?cUM #f}Nl#|y^R^|gz`7Q<;k=b_;AJOZVc7_~xL?jC!q+Ba?}6JI||5u;Y&adRF% zyv`X 07Z-|xP;mx rpX|kDw8<=zEEQJ|eVD^T+$`Q}5;L)heM``U@zV0_VJY z)0V{K bahWwc;x2|#9Z|1dOz~- zT!3kO5}SZzjrbIq8bi|;A5;}oyz2{Lt{4z33;H$<>QQJv*kfO0$~p5NRi)idq89uM zVe-ru5>?4s7Z(v|40MrYc6XO)vEvu3;DWKMO=8YP`!*Ol-!D8eDGVpXw?2Ob+#&^( z%#2u0^^+l24(!|4g$OPWYVrc>QT`V%&Dv@g7u&vV+bKL*>mrjMj|ea%aPqHCmG`gi zw)3|$G~=c_%uRQ}!N0cg?M`X0sa&S6RkxHZV`a&r)TXn0X10KXej99S!Lx)!_ohi= z{070_9mH7?7x$@GA=@hN+zg0CS;@JlWM+3H0qV2aQbR6yoS4miG(5|PZkzP|*s}_| zg7 0|5b(6{S-? zd}2RiI(n4&_^n0#>RpNRT5%eUopC={QwWZzBTV8S;>vzyGt6QFG+X5dsz8xLPb1kJ zuh+Q)N<&SOALQn0^Yk@Wt(Zidq-W%XHsx?aq7UW Z8PT8nm8y-ZSJp_mjNdcrJ$8KqGW%0L_k9aoG?Rz(H zF9ESSL}jj301d8~6T)6(vx(b5z&Wq0s!~6XW1ty-vM(IdiPMVVNUt3jvxTw! z6p+>V^XE6Lnd>=51h67?+y(`I!o8_cD|=%Ew1Ak_L8~CEzV0*^{v E9xm`4)C!xR}~t>&uf*|IDG6R(o%KL z7(5A%^6g|gM1*W3OP>zadPLQ3H|MJr-Z3i4#;?tr=zSO+B~k~4Ku%2Dge_ibZ|_Ia zi6sE_hQ=T2I4Ir&Y^9Mj2|q%5QKo?5QR#wxCJYr*gDBRJ!?owQ;RH;}$Y? SMeWs_sn47{z_mp90iCy?k0Nx@l9w$`T8@`34Rt281=px4a9Cwh zWr)I;XVzau1t?f9aox*yP#|pJRx}@CwA#;k^*cK)PF6zL1l%94@dYhVien+NP%)b5 zD=@{$s3>2aj1Z~QTxTH9TAb|3o^&lgMr03nQgeDC5veP$;WU|>UyNaa^kFZa;-?Tz z0#0!+K36&+`hpK HB97m%%inHMDUJ*O#c6 z$^R)sZ$y#rao|9A;`|!3q})1~Le?mQO`*A-|9bG$c~zXwf|wxqLyFd0EG;Tf>e+7# z6*SSpi1L$Ej`J5Te9u^|yT7NL+;xNzuVtO@L4{Fj#~*pqXt?_M)rlnA>|itSdB262 zOzOMe38+m}w^!@mjrZ!EX1p3A8t*{5m_<=hG03U+Dc2rc5EMn&vD?arn!UY0&nmrf z_`VnW4mR4(#`9na2KV)4;9`-J4XVHN#@@cN%9bra?1i8f9Iy?u2zYIOF{X=XWHA8- zos97F@tHH&`eKSRzBqW}Rs#nPmD6^O-3iq@Wk#lG7 zOwn47Sj-;e<)3@U((19LsbResltY-Xcniu%6DMr`+FAUiKsBtr6ZlEQntO0!3Lsl1 zo2i*-RnF$AZ``oqQKj7O%(8P<*eS|I?aE;!nwp@X4&%p e{rf6fAHHe*v)wCL_^yV(TTSr#67B*@fJ`=Y4z5TH`{kTlQ#nG!u+ozu z(sTRgMVgKlG07Ak%|#;*)7k^$@?@l3{POVAX+iPBk6j8 vPWIQ0gu6>; z6kY%6K51wfyf8eqllPjjcKy4eYcx%w*QX^d73UfY<3xD4X|)T}FJBiX{G76aW^0|a zwDkiNyFMJnWpL2an(Aph%m@5nAot VpmJV;}Xf&6ioDe9?-wX zf`Xb!fJ8*6D8@mtt|jg b9!2u2vDIn`0K)j z|HIasfc2cWZQTE|SGFi?gT#=mGYw)yDp>}l>`OETnZ*)gPn%?k&@f{y8kHs4_ZCYu zGsLa2j=~sCjO;0?_jCR;_x-%@@pc@~aX&Ld_5c08-)lL~^E$5?D+`mypQ(%{umU`i zbSwEC+eS?jXhBLp!{j{+=%^>!(}~N=Z#V<~OKR9;R;v-8W=07^ZHk?04c=GGgOk^} zDH5p(8-O5ra%M<~o%QnP$g)_OQiDnE+D-#k?sM+H(uB40Yx@3Fd?5NkV&Y70XXjgw z;Y)TseMh-H?!;w&Lxh_?IY(%*^QT%_MIW(lcG8~f480Wi&m=ZK&wKQs&BuT4xkf2w zzz5QSTc>RT%8Upn$(+01-01m!(~w!$JFr6W(AKFa+!zDkTe9m1*8`uN$9Z|)3jr=b zlf00@+~ZRCJQ|xoUiBGQ_VRSUg4>5Vkke+(Iv2#2AiUcAFTY$k_T-!(!V+^vr{25- zj4^rp?hfg4+M`Q07WF&iZjYoHnETW`ta*Lf==gy?-rl)XB!KmO5Pu^a7(41UQjP=u zU2)a!O3T`?a^=cd*RO|%gj4`p$=W-nn~b#yM+KYTuR;#%U%+2S7?Z|%5YC`bPG8~1 zj!`YM^G#iB(gCE>sb%deRiGeiIR$%Pg^BdA3nt%XdEU(=y6`;C0b8@N@zHg&=^n=s z6pv>NYB-Fit8EmOVMS;xb3hmbW$AbBG)^gbVb1v1;O#Xxm0kSxR|}B7vmo%xsdW8F zzpqzs@aV$gUFA1|>^|lJV;)?)0oJ7bpk2Cl1*<4M6x7tUx;B<~gnJe??(@li`sp(_ zrvJjAn!}flub*vzU98g)kR$zT1`;P<-4T&B-9MBFlvf^su5I-JZ5==U-ux!lW8KVA zj^!WP`pwP#I^eiYRU%0h-dYH`5pw$UqU^$?y~BOh20dc{^(@DC+`AD(U_$+_mhb1! zihCJo?dW}+LQRV_^`7_q`t0(ARYww5%}jjSuyhFK!Z^m#teP5F1rZ(pI-%ZHozs<=Dl#E=OHKi> m!Sa^xSXeriFH*97M(e>Q|hbbXbk@5uZfZe#Zehi5?rJFwWIexpXcxy76g z_2wKj?L_H5?^RXWae53(* Hnvw?jG3vhPRGxFW{jw8%AaYs~nAN6OvzVZEb}~f- z^mt_^KNiQuwcvrMth#e@ZXF~pD(c7tlHkgTvQh(9gstF4VJP8xxzj6(8cac|Xwx}} zU|3}D*SX&`8Q?=lD1`C(gN&RFZYw<+M!4GYafE8K&)c1R0uMR;VWt&W_3w#Iw_n9V zPF5hu1#*!m&D!vj$8ca+h^ezw?zP}AC 04Ia@U%<}l>Fz|q|GMB!jX?=1O%MLh8nR!wdCO| z=%61!XB!N#6~IWt-hU)L7X9U@!nNcM3fx4i=vDZYGOCeyxgGc88RCV`hj*19F}&~7 zxke@iZ2sNpa9CC5{ZA=i@c%E0o>Tl5%;oqu=H`NNBe=g>YNfM|aBEcI%XUcJ!Hu=O zjQ9&dWb&-=Xh<2_WC}ak`O_{4KeTAvr50BYNcQ}w!XfqeTV$Ovliuy>U)~$sMPjQr zP82*fy+14G^Vc!$vyE^G4HE`-;NajukL5k *dtvHQB+E%Rvs^ym?Ia*EUpQM}2CPT1B`vajbRp^q#S&8bXM$j;1%0zTmE5k*-@W zP*YBS^JGK`Gh>{osKlFg5o3LTE*S>GXwDKOPqYF^i0{OSK07ls%<@r>1xwk1dQV>b z)KmEZWv*LCa_Z;?wVRQn=w1EN>XyU-S9Za$ 5WB`xoNREMY7H8;m^j<_;oMrM@}0|yY7#QENRs}hcV3r6I$NKXpRFgCXS2_k z2I9iSi@oUIbBc} (??rPzsThSFX=GjPY;E85QTHRlw98JiWMtH zKIFxq)N_U`tjba2yPRQF3`HxT>3KSZ=emmJolJqlaCVBPG1R1TMDWw7QR2q6k(%O} zr=SH-S^-R|OuV(X$EAehQ{OUK;LjeZE{lr){ E-Yp)z* z=883SS`Ltjz;m*C=a0(rj}6+;;oj!kmnb--gy*u+-mtW>vf2^42@=s zEOoUdgl%WcRu)d}#vBi2nuvdMhJ3=K59hRjSD0`rRU`64*eBH%9HIF9q8>}QB;2@; z{DD=s1}%)L-T%eGNqVF0c^2$o8{soqJtK(m(1lyKY#Hk_1`pKNBV*3(>I{~c@YXMs z)Z4Kyy$!X Qvf9nvQHWI}{JUf% z3 z+0rsXa3qF7m9-a-Ko|4#&u=cylsyvBozz*Jw~)aFB5Vbw{I#KtZB4hGJUm`ap~=5T z7&}j_OXj*ewZ1@j7fiwm8t0;%92(c&X~xENUFp}~bPp_TtW*io%@(Aig*{F)alNXE z^OB&Tv_^&hL(vltr*3aK_Vj`XglI8b3o@LlATU&o1pt%`o!Gujo8FAG-aV0mJx(me z_2gRzTQ5!-=E2au%sK_8i{_0Swd 5 zt`~8qC%WDHln2DcUL1U%WF+ZMLb)mM4Oy6i#l+m}_T8qg8<#Hi*l%TReV@2aD8pgE z0zEA*t7Z^wL^A