From d9429f9ea108f5bdb93892b15e8911ece96e1188 Mon Sep 17 00:00:00 2001 From: aigerimu <89766357+aigerimu@users.noreply.github.com> Date: Sat, 21 Mar 2026 04:30:03 +0700 Subject: [PATCH 01/15] sub-second-pr --- docs.json | 1 + ecosystem/subsecond.mdx | 230 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 231 insertions(+) create mode 100644 ecosystem/subsecond.mdx diff --git a/docs.json b/docs.json index ea7350a15..4e6270ccc 100644 --- a/docs.json +++ b/docs.json @@ -122,6 +122,7 @@ "ecosystem/api/price" ] }, + "ecosystem/subsecond", "ecosystem/status", "ecosystem/analytics", { diff --git a/ecosystem/subsecond.mdx b/ecosystem/subsecond.mdx new file mode 100644 index 000000000..32d712509 --- /dev/null +++ b/ecosystem/subsecond.mdx @@ -0,0 +1,230 @@ +--- +title: "How to adopt sub-second finality" +sidebarTitle: Sub-second finality +--- + +import { Aside } from '/snippets/aside.jsx'; + +Sub-second finality is a mode where transactions are processed and finalized in under one second. It combines faster block production and low-latency APIs. + +To deliver this performance to users, ecosystem products must adapt their indexers and UX layers to surface transaction updates in real time. + +## Current status + + + +The testnet has been running stably since the 2026.01.23 update with sub-second mode active. + +| Network | Block interval | Blocks per second | Pending lag | Finalization lag | +|---------------------| --- | --- | --- | --- | +| Current mainnet | ~2.5 seconds | ~0.4 BPS | ~30–100 ms | ~10 s | +| Current testnet | ~450 ms | ~2.2 BPS | ~30–100 ms | ~4 s | +| Target mainnet | 200–400 ms | ~2.5–5 BPS | ~30–100 ms | ~1 s | + +Testnet operates close to the target speed (200–400ms block finality) and is the primary environment for testing. + +## Wallets and apps + +A faster chain alone does not improve user experience if the application continues to use HTTP polling. In this case, users will still observe delays of 10+ seconds. To support sub-second UX, transaction updates must be delivered in real time. + +### Transaction flow in sub-second mode + +Applications that rely on polling typically behave as follows: + +1. 0s – user initiates a transaction; +1. ~0.4s – transaction included in a shard block; +1. ~0.8s – shard block committed to masterchain; +1. ~10s – UI updates on the next polling request. + +With real-time updates, transaction status should appear as it progresses: + +1. 0s – user initiates a transaction; +1. ~0.1s – `pending` status is displayed; +1. ~0.4s – transaction included in a shard block and `confirmed` status is displayed; +1. ~0.8s – shard block committed to masterchain and `finalized` status is displayed. + +Applications must update the UI as soon as new status information becomes available. + +### Use Streaming API v2 + +Switch to [TON Center Streaming API v2](#ton-center-streaming-api-v2) or TonAPI Streaming API to receive transaction status updates with 30–100 ms latency. + +MyTonWallet and [tonscan.org](http://tonscan.org/) have already switched to Streaming API v2 on both mainnet and testnet. This improves how quickly transaction updates appear in the UI by delivering events in real time, even though sub-second mode is not yet enabled on mainnet. + +If Streaming API cannot be used, reduce polling intervals and adjust assumptions about transaction timing. Interfaces should be designed to expect results in under one second. + +### Handle transaction status flow + +Handle all transaction statuses: + +- `"pending"` – show a processing state immediately +- `"confirmed"` – optionally show optimistic success +- `"finalized"` – confirm success and update state +- `"trace_invalidated"` – discard cached data and re-check transaction status + +### Subscribe to transaction events + +Subscribe to the sender or recipient address before or immediately after sending a transaction. + +```json +{ + "accounts": ["
"], + "min_finality": "pending" +} +``` + +### Configure `min_finality` + +The `min_finality` parameter controls which transaction status events are delivered. The default value is `"finalized"`. If not set, only `"finalized"` events are received. + +- Use `"pending"` for send flows to receive all status updates. +- Use `"finalized"` for balances and transaction history to work only with settled data. + +### Recommended stack + +For projects building on TON: + +- Data layer: TON Center Streaming API v2 with 30–100 ms latency. +- SDK: [AppKit](/ecosystem/appkit/overview) for balances, tokens, NFTs, and contract interactions. For frontend applications, AppKit reduces integration complexity and removes the need for custom logic. It handles out of the box: + + - TON balance for any address; + - Jetton balances and metadata; + - NFT holdings; + - Contract state reads; + - Transaction sending, including jetton transfers. + +- Finality: wait `"finalized"` status for critical flows. + + + +For API reference, see the [API overview](/ecosystem/api/overview). + +### Test on testnet +To ensure correct UX and wallet behavior, perform the following tests. +- For UX and app teams: + +1. Connect to testnet endpoints. +1. Initiate a TON transfer. +1. Observe all four statuses in sequence: `"pending"` → `"confirmed"` → `"finalized"`. +1. Measure time from transaction send to `"finalized"`. It should be under one second on testnet. +1. Test `"trace_invalidated"` path: intentionally send a malformed transaction and confirm that UI handles it correctly. + +- For wallet teams +1. Verify balance updates reflect within 1 second of `"finalized"` status. +1. Verify transaction history updates in real time. + +## Indexers + +Indexers must process up to 10x more blocks per second without accumulating lag. If the indexer is tuned for 2.5s block intervals, it will fall behind under 200–400ms intervals. + +### Test on testnet + +1. Connect the indexer to testnet. +1. Run for at least 30 minutes under normal conditions. +1. Measure lag continuously as the time between block production and indexer processing. + + Target: + + - lag < 500ms + - no growing backlog + + If lag increases, identify the source of delay: + + - database writes + - network + - parsing + +Resolve bottlenecks before mainnet activation. + +### Validate under load + +Generate the typical mainnet load profile on testnet. + + +## Node, liteserver, or self-hosted TON Center + +### Connect to a liteserver + +Public liteservers are available for both mainnet and testnet. Use global config files to discover and connect to them: + +- Mainnet: [`ton.org/global.config.json`](https://ton.org/global.config.json) +- Testnet: [`ton.org/testnet-global.config.json`](https://ton.org/testnet-global.config.json) + + + +### Update components + +All self-hosted components must be updated to versions that support Catchain 2.0. + +- TON node and liteserver – update to the latest release before mainnet activation. +- Self-hosted TON Center – update to a version with Streaming API v2 support. + + +### Self-hosted lightserver updates + +- If a lightserver node is self-hosted, ensure it is updated before mainnet rollout. +- Confirm that the node version supports the new consensus. + +### Test on testnet + +After updating, connect each component to testnet and verify that it operates correctly under increased block rate. Do not wait for mainnet activation; issues identified on mainnet are harder to resolve. + +## TON Center Streaming API v2 + +[TON Center Streaming API v2](https://gist.github.com/dungeon-master-666/98db8d73e9cd9a1b7802bc06ded5b155) provides: + +- Real-time push of transaction status changes. +- Four statuses: `"pending"`, `"confirmed"`, `"finalized"`, `"trace_invalidated"`. +- Latency: 30–100ms from chain event to the client. + + +### API token + +- For testing purposes any valid token for TON Center allows for 2 concurrent streaming connection. +- For production usage only enterprise plan allows for higher connection limits. + + +### Endpoints + +SSE and WebSocket are available. Choose based on the stack: + +- SSE – browser-friendly, server-to-client only (unidirectional). +- WebSocket – bidirectional, allows dynamic subscribe and unsubscribe after connection. + +| Protocol | Testnet URL | Mainnet URL | +| ---------| ------------| ------------| +| SSE | `https://testnet.toncenter.com/api/streaming/v2/sse` | `https://toncenter.com/api/streaming/v2/sse` | +| WebSocket | `wss://testnet.toncenter.com/api/streaming/v2/ws` | `wss://toncenter.com/api/streaming/v2/ws` | + +#### SSE known limitations + +1. Rate limit on reconnect (429 error). + + If a client reconnects immediately after a disconnect, the previous connection may still be open for ~1 minute. The reconnect attempt receives a 429 error. Use exponential backoff or an enterprise API key. + +2. POST-only subscription. + + Despite SSE typically using `GET`, this endpoint requires a `POST` with the subscription JSON in the request body. `GET` is not supported yet. + +3. No invalidation signal for `account_state_change` / `jettons_change`. + + If a `confirmed` account state or jetton balance update is later rolled back, no `"trace_invalidated"` notification is sent for these event types. Teams using `account_state_change` or `jettons_change` at `"confirmed"` finality should be aware of this gap and consider waiting for `"finalized"` for balance-critical flows. + + +### WebSocket keepalive + +- Send a `ping` every 15 seconds to keep the connection alive. +- SSE connections receive automatic server-side keepalives (`: keepalive`) every 15 seconds; no client action required. + +## See also + +- [TON API overview and endpoints](/ecosystem/api/overview) +- [How to get coins on testnet](/ecosystem/wallet-apps/get-coins) + + From b7949283b281711aa17aa0db9382274b7092629f Mon Sep 17 00:00:00 2001 From: aigerimu <89766357+aigerimu@users.noreply.github.com> Date: Sat, 21 Mar 2026 04:39:29 +0700 Subject: [PATCH 02/15] ci --- ecosystem/subsecond.mdx | 73 ++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/ecosystem/subsecond.mdx b/ecosystem/subsecond.mdx index 32d712509..f756b7788 100644 --- a/ecosystem/subsecond.mdx +++ b/ecosystem/subsecond.mdx @@ -17,11 +17,11 @@ To deliver this performance to users, ecosystem products must adapt their indexe The testnet has been running stably since the 2026.01.23 update with sub-second mode active. -| Network | Block interval | Blocks per second | Pending lag | Finalization lag | -|---------------------| --- | --- | --- | --- | -| Current mainnet | ~2.5 seconds | ~0.4 BPS | ~30–100 ms | ~10 s | -| Current testnet | ~450 ms | ~2.2 BPS | ~30–100 ms | ~4 s | -| Target mainnet | 200–400 ms | ~2.5–5 BPS | ~30–100 ms | ~1 s | +| Network | Block interval | Blocks per second | Pending lag | Finalization lag | +|-----------------|----------------|-------------------|-------------|------------------| +| Current mainnet | ~2.5s | ~0.4 BPS | ~30–100ms | ~10s | +| Current testnet | ~450ms | ~2.2 BPS | ~30–100ms | ~4s | +| Target mainnet | 200–400ms | ~2.5–5 BPS | ~30–100ms | ~1s | Testnet operates close to the target speed (200–400ms block finality) and is the primary environment for testing. @@ -87,13 +87,14 @@ The `min_finality` parameter controls which transaction status events are delive For projects building on TON: - Data layer: TON Center Streaming API v2 with 30–100 ms latency. + - SDK: [AppKit](/ecosystem/appkit/overview) for balances, tokens, NFTs, and contract interactions. For frontend applications, AppKit reduces integration complexity and removes the need for custom logic. It handles out of the box: - - TON balance for any address; - - Jetton balances and metadata; - - NFT holdings; - - Contract state reads; - - Transaction sending, including jetton transfers. + - TON balance for any address; + - Jetton balances and metadata; + - NFT holdings; + - Contract state reads; + - Transaction sending, including jetton transfers. - Finality: wait `"finalized"` status for critical flows. @@ -104,7 +105,9 @@ For projects building on TON: For API reference, see the [API overview](/ecosystem/api/overview). ### Test on testnet + To ensure correct UX and wallet behavior, perform the following tests. + - For UX and app teams: 1. Connect to testnet endpoints. @@ -114,6 +117,7 @@ To ensure correct UX and wallet behavior, perform the following tests. 1. Test `"trace_invalidated"` path: intentionally send a malformed transaction and confirm that UI handles it correctly. - For wallet teams + 1. Verify balance updates reflect within 1 second of `"finalized"` status. 1. Verify transaction history updates in real time. @@ -127,16 +131,16 @@ Indexers must process up to 10x more blocks per second without accumulating lag. 1. Run for at least 30 minutes under normal conditions. 1. Measure lag continuously as the time between block production and indexer processing. - Target: + Target: - - lag < 500ms - - no growing backlog + - lag \< 500ms + - no growing backlog - If lag increases, identify the source of delay: + If lag increases, identify the source of delay: - - database writes - - network - - parsing + - database writes + - network + - parsing Resolve bottlenecks before mainnet activation. @@ -144,7 +148,6 @@ Resolve bottlenecks before mainnet activation. Generate the typical mainnet load profile on testnet. - ## Node, liteserver, or self-hosted TON Center ### Connect to a liteserver @@ -154,7 +157,9 @@ Public liteservers are available for both mainnet and testnet. Use global config - Mainnet: [`ton.org/global.config.json`](https://ton.org/global.config.json) - Testnet: [`ton.org/testnet-global.config.json`](https://ton.org/testnet-global.config.json) - -### Update components - -All self-hosted components must be updated to versions that support Catchain 2.0. - -- TON node and liteserver – update to the latest release before mainnet activation. -- Self-hosted TON Center – update to a version with Streaming API v2 support. - ### Self-hosted liteserver updates -- If a liteserver node is self-hosted, ensure it is updated before mainnet rollout. -- Confirm that the node version supports the new consensus. +If a liteserver node is self-hosted, ensure it is updated before mainnet rollout. -### Test on testnet +#### Requirements -After updating, connect each component to testnet and verify that it operates correctly under increased block rate. Do not wait for mainnet activation; issues identified on mainnet are harder to resolve. +Confirm that the node version supports the new consensus. -## TON Center Streaming API v2 +### TON Center Streaming API v2 [TON Center Streaming API v2](https://gist.github.com/dungeon-master-666/98db8d73e9cd9a1b7802bc06ded5b155) provides: - Real-time push of transaction status changes. - Four statuses: `"pending"`, `"confirmed"`, `"finalized"`, `"trace_invalidated"`. -- Latency: 30–100 ms from chain event to the client. +- Latency: 30–100ms from chain event to the client. -### API token +#### API token - For testing purposes, any valid token for TON Center allows for 2 concurrent streaming connections. - For production usage only enterprise plan allows for higher connection limits. -### Endpoints +#### Endpoints SSE and WebSocket are available. Choose based on the stack: @@ -204,26 +177,106 @@ SSE and WebSocket are available. Choose based on the stack: | SSE | `https://testnet.toncenter.com/api/streaming/v2/sse` | `https://toncenter.com/api/streaming/v2/sse` | | WebSocket | `wss://testnet.toncenter.com/api/streaming/v2/ws` | `wss://toncenter.com/api/streaming/v2/ws` | -#### SSE known limitations +2hd4v;MH_}dEDcLKaJKzSe#-WTA7)EMxtrvR|K16~w4gFwi@8bbm52RaM{)_4Z! z0AHwTz+MNK1JFSP0X&e$z_JF=T)(!>O;sUuq7lA<7&_M0NfDJw1=K}(vQ~|j@p07Iq0ky#ZHsCA&;z2+yh`^dc zKjs(-$d5rF1V#V{05}_ Q9s2lNZ51#DXzuz3r}A^;5J50(k!2&@HEEx=y@ zK0x1bfDs0m7lH+tI}ms?Mhe6MY`Fj*L|_eBPl3FkKp cN zK<=<%z T#``{vvQGpdVnse*CL%K+Ygw zPO!)89Z=UJ50U_|4nTAO9}7?}z+(ag!~+360r>*+p9A>u8sr5~48VT{C>h|50a5^{ z9Ka^PsPq?sI|cyQ5#WLTfRX?LVuBv~EDnq%0DT5X2cXCJk2yS&9zc)l2kgCn!>Ird ztkJ*WC;La44nU9i(OwJ$?r;T+K&>D*fF5&_1PEATkkcRj5!(Xf@CQ@dJLp>j{Nn-a zHEezmq*W0J?(G{8vX?gq4NM(`k^Go1n5BX4qYrS^xX}fEzlMfl6<3yA(3BPyNI2|5 z MVvn0Obt*na8dW?bOgABJo9;^}#pbzQ<`gY$+M zDPMQs>dG}v=Y63P@h_YyZ3#rr`}}L#GWrN})s^WnELp52h-FS1aB_A&$M-&oC{9f7 z#rY=Y`h`ew)Q+kvZYPUA_)ZQ%vcyn2`>*dMUG2CmbJ8I%B^FhiCt7mdWbVg%DY8`x z7`K;8Vuo@!vW!1tlDhS%nx~ltc>H9j=Ab&oNclW>!>=oXTPuE0ZDb=1&K}7x`-Vuh zJH{y*z0F T_#?+_AC6uEk@IF 9JXcw zhQ~(D9V_;`Wl+`d*3rfd_O0mKexKn;64w>nO+iPkHDHso`%L27=c^QBUwB|c^8IM; znOQsi1al=fVA^lwi*n@dq9w#O61OLM+!i&d27kSgR0*`2b8%0oo^728CXt$8DUk=o zQ!`DXCZ*61TR6%zb{YFR(9D9vKJ>I|SFN)oHHi65Llow!mZ-YOXB5x=DDWjES;{x0 zQzk5ypN90vZo!Br!Hq7j(#UI@octW$D@7;l!lc#JE>zvsK4eX _rq);ioXN+pb7B1VrIoqtu9I EY06VM>$0 zkq*AOAbuCl2nGsBM!6Wc5=m!b49vrnYZ4l5aD8`VIUZ8fLs7X`Mb8_oUnm+)vm@N+ zw2qkF@956K_*>KgPL6VvNj=GHGNFK3=M!HWG3Boa&*b5?62b7b>kn*3=Eb1}#rt#@ zn1R{MSn?0X1Gm@A1|2P_CfeN%>zWvdo}b9uY5FhJ*&L2vqx-!Tz!@W)>C)8=AabDP z9-4cL@r8SF{5Vr0z=z5>rr_tWLTFBIB CaU@&C#NjIS+mjaVGQF8!OY;8?awT zWZ4ySi~QM3>)7*xZ=qGZ7*3g}9S6K082gB@)M2X%RA-l$iX>nDV1MuZu=Cw2o}DPP z-(5@C<#-VV2VKzrocSJ0Ii0_V^}G!?Y$9Rp;i0YX1wNr^j@`;;=i$Mv%Dvf*{Vq2A zW$)@4+n!XjUK2m-Mrz)0V>fdWQIU`GcCo4ZyQ-iT*i0Qaw= 1RD=oM{V&U?ml&p zmNA+KIF;iXp6@|Y`B>A w8M87A;V!#pAMTx4lFz{lei(xnU8FcUlxqANMfXxS;Y`#E&Tjh-m zN=lwgQGB7U)*Ok!Z+G)r^VJS-elkGGHpKwlo=OBKfU|IP6Zm#I4W7&6m(~qW2 zNVC03VUXY?aj6 *9)7F7JLuwCqkx#{)kIQb%S +C+90$+viMEI4<_ MxEqlB+h&E4HS8OM&Fs8&j!p9i61xlv#|ze9n8s`Oea-P zggyu7|KeRGiaQ!G@Us>(crk-#p|qG+EGN=hpviHfMet(B!9N-!F)Bkfa{B1Tp`wg= z#E50t>(Knrxcuy{$-j@~7ecK?>oqH^7xdUGq`Vx$kAyd>9s{P9bQs(4dJP7O2OiXp z6wKgpq4gO~eNGUHP}VsxoupDV$ Z(%5)_x5a&QCLT?6PuWm zC%*H8O8S7siOE9ciLA@fbQa>)u-e^A16pufFG8euNVa>!YMa;ZV+Qwi=^Oiq%nG9@ ziFPwPUS^yV &o^ZB8Tvj^^KpS8q3kxr5`QOZ6nDkW=KDrJCSaW5S3@``9n2WBb(#LEGnsnL z8DWMfc 8;5XiUsvrw*}~X0{A*wj>FVtK9V=~M6KMUzHKeZj%Ju`bYfqu zX~Vu2W%;bJVjlI4-i7GYK cPY5clmtfCFsx{o7$P!n5%T zXcl7v@7^E5K1lUvI2%WI3-4?*K9^(~AbLZz6gKNh54{NsUkD!l_#>eh$vDo-zCjCd z5`*ffmuwEgb^F%2m)LBs2;KX|r(VQ r5l%A%U^gje*-3 zL>VEWLgBBqHT)LA3)Q^OOz*ni!5+NsNK8OZL#Gj*N9s8p O!^R&>!KWo@j&K>Dy>hn zycG+n3H|FHiTuG1xe;#AE!&wl>*ddvW9W64Aho0-ZpE*K1X9aYRD!4|s^im4pKYtw zuiBCsHB=p2CXEVY?gCow&OTqpn4G-Ft9GN?60lFnC1 JCp@3l2@bJ$}XDouhpMUDIld@P$; TrLTz%yv0v5tHX*>}mjT8fS94YXPII0TXN^ $D1mxl-7=2ZTWFre1`^T$mK)DgNZ_WBt_T3eHrdpW^grTn2C`V=gSL0>ti zK?)njSto8%_G>v3c}ST{T(!|EWL(6YPK{tm6{2vShT@}qm?M!9G8GYYJY)&^;E P-bQ9~ou@G$z {-{(qTOW=Tf^?rB2BtA?N z<#5#}h4sR!1hUsSh>I029Ck1ENa)j0RT?o_u1aPn21NNa_wI>TWBnl1eX` * zYwkAuSBcr6X%&A@0omwr5##h<@F6kps`g#fFNXZ|QMayR{g-Q4I=OZ${ruh~oX)tu zc>7V$vjD5Wzcl*Y{0yQTe`S7?h*Up0u1S&~vIafXARpu%VspJ2EC~;tomLPpn`8NW z6-_gb{+|3Ebp0E4H*!`*Hmr^J{EZ7{_KmQ%T6A8a26SFQFvMVdUv?$Mhetn9o|^fR zIMdq@$?AHoAS_V%YbvliQ)?H-HAFvL3_w}!T~bnLv}t i5H&%s6x^An>JO*6l&i0jqjd zIa^dd61!?ShTWatU2_{b1{GgatIwKe{)Wg6Zxlax&TTk-Hq>c-BBCCf9UVNM`^lVS zJk`}_3!kHRds^gy3)q%nKgWaz-C`t$37+Q{rE#bDDwZ`f>!tG_Hv_T{0oG?$~1# z7HR}-qIE?FP{7Ra6HmI10;`TiGgxl8L++(NUy@=c`5FJJqKp&HU}s{*65sI6l_Z>O zghAQo>&a+0B|X9+innKa<>l*GpCxidPpFZ+a9)U;y}RPi(flf}&cWq((?pxN`>{vN zn4?p!dX&%j*Xdu}WZjp_%j5p24mSd&n&oC3IJQ{d&vBbrN!N;6O{B|yDbF~c;Gk5_ zC9;Tm>%5ycp9F1)ZU4CITB_RZI>$B0^1fEk)J||8&b07`F~R-D#jvcmxr1cYLYEiR zu7T&!fjPw`TC=_x-Won887%dKS #W3QU7m&wwb!80x*sXKsdS z1Ue4mUNBkopCIWd2NEZN7f7Qtv|D^tVV~qB`t_xPyrE{?J3cXA2ks>%q|c=sMh_Bk zxi$cg%|wf2FN>NH35thbwkqoKZpcS>@DCDGotN$NDO^}OYp5V#5H0+wSZYFROWBx$ zL^y?;SJR_tGDDFlFHh1OgxC@;*q0TzWFoAEj=(OZv2II{@f&jR)|LL=bIbbPI1@ow zYMnIKu}Cw*R4?kaD2x0&Ih{AU7(P*NSz^8-Mq#U8aNrqwRM994X9Q_JUR?&I?uJuv z!pch(CbH2o_<{zrI-xi23po$Pc@^<8i^zO$_R58uR_-Nv(C3g71QfB~`eyJ*nUdE` zjhq*a`1H~!E2d_AI+&q_aK36MK2!GgEEx9Um+pT3Kr!5z2cC<6%~f$hmVW!b9JjEI z5k3F<9nZA|mT(h6h2#r1@(f*mw>gRf>8{osq)tPx1Q=K^HtV3oLZ{xGI43QxWem|E z%4Qv77<;+*yV*>eUF9;XVYCP{%t^VIlEEBB+S~_F6|T*4+; UlMk_)%)$SN`^SA^ol+OR)NNE39Wc(GKjd~-+IjMPI+8!hH#QF zIP3GUkrtU? z#?iJ>GH?*bMW)JD;{%mKC2 CEg0|7aRh_u;9~u=^CHxAY?8sf z_+S==!hiOJNE)q|mY_wVuyts@5nHA`-eXX**fQ+SR4-E&&}g9v$!{~6N%{iob)!fT z!=Sa6MNu2U_+#Q^kV^~#O26=vcH>N9P_T$WO&tWe$7h(tK~F3&dMQ+*%(R=g^{s06 zOGd;AZrHCwOmZCqKe#Sh4+W}QRy62Ynn~SAyPSVKl`skTzRoL*NWUw^Km}WsmzYU? z-{CM~3-MYHziI_ f zS1fc1rQA%mmU}7-P;B#l)1#_`VGocp&y95%iraa9Q&DQ;$<2uCqTVxc4S*lGt!L|+ z#4a04*casR_+HXTqhih+bjq1PPkG4V>%5GQYIvj6sdM$(iiTD*`sPdS;6t&JJce5N zX@8 }lEz*B?_kK94vp+PcO3IRoN2^bh@y|g!5mFiGn2WiMl<|w~p-YIxbTo^uhPGjD zOBbGIW+F))YFf{_?3VpDv2#$-4RXT9RYn+aN%N6JR{^hh>qp=DCPoaZ3RV_XH|aZ+ z#ZLnduPun*vGYiD5{ic+meRU;40Os?xh(Evt~BBiku;F4X{s!KMvgw|m`4Z@JF_3f z&M`2AIxUd9e5aZRId|+8ojwHV4CM`$Mvu2DfA8I~>@2C3KK N%1QsyF6w>8u)-Ix6WSm%c_IWP+;? zIk>6~P|eOtB+w|vDz7N}zae@vu5jFBafsC#U+jx36meS6z()@`VIZMCAUhW=TI*>Z zk#LwO7v(9!gZm{c3aTqPHoM>1%PQBMC|((Oh#vW4;jYayY2IbdUtw=)G};^x^Kx8M z-&W~yCdn__DGUTL8c-#o--`0&z>n1J7E-gBc>SqQ+fRbE zHwi<3{z2y+mtO{rX=n}a5_;|@q*M-0%ornVYOGew&%TRq`U}WK3j|k5ul7Bf{C96& z6XB}TuiZTSeoJ<`u^5M(;Pn+@zsMO~Sun`k`r#uJM2Sv1gkMOSsVJ)YQr1PV>#bx2 z*lR~BPt4JWo7^wzEn5?_UwL;o$7fP;dh-tCPXiG1vYpR4YHCR=9r<1&kDoaAJ8U7r zmorF|e2iGx6!5ZFZG3rx=b#U{LjZk>Q&4$<%xY Q*07HB9ETk4>Q|ffu?Ro* zR69M`{W#+6v7z5z-MxG5V7d# xxE&v9EiJD?vcgz{!Jnn@mq@HW$L_A<-Gcf zG)$J|0j#v@{&?PgwBK*1pi?C|>kx2WT$- 2fK^qu2glz9$N=C&-@571ee3v z0`+cgd=bRjH`%XEeQx5Xg5+cezq!Ky#1ZG3O6JRoYkxOfMxh?|iL~-Aa7C%nIPmk! zK8P~~vDO^)???uw_^Ky10r0wv1N%*S cH_mP zXd!AHCDQg7$$l3zet$3rBRnAO@+}dt!?WYeGn|{(lFh8yy4O0qkRaBOs6bEN7ZyqA zd4)n>tP^uK-8ZYmG8=IyHms%qwWTQ(5E`CTrX4dkklf_lPz}XSpdk CM^|3#~hKmB5h%Bi5@g95~;$ zQ69|`K%2b@K$>Zt>=4=atKtfS*ki@}@jB&GnGdKsf<} vW#2BTU8f?NO+>5e)GvW9~4)d^S#){4U3@i-(eQ+E=ZJjfj3`-x-zRH?Swx zEOWeUzZuC?j@KHta2j$@E;W71&1|jmD{n&1XQ~{nEDiIY-K#+#@$Y{(rb#05iVXSS zW}`L4RlBclfKBO*pZ=;)io-~`chg im~w*TX*8IZ_-R! zUyxEeV CK`44(*xAmbD(ooTRNCHR4MY|BR3a|V>r8exZnbwY3qn8g0mK17mDKa z2 >gebK?5$4(DFcN>$ltyQaec 5^k zF?wi3S`V2fQ%=$+o`z8)A9F$sAAhMYNNy*}qtF{MFyx#bNzna4q|diJs{C+#JWL)v zhH^A1iqTkPvs+F7{(_h} HaT{pUdewz#kQt30pE7@}f5xAWmyq$R#<5XNh*w z2lf=Pa#}-+$L4-kE=H2SKd9*@_TAPWDYk3g^RdXN_z^N%<}Lz%l0N+Y940&z?%Gz@ zbut5mCA5kij5b+Q%LrRZ=vFTH+)8yB`P0`%9uZtFL(203>!<~`cRAhtzY>N!9>>CeQtBCi=M@(M|y&opL4!*%uD-8%-5#0|XoL!39 z52PkJ9evjS`Jsw *=^T%~^)4{LMUpnHKV3 zsdCw%@RD5{C&^s@qlJUFAe4rss;i&F3obYn9xm*u?a|1C3}j(R@nbOP&aMbrvF3Q* zrsK;_^8)xN5u(g5)qZ!}Nn@2;cJ-*YfqYk`tO<%9jG)LlRl*Z90=U2#%vzgt5{x!` zhE#S|nOD|lR+?k!Mw%$Q{Vj@>8S3=i;NE{5b6}xBo1>pVNj0nw??tzZ5%{X_%?38+ z{AGPW^0V;k<4wI~9MIY4te?k%L~xg10u@;yn#ZAEg%(J+c@3p&@ 3zx?%M zF4~xn12IGcd^c&ziTbkKxTtVeEK6#5^Yllh|5$Itt*x4OPz9#hIE*RE710(LYNq05 z#W5#gyV$_07x=8>IjZw8Dpx`8zK6K-jQyV0msAqeBLfyAU31^<<|vBGi8P_*PKyG8 z^ttvl3x`kV!avO&$xB$L)}m10S2py*YDPU^np#Q4$?CLA)D< uW3Az zqP*~0Rs19mk3@o9N3gD&PgzcD8^T&r0&PZy?R5GwYDkrD7!Qx4x=c^xyHnF#*<@5q zweGse{5pB^VkBX)xR!KzQ9JC+j@y|{@8;w~JP%}?W!Q%{1Tnrb9Wh&rslue4s;cl- z8Oq G8vxZ>qJ7}9`*6Mf+f=$VyxNEZz z>An10`NQg}NSyZQdRe ;u<$#LM?6oTX!Gt~pI`?#`>Foi-W{*k1QF0hPOmrLif+p7!cPtl=~z*dR5< zyw#j`^{EKHcMy;)SuJzJ4J7_ByU?>oWF+Cy)**@uFQw?3{YX~_yfkCJ^vo-jlYEui zHJ-7`r~{963O74 Ju0ytf-5jW)J s_AN|iMf0D8C-b!fGV1 >E zeOzA$cBlY;DR9A+&6eDtAW1(wC@tp2q+byh(jhh~6?Ywmq}$Zq*?O+H83c7oGg%Y@ zY1b&>aIJ}GbA*VV;02A|FX1c2AS0#5^GzlyUCJAE$p$1^=F+3gQj^-&RHD%D8hB#~ z(`F+V``NN$z|WEORk^AmHQ3b3LJG4ni OnlSuSU4|?JQ4Ajfhaf;dKfmW4MQRz !1 z>(IkoN6*h^D(xHH5-*wV_9NFBeL3lsTMk~22t`F|k)&v1k zbg+w5_*Osr`E9XKzQ1yP1mtnb<2=@=BE6j#v14c39j_5F&eWu%}HgB@iS&@|SW2 z_hM)5omuFR4oBc<;ypm4DCL5elWlQzXhRmr #gt*)$!FEiFV`-7opZ?O)E8`$6w|Me&3dfs3=_;`1ZFg_2sZ^o|h5}rKg#1 z{T>#Fl}7te7sGm0w3Wx}Q=Y}OS3|ipho1`LOXXxGgV~FsCK)*6gZBz|B9rtDT4B&k zZ?_bU?PGaWeN-^LWWV&xO%(o^$c#JdB=naPRiwX0n4!@M3T1(Jci|~Ww^{h+#E3wg zx70|PWn2ukva_{ aurK{)T%PvwAb{rgsK$DHZ%0u3z(OkL^x6Tae(P(V22*Dl z-ReD+v&s#kBQ#wO9P66mkZo&ixNm2cof-;?+@dU9gd59>3BP+Xk?cg h}# z#JFJI4wcZ)@f$>!UdsyWDs5?^F59+zx+E6j7#6D=Ghg`Dy5roo93fu*g}%M@m0PBL z07|2(@9c}kfdr)hegV?E#n8k8UmdKMH-fqcb`F)FKi#maQbA})dI`5Ds_q=}!1-Pr z=_`*HbQ~JrCJH;bdr6sJIIlGs;q!WKdA4*N&v&Qw2ePdS&j|0d{t#6TQ!=JQr3yrb zg8H3mEer0faVIOP9w`;yjh64Ss52GP18>0^&f*3pWI~#ELQwQ&sEa;mp;#9m23ky_ zp1J&1aD_I~jFH)xj>{oCFGvPA+-JjO2dVj>_U%F!dSG0P?nMz>3O1bI)Dpif&F?^q zrDOl!B?SS*&Gc3b~&sk_#o^tA03T8h1EEFhBHbT`}o@Orn^Qh=soP zhJ?0T=VMvNJQC2>oRA>8MPRo*>WrKre)xpA6t$*iqryS6Wh(t+tRc1I8itoF(tUfR z5tK*{ks@9M;ySNl%^T=lRLIUgRLVw*MUv_op$&0HTWgxj9u` A*|J0=!gFFV{SHx>GlKe?zED$k2z%_Tl|^wl0APp~y}9Cs~2NAy6j zkh0f!I^L;_#_gvJg_glfK?5#kSnlHK70-LVc#RjevAkkOAMwu9-IX!P>I=&=hDj$v zbTT_Cx@E0 F;Nh0IjA_{|}x^*|xZxJvL*L$yI&){KvzgVXZ zuXjY95BUh$TBx 7lyfVp>`1FoJkU>AfLN#{r%wo- zt6B~a@T{ |%WQN8#7S&=<;yjY!gdLXFq3ae*p|@91>{UVJFfW@t zGauHjt5sc*6FAlid|TY_HLzPY;kk1inJBDZuspV)YTlZ2;|3mmc})d{jr(g0F?vMS z^*VeZQt$`x2ZC@yZq<*$nA}!L!CK^%^`ZPRYWLg-QJ+P#MRpZ_zy!IRpbNORdEC!v zY1p<8vd_Qg&%p?{KrM+TsIX5tQ5-}x1 A~sZj<~? zz>Ib2-K7Y~);?cH?W-`j@%ynt=mOQA#*fQ1Y16ylLR&I2no;!7gW>N)&I8bBvWlU4 z2VzdiR=yj*>i z7aKK}P7?3A9^LI6Rwl*%%*71Cq4edPs%7dfQ$MwaXle25xy&!O{^q-v %(Mwei&XlEV9gMm;#1$w&t-CV88L&i8V^oZII8xnZj31-Ivs*I*#}1-n^r8@hC5d z_$beLBh? U9%6Jzm9q7_F?E(4XF_ZyEb#TckWR1qOKIx~1in!On9G+-S@__;@#;vl9W1(5 zKq+EOoF%NCaz%AxkUyWXK29Gl{{1GaO6?t-zCn2xKe$bmNR=_l=HfZwTH7eee&cA; zo3j8ZBoUZub&}7+1tq~{$G4d)nu_)*uKi!%RDqDsVuK`Qi}7TrNos8GtLmKc!|XZ0 z;D*o~XU;M{?(0&DUA}UEYbw`{tpNMuroTL?{6}q t~l;0NripOjC?09ux7v5x_n9BNj&5Ga7 zYAxH`i$(5$IdEhnb{7N1(LV+E{v0R$ywFq&CRNq+|Kl=+S zpKnL+r{p;`%NXh!96ze<) My~LR8WKA)#UdO2+WBo*?wlH?d~3!O z1<|U0H#Rvwv4M9!Kx0{$l}yb6rOi`L*>>j;DVrI(BM{W!%$!QAs*0@XJ(2`P%%%hr zZ8RXxPr|yF*^$}MeG|rbl-5;<<}W8Lv3!mlt%OXA{N4M|1qKcVweVx3<7a{Zg73Xz zNiAoCmJ`JkW=w<-iHbiPO@h=@FLS^K4;G`kb>yMSVzW~zv9moCj=Aks8bcMOG}W!` z^j32{U25O&D^jU5Bih3J7@8dRvD1yG3&0}|w>nURp2wDJcV+&ub0XVWU 7O~Yo$T($AGM@eA_+1>otOsh>&C`Zc?}0kT-+e2+8-Y7mn`pLcI6Kp&&*g) zkdLTx4++x&A dA`b+kLwiJ($>4+YsB`nW=+RwMeU}z!y^nOs zX84kI-@DHr$9h$!jd44>9BoIn5o-C9RTfpex5c+g3x&B>`vY}g{$)RGsr5tsxA1Rz zelLEew!O7z4Z+v@@g4NA`6daaH`I&lR1Q%Cz6J3OM3X&U05;L*&QCA)nR{_>=%$(_ zQ`lRSnvTxxM{y^%vOSxTKO-_~`jE#4e48vI*a*>wfN1W!1> zv|C4yu`@wMa9P0az{eSeVI`+_gfNzFo;NCuQn8qU{vFE@DVM<*-*D1@s}`AhX0vTk zRF@OE*yCki+u7j}sW~EqRXC4hHynyPymxNBAl1}Q@a!YR_TnPBu?l5TS^dFV7asYv z)3>ac$Rpn;ZAU90x2s>J(Ybu1`{`h=br12nDB-#x&M7_Vg5eZT`=CStu3rW@o;jKp zk(b?vCDlIYRH^1?BHI`j`-P3xH*r~0 v7A%c zcxh!_e46nSTW4@%l7*Cpd_ZueOEwEGaqyJZN!Wewbk&6BS56lJEyrTr*( z1){L@LwB|IrQYci9_RlupXN@*J=-{2Tu0qnMU|CEP!Sgnkv^h*kqc9jxE;&J r3NUb&<-7R@G& PUKO;Dp6 zrO!UrZG3w`5}6bb`z@drOEnN?jpgar-}!JaN11HLe4c+jX8G#7vhKUDSGVKsZ9d<% z6c0pJxwPFf39G aIwPEpiKkaC4}-xI`X40s=!qrs`Vab zcT%5XuzW@RjoD%fSx3#UAf(l0?%9AoDgQ7G5?S=BhDF~LH;c~p2Ewq1pYOVn&Iq)W z$hvM7um*p{C9^M(5r(vued=>l2-v)UCwxhK;(lNy+i7ZJ %|lfdNY zjg7wm@l?|<^>7vZx4WTCH3;|nCZ9DzB1~{`On8w}G~-$sSF Uj6p+nTca%%nz&rO zz>1xNIQMZ_zb-I$WC^!hr!E5uOE^O+a>M}qU)q{S=&uNEbR~jqnQ>iTH%$#m5%kf$ z6xct8{y8&syAGw;qwe~l%J<^qts(t1gpg_G)rz~}17ylP{5);jJP58nhJD<5m0yY0 zA#{k`THBvChYqbD5vAc>)W=A7X%C%mSB3QvQR@j`jL9WP#Xo|hnwiI@qP#j(OG%wO z;r3&RleoB7aDHj; 6S>vx=4g-^JV&rrxPkf1J%r|_2f`< z6_`H3RtINZFFR>iup42`Rtx%)+Zj{)%h~YR*46UxHv8(DoXbp>s(R4zi1=|ye+Slj zF1b)TZ1Id&DX8c0&?9{hH|i`aR;jFQ{}vOv5Pv25HI5U}M+OnPLJp{JUC`CMT!tgP zqb_F G*`e-Qc((O|C-7BX0Vu Mk=O)td zjBi-t9Y7(leuVht7t8)3oS2KHogq(s0(uG+(p-MT-kVYLz*!<-+_q7$#>XtV$DNy& z(W-o`a9H;)dAg?-dYP)!=%E9q;`sO0>AG`_q9H|R80-m8Tr?h}tC0$8(k+a_Z;X$U z9@;Go{4TR6RaF>N?-~^Py_@4IAI6=rXnN(Fwk2z6=_MC9IVtpNJ3E+gT0-&7_{L-L z&|AgEKj%SY>Ka8LA`^3oobaMc2B(F8Tdz;;9Op $l6xajqjRl=*v3>J6|3)olQ?BEtl}Ie(q)FF?i}Vgs_IHW+SEjk zPyEZKcpY3!x)f>W%Mc1_xdUQZHs$+GVx(Qmquzj#@m_JlQCUNCIv0EY4A=yAu3Ku= z{&+nUGqAFT8it29qz@x+AqKX_oEHa}&{%JiOsW_o?J+2Hm}h0H#*==V$c+gCUmxCq zc2VC!5 krW>$gHnDOUtn={q`zk2N7ZX+xJf>aNIdx_1+|vsrMG8iotp4R2gv_ zpKiPkV7G|Q2J=ZZ`Z) ?8JOko z9~7+7!fk%GD1E?v2U#0s4vO*AtpQ`J1lNdi>muEPP* +65ZkO-b8V1C2@Ffw@bxzx- zXbTQ6b5`nV2RlJ%av)SYU-T#7hf}&Zlx%vy!|GG0JCj#={jwvObcbya#H%!nBv0M1 zk*QuW;`bgm4BH-R)M4(vRgtp)WgwlXILXeS4_}_gL1FNgG*2|TP+iTPb0?gCECJ83 zc)DI5DXMf{*{LNq+)OZ)8d(}6A)36S(@I*=KfwJBREIuYpOb0^%9sBKL_oX04 hJEo4%wQgZ9jo^LExc+#9iy1d@~ pT z_I`6!UQBh%pLL($J|8*a;>dB&@YFRaB(?QetrC_SruG)%$K}5|$r41fV66;1U@_wE zjv(_dfMOuc8NiR$L5X-=+aYV(^EWH56MM6=a^-l3nt_a@uTr9GT&Um7sBU@KJe&c7 zyJlUJbykT;i cE$dk| zd{{Y#RDu13bua?QP0Mt;u a-O-=Fh2P~=-)`+jG6s+DCedBgUIRk=B6**b9mb%0&e+z-Eh zFW=}ll&5_mOZ#ih@?Z^g=K4B F_T^7_+63g$E)A zD?r1mswTsx2na}x!JDs39-a?}A$N0>VdC4^)(Cu{rM)`pENYN5K;^XE9jgR(41 z{|ewJlJ42I9Bcy?`pZ;VTtumNG}7p#A_&cHR42Jg$321OPpX@uN~8SmlO-w{cmzOS zQ)dtb5Iysbyq6}>e~V;1@V?j`8rTj3SwE`zTWEhGOM>!$gDOgenb?dNdeIC5m#uMS z$52u-MU+uK6zmkQpyr=f>RO*a*zZG>eggsAO*`Mq+UAA6tHo@R#i? }6p=tZb+!{10`y_tTF^Rpg(b9=E|`iUZG0PePoZ?G!qXME-_ z5X@5)wi`S#)GX6tb;-jQB95QZYlgc`MBHLRjMO7W9jZ*9llY^)_iXiyneO^%@5R(Z z>uku5k%2`E>oB%-oVBKEMBoAYS2SbJC9xWs^c>NCBYvbfRuCEg3UtJ44x~AXT9bn% zVT~qs7p|_EM0ic3zyd|bQq^0@tQmHRpk3dkJfIBPX=ZR;l(Q7{^hN 4o{`30MsuMs%&T6NB+GJ@?zDW=BA8gfOBz)$tUtrd2*0MMmG1^$ZZ&d z1ma{o_tpp`8EtPlOAy#0C;-YPkNtmODS{(;Rx`%n^>T6Fyqmt!>W}oJTo<^EFXDRH z1b0#7#MCuI)$N4^M+I%#t3kq!U+MKLV5EwhsG=fFYlqdQq`uF{1SEG2)u#w4gYmF5 zXIgdr8)H-)l!BJng1bI=gj{9P_(%yrx8%CZxoz(KkwxUb5=`_x=u^at@iOJZ4b9(_ zfJKv@n9ZV~Tdkbe*fM7Zw?s;-ii+HAOz-0Lo+O0GoH7I59bMXq%*s+4Ixl^mK1Btc zvPaE#uTf4E@95vx3kS< yc(yp{s K-JGt-3rw5HAlP zACYO;_o6rIloJbN%3W<;2n{s_i{n_i_i%=qRh1H| exNu# zrO;~c^ow|Uqs(9~xcfhI-O2Z%*d-hGdo(rK!XR=Xb>TSI@Z)(9j*0*ivwnwa=i)W= z!)6PnhQ}XQRlD(L>v c^lt*Roi&H-s-xo+{kF_-uom@lDxi?%(5LrEp;`uG zvN-7Gw^c};G?ndLw%@Ztuqz^po_Ff_^`V{a921lgU*U;g&e<>ih?8W)^iGDC?&ola zgw*O2h6^5pd#FRZR VEOhIRr7va9gtR5KcuTe>ypH|3%{>)M4>Qb*Lsi z#7wP}h#g*eL9%seBD3ey0_XZH@X2xN{+1+v*$V8LaXQ6gtG_XTXZNHY{rryhVP??_ zoT7#HUei=8fYct?R(LbBT z^@;dcP6jcvf?M{6y?i<%_GYqvDmyY ia8{!EVOkp)y0#=QusZ{AHGE~tvot-<9xJ`2JO&rB%Fw`@*SV95FwF&u1GV` zJR07m|Jfiz;&Gsfse7C-@L~75!c>i G@8M+yEisbiF2O !DUF3pJ}20-ndFDo*&nBX>RU2binPt9Rf3yn=nR$IaW6%?;yq%Y+tzK{WpCDq2Jn zB;-xof>uR7 $W%--_75^7Xqc?&zz%^RK7srMfw~VQhbqeSzm7DvT{oKIOR^!Lt;L?jy zApPFf%GO*bTdKD4b6m$2XkDC1L(+w9{LQCdM3uy~0^l4&rKst&qyu?GaOTfj PY&*JAX7hkLBg|g zXjF%=&ZqXNMq{e4@`zC*>gq+qGmIfV&LugYna<`oUR%05cZQanjo$^Vqv6Pq;R5>~ z)8`|7NE$!`sI?7=5# ;bj`xTb-eO0L%g%A$~$ Mp#&MZUhq)^q)h#q1i*wWdq0xwlAf2`}5Ni;p1rEJpO8dowwN`cu<0i{^u zhw^1&h?XoyFY lFu=+8#UCg zKNk13mLxHo=<`aF9KTlDP$400sasy)9WD7%RLR3P5_$f#ggpsks16}x>qIAD<1K>y z6` 3?OpSb4HdGa}=o zCmEBWE-*b>Q$A5~yj|BSUQ%mUq%A7cK!O{SplnE|^ceABqB&@H4R`(+O#v^U!NmeM;*K!7pGBOzgD1zWobDw5#)gSRf>Otc-`^qTMb!*}P zk^lOdV?05>d!l2?Ohh4RqLM6XtzH5|zjgyQ4LNsnEqCKYFIn2X;>I0X-r5R}eGF6z zK^QmQ*_xh!dy`3j|9qBQfBZ3x;^$=SP^H==;A6aM;1!t4a~H2oKtfhrm#t;hveM|x z&6X)H+Tyj4J -XTKE>HbEpxY*czJ17xH*!FV3U1R~TJokv zf`HQ0gJ<>;h?%&D%g@!z$yTuYYz8c$_1TnJ8`;CeTa$XAV-3{2H~@}4ah%NlBT&0< zpTuOi1GwUnkeju-nX6#nn&VRnGK+kG`J&cj-FIitzaQ%R_~(D|<7CCeSg;i_jmH3a z9y8Y434z*Nws9mwKam)uQit9p$rW2Q?Ksp}3buJt?&Pg;e%umsrIDL_9_t4c{hNX# zQI=%`K!J9=h2(9N`^SkQ8tJa}Jq6E6W*2 KBTS;}Y0ejE@kNcGMMH A?tM_Zl?|&*oQYdw(V pwYL{A#o?&lI~_RR}g%5H(*+ zzjQpYV`x9PtNOqMab6G?kZ`&`dSZiJ%hq_1aKp0Oyd8e;PEd%T8=6kRQ3?f|{#N&S z#&_#N+5;4!nw?NAojL?kSw0t~$L%#DN3Xey4}>M{y{zlP4Q#f1>?MlSc6TEF s-#t)3}=q`!#cM)HvQ89wx zuniikF;Ies{Mj+<0czkS8Nc5-l?a#dquU~*V+A~Pk)Mrc?jQ^x-VvYb5wF2vf(Th? zB~;tl=w|qOimtnN!c&v5G{pyXG2(K(_4kMxV!^Lu8`NxAXfswG_Z@5w;aS2}CJyRE z#gIXc;kBiobY+-kfDmFDg-0013T)0qe`_LcC|cN$53$e&L-ld54v98cR*+KSRy|a= zy^3wH-22yVt3c-B<;ct*txz>j2fjL7A;(fk-vM*(2Rd5E>O{o@A}k(mmDyf-#n~%R zx8>RlGEAgyVWu5W5bH+c|8fZ$Bq%?lKl( o)ZWAvEZt&?P)QuY$Ff&14RU=3s2Hn?rPE zGP7ld-+Ki(*xK@2ONp~Jni1x&np^(^pWVp+^@F2}!_c>M3}t(C#HJkA%nQJ57>3!k z{{zxz%0I1Xo3}oX2*+;*j7zv%M4D(eRrV)LyoSOTgzUOU>*htW$kTnmSle)obls!e z#&~rOGrAVTbgtVhAw6$9tN{N#ABGD@CM hU6CEla&KR|`G zpxOy<&5s2pS>K2rcB@!>$}DfOC4qP(o?KUCgEwZrMqmDs$?-65Xv_~A5M6P;O{cq< ziL#W +P->@wfF!X2DQyH#S2iGPhNA~@RIwenH23mnYwk^od)+yX2YNXJC z=iCQFmb|^_f#!avL>5=7kN}1qZ^mzBmKEW%UQoD60ZnZvkVDSDkV&XbOM{-ykJ;XM zJ3S$w{{6gT9s97Oz1zfo(BeSmNpiz)% `aPz%X@7anh@r%;L1hF9vxubv;8rPsq9T$g05QgO2}|)*?qj-g6(kL=LhWzgpLT- z-B@rh5@u*3h`NVwGUr$;%EXl~5A0LaBlg+?Lg jxkVscB-xZdK?Znvrz_-YNWc2vt!GT`uBq(4eQYW(d-vC)OlHJoYcHcUcxo-C zW|VLwi=Ge%8VBtofCp7rxXkK8fP&yP<92r~2XgAlQ79`A(EO-7BKMhlmGgR1&S)dB zh^??O85QLQ$KpvMF{FjcYmbV5)fK`GFnL0^k<>&O{;OLNly4*@435eq(wR#n--`GY z)10`ZkY{k%l`C8i4{(yoIiBv$ %D#T}_;&+*wrS!@9+Trg(JCk|UCT^=CXP)n^m*r;;u~tn={|lY#Wvm6IX`kF z_N{Rg9;S|U20sXD01E8QZ~y$`^`UjT6Dg(6UPkxzt5MyCI0L^7%28T9BB;_^ozbnR zQ?fM&fU=j}D_qBPYIAdKMQ{KCM|$joTn1mMN;H+LV2cjhVIch9_5+KJ-W1F6>@4sojzm-`Yp=HDd6wOb}Mwk<8^L+q9R^D H @}@Tx;SFQELpfJvL 56 zBa&&0+HZeSW;Jl`4pf!hPxP9K^+oQZFU4Q^NG#^kddnj zvM2Bh$iq`_ZbNHHD#OPn^_`8^Pn;2CASC?mUzP$ZOdUAXX+Jj3ZS|L%i2*#z#pkCq z79fO6M4ZO*`#hc3{`decps;hCEWzRa)|CB%v9_U$eY>o_S~t7xe5M`G +d8>+_h*Zp~!r-; b_)%H-a2GT*gN$8{A~J@-TGlz@h8>9e$(e{-a07Tf1D92 mCO>`R+IeD|P67$QN+dV=-H?GKz3B z+2F9&3>)l`hgtQ$75&{4C`v}DKC{7ePT>!mfYEfPfzp(!fF4c+j30IGCK6-F&jSYl znG~^v0n=pYo7ttAc6s<)!=}+#HhMHvy;SoabeFJqGY^{Y_sD+rQAr$E=YdtbF34ak zCfs%Dp<>aS@NwwX2!f TPo2*IP@;7+|K>h%k{aS=szh&tr{g%<|2&lIG~JUN{BQkqAzeossxdJ zAT$Rd9* ^kgXxOjM zE$HG|soS{$ok%NJeb&OOVn^tRbY!Q^5v7ro#zP)!f@dFdX^2vo=*f0U8s!|yQ9s7E zab61QDa3A &j{ey!!5%019=k4`ZfrOKpjK;kcVvmPwo7h^y@uG2 XC`U2DR6uacDvzRds;YZhOEiAkm7Yp$XB^Xs{Y{!zAR?&JaJjDuo LCo!Wg77fNPc4@8CpIIRM6db;Umq5ckH&2|;?n3NRWD zsM#I}$444KB`hHZRrziW+bkY=%kB^Tp9e=W$KU>y1zeTHH*L!NzGrhRHCO faegwv=U(U-T#=Nra>`la-+CV5M1hPWfG(t^ehQxM@*uao%a4ti39>#0rNKy=R zi7{os$^Z}qf$(EHVqla&)`RLs92eqVWvMaLpZyHdLq aT%9=&AoJg0y-^PfQ1pPsP+K4aX(GWfx2_MvdI208_RCTwJHqYKvJC$r5 z?4}VAr}$VQr7wvaK4d&IZO_BW#u3jM)BScMFs(iMT|%J!p -isYy3Kw2J3aM{cC Xt^;?q+7cGon257|E>jmeUoyBX_stGp_<6 z%|g@g&!J3zBtDce^+h_W7gc~2m>P25ijuY}3zqgq0I7r?E`}>KFpHobq&u`V9~%_P z0%9oH!u*OQEpm`4GbkL^_QfXGUq$tct<=5tPjg|xvWhzFKa12)6k3_3`^}@^3*G|V zrDWvCB}IvK8!G$y*+>6&0?kfHP%D5LrLLoc8hi@_Pk%c9AzD!v%^@1?c$u1Za|+xf zEv+$`VHeid3zta0(|4nQ3QQ%^ZeKHCU80Uy>22lJ0{(k%_hB`3{3VflPdC&DO$zTN zv;9}o0(z`a6{PlY0a_l8?f!D8p$dzmRj@G~N87DiPGKS#)I2)@Duo}#HF&?pU&AZ^ zt0OwPCQK#0Jk}Kj9qDXPR3bW~rkhg;Y+RnclZvzHlpcmsPOG-^==of`LK=!-h0aHa z7~Io(AaY>xzuDW#mXx&8D<8Wd-|Kj!D7Z&Zqp93dH2Df;dcBrLJnf?`J=ThOAU$0! zi%8^+xaWcKT|8lXTVNY{vvCwqzHmL(Pt_FVib8?qX1h529JL%tceB%{(r&}hql9no z{09#Nx&npN16UJtS?GL<6Jf XQZSv&I? zPA!@q8*zNo<46uO0YXt$bdjJ#8QAG0&rq+ka>{EH ^Pzcxd7fDbYvwsUyVBapj06mJY?eh1kuLz4M%A7@oV#WL<;OByk+V_~3+Gj(e4 z6CL{OHl8=n&0-FV6)(~hB44FRSHm7)Y!uQ*eCnbYt2r5OsvzYun|^KF3Sn||51$gT zzR+Y9DKb$GO@WuB_QVy%)t@j>m>|S>^Yi7ST`#! 3 zWy8HKM?S}Z@%yP+bR-OXj_JSHycQt8dMef}Cj_8AY<~6VW$WX)zyyq^<)0wKsBV-N z)suBV|4TC4U%%fvQ9#b;jix#y^3T&R6;~LR`Iw!^JY${j^a &`j-D*+!;A-H!X2hdCPHH{7k zVtn`X?9>NQ<7N0_r@$t!hb`QO0z!XI0rPI*h{D`~#$>b;K_OaLBrV=R%Qv2Bwg3oI zSe;9d?d^!N&W?Zg_aFA3@(0p`sP?DXEz4jl`qH>3`HTMiDkT%Q_c!Z&NCHI1UpgHo zgacPcC0Gf`Pb0%qR)5_EO$Oib(cES(D~}pgc+doXS+ypxZdF%ti_yk+@m`hyyeJCw zR!xb2 Au+2ujvPrS{*jlGvY*eqhH|zVfx;{c})v~2rc^T $^%-j_7-KW3-qw>1&zhMvKuk8Y7em$C;PcI=S$)z?!ET>S8Bf@#rKj6 zcQ`Mj#Q)k7X{dtYyPr&wgsZ1Ms#guXVHj1K5--(ONg1ZOU)PPn?C5(KF&E+PL|f40 zBrl>wi9g!LH}{8~<)DHbgmeicSMX)za;Uui5kF)ul`A$YWLQ;&)gc8rM(;ALA%C;d zDqFyd1d^QV_bt%l-^o`_FS=$+Ovz%)aA(E9x*y0nljf`B)36-7^VlUUibq-?7Ky|s z%FP5Gg{lO|3=~a5D^6Nl3;6s@Fi0ZGv_6b82fyV?Bx~cj*;hslq*8Z$xK{_adMZv5 zUi+1kRXVB@eQymynBBRwuq7gzvLra)_sjc022b$s0KSfdF)9^<0=n^Uf%xRdSOUoK z+j%S-hH0h6@b5e;;E3j
qtDIkqRy_-Bt^}x2;ugAfoFN%ucg0=7 zR?Tr)(kK#-Ca`_$gKHCZ+r>BP6Ihl6j7$Anfdp-L0G(o_eWo7QpA$w)zIpEnR(Sa2 z^tOwC{g(rq$IKNiZEftdpo9fI8G+~VPFCXn^SyW&em5&u>XlvbX%QYk4eoW&Jdryo zd}Q_kY(D>EsLta{XVy~d=wQ5qb|lXlWz|z`@Js#Hfm5?Uc&A0=KbM$Jf=@YNNr# zYznygvILaQ3IXgZufTU^#%V)V6L_LmU%NWNjOP8w{9HDP0@`?x+@J4lg$5R&zGw-8 zk6J0EudbW#d+~X8{dXRPaW93Kxb*%LD&_9r(}1^?w;=nn#~R|^HvQUOG9q^)=sq!> zVsW6Q;)p$@IW1}N7WXoclG$zKz@gXo5(l==2}L&m=XW0RG- |0YED9LRC3+0n_+P?fv1&H83_v?`vELq;pG){r}gI$8H=gqa6nzdMxY1uO(Y89GC zI6BvP&2NHN@Sb*mzYN=x?q a%VP)U!T%tcJ1kYp7buk4ANITiWt$%+g+s0M`rQG?e^fLP0j*luNf9N8J= zA}Tq45nO;pzB$3~vJ;p6O&&70?Z=%qA?&A6`FQrZUjTHwy9wDPj^EyLng}Pf6_D`M zCC9rSKtiYr0A9Kl;iWuomjQ*@7s<~9e7!;)nS~*D?lR2%?3i#sw1o9F@U-_|oJ^4O zaU2U_ZvLaQ$7~?~DjeyQo{8L&GIh$j+McMfxCutk7%(m>fb}$4@NULJlt6?^B;sZ> zj>@V4JK`=CcX$;KcwX=4oPzdZfX|2gPqQGcSR-cHdiU$wr7}0qzFd5Y?uJGujb|OZ zIhUdG!-Di~39EtY`Xd*}UbUCE$M(THL{hhE6oCv_LhuIB*Xm3k@Sdh5c`4WAoN?d8 zB_J_2L@cLqm0}RFKvZiUkpUAoz)ud%9i>C$G;qSa6)4sHS;N900qo!=`V}0lk{v}Z z#yjWN>aXj^r`idZRyG4>zuK!PiISu2ekc4?Pz~OT@D_-}_{m-&k~;>orjs6w?;8s{ zkQ+F#m?Vd|g443lrcG}VqyNxPIt3oRGlzSD+L(Dn1=D*}^e66tUCpEYOTK+uiBIfD z-zv`)rFea1C5{!u?BOgMP <;8jw<&O z);1*ow|P8=fw9&xWD2I6nJysMR6EDpuLh6-&_rMyLQzoXR|H#4Y%FG565_8^ZO@V4 z;xJVBxG7{s7G+N8Nsax5xLr^gn#jPiu%cU)2>fkTy0AVuOl_7)f%!kNLG#ZmLO@cA zf=#u93(b&>`4Fm;g4-STCX_-FY(0!muSz4loN~ysi7~pIowkKKXEP5M)GuUxN=C zMPriihb_+H0~t!^q1WO4I)cn0dg2|(9W1nKl}$W62wi3zRA6ox#jg0$`EcS;w(^Db zDrUxc13y?F2_nv}SejG)&@U=W97$d^Pp=Yp{ynux;cMqW!lj7F%(jj}+#M?~K;JUj z>jyr|aHoaYBtrws5GLS+wS$eU)%X^d0Q5+SHIC*zQK6rdC#o^|6(pBl$ALU2e%#?t ziFFT}svWj|M3CP8oI8Nz!h%s6R>wRaH(!X&l*`9myD#nTIl08>dYTLDu^)GVZR-8Z z%L|p(*JTD@|BKUj&smk!J_Tv0*8h#BW)1jrK|Yl;G0ywaE?&f#$$4Di8E*MMXhA*u z9^6o22XDJi^&_cKAeaH9mir3q6;C7!9E2W`nQ*j>$0 S Lf( =P~ z&pzQz%SMYp%NKiLWd=Jxq>%*^1zuN~N;apZ!Oso{u=&+lrzZBl&dO)mDB%`XAiuEF z$it8T2k9P1zfb@F|NsBye$txnYP`n#S|AbCKs-4$9$?#Dw*~EB%(Jik1k))yzOzQV zbY3NYB^7n->7)U?vGN$6xnQ G`BbmK?iiT z|FvH4r<&i!!pcI5sy70MM0Z^2M2=7sk;-)WeC2FBZFxw@)L)-nTG5rqMO{iJR>NRp zG%QQcIU%hqUIN&MjJw7?Ix|~fPiXS7Bf~hxiU#b7RdBb;v2|x#-7eB#!|z~5<0@}u zUG|A^W)r#DliY%D$S|OgPIF)q6z(9J?F9O~`gw!d|FvV$aiU$0Qbv3O*_N~mU$Cj@ zuLjIl(d%Di;3ObZaB4#}>egQ&r3;5ygAv@%C20`!bnYC@={#NI=%ny9XV|?A*uNl8 zeb1+^sHur2GkRCete-ksc%CF~on;^pB*~q;oFFbHEn6qE$NHAxd6yT$CdK*aVn|jL zTAlUmraeQsm( _?=9C5X0tS5AIZ93h z$Rqx@jA(XtR*qJ4h2+ce)sEO&gb%V9<(}e?EX#AK)aa}h`7U8g$J~le){34pBXV_u zYGbPhAOcuk`4de*cHY=tRFdcXM>2=*@<&aQg{Hev>1o6zL| o_A*P&(#COL`^??Tp8g5O+t z#7Yit>LONKln @|s!7x;|jlBAD`P!{(Pd#|F>)3>TSB zh8m)VUjJN!U6=$5V)vvVWdS3vKsRHQ{#Xczk|3Z9mc o;ef&WR7`vIa|5PTX(~yjd5*-Nx%oaoZUaY=n4ZtD{{~poVfIW3? z<0V82mFEh0=SrdjFL_0W#l|?EfU<^5TqfPRSL$0y)iBBY&*%Mrm;tNoVD{yN-#orh zC`_Gfus v^$mF{afp${VjIxaS;)Y0n=~^wfu~dnWi{0nlupLl_NY_^7yXW*s zq|8ZmxwA7Qw{oIP&6>C%jjbxnb(Gi1ahRffxjB68w217~xcpe!Q}vt^A|q#l1T>Lm zC!4fK0|A~RY!UKFFyAE~vj~0+&vU+7oR(%*O}mW&{uA!{?8PPlk4#wTks~ESyLtll za@Eb!0>_~!Il2(QWX-O;3*BWb0Nt0sXqtBI8Cm0xi}Q7|c2#equ#aV LC+{Xv@ =ks}wWy$4WZmors!>ce?=%B{0(mJ@3B;jus`h93~^P z@$kW$o6%uz6K!iw@b78<66aZfqBvK7S2bwBdE13LZCJWIWU{|CmK;9Yw;@hXHQ5MY zxf*IRt3DkRme2z+%YMCsM &~uM5AvzadN4$Tkziwcf_GTf8--dvBtP^ zCkHfmPdxN6V7f)xAQDF~5?xG!t{zV{;vvDrK)sRImEpANpMm{YcK4O#PdN-Tg$m#K zgWEo6Ibvqjb4-A5z;+h2urk?!1?$b@cqo)b!DI@O-9Y;;069aNo#DyN0{R$zdi&>+ zwj{PgJ5r0LZv(F=pt{U-WDuP*3{09^Ef40DTN5<;-klMj#v;&{c&@f~g`dFLf{GSC z0TUNg^ORCz-myCsC~FDop +HvEj^e!bs6q17CbF _NPUijAc)caDUWLWRyL97OX+;hRhTTeQNUe{ib)=%^?y8rJO#`DGa{yl!1$ z*NvJXL4YH~`p)uITL_wXTs(1*HlVK>9hVwS5%wO(0g|xxIR0b|TdV0qRTou#<8E qptDjuvn$CHdh)2R#tFhw0 z3{9yTDO`hxiy=h?-xch>0wVlkp)q!kdwyESRqP16^XMlb4hh}QL&eX#pG%!CDF5$^ zvdb&B+r1mAZRH+)44W#_(TyHcNr~@dmen5gp2tG`H}cjyd-=nWO?fHO8R0Q#)4^ET zFGPM(f7eMmDTB+C1AH_snPYe&wWa5QkVzGC@L}!EzSN3B|K1RH!2d;{9aP&{KhP*= z1J5cNuCBOD|C7rCabo>u5|g|BGp4kC5+d-Vz)OLzuZ{O8-2qHDhP~lHmX7&02hN)c zG%H)V*+i_bLcmT2GJ`ApS;zEKXladbPwVV%Aaxm2gOirGte&9^>bk|#=7;$jtG%a> zoS@(*M9;%U)}%fi*nX49FUnru=2#%y7Qu%K!y^|uOE3Pco={mj`1pWb1kA?m{yym3 z49!DoApdLomiD~jOkzAROS~H?z{c#G;y~w4w=P=&nmulUIr(Hl3YX0iyt(xdmq$Js zmvo=_9>qVLSK8}n?O~!uVV9y6O=y-^-}6wLGOB|nxs)Xgkl{{yRZIp5wHWq{m?IHA zox_7(GP=&Tv}3+~<_6ik5B ZM!8&)QV@HY-D8%bhqHo47Wbkh=ggL&?!1UJnzi0UdGtM&IFwg{!u{_ zXS=M?m=&*mv5eFTKwc}or1(_FMDsovN>tbvF8Xb!_nwST53*r}ruscH)cfBLtdYQ& z{__s3HW_91aP Hb~+cz#zop|MZ{lwV}4T@&&QbePM) z4~Cy&L7PHyp$n<<;fht kb(K*!EE7xyLat7)(+#+5f`M39c! zqfT4!GGS_upU@n|fV7m&is~3x3OrHCDe~>tnRI67hAqT+LXY9n1#8E-RPM?99Y-A< zG(Ll* }8{d8XuXkwQORW0=B97IO zJdgYjNU)E$Qf^<|cyn)meRL_=PU&stOMX^;Ej-p?B9t6zmHrg^?RTEkjo>+X-WC)w z8lW>|GBXnOmyscNU#Gd18e5r3WZzO!f_kL4Xbv*5Jd>GTQnMY2e1a@VWZhJD2@dhG z)D~%G9QAQe2K;z!_swicAfBQb_uUI9@LLkrUmQ1bSbxMpBtk5Ey7TqnCqM$x(Ys6K zH_zT-#3WqGU}@l%KA^#z6gZDqzcW08sDQ&XjT9Ym$Tf~hYI|l{T(lhw?>f4(1*FxE zBziR5W~a>M%`xUJc=P0_e0~AlL4#lh|I&Z+fvJHWRm&MLfCKXtW`cN~u8i{eGSUaO z09Khi!p3JemLEn=t_+9LA_>cRDuU2Rc?)~+Rr{l2LlT@Qv#cBxGh3Ns6KDdYAw*Y9 zIa|Oa_{0**wma$K;xKORSNBCNYL@&}g-Ve_Ct;~X6*KrxnEk2+4& B>*ke_(cdr^^lr8vE?u!1%4HYNtNh#e z#t0 Y kGU* kaV|$rxb*KfE>_)N8v+JPDJveAez=Ne=$UC7eIA%gC7NQu;A#_ zkZ^AS0|D4`MpWytulri-y_pa3c@{CAIn3k1j0*kxguwo62g{MH@h)RV2(pIrc)y;o zUGT!mi%axH|5r&g#anjWwjmu7;8NzcWW^Hg0{Wmyf}+vgb}N#$D>D@w6ekiR*&(r+ z)`$}`x6vC-rl(pF>85pt9GoLj(q#7sg5YfkB_z=IU(bD&T9fc =@(&NHt`UErb3>Z;c?OT)Y_O<(xh3hq=dbKU z=I*Ng7VIZ6KPbJ2qbGpN5{O#9o2xVZLye1QVE_KP Oya>@*^jL;a2e$L=PMhG4kw`$ap@(%im&m~Tk| z=f~43kA@x)40?T=e?^G0!$aKL=@jkVwWw}z1C}yu)Fsim_`N;0yRVQVVm%}+VFBdB z7AjGwl~DPZvPJZDmloO#=jMsb3D2MmXWQi`7N-7r2$xmD2!I)?@n^{UQs5TRqi~l1 z>Bt0Xi)&C_OrvQ?wGW`AR8Jt{8Bg0uurnkDV`@9d)V{eqN(yV&m&Oum?R*r*nMgwV z5Cgpr9f8x^o %uP(myUQ!9K1&p3mXMiMgV zC3&*d*H->l|Fr;XZr fA>S8hw81po3=2` z{#PP1L3O=Fpm{kAt$|7&(a>Vx$gsje%}OqR^IF0=Bn~8_vCCsJ*@sL|S?c!i z-o#m){mZT*V@?>&;6v6f08>D$zZ~&U hrgvWXa4b~AnVC%mIn4^`3ExdT(nA+_E3R1C$;P}c^ZtyL7iH5$*# zSbP2c#ONlIlnMh<|CSL~r@fb-vcPLY`WCa*#VDCBc{M-eH{hmA3_mNGkP48`?VsNf zE Miw}S6Y4*tISqKXTTnRsjB^#P#A8PNIE}d-|Q<}X|hGB zue#;0mSUOW8Sb~POF!_wJ7f$&Rq%DuPss{%umo`L@63d3DpR5Oki-LH@iy+|n*pYd zU #>i}>*C7lv70u~`llo1AojlPXnocYS%Rv2KZFucm)fp|f@1mcfo7FIvyy zg1=M1Zn@m`LEELFf1y_UdEg!+3ouoJtrIAcBJqik`iifAe2T7INi^U&B^AoUuiX(6 zVX4R*(JY>{3^`?I`oR?v?*2J|%VP@uF(uoFvi`64Lfg_9DS{;KOhhquw+mcSVmENk zv;nCEBq{E-w^{z@{u%#>9Qi>i5< yw$RpNl&B|d7D`7qjhE-F$KlmxNHQ1AZq z2gz;v5J(42l{3KW&4;R9$`K6x{$8pM=K7{&BG=dZb66%&^TZ1p%+!BhqJ-iolpvUI zT!s%|Go=M`a)1B;0{{R60009300RI38bJ`%?!kYq#U#NGT_~8n4Rzw|@3!Y${JMiB zWBe^fY_#3n0a+jR-7wf+;wLoY1{?fu_15b{@7>+Pi5l>(=?rIbnd#Dz>h_ph(?$o; zzQ^~N4qJYfg?%NQqtf?U$0O1xAjhp08W!1iWI&2wElyEip7BR}SRqCa8bm%!F 1Pu$|s$@l`8^!UsTl9Ax|AtOt zTN+H^Ou>e(`qt~FbQMWQo;{SH2o5}lT919T5w$W2p?SrhW ^uX$|Vpi(!0V^n>N<0lGBD<#J%wz#m3(4>8y0osM-iWpij>lo*<70bZ7 z-;yJu_^E4K<=9bE!5OtmeXY 9V@%#|}POdh>NVjr+?{uo4t? zevNG4i;)k}m_)JhJfa@=))~9O&;5wkLv}+HSEIo_gk_-!S1l$VqkK>Cjq8td7G$j? zcqXe0qJqW#>31N^qs_z{1%RV>CqASkLZuh?3|1$%Uv!pPaU+G;5TKP#jI}4GZjlk( z`kh4(V60b3@Dc+-I62ujYk*kcRJR?j+mYerKg)*C#}phh0Mz1m`qWFM5+q?rfZ@gt zh+&@q_u_g7Hi8IEzuEJu)HE#qp+&?o>eTJaiqHQGwJ#&pFwgcAPpGQ!`1BF+n6hDV zOwX_?>8gRH01lo?%u0gG8En `X?9wW5aZ#3R3ZHhYdKOXj^&ZBn+y+J>H4YP<9EP^$UjCZ{5x(bR5k@#o8(z zm_H?~4{I5|3`lmNHkcjPRkS$nnU@bu0=D6IW#4?i`yjCuSDvPWc#us%0j&4`nbXhB zd(&ldf|7)KrS} g)jq~rl$f?@Y6!-SE2NKEi(^o z4I(U0rJA|a^ap?&6OaR7F8 e0-K}51ieu1v zomUPhLi<@#{W_N{B`Hq(4%e;kTfH~@XXE>7rmiv$*e7iwKnk8FEI<-YuwxGTtGIAt znj1T9cBEspQg2o^`?(cFgzma8>aaYSWZ)zJn{l-3Q~%p{RgLUWj+~--GYUj@zPbIw z#kjg6i_~;3u_&?H5RDhwpa^%#{l>pu)qGv|D4h4#_l*KdawF
u zYI_+-dEae`P#exkG?7Mj3o-WbeVQg_BopN##_RPUozre)fL&rgotiItaogHL(=3Hz zSbm@1+#zFUkC{h>`^CrzC*$8BW(~}+pJ1obSUZtZg|s(9z;k-@qWk??De^k@2{0=a z>`Ij{5cQ4VK#7~4$yU?w5s1Vai(uFg7hbQqi+vlhzW8u1vgkfTef4aJaF~gwq}~Eb zaUy?tqTLj-_*rRN; 226EKeu%@_6<;%Z`5;E poyWvVjCun6(pvFIjPhHDU46j2W8a^ktwMZ zII$wJhQ7a#m!hjhI4*8*=`+DLMmi-s6q{KSjk`WhB&DlREl%Mh65(?TLzBj!52wS( zaYZl*o)6#miu|%_HTsr`1aYO6IGZtZC($}%0xa5%={V?-z#Pld!Ays}xhAilgWQfB zfI6Pp_;b?zjq>Kn4!k`+X5J{Q0Qf|<6^`Znu?d~{?EYK-($?&~Z$|o_F~|B)@S;S1 z@pe};l`4(P$Kh~#S?(t`fGi(sZ;8Y~`Ly42#lRjt*WkLm=7NQyoRTH6Cz<8fTvfaq zxge;D_8t0{xW_ 1 zn!wM`RAHQV8VYRf>B`NZ+Q-Mey!o9EnUB`vko>a_*bZ&@pf&D)?@y}l^ r?9aTGry4ysGXh5EgmG=0VV|v*#l-O z1 ubPRF|_D`K!;NvrV{)Zgq7TN~jF`+z5_EBO4PtJIjjo+Q9 zXMzdUwh*y^AOQKan}e5BB1uzl2vgh8Ec{XiFNoO8<8=i^3g0mGDrfZupkg7i{hC0I zQLbr&nW*L>rGITZwuA{f><)9i^CQQ5?2QJ2eA3*V %X zT7h#lMp)dU7rxZqh!lko2&52Wd397+l6XjBS MWG-_|6hK2xok4dJ+7wcgd4%HC%6Mv`rLfT~JT{XoRUS zW5iiHHhG5Z$|apN-H|jceldet6|4}!p}F+ipv6#}L==N~P1f_#8v)NuG}vu#htSN` ze+iDM)=X=V+Jw;epPG>{AC>uBq`U$YfnH*;Ece`T6@h;RyQa*Oc9vSkKa))b%3OuU zC*OGkN6GY`jBWX?g5txk!ew-U5V2qxoIj-JV2*P$MiqPu8gMEScBx3Li;UnRlc%e% zN5tt; XUjpO;(2qMz0;Q)>0%Rn2Un2-7Y zDhd7b$_}-+8ro|kY(m@^M|MwlA%8Nh)B)y-WM6M%3M`}L0|S4dhOT8nrij)G9B*k* z&il~7v^he*3xuD@K6K*1iqaOED_Igatn@wm5fbjR1FoA`k2=oLsh_Z=x@)h3a%coi z`7&yXsm^|AaVLW_vx5S82@8{$i?qC^oX7DeBF@}_>rEo&u(TkTRn1$#pVw13L>w_g zgUv>Y?$nfR-H|r$o)8}d{JTfCyld5B*&_usW#)39O zI~ZTg6VT7e|Nf#XX{H8Fxee jjzy~nk&UV`P`$;F;P zsk*D!jnO ZWaxLvP-4$tXwruHrIS26;Hv*zzbx$#zZMyIAOKt vdu+`bC^nHm+$=0cmzeV&bND~#|L)HRh z6UZQ1Fi=nNYEkE<=;!Oa%(!tICmu$_!N?aadRFBBX¬W!_=TGlDf}bA%^f+Lv1q z7$|4KCX{spFhGrHJ3w_$hyTB=Gd f+{$>{2$r?j+SSQf=ixXeU<*fq9b1o zhs|Yuq~p?i#X!IKnHfv93!!SW;dQ5o&??QQYiFUn?m^~hD%)H9+InL3Moybf%okDu zBsEDcfQXvm=sn<_?>Q2ZbG;GYwS!33duVKTKF9{9aL4#sS0==>_9lhldF(hfi}t!v z6Bqi_ya|8m`DT{PuAO>&;zZDaY!V?^2pJWB&Y4IdIN5V)%K7vfo+$}E!Ei_O `do-560-p*L;xc!v7>tk1+hj3I`*c}0xA%AL{x!`{Pyxe@@ zyQ(#vJNiW=yzs1Vm%!bS4Z_qjsRz%Sy0fp_ ZQZVV3L?Wy97mfuyb|GZoaCQOA>TclsRvf zW5})Nqlo0j#GAlc8CHRZHB+o}UTZvpeCm^GN;3gREwKP9L?ZHlADbr*)6ya_9kl8D z@6YmIM8VkPTFPnYX{v4NzaC;Ec?gLLyAF0;jFvZ!v{0Jhd`*RUJm?{xBbNd%t&uK_ z1 TI$F&`IId)l^PI(!qHqu zQ}_i(%cbh||I+^?zU_5J<-02cCR%Cprpb(D#_O8g%m@ZgtLAV3Pa3Ft^JlDk2`xkj z=tyB}x>7FYIfa9t(F6?>*^i~y2KSRmXa>}Vko@2tpSO1cmxO8pD&$eLqN8-AJOnw2 zc%uT#Lb?Pyjdd{mrL^2mu2QoK#B{V-j*d =s0qAY-b>Z(^PmUzqK|qRkt|0)DrB-tOKyWoT4GK@x&ct2wC&Nu-Y~ zg(3;wO3qb^9FZUryKn%z<-^07lGm^}r|RZ>IUVBjZpzPjIB0svtHrIl`VarU+XtEp z=l3=uk_wi8d|cqFGuN@-RW2;iJD9rO*Y92g79?@by3q8bQ`=pi^Tue#d9p^#a8D1e zMsPZlYovuAW>zEU?rJbd`RVVH#1{Qrfi1HPi4IawlwbYR(JTFoDGEFN>s62Fs9UgF zrWO;AomhV4wvjNd=-x)4^%}C#sV^dAh|bs)oE8#?@u$YNc)I8d297EAq#*2CkX$E= z@A`kNSz7TRe6mj_>UlX+Z4qNSWu^Plg|BK_HoccM#WpX?f<`?OKcKztID2&q+yMdy zoEb&Mwy+2|iXRsMC%D1nTn jg4x!}j!*fP4!;Bk|COoSQ&T70F?GfLk=t z=i5L5S6hDGl0C(-W1i`rRZLe`B4%%7x;UKM5wL3D<=x=DJ?0ahjp4dV&H_zg5jfJF zqZPpwnY-b1#_wgo8Q8F|!bwdO_uj`%sI}1s0d^Qa%%>-jLwTV%jKGMoT*x{^BWP`S zLYFmu$=fuye&iQYpu}iaZ{HGvw;_=im%EkIn5RuhUNm+xe>~89m}S;op5Lv`DT0lt z`Tx$hct!PdzUy67Ek?fMMi;eu0)u8-@!*|X5(1|e{Ez?@ y(6h~}SHlz`B==v*Zb{Ls%qCqXb$5!lY6bmQ&nx)z;LO>b5 zzQ%9BEJEb*gSG5vi~qg5wKemn16GeP=l2q)AeqTCOi+)yJOBT6FY(bqBtst}L@~f9 z&20PO^8>T=AoAJ`n;SzKc@ilLcqJAZ(?*`_A>Ge40xVyi5TLI@SgrlQiT-z5y@|by zYl+y+{Oq`P`Kft^7Mi5n8lcc}sc@YxafILRq{EXV)8}O lak)ufOHwWnPSFh(xn~SS)J2xYkl)R!AFY~S$5;HtLfANnFTJ< ziA+mfl-sd4^Ld(@Ad}+JF9bM+##GV4@3s!5y*=2|EC*^s@n9NQkz%MyKFFV~QYfz8 zG -c2fEVhDfzWrW!R&bRH^!%%gV)=QMA zCn)?SN>|5RH|N;HhOb_Yp$~4rkGM+GAJM}MpjG1(oFTb7L=Jun|Lrv2f OAd`*=8k=a_Ou=PE?_E*Q`+=8a6 zhsp4v^Wmglpf0Wy@F;o(Y2A?5H}Yy;_%MA_ZLf <2ohGd^@p{0RBBfDrAJoxwb`lR1a6smpSY!vHaU2>UTAK*``hjbn9>XcWE>H z kMbO$#?u*rk|Zb)4a@ zpR~UG^0{VN2S^ku&q!q6zAg$dccOknh?)95{}sO2!sUA|O&f4nf^kzzx7Pe_nFa}Y z@(2w7AOSO=axDwm2vv&k42DbqZTL=t96sq-?ODEu!76$v*DR9Fo=^4nu-d^+@$kzg zh4O6b_a{Z+N3l=Cn*Un`g6t3yDX=q0>a l{S6+V&ZH>T{DXAn(7gs$iLjGD3H-P{dy9Hc5b5Vj&Bqtsou&GV- zmZ)xKDfFtIV(Capf)$cQo{BP;NGAg6RN*RkdFPFD?F4%v)rgbdlY h?4h)p@(<#h9eR|;*bSHdko$6Sn~gvbGvlV{$!U-f%xoSA)x+8u}lBtc6V zIvyD16CGe=st{@yqy{M(i8U=EhWu2`(ZZ~#0FP;{5Pk4_rAa224NG@?FK{_W%$B?N zpTm&V7iXFMJs~3$@!0#5mq q^mjVo;7VME>PL18uhcB#OZYFl8;k)*JqTyp#=SG zr~trjcaSQ;d30{?B1Za~@`9aS<;fX}fQ)9USzkit$e8<4!+vLGDcl3!hpv +eY>re3fh|tw*CfJ%>_+#}RBK;#d=5$Wy z;&eed{v4of;TmPo!V2^*Uxx2e_Tk;ovW1KQ5vizDVGPpF|MOiDG;q6n>R-LbA>#es zVSB!avdPP%BXQ;23x%V0_}r 5x_; I*2!+W;#o7VwqUu%Pb=u!jNG z-|m{0YH4ReAOHlRxZ{!iZsmy}1+tB9NPd=*KmYXgNd5o+`mq@2FPKlh_KCSaDvs0q za^^0SM%4o!{%@==uKM)&H`roaK!Ansgl$Dc5#9d!kL<#p_J>|W8_w#v)+(Kz)Dg 8G-6Tz~)no0FOJhL8r}xIY1FeaN9-J%b94<}l}2*=PnWOO7e!5oQIE>fYAJDj*k{ z*511O$)NX|Il04{9!}rR6bIkbjoSf9Y37}1Nw%4!`4;VG<~@$kkoTs>*2nphK}qWn za+9IMp6*kgtuEtWxsyHAMQ#jTd|4w-CL_%@p(8CG_Hs4|*(AuxC A_%Jw6 4l5E~b2{ei{%|?i=t&;pU6OTx_c-^6j+Ku0W!7@kWxeX*=3vz~u<_WYc=c~b z#}-8^#m0nyYBrhOO4dSWJ-Q8(a!zPg#ZD`6v75e;@^`_uPLb6)d_1NZ#}tbSoHP}4 z2eQtsl!+tdS+xt1Nz3vJ(;~E85*r {9{@_Wb91xUP;UCVB)%Cs zv5)d$$~@E%gv^cbmKwvYzC^%Rz(`*?9Q?$IzzlnkzXCT}B3Sr0Zli;lHKkMRT*-%S z^C2XqGivEy!HG#>ZjzcC8{bo9+GZak+nrH8c^f2F86hYiG>wL1B0N6}N?Z6w=!ucj z%Fz#K4fLjYr6M9WNCJT+RJ8lfaQf>u? Ph z^dnBs+`ms^2UG^t-Wn-?TpM4U5Xc?<>C7bGM3F@aMiEEYjZLWVQMXG&%Dy6F^7}RJ zO)em*1voSKC<1bj%%cA&RP2NE8VpDrE$sT?r~^e0f@GecW+3Hvu7l|`Ce53hp73YM zN!NhztQC|<)oPS;lhh05a8?J5X%tKRjGC82@;6qh1+eoHJLM*%DAL@6oSK1$p4F64 zz(5)_m)L4TN`aB*_-?{-3=<~>zZ&`r9c?8W5x*{UT55CkBv;@HhER?5Q7F=JJdSbt z(QPGWp`S?^_i*bwd8-bsT%ag7*q|LTmNr<*6;QWBSc)Cp7Cio4P4RLu5&uwLck z-&azX>nQ`P$223hmWV|5j#DN?ICpOELpty#oX3=6(CO 3?LaXfegD=-*{ 1fWR1qy}4ZI7S!!JJIHi$rO?D7qb{ z2LxRWRh4Dh6|&e-p%|m=-HA)*I$##CEdfqZi*BiH9pKO+=HU(G`?JdCUrl9_Ng&Gx ztros9cxyxPMM5U*&G wsw`!Ctf~~Z~>NSeDu^l z(th0di^1mB5=sIo8<|AYKe~Y-ng@t%Dvd-g4?c4PvwBT2ogn}LYrkPf)RBr6@b;%k z>TL+XiZ%JuvKg%4aK6uD>GK&Fus*@1!Fi!B&nYLqm^QHzO$>M3Hxo>^ kFmrxd!ahAfTMI0Ih2j{T@`KytR$ |(>q4454ps gOpa-M5!(V9&)~G5g ztUk wlsXyl_zq8o>59raYW0VAtrdE8u?ARv1L4%F; b}Pz?B?n4*f5hPTl?+cBxkxLf(O z_MFiXOE|2oA8T#!=*jORMOT^EIy(9%Hs*3SrTJ1cMb*y^u8eiPF5Ie19DQwjH?-{1 zsN=;I&DKY03Fh|7vrePW=|0r}HxJ}@`W>>5ihXvNcg`~^{p%E0)w=)W I)fX zPN9gu87eo_sg~l{C9LUSLMz-DM`HE15f+g$C8w?XZ-cYBf+W#`!Vs<&TYh?6U(f1` z{-hHB=W1O)78G{eck|tw1@;(nYYq#eD;M5z)qKThtpsvp#^UZHIEMvPdpdGl-j7SJ z0~#pbO!bxeX+7}uJLwpC1b(G393uWwYs09N{3>=(!-#uzBifHmNzHV`Ju9bFcVotM zb 2Qv_i*)kU`=m}39N}TKZ9!K)8 zU$m>Ffn?Uk7T*-VqxT}neM9WL-TDa~t%c-~fZ%~F@ixGJ|KX4R>rSa!ZMeltO-$>9 z!8!Jot<=V5YKq*61H!77^9HnF(1E6H4?aS#!}ZI%w=_naYehejqeez;r2cvYz;6y( z@o85UPQpv(A7jpHPt=M0mo+ceT;J)pbGtw+eOB%Z;ch}+q1<)4^SCQ#@r=Oud n%6x(LQ@<{o`b==x#6@WGO;HddO%I2X7}$(ELL`aymQYamm644mpyfmkN?k~?PK+?-)I_e-$h=8dphH%*niIb)^oG? $f>sxjcBQ)!)=EPCZt_dbIjpE!$Jc-TT&}5vO)Ebgl _BwXNFo6(rZEnS09kv=a z)nk6p`Z7{A-945Eg J}u2}y?uLT-+K2M5w(iu%P6os|q)&E(&g}jfpp|#D#*5deB zUwj1a@Ip{!IW6U=cOC$s543S%2sV(NtA5HmujL;YxREF__z>oGvM7O&B5rl-X~=D0 z|Bt!%l4~Ggk1Tr~=C{=rpzPd!S9F`Vy!9N)47c^(e-`McgaCWaZ<{u<9Q5Au=G*Ri z*M}nJhFpy9Bs-$BW0f=2R7+UQc^@aCZY_m&637HLs|X|#!t}zQd}_db&bw`oJ#dUE z>U<3}6qn)QCTI24!`8%3yoEZ``y#?~ KZnV(RKTS{X7=!O#*Z_8 z-<(f-)YZ>hkkJzp^ESG;Fw#kc3teTr#D<~<-cafh@XOY2A8BjaJ6}z>YuFJtNlR%& zfbZ=>4WO{mijT_(+#52+(E#!P8+N&o5vzAo?H?f^IRNcVctB^Zsa-x;6^=qktz`f0 z z`lc24CBg#>?H&72~#;t97rcNfY&8&JG^NHxy zq_qo|ffCFoTaw2 l5>>hIHY;sBW+D_Qau4B?i8YES@q)-`D# z6X$H+fSiq72*e>#TVH6}Dr`1hWZv+Wp0b}dl(ctvrxll4q!vqK%)DTklK%Yf-?IQ3 zs-Rgy7T);M&HTy6?zza!Iy3F`NfMjB>=TH?N7#QQ_odT!P+rb0zu+45sY4vTl`@`7 z#|d~;a;y^?!X*?uU9$A&jeinZCK>@7hpn{dWjGl-SnU;8lt1NT_!aeIWpPkwG#U)7 zdsXi<{Ho~&fbv)sh8<>l&>_P-12GAM!-i&`<>Ae#haV$_XZ6br_xUMZ kj&`F`16? z>=ki>lM^`r>yKC=yo7=r!rLmd{(*&XLVt5S5Wi~~p8YqFw-kVJ`Vz4@g`M?&uy*## zW)h@Kq3Ebvbj((P-N1DEJ8;qAugg|x2`q9&JQv=pPO!F#xmb$(M~Dyak9_KjMDN?^ zzzljnQ$D3?|GlvOdFett)(9hYrbZvmqgKK>DUBpZXSPNqC7;CbUR^XZ3h|J-_M#e^ zp&P(^Q<^x8kwXPK9-BWD&+O^})*-L{zaBOENO!P9%H0U|GxEC8HSvj5OKNKSJs4W` zx3JOCu|#vxf-fQ?0NmkI^K?EJQ;tBM%;ri*=gT$Lt}2${6cb)nHS&{xwo0YP&-LLY z{(|NF!gr`aTmXC{`o21`jwYeCKg5w$H+)xsJ^5NXM1Wz;sF`G_QNGL%EwNTeZ94(3 z@}vpK{YVlr*&4r2RY@n)2xr0A9JirNI-e`ObIYd#^N15!Fml_BQ914H`?Av|f=e6f z5}HZdOaD@1 L2YM&Fjwjc(74ok*Z;aU+u$n*k|qDD~=aFG^P>l>ERo(k01lgCN50bJpbwo}{I9 z={%|Is&n}(X`8aIwTYVHZ&78xH>eW?;I*kd)UqIAKNt_Tv^%cRxfKY~xepDwNB&;0 zM)}SEJ*Nx~1aF`5jU_VAlyoHKbDvi*_p6%LO^Y2)_dCBgX8-^H#Ljp+)>E5+c;IY1 z|B1-Wk`{9OJaWOzthxp`B`t$#6QF0lzyJneB8OL1!?bF7v;3#VN&}C9%o`afBp!{^ zO