From 64c6586e81165929e2657a9974bb14204b062d3b Mon Sep 17 00:00:00 2001 From: Charlotte Beale Date: Fri, 29 Nov 2019 15:09:05 -0500 Subject: [PATCH] Complete --- .idea/$PRODUCT_WORKSPACE_FILE$ | 19 +++ .idea/.gitignore | 2 + .idea/Lambdas2-ZCW.iml | 12 ++ .idea/compiler.xml | 16 +++ ...thub_stefanbirkner_system_rules_1_19_0.xml | 13 ++ .idea/libraries/Maven__junit_junit_4_9.xml | 13 ++ .../Maven__org_hamcrest_hamcrest_core_1_1.xml | 13 ++ .idea/misc.xml | 16 +++ .idea/modules.xml | 9 ++ .idea/uiDesigner.xml | 124 ++++++++++++++++++ .idea/vcs.xml | 6 + lambdas2zcw/lambdas2zcw.iml | 19 +++ lambdas2zcw/pom.xml | 38 ++++++ lambdas2zcw/src/main/java/CheckPerson.java | 4 + lambdas2zcw/src/main/java/Main.java | 46 +++++++ lambdas2zcw/src/main/java/Person.java | 63 +++++++++ lambdas2zcw/src/test/java/PersonTest.java | 48 +++++++ lambdas2zcw/target/classes/CheckPerson.class | Bin 0 -> 150 bytes lambdas2zcw/target/classes/Main$1.class | Bin 0 -> 641 bytes .../target/classes/Main$1checkForOver18.class | Bin 0 -> 686 bytes lambdas2zcw/target/classes/Main.class | Bin 0 -> 2837 bytes lambdas2zcw/target/classes/Person$Sex.class | Bin 0 -> 919 bytes lambdas2zcw/target/classes/Person.class | Bin 0 -> 2213 bytes 23 files changed, 461 insertions(+) create mode 100644 .idea/$PRODUCT_WORKSPACE_FILE$ create mode 100644 .idea/.gitignore create mode 100644 .idea/Lambdas2-ZCW.iml create mode 100644 .idea/compiler.xml create mode 100644 .idea/libraries/Maven__com_github_stefanbirkner_system_rules_1_19_0.xml create mode 100644 .idea/libraries/Maven__junit_junit_4_9.xml create mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 lambdas2zcw/lambdas2zcw.iml create mode 100644 lambdas2zcw/pom.xml create mode 100644 lambdas2zcw/src/main/java/CheckPerson.java create mode 100644 lambdas2zcw/src/main/java/Main.java create mode 100644 lambdas2zcw/src/main/java/Person.java create mode 100644 lambdas2zcw/src/test/java/PersonTest.java create mode 100644 lambdas2zcw/target/classes/CheckPerson.class create mode 100644 lambdas2zcw/target/classes/Main$1.class create mode 100644 lambdas2zcw/target/classes/Main$1checkForOver18.class create mode 100644 lambdas2zcw/target/classes/Main.class create mode 100644 lambdas2zcw/target/classes/Person$Sex.class create mode 100644 lambdas2zcw/target/classes/Person.class diff --git a/.idea/$PRODUCT_WORKSPACE_FILE$ b/.idea/$PRODUCT_WORKSPACE_FILE$ new file mode 100644 index 0000000..79be354 --- /dev/null +++ b/.idea/$PRODUCT_WORKSPACE_FILE$ @@ -0,0 +1,19 @@ + + + + + + + 11 + + + + + + + + \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..5c98b42 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/.idea/Lambdas2-ZCW.iml b/.idea/Lambdas2-ZCW.iml new file mode 100644 index 0000000..7997eab --- /dev/null +++ b/.idea/Lambdas2-ZCW.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..bd60617 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_stefanbirkner_system_rules_1_19_0.xml b/.idea/libraries/Maven__com_github_stefanbirkner_system_rules_1_19_0.xml new file mode 100644 index 0000000..638bae2 --- /dev/null +++ b/.idea/libraries/Maven__com_github_stefanbirkner_system_rules_1_19_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_9.xml b/.idea/libraries/Maven__junit_junit_4_9.xml new file mode 100644 index 0000000..c42d5ab --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml new file mode 100644 index 0000000..acdf443 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..083dfca --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..b8d5b83 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lambdas2zcw/lambdas2zcw.iml b/lambdas2zcw/lambdas2zcw.iml new file mode 100644 index 0000000..8cc58e2 --- /dev/null +++ b/lambdas2zcw/lambdas2zcw.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lambdas2zcw/pom.xml b/lambdas2zcw/pom.xml new file mode 100644 index 0000000..839351c --- /dev/null +++ b/lambdas2zcw/pom.xml @@ -0,0 +1,38 @@ + + + 4.0.0 + + com.zipcodewilmington + lambdas2zcw + 1.0-SNAPSHOT + + + junit + junit + 4.9 + test + + + com.github.stefanbirkner + system-rules + 1.19.0 + test + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + \ No newline at end of file diff --git a/lambdas2zcw/src/main/java/CheckPerson.java b/lambdas2zcw/src/main/java/CheckPerson.java new file mode 100644 index 0000000..5365dc6 --- /dev/null +++ b/lambdas2zcw/src/main/java/CheckPerson.java @@ -0,0 +1,4 @@ +public interface CheckPerson { + + Boolean test(Person person); +} diff --git a/lambdas2zcw/src/main/java/Main.java b/lambdas2zcw/src/main/java/Main.java new file mode 100644 index 0000000..1356cba --- /dev/null +++ b/lambdas2zcw/src/main/java/Main.java @@ -0,0 +1,46 @@ +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +public class Main { + + public static void printPeople(List roster, CheckPerson tester) { + for (Person p : roster) { + if (tester.test(p)) { + p.printPerson(); + } + } + } + + public static void main(String[] args) { + Person aswomeSister, secondBestSister, thirdBestSister, olderSister; + ArrayList myFamily = new ArrayList<>(); + + aswomeSister = new Person("Charlotte Beale", LocalDate.of(1982, java.time.Month.AUGUST, 20), Person.Sex.FEMALE, "cbeale2000@gmail.com"); + secondBestSister = new Person("Ruth Beale", LocalDate.of(1980, java.time.Month.MARCH, 07), Person.Sex.FEMALE, "rbeale@gmail.com"); + thirdBestSister = new Person("Kesha Beale", LocalDate.of(1978, java.time.Month.AUGUST, 17), Person.Sex.FEMALE, "kbeale@gmail.com"); + olderSister = new Person("Kathleen Beale", LocalDate.of(1976, java.time.Month.FEBRUARY, 23), Person.Sex.FEMALE, "kbeale@hotmail.com"); + myFamily.add(aswomeSister); + myFamily.add(secondBestSister); + myFamily.add(thirdBestSister); + myFamily.add(olderSister); + + + class checkForOver18 implements CheckPerson { + + @Override + public Boolean test(Person person) { + return person.getAge() >= 18; + } + } + printPeople(myFamily, new checkForOver18()); + + printPeople(myFamily, new CheckPerson() { + @Override + public Boolean test(Person person) { + return person.getAge() >= 18; + } + }); + printPeople(myFamily, person -> person.getAge() >= 45); + } +} diff --git a/lambdas2zcw/src/main/java/Person.java b/lambdas2zcw/src/main/java/Person.java new file mode 100644 index 0000000..9500beb --- /dev/null +++ b/lambdas2zcw/src/main/java/Person.java @@ -0,0 +1,63 @@ +import java.time.LocalDate; +import java.time.Period; +import java.util.ArrayList; + +public class Person { + String name; + LocalDate birthday; + Sex gender; + String emailAddress; + ArrayList personList = new java.util.ArrayList<>(); + + + public Person(String name, LocalDate birthday, Sex gender, String emailAddress) { + this.name = name; + this.birthday = birthday; + this.gender = gender; + this.emailAddress = emailAddress; + } + + public enum Sex { + MALE, FEMALE + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public LocalDate getBirthday() { + return birthday; + } + + public void setBirthday(LocalDate birthday) { + this.birthday = birthday; + } + + public Person.Sex getGender() { + return gender; + } + + public void setGender(Sex gender) { + this.gender = gender; + } + + public String getEmailAddress() { + return emailAddress; + } + + public void setEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public int getAge() { + return Period.between(birthday, LocalDate.now()).getYears(); + } + + public void printPerson() { + System.out.println(String.format("{ Name: %s, Birthday: %s, Gender: %s, EmailAddress: %s}\n", name, birthday, gender, emailAddress)); + } +} diff --git a/lambdas2zcw/src/test/java/PersonTest.java b/lambdas2zcw/src/test/java/PersonTest.java new file mode 100644 index 0000000..13d05a4 --- /dev/null +++ b/lambdas2zcw/src/test/java/PersonTest.java @@ -0,0 +1,48 @@ +import static org.junit.Assert.*; +import org.junit.Before; +import org.junit.After; +import org.junit.Test; +import org.junit.Assert; +import org.junit.contrib.java.lang.system.SystemOutRule; +import java.rmi.server.RemoteServer; +import org.junit.Rule; + +public class PersonTest { + Person aswomeSister, secondBestSister, thirdBestSister, olderSister; + java.util.ArrayList myFamily = new java.util.ArrayList<>(); + + @Before + public void setUp() throws Exception { + aswomeSister = new Person("Charlotte Beale", java.time.LocalDate.of(1982, java.time.Month.AUGUST, 20), Person.Sex.FEMALE, "cbeale2000@gmail.com"); + secondBestSister = new Person("Ruth Beale", java.time.LocalDate.of(1980, java.time.Month.MARCH, 07), Person.Sex.FEMALE, "rbeale@gmail.com"); + thirdBestSister = new Person("Kesha Beale", java.time.LocalDate.of(1978, java.time.Month.AUGUST, 17), Person.Sex.FEMALE, "kbeale@gmail.com"); + olderSister = new Person("Kathleen Beale", java.time.LocalDate.of(1976, java.time.Month.FEBRUARY, 23), Person.Sex.FEMALE, "kbeale@hotmail.com"); + myFamily.add(aswomeSister); + myFamily.add(secondBestSister); + myFamily.add(thirdBestSister); + myFamily.add(olderSister); + + + } + + @Rule + public final SystemOutRule systemOutRule= new SystemOutRule().enableLog(); + + @Test + public void printPersons() { + String expected = "{ Name: Ruth Beale, Birthday: 1980-03-07, Gender: FEMALE, EmailAddress: rbeale@gmail.com}\n\n"; + Main.printPeople(myFamily, new CheckPerson() { + @Override + public Boolean test (Person person){ + return person.getAge() <= 18; + } + }); + Assert.assertEquals(expected, systemOutRule.getLog()); + } + @Test + public void printPersonLambda() { + String expected = "{ Name: Charlotte Beale, Birthday: 1982-08-20, Gender: FEMALE, EmailAddress: cbeale2000@gmail.com}\n\n"; + Main.printPeople(myFamily, person -> person.getAge() >= 45 && person.getGender() == Person.Sex.FEMALE); + Assert.assertEquals(expected, systemOutRule.getLog()); + } +} \ No newline at end of file diff --git a/lambdas2zcw/target/classes/CheckPerson.class b/lambdas2zcw/target/classes/CheckPerson.class new file mode 100644 index 0000000000000000000000000000000000000000..e7a0a492aacfa2756f9668972ff239bdbd3a84ad GIT binary patch literal 150 zcmX^0Z`VEs1_l!bPId-%b_Nbc29}c4;u1y%Sq-0n)S}}2JZnv#ti-ZJ{hY+SbbY7% z{G8OpJZnYfgc6r4>QZ|XXb1_+-83Z*zjA|P=KLO=vkC5ILT^*~P>cS+p3>&kZee>ic4 z3m^{s0Dcr=)-ehP4!g7O?Yw!jZ-4#%@e{xkYz0@^I>fCoB7E^XYbS`VWtzNkxKSe7TdT=I>ju`1^gXjbT&*>o@<89 zaHL|h`FKFNLg$6RdJyjEEKkj#7aplI)lZa}_FtxHqLm@dJuPo-X~h$0jSCeWkJM?^ z%NwWjEYh!I>t@Avcxa{Q^_7W|G>^@6q>EX4D6!$=4(|GpXi9AQxQ8u?`#u8n*lS@< zpuKdmJ2}!3eXb5?Iyzohpn1zAoRrWF4*u~zE;2S8*paz^`R-H~FQ#m^N{Mw?;}W<)b_2E6bG{N6 W8PsqIU7~}_xPlf>9%&8{X#N4)V0%3P literal 0 HcmV?d00001 diff --git a/lambdas2zcw/target/classes/Main$1checkForOver18.class b/lambdas2zcw/target/classes/Main$1checkForOver18.class new file mode 100644 index 0000000000000000000000000000000000000000..762c710909ad7b57eeffc18e7db0ff8e244e74ed GIT binary patch literal 686 zcmZuuO>fgc6r4>QyLFv@gc3djEiK@*5>X`%NI?jQs8q=zML|8lY2$7ax9+;Ko%|n8 zT;T$U13!Qtg_w0x1*FRI&c63%XWzX2{paT|08g>&qJrBl?%=MA2JShy?_k5hrhxrC z(oz0GpzJq~1guVStOQnqNUOKw^MOj=%R$UcEl5HcAIUT_@hoZOqbL(t4o50H+fUNo zM5TMr1iS;SRoaPVmMPZjL03k4d+&c*o44gE%LN*KaH!HO(d}k%DkriPOFeA8PLfzj zO`3gCR0S3;c>>jbF2l2~yqLA(_LFfMs{P0`yJ+rvVx(y0jSk}^i}bLo@=J3g+$gY<<#`UyuS~2Gc=LOXLkN-I7=P9pm zoB7(8e0!+!S3~y7xgQ9u&Gl!#1)PbD$EtV20s0@VnhZ8z@nNaTS1$3VBSwqdwTOaP z+4&CfwJ5t>?IPL068GMeKwM!&i&*1o4!@(Ak*n=~Lus}436Av{R{00YUzjapuC!Sw p)u-&463_9wMy++SD=1Z8(j~4lD4~uUL<=`@3(MTOq*=r&@E0vLis=9V literal 0 HcmV?d00001 diff --git a/lambdas2zcw/target/classes/Main.class b/lambdas2zcw/target/classes/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..42c9d266bf81a77f21f9de2ec99adf396dd461f3 GIT binary patch literal 2837 zcma)8YjYD-7=AWQvPrsyCX_-^pg@tf6k1Rb2_kKwP@A;1DPTd=(_~3PH`%(`6zUZ( zcvrkD;th3%@tgERDc~@EcKiwc630=Wvzw4DFpQbWo^#&IdEfVWFT210bL|Fz2k=t_ z8!%Ll1d{a_#)y23s(8E}V@O3XjzbXya9G8W2*MZ&;fXLNa5RErcruLRcq)XarNlEK z2+5fYAss>{1U-Zkl8_A{Csp$*PDZc_LlLaUlnNt))fkG=iD#w0C2f^d*ec2jw83Ig zxB3lHD(NK!OVT+#JvCrjBQv_SZKs0Z?tC$C?@>_K-f>ugzu(O03YI4FMSZwjnAELt zF=>zzOPFb492Qnyo-0JZoy+smU?M5<#khj{X)9l}M|E>rsCB?K8ii#Np;Z#0b6n5F7@13{$?onQ3-vO<_@aahVG1sCYirMazO)Rob zlzw4l3DdGWu$drHI%O906!CE)FX?HsnCWA%Rnk(TY%QYHn?^>rs{Bx4c0d&J#;k(n zo{)PjOUyd3D_DCcx+f&!VTi(HMzqOL+IkeMZm*)%;R&kGG!0$IR0pS>EGmek%(9i% z2l6uIVOa=UW!5#^hfOL@X*i8p!mHsqJg?yeyhvR);VNFz@G=glIHTbe$$b@@2veo}|84GnMNEfsHTco**}Xi85?f$cp#J$thZ$Jm-S z3(}qU>Fik9&bb$8_yA{FX_g~hlVlYS>7|@-r6@3Uo4}GGVdo58FII0lCvS>X1aqcc zv-%-EqDK;ywrz`BPs0{$B^EA^c8INAvMn*4)a{&^DJ>1+<3=3d@`;4$Qw^Wta}8hM zOSY-hqK*TVQ*I-ZC-t;VFKXxwvY>=*vYnRHh_WEqbNQRR=Jra0oi?rNFvDt2l!o=w zl;&tSN}EOJ&{UQ8n3b*XX>H2NW>pZa`B$kN*88MeLx+V?X2n!Th8zjZvZG+<3wn3b zEZRBZ(|hQ^q0~67_3CPSb_IM+=6UN>8Ba3 z^9&B`PxdDE)89%TNG3%ORtAH&$32E_x)JxPc{<2576QrMvHpWh#=!o*u|vIM6SOTd z8FsPPhMU-U2VWHD@s%9;7l;#+-~pU|1+%){n`QJ&)*zENBjFt(5Y6pJ@6^F6zSi&! zzSl5-0}9sHGL4ooEMam$``r%xpsG6 zg-=1U>niFLmd847{0e?UV0iPEs|flq5A{6ME%OLn`u9(1#_yPE=63=R;zvZ79!0R3 z#sUpH?peUSE%a$M_iLQ}HLL}=lgQOM$n79XAUa_zV_uu^2$tgrnqgrDX0Z}y(8AZz zDx5Ghn7qqOolNK+H+t&q;b{Y99wo*K&t>f8&c~aMq1VCPBBhTzKP~-?e(Yn$ zs<^w9{RlKhWcRx0a`kZs#5(8E+PLK+RR1OT>lU!?7gAmC-SX=4lvfM~X~oT80KSI3 woFEt^!H35f0$9F&eqPF-EEixS|HtXfJ9}I3Ei3Um23#Ob7DSP{CZ=Kj2U*I(zW@LL literal 0 HcmV?d00001 diff --git a/lambdas2zcw/target/classes/Person$Sex.class b/lambdas2zcw/target/classes/Person$Sex.class new file mode 100644 index 0000000000000000000000000000000000000000..db534eb7df2354819b0b2f6e27f6bc4a59e1834e GIT binary patch literal 919 zcmZuvVQhB|Q0ZK493Ac~(L3(LZiE!CNHk}Q5ISg}iaB&96=EMbZErLb1p*rkvBUP1tQI=^#+$au zka~NAa$&h+nYvso-GKPP@SRP7;RyTHc+j=IQ>*LJi5ldbyl2=f8t2x9Rdp@VubRH+ zh<>BA*dSvJdzRa=JVz$aDsW*9s8HtLY!cmcgyZiq-2PATqf&<)@IN@DIAJ<{VfkZ^ zDk((?#G5^Lmb?)v-4^3PGpuTlywS|z*z4Jcj+`htwXGtD(UFmNv8v-KYAT))b#AJT zH9XgG4;wmCNb6WZnqg^fg6zc*?YToib+g4%NXJR{-0u1EUZw>ZUW7*sZm|*K|21^6 ze4|yP$Dq>-Qd&8w0-&9Q0O`CGPY6c>S=<7-NYOU!a%mH=FNj=2`9u-J9s0)tEKB?~ z9^ z>DUZ7TZog~t(lNx8bq$jckr`}s$3y{i9`@+JP4A}9|S2AdJSiMf~0u~Cc90C(?|}; bhCG>}%sM< zG7Qhai|_|9xXr-81MpA`yGL>?JIZ8ybi8NJ?(gh=N6x?h{rL}otN2z!4mB0)8e*tr za1u9psPph454U*O&~O`@8t&jO5BD;-j|XXNsrX34$7pEy1luYes@PEwH^mPM^ex8` z?q=5-48%Y|!m)Zn!F=PH^}SW?T27~GdamtsY6{XV+x4Edt$hUx{<>%PM77c1v$}UI zPmoKhBb>HyDQsg$xP!iPk&=*I7d^}FZnWF37*H1Nxm;}61Me`_(6hVM4cE2y*-U#f zrrmKYZ|D-wc|YH@&w7xfR_Dy?wqtvB1rJI`*&}Jggh#iOcc~bg{Wc}fH*8024|^@) zKC)U}Ssp&~uI1YNJuoJ`r#77}J*HBic7(Sr>v_6VKAM6Y24jbX2x>;iQi$7!Wj`|x zbENQDiZt;%8$_FN1i~DML}li}_M`jko4$>)ok7=E;BBLIUtMI#i-~ zsk}w_&q+I;pF`RxjAr(S?w+`3b0xF>+6v1}M-i(EPD$xaw_3*=cvHs$7ImD#Ssewu zrsH)is`ymLXQ-$!bv(l7I(Bhg#TPohL{q`)k40|4jpEXvQXJRE|K^|5pNG%DmY*~Q zbCVnJu=Pyrc`6?3c!IA~e68af7^J!J!L&&g$NbZ!r?Wf#7vrFEjkehRHff+Gyca?^ z3hL2aixh7lr%)ui18FLLQ&=vkFhp=6*QXXKalf0>>FCf>7hMMz=&hBbH(ZiF)Lk0E4VF*pv3ydS<&z`; z1?OlU!+B(BUZnjB-XhD-h|3sD#w#esUx+ndAwELFxI9AAsEm*@mPb&HLSlsUZ!*N& zG@gS>;|V07Ax|KuX)Iul>?d&%^Yr1DFT*X--z9qTj6oGSW7L?OF>GAU7&k%d@1PXG zRq4t8N#hSBf2BzboIE9s1(`(m9fBkZ$}q^nC##b;r%1`8Owjp<0927A!7}Ee?{$co z3NRI1MkR<921(6=T!;i&#!3`OY8GUPKrS5v!d2o5RPk;Eh&l^Wjs&@a_o6`5S&(G{ zSvdxTo5UdRN46$C3vwkA ziR>?A35#VdM3g%e%LiBuqC5^nRrwwI{0a4M