From fe567a6af1de29eaa07d4197dfceb44c10314521 Mon Sep 17 00:00:00 2001 From: Valerio <88933932+0xMassi@users.noreply.github.com> Date: Tue, 19 May 2026 19:05:16 +0200 Subject: [PATCH 01/18] feat(core): endpoints module for API surface extraction from HTML and JS (#47) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(core): endpoints module — extract API surface from HTML + JS bundles * fix(docker): source CA bundle from distroless instead of apt (fixes arm64 release build) * fix(test): serialize env-mutating CloudClient tests to stop flaky CI * feat(core): filter endpoint-extractor noise (invalid hosts, schema domains, bare paths) --- Dockerfile | 6 +- Dockerfile.ci | 7 +- crates/webclaw-core/src/endpoints.rs | 515 +++++++++++++++++++++++++++ crates/webclaw-core/src/lib.rs | 1 + crates/webclaw-fetch/src/cloud.rs | 18 +- 5 files changed, 536 insertions(+), 11 deletions(-) create mode 100644 crates/webclaw-core/src/endpoints.rs diff --git a/Dockerfile b/Dockerfile index 552aea7..fefb39b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -59,9 +59,9 @@ RUN touch crates/*/src/*.rs \ # --------------------------------------------------------------------------- FROM ubuntu:24.04 -RUN apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates \ - && rm -rf /var/lib/apt/lists/* +# CA bundle from distroless (ships it, multi-arch, gcr.io) instead of +# apt-installing from ports.ubuntu.com (unreachable for arm64 on CI runners). +COPY --from=gcr.io/distroless/static-debian12 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt # Copy all three binaries COPY --from=builder /build/target/release/webclaw /usr/local/bin/webclaw diff --git a/Dockerfile.ci b/Dockerfile.ci index ccd8a33..7b62718 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -5,9 +5,10 @@ ARG BINARY_DIR=binaries FROM ubuntu:24.04 -RUN apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates \ - && rm -rf /var/lib/apt/lists/* +# CA bundle copied from a reliable multi-arch image instead of apt-installing +# from ports.ubuntu.com — Canonical's arm64 ports mirror is unreachable from +# CI runners and breaks the multi-arch release build. No build-time network. +COPY --from=gcr.io/distroless/static-debian12 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt ARG BINARY_DIR COPY ${BINARY_DIR}/webclaw /usr/local/bin/webclaw diff --git a/crates/webclaw-core/src/endpoints.rs b/crates/webclaw-core/src/endpoints.rs new file mode 100644 index 0000000..21c5280 --- /dev/null +++ b/crates/webclaw-core/src/endpoints.rs @@ -0,0 +1,515 @@ +//! API/endpoint surface discovery from HTML + JS bundle text. +//! +//! Pure and zero-network: callers fetch the page and its ` + + + + "#; + let srcs = script_srcs(html, "https://www.ticketmaster.co.uk/"); + assert!(srcs.contains( + &"https://www.ticketmaster.co.uk/_next/static/chunks/main-abc.js".to_string() + )); + assert!(srcs.contains(&"https://cdn.example.net/lib.js".to_string())); + assert_eq!(srcs.len(), 2, "inline + data: ignored"); + } + + #[test] + fn extracts_inline_and_bundle_endpoints_with_classification() { + let html = r#" + + + "#; + let bundles = vec![( + "https://www.ticketmaster.co.uk/app.js".to_string(), + r#" + const GQL = "https://pubapi.ticketmaster.co.uk/graphql"; + axios.post("https://services.ticketmaster.co.uk/discovery/v2/events"); + new WebSocket("wss://live.ticketmaster.co.uk/socket"); + const ga = "https://www.googletagservices.com/tag/js/gpt.js"; + const img = "https://cdn.tmol.co/hero.png"; + "# + .to_string(), + )]; + let r = extract_endpoints(html, "https://www.ticketmaster.co.uk/", &bundles); + let vals: Vec<&str> = r.endpoints.iter().map(|e| e.value.as_str()).collect(); + + assert!(vals.contains(&"/api/search/events")); + assert!(vals.contains(&"/api/search/search-suggest")); + assert!(vals.contains(&"/api/venue/info")); + assert!(vals.contains(&"https://pubapi.ticketmaster.co.uk/graphql")); + assert!(vals.contains(&"https://services.ticketmaster.co.uk/discovery/v2/events")); + assert!(vals.contains(&"wss://live.ticketmaster.co.uk/socket")); + // static .js asset is not an endpoint, but its host is recorded + assert!(!vals.contains(&"https://www.googletagservices.com/tag/js/gpt.js")); + assert!(r.hosts.iter().any(|h| h == "www.googletagservices.com")); + + let gql = r + .endpoints + .iter() + .find(|e| e.value.contains("graphql")) + .unwrap(); + assert_eq!(gql.kind, EndpointKind::GraphQl); + assert!( + gql.first_party, + "pubapi.ticketmaster.co.uk is first-party to .co.uk" + ); + + let third = r + .endpoints + .iter() + .find(|e| e.value.starts_with("/api/venue")); + assert!(third.unwrap().first_party, "relative path is same-origin"); + assert_eq!(r.bundles_scanned, 1); + } + + #[test] + fn third_party_absolute_is_flagged_not_first_party() { + let bundles = vec![( + "b".to_string(), + r#"x="https://api.stripe.com/v1/charges""#.to_string(), + )]; + let r = extract_endpoints("", "https://www.ticketmaster.co.uk/", &bundles); + let e = r + .endpoints + .iter() + .find(|e| e.value.contains("stripe")) + .unwrap(); + assert!(!e.first_party); + } + + #[test] + fn caps_bound_pathological_input() { + // A huge blob of fake endpoints must not exceed MAX_ENDPOINTS and + // must return promptly (regex crate is linear-time). + let mut big = String::new(); + for i in 0..50_000 { + big.push_str(&format!("\"/api/v1/item/{i}\" ")); + } + let bundles = vec![("big".to_string(), big)]; + let r = extract_endpoints("", "https://x.com/", &bundles); + assert!(r.endpoints.len() <= MAX_ENDPOINTS); + assert!(r.truncated); + } + + #[test] + fn empty_inputs_are_safe() { + let r = extract_endpoints("", "not a url", &[]); + assert!(r.endpoints.is_empty()); + assert_eq!(r.bundles_scanned, 0); + assert!(!r.truncated); + } + + #[test] + fn v1_1_noise_is_filtered() { + let bundles = vec![( + "b.js".to_string(), + r#" + "/api/search/events"; + "/api"; "/api/"; + "http://f"; "http://n/x"; + "https://schema.org/Thing"; + "http://json-schema.org/draft-07/schema"; + "https://www.ticketmaster.co.uk/"; + "https://pubapi.ticketmaster.co.uk/discovery/v2/events"; + "wss://live.ticketmaster.co.uk/socket"; + "# + .to_string(), + )]; + let r = extract_endpoints("", "https://www.ticketmaster.co.uk/", &bundles); + let vals: std::collections::BTreeSet<&str> = + r.endpoints.iter().map(|e| e.value.as_str()).collect(); + assert!(vals.contains("/api/search/events")); + assert!(vals.contains("https://pubapi.ticketmaster.co.uk/discovery/v2/events")); + assert!(vals.contains("wss://live.ticketmaster.co.uk/socket")); + for junk in [ + "/api", + "/api/", + "http://f", + "http://n/x", + "https://schema.org/Thing", + "http://json-schema.org/draft-07/schema", + "https://www.ticketmaster.co.uk/", + ] { + assert!(!vals.contains(junk), "noise leaked: {junk}"); + } + assert!( + !r.hosts + .iter() + .any(|h| h == "f" || h == "n" || h == "schema.org") + ); + assert!(r.hosts.iter().any(|h| h == "pubapi.ticketmaster.co.uk")); + } +} diff --git a/crates/webclaw-core/src/lib.rs b/crates/webclaw-core/src/lib.rs index a3e0725..1ddd1f0 100644 --- a/crates/webclaw-core/src/lib.rs +++ b/crates/webclaw-core/src/lib.rs @@ -7,6 +7,7 @@ pub(crate) mod data_island; /// Zero network dependencies — WASM-compatible by design. pub mod diff; pub mod domain; +pub mod endpoints; pub mod error; pub mod extractor; #[cfg(all(feature = "quickjs", not(target_arch = "wasm32")))] diff --git a/crates/webclaw-fetch/src/cloud.rs b/crates/webclaw-fetch/src/cloud.rs index 3bad383..7d4978e 100644 --- a/crates/webclaw-fetch/src/cloud.rs +++ b/crates/webclaw-fetch/src/cloud.rs @@ -810,13 +810,18 @@ mod tests { // --- CloudClient construction ------------------------------------------ + // `WEBCLAW_API_KEY` is process-global; cargo runs tests in parallel + // threads. Without serialization, a test that sets the var can race a + // test asserting it is absent. This lock makes the env-mutating + // CloudClient tests mutually exclusive (poison-tolerant: a panicking + // test must not wedge the others). + static ENV_LOCK: std::sync::Mutex<()> = std::sync::Mutex::new(()); + #[test] fn cloud_client_explicit_key_wins_over_env() { - // SAFETY: this test mutates process env. Serial tests only. - // Set env to something, pass an explicit key, explicit should win. - // (We don't actually *call* the API, just check the struct stored - // the right key.) - // rustc std::env::set_var is unsafe in newer toolchains. + let _guard = ENV_LOCK.lock().unwrap_or_else(|e| e.into_inner()); + // SAFETY: env mutation is serialized by ENV_LOCK; set_var/remove_var + // are unsafe on the 2024 toolchain. Explicit key must beat the env. unsafe { std::env::set_var("WEBCLAW_API_KEY", "from-env"); } @@ -829,6 +834,9 @@ mod tests { #[test] fn cloud_client_none_when_empty() { + let _guard = ENV_LOCK.lock().unwrap_or_else(|e| e.into_inner()); + // SAFETY: env mutation serialized by ENV_LOCK. Clearing the var + // (incl. any ambient runner value) is what makes this deterministic. unsafe { std::env::remove_var("WEBCLAW_API_KEY"); } From 51260ae4e3be9ea572c1efc9ffc07f2296adb0ee Mon Sep 17 00:00:00 2001 From: Valerio Date: Thu, 21 May 2026 12:58:47 +0200 Subject: [PATCH 02/18] chore(release): record v0.6.4 version bump and changelog The v0.6.4 tag shipped the API surface discovery module but the release commit left the workspace version at 0.6.3 with no matching changelog entry. Bump [workspace.package] to 0.6.4 and add the [0.6.4] CHANGELOG section so the code matches the tag. --- CHANGELOG.md | 7 +++++++ Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4400ff1..c489ac8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to webclaw are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/). +## [0.6.4] — 2026-05-19 + +### Added +- API surface discovery: a new module extracts the API endpoints embedded in a page's inline scripts and linked JavaScript bundles. It surfaces relative REST paths, absolute URLs, GraphQL operations, and WebSocket endpoints that a sitemap alone cannot reveal. A built-in noise filter drops schema.org and json-schema.org references, bare framework paths, and other non-API matches so the result stays focused on the real surface. + +--- + ## [0.6.3] — 2026-05-19 ### Fixed diff --git a/Cargo.lock b/Cargo.lock index 04c093c..125e3e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3219,7 +3219,7 @@ dependencies = [ [[package]] name = "webclaw-cli" -version = "0.6.3" +version = "0.6.4" dependencies = [ "clap", "dotenvy", @@ -3240,7 +3240,7 @@ dependencies = [ [[package]] name = "webclaw-core" -version = "0.6.3" +version = "0.6.4" dependencies = [ "ego-tree", "once_cell", @@ -3258,7 +3258,7 @@ dependencies = [ [[package]] name = "webclaw-fetch" -version = "0.6.3" +version = "0.6.4" dependencies = [ "async-trait", "bytes", @@ -3284,7 +3284,7 @@ dependencies = [ [[package]] name = "webclaw-llm" -version = "0.6.3" +version = "0.6.4" dependencies = [ "async-trait", "reqwest", @@ -3297,7 +3297,7 @@ dependencies = [ [[package]] name = "webclaw-mcp" -version = "0.6.3" +version = "0.6.4" dependencies = [ "dirs", "dotenvy", @@ -3317,7 +3317,7 @@ dependencies = [ [[package]] name = "webclaw-pdf" -version = "0.6.3" +version = "0.6.4" dependencies = [ "pdf-extract", "thiserror", @@ -3326,7 +3326,7 @@ dependencies = [ [[package]] name = "webclaw-server" -version = "0.6.3" +version = "0.6.4" dependencies = [ "anyhow", "axum", diff --git a/Cargo.toml b/Cargo.toml index 2c21290..43786dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["crates/*"] [workspace.package] -version = "0.6.3" +version = "0.6.4" edition = "2024" license = "AGPL-3.0" repository = "https://github.com/0xMassi/webclaw" From 8fe8bcb479363dd0238eaca99867acb97dfb4a8d Mon Sep 17 00:00:00 2001 From: Valerio Date: Thu, 21 May 2026 15:11:29 +0200 Subject: [PATCH 03/18] chore(ci): bump actions/checkout and artifact actions to v5 GitHub flagged checkout@v4 / upload-artifact@v4 / download-artifact@v4 as Node.js 20 actions, force-migrated to Node 24 on 2026-06-02. Bump all nine references to v5 ahead of the deadline. The artifact steps are v5-compatible: upload uses a unique matrix-target name and the download step flattens subdirectories with find afterward. --- .github/workflows/ci.yml | 8 ++++---- .github/workflows/deps.yml | 2 +- .github/workflows/release.yml | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78e5223..bf03cee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: name: Test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - run: cargo test --workspace @@ -23,7 +23,7 @@ jobs: name: Lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable with: components: clippy, rustfmt @@ -35,7 +35,7 @@ jobs: name: WASM runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable with: targets: wasm32-unknown-unknown @@ -50,7 +50,7 @@ jobs: name: Docs runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - run: cargo doc --no-deps --workspace diff --git a/.github/workflows/deps.yml b/.github/workflows/deps.yml index 29e851b..7d455cc 100644 --- a/.github/workflows/deps.yml +++ b/.github/workflows/deps.yml @@ -14,7 +14,7 @@ jobs: name: Update webclaw-tls dependencies runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: token: ${{ secrets.SYNC_PAT }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ee98056..7ad94a3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ jobs: os: windows-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable with: @@ -98,7 +98,7 @@ jobs: fi - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: ${{ matrix.target }} path: ${{ env.ASSET }} @@ -110,7 +110,7 @@ jobs: permissions: contents: write steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v5 with: path: artifacts @@ -142,7 +142,7 @@ jobs: contents: read packages: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: docker/setup-qemu-action@v3 with: From 363e17d36216150368f4831946711ff03d00bc92 Mon Sep 17 00:00:00 2001 From: Valerio Date: Sun, 31 May 2026 18:35:45 +0200 Subject: [PATCH 04/18] docs: add ColdProxy infrastructure partner --- README.md | 22 ++++++++++++++++++++++ assets/sponsors/coldproxy-banner.png | Bin 0 -> 1316410 bytes assets/sponsors/coldproxy-logo.png | Bin 0 -> 775168 bytes 3 files changed, 22 insertions(+) create mode 100644 assets/sponsors/coldproxy-banner.png create mode 100644 assets/sponsors/coldproxy-logo.png diff --git a/README.md b/README.md index 1ca7380..ebbacf5 100644 --- a/README.md +++ b/README.md @@ -385,6 +385,28 @@ Please remove secrets, cookies, private tokens, and customer data from logs befo --- +## Infrastructure Partner + + + + + + + + +
+ + ColdProxy + +
+ ColdProxy supports webclaw as an Infrastructure Partner, providing residential IPv4, + residential IPv6, and datacenter IPv6 proxy infrastructure across 195+ countries for public data + collection, regional testing, monitoring, and web scraping workflows. Explore + ColdProxy's latest plans and available offers directly on the website. +
+ +--- + ## Studio Partner diff --git a/assets/sponsors/coldproxy-banner.png b/assets/sponsors/coldproxy-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..98c5b11f156b08ad3f8430c6b9c335da8cd2d9c9 GIT binary patch literal 1316410 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
@@ -435,6 +435,19 @@ Please remove secrets, cookies, private tokens, and customer data from logs befo proxy-seller.com. + + + +
+ + RapidProxy + + + RapidProxy delivers fast, reliable proxy infrastructure for large-scale data collection. + With 90M+ residential IPs, smart rotation, high concurrency, AI-powered CAPTCHA bypass, and non-expiring traffic, it helps keep scraping workflows stable at scale. + Use code webclaw for 10% off, or + Try it free. +
--- diff --git a/assets/sponsors/rapidproxy-banner.png b/assets/sponsors/rapidproxy-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..1a3369bcea0f0408d895d2d74c64764619f154a1 GIT binary patch literal 422857 zcmV)%K#jkNP)C<&m7J=mqC_28DW@aLWjT_lvYFThm53!1EE+WL^7D)_$NJ{C_P6)h7r3BQ zwAYzqj(5D{9b?Wl*ZTI^XXD(1H{bC`zIg2Roy5DDGuCU5@Njxf-3PH}YyR-soBpe| zA3VO}uJ#(U#vhi`#M%!YpZzz8-(qTZ`;MiT6YD>i{Xnhz*?&W?v5!B5|B&pxf4zI@ zwa>1;@BQoFe;DgOi)OHK+YgXe^Gf^ImQH_X-*>#X;?MkR-*=3?x8cwHtMHnf{)5<0 zec||wHZ|g(qF?#Wefu-mI&)(c|H026-+pIbxWv~y@lQUsPjCFEfAaSnr~QG(-%kG1 z;@8-}^1VlC|CQf!e4BVP;}2v%@jb`4y}~~A`_XA?@e}LEzHRXp|M>SDrx*YDcORd6 z!9MxFAdi(tr@yz)9UbHU<=5LM(6)Wo@k#N&^j*g%{$&jRN#al9Kk<_N*moVD(A4NR z`_>=(PIBLQ=(SHw{G)Ks+IJk^y61j`__g-KORFEF_FI1Vv&R$rkq6x9ejmBt_uj2W zJodxz3xE9gUUApSm!T_3W7fU<#cw~}Mf2|Pg@?nR z`GtRQdHIWdeD(O4{11NS_*iM%f9waW`^@p~@a77C2HmGmdl&v=KR|pMb<|!t`|bA4 z-%rg0`{wWew&P=q|7QGY-}h~Y*xWaN-=|xnznHmiM*A`NkK)D8*+;+dsl(hyzwm8` z_RY%=HXi#Z+Op46qY;0ze%VJaesVi6{^;jFd3+S@%~t$-@NY9~cg>2wY2&`>dp~h} zl=z#z_mhXXO{{(5Q2R~4XKC=_GU{5Z1~WEap4#du|E)*&hBNm)a#vGx<392|-+J8J zCx|uqtG{yQvG0c8jdee=$Iswza&2?t!S8(T((3{DO~rl7@y_SI<(PHE?|e5L)?8!x zj}%8-dTSb24sQHMz++d=csF%>T==`D@5hgK27ecrzVGNY@#o;gcSh|Vmu|S_EHGcQ#e0#Zf$hVjKc;!3(_;K~ET|E1reV6}^chQp@ zUww(6^-Ev*!TLvLANi}7du)B5qi>Cz_wKVP;&xLy|-O0g&i<=yK?D~(d z_YMuYejnehp608DTKQfR{i$2n80-AIYY*lyYsp#f{tPNL~ z8vU4S4gR|LyRS1Jud_PWsT`dCIdi|2+jTqUYuA(fa1Z@aUwfU;?rhhdad?yW}gN2Qtq+n zC*BLp?ePsy#f{mKbv`y#^2YjmTPrFO-Y1`pl(zL5m5?5p#4H3X>e;D_S9;X?<2<

#~RylAsp>N@Bw!~<(Vr|8f zmdc#yh|Goi1tgu3%)xwnZqb*CF`0u&!|@_GFH>YfgR0*62g5bA%#6&oh>SiNT;cKd zGiSVGW9+O4JAB`(UaiDqE19WHMytA|Ge>?nU_IvdO|I?ucFAWpk!#(vWpYOZQ=+dX z6p>=SA4n^0u5qtmJj%i5v({UgY@h4%SB-+pMQeWuEIRPU8tJGWCNBKcL5Er;;RPYq z47C%JV@Tbbf?Fb^e+Ax5n=^a{7n7mZ5p$oV!0qUFbGsE&4=Jg$e|ciFxhiY#3nP!H zDWW|+9|^6g}!YJZ23t&k}rV+|dO3d2>HYM>~;Pt&#iL2Z_KKW*JXR@Bd;pV{=O{SstmP#l@$ z6>3lrl+ta*ps1^I5xVd?0l|SWN^2c<@IuoXHo9i%GvCDRYI1aS5CKO&IZZ80h&46k zO<-d4!9-aYL!Vw8-RoHoBb?KjNo;<(5-j%NT1#yk%0io2`u>l|9F+eJN-DUqH(`tPj4iq(s9-{SiW- z4Y_;IQ`__6;l|5p)($6@dtwSmo-Z!=PBZcNyX03BxZu=HQ#eMmaJ3n{1biWU(aRTS zelt>j9X%h##QIHkftPG8f}}jFlwa{+!VfZLg}q!%_q#Ug<_pI7JHgi!*!^*XNO249OD_@mw5K{niHqDZMA#dL^j%R2`RE(H>sCAHTC}R z2RZ%0o-%tMQ${$@%>|NpdbuD*zxq?J0Qbaf+|X0;*W^EAZEuEmQ!9gCI3Nh6WT z3D7e$Su2AnfE?oyWIB$^b!;&uXSDN0n$&KIeiFu-xe}g}e+bmvLzC(>qw&GsV!PzE zrmPPeRC_0%uDA<6SiBpp_pq^VRwr`Z zk?)08c~creFL#8?6V{NcI4i8F;zB)bDNbc^i!ANY+|1Q;1>%T|O!kSc<8@4Q%ZNyR z&5R_xl1alcj#2>dhYmB_cPW!(a@e&iu6bceXsC0xq40^8>v+wff*LNa>lzo;`V&7%Q!E)oWTNi7?avHZrk@&3j+jV&Ew#%VIq=W!DSyDsmU05 zM4fR?sL2|Sq1w6}g%7ljBpN*N=%-h2PgN>ugLJQ&MEl9>(W42C?>7?b|J8~d&z~$Q zu*DiWC6F!;vvLR-XI!k>`VE@*fXoc{K&o1t9DwDjr@jnM9jdRue0QT)2~+3E_<=Qi3suSQ<3{Aw*; zu$=u1#0_=qymR6)yPJQTjb7bLHR{wnvXxt|4r#~Nwv)5f;9WCVZ+^V`-(}|Q%`MH> zripjI>vmr3@o3^V11uPP^$Pd=#Jd-3Q+vhrkR``Ps2|&N*99l{#9RD?ybv~%x@b=t zzA#={;rhC0RJN!S8>`k!iuDtVpSNALD(h2ysn}(g)Z4%q`sQ5 zFIx2yx4!x43(};=TPN1U&)O24H%44HN`W4C9VpJ%aL1#QI|Y(=eNqN16@DA0w3X70 zsY>qK536Q;nxZ_Tw}ZLYwJ-Z=)8f_b?t}&|Jzc~%TT6xB5G~nyKeZ zEjeXbs~*gvgEPcd4#ywnotNeEEm?tX2nCwl&D<6XgeLaBthgybka8vRg9D{26KlbR zjydebW*ME3ws+~PQS(BdRqF#ib_U|j6rZ8>n#2*A+c(DtZCLEaK-9wU%E3oidqhwt z%5)B{BeH&t7OLU|U<|@ef@|+&W>A7PU%zP7>y@$-^-B)mBB(r00 z+&hXhr$!6fEnVFVv2^uZJk&YN5mXvq18z#){^Z8@lJ2$CYdwkxVM#B{aw1$4yR^XBei^J5lcQ|3*b7|med zbE72(E6`_&4ty5lTtN^9hZ}CGmT6J%F3A{cs_<%nrPo89*dE163NBW8d&1l2jL{cn zRnlf7`2~P6DUt!hA7yfyZ$rcz;IWKdqe!BNOud=bWg0KOVMLfyqgf48x+Pc+HeP>O zq;=2Lm2%_V)Iirb*vTzUqN2|!PjsB9I~(4zMnQEm2~wX4!u-rKG z(_1FiUt>9Q@|v+;6KjL7-rT>ymXWX8U2eKQik*4fLfxKuuEO81s{PY~y__#7go({i zZ>%4#{1YOoe@&CKaJSg5(Tv|xkD-keYbx}bcx+;|!-=u^v?q!ZhtFM>Ra@yeW za@sYPyV;%{%nFP;AE()mMI#YkY)^@`k?bw%i^Z92a4zS1t0+&Li}?V~wqwth`AzA) zm2_Xu9!0)pT7`3i`YNNzegMVwWQEqzZ7zL|s1;0i2@sO(hWnzWM?ga}TgY(WSvf-Ec$#Ly9+HMq8%|e?-7?4}!ScEm4qb zi_5j-Cu>)2h_yoPL(ceGQ%Onop{5O@Zf12Oj5EKuib<@n>zJY9%Bj6_NT2BBmSrV5 zlXHUslQEae?6_jmnTamS>J}mbD!j&vCwJoH+--uF3;d}87w4o#4=2PCiGq^ZFTL1z zvtU4@i;u{d%WUyd6?8^U>*zWw zymH1i(NEr38*X^F@f7E_uN}vQw=y$r5}Eiq6~kl2V9q0x96r{S$$9K?WMpEI;h3{i za>VT-Yx*QQrq^Odt51}Ac2K(#cVE#es0_;N*sqO2oi!R;iuCt?fn{t+Sh=8xST~jl z$FPTAhFj+>^9Dc@M$Dy_SSMBcBd&eWTaW8q+FOxkfi_rA-B1>k9HKmVZ^K?tL@$rg zjDK1Ewya&WXLN2*GwlZT6Q5oZd)Nk&5%my)i-TZ(+o+OfM9+1w=9-%=+N$yh?nxnc_@9%xojh-(H<9fw>>?jH^?t7N6&33C7RDdsD0+>j74m%b;p@-p zp3Cc$@9}W@G6alUagmRwddW*nUVk;{uWh(f%`SRPthv~Dv9`zJ?KW1r_DpJppr}V> ztOeJ;3gO*&HfLkaZsqN!8msuO&9edO%5BvZJNY@SRwTrp!V;w(vbA!u2A&O;sHbJh3 z+f$`AGxIPihWmitduH=K3%_}?dc63d&9c;S*h}IbOdL1rASI34#{;U<_S1~UyFcUI z>}xz;JXZR=?O}NQ6ZsJ3GpfjS{pNARn5tLCy3Y3OA6_bHD4>E7 zERqRe03&*;UYQx0d~?3!)i>sXWDVvb{9k+vC>jzXGnpOrLC1()c6 z0j^nu9hf5{d?feDs4$r`qGo$HignR|L6ZB8vXv-js=#GxzUQ#m$_jg>=EOyIxS-Oq zcyL*wnOb^|)+oyRU_$|SVqVfvg0H}8Vt$flQ=jj_dwhgT-t^`s z5@+8ZY|m?rL)`?n)IzZ7{aW^U}^6B)4P2y17{OXDrY*e%F|K#%4!*dhfFH zgQw&MK2_p%+6 zI>+$4w|q=qGqz~Q#`0svyUFkISBbxtHrBdjKhMG zP0tl4jql&60BfkTgI;R9_^UHts@ux<{andhYv@1e@ldZC-lRgkXDPnewCpuqwFSd> z6!rRsmx(dsTc)CilX? z?uZIroc1HWY@_R@_nDN?Oph1en_DSc^jW@rB6C03=Uc4~H>cDy($_Z$Nv;C?+lD&z zr2`mmd#bQ?d@%fQxf}yrb27A3Ydns z%3kMQRsttwiD@coK;va~%LD6eGqlKqP)MQQBKH<`?RBxV?bUhL_R)d>FI~^O-@6C(%rkj=QR)w{4x)Ykgj>>nK_vhU#PwGlaqvgpzJgZO15m>NZjx{^T|-bq29O%lxxV}uxwj0JC834O>9!+^_t%SId$s1&xb@6J zQ8;?Pnf;y-)~FiLQr4GFdqG*IJ5B8bqj&k?^_nZGYmKMUtekd6F0=xnxnO_g_sOI> z&3xG=sJuzIUKFs#qE{4gm!D)pYf;xd%Hq6>0!%I!R18<~YUS2^PQg`Qwk$WNhjXae z!a8%>m9JikE@lg<@nS8L=eZT#`u6Uer$%f|+e8OTch%8}$fW1s=-di%4i#NbV! z#v3DH`%-7r#oFGtX0q8MEX_2sS1C3+JzA?csYzfmB1Ua=W@?Y%1XZk#tTNRHpxjWzg$V;6_;(iU+;5jDK46FJ?;Yx zE5=?ZJJ;fPz*eXR>Ym!UKb2$m>WP%vz}wQq<}`6|e^HlTrey6`#H%MOl0G>VwgG20 z(=)`QVRGqj=^H7MeEv2-KDU*q`PdYOrGl>}X#GPZ0 zOHvbewI_B=r6KFS^UF#pGWSygdgc2;eg_GE<@~BYC-ixN}Ld25tJ}E0~1I z=Zv)~)jq54{m2AiE;!G$WRW;c{g^TIZE=G(duU2wN?8-Z3!@~~V3sSbXD`6&4}AJ1 ztn)*A-GUS{=s_J-nQ${XP3736Z*iU{Fu5zE)?6}Ot$xzM4P|C9P&^pZATk_fz9hkQ zcL?O6xH%t_sBO_z*UWwXOq>hBSagdm%f$vh*5$j9U=0`EgC^E$d$!Ra)KwmE%>^6- zRgWFZoPSA<29?9_&p8toOBU4Vo^4?e-O#)nAg0DKgAj4mtLrGmX(Us50Y=fy`#cU&C zNXK|Ww-UwGR7_7*2-M^5YKW&N@asHk<@+_<>o9I)kCmG%9-zn7dFexeR>7+#kH8Ae zg7M;)%(}^2<2JS7W@{6>wJWDy&R+H?571lJ{;<>#BgwpvV-HHHM!QQ8$Z1w+P&MQV ztjSng;UjlV8;?EG%bC~jwsSk)HD3e%I<$P%Zsv3D`ZsJ8JfZe+xzr`up?yMoEN`rd zN3Rd+CXJMz*sv4fNOlE9_8oQ z>TBehaC{nTJ4|~OVSPQO^WE4rcL@T2sPx%C_2coyfA4=CU;ImdGQQ(a|Ni)vpZp#d zX+zUvbz$whMb=jbe=y|_tUmvXKOJBE%YQOH_iz1Fy!Z1zcG`E+_Y1%DGx7WW&;Q%_ z0-8_$(J#gVB-(neqzM2H(qpLLRnxYp zh1z+4_YG)WnXTeHZaMQ+QNfBl#04w&(xk3x5#bqUf0#9n+Cv8k&W1A|177gnBf9z~ z!~MAmoM#MOh2txDZaPJRvFF6im&&O_S6=9Wt6Ov03aUcxrk`j$w{rXa{3cuI(o6Bm zd=TeZ?fN=Ph`l>uk0HxDjhPnfd3SNO9jLh%9x&{6AgFWL_@bB?Cu@^Ep2TqEy$?em zOF1LDcM#i9JmJz!7<7ocOEHFyxt>Yg-_q2pR~Ug_Lg8TJ`s)P}n6hf12VWDSA5_nLVUu#6RgdQ_t;x#Hz&!B+Pg;N*X^S<6Q9E9w$uq5J8cn>ycsq_*~n zkJ)R;YAU*uH3`hh0r1Xlf6TZ|l@->vZ$8*{F4(-Yw#d^BH~vfj-0v7+4~6IcUAJjx zQ+n-+XE)}e?r9i3=FJr!w+s3fEHsVB?=*i>pRM^`R0V}i&XY$mGqAqgPbarmYE+@Hm@^iKSLp=E+MP40!uC;5+m4yV8t@#w zN?djv=QaIK;;rDBiaVNBXCu2GJZtQ6VVaajFdq2T40ce*Y^_-ToU!VY^RdSBJ)2NG zTN)2_8#GaG-JZ|YIZ-A!@oI34iS&ePB)a=2Z-tgiu{(L=M>+Yi(M^2ulb$vc>*X{{ zuHL--c=6ZCT>7h7ChI(3zo}f(@hdF1ukYtps{~VC)_D|P^?OVUUbk7Hy?M=?Ha+FE zSZj(q=iC-t!$1827D-lfzJJ#eO2gIYeH1+PM!Uv%x4mZP3ttQO_*%H)gJiTc-y7sbHDIY^@A>dfJO^Se5}{qy5?~DJ*MO}!!mW2YQ~xz=BhZx zQRm1L0QWfBHE%7(SnMlZ-`q_+UrC>7Bt7enw|M7`+jds9ac5qfl_GF!3&!}l|NUGF zE3mzu+82kKy3Zpr`F4SYjw-N0fm-htHTPuhqNeGyK)VMs%ka(dgTzZzt>MIO7<2zO ze=Dy3D=aB^Ja8Ms;%&WU-UdDEu{xx;6-=I`21XcY!DYA0-AsyXNuS*#LUTB!56%3e z#H#U|y3AymT&g27!5${efjt?d&wDSyB6O7~aF(rBA*-1vj-b4RM*QRjxf39&_3+zB zJHxx}0B7<}vky$E}~yy(N7TD)G3U6U4q_3JtLtrp0bpcii>0tYn5bzVvcSamurNIG}8xCO}yG4U~INQw2gjpLDh7K z^BP94t%QG7%4SfsZ4yk2kZ$5OUpeEwjw7j$rQV!Yd4N9CJr?3I9N|)S*B^pq$O_p9 zVHg*NRjUE-#?(*Fc(A@LBdOAG=O`_t>l6tN0~2l_Br2$MO;Tzq*rr`}V#R3A7<`T^ zd9a%26y<}fKfQ7X(QP#EyRi_%?k`6Js?b3-pwc zQRC!^tBIB3;L_jX{^ma|3nz9S0qFaPy0Yeo%q$Bo^L;<|;ta|$sUcr4Vh%6S)-{cL zM$~|L$Aq!R^gd&GV>M%YY<~FN%jfFS`Xuew7F=XznYgo}W&6g}Ejoglh?@Pktuod{ zgTd_+O_T)}=@S#y7_NO5=d2m9>|IUfnK8|gTj`nO&6SbT`yMQRs~Uuc;WNdt#_%%q zg6tXKAbra~kgPL=uO;ZVYy7%3{vY) z4c^gMtc(0Yp|IXsHSw0~HJZB?d%=!JG~Djp9I;NT4URrK;wDkVTw={wKUU?C#<;po z{cfY#xgGzrzw;}5Soqx^c`v@<-H#MLr~NC#Nk)9fpZ+tjj0=~H-2K1@PpOKVT|h5C9uMhuQl$8-=Vps zRXhy{uPvlB`SD`yE}p<638v|J_XfaQc(silsMl^%qFF<7u%49Ei>9Wu0QSc0F4>*r zt@1uvyyTda#Z=ZAt}Yy=nX-~P5tURw0Q~wv6ZZO&-nQw4baXd(LzOdpOTW@Rn9}>S z{z2|Vs%mQ5WLbEhCF->VG`|CIjWe^3``WieZa``QBkgMo zy6<(8W)$gzQZPd?9qv@uSWTQ4U$fSYALTo7yA`W#e6WVOy!l))Kafb-`k_l96EInR z);ow!hG1VWP)A)P@ai;9tL{Y%{bX!gu4Swq8*%rLwTm8G5LC}+w0cu|b7H;mV?)89 z2?M2AAy9YTRt3*bBOgWWd6DgGj4{lG4+zVIU`$u+71{3z*U zlAd)|g%OPh#`T8fcB91^S~snW+>;W$+Ex?A%Bgn? z(u0l7DJo8&DZ=aIfh8+!ktT_4kjUMZ%AHi~G|WMlLju$Le(0x%aiDSk#YaRY>w{-+$DVH9wt(x6fqdjP-Kj>SusWU-RZ>ziv^SX(l5RL;qyZz>Kx#+RNM` z-|vIphjUR`zn8VroJU>}(`ZV9-k2pK-+&lUzKHd)6`KoqN)0QQ#KnY?T6v&B> z1ty<4pN|M+v0vAC&-rk&Dz5iyoJhxjU-PgRO_l>iEgf9L={1+vNckS?{zWmjcfXfr z^1K;O_1L0`Rb-Xs%IY=A@nUU{#hUzX^*P^&iS?SP-A|7+fn|!4-6YX%SfdSd6zF$M zJh`OO)WqWEWK?qR?M(3lEL}QXY!iKL4}5PlYshKFF1}+qP0pP7YPVc}?u=X0vG`a= zA->shgN2M|6>*UtaQgCp_NDmk-}tR3RiF4HpO26IzW3tOKl?-RJ%8>G#rOY(KOP_b z{3m0--ut;9Bmc#ndMkb;c<<+btbPb~yMI;JJG#bdo-q$aGd*5hcHbxKq?3#<%){|;#pCN0&Els%B69=C_>=nb0 z>@K6@8BV+LXF?!3W?c6u(Dp9I;qJm?Rc6*wkEDFOa4ELvPGXhTq>@HG8(UJoscpX1 z)i)AuYRkR`_L;3dxJ;(k6smDkC3iB=Ox&#d6Hf}yfMA>eTtfo;AbY5~HBlPjUgni? z^^Swfv<7^Bl%S^7q;bt_(rGqvt3IFGDzIlDK&e0@<$I#5ZBjhn2o<+Yr20QUfNKqX zEUpBkURR9(4kdccZ;bJo?g3Cb1==m%v$Ac?CN&As75s@GT<@9t&`ipWAxvtbEb4+P zAB*c_fMxUn3w%y`zaF--`$S!p$%0G^oc9%U&N6ieD7X?kFo$^UzOu&h6#$IK2)VPa zlrugJnh`E-PJHG7a=3F`^CrAgeVGL|3&1YkaS0zxlrX~5;PM^GlsO_ZBjM@=>H{a1 zIXH56fHx1@&yzq(i5%fMR(;2cG$X~0^IEgTcjcCy*3UXNEt?Ck>Q{wnh~X;+GOE%) z2|^QASte|6r>L5YwF-K={-f>9-sXe-ctW%*Qhb2M19?A~C2{K9np+V=)mZ7$4z2`K zY4O2YZr;3Ha3$OxLsbuT;?rCVVHV-Mg5t$+;G|#ROZMD^FdVDh000mGNkl`~1Ty+Lmrtinb zD1h&0m({*!@2Pc3zRmb3&9QL@%&}rzWU3ZLB)?+2DwPse=-cGAj$WGY>snb28`hyt ztk+hm+%5K94)&K=<6CdJsH?foOLXk%WF|zPXJ$rb6hLGjVDrCqLa>SsuT1nVbP(gwq%` z4A&_q9b9MwT_%M4At}^iE>avCDyy4BR|;Jp4$?l z&3OgoRt#2|nJkgPFhd-4Ph+SYlC+$UZzA_J-IKRWPhqEmPyMkk@I$OW$jRLA z?Q!Q9Sj)$hiS?)Di3Gl=J_LP6N|lMmida)hF8reN(=cm`6_4jG4X-wG`G?Dlp!`z2 zW<%uo+>jCt>U2Ehp^jO{|q*oarbq?0dpmsWJvHRp;abq^G1cWmB8*T7>?VcD4R zRd>dftZ7k$t!_%@`p8_Tv-@m~CWpT(lzZ8zI0cqgu#-i+Vyc>&5Zg%$pG0_dB;xEx zHooa?9yJ1Q8n-2%!cBfl`es?E$sX(_G4Wfh4*o!t*gmrB6He3N-C}g+_UVGZ1;GWO zP$P=+aIU2RrOPS@THc+Mgg6r+#>_#YSwqc&_s&8X{{RtT)m2ICc%LkNgX;|*3e+=T z-O7D^`r9B{KWkCFgX>m9K%H^dIm`9N6*;2^j1(p1JH`XVc&wy}5;P)y_UkRsH0Rua>1AHoKPG2RR>atyvQl zJP&u8*<$IuTMLaNoiGLay2F!_)`h*a4w(HhphAtXgf?>JjyrQu${*;Ch>oK!_bhE&q1yF&h&fU_&QgsMT)yVsE@nL9!b)!M`e!E7*|+RNA_t{ zWKTzw9#`J{SUkME*C=gpGAXfaj?GO=cvtt0)B4;Mv!^Q2|qH08#Q_$4joW-S|=xcq_IrhkVL}6xXO* zZK7vu8}&SK=7}nCh83}x3!PTvnx@Xsdy2IWYVu9kC!=}ao#4tOCJjyGSOKn%lze$o zKxXcRT-b8|PCiYM&+zC(Lw?$jq`>7k636`_>FloSMv( z3J6a2h~yW*xqhx5b0xbzIshuEz;bD=h)0tJ@TIAV;2bN-iuTG}vEG*peP-VUu&d(R6*39gE zXh?=aEJL^)=!J1tiLPS&8WX+|Xj@Y^x@6%^80&`{Z<%&JX%iBf_;t3eTm{$IZdxUo zCO_M%tu0bl=7e@1Qr5^-KPI_|j7%*0YA)i&1Xr^O3Nl(QA9ZETJS6;Jeb+%U#Bv(p zqoG88{7A>|yqvLSjj{e}kN8L2weCZTv(D*pGe0|KcFl0|S5v3SkKeJiJ8w=KescOW zfhGIXa76tC1#)|xaU0ph80LNbeXn?hV0vUCU`)>d_?R*igy8{}nu_bCRxADlM2W5V z4X}rV*3pMB+f1{SE9#90>n9eQ*M<|r8w!`#X?52EjXX-`@H}EJxs`s%PfopBy|!cH zn^~dBpz?_c+02*!-j@o!X8PPO{8arv3#$Ffm%beT_!s}ivp<-6=QI89YJKUi{HO6> z{yTpw{{H{&KZt+u=l-MkwZHj~EPrC3`eWZ0{*A9EiPsR@tp&IDv}6R6@zrgv=i%FX zJY&s7_|D43Yc9oFJlqT&p7O)!AML4HRl-T5&D%DlY->1j>HVWlC&oIHP7*VAO!(H} z0@T)Z_gM3k zrJ~5Jd+qa*=x?e-ue4NGlVDk&eLWWUh1Gqm>{Ew;uL;Eq-IK*dyfCTNl;~?4Np-^X zH>UtP_kLd7gY{HKS!|cRD%l)AcbPtJan4Il<^18K#mrS&6Nikqh#iqx!zv(ddhP#t zkbQ@*GFl*|UGbEm2qNAWf8NJhc?e!eVv)=VKIQnx&xh zecsk^qcG+y2-F90@O}OPk>EBXh}C@}nYP4fECsraq{A%|9WZ&WBg12=zG<+`?b=IQ z6m?M+>vI1Iqp{;=k9K$S;+CtFSTh(ezBe;kHob2~X3@ejW91dxCTZ=)MD5yVsBzeJ z|KUZw_a!{-uGj#P$=Q$8tpgeJ8t@#7wE4D3+{xMl^|NlWyYoCta=>IM@{9`<--vl0 zT8n4_V34U={b`G*!AS|uTQZN?Qhqo0nQ0RCz|H};aHHdFf9<MU_~=Ah@KzTl!nR0aJO|dX)D1_=KtV@W|^G5;^3lI2pxM}VMs>7cs|(a5 zFYp=b@6GJ!^_twM#B!RPv0mG;@dF#l_-V6ChtsRm_WZwK`0+Ug&*SmNvoaZ83D%F< zOS|%ump30&j&)+q)YM{V<~y~O`Jm2DQ!{ux-796R8C*GIbDDWf=$-59BMawPQk~(QZDf^^ z91pBvyqlzDn%JCPYuvN(M?e3m`2K(Ae;Mz5=Hn4_a_-I3jfgiN`$&B3hd%>){dn)^ ze=I)pb3a-IU*U&XzswJ@e)AvyTE*8%?R!7}qtVM9@teQ=Pvckqy}up*&A@G|>oFVq%VxI%?v&ozVJ zDyq7Kb z`O|GZPVO0?RO2Y;d$VVh59lhCcL(lDGrpP3$m;!tVB7>JvWEsS1&@UYo*$l9mDTjT z?qSB|U#N5cW3xr$^WmILZKSPciVe^FOJLQU`njVcGEcG^*tWn-2Ve}?ALar~*4`yM z4P7kL-hO&RN1!Qjk;M=$U%80Z#EmCiKl~zZU%&a!^y^1NCS(L2IWL}n7!Uy?!W_l* zO=UoXaWzh;hEx?uCRN!I_E;x|4_JqBoLB2QJV+a7WM)$}A2rKlWZ`|1>HB#TnMUsA zrf8;TJ2mRO+uGxhruG;8X^j*w9ry=E|8 zoKDzyAiHwbRGPuOF`oxeS2hy8yk?2qiG^_lb8sc*(6@C5-}y$NGUh_V;HGL6JF*J4Y4I$3cT4pV zS-DZ)ZjW^*V4Y-brM>S_w^wGa`U^0*&few(l45>-*nihpqsdKwV>=jo^O-OVv3%LS z0gIcg`8J)28+Aq17xFo2jokAyfs{DLSo*OmeljPs?QUQleoqGcx-K61sm#pC%u|yoR(Vo)ATvv!iARQu$Ougr zTzYvup(&k5d*UJxFbdM@&KnG;hV4RS*q2j}$l&sBDvHdEgfVK?K&HEh62&bSM8S2G zmp_QYs28(U+^#HG8uCWC(y(;p#@FvFFq5~XIpfT#ltRHEte$wHI-^QTYLYLRO)Ed* z)#&6_Jn7;uQ|$@v^x)o!0HX&3a2un&F<%$tGS{seYqOvlt&YNdVucX^nV$~z!|uI& zp!ad`IHt?^*e=!bn%LBMIc;KchPbzmt)#TpX*+Lha=iF=$o3`0+P-vhYJ2<$KhpR) z9PMCrJD$9L=SMeO)E+#rj415WZ3`}0T#czobc5#|DnZsvmfs8RJ{uAHyA=Dy(pBb! z+3(a6m-ON(DY~XT5Rca6hWVXO<~g%+&s}3X$!UYf4`*x-<1u5+SdV7Gv7C8L{M1_Q-+=m_Kl_L3KmYsupa1Fp!B8zo9`6sX{I{*%;|Eet zd%Vn8^VvW3`%Cm&{1D5(iRFJLSj1&gJ3sL1RK`E~5C8M{$AA8BbaaM&m^V#1u^8<7*nP}FZSbxX4v9a^*a=l%( zV>@6{%7FVA%Cu*&=W5HHXnM!ZJe|GQX?{b4j@dscD?ktNbjTw+69C{qAHT%aSAYJ*g* zsvemcrv1F7Iq2!rPYGg;#5b3tgt2lqB+u6q|Mgfh{(*3MnSrXMriYc<qF@qa8rvsF2w)C%$v?ZFg#W72RyXN7Dg061>kD7c3rLg$3BzvhFELB4-Pu z*bCuvK zE#904?7^Ch$lO>7vQ<;``npz_#C4QVG9z`)4M0a^W|{B3=}h~H+KzUm;Q$>G8TCRT zEl>1xOyQQXYzu*kG+>QgAs#a+?&WeeAkD#NvS)Df07hmqckh|!9!YQ?vT7nq8ta12 zY#ulZwlAXLQeT1&S9wVaTSv>~0@yibv6_0U26Fg{Q34|rL`313t0QMED(edFp?%z4 zo)J8a)u(#;j)(3u;rGbmtR=5gT1JrkFDP_D>pBoKl6d`gTV*yhC$GmcZ-J0U7t=S2 zh}(tq4DRp>mMcxwx~qzA)9gV;jq!N7D%l%J?6IP+k3Ct1rJrzXX}7#!oqNUTcP=8M z_;~)xGu5bPN#6~?lk+1IaKV*=ED*xrQj6X@q^w8x) zw#iGUCYj}*sWYXas#6zh#>=L%ZpIv^r!x)Ig*iD*y(ZSgnnJytcsKbyexxz)53l^8 zmH$tF#(LwAe*RN@Wj^B5Kl^**3%~d?As;VX{&4EKA54AwzxhM)xnKCHc=NG$;h8H*|I^4Rr_?_zys=*yUqUH4&To!wq(P!( z<{LBP6-a2Sp_yB_BBYGSbT%6y>a56E-%Q^Uae;W|B43~MPQSlt?J`S=eNtL0gSD;o z83va);DYNY- zy!a(^F)Y!0rkQ;@gzG)vEbPs*AVq)}9J6k0mnlPi)fjA64NPv_Ti`(-jfGjU_ckS- zZNg4`@4W-7^m$9sPu8+bc*ZRWn%FYJx>Y^KM~1nFX{{q>d!6F6J!Ig;?)v~oUCCVL z1fH^OYp2%qBRe3yf83M{&$?;dE0dDYfK}@x#xp>1*7kYF{Z;pOPrWr->y@tXtaPwe z5vMQBHYFMF?^v9;p?B2C*)vn48EbA;Ge;Y#wk67rY94&`CYM}TW>3NGd{i83iNqhK z>-CBfyX(bu<~HXImZJ2O5@g@j3V4`+9FpRj1GSD@>Xbey$X z!W|%eE9{jg6QJhf?n1#$WF~AzX5xEf-f+Z@qZ=Jj|K64V`^x@I#TRv)7YW;{IXU_; zswe5Fr2ve=m5YeIZn!{nK6gmQ`rMHSukm8dI4#3cVp$Rk-$b}jxE;Fz=;&ESMr3B0 zaYlp|b0M$$!WTu7(a^Ra%43R@WwxSbi2YtzHtsH)mvGoEpmtby9`;o)d50x7Gk1nG zsTe<8#S`eaH4VRxw(X);xyIM6&FuzTRNHxis&?|J>Fb0VJehaBNn`DxtzJ&svGLf> z4<0|77yR)cXSwzu^Uv$DLu?`$zJ zo34*f(ywYVK-vkS-VgNQ1s#}NCP2=dP)}SmF@uO9(1112o$sK8ISpL3c-PQ9v88*$ zzm2%m@nzqDDN`V!7Squ6a349l7nUh7Gwn1xSWszG*FYu5LsJU40tGntH7h zJsXcT)3cmty!d9rj*s}<|NakNemE5sfBqMLI=+h^I(^5V{_%L}`nA9L%i-Uu`Y(Rr zKd2u}ed(|Mrw`?y{G(rpFYtpfe_$3||MmarKZ!5>mB-po{jo2^5B$YH5#PWMypY!T zC;#E!fB0``ed|wtcjcc=WA3ac)3iOX5|RT8++@T2rB5*)=YD z$UAQbtrXjIuIg?Ik8ZwA5RDwea3(~419@~U#_V2zr4n3Iw{wRxu?z%(vg4 zSSwL!u{2g0>w`;78Ce2GX0LI;m^L6xkj&Zs`85@=eoX1Jo5 z7~vtA(Yr@+d6NeB)@;v{$;_x<_$Zsq_WMR_snzcSxwVyubJOwU+Ee1Hd!mxKWGj;tG2m*#NEzZxOl%LD`$eGk6_4dHmG7A&- z7)?iE&joRv%t-KUa7QcXyiY}9R~<3Gx!lxh$`D%V*N=nVy=F!x+S+8Po=gWPGWH~y zYZv&y7@?=6Jgv*egUcl~YmUhqfGZXQ)J)InXTHdYiN{M=7Bx{EUivm?nYO;G#?EG& zbLLbe*R52;!bNUVWo83-34&4@Q8OUS}0m zF9GiuD6gs0Yvzpg6$>o-+O6*EnKpZF$GhC^RE$8Z8IO0TVz-aP)Uuos#!Pwij98<%sY8$nR!Pu@*)cuIW6kSVtOv(nMsAI@#0yh zv2)vKCZCy=$XYAbeDkrc#Cvav0$9WNe6+=^uVvy&3YKO2lOC}6&TcdO+FEQ&#_#0y z=K00kJv*$O4c2Q`nG@?L-n=P8y;i3PK<;lYnf;|xtZa;QDfPqco(`3l6YJG#;@uu` zdwzSA&`;I>-@p7HKm5VaH@y3i_|zZ0{XYp(d^h~T)&H9xTK#|i(%+6RZ~wTv|4)L? z{b1^&U-(pfe)}QTuh#$b;Nu@+sr~+c_m9U%>fhw*rT@ua`_CI}^SeLt*)6)jIlS>( zIwLEZlpiFmNKSw7>G>+koHh#@aZOLpP*2G2LKcPjHn`QLwQ*T0C-+2*qn_`}C zgzm{$CB;wU3ht+@bK1pQ{uz2xJcZfR2P$1P_mz8xU2x<3Y@+T!#cuKFQee5pI}p{t zz=Q?k#rLMFm<4nhS=5sUGxW;7=N&h5gv1IuKVTFZY?-M9x1T4l^RQ%XR zx%_gEwGUVqt5vq#rN@Ms3t6MBkfVsQ@LJ@#>5M5eyO+7FxioPa3Tw+22~|i=ptn$7 zFL#>c?J4`rDs?Vm9y7+3(jLYNi;GBpMO}+9P6>Y>IU-X}TwFx1U$HLNJr>qwO&OU9 z!WaOKK-Cc|#5cOtH7qxxT zQd8p&q1Nbg=^Qh|g!-t-D0avh#CdI!lM`f`v6&vGHU(zfH6v9+sb*d;iT56aW2Wl_ z=%3XH5y_tOL}Bh)99}4unWxA6USOupB$^JkS$+#QSj(8UjKJ?%47HY-Xw-AZXWo#y z%IUQVm?;VBdk|9 z)+Mh{Z_axYk0}$I(~QT9ck`W_II~r9SwEB_12t!U_s*kr4HOJfTSgKybjvaU4A}k} z0M2BBaQ25-R+}uEK;BlygONWR-v1=hA{w20CXv{&_$V(EbsaSuH>!~OIdC&tQ6w`n z7#xLqEr@rH%56hrLYw-yT=tTx656GK6S!*h#>0RR zdfosj`(@-Ad5%duMuK6~f5cM{QHofzKDO)DBTz(L*0~>j5y>o}k7nN|&ieXKZtb}< zo-tgFBaZS9rV*Q>*SWZ{Ry}J$qX^?z*WfK(8ToTh#q?(6S6F?FHMwgKxd-+d*?vp5 z*lYHjcyhB1^;h#))N1Oik;@dd+MH;-IO3M)0OEEHufN);hPR`5c>E=-W#lx{&kpl@ zJMpvPe}0MNhWtFt4vfWenz1GxGu}=8n3^kAE9ViUV41Nn*+Z1|ldB#Xv8dC_`!2}W z>!2pM@MnB$8pV-*ZoDo3T-`qpp093mXZqdTjT0_dx9Fea>`8Ukr!tS zt^tv`k`Sge;N2L7Ic<_31W%8teXD10{LU9&`PG;I9|Es^erxId!PQs3^yOt2Q5 zL@M#9%!K@Su|~`g1<$qobJOT5fB6Han<&1gk7>EUFek>F(F{+6&&>KyFj%EVWJD%YEYn$tw%&!{k|TfKD>%v& z27QjG7Qjr-&Dy9U7;?T9%&rO_};SD>pW|_bb~IPpaA( ziG#@Y!KK%LJ@$a66Y6I>Ep(RkGa%Lu%%lc1B~hrVM`o-A7jkBn zs~Hbb+gR~)ZtBfvbr!YFb1+ILEKdy!5Z}hc2?f@1U)_U%%`nJCWD>`AO*no}p{@I; zrF3C|26tCN91uFwcLwjF&EHz1ZKc(k()_`ddn`<1GO2HE<94m^;m6=a6iAEy2mS~o|#^%F*jS&Yjqo| zmsrjO!jn4tk__yVsDf^wI{hf{Vyvt{H>mg}DzC2n6MGQE3(71veC|@ld zoU+VjtG3;7mf2}j6+D4e&Q(}3q7{>rcZM*PEn`~MQZ`ON=A z;Ap@6_r4VW@X!7AyT5TYx$(0P|Ay8t|M|ZWzx^A(HL274L#!|GgQ<^x{!`)gYyY=j zj(c~26mREwW6)5}y>Ia1F? zI_ne?CO~*be6?5Yj|O_Iz5&>J^?DoeB2=w_e!A0!=Xoy3QUooKx>j_C*`%hRir~&6 zshvat9%1=MldYN`WW88VW;xJX#=+SK)&=!!p6o9kUzQvzB`zqT1wGr0_IufJ++EXT zypI?vWlrJ?gHbkl`|$k7^2zbq!z55Rw;)EcH+GH?>_WL#lmu zNvhUspUrsRqRgyZ8kBWi!ZxBO3zi;jz-#7XUFyabRW6ffNP_Z;od|LCq>nvraU+uK z-T7jZ9)C$sXwSiQ$4?h8dNc{paO}wWk=-wvX~i<#loUU~#ZL==$^tGa-hYkrY;gj% zXwDWT6a@Q2P&_{7g4pj-`aTUagx~g{rxWBkWCBi==CjTe$sW-#BZGZmGsqM?YIeFP z4ELwmjTBxR`5NE2s*9+P?5%m#&8=2$>3o|^^0w*9lHJNDQG#RbfwMdd0H zF3xlrD>qt0u~y0j>isc^Nol}pFIKDPZi~~$LcwKhzBh5K%t0o>K3{QXA!{UazvJfY z0KurJrl?wVna;s=z~LB~8TCjqip%BCGdi00!w!tQYi@WF7T*hqNXnnu6_e>TSkRm? z@VvXJk#Aw4+f-u0@xTXz)lPQDl2du*&AruDvD+N2x1rTRF7htFxTot4W7AyaiCQzK z5uW23n^3!Z@e8JWw~@*X)=xZM?$Pq{uduz%E96Lev8hW==k}HdQO0vul8rKFqYN+W z^TJO&d3{^9L!X$#9f>uQm<7S?j5ze{p3Y%)I?g8Cay@{waTPAC)->q9%jWH_sWW7g~rM$bZUF8?6 zj&0hg#mu!R^+N++9HZYv_BWgsu3|iX=ZC9DwkOWML)zh~c^o6%l{>zxngyq5;u2Y< zRd7y9HP<@HCt!UurO@2z4W2hw^SttW6VN7R0{5!1YsJ=|{VJeMd(*WwK>0HRxEl!S zp+Ihs=;dKk^{RTw+DSualX?YhmK56QQzjTwATBj8Yx}dFP^{InLS7!;k+}$59QMH! zyF;Lwy5)uI&q-=4F%yKtUh43KBncXT8H7P@+V^H9$;~3mf7zvt{HgV$NdUTfJ^AuZg!GGo2Dd&{UJi!6HoLyxVCwzzLNDvoEa zYJr%cqTZc_{XL){ea`ios7F)lR-#DD+p1^7nkP-4Dy&UPYNcSh72ObYZ5{@x>m9^; zGXV}RvdldO*S3lp#z4I6Ag=xBv2C2SOS)XhmtC}SMbVRij`x^*6!X+qYLF+;*nB0| zG}|#edm1de>KDyQgW7j@aaYvLO)w-e7#8UD7OR6M8S#ewn?&=Zc?q1->3K7)jly1q zT?Dhg@u`6`E^F+4oN4%B&Og~15#yPBtxvVOyDbAex3$D3;;FFQ4 zTW7K9_B|VG2P%C!tvztwe6h%cJAyo(85mNrt{XPbUG`!t`_#4S!Vg)^?a}$_ZBCOK z{|J*Cz1~(OgLg~ZjbRX$7pT)W5gW|H-6JC^3NE`GD{AblLXUtPpDh7)VEZsm6veT4 z0*VtGl*y1-PhsTc`$p>hsaTmc~>AE{+V_SgW-(DQzMo;H=r1k$Mtx$ z@FT9(ubE$}zFYdzY|puE`)F=|a^r8MN&5O6leC6=GVG}B3AJ+i;f)8s#b3)T)%G%D zZP)Ht?KPHrrP=zG(vpq-<_ATcXK*D5$1G|y_Vc63=;g$kc+8F(4T>_Kg<`1krD2+9 zJ3TA83e0ISm%KJH^`)P9{H_`9ce(GscUm`I6JMpdV^7aR0?s(Y`Lvl>e-2UFkh?nmN#{||pSKK-*_tTtcy(yycazrLt_$G>e=>TSw} z*V+{gSAmmX6z>JelkvlqrpE|;H7eY35pSF9PmwYYU>ZrwRXl;jy;*5iGh@8_dZ~sq zC?S(;DSXM0SyB>u7~(1v2WMfdiThlPFveLMFId^|x5r{|YhP}jXh}e~F^YTUk@BW^h%Ditybo`o_aV6+D|_g*dVbPlXuV~68;!~B zMZ`+#e=UV)=@_fWN|F(QF1UI>0&H=eLuFjWH7Y>}GBMgh( zM5@?rCpalJk@d^60JT3rak=KlOB+3ZL*sy}Ui9Rg`^1AD8GZRRaj{TIrUv`0vW$2G zku7GnA&w!Z0jsk<)#jk?>&gj#V?}L=v!e#AA)d7-Z=!gB9Bz$Vog>(C)TJ;o9I-Ab zn2Pih>x(?6W@`PqtBxx@Q14TxGlI6b7bX3Z5~tg?l4Hle&q_<_bg?dek`Xjo4MwjWp=|$LsTOZ zLcSsiZAkHv_6GmeTgi81E>`UU%D#j#%q7`#=G zN3Q^?Azy%r6m!re&P#4I<0om(ZhjqQ*~rYOuTUoD;U#LVRtGQ;K_U`^LSpdpnGJL( zRaA%AFB8PexfP=OVa^^}Wgr;Uui}T(TDw%LcTwG8Wn{ardJJhlo#V`V42Qy#iRhYm z@$yVx6quwjtM+|^rN&(M$$?!oYKx+YdM%Rx6HgvSSf+kVqVHEUX12GKd<8Jd$OtS? zdlP+`1+kd#EvOVxv**0>!Ns1euX8C3ccwEa39n4BKm#&*GpE4BS!jTjDq6B|aM??# zMp%QrhP)ipDf{_?QPA!{k=>Ct@jr>BY z55nY|dU4dXP&ubo1U0!?tSif_(cCNM9tjhD!7S053^a5wo`LTrTaDT>Tn`#Fs99Zs zn!4UumA+`E!S<@PHx3w+clGIM56!$adj9mSq~LW@d+T$}no)t(CddPsqZT)wVxHDn)+Od3qWjSRl}k?GYfv)un(ui1VI~VahrGd~-0-6@9$Wh5Y72u$axI&9bQ6#M z>)>rU@9Jxo%eoP(cvU#RMgf~Km)lR6i3i`-$w}cGKdp(#T%@KwCJEyq{kVrwd0p>ulYGw;S{e*Q<#cz}O<>c9Gne`~^deJh^U2Da41 z+I%>~n%b{?>DTK&5&X?({+%se5nuL{c`&1vTJHV~7#4%5X6tS=v-3+fJk;1*ogmoZfm?tRQru@gCCEYlbeo2-)P^x72f_`*#weeQ0sWG1cEONjMj2PGLfA->wkK)OF1`ysK7 zqcF3{!aa2eZ6>gb9^6tTXUT-}lM`&`j8>)T}KLa~m1!wXCE;_?8+wAIVeC9ll zBa&aBh}kRth#<`H%HUUuVD%bdeH<1=c=z#uj``9iHb1t?C%p5w+*H9Zf<453`I$6k zuk}zoTXkhlB&P*%MrP+8q-urXOH~t3Rua5QtCh_HEGddtjl8IAD~DAd{HXw&u6V%sBAL{{xeub->kV(L zk&fh-cuY>LPe86bcYa2bgQ%fKtAI&u#+!&p%whKShwYT2i8^6sF+K{O1XPx=IoAPu`lao_`U5bNq;7hp1{nbXA3 zA=Zyw;H(XViZKi$t9(Q+>wtl;N0r>==1JBS>*8ZZmY}p(d}FhkEOHt?s^& zRb%&=GctV!_u$h%`$O^lf8meEXaCfX$G7}}&z=A8exLcdr$4;1@=Jf^@7CXl5|^#s zo}c$BC)VF=iO$n8)7<~?<^MkX!Ib}KyX@88`}uz?<)h0J?ssPuJaO)0yxuYgFC*4t8V{GurwLE&rFeY{5{uW1@w{N(i7 znZ657R^aiUw+Eq81D;R1_aF<>nfxlu(taKk(~9}+!y;Asv*s=^i*?d_FsVKFeGeoJT@cG%mrFkGEr@K}l%~RYond}t$1r)OBcxm&j4`mHQ%Pu zb>6o%BKZ|{9iRkd`2*C7Adb4s7`Tt#vy4jC!W|^#r>=@-n*YIM;Dt@1IBQ%Uk{5T>rFL%Indj!WE2`0y)4VEbx}AbyayHE*>SoT`p~$>`>_ztL z?jp@TUg{CRkJ-T zO$)7mRTZMd9Qw2FE-;IoNmn4|`9K}(4<<#N6A51iZ+JLA{Mt$l{j5jlJ(>5aLhZU18!sM~$Nb)soN0C`Hk#g?@{iN*%O^#?_9d}O(O>C zits@y%a{zA_HB9P|*sNNuaU(Uk8mbg)y;v$O%hDwHC}jQ(8_Ued%wTHcNg4*1zn|9;*Ec29AtOyj zfSYjuC{iD$xbedBU4VdrhB-QSfZiRcm{0rBuin z1!vl0mr|?OPK_e12;aqs$&Ziivd0#(k715Te(gD*-Scsh8UtR(aUqmmC>D=%$!q=^ z$M4LQ=Z3udzKP-VTJJ=Z4cF{vM9ZzmO2K5oJQ1Po6A$MQ)tSJj1imvw`~=2@E_o7k+JUQQEh^4eg% zwrh;9w&w>=pR4v&u{Y}5W)p92nwE!@d!f-s-uw8I>_;B`qv)u9^{@WjdM{nhwzV|8 zL!6nxAnnJ8wS(B?X>yuGI&F5;53rv5A=XFvA=~%=yMH3y`OLdjqfV<}oBYoQ|JmQ^ zA7J$^dOcS&_RB$=bLY15hSC;v^vZcJ_#dhJpWs`+?5q!4>nc*oYC}l@T2U-)T5*CZ z0tQgTFbIhP8N?=KPl7T@74|gBC{-bokl;*Wr<{qYN-{B2WfG_i#SDrHsR}6^JOGne zl`2UFl|c=PRG1c`74^yI^X$Fev(NdS@4ffe>PF(dd+qhCXFY4}{qFOg@1N86{#uNA zD1}c4y_O)8%LFi)Ib)~{`2eR8*jKEV{~S|)HX}B~rTUINr5n4xGoDmLPB*77Zd0b$ z?BEJx6YJlY1sc10%vqhp1O0p~s5slhFd(siQh6c>Lqw?zK;Y&$Zbo@61(9k6k-Ei{wu4>?^lL*$34L@#+0ae{dtCrn|YT zW;>E-vH|=aWNJe+AY~dbOMOs*4L3Xdn@5k(KC+xU>r# z2_=TwU~9$I{HbNl>jvN5#aQnH;^Oiz!*n<3apc?{sUv!;Kawm)WMf>_*6#IcE@>_C z25Nv!4X40N(!IeOuZ=hTZ^_BskU0F`G{~$Yf)vXu%*#%&KKKMMCO@8%)J}{f!?R35}dvFbAx2 z3m0bsGwy1T;}*1{n*_EZ0Aq2B@fCpLFc;iU7Y7}#v_x{Y(Hka@{h>8{IEB^uiaRA_z!GAEVo{@rS9@f#IpCSeezy&bM#S> z7`?-|owU5Cj4;ONTr+9bUhk1aWj(TZTX!d71FR~LW{@kUkSxIolS zGvhHen(_FlksF)b#LxcBpZKnm)$Ytfa$_*wc)nVSF>h2(38ATFLr6Z_cYNu)>brl( z_txiJ{_U%;fAwpZ)TJiy;UAneuVB5sj_`o5_vMFDfA7!!^+R`ue%SVvKlO+2A7cHv zzgd6p&pc|s3b!h5)%(wSDN!HJWnDc(5c0Zh=$>%kcu0b)jectzmzHNRM|-imMeQCoSp@z^TpYQQm~ zvFX8Wc%zBd*7VxW%v*9f(x@MPy-dz?))Jste&)5V^D<|15s(bm#x-ZQ*nOl{< zyNfYLR9;I5Z?J9c)C`5}%Xz1&2S{SZxMAP%s(RP<(o7NF*J_a!4b%d)PIOl!=l;99 z7)RC$4a#S)@s3RiUz+&`twg1_XilKGB6FiAIFqU{^>~?-*K1^TZr0j2btciImvztB zxXSW6F5|0`GBGaQ57`09GW-R<@K?e;SuF9uOH{dzP0v($L8OdHjV3*2+ri_J(#m=L z65HjU$u4}=A?xn@i*KwHO1BaVWhPJa!13#~GqLEIeZRR*TCs-SbCGZMG`dgwx4j=~ z+9*?{ZRAearn6VVIxlmZ3lwACkMWX17-$gP04QMI+kV|M)P_SL%vJ(EGEJS56C2la zhcs3t!0U2j^>mS7Jdr!}?l#2Hg}I+sy5c7LFevafby>Z~afweMx~T=8nFrhyn|D`w zlg+d+>;i?%Q9h48KQ|BFDES*XtLpOgMX%c~SZ#KIGkzy$3dI@(%5cRdDp!IakL!Ux zQV}#+>kHrIT{1Cl#5cTLg9}@}a@~9pHmB}xx9ax&f8&2EpaSdzn-8DFsb-=+Ty{vT zZ~Zp%vzt}MYhvmKn;Zey-k_?~W`Z(NRVjoUKWkXOB}-E_W!hTxni>t7ABP`4(F0?C-Gj=ye4N(Y)UN04aHfjnX6iJJzQqB2XY4|f8w1!ovk&w@nUUC z$D2Q~ntw{RpCV3TJ)`HcZfoLGcXIMgwO(F4{+W|s)^Xjg2{ardq+NAGFbrejIU|V^ zo0I!z$-KYk{l4O!HCOBbXb?W^xHn_^P2PA+POGQGGjAhXPfD+;*P@XaVbzB_thBVg zxb({iJ~7mtlIQr$%^UjeC;MF0J8|-2`7vW;adP4Wm7A&0yT0?ceb46!QT@VS{wcmN zv-`aa6oa=+;$F*wVc?A$50Q+R@H59h_=%sazy0t2mHO3R`udxS>qD&Hy8b5Csr^Ov z=su^&y=W7&`|Kt$Tf6yi7=U%L&)(`3Q80bdfGH0gUS9JX7vVXmy7n@i&U|oc*|maT zsu;;#(;MQ-Jb;nei-b<2JCXB>l=bW^RGVC;l2G?i%U)5WzUXGr{^D6hTraOJe~~j| z5B+H`q*6#2q6f3XNjzv0Y(@4T;*vi`90x>Xm*N>9$m?!TFe9P0qYY{$(Iv*odz|%Y|*SP-b~3aUl3ydfiKB3Fn&&j`^37(5vC)mLC&ORq zVz1}U>-nSZ?nZQr?+@aHOpjyBeJPT#EF6(l#=w=AFu-ou zjG?>MA78H~>3QPzSQY8FAV)R;i3QZx_1jzs5>G=Kv$DIbDDfRsL6?{7-=8BHcXlIB z-G~j{G? z6UI&)f=R6gjDBHf)#J@>^MPV~sF$?aO#W%Yfe7EgGN20yW0zX72J@vq-x+k-cHU8`B5QtP?YX zZQk&H-OBq9tPWRYzFeWoyjsFNtkMX#?w*JDhUI}MYI@avPh8KWd3EZGmE((xgxK5| zZ0d}~W9lv}ppPy_pZIUlbhNhfxfQW?ZpT&S3bEdDy}Vcxk0Ap(-z)*Y8s_Dn{Y?@Z z9{6e~)0F8?jhwOGoFv9|SkW6jBpJyumR_A^gVbJ_2TdsuuDc*eYL zz_-I1O}+lD;-4Mn`2lw4&z$!-2Qpq=jAYIMKe_Sd#nVqLXFNukRLp!VQTZiey-tW2 ziCxRIv4nlBQ3%JkU$d)rp)z$@aZL~4w_vbpx{Tl5<1!_i9VJBPrn7lcV$C?agmZ)w zY)kFNpK!nYGrw5>??3*3slW5T{lC@E|An8dul=pBzO3+{<(c#RwCpj;-aEOmt7V~g zH2AKs`pv)p2N(T``5*qZpRJ$%U;d?X?PsYUV*Shi-hc1<+hhJWuYUSZ{-yfQ_TR>G zC)T(-O}zHtH_R1f<6UtzmuII<{83La_j!Hu@paIw88613TRz7~UXOLyM=D#ge(QwGoHt2d&rb8!2st*IoD#xOzw6zrI_f%2Xp@GO$W(ES2fjagQmU_D z$hRIDTsVl}Cn} zMA6gD7+2X>ajo})X;Ydn(cG69(c?&xCK2xx;YJ^KquaF;TC}K>k;P7G@U!=R(qP?> zPulF=?P_$o-lpcJMN!*L#3-*E2F()V70YXe@JbAuTCrw4rYx@&wcTBXb#;}d!<(NC zbwgTIkC!x3$aP=c&Bs$<7VM^`)^(QJ_n!Gij-tEM#^(kI?i6;=nnPr2X1mx`U+af_ z*hasY0vXl5Zp0gI*W2p`Ki1w%aYDDN_7;Zqwzp2Z1P3pienl7K(>S8Aso#mgdQI9j zHL)h|8HtxomW*(WF!_lSFrBd)4cak%$16=5;(jl@zKTs=H=aNi6D%5O0RR9H07*na zRBNdub`Uc}F>gM1FR4!Nk30G(_GFIJLw{ueY$q#2uP$&EhIy6Lx{_E>WeVgJaYx2v zeeN{-rj2QMabPA0OSg*_tj0E`A`{4CiSZ6r)3FN$T0+Ygc%CiB7*(@a%AB;~8V@{& zG-lbgHv(~`A!izWSGSg+dO19=F=Ef8lAp{LymT!1!0#G=ai&-8kOR1@ro^0PMz4Wc zy1KjkQ_ST>?AN92Epe^)KYVxB>VGStY3;_8m^83-nphjG?u^Bn`NwZqubc-)8WXz9as?2E*VhHoL24340yT!AUx`_uj&D8cJ@OgeA z<>u_WjYxWbx)`DzPxjhC^54W{%d_m>_+qcE_+@1B_~C8gz3Yc7s*z;3;kj>P=!_Ff ztXO5CbfMx}toJym$=>7Jid-DEybI<$*+@6)Sd!63LkL~Vd_O`s?4yZSqadO0i)zB; z0Tu_t5mu4_#$9iKsjaz)r*5b>{#Nx+Q(V+B0AFaFC1TA6w%2M1NsN_qtH3fpTNTS` zCsu#95NqnHI)C(eP0Fj8G+f4sCG4oz%#9g;hP^63%f4W{v-H=3o0G79{4<_-&gs;d zd$2ajB*^0y;B?%76vXH26`TZOa*xGuug2(K<^EaXa`R6cKDnHS)04)~H-cKdhjw9- zo{zkqFkfTDYP4_=7oIhGKNS%$$#;cRt0kza;M!O7yFgVTEicQ)i#6kKzp>K8#$1tI z$$21#NOUEq8BZ>WU)%JJul-8-VbS0Fv;R^3%>U{y1wVJ353hXPV#OY}Xx?xI*H~Rw zUueJ&{F}eG{>4A>hw8ud$A8~YAN9ZdQ@_B6Sby>5hgkme$A9_X`&a9GfAlN#xYaNJ z^e@ymzIOi`TREn+*=qh6=fOg~X;_$*D38|EXW5+puD!nEzf;_sAGz`1or;s6y@hbP z)}n$T#jcn8*sRuudQ3RI2~&9+;@K-mL1dq`+*TfrCfPfl{>05chFX;xQHC zYjFbp=kS(in&0bujY7fc$L{yO&zbT%&(>J6b(&a%H^dRGIc327;(_;`y1E>$Q(QOp zCZFxPsT5U7rv!QBVm~1gWU_B`)Lkh6Bl-IzGb=9EWvr(ZV)a%6Qr#Ehs25*c^SF%0_#bqxI zm@zneh2f( zCh;UCHDi2QiZQ~+E$m31^d76*oio;UnuPb5NO}S=snDOAeBIX4tHSq~HAk!R&23gI zuE|BqT2MKm;f*Uy<$9cU!2?NWX%FaZ0=@QDWhz*%xb)gU>+BH`@9o5R^4%tS^&sEj zc)51Hu~1K%Y;A4jGN&bAiVpv3+;extN=uqO0Zoa4CGPo4bb91snt>S|UMTwS@mY0Y3$t0`+R$~tqbzZ_)rc!?`dF!gH1 z(Fw>sk6r#uzZcu(ED>wb16<0VEfVi(w)X5z%UL6?vU?qu@oA=5M2DHF)W~V|&b5@U zlSiF0?Gzf1$scmVf11|0*R|q_*Ynm%hy#wPsnaIsEf`1A>(TUk2(XaG#BI=3y36Y6 zve{7L(GT~}viDxx|9G+HL#v5Tlhb_P$p;I@I3RmzQt_L^tyjXtVe-*AX%ggxS;ttD z(C;pW$SN`0Fcxo7B|lckap)pF>_dxnCo8<+FwD z{o73^C-ws_bDr;dV_7+-LNnHnJ;q=DW51_<%fI%+N&eP9`aA0@f9elk|F41}XFAI` zmaqTZ*XpPLpv}gY{B+Jj8AY*zCX|Sz-P^c_daIh ztfdJY){^Y%%uM$oCGWbh zx$})no_pzT(6Zuc48oD;z);XI%N8T9{O>Yu5?f;>ALd&s?NOlG*KK=U%deX z6}&mMT31y!Gl9>hrtG>U0`HOZfza3eGUqpA{rX6SoDvC42t$397^)sGS()+RTQQZN zAux67>eWTFhSzW}1_D{#zE8tzGYOb%payu2iO(E3GzZk(?91n{;=8!unTegBEtQLm z7^q$YuCX-_oSDt1^TG|D*CvWZ3%8-@1+UbO7rUOIg;ik5I~|=@7@1I;AeiagE?tVP zr8!5melM&lG17XxWNy{`v7nQ@Wxh|w+GY^hE3e_E;*gLE{M6L0*Tvjruda0k??4x$ zZwZ#9N|9W#uTbKtkUXY zny(X!@oZ}jsCbWIYwjR(EA6VQrbzjEEgso`hnq!fZ0<6&7LyVQ%bbB;6Th@wboRV3 z1?-9WqvKPOy~65oh~3ut3>zyNFV?Kr#LN1+JHc9dG}m?qC1vKPulwZn<-ygb$+=oo~Jnd-B7pFaNRMwWH;}^dsNT zhgg4PeTX%C(A!F{Z2PZ&b$y8S%RloAvTy9mKlXd}hgkJyce{nRTDgWu@I@y!=OI|8 z*TkBKr;p7d=!qwK_N1;cxoe|W?<;d@@8CtwC8hOuVUTnHlj(_l-P)5Iq7i)2;r(mW zHN9-5Z{iv6;mKeAy7!9#SZ!C}^B`qOvYGCJr*I|EFEFzzZQ@72Z|i!Ss7_Lb2-L*_ES<(AhHuqS$UQ8)qx`gy2d{92elSCRA z&(rqKJwmOn@P^Etk=Zm@H)0q-7DeqAxDbN8?6+v z><)xA7#$;&-0rnv=EV13`Cu4R3$*4kVtctMprtBfObj1uGRHu#?qGl@L-I_f7b4kk z0EQ41XgvvsES!@XZ#+K4(hB9{nLbRTkZUdIr*Vm%_#+(2vp*y`s)@HQD~bV(WcA(N ze?oRP7%!zjujS?iAG5RIW4a?Zec6Zm=Ivkl^4j|qYUwU#ph0xA*RzMbhK_Vv`OI>2 zvdc_pM9Av?+CVVma4A`M&2p8F6YnPFHQabPjQu@6kmTL3Jn;UsoV}>a>iT77BVXY) z%TI9T#V%n^thc3KmtEdiZ%#ATYhwFq?r-^(@hn$tW+~0|{wp!viE_˓_k1)N{U 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ⅈS_tqT(SM%9+RXS3F-fEK&kK$|!W=kX(qi3N4E z8n+IO6hjT9EI&8V-i_zqzq*!xpK4UO>5AXJ`mT5ArO8^EwIQ`u5UyG0*a!PZ*6T#z z3E3#BNJ!eqlh=24pTXp3vHr$N3n+6M#Su{qsN}xepV;4at5uvH-}a&3k2mTi(B@sj z+gLZTM68%&TWl^N%$We3AVNBG3KkXEPzZLU|AfZ4Ni9`}rAWDIder((ejNyVGw^GW zbxCV{>jxi+@BGyd#OLZ|)_3X!7@q4DUS56v3vPE>ef}+~-t)u`$J~~Ej00!?zzP#$ zMA(5$2ZJTh2(+}%L^LKxA_bv9mI$Kf}(MqCrf)HhR#IrW3ArfCU*|+b`Ts(Q zo=cp8$fgH4#D<0$lke*(-un}QZFw}pu`;a3JjQWsGYeLsH3S<2 zjeuwWjPV^M!&B#xzdl>rP(sbcIF|$0vlWs06Kf-~j4V}`e&C(*BE^t`P{&%_u2X4p zkS8jWdwJr?5f8)K5MLvBNc0KWxh5l7&xi+SG8Qr4Q!ttGNkW3J%cPt>NAZHXsof1D zQh!23M+>W`JBkiN6@n|kq_%Ee+^7@* zh-!w!lzDRO7{V+b!ev+j^A^SE=m>e!5+_>@HWf4Aq^N_L8W1TaK~2(I?6b>Mta?ai z0uqX9WQxKyzHC*TwL#qtF`O^yvU-? zi~qCF3@@k3hg;*;CLfQ1dv1w7Uvwsm$d#K{k(oA8nFE{A(>$Ju%#3VqXw<@R0qI&7 zNPTQlSkQT!!FS%Q_;fbw;VAAB-(_Utk>vxND-T{SoLUU9a|RU>?%m}iW~ zxE-g(W_e5tMr31NNpxGTt0slm6oc%}K^(qKI$F$pCeX9UeT9B?7qvQyc@XTuuj>?_ z;-Op1bcX}Lqpw>ifUJoa$VvztZBgfRZbL2CC)!!PHtbo>DN&b(KmwdB!y4lHgtd^- z`d9{A)$7q9&?|>+fmDRLgP=wIfhYK{5AxerUXRzMfrHn&>hKIajO7kmPlQ74(9mZh zc!k~xqtdk{ovr6Gsv)ga=#;@S6p0P8jQU`?*8cg=f9i^#Y~aoB+W+-A{fEwR-mEku zlW!umOZJv!oRik>gPN)zWn3wif{YW=f>at%;&|AzUH3zna{b`@}qz3Me+TA^o8-=f9Uy& zxien<9M+`Fltk}ZfX-avfvX43gdBc@BW+s)i{yH19kSH%A%eT!92%*jAcQlA;acQc ztC+A2n?WN6Ppz*w_*Fz*zV%XY_OE-%UGeRo{=9hTRd>hF{i*vT_gfx%^*!;>AH6%i z>E+Lf*S+MjVsDSjPq{_cs;YQP1!LXfuswH{VO-E-+p}(*S+Ej3q^uatMFL{oVqCnj+EH;=g!=#jKf3ORLZ?O@hrYe+O3G4q z9E(J-5tAAklPL4PJ8p^BK5%Dz(<`4F-~C7KjvxE%d*kOn_W{d~|B3tJ2Ve6dozp$> zO|N)f{Moyo5wEyQpYu$ID1R&0C^(`x)kx{6-Y0QjU&pZ~IK=Vd@FCi0WM&BgE!wBL ztxWkNg~`71=@F$sm91DXVjfCDU6q6mw5Y-wv8BTC0_;Pox}3dcbY?{nb6NM*gU`D? zzT&0NiogEK=fxXzFFy3(J@Ligs<84ywhXBO%3wS#DnZ)n#9oc70Hz?m7Er-( zg>(dR`s<-IF_SN~!m!Ba1!Q#FP&47kP{W4^ngde-yEPcWH)|(A5Qq?9(ZKrfc`XJJ zaLCM^i&Z0N6h@yT3UkTX-JEm`ag~8l*e&Uxxj>l7m|NX7&Fw8%s&zazc!@h+@?5>V z`oehX;janey{O##rGF^=66>M`&dtknJvdUQl9|9sHak<#?>Gj*-Dfw?s70BC%p%G? zQ~5@*j#MWW0*wBs6Bds2!siXmJbrvLH)Hz=5Ewk4T+<^oSY0T6S}3YJ{776WI0Rz$ zH3#1^`{7Q-z+ZzLOJUD)EIsU@Y69X5O?xk*9?S|TTzsF$#&yLhwqS>L;#qt1TnzaO zdQYYjy77Z+X39g%?Z|9ZG`RI0U}vWgmQz`odU2J`dhnk(-WYz`2)kPzo9RAcl2O z;9>;YEFN-R?Dlsy9YQ~hKMbI6a zdkn+#o50!&zcKmcAAe_j{~vi_{Kn_qA3va%G2i$Ho*iF&?=#}h-2HU@@cfjx|BhQN zuej?ee#rp;jep=d@dJ99L(bp&gU|KLtjr8`3$uLV%bu-zFO=MU5OK==0lf_S0nJw; z&bah9Xbo4o=-fZd@#T8i#!DsEf`Ciz@%kQmm0mEda<^YVRop%CjW2($N-UvOOIK(8 zpa=DGjygZ9msPx^;sw=f?|Y{A-{*mT@VU1KKN$1!iWug5$De*6eo!yAzF6@O=7u1z~2!06CD^Hlxd{~WL7onPo+l9e`82>dKe(l7g2P z4?XzeDAD<8J$vrOTI-7^zwm2H{>(kk=u)LqN)z)^^J_l&S$;{v%aS*I#tZy1h4bKA zaxWp^*F5hIpA#=mzDF;({)Jv@@nVIX2X%HT7rsWinb4XcLi2#7g4P<0T#^$m351ZO zq@SZ7)cQ+mzlCd059vkEL!5zPc)5e`A>r0M7d}nR5t58l<*l=?*XkO7lU^Ksw_XbU z*q^vpFN_|DAJe|5_f2|{$MwGaluJRXO8Dbc+q3rPm`d`?H*leb7Nu~;kPaH|x9qj@xv<)#qH_n_L_2%fGI5 z^HPy}^T$5>#eT6!ZB3||=3Z;rcvf=C-*NJ>S#L0cGw?aD&vRW1bDTfC^bbn^pfu0@ zKS4|2c-h{SIUhtbxc5q0LpDYuaH$hafwtMpefkXho;qc8ebHd-K|A-N^)PP8Z=JK*^ z&lAdN&VvkfyBXln+aBbNi2Xvtdy30%xo#Muuw3w+xS zmTmv{AwE~ozAEs?J3OZhwY55Ex}(KeAzdDVchym z{fC9ku|x0u*S{XW@!dZWzxY@GY5dgd{z3fQSAJjo^8fPYc-Nc$?Jn+U+F$hG64K@Y;Jrsf-Zo7zq3;?Lq@ zPK=!}Yt~>PeyoGDu)rbkBq7*W7Rp^If@)Xt+t)$s2L*GtIARRVp$9couftmIF4Un5)>715qf86-@cVYpMtZoarg% zul&@zHC|u8Uq3{U!Te*!pjO#1csKD1D!|U&{iCq^^a7L@PyBY(H|k~4gU@}M*z50? zZ@U!y0Lx3EpZOCnjxT!gGdPW4aj(?p!GpZuu{=#bP$GKaWBbbbmHgI8(AWfemW(>) zC0;pRs%`UJx$YeI$}xw}O6A!L|JO%eK=H#1v2b!-cPIA^pZ@&#=YRa(__j}bUU2=G zhu?PU-zJrlfe`nk`2Krb0zq?d%3HP`s7_KLmH&f34? zrI%Iv#qsmH4&VOiFHrsQqSbd1GiY(BGolr1jou6znI5+9{f!R<*SYSyI@?qDLG2O2 zH|y{Dth?9yfT<~u)~u)qE$fm*J&tYT7C+(m;mGA>*%#==Gjk!#i-3;;k2KGH@PGft z2O~4%S3dBFbOgRR274BK2wZD0zokh%)`nze@CVG9ZnzjmzW-nk;1)P8mH8Aaz-9P~ zmt2kq`PwwjcZcEd%`$VsZ+Y({p#??MAVu*QZD15)7NE(s52s)nh_farje3MRN{S#u zify4R@PPJ#TTXH9TQvnZ7_`Y1$m$AkNZWF){XBjRI3JKIFGnL4K7^=dmxs;9M2g{V zC^U1$FrHc~{82i4j?Z}6H~+bFUtYaeFRplD^;2K|58|!=^AE>w{o|jF_x`J2k9WQK z-^M%s?pxyLUjKdZul|GYFn^q_ZC+ye-^6O-I`lH#0l6MpuV0K0RG*hzSJ$1f34MkT zFCjL?p{3|ztLose!`R5PlS1rAmDKVhSUeJHaE)c!2iJJ^!8ri3#blU1mFIJdt&!&7 z@c;Z&cQIMH1)M?n&yd$aTx0&Ju;$P#5dkCMUWIIR-xxJ$Tk^rR-QnistG?aJjnFMs zCF;01$T^vU$jpJ^;wCrdW);-;hV($~roh3(si?Gv5!S{<1`3deUJGGBt^~%A^L)+g zG)a^2xqy(kd9f5zY8@56;*)>?iw5*3|kxXt>B82C4rws~137V9irBiwc!`Z^VRwUJtg;)W8cVzX`XFtndVG$uq?-S>5B zOZG8kgy?!O2hZ;xe^cbz;WjZ@3N= ziHyt)4N(U!*f-I5xLyfu?36#J~^*R=JTrdwPu>?_^GVOXsb|6uT>R$I&;P0W z<7+=zFP&Mp){H^~eGO|BSbK3y?^iDFFMWsUdr9UEb>?L9)@v~nvY1z@=362Owm_x^ zB>V&XL;S|XgD>)n5IJsI=cNrVvcBmR&y5Fe!q=D7`b$Dc_mfVNGlmN_u++sn1$1t_ zVC1C@zooHj@`de_JnnenBs3_;(PQk|<4!S_K|SF_{^eDO4Tgd#TKuG%k8} zZt=^gcmCN=@JmcS6Rx#5YhsDL53qA_7--Oj?3d0+-I@X-UZWRKgTMB- ze>`|`^U-rlw3mGKA3rcxHggnjO?2%a z)FP(uLsN>*h)fN!wahGz*dd%sZXp3~flf0q#<=+{FHn*kgjDn?!H3{Ovr#lQatgy) zM!-O^)Gc4|+ZMVRt&FQq4Gj5H$ZarPCA|BiEhac|0KDb{4_Y5mQ4s@7TRGr4W4g?@E?sJZIvq4B48t40uKK;4z#rm(I2iKFv{GWdDJ?l5%-u5^n zj%!<_JcBoP+^pPnFaSj;c9E?A;?; zEcwty$~ot?_t$?I$xKQ@9_j!95CBO;K~x=KuQaq1n?b{cW}oOYfd zm|jBL_>lJbUd9R88t06$@uN>jyU?8mCR7?~UW2GQMuUhxI!wn#1UN=ZTjfb{+Z`g~ zOebO%0Cg@|i zw$VsWG2y;p+GQ=jx*?wt`>n)@n}+C;lsAKCoJX|;OO#3x145P&36?B~26dswzRw$H zP8O|Md0;Y!p%sdnI)S~L*m=o7Lam|%uGG&B!hv+PE^>-%Uum|4l% zpL}1x5ZD$9;vC3q4MsQ{^!Y+I-h*Dv2E<&WXc3%v_?%_vqEMx{aKkn@46l0DQ{spJ z@bjOvzj?)Szxl22tN-)h`1JL?$2R5UIS=i7-Jf~Bsa+z|hTNqyGO8`57=axpe@X%y zUgt*G6<5%bP0F_jk zT0rNC({zC}wQ1e&)1;SgyCvT6=`ZlVZFTv!@xX7vj|sZ*c{2FJ;##vMq-}gRBLCG( zo)zEoNA8XrU+cB6;%h(UIsPkc%*kHnOzae~exB)~XQs|Uq&mFR4Rz*y!)H8S_rh~; z&c0c+R+JLDmaFxaweSQ$D2CrS`ti@X-+xVzxF>^fE%>X2_v+|z9&%L8o$*)kUAhnsN>jywYN=|kh67|*1OXt9fKoAn{oTgHG7Vj$mUwZRc1tUL2CyZ2Qu@VS#zy-6-Xpu zb;@W?uI9~?1q2aZ+8Xk&t5omFRNxbsu* zIU6>Z7k}wz#%KMrFOSdqf38nH?eD!dZhgk-|IqjR&)Z&L<+T3V3l}$0A3&)0;&q5&0Qhc_LeET{MyD_md#zvO7gt}?M99;~IV6zr9Hi9j! z4qJjDUiXh}LF-dP`$)l$-I&`G?kMPp!F?wV*|Qh3*yvo#HiXuN zlI^{KwPvyUe8+%An>jf*-gbbIw$IfBAst}sK@4+Axi@EH45v6f^3W2px$m_l$BVM= z;b=F1Mib~F29p~b6WxNn3G8M?u%4i?xXIZNjSv!%{-Yg5wc$avl;f)76Z!97vAFsT zEEbK$y%gG8tgSsw`nXr`DUcgUFa^*XdtJ!So@!)P-CALIImN`u#&2DH-M@EN{NvAf zUfh5CttVri3?zSb@GF1rVLi*bo3u~XG`1=Zf-jIA9IBcCt7f@(* zcu=37u);J}7gpDNWnOsnG+Kw((^X8G>Dg0P&r6gm9kz%GOSml_Yv?Sj3|>Zou1DsV zUNzsA%}j7!Pt%aX{JT!y@G^cgK*mR9*G72u*dXf{2F@o6eZ9gDL-(KjLGyYmU0*yu z@PGFoeqnsceb4m0!d_aaq}`(IGtl7A59y9W%e*OF$GO&FZiI&@*A;NmVza_7>*W>y z!18PFe`XOMRU><0!Haj78dGMmAVkCk`ztP={$b>T<*qr6mpS~S=nv=z{7zaLOd5`R z37wgdnUnWokl&7b?frLNEcsN{v?SJP88>N0@&!XLt)AtVc2C6fduquucmLCGiywUO z#o>E_^F>&{mLA|W7(xb$O$v7BCC_*K%IUve)G_C2=KuE3c!AEzeGOv@B!jPQdtU`* zDUJNY@s}_7Vw#t4|LZTlM^&iDjELq$=_}})e(OUw^jlb8^U2Rr6_wYRnUR?ok`$KW ztfl1UV+@5A<q$&+7%*hE!3Zui0(K%`6+B22 z9f6*C{BY=#(oT{PY}R@V#%HbpfhIJ-Au|U?6^@E@7#tO4P zMpE+?k5x!lJ*vSW@Gz~xvnWP=W}f$_w--t?|5)KWKkY^F)bW2gfnf<~y{dWT06J_H|PJbc(da~J>!umlqk ztn+H4HL;ByqyY{QbjRN|8XHGza0`9}9~zl)$Hfi4z@jeF^>Tpbup3LOSHJ+cO$>WH zVWy5lhmdo`ZIhFsF92r>!Q$oC?&#LyQ_^N@)j3l}VK=S&ff$nwwXdC8LGOiiw>JkU z?quqSxT@-8beCO|AXj66GeLtttNLrBHW8Ll?%FHF)<$j-s^GJeHqp-3CeI8VJzrC2 zc-V)Zpr*9R+eKUN%bc|MD}*N0@%`QGW@%{n#DDUO#{$knSq86!9?L~FC+z7bYuuQ^=_Q6F`k-<04V zz&|cLcLY0)$P~*n6F0f3tV^q`U|1j|e!4s-EbBlrczNX?&Xx1g*x605+k2F;aqLmV zM`7p1#owEL`)l2kt|i-HXK)rcUt3tbPrUR>Sf6i14Jlz|EH?%Coae8#{eR@WX|QEi zb?3QOA}K{`NR6NYD`mu7P6-UyIE+NKtHIzZaCL;CJHp^-yRfUP5cUUy%Qo=IvZ-j} z57h`)6}YP-kgFqX+|dQNj3+1~;R#G(BpZa0FqxoPLYXO%LIZjF|66;nbM`s+-uLeC zQYpDl?zPu{{ny%S4`+Dq?sxCaU%TQwSx?-;x!^mwUU%Uh{VZEzoJ?>M_O=`Eu>)&- z)SNVY?;0Ox@4jLaYt~&m zKp_#3AT=b|tsfUu748YI7zKty(ng2i3^1vZrx7?M!bD>C*My81h_oRQqzc@MsF5Fg z8&Ox$%_I#bEpdYpY$S2&j7jYp0}|(+1|gkTK&Q$j)6(+u{7rmypLE7<+xw!6?eRY7 z(={7+uU)6c6jlL+R2-qI+;y+(#*m6-H-G|}y;N|u3Fb(W&)AXkco^9sx#<+KmXsqn z>4k-OqzR~VZkRc+Z3CtwbcTXcrd(@-r)}YoY>!SGjlj8P>oSVWe+L%16%uC-jU)#~ zuuG0|Phh9OXH05wDp( z_@Exxlfg58q^Ii~ldER$EDg>6rAajsrRC(1{zkYSty8$rg2V&m$+zT~_o{JXBK z9zTEcAv^HUV==Q*6^FZDtws^t`^5+QZ|Rf$!q!EkdZ)o6Ic!gkfBqoaj# z7mtWF3qvkBI8Pu%%B`OzE7mim7HZHAjyzk zMk!aGd#XKoH?Nojlai=lX|ZGWn8P^=&y%*|V>*}D{|zxG!Tb`NX3UFr=5Ctw*k>CZ zdHs+Rj7IvT80xdwM7X_Y|9Rz|C53zv*36>}JEmuYUDzjg&Bh}CqhHP{w4PP&9y4Xm zWrp>+CBoecb^PizGiz{qrq>cVc()fH(+lGXUhxj554_}pa=$FO#_gG4Q)H7bb${0j z&WZ2CVij2`*A)=Y5)6q;42}gheui~+^<{hQ>SwL@9f^Et`;XKwZD+cOQH7`j75e1L zyYAo-V}7F6Dz9Z@P%TLveF*C^x9(V-EsD;>M+poWR;j9ar8dM0v0nX=eD_rhW||{9 zW^v`HSg4f21~Gm#f**~5r!tpkKIv$6^2xQy@U?c2(=o3RLForC5Sk+C1|w-#-DUzK z)m5*|w9IIZ-vim?@M=#rG#o7xqZbIFNE5#2+2<|@KECv6&puykpgTqvhkFjn%^ex~ z=Dv2BXhhJ^?)qI7LlXX~!HCQ)%Q7(w6KvObD}VTO0z#_?%|o?H5`s~%5e&s^wLoTY z2%PBvOU;ydd~)b)pAF%V;8OQ8lUx%5-240utE|3QR|6i#Aw9=~A`&w3AMR7fggHzStlxQmaR4D+4zoIO?)A zhuuu(<rEw&qbpSO3OKnpa7s7Zl6r0uvT+w-DU?F%A`jfPjt}Z+wBR-h9)pwoXFL1x< zLB7CU^JuTII`&wPiWz*u)Nr$c7m=qbp*2cr+^)X0C#z;;mn95vyrwIheSei-Y7 zx@_wY@^$9!!IV1S+LgLcTjf-pg}ewhn(i{La2gvx*I*}2j8wHc^Y~}R{~Gp==dAt$ zf$v2b@`1{dbp`fy8B^)!{V#eNmHZX}01yC4L_t(yze}MX^mc&7*7{|b3vg|f6_D{H zF1*P7(951~=ta|TXU3YXPHsV}RTjlB%X950Wvpyj&(gAg5jg6jGd?E9211E?^3`QJ z%({%-%gl=r_23KhNm{+`qSNf^XX_cG`-T}IOeM96H`DB;-Syn!BCr#GxQ4(O5kWmW zbvoCNMslhuYZPM&G^}J5Pr%Gk)hEOuii!*L9JFAEIK*R*76+ANK(@sqck~Yn; z5irt?dMuHp#ydziz#hRNZZZ6xA3*Y6DWZ9t6|-gWAjMPGqT-$g)HYSsh!P&|bYS$} z0-z8=1}PU35%>_Y;pYcO3LG)Wm@6&dTcLe#w+7)z@7!UKeerNk$+KYTq|X+Y0hJox zeA&vMzSNO{{sT~@2Tk7y7~gU-N>`gOHFyLnH8_Qy5--#_6g0xaHJ?wHaAV*)WP)(64fTCx>7T5cU) zz5nWx)9mN9@ibq~w4cB13~fwFE9MuTDgB*i*v~)nbo=)&INSd3E6%YSUUt46_#ZB` zKh=xaU%2c{d$Md?G5vSna@gK|%aQW?+OGPHW9e{8V%@pExcWkCZB^uo!Y{VC!pL?J z7fe%?MkStpifuGbsCJpcrpJo*G>@wvt}cXUbc{nB*g~6*E)cOER*AOCc2+i(e*gQP zUS7<|UZvc0giTtDY?cQ}h3PLHm5O&>#fv8SccR>I-?!}TfAbCd-aom`p8v;Rv*-WO z*X((cAN|vAV122BM?s1aw6RT)i>*@yi2+rfK2+{}cDmdf8M?$%%agr(d9FMFgFlQwbSl)L}y&2hG3O;x!!gVNZrQe?(zpr?}4n)0-T zOAVfpEuA$wV_Kbt3*p4mdT3B96F_!t6{<-pn+@)nN6*&)6y_ z8-%bTGW(*a9`6XC6UKlhA-G?JB*USK-r>+P7nDdLUueRGDYQbs2(GCOKO+P}qG^D} z4iOQyblRbpsMM|>qp(WMJTnbzk0&jz8rfXn2;B?~Oc$EXJGSCzzW)S%e2}q~FK`D* zG(E;76oqLbVJutG0NEz~*I#g!{oCj4)dtlWTML_5BRSK4^x{4C&z|;FyIg-^IqRh1 zakWjCPZ;;FA9%oiMVnU)D6Yd}orQ*w@WMNmFv!k~lM>i0u+>AZKxq8LL16b&IVS@s6n+&7Sv%2kp9p59~MncwN4^r91RuWro5s3^JoK3H9XcPmzk0;j5MgtK|C#N&14m+x2ai5x ze0L!8z5bqW*}wR!J7c~-sSPgHV$<$AZd2 zp7Z-(jm|eFYN7YyhM7^Tez`9O9b7ihv==)dqpI4ulWJ}3ZZtr~FIcu-) zHDA2n*qn9sP%`S==^|5IOx5^Ynv(pXN4r>OxOL>}XYCy|bFV$1=p^3~F5X>aaMIaI z_EqPW@6t+YRejyT2dzw7$qF!@BSwElUnv%rH3uHdsU}nM;ZvmoHInFpU<41EKs0t> z3;+az-D>b6Y1=J`$q;Fs@|b#P!o{IlNouNdR2j>&nwY{LrVL5ey?aa;_mtVVuRuC z{rxZ5Jyni;?l#S{4n_;x4i`4t&6tN;o>dCbhsog(w>1REXYQ@^+y|#WZZw%U?dfWYJJ(Z3E5UGd&XG*x0g#_6sag0qQHX>-z zyXokO2DhB(IfXHjwvQB0>F1D5;1Vy?Bugg^dK&`=8UfGBj7J1xiz$NDL@G>DgE=E6 z1{+;$(@_|?gjEPe1f#S#h{YA52od{F;5)ExdhpTyywut0mvcs?S=Rw3U)Z*;0Z<83 z=aU5A0$~Gcf$JYM{hx39ru~~Q9_r`VUyowIv2;;sF-15RoM4<7c(7ulxM~DWvBv)p z1csB#i02Hah6{gZC1iM7(!9gJp=4fNL6M1^NZQe{hJe;(M=n5&h~vyTg9&Z|<{0&6me3{iv|! z1L4}xdC*?=C%4(P+Uy$m4N#nS@26?8_+<@Z{K)HJTUi74m3!%vYfY%F~q$=Fi@x&4k-xg8_O|QQAI*n^&AV z2T|!Y6&rQ0{N!zMeXvh_(FN*92d8@UbffP{b=xwx<7yEi}#h38nA|G z#-NdSR(3LZewP(@a~qB>eok<125x!8Chco4Jgsj)4`E~%ovey^e#%mTl&btD&$R=3 z{$GFZQ6*~&`D=2~1JXIHcFT#SZ}17WtkNeTn5SxN9yFW(Hgo< zL0YAVE)!!*C~YV<0*4TeSRG%%SRll7WTfDzz(Wv+fE#HkFyROx*yxFzboy@Ne*oM8 zi9DxXbY{^PN?&wF;LLr>1*aQ+^ltf2x$q1-HAU^P@e$Jwmnoz@)%Ye;TF=bH)7EVV zVB!$s&Zxxg4SDb;BVHD(Hc%4Jxg39R?qt-sr)eM!sFcwt=(MgVL zVJ`%=Nv3w|o8UR2bErw9IVO!lRH<+UL{yAD2$`t`qYQS0!HEi7wNzd0l945;VX+#; zE;X_EdWl56HGrAG!L4;^buoW9)Mtm3VN_wL~!+TjkoL5 z;9YuoO8X5M8eMsCfsLC>42!MlP$gTfgRi2z>t)=h=Vk_`-AS z{VzP%{-fmmFFemaAi@5vmz;0B)9MR9aIxL~>PzgmUiviK^sl_ve5q^}GS`_|d0|+4 zPRdp1ooak}dtukBd4czXe|m@U&JZ$0Za|eded-rosiMSjZrJeRw2owlfzeA-jDBOe`P1K`bnbywNwn|7gIcWE7^qI9MJ6|Uzl z7_;l|eMlQ0x0UvlTV2(p(GU#C9?;3buP?cIb^Sd@wfUgDDgu$PoKpyvyl5Py=VG%l z%4W+iec>CpHj;O};GDjF>ARS}tk2;901yC4L_t)gr^KyQxOHpZQT6&izdhbz_qNa9 zYuA1Cu(1im=|%Fs%KXgRb-r&r^exq8qXQo!@&H|IumIN;Hb{8KRl6zZ(VHtJJxR&d z84-Y!;^ISvxN$Dnj0)!+Kf645}*Lhdld-QW| zohh+_^CN$Lr@6aiSUp#=5O^!+)TI%*Y*&vx?&s^a+^nU=VqxR?zw=`|CNKKXo0RKK_M+dB1Rm!uemKR+kDc<}vKb5ZbKd=G zjjoi*kPBJst$a0Pv1%K$cC8IYvNaeIV zLTrg+Xf*`S;|8x;+~ziW1YaA2k+>BVibe#ZJs2^?hsH4#`F6ocqllf+ECGTeb&IoY z`gjpm{GIagP{u;z>0}^QeFc|Cx(!FtaT|-4P3tg)#f(c1V$2>Ni&bwk=jx&n&8!TO z5qGi(2DchKGwT{V@LdTT)$_OrNC#s`%vfV>qEZ-+R+5)%n?hPbLX$#9RWa^qrm3y) z*^&unJ(VE~Qq8K`W=s(pO=Rl>$9NS0mZ~MsM>X3Et8FlDl)+o-c}@6*c>f9h_~1Bz5#DL#gRywOd{7 z<`q5y$OaZU!%s&ThzRtbM z`$FqsCFy~FQ-cw85}ktA7hcqJA6e#7H)OW{aCzKRjjmy?BjZpor~a3|aG&upH>h>x zs`H;}XP@$vvc5G5*R0cdwOd@Nwba`_e~-QNj}O|1Z~La&Gl{z5F0(1}$V#&4!gbB4 z6e7#r?R6J#_Dp-*U*BUl9(vf^oupMdX{6;6qY;HfA+9r?71!QU{+JN-8r8eD`yRRM zR=OQ77-4ghcag2pwegOn554SyzA5$}U3GD9uL}4+K<-J}jeh<^RAJ@ZTo%ZL+>X_& z9@fRYcY}B9UZv~1Y(kO03Jc{{FFxrkxO?nI+cekF*B#_KZ(Gu7YZshss}mEEIERN$ zuJvoFFs*1sWe^%M4)Lf60wXw6hjY1#X7eIR1&^*VD9ohMaPxGD!<#}Bf(H(afK#xy z5kfNrJWue$OF!c$UTWvR=6OQna^V}Uu=9UtmLEr*80(xXpJ^AoVgF3$%;VCZe)$Z) zG{KsrOdCy43w~nJ_|RKQ24_$<8hCytrPt!xwaL-8@rdv_5kyV-Nm!V~1yIG~LMon0 ziLt>5I3;X#fKD0tWW>*L#l#?G6DL)Qcx9cr&jI_6rLwG?Sc64$mepo7z(UVhez-N?D=fk)yR z)KK(Gx&}8XlNFiuG7%&eYU19)Jkj&sVra+36`NO|(dN~+b@o}Wy0BH5I|!ddP_)>foa?h3OKj*f_uv2TM|m;+N&poea4~b>1-I{~?qg{4@Q9TN7dWh+tVl zCXGNe^4j{}i#OCt@PGcyUHv+$JwrpH6cXCA5nzrw^vGM2XGajUHr7m{C zSDyFO*hD4oI`YA<9*K>o*|y|I7#KoC>M15pobHjI)h1opoRqyrxk?)@Y#hyP+IC+9 z;vNuA7bD@FKi91Jk;co<+HJpj`MJty(&w$cwtQD0>)_6a%-qqOxiV5}1lHmJ>0Z#4 z4uUGtogLI4OZeV9xOJreE-X3>p=vT=GQN<3pZ}4{!M_zcpv`p7!z88FVYU_BPuVHQ znjn4L$PnAw)5dZ~VK7D@5=^aV0EdQ34W0;L2sB}dv60qpFrm0p($0`#do#Ln_IVBz zaWzGxbd6X<+HwcYkkZM}W@--}JLk&pwD0&A-($~u=Rb*eMxFVhi^9A6f-{YcEqekV z&-jV&vE3J(5hG;WFL>_{+hyqD(aI{4uJ+8?{adN5<)=O_IUZt#x0Q|IX zxCl^dg#>J4c5!>SXf%tO7>!K=kH)2jvxv6^2XU>74AmaZta5}S)r@-*oXya!AK&9G z?TTsc`c12hfUy%WwM3>c~#!9J8Hd7=c18W-V(-X!J>9YWM0uWp3ASDu$+M-$O zqL+oq(}_k1q=P;|k`M?1Nb=xW;k0BLFcH|!Af6pb?zK&>Il63gzYkz#{L z*4h5kcIKTXWLrmWeBiM-ovhEi_KbIyZ&=pH712<#wk=nlvwPc^e<%U5c~#$e#WR8> zYu6i$n643%lQ&&)QrunPT38kMjv&?=fioS_?hr_^&4k4d+Tw6{B_{kBxx)7FW#x_? zjgxxP>Yw}DZ)h{=+nRB?t8-Q{#X74N^X{*OFOF*bR*ElU|NNmxqBHs;H_Ob5w(a0Y zOHV+MM9EMIKaCOSHH0zf0@D1uNY|(BbHVh+%HY7!ZyWD$8#N>)5AdA1`vFu@Wo2<{y?Se*Q}BRMDLJj4kf-yS?#}@{4j$tqAz&R=bq* znyYJz7%gHxBQ$k`M_WBu3sbf3yZXvp)k&L=gv|<9*V^jyY+h-MZCZDTHf0%uE2tn7 zG96uL!kKp`#@&sNUJ9;Ve)yu(xsA-79wpM_Wb`y8m&7IA| zFrvyHT^1sx(wXa@g>-7)+3PMIzT?Q&IDSbRJ<7C2OP3Fkihj{4@U?ZU8MfQoZoDT0 z*3z%LXfh|dK$Ko3a-yMfNNK}yZLlf)!8O0sop*Wu;guJy{k?YA-29FB()Jjrsu+{B zYp{r*N+(OFu(`L&{RfA1iYdk2?b=%o7h{e3br+syJU64mw!ODT?XRk{PT6IzRl7D~ z75vdV`0gvsNclJ)*%sV(3r@)xbaHBrY5mycP+@^A4y{e-K2TN!NJqgy!cdigX!w-0 z71DPGZiG<65Yf>!7(OL=>9*ibJ26cQ=jzb~lL5=@3wHV-(@rimzAc1i2q82{j6IP{ zf9A@b*?r-e_K&XppJEf}(x3T$JL!xk_V4z5Ki6~L{TgHA>ILup=i0QoxSz{qzxV@& zUkl!Ia{+6EuucSk(OU{Z*&qXxOTM)e6AMNoiHj~Ze37(M7uGDUM=M9%X9{S!;;D7( z6NaS?8p(F4;jG5Ng#>AZmJiPA(c2M~FkLInu_D;7ScXUXo{y{*kty^l9+vVpVv8V!I~i zibteIrT9$|)*r;BB#E84*ECM)Nq|TdBWq}@hqA<2r8U+<5`e%J#%O2bBbq6Uiw+rk zH?XqX(CQ#Mk`Y>Vq@L;^XR5XdSXs2Y$+K_7d|$b-&M18qbF$~U)UZW8*IMF zn?&Ytoa+^VBaA#(`SqF{C#6^fjpy`k!h`jQ`uwm266si1b z$aUzlEDn#_dfT3~$1i{BkiG9KM>PJfpG_w#N(Cq+I8|4kcdF|3$^rcq{C$6axb&rE zREb3Bwhzd#skHv3fmqqZT3i?f^**`RElR62<;OYLWZ4cLOkp-1Jt1c9nu~(C&P=oy&fBo?enS*++DcPiyUJJPh7q8`sfZ#_-@g5OD*-;yK6lVc~Zxhlf=# zwNo{MjX=$>)85e7YjT?hG*y`{jDBwqS{D`ju63mx76DbqB2ePnjmfk zu!MMQ1l$Tq;1PHd(i=F17%-YCf|WMRtZ0+cav3+(#KNHw+N1^}_|Yj-JNbBec8olP z#ppE78s24C)zHi~_^65lzP2yXe3u~r01yC4L_t)9>foda%Qj$9>VS@lU@sElTUivh zF3-4Vn|*M0;21jsFMs*v3PMH<9$kbG7stZ~Tv!uh{oxh0ekg1NjI_94P8uU^0D+7( zd3?R##7GTJX}K2bRJ0}-$!5}N(j_8lG(_x$LgSQJ88Seik%cWsjyN?LPV6;wDBp%QSzs!zEf&;AqmKM>ydz$5jSW3AD41DzSa7HH)*CCUCXPVBqR$|#P1 z{q9?j*#CCZH>~|~YkJknp^RGkw!=1|}2w*-Mfnhz??$RbW-I`mj)AGv+~`xr5-N zo3FfK{V#QoBr8-r*IxgZcbaJp5R}!!%>%jgvDmCEqr}d$9_Lk2aHhDTtsI@(HGG`A zSS#08Uv`$AblW-jj zcYbH(@S>uwTuTMtR5e8D269pS5YZ#vo%9_)@jbo047l^RZ?rF5{a@^Ful}%o;jM%G zt+-nZ<{>Z#nS&W&D3yv^WId5~D?-27w?50pm$M z4|lcO4red37C8_?xL$NsC`iR(i0Q&T5n}RDov~cE@G0;#L&KT!sX)yL{?<1S!y(hy zHW_{d4vm0QXq$LDP3$gX)FIX%{7~!-0FkW*r{GJ0OPm^RlTp%srzOrL1I&Sek=hXu z;R*;{c-EynT#7xk9)dtfi6}KTQmj%>?ZT>F{X zj<2CurPeGs+ocY6WCWvIvT79m#p8|}jSz)aB~&s@TXCL{2#D*uiAb1hh}|YEjh3!U zKb?BfLq<8VBc-sr8~+pE(#eiP;NN`nu@$m*T2P5*vqGbBD9y#Z{OsMT|KXOy`URbL zUH!_J4=b*bQxVl_2a8G+<7bNy2vH z8@xop4BGk_IC~NvH{ACvd)X&%xAsfh%N#YCGU>YJ)s||@Cja~3wefB*WuqS{`jzU7 zPG?{(zn+VoxhokndjV>Qqzyrcwi6^PjBQc~M!%vO(>6C+4lTJimL zEi;NjRQdrb#NNBXM`Erx>l7^`St5I%S7aqNS2|;n#Etumw?tw(Rh7;***xHTn_@$h zY;9U>36}+;?qv;ySrd-L^2-G$wQ(tPj?Bu{W(6anH!U?yTqBx*d+E;|U6K=0tS+YS zUM#${!$JZBO!8*j65-C(=`hxZK-W8vU;es zX%8bTu10sa7xGTTVAiW{(niC$CB2Lp>qnL2L}y%T8xAP_frd?tfm{vozY%7)^hRsa zCdP-2m@0TA`M_%A?so9#WA=u>xI@;?mubfGrS0W+F7~=LG!2g{3S5Kjr}@5CJ1C#$G{aDj|Ec5)MrzoV=iz zPQ!MIg;*S&YL|4ubwZ`UCDPBD0&6|^3Q_H$aiOWJE0VVu-wN{BgAdz(|B>tLp5ME9 zsa6l)dBnc@?>=RRKXXo3)wt;Yq9(G}cVI_aw%V7$-J*E6Etzr4T;YxUG16$6Gja*++|+5A#ePXR;qZ04Ywwy8dBUxb(X6c%eph`bXrlMm9#b z(vKl~#7R=@#8ZubB25TOf=LFV!01-e*K!Ln2@nE8M}@Vd4DpOD8-WqVGDMUs7cS!p zGgv*MaoKhN+_y6ggcEkOTjJnC`ht^WEd{SCcH~wLBZ6HHKFPAM&$Y>0Z zz#)QtnVbt(X0Edgi{>(14O~8{QQhfRWVk1ruyOV3KfBZT!gl_$>zV*_MGM9pu>r}! zx5EDx*V?OK`i$?sqS2fV^0c619I7}k@z~b+Fa~Bi0?R2FC*JjAIJh9zta3o9BeQbR z4#887l9+{+q#dG<3)K% zPhNI7O!q(6mxMV6t^UC!%w@S~4^7<(u}j~H-FvdDUcbz4_>qsyX!3&5*kCmFRPa^d zqLkcl@A{jGY_{yvy;U=o&Sa>VQulTM4GBK4d6_}O#X8BsJg>R={@{;S^|l-DjdvZ< zZ;U~eih2E){c>&-}>vjAGCdy+Rkv1w*Vu|&~Rp*~- zoC90)$amM0J-drkGE@>;i?s;BQ_&9Hb2^7%Q}s@angKQ9@ue(uWWZRH3rQA?)HJ|! zg%+WbFf^g%+=W>yqVNv#b7`pc9RC zenUA`G>bWI*I2#ssmuI_c=%RocqsS)QDw_8YQ-gwdfCEWqi<28PW9zLN8mUB9Q)npTbC8i$N3zti0Gmr( zLrUYCC*u&*?@Q`W1&q9WgO4oHeiJ#YzewNoz+)QSR#}?C#@aM?HVZzD1v;C#*(JN5 zV*CFAZeSgLtc#BezUI?++kuB3)2&!1tvRzQo-3{OsviCRr7J^*YKu!yxB$1JA%NA^ zQ`tBQtq}1QL#xxGsMSx{3UODZ-k=eh&?na@VPGQM9Cxh)K4GiFx_@e5(uPDUQ`rb5CvGHy79;(!i=EZj{eBIKzynU}~4wLTsZWvs%31mZf5mH-L=}*NjE02$(Td#5jTk6k+q~;L%k! z*h{;t+w-Yzlioq?=38WA#p9hKTf}VTig&-%HHkHv(-}PXa1MlU_Zoqlbnka| z=#iWo{?%pg$xrDUDYIErN^KS}yMhKI>e+ZxQ3P0tm5OrB7r$ZGt@)+ykzk98&9Q55 z&39uniV~bCHLPoJMHnAvpm+<{UW1*vkKeJuvw)w22af9Z50b4YeDoTzu5E~c4BVS8 zY2K+d&`Y7~@BNnXAAe}*5#MI!b`7$rT7N^ExtV2>)TRTTMj=rZGGcJ1;FHVJ1}`Br zLo!sD43S2h%!Hxw!O7JZIE>^yA_og!5jZb!rf&EKMyia3N75!80*55Ore-7SZ?FD; zjZL3fqkr`;xJdH7^evS6}$)|6)h} z`nKwBdj%^&c+f}~s-}3byU|VLIxVjFwve~A7h^4xA=3yr?in;bGWHllB)ujlb5v?b z&k>sj7{N{rJ|41m{w*5r8m)iMbgFYU$*289((}faoEAW(j214WGuJ0xSfOO2LTHGDv1Jt(H%*Zy5}pi6rzRwE zYPh-52lPM-A*@p3>7k%;-3N?l#>AA-F>QsZjAF({$qIa4~AVVnM!FmU#!ReGf!R| z|3vbvFqU8c>I3#&e{#F=h3(U3xd*}A5qD=P6qbu4I4bZ}yf|X{sV2Yklh2f|zm5r4 zQ#bvCcZfkS<;L5Puw4G_FT;f!f}R+NU(A2%bNAW{K7N~B__41U|H~l1urs=L#EDb0 zK46v*nX@#cSX+3v5RF;e5GoNU`V%xQx^Xa$c;18&mW8jv;!7j7t#L%}YKQjPh08{G zN(r(ss7*za^x8wDa@AVo=vg{kqUg?DPB~QUm?~L#dTH&y=6`hTJ*$Der|@iTv#r*C znP?4vP8e*Fy(hIVIOl|JL4BV8jj#I2#@bc0S6X&+*Bl8z@JNdhkHLLiq*$fKU(hDC zIvO=6>y#S>EN4tokhL^)^8j7dJg>@iOwBTcLyH0?7Tu{0&q?rC*L-2G6n5!pC!=~H zXK(BnVAPBlO;R)hPH|0>xfdHI0H9g`01yC4L_t&wL@TZl=9!r9G{U!z9Qfv=(a-$0 z^pHXX7@gt?%oq?R5@7(d0~>5kn~t+j8SX98k~IZeAr^071weT9f+b;z3teO0Uf(5! zxl_W=1~$jkr5^2_x&D!xYZjdX--Y2(Q+bUA6OR;3t@}Ezbx*@0T->l(W-A}>eBRlm zjn>AHGAMN>y5iX6lDST~?%@j3+OH; z1gpO+v_j$w)sV4(Ca1;GghUWFA&3I_MIj(n{K*+0hl(pnKHuox`i~8^yJJJVnyg&d zRC>XGyWL*!iQ9U4zVP!u@pb#Y8}6`phuX?n&3IQ0!bX->vR+Zl$b?J6>Bt>gRcw|> zYx=Qq0^P=5^3?VJV}X1(0qM!xN?BtueP=Za2V7_Y6~<;!rGd6J5Bg!1N^>%C-U~|& zpBlWT#4|$ugeHf23fx(lntJWvCF)LA@PeT^FY*LNXDIl{qu)lYC7XQ2Wtk3{$2cxW z9y1%e*06X7Oy4Y1_k=*(4Omp(1oOgiZ|jest*Y#38k0PFVeivM^KGTz`Bj{mD|O!I zy52Myg__4dMH3=XDM7mUxD4GD;bzBlp&i^{14})Oio24Im`w~ujgW)9;4;U&&Rp}f z5PXQ~D4N=3nZ~4P8d%Wwj@~s!!1BU7TuU_B3mR&Az(TkF#Hr=yB!nnlrfM?=XPY0S zLv$(hKUe8FIMVB9Uv|YhvZBRDEsJqQfUuHq&%NsU+YL?gP33?#>0bXAcPXpejaZVk{2k5I|Llav|&eVUa6wQ|8%B&i#oZ&o)y@Nzs>Oxb!J6cVQhwu8f3JGBoH;XoMqC@k#RNvOEtnVtoIHB4 z!&~Q!$29NYY&eGK!u8>D^ca_HHMd^OEd8l%#e? z$%JH3i<4WdSprR`Jm-}%mTN%@xfdqFhs*@@xhkk?h@0DLaM#ssn=$5ooN{Ca!Dxq0 z2_h;O0D4{ve3Epf7PW3EDRdphfJ+u*S4St%;uiQK$m0H50S-3_dtA~^w4E0x+b zPAStz^vfi3zw+$$Ki06)7>;8w8&`ZuJJN2(xHHk(amBnCL-KM6x~@+|$2Aiu8dg_6 zjDm}GEU55_Cpy|@Dj6zPKH9}E=w_zQIR|cTCIO?ZKca;!{8AefetG8|4+tAh2le9d z;L&f}=MO((um1D9jE~)|ll~pgJU|%`lV zkh`4mbyOj-27$PwiZyuUP;;KSkw*8EiiwhA6eatKR2U)SL%n=P^V7%V42C5>fsVxqLhNc1|;1z}Od6Rg+-e&^2yRN!2)-zvpQSVE@$MueU?zYGj@p6=C zf#Y51ujIC*Ph*5eXoM(iblPYHu85YT0M%f;{dFWR3z@>NfW+aG9lEKA zOEcVR5IV_;-pV%#UEe$&ooHTj2b6uKZiC3|Y&zf)%ZvgCDD5oTSaT!~)ne?C;AHHfs|O5Bt;Yjq5yVUPYk%vckHD zQLFS-b5+GPf|#xbca5&*%WE^WO^*F1_zT<*erv0DH)s+nnv&KGFd6)Irj{W?m_LGj z<=MM!lXtq1<3!2f$2xoWEl1)VS8QCdiDjJcWstM4!F(h7XiikJ9NyqbE z8ed>Wt2P@Ht^t~psk38|RXv#NAG}j-B+8)is+24;1E3KZ?9=sYQ8~KLHjGVSQCbYK zWACEM&a!`!?|@9xb+N)Ep3VerL#drPi${7bs!Ajc?Yivad&q){k%$USc;e#SshZ44 zn~$DadsRH!-Zkga3&>=dUh=zHAZibkrx_*))0#-4xNu1l=8jdd_?u?a;Nnc75eABA z%sp>8rO+jc7@p+i%8Q|h;(2d6HrW6k-i4z?qe9OjVk5rdSa@|TItq4m8F4YNBqCzt zirz@uW(`i6-Md&Lsz4e~tckQkR*6+}8c0;+j&~Qm^ZDn<+Pr+=#phdjhS5pM*GbVY zTCf(ZPNN#)aJU!?QO)3VEd-~D$9$y2-I)%zz={D}d+VXK--UJcWqYlB{8WjfU*$F( zGB^9*2WLNORx_8OtBbUQP=BEr16clI3&2T*-Rr(JOqFbi*<$P^gp^1Viitpx5y3`U z4m=i*;bv`NWoxU4S6$WA4NV9#&j*JPw~cu8KO4mLS=jPy0XtP(TjiO=_2=&9?zZRI z=Y_Yej%f1=o1q|Jr`l=Bq^UE1ZwqLQg?4*j&X>-Y@hi@dcC?An_)3f_>bD4!7!Lm4Oh8wE3`+cC7IV!Yd)p)gFczv}hHV z6h>fDru@{-aB?ILO<*fQ)+khrFGy7cN-bFyMYkyv6Pw*7&Tiln<4Zi!QwNE&VT)t! zX*q2GmkowBhn*3^BxE2p{=fpF`yOPf;E@^?qD0^ds4AWe;wbRwC1e_^D=PYjcdjBp z4swZnguMK$6ZcM}!;c-a{0=O}G7{#&d{`^=$hm^iwDoA#**|^SQv*HODn26kU7x(& ze&v?K*1qGaJcs7ZMl){aUzSu?4IskhXMMSL(C}z{4R-wGaXC6FX-aYxr>B4YN)CKD z$Q$t(kP`W!gj7Io&R^8U$Av9+lR`$?ciJ>*?{av@Avyf$F?;o&-?`B{v3~SBPB-$A zS1ALd5qNa(6TwnQ#T1h-!)Oh;EkNl>Sj7=4#R(c4T4>e+8VOrf4Z#&--Q-Kq^JAS# zt5dAZbR-ov7zty&isqSan!#iAi@ek5`8F?nwUidAyeR7r<;E$V#X=RKEcsuS5}-dS|jm%Dy6ZrzvLc)UGEBxQpc}^CPx2>@-ggj~7C|wFinUZaT^}naPnF93275 z{RLtz8XC$N8GJw9l4IYV@pp>ZipSwcj#;EtyX+E;h>G6OtVCQ78C*y+1v(YOK}?7A zhraiM*u;{xabb?{fAP~IPdRJqKo0Ixa!fGJqVOp;t5rWZm4AvhszySe9 zr=;EL7H8ZFnyzXJ6ea@pI%sS%x+)jv(k88&BTkX^NAdJ#jj>*5CYwEIiaQ0HsMLvD z8*YJcy|pfnF%+iY&fGnSE@}(g-9wv>r<}gqPLc?Y%F!?1*W2Es<-wk3pKF)B;|FGB z_l0MaByG~fXrx5cnvo;L@y##aTlqmT{@oYUyjJ3h*Q@2l>}&FIW_w};v^-&_&dWD7 zNyDc!WbS#j5~W%Nhg4gj5Mt2yT8w?%Bs5ap6oMZDMQq4 z#n8xWzq*E$)7`^0x`u;UT%GtYaBpW+vF2iRE{jLLg{P+JFIk1UdDN=xl2eb*V};zu zQ}&+Z@eAR?KA57MEFZ%C+wM29q+Zv--HB9)7KhPnTHnHwndlT#ZFFen#Joi*mjf83BMu}HXOuu#yhZGmc?ZDBk-jP@$7uC7ZLLUec zu|1FlrYqJtBstv^@op>)j)5cTSIGJ$I@8(aXJyIK?MU8|YgDT%cU8<$j_8N!sCPlzX~Vr_pVW*&`6uj3raK9`n3Jn6wVXs$TFR5UDdlI_HIZo+zYtH_y8^=Ss?W-M!?fic?_XRP4;}zS#J<-5D>sC^Y!| z*F3kxPwLz#s%a+PZA>*{Q|bKIJkO@G`@%ELaZo0|%hhi3#lN;X5B7U`CkB znJ?75LM|-x6QYpQlLvA{9qzT zrbfn9!~C^-TbxKzzYj`pAMFK}lTbB5cm-5Lu;x&_Uk zf8pBUm~Um0S4_wH|z`Gm<^_MKszvzY;~gp&BZT{og|DMW%>@;#Q064?{lGF*;Rfe_sg0OQ{T~^~Xa)UbHJW za9yDXuZ__N&t+F$eAUI!jd#lY;Gf-Pqj$Dtz!LhmUivh<{LE7#GIFbGr_YkB+wd>0 z^cU;L)_<|rZlXnh*-;o8kS8G>oQNDG8j-7<55))GymC#vD_a08eo zRMIvX3+sufr5QmI-f?vGvxbkQ+YTOlB$16QkIqITi(YapUA>coR24thrQKb%N>wJ? z%|&Dx=j=3pJoi8PZTsjQ-vq8K{PEz*^Yq6dQj<^m$1cftsjQsNe)Hgw7_rij&3ePi z(axqYiqt#{RvlPTq2=RTlSEKn6#ya_Jt!8qolL@dQ$Qs$O;fn~&7O*{6JsG+qlvRP zJnB+`5v5mVUQ~@0h=Vb=fcefadnYRW#54qhPWvl2{w1 zW^EGpvG6i-M1oPU<+4~*D?iDkqTmbARLMn~hF=LT+c@LUbeuwG;N-CpY%~IHW3Ul? zDN{Rn^j1FnE6T1uo&B?G1AUghQqj>;_W4a=jC zO+q>|3(l6IyIEf{5ffEqz+^>NYJtk}q$Z4(Xa)}^3liMi3U7*90HtO^=>*@5V|gN) zlSfSgOS{kOOpYbWiQK$mc;yS+>r9vz5RDUAb#BpK4eOGWyD>@bua47d2OoOO{_U;W zm|_!aE4fvhT(?Mw5&lIpcK!}`nYYqW{Q^)YfRVQ_BP#2S6KTJ41XG*uRTn@ny8kAB-mFN(Hl(Ykr3 z0{=S`T=WN!IO`kh%1A`?PT4Lyig0MEp2XN#$~hn>eIO;JYg~g>xV7s#zqn?=nTWa4 zi9|&`meUX+5Q;+~E{sS;f!pM}Rz82|;mFfhB{L2Daw$ z!xx=qImVK$CSqL$+f8bIS)*6cQNRcWI?fFSqV}VFa4QR0X+)+J?41(+Fg4BF+VW%8 z?sgfrh#Xesi_%@7IfGeK^g1$gE;%`Uf9iXkqPji;7*(pYV zB3dPa(Fcw`y7n`TbXU!L#|^_Fd0kUu9l&sW44sC(K=y_Jc1iG$&tL!DJU1R*aDS6p zz3}tZUF*ZR!mj;RznlKaj|*Y5_&t};evc2nof1Au$fi)qSH{D+Gsa@&aNA|=;qGA) zt+2qQqGgd{+t?jeX?xAhhiu*BozKhf0`qvs+~s@AABtAZ$IsP|+;KFT)hWd_8bnrQ zxUwpUNk=7)0#2zhoM>FVz^C-&_CQTyT+$hwFg5&uJFT!wUjRlS?8NkzLQD!=jwW^M!=E;KYQt?UbG&pkr86-)g*Y&p zcrcPUb#mCPB%iwVJ@bnH+%3{(9-TN}?*)!)#l1-VkvE)!4|FesONDno_b1 zR%wNe5P>dHST<^j&n5@4@Mv7A!N}BxTS-We5))JFm|K$cj)>o;l-Z7hxIsvlI=o5^ z7g&|d>{-_QLd<+m!?sBoax|h!X<`Gy2bihwWI9qYK<1Ev;g>-SSg=2r;8}?*JZA@2 zHXN9x(W0iDgW8jZtSAkTYZzHN`6Tc}e*YCiDPQ2OS!piVGqQ-E37imG9vEfTT7ft{ zg)B98;TP5fk^liK@bF{D?AH&>|I3Nok4uSnVV$f&rN#;t07Y4um(x+K`@oY_sLbguCD2QNmo!xX~{l6N%@jIFg z&gi)0j0tPKtyzyAXZMx|L^MufN3=)Zu3U&zU+Awl)&p${U64*+Uhi{hl2(N$HgdBG zJc5l7i-vpC27m33cVCf=MCews19Z#p7#}n^!be zuveV5d!u*#%xs!u7rN#x-$|R?%9;@(noP6>rvx#oT=UFG6E+=M4%I4hs1#P<#_49R zLY6JB&^1_MmB&OZ4m>Yj0R(sbFWlC7ev+1vw|fR?(G!tTrr zObz48p~)*YIA0&lcY)QR=M>315{9hv#;GdP ztqn#&$)%>zC}25*<_OVBLAL>^B%)#%=nNAb9GY`gbk-h2&N|tmy{L$&uvNH`>Nm4OWH5+H!9^YQ)9avt|rmp6!Y6DtKWZKL!F&bNb zuUc@~q9xG1Xe`BySbNY-V`ooOonfh)CdVJrDMC-^c5vA62snLUxOuXbZ(jW4#O><) z;p|x*Wlo6OI58KzVv4C+g|@W?P=X~eT#?%uUyF4PWOh;h^R9Y-E3UTmA z5UN@%Q@N>2-hwu$Nsf>LjeuF3kT7b+=qe0fA1t!<$y7;idbDg}OG%8@viI4*#J5sf zELqbjLO4khVkRWy|c4;e>3hcHk`{j*{>A5>Ro80!M&0Pdna1QBedLA>mwox2OV5|-NJV*s|{p=`{tX32F8N-lL$JnAZzLDnu| zsZmJ^&5I^Ba7Fyg~q4X+4%Nz?#I!22kQU!ND za~aKtUiS2OcTw=ix!R}Avj6?^b4&Lci)&roz4Xdpgt$j5G?OoJjZ)iWI&=NAdKB!k zig@@u>}zhmUwXa5M;~eVrc0VX&_Jvp*ByK?Mx((~)KcTxRa9{ZXOU~*x@4tC4%w8J z1H&yLgpwK|T(*|F?^Y&k2$--|heK8J)^c>d000mGNkld< zA0`+HqgEbsI_b3C)m~Bg5Kr$sTF?V)k-z1#$yD1;9hsPX;HkhP@aR?;DAM|{iAgRs z+zyJzO6^?2A)nWzZoA@1!&x#N@L)6|DoRdRK94~SH%qvD_;Ch;E0VXn0wPiIwmxum z#ZVGwi}X)*`ZK=O8QXGO;%v}r&9xs8oniL`*&xw00;3VQR+39ye59jQu}aN74WHel zKe!SSzvz;wmFk*N**+ZE00T#Bb560dV`6&2kglSk-*v_uM?_2hBfBOx*E6df-Jk#DH8C_r{@l38UU9A2u z#WT^%5$}J|`NmwRa!I@Hm>QEG5sadVV-k!Gj%s8;Y$)ydSD%*o!Fgsj>>`?X=C0gG z7eqYD-Nj*}&~l-UQ3;DyT?(sIY5Ty7pI*o{>wW`k+Fl*>efD4)w4AL}O<-Cits;t# z&hT!LCU84A^1n$h^kV~ol*$)QE-Y+GQt*k{kK zA*RDaI@QzCa|+QkEt&`$hcw(L+3dkyQ{MIbb1d?*rX)m6hw{fwE*Lubu(OIF8L0(T z_)aLPwacgOeJFl?iE(8X#@8+gd^@J<_ofkFu73I6^L+Ro-;T8TO9nl|Qub zw&Lk2c->uTI~ZvS&+!gW1wX9@jynb>0+h7aVHwXuq*$xfZ`61%-+PL!`;NH- zM<2Bt^fTRJPFDVoqx+R2s|-1Onv+WK{j?xVM{2=w0K}G(sf`pVnIBuNtBTArqqrJ) zj{?*RwumdnLa5z_qs0R|LWIl{#s)tMUThG)*o$WxQIhj))MaAsTw6K~GTe)=)U;h+ zPCETmvqgz=NF%>Um2zX-HU|v}MrSBC(%OlO#`}~rR=nTU1?{Bb`p_~(GM1|6f+-ao zh&JfsDs3lVgbvXNgF)aBFnnTcFak!vJ1joA5ZY(cvRzGcly)8}^A!uK(*{WB@ zCe0Z`BgBNi7(?ClLv;{s6-x)5G{vbTXn4WMgpFXQU}wAJu;J5AoErbsm-e>0ZQSBa z9tj#FVz3d6ln7LXEwxQynGnKQW^^w~kv_qoQ`2h@D^{5=nnjY#7)(>aBT%Wqtwe&J z808k*&qvKw;#{Y0Tf#ZljM`YQO@~V;L?CI4n|6j<^!kN|c}Wu2W`Q+bF?jGpU?Je8 zgkZ@fr#{7yrP>^apc@~kACu}&%$l8OE<;NU#B}D$`Ej9GL(>mO$=p(!6qidOQhn+D z1^nmRkJ=62n0)_5AN=@$|FB=b(9=~ND=L;!ATCFSiYO**>BU8X(O3~ct(j0$L}FDH zH;?*B3K)F|sPwH%N)Ou!ZpC$0VpBy)OJMcNjuxHjnN~Gsb>+%7uNC8_d#}z;+H36l zzVd*5^v?2~8KPGxX770JS;jBiG$LoL8OB`khV3?f#|-ZrVgs$unvJa!hmFOHt$0X+`GJzEU5~kIxi#<@z^XTt6C{Et!{a z)03=mp=+dPWw@&fqSK2}y|@UxYDEruMkABz|~k%qv5$c&M|fm55k>v`vF^p2#avBe(j)NMRv@7LO(-U{o-1>+_}U?|MP~Ssv{26=Qhr9~{uni}ijNVN;NGWkd|S z^vpnoM8KQzyQt}aM+Ezlc8N5_7O`?Dhry*=_?j=R_bx2nDfb)Sz5e}k{k?pQTI0?0 zVmf51E~OtMqzuL`Wg4@^5k{b>@b|u8wygSYNw3JrMuns;UEM-i%1^YkOnuU%utcX= zJ*IZ0r-~%W(Ij!|)}P!q+BG&pigw_PxVyO{a)quK6A>r1W%-Mj|GG`(rXT<9xovh| zct-p98e+Uc^l1Jf7=u)e*hUeU3EcQ+s;wT_UU92-U!ZZdM8#kDnGf4vT>05HFYy&=#B_gFwBV$lj?DF=Z_M~)h9d!bbf9Q%5zS&m!G|xiOzJ-bcWG`%38R)xewAej1Vd@dg7L7;V2$8m%AEU zh^gBQS3Y2kl7~{Pv5tg&o5kt)f1 zAhX3XYuUHwWQ!M%)m}|?(Jj}22O78TWFk^)7uGtyKStM6_Q4b*VJ7#m`U*O!)am5i z37ft<d(IilqXk6>cw(V>GzxmZ8>vj?C_MLXJz2}Pa%ow!k{(VUAWPPiRrlh?z)+-K4cE1>1!a56Y?gnmLkdAkA!uSM z#uyk&_5}`3(elUjAQ*+=NkrSF+*50QX*(O_zf?bx_xiuM%XpV%W^|gK2n|(rDQ@Lou}TdyMA8oN;%wI=aA#~}md&IZvVyvN&3CEM1s@+oYYL&p zmBy?x!}Y;4&NAh3gO#i~8DoVqNm)TXPec^V6Gw&$Z3|aw>&I#JNWPk>rZo1DETgv6 zKGW9_o+Cta84aF-+{=8h=r$)D7_!QCb`2Y;MgObcY0uKnEFxVMBGng-CvfU8sB#3; z2KeU55SJ}83LC*Dims4F8(2sG?moj$e6|C(LLPib%kLO&6Vq8H1|w6O_~fTLV~?}u zn%le!CNgAka~WiYM`Vr)eh7SEghvB5yzytQ0;ow$U@#{LFEL)Cl}|t5RBA}1Y%p1>*|&h}jZw}fvVr{s;gF&6MyOo1O3@66 zUwqsfLhe3Jcz{ zBLxbK?oV_Ws?t&Pr|y6Fgue^x7oWXX;~Gj_?^;vlAFLL^T@`bY;(F>uYv(RfC1SHG z(@RUbCBTxVjV#-xJm~0OeP#b%u`3IYb(9BJkcMDtDwkSEW0#{9@nSYDWF!+ha;dMx z(Z9%I6D30>=fDetfBCt4#jIZT?K#Qf`>>X3TKX>IF#Fv*H+!*1mw)j67h3<33np5+ zFw0Ij0X99-Su}GX4|*E8oXvenB$@$~l`Yxfi%jjpE?@KF<^%c*ePmZRG2LV1_M%5b z+Ju1-KC1G87e8$jw~le$fjJvSbikU=x&GGaW3~+)u#)KNWg!F)J$B4Kvf;b1*wEpf zSW0J}8_zN(J&GwMH@EOR7oD5A@3Q@SPbr&WwiAbvPSbEg=g`xz?dW@ouKw{Wo}oOugIl-ypf(^6r+jJW`C5|6RUQHG$OcNUvh ze|Y6ZBG)TFqD`xVM<0vE2aY~!KlRzW1Fu@Kri|mP{y&D%AbrRpOU6)hO^E0V9*_Bf zOvo({_k!JvHfh)Wf8E!#`IkYDgJykhxOej1aSRDDDv3(DU;zwDS_QO_K|wwvmVO}^M(b^tWQ9!WJ&;TKRTKc5qz zaUzTe0k_h|z~@qf$HI+7esp9~rP2qH2}uszJ1c-gwu*^Rf&x&6fp0CuxNdF(t$~;dNd^b06SVh_IB5n;BQ>rML+$ z=-pqL^CGpl9+&#cb9Ng-XAD`tC+HgOv>IiMr4Da-;SmAYMdI4(3Z`}+T42vC=_ocL zROw0<@6l`drAuTql}D_G1Q7xwz+k1u3tq7x000mGNklo!6lm(yc!6{S-`Qd7AMxTu zn^^C7?%7Jh3=tq5NzW}cMrV*sq0Kh0=61mJls)??F=MN6tJb`8>JMLjk?lL}B;_~L zYbDEr^<~z`E~@GPB4?kx%YJSDxt1F=)xDNt^J?_nG;}~FG!sS321;#IYO0z8i>&BM zg@QAC@0SmSwMoS$)@Od;J7SH=LuO>!WBNi9z!{N#<0YrtA6@kf0-F1$m%Z3_0&oNQgVehzdrNIeH(9HDV1IG#mV>a zsXutrIIKT*r#-T$`X8UTx;m>Ol2Yh3_Eyw9e=HoAD+4+i%hzG?-*gK4`{(gi)#-QqpKR zX*S!}9S2{Ae$(OMg)W`3IeqP|hk+~0zC9<~uU>v$T}};78A{DyWmHc&k;MaBB(E6w zygq0ro;6ZXRUnDk%=0nW<5%&sG_sdrnZTI4DSM?v%IHeEm0Y?69j zLvgqfK|>?pL2?jy!05qi(aOe0h7dmXlv6n6*0$+@&ZJQq3(v-W4I*zic>0G}EY^4! zL?}Z<@zGJb*iO`(GrcAj?{vi7J4jwmrNdgsRK=b z9|VOhwb%ldt!dzkf;-!P0{;iXc=y$!q0Qr&3&MQRO^mZtAq=)d~b6&I#s9M$68^bsRW(;uEVI{1T&&Ih}OD+m0Oc99@vDqi=w;6hjDq(_fhl zby>S#{<}kKeUwn??fox0&-fS-IHmN5rNKz)6scChlrW~Z-*lgd&C5HVcedU9KVD*N z@ECI>Ig6owj3YHz!iL-XUv$3xiDHs?K55= zUd~4-wb1mO>nk(<&<>Y9vMztAO_{5obyiXv>6y)j>@2mi19L1g*DmBKjmcKfOwHsK z$QLMY`Y|qYUw+nZ`}9A#B)&)JQe7X}v%0_?0*>cNSY}t9zb7^xe&Z!i-?_~zuARPf z^$3=#UGA9rwJXlEFTMKG_{bxhTDw?JWp~%L%)O*OQ8IOHb$0eCPqFuCLtrO1OVo|= z-B+UxQAqXK-$K~To%H~3BqSau@U|l_&&-G*6v3#xyBX`yishjgHc{id;gVZJvx)T? zZA9@-$?|+^1~Dfe&xAj^@?zs7h@8JUAxl$izHlFz=2BK7z?}BtRc0LGcpmfJQ!~CL z2sUGWNt>Bv#!6P(xCX>?XWj1^;~DrC{jsIYiMs6p?6oH_5IcomC-V|Fl2&bpu&|~L2>WbX_Z!_Qc6@IN2}J6+hoFT>Qy%$xn>0x4m3`(5FEYl}(%=XFdKkaL zpms(w8PiNm<`!e8B%d0-#n?L{32NVpQCbYa{e|W%gNxq_ zrMi>gOD1h-uX)k5)ujzxrK?_&`#PSS94MM*AsTlk6?~&d>`dGhHq=ZyNo&Xw3S($l?G8XsR{=i6qfh+LXC% z0^h}-+vThdAw>}>B+lK#E`7RjL@geSc)U$U!59;X*a^3;884=lkgk!;Bg&BZBe3w9 zj{6@yW;^jwLe@>`wk?e5#v_kd{PMkR^!5R~&|_2T=2t$$-v8a_+Z!)ABR*bu<+)D{ z{FZ0#)kfR-cE=B0YP^ey7c|>vT|UD5m9&bws@;yq@uo}8v`=eO>PxS>#D3$&=iAkn z?X}llxJPq7)m|t4W19c3?myS=_-Ef~!wccfM{>>0->{j@hDB*Lb(OJqMQdo^&2KrO z-*)4@#>Zmk2QSaE5y1Bdv9ZJYv7WCu@2RojdHLSm_QP7^w?6x9`_RiSw7XvS%-FnI z_eJ~6sQO9wz$|a-hO!+z_`V`G-GXN1Ix_8|@WO+oR37r`qc-IxXI*^+&I` zIOhA-XYb5r=z(uOYS(-r-+eVXnG>^LgEi;v=4v@?G8D_=@eP(Uj2;W*vg4D9D#F+# zDi&$29K^r*vv=>vHOP0U{hc-zxzB%18-`auYp*sL&oIsl7!E%lJKTwDkB_2pe_Ku{ zCTEKe{74gVwVt!8TBmSU;Ass@NW!TRF02>cU11MHm8+8k|0GD{V~6&%qw!z~NLnl_U+Q z%FW%SbKC)=A_~EXh#Ch*Mm~bp5fU}+?!V#h8*6~)y!@HP7{#~7fLjzes?vN>&FfF5 zmohI7A9E(%d9QiiybwFwyaQ`)z_KKrEQ)0iQ{OaxUd*)3nzoydTKdGc-gX-w#di6< zcMQ)bD2DCwTNQrSb}I+i#CsL6=}4QlGNX9ZR0Wl~M#!khl*-)Q+{*Qjwy-P?u8Y{f zq5%?YQ^6q(weye;kT!GLj5u+t!T4x{W+uAz%QPWt0IKK1kTbPlU*>VWb4$>-)HoQ1 zRK)juSf!fB70;4&CP+;)I_0E>7LhvUtoh`?X60c79ylzdW!mQWdYL+Cg!BO;qh}Muk}8KvyjXqrtta-QgunQ# zGwm$C!-4^7P+T{r>&zvVhgXmqGpC6TQKb^i&=~{Pq-iQuHp|5Mu6hjYG$T&5E!Q4JYLl^*_G{7;0!wWwJ|itW+zU>X@?sU*1>V>M0Pm+>Vbi{a76&BYG$ z!@B;yZ*BZhLXW&k-D_b6RXUb2%p3ZbZ@%AdJp4%TJ5lZ1bF#5H^??_iuZ^k;LwL8+ zd$gGY&&I?~^piRE*6WfrEnFhjwlHx)Rk+it%=b*=#TlC^e|Y7^_S@Q2VbkTU&pJ!@ z&8{8mk{3(;W&;Wj;>6J20JLeU*E;ov8a`bt(OTsu59Ao@qZisBxXgNO{1|N9I z(_@p04FldC^P%s%$k;$&V`rzYDK_o59GT|1rGG=`E6(3zTsyzWbd2$)KR>7&OJ5+xyE4~nVei1C2_|XL} zo_M}PigybsWJk&sXYJPJ;aPFLabNQ>V6HvhQMqr=&i$^#=Fowo->wtX!p}^wnU37C z9%$w**FHUa+4L1$tNi3=?}^_xN@G`g7gTc9Cd+gjJo=cuU7OT`YZboKeP66u<}GRR z+R)@h;G=H@EUI4%MFyqkyWE^_o1?%{JbA}uAOxHsq)b)jnFb< zl;}b54%QYZQz)cPTd2&P9B_mn*a!i9dHeaVc`k597(f0Q$Fc;SA=z2m4jvngWDFQS z1sh3whjqEuvjaUN;^NItyg4H|z)qY;fD6$c0lQciCp9TuwKKnmO+9$b-0@p;khz>g zxr}(6v~gKT4i^qzD{u}Gl^Hp9*$y5x@A4V@5!EKxx?#f#3=&W=lBbVZ!c{lQA|QgS z90VZ6vhZ7T5IdM{hf{nZ+c*h4J?MsD9{WygbD&jk-@@OxM{u6la3)t)3kLaF7CKY##A`oci=%g{MZ~v zc#nUz_vBsnuP;3__5m1$yPJwGVOehG`e&W$LfZ6jcO%3&1WnC=p|L}_hOC68-%P)o zx@t;iqyhE9f`vg0(wT*l#)nuryg1aQe1+Pfx@30uK3{f=hAlmoy8QSeG;NEK5obF1 zC?Q{nEx2-d|D2B!MiP=E7**3dLq7cIF?++O*Z*IpNO>aVEM1$^{_7M6nu!k9lM?Yx znO9vud<3As8FeC6;u?xd2Gix*!=71-6=&}xi8dbfs8V0OTMqiw4Hn;pbzS~1iQ=D> zWzKZ_d2HqDgP!<+O`h5FG?^Udn5k%!fO896UrO#wiN*KfbFIQ5TtnDgSLm?Y4rx?v z;sf>|ETb(SC1if~BsqBJ)8`L;OFteonP!foHJ6L&@S+}_K4{*-_lH+rWb>Yf5xY%w zjsB4F$$KBll+yer*=Z@giiQ@f*>zugaP7?@#`mG`y`YY>tD`D?6vK;B&AE5qCDa+e z9k>rZ5gJe@Un%KwCz7#SjPZEC3+tot1Df67000mGNkla!S9D|= zv80|qcb!Mk?xlmOYH6n+^sgrQ-6ybG6A-aS0_go{TTtU|}P~ zBV&x^ksn_pO5if3R8z35L_*4}Do8L+(U#}lI7FxzQYy3b^K`WKh@h6(3P+DMKv<<3 za}-w}G(jn8b49|nod<>_C?&`=s?HcRGB1WueCYJ24QH0D>A(}i1<0mgBjBmP(;hwb zVK-?ow-=HjL`LH@AX4OrvnU;-Pn~}BY&)XxOl8V57dWJiO?#XfHYGi1M6F|-=qgfC zXcAz#D#KG}D{eiHH89mY_@@!J`jIKnDP(b~BnBO{ddIu}jGg7g6!;c-agZaNH zwGA06_EdB4iDwOYzzJ#=T0_7BDRZ4T$(uqz;yw(bHw31(S$~<(-ZYvT!km8n1iv7B z%f8bsKNiZc5DhU({6eiUhYqHx6j;`_as@U{x9z;?~cf6G6^m+>7b~XXVtj49_8MsNm^pN`cNVp`(kh@ zT(exeVXFZ#fmO*=tx`cKs;MZ1>yY_988)%lyt?k-1Ln>|7<@`QdvVq6<}y@J3PJHM z*M0HMCh;p4zSoL%A`haJeTLy&!Fu%U^777Ier^b^T=)p^ukJrjxyXcYd6oPnS#sjJ zAQXv0j5R85LA`vd7@wP$=1S$lhxJFlU%vTJ{D&ocx7Q*mjaIKefA|qQ@X%vws1Dnd={MAdADJHu1LTAOyjW zE(vU_Cbq%hPA4^iAiqah?W}cKb11C0THKS%g1L=Fs<5bR_^@&HjGy=(;~iLArM=({ zm)lcLKP5uEjz5eARW9pRp&66w;9iq?)m5c=$^~cGqK^;OP}_as8TO2yc&WYcx8A7O z#hYCj-|HMqPY7hkf?Lf4_d3F}2U*nC`%YaUoh-DViihPwl<{vbE*~u7RJ~w%csp?} zK}!XfHkxx1T25jRL4!wII;E3CBg7)aVMnZtz|v_0LkLzLRBs0`(-W|ws`{X6_iCQQ z8Ep{fvpLm|$&To;?IBHtD&cy{I(Y0d8 zh7T=s{n92#Ohb^VePJ!4O$UCdzF?;mlE&Ot z=)zdECd%qjF&z+w&PBqmQLCz&Rn1EOnE5GV}1xLk4)&hgX1foYF zB2ZFtaV?MluVC* z&0qA}7jAhPVkFF&iKYbk5<8EFhPi5W;OL|FBY$z{sM#*9 zozjYmV!NG0bX*mJ^*3NbW6 zz!@j3Vn|YG!b~iD!PE$h#o_XoLBR)AE3bNvA{2M(IU&naBr4G!V=0*0UDsBeFL^44 zFXJs}$7^pgGCxeXlyX(Yh7}t<+ihIY9N}G97ytN6fHgzFQI*{#>GYY#93AeciZk0o zB`%&)KjX(=8XHu_+PaR7EXB{AA05!V)nEkvagoxQ$2H^8qX!N+Q{m%&N5BM>HF97T zR|Z{k)r#xP(Jcxduj<-Ka#p~IDjVZ`mC6NnvS6H)qAK+`9F z1Qww!QvkpHZ`XSl78^S6cMyt|G6<%>d@q%yX3-Pt;i6X|v_#6$96E7iFBp0A&#ZZc-^t z-kp(JHtAxS!GIJwxUMj9$&5#tiHNp60T_foU?6%B^duiAe9rG5uqV>yJnshj-cNkZ z;(r{Bk!oTwxiC~=OSPq?>Y}g_wC8M!09))k0#3NQNS{bH$a4r07;eN5L1s z?6C(Qwp)MY6V+NyUHFD8%Ku2%gx9GAlNgOaG7R)0Y5m|FBDigH_RGK17Jc_s8`t97 z{;$v2V-M&W&SYpLJ86TDE2h)Zfm`{fCrqGn%}fX63if)Nfr%CsE#OOhu5s~Dm$=fx z%sr8?nQSu?Ray&z)39>TM6?kXV$Bhb!6tUFgeLyJ{ghYevSn8v$Uxgf*y-eJ&XCsYfBy3H1()aWVG`cf7pMH#X?y#2jR9j0qx)?IQ(8);A7(Gp!6e4HtziRpp#F&J|wO~S&B1!`KNth zHyx_DPn1c9RaWuFA!oEN=Nx87MCnzOs@57)r=CTq_C|(L;p7#^ER*Ye+U zr(*^Erb|w@E6+VuC#W`}6G`^dYS9stninN6`;*%&zMM8Zk56^|z27qas=rQe{O@!* ze$z_Z^x&ub5HR&_Yx5BsKH{@&;MM^vd9S_Yuzl};`&#p&yH21zd1MqFw?S%gTthO2 zN-eNa@qSI`vK>9AubLnJPthSq$Pa8?43xTK9R zgIr$tdBxAlXpyXuX2hp)*)RNn@kQyHjv<<6xWE83TnNNAG8(dC%g6+pLVx?-`uzh4`#P^0*VR*auldqL zRB70S$7LW=7KEzKbf|)lHJ3@jmfPUe0aS=W`^O1B1V_XJB%CuTGe{cP_Q#T8+b3EO zu`4E#Bcrzz8uXYEi)iCw7UFtMFm{S;6$?M@!?3dW*n&|Kr$5L!Rr*sC(qinfFkEEJ zY6P_zzLXpV8X*LsEive2CEG2GCjf~6^%fmK2*-Niz(&KhI63qn8IcUFz@$d=>;bQEl#S`*d?CipJioyG<1WdMBJ-B_j}Nd| zUYqA9=naDFbm=i9#p?AzaBpMuI%tiVca0=V|>H ze8wll7yNR4IO0O5MUSx0)9|#9;>Y}-1QV8QFiHm&x>BZE zIFHcG3PXyr@by@^6z7x}yp&=TybP`HO{!L^D)rMi6!jNkX6#JpB9^<>7%b`Qf8>SW z8=h;DCvku7wZGgFl?g4PERGjBrozayfAPbQ<12pPz40G>`#Uec$wK%t+A}YGD8BSx z{fz&a2OktYr1TejRzHu|N6&9;uBV^Kau5Ev*2p^NH!V*b^)LZHk-R}b` zK8iU$_aD72p7?>@dVkp;F@E0A3GP1mqC7mpOI@B*SB8^*`~WSFjUqKANy*idDBz`u z#3Rh=A~Qo>%6Zj&yfHGa0#Wu|g!TWOht4*>b; zU9tCW-|%*QAV5j%*3l)ox7vYxt8OA%p8RN95mOwMW*7B@%|-Gd#=w{bfMIJ6+=i|(9(j9k+cl2dO+2}yot3^pL&BkZ zB|}6GZiK!MrU!7~j^Tx{7!;*m-aro4kA1!`iPS`^A}A^QP~bUVCh672X&3WYZ7ey2ADp71o^e zL~XEE`1Xv3im!HQ; zT9n%58zwo~L91AI+x?rK`(R)WUZL(Qf0Mqs>$%x>TXXH<8?zxcymGoR(7p-e48|8M z$00@o{M-*BxWp|^Wr%E+P9i-%m0|QFMVuosl6n@De2V7vYdrNaK{YCuDRArDk!3Yb z&*z})u~hyKfq&sgANJ3$evdxX;is_bJT%W(01l&m&8*x2=7oC=-~Yk~=u z578;m=F|?);8QG5=L}3vruenbHMqp2_X#ia*O?2}=j&BaFoZHPGwQ-`dn~?Q zr%@bn>=)`ix+mJC$0*V!%8eM%9y|@Q4YKeD-}U}@>tFabe{jW5UHPBfDg8^g{1Zby zOyWZ|vdA5qvbrbY9V&0WE1SEB2Y1H-M>oJC8AhLAjdwa%^F-LRLpNQs#N&-)qv za1)pcfyR)N^Hv7cAw!Mn$T6%j{?5ig3fwke=FehcY#n@#*W4xc9yP>XX*|PZr(6A?Su_(PVdN}yUG~uU6Vb4xXr3HKxA@s zd+gWckm88R8cTh~qLxNhp$_@0f8v$>U0D7ptk2MWW=SmmG3$~M%elcDEFF3C0P(_^ z!uC8)JY}2ik#e*R4uEn0@Zxj^!8nB(sXijJ{Qlb50)~pp9-8Z~ zdvMz|u5Gyo+!ogMJLUKB8}8AEho6lEA}(2fPc!zPh#C{ z&&TV31baaq6aL{c|Ly#!rBamle8%GK-9^m#6*mrH*73%7zvQ2gdhI`cd;Ib5`&oU! z@(Y*W5XX}*{#oSfv^IW`F27Xwue|leStm8wx4-A-gZ$B+6Nf!7f3}@J%&xs1VuGZ5 z3R6wag-7q}pMAeSDEZuPc{aZME$`8J-2b1d@l9WUbNjj9{5I7aA6)eknXGYptwAkx zRN+f|Vm+C9Z8%}p>2x3QwwFHapYr*tAJSRL+VkPYSN+g?qhowoafP1?{^?byepObV zvbA;G^Wz6MT&b6UZ=m@Afqj3eK0x4uL0*d`ynD}>H|T>Oey0<)_@Ln1e}>oOKG}bx z4-fbN=U|+JKGf+wPT!n7KOyDUPcMg(81b@4!iQLw%E)-z&wa>0Eyh1_`=WpTE`6Bw zet*bv-@2R!KYhkey73cN?3w56Y901KBI#rYKLQ-O_LBLmbUxJnDt-8df1Ts^M)~Ig zZZ&wGH_lWgVm?lzE-}_qp=sm!<~@iQxqSl%bi=v;-V{Pi0TakY5SM`S;`!nCwDD6} zJU?%I*9RVS_A#!mNv+TR`)}3j`knrXEAB%kb0cgc#@6_{pI+>n|5x z_ruQx=Q_Qf>x%n*QhB}Kz78X2|GYln{n>c-rC;h}jV-s(3N(%0N7VNb^^!6*Io3J6 zOzar9=|jL@3_is2T+GAT?0YTO{ByzY&|=JsA9@_G`NUtQdYh-`mw;}X1JhSXp|Lh0 z8gs*Esnr*HtOH5}suW`R^FS}XK5SA&1hPN<8(tL;x!(A$m-LK$Xbe@Mfu86jRSPXE z<^`c89k`LqL6&F#eV<}xID@j#mBZx5{y{eya+2-APhqt>Hp7aB*ZruHH3|2^NC1xt zkCpBt)Xxbf&_pX{C8DmJ+jDRF$@*PUq=%t?-}k*U_^GTx9o#4Vrq7Ju`j@^iKH=4$ z8rrIJ?H#CFXIFTy#)ntGFweDtKlRtYCs?<0%S8NCmjCIX6EAny6CHg=JzGXL z6l%Ob-^EmqkhAUx4Cj~t&|V2YZg9eGOV07XQQf+c>kHTS66}y|_Z z?sjo53~cp^o14Cq48n-OTRuRG+DyaT4;{5Or$Gi{YNjd353C z#cKSszwlvyc=h@peKB6A53ycvdr{nr!G~AH6()YYbklz1h4_Z~e~(f-l*7k7&I%VSU5!dbDF7fB&aniqMuvnOHA4 z8=VrKd-%eehH9`DmO@I!GdeGR-^m~N&UePE|KZ!>cmLCO#25d|pAP;B3EzZ#?f88t zXuxn^`mcW0x>x^S(tq1e1>dmnQ!#VT6dsoHjJdQI#)nt?H$0_j{&{_f^a~mt;kr>5 z^|bst_^r5y^{S-CSn2~Q_smNl(l@6s#_xO6JL41n&QHYe`X@gXU;HoL?QbgiM*j`^ zaHWlyZ)*9#2Hj`>gP#n3+KO}Ho8AajrD*8F*G*7xY|IbS>58|o-^kQ<=~XeF{lJIn z?DP#RYk1xG(5mqBTI+kG@N>c#9KNj9R&_7>G2hD1b!hTlqx}^v-_(EoGcW2J>Yt9! z)rWY$Qs40ZzBj!i{GpT9%RjaH`f-L}J`~~nzF23>hdsYpWBBmu4bQxPd=RQhy_oh9 z{zhN5{EdBkec<94f6a#O_)j=hc-_N_mAY@+hi|%fwO-!K-uTWB=)Ol3 zKPALH;+K(g9(+gzW)GYPAA0@DH@?+lh$NP@o|9(j4ulM}dwFhH5 z@7LLsm-oFG{8#CNB|bRk>k_l#V-r$i(nlend2qzo8Y&BAV{FA4X!u~K=6X)=^ZnlZ zoZf%hv>wgxwQD{6#O=iT8urZ3|B~ubH8g$Ncpgx6*#5!0`H);?4^2f6@g8XA3R=>>*zmH1q0wSs zHi54biOBIEJkjnmLb-~gt}a^9-XkTd!k`&T;6v#)-b# zo~(V6La+H**_Z*cUNK2{QHLkPv66W5f^O?L6Y9{&U9@Z3g9yQ4umUw7X?q6Dr|Li| zLjk#`Xlv=l>wYQCtaz+uY^FWzf*UdbjDeBiA7EYLwxQ{RyHsS>7lX^p9hn?D7J(5q z=Q*3irH22m(uloGxqD1{O5zL!oR?s1^1%7&$kgQ|k~}+G;G5 z*qe^XY$75AwS4>0dGAP+YAV*keZNA3JvMYPz|N!i+*R4aHMTJkXPC-sfLf{uj9kqv zu3Blbf~oKM;V}u0z`RH0k;*Au=e0Sh zP%RJtE)EsyxZyhGkju=f^BNR0xUoa!CMV#WJZ+@BRN@e7j-SHdLk>PD;KL9;$l}8Q zKEMILUf=xk0S+JX%n#OFTovXXg%7{H$}0+Aq%hw|Gu4?B#AAYPjVaOCiKp+pY?s*! zC%?&DVdb{q12oQq4^8+fCVyD+JwKxl{C+0Dd?@twZ+l;G9(Vr0%5$pIJnB!4jW&gV zSf1BEXXZ0j+!FcJ{gaz*K5Nourupg(tAkK!Ny5X4qb@i?j4540T4FGHj}hk)^30io zG)72L;>-kv)4?@jpe^^5CQNfW`wu-1eqxNX{VIJx^i}#Gh-Z*z@k_t=XO|CIUyQHU z2dHm;;TPli4{0%DzOLghOw=5Fw1=~4jQtH=rzwabyT-xGIwd$8XVSr==pwwUHY?u) zoz{Eth;@V>(KQCG0U^HLUl@W>k$fssK6EL{NAlG&(;!n`P13*$reFq_Rv<@}uBuR3 zqDJM>W1F%Wl(i<6#pL=PR4(E*pZqcL-;duBN%}s<`_3Eu7gt@pN1x-ti{1vr8H-aR zJlIWKMoP!XHeylc@omj3Mk;3sG)4>$ZiBnQkdmr<0lKtI3hjJ9Coq}ETxNPXF#0(8Hh)ZCpIPkh|oMBKL>M07&KU8X%G20L}cT1`Ss8xlw+!A{_=OmOF#BrMVIYk zKIP-%H+7{?Qhr? z58W`mvvN9Z3;^SAwkIq0v90C7pX?ybtyls$OkYbCRU^h&^N) zl{jc;*_=VW7b-QPdpjzv!w*=SNUe#r@dW_S1mM+!UlvPMnF|0wh+A5%VbiK=>r=5U zB0()(eYG$61LVV*pUV?eW>??octKwB3Gu}d31#3GP z0sGvdUQ#-r4PhD2H=$Vl8M9I4GGT?iZ*px_PXkEG!3)m&0LGdJmpxXko)d-{F!0Sr z9X&rD%iKq0Wh2%)ymnFy9t&MMrNasj<2t}&(x+@~)WJe^V_p(#T{8rTS{(3TuB(n= zax+If16DffOb#(3%%lWrhOFmdv{5xSxd`zd|Mf&E2GzQ!=SEU+}x;AvJqTyW*JxSN{_s?Ge6d->wkLen`7o?rylnN-(f1@~4$dTi$-hWzrrO2}*2dlK#= z-A9D39xb@GslOqQ77b|(47Xxp3=aQ5V-G&Nt|Pzk+sid)og4R20UN~0@AvM3llCyp zrE(pG4;v0J=8D5b5`#p572emBj8@soRgXrNvU7vOR$hbn3=c{$TrhM=$C;Q@cxW7= zjPq>XYeH;Zth{P79AGeI$N8i}Me6r-`h#{d;fuLCi&jI$!(xKn6jrVYd6&^BzrMEkAAj3t#Y2C8 z*j;}Yr1z?+$H7E+4dDx@Wt!S?-4l33scd8Rz2hXk*q&L)9iG$Y;k)udXg}+W%&Z#2 zRS@P+RGj0u%XQuhV`iZ>*_b34j~FAyWAJOtNyC@19jv0g?>%?!!$0@I_`(1B@9qC& zZUy9y^SM7Q`5 zQ&g?B?ThVx<8`56ll3StCd!A}Sh1lyy_*d$`abREQEO(wS{6~V(hT+P;;AkQQsC^( zHA&Fc9A5J`Jv?lmFVFIz5AO3m<(2yY>n-p9P`v0L**~tGb+bs=dTS*LopIcLG2p6V zt%v|22JW0Nl&sH6P|uTiNsQeoR$HJV3Doax$@UFk^^$${kH4rr3+&>LDtgt&K8i2< zoKM;3WV0+6gKaNdOCM{+$&mB%6O@AE0cnsNf9REqut;3UAmrlWBGKbXwy3>wTEHXM z3MvH`quN?YOsNUNcAXd(TRl16!494L}oWq9T`ibR@4L)Qo{&dVl@z^RXS5$omqNSg^Mp$ zI;h@obkxB{7#<$u>I9yl*ht;q9q;B^sxi}GT^qiPJ|a{5YJqU*stiC#P3Ue-b-0HX zZ>n3sr@gK;Bb|xq!&jbSlcT#W=LvEMajXN6342@QF~y!n7>Gm=XJegdfkPv7S>f!v z=7D!W$B5PDumzwaM2Ej(q>!}{V=ZmI(Kb-H-QKe57!ow!{PPX?T3^!v<&D{alGKYUD04PlKaoOcokMb zCD(?~a|le4K|~je^^$H411+{0?Wt6pdw4*_rxd0&4_J3o>)T{v6H`Y{W)knUDmR-n z6Az#g105Ywtn=-UDo-^j=2XBiIk(ih2kkf%BuHIm68g-cZ0SC5Oo=~ELcUn~v@%8R zY6WV<8cB+qOQ`vjAd=$*H;uMH9PbdsVJ_8!!k3~n7;BYwBUUGVl!XWnqf?5{#QwM6 z`77cNz53z5y#4h*{Cr$onsagk&s$9_Qwx?6x>$;wn%U`zuo%J|o;af~Mq?fCnJK@L zGPOt@-`L$Q%)>;zmf;VFe>uTWT_$d0Qb|ni&@PItq7^fWm;rd=wsTzkt=rI$H4o;O zy8qap`{sDZ*L_bFxS{6*D1IXA-~ESw#2;q;$}jruSCyYFo)4|ip=aDx;UM4rx88h@ z53jU=G4AYA_g1ea)9IeB(fRzEFP|D)#+XnPx>BasJ-uKipkmIgBK69tk1?nO5pmGO ze%-|HijN|?x){!CS;IlI8*ePw;P^^y{(9H9a?et7nci=p)Y}z0 z`xczNMApK~s3poZ@NG)z4P13ZfaTm)48i#3+QYY9cMyuyn8FKOubf z=l$u`SPiS@l<`pQ!S!^&cuz&$+#@_>*HI+fb`iJK(PhdfZJN%aTF-!TUB3nLYOx;p znBW=h`LDd~{TlPiwJ-aePuqVAi*>P9OiLn^b7NO)Y*HQD%FrKPH6|6$MxqBOSG)k6 zEE6?WnNW?GmvqMM!&#n)K5a&3(uXgU6@gHp-kD;NZmtC?L$eiB&!|UMr1}(7ZC6yx z)Y?Yym%=b$KO6)nV=Q%36=ND~M7U5Kt|TIj5nyn`&O?|RuIDF?U=Y?t;&hQ4)Pxf# zv0{ZP&iflI26HxMVxREo`9a(ZJlWMJ!LZ6rroxevQ~c1sao6bCsIO8p24fK9FmQ9= z)ts-x)uyC^z~B_F+N&51`Zbx5qnvV?>PEiLk}xmMGoeqW*P-syfkeg>vgKa_?Go`F zu#LlTa@Y{`dWvGMk&r7+U}>(m#Px+=gv6OFtWDh9pOS=aNW3V6X3MV>!`dpl_t$v1 zU2$*3KSkm^_^D6^^V;bBdEeB>NXpR0++*DB>hb4&5|hKgRP%WPWM05Xpb-_GdvFo4 z%i-E$zo0r2R`d4!8Jz;P&K`VEM}4q80P8_uMiFC+O z?e%43C8S|IRzw8Skqs_#7#uzV6uPv3_0s^C;BqhLQ z%4q{&#+0v~xQ*H>p>Wgi%ClAxky)|I5KhZT?RSgUeA36pxBQ2%j{ox4e(KEK7rf!^ zKj+_-b}?>S7_g@Fa^%V2pp6LxaJ`?}eJe)N8-XjOShb8`KQ@Il()hDA-~ODxHD=yb zK#?}_f|=?Bt7T-SVfBXIL80oYy5@_$p>H9cff%^uV65Zlp#4lN;Fvo`i)?{VhEolK<2YVkOZ=|UE|jL zy)eaY8gR~?5uG{9|WHSQ7oO*S+aX^rz2 zW9Jo66O6DuIF!R{891A@LX#UBQEuc7?$FH|LwhPU*gLu|)}CRFU04B|YwXQAkWxAI zcWpiDtf&0SSx4!%k%UJJJ*dNN53h|ZFGqZgt1%TY(YU55D(X}W=3dt2)YYaDyBsPf^FzR}ebD2tHvXxUf(}0V35)&ZP*NSDnCG|f)^Zr-- zr?9^AH+@>IaqYE6J<5a8Gd)n~uJkv;?5Iq=^!_G}JEd>R6-w$}K6FW=u>xwU=R<{4 z=mtiQnQ#Y7$@bwIrJ-Lfe8GfN<$0qwa)HpLx!tRyFivV5ukjErPhW#PJ}xhKY-R{# zjKZ2{M$rmk+Z4JfuB4t36V)voMJKEN#LY(B2B{*rwlx$^ zR-k%`4TltnSFUWe*>;kJ(u926<__HSmGQD z!*L$AT^Y_V@d`DDdl&L*&JZ^aC3p>G?o5n}r%`u#Mg`8gWt}Cce#rP$NCSqZDvK)@ zWe^U-l`1{#{D-crqb<}EvMgjj3vYrJA|SM1Y2?!1dD zqT49Vk=jURT7}CLRx@#WcvITq@7U+i;e7^*!5A@K)SQL~iI{oFVZ`mhiy`mjCS#PN ztlVslGn@sZk8u$XINi#DHB|RmX#gfTo8olkX6gwi+UH3^8SkKS5fO7t>01%=N-0W@ zf{0Xk^(vksSf5-d49A1u^*5l>WaQ={6Ju~U*tK+XXFn!l4X!4@eF=HTv#WuYt5b8P zWLfe-4(B{ws>9^8i!B=C)6qssmNFV14o@7BIdD6_LD#zx$`}`zGsh#%$U~;15RWbn z*BI4vkrVZKulm^dbFcm7@x#CW*TnDntWSh}knw@@)t|mnwM?x{O)!8uC>o(n%dn4- zXb*x*3~m^a%r|jRH#y0iqTU&IY{A{TWPP@X%nYuKlw%T1P_0pBMkXe5X}RDP-o&q( ziJ61}?ZG7RaNr;?P&Y~8l~=gjjWxpvEg!+bn&UP!ZUN&l#=?Q|tMNRbgFo;`zbW4RO>e$O>0bFdq;|1qDlSFpl+%#cT%E^eF4a4sE@j;|0d#N}GCZ78 z(LNv{KBC5IZkWLHyBmU4yYed@(%uB#cH#;90qQ&+el>HW{=`}bWBY*Mhopuo52ySi z>x$ib<$31OIIkFw!Q;s>01QWcV@Meo6AZMCTMLiDGZu^yGLxkK>nZ;rwa}{(f12k03*&Gj)%{l4gm%(>j;na{U8fYz+z}Re5L;ngm2;hKsfiu z$~gI6UHM`Qch6(c*uyVG5Ge3iygB(oq7Kr6a);mDL7BH4B{6b zzv4fI_3J(@e(fiHj25bv!{pqwd7f$0!u;>CIp^Mjc?pvj1$p5R-emRNOXy%Xb!r)r zsV>%wxNYcyxHS4KEC@5jVWD#4mpnh#`7&ZPsaT#392z587;7wEl=6%cF&a->S_Pkj zEmurBTa4BKNsx5m9P?nIYtTZ{x?ekGJzoAqYhlGWU$9lCMgZ=)N~L)wp)5MAIW|3o z3vga~Qw#v$#o-7AaW?BgkS!o?oH~nykjJ6JhvPj{D11pnC`ZT#E%@D(P}}4CA^xvl zJ-nCCbXfCU5iY&b^*obc-kKoqfpk~|RB-hK;MG)uaJX5^@whj<&d}gf1(QG?m-df< zvK%J&q&Al4;Tdz@9aMp_glHWzgf2WK@R+F4V8e3IF&Db@iqct_M}R5tJpM5fNxTS= zz`IyWsf977IdB^}c&xdTf7Qp_l00dzhT5BX<}%QSCgQkv+PRn~*S}TKb=#|=j|HRbUk|FAwH!7&kIBePkZg<8f50oqvhk@`CdqeHf6_#2h(O~c}t7Y$^7*fh z@A{Abtq1?Y_L`-7{)Z&bzVzW>I`$HMX?g6Adryuv9r8n$`p{0Va7P+4VM*Y*2f1;YyN5R`^WFP z;`d!K&t2-J4>Tp+EzQN~+h-iF&3jL&FwTQK=Yvl=Oh7F-GdxrPFvNJ1uVBaG*6F<& z7PpX7BmNqO!#s8w2W%eCsj=swOCJUz+03Vc(V81!IPL(yXrnOwBT{3I`MT870}VVP z#}QC0tNb9z$GE`Q2+K*=b&9AL09Yy9gKs)gTE$?@DFHP@b~!PtA!sW_ z^>BsuT@f<|k1d)7dJ1B!Wdq}|rn?$k8@V!=Lg70Tx>imhjhldhSGyuz(>LLD*os*z zF)#ZZ>%sFyu8p|sW@f|tdnRHOzKw&0vq2iDV;;VQHb-1{tr>~-Ch~k-qW1g=y`uko z@E3k5-u!-kfjfI*mH5*FZwnc6HBW+CcmykM4!(>m$4|x>S^?)cW4N2l!bRE7hHBh2 z1pbx&DJ<6Tzy9{m!1;m7@!Ui3%(D%)0A`C|a&2%P*aU~jhfHH&W>#7QON&q(&RQjm zSI$K6y{^ZoV}97w`WTT4FpA?bcw(j8;Fw-R9OG5Wm>i&A>opd(5V^L;fhy)d8C+|& znvrci4xdbFBf>Ny<-HIAg^EH`1p75s*R)_TALbzwiiHnPqLW_l!^xj?+7sqRCnq?ut*Q_nec-o(sIo9jCq1DBW zSLQNGICF`66dQuZ!-28Jcx>eRXek9Qy86r>$XOK!V))UHxqZ}8<*1WA1oF%&W-Waf z3b_pq8P;*%S4xDl$JL>WaZxXmXCy){e5u&Rz4iwtsIkXR-Ko>~gN_)3#8VD@&2GzG z(?5aZCptnkGquNU3ptI*@P8F3-rE(*XS^$JKsk6kwkgKIf_sC&b|&U0!JF2lyEo$0 z#|Vm|uQ^KlfU|?#LgON;i{s6{3@>HWkPerrUiB1?I>aK>>L3Krs7j`CyU=Lw62%@0 zv6qyuRw$*aiBdEc2Zk}BD^od4*aCc8^BrFZW}<+$V4#w&PyTswS~7MNmFpfsBz z1yunc+u~IpoADa`W!Y;!>0{&fe%2?%AO1C;5?`hdtN!9|`^@;3|LE26uK)Zs@x#CG z*Ti4^yw7~9pSaRwv%TT%?+7GA5!KNalX zbHy)=r|zZh_LWtZ-NZP(!ZEI66xO7BA5Czjx?DKMq&VL)0|o5`-OjPeSD@oYuhVj) z&v9!yhsV&h2V))gm;>h^#!>0@&q;-@_SX)jx%QHecFEK|@dsFF<{DJL#b=KWlLR-7 z7;B=(5jTJKouKeV0mT zScT-L28*rqIVPtH&~ijJFy`Q4-8y{5Yqd?A&3=NF$V~Nm@WdOaLnHUFM!9uw#Iq6! z&2_kcn^&`0Gwx9ZdV!fNKe%G5?a!n+zwyqW|H#>u+JE(#pNl{E zJ?|O+jE;5j#dYkhmhPT)V-C7QehtG}>`qa8!7HuL#wkg;&0YE?&z-TJ!EGkg5xdA3 z4HkV<<>L3-}sIXEcViZcm8j@ypL>SfDlmV)ck4m8%GK27(GZc_C z`r5G)BIo;%6BHKN6$s(+aK<$b)vbnB0)}SN_qbH0N6K_79yXgAo(y*8M>-aTZ@vhO`J1k<)_)S*p^!T8y|oSmq;TgR0Z_ zFgq5PGTO!m!k!RD1C7b>G~-W(1PYHe#t&m|%%!^Q$eA0shsRh~jEf-yuJV2vP48nw zj7=p~G03*AcEuxU8r-&W;N~ff!C@;_{OKR}@aIXxAgo6|UY??VELs5a%-h z$b9DVcWM;wS}X3sT^NrJP3QW4X+oZ@bhQfZ$39Ue#kR;4zlFRkbQF4+$Ot}NyISN- z5^HkLv|52sp==clURfA*VyIMAX0-aq))gugRx|KMs&wrnH^t~1#b zrKYGzV8lBji)~OcJTay)G$6S8Eb+w68^03WT*zti=G&77V=GqdJ<12>_bYaf2wSmY zYvgGwCdMY0k*ApON#-$&Xq|n{^{=#;QiL{jYKLtQBcuQZ#u}4vgMYcL=eb(&z1~8H1_o2e zB#7AuzKs|Ov1D#w%)$M-+lJNKf)u?L&C4GeFlK2FRtonp(-ds$I9Q}w=pM6<7}t3o zOO~AP3nW7P$lc^hg7~O-_UAtw|J{$hFaFdIJ|BPThhEsNWBfzx|53dQdoKQzx#!}~ z{^*PGtUf$pHLPvBJQz}D$}lk7-Ovch>f2MeyO}3KYvr^WjU1d*MTm59^?S zO9NzJ%_6k6jLa0F%v_YP_NN3lSh-UhaL)QldNIIis$-N zYHdmdQkkZ%j5vh>FF0>092z`)=ZRTGc@N_Rg3CIA&UMUKn{tRVOOZ`pUGHP5X9eM< zrSO^pw<+ba#9%xIzQvyQ1FRQ6tVw9vOQzmWAA7v`v1sdLBJU%JLzE&G|G*jiC=+=&*vBV2oIvi3O=$CeHCay7Lg?HkHZD zP>V=fhOw9DF1W--WQ0w72wkba;eZN}C{sS8E@IA>2#hZy!q`oDc#!8MkP*v8W=?ax ztZ{OrBjb@Qbm=+Lx^|ulsaz@tW}M(`+sIAgqXzi!>JNP9yMp)s!=zfOn$|VgZFroY zgPj0z9=WTv`-sep-f2b-JUq@S(NAjDK1mds;kqz$<= zjNJRa|DEyfzx9^j|62H#Kl(R=52wEC_x{yr<3ld^w|@1vS%;o-IaeD(8T&=yJvwH{ z!DNI+g|8G!BTft>K#5n}^oc9Uu zO+vB&!azO0F<1-?x7#JN=T^k%H3r`{mRyekqhD>!JtDX!S_ho-jKR?0G4R>W(JpHs$B%8NZSqib)1k0EJEVwtsRp0WN-&C!G6b@O&;i8^c|9&jZlc_x1CYA8E z)we%TfzB4Xq>~<*09<9)Ab06j!hcDEa z19gq3pFqjccB)Xi?nqv^+?fH_6+pE$UuU-u^T9~8^HQo=p}j}{)y@=1tX6sYLjZ9! z#$mAXt!9eCjVkhb(4Gv{iE^lt_CBVYM5PEcPxCkP&wSuR(bsvZbKJVQ9|W8y39yY0 z;$%(VcqApD-+Tb|i~=)zkYIhb8B)rZGYwbGe`ClpO27XgsDe2hymyz`H zuldCBJO8d|oE-}qWBp_MT#$#)N6}uV)A_t>`!$v5# zD^`BR;WY=BXf=?(HDPP}_}Fz3#%Qs4+N+DKzVQQUulEp~UTqcHvF@oKE|^p@hpKj5 z<3y`fCXLhu=Yl`m`heH6;z-X4(Y-vT%7;Sf z2Rht?c|$h>?NuGGNmRX}x`8b)+$*3U6)*d=n(02(e(l zKKzDFe3LznU|8!plP(cj0HulXybplGS1Si2E&9EVMPV*Q#qJwd)IYFq*<^fE+nSrQ<}gAc-9vyKC&^8p!8ym?DwxYkh)R0bDEPSsWBrg1M%qpr>g_ zW8IDcMN&sDObVzu3C}$zwyA?7=?N5TRfL>Nd3y2AgUh%VP;D99lTAHedbbj}&!rFL z!&k9}*Sl*1%EFH|fBMHT*Y)9dVPE(V1xrcULe-z+V(GO{=C?rO8~d!4H!t69jU_h? z2gXc{PCR8e+rj9q;wX}2q~Ng;4tL3n5l*Nh9LCZ;tZ8`R1E&BT>mset4a}45Kpn#{ zK|eu_iQBAapovz9Fm$JkV)c7lVPWd=od5Aue!JA+F#o#Bec%2^R zVF}nm_UgTN@ucC}Li=Dp;j3A^33ZH+qb-ooh7=>$-if<+sWr5E#oU!lF*4`n)%?78 zDg~M86tTh6c9f$S{!j}7gT$}K0QgHob;(As>}#XW{54IC>!#Wxy}MNiZlgFDzpL+o z7<`sD$Lne@yra^iYOZ}}h_Q;pXT`aMuI7ocppf{FZtGPr>#_hA#0$-|cw($$Jk}cU zjkeCQ;u{A%RYI%v>*}^5Xgbe|Fk(D8djUK=cKDO+njra5dt#m21mrL#$M?;^cdSk9 z4;Cciv)#m>b;M{fFt%diqp_5JZk&<4IeZ&ArEqh(Ed9(`aJap#Ak!F+!4307!qAxD zp$zd;8td&6Ou-i;d*)UmwX>9$ zg&f?aNnjEM7!QG$LG_^ocF1Rr^I0yZL#~G%^ZvN+kIb_@E z9uZe+DW&0uXcu%De%xSSTxLdQ#%n(LV@vzM{@Is4bamvF)$BT*S!Rw{Uaf*FqsT$y zOH{o$HRDYmRs&QvQvZQ(GfptC2(EDlnFRjqVkO0?nPGlx-5P7e;P7p_VY;uO)us$z z7QVK4WMAE5iWbx`Dkwg@7@iyE^VERO3C83RX{ju%^P>F0iQ*~K z7%;Mcmxd-9XA^A?2gXCJ9&Do{Dcj*dOf;SZUxoll71jJwx)8lh4e^%$bT1KE>P%Nwvl(lcPzA zV}$l==+0WBlB2`m@ua|QnPS!8brWcj$tj^Q>#n1WbevQ=VvPU*5CBO;K~(a*H^Dy= zj$wYL#)`<*D(HzaKeRXgcL`9VEvls{9}KdJVbFI@exSaa=<+3()QAgsvuE)5dewPMl=?0Tg&Ej(6yHBmIUU_;+&<@e z?yxOnSX>T_Tdx|lNSbKB&alW9$oI$&H3YSf!Njp6SB!)lb_K_t=cUu&&aSw*_IqLf zp>dY(I)gyQa~boDw#d{oJMwYu+6Kws0qxE_`QA7flMt%QYpQ_8lrj$YRSbSReW#oW zD?50N5)~I0b=Xg+>Mo!r7P^W>vxP!6#bW@4mBHNa(Hm_ zA@1-6C6-GCD8De8B{U+gToNBL$ugvaKe<6kQ6m(CrJAi{_JoaM<)kk#Bxh)ER8#d-;LL0MJbn3VqWx^z%hJEAWwg3nic&;!h?#H#KZA0 z?U8_2BflCs#ls0z`R1RCoBGH#lj z)7$`JyfxB;$rBUe6;GKsFtPU@g`uMc%{v6 z#_8UKx=q$i?+ODpTfTWlhDL|4bWfNmtj3)6&)h3TZlL=+>R~++j45V1*CuWg-;LKl z*0J^83SzN18GlxBPSo0zTEh!W-sMIHjCHL{y>=mFf)VP}bf-k9g|01f{1@_}Ym;f5 zR085se}%!xZ^99bX9Q*&bD_cCDf3-0=CW!W@TE2pM_hzQf{py;0EJmRFXTi zBe!|$tKgWg%vR2Q=bLNqq`Gt7u{t%+wR*|jx&}Eg=7hR+YYJVXJ-JoeJpS&bI&wICyj5lPPpVLp_^2)5i{eWjdxfMy@>=YYq5jV|r(iV+!Cf4pX6b zM5+y**|5&z+e$}Y%>E+m5%@hH+(IUdE7zG{hh351m0|^@&9OhN(sPXoaF|5>2Z+oX zMT{wR|2ArRVB_|X69bqJzkgBHDp4&q)-RctzhutwlDY+^CQ~u)$*LNA_hGI4eKDnF z$Ma*Kp&7?su1s>d?|Aa1d9)cdK+Ulag2S32j}19Ap(JWVTA$tQNMn0KQH!loFwafc zoI2kaX$5cl4q%QLfbZEogie;3p(Yga8SCZq?c|y`WBvKf$IToVW$+j{+?50l6Gv%& zb&5lE-V(J3_WZ;$=c9%&JeRcwoJKE{=b z+Q=0RQz*2CLVD&b=*k2b*`x2#rR*MEue0#Er%DbIJfL<@L~j zlz_ubDel!22T>@17O9)K!SJ{tm#Ug$5(>dUyb1y{>0?Bk%O)JUQeNk)orX~O+SHdu zV6?Q)sc~3c%E>qumtnZ5y(!5!)*$=sulo2sbx-uKU;Lm)oToU)eZIlGp^GK3IL)s} z&4j#K!!CmNW|UB4m{e{~867*z2bG=^We5>vaHS%AME^0TG{xQ0w+t`S%gNjGoH@pc z?{xxUN%5=Gh_U@=AIZ9e0Xl=(iBaPTSgG~>qDD((0o4uEiSxn)yNR0bpq(Vpg~`hM~Qd?32%?u<#dJ5Kr}8Ral^)NIpCeXo3uXvm?nWz=Juj;hPS5ha~s z`DGkq#8hd4c^ib)YK(i&8fR{#oTRMBTcnQS8j&*E;aM2D16QkX$&CRCFOb}-7%c-p)?#eq!$kTLh@P_Rm^zVb6k^C zW-SNb@l76$hWRB$EpS_{wMM4SCRu=zDdUW}xnwbLM*T-FrAftdYRB^r^Nh;yHJtIw z*zsZ2>wn~hcwLYM8f zoYe?02kO9>;M`8f?aAHAuI;D>^4h>UD!=x}$%v?i@BO0&bJX?_!_dM{8~oEbW`9xz z&pbo}_u|@*Y!GvU@y)G%^1N@XiNd3L1#zia^Ve3s=0}l(>-=1XvMg6_J{s06#etZ4 zgt9}dfE+dLmDkdF+YC4g+YcVic#DU53e&`%g%VU{C-x%nVZoI6D*+m%7gCYM^5`2Y z3}XDs5x1>87$esne6!7^42cg(L)ADlFP9Xnu$Bab3{Gxpz-MbscpnVLngwIAU!G)y zq&fx<`sH$6vfnVuZ(b>LWNMw85GI(Jk(nZ@?O(Jieo#+2>SGrLAh9*EzaYu<@K)3w zMx^9CKE#8*bmwHp!+X!dYN47Q--R9Aqoc+Zd8%-&9RbFxV-tHtEGlJpYMWG;Ts1~w zL?jv$V;z%|sj+=I7KFe?jI|n)m_5|d5Q$~5+-xMVNi-Px4%fosJY-04PK#u|T9^>A zl4^QQs<%jk`xKQYy48A2dzG1bW6dLibZ^a!KTXS?DFDbb)0o(AD0KYwa1#QUd^et)mnk~w#DO(PvD|i`Fg!xIHjgulLUH5Q9{_ug?lLE+aYO;W!yXiaQO6$V}NjB%`kObDU@} zCa4pr*Fi*k7bSJOb>X4%%Lxus3AM^7Rx5n!;U5M4p6FEZu`@GX2Os(b2bSQqxB`O$d59Xe{Y9zUN! zCDim_#N0cv2qg8!!GIVS*n-I9J+$#i<0Mf7MGSyL**-!jFIDmnU(~aJ(y?*W86;c=t(a} z=GO3x^q9=@x=oH_#F^rytNT_dUaL?cF&LJ63)iMm(9zz3x{lk6a$_6-o?6rGG z{@&JuyWlK9q63m0uO3XUb(g-*zW6g{Ta~%JXO`O)SF#LRmqy$&@S1CW`ul*?9n8ak z6ce_ZB%`i0r)RK2z2b$D$kgWB!aNs9Y1ea8_%bz$=k;1ons6>q!_jsO_O1pm_mFmN zRd5*fSUG;R&b228UJb67I&MX@rzYB7zIg~4+p>kO5u>9PyjaWe@b+}l;z+jkk%_fq z=9^-2jKou{vGpRF?^Ud`le12p^U^!Nda&{rJcBz&{(i>jb%dAQq`a4dK-g1*HQnTi zWu)b%VIOUa>eY3NLe0{#?lX%h$24b&85p&xhXh$1dUKj9L<30I# zP!(+>N+|E#V07E?7j8|g_#o^AwHvo!iGfH+39ES>O+jDU$Rf5{3T})|`24~WH8u*` z&ExlwVHmV$*gJ_F*cXz@VtKJ{#0Ix?Eq{WRG*Y&-SJQnoq1TU-mErZ`HNn*6EM<&pAG*L=nePZWt=6o%*)m%NwW$jJXt{*o zZHa+!OrmA^4-qN}eFtM?R|9K^oEaD6q{3?w9qUDm4g;^b9gpl>5HTi&>kBhjPE56{ z7*VC!=QL5=2P_lKI+$33(bi1us+jcdhG;mK8rZI+K3m7`Ak(N4JARrEu-^Q_2d}JX zOjFK%wn~f5%;+%s^7)Qn&4Z!k)j)Ikb&jGuHiJCIPQ|LFjMfYu4ui+Tfw9X!?!Zo4 zq|DeDhV_@3|k{{tS(Om{}MWi3DA&XF4^QKVDYtJ{uyL_?qSSkf8 zr?GrR0L1|Z7h)btFTerpV$I>Hx}DWALo0sT>JNP9yW{u&vv#62;j4#w4|NNxZC5CBO;K~!K2%pg25 z_-y3P+zoMh#W}L&Q(PHO(&otbQfQMhZK;SSF61NVGU}QhAX5vUkp_c<4lDUbsMlmv zW@0=B=H}puubFcii;lcw0CryVIYx77t-`Ca1z-bpa2OmW$_v2-vw z#$#Y|@Z^aPh6n+qFgl=(Kpgk2CFVy*8u-XBwpQR7geTj^>=<#61h-jFCqpOKDIUk8 zDT79?T8q!VvU}h8ow+OWmX_h`7EHUVYCx8UaW;&tO!dbYb@APk=Y>}>d90$@o01aW zMp6_v49MIz2Oqg^u2t(uP0lwB%m!wDdx(#;Y5v0$r}z|3X%1vB5%*SZuyTh$@r{iN z7z5-fR0l8~U-&WD568gwaZ3pg(=_%v_mqLTA1%X|(UYyEWWi(K5_}85N0p+L1Y@Gt zcB0rWMp4P_)cL%%;R;Dlc7)a6(bFL|;&9a`nX=$~kH& zc%&LzJhpn1vYr|x+;ZIB;+qw=-Wr*>DzQtgSK>JYhz2u*IJlOO#4^t#Z_&bYu5eKJ z)mq*hnthGM78hDo7NPzzlM$+Trh$&*@xBf2sdSm-1iUZJ)*+NRg9vm=2YGzxI%838 zohMi{lz_Tsf9O|z@-_NS+`rZbqWrTZ#7u{`t?LlMk;pA);OMfW2xIYN+k>$!0%w~! z2AGLpqs@auSMt0-?mAHa-2;pA`b-i<9M#3em1_)fCOs;uPkGJ1@so=&E>EIb3>wb> z8Oh|f8fO&7DiM8w>)A`?u#gX3n=FJ=6${6_Ht{{5NKcf5*hJ72Ya}SFj{9Gfq6{O4 z=k;y4=EyS#oX!Fb2F>0umYC8cBmsUgD2x)&=&;84w&tm;=}c#)s_O_GMPzbraH^Ow zuN@Ym&p=DHDHD?p9tj!fEO$kQ%A4+ejvylAUKg)1KCt@Qx4sx(`hD+-SO3Fj{L9&2 z_aiUFcf9xKBlEH#l=rO^*b`3R$m6v0Nd3pD6jpBPU=%xl#iuwV_|-(a!5Q4O>jC96 z<*DEEE2I*1s2d^F!Qin2c~ju}SCa4)!E|3E09c%^l>@hNq9>_B-xGPtfwc{NeF#EZ zaH)hE=wR2lgP?;|$UflVu#TI;%ov+sk5xJbZN+=sV%fKM;oCVk_b!voV zBjBuNxyro!y(bxE!Rx{rlV(lijTNW?>#i$MPJK~V`g86a_Yio_r+xEyI2)Y^baHN* z-cPO1YvjQ|3=tYUJYu#7hnc5CETeYw?Md$@k=h=wh|v{aA6vQcJ}R-ADOTi_DT4C^ zbTT!+ayl=GH$n_{V3DJnyVl^bYf2`EZx4Q;EhX3<#-U8FvS7J@UstpYB|UfQAX>Sr zc%fCUxz>m^rI<<936*jqk2!exyPHZk&lk;1txr>f<#f9{OY{Ic4<}yDCC>ygFKc|A zXsya(--B~p8I7qS9p2y(k!lY<8TW@Yc1qnloHZt>63ih~I~4HF@MY^BiwQq*hbjbE z=vsYa(U+~0S7zuG9+O1P^HK+D_2h_k^5syDeGTHe>q6JF7pxykjbT2l1Ustvb&_Z- zUUQ{B9IrKlUmg59RP{(hvo$cjw}`YcQmsI*8LQmYI8+W98UbnXCa9cRaH&wg?g%4D zU{TwX>sH@PF}_mUNTkO28{#DnaT(}J1y(qkR$R2#ozjvJi_?*fq$9d*D8hb={nEGG z4zvw>wrTK$j=8X1MpZH8Sa?v2Fn7^J=G7zcTBPgGd1j9DXS8-*lFJ?$~H|XJFFT^OBn#zSQ?a9xP#J}gWKGD=e zyEni1K@U|adpf4VuN-l3hL{6&2ryi)uoYa;#O6&mglS5Dj4~jLPBcV8~(MN)TbGaGRAw?_Z%PJSjPBiwJy-YsG_ll4HnC zWyonfuMIi3%#6(3ae&Kw`+&+07o;bS7$+p4#QE!-S=g@?vBU9BUZGb`2uVPtBd`oX;B!x#Uo8+-Hnelgzo?w8^XZ-0OA&j7#l z`+hdQL?*azW~t`aUAeJQ~dOckMLiy$<_2OMIAgKIMe z9n88-lnSXY5m+1!4pWGG`K$`oy0u2FL#G%OgT$RCs}Yy{Np=~s53DobgAuGrX2P1o zuNq?PtbvQMhltP+_9GW~)cDW^#su%*DA=PYvc}EhZ{o>aSc@rmku;H!@|*gUg{^!1 z7R$ZKa6VHYB5<|{-b*ciTJVJT)Wpm&!RMN}^C zbunhI5Uv4-nFqx6i>3F{jFD-OTDVY*t826$v=-mUzH2$S+PU)8OdKYRD_2ckKY=yH zqaZU^etD9VV^?RbxvnqG+y%J#v+o=p>->tFTb8g>*U|OiUJ+Yj(A-vQ<>4?v{~-d8 z77t%5Ai_F>KU?SFHPWFwm5>+Z2}n;H{EP+A$=#=^${pmqq082Lrh!bCnUTpCE)hPl zJCu8pgi6U?(JM+zJ12RW7T zIO;T(XK(O=a+_vEpgkyB+qMP+UvM>aWS`_1y$&G0G6o4oYDjPx)M~w#&@O_@X9yT} zZO}+v?zj?^z<3Pt7?>q7A9mAN_)Xsk;(JN1s%P82I~VO>c&}BRni)KkDnO12`X!t> z5)f_ZF=D0pkZFskWiVI-=`1ZyR75~z1$!-W0@kx>N7*bxh_%{&AE17pH!;^(`teR@6 z{h`Jx3o5HP9q8THes;Zy5}Af7wL^78n4sqrW`A-pZ+P~7@dDBoKCCZ9T3FJqL3($R9sC!ZE$Q$krt$0Ni~5uRjZhpLsyP0+Eg5h8@DEO zWsdCdF?_KSFo<=+V_?xYHU=^Vf1~J10=9cY^m~7%&Qi5{zAipv0JY0KlTWWM>D(tK<&~pj%JS#Smmt5Ky4mK_> zSPVIaK&!{u$Qh_hDy{SPr^WEhElo9j2vT6_yZS=i1al;A7~<`c!&)lRuT^oW^?)UM`q3yu@aQ{1jyP8KDi-gFb2jBqaa8&*%%({xbv&e z&{9{zcs_rpq3LXO;I?8O*i(dg@Yn;()N^su;I(kwBc{a2;A>H9H!y3d5j{yY{_X13`T_Yh{ZRQ zS_g~COF$Uo{3A)Qq6Li6w~V$)T*S?fJ}LaVZ8ab6;*k9thlG>?^Fbl z7UyX;t<@kxZp|nRlD^L*;=b3m3;<)Ix)y~8#j_Qsvy$?Djao9_hfymdT_f#zBbUI; zJvxT8J#knIb5X8%p#^;e3<1k%*VM&TkH+sCV~@rr@83}Z<9NC{e?YAzHIrdY-J}~P z$(?6Yd$hkiS8l~)D8raHGiyEq>3F@!dG_{_03$Mdl~nh)fH)eb0An^y=vpjt=rqGzlVomVh!mC0)EvqXg;>`L9f|7*r~BAmw86CbL8)(ml6k?y`IA^dc^yv0d z8%n4a)`Ttx^0a}etvZ}j4qf>==gmLKusKsaW3i-@Z8Dv|6^7M~x(8ZAG!yYJl2L}bFoesxTdo!yb;BMHVj3zn&=u1J9{ zr|4o$nG#&EC@+ouU$SB-A?Mau%QKYs8ObvhW}RZSK!Z0oyUl!sn_cyWqZ^D|z4ipi zFqw+t2&+(i*uwjSx!XF*XuKuu9gGg{ng&kR^Y%XRS&MLi^$gRD9zg+gMC?H!YXukYF_zM0WTpga!wI=DeHl8a481xcQ(gvx zxn3ktHard!G!Ri-TNex;rQhRRn-9IY)< z|Cx=73r9u}NBj5)UY>~h8(jo37JZ2)=7pp6n8jn^PE>or8=9*4y`$5NfV(XwhX(B# zvm`j@BvK=^kt4>NphE}=maiNngnSVSgwmOqU3ik1rcwhn>UJe1i12Kd~8rmY(m|N6~0`JX{fc#PH5}3wueN|8@zF^2@>LDQz!lgi88k| z24O7$+vu8HJv_E@mzZTAR0P2_`)-s}b}*;=KTYduGdb*{0!OKhRP zaCO?DPLubLeonzonlI$u1%zslz?HTQ4v!9RNeMVoKW1g*TPn!}Jk^Qv;7K z#^t#o0C@QJ;9=ST-we&tP*NFQgCX@)xez>Re=CG2Lh~LmRg4oTNL-& zX>|%~t2vy!=!*u8ofC||##c3|HMjb`ontZ-VSV6XP&&ej6sQ?bPEpUB%h+{ql3Zz2 z!tyc)4SV)*Z4AQ{w@fg432-AFT%fUwO36x9|M$eeU@A9BW*TNm4q0m@U9PKqsmiH8Dk*68J%^C&apuQ#wYuert`Z z7bQB;V^^+o_?2%hybWRqSeKzYWrxQN8T(Q~3opX4^7A~LJa$T(U=2+ssW?z=zbXaW>m&KWOJTmd}{!20o}FP;AM=FJ2b{( zknJf!+y*a>^JT4=mdHYFq+5!nuvm>LtX^1*&*iWT@oEydl*>989b<0IQ!K|hjM3;B zH%e&EV+8L#2#`S^Qk4MRQ`tL7qRxae8C>fa;D_quw$QN`J%YayOIMjDSb#;-;WW89hV zm>fpj9(>*U-C0=*%ejHuOe`Jz5>9v%KLrLX>3o13s*|H5MuYFOBzAgCLk@_?$P>3Q z55^ccJO;+Vod@qXtFn7vC@vn%F`9`(SIY$5h=;`S%iP^mnm35-wXz0`xqF>Spxt(? zFmsT?4{kjV1t^Dc^US+b#-x15c)0xw4~ztE;JHi!r1Cfm?$v1^>*=$ZSk;*1Y0rT2 ztViW=MBmVo=z5lqL;wVK$r5@5`U+d3*^tpQ_-dpu#|g@(dJ-QGAmgm{$H!`nz0 z+}d&U9ya7)%E99qT<250o?hKWRAgib<>2kqr4%&5l`cHy2?QC%$@!7MV@xca8mg#n zI)~)^OLx~Ap=-wVT#FfVFe1XsRsBqaF>>;bOVeaV{TK2!jf-*R@VI>xXqi`=T6N$| z<&iOvykaqqx=VgIH|k;x>nXo;#F&|`H;Cb`rOZ{wpw!MZJNvR#rhBNyDZmIhjbTNg zGI;XE?opt0LfkAStbK>}?R;=aL|%^QXws{hvuC}EtnUHkb2+z|mj^}aze#C+*xU(a zVHN_o3P`t^?;s-6L~!|4qBv8WTFBIVG*Fsa-<&99I0IzP%hMK`aN4SwBxk??{3Hix z&XW!f*F57CQx_8quT=q(%yG`4waRGTn?NFz5BVLBf)QfNs^9tOD^Ih=C< z#m1u}#0dEy2aF7ZBgSu`^#f#^tXmE~6O={cFh>(artthG+DUcd)E^oXK(8JFF@Cky z4UQ=WoDRth1bjc_X_U-Z{!;-Wa)M!tB;--^vj%`SO#!maJ%nUWHZl_s4{5fux#@th1s zZqF<52#d5%Em4%(!irOxF>-F?0V&mPFkvQi_3KE4B3g!V4_-GLeMxhbSDv$#J2Yxx z4C@3K4qLg#@|lPtGUcak0{>+eF9{ea0vx)CRLqN2K_= zXPjf2TW3$@iQ6k&&MmX}OnEi3-jwS&3Pa^mAlV?=$nb^39MCbBJRDFSC&n#%oFjEv z&kUMWE;A!!8MP;}nM7>?6-q~4HL|vpF?r}1muMrnw&qAQZV$Iuj-s6Jq_a?FMrJCY zuslwYkk+X{H!;(Z*eA4>wLi;MuJ*YmT1*m*bspT-TzQs+RkZhTRN9$Ba9s&p>^=G( z%#gDe3fv=JV`sFQRu zG;)5P(Zb^~c&s&)!Qk4^ulShnY%3es426zC&jz+-e@hoVhZtwfX7m& zL*9SrDnftofgz9$n1bD=wu#&P7++@~VaI}+NMAq%;4rPFh@K4+lg166c(ano^xBEs zIv&8cqPZJAVhjOZg*?lMp>>=PDflN>MSM$X{2jscioa9v*m;Nn>r`5repX;F#rlI24D`T)II?5AZgsK-Iy5g8u@eVZ)HME2fG!-GemY^0~isU?_ ze6>v)_)Q@u=XS=_)pDJq>oIuZ)rza0U1kbnh?c@)VO+LpJl47P=3E1Y2-9%>si5{i zQ>3OmDf0qqe(zGo6RjSMbzS?2Ow|Zo-gIG?iN}%pFKjTNVmQ@|a3&wvD`s)14vIy0u0vB2y|S+scUetL0g3Wj`eBf9Q9pi(TX zQ1wen2NU5~of*ta5mKQsp6N4(&O#|fQYN!_)+kn4v2f6W^=!<5azz!Y9$g#Kw#puRbVtS! za~rH3XQbF`(|R*iczAQlWv0)7vY4pbTZ`JC)hWW}ZUk~cjPHTOg+XN6w4}gvn5MuO zL3`&kuqxD%Dnw#iv5C8O6kG=rGj`>OpJ>+yWTZx7a%y$oDo*D_s==o`RHjjY4;ITc zBnxv#c-ug7!&rl!oxo#V9gJ~9@L1=j??Z&39{$o+6Kh2V=w`LXFT50?Wi8 zSWat*FATvT7dV*J%^3#is>028EQ$r$nnTmLJ-QVWw+@eW9*m)BJI7DrmDiBvC$L0# zk@($u%AF~su@`C%nM1>)!ee0cc*hhS1dwM1eo*^OW58l)&|_%vOS<5RL{|yQc9NG9 z>>d+E@2DqYVQ?)AU2IV9&^o_Pb`ZQAK~EB_D7bnT##-|pmo`%iDu~3EDNg7_i@9T~ z;V~CMJd3TtB!iPLBacK{09I}q(CjYAh=Zb?-`37 zMrv1{2eOi42!=J+XHcFbE5=VN=?wii5}kQCTPN^sPRy>i-F_wj7Yl&A#VF#vGM9A5 z@^@_-<{`uLeOrt*@COo31`Y$)IZ8b17tS7JzBog=q#H)64Qj>Gv7G}=e$-aFj(>=7 zPHVuXZ+_UvhISKCN`W4QSLmEPI%`Czu{YSVp>;l_Bu;r@CXI;9j0pZv{W!QdmrWm> zfZIwzA5w;<&_r5fCLCDYm}48hnXD0nHfGWYtJ2J=Qxcxif=;%FZ|sD-o{@|&Zt!+= za2kvw6r8I%U8t7pVOe4{pCCRH%< zSSN%B6x#RX;7W&9=5klkO>yRp+iTcdd+KzF$+66!AcT$G?!N#45CBO;K~(%BnSUac zWLpZ5mkVJ@KxOb4k#chqVhpZ57%jf7bIlXCpO&fJJQWuGDqYDJkDnJH3DyqcC)J&KG}BGspS$cL`N-iOp3DX}za zkinWBn3O0xZ%%>R$ZM9Ag)MZAuf!<`Hx9$&2PT8Dl}z-3GPuz38U@#$=w&2KYA3Ff z9z&05YZ6(YE@f(}JwysdBQo&gx* z_TXun$A>YA6JU_e@WlE^;gqHV5N=`-T7D>PQ)u6L;s@Ea0!(sav73_c*NefD4XwC# zPE>5g5lX3vS7YBkLgCQmSl%4|sg1dpA{^`t$+ZoV1z_kfXkz>{##B(tuD+PPzs~OY zy-Mgj;^HFTOCV{iqV^`}B4!*>?#+Vt8fm?&e;Lp}PzQ;6PwJQf+bB#5g z6b6NFTjLdzSA6;aOOKptiSMtoF?2J&xVMNGBi~~S=m&hLqeNTR&|T5_@J3w>F<;zMY%xM( zz2y2J(Nuo#uW@_!4v59AvO`Re%C;9gGW56&b zz}B&Il9hY{rrb5j;CpA@gBD+Odav4n8MxA279w|Gb3`Pt5gy%|=mDz&ZfJ0r((Cq7 zU@Iqy*9{M5{q|>(NxEH0bXViHup~zN8zKd28lIYef969`+;APvvj$t~?i{Dtxt$SJ zY;Ag`9Er6y-2VDeWW9vigqmuI5FM@{tUDgpE^9~#c%VF?##Q}&R?wyo$duB1@MAfh ziSEHBOGTPgJ!pR`PuC(-z}lXNWr?P4dZYsR7zRf!mTL^LqA}^DTTDv|Pb2P}6E#{@ z$VkQPCBkDgSWUrLx6&x(e2U;WUFOuGIiyS|(FH@qBbi!&Lzi=S8BKDW4mny9hf4yr z=%mJ{a0csj!bshzp+Iw@58+Yc^Kia+!=9q4j!7~=d?uX;IrYI~6IvtpANimI8HWmo z@#K&LhpsagwX{{W&_D*_F;603PGjsx3>KxxYtd1LslgF2JX7r85|RPakA%4+UZcaw zr^UzaC@#5lOwCkI6Kj+l$0l@aiBOca^4*BDgT?32+j}CE5*W*Smg2Z~!3UxVzZmJ} z@EF`8nGl}52%ube3WH-eWJmH8p<$_bQegaJ-N;O_W0D;EBxe&Zi6JSZ6{uHEeZYq< z=bFP~sl?jgh|hc%=}oFw<|^WShr!}-EJ~jDJxpwH?m6o)Nmi_A$~ZU_BZhbu{9b1ma-4I~<7X z0mIh}@i4Y_Opz!iQ&?;9BJf2k%(9N<`SStt6s9e5!V6pT6Q2f8-ixd#Gb2?ED@K9N zhWN2yI?L%+wqiX~(!|Kcyiy1qCa9+J>eWcC0WmVxf=S|g#2dMFBqhR;7pExXWJ2&- zgOEnjOaP)e7~=svR#~{jL#T!a*(0pzYTxNp7K|5Esd(bQ?@5Fw8(e0pL@KFs)m}LV zQC^WqH>LyRP=cSzD2U~#!i4`Xb?2g3H?AvLApif(tyv2oC`#VWqaQP86oM!e3Lr(v z+m1W;+y#Bw4JTg@>KZsuip9(&4-}ZU#BI{fe_3&as z_`r-bv-+s3BkwyigHdeca(b=9c;^@W-?_aYOUynFuBeI&A#&W)a(WjVjq!V5yJkfA zlN${Ei}6&tP8WzY@{Ho%Uee9g!=I$&vY}R+#r~_#)?+qy$*lcE&GW;E!N%-aoSFCM zZ2aTv*}#nq!+HgabJB`o60;A`*TFX<$jMF{sPKNY;l{@wU9Pw*VR#wBV_JZMt&e`Wf z{-hNe>y?W2b5P>Cw+MfMV7Sd1|I5Avb#5OwuWRj6iJX5iQ#K|)_~8`~;kw%F#hi;& zp1>x!O6!Y{UVr5*&oqeIk8yC7XR^$9p0@=yN|QCmaV1#8F>Vwn&nUiLuQW@>+RoN0 zaUVk%4|ZSX%p${b-Q z&Pc3g8+&Gi{4OJ4bg}aU%a@J@)|uXB9^Uv%u1KffF`6*yy{nz|Q*zz@34|U7l?&#K z%nYxL#AO&-)jgmXuoYgBL_Ka42iy3}#k%sL8WQ&Wo-*|E7d|n6fiswJjoM{lk$D64 zdTsE1PpBX>om6Ok0uX=MA6nDDYqof6UtGWUO%`?^o-E#buzas7z#i{Im)<*Fv2~{v zT~m~n_OUN`M)AcNRCLuG%%Y-$&n#?)+(nS35nZ6bGVbdFYH{$yY=T)bysCnmOH{_? z5`>PqN8zesBlyabqR#Weae7x|nt*3q%Wyr&Wtu00XND&(P*a4VkbDIa8hpI2lpih! z;Hw^A<4hFsoYbC-^2PaHXuTB@@D-y6GXKp%t1p#unu%UegqFR4cUls$^oo zFa$??L)gDRY+ygVUB-+5rq#PuwKmKB#1l?)IgN0QjLcjZXL5{ihVSd(f5#tdero8R z#`sFv689#*3BJ6*?{1&sDn)w^bz`6Ss!>3)mX!e4mJZ&WW-8z}F5*2+6M4kCZRX@O z$+wq#+pc*hp7FGLu#41blN08}2&*zHFtkkI~;@_AqnrJxR4_#StPQ7+rwKX%Ev}Qi3*Q`!SdX`(0 zf3=yK@s%P_kE`(Klif$zK9g#od$Sf;E5ov*D3c4W;U=vL$LG+eW28~RxM;<*1F6I@F3fR}v(AimL25V$kRfWDK(7^h zMW(f}z57~}%}GT23%`c9-f!z74%gidV#B*Z-T&qRv!D{2L)A-G-U(AmqedP<^PW$58CoKq!~Tdd^4#rr5`gs?dUOk8p{8ndiSlo zy-kR4KX_oxt@oXnOdYp;^+2}>Q~MQ}+bdF`Is>sL*2H6KwBjWNAIwzkWr=YfwN`3= z8&qim_o-!a4+#4Hv$hAdx9&M0ho>1JF_8w`I&nNy^o@YgUy+&NpO~xGG$4OPolhDb z22G*~@#K?ElMrW1_N=x765dz({R&*%W0F*@JrbV-?%{Ld$z~*khGQggCilr{i3vd$ zF1d~I2pv!);3Ft0kGOr@7spq@Rr51_=ERz9OKMXrQ%1Aay;U{_U7#qt!mH;f=10xe zMP2nC6-qJ*lED#0tpj!wHo;dG-jK{|ST8j`LZpS4z(VQ`-GyP}o--9;CRne}&!F>R zUW?W++h!$~vu?q0zDtEIINCk_)zyc(s`)h0C*1?NOb`~B>*T@BQhIq(e>NxJ8PRW!RU6|i8~pa>{=o9l)ZJ;^PrW>MqXcTW z8iiY0akY`unyHz`TK?D5tMJ=`W6^1@*F1RZ#*5`oFaC)g-AiRWI~y-&vOFXsT&7|Y zdShUHzSnjXNsJf&mc0v%T|xWQ;5&Y_)_=moeemy=(?Wmd&iKun(@x%{oOA4}^A#SDf}%c7>a-)tvK2k{<=QLZ-!H4ArU+BPl?lNB@>CHs+-F3S zKJBQB1fxD!O+6MW0h0+0Nd3N7>!h%oYtnhlb;U_7Qs%^Iv2bv)BSkO-jBB9_?9lrb z>+gSZ_-MR?Zgw=aQ71>* zUf!E24>caRdo1o;$8bB3SE#BHrg~thg3oVuaT$6yJ6L01yC4L_t*P z#oF-TOwMNcqW2m$lkvwD1i*}B_Lql$fyCN62Qs2&DhNceuWk|kwrMmh9dmxQEE>78 zRj5{5VabtASl;|_Z(o8UQ9T+H&!UP5d%q=?d788)t5!cY{KR@S!;9tKM&3_?%&&rE zGe0o%RW_RJBf~X~My6u=>AkIym*||(?C_1xc#8lw)qt*5uGSrLyqTkk^kXC3jhjp(Oo#tZN;1i2|b=0c<+z{u^Kf!nWQh9bG(c5aJVs3!AXtWtgRV*+RAJZfKi;&iH$Wm&F02`!`!Q7Zl^FH)26bweP!<4A0wM-RVdIZVDe^+ z^@Mx8<4(M{YW!B(t<^mnYaRW;JdNM}4_bVZCU2APfj+?T%~i{0C%sS6a1+aEJVxE$ zuH>1rC|@rmrQ+lLu3+RKz^9Im6<73HrhK|^q)^QxZB?K5AF;sQ1;oM zN>!Rlx2_p$+_LTu%r2+gl@@2?KW}(8`-*Mt5|aTZ&&YSP{Ur4L4iDdvN^?Ik*BDbK zPQlnC81k3iHd{msk7vgKsIOl_@Q-1U!Uy^2{K&imABQc9r;PD95MxbJZTZ^OmqlsO zN`SI*H4Qx_uMcfznM388-z-wabfA}{A_GKJg zxeT|IAW0nUqk6O0qNpUX#&9cK?uztJu26S5wMlD6dQE&t4Czp=rrHC@{e&5T7G6gO zn`qLXOzF|+4CH8okuXw?MKm$F9B+1=K=Ukxa-u~@HkyjU}yX5;0xiD_f#zVuCB(QWl3 z=xj%qL797skoBFG*NkIdGCLTcL|e&nOm4Z_sUu(e0Fz?AN3Yv4vRyJdxz2twBgkYr z7o1{CDhH4gYja4@H7Kuz)f90|<|5)4fq&q&o`$?Qj;AI7HWY;?|+$qo{NRVpLNBNP4VzNEWm=U%FbZ#ui$k(8*{HiG| zhpDSul_U=pnLJ+;a%FW=k^HGVKCot^E-K15mxa%%d6}eAuccE2>xGwIN?+$kehYpJu)wMFJw0Rb zEHqw@_d3{lJg&Q!TQ@actc^lmlhX#9KbI*Uk`c39;ouseAA|lp6ih~}ov~O>t5qei z6BE{b>pz&K()zK9Pd`}AV7)fW=_fBgc5nxbI-3U(-(J5X^OLJ?)qOlVK`<&OKh5Nf z{m2~7_>=`1obkCjS)BzaH**>pj0m3~7w(kKMTgNq3~LEro z)1dk?xqrfcJZM#CV_WHgD1#Xq$vaE-Un+$Vl-YzjV#>Ty-ZK1e;9 zGO)wkN*Q8C8gPaMVrkz=@t+urRGIbG5$iOeIlXb)6`8|aP3?L3O?(AYqSvNGJZiZ! z21`ZojTszVI-emFQ5|LZ+M1IEoDBmWwLfLcSwN^G!FU9BBQpIMk37&er|7Ts7p~e1 zO_5OP+?H^sJ}M3<^Y~-r!tL$&G}H5cB4egw=eECSS@(-~?;b4^`{t3Q$pabtqhkh{EuU#t|V7uZuI(FQZMEw1x#MjJdq8IWal0 zCpjwPpn5ltAPO&f>B`PDgejLBDHLOR0+&7&Br!w1-!oPi#)GZ2C%=0 zfM@hG|D;vpOJ6=~4WFt~O*)-0<17Widzgf?7T4=N0UV+%vT;EO#%_zGwj(Dl%`v?> zW3@`~hQhHq>*06o1JSJEvq;{(>oa{ORFI3kv0%>_BNvB)h&gc%;oueP9%dfhgPXwI z;PR*NNJ_Iux8Y8eX8lDSge-qJff*Uu`(DobgWjWB5s~KDJpqDam^ak7wMM;s(mykW ztb+pVvGRkQBM3Wp%;x1+)y^1en*e0^Czxp;_th+M!m}(heyV{9oM-hF~;i#V7uUb4&Wl0gc|T3_J-6+>aF!GjkQb!JjKlH{eb1Q zerlqqoQmP9R|I^9SM#z)Sv)O6i)_w$TX7Rv_aG*LzoL48xceAYf-X6x^oH~afoA|z zm#az6bWm5fSOHTtCtE%AL80#iIXS|5Da$hMwtS@$o>?~`Xn{_GTLXV!RZ zc;mr8@%_%WAbAFNEMnuGVot0dxggPIrm##{>YFP5-q~eddh6vv=JmUHt-U8tT6*YQE=gq`J}9xpnuf zwxiY_@w^3{U{0oOtkx8;XrGR8nG=cSKs}~SNB`>lUg{msVs7Eg`ElX?{a`O6 zNbh9|hzFV%pY_In%chAwKXn*Vfp%*q8igNka+)f=HhAY3>7%RMip9TY-xO3sa^-)o z(=S!DtD~Qrw6|Op`qXv+nS&1i`2f1+Vp0{{!opvRCo-&ItEU-3I1Oi}j~9S7%ej$cXD(-LaG?NL`{nyMH0x16KlkC7ZXaMsk4_`xMFh{ z)KqZ`MvyhcV-n)tj!~OUK|CYo9*gS0nX`MGnF4!Vk%_<1l-rWX^8RFxTdJa2MjkETyP9PMlw5GgZ9MDT%bNZ<4Xya z#r9VMVU5o9oW<;E!cIQv#g$X1Ern3)@J6Mr9du^q=H2b}Av-GiT!a0KBN&RgN8y?} z_AnatY-&tKtUpaolXESxe&WH#=JaDb2Ou~9n3RZn$}*->&$}_cNT%L0tVI~ZLm~5F z0S)TuWVMvi2o~FvAc~*@e+0lZ;p|RR*`c*iQ*X zMZTs_Je*}Oa6gGCIYs?lB zkjXw03S*As7qJDSugs1z(b<=;fdKcW*e9c~T$dbk*A}79a7^;V#$)n>$6G&m{BVap z(;(U6GPUXSFPXh&-Q7~sU=nZt&Z~Wz+xA(@iaqL}tgzn1KegEw{p?*f+#mP0$rKH4 zpVipecV=lairvcr7F^ftZ`ht^-rOM^~Dvy2T zMo)e^n%555_xG=G3eSR%_${N`@It%=aqL~;)xs+I6#G2%^6_$I)MXt%* z*rI;s-phTbwWYb!=YCpdqN0rZI&poQn8n&(Rd8+npz)Kak5&SC4OnCFc*z47tce7^ zc7v}~o9ed&jser-#Le*5eIh5h{BKB>@{e6@{iu4!b3#hYCHL4|O5MgD>l^uEF5(6M zUFWjXd;DXCAr)%wR!+NxXVj|BiTl~DN3(=}?zAGpuQ%h;#`{_YMIYFL;+*6$8^zHD zDvDF{H|=Q09ni!NbQ=RB`6KI@7+=IG;FhoQzdb3}EYNF%^$(lmNj7&MOUG=ael}6r zI}7$0U#_M8!f(QJtmeN|?vf2w$&}YV;Ktu42OWX5jVz+3s7uH%iwfIu*PDP{F0299GHS}0dT@^b zlJl96@q=z~G1q-!&C<*iLG25*AuU{qccSxIkr|d~x90>=&fLRq494A0jtCL+qZrEM zVOOnk?@&412;G!Ti5Vu>ZVMiLZg>GTTn({pv?8X1#KXw?PshyHVoVI!*I1;^=GfYz zm8CT$AcgBW>rUNw$0QinW(gP<_8v(Qyo;Cu>S{4kh1XP)#d&MAp64h401yC4L_t)+ zw9j_xEL@tu{5ugCS>U=0I!5Eyyfuseq8p+%f~X2=>U)5yv2_*obaGQtnU#QZpY@)D zEA^Ug+L|$z=I-`6ylNidl;}<1?Wxr*0T^a%T4s#QQ*Hj6S)FEDKW1#bUX#~{H*44O z#q@NF3)e&rZ?Oi1sQuZZtcYVeHAA1Z;^D_n&BS3@I9Rk_|7Fb>uZ6#uweAH3Ihl}kOt8zqQJL)U>r<28J z&AZV%e`@~_PpdCWn1E#Lj)Ui(cjCVS=R$>N2j_xvZuaCF5353Eyx4Z;hZAe&H1m_I z=Sq?h;_}g#x<+e0lZ$F+VoXM?KW$dbh?D*q{#l!;8;xF@WzM|(#Q(8(DYu~4#4h>t z9hsk;jIkz{JPeJWQVdVy8+?V92$JcGgY_X2}k-f|7#f zIm>EL-w%s46%X-{CbWqaX%mmm+QW0U45GgpVQrAif5tWU$@^^iyFxSYI0wXe4_?z`O4%b%L*-jJXL?;boo^XP8`{ zkE2zfDK@Q%i*wQ-84+23Xhip@tE4GIh-XAdvS?;SXs<~A%)1urx|Xl%9SE{A^O;it zUG#SkbuzbErAw!rG#Hwn3^II$dQU0G5gNTw7|lKX<{BNlvPdGO-d$Iz?Igm@NU z0M=N6#X@bJ!MGNVfT%Qh#;j*H);~iLr}sjB&T)Lg<<1clwqY79Bc6@d0xP#%l`Lhf ze7UOe{8v40Wco@k?#FybU$LzhR2s$wm`YVf*k6Tf{4vZ@O* zxotZ(?qI{Rm3oxQt1~Co8;kXyY&7P;vs5PUnVbgiI<`r` zUpz3qDJ`8&Q#kRFq~)-E3`DdFT1H*g9s1%X)@vm$Q0cEzKOYrZKMhqhuf<@1GFql8 z2|Rg`W=@0Em5JZEcdRDUnUdxD^S6W2vrhO6b#$5X7=wx$2i$kd@75}3y;cF!X!YJX zRM%8rqcIe$%UA?)A-ic6tm(`x>g`5y`oV8)#m{7BvQLfYQ7?3f0@4xt%J>*V?*y%O zhq;sSc8_(b3%X^dbIj$No)h4cY+&}7Gi_`)8KVrZp5=|Mpf$l|&{$NYKwCNCC+qai zxLW3{5+UmMDWZblS`T$fO9LINZtF)t?tnx;8TPQ@X}?|k?3+mwhV1404{&eQj-2-j z#kQA-V31ye`t`73MntR%<5*WwUx<}FT?rw^-;k|_2D3lM#45*(HDmoB*}KSC`=cgr z@ie$1*B=!Zljq)Ckcqm|nIxmQxnI3z`oA$&b^&b`7+ml9od=a7Ylj8DOz!_AlR(4q zby{;xdkG@*8nDL%G-LELm(yDD&HPDV2jyo@tjTK&FBfiZuxV}L@p5nbySby!&srR^ z--6RiKc}GArh&P^`ZLbxKY$YHHCU@uzqZKpLSw9r4yr##gm|X?OWb)Qw*^U9pwgWt*>N>SVu>eUVI^zBaQ?n0iJB@TRRT&s4cN z)SVDuSY7 zaL;g@b*hCsM-r&Up@>rW4|(D@uBlUMAHCN5^sfjV#q7%vJlb=e;p{o4yf72Pa2v-| zI3vq@htJOhd5m#NO1zsbpkrU^gmn-lbSh?17m_UNdyIu${fZ!pedR_Ch#8I7Y{`NT zS3E0}H?shH%*@El2!@;TFS!*Gmx{@_@)6_0imp}h;QbYVqkbTlkiUX8rg?3yLC6}muKP-anZ`FZ1$ zId#(HT@>1P42DVq!C`rHnryDTUh6PXHhRq5Xl52wGnmmw3X$nl>3d=!*orAH?*z>r zqki9I{KY6@6rDMU&_bLW+%zC_G$U9dg~IKlq8PpYw6naG;YKrZqKE&)&NB#W=*Q?Y ziVv4bn~Ya-Vq;86uunz=L7!zt#gTDe7T1>DcG=`kRj!&`$t2E&`whFIdKc+?XR?BQ zFC7hkN4>iIVKloH7YTdnf$Z`|#%;r8=Gu!sNs{3JGQ}7Jl6_r~{1K1azQ{Ete*K~e zbPxGE`ifrpT+KZ%aczgH%#6U8If^SH3dLM9+Qi@b5ly+ixSHbCHu_pQ&a~rS&m3j2 zUCytyVy&a+>=vHPA4Ib?n`nPf8u6)MIDNlQK8xUziL*vRi@xgqCLT}9v%vk$aWtw0 zRvWP?n`_1^RqhpgOv)>FOmA-D@rU%w(=Sa;t$Hj8Z>)88W)k}h#qxT0IM`VHwl{yo zQ$GGIJ-NY_o_6a0CZ5)x%D-Dm{?t!wuiWPppbW2`MOwl~nR+euW#pTy#n$lQ;eW#H zWO(`Vn1-rvGR9gx?jpl7#ClEr=FbGlR|xa}WW2Xw+;(y6z4=_I zkCSbBUpV>VGD;y%P@QE&Wbz@hwDE6U*J?E0aMl=Z;z+a0Od4y8DkooHKjx0^*>+=_ zrA%(e04V044HfV8554KyGaAN``TOwQ$2DGD)|&ScdBZ}MXa?p68-HsGCwb!H>>#O$ zHSt)9_BYUu?k~AIcS}etSI=&+T}UxxG+-%KrW(MF2i}W~Uh-*^;k9NnM~=3|K|NZs zX0EgKYlHL}cG6b(c9YU;i9mlE6zyZRFL$qPLDVI(%)mX0HRIAVsYyB%?*tdbk?Z&U zNfz5Tt)}8QF22_Hh7<%HGNxvjYF%tIz(5$cZg^{B(;M-uBYf>`G_d*GHDxWC~6N* z@)a+@*?HDlJqT$3t^r-49(n)8mtG9RvhQ#unW`t=4f(vZ`W&$7GL|dFm&yD|zJ#@Q zO(gKu8@;!PWABiFtOH4qvEJS2@7<9^@BFfJ50z<{P z&pMw`=VZv1xJ9*YC0UVCkj9BMjzS)5 zW>&x)Q7i>;9mh{DKhGyk%|Logr1#8BiS4O37VBfJHD^G$&)odUTcg=Sf9}8{`L0<= zkp#Z_6kQXnUIRYH$sM>FAk?1*wa3U^&kgNFhJOtAvq8Ht3C}6<2%Xy`Fwdmgfh$4n z!yCwHVhyc5V>PtL#H47aSo0M17fLg+FaKkTdz95o821-p>*aq~SzjLk3NCXvlQ_v_ zy1yyZZ<3*)KJX;L|x(n zAEqC0(+9X~#NXLVUwdbbq`04jg`5Gp1mYqyBf;k|)=uuHxEg&@oL$6YYQ_54>)%Y& z#nwWLccQXiC%5sH{lJ|42J5vC^53H_w)t)#7x3}8R9!H7+#dCsEK;oPfRt zVOvjrmKaX2nIA9ym+js9jNQ`MxvZSJvB??NXTc)G%>}2DSa4a5TTudKvf?DlLV)8j z<^Cz`_|%IiWyWzCVD-eI_1&G|7;+lYW0gYyG>`jV8*Xb3*1d`K9LzcnK6snp);gPH z3Z*JL1WW~dLm_s|7iyq6FyTKN^xh2y>os=asQkn`kkBObW9(1rXQtFVx2V&674(14 zR--x>n`7d$sd3rgTVYqxng`c6S<6B&Do_7j0sU+Z5W)WW`x=H%2NxG-xw52{#^HZk7C zsz&8~_x`H~8P!#abZ5~g`$#wqM-4)f5u|01yC4L_t(R zred=f3UXn5)hruaxuV!UxGpR)#_9o@l91{(irsurQam*9=85g76;C`~?lw`_CcHYb zO{?eYuR zqQ%an7au4_6Lpp@IoxZbovg4ZV!REwTFW7zR4mj7jFJLF! z5P_xY_10<%j6+R592ITNMO~w<;FxGzl{L|babzRdDnBRUqkF#lsMl`(MsMDDZINzC z@5D1Ifv@3jB?RWijI|NId2()a8?i&VQt`GXoIURdQPh?B#JN78rcI>{G%J*g^~Ty8 zPh7&&(|Bz%%y*y!!;R0RM zHQDhInHjzf&Kdq8WMpRiz@WmbD^iGEi@qqm8mkpur1iRaLF6>K(@#6Syk3oFtp9~& z=3Xr`QEL&IoF88hIB?X}8Ma)}FQyTXS1uk4fP2J+xGdHsX>x4hPRokMi`}O&Tdq!G zfnHPdHoLyLpT=jwcTIoV;F+BFE7_=K_U2--8D8EWgs^PxvjQaMwTl0EqQRG%#nnP! zn`_3Ug`4-Y;+|w1#oq481=qymp=ubrgl)yMl-Onym)OaKCbp>jIr)$j=;g(y7mtm` zSgeVEVP{M6m}O%9Z`dD5zjU*9b}LqJ#>45;gH(Ve7Dp@|F5&H=*Me)jJmDG_$^<7K zSI^-BXmSY-a_##&TIZrK0!Gy}!6yuaPrD3Kk9%m0$B+;F=zHytsehYvE86t^4!fn~ zSl;>O_!#h>F~4!ueTxMYs3{0n-#KTo|H`vwwH}{F6D;gr+?3%LtAfp1sXf`?G}faJ zJSOqh)iUOOYF2$GAm_rk+HPTk@AUryzc)SWq_@WMJZIWFYe0Cu@e01N>9Es7IZwe9%b6n#@_6|%LOOG<0?kBu0D6YevMhhAjjwR7#B2INd|{IpYfxcPecnZ1 zqcKvWiM3QL!0s9pj%B30)%_8f5TrO0z#4K3E~ny(y2qUa_&mmzvPA~w^&gBBhxts% z$y~L)n&uvo-Q8yyk;HLalj{~eclyN5)a;%MtVx-_`Sk|P8Izjzfj!KDRysm`tVR zoS-Szzhlx4Uu?Wz|Fi_Hf!zMu7ygzMdUr4Km}ph6QXY+xd{%5V!HkS>O|9;#L413m zujbQcyanRP>*dBKRx{k`Uwq4(EDZEnWG4IdIbF34TO?Bk9Dc^mW{{~nTN936;Wb{Y z`5SBW!ri=rpG_8MHq)yW>y0xqlb|{8fgrN}fSLxdFBi?_#iOZgPa{VLF;Spw+xKm~ z>tdO$4zA1$hS^Bso&fc(N0+&7%+w^Nv)ffWwt^?{(DJGlXnq(HgIb%}a4r^XX_mRmyShvdgp633PjnDjAsP-#s z)dy2}7Kl&TqyHo=QuLjV<3wX$+(zL?OBlOoz~3JhXj9?V&RDEX{x^KGYi*>BvqIY! zU`liokB7crjU>YAKJi5V!dNTWRI{VKHE_8(VB#LDhM@9z$Iaeb9&Wrk%~%uHvNUoT zIjy)#_Ea&N;EW36qpl(g#pYsNb`pN)&ArWj7-P2+pR#v+=6-=cmCo*_^wfNZM{BJb zZLm3GeXN@>=O>hW7MI~uk`H2Y!8JbN2pK98-|9vcGMy2hCornR2eeWd3EQK8%)4Vd zcIM=o`S<49(ZAR3Q>R(N+t5Zc*!*B~e#l;N9YiOWD+pcbGrQ8-) z$x;(>IvToCowd3?FDeofG-Ko@nLappvo+S8k@`{J1^c$6&Ra;En>6)<_HxILb+ zm06FW+ndFtcc%)dhiC3HDsWFqG#R~S{gf=eXfbx)6QOFh;NQFgJW9Pv8)?Sz`SLk= zILbyLe!O2MB*!OfiLvy~I>(6^L?xv(^06+%1-CoWn|lK8!#yst^iI=kuwIQ`8>~N# zx@w1}yt%>`+ZJSGCai{Iumhg;1-dx`MrFz~eHodD-f|vOQ3pNHwEH<@9;_pV8?RRE z>R%RxFxL;F=h0>Mk5&<_u(@m6FWi_x%!P*0Q7O7v6Fr+>sSwMKA8cMTewj-?C~7n7 zEsC7I8gITE{UDc-t5p3}QPv#H3tem(i@8oboc`B^@eDX-!-YcyW$pb(3F$y@Pw9mvXS z<_IJGlcK{E5SE(;TT?7q2@OaOo{|7FFMk^JjPpK5YEHR*mM;gNa`Z_ zr&*!FvH7Z$X3fQ#z#Nqjtn5`gsv1xw@V9EMd3B~{l7@AL0G5o*EQ`o0AjFeom8c-N z$T3GbCet{nC%4GuV%293Q56vr+9&$TY|_`S_P0gkNihIyjrk}e>M{9_elnlMVhgn@ z5lB|RbYj9i)a@YF);+NzCoX?T?PjQnOZ+>N1?nu)#B!SWADHdVcSziAdo~}@xMn6s z)Fsd=_z$OkDIz>jaj+=3-V=OyjW<`;?~1A4wr;!S-g_+vWBW0}5bK|-SRs2c(Tw>X z=1%U!s@}1j_JOz6q{K?bhS&e0+3IH{E)mgl99P0wtC!Y~83*|cuLQMs_UvSmAS=UX zZ+#V=-GWR;Fh^bHGy{2ktn3{(F*@@Jl`h#9#|8akuY1?D;vF{|bc_F$>%GNi{EXbQ zU*!5Wqt=KrlUvJ9Ir|krI`iP<534W4BmP(6_sgzj+?)`vE1M$kNWvG(=dMPRGahSh z)MjNgvF0(%5s2k}-|VEhFKty;BY6#OIS?B=gJS;vWGk&Yc$YgUW+vI>=?9j<7BD^T z+hNU4PGFH(GdW)T#Y~QUNrq=`yRVtvpOxmui@#W%^J2x?3UBw*4qNsvb$`JI=WC$5 zI78Nlihh@W2Jfb-Y@r`B)@-Mp{E5*pqV~0T+she_4|)`4GH=f9CJFwdVTC;*s04oz zH8G8)(K`A`BytTmqZ*eGX6390c53C|pj>6?jG|g+CcbT{qp!rl&`9K8iV`IxbK*4e zpdR19_wHYH>x>#zH4{rTd5T(6dmh>q#HFu1pF2l=<%;iiq^e%ZoPNyQV2)tm2fr$( zpcaQS9y_bP`VAs0D({X52Fe|rPhO*}7oUe*6 z;WnP?W1kV3)M2xZ{w0Zs3@>MMT45$iO_dQYCE*#YP3WpWX@?ShSYLoBnonx>E4`HREGz5=!1dQ4@DM}00tKn2!2`W{SJprzP>$ZZI ztf-|GM?@sAT_#P}f0QwunUN7?!S$gH?1ym{i7nJ?BbOUo-sD&jUna9}k}Vdcx1}0Q za=iGD>}>S6n^>s1vR)J0{Pbe2`BBMu@ID7|XGMS4R%Z|DXD!SxsXwEJv3fUB_|JDT z?QAo+ysb16w$_0Co)_rJr6Z~$K3|`5!|62_(rc?r!I~DaoRns$*TlbJzat&Z+fV!9 z-LaoJXRJnU{N(!3tT3b9na&NTrgQd5&Q%77ATe2)3(6St!Qk#b$jCZJ`Sp2LIHFwX zKmzmXOYb*K>Cid{? zI`Qen+C#|x*yl|t&}5RkOTdMXvN*4c08_z@SH3Xx#QJGJ-t@1H#ujfOooz5C@7az_ zEcbWKK47yqv-R9R<^F_YQP-(fU`xeX?o&09r1ZGIGp2Of=%*3BLkaEwy zp7NY5iXP?)0sNYe79fF`gueLUW+7sRX?vHiY4Qdmpe3Ro^tt#OcC)^Be?_asYOFa; zr3yHqu5N}8eXye|ML{pMOBi3TGo$jW;@(3oa|m4LtVvc2ER($;zAzw6)b(B~i@m3J zJQ><7I34t=wUrt;UfRX=V~;X~#u`6l>uMb*%)Q@bW{r}2@xS#Ld-wYLd{o?#IW3{} zxN{6;n)T}o+&pUstJtTv-@@8Y<;=vIqLi(Rx=vigYwB)Ix^yGkb;fnH-p^9#I^A;d z+Dqw-&8X9B!-0j*eO$^eGyEV{kaFM z;TZ(nbXKc{lkG9n6@qIad{T`Ib9%z?EXxd*S(m{dg}GJ{+lY9{aF2la9Io(9zG(C4 zb=u;*cUV>unFw|g$JJaD7dZ+U9YV*IK}R zT}yqTq)OhkhMpXzhY~xN3SRm&k zA0y;!od2%v&8`NlDCL615W84mrV|tX(V&%&t!l&tn5w6Xf@@5&-w0>3<4eLcD&RLK zY-ZUhmgG6_G36%1p&Qsndho?%2MkCL5L-V{^;7o$25wS$!z1As#y|6< zU-rqB-8F8psQ0wWh8~@jgUyXh{)~qoZ!T*?5t*Qj0C2M^Fh&eVKD>eODK@w4V&CW2Lq?W-xXcw($LMWZi)y7n&+&!t7A>;&jGJBanN(zaTc+o4tQ>Fb zKTia@H`%gPdM(mWUauiHEE_B@VLTR`g}kvpC}kSK>Lu}+HzyTbE-P!QI3@;}V<2GI zc9X`|=GU3>;*qcaHA9h^`vfy? z47`VlJ7NbCTK6!Ot83O8Cm-v|AjL1vE?nbmM88-UOx+Vtnu8&N?|bZ>WyML|<7KhK zMT#0KBj^!c$)w?Gh_wostikQ^jweBlsZ0Qz&(?M1#88nx%xMul>oYR-u`j}nAK;y^ zd2vjPht~TINk!UZ#qtx!tuhr6?uTP4A6#PGV>~-NQqMr4HtgW>!~eEloBXN1PhMq4 zma^x9=WEi0NyQ!g`RsvNrPtP)7{yhR z2px08_?YWWOu?BS?yVio%PT)A%TAlT+*^0XzrdDj-^ud0S(j|PU^|n$(03*lFMCB_ zdUK~Y)0(8hs9&lpGINF3@;D)MCR1o|Gvr>>LsGQ}7{wcF#^dc}tUt_eBS-k}L)ZVE zuCuqF>65$jnC+KLqb+U)g~{DxB>zj!$^UB19_;^KaK{Uj zbFxVLR3sOiP-63{#lBKR3%$3kaoe(A>^uI8@DpL<;#sUbD+=XpEH3_Em}p&}kJHmN zs;vouiFqT$!}s|Z$*L6Ve`a4aQ>@pfxb`8TNxuD;PW$JODz#+UsXXyY*R$@s8Rq3} z=()e>-wxTjEj(v`NGVJ)bgkW|%h!(r_!(K*obc)QU*-;aq&7b2f^r%`Ikj2^+`V2S z?=V%%8(=@Y|1)0#2u3K}`AX0*+UlMZ$uF<7W_)Qzf9v{O;2EjDjJ6(N1`$(m(MRoy zAbQ9(qJ}k$Gcz(1TEo?7oRN>nplaX~>o^LrWOWR##0VUfGyGAc>qc>{kGfV0{Y5S@ z>C36iccekhk12_?TOF&u*NS~T71ppIS@^ntpkC_)4ah-;X_w%NCC3rS9a7eKUe0`K!Eh)F$(Y``(fS#s-#( z7(^TzQ4P-)S>c(k1y26ND;;o*&)`DZH-*2{mkSCe)VUvx*$oGXgkl@Y?xv1nHes$_gWhZ zvTuGdPWgeM z=DWK>BTcNeu9>SAZf!FvXvCTq4vulv*B@~m5(J}kHRaX?DAZ`-buncW7hEf3>$NV- z=dtUbX&yllS2Y0Anz_fS8BLSNJZm4+13r3@nYg@@4d6pOUVQRmIZe%Nm3h%_+5PG@ z)k-w+Z=20WZ1EWn{~JE{z1`yGvWVPy(Xw2R5?>;x6C00x$4~xe-h(nf-gm%5GuBUB zIQLF1Y0GwNK99(Zwo+f*TG`vCz*`7k|?lDQAS^S`xt@A`KXOTEPxJ8 zJW{coCe}`T#-I4%#;gBe{Zspg#6O|l_h7GcAANYTw@uCHjMa^eGC3(Z<8;y#(FRKYV-)IF_aIVa8R-8dp8OlT&? zbM7swMlHx+8_BX_zaH4=n#AvMf9}3jOwc`yv*my8Ec(A znn;d)`U~esb3~tgCIYqENDl0+YN+aPl>g;_kyk5;J-*(FO_jJo+_#dzjQctkDw>#4 z`H3qyCh`p0J74q@ayo8O8Fh?xrXuny8dv^OJaz{3Lf~xnVui%+_>z8DR@8GrCeLY< zvo+`%D#s-3ZQR&dgP{R4yD`2EdUIkkZ!f1cZxJ8<3up4#WnTW# z4FN-XIbj>bE@`G_IaVy}glu;lUe4TY*&6oIoC>X@*!+rhM> zBJP}{xQLPlj`8Avk9{S-MC1gc4fh@wgobmt=CwX=>{{{4SByxHd#vOBmdsS;j4zP- zwySbALs%oxF$8y2`;_pZR1707Q;m&OPgt_S6YJk*UpQOgY7{

kz^iV8C^qV5O4 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

    E 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�o%A8h%l@k61U52Dy5IW(aJd)%* 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%0D=8nywc9A zIHiZG_UqC?yhaC&muH2sKRx3$omhS^Is8e0f~vljF2Z33ln+b~ibS2lLqsQtpa9WZLzd^6**<)#LcOX<&>YrG~MBC;~LZi@`~gc-2_g<6`cyzuS=@%i(_sf^EXM4^KW@)SJO?@oHJpM^v5O?3h517Zk z+hqHp+fVp^e&Lvd`Fx%1cK7oiv@w_?BN-$9|3CZE=+DS1;tIn@edMF#10M1LM0$Vi z;&-mUJD&HV=VRY||EA|W`%1}uwCA4fm8x76G|p#>U_w81+wLT`%wG zTxuqlC`ra-C*FHNkXtMP%j{*%+q0)oLK>}zW2q$bo(DA-<7v-)Mm+C@-x-;FTQleOK5%*W`@g1~+>&wz8heIZh%1zs(L~PuMu54R zaih(&&N;KNtvC_lmS8sTo`~1}cRvunH$PlG9)RWpl~+Ca`{KU0U*G2J^BylG*2IfS zu4143y~N&o+gIY}M!lH_Ko+heV_;_1B!jR99}s{p?Emg}{{X+4sI^lssPX!z|5$xM z{OYZ(DU3D_ne_r2rZ2mB${8^7VlAip)!A z5mDdRxD?R7>)cxp6nZZYuYUa>{R9ux?j1{6CpumeHhqm4xZWRJuVRFHxI%Nn%T#B1 ztujfJKy5X|mlaw4#@E^)t%ZszrXwzFJ$=l)!wm1EPM-l)7p?=<3e;8m&b6AO%p{>Q z%}t%+Hs?j45^GqZw3T2NL-(#?X`abqUIM#9>ruCox{%Zfcg37DRJeKgJuZ}QSE|^` zPJfXX4jrg&A)%lHxciaWw7S+LKnzoWb?fL;nv<{BdyIQ1(Q-qlFeVkzpf?r|P@B`% zbd3+DatD*ZzgR_T`ZRn|apfMaR<=t)ZC3EbRt{rge-#qph<#=4ASd-Z{J zE5KNfLryv7;;2;&TZ>=&#gWMi zi9Kcx?YjYHMI6SOJ*s97T|qS*+eO~`;FN2XwvVT4-q`c7z5_9EUue7lJ3yau=pUB6 z(y_7Kb+U(bd`ZXUZ4@4HD;~@Zj3&E^PSF;tS6+-r>jtVy8ZXzlsq!BU?K`ELJ4!iv z)g3LOZobZ(T2*{kg6Q>ix~^kx_2Kv7)yIGKV{iGv52em@A2fX2XMS?L;?=J#Uwt#} zdXP+BTkM)um(RQ6tNz|oZ}^Ak$9%-2Vl+0!d3^QPf6aJUHpm+qU;HC4iDzBm0T$C# zU4I7OZuDYq(@=*p_EQys!9?%6{;qh^SAJ>SNb}DkAMr3hfV;D*cpDe$@m^Px*Olsh zUzmh*WQ@_*{-_h|0FLS9;zk;2hEFAoSN_Uf@o}H=NjH40{Vleqf8#T%##IKE%iF(W z)cSLdkdfhC%Rm=%ONXKl3N`Y?R}pKhaU=VNPb=LJn1!WSt%DJGt2p& zx8ED)+=njWHVi(zdi~S<4KRz1vtmkikIlTb5{Tcr!v78NH_m)mJL@L5Hb}WT&;RPX zX4eh>nT#r|O z`S-_f{-B=+#kH(Mqp)+MU~1}zeDt4=i#}h<|8wD%QW?Q0v&wGc+}%0Z#J|2$U^(8Ol;nmn@mEtELS6A4@D6FuqdExRrV1sLV?Nk0`{Ps`%denK$ zImJ#o&9R&^=4v~@pc45O2{2t$V(w}ed3MN1$Ye|}JGUE&bjX|Q=Jr}Cd6gm^?#sXw zZFQB}3hY>88+w)9Af_r~#YLPyWLhJrJ2YVIKe~-#V{GmU+H$K@N>^!zYY zWbdXxc=KTmUhn`2(^P#mQ)db;n`gxA#}y^z{5~g2XGH0sQ63C9ryE-?L5swBiN@%E zKx8ex;&n0?7BSzxbMP?lJIec^SLtzV!wBMgx_FDk#??AwF3^ z=dl-$n} zhHrc7nBu1~Rqe5J^&@^B)|0;K%i>92{bjf12iSLAe|J3npMFF5V9W<(zBZVK?jn@B zPu$Vu0-W*6SHCJg?elKzhv>(A#AC>f(b$)BfBNTr&JFLw&**y6S3Q~I8S5JbPmfGf zj%%L%3}0@I^4;7pi&ZkXC#ol9k{K`l(I1Q({S!LRDC(44a9pj`^jTRZ3rrR4S~NQ8SBc zDn24pE+SB`eAQjyL#*e%@H^vXn-2)B;cqf#y+Amj?fyNinofF1J%Cm&wI}8bIE{tB z2#y@%bFMpQ_|U^MDU>$qxO3jW{!f0g9vr>r+N>jj;QoH!||LLXm(CJnl#9e>cTjN*$=Kn9=@|<6YsJb

    zyo!fczyJDwGqRbJXjUe7nGA!u?PIO!JAN^K2M?B5|u5dD-5!&V9uzPg;+-ITg|e{bMcV4 z71Ti=^VGf5@W6j{W2@eECgJ*&)0JjWImITohBQ%g73k`61x^p`Rx3tXUER{Wx+Q8( zEu!fa+njXaVsCD+#(4m|KtsQo*4Eeaiiy|ENG+r_aB{im5gWy19JT{{8dHtH)o83% zjIg*`X-<4Ya?^=(maFAo^9#uS#x_ZzMsGq>tcKpY+$#FDJ7Bea1?p=tMyyuEEp4k6 z>!@3dYph=F73;fA(q(%o+RDECVsUfQIaWCO7ULOA!#7G{W=3WTOEx~_l%mfWc%!Yi zw{zS#OZS@9O4mt%wgTL`wsLa0I<`oFwgRj@s)r1=NA<2E=9kk7+A*G-23{YkddC#U zpskeC0q)YHGsf6+r2`Hs6RoWPdy+OcY7#2TwCFz}x|=@6+R9q0V~@2l^;)l!)hlB* zST%nD#3D=rWC#kP#@f=x4XVatZnc+tzhdX`ycaw_KJ=3w6QBM!J|~{{!sqiq>8|Oy zT={_D#XtIz@Ilyz{)I=!)1LVaJScc~WM)ZMz>1tkFGG7*+^**QbRJ^)r+_~ED*Bwk zIj{4utX`)U8%5$xZ@D`j`4=7&PvoK8Wi|Y>#V0-G%ZPn)y!-m~ZEfdFc|g~6E*_R` zGTvhEBJO2d3A4z{DO_;R=Hou&letFU8Si5M7tQMaP4|BBwR=(QvCrw4z1}-V?%eEg z;0fDn;=JZ(j=ZWNvF+_d;t}N<%vK+|WHa2qzv=VHPk2=Q8JxfQ^Q=3+x&F_0{@?Gk zKkf04i-&&X9r3I?pBVWL_W>04;$ zspZw1^D@Aiwh$AQm{nBF#_DSQzzWrV)0^)OUk{J`#7A>~J^#`NgC=?nd~o&YPk3BC z0Q-sm^`+Eh68FwJ`axDWQLQ6F=sgm*(z@2AH4J1uTO63~8uV=RIUw`AD8J@+k}(!t zZI0p4bvbgkg!8Sp3po{f_1T8mRAbaV>AT^XKE2 z{`z;s+v+!=*k7gXSVIA{YuRBSt^+2J*FXKoPClsdEPR+`?dWD+3-_@VgBn93e)9)k z6TkFdd`CUV`fVP39puL8W{i2i^0)p)J-oWkL#&EqnWZ_m(lyUOC&#gvc+cCe*ZjZy zxzCGtyzrHA)dy0|kM9QB>V3=~yyM<@&EI};J;-{;3-5~GfBo_&j)tEjJ|Mcz zgRi@v_0#c+&->1}=i7fVJpY=^oVvCEmNI4>BMi^4l2xbhw#j|$<9B}g*W)+7_f_%Q zuY7U*@_+vA@wV^y<%2VG*G^b7JG5-%3UIoI+E8ceUxbjw+F;X}$v!>%KxYJ_l~P@` zW8ZQQPomW?HeV5M2^!9@5hsCZ6-9XIB`R6l){ul5000mGNkls56P%+nm_?Ru!wKWI{ME zb|x6T?;|N$>z<1PE5kkP4!9j$_YE5;DIr$0SKU~Cm6QA$a0(wMIq|7Dx#L*5Rm@f7 zT8oi7GxLXBgYrb8PNWWYCg`6qY>n0W6#3Tj+AYU+^Q}AYJiGbJ>U7*~(Cbty?xp%A z&T01cIJ&6Ai)!u5%%JlEC#%j?w^$wcGHkwKMu-*a5ld8nB2!LTSA(niDXtv1KCGoz zd{O0d<8&w{yB9@#C>dEqN46epl(%urw%RM^2z{IO2rIH|3$8&cuBe+GEUa`vamzV1 zU63xrI!${KU7D>M8!o4a<&U+#mG6TX_fY@BvWm!m{eb+J}k zN5_d3Z3XNPqfh$kzZoC*nU9T!KKc>iZ!|sONna3O{rA2m{7~knf8#e4e&Sa>Iplrl z_0UH@JU;J9Ul`AO(RcA6=-t70ozeRY7U1-W4%&E)?IKfVd?AD0`kU@~OFdBfP#%PR z+-E(u=6DhhqgtHvkvwR7=%XGU&*ec|M8;@4l#<0f?}gvVgRDo#hw?DXoUi_SPYwTk z?5o*_wH^uY58cmw(RUI**5L!6_j&mH$Agj955D95L;OAu|A6A(JU=rmnavwp?ZZFg zPRWDFm-nHdDd$REYu3-XY%!R;X$1?6t--m@C-UI!p&xNad@K*M9{O~#|_h96af8kL??z?mEEs@0(@eu#-gx|!&D}U4KNl*Dw z9>jcUXv=$@>V7;-8HraIU30I&63g}|3q#Kw5!dE}=Utsd#83RpOQZJXKG~bt{cjrH z`*Jtep|+BGQnOOTBROBsr-ZzrxnI2w)b{#?(cVkBRA^}7DQR5LrY{o)fvE>q-cMf7 zkNwO~4)3R@Kl2&k!$L)@U*CuFuNGPGfBrXq$CEiPylH8rGchNZvz6cqfuXFAn|O7k*dW^Y6oJTY2yuAHZvU zmG_UQ)t{X1A~VB(m3!`x<=NF36)*PwDT^8dV}XD7*WMZa=F-c*@cHqxpZY(?T~GeL zcDLfJpSG9-p6^)z^V50MfmV=Ho?rTFJP3N)kHy=lf1L+qK44kpw}0Y|HTSE&?EB)E|N3*o2UzdD_dOOv zX1%E(ctC{zIu3M4MqDEU;JJ8uA6!&Tg`q~vS3t6iiYhsd64zm zr~Y94!e@MIyyCz5?)X*kTb}dt(ems6^rhn=6A!zLdBfBHbzJ|YqyJ-L%|mUvHLJE5 zUR4~pGy}JCh15de|KJ_h<4w%-vd?{P_%Q2NzWiU*gQ|FrOzKKt9_)nD=b@y2KTFY#6$Oeyz#`!B@Z_~raf zt6zHDx5sO~;>GbBFS=_!xT2DCDb$VD(3&OQxbP}pGd}eC`Tz8Pj-UTezvXiIOH0gO zBB#Y%e6RQ$-xEfX_tceAFl zJ1kt+9zK&{bBTu-Zp^SU{5Qg~l>UU(5UZ16!x)7fz!fScrm*?}k#!O$J~hcHesXml z6L+edQno$?qZIR@#{(?5t-}{S)mNwZuntF~Wz;R&inf&-t2fc9VSplTu5t6)C2K$t%W%rqoP`?Cls46h zbZfD4B28L3<&tZk*m7z)v052ipXln*+p^>RjL2QvXiP}J?AoipXb5^ihZSop$K0tp z$1%LPq~3k~-SLw@^Hbq(S3T=F-^|00e^fuvebcu+JN`KjtK{GGmb+PI#{K5_0qxF- zWIB=ela&-Oud__~G`b|n#uI_glA!62`uwc#|B)ZyLDhHGLzU<9P)hr5<|OEx?pcrd z4Dex(Ip6f0Z(;r45YJ*C*17whyP1E?Y=+1z#XOcO6)Y)ymZ;$~0r?Cq2D#^dlY{zjfWisp{b6htgDHSm$G%2cK6H;*JSc6~)Zg(~e zMs3uYew22Qb0!$V^`I)w+{b+6V>B-m?;G=SZo;$b1Z#*hQ-!c^H;k=v!`nx!xvH$yh{ZrCqWRAj~+pvSz(JnGGlKRzmHC}xs^J;`!P~DFUDa!d$Q)JJLfA4g>_OZ40yVB;;M-AJ2SG>uJ#V`nzwraF ziC=%_OY4D}56yn@uYP;{;$Qn`C9nDKe<0rYjW4a=p8B`-;A&sT8LC`SS+k5W3Wu%M zBB&th+!Jqk&d(t~4}Pl-B$2ga8;%+;q&CJCiGB4#di_lX^t8Ssfgo|-iZ%jNrwn>AAj~+qZeO#}5fB9|Uy!U+D&(|LPfcW41 zq1VK3z4VRo2mSeDBoH3es$iHNHe9YGCXL?l@aj+LI#;guZ<7(xdBCc(YO&%R6c&~$ zyP|nr7kfAaQHiMk?eD%P?tR(Y!VhA93lFaDL41hy8!viQyz_@&8^2e7CO9j4le*Ci znw%m;7oSv32s<3zuel)$y{q>Z$T)0gm@@?NPILT~E5Jh+7O>#PH0F%>5Z-Rm6Bd*_AIMBNSC!p;2#(s)g?&Y zh}Lnk&EO!r1Bw%Nrt|>ti>(4 z+OAAlxyJIwtB<(4HuCz(@x@lsaX*tW&4 zK%JS~6hnOD+hXABn;QZ%(^m^<-@PWr4+j4L2V+Ja*sF1PgRh=Ta4*oX6>GORt)jig ztXRKd%qnY4@n?u)$8hM&qy6el0u?dvAVOY|Z|OK~&sbfra>44vKF)>O_oLW2m^qGG zSL!6~7DL5q1x&9ssijWHw)W}k%B`h4T~3ixD`G`#oSK`EX+<)6TZ>omP0~2HQVz$l z$9Bh}Z=_q=_|{!#$jliv>ST<6 zOb)+`%tW`uw0F_|x(7l(jBCf^K^0?|wgN#H)!8*RMJdM|wA(M$W&YL^zbwA?DPI$J zKJ(e}t;h?W^ZfYH7rrEZ?Pu?b*CE>BTGnLNpK=H=Y=7l59;doc?taVozjN09X5v(C zv~pc%0XIAV$G?kA?(pdx`O|qqC7goV`VQ2hPl2LtMB#P@jk%aqFa>3w^N*#OMN)MJ z{JsuR)m@{aA+I!62eVosXbHB$kR2A}m?T_^*3dhklIU?{18FwWuYD6@3Dec4tF^@~ z2WK$JiZK{l%wjV$`d@7&@hSQXVstI+(WeswFJs%S*)zq;8Ub7;tt9qrpCM$N^)+L* zxV};Bgqgt>bk#$`0uCKhi8a8s26pc_ZLzY}?c(^8lX7Q3`nXflk8h2^>K`+V5qeZg zQ4IoQ#h6={pSd;fv>U6HEq(x_28vqYu^qEjs!nB26J+e_VV{H&`=&`OJt}wa85`C% z2Cd&RKz!qD95Z-7fK0@m*y>GkL*&t^M<3^g>(HI?M<4sau&29!u6OUt-?ruM3hgTl z+gxWr>+;@43Re8|6()wR55>yei&cgU-Z3LnA5qC3mfQ#kZIwD`#4?U9W`15E!)DAh zc+Mf5T;?#6n!U=zchHZCs!fEt=f@m<1XnF!X&gW|5lj;`Wjmrgv2W8c)mHvEY@bkQ zEQS3Qh^?w+vMkP0Uq+M}S8V1Sgj(Q$xY!`P_B*3652nupYX&tp7C+9dT{odQmB`F3 z)3TcZ*n2Qe^$t*5M{V4OB^1dBk#nA!N3PNcQpbgjpt=Fn29oXd=)}_P(?3Lp$YGoq z^-H&|DGmsY^Tf)XDONfbo?i7#QDbD)m@$6Z5y?z9nJ#TDnMV}(Q*2=^ysdGx^ zeB&>B#rsUM%6mNcCU(r-vVA;RFGJnpB#n>bQl@$h000mGNklP6l={}(hR@x<2v{x;j;v^-+6vaTty09NF zS-TTV*H$;DZd;#ri~QgmmG+=@qV|0uxOc}zFbAH##kr@=xJj_qySA_4Y-KS=g-8I# z1E%uSAnl7avrut<)9DYtgpc=rT^Q*`HVx1wqxizS+A;=W-hnJZZ1o+!EQ#5ir{>q* zIV6K1x44{46f>*@TRG!wYtAaH$gmNF!v|Nx*pJX<7%ylozFa!nNHbfs5zoQ1mEJ-% z5IPZb!75N|ue=&Iw)R!l;2o7ZPk41^a!MHtL-rs%l&ywSmk*jw2IEnOJPNafw@S$x z&9ti-+N2j}4W;dm`p8Ge*FEKH;)|c~1ttHF&-k49i=X(|c*MgVQKJ2|PxKU}37Vx8Z(JPKl1@7TrZAJUwi?z#bCarVm#! zYN=JqacZa_2KsOdtT3zyZDr35w8I0xBcj#^j)=^m4-XDL)|QcF?$Dqe20~}QV7ljn zXI^6wB)!i*$PC&x-L#=@tas@HjX~cQW5x7MjuqB~Xy+q_9#LG-_TMA;I)JEdOeQ`p z4Ry)jtkx1Cw+8L)%*lH=VKZx-v`CRv#4}p6cp)pdzFQ>`7$qehBC$54VS6;>Nhc8mPz`b^*!jei!Z`su8mjs0(NyNlY@? zXWht8gOjO zohM6d2LG6tv7)`k&YNZ3z+loAeqg{JR!inILXC6lDPo{=Uu#?>MjiR3*h^49Y}%_9 zAITchcngtGBwC9v6@%U346HSQr4?W;v9b1%=u)Ju)L2`QYrXe1QWK%7iHw}mYnkRP zsj5$fRTn-xchQ8}lQnstiHStX>;+=$!_QmSWZI_0U?g(D8pTQ(w>nsSt#NES(UdyZ ziB0J@HhJk)!Hqmxb|H|Td%%= z&EU3Md#0X|G0F@p)pqM54IbcN>>Kugd>{-LZr#>m4@td>{^rH2?+iW;=tKiopIDJs zI&N@|tN60iHq!GEw{+(4MQnBl1g*)HgWh`kTW^lbKqpvu#pbmQ)~x`y1ukysb8d%n zIjrGbN`94&Q7igR#qPO1GIp#Djy}FJ&MIxIU8uTl_{ti?u|3%RI7{sb5S*oIUVom$ zhK=xNZydh2`I;%(0Roy3?*fz@%9yHgfHN{PV)W83T{~>>vkI0~{pKtP*%5-1QG}De zL+De*j#$@%gq)iAk-e`<23^}Ay_nVSCr!Q#@ao&gipEMtoKv`^N`Mj@Bahj1>Eb1) z9NUv#)QoV#g*}ACIH}~RINZ7p#X#kd9icgwp3^zlI!>6nu2b*orr?~~$u9M0RY;=n z!DT(!9Cne%kSU5nm!F~Rsf&g<*k+Lgpy`0o2^)aXKa)gV*uU;6|3m#&))zhg^W!l* z@Os3<9v+Xlczo_j z5yx!WR+?rhIe}VVO^Z?5r`~d7@`|)U?Nt~ z5_2@p38a(ZNC>^kV`eg72VOIoo^F0rGaXmqn;I;on5%6h`J) zZzj4rgI-j2L49&aBKFn;*G`4Vj;tM;&SuB?j_Ayx@l-#wii-Q*esBF5pMT2tuH(;W znq^1i9IHqTlW5h!_~?V(z%UQS8PA&QI5BJO71Mb;_9oHxz&U>lE2?!&8FT1(^={#` zHRZ(Ww$W0k>UDN2QS6!F@`y7jlbD&RUIre`IuG#LT}~a9u@!_DtvSwZ+!HxZ3@?bU zYl11(5SmkZ0#!;NVk>Ds_)orHJotm&5B7BbotM7pz+sL=*36DtRCD1%Hzv-gh&b7Z zFP%4*K^Wg65g$ZVUBGmM!kFl0 zu(;zkyb_YgIaHNqpc6y~(3xCZC=TZAy_Ktm;XhH|?Z#|*SOhkwpy-*}f<=JmcEc3| zT8sNk&djItP_|HLv0G>f@<&-mS+x@Trm5_ilPIaxj!Z2CEoWtQ3!Wvq*(>Pmmz5IF_4b-8i_>iE>t z3!DgbU|?U^PX(XiEOHUAPa&?9y8&+lZ+Ei+-^>Gb58P@|7?$QYRucZodrw9oHe` z0q-X#aG8qE*5Y(PS_A98S!3jsQ=I%J9ni(vZf&4GZADudczzooQA-dQ-Fifg)0I1x zjx~8)hX^iHT)AB~!B(gPCAL{HR*V_gF2r!f#Xw2BMkB5wrYaZ3TDJXbthjw@?fnT3 zD{4Ujt*sC_73`jeF55wW=>{5z`$e7UoqHT^AY8f8buMaoL|DhhFz%0FwTYl}ydC)( zQwAGR&Io>7(NES~6NtS;WMz$jpk|)yQfvr4*^= z#Vw=_NUZ)A%;H;@!Qkhy`MFEL3%kEzb>}yJOZ>u*{B*qTXI~Ys`MJf{8C;Z;wVtsoX#`E%vsE&=j>hY)9KcSgRpZeJ zb`{l3A50WCuq-yU0?8b9EKNpfYUFXA5cj?Pdc6K=|ElE8-}-Yf^ci3&^LlA`W;Z|& zHMYNF8+HYpO(>e^p-m6sTLa7Igd<`bD+H@T&=psD4mwIQGBbj{k6E+DN(IDWJL0TU z0mc_#*khwxWW@v=b{)-B0N0vx*=RYXV_M58)2{ew*RsHBdCJvx#n3au-FyGY4r+~; zXdtoViWQ8-7HZs zZQ;#`OwJDN3}Gt_fFIm0l7BD}a=SQazSbf#LcuQz8}F-`SRN#=w#+ml#t{3Kz@wTl zv*RQ$l#Z!-y78fOp+c+0P;rG8m=T5bVwV%WW=@wZOOA2{%{)}~C1zJaQDKIxb{w}Q z@7T53#wep0$FG66HwnC`Z(-z{sST`@)={g~8?>qSPPnV}ZLdr+?tzileCxs9z}Rb1 zyF7KJH&81aPw{cEqp;~#z$}mPqHf?a(Ut&5uS`RfGR_}5e2p;8Tg|eHK5g|`F3fq#kjhkL)V!ZlM^|kc1vb9j0({%iQC(pMmes!aT_3Fta30tw#H32LIKWK zrwAEgF^6GMK3S##LI+w8pMn7go!wI~MGDZmV4U#S_;zO50Fd_=c^c5&LDY z@v(12?qi^x5w&sJ#`qJV{0)l*I%&lgm2a-K+$lNFZylv`8kg?FYA1TFv%N_XOy|F- zL}c>CZ|13#pc$(G=|-c%*rCT=BwlCG{`V*@#ic4PLoFv>bz^zOI7NJ+bYcfW&+J8AYqLc#V>8yR|Wjc3&Scmri1>+hT&IgB4B% zQ6Z&I42CsL*7o{t{+MgNbF@3AwZ5#i4dgh4=p3jP)wtJ>JGQ*I@n*g?)n<#)QyuQj z7zHPtD7rTD*K2Pf8>YUkN627&#(%Z(xLHgdNdA zY^^K0$ty-F%^zyN5lV6c$vA9GaX?fRf_Mh8>@vu7Wk?0Y$#(3b%*i-5H~A&QU>74L zHi9!8u@X8UrwUgjHb-~RS_4n@3ZJ_&tz$At)CuAFrnQM18nSFP`!9Y6lX1%2eN(j-+gNRU--f~U0Bf2 zbbx1};!8D)bD#2=tdEBVsK}fCErC(-)-MvG`>|~x zl2y$$Tfi%X?pW$%W>uJqb>N>lI)*oj(PO2cB}~2kGeAT1XL1gL*f;O3y){r)*1)$k zI#q%mbAqWVt?@`?+--CQ_kJ9< zU70&#I&tbcPG*EW=p9j0w?|T(4pWNTMIDzzC$u(f zH?Dl0@5HEB%NSPaJku8Ye<3yI+Kftc-w$GAjJIZKh;2#|=00hUaIVIRag9D|7Va9Yi{wNIF%>l!j0)L^ zK@&-rB!GQ4yVv@r)gcQtJ=?Z|8Y7I62@gZ%;;=y-66aVQM@^<6s0rYSZdlXaf7)g! z%?~Zps{|W3CK&D;8%H!{>RMyfbw_8_?0Fz=rq|j?R3DT&FbFv8Yq)2zdN0Wwp=$wg zLMy0?`Wj-Iv2xC-$ZhMvp>51rF}m3mnlu^hxb^8$pNf%JjJcAm!4~A4Jm|_Dctngb zIHRDA$izx4Pd~szcVwJu(>WE_j2w)*grih(7OTs4RO1wP6mr6xg%3PT+WQn%;Q|Ly z6;g|X){Q#uE8R1#di9I-Db{H%R<0uBTiy-c$(#U&2dcGo`Lng?t_NDMFQ#9XdSB;6RtY>zQz(xEjMDZSgU;cTUv>S*gAjU*gF7j#789m zf(FHC2c=p8V49x^R;&-yt7PRTa0HIK9h08Zr&fA?F)Jm)94!Tt?i9Idu=6wRxTm!d zGf@X!&fF$f+}xPAt*M=~);et`^C!`1I)7ZFn*184AG-XFs}?(TF>*+yq4(XSs7lG0 znPKyqWO9Ne9Itak7$vfJnkg}--^~w+&cRV5sFjIrI3g@3fFAXn6Zhc4@H%6CO3*e9 zUVEnnvx_Mo{sz_)pYo+^*lojK{q7^8x5VOYJNW z1&wF%S%zsNaO@g8lpS8KD_E=4HW*piFgXQvPR}F;VXTNpYz-YP_1 zC6(bojLIUy7P%>wkT%b--iM|1&9D=yvfzyZ)2#t9y7oXP#*yPS@;x$1%#IT1Zu=_Q z9OKMWY7UJFH%IZ@F{ zkSUwdEpfVpd1DlvH98D5M(uON0tPAPgxnl$L5h3P*8=RJzIkfSF!8Fz#;H5Muz`D# zYD=uFHnX>RC2f35*U}a%7P;ndo*1mJgT=}*zuJx0IC0B(1KnTZHQpHgY7e#M_23{f zxoJ5(;}xjtjd5d}k&!uL+Zl<^KJ+$+cYDR`B6IjM(m*_L6HC+!2#_Z@=<2Jlh#MX9 zM8fWfGv=5(3Mum{F%`HDCMnIWlbz-DDn<|Q;pmy^SBA&PDG>BBTKCZ!zhMn!3nB%~ ztpGUer?|t2wz?pNxYC1dP7A!cEL=8&*pMp-(PyIMR$->z>K3bCUcHfkwhy(IVum6n z_@Jsh+*F`_@9;e{&@q21*GS_OF)`cmz!iquj+mIbCwQ&l_9b2n1D(L?3|RJL4~nsw z^EG|&biydT5t+#l5h%rZVr>(<2kBetL z=bIyP%o4OhE-sRP5Y@BBq6ez6&H&^(QDH*IjEtxzR<^iekA`+`8bI$kVp*f-F>I8f;nL*PI1E9JE^WITp1B#G)Uw%Qfm*H)>3}(7mTJTuE)ix`|D zc#Ky{-?1$>MVB(oLv^m>Ff5MORSPG1J(J=hjzi<9k#)dWB1mffSO=}RIyek^+2jEC zT~gUIS4ZZxm^Bt9LU@meLF6*0uPKE9*i@kd88|L$$6?yaWqF(5;FgU99CO;PUyYj; zI@Y^f(eU)*JmZV5WBUy595GU*&~~vRHmtGsv9!-PMgOYB9iwlR@vglvYoLjXtDu}x z#)(0nZy3j}uA6BDUJnYTH6fOrn?-^+Re#~IW@gsWCt;b60D|->UJ&VlBg9c{%&x63 zbLQgf8_@extYjpf8}H`cc-B#dOI21{dli?r+Tt~S#m2h1l`Fg^i4}uew0lQflO?Cw z5#gx^CuUyIhSrC%%{*9{6Vk!cRb~y;Rx8tYdsG+fRiU|$#$qQ%9n95s>jUR$!%#)< zI%9Jy-~OTdgoAS(5*M~vvG-7#N=2hPcY#e^Szna9_|uJ4le*o0l^&*a`J z=Z=eQckf_=2b$OzVl(`QGpC^JHD`tDfT{1mCzc1&c{|xfCP*Qy^3e9(95Pab$S6R1 zhHsZ`?Ps zX|A=!^{e$ep`tBcaSYmf1#+K5%BYo^IIKR`E>UiV5iv%uZ^Df#N#YJmb_X8ps3RBn zjEQPSBup9WfP)_XTv6M}s3^IZtue0hspS;$3_DQzUhyk;#UnrAQSrp5Jo%;{Wcis| zU-k7*jgR}xPY(aDgJXY8RR`6t1#Ir69jnXSuP8HvuCrvvn25c22@SO6iql4*qGK@& zuXYhS&Jzo6L1bDmYM2>~*+cQfln0*PH~UzVgwCX*@!}zRTD$|i@`=mo&CSY4nJOu7 zoHB5s@)2}%-SVe0i)V0wtA9?s+s#*~ex+h27>j51fn;Q|Z}L!)5hXzryMv)~<8g7S z)>5>lXeyXPjk-H(LsfpCq4p|?VNMHXxE^(-<1nT;0H#ahY(X8ss*JA~Kx^Oyonm?^ z69oklG0f=Z%9U}hS>7yXW%OiF^y0^$SCLf)J4WsH$zWT@{V3wOC%wl)bWv)nlyPb> zpr!rRcMmnkbas(N7px(|P$Pq;R)8nEo{{8-(F*Q;k1q|&4R<>(xPTgX-IEYdkAIzPRP)Kysi_k+~%tmY>=JvsH z>H}wH2!rO_fl;Yp6D5qeB?mBXAYKQ=X)lMmyMNrLIEli~c-$)mQq59oo>^TMv6~A^ z*V^itAhGcpXT|K16OqaLK}00~dMxPG&A72<;gTAdV(Lq(u!K;8`RJi8iP5Yw(1}r} zqRV7Oe1UA?Oq!XInFrCsKgI*cRSaucPVo%49P23?QJ}&KG2pIr$kwn&ouG{&FcgWY zr;;gI!;9DthAJ|KHP#lp2JtpU8Rrda1+p~_1%?GmM+oDRwx)I(H`A7-zxkoZ7#0_n zFwo;>+R40y^k6X4`KX_WJ*OR|cZ@O_-Nt*#*vYO*v=It0NZN}*I$GkY%>-jD(4yV4 zaPGzXwDk0M`pS_~CPTYt^p%u3%6Y;1Rxyq#>o~;v)TgB5))+Zs{fW%&iA%3Rl71s( z@UhmX=qt^eYsH|0Ly+S;9r}o{u73HUWw_YJGqYSlurVZ7namLcUL*X8oXin!%w=CH<=*M{1nI>hSL-gAR(+qj6q z9qK--*2XA7JIsdYj-z9W!mi7&F5*^(wMb*N;;f3;InbKkYu+)xmG;tCnGK?C0Mc&Ze0x&&XJE+aiS;t8RrmGbAFtORBd?NBMDp_zT=Lo!sPvS*nCC1wfI7D zZpEN=BC&jH_tiyPy8uO7u?8ZAI_SEUs1=V0uZ>)0MrMXh&Z)%biIJm%$f#k7T6X-f zklB8Y(tY6Es6H?_=bLV!OlhlHK`C+$+8JK!L3Ert;4^}eIU~aVGocT%KJD?J9Z!4a zGs1^b{+Xd4#*TaIci;2o`t!r*zTo-cL#vPFq1C67<8NKP>)r1nE+aE3$}A{|rAu(f z;Ub{;u^;&|YbZCUbu4Z<1$T9^Zbd@7^aNF3r?%_DDMZcQR%>aoNvx6rte7QCn-hl$ z2!ykp#y*1_VvIH~md2$nOJ9LGcrV>wbs}71rgg0oTg%`d{6^d?=!L4SQJNt&S}=Mp zwQEx=ga&H~8+?LMye;WK=;d;lGN>$ToQZgdV>xQj8qsAkWM=q(>&#RqOrOghi_B6R zp!TfQ+OAJc32Jpd+N5$sB>&=|jcXv?`3G)|>tjig000mGNklD+UbA{op>@B>`{$+BbFNU;(8#I8HXh%whS@A_l~Sei4`F9 zR)eZwQ($?G1`R@kbz@K(y8PN%kKSwaOiUq-a0?uE3LBTA(JuheI(*W38o zw_u9y+~%F+MJlJ$eIIY;piXX9&XnHCH0w4IpD81GuFNW@iZ*v5*DR%7Vz;1d3vK5a zeX6h(W?;Le#A;=_SEak{70Y!>YyHZwK`s^*wP09!JRpt2bW7KC;BnvZ8mbozFMl+2 ztt4wSIzYy(S{!Fv9#O~kk$adO)OxVNtg*HBP3@WKSG(XX4nqz*vtu!!4F^@%6wHX# zC4JKF9JP5ZCdjETla6a`4Y9g&8@Ik@fKFfRO}6ceEE85BiDY7aqg+pXa<9cJ}{4ET5bn+cfZoqEUXKgc1Z==!gu<1u`vAFa{dqu8N7fpm@Xu6YP+j87nrz zl1^o2LWt#nrj~MOzjzh@i-JD6$`@QJok5@zvcCFGN$lhnlEXch4I+nLbor$u&}|z$ z@l;_sBDOvy?p7g?sGyi zAt4+wiHu18c`iXqWc0mv*p6~TSNyESw31xcVyPA-L9?C$tlkwmplxFmgQ{#hB*6R1 z5-sIu27!ImZyK!bX@=3Xi2K>d*G<`1Sx}bjV!<_2~gsuN`sNaH$T&^+;4Oz+eR!%f)HR zFkRleRSu#`pyh*Ei$_N#Y3WpAv=h{DoE<$`S?9~}pH>W%v2WJYS~=}Y#l*{#jH*%{ zx)H_BVaK|JI|c(+y->ib_M~EFR(PL98MiW2Io4LX2CAvyK*5}`v}3lGL%3R>dI>)P z36?FzK-Vl;aS;~}&bLN*?pPkky>SMy@i!(v@OXp$~e z5$jXqx-H#$vryLD!>D^E#Vr~w%?<4y24W;+DH)aw8@#IIAfcEm4#$bwU3kTm)AY?y zZAdQ)tx1GlRS9%y!wWEUoOF9S*8R*9?JVME3CTQ}}k!n}5?vCHL?pYl5(`cT!yN*T;S0%^SU4Ki89 zt{z$qJFw%Z<&nLMj%D2wQ+7nn;4NYUxbe}$<*qcI>T>$kMVuJU`pD?X-B{;{SSLIn6m$C(m~Uq_jH-g-r` zp)=t)_I?c05PA?^QW%$g&9A9+DmquOXbHn9zkA!_4IpmgcwJ53wnyBV#38=sr<*12 z$bv5-!7O>F;XpPjH4&_c$~R^QWS(7M(9!-M*s%7zMs#-TB5!P1Q<*2Msg_sRMQja+ z9I7a>qQL|BrY(^<9LW#5?rrlKYrw3#=Z(^7o-F&X7;Sj!iTZpq+aFaeXl5xu-t!z! zi*-n^>fR@vVz76P;BjK>>0vQ7y5YF?r_{M>omF zn@-S4$HKRtSmF2r7U2Pe4PJ%lMjdV+LVh0w(ft%D*Lz*&khXB?8oJ2PH3z(UFyovC z&PYHqDnLt>h?Bv*Z945D082M6s1XNkuu_>|dSM47iTBQ2^?qf$$jo7)GrW#Q56V%F zGI&xoWgoL=GcuEuT?A?j;Gm(h$c$2P)SzYhwc)||{Y2UL)Rc(4#*abs&;PWm7JhR# z$s?k!CENi|HobCiHB@7Up^E*G zJEncw1B-&Q^{fVtt;uc1j4|t2ITYF(g=TOE#PwRm&lwZ43Ft@VTH zqD@x2G57N3zX9N^r^37JvF|*7#8ItodZJhl)}S%##ROLeUN)|ZMgJl6nyTlW3v)S6 zoyqH-8z5aAG3vU%D#-}$mB#2y;`_I=aAOhx=uVBG)>K0LWuYTtO_0u@)iC^66=U3_ zH;3^t$Xa9JBF#cpyk)VwT}2YWrPyN}u}!nni=gFVOanoOqZ@ue<2mT27*HdE3{#++fY821H zrw0AXp|6>mb2FBhE{JY-d$pCeS1nIUQR<8=+=G6l?bhzC)-nmP;u&uh8c@La3I!We zO2Q;X+y`E`2a70MMmzR;y0+^?xESSB2UVR)zQlnlrWbUm0DvUE(Xs1XB$dI&#znQ9 zc4n5XIqr>!rh=x|^Jonfp~2v~QDuvZjtKLW+E9!!llzV3?B^KK+SVuR<~wz_WXtwq z)a|GMn?Pj07@TUQ_-O}g!)A$%YSCj|1XCyRL`l%J;0p!p$PZc~m3*MffSx%{1U2es zWFF>^Z}bSy2zpc_m0tIUoKl8l8AO3uYQ$16su`eQ5W{E)Y8s%epP; zH3oPpJoH&IW(X5QPGc&*0f@a{h=U$B^AXC10<3Vg?%Gtv)(}xjuK+Qrf+B`5_6_&m zSkbrxf`mj|vsww?0N7yRjM1EKpo>T2YCVQ^vRaWFa%c^%mN6YFOX(3SV%HfJ7y}x# zcSgJ73N6!nZ+DQgJIY&2AGu;n?4Z&N)ZIIyT5iE*ZkC}rs2Vx;()(fc%C_xF#fli8 z#ZZ^^C8I*k-cm6dx2~X*gO!xUso6rU#d9UtDV8unEmyh@Cpo)}U~zQ^qs8@tiQCX9 zy;YeL7gd9|9OT3!&Q-u+WMqvD^VPW9n4P302A`2hya&5U;u^KQRWimu$m&}18s0YQv(ou_*7b+YtV?L@ z^2BPzHLY5#$Q!4KmF78P&CA7vQw2OleO+Okri`Ljk5~~~MG3A+M-N+ONX*tbrE3@t zmu-%eGS~=i1BTc)gZ9=fqAu1ms*gCSnnlpQA|f=UV>ayxx$zs7Uc*jdQ=3;SmB^qE zRej}GT+SMrZ7n$}6jKK(H%0Q8o37iTysigzYQESXopZy{IkIv0_>#{YYYv)hl3@&H z^-P!?cVqeePmu=5otZSq9un0EDm?~%mKlXKby=rsV9=#m95Fh|8UrRBJjSS5g4RjE zb9xe6>&AbLy>tcWnyUT-XX2cWTF%6wMtDeoZI`b#TLH2E=<0R zqam@&#{g!8po7OXJv_p-v^bMMz&5|BaIhe&B`Y2RLH7hvu#TrBAr;j5-O}fKU3z(~ zqm;qW_&8m=S0;{H-)@d^)JB!WyVJwK5!5}PspwM^!pmJM_W%G807*naQ~?&M!MFkr z8j5(6+>l_Lt3QEgA=91N0B-5UGO(nmxg$z-c+l1kvIXKWz7odP z#<_J2e!A<t0!>|_pxy0NCnAF%I zA()zZSXmU+*o7~6tZ0N7mkuRSjU6qgm~b+v$%=;PtJ%mF*J6kQ*L?VxI}f~YBpc~p zSOcqTD>JRW3Dhq~IyEb78!FD)IjIV)0RlaFLa?U+I_T0$lT}nhQlXCKBFzl1mMC2! z8^d+acl9AEozuseUii~J*|(iHq!3aP}QBUIHnQTG2XhtGk(0A>`^C~~ zMZUHCWn%1z$;bgN7%z`FNZvLI>pjAT>&xP}m@YM#G{d;e4BPtVe;&?ALu*`Pie!?Z z$LL(ju)KBm^ES8YHP-0W_kd%U)^cjH_KodF9YE0JQCruqNa#}x^jXE=R3hRy+2OxX@NRq}N&6>u0*95KUUTruX= zyNN9qWf_CN6f2{%F^JiV2dfp}*0qh_hyj{b4`z&QtChh4;c5$qa=298buePVa- zk4~B-tBzzxuu?QQYOaXnU(Fv8nMolex*g3K`m)A~$Qqa7{=E-24=igbIOxNdh3dnk zT@#kwW$5v~GecW`mHQXNm^RJRUZs7ld%xO!CdRXQs9j`Q1vnMNa6yHf(zvzUPJ_^? zr6Q)?26~jwP>*eACAyZGT6PBSLj>%(b>$T@hke8#awtYUif4&gJ(IeH=3qd}q*VJV zT0;yIsarZuJ6N-}60^DLgx8;NYSgwQwg_%EB9kb(e3a&D@7+<2n9OpP$th0_XVSD* zrDq?9XV&!G4^l=TYnm~}O{q0a8Z|mTQ_2S}QiAnmjw*sayDpC8?>he9U>v z<~^|XTLwe>TojV^18#=@@P-fE-HUig7Y<^A=Bkgmgje*%5*HCQ--x$vrsu4^3o}}R zCPr01#yeO!mJEu@jcz)`YU*bKl;+f(D85WcKb*kXO-ktcc2uK8#yhMd2+%BF^cseB zH0F`5xmD4aVjMi{&v0(-*czS03_m^sL>CI zHFvljWepQ6;+h&m-}*Inzu%0^d9M?cnM5ln`??5xnfQ=Qa)2a{t70xP!gZLetXLZ% zE{bNLP8F!@i_bo3p;F<*K?h1I#A6R-_VHmDjk4%ijK&a?6s-;uBO6VQE^T!%Q!b*7 zSt@R{xp<2viDFb#u{gIG#**C4QH({J5?ffAoRqM&c#(7HC1OD1@@S3AEFr#S+>CTtbE_TzosnTLiEg|nu+N-ir)Im+%>kpr zrqgo{+qBE4ebeGht5Ep(9NK1byv*eKQT9QIN;DOX)+?4%oUyh3mgd_wM%-F_zL>pw z$?CNijm^0i>|ynbmG-S#UV-zgHYzxK3q}Cy;pf2{ZCu>O7c<|Fj~9J$UOL$f=^E4g zKaNV4qM#1?y4A+54K$~1wIYA17-(__YPU2OoZN^>klvtqhT6b+Ysd`m7=!58T60Zg zgVqG_I%%tFLV2N!TYYD8E8qqvHd0yDY-wa?5-y`}ceLtvuLZ~g7tXqL9WDFbN zJ|P(6@}mkDtEO+~?2GBE-g(!O-U{r!X6AkHV~)!x!KTo1=5f*LetZl;EWo z?14R092J_1!fWD+*EK{`Xe`Z8r77o|w(HvB;hB0Xh8gW!agpW|oHIZ(s%4Em$mfhv zkA2A!;p9lBulXHOMC6!0v527OAa*F`g9u%)QEdWB472PC-d^*WMV5ceAC$-`arH)7 zl1BWB6G}lH^ja?t`rt__PHPvLey+|A!#hjO9%rmfgobA$8aQUl@(sgSMJpZjQ9E;5 zX!o6ItsP#q!hFQH&*v@)!LLGf{u|%4U-k9>R@9>Wf<&W#-I_-xOSY>S((D4 zK*4smKHR6X?5Lhdh0klgi(oSM92rYn4PrKr{Ay1JHJqVp5V9M;qB5O(g=;g!R;pB3 zZPdQIHv^j40*@k>m<4tg`vfj2LdDo*!8_htvqBte7g%%xWKb9pPOlv{K=Yak6qO>f z{>5lHl#Xi_AgQS&Zg>-=px_8$3$+&P|QP%PVZG-tcXjD>(zj#k9T+sdcWv>lds}%4|MN2PtEg($}Q(o^RBkIMdyk+bE#-u z#vF{BaHuoHpyxQw!WfIGmA(>kL-uhqky})cRZW^7ag_qjg?Jx%q+V-r25*@D3c;+Q4K=NyiW`tr zia4%&!cP3je-=)Xt&4fsO_NE7Dfds^KD7&z7OSaE$wmcxYRU1wCTiIdA@(cD%7n7s zlo2^%#;6}jWcC4xWL-&(b#6oatPgcdZz(51X3aLub5-qQExutYF?adR2CGU|EJ3KM z#EG@lQ&jq-Gr8^(NKciS>@XrT!Jon6Ge=})Q)jyu zNs~j>vrX~Hgb^Tg>Wx~wJp`rd>|`jlU0<H;U(+F3ZT zhQw?fQ=OxJDVD+tf*IBj=x$YH!v2|i*t)j#Vv1K!i z6mr3%8{l+9Q(@4|CC+q&A~ADf%+W{Az(-@f#+G<);`i{8j)TI~fp|*)3uK+8j^_B}!`-1R3 zLxq9r1jxl~iB7mgk5xouY7tEl#%R9vaXta`jI1$A8ymK&B|xY*?mck#1Ha^$QPeWN z=2D$L?q`4<31;gI%SX5JX|#9Z4pJ-99g9xt6_t+4E?i;>W~Tt@1QoH13Tj+eHMS!N z!m!SC_d;gztu>Ma&seQs#(@NFO~5?2*P8IUfnL|9;g@bmhi`OlsFpCS9azT>6MZHL z`hrfz=FObeETtoE3aYwTIkDfOD=3&HMq{#GPV3>gXtWYy0;(dZQ~HA8 zypZCpgH%cMzDyg(dLOYN3n@)>O52M*cCEH06mRCe_U^QR%#7~Emex1qrpGSZS7+Ki zb2dLGNVKa#Ro7MwD_!h~L8o%UburaR&Z=mu6*I9LYAR5*9yPXZ1-NxxO7r5D4$`Nz ztzX<)thB98Cx%?}!fOS$^|B8lHrE#GYh5w+Sa-BOMLQW910#xvtxX?aKXq*M|M|f= z=eTW5ztTkG^K{2~OdZo)+iIoxliC70I&jrHF38L@I`dxi-`!eJez*5UHc6$*XCN6#vKeai3KCE zo+|EWagxA&E&-elx*B@E`kWN;UU=I|OwlVPqrK=aq5bQy9FEy}3gssz3}chEonTq! zsOq?jjkwuhoRQd$oW1TAX=X(<&&;Y-0nNMuDw<`F3@|==T)1B{@c!Y77JRPBlgNZ5 zpV_{0!io`)YcA=~<~gAMyJ<_!>ha=anRq-q!g5enxOv8&C&-nDk2NwAmiNCBO`4wb zCX_LbX@ukcCRL4GV@1int!mbchS7c2_>MCAOrQ)jQIy1>@rC6y|lXzQ>nYD*}kPC)6 z9PL0E&Dswfdl+2g^byH#F$A&4MS1NHXh}o@n8DzfXBg5b$uI|uhpJZATWCx{Cd+8> z=jWe{ud0Vo9d4jJ9B3bj>S@IoA|bB#75v`P4N7A31YH=@Py<#ky=na?J98dbE1e0g zf-g&5!eT9P%g<`r$&O!zKX6uzZ0>hva`joX?~=es6Mt)`U>eKqeieLMZeq&D%l)-^ z^QOU{xBSwcdPeN(|2LAI|&4P9S zW@sKF{Dk$}kVPg;g7|(m*I1D{Qp{BbTHHyL(zH`RfsS~T!Ym*-@_tng14*>U0`zbwD{ zF@NFzzejkT+MHah8S6Fid0&Pb{*2{L`(5tTeZ*6&p9AvM6I6<5BM$GVa@ zW^mYuUZRJrn`q7C%6t3M->RV#s~?)y{#Mm5A4^O6G1U*DcJRr|o$+<_s%t|~d!85O zp~^_g*ZHo9buOv+;h4Rrv}$RkcZ+u$b+L++O+JT&*yjdE@jRdC(P%0Ya@0U(Wu(D1 zCC(VqGibo5_Gp*|!*S^4$D}nSw_R12wKglBQ|T{gE%BkwAbNNX!}0@K*aFtemqYY$aC01<1`@{KN>3&Yg#dh9W+h{8%G_OwVbLPVrv%NV3|a}cs<@ienfILf zX1OF2D_DFTmy62G$jp^&SLZ9L7V0CCe|FJgk2|tPp;xQFN`FPr+iMQSc;J3+Nr0+i zF>*^_BaF?-g#*G%E3pYUSZD3$JK= zRl+qF6ICRA#pVo`aW~)t%b3AOg{OX1=rxW>t`vq}jYl#|Dl74Tr zY57XkQu#t_p=EJLkCplAO6Yy)6r}}<20i>rdW5J1gkB3U`Y0^WJ{;f!rE<(Jbswrv zM-lqChdo}@ojj1b3G2`&Vd6s*sM^{zRu#1n)I?DJy&SyoQS;W`ab`wlMmY8H9BJZ7 zeU4_oB(356JPN&^`gzYxjZK-c+Z*dA)_=9`7W-@y2LsI9DVX;>(gu(@O3A%5d+WvTv@8EfX`#hQ3*V*ThQ z_wWja@T`N!pWJ>SNy=-$Jtr?OuHLmQ$%&=jvD|I`M_zaI{|b5cH1{7b{)wsA<~sEg zf5PUbuld0zKV0QMB|dRebox^_czo0cWj(VUO9P1}3^y3zc zX1w{vy&8`-)9Y|i-Pn0PsKKan!|A>0Q&KVc|Mg_Q+KMB5yA>L9iJzk<*Wxcp#^!uy z^;+Q+`JNKh292Bjy3+b4SFN|B$VrxGVX{3Fp+8;Qe-2`S@h*ly#`<*@Z!=Tvlde$~ zkHJ+CXZ*_h%cB*U84mLvr6aFZ_Gy!o6kE zt)48*p#oXq@dju9#-~D+c4v)LXkwrHGb_v0`3q7*f(DsgmHxjEn*-Mkl(&o4+Td5X zLAO_@HB+TR%cM2q4>nq*VvnMU<;0IN$xU2!|L*n|86!QA>3xs^GC_Q?NUG#{86sh4 zx~E*lSu0BeJI<|B=eeo}ik?I!D#*y>hvOCd8L=-4+*LUgrTnj!>qFIi{&VFf_6(e* z*zv306bFi+#xr`p!NFKEsj#&2@W>lnJd&K&wKAvx%Z+LZaGlTY9@Jg9O9_;L|1(tn(1uxaC0xL`ZRT) zV|t#vJ;vaz8*^7v(C57D4`H`SkB8h-53d$~_8QXFtG!-R*W*#2?mxSy4d z9-VJoYt{J_uUIhDQ|3f+VF}l!GKgXi^6b0Avq=WZTB2yA!BAe16yZHzan9#`c$=uU z!Q!e9+)(=B%om8LGXEMG4oGHS2f%`Lr7`%SP{;>K6d%QWrit}w(G&aQjZd$Ev4K>_~9TtFlXx9CyTww$is2W_vkCwAaJVk@; z*!Zg5dQo+`{Bv^y&35{C#}}7%fJD`n#Fj$Tr){wD*!!NonaiYD7z0l}J?Q%s&~%gpfKN<&6uW;inOmk0y0_LS2)>b3H< zRF66c8P9_2$$ky)H6tV3Cm59{o?@tsWOZJk{<7DfCb@u{{Ef|PF{AnhT8?&M(c`X^ zBLUqjfGJj^C#>1H*Q8@3>aQy@`(9^eX=`!sv6H8^^0iEt3VJzO9JgcVD$P=@VW-1m ziy_S;WJdbKHXy@)eLqPbbBa!%k9<;l5CyYV7RxlCv-l&HtLu>?$=uyI)=tY;z@ija zy20&p{mOi*W9wRDoZ)@R=;1z%N6~y{@{4YB{ob~!v!B*K<)ikE8MNLNfcksF%6TTC zo|Lf78VHWY*_t|=l3rxHcO1br)eVm|Xtt1hk?u%ZLz@Y3>dn%WP{fNKT>{qtN*oc& z`@TgF_=zW%nWbY5t%bclKC?}IzvfEm-{ytMEy;1?)?w>lla1g^!N{a&{Y^I`(MCvt zLJJ0!+#$f4#tQXnyaxSP$w+!1GG$@#nPB)#JXFjME7a{&umf6LPm&el>o5j`m)B8+ zzLVaPi@!Q%nrV*Yn#K$246j;<@YYyXXS`}9QCsV^N|U+xL|zhRC9S0wGf2muhedSI z*<%Wf?NyvXtajJ(QKK_l`PEh=OO@guV&l^kc~G0^&Cw@*S44ix!KYL{=qb%<;vO0P zyJHX{x5N=J6I)ZLtuSagu)RsGqgpfib3eXFmc*R)sCTjgmp1oLYCEz=5XorbU|c+f zD>9qAU=o9H#bB6#(&@{*zyd5)5R_yYLgp1jd|c_z7sm_-E7Q{CKYaq$txS~8=q2{x zOxOGe4_|VqF6^60Y4v_chWt{KFdELo;cB}_v1GL@kR^y(Z=B)C#YXKXgC+Kp>7JuK z>tD4cL+5doX|dv$lu$LUCL)Dp5EBCbG&6aJ+)yEPcID|3iDEj&kB4RSx%E%tkwRo# z#==qV{fJ4wrlkF($BQvjxSA&};`_xt%~rQsj3R~)#&2TYZyp8iIT{)ti5t!1Cnb(HbYvxZc*5tJl8~@1GnM!K|V@=|GmU3hA=D(Py z9@1um|GEG4o5%f?@}Kwb4xV50?0U`2=?BY?4W~bA2ai{;Mn87OV(q(}eJ1zU-p12F zY=iNQjr?NU-rH+rPU8zR&Kxf6BpxsKw#mzj`Ht;0w0ZgBLHc^H3P7BV<)H3jgMVT+ zpL&~X#`2o6Cik|37b@Qpf-l@ozQH55YzVpx-1qs+i*0%IOaK5707*naR5eBVQ*S)H ze&6T{&g^=&LroLCRu7|!{&&mlJv*$pwiavV{3XjXiSbQ){;Td!vKpDbR&k~*?`*|p zw2ntBqje2;YP1P^EyI036|L;5@rO=+BBj~l%aL5Yul>U&wVd%O^knd>#;71K{^0S= zvo3jNau?`U`*@vT(#~{w*~zUIrRe_6oU8gXm+2l?WRj^ptDJ?HwdRBG>f%{0>@nZO z(T2;9Ahw;`1!Meh6O*c$Nr9;Pa#ry31m?98R5skCY`9=pd&W>qem7=i+Cp2flq-g+ zhcHKxHm_9I<33=SY$s>&^9Gst0(ip+eTVHHgO6xfH_>hPzHtu6^&h5-VO&9oK%wrYO7HkT8}H zx6u^p$ra~)FEFG6uE2cp#$##*E70KFL^GT;wP)D4S0zbae;YY^WGifcV6O&zZEyqN>k#S|oK;JO$3Ok=N&oF2>w_P)}n~ z^#)7~tY`oB=C$Gh*5P7rW>5zS#(htu15sl7J_C8Qnafu$7_C;L{^F032^-`uPNj*1 zk#O@uCh?ak=^p5+&en1Y*_U=AzBHH+>N(F!q;*opcuNo~Ec3obeE}s|3`=6p5(_ZS zFy|zqtLw6*uMXhyD-}yw`-B5QJQcEKrV6l}nDCt52h(=Z%*mZz{8wf}?NKD5J;)uL zw?~z6c@%RlAoImeNaiOqv!7?Cg;uoBb#KR;`K{%VJ@G*|biY{L+j~7_E^)pI1m8|K z(G=i4f7OfSerBlamDO8OEdaK|{a{YT`04b6(j~Fds$6$v;`ZLJMtx_*6#AL*kSm1w zuV-d*nEYtoe#t&KE1~z^?|9`ruNn=i=j_tam-V4Nvulr&`j@ajw|A>K+ePSp6BB-% zlOO*U4X?MKCO&n;>E-p>=*05caBplpc4~(EtzQMpJ*6l49k#+ln%DAp$&Ah4mcX|` z)sz=lB_1y~c5)})`H$pemscYkFa9e#3&olZ#)~ztLa&*_nBg5NA3X-^wfc~gDvWpf zVJh$PG-cY!y0e@%ym)Llb(*|hUOy&3oL)0`e<>V=nPqQk$5amf_Jh89{8P8Kn%nkh zN3I@$XAv*&4_Jny^&5hgh&6e=I(g$D7d32B;JM^8oJYIaGjEGC-l7KXTj;IvURqm8 z!3gy8^;lwWKvf9M_z`E$?7y}j>*Iu0LaEBRPsu)b{Zx_J)116rNa#5TKY9H=(gi4Opc zQZsH;o<&XrIt$i9L`j_+UzEN;6depG*5}ETXeRVy#+tEyYTFNMCaVAaNRF$AWVRsg zkySBq0;Zps@G(De55ebP%4`j0K6IYz3pWar>ls-ttykYyCmNfKs+aNXGI{Tp_p*VJ z38!?mxZj=iY~&Hv?~hAI2`6H&%0=j0{^MVNBEozyGAl#8e6%O^7n6Pdq*me|$K6j{ z`q>L&^H*dJ@AX{~gv{;hZ$S~#F(V(5?8zhqeblVpncP$E8Hvaw&jf_d`qf6C$s*K8^X>o#<>4^4x$15>(MlL2mja@U>JAse?W_-G!-}LeN#+2=H z11ve+n}ZJMz6J5~;ny|qt3ETUuvekit^a||f$n083`~rVI^rEg6cG__t$E$?+hIQh zHo-*zm|lahES|&kFyG@@qvb!Kc(d~Yiv2#Sd-JAHkxyf*o!pJ}hf&5>mNf&f^v&QqF*!VytYIQ^I{IuUyyDN4ECAaQl_6oC|WxDRi@#!s3EK;l_mS zi9=?w=x^<)8~FCNWZychIn4vgv2*dp=)Rn1T~C#;oM$Jb!g<++4#QlKH@?VvpY45- znOPh`lK1y-U<7AUlW`CCG~Om4jkJ%xFs|>p4Ju$+TF^0v)N7LxpT%G|*=gPlB@>4M z8sY?Nz%_~T7x#pa3&_kqn;t6A-xl8tYR-(cMfINDa0Hd8uEXd@DSlYXpDp^d581xK zvNrozXOdRtH8fmuk-1JJEn%$r>@!m;l#E`T*vwck#OCybH495t#8N~=W`kbciL=$U z@%+jMo)fk2b+R4(hnmgUXUCoI9QXoZ83~vPc3+%yX5zAvuE@cC zegN|#kDGbL9fNmZF}=bet~~&HI1uX2s0qg5qQJFNJ#vqUrduJF#M=P{|}T5K!UOMPRRiaMFuIMX|M zom~rewzc1`)ZRHNE+f3Ix&&*-m5O6PoaJKeP`qIG*`I$yda%JucZa4Y8hq{{9#dya z{a3Tv>@uCAqF1n-^qCML#Qe78Lqf4;YP@(EJ@*nE-qGE}vJo*1~NoOubcUK^~}h8sL_KT#vi>{X9q^EUUKnm6`R z_ZutSZ}R^%wf5iJ5N~X6;yz}B^p7N5L%-F{Da&=0;<1}k*X)gm6MGQEayZ*PQvNq_(N{>r*nqRNTY=lFN?B?OOs__~6{RIC9lT0=!&NgkItUPky|b zua;Hk(>2GoD<)cn%SCwe>foD+-;YnaPn^5HIvteT)}i3$J`AUyj^?yirz%xL`8&1Z z&ZzP2%}DrUO}y;f9YSViMyB_zb5QlOJFF1PDnJ4TB1_Cb=NU8jmofp0=q2_r;bonF;nP-oplDc?Ffd7g7e90Ol#pOhV7hJy3L5vk9Zw zS0Cuxf{}@eeKQk2VS4)IY$|TH_dr@A%F4UQow3}QeV)1LXhzj{-rQ&p>}G}^Y@XZ2 zS5r-iW*48emrAg!ittQP8-W+)jcS4wj;VK?Kw^{F{n!H#v9Mei1v$mUoYUw|Be->R7Uf`nH!(g-IeJ!iRhT6%k)N*wRU{!7lta(;!JYp4_BsekQd(P)Sa|vkKrQrl?yM7QcF<$@p7ZI4tn2b3o0G9bMiXmwJd;`xF2A!8 zsu62;)a1sCwUw`pqHak@#XStQo9Q##>Es9N$EN13?GBS&-WRpbq591cS8n;iggvLm zotyc;SUvK&&lzt#N7G|WzRbE#<(ye=@Z`qJYsPv_Y>obteacN;y?~#J{+4@h;s%<1 z#*5YYP0o*lcx*J|$Xt`A54Ttw(iM8RqMfIL7QjIw`K6?~5 z%hFEx_x^0)E@RW_j7K|uY3iWE;hCPfvf=_iUw%?D8oejfyMtI0e`n@>()Sky8P#?X z_j}{>klki#U)W~cO{Cm3sVblPY|FpbwiAa;z2-)<$?Q)vDrdB_8=H$rtb@+TF+PKUH9&&2xon$L~ z)!^Mb^R898XjAob;{Bf%vl(4`1u&ETiMI|{HTt$(*^Xv)?@ab|qwyr=YeRWrPFnpk z(Gn+Cg#M?-!I)L1FHntWPz3%rbEHvM(oyoQBWl<{lh+rymibHN3g2ntF(rfb#?x|Q zx$g{(a?`-aCCZu8#BWpIT-LABjf1O=9tf=E5!9n;a@NX(xnch7yXMcjL%|u2sNq+x z`13685SzGm~yzt1Tn?^-hx&fnCl`^~eKYaVqq{`tH7m+oqQ?O_7yC(IvLE(E>iK2(PLM`l`5&E%` zbUJ##JVrJC_)v*OIW<1-ig zF2!ri9-hN}U+Eu)v$tJV$uuUMEbuXhw`%Zsh4R74Gm|wU@R9Kx@A#Sh98HZI41Otd zZ=a*kNhH+i{Eaj zNQ-ZVIc?Hn%~-FU*w_mVc5NSz;Wvp}BQiZcsERfG#{a2<+Od|ZY;@|y>N*p5=QE)| zgVV)1BrxX5{)?DRzjT}3#v|Bpz<6@b3E$q_H#Sn!C-y{VEY{?;!TNWtoF@O-?&oyp zS4Fv6`e%pPY*F=t!ymse++F{5#WqN-YD62!ONK|d+MX^VMG%tHM zg*)cZExQxOlan2+ACo_I;^D;Vj5*=yCafPcE3uY(2CIl4Rx2ds_3j$Kpwl~(gH zn#}(EXXt}eV@6fw>qtQ-2Gb`!p`7%ZEq2uDXm{!D>F+IN|UWD~- zQ~FvEK++n}ldynZGfKkbYkuH{GN+xfEhpAbe(`l~u{<_Vspl}( zjP;t>oSqV0U0LU@!jcz@hGTxc+Q+-cL73=%I_<2fpHql`X0_Lp;eDp{ai*m??d$|y z;rKZ_rCe{n)d^Ch*TiETUt19i`QG-vg7ni6+r}P~$drj# zE|P!2=%+$KVV1v|iMne6eJ&|4NM9*{UMrqhZ$aH;w}tvvFO#q+0!9OLj0{p=GB| ztew4$zg9Lwu8wA(F*3q^G~%AV4;S|)x5=l=o&iMat6Si=R%4TDiy z7-m88ur)nX0Xh2;v_ouf3otL6)SBjilEUrbn8;Zpq+^Zlxq{_NXFc(qUqn=v409-8 zO=Hs4A79+D6m>WBDmrUjqrSx@9O4_VMzdBs&sEsu*V;N8dM01vzUKP?@+zjs^172& z_6N(fXo-Ny*)-cM_P=mc=adP?nj_o5)zpKK{GBPb=!511t@?wqZsW-3795ZMV@Yst z;ytPf3-g^i_nx#~Uawj6^w-y2E>-`6O`qBD)iU?aSs7PLv?A7W#wV`y5Ed8lyX70v zJP=FmcgAu@nQ5u-Y@~X%dbQ)lW6fRrE)4(l*E9ThHafleXVw4Ph~v!x-p8zX^2__V z=$~G_cFpRym-}cV{FwX=xpx1eu%9*wbz{TnM>AfHy!OT&kFve1-^wpuh%-N&UqddN zZBwO9=9x9>tgAMK;>n7K*UR7EiR|3AbqXdBYZhw5i%;J8qy0$qq0+k3+}Lsy|Mtynk#2&G21EKfnbR7a0B&uG|5*kR&KV_ zC!Ai3V^r)7f~(I|3NZAp-lbUij=x(i{FJL5J|&*qTV{;e)z=0XK`=*=Ba9i9p8$Wx zPwaD+(Y(6x6uCjYQQ|hUno*M1#B!ct$d%O+URCU2;j(_Gxv&1Od8AWuHZYj^18>q64s0te>Jn$qQ$};zX_A4nb+jp+lL@NZSsq=x6~;W zH*cneb5CyXXL53Qq`M9bQ`0_z@mt2qyZ*RSk47%?$Zime0Y;I9Np)Gj23YpotphJYKaR5bvZ4INi^zx-2P$)2!%PR<0e22Cr3K zwSMfBm@_t~9~*w+uYOh3xsL3_<0n-w(yAHmH~#0!yGd<%hmC0TktZuZMi}Dyf?{wQ zJwh99;nIWG|5D~;$ImSs5099YIou}Tem6&d`cHWJnbW3cg zg(M60_pl^xRG{u%a~;1|>$Q_NZgV}movP1#?NtlfE-&Fg*ow>l<7GDb)W{t*bNbWd zH0q`6E*VzstAtQmiArvl7bSX)kWCYaSv ziROD#9vUs{|9@dl7hq2Ss6bc0+3}gp2VD}2|9YgC6T5|fz=;{0h;*0)wlEkK;GJTw)-zUZ z6_Ci_h-DEO_YiA0^G0@*J5|Nm(8Oto%xS>N=ts)$^|kxN>Po~?I=qwP^X+0~O+fa& zhFft|r&vQ$GaL^_&Kf1%n+_QawH+rSkw${Z{~WcW%#`AmcTBS5{lPM?Eqc49?+e;& z)t7wbD^o-g2QHJMG@nzBNsgqK7kkJ zoXo^-DDHPn1!|@|FXU0J%KUitsr@4|GyE5f%yfF zux-VfSQBfb9WVE`&RM0MS!1$(Xo?2&F#3x$xjFp!()=GS9)+#;)*OeU!K`Vlsnev5 z@rkgFfGM7LpRlsVW0@(9tp=cTmhPQ;$7g}qye59P-#m%Az|BnoggGSjo=I!Ni66!( zDLJ*j>bfAAT(n^>$>J}-Jj(z85CBO;K~z?_ zn)M!eULx@qlgEP2!RY$4L#_w#x2Nt!FywK}tF#H~bd>uqytVeII%vfFn>oj0ZpPhgb-EK8;k!v~Yaw$)pxc>Ml zSotb7_WBIwFPP$V(FQ0qew+C-_l{fd-m}eYZ`Irfb7jcoa3zxyZ?lNNU2uHs@h)lq zLGSlru_7&tb5&dK0?o|?nPB)Xryg@JV_;`Vl(v=#^TD76YjunCUsf3AmoyfIs2Stw z4axg^MW$@m{@3f-LTpccH3WEATxeI35&0`JC4!;Hb{yn5p>@%t&b?~AyJWfVu5DCT z-0FyqS3xl7oyoJIr@b;&z}LJ=FGIR;(X)_{*M=I=1)<@ZLMv$P1ZLkhRd0S`^4(+z zE);G@_J*pfzT9$UuJS1Z%!PK6eRQ7^}11Kh&tN7=bx8KwEz? z`3p8NXZ_9P;&?R4T!v#JbH$kIn;@{N>j|pXN;=a~Cg7Tp3x*Yt(chmT zY8D$o??B$4msn%vOvtFg%hoXf*L5`mb{{4A%X2}`tQv8<3O6#dtCH3SoRx zBWllRjH~UR+*FPqRc#s}tr;3vY#iSYrDJK$lFA8_CE*i4oF_~;sK1-}S)TbRA*We$ zvDR3ys|z)Yz*#)(N)x5-VcKh2sm zj_NOKC06mFFxLE9aL^5{YxF-^&-N$gn6=;HJep98T6~Mz5<)BeTKudh_--@LACkLh z-fA^6zk(*QhqR^RCo%DOd9hxbn&FH!b7RI@vSTjtIUy%6UuIV#Cv5kM^!j)t%i&*YWS4=C~_<2cu+f|6Z^?x#YEnR=F%!+!+ zB+>}$e1wz|t=Xj&R34-R7hT4iwlwA^CuP2U@7pzCNdxXZ)rJ0gnT@8mxG6!LVcE&uQGe$c$d2m!U?Z3lnN$YxK!qFbb1!A2G1z ziOoscS>x!w#!_uX3WM_!%znVAA+V!fD{?LJ3vP#o9;`vbHaCrXR4#hG+2gubs@5j0f)d;Al~0`mGr7Bz-P*snVLVvzZ*WzD4l|90goA z9Jeg$h)@~H3SaAMK`Wy|y`i<5{M*bwIT)t(Zu5)7h?785+x~(v3VcSNMi1m7GZS8{ zT`ai_$CSaMS~XaHwE|nkb^Sg_)^blQ&MWg9H#VYPF zV$$)0VT~8?QTm%kq?nH?TgBe|l{FlTzZleH^|X7g!tpEoiJKDcQ{AuX*`%xXZJUot z&tt`zlrzSd^)4v+##Ec)NHJzSk3-JbR(h@RRNhR487+9fmf?!lzicUAY&_(n$zd}X z8JWo*oIwwS{JTkM6tcA+ueHsO8QLv2Iy2^tW`_+{w!Uya- z84mT@%1QmqEc%nurkXnSV!bAZ)j^IJ%Inznj+NR*{)hHmiM%arH+bUlCqJD2H0vW= zwOHd_x#+sE!RVE75Bi5t0`O$(3&sSb2L7wwzGE~N;_7PlQ6W8FnMq=Qkr8Gqg~&;; z4tIYhvhwFrxv%so+1RcVc!t5-E6|1*>#OvprD^= zt~eWDHCbr#pZWzexEuV!OU$P>YS7bbotF9wl{qW*wSs#_T!g2YFk)W)( zg6QA($Nf6T%Gp(C(sd;+YWl2jNM@>g<5O|wNB8z_Q#DI0c3VSj^e1jkM(e20H&|~c z{b-EA-V8k+a(1;Gsdh!8V^PI5aId?6$;wCX|kl)IyE5i;iUQLqh1+a>0;O)QXJ!@|1O z^qLYM?BrY7BJb7n5by}Re`gJB{i0syTM0GtD-=HNhWSiBzktk)OzhlIu&=e-ONT7L^E@vBK)o3&JurV}aj`5m&@8N61tdOAbDFsl1I`%ChW&n!s`*tnOmK24 z!XejK1hZVwkLV8*aXmAh+JxmP(7pi+^Xdn7!Ov`6*^J8Yk*{RYmSk9c_^kS{V6f(mHQ?X)A zQm;@0`#zQq{LmVY9onI`U%4Is7W_m!n(^<3i{FP{d9UrXC0p5cpSaF^yIOLZLbuV& zfAVr~8|}&WTXHZyjF|556;r9l?dM~x%zH3~{C_>&w)XHW1@6V;NNaNmbA1WnF((e< z_%J4)KfWLslgx(s0%aVCp366Gz%QZvUd zj`F~IhG4IatQCITp;j<)a*7D)U7C_w!k;b-Di;gw6lX) z`_#-Dc&`)34RKv&j{9dRR+o>jLvP*R;x;ZYQq!P#h4f~sYn~{^yVj4bH>9jf2Nc|4>f)rl}t}%T1Rt#n&~xoRl54B zKg2ffH5l_fx@#f!9L>JuMbv#mwRy19{fZMvpg&+(2W2Mone1H!P~}lGGn0Hm{)0K? zd5#cxq0dZE&l^4C=4%5gfgQ%^(1WyuAyH31U3&+s0;Zjrp9uExhDV8(VYv%Df&KPd0hw`+!>xL1KuaiG98b7G+ZI?6$Cl($idxV^)qbh0WvDzdp&?a~Kx=xcCiP4XTI_FY_ zWp&gu3APLu`o2S5(XpAR+*xlfz6`7T5++sO=V`|*Dzht9CS7kcoh+?1ALL_?&ULo; z5X)-n^&{`=M8T9xdlhy`sWwA$nZD;0EPi36ndGYBrLyvdb#3(|FE~$t+Y^pS0Srwx zCUn|>zV+Ub9?Et~jWaWt!oFb8#Fk&dx!|mcNf<}gx|bvDGk0c6n-lfqF_jb1NDZcHRIoy(n-6Q#~m}C+*f~Ank8n6$_9@w@?M61 zA2GQziL5^@qHLxPlR*%B6t|h5;+%mG9Y6ZB7^@Mv`cXB6I^oZS0QmcKbmJ@4(&AYo?;d6O(JQIJ1 zr;Q$SD{XJf(QH_pfS74IdTB>#eTf?18lyOdtZ#*0+PoI4)wO)Q#BpdJ8W&)prY;2NG^NeOi$9s# z-H!R0^&P2l}X0DCYHbWrT;>GkxP6g>oTaG#PvgQN0CWy&c8yQU85{# zrvhJ=$&4RC*Lj*YdE1v6EZcPyF!#PIjk`W_B$!rfz?x#a7>M;)!CDAjQ+i4Qz`Re4 z);!LXZj9SCFb0>mo*JEkIlVEo6i+9@IKCN=+$t(ZqFz6IOb2mo9DQtWuyGZ@oq58Z zXHsTj@oDllIJh@ue5B8Mm*N-I+I-IRd=i}uXC=~elLXx7}A=ujmtU7&tv;pch;La7MfHL9c?|nQ|SBXmWqor$h!xe_tRGTfLHd?sEB;hX3 zRAJ2EkLW;^DC`o*BKZd$!H*LyZO|I4i&)mWjq ziYF+-025=Kx0+xINwYhvyatTP>ovJCG|c*X=b?tiU-fRO*Dku~#}KS36VzVD9f&Xk z4fwmMg!($SO$JwuM1fkA3W}}8=r9G^P$ynomDOTWTM1q9f`~Koiw~x;&q?pS*9Rk) z@~UTG)HbaWO-+F$UZ)k$0#((&=q1*?AJx+9yi%#og)j}uz2Jc;~XLh#QiV0^H$5M1H zL7TRD5Y+=s+(XK}O0vqtUXCjB(rL4l`NqsWTW_KLlKRYqL&Ow$Z9uq%nyeUk`%mi> zjedL;P4ZJA9BI#Un&ld)>VWDs%|PiC0>7J&^bsVTwa?H0yKV=c3ws9PiYJsBGo^Wr z!#%y(lQEu7Vr|7j?UaAOs_XHhb>G71#siOui2D&`RT)tjo;mN{_VFA_hOt^Kr!^LJ zrcq;aZST0*AFVdj6wk#?4CnLBx)$H*0A)B5q}P(=k0iA9YIWRw*J(G|fuajaqN_YOm`{$FVo#jq$!f=mn+yN_PBXbD@AJCZz;h1 zJEKY??Y$`zYr_w=UXvd)H)d|I-dGcB*66k2eHdku8i~^3=Thqdt(;E1{$YoHUqm%R zH6Hl)^SfesH?`w<@o8#|&%78jRTlyv>@x$HR#Z%?u*>k`AJ{2B+f3;v&fLk1HF-^J zU%e)lZiT8`=1xk#tRypy-qT%2(ez69lJ9bY( zrq2$??{erllW}$A8q&nF!KfBz-Aj41O?h_2<4zqD~ql-ud=&RU^PA zze-`4MYgJVVj~<$ClRwYmYf?ZHvJ>}B(~`XUdq(i^fwmc=Lm+%{V3@*IZcdIhp`=a7DRT^PT<* z6=u0gUD@S&AAtLK#SZJhR$Ztx+_zJmhQJ0|-FZ1{^%1>3uT*Jm6~7s_sPuG*$Xs~2 zaBQ8yVN3I${<|l&owJ1{roAuv4BmOpF0T=mxNsqs#1xFzBg~)*a~fM*T~pJRwmQyi0Ww^#C5Q6EcJ2`T@^Dn|1A+=zsUL*g{6oyBD8z6 zj^*sD1*1Hq-VX^BFCe8EtDTHg`B}_qQ8l?}n|y_fi5OXYKYUhx&ZESu9~)IEFKA|= zP6uO!pwF}NEY?-KTF}C={%%?_=5egl(qP-_kosDpQt|s?pRFKBiZmck?5fE8TY zg)W!}r%RN@W00-b-kQ?PqFzg74{pWNKyUG(_#ISkp2w&QORM7~iai&zV{e{#>c&Hz z)5=dNd3C;P5v`ERg~x>ljDI-Ndb{hjA_P3=ax9&{Gf+&~;%b4Ixf2lY98|x_f-%>r*HD|n?MX%9;q_yccrBxU(A9foEH){piN`$K;D5o}UaMAa&)yU3wSX%# zU&5%+W#^+uN&*ve&U-X*bFOW}x2`$YTz$lEyK@{U-`QvU3(2F^Y-F7_@p#MSwZXAE z*h>qBUIVUdeG4Www=!yuVOy&p(@k|w$QZ{MM%dDK46-#dlcCdseDpZ^O1_rvF{^&;6v`Rny(V`6){7=KHD=zIK-=7af6=@Dv>WWjYQ~yaQ-^1A zS`)$1JDR7^Z2Wfk8P!JgwdSJlWPj+dALu-)vbUF;dUGcx*P#glr_ZFGPei6X3MK(W zgg%3Rm5aGGfCa7f4q8)eppM6&8b!jjo%hQwNrjv(5|v!J*J56y85O7q{NYnOrN*E7 zAh)!n<|h^xc`W7(-(GI)QHOBH;Jp!ILtIU<#_5Sg+OAw2uC7qtyz$HGzLVE$Zm8Ev zO3r6i<>2CurT8O0;Iyc6bwvmeN#bV8Y7_T$-I2(=C&+Y_S!QCva_mzSKDhp@UsmEC z@?}tZ+~3dF8LC0;8f@7X$51}DWRo=oMsqiEx4z%=Y#HlS|81EljcZq03*w&L zO0on{OB;$U{z3nST6UXxHR)(X=|Y)(t7*~7g~ z-kg?eDGx5q3dEYBMtV>C)p-?YJ0noN{@UXHW%6Hyw187?x{R3nL!zRfHZfUoFcNbn zd_RL*U8S95?JB_UXOiZ=b+30#B@y%IW ziEXW2-Uqk~bLNWc#EVQ5ryYcnw(G0}^BJledamqj{~r3gIaeGSH^ zA*A+XxG5d(dafD9W4xu%Ytl!A$ompoNE5hvX6D~UI#%gBb;h1wsn)zjSoLnE)>}~F z=VgiNjP&>{daz2Zn(eF_yRS{fDibPL;V1W9Is@g7^>ha>Ix#ie1 z^Nywmy)EF~Dg|M|Nf-I&#jugb8jxD^H-srZXXxdtpw|E*b|y#%`+P|e8$>+?S^I+Sy&O&gC5 zKe7H3_pVd-(Pm%IbK;NU|AOQo`+VTXy(8W^TN}U$^C65!EflB-lNZ+PP20yN*b>wFH-VOeHUpu_Y*5;d4Bd2Zh0PyqT4?86jk4IY9 zqaW@&kB0ep;>OBtuh)hXYv#s`wTVY-EI&5<#J~4loprKY($%5v!*EAxrK@DopT1~K z>R|NleOPAg1iET7yR^E8L z+-c_O1%xadb!C3-2!|ZTgktq(;Y>j=X>43>0h2=dLKCs_q3rtuhUwW@UU~nB+L>9+ z1t)4RVoUl)jjqbd2dj3Kcc~v@BO){79M7mTSG)L>dvj-O-NfVNyiK+g>utPo5njgv zhwC1vvYA^wIlX4Fn!&`gIk2YJKUT!C9AyXlchK$Wp9#>8YTLu^C)O#MM(3*bzRo*S zYLi~q^e@j_AvZTyEMG>wUJm%rXPqL}-;u&CW5!B-*$SRns__Ol7UgQiwV1>bb9%}8 zHa{IQopmka8tXmBGfV0@vb7V*2w&V0W)f)C99%wXohK|C z47)WJK`@Oq;2-7(l^0ffze}h8T{F!1s<_kr0uwVURg3)_)EexSsRF}SFJLFbbUX&R z(j27mSZ{hHfs{nnKLTe)uvI;oU=XtQ9GsCwc)zE2%2AlfySl5Dskr?_GDvYS4IR%f{^VCb`CzoaN)xqSQG@%p5aB{Cri1YqX(xK!Sk{MtsA{h2+{*OQP;Ry`%am5_&VB+aHHuF0E1XK{!Q-tSY<`TFb!gz# z-LIQ!;)s6=X9K-8ay)q6vx9=|X-?~CuS$<& z6)#s{FF9B6<@&ZnV1JwGQvy3NVHoTG3;S3)`_Rv=-v_L8B@i$(ivjgKQcbXC_z%Do z`8@y#>#8No81Tp#{gv6~y8?5|>JM1APL}ujCJK2m9#&t(T2yQDnzUYS@c7{-*8j<> z#)b&RLXB`w`3d}5uN61K3YJ0+t7nCOKh!g}&#L;?{Y3M**v;P=530#ee*ExfPCSN= z+0kh6a$|)1eHyL{KCa3qq5O=8A5O1kZ1Q?J{g|=(iO1iZieYSMKSuxn5CBO;K~zsa zJU>|M2Q^iAX8rbHiPCz=2H)79^52yG70sDE%G3}x1jx6!Hr=c7RgVf8S9%rQpTEWu z#(GVxiNCkI_S;K$LmQ0r^e0xMsn;ea9$r6YzBW~0uo8xKrNk+JMahCh0}^XO^);e_ zBIMpIfOFO_dweJ}`yEje_KF@ITQ9mGHC)X^*>R)6m1J@E3r+WC8@M2jJ>1_QS+pRl zzrrEXzJ7h3tX^yVt?Mc?x0S|)q;4`?dc(y}j*!!s>g#Zg#k5y>tC};8*EqP@Oz#cZ zW{En@zQ*IlKQr6T5zl*TCp&8qF_LOJoPj#MoF=}lnO-9@eXbE9k$hXUSo1B@*R=)1 z05?-!OugVh#c@SSL{S-|KMgPwvD)@aSZqb=hO>D+){EF_vCemjVA939GaHtK~SmRVSHP?A&tkQ0-wXr*`42RA{neiH5 zh}fmUpoX<4QqQ1eiE`Zsd@K6B<`2=CaDIH{fx4)g=;7CQk;l{2Yhw6ofzNYFWNkO`w_cHA`{?V&6xbyb>9vyV>~~-{{vaS%jXtCn^-k}2 z0gt<+AKVh{%n=K{JetmS~!%(1o zNIj_$jW_E~SX~#M{i1NhRzYtZ_c%E*vZ@h}-RiGM%@=mhBQhRbehLn+ra}Rt!uXm5_0aT1tYx(D z#Sk+KmcCFwzy<#Y&doJjj~9;(clr~L?({3aT>WHhdSdZ;p}xdku-=@eRudogfjY7` zRHw=4Pm>#)V;GAywcK^7GT*ZT$I_h2e7~cuGF3>BAiURzt1l3G*gehd0Pv?gl7DT^ zUif+hc%NBcBfAiL1#PZy%;d_))N0WG`h47)>uArpD#}`e<3x>#&1;f!V(rAnnio7) zc}RWL4uCWEK>R1H9d$0iyfSiP{b?sBE@P>lwM6K&U~tUf zD4Z?I#~PHZeMYGtR=$wlnp4b~A0LKRY0v@_)tMqzSutpfX8JjH`L#B0eql)js78uJ$|PPbHtY zqeN(%mJRZaZVRs`9OksEm^+)qiQvL~%GZi3?B$BcVEL+o*6 z+-vwLocKFWc|9NUUVEzr@_zOX3f4JHB2S1`0`{~{+k`-=UOTa|CTAY0!b<9ZrsL_1IHJ~&t| zlpi3uF@299)sffr587O@e?%yO75xRde(+Hag@QgzG-7BwlF7Qu2|B0wcw|OlMvFBX z+mr5#(|LxK!)0b2QI4z5XWacs)XLoIr7meo(id)!TQ14mSCaJ9SS7fex zeVJHhUI^DPBZDL#dyZqjRdRb;(#8NHvwgbQ+QvSy=3Be_-;S&Q#`W(Kq3Ps`-y_H;My zH{v%=IBob=L9Xc;7F_ODF5-5x@h~=yT4G$xn8Vfmf~os@_3)W&(R&vtqGu&Eh zRYXQ#iLsW G_SnG1&Z701VD7$TZiPnKcz8rj+aNqHnOf4nNL1jj;=nz`J}jD46Q z5yYo~ZqsVCO+@uT($A@Ly~c-;$g_C$>Ws7^>l}^l_0B#yt8XUg93O_&+D=Uw-uqOy zVFY@K5+kVd=pl+nV5mV^kLyXQ0jpSz-Vo0e)hV-9ADbd*ruPGP&((YsZtpviOQF|R z_;6k0idk4$cOV9fa5a;&WTDOxRut4NhB(820Pe_t3a7y`b@tSxGACz54TtN~~>OpxIeNvoBQszcX(Cvyj%z z;`~f`1bq>Y{oKD<*CeM+ZC!^6-$QbDoWE9@xj&kKJ}UU zf9$9EcpHAgb140pSFbH@x$p*V96cu1+h(k@UsrVpt9(MSY3<|&>qjHjMmyfTyneWe z^{1(s_|!IM7OMpQ@uo<^`DrXMSZ{1ftC&U3`v&|!ot|MG%cJ|w>Fa}UZXG5$+l2lg z<`);uw7C=Usd>&BYb%=uj&B|;rtM|he zwu{np_o}ucQkQJ}qEBn0MrIaY!4>g~C<)XMRvqDw=!=UU#-XsoUf*%E@kJLsMs8m*JHux!l1|`V0N7= zfr-d4#cmbd-ca4)TNtY#?vX$Z=OJ(zxmKQQA(l0hKOCE_?t;ZXoe33sGkQ&qSjc&F zQ48EL6LKjxi~NaCL17l=7SSUtsvEr6>^p>usD*gdlyi|^-qK+BK1=o27zm0x7Gu;T z9Ede_;no6ccOdbNSye`1rYOSIePWF)rdN4wrOIV?u7X-T@u(7}v8$HVFKR8^Byol# zLHcbeVo`VI*mu1;+)$=B4la3Dy#A827*idjqW+*Iu;n&HU^O@!wHeqm%=bGP^`rv9?;ur09uud}?*!H*|&s7$6Xp4ui!;LF_hx^#_8L61H zeFe3=`b~O#X+AHRON8?cO1if)L!2G_epR&lRIv1olb*R4-Fez6lOH>^&7BosX7S@I z=;do|uzS={uI->e#PbZJ82_Q81=3o4Kc>SdCZ4hk{@F`Gx-3(8#*6-uvkvoFp8903 zD09tl^eVz00r5=FGWfUt-N1N^LLsidxARd4pRL6jbWQP;jIRXCJBIo^y|?qB_LH>n zTW&|~&HsJumfq&_mfIF%8j)(0peVaoGlDf3xjc}0VF8m7tZl(C#uca6h6C5;#7v@l z8lPt7Q~W#L+z;(n-E+jVN1eB?$yB`y1(s&;c-(l{l6+ z|0#ZRlz-e8{_p15Sgd( zbK1%OuQB^Fdlvzh!>l;#gX9-czs#GA#l#+`M)HiUYHoTM{X^?xL>(j}>bLyi2y4n0 zU@@lwcTK&l651;{_un25jMi8K)MOLrK$T{v**;< z!&no;>uM|Zl7=cIFFx(ghbKfAb-7hfl385UvKW^TSxv98e(?HN%#^EYqaWCz z9XS4|u5(UI-fgs@^w7^EOJY7j4an>&wFLW`vnqX0{sY|_04y1=oggv$+}Vgs*?5cx zwZx}tuqmyIH>k(b)Z?P#-irpAEOq+$^RQ3p52;+xgBg|M0D7%*hc*zAZl(bYVVWt= zQq%G}Rz`^5t)Sx^-R)+~Yx0_zzULSH%*ZSwbPxBdeJ<`DR#|fX{%trKd1LjY5yKP# zv;nxZ&@im3*d0DX9E|b6;*6J#u6hwLRXt6u-8)J5N*igDmCWo&+;+yQWyilUG3V&4 z>s>37LE){as}O6H#NPH4iWQ6(S2e%_8=BKY#b7*Brl!<`@VKMzYdUcy_E$VtRTJI2?%v{tEwMrD^R5de^ zWU@4Cr$+ls6|!V7@T{2zS7c@+u`?6o!@@EbHZhIhm>j@8DiKwDMRU|uTp~FPoJA@k zUM_`TOMpEkMR>|Y%OL6uc;+H+_la9swy52eh_#@3UjY$#Nq^?lQ)Uk?`nNT8ZE8ma zw%oAyZ{!-`34<~IfCmNp?VR_yZWSu`V9VVZ>Vb{Fm<4t4cgBQQY}aSbOkEeiQthdj z$P3XB79|GgG~hW$HJlQ;+6&USuz>jcsX#-a)4UTlgZkZ6s*NVCTfvlP#YD_X&kgW! zoh-$V7WLM>#957-oF^dXmdzgPN#?}< z)kg8kxQ~=xv%xn~W&g zI9;kcn)W_LAiAf0w7jV=$g0VUPrLMu_{dk!7iXG#Rc`My_09fqeanqC`qh@ZfzNISd=PJ3azg!_kg#VF zJSCd>9Fy~EICcnKR5Odw6d{I-sp?|?ZmBFh^nj;xF3fY+jzcvo0S{_bmn3n%)NCXxPwjoUO_%(@ak9 zi8HhGnVfqXRu$?Imx8$FMRq56E(fMZNghjfG_uiL5GzF!G{mfp1)V%ucQ&I9&taTl z+s!G!&bYhX-APxS{^6pX344RPD*~nFs@x5|eMiR6pR|HYB*(f$6;upvno?-X9BKa5FqDN_j=@O>vz6NLE#24PF z&*W>v$iPff^_lShWIim8SZh3obvBvvtl~NQL#!5JNjL=obJ4XQ;cL>I`5b{%)#T`GFQ`#@b4sZfL#I zGv~W3XD&U>d9jJIk^=DGPRp$K(;zf7~9CYyZVGvwZ zuQF!%y16(6$5b_;Snb4zH+6)xirQ5EZE=im+8v621^%io9;5)v!pnIV+DLi$%^Pcr zm}huuxYxV3^2bG0&ibF)QTu(#k3^KK(|{kRIqjYFV#nS&<5g3Rg;@{Vn<5@bVHRfP z_2z7?AM>V7Zunpx}0 z`;siU68~?UM_xO7WZ@huz0T~{Ji&fJ*C!$|j;G%ZKE-ls)oDo&{a6k-e0MvDzk%Ns z&qi!{`M4WLj-WsSqCufaj zyps#eQ8+>|>a=}lM&QnfI@hb3Dyox-h8K^?&CX(Zd{KBq_n>!(%ND=;N)9Lf&Z_B3 z4#rc;8hr_=iyFyF!tFsdJqA>1Ocyx|31&wE#JQB$`ak=uBn>YtDyJ~GRrtg^%{{Pz zMv|Vazn`@FDuA@F30rAmZ7`C7(i)WRi;Zsb##(Sq`ou?#Yoq2|lT4edg7UD=Ii~oF zE#cN&5#AD9tW{S!bwJ2+eD8jQK;=Tyl~dJk5)Pw})n4PKpNBP;LhL39(T00 z2lXAyT(!8&q%^lQi45wff}fb;{3QHHme6Y~@KItzvnIvbV7E5l+M08Ps(i4LQKjW7fD{uvkNCUb011nVVJ)a$XMoaM1trx%P6~ zI^v2wUvZw1MA3!&ME=5McwhA(ue{VPWW6&Hgf&maJO9j;{O^~ui3hcVoF*Plti5A7 zuG_0A*GsX*Efn6UVDQI*YT-?*J=Rs#=Yo7qxXM*Pn>!xaPScER3n6WrYcIk&jn6=8 z>j>0n7ADJ?BV5xCz;WeO%T)k~@Jtzeqi}O*W;oIX8xKVF|6}e96ywHmWed#zfAi{{ zQzX=Ex$Pt~b9bLY5QRbkq$ssxdvfH2=>9tcKf5yo>VJ>OTJ?J&)av}Z7?+&Mk zlQCa!*D!kROit`y3-%*s_`^t4YoWlKON2;yuoJQFmv$C$w(Pg|O&Jx}xg=rvFHZK) zD~76Lv*O(mBF`INno~Swir&sCMBc$lx2iJl;(9H(0MkG$zqrua2S@OGBU*~=5wlDZ zgEop0y3OD{CCzk~ZGNQsO&!iVrwGQ`2v}-6Gq=h@=H&G)z{EJR&R=cvyN!)*(e&__ zERv%gKl$Xiq2cv@ezoqd?p6}(e&G~g~=It0;~e0$0Y zRE`&qSs|~N!!txr;Hkh+eqoRx6;3o59}3t$t%`9)_%S`rJ!b2md@-{!y`) z+ivfNjuv=c_&W!E_mCvk$&JsJ49JOv|FMsvZGJZ8d+*%XR6A|6M2+^wlb?8U6O-Cw zb!_^NsrBYoM%h)|nt(6s*Ya*SsF^h!oHZ)mnU#~%@)@CFyeTb3W)0Trv|E95ZW0la zZl=~or&CYNpolphB#~#wR(7HF`5lr4*lNvl8eqcP)94OF_c|Kuc z4f#JE)8;!r{mpv^nw+uzC;MLWDYH7iXBM~C04K>bXJSG;AAV9fANk?L|7~-t>;+eR zLh8QcLRNJ*#uIh_@P7G#Vf$C<$514uqRz|w8K2mkc5?p;Zn|8UL$8Uh(pSy^01yC4 zL_t(f8&0n!cY`YKo2k}i!-dxDw_<9s=wOu`*f8JFA|bm5;B53hck+Iu~@Q<~&S ze8g>iuhb>J78d4qnEch6v@-Gg|BBP={H^R(C8}!wt9e4JYYC0LSHjnr{Pre<)5{u7 z&fM>sdV6S7V;{{NCUl$J=2A$&ClCj`CaLv)uX){+c{7?=Tc6Kq_0m~)l}eG%T)Zlr zm$_wa3+wi^uBo|J`0e~DZ*8}8t+rpDN9A&Vv2XH~9>)sN5y#U4$h^k{teXSJ--o^> zhwI|}C}D)1mIlqF;WE^W$%~WN)5McA?l$tNT&%R#0<4M)N7^-g-<66rG1<~96Klrf z)y=I%!<4)eSX~thL^On6t8cEYw}*!6r8eiiK+jVn7O&HncxQ!~;s=`4s!XairdT(*%Wjc9*c9T^;!wI|AAF8Ed z-5u{F^!CJ`?4`^uSaNyVmbFu(E}tEUtpLfovW)MX{-RDEU&|v5>OC84ms7aPJaKo| zeFd9=W4KzxBM4`(!FIdCMC8q><*%VSE_-ji>n<%JN1g}L9`SG z3vtk}-wb7s)UJ9fle@S(pG##A*QzqH(AW8yOC2)(F0Xou>icWgJS(!N>~;(6Iim63 zcTFbW>w&r{*lp}f1e-S@{{zOukSNcZB*jpBKy0*}@feKI``LY9{$R9~?ABAYYt44LCczm zAoId)xNM+alhtd3^*`D}?EP@3_gj;=K6bFu<2>!7aL6BeMPgn{z;t55e`UDo-N^Rt zeTTVg@#2~@Z$h873}3g28WzWB?9=#;M{DXdsC!YdW?uhav0p7_-g|d5&EE|5xXeGO zgj18?-=01-|HRGaKIP;l@BYM^*qnasjK!MT@uQOyj~8Rgp5~kPkfB^dtvPKmm3Qup zi|Y|vb{dMeVeV0qw(=u1Z>)(=QzNe*d&a|CH+cCgYppLT7Y;k$e7~YA94{VIDt_iX z!zZWi|InVx-S;_rbZtpuwc4U2i!*rn^<`zvbzc*fEpO)GuV zWjyd6a%Z5<_>G5{8wYw9arbmp_bwdWMRIVhTxO<4cUZC3$Q|PsXQYv_|ArhP#0(eO zn7n6b)ZO%N;cL5a1zWkUAivSNF21=n$D-Z422HCtVyL%q5sfw2F{fYd>6{-5;cmG}130=cT#$zk zFa>u}RwOH)uySpn%R2KW(Idi$KpkTW(V1V9rB>))Y>oW84jlo*bmM0s+8O0FEfW^tb!z|epDq$tk^n}|CJhqQip3gX2AC0;+J)X{SCP36 zMZa~P78kN$fcqlcLl$yJpPhNkLM=DVI>GN1s1|X96=sIB1h>vBWYun0Z`W)q;v)mk z2%$Hf;Fw$^hX8kLvIr+F0YAfkT^hZ-Mnb6utW61Huk}`@M?oSuK2kCbxbV2gSpChv z5`OKN=mMNEA$`=FF)DtLXaFj2AkdsvXlq|4Hau8PqKZv)@yA0b82S)_99MO>03U|{ zzo@FyU$rjvF+%fV;61|8hIQuom>XHzY)#Dq#^q&J6K^v&wyAL{yPGaO6ut|pnArp& z$T@qlAi-mL^6tIWOd?o}s=Qgj}UYw8zCxNHABdUYGPM`WAI>A&xhqx&f%W z_?&WsS1{9`jNM}$mR(=P4YVh&SfX-C2F!FThWP5Oxz~B6rH$;M%^FH4Csy-rQEzIL zga@2nu=hCAHwlo}fQ)qpO@k(KbZ>MnYvPY=_js#uEt_7fww{3LVa2mFkJs=eTG1cQ z*V4Ncji?)-We2tAdb?0$dHvX%;8Wmd=;X7;CQiJm<@Wwo@LO|Qxv8x-zD#wf7QFNo6$cP9?rb4m;U1Kou^Lz$-Tv=;KXmDAA(Oc zv$;=YPrX`AUYnXHXHJ{ESUcjpyw=H?6OSJbA07T2N+%Ypu~crncuY>47;g#gHOMm( z>ur0QoJsxg#;2Jx)@x$5dgIgNer0EE?GMZ1)?Y@8TTH%s6xZCCi|y2%BmKV~vpx6W z7m>HU&3;L`eYO68MaZ~v0*SY7eGy+X0`fay@WC2|>hY(f&)`q-^(Zj5p?*@v;_+hb z){qe6q~A@_ooitNcm^sKvAujqsTbE6SMW#p_uuBNn`nPF@% zQulz~c)gob%MKWHr}0Z81s8(JT>r%nGgozYbvj*pzINQ(U*Tu!0r<(B9CXIy#&az9 zEwChOM^@s6&UtmTmaU>`?8x_E72@$?O@W-=SgeULo8n%>+-PBwCw6mMfrk?#Spzo%R`=@Jjc1e>wM#iO3G*o;Nl0PE z%1Z*?JWi$xj&VPz`h&|J8YQ;0RXlM9Ia}X6vB!98NN$Q75S3CSVv-vf71ve&A@Apa z0JL~@#`%?>AZG5OzBmtk_tu%%Fv1Vhq(4c|+*#VygjZ%j#>G6JSNE`z?EgLh1T*ga zS+&XGypK(BP#K}@qq+3tjRzxYKL3W@OEmkKeHA$ntaP$=6pIHCF&i=07-TZzsXg$!>^gWZ#^L0s8;}s+ZxDTq(Aiq(BB&QOJFJfo%1uJu+_#6_>JF0bSS9$0GR0pa$5X^R!ZS`sN5c23O7pOn^`tyqMLW~lX@B{`V&jtRowxp>}tG*W2|?0&4jP)MKm(K z2KA4JhfNdP<7&1xaX2UJlscLRfqXJ@?Y zq~}zdoOC;3O{~54afKmuj6U!Kn$j+K4VNJ|7UI7>y)SO`+QBPo?)G)>y(P>0ci<*Y zci!d6i&vqj(zw34?4do=XZ_^IkJk9qoxHh;)fkTr|McoKd9;jt?n4nU67TeVSn_v* zq%U_kF*akki67qd*qxHt!2vh(*=4&sb=HW@jaOo%QR9F@?_ zYuGd&dcmUddYqa~f9tZwQU9&*pCz(QTevrkC9^bK{_@r5UMsiI%*S05`NhY=`f`nK zYV^yN)O-W=xO*(_4*v|em9v5I*}>ez=Cq0RXWsjs!!Q?n6?E=CBuGCwy(YKJvy}0? z{k~Lh(cJsFOmY#g+HTI+y{wQjV?UXSAa%Vx&LMSs1M?F6VA@T<$l5M!p039dHdoE} znn|vd+OVempQtrxD+So0C2CAY1HKJgnb*WgA{^`%30XgxOmbQlG%3qr3N=FudJC49 zZ6+1k;M0?S8|F6QhAi_0#GCd6Tub_N}!^QiHm&f**FpGAcNm)UK>Kt^5sOtt;myOhWLz*=4dPmYew5#vM$4 za=9hQZWs!i{S(%>dR{)SXc3z;)=$C2YWRV)^wk~!s$Bzm4ZgmlhTX-l%mt>(%JP4| zh%nd=X^BjXdmASw9-ChFwLq_hw;@7?shE_xED95hcOSS6_1+npbveo_dciV7vMT`WlIm`(in(&_ee;%u(}(ZOnJB?u zsaOn5LVte!gT_QJar*ADHiT zajC^Iy38+qyO33V&8=4J1%rQYb`a=jR+Zir{gF)!n~~lo*?X0R zMgFRkI)%R=&q2&MnI|@_$=kJS-HUO|WP>zZ#)(55Q*su`5oBL@Lwd&@lUp~8N5(LW zojAmEnq|g6^GDp>)!kJLU$O>R*7ciL#HbmmFg`%jFX1sYSeeTLT~_yJHcft~3T@VM z(TASY!R#nva6D=22tjq;j+CkTjqBF(+Y=!;eLNuh}!$W)p)QO4fyf-&QfYLb*C+^t55RAQ@x2}-Oc=S#}YiMyN^rcjM)&W z`<{C5FuAB@I%rLU$1gVXP*3jy3iReQ$RV)tnr>p$5E1VkeAo^8xk%=78ijB0@M>0e&Eeljf{^65cRNJCJ?QX7E2o*TZMVBJTCa0AF=yR9s+C)_ z6(I7=RcbbsccG{;r`5iaXOhEh7KhenQN9O+)Y?u|;5sgq1!wufbzk8ql-DLP`1FIV z8Qtmg!@f!SWossl4{r~tTVg;yJea{jLhPZgGF{7+N|P7UiO+a=B%@Cccd()z0 zngmd(DgD@_jc<(h`p>%mHNUd$UJ3Q-h1UJ$7Qx+q77#!-PQ&dgkv3f^AiT(qjxfVt zaxK*>^Fl}nE?lu*Ty_4e0~E_%;Tm{hMO4QnAHADb0MYHVL~DKVP71MZH26xtE3?n9 z`43Lkbge&?>&nb=EZ@uhI9n29Vm!53o<5A~W>$k+Is?%ryf?!#))G{)*PA-%dR)Cl z(>3Qcng&clO!)Ia6n&xMRTGLe`5$cxeh~RJOjFX$`+GkunYTM$ z#K(DdGYjf9>nFDg7hA8}uiw1bo84k}ldrXtG9%Vb!>YYv9R$#EP}uFB)Tk zUK_0cpV@4r_B~ImKP{h5)~7>o^g5yXGd}S*WkZjjl4+&ah98}r zcJjuPmlw+oHWq6qe#Nqy%xQ9V(w@9Ixt%lAq&zU`JBBXt*pV9$JeA02zyc_b=yn8{RtU!ylPJ0>-}c+9qHCg-|h|HXvfoTlE` zy!f#FvLjWT%=>owqagWhb2EILa- zmA-;8as&0F6F<$`$xj)v|4{5Hb=#!sUN3v8T;9LsT}|A~jbFpu+VcgknY&2(SH0f2 z$l<5w_Aqr{2HGaJWJkYtuJlr^MsnKld5;NJ7QpB}qigNc!vK-4I`c{=9(>0T!T9pJ zoDP%c^B;y&yVEyF#`V%>MVXDQHlQ-Q6AvfWrqg&iHO6}5n1le*-i0^RJoj*D7)gaQ ziOJzIQkE&<{v5GG3K)>84?%YBdqL{UP%C-ri6@**rN@xuGn##BgAP}8M?-zXYbM%h*9p62R1u+PM(y3s z4tvLi?=n*xEqvWkaa~x3QZnhX$tJE?acxqRb;-5?=3rk}`MKO*yUodCq*fPOXy!C> z8Dh;qAIl^YyL&)qdHOKOt@+D;$3a&Xq4+p#vPzRy9`Km1oc&eJA5;47u7p>ui*SL* z{N!Ep=BC)1n_Q0wN-6G+RcPUu#9Cz|^?sSq-q~M9y?g2VP@njq-=Vjo9qg)e)?Nu^ zu}oDt&UZ<@T?z_;dVOLPiSdtd(!rFb1pkme!l>aCYQ(w}Lq7)DFiHYGOwsK6g{!)$ zU;yfmuGAbAX=rR>y{T2rpW2t7#Y%ijs}h%2JN;y*;OsDXu;y?D^ zHU6%V`qR{{O~}q0Ci}9LKWB5sIn(1@))%w&POk4Rl2od#C6>r|>~2>Ty|FfW{g^f8 z#wH#wKU(p@=Z!FTaQWhoE|fX2dq{lZA+}~hCAV!-w`EBgYYEnr&`Dd=xAQ3xKU-TU zuOFNEsU7~*jb?IsIc;<&9`5CzSv$P4`A*L>owE)mpXY(U%K?^ZKr;XT4EN-2#*4Ly z@pC(QzllvZ_c}K5=}&xq_)e_mv_6A>g7+TT;@2+b#?I`yxcM_DmU|rpj0GXVj&*0w zU)kPUF{74~1p2#y`9hP{Dze1}-RzvIUBp1B`4Whe20OtF3ysGo z?$xAb0bbYbY(tF(pT=8i2iukP+Qj4S!y3AGb3GY_gN-#g{jbcwe9$t!DBX*sIos=r z-HI@2CjwoUe>l@_Xg6;`M&Y7Y%z`aV-wOxb_c)z??wdDS~KRM?7nR zGxp~;_&2BCy77irRusLgyQ>?6${z5J*_XJgYh8L&&;3nIpPUAgrJq?svtCZD4IX~H zxxscMW(|e~m1TB%xFncR-ghZhrjg2!3#gM_OrZIpBSJ0$%EdtyH(i)%bE%Ntu{552r5hBIxrngzWklFD!_u<1>loRnF8 z)9CqmXp-}PjtAuLs6th>rpl#8kiG!6#{51;)BI&Db{)N{RktGXe9q$2OtqO&zv34w z>S`so@wFVf89AWQoYWQ=i3 zXrM`8Ho(mTGE5nh%O|zvP?f%G%5x|$i}ZJa!C}^?cvd-bPpEcn6fs4Ny&UmVykj*R zzB`*~@9bMNY5cRzib=46^^C;3df*am@;4lH_R@Ys{Z&Fe+kt1{ecqrIGoRy@p5z-= zaS&;gX^{gTvXy+F_f|sA>yY5fw42541u&yK?-z zm+?M9Maz_kax1&cEya=;@{?EaRk9G>P{*UV4N~Vo{ zv3W${tp2h&iIqSu;0XB|8Z^@tu9(Z~a+*5vHYsg~-@4z?d|PZH8xUY;vlElLhkC7Y z2fgPN6<1@vUzJSdlB*rB^Jt=+<7!o}s{_sX*8#yOR-!1ZTxUEQ{nHemobhS)F@JJ{ z&4H6-!%Y6xZ-+ZW9WQt^xxR5{7w3eKDFXmLad$Q$(`JH z_*r}E?4u2L;>F2mcG1h~HL-SJ&om)=vFWGD`{u|;EBN1-Tgl3^kJ&a}e)5ynn~I-% zfLI@;*Y^*`nmxvhwTXZ2Y5Z%^uNAg&!z%UKVEx$e#$xNlF^RDdRk{BWJ@0JsU0q&{ zSJ4D|9AkZv0Tk&R-a2pAiSVi{Q5A1any6ma^@1S3k+mj%r@B{F)%G?@E)(nG88tfa z{lkDI^3-%EsC6OY!=H5)!F*No2e60HagXFKG8!(UGqVN!;PL7-%F3mONBaFp!I_?_ z?QLXw>wFd)%3|*k#2ULiffCLm*y$O|-F6lZwqUSA@tCpaq2}eQjy!N>0rk4hNW3)k z*nzjM`BMcy^Z4{gs?w^uyZqz7#`+6fT>r^GZSom5(Tu@*ELwUnXt+fLb4JO(=pfSW zBX}lS1)3WyG4&@Go@umtj8WYP8D!Tmp1p**s`=xycfSp%;WFg4LZe;9l?l(OIje7e z$Srz{<#Ip7!81MM;eW%s>BVZ~m;Hrac16485bsiybz5Z+0{uYBDi?1MYu;8u+Ji!E=> zSbOVFJ~11~Qg|uu0(S@C8GiwWPdDOYNTm^6yaYJo#1i)LbLTI`*4rq%4DCvCRl;dU!^axS6{u zv;G2ct~J-XhZSA8t5%C^i|~{&SK%v{00!61BuA)=4aL{%ZqCb_BQM?Ecbi6R3b)q+ zp<}LFG=lI{P=9}IBdp_6YMKLE5mvCxk14U}nNJM&|@v+xRx^*h{< z=;N4lJf*%b3cXcA;bBn`n;DE}K>j$aP@q??8S6E9u}C}$L_(%&kE%GNaCG(j}F0JH%ll=%IWoW#kD47X0U#8`pL|agN+A|mm6Epbj_QK zY2D;Pf50FXT1@x*ePy#ABzHlI>|!ktSzTbg@v_LkQM>rXRho&LqYB6BZZG&#Ll zO?>9W@|t+^V$A2_8w0$DlHttXiT^TiA1;Z{?(z4l2c9h|NnYSfMZicqjiGS>01yC4 zL_t*Kb^ewd7R1@eriS zt+_42al()0`Q8beP2(YL_T);Tf`=bnerhw1Dbc>$iT#sDn_-hTBJ8JWRDJJ9mGwL= z4x$M)+-nT6WZ{ug03YUYHC8~DDE=8Ww z@-XS@)NLgHZr{*vqO&qfkd+%e9-3Rb*baN917@h#WSQajm{H%SW@%O+GP`WiF}r`DyBnpI&Z%sW7!nQiNxSZdrNweh9B{0 zR%0Xq`0q!Sf5>d3Rraya+SuUw{p&7a5pbvHD(~ffZ$8C0rsq-p9=#H|$5*(~G}&Hv z3cqW%tH)UuDc~$89LdA)Og_X^GS++bknM1*Ikkmea$~J_&P-LEo2b8k<#SfPm#c4s zeFyr{(&bd#ykN}4L;ngDO*BF{&m~Ra80!OwP7XH%WsXhBU~}Tri+^oXMYpVj&;1Vn z>kg+PEjA(6JkL$Vy*i7uV#Rk~Z`aDbQ4^SQ%M*R}VshDRNz%B7bkBi_E+ALEO1H&xb# zIE_J&$4DRIMuEG>@HYWqIp)ttn8cq>Hta{ylQWJ4zzFm$31(s}&PD{f5CY<0CJtpq zi+6_280`NDtsg7nZs%1Ik!uR<1C4u~n1MM;7^3`Lg$&OusgWUKehkQ@@#Q}?Fg-ox zh%fgOGpOpO!vBg}USM4k65&u6*Yp$`3A`_ z#%0g~f3ZUx=bQI9Yg{f?wFE^_!O7LW)Clo9>Z^|Kv#8Wa>YK~HTGAude^)%`vNX=a zq{ZGxZ@;)Tt9{#Q*HYo%{=+sggPh-ZiR!r0C9&(~+!7V~;__dE;Ih!^#bfrQkN2&; z(eM+Gm(nKI8{0-4@1&9N+2KrOQ(_H**S1Up8S1N?wRJDtbF|)FN)g(#t7bcK&Q<}Kw!O)d2 z%kXlN^x`I?EaUP@Qh<3zIL4eF@NHaMZfkdN>g0Ah-3P0)iTS}51+#k^VO1H{j)POc zzT(+Eo>9-s68q~X7mPT5Hw|`5bCm{&g!lU)Cn1k9Rtn%Erb4KL+r8Nx895yJSBCvd zZOhWg7@PS`cNV0Hb#J7^G8Y%&-SVi$%b9lT;h2!t-L@bUL`Y_bq3%g=7&2~q5gVtB z=`R}l%O;b)Gd=wwPHY)e-RZ9T5?U*vSG&HF?Fd1(s{mWMq7?~dRSOlDsETdnvv03} znrF50m1}WV{!fo3%xU6O0*Gyf%V#t+0fXcoJ4kL*99TY6rm&R)kZ$&ZV_UE-;tiV{ zgbFjBK9O%-|HWyKmVGUH-3MW*)oYd}F0a*al`hPxjE&PM6Jj`pJ0ya8j-7Croymd+6AklMDI-E*v;+MCn(UBcW`UgvYwU+8N^v%6)Nc0CI4b?Z( zGG~Ifp=@~ZTk;MbJ22EN9J{sOfUR>4ANe<`gSKEou!T5|W60Y}8@MGsFB`I97Xwj6 zkBj$5ucrRaW!tgT8`y2F-nBm?c+-m&p&@9YlO`T}#>2n)r)bCASC-Si=_@qL#uwL# z2|W$n!{|G`#@`A%7@*PJofG_enzF6TyC8>&?G7xLjYlW9Y|T&~hHCR4QYWQkq_>+x(a_5@E{f2jY zBb%0bZFv1Bo&1>kvEimhZ*KhHr*7iqPnCGF-_G2>{rTG;35YlkB+nSi0}p=mLTWZ< zKHz^iJ+|kzvzwD2eC)k_$-1hWsl0POP@F+mCt{-26t2A7cSiM{>h!q7e-2*T_}t6< zm&m`12KBgDhxvz!iemSzcy1Ro__|4el!ZI0~OBshp2d*{1}Fhf!!yS@A}n=ItKB2QzG>^A!M zKt27>IKOMNOiSJgQ?xl=0*gks(=d%W{pQXE- zE`GCVG0BVv_RHsfkm^F@U)g_eB=N$3@8#D*I1IfmZK zXF73nw|Q6c0575rU!OOza(^)IZmH<d z`ZAB!gn0f+Af`$Nv<5N52eslotC8PfoSb0%>~?heZ91i~xyc0IPj5Bf%l;8OqbaHfzy6|rF(OS}72?XREGqxNZo|q&GS3Z?#|^cf>jh7+ z&WRi7W-afVtssRVn;4=xe_(!Z(5tA}&FjmRzOwx;aVgD|HdwtoO3XxAxdu>K8H=^8 zv!s(ip%&*@oI=mxLebET$L+DAE74K~?rHNZpw6?M_N`*2tA?z9c1^oymnYwy)sc+{ zGTa|-4fdSR#Fyfg&cm==3#Aa7-qw4*$vNFZ0}O3u{pTF%*FfU$$s~Zfbf0RuF_T#y z;4_ieSAiG{SFXY8?G=&S& zBPi>T9mE#wG?d|E!XsEUW{o~QB;Ac($Y}T6?zr*E*9KYB-4>|tY{CGk?`-Xb< zpi(3AahTIm@4ty^AsGK`BL=Yd}X5+G*|SmN=6v%KU7vqOw&dVG+* zQGewt00m*K(h@MqYjPUYJ&d)Q{}<{201yC4 zL_t)@eTwBZbK}Kh!`=5V3H+HeKQXBf!>l$b@m1Chv;1PN1kPH5HRb%!#4qYKZ|&rE zm^>x%PVzA)iT|M;TgVG z7gvAPFpx7wPHfh50KScpc<-F_&Jk^~w>O$3CA0)gTL)U@cT80lbxL+khNKdVH;~uA z*$AHg6q_?%o}JUd7?&ZwIGuH-7n}?(!&u943p51Y;)c|6YXlucS!+&scxK8M_|Mz@ zHx*4Lw*Di^(SPm8_j)GEe|xMH~IqEBx;OA-fajRa9vcCPvxv~Z(w@NsQH~-=n%FM*5?q2^=H5D=f7T|`v{A2uX z-WO>{6ur~(RvOARS)Y}>+-+<&9BVIqru%B*-k!br zb$)lSfV~#_eoli-MdPv$)0Z)=SoY4zS*gFtH!vAIBgZuUP4_kM`?hYL4>#G(Dr?+A z!W(}Cu45wpREIEw(VzKdZonykuU+Qy$QTkDFo%UGH?_I#%s$PO>fwVS?aeI?{qP9F z=rsZhaG!=fwKKP?vRnD&&mJQ%x$KYU?xuf#smofM{hB2qIY#*Nu$yANN->_bD>nG$ zRcbJ`)xzM3C!fUI^vGBcb3*8vINp@Z|8%mQ=DXku;?>h=p~sFOWt#hGu)|pY!6r3Q z{n!Wj_moB7XTN6rjQLe~nR!vM>w8OSnQ48RfH{Z57nf(E0ZVVaW;~Xdx`}`CzbWHC zm)XV6n)oz1Z8)*ECO6)kW==o$%r9P6Q+-wQNB(k(fqY9m$oP;@o<3so@DN)s=5k0MlS= z3IBf>Zu#Da_h8`uG-91p?uXbfN?jeQx6g+TAp@Cn(qz{M)F>LjTMh9~V`_fV{C4iO ztyN-t+G2m06@N;<^RGQO;@ABXa5kRaOW#eN(3)jcP)wC8&xU*g+8G-HZ4}yAFn)6B zBRPi1T(>iUe0Bt`%?ZcMyP&yv6Oat4Y#=BmxK-s}c9J9G2tO)Dp% zA1;0p36AL#Z?XK9J6NZ%;ukJ*a_j7_S{WR?GiDm+zv9a+im@5ic-xo%+(iMz{C;AW z-n~e%fU{5WO8C{bmE_EYVr=G=%x0) z;eAWA&LZ6Ev8d&mIpvyZ<8IDB1TFI&KV1|P7P;=G83aS>-!j|L*=@YHWW8=PYgv=o z9-KAj=NE{fODSk+3cFgNZ{`HiH)~qUtl+Zo6*$LeuppQ zGc(e9XV)(gCcxhb@UOO8;dh?x*Mq-mJu+TIvn%rCoZBcs$)%5)Hcy@fqQMcbv2Y7aGNi<#>&f-CdS;> zEhA1}@+=b=N&(!o2&X_!GEKr7RhiSOs*CHY<*TZ@u_}K80>0L0xQsLf-2|8+tx4;l zUc)Zu*LGDSQa*D+dBNZurGRB75;zXML4lmRcjTe7o-Q1JS z$$Q7m&DfFf_eLvYV!XaS7>t=Oy4L$;8iwV+=6p9|2=1{9?)ZCfD(yeY6A!oi+%eu_ zg}@IRTk>O8u5`>)Q`iE{UIw1ASnf~FdTR4`z)|b-s=Zd@XAk=NH!s${AIEOq^w)5| zJ$|XrI(q>ZG`_q4vieru;4Bei)7{o$tvNeumS3~+%NnQ>mth?6buy)y887~0JJ*}y zY1r&|nO~cVXn9drB`&Uhp(gw=at?c`c|{Gik$) zl(&A?7i$w+cgA8lO^vbMc<{uh7oVoyc>E`9KTVBZjV9K_=EjUQRuAt;&gNMVh9(Sv8JxV(-)clBA-}yjLQ~~)4Sk8~wGm*3 z{9j8-d|_)WG-qNo*mnL)mfjuJw-YuVSf;HjF8R6F(|cdqy#ci6NDiWDmTxj7Y@mm) z)4NzpVrp>rFlX@ea@z1uY<$}(nuSctYvQM=(>(dn@U<*AY-rJ0s zg9&D`}*8xrOh=BI^mk{ZNrOOzw>_ny9p?a2admGa1MW;tJjdP+n+#x zShr1whRq|rcS?EH+Ie1X&)io#8*Xf| zw!^PAi!rS&X;(vQxJpou>)g;I^)bAgk#!M2vGmCEf_jY?W64-b3=|q@;*U1MNgiTT zbAZyuTXu#Ao$ML^q$>}L`zkNj87%KT%l{p711xMi%@$JnO7CXwS{K55Eis?}Ggf93 z{VG`V#HY7>W&e+67hBJK&CPwxQs=(md-&x&UXiz=pRF2?$yug})oI51pX_%uKh^sk z-h2Ms!FwjrGySU#{3>tLv!_@)`Lo9p8;{-^W4$JSn%wW2b!ty9*5to873(z-jqbIt zVeyRQeG`27CzhNyM{nMoCbrpa0t@~>GxvIK$=I#x$BfkwuM;DHBLpxuXg+Qlj?pC6 zSg7B)m3hr~-xqbGzR|w~_I}^Got#)xFkY-pJYMcLcd8AcNSj!1{^Bgww@R0k?-ah< zFH)6Ud6A5ocS~;qiJ6xrv3ey(%_NN}ov>10uWSA977_0rpt2^uAnCXD zBDmzfOo~i;Z(;@db_D}^8=n^Xp3L+eEznfUugLpf(VB;am%tcQRC#}0ugk4#waM)e zSixIKQUt*u`xZkHGp~hgK4LNQ^pz8j7hCj<;%-U+&08Rf<^Dxki`IA~w4Yl2RG3k$Exu7wCBYWW zFKxqgevt$6o;0}9vj%LSR27k>_0O(pLASfn!eowhC+WQ}y!MRBop3uMGpkxu)(a*T zyaQdNOyc}zAp)lunRuFSU)B7XSZt}UKzSvYtVBg!``YPny*ZtC@|NQl0V^TY-m$|g zHlH;t;+}XErf<7rnvk|6W*bWs>dhqqVQgJ`8^C3aH5qNAX^^79A@+1|E}+dKTd_{0 zzpw?=cbDE??YRZ9 zT#TRvOx^rFG%?&oJv6;9BFFO1DEW-86U>sNZx42;)7#_p@*0hcC9Afe1Cpt^jGCa^ znMkk6ZGGeWjzt7}PyxE?FEjw=GrzKsq)uK;PPf-WP!)Vt^QXAFn|Ymq_u_x_lDNMX zkj|Ol{-?x@mEVR#dQqA{NWd7vYZ^j=o#w(ecyMq~}q3U4#kZsHyIOy8I+xEcG$ zh=1ro_BEznZ|y7dhTLk-;AD?AgxX3+y`ZywUrCwYvd)4Qiu$)|K8o&Ad#SjIdxc@$ zYVb>9_^?TCud}uOp)@>c@f`JdHSZSHrZ#qCLd~^y_LDQMnd9x8x6Lr`>jHms{$c&j zX%@4ntAbdvxK>zDj>>g#i9b$rCnhb}-t#b}m)1z>LW3Q~<4<0!nb)g%GyBfTiM4mZ zTlCAog-+3qXYKLpw2ZEt({MI=a^6gq*MX+X?j0Lx25g_u1e&g7sLRJIdaPz&bq%HA?k!C$_pRA*k|&n4!I-hOG;6Lb zCDwd@R2P@8Pxp#+=I7_UZq5(_mwG)Vmg{aqa$`ZG4%bGnx15K#2pT0%x0!;-|E<66c>BL`0chE3PQ;GbUc|L)FBeeee8qQ~$!X*TQd|hv3-_|U;?)u2yDK1B+OOMbB482ZyNg~VkiE%n4mhFTtCo{RUrNatP6*E#QNM<%lM zfMar9T7~h;;b6TvdnB3Zs%|=7Rm~qqeYtuwh=L|g@IKuOs6BP!xjV6CeJ|IB*%)<< zI}!e;N%7`uy?U)G1F>kfeBh4(mx-VR})UVhfj z^Oa22$xP9%Z!0c8zh$AgD=P6hX?-52c?cAzr3H7RwD2>opqC23dCFZGo$r zKd6~ST5&B6fI$_tr2!!_Ig_-7ODb*x#4j^9qJDs{v`jhugkuP zAQ=OzCa85;ywI8_z3bo8n^b8c`?ikkZIMo_Sp1!-`I3|TTxiAz z=(eX!9G*SAS1q>S%j*$J{bb#%oA=ebhb@{SJ?`hBP#e`LBsLRl&8#AhtO4EFmCEXhyvY;82OThON^TAyR1 zNyS^IEy?TPjlZ>2zOobQr`LE?LytE#M*3~2(TcN(f6Ef&vx%SajEDc5-ZkBupD9}y zcg@+IOcQ8PgTEQiv?U`w@o>NN({Op8XR*I!wJ-NeKK(OoUT18cM~x(mlwg}j%JC=K zlHi}F-_`xpL~1@5dFRadFw~zpvAKV0_Pu-j%iy`k^B7!e^7=DJ z+`WjNL+Ao^Y|h81-YyE?;`d;EkbOr#>l(R+dmB^tM*f{(nxD%L9zT7b@$hec8cLq{ zEIzTi;taK=ch>65#a&M+-p7IC=&#B@*0?CZp07_&Gjb@_fb*Nt1P6a>$@>i}&3!nP z4X&v^UiQEk6oKs?%ed0)o$rmU>a%8@yyDdu~=>V0E2&G)5pb@EkJtH)n|f!Emi<)F%Iyx5-4vzH%RT4zo5Wbk>I_>7%% zQ}UX;zctWnTk^Uwdz$#hM*k(f>*5f_BXVt;#}Rth&DjX`D1}&Kj$w%XXAHP*rl}EY ziRG=qrVRKTKct@0#6Rg>alSsN>+b6ARVPskOC%I<|M!PVtfu&zG`3(z;}76Z=!`;$C<~?q(ocEVSmrx_i+^O zUb?%9X^1()@#anG_a+0KZr%@&x%ah;TGwnkeG7$O zx2G4LQC{Y4g>eFhs#>+ zPASwjA=C_ATEFcPhE=L1nCS~KiEsR^zrjbL+n(DOE3)D~Ly1qONc(gH4}G^nNL+J} z_U;uj7fk)$lO6tR<>H`gBW1M3|KI%Q0Wf2wqu{R%O41 z>g$!KZ&p)@+RvWd2e+r2+xgDtwj->1E8hv9 z!dP*2RQ{zl3qUf|;C>uWjUBWfi+(3LO}_K?m|PPK2Hxi)ezOsce@hY!KX)}TDaI>u zK?sJN2F%Zb9P0B4A3x!q_7 z(pG52uhBaEUx-ADz33~_S2FgkT<{8mnLI!Zc#mg%Ck{ZHBdYqHn)>dV4UJbf__fe5 zW``YbPMi4D3~w&m1gw)$r9tcy>uL#1t`dn({V2wpe<|y@%xFVV!I+38eVEJcUs!E{ zza)8-rtao$5PCJ)FpUTQ;C<1wNL*Jd?)mlgFZaz-jC#8ysO?@gMHL^4x-W9~p46PN zqQruK&)kXT*4q6%TeD_&!>YiY=agT>kwdfYW8=|;r$+Cy(i4{JAT2Jt+Frlz{V!O@ zrAk1zYkL(r-L)L7nV1vtPeY03(ykes0up}SH5RPmU0N$4AlJAV*10+8p(-4ax|4@W zJH3{k3NW?hG{p)+1TZ0D{y40&^VCNAdI#4@Ss9^9gIJ_N$FyVz@dwaa|59?5c_+^M zm<6Ld`VK$Tj(ttE)q*0%NV0?zglBoCZhQko4{YC|_HtWvvD{=ly@fBc3qrag#2!N% ziq(o;L%*!)yU@(vwoW|d#xRrNTP2>o}JJJ2d@OdG_sO)BPwJx=8 zTECdRqQO<&T`kL>%-S5``HRQUx7@)7ia!Yzr5@5M(%vdWG z0u6y7?pLF`sayuwa(cJ`E^BP|qia|Vw*~<{c|lhA&1`#9uO+C1STi7-F&dNGW|8y` zKe=u`|17fJhhK<4H5l&8T0i$<+0v%`XFt7M$2pDg%B@%jazZ`iWiY-E&Ljy|@&O2_Xk$Kydk}>mx z_0M>{_jGX0tfNYU)BS`!dgP-0S zZTP_x>$Q_V`wg%El}#UY_Rx<_Zv61-UYybTXiUEH=GC{?UCY6x8b2Mn!%&OAc`Gn; z&~NRdL9R!_cL3804(^$iT{6qTf29|)^neD#!bt;z6k6LE}Unxm5C8ICS|O( z0oI!z5B1*}?DgY9eXwfI*p!?mJ}tUQj1PIJzM<6DI|Wzy zONI(pT=Zf9USr}O>IR!Q;}ch{C1?QcIpHeTO4N$Uus894;v2rVtihZtJOfZ=sg{7& zRKuZzT<55!D|zM&a`8?lHvSikZRF|M%KaDzvuXF#&3?dgY&KhiNtj@xDp*F%l}1C1 z-%0x=Usjb@2Q_df5)(3ditsv9z}&W9 zhl82IBd`w+=6xhDr63CtfM<#I07hkp!RVqNZg~6@#}g|}qrrOXOpIS&3nt_9Hv6~C zChpDk(;gyzbt789*?^o*lZqVyX}hhnC3&Rs^}IN*s>OEWDd@)6hl^ZT(JOPYS3 zLBm(DbLCQJX}my|U}+7OSufJR

    zr`(4f&jj7L#0=i{*E}mmzCZ6M2Q`B@-W_i~t zE-@}ctTieYr2{LZX9JMnnAZruV3HGGS6RD?cb@&Zp1sT7#WlV3D^ZiG`yyf9m>xA& zL(&zAX-&4b5{z!e*VL<05~W`={h9H?nzkUYS9om{@;u zCpP!JxrVo;sk*(vPv#QZ4;s%#drErFEsJeM@KgCs-0<2iB`R80F}+g_!{@*D)!X9& zGZ8pWZ2XgD5vJMm_^H{wP~_t-{ls!xCj4yE_vxelWpz|D*}^>}K1$^^4$5(-`;O{B zexB&k#f4|iNDR^+G)$#fUaP-s{8`0xPIDn{~}NNep%IOa{8yqYp!SRiH$Y$`k!nx(?>tts$0=( zUg*qObH)oho5AKFy+aN!9iUZciDx3OELMoDHK!>yum4lC&!5)(Tl(3%UYovP?r@^q zvfG6A&TrmCw_ixjELzm4mi_`6HOUM6IvT~We0wtRzvKI{%*1Y0o3vP)_&fhaBQa)? zSU={1FK*rc884lTwj#dRa<~(7{Cxj7(J1h{b@GING^{-fSnm#PIDvS~=csN>MS1Pq z000iQNklaSu8O`&KQQ$eBNzI$mqm?b+`de6zTqDYtL-=>|Rm#@}b#SR)#B$I9?n9 z({S87(J`#lq_&?ry>+{0Wu0?Euwv`96Tipvk9}-srk$|AHjv*CmO(2GwRX9Z?-Q_leAO!Qi)Oss9)O}=7F3(cg(%Jk4%NY((CoZdLW zF@55Wv}F@E3;5Qt0BEtvXOcZQp!66aHLbfnAhDnE=twgb$Lw12z>KBa42NL64sUa) zroN^*zGKC8fofaVYsXczE167J)$#yItedIU)eUyU1K7mc%f$~L#_Fu?v~ePmEHU!B zuLhaafP7J7CJ4X0uTJX7IAD=+I)LOPqu)R*oQ2$H;yaP(p6D|;io0pCY?#U=9IaS# zy!dHqV@wR1Jr!T#ER8mv-as_mE3>2Dnl#i>%&kKF_LygO7TEEOzr~*EUb^l*{al@r zyQYroBp*EtwL|?0Mw01McDPd@#@y8G|J=ru93J%@iM2&stHZUTJd44b`q4eLcViRU zs`f3INQv*r#7prfvmLhnfaQ7Ebo?g?oF!v~xn+HoY^}>4qVaBcu>3zTTOEs*%erkX zLA`x-BPt{vtK*VceR{Fmt$_I%L;dsNldQcLzK<&}cfR;UhJfurYs~TKwVcCB{W$;Y zx8dTm;$Z!3$OVn{r*3Y@-0-(237=nJ0Yh6qc>KwoI0eUKZo;Yk@9 zeds1PX1bj|nWB@QSg%da24iwByj0HKySZg5MEYf(9}H4s5Z|y><+XyV^FqJ~!z1yq z^TdL~{(~tCQttw94cWvQtJ9EXqm=^of=;YfDp=8&q#9%K%MUx=%)&3-3z==Z3vO@V z()#R+28^7K-2Ct=w%Vs+{!`4&NMrlifYka;pq`Mi(LRfY`7(waze{f2Grkl54)7lP zI3e*YDb`#`PTU6QjWy3f@BfuYd7u2GZXDyVJsoRuE<3iSTeizT?!mmg?X7KqzM?3u z3xqp{npfC6-!JNZvT~ZK?RD&D7psW4vLjra;x1$0{HRa`p}o)B#}fkwCDdBFbb+~?*k*wkh$f0jnCOnd3h=*4pP1UAOqzl~KZri>^0+2}jq2E*%ec3|3>!@@7QqNV`=PT`N}yt$YY3Yb$)^>dZ{k zc6i?qRhoTY^^1{PR@7`%C%!AX))k$Q-j8P_yYv?=C}1p(SfK41-A=D%6EHE>gGM}S zjlbX=4{wR|$i%mq)KVk3Gk}m)PrBBYa2cw!MyL-NOvFfh`oT%;$<00aHkV28vnkV1 zZ3miRW6ccSwS<%Y4d4AL=;qn}M$H$=Jk(dKFOrjBnS|pLe45fPQ*rF|-L(~O61Vi7 ze({`FDt5JQCsNTOXA0HuKs|46w-lJ{WyOk|X#B-d@|bOS9hhF+L>Id<_J?M!(=L zTZCIYbBq0h`MYBIvG=b#l?|A?%A=}%op@9Ek}1BJKINhRo#A%A>y&5uNXkjwn_`Cy zsr#mq8!{OtV;9q^{yM|Ks4_b9YdZ7dSLSuV!%wZTSbyq&53i~XH z%=igApObhgueF6Gsys8W`NA6q+wP(ZCj2d<-X8Ty{OmLFcxznPxbL4x>T^F9Qd?YZ zSW)5>L+T6m=u=+u)Cyz9f(vcM>c05q>*D?s1L7yHXtQ*24M5ht`n#Qt${&n66|XmN z#rC6!7Bdn>!~YsFSP?`PJW zR`trb0i&kII_=uH4T9HH_jTX;KI0_7el4-PaUVr3ahNNv@Rhk1@f$NWthL%x#mFx% zq2o=+*-1|S(Voe+aw|K2%?01F)ppHYTpomb(Q~Tdp!Mqs5WqW%4l&EM;!-$#FkA+~ z-4{&%b+#snS3`q;-Ry2tpHcUUGK1sU%Q|OO*xU=Saxe9|)KXXe7FmDhZ8moES4EZ% zCIx){b-CvYG(3>e)y$RuQ|iDKLR7A=74wEBok@*bO?{X>nE>8<+A-991a}V7r4I?r z8uDYV-Y(Q4)cBev`FabNvU!6PNQ@Vsw)wjUxlMr>E9h#lz2`g$In%{dvTLf}ysR84 zyfTF`CxGd!5ibP^hWND0J{JjkIzO$=Lw0P<-c`YObI+b7Ue0@5iZ+W?E~6q^ z9>jWoCAO;8WgoZ%Vl=^-CfGjfS$k1&ca5@O>T%gls_#j#Z6`bLbre0RC&q4w*#kBZNmba&}%O*1tSZu7OHdR^0}p#}p#4@F1jdEP(N zTlqO{=I9wHx7G7d-1(*=`5V);vb*M?*iu{VMB0kVHLIATu61p!Y{T$_$A|nolZ~yL zMtV*DVlU?2ZQa)esSd|j9DwnLiQknF{};nWrtjMZ*y9=d5TM>~4C1U;Grex%2+-cS z%D03GCp}*B#KzjmwM6X7GOsw~JzY1-*V-czn$=cr^;mJGYrS2cGqCw^;iJ~CPH*4Y zNJSUXT5t}_ocPX%KtnIauBh^1+?ra~nP1G?{Qq5W?icJWWslx6vByy2kQ@PobV7iC zNsAlNU}J4!bK1n_PBW)H^UwIK`PVV`lAfKpxE*h{-Y#?MG!x^++VfqIOQV22J)0Pt znr6leueo*yzWJoh_|;^M_NJ52AkRkP*&wM5 zV>gh0f)i$)uiWUx+3?Qm8Ed z2q|+ujD-0x;6vcM+x8_V#@%C;T*>y$eg*!I=;s$#rv7sJ4g0C#vA^#+b)5@cwa#mr zj)&f3?yYk->Zw?6D~N;EGiY$qp7#RP-7!*#Asc6)Mt|E{4aLn2=vw`EW$4cQKCKRN zbYX~6_z_m2-y6vx&EB)a3Du z{k7XL(J07c^a3 zW_v!niK^U-GW&?N;*!JFsuKCyyx7HGHTv$wET!{W;}T+epAaxZxu35DkLlEzGM;Ys zDVEB=BqIPSS>{c^neQee#u`FfqCNNW_Fl;Q1K9(8VS%+T_0uyLp5Dj+yH=DU1qN8+ zoj+(FbKU_Zm?_%7hX(%FqB)G<`YOfdXS1lnlxe6 z`0@;7ASAVjCr0oaBkv3)O?`LU^f#(LNGSCg6n*Nx+@H3H7pgC+`u4IhN%w}!*wkB- zBwpK}wQ?ln#!o5Khq1F${6X=gcE!4NlHGo?Y=D6)M&ftJG#tO{x_YDK=+2r~*fVpP zJ_%#(6DNOLDv1T-1o)Wuj*&wkg zE!-x1d(xjrZ+iR=f5-ivX6R`!zBj9Sj-m;D1Vy&E#OACZ`%Z_G!1j!q-OR;7cgNvUD{lLTjKL7v#|NklJJRtx800v1!K~w_(DR8kNjvj0+ P00000NkvXXu0mjfq982A literal 0 HcmV?d00001 From 217bfe088bc177057939e26e0aecb9690be89322 Mon Sep 17 00:00:00 2001 From: Valerio Date: Thu, 4 Jun 2026 16:16:08 +0200 Subject: [PATCH 06/18] feat(reddit): parse old.reddit.com HTML instead of the dead .json API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reddit blocked unauthenticated `.json` access, so the previous extractor returned block pages or timed out on every thread. Switch to parsing old.reddit.com's server-rendered HTML, which needs no API key or JS. Fetch layer: - Rewrite every Reddit host to old.reddit.com before fetching; drop all `.json` URL handling and the JSON response parser. Extraction (webclaw-core::reddit): - New HTML parser producing a typed post + nested comment tree. - Comments nest structurally (.comment > .child > .sitetable > .comment); old.reddit omits a usable depth attribute, so the tree is walked recursively. Bodies live in .entry > form > .usertext-body > .md. - Post metadata: title, author, subreddit, score, comment count (data-comments-count), self-vs-link (self class / self.* domain), flair, self-text body. - Comment scores read the .score.unvoted title (the displayed value, not the ±1 vote-state siblings); hidden scores are None, not 0. - Deleted comments are kept in place so their replies aren't orphaned; "load more comments" stubs are skipped. Markdown output: - Reply nesting via blockquote depth (avoids 4-space indentation turning text and code fences into broken indented-code blocks). - Links keep their target as [text](url); root-relative reddit links resolve against old.reddit.com. Nested lists indent correctly. - A recognised but unparseable /comments/ page returns no content rather than falling through to generic extraction of Reddit chrome. Tests: regression suite runs against real old.reddit.com fixtures (testdata/reddit/), the ground truth that surfaced the parsing and markdown bugs synthetic HTML had hidden. Fixtures are excluded from the published crate. --- crates/webclaw-core/Cargo.toml | 4 + crates/webclaw-core/src/lib.rs | 19 + crates/webclaw-core/src/reddit.rs | 968 ++++++++++++++++++ .../reddit/askreddit_deep_morechildren.html | 596 +++++++++++ .../testdata/reddit/ebpf_6comments.html | 82 ++ .../testdata/reddit/elixir_60comments.html | 312 ++++++ .../testdata/reddit/pandas_34comments.html | 227 ++++ .../reddit/rust_selfpost_36comments.html | 234 +++++ crates/webclaw-fetch/src/client.rs | 65 +- crates/webclaw-fetch/src/extractors/reddit.rs | 208 +--- crates/webclaw-fetch/src/reddit.rs | 198 +--- 11 files changed, 2522 insertions(+), 391 deletions(-) create mode 100644 crates/webclaw-core/src/reddit.rs create mode 100644 crates/webclaw-core/testdata/reddit/askreddit_deep_morechildren.html create mode 100644 crates/webclaw-core/testdata/reddit/ebpf_6comments.html create mode 100644 crates/webclaw-core/testdata/reddit/elixir_60comments.html create mode 100644 crates/webclaw-core/testdata/reddit/pandas_34comments.html create mode 100644 crates/webclaw-core/testdata/reddit/rust_selfpost_36comments.html diff --git a/crates/webclaw-core/Cargo.toml b/crates/webclaw-core/Cargo.toml index 19b2e08..5c2743a 100644 --- a/crates/webclaw-core/Cargo.toml +++ b/crates/webclaw-core/Cargo.toml @@ -4,6 +4,10 @@ description = "Pure HTML content extraction engine for LLMs" version.workspace = true edition.workspace = true license.workspace = true +# Reddit regression fixtures are real old.reddit.com pages read at test time; +# they're large and only needed to run the test suite from the repo, so keep +# them out of the published crate. +exclude = ["testdata/reddit/*.html"] [features] default = ["quickjs"] diff --git a/crates/webclaw-core/src/lib.rs b/crates/webclaw-core/src/lib.rs index 1ddd1f0..8cdfbbb 100644 --- a/crates/webclaw-core/src/lib.rs +++ b/crates/webclaw-core/src/lib.rs @@ -17,6 +17,7 @@ pub mod markdown; pub mod metadata; #[allow(dead_code)] pub(crate) mod noise; +pub mod reddit; pub mod structured_data; pub mod types; pub mod youtube; @@ -94,6 +95,24 @@ fn extract_with_options_inner( return Err(ExtractError::NoContent); } + // Reddit fast path: parse old.reddit.com HTML directly. + // The fetch layer rewrites all Reddit hosts to old.reddit.com before + // calling extract, so we always get stable server-rendered HTML here. + if let Some(u) = url + && reddit::is_reddit_url(u) + { + if let Some(result) = reddit::try_extract(html, u) { + return Ok(result); + } + // A recognised comment thread that we couldn't parse (Reddit markup + // change, or a block/challenge page) — don't fall through to generic + // extraction, which would emit Reddit nav/sidebar chrome. Listings + // and profiles (no `/comments/`) intentionally fall through below. + if u.contains("/comments/") { + return Err(ExtractError::NoContent); + } + } + // YouTube fast path: if the URL is a YouTube video page, try extracting // structured metadata from ytInitialPlayerResponse before DOM scoring. // This gives LLMs a clean, structured view of video metadata. diff --git a/crates/webclaw-core/src/reddit.rs b/crates/webclaw-core/src/reddit.rs new file mode 100644 index 0000000..ab1d394 --- /dev/null +++ b/crates/webclaw-core/src/reddit.rs @@ -0,0 +1,968 @@ +//! Reddit thread extractor — parses old.reddit.com HTML directly. +//! +//! old.reddit.com serves fully server-rendered HTML with stable class names +//! and data attributes. No JS, no API key, no `.json` trick needed. + +use scraper::{ElementRef, Html, Selector}; +use serde::Serialize; + +use crate::{Content, DomainData, DomainType, ExtractionResult, Metadata}; + +// ─── Public types ────────────────────────────────────────────────────────────── + +#[derive(Serialize)] +pub struct RedditPost { + pub id: Option, + pub title: String, + pub author: String, + pub subreddit: Option, + pub score: i64, + pub body: Option, + pub num_comments: usize, + pub permalink: String, + pub url: Option, + pub is_self: bool, + pub flair: Option, + pub created_utc: Option, +} + +#[derive(Serialize)] +pub struct RedditComment { + pub id: Option, + pub author: String, + pub body: String, + /// `None` when Reddit hides the score (fresh comments). Distinct from + /// `Some(0)`, which is a real net-zero score. + pub score: Option, + pub depth: usize, + pub is_op: bool, + pub created_utc: Option, + pub replies: Vec, +} + +#[derive(Serialize)] +pub struct RedditThread { + #[serde(rename = "url")] + pub source_url: String, + pub post: Option, + pub comments: Vec, +} + +// ─── Public API ──────────────────────────────────────────────────────────────── + +pub fn is_reddit_url(url: &str) -> bool { + matches!( + host_of(url), + "reddit.com" | "www.reddit.com" | "old.reddit.com" | "np.reddit.com" | "new.reddit.com" + ) +} + +/// Try to parse a Reddit thread from old.reddit.com HTML. +/// Returns `None` if the page doesn't have recognisable Reddit structure. +pub fn try_extract_thread(html: &str, url: &str) -> Option { + if !url.contains("/comments/") { + return None; + } + let doc = Html::parse_document(html); + let post = parse_post(&doc); + let op = post.as_ref().map(|p| p.author.as_str()).unwrap_or(""); + let comments = parse_comments(&doc, op); + + if post.is_none() && comments.is_empty() { + return None; + } + + Some(RedditThread { + source_url: url.to_string(), + post, + comments, + }) +} + +/// Entry point for `webclaw-core`'s extraction fast path. +pub fn try_extract(html: &str, url: &str) -> Option { + let thread = try_extract_thread(html, url)?; + Some(to_extraction_result(&thread)) +} + +// ─── ExtractionResult builder ────────────────────────────────────────────────── + +fn to_extraction_result(thread: &RedditThread) -> ExtractionResult { + let md = to_markdown(thread); + let plain = plain_text(&md); + let wc = md.split_whitespace().count(); + + let (title, author, site_name) = thread + .post + .as_ref() + .map(|p| { + ( + Some(p.title.clone()), + Some(p.author.clone()), + p.subreddit.clone(), + ) + }) + .unwrap_or_default(); + + ExtractionResult { + metadata: Metadata { + title, + description: None, + author, + published_date: None, + language: Some("en".to_string()), + url: Some(thread.source_url.clone()), + site_name, + image: None, + favicon: None, + word_count: wc, + }, + content: Content { + markdown: md, + plain_text: plain, + links: vec![], + images: vec![], + code_blocks: vec![], + raw_html: None, + }, + domain_data: Some(DomainData { + domain_type: DomainType::Social, + }), + structured_data: vec![], + } +} + +// ─── Markdown rendering ──────────────────────────────────────────────────────── + +pub fn to_markdown(thread: &RedditThread) -> String { + let mut out = String::new(); + + if let Some(p) = &thread.post { + out.push_str(&format!("# {}\n\n", p.title)); + + let pts = pt_label(Some(p.score)); + let cmt = match p.num_comments { + 0 => String::new(), + 1 => " · 1 comment".to_string(), + n => format!(" · {n} comments"), + }; + let sub = p.subreddit.as_deref().unwrap_or("?"); + out.push_str(&format!("**u/{}** · r/{sub} · {pts}{cmt}\n\n", p.author)); + + if let Some(ref body) = p.body + && !body.is_empty() + { + out.push_str(body); + out.push_str("\n\n"); + } + if let Some(ref link) = p.url + && !p.is_self + { + out.push_str(&format!("[Link]({link})\n\n")); + } + out.push_str("---\n\n"); + } + + if !thread.comments.is_empty() { + out.push_str("## Comments\n\n"); + for c in &thread.comments { + render_comment(c, &mut out); + } + } + + collapse_blank_lines(out.trim_end()) +} + +/// Render one comment + its replies. Nesting is expressed with blockquote +/// depth (`> ` per level) rather than leading spaces: space-indentation of +/// 4+ would turn ordinary text and ``` fences into CommonMark indented code +/// blocks, corrupting any comment at depth ≥ 2. +fn render_comment(c: &RedditComment, out: &mut String) { + let q = "> ".repeat(c.depth); + let blank = ">".repeat(c.depth); + let author = if c.is_op { + format!("**u/{} [OP]**", c.author) + } else { + format!("**u/{}**", c.author) + }; + out.push_str(&format!("{q}{author} · {}\n", pt_label(c.score))); + for line in c.body.lines() { + if line.is_empty() { + out.push_str(&blank); + out.push('\n'); + } else { + out.push_str(&q); + out.push_str(line); + out.push('\n'); + } + } + out.push('\n'); + for reply in &c.replies { + render_comment(reply, out); + } +} + +fn pt_label(n: Option) -> String { + match n { + None => "score hidden".to_string(), + Some(1) => "1 pt".to_string(), + Some(-1) => "-1 pt".to_string(), + Some(n) => format!("{n} pts"), + } +} + +/// Collapse runs of 3+ newlines down to a blank-line separator so the +/// blockquote prefixes and `

    ` spacing don't leave large gaps.
    +fn collapse_blank_lines(s: &str) -> String {
    +    let mut out = String::with_capacity(s.len());
    +    let mut newlines = 0;
    +    for ch in s.chars() {
    +        if ch == '\n' {
    +            newlines += 1;
    +            if newlines <= 2 {
    +                out.push(ch);
    +            }
    +        } else {
    +            newlines = 0;
    +            out.push(ch);
    +        }
    +    }
    +    out
    +}
    +
    +fn plain_text(md: &str) -> String {
    +    md.lines()
    +        .map(|l| {
    +            // Strip a single leading blockquote / heading marker, then drop
    +            // emphasis markers. Greedy char-class stripping (the old approach)
    +            // ate legitimate content like ">"-prefixed quotes.
    +            let l = l.trim_start();
    +            let l = l
    +                .strip_prefix("> ")
    +                .or_else(|| l.strip_prefix('>'))
    +                .unwrap_or(l);
    +            let l = l.trim_start_matches('#').trim_start();
    +            l.replace("**", "")
    +                .replace("~~", "")
    +                .replace(['*', '`'], "")
    +        })
    +        .collect::>()
    +        .join("\n")
    +}
    +
    +// ─── HTML parsing ──────────────────────────────────────────────────────────────
    +
    +fn parse_post(doc: &Html) -> Option {
    +    let sel = Selector::parse("#siteTable .thing.link").ok()?;
    +    let thing = doc.select(&sel).next()?;
    +    let v = thing.value();
    +
    +    let id = v
    +        .attr("data-fullname")
    +        .map(|s| s.trim_start_matches("t3_").to_string());
    +    let author = v.attr("data-author").unwrap_or("[deleted]").to_string();
    +    let subreddit = v.attr("data-subreddit").map(str::to_string);
    +    let score: i64 = v
    +        .attr("data-score")
    +        .and_then(|s| s.parse().ok())
    +        .unwrap_or(0);
    +    let num_comments: usize = v
    +        .attr("data-comments-count")
    +        .and_then(|s| s.parse().ok())
    +        .unwrap_or(0);
    +    let permalink_path = v.attr("data-permalink").unwrap_or("");
    +    let permalink = format!("https://old.reddit.com{permalink_path}");
    +    // Self-posts carry the `self` class and a `self.` domain; their
    +    // data-url points back at the permalink rather than an external site.
    +    let is_self = v.has_class("self", scraper::CaseSensitivity::AsciiCaseInsensitive)
    +        || v.attr("data-domain")
    +            .is_some_and(|d| d.starts_with("self."));
    +    let link_url = v.attr("data-url").map(str::to_string);
    +    let url = if is_self { None } else { link_url };
    +
    +    // Title
    +    let sel_title = Selector::parse(".title a.title").ok()?;
    +    let title = thing
    +        .select(&sel_title)
    +        .next()
    +        .map(|el| el.text().collect::().trim().to_string())
    +        .filter(|s| !s.is_empty())?;
    +
    +    // Flair
    +    let flair = Selector::parse(".linkflairlabel")
    +        .ok()
    +        .and_then(|s| thing.select(&s).next())
    +        .map(|el| el.text().collect::().trim().to_string())
    +        .filter(|s| !s.is_empty());
    +
    +    // Self-text body: thing > .entry > .expando > .usertext-body [> .md]
    +    let body = direct_child(thing, "entry")
    +        .and_then(|entry| find_class(entry, "expando"))
    +        .and_then(|expando| find_class(expando, "usertext-body"))
    +        .and_then(|ut| find_class(ut, "md"))
    +        .map(md_to_markdown)
    +        .filter(|s| !s.is_empty());
    +
    +    // Datetime
    +    let created_utc = Selector::parse("time[datetime]")
    +        .ok()
    +        .and_then(|s| thing.select(&s).next())
    +        .and_then(|t| t.value().attr("datetime"))
    +        .map(str::to_string);
    +
    +    Some(RedditPost {
    +        id,
    +        title,
    +        author,
    +        subreddit,
    +        score,
    +        body,
    +        num_comments,
    +        permalink,
    +        url,
    +        is_self,
    +        flair,
    +        created_utc,
    +    })
    +}
    +
    +// ─── Comment parsing ───────────────────────────────────────────────────────────
    +//
    +// old.reddit.com nests comments structurally, not via a depth attribute:
    +//
    +//   .commentarea
    +//     .sitetable.nestedlisting
    +//       .comment.thing                          ← root comment
    +//         .entry → form → .usertext-body → .md  ← its own body
    +//         .child
    +//           .sitetable.listing
    +//             .comment.thing                    ← reply (recurse)
    +//
    +// `data-depth`/`data-replies` are absent or always "0" in the logged-out
    +// HTML, so we walk the tree by recursing into each comment's `.child`.
    +
    +fn parse_comments(doc: &Html, op: &str) -> Vec {
    +    // Root listing is `.sitetable.nestedlisting` inside `.commentarea`
    +    // (note: `commentarea` is a class on old.reddit, not an id). Fall back
    +    // to the first `.nestedlisting` anywhere for comment-permalink pages.
    +    let listing = Selector::parse(".commentarea .sitetable.nestedlisting")
    +        .ok()
    +        .and_then(|s| doc.select(&s).next())
    +        .or_else(|| {
    +            Selector::parse(".sitetable.nestedlisting")
    +                .ok()
    +                .and_then(|s| doc.select(&s).next())
    +        });
    +
    +    match listing {
    +        Some(l) => walk_comment_level(l, op, 0),
    +        None => vec![],
    +    }
    +}
    +
    +/// Parse the direct-child `.comment.thing` elements of a comment listing.
    +fn walk_comment_level(listing: ElementRef, op: &str, depth: usize) -> Vec {
    +    listing
    +        .children()
    +        .filter_map(ElementRef::wrap)
    +        .filter(|c| {
    +            let val = c.value();
    +            val.has_class("comment", scraper::CaseSensitivity::AsciiCaseInsensitive)
    +                && val.has_class("thing", scraper::CaseSensitivity::AsciiCaseInsensitive)
    +        })
    +        .filter_map(|c| parse_one_comment(c, op, depth))
    +        .collect()
    +}
    +
    +fn parse_one_comment(c: ElementRef, op: &str, depth: usize) -> Option {
    +    let v = c.value();
    +
    +    // "load more comments" placeholders are `.thing` with type=morechildren.
    +    // They carry a t1_ fullname but no real content — skip them.
    +    if v.attr("data-type") == Some("morechildren")
    +        || v.has_class(
    +            "morechildren",
    +            scraper::CaseSensitivity::AsciiCaseInsensitive,
    +        )
    +    {
    +        return None;
    +    }
    +
    +    let is_deleted = v.has_class("deleted", scraper::CaseSensitivity::AsciiCaseInsensitive);
    +    let id = v
    +        .attr("data-fullname")
    +        .map(|s| s.trim_start_matches("t1_").to_string());
    +    let author = v
    +        .attr("data-author")
    +        .filter(|a| !a.is_empty())
    +        .unwrap_or("[deleted]")
    +        .to_string();
    +
    +    // Own body lives in `.entry > form > .usertext-body > .md`. `.child`
    +    // (nested replies) is a sibling of `.entry`, so descending within
    +    // `.entry` never crosses into a reply's body.
    +    let entry = direct_child(c, "entry");
    +    let body = entry
    +        .and_then(|e| find_class(e, "usertext-body"))
    +        .and_then(|ut| find_class(ut, "md"))
    +        .map(md_to_markdown)
    +        .filter(|s| !s.is_empty())
    +        .unwrap_or_else(|| {
    +            if is_deleted {
    +                "[removed]".into()
    +            } else {
    +                String::new()
    +            }
    +        });
    +
    +    // Displayed score is `.score.unvoted`, whose `title` holds the exact
    +    // integer (the sibling likes/dislikes spans are ±1). Hidden-score
    +    // comments have no `.score.unvoted` span, so `comment_score` returns
    +    // None — kept distinct from a genuine 0.
    +    let score = entry.and_then(comment_score);
    +
    +    let created_utc = entry
    +        .and_then(|e| Selector::parse("time[datetime]").ok().map(|s| (e, s)))
    +        .and_then(|(e, s)| e.select(&s).next())
    +        .and_then(|t| t.value().attr("datetime"))
    +        .map(str::to_string);
    +
    +    let is_op = !is_deleted && author != "[deleted]" && author == op;
    +
    +    // Replies: `.comment > .child > .sitetable > .comment`.
    +    let replies = direct_child(c, "child")
    +        .and_then(|child| direct_child(child, "sitetable"))
    +        .map(|st| walk_comment_level(st, op, depth + 1))
    +        .unwrap_or_default();
    +
    +    Some(RedditComment {
    +        id,
    +        author,
    +        body,
    +        score,
    +        depth,
    +        is_op,
    +        created_utc,
    +        replies,
    +    })
    +}
    +
    +/// Read a comment's score from the `.score.unvoted` span inside `.entry`.
    +/// Prefers the `title` attribute (exact integer); falls back to the text.
    +/// Returns `None` when Reddit hides the score (no `.score.unvoted` span).
    +fn comment_score(entry: ElementRef) -> Option {
    +    let sel = Selector::parse("span.score.unvoted").ok()?;
    +    let span = entry.select(&sel).next()?;
    +    span.value()
    +        .attr("title")
    +        .and_then(|t| t.trim().parse().ok())
    +        .or_else(|| parse_score(&span.text().collect::()))
    +}
    +
    +// ─── DOM helpers ───────────────────────────────────────────────────────────────
    +
    +/// First direct child element whose class list includes `class`.
    +fn direct_child<'a>(el: ElementRef<'a>, class: &str) -> Option> {
    +    el.children().filter_map(ElementRef::wrap).find(|c| {
    +        c.value()
    +            .has_class(class, scraper::CaseSensitivity::AsciiCaseInsensitive)
    +    })
    +}
    +
    +/// First descendant (any depth) whose class list includes `class`.
    +fn find_class<'a>(el: ElementRef<'a>, class: &str) -> Option> {
    +    el.children().filter_map(ElementRef::wrap).find_map(|c| {
    +        if c.value()
    +            .has_class(class, scraper::CaseSensitivity::AsciiCaseInsensitive)
    +        {
    +            Some(c)
    +        } else {
    +            find_class(c, class)
    +        }
    +    })
    +}
    +
    +fn parse_score(text: &str) -> Option {
    +    text.split_whitespace()
    +        .next()
    +        .map(|w| w.replace('−', "-"))
    +        .and_then(|w| w.parse().ok())
    +}
    +
    +// ─── .md div → markdown ────────────────────────────────────────────────────────
    +
    +fn md_to_markdown(el: ElementRef) -> String {
    +    let mut out = String::new();
    +    render_children(el, &mut out);
    +    out.trim().to_string()
    +}
    +
    +fn render_children(el: ElementRef, out: &mut String) {
    +    use scraper::node::Node;
    +    for child in el.children() {
    +        match child.value() {
    +            Node::Text(t) => out.push_str(t.as_ref()),
    +            Node::Element(_) => {
    +                if let Some(c) = ElementRef::wrap(child) {
    +                    render_node(c, out);
    +                }
    +            }
    +            _ => {}
    +        }
    +    }
    +}
    +
    +fn render_node(el: ElementRef, out: &mut String) {
    +    match el.value().name() {
    +        "p" | "div" => {
    +            let mut inner = String::new();
    +            render_children(el, &mut inner);
    +            let t = inner.trim();
    +            if !t.is_empty() {
    +                out.push_str(t);
    +                out.push_str("\n\n");
    +            }
    +        }
    +        "br" => out.push('\n'),
    +        "strong" | "b" => {
    +            let t: String = el.text().collect();
    +            let t = t.trim();
    +            if !t.is_empty() {
    +                out.push_str(&format!("**{t}**"));
    +            }
    +        }
    +        "em" | "i" => {
    +            let t: String = el.text().collect();
    +            let t = t.trim();
    +            if !t.is_empty() {
    +                out.push_str(&format!("*{t}*"));
    +            }
    +        }
    +        "del" | "s" | "strike" => {
    +            let t: String = el.text().collect();
    +            let t = t.trim();
    +            if !t.is_empty() {
    +                out.push_str(&format!("~~{t}~~"));
    +            }
    +        }
    +        "code" => {
    +            let t: String = el.text().collect();
    +            out.push('`');
    +            out.push_str(t.trim());
    +            out.push('`');
    +        }
    +        "pre" => {
    +            let t: String = el.text().collect();
    +            out.push_str("```\n");
    +            out.push_str(t.trim_end_matches('\n'));
    +            out.push_str("\n```\n\n");
    +        }
    +        "a" => {
    +            let text: String = el.text().collect();
    +            let text = text.trim();
    +            if !text.is_empty() {
    +                // Preserve the destination as a markdown link. Resolve
    +                // root-relative reddit hrefs (/r/, /user/, /wiki/, ...) and
    +                // drop non-navigational ones (javascript:, #fragment, mailto:).
    +                let href = el.value().attr("href").unwrap_or("");
    +                if href.starts_with("http://") || href.starts_with("https://") {
    +                    out.push_str(&format!("[{text}]({href})"));
    +                } else if href.starts_with('/') {
    +                    out.push_str(&format!("[{text}](https://old.reddit.com{href})"));
    +                } else {
    +                    out.push_str(text);
    +                }
    +            }
    +        }
    +        "blockquote" => {
    +            let mut inner = String::new();
    +            render_children(el, &mut inner);
    +            let trimmed = inner.trim();
    +            for line in trimmed.lines() {
    +                out.push('>');
    +                if !line.is_empty() {
    +                    out.push(' ');
    +                    out.push_str(line);
    +                }
    +                out.push('\n');
    +            }
    +            out.push('\n');
    +        }
    +        "ul" => render_list(el, false, 0, out),
    +        "ol" => render_list(el, true, 0, out),
    +        "h1" | "h2" | "h3" | "h4" | "h5" | "h6" => {
    +            let level = el
    +                .value()
    +                .name()
    +                .chars()
    +                .nth(1)
    +                .and_then(|c| c.to_digit(10))
    +                .unwrap_or(2) as usize;
    +            let t: String = el.text().collect();
    +            let t = t.trim();
    +            if !t.is_empty() {
    +                out.push_str(&"#".repeat(level));
    +                out.push(' ');
    +                out.push_str(t);
    +                out.push_str("\n\n");
    +            }
    +        }
    +        "hr" => out.push_str("---\n\n"),
    +        "sup" => {
    +            let t: String = el.text().collect();
    +            out.push_str(t.trim());
    +        }
    +        // Unknown / generic containers: recurse
    +        _ => render_children(el, out),
    +    }
    +}
    +
    +/// Render a `
      `/`
        `, indenting nested lists by two spaces per level so +/// child items keep their own line instead of being glued to the parent. +fn render_list(list: ElementRef, ordered: bool, indent: usize, out: &mut String) { + use scraper::node::Node; + let pad = " ".repeat(indent); + let mut n = 0; + for li in list + .children() + .filter_map(ElementRef::wrap) + .filter(|c| c.value().name() == "li") + { + n += 1; + // Inline content of this
      1. , excluding nested lists (rendered after). + let mut inline = String::new(); + for child in li.children() { + match child.value() { + Node::Text(t) => inline.push_str(t.as_ref()), + Node::Element(e) if e.name() == "ul" || e.name() == "ol" => {} + Node::Element(_) => { + if let Some(c) = ElementRef::wrap(child) { + render_node(c, &mut inline); + } + } + _ => {} + } + } + let marker = if ordered { + format!("{n}. ") + } else { + "- ".to_string() + }; + out.push_str(&format!("{pad}{marker}{}\n", inline.trim())); + + for child in li.children().filter_map(ElementRef::wrap) { + match child.value().name() { + "ul" => render_list(child, false, indent + 1, out), + "ol" => render_list(child, true, indent + 1, out), + _ => {} + } + } + } + if indent == 0 { + out.push('\n'); + } +} + +// ─── URL helpers ─────────────────────────────────────────────────────────────── + +fn host_of(url: &str) -> &str { + url.split("://") + .nth(1) + .unwrap_or(url) + .split(['/', '?', '#']) + .next() + .unwrap_or("") +} + +// ─── Tests ───────────────────────────────────────────────────────────────────── + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn is_reddit_url_recognises_variants() { + assert!(is_reddit_url( + "https://www.reddit.com/r/rust/comments/abc/x/" + )); + assert!(is_reddit_url( + "https://old.reddit.com/r/rust/comments/abc/x/" + )); + assert!(is_reddit_url("https://reddit.com/r/rust/comments/abc/x/")); + assert!(!is_reddit_url("https://example.com")); + } + + #[test] + fn try_extract_thread_returns_none_for_listing_url() { + let html = ""; + assert!(try_extract_thread(html, "https://old.reddit.com/r/rust/").is_none()); + } + + #[test] + fn md_to_markdown_basic() { + let html = + Html::parse_fragment(r#"

        Hello world!

        "#); + let sel = Selector::parse(".md").unwrap(); + let el = html.select(&sel).next().unwrap(); + let md = md_to_markdown(el); + assert!(md.contains("**world**")); + assert!(md.contains("Hello")); + } + + #[test] + fn md_to_markdown_blockquote_and_code() { + let html = Html::parse_fragment( + r#"

        Quoted

        fn main() {}
        "#, + ); + let sel = Selector::parse(".md").unwrap(); + let el = html.select(&sel).next().unwrap(); + let md = md_to_markdown(el); + assert!(md.contains("> Quoted")); + assert!(md.contains("```")); + assert!(md.contains("fn main()")); + } + + #[test] + fn md_to_markdown_link_preserves_href() { + let abs = Html::parse_fragment( + r#"
        "#, + ); + let sel = Selector::parse(".md").unwrap(); + let el = abs.select(&sel).next().unwrap(); + assert!(md_to_markdown(el).contains("[this](https://example.com/x)")); + + // Root-relative reddit links resolve against old.reddit.com. + let rel = Html::parse_fragment( + r#""#, + ); + let el = rel.select(&sel).next().unwrap(); + assert!(md_to_markdown(el).contains("[faq](https://old.reddit.com/r/rust/wiki/faq)")); + + // javascript: / fragment hrefs degrade to bare text. + let js = Html::parse_fragment( + r#""#, + ); + let el = js.select(&sel).next().unwrap(); + let out = md_to_markdown(el); + assert!(out.contains('x') && !out.contains("javascript")); + } + + // ── Regression tests against REAL old.reddit.com HTML ────────────────── + // + // These fixtures are genuine pages fetched from old.reddit.com (see + // testdata/reddit/). They are the ground truth — synthetic HTML is too + // easy to write to match wrong assumptions, which is exactly how the + // first version of this parser shipped silently broken. + + fn fixture(name: &str) -> String { + std::fs::read_to_string(format!("testdata/reddit/{name}")).unwrap() + } + + fn total_comments(cs: &[RedditComment]) -> usize { + cs.len() + cs.iter().map(|c| total_comments(&c.replies)).sum::() + } + + fn collect<'a>(cs: &'a [RedditComment], out: &mut Vec<&'a RedditComment>) { + for c in cs { + out.push(c); + collect(&c.replies, out); + } + } + + #[test] + fn real_link_post_metadata() { + // pandas: external-link post (blog.geekuni.com), 34 comments. + let html = fixture("pandas_34comments.html"); + let t = try_extract_thread( + &html, + "https://old.reddit.com/r/programming/comments/abc123/t/", + ) + .expect("should parse"); + let p = t.post.expect("post"); + assert_eq!(p.author, "Horror-Willingness74"); + assert_eq!(p.subreddit.as_deref(), Some("programming")); + assert_eq!(p.score, 43); + assert_eq!(p.num_comments, 34, "data-comments-count"); + assert!(!p.is_self, "external blog link, not a self post"); + assert_eq!( + p.url.as_deref(), + Some("https://blog.geekuni.com/2026/06/why-learn-pandas.html") + ); + assert!(p.title.contains("Pandas")); + } + + #[test] + fn real_self_post_metadata() { + // A self-post (text) on r/rust: `self.rust` domain, self-text body, + // no external url. + let html = fixture("rust_selfpost_36comments.html"); + let t = try_extract_thread(&html, "https://old.reddit.com/r/rust/comments/abc123/t/") + .expect("should parse"); + let p = t.post.expect("post"); + assert!(p.is_self, "self.rust domain → self post"); + assert_eq!(p.url, None, "self posts carry no external url"); + assert_eq!(p.subreddit.as_deref(), Some("rust")); + assert!( + p.body + .as_deref() + .unwrap_or("") + .contains("IT project manager"), + "self-text body should be extracted: {:?}", + p.body + ); + } + + #[test] + fn real_comment_bodies_and_scores() { + // The original bug: every comment body came back empty because + // .usertext-body sits inside a
        , not directly under .entry. + let html = fixture("ebpf_6comments.html"); + let t = try_extract_thread( + &html, + "https://old.reddit.com/r/programming/comments/abc123/t/", + ) + .expect("should parse"); + // 6 comments total: 5 top-level + 1 nested reply (admalledd under ejrh). + assert_eq!(t.comments.len(), 5, "5 top-level comments"); + assert_eq!(total_comments(&t.comments), 6, "6 comments incl. nested"); + let teerre = t + .comments + .iter() + .find(|c| c.author == "teerre") + .expect("teerre"); + assert!( + teerre.body.contains("Very cool blog"), + "body must be populated, got {:?}", + teerre.body + ); + // Score comes from .score.unvoted title (the real value), not the + // ±1 likes/dislikes siblings. + assert_eq!( + teerre.score, + Some(10), + "unvoted score, not dislikes(9)/likes(11)" + ); + assert!( + t.comments.iter().all(|c| !c.body.is_empty()), + "no comment body should be empty" + ); + } + + #[test] + fn real_nested_comment_tree() { + // pandas has structurally-nested replies (.child > .sitetable > + // .comment). data-depth/data-replies are absent in logged-out HTML. + let html = fixture("pandas_34comments.html"); + let t = try_extract_thread( + &html, + "https://old.reddit.com/r/programming/comments/abc123/t/", + ) + .expect("should parse"); + // 34 rendered comments with content + 1 [deleted] node that old.reddit + // still shows because it has live replies = 35 nodes in the tree. + assert_eq!( + total_comments(&t.comments), + 35, + "all comments incl. nested + deleted" + ); + let nested = t.comments.iter().any(|c| !c.replies.is_empty()); + assert!(nested, "at least one comment must have replies"); + let max_depth = { + fn d(cs: &[RedditComment]) -> usize { + cs.iter().map(|c| 1 + d(&c.replies)).max().unwrap_or(0) + } + d(&t.comments) + }; + assert!(max_depth >= 2, "tree should be more than one level deep"); + let a_reply = t.comments.iter().find_map(|c| c.replies.first()); + assert_eq!(a_reply.map(|r| r.depth), Some(1)); + } + + #[test] + fn real_morechildren_stubs_skipped() { + // AskReddit deep thread: 259 .thing[data-fullname=t1_] markers, but + // some are "load more comments" stubs (data-type=morechildren) with + // no author/body. They must not appear as ghost comments. + let html = fixture("askreddit_deep_morechildren.html"); + let t = try_extract_thread( + &html, + "https://old.reddit.com/r/AskReddit/comments/abc123/t/", + ) + .expect("should parse"); + fn check(cs: &[RedditComment]) { + for c in cs { + let ghost = c.body.is_empty() && c.author == "[deleted]" && c.id.is_some(); + assert!(!ghost, "morechildren stub leaked as comment: {:?}", c.id); + check(&c.replies); + } + } + check(&t.comments); + } + + #[test] + fn real_hidden_score_is_none_not_zero() { + // AskReddit has fresh comments with `.score-hidden` (no .score.unvoted + // span). These must be None, distinct from a genuine 0-score comment. + let html = fixture("askreddit_deep_morechildren.html"); + let t = try_extract_thread( + &html, + "https://old.reddit.com/r/AskReddit/comments/abc123/t/", + ) + .expect("should parse"); + let mut all = Vec::new(); + collect(&t.comments, &mut all); + assert!( + all.iter().any(|c| c.score.is_none()), + "some fresh comments have hidden scores → None" + ); + } + + #[test] + fn real_deleted_comment_preserves_subtree() { + // pandas has a [deleted] comment that still has visible replies. The + // structural walk must keep it so its children aren't orphaned. + let html = fixture("pandas_34comments.html"); + let t = try_extract_thread( + &html, + "https://old.reddit.com/r/programming/comments/abc123/t/", + ) + .expect("should parse"); + let mut all = Vec::new(); + collect(&t.comments, &mut all); + let deleted: Vec<_> = all.iter().filter(|c| c.author == "[deleted]").collect(); + assert!(!deleted.is_empty(), "should keep deleted comments"); + assert!( + deleted.iter().any(|c| !c.replies.is_empty()), + "a deleted comment with replies must retain its subtree" + ); + assert!(deleted.iter().all(|c| !c.is_op)); + } + + #[test] + fn real_markdown_is_commonmark_clean() { + // Guards the markdown bugs the verification workflow found: no + // whitespace-only "blank" lines, and ``` fences never indented 4+ + // spaces (which would turn them into literal indented code blocks). + let html = fixture("elixir_60comments.html"); + let result = try_extract( + &html, + "https://old.reddit.com/r/programming/comments/abc123/t/", + ) + .expect("should extract"); + let md = &result.content.markdown; + assert!(md.starts_with("# ")); + assert!(md.contains("## Comments")); + for line in md.lines() { + assert!( + !(line.starts_with(' ') && line.trim().is_empty()), + "whitespace-only line: {line:?}" + ); + let trimmed = line.trim_start_matches(['>', ' ']); + if trimmed.starts_with("```") { + let indent = line.len() - line.trim_start_matches(' ').len(); + assert!(indent < 4, "code fence indented {indent} spaces: {line:?}"); + } + } + assert!(result.metadata.word_count > 20); + } +} diff --git a/crates/webclaw-core/testdata/reddit/askreddit_deep_morechildren.html b/crates/webclaw-core/testdata/reddit/askreddit_deep_morechildren.html new file mode 100644 index 0000000..decf833 --- /dev/null +++ b/crates/webclaw-core/testdata/reddit/askreddit_deep_morechildren.html @@ -0,0 +1,596 @@ +What is going to happen when the lower class will not be able to afford anything anymore? : AskReddit

        use the following search parameters to narrow your results:

        subreddit:subreddit
        find submissions in "subreddit"
        author:username
        find submissions by "username"
        site:example.com
        find submissions from "example.com"
        url:text
        search for "text" in url
        selftext:text
        search for "text" in self post contents
        self:yes (or self:no)
        include (or exclude) self posts
        nsfw:yes (or nsfw:no)
        include (or exclude) results marked as NSFW

        e.g. subreddit:aww site:imgur.com dog

        see the search faq for details.

        advanced search: by author, subreddit...

        this post was submitted on
        553 points (88% upvoted)

        AskReddit

        [ SERIOUS ]
        + +
        Rules:
        + +
          +
        1. You must post a clear and direct question in the title. The title may contain two, short, necessary context sentences. +No text is allowed in the textbox. Your thoughts/responses to the question can go in the comments section. more >>

        2. +
        3. Any post asking for advice should be generic and not specific to your situation alone. more >>

        4. +
        5. AskReddit is for open-ended discussion questions. more >>

        6. +
        7. Posting, or seeking, any identifying personal information, real or fake, will result in a ban without a prior warning. more >>

        8. +
        9. AskReddit is not your soapbox, personal army, or advertising platform. more >>

        10. +
        11. [Serious] tagged posts are off-limits to jokes or irrelevant replies. more >>

        12. +
        13. Soliciting money, goods, services, or favours is not allowed. more >>

        14. +
        15. Mods reserve the right to remove content or restrict users' posting privileges as necessary if it is deemed detrimental to the subreddit or to the experience of others. more >>

        16. +
        17. Comment replies consisting solely of images will be removed. more >>

        18. +
        19. Do not post harmful misinformation. more >>

        20. +
        21. Spam, machine-generated content, and karma farming are not permitted. more >>

        22. +
        23. All content must be written in English so that it is widely understood by the user base of the sub. more >>

        24. +
        + +
        If you think your post has disappeared, see spam or an inappropriate post, please do not hesitate to contact the mods, we're happy to help.
        + +
        + +

        Tags to use:

        + +
        +

        [Serious]

        +
        + +

        Use a [Serious] post tag to designate your post as a serious, on-topic-only thread.

        + +

        + +

        Filter posts by subject:

        + +

        Mod posts +Serious posts +Megathread +Breaking news +Unfilter

        + +

        + +

        Please use spoiler tags to hide spoilers. >!insert spoiler here!<

        + +

        + +

        Other subreddits you might like:

        + + + + + + + + + + + + + + + + + + + + + + + +
        RelatedSubreddits
        Advice and AssistanceAsk Others
        AskReddit OffshootsGeneral Discussion
        Requests & AssistanceHelp Me Identify This
        Reddit/MetaFind Subreddits
        + +

        + +

        Ever read the reddiquette? Take a peek!

        + +

        +
        +
        a community for
        ×
        top 200 commentsshow 500

        [–]ACE_Wrap 886 points887 points  (147 children)

        As long as a few basic needs - like food and water - are secured, nothing much. Once that stops though, all options are on the table.

        +
        +

        [–]stop_deleting_plz 467 points468 points  (76 children)

        Well the billionaires need a trillion gallons of water to cool their shiny new surveillance centers, so it might be more likely than you think!

        +
        +

        [–]idiocy_incarnate [score hidden]  (26 children)

        with a little bit of foresight they would build the data centers on the coast, use seawater for cooling, and the heat generated by the data center to both desalinate the seawater and recover salt and minerals from it.

        + +

        Fat chance of that though, it requires a longer term view that is not compatible with quarterly profit reports.

        +
        +

        [–]ShortWoman [score hidden]  (6 children)

        Real estate on the coast is too expensive and we wouldn't want the wealthy to have that too close by.

        +
        +

        [–]tsunamikidd62 [score hidden]  (0 children)

        Gosh that would be just terrrrrrible if a data center were to be built right next to rich neighborhoods….

        +
        +

        [–]gorpie97 [score hidden]  (1 child)

        China is building them in the ocean, just like we build oil drilling platforms.

        +
        +

        [–]Temelios [score hidden]  (0 children)

        You act like the San Diego, Los Angeles, San Francisco, Astoria, and Seattle areas are the only coastal real estate. The Pacific coastline is massive and has tons of cheap property that the idea is pretty feasible so long as you look in places like Eureka or Coos Bay.

        +
        +

        [–]Dr_Pants7 [score hidden]  (4 children)

        Plus that requires putting resources into science. We can’t do that, science is just a liberal hoax.

        +
        +

        [–]DennisTheBald [score hidden]  (0 children)

        Some civ that thought in terms of several generations rather than a couple terms might. But a stable genius wouldn't care that much about getting water to the serfs

        +
        +

        [–]Proper_Individual578 [score hidden]  (1 child)

        +

        nd the heat generated by the data center to both desalinate the seawater and recover salt and minerals from it.

        +
        + +

        Do these AI chips run hot enough for that, or does desalination work at lower temps than I think it does? Most PC hardware doesn't like temps anywhere near hot enough to boil water

        +
        +

        [–]PipChaos [score hidden]  (0 children)

        The coast is where they built their mansions.

        +
        +

        [–]Dreaunicorn [score hidden]  (0 children)

        I’ve thought about this too but salt is a problem for steel and electronics in general.

        +
        +

        [–]Sportsfan369 33 points34 points  (18 children)

        Enough people don’t talk about the water scarcity that’s upcoming. Water will become more of a commodity. If you have access to free and clean water now, I’d suggest start filling up bottles.

        +
        +

        [–]awkwardmamasloth 12 points13 points  (16 children)

        +

        If you have access to free and clean water now, I’d suggest start filling up bottles.

        +
        + +

        Yea but you cant drink that unless its sanitized and stored properly. I k ow theres a process for treating it but idk what that is.

        +
        +

        [–]amateurbreditor [score hidden]  (9 children)

        in an emergency take 2 large kettles and put a clean cloth at a 45 degree angle. The water goes in the one and the slant goes into the other. The water boils from a fire under it or whatever you have and the steam hits the cloth and forms water and drops into the cloth. Perfect sterile water every time.

        +
        +

        [–]BigUptokes [score hidden]  (6 children)

        The cloth method is good for filtering particulate but I wouldn't call it perfectly sterile, especially in an emergency situation.

        +
        +

        [–]InNominePasta [score hidden]  (0 children)

        Invest in a bunch of Sawyer filters. Then you just need fresh water, regardless of how clean it is. Streams, puddles, whatever

        +
        +

        [–]Masterofnone9 [score hidden]  (2 children)

        Great "The Water Wars".

        +
        +

        [–]kloiberin_time 98 points99 points  (44 children)

        Add gas to that list. How many people are reliant on cars to get food? Or goes beyond just driving to the grocery store or walmart. What happens when the price of bread is 30 bucks a loaf because there's no gas to ship it.

        + +

        Walmart, Costco, Kroger, and Aldi dominate groceries. Sure, there are some franchise Price Choppers or whatever, but most of America buys their food at massive chains. What happens when Walmart can't ship it to Suburban and rural America?

        +
        +

        [–]traveldogmom13 43 points44 points  (3 children)

        I believe there are some instances in history where this had happened before. It didn’t end well

        +
        +

        [–]tulsym 17 points18 points  (1 child)

        Let them eat cake

        +
        +

        [–]fencer1119 [score hidden]  (0 children)

        Little red cookbook

        +
        +

        [–]NoAngel815 17 points18 points  (1 child)

        All food is reliant on gas/diesel, farmers won't be able to plow, plant, or harvest their crops because all farm machines run on diesel, as well as the trucks that all food is shipped on.

        +
        +

        [–]Pretend-Marsupial258 [score hidden]  (0 children)

        Synthetic fertilizer is completely dependent on fossil fuels as well.

        +
        +

        [–]LetterheadNo7323 [score hidden]  (1 child)

        I don’t understand why our shit politicians are so shortsighted. Can’t go to war over sunlight. Well, I know it’s about money so I guess I can’t understand how they could possibly be so greedy and craven.

        +
        +

        [–]whatamidoing71 2 points3 points  (0 children)

        Walmart will always be able to, but will they? (Gotta hold on to those sweet sweet billions…)

        +
        +

        [–]thetechguyv 13 points14 points  (10 children)

        Personal cars that you own are 100% going to become a luxury item in the next 20 years.

        + +

        Robo taxis on subscription are the future. 

        +
        +

        [–]3-2-1-backup 21 points22 points  (0 children)

        Pipe down Elon, nobody believes your horeshit anymore.

        +
        +

        [–]f8Negative 30 points31 points  (5 children)

        Not in rural anywhere. Unfeasible pipedream.

        +
        +

        [–]FormBitter4234 5 points6 points  (0 children)

        Everything has been moving to the subscription model and there are already monthly (non-musk) car rental services in large cities for people who only need a car on occasion so I can totally see this happening especially as vehicles get more expensive.

        +
        +

        [–]mikepi1999 2 points3 points  (0 children)

        This is a fact. The insurance companies are going to force the issue.

        +
        +

        [–]YouArentReallyThere 1 point2 points  (3 children)

        We live in a world of cars. Economies are dependent upon it and everything else that goes with it. Things won’t get so expensive or disrupted to where that gets affected too much.

        +
        +

        [–]Unhappy-Homework-812 1 point2 points  (1 child)

        If it comes down to apocalyptic times without cars we build communes and grow food. Pretty basic survival if they really gotta ask. 

        +
        +

        [–]askthepeanutgallery [score hidden]  (0 children)

        How many of us can even keep houseplants alive?

        +
        +

        [–]Jaereth [score hidden]  (0 children)

        Yup. Auto, Medical, Banking, Construction, Big Tech, etc.

        + +

        These are the "great houses" of the US now and the respective oligarchs aren't going to let their money machines get disrupted.

        +
        +

        [–]Ki-to-Life-5054 1 point2 points  (0 children)

        If working people all have to move to cities, corporations will have to let people work remotely so that office space can be repurposed as housing. People will think they are doing ok. Then, our govt will sell off farmland to the Chinese and for data centers. Depopulating rural areas will make someone money. It will be the beginning of those hellscapes we see in scifi movies.

        +
        +

        [–]jammythesandwich 12 points13 points  (0 children)

        This and a black economy will sprout wings alongside rises in civil unrest and organised crime

        + +

        It’s not going to be pretty thats for sure

        +
        +

        [–]Dear-me113 8 points9 points  (5 children)

        Bread and circuses?

        +
        +

        [–]sambeau 33 points34 points  (2 children)

        Ordinary people are priced out of the circuses. Ticketmaster saw to that.

        + +

        Meanwhile Netflix et al are doing the same to watching the circuses on a screen.

        + +

        The oligarchy aren’t thinking it through. They do not want a hungry bored populace.

        + +

        The Romans understood this; the French royalty did not.

        +
        +

        [–]paigeguy 4 points5 points  (0 children)

        Scooter races and sex parties.

        + +

        "Beggars in Spain" - Nancy Kress

        +
        +

        [–]Ricky_the_Wizard 8 points9 points  (1 child)

        Maslow's strikes again!

        +
        +

        [–]Marmaduke_Nelly 6 points7 points  (0 children)

        Why do you think all these billionaires are building bunkers?

        +
        +

        [–]Polarbrine 4 points5 points  (1 child)

        "all options are on the table" is a very polite way to say guillotines

        +
        +

        [–]tractorpatty 2 points3 points  (0 children)

        Desperation = control if done correctly as mentioned above.

        +
        +

        [–]Fungiblefaith 1 point2 points  (0 children)

        4 missed meals from eating the rich.

        +
        +

        [–]Maketjgreatagain [score hidden]  (0 children)

        We will see Klarna and affirm available at McDonald’s and yet not see anything wrong with it.

        +
        +

        [–]jeexbit [score hidden]  (1 child)

        I think loss of tv/internet could do it too.

        +
        +

        [–]Only_Employer5690 312 points313 points  (15 children)

        It usually builds slowly: higher debt, shared housing, delayed independence, and more reliance on support systems. Over time, it can also drive political pressure for policy changes.

        +
        +

        [–]OneEarthtoShare 119 points120 points  (6 children)

        I"ve been seeing all of these things happening

        +
        +

        [–]qrseek 75 points76 points  (2 children)

        For like, 20 years so far

        +
        +

        [–]karenw 43 points44 points  (1 child)

        At least. I'm 55 and have been watching the decline since Reagan.

        +
        +

        [–]ShortWoman [score hidden]  (0 children)

        And I've been watching in parallel as the Republicans turned less interested in negotiation that wasn't "do it our way" and the Democrats kept falling into their traps.

        +
        +

        [–]DeterrenceTheory [score hidden]  (1 child)

        Around me, there are more and more local zoning changes that are allowing residential property owners to tear down single family homes and build a number of tiny units on the property. The zoning changes were made in the name of creating affordable housing, but what ends up happening is the tiny units get priced each at nearly the same level as the original larger house.

        +
        +

        [–]MrMotorcycle94 6 points7 points  (0 children)

        Any day now then?

        +
        +

        [–]popsicle_of_meat [score hidden]  (1 child)

        And if the change is slow enough, the people don't revolt. They just accept it. The US will become a 3rd world country with some billionaires scattered around in secure sites.

        +
        +

        [–]ArticleInteresting13 [score hidden]  (0 children)

        we are basically seeing this happen right now. It feels like everyone I know has roommates or is stuck living with their parents.

        +
        +

        [–]IamDDT 1 point2 points  (0 children)

        I remember visiting Mary King's close in Edinburgh. There is a lot poor people will put up with, unfortunately.

        +
        +

        [–]DefinitelyRussian [score hidden]  (0 children)

        some countries are already like that, so nothing new

        +
        +

        [–]_Christopher_Crypto 246 points247 points  (13 children)

        What we saw in 2008 was many threw in the towel, stole what they could and punted. Seriously I watched otherwise good people strip the inside of their house bare, cabinets, lights, doors, appliances, and leave the shell for the repo. Moved it all to a cheaper residence and built that with the good stuff. Point is, many will just say F’it, quit their job and stop trying. Then the top feels the pain and things get interesting.

        +
        +

        [–]_Christopher_Crypto 118 points119 points  (7 children)

        Saw one case where a former owner refused to leave their repossessed house. The new owner was forced to pay them a lump sum of cash or risk the former destroying the residence. By this time the bank was out of the picture, squatter’s rights kept law enforcement from doing anything prior to a notification period.

        +
        +

        [–]Potential_Figure4061 32 points33 points  (4 children)

        thats why people are usually thrown out of repos before it goes up for sale

        +
        +

        [–]_Christopher_Crypto 11 points12 points  (2 children)

        Banks have better things to worry about. Houses were being resold within hrs of being repossessed. That and repo’s at that time were not one offs. Banks were dealing with hundreds/thousands at a time.

        +
        +

        [–]PowermanFriendship 5 points6 points  (0 children)

        Back then there could have been some underlying chain-of-ownership problems that allowed the squatting to continue. I was friends with a married couple who lived in a $1M home in 2009 and stopped paying the mortgage when one of them got laid off, because the bank no longer had enough original documentation on hand to prove who actually owned the house. Their lawyer was able to drag the process out for a good 5 years IIRC, before their situation improved and then they just moved into a nice apartment. I don't believe their credit was even affected in the end and I seem to recall this being a tactic that quite a number of people were able to employ to avoid eviction. (Yes, this was in Florida.)

        +
        +

        [–]Nearbyatom 14 points15 points  (1 child)

        The problem is the top is so insulated they won't feel the pain.

        +
        +

        [–]Unhappy-Homework-812 4 points5 points  (0 children)

        You’d be surprised. All their wealth is in stocks. 

        +
        +

        [–]theslimbox [score hidden]  (0 children)

        People are so much smarter than 2008 now though.

        + +

        In 2008, i was making good money because every Pawnshop had so much inventory they were selling it for half of what I could sell it on ebay for. People were selling items to Pawnshops for next to nothing to get a little money. Most people now know they can get more by selling items themselves.

        + +

        There are still people with no financial sense out there, but harder times are making people smarter.

        +
        +

        [–]Admirable-Strike-311 111 points112 points  (13 children)

        There are historical examples where the lower class basically sells themselves into servitude to either the government or the rich.

        +
        +

        [–]AshamedOfMyTypos 89 points90 points  (3 children)

        Top 10% of households account for 50% of spending. We’re there, fam. That’s what working a service job is just with the added seasoning of bootstrap capitalism.

        +
        +

        [–]roodammy44 34 points35 points  (2 children)

        It’s your fault you’re poor, but also if you inherited $100m you will never have to work a day and you will continue to get richer forever.

        +
        +

        [–]Wurm42 20 points21 points  (2 children)

        Second this. We're headed toward an indenture system.

        + +

        You work for one of a handful of mega-corporations. You live in a company apartment, shop at a company store, and you can only leave if you can pay off your debt to the company...which will never happen.

        +
        +

        [–]Unhappy-Homework-812 4 points5 points  (1 child)

        Only way out of that is to find a way to generate money yourself and live frugally. Find a NEED in the world and fill it so people do not need to rely on giant corporations. That is the ONLY way out or back. 

        +
        +

        [–]SlinkyAdmiral 6 points7 points  (0 children)

        Or crime.

        +
        +

        [–]putin_my_ass 14 points15 points  (4 children)

        There are historical examples where the lower class removes the parasite classes. Capitally.

        +
        +

        [–]GoatSage777 137 points138 points  (20 children)

        A lot of redditor fantasy in these comments.

        + +

        The truth is that whatever happens won't be cinematic like some dystopian young adult movie nor like anything hundreds of years ago, especially in major first world countries.

        +
        +

        [–]Rapidzigs 63 points64 points  (5 children)

        Yup most likely things will get bad enough that people start yelling about. That will cause a stop gap short term relief measure by the government which will quiet everyone down for a bit. Rinse and repeat.

        +
        +

        [–]Konzacrafter 14 points15 points  (1 child)

        Everyone looks to France as the example for “get shit done” protesting, but this is exactly what plays out there.

        +
        +

        [–]Lbailey32 [score hidden]  (0 children)

        You have a great point, and I know France is incredibly different than the United States buuuut they do have strong worker protections, maternity leave, nationalized healthcare, required PTO, good public transportation and those are just the things I can think of off the top of my head that I WISH the US had.

        +
        +

        [–]Gsusruls [score hidden]  (3 children)

        reddit has deeply romanticized notions of revolution.

        + +

        Revolution is ugly. Revolution kills. Revolution ends everything you have. It changes the landscape, the whole landscape. And in all likelihood, you might not be here on the other side. Generally, revolution isn't for you and your benefit; it's for your grandkids.

        +
        +

        [–]DirtyRoller 10 points11 points  (0 children)

        The lower classes will turn on each other, the middle classes will also feel the repercussions. The upper class will watch from their ivory towers.

        +
        +

        [–]Unhappy-Homework-812 3 points4 points  (1 child)

        Families will move back in together, possibly multiple families. Start small communes; grow food. There’s already many in the US and all other parts of the world that are 800% worse than the US. people better learn survival and fast 

        +
        +

        [–]Zvenigora 4 points5 points  (0 children)

        There is not enough land to make that work with modern population levels. Subsistence farming is vastly less productive than the industrial farming that supports modern society.

        +
        +

        [–]AmericanScream [score hidden]  (0 children)

        If history is any indication, the worse the economy gets, inevitably someone starts a war and that becomes a more important focus, or at least the scapegoat for why so many people are without so much.

        +
        +

        [–]Dramatic_Movies 127 points128 points  (12 children)

        The scary part is that people don’t collapse all at once — they slowly stop participating. 😞

        +
        +

        [–]Shadbolt 32 points33 points  (10 children)

        yeah my cousin stopped buying groceries first then just stayed home

        +
        +

        [–]Nope_______ 16 points17 points  (5 children)

        He just doesn't eat?

        +
        +

        [–]False_Perspective854 34 points35 points  (4 children)

        What do you think happens when you have no money?

        +
        +

        [–]Nope_______ 14 points15 points  (2 children)

        So he's dead then? Idk people usually get some benefits or start stealing or panhandling to survive rather than starve to death in their home

        +
        +

        [–]ExpertExpert [score hidden]  (1 child)

        +

        benefits

        +
        + +

        sir, this is america

        +
        +

        [–]Sea_Particular9266 21 points22 points  (0 children)

        You become an incel and post relentlessly on reddit

        +
        +

        [–]Unhappy-Homework-812 6 points7 points  (3 children)

        I did that like 6 months ago. I buy a loaf of bread, ham, grow lettuce and tomato. maybe buy 2 boxes of noodles, milk and bananas. Set for the week 

        +
        +

        [–]Loki-L 24 points25 points  (0 children)

        They go into debt and the debt gets sold on as an investment and then they can't pay and the people who invested in the debt also can't pay anymore and the government bails out billionaires with money future generations will have to pay in taxes.

        +
        +

        [–]wastingtoomuchthyme 49 points50 points  (4 children)

        There's examples of this around the world.

        + +

        You'll have beautiful neighborhoods and favellas and a lot of crime. There will be a lot of homeless people and many people living in micro/cage apartments like they do in Hong Kong. People will scrape by with service jobs or micro factories like in India.

        + +

        As long as they are fed... When populations start going hungry is when you get revolution... Which often makes things worse.

        +
        +

        [–]Unhappy-Homework-812 6 points7 points  (2 children)

        Yep no one ever talks about Japan and their coffin homes. It’s already been happening around the world for 45 years. 

        +
        +

        [–]RUKiddingMeReddit [score hidden]  (0 children)

        That has more to due with urban density than poverty.

        +
        +

        [–]ElHeim 141 points142 points  (36 children)

        Look at what happened in the past .

        + +

        Just make sure you're not part of the 1% (or look like it) when that happens

        +
        +

        [–]Pirate_Princess_87 26 points27 points  (4 children)

        Depends. There are examples from the past where there was a violent revolution to overthrow the ruling class. There have also been examples from history where the peasants just quietly starved to death.

        +
        +

        [–]iamtehryan 7 points8 points  (1 child)

        One of these is definitely better than the other.

        +
        +

        [–]09232022 11 points12 points  (0 children)

        The only one that follows within reddit TOS though is peasants starving to death. That tracks. 

        +
        +

        [–]porgy_tirebiter 122 points123 points  (15 children)

        There are countries all over the world that have long had a large poor underclass, and no violent revolution at all. It’s not 1% mega rich and 99% desperately poor, but still there are huge, sprawling slums and townships and favelas. That’s what it’ll be in the US, and everyone will accept it like they do in Brazil and India and the Philippines and South Africa. There will be no uprising against the haves.

        +
        +

        [–]petitecrivain 11 points12 points  (1 child)

        Brazil eventually kicked out their military regime. They have a huge labor movement and saw a leftist wave in the 2000s and again more recently. The Philippines has a lot of issues but back when it was significantly worse in the 1980s they put their foot down and ousted Marcos. 

        +
        +

        [–]porgy_tirebiter 4 points5 points  (0 children)

        Not exactly violent revolution eating the rich like OP suggested though. The shockingly huge and awful slums are still there. I hope things will improve. All I’m saying is people will endure pretty terrible suffering without a French Revolution uprising.

        +
        +

        [–]Pirate_Princess_87 23 points24 points  (2 children)

        No uprising as long as the popes still get their streaming services. Modern day circuses to stop the revolution.

        +
        +

        [–]strictnaturereserve 10 points11 points  (1 child)

        I don't know why your blaming the catholics for all this! /j

        +
        +

        [–]Helen_A_Handbasket [score hidden]  (0 children)

        The Catholic church is pretty fucking rich, dude. They could do a lot more to help people rather than hoarding their shit like a mythical dragon.

        +
        +

        [–]roodammy44 5 points6 points  (2 children)

        Depends on the place. Russia, China, Europe, South America and Africa all had huge revolutions when their populations got desperate enough. I’d say it’s more likely that there will be a revolution than there won’t.

        + +

        Maybe modern USA will accept the conditions, but I don’t think modern France would.

        +
        +

        [–]porgy_tirebiter 1 point2 points  (0 children)

        Americans are not the French. They have Freedom™ after all.

        +
        +

        [–]vacuitee 6 points7 points  (0 children)

        I drove past a home on the main drag of a small town in the rural midwest yesterday. Most of the front of the home was either bare drywall, or plastic tarps. There were four cars outside. There are already plenty of people in the USA living in levels of poverty that most Americans can't really comprehend. That family at least had a house, I guess. So I imagine we will see a lot more of that.

        + +

        Edit: Oh yeah there is a woman down the road from me that doesn't live with power. Given everyone out here is on well water, that means no water, either. Her house looks fine, so it makes me wonder how many people are living like this that most aren't aware of.

        +
        +

        [–]frosteeze 10 points11 points  (0 children)

        People point to the French as exemplars of protesting and rioting. But let’s be real. If a group of people has to riot and protest that frequently it doesn’t matter how intense it is. Because it meant…nothing changed, they’re still discontent and powerless. People are discontent about raising pension age as an example, it gets reverted back just a bit from to make them happy, then repeat to claim new grounds. From the original 62 years of age to proposed 65, then to the legislated 63.

        + +

        The French elite’s propaganda is just different, that’s all.

        +
        +

        [–]Oilfan94 4 points5 points  (0 children)

        Or….try to become the 0.0001%……because those fyckers have been apocalypse planning for decades.

        +
        +

        [–]CactaurSnapper 17 points18 points  (1 child)

        In the Russian example farmers were eventually considered rich. Which led to famine of course.

        +
        +

        [–]King0fthewasteland 5 points6 points  (3 children)

        It won't. If it was going to happend is would have a long time ago. People will just sit and take it

        +
        +

        [–]bluecheetos 8 points9 points  (0 children)

        Because people just want happiness and happiness is on a sliding scale. Poor people can find happiness in getting a coupon for a free pizza....Jeff Bezos finds happiness in owning the moon.

        +
        +

        [–]Newbie4Hire 2 points3 points  (0 children)

        It's because the threshold of tolerance has never been exceeded in a short enough time frame. They can take 10 feet if they take 1 inch at a time. But if they take 2 feet at once, people revolt. So long as they maintain bread and circuses they can do it this way. Obviously if they stop bread or circuses all bets are off.

        +
        +

        [–]TheAmorphous 3 points4 points  (0 children)

        Look at how much the Russians are willing to put up with. Americans are proving to be every bit as docile.

        +
        +

        [–]TheRexRider 15 points16 points  (0 children)

        I have a feeling no one is going to miss Kevin O'Leary or Jeff Bezos.

        +
        +

        [–]summonsays 14 points15 points  (1 child)

        AI / robot automation and then they'll let everyone starve. And we'll see if people continue to peacefully accept death or not. 

        + +

        I'm honestly shocked Luigi was such a one-off.

        +
        +

        [–]Masterweedo 12 points13 points  (1 child)

        Judging by the protests in 2020, and the ones more recently, I fully expect and protests to become mass casualty events where law enforcement or even the military massacres the protestors. The government and oligarchs appear to be preparing for it.

        +
        +

        [–]OgreMk5 11 points12 points  (0 children)

        What will happen has been the ultra-wealthy's plans all along. Re-institute debt slavery.

        + +

        Everyone works for them all the time and all the money comes back to them all the time.

        + +

        Amazon is almost a company store, since you can get almost anything you need from them. You aren't required to if you work there, but it's "so convenient"...

        + +

        Musk has already propose company housing for his "Starbase". Sure, you pay rent to the company you work for. And what happens when you turn in your resignation letter? You're instantly homeless. They lock the door remotely, change the code, and you'll have to sue to get your stuff... which you can't afford. Musk will literally use the money you paid him to pay lawyers to keep you from getting your stuff.

        + +

        Slavery... in all but name.

        +
        +

        [–]ProfessionalReach418 32 points33 points  (0 children)

        Holy larp in the comments.

        + +

        Realistically people stop working/buying things until the top budges.

        +
        +

        [–]TheMazoo 17 points18 points  (0 children)

        Yahtzee! Isn't that kind of the goal? Price people out to gain leverage over their habits they're forced to adopt when they're backed into a corner.

        +
        +

        [–]Gordon_frumann 8 points9 points  (2 children)

        Once catastrophic food shortages star happening, that's when the guillotines get pulled out.

        +
        +

        [–]CasUalNtT 14 points15 points  (5 children)

        They will have to form an anarcho-syndicalist commune.

        +
        +

        [–]tauberculosis 6 points7 points  (0 children)

        Listen. Strange women lying in ponds distributing swords is no basis for a system of government

        +
        +

        [–]Rapidzigs 6 points7 points  (1 child)

        Help help I'm being repressed

        +
        +

        [–]jason4747 3 points4 points  (0 children)

        What if each of us becomes a sort of "executive officer of the weak?"

        + +

        For the week?

        +
        +

        [–]fuzzybad 1 point2 points  (1 child)

        Dennis! There's some lovely filth down here!

        +
        +

        [–]thehappyonionpeel 11 points12 points  (1 child)

        Ah that's why they are building their mega off shore bunkers

        +
        +

        [–]distinctgore 5 points6 points  (0 children)

        All good, just fart into the air vent

        +
        +

        [–]Psychological_Pen765 5 points6 points  (1 child)

        Republicans will host UFC fights on top of the White house ballroom for the masses to forget their troubles

        +
        +

        [–]DJBudGreen 6 points7 points  (0 children)

        You say you want a revolution? The billionaire class can't hire enough protection to prevent being dragged out into the streets once the lower class can't afford food.

        + +

        That's why they'll always keep some type of junk food cheap and the nutritional quality low. If you have a full belly, it's less relevant what it's filled with as long as you aren't hungry.

        + +

        And as long as our devices still do flashy things to keep us distracted from the hoovering of all the wealth to the very few, they will keep control over the lower class.

        + +

        Make the food and distractions unaffordable and we'll snap like a twig.

        +
        +

        [–]HaiKarate 17 points18 points  (1 child)

        The crime rate goes up and whole sections of your city become unliveable for decent folks just trying to get by.

        +
        +

        [–]Serentyr 4 points5 points  (0 children)

        Historically, rebellion, conflict, strife, destruction of property.

        + +

        In an age of fledging AI, autonomous factories and personnel… the leverage that the masses had beyond simple numerical advantage is far weaker.

        + +

        I think it’s harder to predict and rely on history, where the playing field was significantly more level and the power structures were functionally reliant on the cooperation (through whatever means acquired) of the work force.

        +
        +

        [–]RosyRainbows 20 points21 points  (7 children)

        Lot of wealthy people and politicians loose their heads. History has a way of repeating

        +
        +

        [–]blooperonthestoop 13 points14 points  (1 child)

        lose

        +
        +

        [–]qrseek 4 points5 points  (0 children)

        Their heads will also be loose

        +
        +

        [–]Yzelski 3 points4 points  (0 children)

        When demand is lower than supply, prices fall. Basic economics.

        +
        +

        [–]Dale_Cooper_II 2 points3 points  (0 children)

        Read Ready Player 1.

        + +

        Thats where we're heading!

        +
        +

        [–]SwissChzMcGeez 3 points4 points  (0 children)

        Watch the movie Elysium.

        +
        +

        [–]Nearbyatom 3 points4 points  (1 child)

        Crime goes up. When people get desperate, they have nothing to lose.

        +
        +

        [–]tjlazer79 1 point2 points  (0 children)

        Yep. I agree. You reach a point where so many people are desperate, they have nothing to lose, and they will get violent and revolt.

        +
        +

        [–]Kiyohara 3 points4 points  (0 children)

        In general across all of history, Humans tend to be fairly compliant and passive towards the heads of their society. We're a tribal species after all, and the majority have ingrained desires to help each other and work together.

        + +

        However, in nearly every single situation where the populace gets hit by some event that makes it nearly difficult or impossible to get feed themselves, house themselves, or fight off a plague they have either taken the choice to move else where (become refugees) or over throw their leaders and start over (so rebellion).

        + +

        But that bar for "nearly difficult" is pretty high and the choice between becoming a refugee and a rebel is really based on realistic it is to perform each action. In societies where movement is controlled or restricted, they tend to revolt. In societies where the ruling state has a perceived insurmountable power, they flee. And it basically has to get tot he point where the average person's other choice is "whelp, guess I'll just die then."

        + +

        Right now food is there and there are some options for those most in need. We're not at the stage where the choices are between fighting, fleeing, or dying. We're at the stage where we tighten our belts, cut expenses, and still have hope someone is going to turn it around. We're hardly at the famine stage here. We're not even at the "hungry" stage nation wide. Food is plentiful, if expensive. And if people have to choose between food, medicine, housing, and luxuries, we can still drop the luxuries entirely and possibly still cut back on something else too.

        + +

        And our leaders and wealthy know this (sort of). It's why they campaigned on food prices and the economy. Eventually they will be forced to take action and do something about it. But that time isn't now. It won't be until people are down to choosing between food and shelter (forget about medicine and luxuries).

        + +

        There's a reason why the phrase "bread and circuses" was invented: give the people just enough to eat and enough entertainment to be distracted and they won't revolt. That's too risky to attempt when you still have options. And we right now have TV and cheap entertainment. Practically every single person carries a phone that can play the entire collection of Earth's Entertainment if you look for it.

        + +

        But once we get to that final stage where we don't have options other than to fight or flee, well we'll see which direction most people take. Looking at the US past, we've had migrations numerous times and several wars and revolutions (even if some were short lived) and armed conflict is not a stranger to these lands.

        +
        +

        [–]PM_me_ur_navel_girl [score hidden]  (0 children)

        A business owner, a foreigner, and a blue-collar worker are sat round a table. In the middle is a plate with ten cookies.

        + +

        The business owner takes nine cookies for himself, then says to the blue-collar worker "Watch out for that foreigner, he's got his eye on your last cookie!"

        +
        +

        [–]WhiteSkyfire 6 points7 points  (1 child)

        The return of the workhouse, some politicians are actively working on it

        +
        +

        [–]And-Messy 6 points7 points  (0 children)

        If enough people decided to go for a walk at the same time to the same place, I feel like somehow a miracle would happen.

        +
        +

        [–]agreetodisagree2023 8 points9 points  (14 children)

        50% of the US has an income at or below $51,500. They are there already. We keep them balancing on the edge of despair and then they vote in the rich who steal the last few dollars from them to remove all their power. The system IS working.

        + +

        (Edited for $)

        +
        +

        [–]SarahQuinn113 9 points10 points  (0 children)

        We eat the rich.

        +
        +

        [–]Eyfordsucks 2 points3 points  (0 children)

        They start finding other ways to survive or they give up and die.

        +
        +

        [–]OpeningExtension2 2 points3 points  (0 children)

        Then there's nothing left to lose. Time for a Revolution.

        +
        +

        [–]janrockzzzxx 2 points3 points  (0 children)

        Revolution

        +
        +

        [–]karmais4suckers 2 points3 points  (2 children)

        Some people might go crazy, and others might lose their heads

        +
        +

        [–]questiontomorrow 2 points3 points  (0 children)

        Either revolution or oppression

        +
        +

        [–]FrostySoul3 2 points3 points  (0 children)

        We will all die. Upper class, middle class, lower class. It no longer matters. It’s all of us vs 100 families with robot armies that don’t say no to sending us packing in a metaphorical sense.

        +
        +

        [–]YourLocalOnionNinja 2 points3 points  (0 children)

        Death

        +
        +

        [–]Odd-Adhesiveness-656 2 points3 points  (0 children)

        "Soylent Green is PEOPLE"

        +
        +

        [–]phixitup 2 points3 points  (0 children)

        Anarchy, and it’s getting closer by the day.

        +
        +

        [–]ShittalkyCaps [score hidden]  (1 child)

        I don't see that happening. The powers that be will allow people to barely keep their head above water and sell them hope for a better future. Reason is, when people have nothing to lose, things would get real for real.

        +
        +

        [–]Great-Ad-4270[🍰] 25 points26 points  (3 children)

        They stop being lazy enough to revolt hopefully 

        +
        +

        [–]thepeanutone 2 points3 points  (0 children)

        What does a revolt (revolution? revolting?) look like? People keep saying that like I would know where to put the barricades, what I'm barricading, and what my end goal is.

        + +

        This country runs on where the money goes. Short of staging a robbery of billionaires - how do we interrupt the flow of money?

        + +

        The quiet Revolution is maybe just not buying into all the corporate shit and making the world a better place, all at the same time. What if the whole country just stopped buying fragrance products? Like, no more Downy Unstoppables, no more car clip air fresheners, no more perfume or body spray. What would happen? Shit, we stopped paying for Disney for what? a week? and look what happened.

        + +

        What if we all stopped paying for streaming services and, I don't know, watched movies from the library for entertainment instead? Or we could get REALLY crazy and read books instead?

        + +

        What if we all decided "This is where pain point number 1 hits?" And when you're still hurting, activate pain point #2.

        + +

        We are so spread out in America that the traditional picture of revolution is hard to recreate. We aren't really interested in going hungry or homeless, especially when it feels like we would be the only ones not going to work, so the general strike idea is a tough one to implement effectively.

        + +

        Corporations are widespread and easy for everyone to access/deny.

        + +

        I can't tell if I've had too much coffee or if this is actually a good idea...

        +
        +

        [–]intheshade6 7 points8 points  (1 child)

        What are you doing about it? Or are you saying it’s not your problem?

        +
        +

        [–]Nope_______ 8 points9 points  (0 children)

        He's waiting for someone else to do it. Too lazy lmao

        +
        +

        [–]trustmeep 1 point2 points  (0 children)

        Have they tried saying think you?

        +
        +

        [–]AmbitiousReaction168 1 point2 points  (0 children)

        Riots and mass repression, followed by fascism.

        +
        +

        [–]SecretTreeHouse42 1 point2 points  (0 children)

        I had this thought while grocery shopping the other day. So many items that I used to get, now skipped, because the prices are an insult.

        +
        +

        [–]Coravel 1 point2 points  (0 children)

        You see the slums in ready player one?

        +
        +

        [–]RobsOffDaGrid 1 point2 points  (1 child)

        When it comes to profit when sales go down to a point where a product isn’t selling the product either ceases to be or the price has to come down. +It’s because people keep buying a product as the price increases and keep buying it.

        +
        +

        [–]Chance-Ad7783 1 point2 points  (0 children)

        If history is any guide, if the situation does not change, radicalism and violence. I wish to avoid this because when you have a revolution, it is often the greatest sociopath who comes out on top. But that is just a nonprofessional view.

        +
        +

        [–]haythem007 1 point2 points  (0 children)

        If that happen, you would likely see major pushback protests, policy changes and pressure for things like higher wages or rent controls. Historically, when inequality gets too extreme, societies either adjust or they end up in serious instability, so it usually forces some kind of correction before it reaches a total breaking point.

        +
        +

        [–]LaFilleDuMoulinier 1 point2 points  (0 children)

        We will party like it’s 1789.

        +
        +

        [–]Netmantis 1 point2 points  (0 children)

        No one has thought that far.

        + +

        The upper classes continue their short-sighted "line went up for past week, line go up forever" planning, not understanding that the often large short term gains tend to be balanced out with losses soon afterwards when the consequences of the actions come around. So making the lower classes unable to afford what you sell never enters their mind until sales drop and they are scrambling to figure out why no one wants what they offer.

        +
        +

        [–]MoroseBizarro 1 point2 points  (0 children)

        Poverty breeds crime. The plebs will battle each other for survival while the bourgeoisie hides behind their walls hoping the violence stays away. Militarizing the police will help for a time but eventually the people will win. Same as it's ever been.

        +
        +

        [–]FrankCastillo95 1 point2 points  (0 children)

        Demand will collapse and prices will correspondingly drop or low performing locations will shutter. Nowadays with so many expenses being on things other than necessities in the developed world, most folks have little idea just how far away anything serious really is. They simply won't care about much that happens.

        +
        +

        [–]Original_Remote_6838 1 point2 points  (0 children)

        Realistically? The wealthy will benefit from the situation as the poor get poorer. People will lose their homes and those with enough money will scoop them up. Nothing changed in 2008 and it won’t change now.

        +
        +

        [–]Reasonable-Guess-451 1 point2 points  (0 children)

        That’s my question. If they take all our money after they’ve pissed off the other countries, who’s going to buy their crap?

        +
        +

        [–]AddictedtoBoom 1 point2 points  (0 children)

        Historically revolution and massive social upheaval lasting multiple generations.

        +
        +

        [–]rocktropolis 1 point2 points  (0 children)

        Best case, French style revolution. More likely scenario, East German / Soviet Russia style authoritarianism, breadlines, society.

        +
        +

        [–]0rganicMach1ne 1 point2 points  (0 children)

        The less than 1% responsible for it will still blame everyone else but themselves and sadly some poor idiots will still believe and worship them.

        +
        +

        [–]Tabbygail 1 point2 points  (2 children)

        Once you hit a critical mass of maybe ~15% of people that literally can't afford to live, can't buy food or water, there will be a revolt of some kind. Whether it's successful, or just makes things worse, who can say.

        + +

        Until then we'll get by. We'll buy bikes because cars are too expensive, live 4 to a room, eat rice and beans for every meal. We'll learn to live with injury and sickness because the doctor is too expensive. We'll snag pigeons from their nests for thanksgiving dinner. 

        +
        +

        [–]CaptainPrower 1 point2 points  (0 children)

        The billionaires are planning on going full Elysium by then.

        +
        +

        [–]DerpDerpingtonIV 1 point2 points  (0 children)

        Unrest...conflict....violence...the cull.

        +
        +

        [–]Tanerian 1 point2 points  (0 children)

        Crime ---> propaganda to make the remaining middle class view the lower class as the enemy.

        +
        +

        [–]iamstephen1128 [score hidden]  (0 children)

        The Bell Riots

        +
        +

        [–]painstream [score hidden]  (1 child)

        Increased homelessness, getting criminalized for that homelessness, then thrown in prisons, which are privatized and run as a business, selling labor.

        +
        +

        [–]MatCauthonsHat [score hidden]  (0 children)

        Soylent green?

        +
        +

        [–]DividedStatesofFeces [score hidden]  (0 children)

        Revolution...

        +
        +

        [–]Lighthouse_on_Mars [score hidden]  (0 children)

        Normally, a revolution.

        + +

        However, the world has never been this technologicaly advanced before. And the military and police have weapons and options that FAR outstripes anything the masses have.

        + +

        So while we have the numbers, it would still be fairly easy to keep us in line. Especially as we have been effectively trained to not fight back...

        + +

        Look at the route and Protest France has, what's currently going on in Albania. The US has nothing similar because we are all too busy working to stay alive, and hoping others will put themselves at risk.

        +
        +

        [–]razorwiregoatlick877 [score hidden]  (0 children)

        In the past that is when people brought out the guillotine.

        +
        +

        [–]Extreme_Health_9827 [score hidden]  (0 children)

        I live on 2 hot dogs and 2 cups of coffee a day thanks for asking.

        +
        +

        [–]Creative_Squirrel [score hidden]  (0 children)

        Workhouses 2.0

        +
        +

        [–]jokemon [score hidden]  (0 children)

        they dont really care, we live in a global society, they can simply go to their home in france and take advantage of their economy.

        +
        +

        [–]kdebones [score hidden]  (0 children)

        Realistically, right proper anarchy.

        +
        +

        [–]Dubious_Titan [score hidden]  (0 children)

        The rich will make the poor fight the poorer for the privilege of licking their boots. And it will 100% work.

        +
        +

        [–]KittensAndGravy [score hidden]  (0 children)

        Sadly it seems the sparrows are ok with picking through the well fed horses shit covered oats.

        +
        +

        [–]Prestigious_Safe3565 [score hidden]  (0 children)

        You spelled “middle“ wrong 😑

        +
        +

        π Rendered by PID 52 on reddit-service-r2-loggedout-7768c89db9-ltrqx at 2026-06-04 14:23:47.573526+00:00 running 9e1a20d country code: IT.

        diff --git a/crates/webclaw-core/testdata/reddit/ebpf_6comments.html b/crates/webclaw-core/testdata/reddit/ebpf_6comments.html new file mode 100644 index 0000000..acc2d78 --- /dev/null +++ b/crates/webclaw-core/testdata/reddit/ebpf_6comments.html @@ -0,0 +1,82 @@ +A tale about fixing eBPF spinlock issues in the Linux kernel : programming
        this post was submitted on
        87 points (95% upvoted)

        programming

        /r/programming is a reddit for discussion and news about computer programming.

        + +
        + +

        Rules

        + +

        Refer to the rules page for more info.

        + +
          +
        1. No LLM-Written Content

        2. +
        3. AI-related posts must comply with the AI Policy

        4. +
        5. No Political Posts or Personal/Social Drama/Gossip

        6. +
        7. No Non-Programming/Generic LLM/Diffusion Content

        8. +
        9. No Product Promotion/"I Made This" Project Demo Posts

        10. +
        11. No Content Aggregators

        12. +
        13. No Surveys Or Job Postings

        14. +
        15. No Support Questions or AskReddit-Type Questions

        16. +
        17. No Meta Posts

        18. +
        19. No Images, Memes, Or Other Low Effort Posts

        20. +
        21. No Blogspam

        22. +
        23. No Extreme Beginner Content

        24. +
        25. Comments: No Bots

        26. +
        27. Comments: No Incivility

        28. +
        + +
        + +

        Info

        + + + +
        + +

        Related reddits

        + + + +

        Specific languages

        +
        +
        a community for
        ×
        all 6 comments

        [–]teerre 9 points10 points  (0 children)

        Very cool blog! Great job explaining it. It was easy to follow

        +
        +

        [–]ejrh 4 points5 points  (1 child)

        I guess this is for user space programming, but I was always taught that nothing "big and/or complicated" should happen in an interrupt. Instead, you should do no more than set a flag and rely on the normal non-interrupt code to check it and call the appropriate big and complicated function.

        + +

        The usual example was that anything requiringmalloc orfree was too big and complicated. Running an eBPF program certainly seems big and complicated enough. But I guess kernel programmers are made of sterner stuff and they just have to provide for this? I have a feeling that the eBPF hooks for performance events wouldn't be practical if they used the traditional approach.

        +
        +

        [–]admalledd 1 point2 points  (0 children)

        You are generally correct, the idea falls apart though that these were NMIs from performance sampling type tools, so they have to do some work in the interrupt. As the author stated, eBPF devs shouldn't need to care about this specific case since it's kind of the whole point of eBPF tracing existing. So the kernel devs have to be extra defensive, and seems a spot or two were missed, oops!

        +
        +

        [–]joolzg67_b 2 points3 points  (0 children)

        I worked on a port of nucleus RTOS late 80s, was asked to get it running ASAP, had it running in one day.

        + +

        Got a call a few months later saying "random crashes" are happening.

        + +

        Went in and found the interrupt now being used for the RTOS was a NMI interrupt, added a flag to check if interrupts were disabled and if so ignored the NMI.

        + +

        Voila fixed.

        +
        +

        [–]DowntownCap6204 2 points3 points  (0 children)

        love when a bug goes from “profiler freezes the box” to a tiny eBPF repro and a 250ms spinlock timeout

        +
        +

        [–]drcforbin 4 points5 points  (0 children)

        TIL I love low level debugging porn. "Yay! Job’s done. Or is it?"

        +
        +

        π Rendered by PID 609583 on reddit-service-r2-loggedout-7768c89db9-hndpc at 2026-06-04 14:20:01.909097+00:00 running 9e1a20d country code: IT.

        diff --git a/crates/webclaw-core/testdata/reddit/elixir_60comments.html b/crates/webclaw-core/testdata/reddit/elixir_60comments.html new file mode 100644 index 0000000..6d1f8fa --- /dev/null +++ b/crates/webclaw-core/testdata/reddit/elixir_60comments.html @@ -0,0 +1,312 @@ +Elixir v1.20 released: now a gradually typed language : programming
        this post was submitted on
        214 points (96% upvoted)

        programming

        /r/programming is a reddit for discussion and news about computer programming.

        + +
        + +

        Rules

        + +

        Refer to the rules page for more info.

        + +
          +
        1. No LLM-Written Content

        2. +
        3. AI-related posts must comply with the AI Policy

        4. +
        5. No Political Posts or Personal/Social Drama/Gossip

        6. +
        7. No Non-Programming/Generic LLM/Diffusion Content

        8. +
        9. No Product Promotion/"I Made This" Project Demo Posts

        10. +
        11. No Content Aggregators

        12. +
        13. No Surveys Or Job Postings

        14. +
        15. No Support Questions or AskReddit-Type Questions

        16. +
        17. No Meta Posts

        18. +
        19. No Images, Memes, Or Other Low Effort Posts

        20. +
        21. No Blogspam

        22. +
        23. No Extreme Beginner Content

        24. +
        25. Comments: No Bots

        26. +
        27. Comments: No Incivility

        28. +
        + +
        + +

        Info

        + + + +
        + +

        Related reddits

        + + + +

        Specific languages

        +
        +
        a community for
        ×
        all 60 comments

        [–]markehammons 169 points170 points  (46 children)

        Why does this keep happening for dynamically typed languages? It feels to me like a vindication of static typing when all these dynamically typed languages keep bolting static types on after the fact.

        +
        +

        [–]syklemil 79 points80 points  (2 children)

        I think one part of an explanation could be that in the way-back-when, the alternative to dynamic typing was manifest, restrictive, even weak typing. E.g. languages like C where you

        + +
          +
        • have to specify all the types,
        • +
        • but lack the power of generics and interfaces that have become common in this millennium,
        • +
        • and where the types may not even be trustworthy, as with C's implicit conversions ("promotions"), or plenty of languages that have implicit nulls resulting in NPEs and segfaults.
        • +
        + +

        The gradual type systems we see added to various dynamic languages don't seem to have those same flaws. (Plenty of the older languages have been working on those flaws as well.)

        + +

        Elixir is old enough that it could've been typed from the start (roughly the same age as Typescript), but if we take its beginnings as something like "Erlang in Ruby's clothing" then it's no wonder that it wasn't.

        +
        +

        [–]spider-mario 0 points1 point  (1 child)

        +

        Elixir is old enough that it could've been typed from the start

        +
        + +

        Young enough?

        +
        +

        [–]syklemil 0 points1 point  (0 children)

        I'd rather phrase it as

        + +
        +

        Elixir's age indicates that it could've been typed from the start

        +
        + +

        than get into a pissing match over "old" vs "young"

        +
        +

        [–]kerakk19 186 points187 points  (14 children)

        Because dynamically typed languages sucks. Always will, always have.

        + +

        It's convenient for scripting and so, but as soon as you need to have something stable (actual project), dynamic languages fall flat

        +
        +

        [–]QuickQuirk 36 points37 points  (9 children)

        Awesome for quick scripting and apps that are less than a thousand lines.

        + +

        I really dislike it for anything larger. Good type systems eliminate certain classes of bugs.

        +
        +

        [–]SoInsightful 18 points19 points  (8 children)

        +

        Awesome for quick scripting

        +
        + +

        I've never even understood this. I'll create a small quick script in TypeScript over JavaScript every day.

        +
        +

        [–]stumblinbear 7 points8 points  (6 children)

        Shit, I'll write a quick script in Rust if It's going to be in use for more than few months

        +
        +

        [–]kabocha_ 2 points3 points  (5 children)

        Tbh my barrier is basically just "is it large enough that I want to save it as a file" nowadays.

        + +

        Quick bash scripts still win if it's mostly just calling existing programs, but otherwise my muscle memory + Rusts ease of spinning up a new project and adding dependencies wins.

        + +

        I think I only launch Python as a quick terminal calculator anymore, lol

        +
        +

        [–]tukanoid 2 points3 points  (1 child)

        And if you switch to nushell, you wont even need python for that😂 (cuz thats the only thing i was using it for as well, outside of couple projects at work i seldomly interact with)

        +
        +

        [–]kabocha_ 0 points1 point  (0 children)

        One of these days I'll pick a different shell and switch to it.

        + +

        I always keep thinking "but what about all the other systems I have to log into, my muscle memory will break for seconds before I remember to install it on that system too!" 😂

        +
        +

        [–]syklemil 1 point2 points  (2 children)

        As far as the terminal calculator goes, I'd been using units with a couple of flags; these days I just use numbat.

        +
        +

        [–]kabocha_ 0 points1 point  (1 child)

        Ooo I hadn't even thought of using a unit-aware program/language, that actually might be super useful for most of those "terminal calculator" use cases. Good tip!

        + +

        The python mostly stuck around as muscle memory, so I'll need to break that habit 😂

        +
        +

        [–]syklemil 1 point2 points  (0 children)

        I do have an alias nb=numbat that I think helped get the muscle memory adjusted.

        +
        +

        [–]QuickQuirk 1 point2 points  (0 children)

        Typescript is actually pretty good. Much better than base javascript.

        + +

        I'm still going to reach for python or erlang first.

        +
        +

        [–]-Ch4s3- 8 points9 points  (2 children)

        Every phone call you’ve ever made has touched an Ericsson switch running Erlang code. I’d say the telecom system is highly stable.

        +
        +

        [–][deleted]  (1 child)

        [deleted]

        +
        +

          [–]-Ch4s3- 2 points3 points  (0 children)

          Just because you don’t like dynamic languages doesn’t mean they suck. Distributed systems build for live code reloading while messages are in flight need to have at least some capacity for dynamic types. You can’t have nodes declaring different types at once for the same message. Dynamic types allow you to roll forward in a running system, it’s a very strong solution to that problem, and has proven robust for 40 years. Conversely trying to do this with static types would suck.

          + +

          Moreover a lot of basic web protocols are inherently stringly typed and dynamic.

          +
          +

          [–]efvie 8 points9 points  (0 children)

          Hilarious thing to say when Erlang itself is dynamically typed.

          +
          +

          [–]TypeSafeBug 8 points9 points  (2 children)

          I haven’t used this feature or modern elixir tooling yet but IMO this is a huge improvement over most dynamically typed languages. Most dynamically typed languages have pretty limited inference and require static type annotations to do useful things, and there’s a disconnect between the static types and the runtime behaviour (except in Python with Pydantic I guess).

          + +

          This looks like with guards (which have additional useful properties eg overloading, good luck with that, TypeScript!) you can pretty much have a statically analysable and typesafe program with the convenience of writing it like a dynamic one.

          +
          +

          [–]jessepence 0 points1 point  (1 child)

          [–]TypeSafeBug 0 points1 point  (0 children)

          Edit: didn’t notice the link; see rest regardless: Not really, in TS you can declare the method signature in such a way that when people go to use it, it shows up as if it’s got several overloads, but you are basically just writing a bit JS function that pulls apart arguments manually and has a bunch of internal logic inside.

          + +

          Elixir (like Erlang) uses arity of arguments + a guard clause with predicate functions to determine which version of a function to run. Which is technically not overloading like Java, C# or C++ do but is probably more flexible/useful (and more like Haskell pattern matching on function signature).

          +
          +

          [–]astonished_lasagna 49 points50 points  (9 children)

          Because it's very useful to have a language that can do both.

          +
          +

          [–]pheonixblade9 28 points29 points  (8 children)

          why? everything is typed at the end of the day, it's just chucking the validation down the road.

          +
          +

          [–]astonished_lasagna 17 points18 points  (2 children)

          Some things are harder to express in a static type system. For larger pieces of software, that tradeoff is usually worth it, but for smaller / one-off things it's not.

          +
          +

          [–]Wonderful-Habit-139 2 points3 points  (0 children)

          The tradeoff is worth it the moment you start defining functions imo. I always write types regardless of how small it is.

          + +

          I even wrote types during technical interviews in Python.

          +
          +

          [–]Saint_Nitouche 0 points1 point  (0 children)

          What things did you have in mind? API payloads?

          +
          +

          [–]syklemil 12 points13 points  (2 children)

          Part of it is just the power and effort that needs to go into some types. Dynamic typing generally wants the programmer to be able to express valid programs that would either be inexpressible or require inordinate amounts of efforts to type in static languages.

          + +

          If you've ever seen someone complain about complex generics, those are the cases where a dynamic type system would let you just write the behaviour and move on without needing a PhD in type theory.

          + +

          In practice plenty of people will just punch a hole in their type system with Any (AKA void*, Object, interface{}) when they come across a situation like that, which practically is static type systems moving towards the same middle ground, just from the opposite starting point.

          + +

          I prefer static typing myself, but it should be plenty clear to anyone that it ain't all sunshine and rainbows all the time either.

          +
          +

          [–]tukanoid 0 points1 point  (1 child)

          If you struggle with (complex) generics in types, i find it hard to believe that dynamic typing will make it easier, cuz now you have to keep all that context on your head, good luck remembering/re-figuring shit out in a week of not working on that part of code.

          + +

          Although, guess depends on the language. While the Rusts type system is not perfect, its expressive enough for me to be able to cram my logic into types 95% of the time

          +
          +

          [–]syklemil 0 points1 point  (0 children)

          +

          If you struggle with (complex) generics in types, i find it hard to believe that dynamic typing will make it easier, cuz now you have to keep all that context on your head,

          +
          + +

          That's the neat thing, you don't. Programmers who are used to untyped languages just don't reason around things the same way someone used to e.g. Rust or Haskell do. Shit, just talking about ADTs/"enums" and tuples to gophers is enough to make a lot of them confused, because they're not a part of the type system that they're used to.

          + +

          Instead they'll write tests and maybe some assertions. I suspect that in the extreme cases, that's actually the path of least resistance, as opposed to practically formally proving the behaviour through the type system.

          + +

          Programmers don't all think alike, just like how some have a more imperative mind and some a more expression-oriented mind.

          + +
          +

          Although, guess depends on the language. While the Rusts type system is not perfect, its expressive enough for me to be able to cram my logic into types 95% of the time

          +
          + +

          I also generally like Rust's type system, but that is on the more powerful side of the mainstream spectrum, and having lifetimes be part of the type system means you can describe some behaviour, like typestate, that's more likely to have wonky behaviour in GC languages.

          + +

          And I think most of us would still reach for some escape hatch before we wound up actually writing a signature like this one (via).

          +
          +

          [–]M4mb0 3 points4 points  (0 children)

          Because adding static types can be a huge effort and restrictions in the type system like lack of intersection types, dependent types and higher kinded types can prevent you from even statically expressing perfectly valid runtime code.

          + +

          I'd invite you to take a look at how complex annotations become for instance for python libs like numpy, scipy or pandas. Often functions need 10+ overloads to even statically express all their runtime capabilities.

          +
          +

          [–]ThePickleConnoisseur -1 points0 points  (0 children)

          Scripting or when you need more complex return values

          +
          +

          [–]ultrasneeze 6 points7 points  (0 children)

          Type theory has advanced a lot during this century, and it turns out you can keep the benefits of a dynamic language while taking advantage of some static typing goodies. The same has happened in the statically typed languages: type inference has advanced a lot so you end up with languages like Scala or Rust that have very powerful type systems that can be almost completely ignored when the language is used as a scripting tool.

          +
          +

          [–]Wonderful-Habit-139 5 points6 points  (1 child)

          The way tooling has improved (editors, LSPs, linters, type checkers), they provide a lot of benefits for writing correct code as well as helping you develop correct code faster before you even run it. It also makes programs easier to understand when you can see exactly what shape objects have, rather than having to rely on running programs and checking the object's types at runtime (e.g. responses from external REST APIs).

          +
          +

          [–]syklemil 1 point2 points  (0 children)

          Not just the software, but the hardware, too. If we'd chucked today's software on a machine from when various popular dynamic languages were being developed (as in, early-mid 90s), we'd be having a terrible time. Most of it probably wouldn't even run with the available memory in those machines.

          + +

          My early experiences with Java + Eclipse vs Perl + vim left me with the feeling that I could have a running, working program in Perl before Eclipse had even displayed everything I'd typed on the screen.

          +
          +

          [–]HiPhish 3 points4 points  (0 children)

          At least in the case of Elixir it's because of Erlang, and in the case of Erlang it's because statically typing Erlang is really hard. An Erlang program can change at any time because the runtime supports hot code reloading, so how do you express that in a static type system at compile time? The easy answer is you don't, you just live with dynamic typing. The hard answer is that you start a multi-year research project to get gradual typing added after the fact.

          + +

          To be fair, static typing in Erlang and Elixir is not actually as needed as in Python or JavaScript because you have pattern-matching built-in at the language level. You can see at a glance what shape your data needs to be in. Of course having that enforced by the compiler is better, but it is what it is.

          +
          +

          [–]radozok 3 points4 points  (0 children)

          There is a talk about that: https://youtu.be/Tml94je2edk

          +
          +

          [–]efvie 4 points5 points  (0 children)

          Why not? Both explicit and static typing are very useful in some cases, so being able to be explicit when you want to is great.

          +
          +

          [–]faiface 11 points12 points  (0 children)

          Of course! There are innumerable advantages to static typing: +- Preventing (many) runtime crashes +- Domain model / module documentation that doesn’t go obsolete and is exact +- Better IDE support / autocomplete

          +
          +

          [–]RogueDotSly 1 point2 points  (0 children)

          types are a blessing whether they're static gradual (fake)

          +
          +

          [–]JustBadPlaya 1 point2 points  (0 children)

          Elixir, Erlang and OTP in general are untyped/dynamically typed, and properly typing them at the time was not really possible, it took a good amount of research to make what Elixir is doing viable

          +
          +

          [–]Psychological-Rub505 5 points6 points  (0 children)

          It's because everyone who starts these kinds of new projects has the misconception that much of the existing code that looks like boilerplate is unnecessary and inefficient. Then the language gets used for something serious, the wheels fall off, and people realize that those seemingly unnecessary features were actually what kept the language sane. Voila, the dynamically typed language starts moving toward static typing.

          +
          +

          [–]Revolutionary_Ad6574 3 points4 points  (2 children)

          I'm glad I'm not the only one noticing this, I thought I was going crazy because no one is talking about it. But I don't see the problem. Dynamic typing was never a good idea, static typing has always been superior. It's normal for dynamic languages to have static envy.

          +
          +

          [–]ptoki 7 points8 points  (1 child)

          People talk about this but there is a huge crowd of half brains who think they know better and are loud about it.

          + +

          Same with nosql databases, local apps running like web (large parts of windows now), javascript ecosystem and few others.

          + +

          You come up with explanation why it is bad and the crowd will make sure you fell like you are crazy.

          + +

          BUT! Dynamic typing is not bad idea. It just should not be used for many things it is used for now.

          +
          +

          [–]Revolutionary_Ad6574 3 points4 points  (0 children)

          I agree. It has its uses. But for large, scalable projects static typing is the way to go.

          +
          +

          [–]f311a[S] 2 points3 points  (1 child)

          So what's bad about about catching runtime errors and crashes before they happen at runtime? They will happen if not found, unless it's a dead code. No one forces you to specify types.

          + +

          The examples in the blog post clearly demonstrates that, you can't divide string by a number. Even if a dynamic language can do that, it would be a bug in most of the cases.

          + +

          You can do this is JavaScript and it will silently give you a Nan, which most people won't even bother checking after division.

          +
          +

          [–]syklemil 0 points1 point  (0 children)

          +

          The examples in the blog post clearly demonstrates that, you can't divide string by a number. Even if a dynamic language can do that, it would be a bug in most of the cases.

          +
          + +

          It can also be the correct, intended behaviour, see e.g. this Perl program:

          + +
          print "divisor: ";
          +chomp( my $divisor = <> );
          +
          +print "dividend: ";
          +chomp( my $dividend = <> );
          +
          +say "result: " . $divisor / $dividend;
          +
          + +

          Perl has conversion rules for string -> number, which is something along the lines of "parse the string until you encounter a non-numeric character; 0 if the string starts with a non-numeric character". Its operators are also explicitly for either numbers (like /, +, ==) or strings (like ., eq).

          + +

          I'm not really sure about it being a bug in most cases either, the problem with implicit conversions is more that they're a PITA to locate and correct when they are bugs.

          + +

          Like when PHP, using a similar conversion rule, wound up comparing some SHAs as if they were numbers with some garbage string at the end, e.g. "0efoo…" == "0ebar…" because 0 == 0, and it doesn't have the ==/eq split that Perl does to give the programmer control over what sort of comparison will be done.

          + +

          And in cases like JS, if we get a NaN after division, we might have a 0/0 or we might have "hello"/"world", so it's a really weak error signal compared to what we get out of typechecking.

          +
          +

          [–]ajr901 15 points16 points  (7 children)

          A year ago or so I started toying around with Elixir and genuinely enjoyed it but eventually dropped it because I kept repeatedly thinking, “I really wish this was typed.”

          + +

          I’m really glad it’s heading in that direction.

          +
          +

          [–]moltonel 4 points5 points  (0 children)

          Maybe have a look at Gleam ? Same ecosystem, but statically typed from the start.

          +
          +

          [–]legoman25 -5 points-4 points  (5 children)

          Elixir was typed, before: dynamically typed. People really need to stop implying static typing is "having types" and dynamic typing is "no types"

          +
          +

          [–]bythenumbers10 1 point2 points  (0 children)

          You could always have the worst of both worlds: Static weak typing, like C++!!!

          + +

          Strong types are mandatory, sit down JS. +Gradual typing allows one-off scripts to develop into more deterministic code libraries as foundational assumptions settle into place. But while definitions are in flux, let them.

          +
          +

          [–]Atulin 0 points1 point  (0 children)

          +

          dynamically typed

          +
          + +

          Might as well have not been typed, then

          +
          +

          [–]TankorSmash 0 points1 point  (2 children)

          +

          People really need to stop implying static typing is "having types" and dynamic typing is "no types"

          +
          + +

          That's semantics. What people mean is dynamic types is not checked at 'compile' time

          +
          +

          [–]legoman25 -1 points0 points  (1 child)

          It's not semantics, its the definition of the terms.

          +
          +

          [–]QuickQuirk 3 points4 points  (3 children)

          Now we just need it in Erlang. +I still prefer erlang.

          +
          +

          [–]michalmuskala 1 point2 points  (2 children)

          We have it in erlang already for a while through eqwalizer

          +
          +

          [–]QuickQuirk 3 points4 points  (1 child)

          What they're doing here is the first step in a real type system in the elixir language itself with support in the compiler, rather than running another process on the side. I mean, there was dialyser before.

          + +

          The problem with the 'linter' style tools is that they're not mandatory. Even if you use it in your project, it breaks down when you pull in dependencies that don't.

          + +

          Since it's in the compiler, it means that over time, everything in the ecosystem will be using the type system.

          +
          +

          [–]Wonderful-Habit-139 1 point2 points  (0 children)

          Correct. Just wanted to give an upvote here, and mention that Python went through the same thing when they started having an actual typing module in the standard library, rather than relying on external tools with no direct interaction with the Python language.

          +
          +

          [–]PersonalDatabase31 4 points5 points  (0 children)

          Bare minimum

          +
          +

          [–]No-Hat-2797 -3 points-2 points  (0 children)

          gradual typing in elixir is a big deal for teams that want the flexibility of dynamic code

          +
          +

          π Rendered by PID 42 on reddit-service-r2-loggedout-7768c89db9-tbbvw at 2026-06-04 14:19:58.950569+00:00 running 9e1a20d country code: IT.

          diff --git a/crates/webclaw-core/testdata/reddit/pandas_34comments.html b/crates/webclaw-core/testdata/reddit/pandas_34comments.html new file mode 100644 index 0000000..3ce6d38 --- /dev/null +++ b/crates/webclaw-core/testdata/reddit/pandas_34comments.html @@ -0,0 +1,227 @@ +Pandas as a reason to learn Python, even if you’re not doing data science : programming
          this post was submitted on
          43 points (65% upvoted)

          programming

          /r/programming is a reddit for discussion and news about computer programming.

          + +
          + +

          Rules

          + +

          Refer to the rules page for more info.

          + +
            +
          1. No LLM-Written Content

          2. +
          3. AI-related posts must comply with the AI Policy

          4. +
          5. No Political Posts or Personal/Social Drama/Gossip

          6. +
          7. No Non-Programming/Generic LLM/Diffusion Content

          8. +
          9. No Product Promotion/"I Made This" Project Demo Posts

          10. +
          11. No Content Aggregators

          12. +
          13. No Surveys Or Job Postings

          14. +
          15. No Support Questions or AskReddit-Type Questions

          16. +
          17. No Meta Posts

          18. +
          19. No Images, Memes, Or Other Low Effort Posts

          20. +
          21. No Blogspam

          22. +
          23. No Extreme Beginner Content

          24. +
          25. Comments: No Bots

          26. +
          27. Comments: No Incivility

          28. +
          + +
          + +

          Info

          + + + +
          + +

          Related reddits

          + + + +

          Specific languages

          +
          +
          a community for
          ×
          all 34 comments

          [–]guepier 117 points118 points  (16 children)

          I disagree with this incredibly strongly. I use Python extensively, and I mostly like it, but whenever I need to do data analysis I bend over backwards to avoid Pandas. Mostly this means using R instead. Pandas is nowhere near the state of the art of data analytics. Even Python has better libraries (namely, Polars). Pandas is atrociously slow and has a terrible API. — And to head off potential responses: I have used Pandas extensively, and I am absolutely qualified to judge its merits compared to other solutions.

          + +

          So, no, I disagree with the premise: there are lots of reasons to learn Python, but Pandas is emphatically not one of them.

          +
          +

          [–]unski_ukuli 23 points24 points  (0 children)

          This. I vehemently hate how pandas like to throw stuff into the index. Polars is nice because it has no index, is fast and is logical in the api. Also, immutability is a nice addition.

          +
          +

          [–]ZirePhiinix 20 points21 points  (1 child)

          Pandas has really weird syntax that is nearly impossible to remember. There's randomly differently behaviors based on how the data is structured and I always have to Google like crazy to figure it out.

          +
          +

          [–]Breadinator 3 points4 points  (0 children)

          Thank you. The syntax is esoteric and drives me nuts sometimes. I sometimes have to guess WTH is happening by starting at the references made and working backwards on intent. Then pulling out my LLM assistant anyway and still asking it what the convoluted thing actually is.

          +
          +

          [–]florinp 24 points25 points  (0 children)

          Polars was written as a replacement for Pandas.

          +
          +

          [–]QuickQuirk 5 points6 points  (0 children)

          I've just started learning R, and am pleasantly surprised.

          + +

          I mean, I like Python, in general, but R matches my preferences more. +The things in Pandas that feel like they're bending over backwards to make work are a natural part of R itself. +And it's also more on the functional language side of things, which I appreciate.

          + +

          Helps that the tensorflow support seems pretty good these days too, for ML.

          +
          +

          [–]SV-97 17 points18 points  (9 children)

          AFAIK pandas has actually improved quite a bit with its most recent major release. I haven't checked it out yet since polars is just so good and I doubt that even this new version of pandas is as nice as polars; but I think it *is* substantially better than it used to be.

          + +

          And personally I'd take even old pandas over R any day. The dev experience with R is just atrocious.

          +
          +

          [–]huge_clock 2 points3 points  (0 children)

          Pandas keeps getting worse for the simple things you want to use it for. I used to be able to take a data frame and go df.sum() and get the sum of each numerical category. Now they same operation will concatenate every string object in the data frame.

          +
          +

          [–]guepier 12 points13 points  (7 children)

          +

          The dev experience with R is just atrocious

          +
          + +

          Yes, but the data analytics experience isn’t. R is miles ahead of Python in that space, and not just because of the libraries.

          +
          +

          [–]SV-97 6 points7 points  (6 children)

          If you only consider ecosystem size for your "data analytics experience" (and equate data analysis with mostly calculating statistics on some data): sure, for the most part that's true.

          + +

          However when taking a more holistic view (i.e. setting up a dev environment in the first place, data extraction and cleaning, actually getting data in and out of the system, data exploration, writing core analyses and debugging those, publishing, ...) this isn't really true in my opinion. In my experience you end up wasting so much time dealing with all those pain points and idiosyncrasies around R that it's altogether faster to use Python and just implement the things that don't already exist yourself (although this is of course not viable for everyone) or interop with other languages for those parts.

          + +

          And in particular when you don't do anything overly niche (as is really the case for what OP is talking about here) the python ecosystem is perfectly workable, and in some fields even miles ahead of R. For example for me a lot of data analysis involves optimization and some geometry processing / a bunch of maths. And for those python really has the strictly better ecosystem and larger community.

          +
          +

          [–][deleted]  (4 children)

          [deleted]

          +
          +

            [–]PillowFortressKing 1 point2 points  (0 children)

            Because doing iterative data analysis in a compiled language is even worse. Grabbing a Python package that's written in a high performance language gives you the best of both worlds.

            +
            +

            [–]youcangotohellgoto 4 points5 points  (2 children)

            +

            If someone is worried about speed why are they reaching for python at all?

            +
            + +

            Of course neither Pandas nor Polars are really "Python" - that's just the API to a C or Rust implementation.

            +
            +

            [–]guepier 1 point2 points  (0 children)

            I’m definitely not just considering the ecosystem size, I’m also considering ergonomics of the other aspects you mention. I agree that setting up a reproducible dev environment in R is frustrating. And “getting data in and out” of the system can be more convoluted than in Python, depending on the type of the data and storage and/or ingress/egress mechanism (e.g. JSON data, or data hosted on S3: botocore/s3fs is vastly better than anything R has to offer). But, honestly, in most cases it’s seamless.

            + +

            I disagree with the rest: data extraction, cleaning, exploration, core analysis and publishing are all things that R excels at. Troubleshooting is occasionally made harder due to the lack of any type safety, but type annotations are also much less helpful for data analysis than for most other software engineering applications. And interactive debugging (and, importantly, interactive exploration of data) works very well.

            + +

            And modern R IDE integration (be it via dedicated IDEs such as Positron or RStudio, or via plugins such as Nvim-R or ESS) provides best-in-class interactive data exploration REPLs, and these integrate very well with report generation via Quarto, which in many regards is also strictly superior to Jupyter (but if you prefer the latter, there is an R kernel for it).

            +
            +

            [–]ManySugar5156 2 points3 points  (0 children)

            same, pandas is usually the thing i avoid first. polars or r feels less annoying most of the time

            +
            +

            [–]HiPhish 26 points27 points  (2 children)

            Pandas has an atrociously un-pythonic API that makes me hate it to its core. I guess you have to use it if you are dealing with large amounts of data, but otherwise just give me regular lists and dicts. Pandas feels too much like "magic" where things just work until they don't. The documentation is pretty bad as well, it's as if you are meant to study the examples and then form a mental model of how the API works on your own. Oh, and good luck finding out what the data types are and dealing with Pandas's automatic type conversion.

            + +

            At least that was the case last time I had to use it. Maybe it has gotten better since, but I have no desire to come back.

            +
            +

            [–]squashed_fly_biscuit 7 points8 points  (1 child)

            Mainly because pandas is trying to be like R, which is a pretty weird language with strange norms written by and for scientists

            +
            +

            [–]WannaBeStatDev 2 points3 points  (0 children)

            At least R is good for science :)

            +
            +

            [–]billsil 31 points32 points  (0 children)

            I wrote a tool with straight numpy and it’s 50x faster than the pandas implemention. Pandas is severely overused and that’s before you start talking about polars, which is basically fast pandas.

            +
            +

            [–]RedEyed__ 4 points5 points  (0 children)

            pandaspolars

            +
            +

            [–]zemega 6 points7 points  (0 children)

            I would say, if you need a little operation here and there, pandas are fine. But if you are serious, use polars.

            +
            +

            [–]turbothy 2 points3 points  (0 children)

            If you don't know Pandas by now, count your lucky stars and pick up something actually useful instead.

            +
            +

            [–]lood9phee2Ri 1 point2 points  (7 children)

            I mean, I don't actually mind pandas particularly, but another thing you can do - if you want - is use sqlalchemy against a transient in-memory sqlite. Then use the same sqlalchemy stuff directly, as you would against real database. Faster than you might think (in-memory, duh).

            + +
            import sqlalchemy
            +sql_engine = sqlalchemy.create_engine('sqlite+pysqlite:///:memory:')
            +with sql_engine.connect() as sql_conn:
            +   sql_result = sql_conn.execute(sqlalchemy.text("SELECT 'Hello, World!';"))
            +   print(sql_result.all())
            +
            + +

            =>

            + +
            [('Hello, World!',)]
            +
            + +

            Anyway.

            +
            +

            [–]dannuic 0 points1 point  (0 children)

            I tend to reach for duckdb to create memory models in programs (and before that, I used sqlite). I've never needed to replace those implementations due to poor performance and it lets me get down to writing actual program logic faster. SQL, even limited implementations, are way better than trying to roll your own memory model every single time. Plus it's really easy to pickle state

            +
            +

            [–]huge_clock -3 points-2 points  (5 children)

            I would like to see a test. SQLite’s SQL implementation is incredibly limited and in-memory databases are notoriously slow and i have tested it.

            +
            +

            [–]elh0mbre 2 points3 points  (2 children)

            >  in-memory databases are notoriously slow

            + +

            wut? do you mean products that are specifically designed as in memory databases? Otherwise, "in memory" is as fast as a database gets.

            +
            +

            [–]huge_clock -2 points-1 points  (1 child)

            Single file “serverless” databases that run server side requests on the client machine. Notably SQLite but also MSAccess and DuckDB. Incredibly poor performance for business analytics. Might be fine for a small website with a limited number of users.

            +
            +

            [–]lood9phee2Ri 0 points1 point  (0 children)

            +

            Single file “serverless” databases

            +
            + +

            Are you sure you were testing in transient in-memory mode? "Single-file" kind of suggests you weren't, and are misunderstanding things - if you're hitting a file on persistent storage, of course it's slower than in-memory, even ssd/nvme is still slower than ram for now.

            + +

            https://sqlite.org/inmemorydb.html

            + +
            +

            An SQLite database is normally stored in a single ordinary disk file. However, in certain circumstances, the database might be stored in memory.

            + +

            The most common way to force an SQLite database to exist purely in memory is to open the database using the special filename ":memory:".

            +
            + +

            https://duckdb.org/docs/current/connect/overview#in-memory-database

            + +
            +

            DuckDB can operate in in-memory mode. In most clients, this can be activated by passing the special value :memory: as the database file

            +
            +
            +

            [–]Ralwus 3 points4 points  (1 child)

            Duckdb is incredibly fast. What have you tested that was slow?

            +
            +

            [–]lood9phee2Ri 0 points1 point  (0 children)

            Vaguely worth noting in context that despite it also having its own official python binding, there's also an SQLAlchemy driver for it

            + +

            https://duckdb.org/docs/current/clients/python/overview

            + +

            https://pypi.org/project/duckdb-sqlalchemy/

            + +

            =>

            + +
            sql_engine = create_engine("duckdb:///:memory:")
            +
            +
            +

            [–]elh0mbre 1 point2 points  (1 child)

            Not a reason to reach for python or pandas, IMO.

            + +

            I would reach for SQL, if it's all in one DB. If its in microservices, I'd either be looking to consolidate the data for reporting like this in a data warehouse, or stitch the data together myself in a service (given that dotnet is my daily driver, LINQ would replace pandas aptly for me) if I have a good reason for it to not come from a warehouse (low latency requirements, as one example).

            + +

            I still don't understand the fascination with microservices, nor do I understand a lot of people's aversion to learning/understanding SQL. /shrug

            +
            +

            [–]dannuic 1 point2 points  (0 children)

            SQL has an incredibly stable and sensible syntax, but still gets constant improvement under the hood (especially if you're using postgres). I have no idea why software developers are so afraid of just learning SQL to do anything with data, either.

            +
            +

            π Rendered by PID 608437 on reddit-service-r2-loggedout-7768c89db9-hndpc at 2026-06-04 14:19:58.253283+00:00 running 9e1a20d country code: IT.

            diff --git a/crates/webclaw-core/testdata/reddit/rust_selfpost_36comments.html b/crates/webclaw-core/testdata/reddit/rust_selfpost_36comments.html new file mode 100644 index 0000000..182e0de --- /dev/null +++ b/crates/webclaw-core/testdata/reddit/rust_selfpost_36comments.html @@ -0,0 +1,234 @@ +Learning Rust (for fun) because sick of AI : rust
            this post was submitted on
            89 points (84% upvoted)

            rust

            Please read The Rust Community Code of Conduct

            + +
            + +

            The Rust Programming Language

            + +

            A place for all things related to the Rust programming language—an open-source systems language that emphasizes performance, reliability, and productivity.

            + +
            + +

            Rules

            + +

            Observe our code of conduct

            + + + +

            Submissions must be on-topic

            + +
              +
            • Posts must reference Rust or relate to things using Rust. For content that does not, use a text post to explain its relevance.

            • +
            • Post titles should include useful context.

            • +
            • For Rust questions, use the stickied Q&A thread.

            • +
            • Arts-and-crafts posts are permitted on weekends.

            • +
            • No meta posts; message the mods instead.

            • +
            • Details

            • +
            + +

            Constructive criticism only

            + +
              +
            • Criticism is encouraged, though it must be constructive, useful and actionable.

            • +
            • If criticizing a project on GitHub, you may not link directly to the project's issue tracker. Please create a read-only mirror and link that instead.

            • +
            • Details

            • +
            + +

            Keep things in perspective

            + +
              +
            • A programming language is rarely worth getting worked up over.

            • +
            • No zealotry or fanaticism.

            • +
            • Be charitable in intent. Err on the side of giving others the benefit of the doubt.

            • +
            • Details

            • +
            + +

            No endless relitigation

            + +
              +
            • Avoid re-treading topics that have been long-settled or utterly exhausted.

            • +
            • Avoid bikeshedding.

            • +
            • This is not an official Rust forum, and cannot fulfill feature requests. Use the official venues for that.

            • +
            • Details

            • +
            + +

            No low-effort content

            + +
              +
            • No memes, image macros, etc.

            • +
            • Consider the existing content of the subreddit and whether your post fits in. Does it inspire thoughtful discussion?

            • +
            • Use properly formatted text to share code samples and error messages. Do not use images.

            • +
            • Submissions appearing to contain AI-generated content may be removed at moderator discretion.

            • +
            • Details

            • +
            + +
            + +

            Useful Links

            + +

            Megathreads

            + +

            Most links here will now take you to a search page listing posts with the relevant flair. The latest megathread for that flair should be the top result.

            + + + +

            Official Resources

            + + + +

            Learn Rust

            + + + +

            Discussion Platforms

            + + +
            +
            a community for
            ×
            all 36 comments

            [–]Active-Force2979 27 points28 points  (0 children)

            good luck

            +
            +

            [–]robe_and_wizard_hat 11 points12 points  (0 children)

            love to hear it. this is also how i learned rust. would recommend that you also create a tcp chat server. let the client be telnet. this will force you to deal with concurrency, ownership semantics, and IO. fwiw this is what i do when leaning a new language because it covers so many bases.

            +
            +

            [–]vascocosta 6 points7 points  (3 children)

            Understanding lifetimes was hard and something I kept delaying probably more than I should. It's the one thing I would focus more right from the beginning if I was starting now. It helps understanding a lot of errors specific to Rust much better.

            + +

            That said, a deep understanding of lifetimes will take time to sink in, so be patient.

            +
            +

            [–]bbkane_ 6 points7 points  (2 children)

            Rustlings has a few lifetime exercises and they also point to https://tfpk.github.io/lifetimekata/ for more. I'll be trying those soon myself

            +
            +

            [–]Informal-Baseball209[S] 1 point2 points  (0 children)

            Thanks a lot did not know about Rustlings, that is why I start with Book + advent of code instead of Book + Ruslings, looking forward to go through it.

            +
            +

            [–]vascocosta 0 points1 point  (0 children)

            This is a very good starting point.

            +
            +

            [–]Weaves87 4 points5 points  (0 children)

            Honestly the best way to learn it is to build something you genuinely need. There's no better motivator than needing the software to do something for you, to solve a problem for you. Find a problem that you currently have that needs fixing, create a CLI tool around it.

            + +

            I spent a lot of time initially learning Rust by working on code for little toy projects and definitely learned a lot in that process. But the real lessons didn't come until I tackled something that was providing me a lot of value. Obviously, not everyone has a project idea up their sleeve that they know will provide them with some value. So start with something dead simple.

            + +

            Rust is a considerably more demanding language than Python. There are many layers to it. Don't feel overwhelmed when you get to sections of the Rust book that talk about more advanced concepts. Sometimes you'll read about something and feel like "do I need to use this?" and oftentimes the answer is no, at least not yet. There are some features of Rust you may not even touch for a long time until you decide to do something much more complex (like concurrency, or lifetimes)

            +
            +

            [–]Cronos993 5 points6 points  (1 child)

            Same. I do have a decent bit of Go, C++ and Typescript background tho so for my first actually useful Rust project, I am thinking of creating an audio visualizer using webgpu compiled to wasm and usable in the browser

            +
            +

            [–]countsachot 0 points1 point  (0 children)

            Oh that sounds cool!

            +
            +

            [–]nick42d 2 points3 points  (0 children)

            Fellow IT project manager here! I'd simply say dig in and get started with a project to get a feel for it. Not sure I could say what's clicked though, I guess that it's important how you structure your program in Rust - but that comes with experience rather than any particular tips.

            +
            +

            [–]tikhiibhujiya 2 points3 points  (2 children)

            Since you're learning for fun rather than work, I'd actually avoid using AI too much while learning. Rust is one of the few languages where the struggle is part of the education

            +
            +

            [–]Informal-Baseball209[S] 0 points1 point  (0 children)

            Exactly, that’s my path. I google things, read the documentation, look through some repos. I want to have that joy of “it works” and then “why does it work?”

            +
            +

            [–]caothudanhgiay 2 points3 points  (0 children)

            use AI too much make my brain is doom

            +
            +

            [–]bbkane_ 1 point2 points  (0 children)

            Also learning Rust and rustlings has been a great way to exercise the stuff I'm reading in the Rust book. I highly recommend!

            + +

            I am keeping an AI terminal to the side to ask questions (what does this compilation error mean? Why can't I do it this way?) and make cheat sheets for me. That's helping me a lot too

            +
            +

            [–]Psionikus 1 point2 points  (0 children)

            Learn the mechanics of function calling on an abstract CPU. De-mystifies what lifetimes and many traits were developed to solve.

            +
            +

            [–]paulqq 1 point2 points  (0 children)

            Rust is hard. I asked myself some years ago this question. Do i want to do application or systems development? After having this clear and some initial struggle, i now write sideprojects exclusively in rust. Enjoy the journey

            +
            +

            [–]No-Region8878 1 point2 points  (0 children)

            good luck! I recently got into rust because of AI, I've made a few apps for my own use case all in rust

            +
            +

            [–]Chroiche 1 point2 points  (3 children)

            I'm very confused why you think AI can't do rust. IME it's much more useful for rust than Python because it gets blocked by the compiler more.

            +
            +

            [–]felotar 0 points1 point  (1 child)

            How will you verify if what is being build is actually fundamentally correct? Compiler won't stop illogical choices that slow your program down.

            +
            +

            [–]Chroiche 0 points1 point  (0 children)

            You won't, but you get much more guarantees than Python.

            +
            +

            [–]Informal-Baseball209[S] 0 points1 point  (0 children)

            I’m not saying that AI can’t do Rust. Hi Anthropic, nice PR with Bun completely rewritten from Zig to Rust by your AI Agents...

            + +

            I just feel that improving my Python skills for my use cases - automation and fun is pointless now. Automation is already good to go with just a few right prompts. I’ll probably still build most things in Python with help from AI, because it’s more efficient. But I’ll find “something” that I can write in Rust.

            + +

            I enjoy learning new things and using them in my work. By learning Rust and then building something with it, I can bring a bit of fun into my work, if its makes sense.

            +
            +

            [–]Appropriate-Pin2214 1 point2 points  (0 children)

            Rust is hard. I think AI helps.

            + +

            When you want to get to WASM, however, python and pytorch... Server-side... fine, but what about air-gapped?

            + +

            Not selling anything, but as a poc, here are two wasm files, in a browser, backed by Rust/ort and onnx that does redaction in your browser... https://www.rulesentry.io with GPU inference if your're setup correctly.

            + +

            Peace.

            +
            +

            [–]_w62_ 1 point2 points  (0 children)

            Try Programming Rust the 3rd edition will be available later this year while the 2nd edition worth a read.

            + +

            The first five chapters gives you a bird's eye view of the language. Then it comes ownership, traits, genetics etc. The only missing bit is async Rust.

            +
            +

            [–]tafia97300 1 point2 points  (1 child)

            i wouldn't recommend AOC to learn Rust, those problems are too small to really see Rust benefits. I strongly suggest reimplementing something you already know and that is complex enough (not in terms of performance necessarily but more in terms of architecture).

            + +

            Rust forces you to think differently, it puts the data in the center and everything gravitates around it (data can have only one owner, you need to move it around etc ...). This may seem "simple" to explain but it has profound implications and very often ends up simplifying a complex problem (do try not to reach for Arc/Rc/RefCell/Mutex).

            +
            +

            [–]Informal-Baseball209[S] 0 points1 point  (0 children)

            Arc/Rc/RefCell/Mutex — I had never heard of them until now. I read something about them, but I probably don’t want to hear about them again for at least another year. 😃

            + +

            Thanks for tips.

            +
            +

            [–]Suspicious_Word3776 0 points1 point  (0 children)

            Someone is working on the Keel language in Rust. I would learn it while it's young.

            +
            +

            [–]Plastic_Owl6706 0 points1 point  (0 children)

            Me core , well rust keeps clicking 

            +
            +

            [–]nazeehg 0 points1 point  (0 children)

            [ Removed by Reddit ]

            +
            +

            [–]Fancyness -3 points-2 points  (3 children)

            I don't get the resentment against AI. Its a gift for learning stuff. Every time i am stuck or don't understand why something does not compile, i get a perfect explanation. Its just good at syntax and syntax is a crucial part in learning a new programming language. Next building step are idiomatic solutions and at this AI is also great. So i don't get your problem. Its lame to do everything by yourself. If you have a flying car it doesn't make sense to walk. Embrace the future. Tokens = Revenue. Jensen said it himself on this conference the other day.

            +
            +

            [–]Informal-Baseball209[S] 0 points1 point  (2 children)

            Maybe the title of the thread is a little bit clickbait. I’m not against AI when it comes to efficiency, automation, or even learning.

            + +

            But as I said in the post, I feel like there is no longer much need for me to learn more Python or Bash, because the things I do with them are already handled pretty well by my AI setup. I’m even running OpenClaw on my home server with OpenAI and a few local models, and I use my agents every day.

            + +

            But it doesn’t give me the same fun from programming that I had a few years ago. To me, it feels like an AI black box. Yes, I configure it, and now it works for my niches, but mostly I just ask AI how to configure AI, run some experiments, and voilà.

            + +

            I wrote this in another comment: I like having those moments of “it works.” and then “Why does it work?” And because I’ve never worked with a low-level control language before, Rust is my choice.

            +
            +

            [–]Fancyness 0 points1 point  (1 child)

            I imagine it like using Linux and when having a problem copy pasting some commands that were suggested in online forums. Did I always want to know what every single command in its entire form means? Certainly not. It doesn’t matter as long as the machine just behaves as desired. 

            + +

            But there are Situations where you want to know exactly what is going on and where you just want to understand every single bit of what is happening so you can tweak it if desired. AI doesn’t take that away from you. It enables you to get rid of all the boilerplate that can eat you alive and to focus on the important parts of your project. AI has a very negative connotation between Software Developers because it is forced upon them by their empoyers and it drastically changes how you work: often Developers don’t create anymore but just doing code reviews of ai generated code which can be very frustrating. It’s this sense of not being in control of anything, that truly sucks. But objectively it doesn’t take anything away from the programmer, it just adds more possibilities. No one forces you to fight with bash commands. You still can do it, but you don’t need to. I think AI is empowering and I find it hillarious for being downvoted for this opinion. We live in the best times when it comes to programming. We have the best tools today that ever existed

            +
            +

            [–]Informal-Baseball209[S] 0 points1 point  (0 children)

            I totally agree. AI is super strong and helpful, as I already said. But I think you are missing my point of view about why Rust.

            + +

            I am not a developer; I just like to create things for my niches. Most of the time, it is faster with AI, and as you said, it almost does not matter how it works. But for me, learning Rust is just for the joy of learning. I do not need to ask AI what an error means, what the best way to do something is, or why, at least for now.

            + +

            For example, in my OpenClaw setup folder, I have a “Rust learning” folder and a few prompts that forbid my agent from giving me direct solutions. It can only give me hints based on my current level and progress through The Rust Book and code that I wrote. Even though I have this setup, I still prefer reading the docs on my own because I like doing it this way, and nothing pushes me to be faster or more efficient.

            + +

            I think Linus Torvalds said that now is a great time to be a developer because AI is so helpful. Having the knowledge of how to work with AI and how to write code is a huge benefit for many good developers. But the message “AI will take your job” is real. Companies are willing to pay cloud AI providers millions and push their employees to use AI no matter what, which does not help the situation.

            +
            +

            [–]labooner -1 points0 points  (1 child)

            I use Codecrafters. It’s very self driven. They tell you what you need to implement in this step, and you get it done. They have automated tests to prove your project works.

            + +

            Similar to you, I often struggle to come up with ideas on what to work on without getting bogged down in the specification, tests, etc. Codecrafters really lets you focus on the implementation.

            + +

            It’s a bit pricey, but take a look at the free courses to see what it’s like.

            +
            +

            [–]Solus161 1 point2 points  (0 children)

            Don't get why you get downvoted. I do Codecrafters too. The platform has its own limitations bit it still serve the purpose of learning by building.

            +
            +

            π Rendered by PID 694807 on reddit-service-r2-loggedout-7768c89db9-hndpc at 2026-06-04 15:24:07.705067+00:00 running 9e1a20d country code: IT.

            diff --git a/crates/webclaw-fetch/src/client.rs b/crates/webclaw-fetch/src/client.rs index f579f7c..2bfd8c5 100644 --- a/crates/webclaw-fetch/src/client.rs +++ b/crates/webclaw-fetch/src/client.rs @@ -160,9 +160,6 @@ impl Response { fn body(&self) -> &[u8] { &self.body } - fn is_success(&self) -> bool { - (200..300).contains(&self.status) - } fn text(&self) -> std::borrow::Cow<'_, str> { String::from_utf8_lossy(&self.body) @@ -299,32 +296,15 @@ impl FetchClient { /// when you need literal no-rescue behavior (e.g. inside the rescue /// logic itself to avoid recursion). pub async fn fetch_smart(&self, url: &str) -> Result { - // Reddit: the HTML page shows a verification interstitial for most - // client IPs, but appending `.json` returns the post + comment tree - // publicly. `parse_reddit_json` in downstream code knows how to read - // the result; here we just do the URL swap at the fetch layer. - if crate::reddit::is_reddit_url(url) && !url.ends_with(".json") { - let json_url = crate::reddit::json_url(url); - // Reddit's public .json API serves JSON to identifiable bot - // User-Agents and blocks browser UAs with a verification wall. - // Override our Chrome-profile UA for this specific call. - let ua = concat!( - "Webclaw/", - env!("CARGO_PKG_VERSION"), - " (+https://webclaw.io)" - ); - if let Ok(resp) = self - .fetch_with_headers(&json_url, &[("user-agent", ua)]) - .await - && resp.status == 200 - { - let first = resp.html.trim_start().as_bytes().first().copied(); - if matches!(first, Some(b'{') | Some(b'[')) { - return Ok(resp); - } - } - // If the .json fetch failed or returned HTML, fall through. - } + // Reddit: fetch old.reddit.com for stable server-rendered HTML. + // The JSON API is blocked; old.reddit.com works without JS or auth. + let owned; + let url = if crate::reddit::is_reddit_url(url) { + owned = crate::reddit::to_old_reddit_url(url); + owned.as_str() + } else { + url + }; let resp = self.fetch(url).await?; @@ -496,23 +476,16 @@ impl FetchClient { let parsed_url = crate::url_security::validate_public_http_url(url).await?; let url = parsed_url.as_str(); - // Reddit fallback: use their JSON API to get post + full comment tree. - if crate::reddit::is_reddit_url(url) { - let json_url = crate::reddit::json_url(url); - let json_url = crate::url_security::validate_public_http_url(&json_url).await?; - debug!("reddit detected, fetching {json_url}"); - - let client = self.pick_client(url); - let resp = client.get(json_url.as_str()).send().await?; - let response = Response::from_wreq(resp).await?; - if response.is_success() { - let bytes = response.body(); - match crate::reddit::parse_reddit_json(bytes, url) { - Ok(result) => return Ok(result), - Err(e) => warn!("reddit json fallback failed: {e}, falling back to HTML"), - } - } - } + // Reddit: rewrite to old.reddit.com for stable server-rendered HTML. + // webclaw-core's Reddit fast path then parses the thread structure. + let reddit_owned; + let url = if crate::reddit::is_reddit_url(url) { + reddit_owned = crate::reddit::to_old_reddit_url(url); + debug!("reddit: rewriting to {reddit_owned}"); + reddit_owned.as_str() + } else { + url + }; let start = Instant::now(); let client = self.pick_client(url); diff --git a/crates/webclaw-fetch/src/extractors/reddit.rs b/crates/webclaw-fetch/src/extractors/reddit.rs index 13cdc16..eba8ddb 100644 --- a/crates/webclaw-fetch/src/extractors/reddit.rs +++ b/crates/webclaw-fetch/src/extractors/reddit.rs @@ -1,12 +1,10 @@ -//! Reddit structured extractor — returns the full post + comment tree -//! as typed JSON via Reddit's `.json` API. +//! Reddit structured extractor — parses old.reddit.com HTML. //! -//! The same trick the markdown extractor in `crate::reddit` uses: -//! appending `.json` to any post URL returns the data the new SPA -//! frontend would load client-side. Zero antibot, zero JS rendering. +//! Fetches old.reddit.com (stable server-rendered HTML, no JS required) +//! and delegates parsing to `webclaw_core::reddit`. Returns a typed JSON +//! value with `{ url, post, comments }` structure. -use serde::Deserialize; -use serde_json::{Value, json}; +use serde_json::Value; use super::ExtractorInfo; use crate::error::FetchError; @@ -24,182 +22,27 @@ pub const INFO: ExtractorInfo = ExtractorInfo { }; pub fn matches(url: &str) -> bool { - let host = host_of(url); - let is_reddit_host = matches!( - host, - "reddit.com" | "www.reddit.com" | "old.reddit.com" | "np.reddit.com" | "new.reddit.com" - ); - is_reddit_host && url.contains("/comments/") + webclaw_core::reddit::is_reddit_url(url) && url.contains("/comments/") } pub async fn extract(client: &dyn Fetcher, url: &str) -> Result { - let json_url = build_json_url(url); - let resp = client.fetch(&json_url).await?; + let fetch_url = crate::reddit::to_old_reddit_url(url); + let resp = client.fetch(&fetch_url).await?; if resp.status != 200 { return Err(FetchError::Build(format!( - "reddit api returned status {}", + "reddit: unexpected status {}", resp.status ))); } - let listings: Vec = serde_json::from_str(&resp.html) - .map_err(|e| FetchError::BodyDecode(format!("reddit json parse: {e}")))?; + let thread = webclaw_core::reddit::try_extract_thread(&resp.html, url).ok_or_else(|| { + FetchError::BodyDecode( + "reddit: page structure not recognised — is this a thread URL?".into(), + ) + })?; - if listings.is_empty() { - return Err(FetchError::BodyDecode("reddit response empty".into())); - } - - // First listing = the post (single t3 child). - let post = listings - .first() - .and_then(|l| l.data.children.first()) - .filter(|t| t.kind == "t3") - .map(|t| post_json(&t.data)) - .unwrap_or(Value::Null); - - // Second listing = the comment tree. - let comments: Vec = listings - .get(1) - .map(|l| l.data.children.iter().filter_map(comment_json).collect()) - .unwrap_or_default(); - - Ok(json!({ - "url": url, - "post": post, - "comments": comments, - })) -} - -// --------------------------------------------------------------------------- -// JSON shapers -// --------------------------------------------------------------------------- - -fn post_json(d: &ThingData) -> Value { - json!({ - "id": d.id, - "title": d.title, - "author": d.author, - "subreddit": d.subreddit_name_prefixed, - "permalink": d.permalink.as_ref().map(|p| format!("https://www.reddit.com{p}")), - "url": d.url_overridden_by_dest, - "is_self": d.is_self, - "selftext": d.selftext, - "score": d.score, - "upvote_ratio": d.upvote_ratio, - "num_comments": d.num_comments, - "created_utc": d.created_utc, - "link_flair_text": d.link_flair_text, - "over_18": d.over_18, - "spoiler": d.spoiler, - "stickied": d.stickied, - "locked": d.locked, - }) -} - -/// Render a single comment + its reply tree. Returns `None` for non-t1 -/// kinds (the trailing `more` placeholder Reddit injects at depth limits). -fn comment_json(thing: &Thing) -> Option { - if thing.kind != "t1" { - return None; - } - let d = &thing.data; - let replies: Vec = match &d.replies { - Some(Replies::Listing(l)) => l.data.children.iter().filter_map(comment_json).collect(), - _ => Vec::new(), - }; - Some(json!({ - "id": d.id, - "author": d.author, - "body": d.body, - "score": d.score, - "created_utc": d.created_utc, - "is_submitter": d.is_submitter, - "stickied": d.stickied, - "depth": d.depth, - "permalink": d.permalink.as_ref().map(|p| format!("https://www.reddit.com{p}")), - "replies": replies, - })) -} - -// --------------------------------------------------------------------------- -// URL helpers -// --------------------------------------------------------------------------- - -fn host_of(url: &str) -> &str { - url.split("://") - .nth(1) - .unwrap_or(url) - .split('/') - .next() - .unwrap_or("") -} - -/// Build the Reddit JSON URL. We keep the original host (`www.reddit.com` -/// or `old.reddit.com` as the caller gave us). Routing through -/// `old.reddit.com` unconditionally looks appealing but that host has -/// stricter UA-based blocking than `www.reddit.com`, while the main -/// host accepts our Chrome-fingerprinted client fine. -fn build_json_url(url: &str) -> String { - let clean = url.split('?').next().unwrap_or(url).trim_end_matches('/'); - format!("{clean}.json?raw_json=1") -} - -// --------------------------------------------------------------------------- -// Reddit JSON types — only fields we render. Everything else is dropped. -// --------------------------------------------------------------------------- - -#[derive(Deserialize)] -struct Listing { - data: ListingData, -} - -#[derive(Deserialize)] -struct ListingData { - children: Vec, -} - -#[derive(Deserialize)] -struct Thing { - kind: String, - data: ThingData, -} - -#[derive(Deserialize, Default)] -struct ThingData { - // post (t3) - id: Option, - title: Option, - selftext: Option, - subreddit_name_prefixed: Option, - url_overridden_by_dest: Option, - is_self: Option, - upvote_ratio: Option, - num_comments: Option, - over_18: Option, - spoiler: Option, - stickied: Option, - locked: Option, - link_flair_text: Option, - - // comment (t1) - author: Option, - body: Option, - score: Option, - created_utc: Option, - is_submitter: Option, - depth: Option, - permalink: Option, - - // recursive - replies: Option, -} - -#[derive(Deserialize)] -#[serde(untagged)] -enum Replies { - Listing(Listing), - #[allow(dead_code)] - Empty(String), + serde_json::to_value(&thread) + .map_err(|e| FetchError::BodyDecode(format!("reddit: serialisation error: {e}"))) } #[cfg(test)] @@ -207,28 +50,17 @@ mod tests { use super::*; #[test] - fn matches_reddit_post_urls() { + fn matches_thread_urls() { assert!(matches( "https://www.reddit.com/r/rust/comments/abc123/some_title/" )); - assert!(matches( - "https://reddit.com/r/rust/comments/abc123/some_title" - )); assert!(matches("https://old.reddit.com/r/rust/comments/abc123/x/")); + assert!(matches("https://reddit.com/r/rust/comments/abc/x")); } #[test] - fn rejects_non_post_reddit_urls() { + fn rejects_listing_and_non_reddit() { assert!(!matches("https://www.reddit.com/r/rust")); - assert!(!matches("https://www.reddit.com/user/foo")); - assert!(!matches("https://example.com/r/rust/comments/x")); - } - - #[test] - fn json_url_appends_suffix_and_drops_query() { - assert_eq!( - build_json_url("https://www.reddit.com/r/rust/comments/abc/x/?utm=foo"), - "https://www.reddit.com/r/rust/comments/abc/x.json?raw_json=1" - ); + assert!(!matches("https://example.com/r/rust/comments/abc/x")); } } diff --git a/crates/webclaw-fetch/src/reddit.rs b/crates/webclaw-fetch/src/reddit.rs index 7676ccd..bfe4001 100644 --- a/crates/webclaw-fetch/src/reddit.rs +++ b/crates/webclaw-fetch/src/reddit.rs @@ -1,172 +1,56 @@ -/// Reddit JSON API fallback for extracting posts + comments without JS rendering. -/// -/// Reddit's new `shreddit` frontend only SSRs the post body — comments are -/// loaded client-side. Appending `.json` to any Reddit URL returns the full -/// comment tree as structured JSON, which we convert to clean markdown. -use serde::Deserialize; -use tracing::debug; -use webclaw_core::{Content, ExtractionResult, Metadata}; +//! Reddit URL helpers for the fetch layer. +//! +//! The JSON API (`*.json`) is blocked. We rewrite all Reddit hosts to +//! `old.reddit.com`, which serves stable server-rendered HTML that +//! `webclaw-core::reddit` parses directly. -/// Check if a URL points to a Reddit post/comment page. pub fn is_reddit_url(url: &str) -> bool { - let host = url - .split("://") - .nth(1) - .unwrap_or(url) - .split('/') - .next() - .unwrap_or(""); - matches!( - host, - "reddit.com" | "www.reddit.com" | "old.reddit.com" | "np.reddit.com" | "new.reddit.com" - ) + webclaw_core::reddit::is_reddit_url(url) } -/// Build the `.json` URL from a Reddit page URL. -pub fn json_url(url: &str) -> String { - let clean = url.split('?').next().unwrap_or(url).trim_end_matches('/'); - format!("{clean}.json") +/// Rewrite any Reddit host to old.reddit.com, preserving path and query. +pub fn to_old_reddit_url(url: &str) -> String { + let Some(scheme_end) = url.find("://") else { + return url.to_string(); + }; + let after = &url[scheme_end + 3..]; + let host_end = after.find(['/', '?', '#']).unwrap_or(after.len()); + let scheme = &url[..scheme_end + 3]; + let rest = &after[host_end..]; + format!("{scheme}old.reddit.com{rest}") } -/// Convert Reddit JSON API response into an ExtractionResult. -pub fn parse_reddit_json(json_bytes: &[u8], url: &str) -> Result { - let listings: Vec = - serde_json::from_slice(json_bytes).map_err(|e| format!("reddit json parse: {e}"))?; +#[cfg(test)] +mod tests { + use super::*; - let mut markdown = String::new(); - let mut title = None; - let mut author = None; - let mut subreddit = None; - - // First listing = the post itself - if let Some(post_listing) = listings.first() { - for child in &post_listing.data.children { - if child.kind == "t3" { - let d = &child.data; - title = d.title.clone(); - author = d.author.clone(); - subreddit = d.subreddit_name_prefixed.clone(); - - if let Some(ref t) = title { - markdown.push_str(&format!("# {t}\n\n")); - } - if let (Some(a), Some(sr)) = (&author, &subreddit) { - markdown.push_str(&format!("**u/{a}** in {sr}\n\n")); - } - if let Some(ref body) = d.selftext - && !body.is_empty() - { - markdown.push_str(body); - markdown.push_str("\n\n"); - } - if let Some(ref url_field) = d.url_overridden_by_dest - && !url_field.is_empty() - { - markdown.push_str(&format!("[Link]({url_field})\n\n")); - } - markdown.push_str("---\n\n"); - } - } + #[test] + fn rewrites_www_to_old() { + assert_eq!( + to_old_reddit_url("https://www.reddit.com/r/rust/comments/abc/x/"), + "https://old.reddit.com/r/rust/comments/abc/x/" + ); } - // Second listing = comment tree - if let Some(comment_listing) = listings.get(1) { - markdown.push_str("## Comments\n\n"); - for child in &comment_listing.data.children { - render_comment(child, 0, &mut markdown); - } + #[test] + fn rewrites_bare_to_old() { + assert_eq!( + to_old_reddit_url("https://reddit.com/r/rust/"), + "https://old.reddit.com/r/rust/" + ); } - let word_count = markdown.split_whitespace().count(); - debug!(word_count, "reddit json extracted"); - - Ok(ExtractionResult { - metadata: Metadata { - title, - description: None, - author, - published_date: None, - language: Some("en".into()), - url: Some(url.to_string()), - site_name: subreddit, - image: None, - favicon: None, - word_count, - }, - content: Content { - markdown, - plain_text: String::new(), - links: vec![], - images: vec![], - code_blocks: vec![], - raw_html: None, - }, - domain_data: None, - structured_data: vec![], - }) -} - -fn render_comment(thing: &Thing, depth: usize, out: &mut String) { - if thing.kind != "t1" { - return; + #[test] + fn preserves_old_reddit_unchanged() { + let url = "https://old.reddit.com/r/rust/comments/abc/x/?context=3"; + assert_eq!(to_old_reddit_url(url), url); } - let d = &thing.data; - let indent = " ".repeat(depth); - let author = d.author.as_deref().unwrap_or("[deleted]"); - let body = d.body.as_deref().unwrap_or("[removed]"); - let score = d.score.unwrap_or(0); - out.push_str(&format!("{indent}- **u/{author}** ({score} pts)\n")); - for line in body.lines() { - out.push_str(&format!("{indent} {line}\n")); - } - out.push('\n'); - - // Recurse into replies - if let Some(Replies::Listing(listing)) = &d.replies { - for child in &listing.data.children { - render_comment(child, depth + 1, out); - } + #[test] + fn preserves_query_and_hash() { + assert_eq!( + to_old_reddit_url("https://www.reddit.com/r/rust/?sort=top#anchor"), + "https://old.reddit.com/r/rust/?sort=top#anchor" + ); } } - -// --- Reddit JSON types (minimal) --- - -#[derive(Deserialize)] -struct Listing { - data: ListingData, -} - -#[derive(Deserialize)] -struct ListingData { - children: Vec, -} - -#[derive(Deserialize)] -struct Thing { - kind: String, - data: ThingData, -} - -#[derive(Deserialize)] -struct ThingData { - // Post fields (t3) - title: Option, - selftext: Option, - subreddit_name_prefixed: Option, - url_overridden_by_dest: Option, - // Comment fields (t1) - author: Option, - body: Option, - score: Option, - replies: Option, -} - -/// Reddit replies can be either a nested Listing or an empty string. -#[derive(Deserialize)] -#[serde(untagged)] -enum Replies { - Listing(Listing), - #[allow(dead_code)] - Empty(String), -} From f6000cba5216e8fd41c9b3ea957449951281909a Mon Sep 17 00:00:00 2001 From: Valerio Date: Thu, 4 Jun 2026 17:36:02 +0200 Subject: [PATCH 07/18] chore(release): v0.6.5 Reddit extraction moves from the dead .json API to old.reddit.com HTML. --- CHANGELOG.md | 7 +++++++ Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c489ac8..856cc11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to webclaw are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/). +## [0.6.5] — 2026-06-04 + +### Changed +- Reddit threads extract reliably again. The old anonymous JSON endpoint is no longer available, so webclaw now reads old.reddit.com directly without an API key or JavaScript. You get the post plus the full nested comment tree, with authors, scores, timestamps, and reply nesting preserved. Comment text keeps its links and code blocks, hidden scores are reported as unknown rather than zero, and deleted comments stay in place so their replies aren't lost. + +--- + ## [0.6.4] — 2026-05-19 ### Added diff --git a/Cargo.lock b/Cargo.lock index 125e3e4..78e7e77 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3219,7 +3219,7 @@ dependencies = [ [[package]] name = "webclaw-cli" -version = "0.6.4" +version = "0.6.5" dependencies = [ "clap", "dotenvy", @@ -3240,7 +3240,7 @@ dependencies = [ [[package]] name = "webclaw-core" -version = "0.6.4" +version = "0.6.5" dependencies = [ "ego-tree", "once_cell", @@ -3258,7 +3258,7 @@ dependencies = [ [[package]] name = "webclaw-fetch" -version = "0.6.4" +version = "0.6.5" dependencies = [ "async-trait", "bytes", @@ -3284,7 +3284,7 @@ dependencies = [ [[package]] name = "webclaw-llm" -version = "0.6.4" +version = "0.6.5" dependencies = [ "async-trait", "reqwest", @@ -3297,7 +3297,7 @@ dependencies = [ [[package]] name = "webclaw-mcp" -version = "0.6.4" +version = "0.6.5" dependencies = [ "dirs", "dotenvy", @@ -3317,7 +3317,7 @@ dependencies = [ [[package]] name = "webclaw-pdf" -version = "0.6.4" +version = "0.6.5" dependencies = [ "pdf-extract", "thiserror", @@ -3326,7 +3326,7 @@ dependencies = [ [[package]] name = "webclaw-server" -version = "0.6.4" +version = "0.6.5" dependencies = [ "anyhow", "axum", diff --git a/Cargo.toml b/Cargo.toml index 43786dd..124c620 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["crates/*"] [workspace.package] -version = "0.6.4" +version = "0.6.5" edition = "2024" license = "AGPL-3.0" repository = "https://github.com/0xMassi/webclaw" From 58d274ffe9e89105957c318c9e4660f0dbfccbbc Mon Sep 17 00:00:00 2001 From: Valerio Date: Thu, 4 Jun 2026 17:48:17 +0200 Subject: [PATCH 08/18] style(reddit): use Option::zip to satisfy clippy CI runs clippy with `-D warnings` on a newer toolchain that flags `manual_option_zip`; collapse the and_then/map pair into Option::zip. --- crates/webclaw-core/src/reddit.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/webclaw-core/src/reddit.rs b/crates/webclaw-core/src/reddit.rs index ab1d394..5f6c53e 100644 --- a/crates/webclaw-core/src/reddit.rs +++ b/crates/webclaw-core/src/reddit.rs @@ -422,7 +422,7 @@ fn parse_one_comment(c: ElementRef, op: &str, depth: usize) -> Option Date: Thu, 4 Jun 2026 17:56:24 +0200 Subject: [PATCH 09/18] docs(contributing): describe in-process wreq TLS, drop stale patched-deps The TLS layer moved to wreq (BoringSSL) in-process; there is no longer a [patch.crates-io] section or a separate TLS fork. Update the architecture tree and crate-boundary notes to match. --- CONTRIBUTING.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3358e48..b046212 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -91,18 +91,16 @@ Body is optional but encouraged for non-trivial changes. ``` webclaw (this repo) -├── crates/ -│ ├── webclaw-core/ # Pure extraction engine (HTML → markdown/json/text) -│ ├── webclaw-fetch/ # HTTP client + crawler + sitemap + batch -│ ├── webclaw-llm/ # LLM provider chain (Ollama → OpenAI → Anthropic) -│ ├── webclaw-pdf/ # PDF text extraction -│ ├── webclaw-cli/ # CLI binary -│ └── webclaw-mcp/ # MCP server binary -│ -└── [patch.crates-io] # Points to webclaw-tls for TLS fingerprinting +└── crates/ + ├── webclaw-core/ # Pure extraction engine (HTML → markdown/json/text) + ├── webclaw-fetch/ # HTTP client (wreq/BoringSSL) + crawler + sitemap + batch + ├── webclaw-llm/ # LLM provider chain (Ollama → OpenAI → Anthropic) + ├── webclaw-pdf/ # PDF text extraction + ├── webclaw-cli/ # CLI binary + └── webclaw-mcp/ # MCP server binary ``` -TLS fingerprinting lives in a separate repo: [webclaw-tls](https://github.com/0xMassi/webclaw-tls). The `[patch.crates-io]` section in `Cargo.toml` overrides rustls, h2, hyper, hyper-util, and reqwest with our patched forks for browser-grade JA4 + HTTP/2 Akamai fingerprinting. +TLS fingerprinting is handled in-process by [wreq](https://crates.io/crates/wreq) (BoringSSL), so `webclaw-fetch` impersonates real browser TLS directly. There are no `[patch.crates-io]` forks or external TLS dependencies. ## Crate Boundaries @@ -111,7 +109,7 @@ Changes that cross crate boundaries need extra care: | Crate | Network? | Key constraint | |-------|----------|----------------| | webclaw-core | No | Zero network deps, WASM-safe | -| webclaw-fetch | Yes (webclaw-http) | Uses [webclaw-tls](https://github.com/0xMassi/webclaw-tls) for TLS fingerprinting | +| webclaw-fetch | Yes (wreq) | Browser TLS impersonation via wreq (BoringSSL); no patched deps | | webclaw-llm | Yes (reqwest) | Plain reqwest — LLM APIs don't need TLS fingerprinting | | webclaw-pdf | No | Minimal, wraps pdf-extract | | webclaw-cli | Yes | Depends on all above | From a1abf625a0f142c28de2d94b901ece10632a0917 Mon Sep 17 00:00:00 2001 From: Valerio Date: Thu, 4 Jun 2026 19:33:31 +0200 Subject: [PATCH 10/18] build(deps): pin wreq/wreq-util to exact rc versions wreq is a release candidate with no API stability between rc.N builds (rc.29 broke the TLS + Response API). `cargo install` and the release workflow both ignore Cargo.lock and were re-resolving to rc.29, breaking the build. An exact `=6.0.0-rc.28` / `=3.0.0-rc.10` pin keeps every build path deterministic until wreq reaches a stable release. --- crates/webclaw-fetch/Cargo.toml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/webclaw-fetch/Cargo.toml b/crates/webclaw-fetch/Cargo.toml index 3bf5401..de3036b 100644 --- a/crates/webclaw-fetch/Cargo.toml +++ b/crates/webclaw-fetch/Cargo.toml @@ -13,8 +13,12 @@ thiserror = { workspace = true } tracing = { workspace = true } tokio = { workspace = true } async-trait = "0.1" -wreq = { version = "6.0.0-rc.28", features = ["cookies", "gzip", "brotli", "zstd", "deflate"] } -wreq-util = "3.0.0-rc.10" +# Pinned to exact pre-release versions: wreq/wreq-util are release candidates +# with no semver stability between rc.N builds (rc.29 broke the TLS + Response +# API). An exact pin keeps `cargo build`, `cargo install` (which ignores +# Cargo.lock), and the release workflow all on the version that compiles. +wreq = { version = "=6.0.0-rc.28", features = ["cookies", "gzip", "brotli", "zstd", "deflate"] } +wreq-util = "=3.0.0-rc.10" http = "1" bytes = "1" url = "2" From 985a90b083e760acb3ee8d5ded5daa3c21fe1c35 Mon Sep 17 00:00:00 2001 From: devnen Date: Sun, 24 May 2026 00:24:51 +0200 Subject: [PATCH 11/18] feat(fetch): periodic progress stderr line on slow fetches Webclaw's default -t timeout is 30s; slow sites previously sat silently with no feedback. Now during a fetch, every 10s of elapsed time webclaw writes one line to stderr: # webclaw: still fetching (Ns) Fetches completing in under 10s emit nothing (the timer never fires). Stdout output is untouched - pure feedback signal on stderr. No timeout change. No new flags. Default behavior is augmented at stderr only. Implemented via tokio::select! between the fetch future and a tokio::time::interval. Latency cost: a single tokio task spawn and a 10s tick - microseconds on the fast path. 10 new tests in webclaw-fetch::progress::tests (none ignored; the slow-future test uses a 50ms test interval to keep cargo test fast). Workspace total 710 -> 720. (cherry picked from commit 06f065cb08dbe24a5b5abd612bfccd96728f7b6e) --- crates/webclaw-cli/src/main.rs | 7 +- crates/webclaw-fetch/src/lib.rs | 2 + crates/webclaw-fetch/src/progress.rs | 292 +++++++++++++++++++++++++++ 3 files changed, 299 insertions(+), 2 deletions(-) create mode 100644 crates/webclaw-fetch/src/progress.rs diff --git a/crates/webclaw-cli/src/main.rs b/crates/webclaw-cli/src/main.rs index 1348824..821cbc8 100644 --- a/crates/webclaw-cli/src/main.rs +++ b/crates/webclaw-cli/src/main.rs @@ -859,8 +859,11 @@ async fn fetch_and_extract(cli: &Cli) -> Result { let client = FetchClient::new(build_fetch_config(cli)).map_err(|e| format!("client error: {e}"))?; let options = build_extraction_options(cli); - let result = client - .fetch_and_extract_with_options(url, &options) + // M13: wrap with periodic stderr progress emitter. Fast fetches see + // zero emissions (timer never fires in <10s); slow fetches get a + // line every 10s of elapsed time so the CLI doesn't appear hung. + let fetch_fut = client.fetch_and_extract_with_options(url, &options); + let result = webclaw_fetch::with_progress(url, fetch_fut) .await .map_err(|e| format!("fetch error: {e}"))?; diff --git a/crates/webclaw-fetch/src/lib.rs b/crates/webclaw-fetch/src/lib.rs index 029a7b6..5e687ed 100644 --- a/crates/webclaw-fetch/src/lib.rs +++ b/crates/webclaw-fetch/src/lib.rs @@ -11,6 +11,7 @@ pub mod extractors; pub mod fetcher; pub mod linkedin; pub mod locale; +pub mod progress; pub mod proxy; pub mod reddit; pub mod sitemap; @@ -24,6 +25,7 @@ pub use error::FetchError; pub use fetcher::Fetcher; pub use http::HeaderMap; pub use locale::{accept_language_for_tld, accept_language_for_url}; +pub use progress::{with_progress, PROGRESS_INTERVAL}; pub use proxy::{parse_proxy_file, parse_proxy_line}; pub use sitemap::SitemapEntry; pub use webclaw_pdf::PdfMode; diff --git a/crates/webclaw-fetch/src/progress.rs b/crates/webclaw-fetch/src/progress.rs new file mode 100644 index 0000000..223f66d --- /dev/null +++ b/crates/webclaw-fetch/src/progress.rs @@ -0,0 +1,292 @@ +//! Periodic stderr progress line emitter for slow fetches (M13). +//! +//! Wraps any async fetch future with a `tokio::select!` against a +//! `tokio::time::interval`. Every `PROGRESS_INTERVAL` (default 10s) of +//! elapsed time, emits one line to STDERR of the form: +//! +//! ```text +//! # webclaw: still fetching (Ns) +//! ``` +//! +//! Fetches completing in under `PROGRESS_INTERVAL` emit zero lines (the +//! timer never fires). Stdout is untouched. +//! +//! The URL is truncated to at most 80 chars (head + `...` + tail) so +//! pathological query strings don't blow up the stderr line. Truncation +//! is char-boundary safe (operates on `chars`, not bytes). + +use std::future::Future; +use std::time::Duration; + +use tokio::time::{interval, Instant, MissedTickBehavior}; + +/// Default progress emission interval. The first tick fires at +10s +/// elapsed; subsequent ticks at +20s, +30s, etc. +pub const PROGRESS_INTERVAL: Duration = Duration::from_secs(10); + +/// Maximum URL length in the progress line. Longer URLs are truncated +/// `head...tail` style. +const MAX_URL_LEN: usize = 80; + +/// Wrap a fetch future with the default 10s progress emitter. Writes +/// progress lines to STDERR via `eprintln!`. Returns the inner future's +/// result unchanged. +pub async fn with_progress(url: &str, future: F) -> T +where + F: Future, +{ + with_progress_writer(url, future, PROGRESS_INTERVAL, |s| eprintln!("{s}")).await +} + +/// Test-friendly variant of [`with_progress`]: caller supplies the tick +/// interval (so tests can use a 50ms period instead of 10s) and a +/// writer closure (so tests can capture emitted lines without touching +/// real stderr). +/// +/// Production code uses [`with_progress`] which delegates here with +/// [`PROGRESS_INTERVAL`] and an `eprintln!` writer. +pub async fn with_progress_writer( + url: &str, + future: F, + period: Duration, + mut writer: W, +) -> T +where + F: Future, + W: FnMut(String), +{ + let start = Instant::now(); + let mut ticker = interval(period); + // First tick of `tokio::time::interval(period)` fires *immediately* + // (at construction time). We don't want a t=0 emit — consume that + // first tick before entering the select loop. Subsequent ticks fire + // at `start + period`, `start + 2*period`, ... + ticker.set_missed_tick_behavior(MissedTickBehavior::Skip); + ticker.tick().await; + + tokio::pin!(future); + + loop { + tokio::select! { + // Bias toward the future — if both are ready (rare), prefer + // returning the result over emitting a final tick. + biased; + result = &mut future => { + return result; + } + _ = ticker.tick() => { + let elapsed = start.elapsed(); + writer(format_progress_line(url, elapsed)); + } + } + } +} + +/// Build the progress line: `# webclaw: still fetching (Ns)`. +/// URL is truncated via [`truncate_url`] to [`MAX_URL_LEN`] chars. +/// Elapsed is rounded to whole seconds (10, 20, 30, ...). +pub(crate) fn format_progress_line(url: &str, elapsed: Duration) -> String { + let truncated = truncate_url(url, MAX_URL_LEN); + let secs = elapsed.as_secs(); + format!("# webclaw: still fetching {truncated} ({secs}s)") +} + +/// Truncate `url` to at most `max` chars, using `head...tail` shape +/// when truncation is needed. Char-boundary safe (operates on `chars`). +pub(crate) fn truncate_url(url: &str, max: usize) -> String { + let total_chars = url.chars().count(); + if total_chars <= max { + return url.to_string(); + } + // Reserve 3 chars for "..." and split the remainder ~70/30 between + // head (path-side) and tail (query-side). + let avail = max.saturating_sub(3); + let head_chars = avail.saturating_sub(17); + let tail_chars = 17; + let head: String = url.chars().take(head_chars).collect(); + let tail: String = url + .chars() + .rev() + .take(tail_chars) + .collect::>() + .into_iter() + .rev() + .collect(); + format!("{head}...{tail}") +} + +#[cfg(test)] +mod tests { + use super::*; + use std::sync::{Arc, Mutex}; + + /// Collect emitted lines into a `Vec` via a captured writer. + fn capture() -> (Arc>>, impl FnMut(String)) { + let sink: Arc>> = Arc::new(Mutex::new(Vec::new())); + let sink_clone = Arc::clone(&sink); + let writer = move |s: String| { + sink_clone.lock().unwrap().push(s); + }; + (sink, writer) + } + + #[tokio::test] + async fn test_progress_emits_after_interval_elapsed() { + let (sink, writer) = capture(); + // 250ms future, 50ms interval — expect ~4-5 ticks before resolution. + let fut = tokio::time::sleep(Duration::from_millis(250)); + with_progress_writer( + "https://example.com/slow", + async { + fut.await; + 42_i32 + }, + Duration::from_millis(50), + writer, + ) + .await; + let lines = sink.lock().unwrap(); + assert!( + !lines.is_empty(), + "expected >=1 progress line; got {} ({:?})", + lines.len(), + *lines + ); + for line in lines.iter() { + assert!( + line.starts_with("# webclaw: still fetching"), + "line shape wrong: {line:?}" + ); + assert!( + line.contains("https://example.com/slow"), + "url missing from line: {line:?}" + ); + } + } + + #[tokio::test] + async fn test_progress_silent_on_fast_future() { + let (sink, writer) = capture(); + // 10ms future, 1s interval — zero ticks expected. + let result = with_progress_writer( + "https://example.com/fast", + async { + tokio::time::sleep(Duration::from_millis(10)).await; + "done" + }, + Duration::from_secs(1), + writer, + ) + .await; + assert_eq!(result, "done"); + let lines = sink.lock().unwrap(); + assert_eq!( + lines.len(), + 0, + "expected 0 progress lines on fast future; got {:?}", + *lines + ); + } + + #[tokio::test] + async fn test_progress_line_includes_url() { + let (sink, writer) = capture(); + let target_url = "https://news.ycombinator.com/item?id=12345"; + with_progress_writer( + target_url, + async { + tokio::time::sleep(Duration::from_millis(150)).await; + }, + Duration::from_millis(50), + writer, + ) + .await; + let lines = sink.lock().unwrap(); + assert!(!lines.is_empty(), "expected progress lines"); + assert!( + lines.iter().all(|l| l.contains(target_url)), + "every line should contain the URL: {:?}", + *lines + ); + } + + #[tokio::test] + async fn test_progress_returns_inner_result_ok() { + let (_sink, writer) = capture(); + let r: Result = with_progress_writer( + "https://example.com/", + async { Ok::(7) }, + Duration::from_secs(1), + writer, + ) + .await; + assert_eq!(r, Ok(7)); + } + + #[tokio::test] + async fn test_progress_propagates_error() { + let (_sink, writer) = capture(); + let r: Result = with_progress_writer( + "https://example.com/", + async { Err::("boom".to_string()) }, + Duration::from_secs(1), + writer, + ) + .await; + assert_eq!(r, Err("boom".to_string())); + } + + #[test] + fn test_truncate_url_short_passthrough() { + let url = "https://example.com/"; + assert_eq!(truncate_url(url, 80), url); + } + + #[test] + fn test_truncate_url_long_head_dots_tail() { + let url = "https://www.example.com/very/long/path/segments/with/lots/of/text/and/then?q=some_long_query_string_value_here&other=more&another=thing"; + let truncated = truncate_url(url, 80); + assert!( + truncated.chars().count() <= 80, + "truncated length {} > 80: {truncated:?}", + truncated.chars().count() + ); + assert!( + truncated.contains("..."), + "expected '...' marker in truncated url: {truncated:?}" + ); + assert!( + truncated.starts_with("https://www.example.com/"), + "truncated should start with the URL head: {truncated:?}" + ); + } + + #[test] + fn test_truncate_url_unicode_safe() { + // Cyrillic URL longer than 80 chars — must not panic on a + // mid-codepoint split. + let url = "https://example.com/путь/к/очень/длинной/странице/с/большим/количеством/кириллицы/тут"; + let truncated = truncate_url(url, 80); + assert!(truncated.is_char_boundary(truncated.len())); + // Roundtrip through chars to confirm valid UTF-8 throughout. + let _: String = truncated.chars().collect(); + } + + #[test] + fn test_format_progress_line_shape() { + let line = format_progress_line("https://example.com/", Duration::from_secs(10)); + assert_eq!( + line, + "# webclaw: still fetching https://example.com/ (10s)" + ); + } + + #[test] + fn test_format_progress_line_seconds_only() { + // Sub-second elapsed rounds to 0s, not fractions. (In practice + // the first tick fires at +PROGRESS_INTERVAL so this is mostly + // a defensive shape assertion.) + let line = format_progress_line("https://x/", Duration::from_millis(9_500)); + assert!(line.ends_with("(9s)"), "line should end with `(9s)`: {line:?}"); + } +} From 519dfb7864ebc2266c647dc73a680eb53ee7af77 Mon Sep 17 00:00:00 2001 From: devnen Date: Sun, 24 May 2026 08:18:38 +0200 Subject: [PATCH 12/18] feat(cli): URL truncation warning + --url-encoded flag When bash splits a URL at & or ? (a common foot-gun), webclaw receives only the truncated prefix and silently fetches the wrong page. Per issue #6: 1. Heuristic warning: if the URL ends with '&' or contains '?' with no '=' after, emit a stderr warning before fetching: # webclaw: warning: URL looks truncated (ends with '&' or '?'); did the shell split it? Quote the URL or use --url-encoded. 2. New flag --url-encoded: parallel input that asserts the user has handled escaping. Suppresses the truncation warning since intent is explicit. Fetch proceeds in both cases; this is informational only. 4 new tests in webclaw-cli. Workspace 720 -> 724. (cherry picked from commit 4ef27fcd331d59b5705651128c150c13bd49e071) --- crates/webclaw-cli/src/main.rs | 94 ++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/crates/webclaw-cli/src/main.rs b/crates/webclaw-cli/src/main.rs index 821cbc8..8f818dd 100644 --- a/crates/webclaw-cli/src/main.rs +++ b/crates/webclaw-cli/src/main.rs @@ -166,6 +166,14 @@ struct Cli { #[arg(long)] urls_file: Option, + /// Assert that the URL has been handled for shell escaping. Suppresses + /// the URL-truncation stderr warning. Use when the URL is intentionally + /// passed with an empty/keyless query (e.g. legacy CGI) or when a + /// trailing `&` is genuinely part of the URL. The URL is fetched as-is + /// (no extra normalization beyond the standard scheme prepend). + #[arg(long)] + url_encoded: bool, + /// Output format (markdown, json, text, llm, html) #[arg(short, long, default_value = "markdown")] format: OutputFormat, @@ -591,6 +599,31 @@ fn normalize_url(url: &str) -> String { } } +/// M14: detect URLs that look truncated by the shell (e.g. an unquoted URL +/// that the shell split on `&` or `?`). Returns `true` when: +/// - the URL ends with `&` (a trailing param separator suggests the next +/// param was lopped off), OR +/// - the URL contains `?` but no `=` after it (a query with bare keys is +/// rare; usually a real query has at least one `=`). +/// +/// Informational only — caller decides whether to warn / abort. This is a +/// heuristic; legitimate URLs with bare-key queries will trigger a false +/// positive (suppressible via `--url-encoded`). +fn looks_truncated(url: &str) -> bool { + let trimmed = url.trim(); + if trimmed.ends_with('&') { + return true; + } + if let Some((_before, after_q)) = trimmed.split_once('?') { + // Trim a trailing fragment so `?#section` etc. doesn't mask the check. + let query_part = after_q.split('#').next().unwrap_or(after_q); + if !query_part.contains('=') { + return true; + } + } + false +} + /// Derive a filename from a URL for `--output-dir`. /// /// Strips the scheme/host, maps the path to a filesystem path, and appends @@ -826,6 +859,14 @@ async fn fetch_and_extract(cli: &Cli) -> Result { .urls .first() .ok_or("no input provided -- pass a URL, --file, or --stdin")?; + // M14: warn when the URL looks like the shell split it on `&` or `?`. + // Informational only — fetch still proceeds. Suppressed by --url-encoded, + // which asserts the caller has handled escaping intentionally. + if !cli.url_encoded && looks_truncated(raw_url) { + eprintln!( + "# webclaw: warning: URL looks truncated (ends with '&' or '?'); did the shell split it? Quote the URL or use --url-encoded." + ); + } let url = normalize_url(raw_url); let url = url.as_str(); @@ -2882,6 +2923,59 @@ mod tests { let _ = std::fs::remove_dir_all(&dir); } + // M14: URL truncation heuristic tests. + #[test] + fn looks_truncated_fires_on_trailing_ampersand() { + // The most common shell-split shape: `?a=1&` lost the `b=2`. + assert!(looks_truncated("https://example.com/?a=1&")); + assert!(looks_truncated("https://example.com/path?key=val&")); + } + + #[test] + fn looks_truncated_fires_on_query_with_no_equals() { + // `?foo` with no `=` is a strong signal the shell ate the `=value`. + assert!(looks_truncated("https://example.com/?foo")); + // Bare `?` (empty query) also looks like the shell ate the whole pair. + assert!(looks_truncated("https://example.com/?")); + // Same with a fragment after — strip fragment before checking. + assert!(looks_truncated("https://example.com/?foo#section")); + } + + #[test] + fn looks_truncated_silent_on_clean_url() { + // Normal URLs (no query, or query with at least one `=`) are clean. + assert!(!looks_truncated("https://example.com/")); + assert!(!looks_truncated("https://example.com/path/to/page")); + assert!(!looks_truncated("https://example.com/?a=1")); + assert!(!looks_truncated("https://example.com/?a=1&b=2")); + assert!(!looks_truncated("https://example.com/?a=1&b=2&c=hello%20world")); + // Hash anchors without a query are clean. + assert!(!looks_truncated("https://example.com/page#section")); + } + + #[test] + fn looks_truncated_silent_with_url_encoded_assertion_modeled_via_skip() { + // The --url-encoded flag suppresses the warning at the call site + // (main.rs gates the eprintln! behind `if !cli.url_encoded`). + // This test models the gate logic directly: when --url-encoded is set, + // the warning branch is never entered, even on a truncated-looking URL. + let url = "https://example.com/?a=1&"; + let url_encoded_flag = true; + let should_warn = !url_encoded_flag && looks_truncated(url); + assert!( + !should_warn, + "--url-encoded must suppress the warning even on URL ending with &" + ); + + // Sanity: same URL without --url-encoded does warn. + let url_encoded_flag = false; + let should_warn = !url_encoded_flag && looks_truncated(url); + assert!( + should_warn, + "without --url-encoded, the warning should fire on URL ending with &" + ); + } + #[test] fn research_slug_truncation_is_char_safe() { // Multibyte query: byte-slicing at 50 would panic mid-codepoint. From 84a0f9774d4176ed243f64c89da65a3e8c09eaac Mon Sep 17 00:00:00 2001 From: Valerio Date: Tue, 9 Jun 2026 10:56:51 +0200 Subject: [PATCH 13/18] style: apply rustfmt to salvaged #49 commits --- crates/webclaw-cli/src/main.rs | 4 +++- crates/webclaw-fetch/src/lib.rs | 2 +- crates/webclaw-fetch/src/progress.rs | 15 ++++++++------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/crates/webclaw-cli/src/main.rs b/crates/webclaw-cli/src/main.rs index 8f818dd..37a04ff 100644 --- a/crates/webclaw-cli/src/main.rs +++ b/crates/webclaw-cli/src/main.rs @@ -2948,7 +2948,9 @@ mod tests { assert!(!looks_truncated("https://example.com/path/to/page")); assert!(!looks_truncated("https://example.com/?a=1")); assert!(!looks_truncated("https://example.com/?a=1&b=2")); - assert!(!looks_truncated("https://example.com/?a=1&b=2&c=hello%20world")); + assert!(!looks_truncated( + "https://example.com/?a=1&b=2&c=hello%20world" + )); // Hash anchors without a query are clean. assert!(!looks_truncated("https://example.com/page#section")); } diff --git a/crates/webclaw-fetch/src/lib.rs b/crates/webclaw-fetch/src/lib.rs index 5e687ed..b859955 100644 --- a/crates/webclaw-fetch/src/lib.rs +++ b/crates/webclaw-fetch/src/lib.rs @@ -25,7 +25,7 @@ pub use error::FetchError; pub use fetcher::Fetcher; pub use http::HeaderMap; pub use locale::{accept_language_for_tld, accept_language_for_url}; -pub use progress::{with_progress, PROGRESS_INTERVAL}; +pub use progress::{PROGRESS_INTERVAL, with_progress}; pub use proxy::{parse_proxy_file, parse_proxy_line}; pub use sitemap::SitemapEntry; pub use webclaw_pdf::PdfMode; diff --git a/crates/webclaw-fetch/src/progress.rs b/crates/webclaw-fetch/src/progress.rs index 223f66d..75931dd 100644 --- a/crates/webclaw-fetch/src/progress.rs +++ b/crates/webclaw-fetch/src/progress.rs @@ -18,7 +18,7 @@ use std::future::Future; use std::time::Duration; -use tokio::time::{interval, Instant, MissedTickBehavior}; +use tokio::time::{Instant, MissedTickBehavior, interval}; /// Default progress emission interval. The first tick fires at +10s /// elapsed; subsequent ticks at +20s, +30s, etc. @@ -265,7 +265,8 @@ mod tests { fn test_truncate_url_unicode_safe() { // Cyrillic URL longer than 80 chars — must not panic on a // mid-codepoint split. - let url = "https://example.com/путь/к/очень/длинной/странице/с/большим/количеством/кириллицы/тут"; + let url = + "https://example.com/путь/к/очень/длинной/странице/с/большим/количеством/кириллицы/тут"; let truncated = truncate_url(url, 80); assert!(truncated.is_char_boundary(truncated.len())); // Roundtrip through chars to confirm valid UTF-8 throughout. @@ -275,10 +276,7 @@ mod tests { #[test] fn test_format_progress_line_shape() { let line = format_progress_line("https://example.com/", Duration::from_secs(10)); - assert_eq!( - line, - "# webclaw: still fetching https://example.com/ (10s)" - ); + assert_eq!(line, "# webclaw: still fetching https://example.com/ (10s)"); } #[test] @@ -287,6 +285,9 @@ mod tests { // the first tick fires at +PROGRESS_INTERVAL so this is mostly // a defensive shape assertion.) let line = format_progress_line("https://x/", Duration::from_millis(9_500)); - assert!(line.ends_with("(9s)"), "line should end with `(9s)`: {line:?}"); + assert!( + line.ends_with("(9s)"), + "line should end with `(9s)`: {line:?}" + ); } } From 17fce81a953e7d47443ba4326b16dffbfad05c5b Mon Sep 17 00:00:00 2001 From: Valerio Date: Tue, 9 Jun 2026 10:56:51 +0200 Subject: [PATCH 14/18] chore(release): v0.6.6 Salvaged two CLI ergonomics fixes from #49: - periodic progress line on slow fetches (stderr) - --url-encoded flag + URL truncation warning --- CHANGELOG.md | 8 ++++++++ Cargo.toml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 856cc11..fd27092 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to webclaw are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/). +## [0.6.6] — 2026-06-09 + +### Added +- Slow fetches now print a progress line to stderr every 10 seconds (`# webclaw: still fetching (Ns)`) so a long request no longer looks like the CLI hung. Fast fetches stay silent and stdout is untouched. +- New `--url-encoded` flag plus a warning when a URL looks like the shell split it on `&` or `?`. The warning suggests quoting the URL; pass `--url-encoded` to silence it when the URL is intentional. + +--- + ## [0.6.5] — 2026-06-04 ### Changed diff --git a/Cargo.toml b/Cargo.toml index 124c620..758dc33 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["crates/*"] [workspace.package] -version = "0.6.5" +version = "0.6.6" edition = "2024" license = "AGPL-3.0" repository = "https://github.com/0xMassi/webclaw" From 72a451cfb65037cba2bf4e85525d70980d36dac7 Mon Sep 17 00:00:00 2001 From: Valerio Date: Tue, 9 Jun 2026 11:26:18 +0200 Subject: [PATCH 15/18] chore(release): sync Cargo.lock to v0.6.6 --- Cargo.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 78e7e77..ecd5f5a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3219,7 +3219,7 @@ dependencies = [ [[package]] name = "webclaw-cli" -version = "0.6.5" +version = "0.6.6" dependencies = [ "clap", "dotenvy", @@ -3240,7 +3240,7 @@ dependencies = [ [[package]] name = "webclaw-core" -version = "0.6.5" +version = "0.6.6" dependencies = [ "ego-tree", "once_cell", @@ -3258,7 +3258,7 @@ dependencies = [ [[package]] name = "webclaw-fetch" -version = "0.6.5" +version = "0.6.6" dependencies = [ "async-trait", "bytes", @@ -3284,7 +3284,7 @@ dependencies = [ [[package]] name = "webclaw-llm" -version = "0.6.5" +version = "0.6.6" dependencies = [ "async-trait", "reqwest", @@ -3297,7 +3297,7 @@ dependencies = [ [[package]] name = "webclaw-mcp" -version = "0.6.5" +version = "0.6.6" dependencies = [ "dirs", "dotenvy", @@ -3317,7 +3317,7 @@ dependencies = [ [[package]] name = "webclaw-pdf" -version = "0.6.5" +version = "0.6.6" dependencies = [ "pdf-extract", "thiserror", @@ -3326,7 +3326,7 @@ dependencies = [ [[package]] name = "webclaw-server" -version = "0.6.5" +version = "0.6.6" dependencies = [ "anyhow", "axum", From 14ded4b99ec9800ac2c28cea9c7c691c8f475aaf Mon Sep 17 00:00:00 2001 From: Valerio Date: Tue, 9 Jun 2026 11:59:41 +0200 Subject: [PATCH 16/18] chore(deps): bump wreq 6.0.0-rc.29, wreq-util 3.0.0-rc.12 Ports the TLS/Response API breaks in the bump: - certificate_compression_algorithms -> certificate_compressors with wreq-util's BrotliCompressor/ZlibCompressor trait objects - ExtensionType::APPLICATION_SETTINGS_NEW -> APPLICATION_SETTINGS (same codepoint 17613) - wreq_util::Emulation::SafariIos26.emulation() -> Profile::SafariIos26.into_emulation(); Emulation fields are now public so *_mut() accessors become direct field access; build() takes a Group - Response::chunk() removed -> bytes_stream() (wreq 'stream' feature) with the running body-size ceiling preserved; adds futures-util Browser fingerprints verified unchanged on tls.peet.ws: Chrome JA3 43067709b025da334de1279a120f8e14, Safari iOS JA3 8d909525bd5bbb79f133d11cc05159fe. --- Cargo.lock | 207 +++++++++++++++++------------ crates/webclaw-fetch/Cargo.toml | 13 +- crates/webclaw-fetch/src/client.rs | 14 +- crates/webclaw-fetch/src/tls.rs | 58 ++++---- 4 files changed, 170 insertions(+), 122 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ecd5f5a..bd7ff1d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -28,18 +28,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.4" @@ -64,6 +52,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -272,9 +266,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.11.0" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" [[package]] name = "block-buffer" @@ -285,31 +279,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "boring-sys2" -version = "5.0.0-alpha.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455d79965f5155dcc88a7abce112c3590883889131b799beda10bf9a813ed669" -dependencies = [ - "bindgen", - "cmake", - "fs_extra", - "fslock", -] - -[[package]] -name = "boring2" -version = "5.0.0-alpha.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183ccc3854411c035410dcdbffafca62084f3a6c33f013c77e83c025d2a08a28" -dependencies = [ - "bitflags", - "boring-sys2", - "foreign-types", - "libc", - "openssl-macros", -] - [[package]] name = "brotli" version = "8.0.2" @@ -331,6 +300,31 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "btls" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c5e60b8c8d282c86360cab651ded04ab0335a7b5390c8d34145cbeab8cacf5f" +dependencies = [ + "bitflags", + "btls-sys", + "foreign-types", + "libc", + "openssl-macros", +] + +[[package]] +name = "btls-sys" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b1b8638a2e1c38a5ae4efa90ae57e643baec35a30d03fc5b399b893adc4954b" +dependencies = [ + "bindgen", + "cmake", + "fs_extra", + "fslock", +] + [[package]] name = "bumpalo" version = "3.20.2" @@ -865,6 +859,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.5.0" @@ -1089,19 +1089,13 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" - [[package]] name = "hashbrown" version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ - "foldhash", + "foldhash 0.1.5", ] [[package]] @@ -1110,6 +1104,17 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] + [[package]] name = "heck" version = "0.5.0" @@ -1172,9 +1177,9 @@ dependencies = [ [[package]] name = "http2" -version = "0.5.15" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c45c6490693ee8a8d0d95fdbdf76fead9fb87548f7894137259a7c6d22821948" +checksum = "569ef7a780e853c4e1768f58a3c8168193b82cdcbab66638a0b1c6583ec5995e" dependencies = [ "atomic-waker", "bytes", @@ -1183,7 +1188,6 @@ dependencies = [ "futures-sink", "http", "indexmap", - "parking_lot", "slab", "smallvec", "tokio", @@ -1495,9 +1499,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.183" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libloading" @@ -1563,6 +1567,15 @@ dependencies = [ "weezl", ] +[[package]] +name = "lru" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a860605968fce16869fd239cf4237a82f3ac470723415db603b0e8b6c8d4fb9" +dependencies = [ + "hashbrown 0.17.1", +] + [[package]] name = "lru-slab" version = "0.1.2" @@ -2375,17 +2388,6 @@ dependencies = [ "syn", ] -[[package]] -name = "schnellru" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" -dependencies = [ - "ahash", - "cfg-if", - "hashbrown 0.13.2", -] - [[package]] name = "scopeguard" version = "1.2.0" @@ -2779,9 +2781,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.50.0" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", @@ -2795,20 +2797,20 @@ dependencies = [ ] [[package]] -name = "tokio-boring2" -version = "5.0.0-alpha.13" +name = "tokio-btls" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f81df1210d791f31d72d840de8fbd80b9c3cb324956523048b1413e2bd55756" +checksum = "2e1fd638ec35427faf3b8f412e0fdd6fae76591d79dba40f38fa667d22bc44dd" dependencies = [ - "boring2", + "btls", "tokio", ] [[package]] name = "tokio-macros" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", @@ -3263,6 +3265,7 @@ dependencies = [ "async-trait", "bytes", "calamine", + "futures-util", "http", "quick-xml 0.37.5", "rand 0.8.5", @@ -3347,9 +3350,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" dependencies = [ "rustls-pki-types", ] @@ -3696,17 +3699,14 @@ dependencies = [ [[package]] name = "wreq" -version = "6.0.0-rc.28" +version = "6.0.0-rc.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79937f6c4df65b3f6f78715b9de2977afe9ee3b3436483c7949a24511e25935" +checksum = "3f0eba5f5814a94e5f1a99156f187133464e525b66bdbc69a9627d46530af2e1" dependencies = [ - "ahash", - "boring2", - "brotli", + "btls", + "btls-sys", "bytes", "cookie", - "flate2", - "futures-channel", "futures-util", "http", "http-body", @@ -3715,29 +3715,64 @@ dependencies = [ "httparse", "ipnet", "libc", + "lru", "percent-encoding", "pin-project-lite", - "schnellru", - "smallvec", "socket2", + "sync_wrapper", "tokio", - "tokio-boring2", + "tokio-btls", + "tokio-util", "tower", "tower-http", "url", - "want", "webpki-root-certs", - "zstd", + "wreq-proto", + "wreq-rt", +] + +[[package]] +name = "wreq-proto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a43942f024bb303f1042c9aa3c87fa1d9149f507c65db6e5220a11ccdb207387" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "http2", + "httparse", + "pin-project-lite", + "smallvec", + "tokio", + "tokio-util", + "want", +] + +[[package]] +name = "wreq-rt" +version = "0.2.2-rc.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99e9bce67a3fa3dd3f1503f066d86661c9caf399a763d3bd184da7afaf886c8b" +dependencies = [ + "pin-project-lite", + "tokio", + "wreq-proto", ] [[package]] name = "wreq-util" -version = "3.0.0-rc.10" +version = "3.0.0-rc.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c6bbe24d28beb9ceb58b514bd6a613c759d3b706f768b9d2950d5d35b543c04" +checksum = "baa5d2ab72139256916ca352a3d05c53d74e1dd360052eb5ba7691033c417c65" dependencies = [ + "brotli", + "flate2", "typed-builder", "wreq", + "zstd", ] [[package]] diff --git a/crates/webclaw-fetch/Cargo.toml b/crates/webclaw-fetch/Cargo.toml index de3036b..4671dc1 100644 --- a/crates/webclaw-fetch/Cargo.toml +++ b/crates/webclaw-fetch/Cargo.toml @@ -14,13 +14,16 @@ tracing = { workspace = true } tokio = { workspace = true } async-trait = "0.1" # Pinned to exact pre-release versions: wreq/wreq-util are release candidates -# with no semver stability between rc.N builds (rc.29 broke the TLS + Response -# API). An exact pin keeps `cargo build`, `cargo install` (which ignores -# Cargo.lock), and the release workflow all on the version that compiles. -wreq = { version = "=6.0.0-rc.28", features = ["cookies", "gzip", "brotli", "zstd", "deflate"] } -wreq-util = "=3.0.0-rc.10" +# with no semver stability between rc.N builds. An exact pin keeps `cargo build`, +# `cargo install` (which ignores Cargo.lock), and the release workflow all on the +# version that compiles. +wreq = { version = "=6.0.0-rc.29", features = ["cookies", "gzip", "brotli", "zstd", "deflate", "stream"] } +wreq-util = "=3.0.0-rc.12" http = "1" bytes = "1" +# Stream adapter for `wreq::Response::bytes_stream()` (wreq 6.0.0-rc.29 dropped +# `Response::chunk()`); used to buffer bodies under the running size ceiling. +futures-util = "0.3" url = "2" rand = "0.8" quick-xml = { version = "0.37", features = ["serde"] } diff --git a/crates/webclaw-fetch/src/client.rs b/crates/webclaw-fetch/src/client.rs index 2bfd8c5..0724cec 100644 --- a/crates/webclaw-fetch/src/client.rs +++ b/crates/webclaw-fetch/src/client.rs @@ -12,6 +12,7 @@ use std::hash::{Hash, Hasher}; use std::sync::Arc; use std::time::{Duration, Instant}; +use futures_util::StreamExt; use rand::seq::SliceRandom; use tokio::sync::Semaphore; use tracing::{debug, instrument, warn}; @@ -118,7 +119,7 @@ impl Response { /// negotiated), so a tiny compressed payload that inflates to /// gigabytes is aborted as soon as the accumulated size crosses the /// cap — it never gets fully buffered in memory. - async fn from_wreq(mut resp: wreq::Response) -> Result { + async fn from_wreq(resp: wreq::Response) -> Result { if let Some(len) = resp.content_length() && len > MAX_BODY_BYTES { @@ -130,12 +131,13 @@ impl Response { let url = resp.uri().to_string(); let headers = resp.headers().clone(); + // wreq 6.0.0-rc.29 dropped `Response::chunk()`. Stream post-decompression + // bytes via `bytes_stream()` and keep enforcing the running ceiling so a + // compression bomb is aborted before it is fully buffered in memory. let mut buf = bytes::BytesMut::new(); - while let Some(chunk) = resp - .chunk() - .await - .map_err(|e| FetchError::BodyDecode(e.to_string()))? - { + let mut stream = resp.bytes_stream(); + while let Some(chunk) = stream.next().await { + let chunk = chunk.map_err(|e| FetchError::BodyDecode(e.to_string()))?; check_body_ceiling(buf.len(), chunk.len())?; buf.extend_from_slice(&chunk); } diff --git a/crates/webclaw-fetch/src/tls.rs b/crates/webclaw-fetch/src/tls.rs index c6c2955..02209b3 100644 --- a/crates/webclaw-fetch/src/tls.rs +++ b/crates/webclaw-fetch/src/tls.rs @@ -10,15 +10,24 @@ use std::{borrow::Cow, io, time::Duration}; use wreq::http2::{ Http2Options, PseudoId, PseudoOrder, SettingId, SettingsOrder, StreamDependency, StreamId, }; -use wreq::tls::{ - AlpnProtocol, AlpsProtocol, CertificateCompressionAlgorithm, ExtensionType, TlsOptions, - TlsVersion, -}; -use wreq::{Client, Emulation}; +use wreq::tls::compress::CertificateCompressor; +use wreq::tls::{AlpnProtocol, AlpsProtocol, ExtensionType, TlsOptions, TlsVersion}; +use wreq::{Client, Emulation, Group, IntoEmulation}; +use wreq_util::emulate::compress::{BrotliCompressor, ZlibCompressor}; use crate::browser::BrowserVariant; use crate::error::FetchError; +// Certificate-compression advertisement per profile. wreq 6.0.0-rc.29 replaced +// the `CertificateCompressionAlgorithm` enum argument with `&dyn +// CertificateCompressor` trait objects; wreq-util ships the concrete zlib/brotli +// implementations. The advertised set (and order) is a TLS fingerprint signal, +// so these mirror the previous enum lists exactly. +static CHROME_CERT_COMPRESSORS: &[&'static dyn CertificateCompressor] = &[&BrotliCompressor]; +static FIREFOX_CERT_COMPRESSORS: &[&'static dyn CertificateCompressor] = + &[&ZlibCompressor, &BrotliCompressor]; +static SAFARI_CERT_COMPRESSORS: &[&'static dyn CertificateCompressor] = &[&ZlibCompressor]; + #[derive(Clone, Default)] struct PublicDnsResolver; @@ -119,14 +128,14 @@ fn chrome_extensions() -> Vec { ExtensionType::PSK_KEY_EXCHANGE_MODES, // 45 ExtensionType::EC_POINT_FORMATS, // 11 ExtensionType::CERT_COMPRESSION, // 27 - ExtensionType::APPLICATION_SETTINGS_NEW, // 17613 (new codepoint, matches alps_use_new_codepoint) - ExtensionType::SUPPORTED_VERSIONS, // 43 - ExtensionType::SIGNATURE_ALGORITHMS, // 13 - ExtensionType::SERVER_NAME, // 0 + ExtensionType::APPLICATION_SETTINGS, // 17613 (new codepoint, matches alps_use_new_codepoint) + ExtensionType::SUPPORTED_VERSIONS, // 43 + ExtensionType::SIGNATURE_ALGORITHMS, // 13 + ExtensionType::SERVER_NAME, // 0 ExtensionType::APPLICATION_LAYER_PROTOCOL_NEGOTIATION, // 16 - ExtensionType::ENCRYPTED_CLIENT_HELLO, // 65037 - ExtensionType::RENEGOTIATE, // 65281 - ExtensionType::EXTENDED_MASTER_SECRET, // 23 + ExtensionType::ENCRYPTED_CLIENT_HELLO, // 65037 + ExtensionType::RENEGOTIATE, // 65281 + ExtensionType::EXTENDED_MASTER_SECRET, // 23 ] } @@ -287,7 +296,7 @@ fn chrome_tls() -> TlsOptions { .alps_protocols([AlpsProtocol::HTTP3, AlpsProtocol::HTTP2]) .alps_use_new_codepoint(true) .aes_hw_override(true) - .certificate_compression_algorithms(&[CertificateCompressionAlgorithm::BROTLI]) + .certificate_compressors(CHROME_CERT_COMPRESSORS) .build() } @@ -304,10 +313,7 @@ fn firefox_tls() -> TlsOptions { .pre_shared_key(true) .enable_ocsp_stapling(true) .enable_signed_cert_timestamps(true) - .certificate_compression_algorithms(&[ - CertificateCompressionAlgorithm::ZLIB, - CertificateCompressionAlgorithm::BROTLI, - ]) + .certificate_compressors(FIREFOX_CERT_COMPRESSORS) .build() } @@ -324,7 +330,7 @@ fn safari_tls() -> TlsOptions { .pre_shared_key(false) .enable_ocsp_stapling(true) .enable_signed_cert_timestamps(true) - .certificate_compression_algorithms(&[CertificateCompressionAlgorithm::ZLIB]) + .certificate_compressors(SAFARI_CERT_COMPRESSORS) .build() } @@ -345,21 +351,23 @@ fn safari_tls() -> TlsOptions { /// `priority: u=0, i`, zstd), replace with the real iOS 26 set. /// 4. `accept-language` preserved from config.extra_headers for locale. fn safari_ios_emulation() -> wreq::Emulation { - use wreq::EmulationFactory; - let mut em = wreq_util::Emulation::SafariIos26.emulation(); + // wreq 6.0.0-rc.29 exposes the `Emulation` fields directly (no `*_mut()` + // accessors) and wreq-util 3.0.0-rc.12 renamed the enum to `Profile` with + // `IntoEmulation::into_emulation` replacing `EmulationFactory::emulation`. + let mut em = wreq_util::Profile::SafariIos26.into_emulation(); - if let Some(tls) = em.tls_options_mut().as_mut() { + if let Some(tls) = em.tls_options.as_mut() { tls.extension_permutation = Some(Cow::Owned(safari_ios_extensions())); } // Only override the priority flag — keep wreq-util's SETTINGS, WINDOW_UPDATE, // and pseudo-order intact. Replacing the whole Http2Options resets SETTINGS // to defaults, which sends only INITIAL_WINDOW_SIZE and fails DataDome. - if let Some(h2) = em.http2_options_mut().as_mut() { + if let Some(h2) = em.http2_options.as_mut() { h2.headers_stream_dependency = Some(StreamDependency::new(StreamId::zero(), 255, true)); } - let hm = em.headers_mut(); + let hm = &mut em.headers; hm.clear(); for (k, v) in SAFARI_IOS_HEADERS { if let (Ok(n), Ok(val)) = ( @@ -508,12 +516,12 @@ pub fn build_client( .tls_options(tls) .http2_options(h2) .headers(build_headers(headers)) - .build() + .build(Group::default()) } }; // Append extra headers after profile defaults. - let hm = emulation.headers_mut(); + let hm = &mut emulation.headers; for (k, v) in extra_headers { if let (Ok(n), Ok(val)) = ( http::header::HeaderName::from_bytes(k.as_bytes()), From 6519ac2a8bde23d3d797661477846393b3a8deb9 Mon Sep 17 00:00:00 2001 From: Valerio Date: Tue, 9 Jun 2026 12:00:19 +0200 Subject: [PATCH 17/18] chore(release): v0.6.7 --- CHANGELOG.md | 7 +++++++ Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd27092..97aac8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to webclaw are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/). +## [0.6.7] — 2026-06-09 + +### Changed +- Updated the HTTP/TLS engine (wreq 6.0.0-rc.29, wreq-util 3.0.0-rc.12). This pulls in upstream robustness fixes: no more panic on responses with non-UTF8 header values, a fix for short reads when decoding large compressed bodies, and the TCP nodelay setting is restored. Browser TLS fingerprints are unchanged. + +--- + ## [0.6.6] — 2026-06-09 ### Added diff --git a/Cargo.lock b/Cargo.lock index bd7ff1d..3196dd9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3221,7 +3221,7 @@ dependencies = [ [[package]] name = "webclaw-cli" -version = "0.6.6" +version = "0.6.7" dependencies = [ "clap", "dotenvy", @@ -3242,7 +3242,7 @@ dependencies = [ [[package]] name = "webclaw-core" -version = "0.6.6" +version = "0.6.7" dependencies = [ "ego-tree", "once_cell", @@ -3260,7 +3260,7 @@ dependencies = [ [[package]] name = "webclaw-fetch" -version = "0.6.6" +version = "0.6.7" dependencies = [ "async-trait", "bytes", @@ -3287,7 +3287,7 @@ dependencies = [ [[package]] name = "webclaw-llm" -version = "0.6.6" +version = "0.6.7" dependencies = [ "async-trait", "reqwest", @@ -3300,7 +3300,7 @@ dependencies = [ [[package]] name = "webclaw-mcp" -version = "0.6.6" +version = "0.6.7" dependencies = [ "dirs", "dotenvy", @@ -3320,7 +3320,7 @@ dependencies = [ [[package]] name = "webclaw-pdf" -version = "0.6.6" +version = "0.6.7" dependencies = [ "pdf-extract", "thiserror", @@ -3329,7 +3329,7 @@ dependencies = [ [[package]] name = "webclaw-server" -version = "0.6.6" +version = "0.6.7" dependencies = [ "anyhow", "axum", diff --git a/Cargo.toml b/Cargo.toml index 758dc33..85ab113 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["crates/*"] [workspace.package] -version = "0.6.6" +version = "0.6.7" edition = "2024" license = "AGPL-3.0" repository = "https://github.com/0xMassi/webclaw" From d0d7b835f2efe3ffad621d6875f1d9205fca48a9 Mon Sep 17 00:00:00 2001 From: Valerio Date: Tue, 9 Jun 2026 18:53:14 +0200 Subject: [PATCH 18/18] docs(readme): update banner to new webclaw branding --- .github/banner.png | Bin 44694 -> 49160 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.github/banner.png b/.github/banner.png index 07a6673f88d442b0014f618bb61516787a99b059..968277f3fba0ad97020158132f00daab959baa2c 100644 GIT binary patch literal 49160 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�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