From df3f24f2ed282af31d8beb2f7886dc14071e1890 Mon Sep 17 00:00:00 2001 From: Thomas Chataigner Date: Fri, 26 Jul 2024 11:58:54 +0200 Subject: [PATCH 1/5] feat: compact data --- ethereum/core/src/merkle/update_proofs.rs | 25 +-- ethereum/core/src/types/store.rs | 159 +++++++++++++- ethereum/core/src/types/update.rs | 205 +++++++++++++++++- .../artifacts/committee-change-program | Bin 324204 -> 325256 bytes ethereum/light-client/src/proofs/inclusion.rs | 16 +- ethereum/programs/inclusion/src/main.rs | 34 ++- 6 files changed, 387 insertions(+), 52 deletions(-) diff --git a/ethereum/core/src/merkle/update_proofs.rs b/ethereum/core/src/merkle/update_proofs.rs index 76376cea..a3883e70 100644 --- a/ethereum/core/src/merkle/update_proofs.rs +++ b/ethereum/core/src/merkle/update_proofs.rs @@ -6,7 +6,6 @@ use crate::merkle::error::MerkleError; use crate::merkle::utils::get_subtree_index; use crate::merkle::Merkleized; use crate::types::block::consensus::BeaconBlockHeader; -use crate::types::block::LightClientHeader; use crate::types::committee::{ SyncCommittee, SyncCommitteeBranch, CURRENT_SYNC_COMMITTEE_GENERALIZED_INDEX, NEXT_SYNC_COMMITTEE_GENERALIZED_INDEX, SYNC_COMMITTEE_BRANCH_NBR_SIBLINGS, @@ -20,7 +19,7 @@ use crate::types::{ /// /// # Arguments /// -/// * `attested_header` - The header of the block that the update is attesting to. +/// * `state_root` - The state root of the Beacon block that the proof is attesting to. /// * `finality_header` - The header of the block that the update is attesting to be finalized. /// * `finality_branch` - The branch of the Merkle tree that proves the finality of the block. /// @@ -28,12 +27,12 @@ use crate::types::{ /// /// A `bool` indicating whether the finality proof is valid. pub fn is_finality_proof_valid( - attested_header: &LightClientHeader, + state_root: &Bytes32, finality_header: &mut BeaconBlockHeader, finality_branch: &FinalizedRootBranch, ) -> Result { is_proof_valid( - attested_header, + state_root, finality_header, finality_branch, FINALIZED_CHECKPOINT_BRANCH_NBR_SIBLINGS, @@ -45,7 +44,7 @@ pub fn is_finality_proof_valid( /// /// # Arguments /// -/// * `attested_header` - The header of the block that the update is attesting to. +/// * `state_root` - The state root of the Beacon block that the proof is attesting to. /// * `sync_committee` - The next sync committee that the update is attesting to. /// * `sync_committee_branch` - The branch of the Merkle tree that proves the sync committee of the block. /// @@ -53,12 +52,12 @@ pub fn is_finality_proof_valid( /// /// A `bool` indicating whether the sync committee proof is valid. pub fn is_next_committee_proof_valid( - attested_header: &LightClientHeader, + state_root: &Bytes32, next_committee: &mut SyncCommittee, next_committee_branch: &SyncCommitteeBranch, ) -> Result { is_proof_valid( - attested_header, + state_root, next_committee, next_committee_branch, SYNC_COMMITTEE_BRANCH_NBR_SIBLINGS, @@ -70,7 +69,7 @@ pub fn is_next_committee_proof_valid( /// /// # Arguments /// -/// * `bootstrap_header` - The header of the block that the bootstrap is attesting to. +/// * `state_root` - The state root of the Beacon block that the proof is attesting to. /// * `current_committee` - The current sync committee that the bootstrap is attesting to. /// * `current_committee_branch` - The branch of the Merkle tree that proves the current committee of the block. /// @@ -78,12 +77,12 @@ pub fn is_next_committee_proof_valid( /// /// A `bool` indicating whether the current committee proof is valid. pub fn is_current_committee_proof_valid( - bootstrap_header: &LightClientHeader, + state_root: &Bytes32, current_committee: &mut SyncCommittee, current_committee_branch: &SyncCommitteeBranch, ) -> Result { is_proof_valid( - bootstrap_header, + state_root, current_committee, current_committee_branch, SYNC_COMMITTEE_BRANCH_NBR_SIBLINGS, @@ -95,7 +94,7 @@ pub fn is_current_committee_proof_valid( /// /// # Arguments /// -/// * `attested_header` - The header of the block that the update is attesting to. +/// * `state_root` - The state root of the Beacon block that the proof is attesting to. /// * `leaf_object` - The object that the proof is attesting to. /// * `branch` - The branch of the Merkle tree that proves the object. /// * `depth` - The depth of the Merkle tree. @@ -105,7 +104,7 @@ pub fn is_current_committee_proof_valid( /// /// A `bool` indicating whether the proof is valid. fn is_proof_valid( - attested_header: &LightClientHeader, + state_root: &Bytes32, leaf_object: &mut M, branch: &[Bytes32], depth: usize, @@ -143,7 +142,7 @@ fn is_proof_valid( .map_err(|err| MerkleError::Hash { source: err.into() })?; // 4. Instantiate expected root and siblings as `HashValue` - let state_root = HashValue::new(*attested_header.beacon().state_root()); + let state_root = HashValue::new(*state_root); let branch_hashes = branch .iter() .map(|bytes| HashValue::new(*bytes)) diff --git a/ethereum/core/src/types/store.rs b/ethereum/core/src/types/store.rs index e8a56638..f0a3a805 100644 --- a/ethereum/core/src/types/store.rs +++ b/ethereum/core/src/types/store.rs @@ -20,7 +20,7 @@ use crate::types::bootstrap::Bootstrap; use crate::types::committee::{SyncCommittee, SyncCommitteeBranch, SYNC_COMMITTEE_BYTES_LEN}; use crate::types::error::{ConsensusError, StoreError, TypesError}; use crate::types::signing_data::SigningData; -use crate::types::update::Update; +use crate::types::update::{CompactUpdate, Update}; use crate::types::utils::{ calc_sync_period, extract_u32, extract_u64, DOMAIN_BEACON_DENEB, OFFSET_BYTE_LENGTH, U64_LEN, }; @@ -81,7 +81,7 @@ impl LightClientStore { // Confirm that the given sync committee was committed in the block let is_valid = is_current_committee_proof_valid( - bootstrap.header(), + bootstrap.header().beacon().state_root(), &mut bootstrap.current_sync_committee().clone(), bootstrap.current_sync_committee_branch(), ) @@ -226,18 +226,21 @@ impl LightClientStore { return Err(ConsensusError::NotRelevant); } + println!("cycle-tracker-start: is_finality_proof_valid"); // Ensure that the received finality proof is valid let is_valid = is_finality_proof_valid( - update.attested_header(), + update.attested_header().beacon().state_root(), &mut update.finalized_header().beacon().clone(), update.finality_branch(), ) .map_err(|err| ConsensusError::MerkleError { source: err.into() })?; + println!("cycle-tracker-end: is_finality_proof_valid"); if !is_valid { return Err(ConsensusError::InvalidFinalityProof); } + println!("cycle-tracker-start: is_next_sync_proof_valid"); // Ensure that the next sync committee proof is valid if update.next_sync_committee_branch() == &SyncCommitteeBranch::default() { if update.next_sync_committee() != &SyncCommittee::default() { @@ -245,7 +248,7 @@ impl LightClientStore { } } else { let is_valid = is_next_committee_proof_valid( - update.attested_header(), + update.attested_header().beacon().state_root(), &mut update.next_sync_committee().clone(), update.next_sync_committee_branch(), ) @@ -255,6 +258,7 @@ impl LightClientStore { return Err(ConsensusError::InvalidNextSyncCommitteeProof); } } + println!("cycle-tracker-end: is_next_sync_proof_valid"); // Verify signature on the received data let sync_committee = if update_sig_period == store_period { @@ -263,29 +267,41 @@ impl LightClientStore { self.next_sync_committee().clone().unwrap() }; + println!("cycle-tracker-start: get_participants_key"); let pks = sync_committee.get_participant_pubkeys(update.sync_aggregate().sync_committee_bits()); + println!("cycle-tracker-end: get_participants_key"); + println!("cycle-tracker-start: attested_hash_tree_root"); let header_root = update .attested_header() .beacon() .hash_tree_root() .map_err(|err| ConsensusError::MerkleError { source: err.into() })?; + println!("cycle-tracker-end: attested_hash_tree_root"); let signing_data = SigningData::new(header_root.hash(), DOMAIN_BEACON_DENEB); + println!("cycle-tracker-start: signing_root"); let signing_root = signing_data .hash_tree_root() .map_err(|err| ConsensusError::MerkleError { source: err.into() })?; + println!("cycle-tracker-end: signing_root"); + println!("cycle-tracker-start: aggregate"); let aggregated_pubkey = PublicKey::aggregate(&pks) .map_err(|err| ConsensusError::SignatureError { source: err.into() })?; + println!("cycle-tracker-end: aggregate"); - update + println!("cycle-tracker-start: verify_sig"); + let res = update .sync_aggregate() .sync_committee_signature() .verify(signing_root.as_ref(), &aggregated_pubkey) - .map_err(|err| ConsensusError::SignatureError { source: err.into() }) + .map_err(|err| ConsensusError::SignatureError { source: err.into() }); + println!("cycle-tracker-end: verify_sig"); + + res } /// Applies the given `Update` to the `LightClientStore`. @@ -477,11 +493,122 @@ impl LightClientStore { } } +#[derive(Debug, Clone, Eq, PartialEq, Getters)] +#[getset(get = "pub")] +pub struct CompactStore { + finalized_beacon_header_slot: u64, + sync_committee: SyncCommittee, +} + +impl CompactStore { + pub fn new(finalized_beacon_header_slot: u64, sync_committee: SyncCommittee) -> Self { + Self { + finalized_beacon_header_slot, + sync_committee, + } + } + + pub fn to_ssz_bytes(&self) -> Vec { + let mut bytes = Vec::new(); + + // Serialize the snapshot period + bytes.extend_from_slice(&self.finalized_beacon_header_slot.to_le_bytes()); + bytes.extend_from_slice(&self.sync_committee.to_ssz_bytes()); + + bytes + } + + pub fn from_ssz_bytes(bytes: &[u8]) -> Result { + if bytes.len() != U64_LEN + SYNC_COMMITTEE_BYTES_LEN { + return Err(TypesError::UnderLength { + minimum: U64_LEN + SYNC_COMMITTEE_BYTES_LEN, + actual: bytes.len(), + structure: "CompactStore".into(), + }); + } + + // Deserialize the snapshot period + let finalized_beacon_header_slot = u64::from_le_bytes(bytes[..U64_LEN].try_into().unwrap()); + + // Deserialize the sync committee + let sync_committee = SyncCommittee::from_ssz_bytes(&bytes[U64_LEN..])?; + + Ok(Self { + finalized_beacon_header_slot, + sync_committee, + }) + } + + pub fn validate_compact_update(&self, update: &CompactUpdate) -> Result<(), ConsensusError> { + // Ensure we at least have 1 signer + if update + .sync_aggregate() + .sync_committee_bits() + .iter() + .map(|&bit| u64::from(bit)) + .sum::() + < 1 + { + return Err(ConsensusError::InsufficientSigners); + } + + // Assert that the received data make sense chronologically + let valid_time = update.signature_slot() > update.attested_beacon_header().slot() + && update.attested_beacon_header().slot() >= update.finalized_beacon_header().slot(); + + if !valid_time { + return Err(ConsensusError::InvalidTimestamp); + } + + let snapshot_period = calc_sync_period(self.finalized_beacon_header_slot()); + let update_sig_period = calc_sync_period(update.signature_slot()); + if snapshot_period != update_sig_period { + return Err(ConsensusError::InvalidPeriod); + } + + // Ensure that the received finality proof is valid + let is_valid = is_finality_proof_valid( + update.attested_beacon_header().state_root(), + &mut update.finalized_beacon_header().clone(), + update.finality_branch(), + ) + .map_err(|err| ConsensusError::MerkleError { source: err.into() })?; + + if !is_valid { + return Err(ConsensusError::InvalidFinalityProof); + } + + let pks = self + .sync_committee + .get_participant_pubkeys(update.sync_aggregate().sync_committee_bits()); + + let header_root = update + .attested_beacon_header() + .hash_tree_root() + .map_err(|err| ConsensusError::MerkleError { source: err.into() })?; + + let signing_data = SigningData::new(header_root.hash(), DOMAIN_BEACON_DENEB); + + let signing_root = signing_data + .hash_tree_root() + .map_err(|err| ConsensusError::MerkleError { source: err.into() })?; + + let aggregated_pubkey = PublicKey::aggregate(&pks) + .map_err(|err| ConsensusError::SignatureError { source: err.into() })?; + + update + .sync_aggregate() + .sync_committee_signature() + .verify(signing_root.as_ref(), &aggregated_pubkey) + .map_err(|err| ConsensusError::SignatureError { source: err.into() }) + } +} + #[cfg(test)] mod test { use crate::merkle::Merkleized; use crate::types::bootstrap::Bootstrap; - use crate::types::store::LightClientStore; + use crate::types::store::{CompactStore, LightClientStore}; use crate::types::update::Update; use std::env::current_dir; use std::fs; @@ -639,7 +766,7 @@ mod test { } #[test] - fn test_ssz_serde() { + fn test_ssz_serde_light_client_store() { let test_assets = generate_test_assets(); let bytes = test_assets.store.to_ssz_bytes().unwrap(); @@ -648,4 +775,20 @@ mod test { assert_eq!(test_assets.store, deserialized_store.unwrap()); } + + #[test] + fn test_ssz_serde_compact_store() { + let test_assets = generate_test_assets(); + + let compact_store = CompactStore::new( + *test_assets.store.finalized_header().beacon().slot(), + test_assets.store.current_sync_committee().clone(), + ); + + let serialized_store = compact_store.to_ssz_bytes(); + + let deserialized_store = CompactStore::from_ssz_bytes(&serialized_store).unwrap(); + + assert_eq!(compact_store, deserialized_store); + } } diff --git a/ethereum/core/src/types/update.rs b/ethereum/core/src/types/update.rs index df9ab372..d10f25b1 100644 --- a/ethereum/core/src/types/update.rs +++ b/ethereum/core/src/types/update.rs @@ -9,6 +9,7 @@ use crate::crypto::sig::{SyncAggregate, SYNC_AGGREGATE_BYTES_LEN}; use crate::deserialization_error; +use crate::types::block::consensus::BeaconBlockHeader; use crate::types::block::{LightClientHeader, LIGHT_CLIENT_HEADER_BASE_BYTES_LEN}; use crate::types::committee::{ SyncCommittee, SyncCommitteeBranch, SYNC_COMMITTEE_BRANCH_NBR_SIBLINGS, @@ -16,7 +17,9 @@ use crate::types::committee::{ }; use crate::types::error::TypesError; use crate::types::utils::{extract_u32, extract_u64, OFFSET_BYTE_LENGTH, U64_LEN}; -use crate::types::{FinalizedRootBranch, BYTES_32_LEN, FINALIZED_CHECKPOINT_BRANCH_NBR_SIBLINGS}; +use crate::types::{ + Bytes32, FinalizedRootBranch, BYTES_32_LEN, FINALIZED_CHECKPOINT_BRANCH_NBR_SIBLINGS, +}; use getset::Getters; /// Base length of a `Update` struct in bytes. @@ -368,6 +371,183 @@ impl FinalityUpdate { } } +pub const COMPACT_ATTESTED_BEACON_OFFSET: usize = OFFSET_BYTE_LENGTH * 2 + + BYTES_32_LEN + + FINALIZED_CHECKPOINT_BRANCH_NBR_SIBLINGS * BYTES_32_LEN + + SYNC_AGGREGATE_BYTES_LEN + + U64_LEN; + +#[derive(Debug, Clone, Eq, PartialEq, Getters)] +#[getset(get = "pub")] +pub struct CompactUpdate { + attested_beacon_header: BeaconBlockHeader, + finalized_beacon_header: BeaconBlockHeader, + finalized_execution_state_root: Bytes32, + finality_branch: FinalizedRootBranch, + sync_aggregate: SyncAggregate, + signature_slot: u64, +} + +impl From for CompactUpdate { + fn from(finality_update: FinalityUpdate) -> Self { + Self { + attested_beacon_header: finality_update.attested_header.beacon().clone(), + finalized_beacon_header: finality_update.finalized_header.beacon().clone(), + finalized_execution_state_root: *finality_update + .finalized_header + .execution() + .state_root(), + finality_branch: finality_update.finality_branch, + sync_aggregate: finality_update.sync_aggregate, + signature_slot: finality_update.signature_slot, + } + } +} + +impl From for CompactUpdate { + fn from(update: Update) -> Self { + Self { + attested_beacon_header: update.attested_header.beacon().clone(), + finalized_beacon_header: update.finalized_header.beacon().clone(), + finalized_execution_state_root: *update.finalized_header.execution().state_root(), + finality_branch: update.finality_branch, + sync_aggregate: update.sync_aggregate, + signature_slot: update.signature_slot, + } + } +} + +impl CompactUpdate { + pub fn to_ssz_bytes(&self) -> Result, TypesError> { + let mut bytes = vec![]; + + // Serialize attested beacon header + bytes.extend_from_slice(&(COMPACT_ATTESTED_BEACON_OFFSET as u32).to_le_bytes()); + let attested_header_bytes = self.attested_beacon_header.to_ssz_bytes(); + + // Serialize finalized beacon block header + let finalized_beacon_block_header_offset = + attested_header_bytes.len() + COMPACT_ATTESTED_BEACON_OFFSET; + bytes.extend_from_slice(&(finalized_beacon_block_header_offset as u32).to_le_bytes()); + let finalized_beacon_block_header_bytes = self.finalized_beacon_header.to_ssz_bytes(); + + // Serialize finalized execution state root + bytes.extend_from_slice(&self.finalized_execution_state_root); + + // Serialize finality branch + for root in &self.finality_branch { + bytes.extend(root); + } + + // Serialize sync aggregate + bytes.extend(&self.sync_aggregate.to_ssz_bytes()?); + + // Serialize signature slot + bytes.extend_from_slice(&self.signature_slot.to_le_bytes()); + + // Append attested beacon header bytes + bytes.extend(&attested_header_bytes); + + // Append finalized beacon block header bytes + bytes.extend(&finalized_beacon_block_header_bytes); + + Ok(bytes) + } + + pub fn from_ssz_bytes(bytes: &[u8]) -> Result { + if bytes.len() < COMPACT_ATTESTED_BEACON_OFFSET { + return Err(TypesError::UnderLength { + minimum: COMPACT_ATTESTED_BEACON_OFFSET, + actual: bytes.len(), + structure: "CompactUpdate".into(), + }); + } + + let cursor = 0; + + // Deserialize attested beacon header offset + let (cursor, offset_attested_beacon_header) = extract_u32("CompactUpdate", bytes, cursor)?; + + // Deserialize finalized beacon block header offset + let (cursor, offset_finalized_beacon_block_header) = + extract_u32("CompactUpdate", bytes, cursor)?; + + // Deserialize finalized execution state root + let finalized_execution_state_root = bytes[cursor..cursor + BYTES_32_LEN] + .try_into() + .map_err(|_| { + deserialization_error!("CompactUpdate", "Failed to convert bytes into Bytes32") + })?; + + // Deserialize finality branch + let cursor = cursor + BYTES_32_LEN; + let finality_branch = (0..FINALIZED_CHECKPOINT_BRANCH_NBR_SIBLINGS) + .map(|i| { + let start = cursor + i * BYTES_32_LEN; + let end = start + BYTES_32_LEN; + let returned_bytes = &bytes[start..end]; + returned_bytes.try_into().map_err(|_| { + deserialization_error!( + "CompactUpdate", + "Failed to convert bytes into FinalizedRootBranch" + ) + }) + }) + .collect::, _>>()? + .try_into() + .map_err(|_| { + deserialization_error!( + "CompactUpdate", + "Failed to convert bytes into FinalizedRootBranch" + ) + })?; + + // Deserialize sync aggregate + let cursor = cursor + FINALIZED_CHECKPOINT_BRANCH_NBR_SIBLINGS * BYTES_32_LEN; + let sync_aggregate = + SyncAggregate::from_ssz_bytes(&bytes[cursor..cursor + SYNC_AGGREGATE_BYTES_LEN])?; + + // Deserialize signature slot + let cursor = cursor + SYNC_AGGREGATE_BYTES_LEN; + let (cursor, signature_slot) = extract_u64("CompactUpdate", bytes, cursor)?; + + // Deserialize attested beacon header + if cursor != offset_attested_beacon_header as usize { + return Err(deserialization_error!( + "CompactUpdate", + "Invalid offset for attested beacon header" + )); + } + + let attested_beacon_header = BeaconBlockHeader::from_ssz_bytes( + &bytes[cursor + ..cursor + offset_finalized_beacon_block_header as usize + - offset_attested_beacon_header as usize], + )?; + + // Deserialize finalized beacon block header + let cursor = cursor + offset_finalized_beacon_block_header as usize + - offset_attested_beacon_header as usize; + if cursor != offset_finalized_beacon_block_header as usize { + return Err(deserialization_error!( + "CompactUpdate", + "Invalid offset for finalized beacon block header" + )); + } + + let finalized_beacon_header = BeaconBlockHeader::from_ssz_bytes(&bytes[cursor..])?; + + Ok(Self { + attested_beacon_header, + finalized_beacon_header, + finalized_execution_state_root, + finality_branch, + sync_aggregate, + signature_slot, + }) + } +} + #[cfg(test)] mod test { use super::*; @@ -401,7 +581,7 @@ mod test { let update = Update::from_ssz_bytes(&test_bytes).unwrap(); let valid = is_next_committee_proof_valid( - update.attested_header(), + update.attested_header().beacon().state_root(), &mut update.next_sync_committee().clone(), update.next_sync_committee_branch(), ) @@ -410,7 +590,7 @@ mod test { assert!(valid); let valid = is_finality_proof_valid( - update.attested_header(), + update.attested_header().beacon().state_root(), &mut update.finalized_header().beacon().clone(), update.finality_branch(), ) @@ -433,4 +613,23 @@ mod test { assert_eq!(ssz_bytes, test_bytes); } + + #[test] + fn test_ssz_serde_compact_update() { + let test_asset_path = current_dir() + .unwrap() + .join("../test-assets/inclusion/LightClientFinalityUpdateDeneb.ssz"); + + let test_bytes = fs::read(test_asset_path).unwrap(); + + let finality_update = FinalityUpdate::from_ssz_bytes(&test_bytes).unwrap(); + + let compact_update = CompactUpdate::from(finality_update); + + let ssz_bytes = compact_update.to_ssz_bytes().unwrap(); + + let deserialized_compact_update = CompactUpdate::from_ssz_bytes(&ssz_bytes).unwrap(); + + assert_eq!(compact_update, deserialized_compact_update); + } } diff --git a/ethereum/ethereum-programs/artifacts/committee-change-program b/ethereum/ethereum-programs/artifacts/committee-change-program index 8f720269a42664030a60cde8e774b685f876ca7c..18e9d90ba949bfb79644be064ad28957eb67181f 100755 GIT binary patch delta 78233 zcmbS!349bq_J7s%^dy-i5Yjmy3CU!7a!n2(0|b$y1B4ri3W|yv4TuT~Dk!?F({Yk; zibx6Vff^u*906fRj0fy?RwK$GxPo}#E*`9|>w&xAvHFw$x4L^KljFDl&;Re|Ggj)= zd#_%-diCnntD52K&!rXLNb6j-pUyw(zPaM`6L!KsBEf$NgisV`HrvUWy&mIp?s7u- z#~#ss{NHwRT*@&%eE~oH=vxD9wdeQ#r*~p%ACa({nl-8K*oj2xjY2jh-&Ktp!(7t% zlscs>Ifn>2b)%|NM8f};#P-Q-nKVdfd~p=pBdr2TE5Lzfployy{x_=!N@Y^A;AtJj zZcRFPO&?|#iR^mRR<_Rr1{I~PD1qhUrL??#FcYh&xiIHbxn#4&SuB@bo9$&4GJ2`|M0VrvcHU#%5%zv^uK#}- zjVL$<#+Iy8HG`UU*cxs_8yP;8LZ=Wn(7_1FAB_y-c zDgAtnO{1zGx7#F9A$-8val)1IuQIL#vHkb07f{xV%bD0<(*|-G$m1+OwI&L1RyQ}u z_N1oIEidC(QFTE{Y$K8boE$a8#8y9&MAf!6b~E8>W}-O8!hN9w_bzJU>hBx#Utwv^ z!|lM7T7uMUVBh3eNXzM&i0P^9n=KoE*X=WTiZ7Zx7xDf>Jdd--`VNZ1Xjq-NjveWn zUCn9g#8$~siP1QST$D}aUYp6*UKDh-J;+%DGf=GYCTU4FbobEjls@GSVW;S=Uv8tm)#l%?$oUlnQXZyV!3aRSfKV%+S z!#{;A?UY-HXM6e=(lP9G|ExYR;2Mm%+)}6h6pPE84i(PMblWOsF*Q@BV_9S7LVCg& z-OL_Fr}p~qqf;K|qvoGLj)(>jS^Yj*NOUof zvyuuqlc=z@owV-b>#kxL+at^NOC*PjT`Fhvc`2-2vzHOf?%~><;W4zk)Kl1hxa4S{ z3yCUp=Qd;n(>>{Q1Uu~+VyqbvYo>2b9vCP&g?(mLr-=?w#+W8OB$qAADJvKtaZ@nN zPM=<#0DszH@KAQh;PtoI>6}tN#R<6sXf{*u|FLXQZdQ4PX^ zm*ko@D(0CuRi^zJIOH34Jh#LCqVo#H@#vPaDsS=xt|U?XFFlaY{_j2LXV_zT5l%19 zJzOlq289LJX3fLd3EZ@p!%<*CruPq1m{O2Me`Qq#d2}jU zQE-(_%x7l`eDqCi(^o>8vtybx{VTz3+gHG5d$Y<9b#^c+cG=Jbt9wlK*A-e5T-JSp zmEHf(BX4wWC(CW7OMA#=+hr@|j!cJHeA=(}z;&@DGi3QFgQf+VHY{s&eN-~|w?CQlH zit6?3Oo<%7UucR2f(QitGL|r43Z2Os24rNgs2GcnQg85y;e3ifs0?9`4JeR}K9q-e zn+aD31)iHi0y|b4v49k_WF|W^pnvLdE{nd3<1vHB2+pIJB@GUI9auwByN1^m*zXF!S@(0N=Mb(RE z0I#x`%@~v|o#TD0k97=D$zv-9-Dy(?v!4d#(F4p?I>x392+k>enT~BB$z1nb?}Dc$ z%hG+SP}G(q&72DVvgg*a_XH@repb-gMyeO@<4R2v3d(a#V``6ORfFZSp@C*h1y_4* zGg-K9-ED!!$)v35;zdck@T;%37L>;DQmPlP;loT7npPq5X0Hs+iN8T;a$2*YB(tvv zPa4~xBvvmrR3>!_^9uRS6l-p1u?SAZ*y!+vHit`=P#D^s*wP_GdN(M2WLJ4s^S2G20WaV4k7HsSPRu>qq;``Fs1z-p&0jd862^ zL$jlFu3DvrtsDA8AMa+D(C(pdl_&>OIiC$Ln{9(S9xs#U+B&NvVWlGM(!=&~BZvnlLXLMe~eR*FIU!eW#b~t&wpUaJAw9 z!|HK>ne!gEoLuH0q%4&mWDX)i8+m7Dc{XDL6-vroQs!D3tbULPC2d*wn*>T|c5v3H zes<~&-aY0WS};t`-|Ut)JVvFN7pS(*SYt!wA`WYefT=@*3&y=;^Pf3QtL=W`EAx}! zgVz)G!3rv+ts(5m6*TzEb%f1cLD~9R;=A=c4SwmO!AHI!zScj{;KSdLvL7FalcG{j z$lgzS`J(;_9`k6>{v9cMVZ~FD{e=l~eoe0+tXfK1ORH-?r@mHvz8yt_pHHT~e>_Fm z+KU%^`<8zT!c&y}F^dG(e#{O}NK2eE1D2jegQM~J^mXdH)5C;`*{Lk{iCUk1F%7PL zhP2Lc5LP>YA<=~J>DLQ#2!l)>(uGBE!%fX{&ILK-NdeZZaidL4trzXARm4V2Vm2ERQ) zeGA#!Q@mxt_{WLw)p#0QbvyM{Ux}rh2DCIzn#DG)AwqFYmefCr{$el``iq7lRMK zLW8edPo+!KNw9WKd9Zc{Whc&;2c3-gR<9?%5!aF6s#Va_gAnI-;@f{a30D6Nb?{$X zOM`!UhWMOQsO%dJnOA*9gRu{w!C}*) zsPMR46dZHe<+e-i!75J_a%$v24%jT&M>N%Npm#|zA`%ScZfQxf1ydIJmgG>YeIYwi zIhx+Y;w~>6aJ_HI5DTu%i@>=B2Ajz$E?kr@gn7)BVa=D1r1WF9=ZgLiD1#lp;&*f; zn|kHg;!Au>>OumH!TG)`aXHTZnZ}vkA)aFUugs$9>u2<3zs_(5f4g!X^%re+mCbd) z)68w)d!&#vw*X0qF0iHoBqQ9N@VsXW19LRx35Q_n%vl(MEMm`2^P2$t;KS=F|-{%qJa1L%kB%nf~+dQFs~ zTbOSJR0wd_!M;2FIcgQ2>CQs zy7#BvK0#N47v>UQdlSJ#WUx^wgsuJUBE(4Zjc+8rd*7qMie@fqKi~KrsNX_-`~mH6@_G&GJ5j%d1mEEG@^s%p;NN$O2FE@}1b+@q_f2R4U>@;J03fF=J$MiV zKc1q#W4vC2dL!!dNbn%9muCe3+(Lr?`U?%}TTrK{qr-pQOoD&r^_mQ9XOi!--Ng6c zU#V}>ZVt;9N@^_ForJe>9m6js`Gd!vC&7zk#6Qw2|3l5ZSF zz4!zTPHF_K9IzS-Hi!5oa~SO_c*>K*cm}Kuc+`RcZwkk&0bW}OZ#E4Yz;XaPmqy2zqz=98+ph9su>TSGEefOY)v0G{IZH(Mb%F)K&z5Z%$YehHw0mkvS z8y4dK({IeO=?}0)H@bVNOMOc=Sk8|;#2Ria5Q_G?*pVCW?nRacaOU@rfMmzcsI+KDtGld$+-F9t9Ck@}WlTR(@7|7GgC z_%aPX_zLy?^a?H8js+33@~xmVn+ETH6=A`v)c5m#T6Q~psPpy)Uu-$`J#c^qm%T{Y zteadhLUCKB@ApSZkk#B&?5^oAH?N{{$tM}|wyzM;^vRTWq!Bsy`%JmzKS&mSpUsZn zR61gZAm`F#d52SwJ$sYomRAJXJ1AM+JzPMHpCmUtX_rgxN|v`gAhOjqq*kuA%emR9 zaB0G0YI%~c8m|dx4cJ_8Os`Ivs!TC9l|@FlG}1R0IyU|$BLg{YZePW|P<@0@G~X7;DYVHYd;11*{%MnQ z_qqc)J8iO;*XIkeo4My~@*_IqTcW{48328o+ooABLEU3)qh`Gr^O7Bm*`olS#XIAU zikE?$nyd~y-HW(ZIE*e* zQ{8vNI%sNKy9Zf4@5tjWak zmVDzx8eDXO2HaRy_S~PA@yu!4FS!ior_&okUZ_!1%BRKD_REkdgcV|IXxn;*d$eSr| z*-W=8+Eaz_biJG+V`6I zhAMsh`o(E}y~0{bySZ9nx-PB3hz6%dW++;dMSd+X#}^->Mw-DoMH?sRDl#_ERMbmo zZt2x&n$Fnx`EirbZa2@nRmxbQJqey;a|X_mME2+MKL!(+56W>+IWK3xmGE+ovG)n> zi@6nL3hlK-cJuNv&LC5Gy^#bCzCeV7uam$VCy4OI=QyC9CxO@ORCq0k2Hx~g;myG` zppT=0qcf;*cn%c~EvA9DYH8ruV^lcSNQVX9et`;azfOfCCpsBeV9Hr4Ou9e=<3wAe zCd|>Qm$G3?a&5{8R<&e?-!~VFJGaeModlDvB9{i9bCwCuO)i5WR|J|?Ra85kBfg<$ z36ibE_u>VD+dOE)K^9gf%oLgr-Cyl!M|(Tkbs{vcy5IL=I|hDvl3a9GU%BL_zOt)N zy6mRuCe887h2}SU1)A%7NqvV>_WpY~@O>E#Z~Y!&r%sW8yF6Erv0F%GH2B4RM7sJE z3Eq4q3BDFZePdH;^)oh`?~7^(5CviNfzqjygr&km&HItCt50H+Po=&Iz(rjuOT~>$ zyWO|%MF^*el3gIdPpb+0Ln4u)`x435mjqY%Zv_zuCV=pZFAO5z7oU>qB%=ebgjAIz z*h#BqBW(Hd=Y96?$!F2+|M3lJCQ?N*c8{Af<@~!cWp5uigT1L3ajNVp?{=|>Xyy_0?*lxGXZ;4W?^1-)1kT)rLC5fzPTyg$%90k;RM?w4JM09zg{yFbK5 z>%nN@xu_Vw?BT!(F>>yQ=nMB2+ z-3eU4mOJJA53vJ%1^5IfcmfvXM0-3s18jLbI>%1+l^yi)ptplQ9_{`(FaU6Q92j6H z{R#~e;=ll~sJKAOlLH)){lbfQ>#;;6~HCu8%Sl;;BbCB z3E#thewZ8eeY{=v+&h}##!e<5lC8u^Wa=ba=@^XKhCgf{8kZ}9H|iCks2+K%IFo4{ zn0mfXlik?jJ&&eHjyPwh97&aO7i(DB*Wa3k9vTmgl5H(SdasUdrAJVTR5r>w^mqh4 z?_ZJb72gS4GWaWRJdfyW8TBY36G5 z0ocq~^wHwSAFI&`8p#3y%xs;RspBLu&K@$fptzSOWNlVQSD?+o>r6yK)##jD4p_7S z!(E^W)2D}y1i`q?MBcfkKoTp7ysIT&exB{PKi{v65GvwJja|NS-2+0!$kISXaj7uA zf2kb5E0JxeBf+z94jBhgJ6bAx zI4s^LJB~(gjX#jcwJP^Mic+LodmT+=C+mpZ>p_oVY z1+%4)%G;2~y?~=`jChaScqx^eQIB**cqW20_Few!T06Feb@NSzb!Rw}5QG1nklY!` z47zYetb>$LThP>#6H!E#Wx6lm&fO!$5LX$$UKK^Q@b{@UlE_y4eoUIu-?!3(3loC% z5QE%!cwxn{&wuZB>f23ARc>c-4=(Xn@xVcO8UrNKk~E^3^-Yo!^$QuK6*&UDif9PN z?X}v}Cw)sQsEMaPVc;3vV7V+ZURtb;XxAhtS*nXqWOYu5)xL%Y`mMMlK@7aLuMe?} z$&769%|(976yPz|*N-cgjZ$0&`OGGMD=kSkH;_twCad)44p-Kj!_col)RZk$Al4BF zlJG4+Y#R}BX;#3~mT5%72_y~AHu&!CWexsSHvIxCQr$N7->gz~XDZ*DhF^DINY`9- zrmofRkVW*`^sm`|6yz(WZWx(@ zkDe_wEhs>!R>1o)hMl0_%Vs|W`HwU8q0B_}?a-p+Wgw>xZ;KvEapUfxekSQylDPAz zTsOOnKhViruknF)@L+e~uQ8^@|A{ zD_|FEliB{-m|kyB0{D^`;n+0*-^RhIzHi^A@)l0A5^eXR?FqDPM_bCgV{gS6&5gYI z7-B6!J z?d-w&C9`_7Csz^QSubUe*(rPaVH!O9H0n)6dLlrAb5~L+9YQ>{mI`l7jSl{OKH6Ud zhbR(sJV)i4H*CTiBci3$6~s61Y6N@&-Kug}5u38y-&g;gylbi~In#&~A8%tTW1I+} zT-CkUzm|K3tG7m)7k37R>r;&#_FmNOrn!knxcM1Q!e}FNS>=j5Z6uoME8NA(e3J_f z5qR$;m&8WPMfiB}$;T%b9}hlmd|a_Gf~;#vAEBZ!I*<&=LoLy;g6P2HDbd2DOQQqh zu8R&#n;#t*yE_^doiT{k2$xfW6lSrV# zj=0A|0^|W;7r0B zUq{2|cz#lc#`ER`q&R5cxdk%YSWkU_e}nkuHuHm&M=sg6(5uaY}kzxht;x3n5)RrxK-^sSz*R()Mc{WmJ*#WsNTM}X+zPsGRR>blIp<8&a zNM3mEZ_K}H^fYy3SgnXCgo-#Tcp$@tiV+ANiV!?xl(sfU;pkugRxsurBG+tpgaQe{ zGqp6}SyL($94VF8z05AIl5rxGX4X|fxDk_klA5kE0 zo?0kxon08p?E3H|fGKOs=nlB+^cb6Y&L!Kpb=s6zrmr2Huve&PkpjtUB$?u@knjrY z{m8MAh;?lU+-`F!Uh5}UTGsWJrCg-6+Oo7oe0{3-c5GcZoGJ;|1?OzELY4N-PI+^><5g$KBAzWiIbxS0X<_2Si zP$`zUSnNRdk$-$F-x1Bpe;BW54s9G>)-cgH8n zE!VSORPO+tZ^FWwLpJs#@x zAy)agH9k_q7Ci3u>knFC{LE0;#wW>F*Thph9@uu8R3~C<*z88>#MK8c<76Ze&2YH= zYq?=Nkz%>g-Ug$^V?V^yrqOPP(V`w1Q=5kRM}`;Jl3m3SAphatWN-X$i2r}H;@yp0 z2Moq(5ncyJ!G3wXpFaqPfwaaH9L);0NtdzMX3|FJvzzgH^<$^ny z@Z?pob?D77a(yS8^Q7A^dRy@_53d)tF+51t8o2%Ii!F_R7as8c>xstDzPiceQ}OTr z^&sO9Wpz!0C*ZTPg`77k0y*^+LgD!F0k30x*Stk!&Z6uV2R4;kaI$D4f#PzH z2^z_@IA*QtNIRHQUJBc=!whV!F5a40QVy7rZs_pz`e?w+bOZOUrXZu_l4+8WVsPzB zlHI$KjD=Hlhh*89VPdVxEOS%BB)w2*k2Q}311pKpekqcvg-EKVWAATC3r7r1u@s?L zny?*@z?!B|d3#H~&~zA4XRJ-$xj#S9w3^+wso2jSh{-!!GK3w6iM)M(hG_$JKbST! zKfK+9Y|Dp3AufTDq+5nN1!RsQSMeERyIEq{(a*B01>Rx-?i}K1ALR+w~b7j{jRrc1<8)5#WO3^PdZDso?Jh!s(=hjGl@8>gMt@K=>y(rCy zE89n;ZRPQ0`_wd<;;7F9Ac2?D5CPc?00M`d2pkG2pLbaV4D-I#&PxOdD7OmNQE4XH zqBuU<9K1vu%B|uQDv7_ag-@rZsr}`WJ206pBsi_fYe%ABb?JEl*$vD5Ue zYH^3APkv&*Tfh_stmzZ@G#OL4nwryRO(jxNfgOig)-#2Ek|>?TxYo3|rIQ%eYF;9+ zL%DU;2-y&QEnr;qhj|InQEpv>0|g(l+Tt;W{0OH*8_KO~XUmpz`8m=l^q3x*)@dS< zLF1lEtoSvOu*bBBG4c9To(k3!<4)sIoTzp`Gl;&!&O9^RMy9fiXNQijdw_5MW+<@X z_dZ0?lCw5OibnbXKpikK!>U zd;Zy|MD;wZ1Lx2YIIm8PmRBwtz}|eec%HcG2c-E*0u@edM5}(TUe}Z^UHGN)rmcWKbk}ahDB}m_TnHonhK* zla>qzxQaN!#TUjG;rKMd7)EPEuogI6*AIKz*O4%}r72O~U6*LdZss%^nymbym1g1F zr?kfi+XfhVO%Xo@qYv0mo85kL%u?}!u7k1Q3%Tcz>SB%2m@sqTd|&OD4)suETclDf zxN*AS8sQehY{{txoIScl$}*tlM0ZFL)?X|ey*ZWrbxQ(O*>_u}4GtU@d*Oul7sGZ3 z8n!zD-qEsBF=Q%&ao9E|YzJGkHO-;7V$?cYx7B@#vQKD&A#PXzLtGOrZ$=`8?YGIb zM{K6F{5B6ae%LOp`hz}1@CZ=YKex(>>hmyT8_XCvf~hw7VVJS2abOg~cXj0Lo7n1& z!^)A(h1R&S8j4rWcS|h|Oz>E_9V@{29wdT#TgqFZdsqvFxT2+M882 zWzC4QIyH8-P^bTe_$0K9wY3gACpM3P`X!PRo&g_8B(6YSn=6n@8EeuCRDo^$fl61U z5Z^8D5#NyUl;3{wuUOzbkuB_OuMnCJjtOk5W7C_{u5*erxT>0ugZnns0YTq-voC2~`XSKhkcD{nsHm7hP2?HO0o zP16Y4iI9hvjIZw-><{EDM^sqTUR<2KtJN#- zJm{6TpTg&hqCn1?I3YJKK9IX6UdTHVkM<&Y^T86i=~RjQ+!rN6?o_lLi4*ds#t9{F z-V%^k+#(E^I4@8VJx?fjb6#M;3jaKzc;c;rg6LZX&&2tGoHuWmw}Qd*r;6mAUlidg zP?qyAcgwjqxn=iV9@*0-%kFn%+4YGmmwca%d>XPPgR*ff$gZ~A?bS1oF(0@tIWk5J zcyI-^5#NwY;Wr9zO!n2+l8$R9Ki=jJBuiV-C^x<_ir>s~)0XPvX8Xi;q+~W{^24I! zfOS_HVR^NX6PFjrnVKi$uF1pb^05E(mAAawS8hDqS8o2OFWU3bo{#o?wCBs)(7prh zEok3uwBu|xwE*n}0e|k10x(DegETNm1A{a$z?+b%ULbhEzzYUxV2}m|X<&f%BV6@G zP;XHnH?BzDy)#2@c{M}caTw2WKFUCQA=(SkUWoQWxf$(^Xy1bN2HqZrw<%ML!M}J4 zIw*z!cvA3cCIrZY0C*A+hsP{aF@I}H&|U%o@V*D_Eok5UQD)>44dl`6z^>)D3cC)n z(c2%ewM4O3QEZ>U%68=0h{CFNC>fy>7B?ouPth>+6jPnbaHj8&`wt7VG%;LK9b#8Q z;mXkUJJaI_^A#jF&l`(#x6JZ)X5vl6gq>vx&&`!vTIYtTW7+zh15(n&9Re3CXL*H? zd$1yqd+>fCZ#jE+=eX!$#-ho4lcl%F#rhB-Z^iw-*1r>JLMmbH7w}~2EMD8*?YHGP?~%V{Hhm}`Asd{dP;O?mZRY|*YX z8{FrbU0xfW+P}1`zZ(&|k#8_fD9ZFzIF4~gTWH5|Y%%+B*8mr}T*#RN2UINkrs`jG&D68Eo)5UDtUQb*w{+*C%ya^^5 z?EKzDo6-(OGJTB|{UI$=X_M-aKeJ8_e0PG?xUBX2CpPB~P~giQ3dB`K=NWu~B?KWt zkQD_ngL~MlptnHX71kF&T@=P*(w-^^@1W>I&R=p-_U>b`yVFz1k3!CTOk`oiMD{*n z>afw&;gI>_yEL58$7?t;TT0Ec@N4)^0U(0kGDMY|X6UfI75 z2s?n#0)*Wh;cyWSv_(Sml%ha$EIjTmc-#ZFaJV05qP+y|C1@`}d&#vJ0X!}cT7a+{2zljMfr2Q! zDV~7maIslH&H{24kh8!n0n8G>ECI|C(C$LJ3+*nnyTB^}yb{1GLEg>od})e*_fe!c zKTZ^yreJPk-9q!>>_GGCYwC_He1o|Y< zd(iGdyDStfw}Czh^huyc+iDq7$U<|h9Pl2r;mvdsq{O4oqe=eI(zN!21f=`2wMt`q z#bd+R91!L}{2Yj%gW;usFa^U)!SIlbjm<@SF4}X^o*OodSQy5(ohjI;Qm|2_V53Uu zzVEapqaTq!9i7DXyzI`@$A@I$ZUSB$I}f&cLl#oO&b^#AQW=Zn3ih6g-a;-eXByjk z@jXc1(ZoxSyp5M_vb?*gMBs1jT8vVbw>06YUJaY@N}jkm8?Ee~SA2=eG@+>uL0r4> z;;A}OoXTE$WwwLGBQ?I7rM^FP9T zAI5yI#(Yna{XmfATp)OW;0A*0qok0YLvzl;de&*TId@?m-IzxY<}vr9|JOP1hnQR3 zXm!Mc4QfuP@(bo%?*DU0l<<_}{AFSM$n-y^kGOytb;-FEeCD%d&%QAMKI2}a^vLh>Kb-jSCnPKj4U(%NFeRA?Q*aMGc?c0E zSCGJ@nM9a0mjuQwA;LHu!>4T^!qg@l*^y1)PoFEeL+9m5yu{??SvYoHUO-69OQb$s zdp&`QWPA+}rIJGf(}z%DdIb$!Hk0~=%jVL+*d6Aet*M}-OP6ijJg z+F2SHe}M|)dw5luP`Owx!i(~f@3UmrC)o)2F$b83+`C+|_a+zGV4V~}|Mxf)eB#E_ zayM3DWT>-pxz_ZkXNWGYf(_ah29Q^9kVZDc_ydwnX zkFr|8@pc7sq#Zkh`*;r_s6NL5!{0al*GVEu(Tw^?M#UGnE1C%YC z0m}WH0m>ts0m{>yL88$9HD`eGSIz(>o~-5aGK0UaMp;Bbk8%VaOY?Fn9!~ReHYQ~= zt{IRKb@Or=1wG0&bUqm1k4>Bb$`;N5<$lfpuMj40ah#73$$lBC?f1s)Eet8Q9*07%~{BwGY9xvbvAjtW#i>RrwLQb1i%ZQEA!$1TvLArX1a-)5sgT!+^VF<5UlK) za83Ug_=juiIgo{g{1#+k`N`KH>lf;qU$3==Yw8yuOAGaO7Gzchy?usSYMAT{n1pNU zU%|wxWkjC_kG>&9@*&8=HT@LG!Zr0I$gEmMG_KreSP=3K$ig-KZ6KzESgJ>W8Sd>6 z5W`L6P4ExZ9D2K~E~D#TLk8(JSzTcM)h4U6&AMzUc zCO+Tzu^m}m!~b&V`yhge7X*y|6{GKkXzs9R&qFlXtYt*+f@oF+`r8T7!Zm#x$ig+X z8DyRiStH1-3dpvAEGxuce->onn))=zTp_ZjKxS1y_5{enHGLz_9fXu3Z>~@fa zYx+Epg=^|ukR^u5szGK|Kz0+z!ZrN{kcDgNY>-JIvTH$RRX{ciWZ{}V6J+6B|L1wNFOu%R$nydQ| z$VLJ&T+@f6X1bt5={9v3J9F%oc;#am*-PUMdc#h({GG9BBv)wS7iO`>iy`BS0>`s{ zUZ@}Y58HD*)25$b$B*Bgrr`TJlkmVJrUUED^qPfw?{jSSJDKt1P#3m-oyYQ>*`7Jp zv`~NK3nPo^XphDf7EbF3Z5Q!aK|K>_oI-@g)kN5Sm;_pkiy-`bOhUYgUy*8r!3Hk5 zy8|YIN1Vk&xn0;knFuYb@WrG_e~BNSkjmRE+!W)nqd~9CLk1LQO)@uhBovzX)f>-Z z=Ri5_lQ*6g@&|nOTf1?$D|=oXg$$>+HFUd<05;Hc7+WE}T!CMUK$wMc3cK!ujQCfO z;!NV#nn;h%W=sE)f$yl|K_*eIF}^7*wy%<1n{#D%O)e69)-QrpJj`KyP9PF(&tDKr$UudD_yb20YRrXVT*quS_=t6O zWL|6-fcZGs(H_Ndn0Pb3DQk9kxz!3cBh2+lG*xYrm5FM+rH?gOQ=>u9O*161OM`K|jfoccO{Yg9XCZh2iTt2~wJKW2&| zZV%-seU3K7-!H+=5Oza`xY95sjqv8ml$Gz ziHq!!1JkMux37n6Md;nMs;dt!=zXsJ1~U!!;;3qysIZLpy}jy{$R9Xii#{%pm%evZ z=)$D>A#sevzX{aP4tbi)#UYBXu!i@2m!Al`=W|(KNk|prPVy@*frOL>mKY7cw^+LG zvQ{gd5$X6C9HX%m2O7@rQg-5l(L-j2U7`scYM7!}fh$GDGGjHFA-yTZ;R2SMa!lQm zY~qJmedbzPsrfQ5vQ%+_k*gcPG|bfG*s7L8I|rELKwaaC`Bv87xksWmj8Is_v07DCq9Q?qG~5) zQ5a(szAJd{i_EfAKE@wM;aeq;OTjpG_#NZh9KYxFh3B3%f00tG`@R)=z@xK&;76Bi zhNb4IDl%02uohufo|DG!>+s*)!Ie&@-`nBlcvzjniEm+2TTN>UWJsX{~Dr={9#b$`RkwojqRg8bBJHdt~%@m>jYCyC;&-p zVSK%U<8W6wGuf8EN~ySG{H$L5yWAi~EEnkf$Y0a_Ry0$^m&p@`9d`X`QDYI4D8tI? z>UMWHQSlEQPPA^H-0*6I6BS?P4#NmSx4>~&-#&_b-ixVND>TI*5JY^11Rl#el{G16 zaoBH~KBWfTIn1sr_Ty1P!1S-}_j5d{zV1OLo)b(zqp!uQJ;bl|xLO|1x%sNx zmf;sY@xzT9x$D&`jg4hWs0U;cpdw@xwjrntyHwPhkAq zJ%0;`r|zu(nUp?;JCXzY&4}^bvESIZGuJr58UY~xp;Ikug*}tCpDCqpvZ_xrw5s*? zxS;Ek(UkrH^$ECK+V-hj@Fv1UQ=6X6$m7rs;c`*WM;+>7V%?j;^Pm2eru4j!w9`w` zmE)`=cutLC8E4a+5x*v>oGnSIxIqRx%PftEh(%TG4c4ALmRbA`|20TBK|xC}+~RuF z1u3Q`hT+5E{K0_PrmLE2r&;*b%?3NoqpP*!4mv2xAX8Rs6zN!6t5rsaK&q-OLt>9( zi!>*S7zz2`aTP^uTcr!R8bZ}66 zYir^lVyt#Njus~4NY)iYiP93{A@&I^KOVf`3*&)^Uy|#F_?y-c4_5!-th_18kKIwo z4e;B z)fOkxDRh&jC(`HXW^ECEyA{*1ju%gBdn7u6uGD^#XkPM0P#cqr2p4;eu@X0EgOgy9 z>$R#R%;Gw2X%f9Uc}&Mj7RwCdiK>XxK2M_aX+Wz?Hux_}rp4*!e&hF24}xz76Khgn zI1bH#>C3d2fDmO=)cduslj)G&X3G-G8b8wpreGPHz`L|tQ|J)0LhjTWQ|LlEuQe%^ z{?kVDH>N?t+}0u#4*C~umWyWDPe?1T)21(?{k6wk5d5gN#|7hhOFQqPqiMS~I2*p> z&)V#4I*;zxUeCtbds+K3n^x1HHr0*VUTu+^PDyTo=={ezaqxu$GG%#6JI*n-YvW>)$}RtgiJ4`nwH?9mnO3wxId&- zdBA<0R_mds3Le7NjlOG!cBoFN0W1zMM5!Tl5>>0sq4y6sW9WNnSsdQzIXB^KRx^}~ z#eZ%pBodCKCnV==qfOKEX!=OFc8kA3uHP-Kj>VzAW}rE4oWBjYau;W3z`)Lgkwsc< zE*)a_t1K}36KnYMZHI+0pEF{eVES#^m$@{rU>=&ho%VK zWRAnUAFuT-fDXp>fIhYd z^m6T1j*f@$hFpBF3~3loxw~pYAECX3!)ozx=B&vJ_rQ+?ra+fiB=|N#SfDa3qky`- z>X7dE%HZz!#HTIb`1(MO&%_%3UdR$j9bn-bvujOGiPqqyazRmdblnS>7c3GZSQKbq z13j5b&zrdFLIcj#JcVeIt)>WFsBUcpHx3t?xJ-O}Au4QxprRStONH1zC2e96_0a@v zSrHvTN%~p7`*>S+fz)_i+=%SZ&2DhQWUnbP<**aM zOQFw@xa2SBXAp10R%5sNJ`R|h!;GYs!BIUHk};4|Zs93!1IAV0)2a0*CjMvn?95#YLf=h4+~!GKne|8 ze*v&A(@q+-siib;?uGi<7i3(4&%;H|*~goGsxn8cB0 z8z!-^93f;#XyqBO}v#ABVkoSmRxdT38VY9aY;D#GSt}Me^G>459 zVyMl;e?W>g)MluN=dw*c%KhNYRcETx>~ASlH&QCJbZ6+zXi)E!;%fSVpu=EI_}sAS zel4i(Xb%ai+zeQUt(r8KYm3WZt2dy@vQ_v4qe;2Gg9Vgmz{u?GER-qQ`(Qz5Z5&3^ z3$6+g8H?LwG_yOAI!+rmjOJBbjwWl}hjmdILWi~D-zG71KOMTT^c;i7{gfKXTa!I@ z;9)fNnki7ZWvxKTsS&JUAT?JrmfM5jMoe~-Fl~xym9YApHVaps09^bozvcc7TzzOO z+(0b#4}sQA=LZW0f14%RU>0ktj(^hveOPd{6jN>3A)jVwBZNN)E6#F_)>Vbk4>nG_ zX^RN)IKJKDUt+4r&j*0jYYN4;QgbSK65C`@*hxnny7NLYVO#7_jG7N`ZYm5sAh@Lj zlGj-|@V%UWp{nL|XfmWR#nWA5s>JQEM0@B`da^u`ndb_J;3>xz88RfL5B}!CZ3?vQ zutthQrV-q7yS89@FYWOW*t10~f247=m^hO9@E|IVN2%0^3_2DDxu|_Pk``)z8c7rA zFWT{u*gAjapi7H?U~x1V6g;Sdi-QX?b#|U}VIt+>N629QtyPXfwDNs-bp5;T=<2uH zCXW6!M+YY}Br&)X?5GBJGd?n4`aiTUN5Lh3!JGIvSzSmchcZ!t1rZ6?7g&YOI2ejM5EvxlDV#f@Yf)e!{Mxb8j?S^t+izr-LQ;hz`ww zsdq`S6h4|>$6>~1WpY^r*gU|54w!x?aIsm?Ii2Ck9onApw7=gZoX;MbibE#7juZ03 zCle|D^$8wiz{{J0+=})xz>Q8VLFNI5NX{6qC7f~#>fG}u8qUMyKNm2{9#OY(2mN11D@r+9( z^|umm0k zm~jT{;GvWOHW7HHk1_=w3YbA>ELd}3Iohzv;9jcDo=m3~6a!-ns3KKY1Q;J(r0NQ_ z6O)nO$m1i!?|^Ajr_k$?`vZ|5nIngiq3xdn_G#J~Ui9Tdaocn(iAglYuOxwDAXrBX zhDa6{SSQw|A*7BS#7MqG&N6loL)6Gw>J1ndH3E$~_RVDK#%a(P zgTovH%&X>iUB+-xTQd#9<7mf=UyL!_uK$FsvkHAp)jmB zh`7x$VLLJ=C_+~C-+*N0eT^W|l9dcS|7*Cm|NkTKk=`VZ}Ej`f9>FdfBN zZSZvJOa7!gJMxaUjAQ&&YXF9y|KnGeu}%upKLBh7U=cQ;z7N>7fJNAVatbi605f@F zTG)GlVHHO%9Xt#&#f@0i>bqFYiA?Nej5g8I++Vb+O6o6v2Rw`)Y_q^`q0WzX*&SA^ zz9ix2Fj!22o!JveYb>rVV(4G2ZQz9Fx}08Dtb>euGzT=+uS4(TPk`US%q}d)qaV<= zU5otI|j2+`+6q7 z9bsGvqbWAB8At)I1ZJ0Et1Gl$XTXH&HP=iOwS3t4Rg@Yo3+HLX=3%~y$~mCT9QU5^ z@ygnPpiBd%{~maJWN7|II`)*{G0v`A9M} z=D(Xl#2^N6MGW2Smg$BSkP=gKZ-l~TY6E9M;w!ZovtX5#+Ok=21=Bb~Qy3(>%uYsVuXBt^+Sjw_ zyz;RYMk3B8664XkiB%4`rRNY#Q2?`s7UniUd+ZuoSTKSiLlYvgv~y{9bj7QEc?|+! zK1klP(SxOsq21Bd9BuHmh*wJ`Y~vu|<4&{$9MrntTKWb}>-cwVWIS?@eEOkHolQ3g zc%9e!`D_~Nq}Q~byM;1}R9Ee-*uJJ}`mOX?I!3Fy4SK__dmHXbF4d0QhJ5}o&3-!# z;8JeI?Q}{^AtbvA-QT30n~(2-{_A$y4|`zTe30d61LxB#sY|P!PpfG^?aTS}DdZh% z7trN2N{hRLUL9itwI9@ellq}M=rn$GxdWNWpEll!@a_w(@12Mj{;f^DlMX08$Hedb ztZqXrpEi(=)EbP%^Bq_i$_H$$3DdvPw%tkZqkq?23u%4CjjXn3A^jas)GabjR8tpW zNXNC>MHuxFP3Og%+OLb~J+w_*bQf&lkJ{sR0dv3h(p~TYFKIvB1(bc-;JbmcOWSrg zZhoHAlI}rB&0W%nut6D;>5poQ?xAwbvuMIWt0r@!8`^p89y$&eA<>IL#NhVhcnc@A zhO@qP&SLtMMB_KEKsa;-3>kx^Ja6aFR6byykzWA~pU^g~z*LOaTq_|PW@{yqd9Xwt zdKzJ*VB+&j)|E)2!wP8@*uZ0B{h6#_iQUj~3k&pQ1W}==7;%S*K2%$5XGJ1*_2tm}e3JI8eiwg`n)RU42n7PXM8PQ-t zaslJV0Y?X(j{D%%ST=6PqwG-hZ1$K90lDhTrDU>zIdb&=K%dtcUCjV`TxWD8T{{kR zSnv7ObagT!EJGvkjo8IZhP}1N)_@@=Cs%&?Y{NQz$V51@l;BQt7|7KK?NMj^grl#UtFTTem$z=iB=5 z;153|g|odW>Wi9ZJ&Yeu0@fp0-J7J7UKJLMnU(aDz_y-*wQJi7SYqLDgi$YL{F;h+w6mlo zf3?W_b&%_)yOXQ94d-3{$h$Yw@M<>V3 zF8;I!T^zP(cpfbzDzf-p6{o*xj%pC=JgRn!oZmKBl>M5%7o&Q~Lg$Gzs|%&IJ34vM>|**K(8V7t8uJWpbV2rZr_rA`M}+{$Qemw$c*5NR&rFLm78l;eNbvk0sm?Xe?|}ZSM-2?xrLALuA4kld%&Nfxdvferoa=lMF$XcJo5^T;lmnO zFs3^f715e8Gp0rjLPg=dmKBWX0iExMd|gMP4>!?=_JBU52lT-v`oJF02lRlB`{7p* zQ+Un6+`S)fH7@OM^Lot*=+~W#!Z+PW8MR0H+lE^BQV;kzXLiQ_t^+^52YkMlb>crg z(>8Q~DNj@n_OpFPd|${Mwxb`K3Dx{bvjRhaT`dZ#qUd z`oArFzTtGNE2E9@4X2BU2oVk2R``z76`$`oUGcxrivATE6Zzbnt`Bv3o3*4q=*~tD z?Gh2zq`qf%OWy4PKeSCm;vcv0kM@8c+9D$H4_WvJd%$l8tjn;}*ERL|@RHJvVYT*p zjjl9Y#lV8C-Px!Jb-S`rHuG-F3ZCu(eNzwUPnqai59k|vK;K}ZKiUKOx*pIUG1t^; zV>C9h%2bJ3-<@2k>rPH;Eqt{TzG8T7e9-qeWt zO?PtT>+a;_pBDZXJ>dVn2mG@Z{wF=)pXmYrZx;SXJ>Y-X1O5lxH&`>o!*jlx-Zgm` zA$b?8Aji7%(2rX9JRI+e|5gw92QB>9d%%CK2mCfOd^1gyCu){fZx;uexrrIxd;4ERBUcFhGZ(f`vkw|B~SH$ABu=0@gI*^^!j7Quv*_f z$rt^P?_qV^*NM$Q?(Xp1BXX-TV9FBh+cs9HDieCZA8+92sGWmd zlYi%6ci?Z@#o^d&OigxwAR4OD%BXNbNt}-P}NQz25BN7sm zRGt$5@7nv^x%b?=d!E0~XFGG&{_eHc+I#J_*WPE}b2^h&4Sc?@9gBG%waqr{0jVfr z4@f!9pCr^W>;b93+XGU8Pq6T{Bb$MKY!wo32z;D{kCx!=0ja?2Z166%lZrOEn5QN& z=f53OMMo+2_)?%RN7iWmB5G9Z@uk3Dkl=r^@b>sp;Lk|#KUnxvksA5Gli*K?(Igmt zBkV8lgs{Jytjb6(rafHb1&#ewYi`yD5_m;qrN&+X_e`k z_@ocVMOV{oY|{Ahe~OI_rL9%Tyr zT@w6o(UbykCs)h2`K%)g+v#U8f%HNVhc~dJ!ck^kBpahARhygDRRZrKf#(W%2MOFB zlJXjjb^_j70&gYZ-jW?U2cvJnwNaG}(Ilol;1ryjMHW}mIKH`=8d;suC=Aa=-Hg#8 z+9gSXPYlPu3w&FFPmtj2hT&f+oMrV^A}k7 z8zu7CqfvqH6{42XgVaj$4gb?|lPdJ0!%iVCT$H&XQce@$A~mN{TY|48!6RJcczd`g z_&X(d-NHL0{I5&!*LZjtEg1g6^}?HdiAio2ZB_=SB@Qv|0Vbyz2rvmwdzImEdweP2 zh%X6#Rsy$&mjaHHP}ea;PIB3v`cA!v4SW)@l@RAxBojK$6ylo`uCW)M#B3n&hb8z= z!|*g491_iF+M`h+kUbjZGzHNpA0_s1RNyNl{P&8*ya4$5DDgGWR9daj=r`;!ps2$h z19F;wji}eK$AAKFj{yb#84GWZ0R`S30}A{~3;$$fyD7^f_3|%cIfd9B6AT~YUB)Iw zq0hKlifLn`@c8W^8yikDA7oY0nDG_+#-zZPNbs{Pe6fW8bP4`G3qMtYpDe-O%gVb! zEg`@JmJ^Sa*z+;!N9>1aHHUsa5n}j4gF7O*7(=Pn+^oS8_^lH7EdoA30>4QD?=Rr_ z5_lg89LFwV)$Wcwp-lT)Q0C8PF|LI8_8^ec_(6zZ%%fmUaa>Jj&qb@r*=CE#T8)gz zT9xLa;Z2GNgT6xWPm|!AT6l^G!|^E+e6k3%1;a$rtpWS6wz`ix3d2f|WJBkhL)--~ z>34`~4g1a{&r|F>lLG&zg{QDEOibl>3IAU$JcWhf_@5>Ci}=~Mim$|+=e^|{o}eO5 z;3_GfN3!sL7RkaqEUM(&f?-wqKat=oE&N9k{vS&4A6WSJCHOrOyr0dz0rt0B*xxNK z_y|6jwnUaU%OlGhZ%}=?S+7ap8zt~p1$>eE3~Ma&c?lf9{BuE>r-d>P zCt@%STwgPo7DsY19tq>ZURaMwid&QUumnFp3{R7k$(DQICC#}ueDz<*Gaj(vIZc^k z;VFy^Y9;V9CHP`7m;|7Rl{dv;YS0jaiFs%+jf!NWjErRCA0etW{!fA*Cc)on;VCQ( z6H~cef*)+*DJ%@f50c;qh>%CLNk396iET`Q{c*LF9+7PP-6GkTT}8D@X9>Qe1mD5J z=Sc8vB>2`AK3js%l;ClMpPo!{wft_bmTIIEliaK(kvz=Ckvxo40dFXQH;}-SXt$<2 zerZc>=)2Td#f~^NqQ|s{j>3ZMp<^{W@CGE~S*AU76mWa!Sk2m$*TC(eqk!8($7;3= z@V0{c$w+mK?;_Q~A{mP@s|Ag3xV`)OHB&Q%QrU(*xZ}K)iby{G_eIYc_RU6te^-M4 zmxbRMDW~$b1n;x(Z%Oc5CHO5NdMTTQWtf`;6Xn%NCjM6M~s}N+(Ol1La>L70&fo)1-`$9x5tbE-zQQ&nPCq|1%G=$D)3Fj z!c71gQAhbEwYIDdn`-s|Qxs7n#WWqFTIE`#nEtC0{GS%y9$*Uoze(`FT6lYaDe%=2 z{6(_7ZmR!BZh9kggz4pEeHAI6`DJ8zyi}DBqazadXA<~f0Y4yt+hb8Ku~8}D`y}uW zCEP!t!*<;r?{Qr&wa3gZhLJC_ysO`THu`-g2;*Hb_XZnSuFO%ROm*5|>@b>6cNc4yV zUuxm)(W}7Qqt`>^js5e)ti*4Wxh$P*&Agi(>OvEf zJscJIe@gHpEWAA&75INh@ON7HArg6Rli&x7qn?7{Ag&j?r5lV8YUO10j^tt*kz9;k zRBLWlcM04cjPiPnt^(dk0`Dl{-a)|IO5pZTRB&%i2G||HpP)`+5BCttU}Cbzl>%&! zD>+R`6>VtR151Io2bKb#WZ~;Y3P>*@2$?tqKEcArOYrtxRe{HMvgwGk5Fm=wYT&>d z6UdGXMDX zM-4b~F`SM?is}C%vRd~CS=Fr=OtSG9!|Q|2_*pRf3-)!QX4)Cra=WBzQ#Dq!YbO zC!~vn{9`2eQ6V}hBSvJXQjak-(#AjnN&yGNV3X-`xVwz`Mw_hrYr(e~x6JREs7w&qr2h{3yYnv+$=S z`0pk7Qx?8Tg8#P!|E+k^CCAzjw!hO7W`*e_#z3O98)-cir7dL0^m9Ma2Vi2!_-(d;U5@HVBISiu-XFExm+lRw7Kp8}O z_PAB>w#TiUrt}hRXxal;fwu>)0^ilb+ap(j?-(f{-eSpZfZkXc;>ZQQjRfDC6vDBd zEYhd}dt?N*uenD2*GR$HT1aD$ML7+xIN>!K_E=QlZ-}hXU)RFhV^M*($D)FNtc8z? z)JSnk_~Tcx^t%_q5U;pJNBL4lsb?KRFM1zxc+2>|j^ty0CF)g1AFL?*``88WePe<3~&IBQ5-068vxpewc;7LxLYF!QURDmU1hp zmE_Bw#77h9rL>CVL$ALL*UQWj_41$khw0__Nbqh8pC;i?tLmUR@OCpBTX>4c!uivx zIvn3X>=}thcL}||okF`S=&zhC+G7l3WBwV*#`uG(&CQ}M#&Gzr68L2Sua>|sO5hg+ z{G0@SRsug$HVs4S6jz2FE}|hteMIjd3YX3}99bT3Od{KBZhj)cSBBx)t>598mT3DA zCHN1*@oxa%R^azY@cuA7J->Zd9G2mQj9p?#O_+g5PYkK@NH)qFk!<|0bG5RKjS~E; z68tL`eys%mvIPI4g@0axe@=pbmev^Rn!nh*?{P@(shMgUZgdz-^KBfKi)}y~2Tn5| zVnwqk(0f3FpDn?cSooO|ynVGP_)oX+(Aze zRyOZPn6SW8C>4&UHKq;!?;xH+sc<~4F>Ux>=V9`Kf2IWAA`DL^pFzLL>lDok;o&q| zvH{+-!+YCk9LYmTjpTukU8a)$@)jKQ2Ir( zprg=KrE#MKPs_frD*e4Id=Ck}y9D3W!grS7J4x^z_#Tx|508IWU@?%g6q7yIN@*I& z#ZR6iOiD9V)T$&)@Z>qd@%Y^zwL;iIZY~AAwK4*agWMcnTf*PI%;P-FIN|vO!ziKF z=4C>yoUo(TqQvFMTIs0u;}}vDOodsKNp2=gDFa8X2~NROIGnspI2^y^Blt-PoSaNJ z9PcuI0z>K>q0Eg>2Kp%M)HK(|pk-hf13ER$jh%w2F!_uM2_8#Bj;CNM9RIEak6-Zt z-`?CQ!PBZTT%N$H@-8;`QMJ8lyu}9Xx@T(0Gv8h$q1qRKB<}@_|1vnxp2}_!RNTti;BL z(@Y$+W;9BQCHUzQJPulO{8R~kvIKvxg`X(FkC))bi4!J5;4y6ZYB-B)tFUtbwZac( z3k_&t80>dWql4KDc0V|>Qu9^`90#)rK0pG$Ndm{gY=Y-Y;C&=;9L#S2owTNw4?Afs@U-X*YXf|BOyC>r3!1 zi*^@V{ydGXx}+ZtGCYs5#ceR`a5k4T>~J=x(cx^;EbMT$!2cClvmb}EIsQtdq+y4% z1%DjQ=J-nz{Ld2p7sZCX5a7J%w&80iS`uUHU?iWg6W6>b-pS7ERX&p7X$czEVCEQm@;7q{168H)U9PhPUi?Q{%Q0B(N5n-nv~$gDzCa*d3eBUvbeB3a=3hFl~5%7!qFl)e&tzJ;gAFdT14@Oc)VBExWe zHwnIrh?7KfcOt!#eEVM`C&=|uXmc!#k3Th%kJ(7nt2C70lO*^=3tvxyx33aK7uB`! z@e;g!l_>DBA$s|pTrc*{W?_IiSrqGqX+`f4548_&lb5L0+${T&QdIDh1b$w?Db@?; z{(}U5TEHpR3x}VOz^lmmx;u^wWp3YsX;+ME6}jEF*;GTxmoQb@Ei%et$??bz_TTAJa#1R%_VS;1n#CM%H17Jxi&2QU$mm~ z(fm{=l7T@h&oFJ2c+rSvj07Jo!Q<quZs9jd@bItPSW zIa$s~E~XyI#n7nM+^p*o_%#XqF9H9L1b#&V|6RZ-$_!J9ADs(R$-wtY4`4|B#Fe36 zA`APqhn8YI*+Wawx2G+5hdu%E2RTlnuq>AVm!SY$wsk9j9g6rZc(lAwgkT;vReOk3%^x@e^Y`lxA3n^@S7y~joeMR zMH{{%0jvwqSi*j_1AY7<+<5U$33>;2jNtK{i`}qKO=JT;M=bK;7c?mCPFS=9MY>@Y zV=iHSy!|y>S%kbW3-eQ?8;)OK;Y}MphkD3Qk!}#rY4nnaqr`uX1YaV-&l1tSU^s(S zV^7WZ?NJr4aQWdV0>%N6Y|NV?*%;W)JBm@6FM;=wz;6`rJPEv~1l~iyyGY;^(T25w zK`%PQsBF)*VVAx}CqWs^bL91cjm~v8?Av~vM%#YWh$eZxaC}N+g$lO)INrYPC-~d9 z{RDrPg|92&PeE;%LP~A&oCp|WNh6%s`xZlzYh;iQ3zINx`;OP>$MzjbXk3!ue~zrt zf6>C9m*9Vt;Llq4(-Qpm68uTA^)8wNZjH8bQ%(drD(rm>LIny%!y1Nm2f4L>6j`nR zLkS+cgB<_91iwdu$L=7<|4V}3CBg3$4payXw?=AhJ}K17;h!!D>#VTdL0*t{2Wc?9 z5Ls#1dlm#7yMqLOS^{4cDWieiL4tcFa0)!bn%KbZ;3>7c^Koxnk%OC`<1uncE!f3V zY63po_`TW)A!X|KDn3=hdVH^TaL#wdIVQ2or`507Kh9AcR%ELxjeHk>X<@J`PV?jF z@HsNlNfJDToZZ z2jyhBBa8Dl7KXKl(Tu9g&9cXbf^%x5Hu&5QhugzL0k`ipa+;AS;5SHwNsw^IqmuK` zr54v^@C9`i8*)zVkZmfFp#biUBE>41FL^geZcW=w)`R=W#t#u4z0h!_kiZ$V^b;O zWs5u@I7VOg@j6QzB5y>HZs3dd)oQQA&xnj7X~8VzFdJK~cF#IsWo3k9!Qt{6Lg4<7 z*}iJEWfuG`&uSHflfM;}@~`-D1@OCu)SuP&9UEEI&uUA@24DOo^<6cwNez;|yd;_s zi_^<$uiglY!Wk>2LM!K|RxwQ!F&E%|6a>(Cg$cX`rnAw%s?A!8n|b1siKU*J`kbhb z=P3^n&Fh?xb4tIdZg%ijHO|d*3`9;mr#;tApl1hY0^RgCHLk5dYDIUsv0*kAGJavW8pv`N5*}j+#Kv25M7=QEdoG zhBD&{j;r0yhFt;o!G!cW=ZBWQl`X%b_QH1w4*{5XQzU=0zo@_Ee=wos6D&zp`mmw@ zQTuetv)}`Q;+TjK=f_xIj}u?#6m8kV!p4+crDv&K%Km_0oojTfn?m0lAn|zHh>x_1 zrfbKF{(y+Bxh|~VRn=h8f2tlwbKYs}AAhO|JrO(3ztiiSKR85^G~5pXeGX`v)eTK? zPdyxBm1Z5b_D_r&gp>1Up$M_C;7SS=2dy~B*58m_`BUwlh-i{$g*2w$C7NAH@GZQm zZdH>{StCB1ut65aNm9EPxs2;*1bjprcZpv{GBl3~hW;blx@f!9)~^Z(Zz1|ZswJlR z3g}^4`SDXtO>2?-vI`CBaz0hhi*5-Pq0dNbS_7OdE77z*iK`>)HlAgNG_AXX`Qml$ zb+wT~BiNV>AbQtwQk#3BC9`&(2$tJ{4rVs=8n}GI`VxzVzsZ;L`;LchlPg~q9(Fd@fv;h zZBV?%RL58BR2^*;LaY3`+FgzVzBP5VSJcF{ewn%l92RoB-VIUZs0iQ2$U4{v?+pALL9 z5A!PLCB`MMg^osZ8r3eWyZS0@#GJ>@CxPD_)}w*eD7GY*K0U6_#OeNqT8HGBUKGNI zCHV(_`DeOCp&4vYl9n7TZtkPX3!3s9|728u!B#z|)0a|{v_z}KJ)+LByiUj6R9E|S zbCkR?Wu(iQrks3u(*ZWPkp_1*g4ZWl8Q7_8s5NMOM?gE#9b9NUdLRvzp;X%~Dt>$c z6;o8>W}({vd3ErhR~y1;`m)qyvK`igF6-EcWUZy67h9YR3qHcileJzBoI6ZL%q!Xw0LGT(&{?!V5X7QAQ_%9 z*mL}Al%iM~;fFXHv7%%&fr&+O3N=MTBKKl_QnmWddM*b(K3X)~(IbXT#T8YGuU4dL zFF2e&qp>!#R`mC2c_|VPZY@(g7 zv4qxWf{iSvwbl=Qyri|Z0N)S2+8Vr1v(;_1X^x95zOD9;8^&`RjcR@`zeXoM$co#d zx$g3<-JemOE2`p@&uFi0bCA3w zA-mcEM!$)rb<~>H9_CJeQRO(Nb2A&%QA<~yby-nItwXc*?#vfemvfJT@4KqGo!kgy z3pTo21>hB%Syg{6ot^He&2;$Lh)ytzm>I03lZG#0yFD-JylBRYdhR;Z>nvE${GHHg z2idVs5cCAQf=lvx@YB7{-VS%0ExJ4H#V8?4!5)^=8SdpUTiRK>TP^*WRd?2YxWi)W zP~F6qOXTbcDN$8#6;kTCcaW478;C2fzD=-t;?8SI-x3A!0yTZiT6NI|)?N>in)@qB z>Kx7%cF`C<+mhN>pYwIpPcJPS&nnON z(wZhxbE8XpEABSIE@f#3`lT7`VrT<@WoMFt0QN9fvLu zEm7)bdkyV1M;~8NZ>^7t>sx)aS`HYzKOf_|IXj-O&1&9OSk`?0ZBkbhzE6sefMWk} z$I1H63)Bf-=lA8Tq(JMQh^aLVSy9R~#UD*|U^UU4?JLl3;tgC1T*JN?O3m5ozNjFB z?dYq`zz}ZLPiqlcSkXk`<{4~aKdlgm%6?i0$BDB3&^?Pkt6;bH78+Ap-$x)t;7308b7#QusM zyH$G`-xQuZSnEB+*&GI0u)s&xMHQu9r>U~)>*TJ#&m~$^#Un1%$3Irh>E<*+FPIN( zysI<{Pl^d|6kGTuEa5gSaUL&RFrPjjYXR=F3O*d9DMdbBae+z91kRiosKA9UZhM0j zOsOePU*Z-*P7Y!dASA*aA>^dNBBKI}uTbgzcLxdx>Cuv+zy$9ST?yoc2sqy2vzT4J z4I^tb+i<(q`EE2gdBQ~n&wHKaR)ZPu*K`KYD_tARGxvzR3J1mk8azRP&s5x*4n@$N z7@D}xz&*-(odwS^V~92{ajDCSKk?;Xe3hP0qtE(|4AEZG@hx3*7|ivEZ}l*ZMPbZ$ z9Hr$t4*MpL(!N#Wf)cW!cWW6VQM2d87+!P6i!tt2j+mO7GjX4dd#h%ul2uWc;%lr9 z$92~uPKBhSe3;5eIL?5Sg}h93!4}`KyWt_~m11f0pX-HXv5GITx#C??F@V({tF?2j zU7uID3?GRmTPP3iDM;v3>nmJk{RybbEh~^o_G`4)a*44T}I5Zxf zay(0$pbd;2!*$f1ud?C^S|8^Kx0#>I67JDbSl$FJhJ8ChYwo}zagvtDZk(w76GwN~ zOw_!w1+G|hsObsCj=Tq010N>WdO3T9@i|9%08i51aI|9nN$@s_tmD1fhmKg^)qAxW zPRABs(R~=Ij@Q_c>DprsEIVds_&PbOoPltMvG`)`F6Wc(wJW1pk*PIgqbF!_s__I{ zUaY<1Sjf7})b5F1&fEDxwqd5$Oxzd`utPJoS!j~}_iK4-#qDhI{o1tT|Et-Gz|x2Z z*Ssix_LeXU_H`#~MVCU>f0j1E@lRGh3-Q-*mQ#XyFVBL--N9OwAh;O9%r~{hR<-#4 zcL}CuEG>8xb-#!PF*=1*Jz04P6u~p<61c&B?AXJI8T|RI%WSP_;~Txs`2%wksbfp; zwmMc51(n`x^rMJg1(&vL`E0FU*KQUzkFY4)AC(30UBmfs0};hru!K3*H|X%n;&HfCaS|{<>>Mm8%&o^ z$&7|1@3vV24OU*Qxt}Zn0sGtRiU}KdkBy!W8^DiR$p+TWhYjo$Hn1bq2DY)xhta!R z*`SBffG@F$4{HPQMS65O`g$Yvx!bXUc%-YwdX~08>lgc?r58@SmS75efeqdi=xq~U z&RB_-*|7js<3|w-i3?*f3nBhfY|~6gVl31;#6B6y0+IO>Y;YxbnAT`0Ux+rqVr?NR ze}t585F2Q`QntJdTn3eDZ5x~64a^&oGlBnrp*LjZrCOF?Ys_I)rCOq!XPYIVePEem z6chE|?`yaSlL*%5)ihQFzyD*^k02^P;!9ghb9MoV0o`sS$JNkRw1i@xW^C@G5WKN( z_oEo1j*oqZp3rVp(Qj!hu;_Zrl6IWc?ahMHnlH1VE8s~su^lV0XxLEZg^j+*CVSB( zFR<#T(4wooTH9o-lWRsQc6l(_aN(3^2#T&>Rkl*=(|9F~V;9!Ju3FDxHCPM7jXn%d zZEN5ICo9nx%bB?nyqB@nD^cy@vZp}9>71uv=?}B9PigD2kWesN@eu#qi|4qSS)}u^o9W4sp$BN3ZE*3X%_+?t-mZJC+YY4@WDptGY zcZj1&8LDuMe-f!upPes*(0HE|g9`YF9$oO;UWU~nZ8-K1Wh4q3BiS0Jwdi`6C3ch# zUd&rsnzq%s#p12dUL@bbwDR(UdB(7^RVa-mH1}bF(iuU7GBm98fMA|+I~%6OX}|AXd&oP zD$|s8D2J}_j^$tj?^q7`4vL&tD5sJoY^Ubh&#KBH%|3RuTx;n(;))yEfK_kT3IsF1 zpOtKZqj^U-_3|wk%Dc&_r?4-!Xju-p%PlCqJtP}nmZPcVjyIulIXN1)W3%u#yWd1$ z{|c+W6{NKSb=y{;*08x-!36tVTj85mmA!@hGPdR|@*!U0oXGz9mX@9TL`ctTUK(&* zVPhF#-HxRMZOl%fT;s)7g9T<^Od~aLjOA^BFJyfCK+DZ`;4hhxF>zqHC@pYY9QNVH9qky*mVN|_efdLd!j53OKh%z5dyJFnR%%XmyhN)VZSX-pkX7yj zs~pPBbwG}fFx0VYwja|^N7iFM7PIYG(SF!jOY$BKS=D|Ft`;ojV<^&`jm9J=IN`1H zm{n6$vmT!_%PO_H?6HqAE*i59goQVuYG>r$+Mq_pZn>x* z2~j_YETL={qP`~)bq|~Tsdl~DmOv;NHkdTgvgR9X>0xx(^MP4L==qwj@-Q}>k}7V4 zcseWM`v~ia6*dj)u=<~Co#xRhGOCo(#sT+20@R7Gyg*067#9x*_@+W@AK@33uJSr- zV+!T8_7)a21v^mzx|uEL6+@|VzA+(qX9eh3{i^wVLxE@bTL&|$uLtQyD~mpa3IsJV zn)tXd6+`f~b8Vo$4qFK9V7i9j>$&JDXVxy9j z!iOsA`I4I}?zOLCp&SdnV5vDYG>v-+uN9OU3tnB4M+<1W_oBS((f>Gdo%Dg(M3moH zhv;rkK`#;!`&h8FY6qWZ8*xVd@c~AKNpV7mIIO~39o5?L#q{W-h+0VtXDQype^eVE zva&8a1|NsrH_tI`3^fmpnwpO+RRo%v}t13#);=7MQW%v{Q`_^+N6GIX*2lC zpf*19OKrR(L>*TBm6krq+1OP|8$j4f6PvSrGb)0H|HNQ5eUc&=2>NO{NEoz(M zL$7%kq1Wbqq4<)h*FMObVA8TQL7^)*5@*GOK5RC+7C9ebbHCOynk+JMfnDHPl;>LL zM7^l13>!<-n>sqe|FxFb(u3~DevT_D(Ea}8fG}Efbbp8-WyhhaXL}y&cwB1}s@&w` z+Aexq)BM`BHROsyB*zWFM5L91dgs@M4^l1b(%9f{5W!qx6Ti_~(mMtA;OSIoDgR$s zRm7r%4s*9SDL=8@-)LT}Ob36fedajr^ZZ-u=15v*_?o~}*Diycx4N9 z^m_)gXP2_Gn8&)YV`sHxsx#ADmDK@J*6MRwO5Ds0-ty7T7R-MR7P~FWJ0iPj?0!Kl z&1UgG0#(}5LgliY9}$qza0z?p!q)t#^~I(vJM*K~qV^f=ajBwDOIx$l^IFT~i9~Wm z&DY!+*s8}4xyUZa@r^#OxirV8zT%5o2Mu0u!zCg0?XT zkJ6Ggy`n{Nw~~1!I1q7aLR%El@;(-;Y+bUl zx65gI3NO7H7ibAqrRr^Os36gTtxKCRnm#}+HP~cLPr)9o=9%v)RAN)TdMuuyD5+GO z<|ejA(~~=Rp0er4-8Yv@c{WfFXAsie>^us#uj$`T2VGJAPzlNc1w&_2*G%43N$h4_ zPvu=TS=ZYQvAW8gy%rA{_4d=MUwD(t2XE^t&3E`PcVgfxg=4oV(-O=Zd}LWQ-6AZ@ z8y9L_2DXQEy@BHc7UR?hbd#|`&;2(x3U_Ps*ixrHDPSJdok^lQUDTcNQF`*cnx?ZX z96KtE7skVs8e96O07{vnNIg=b;qU@CXS7Tr;~V-cE^_F${%u zIf~VaKT40~%~=VNxSxC!vBCK${h;H6vRJ*o?@+Yf!V%k_d!bs1M0*2`Qy!~7ATBAa zZ=8OI0JHKq{eA0Cl#61^YU%&7?nlS#46*%{czuS$;hS7re?xP8;7h$hKdE7(C{aJ% zIXIc(5jZ9RJNdK-Lij z$mk@!S8w4)sFADxq@ZgG&vxGNq1SoH!Tg--AXl6dQ@o=1XxySDrd2ilf&Ru6-zEA`Kbo_t&Tfb$A2Ks=mW zoT5+2%8IN($prTV;x5iLP*eCbSi?qo_JF_f&ZS3`nsGFDTc*!u{LaI!s6+4vhj3;A zwkO)8DO=h|pXO-Dt~Sy?bJX%3O4Zwk24}wbCc36V%7ipMTPfk$&8;YVh=UK3cb;&i>ah%%hZ*_w2{JJ!<2({*?4i6n!tw9;-Y-mN!6tPv#j zWF6hQ8?gpSO0fo>(YvijYzRdSR^)~^pUBp_sb%`HeQte7D1(B5zD$o^$B`r=Pc35+ z98Hu$QK&2Gg8^(%b6AJxXdW}0>ur;Fx;@*Z(W`G?bN#5pfgQ{iFd`fvYoQNx-s$$N z#P-MvJ+-440$5wo^Vl>RDn=AnDk@~X#p&iX3p>O&IaBXt;3?UriFz+bH{bb*dYL1z zI6TC^341f~@J8WT)T&7^go-=Z-bwm_xKh3Z^F}%EWvlPiv*QXz3Y>EaJ9Mv}5?3%* zbY#?IcKKe|NI@Y>ovi;AnrEsY;-Q{%l zW@$6@Bna8T*$GjBlW)88B_Xfac)7!pr!n1{sfCZm#?!!uXX?E*wi_+?1eSt+jy16f zI0IJlI4hr_->sJRX7!7891iKt`WM4Qmy;qmV79VYzdyx^6|fchi?WM|w_9m`6Z6c} z+t)leu9(Y4&(sHy9%6y>1bb_yo}RAv#xU0~K6JiR;JlSdn0gIb7`Zdo8tlqU4E>R8 z;{Ez9#7-1n&HVR6wt@@HGfS_Dn!?sySng!ix>TW)^}1=umViJl#pbi=q~FHCRe!dRf?pF0gpJi!@nY@4kog>p7#>jP5y z8?MKqaR?9T(I_nDop5js@!)=g!Pd^!JJ)meDjX11vS6K#AF(Gv^NKun9`qEL+aj1# zEro(52VK3?GRiiC^_Zi7)14}HI#b4c5G% zXR!w#&||1|3R9i@LHmM=QZ#-kT5LUL6ob>;Yu4ql4G-weTTt^mD^|cu^1zKY8Hn`) zVqGSdyzrg_*u>R(6IO4o?&=OUh0C172!+Wr&%Fk|^(Ci5g8okdN6*#U(Mp+Qqh8ed zE)ufg3;@Z-dp2!-9(!x9z6j@!%I51y^>F+FC#&4)j;LJTIHfb#*a!8jA(rST%beG| z&gF2%bZTk~_I%(baXc$XS2vTo31!KF^BD#r)QCUg3m_Mm((`(yzH=W$4?&7 z_(@30n?$$%ex6MZfGw*l+5|@Ef3?94>w2(5 zs9;`c|HAm~^|9~Qe?i|59Pao}(H0mIb=E6|tD`b4Uj1RB^$X*i*m6ry3X`@a2<=NF z8r16?tz)WmuySfK)Aip3_Rj32xR~=e_LCPaAlt^UiF0~zq9c zpK;=u8%73(6Thw#BZU5jNe%E8eba z2zsg&%FC!E7mT!w(*7qKZa;_dij#E(Xa}rK6lX(G2|8r-Lh8EO%v^|ht)iN3Sg1cX zk9r{3>%ekBQwirI)zuL z*}UTMw#ZvWb_;!5Vd&5)Nz@U=ZFdISQL3lMRa_we&OZI+J5{PjJ22^6Xo`nw#CYwk8TaHqDQV9@|C4jL9-`aH(1 ze=%S|bEo1?!}i}oXAJN7zZp^RutvyMW0a4kJ{XvL4a&poy4NDH*vE7%%C})B_c1+# zj-T-^sQ8@+F#NI&PMYn3mJwY!GnQ%muQjK|4;&0uTzeJtJA*WqY6C56>lrjMrVqGfQF&RT54GQCYo z0d~{(SO@=<4P>g+oCq=EeAUbJcT{yzZC3uI{++rgldW8#|KLD)<<;Md`@A0E;5HIj z|CRb9IQxHSrC#VLWgVZ=cO|~d*QUI^{Y}JqP3JpIFVpktMY=FHv`kNLQ_;v3Rjy1> zGzFG)-JJnTA{X&DmcrJS>Fo;1fkinnx1m80!no6sGDRGqtuO7hV0{I)h>{dnZj!Qf z(P^c_gfEoBsA%22sUpw4`SU!trvgsmb7eu=9;(zK-O294^!C{m?*C6?@vxOlZ&~{U z_f6cMN?Wi>CT1snmHt9vAKGnb;JtQzg7W@LbX3(_Iy05+Sfv-@Xf*a%X@9lmXf*a& z-PxapoI)-*!i=Z&>3_R8&3A;1Tkc5t1`loC^Z;3?v606!UhT5r_spm3`5 z(T;F({A6~;w?U^`I*fIBMjv0VbR;>it)=S%&TJwpe}>P-p|)N1j6Nqcf*kv--oAZl zPs}xlw4AVC@(k-@5YNZ{*FL5IujOwQN&jE->n6;vsjKzQfjvW-tiwXOc2+beRuEC8 zJ%iC4r2AjtCZf44_Sb5JoBu1MYqh=y%Y07n7TN}rpX1w^J~ZC~*@HnMWC$?ok#aT|vTA z5M`prqbx_-fpisVVRQDKk)f+jhai1f~?RpjbGItTbH1@}C#$P=vA!GiZgnotBBihbL`wLME!(K4WF+kNC=GExR#lWVT;sn>Q{r)j9!e|x zy&Ea*6g#jH3-QUo-T?aG-7M}kOd_jrUmN%9a81W`;jg~oujzOKR^<2a_WlS=W04WK zKaKki{N6YI4gJR0_KWv=cug@McrfKCO6G^+e#1U-&D`TrMuUD7B9oMvd)QYy^uF~L z?Dr^*aNh~sQ*d3dpS6EmZ`1ey==E^l4Jqe$p>3TXJqqf@Lquxk+B5E%F!i3P6Gly+ zHmx|0nQ!YRD|%H=tabmm>GzDEJqp=zWjpn>dgjL--XO1|B$pY>N((hez*Rx7MErTT=^->_UqYs zzgvP``qZN|05JBjhbt17mNt3Z_~LG9pan3GY!gbfvM{lS*$O{49LD3G+Oq^#>fwGC zuH-QL4RvJf2AzaIj4N4!`G}{+dWvpzD_8Q}O8!l(?;be6^v^^;Ox(|=?!jh79`12i zp7&p8T=PEjZQr9WbE+|)vA!Sb)92Oy62l%DQBa>02;4{GzAf$-4sq91cH~5w?fyLO ziM9$n76Z2&X)hA}eFW)ytTt{25BwBWsgD$T-wyX}Cr)Fz`}Et?%U`lb_aSh=^}T)i z3U$|4?9Pw$Io($N7_7XQ*M>dSnQT+ppi5UWvTh zP|+kLGN-^jDcqIcvxoQV2ku&N+{3$i324;PLuOAc>@#i3lzWPc$Bn~%|7N1+XuRgb z4~E_sA&+P|-*}W$%`wh1JY0@JxS|o*G&qa2duEIpf6vr0lkX{>J*o(UV*IH4aWj@& zEkAhDIOQ6 ztVM29Az=s=T@HF<6k5Yek#njS;)E3CD)O7KW}jegXjG|px+%~mZ=y}eMg#YixbGBl ze~{WNg^}Dj(s}e)tQDhOj!2Qm!`+Yd}rngKEWUoLrx~T^KDjV~O zK15x3f^Gi<;{?|WpU|Xtf;BmyKd-*?9ed{h_R9^+JN@+?yL14%(oddb%MJopev-X& z5OYh_N#6Sk^8YxfkF1w^%A@3=ng=cSIs6oxbVzUGTnc(7yX`~00jv9w-iCd5NN;l2 zZV*QSyby_eb>RLn{7pVMaNiq$(=-yer)h%j2aTCMZDw)7^y$;4E3GDbKoOH<&SVd} zxLJ3zhd#yHuH<{R^HY72vwVt2@w4j9nDM86ruSrv59{&i1*bjAy(m_RbOTc0en0*u z&scDpZ9lBvU#|+d@wlg1i^hG`X_ohyK3$#o1AFr`{UtT(47>9Pb{EVu?29A%ohi>* z`gb}jrky^x(ri|6mi7Hyzq9j1+~0zG9oJM`7b3F>uA%d|vc#i=&iy&v*x}Fh&T)Y$ zrurW9xX%0Y9M+iN8JJ0{a8CyH7p81#?is~n(R{bg zAn#9ph|)s*y=JkPx?q3GTKqj_+>9AxCXBPmRt36fc!kd%G*wdh{AWB$pP4g?r%f5> z;{6iJeEAaJqNDmUb>29%&IHU!Yk%}8+mQAmeTMWs(r-xWd5^-7UkleHq%@?~NV!P) zNQ05aAk9FUkHnB(Mw(LTQ8wf1LwXPC6Qol})ks&79r2YhRM9M`PfOH4a zXrw7fB}fk1pG*##b+}OJC_z)eXP0yT8`&RNuVF zc7Cn*ZF1_ON9lqlno&Ha@ZPk$@n7-uF@@v0k<0c}vnI#&k;9E@k1`DRRCl0BizamBB?-oeWzj%}sq*h2>k@_Kx zK$?g&18FhRb4Z(zb|QU(^b1nU%diNfyO1Uz6(P+6zd5)*iL?=E2T}#nQ|SFKFMHZ5 zmvNH|koqeoSESZRU65`;x(jJM(&(Q>OHBQlH94u@Sub=To?;&5!=KrrlltB12W%pC>B1iR zLC=_1*)>=tiRD4_9szAA6^1(b^Bp{h?E!j1w`FeHhk`yCbY5S6orC~=GU#JL zABHRV6b0xDalf`F=z@=%S3rfSUr!;UBW2)U8d5oEdLHY0Mo+(SU$1M|*PuNDLQ$FX z$RFJM+I3Qr{&6AD$rC{%W#}K})#o&}@eCSgVxMa^`x=J45q;Q&GkQ{riM)I&6r%WI zjBwnY>?U`6$``6+1G8hp95M$&@!oB{G+zY2dx!o{fS_8B#o;PppPKBsM`p& z?-JxKo^$=WiO|~hqn?;@9ygmp7_r~Y4hip3bROQLY6+Wj zUQbacKg!C^qZbE1hI)nIX*49LT$dO{8Mc%iK)!nHadv^OOP8@aKj}$#E?jo~`Wj%+ zFdR>EZ2&(03A>`ZLAwfUJYn&VaECy<3|c@Zs_PVJ^`BsKe$t!tE?R#5`Y{5dw+Y`6 z@m9wtuiHjbE6@gk7H9*y8lVjYZJ*Hd{7-sJ_SFy!@hS#JUvXV{=KMNJ8fc3_i&?>% zT)?w{E>B&*J{YusrBRu^$S(ptP#3lBG0;k$VpA_*r1U7e9vGdxEy#Fc5SUCXW6xi} z87U95`opqb;@JcFX`pw(-}H}YgF(v&EsY5HM>JZK4hD^Q(m$%Z1hk=y)wzgKxSO$z zi+Yp3%b&Jm_5!mKG#)pHxWD6|&waLL)bJ5Yyf1^kX*GNFBDTk_Ja_#%4Uo`(F)s*8 z;5vAXZ~sO87KeKLX_oS{-lR>{76eK!>PltbU@`P5|5q3PlWoD>E1Rw$4mrcd|E#A+ z9db2S4*kNG;qTZp`1{N+y3&lD_!(1N<2Cv2TBd%fdD460Qp`vo^Ro*Im}p KFzqhsuKx#!E^h(= delta 75581 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 CM8{_U diff --git a/ethereum/light-client/src/proofs/inclusion.rs b/ethereum/light-client/src/proofs/inclusion.rs index 27371e9a..f7f087e8 100644 --- a/ethereum/light-client/src/proofs/inclusion.rs +++ b/ethereum/light-client/src/proofs/inclusion.rs @@ -13,8 +13,8 @@ use ethereum_lc_core::crypto::hash::{HashValue, HASH_LENGTH}; use ethereum_lc_core::deserialization_error; use ethereum_lc_core::merkle::storage_proofs::EIP1186Proof; use ethereum_lc_core::types::error::TypesError; -use ethereum_lc_core::types::store::LightClientStore; -use ethereum_lc_core::types::update::Update; +use ethereum_lc_core::types::store::{CompactStore, LightClientStore}; +use ethereum_lc_core::types::update::{CompactUpdate, Update}; use ethereum_lc_core::types::utils::{extract_u32, OFFSET_BYTE_LENGTH}; use ethereum_lc_core::types::{Address, ADDRESS_BYTES_LEN}; use ethereum_programs::INCLUSION_PROGRAM; @@ -214,14 +214,14 @@ impl Prover for StorageInclusionProver { fn generate_sphinx_stdin(&self, inputs: Self::StdIn) -> Result { let mut stdin = SphinxStdin::new(); stdin.write( - &inputs - .store - .to_ssz_bytes() - .map_err(|err| ProverError::SphinxInput { source: err.into() })?, + &CompactStore::new( + *inputs.store.finalized_header().beacon().slot(), + inputs.store.current_sync_committee().clone(), + ) + .to_ssz_bytes(), ); stdin.write( - &inputs - .update + &CompactUpdate::from(inputs.update) .to_ssz_bytes() .map_err(|err| ProverError::SphinxInput { source: err.into() })?, ); diff --git a/ethereum/programs/inclusion/src/main.rs b/ethereum/programs/inclusion/src/main.rs index dfdab366..fc4be271 100644 --- a/ethereum/programs/inclusion/src/main.rs +++ b/ethereum/programs/inclusion/src/main.rs @@ -5,9 +5,8 @@ use ethereum_lc_core::crypto::hash::keccak256_hash; use ethereum_lc_core::merkle::storage_proofs::EIP1186Proof; -use ethereum_lc_core::types::store::LightClientStore; -use ethereum_lc_core::types::update::Update; -use ethereum_lc_core::types::utils::calc_sync_period; +use ethereum_lc_core::types::store::CompactStore; +use ethereum_lc_core::types::update::CompactUpdate; sphinx_zkvm::entrypoint!(main); @@ -15,8 +14,8 @@ pub fn main() { sphinx_zkvm::precompiles::unconstrained! { println!("cycle-tracker-start: read_inputs"); } - let store_bytes = sphinx_zkvm::io::read::>(); - let update_bytes = sphinx_zkvm::io::read::>(); + let compact_store_bytes = sphinx_zkvm::io::read::>(); + let compact_update_bytes = sphinx_zkvm::io::read::>(); let eip1186_proof_bytes = sphinx_zkvm::io::read::>(); sphinx_zkvm::precompiles::unconstrained! { println!("cycle-tracker-end: read_inputs"); @@ -25,9 +24,9 @@ pub fn main() { sphinx_zkvm::precompiles::unconstrained! { println!("cycle-tracker-start: deserialize_inputs"); } - let store = LightClientStore::from_ssz_bytes(&store_bytes) + let compact_store = CompactStore::from_ssz_bytes(&compact_store_bytes) .expect("LightClientStore::from_ssz_bytes: could not create store"); - let update = Update::from_ssz_bytes(&update_bytes) + let compact_update = CompactUpdate::from_ssz_bytes(&compact_update_bytes) .expect("Update::from_ssz_bytes: could not create update"); let eip1186_proof = EIP1186Proof::from_ssz_bytes(&eip1186_proof_bytes) .expect("EIP1186Proof::from_ssz_bytes: could not create proof"); @@ -39,8 +38,8 @@ pub fn main() { sphinx_zkvm::precompiles::unconstrained! { println!("cycle-tracker-start: validate_update"); } - store - .validate_light_client_update(&update) + compact_store + .validate_compact_update(&compact_update) .expect("validate_light_client_update: could not validate update"); sphinx_zkvm::precompiles::unconstrained! { println!("cycle-tracker-end: validate_update"); @@ -51,7 +50,7 @@ pub fn main() { println!("cycle-tracker-start: verify_proof"); } eip1186_proof - .verify(update.finalized_header().execution().state_root()) + .verify(compact_update.finalized_execution_state_root()) .expect("verify: could not verify proof"); sphinx_zkvm::precompiles::unconstrained! { println!("cycle-tracker-end: verify_proof"); @@ -61,16 +60,11 @@ pub fn main() { sphinx_zkvm::precompiles::unconstrained! { println!("cycle-tracker-start: output"); } - let update_sig_period = calc_sync_period(update.signature_slot()); - let store_period = calc_sync_period(store.finalized_header().beacon().slot()); - let sync_committee = if update_sig_period == store_period { - store.current_sync_committee - } else { - store.next_sync_committee().unwrap() - }; - let sync_committee_hash = keccak256_hash(&sync_committee.to_ssz_bytes()) - .expect("LightClientStore::current_sync_committee: could not hash committee after inclusion proving"); - sphinx_zkvm::io::commit(update.finalized_header().beacon().slot()); + let sync_committee_hash = keccak256_hash(&compact_store.sync_committee().to_ssz_bytes()) + .expect( + "CompactStore::current_sync_committee: could not hash committee after inclusion proving", + ); + sphinx_zkvm::io::commit(compact_update.finalized_beacon_header().slot()); sphinx_zkvm::io::commit(sync_committee_hash.as_ref()); // Account key sphinx_zkvm::io::commit(&eip1186_proof.address); From 8825f0ef8db25f4f49ed8ef205a3859db1737201 Mon Sep 17 00:00:00 2001 From: Thomas Chataigner Date: Mon, 29 Jul 2024 10:06:19 +0200 Subject: [PATCH 2/5] feat: more clippy rules --- aptos/docs/src/benchmark/configuration.md | 7 +- ethereum/.cargo/config.toml | 3 + ethereum/core/src/types/block/execution.rs | 2 +- ethereum/core/src/types/store.rs | 90 ++++++++++++++---- ethereum/core/src/types/update.rs | 16 ++++ .../artifacts/committee-change-program | Bin 325256 -> 323356 bytes .../artifacts/inclusion-program | Bin 329132 -> 309632 bytes ethereum/light-client/src/proofs/inclusion.rs | 24 +++-- ethereum/programs/inclusion/src/main.rs | 4 +- 9 files changed, 115 insertions(+), 31 deletions(-) diff --git a/aptos/docs/src/benchmark/configuration.md b/aptos/docs/src/benchmark/configuration.md index a749b873..95c44240 100644 --- a/aptos/docs/src/benchmark/configuration.md +++ b/aptos/docs/src/benchmark/configuration.md @@ -32,9 +32,10 @@ Here are the standard config variables that are worth setting for any benchmark: - `cargo +nightly-2024-05-31` - This ensures you are on a nightly toolchain. Nightly allows usage of AVX512 instructions which is crucial for performance. - This is the same version set on `rust-toolchain.toml`. It's pinned to a specific release (`v1.80.0-nightly`) to prevent - unexpected issues caused by newer Rust versions. + This ensures you are on a nightly toolchain. Nightly allows usage of AVX512 instructions which is crucial for + performance. This is the same version set on `rust-toolchain.toml`. It's pinned + to a specific release (`v1.80.0-nightly`) to prevent unexpected issues caused + by newer Rust versions. - `cargo bench --release <...>` diff --git a/ethereum/.cargo/config.toml b/ethereum/.cargo/config.toml index 0184a29b..a2991354 100644 --- a/ethereum/.cargo/config.toml +++ b/ethereum/.cargo/config.toml @@ -8,6 +8,7 @@ xclippy = [ "-Wclippy::all", "-Wclippy::cast_lossless", "-Wclippy::checked_conversions", + "-Wclippy::clone_on_copy", "-Wclippy::dbg_macro", "-Wclippy::disallowed_methods", "-Wclippy::derive_partial_eq_without_eq", @@ -35,11 +36,13 @@ xclippy = [ "-Wclippy::needless_for_each", "-Wclippy::needless_pass_by_value", "-Wclippy::option_option", + "-Wclippy::redundant_clone", "-Wclippy::same_functions_in_if_condition", "-Wclippy::single_match_else", "-Wclippy::trait_duplication_in_bounds", "-Wclippy::unnecessary_wraps", "-Wclippy::unnested_or_patterns", + "-Wclippy::unnecessary_to_owned", "-Wnonstandard_style", "-Wrust_2018_idioms", "-Wtrivial_numeric_casts", diff --git a/ethereum/core/src/types/block/execution.rs b/ethereum/core/src/types/block/execution.rs index 5e690289..9e4902f2 100644 --- a/ethereum/core/src/types/block/execution.rs +++ b/ethereum/core/src/types/block/execution.rs @@ -350,7 +350,7 @@ pub(crate) mod test { // Hash for lighthouse implementation let test_execution_block_header = - ExecutionBlockHeaderTreeHash::try_from(execution_block_header.clone()).unwrap(); + ExecutionBlockHeaderTreeHash::try_from(execution_block_header).unwrap(); let execution_block_header_tree_hash = test_execution_block_header.tree_hash_root(); assert_eq!(hash_tree_root.hash(), execution_block_header_tree_hash.0); diff --git a/ethereum/core/src/types/store.rs b/ethereum/core/src/types/store.rs index f0a3a805..de657f5b 100644 --- a/ethereum/core/src/types/store.rs +++ b/ethereum/core/src/types/store.rs @@ -52,6 +52,34 @@ pub struct LightClientStore { } impl LightClientStore { + /// Consumes the `LightClientStore` and returns the `current_sync_committee`. + /// + /// This method moves the `current_sync_committee` field out + /// of the `LightClientStore` struct, consuming the struct in the process. + /// As a result, the `LightClientStore` cannot be used after this method is called. + /// + /// # Returns + /// + /// The current sync committee. + pub fn into_current_sync_committee(self) -> SyncCommittee { + self.current_sync_committee + } + + /// Consumes the `LightClientStore` and returns the `next_sync_committee`, + /// if it exists. + /// + /// This method moves the `next_sync_committee` field out of the + /// `LightClientStore` struct, consuming the struct in the process. + /// As a result, the `LightClientStore` cannot be used after this + /// method is called. + /// + /// # Returns + /// + /// - `Option`: An `Option` containing the next synchronization committee if it exists, or `None` if it does not. + pub fn into_next_sync_committee(self) -> Option { + self.next_sync_committee + } + /// Initializes the `LightClientStore` with the given `Bootstrap` data. /// /// # Arguments @@ -226,7 +254,6 @@ impl LightClientStore { return Err(ConsensusError::NotRelevant); } - println!("cycle-tracker-start: is_finality_proof_valid"); // Ensure that the received finality proof is valid let is_valid = is_finality_proof_valid( update.attested_header().beacon().state_root(), @@ -234,13 +261,11 @@ impl LightClientStore { update.finality_branch(), ) .map_err(|err| ConsensusError::MerkleError { source: err.into() })?; - println!("cycle-tracker-end: is_finality_proof_valid"); if !is_valid { return Err(ConsensusError::InvalidFinalityProof); } - println!("cycle-tracker-start: is_next_sync_proof_valid"); // Ensure that the next sync committee proof is valid if update.next_sync_committee_branch() == &SyncCommitteeBranch::default() { if update.next_sync_committee() != &SyncCommittee::default() { @@ -258,7 +283,6 @@ impl LightClientStore { return Err(ConsensusError::InvalidNextSyncCommitteeProof); } } - println!("cycle-tracker-end: is_next_sync_proof_valid"); // Verify signature on the received data let sync_committee = if update_sig_period == store_period { @@ -267,41 +291,29 @@ impl LightClientStore { self.next_sync_committee().clone().unwrap() }; - println!("cycle-tracker-start: get_participants_key"); let pks = sync_committee.get_participant_pubkeys(update.sync_aggregate().sync_committee_bits()); - println!("cycle-tracker-end: get_participants_key"); - println!("cycle-tracker-start: attested_hash_tree_root"); let header_root = update .attested_header() .beacon() .hash_tree_root() .map_err(|err| ConsensusError::MerkleError { source: err.into() })?; - println!("cycle-tracker-end: attested_hash_tree_root"); let signing_data = SigningData::new(header_root.hash(), DOMAIN_BEACON_DENEB); - println!("cycle-tracker-start: signing_root"); let signing_root = signing_data .hash_tree_root() .map_err(|err| ConsensusError::MerkleError { source: err.into() })?; - println!("cycle-tracker-end: signing_root"); - println!("cycle-tracker-start: aggregate"); let aggregated_pubkey = PublicKey::aggregate(&pks) .map_err(|err| ConsensusError::SignatureError { source: err.into() })?; - println!("cycle-tracker-end: aggregate"); - println!("cycle-tracker-start: verify_sig"); - let res = update + update .sync_aggregate() .sync_committee_signature() .verify(signing_root.as_ref(), &aggregated_pubkey) - .map_err(|err| ConsensusError::SignatureError { source: err.into() }); - println!("cycle-tracker-end: verify_sig"); - - res + .map_err(|err| ConsensusError::SignatureError { source: err.into() }) } /// Applies the given `Update` to the `LightClientStore`. @@ -493,6 +505,9 @@ impl LightClientStore { } } +/// Data structure used to represent a compact store. This is a reduced +/// version of the [`LightClientStore`] that is used to store the minimum +/// amount of data necessary to verify a [`CompactUpdate`]. #[derive(Debug, Clone, Eq, PartialEq, Getters)] #[getset(get = "pub")] pub struct CompactStore { @@ -501,13 +516,29 @@ pub struct CompactStore { } impl CompactStore { - pub fn new(finalized_beacon_header_slot: u64, sync_committee: SyncCommittee) -> Self { + /// Initializes the `CompactStore` with the given finalized beacon + /// header slot and `SyncCommittee`. + /// + /// # Arguments + /// + /// * `finalized_beacon_header_slot` - The slot of the finalized beacon header. + /// * `sync_committee` - The `SyncCommittee` to initialize the store. + /// + /// # Returns + /// + /// The initialized `CompactStore`. + pub const fn new(finalized_beacon_header_slot: u64, sync_committee: SyncCommittee) -> Self { Self { finalized_beacon_header_slot, sync_committee, } } + /// Serializes the `CompactStore` into SSZ bytes. + /// + /// # Returns + /// + /// The SSZ bytes of the `CompactStore`. pub fn to_ssz_bytes(&self) -> Vec { let mut bytes = Vec::new(); @@ -518,6 +549,16 @@ impl CompactStore { bytes } + /// Deserializes the `CompactStore` from SSZ bytes. + /// + /// # Arguments + /// + /// * `bytes` - The SSZ bytes to deserialize. + /// + /// # Returns + /// + /// A `Result` containing the deserialized `CompactStore` or a `TypesError` if the bytes are + /// invalid. pub fn from_ssz_bytes(bytes: &[u8]) -> Result { if bytes.len() != U64_LEN + SYNC_COMMITTEE_BYTES_LEN { return Err(TypesError::UnderLength { @@ -539,6 +580,17 @@ impl CompactStore { }) } + /// Validates the received `CompactUpdate` against the current + /// state of the `CompactStore`. + /// + /// # Arguments + /// + /// * `update` - The `CompactUpdate` to validate. + /// + /// # Returns + /// + /// A `Result` containing `()` if the update is valid, or a `ConsensusError` + /// if the update is invalid. pub fn validate_compact_update(&self, update: &CompactUpdate) -> Result<(), ConsensusError> { // Ensure we at least have 1 signer if update diff --git a/ethereum/core/src/types/update.rs b/ethereum/core/src/types/update.rs index d10f25b1..87c98b96 100644 --- a/ethereum/core/src/types/update.rs +++ b/ethereum/core/src/types/update.rs @@ -371,12 +371,14 @@ impl FinalityUpdate { } } +/// Base length of a `CompactUpdate` struct in SSZ bytes. pub const COMPACT_ATTESTED_BEACON_OFFSET: usize = OFFSET_BYTE_LENGTH * 2 + BYTES_32_LEN + FINALIZED_CHECKPOINT_BRANCH_NBR_SIBLINGS * BYTES_32_LEN + SYNC_AGGREGATE_BYTES_LEN + U64_LEN; +/// A compact representation of a `Update` struct. #[derive(Debug, Clone, Eq, PartialEq, Getters)] #[getset(get = "pub")] pub struct CompactUpdate { @@ -418,6 +420,11 @@ impl From for CompactUpdate { } impl CompactUpdate { + /// Serialize the `CompactUpdate` struct to SSZ bytes. + /// + /// # Returns + /// + /// A `Vec` containing the SSZ serialized `CompactUpdate` struct. pub fn to_ssz_bytes(&self) -> Result, TypesError> { let mut bytes = vec![]; @@ -454,6 +461,15 @@ impl CompactUpdate { Ok(bytes) } + /// Deserialize a `CompactUpdate` struct from SSZ bytes. + /// + /// # Arguments + /// + /// * `bytes` - The SSZ encoded bytes. + /// + /// # Returns + /// + /// A `Result` containing the deserialized `CompactUpdate` struct or a `TypesError`. pub fn from_ssz_bytes(bytes: &[u8]) -> Result { if bytes.len() < COMPACT_ATTESTED_BEACON_OFFSET { return Err(TypesError::UnderLength { diff --git a/ethereum/ethereum-programs/artifacts/committee-change-program b/ethereum/ethereum-programs/artifacts/committee-change-program index 18e9d90ba949bfb79644be064ad28957eb67181f..9088542a38fb2bf8d0d0a3ba5f6576396ab51264 100755 GIT binary patch delta 96384 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 delta 97415 zcmbTf34ByVwm)9gw{NGrlR(JLM)q`dcaqKqG#F*G10={MxZsM4MnHiP9Kk_k=x#0@ z1frq^v~eme7n?XK$MPaBE&$prtB2%$($tT&PqJM7x;^fiQt zpRpVK$oEEaL~&@p43r;#;;jn9(la}L>7AV3M<(3wuTOu+NEAx%kP0aIcIv1RJYT6v z3wSD19Yk^jhS#RaL_8~U=UBc-=`S_y8qT*XD^R5!#cB(xtThqw%TK)BC^l zMwU&LCX%3-(n#$OoxLhk9E90l8qVzNjfzZ6%(>pkil|14%YoMw*>BVuOSHx=t~JR9 z{WYDt+wnSHCx=C(t++r)kvoWD0wt55=(T+xDYDPd7{8tfHgj1X5vlu9SKa%mUN`){HvZKS z&e??==&e@JYThp+H6E=M_*};DOv)%=+H+v1PE+2c)0`{bAEkMOug>Tnhu-jjyow*p zD5w=U0l8fgq0Rh)@wa!>_vgM^b+m#Lkv8T{&@E4?~lGS(2fxTT)fj5sY5#X zq`oDziZAM0*x#v`l89o&FJQ#`ETlGD?xke9h}LGg^L@8mO(iGf9qm$N`6NHux4+Ka zz@K!@kCbC$r@rDvxQS=hW%v6Ma(net$AoJ|o_Z5xGh0X{48PPUoGu zqzq}3j$9i&agVWpZ_di4=C!Kv*+FhDC!x`3mTV?LUD!ve`5k73Qp*ehybXxpWhm1KjiPYY=i|{oLQn?F^Fqv|>F@I;AB9R&7 z^%ruC7 zR`LZbukS~5NLW@K%c%CY?sJ`;Zczfzr~L`28dBka#qj+?!o^f`CMmSRkbc&oz*e% zs)I(*+yAW)PcF}Q>S8Jv>UE~-BB<3N|KdlST_R{MERk#QTFR%oQb!9W$?|`A13CHs z|Az1hzPhlRE-bVSmMgJtVa|0##^KaxAzs{Ms@BBJ{AP9KyU3ew*kAb%q`m4~B2{|V zmGGh>=SAo{ueu0bkTc&f<|6b*igGVP?;LY!^asaYgnr@@Z$CBm(&%f)#n8pv>HWhv z?kUcrzwxQXg>*cBr1%DdT*OZlm&J(@4@}+{9RInLY3&-U;M~t8n_*`$pW^B}T9b;& z`+Mpe9~R>1VEeY~LlG#640h$kgYDV&AN38dEXkmZPby*ZEsBXy-cVvQ%%8&7l@uCp zQ%u|W3nk2O_BQ@?Nuhj)Vmcx!r0~+x^egTJRA1JL{DfJttXV0!STrb>EFpYYBy<6N zk}oRl626y8nV@vy|3HZ>=SgKZf<1vzD(bTWs)5<=N#15te zkzL5+ERj}t>ac*9#Q_p>8rc_+z(C2(-JfAv{4ZBQj!Nd@gU}+1Pvuf47YSUO! z*?j)IBA@-uy>uxsHF-#@omVfqmo7E0z#eLSKC=}#`0jzZy*#%|&DMzQds6uq0|#Fl zeom23{|~nq4Yl(E0xP+8o+gb-4>P_*7#Q)oT@sJYha7K?*(G<2_9m4?jSRkE(4esm zo<1zUDzA1PCd#T+H%X2vdq^HcxdmpB9B;rhH$-^+WTXc_C|09M?*Xya&Koaggf$c> z=06Uy>%I;o^5LcNh-YDPg#^%Mn zyqH!V1E=M{O+wjl*+YV1A(!PZ+eW+1qPtvl`R(z5GGkwjxNB{8bX#G zut_l}fdHu#2Bp1axahhfx_(3mKgngAi;ESoh_!Am(i$ThjoJXMnp9jnZ#No~!k_!3Z-fnVR5a=QgtR#t05#&0Z402R!0pc(wMPC9diqjs%Huv zl&y|kh-XYZ8&q2LGeRbiZov+9eWq0Xicob(_Y(*yQtyX^6^Vy01v1iKghE4V6-yD) zOraBzy2NUbAyp3+$_(jPu}UDlg#sVxOra~0E~LQEP{*x+Qhr9z$dJZup);K!`&}pl;^ZbmD$|8r?H$f{4?E&jp0Q9h-=ED_`KbF#51y;U zGYOrTM5R)itz;)qwbY-**VR+^*Y$X=63;}ncVvaWUPq)dnx*6t+tW+xY zXDEG_Q}?|$Q~vBqqPjXVLSNoW)sm_V{%kx|vQ|>}tcUr?D@Pb+tl-P8wB=6E#wd1J z-TzpPLFlkb&W?N~t_}nEDRFBlHG>+`Ofz$ebg-F~iqvIBJ)~pJ zz(;zE8Td#Snwd+aGtI#7i<oq|b=*bhJX?BfrJ$1tJRei;AgefOrwoUqnSz_)-u? z-fF>%kk7QB9_kOapdM0}1r0(v)&hd4cZXtEn>iEDf&G^zCJsODJpVR^}VT zr;Ku?b|kq^wUJ5_C2AS%!=Hn|IsE+DQCX=~$$U+KV9b+4r#gvp$5Qxvs`!CXCBv%v zC~0*>b$0Y|Pk)yvH?N?olP2@ECaRYEllk+H(a=Bsn}inMLhwx7|9BI1slwL+r`XTk z)lOQfHvuj|uf_p&dEyYfaFTJbHZjKBUYyoN-BleODSV9#=KE8@b{d+ti?~lUi}Exv zKwxcp=pV;KK0Q(|L#qeJ3x*Q7Vi2oRF^Hq^K+}{oj1%*xajsJLKVBz-Ac&`HW6G*B z+|wT^ZZ$%`(_hGI)6UY`+Mr<1>-UX zBz#WYuR>xTpF=}mn1OhnxL-Z5X;f%XC_I|2DZ{@8I~K2JlB z&4C`KeL{~t&o_>{#Z(H1(7JjaH-1QQRqxPaAJfpDKcmtsRIQ-MpQE9rpW!vPqx^Qr zKDC9uInHN|??28x^i~pDv4XnqTMXlMCUNhcNkX-sAP=0!pv+%;p17^!sQb#9)V<CT4!kc9GKgW&uMU5zXRP{sr$8C`RC)$=2gNBSLA68VkuKg93|cJl6@LKIicLE z&2-OG5XM}o#&6?;(qJE)Js;`?o56``{@}ZqrvBv64;b!3f0FwT??L9Ol0!eXV|c2P z+zZ|p!;>8P=}$zp(WKD7{|Yu^ia!t%;?O(v{of!C{yy%-eo)eytC zx#tgxG{Q5ZTZ5)Ujpp*|v*(qwn9+KJr}3+z!^10V6l*!@B<~Tm_nmj}JAWypX zK3lj`9C5(m^)Uc=Mc{CxA11vI;n#V?wKc;%uSHvOiEeI-z&8Ca-5kd4*SQRy&3w{z zX;+gg-17rb29IFQi`rYou$|P-T}<+O5z5=TQQjns$KZCsK$68@y3S_sZ0GM^cb|B{ ziR-iZ-Phk>ARGAZ>urYc3n*Fbm0YKaS!q?ePD~d_so3FSu7aLr_GwU?{*3PRRC_a2 z>Jw?*%cQbXE;O=l_cFEAQ3A`MN10SQt%N!KMLh~tS2J|*H9g9tl2awD=uVz>Lzcm_ zf?s}v%|IUEQ*OvKgdgM!ZW!c+aoPQ4lEZ-xt?$uL$$?J7DD7FVxfpu?f_msAtlFOS z9HK)Pl%bQbf<--VbQ(*JW*0>4f{N%R%;*aUiUsC^dgvrf@1FI*44B@U493gv=&-=+ zF(C`YW2n!|Vw?YazWv5bgYQm$5J~tB{>6+irTe0N1)e~rCg%;oK3E_<%wM{cqie7AGo4H-P)W|!4-OGHRN znzowQmPbu&Q&}9_wl$8mJ!fJY9<{KB=Paz{cNW%k z8{c>{GmvXEnxEY~$sm>S%Wk>ark0#?^w4Cq1g?Vl3Q+m{OI7-3# zn|vqRtDL)pv+N*VY{I0R2gJLE9)*BW#I1x6{nTsB|T@4!%>a~ zUQq8;IbL!>z2I!!n&BdTmS#xzZG`1^*cw?hBZbmhUH_*b`Pd1BL>5^*T^S(_-|rGTN^%Dr$wH#Ye@45BUy}r|t*vf{~3h^fr2KBvpWA zqM@PCZE@59ACBkd41V->DC}Q(=^eR-@IpTR4qLi!fqVX%$e@!YYV!o_$9LFN9=PN3 zJM25MrOl5TP$*%Oku9|*N^0{V3Hyp{wdqkjPcWi#rn)83h;k$LADPmYNAWyC#-1Zn z-JB?+T*ihaQ{DO~&c~=tTk+?L6`w5N*;D(bUeyVQ0CgxkQ{nG}H6m~KxX<#jQ?qgx zyo#NFpS;kSmoT`mkkA7BzJHmxzu!ZY#XoWH)Do{h+x<%?tXPPImeOqZuObf_(o)FI zZyG$y{XZgwto?wk%FtZG6Ms7o%Y?cYy+%W)@$ z`3u^-kA!}D9W&!~u(TtKHSCAyVn;UH0GEgDoov6>K+pPw&Pgn7~G__cN zm&NNS5!)SDXtTujCq;6!>f0d4SH%n}OmdXy+aSj*v1FlMtG*3#eB~0V5O94P*_s6?c#rBH*tB*#~!c%N}R2nc}bvA#E)KAPE)9@B-vZ zg!)2$mQZ&{TZQTp@N(2o(kwTeFJl>*#HZHg8b}NG)uwsFgA|-_L>3**fDG!j#%VT^ zCX(S{?rE3{x_AzQ7}?y_Fi`dUP^om5L3NZEAo3Zi<0}L9-!|3JYJjLCKTAxJT);7C zBHtUvCOY0va&+WrrnS}^PX#7}Zhq_ea^&q@ zlhaei-?-a3D(q4n{%&(NT&z~FES72>E*8;9QZ;0Ryh^ll%a^aOtQk@+bPk(Y~;xQ8X`CGBi%tmLBKTF*IgFGCrpoe@a4gL15*k|T? z(V9M?iPK2vR}_?Y6o3Hoolwg_uvghY0QohTkFBD$zQ!@x(Kv`BqCSLx5CTAj3b4S<0_B_21Mc_DbBDZ*PXgi1UM&%Tfk zy*$%B{|?bqaM_rmGIn3|sA4Gjb{T0t6Vv=mU6xXK_pbhne;)juRXm7VTLaIXL`g?O7Z{II7SQ zt-j#3{w$6y998HP%CUiSpB*laCNi;65nhifUIEX1h~M_R3NK7Fi*n1O@IX;3|9B~) z!Ni%3d`s*!wL#ktC2LwnC>hIo*oDj8=refqmQW+M_VMDhw*G3j+}6YIp`F_5_`UR_ z-p=jXUaRh)xgEh*c+ahCwf((Ti6nGC7?e^E#HrO^#VK_OX>QX&!jhm_N;?n$whJ%Y zovytM2Z)A3`)R80N97nC#x7dG9^YbR&%Y86cV){;kPKqWXhJ|jcZ@AHZI%3ue^VvwI-Tj%>*^19eqI!sXr6=BA*F-q!fmtmd^q{ z@>Tr&@6)jor9ZIK8!{qpMZ~pC4c9~u^4m3+8_rP^Vz6p`UmVapN~)tOUq9USjqe^G z)2>U=-R{IF9vK;>slS7aRGUkCNiA)?BGbUDomB@<7=)3xPQn?qW=l-;#hfd3E){DP($xY#S9+s~sC!=`(%v_S`sPt0 zz4;jq{mu~ebt9EtzdePj`|MQOH;}5~Q51*WR61}smG;l0>RU^xdU!RJ4mVNt?U$(Z z_8U|>c(lhFuZ}xKr7>rzI!ZQl=Y-x{-w>WO-yu!)4CR;4zuv2P_;IXOn}T4Isbq+{ z(OM~O99tip(KC;@)+ZAl@9@Fp)Wvk|s+n`yZ+`bpqZAco+dG zD;{$1!aOR!CWV#WpTWxS%wYL_vY3r#={QHOky_sDrMA@dQZg>1{QY;m#0^I|zv*4V z-+K>k-zulXsFN#|H1zo&h;rk5By`txB=mY5b&pJ^wa*(2?$2w{fH)x={gn5P5uQE> z-uxd4zY$CQ-gN37jk?GymFb8X?lii0?n2`{vSO4-=@jG(T-1&=pPzzD2Q?Y-%GnW%FE(e`F@P+mj=`oWr&}MiwE3_x+q&_Wknxi!}2A{M_WM?WpP%(6Y(;XElb49 zv9bBm2>e9g8-bq)`0o-x0ENpEKmgmzF98^x00JnBOHkX!E(8Ii)M{M_0!9%xA=T7* zwA58M9IQ{TO#@d@u2|p1`M5uw$IrxRV&ta4X9t8(|3Qzpc<@S|w7@o?&Lfr9A+{z# zM@s;j{ku$ND@bSdC(;yCg0;ud`c%*Te8GYoscHXk{?vl8S9``N$LeXL)MikQB~YfN z^`z0zW?+VOk}`QEZKQxrMl6(;uEf#;7?~|8ay=q8dcD_KDg2m;HWH-o;@F;ioYF}DmBJ@41LIIOIgU0O_M|8`E+fqFuarh< zE6PAr7BCPs0yY^$ja#{QA@hcZRw6h;!bJzQX+_Vg8Ox0cm5AC_WJGP>y;&%Sah28D zRJbv;e6tos#q5qNV^c*O!3ZIV@s?Dw{O1NRTN$=c6WoeC71M3&09G`?&0K$kJ(M_r znac5Bej@MvcqX6la6+86*9@=YQyYfuvVaohW5|P4niWT{@*%9+mU&D2n?-}>}YN|hn zpVsPWuY}0Y)qE_Eb%O_mqd^HICi8&R6oJVzF5H za*MTg2|u?u+YtVmXM3|XpArus4osi=U-G-39F}!Nm>)hwTpm)?=0_EAfQuFL$*iyx!tr|;{ z!VgwrD}Xuiw2s5y^rg}x{J1Y~%-hk)EK=1G7#{VVg}_V^^(4wUZn7zLlS$X)M#R*l zRZ}X({jZ{q6lQ;8I3MM&r0snBv`j0JA`<-uZ}4Y%LzSm2GZlIMbfFh3cg}bfJJ>H+ zE1u8ZHxwJ?N})R|&rWPsq9Zutq$eQu7pf=QFGs z&&N*OiXiKE*v2*&nCW7h@!OhE-kq5`bNKTsk__Z}DC8WcHnN^}w#{N@ZTM}$Zxenk z_%-3T0lx+de|$;)^|wi##b$L43YK8ucw)CfeRGUidh-giwD)GSy7ykQv~Rgt>U_wo z?t9v-{$;aSdi!UK^!i(7wew}O`uYcE_Q)G?(%Tk``u5Le>2P0*dbpTZsF}$PqIe97 zudqmmZ$|OGD9%eC$YjBoe~ojaUKeZF&f08&as4-UtUl+=`3x z)kdnts-1dHi(^rqRuO`-9N}l^(6f(G>CN%x&_8C;(5YRZ7)L^;jgr&&i zik=5~eO=}RG7U4=E<_W%A|}KVDwzq9#BPWQaRi(RQ3Tv3#1L?s5JA9g7lq?PYo zRzh3(_uBt?k5u4!;v-q!*$hLCV4pV;$=ia-US((H@YpVkCnujedoVI{w3A|%j|&_t zak^l;#;(LmusQF~hhw0Cx!x&=X!Z$+`Y4df{RJxPC{Uz$v2C#PN8-gPqD|UZ%I2K@ zWUqu1QMGxt##W|m-3^^b@^v#QKV~Lf7o4QUh761G3wD)Moe(jZ$Y7~@C`_hOm`vFN z+FRn_6RvwJWO;`$|7Mf$KnwFpvX392+Uo~M#RmtlRWI}FmfI&+E0dQ}rfxPVlZ~`- ziAa|chP2VY+@u@>EP%3OfGrg%U`QL)r%`V?91Ehpg*MiSbU9&28w160d@5W3x&T$^ z4c0ZaSg2LF2Z9=m4C7PlGreKlqJi!+3f)()={{~0x^JDX`z%8Dl@<%#$1Otl4K3Dm zpH=9-@g+j{ajVdMQ$Pp0FJ9=r*(E~v@pz&87M1)*-N&C>kxUOl8d+XHR-OO>#LtCa z5q?hm?D*O6%jb_R$)D_dSE??B{Gq_oc8+E2hL3+J4A1dqY4jAx+HA90y~wQA)SK1O z>mX}wW_84G7HK5pbmT$E1$1Uo_ulZ{$Q`19#zn!obr`XgH z^?)q`Y#m^20+y!1whGvIz=i@g1u*{SmFd$aCRj9RtAPGy))e5?*?^W>LU-Lkq={em zRDj|wo2S@Ve8Txg>(}R)_29Wi(UZjN^Nk6=onr~d&o##HKF4~0eZH~R!Sk%wqH~Rj zd~iLyHyEz0D@;4QLidZQAZ3-kw%VBQAbXJQ}pWDDd2mm zG;vXiIGd@+T-zw@4O+}zFQAbTly+a){J2iCQ2k?lrrD&>O zBmOjA2I5C*?B1}sHM~L^MGxgnY&@)#8Gj*-(wB%t-%lG&3kfsLB#rVdgjrm) z(Y%5%^Dne9?n^%BG3NDr-`$pxa05GLY~vC{kK5QrqcvvBe1@A@lRO9$#~No}BW?p= z#V|rW!Z6oYlz*}OdTdJ84S>o_W%k_zv<;uL4I7i)!snLCTzIyWCJew}VspZKJznZ1 z*L62VKozHo9eKgI+K%(VE>ji`A5YS)p}W^c_AQ+!#Xf^uv1o3%HMUoQ?S{Py_8%AQ zRoXRIGQ1YT-Rqv2s19ykb}anEcRpE5}2>Z)ETl2qDnl;=kfjc zki|9e;tqta+1`i!oTD$34ojWOP3;jEpfFY0Qn}a3r1@vD5jTn5pJsMzb$th;t3W6bb8TBBJ5NhxWOch-4ud8-*NW<9m~);@oOPeD-~`fjE+1J_55 zYZzU^eLGU)weAwXV!}AC+MZ$71vb2x&tB6Pfl+o$i%caTV<}m0Lu!S8RiwBox8AOA zlsmu1CWa{SLV)ju0OM9SHru)YZ-xLP-+i;K3+F1ck~VT;TZ{V0N1^^TFb zd}#`t#m}7+Qj5Uy^SnNr)GmonkvbE|$+T(bA-Wbu5;JR!0X}+da-nR+rdXTAv%2>~ zEdQDmYq0RW+_yG&n9r-)A3ZPG6VJ~%eaBgV@r4VYNpH2hUub%rlxJE@P=wHzBo?va z-|>&u-Vh(a+rnZC8gAu7gEp`1Y8T#(I(ZY9eTHCz2AUUP{I{__{=a%Wv_bH#)9F-y z|G#=Vyiup8j_@?p7!FV0tX3U$)lx}Kjp{PhT<9L`?i%dA5mw7^W^c0g^z(UqceM8v zn~k@ISJuFDWHH@bxz>Qqb6um`)Iq#%i<2?~ytD9nHPZb^WjMG*8i0on>j!y-2!ygP{i}64`HR|DU`P8oXwv3}@vN6m40_-wM-U zYl=31N`I$xm$CL#{=-vAFe;_acztKzZxWF@hv3kn1cw*6GO?sBGiDHrd!SG3&XhKf zBdWLyDt0){2e7e-MXI=Firo$KA9P8br7o%E>tY5AU2SeFX8yKZ_ToWYO`R>u zvV}K6T;|2@C|mMwIRGnbceXApfgf~XnH5{AqC)7#5fP8avSnX{Q(gFZyU%*fs3G$s z0{1h^$N8UaHV#q~um~@T9i)V?a9_COd3B4(bANQTms*!!cuCXP9{qTPxTNU`U!e=t z=HcQJruY~KPBeFmA&6)JCpeIajT5*zG_z4l$7eDMpP|?ZNFv2fz@X*5Fj87!q?Ax0 zAWTLf1fL&RG8wQqfdH6Eq<|r9l*ds;{xy1ryGK_?Ni-q{xL*7_$N@G- zQ8^G!%hIxLa=`!nRLX5(+`Ej*fai`LGO(h}7L@_^^lt4UG%ho1G9ZaD)Z_qTugO3} z9#=`7hOVy^DK?yg`i?TYonrV;v4w|*x^1m(Bxh?n%i>h;G9r$f-A zZ7ZLE5Jn@yqM`Wul>%+*ku%*xl-m)yuPm3}QF;q~9-E&Y%J)6%G=b*|tD3U-x`rVui+(H2LqS^#MQfJhL2*uxB<8KbPi`=LiLaOYqtyb{!Pm z?fbfM&bJ?ZD9*#+azko*l!WNE{%Ul43isQ11ABB)1r$L!du(@k<6{TQA)$cH25b==r}YLXfbz!2cb7BY!G4XtvI@&N7OH;XD-hpt)10U^WG8ara*PAq1E6XG>u|6 zWazOwvdY(sQzRV2-zYUN8{r<5N>38`9JVwRKDz>mT~(vn%r(NLDK$Sz5#LRv7R2?m z93spMey4Z`yVM!pI2~p&zfNNwOd8%_S_VI$-SV1-)EMgmvBRFOmZjp|r zk`vb&oqORpX)6VdQqU*`4VUUzh9jNPxVi|J9)dTu5U2Wt3DM(0A;|8803!Gj61;3{ zJN*26;pcx3zt2lmM}30iOh{Cn^@&p9!9>78cyBptey^Nu{JdOpjtA^uf>by@K`P%j zU1g6yr8_ucsBSa%(Qzf9e3jQ1l8+5uxtZw?os9b!fx7Hf)I?u5&AeXiIVV<(2gv@~tU zQ7btT3RTDWLdjWQh~5?QjONqn-DiMWNDI`h%kGi3?&aw%BYG{bpAg;Y^FTeH(NZj_ zZE>8pJWNOP-Wv-I#KSM&=;4btW*R($`S@M9Cv`dBy)o0}xh%H*5>wMedO?_Ql&3Xh zpb$;gGGipl*pr)bX%)}gR5^L$G}hKWt$TaehQb-FAvl9=3r=SZ%kE(tmffSzJaPUA z&DU-FelkDis@F1!1k%!#v{~*ff zbizAvq2TN(+_1#&1_^W+s!w9!`N3*30?n7r_>6gtz3_VAE^+JDmY>(N1Uzvc!lD+dO__TSY#( zMsnPZZM|L7T-s6LiM*B`@6P4@TJJJ=eijY*QE$K*y#e3%XuuMyRd2xQOElnL|4ReX zNaZCOP|w%34dA=BR}2w+=@iGwFiIk)lx|Z8biAp@DP_!afMeI%6sV@8NnT#M71D8> zPeKy@fbZT0Kf`-)8sP5OF}`jG7a1M|o{K4qIdA(Z$Iq+7_8XCDY>^G(~54W3SoIC-6)*arT0@ZXU5UgH@rf^9Dg zwzUhkm4{!_nGnEtX*3bl9Ctc75>gU=>vBgK5+c0Z4qm2l+xC=V-_{rl#V(^H9%J}y zacm(3MOHNbJag^jv)Z!K$d3~4N+1Tm+qm{VDA;NUH}NBFuHj^ZCUpNN=B~O{XYM+k zxlilN4eHEYBbY1Jy+7?J_rCQI^n5RA)AEOEt+-z`s9IkK5+M2{i9xUTau1TVvXe=& zO)B&=$*~t|7{lIDy$}&lHnmwsIL{8drspqK(LL2XR5VmL)O4Is^Gx;rAM`xdfo?>o zUFdtP6;S6`Pc~yc*{rPn%3i`teke~==>wj=+03~FZhIvTVCE3 zxpa3YnUg=sBJ{WTQVd@j8swd%N$Uerb9^E8)rC^a%0ji}Kw;&3hzW~Zc2g+vQ$(9= z&0rh$WU!_~8LZ{w4AjNGdR!6e;#$IiBDM+eEr7QHzDp0iSC~+t4HdSbLSa>&S{#S#mZNd=AwCb4^H4btb@MED6N$?S%Mz!1Dpm z2Rt9Nl0Yj7w3661ZrwS~yX_F%z8~W&4C5fK@iwXDK!Mt_vVd*bn#?xsL1-`FO&T2E z;);i8AFu;%XBz--0DRjag!z7)0(?8*cEFiby37E4gahwM0X|?WaWpxONiFeAb?r6a zZfOcyi3?YUQf5S#FkymV=}S^^wJ@j+ybt$C;vGPAp!p6o-+}HS26#^zx`)u;kKv_` zcLMGN+zGfdCK&M$j7_Zw2YwZ?!w1sXwvTwluCzFfEE&VIUxiw&;d6JT-mVu_U%UWQ zs<*;368qA5*p_CI+Sw+Nb}+WB854)vvF8yfV;h>aK;o0T3gz_$ zfb!n$?qtsdsW|{^uv3ertWB23^XuDfgE2RoF*h5J!{+I}eEtHzp*DJMJy zTVdz59*4b$u(yc)##h!``S$iFuMK#_R^$aZU`mU#N&E$tKZx;tI z_(-Q_0Kwa##K#X%0%D26_o9UHqx0P!TK%VDYIv-kzxMLg3hWy9@-o^Uaq7C^@Z|Zg zqsg zybDW!ot0`S?AV=mL!^1=)oZ;l!Y&F=PCBwU8l2r8Ikgc7Oj_u2(vd&vYoxvr#%uER zh=B02OVD{ZN+*K*u0P8Fjaq~!rf=wcYzeU{t>YO4hxg@D`wuqZYx=6&$BdrIUMY;}b z7HONnN4i_!BRweakscTL$x`Rn0w3vb0v{$OkDEmEERWWkPg)^`gD%h zFZpy%!8onQSqxmm;%-wXT*=~IQ)j&(fOMU>dxNx1;3M5F@R1%A_(+cn{4_K`;ANr# z0uN~d!lc*dLO6w^pxY-rlU7Ytg{{=w`H?;vW%-nJhVV<55*^rJabxRd!7;qvxtnWpgT%r`so*ui{LB9E^z-}uPm z9_AYwd3=@mO0`Eh{4(>c6Qho=)iYnccrt}|q9Ku*Arxwl7KCYtAhD>7yoe?;J(q3X ziY7)f;A1PA7|Vq>0WFsEwE)c?MQZ|DBm=Y!K+B8L55EAkSkCtx(DI{b&jKxy0ov0* zi{-*=ffmc*ffmd8rT|Te zqTK?tNCs#(0WFpbPX<~n=erJQDN!_d5~?B@piKl?EEgURv{(*by%j+y5l&tOv`7YM zH9(8y!Xtqe%lWE+rcDzu09T@-HqBq#3$$UV7|VqRBd6&izzn|2`J#i<`+GiS@U&{1 z{f1WI$1Un^7HHwU-Q$)K06OIDyiDSh@XcD-z;!@uzHhw!zEqkQ%u zdqq1ic>o?F5h}8|`2xzw_n_Pi%K16ClRE}GLrWLo6BGS&!o5%9bfPz(bSSew+5dlN zu{SJsAw64s;&Ahv@Z+Cru3l588E1-EmtpwL6;_PzgxWNYNaBmU-99CZ&3U3;zdBvJ z?x58rzwauOK_ekT!!uLbJeEjpD~QTJcsp@$Qo4Xe>ZXb70Q$Q;GvFr1#-B{ncCyt0 zkJK#ALiMO^c)-U7x4$nHc~73})Q;tueb;cfd|mC)SO}QSYBSFL?D)W(_yDp^q~ow? z?~EK!3NIbTps_7Qd%G;Z0xxcgIH-mjd5Y8q&WN5i9YAm6soFLUA5LB=K5YN67MxE! zH{Q*E z^-p8_zKvWnMD)J{CXT+}(Ej|2NxnyXMGXF@d)kFJzRuf;vzi#sZqoVKX%c+wHg1!^ zONz)5s((h`_eXJ;M1fB+`n_&!1o3S@jI&300LXfsBLO3PX$Evazb9hqjMD;|AQO=> zx~B3*(Fy_RDJWwkdxs5(_eL6IRS@mb)gVumTHKMRB8){UuF6;K{(PylBOkrGL+4cI zYQFABZkjk?$E{r_E&~#uBn}$E>>xjK1i>N*8EYo21zo_^jOeGvb^dwY*ZJq^`MqOY z0Kl2#UE=Bp-c+l%Ozxw1DJtS&Pplkb-zB!>3bh4dyLkmfcRx{wZ?<9+G!_R5D}+Q$ z(~+tnzd#B^$Ab)wm7}bSn1{dkPL@~Hj@AtK=N7AI7PgYu8d~62*BFaB8fLVfZ;+tU z10JK{D~sTy>#c}($ul5UjuDQvVuH^X4YZ_;Ja zb2BUEYyX;`?Ax#4S`)WSjsCfYNqpa5hffzLrul}*-wwH!n+Rz~=kR6UXE4#mMc$_% z(h6lFxh72fm?Q+L0#}Q@dJB;s5j7R9FUJTn(T7H>cM#Dk4B2?W4NH zR6h@JWD0h!XALib&xncCq$$wM8k!(JaO-Ypf(rwDj|Frg--2@w;)$1<-+=B|iW8wx z&?j3FFS!SykcS3ne^)|$4Sy%PQy1{I#|fg#0!yDfn(jTUw?y6?^*6gs9ne0zpot*U zMW(JdT`c3RF)b!miH7D#3nB2EAn>skMkYY_;FImz>FM*q2Cw$;f%vw#=)SIrJV^6< zsK3~YGh2URYHI1hltvZNxW@vBf8QO|??+?${dC@!3Qh@deEg+o zumblD<|2(o){LlKu=DEni0`JmisVqC+NABLsmUQqf(LcO2uqh00o z@6G9R&jl~2;|cHQdVyqoy6ckE!lr(L7!!fWqTTYbor-A{#1x83>#HwEz{T3tGdOvk zp)z`l@~5U!oyM97jcL0S(_Dj4UOEj=-x!Tv7yp&4G=Av)l=ugCI@?7<;AG=pzn?Qi zGzN-=ThN$ z3n?G6;N6s%l&_N!Kr7xQ)@bcr^Ln)P!oRt->ci9uM0D%Sul_GEA7Oh@#)W^2;&%V* zV*Kcb{VSR}ho3abU$guGmhDye;*)4+r*?`f)zo?57`U*Vx%}FX6faJ3Pu9u*U=4D& zSqNdpEQ}sC3BL=@z@xJ*VogmIv+QY2A}{=_Wtz$$ahkjZ0^7PYw)|gR8auF)HM~lO zbg69lWuc#Rl?^==x$xROh#Uj-7~Gqh*$4L~Km516F^+jLCEclMFh5>r(qCP@8^I^4 zKEFC267`h2z+x_+mh>SFKZZC^*xz+Ta@GiH-ixUDxZEID;*W*lYUEm>=!28ARcu`J z4e+#paqzfog0UM@;K;Wm2nPB7lZq26t$jLH<2rH8@*TnoBl->c5Be=;ziRqT(}BW< zJ$?8bKXd$MD_#cEQ~Xu6;NhjlTt5Hf0dyZv`XoD;^tdr0bmZeJDg7_xtK!~7$4zyw z^P4`&sSr$(<$W+#bynLkwl3P$bSLsf$fF*Y1N%ZvpZqsX>t?8Sn^(d5`FQQFPZi1j z9{wiSr!oDEB(w;|;1}9NkNLS)Bkn}Qx=aJxcN=MSAYh~nozF?^V5wECYppG~q zX!;%&HT&xsvLG0i=`cMLegH@jfM+iLxY-4mo>|>6!!x>J`mm%$G0D{6K;s3N41v)I1>+Ynz+gEPjmA2X7aV1# z6{*<*#ASb?Hc}cWoEdz?Oj+LyT|^Le*aJ+`gKwDeVkMYlrLMGak^qB3QWphZ@8D1i zniwDSS!hWr_M#Wo@Wchf7Bu^4@O=wt83e78)bp39crG}}3R1raQm!=5j~7=VKSXJL zZ3V6G^mci^xkSx>31TA*;V*P* ze~UIPB@xu#j&C2H>1sd?VidG`9nRXl%*5-aKjVtaI+y>f|)FY7$p8R6M~U0j9i z2-e^(De10-5%Q}5dY*ZJ6Y&Mtu_^Jjm z1+}v9qToHK5T|8)4+YmH(?Pv;$oz;bo(!Hy#zfEy?+<1ubda7Q_XV$4=)IB5jP^Ga z`jvqe1-GZ6ozC{-NKEvvL30kxGaglz-x@qWo8|XYjKe z=%Bv@6LRScx;r>87nAYj;8VG@mWG1AiQJB0ejXi{+J+v8KP853JQSJUq-TS^Jk;16 zY|5h*1udvC6nz}Zmsqu6P2}~UO`)W%^2y+tJd9*Rur#0ENS_TZ&8I_XFc?OX$}d5E zNieAZ)K>)u7SQ*Km%wbmyZx7SanR#OSpv#nct^QPe8GV>`cTCQjqM966DUIY)?ugV zzf3esd=~iu*ex1^E%H&tIz@v8=h|u3Ff0)f`Wkxp_sUBAu^-vrPwzL}30k@5enCzv z13A5n%nc4?bddgD&ur~|vR_;~FhwfN5`=hr`i;f~)77$aI0!^G)Hq zxv@Sym{0_zbr)Y5pKysPQ-eiznv$_Q0==oyLO&3!o zHwNE`A$hKgP|fJp#cKr;m;K$!!jpnUIG2euSBjL+V zdK2;YexptFRYZ_9VTlZAd2mu8WyPfzR}Z^T=HjwHxf_Y%;5t-K75xw(!PY1PoWY|4 z#3G<>yz$vIsY}fVNDQ;+X%q_!ECiBf2k$Au!mI>;Dxz+h6f7;K6*Mt8r5Jk28hiwa zwmuF7CWaS^L>K)ZgZql1hK#|}#WcOlfPoi(QU$vjf3~O@sf8`A{{l?k>EJ*YX#Y=e zs*7fo{R+(9z%=&6B)?pY>G@}HlMC9M$vaT+D6q;6{+WW8)bq8R#7+7mqREUhBDo5(r{g2v91ed zbnCQmtZ9tU7!+ytTfv4hnx48BpbPun9y~ILW(Cg=pvl3X%jk#2ySgexyB&TBWfu%P zX$t;UP78ro%9X zB~`FZqiyy)4~l}l-FQx(Lz$4XZexQ#9c=OAPuYS#Jg{&&LJr`B)LKBEQRL(cneJI0 zV|rTfgMRey-esVw$(-a8@)m1d9m+NCs%2IBg*uI@Zz;-4#2fKVSJa1*t-no0xyDLJ zT~tY9iPj~ti;X@X%5+|pbbziGT|S~M*Ioehkrph{%EEtyy4Bf-GHo(w<(@^Dih8#( zK{U4M^%pAf8rw7$32(nn$MXwc)vOKQ7nMVsuo3uRpbtJk|GXdg%mM(UZ{Q6VC>Pz_p{=e90FV5n9`rd&+OGcNeZ z|Hs&w2S!mWkAG%oHX-4PED0oBfh0h}eMau#h#;V#9HOE|!=<7`4n;(m2+QFC(FGa> z73B~SG>WjOsDlzuR8;ig4T^$3RKyFP2*0YX-eYF!z3=ajuuRXVtE;QKtGjw;dqGet zWf~`{y6Txqm9a4ia?len#xKDhBz^-4^Ce(k1c34iaZ`MN z1$z{14+i)=OqVWGvQGCXxQ(E$s?ZG@i(Dpjd?*Hfe^09171WYe#xD;+Nh;m$3_V14 zU+f)Vs~F!22C8zX>KTxf1JkWZT^LrI$eT)jd+e@>F;A-D1gyGntZD5wF54w+S_Jlq zcj1J6?A9;`klkPoNZ3e~_uI`5VfSq>I-je5)W2SY0-Y2i zzduZ@u|8*=1OLZ$b{5D>Q8k62SFW>hIH)wIju_GdX8NEw*h2<8r+VmJvSBY17tFd` zPb9{Zc2=zJskaf+dg>Ya-@@(*6YgJ_)T`Yeky?5taw?t(heR1Xj-)@(K>i=1Fj2oBti*KDyPrNd6DDM@rq%-}CMP{^_Q%BTeo!KuR^~;um2T8} zRAg9yuJfbLazyiLJcxl|C|pZ4>!-ufL6+X-obQ1~Q`A!f048}0G+cqU>?K<^1k*vab;J$#XPqrW~`huyvbuuDCRR zbfDg3K4rWsCpclFCLBgVmzpbkINjcb#*peb;_7}8~-N|DKs2J1grVWpfk39fNQ zs3)BV$)5;mdgKmM!!(qSYh-Dl(*yM|DdAiOLkpZl1$A+m(Y_SYYC#%}NSS7hgESCc zL2(Nea7k#X*$~pyID{@p`Nsg;6w)b>q5PxadMYSLLmATYVIyW#G5nl)q~-${^-qo9 z-yKOi0`T=qFE(1gi6)Q^gD;g0p5abL%3rcS%)9eAF)_Ji; z)-2IAeqr|!sin!;uL&y5q4B-4c12#wu8F^;BK)|C)x6C z#KOU_U(*Ur0^U%Z9;{!U*#tn0=aXySSWF!PekVs%;zz@z8atVMjjj41rX!S>RAViq zL_@!iTL$JPxxTWa z{P;V$0;gaGPBa<1VKVWbs=(w5`~hjxv1#RcpPCkCHQ8iw#bA*C3Td7ub6{HWG+8bj zS)fC(J4_#u{cq4>7D|$e$F;D(7i))s#z%#NAK!{2!}KnhhyCKU_eI;`Kzu1i4%fTP z{|tx=BT3eRw;Dcyw9$~3)GO?RkcRyzsaIJ4f;2P;?f6h1{20=}IV6uoc&CiiO>!3Y zhu|dYMS^u??dvH^ejqX~(C7DmA7sdLS5@+xaE)#$5;_01A=x-*uZOe(;Lrjwcl#)$$$Uu`xEIraD?pb^?zTdY z1Vzu0dTsq7F=V7Zs@?s-kO^wSV~Kbf+GHoBJr z=&7~6L~OkXI?y7qA3qjity|1@Do_;^DcAjRv6hVz;2u@GN=}5hc2?6G*ixoBw?i7v zMwmZU+E}JTsHds`?xUG>2gJ{T^h6a>WgjnbR6AsN>KFe4H$Vego>wIjibTQNfjN1kMyNoav4^GV_a z0LTpK(E7m`q?Lgn>~u+HaIS{58CYdGNmBk&NTc3^CX{K`Rgjiwec~>}v`A9x*M|!U z;jF7PyIjm3t)Jga=5WSB4wQ@!CT~tM@ECDublgOvggFLgFDhfCXgdZTVvrISV1cA8 zOdFAuhRt7&KNd=s-pH zj=%;~EF%fhdigV1MPl_>*gK_?&^V}tER8Z*-Tj&D0&!$4tgqo4Pw0=Nh3Y9~J4G8` zqQ9o+Bz}b)zT;3Q`8^D=yW8>8b0mdpnm#*OloJ9d`A)PK1XxGSM0? z$|vggtBV05V-nb0-oZt}B)vaf*uBKuNzjAo&bi{*N%{hK?s@KHeOOu>(Ee&r@oKSd zik>ANovdfWjJ$g?48j6&XtF*^&lO##=w*7gSUp8w0~@eiuhkdpsbcrF`Xy-r$UPr& z&!^m-uhTEUXzV)JqCF+5u7f4(QSruguy6aTI1P#IPDFyg%#Vau*2Ff4ynO`e^fSni ztp#ZVDb4v&jJsaHMgLChzg}OI^x#~SPStP2Ez7AgN<2Lko&fC^U2lLj#6D4uA8&}Q zH|R6;JtFr;@Srb=AvXfKTTHnTT+lAD`9?r?h$A-wvQ3Pe29MVs6MLsYoPZ7yHxXdy zK%bGCIroa(ay>8YVYmgsV?|R@)fDVAqg)>Z51MwBL#_x+I<@c?=2Z2$FIxX5eN71V zsjC*k!p@cs>S7olP-z`^GE;<1!)F;`F!cd3JgncID$}g<#Qw0}qYGUO2&L=8AyYHR z1hWJTeaZ;^8`s=&{cKPgKKWh*Pa-6sLErXeg8uEx1dqlclTr~Dg|W~8mPk}mchPvU zUMPN9q-SMzhDCA17^6z|U_w=7uo$?}qFtih^pG3>LpR#ISi#7eSS zK^l!?jFhPwEg=nqB50Es=fFey#SlHWh+wD@3n3(KH3tRJ#xy`l1a#mffHwhrvKzM> z176FGTaAPbIP~`oOZ2-kGvF@HD&Wjv(j|d)#UMCDsSq<_r-f#Tsb<&o<5s$;1iW31 zNSX|>;AljMV9?V`X*Q~hEt#aU6%>b-!r(E)sihE$YqYGP;E-}TXQD&y)PL6Dk@&fH z<2Z3ZiUZ4Fw7^Rr%VD2?tC+eR9+Wh9}S*b6`Df}CM z9X?{NY5-bH#z`Oh7*71LNIH@>R^AiV)56`rEW~BlE}|6E?BB%xhJiMs!4rB$ z;R$u0nw{?BehT=RdG^k>={@9<#`bZqw3blguro`pE zOGdKx`*H0(Dq`9;DB^9E2lo1URui>0Gs8*dK?pjr=?D(8UWp`fnXSZLWB8#7d zB41K@XxLI)z39(l?H1)vLalZw95)kH5mwZXYdfikvslD4Di7^L$Rf0-{dt_Hs8+C? zrEx+=)3&PY(hE?Uv&Em?ew>PY{V6DNqsk+f!K#PCve;`#c%D)Pl>+B3n+n&Yu}VGU zr?m&EgymIwMkXwRWu7EMXsbo;;Xt=kSwm}uI8g;d_&%|Jhu*!&S`NG(L5CGDLtCa~ zB#k5IZpFhI*~c$ocvvtujFqV^z%sL7f9U6(dU269&n07|9J{dcm3mW|G7a7WJFydV z)MhjM%?v+F@zWW;oZ+V_ek#LX$MDxGeiFk^VE8h{!!kF?W>nuR8U6~zU&ip`82%E) zk7oFb8U7;0!*bfE&v1qxCib_3HY9}yi`?h+tN^S6pizno2l!>!u-^5yp=A-?o569` zN5_@aMo|A*1Hr^*D8qRklmi( ze0Krj-P2G{!kaO8QxD$$pE#b);J7?Vs;yWCco9htF?c;Uen$L!PoTTvYco7f`bpx? zh!M*I-P@D=REEddJ(-8OQWH;osduO5wsbUE1N|%-7~I5ZzXo z=KQL7oSGAENZ!+MYWAoIi*M2g=VmXDbF-H}Dn9=Sq7o8#gu1Z(H3`wa@(Xdk@C&g& zSNtaoADexXI43_FmC(YkV9#Y8=0e zLW&Dt@XN5D_sg)JBYX#gKg;0T34e;g;SB|^hSoO1A7}8*4E`A5>lqwkC7<+1B%bzQ z3>O`%-ELwH0U{1mdVrM#+#3f@c!1^PXzn6Mb4^Mh=4ckhvLrd0Fr+25k$5R35OXxP z3%77;wC1~TOEgUdT;8%_Unpr95Pqu%p9gpc!e=u03^$G?YSYE;4+7m&Wa&4GL;JuH zOcf*FL`QI~UxYTrF9P<7h%aOKYZ$&%@mDbXc!s}B@`ctV3_q6P#mnahx~EDrXcu9X zvI6!9DpSL`FX2oi;|%r7u+LZgc?>^@;Rh-nV`8uTz6{?-@jV&-T!t@Jd{>6=%5=Q4b=RR{E*0jCi)hn0ibiwm>-x$R7UZmT}w84O;R z!RtsIf1iiyB1+$lIRP3sH3%@{fa3uI1e}Qjx$n6poF?E@9I!nAyn*)?EJsdKg|%Oh z?_Om87|S4i1Zi^|(h@#``t83ZpKl*!`0w1jcrqjIBn~t9ArD^XoVb(tjKM#3B@uHWnQv5cCe}dt+DE={q-^lPA6#odr$3jM0F35V@ z4=H{P!{5)yUoD*TVYwhPJ1f-SjG&O>!sUJ$wmV#u*{pjAU&`R_Xp!*6gfC$5JNz12 z6{6!8pv>(qyd(BX+Z{*BH0w6PZ(;D8UD64kMfgn&?v5e}pGNrg41OIW{aV5&GWY}r zF9RRhEtTqa6~ytd7vADI2xBPaGQSk-QnwT_?>PuG2zLjHr2Z&3enxzi4S@#n?m&_F z3%q>4oH##(QD?B1e>lMpV0d>B+3}1x3w#IC#~nqIKD|8hasAR0H$2q(r8^p}f!-C( z4(pdr{vtID9}|OEigns6z74|{F??&q7chK2!?#epJF=8zYwpOB^l7a4Y(~C2v?M-D z@gatH$CkurD84qsyJJh@(-oh}@F|eywWqmi7x)yJ7rsx6{WxHsB^jDKxFq@i@yoFP zQoK93B>p#s|5fqs;F9>C82(4a{{Z(AvlsEl82+f@k1+h#41bs$D+&C9j9`6^LW&Cy z`eoSv^2@M3Cj0{if1knkOFV5~3>Vhdu{DcS!+MK=*W$oB4*+zEtPD2nEHVI6$#Nk_X}~{5vI&%f1>!0 z8U6sId5i#G$|je!pW)wS_;(cl7Q?^6@UJU=FT=mW@bIFCbfGUX{BDMSLGim7eka54 zz&_avzP5}GK44X0_Ts{={@nHx{@m6U!Z$JaMh4$N_&Nr62c5F*tcM7HfWhx)q{Aah z)O`hmM;IKwp#BTge3`7d==`zXr2};tcfd)iEb$A_7Grtfju!X}wC-T|3bF1#$h$+% z47o!(*Tu^;?Ka65*zTB<_?tbvc&ZpyIr1L72cNw3B);6s*F87RU(fK@dHHF;cOdx_ z8GeF?$5l%iJvSi*t`Z&3fX};vY+zmHm!Vzim*HHZcz4t(MQWoM{vyS@qfX*4VEAE* zAHwM4jyk0br$q4s7~UOq65lV$23l{l0mLjlNr+bL7vgmDD`|ICygTls0y;2!d&Re5 z+HMP`o?tBz>ANd}GCDGx8fSe3s%v41W&8XDGfl!`Ec^bj7>lPSPJI zvQrk6;D^#bsEB=$CoL^O;{J+18Q zQv42vf0p5&QT$U3?+#jJna)T}8oU=Qdzsye zk>Apz54y7g#bZ$Gv6_|3@XZvDL9Lh1Vfbv?ryzwh(QFOi5E7}QmEo76)%DA8YAZgS z;nNsCRq-an8w{^29wS>%owR=#{%^&fV)#E9{&&S=Wb2jx3&Z~m2VVtx2DIZeDD598 zzvhl+rAeJ{{rT-9ia+cx&-seszf}BZ4F3tkA5{ED4F4g+f1vpH82%lG->3LD8UA&K ze@*ePGW;HfcSPGdfnM-c2J(3?VD{p|s6V&u4r8ek?;!kX2CwoLW<5pt6AZqE!5=4l zBZF^X@b!daNbBiY_CpK~N2_E&&F?4ob;p>v`&!`_U`0Fv#8+eD?rRyt-{a-`jg9jd z)Or-O7JK=J6FdgBUcSQ1p9Q|diGRS2$>*pEUZz>MxpX*Nr5@y528Ca|g3Bn=?i66B&Mjzf9*E#b3qnS2Fx~#bZ$Gv4J*@;m0a| z6vJQ4@FNv}0mBbx_@Oc;A$t!-lR+F>LNYXWFiZBa{4(G>II^9z-u^P3o($hZ@!c7| zE5mnDd`E_F&+zROU&QdO86LikjV~oo1@p)VRtpqTT-ekv!*<8AGMm+y@P-WDz+a@5 zg-=m>!Ff$+adGk}jvG%0$G+RlC_PAe&^O#?V4F{p%jG(P&_(vFi zo#NfGEE#kS!@~(FQodm1uVnZY^!76etW=%@zVVHo<1W7p`%b?MI7m$5VFq8w;P8Ey zHXwbz3qK_1)p;&lrdhWWek+5|X7F1GpTXeM8T=-~Z(wkD6idonFY&a=F zm*I3&d^?73%kV{tZ^iKL*j1_pUtpDOVl`)YckD`hQ`(A?7g{6P6#{lP3DL6rLY(@3 zCE=(pS*Yd?Ua5dO3}0LE>5Tju44pluPgox!=GmOzZHLq;s0Rx-xYt7;ZHF9 z&q?FW`8OHa`T>O$7k=lLVSnqFVI3j-5QBfk;9nB{DTBMiSJ_JN<33WE0}TElBmD!y z-(~Q37<`|^)82^T!tU&LNU!17)Ox|m&e9c~d=%DcQZM_(SeB%rzuR4cxNtqJLuH|P*Pwx85vIL1S1z04))8i&-2T$N(k@I z;1+}TBfJ-b_hj%M5>M+E!$noEn6HppTU`j~5C<}PyMcB%n0mpv64-^r9b3Vf$eeb5 zEQ@p|BrVUag7|VPSb}hOOiFkY58iiM9Cyd0gg5Zu4<+z=j56nV@H2pSAZ0K(O?VQL zUek?B&z26aCqj@-Knj|mfo`J3;Kga(F9Q#~OM0{>vpHuJ?~Y34Jv^M+$HRFnQvUCZ z{NEVy4 zGX-&1aBnP2k}If$w8;?|W|SuCw2Y5FcaSNKZr$m|<>*_A3cM9Mu1Z_Wy5Oy7~UOPlKkF^@4@iJjQsA3@51n%7`~(8+cA6_hA*O* zKc#X`OKKDgPVE{D?x49}hV2e5Wj3oB;f)wP$6utCO?W1Q*Jtn$;dL3j4ujVwJdMF? zFnB74`n}+kB-OL{sG-~;B~|nvw*b+%16YZ0cSK3}pC0@nz&jA`4k!u##f?ip za{_Ave&aaY^K^IX-wgkQ;@!a}$^Vw&k0{<9Z4&Q}Hf5UjCB0`yz^CMw4w4M(BfpN? z0e_j!2a11>;ooKWeTsjR;oo5R*A)LM!@t7tj^bZrcy|aYtL;3GT?U>|N0kfPLHV_3 z{P`Vsj4AWmPbq#Y!@FZl;vZN1CWhYtXrtJB`xe~^dHrK_=d(Iq&zg6)!Gd#}43Hy`$ z8Hz7wc$|y9{0;JvA(elvSa%7&iZlgf6cH3m-qnM@3wQ^@J1}^AH!j_FyCf4>g=m5X@a-CD0W04xL(B8aaGEQ= zDZ@8m_(qCv$nXsqK2!1a82%iFudDc43}2Js(-fb=@Ii(*Xn80NjYntVIIz!<5P5!) zr=6U?{6g$givQhTsPikspH%$M4F4m;A6NYM41bj2zf=4-41bv64=Mf&hX0J=KUMs{ z7#`{Wj3Rm@*p__9B{{gOYs^&;UI zqIy~z&eisnWz0Wb9GSdYW(yQN1|M#a{dg!XIOBoQl2pMyz@-_!&ppbG3Dt z8ysFdW|hGvd6+f+?Aim0U*#{(TFLM$6pz8Ir#AASK#zLbGR0#w>*bd+@|P$cqggM% zfZ^eH5wFGi&U5kWWQ2RWiDSiyYk7oFblWeAqK%0S!ynuvgL;XUW zA$}qDV8st&_yG*xU-5kzzBj}7QvA6L-<{#RDZVqqcVzeuif_yCMGRl4_?8Thb8%vz z$c|>`DL$9saW3}qO%$KQ@HiKH`3Cd|NEYUVs1dDtD5SWsj$ej+gUKVqszo>kw4Q!x zr}~SuQV0()xX$44i_oadX$JqB!T&?}9}JGuuvhor2tUE#I1796p9uef!EqAy;>SeQ z_27k%kX^NJFgJK5jAcERvcB|Z*S?T^f&B@?AN25I`5yS1A$6J$8U6z=|8s(WhvD~m z`4O+g<-gAGuX*{WfbT&1>|uDv!{d8wFVmMnWG3qc^1{!N&8(e%8QKoN3}?IIs~G+% zhTo?6Ee!uS!#}3@4Gh1Y;U7`_Lk#~Q!>^$&Flhrgf0w-KDiWea{6d_2{X*={PaYNd9!i zPh)tTj=lU;@_MAe6p=9-quj|Tq`0umFT=jZFT=W;@GBU6JcD0OCu@+tmr#)!JV!;l z*cbbSSngm}=F>(hemKJq^A`#~!$k7WWB3w=A0+t#8)MppgOX)i{XD#A_BJ>Kst?Ar zUcQHypP%3{sP*z)y!=-Q9-~?>-_FbT+XoJZ^l8oTtvozBoR;*43{|iNHcA8dbqHxQ ztBGHR*4Qt@$x%E;wH_Vin@pa*=hRm`Mzvl(gOOiH@fg*5`E-V_K~Laho#4%2*|%+j zgvjTv9wE*dzYzN$#s9}&sB?6A4F4U&f2;Vf8U7H% zf2H`(8U9m-|3s{v3lsZC%5@yT?C=2JpBsNZ*z10*cL{%s!QEjjb<8&i-^<{yGSXim z{3Ql|k->KpzKg-548D`_XBhlx2CpJ~D}z75;9Cga#NZnle1kYKADUsEYz9&9BfX1q zNEp+4`ni0gDS0r8X&=QM*h+?9;VDqOm*AH({4y`!;p4bN!kE^p&k_%h4rwvgA0~ta z41Wj1!|4)tB7eJ!w`H6=*Tu^;JY7Qaw=n$83_nZc-VHk_7Q70)41D7>%5F{dXV@gC!(i!0>qt4+l#~z8S;gB%BztQZE}0mXLfl!{a3E<>6on$%hyo zCt)uS2TMr4HpAm2?B&yG5h0axQpjlVdp97YxDW$ckKt|2FT*-ZI0m#{9H(GUk$A2I zO8=d~aR&C{aIOU6KQlN^z+N2Al|cM^2FLl=iytNY8wSVe*NY!Um(olBLK;d8=nv1h zsa-Lm^;8~zJ26>+c&I-pMmPqvUi^Izeg^OkgzsbUx81mWSOSMiVC#Dhm5?&5YKDis zWyw2?{FfOX4x9kKvpg!_tNwEgkMlB`@bXoQ1Dylbv*d{3SP3lEdJ67(q-an2rQop= zl7F1xH#0mOD*6UJjAWHV^+3bAxd%SniK zw_k{Jr(cK-$4X$Ko?|7XOlKj(!?6;Qw_WnfWt2P5#mh7}R$|@5D1Q#a&t~{r6hD*U zr!)LbiocQJaYjyzG}7mK#ZO^)oRPi!MEar$RS>?Pb3aDKr6{DhaJ*lJeYszTbs6Df z8GHXl3hR0bLJKp8OT7wR)F50;P{H~y^mW2_mM~s%{7vrQV-eh=#;dRAh zu&C(3&a0RuP({9htnnGScB6g$blU73-O#TL4D?k;twn`0Z(;Dq3E#-z8yI{&;SV$T zLk#{P;rBE6Y6cgCM;QD*28T0=AAyzJJ>)3|jD?jP^~)uG0iGi!%Ed!t3n114k|9569*3wlb7YZKy$pXCxy{7l7{GyF7$zftkmG5oa* zKLwwcLM%N&ta}nX-ZhjRf411Go_3`_yE9(#mooe~h99f=Q4D`E!^4YGXf6xmT93Kp z@7yFhx-^$FRPh+sdinDh`GXYSpW!Wr@2mJ;4BwOC&!sSo+Oiwk7-H8hBt#z6?@`ie z?-ydjt5RqLt;k=f)0*L1DL$X!TQGcc#W!X6#th#`@eLV1i{UdBUytE47{0FJYcV`d z#hymD(~^wrK#YqtF$Tw3*i(P&JHj!p^-9M{*oz;+A>T{?TpCJTd^LDT*+1n0{T>0<$8G`Q$*aMr zgkxOm#rJ#gI@iQKB*wK~{4F;w*OG5yZNNiTGyGnLe^v1>GyF>o{~|4NWF6pl;H2A& zk__uvzYO_1IUW-_Pb(gyT2Gy{ZT>QyCltS#;U8o8jf%&p)+_%JhJRS`7}a|DH4J~h z;#V>JN`{A@%aLxllHr##Jp5jc0m?Qax48MTkE5xClI4#U`@grsbx!uLf zH0L(;)1MNUE%rZ;Zun*rqRsFNac=SpvC9>I1H)g>@YgARGQ&?~_z8-?n&ELiPIN+9 zDf>!#cuO_Bj4EYaib9GDF|18=1mZ{gWmuyK$FSCmU&!DW5Pm*`4`J}Zgb!r!0Sw-s z@IDOQo56b#Ud-U#8N3_eofy0$gLfdj4TIx6>}d>mgIU_WfWdJZ_TqW)LVGX0nQS!C z;s$WR)J7Q0dK$vYcIOxKZh!_R9AjB89`fK{0^Wh}It*Uhjmr^I3o8RIxCXH>mFX5g?zV(ML5Qf8d=w$KgOx4CecX3g>7Hv(QnIEJr@+7Ld| zjsGLw!`~?&9>Z5Jf1{W0a4gPa`0C}Sc=_cCzKr3o@$x?d-+}bGg5k$|c=Se>!*AGi zPeBV=mxzw%2bWWwNr=|LFT`o*7h<$V}5D(dLFY`5n zANJs909Rh)a|Zv+jsGLA`XxT9F@W_{M}7@A;gYEvAE4(f^1_1OnZt4YE?NY}_1k_K z+FPD7!5uhnD88EE_cHt|ihr5mUt;*(ihqvbcQO1<#cyZ$XBfUp@!J@FE5mO=PuM~( z86RVAZ;Yjh%J%|YG9Qgy%CGrILp$qa3{!)e;K7jS^iCi%V6PG7AL5F_J)Kex3|T#G zXRlPedp;!|Lsl=pT=DJ+mH0aueyQRY!97o3@;sxJGT`Wc(jVv61m6)2<;-)*mudKn z_A9I}POe^lHpAaSTNos8hFJFrx}NDMq__}gP>&4z2EPnzD&aVRdhy8&K8bLgKfU*z4+w}4i9J%AIsnv$tK!QRv8Zdm-t8q$4J(T!vk8BK9s>RlJ(;7fEMvV z3_g&-2N2$u!7-BcO7BhhxeShxtQYSt_J0gs7A99{WN~sB98CGomv}HGPN^Q#dJg=T zwt@ryp*Frpvt&p2qgmqN(X8ZgO7+Um^(&~sqgl!0leN66=7=q1Y9^glEvaIoK8K(X@)<$1CL}SkMpUQ|A*n>k*wrTG5ntl z507Lek29)QKE|`2>Nr0u{y4+`o8iA#{C5ohEyI69@32tYA0k(Rk7Q9v4d+#lk`4x~ z9wlvfBrExk7#@RGFAtAoCI247zr*nGNLKQ1GW_cd507Le|0=`pVR(2XEBO~0{so4A zp4JM|Xz)mu{4YF`MYr*^Uxw$AER8*QB#ZbH48Fx*r1d!A8yS29gTo_Pl>RV-Kg8hh zNEY$?864+ePy1Q$NEY!3gX0wJ#qnoi1HFRxMAFM)c;TqL3n$1{;^D)A41I~HIvi*O z(dxd#foA#var|(gOLj#lUBAvHDp$^)^H&|k(LC2xvb-g~#*-+S@LLJLnZai<(q|A} z&fwD+{072N&%`JpWiVFtDl?hz2@GDw;8zoVC4*nV;PC3o_ko@{aH2nJIeV-WCx5BV zqpaf&QDp_}k%V91FWnjDFWnwW_+SPvVemnO_h)c-d`imnCA=4d_h6)-E4F?Y=+=z7 zKv&)#Ru_<2T-d=c(r)h;X|DIr5b3D*56DG!r@sK4qaZCF^)c-NitMFZQ zt7XzHm=|RUNx1X2nEhj*O(9H+@>bgf?!dH2g+_vKQi!YooW`{8$H1%l7E$?AppCvc zy8EZV%Yn?MaWY&}krwPA{u1cdAL1RaU@c6w3cjzh86+IP98z%=C}79}Go-hkE;3FA znzx~g`Is?OGn^kUF9_wyd)hoqiv%m+Yhu3!^2Gd;fpl@{pMlz06`f_Bh`Lo#or!u6 zs1EXu1OCPQHzjZaPBhuxryw~4Y4$_{||5!;LxSC zq!Mh1os^Bya-_**ETLPGyufpaFw-ydBjJ_#3E3J%QBqiqNWc{HPX`)iUZql!G_bE+ zbvn>N^a>gog_o(@gAzilOCe2GB9gGMpLZcciKrGCkX{t){8*XC9+tLuFNnR=<8OtHU?&{^_Oq0S!o-+bg^T%u`SR@ zLpOn6+``sZo=~P~*NcUQ(SrbOvXVpoPy)_GkW(Z+{yk8)10`IoAZjz2W|u0-{M0wC?AU+Hl^^`_~qQ`^AXMs$Z&1Hume=l>{ znd0*r2CR{zr)wA@pnob>)HJSwCG&4Jjm!0Sqa$k>j|DQftBmCLDC0AtR$Zf4_LCvA zqCS)=Z-s)UCP>3=qO`8@VP+-f#4Z(y-*O%jLo$qB?ba~2?pHk^A0$$bCTXihRfaJN zqXXGNUY z|4;@FN3UnJYenT;#Vey-84BiV-`uhF-Bk^ZtbjINs?&>#y#&-b=2yoV6DyP&R#pO8S86T7N7j%m=+p_K4OQ7g+R zAj>%Y#JO2UD*#Hfj2@I`^$_c_;-)JWyR)EQbQZN5K!@lkS~oC8WVcBuNs}Md#3~Y% z4Z!WR79ATJy+vsQqn0?)z^JR|fu$N`gF8<&QzV$K8rRB2d{j2LYU)X3qS$Tt=?@SJ zc5aARKk;irqkgbnNY^`v+)MP{HL(9etu}~}*~Y_qFnS`}m{l|NTjmp-;{+-xb z1SNbYhPN@M=|79zZH!CKnIwl#O2PH=Gd1&ek>3{Vd3khrTcd-nzb)prGdi4eE>YEe zhzbsk?rsOolKE{USl&)#NDV&3d!dx-BheG>jU75_je3f$9gQZ~a*=RwtJvSsXjXe% zUW-Qpk`4x+6sJ2HEds&1BDWKC+>MYaSh6Xv^&^2$aF3Q(1Ryv-NZXRvHkPUSNl{s1 zv=FO08Piffh8#6g98s&YkrSvfL$vN}bZK`uFaHr!3TXL=S)34RMuPqIyrQQ~5N47F zCGUwPosDKaWESuNT3$=I-CAWYO3DsdWcK!OKlhOom3@ym)EV672cmZu_y2WHo|)NOb=IRLv|NgH@~EjM_+T+b0zVMabe>Je>lyi52&@_`Iu8 z5{gwRA8aDa3|=O>b~A+jq1e~WC}R}v(t7AQ&AM6x0dK%l| zYIjeG)aoS>Vf8Yusgp7zFMp3#{0DZ2l!xHA2aKVRU7YS^6lWjChK|UFeman7;9yg1 z-~w?|Z=(p_Zd%*h$Ziy?5!4_Q?62juPxK72zc&op=Hggyqhzp)+oMaaK-Rtn)>`Im z5o-?URnSqS0;<)iRl|8=W*_4TePA@VuQ4zHpA#&jrVb;iygzu60&#bLr*0*{7CV@qO5S%F~tD5N#e^)6!bc`#RY7W>XKng&v4h~wuOKSS#0gJEgaIofat zK;4QX;To!9)+^FFDJ8`rNQ(qhRl5B=^}+BjQK(sHQAu|(;e6u~{Zw@K`35*Tc;9NM z@he8W!(g3pSmX}}%|8`Oh8yek{i5v!M*mU40_dM53!?bBs5%@8+5vImEKV-p7GqjU z_2Lke7YU|;)5Uaq8l{(109z{*PEqOBOvNu1&ILy1e3`kVA{35gv~E%v??|L+gMZ zYO#As3QkgTmWT}(8rxE<(zL>$a~=piF@`Q zx>v2ksDS(#8aQPwueGjGdJsk}T(^X4$Quckz;EY_Fy?389a8J`NEp_Aj-3D3L>G=U zo-pA#cgHc%c@IQ~k1<3FxPv2?8^!tu(Z=JAPXcv4Y6|lzqve%QeEuUfWbrK@sgc)K zuMsc4HCz|LwJILV6^F3tomZhxoeeDxYN#UKhpuxa_}G}LWin4{$Jyh&1H9CbhZ0cLKEG^DXps}PiUC|u$YdOJwb9Pl zu(7Y0d9`t2diCv5tk$C7VzKXPqatseY?m903pCIvxTZ@GOq-&avPZ~!&Qwu;jZu** zFW}oUBX2PpiBOr*Ql(52RvD~g=r$|?%fLa<#U!!6%qXcVFYK#jtr>0DF z#^>3CiiI=L$Pqu488yVR2}U!@tU*9O$>=LiPB1Q^6bHV6GSRq)#Azj=G-!W2KRI`u zN%7p4=sL;hL8WNDJ*7Ml=PbxR$#_a{E6OK>^U4%QCL6EoY0<4yj2S`w>1ghaFzodw z#KLLDUHYRUqujV&UnAz08~t=4c9$EM2k*_>up(9D-flD$854}4s`+wZ-DEtbFBHda zGOkUnL=!u=i*eH-mXa6NZNi>z+@vlhh*Q&zzJcnC#kn(#Ynu^qX?(W{qG%bhP&#b0 z%rG+Z)_qoe2w2c?W-1VJ7IiVW!bZ zrHm1G&x0k@DADmLqe)%LKa#pc_#u&N!%7kYKDku9nU;#+F9_=+N@qdy%M0s#v2GSD zo#cf!SS*=uwCL*$QaRJ3pll=@&e{{85pCsXxUt{z@#vNuycIBEH2V|%b|q~?kSV*jnsBGuq5(t`)Yx?5l+0Kc4f z3oH-t@G0;Mxk<&t8%}^{iz{w6@|D?gqIb_W2I@Ne!p^PGGtP?Mb0F_OV*DJVQIo&_ zyAtrt(iL+cOZ?=|52^ALmZq3Q}uRndLCHvQPFU| zF-+f<)Ippr*g^92&7yK1tf#F_V*h+t`adEX+Mw9Os~(RvyuD0R-V2tQVneZTR6zyM z@Iz<25L+q6PX{ed*s!Fy7jrfZXvPjo1>JVI4Kv9dK&JEIHCJPHI0(nnY z7#*6}Ub9N`Ng38OtX4x&dWTU+Qmr|n@(vh;^0qxY+45=-rU)wj=I9%D7~6Ep274~+ zV0>d+)QbuoAX{q3lI zw=p6BO}BrU(V)q*O7n@T;hQHkx7Q1EIe4(GV#;!`>}FB59J=WvqH!g($irgYePGn# zl}3kb*yM;0ZrIU-X;P{W=MDp!6R==oqtY1IWCf1>5Nu+EYOaBZye7CDSV5AJ?h_gJ zLVHw-j`xD_Wn%cfP%u2<#6)->_g?7kcZmA;8J9LImm?b8E1;)kTI1q-XwA(5L40x%uo@dNgK+3gBnNaSQllwL0!^u zK>>At82>ojs7dsH=*|mpr$7aZ6%ZL)V7;%2)?2`R{w7MFFmi(0uaWdYV*V3GmT2+>ETw)D`?tVWhV>)f zZlwQP%zXm7;!)u|0TbR4vHxipZuZwAcRP3v`;ch66?FVk4Bu)LH~&oOHAU)`RCy|2 z`vkj5b}A|QFU-?Se6tm*`r)c=AO&3OHc;<9x^c-ixUo+-&!DZ|5|!IPnK#7NZAP2m zfl&JB24dZIh%y~Vw0;sC)k`!Nls*aLe>ctrIbzY1MxhQK_DRUNGwJrTG%W?6g34B* zr^?fxB!@NiDTrtu6MHdf15tVvQ0qk7Di8u2oK@h?VQg0cuu6?1Vk-GzyfTa7-B&Dn&qH2fHrwxf1q(n^YQVTs%e4K&f12d8e{n6^GvUWdeCg|d+ zV%$z6yBRUP_`Funq`ca>n76Um580GrUB!u=&_bP)%;|JM8}t@4qcFd>R`aGT#BNDt zAC4L=VWBkgEh979WS22k*K0**J_jQ)c*1DAr?JR*(a4XEe*tz`AfSSaCaI~GbQmK= z@7G|cjM@uZ|CBObOx>Q@ z!>B8Iy#eF3i5T|=u#Mzx@Nh7XG!$^V4Y;|_@lFWtpqq=`s4E7(DScfjrq>j6-vsN` z!1+5{yz?g5%M`!8343qwrR%p~$KpS@6ss@Ry#>?qNm1)d6>{%KThR-Dlj=>7)Ol>W6-b_A5!MzDKI!vwb;S5;d}R^Qyi{s=nsW zq3tA9Utv_;BO1SJoNfMeY<=q)#s*myes-z%d(tJUnUCuEM0DV>j>lz-T9YZ9EAMAOvt~b z4yNbjm-ItLVVe>9+X-DR0vbs{&ZL;2vaEDcA{}-_KL60@BsVrP4#2o4^&b${0b^3~ zE=Sb?nATu-^uPh*%KyLWwD>R886MNZU!7Y6N!4lUu1*l1-IWKDt1~zz$W@(vA5nEy zeVnLGwByIdBt5x0>;7f5xGvZv6voXt*yg0BKNtxHwX!5lL1?v< z9aD>s>Kj@ZgmR&* zRj}!Yt!Y9-lpi!Q+vG#@!v%bf+xS}?=qJZjN#;Q+YeRWba{M2ZJrz!4%2d2rHoPQu% zN`nk0bb2L7`%z5&)QIT6uKLXQQ2#D^;4`DAp0&)1Hie$LVHv1tYWV-q!gq&?{4b14 zjSU~eT>AxVbiW!kzclg!uzYHL$apA8>*)SNMs^@I7yG<3L7ey+Ryp#*z5z-pjE284 zOm*9WCBU~Z?Gk&gsQMPBJ-X;AmV9R{3j|w74i&ber%z+v5W|leIq9=n%4SIowi4w> zp*Qa+jEpbJt_wTYk>HrO=w7%;>_#@+MzO`>&{3m=dnzYJ9y88^J$14An9-{CG1!s} zP_u{IiG9b6HrZ1!DU<>cb4z&e0?#|>c1g!*#`i|Z(BF^dA2+%fu!0=-GemihiQPZL z#JW)&`56M*M@9V;uxEa^n0W$%)+NzrPZ;;;sTtBZ^Td#oM*qP$R8xYlV#Fl_yODB_ zR75d-QE+b}&0a-m$^lExS}C;HX!7}>Ha$NqqzI_6s&|7m=t=ZRB)8s8Kt1tAsCTgXXG94yYzLpdXCYb(TPquzIk5L`mtwbFylAheztfir#1#dIj`S4sY ztxK&nI<+XU!HWLaF(WCpw9sOB0F??(cb{%{@5z+~t^L2s(qyCnZ?pu=>tbCBTRn?f zJ%p{kJ78wdk6Txb3fPqrGBZ3@i+AwETot-=W_+strhLn6WD+Zn*i;Q8OUls7<1&&K z9-&!1wMe&2@L`rFj(rHBRJmcMNt@3#%xvj$?+ia6)*9xUa_H2|d`(mZ&H7Q>G@I*n zrD$h}bYtq)Q2r`GX;bno72o0 zx*lzuZa!t`uSNIOHoq}&Z|)rPyY7jp9$wFYnN_;t`=o9u_^PW(E}GKS(lhwJ*jLYN z)dX(W(iRl-&!=p5v(QrTKjEkS4H62Dc|8)`uM0<(IXsje zgk^}PMKKT9Z`z?|NAdqKB{UJ0A+w-CvM}_1QkXqS?2F$dzaod2yy;vcYScHwsq#X* zOsuGHp06&(h$HpQo9F_zyvApmP3XcJChSae&oB}IYuf%f@IExGNu4xRVjozD%gXiJrHZUg_7W&K4T0)EWiCeFk=-tqqrZ*H@8=4>L zHKTU6**ST^8Qq;@8UfJKX>1k+N;-+-jm`ObOEI;H*&URTHyi(aKJt zl#bx2QnaI5s+QLl-b|_Uh_=2CJdyRRRaP}MbH*l?D$_KpW+Ye*S)K;BQKE(Fgw;wk zSeyqBdBG04>=xnb&c)wB_ekm9Resi3BtJtn78T)jsP3w6qP(d&pk)x=C(h9E^#zw2 zvIiwCrw%qX<4Yuw-wfIYiEyw|jBIB1g6)I5o0)mFr=SkS*cF4}o?>@1vk|PC5=ni; z5ujkzgqq^230@w_Q_pr`-EE27T(gTlMU2ixlMNQLbIno70!oHO59XS6^ekFt8!Z=s zpG(nj$sJ00ZKyci96C?_zxs-fEzClEnFv#g2+LE--sosq3&1 zt*;nA(S!%U@}g&S?L>2x9t)ZGpTRzR0m_S{zyr=9lc5t;j}bE`oA0KFWndaf30^OT zPce(qORgj?c!RK~m^tYs6R53Iriu+y%$9+YGO=%p`6s;YvG-cD73@|Wzt-%0Ua)`O zmY|ilIcSw-q^MVmVy_m2XUf+Hq!wCs$b{G>9PAIzAfY97Fs=q)l9X!yBPLu2uJVXD zeVy3`-uI}SYW5V@TyI_kPvxGy9!BYhtEQUEb=bF^YCaIS!-}@O!R#JL4;GO{!n4HG zY39ZCO8OfugZ;Np+^Ln_9c&Q_2K$Ts)66W;u}iQUEOmnN;fjoqWx3Y+E=%u+6@%Tl z?9Q}W=sCa%_TQe?69!Qlu^0kL)`o4{a_C3*h|+TNnn1X}*jsMGYfb&dsdDJVl~@mW z1$59&=FK@l*cLFMe(}7EPLje z3>ZeH44-5H+I6ssurOH6YrVk|o2Q%CrdDCe@L;3i4D<9HLr)}Li|q6;90 z&oYZ*3kGi)cLNxLfrNo_UM>W~Bp!Y-V3wJcEdInSb7;;GD|A%wDk3g!5*zz#i3o#ac+ufsVKcI$BK)mx4NeM$lf`4oe)r z+5DoHR6BSd%qMaIYZL_g=Cy`*$%^&_%5sA6Op2D}^3z*`k!#ID(QdX`15H%cI4EBa zSx_B@CJBStHoMJJPYA(W;>Z)!xv+BXCJMivcUJE@1-=%>apc$h69J6qg(*2uN!84IyCAe~Y7w~D= zBm*aluS0Icy1~1b@Dd`t5eIGhbV?M`BH`-C^57*zn6|+g!^?;*;blZAE4)Hf&Vf-A zZY}oCF<&Vv=_mX0og4d>)k~>C{UN*trXdq$=H-(@FmOT9+svkzZ~txPb?t-wBH`c9 z=C$6@SLDi9NneKjjhOS9Ddj8*-in{_($5?*Wv*F>Jro4tPwJTPMjHs6YxXVjEWaG| zm)4J@th9=${{N6@c)QsoB;SgZHCCmSJSv9V4!#I9vu}@;65bRq<&E1(?PIrtk0u*z z6Rqc&6*yEQ!Qgh;%)#&wv1=ZX!9MWV-t62W*yo#u!PBx2st#jteX-4n>h`e_`#-zm z=8e6DJ>P6PKRl$Y*3SB{WjbWRd9UetwcZD#!04#6Nh@2M(pt$H0=>0JmR ztQ{F-gs{)DkzlC_Q?4$m&~SF>e<>W9)lCbD9S316zB}wE^}-R99?XwoH(vyAx#mJQ z4+OOZ8-sny9tgtYR2U>MvgGGR8Z7vK=v+f1xt}%_kAjfPv8%65bak9s@;2=38;N!G z);oK{Py|Ddfw2Vj3{-3Dp^#z_WV8$q`KIB{A7JPXF$zk+4iJZF!G=@_G)P7THeGGe zvBGRlO;>$FjH@ui^Ar6Za_RU!T!6+x^;572iM?O@wA{vl7w4h>!>g(~ShGSWS3?Xm z|1&U_0z!5>dlgQ<;49*9h{=e6?ybhY3{`In<0()J1;+ZQm~w~NBE9+)0-;4E|3p{Z zVW#RZNv~aCwrbZI=8hUlel6T!G)kcM^3B@U4u-%AT~an_QMisQO8G{dSOCF~ym{VF zV(LQletgTGCEzU1;8)YRf6_LNPpS&cpt{FPvnj-@@j7-J#VyyVmj5 z@thqs7HmvWd!Xo>V6G&A#gUH9v)c2!Nx1PH7g4^$#J0kCdDUXG=X{Uhs7nqB>H3+x z_UA~?x1eOv&`3(IR(A5E8hPf&Ll+bTwY*%|OAh4~Q{W3tKxB~~aCdValN#`>C_V3Bl_j%5_DME!$5!S-XU?90UG zOU(Az(zTYts#YolBjVhp=7l*W7Bq{EPPxmh9U8bIxf8x#3tD2`QnPOsblkSEI>!pN zj|-e3ep_nx420p=A5gn1Io0_&l?7Vy`a78S;(aK8ncs$oklOA8fe zY1Ev&DL9Cw%)he>>k^1#i`%3 zR_vsfi4?V@g!?3xiJ;y8wT^{lVxib}KdfW_ueD;^O})jz`^}!oHfa2SiCe+wd>3#t z^QH&PP=o(6GmHHXm`(pz<`!%IN9N&c+;PavH8R@xubO=Dzl5D$1CB|}Gic%DCuGoE zof`a?HNIHA)@_f^*P2!H%?^25>HqPU5BEDJF};)i|9|EEKkg5X7e0s)Iu6p-HP6>3 zw8+<%z~3qOgQrZ|l>B_H68?6<-)Z<;SRgKb2(}1je;b|mkokZa_$(@N)|*Z1eHP8v zAd=EX!(Tf5LHf|-^nQu-ImzkyiS#Y&Vd1}Im-uqM*)sU-u6#JasbYhfFWPMYPyabw zcNI@>Fk8rLQ_~tgC+2N{>1OnE;z|5m_?-B1gV{a!>~r~AM{#()nI$@GG@AsDKPN8S zX!Z=|KcBC4qV)BU9xR3H4p>4%@x?~7ZeaEE;-`&fQE)G$x1jWHo6JVR6L78MUB3zB zwSEER<%%tv%&cJP3;9|*68hODGdr;Q1@XrwvuB;(Zo!H{cnN;pcIRsi z;d(+q({kan*4MdOE%=1GXl>#DyWubQh?w`7**SeGu;)Pf$lc=k$6!)f4cE2ddLw+c zfX{`$N7FZ(KNu~_oqTEYH$i9`+=yL&2iINXbu??MIUud`lD+w|q#Cc~!xW@xtzW0> z&2P|W>pl5eDWv}kR7NdZ?-6(IFwd*E;H`YE5nOiz={fMZ;4Sg>4zqoecOktVT=#^( zj(<{Z>-;-kgL2`q0-C?}jB6*~c+RSv(ai?jE+)ZX?&6_7qzjo5CSHbOc zQMJ>|t!KZTFD39@A;hTY4XrE{rH5aw$3iq+o z^@Gor@Hq=UYry9=_)H=0wJ3DX8234(XHoheQP}IN^^VBdW#-h2>3n5?=aGHmBRbp7oYyWI<5vNs_P0rpI1af3?fC#5VFFP zP(qMc#g#D>W&MkUl4>0X9T8<=QU1ESv0#&^EfXOz1}Wy4R1LMZ<3z@>c2XUScE+Gl zL`0ws{*X7M*U|H0Ye(~iLljB@L7BciGw@?Wq1N(fVjq!8E3`r zak6(K^?xPo+x)L%??d5*;qw3tc|7Eqkc(D?4mZ|x+cZk;$&3*B32XcNH8$&h)#^E8=eeJ$$Nl-*La zsV)J>o?cOyyD=dzCnwA4v|1rAovzOuZ&(Y0p{JY=9dptDQY7~bZ1gZi>qjDTIDuY5 zv@m5kQZur0)3URig{k@26&a~pAf$7=%tkpqkOY6P)nVAYqD3aIDc4%yOm(1(|5a5p ztfI6H`2AMCEs7M0ZMx>7c=LG+ghX`VIm~smR((*W)tQ=~W_M<7%*s#8bvjZvTMN<4 z3Rp&HRR{iGizev9^$w=NXAY+|J=K=xu%$ZfR;wNc(2n?ac&OiNH6J$mP=iKA5d=7B zczZ~^1+}(((=s#d*32}gb)s|_+L!bmda#&s@GqiJg;t8Alb=TvlB5CXgX!8O92%D| ziaE;+pPYbCc#RrzE#x^K@>TYkhx`x794!s|R$6vRtO+^i(zn0|P;qsJe0o@>3zx(! zKZ7p=kNJTeO{@_qa?x$dsKL%aez1nmy4zG&BM!=E?@;b#e3_3Qibvnwp+lGP0env@ z#nr;@cq`@B;y7`&YV$2Y|3$4>=NIHwq&U?7?ohx?aZ}(G5jAcX_;4CiEvC}n&x

{4X50!BXTbm#|7 z0&+gU7IjcR^f5NbNstBdAml|*1|#=8x}_3D@;vUNW9iooB4(m-sPuNwxdseyb|(#j zm-9O*rV;s(PRd2T?O7+@C{d?zc)B3-68a9OG`rj3Oo#h^>fm_Kk%v))=Za$eu)>Oy z4&yn;>TslGT1WNG1zvZ&q@5RhIC6Q*XNr{Yw!@j1W1XVSi)ZDfB`0H=#BO<;72e6j zDRj6?k-h|~fkxmi&=1JnibT*qhdcl<0j~mc0Sk}}qyY|K2SC6dfSg)II)?lta1OWv zxPe|^0QjgDvvFTZm4fbLIRbNmH-Mi5>wz4g0C*Sh?70tysbGN-xzl zi*+gSy^6FNGPiBG)LE+c#gL=7;`R(K9pF0)yWLixNXH8?$g+{6+wxmQIs%(;lhwq;S3EH0!2_nz;V5 zey2)!aB|a4aYBC4SdWEI^h;9_a$Y+cPrqmsQz)@T_^?A#TEvBIQ!%q{H1q@*kLQ|gIwW=ee!=E6vRg5wl;6)*!yz#1R}SpQJ>MD9bX`&O*-^W2DTQlzgRQjAM%2sw@$ zDqjKOF=9U2J!O+7(`lE8S!nPnu;ajD$bW%6-9tVKnJ-j^z8><+dOfpli-@0@UwEeS zO5nt^&%rzrTrcc6F&7VbPkyHI`N4@fetlBF8D;stWCNy6ren87K$aQ0{d|2#V*7HS zwEdaNah4NvM}Ts0Cghx$s{$&(@harRTs^>LIk0i!+zsplS4yw7VL`;-5#F+Q2fc9z z@8pS{BevWxGsd#Alis@{0%EsA*91c_cnoB$%Qc- z%Z@SHwRJvt-`GLbsq^s$zY=^lc&$ClBwvHi2A>XoHFDIGZ}3Hs55EpxuP0P%fD7}y zx}liO3M3P79Gr-wezyo&c=0ELY6bjZbc)M#L!Z20P~|~#(mH`jwt?fpaAKXm#!<>$ zILDSSIBI>ZhHh;F9lR?70=GkF;X)n*FNVG{f$CWQ6ngwY|L}mg?o-fvFQP%zEw5if zQEhOpYY8Q_VM1KXXiJ+235Z`l+R3(YxK1ypV{NFj9J+M9&0(kRgWk2ATA-IB6R96{ z20D`l)kMARVJEl4t~Q*a?umeHwc)DKx8XI&{s_XWV0fWAYVAjZn+7hN+eKnuS-?et zTgt@HMDo5`3w|y0dfV}y>$?ED;;pK>9hd2^?uj1+c0;K2s6fGUC5*QJiXPp=YODW^ zI%=hG1KrSH1Rn%PqTytt0q(r_c<6SHbe=mJ1nv~LAiYDSW3aT?b~gB`;t^ZsmV&DU zHy_VPOSBcT7Gx7hlg8<*CLf#&oU!`2a1l7E1Pu+@apU{Id6!U2y9oGUG<3{yVw-B{ zn5);Lhp7Y6!&O2N9U@T9{(u&DU>1`q zo7ot%&Gyr9-f_wsDZC>FJZ!iwCu~HSsz+waB*_G> z7@T(*)pg?60p`7`nhefZXSauDKs=6L#vnToDaPTycy4&m`es{0cTwWyf}>o2#zpD(LaJRnQVesdr5Es%*A~LPRQVM5kah~_5g}gnQ)Wo@ zk0}n%6Wa0I{#Z!UX-^N1xOaMlkC(4MbF{k$Aq)9mIWOv?7Ubjp*eBqa+pzr);ozDJ diff --git a/ethereum/ethereum-programs/artifacts/inclusion-program b/ethereum/ethereum-programs/artifacts/inclusion-program index 39ded448a2a8884d4087423c525f3b5d43d3262c..553dae7181772423d9f9f52697d2872b6d70b2a3 100755 GIT binary patch delta 120907 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 )nloBm^&$@PtM%Lb%Bg7J^qwctS%Np;H+l zc(H^hG>8#8i4lU=OL#&97@^}Cq5giMevD9GM(7y1gla|2p@MO-cJl5ZotmUg|SX%(LqX?9xe8awMu`J34FVysw) zx6-~A%g>-PYhq4aYP{GVEsPV~vml{={6c>*LVKcCTD$#1zcE6%CJ7bI`o%Bw6C;Fc zlCaPYztDC@Xd5H+jbG?1MhMp=;hZ*$tuMxUtC49FU!&$mpJpexkwNbKD5}|9?-vU0 zWRTEWMre&+D7ckDLT@ud^?sq?UIqy{jL_>+s6qlxa5IC1USfoB)q)<(5X)YRbtA7? zD|xSJ&-u)BQ)LDFwJSai=DfCn$5{k&GOC6p(gL#;TNiAgsgx$g>q$e8wtrT@?L$f zGG&@}Gb41PUuZ%gClbO<5zjoz={hMifN~nk2wlSnT?J_u+0ZcMfGcIKE5$Ac9)BdQ zmx`{dViP*aFWN{PZtWNjx7Ft*?u==6Jk1+!vuf9f)vIFN%1QDZfNr+q)vbK0&z9qI zytc7akglZ*Qhb)^{6_5P*7OBd9@Xc8V4)}IoF*o|5$oN909biQpra2M0%@3=Pskc9 zw!RT7CLsq_9uny430bi6fO3Etc3jiQ6gUCxh&N-eQt7QOV(*)=;v^NQGpL7+n;cE- z!m2foDxXjbZ$HvB_g9CseL|4^I1nPO4oqHB=qOJJCNF1o>}c}5^`p|@(`v%xr9AI> zXouLk7N!(wE1nF7+5T2#*Ul*NG&|pjiSNeRQr6a1rP-G?USwbEW^I0Es>YB-qRsoU_VmSEh;65f82f%Ko5m^& z!r|&O?RfPt&k}Pkd_Nu1Z-zA05wtn*9eb;jL4dhk=iDx+5l;BGXKW)6f(G;HI#Tz!Y1<5k*ze#d?o70E<20J4)s~2XpF^W1<31KweeOz_ACgYr&_vMtV(sV9tSIAPHz#1V zX!Av^r!t~mobg5M$e49$-Lx-aH^*YmaUyd|to<<(wO~0U?WXBWrkOMA8bGjf=WIE< z*!a6Y*n!!%ZuFMeeX$Hp&Q9lweOqIt4V?z%V_=q&<qK}tDmXx$56$L7Xb)3+m(p)@^^=5jIqTNrBy=#faPZVJ{) zAOY(IA=9<)V)eJN_eqP1>jBw|a6v(URUnpakM%B>w9}daTB+t+1lp;4ljfG9#donG zJxDO2AXuvSA+w2{0~I*+kxmucF;c95L_F|aY|x2P$jsel7CS`G;5~`PnkWxbI`l$QzFCNvUCjBs6i}kFh~X`U3N`?3Yk5shawr z{LO-k<~w4&kCR`VJqnN`id>nH0+_S&v~Bk+fnGw2aKw?T0{Z=TY2PuV@n^d>`xgcJ z3W4ud^b1Q%RNa_A`pw<$f_Bv0ZSW#>2zV<qKU4>ueFP{19tN?s7Iu+ekv&1h(x^ z>V39Z8-)2|teKMd#Al2Ho%2w>(>{>KR7qo;_jqH>cN6h4ZQGXNN4sJMHvEY~Iq009$gaNF6`+dBcKd)M z=KK_Ep98DP1oZDj+L`%c+0U^evFoQ;V`?ngONpH7%Yx!5TVD`GJ5#M{g`HguA%L$? zwW)lTi|GJXP=i?FLeOPs4wLEHQ!1T$f+xIKW`OXALfz z{~YTpKKVJ;m^3(#1U0y%2{XCW9LgTaU<}7Wqqf;CqRl#^Eq#gKQn&Y?SmU(gWVV&J*zq~C>O~%As}#g z^pJ9uNs_DYOmgwwiF60f=Qnc`nT2fO}z z8CpWu_a{3xjwRyDW68p~v5MYFn3dw2k{#fG)EAFGkt~`EpLtrc<6JG-6++aw9!qv! zt|d$7Y8CNf_+AeKZ?%@GGMq0SNH^MdT7c5EqmrHHg7#HN$0~|Zdu>UwtE;{K31PM} zI*0@5MrO>KEiyBVF-feE%(tIRqz}`^Y8Ji=fbxbsD>94Wx7BbId4|!gTpC+@0T`Gj zv*$*M>Fz5Gm?KT=usj_K>zekw7?^F8HqkD1YY}S${QHxz zvW;d5w_HWwZ23d|DPmE!0ZU7)v-mE|h5CmzQkcz+LeVwHXe|3cyz(_MFvlqF)0G%@D+_(8_heV_t&vq+wm+-Y&{4aLOWtq(|BIZlXq&P z?#NE3X0vCK*py?O7K3NwyXG3#W=Ojrael6GU&c0YxKZPXz734!)E6f^Vs`^$5PnHy zz?Xpyjc(HQ>Gh)%P$xFD6O~yHF{PogUKV9qts_P@f;wM^{ZczxSdEOQRi}5v5qY2x z>ej9W?2bI6TWjK`1yWf@PzEiSlvOqqJDV5_a4-Zbht@rqF#5&h(1_nQ zH#6dT5=vpmC*(n=&I8M1H4E;9foYIlv#?&P!{2IWxLmQ%*tE$vBh$T%Iw>U1st@x3fZdTm=#*v4pnymrQ@ zR`DiOJ@K|sm9Wl%cG;o5p6sm4c54(5)N6|GfFYLJaa8>n|>A3lks$lj_^nO>b*7){l|jDm&PS9VB1njMD` zQcla(OEfN3ep^Q}?ZxJHMyt{$7eWoLN_JeS)fNA+#;&bwo-Bg@D{F?@wY?upcEJB* zx7f9N;7pAIqd=4w8dqHC$Z7X_=y5XG#zlaTT^^sStIiZ<*bALvV<7xKVm!QzPOevq zp|PhYnmwQ=M(oik%`Ae+FEi0>zAsHn*6k}aE=o({4rIKxz9O!}PVESc6`LlzFZXt7 zVTCHJV&it*sxvwoHEFt8H@VaprB`X=aUwK|R~d;3%``C%b9b(@v*X~->ZUNo(Y}i; zh4u=hHMAjJOqbgsYihdm&n%xX0gjtOIdg0xhm*5lRbAcKlhan0PZ&coRhD*D`Ir%| zf-5m&qgYS#jM1(rpOE_fa{7H$hVS>we7|2>Q(T=}ixt zo7)rz!co%~bgbLa)#x9qlA|9~_a1C8@w;%sR3mm-vPjPa^D&ssq~>9!QS+$X4MP_E zCRZStumZ`X^!m}@(#&Kjdjbu8ABix!rRx+g0g*Q8>ZoPBN*eR~>h3xG5#qa*`eJk>`AlYK=FFLyGiT16IrF&Xyq`i6 znl&nmkVNKMNH9TRKqNs*uc(9kYH1K9*6=d#Ac>pywpEGzB!>4Cy1qw&9TG z5=H14iK0}d#x9cmqqjy?#Uoo(nNX%u_a>AZds?DYm1mR0*5T+DiH_}&=v0b#yf`_W zUy$UM1O6FNID*fz^5l!U5zy>a9^42*D>7siyo04=40*)Qhx7gxKvW`C^zasRtXmsB z*aHdm!V~Xp^}=;uqLfAMehKwr8^!QZsEQ&_cd=s>CLu+Q??kWB+&7@?4EPP_iX&;f z8T|E4=2a?(_kYE)(Y!k8u#_oxG*7>PYlcca;ek|*1YC)Q4k zvHc6bJ+cQ?m`tWqqeyo-Ydtu!LZtu38UgNd9YRBmhThg_aEil|xG_N0XhM8z2~u26 zjw=3A5xbOUscL)2iOk7%fT0bO`9w!-oT!-$_E6xH#Ky@`5M?0d6|u>@$Ps&AR9?+{ zkx8e!A~!yTo9Va77T^wbcvPzzNkTEtiW-xej3lR==k@J1-3O7PYrLKjP5)(&E^AkRHR?RbNVP6 zzH4_U(NAn6F2$q&-b_yh^hQ@QJ-Mp>-&n6Xemfw9P$51x5@G zrdd{CNCX!oLNxU%(Uru+va7gD44=jSs*reb>tH!IwLvml^USNTDz#FQh&TE>Vp$?| zb-cNdP%^SxbL?t9Qg>k6iaGT`sG(Q0Q}cL4S7GF3^IZ0xTGO4S4EY{-XghgLke4NB}$v+q6|` zrHIXi!BAnn&SlL%(mbUy&N)v;JUt!YL#*mvO>MNQJgq#1j-`S=b(FY@5O)3#**i z6>Q7tJxL?w0)-~_xmbTEs;&z7GyyDhjKECszjyNNpiE|;*u5%C0sqQ%p-iKTv$az# zV$UTyf%qP)bbE&`HLAGQif12M?Mzjg0Q-4|@FRA3fd%k0JHiTM6--<8phGwj=;WL6^@R1C}4hrvzcsCsom2Clh zd|?G2dXcJEi`A$Fo%4bB*H#VB6?-cGON4BI==l?#Jwe8Vp0hA6>KtRJ*~UnNt*y=M zS%qm$9FzB#9jE|x9>PtPvNy4#6ejEp%Cy*1;@D3x(r8}n0^3yjJus2V6!r@-=bku) zc97<1GcwMg-UDlbLjFhx!4i$ zwnnMgBSTQy6!Lme8M4PKi-;8=UNyK2F2!zB zYhis+F}Js8HxN@HU)nCCcZu-U@oe#{T5g&Ovpr|YVIiqaJ)tt=JxSs^1$Yzb%2$fJ z@8#XCiU$%qv01I^e`*bPEI6e2sv?^95O3Veb5((%>k@OdFEEDB>W2As7GOu4jXEGH z(Z;S!s99)6Tg_Bmp&7gD(Ekc{Dz$m&1XUmZ`AZK?O5_bl1vzJ^cEq5r)j>^>NZ44} zmlgpp=#Xn6waFsjD9Y7W)I|8DDr=}r)+|lp36(_CmiFAd3J`jIoX$m}Fdkrq?Yb|P zPyIf^>hipHUEbDf?sj>+{Z*HrspkW%e(RlBW2@iRcIY>J=r-QR7xyRLcmDt@u1lDwZa?_SNHvqMLk7p&oLYZfK;n~&CM zV()71ZeDOd@9%VYpBJm5{Le`h#6_`@qGmHh(c&%K5NkK`E>`qJv27#v#S{!^LohG+ zd3P&jsMx!SKc@n?1dHUMRv=I8-b`av8bR@H9nH}SOFwaHGpv;=&|A0#&%TNtpp>%w ziYR<6HA$!Q2njLPuzWB^}{G2vC*rbDMeM^FCQpWm@c0vG+laZ<*lpH?(lK+UETitwnMs zN&3Xnt^AhdMAGw$HhOwL>LmSkMKfFx!SV=eH)+rkGz-QH37wFPmuzh@M8&p;0I8~V zj25U^*hve+1LEjIv@pVq3W8hku{H6fv{mWYJHq=g&mAQ(c#l|84oTfb>UsUNClS z@!tPAB=>Zj{;)imAs6B@-xfO_xRUAcn6k)+);G&C{B^XuV8v~+U=hb0u6TUxeih$3 znd(FM6})$?jKA91iUluDNyQV`20MexICZuyKJ?ejPr)X zX*A9enj+i{=z0P${OiTI2L6;I)>Z8hW=f_i7G*ANIPD9Y&3V`({Eeer`gsFpM~w4VI3hZtVDqrpco`*zqgeQ3gJAD5D8l=9T;gWoie%bl{+TMtg?Q zF8&LfQ;>0W4ja`<6_Hz^_U|7F&rVF-GG}O@n6s0Q7%aEEV!61Fl#TK1bU8y^6lyk1 z#c7y7<^IuF@#0SYKk4PXSRWc)(}gt`<%?hJ;&XXn-B6MK3;viw%({see}UOgmcnqC z{ug|jBlIUxyqk~hSI&p%Lj&2!jM}>H_g@$_`my6*jYu*JpD7b{0O_VcdUZ*q2D#86 zadO_MX+ni_|-OTl6L)6t)N*)_VR9}9eY z%SAHp@)37XUJ-f>y{2mWx!C#`R8twihZ>R}$8n=FqBFZqY<*O`THp%x*;(K(9kI7`!_TXcN4xp)uns^xZ`_w>k%UH9wg-nYucoF_2R zs+zQl6$m&6qk}R1DD6Mv8=~3xf`OVHW7;De@gh#zXi?p*f%x73JA^MKR&aQG ze32Ji&b_GMUaFu=;`7iJI>T0at$6iGoC2Kqxt zsQ%mIx-X5zse^uLwh#n*=ou)a%YRqtE^#V=2!(c~r_=C?8m)6NCP4*yo6Rmb)<8@U zFRZ`r1cj1*s4x+Giswvh*CIb!v>q*5pU@)qGip&gExyBHs65Yf3M^A3>Ul&97! zNieg5QD2cjKLGQH4CjmCd-?XD5`+iZ0Ao24fzjbGg3N>-C3t76M6M9UvaK`9<5XJY zc^3?(Q5c2QOu`;h@qQd$NsJFc$?!tP86iy}@Lnw{_wgC2#ORUMBCtaA`kX9rcpuMA zqd3FBDg(?PD#)Ufuu&tcNn%clq_}Xn4k8aEfi5O%>aCzO80k|LjFF9D4dD{ONz;8S zn$*f%8GifRNH&H#I;4d)%d)En6RD!kk;Rf^$<868a3Cz2oZTejGwM@RLf3j2XAk47 zA{d^d@UE3ip23m|p`>vb{gEczzvo#KRIAW}W7u?eq87ExOy15Kk~QnV$}+>MDP~-1 zO(kl8!-cXnp^4GT{+%D27T&|$Bi1)URLdfEmWpQ@`5@Q(@+9u_)G~?JXdNX^HF8{k z!uM95;X}$LKwtdc5lX1Ywmumj12rP;u!9$_L1xoX9Rjg65??XPw~lUBE*28M#^Yl zMN+q@?v$m+XNeysOaIQv64UI~oJ$sb$<3av?s;6c+AJ)w>0*5Ea@L@Zu=Pr^c)zz1 zbtKE+E=?lVme~ z0DD2N7O?QEBUyA)gf+g8(cLpii;9(6`G+5}#_DFkTm_gZfSJ$22XAMt?0Qx{{{w8n z0dC7Gz*weWA88h^P!3m+Isg|Wtyvzg1qwdm%0t?`5T ztnq_v&CJs=2A_docm<4g0;i0>fI3n9me_-XhMjUoh19q2Y|j~?7R4FH>GquA?HXO5 z;}&y1b>xUk_w&sE!&u2X4^zMdpwy55z!d!nu5GL+o=6xg-apug+A+oH{Rv~G?76nF z(p>o*HjNc?bQmm(B-1*OmdDn5*}^ZVY#!3HA8qr>mfX9 zjyRezFAq0&A1J#a#3W~uFHT7f^A=fH$JtX>Ear{wZSFB|6ms(^&T{g@9_LV39mzk` zWV5csjSg`YscREg%UhF2k+>>^xQghQ8fVwk0ZFNu~QiX88 z$OjGXOu(qBK}E9!jB3VRbYY-SY<-cBxZLVySyl)6;WA!h_7W$sq-jhubv4E?5g}^i z?~xOBN(@A@MF37rxL;D8NdThaC8+JEh?PV0#KM<&Zdb~hn!ksNBh_4NeTo0bg21iJ zm-vXTi4{Uu3Gc6PV&5vc(O8X}3DB=_0ZF*2OG08^IFRe64~_E&t_ zf8D&hnzB1>wSZ?#Fmw7}RKwWALu(nn* zc~aVCyuU|mY{f>Ps-&(AHm#Gg3$V>pi~2hOkLVd&Y30*eoF4vp49Y11LF z67;Kfg5dThr`>`d=wW>O_yG5Jdh%JyB(_pyzRDLlLYX4;Dj#%_Y>f8^hC&xQ{Opq$nWgqB?AhZAZs9vEG)^w`bY83K?pTW15nPUiR9P#&lK_5f#xS(<0G^_ zB@p(%%P4P#&v#^?_p#)|Z&%%A7mCw|aDtfx_3k4>#q8JlPprHR%|~D7{TwP33vK=# ztUj4kgja~szvES%(#}g`IhIbe8yyT!DPa7fY!H6D z1k6={na^BV5msLPwo;!quhha9)k8ahhI7&Fj8EMxwVd$OU5wN!SFdC(Jn;ZDqgBv~ zk~Kc{Sq2S>g{K~2e9{N3{G=lYfUltPBwH$xOEcLF2Qq1V(z9B4(h-ec_5rC?tnu%2 zSv1NuSO0ZddEg$_IQL3iaGJrw6YBwcJ76~hcGvk~iwSlLU`GP>D!|SMZ16mYiwM{W z;ICMCQntpY6tqX2U9XkTM~fdf7;o^i@E$`8H~6*2xmU4r=OkbB8u<0M`OLx@EO6ow zrYk2ae;-u&0LtbE$y#7t>d5fUh~^5W?aOLh^8&QeS*$$ud0c`@xhWc1HlNm@%}qDF z5M4X#Wb>Dc#<}j#AJzQjq9z>MsX2FEbu?t!`b_{C;>qw65u)=C_Ys z>#E!ICivPEnNp_VIB^SgtJ5sl0Mpy{B-}$vGK+^MnI*YNrh7y3bTh9u*(}hK>GB2c z1i`9Awn65IVo(Ul&LJ$3 zmsI^z3tl{nrBc5&+)};JZ5omaqi``!HbF0Co>xsjp}S(H^mcEhN~#0QPmjehk>} zI>H8JEhI25gn>MqU-TXi53F^V-El#TzlUqJpW>chi-Tik4G;8jjspvHpU^CR5A6Oa zGnvMtYx*#Hw9l2A>ImGIni2L_Ie1T>gTIl+Obu7^GT+mqvm%n?ZzC-Uac?8dNq#*u;Wrp>Lf~n*D3*yC=TlvE zy0^%5`;tsYEj@6hlVBvFc)WZ1TNVfQYR7@WPFS!r4s6eDp>>H|x%kw8w`7Yin&Ajv zgjN^UqSgCZ13L-oe9aoP-AuK9KYVKae&&*`-_52s@Pi0Y>vzMa*2BLFEz}RP2IC#3 zT8}u{dLTMNtw+4^HRcG_daGr<#fz`;aY~vS0ix{H zqLn#4q=knrb;Hu%NOq|IWZ@B&zvumwQL72J*`SfZsCCf~8MUNTXa7{wX`4|C^A{$< zN@XfilK-P0G!^-j*~aK1RvqTKE`tm^5r_xd$P-ByFCOOk18hqW5~L-lpar~Z1Npmd zeiO4@rkrW2L>U5uzwCZ>G?G7C8i2lB_XvzZtE2&_HTW;wM}JisfUaRH35FS{@pWw|Q< zDajojFUZI=_7j)&5P<2abwrQmrU>mX{7y&cpeQ?zT`!iZ%xQ-uk?}J7v%G(BrPA{5 z`aheIdYof1kc5fJ%?whX&$Sq|v#w=IJ-oEdyoT1E!rBOwQd}T6F_bdj-nurpORBAT z!i!jlAuQ!W!kbT^68KJX*Q@=$6j*0cUV-Tr)|zCotCQG6>Q zLilYUXkp>k-pB7R2`PL7COP=8XKCTr^EDI-GaX>w@N4|HvowCFS_}VnnZ{p>XyHSf zG#-3or)KIqASas8^5Kx26&Z?nF-~LE%-e|BUvrpA&qytx!AZW4o6@i44F-iZ%}kN$ z8gW=Szt&+&U*iqPXQmCujqVn3qfFCG>H8cF$TPw0vQ%qGp9cU;n&|}K1N$OV*U4H# z#tzNQ*oZVAYv_VFt&TUancQR^-q7_K&2;Y&Pk-mQFsS;YgJn%I>6#AA{6{5;$k>Rz zCgL{*mkVk0Af6qW4{0;s%-b;Ebm!h+mJF>ni+$B*(Tr-du&UZDxV0MT)kv>4-P^0N zpB{)hW5IGVTFXIDb0pd3Iq9Ece9F<{hLm|tY;k7nW}5+}C^V|yBz-2DLOPAj$Miay z7d)~9j2Oel1eg#^X%={JX?{3v@(1akK5Q`y6}i?JV2)b1S+v2;Tm4|1?eJ&OE>C~n zT8&H;UPe2`@B!-~Ka0}g=Y!!0ZUmT#{8r#1|82qp|9#32|4YgbKSKHY^I+>H%Gj5; z?xYOx^R;kmmd2-~Y2hg^0NI;;q1}zQ6>ILl7HKzYW{-X2!~RROXtn`G8-`^l+6o4W z_LQ+2bX+Xw?uK&xuoj-Whm>(?*rsKiy@YH0$A>J)FZv4rUjX3i0PG{zi{Xib9pyJ9 zX)Y|~_@p#PG z_q7gCrmvYdG+^qV&gK4_@y5vZ-e$_J_?`Q)m({L&e7!~<FT*xfRpW2l8azWIERHa|S5r5Y8h4j1{V`CzR&Jh){ZFRq;zF80miL$rC} zAuRz6(Hm~SY7ULeG4p2Rm>yq_Suivwh|J@|Lo^iZL(8m6B(|;qtt;MMf$>@aQF}$; zkvj*OC2wZCj2Ey#@QEgAx{b_ibz&e{T?@1u=<~OFSkuYZA&Y`q|RtI}*VH4Ue3ryGbz|wpa z6dPm~4(%EEq7J{k0~?LOn5EM&Prz)YX6i>=LF3dn(G=Zj)zB08VmJYN8jUpstd{8# znBMw2^>0_Yo~&SFChQ6p@=&fTr3-5`#!?=+ykug#SVa5dN4DAp9NWM>q}BCHZ|I zTFD;_#wC9&?KWql0$^SWUyI3y!VqF5+k-vAzr9;S;gmU>{}$5fwLLJ>y#N`$&%~7K zR4rj^1O2z+v7DjZ8dq=hL8H{?$kLG7;iZ4R%M0MCN zS7UnziXqN^yeefwTv-azx4hh>S0`aD`dS!c5{x(joH~II#E2M(kx_`@Sac9nc?T3Z ziPrB1rS^j=UxOma!xo?V`K$KC70^>0(G*z`tRq4NIP26io|cg^MpZI4mf~omnFl?! zxzW0uxO#W|+a32%qFK1f+E!7snpB5ReMgIgyWSZ^NJ+}+lAF_GdF^(^FjZ%&7R}So0c|Ht+3g1JT+y7>3)#rQ}h`WJrA5) z2T6t_PbNAWbF5VOJZ;JzlyN!Do*M8Bl^n&U7bIA&D>6Agrysw)X^~xq)Jmd;rP-!f z+O4d5>?WGfU1=c?&DrHC5354b04oKASEIu%YQF=5KMAH_DfqpsNI+oM%pD#Gi3b6| z^L-P*shQ!y=%JMhUkzRq>s>1ZN zRCL;~plq3UnJlosksdCvYF{J~64`(l1r?Bwf;{aD;sZgwy!Xdo|9>txK9F+uW)oOJ~gL zMFq=DWIqR=iac*Bc7maYK|Cr-VfK`Kmp@>$z| z{~{znP##C%p-KTk0ln&TzI>sN;)VD2m&WtDt-N@mDPA~m1UoO>`++RHw|{UPLGgCz zQ7D|=ed?@mHAL}JlTr?j_iZW&55)K{f&xI6g7}bY*Vv%NC?UTrFw^)OWs)3PL^&GP<;ELmiH!X_2`;HbWPEDx<*!z(XbtVysvRYl@rvc&s9NqI1q_665yjC zJT7=nL4|M9tB93Qn<}9;&HaIvSq)>OWr016!>T}(S0M3HLv$Xb0&yT#7U=Gzz>+ti z^lzUFRe7#i&@%T2NIz5-lxZA_7la4x&;V)(bqi4vehXEA;=N(0)j>{rHAyQE3MxcF zMJTBFKeSA7`72bQ#pNkso6Fr+VeE5g4!yyyae+~3FZ~} zZx#V}RXAV6)p)HUT;PMM9o!C6{Jvt0=MuBv%@Pz^5zhBPMb@Aqw?L!Ks4^w|Jp%0PX!WV(*6+YV@0h3u_0IFX*L(3tRfr#$!0o*I%C7I@uk+ zTl&#vBR6aN(}pAbesm5iZ2I~|qhYQ5cz~7v?@lNt?+pND`qFMFD%}q&lpuc8%G!rb ztv3NTzTe2gW=jr!GhR}g(|G)4jhFaxXa_S~qUA&%$QypZk~3#}20l@gMKRmg_ylC;j=L+HS6#)x=ZX%c~!w!n;d~!L-#4WCF>aW##|a zNhIyAYFF!`^%DSH3b3WS4cB-=!nrKC9u`~=3(jT3mA{V`lO-eH*TaI%vS6`$hwdt9 z>ER06g%dEDLGpcB7I3x&oNWPTwL@GaVY3yimZ@NUnF`hyZ&c$ycQWuxF3;D}&E1ca zvXW*#PJV5g`NZQHK@^x~K1C5)nz`-qOxHCJfC??C=A-x>xi1sjH@H|~&-<}MNb3qj z{Q=(%h~PsFdxCslSKuMP6kS@1)|GjDJuThf65er-DPQ#$f%$lo#q zV>=!BJ?5^*J;?7dA3fv&Tq^Rz_oX5~d@a>{B1k`4Qh= zf&w5YK*l5>fUhM10sIyxDgeLMiTspKLQPUMH*Vjw^K zTEh%JK|g#35KzS6aDK~RQ~(Gx0|<(Mpa=+xfB@saMF#@-wK@>M_vxqrd`(AwN{0;5 zkl!~rT+qUizZm(8k-r%EA%JQ*@{=Iq$PZuRK_I{n>_R;yBY?nH#0zSRKmi93lmI~q z5R?Ex2{NW2BYZ6dh~Q%v{3-HVl7WZflL3!6{(Q;cCHS>TpdkE~By$J(ngjVM-GTfR z4r)L^5gHJ{Z^=Z)VaS*XM8nJ-_m!Kw?nBs@fei3ldLunKobT)HdfU*<@Z-tmPoGal zdY=aTM!o?k2)@<_1p}^D!L0_|76~_?0l!_dQZ;i8;vNc4OL5J@lK6g#Ow$_HBD25N zjLura%(c%aH>|lSrQrdJyVb<*smZ6zFvC-Prir+QbkcJ1-2X0BpeHJpiVF5Z z#o@!swS#W_C0{AT%KtSQ1 zKtSQ#aJ~ivzC848PasGK0*rv?!TpDj?xSIrftF)~K#ubP$d`cvdvbpPjs#@W;YiE_ zwHS);W|*~)vxd;~ENF%fF<0bytmP~tfLi;lb#1`Ky@;zoE8BbG==s znGwXjja{5N^6Quhzajh(Lo3~`wa|1G+xN6RVUmhpSq;<4%_ z^M;J~Hn>voMEhE@NO&FOx51^$Mk%=1HrMKev>=%*=|;UmvXhqFQ6px*dpQeX+@JB{ z4HmfqewiLHjmB*()=CJ=aB)m(K)1?5jjTgaIPmmdfNU4A*LZ{o+#(JWhCB zSndZEV)iR(yt&Ud-dKpKbrLaKC~Y^ZQ`zEEzuzSdKQR7VtL5jTDKPxR^Cp;4WM1zA zTAFbz^Xz3Am^D`!FNOy-^uunKru`n<8ZheC!nnJk%yj1t#kNMNS?nvtwnnL0SXGK` zjZ&nSBE8gfZ!d)oIHdVTY}D4LaJj3|_egJfg3j=HVEE$}MX*fs^~NNIxLAsc^Ii`X zt~WGk*zbZNE0X<~7NGXNAn&*(vg}S49g&6o(hyE6?egLc-Ls8fwz6_*zDX&JZMT#g!B!)Umgjia*=|T^hMAs**QvW@Hl*)? zpPOlRA%AFQgYd40$1n(Oy3*DLnQllegYPs*S=905KLE&w)WS2}d}k}^aquzWV9kc37RU%A;3eo= z=j-@BI1N4T7%GV5L1Wzxh}v{gPIW$|FS?TaV&HCZ@G0Yfi~Q-Z>B0|AnS;V8Vj*d* z@K;a*5UfSv6y8dR;6FhK5dR_}fd2*|M*LCAkMJjypM@_yjo;~LCB^lH-4Oo8#TuVB zPUDwO*TNUi(ZbUfYJB<%G@?lhHb!=WJZo5EI&IvIb(CW_7{*}D>f<5dRvjC*J+Ny} zk`hcBdJz)`3a>p1sa9*y-3o|o!z>_QGjLNCev57vkzb3|vJ5*KYG0r*H>I!X4Iv8q zg1RYxv}g@s3E(iL@8b>kQn-bi%E#m((=qYLjE;sn@-=S4Z&>+)2IS0KDbq0N$TWuu zzhU(ynz?!~(tWI9m5kR+_zi0??XL-5t2NvQyZL>4;HSa9vx9}*EoB^n2$Kak6k8^P zT1qi#l!l9ZrF<}y)4?qzyco)Av9E*=(MrNYT86kZZRicy^ikrs!yd1kPhwBQN)2Yk zLo0jbshqEo=X+BuYvRMj`+w(?lggx}?tXc2M}oxgWf;1PrQkmnHBJ12M9@$IXiFmK z-^BD2+?RwNi`F~GMc*2fuTCfVGk;o?(=*?V4)$+!8MP2aK26B#g-%DyimVs?v${n? zMg0aEupUQ@X|T=p4d>T^Tja37;$X6R2fh{PBaus^uN37<^v0&l=qE)v=iVW##pyRR zoo<7vvg93i-0n)aL+HgFLJYHFx067C*x29#nF@8H#q+fVO%;KEzh4tJXhdN8X?c0 zRo^iYzaNt4&vpjzwI)Bl5%Ukc-Lv%{ytQ=Y`k%X!M9=amAFxq(xc==*8ufAG0UTY% zn!Wiz?(d`ZQ(kSvhJACv#6L&t3$7CDKcZXke~dp8o-9s(gtOa9vaS=eKgLsBYBE_P z>ORK%p)wGw7l%K_n|fqktZ$txA1II<=53S%5f2(*!0B{|!s5I=#6^IeMDZ$)?PxCh zgb(p1ttTfN2$1`DvC4Eq_Iw@b^~;BG-zUrFuSHBEVgx%dJQ}w0J9ZFpdbxQ*qd;*Q`sl#!NK; z>gR|jO7&bis*a3TVl*Q|3q~0pW0zHAA8sD1=Uzfe&8|qf`IIrte8LzO$aGpCHL+il zk5tRoV_8Q}|j<>92lQGB^E0`khhi3AR;V(&e?(XiB7f^JtqWtVK*8t=~F8 z)paDP4D!x}D)%7O%hdD7ild`-^;H#oA;+T3BH2}YiOam#2+sxj1y>r>Vvvsf`qo-W zItjpLVS+gets0ev5X;-Z=$(wHURMq+3HNF<^|p$K_LwC)9<+eIS-fMI*n5GF7uIPw z#C{{(WAuwv2ca6OlywQ!m@MkX=y=OsHu*iUp+l^f^~(__$LN>#$xl$KJ6!*x%XCA6 z1!ykr;s;U<9n(29EV8;mtl?`Fyr33pA23H+A28jmG&6I|%p5Z_N8|MK&bW#IrSZj7 zg*<+F2lAXTOF$4v^>Dr)hoSsToF1#^v{k$GOx36kI$a?h(7x{Wz zs1GVF#9$~qILx&s2`zxT568M_1s3Ur$zb=ez`^93qID1hZjv3b0b=2Wdak_jRS+2( znC4s_-l=2a$_5!)tXMbQMk>p+{$`Wo@KCm<=%L%To& zuZ%Mv#aAOLC+PX4`XDg^Eun8BdK_BE*%hpjQ4NUj3&j%?^dS=@X8K}EN8WL^JL9i!8q>@P-ott#U3YXDWWuZGDg;&T{OMS0~kZ&#UE=+!4WLL>3z0sTUv z4#xjHTDZvZi%l#{7S2(2Jl2tBo(iMN)#w*P$l>8VA_{%F{7MkD6(1webINyOb~Nzq zF<^-rE#TXI&Su16c3*(q2q)IjSV!SoTG)$ICHPm0Ek0d-P73I;sMc_LU(?kfVvmcX zKK;q-K^2?_#Z_4F$hw_nf$q*^H5&Zupz-NcT4!}8WF{6|*wMum1)o7BT7~GC91Uxv zJ}6F3)UTML9xMsxM~2ek+$?Uw1BjA`TW}P?p7Z9*a_jNUIikDOf=c5 zlCcR-&FMogZ)+O}h_;2K6uKwu*OCIdk$Su?@(TUtFhXMnv#I~!d8>GMvYykk4XGlS zL>jwevtJ)XlFeoKw}~>pK1;p9#r_JJBxekxMB_#Qb^=O?eoYrQ(=hA2QGi9PeeEP8>ex9i3@co@ybs)hL(jpEyDv z-w7kL0WNT}KxLCo$Ks$1IPidvk_`pM*g*QT_$(0WwRei1b*&oqV=$6?K$HOxVl2BU zQ+0~}JnR5*CE3CI)(=+SeUUx-F?}(^L$!9*`(d5J=yw<_ywhJAc*u}jt=s06Rc61~j zHDX3Dh1D1fNha4)B!ywZa71;CAbo>mIgB8{*Wz#-^diM&lfwR52j(fnds*O-ofd0G zj^kSndL;fq!jkO(zzmHYUiHm1e~pP`B#O@`u-3|>y5`Br^0tF<4rpJYoCzCrOY{mD;z;hUDPyR!1h%!kJb zP`mmAZ;KPt^b3MfD)8mMHb>U~97~^`a!J&R#Z1Kis$3E+bNw6duzW0+MEO|QMDnkq ziC<3gK;&{d-y`)r{^heU;R|P?Vsg;ARvOTHw#xyAkqMHh-%urw5siCAlZ*i{xdBnF z((@&GVq>E(_Vb9!FC6%U(vxvQ?jX60wS*)F`!3)x9Nb^a0zEeA z(n!W&Bm*3}=(spJUB6%I3LOlf^v+A%$az;&a(Jf`tG9fxC{0e#nrmdKcVVDGQs~e* zH$pdv>7(+&t$u5E{vn(-O*(NeoqLOhaz}Lf425j3mwHmFaU?Oqe&>ZzC#1n=Zzr3{ zN5)}_hFwhFEo*Ur_hTSrA=o7HJmQF?(YTZx*UBy8ANfWot(I46TjJ zU{QRXo;(|taZdHcn<~T1EA%WiX@E_NEA)$L z0Ym7)79pB)%kddA2ydw(Ht6_D?8XZH0=06$_{M1sOFyy8nYRIxNu*szodF#lhI6su5ZO5`7&#X#%>W` zUkxM@n*B~JosG4t48&d)@66VlYXb4xw%nm=80VXL@trP7FSY|l3vC>?zrHI8y$P2E_u60Il_Im9bm=g{ z#nfvOR+ml#$}7}Q$YYYvW}#9t_%35uc$XhvfzM{HQQ54q9!9Dgj#Dcgx1zHtP1PJn;X~k-kVfz91+j*zw~RPM0wuR32_jklr8K|=07wIgJTx3Q zPGbp+%OACLE)0eUA6@of>dUzJz${J9ip02muwC4CtzObLq-oX%t{SOZri=a8>URbQ zLQxs$hmin*M9Jt)&^s=6kF<+ibQz~XY zD6SP&T(~M+fP4jhnU4%}3YJ$kf61STMrPH?*>l#Zbsl8I@hhy4zZ`+z`8dmq-%X#c z!%&Rb)2G-rN6#6Ig$U-T00uZzg_gE&>O#T63OXc=bB~5gA-*ww{de*=uS)~W42V9t9CH19> z-+C?ej@1*>#L?^YSy!roK8gFYEMtJbf)tHL?7*mDUw=)xu}hAc@J>ua5Set)4Tuv& zw)`-(EkZ95bw7@`^UvbgkM%6^+K=_JPG?WWo?okuiFE83;;gnYmET$lbs0tybUf+W zpY2S>sw3rx##?mR2ya|I4*@$*vOdMx{QY)90Pkc>I%6O_`?NVS}-yxJn;E z?KrQ(zoJSXaye#idgtnV3P15ZEOd<8MtyL6tML_SN9RR~Rm7kHE7S{G=R+*KbM>6d z&o8)sV{-u63%Q4SUuS_W|9Sl~Xu$F#8MXq|S(C)6xzGeq|F|aDQC7neDD5<91HNt5 zNw1S8!A@3!Vr>BQJ#QmIdzz01^jVrx)FR88jeJac#&T&ERb94G4oYWa3F7c>2fnGR z2F3u2k2;OJ)VFq_M%826K&E;7S$S@w&zM_rdGR<%OAAM?h2zd1=OSS_(Y{9t#V6Hz zw{_`CRGK6DV3a#YN`As#pqjUDv_(K(rNB|$B68Y{4T!JQ~FZIdvM zeMzlps}Y&8r9nffp3cZpd3;v2=9^|o6-5Cn|EKZ1nCs<6ipu|$6(3wGwS0x(%Qj$K z-k0WYS&7f1t92!soRQlS3j9pL8+W&_bm*f~ZZ{+MNeB0e>1Mje%_hUu!EN&d-E4Wj zn{9;K3-<}!=z(r_8ZK7oX6`{qhkFNZP7&hZ>IS>nZn$2>Zng?;{SY_X4|fbMxx~%N z;AX>p0=K>tX>eZ`m~7_2PFye{vKM}P62fH(zdOzR|B*hrL!Rph@pQPlQV*M2=3xur zj>1hJ3OCHdmcng?I|jF)+{5No-&Vck#;S!k-c_~q#>I==^Q&%LSUr!i>A4^+W735{ z=H*{_ShW~&lm2vuew7(dn%P@?c9VWt#w+NVbPIe{Zu4a~>ls?+^c!zjuyoSG8><&B zy>jW|CDmfiLjAkcwpel9EqaM_R?WPsrPboMx9FyL;TC;saMVE$gQ=ML;fBDmTsOnB zOR~)M=rB8d6yj3h3XyJ?JrA8`rx#o42T`|P_)X181|!(%xmLOz9-zW_(ZH%eKk?=w zeX!%LgW}909eT=Z9yUOHUjxnEw^(->g$Nf4ZLyv$7BAMbjM)emsPyfWz6#-dmHzw1 zdN*S~!lp|9ezD%wIDv4UN*`RK|JIRtNPJtP=Q+MUB>LY9zwhf};;s6ajH6)>Y6b&3 z+$Zmd`)<{H7u3D(k!_miV9bs9lkc?AAoqd{dGNRC`OQ}^(eV|@S>T1+N~@MEt-j?pblBp%7A(72oL;6+#VZ}`JV5UxWIj?yh$|tPi3_pkBSj}Un_|)iBw|imr{H0^u_-(_iz}W+8 z@H-Yv(=qX{dVN~&?(ZpLdf?|Fy{`r5c~4xiQZK4pfOu-qJ@ARWW=1{nVd))XvV-GH z*28DAg*VP!QnlpH(f}kv>1|5_rPa3us%olBmfTiS@;l_E&M8~Y*w=qn1ff2sI*Zu7 zdQNW5k{cH-t(v=#;1T%=GEl!#uaA`B=I*QXbw>U(NTA5Ma3)-7r@ReboE=2!D<68; zE%2S7E|q16lMpUNICF{_Z_8c`wZ!m2geh+3Ne}A*xV~@|aP+$p?o&w4@xXByt_NIV zcqqadR@Ig)TePTpNvU{poj%go3uKeTKi28x*3aAr^iiFUr(X$t`uo8L^q$0pH~hoH z=8C2V^gG6E{JyQu-C#{yyZ`3Tx`bv zY_i1gexy;{C&=IHFD4reC-cLnHg`(x(mNI}xw&-uvL!c9ubL~?MRkw(ZiC(>W68oA z)tQAKd)SXe^#*-_p?b|MakfnEy}1QO}hPr=I_Bd#)%*^8<~+ZNM`V z1<^<;gWpNb7uPJk@s=BJTY6*Q`UR4xoxse$aS`bt)$=S6X5)PncxjZ_;TI7e0cjhL z__bBA4bX}($x%D}M}#j%Sg9HRUGEGompTb?<)i=duvy5y5{~L&hnqWuTbURZ)$^vQ z7Pi4X05}rocD`L!_`j>jFk|8Wg1(|P3PGTLejn8bTR(?v)XTdjYGbj#m}2opeNa0U zZT|qVYol&zr^KO+dQobHH8uS6lsL0dpW6;}a*kNENgu3zDjwRTm%=-=31?geZstmt7?}(B>)sh<)m)>yW($c^Jao-kwB29Tx35HJ?MiCAxbAsp|Qbb&n z*ePH973+*nOA!kn(ytU-AJo&Q0+|o1)ur&?fFpIy4j;mAnosTU%lJ)1I6uk@7gQ}= zO4T?Cl#2mM6CsI1J4~YQ2T{zXxnw!M!f=at?IC?+=UpRff8E1+YJT3oJ?vKG7y@U& zoxf`0PY>&v#ty(Q7yo=%zq0qm78_N4t<^=om>R{g3`8xg(?;WGGr;nyLt zKm0_6_pOas<0L4_6}vp*!>#&=R9kQA`;930nLfr*`Hh(SGkv6E>o?*d^56PK`~iM& z;J2{P0jaGUrXx%;P_z!CM(@F$f;$V> z?K>!8a3yeSkvhp0 zh51spxbTc{KB_O`uju*Wjz{%bj=!A|zk5`l(m(SosU$@As=&?ex%h|aHBdcBB1CaZR+XtpCjMTJgf|U z`nTdE;OE6yyIrzF@7qP`9|=ReulV^6ePfzi%a=lcYx!crPJL)W4I;8oqX>K&ZHXoH z0_GK{#py@H=AC*;YKjrlezfZ%N_&pMCD%>o%0Nir8I=BbmcECLccM$Ff+&|#D@_cp?TqWEc zaACN$a0|g!o8dnRcL44!xcA_EV2v+%{xFt_Dy9RdKm6fv7sJhjy9w?NxO?H&LOUl~ zJOqD&81cA%<%qjxpdA(u?$HMZd$8}$5=YS=aS=_1$%s1zQ2L`d zFWd?3yR)PM(I3T;TErY}c}e+S0QUvph`ZV34EN+(O~Qr{>;c%VkT~>5`8UE%J^bC} zXK4zfKZ@K9H~sK;XWj7WkK$g0n~gXUEA&TkhvAUX-Gh;N_JdyhPY^tV)c+4Nd%m18xRE1Ok-+5JZg z-{g!;Y8-f!ZA1LtbTREoy&(Ho#+i7Xh>%B-b}~cMKdF}(Z*)6zcB|O%gzge=JgFx; zrgj%ckjHT3&tU?2Q_?hMvYkir0y;|h*)>uGiQ@&CIX2o zR1JShKvbKPNKei^bCxtoq?d_fPwG9y-lz2B?5%lil_O$!&>K7Q#P6QcvwI&y+ETr@oQyYZ8H`IQ23&C`1SDKY$B zRe0ts5y^(3M!tji%%U@AsiE{oai1Wr5OGvC{mC@6tFTD?>S?_wSVq5#(R7t8>o^&4 zeGxZ~;w+A%{BscRMf_wHFY89}OA)^i@$*!Cysc{yzaQ~9eh_aXmA?b=2Zx+FyUM{p z@W~k!vKLa`LbSUK&654u!vn}K5VZ|ah3EhPR*I@$qNjhqS2vun;InPR#JhX-{&T(5 zZ^PSn#7x8`BW@m&kTqVZg@~WoNqimQ>kv;P00*boC&R@x`}E$y7x8=es557$s|HDK zB?7#K_!kS#s!?ZgF^zyvtayt6an7fXNhZtB?PuGKz`lq(we0NKLL|{2;Vwg*4!Eg| z1*jpiP(nTx3BxHtRmN)%D@vP(w8}fqo(z5b2gNDsB$qb|7weLR<~vUO^o782wS|P z9;;9%)hH>D35N&qeOI5ghh@b~TZ&+Bg3>1=ed~Q^<8m-j%1~YAA-!Tvd!keP3dB!E z{5JeXJFb@nQbRT(;V=@YGw6@vb|Wr^xO5q#;$B4De#8w=h&zn9cM$gu#eq0f!4rtv zx>l@vM(;oC>-*2PlOw&L)Ml=0BQTX!jJRHiBaQeG}ja?@Yvb5O+`x?4TP_ zOA+-3qDUMfYuTJOT5WW0N|ODz1u&;KoIP6s5UL`HLMnDI;)nmVttv#LR}eQ2aYqwi zDgG$pS@f(evWRp+xxV`X3B^dT+V4#qA(>DbPa=&FBos`*6l0#%`)4oR+=fWD z6lu#hi$%|3f~njRAO3N%@CDM>KPVn~7AF6r51l Result { let mut stdin = SphinxStdin::new(); + + let update_sig_period = calc_sync_period(inputs.update.signature_slot()); + let store_period = calc_sync_period(inputs.store.finalized_header().beacon().slot()); + + let finalized_beacon_slot = *inputs.store.finalized_header().beacon().slot(); + let correct_sync_committee = if update_sig_period == store_period { + inputs.store.into_current_sync_committee() + } else { + inputs + .store + .into_next_sync_committee() + .ok_or_else(|| ProverError::SphinxInput { + source: "Expected next sync committee".into(), + })? + }; + stdin.write( - &CompactStore::new( - *inputs.store.finalized_header().beacon().slot(), - inputs.store.current_sync_committee().clone(), - ) - .to_ssz_bytes(), + &CompactStore::new(finalized_beacon_slot, correct_sync_committee).to_ssz_bytes(), ); stdin.write( &CompactUpdate::from(inputs.update) diff --git a/ethereum/programs/inclusion/src/main.rs b/ethereum/programs/inclusion/src/main.rs index fc4be271..9fa60914 100644 --- a/ethereum/programs/inclusion/src/main.rs +++ b/ethereum/programs/inclusion/src/main.rs @@ -25,9 +25,9 @@ pub fn main() { println!("cycle-tracker-start: deserialize_inputs"); } let compact_store = CompactStore::from_ssz_bytes(&compact_store_bytes) - .expect("LightClientStore::from_ssz_bytes: could not create store"); + .expect("CompactStore::from_ssz_bytes: could not create store"); let compact_update = CompactUpdate::from_ssz_bytes(&compact_update_bytes) - .expect("Update::from_ssz_bytes: could not create update"); + .expect("CompactUpdate::from_ssz_bytes: could not create update"); let eip1186_proof = EIP1186Proof::from_ssz_bytes(&eip1186_proof_bytes) .expect("EIP1186Proof::from_ssz_bytes: could not create proof"); sphinx_zkvm::precompiles::unconstrained! { From 4261744415d19a0b5c9cc33539010cb875e823a4 Mon Sep 17 00:00:00 2001 From: Thomas Chataigner Date: Mon, 29 Jul 2024 11:29:08 +0200 Subject: [PATCH 3/5] refactor: move test utils to core --- ethereum/Cargo.lock | 1 + ethereum/core/Cargo.toml | 9 ++- ethereum/core/src/lib.rs | 4 ++ .../{light-client => core}/src/test_utils.rs | 21 ++++-- ethereum/core/src/types/store.rs | 64 ++----------------- ethereum/docs/src/benchmark/proof.md | 2 +- ethereum/light-client/src/lib.rs | 3 +- 7 files changed, 36 insertions(+), 68 deletions(-) rename ethereum/{light-client => core}/src/test_utils.rs (87%) diff --git a/ethereum/Cargo.lock b/ethereum/Cargo.lock index 6624e9ee..63fef214 100644 --- a/ethereum/Cargo.lock +++ b/ethereum/Cargo.lock @@ -1439,6 +1439,7 @@ dependencies = [ "getset", "hex", "serde", + "serde_json", "sha2 0.9.9", "ssz_types", "thiserror", diff --git a/ethereum/core/Cargo.toml b/ethereum/core/Cargo.toml index 2b86c447..609a6af3 100644 --- a/ethereum/core/Cargo.toml +++ b/ethereum/core/Cargo.toml @@ -13,6 +13,7 @@ ethers-core = { workspace = true } hex = { workspace = true } getset = { workspace = true } serde = { workspace = true, features = ["derive"] } +serde_json = { workspace = true, optional = true } sha2 = { workspace = true } thiserror = { workspace = true } tiny-keccak = { workspace = true, features = ["keccak"] } @@ -23,4 +24,10 @@ ethereum_ssz = { workspace = true } ethereum-types = { workspace = true } ssz_types = { workspace = true, features = ["arbitrary"] } tree_hash = { workspace = true } -tree_hash_derive = { workspace = true } \ No newline at end of file +tree_hash_derive = { workspace = true } + +[features] +default = [] +ethereum = [ + "dep:serde_json" +] \ No newline at end of file diff --git a/ethereum/core/src/lib.rs b/ethereum/core/src/lib.rs index e5ed329a..d27df0ff 100644 --- a/ethereum/core/src/lib.rs +++ b/ethereum/core/src/lib.rs @@ -9,6 +9,8 @@ //! ## Sub-modules //! //! - `crypto`: This sub-module contains the cryptographic utilities used by the Light Client. +//! - `merkle`: This sub-module contains the utilities to generate and verify Merkle proofs. +//! - `test_utils`: This sub-module contains utilities to help with testing the Light Client. //! - `types`: This sub-module contains the types and utilities necessary to prove sync committee changes //! and value inclusion in the state of the chain. //! @@ -16,4 +18,6 @@ pub mod crypto; pub mod merkle; +#[cfg(feature = "ethereum")] +pub mod test_utils; pub mod types; diff --git a/ethereum/light-client/src/test_utils.rs b/ethereum/core/src/test_utils.rs similarity index 87% rename from ethereum/light-client/src/test_utils.rs rename to ethereum/core/src/test_utils.rs index a7b20e97..0f7feb29 100644 --- a/ethereum/light-client/src/test_utils.rs +++ b/ethereum/core/src/test_utils.rs @@ -1,9 +1,10 @@ -use crate::types::storage::GetProofResponse; -use ethereum_lc_core::merkle::storage_proofs::EIP1186Proof; -use ethereum_lc_core::types::bootstrap::Bootstrap; -use ethereum_lc_core::types::store::LightClientStore; -use ethereum_lc_core::types::update::{FinalityUpdate, Update}; +use crate::merkle::storage_proofs::EIP1186Proof; +use crate::types::bootstrap::Bootstrap; +use crate::types::store::LightClientStore; +use crate::types::update::{FinalityUpdate, Update}; +use ethers_core::types::EIP1186ProofResponse; use getset::Getters; +use serde_json::Value; use std::fs; use std::path::PathBuf; @@ -105,7 +106,13 @@ pub fn generate_inclusion_test_assets() -> InclusionTestAssets { let test_bytes = fs::read(test_asset_path).unwrap(); - let ethers_eip1186_proof: GetProofResponse = serde_json::from_slice(&test_bytes).unwrap(); + let ethers_eip1186_proof: Value = serde_json::from_slice(&test_bytes).unwrap(); + + let call_res = ethers_eip1186_proof + .get("result") + .expect("Ethers EIP1186 proof result not found"); + let ethers_eip1186_proof: EIP1186ProofResponse = + serde_json::from_value(call_res.clone()).unwrap(); // Initialize the LightClientStore let trusted_block_root = hex::decode(INCLUSION_CHECKPOINT.strip_prefix("0x").unwrap()) @@ -120,6 +127,6 @@ pub fn generate_inclusion_test_assets() -> InclusionTestAssets { InclusionTestAssets { store, finality_update, - eip1186_proof: EIP1186Proof::try_from(ethers_eip1186_proof.result().clone()).unwrap(), + eip1186_proof: EIP1186Proof::try_from(ethers_eip1186_proof).unwrap(), } } diff --git a/ethereum/core/src/types/store.rs b/ethereum/core/src/types/store.rs index de657f5b..f8c20c09 100644 --- a/ethereum/core/src/types/store.rs +++ b/ethereum/core/src/types/store.rs @@ -656,68 +656,16 @@ impl CompactStore { } } +#[cfg(feature = "ethereum")] #[cfg(test)] mod test { use crate::merkle::Merkleized; - use crate::types::bootstrap::Bootstrap; + use crate::test_utils::generate_committee_change_test_assets; use crate::types::store::{CompactStore, LightClientStore}; - use crate::types::update::Update; - use std::env::current_dir; - use std::fs; - - struct TestAssets { - store: LightClientStore, - update: Update, - update_new_period: Update, - } - - fn generate_test_assets() -> TestAssets { - // Instantiate bootstrap data - let test_asset_path = current_dir() - .unwrap() - .join("../test-assets/committee-change/LightClientBootstrapDeneb.ssz"); - - let test_bytes = fs::read(test_asset_path).unwrap(); - - let bootstrap = Bootstrap::from_ssz_bytes(&test_bytes).unwrap(); - - // Instantiate Update data - let test_asset_path = current_dir() - .unwrap() - .join("../test-assets/committee-change/LightClientUpdateDeneb.ssz"); - - let test_bytes = fs::read(test_asset_path).unwrap(); - - let update = Update::from_ssz_bytes(&test_bytes).unwrap(); - - // Instantiate new period Update data - let test_asset_path = current_dir() - .unwrap() - .join("../test-assets/committee-change/LightClientUpdateNewPeriodDeneb.ssz"); - - let test_bytes = fs::read(test_asset_path).unwrap(); - - let update_new_period = Update::from_ssz_bytes(&test_bytes).unwrap(); - - // Initialize the LightClientStore - let checkpoint = "0xefb4338d596b9d335b2da176dc85ee97469fc80c7e2d35b9b9c1558b4602077a"; - let trusted_block_root = hex::decode(checkpoint.strip_prefix("0x").unwrap()) - .unwrap() - .try_into() - .unwrap(); - - let store = LightClientStore::initialize(trusted_block_root, &bootstrap).unwrap(); - - TestAssets { - store, - update, - update_new_period, - } - } #[test] fn test_simple_validate_and_apply_update() { - let mut test_assets = generate_test_assets(); + let mut test_assets = generate_committee_change_test_assets(); test_assets .store @@ -747,7 +695,7 @@ mod test { #[test] fn test_process_update() { - let mut test_assets = generate_test_assets(); + let mut test_assets = generate_committee_change_test_assets(); // Note: The data is not passed through process_light_client_update as the update is never applied because quorum is not met on the static data @@ -819,7 +767,7 @@ mod test { #[test] fn test_ssz_serde_light_client_store() { - let test_assets = generate_test_assets(); + let test_assets = generate_committee_change_test_assets(); let bytes = test_assets.store.to_ssz_bytes().unwrap(); @@ -830,7 +778,7 @@ mod test { #[test] fn test_ssz_serde_compact_store() { - let test_assets = generate_test_assets(); + let test_assets = generate_committee_change_test_assets(); let compact_store = CompactStore::new( *test_assets.store.finalized_header().beacon().slot(), diff --git a/ethereum/docs/src/benchmark/proof.md b/ethereum/docs/src/benchmark/proof.md index 49362d56..77fc44e1 100644 --- a/ethereum/docs/src/benchmark/proof.md +++ b/ethereum/docs/src/benchmark/proof.md @@ -134,7 +134,7 @@ To run the test efficiently, first install `nextest` following [its documentatio Ensure that you also have the previously described environment variables set, then run the following command: ```shell -SHARD_BATCH_SIZE=0 cargo +nightly-2024-05-31 nextest run --verbose --release --profile ci --package ethereum-lc --no-capture +SHARD_BATCH_SIZE=0 cargo +nightly-2024-05-31 nextest run --verbose --release --profile ci --package ethereum-lc --no-capture --all-features ``` > **Note** diff --git a/ethereum/light-client/src/lib.rs b/ethereum/light-client/src/lib.rs index c4dc7c9f..dccfad12 100644 --- a/ethereum/light-client/src/lib.rs +++ b/ethereum/light-client/src/lib.rs @@ -25,6 +25,7 @@ //! - [`client`] : The client that can be used to coordinate data fetching from the remote services. //! - [`proofs`]: The utilities to generate and verify proofs for the light client. //! - [`types`]: Types and utilities to leverage data from the remote services. +//! - [`utils`]: Utilities to help with the light client. //! //! For more detailed information, users should refer to the specific documentation for each //! sub-module. @@ -32,6 +33,6 @@ pub mod client; pub mod proofs; #[cfg(feature = "ethereum")] -pub mod test_utils; +pub use ethereum_lc_core::test_utils; pub mod types; pub mod utils; From cdd83f6fc34294daeebd73e3fcb045b97f385684 Mon Sep 17 00:00:00 2001 From: Thomas Chataigner Date: Mon, 29 Jul 2024 11:44:24 +0200 Subject: [PATCH 4/5] fix: needed feature for eth-lc-core --- ethereum/light-client/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ethereum/light-client/Cargo.toml b/ethereum/light-client/Cargo.toml index d393afc0..6eb9691a 100644 --- a/ethereum/light-client/Cargo.toml +++ b/ethereum/light-client/Cargo.toml @@ -45,4 +45,4 @@ name = "inclusion" harness = false [features] -ethereum = [] +ethereum = ["ethereum-lc-core/ethereum"] From 0ec92348967e9e9d19a86771dbad5a7df7f818cd Mon Sep 17 00:00:00 2001 From: Thomas Chataigner Date: Mon, 29 Jul 2024 16:33:38 +0200 Subject: [PATCH 5/5] refactor: refactor visibility to move --- ethereum/core/src/types/block/mod.rs | 2 +- ethereum/core/src/types/update.rs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ethereum/core/src/types/block/mod.rs b/ethereum/core/src/types/block/mod.rs index 44789221..6fc15227 100644 --- a/ethereum/core/src/types/block/mod.rs +++ b/ethereum/core/src/types/block/mod.rs @@ -42,7 +42,7 @@ pub const LIGHT_CLIENT_HEADER_BASE_BYTES_LEN: usize = BEACON_BLOCK_HEADER_BYTES_ #[derive(Debug, Clone, Eq, PartialEq, Getters)] #[getset(get = "pub")] pub struct LightClientHeader { - beacon: BeaconBlockHeader, + pub(crate) beacon: BeaconBlockHeader, execution: ExecutionBlockHeader, execution_branch: ExecutionBranch, } diff --git a/ethereum/core/src/types/update.rs b/ethereum/core/src/types/update.rs index 87c98b96..60eb1f22 100644 --- a/ethereum/core/src/types/update.rs +++ b/ethereum/core/src/types/update.rs @@ -36,10 +36,10 @@ pub const UPDATE_BASE_BYTES_LEN: usize = LIGHT_CLIENT_HEADER_BASE_BYTES_LEN * 2 #[derive(Debug, Clone, Eq, PartialEq, Getters)] #[getset(get = "pub")] pub struct Update { - attested_header: LightClientHeader, + pub(crate) attested_header: LightClientHeader, next_sync_committee: SyncCommittee, next_sync_committee_branch: SyncCommitteeBranch, - finalized_header: LightClientHeader, + pub(crate) finalized_header: LightClientHeader, finality_branch: FinalizedRootBranch, sync_aggregate: SyncAggregate, signature_slot: u64, @@ -409,9 +409,9 @@ impl From for CompactUpdate { impl From for CompactUpdate { fn from(update: Update) -> Self { Self { - attested_beacon_header: update.attested_header.beacon().clone(), - finalized_beacon_header: update.finalized_header.beacon().clone(), finalized_execution_state_root: *update.finalized_header.execution().state_root(), + attested_beacon_header: update.attested_header.beacon, + finalized_beacon_header: update.finalized_header.beacon, finality_branch: update.finality_branch, sync_aggregate: update.sync_aggregate, signature_slot: update.signature_slot,