From 62e93e520edbb6a9346d4a3ee0e49169539664e9 Mon Sep 17 00:00:00 2001 From: Urvi Date: Fri, 1 Nov 2024 00:30:52 -0700 Subject: [PATCH 01/11] Stellar developer docs for Galexie --- config/sidebars.ts | 14 +++ docs/README.mdx | 2 +- docs/data/README.mdx | 6 +- docs/data/galexie/README.mdx | 39 +++++++ docs/data/galexie/admin_guide/README.mdx | 6 + docs/data/galexie/admin_guide/configuring.mdx | 47 ++++++++ docs/data/galexie/admin_guide/installing.mdx | 12 ++ docs/data/galexie/admin_guide/monitoring.mdx | 6 + .../galexie/admin_guide/prerequisites.mdx | 23 ++++ docs/data/galexie/admin_guide/running.mdx | 103 ++++++++++++++++++ docs/data/galexie/admin_guide/setup.mdx | 22 ++++ docusaurus.config.ts | 5 + static/assets/galexie-architecture.png | Bin 0 -> 177245 bytes 13 files changed, 283 insertions(+), 2 deletions(-) create mode 100644 docs/data/galexie/README.mdx create mode 100644 docs/data/galexie/admin_guide/README.mdx create mode 100644 docs/data/galexie/admin_guide/configuring.mdx create mode 100644 docs/data/galexie/admin_guide/installing.mdx create mode 100644 docs/data/galexie/admin_guide/monitoring.mdx create mode 100644 docs/data/galexie/admin_guide/prerequisites.mdx create mode 100644 docs/data/galexie/admin_guide/running.mdx create mode 100644 docs/data/galexie/admin_guide/setup.mdx create mode 100644 static/assets/galexie-architecture.png diff --git a/config/sidebars.ts b/config/sidebars.ts index cb7497550..4210867f3 100644 --- a/config/sidebars.ts +++ b/config/sidebars.ts @@ -26,6 +26,7 @@ const sidebars: SidebarsConfig = { { type: 'ref', id: 'data/rpc/README', label: 'Soroban RPC'}, { type: 'ref', id: 'data/hubble/README', label: 'Hubble'}, { type: 'ref', id: 'data/horizon/README', label: 'Horizon'}, + { type: 'ref', id: 'data/galexie/README', label: 'Galexie'}, ], tools: [ { @@ -74,6 +75,19 @@ const sidebars: SidebarsConfig = { collapsible: false, }, ], + galexie: [ + { + type: 'category', + label: 'Galexie', + items: [ + { + type: "autogenerated", + dirName: "data/galexie", + }, + ], + collapsible: false, + }, + ], soroban_rpc: [ { type: "category", diff --git a/docs/README.mdx b/docs/README.mdx index bf0897cdb..c1de1d70a 100644 --- a/docs/README.mdx +++ b/docs/README.mdx @@ -20,7 +20,7 @@ Information on how to issue assets on the Stellar network and create custom smar ### [Data](/docs/data/README.mdx) -Discover various data availability options: RPC, Hubble, and Horizon. +Discover various data availability options: RPC, Hubble, Horizon, and Galexie. ### [Tools](/docs/tools/README.mdx) diff --git a/docs/data/README.mdx b/docs/data/README.mdx index 0b48afb61..d238a3b33 100644 --- a/docs/data/README.mdx +++ b/docs/data/README.mdx @@ -10,7 +10,7 @@ This section will walk you through the differences between the various platforms - **[RPC](#rpc)** - live network gateway - **[Horizon](#horizon)** - API for network state data -- **Galexie** - exports raw ledger metadata files +- **[Galexie](#Galexie)** - exports raw ledger metadata files - **[Hubble](#hubble)** - analytics database for network data | Features | RPC | Horizon | Galexie | Hubble | @@ -70,3 +70,7 @@ Horizon is an API for accessing and interacting with the Stellar network data. I Horizon stores three types of data (current state, historical state, and derived state) in one database, and the data is available in real-time for transactional use, which makes Horizon more expensive and resource-intensive to operate. If you’re considering using Horizon over the RPC, let us know in the [Stellar Developer Discord](https://discord.gg/stellardev) or file an issue in the [RPC repo](https://github.com/stellar/soroban-rpc) and let us know why! You can [run your own instance of Horizon](./horizon/admin-guide/README.mdx) or use one of the publicly available Horizon services from [these infrastructure providers](./horizon/horizon-providers.mdx). + +## [Galexie](./galexie/README.mdx) + +Galexie is a tool for exporting Stellar ledger metadata to Google Cloud Storage. diff --git a/docs/data/galexie/README.mdx b/docs/data/galexie/README.mdx new file mode 100644 index 000000000..2a85c9ace --- /dev/null +++ b/docs/data/galexie/README.mdx @@ -0,0 +1,39 @@ +--- +title: Galaxie Introduction +sidebar_position: 0 +--- + +## What is Galexie? + +Galexie is a tool for extracting, processing, exporting Stellar ledger metadata to external storage, and creating a data lake of pre-processed ledger metadata. Galaxy is the foundation of the Composable Data Pipeline (CDP) and serves as the first step in extracting raw Stellar ledger metadata and making it accessible. Learn more about CDP’s benefits and applications in this [blog post](https://stellar.org/blog/developers/composable-data-platform). + +## What Are the Key Features of Galexie? + +Galexie is designed to make streamlined and efficient export of ledger metadata via a simple user-friendly interface. Its key features include: + +- Exporting Stellar ledger metadata to cloud storage +- Configurable to export a specified range of ledgers or continuously stream new ledgers as they are created on the Stellar network +- Exporting ledger metadata in XDR which is Stellar Core’s native format. +- Compressing data before export to optimize storage efficiency in the data lake. + +**Galexie Architecture** + +![](/assets/galexie-architecture.png) + +## Why XDR Format? + +Exporting data in XDR—the native Stellar Core format—enables Galexie to preserve full transaction metadata, ensuring data integrity while keeping storage efficient. The XDR format maintains compatibility with all Stellar components, providing a solid foundation for applications that require consistent access to historical data. Refer to the [XDR](/docs/learn/encyclopedia/data-format/xdr) documentation for more information on this format. + +## Why Run Galexie? + +Galexie enables you to make a copy of Stellar ledger metadata over which you have complete control. Galexie can continuously sync your data lake with the latest ledger data freeing you up from tedious data ingestion and allowing you to focus on building customized applications that consume and analyze exported data. + +## What Can You Do with the Data Lake Created by Galexie? + +Once data is stored in the cloud, it becomes easily accessible for integration with modern data processing and analytics tools, enabling various workflows and insights. + +The pre-processed ledger data exported by Galexie can be utilized across various applications, such as: + +- Analytics Tools: Analyze trends over time. +- Audit Applications: Retrieve historical transaction data for auditing and compliance. +- Monitoring Systems: Create tools to track network metrics. diff --git a/docs/data/galexie/admin_guide/README.mdx b/docs/data/galexie/admin_guide/README.mdx new file mode 100644 index 000000000..2586a379d --- /dev/null +++ b/docs/data/galexie/admin_guide/README.mdx @@ -0,0 +1,6 @@ +--- +title: Admin Guide +sidebar_position: 15 +--- + +This guide provides step-by-step instructions on installing and running the Galexie. diff --git a/docs/data/galexie/admin_guide/configuring.mdx b/docs/data/galexie/admin_guide/configuring.mdx new file mode 100644 index 000000000..2d3a0d47e --- /dev/null +++ b/docs/data/galexie/admin_guide/configuring.mdx @@ -0,0 +1,47 @@ +--- +title: Configuring +sidebar_position: 20 +--- + + +# Configuring + +## Steps to Configure Galexie + +1. **Copy the Sample Configuration** + + Start with the provided sample file, [`config.example.toml`](https://github.com/stellar/go/blob/master/services/galexie/config.example.toml). + +2. **Rename and Update the Configuration** + + Rename the file to `config.toml` and adjust settings as needed. + + - **Key Settings Include:** + - **Google Cloud Storage (GCS) Bucket** + + Specify the GCS bucket where Galexie will export Stellar ledger data. Update `destination_bucket_path` to the complete path of your GCS bucket, including subpaths if applicable. + + ```toml + destination_bucket_path = "stellar-network-data/testnet" + ``` + + - **Stellar Network** + + Set the Stellar network to be used in creating the data lake. + + ```toml + network = "testnet" + ``` + + - **Data Organization (Optional)** + + Configure how the exported data is organized in the GCS bucket. The example below adds 64 ledgers per file and organizes them in a directory of 1000 files. + + ```toml + # Number of ledgers stored in each file + ledgers_per_file = 64 + + # Number of files per partition/directory + files_per_partition = 1000 + ``` + diff --git a/docs/data/galexie/admin_guide/installing.mdx b/docs/data/galexie/admin_guide/installing.mdx new file mode 100644 index 000000000..05f31cf3e --- /dev/null +++ b/docs/data/galexie/admin_guide/installing.mdx @@ -0,0 +1,12 @@ +--- +title: Installing +sidebar_position: 30 +--- + +# Installing + +To install Galexie, retrieve the Docker image from the [Stellar Docker Hub registry](https://hub.docker.com/r/stellar/stellar-galexie) using the following command: + +```shell +docker pull stellar/stellar-galexie +``` diff --git a/docs/data/galexie/admin_guide/monitoring.mdx b/docs/data/galexie/admin_guide/monitoring.mdx new file mode 100644 index 000000000..0354af497 --- /dev/null +++ b/docs/data/galexie/admin_guide/monitoring.mdx @@ -0,0 +1,6 @@ +--- +title: Monitoring +sidebar_position: 50 +--- + +# Monitoring diff --git a/docs/data/galexie/admin_guide/prerequisites.mdx b/docs/data/galexie/admin_guide/prerequisites.mdx new file mode 100644 index 000000000..03fbdfe87 --- /dev/null +++ b/docs/data/galexie/admin_guide/prerequisites.mdx @@ -0,0 +1,23 @@ +--- +title: Prerequisites +sidebar_position: 10 +--- + +# Prerequisites + +### 1. Google Cloud Platform (GCP) Account + +Galexie exports Stellar ledger metadata to Google Cloud Storage (GCS), so you need a GCP account with: + +- Permissions to create a new GCS bucket, or +- Access to an existing bucket with read/write permissions. + +### 2. Docker (Recommended) + +> **_NOTE:_** While it is possible to natively install Galexie (without Docker), this requires manual dependency management and is recommended only for advanced users.] + +Galexie is available as a Docker image, which simplifies installation and setup. Ensure you have Docker Engine installed on your system ([Docker installation guide](https://docs.docker.com/engine/install/)). + +## Hardware Requirements + +The minimum hardware requirements for running Galexie are: diff --git a/docs/data/galexie/admin_guide/running.mdx b/docs/data/galexie/admin_guide/running.mdx new file mode 100644 index 000000000..1e78ea4f5 --- /dev/null +++ b/docs/data/galexie/admin_guide/running.mdx @@ -0,0 +1,103 @@ +--- +title: Running +sidebar_position: 40 +--- + +# Running + +With the Docker image available and the configuration file set up, you're now ready to run Galexie and start exporting Stellar ledger data to the GCS bucket. + +## Command Line Usage + +The primary way of running Galexie is using the `append` command. + +### Append + +Using the `append` command, Galexie can either continuously monitor the network for new ledgers and export them, or export a fixed ledger range and stop when it is exported. + +Syntax: + +```shell +stellar-galexie append --start [--end ] [--config-file ] +``` + +Arguments: + +`--start ` **(required)** + +- The starting ledger sequence number of the range being exported. + +`--end ` **(optional)** + +- The ending ledger sequence number of the range being exported. If unspecified or set to 0, the exporter will continuously export new ledgers as they appear on the network. + +`--config-file ` **(optional)** + +- The path to the configuration file. If unspecified, the application will look for a file named `config.toml` in the current directory. + +Example usage: + +```shell +docker run --platform linux/amd64 -d \ +-v "$HOME/.config/gcloud/application_default_credentials.json":/.config/gcp/credentials.json:ro \ +-e GOOGLE_APPLICATION_CREDENTIALS=/.config/gcp/credentials.json \ +-v ${PWD}/config.toml:/config.toml \ +stellar/stellar-galexie \ +append --start 350000 --end 450000 --config-file config.toml +``` + +`--platform linux/amd64` + +- Specifies the platform architecture (adjust if needed for your system). + +`-v` Mounts volumes to map your local GCP credentials and config.toml file to the container: + +- `$HOME/.config/gcloud/application_default_credentials.json`: Your local GCP credentials file. +- `${PWD}/config.toml`: Your local configuration file. + +`-e GOOGLE_APPLICATION_CREDENTIALS=/.config/gcp/credentials.json` + +- Sets the environment variable for credentials within the container. + +`stellar/stellar-galexie` + +- The Docker image name. + +#### Resumability: + +The `append` command includes built-in resumability, allowing exports to continue seamlessly after an interruption. If Galexie is stopped mid-export, it will scan for the first missing ledger after the specified starting ledger upon restart. Exporting will then resume from that missing ledger, with no manual adjustment needed. To utilize resumability, simply restart Galexie with the same starting ledger, and it will pick up right where it left off. + +### Scan-and-fill + +While the `append` command is efficient, it may miss data gaps if there are multiple non-sequential gaps in the range. For more thorough verification, the `scan-and-fill` command provides a slower but comprehensive alternative, scanning a specified ledger range to locate and fill any gaps, ensuring data completeness. Due to its slower execution, `scan-and-fill` should be used sparingly and only when data gaps are suspected. + +Syntax: + +```shell +stellar-galexie scan-and-fill --start --end [--config-file ] +``` + +Arguments: + +`--start ` **(required)** + +- The starting ledger sequence number of the range being exported. + +`--end ` **(required)** + +- The ending ledger sequence number of the range being exported. + +`--config-file ` **(optional)**: + +- The path to the configuration file. If unspecified, the exporter will look for a file named “config.toml” in the current directory. + +Example usage: + +```shell +docker run --platform linux/amd64 -d \ +-v "$HOME/.config/gcloud/application_default_credentials.json":/.config/gcp/credentials.json:ro \ +-e GOOGLE_APPLICATION_CREDENTIALS=/.config/gcp/credentials.json \ +-v ${PWD}/config.toml:/config.toml \ +stellar/stellar-galexie \ +scan-and-fill --start 64000 --end 68000 --config-file config.toml +``` diff --git a/docs/data/galexie/admin_guide/setup.mdx b/docs/data/galexie/admin_guide/setup.mdx new file mode 100644 index 000000000..70632debb --- /dev/null +++ b/docs/data/galexie/admin_guide/setup.mdx @@ -0,0 +1,22 @@ +--- +title: Setup +sidebar_position: 10 +--- + +# Setup + +### Google Cloud Platform (GCP) credentials + +Create application default credentials by using your user account for your GCP project by following these steps: + +1. Download the [SDK](https://cloud.google.com/sdk/docs/install). +2. Install and initialize the [gcloud CLI](https://cloud.google.com/sdk/docs/initializing). +3. Create [application default credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc#google-idp) and it should automatically store in this location: `$HOME/.config/gcloud/application_default_credentials.json.` +4. Verify that this file exists before moving on to the next step. + +### Google Cloud Storage (GCS) bucket + +If you already have a GCS bucket with read and write permissions, you can skip this section. If not, follow these steps: + +1. Visit the GCP Console's Storage section (https://console.cloud.google.com/storage) and create a new bucket. +2. Choose a descriptive name for the bucket, such as `stellar-ledger-data`. Refer to [Google Cloud Storage Bucket Naming Guideline](https://cloud.google.com/storage/docs/buckets#naming) for bucket naming conventions. Note down the bucket name, you will need it later during the configuration process. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index ff118e6a1..20467918f 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -164,6 +164,11 @@ const config: Config = { docId: "data/horizon/README", label: "Horizon", }, + { + type: 'doc', + docId: "data/galexie/README", + label: "Galexie", + }, ] }, diff --git a/static/assets/galexie-architecture.png b/static/assets/galexie-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..00873711cd1b46f32ea26764ced8dd7b5de83bb6 GIT binary patch literal 177245 zcmeFYby!qi*FFx23L=Q0Al4UN~lt)B9KR*aGTR^U4_J#|L}H5!l0OUbeu#xfg^-!-ujJcx5GGt`{R2`D-3 zKI}j2Yq~s#_xksz2-e(1*~b?OrM*3dPN|u~7J-dv2$54Vim69IdyY!>9)%+^oxw;( zMh3<52E1jufn<ZMHGxajF+p%rG3rw>Y$WylD+=b3KEJ(K{=9lBv3ln~IIv3#>6 z#OQ{A>U+votR+5)(85JN#n3}WAD9V0ZVif<27D)n2*pzOtx!ckIx07p7nK_UmZUMt z%JUFkXJ-aXN~Jdw1ShhT3F{TZeuG^{$>viT^pT0|A@R;CkN982F?9V@JQeNPX?emc z!-M;snCIZRm1U7n|7ZJ}a)viOWdg0ju*y!xkSeMRN<79hD(U05_yUd#@=w{!1s5`%)pH7c*fWvsk`M1-(HGj-{Its zz9FKjT_ohM5MuHM7KM^4q7lW44S9K-xVVhnOE~?W2_{{z-F()2^uo;dGl7V5v}g*J zn>M34!`&5(y>`jFy;78S@2d8bt>eAJhp7ut&>o|fb(itIjKMG7?dW^MPX(GIHHJ0@ z@{MT;u~V?h=8B}Tc11!omqQ87cfMuCAOGkPL;n#V_640|V)zSf)J;h{VQk@T`APh{ z9%6Sm0&w{X-h=PUy(4EAY6pvNGf0X@@$#{X4Y8o#jJg!)WR8ST>J8~+Jc`Cn6HmeV z_6(;nfk`^_b~argL)86q8i9K}BE7t~c|0#$;I}8X?vilaXO`x{jh3U>roDClMrdZM zVHTNv$SG{j16}Ck`*L7~;{e#x=a4~&t`eX8ehIz+Mh(NecR8YF{KPI|=Y}tz4Eq(` zw8!S2-A0+YT_9nmdyf|#Qp*zlz5U$Kl(!S4?%7lL?M&{}f%E96{iid={s(a!K``aA zbI+W&O>d_&-ZhSkj>~+onKEqRe=RK90Y7`;iz*a+xe@xL6=`Bo7CYg&fiaHqe!{8f zzD*mXd*{cRSC*FEjUnTQ$EFfwL!vP38EsFxy%d|&hSV0u)7>{}OIwy-KG1%ke`sd9 z%sIIoMrjIa^T{)MPG~`>iLy9PxU{~m7!GRyuT=TLm(NiH26iqkF22v#eO^G>I0%Tm z%-l+Og5@VLio)j}!WK)w$gk^1`K1P(OvLKe_OuzQ?N1-w0Kx5B7nB%5U`E_~F<;T& z`_k*eRiEDMMR9({&Umxui}edso`60>!HJtl@GVF56m*L(QjSErx7~lPt)jDuv3cAU zp}`Orx5T)?F82IBODn3=Gp!IdydX)+GFgt8cczral5cy(mZ@?(@8qCO28~jBM@w|d zEeZ`oW~9lfXFF{c@!w^xeZsL0f0g}Rg`ivd`;do=P!d>48f)ly1+S8{SlT`7U`1}9 z+KUV!W{~0g=*#F+;oiH>ty+(6hkaB1?DG6w-#7Ws97V*1-;;j$HotQ<6rPYt3E_04 z-^9>#WK0X#+vz%b?8B}PcIa5&Avj~cz};$Vxo?S16L{lm*cZBRDpTB#xbHB{f{KG) z2aRlNuhBNr;Dvfgl4RZXA&3ptZe49{Yjtg%ZN+bOgP9mpgi3Ny@<;i|s?d@%rK>-G zr7$HYpj0ouM(ayi7_HdFx@ZWxqy3zfIx*TkDl)n>Dm_|Mjf+X+0h{~-DX|aI+VYd) zR$01PE~+AGRiAj&DXfLK!vqpvDHUg@eVof~R#8*q)Z9}KQ^C*gQ(@7Z&URBmWKPMr z+PQkWLQeQxKb+tl*sU>)Iuy2K4q1+K`MTkJIB>!9QC4{HoAa~pN* zQ5)SM54pU-;uYHybT6u=@aA;C(79~6p~~?^%Uv!DD-CP%;l}*QytYB&%!j%0g;iQM z!Q-CAtadTgRc=w$V&2V2bA;MdB+;YqfnSZbiS{1pJjx?V6_6w&AuCZzP|ELTP31|| z*R#{poRyr-uaB>naTVNuDr_TMq7Ru<~)0 zmbkJt-coYe6<~#H8fEu+CgbamW-5D2hesxSZH`Spt-hya3P>~s?*=E_o#ow!+_yG$ zcwoadYgwUEsFGe5>J(De>QTJIv_Ot8jPD=&IQAud$MbqcqL0lVsYhOZ>`+YSbp2p! zj#H5``E7%nlLL!8_JbXV4dnksB-CU&#N9m zjR!0VFF%eE7glI&726fX77=RkYPnCYOgq}$v9q?@oE)}2w`G{tnAWeLnJU{TM~qME zRm&h|H#iY22sZu{#ULvyuaU@Kb$p^v6D^ zc4<5AXHRfC*+t)EAAg5u*xu~@DVlH64r335mf9Uj5Y=CbClQ4W!40EL{Y}%~hiS&LyBFvcf*J@;?ZQtEaL3pY-3YuHPR#EA*)~aieQMN`#eeP1Wh-8iU@gDd#blU*q>}DbQtT@HbJ3lL2 z()S;(>Jf<$v2fONo^$kYcuSJ1yjgjvVLAS`=x|bHa=QG~IR@kgk8xIWz86~6HVI3R zqmTWlWSz(-`;Lw*wu!zpZH5Iq(Y{Y&w;j&Cy#9saSmQ(S2I1s)wE4j9zo-XgrY$t1Q~@F}{FdwLp%l&Y%}`s|r&I^=x`A;kC~jH`+lhOVgT`#f-W;9!o3n2Ziqo zuj z*oTu%reHJlO55(R-${^d>(0!W7F?^ws%CC;SlBSqc3`h5-`imWYaZH|Ue&T0Fa|Do z9sZi`K=!=yWbSS6TS)t2J5s_ZI4QX?8He0Wpb-%=8Qq;-FOx`~O`hyubm{SPrx`y6 zUzmYYNyI*F!sl@Gy&CkD@vAAN;B*mp`lH_bij9hnf#VcG(A@f2CRPy^HsLJWcujp3 z`PnSu@U`8h-9e%dE4Mzfab{Gc;C$j?3kyT(Eq!6<2yX=JpmQC;i)TMm&%bHj@#Jf9 z$uxhB!7Nkl-tlINcaS&TA@^3I@KdiB=fSfS4T3X*5Rtn+6DN$DL$e)c9c*cf!pFn> zmrMw&NzM@qZar2#nfliaY@!sWjeBnv+u&(1(W;9gFRRntF9sL>RY=Gx!iUax?9yw8 z?eM^RjFDc3p7Ya-mRRFYTNHS5#gp3E#eDnPxy$P+H;o5e1UI#y;+Dab~D_Oha zCvu6^fba9lH)`oCKq%gsX~~%@Dxxq0=NKsHsKh8YfiqO#5J4sR*SRz*Bg&0mzoVg` z1Y4n?|Gq~F_`Ldy0*R)#V0Owafvr$w2y2Zstm|9Em1*L=o$c&PQ z^(pI9YLPpXl$1gsQ*!}TN$KB@1K)(HEnQq31=!f!-Q8K;IawV*7HsVN{QPWBIoLQj zo&a||arU%#G4gm~?@V*u$e(s3&74g@R*o)K4)&B+?HU<7xVi{aQ(txTufOZ}H1n|f z+mpTX?_mK0WV^b;#?Jbb?O$yJj|yG=D)7R}!^~D&(#j678PJCa7dw~GulxVw%HJOU z@ub$@CpkFyp8oUEe_Z;XkG^y^14%g80e!lN{PoxGhyQu;_k%)gS401YDX#7O>sP?g zB6oz?{^c~0I~`w zs2i!bQ{u*st0@x7AM3s2TBXFm2zfvwg}y<|ZOA+Hh#QHQ?cYFeyA z-v4DhVw7NX+!b0})=aAZ&G7#;9UvAg{C~M01&od-mJusf8}#;nY3S>o(8!Sgr~A?I zWKqCMXg~3Y|MxBhdIFqt?f#R>f2`X#c5eSy-rkBDtEjqKQ3yImjg*_D#DHnoO4sOQ|ceFXG-Cd4r zu=pgGKByzKjn*el{5?yYJWKEg)U6#Bb{(Qy=HptB-+7h{zh}(JdCILe_-t=_CS@MNL3zPr6XxCIjgU_qBt_o@d3vX>lsyCwWSh^!W z1{v6Ks z_RJH@%ee!Cdg zN2p!;TD#t6djzz^2PY&n`=Z&`fzZG7vW>0GHzJIaQpq1G(q6S?fGgwu^L7nGLYocS zBlodrycK|+uK*4*D^w#MHs7nGi?kA%WDykfoHEx zV4qrSL?^25ML^PjASrZx5Wy2pW58R6b}?9ry3D`j$-D0NO+GwZfY|v zJ@OGj9?;it)fRs1hXoj$+s;B2VR(burM2Z{_Y!}$;Y{{h-pXgfyZp2|r~Vce)5@^b zadrXassTrYS4z8$=B0sjAIpk?>gmuacO`gsk6-do`7M$yn~!ua>@81*j$c~*xJZwa ze#}6ftWQ-~i?>MR^d=ugg}=JUGk>VxM#$T0cW9sxFx%gSaaI_LN_J>A?2h_{KucUN zUtZl)rTl1e@Wj1qfb%DU^RlC^vv$cgedA={u~um)>!sh#t5Y|{BS zz9ZLkqw@IJ`XVdT8epaOvb0-M7^K*! zqj~-!Ua@X`0G;hBbpBrUV;DvAuU?c`%Cw4Sh9EjQEo#Whg;TjJMZVI@fO}m%t3Bd3 zF7&)*p!(aPmGU+Q>#$M?ehV6+NiR+KwNN(flio3OsIhypdGx?QHOj&z#ngVQB6#74 z?I!p9icoBwZ #&e{w?<$Ttj`Y9f?%+jFf;N3_|{dAT8zPVbY+wtD3 z#uNY30t4vDc$1xV6&vWd=Z)mvyM6$W%bRot}q`_adqACcM%bL<#2QCZM{qV+& zm??MzAD+9_{N@78ojJsSWNL}LDwqYHKmU4Yuej0;?gxCcsaHD#RjwZ!*c-fY(x^QE z8HabD+Ms&Bxl7_l| z*NAqr5Hs0J+#<~rM@;YX+cXO-mokQIO$FDVXAHMLw3=7P6%FAWXfxR4J38gVDND(@1gf&WbYp=Y{xqA8|wA>Hfl{vfhR;m7tZ-I?5DF>Md zu-$*-E<6d!ac-IZCjzv+Lv6=D2H(_%G@Rt}B5f4BC;E8FZ%@tYJD#HAIEMK7$*!LN z;Bn!@gYPIc7#IiN5;-BmxQ&$9U#CXiI0c`7-di^%Clq4!(A}>6)D8!yG=_B9*}Ivi zvE}7*=zk3kJ9`~_`EP^|oQgp?IEjggea!>Ft#}~}gP{*|(TP_2x-6Y=5UAj@(rvKB zKEzP;GsVQcA#~v2^6EB{FMWaec77`FpeO&krcuyU0$SjXd&=NX0L^nq0BrTnoFmPH+4Z!n6UAOihSn6MW4ZX@kD(OYtMm&q#Huc}!_e zK2Cq~TTMu4rz;BjLeKbLI*M1KWHaS4)2Qy#Pg)NWpi1V;iayxT8W=u8SIw=Ur~Lbf zSRYk@Sl)6G9p|sUzz?XN_F=kw?C&Y-MFaP*Twu7Uny$*?|MTU38&pONEwzg?Rg7T- z(}jm0+}|lZjs?c?{GX%e#;oNA!3ZSbHWy@Q$lJ?ThaYwwGusEaob9`4&TK8=C;wh0P(eM7vRA9eAaj0>m~p#n22;DJu855C+C(|-C1HtRJ(h{RJftw`j-V{DdG^g(*szk?N1yqYc_i)idBu_cReqEO&IeX*$4mG3u>&G#cr={a_R>g8{RjzFkrqE(x8!5-}>7+3c5Ts z&^)cc%$ z%h4W@whD1kHCgTaFHS|35u*^8ig{RFloH~OX+K+8!fpFSCTil}W;tUh5L{zc94W3} z3J~ke+4@{vr=0DU-bP`sj(vH1U~g#UGx``c2NUz}d;L)suHwDVq5EFB-Q2E_P7Akf z@I5=r*{Sh`6KQHg{C@oRHoxe}(7eg&HfJ2&%^;@Jn~p)@4gr4V4i6##yvLg5+4&_xf zJ^yFE$?&>b1LT|GcYe97>iw5WDSjSTeTZ2J_GC!&Do?$CeQvG_ynw&~^CQl$d&Xob zVImi)v9TsP)wVkZ>wH7D($a6o3N;7TprsDj#9WSaBrywz`++yHHpVm!sx~%kZH99~ zUDrmtkhAUv>%+MU+;}rpnVQ9~%;tUeBA)0sPVm^zth^?59aZ5m{1Tvt)v5i*`07kx zA$Ss}r+IZ>e{WS)vN+Eb)f>AHR*Gjud;RQhn9d;u!U9u`Ded(F&sQ>pG3%2qPjqVs=l5Fil_ys7(#gld9RB!MRs#(*cY5Gi{r&LF# zaJsXrBjYJ2zc5wQ%$2HtcoIeSYetWXp=tBqpRT5{o!pE(|F{`>_Az4kF~3Nn!3`r$ zy5GU}0czc1XPMc>*)fkd(l(jhvVRFAk@IN0smDv$%FmKTG!qkp$gqo z59nNfN9aUkiErovX{p{`3?)@{%M_i9%GnB^(==hN6SQ^JAlj`XQxD6@@mQuKbeg=( z$)2L1r9{CSMpssMbCe*^~)}0sU<}}gdDMGQMTTU;k zWQD*xP-Iyth2M!ND?Su@TYEbU(lK1wzZdC2F4{@xR?Du=FaiW*r`r~v|BPXtuR9B$B#B<-_F=wbNiFEv#|u$b?Y zweU%AZ>`+h@6?ocbHIKER3mslV_D}>$IjX0P8{FUYQ2;LaHj`iTCZVT#c3DH>#sLj za*>KZxyk2ZA1hjde7$?PkTAa48X0S0c6xzF&g4(Q@KNvBUG)r9z2$hGC)oz|a<$eQ zz~so>HL;u|m2URY~h3g3Yh3c+UdtOoiFN>gF2R)p{k z<0)s|1`lQ>4df-?Cp}O3s64kF&9sO1P#>~^R9IZLZ^Q26mGt$;8*weW;dW5Jl@~;a zY+`;YLp=(Eb?$+sQYVIl@n)LzX{B?MsYqw1DHcDXsl60&88fc2bSQDxZgPwevpnE- zDNNAsWR{VFo|6E@dX?WcvJTy;0lm!-{F9r^XrmGnEwr_@d8~$M0jEOGH2IgfEC(|N zv1P=Q#cZ>A-@CN*t1&%JE!3Fz5SRdyl~%Ft9IqPO z>@vlyw|{&cuXBcTlsumO1IIooq2VoeKBQuM!0uZwOe5TKChxl3I)OX!672*xl~lGe zy&@&bY#F8t&xl<|XTL9KtR=w~-ib9<=HTyUHmk8%L!tk?;Y8tS=EZ#N1=gLDj%t?v z@xY@sHq^lyW|BO&!;c5|CH59JMoW&Av|c12?N}kZy;}~fevn85)rQ?T$7g66D;GP{ zeLHfIBQ2Jvy!N_I6V=&1z!bRro(=Qgs|c&$fHviC!R{ uKK6Qi%(G%RG0#zi`~2WC1fFQ2%vkNQENv&JUjDPm3u zzwsL!irvJJjmzF;RM4%9is(06`~qIpM}H9yTe_1okdMnKE@t-L{ITkBrqDD@*Y54U zd<}u(a7rirM)&CG-qQ3prPl1zeQ9U=z-ey#WWEJ@y@pdmiDYxZy{<5;M71bVIcuo~ zZ~K`I(xAX&>&ulJNjP#54)?5Pv6c(x?}L2sf|Djn;HbWz8QhvH;iV1mA8~+Gn|oe* zjw{6aZOL|i89DS0+eoK^X%Qy5@dXvTn0u+@-5Jh8@F-1y7{kGM_%&9eY{Pu+?7yv? znrQODMuI2Hp*~_WeN&`LITiW9Kx6n9oCMR-es=sRehS!UBR5gM+@bln9m~P%V9o4w ztEB}|Gw(NdQ--c6iOWir@ouzDKVVP0gSD}0%OPq5f^`5-ROYMYP1U=upGon>*9t6z zb8c*ZzgN@jd#W+nYZD`u*PX$R`)BE6Qc-Fe#y7pcB7(EY=FFl)fM_ie5QjU3uE+&G zE0@u3CLQ}2Sgyg$mfLMtM)z{D8sF*CGWa!;?v(0s2=g}IBK{{I96T@I)$WKso%_34 za@~4TvCF6GbilY@YC;-+r5H*x%wF9X8@$ybEy8l6CXxxZ6Usrk$u?T2Ur<3-9*tRz zE;s>d;6Ez}Z`^4onaj;}-EB;M%8b`8z*5;w8fEyP0ZNX??%x^2QISb`@usYB;3}v6YH3{Gd!E zp5>~Zav4!+@$(%JTWaE}-VG5Bd?e_$u?^2JO$mxCZBB4mA&tmaCb+d1Cjn_Dyce3e z|MGCXv$J!Xzb%YtvDi7VZe_-hwOj9)QFQ5J`s;GD9oW#VKl8K=LpEctie;V?%8y<; zk5`?I>;bYG?uvRivxO!hD*uX)u#5u=JZVNBLY!u#=Vl?Q3H5r)3OEED@MWCrXCQ~0 z=jI9c7;X`N$h=uE=SXfq71etMzV_ClNUp(`ESi@}KJmDANkYK}$lXR2x;>B|t&LrQWU(oDu-cMe|~vnreeH z7~yz@#Xzd$6A*q9uS1%ZEv89a>CqMLOS}`7Xz}zA03j2R4R+H!Y|YW$Ltk%GY~18} z6{{}e^87P~!=ow50xgjYtAyqaiP!8gH-d<+%Bn;e7AT(wJI(Ukm zy(s+c9i+3@t9ba=fM2xYMVwgLsZeBEdQHQjsycb0Uf5Z=la%)kKDufcK)FU=v6cT~ zxL{&QF*e3o`0^}?47a7~^PAT+E(#r;gOgLyET7!}%<1%OZ@^c&gTlWt)$tqVoUn{N z`w~AbpUQJgCE9kYv4VKlt-0B$DjN&MWS&{M(X0tPh^!Cwv(Q#{8)(Tv79M8s0|gja zT_czEXlIxLZ9?>l#l}S0c&UM?0fg& z)>`EQ8>YQFQemlO(GK%pA9`;{_8MRo=N7=K^1H#Bji*!%uqb4Jl_2QZ-fKhGE8pHVK)R&9)>Bq99!fc0gIOE(wmN?Sh>qQ6QnY-`S6B>4riR38=*i5-s*X7 zb(Rs7uv|c@?#KM7MZ3aWpVX!2NsWgEDW*f9MBt;k+fB#I$@&}F?6e>G4@T9BWg^Mn z7?U5|Ykf}PyB{rlvXZTzk;88Q>Y{Ulg)&Ti0pIYwr0_fXDoE;kvYI!iA`6#C&*8p< z(>AP#BUajkOqvBK;@mld7wbiz7%w3|o|OprNS0Lqs_$J)C@j~Q?e{MwNu3qdw_vvE z@pen;I<$B}zd_yJC+k@TGv+7T3R1)ndY0u5P1;9$mt$Lb7q9ukM zi2aFvu&xV)fB8|vMtM(TgA&(#Iflz34^0PYs0nR9VA%-wsOZ9QbPl|^5OAwFGyB2( z8e5MT|=0bRcEuBBb^-4 zuTT>c9nea&)pVGa3hHLkpP|Zp+byH#I`-13hk?!*hZ*yroy1|nu4Z;w;i()W2*|9S zU`P;01PL$FEIr|gjydSm6To%8OrHR8#ygP&Q=8m#@xDPC6C-!7kOKaSY&aJ{;!mM1 z7fWxrPV`|9C?OPWBkUBj3WT&=^SKbG&xi z2oV5qK~mF%dXzMuSZ`%zHw&QEBm*8A3CpJKSK)sgYI?H2x^TME0!#pn65UlPNxWP6 zjqf2%hjY{IkrWOL=|1Iz`f`r6!D#`xkK|k`0f@BqaW7c(?CXG8x-XImw!iRt=eKr> zg4Xa{%$_FJ!hCw;xi1QnDZUI(xjxzY4r-1beRn9}6hI~H?tPqG@z^vu<%jLJ&b#Y# zkaOKsn{N|W#+Ecx(3tqx+g|>f|5v1<4?RCJ6ZbJF!FyAaC z`DA^(xWfPPblz=9ig0qgSf}_3TTNNzdH#$&S<`Lv1VUv~nDX9oA0mVX@)-#BU&3Ot z6x`yaGWO07=TAAbK#S25kp4tUSr}CW8JV)P>Ias(OUpzZ4+YADEiE*SMTwx7xgx&A>Q^3kVN%cX^<@!2c?K0e5Gv&FR@^KtGX2$ z8D_G`*|tQ(5iG1p5TYBbexZ=t6PKRioVCCthZ%GwN1}JF$|wooF_L*MMvIhwR7@tg zPx??P+~E)5X5>XZw1JM>VNNeU#x(6iTB<>lOmm1Hg1aMP@M8i3yfLlTtKS0Euc#%y zG9`wZbP{e;QHHO>QD{Kjqz6+Lx6xjqQ*c#s#`%EUZcY39Emw~wm7YVX0%Z!YQb8%@ z@vmJiV%>Nc4TaiXOmf2OaeCr-e>e7zqZG-y?$Wo4G4aI?_{xg^YiIxOJy{QitX;!D34W+<3>ely0a3>48mqb!AB%46^ z+glklo~tE^$%s?2AJ1<2!Fz%bb?`K|vz-oa-W2eS+tPWJBZr{l=pS-QB6ugHKHFdE zHEEXaKjE8Nl_dU${V`psH`D!~H2qAxB1*CxXd7@^9o*ro>h23MN)JD!g}w(!N$jio z*R99YYX4K42m7Fvp^=4x)MKoA-?LvKXFPV_gE3A0AJmz>0PR!QC=`4tt+13p8x#sx z!Y2{iWPMjStZ*X2x7?R(LE*FgEK|(lO91K{eg*Ugq`8PRznVNL0^hb0UHNMtQI*skjc) z8oI73;4-qI#)rg2E$xpe9|qo!uT>4rR#O(P(khdEDs6Vh1?_g~R?Foatuz20NPQOz zvddM6I)EhCcp9GKz4*DJ5H0metQ72!)dE0TTr^hXjQ84jF^TY^(mWebVYnh2%sO;C zFMx$uchH%?48BdiZL&&=>8&np4NS?J9@d85#FZEu#l~zdFl5(rA%b_Ko27KW*KOL4 zH#STuna584;iN2W+=mZVoEH82&d)ON9d25_z8R!;Y%~{bes;7&XD(pUe)n`SR(S&;fAeyZ_$jr3$`IQS27!^f z(6(yVyX3Roq|+n`by@EHu<(YS`OR37c15bZh@92~zV(d)F}T6yNn+FXH!LJT*1gM~ zN9~pPJWuXFz^Omh+xPc`Yi(%V!XF5)MlE=Zbb2mjmtCV-DrpP9)zCf-} z_jEZ>EDu@C&w0Jq#hM;iq)CJUKYw+c(T@L~!|WX)q&H1?8p}w1SzbH_P+l5a>l8d_ z2tNS8^#iFRj7(W*C+G^%UzEVm1@KOuCvkPzx177hI!a|_hOoS6HBt)3Au9rMv_`3Z z6ZOv}-93Pgdl~hW+;O=AU*4N_aNFI*E=@~G>_(di#34;_%n@ll zL_7Do*7zA`^*Q<6JP-)fh%2ik4vJv1n%h~PEHjab-FsdX#kf+qtK!gfkdVH9rGI(U zEAPe1!r!r!{7Skis*Xzg&|!1|5UFZtA&GtMSHTsR&6!CYkt4&avId*;L$bokExK+Z zAfV0P1_a2*#e#=_wr;+-g=Tc9Y8Bz!Ke>2CblnEuDof@kOcS%dPnU(%zgfE?;_MISZ z^|}ndhKtd_yS=tTp;@YGG1PgzX+t$IfK=}ajj(M;$x3$sEXFb~)h+3&ItqlVhMv7B zMtE5V`5wIEj>}>_4R}C`P|uW^H&+6d0%)>R00XuY_S)Zuk^0Mw`hyVB3;mbp^Owha z?qkp3fJ{@BXy7+Fpl6&tlr7_ZJIQ{w{vk_TsC@SG`M2U!Z0#yUpEdP8+vdEtgxTI( z&D53+_%5_ZeB7bEE3g*Gb-^FMmchD{I61Xk`Wgb#+n zCiE_%W8hEBSHFj9m6R$u85UXBs3L6h(853V7F}CO9HWyPKJCy_1t@~hIsZ#v(e_fm0~W!HqXoo!6G++q{=Oc04J{aw z;t0qth$)-W1K2}s(2P^ZvC~U^78;uD5ND;RRv`GBT=D7wUKSRcL^2n3Y6Yi@6KIPU z^h2gZ@DxypwmV^#N$KW`OP2?C$*ll7?5;7H6Jo3|u`g8++I(?hv-N7U+D@kdAo_OS zf-s#t6X^%9_$uKOJ&&Jn=3dGkQ#gJ>b?fJcPkd6zW;S7N{h!(Wk6;*owJ$5Tmgw#; zMnP#@in8-DJHZ^bw2{JHo6$n_e0wRR%C0be|Dw1&sl*ghMWL~H(ly~ZnJfwn&LdL z5GiUuAbgnO3lM;WGV`LfE@C|`J((AFTt{FBCgy($>>dPZe|YdqRHfwvTZMsa z*BVKCbV*y>$YRdXs6T3PYZ zigfFSH=9rGz0VJzc4GxE^=Y$(fH?1CK&;Tu^>wFTaLa=??TJpc7NB+5Ep|q`&3VEn z-?N+eBm#tF5)i2<*uOMm%5H!0L#3_ms+lNzJX8>V2%>wXv*doDm+4WpJ3*$@<17gi@X~M{f8<|Qd zp{3U=9xP8u`Rx1Rhe;kmPUyJ(oypedh_l;KjKV6Ij+iP-f6Bl7K>63|Px*I^=(Mgo zF%b1C%|4*|OvhrYW^N`Jt@JlP_v|^}mp_ZLzG8$^@1og$c`rxkYC}g$(DUm(9;!hB z=-jdNiskF2EpzIA^7hPtqIyum+ClDJMEIo@zZiWac0xitx+|7p8i*!#144V@?#t2B z;SeowKLDQX07JO}nC?VXZH;E98(2!Vr-&MZ`-C4-Qb^foJpmBjL=u6{0bW;_Z}vrm zbM|k;5}J@x3Pxut0BwN#UmU~T+8$~ifz7uMTE$@Lz#Gjjj#dD9^w^Kt>0#VDo?u%oz~}7%oudpW znLTJ{R?NtTfY$FjhbAuK+35vzisn!_|@r; zv)`Ne0>nOC?U3eV7WjyAWwFn)Il%U-QTZ!*b*UVBBu6utzoXEL{tM+$PGS_zl2&t* zNPHwrBzrYh1u0gCF;AA$Qv62gYxq&yrU0}@0;OQjpWWZyV4deIZczVJ07?UmmXbIu z&n8(yg=i~(m4<6Ri266XJ8FM61ox%zkEn~tiO1f+;rntW|FNkK4d69@5{ggJUrfr5 zdC6Q%2kx9GGx0TuphE3}wS^%XwweJJ^3gLIl43c^>J-^6*+nJ|;kwe&FAF$S@e&(> z5Je}jVhQTjgvDLa@Wg3(U{4MZ&b^=+0MVQPpi+@Dyk8_O1w48g#@4*Ol(XLy#DjMv zJ2(OW2vIgnUoOJB+f3C#%6KzpyNNCPXtewY*|Qu8v*tw~nnbcbnT2~mr9$vLrJpY=TTjK+u z0%d)LqLg0Eo2u(toQX*a=$5|Xk;vs_2QLQFc#-bz?p^9=dc`CyXo=prVpcrB4!twO zgQ)P5WMygYM@aJHb$0s77~_W8EAjnAzkErZFd<>~e({XjDGHq#5B&2GIgRhakf zQWM16s}eC|`l<)YWs&g@0)(JF@x8#t=kJZRG7DC^bqlhUYPz8;OPQw+4uJws<&`j{ zUrEhC66!}g82womM!S^jwD_FHf;5$ZDk{aVU-(dWUO9^fGeLb$!R*@wvZlq8J+fbT zua^^1y8zicH+jRx>~H|=vGP`l&~J>VgjFus$Z5e{lI{$Jh%aw9VW= zsTt98zvW%&H%@pNNtmD03q4UEU0GC&9X$|kA%BnHM#yp;uxFMbHzCaQ4?p>n^)rOf zX?LS2Wj2{X?>tvBgP+^;fjXm6q+ob;Eh{!JF67|oFkDPwKqnECR(c9bAmX-;t8$p1 zYxvswPAzUaFWqlVPxp!xusu-m3H2Yr19w^T&7VPZ}hbc6Imn*L$O_q`>>1_Q$1Hn>jF6E%l37*~ zvPTHXUg7^d)%*AVd_Ldzb-8p^>b%ZtJjVTTyFZSLe%QxTPB7%J7*M9TaZl4IZUa3%m zN9=YOo$F5HIFfi}q$Gtpz{0{pKjr3Q+EH)3zq z-&854na)Z(SqX{=rWdB^))7Uy4o*3pfEB{MS|0(l$;Nhfmfrgb5dMvzE+p?%UTv7 zePF=~@OCgO22sHyiGDW$Xb`^b%nau+mO>r4iEOV+VdZlrtBZ^h6XB7UWceifC60^T zFUA&Oqj0islb!CGVddlR{DWA!$aXDK1^C_WLj@4B$X8yvSh_&IgIYE6%JmM{As>-{ z6sZD3i0V6A61}BE_|(_O!S)*tzpEuf9X`u!oy&m@F=N?5Ck-s@cIWDZ%Mw*a`*q%D zI0G$r4z|1j;zF@3V;wf9I|7QR4^X^M#F zd#NbLEFIa7a+%fmuuNjhh003}lFdtveia+KWrS5lX@I+VLRLn2@gw~-dXwNdxa;Bdp6Pqbuja!7wMx>$eBFsLDNqoDuY#MQ9g?35bKE1J0+qi=) zg=;wfgWLkl1}=0b{e}IT>#p|eFJn~b#=5*7xkUy0KsW_jFv;qWvDyb(4<3xAS~8sl z*1=e=7uO%F8|kcBolGM1dS@;k^duKdwI{JySu%L3lz!R$TI0B1nkKy#7IFD)I9Dm@ ziG6OvZjIK?v|_7%)q2tC%Qz`nzQQ@ije+UXxxD7ZovfIdcT}54L%Q(+4E{&nnm$$2 zJJM9;ci5hSqHf!vuE&tEcyM~5YGq@R_pWJ*AotgAykvKcIo3=ZD;@9FD5YnF|Df^< zl3K(8&41fBP*CTzn{L=Li2Q}u&u(0lj`CD=)`L(MPGam`lXbtW3Na18Qs;%!m zV8IIp+7nra&~4(8J4;-N-{2qEXWkQ>%%O+=YKa9R;J7bap@SEg)Quo%GaCe$BUYK$ zA99LZ@g_l^$$dTd?4FGO7j!$nRo~125#iDP2IDXN($`1iK@xW|o3HGQ8~dklIHI0@ zf8=W~xg#Ab-}f2pfg?UOj` zyHU+&CmTRFtT}Z1J?TpK$UYlTQ%@AVyLCsKf!GZ$pZNAOj^TVXWM%jJ+!iE2b?em< zOY}3&FsXg@U#j@*Ih=L4g&}eOcNs=52Y$i}{qH^QuYpOT`bVh#bl+}?j+PQ6Z`oz! zsB+t|yZS@WNovCUo@>%k^}YG_4J+73VaKVp-nJgjH-gbX)|yC4D*5mnK8RM|?qZ34 zJ|Xx-mNW&YLr{mdQ=Sl=WH%Ge9fR_#KdC7J&qNFvA#%L-#vTaIQ@huXQhQD%x|nG0 zF|wiAmM(qNb12?uIxcmW{cMbJUzVkHK__G?GTt2A=Q`mo$0(ik)K=w^$+U;xy=!k) zM0OWCSMw_PX?`V^ zMZqg+(xO`c>$$M7*gU1*e3!9L;Oy5#E)#1hygPLi!wypPX2cczKm9g&lGLd0`G%-d zjY%#(#(!Xuef;GeP=@5MH68x|wa&>$P>dxx;Rm&|kWlgbWR2NvRHA23 z;qJz@f8GbP&+LIh_;Rbsz!l?U7NS1RBE2GjYAuN0EHiy)*B(ky4bsLz>_@H?!wEl5 z!vLkz2LR|vFHhCE_2|1rqxXL40tFY9>JK^gRHvZnei!??h|3uXG)f z7Le=jcXQt_%-9hc=@SAB%U~{@O``I_FRS1#-rBwizMOhP%3x;VlQ8ic;C< z6UuyXEIa@)qHYnv+_ZJMu3!H|#b>yD+(j=>%IKoR*|#aLiU3uN!^HFYas5;&tDWV+ zDd{C3CG0Y%RkSD3_FHB6ep{j!-+y&!x!}&1Cu9=K+va9+0A&Pwjvq$9{^TywCo7-92#$ zOIERBu2)e9>0p@=E|p(_(e-P{Z2wG{@YW@4rqNJQMafV{ z!irg!7X((F-ju<=RlrSqjVP70r1^*Up8Zn;_7l*ZX6|JTY0Q4t+RsIhC#Vl58U;rFC%Y1kDC~qwFYn7( zF?e7Zq%aY}BptMQnC|e{b*gN#wymmaDd^@{$6H+k^h}^+`h{!%)_i zJel}T%zE?L>HE5)gQy?PnGK&&OR45KE{cDe6(~R=@%QcmX@48)$)$HvEZau;QQ)~% z@x6$*U5yG$JolGO@snb8sTERit_h@G`2$|40ZXPYJ^g$!_ zl3LCEsARn|#!A(4yC=cJCX3YzqYZb)x>s?x^S$1 zkt1;nstwKA!!Sg*8n#PKhubPDcq$p%h;4pRd1kg+o>^|zsWCkxaLMPh7YF<97nP-s zdpWUNC2PkxyJSzXT}sV__%|8TGp`(9<<7`2vP9y+*1NtfFmaQsRC0l+F`%J`qp z!{5*l(}PoPw!UM%c>2BJX#nRE=Ac`wKP%7h z9oL`p6JoE)8f9$MWx`?cL@jSeD1RpAu0=0pGeNp~Dm+~CAv{3}z184mNo@j4q@ z*{Py#%lC_PO9X4juHkF&r zC3xtl0i=yRaDyDx`|TE)96Ikl8Buhulqg4`KUA2$BWxzRQ9bfjKAcKoAIS5EC)}H8 zOF9hIvNhj0Hx3FsmWyT-KNWHpAn%Nbh=Av7>ISMJ`Y5i~x~vQ&*8p8`%U^Z6c?q_#`;+HXV2>Kgw3h%5|a{{-sfyTMZon6 z8(vnS++lr{8DHN1sWNH^M_$>utXVa-Hgl7TimH*a@i*?og3^Anei}`l30DB3=}*;c z;>KG3Sq$_t;4-PH8d0xLxgwFR-9TeLPap~(y8uW4K#6~sm%`zG?p7$k)Y*5%FtIx1 zqg=m@f+o~@f7-vENtu05KYA z_V?$%c3utv_p>%k2HL+k81-M3H#0&u4L*(;NdvuU*eR zj573!P^lSifa$mP;A67qpe#m8>FpaaNZRN%7qM9VZ-x2kTdJbtM9E7)L|l8X0k^X$ zZDndQn8(#i;YmW0?*~pl(XkE>On@0gDl0lRE}BNZbC6-^c^E4;MvhYyxqQB-l-^?| z@TO@Sl#+3sx3(7zMVj^l!uFT(@bjzpR*MdR_R0+_TNuT`b!V>5e44EdN=M1Wfl+%E zP|a!ovqoz4iZg4}xHr5Fy_|~*&GJyXaQ%J@Uh}g#%u)~Y0Bl4xN*m{{v*P1>_l&Ft z%#OSSV*GR^VQ+V6hUN|Dgw{MoOA% zLXq>0fyOE8M5d%y-@Bd)FsY-!gRV`gko`9Z^vJg)C|8AgOLK;!jqfCq(5L;cNP;W2 z;E*4U5+wC!+7E+PX%#Cta?5+6l^MH)kLmToB<@ZfPwE6lA<*}k1bR{&n^ug>0b&Wv zC_aTe31VT7nFdq#;ERU9!?Fj2Z|}jd9-VIc-;lta9A!hrVL_J#^x3yFAUTHbHbG8&Gf&1?*PKi6K>D!mT0wqd6Qtb*5L_;+o&QFY*2Y>^G3 zE{Rr(Sy6vcJPm}esr3Son4472IQ?Na`Dz#7CVR@+NQ|O(ld{hZ;ax0^(y;=h1Xr=Y z&iFK6Q3BV&(;+`C#&z-as;Nfrui(ypXg=Zh z*$*QQZlOVQS+fEV9Xln?ez`XHv$hP0+Va~1ynaN6^p<18=2IL6;K$F+SfX6!=T)qz zo%*~M#?W=*d5n017POrLgp4|1x5jUpvPYtQ}E4={VlfWc4e8g;}3r@ zj^ArJN9I9I*_h@3Nk!O`{l$;T`s2^hmzUA%KXDLreUBk19HyM-fuhuSa@g;`mmM~9 z@$CL8I+Z1`g;Gt-RCvlG$9-J{H+011YTOi+#68S)0Q+3JjR_Np?86p?wO@2`!hTXg z2w_>G9Dwe;d$=rtBD6{EOS|RG6lxd(qQ&CmorQ%QxFmdu&V9nUDZ2fV3j@|krj!@X z({=gwVi|G>JHSMv_d_5sJf=tSH~BL#RO4vEA3zZe6m2MR&q-A_h--YC;lTz5Ec9># zI=2DosZI1YF)7Rw%!=r}*UCE^QX&ntD?3h(cDGge$CX{IurXZZ8=+V^ra7K0z=jt9 z-FLyr;L>%cfy4LwezWpw-*Zlh=$r!FI|iF#MDEPxS6Uo3d~@ro?8n-+DZDL#HXoYpJx|ozcnXu$LtmCrOUa&ofL`LHd7hY z$`!!)Ph27ND;PB`F}`zoH)wtj5JXhHQY~ym88~oY|I@_o+w&tb5UyP<)p2*ObL`kC z2H{RR*NCMOxXqx0VtFmw(UOI?pX!be#>5reD}}YTy&rxjErcSh_|fBtiVq0{ZpR~! zO3Zt`e0q2kzl2r(tttOAX^p-JxK2=gd3D?FB(coWQlVI{^JpYnfR+6*o4hg?IdN^Q zy`N;g%MPm6LDIbd$nUJ3ex;#O3T;GylV&WS!6Qb=xA^25A_io?6nT}WMc4;slTkRT`KKINHD?V~7^BYT4E!Nw>Y zDu-sv@(GN)i&px5=jVej6>Q+RFnS}TKK9`DysaHf2I=(z<@%EU3M+ohT#;cSo!M^= ziFiA(_b@|_3)hu0ns`fj8?#OZX&NqGSW*t`zNi!(2tO2^t} ze3-d*EjlpJHr(L4L~I#Ut_)wcp46sV0}8?B;u_NMQ`4t9#dtPq`gK$KIyK9Z-z>5| z>mHcxWw>`z*oyZp>LT&uT|TK;*6lpM91W!PaSVIO`WZf_KU_M#$1E&aBe1m@eHRmxG5$5Btz7C8wRX%oW>qwKE$G92O+I$l`pKnU zLvDe{csuoZ=1-rrrS>Zn>})@`-P&YM489$?yfPi+Eqr}ld^mlx{FzUlfXJ2uoowVlEl{K{RUJ*qY>vZ>q- zQ(=~UdSO%GMuwh=?~OS*1^J_drDwn-cgqD3Wyj8G_ac|p+Bp|tv&W)=8tq{HN8gq1 zrI%GMQIe-k_oGpR@r(+tZZZ*}9Z|;5?yG+^LZR@%+f@EFMbW$bF2OLY0lX^;y&oT< z^BY%{SmoV0e;I#B_2_z?qzwkw3zhHW*p70+ciGyj)wd4aGJ0WV{nK-h^uqn zmtW=rd(P{@<{`dOqTdTbxz!fGysy=ePrb%7m-_4%-OlJ^2R$q(f5tXY;?+51?0uX2 zm~sYxaqqndG2k~j-Goo7MYFHN*xSNHuxhjEPOQ^nXGWIv;C`1yo!jYAH0v7Zi1st5O7E^EAa36O<% zs5olhDQ6kdxa(mP>I>F6zZQmbYJY&PUxM|c{Nl6JvaVZcB7spTjc9j!Oy3ynvJWTE zBBGOqUUhVa-n#vE6iaJX(|7iKn%ai0z$M_a6JUR^smdzdyya7JfrvgbAC6Xym^BJZ zRqsxf>cn{$H)N1R^tCSwKD?lOez4Pi!-);vye!L_ybzG|72MjbEP@|d7FZTxW}$Eh7^{nuu+{|;+s zrAeclX7_4**cfl{0C}8z{x2( znt4LzW5bQ2?Jie}&>2!;9T76#F@J{{#%Yn;wmeJh>@M4-;s#)$KldVgQihtuVf!s* zn+@CPBJE_QN8KTXucCNM&$s?Rq;m3wF>Yia%$c516ox-PEQaF@rji9&erp717fA0& zt>lRAGrPt&mTRAt%)BJ0zSH&_1IByq2i24*e zlEO9VFnZct3fWg0S6&Nh_La1gitngvDKaL^9|EM^*QO98dnG&+`_+t^;M+#^k9V0b z!WhHqUve>Z-uPlT->YIjR`EWGSJN{ch&Ll@Ma2N~znq$bDYQuVmMLpSm{6rzKf-=A zKnFBiJAN<>mtTw(Ds7jpchOFiQpoGA?5k6>qu?DFq`M)!q(AT2qqP`S$=B+e?C*rO z&WknaLyHuw8W<*3Ofh@hx|6#si4UjiX&CQcsQ8Z#kWrBkUq(p!a@L z=$4@Lwy-im$)*rF27C-NcMEu)?^&&7xj1m`zVt2Xe7Tp~<4BO#ZFYPsiPPk~GK2#& zh8)*?fr@02zNbS!R=PIx>#}FHmwA^V69g#p*%~fll6sfVbrgDnj&Zo*hUM+w;RP5G z8u;_Pr3)pQ%_SDFkg+)CKY{5Vk@-&};B-TJf`C-du){w#ZIyN{RGU2};<&Z~Dr!Lc zKDKNQjJ<_w3(x^fR%Ec7$S^0?_=d6vzy&h(i0!d>IIz_O%JOl*ZMq8O`{-R3v3MNh z=g|R(%_urcQDwSS`MyGc4qb z%fY0&8eZY$_fyZPIPVtZ0oQ>-D4gR*WtcOq@i9lQRDSTm)zCY*7F4pdV=5sB93kAQ zn+Y96y6I#Y)u7*-aFIJU@moPHf$&E)Gup|ZcM0)ZKSX*yCh%;3EdL?0NU_Wja1d7X z+{SK^DKNBMs=O0ap*E#L$&QJ5N0TupZ7DYv-JB@6(k8wmZ1k4|&2nyQ|pu z2A;!@3_;&<%BT0EFG_3+efBn{g=;EnViD>Fdf{a5qHiH$J+h?YUKezCvzDyZ<3vm0 z(i;86ulj;F5$ew1Y3J&T`Mae)(1E33>`O_-0iXYU5d)-R$!Csk$MQgJw9f}x zeC_vgHDL{5@ZHha@XJzET4SOJZNE{TXQLF9DO|%EdkAn3-$L31p;)ajx*N!s8W`qU z^DYYZx=MBOHy~CAi^H|Vwz^oFv=b+8F1%#H2h*r?zg8ZCao&EzF{b^zi&*WCy47DN z@csCO%xwU|91V&7R!YJO;x&M7)>jnxax^8DH z;Bhm)!|Yc_@T`eiuOtPkD9Xh(Kq0)|3DE7HrGioTp*6iZS;;CW<9%EO&%3oN(7jiO zuweog=8#S0$MR9?$jxqAR&^4fk*N zac$CxWcQ2X#9chgiMP&876}tV$gM+ANaChOzuWBJeyedC0KfYYV_X-4awGuXTs9wd ztIsW?BQ8Zv5kmjI9{kql3NMTh$ralo1$kaU_dOr9Pd8X=F4J3rE?=9e^TmtnR^ve3 zu?MYeHT5&JI^g|CY^NG(`Av~u5SZkJ7-oUkx!x=eAnv=^9OC-3_Xw_MxeeM7JHQQZ zWm8~G7h;*07;8xj?S_6GZi`!ed;{=bKMA;hC`QRsF*nx}6mC)q<+x!2eJm1@Ec)mb zbvksF$12sDLh-?a2SexGkRLSt;8zQQ1u=Z*%~n#T>aqOxkl$cdBY##TR0&>}z&2n5 zJb@;Z?}yD*%K@@ry@4YQH=m69;q7OPCa)D8sgm~XP%qwWytoflGCV*7z zr&P0}*@oJ1f2}Gl2(;<;V?PXwCv2lj?N<$Mdx3Dv{;;pT zlZ;L@*V)Ddv43`K{`XV+p1jM|@wv)xmci%+HM`w&kqYeY_vNX~4z9N}W3+1Wxcfs0J{5H4bKxaG}JyV&pEHv1L68 zrf^BD1ubR6DjN7t+t&a|waI){#Sg5p*#j4U=+^nd;#k9n?Rz*mmziswA}t5i%_+~E zo-Xd~WyK1UX_xD}2H)=DMJvcdMY%rbmQVZc8}Z+c%T&syb56MT0lMt^;p`yG|kyZyT?quDG1tm?cYR0t{(qZ^`EYcq_^t%1Px? zJNVllXofhkE(LJH&=pEzfObGiTr!y-NJ%(U`fhFtxN8#x;<+-keB_J^FlVk}v zzMUo9KyH1VJ{|Gr&kAoR0e&=~JZbCCDfQieC!h~l0`GW|qB`Axw;=;eF{0!YdhX3p zpwiq{hTa1%Vk3kJkkC6(tiY|gwM}kkRi(KX zzUX<=t)ieRS7(y9iu3nuxM)!k(U$}&4dB@MreDK2rG`Fb_+{rt2(|IDy!m%(x~mGT zuRsFgJKoMXTT5Z3(ky%hthUpYO_rz~{mT3`5l$@W z4R`X)F}s7RKO$aOkY~O=aiea3!q4xd*B+Zd8*3$bYd<`c8~>8CV{!c)-#5q7RF!s& zJacKg%8M*iQhXN}b}{!&vdvA{pGtaLL1=V5OK1DnV76^nA<#Bb(`iLK4Gnc^iV1_) zCF8pFV-Fkc9UZ@Z9T^!hs4uWD85x=6(!8u;C`FFsftad5g42RoO<`kQg4g%Gn?07v z&mobr4?NXqy9HhQ{L{}efPwBTb${FX>QjZdYhwCIZ0;V~!9NQQ<_=d)&K^b=*}mse z@DRH3J}2&&L8W=q=VaAn-x`&Fo#E9A6GH-#7#E8NPHoj->dMLU69cot42Ad5ez1y9 z92m6Puk^Q`s-%hx?x_&q_1nH~{5H6yn9rEQ99pHt3XNua>!EG&)4Gr+x`#cV@za1~ z89x{&R_q1X0_M^#ZE6+YTP1PR`eCSoC2h147lR7drgb-ObPqb?tDm!T`6iCzTqj9? zvIKPT?WrRBfqetbUXO?0!`5qFQhQcj(rFwC+$*}ja0ra`mcCgwiXCe2X}`K(Yk`ay zoc3IIm=K9pqG3p=664YxbFJDLy7E|I<&#zw2?0At_tVQAWQhJ2Y&g*>)sHmbB; z0c*zU63FmMXMxy)=eHMDVg|Z*rnUMS9*}-ZK3&kj|GqP?Gq7o0fvwt&AROL)Hd*if z)uY4j{s##_x}}3P9$&V{&OB+x!}i31x_vY8+Q^NM9UYB{8(TBGOO5x}9%^EjtR#=e zR(uEJ>HERtY;|zRY>I66*Eiv2)CtXHKQXRf9ysH2KY+m_>5ZGYPDfYuEg7SgZdsMN zj=u~VS=r5ey{Uh>r*AY-@>Jb;cF%59XV%lv=*3dn4a@W#_LHT9wdjV?mn{gqq689H z4Bqdr7J0USXzHuo9v$6V@(vJT06I$j%U2|Gz~QIlRoX~{iy3zye$p+BovvCi(HMnO zAme)p-FTP7$-%(Ov~UP!8jjh3SK48XW=rxAdh{-*o0CC>qi{Rf(ifTrhAf^!M(-_R zK|o2?-#MN>n*#SBU0e|2JDBOOMVv}xWaii))6Y&f&TcwGnF-osaNKQE60`w*52tOOAom?oC>%Ht*$rFzu|H!*+Ef`g0^2u5( zS$AP@n2Ky~*8gnZU;H42MI=x%H@dxD&O0^n)|-<8TlP)5HOZq9tn1H>5Mt5g=15v$ zF9bbmwM{>GCuHxlG2%oD?+M+4*pvyBzCrcI-L7`Fe0!R0Wo`8*p<3R7A95C3@60$e zm@rCPbwpfYP+1Wuhxy{aAUYwLCDn{c9N4nfjDkti98ZzRF`^Ad87#!QJa@5;sbAFB zcRgPpoB2eqe?9DYKT1<04Uu4zlJ4vbsP%#)@Nr)vwD_qk8J@{L)e2kt|9WMRGa1l_ zAMuZ@SjM>E1?>3#wEZef%ho7%N+yTe#l%l=LQOP+Olm@U2-Z$aOa~a@Eu0^P?eUD` zlrp#^^PSP&I2u4Y>_RXZa$YK%M$jTuQQDxdD;Ke`o31t>y+x*}gSaNeCp84qwE5Za zhBw9*Hv*wlK^$DVbSV{Urg?8b`d;h1TPwL)K{)raI4C8eRs5uGr6>;szQw-_Rg}aH zcDnTpn0ppzk>gT7Ti&_^lOX4C*+YnWs=!O_oGe zZrauhTra)(!X)@L_ZF6|=I=HVC=PAXQO`5Z-wh$usFh3iJF*$9knK>2=GBSz|5NAaBjS4F5<*ko>XI2er|4#oC;w-UP-}= zkECR~Ba$--EVXbIdkWqVR)aaEN@!xqEheVck)ok!yU98op+otR;=3$dDP3R=!DT?I z2%Jw$Twg|S4yf8OMt_N?)?jLF`cffP?Z->t=2f3OV0P>R5=MC9x?rNgmV)*Hxe8^) z`a@6lv3mE{)|~trD_!ZwC62zzLht1&wUeARuzZ^B~o-+F~{^>9sD+4zc9LW0HF=}C4)e8Dgim@HPEXk*^#KG}UJ6K)L? zoDZ6|Eo2=OVxz717|?6lx;*Hj+i^Ae9AkvA3TrG_*wj9f(-tNMc90Ae>G5k|<+Ob$ z5+daY=vMhJzp(%SaCTlf)LxU~4(MF$=cScv#ze1fG49ZIh;}5rRDyN919-H(;b(X8 z`@#IYD0UzL=KccuBvpg1(Ae!C4cn@UYHHLfd=;Myci6ZZLtifGXS`}LPc7r8>GZJw z1;iA|`5U`nAzd#pi^_USbTEjRrFr-UkVTOhbbJso_pdZeDWGBJ8t(>Mk>o$ct<`#n z_oWE;Glbuqah5#nRZ-Hy{6%rne+FW3~&8SEk02#-^3FtO!X2LF4tN7 z3gCDlLdNK^Io>ME@=PGP{OLibWDlUncwfADv1iytnLKK0 z2A243EcyhIvMn+(S-;@ETWO7jk&-i)N$|2DlLyS1DHb5a*Kw;~>}5sAYaBDI6?x(e z+0@eQhKQ;!qM%zBE%J4WbYHY*V%V!CLNE70JPF!}tHV!%4gxx*zXw!wZV>o_o!PLN{teW`0>DX;gwuqZ${dr2 zn3EryoqT<5()>y0atGegNMuO9H2C zXYA6~Z#w$?+F)Ad>N#p+hWp!KZ^~Vv-42E)enY`@U~$G3!jrH~n7|s52o^5KruH7h>9jcA1PiyaSi#kRPQY0>#cL5=KAC z#Ye$hq7yYl(+cLq7!{?_C!XI6^Y0Y5ZIoX`Gov5j+af2WqFT+%Gtk#$+Rg{_MWg{D zq!;khJf8{Lh=!7`oet=sRb;l{aD$jB=u?{O=&jbrEtff^$x|yoB=6#nJUeagUsfRI zu_hXcT#{mzp3Z76m)N0%ry<%i$(Wjktpa`KK*`1}M(q+FH>I8N=)MUMo*sL1z^xD{ zrbgIn>YwiIQL+h*J@go~P1?z|nJs zgo{;(9;pR<7CUMi(NTu#aEX?E4z*x6<}PNmkF?+gIilR%nGN(%pxjVQE_D|-ITyk& zQ?kD%b3KM{fNzc8;wmw6IcL1^R$m>$Az&Sd3Z{a@)lYnb7Xly4#^U=cl(p8yFhlv! zRx;h3YwR7DsxM;C*(m5E0ucg)zYw29NJOMYAy&i&y@|ZnAB>HSB{n>o~mrpabd+5x(J%uWNhWVN2VPHV?62ZBQLNBX@WDAe}M)eAaiO zEb`z$a?#-Sb?*#a7Lo6o-CZm;APkl!_|s+hHmn-@l2c}8Qnsh{8nOH?UVo}V-i9s? z#VMYwMkkFU)h3M5QK6@$pr;pypt#^6A+>K1rmtAh0nIe^!ff4eFaQYBL)wY_nvr|D>1A% z5@v3!Y!UYyN|m;{BIrb9IzeTV=YMv(7vdZ8Ay9})L9Ad>wU}%@ zcxRp`h7vJ|cti+en}H;f^C2j}0%dKm4$o!_QcZCC;3`;>5B72yAd(S{#B)S@WI-Lc zRTaOmO6A*Hi(Jw!X^!}WEr=lx!CZ!+vJZMX8 zR4@K(n-^0)Q{V%@IVYYzS&|ZJJq_R-@^Lwp7u}_r}@ico*N8hGpj2B}Sf6He*U)Fs_K_+udb z$@3HHYDamZ?(JP282*z{9BG?k`%SCz5PsPcGqvVJar1*pOaK{7ePENxur&E^6zh}6 zV~@{fj}yxfqh>vg{MXo)0h>8`I;Gto0)?dG@qNZ*L|WY`Fdw2b`%r3BA0dFefM$r{ zd)UjT%07dNVYs##rRW_h5OXs|UF()&hbQR*B>r}g9eyE%L{k#6BoenB14C$v$XrlD ze^%XU*&c8xK4_O_+F+Zr=CAaJyp~z#+IO56Y{Bf*ln|}}AyuaSQZ~FT&zp>ubiX8d< zGX5C8{;sd77+`cO|zpH}z%5 zxiJW{oRN)`N@K}4W5(xZwWBV#UG2Y6H=MIH`BjxB!j=>N;6=LQ%tVgXS0~KKC3-$2 zc^8yp8S1i8zWzr?!B<2m+rD%d*Wx6qa`^t-Z&0vF^2g&@MN6s2Y_ux>a?DKVOoLvP z;xS{UTU)Od^vmx(h=@#xZztxx)w)W{Bti%AOXAiMyw_MFmZj6R z#l4u!9Z!*ES21tXl=AIEI57?f}A&!gQBMQsA&K7tg5HrLDMeZy&UTbI;e0%L3VM~ zBcz6P!AFcF5n*5$7dC>2cQQUd&qk=w^l{yJt29*lxt#q`B{(ARKAXDXkHiQ&;&{Ho z$F=J|ECNiaGEUdry@=On3DU@yEq*ZnZtMd5DMmdD460WNidnqyZPC%_E6Ld~QK6=j zqPWqk|JK(9zJU**1jmYn5$ocbyzEL7f|k~mZnliAx5oRGBK&_^LC^zZ+4G(z(pB*f z4c_I+n&m1(I^IauB-`UsRp1P}dTCzC&5go}l(eEMhS^Kv5;czWee@l->hjKw{rKPiYl|8&BC)&@!YRsNbHy9u7ost=8P{Zb z{a;0x!cB@(C8?s9qaG3=o5hP?;cj9I3R{Vy{_FhJ z;ZQWfjdt+n}=+=AYi)aw0t6MlE@e?0|@N?t3G(!2K- zOkoAvS# zwWEjZ+&;c+W`%)8TGWz}Xu5KbxS+ioxJmlKgHPY}G!_pAEOtlK68We1BTJ99Eu)ks8KF6e%+Q z@@ONSNFn5Ix)wUmyWfw*&>`{h~v6moAgYbY4)@*FIr5Wg92-8TyQ9)j<Ex;c#%<1D<{{8%ah)6-8P z)xrOkwgaGjvMo9O{9hE`XeEnj=6w+!uO^OLM)zD;YVD9b=ERRCUEWfPu!?3A3XNPU zAda$2J^lHjL9m+yN&?<1J|>M~l}??0|SL zB(7D8{rf)p6!Bo9ee@`24d(K}I|C^8Yp4JG)qg!iEw72CEJX5PqL&S>cI7RW8oW1V zzC*WJ#AjxHRSJ)?89g9fSOhZC%lTS-?itxXvVxCHi{e1*<`w0l(Q6pu*N5q6tbtOj zQqt_;GriZ@e%I8*`Vf#fkV{fkbg0=_Q%c?lkuB91+I-@egdbh%Dpyhu{4P zIN?sP_`(Yf&Uy)J+yyrSx6X@8xLZfgyUzTeyr&Aeb5K5cO|&!3+eZT`vcom*tCS9Zmg(Sk#L15IZKQk6>=$Q}PQb z`2_TB-CDa|*B4GVZ;9(_in@vkyVf{u<1Q%TJ(tP@3q7<$lk%$@a~GCqF|gT7L8zOM zWITejfFBY!(|^Arf*iK6_BxjL_|?LIKvKkaN>=kD0cm#fW32t3)A^tM2_jIP6;ImA z$RT7+OrN(iY*NtIEn;U)E{jRKQ#Nx$816Q*KCoGgQGajAQ0oN(i#fA)raSjnH3*U% z3RP08-Sx>)+M_Gglvda|pyN&(7nEivuDhA*9vGyGc9(Sjb4ZyeTnJu>SKxXzF(i7^ z(4dBx^4pS-f|^sxzuu|TGA;8I^+k;hLo5kizB#@r#F)sr&yggi-Ah7}_%%^h@zq>K zKlNo~k4Grr?=~lX(Z8bt5g=F$|Ki8;?MN-Jra<#Y$0Mfj%dOjyF^n|$q#(}(xFb@) zVS^J%{uV0sHaYJh>1rOK17pSFzZ?U357f!>+!tZK!EoACK9WT&Ios)s6Y+&1E@Fk#s4c)?#bMdSyf+ma{cW6an#RW=gT2ESj%vVa>~* za4C#hY7ZukTEg4V!@U^dCoEp?t!3{N7pSr{6%{PDVytbZxl%iqS~kXGrp}!gWtu#h zI8ge6E@%)KThTDe3HETKUXuCFE}rvd~HQ|D~o{4fR6{Tq$M^ z`IDPUVI!KuB{_ z!@|y^Jbq>_EG?xNo@*tXQz-tS3?YIG;qbWN(`%XveM(XR}U})SU zW@hF!$CyW{{6(mb!eE`>H9gu3(26~s?vBX>m!Ad79XsK%uyddYmu+@o{I8Jvr%*s> z6H5);1@-ge1-5$WQ?lw4xuB@)>EXQ(J6v59qL%KjTKymc)zS1Yy^a2@iL#ai0BQa=7gIXOG5j4aI0;1TDV8~?&_Hb4B9zPzd zdsKAk^5qw0=RETP7BvJu#OKqB2>Cnx$nPPV(v2sj9>(QH{AoP2NX~BTpWg`2@GiZQ9NIOdPnM;ReXf$InVw0$t%w zLoSFRItd?r7gyKCfh<|JWf2?H;^Jar)Hzrur}F14St4LQiEHoZNPhmLdG`46`naNx zPlG+>s+iYK!OUTd7h-u~aq-3Slj*EWRJjcCtzd0of;i)9OTRwR(ErERUq?mVhFice zor0t&In>Y%Qj&@cjkI)%NOyyzB0Y2uNP~2@h_rxog96f>lJCuP;ydSj&-?zzEZ1_) z{NlRzwXc2c?GD*C*1LF;SE&jO2YP}If2@Yncaw}4G{a1Hs3A-LfqDKHq5B zVL85B+7w^SiImU`U5-f;)GbW!8od~tC&9i5M%wFt zwXYVz<=^1h`+cki2itGKp{dps4c%V>jgj#F+#_nl+O;K{Q`H-O zf9hjFQIem3)yMgxQE_mg|1IDS&jy^lD9v}%mjn#&Mb#j^tE;QMV2Q{aB>W`C1i{sT z3qdTp#26s)YQ>@t{EA{G`FiKWih7mf-G z!cMCn880cHd5rkIL>UGIyE)Kd^LiW@Zvub*yubYUcs`uiz*SL9w%DRz@-5dm`7Ua+ zY(HWZM(Rp_-t@qn+UCE;cK_>!Ng5NrAB<@&S34tXDvfZzM7-UE6G#=&Ry4(axrvZW zQ0O_nl@~^=H15R9a%YOxPQXuE^m};zf!IIf5iO$t=xM_J2Q3)OMo%u%N8ml{Z+1!S zT7KR`GjdvONffeZNucJD^y};Ihl6|53&geTeHdW^Kz$l>Z@{LDhxQmtG?LVjyvdTl z5we3Ae5B@DRb9=ofSIEV{Ezd%+pBeivnc|`ezi~QK{kfGg@B8m&$IiVtK`kf$XEa8 zx&Lg(+m!fE=4^hyAFhg9%>B#j2#LqiC>g1sE0K1>2cYIZM?G*l4^%Z~ygNJzM4$o1mA5@M`h##UHmKy&)PYTL965~J3^A1km4|loR*{?!NFh#8Ozc1gPF{K$i ze;`7}xpFTay8F(SSU{#h5@VGG_T1Lhlp$oM5 zR7q<6*~o?EzqR4W?X*Zzn8a^{uVM*G1C@2tPx28ff;Znn`6B>nkT6rAF;XPXu>nw% zRDlV}-?#sqA6_VoQ3&UXmm?`()+tC_QZxCcJRAYp*Vxd~So;Qw#8S}Iq#N@>T}{pO z?zi`KnK-VR74Ts-T}$cw_KkxON=KI?uF|^PgZRNrRSS|u;+!FyC)-mhYU=71BM7NP z=^!;NM@L7p7Ca+y!ZiRQN)QOiv;8Hm#>U3PQZSohN=QiHHSNM`1S=&<5yOvk5m$M61qJj?jtjCtn2AZYpH3;9yIG@5( zQdoeZJ`)u0={g?3_1@<&^a-!qHqeM6(UDx5@6OgjDS*?W6gYxQ*{49Zm<6z190h(J z?Fo_BSd3{z3~2M0hbiXuelU|e4e->{Mb9; z>IFcT575$AoF6l(2WE>t_oHFn2)-u3;zR-*`2wYg3k)0;j39Wp@<_hfeZOv09+u+> zc*Uw8!Pvx##g2adb^f$}DaE`rp4uE!80J{(f(8MJHZdbSX2Oz*LfCPB7NS!Ip zJ-tWZ#7Oq37ckCT1N)GI!f%0$3M^gKCnJ&cTJaHND5ndV$cX@Nfu%3@ko|k9LlW?p zr5Fx9`n~cmuk!ynW&itQhtWMtJ(X$Fyd{IQR-`I|y#@zC!3 zIAYP&u>8n~iRtf?U|c9*oE{I<^oQypQkX{%yNKf71gZuyP+#Lqe2xeHDLtiP9_&P} zKnK8eU%SCOs~|7mzj>syKKE#qvUD5Bb>juBCw0Qua{oktJd{b|UZ<$)ePcI(F@V4N z2avHQ50YanZ7QSH3zQRpt!k>|+Oy0%xFk2>w2=-+^TWo~hL?P2N}uBW7Iel$k}s34 z{*A);s@#!h0d-r|l)J5b$07PFmggoX&-s~x2c~yB=Ju_o6*g(adXPxw0PBk$=Xe*J zZ-gV*+Nm*UbvIY%WVz@-NvQ%PW@I+a12?qDGyi{mD@QGvPr0p|z`s20 zF_I2Mg<9DrGFl<4l!fq4x}-t5=s0n?7GxG7Z_$hM;{Srujk$&69MxlHjCp)L&Ijku z&STJE9ZT3GNzIJ(&4AoBQ2XM>{SVC(l2>-!x<1|JOo%`@bBbK2844z3z*TaW2!Od8BdDy^j*LO}Z((`g7i zK8#FEvUPR~tXV!sVK(y(ui$ZUUxLRpwG9}}dZNS@x@Qr_7Den zx}1Un9|nwCI?IVRz?jydw2MRbbdNV(9}0cJjUu8Wl6duRY7ScIj$J}wC+PwAZGosG zocdgbm-1;1+^v33=#U!Hq-2m7=eRRfHayA-ClBX^)pSjsVNMu2S>CrQ5YUaH{fZ@? z@bZ~#)XwmiX?m^yAbL1pD$b@-5WFLc{1>fD1n-woUZXOWxa}`;+|Q27sw{`8+5V2# zT5ALGRuZ^Sx=$G5KRFROUB6*!AxHU(hRp*CP8=zlmQD`-3o4jQ5az==ekz7L1pgE; zXI}dpEnek&H&O0qLG-ZSDWpG8%>+hu34(JheZ_!+87$jGh3R}vg^;lN4%}QnLrzyU z47@uWyIucvAowqIfFz2aiX@lq$2SpExrtZ4)-#esLW0Oq>(0l&jQ-!Tw*WSBLHq=G z>AsBrydS7rdXr{^th5<Nx~SL=D^i_VB?EZNpph1yoIc>ps)f9>brVrFJ7o2{252 zc@HX?xB1O`2^#;TS~Ca;OaMDixwy2_C)4LZ>N^1D>s-J{wf4pyghtMLZGUkB9u0ak zWvcSSMR;x?XXIWenF1n2@4XU_fS*fpMesPoKhv|PyG8N;YZ9evv|s8>+Uwh2_b=Rq zBs1ar|HRW8awf3~e{y@|vU0IZHp5iO(Z5!g11aB=*K1WA!;CU{b}1RuY%E|H6;$w{ zkqP|l0C|KC<1&x}{vSMzaATgc1-*j@&B%{&nbAY}vq6yh08m!2wR)Z6 zT%hIs`P08EC;{H)A4`}v$p3bPbc6sEh4ZhS3&lHn&}iRX26OzwTN5A<-y8`dz*j>v zE63;+Z`9Xalo>Mv#&e9o`7Aa=)LmD&1gM&E+tk$5a-V;|N3If#w0|Qb6S9n};Nnu_ zE8zDfpcSK60R$4n-3RgZXMjvD4ZF6#Zzz}oS}kpS3yGP9HWTT44BVVj#>MrU>Yj&{ zs1|hI{7WqdM>+|LT{H{;0pa2)p?I&VUn8?b;pV*%rl{fKBdzfqzM8m zDU2FJ=3QC$4=x}$HMFKEv!cnGUxdS9OSv#BLJDZQvQ^aL^3$|W_q{k>-zon`Nh_-& z#%@IJecGqu=o4<^_lm$}tWCG(En!WVFdoWx%mL85tpdNKcwlh@i{U;2o6+(B)_%Dr zJB*P;5Ibx?S-U3+ps1~EGk*WltzgNaB(om_fk5KkpS8#sN))Nuv8S0bJ=KP#D<1g8 zWotvAPel_#UcVSrOGRFcwP^z<@V9^wb~JEwzB3&HUQFyD88=Zb4%!Dc#LbF?FJ_eA z3!5#l`>xni$Y9q1H?9G&D-OLsC_x0G8jvfSd^Ir|Bepa@TW7TK*5>#33!CC#X0*-B9#d(V<84L0ipB^j%a6}(#>8`Sb2Sb$ z_0{OWZ;DAw&6&%Qp|qd0(jC;-BPQ(F_8geB@%~Y7Kczg%6fuz&YRUjQy|B8Di5N*^ zq7enRsse;Aj&eipPQ0F)_Y1kJNp?rlGxqSw{?nQ8 z3*L{XePxStRTbX-o=5Fj*J5`3o?QKBkKC@E@SZL}q0XA+Mq#$D^}q8=0g-a0`i*MJ zna^16;ZNTq;BRO(-G8wWLw^7^;k3Y>q3~ZI_GJac5Ii}#(7s#X2p^4_9X9v%{6Z|p zHG`3zeGrNTTCUwdA;0ePU%!48_=8|jGNJ|@wEtV^NX_ER4onZ%-Tu3{lfPW<3Zt8; zGb_ln+#dYynV7usI4nF|U?vCThY%ISO}~2eYTZ+7`KA$ZP-rt>qq*p@ZQCd6(Yu;9 zGc_Ea{TyRv$e8zT#e&UzkK#DbXlaqx(=>IS|ElRt#)wgyX~OjhS$o~E(q~!xq^rG~ zP?xt$LoZN`&XB~jq>fl$6%~Q1W?pV48$IyT>_P;J?R6~UBdr%^Kc^*8AS36ZQ3Gho zv>M_(iDUMeq}Fe)Qy-8Fhn??k5^WaYjJ{rZy{$`4vP3R}-Q8W|>zh6gz;qQE3y-ae zm0|t8aw=(~xw2RKiQFfG#7wMN&WBr6-_RWXW1cgE=lWm3Sk+y`9Snyc5Ul?Rj0Mxc z^caxLXF>&J1UEe|Cqa*_yr6%fM?=s%I2aEOS?&8w!26nUfBNtOZ~V=X?4ZR;vdth4 zr-ZLBmb31z3kK5!Rmxh=bmN+UNkpEzej?1!F!P??awE;FI66MwJ?EVAhdwklGt2v8 zxTB=3Jc--Nb2jl=_90t2#w$!>%ota&Q2!ke-0P;XfBt{>Ej3W`Pxp_bo}N3_0%gr~ zcUOWX5R}H)x6stT@rvGjx#Mc;t;pp<+P{goXEl+QXQ%cZnOC>7$gbZadP+5MM z`sjyu8y%Hs-4t4}kiQk(oD|9rX>eVtjn`lL0)c2$bca*zJzg7u0k}<$9iwutaF4sI z^a4v>!T4u@#=Pa`Y_19rDEHV}F@;wKq*A_lwe;0P(8A#q;lG2|#Tnnw8RGk*i;00j zM;Big^DAx+-risrnctam*VhmuA6h?hi%EwmXj>1uF_!4#IG7`tUyO#^P}wdp*N66a zl=n!$DoDRdE?0C*&^*&}mQ_BF`ZfBQUO^xIf6(<19qdxwYAwH`W23o7{?)X2YG6R4 zzB>xfkoj(ztNn=N(UzxILVivmWT`a`+MnBRk)%BCymNt&PeUNo+kYD7_BDz+x%XAA zJ*ko{$EBQDrDVvevmMjbts4!_OV$xCV(g5flAx81B7p@b%39~O?-yqM?T)6Prw_%e zM5FWLETOR%?-xXCL8prU(0mhK593Pc{XJKA_yeO+iwKJV#SX80F&ZwJnyK#9Pag!Q z&of|4M8k>MGvl)+ES#)jc|0uZ`Yg#htVBwTj-O z*G!e@385w9u#)gaym@0{aOjV9Nj5g|VM`_o<;PCIhCBf~V-6azdx+F~PkMw39sj%z zLmN_F2J5EvCwaBjQ@YaltK>ew|5qs{G>9bKO&6Cs5D$%dUjrJi&c@6tQUQbMx+yUTI-iRFPSA_i~nJ1NPRrw~&qD=vcveZUXLyI#8#Nqv?L#p%-=-2HeE<+0;4UdornY`!lU*Go0dm0R&ey<&2c4`$y z*%UHpVvz5_-*u&|js14{+V<`imGx*Ro>+!S^OBV)UXvnS1U3qdNU+W~vXWzrW!-n6 z4fq3D=GZWvAIfyictG_`wOj&inCFXdgHzhq=SZ4=b}vH>=a)|-aksVSbv~Z|I8rZ& zXS916p;{@dWl#O!y30NSkKxa+mWrGlHM-MK*!XOX0T)}v9Al>_|Fe|# zx-Fm-g?dPpN>u^+*!I3P0ocWaW(zXAd`{r}j%i8g=jH_>oGVx4ml4C}@^3DAvuuq? z&_b9mG`XI6!^DZ1lxxaCKQ~*~l1Jme*5!u&2wBnM(44p8GUCgB4oCx38Nd~IAVht9V~ad@dEmMSG$9mgMsgjp;P|}2V%Mh7K=bhZ?6?rt)!1_VJa7fiJdraj zLsNr_d6z$cdxR{hn@VzHXoAAMet()JO!u8s}ZdrlK1g`n*yEuEv&u6jwbuG-zlQ$fCsN7*-Q;Z#dVQF^Y>_QM(zm#Jlyd~xx zq#rVY;e^k*VYm_4hgM3=q7vhB&-8+nh5Gmm)5zEEb*N9UibPN`9#n8KY^zQ-s&4sE zV^RKWnE%#e;8Zn8zaa9KNW(i`{TPp8os)6?yP?NPasqxwFj2Pz8Ic1PL*c=6o3Ci| z#fL(__{0v!s6G>X+FJ#bAJ38ECi58c0#}}L&OY~9mPWxx2DYt^fVaXbislf=V0iXS zTA}mlja*1QA_)HceBlaD;agaEq-(14rBSa)47*mTK0OVmE?x8a-h`9(q0_ncUW@{h zl92B$egM4@Qx13C&%IpE4330?vgV?a;+px6$`$DCvNN>b!bA;o&Hm6iFLP>Vv307S z;nxjYo@Le1TNAb3U-TgYR;lPAtR8Qz=DL(eUo(YvZ2JgCB2GpLeHRy7F*T0LD|$ff zN9-rIC=Jy{)3)`+sOId^z`F>sKBN7JZ*H9*2bLx z>l~!9ru}RxzAsL3a%;YE<@Gr#wg|;jyF^d>p`-;s=Ojyp)%3-U<|Un3@7~B-vG4F* zVi$?#U3wA#Psm`C_q>swCEuhHin_NLT&o)``%^UHWPJ-WOUnseIH2x*->;%C9#SJ&Zs z#4SaK(oF%4*Q>R8Z7G7%&5{|E%TYsS>zEn6&m%tK?~$?M`rgdI0QaoErbbbsXWc4` zs@58v@siJQib|v=Zn8;bm**^DxN)ya#`_@TT(`z*YR}ip=VLAZLh8CZ9N_eUXTBWv zi*O6uW6ePPGwiH6?ne&S0S(^xhT92k-c;ej|on^)g&s^v8NXEX^?a}xd=CVGv^uT`OyMPe+&r~Hz*0#-*==JK+rv-G+_ z9dSaX?R85IRE}{iY~R7>tdn#A8INSEz@RYxzBLE#&urTIjv?**vAYl;BbAg_adWE! zo8pQf*Of!mZKuLXdvkNs37GmT0H#NY|M_c<=8+zica|1?65~q$DFPhFef?h|z%(CT zJhBu=LNu~g$7}!-z0Y^2aEH8Yh)~GR(vGDK7tAl_{y^SW!gI-Pycpc;!~GkOK4Q}< zZkU+n6*29mn$a{W5n=J8Bx5ma@nFW43Wd@~qV+gp;h8+!$Ew*odF{=E9ckt&+lrhM zr2OW2O@}$v3%6dTb+|D3Y+)#th>jow5*8g-+jS~7d9vj7qI(;Qwom_8fz2`=$bWGa`15f45xkT4KP5PfO^lnZAU(R6*`3rT_bC`YEy2r z6{JNa)@2rp%Vi=(!hL$oVa0Tc9zNPEQ6_hwD}WppF$;0 z@yi~jh-@x&s&s$TD}S%wa@+kf?6d|}xH;h|< zG5zSq>=t-bu=KNhu5N$CZ#MrX!QSZy%i3(S`zMz%=TwgbyY49Jq6g}VWdR+3P6Rz{ z7gOnvUG-g+cVc)=@^sf97KX9huQh5+D6N2J5T$M?p@B{R82|QNSaJk2~wTWT&zW0lE<#G z;@Recx+mVq*@L=ONCf8k#X~}?^F?2HHW6i6YXr4G=g<_yWwrQm$ke0UjO{o2w(CyJ zaeLvf$u>yOD4ehxsRv;w<_+WWja;55qNH40em~6QA!Zg)Ixvr5sqFa^_=EXr!M2iLixK16p;u{-x05=jQ0AB6dGp=iQepjQ1Ht0yaI<#^E}==g z`SiTsd$LDge=}-z9`z3t^ww${ZE81bWuI4Cm?sR>JtNgsSm6Cfk9alZamHqB^WdIX z(P#J{A}Nh+%ZKUq4A9`KiND=4(qDg|5duC?YCPq(hAqY!>@Be$uMZ~yYN>zN?~Lz> zs9UKV{_VJOT?pD1-TUw;<-a9>U%qeH%-_7(`aTtj;>iR!*x>3S^@6RCnC`rb@mk+o z&I@e)2U3`1o)4{f#{mV?pQ&K%v3OB;V|Nd@nT}!2SzO3<`MYt?(KG~t?g}~lcH`PLn3TGCt+#n^Di3cnbzjieTq20W5*##Yd-^kCmi+w;XchswmSVsH0jlleaokWy!FW?Yhg zXJCQ;;ePed5zBqm=p&-q=~Q>F+_fJkEBmK16A!8>8eFepA!>Inh2JsdjBW3-oMZS+ z(Z^s{WB*u!Pri~wc-=@te<9bBssWS%*e_e|uGE0J#gCo=?Ous2|Cz3jhbu1!wD%eo z+Inu&?E@g_)CBVLRS(WA$WjPlECmt2A&i5#~ zgx09nUPR)jl@_ z&FEOs;@??JDTFZA?}-wHD)MW{VPARoB-xEsiVRMAlIQxNHa;{}{?n~gXTR1&-Rmt> z?s|#4g49WamTO&}`6lr3?4Q=11^13sp$KhC*=TDz;wZrl*_PW1$)f=NkQ(TYgj!-M zuM}o^4<+f3MQ{Ju);lxGuC2;q?cvO)e;{j)w8#X^9M4hs4L^t~ZFC-z(EY{|<5ZeF z*N)i7YEd!h3JFvm`*2gdtPA*VD0Iv5_Ek3LD#y`Xgl}xb-Q1y&0@=pyy-8y zJinXEJ`hZO(rIBI*}L0?y@S{|46i1}jJC>c?*2o~)JpV9zHqY+Z^krwQ8PS@ zXFlW;?hT8Wcd`RAs0xFhPXepmHT=eGGpunKP^dFbIxjjFxTOsHt|ur|IRR!R8jTU3fbK`J)1u& z%Sr?E6Ue+NuqaB5?;JH66BKcIYe^*SGgp_$iYB%E5vsO3Mf9}!d`BSLSnU#xRMw8K zv2O;drhIVeZ8Z0A21)wisIn?GE*+|xd*{m**1NGKXHP+$5q_kDiSYr%So3L)SKGxY6vR9p~tU+uY%36K0qOyvYz#Wqrbfi&j`6K2dMxv>dDej|v60++D zGicJI;pHuFq;YiKQ=Cz(H!@2ll&^OXygVzs4kX_7V|}eJaZKK7?T^S)F&2a6ye>BF zrlGzn`NaN3vuRXKg|$%f@pF0fZu~O)!)f{vXHW9##evm|c5KZjCfN08*Q&Kc_y(m)XAd!&bw`Ap?wK%>hP?i>scS#Ubl^0T*LiZ*>`UY`II;_(m6k$_>kP_7pV~%29>wo=3{%puw>*_epnZj zd_gUzqI?*e9^w{U;^A_tsjVZQM6YO)MT^mTv*&#j)`k%qftroSOQzwx_AJUh~rAsl1vzxL3hyFQZi7i1yqC^CN$J zD`aOfzaq8~pZ}Fo!g16v=s8Bg?3H-`H-Yb0e!fyAM$qPHjRBL^?pIFz9N)aG!Wt)U zHGhA?7CGHjS`y<_C31nJ?+WWPeo$#x)5y~c&3_vBlTuQ)jT6 z;(jh2)#35;PH-kL{6`AKQ$7BxPYETboJ-kG-`A4*J8o~p-RoWBY~$H*SW%M4r;GBQ z8ji|w>0f*|=rJ1MrE8cTzz#%gz1xe(B7ATD9!?WAzWkH&$9!JFN+W`2*W-F4Pk22LJ~!6xDXYu5uOyWv;TS{D zxw9jQ6pqPSEQ#ln-)Ff21@f~%xYE#X1u0B;e}|v%n!FNnKyrYbeeRN^pI&}m(xOju zzQ!YYjq7VBi4o^q9otF9S-<+0+wQr1lYRS>{kA^^%(jitW?}&Wg!2^{0^;jF(hgHL5*R12; zrSf{_AcD!@1g}s~d3#s<{rX3pAzqSBfv@v`^)KBWrbps(-~K{fs`Yb#+qa-+qz)q`O?$n3K*6eB-Y^d5 zWIH+Yjo0jcluL-5gcMCQ3y@xj%jGZoLz> zU&P5&O2CY~uFF+sydYEarR?gMXVp_=G4ltfk21(&lO!R%;RDO1Wxe!kvw4OczY zT>Y}F_EOx*j;ER;PocV^HcaAI58@Z#0QIt=A{h?6^bUQpm5|{E3w)+&C_}u{$aJ zHCtfjVz5#gOa-rYs^NO%pDU;IdL}V3`1JXa6^<09Z}|A<`X$d{qF3C|HwOM+`d-D9 zf{9Th2p9b3NpC*7JLjx*I(EcXUGP+x~3|rJq_xxFSMl zQVrjPyBL##eG^TCox!Mx?DQJ8WYmF?#D3pGb~S`9ng}(hfG?xU4Y6!>+Id;Xr9}l9f-1YT8R{V$M5Cd|JH9I{B}YJ zCZhD$gof<71J6yZr+t5w3NL%Ve*+HCSfA822Y6DRmEWFEO&U{X^LN{2Ue}w&QXs<6wKu#z`~9pIO1PVB zqx$MRL3>>;OPmGzMDgbdHf%NWHJI!u?wOg=SkWtEKV~?i8avU*RWx>@Tpwg)v`8Ec zSPkb9Ib3+z;}iiM5ef&~0z-OkBu&9uNq4G7&?<`}H?0hY+_UK0O>BkV0ln7?_Wldz z^zk@SBFOzzQruE~a}@Rs%8(zR^S0}Ik*x823!@)Liq7Mj%YQ65l~tknEhryycVJ3s zpswRox`bh+wxG#c1*t{Ls~*wXR$rL3Yn4L6ripo_ddXya{rK;Y;C|&WC3;9mmD>$Q z+VY2knD}Jo>au1n2suO!BhLCUnFTAI%`E(j+E3Qk7hg@&*iZ5h$1VND%o4Q<7LnT; zL+_vQ`Ajc+DUpb*tmxmh6>qZ8aNOurRn^Zu4vGnO#CLmawydp{e-zX&0295OvOZ=v zz`Aa`IW4!!imF%Rt_7no-X_0p0cZk)6`VNgJAtsOn^k~32@E5!H*igXH3Bk&PRGYU zs~90&bNxC0kX;k|L3x08n-|zV4a>^=1_nn$WuI+`y5g{B{o>)B+t`e)G4p7@{J!@m z9DSwpS+p^+m}@)Fu%9+(k?);&4CMeZ&y(|S2i{Nnt8idYKx0unBalYYM9T}0| zyGAWC>c(El9YH*S&Jr-c?_Rg(`+`f8yJeF^;okAzC!izCu7SgkFMJNSWpCdqs=940 z+Ao;(QB6N&*Lj#r3`1=``K!aUDv&GutM!4uY#0}oh_P#U;$D*mI#n*aCl_o`x?QU9 z+aZP=FLOZ1k*mk9WQATtSIms&(9$LdehGzNqUY4b(yBsJT(KlPj9ZZQ7m#TzG^o z4vH_E$kaLyW~gjCp2pmUnCVDM>xn&lYdy6x+(Wohs5rc&Do#kmwMgN((|t&0Bt$*2 zt_yEX+Gujy_LeZ0hY3#`#rt+$ZN3qE_`1d;EJ2PE%;m~jd_EakHXQl1D`^XvM#Tx6SV|vm`905T~Qj}TK2=iguc{!{&rsd|T#LiRbT)Fkp!Q{%xbc3$YpOW~ui8RI2t@LaSe zrROEh@Z7>~8;Of5@7A~I#CKjQm2%2SR-M?np|cOH>nqzN?hL2eH>yvK_Ff0WPx=t4{6jjGp~U4jRsV!}{$(JJf{`vzCU zoQp5V&BoPv$~Y==ejVaCvU$JC_I~6Tq4|0?20Ht!JdiB+9fhyze|Z6Lq!0T7R9M^_ z>{Oq1*K+xDRE7NpYwo2q0g+3-wI}mOs}ga8g1pttQMJMz+fqZZUDkwtj9GJjxJL!z z%SC4{zZwYyS86$cBxp(EbkMo!c1?u(Vd@5E3Q`ZYBJ*edlxoQcDK!FU^G`D1q2vz6 zrmWp!7Uj)*2F?Aox+vBWXL<&ChYp;$QtQ8DY4~E1u|*%wpWCuoxWW{grC)fdgw)cb zqigNq>O<%!3`g)`-u{2*_|6LQ30yi*!d?ttAEURXaPo=9qJ|Ee?>MO$%%$Re^nZv zGp2HHhl>7uaHcqL-%qLH10v`c?PCT(phHWSFm~{F>b|~2w50U;ALfvK!ww#-A_eC1 zq$GcsMVFel3j64`oQ_0P-{ECu0K?PxJB7VPrAsS$id?#V^ld3!{Mmq0$w!L?Mmi7C zK>qk%sK)cshqz@N?1oK>14@?#h|f|mk<41k)~NOVchQmSla-*^Y5jZbeXrfaB1K7< z5a?OYQDf*1J5e4_qcR0s)T~GiS^w#bVST(q!s(aYG67;WSb!5|wg0Q%IIjDRF_PRw z9hk2aO@}i?r*iqRM91=#;^yqe!moWVr$79@oVOr~uxU_PhgMjrJN}k%EgOF zlq>q_C9Afg!s6J&3dLKT!uSxQJIf!ESxz^hL>j*)wlI^Tja-IE+9%8V;!HN5|RG6AA7>^Qw`eek&4zkuaPVcyzfbY zLtOsHg+2`)Vah`w4}QcZ0D)@N;$}2%XXfkIeR28ydHckvzs0253(mY^ z=z@3+ql*&?QbHGiI2M&h+d@#c$$N$2pyh(P{O zUZ+?u8%beeN_uYU?JfJt}SJXsubFLZvOS^KonPE9PZ!D z@nx8h#BqUgKRkxE#HSLSh;Y7eBd5&ni<$Os@8WLGh`clx&Hj z{C{W&v7rH$1wHcemUraCu91$n|2RwpW=J|V>hV^wF$gZ@VOQFTF2TmrGH*70=%=sV zUrqgom&aI)0sYPeSgV1(d>INcSe2Eyj5S0eH>M$yeuU%xYy*4Q)T(W<@e@hL_i!== zW#uSeomLQg&n{PBCfiRaC4t3hjOoj`0THvTUDQl1A)9pkiAFZ&*mE!YR7FW{m_@|- z`A>+3T5eGFS8Gs8I!PN4bCNaTiASTsB>8W4a!Y^8bxJ(D)o$MY+w^2iCCQ4GhUhIb zvf?eGW-v>W|7-3znSJZe{+VU`Kez_q>=bWRv!N3er)DgBN5rL?SWs20*6&J3;qLfZ z5v9Kep@9OmcUV99AvmeHDw-1mdYRlb{XAmxq1>c%zxBf8bSCaQsc`3X-`((8ok^=EpD;`Q*PWO8aw)ut1u?DGQ@?TyfUqyHIexSZ>T?mN233PA_ zNyI2t=pdS zBJY)AP9R;X`;x#eJhz+AjOV7$Wcvz^z6pR)>YVoeC6Vf^Ij6jl*m>uGE-%MG*{P(P zRf!zltJGe;3L~S?k;8xZCX6Gl^U zrRCTRuD|{&8zJrv=d*5(OrB|~=jzI7+tQ8EA2Q9)}rx$}_9h_?yuX&{gwCHZ|2mS)9`a9p8^@m({+X8wI)jDHT zLrLn)*}gw1SbwT#k(TLC8-mxP9Y2yDp9wWPokv0kWW_1c@z8h&0<^8>bVIE6-qBceQfWc1HI8P~n8wM1e%HUECnVkH!Mt?Q7D2JgI2 zCnO63*0mg9L1;WYG%I=o-%|&Tzy;0WD+y!SWVsO+NYly&d;C&dif4%|>iNB0VZ;Ku zb&(S`_)S#n_y*hosIny%`zA@0Y;JN!k?;4$YOVHqzlNNEu|-w5Q^Q6yvrpH$Gi?Aa z8&2&aUjnOWnB&tLmC} zKaXkJeGgqj$h;aS~n%WJpcZ;N8q$)@hoe<7m@hQ<9)*|@M zmyR{xj-UUI%x6;1W{;o8Z7c;|!bDS8+*dm=lV{Ue#sg2tG-5 z;y;5;L;bN6oC+bQ+3kt%Qi{OaB*^+ELre-YZfR5|L`q|Em!9Y7hipxa3iajz- z3-zIw6daF%kDa-CN*-NsN85KuDOQJPx1UV|X^Z~t`F70Q2{5s=eDkiDV6+I*Hc{)r zbk46e^7RxozWrodud z7YX{l!$aBuV>7%8eb%lw$5r^h9M; zoF62VO!YqU<=W5fIZ+UZ#I$&raV%GAxqFG{Mmg8QIG6e1968-tx~9t;DOW2!+-~Ch zferDdH9_r-Ca6m9qI(VB)Smkt1kr3{C>or8ld_4k z4`*XQ_J>xuZfnK4WP1F@j&r_Gg6IRmPdlC2&g)qc^;x#f9%!mKouA3(csNtHeovGw zc-LHi&8i8Oq{%33(74>9QsD8*PQ%6K4@H7bsfL=RDi;rp%6+-0vsG59;(yZ$+%fL` zON^_Wf)>BGOYKW$2(P@0d{1+nC2=H5)F6ps-+tVdxH4lw%)%@+rmoJx=^~tkaIQPO zJ^q`tcJol83Oki0wJRVVC&FIQP(X2nrD{B7>28xNP_&yVf`X%6HJ0vW9=XpWu`-q? z%)0^c1ngvV8<4MW;*_~>u73Qj5_2!;Lq7L89TFLMY(kOjqFc1)d_Uk8f_Lp~Tc$b$ zfa&_4neFhr;2*udqCVoW)%=+$IV-CarNKL81u`iQ$tuF38QmiO!@HdfOdtL46ZH@6 zoc0sF6F?%JyG_S?Tw^a>Drszn7VMS-##JS0+}037n~r2t2k_60eXVm&<#6^Z(P6@= z*OMitRu*5}EU)9VXItI(22+}y_cJ{I++j}2aUrwS*iCef6HeMs=OTu;afB&HH7_+u za;eOVIRhZ5(9t)n1P43EGY>Z+vV^S zgyxsJ%;D8P`v-12E)h5lI z+<0-&c5|il3mctFqgr)%6KUT0O6iS3NPkdL@>}Rbr0NOl$^Jm}aPv46U!Q1Ul^GfY zrb2vL=tDle`2GaeWRa=(BEDh0|A(ye42JU$-~Fzdtl%eF5G|svE{MKFi4uLa=rwxu z&LScR61`iU)q8IV(QEWhh!(w<x^eFL;j^ zP1YLYrCv{>G!yJmG^=3Y4tvD=8tfGl8=FMt(HjaYnv`VdNL zA+m?5c76QRkBSb@_#j#$y1Kr6RE9fR;u<+8xdEU2DOP2^4XM^x_nwvt+{*G^{!gR& zGsovMlCi&B`lf!gA4gVf%U(51d$fG#1?{&L*tmVG$dhQiqA;Y9=VS zqTxDpPRyb{Xjn?@0wMM5Yr65?(mQ*;{iYK#4dJ77=~J$p`(+j|x4f=QCxq!4xS7Q# zyn9k<{&_POds)TiTMjT!7BV=f^Grvdm1PPRkLUb!R1%(LlxYazu8rM+7wfCK?nDL+ zFHa0dNPZyEqVc)($83tC5wonbTt=yX#|_QPM`G5`i3scb7B?g8b=&#PLqO=ZmAmLutou|qSdr&Ev3+sfNEU!F;lJ{sWp zr&=-bf^ZIV#_m^%kfor9>^vp3&cQ%r0CCsK*llBzulEl9dktQ%{IzXa1@6PP`_l6W z&vffvRAcBFww66;22rKotq_+=a=zt%WW=W7R(YNPqZuZ!lhnb37RT_PKAk+aUK%s& zAuaP$Rqv#Jp<)ZK*}v;{f?mk-i;sFyk$4 zhKpppK2h-Vz&AZ3{gOa~=ek6?_}0ZWY~?L4uh7Y$3s+LlWd(h(E2t?KKMJ?;lC$|y z1hD8{lyn-nxxB;x3HSDtPlq+N37gEzGOHRm6ZP6)ZMAD}_ivs7u@R)0*U421mM4Sk zNX)`ONH5nPW)$@sr_|@(>zzKX*dB3qb1jov-?(%ddW{3ch2 zk-t4c)*U3Qq`DU^LFd?hvFhcPP(Tx)Lm!?2o)pq5`5J#AaoYvMV1LOA*;*fiAA^KP zP?IDHFC!-sw(3$Hxk=M`$*tvne43rknaG!$e2vf+jek+1j3#!&^!5Bxdci0kh}nS) zBpSqXm{mmIpX**xS&$ebRa|+Ap5(#@EQ2W38l5eM=d<(TB|0>GZzZ9QEeXv*dhWH> zi$7pwJ68+KcSR7a-|P|d{O)2tu6$7Z`%QM0q7eE1B1rSM{f0AHjgz8$RV8H%VHSN? zn`LE=L~k_egITx8{W4GbAXeE`fnF9*V;JQxVpNrCwzLye&_06*W;M2EfwOhXZCN78 zzDO$Vb-H?EM;{i@GE95>BEV#vVwX)bkA?i)lEuf+U6*E6Um6?NEv1GeZYI-Rq68wZ zL6VIZ*+ghB@zmD#WCRN&~&<`&pt&}XqDGX6rst_ zW4h|Ss+o9o;I0+zKw!N$cl#GONLw^o^z$wp-ml<^H+8I|ds^x3!Wqt(&l&v8!C2RZ$9QP<68_>y?oLEYv^Bf4wd> zG}Sx95r5k@3MzV5{iC?>?z=bindkDsenll!+3zCOEs$i}T?qMyW61jkM^^Q z`sJDa*L@^!C|`Xrt`i46=4^ZK9cm3%=V9!dc5%OoWjYj#d9pia@A&=oS6URZ*^UO;X@zB3j=lU zYDUAH?_Zfs>4!YA+#0capO;RJAb_ynY3UL!_#~D(SWPx?4Z;>x**g5cOm13`I`^?4 zf9A#?w6VDBFSSP(ebp@2nrz=W7X)F2Gq7-Bh^>$H35+-4qcDya32ox5`w`ftUt$!h znIiwWEZ^5TEYtH@4u8M*y>0B~=77odh;rmT?-oq_ijMLd^TlR2^!r1N$!YVUbx`W< zB$iI=0hQwY^DvIsB1>8UlNbz3D*S(*x8HG}l(4GjRCXLj;LEmNh@Mk*YKkHaut4Xfjh@V~(a3j;Yzi+q7Yy-WVEfAnp@{OiM z2hRq+vR)WPhX0~;y#LfaNCJ=i(bPMw98m>c5IwoYn@Skl=ubhB+6dI724pY5WXjv_ z>cB74;ntgdJ+wTG^dwfm{!%jPjO;oY@>rfX7O=q!xcftF8BF!|D9I(VA%>;;;-}B; zVdI4%-O67CN}wcqJ~x4dq4eweNumV0bEWbYQl)#hUMlfV#qci7#SMjW@H-r{Iw!Ko z->(si9pY*`{*2UruWUAB$YG9CsQ%?3x7yKPXFm=8v9o<}CjDJ1&p<~i5Xr*!Oy_4D zEhx;FIO}yT`nS2g#xO$+rmHW*x<6t3qjeHwj$Qg-)VpuBBAT@_%)_5uIoaLVHu;K+ zRl|lHLDbk_@bPEsWvWM(_?nh0&#oOx@>Fvqhn{?RY8>;){hr^h$pNc23A%RfB$5#=6u$YZK_v7HA#{%GeuHg?6 z8t6TcKqLt+U%~zsPQL8eRISxqrzu%2w=p=~)Y06VtyYQmIp5tiY+d?QlrlSZA~Yt# zY>nw6_Ga-(ZDr3;Q*pd56OFL1j!90~COBOZwRREOLnGYYe!x{gigE3=Ae~$`y%1ll z70Ql`Mf#4X&1h6PSXDh&+p_z(DWzU4^&x$v&B?93`B4M#NGo7Pr3*t{re3~XC^K*M zPp`d+49`3HJb{+YtqCc%I(%4UE8V==F5a8z9_xUsH}L^Z!d_--S``p4D~-DV7uS}i z1H7XTW+Vo=s84e8^J= z2MYQHX_OFdT}rhJ-sn<~q5K_Fa5~9G>KMeYqz z;a2(i89x_$-rDQ@-y(A%NhF1cVV&Kg!+AcST1$6TRixKyifwt8{QRf`=69b=iDU)$fIJMBwCHJfL{Zh~UOszw7jqxoGme`e8AbD^AbzC}Rn!*# zI+F#*(3OyWDOqqj5XRM~iLG{5T0!E4iCpmCeV4D<{iz}#h0igosEJ#CUa!5l*32fk ze_TtfU9~2;IJQ;Cncrq&v@P`RhA*teYFXS%k@<5X`}-m~RY@;}RZ5a?QN`4dDNZG< zL@ru;HhVrJIon5?5bv`VX7XtBN@h_Ycc@d(?_Iv_J0t z()@LSQ+Lt078ok}fvI~EBHn|$+1)OB!RxQNf`=l^w@|LT;j&2)|AqBCi+P9ANA>EJP?rApTuLPY3Z3NdbJ)q4xr@? zEZ$FrFb6SI*xyskwlM3iMKdX)*{<>=YgbBoogl(QzUmfclW!*&QrA)2}bMPKnJtL0M!x zflZI)4EBAi)|;Fci%!L7YW!1|nyXU2Z=@f*`z8po7(hLh#*-@}zD6*SDx?#-raV|IQXyY_vupg4T<2?TquGrr#}Qa1pvmuK#M|XXav6k%2)b)5Tj0E?ZmO>1fVB;s|m9S zU7G)|8ty&p60lq&|Hl5J3_@>Uy-dxd!3Wt&QxmDihB&pJ+=U7}ey_msQ7yfwVAGvH zM5|$w&WVON`iQvT(dNqlLMq=#-DKlnS@uBFhpVQ2gtKtt+^DHC6%f*|JEJaH7 zy1sH+a@IOJAvS5*^$)k0A+`OVoQI-|t3cN(+!$#x@0+ZzpU z!bX*W>nV|Yo@bDTED8Iu?BpUpu&P=@IzWA_F%JVx?#;DMPZUt@c!}x+Hd)Sb#vPav zFLSJjS~Y?Y`eu7m*`-~N=@bNv-wN5twZ*((hs(^-`D+_ zRWU}7*iW{iD>J2rHnYL$?vSky?c^+82m)@N3pE<#Pq!o=))m9D5yUvNO8SI1X~JBs zje=9_JqXE>HO)|#H=~~glWYG+xCJ6qNqYsCy}zs`rGJBnS{fNjqHaPEkg=tWG@ts4 zCx29)n~sh-wo#;o{o_!bS@hw=_}|YgN#O6WO{G%Dkt}n0EeqZ2&2brn`?Pnf?z4vf z=dcylC;VwV0wjNL0A}J?A_m!BASR3v;7|`ufD9Xc^-e;o7&=y{Fd54Mce5`*=(2R< zH|_x4WJtT4>+hXSd^1NAh6agBde3ffIlPI zRc2t-e7d`+c)cS{O#G`5tAS*W=p#b;L%oUvhXJscl%S%<la7>YH|brIgo_*F^0zP~8feg_Y}Kwu~3+7!WVlKJGTtWPYfuUNme zBLG+0<1J9lH}!utmMK9!v(t+2Sy2$vq=94FfF9GCrtEmG9`vFKW@Hx7BEMXO7}n z_v7h<&VLHisKvKR8JYzWL`j1y^75rB3sW>Fh0Tg9=^b+H=4!g>SfhU4EjGLJ z(mk&DLH^YA$H(iz#^dRGpRxXJR;o%dHr71S%cR#{s6%Sd9X%IaMklK3=O=b?kr!mm{t)QXAL|hu^*IRPTtqQSCB6nRK$1FSP zmi|Ppf=xSy5WA-8zH+ZJVZt9r1}zu+B2Pw5s>t4xY5FaBabcfkQJdLJs$z%M;oNW& zMZUnac~WS}lRR)Gdbv}atNUA4fL>X|_jp#DS7xBfYd}k*eO2Fa>^Vz*Rc&mMF#CIl zaJdd^Us`XLxL-mrjO;%PzDFB^O8DX8^m*cAdYL%mb#Aul#+)|XLtm4t?T?e~aZrm& z9z(db5H2wI?j&z|(0gzoG|Z=Dpnp3k1qch!TbRi>H+4=qp#PSQ>Dt25G_4v2TE;86 zG=+aBcAXj8!x8J1>gO6z`U#n~cXXwC{I54~$x!c4*H=muKnLj~@Oy?&QA`^)i;HnBRRRn3R%`m`i*> zG*qDTynX$w!kYk!eSI~0?Ovn|LXurpJc!?a1C);Bj~wV_#-PXF+Jc-ox`v#;h^Jc4 z$NZ%Gu724!Sl@3Fmd?`biXea%>bAZ%ipO{hFV?IBFV8ztI6$BAsTV{FXI*v5W$q{( zUQR}8tR@|VHjCvGKsg!ZzqI~aWvpnp7uXp2{VOI4FfKl;`M-Aue3mX zB~_;p<=K;skpdfwBb z369c!n>j!!h$;tJc~nnJ^8bop@ZvCRlCp%7@R*EiVv4I8V_w51vGQK*OlYiPY0Z_x zWhj_7cP7dhqs4vOXUR#~G)GeiMUdNkmS~(&ue;d-KI|>ey@+GbbP*hK&#nc3RyJ+r z`l7MWkk6CAB8WKe<&D}Un2I6pV~Vxi`(kfpF|h!IOv`l)SLK_bPcD|fN@n#6@SSz` z1ZM~k>^s`n>3>k%pT<>-6NWU0ka^0#>LxaqW5`sF`+(ZwzrACBKa1@uizx4%G^n;T*H_#?z>ve znlDDn_H;oa^?Zcb!NH^p(MI7BG4rli2NULDe^CrsI9?4^1<{mSS~WGH z>Z<=?;YjoUCqsM9a{Y7yTWyBk-Jsd^Y03KKg5pHj0o{KKGe@x#a~z#*yX$WnzdUvW z6G$yS8nuoMl7XMzx+0>;WiBY$huwQv}T}vsR8Ex z6`+sB6wrWjtnBF2Qsyq_9&C7RCKqJBY8EZydI_xMHd4~&tl;vxwh2L_>*v>fnLWyy z5rY^17(nSa{vM%X0okwwHe}8PCfDuq0I$)_$FfjCLqQ#3j~(M_=Vdd`c9;9Z9}=!U zd(0;+uR;`5$QRpW&rmj#wS(*|%t{%Seu5}xOwI#aKSp$=M=Q3SUY&3Jth9sXnV1o* zKxZs_O5!fN^6D^_>t6-pTePTW`QrT*v=ifrUkQTAMzq;=P$&*e&Gk9UTij>ErF@ng zoMEQA3nR6==rotCG&}fiE|edTQ$=FUT7JIU4KZTc2;Yo{*yR|-*fVbz2OFX*z9DP~Mh5zDh=~UC_A*R5jI1@KP;yDnzo2Gqs3|qoso8b1J zR9rtH1&SFCP?2$DT%qb?G(9&qbTs)>cEHVAarq<$OJ7Ikds1`h$)JnMkjvEqqZ$qS0oP4FVrD}#eE4%xefJ0oX&&9m7 z7@7(}Kqu7=A;_4PN9N6B?}aYd*Zq~ek6Dv0s_CU z-}@#6nXY)cNT!}9pHK~9Hg*b$(Q9kD8Z1M>2mazbLq`3{?6q3FjuhS&G_=o-+QC|R zTzv`FT%9G+f#i{tG<;CBD^q<$QIa4}Gb)u4=f#--13GRHPW#F1Kgkjj@z$^&C^MUY z4z|gp%tCTu4z(@}117BxZUbc{ofaFGhND>c$u-?y<6`9TQ8Mp{y_@vXD$y(LZ^I?A zk&iL=qpc<18TNYXzo!{bkVi&Gxa{)n2CM96PTTz$GSf1Ws;?BXdu=q(VCXo}x0pPa z0Ai_e)3zT-nJhL?eMOR#zzkR<>FnPAGs&`C!<3V@v0EtL@0zqXDEd~w>YCmsU<%iq*M|9XX$YW zn`tyD$tJEu8dS%as5k@l7k6c&8QB$aMFRKJD`lg`C8Vi4$efO9yP7C8G@#r?KjEgf z$ueAMq{SQuGhv=ve8qkpR>kc#*$%EPbQnsM`5{rG=8J!C;hv4Tcfy> zgfxv zMe3ZHaV#YlrB_^dtCS7dA#bowiBt$^RHhCJIe|1F6UM#F90)hYYD@%dKN1);Iy=sX zNcRQ84Fk|_tw$0pJUl$Su3M@_`i;(S<2YtQI{KlUoXUWPARjvCJ_CE&Q<#^rQ#kmo z&=<8!L9$f%(7@vYx9cif0oLn9?*{^8ABu&|PnU z`+K)H(a7KH?&LYUcbUX1!dw<&zsuFost;o?Qa@haEZ;k9s+5(d6?e$U8BZoi>(=S| z&Hag;%xOiqIy|!=)+0~V@9cYXptfamt@eww>y{>M< zs*=%?udgP}90b|w68~v2gKe0PW+Of=V!U=_Dn+nuktesz6%bpKx;}kU{K$?ZNmMb} zSfmh**2Uxk!MDn1X>0M%W&DCasXw{FR!~~wQ`~6gFNrO?c%U9I$A~hv zSY;<{Hebs1w0wTI-%IR{9)3fo!gQ=wXA%^F^%3TU(5UD$4Jv8y-w%kaY_h!y7Mlq(eRIx0x@#y0yf!)pLg$3OQ>t!ui^`vXN`y)_16rbRv$Tk* z(YE5k;6aasB%j#UyA32kpACJ_)ic_WyPG{9rS!n#*UT+wp#z|GA-?XU(<$CoEJr|F z>kbZQ;G*MLOT6=ty9vqZQ6j>?&iSwxkbTyyA-ns-gZ41uyuhG{%6`BjW0^~U=nd|c zzTL#a`L@i%&W5(>U8sFr#pcw8C-j%GG+D&pHM6 zmJLPdin98GzbM=X%`JSA*H}L(Z>#hnT+v6$|6@{;&f@9;-gn}l>tC^FhT336^{CBNT1o2&&gOzow#NDv)2`sCMQpR;TaqI_Fth9q5T+n>RT zVLd8?>S6w~Fk?fnX^D(~0Nd2rKx~V}{jQ&-J(ZFfR9AaQF-I{+kaKAfZrTffs2QQd z)AFi(5%|fQpt$*MFR%6}ZXMvoL@mB~Uu4wYCbn`ZzFt8s=uvViUHSQ06`__!MhV}% zx!js(%`{j0t!a<@=+%UdnafE=r`*+j2QE4kzstSVYzNYzsy zepybtZKIsQzUxnuLbli=72~KOTdwM_3vA7Bx1^7+{@ZaQ1TK!P zGo|lotrBRLzut{8?Nz+)KrxK2Q+e@J40SDWh8Q*sR|hqlb{`AO?uaz(P$x>tSJPg( zsfX=Bx6hSku;!NLM|{q(U7yWh{}ReVVa#yl>Im12P9Bn%4PTsZ#-l9@pJHLQmeg5c zxMwOiRHAtKBcN2q(uDj%dBBppDPQ~y>BuvdUav(BkpmHXS$~qM%9Pa7gJ<9-rRlLKJ3fFvOf+8M#Da7 zwVk>>VM6}A$Q0+Y_#*t#;F93?MV_S}sb~3e+W-%U9;BJ1Q((j(5#vaa)O&1{9{B=q z{+kZ_s;V8l(Qi6a*}K zMIV2|{r2?6)9py)E4mMOVMl3?o^+gx(q^;7e7A)pb3g98JFOS3#=s+;IL7cA6$fd> zg;p83C)dRX;kF!1KJT?EGSt?|Q(0c9lHp6e&0+6U==%DHSbL80GQt@oY5Y$5YwM-u zX%g!u&XI`O*&jzb@(!kZ;p@Nhx-$t$PWJ0*k84JML94r!FOD2-mqlkkix!y~ih1fhR+V;w5ao^O4Q>l|J``KK1>5Ct@Hy{iL_hZWuza$dbX(8q>!JD!X^{Nra4mg| z_j)SWTNu_O_+tOUSQ_DPb=9vE26rn4nz{r3VGHg|MLm|Cvi=K3@`(sYPGM{nVh?^B z4#`vA7{#ExjLI2I%zn-{Ku3+3gV-EtYsB~16tYqFe<-ZaI>cF!dQQmV+hBh~ps~Al zRThbI!f&!cvO33)+vX+$(=C`}nZ+Kwu~g>7(uN9d1i$D{ttH(t(KpjBi{g*3#W~wi zpoNb%%AVwM%~ra2pb!KC{vz)CaZbccRNT^6w!5YTWxrW!;idY0`xF(lUFy!sG**#% zdc1iw#2Rn*8#b6UQ0Gh zbH8+ZqeM-Rs?^`bx7zF2#s^g_1M57l(>iOt))O=yNJkNbJ{_srfDVekVidoUq8v>o zE;g$diQVW8tLANRp)Z2d*9==7w78UaMj$f!G197C&4LEQ-^Fl1K*-!b>T^WBnFqW@ zYV_qb#o8TYnF(yDi?MrygKy`<`x@kd5nnrauwDO_$g6%)&MZGu96-y;z{i{r!!kJI z_B84bjqJDla{JIH;p_o7^UHRJg#d*GCl8dee%^%{QL3CIsw*4yoVD6&M8Fn`(~|AR zNTnJjc=gMeW(BC~RG+S8J%behB2i)8NqI_s8}s=af`m%Kijmu^lOYF4F@teNI4RW9 zb_*DQmae`NbQy;FtFlNXe*ma*&@iSYths`qaBrR#Sr+WTWUj!sdD?L`W^F3MN)?;G?So9 zOA8tQzCsCDj!Yvjf zY0&B^<9UmnCo=IHr*KFs^xS?3649TJy>%!Q!CE13dm2G>KKRJF??0cT6UQ;g!*#Ck~uhy%}OVVbb7rVa|!;76~o&1y+N(7P=Cs9OO zvhO?Vj z^i+YeiP1(?tex%WW+D?m-rLzVg7L?T3H^(VBJrNernLb}ULaEC@0?9DjY>Sz5}W&4 zZg~$gC)_F$a7o5~>xE%azTjg0vVXHAQwOwBjK?d)Z#vbnjg_nQG^SIyFwOYt)0z^X z+jw{OIke`d@a(6i;RmuP0MmN_2fQx|K`F;Fy<4XRJ`$}}K|d7V77wS3Xt!Oi;mvQ} z-5ewW($87qeFFW0vLb{#hv;ntcBoSrpcixS=WzC%8#PxDzQ6RyXOETu- zmu77(iQACilAl6YU4X9py5`aB54oqvHw?y)j~6c_W|1$acbSBZg^&S8)_*=$Z2sRY zfZwPqYgG~1i;ZjdkfgSI>k_u7Wi^scQEz6G)1+DhCH1ui7=p#u=Oo89qP5j= z9U1I-XTZXDRt+~I&mJ~D?(Ao}UjIgIiBNV2#rA9Vf`r-w5e_&ivXrlq4NCWc*BfrP z-#-n!vf@@}MQazxD7|>$mggTTHEc~2g-k{%9wG+2Vlob0CW)x4?gwf; z-ZZB!$5ajPFNb^yG$4DNs%Y{bIL<|2PwRd0Y{5IB(6+(6hzOV=^)#n}{$80dY1}W! z_Uq>2h=|O2VKbspPTkT{^=qp#`00rEW7j?zI&HZJgF(}kbK9W~Y|-~*2&Y8!?(&bi zj5ao1ciQ}KwOXSjUKzj768HMD(KPmM7=si7c1e=Lm){r!hu?&GjqQFSh3=7a=$YTV zOBaTt2cq>vX}s2ns_!s%j-JkEBYABmSah4+OGR%FfAW4@={V8SSaR?5cS9&wFr+lz z0z63vGVPA{EL);LD?!~b&keJ$$ZG$QL;1o}umh*=chZtoDA4#!NEk8L`1%SE(O9JS zN8i7)EWuwQQ?nq~QaJy&1n-wi{B0Xxs1Y+;T&IN){cSnOn;JE6b0!dWJjcU7lt9l= z`VUwnT2%e?)B2@Q%8P-N+TADFjgq+1xCTNU6F$D$)-i&-f9C7<;<)7e&D6JHuil0+ z?;^Pp4AVvK$VRi8J2OmnPIY-L=AK}F(+Qy{t@>MnlJ5KrHY0J+DhcPGq}my<+B++- z{(~c2!ESS3D@Vqz|3ZU58eVBzno{z_;^S2Al$niuX$t=s))r6})yq25Gm<}UC2+Ssd0}pk@y^pJj1a+fx}+FzwY};0I)vlbRSgM zTc4d)shcj%%GnBYp8pJjWVE7C!nR+<`HpY9oJ1dyS*ZW3CF9aXAyli7Yjb+!VHMGd zsvjkg{kerlc5rAl8uj_73v0hvAul-`S=cbgl&IzAV^?T8fm8gMt&YckuNf31Ljs+6 zitpwDqFRHQR^lp%}9I7gd8e7|Kut;#^S-?IQg8y%w*ers3p5!LGuD=Sg@H)vmiyrhk~sx5DM zp|XAR%ZFn)3-Rqa8H4clySLlNP#~qDn zeV51w82g6d{jLc$!I`VuTQLkz3R)32<)<;j@?kH${xLuM7KQ1m9^H8J@`UKiE7)d9 z)WoRDJrY4MzMQJL*6cU0HLi%O7YK)tvK7{;;=ZHt8(%MC3v83Y<+AMu%v3RD=_0w_ z(f<`<16l@bIB$CA6s`Yt_wnv@eIo0OCzPhu_Zw3tk8PP!2JcWwPT6zM#?oKwG)(^? zF~7Q;Uh-W1JNeG5wcC9bFS(r1^pwQQ4M|b9dvo4BP$G0k~QU6*@%l4EZbAr8o1Bnaq=}pm6*R(8nXAM~bvRq(U)q z3HyiBo3ZCD>~eY|oVv&J6qC>3lWg%yd9P}#T%H(Ho-gO)Nxa=4kwTThR4A~0L9VSw z3uqt$o6Jx4>}iCSsm&DkvtB6SNH5DR=w6lPS8*}hm!EvhXH3+hp1pK58PHbeIb8Z< z+EJX%6IQWIHFe3yxk!{$BZ)tev8aIidq^6etpy~F+`qQvl;1{6r2W)^h7rGbBk^g- zn|r;F+dwxbY4*{I?6+}=g2I5r-*-Z6?Yo(LR4VmGA0C8_Sz`o^btJ2gwz!3AO@87u zo(zjT#CV>6bOAJu0}oVJpln4C{frIx$&*#Dz4xN+?%Ed95u||9Dz%w{1MndJcxug1 zU~w`%0Aag+{hE8D4J^t$gJ$>f1}8Jg^a22pmEZPfW8^0Rp)$Z^t@jgjTq-H%cAwz^ zX}^|@q%8T%0)5WR#Pn zCeq0v41`Vyy47Fj*OgK+?(LF~%A-q`HG$?cdZw9!Qyk+v&enhQ*V`QL>#6jQyS0s| zTz_ZlYBU~Xh&&0J{jXkr$^SrtDZ)@$`_+=u?z{1~+T_PK-MKJ?@}e*g1VsHU(a`Vr z`b4wq4l=j}lk=H=vWnfG=K%05l ziqCdaj5Dija-E6k`lH4KNPh(k8>=`ULp_KNBR~QvE`K>jH<#_7md2K`oSI|?P3HVh zaTW0Y7FX^tylLj%&jzS2FLvFs587{S;HtG`eq@g}x-PysX|ZR;j4&0CZwdJbWDR~D zG9Hko_N0+NNM4tMZ9=T)aJzZvE^-a4T?@9N+WJU=^Li9h)TWeC_Did7dU(=e9%$8T0O{MGq6 z*I3i~0f+IsQc)d)tEt2!7o~ogudG%qdD5k87-E@%sEx78*v(U4PL|33kh`nr3Os}O z7OOXIThdj&yxX}Y3qPco3et#6+@ab1LX!iV@$Y@eV^TI2J(zWz+^!148#vt!8^qNF z_QV*xlWT4wj~N@4L(b8kZAHifYaW!sHQ9f}75Oj(FS@gDQ^idO?jQxq#qn`ffS*Hv~{>03h`{o z-9+4YS~`W>uDer1Yti9PjE8dNW6gm`OdP^WTDm7aYtIm{l9-i;nI#`TnQ?ZEu-adr z?+`Mii>kJ@?>+iLD-&3Py1EFrOA{G!i_R)mVc|JMj$W-z^0;~kr2WiB)+sdU!Qb-$ z4Tz-V=Y0#9ZGbp&oPE$yg#${g+rrSu|Y-w~Q{RpJ#_ z`svo|pLFLP3NUXuW1_fiw%5y@V-11GHenE(K7*mx9!IR6V{S1QZNq^>b>lG(OqZw8 z8D4UGGvuMEdyw?1&`6uce}$&HK(E4B4F<#AK9<+WA2>~}hC|SZ8tcg)?2US_9A8|a zaU2`ZO^wcWb{z)@4C4EC2AU5V;5(D0_8Uk;z%di$Tdbv*E8^IyR;CW+d^y+3dwds_ z-fY*+60=PTjjJb(BZW%eTf$PzICSgO@0RiIc^T=VobJUuik|!6!$}_zZit$GHw6A` zZzAVRD<;76)TcDDAkK*aXgAoqfJ_JGo>O6?w>`Kv6NQ#+RapX($$ms1g^0mSRn*8o z!y(3Ubj;xN*~-UN?!ah+Rz86~9Zxa6|2sb`6`+2}M<`R&hB>o($k5Ttn=Aig)vf2# zjY@kB4HnrXSYh{&5!zJrSxMpyT1tMIvzZoC>J#`YZpMifK-@M$4Md~$7b}sk%5`CE zan9n}l8;LUq|+Y__owkcep=w}YDGf1;h$r=O_DSf(j!AxFZ)oT)NVK<7oNQE)RHaC zK!Sp@2LPKs^CBGl_o#En}-)F@@+YdNi=ViZ(Z8|-COcUSE z#IFvt09g9*ZxxBhY_D5-!Z9^n5b70=-mv}!u57Pt*-e#o0qL7XxJa>9Dep6! zZ=t*<*fORs2#eV}(gB{cVl<6dNee#Zs|w%NV{FXPtU-kC{fWdq10ESW_pCaJFH1DD zUw9nr26$#wtb+D| zf|uCkCHvLTdz(>&dC6;&+IlQIMERWTaUxrjcP>$2!=jB#KBmqM0kdLt%2l4%SGFyz zz)N?8GNq&kt%WegcgWU%6`t`TnGc?f4r39(2yCCKxq4mWc0*vjSk>ryFeg)Caja>= z$ut@W3@SKM<&PVykGm6%=GWiJhZxe{ql4M-4RsGBAiC!uEoSS*JDzopl0dj=qiKy8;jLYBMD9Ibb;}z z_zQu@HxHLBKjO`|*wn~a1``ilxBt;FzU2cx!t#8g`#+WbM^V7etYxPh$8j^i0QNWyzT&W@A@qJG_!!XgGNTlx_!k2VquDfYA?wm&6E=%joHR@DQ=7> zZ;b8v&D?@G)0AS~$fbKLSELph2a1kYDT^C?(}T?w+W7v5^(WXsI?;&pYe(Ow>NyGK zzH>Coa(XPy5JaJIt#EMTM}NbM=0~@bVBD<+4f>x%D<+OWP;frm2>|jf4EdpO7A5w< zT>*d>#{(qeR4xYxZIDR?)=zv#wOv{(+*9uLLTuLy_HStIqf3!P|J_Nh(_Z(Qb=<|Z#w~$BDyhuzX zFR4yVO;;wR6gD|{Yt*jLA?pt38(bp>KW{e;xAY(6enzm^T%0WusNvvBTIR3YY}l!P z<7yKk3zX)1liU5pEyL1sm z6}UU+#<0yh(LQAX)0>33ZH<~};P$isFPgqOD601TdzY3*TDn`1W|0yB>Fx#z2|>D9 z(ua`l?(XhXx{>Z&8tI1j@cqpT|2hsc=bZb#u1{t;N^UuyZ!@(=F3vYG#L;*`G%*2?#q z#yLq|%>tq)xUpmVw|xTAD)^x}h!d^i;yQaJwXCDj0lM z2Oyc^mFoVQ)QgEeR-04PoDTQj1k&9!Uw=s@H;zVvns|f2-$$|3K8DUx0%ruG+MJ(PExgy;NiL?>CSH^FgTN!RZ2j zHf1b9+HXp9tP!~{#@Wt*es>Tc4di%WV}hsL5A=9y1Mv9N>!fNfN{k-BI6gXtiuleZ z1LX0aV1h;-5K56M|JI7TPSwVytiJ!$=SGmqj{Ys!paykMiGK5Z<0nPRIR;D=C;^q% zF8aRGf@G;o{x=>P3?Qmu7tDeH5*te;9{dGp5n1>RaNt}(Vt;MlCwvr?Z~xZ23y=^% z2u~Km zduwxeHuJ8Rk)43N8rRHwnVz_SWBAp7AEdV2CtnOW5Scz+ETcKBuT!GcYq( zog15&#K3V$$qQ8j2>}i>_=&Qf<&N_8Ta;#>#VppI-Nc$LLf|AG)V-r0fse8RYbKLrqHO~}E!~^3r&Hxi2bmI^w$$8nIF#SyjoSufUQs;N1KIM07@4$xTt0|1rnsh@p zPd}JEX(qVoJ1;fV>-%OdWY2mIymtU;5H|JtJ&Y1z(hP_56^k9zhhexn4)MeK*VANbr~ep77{TR>!C zV$Fj}Rk^`28{jh~nKv=8Me^+|(dy))rHT7f|m|a3C(H zG`c@s78{6%X0zr{>Gwgt2nuu=v9WJjdgL^d@!8yx@g~&;x{3OMDe5*; zP(Zo&KV&DTWF+VyFwdFwY!_P{yQwh8MJD*Pd&zRiCS?UL8`@eu3|@2 zH7$@n9Ec1-qD!q*&Z&&&+HNfg$aA@};{S^6NgXI0I_0&d1`a=JeP1M-QQf=XE5U z{U>R&D}cBMTFK=1)=;1ec`x&kAwP6?5*B6@{(U>6AY8w7mB6uV4ZDz_9Y4<^^1Djq z_i*NlgaM&=d%AiQdtr*Xi@Umv@sHyPtZ&_6j!hY;^JiqjKQuZrJyjCyWMcHs6d(+( zOD#5oA5}W742b`BRH?BgDxL?;T^hUm9N#%51b6f<+f9gwBTS1(rI=(Iep${0Fm2#9 z7Naqj!UriUnGy3?#euN1w*Akg=PLB`fyQuu9dr>WW3oO^2H6g#Mh1Ekh*8<@sAzXA zodrn4t6TGnPEv#GI`ct22*kC=MCChPY9uTxfm%Xc;PQcyM9Vlk4L&WvOs(DH3jMnn z4ssBgFJtJ>A5cQp*yroU&IMz;wlhh0Kmj7R@!$0jYL>+3 zkmS6cH{gCMXc13-)uW`w#}@M9p-d2STSgV50Vu?%S_<4B_O#V4J<+SZ8BN3Z)bB0Q z86F44_9YpmvdlPIjWmNFBX39{Eag_P#98Mn!SV?mjaVRp=bc!iZ`SLj*;|jPWd56P zZE)O_Aw`}pK^}32y2Pv5lGx`7yT0k*dzZBN$xjv4iQi5XorB|XR&7?ys(az2WsM?o)Quw|XVfx|(c+^|%vf5nN+*A81jw)|B6BnM~ z4?eKB-v^Uw1d$={*(jOOBk$d2_@3O1ywVEEk?Bj*|95A$zV4&|iSrefstS#OxDHP> zA%rY>OJY)pFg)odszipb1V+U zNUHPmIBe8&eBdmW3Fa7I6YVVg^ROA@R_|?C<0X8YXS1AK#@tcRi&HU!5#q6<{*YZm z#~w@4N|+#7lB3#FychVnb$j*`2*$dQM7wmIUVUo!G8;tOfeh*jju^21( z#AlR3?N;5p3@CN_x1MPAzEQn&|=is|K3 z27niX4e0MhAu{V2`WR&@as_0~EbUh+V2p{Zvy2jV7`=m?m^X5w~CW|8mH*@J3Ae@Ep3v0qA8N*Z$OB zz8EkWyrssUp{5_WX6i>e>Nu>W|68$4ab5Q^ZU!y?S2rOOoFUh1x=@pyKCf{AJYVE z*5Lh|0}*{lDV)*@J%LFA7pS{zy*3(C_70;V}f%`mgJy2JX&lzMux-Aefwc&RiGg+7|Z zdNwqPooE+~bJ;>9#5@VP`-4$!!IUMzG#dM(zuL*UYa31aAQy|{*HyO-2NB_?X^+E)AJR3ek7*(0S#_bHVKyRR?X3lxf$Zdldr$wmQqnPwxO0 z&m1>PhwJ+?|I%(rX+_MEUFXVTwOX-?w#EdN>L#=W8-`l-w(>8r)|;kbS@I(ui!st< z5#NsXr}Y4=6n}+ghaH<8FTmj(>HC=b@!_ZztnS~|*1I3?<{+%^`*d|JJd6rQ0dEJ8OJ0GbWn=U*8Fi0yB+csLEu9-q$)*v-7Ni7@k> z#t;X{UT^v96-{Tmxe6gp*KX?i<9oRX=A%PAC*T3@c{!b$y??!5^_G_n-or(cgYC|+ znEhd6`+>Ee>hCUg=H6Jqtl5cWP zS-1+vB*o5vJ1(!m3+iFFSSM{hp20@peHkrZ0ZPo8S1D8=V=`!KYA4+1%j?2}$`$qg zgRctkz|0za#l?r>m^h7l5LD-lC-S}S&K-{H=TbOPt6~#5;r2i;M#_jBe|{(f%4>9q z+`6}BV(~$L0nvCf;Kj+eTk9}y#79RY!&1553}gS=?T-le<+mtE>8(;kVv&e%ZpjwY z;a7x-*YS^aT<9h(-Oj*Z<2iI{qRO}zJsiDltEw_=A4}EC%jOE0 z-{xy*uC`~fXE}x~+JPTFTWdq@BADlE0fyEK$T;A%KBnum5`jb18 zMxEvFejw!Te@ctJ^M8?|3Sfww57##roqpc9{a6)=i#-IJ*%`m5L)fzmP7@x^zcH99 z#GnukL#5_F!Ay3E<=P9POW9NxhQT`ZH=NGeIr2x-WAF7-Q0#fS4ocM9AEy-k8i~~N zm{mCVP1h3(kWLu0--6T00k5g5M`yQd(sQ$@uxlp{^YPYDbo1*1?f3(&v>o(*wnCqU z%X|d;uL3XzvjYHGJn%ZDO5oZ@$QDa=<;gk6KT*{?Xtg*M%Vqpe0QW5lQwd{;57<64 zjaIf_r@4-$3HqWj(08>WrS4(+mASrOB)WotuE0QZE^#ErA2Z;~U+4SF{c`}6nQ!*r zA#4#pq}oaeTj z=!$bv((BnB%KsM$y;0huk%`Wi5fo*R-Eb5veCziGFqxQWe-H-DnTR?C#U5ktzG-!4 zI2}((-{0&PKRFr$x>}7bd`7Uan0(=nUZeud=?>dcG*FyckCj~^@?I4V$0*D&B97;f zci{OJzQHhF20vf^Fu`H^U$#n{)(6kX7a$oV0z7K7OuH6-Z(u&IpH(FfuH8E*)6jIb z%I#5AK`pt$SHgDIsWor!GYW<4FvAnJqFrfmscC`T)%V_ChDD!Gk8dGF6}I}!iq8b4 z@P0Sq_z@bqDh4RM*v)c2iP2JKupnJ>WdXs=(=BU0^;j!kK~s|Lnfz}5s<0zX{)D2+ zNRU<O2#1!n{xIDr^42 z%{B{DD%ua<42eEm3He_Pwp{&~b@gnHf3GidFjq?Be${+rGE}W`u~0Y%Vvko&;)=O9 z>58LiSvQ+I5h~z?{pt3Ukcfn>eCpKsK&WJ2|KIzZjfG!py>w*44r&eGm)>8fZ$v!& z1Wtf24-K|?R`D_$Dt}1Je*$I~?nh(Ke*i$!2IX8EZ9W!aaXW3*B=lP*0&nqMdUYgu z7AW11f}3pRlceR5BM%_yJzZRwPJs6+bJ!GvkgN$9_@SWoTden z_Lq%9q_ecyhfzR<@C6ou3Sayd=LRJXAIK1DKqUx|N#QAxO@sR^hdNuS+kY@uqV8Bf z%3R#=ZiAiW1Vr|d(f>pi{(4Y7G3LN|0J{%y?$c(;O!fY0)EL2xlbFPoBt~7QwZ&YR z6ED_cKTQX*?NdXdvCy$pwIKrinc8gII9z+i3~cpl`-eZXI3yD6JT^*(Rg9PQ^q0bD zeTT%}eR30r5fuS{9d>IE#W>DKZOHWkcmcNo;bJr?#4ZwYuVc_e**O z8h{sSeoe1dt12d)>4WmPt~W1x(G~(!jJW-Dz%u#zWQBcLvm!ycgqp~AJ&Rj8zAJkU zGe#2Q(1IJSQUBd5xbv?2$17g|to$5SDNsn2PG1(kKj$YuujGp0rAY}&DVi>B(a?8l zLwDhe&d+TEI<&6;SU-cV&h>we4Oqk~4&EPIj2tkdEi~)b0>U!|z|#?}>p>86uYMuB zQFPR zf9-*>!iWs9Dd3ohnWw14NYl9&gYRpTHqn zIoDP9!gRrgbA!m<58#x|t*xEX$_`G^pOF7$Lp7~;0%@KD!|a_lwtsFa0S!)pq*HhB z$*-yq(d7zS?N)JhW`KQh)EAq`X}JC%76mA`73R~Zsnnytz&RylEjK$RexlpLSJ0+K z#yrSV%MC7wn8tKYGZe!)!B7fG=J=K(#?0cZ(ipKS1++e`mSu#p?8V?T@zFprZ$N^s z$I;`R_d1dBIg*YS|BM}W@DtHEqE7R^=|C|V@OKONIbPWt#?srXAv0LwLNt#*x@tjeP&Y*lhIV) z-k<15FFsc?P;=8Lktei*2Z;rt;@5c<&lw{+x0G@!1FGSCl|QJQn}^Dr>fM<=kZe7b z;or13zvi%}L&hCk*tf_8Nne5Si1L&RX8;+yw*}ct8(sog3`0i(Xj5xc>1;~n`}5i9 z*Xi(hDNRl^!R#IP0NDZA^4i}MvFkKzx?1T<+|O5Cgi(BS`vSmW79LN!UOpGs$2!B) zio)-lK)(e+*vuLc7S6xx^_n?7Ms1_A4+|T8s|=a2)=2O+_Y$9QDbbG)z#l%E!p1Wd z0r4NM5xv?zv&Mg8E-Xdzs5tVo)~x+y>a{Hkig$@TEWW^1%`z$LYlys;M?us0=Z_TN z+)C#{-6@-oV+6$R(Y*{~GN-%BD)njpp<+a9O}C6qLI6ZY04A6&pHHLIz22u*S2x(7 zY0FZ3-)j9M0UcsTOhER|mHU6&n-1ui<;oS>)h0n8c@BI39*k-Lys-&JLc`h%_2`OI&XpYG zR;QyDIv=1pKdK!+7`iawO-cl^PXVyq{EGYA6zxKXcdJ^N)+97tio%;)yef)p{nS&^?i^Xf`*NBT>gDj6OFJogeN?v;#cmaXZn?(41nI93dF|p439#`0NR?)WfYR` zlx|UF4QLBS2ueOPU#HKfy=s;V_VNfTMJw2Jxf}7f)R{HgvWPc%ZKLB$P0R+T%#gDF zs_>+&3biKthx56+b}IO%%Cuhek*U-Sgmwx!e}b$5Vst;$Nuk-*dCV)o=V`GPq8Jq#t)GW zaq;c`{QhhMxiq1{RyVah=Mg#J8RJ^Ls^$YWjJA!$9yzTSeC1Ln?e=cuAVhacTgTnsOb4{Lfmy~#n^8mB_ zC;>BgBMsOR$I4S3odIU)zPf+*bbC;>WRFKRQ+pHcq)L;}h*hU%nZRyBN@KdC*vmaS8blLoJiwy*53C*KP9U z(W=DafpgvW^duuQyF1{*EZS(J1hNYBu;1QDVpB(%LL(}^W|EbnrU}N-K7Xk}-`CSR zPy@JY?3BM|(eOB5zPwGw^^}<{#-GAL97A$_Pg~F2bRmG8LM{9A^BX3r{WMmsOh(+q zjD&JeXPl{T`ET@xCQ-IE@zbq#F6N2c#?2AwWM0P1CkIK(D+S%`Y3${)2L-I((tg*h zfxJ!ozmQ4@C4ZB#OSAqaaHGTCB7elg>^A~w0N^4UXVll%RezacR$SLyx=ZjEjy75d+ioT}Kw5Rnnzf!^Zjz2h!oQAVXlmSIF8g*bg~V0P<4 z(E6Yr*iDasRv=m`+I*7psaD}Qr7D#X$dgs8G?*#NQV|S3{ULz#0C3ovRemL98p?Dt z5O_r5mpWzRtaMb;XcMOzj)}m-5ADdJ3+9QljZVobyng7GTfXC>&9U6%x((mC2Fw9{ zo>lyhDN2(#n^*dzgl7kXJ9J7~$}paM&EZ2a#z5fx@8a0PGVFM~F4JhL z5)QcYP5R~g00+6e+nI4Fc8~2dZ=ctq`f}>dQBQ3%_3ZxmdyrF#4d0JF1dS;din-(| zawJ7OB}l(Cp2VY>@#Oo$z=-91y0~D|e16cepC4yh+|pdqVYaQczXS6=0mSKlt!a3p z0@N^yvsVRg3xB0HFz2-{9#y%p1fuHce9r6yG#c>che?a|(;^fVgS4CR1|##BMFgpX zz8#M#=o$}$4=|C9+8zv5n1b$&_I|HWAIbeI3w^%veVH?Y^4cyY)vE)_ zubx$5N*eiJ$Al&9uU?(vE?~76d$rWOvMWvpf0;&EF)4&uf%FzW!P0!$#Kk~@13|tO zr&vAD<9ZnKGLX&5X*QJhLi%M$7Rn3sC&prlJWhx*uXX~Kob3>Xj3{7VBzD`f9cEEN z?|%UrpmzXHl0&u(7&m1azpu!Fp?<@_-T2eV`Qwm45xjgF|0GgIrpEzOY3WNAW7OLQ zjWkmz1RXExq!~ueBJ%G|gD&Pob=BVIJU}o_jU(_vGwgQsS3sbAwU{n+dy=9(8~xMk zSBLGtSJOlZ*GxRIaSuZmO zL4m=E=^b==QfjQ)~>$+XUFWb6?YK}@@ z@>rj7eU_iNirw#>{6Tcl><=|$cR3op9Yvt*lby~^*X6Hlj-O2YyA@XvXk-LC`mYY$ zKA8eeX)FABeK1wNO(M*zEa?%+2@+dIldB^+G)CL_;vMYzXzu~oHu&q!_x}C?Lx`=> z?wRgIZ4%(}o6!h{E_@#fui}wx^mvqXxUEfQy`Gm03%t!UhR-cu@NXeoo!(W?*FX{) zQ!WMU{$|~~Gxoba=Q1ACQ9fmhuStTO$L7EM7>arS$> zJ;;uyO@$Z;!v1(chv;-*fR|-Dr_k;KZgfZog^mt5&)wYm`P=~iy~3xBW1S$QcYHSX z-MfVfrRrN7xiwOa507Ed1s{Jq9|H01s+I+{{uPsiM_Ug_FtXVc#wBq6xz|X&V7tfB zV!Kp?!-y6_Q$#k1pw+zGMiqaU zDgaq}WwBd*4pr?fkaSX1VI|^zpGJF7#*bSOl=J?WheN4(8OUHv4god#_bVLSrP(XQ zTx#>Rd={?v$LzDzH<#JE9<)Iqazq@{t`e4>wNq^78?`a`-nlMCS>RysO}7%tylgwuq0Azhf*}H~8!V6GFEks!XSJ=Ft>0}SO3Ndp&7zgVUp>hGE z!{5Vw(dnjnRhiH@x(7HE??z zcTGT7i8~M&Eq4~|zX}+TUPXJv9KS`Wv);hw07;ab(0^_=D=jk-!=mg_(`2s8#xi1B z!Dkt&6FA6wZie9~US>)Lg&kK9#A!n?ysTbIu2@k9HTi(KPeE!WY7YgEo!3I$#rk_Y zHS%m2N;+cM`8n4&Go|X$HK_W#szo$uD!?t+Q%t6(-y;ZM_HRzFM~fE)L>c&_Gs{aj z$3Ncq16ZjGrgDAQ?&v#Y1SfuK4(bGDAP<(8BoEFialY<{xH@II6SxU}xyItuN4vo* zzdPlRx&W)By6$TgLWvD=xgU_|V4`5qj@;{iw%Te(Xp=jXz?9BxxTta_q&R=*^JrOG5pKQp^pFvL71I#F5MeH~OC7((BIktux5cpkA@?%5 zEs%LTekSP$g+_}L6H~sGQ?fLmj}Z3mu**4?^yK^IM3p7}On}VRTUyy^Tf)mYyyDc$ z(d~hn`oXsg-&$6Y?WBtN`m7Nd5x&{zO1;HNn$1^Qy_=;_BT8Zn=4Z=r9ryFH!x50o zBm-^>ZtJN5)*0sFb^_b*7V`cp`J%&W_9s8P&9?AaQ*NazYDxwhp?174VuikI1_XwG zZz4+WDXD@E(H@Dv5#r75yy>pa3P0hKmJ-9R@j9LBj zcb`wd)eVce2Ldz}X>mNdu^3IE%a(!WqhW-jG(1DFcxyqtxTMfK(!azhqj)v>4o{8) zyuVnq=>G?`Bd|4|^aN00wH9TC6Mg7`rh(y+2BN6M9jxPP%9lZWjDNB|a{*~&BsK^s z#Q+anXEh@ON`-!v*$3$WF=k>+j4)6E5YRcOF;(kPp;4}LUg`TJtHcDiclLGy>zKn~ z`%AYHGx$qIF+diWdH8f~AI5^;q zZOGo;UmfDB<)mP4P%g63(Mf1A_>f2Zc>}*kBns=qgaisZb-7N4lnXq*>A^g-@b_{& zdxmpr>TN4U`(St`x8L<=nJx_;SzOjS74psi8qmc#l_Nv9{DzbWyGVxC3E`tH+BNBe zp0mr7OFaRZOn>LNDzcV|zkI@b1!bu>;Qa15^enCn)tIozIDF zj%o6NbQ)I5Wfxps@oncl)nvUYyVfyQ2f9EJrkZg`J(!7{@&nPy%yNYv2I# zX?tl2^GO$?b-z-0;QNN-TNM#5g!RRlQalu@x~b`H%sp0L#}MWr(vLAL--?I7ZX6CO z`G=fnB=0z=*QbdMmS$o%!?? zDE25ov{%4ab96w(j(8}*1!{yH|01O5nUMB zSKPq=i6GWIJHi(%xrMb^$_*W({Jt#3{!4I#NQa4qMb^R5k&cT?wUd{zpJ?A#ak zvvCrA>q&MilH*y$UM{wS5Qe&hGvazvQ zWhNyNE!2IB4Xz##Cst9bftrGkuLu2a;E?pHWxuI_P8_ z^;?T-cs$;LJ+>2+zT~^y-M)&7Jm}0%c#vOwM@WX;?3scVptoEYo3KUeIvqjwkn>qG zxD*$<5#-fgbeO-;B9tD1bz+0*zZGEoPS5IV1ulBlR!!iYEvpghdO6}f+C=u&@z9Lb zLZ%}Trk%x?)K$GOjEDtI^FN>NdJm$vD*4QWwo+F& znX<&~laGDYCzJ({ftEZaNfWO$T82^hyx7|bp&o2S3!n;$Qk8N`oyR<)EWl)VK$#$t z64_N0wuQAer}Uq0_Q9twfjbpQb(86;&;KTIQ4{0z853Ps4N5T|D_wmH9b15JJy7Po zURl%=GN!b+X>G7Tjc9jpgaz|F_E?jeJFyjCIcn&?mn~bzz;#rZYGW3y7!EVTEC>WX zmHsTI=A0Q*g9b{j>dtR4kOZ$LV-th_q?^zoDx&Haq12Z+=w+)5S28$QRII>VdT(2LG)0ct9OU05gT{S<|VKzQ+a%wJA~ zqOd>V7!|B602yeg+<|07oWBk}>6I4yF=Nhz^C#|-LcCY3>X+spWJu~%p9iONP$TSb zFHS?MV)3u(=5dko4dDy|W0O#naQt(o#^RY7$#`B$`c>0I4&NZ86PY-Y?(Wwu*o1Fz zS^9E|vSfL}(b{bF6_{^RR2Y}>vww&BZ*xPH)K-j%5vGbzA*hG6Z72NOJor^{(kr@M zhEU9zf{K+QRnaipo2kz%pH}HM4bVU|1l6p>4;E+nffQbAFi)I zK!F_CU)=uNH`(I0>zBow`$d&(wmON>)?fss^{0!`ni^koX{Y;VO{8w*Y*I;!@piE+mq#Hm)#NKhnY$rvsbGNz-(CD zJs0K$5Wd%|s<)n7Y;(V`0aU60!!F#o0gNcefZxF7`O&?SS1N)ufkBa+MXe|bpGoDn zOakk^i|uM#Gmp*u1S$cmB`L0U6UF4@Brkw)KRjNH|ALIC3%c${37)o1lLG_Fi>sVm zIKXiZ03p&w05(?xEGhFLxC}?PXIrZgX#$QqesG9o_8UDuPk=1_{_5fC&;n59)sTE| z+E8hKwW$E6DZ&QD1|YS*GaBHAO-qFVMR#D`HkAIJSu(mJPo zl~iC;D%Y;X-Hze9=G_SVsUyCf2G0Rc=3{C54X}m#$w;7~tJC1#SLoXD zZq~8k>z2ThJ4fH*+^}u>yX^*>g$_?mRVx5N=3B6PzKNVI7WZsDPVjpc-W|vg%Ae79 zF{tayjb%_=2#qhbT{w?#08*9&i_St$Ys`kt5qStc6sAGEhh8fOEyg8_F@nmqs&h1o zO%Sc8OM+%9)O&#y!&`fW_!#ZpW4%i(mCMdAo>jT0M6*2SL;dfYzKa>_xuqd>Ynz)B zA&qt&b!(;02z5roF`~p;743SD@~2(bah=SJ6`P4sK5gZd>7#GAdS-OGLEdlJqEyhz zj6Y7cHuyXt9RkT8^){=t`Ra6sZKgVkV}@1p&(}R+!U+tA+y4bT+#H(;wYt^=ETlF1 z<8uq&X4T=z+=}P*;$^a9nSHju&Qg4%hqIOb%vtQ2=gxt1gTcd3pn_L-x(}nW)ia8K zEQ80jqp~t5XH2{N-OO=9H+;GD7LrDVP4eeb!#cO*lNTEjKI59oAe}~=?>DPFY7f0| z9a4hcyJg;&XZESW))B``zFi(phc*ED*Qmjks_jx<8l&p-a^%SSeG^Y)M^nUianA7N z7A9+;7`7{ad?rO+1-#<79&AO4Pbcoj(uST}`l%4_g36T)wUc7V$?Ce6y>= z*=pmPm3-5o`!y^IVH3a<+XzJQ&4+6{mglTSn#+^uo|3P4$&Zkym@c4k@%li#@(y%Q z4@WSM7qtK<7c4Isg)fxEjvUXh=I`KsIvMvrdTXW1F*8`^-;U$1Zt({F!;R=%$)y5$-ECaPy}5#4&5p2hNBgGg zmrOoGmsH{2zVOs->y3LW3r{l5I!hdYpIo{o6IAavU+Nm~8=b9m#X4Nf&#lZ{n5Ia? zGJ=f>9l#*EZCak^3y$U9OS3iJstb(?JEMtnsDt1C)Sn2u95t~S)-Os%659b1kt-LV z2~FbgUy6o~u)khQ|KZnK_0qX{hw{TiOYc<$=M^VYipl`z#~S?7uRqysx6H3(uLz<$ z{dl~KW9XLOAH84=uKul61`Zdq)W*Wp#bsUVzA9Q9a0c>GtH&s$ai#p7s@v>T%h5us zqGy9Tuh;KH7d2tz-MyvYWgBO!Ik~BPA_|{}&hdMqAjQM|!i*{fvZedls65mdH|%4* z7MpyGxeJ%0+c(yawt@?M=GQ&^!$L`qqueAs9%(#QO5-iAhb93?m$DZX9}GBs$_;8~ z`}1{!(Juv9M%nQSd-jNGwM%ntj>j%s{%M7;Oi^Xdux9qwNZe9yrM-RTsuK;a7md?< zs@2S_c5XE}nlDD<%@a2$)u8vv;5xzxv(y?vtc8CUP{1l;ZMvIY>o`d$CvLCBS%jEG z?Xc6-4dEFwgJ0UNH$kku>*TU@>@_z7p{4OVcAHm*)ck5SWz}K-c=)U4PtDK6U+DIB zJ@k3YaD0}gL~u?j-#g_T=}CCH2o;6z@&W{aE{2EGv0_?)f~7prznQhd7h2 zJM4$q`2u#q#59*wo23TZ=Vs5F@5mtV5cq5F)o=paq1as$?A)#b-1W2L^Puv(8#gF5 zD4Ks4I7SUzQ+aLQmqxIRSUlR<++=p1eP?%BX#Coy&(J#}71!@YI><}_+ zVSba8mcBgq@8F!K`i7Vg_o61Mfx6v?o8d}Kdn@;G+Wr)Q?M7B6lEANf0>L<#jsHEu`tr1b+)N0il5ab*#pwDm>+%44qG4qSuh9dwJ$P*al zZ>6FlauRYsLZ+bW8&(?VpQGjr1awHr^|njbb-K7+b>FW8jv3_#8(|t1yNcZYWb zJs%|($%4|=4`>iMu#fjA+r!p!*9|JQn){Y6_F;xi?JdPZH*21W_dA6_FCqPKZBkUC zFu~qHQ2MD&bjn%QCvk@7F)K*aA|nHa(K^2L z185a(7`9fI2^znsZ>5p$1Wr{#+vj^nOd`EHVcufMzQs=|0~R#yvV`dto*~;`CA)P! zcd?0C_T`JD1~-dZ>)Q)xymq#6wyS8O{WeBRZ5joZ4cJ+Zw%?`PX1HraQ6{8m#LX|Q zKw@1c=Rg$mDgdARWa(Nt5C4H=6}!~BNR z^KOQ3W*mu1l;P{dU{R#idw@(BEv*aWWt%;JwJ zm|!HmapL)L8BIeQ8i<`0>wfAW1BL)o@?VH$C47BfL}tE{tn)Vzy3KH_^HW zLU1q}zAd%nUmdUXc7HwtJB@wIbdV_vdGWYYPo+0Pw(bV914dh%kH7N#9(%j+{W`t% z=BV}#jc{rH2d+)xd>(U{{EvBWSKU$q`F0Fx@LrYXa;se@yz#td!e6cFEFb+fJ1IDK z&@j;U+|{R;M5~e5J0|JyU@K0l=Uv<@eM|Qi@M}o3+@0?_rs6XKApzsW$A1)2)}6Gh zw-ZdTtyqIg?oAep8SU}pAYx}vRYzb;^UV8Cnapa8r>qdr3Jsc^3^W1cd=~D6*E<&J zd)xFv4yA~Nn@EOuH;8gg|5^N?UnX~aX;Y6YuE27|FiwZPb9XV>;JoCL%0y58_?80< zznv}5ppe#ro^|mL{sux+WD?}C29JL{>77B{g>Aj-WpcJZRoyOh5leCFOr04r;A3#w zc_H`u;br(^XI-STsa!18!|m<;XrN(WpMQfmHpV1s(BS4WoXMcenY~)P@9y^9(yy)- zn(+PkV`kj=iQc6I3%g5j+r~wj3z9-%iqW`$183iAs>7nj_g@XB?*NoefK`dZkhfHa zw{>Mf!l-FVfUQ5i_giwVsWHp+G91()f-%A2z$U!bG@gZCJy!1dHc$OPAwEe1)Z1S?c-o*~m~(?(_>kLnB&OX z%Auf+2mk?U95n@Rk|I<2wZ#fcVp1*NQ>r)@Ix%piigMfLeb2y!`|w2sM~*7@alO0O zfUZW1j`jt4N$IO+z~PxR6s>^DpLcTc#{_vz0S(vQc$zZymwr;5y*ElUunEHmFp;*L zcQ%HeNcQ1p11^EipXiXmY7I9VOTRd6%3P3>QK9Hq@Q?TTLDdH%`&@9Ah7)e7!~Jy7 z<+ES%;VT0+>9c2eAXvC5#}AH^533&%DYFM|@cQ)n456DNh@dTEJ^>`8u-l3)h652O z5=sPxpi7UL>n+(G87S9Bey0Wm)W0yYC? zf>_0JK(Pi#$L*S23=HD}RYIM@xYpJayMMic(ILgvtFEvDyex4HD8Ck(H#NuD@*Nu4 z1b7SY^!Hp0#b&ekIf6?p>dw$T1lG#J@YMKvIOrhLir-JMRLXv`2urd^nU{ZhkU=fJ z&XJii7_lsT_ig`-APS{1mWifu?;X^%0Li_8yDQ)_OEU&D! z;dFjSPWVgiu12Qs*>vHfn}PzW=uc;yH|S-^#O#mh-;h@44H* z=^=Z8S7f#UU`7Gp6bOjJn=*hpZkqO+9T}~J>g&izq9<3H%fAcJu8FH0gcHR$HXrrX z=ueM~kk>G_>wXybp}Bsrw4*nr8XxpE@LhTUB12golIJ6vM2;jFfuqRl-eoRRW~bY()cbCNL_~BB>KKdh=PP$R z3f`9;E|KdW0^f5YDX^dWPi-|od!VDu=L>R&N_ZFgRm}`GkPXL=YAlls35SSwz2#$!fXPk0kGwIz&hiqyjUu5ji6fdtd?= z%Pcw`>u%xYD>$~9;}BE9n|^vViwbhRwQ|HfN7??5vvnTtSs0Y`v_7HHn)?|6>2%z< zwJNubBPM>pRib^O#=JOaes0U#6uAKb$9P2$0Yoz zc}hU~&eH?rw7kJ6wP$VDW=-Msn9LV20{b4rxnG8^O`4?1j1as#qH9Fc`M4NRiNGGb z3eh4Sr2E*KaM6q@hDlnt)NmT}aaLoTTbTI`zdsxxOuO#-R9~X5r+|iRgDGGX;C}=b z(=ECuWYsw`yxE(TaA0u;Pz-gGrv)PtAg$T?&;@zqZxk&&xEiQA)CoE_d+OMfTdwzv z^oBg5NxR!RXJJ4o(%S0kzlOYxK`L4oP3JAwoi7;G)t3R9Ny$nI6SVveJb5oiv>oHw zIwu}JL(%OO#SmTJdbj|K$ybuEG+(h$BsGzcJ5+>*a4+1LP-l%|}i&aF_@+R=tlICe? zZ5cJ!nCa;hIPJ&0iSVnwkc+Dgz^)T!{MWP5EA?1gmLwsY7=q}`IZmsFwJy8;pQY=Y ztMVUPNaTM5Lbkj70up4wCt)dEk)#4H(kDMw{UtEh5w;gPY)QZ$!#tnVnbl+Dr}!i| z5cWO`|6qC%;sI)yOK=(b{o^gh(@({|?tatyqFZmdTSn{c>DqZj_GV0e$U+Z_8UAsA zS?D3LGc4My0l7c(c@j4!+UnFAVHKHn{uzk3hg%s<;jYVkx$Gz3-cA06mDLMD<0YZ3 z(3(@u@H(PO6b`NYuIQ zr9XoFrX}j&6XrWn0aJt>-{&>-Q6H9J+w$S zNDGS6-Q5j>(k0y~U1#&2_k1{ifMMpo_u6Y+>x%Vj;a7TH0%&x2c5m&;lWO;;7f?&n z8)ZubbBHHC`Jo2-D*&IrsI_6;*eBh66c06#wcn+-u=+r2*kss4~|o<7a~ zoH-q!NE|&0m>9!k!TMIMR4K#k9j&A2pe#C5_2r@-lr1q3Pc8C^8Fq*Ux(DNyO|}EP zW@L(<=Dqrwv~u9VOR|at^ohXak*i2u@{WTc|DCukXVM6}=^u{YdLYO<@i%o1<~sx# zX5g)kGo}9q03xj4asOkix9z956}o?hur-n5h&> z-RePRuNc_+Oqq+n)(G=k%mqB%)u#Fmz?jM&rTvQbs1iQlhh%qg|X^am{? zngZG(g*EFnnLSX|!PSuX!p{`F2)!nc-PKN5$Ln$NC#Qv1vJSt6dGhlYBb1tNI&~IW zfb{IUi@I;aS}bNC!{T+6;NK$)n)e2{#VzmYQ?-SPE+@jq(8Ep_CswY9?n4#rw@QTT zTq=Dt~+TTaW)T_AGe(DWKUrkB-r2{5a^R{boHrEX~%RW($pxa{jCw!mA*31mG+ z<*Mom7XjU(uP6IGM-6;lm!=r(7B_t(Gq)C%A=d^HiNbhq9`%~X`8G<2s%JP+G zq8&0hn)S*wtncXNoFwAGtQv_DEMKPE+P6*6kpX=$ZbTAO#BC_*^FbuY$>U*0LEj`8 z1SqZV){wdKWpiA4g>h4Xz+~5%|{w*NNYzxQ)wI9!7psjX&Q??c2<0%nj=9jK479AbE3BvMTx@SJkn)q{LM;i%Vib0fD&wMH~K2dk8owjfLzRb_d0I4q9lVg2zv zi5!<>U?WmWT(>EaZk_43D*|HdOAJ7LJfZ#j(&s9PJFwE^c0?E(b3=drtvF~j_&-Yh zj0Al|%!2;DG(u-ZjwSLo;JSzI#kh#jgjhpgvIHGiq!}5rANy*_FPz_Dk!x998ll`` zDSt9t0+|4}@NZ_=JnAP-Of*?w90H=mo25fnYB*oE)aBSnwcJ6c(mXII044r}A0ndw z^lMizE^;(1?5aP@2@kjj;v<`g0nk*3KGDGf+00tisMH(+!Y0kZ;6ms8FaWrX9p3wEus&}G{b5#Skmn9M=8%_&Qv63E(6!e4S;TH18|-O0 znx4u47Lgk+S#nVsVKYrt%tj--tJ2qI{6$%EKJs$Y-H4F>coxFn&fwv7cJEuXEpe6Q`11b z6;ZBx*|0ipyHQv0QA$MVH0TPn26aO z?dRQ;&-3%4KO%w<6gVc=>oN4(hKlXK%V4&RmqRTK7;0%BJA3|O}{X4p&ULY}wJ`ImBh8WX~vHtKuUcf~5LIFvGyiwKo-!raP z+#R{tplRbu+}$gB)~&H^k!s@yT_$mA9pML$*&|l~@WTc^)?xCy#X>C{yOPzD-@CjH zBMlK8@fs>>_*uw{yMJ1TE$pSGR%BydI2c7!F_C@B%1&Qww(<-_yzpWH<$fQRjZr)C ztc7J6pV5leeE6$<1Ed+B+pcpjd}Y)4vA+Ka&w5}LOeKeQyPu`p8vs1uEKwxcFLY@l zhzArvlo0DkDBHcNlrMr00Xru3j^tI~%2q>_ahhuyZM)UQZ;4E0X7=do9|uDa0#ny8 z>x<%F>kexhPQLfWtS5BF>3{5|?^@tAarS;ervoosDEBPIs3+QUf?px^VQf*)*T9YC z=ovN34UWOxlV7Mo#Gps>63N_C>PyT=1HHMcR-em>Or!DY$KVB_fWM|-l5F=5D+^?j zyNg|mbL1B^``K_qV0*$>PFM*b-t#74{4^)yS;WoPv>>-l29x)1;4k5dT<>0wg?I8# zp7BC=3ZnU^Ai3S%=(}Ir+fNdZ>QQyo<4hn*(p*A6?TW6wiKyY>>)J*)O|SQp^K{#R z>p>f2LAjt0a7EA2YKUwUkMiIZR3B^_(#cjo80W3a27r5%aes;ovj14Lw5R=0&&Qy zL0mi%5bTj`abnZ~=O}Un1@kN56Af?Mt)7bRB!>4<%?FHY>im>*X8 zXt4A%VjBXjv=7+z)hflMQH6OYu1po`I_NB|Vz;6_IGvD2)m7f(^6<|T5IDFYPu96) ztON#K_30gpR)l#q_}=hH#DI^$LNHdGV@bDq2fg|l*irk!3~A-vM2NG2BXG~*WCYaKeIkBnSY;gS8K1B zG^*`Bwzb2=mc9UaYr9c%^fqZ#{Z%1R!hr@b*1gtU?McTF@Ohi$ut-T4Fo|sBl$1=b zt4l8?YshpjUeocX27qB3zf8BG%!oLzg+!AJDyL^v*Sr(AetKAWVxOOzpUGwT%OH&r zLM%4`Db^~lTX1Y11yo_XN+K1(1)d#@d37Nx0ak%>h%qqBK6~>6xxA$BWW#-iW*QZtj_mSn|tW6m~ zul)$=ZA&_=4Fi=a=;^nIXCReIc%c&MQ=TldK9LA!D0wbrEHDNngWvJL7dH^`!0jjs z6tpZ0(%`im^|0b`CouQ3o^73mcamflB?0oMz91(;#LGJ#(8_BOOHN93z2_n#Em*#?YN2(9`1^Nn2)oAjcW|qBY zzzQ{3HrzqhHOVe=Qi&E#k^o6NUNi&E*mEBM^ZTy@e_pEqvs>tCm%20t{jcZQO*$3r z2hxFli+yA4-x11SluJ(<&!}|G29YIdSa}WNbj1j$ zCJ^h3#zM{!Z`BFlsPjp)&$H)9nmpq-im#t_0mfu6d82kNMh~3; zy9xMh>EB(kmfMt0D%gc6k6jC@kKYM;3xG8jeP&dx+=|#xnCIgt5M#!zGe8s-Mw4r= zN$)CvEIQr)l+gKzX{g1-S+7cYj1R8exNqk!2%yB-!>gOuEKOGM^Hw$uo zG35B{4;8By1tTPF1-YDNg4X0X;Nh+yj{75=fa#9{Q~Q`;5yvphi<}bF30gTS!UX!+ zYCgx`9dk{LZ`1dVMfBwCwpUTFdDAsrc9Hbv!RLbUaLIHcismuhOk+DhPC zwuvu5e>-cFAo?8yUAqMhlX?bKIiC|-5g}DzG?aZekA*F}<@Z&JVAmiU_cR5yBfU3^ z=CWRWTU7k`&F`hV^P=F33}cMNHnY@Y*3!Vn-qDdO*dWaNr7u$7g(+3`W0 zKs$QuRmj1vWOcZ2Wtv!Ivv5I4Rhw=(#i!aP% zW5XvkXD%HJ9`}&Xmy9)rEbH%@x9f+#wV74E^&2(8(&>Z%%LdlP-U=LNc3g4{28Cx6j0DPN6&NOunsKS>97m49lzJP7OSSIhs6XVo8q`0^*SQcA# za(y;_|A8p04B}}!cC|`vHTG#>Vz+1JXH2yeM9BMp6G>hd`gJON=BR)Fw)5+(}7gGbl5j-RJoErsHy#T6}k0$-^QQ1sVOHLGz`Y|C*~Ogs#zjdqNKx zvA3CS1Rd>D$+VBuAerQNyJ3FBF3UGJO`#}Nhb&)VF|0M@EZ*x7+@lc3kV9-H|9n2$ z&*$^N7WWP$;!fD(t(u#3KP01~Fqmh5eSdSN&_$aP!6*b9{Dkns%B97`1GzN~I2&rl zxc2$dW1)?8Yfc%0OCSAwgcY&ZB^Ws1g|^8WDoplG9 z$#3BWKa96c#G;`)xHN1fUZEgbS1e4C5@ghx?UDE?%~GA>{ju}LuvJ>)aoU8Qm({6_ z2&IRA9Ka26V9R`gzz)2|xRp}27!sVy@(MHNzRI~%Z??oTQpA6~B`&|)l7$P0>5K@U z8y|W7nk$@F@IH@_rN-s*Zg`u*hjpedi6>NMbydb89o~x%**P)n7CXJoI7WS41=#k^ zc6a+Oq3kGygln;ZBD`QbR%)bfjKh}DAsd2K5qrUnE%4ZennFpC6fHbPpX%&gh3mUA zMmTJ1?dO!$0yVTNFRKDy{A~4MtO;$$rf}M)y!EE8FOFfk?%87)r8e4qZ&tuVX#h|3 z2)qF?KgpR{QO1LZ4|#26KkQ5TF8ONOjfVF;cFwm}O~=Z!(*`T6u_srpSFymuZ!)~T zw2~n7@L$d5AIA4k?`OU-{gO^c{A$Z)Yq}qxKdI1x8{Fm;$R*AcE5|ZV{I(pV9WSr4 zuFx8d5L`yFS*r*Ecq>;D{wLZ0SaP-u=&y~ZO=1O2CI!y|kLuSP)L-I4qk5XNKfZFw}-w2_68Hns~@_mBQW_ie6>qR zs8uL&9P&%B$N_99iQ~|}sVRXt{N}|3cS+hHyIkGPIos-UE+-{@oTSsW7}HFQ*7`@^ zq6`n&g-^m(_6ymhq9l|GdIng{h1>it=Ix!INg6v*YDev`iZ>Ek7Cj%Q{`eP z#9F`xUK(IFwzqbZ_c;xe7x@t>jC-vx0o9xhfkQZ*C8MgJ|bDsK%z`a4gXm(lBuNj82EB}h`pB**7*h3dM9`343OsSzHC+j=Qi zJ)$vzi92?SmC^G-s~ZJtCm^Eq?-Gv0slb0|I5ZKMKGxHDA7a@4J?#8izXVXsS!>}0 zw1lOA3V3vUl6mZSb3G6yE#Az?@O(#uz&r$6k|c{l=s?#)yo zs$I`pb4BWcYRxso$(^~@zltjf6GC=EIYvq5B z1Y?#dO9pv4F4c7}15AxTw=Ew6|NHKK$^+C-D7d&_{|>+~u;Or{E_%sx{1E#nih>#q zBBNON_a>m#-t4yo#0x>`b8%qHU!>vQVNDN*NIPn{PTi+&L#z^O`_M`QLD5U@{SF)pNfcyX z2bLM0?Fvc1FZ@AKN*x2-Q@W=c5*(ad8vV8>v`P{}Vgb5+og$@oqC2Qm%yP#{c zB`i^77hVt&U4P^s?-hw#w~%rj{Vy^^`fm}~@H3kic8~uSF|a3WrVHZ5*>Y)eZQwkW zlg9bLHqWO7nG8du&dF}z_;m_Dgj_jGV3+|?xs*)m=9t1pvr1k@q62vLJ5XPF*g5z` zA_5IWG4wf6;u=C9u>|WHz0}ZTER8HPp!zqM=lG1Q&jAJZ2vv1T@`pKd(2R z@9@ua4W=Sy%AUc0x=xDGuaapRaC0Zw%6ZtEc776kWhefA&j)068{Knm^mwTP!$V3N z`3yk)(W;)`&>5e?GRbW=mQjnaC8aU+EuV)1%~HHsa;{j~z`3tB1jVmFe6DP4DJ?7U zKH6(eF*xwiq%hK9HA-mq1zyXJyS z(@POY0NwEwZ)F24-pr!xa}QufY0V9n)NoT-L&=CmrI1Ep8q?rmFJ`?~Fo2FS{{-*g z`qI%oIDjotKLfe0bh$d5g-YYOx#`%b;fSTsND}(2>8Y$9E^SrA$MKBIJc`NLEh^+A zl%>U$>epUdYs4{L^8M=_eY8UtC^$`np9y0uXg~Y-x;#=s+!D-6Pi7||ud3lP;GLc^ zJM$t2_8PSkYrLE%6x)(e?w5|Vto~z*$W$9c9R0$bdzz*(@Y{&o4@BI)*sbnyNRqDT z*DrK{*F;nnWe=S9piPt$NgtnC)aBog*89B-Q)v2;M#tVSfGK5VN-l00^fvP>dYB)d zly0A@E;|Il^W?qDKmG+K=B?hoj2&ZNaNyMeiU(2hxW-Qgk%b$>7xDk6<2-*91*#|g z7a3sA;N1s9q%W(=v&l)xOsvwFUJ-#PDmIo%-08=y6%Es3N%e7bC@dC4$JB|Lf4=&il+)v{kRuT!r(n+g%C$zILwi($)# zhcf7dlm|%$=+h^*{C;IO1opVrRhe9lhZ|bufZ27{h4}ckLS-1ZA!M^eJ^XTPkKp+S zVLf~tJ&*DOr#K|>abW7oF%`N?iJ;R^;d62Ic8VbhMVWspNIHiUJzfUnT(okzu1=|l z|1D8D;AB2<{gL4*EK@^3uZ^jm0PhxBCw;COLSA1U_P=R8ECP{I^Xe)Rd*^(2Rlpl` zJDH}dd9(ql_-fpjM0~tLwO8xoQ@~w7fJ+$pe3XOyp0#Ru4E0z;f9w}?LGvj?L%YNQ z=ZN639T7xWTuE?i_~{EW59$kh?UuPBmdET^QTWq`ue#z0p^Ro0Ju)^yTM@n zwI<3=19#U`2yue~@h9kx{aoF{q=pXl$x&)TJL>L8=UHAy0mTfp+iu87s*)AB@A#aX z#9^qa`f_fh+H|4K`q!fjQ73F!FWIyMr1qvBjp~2(WOsVm=oBRZW*VyCRm91 zURPKNbX5=#R{6xczLfq~(1amkO0n=qGG&Sslb2~uw;tmFJmltd#<^r)ow3Mr2OywTK)i7oOJeA6qh!a=Rafc!4M1(O zQ7(T<(&z=&QgCw#W?rUWtpM~?8muPczovJqiGQ*0!~9MFX?=YWB%e!=pyWZ7Efl(^ zqX_wja-#9m^k#TDoK=UD8-dLxQL?@Kao+$|bb3TNDN?NP?eo|o5*NZ#k{J!`hHBew zc^b3)iWJKP<>l&%j2*?Y%HAjQ8>E{53>Ml)?aT8XdE21&dgOvmmAj@{Ub4m(8w&A) zq0YD``k;;*^J|g>l#DGne#cwT+uMuXzX41qetZAOV8X^$^KSYhoKdi(r`tJ|%q1pT zF2jkHf$@hXt6}H_3=^9G2Og|Pxay?c?zmy{D5{j!-&+${LpAvwpyyv0`+G%4fDEVz zr*QUFNUgOM{djx}`nuW2)R4|`qmn>w6}wXMiB7m_7?#`}*isdEmYJ~drS-G-Z`zUt zE!sesP-b$Eva+UWamc-@7FP_!HiyNhrEt3#-~&|h{L~GHFtX{^{Gi5A9MBK^v-0uI zue38(7qIpEwAMF9P3gc>utb zTC#*9=&t9?VZF!#ac;*o`Z|Q|JNC}6YfvyDkc;3+ddG`GCG>+D?5u1X6*8Apixwrg z{jZzpTnHpR{TgVnR{A#iV=2V9{Lnxmt=?{xMiS=)t;chm(FRfr#_PbG#hM{tmJ*Bf zJmJt!^et^WT+zyF0Res*sG5=YUmk7{Q`R;jB|t_wshz~-En zCAT(>%YNsj64AdGI7;AKiMJMIZ*dydZJbm}c&v&HH7Xc@Y=0e{J`}U!)!en}6$ZbK zPkj4MHzRacDXBmn`-5z==Y zseH>*%2^`cZuq;<)hz=zKyEL~K_5bL4S0X;X(kg;cw_}3pXmWO$qH42@4m2J)oJFT z7^&Ie{$`yrmW!P)_Tvj3y)%CmVD{*+VOh*;@twCq6bkeUfPcHZL5%sKYc6^Wk7Bo>LBu;RR9J#3 zwld@M+fusS>H;3F>2L;ieIlQ-brEA^7TxQ7x7wWqdz{6q=afS{$5X`_JJ&4sp;3e^QQQzBBEc_M4Flxa0$4*V06+57Vq z06OqbV~k_5$MOBo!~-se9kt&1NL}`L$I)3~TSe1x#crtkhUU(E)+lz^ATbi9NiYM^ zbu>u#d2u60x)xXoQy6!nuZG!z`Vywi5vGDR>E`X|{JxaVi)13OlIcpgArHDl) z4NwY+eteBNTQ` z`COFD8j)v~thjLEh@=kzO|m7YasE%FdFw^wS{b0h- zZVQ_VD#kFK=V!YeKrhl}7bs(Of+W0%LH$$cQFe@Y>!Z?4Yrr^^9*lDAZ z8ZAl1l`w&!m32_D-M5eWv~ToYKR{7YkY?@WA3MuFuJxe7Wa{jHE%r-*L}z39 zAJ-U$4_HgjBQeYev|%4Uoszm1R>sM#I^TD7?dHyw>?dJztSw+0V0MQilMtNT)|^rcgIf;>kKj! zq-P=#HyFlFzQ}!)X(gZ@E-GMP+#$FdX!W@g{rIteEK9^Pr{GRmX!hv(G|{w0cw0?7 z>Tk<9$bJpt2Beu4IzN!NV>=iJTs`@dNfPi}DB<}`3#wa@y2@)pcdS3hk0=4FAFpL> zs>n(`k&Wsv3jdi>Q>RQob}a&XKqB!oP+TmU#>xb=S(T)zrq+gO`cOX0UJ~jE5hnqk z3o^ZW*1njmCSz%l4Ilso;P*{_pE>gc1@@~LRh&kS&#pypJDeXK>6F{o!``CtTb2_a?OH^7Grj-Lc_DruuS<2y7`qiYBO;gvJWUSe);`urQfvM`l{M z3hCJIq;j}6?wvB6j2MMSavkC}(8tIetYo3qq5pOR@$%CfE>_xN{`qeOKX zXm(W@}LBuBRkcR*bhhrSaM*~w3B5*glSPW-Ig1INxa#; z65acfZreG{;rn=|0|0o&kmHm6%6YtowOyLD#{Etp1x!UhKF0saWD|HXn`d0L_q#1i z{B$-LoAk49Ksj_m*yFwd!5?{$JhSZ9_d**C_66O8Fp-R%M(43iOXrJ0PhQ16cN}pT zc03*S;18s59y98FdioS&ho3*(G1!RZPQ*@kg0XSoZF|6<_)0>hYWB9L>9)qc#cN-n zG~+8JMF6lxrYxy;yFs@qVm4|kNfWcxRv7Y|Tva_Pa5)Wut?51x4u?&Mx-Eij^ zy`53g>s{nhJ+!XwqcvxsEem!kk z>T9+$+2Vc8-9E^?Q_1MZ{GjBOr(NNIWnjj8Ra%fFg>);LPvzoqnk;-?os}e zTXvkD0Gaq}0Hyz(=cgCIxz>zw$C*|S+NtmaQ2369{=1GZ2=48U&frQHEyzOUcFB*| z8NS{*4Uz*l4u7-JuD@Y48uXnoekf>HfD8S$OUpCemd)#{j zHh=Y&)#1BbIC%ft!|Ud{(o9-T3CVZBF7L6m;fqyfM3ZqdcK<9nf%3w4gI{A`o%zeD z4fpqS;77=;hC&(Q6Y6b$6@(2g_x23LThwHpx59&;JQ?iOZJ)asHM>qs-$#I6XAcOo zQKV%_kRPdi4k|Gh=PPW0V!(;9`hy|yjx*pU5{p`5@$p}wqz;hFlqJ7?TlKo{&;d}S z#EW;K>DDSRAVY`rkbdoUl}KBjR`Sk?H6IjAtmL*169-!go{c0uWK&^^n8VBQrbbeY zqCK|R$m+N{F%MSyDJkQ@Sv|U==gPRB4=k8(EWBvoSu>z@aV zkbJ14^JijJ8k0umCo9%-T=^mwi(!4dTwbNliUmi?4fh_430hGypXlo~)^T+9_djw0 zah9@h%9PC7XaCj3Q1JHtuXS<6Yt_vy@B?AotM%2)!M$^Pix{K=TG1DSL?9udo_PC@ z(sMb1Jw$3~hYNLhh(fs_DT^{PLWD$bB+)sI(qbE|pZ)?MYta8u`|F&CtmgQvuhf64-Fz&6KJ<@Kd_)~1A@Fcumg>L- z(&?@m*NDIjvauPfbEmnQgu z-{-P{$u!l=gXA+N5f}#uFA|}of@%=-bFhLAi%hF0^6XNZUm+|)hX8aY6T|#-6QIlN znY8k2V2Tj*;v&c8D;CChsJ9!Yma+o3oEC(g8v+ts#ZL@7aru8<0MqKwDjk9?!XK#9 z(m^I5DdU6^gXWZWMY$34#D8`h2_(dndt`zp35WBo{a^_z3j#QcCnlw7V=c;t&wP#7 zu%?-qu*=4$X^$Hs>&OS^ONG|rQeA=SLs5^W*S~>$ZHo6W>mQnSRxjUMBlw0fZu&FwnLgnUo4is&I^5is(>*0`TsQj+ zz5M*N-rXU0yhcobt)g-FXXoAbDYcPA(E^$^jHS>g1A)k*i}vo6?)lrAgXsnnB>DTL z?JG#!!}rkz`fn{g3|)1HvnE!`Iqq=CfmKay=5#?#b2h1lwI}j}G9V0d40F31{{z`M zko+(Kenstf*61)>Gq;kS^SC3QsG9ilIap1vudmHI)F*1^BflpWB@AdOq|?3ix0}G zkiRCqZIf1>Of~eM14LuYubOi7M!(dGou9D?GPLMJh-r+2q#c*k@L{l0wKvCbfqps;b_v^BOXX7)I2zq7!kd^`%fY;cl59xyUx(mCKvY~ zsi=R#a1~7~qB~t_Tn_D%V*h~fQk%hjKbwBbNU%xb8;513arpR=L2~a>kHgKTmYGb zO#3tU3QBsNF-xCT$Q&!-*1j}bU$`~@@-h$N41F@;*yl)>*>KKnU?PxgI|J0HB6f>m z(HYU8mouRnL6w5$6A|O4I!~foo%PEP9ov@E)CemO9to!*-}0E#5?}~$_lm=-N8~#& z0eh!>VPL-NszzHt+E>0r-5g4}@XYrpeQ`QXy^?zTO10&~FZ?G0B_8$+!NvnFIPI`j ziJK~)TFKkqIxVgJ$_BXMEbR^_!UWFWebl^Pb(L6)ZXd{6gVH6j4{Zx3Lm`HvPdb5q zqlJJqId!T+kUZA}(8ID43zgA31iPhJOJa2-&4Q;(zX-2m+ecQke!wE-t{|YH*#pAL ztF&E;d@8VT#X8O$L_Ka_#0o%sIlis$Fy&~mR8Tq)Un6VM9hohv)mWR9YD9{}eQvLG z9A@`m-vE0FSWEvGT1VR`eMfd~LTcI`cuyt?_y9VGF_4Z_9AXBx)H$p;|7;r4Me;bB z9XoUdJpUJHX-Ml}6@&wx&X~DJ16{S#WvPeLPBq;kDRycgnwMEbJ^`Nta3*4YA25Qy zepgi3Zy4g~b)&wo206YPi#RWtLA8J7&{?r#@?Kfk0 zZ8^w7SBZsGSKMrsR>{P?9NgQT0@d$Usj@GO9`0?j7A_OUUji55x+3dRX=Lg&5CeP( zp14^zdi;x$mtC0c`+J39J{_=7d&>43yNVweS^_9QsSQQ%O7}Ly{s=}%0mc@?kc-jy z%s;QJI1fuazm_2y?Jlrs1TQKtYiA+Gly|P?fi|uk9+7-Z>mB4y?b~)~KqEC$2FlsN z@Zm>i3wXLX&-s|;oT#;PbrNrcRv|oWygBq4Q^XPaAlsdCPfp?&)kJ&EbC1a$r%Wt| z1`q#!64Mv-3FG?X^bZpxAW6BZ98V4#<6Z`kQYs5_g#K}n{5ocol)0>P=iLTRlI5JA zbN%?fJ0Y1pj<+96Gp_(Hg5|1r)z`@GIc7g!Z@x(t?x*+}Ip|bayPjb)^CWEoLiXpG zK9j$k&S$L!^jS!BVHyBQjtOH`E=$a-3JzKk+H{ULWgui8I?U*GYckh%;9*Cs6NbN# z3Z$8h8)3QsKmoePon_T6_!QqdBdy#b@U_i~n`|Z`HNg(LT>yiJgTTh|I1;zNCCIrI z=GqFyq#MK2Fj0#jRgG$$5oonnqQ?OR9UbqA8RI6+V#QWtCJfMtAC9RXzvhlOvXEds^VJNe!v+SElkb ziH%aNO#*OCG)i~BA%>GtmOv*p@I;=`ISEH){mR`0*-KqkX5V6va!xD-gO9(BYAIbW z|9d4#=xNa7*?sGMj^Ls6Me2VQ$RAXOiHF*>RPSs7xYm`wl+tkDyY{*2;I_~W+ymy1 z9J`Q-c=&8#PIOH=m%beSRy^#uUIJo)zlhNX&khF8A77YqzP{22D)tGg;6g#8YOZT| zJ5D}^+2sk$4)4%8s+LXJkm5jgax2SA_?Q&Dmymx_(_eGu=Ueqi1_Sxr!u?PuI-6#U zOej$o&;n(HLA)2Ss!QFz9gz)1!s?^`kymh&>Pbyb*MdPESrXzZIvmC0*8o)^-{4)go!r8ZG z`m-EorDMTHf}gPst)6(Zf2@j3(7N{ViS(11IiOCNP0#&!koMtM=YQKesTe~3fWgrd zxr1~SMATVq8)e@UAxSvapDpah=Fp%PfqdU9q{^b3pze$@GvI;L8R)b>`LOvS-ro#dm7+seOi}9Zai@2RhZ>2Un?Fw9*nnBkxe%j>?v?yy zzQlBPl310Kaku@f$^)tb$hT*ignm7l&W8;*;&z=?40eFWEOy-ak*bEZ&9!X%xZzk! zdTp;}IT>j_T>PnA%RUg~D`s?swmPZPp$;;MAcAXg9hc~}cP27_?0ec4d}6R^5lGFh z2ae6J$e{Rp+G*IWzhIT)V_)Xb<6daMQ~y(vIU*)|A)xiT2+46)7F)IJKa$$^M$)G> z)~Mj8^E*jVb?oEarG)AI*8#{KfpZ7sm7i$&`-SGD(1?K&zCcz2dO)`5A2SdL=rkqg ze}R%!DzPlaZcMO`3lgbNkIuP{ZoMAb_gC;dG{{NeqaF8Kbk6WxPu5yFyF}s}83JW> z`2V%C4lFhaOoF&sle-c~A|6dzf~AfaquDF27!0(8QUqUJB{;Mc?^lwcRp2R7k5ev|(@P!!< zXEtKkSJC6er42DP{uCM7JDP9I|D%z@=As_2>^Ihlr$~daH_6PCV=-3T$TFsf??otC zGIs?$6>ihZS12YZy>W<3GX-(J5s5~lr*%51>|iltQu^-As`E93cT()~gzLd@F<9DM zy#4O6|1vbqh8gs+$urq4Nn&sfD+tQH#=iX16E`KKS21ONcgjkfu2FABnWMb75qLhE z+-;lb8VX4XdAzL^msls`#@BgmvoGJlzi0+J^w9^D6V^=vq230^R4c>|Q0>nHU9 z>`5!0LF--As@H=Gp$4cad5VFwlu8H`*nPq`R|2L_C!Vt z<$v7Q?S?PzDX;zljMv#naOUlTq~SmDMK5q|+`QdPUG%XZ>TB65ieDU;elQ#gm%cAJ zJ^ru?Mo%C=^v%U=H%^0?;fG^j)6Jxu?MB0K&d25+?<2jpRPEVb?b&+UC+aVPMkeWV z`>N7p(*r1Aq;9j@JvZ7oR*7S#RlB?Vu20;W{pb< z=4Cp_6|_T>u2t>Lzh5M<$Wq5ddJ)u0^k7uyn;dfVd!0%7 zm;2+PpUL>mYK2c}%VkgeAS-A|8{^^P_^C!`UU90e7(9{QZX7?F)!vb4ieB9M{38*u zccdYK@NOjT*E`_3m23YLYv}<=CenzQBdIu> zJ}cGPnr0;Kh+oc`7(!^*d2ykHs>UepVL7`_U>>HKQoU_#CJII%OPfI41#dV*O6yKWK(4ISvM?mUqo9D)Yxu@F<9ru6J)Mp0$#4#%%frqzA55{8t>CcJz zpx{?kmLX_IAE!hx&iB$RZbZ5Y#e}lU#N}WXO_XHmy3p1x$ZM7o&$6udhfH( z{v6mFatP&%B8`&Dp!mc2I+yTQGldj{K4ZFr^l?Oue*MaT4`1%iIIOYzMUm@J<_$)c z0Sv~0odH;kEyQIwReeq1=!j69X6Up??Nor~N*e%K3?$Xv`%POi%~Ds52Ky;rKd+d| z#!@Ci6*+Mf=%R7!jT6(G0DnVsr5QYaQ8p2%cO+^7QX;n032@CC*m?kCA%k0RzbLj< z8q4I@XC%AAR9n_Mu!sGbn;T8eUjeKX&0zeD%WK0=L*7E|piEtD(fmL~XJg+FHzq$J4u*N-Q072JpC+^__B9j3FXGwA9s<>=`Q4rTO?Yr{|(tcC~w+e)~eDd^~nApc!z6jJWgp0MvZgDZ@Vzfe(>mX>_**?%iqTli{U^4V@5)n>0&@I7Bi@YtZK6gjxG)sFHZUc6IhERJ7 z&AMD1*bqs794oh5M0cY~SIA1~KZCIS9p(uPFZT3kjHn9Asum8j&b3Ef8rhtL`t=_& z;=pACx@N$BWuZYYsz713;hVGstKPvKTP|5{x(NZG>K}d{9dx#a^kGON>HKyn>^fCF zB5peX)arHza$j|$5lxAf7(;| zBo^cSke`Y%KOIs-nm~gGRMf3jH1GDcjU}m7nLFbsmCfUsDGFwdzXwsmBLE*C_rZ9t zp`nGBI?VJ`ao>W_3Qc>__w0y-{V?vFS+z<};k(FL;bw^lyD7%#606uU(+QjJN+a5H zLDJ!|pWZTR+S*>sUuY_f2pNcYet=`v+_Exo*P3p!loNzAVG2N%2W8l_>T0lBc4h21 zPLx8=HW#JNmti^jrW0TU+J_$>D^15*CUT|318l9vzT}s5g&qm@+US?s65aLkN>%~; zPT>Uz47>)$4KYU_5hHRtB)_}x*rMX$LL(ek6_*F^(44+W*>pp;opGAom;wEe4WRNr z@h>iKLN)AXpN&4yt>UO87{R|GF3+xU_pHQP{-^}VGvH{PzCf}E?laN3- z*aqT(f~uH{NyCghvGWpn!SH&UH9<#gtxELU8!MGuthiSfC3x4azrKDOBkkY@DewO- z`zC;O0ynNu0bslBioV0Sp|pU%y;=t?LFRx2M?t7$$AD-n$*foI$Zh2cLp^>RV4PooU z$*lSGp9H3ht+ZgI&b0K-fI!FAspUNI_{{>UP$WHx9c=61+uj|Iyw73WYwoHrud@vo zc{oC#)yIQC?q^o*L{p&n)*k=9ScK_m)uw`+FpEb!WV%AiU=UA`fZX1d`$w6&Ps;qF z7Y4<@V4O2R_0+^Hyal}A4m_00pI);*IsXlFMNiABr(@#KZrAiGwY33Z?Yj3?EKfiz zoB16}RKF5}{O)OfzG}(njU;xbS&J52w$8vNs&at2&Yw<^05gFtW`@l6kr3(O;}n|W zSNmhy4XLRgYZYIV09%H{|B$QZqS?>2tG@`Bx(rgJe?K&lo*H{D5Qp|;(@D;3&oq*; zR=M*OkbauDPhI9{B;f8>KOL%Jy)}|PRJF7L&-%|L>T2g#_X|F2ngt;D3(Vc3+ma*dtY=RhQ=&PtnK zDUjnvwoH%M`WOa;*jfd{aO!}tw%^AV-Y^@U784$ABz0h^MRjIKjQ^qBaY;A9rs$de zjhB{RXT=Dy&ZEGkT$ivwP)Pc{(*ezun4+b%s5v42nFF^=$VSj%ZtsA%ShM`Jf#-eh*{Y|0Ed_RQW}WM>N{DSMA>;d%T1p67Xe z{>UG_@H*a~`+eWnb=}v+IilEUDPnJya<>Q()s=Uk(RWh`lOA>%XXJlf;o(Ix zXZarutffH22oq`a^a*e)g%=xFyzt5-pIfQnq`HfCBz?s$ zTl!&_t?ZE&e7VU$fK9~c7I;@JosSULcgWhB!4wHmMjHV&g4_}%B-le9&kO_mOHW1PXtslr8dDR?UtBw?(n!wH^E^U#(9uC3nfgB}42J*yUe-B^YF6GgY6RmxD}hbC7BM@&+1MXrszgO8dBIx7r{^ zs32J9}t239jErc?W5vlKL;|b8H*pFRyxx!d{F#F;*wH;ee}_NR0cdmUj=Rr zz=o;#oi@AI{7-y}Ev52DO7FT*%yXP5aVJVVbeSN>{v9vTX&mld7kwhnzYLKPb>6S6 zDfl?^%k}NUL`mL>9)};bq_g?cmQqmwJy4RQSkZX-ailm8HoH4(@VmpjqEEu__a97E zPs9W@4bQ3>Py#bt$1*v_>~=LCya%F|?5pu7DPu1gv=z1jCA<%tg^nK>z08_@J!@A# zrk_)B;+0g#5#$kf>7{Qce3D+#dR>2c{QQq89}eev^mV=b+C)I=nLfUStPExZ2{5fX zZll1xn*_?5&Y?cYNk6^%sbg*tdYmZv@KTeM|Nh&ZL=VEt#$a>GKeXF(5HdqTtV}s` zX?;#pSB$DtAY7SR$*p?nLt)kld1THRX=u!b38+Vsdl01jyxTfsz~{iYvg6+hpJUa{ zMa50E^z}j9hOH#Mh#{TnIFTiT)+c?fSe#eq`1xBNg03rR6lmE_|DLyZPC%d!-Y{|s zByw1zT0g%#;E4x}Wx8+1oBq3ZpG>_#-$96pY~U>PHaH=cj13}%erVWJ*@4&fG=(|2FIR4Gp0Z$mX~ZMRZ_3E~+Vf8xA>f{H)EVt0B5nOO&8cSj zUq~!{i8+1MEcu{oYPeXfot-kRuyb#<++b`7)cWUz@ z_@z8&z4|-zl+|*adq-wR9P&KZ`agE-h3gLx5w5_WDN24)03b8BV%V_-1%5Q6__$sV zwb$T%h?eHC8H!8;W2#9T+`nQ1y+FDtN&FyxmGO@I#ejzD?BFB2%xSx9U5CK|spuPF z{MTe&hUPpk?fFytQf&3>RfBSS4a{ z92Tssz3cUs-s~oz?O(vt@{Q3A-HVIqbr&K=7Lpgv?@%mDJY|kkfkJG@LX^1(;y?zd zm_Qb0C~EVU$?Jh&ze-F==Nn0>Q|Fr{Zi^$8jH4LdU|isntr#wpkT^Rj?ZYCcB$smk z#b-Wn>ES-ZBgW+=(Pyqjuuz(I^h$*0v259&u%Yy5PFdH|o|ZIjtLo69WicQ}-OCZf znq^bFYSuGmPCb6ZwCwV++fr)>5f!*7+bm@!bxpdbdq2s=LJQI$X=XdB~S z?~~TioeWt47=)5k*KtaMF#fTwa8*ZOLRb$r>7VD0f!=)Y2opu=Aw(}2=zX_E{+@Yf zbp8M(FLa+V`yl}7hCPwfq4|qD)>OU$eJhmh)Q>}>HQ%!J>9X(B0jQGtYgP+$4 zD~7JeA4TpFSy}uO$rRG=TpbXnOWgM+;&IuLdbIr=tN}iD8PK~l|2Ahg6Td%5GYB*K zuv~BOeeKq}nFgI%Y50b6|3EJ&H=!zYYZT8ct|syp$<%Ioe{h7sj4dF>*YU5qrsp3B zsEl4K+S)1wt={9A=Z2CevoBAE1xMfdXQQyi$*S>){@Fptem6rRZ!@^Cz2@KCTmk?4 z2Bo`eiSfJ|m;P4p^~JKg)JOAfqjQB>0k+aN=cAv1-F;3#d4|4Q$Xa1A<~y)6S;-l7-l3aw&X}tFOE2y6SVh4vpIdld_9+)@kW%MG)bHHf0u_WXw433lS#NGe_>B?JjV3k<8PqAy6J*Ah+> z-Jpr)rSI4j-p+lh8g)UjEpZ=h^e4O=(M7ZXe=8|_xJzJm*RRRVTgQ?lwr(F8U?9+K6EV9CZ>tqHTHQ)%&j=He_-D$?)6Yo%E^t66F`uaTwu5xCHL=dZ_2- zxsJ0cQ1vR|NV?|W@o<0g!w;3KU9nG}I8yH;D{n%su#2toV$C*L1L5)CxOViQEJ;aI z0uDJ3W&=Tp!m6jGDn0_!H@*m?ltfAH5>wy2t(!6Jks@IgQGrL(HvmHIs_L2m5Q-Ka=VsD2up~ z>pg*Wc#BWdr$&SrfJXnTj#l-zBCTPsJv;|#^w<4~e8ruaj_W!QHZc@%bNS2UcXZj! zS|cPA-S=vk2n0hkyKm&gcpofo4M|miXmSqNwkTiwS!M8H`$6Rm^eeB*(oL#uIn ze>7O;?~2#ETnr}uM}}6(eHJtC;@&pjFg!Jy2jJ+Ql=%0bn)Bk~SBpMDc!{3SyITC_ zSg!o(CDiMwD1Hu%@+DZ2?uKYOzR)WVYyVt(z|mldvE-3(SL#3eAcMp7mL_& zl&ALbc>8--$Rs;`{yCf$w*P+2KgV$-bTxB(0&Owbh6xXzOx|;m={A)`KYA$dZ;>wg zz?Y~>YMn-5`=aX+Mm({{;+dr}vq55j>DrXV0oKg(^;@ZyMcV%5)-;U2DEjQsZZ9Ba zbK39_#;joUutYOS>FFKJ@ON8_ZQza-_&mUfE%6-9^(fQ@$8Z{YKP{=5Q?sbjSPb3!tMQ*yZpWB&o$MRCtPk<<<1E_Ed=k1}PsQ&yQA2 zY~AM)J9e;#QG+%+$SO4Ny|jsOgIuLmw!^kl?ugvR-wcemkbA5;N?jkz6e0h{KB7BnL*aNA zO3)Cv9r}m1uW+i*M6)5NazlL%*f~3kRn+2a5v3Pe%dA|~3b6d+E5fbI_SFxGPNJqb|gj*=Q5L8il3~|YYQdXU$!4qeC~*+`tgS6yHuvj zcWtMXy`!g_C&e2-Et*bwtWW5cu~qiC^G&Wk81srf!wnh$+a3ExnCz?3vzLqOZCCF3m({Ax}AjayO zp?bW=Wj5AT+-;Ti_x$%Sk!9Tb*wP7fL5tt*PehY_MZIWha+oNDZE+9&C-%Y%rv zvw)w?9*^DEkp}Gm!2L8dr=coo>3@0R(Wy9J|3&8}={uPTL-BcRz|LGvA4tShHUO(Y z^d^`)Ivp2U{U6`c<`(>I0^3rrrOwS*iAln@+kr7^^FPwq`m=?&MrEV_xs{Co+qS9` znJX__W=N#Kj=DiPWw46vk2J+~qWFND0yg->&pW^E!CjPtBc<~p1rP`r+$?>+| zIS1wqu!-H{ot|x7CVh9KL0FF|1J#KCPJ*K0#?=1ahAH%)%Z$t)1rfgVIo2kl=`|zp^iO4M8zPg*$3%hS+Rkr}R?YAL-vQ`J*m{b@|EULOwH{e z!tIH!n{y)L>cyZ$OiwfRuF#d;`7}2^K`*O-zy3)vsba=*2=JgS;0hRGXS^34Mfv7# z&+v(fH%>2)cDW*bDAb;*p;QK_OS1^bpqT5_?6LQ$Cf{~`g)r1k&hkJFnzDm)IrIE0 zXQO0)4t{U87v~25sqgq#vvm0NLb9^F3T3rG%0bDRX~fr1vxKTU^~=9LzuR_D^7_gv z-Vm>nIaGK)uCv~w2NCPVZ`U>Wkib{Eezf;W8ACRTd?$KoL@U2&0EZJ%$evqzSYCSj zRXK|Z{u(CvyLazcY`H=DUmC!X1l3C+SwW+@YC)7}ygaCU||u;H$A;Z*G)vadBb!kRzL!a)$HE%bLBq@SeHQ-;ia@*EoBjAtBEL@}JNaVLka` zIa#2r{=lzMIsLIK4~nh-Vw3&n(j8Xa=BLk|O`w3&KY!w#MJ0RtGS2TAA}%uaq>zck za@Nf`5JQGXOq?Qy@p)Vsm4YS-IlRjV=9hee6S8nNa$_~8M5lje2QVaqbU>>NiimxR zqy@}B6A7&HaHOl37gZGhKS{JoT>?lBR{|MiM;nD%krTv;pA3zRhTzGzxk{V#EAj{? z^wJQ2Y{wh!!{v?|&n}0#i4u?Tt1@}5lGb?--g3X$KZBzoyyb(X)(+PyP_ai;4w&mx zhW1(`1vG&Zs8~l{dzxoq$9F9z&HQKC`BBq{t#f$AFPd65DbTreUvl;+&~7i4?q9|N ztpeRckJd;Ocn||P>lp6tan6fh)z(jgsYeJK7xpe+`zAz1xuspT17eD`s9jhSz6o4R z8Sr=lN2=N4s~ZKTrZvy!d0-b12K!`;R1Du%X2&>#^YeEV6~rEy?!%qxPaT+8TrP9hZAsQo;R7Gk7+yx zrnf=F*Q5l>GDkKUZ5T6y!jrsp{CY zLb*9tQ&?1&iWs-cd)tg6n$j_)z=UA!RTwm=K;nT{XZ%O+Rho}TmnP`PBCyE!hC1HWqyM@;f^bdi#BOgq?{%2sF8t_2xkzEVXM5 zlC+4AC-@wqjQ(6>IYb$#6GqIWqEV<~iL1It>H_D7m-5W=T!B=&L-8VR+BFYkpQq@cJ#xkBO-}>w-D4jnX;mZ$w|zB^VM{xWf6p+TnqVjo?j6if+3N{qet>J zXc8g`DgKn&U7~b;wh=WHHZ-(rB^)3{ne3?j~ma&83YtYRH7QvQZ|giwNf0(xxLO;LzDNoi!!r*&hpWB(mF z1ctkIxv}hzKc09JGc~?Cn_pX4f50z>MyC_hdPvCLtl6hpRvyGwH>y+WJUXDtfnwKXcn844!xVO1iuP>BaBxozy?eRPDB6$LfGrU~1|#ED~V^71KZW zw#}WbUci}gt1~Z|@gW6o2+^uG1O2w%_*8N zc_yi3OKIMRrLulCuLGkDO+Jm)8oi`t|dsxpClZL)Mq13kMwWCtnpk7H@ANvkMVruUobMF{L z7fQ?}|oEbMWGcH*xaWXZ7z&p}Npm@H4iD4-+8l`2_`odE|*Mfb&L-O5e23 zM*X(t-2hrROdd333X(C=d9MfysvCqyJmoW3(n)38OA`$rD6I8+)sN{=(hdN z*>|m*g)YccJTdTN23O{n-Q7Wkd`RZt7exl68&;$m0^2qsCLqGfNF(RwV6M)vAk*?po|rlLn^;fz7Dfw(@M) znA+nw?YfK2fO6aAk`vLQwTupRgmlGdo+QCr3qv7eJMK?m1+ewyWux3Eoxe7xT|BO) zD{0!i_QetJ*-A$eGZG$Pxf898P1AF#S21KD#CmPKruzpnx;XJaP}|5$eWhl zP(0&94V{*n>5lr2D9wXp`UL#W9)sanY)s_C6k0ELTi`9FVI|+yXvYF0@erv%{6xmg z(8=uS={eQr>*ceNp8^jWuS1mJpfOV63IdQ9=o1(P4Zu)JphsjRB+Rw~B18~;a$D05 z_*=Y45o9}!sOvqCjR`pvm9F&8&lVkWQ)ga2!$#&4RWNo?lyc91=A=TPb&S2`cyb^Y zejsDq^^*sb1SR0qc1-yR?2g5Tmk^d!K{osj2RLBU>kD*6*oRLI(WZawju-eJA> z;Ou9u&Ezuv7|E1_nCCWUMde~p2{AJ*N|;j`k~UeWik}EWU_CYmTlk#U_*0nf&V)$z zL}HSt!otEtvTvG|jWP>GPTnY@!SLAtu#lgak-_6U0wfj7tqBPU0?$i%MX-~4JY)$L zyw@1OMcALs5x;A4HBgy+1^-UdwWRhNCQDjRsB8%+aom?8cjF<`0YPG19gbOz3xNO zmoGY7jxooc++a%~(yQ0ki)DgV-c@nD#CAsu zy-R-+qpn_KBd@^Dpfq&X+85t;>!qyGkLvH_vSQ6IFx*dIV*^&9q;A^d4{LaW+@r^K z2S0y~{veh(KSA*!5a7Y6bcOM6900ar_&rU zcVT#A55r24!Ir2m#ApHpUdQ!CDS{KFDrA>OD^aIr^$CAHnoc;@*zZ8D$^j+x#m~K_8RNc#a&8jlFDTLXazdSt0skE}J0}g2%+~ z0F&3GJtLN0lx342qHBtoue^`IU9B0F%4Jhb##ug`eHr({7-Aj|>4yY)F9u@wP~t)Q z!4<#}Pi#tcPYK2#@jBl0H|8Vy<(;J^S)?8;1dh+id20F@2bW9@Wo7yXvl8CN!VU?B zd_}hwvD&92Sn?Ah{ONzPe7|t=DKD3vA?-#_o z%11eNW_&`vIDp?A`KoA}O|wsj1!mKlMnp%?@9BE#T(}_FlHkT_9rRAcL!GGQ{ug$u z@%Aa0Ha%CKOWSr)QcH7IDcNMCA0^u4PnAUELV7pz3&u=q-9GYnRTyHBkq4HmlaV_q zugs3*1_!wBabRm_9@J*HvC5RHb|M1Pt z=^JxV%sR57mU;ivpRghbOBY;G4glJqdse?=UyS|(Q{+J1I}7r7kJX9(1A&+-*V#<6 zLv2kZF@NL(<%nikxe$I{I#jH2q!Rf-z!J~lSG&)vP~ugltTlCy+l)e&^M? z5>L|D0rgvkmbyC9P;(!*FDy4~l41Eoy z!a_38Fksz(*1S)0So{_4j8pZLKKlbO4@8h{uW1U5;4C_kzqt%k0f*B4saC)v8Zb6Y zS-5L06i^42K*WkTF31o~CnuiEgO9VW%L>RolWw=MHfz{^fARgzA{yqdbP&e>M}QmA z_m(gA{)gKM>%~)a35w``cmUIVqFAC>^9IeSa{kwW79{$|X&7RHR>AX{{xyOPA4T0AStxys0R@y)spzP$Pzu+rG5IWf~ zf`l0?*7~9#QUPWPzr5f12n564 zBV-WMT%`HOi2Pdb@M9g=^(9<9lasrX7z7zc%wc(&ye6hJeBMu7A_G{&H}Fd6JdCYi zanV%m544q>ii)G;ab+7UBlz!zB18kdkD*wmS7SAB7Znfrg;2wZQ~_h2DZPn_NdyM- zeItJPArmGvMiM>K><*DLoiGs8TXrnMa&Aqw;3gl~OP%9u;V4?s!OSyQ`H z6oFG_!1R?8=3AQSA*i!Z_iZBldkq`>qZ;H<_dC;lbfChM!tdi+G|aG99SwW4a#iUK z>Oas3#>rY_pxPbee^1dY-6Rl5W zgJKlq*+f}`xf)b>T;hfCGFP7lreFLVwfr(fvbR>5qzfyJcA9-JTji_wxj*E#h+!&8 zTN(})8gc2>a&6!-NWWJcAxZ{HL_)%?RT)NQh5ITS8e?3|^aLB!O+U5P5Ztu$17Qx7 zpZdpD?ufA;S!@2z$@wJWcRy>ykjG*z&W`*$EoBI}lAR&bfzNK=I_ee6hkn@*?oLNs zBnC6yEImySkFehhyT^Tp5C+1JXJA;CgJMStVqg)VTXvfjJ1J22M6hi6Q8s8~@X>@K zUj!*$d*AX`05(1Kz<#WLMnGtbN(E5g zfNJ(O##b&Mi#Zkx3)=hy2C4BmwiT5xRLO)(1?3RimzZK=QsZVpD?{MN8TpDSc!?My zxRJ7)WSun2`E!a*O-&JEgxf`*ySrCv@^1jW!ImB;ecjj?`*sL`?Q#JD0oAjm`0EI@ zXTbrG%5_C>AQ7xR1Qn=EtKrnUYr&hNb`@>x9xw|_9^8G(vM%&dum}u>A(BVg8nc2o zts?sRJ&w^5wt}ITtgoF3p1=?n9?a4VJ9%-OdFq&qOsvr@X>gu%Ph9W(ykLgW@ zpP!$FIXW-|QKH9)4i00$&`0n{-~1By*CWv{4i6>qedjWE+R`4TbPUqd?AgpJdAh5~?IBV3}&k1bKR^=9rMbnF_ z@1~udy$*Cm>Y(_LbI_2y;=O)ckLxFf**Sj!!ZdE+)W+6vi#OQ-#TM*XL|i-tIaZ8w zl#9QPW(1B!>!CI<#TzTucApNf!%4()5BdQgm-JG-XK*}R9QwSivJ4Hv~{F38|;?ZR)6CU0xkSckc)RYfG?k3cJ3)UvmlrOcHRW9-)H; z%*U0wL@Ao|H>ow=qO#Yvl(I+ajGl2iTN*w<+bEW+A6EI*^TArs*KqwkeGw&7hK0qI8p5vARltl~~8^gTQQ{evN{p zjz+!@{q1DD6!oLCqyUnM<=XWSiBY>h$X$UG0!uYJS|4Bj{d*k2g4Fy9P6sau#M1ob zOSv6P2;O4C+DBg%)40ygPFE%;W}NEK)QN^j%N96uEsiQD zOFkSO><8flKzZ40PN_SI2b6&@r1`e(^8T%B$lb};kF6lq3-4Imd&tHncg>iYk&%~y ztcUgIt9QRe^sdMZHsau}+bxe+bjZK#elBnyQD`?3p`}&jV;OTncJ>%E zKvP8PH-p(&Q767z^&ElJuhRs0v*D2!`z(T4l4ddX9`RIf)KglC6+V@zJ|@f5|AC`}vkNOCxc z&EiGtaaUA-#=ne8)2*(1%z9d|dNhWVKXfv)G0*4IGn_TcY>HQ%ycSb@Az#haqNIx# zAB!m~mOOKpA)Y^M-bcUMFzLLwN)W=}i)Y2gAa5YIuF39M;B0R!Rdr=5Wz_7WOn#}~ zWbjVX#CoamQt56`Npvsu?fti;Rh%tg=0#**jwZoaT>9zti{cDAaY4uiicJ@sz_j3Y z9OHQ_ARtiWd%Ej>`qPU{(_~+encAOHC*^?=X+BFQH^i*gNL{;CmUdGdxNmCgw*FPw z9M8pu8W-cBgIzHu&VkZn9q86cNbsGB+WQ^_0Qfjhg|jb;ubp!*SE9!1D=EnuNQQv@ zUS}kJi|v7;m>%NmP(r;xgDwu6pBTa*EiD}(4-PIS-u=>8PNpe05}kWsEw?GiRTUhy zoeYQvQo0jy29r1fo?&+ev9uUpDj>(Zel4wjO~>?+F(gs!G04AQ3VeN{vyk>qkz)d% zlVvvSqPF3#Te4M|qdH2(gSAMif)7TE7Q9y?{Zqi|-q3;Yy8yXgRhyC&fng-KZTb2y zUS8g1(Ju}8#4)rFqs2U5ag2pv?#U=BEU5ZY7k~*-wlUbYBKB3s>Al_DEBh{S^I6l) zsfT$dD&-@2{|$~vViu$pqA%mpbGW;6;=YK;+h;^f3SADt{h!iGqtCrKw)1=P{6Ue! zK7CuInOzRa^fT6odoi57OlI#enjYVKT3rZHHEz^$Gw5}-D{|Fjfr)NgQKzTMU8>`+ z|CyGdof(R)#3|cdQ-D{IhQq?X`wFE{I*ep%VtFX>>gjz@``c@E1SzeDSK3B#3Hu^v zMH4>C*Q8jEWxp3~E!VuB=B#h2u3hz^!zNhTex=d?^8d!Pzb%i@nQ4`n+(9uI-_C#h z!zrUeY#)UsUQgD5dvM0X@l_oFJ29I7Af-eD{x!~0LJ1&GCmNhg)TnGY&58huS4V~5 ztYi*~B-k#e6?Rnens>qe+3ooPIhFSCWtcGn8%2<41o_*kPEaBgj73N~Rscu=3L-bR z1wBkVo(w8yRXO1M8VhYI@WUwO&~Q2sXlS_3e}CWk)scmMMb60hKtYm>T`4|-A6UMd_F-~vf;yOg z3whfICF$yEztU%zw!38l^{OYFXDS5#t?k@a>*v z(lbO-43h(Tt!!F+Itu)#5-RCq8w%(xq+jRDMF0G2?(8!C_rxC5FU({ zWZT^eVlfd~21-LYio)}2v$oqka}r{SAG&S#Le2GxE-&fY*F*_WqP-SgE1kCYuVg+I z8^k}VJFaie?%yPwj0HbP>GGm@Vk-`Ob<~${++I3Ia0MVJSY~5O3%(|_juOE<`&;9e z2KXcOKrjqu+5Exa56EY^%#lp-$^HaZT$27EO#G*5n0+vnKo2rfb3c?<5ezGEkifpc zlo*rRa zfW$pGw*A%K29duQ)cvt%mcz%*t!RD-j=*?soYegTr|A+c2P(PD3L+L~3CXP3k5)G( zj1Wv8eKmB7ndfq9a}d#YGnJJmQU#XldB+J z9?tmFn_LuVjnd!R9D;#3n&e~9+3kLGO@kM{?brL>PXeJ+?M4QNC$@J-IhwUTfo|me zd&RX;lXy>!q0)pXLD79THOqI|hsDF9(^Yl1bmWvu#Zfi4oHV|q$K~? zEbw;a5BmGsg+~&du>(1Ja=*NZv-Q?B4D2$o@?&gALEd#T7PS{f!o>9HAx-}Ps0gb> z#IP|lBLK$A1i;f!`U3p*#Tc-dgoh>rbN+k5N}ZrXBJ$UR3aRLE%7QvM>z|=(faNod z{oNg|@#@t&q2BInRq*x27N43Gv{t}&ic`%}ui7F4!u|hXhV8HWW}Wg#=fKRQiVCNQ zC6_FSBMsp2Q7^s^K<@tbS7yUGht57pJ7VJ`y~~J<3e+bi-Gr3#LZli`OEA`JUyTPb zzWL`;Ood|6jRB$p<+29T7hzjiY^;zcQc_aSFmtbfS__US1Y9dzx7?&7;6kQop)~wX z=j+0FdC7S5O!> z-s|n>bya4H;`jt`ilUeC>4h0epv_Tno~od=fZvC$cYgakFrJVl-ukL%tZS;xfV!!& z+FTFe2g+P@^xxW-I<2~vwp2Mr&UA+dCuQWFsUKZpJ$Ds2696v1ocqp39#pFW|0~T6 zt=mH>1*5=pAKMeQ@;yu@SeqB{frnPduwD537nguE)d7uKyVH+Ni z$-U=2H}8o*Dn}mLXlFEB^d7N*DJGVZ>*Kd&Iiv0or&r#kIuwE5V^Pgnb{v1Wy{slx z?P}m*_c@FBDb&S7OPBS^DJYRz}%>7o)55m7D3#lj+kri5@j&xdACO=B8TGc)s{&_h_S_g>p6d>A$r+3ITL0Yt%IKb#rGPBup=RV#eFvjsnJv*hFHLyX>0$gH6r}8U|9InWrWJQBF z24pY4<*xlA0t+ZH^Jx)cl~a)xn7|qc@$=90#wk)?zsZ&D_X7L~zSVSb?WJ1?6|R22 zlwB?GzF3&MoeL(GllneW)}a22+I*~$`|iB=;Bto^=Nj4}VZ zN;#G6m4C85t`*=_Gh6gaM-t$J#Xj3p99!1#K@9hOB@D~K2btoLnMrT#qz~qfHNsqJR-@-Hz8mg% zz2{Iy_b*7+F-@07JOihZ-RHMv)$M7FW{0gn#n!EPUlU=zB#V9_7E)`yLT_R_{yB46 zI&;MvVIo(8w{E{cD=%o}Z<4{bO31F-n)zAGWBIEYg~sSmyVUN7ze}xu{PwpG_Y*JS z6I=lr{x4nc6xkuLp@K*M!Ul}sT8lmuP!H*ue=CO7l2NN=!+(^$XB!Rwu9c1pI%7gs zaq`@F;~?8YsXe2zR#wdlVmC!t->e8AcBuxbG3cETjV+ z3%16rx3HYlMrnXx3uO$-9z{COa?BaDU9ZkI2_eQQt!a;x@-w@Gzak7OeYPw%7dx6A z@gmFbFk&_a`aQxz1e;{|mbqmwGBEmhu+BVN#d<&d=n(?jVKEe+ip$K2)M1u-2#@HXRX0O6=5+%XWepH^jddzxH1ITm1Y z@hHh_yw7n#;n&CqS)Fqlb;VKXtJKZ6oBC+&+8m>9QCMefWmpAHek7bv;PiulRo3oDPOE31mabRZVysDHWA2l)N9=2v<2y=h>qHk&- zH`3TT%zbthPg|$5RUkM+nfDYvi;tOJnoY1iKdu9M;x^X;S9%^C!87kAfrio7Cx}b? zp~x4T-rbtz==+83fNPRB(WLG4rA~dB19Xs>LT;-{0j7=5mU?4yu^C?@DDSuj#$Axd z4#LEW#8Fg584&w(&`~<#$lD+|`1s<$j+A0nzy;TBo-*l=RUT1-eXIjaLjcj=Qx;wO zD*TK53l&NOq6AFT=n31QB*Au%-dy`ZjrQlPv;33M+b>_f)bOKUkQW2N8%19r|4`=d zlF=-GL5*K9jltx9bqktBf?+m4E$hv-UaY)cZQk?&AcqR#q%NK>JOfcd+nfqwMY-YO z;XP22Ss^Fs&008#2iKE}||vMeMEJY#LD6=X|M$)iF(tt33QiR)O}lve*hi+-P! zq>MzJxqfeO-=1|z=<)Qjd-mHb)7wQnaYw85wR{Q1ZxJQ-!o0lx16*HHIm^B}8?sHR zx$ukQ9XW>Y*jrC^{q6d}$KDq|uIW7;eyir&-=2@7>c2SMk~Qk?&SMG>HIsXv4avk= z==xRR_B*vLY$b!RHBP z!PwPeE^v>X3B5%3`(klc&k=>valtICzBQXhJ<7qM&1FU%Y8O`?bmoz9Iw%zvPNj=< z(2~yPe=sL?<2--Lm~X;^K4{zK>U>Z2iu-`xej-pOv_j_&#Dem_>DXJASJryTXHJdV z3l!fexrK}j*{Fs?zh7yv!DYheW41@HTez{@hk0#(?G6S_yBX4@jiX2Eg_>K8{F^d0 zCClX(UA6CiVP8Qi=tEZol_S;&$;XSOfIf!8bVE)Vq z%tSdBJ7;?J@?+F7|syBnpyx2#!ajEkSHJ zEGCQT2YsbK1-Vsxc{LlA80VhtuD z_aWYfw@DQ2I__F;;)UPc0?8lo`AHBAKj9t#V@BdmNHQu&Ikg`25)LZpGh~wsS&z^I zo&WnHyeG%7l`wzGc5Gd^;saf~CtL*&xy?hu!Xjfd0K&5@@`?TtbRDsQvp;_N>y4`0 z+DMWvhFD}|LX|oqT2VZ@K?L-KL`?d$UyFktQU{b03s=XN7-VfFE z$4dR;E?EOGr4xRqpKZPa%xj^Lg5biCL$WXThiY+f`!Bq*U zx$OZZN4GWCg9#dKVC=ud02>QBf5Z226xWgN9x^s1g`=s)hY|F#OQ>oECmaO!5}vq$ z0V95s`aM~h)9QC4UrBq}evMoNev|7PJ0L6m63&e%6d`B7iUHI1#bNPhx)-3s)M%k% zIe*P4C%D+)@P;w7rThtbnP(Vs)Ui4~8dzz;OCYqfSWD%&kcBF^nsE{FhdY?)1z zin>O2fI9r0E?Nnwr3=89`ldnA5yso~vx6m9LMFfcF4BEa#Q&zq1r$vSr*H(eyO&nys+d4j~{>g63%KeYtCSOoH;~r3K`*o zxeqs9RsA^`2>W3wZWG+rraun>o=VFpAAH`8)LiJ?-LjVHUHH)TF=Jk0aMAPc=Cl&j z|KF8C!u#M{zqt3-0!r>5KeZrL=m8ACJ4pWOFZxyBU-LUZlR9Wc#kKmc3mVlu_Q8qT zWM1C{*L5IY`?WT?b!(de(k`r`3W;rp?;8+XUwJ0)QYnyB^Z<>qrOsr`8G?!C3zkup zI^k~+EYFcCsGxtvB-o^!@z5=HyFlLHbwZZLxYgYx%yrWP>>d7XtO_g3!Gp65(criu zX;VdO4*BXe&-t({%&)_W3Pg5ml5ehaAWuXXP465^_Bni79vZb36>X|soJ*vVq zMWz8in}#FGjw-LOE*X(3?R~_fOJYpcXxw?bV#G5bc1wvN_Pw(-OW9| z@4ai?H6NM9hco9Nd+*=#Jn#t0ly=JXf3EVeHI5GnDd;DB_ODxL%(;NcM?GZ*=~&ii z&R8z>tY@v*a3oO@vAm+74>-Fb`hM3O~T zX#{y<6%7)t=NdQ7<>+eqvBtssv)6-*PpIFA<(~QSfp3|}L?q-{<9ufg=Ggvcq^|h# z2>?iU?tYZbfAQ!_$8%{Od7`=ZxjdOV$sdPt3knIH&PVqzJhJ9-WkZ7DiNte=`fnhZjR^WB8d7_%Vf)bIKn#g)k`yXoW zv*Y;dG*U#%jA-R5d$bn8E2b2+W19PS7R|D zq_7MCS?2-s+*rEQhtmQXlcW4|R0}$Gb|olV5fgQ1=s|86MZ6=mfe(sHk2$d7ExSW8 zY5{CO^>ZL_@^hVf0l-PsQJ^s<>n}sUkozQknfV60?C(6HqWbHZz*Jh-kW15dUtRzP z^fQ$NC?ekq`0h>QI+jlX6`1KN7Y9NEwf?LxXTP;;CDHj>zuTqn+xN-g`#-O~zM z|Bj)&aUDUfo|zU+Y~!@h$ur@bzHZDsFI}&Pd zy`uj9iQmY5ZxC-OQ&M;$c&Tp)Q>`{v8)A5|)YWeB5Tgf?jUnfW*LCN9h4+IC9f^D^ zvrtpScXKk#{o87T=C94YD!dOBVlUbfh3*anIkCxc?X(;PH^x-O$|uNK>vk+H26by> zTcr@^uV*Di+_R?eZP~)HnB<}oZp(Zz+2YGPcFmU(@<0%`9<;xEMKQ6*^>C4`(06^c zg^@ESiIrxb1r185i8S`KPozO7OjWOYt0U&UUGz#HxXSi6eJmWqjtM!yOdPpBR7^(T z@E8iM@TD#Rid>jH-PN~CAJW6(K%Nx$|C#2*BKyB*Hnn$#wI2I20@ z`|D3ATQ9XGsI>hCYVDC6CG6E7Mfz+a%LtX?l!@uC9|)yY&7rD4rp4Q&;}ft{L}Dp( z@Kcgq)fd9`n`IkfGH@=eso{)ZnSlibFL!oPs|QT)BTX^Jf1>+1?=PjD9Hk>?>so zwFqnCB0NGQFW3DSH2)?ca?%c?uhD?`cI>4gJa4)px4;qLr$M1^6u< z!bgkb9A82ODEVx2z84W?fk6fp`Yqxe1<9iN=ZAqX_Lbm=&wfMH5sF<|zY{y2d=YPE z%|yofufPgBu)o7(AMVdfl~Me)cV`>dkl^dTj0z3b1B?~v8>;x>zLF~MSi^1^L;v>6 zhoitCXJx%d9{{vs1SwmESF?r%WXq1+E>tvX9*_}$6QcZ=#~-ouXP+h;9U#S_P$3w@=g7)aQ&Z=8 z=RcJ_M2ZW!z7~Ir1Ve0u2q2w^?<3}*ANCk}gm5s9?gf3S6#=J1a}ndP)+yPFa{QLa$u!GjWanty-h$CiNv4~8~83Yo)LmEtBzzPfubf?abNL0UZUpc9B z%2g<00RD=+;WINC;dV=fHG{R|?BX)}u1XBk4fl8 z^nAw;xF#vOe!M>Xlaz<}?gOB@prdylZn>{)?&@L3%^@MO6{`})N!Y2ZZth8#_{(o= zO!iAts0VG#LTs|l)2SssBZUR8jL74LVew_RT(M~sB@tzsT}11bmdcNFaVif)2&gs{&`qSNTOFgv@^{~90t-n`emXD84cE3D6ka~2XBdWGKEB| z7LKZx3;c$Zd7DVtt#FE!BA=FeZcCtE`FrjL^j3%WN}b3|;4!&RktPZV;BZ}C>k;=W z0Br2G;W}UVq*2j72Cp^lpJxdoxCL)@E(JtYuGjvpJx}VF+2g#bv0!*TTJf8lpfgCD zMwvE)&8zippwkrIOzc`@!vD4p@0LP%tqS@lis)YZj0V3Vj!myb9t+2%kx?1SNqy|$Qic$hLWI=Y6)9E!x1g`SI=3(v(;8NfvA$zx z5j+zkY*UCeW^eU|B$B+rN6!>7|FP{SrdsC(RJon`&!-Z(-pNE%+Zuf)KA0GS3!kDAgQY50@2r+A~NIh)59h4%9$Mn}{QE1vaPKrz77Sb#)JDL}yEknA_3}Z4 z(5l;sMdh8%{*k)G27*a_Pr;LQVbce-kKi^C_w2pT*Jw`ZP=_>OyLu2%89GU;!rezm zP~ZEk1atQsEh(U$u66cG%VEHib=5SU7!?0oRMX-9EL>s^FM3#=XA zzO6QbXMU$5-RtG9;V*}I@8gyw928h0eDg%+;q;zjyt8g6nz|biYa8}GS=$vNV$zB{ zkNn3duc!Yk0D%N*J41AXHS=hX1y-V%sKAQF`eo`}lEjeSU+(1lo#Aft?w53f?c+$D zy5Z{?8!Eq_I&=0E!p|2Ys=CO}i2XAmfibou0=3?;du{n`pKv%=kc%Fgb}Pu;coI9m zuuUhQ?yi~KiKK+dewdc6RCBcZ!tM{CveVh!!tkJ-p9OR`Xd7p2E8$iD`_G7NfDOcR}v~SXBeJXVgoC7SyBzbNKZP&ogE?Z`Seo`N2RslB(&-dly~;C~RPI>+8+QhJ`Vi_uOnJQdEW;|7k)n;V)oBGnL!t{o z{xhZi{C;K5)cMrKQzdCe%K1}xwtHn($cdr??hcBAr<>tU&_*}n$8p;YI>Jm093;t| zToAdW)Q6pX8WmUg60|+grPqCg-{c8;iM0tGDJw|)s?=+)l5CMs^ZH0QPND|(I6&nV zd3fl1`3=eP+0HNAg-A||bfR@tT664b?g1(s6uS*aDfO%;S_M z=h#WWFnw=NQ~R{vpn4s-61Qb*MNsS#tBB|ze2|KjN@53T+)hPY@_TMiC_J(s2MgNc z<1j?1LwJAE0IJ%NWaQ#@v-_$vdFq)GCJOQB(uNb>wk|J69X~xisS#gVK_*EpzmG4nXAi4BKN2G_l}F` z3tvHh*%%+h^`sj7BuBwvP#kZ_p+&A^=i?{ND~64)XJu@ofzQ)^LMnAr)tU3?I~k zU%i6_CDl|lN`Si`c3%DJdi=`niwWrV`pl%*E*n|n>z%X~@)filkvC(lvHkr^q^K4Z zsV~AI93507mWpzoS&aM2SA+C`dR$05EpA+ieLCHR%wp0&{xdB?qU*$o7F??p#PKuFdEZ}p-{2%U^#}_(}OQi6e>Nx>Q zK@sr@wcm3!ly%XAGghg_C7OwDUZ>8Uw~$Hl)!Hsz-3F zuE9pYU2)Ggfx=3~wAgO!F)0n$Vp%e+n^K7A$Tg;`CjJm$tVwq0kMxfQ9+Q8T_8oPg z$fPN<`zr+xy3B;t;V);nU!Pi7i~Db@eZb+|`PW`gtkB0uB!^Qk^7s$6FrLj3Ne=){ z1T8GB5(qyo4cieTRZnVq{M*}tlrVB*LR(dFDgc9nOu+L(M=W1_KawZ1d12ZY* z?49Asq{yOAZr zS3x5Ob^Jv$8f;S#ChE&r|AhQl&bq~HD)DM*pA{}S4PF>G`v-;{21aU@p)G1L=gCB~90;>YZMx7w5 zXnlR~*<#L+;H;t;Yhqv{$QE>%>s*tWrrx* zzS>==JP!*>5aH#M^f%&%yqtVcvedDbaXh>m*^CI2N~_1LLA)R2Gt3oedmWqDLuURA zs-Z@bdGM8;5KUVpiiU4G@NHoGV1(i}^apg)I?_jdd9lY!mQuuD@y`V;Co(6~EP+RG zUIWHD)EpK@4w%VQWPE+6d8?wKp`O$J&pyRgn&vUXVhKe~zK=gNeUKx?fO$$ybBBGP z4Ur+SrabGtRdFK9fsMZtXcT~&bK3BRZ5|Y2=m^QG=EK@@+}^nz!?cG5P!HrQE3`Y& z94gxadl3&Ca)Kw49;gcd5ak}R=ZlP*->L^C{g8wvr*%&Wf=Vn)=?O5Ba4jtQL;(Kx z*@^)5JVf*`l=&oAH-wd;amRD%rk$?7@E z7d2rlH|<8=hlV6;xylHv@b)C*%qp|pPMC&NdeFkS3R-+8jS4M}Q@q`ex#ja={eHhm zP$fhRFFexv{eTBKcRPMnsZQ(2tD7OW~`(!8WX5Pn{+7)#xWwe9UzI4xq8oE#BrgrL^U4IfNK@dCHvD_dAwD3Yt3ui20 zM?35CEdGPRE1RO(f5hSM^PL&8pl(1uCnqO|OP5J2t=X4NXTGw$Tm%@2{G%8(WaU=! zzf+YM6eFuqLwL+aa)9u=Nt=e1_iw$f@zLs;Kj(`YLvX^y;^l=uI_|&o4CoN_S>%5O zMG_{fG7LvCR+yJ)d-ws%+FVIpt6~rWfMc zk3`XBjW_P}pe^M9b#%gWz3xBxZIw4)1dU)2HR51<_9E#$ea(SOZySb5@@}34)x(V? zOXaV^CGtQ*QG^@> z2w62>eAi3K^mqOWU)MVRW+}6dlkb&0k2^^n`y{QG=mf$U|MVCVI$9k;qoGoyA<{-{U*y zP&7Mzg6Py`V~^9=A!>BbqiPP5-RbXOV406){TOe%eSZ)ndSQU2m`kzJ634@`NewtQ z%ol*>FRvX;7$rJpH6WdN*}cRloFm#Abz0TlN%P29hihTSzrEtOgPwKaqA|I*BiqO_ zSRinZQpJc!xeC2^WosQ|TpGig=!VBVOZ~E<1Y_y{8#z#E5IU-k zs-yPY0p*-|0>Ozr@2RPF)tDt^0k2OM7v%A&z*=RZ`{G;OvMHzND~UJWOEwm!Q{!4 z8+V|2y`Ttl#txDr(xWoNpi5h=3&~;%nEKMKd0B1QsI5_k{%qt5{et-re4Y z=V7*HVBOp% z4oU8#%0xi#$H%PSm+j+iW=r3A@CPCx6^{>s3r5H~2?zA^>PL}llG(m@7{i5yXrRl- z=~%o&{lod^0_Q+Q6nb;m=!>43i(&Tp)P?dOrmP;+91l)pKHBpp(~a|#CtjRXheGXK z=G3!G;yg6Es*JrVUY#HkN;xpnQb~~97Mz(J$F-J`I3mml=fV9uh1Hl$PD*A?u=G9) zK&wdwuLKDKBBeW2{4rS>K;&a4r6J+RE0HtC?qIa>1MS6D-k3kXVs|r_{}y9$#9{1F z4x-6r?(^94zZjMx{X3Wsb1|#v)I~YoFL2EVuI!GrMv?u&0x5k)O(N>6%y@LFAG!6~ zM-4EbS8P;Qvuh>!(xWL3Y$li7(6SgA_`!p1{btU_3jQ1+$9a@ck1e18npg5&pTq9&_x6&672uX(e` z2@514IgDNEUa^F&WR5|beh0OIu`g)(qL1I?N zA(4nT<(KAYy?T>1zati$I-Kd`u_F@{spS+2V~;`j99*yQ2G9oPef!W~{2%qzj6OU% z!d~l;31d-rXNe_PM>pp4dL3mfQ_giU-6j9ue13=a_5krLVnIag*do~PXH1)Qb3`A1 zOlxv1E}6*ffehS<6Ja5N^D094b$FC3sM!7310|YT__}P`>(*95{jUq zIR5sE`08-AE*Ka69MagFu5Q+59*#i8%*Q42Fq03t{Q?u}>%hJ@WbM1H#w|r`C)7W= zsW>x!J>!RsSF}Y<>EAGbRE$h7Doy!(f>s5O@ap1`C-x&pJvz|eu!S7fI9_SruWya- z+!fXaVyT&^eEXJ@K)OCd#Brw%|<; zUeEeu2l!hV?u=x|78&=<#e1ME(bQdYdXo~937$}a`Uua*efnt1kq5&qZcw0tJeqUd z@bFC=aS2oh{hBYbPssm(A#Dij)YWba+8Ee+<)y*F9rF3mUx^|}srdiI*Pam%+%#Tf zPG9zIr9Ou8=l`LgBUt!?Kk*Gsd+}IK%w9Xq%5E@Ouae~N+GHrAOFaP^$JLE?8glwr zm6o8jizllxpYYZ~zH&H5laLl5N!XtePg0Z0asJl=5u!POZ6X_jzD8^v9$F_mn`%AS zEWuNR$HWkF7J9j5O;B?B2L=U6>GiL!w%ykJYeW+S3`v9h#{jEXrf@cA8d_SZUnS>F zMaroX@SKcYF>&5mQ26~=4$0RE@XiqJX+HyxZ>^eVIb|#UNf8)1+2mzIoIblZtct!d zm0PEEFRjq5EU8G;9~W|4Axn+qW!@Jnx?S&_0l~88(=3r`SOI%ZjSq}HnZS*J$&q#W zfPIl>eAX)8L)A4&rrL{pgp}e>1fuknxjOt)y9O|1D3N}Kp5 zfMY*52M~GF%h@I}xqq*&VXh^MjV_hPDLOL#mkCT`2UJ%DQuLrT6SrGtjku;EW>eZwOyk?icE(Xd zunN(HxNtak*KUQunm&JRsb<;Yh~X$hwx42JSsYwaPKtqdGAYk3@;s6$^LkpE)m$XK zecdQTlQlR`i9H1aMb6X$2CF6~Otb^tx1Jrymj&)pMG98#_@`qNvVW@#=MS8nV!g5! z?KpnE5q(s1?J`M_utXqdy=5~KKrvy2rU&KSN34Ws@CkNa`KkD78nKz~WYw7S^c>h@ zbI?FK0?6~qfwz3J7;9PH*H?6VN=EFqIHTbjFv_Zx`F~Z!qMsz=Uh8!>%rvNz8PQhk zb`8dT93T|)lQ4)BZZUPNUghun!5O~J2XRv*!q(BI7oR%d?g&K@jS7CI*m~1yOiS4( zqb=dbZ_{VJIOM9iXObH;odO1QivP}gl~X4-JEd4r5vhCU?LxYq?d7`*^q#Upj~ z9&<4MQ(ZGFo3U|~7hRoS-hdRj1D^)eN*RZFyaTa?-}e2pkZOwR!a2*G)$&0GX&Q(x zzDjdGbXI*aIdtK2g@&~_HYX-2v(y{pg^;m-aMh<4tm;+wFXUB>`6Ab5TZgf?9!W|# zvq2KAKa5+%F2`qg2j4P#7zeNX++zkw9sUc?KY)7F zB4e+Kv!i$Wq4;B=#mn>4VcK`b^Xn82gJdu#Vrw*64Qo~*0|Fvqd_x1jay@^7_#4;K zb+rCH%r?b0_$Bke#GVvf1OzSA$ywv)<>grbv>C6bXp+Z@Gzcq&_$~1lkP#|yYaV}V z?GS>Xq%dzxjT?!aI`Ag=_cSoQ>n%Sh^th0^7b(!w(YN;bx}45Gy@aK=93&bn+&x*;5%Tx+=rU0onStZ$oL z?ihmpu61H!`^VIC{t5ZT`}{D3R<^vQTV@#ATjT^|SDAW-a}HLwGNcZWlKQH58kyMp zgo!_UO)j%hB_B|P@cV30-uNxJaSu8~t*W|2*zghGC(HBEh?LvHe^u0EEg%R&MOS@K zLLUm4b?z-a1JchiH0VtK5}*g6xZAn%!%euE5#S3T^go`WyDZAi}A<@kci2S^NEZsjZW%L!j8%G;Q{+>U|kVh%z zvx~l=1@|P{=jcud0?aiGwqB~MtDBY!3v8tO#{SO>z)$+UBxtXaocM$1y`bE#c_^jt z_x^DNq#dnwG4vB>SgHjq4zA**#;4!5s}Xk`Rpp)q>5)JsaF0HK0rhkp>KGegY~Ik^#un*^T*&xdx`i zVl5Mg%Hlu=e$dB5`p#oQo#Y-jH#c*XPefohQfn&pUUm4(cZLtwN3}-Xhym+BM3dZB zAHiM0UqQ9srkgkepSAjiwOCQI{Gz|7UAwuilSd#HB`^VgscMR=ZvLyjFSJ$kmit?Z z$|6GQ^j4Xf-%H356taNroQC^E#eEN-w9A$5qvq4k;?-6z%jn+28?k#e`eZP=5qGT% zi-Fd_EGRR$=k>vaXsYQ(Sfq{Y{)jV}T%ir3*oxuVnLHC$lv7J#ZaYqBUoL6y5e``_+(7V>*5&;5byf*>Odz$1haMHZ3h|DtkjX zeq_tiZ1Xs8EP!~xVal{;D2^$7GU^mm=#}KypRl<8M4Bs_CfGs2==y-YNk}yR&mOdNS)zwf)GBiPi;fESszl*mv+bsXt{yTpv@x35ihX!sE$-TCQ3A|KnBId*&?`R; z4ejv3?w`<+p+6QQpnUy4-C5R)iQlDB!Xjr>tY9PR!cqS$K7MiDct@}y-((NaO9Pf} zJGP3he61RvncAh!oyTnqjpP_u+(bJ+BXZ~Tz1&lkQ&J+dU|?d3 zh@li?pTO*Ra|hNTqr zp~g9XN6L_P+}{>l9i+67Tv^l{{%r1|Yyq6C^rs&*dBIVsVIFh&z?3iDaczYrNT2ZC z$FxQ@!immpCy~-s?;c_K@zb$!(2K_9Bad<%CCfcDw3XRECQ6LGflSL$TWrB^v(aO zb(|$__TGsEh0Sx7YjGta?Eym0L|?tixcKWMA{C?~T0(HH|8(S%FzXvjCf5tXRmE&p zSL_|8JvF3>P8#x@+-$$QXrNZc;Y2dQ<8Rmv)`KaHjeR!NDtO~`HYFwGe2dIcZbPtC z3S6jXehHQWO@|Zq$V0qb^}-$&{~X@GdA;W}v|HX>In%`^;fKpFKvmYeiAs5XZcTk) zBlRVZu6pu8(mjRqU_O_;TTRru)8R*OZxSF@4psPF{GU_KFdnDldpb3koN*eeYIdyL zj-B&;k~UNoKsC6{8@OE2mQKr)F`WMm6Yc9gF4rCUM?snHp`VBz+rmF!lAA59qieth zQ!ohjZl1h-qPAi#e(6xM_2*KS1Lg3Ldy4xq-@^mt!jMx~5q#HBb&{QY04n7NEq_ck*Bp1aAL5r=_qa39f8^TRRgHgwg#w;`N#&lj+qE&EzE8ce z9xU-tTtJj3GMq|bSnWpa%UWqs1uXmr`iG|rz~s9*mJb21`T|MiOz((*5dNGP`5g|Y%{>|vl#HZAVNEZEgXF5jbXj_F>&2D zAX^y+>^==C2v4;rf`n8AYpOs0m3zCabp#P={5~7x+}u#}Q+1<$du91UK<@jSIip*M z-YEMvELud!TPT*_3a4S*b$hpqtmblgI8>}p zAZ~X%&pk+pyNBQnWGV;bl$8r}a;ShrL2L|S&YaF3S#_ZBq`{Gqk;wrx^>?Iv*2F6g z{p199seo+=E%vzm*jS>j&^LW3PAA_?;ctxYud{x6ZxEnJDQJHfoOZ|Z_0GIL8}sCO z2`qVD7P5oGl)%US-lDXseVonuo#k29vVReM5R!@meMCn#behJ10_UL(dr4XjSZ66$z( zWbGlo5aCv-<~t`NWuh^=1uW#*f#PwXtu6uyg?Dyzy7)YI`=-8SzAu?@{+Fodw!I}S z(65TNdAhF7)TgcLIK8;aeUDy4^^cUrm zVU_S9T+-@@m&L{qlt!lmaR!wLGpZVJw|8?0kZQvXOxJ)+t!VUQ;(6kny29cz3Q#Xq z5vox`3(zOA`U+?5z-9M*g5Ti8FL(;eIp7O-JNhdRO7bbKrKn^dTZt2UHM zH7hSSewk-)WaBmcA@ut4L9ncZ$K=mV-l`K%ROtcZ9@GdiLzpuZep#&}r(DdgY_HGW zN(|BImnNNx7ongpO%h+#QHq&hG1{JCE0X$mN@BCFpWog;id=5iD5DOPo$z(P$1K7V zcR^B#2JWBckuPm`<-mV!st`+oJL{akG(%zb6DVgAlN1yZNEOM!OGuR*WH@JhG6qMV zm@0#_P%Ro4-sboM7q9`N$>jMS*2NTUC{YFBltBHMjw-p@LbF^3MbllhaL?PebVSJwrRuY>lLKadPu|Rq;v) zyYJXoM~c#-NUkuda&wL9=VtxCYqV(DzRnid{0J%xhTs6(=M=X*R(Q%bQ+AE)nihmgkE``S?oOwRhgV!PTHacr^|#lD6s25i zuCv&@aSDx#g$|p`lc?v-XgE4Bxqqtv`}T(o2Cc8}(z1OHRM~F~tKhrGwI!l52RwYb zxkP%Rf-B3X>KeNoG+*hpI)`+~=7(Y#-M)#pXU{r`RTr9e-$)CA6Pl!l8yqaq%dh2i$LBAv8L-~VSO7XDMZ!5&eCGX5Fo$yEzg zh&ZdG`pazk)#XCU8uH=6V5GfKrqC2}{pY~Im_H|QV*zZl50rj=<0ua2BB~!zg(~YM z+S}dtxvQEWGmuoiK%@CFp#y$mhU4ujs=hQ}UX_#~3G}L7Jh$f^JSe(&D|e%DE1qB; z2eUOgXBTm<(z$DEJw9h;C%aP-wQn3Zxv~)V;1O=oKv%mL<~H&&k2_69|jRVuDB_ z1~0~&f1E!d))N2g;V`9X^NNft#b!LWwgw^Z+4!qEqWsiA=XbW`vSQvKU01$7&7sI7 zrmYX6fOT)Kx-k1>+697$fmYQx$u6VDWmV;7J5Q+aPTixJz`RoklGZ@z9H$>1X0uV? zoT2032-EhpU~Ek0sClmpP3`#TyvE16ag1HUq7(vkf2H58Wqlu+&|}U*YTZusRS^TC zfuLI-K=m(@BAe7BLjwXlKR+$i+vHPAhE4!7qUeIpCB&gIAjGEyj}RITR6kcQ3SDBF zw8%ir?Q!KSq3%Dg(cB$ek`zKQcTxTTi5W$JB2$4mg#ar+jHFBJat>E}DEn>qgt@ss zV`#kOyVzrHqgUoE)s!_GxA)p`} z`V&~MTj)oBmCVBmufk;8Z>v={qdw7jeB*>3?aO1r_iNXk`Yiwwk@lUc(w1k~iV{y- z11T>rUNBl!#z0h6ODHgX6`bN1&%}U5e6~PF3;**+%2mfP5cM%1&~3oWlIQ*RqL+um z2@t8A_@{Ec0J(0l5=y+#!)f$LOkqVh5g6jC->-1H~%=XsdU+f1cc=n@W*vDrAc#>93Mg zv0tLvzp3Lk@p75$zcn@V`XiF_=}20_@E5tV`nXT_(ch0o z6}6@ExaX9}bzW%vtCaZGhE=cz&6TMbgaIjQulkrN%g>s!0bVC5`Xk|Fjw5-!#4R&e zPxwbF@_wsr!_09TO6BWxi=mOW_bKJobvpEG56j7Oz9o$->L%t+&3#Qv4{PODz zG+g?c!$H=Ij*e(dVJ{=6ta~FzHFTv+#RW8m|16MWm<-WPDA;@uKntC|V>cPB%|1H56s!5Y=iz;x)6D2PXp%FaOFv zxzpfZ(^tOfEI4;g)?RBD3vr9k=DOvH1N542;s{)=JvIniM7ah%H#VgfD;@Ak?|Q=H zu|(HOrTIy_qyDf*e+N=&pzP#?%m&KYvYM$^o0&fo=$D6ZFOG^r!jP0TGg6Astm|;` z5|Hs)$TdSL4C83$q?W#Yi6iTRrU7ggG(c?uh=;%fOTq~W%!=0AE)GP!Zyzy`Vbg9L zh7c}}f|vC%iLnRk19O8znAm`O-FKO{Okdb}JcvXWjiKLE(gGxi7d2nk?yJ0pD=u~~OH1zvkn*Rz7q0YU2{(h^X9VHIKFk7c_w0G=rYJc;Ge67c@s|Nh7Tt`3P ze|NcS^^#nVOGx3zp*Og*$SnM{1dljj(@KoO_+Gy9x?}A5uAOZYVK^Gy`KP?!R2sq9 z^V8$BF-rg+Ff)nn=RQtQ5raxSH5pj0m18WNj(J{6`b%O_2o1rOXbAOh6{hJGZ9&eJ zabZ%5hvzqjRxGSvRvnf!>nH5lV+e-A5Z=v$>{gpIKTIoqNa%~E;Q_g?T#C!t)O}K)4oseC@U+J)SgW$yeRWt;re(C*9prXTLsSJ7uOBy{E7Dy!j|p* zG8#vkIZNvF;l+VZCq9n4Ee11N*i{08OTD3QEKm{u6dQ0E@ zN;8{;AKIJ|={Ww?u$E;0e3~bVG!6uo3NiMxcyd&4t=y;`I%(1?1AZw*ypAtEZfUKR z$lWa)3pFh*OQ(U7s;(Nz9!kM`NH;VZt`lc}CKX@@VnJ`FRx56mAjz~H&##v0;a;*t zW3A^nKY1w$eU)Koq-%CPRyDbI(Vb%xnkw4Jp`IeqEb~3em-wsGm@BAGY}!{Gq+Z*( zQJ%M<>vCuOXL*D%jfYy}SQm#Qe7HWH6wXB0IO{#FC2{ zS$A`RmM7+|=_O#}8MINnB7+K<)`~N6bg7TMR7~GV($mumgU6q;#`BuBZF_v=Z>-9$FLBX;{fe&8tdes1$wCQM5TOp`pkX-BfX6gLaeM7 zI>c_W7I493KI2=egcl;tdFxT~;n%v~&s^oP^iI8CUadCk2&MC}WONMLAdG}&;>4$f zP-y2nKE%%(#^8of*384U55(+FhS)E;P=@f+G?yOi(=cdZUEOH#&-+PbN?sUGM~@&Z zSJ`js`(MsU__G|hmUJl6J{A6Ytlza5WMhCe6aAr-!%rM|TG1Uyi_2K_e_@&rE8dEEyKc)Y6d?#{KD9}ATUyT!3I&SS1!32&G@i3VMxzQ z#Gy;Y@`*L+)o-(RrQIaDp4e?$9i1Npa}$Dp`}{trbZQF1gwNBIeVLi|<79uI>i@0@ zwQnb*)!Ng>;cqY#{r&+5y1?MZBA9CeNX{&oYrorVmJWz%_;j8LFXIp26${F;@g~_s z4UVIKS7}$01E2RX+^KRy>tNX6_Pc)6C)w3`-3yZErexr;K=&?qTvEDy8F`N=b@tNnFs`ASR}xIO;V8}#$Jm}xMy6ZjqE zYgF=!n-+rebW1S3hf~xrpGnF zXekl}vg!*cAGck&cD4<$D3Po`=j)yLeNjJsBy*vKH$YB2`Td}@1wv*}XF+r3OpB_- z^HDnbbkH1EzM*ej)utWjTs3@-go}&}zJ%Exjk_L=+tyh@{bHhw{4kLp<+&$67S6m8 z+&SuY^)PAg{%$ZKn%le~gzgZtbTsidJknXBsWKOJGVyP|{ijLN<1dv5c*fsDrj1Rf zAsIOP9UGB4+t?kye%(BN)uwILwcbmglve7l{FzS!4HzprJzL+v7Vx?*J6x!d_Pw9Z zCUuMRd+hgnHMX&w0^gMd0#@-_4-t!dbsv){?7L&`C~Z_>-%$L%gX0fQ86qs=O)L$( zy$<76Z6qBW-_I`rl7Rtp@B}-rzYHXS3p2Qca?^eWweabI7e4o}*}v=PF>_X{Rmc$1 zYCF9f|8iRrVYWFZY#kV}kiIB{_Y5BdWC};Tsj24v9FMtsy%(u`0_8?bsLJEwpfRWhDpiB<031kphgr@B~0gL0bq(R?bg z%eB_$WjexAFL?SSq_B@9#x)N<{HV^4F{vbR{z5^SZ)oBZJbfE2FX-_~_B}PPOEtHF zEZY~eF?IW#yH74D;+pg)h;u1HKcwNi$SSrlewT5jYnLIilKE!{u$IVM>zPQ>I2_x9Ut~+$E=uy}m)es-wRV4e|cUinE z^696Gk7XjJ5Vo-Khoeb@=f2@MW)hi=g7_N;7)8Y_??2195=fp@|Mf(02ggh=R3OK zEPMD4m(3~cPmRye%R9h>xk(6IyI)|Gn9Q&;L*A7$m_VOyMZ6q}xnDq8?qzAoHL;OT|N7jM00bC+D4zJlkG`ErD`BQZ z?s`JZqQeP98}Bb>Vq$LAqer`Hj)nCv9|AP8r&qt%`+^{^{C7TPK{<$WoLI-~3^&0jDoSHd7O`nj1;>MJHpHp$*dJmqEbv(^NEzZY+;TA+?Lk z^6U3vM&1GJV~v9Xt-Gc3BpFEvLiTzB&Wr4Y9H_v3 z&|>zuuF71g{?T}p&4;+r=T~1{djtuiNY~yjGH@IoC)CFTNX2wA4y#;TMmmd76uPSw zb=w5PU*6*ogj7Xp`eaeqYs5~;N3yZY@v+4uJZSuNSt9(g)kUk29i|lz>ghmI65g>6 zLfyE0zWCXT5}y(3;4H5Z7D5k}^oNkU2K(b!SX(E;Az=>ix8Er)RGUV5KP;_bYOaoi z!fh`~9QOR#5kGOIF3f>0j=~=^y|hzeI18nK7`Kk)5O6 zMObpvET!dRKZiCQx{4H(I>lq2#>{mt80#4cNix_N*-?~`AqeFzaGYN4c-p3zHv+zRmSesyJp{J9!9F z+&=ft`!h+K%FoXvnTZEe7kYVV1%V*P_)tH8ncbaF^)bvnNhm%=uydHcyVmekd1yol zKkNqmEg*+K3KZI)dVJs9oMNNduEBu9kQUMWtD@a#c}&Gsp_=+}%9$rvV-z*yo zPj}hRu#cqWaQ3)?rBEfM1T+i%h5sdRS;C=4AE0z*himmo-&NGaXjCEeZK6252d=YHPny}pnCn7J6{ zcVeHl*Is8YGSicE6nP3m<$~QROhaY=e+TDlf9%gcakzyq_|3D*@kG3Nn?tZ8!4kRu z*D=$(TcBKu>1)ZfGmJh2N_@@Cw#fL3R)cS!mzSS^-q6P6@47baK>!5h$aCP2tz)q9 z-D-L0{)O=Ik>>YP!79%u(ZZ1NH6a{oXg~<6tkD|}fvUA7i*gCn^wA{9^2(h$fX1c8 zeAkfLk>0mN87xigZEFyiwu6I%*4q=^^TE%MA&Z_ZG(s0DEahjee>Tl^QjOGhXma!2 zYZgq>nI@hwy_5L2Vl9dU9cE_UPdw9iYu>x+_3c9EqW|(Bn8K>}b~|B_@xc4rm`fy^ zGv?)wmgSr^vgB{`M&65~*m>KY4zyHRt3S%23@??Q3cZ|CEbrmI|?itk?tbUuo ziIl4?o?A6dOW$*-{&sunqu7_a<=&A$Vp74;lVAC=2VMuL$?*G|zFIEB$pt+#lYaUh z+RJ5~AOCwi-dYta&ogzPgVZBm9WS#BdmKH71vTvEf87B6#;_OLD=l+q5KuELY%AE}CXNg&DKFXz^fw49@Yi(%!tyC+* z9o8DSkJu?3)Fl`+0YgLGJs1nvl+Fv?jKuyX#S--K8dOU%I#qeD)&=Z7 z(vM+*YU!mh9=aJg=z;Kl+;?+%p(sSSiV7K!o65g6-f7~?L*}J}6`Z*{=026?8 zw4P#?Swks1Le80`1coyCr(wgO7{rV3)^hhyB_|N%!u(tOu2Z!Bb!@84{NvWVdX5>2 z6I-Z&)wd9&Mpx-3Di-g9=@wo!1hjxKA#<*Q266${nFQ2Vi@0JCd^>?@8f1Aj_uqm& zWkwBiwFQ#T&p%>`YGs?@Rj6igDQ1Kd+NScS_VNGud2zzogiRi!;e8bH>G`-G2f29j z8)*|3zW9J`txrJ^(iBX?+-M|^CBKN&a_-N2;nz=|(V@%Y8 zW@ygvoUnJCK4OTM>?j91clW^U&yj6}W?Npq=8}0^9THE*&igXN>oV%Yc+vHfDx2XL zgWn5<*oE1k<}24Pr6N_gBp4vqDC_Cpsn%?OhL0EMJr0c2pdSsS|xGA|h8z z!|R-(rd}ihOzJ_xPEP3P?InK8gzxK=E)GwWprEBKRsIwnC-NRqJQ;;a8+*;((rMoe zh|D|lgpa}DsqwCFgPp7&)-wk$J^R*VN!s_cQ_GG7mawdP+#aJoIFcf=BP%kMTnFz9 zw=)(L#^Wq#R4`ed_fd&&S&WZwR_0FB&2)EXfphothp8@A*Mzy$pKIuPR@$Bcw9!D zQso4%_;tEh!Bc|MorL)&?$=&_RtK3U_p*Xw(hQQuB^dz-&MuY(VT9KM`btSz9qE{I@94oi--sD+Dz2hnA9=h{q9XQI$LdvUjbuA6ft$5=Zq;(dx>t*spI7G zV=Ifh){DB+sjvirL58z!4{8@_izW0yM#!!T+uj+|fhH2&PmYPD)VeWE0M*vw&2#)- zBO{}3!E6I^2#0B;yx%Mys0HHI>Kje&o3l+xkC-jul$@k>zMcCBvG};tN!nFkp&- z!o#Mqs7hOZ&}mh|CQWLyw&@Etb}^hw`C8&ebJQ2zSCB%m))L!>jRi8ze~F%T3gT|_ z*EX7VV7S*#t=yyZkfd8UVZ&ZwkqvNs2W9y0G3*QvY=-YRUiIU8)0*h46xgP+EkeFQ zUiDL#b>0$hc5jf3Upp)=if+{h*vndIMATWY2*s9WrzLFU2E-7&jO^?rF5`xF@BXnz z`tAAkTf7^kO6RJ6;9swaphC3G$fzjZp0)d^3o6gK(<3%751r3W?QL|+La>=PHZ^Tu zJu0!%p@)+1<_}J>Ubx~y9?gAB? zzDq^Q*vDPFrjtOTgLop<%0y}jR{IpS(C0~?pIq7?Z(+*O$?TgPXyg9v%2DMI~m2KCCtj|T-ybu_o zzMv~J5g?SJsGV79MxNG&-FA6Eidtn+t}&AxAaz;M(CW6N_>8>hB1)q6l>MrFek$OY zNnH(Hl&@F7pVnjvYjvUc)(2UuDyZp6=rJ4+XW<_25ycpnOxq&)A>Q!<5-n0lc|<>) zQ8HO>))48*z{%MLJAehfA~e8Uq8fbqYQbXVTW*Q+K;g76thImqj&ebo>Vx6+TeVzX zPw7RcWz7e(MVCo49O}xDs;A0XIa<>dSYIyoh*7KOQ~T=68L;te9Oz6%k@Cg&>7ZY( zYL49W$#f`3`C5 z7xQM1k0oQA=w|HAT#TWK@7~irlJ7v&5e%aYr9~ts^ zEA%!CU-1X|M*Y<;-8LwbZn$LLrI!L>>*Mslzb0|1skSK1L54imuaT%FS3Wa-i%B;2 zR@5#tWG3Z%9|PPIVKQ~PX#a3qvFQ1HmrnYutpbJ<5lpl2v&mJC%wt@ur3f(zEl%(q zM8<^P3D2-@E8X7hasM1;R70(%#;lx^3y7Z7kKFu46A+8$I#?$w8%liNq2w0!4<$mR z6)`#0PxRWX9s8IsUHLNGW!GR=5Qhy=SD~;ZHJnW(r zR$Z_cXOcop{Mu_hJ9l~Wt<7aP(sVBgU&wqlMq$di_72cGZTa|DFu($*Gdt6J#SecA!%VEK8fy!u8Nz19E7s4i`_6T@ zqT|P1Ue8DW0*M~wz~ld{Z6Rc6H05WY7{cKw3t^Qrl5t|KbCsU+Y*T#xB?S_^Qty># z&q&B7ksgk94M`6786x_NbHv|hPH2cveN(5Owq((GTs!r39VBzktDYkGs}JK?BYtc@ zXv-33%CzNu3L4U6i6P5t6l?mMJ&!^B2~XO|(OjU7Ivf^dcYhduHav%m7ArK)SoGlj?0N2cn`^wf~_INfEN5y)5ekHiJJ$>DZ5yZG7GY7$84)0 zF}BbWSK3F49}U;v`tAgm6UM0keaxH;tsQyNO<8Wy>T7Pi(Lc3Qg1<^I_6~I(h|@^~U^gJ4-(m8}Ab| zwY5`6jr8h2WtBtI>n~M!qn{W%z57xYD34a!<9BYbj?7`zPj@?)Eas>^W+CgtWTH4-3L!Md za}NO_8GoCq3riNqyPj=E_}}WSA3TwKQ~03`Z^yL$#c(TjvQYHS-c{}mQ#~n6f7{e6 zLbtu6kNjoM`7-gU*C)WVH`Qwi8ppTY`^Wsn3rEIJ774NY{esa zl^}9s1w-f{#HZ(HQ;ofwwo*`{DPtGYUnRNU1C@3<1b)`^Oxz`mZRGUKUmu~gh|2g` z53GSG zMlC10dxR>yY;}z6_seYHRhC#o=ru{`mP7(tjSY)&HSp zfliR5`I(t8wY%4O#+ms)6RLg#}lnBU=PC*fX&c{lj)=| z`82uO?W5(o)K`_>=(-&#o`gylN<1_IBwZDcjYy+n(#7$`h(|K^b*`~Y={#7h0k+Dp z&L5$?4Vbh$rH6t`gY0vmIZH~x-FLmOYG|EFolsdJ)`A%>=+ zdEk&DiM|{ZcJ5~0PFr|6x}S{oY>l3gpe)o(Lspv(2_1}BKorH`OAEJt(At(QDk_T0 zVL_k{Se?kd`r#@sABwxxcz-qk_oeO2mW}w6f4lC~N1OV#cJcw5D2=Tx zkSpi-a(b|$ub$?sUJ?JCw|W-0exS&s64+;Tcm#fONX_&T0nv_L*!;hKUtu$g>ru}y z`6y#kGIM_~OWIZPf~{Yc#fcY}9KKS^jJ5Xtrq|@0`d+t1&7{lP+_CodshvNDE0S#5 zEy%WGT1Ub6=62P7oWZ|0n4cTG^t&@SMk@osiru)j6?Q12%Taqk_EMBaYtrWFH5#cS z6W{cMTUW{bTe{5L7hn<$13VIEH(_iNc6J^E4_%+Rny8?wxxPqWKF73%A|H?(*5sDz z^xH3vmjzbch2vW)QQWx{xIh(B& z8DF+qdSsZvrku~%3tOn&CvQLQNS7!GXHbrw&&wYE!6roE(h{3_`&QtL0-Y6e)sE?14oMu zn;tE986adaQh9O5uRsL+rkF!Z$eo*KSqE%pEH_!)M#n6Crp5-i4;S}kB$!5irdH9R5uhX=NDi%)2pcLRoF@yKK^{%bMTT4Sk%b?1_XfU^GX zc&}>Xa|@mgtw7^_%G-V-%iGGXZX=t*T~zNDQw-OuZ`A`uLIu^X-Wyj0&v}sR4^uOb z(OM;KzFcij%w-CD-)%+{oN`fzB9SlSQWz!q=FxNQ=G{vmeK)6ZdAe-#T#|@ptFT2VZ!q zFgaVMN<{z~{re<^nF$FRE;hLk-D}ay1YDZ?HKLZ7r_TsszD;_Pc(sH9Q&ZYrz=wPj zbQ@0qUa#x9+*bVw_F!6B)DZX+Gyaw@@1H1mt0&|#meA+m?8yW~<4|#Z9zc7Oaxq^wx{Z&*!^JI)`z-$~Pv# zSv_jfxqbsL4A(|FP!$9L=sVyMGe+M%6L@ibb=6m~zUf?+ug$^ca%A{J?Z!RzWMci< zGt2gyQ!X>9?{!Buxdr=f;xBnH{Dakzm4VUt`4z>Ni{*!UvP*i-L2a|*!ubc}kxY7l0LY9V! z-Gusjq1&-9esm)u=aC|ypKvAUh8eY;Zr(Om-b=Saip0yydlp1_-wLZs6Z5V2+2YQO zZEO@-rW@9jO8X=)U&RwxHnNtdo`pX?^kKIBZI;DszC|0W4182Htr^$y>Gy#!RruGW@#Y;IZRVGMIQ{yf%M%16Ox!!*gMw zi~8kJCQ(sQYhHH;hq8^Rq1X!V!!O#5gPXMTmLOWePj;BFK={&zszp_dhi{en*F)@*$Jg`c#B|{V_|ah1B#26!TW^gBd?R@ zwR8JwOLadNC>%Mz!M#Tx8Npq+G1GO!aBVMtD_y7Lsav(*|L5QR$iIZlhXb3l*Z(eF zR{|I1kUES_Ig8nQB?P|y&CSiTJa%72&`0JKaD9jw%oI0?i;sUuW5>r~Llk+l_Vn)H z-LKuqs4G=3rqNR@`TR2{q~|+6>8Sp+i2e|;V<|OL8J-FqJoyhk^o9qYCO-5~yr&vj zIk=K;KGK_*Lh=-(+;UPg@0iHa(%epH5qm{OGdZ<;9uMS4#T4oMb(*pT?ltmHG^C}2+n%l8ZmZM+Xsi?e^1b??b!ck5}QzjhI-9BZ{Ub)K_{!QREJSPQGn21)y&o%nocs#forOu;7=k zetQFaSKQ|_7N1Bz&_u7USU zljvM-WKXf$cAgBnTp&}8dYRmv7wH!`!Rig}&T}gcMsgVUGoSzc^Y+Q%ul-tS>}xz-F~trq04DZNsJ;W{jwporSlf9x!~j z=`QF?ft2A_XXBPFlr9T$;Xm4DTR8wc4ZlM_yTQeU3XnPfy|BIQ=5MBkd)!tE-F4>&&u5D|nL}5m8sXX4fu# zsoAejB_i%Ur5@L~qz!UZn{=5nh^qTEYuI!gb|7*@l2GHzL$wm$aj8rg(#X1HPY36 zbW4jI`5cezHnA#)6olSd@iT9L6|%QtXjHh$^TEl&(~ko4v$#Pti0Dc7l_$(lY3ZQ* zY5#|09zMQ)prhVsL#0eOUGL!@)Vkr}w0Fir%E-v51UgYKV7r>v*l5^%w|Ly&=yguV z$$3g5e_8^iT^U2=SWx=g{{ToL=sxxLx0HZm&mq?hKLKfgnrDsU|86T2_%5myf{)E` z$Z}*ld>1X@Nf%E1{AU)IXpX{8&}@*1a972vul8DaO`9>QiIMzl&aXjpvLUZwq!@$z zMMY z6@n^Kra^i+%zJvG?2oszw-*Qcj`g{Wh%)Bo<(*ArK57!O8TNAMJi>;nr9&iCRikhV zC#R-J%;spnh|mNF2UBZ^5q7p9pFq%$wHhr>`gL$9p6?*A@SDI>vuT-B3Uos?umlED zPvXbGOEwpnsYvh&*G(E2^+ zo2AdQNw0LvG#chF8Vc#E@%x47-0+c>VL>adUh{*d({S-@pE?io(%O%nwY&IFKmsA+ z!<)P|a>n%mua*KnobqAIcTosZ_pP$qH7yT68c*7vowYu}>FtgpwR*h2^&5yskC$MA zNW6O$Hr{;s!?6$OBsNDL4@NBe;^;9?2{C|YGnXcR{l=hIGEa%yQE9tws%RTO=MQF( zHawBj<$Jy(qZ?FJF9{F7Z^}b`^FgBRi(eH84n;yRxY18Zhmd5kf#`+Wy5Bxsy##-Q zT=YSx%`W~v@|{|`Ue-u?STa7e`1g~C7lB_W?j-z&RW1CR(>34uj+d-n4%gIfUJHBY z-lr=Yxr%9Gg=lkz8k1;Idx{+4WVp5qFKDR@689;7i5+=AoKP2!M<>ecy^~&RBZIp$ z(Q=OO?N{dL_UuShdni0U((+p-Z81K~%nE$<4!K|Ii6X^lOZ9Fg=;!ND0eGl8>wE2| z{+{ovj4bC=ZsJ^=Rg)MZX6N^j;iH%l|Ht#Vw6vF;oSf6IVIN^n z13I*@1$9?rNQ`DHtfN(@2v*bi|K6l`K3uO7uT`Z;$Bd#wJOu!oxa@e=F5 zGxmQp{0q>a`*ZPsRT~={3WkP;VM!@nfYihNB+%nfGl1iNBMmoIww%aUbq0pH18_SH zkSkTPfM;Wwcg59%Vz|;&&g$(VfPKK&+Dc0&3|`3nuBQrizA`S@F6u*8sqN}n7ODB> zlF}()e^4(7Of#n`lk<|yEmR(wX5Kq_EW2I(?wx)KFtmJaNpm@t$FF)O#UtYkHvH~x z#q6kvOV)AjAaxZ$R|ICH{!IlR;)gQ0@$+?7L4o|sSFbjK@TFNGLrw4Z`&4uftv7F= z4?%UP=(;cjlvNT^QdNN(;KZc_(sQ3(Ws|tB2qI-;<8QKdZRUT&B}&RVZFgNu4vXcT zC(JG1*E_Pj*v(omAv6~Xf~U_ZDElmO3p`sBYWX8P-%tPn;LUr2{bXh^ zxnJbsY&Eyjuh_m^2#IppzAw#Xkn7ud2>7wgP#SQFM)h7vqesI3cf;Rb;ynt^NOx5P z`s$&JT}KD}*rY#?_T$foC?plgN*rr#cCK3$d-9G~@sC~#c}H62$qj@AGduSb^AK#y zC}ZXr=rw^4xkr;kD`>{f&~Vz%yvnT@i_6MpTXMW15XQge1`~6SnbL<7C1GIjRpj6O z`57=lSJcpm7XjX7aL|FaGxy`284C)vx{kPQ+zq{=AB6 zOhh}~IyX2K`J2Uy^6$3r8Ayj~^22vv%%h)owrn<^z|#tZfavn~U`>^y*th|u4T~gD zX(;o=Z(;!MAe!hoLysHDY^3AuJI{`{}Dbm!Ja^Fkt%_X zS-CIWxRc*buEm2leP>i`7dO7uL*sKjK}Kdw{m)ux&k>JrQ@{T}l1;z8i3cLzpV$a}9Q!2{pdp1~_-@DDp!Rv53zRZ4`0LP_D^?3s|3$eGJ{>i6+iO8?J-ie4fZ<`a*%tqn`_nJ}|B=X~@!DGg2ibi8p02Jj(VmtYX}-%e z>tsz6sB+1i#A`|-+KFf8okaaWdLi|@kJX3+?A1jdmPT2C?=50ODs?%TM=NxLDr&(x z#s$-s5%zBDlMWYH$1r3eqwR$A9~8R>m%Zb=PGZki$)RC`9Bb%QFpR%0z9k0U2M?95 za_JlIh$&3!jO9gE5D;1gi*kBse;ytuJ|R#ObP@BB5u)@Mf6Gs<`&kz{FccOm7>~D6 zHfhU6&8TK>vD0APW{v3?i`#yrnW0QF2RT!<{Ji8SvCwty()u;<#orh($zrg+T)Ed- zO-)8>=>pXMPAUJHwIlp6Zqj#XzO@E^qaw0GIXwfA2XUsyOM9s?%Vj+LBZ6G&f0 z=3;-LeE?t%<_@~+xIW*}{k5srZ zQDIoz+3_IfXI=f8P$ZO^O}mcuW& z2p=rY=!r%4dF-pcs^crgpNq86DfHx_FxS7LYfhI%5iWt_56 z$Y#~g78J!}TO2>W1RL`>EL9Q$Peze<2G8b@4cU@;czIt;$ATJGUv2dJh1$1A_4{lu zgxyPL-v72|Y;{zm3ImOq#%E^UN&PxpsM7%X5VG1Ev{@7u9>j}sbrXVg&Mqn2)A7Yrmo`KPL@xzN%&HSi{#6O)( znUT|24ICn-n#fe+%)#=W*Ewrx!io<(wg5;90()u=#e)M#_eW4sBcB}#`5(;V=_V}j$zuoV=l$VR~ zZxgpO&IX5#i^{Iw>5_@Q4Ibm88g~ls!3t1&7upc0p=NDYz0kxUO{n@hq5WWn!wy}W zJ_bPgZ6*`deB{cL!3bnF07i%DC2s6@ARxgTUszxP?t>iWp-msJ`$ex8Xn_}dC}=j! z=ZeuECnJIgs|pmbS#I|IPl*IrW2-9g)rzeGd|=usNL;ughXfAtfN1euIfprbb{*!c zwgPCugRSVwtE+(*)a|RvK!nr=|1?@lzh8e7^S4BgezmSX2nz~SSsj<-&|oy8+3C*M$y7W;@M0(`n`jf;wkxPT4# zIf-xoYJ7X0%Qo`i^6V@#pnbX((GS1G*t9{KS5Sy)xL{Rtz|{xXfT21+-g{{fCg7}= z60+)B{yV3a7z-5l9(hHCP(8>0rK- zxmOwKR_x(3p2jrs1nl=29IzJ@s4n0;)B6J+Ha!M_|M)95Y_%JKAty&ukfmq&-HOrm zbT{Tcv}AL^ZsmlC$p*Q5ff{#J@_)(ZG7CBtwK49he(9gC=gAgU`WBE?YDgO$imu+@ zB%7T9(f7NQS6@OJF(#opRSexRX1 zPx>;wZbQLWeO&F=^i|3F{#`PfOpr$Ww(oT=sQbaN>d%LTt&SGz0IFeER8&j?K9rZ2 zFWS&y=ma$cX6AqE0%MhU;7MJC~LDb{#?QKRl>wZ8g~Qn_Y2YyA{_F!h=#q0h6+^(etN3 zi7*O%*8Zl3)je{doJsbGc^JqT8oRn8{qE;=9)fmt!L5)-@?^3aW!Vgaj!CaU_(8-o zGBRZ=m2`mtkNil_{hoUxQ}yp09`c%p5t;bBHTGP6s-X}@ebjVqO#3IGyvuGL7*0jq z^~b*!V|H_MlM6!{>j}aUV>0>ocRK0@nI=PFY4i%s4aI2+|Fwu&`&Y?P*Mk{OTGK#? zH5k(^UZ8@-S9>WaILjW$nvhdmtfZu@9HooaPL|*ZvfA#+qT1S-4V(&ykqb@Tv~kPP z^Bu!X+-o#)ct}?>D5qP66E`Ox=1r#}kuprjZI=EszE9oYWs;kFB61#OKem)E{kbU!o<^fY~w&i);sUm@?o#sybFU?EKoW|e8KcyUy+hN zn$Hmse%qP;O9Gg`e*f-g6gx%Ns&9yTgF=Q&@gADOT`n_I0;&UWXLd6TM$+2-PseYN zUoS2$j*pEwjWMH|l~Sb##%mZD%y;p`5Vh+KeG@eR^qA$@Mju0_!UuLr-j6bL6IrhY z_6#n+ztPzM1XB{aAf^)mE|%k%5`fHOAr=*^04k6x^CnwiCzFqkrL zEKtjfK}n!B18KEk_1hDh@L7CwdhS%}0Hm3V!TwNW!{YhE$;X9-)hUQh_Jg3@c>GMJ zZKpETl`J|}Z{6dm!T^+xR zvQDnvyVb*T1?$n-=lN5UfKMYL_uyP4Z~1Q3{zx}EF<~Kv(F8Bbc9S|PfYJqvaigyG z4}B{s%2f|Ex3%?k-uID8ElISuNaH#`4W%BZ>!zBmS7rvFi6$rl)-Azh> z5lyQ3cF3_G)OJ;F@~L#FnPxrQ-Iet8QsHWK!rC>ei)kZ|MJp*o$sJ_W?1_Tcq!olx zS#66bK5eAb<=~>08B7SWEs^`A0>4vudLGh_Aw?GEI%<7+dCBl00ktPb6-ab!(_Lb4 z#&LrE+?%{l??!1?-r~*?-*3};ybh_wXyU^T#RJg+`$w-33{I>`H3gUIi2*Wy)`5i= zaF3qwM7(jHU-#FuB#9ma6Y@C@YVGcKBKVY8j-K&b!sy892zM^6v3H`R=PFc-%0WR?H8c;X9K&3Zim4OC8sx9O zIro=wH5`b0J=`L`;@&^LR%nsWkXvv+FH_3+q+_H1T~&KXG0E*bo}Qnz+a^Nei7~FV z0=#JH2Z|2SnXO#2t&mSMNNkKfUnu#1Y80rw;6&*pg&GE&JT;5Pc=n7vL^!av-Nb>B z_?=`b6<$$ENj$KwRRp}Hm!t{|Vg#T;ci+?17ziP-Khx_@d}`Hx>RIRq_!=wVYT9jv z>cCpF?AHJa;XQwtIV^*|K3fP`Nq^#m-JUuGjwyKV3{+u|u#_@FDU1W^KLHa_I;Bs( zM^9s+X4V<*g?ePLGBfvuK}WSA8xko&BPSn~l=^uGpc%Qhyy(P8<=Udl+0o@|6tD zVPy@;EKG+CsV#>80uNal&0=zH&W=o%ic2yjKTkQ?c*3iTbZ*yR`EL^LVX0n~+)>Lv zzjZX^?+OBrAVkbu98`_;4`&FgzAHcW*%q#ZuC|9^T@nl*k{7uN|4%*}HF=c8>+-&` ztT(^C?aMGf?WPnEAM~Bp+5>iDTi^AD9R22hM_dd}SbsTRafBav5cq+O9;}Vl!Ud|| z>*HqXwQti4os{CkN&bhLm*Yp=GUc0ON*w+}?NVu;+Yl`KjC zxC_AjfgJH2F7yy^jaGa;qwnwUIQDY5PxVVIsCV`*mP`bH$9Yf{;Tk{we<(`MeJBum zycoKR>V5ZE{(~N5S@YGgI-Cno5F-OHkvXAi0Uw8e^H8M1)=FED+yNr$^DsB6KYb%3 z{7B!x-TW8H&(XYBET1^3SzG7ho_H#{15{Ss)FPd(VPy2dxEB>$u=iQ!s<6NYJkQNn z{c3$CVXT0UEe4r29Oy#DnSy={kl4K4&P;~q5RBrtiglYw29~#Hn@cpX&AWgnsBj92 zo4OfPlkH)O5GE@tt5kRN0i`N+TsW%}X78-5lLC%Ge#&Q#xM1Pv=6+|<223T(lqm}v z2*)yjJ7lCu6I@Bmm0(=yO*JEiqXJCQOAM`ITX#j`j(fb%hhi9dOtBP`*m(@;k+d z6T4Y?0w)-N4a18NC~4sS8(_9(%NU^*(M2Cnf>-G1rko)L`R(RqnO)YM%EdRum=x(c zTKCe~j}rroP$Uus4t)SM{At3nYUj(*5-7wN`1dv$0Xe~jG<|$#b*#=XJ#(Ed zk-F^uSw_)a28e2Y@`IRCpAn?wd3kt<3rK4hsh&^Xo^Njg$Gz^`ZUgOwY6%`L&mdw{ z8ZyV3lA9aPR9^d}=Y)h9WS$JRH!QVV5-IWDzWEJ7w1Xy^mPVMCfoagjm^>wKAUW*7 z8>lMt3JVpuxVTirmbi@Af4sS)NT<#XT*s9P5WSkQ$Y)j8(AbPHxzA=X_&r#T^~-5(mNIG^x`4!`?r!*_S{v_V2;JnY~1tCH~`4y(+N%L2j3JpyNuTp znSM9{9?w4^%gG>IPv^-;zo3@w+Eu#kZ1U(k(Bqa%AjF|TWJgSnHfyeNsYx#uV9m%d za-Pnp>91yvZ!)=iFlzWk<*Jf^)5Cvn{LUJP38_ClM!N7ypBp}XL+rDVLz8hBdQe%g zK+QN(r?SEL57i%oP2j@z%Y4xqO2d?ntm4j&*h04Jdtq^5?O=R#=j$}r7s>a8S>H)n|tpg&@NZfwe}VL<{)(`gXrXJ@z!~7{a)c3}ddH@vQ0W zlu=YuYZhQeufP_Q)@7+Zkth!$^1Bu~_54CUBuwTH`TdM08`#wk2p>0Ez@*?txD7}3 z189LOGZtM#qzng%I>xcU%4kvG1$Fu)5JjjpuC=s~%lEL-e(YwMr^{J`_w9K%9Sp$8f}>f<)YN|4_xQ zprKKvqGdLGW)(s2`2L7P^|Zr@v51bS-|@x*Pz_Id>IDIsX0dEw66vmF(C@zPS5Lp@|q8^ z4Gt|`)cWkF}z?#M)_tVau(4;k?g|z z%Q^I0L&56|7J&F;13z8T0g+!o4E-k;*V{e}NrCLe+AJo^fq}qaF+`Ym zYj(%K$G#lv_lJB&x}17lbpgcBMoaU`y69OmD0UC`lXrtF;$o4nPe-@A@#0$ZkbwgA zN81bqklW~omx>xOZ22%J4!5ex~mVt(M$b; z{yB7>{7 z|2MkQt?(m3_F8ARLBf+rWb7%qd0>$u%h)s|`C4#mY%GTD_y$K(QwKmG=I9QNEOURtd z+o^d~9rU<+81}>8&mGJAE6Uzs4x%*SqEIP;I`r={(ecCa4`cKCg-#eUsaOYEw;_n6HX3|&3#+|vHyM+|GRVG^s)|u7P@Z!uJ#5(XPD@W>< z%nl*O-|JuY;`YTm;YDoF$o;P_cIhzozq;6}pMs(4-YFL?qg!!3OFNw3%MM-+hQqL~ zX((!>gR!x9`KKgle|k9I6TcAWQ=@3)R37<9Vn*X|u|6L=ic-3Mg66tMvmLkYUR3B3 zp*)#T3+{AAZas9La5x`B;GAU`FIt2&(ljl?{M_%~eDDmRzh4PnG)hQJ>_G)? zgAOC#(~s_so%q@eYYtG>G_y_GjHII1eO~V=Sw~-g3~}*4vswJz@=N;aNIYwmblvJ< zZnDyH49VZRr&^K99R1>Q)@nIG`t0G~we-5?(}3Zb1;dQeXN@ivoqSTnT4dKt5MR-v zK=x2EVW0K=FNG70rzqq*Sn?G)R_3t=TJeJ*m)oeYTUpqKqLBW&` zS?EvRUqjW5|MUZya4);RoNmrNniH}mKtKg`X}NK85r+S2q}E%U+n$zAAH|MytIZaf zcZl|A(eNUXqhfQ53$F35jp(SsV+<4LRqtfQsPp`tKh{dE{*Lpa`8fDuj zR=$wSs?J9_ONSAwyz+W-x<(nC!Fo0BQQBrn5x^3BIi_dVWGO3r!{W0HXYlIR_ zR~8pgXkmPI;%9qeEV{N-MYPVVc>aaNo^|!u=s9$(x4HO0li8tP z<-GpA0 zfjLxoiZ9tUGN=fy1A0&L<^VGJ>R^@@K;d{$SeDl}Ft7r@S6UB|z>%BEH<8)eKe_q& zB=9W7)9eH_{_4i7F#bA4CQt(H7|kR&^E9vl2PO!;2EaTHpHZzB=+UD*(U7QNmGz)h z6UD*E&i)$DZTvGSy39*Nk*&*pEc(YIA7Ab|>BI45&Fy%A83vNR^7p~ds!o`vkt{#Q zif{}gWg5+|W1}BSOD;kT9{cP(y&p-~4j)AC25%ppW!^>BXQ(Ds|4AqzA07b!T23*m zs8053-*Pe9!(;bTki6J6kw4q|S+`Pl$V-lEdlIAh>FJ2KgsGvS5X9pLFN2SvWCETu zVNLm}88iSVPMpB@-Nut0ys7^fvVi@FfKJRQQg-KfJi|PzmwJ{ODn|dJ-ji7}bG~t% zr&9(=hjxWL!v2Fj|LVBkzrpiL(?>&Q<0f^!QugLKGrv2-P}HaGRZQZMjyFF>RZ@`4 zq&_{|zBFyWw_wQ@(KwEq#=cPe74GVN=xwZV8ZF=BVDwk2rS;VUA2(qbR0le~JB?u? znft_Id50-OeB2|FxqvPzHn3E8wwy!DS}hF7P{r&+3|i18|6<;g@A-sZ$q&DW*}bYT zl!hw<-zYkX|M(bO<8acnpFRb8Dj0t$wara#bUm1L*&GkShugYj_VezCTj0Knq9p zj(>ngKj}Mo9jmbg7p`93-hTxUEh6odoPHm0IMlMpDW<0s8s6&4=dBAr{0T zyP&Y5jsz%)7y}Ih#^c?!^r~$;*JQt0=Lu^!vvhhO#!sfei&^HhmE-i1c*7l!00A0C zgbm0*dl9x0RL$<)wL+-Sp6li1KrmlTy1i!TxLgg-@2h8qBJED3&~c|C;@vaQ0cbBg zJ{~~c?(RNNGqcR=Qu20A$YqdK*0zhJ>yeLOoubT{UsXtRJ9~=gKU8p&{az&qIRviy zUmaa*rZdGwf>s770P1fF%@$~ahDOjhgO4HV7-m0F8g@Fny0E-fDEjTt0;w?DTM-rr zS7w5U7#w4-;MG!amo1RP;O4~|*+yFwvVugetd12=2|X>v)frdz&_MDNy&KXGwjbi- z7C+|xJrKnDIQhMVG_H%#k^4y#ng>xyP}B3Ba(-|0tdW_^#--v1aOq6T`|hvGy9_Jk z^_8#-D{{?Fw___YUw>y?jJlnK(I z*aP6!1D9S$pLLM{>a(;sULP-K=eW9~P_@r`ai;j6;-3(%^X|2WcXu;XwbHP%YDpXH zy7`|Xxh$g*eUtCiNsI00BoUA{fVs+7v^ak+o<4- z3w%6iU`dISMWb5K%j}?4&7df9bW+Y}))#VH7$o?HM4qx$C?9jtA&dH3@@Az2OF96u z_T0Ls|Ax#cAp`Ff`fsMs6C64V3RG{9sj?bIx71I`XuNkoJt=ZG^dLCE4smN82k-

{oyY?TQZ$(KKLVX6_H(`3IdOufBE-V(syl28k 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 OPwJ_>SfR*s-~R_~ Date: Mon, 4 Nov 2024 10:22:28 -0800 Subject: [PATCH 02/11] Update docs/data/galexie/README.mdx Co-authored-by: chowbao --- docs/data/galexie/README.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/galexie/README.mdx b/docs/data/galexie/README.mdx index 2a85c9ace..f770cb83e 100644 --- a/docs/data/galexie/README.mdx +++ b/docs/data/galexie/README.mdx @@ -5,7 +5,7 @@ sidebar_position: 0 ## What is Galexie? -Galexie is a tool for extracting, processing, exporting Stellar ledger metadata to external storage, and creating a data lake of pre-processed ledger metadata. Galaxy is the foundation of the Composable Data Pipeline (CDP) and serves as the first step in extracting raw Stellar ledger metadata and making it accessible. Learn more about CDP’s benefits and applications in this [blog post](https://stellar.org/blog/developers/composable-data-platform). +Galexie is a tool for extracting, processing, exporting Stellar ledger metadata to external storage, and creating a data lake of pre-processed ledger metadata. Galexie is the foundation of the Composable Data Pipeline (CDP) and serves as the first step in extracting raw Stellar ledger metadata and making it accessible. Learn more about CDP’s benefits and applications in this [blog post](https://stellar.org/blog/developers/composable-data-platform). ## What Are the Key Features of Galexie? From 16bafa3cf9f73ae72eeaac978f574f0bfd1be3f4 Mon Sep 17 00:00:00 2001 From: urvisavla Date: Mon, 4 Nov 2024 10:22:28 -0800 Subject: [PATCH 03/11] Update docs/data/galexie/README.mdx Co-authored-by: chowbao --- docs/data/README.mdx | 4 +- docs/data/galexie/admin_guide/configuring.mdx | 43 +++++++++---------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/docs/data/README.mdx b/docs/data/README.mdx index d238a3b33..cf8e37d4a 100644 --- a/docs/data/README.mdx +++ b/docs/data/README.mdx @@ -10,7 +10,7 @@ This section will walk you through the differences between the various platforms - **[RPC](#rpc)** - live network gateway - **[Horizon](#horizon)** - API for network state data -- **[Galexie](#Galexie)** - exports raw ledger metadata files +- **[Galexie](#galexie)** - exports raw ledger metadata files - **[Hubble](#hubble)** - analytics database for network data | Features | RPC | Horizon | Galexie | Hubble | @@ -73,4 +73,4 @@ You can [run your own instance of Horizon](./horizon/admin-guide/README.mdx) or ## [Galexie](./galexie/README.mdx) -Galexie is a tool for exporting Stellar ledger metadata to Google Cloud Storage. +Galexie is a tool for exporting Stellar ledger metadata to external data storage. Learn more about its [use cases](./galexie/README.mdx) and how to [run](./galexie/admin_guide/README.mdx) your own instance of Galexie. diff --git a/docs/data/galexie/admin_guide/configuring.mdx b/docs/data/galexie/admin_guide/configuring.mdx index 2d3a0d47e..dfdcca63f 100644 --- a/docs/data/galexie/admin_guide/configuring.mdx +++ b/docs/data/galexie/admin_guide/configuring.mdx @@ -3,45 +3,44 @@ title: Configuring sidebar_position: 20 --- - # Configuring ## Steps to Configure Galexie 1. **Copy the Sample Configuration** - Start with the provided sample file, [`config.example.toml`](https://github.com/stellar/go/blob/master/services/galexie/config.example.toml). + Start with the provided sample file, [`config.example.toml`](https://github.com/stellar/go/blob/master/services/galexie/config.example.toml). 2. **Rename and Update the Configuration** - Rename the file to `config.toml` and adjust settings as needed. + Rename the file to `config.toml` and adjust settings as needed. - - **Key Settings Include:** - - **Google Cloud Storage (GCS) Bucket** + - **Key Settings Include:** - Specify the GCS bucket where Galexie will export Stellar ledger data. Update `destination_bucket_path` to the complete path of your GCS bucket, including subpaths if applicable. + - **Google Cloud Storage (GCS) Bucket** - ```toml - destination_bucket_path = "stellar-network-data/testnet" - ``` + Specify the GCS bucket where Galexie will export Stellar ledger data. Update `destination_bucket_path` to the complete path of your GCS bucket, including subpaths if applicable. - - **Stellar Network** + ```toml + destination_bucket_path = "stellar-network-data/testnet" + ``` - Set the Stellar network to be used in creating the data lake. + - **Stellar Network** - ```toml - network = "testnet" - ``` + Set the Stellar network to be used in creating the data lake. - - **Data Organization (Optional)** + ```toml + network = "testnet" + ``` - Configure how the exported data is organized in the GCS bucket. The example below adds 64 ledgers per file and organizes them in a directory of 1000 files. + - **Data Organization (Optional)** - ```toml - # Number of ledgers stored in each file - ledgers_per_file = 64 + Configure how the exported data is organized in the GCS bucket. The example below adds 64 ledgers per file and organizes them in a directory of 1000 files. - # Number of files per partition/directory - files_per_partition = 1000 - ``` + ```toml + # Number of ledgers stored in each file + ledgers_per_file = 64 + # Number of files per partition/directory + files_per_partition = 1000 + ``` From 8a8855529dce151afae7ca1ce16b9061ebda4393 Mon Sep 17 00:00:00 2001 From: Urvi Date: Thu, 7 Nov 2024 23:29:33 -0800 Subject: [PATCH 04/11] Refine CLI section based on review feedback. Add monitoring section. --- docs/data/galexie/admin_guide/monitoring.mdx | 46 ++++++++++++++++++++ docs/data/galexie/admin_guide/running.mdx | 32 ++++++++------ 2 files changed, 65 insertions(+), 13 deletions(-) diff --git a/docs/data/galexie/admin_guide/monitoring.mdx b/docs/data/galexie/admin_guide/monitoring.mdx index 0354af497..9126eead7 100644 --- a/docs/data/galexie/admin_guide/monitoring.mdx +++ b/docs/data/galexie/admin_guide/monitoring.mdx @@ -4,3 +4,49 @@ sidebar_position: 50 --- # Monitoring + +### Metrics + +Galexie publishes metrics through an HTTP-based admin endpoint, which makes it easier to monitor its performance. This endpoint is configurable in the `config.toml` file, where you can specify the port on which metrics are made available. The data is exposed in Prometheus format, enabling easy integration with existing monitoring and alerting systems. + +The admin port can be configured in the `config.toml` file by setting the `admin_port` variable. By default, the `admin_port` is set to `6061` + +```toml +# Admin port configuration +# Specifies the port for hosting the HTTP service that publishes metrics. +admin_port = 6061 +``` + +With this configuration, the URL to access the metrics endpoint will be: + +``` +http://:6061/metrics +``` + +Galexie emits several application-specific metrics to help track the export process: + +- `galexie_last_exported_ledger`: The sequence number of the most recently exported ledger +- `galexie_uploader_put_duration_seconds`: The time taken to upload objects to the data lake. +- `galexie_uploader_object_size_bytes`: Compressed and uncompressed sizes of the objects being uploaded +- `galexie_upload_queue_length`: Number of objects currently queued and waiting to be uploaded. + +In addition to these application-specific metrics, Galexie also exports system metrics (e.g., CPU, memory, open file descriptors) and Stellar Core ingestion metrics such as `galexie_ingest_ledger_fetch_duration_seconds` + +Use these metrics to build queries that monitor Galexie’s performance and export process. Here are a few examples of useful queries: + +- Export Times: Query `galexie_uploader_put_duration_seconds` to monitor average upload times. +- Queue Length: Use `galexie_upload_queue_length` to view the number of objects waiting to be uploaded. +- Latest Exported Ledger: Track `galexie_last_exported_ledger` to ensure that ledger exports are up-to-date. + +For a quick start, download our pre-built Grafana dashboard for Galexie . This dashboard provides pre-configured queries and visualizations to help you monitor Galexie's health. You can customize it to fit your specific needs. + +### Logging + +Galexie emits logs to stdout and generates a log line for every object being exported to help monitor progress. + +Example logs: + +``` +INFO[2024-11-07T17:40:37.795-08:00] Uploading: FFFFFF37--200-299/FFFFFF37--200.xdr.zstd pid=98734 service=galexie +INFO[2024-11-07T17:40:37.892-08:00] Uploaded FFFFFF37--200-299/FFFFFF37--200.xdr.zstd successfully pid=98734 service=galexie +``` diff --git a/docs/data/galexie/admin_guide/running.mdx b/docs/data/galexie/admin_guide/running.mdx index 1e78ea4f5..6651889a4 100644 --- a/docs/data/galexie/admin_guide/running.mdx +++ b/docs/data/galexie/admin_guide/running.mdx @@ -9,11 +9,12 @@ With the Docker image available and the configuration file set up, you're now re ## Command Line Usage -The primary way of running Galexie is using the `append` command. +### Append Command -### Append +This is the primary way of running Galexie. The `append` command operates in two distinct modes: -Using the `append` command, Galexie can either continuously monitor the network for new ledgers and export them, or export a fixed ledger range and stop when it is exported. +- In continuous/unbounded mode, it starts exporting from the specified start ledger and continuously exports new ledgers that appear on the network until the process is interrupted. +- In fixed range mode, it exports the specified range of ledgers and exits when done. Syntax: @@ -23,15 +24,15 @@ stellar-galexie append --start [--end ] [--config-fil Arguments: -`--start ` **(required)** +`--start ` (required) - The starting ledger sequence number of the range being exported. -`--end ` **(optional)** +`--end ` (optional) - The ending ledger sequence number of the range being exported. If unspecified or set to 0, the exporter will continuously export new ledgers as they appear on the network. -`--config-file ` **(optional)** +`--config-file ` (optional) - The path to the configuration file. If unspecified, the application will look for a file named `config.toml` in the current directory. @@ -63,13 +64,18 @@ append --start 350000 --end 450000 --config-file config.toml - The Docker image name. -#### Resumability: +#### Data Integrity and Resumability: -The `append` command includes built-in resumability, allowing exports to continue seamlessly after an interruption. If Galexie is stopped mid-export, it will scan for the first missing ledger after the specified starting ledger upon restart. Exporting will then resume from that missing ledger, with no manual adjustment needed. To utilize resumability, simply restart Galexie with the same starting ledger, and it will pick up right where it left off. +The append command maintains strict sequential integrity within each export session. If interrupted and then restarted with the same range, it automatically resumes from where it left off before interruption, ensuring no ledgers are missed within a session. -### Scan-and-fill +### Scan-and-fill Command -While the `append` command is efficient, it may miss data gaps if there are multiple non-sequential gaps in the range. For more thorough verification, the `scan-and-fill` command provides a slower but comprehensive alternative, scanning a specified ledger range to locate and fill any gaps, ensuring data completeness. Due to its slower execution, `scan-and-fill` should be used sparingly and only when data gaps are suspected. +The `scan-and-fill` command is useful in cases where there are gaps in the exported ledgers in the data lake. The command works by scanning all ledgers in the specified range, identifying missing ledgers and exporting only the missing ledgers while skipping existing ledgers in the data lake. + +The append command ensures there are no gaps in the exported range. However, the gaps may occur in the data lake due to certain sequence of events, often due to user intervention, such as: + +- Manual deletion of ledgers from the data lake. For example, deleting ledgers 80-90 out of the range 1-100. +- Running non-contiguous export ranges. For example, exporting ranges 1-50 and 60-100, leaving a gap between 50-60. In this case, running `append` command with the range 1-500 causes Galexie to resume export from from 101, without filling the gap. Syntax: @@ -79,15 +85,15 @@ stellar-galexie scan-and-fill --start --end [--confi Arguments: -`--start ` **(required)** +`--start ` (required) - The starting ledger sequence number of the range being exported. -`--end ` **(required)** +`--end ` (required) - The ending ledger sequence number of the range being exported. -`--config-file ` **(optional)**: +`--config-file ` (optional): - The path to the configuration file. If unspecified, the exporter will look for a file named “config.toml” in the current directory. From 58222e2fca2298b5aa70e4ce924229030c7cd53a Mon Sep 17 00:00:00 2001 From: Urvi Date: Thu, 7 Nov 2024 23:46:42 -0800 Subject: [PATCH 05/11] Fix order of services in Data section --- docs/data/README.mdx | 48 ++++++++++---------- docs/data/galexie/admin_guide/monitoring.mdx | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/data/README.mdx b/docs/data/README.mdx index cf8e37d4a..4a983a068 100644 --- a/docs/data/README.mdx +++ b/docs/data/README.mdx @@ -9,19 +9,19 @@ There are several products to choose from when interacting with the Stellar Netw This section will walk you through the differences between the various platforms and tools, what platform or tool is best for what use case, and then link to their various documentation locations. - **[RPC](#rpc)** - live network gateway +- **[Hubble](#hubble)** - analytics database for network data - **[Horizon](#horizon)** - API for network state data - **[Galexie](#galexie)** - exports raw ledger metadata files -- **[Hubble](#hubble)** - analytics database for network data -| Features | RPC | Horizon | Galexie | Hubble | -| ----------------------- | --- | ------- | ------- | ------ | -| Real-time Data | ✅ | ✅ | ✅ | ❌ | -| Historical Data | ❌ | ❌\* | ✅ | ✅ | -| Smart Contracts | ✅ | ❌ | ✅ | ✅ | -| API | ✅ | ✅ | ❌ | ❌ | -| Transaction Submission | ✅ | ✅ | ❌ | ❌ | -| Curated and Parsed Data | ❌ | ✅ | ❌ | ✅ | -| Ad Hoc Data Analysis | ❌ | ❌ | ❌ | ✅ | +| Features | RPC | Hubble | Horizon | Galexie | +| ----------------------- | --- | ------ | ------- | ------- | +| Real-time Data | ✅ | ❌ | ✅ | ✅ | +| Historical Data | ❌ | ✅ | ❌\* | ✅ | +| Smart Contracts | ✅ | ✅ | ❌ | ✅ | +| API | ✅ | ❌ | ✅ | ❌ | +| Transaction Submission | ✅ | ❌ | ✅ | ❌ | +| Curated and Parsed Data | ❌ | ✅ | ✅ | ❌ | +| Ad Hoc Data Analysis | ❌ | ✅ | ❌ | ❌ | \*_Please note that Horizon can provide full historical data but is not the recommended tool for full historical data access._ @@ -39,20 +39,6 @@ If the RPC does not otherwise serve your needs, please tell us why in the [Stell You have the option of [setting up your own RPC instance](./rpc/admin-guide.mdx) or using a publicly available service from [an infrastructure provider](./rpc/rpc-providers.mdx). -## [Data Indexers](../tools/developer-tools/data-indexers.mdx) - -Data indexers are specialized tools that process and index blockchain data, making it more accessible and queryable to end users. They transform raw blockchain data into a more structured format that’s easier for end users to interact with. - -Data indexers have advanced querying capabilities and enhanced analytics. They provide features such as statistical analysis of blockchain activity, visualization of transaction flows, or tracking DeFi metrics — capabilities that go beyond basic transaction lookup for current or historical state data. - -Data indexers are a potentially more user-friendly, cost-effective choice for users. Check out several available data indexers for the Stellar network in our [Tools section](../tools/developer-tools/data-indexers.mdx). - -## [Analytics Platforms](../tools/developer-tools/analytics-platforms.mdx) - -Analytics Platforms are specialized tools that process and make historical Stellar network data available. The Stellar network data is loaded into database tables for large data analytics using SQL. Users can create complex ad hoc analysis, dashboarding, and curate actionable data insights (e.g., business intelligence or business analytics). - -Check out several available nalytics platforms for the Stellar network in our [Tools section](../tools/developer-tools/analytics-platforms.mdx). - ## [Hubble](./hubble/README.mdx) Hubble is an SDF-maintained, open-source, publicly available BigQuery data warehouse that provides a complete, holistic historical record of the Stellar network. It is a read-only platform and does not have the capability to send transactions to the network like you can with RPC. @@ -74,3 +60,17 @@ You can [run your own instance of Horizon](./horizon/admin-guide/README.mdx) or ## [Galexie](./galexie/README.mdx) Galexie is a tool for exporting Stellar ledger metadata to external data storage. Learn more about its [use cases](./galexie/README.mdx) and how to [run](./galexie/admin_guide/README.mdx) your own instance of Galexie. + +## [Data Indexers](../tools/developer-tools/data-indexers.mdx) + +Data indexers are specialized tools that process and index blockchain data, making it more accessible and queryable to end users. They transform raw blockchain data into a more structured format that’s easier for end users to interact with. + +Data indexers have advanced querying capabilities and enhanced analytics. They provide features such as statistical analysis of blockchain activity, visualization of transaction flows, or tracking DeFi metrics — capabilities that go beyond basic transaction lookup for current or historical state data. + +Data indexers are a potentially more user-friendly, cost-effective choice for users. Check out several available data indexers for the Stellar network in our [Tools section](../tools/developer-tools/data-indexers.mdx). + +## [Analytics Platforms](../tools/developer-tools/analytics-platforms.mdx) + +Analytics Platforms are specialized tools that process and make historical Stellar network data available. The Stellar network data is loaded into database tables for large data analytics using SQL. Users can create complex ad hoc analysis, dashboarding, and curate actionable data insights (e.g., business intelligence or business analytics). + +Check out several available nalytics platforms for the Stellar network in our [Tools section](../tools/developer-tools/analytics-platforms.mdx). diff --git a/docs/data/galexie/admin_guide/monitoring.mdx b/docs/data/galexie/admin_guide/monitoring.mdx index 9126eead7..1ea36c99a 100644 --- a/docs/data/galexie/admin_guide/monitoring.mdx +++ b/docs/data/galexie/admin_guide/monitoring.mdx @@ -38,7 +38,7 @@ Use these metrics to build queries that monitor Galexie’s performance and expo - Queue Length: Use `galexie_upload_queue_length` to view the number of objects waiting to be uploaded. - Latest Exported Ledger: Track `galexie_last_exported_ledger` to ensure that ledger exports are up-to-date. -For a quick start, download our pre-built Grafana dashboard for Galexie . This dashboard provides pre-configured queries and visualizations to help you monitor Galexie's health. You can customize it to fit your specific needs. +For a quick start, download our pre-built Grafana dashboard for Galexie. This dashboard provides pre-configured queries and visualizations to help you monitor Galexie's health. You can customize it to fit your specific needs. ### Logging From 61ac1efd00133b20b74020facd6038c20085d2fd Mon Sep 17 00:00:00 2001 From: urvisavla Date: Fri, 8 Nov 2024 11:05:25 -0800 Subject: [PATCH 06/11] Update docs/data/galexie/admin_guide/monitoring.mdx Co-authored-by: chowbao --- docs/data/galexie/admin_guide/monitoring.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/data/galexie/admin_guide/monitoring.mdx b/docs/data/galexie/admin_guide/monitoring.mdx index 1ea36c99a..7bb4d401f 100644 --- a/docs/data/galexie/admin_guide/monitoring.mdx +++ b/docs/data/galexie/admin_guide/monitoring.mdx @@ -25,9 +25,9 @@ http://:6061/metrics Galexie emits several application-specific metrics to help track the export process: -- `galexie_last_exported_ledger`: The sequence number of the most recently exported ledger +- `galexie_last_exported_ledger`: The sequence number of the most recently exported ledger. - `galexie_uploader_put_duration_seconds`: The time taken to upload objects to the data lake. -- `galexie_uploader_object_size_bytes`: Compressed and uncompressed sizes of the objects being uploaded +- `galexie_uploader_object_size_bytes`: Compressed and uncompressed sizes of the objects being uploaded. - `galexie_upload_queue_length`: Number of objects currently queued and waiting to be uploaded. In addition to these application-specific metrics, Galexie also exports system metrics (e.g., CPU, memory, open file descriptors) and Stellar Core ingestion metrics such as `galexie_ingest_ledger_fetch_duration_seconds` From 44563f7e439cca4f27c03b3989e58ebf71cd0e62 Mon Sep 17 00:00:00 2001 From: Urvi Date: Mon, 11 Nov 2024 09:45:00 -0800 Subject: [PATCH 07/11] Add hardware requirements section --- docs/data/galexie/admin_guide/prerequisites.mdx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/data/galexie/admin_guide/prerequisites.mdx b/docs/data/galexie/admin_guide/prerequisites.mdx index 03fbdfe87..77483eeba 100644 --- a/docs/data/galexie/admin_guide/prerequisites.mdx +++ b/docs/data/galexie/admin_guide/prerequisites.mdx @@ -20,4 +20,16 @@ Galexie is available as a Docker image, which simplifies installation and setup. ## Hardware Requirements -The minimum hardware requirements for running Galexie are: +The minimum hardware requirements for running Galexie are:\ +**RAM**: 8 GB\ +**CPU**: 2 vCPUs\ +**Disk**: 100 GB with at least 5K IOPS + +### Full history export + +Exporting the full history (as of November 2024): + +- Takes an estimated 150 days using a single instance of Galexie +- Creates a data lake of approximately 3 TB +- To speed up the export, multiple instances of Galexie can be executed in parallel, each working on a different range +- For example, creating the full history for Hubble data lake using about 40 parallel instances (each exporting approximately 1.25 million ledgers) on _e2-standard-2_ (Google Cloud Platform) takes about 5 days From 8c4c8c0afb62ea70a6cf093e31c8c8f5571c4055 Mon Sep 17 00:00:00 2001 From: Urvi Date: Mon, 11 Nov 2024 09:48:20 -0800 Subject: [PATCH 08/11] Addressing review comments --- docs/data/galexie/admin_guide/configuring.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/data/galexie/admin_guide/configuring.mdx b/docs/data/galexie/admin_guide/configuring.mdx index dfdcca63f..a98f03758 100644 --- a/docs/data/galexie/admin_guide/configuring.mdx +++ b/docs/data/galexie/admin_guide/configuring.mdx @@ -39,8 +39,8 @@ sidebar_position: 20 ```toml # Number of ledgers stored in each file - ledgers_per_file = 64 + ledgers_per_file = 1 # Number of files per partition/directory - files_per_partition = 1000 + files_per_partition = 64000 ``` From eb82cd847e10f69beb85c22aae0837afd0db8dcb Mon Sep 17 00:00:00 2001 From: Urvi Date: Mon, 11 Nov 2024 09:52:21 -0800 Subject: [PATCH 09/11] minor update --- docs/data/galexie/admin_guide/prerequisites.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/galexie/admin_guide/prerequisites.mdx b/docs/data/galexie/admin_guide/prerequisites.mdx index 77483eeba..c610a1846 100644 --- a/docs/data/galexie/admin_guide/prerequisites.mdx +++ b/docs/data/galexie/admin_guide/prerequisites.mdx @@ -25,7 +25,7 @@ The minimum hardware requirements for running Galexie are:\ **CPU**: 2 vCPUs\ **Disk**: 100 GB with at least 5K IOPS -### Full history export +### Full History Export Exporting the full history (as of November 2024): From ee93491e45aaa0f3d4c0d27dc9e3cbf05e1f3de3 Mon Sep 17 00:00:00 2001 From: Urvi Date: Tue, 12 Nov 2024 15:01:44 -0800 Subject: [PATCH 10/11] Remove reference to Grafana Dashboard. --- docs/data/galexie/admin_guide/monitoring.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/data/galexie/admin_guide/monitoring.mdx b/docs/data/galexie/admin_guide/monitoring.mdx index 7bb4d401f..040cc0661 100644 --- a/docs/data/galexie/admin_guide/monitoring.mdx +++ b/docs/data/galexie/admin_guide/monitoring.mdx @@ -38,8 +38,6 @@ Use these metrics to build queries that monitor Galexie’s performance and expo - Queue Length: Use `galexie_upload_queue_length` to view the number of objects waiting to be uploaded. - Latest Exported Ledger: Track `galexie_last_exported_ledger` to ensure that ledger exports are up-to-date. -For a quick start, download our pre-built Grafana dashboard for Galexie. This dashboard provides pre-configured queries and visualizations to help you monitor Galexie's health. You can customize it to fit your specific needs. - ### Logging Galexie emits logs to stdout and generates a log line for every object being exported to help monitor progress. From 6cf2b70cf232b9d557874687e31d6b128fa3dc2f Mon Sep 17 00:00:00 2001 From: Urvi Date: Tue, 12 Nov 2024 15:21:55 -0800 Subject: [PATCH 11/11] Minor update --- docs/data/galexie/README.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/data/galexie/README.mdx b/docs/data/galexie/README.mdx index f770cb83e..12b6cdb5a 100644 --- a/docs/data/galexie/README.mdx +++ b/docs/data/galexie/README.mdx @@ -16,8 +16,6 @@ Galexie is designed to make streamlined and efficient export of ledger metadata - Exporting ledger metadata in XDR which is Stellar Core’s native format. - Compressing data before export to optimize storage efficiency in the data lake. -**Galexie Architecture** - ![](/assets/galexie-architecture.png) ## Why XDR Format?