From ba8d224a46d5b23775f98bb271b773d050a2af87 Mon Sep 17 00:00:00 2001 From: Ega Saputra <44431625+egasa21@users.noreply.github.com> Date: Fri, 6 Nov 2026 10:55:21 +0700 Subject: [PATCH] fix(java): support Lombok builders on compact record constructors (#950) @Builder on a compact record constructor (record R(...) { @Builder R {} }) failed in the editor: ECJ has not filled in a compact constructor's implicit parameters when Lombok runs, so the builder got no fields and builder() was undefined. A patch to Lombok's Eclipse HandleBuilder takes the parameters from the record components in that case. The bundled agent is now lombok-1.18.48-openidea.3, built from v1.18.48 with #4059, #4089 and java/lombok/patches/builder-compact-constructor.patch through the documented Ant build; only HandleBuilder differs from openidea.2. The new agent path gives JDT LS a fresh workspace. java/lombok/tests/verify.py compiles and runs the regression cases with javac and with ECJ plus the agent. Co-authored-by: egasa21 <44431625+egasa21@users.noreply.github.com> --- THIRD_PARTY_LICENSES.md | 5 +- crates/ide-sdk/src/java.rs | 19 ++- crates/ide-sdk/src/lombok.rs | 2 +- crates/ide-tools/src/registry.rs | 9 +- crates/ide-tools/src/tests.rs | 8 +- java/lombok/README.md | 47 ++++-- java/lombok/SHA256SUMS | 2 +- ...ea.2.jar => lombok-1.18.48-openidea.3.jar} | Bin 2052393 -> 2052485 bytes .../patches/builder-compact-constructor.patch | 21 +++ .../tests/BuilderCompactConstructor.java | 139 ++++++++++++++++++ java/lombok/tests/verify.py | 33 +++++ 11 files changed, 261 insertions(+), 24 deletions(-) rename java/lombok/{lombok-1.18.48-openidea.2.jar => lombok-1.18.48-openidea.3.jar} (92%) create mode 100644 java/lombok/patches/builder-compact-constructor.patch create mode 100644 java/lombok/tests/BuilderCompactConstructor.java create mode 100644 java/lombok/tests/verify.py diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md index 7bae95f1..5f6c145c 100644 --- a/THIRD_PARTY_LICENSES.md +++ b/THIRD_PARTY_LICENSES.md @@ -2,8 +2,9 @@ ## Project Lombok -`java/lombok/lombok-1.18.48-openidea.2.jar` contains Project Lombok v1.18.48 with the Equinox -classloader fix from [projectlombok/lombok#4059](https://github.com/projectlombok/lombok/pull/4059) +`java/lombok/lombok-1.18.48-openidea.3.jar` contains Project Lombok v1.18.48 with the Equinox +classloader fix from [projectlombok/lombok#4059](https://github.com/projectlombok/lombok/pull/4059), +the [compact record constructor builder fix](java/lombok/patches/builder-compact-constructor.patch) and the ECJ constructor-call fix from [projectlombok/lombok#4089](https://github.com/projectlombok/lombok/pull/4089). Copyright (C) 2009-2021 The Project Lombok Authors. MIT license and bundled component notices are retained in [java/lombok/LICENSE](java/lombok/LICENSE) and inside the jar. diff --git a/crates/ide-sdk/src/java.rs b/crates/ide-sdk/src/java.rs index 557f6703..50d470b5 100644 --- a/crates/ide-sdk/src/java.rs +++ b/crates/ide-sdk/src/java.rs @@ -880,7 +880,7 @@ mod tests { configure_jdtls(&mut plain, Path::new("/p"), Path::new("/data"), &[], None, None, JDTLS_MIN_JAVA, &[], None); let data = |c: &LanguageServerConfig| c.args[c.args.iter().position(|a| a == "-data").unwrap() + 1].clone(); assert_ne!(data(&cfg), data(&plain), "a separate workspace, so everything is rebuilt with the agent"); - let patched = Path::new("/managed/lombok-1.18.48-openidea.2.jar"); + let patched = Path::new("/managed/lombok-1.18.48-openidea.3.jar"); let mut fixed = jdtls(); configure_jdtls( &mut fixed, @@ -894,6 +894,23 @@ mod tests { Some(patched), ); assert_ne!(data(&cfg), data(&fixed), "the patch must rebuild classes compiled with the official agent"); + let mut previous = jdtls(); + configure_jdtls( + &mut previous, + Path::new("/p"), + Path::new("/data"), + &[], + None, + None, + JDTLS_MIN_JAVA, + &[], + Some(Path::new("/managed/lombok-1.18.48-openidea.2.jar")), + ); + assert_ne!( + data(&previous), + data(&fixed), + "the new patch must rebuild classes compiled with the previous bundle" + ); let before = cfg.clone(); configure_jdtls(&mut cfg, Path::new("/p"), Path::new("/data"), &[], None, None, JDTLS_MIN_JAVA, &[], Some(jar)); assert_eq!(cfg, before, "idempotent"); diff --git a/crates/ide-sdk/src/lombok.rs b/crates/ide-sdk/src/lombok.rs index 3a4b4192..3544e703 100644 --- a/crates/ide-sdk/src/lombok.rs +++ b/crates/ide-sdk/src/lombok.rs @@ -507,7 +507,7 @@ mod tests { let cache = repo.join("org/projectlombok/lombok/1.18.48"); fs::create_dir_all(&cache).unwrap(); fs::write(cache.join("lombok-1.18.48.jar"), b"official agent").unwrap(); - let patched = PathBuf::from("/managed/lombok-1.18.48-openidea.2.jar"); + let patched = PathBuf::from("/managed/lombok-1.18.48-openidea.3.jar"); let selected = lombok_agent(tmp.path(), None, Some(patched.clone()), Some(repo.clone())); assert_eq!(selected.jar(), Some(patched.as_path())); assert_eq!(selected.problem(), None); diff --git a/crates/ide-tools/src/registry.rs b/crates/ide-tools/src/registry.rs index 50b503ca..766c461d 100644 --- a/crates/ide-tools/src/registry.rs +++ b/crates/ide-tools/src/registry.rs @@ -646,12 +646,13 @@ pub static TOOLS: &[ToolSpec] = &[ // Equinox removed getModuleClassLoader(boolean), breaking lombok.config lookup (lombok#4059); // ECJ 3.46.200 keeps the constructor call in a constructor's statements, which // @SneakyThrows / @NonNull must not wrap or precede (lombok#4089). - // Return to Maven Central once an official release includes both. + // Builders on compact record constructors need the patch in java/lombok/patches. + // Return to Maven Central once an official release includes all of these fixes. // Source commit, build instructions and checksum: java/lombok/README.md. method: Method::Bundled { - filename: "lombok-1.18.48-openidea.2.jar", - version: "1.18.48-openidea.2", - bytes: include_bytes!("../../../java/lombok/lombok-1.18.48-openidea.2.jar"), + filename: "lombok-1.18.48-openidea.3.jar", + version: "1.18.48-openidea.3", + bytes: include_bytes!("../../../java/lombok/lombok-1.18.48-openidea.3.jar"), }, fallback: None, version: V, diff --git a/crates/ide-tools/src/tests.rs b/crates/ide-tools/src/tests.rs index f3ab5530..9a6b4429 100644 --- a/crates/ide-tools/src/tests.rs +++ b/crates/ide-tools/src/tests.rs @@ -58,16 +58,20 @@ fn bundled_lombok_replaces_legacy_installs_on_every_platform_without_downloads() fs::create_dir_all(legacy.parent().unwrap()).unwrap(); fs::write(&legacy, b"old official agent").unwrap(); fs::write(env.root.join("lombok").join(MANIFEST), r#"{"version":"1.18.48"}"#).unwrap(); + let previous = env.root.join("lombok/bin/lombok-1.18.48-openidea.2.jar"); + fs::write(&previous, b"previous bundled agent").unwrap(); let tools = Tools::with_paths(env.root.clone(), OsString::new(), Platform { os, arch }); let info = tools.info("lombok", &[]).unwrap(); let path = managed_bundle(env.root.parent().unwrap(), "lombok").unwrap(); assert_eq!(info.status, ToolStatus::Installed); - assert_eq!(info.version.as_deref(), Some("1.18.48-openidea.2")); + assert_eq!(info.version.as_deref(), Some("1.18.48-openidea.3")); assert_eq!(info.path, Some(path.clone().into())); - assert_eq!(path.file_name().unwrap(), "lombok-1.18.48-openidea.2.jar"); + assert_eq!(path.file_name().unwrap(), "lombok-1.18.48-openidea.3.jar"); assert!(!info.can_install && !info.can_uninstall); assert_eq!(tools.unavailable_reason(registry::find("lombok").unwrap()), None); assert_eq!(fs::read(&legacy).unwrap(), b"old official agent", "other windows may still use it"); + assert_ne!(path, previous, "new agent path must invalidate the JDT LS workspace"); + assert_eq!(fs::read(&previous).unwrap(), b"previous bundled agent", "other windows may still use it"); } } } diff --git a/java/lombok/README.md b/java/lombok/README.md index 4959509c..844091c8 100644 --- a/java/lombok/README.md +++ b/java/lombok/README.md @@ -1,6 +1,6 @@ # Lombok agent for JDT LS -`lombok-1.18.48-openidea.2.jar` is the app-provided Java agent for JDT LS. It includes: +`lombok-1.18.48-openidea.3.jar` is the app-provided Java agent for JDT LS. It includes: - [projectlombok/lombok#4059](https://github.com/projectlombok/lombok/pull/4059), which restores `lombok.config` lookup after Equinox removed `getModuleClassLoader(boolean)`. @@ -10,6 +10,11 @@ that call in the `@SneakyThrows` try block (ECJ then fails with "Internal Error compiling … BlockScope cannot be cast to MethodScope" and the whole workspace build fails) and put `@NonNull` checks before it; constructors Lombok generates lacked the statement. +- [`patches/builder-compact-constructor.patch`](patches/builder-compact-constructor.patch), not yet + proposed upstream. `@Builder` on a compact record constructor (`record R(...) { @Builder R {} }`) + failed under ECJ ("The method builder() is undefined", missing builder setters), because ECJ has + not filled in a compact constructor's implicit parameters when Lombok runs. The builder now takes + its parameters from the record components in that case; javac was unaffected. The jar is embedded by `ide-tools`, so every platform receives the same bytes without a download. Both Java server startup and launch diagnostics obtain it through `managed_bundle`. Tool detection @@ -19,7 +24,7 @@ The filename includes the patch version because JDT LS workspace keys include th changing agents must rebuild classes produced by the old agent. Old jars remain for running windows. Replace this temporary bundle with an official Maven Central release once that release includes -#4059 and #4089. Restore the registry's Maven Central install method and remove the embedded jar. Keep the +#4059, #4089 and the compact-constructor builder fix. Restore the registry's Maven Central install method and remove the embedded jar. Keep the workspace migration test when changing its path. ## Provenance and build @@ -33,10 +38,12 @@ workspace migration test when changing its path. - PR #4089 (`Rawi01/lombok` `eclipse-constructor-call-statement`): - `7832faa49b35c839088866daf865384c82cd555f` - `3f3a80b857a969839ab1baba12767aec4965ac32` -- Upstream version: `1.18.48`; `openidea.2` identifies this distribution of the patched agent - (`openidea.1` had #4059 only). +- Then `git apply` [`patches/builder-compact-constructor.patch`](patches/builder-compact-constructor.patch) + (changes `src/core/lombok/eclipse/handlers/HandleBuilder.java` only). +- Upstream version: `1.18.48`; `openidea.3` identifies this distribution of the patched agent + (`openidea.1` had #4059 only; `openidea.2` added #4089). Upstream's own `java -jar ... --version` still reports `1.18.48`. -- SHA-256: `2978d8b2d55dac1bb4936ba44562bc4549931d4e71a7ebfeaebccd60bcdf7379` +- SHA-256: `26069a8138680f5e1100c83cd064d6aa7314385a1afcef74269cdcc41beb0442` - License: [MIT, including bundled component notices](LICENSE), also retained inside the jar. - Build environment: macOS arm64, Temurin 25.0.5, Apache Ant 1.10.15, upstream Ivy setup (`openidea.1` was built with OpenJDK 23.0.1). @@ -51,8 +58,9 @@ git fetch https://github.com/chagong/lombok.git fix-equinox-bundle-wiring git fetch https://github.com/Rawi01/lombok.git eclipse-constructor-call-statement git cherry-pick 2d535482a913de46c27d06c5b0b294918ede3f9c 3098f4dd78b5349c2f382e7310e64db810dd380b git cherry-pick 7832faa49b35c839088866daf865384c82cd555f 3f3a80b857a969839ab1baba12767aec4965ac32 +git apply /path/to/openidea/java/lombok/patches/builder-compact-constructor.patch ant dist -cp dist/lombok.jar /path/to/openidea/java/lombok/lombok-1.18.48-openidea.2.jar +cp dist/lombok.jar /path/to/openidea/java/lombok/lombok-1.18.48-openidea.3.jar ``` The changelog context conflicts because the first commit adds a release-note line under the @@ -62,13 +70,15 @@ skipped). The #4089 commits apply cleanly. The final source diff from v1.18.48 c `src/eclipseAgent/lombok/launch/PatchFixesHider.java`, `test/core/src/lombok/TestEclipse.java`, `test/core/src/lombok/launch/PatchFixesHiderTest.java` (#4059) and the Eclipse handlers `EclipseHandlerUtil`, `HandleConstructor`, `HandleFieldNameConstants`, `HandleNonNull`, -`HandleSneakyThrows`, `HandleStandardException`, `HandleSuperBuilder`, `HandleUtilityClass` (#4089); -no other Java source changes were made. -In the build checkout, the two remote resolvers in -`buildScripts/ivysettings.xml` were reordered to try Maven Central before Eclipse staging; the -local resolver and all dependency coordinates were retained. The JVM was configured to use the -local HTTP/HTTPS proxy for downloads. Ant's timestamps mean a rebuild need not be byte-identical; -`SHA256SUMS` records the checked-in artifact and is verified by the Rust regression tests. +`HandleSneakyThrows`, `HandleStandardException`, `HandleSuperBuilder`, `HandleUtilityClass` (#4089) +and `HandleBuilder` (the compact-constructor patch); no other Java source changes were made. +`openidea.3` was built with the unmodified upstream build scripts. (`openidea.2`'s build checkout +reordered the two remote resolvers in `buildScripts/ivysettings.xml` to try Maven Central before +Eclipse staging and used a local HTTP/HTTPS proxy for downloads.) Compared with `openidea.2`, the +only changed class is `HandleBuilder`; other differences are build timestamps in the generated +`META-INF/services` files and the nested `mavenEcjBootstrapAgent.jar`. Ant's timestamps mean a +rebuild need not be byte-identical; `SHA256SUMS` records the checked-in artifact and is verified by +the Rust regression tests. ## Validation @@ -98,6 +108,17 @@ On macOS arm64 with JDT LS 1.63.0 / Equinox 3.25.0, server OpenJDK 25 and projec Failed with three internal errors and wrote no classes; `openidea.2` Succeeded with all classes. - `java/java-usages/tests/verify.py` and `read-write.py` passed with `openidea.2`. +`openidea.3` (compact-constructor builders) on macOS arm64, JDT LS ECJ +`compiler.batch_3.46.200.v20261008-1115`, Temurin 25: + +- [`tests/verify.py`](tests/verify.py) compiles and runs + [`tests/BuilderCompactConstructor.java`](tests/BuilderCompactConstructor.java) with javac and with + ECJ plus the agent: builders on compact constructors (with validation, `toBuilder`, `setterPrefix`, + generics, `@Singular`, `@NonNull`, empty records), a long-form canonical constructor, a + non-canonical record constructor, type-level record builders, and the #4089 constructor cases. + Both passed with `openidea.3`; with `openidea.2`, ECJ failed on every compact-constructor builder. +- `java/java-usages/tests/verify.py` and `read-write.py` passed with `openidea.3`. + Windows and Linux runtime validation has not been performed. Rust tests cover source selection for both supported architectures on all three OS variants, offline provisioning, corruption repair, concurrent windows, explicit user overrides, and JDT LS workspace migration. diff --git a/java/lombok/SHA256SUMS b/java/lombok/SHA256SUMS index 46261404..3a1d69d5 100644 --- a/java/lombok/SHA256SUMS +++ b/java/lombok/SHA256SUMS @@ -1 +1 @@ -2978d8b2d55dac1bb4936ba44562bc4549931d4e71a7ebfeaebccd60bcdf7379 lombok-1.18.48-openidea.2.jar +26069a8138680f5e1100c83cd064d6aa7314385a1afcef74269cdcc41beb0442 lombok-1.18.48-openidea.3.jar diff --git a/java/lombok/lombok-1.18.48-openidea.2.jar b/java/lombok/lombok-1.18.48-openidea.3.jar similarity index 92% rename from java/lombok/lombok-1.18.48-openidea.2.jar rename to java/lombok/lombok-1.18.48-openidea.3.jar index b4e1036c92736e5434c12b300c8ab3fe3ec01e88..219d59e6560d76ca12485c0ecd60c1e12136534e 100644 GIT binary patch delta 70938 zcmaI61yqz@vWgMopKfk9+qpM=i^CPY0X*T7&S z`#KsB0~Afjz=)t=)PAxyKF>df_|ShpBFMoeFtImJrtQ^Ez94uA@6zrO zBvL-Sy`%9H|0%na@`UNbT*W)Zm|ZK+B5T+8O&aw|;5uAbDj%a(`-4SX4mD@*ys;uN zncbhMEAkURBLIcMLD*z>Sw2vLI%`VXX66ldQ$n(SP;umq#UeaK4s& zxn#JHm>j*S(s+zC??xBj7m~bH9hFah_im3KmG>#|658}y(O+V_iLZ;6S7WU$CeS94 z=?MmJ7aR^RPsFtU)vwDf9P>0K-8%erGl)B#kvn^o>Q~zzXL*VFUpR5Gu`&L|L!eo& zBw3xv6iyH-NQO0$UFDCHA6ZWyUEBQqLG%TfZ@D*e%E7`#>+kB&kVsCNdo)p2&D%23 zjvKZ%Cib+#k7XCEr=ri9^EGu$2wNCGXAtZbJR$Y>YxAkJ=WWZ&f?x?H91`(QMrOWj zvHga5S>_eKvb)87bD1shKY0akU^QIFF+We{Cbob-#{fQ9U0Qd#1&N>&K{`ScA4%Tw zhWc{8-h2@LB1H7E;G++R=1ng0{8JjgmE%j+>FURpg{|s}6?s}34%v-l-#ILQ&B2~m zdgcBOT>O&VFv?P;V4tjP-9H!*VlXYT*(UcO)$*RF9Dno;Hz%1VwCHqL=Ms#DM1iU` z0Mlh1A(JZ#%WKrHa59LHE_t5}J6WDYiOQ2_c;=Cy-qDDFo}jRxu%4i3y|8GVaBXrX z$$jE~Va4EcunPoXU=YACFr@xhl#rAS{%`f)=VMBjHmwj*&CfW#k<*u0?{tCYGpOnlo{i~&nG@xu z^l3fDXBG8N^1e=ADvsJC>iTwW6oWE?v$S;*uT-TqKPbpR(!Cd{A&eYL@NugJy5Eox zQqJs2n%_~Q|n^nx$nXIp~M^RY9^C5w*^h_`}qZvfTezV zlsU2Pkcm7%W0aY+1(pqygZuNu|4Cb{>u{Moce?+B$&v)DXPNhfse$i;WXN45x46{2 zmqb>@5~b7RJ3*tT-!q>m#@C!Z@!GY_+$L;v3^2Fpaqt@2OZY#{Vt8 z>S$*b1S%(;sNCrPmn{o;;)!m(A7Auq-P>1Mt>34Zz%t=83SNL~eu>LzRQ+X<_q~&?V(Z`rh(vE`m!vz#C z0tHeXJZQ<C0gg5osvZ!Rxsl|rEW>cY0v|j4( zUU-Dm58uYu&1ZyL@ftC+nrlPZRKinyI4`fbj?V8hXMYJxDx~CXk^jH>jRQq|PeJ9j z7*(D+|C3*6@+h^<|6hLTlb_OPphtNvjR7WlbmP)d#dSQ`A_TQ|pqvq9xpb1w&dMKKBBQ6LK9kNfr=oO0lZ2-@#vNa}pMM_nN z6HUar^WQ-eZT=vDr}O0yE_&rnbUPNB(2C~=wu0Yk0%%85?*0RT&{c)dCF`UT{oi{F z;vESUU7b$qx(YFh$s84)|NW34lG4e^|6lAVEvyKpc6yxT_@z5&FSC~1Fwq3=YA!%j zt@DziS5|*J0xJ*C_5nijk^}Z{tHBy12qyS9kXXs7A5r3AV8l=%LiX^e(7KVGV2}_s)S~2wAo%~RPT^;~=s~G{g&-0np#Eo+4x#($e-w7pf>tomYSyApi`!8* zylHYo?qedf8ahPtCwfkV=O`8giN^@~g8k1QP)B;Du@9Xh(`hcIfO`T zr>8_rXpun>#=M{~bUxO2LBePoadZK(8mOAQ03jwb!Ssm44tfakJ|74ULT}67vti;u zd2)z_IO3w9LgZun07X4uvSM8x$WUF$P8?dBV`4z(VW~(32t=ib0Zqm~km6 z4bYE|jHmE`U|?L~A|`W5{^KSZrpH5=4$?CtRm(wf5Hz^?Y7j0IZGfU|XMYxDKp9dgG%#fAkE1AanNIcM`04=1yIN-5HpaZrFoDS6pilDDhMBN&3YXa1W+5BpnX7M zVjC0-tXX^mVFR*G`=H;zn&lxV1$|19XO|!_pzr1{=p7zfa~2-v1`q)_G3I{~K4h4A zfCLRA=6@Ca{Ei}KI}`(>49ADDsvcvlJ-2Qdvw90O9(5 zOeer6O(o1D0HM4#<|H;cZ*MEEtp`vyT4^Ex;pz-MCGxQ$<_=J`(w3O%Sm;CduiGJV z(#c_niA+pV1g;$>po+>4^AVul)dBMgkaF_CECMQA@s*J08mcUkun^Y4s3VP%B}4Fk zp(jULK1V4)d*|wdX$VmL{+L_%KClFzjXYA1;%jqR+Uo{p6hAQG1kDMBjxJ=KDWbDUWL{A>%%?PF+dh{TD zCou1!2Nkk$5pxN!k+O_Qhl93Ow}W{KXfFGX`5jnG`-O>%jSdR63M4)rRY!y%gpfTc z6+&=>o(-{gh1r3Yt+>W?0>VfQ25SP=9ARKmz(z1OI31v*SFgXAhhY>spP%F&f zXh4-CE0`ZmAu`y&-_SZqJh_T+QL%0V0cpK&he?2JW(Pk2OhPN&z(=TU3oOK=7EB&Q z`7S*LQkxS@1E_Z420s9DJ@tFi&KCy*Bb*!&G667>BmeS%bAXWLih(PEwAhds-1kBi z#U*0n3Xd9H*vM!}a48rKC!rOdHHO*^gdvjD$z# z&*^|M0r!@4!D0mH+_%D;&GY}kMm(|wD!0&26h5)53z zkW2O8hX8QSMsP6@eVF-tOfBkg(xN88zfmK2Mo)vdPYotSGBkrfqgw^yXDfINjk&!I zEQ3aI(*|Az?5uQvFMzmy=>eahuYV2WkT4)8?XEGeGf_Da#z9Y}v`#QV8VEv#d=G*2 zg3;j?&9qr7K$-VJJS&4y|1U!&He?piABhXWBSj~8hnXr1hB}pWcnD%a0;+$!2(@c^ zTI2=;gdK=34jaTCM*Oc4Tok?N`ZseEP;*fS@hl8PlhzByLFV&7q5+@y`5`mtmb!?4 zlxc@L89o?5OXU-QWTKt5&?aL=B>ttR{@!vYt;ah;us9ze8{Un$PhUXAeCtCsQaZjS|COh(gd6s)z!?3P}KPOPKdB- zLUrGD5CbvN{~@FfC?|ehNETr2^CO6g96BbBvQF7Cr~qd}fr>$iup&(oAw@t+ASsY6 zptKUjUC%{O^XEOyzq=P&HyLu_9mEVD4MMUM@&M>JAvF-xZRDSyzw05z=&CAu-wXlD zEB6y54RBq$6OsrNnw_Zb5Vb*^V6)h0gw>q3LfZ z3cd$|m>EWmI2wfDAmzS8ECGEV_8>n2iNphlDX?~M48e0mTe~&JItHUdd2Eg)jb7rn zz{0{tFNxb@iJ_O=?Xir3pba}<83WoloUu}XY4yns%Zd!m#}tb71n|)>66*}$^Nhg~ z0jw6j!Mb7wn%>Wp^mbHDiBbHQBR4EUgBJE-V!k77*$YW|F4eE_K3 zDXjlyp8G5oJs=UkfaM7^I?xtYJ}FwZ=nU%s*iFC2(gGlS|AW;?h#tVX1kezmVE)oE zAF-goJS9MY_@GQkT_UI_1PznsWai@^RJ!%(5uhs&D&1~a*a*}%DZ+}30T+o!4y7YN zo8n=G#-U%I5U8`wnl=F?MEqoj0)Q^rp;y3F>Wmlq7ATZhX{am!ZCDQ43b+-m0L6x& z^GR8`5bJ}=XCC@(1Eq}s5l6{Di(FHICIfExJcK$+q9Jxy;>(<(zE+N;M2{pivpE$5 zFH$}fN{WkC=b<5!MU6VdVgIH%HJU?{nt=?lN5w#jtcZh30QSEnK!t!INSg&^2ilso zph7?s z6OgQYIfGK=07Xw~w5mi}1|o!W91$T>xD0v#m^5y-2r)!W4rWY55+{rYaYV9KXe$7 z#T$i=0q|GGp??5sbqcyAh1U02i7D(B@cQ4S0tJ;8Va3bA3%rYsRG6QCAIVTl0cN(oy9Fl$l6L;)(C2KEX-0Aq&z7owMJFc=^a$q9Q7bl_`V z7y~UjymV?XV?e@R8}f;D5I#{g&Nz=a#CTL+`MwI_@Nfy>MA-;1n811t*NRK7RBw}mk&5wdUq)(0@U55c;Da(eV) zmVgiSc2G-*sJbSjLZitRL`{V3ahL|s-uLEUN&p(61=wFqLexPpH_{NZxRZ{7QR4qU2Z+jKU1K2*C(a2r_yZ#+HuuyUH8e1c)1+KejbMc?M!T(4co0Q?Xlsgd^Tz z|JQVXXJgv}D2;Ql4*&@2Mc9VG@Ym+crS?Wej{yN%CZR@jN-!`Wa{39GkXU8d@c_!S z3T)Xs=-R%MdwTFq8v`S*4L$w=?)OuKgz&gFRNhdZf4l!apMr3#QuxtcrQG%LX1Df5LzZcGZkwgb0?3 zw^{4^-!@tKxE0Hh&>_Wj4fSYUquhz z;A1-(2z=aVQLE3bk)|nZYkSR_kfIxKN730y#dxTVyl!~pu6<>?p)e9pfmh(;`-+=p zyIAcEMjomb$3L&BV@G)4_Gx^Yyhe|j9j!0h7O;Pi?_tt{x17N~F8%rsXcc{29AB~B zv-rT@!lt`K<*gtbDnrv)6q`8fm4iJbGGd>~TWM5p)74#Tyi>&Le|JRM@-sU-dF;q$ zRY?s$Me3+|wavpJMHe zESAY<>}A;ZLUz9|TY0-R*>i|ti#nE1KZSDKm+|$(!Ec`Dj6t5>Gk(-pYFe z?U$jP#D!tDbxKM5p5{N(_SI~If|{6V%7+Ll##Tw(Kf7Z;przfFTu7u}eS)B0dCbVG zOhr#yP@h*&JJtPsNES|0^Yqc>O#qMjxA83fM;0xESYgCtW_I}cCbZGYU$Mj?b!A{p z?uD|@g&tLvNCyuS+VTM)XLC=M}k*7o2p%)0bgzrfW!ZRm=0Z7te&KDgT& zf5l>?O>f*>|MJlfZXSx%&&6D{PQ>$Sv1Zp-*LtsWvt@VD>cbeA)w&*(?-7LLhp;H zY~NzdhTv9$ud8;qcut42d9}2(-NF|;=o2D}z^He|A&YA8Y8GXc5EJlM<~N7ttt#~y zo1+v&$-9tV=s5VdbuLb7b@W_NYHAU6LSem~=;`{`tH{do;rC#%Vw_3>qSQtF#8OWE z2jJPgZ_wSJAF1>{i5qHSeLo*GGw`9ODhh`dZcTdJabHWzSP87*Vo3-VR@Efv zMRaAJV!XF;^x-nno2p=IXvJVM;nbXR-5{rVF%3sBkgz$mR z_tFWc@b;DPJ^w@6T(yPBtM3$)W;(*(-YD{4C*eqRC&UD^oHj7;!Zme@Emx<9S@xf* zw?@Ch<;50Nj+qjEQS8{MRZuu10Wpjc7r;MWHj^6Bz!5E+TiVbDAAG+%(5Rf(h0n2! zCC^SlYlUM#U&+axwgjd|oG0p!rEJzi*WG6bBI)J&xpOI^xD4d4@Yu|j1v!)@nn8R$)>9b>li!c18> zWbd@9arCBC8k4iv8S+;0W@tG(22);?k!CSWO_EWHPG=6(-zThB%mTF%*OFd;=Xlys z3V+(o;Q#IfROV{nW;MF0W`(~|Rm$_{uD8i}xq#z>v0rB0bg zF8*m$0x>a<)5g0Zjq&R##Up6v1ac|DvEbp;&*RlNRTUk^&9yf!dxY(%}K)GLo)sB@_Wzz zQXN5SZYyb%<}V33+OXhk?cIx<-OKqxZ{1BV9hYk9|2*xMS!Wj;qp(V={9N0Mb$A3n zxQxYtN1R9JJMNn(+M67nl=kdr){K}PNh~_P=p8$z$|Tgfp!GL?^LHgYVV#jpf@UwK z_<27=r3hG#L*c`KJKJ5lBDcglwZ5`PIxdKp_T3%pUXNLSQjguia&b|6QDETRxCu20 zyyy-W*pTn-biyJQZY_T|dK}>Q(ybc~-@tGxi#v_&HsP7FX=(C1S`Dt^q)7+clg?I0;w9N0fScQu;L{PsWqbXLa z+y7+$r7zK0wI~L9NbYjYH`8Cwp_)n3qIGhVqDDDUO8hN@g9CN`D`mLE;C|^{uY1 z=WgHoNIl<%sDzhRvU9wTPR?-saxvrHSpKeeZpT;dR1ix?*z;})X;fOKzcAdxQ=f8~ zPRvtU@sYq!yZ73dKWHVxFuo6asE*aYF?{eG%SqRBCy1zV%M-?(>mrkRrVEs|t2TQ~c!5pHDnll;2l}!tYo|P+AN~ zllEu|a0qGbPMCOpg*#+@c_rFG#!{fplJQ{CR?`Vvf|0l#}uRe2jWEtHBKSBO8ekdn2RSrq|l6CX%H(98L>=tp#1xGKpGgENIE(YG-K@ zGIH6x=Pxj8uKV~!>6z1013HtK#@pMA4_2YRE9tQFNR zU%zdx`7IniwaTc;P`Sm;@RE#C#FO%8oAzm`sF|t8NvGLbue~cXJcw;@Ox|D_n^h{R zIG|kkK)eS3JduWeNywbw5j@~&<}L`nGGOHEeXo)6_o3YIqc~SriDR6v;zF!4?MPO$ zmigYCXC<6tu`I5(vTmE>$CL#yeF+GTn0N$#be707*gfN5sZT32=7dnZ8}{y*)dtN@ zr94pd__`1O4S7ieT(w?~G_GM^EBE_iFI~`Pra9xc?ug~RIu5z0@#M#p=1WAYPYfHI zrHwrH6oNJ#(EfQJqEd zPp2BvEcc+`*E#U43lBN2XS;H&&{iy#3r5lo8}?b%y+$V8Pjb~9lWSdhUprpnJ;SdW z@PRTYr_ajV->jAO)~+s$a-z9tqwOGeywmkGr#CRKz*>vd)SXy~EBse5o_G2WT<&+G ziGtB*fo^QxD_Z;;4~)DD9Ahgrnd%n_>aFYqt=s}eu|*Hzg!;+-MmjSZV)@n@0c=#_ z5EsSXYc=_Datpn5mY7EV!1M)Ij^@d})p}Paq*|AzQo-4eYLR#mrGjM4d2{F98wnQD z4Omq6bFRLw;!vrSZUkOU(0^~8Vu z;s0zg)1Z_9S0gp1i?1F6v-aIr$B}0oBN;I2whPk|QpVe1t-HFiqW|H9buSx9|CZc~ zv9(w5t$a;`X82U3derdI{eesyNe@~>QCA;@a`iW&eOyAB!V7QB3ka*>Q>LViJTXlg)B5h`*8LxAD1aUdaTJ}^OjqiESWn$a=X^2?OCx` z`^%oley%`GUOOGlu7{E7uLbwH^fTPG#rs5ki8%Y{dQJGgeJp1z{-jTI3OCpbjqZMN z>0qvIk3FQ_2$!SL^6D-#8fP!NB10I(>lU9rwf`*ykMmTrRSsmq6q=*l>y$DC8hT9We6iPd)g1Ck9>I$?Q5x4F3~G3{I@;qK=TogIMcS_ z(jb2cJN&x9Uc(hcEs^xLh3YKK_swWVP`B4wn_WTN6kbnZu|uG&7)O*(IrFTSZ3I&> zYbf3$zouy^!Qv&SAA?O>R<8|R$+GZkN<^$S5~T~jbYqU!WCoDV%g>XoZP696&j-x> z)_Ml=XfL=ZUJT;oS2k*lCJ*8Bne4PrtLjQ5_yd2(a44sGo)z@?>}XcVKv-D-8qFR3BnDYdyy*=<0)u(>bA6;kPpT?f67QH3X=d%fY z-<1$eeL6d?UH*#W+E#C$NX8iEjO|(w;&{j9#Wd-u4S16F;|Fm%i#1fo#7ZqN{;?55 zx%%{VRv#aB7~l9i3#!E^FEIYz*0hS_1%C?s?SX@}>b*q@WX7iNGgyU}kDuT0q*2c! z>XJC3)TEwt7q1Mz}?o-K~6(XUqn#-g)MxgY>(B zMS(OoBB9>tf~GU7O+yPq^QFP~;@VMPcxVzMb;)m+P%(z%lnX4cKMq9N`^?{e7uT4M zq$O38UiVhv)#RMy<@Zs?*Gtx|P841=_@@ z`Xq@Gp5&I5wTawR5tie{>wixC{xIVB8Mce@+`QfwxzV3XbOyQp3uIN%YwYg@s^RKX zOT4sKw%=az_y>Euo~L?$pq`?i<|u76IHmZ^m(06?%T|FDOk{4`)UOHekkN!JFS(f&2-HC{2IW#4;IG3>mQqbXQ?bB9b z+bd_2!72wN2k9MCvW-PAT`>E{rLFCuyjJD|% zoaIH@!E6l%0gatl+;bcFtlKUR8N7yhz9#jBcztA9x%+hq9kCH@@$Gi72lwuWmdG&6 z_EhM@-^G?XBL(06u(I?{f4jXn@)T~Ikj^QND5dg!E8KJZt9?0jcUw@_KYflrdk<2Y zZ+`MD>a5L+SG|WuPUG*Kg#rzKeoN6rZ8^lxTro(|vw(y7%iu54)F4g^76SP3SHA8Z z;?k{N^@(-oMa9{eTD=E*)Wek$>BiIC78<#-hsC|wizLicv8nu@E9=*P z;83NRZY;*}nq0goW!BVa&7EMy-Ii3M=+8T-$VWDS3XiP9xD%4MVvH1%ULSGn@^xAe zrS?el6t5f?zT?uFIFF!=$ZO~t+k9-_c3KbL3(YFee=cO9Ep8_in9w!{S4kUo{J=bX zsizh2Hr_wZ8}-V&BdVv3U}w|6*iJ)Mf2Nj+!d2Ij(n}*=LY}MybZJF-@}GgvEt5T` znd-Cx?x?*~mn5`&plNVlr zAsaKT*_@cK0QHH1{;)BF2W+!6_a?>?_n%+R#d0HR4@IR4xA-b?vsb9Rl^V*0pJkgx z3f9PX74Qc{`h07cXwRyX7I$YBTOg|BVGH8!TrN+nGN3T&5ndb<-nr8(tg!bqbDu;t z$ldaj_nKk=o+#0N%)AfV5B0uJbnT7eW))dJ4|HBU#ZX^9sS9;-fH!c@AK~BeYihKo z5E^VL)`%qPWS2TfI*}u+AI2{%Pu?)XOHvWofbJDM>)P-rKHYq;O(?V!Dcd?v+5L@# zDMYMmn8{7an2d(E>5M$IDS?kNIjDM?k z^!oiRzYYFws``CNW)2UmDLJnwY)kC1H^=YVwQ{tr?&90SdU3?sobm9KM9<=`fJXJM z|09x{FR}5C2ID{Yh<$(f+zDYqP7$_umK@Vl$g~a*OtH%*@j3iqw+rG~tOx-yTIFZv|Kg?W4-aMsT<^bcp7L40a7vlk|LQMCzcS;u5nnwy=A7-3tCyc=WMYTq-cLCf_(<>M>R)AW z`wkWn8T=g|>mh+|UmxbRzlE#qDNWsdMldwF$h0v+UAm;U%MM4q65S=dr-u4^pX4JC zDHngnn|?=|$bpt^n<0mqkjrOPhOGQL3p8<+KfLLUvMV@7Yl;Ob!?a5jJdIT+4Gf3o zG@64%=>+(u*BrWhM2*}SZ^%}fn|F%RDdUA_&sIyO;$n2HTeGU^t)qx-rMe6K{8+21 zuCw<=15#DPx0m3BH_0!f@Pc`i`Mt1#|yZT0Gy4Jc{(!t+>@sXXvo5ZJSB7JU78@$m}~!sM-cmu&x?IF{N2ef?EL9kZ%pvTW`&%o6kqohi)p}Xnoc7AGB%(5n(7HBDz?=U zQpZ;<{%INQC2yNHbdmL0Uhm#3=lYWVV!F3>=I&y`*2I@HJ0}v)o8XM}`RpTN`V4hH z-wZC^$A=Hu*xSmsErY#=219-I9ZR3#yceOzFUy$n*VED+s54z8U_AWIMpC`hVbAu+ zy44iAeU2{%FJbi4Zn>avR8Q8@FE3;ptZ`@dSW7DVu%uqh;zQ!mm3&I6el;C&7GC`0 zA~IL~1$%^R#k;_mpum);`z-p-r5T#U#zK%Mkq$E%D1nH@ecsdU8tg6qCj5dEv-?i9V#Zw0yEHcY1Gc3CYePY`$jM0zSuIS*UHD zopPqc&Nv+)sS+6yJcQlrR^AjGFIbmzH#l@((s)VdvnIfid@(c#wB3ZO_!n@;f_eA7u6JC(-L*J+C^XYFp&z{h|mibxel;14Wr?G_QNoL`Rwq1H6 zshEB~ODzMHtJ@yG+yYi-l?8$q{7n%xPgu$f3HFw?E6Ck3{C~ zfU|1%Gi%<>k7w}WnDdidu2WLIl>+y#xbb4LphbSEdjs6R@OPcke{>1VxD~c!%Y$~9 z6iaY_iABV)QG}h{l8;%^+8`0cHSLt$YmE(C@Q|8#oE;0jm4Wl=DaoS;QD2GLOD~PG z$&+B3rypKmTVHI1=8)RvApgMM1RZR+V84vwE?^Lv&38t$hdkvg`bnk`9gJ8%eT|v+ zqY5$CE4cfh#6)v;*m4*3KU;CM9KXp&gPape7z}^*3MkbpxQK0I^ZXsKWHIh%m3J!r zvx^T3-@e8QkT~SkqoDRH`aqdCu3> z$sezfl6saI&bmZi-4eIsIE1~UDl%V`GS&N3xytnJNgAI?Z%&5POYF_0>q(9;jGCuu zSFEbg`NaP2(9a`x)K;fM4 zNQkxKY=RK}M_scZ<%XK|T1oFV=St?cZjj68*LAYjt(`u8+w{lrRL{=!YY1%)^!|#@ z4%|#?SUNyN&c!8&DlBMc+H-ZZPBX43;oeWYa+PyVmxF^Xk3B;sOSNUF*}Fn@my0_4 z!)ZU(W54!}Cu>#I{2DNe*mcpnHMC@h&u(gD&vfiJ(# z+)fCCNc`q>SDakrTafDN7K_NXY#X6wz*n9lWRyvxc>=p2EQioYg$prkm4epSuQGMR zcYL&RVJ7rWg{&({UG8?J*+fLKf-Qz?!|9vP6WyQNJAH816txzVaek{6!@Y1?ZlI@4{lSM}#@-+t>`>Q2r;%RB$<=DQS zjjy@7-d*cLP`B>vdEp~i39Z}72@vL_1SaQq=jJ0M?5aM(mFX$2zt^&0-N600HsO(+ z6p^jcXBnkJ{Hmbtbs@c`$+UefYYRV?$@Bv=J+;6^p)qf|B0}B@TK1P1?~fux6N-H` z1+6o;{KGlpZ65L;2G0eB3%J2~o}NAm=il=9d~}}b;^Z>F2*+ZL>=|2Paw1=mWcd53 zjB0e?7YWOv8>iiVH+B@3geQFF`mT*u)JKm$TaqDAo6x#34tLRZKUrx4BGmDj+vpkG z8VvPHN!KOtT28quW{r(^8r@1~S7@7ND_&zVT7XkYz0Y?!hqy<-Q)o+Id8T>Lw%^=T z>zcb!e4lDYYAs-6xPP}{F>RXhiJ%qNUon3Azp^|9f1MvuhLtB~vCzS_f6@PP`1}HI z=v=_HJT_7sB1KbljTMn=p6GgB`+=Fv9a{ydnM6+ydnGSN^|u};|8umZ@v{M}{0%0( zr=8ZDKkx@?wUZVCbS9%Ia~6#0uAOmlT=zxd2JMl$9Pd*593;H^vB^^w_WA{!fmIdtK+I2j}uZ|@&jCgjcB|1)iJ^`kL| z;YfIxo3D8F{-1mkY5CdU!i90~>kMmok*=Z~W1OF`iB|cIAl=d^iO|Y#p|)03sZYU7 z%(NG9og&7iJFE<0H9rEbj1%7%W~o;-h9T36@DN{Q7}oF?PCO%V3vNBEPn z+q;!BgQ<$g>S6}$3=JWr+HZBbw+F0-^Iv3gP98cca&^AQwCBsMjOU=^*ePI8^b|M4 z$FGL59Fd8354B)zy!uN8Pmdr-SBMQi(HvdDpY~d^elY8vzJO_${fTqW&P>A*cM`K= z_EWk6Z90C@gcs3ohSrYLlWn0|uk$e5BXF}$Pl-$?vy>2mWH)5F$SRoU-5JJgQp;cO zPfS@c%8j~zzY(2$+ZC!U54IBGoy1MU*Vyph{q%Z@AW<6;%h86H244an<`bk3+mnm- zP+xa-avXWqk{giAJpXNK{gYtux6E0{z~PrN_b}_=RJp-Rwi$z=o8h~urp7yiWv*c@ z29Ak@#o9-;j)JdnqrWyP5}2uBw_@9Oi{oz&%|%1n48tU23)g3hGx{v2=1J34rZ3+= z*x;2U94i{K?}qGp@W4+^KTejl)!{WAVO)Io6Z{$DBN{4Jq)|+d{5<3q5&QdWbvQbO zQ%vE(L83tuug9QrcAeIGV%sOA-^~_LaR(Dsdx6~*;mKB#zh){BR#7we&^-(;(Fo`d8rp(;GwJg#5BRO$cDDG!(gWaue!qsNSc?8ule?#9 zbx1(>hO`nhPFCve=VZHu4=o4U}me27&7b3cY>BGGggJcH=L6bF4QCdZ_g^j&=K zN-<};@6?bJgHR{IHz7HlT96aRJSC{5^U-wYk@PV}0hOnS4r`1gCOl%{eLoEc^9zDe zb|XW%jr1&@-*)hWRq-Z1ov&UDAAd2%9D=m+)gV#sYD$C(KeX=e=r);(aA=D;J!y$n zSW)T-ojUIhI%%^!KgA%F^A}|H!+v$X5^8>Ab!F=|F-7pR{_s7oL9qS=X5j7J4y^Zu z-n2KhSnq%H%wl%1i=Y0|J9<&mQxzSLYqFum>wBdy(pF&z@8XMn!*TSnqpYrYC&w@J z#S?PsABSFJuo^mN)DcoB__Aa8^GJv0G@0UJ=Fm9;E{~t=_iE(OnZ=tttCkBVHu<(v z{Gt@UeF0}R6i<1PF2Tg-(E-s2m7upSz4y;>yxd(XP*gd;r#|2jx zv9HgoBEO}UgoiWrONXkpO zMh_pm`7blPQ=4;tKa7G#n86Y`vPRabUG-jmV)mj7?3_;QUX0<;z< zA#yKhm(hwag@*BMb+AnLSQzC}iXaz~dibW&+#eyYzscWLh0n`kRmW^n4};|gDs8=M*cgmko7Vq_JMtGUxZb0?~h_qXmD+e|7wGvRPj^ zb})U`g%NtEtFC%> zX)ad1#r2?R-Ve1nP*eTzWl)JhOyX#Fm)LoiB;0u0g{AA=kKbDBVqc3I`n&tU9=~%F zd_kl8XYuk^B7Dq;rw+U2IDPG3#67P>&bn;>yeYN$yP6kL>v*4ZdGq`ls>wA*q7vrs z@HtT>EXyiy?HjFZuD-wUQGU)Z_u)Beip*Q%QI?E3Z%#_8_AZsMM*IhBRvii9^L6bC zn+EXA`_dlqC!g9C{1n|4TGh&iiKtt#x`b-gCD!<$^{*AEH>s}N$QNh=wBaot6Og<0 z;-ihA@3iZ*{(-7Y4mubK5Nu1~IF27-gpLS1=t%8DGIHQk8H!nm%-$=Kf^h(-2 zdM#iFbHt8Orw^{vCu?|ZQz*@Xl+@GSF&R=e*eu9ST!2Ur)!SV03+YvL+X;QmI+%aT z@s-R$*WB#kleY)sjuhmdU)z@0rKlr~g?1LoB}Mw9d>WcRM@@U(maJR|;@^KMiO6}@ z2&b^MccKv4lT58ya6L}Rb+fUEHBx(6llaA*zlNly2`AJ0K~aiJ33Q5fKvQp3~&3r;S#erYiKOA78)Cw8B>k zI+HUh&k0m!#pGr<8|ZVN^OAKh!CU zyz_C7pK4x*5S!OCDo*I>|M7nE9C;C72$xzpe(+8@(@mBuqeJ7SR!i28%dw3k4Cl|v z=0~Mx-$Z;nnJWBuKe6y0IY}fx9<~cRZE0UzNIcWS`@!~iy~u6z^n@*YT+f3X&ef*F zGvis&XsEEakpJ_Xx!!4&BfA(!+;L8IMf$wUyTdENAGYx@>G3<3SVw%-YrU5xKUv@( zoskzB>_wax+3hp;HmgF9&QxO6R?}X~VTMay?Zs%cnch@*{ehIc?~o5*)Ld^SyGY)8 zBFyxFJ=`VJH1a|wgq$-}QeL`^zPutcGfw0-CO&*8QcFk3;~JDyBrxr~Jy zOz9y?*8B`$Tu&;9Ag#fMC-(nC)^~tY8NQ9%<2dJ7$2^WbvL$3olq7p(mt8iM5jjTL zd-STzkUa_=MMlUfBt&FIGO|j@`oHJA`hDN;`@62LZufrf=YF2|d58O+I~6_0ij}AB zddp-^b#_+1fvKw<6QHad&6v-oAIhwp@?D1QkKO45&f-=sACabnPctf6NG=Czjt;iW z_#%0ZJ}Fw4Sz&p!+YcPF&*w~kTef+a|D1I&+2ZUsd9K_x@?F84NNneWT>-N>b!)Mv z22IBqqm&1I9aPp5TN`l0XweRoHCFiYX>PrCQ+ox9&db)~%RUKXv2LC94SJJdE1m5P z>Z|V*H{p?;H1bwWiHJJ0ggM5^Q>w*_K*I(0fW#~BZaJ}s=sV8^`pV}>-r68hAjb6? zH5v4`#m$!n#3*AVGt`@|$jvQm1qD24Vy#XG=5`hkyQF)@O_x=}ul99qvSasPwxZLm zKexo2^o}sqz;PQoy%n87>0iP>SxPadf5XPpsC~mMBMw)p9ndJ!t~7kU$ymI-(FAd1 zGV<-KNUW|a<5WR^d(g<$E4)CK%!{`?8_=26%hJn*uJ4$+8)AH;aI+L=dyRhUn`ah(VSfjcA1@rh)Xq}O zv?RD6yzTBhX8pG5<^VhTe5#%FUGTv>^9Pg(ma9?{bl0s#1{*A?z6tG0ek*=^bCo%A zQ*>6&mWlHl>8z|O^RvyEOTOAEt6R}1;A-J3=?jr=S>3mpsB>2wQx-%RNv&^np8L%9 zcHQ!VQ@wrWige1)FT#n~J74)C8`oI)tZ8FDR+*iCw;kK<^G5vL>m&XxYf8=L2|995 zfc3i`3*#hd=jK|z{Zl3VtQk(p*vYgGe*YNxk1E%$_(_7#pxiop)=DzJPl@UI<_bM) ztY#=$3+lMC<9SzAT+gS4zxOLwtiqapXDKI&DM#jc>zVUe-+NeSRIs%did-_x=f^J% zRQ?VrGGBhBowXKtPHab6q<>?T-sNtHxY^w)M&g0v7}J~q&HAg+BU6l>mg_R~Tm5t^ zZx)`8D(Sm#NHE@+%HUnCWZIspOh0Ol4)9_~n4;`(_9`EnyQiM@?NCK!ntt*58TDWU z(<-Va+cllxnC{r|yH+4}Rf9pXQ(Z22ORi#ih9a*J$)WX{C-}gw+9>Wai;?#B;OWN2JAHN^fDxe-6ob$4YJlZgj`l zHDvfEMm+M1U9l*7B=ZHBA*pUcMOp~E&}TUoH{|HG=}t*+a)q~I?^{vpU!ynC_NKJ^ z=@zcQrpjEZZ=C`L_15^3~CX3lg)ld@h{D6!rsT(g_Mxn47Mjaqfi zma(Ytu0==tR$(fVm3u9ee<_^;p3cb43l`51mZti&&04zU^IQvfR-!#TE<|>%%#uRm z=kQ)YLiS|_Zj~A)?2rkfe#=NC`_G>H&AILLzX&}*JH0ng1)F+>nZi*~`g(<*#vaEn zyXq@E@I4Mhjm%J$J~et3Lw{?etFry`8xuK1z~Yib7qn9oz@4~6=X+MeCGKTpb? z9CDGJ?vdWH;&r-xVr{Y(`_@P4^wruH^z4s9Ql^M}k*)HiPVb0W_0~T^4&q|z5E<9Uff6h5|zr|o2OWgIF@;(P|=G58n%=ZK*(s`>>IyPkW-# zf48W2A=z)N7fWGsrbOA~ZNsFiw3B`B;S#YX_FO1etp%-Dnp&o4!W;Qq2Ckx?r-pm;ITnttqoS*v@v+SaqQHz**>h z?=Psn?~gQvYt2zUp}ENt(Lkp>$J@=olIGWh z*y<%}JLq02&6?#PxHROA2;A%(=>6wI*eWakB%zKjg6%sEXo>MbDUR@-r;oS~{(w1A!>{?=Nww-zVXbSZBv)vad6G-H$3*-}D;i!{8Y(Oo=e zKcMUk(K(xk*w1kNvwe(l=^2?u^WAP4Li)Z#>+$x$GtREOD)EwzWdX*POb9SMKjrD zZTZ^ETghy`flricU%arPDD&%Ew#Q9Z2Bph};8cm;V(rgJu377NGOUcXJ1BiltvjPu z$_D&oCXF?QSxO|)NGg;Za#ozdTM`g<>9LOLa9DadO*ppx2nRkh!aD?huLD*x0Oikt!9 z73udOxkp(oJItzVJ=6RACb;f6M?*74`1bzeg$vCUeg`EY(?Dkzi_BJM#>9(3AVXi{ zV0^vc!^36IvNLP^1{ADRV)Qpey?aiW*9akmzT_>Cm^GjIk1TH1~+l;h(z^E z13d?8w}kw~&5*`PPbTjIE@qd#S|ekt`RyaI{)&ZqPez$;MEa~-irQ8XWB)kKer?-#j%e~e|n-59s3M-Kiq)}bEyO!*#2x6 zyF7=i;P}+5{YPM$MDnjqGyk=%%U!)f3va}?LM+mU$ReUw7Y>_IEuR5+4B7^k@2XX_Mvyx7#pqD zKCZ`Xw>vKS*Y}vU#0`*SQu)QL{8CIhweYRdw|aW}(tDP;UwNqwTOX1oJj24~Q5c|vnZdlVklj2!SS}0jyK+~8n|A@QC=?&pz@@rZT~q(-=MP^{$}oU zfUQh>)KhX~?AII7a=+uce41`_kF_u}9O4t^qJtuJbVw2eS=+7O}o3E*& z&uT^l7`xMB>3|qqhu@~qCgWyegK?AS8Y7lDDYhk=`K|4f0R4l@P5Sl6f~qWBm+bq8 zB>j5m9qn?tkAz*~lAIpwYD%!=_R@5?Y;nH8O>``7EzV7Ek#9Z-)(sXumN?>5W4u-> zwu!CZiaRbdoC_6UnJ%g2FOg*!krOuOon>I{uTcHoXaw9`NBPDcyDIEgmHhVHNd4_o z{%hfrw`}Fb*RJVm#p$FJWi~U=h4|F!p3giQIiWNQXp_hMF5hnN2^OU;Sa?@p zJyUok!$10!A^O9)3?@(+jFKv&$orqbFC(HqJTwyQyBQo-KiFq+g-_Is|Cz$w%j0t2 z%wGr~g{2%@lT)f*&t9_9QgXjAaV|ghdVgLQ@gMI&uV*|f<8&PM-8iF?UY6-l^%nU# z(T&@5PLA6ztd8_YjfJcej5HOFs@oo=%3$Y+(K=<OQ;L1GO(R3=$Er zJ%4+-%U&{P%yM4>Ok@f~WYurlZHLCBSr{6)da&jz{H`%CZ+LS6plf8GM&-Z1sDpXo$k=0HY!T?PT5ctt2e&-Rym_=?A%{!l-sk_P~5Cc29mfphzr|W zAMM+*q?L5e+sdc6IIPd{YU1TWPU#Bib7KmQiVLjXc9d}9;*3sDLk&)TWaek})GM90 zVjgVR$seB`px< z_5x5P618lIbHy?@n>%J@JyszNLF4QHv`U*p3b>K~sy zb|P|f@2@`p+w)P;brs3_zVC@t$w(o!Z{yqp?@@BeD%SI?(~9xGV9&C8V$wBs*N5KC zuo-c_Ur@F`@QIoA|1MijGV!=rCb$(#!P0{)zE)rQ&9Wm?qGQ>gIr&HTG%XE7{Oy*s zioiF8jwSmxLEvAVam;15$h5>cUg>yv+N-{Vkrnj?&-Dwbz6nLGev;Cb=-_$5 zaBG2=Lz3ki>J`eR_mfXp#oIIU(vzovZ)SlMN0)LQ(DpGkT&?O@bRwEgFW+!rLuvcg zvr2r9HuSB`Jf&eDX)Po&ul!tdG)0|`+0E(A*r@^L2`7_DF?8n}--3WEo(%duAF%eh z%38{z15DN3>oNZGfeZ_K(#E#jl--rmR<@_K`r;hJn#}uCCg!aJW8gh~rN3c;PnuFk zm-e@A?vd`rH^rJ9x-DSm{T3d6F16dbo5AO0aAqNC_~zEd`pZY=eNP9jbDvphNI}J; zwbkp-O*7}AjuQFfhD#SW0-OEMZSP`hCW-ax&p)}S$NIFl-pnCcL|S7-S|XFQVB{u$ z?WE%r(v+r0b2Irjdv#G(oOeh;Ss}B;E|J^qoF^1V=4eq{4wCAU3&U|SXJ$j{GrtJV zwoBQF8|v_|?Ys@RqnPn*=E;n)sm#T)Oe)g)lzApMyNbwGaoaG4`uGnrsnd-;*y}+# zMyE+HYFxRSVWSD!u6zU^7a&U|6*^2Vd zxbpQ@mF<6oBBh%Wzp#vB*4jVkZ`C3xPag}Bn(&iqWdb(fyW`o)YOoq&Ui{xS^}h<1 zwRb(=`St#&=DDZJ6xPP9&7YZg0}B1m=gnj_dKFT02QOWI^2R?=(% zS9a!60;9f}=#!DMudcEy=L5+-M25pD5Bjae1B_HGnFTIo2k$#aw*|js`^-|alPt!1 zId`W{xq;NVt{hQl5LGWTH(5O2#%wwu`I=a`!y{H^Ro86uui1ft+vJnOHG7u*wFbnJ zW=HzMo7FY`qqSItsxfKl8uEeK0IUb`=`X=n+yaVKSzi+w=fB?n9&|muiRE3-{tQ{5 z+U6u>=w93TJ-UkY#_Ml_;ZI*Yy1l@>oA3TWX~FYGs)u*(BxzEw(2T_%|G2JN1h%{Q zH^az^l4)+qtyQZlxnnw-!kC=4&ts}#*ILhzMKK-?_)TSQT%8C!1Iwx18#+IP?NN~L z3KhI-eJ<-QdD2@MC8h`8MqVuk)g?9!@{PTGt79hp*;=rNtNI^T)Xt97*DHzdW=G{n%R3aq zBlZ5mCsuvF6vHp-7sDr06q9~PJj3>|jt&+aQZTtYISHn4#Peu)*xv{@XndX7{WCQ) zvj4)gn<0=o9OBCru=m_wNZSjTdiY^ER_sFKiwlRLq=q)#3aO$_DY18$ocxO#ch6~k zV!mre!Z4hpLG_D6J~DOSoCuqS1wT<__cisz1KBI-18?2;IK+4jy`LQ*DpDk|=OPZo zt(B- z^Ve#ukC?7@@Ay<6plx~8ekjwn_cp>x2{T50Keno{O)tI zZ2XNs(mt;*)NV0+;dBq3np$e-k+B4LQP<=RpYP5Fk_VHYKiu%#_|7u6eC@r{FSDnM zl#85mdp$`(A(1RHaYBuOSj&;5KPA}}j`oVoN;PATytXfhm8GLTn-iVcl!@cP%9UGX zely%(u+%RKx7Q-JvQ5sftxj}Ndi5sKCu#aQmx#iR+===!t9qAkhn-Se)7sY>UNU#0 zrU!WrE{1tj&)zi(X1t^8Q{cq+GA0+LbkKk3{aE%lN8@^V(y-fseXHHRbua7OxphrA zSFk*1neKrntN5hWOzJVW`X7DXIV`rdXUo`JL@lCz>spO&2omVQwwrFzH0XqAb8M?^ z)E&TVi+9xeNH@;zAvn1AzltkKT_8r9Mekjn;V-H&QSi?9or68i&GWT0f8|rYHIvcH z|MQP=lWx&%U&kgDy+K?T_1&n~#zD1_8n0jLM1@NfdD!jMS7{o%=POfMKfro!8(&tK zmB=hvdzP*q91uS@QR+EYX)Gp@Kr^c;IiAAurp7zXsb-JjG z)JTabxj{qr?emM9H8T213(vXbF?H#8()IdD3Ko68B-1ES-T69OB)(S@&@t-I$$d~` zwcT;xJURJnP1tDfE~CJL)r2!vt#JPP!oEqH=N+|c*IxRLUtrlTH7gPpP~SFOnlWRO zy5#hhYJm@XnD!(0w$-np8QM)(npT__w0lZh^OZU{YnE%poKdPQ);sO-eW0u-pi*SCa1^$5h1DnWxynV? z2K+x8#?0aE%paE?wCmhft|O)RcCm6Z(VsAXif1{hoUw4J zjT9||iJ9IGA})^<&omsoaH_0jVe^!u;Jra!X1^Ep)}!Xb+B2p??L@K(V_$9?P3q)b z`4IZ548>gjh|a{x`{m<|>)2V@j&bV<-5^_YK2@RRIj>r=t6YX6&a<;;4W1Qn3Q#pM zdDV(5&-wjDx#)!yN1CMP@i;{%kgcl8L@2zwyH_}tvgp47(09CJ_VKe-kCR{j*f3RB zeaivqGI25E)BW#sds#5@G7`b^SKcokQ+_(tVl94YX8hJ%+M@y-?XOj=!tyN-8bm0E z)fRIy{0O(}625b7u|#rJKj;eOxcayydrIaq>N+XImVHs}}4y%wv!`{a$o*svxu%2nSIv#5{Dm%b2_{*vYh4l?i3R8ZjV)vZuH8vTB0 zVRXMuYg@W;^qZa*DroN9`w_dVA=S;|Ar;eZU+E;}?l2yH@1Bd))*U=ozxy^ocEJkQ znYJfw%kX^8@!sY{9gG8fn7YgG$Fr+-&cq^pl&n4YCN6YI|AY6gRVSAF$V5F>(&K!& z!^V)u%^y0S&K@6i_$So{awJVpEXzNWFa2=(eeUowt3}rP(s{EkR={ME|vI1^dxBG(y9ru$aI zuBqH^GphB>mL}rL`OBA5@6RgSk!yO&K9eLua%^I_ds+6W3Hr2+$6FrPGl@o4Qu^5u zX(O-X(}sSH1U6`9Cz&pjSeHt?y|ZkeDl_37_nOSh0GLZyh8+}HMq*n`)dtZE{=qk* zBs&HAb?ye`^*cxmFf0m)%kslJD7POP@@q@@UMZ~nasL(nO5iWn!q!m*J#UoZ+GV(+ z;7x^JWUnzoMv0UmEW5nJdkpt21U0!E}Zf(jdd^ zF^ieu1=pJ#VjV=r!xXUmV&;}bvx??x+!9*bPrV;E3#Bnkce5*Y^^jqdgsbn%Om#op z?h1h+@7MTOwz&DZD-}OvtX&TceAzrvWTLcadwLj9%(0(W&t&lb{5;~!Lbv$b9c?$R z_S_F_-7XQlh_uw**O!gFtlU^=;twcd_mlhg7l$Wpo)(!Nw4H9D9v+&sNi_b^d9x*2Y3YK6q-m0Zv-0`u z!l5BrpDdULb^P<+@39ZQOC<2rk2O?tKp?X z^L9OV7fIL6hYh#I$V`sK{Y?~^4c{p~-DC*(`aGb{%Dr$g^`mE(kyeI-!W%%L-#bh8 ztK=W`atCsiT;Gb@6}+SireljGIZMp`A8RAGG!osl3|?K3Rk<3$$0d3rS+;Ka%hIcd z@vZxIk$f^=kB|RXgBN_U%|Qz4lOl~vFzPq-go1&k9Moh`Nx&LDYHO%;Agu^B48n1o zrapvf0CLDs3yTsYE?uK$g!pWos0*R$i0W?1)P3qiMBnoWl|BLPkJKzUwHwsr=LsTO zWz?!r{m1BP>KHholpwzrlEVi@L^LY}+YL}5Bmk;!5eSPg`;)POyOiX|Rjgw;d( za5^xs1}#1^dit1A8^m)zsu?MV>DMgMiH_Qu|8FRAZCfwnRQ0`xp6Zzl*l55CLGRBxwnounj z$LS3ZgLqc!&B1p$L`0Hc9ri#tA8ybWEL2X2Lp3S?IvX)q`kRChCeS<$08(K%gdhAe zRJGI6AHD=Z7X#tJkU|)()+ZrQVInDz{}e8Y+Yf@9L-TJI0>2MIUqj(woo#%2--v*p zR0`LQgjYlLjrSkH|$jbfPI?De=0UFG~s;Uxsa3`p8 z^u0|#S7$Jv$APvw_-TN{f)k0GehR-2C7AOwaEt`=Zl&-EDAly9;dKO;UcNX1aJV}7 z69QYYX#*VMGJga2gdFc_fhR%JWz_{QgK$*6@C*pbdk^P=9NnFrS?mI<)=q;}Yw-ot zxotUFafkizEvQ1QjrH!OZE%DPgbLk~II&?k7v!4WXSfLzg;#>U1NhD-X<&l{yox~! zuu$>z7q}5brlNQGNeq^CbwlEdd`sdyr{JQHXITsI7mzZ;B{(nSncoWh4wQ~->+q9W z!7W>GCMrTaKL3S}Ls}OeN92+75fPLX6U%F;r7v zReEkh&k0uG94~?%ShWWW6o&~Q4j{Fm5{Q+PYP3>_eW(S6yBtD|psGp^agvLCnn`4T zz>J$G1wICVD=$w4!G`lxKuDehRS5x}-|$&;PX)0E?Km#xh)HP6zjzISBMkPX140-Y zwU{%)27=;mB1q{8SN-ElWb)TM?^!D zSpiGjwE=}o$^J(e$adxA0=WI)WVrqN2!Dt%K;u%T9mrVqzZsEk{}?|+A%Y+)I8jh4>#o!xo-6bM~9>4B^(8q|}|F1IF;P&DKuLB;O3;>-8F&VDs8A1f=9PpND0gtai%9SV$_eVla5AlkhtMp4XhZxVCRF+^vL^c8 z1~Q7_yDqTd-4F%pn-Jhj$_~UyV-4bW2n)!#O%LJ#Dzg)2Xh z76~!dW=A;lhO^9#wK3xMeo|H(sILHQ9>^}*%1iG70k#YXuTiljlSj>T$ z`*df4>#=k+fJYSt6YhI5-EByLO)6bD)W9I)(in9xxLDo;r(c5mP-rTcxUbT|^icrl z9z(v2KB7zJC-`!+nT`SKG7<8N&IY1RZPQsmofQqH!wzD7@h3$>)@htjL~8hsj6JYU6wei^zZibT^-LIb9b zr)PuC87nwCHX%A9q9sv$Un)+(Ta1ntXnoAd1Ql`jOQu(cV*Wah{-pK9mqL0Rv`6SI z1f=SMJ^(Q29xC(+CpYeM34I8Zf##L;RVVhI(-%R|^E&!W2)fche{y@X*+`!QDfBlv z{B;Igh8$G*gQ++`xH^*fFYGnfYz>4GUqHluE zjMHD}-Ixhs*WILNgw~N&>wb7PClS%T>rj`Ayh5yy4K;jac@`|1fX++N9NJ@Wfmf$bLUSk{di@xPyby7RYVxbSP2t$-bhPh z9?X$!N`ROfoUqVM7#vt%fYIX~oo6_L(%|t0h6Tv#xsujTdSGZ#FnpO!?+jto8{>No8+_yr8*HA{}yWpjsC_!3sJ>?G4w%;YyU69D%2rinT1h@hhSJMe!0!) z48>UY{kk>&)Rss_Xrlp~3u5HKMFlXXK_ZwS#*-%rm=MNx3PR6=66~(})Lrnvqzm@n zN~RYC4BQ#%fWS#gTAa)S#@)O4A=XQxW}ta!Ib7&{1sdoi$M+uK1ZL_uk$}_-a96b@ zMSX^>$Wx$BI>;o!P&c8W>?2T~&=%uPi-JP|31UP|LsT0Ul!PE5mWe7TS7@O7=TWYZ z#0^ap*hmb2LmH)v8Yb++U`L{h1pZ<@R34=5vN5U>g8p7bc|gxqTyLV1A>5${DjV8^ zvI9}g&>mzPi4ujDRQw}U5EM#S9x56|Fah?`;RC>rxL|1Mv;U_-v?t~Fno%$a-^rot z3!V#iT!#WXl;Mw4=myjd)Y(dpnn|2i?!TpRhHp^kA;yQTC{ySRu-1VJgRb{)$XAPJ zz)kuKDG=t#$oX&pC4g&vk3vCL=gli89MKt~`4emg~XWQC-=ZT$^)3~2Rl81VvK;nZxj+hyv4V^7(kKX z>=sbK{}={NEuo->f@hadnvjW*Rg?;JVr4fetHR zI1~uMkELb;J9FTtVG+(GOK=F_Vqkhpm{YJB5;&(uOw>3!MkeCB|1RkS92HJ2fk~YP zk4wwOaNxj}f$52mln}EFL8FHdGuXlguY2JX^ACCgk&q@*O3a9dO3YAWL4*>sEyU%i z%nY_n!}F`EGM5n`U`3622#*3<&oRFv82gaULGR`3@}DdrG?xcns)I)HO>%xH?#_K0@;0_6~_?7-UC5X!R+P`q!7Yh3qk8x_LJ6i z@Njko2zM!h-2%FS>2t~Au>%wMF2K{z&J7IGb5Y_(?z3Zw3CFcdE5}~|pO5SU04D<% z6)q-{JrE*zUUWnQ&tupHaZ=GBj^J8F40|ClHU5-W;dz(Z0x*2T&X2nn2kIh_kK@_F zpyGGnibVEj5TnyuSf(|^h)re>hmbRI{H!NPiPV3{DWmoeC&;g9|BzneONA%M_zVz9 z&`uAq=R=BWN!2(kA??$d?4b}+tLVXJBVeN%^ez4|djN#A3UsWd|2?^rD3fV&-naut_D<=^Xd-gA4RmJQD5Si~R+q^M==?9$-DFvM-xMtd!NbR!I0VQ4R2%Ks?y8)yoSGk4SN{GNT1>kg;4;<-|{aZVa`8pK#YT} z{}>y8z9lA%MF59=`!9CH9sh=3*$L(yVPYP1y*Nv7N&xqu>z}mDl}y_cq)ZQpB#aA| zfsG@K3pdxx9sx;53>nCrFs8i+83_?(=?ABk05uP=mqU>IM-U>Yv3tLV#(OIW=yHSW z>dGf@sSrF#8mL>f1O~_11#rKH|BcOHXdxB9rUY=gqhPcMS~mbah`NLdDR=K9<}8(+V%7eUmso__hj z^F(kuYxuxP!!59%+-OKFvR6V5P5t=iQ2g>gu>$yH0i^WW>OZBEKmSR@ud`P{vMQVZ zptUXbr;te|iI8k4(r*CqbXgbrUJN7_w2j8(Ido^uaI3WODS$_6Mg#KZl%Yr9xLjjK4q6T{~H3Supg; zR=@>E7eS0&2=qy40%*}4hMS=+AnMdrv?T;7S)lVyaF%GWcPQTbch+cA2;#IwpIr0; zuc5&`4}ZNButN(G0DU{O6oEh74*djb7|8927A4RO@1R+MOh+{0e>KX)U!6l8(E@Nh z2d=~$tw%UV;r4Ff&EZvpQj!E>#2s`F0fpoDN2fv1>j1o`cu||X=yYN#5VEn8>Aw!# zyN5o56AMObL)3tK_^iV79fY942O)R}8HQGZa96_dk;LPABJk;jhb}xoM?ug)B)Wze z3F2(f&Z>2X;PY637?AWwv*U`R(ZUeVrx^4_2;zuC-y$YFp!FF3_UQ(gC+XmklN(66 zgJ!|u;?b#uAOcqs(a@obJ_-E?ZxDbbqlF28Tr&DB!3FPRG>fiz*-ub(99CImxjIu5v?-N5(NJEjFV9S%m7-NfYJfbk035Evg`oyBQz5M z&-MtNK)~ZlAEQ(L7e`DMn&$t^m{-<6-s9|lycHcBtU!4#8bx^A>nQs|`vdq&E?S<5 zNE|Rka-aaZ8Z%XCMo9 za|PdQ9aD2~;XIHWw$Lq5KO;vmbblMb!x2ZgkpV!Q2u@0n;~qq)Im6Kh-MNG)atzrK zj2LHeSVA|sH5D8#(Akc?hT}YR*K@6jg9~a68rH#air^kNFfl@eCOSACG7?a?$2f!u z%JRlIW*`+2lN=t<9rLem94*jFsbAp8hE}ra4~`57_j8E@4c%7J9CB-1W6=YV4f3B?>J2-%rnA^7u-)*4EU}c&qv{fk%1gl@xie06E=2A8Z#mRz$OEu zh7|zsF7Q7Y5B&|&#@XNTu^Qf$I(Lqnf+@uoMM~xVgN}qOnSqZ%YIsn?Q1O!A(g+om zksS9>BUSjNAG+jZg<7RX%!NVf68%#)xWL7!ohSa^vmPxfEUHX%4IIEzes{4Eho*rq z7~lO7oT0q~^X3R0l2VUe`QdgsWQl|b3qR&lp}ww?+KXK((^pCz;gsDi!2(a|{wh9Z ze<#RrO4sCyfrnh{f3s`2UXax;Df;c_%TZ5nE7^ zJZ`L&e3i`p$sEvW`To(v?(GmDQJT}7Pp;jN(K@@*CY!%S(*978cc#hOeN~|4Fss@!t>1Y`hMNfNh)vXS^z6cH z)20NwTw+;Om8Skv%6^1hls``n@DN+WGo!3>=1SLro?9rbA%}F_)Of!|PyX$Kd__qC z-xp;y{w^Mm)`YCIylD~?hAYQx1-ic`Wl6lWwn8}kx@tS&CVWuQ9wJq{*}s^K6=u4_ zXILd`5EytzVWd{_-nZHGCilU%ci@TLF8jiYko8h;)_YeO36ZXgxlyhjWpr{_t@qY{ z;aQ4r&RS?rPUl3?NO!@_pS)WXuvx0@>$CZ7vZx(jkUTPPxhKX=Df{;Ny(@_6QI&5f zdyT(>nrloBhw3DOy20}3^S%`kXcpR?hxx{jN zCDTRk&4_-TogUS1Lkz6vqSTG0PHZ7PB|Yh?$IAmNz7MN^-+F1+tli)1cKP_^F}sH& zeW~4sU+?3wQJUEwHVzWkDac5(wMRb$_*jSDZHYUlbwDqQaGNR0cznI>dTi%2a|13% z%#$U|BJrJH?tez!-8m96n79ho@Senx+hrTib5ivAggfpVUr8()m;n;U}FF%OOVNEZgL zO1oWnf^=*aWno~cy;ERqt~dYr`DLv5BYF1GcQ{(AN-VaATVK3uOiSeVfPH_hZpzaDL#u{ zVhDaGE|PGYx|UqOZcMd(eJdV`o;KVS`)U%IHU2~YK>%A2iPwjigS=u59o?yEtmi$q zveLxgmx`M((ieX%W9i%$g;~Gz!z=odxqb8K`%jIF7-u;x$`sOyi&`qW+FATu${~8I zw?C(ExSqxo&;3ezAue_GMW23XEjhcz`4`IG zFY9<9Ul&>Sn+1fze`}58t4T&>u46a#^!A-+-buk=Y2sPrd21$;jRzka+78IbkOUvG50HNW;@& z&qlqSTsrM^Iw69`iS46m^=z3sg_)n($fdxEJpQJkHj@s?G~8p#oGN{pGJY(T%Y?F| zb&@`D^7Ao=fBl*spK9_pRpEdWjkM8#R zdTTzBKAD*1=`vw1M47VlTJ5_G@zxTB$$auCnGP}2qD{H`*`?dL}`D~INbdlbxXKRvhOsjj!ENiq3b&~INzj*V`!q5|| z9)>~6*u?^Yg{QN_i-Y&?wA{aA)0q1nW)ACk4>mE&a(nNg)ooUZu&mW#|q{+8A(_JH8Oe|-gJMgE^&Q*F`#{O$m!xUYt%TK zPek`p$c)3+*UG!x#n}R|KQ*3?q^PJUb?C3ST%XAJ4)rrJ=>VGgM!;+*}3YKZ`rUCI=Mj( zvrb5ny|Irymg4I#a`Qt3YEBIwIeJhVHzxL-bMSqX7 zI7(6cu&l+?Xt0n|>$nuH!&HU~TRk5O8>P^`{9?44!I10w^BZC57NOjLD()Ni02o?aI;_E^)}_E)oJ!mr4w*t4Y6BQjqq ze*5Nk?eOA=?lmiYyraX1b`b zO4AQ=m^basQ6(gP3|nd$xZlF8be)`dm+#Nv<>(fR<45#Z(aX_4{G&HpZ1nm!_Lo-{ zl(6%4>rc#&9p{w(_;++03p6uOIp8Mw^>tpyl0dQ$KcQDPDl zDR>A4zb?Yx`_L6)p>l;uJL3`H1j0;6mZ#+ram zFT$u0FvCR{dn)irvrQVhLl01WhS4SbCi%*^6i9o9v8Be->h}|Pe1X5uFzy86UM(#* z;8~1eCLv}3=!-Gvv{e*Uni>N=@VXcSCrA*9yEp{_1H~97l8^t3hnA65?0-fQ5u>6M=o;J-w_y0MR zK>XlGIw(>CitGQEXe!%(L@Clfut|yj?+AdiX7lvaF`5&+J9Y|%&EVc}T<|M*^z0)*n7EwF9ZHNA^xgzp^1e7?s5z>?f<2n>*7R%&nrP1 zbbEcJ9D^oK#s7{;)8nK963Q`zhYvs&o-p)}fCRXhIN^lgV2>C*z*COl0QJZN9upWCc%O>Tz0E;RG|7M{ftGrK3i%&zsfh4d+g5==lOV-T$SlAH zHHI2suf#BOgH#*u{iaU^prTaJqRxL=vy=Ldh?EW&9iS(`NqEx@R8)cr!{q)^)B5Gm zKr0UP95Cu{QOEWFt3yHy($QLdqGKPgBh>SsGie_@ z>G07c+>isVH6ZbMz&|3;q6T2K{4W(m;FFJ&A3CC+>TiLX7Z^@LHh;vcSWgGkaTp9hQ+twnRwE$xR0bX^1lZPM zL`d9De&MPEbK`X_Mw!Gd8zO@kRg#r@!Y^rJFPQ;-QSc*yk~$10i5CvS*5DX{W_A#Z ztOv0h4UnK|Jw}Bj{5AATV?D-zM5YPizte;QxE3*Rz~m*!KlTPPJUc7{mT%Abs zncxDv8Zd;{gg|fu7?ET=5|h?7fdW)Nf}sL8HDDZ1Aetf&&Q37^+(<4s7k;;+7u+TP ze{Ed_Tvb^UhX;z%NXNSm1O%k*07dLVTstsUUDs~cSViovRc7tNwQG&f?(XhDckRU5 zwZH$IbGh$bTzM-kV>KZ?Ya665yb;p&Z~ZCo zg(B5{VW7f$01B1aZj2G!owkD*{UMj=LL0Xmu}K70oC0Fg*vfilFY5|)`-{;rh)oFg z^sVphXk|6dCvPn}&W2ed>5PrF1MS|f#%0b9Xt8r;$VhFxu@CL#4x_IKz+oq#Aa@I> z^-g1P5z(1di+nnTe7h8Nb&@Wk;k03=v7RvHywj{f2TMp;wNc_Xf(+HG_Yk^i(CAr_3brd~tflf-EJN7M)G`R03o{Vztv zp2nahM%I)5cQ^ccVyGV~>0~RbP%RA30%eP-0^N#PJCU)PBJ<3!{mu4$f|o9$zAdX0 zaHgQW#u~z!u6q$;-&9qB>pr6st>0@bBCu}bY#)5U`Qy&g z13$k)F!Rt<>J#NM8XvzX>Z&}we7JV4lafv;A{SYEQQ`?TvF+3DtZ+eu8zYBf2dMU! zl`(yZS*nO|{KiS{t@?pu0)EjNCua=XWoBMGs<6!3g+8xUqh9|AOt_lM@a%}uos{Ls zK3r&o+6u+ToGu2xU&T+~Yf4$Es)bZh>6xQY_HdO-c0G>Tw#89nw7@1Xc5=NXcIv1x zOoZXJ>i#p{VO0guM7GxcvNEo3u@oqK%or&I7VS9wxDA;1IOlEFg11`=tT?9Da@UU` z^pAVZn9Qu@`}8;%jfmaBPw%sO$IZO?Xv}eIH<~v{tw*LEhq4*-MG;z@*tM`X+&me9=>uv^cTO6s z3D?@?i(fYy?zjm?J=5iTsKf4Am!YAj)W}Xcg}@H|Edq-o$NMN#YyVVZ)$dR(n=Ay> z6kR-hzG?7K2t-o((?)M$*w$$^#!W(a$G$VH74A9TIh;+p4;CZW5_c_>JXmeiinhG432 z(I`9jeQ@bO52Qo)@7nBRF&e)+xx^Y|!!3gD*WJ4H1=Kye(FE)3o(1SrbI@HcsCBci z`_|_Uu&@%+FIH#eCE9SoSV8FPz3N8n3}o>eUU|z}rOKK<2THFDBe=sO9d;3sDv=`b zjwuE&igQ;-EYsI~YI_8>mBThx{m8FC6Ul%3qA^(HgJyr$uaJc1uR8kr5jy)~Dew|{ z=schi{nO*^Dd#5orwcBrDY}+>txg>zHKhX^FiSPyOk_#pP#AFA4W~VHTHAJ%{4FjU zONhAF2|anYJRH;>4ocLqw(7yG;k2-a!P{KIzg$MB1$s*;=Bm+?TK7gi;trzF*JReK z;@QwQ4Uwv$)7Q42h0v)hYESF&73kYBK!c)$bJMPZ`e3l6hW}~^G`E)L82T$+LSEO5 z(PEg@`E0F{GmsneAzLKtg1tM2SxeBX*#=vhbIs@@_?OppZ@Ca=mWG*n{>S4i_#LjR z{ENE&(V-El^(OGBp8v~43;ueO46>pTfy|C-*B}vr42Ey@LWh5|5PF&$Nc!vWV;c~G zjz~Ja?|#X&;BRpQ4LFZvf4u=$ES{}Fo;2hxG6zFB3=Nqpp%Zfr&a#qVsP#=i<+n4G zNZW22eM~$~t(tZ+g4>#72*0|{fob&Wrm?ZmTJsh}H}96Bj(ZT-b+^<2cQfR;PeMMo zRkt0mYqanMv|j&CYuf{oby6b&OX|n_h6s9E}(^vB=q`` zAw)pJicc4v%FaQeuS5WqbOB7DxO>J_VTEs1+sTswy1-n0H*?lUsr2bbgS$Bke7uM7 z7JuRhBlmwo7U0gCP}QgKo1UD|!w_aeU3kto^7jDzEp2QHQ|jNU=}-QGsx+K;Rv~+; z`ZpQ}k(>So)CcDW7+U|gF-%aeGu0W}X;o@|ITB+Exy`(gUbk=*M^h?dgcxxyNr9T5!59O{#fz0qcQI zy}n~~_JOg5kdJu?`3C_~e_&yo{8Y|}{j5Bq7x;R{zbY2E-6NwS>@C**%vdkz-uYd= zIUl6)yO|SX)+4A&3zkru$CxHrA8g~6`B-(Z%VWTkLo_&01X8GH_%a6$1V4TKF(8y# z!)RNmjnO>mlYebDn^)j%#l=YH#D9uN{?$*6UX&7M<0va^_LS8Q&+Ow6`Wg8_-&VAV z(1c0|d(OW(*P%bk)kx30r zx$h~wP`!+#jxB?eJw0AyR!>gbMLz>rG(m!05&&xHG>f61lO%NOnX#cCH2>~Hcq0uDgvC9S@Pl_Xes%fmV|ba zfAveFuV5|h{LhrRV6F2VYg`A(I;I0u$G%dtR)tpxwOU6B&Fct=>q+4YFQ>1?UL&s* z!C0l5&KHg7>?>m<5#HCG=gL1p+Wi71{eTYoJ#C7}2_lZ{in#*bdTQ)3$Q22kg*EMTHjZ+N0$EW#FpBNm;;c%5k)9wE9KADFshwxpJPYYY_K zm|p@~{qBrdcY~e!e&dq4lJ(|Xn?j=K30L+^cKlKjxjYIo<+NCFf4&f%duyyIY&X6` zP#c#>`DaUP{OQFuwUo>p;%~bUNl_WCUy4qC{aWUaq0{d$VB~0gV=ZSlNouY4#$ZA1 z`5x4OEt0z9J-WZ(O|wh8GVV{9<&Un5e#mqr^B;BeQu7~3-rFIq^51FWO?$t=qnrfU z9+*krxRVpcH}jxPLAp@_yXBn? z=#&I2E1Rsmt0<=qA)J{b#VTHA)uf)8qvuVti`Z7$+N^KES% z!8A zdU3W9V%k*T&l$f^OpkjL9;p!*hfr7ik70BPJ?=#(zZ$)TSB|ZoUh)h~tb|HQUqLul z)r3k=DrYL5T5A0b`kGeLAP-tl%`z%tLb_^os&AthXBJe~Ge*?x)36x=h=4oebp9AB zI2AfG*Vc}9Rku~gBAolH-=4i@ICB0Ym%Q1mY)w`#g=TJ5#9ri?*Wtq8R5L&U){1QS z%6C3g2wu)@# z0&Ic&woOA6bDUSK3=8r{3a&5Ys*%zz+qzQ0V<-hYStva5ze(YJccSl-gtM#qaqg!R7DCA1MD^eCt}QAZcm|Bm*6 zUN@s&&WZ;GHqRHvi#xe1vL|)`e2^x=S4V9NQjhlj`Dsl_lQ`f`ds#RbGiod>@Q?P2 z+_lc@$A-wC7z*IU;@s|FPY2N3sq_^NN`#1oviB4_FA693K|jzX@ENq?9C{_w)Q3wxbwYOK!mzMEQkC_d0~B|}1K zK1vx8p&qr%&+$dB904P$>vDCiNs_gWFY1e@KC=BLCtql}IYomarTdxcI)|xo)O-#i zFXk$_f6%r}w*6@Yumjn?sxE*sSnX&2SU)9Lln|enP6rZEv3P>LmX37@_3~4iiJ(sT zA*fP|rRcE5`TeNgOSL6=*yZ$_E0mltLW%trR?>tjDr#aiQ$P*h!PI2h3aUt~CJFay)PzMH&{Y4Bs}28V zWt2F~tfi@lNr@1wDZcfmwL}C0&`MU;v09&!1}`uvL4q}CS@$X9!0G{0tLa$JpOLJt zfl7#A4f)cq_^((+-ajF4S-fzbSz{^SLVgD>d$L{&5La1kJyFzp_R4FVh%?X9lZYg>3Gbzxl?eXbZ1Wfr_>Y03~TT45C z^SlMs%&zZ*INd=5juun<%gP9(pfKep5#0DNXxh?FYC0XJh>L0H15-QxEUAg%YLV*{ z4r-NdlDZ~bk#mwUo)3zzM_x!oF#6u#;GUWSI|`0a3r1oDw9M!$p-X-3EM}-yFqHO- zgy#QZ=WLF#eNjN|f0Iy3Q6)-PKZL2Tf7ht?lsF51;y#DS8&1z_OzI8W_9LI_>ywsb z9jP=IN?JuiN$qtON>)cIM$wj>WXNtaLxss9N(mO@{rD(QZwYEZ=GFpoyf0Gx=K}c` z9YT1c(S=Ud9L~jC*}_UBdteN1s_ePN&Z3UBUTi%o3z@h94Al!Z*`7!6>2gIb&J0MX zlrR~UEniKepA6}-ODBVAo?Qs+Otf02Z%4!aA$xQ@;+iOG9s}fm`*nzkcEqS5Ha)p2 zoL4^#$W{6fuN}-IvlEY?QN`72z20einF!wdG44B4%N)rg*s2)>_r$8Eo{ohjoZNR2G@!>vs*vnVFJ**k&bI1h~9# zuNIf#nN&DlzkD$fD_$Jn>Jo~a?%n3qsm)EWwgjtwMD~bYl~6hg_cSjFt5O!QXacRP z;(?`RY~K^mDTXR8V*4`yerwBR3BN{JO#pK+~p z@d%0!4<@VW(sjZb3;wff3K-2xS@w(Gy?BTmIcaC!PT2AP>4ofQ{&^P%8dh4hd`f9p zuGrDO1SOK7)Q)bKR^+W&>nu}ie4l~qNZrp_faAqPrG#C2hJ%BWF)RSrrsTT8r5dBtBu?U%-% zHkL(tHAZ^rr!`i0kgR8?V?*-74h1cG340-JXz;Vdab0l$-ElNYSA81QZT3mj7e8Zy zpt8=inJXp#mzn5qYb~d!w>^p<&GJQ`YnyN0mA=cgH$jmredddg^X8Nvce3UtkR6%m9ifmM{qS}_nR0MTZAXB3$yCN>IoEK4t+Q3L#QTX z63KF4PRJ|Xr|=%J(6cU!)L3mPHAx-%b;ti0-X&T&o^ufYqlka1PSY=xQ$uMj930-haf=W2v6yr*ulX}_q-D5i&VeT8 zpa^O8_r99Q@ZTz=^R@NrN zQfzwTvF@nG;hi_5N=|dmo5;SyRe^f76>)JPb*&9OrN^n{s>{@*BD;yd1qN7I^}?tV zgL~~SD`OzNtgX&=l&ynQwpl~3YGcGTs*XA_xd>F7wr3ou(lxsf!X@5;V)99B>#KIX zTA^N0mVuvs@+kc&1fDvSH!nyHs*BSkEh(q2qCd{UF+6wu$oj`fuk}cZ2AXl)MMd*n zSNT!6q4wD24c~z2KA7}F2hSYUx^?vxH=5$?n2*+`sB?KYQrNNYzGIm54ld>%j4UDb z5cS`2`*W&NiWLNzp_>f-TZo~`l#r@Un?2vNEYl7(WHn45>5T~uWma{BmkQa_<>1e7%K-fJO9!{QFe{#y z1gjVZocjR^mUkuV#+VCrY@kNZzX7QCR4Q&bmw}}-)xD?W-QGYES4mI~Q(yIFs);Wv zw-{U2ZwM&3zXsV8?lE`AK@RD}Z458}h2c<|{EMT9c~q)20yJYFL*X=Jprge!)=-Ar ze`P3wz6^GB6U$qo7zaE|cXmQq_e3ex*X&uDjn#SW=8Yj9nZe@4$&}&fYhFPK?QpM3 zCy4(8aec3C%Lr-7f)S3`o`ypOqOAA&eSngRNz8-cc_%SxH1mg1`eerKRs`3{dsilWq}YT@nH6mcoOP*MXIIy#$|6SUjd zQ4i<~@ZY#&pS9qEc3B0KZ3Zoy{*ct+xzq(r-L^tfA2m~a#MMGG4`sSj_vVThZsd_r zo#v{VPR${Z@~5Ph{}aaSZLTKt8HVz0mXJ>i#ZRQx%2D>cxjr3_j zwSed!yQJv77K)F^_FtIly;oAJwN$BXTY|dc2vZ|z1*pQGqaHPS9uKc4At=4q8y}~; zEmf~~ITrJ92ihhBDhxf>i<44ek2E!y@o5Og^^Bx`K8=WGr>PNr$xzZo3E^IOi;ZfL z)%NYt@!? zhMwG)(2>@vH*Pu(I=>t7`~p+-@m%m&vQBucnk^D3Y~#KExxsU9(K71!4^rDUN)=&n zXxUa{`RaAPSW(}vOL#@`ZBfwTUO8GU)*ee5k-ZWMf5Na=-;;29!~Al-d1zZiAoP>8 z>Tp}NclU&;*58;~lyEt|gBU;wXVm@?P?y3~sXgkl9-&TlH0ejxPb(Rkidl9QDr6pZ zRE;<{o_i&Hh6i(s+Fw@2=@`ksCdSEVu9~{FgQ}fz62eV8uCyu+D+^fjwh#LLR91+l zj}PE%r=<2unC^5YH)n0~uUcIY!CS+BXmGW^tc=erAg6ifv`4tZ%F?0^=!fHmet)eV zb?E@)MR`U_P@4`)kVv@?-LC)C2W!XE(E{lENGCAxQ5uSrtL)b2bSkQdsYnU^=xuXT z)|Wu3KdEEd&WZ1<#G`cZj#YgNHlwx1T99V9cJiQ#*VQWT%(tHlFGkFw5Qct?nbJ-Q zwdtrfypuX27K5<*riNOOhW+H^V^&ozVCFw#Fvu(uns@Ws^-h{l0ZQtuPGwB{8TzsZ zaXJ+tyf$EBe~Cz6Z9nA7H>5as4)o2$PeUYo-62jP%r5%lg&gwFD?~3lp+9~nUE(`B zVV#BtQja?!ke`ODQp05+0%_hENX|%!;JpILe}bt8#z?Aj7nPdO1=LyNC3V<%Cq+xz z)r=It5(r1)Wfvt*wD0EE3i9qJSTvhi6@I%w?idNodm_w7%Uzrydt$MqJuk%adj{LP zs#V9at_bxHGh|0Yx+#7%cMewAw9S5#&V5_wi)3}c#IU~5*I1}26_W8{8gfH7C_VRw z2AN+&kVlkU@w|bd%6dIsfQqhnQYTk=U2G6D#c#~Zgr^b0gl9&&&hmbP{B{VnECvwT zUsgsftZk?<6(P$JX?LHX3Nyg}4JEIx#?2kcdD}GpK>DqRA~(D4>Vfdr<1nYHDv+Fe zB4{qe=9d-n&b}AltMNzC%${m9vc4x&`R~^td7?$A(%xS9E`xd;)c7N5WG^+V&+i3Q z^|1D$T2+K<9d>dwuV}jV2EOW;#D^VoDk`_wa|Ry7(8}wYXnq=X9km^AixAoP7UN6q zS>XJR1K}NqQ1jl2*R$(gy$vt&p6+Cw7dJiBOBOW?{n-0y<=t-BuM&~BlbZjjUdUqY zRwQ!D$uz$uaLqo{MEdS+*cU0uFDj7T7t}<2TuBIpm73LiF@)L|$lIvm^yA)s=({>u zJNwDajhxe-^hLzWMpO_tmI>HiTM4ZPW&eQ z0_yE@lDfN`v)rO5^qZf*$lKFOt}OX)|DujlhQkRq;t4Y@D)tqs{ z0NW8n{%Ab_p?da{(3}BkBfW>I_Jbt#(*Sib(EN}_-ZQK=<26=$>NZeaXWZNN*xeS$ zR!!kmeaq}TN%Fs#=!{u9^sj|2F9ssii&G?2bdWk1QD+dSYo<%;r0LFb7lII2%~0$d z3AxO1cA4p_PWU~aJL4K}^W{Um`o3xNb%H%}qce_G4OYjzod-iv;Kp3UTV^9JUndzE zzd09ipnjWiTe-GRHR)Ht*SDGBF~6!yh$|Th*keZQ_Bi{Si?sg`!2S1|;U9-6#YAGK zH+eeYeqk%Ce=#sFrb|KN!CZEGx-~>~a?Zuip-&Lg?x@DA>ezpJDA=jmL+5aLMwuhj zc_;!t@>D|0o;rJpjjf_woM5QiYY7Dwaw$lz>6otLA`_bqXxTdpXzDv>cY2wwmQM52 zBzY$WivMdN6!5RJhY%75V#|efG!5{XO6n zdw8XiE-zGTB~^ppgUYsYky{8wek=0BUrVDN=tD4pIp3sMyl_&d3ihMyj1X z|51p_sm^-b!(5byFn*(lhUcR_JzRp!u7A$>-M$)L#0;g42J~{E2IZr9qm^ipV5bTRn_+$+Ca=T$(896m62ZcTQ=U6w4r`NV-fYuj5-W|RisRIdK(ld( z#eHIG2o0M9k1rXgR#AHxnlnd0nd8-UExS#V@9@i9h0*=dXOPBwm{Xxv<58_3U#5*J z-lfjZi2We^FnO%~Wo6vhCs|LASLc-YQWopwtji=|eT(G5>}by|~5khef%%nU~x)E$h|tF$&l;^n3K%JYo`=zrBdb*vIMDOK`)3 z(M}^>bQe@%uJU5_P55j36ol2hwxpgatHcNevjQi1_Cd0?Lypxe`1=QDEtzNK&Ebb% zCQl8=OEo?6?g_k&(;<^Fs?;yK#ZN=*Zw(c(kD#*U6+bcI`gvRBalCOV072_lNkc{n z-gr8)Fn>VibhW*9nGQ8~Mhhs#yiaXBle>)<s-^3f__u? zLJa*43NB0)3KIBbA-Ne!*w}CPv-K{>?eWM?`mD5Sx@zP6>8^6MNO-vO3@D2u6~oIz za)--pCWp)x0TqKSsR`bz#7dLr` zLEy6(f8ej-Mst6|;delF<0Yi6GxlQY)aH`uf+xCQ7I!J_L0TQ~OMnR9-U_d4FZ&oPB(-b_NnSQI|ssEMnH$ zLbl!<$c8Uv0#?lNFsoQT6bj5QFXinJ-CJ(KuU}J)zUA17d+=otYBgP`f2@&0uF2{S zjFodaG8-&ZO-@$3ssZx=eZz4d%__V#D_3+UGBkUu1%!uX^O;u;MXbItQ^lQnCb=-! zYd)atJsRY1UK6a)-9Lx7-xPuERdu$HJD~9wApJt3`E97Y^Mb{XNFmb^H%Ie&)wTr) zKl%nk5n@SE7#z3|)Hykl%BzPW13{9 z0`8)(Uf?bR|&r`V_U! zfbL~U=wwzQZ}TGJ4TfI)DIskQQN+S0XIzO{=(X)Dl6M9t;iTl())j?q>y|=Q)teHE zy;&&KJdTO@15nx>3HA6x?d8p7YNx*>RabuZoe8_DjHde2HrFvalPOmaFYd%yI-cx-8=*C>=Y` zL~Ld=wKp~wFjd=+w)ys!mhX|W-|uGlUy@{9orJwze8Gq?d+H9q=9j=f4~3_pE+-hP zGJi=rxI&2*y_iphTb#5*+jSnbd@UX80CHWa?kn!P5>|bx&7w*4xwgBrc?B=(Jjy`*n!;$tU%lFCbXoi zhL*Hu64JJ`iD>uv=(?Z@Y_UPK^{NiHko>`GR9h;nftFdVnOc$d9>dPYm0`59A0qDS&~eZ&-iPzJi`F63X#*rQdVssHc}mQ0J)kawCDdlHyU{#U zNO1JMRS6-`cUE;7s`3wY4>I#xym^*qAtZhj^B3p$&*ViUA`1=KS8Pgu#G)KxuJ1_? zq51>dBlrchf^>F+>iVY}U}+m03bOG?G;b=8N+?v6NBqG^JH3+8)bmeuqH5Ql5WQv3 zqH%QE9{c3@yuEOJo3PV|ULgN&M31GuE+5x)rb-*tjSweYpN|}iP%@BP^?lIoF3eSy zzHP$dyZt70=rrowFI`)J-}XEHW9}CGlfW-B=ZZ}*aFw?P$vwYCH-maJQBt){gtc8Z z-hK*8*TQ0b;@7M!S+z}sGYT9oyBdzEgmv9Yy2x#zq%9bc@mOfUoC!BEKW3GVpS~8l zRF`rxU4v;`T|6tMovjroHdm)eXljawW6|7u`NVnmwDK;C*6sTM{7*+X6Q6S*Jo*vH)%T+WgPWG-piVVjJ!`SYBw|`9Aau2T6I93N}j{iy=ZMudNdLT^hBrudq536!_x-@9>s)p}5kGOgaNT`%d(pz( zikEdOx_dzRQRpx~4VX8(9C)9rBZ!m36W3I*gLfW;Ij=wEV(w&rNGT;$nI8(w+tqCM z)y$4p13kEmm1h$?_XAfac3i>k-K1Tqzc6p1PV z-FR`<$oBANfBa%~UhRg92@YWn)bEH|vcyTtV(yf40w-t(9Z@0-oyA80Rd@IF<26@T zdU{0hGbH&jPXG-)imV@TR4Hvemf9Xwni^{0z&rz2jw)rX_mJB$rLCbZ4xTe@>M^B~ zp;ra|2&YfSlv0MVmE=c@DCvgvf z6umm!(;4l1?q60$=m?FuykXO5s(%)0R-AzozKr3ID0(sm8u)y&)G%mVo~Rz7)U(Qu zh7J=rCINKzEXpZYO5%FsA1BedbLiQ|pHqq&7KxAIH1(WP(fTW$J*RXvq)lapSn76O zttt58Wy87OY0)K210FpOF}GRr!{-7VwsEff_e^@XKzNl0*^j@P;QVda>gJtEvt!wBywTB>j?GtrxHtg?HNex zt|QN$eqlk0ya7s!*BYfP?Y#k`+Wspkt~Zs2HoxHl&G<`5wNE$EGB3EPl(Ly*YbG_d z>0@vH@{r!R?&{@?;aKipRz{ec%H!hUl&8-kyH&97{dS;jvJNr9dnA5Mo9)w~BMI#&`5^h5<6li**= z{WN*5slHOl%kq+S`RZzJpHTKkMB>;cll5QNdcdhA?#L;hOdB3xt-9l1$Z-ADkB`;7 z?5Rz%mptW7Nq?g@z5N&Rv0rt`4F*xux>9B%FMZwhS0l-i{5b&nA8X4zX9-@eq#vP@P5m|3*Z(Kc$Bb7xxQOX-;B+8GmPm}~hqh$GU|A|u0dJY9XMXmhy2MT(Mjjh*z(1r21 zbspS%ZQ;py(edr!+H0k=;m`V#HoLx0042SFx=PI?C88PB@ye}Kx8n`eMWspX>l-wRgRm^f zMs$6vR5$#!P<~Wg?&C(!-zt?2O_pnv01LB5y+co98!ddN^fI(RB3b6YNA62{50?}@ zr%@^!YM@c#0OD@?1k$j7;ni~gz=%a?nN)IqnsN{BGF!Rrfsa0?=SQQZF~9srsbSdt zL{i%Pi&ie+1qFRTe5g7#_D7|QVWcA2yD7eYH02ZAyCj$?VKgDw*TfEYCAZHAY=4L( zuMF{(H=on6&x&HeJ_5lFvO8V>j2#GhtI05}uIAlo1)|99i_*YQSNx0nvcDkR9~NVx z_$Wx%i}_j>;E1mXyl!a=hNRNIZkE@Rh_2Ct1ah-Ch2R}vM4vf6tWEVfjr?YH0^YIR7C( z5|{fHq|SDNgk!hi{*dDI9e}z9n==c?1A0bxG0b-Z0N$QSk zzKWnOXR5AQoS5ae%3ht?Fg-LPbBF1#MdZ9UIH}y_DoV^olKRif1_Sbra^}2 z97%I?MjBQ4SAO(#HWjYGnY~NL)E|ocf<9H2wUxza2OX2RPrg>|es0^nV~4IiI>z)J z(AWIDN&zuLan>16ugs)p&ZZzyce=Wm{7Yr^_p|!$sTMh_^ts~9->#vPWQ|d_dDkcR zfsRpI7n9u3H~~s*p5Z=%wFCWPs7<^{9wB<*G^IIr#V$kMq?JjQZ8KQ#`jO&lDkSCu z_uh^8#|gaK@WTYY_Lr3rHH1=KP4bSMA+E4~49#*i$qg6B@NJVg%#XgM`+3r5Y`hZF zdJb+NHy`dt0mJ4 zJI}l-vga2WAo;96(!xTfIB{5lAB(5@zEHeqf)pM);Xi~c`Zk~2oGK{@q%Jmea3C$* zP2%NJ>g8_2R=>%Tx-yr#m#IspO6stwes-B2s{33#fc!9BBC*r`?5JKY)QTbN84|kv z8=(2Q&>Du;&y>)lnSh?>LZ2CGO;pJnW|j0b6%u}t@6QX9ZDvU<`*(6_!CDap;2w1*NFU0;>AhA8U zn0%dHVD%SC%-LI&TXLe%dNqN*Qj)hRPH2-4)(eTHxSEBnTn!0f1ixD^6E78emKlov z!_Us*%_DhLshbb{^BFg|Fh?yPHQCxQb@2*zs6XLddz?=7QB!CwL)BMF=z)*PLuC6e zOntsuQcL=()H=SPPFyRgBXg;9m|AANq+S43*n8mmrgkKpc6)<_3j3KnL^OMpT$ie5 zu#p=j)@Gw$0UGFMaul*7J6uX6Q3B#OOMEY6Md4m|bx*B!D0D+mrh;^3>dqF)>f)~k z^SgbwD`_$x&)h1pR=`9E$4+m*Mma_#Y1Qo#S_4QFZByUuuMH4F%kN66O7uhviPD-ed$>c7a-{<{`bB+GfH62bNv){bp8Vi1i9b_ZpjtSloZ0lOImL&eTJpLiwag7v z97uhqdH%e9OZ&kr=~L1=eneh%cU-0>i!#&y5I)V=1!2B zHZK_Jc}qfdZvl!atU`%}0V#JR)W5JA!bGMX&!%%Bi2I?!YOR%Cc*)8}vNj)aPhxHE zL788$T5Ih%vFWJF5c#)c_%T?Ga_R2<7d4i`7w$`J{e1|Bd#PK76I@=@N&C-|^6Nvv zpBbX2LCWE3J!SGlJ(im40TLPI%E!AGqy^U3DI-KpiY1OWm#Ea?bT*e-q;f5jnyHGu zka`kARXskl*Boyp%i{Hy5}N=_)HRDj;hYIMl6pOt`iiLuZ)D*NFQW2RC<5x;x01T+ zEh>$nMO4pEVrbfX33Yo9=u|Frlc6L`hjH~6@Gqc%FjXot4A6@Y5^5KwRvjCTO+2nT ze%>dE{RvFu*r#*e;yDCSb$pSKb+{_#acxo!)dO$8N-Q-O+qP+GEfveMqFxau|Cz)5 z3+Ud|lP5qM+`zm(+Ro{&qC1 zsOsY>40Usq(9v9h+f4OzW~x7VMXG9|B0)Xu!c;$M7m1z^du5c9va&3!^MG|;x?2Ao z&4@I~T{b%*YTci%Mw;Z_%}=cAR6GSnBY+k0{_dhXDJrs+n|5t(09})?JQJnUSE;z< zpA==18d+`g>>Dx#)F($dg z^?$YA|MLqNrou8T9BY4B8BP_bL5wL#Z1dZG==rNyaPhtEc{=13{b@o)e_vV~qo(1m z7`P$15?zlm$$Jb^8y@*R8G?LEo<4{@6c}qNT#M7~cJD*!J-|>FU4A`NwJQF({ujtSNa^QcHyJqU}K|NR5Q*bH$`>_ z!Der5fBII(-(;3M&E&+of*eZ5I5moa@emKFM~U$!d9zUu5RjoJ#H;GoGeg)9bSmB? zZ|1vFWzX>>_#g^V^wpfqX}gSEikajVfO5qkRjd&;DW(o_GC;6COY^`WlHqmf^w!SM z!dLAZby}jD;+pOz{ubko$NR(cb6GBq5cRy{D7LsMN>r$=iX(neEg;+6-||&V*+X0e z)ZmduyNj!CybA){_@%f>Uh*AN0^didRtexd(c2B*wtd?ATT%9IqgTlHXG*aTT>axo zl6lP8%huM@d}H?$)^Jv%D4KM|RDMH6oU?6QMZ7MCyds-S%TQ!J+$|7oG2KhUG7x|B60&gU?5a_GLTItMR zPMFjRrWjgg2#?XUvL^Xh>uRRX9xkbO%9{KH?`NiZkCfEda;88LP6IplSNy;juZCcK zM*GXk_-&MA?L5lgo932NbHJ){&|(}Tq1)w5axwB7Q_o`k7b!=}#v&p~9<)Vgjly&Y#bi+H@)vOf&@u0w0gD89CLThE4T1ewTd?*KD$kb4Da` zhCUf~)8s@`d7+{$KYZJsqAHktzsnM?jQ!4-d=Z&>4em2&Xa!SL`}#MDqj&b%=MZ6G8cypZFma|ZlC`QqPXkYTrntZ}&EcRPP=d$77tPIzMG&vbld`*%~^3|DM$uK%$ zJyR2fy}XoWy_DiBn*wxc&n>1+uk0}%IG5srU!YDe?#QdGcGgyv%h|{;S-iy$c58oG z8OioEtg@+?=rlzXcTFvchBppBJ=ZikSJ_ltWaE`pU|fI)OZij9D(Wb^czlWRrEGC3 z0Y81u=5UZ?om>TVIF|#VpkWb7jVlsRfSy!A0x=L=T1`Vs_N|A#HtWoG?zvFV*2#&n0G{ZxlVi_Uu4CXBm*Ts_mJB0amo8tKtnGa{jR} z*-D>7J~HRB5sFbfd%E>SoKhW~o~-b^DH(AnfSw)<2(l=*Lba$TtoPHx>L$6#es6W; z;1^f1z;iXgkN&N$j_g|I3wr+*yE-4@JWi5@IcSw`Qh}PL2&!AdByY$5T((A0u1cz+ zDygAkt@O8K-BCmBJw2@f7uY;tY8{cqJ&HLVF9%tkYSC9iOCB*-IL)nTDkM^RLrut* ze?q5gnu-fq^4@T51=5D!Fwu7{n|-06TBrj!gVd^p_|?G+xX#wb!Zf~?T5xB9Y;eI) zqP8iJpUAdo(JY_HF0PADEsP|XAMaxai8`)Q?~1KABkPyJw6?zS`@w@*lLeRM8`=7% zsGFZuhzGKrGV7?OxzvGatBn$wWHh=`%Uq}nLk$W`sKq)w8M>p6$xY;=GYl;VkzPW3Ua_4+W2;bXl;n-?C_&m^ zR>snqM(Q}z7(u7&sTIwwdWd((Li$(_gA*>JCAVxF(E}o*@IxWd{<1R8P*SSNB$(z5 z^?CN+Ov7j>n1o9grb2c6V%i0Qh^KvOmwRxY6-=`-cYL|}vd^N=siv^}X<6Je|3CN8 BV=@2$ delta 71198 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 diff --git a/java/lombok/patches/builder-compact-constructor.patch b/java/lombok/patches/builder-compact-constructor.patch new file mode 100644 index 00000000..3e38fee7 --- /dev/null +++ b/java/lombok/patches/builder-compact-constructor.patch @@ -0,0 +1,21 @@ +diff --git a/src/core/lombok/eclipse/handlers/HandleBuilder.java b/src/core/lombok/eclipse/handlers/HandleBuilder.java +index 64a3fa9..6ebaaaf 100755 +--- a/src/core/lombok/eclipse/handlers/HandleBuilder.java ++++ b/src/core/lombok/eclipse/handlers/HandleBuilder.java +@@ -493,10 +493,13 @@ public class HandleBuilder extends EclipseAnnotationHandler { + if (!checkBuilderClassNameAnnotationConflict("Builder", "lombok.Builder", job.builderClassName, ast, annotationNode)) return; + + if (fillParametersFrom != null) { +- for (EclipseNode param : fillParametersFrom.down()) { +- if (param.getKind() != Kind.ARGUMENT) continue; ++ // ECJ has not populated the implicit arguments of a compact record constructor yet. ++ boolean compactConstructor = parent.get() instanceof ConstructorDeclaration ++ && isRecord(job.parentType) && (parent.get().bits & IsCanonicalConstructor) != 0; ++ for (EclipseNode param : (compactConstructor ? job.parentType : fillParametersFrom).down()) { ++ if (compactConstructor ? !isRecordField(param) : param.getKind() != Kind.ARGUMENT) continue; + BuilderFieldData bfd = new BuilderFieldData(); +- Argument arg = (Argument) param.get(); ++ AbstractVariableDeclaration arg = (AbstractVariableDeclaration) param.get(); + + Annotation[] copyableAnnotations = findCopyableAnnotations(param); + diff --git a/java/lombok/tests/BuilderCompactConstructor.java b/java/lombok/tests/BuilderCompactConstructor.java new file mode 100644 index 00000000..a4aec1ed --- /dev/null +++ b/java/lombok/tests/BuilderCompactConstructor.java @@ -0,0 +1,139 @@ +import java.math.BigDecimal; +import java.util.List; +import lombok.Builder; +import lombok.NonNull; +import lombok.Singular; +import lombok.SneakyThrows; +import lombok.RequiredArgsConstructor; + +public class BuilderCompactConstructor { + @Builder(toBuilder = true) + record Payment(String number, String phone, BigDecimal amount, + BigDecimal serviceCharge, BigDecimal total, Status status) { + @Builder + Payment { + if (serviceCharge == null) serviceCharge = BigDecimal.ZERO; + } + } + + enum Status { PENDING, SUCCESS, EXPIRED } + + record ConstructorOnly(String name, int count) { + @Builder(toBuilder = true, setterPrefix = "with") + ConstructorOnly { + if (count < 0) throw new IllegalArgumentException("count"); + } + } + + @Builder(toBuilder = true) + record TypeOnly(int count) { + TypeOnly { count++; } + } + + record Generic(@NonNull T value, @Singular List tags) { + static final String IGNORED = "not a component"; + + @Builder(toBuilder = true) + Generic {} + } + + record Empty() { + @Builder + Empty {} + } + + record Canonical(String name, int count) { + @Builder + Canonical(String name, int count) { + this.name = name.trim(); + this.count = count; + } + } + + record Explicit(String name, int count) { + @Builder + Explicit(String name) { this(name, 7); } + } + + static class Ordinary { + final String name; + + @Builder + @SneakyThrows + Ordinary(String name) { this.name = name; } + } + + static class Parent { + Parent(String name) {} + } + + static class ConstructorCalls extends Parent { + final String name; + + @SneakyThrows + ConstructorCalls() { + this("default"); + assert name.equals("default"); + } + + @SneakyThrows + ConstructorCalls(@NonNull String name) { + super(name); + this.name = name; + } + } + + @RequiredArgsConstructor + static class GeneratedConstructor { + final int initialized = 7; + @NonNull final String name; + } + + @Builder(builderMethodName = "methodBuilder", builderClassName = "MethodBuilder") + static String named(String name) { return name; } + + public static void main(String[] args) { + var payment = Payment.builder().number("inquiry").phone("123") + .amount(BigDecimal.TEN).total(BigDecimal.TEN).status(Status.PENDING).build(); + assert payment.number().equals("inquiry"); + assert payment.phone().equals("123"); + assert payment.amount().equals(BigDecimal.TEN); + assert payment.serviceCharge().equals(BigDecimal.ZERO); + assert payment.total().equals(BigDecimal.TEN); + assert payment.status() == Status.PENDING; + assert payment.toBuilder().phone("456").build().phone().equals("456"); + assert Payment.builder().serviceCharge(BigDecimal.ONE).build().serviceCharge().equals(BigDecimal.ONE); + + var constructor = ConstructorOnly.builder().withName("test").withCount(2).build(); + assert constructor.toBuilder().withCount(3).build().count() == 3; + assert constructor.name().equals("test"); + try { + ConstructorOnly.builder().withCount(-1).build(); + throw new AssertionError("compact constructor validation was bypassed"); + } catch (IllegalArgumentException expected) {} + + assert TypeOnly.builder().count(2).build().count() == 3; + assert Empty.builder().build().equals(new Empty()); + var generic = Generic.builder().value("value").tag("one").build(); + assert generic.value().equals("value"); + assert generic.tags().equals(List.of("one")); + assert generic.toBuilder().tag("two").build().tags().equals(List.of("one", "two")); + try { + Generic.builder().build(); + throw new AssertionError("non-null check was bypassed"); + } catch (NullPointerException expected) {} + + assert Canonical.builder().name(" test ").count(2).build().equals(new Canonical("test", 2)); + assert Explicit.builder().name("test").build().equals(new Explicit("test", 7)); + assert Ordinary.builder().name("test").build().name.equals("test"); + assert methodBuilder().name("test").build().equals("test"); + assert new ConstructorCalls().name.equals("default"); + assert new ConstructorCalls("explicit").name.equals("explicit"); + assert new GeneratedConstructor("generated").initialized == 7; + assert new GeneratedConstructor("generated").name.equals("generated"); + try { + new ConstructorCalls(null); + throw new AssertionError("constructor non-null check was bypassed"); + } catch (NullPointerException expected) {} + } +} diff --git a/java/lombok/tests/verify.py b/java/lombok/tests/verify.py new file mode 100644 index 00000000..e164f4ce --- /dev/null +++ b/java/lombok/tests/verify.py @@ -0,0 +1,33 @@ +"""Compile and run builder regressions with javac and the compiler shipped by JDT LS. + +Usage: python3 java/lombok/tests/verify.py /path/to/jdtls /path/to/lombok.jar +Requires a JDK 21+ on PATH. All generated files stay in a temporary directory. +""" + +import os +import pathlib +import subprocess +import sys +import tempfile + + +def main(): + home, lombok = (pathlib.Path(p).resolve() for p in sys.argv[1:3]) + ecj, = (home / "plugins").glob("org.eclipse.jdt.core.compiler.batch_*.jar") + source = pathlib.Path(__file__).with_name("BuilderCompactConstructor.java") + with tempfile.TemporaryDirectory(prefix="openidea-lombok-builders-") as tmp: + for compiler in ("javac", "ecj"): + output = pathlib.Path(tmp) / compiler + output.mkdir() + if compiler == "javac": + command = ["javac", "--release", "21", "-processorpath", str(lombok)] + else: + command = ["java", f"-javaagent:{lombok}", "-jar", str(ecj), "-21"] + subprocess.run(command + ["-cp", str(lombok), "-d", str(output), str(source)], check=True) + subprocess.run(["java", "-ea", "-cp", os.pathsep.join((str(output), str(lombok))), + "BuilderCompactConstructor"], check=True) + print(f"{compiler}: builder regression assertions passed", flush=True) + + +if __name__ == "__main__": + main()