From 03d5d239cf43b2763f6b6ff1620fd30ced66c9ff Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Tue, 13 Feb 2018 20:49:56 -0500 Subject: [PATCH 1/2] not near finished --- .DS_Store | Bin 0 -> 6148 bytes pom.xml | 6 ++- src/.DS_Store | Bin 0 -> 6148 bytes src/main/.DS_Store | Bin 0 -> 6148 bytes src/main/java/CurrencyExchange.java | 40 ++++++++++++++++++ src/main/java/DELETEME | 0 src/test/java/CurrencyExchangeTest.java | 20 +++++++++ src/test/java/DELETEME | 0 target/classes/CurrencyExchange.class | Bin 0 -> 1455 bytes .../test-classes/CurrencyExchangeTest.class | Bin 0 -> 285 bytes 10 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 .DS_Store create mode 100644 src/.DS_Store create mode 100644 src/main/.DS_Store create mode 100644 src/main/java/CurrencyExchange.java delete mode 100644 src/main/java/DELETEME create mode 100644 src/test/java/CurrencyExchangeTest.java delete mode 100644 src/test/java/DELETEME create mode 100644 target/classes/CurrencyExchange.class create mode 100644 target/test-classes/CurrencyExchangeTest.class diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..130cb339c1f441871effee57be14c4bbe2575ae2 GIT binary patch literal 6148 zcmeHK!EVz)5S>jzYX>260JTS7kT`@YsT4&OLNXye^nipgf&-w|jzeq7^+vISfe_>i z9|3>Br|<=Q4!qgjhK3ZWCxl=}ntijg^VafP+v_DFF_^_&q81T3aK@U8<^tn!_BE@S z%mz@XIo{AIr3a}TMd@0#P5g}t@Y-$Cgd|pOht92^j4;BF#a;OA@5&Gnx%8O!={^nV zA#ex0Sg-h!@#PmropPGeXthdgU0fBF`6No!TwkL}n&d^N^G($1jVl|Qj?;9S*P1Vb z6IljDSj_T4IDO8&M`3XinfQs6=`s$Zr^&cHY~6Suvm#8g@l=tMc#M)4&yp;baP>_pX-0RbppY^;M)ZmjMBE!83Mqxe$4N&(Rr2Ezev$?UCbH^+Oe2S0+dab2ZxNkO2tV$||h dybV`|yvG61H&|&z24;T*lnl193j9$8egG`vg+>4X literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index 682d6db..38ae9ea 100644 --- a/pom.xml +++ b/pom.xml @@ -9,6 +9,10 @@ 1.0-SNAPSHOT - + + junit + junit + 4.12 + \ No newline at end of file diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7d05f34716c10c402697ef9ee5a3ad3bbb2dba5e GIT binary patch literal 6148 zcmeHK!AiqG5S^`2w-vDmL65lz9(rhnQbdGM>%p54(SwR6wrC(`rAaMXEBOum13$$t z@N;x#cP-lLRa9nR_RY@DY_e~|ZUz8Ev)8TxlmS4Z5*CWsd?7SWIw1w?aS#Q~u@kGa zFjgVuiGqX~b zWNE&1>|dz9p9NVjZ3f*#>g@*EMQH6krQ(qtg!@sae^OrDQb`s>NvErmqjm>Fjt-)v zt@=&XOWLWP$2S8~7G?3IygV4J)$0|vwzfX3xPwNcT5;=*_2IB6msV<RVPsVxdlZCBNge^RTtHVKf2DxPhn1Rm>Oqp((?*HxY>;KP5 z++zlqfq%t-a9Vz=iA%C~>%`*du60pQQAsE+H#kZ`Ltn)hOIPtSsuuLSWFUGLbA#wX P;U57_12@dTk23HESrul$ literal 0 HcmV?d00001 diff --git a/src/main/.DS_Store b/src/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9924006c4e6c7646afee0877975ae001b6ddcade GIT binary patch literal 6148 zcmeHKQA+|r5Z+a*)rfou^6_4R9(+(iL?SrM9()Tf>Y+mKQu5-u6+J!5jQbn)kNO4u zoSNBPg|glvLS|t0o12~4W4=9hZx~~|G47Tb%QMCVC}JuL!#9HSs7sPEo-`oGHClnZ z_5$g_GcHK-{~5r&%dlJKvI%p)?B4;*?Y}Egg)HK{cr-Bk{OSz?e-xEUZ#GOqt>fqkA+jRd&KIWBO0`a$r^?CzBhTb;Z6hw0<& z=~?duhYwZBw!t~PfUziW;taz;hBx4w$Is&ki2-7O7+3)Y%+V$`SD+RuffyhLewP6} zA1qKr+hC$m9UU;J7632 literal 0 HcmV?d00001 diff --git a/src/main/java/CurrencyExchange.java b/src/main/java/CurrencyExchange.java new file mode 100644 index 0000000..d50d567 --- /dev/null +++ b/src/main/java/CurrencyExchange.java @@ -0,0 +1,40 @@ + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.Iterator; +import java.util.Scanner; + + +public class CurrencyExchange { +//exchange rate table is computed in dollar to __ + + private Double money; + + public static final Double US_DOLLAR = 1.00; + public static final Double EURO = 0.94; + public static final Double BRITISH_POUND = 0.82; + public static final Double INDIAN_RUPEE = 68.32; + public static final Double AUSTRALIAN_DOLLAR = 1.35; + public static final Double CANADIAN_DOLLAR = 1.32; + public static final Double SINGAPORE_DOLLAR = 1.43; + public static final Double SWISS_FRANK = 1.01; + public static final Double MALAYSIAN_RINGGIT = 4.47; + public static final Double JAPANESE_YEN = 115.84; + public static final Double CHINESE_YUAN_RENMINBI = 6.92; + + public CurrencyExchange(){ + this.money = money; + } + + + public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) { + Double conversion = (Math.round((1 / firstRate)*secondRate)*100d)/100d; + Double currencyLast = money * conversion; + return currencyLast; + } + + + +} + diff --git a/src/main/java/DELETEME b/src/main/java/DELETEME deleted file mode 100644 index e69de29..0000000 diff --git a/src/test/java/CurrencyExchangeTest.java b/src/test/java/CurrencyExchangeTest.java new file mode 100644 index 0000000..f18a33c --- /dev/null +++ b/src/test/java/CurrencyExchangeTest.java @@ -0,0 +1,20 @@ + +import org.junit.Assert; +import org.junit.Test; + + +public class CurrencyExchangeTest { + + @Test + public void testCurrencyRateConversion() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.BRITISH_POUND; + Double secondRate = CurrencyExchange.AUSTRALIAN_DOLLAR; + Double money = (double)100000; + Double expectedAmount = 100000*(Math.round((1 / firstRate)*secondRate)*100d)/100d; + + Double expected = currencyRateConversion(firstRate, secondRate, money); + + } +} diff --git a/src/test/java/DELETEME b/src/test/java/DELETEME deleted file mode 100644 index e69de29..0000000 diff --git a/target/classes/CurrencyExchange.class b/target/classes/CurrencyExchange.class new file mode 100644 index 0000000000000000000000000000000000000000..b16026f6dc114098097b2260f5cdb37a803ac348 GIT binary patch literal 1455 zcmZux&vO%19RIvDY_{pzHf3AER!Bw1Bp?+fg}HbXRbQqc)_FN_w5E)8h2*jzR%}<_w)Vr-h2G-FAo8n zz|}PJD5fx%MgqltR8aqYtQ&a zt@QL;^?aw}td4U84?S4>^UK3JmbB8}xu=i5+05(sL@Q^M(5)vrmbLPxqI3V~sA=VK z#V+1fj#spDgJPp6ja8gaVJ(Gq23>sKY;${CFzjEx&Ug7#;7e=jEceZN`g06@x%>u0vf{KzacEiEVkOww z67B^~rVJy?PLo?3+?5J<$)w+wo?5E}t}E>3&G~NBBs|vaa_ig|702Ect|uLvVLI0v zNiUP{r6}oZ()D~LsGNpn2{Y{G!;tnw)3IBTMVhA1y{79<;5NmARLP9)jrX|HGH@JI z44IyC8z|r?dB0fCRvpXYZVGh+7jV(Q1};(2<^$JZc;$>Med)Ec=bgZAF&O9UmgIJJ zJ?IE>nmHYKzRN8|MKV<93b%P^^o$vYgXEjX-%9_Kvi-q=Cz5q;SQ+r`Ti|-dh5qUKDh7>$+%? zaEyv-%#hmURv=cdk)K@kf4kJz3Fz0C+8pV{w_ulv3v?+;rxotc4dp1@m{o?s7s1uI z-)7k7MpaHy6ib+-vz(_x#ON4Pv*>$_Py+AJ%T!-!e3zCdkfa&#uy7x&@GBCH`{?@_ z$--SENA?XpfOZe5OCi!t^vCgl2_udNO}u2EF)93 sU9aj6OVF65P$on9LL||ZCoz14>Coj7oT6EREKN#c8hymhggUeT0k>*s6aWAK literal 0 HcmV?d00001 diff --git a/target/test-classes/CurrencyExchangeTest.class b/target/test-classes/CurrencyExchangeTest.class new file mode 100644 index 0000000000000000000000000000000000000000..17557080884ec5e5f69661f28e36a1dc591e4725 GIT binary patch literal 285 zcmZusJ&VFn5S)$q@M8Qx`C^g2+c^RYF6xGWtJjNSZPO@ z6v;{$UGjg?&Nq5b_>3lnF)Ed(=}~S(x>ifI&xZtmkrhU&UtKnQy)*T<;vfRpa0s1u z212W}gbCM%^LVRdjxH>Ip&a7nEThXTd~v|(T|j3REO?AA%iutjF?ih$KHxJW)EF%U EPmVr5761SM literal 0 HcmV?d00001 From 17c0ee8a19f0ebdf72d24e0fad5c9648d525a47b Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Wed, 14 Feb 2018 20:14:15 -0500 Subject: [PATCH 2/2] first commit --- .../carolynnvansant}/CurrencyExchange.java | 14 +- src/test/java/CurrencyExchangeTest.java | 143 +++++++++++++++++- target/classes/CurrencyExchange.class | Bin 1455 -> 0 bytes .../carolynnvansant/CurrencyExchange.class | Bin 0 -> 1552 bytes .../test-classes/CurrencyExchangeTest.class | Bin 285 -> 3221 bytes 5 files changed, 142 insertions(+), 15 deletions(-) rename src/main/java/{ => com/zipcodewilmington/wutangfinancial/carolynnvansant}/CurrencyExchange.java (69%) delete mode 100644 target/classes/CurrencyExchange.class create mode 100644 target/classes/com/zipcodewilmington/wutangfinancial/carolynnvansant/CurrencyExchange.class diff --git a/src/main/java/CurrencyExchange.java b/src/main/java/com/zipcodewilmington/wutangfinancial/carolynnvansant/CurrencyExchange.java similarity index 69% rename from src/main/java/CurrencyExchange.java rename to src/main/java/com/zipcodewilmington/wutangfinancial/carolynnvansant/CurrencyExchange.java index d50d567..477b6d9 100644 --- a/src/main/java/CurrencyExchange.java +++ b/src/main/java/com/zipcodewilmington/wutangfinancial/carolynnvansant/CurrencyExchange.java @@ -1,10 +1,4 @@ - -import java.util.HashMap; -import java.util.Map; -import java.util.Set; -import java.util.Iterator; -import java.util.Scanner; - +package com.zipcodewilmington.wutangfinancial.carolynnvansant; public class CurrencyExchange { //exchange rate table is computed in dollar to __ @@ -28,9 +22,9 @@ public CurrencyExchange(){ } - public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) { - Double conversion = (Math.round((1 / firstRate)*secondRate)*100d)/100d; - Double currencyLast = money * conversion; + public static Double currencyRateConversion(Double firstRate, Double secondRate, Double money) { + Double conversion = (1 / firstRate)*secondRate; + Double currencyLast = Math.round(money * conversion * 100d)/100d; return currencyLast; } diff --git a/src/test/java/CurrencyExchangeTest.java b/src/test/java/CurrencyExchangeTest.java index f18a33c..7a0a322 100644 --- a/src/test/java/CurrencyExchangeTest.java +++ b/src/test/java/CurrencyExchangeTest.java @@ -1,6 +1,9 @@ -import org.junit.Assert; +import com.zipcodewilmington.wutangfinancial.carolynnvansant.CurrencyExchange; import org.junit.Test; +import org.junit.Assert; + +import static com.zipcodewilmington.wutangfinancial.carolynnvansant.CurrencyExchange.currencyRateConversion; public class CurrencyExchangeTest { @@ -9,12 +12,142 @@ public class CurrencyExchangeTest { public void testCurrencyRateConversion() { //Given: //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) - Double firstRate = CurrencyExchange.BRITISH_POUND; - Double secondRate = CurrencyExchange.AUSTRALIAN_DOLLAR; + Double firstRate = CurrencyExchange.US_DOLLAR; + Double secondRate = CurrencyExchange.EURO; + Double money = (double)100000; + Double expectedAmount = (double)94000; + + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + + Assert.assertEquals(expectedAmount,actualAmount); + } + + + + @Test + public void testCurrencyRateConversion2() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.EURO; + Double secondRate = CurrencyExchange.US_DOLLAR; + Double money = (double)94000; + Double expectedAmount = (double)100000; + + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + + Assert.assertEquals(expectedAmount,actualAmount); + } + + @Test + public void testCurrencyRateConversion3() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.EURO; + Double secondRate = CurrencyExchange.BRITISH_POUND; Double money = (double)100000; - Double expectedAmount = 100000*(Math.round((1 / firstRate)*secondRate)*100d)/100d; + Double expectedAmount = (double)87234.04; + + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + + Assert.assertEquals(expectedAmount,actualAmount); + } + + @Test + public void testCurrencyRateConversion4() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.BRITISH_POUND; + Double secondRate = CurrencyExchange.INDIAN_RUPEE; + Double money = (double)87234.04; + Double expectedAmount = (double)7268084.89; + + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + + Assert.assertEquals(expectedAmount,actualAmount); + } + + @Test + public void testCurrencyRateConversion5() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.INDIAN_RUPEE; + Double secondRate = CurrencyExchange.CANADIAN_DOLLAR; + Double money = (double)7268084.89; + Double expectedAmount = (double)140425.53; - Double expected = currencyRateConversion(firstRate, secondRate, money); + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + Assert.assertEquals(expectedAmount,actualAmount); } + + @Test + public void testCurrencyRateConversion6() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.CANADIAN_DOLLAR; + Double secondRate = CurrencyExchange.SINGAPORE_DOLLAR; + Double money = (double)140425.53; + Double expectedAmount = (double)152127.66; + + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + + Assert.assertEquals(expectedAmount,actualAmount); + } + + @Test + public void testCurrencyRateConversion7() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.SINGAPORE_DOLLAR; + Double secondRate = CurrencyExchange.SWISS_FRANK; + Double money = (double)152127.66; + Double expectedAmount = (double)107446.81; + + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + + Assert.assertEquals(expectedAmount,actualAmount); + } + + @Test + public void testCurrencyRateConversion8() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.SWISS_FRANK; + Double secondRate = CurrencyExchange.MALAYSIAN_RINGGIT; + Double money = (double)107446.81; + Double expectedAmount = (double)475531.92; + + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + + Assert.assertEquals(expectedAmount,actualAmount); + } + + @Test + public void testCurrencyRateConversion9() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.MALAYSIAN_RINGGIT; + Double secondRate = CurrencyExchange.JAPANESE_YEN; + Double money = (double)475531.92; + Double expectedAmount = (double)12323404.39; + + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + + Assert.assertEquals(expectedAmount,actualAmount); + } + + @Test + public void testCurrencyRateConversion10() { + //Given: + //public Double currencyRateConversion(Double firstRate, Double secondRate, Double money) + Double firstRate = CurrencyExchange.JAPANESE_YEN; + Double secondRate = CurrencyExchange.CHINESE_YUAN_RENMINBI; + Double money = (double)12323404.39; + Double expectedAmount = (double)736170.22; + + Double actualAmount = currencyRateConversion(firstRate, secondRate, money); + + Assert.assertEquals(expectedAmount,actualAmount); + } + } diff --git a/target/classes/CurrencyExchange.class b/target/classes/CurrencyExchange.class deleted file mode 100644 index b16026f6dc114098097b2260f5cdb37a803ac348..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1455 zcmZux&vO%19RIvDY_{pzHf3AER!Bw1Bp?+fg}HbXRbQqc)_FN_w5E)8h2*jzR%}<_w)Vr-h2G-FAo8n zz|}PJD5fx%MgqltR8aqYtQ&a zt@QL;^?aw}td4U84?S4>^UK3JmbB8}xu=i5+05(sL@Q^M(5)vrmbLPxqI3V~sA=VK z#V+1fj#spDgJPp6ja8gaVJ(Gq23>sKY;${CFzjEx&Ug7#;7e=jEceZN`g06@x%>u0vf{KzacEiEVkOww z67B^~rVJy?PLo?3+?5J<$)w+wo?5E}t}E>3&G~NBBs|vaa_ig|702Ect|uLvVLI0v zNiUP{r6}oZ()D~LsGNpn2{Y{G!;tnw)3IBTMVhA1y{79<;5NmARLP9)jrX|HGH@JI z44IyC8z|r?dB0fCRvpXYZVGh+7jV(Q1};(2<^$JZc;$>Med)Ec=bgZAF&O9UmgIJJ zJ?IE>nmHYKzRN8|MKV<93b%P^^o$vYgXEjX-%9_Kvi-q=Cz5q;SQ+r`Ti|-dh5qUKDh7>$+%? zaEyv-%#hmURv=cdk)K@kf4kJz3Fz0C+8pV{w_ulv3v?+;rxotc4dp1@m{o?s7s1uI z-)7k7MpaHy6ib+-vz(_x#ON4Pv*>$_Py+AJ%T!-!e3zCdkfa&#uy7x&@GBCH`{?@_ z$--SENA?XpfOZe5OCi!t^vCgl2_udNO}u2EF)93 sU9aj6OVF65P$on9LL||ZCoz14>Coj7oT6EREKN#c8hymhggUeT0k>*s6aWAK diff --git a/target/classes/com/zipcodewilmington/wutangfinancial/carolynnvansant/CurrencyExchange.class b/target/classes/com/zipcodewilmington/wutangfinancial/carolynnvansant/CurrencyExchange.class new file mode 100644 index 0000000000000000000000000000000000000000..faeae03ae3bfb4a743971818eb91643ce7bd66bd GIT binary patch literal 1552 zcmb_cO>^615Pn|UkrPLWlZ;YGLkk5494Cz_l&?0at@tZS9XYY=w1I$;6{S&eq>evQ zk~4H)fkyd`nSbfcYcj6GAb*X^^@3| zl793hKVNZdozU3_>%V{cJfn(|e#|uvA2PC(^q+}GKYy_`!>Foc#!q53C9}n$#AA+a zD4A(KRlLjSS`^o#*c2Gp3w-xLV4`%>-nUat+rN>@1>Hu|y(}y_GCJ})q?*Q{zqFR|dZD75SE_;HVwxE2aes`uv;GEzBAI<_1Xf=sr|+xS9XA{J`);f41-`&a;%UbJi)ZHPBzjRhUaQ^V76P%h>jeIGACP(6Qa!p$ z$!>Q91{a)WpR1S^bX$&F@R*s&e~vNFtD)j8yscse$td1a@jkXxe1H$5sH^x06rM#= z#T<+CEaq9HSiHvK0*lvKyusoki#L%JDEvQE3yhsCaJg~Qb!fsTT)mwZ7~Yo4y5!Tj zk(x-6ns||#sF9l3k(vmSnmCf0Xp)+klA6dO9fsidK=K_zY3e6Pk0gJ9NG9(gbRVH_ z$q~Z4Bu6P7&=A2SUF{Su5mI{xa2X4PhOme${bHX{-T?XL;>qt34rWPw`~VSij*RmR zGz^d<`Z?)<0+%9Fk#8vf$zG=s$23v!oa}Y6SC6jASEtIzki{3ClQe}W`wVpQg$akT zL{)HC5-Q5vPXVVNk=6G=?>((iqjy3yo`-kRDCLq%@w<@T@dWYnYbC84YKp z@q&hP(s)V3%hGs-Srd}Ac?^?1h$yi$Mt|=q!Y>kUvlyYZ9VN!%C{Uz~aa_j)oyt*u H2>HJO?f_bx literal 0 HcmV?d00001 diff --git a/target/test-classes/CurrencyExchangeTest.class b/target/test-classes/CurrencyExchangeTest.class index 17557080884ec5e5f69661f28e36a1dc591e4725..a5a92e03534e6cce9b6eebb29283c291a9925780 100644 GIT binary patch literal 3221 zcmcK5+fy4=90%~&-f+LBNTE#+pGB*4P5NppeHV&k$buuQUx$%b2> zs*Y1r!Sn7tToRI z_rCve^wrOgS!;n8xNd23=jjX9l6b-Ph>?gy;3$ou{nPh#RKYstLO&U>G^4_~rY zh!-{=ik}_6%w-7kLeE|dL7Wb{?Vt!p{Df}k))Yroef>)u+5P6a#!}u(ZZWl8-PiaefMn@RIFicCakPyxW$xLs0x3l=b-h%Mr*}@@?N{n7F zIXYZ&bfo0yjgq4`OOB3~9KFTSn`eLCYlGPGsF_Wx+KkSQy!H6xPM@lW9h8gSp&kcC zT@)jai{j*Q(2|Rm>5hw5=&pnAxoDN%bJ2Y^oM6TKtWa37#tM}c>#Weo!;!mKDje9! ztq84cN;ftw)9~(PE!>?A-B1iwSCU>;Nt?+7!`M}fjAB^c z*W=^*#iNNpNRkA+1omJ&68cxV{3Ybbv8yDrT4;l#^L>H-Vz;zeE!_Rr@ArJ)f2Wtz zQ#4D%$;}lq87-Z=__<2(1KfUG?%vbs^1C&DDqW$6z2k38N5q&IolAs6aXElDNR$Jj zASWX6a4?8>-!I5QuH$%n8ls{+D}+Ol;6FQ78(kKo(ZozdkQX>=Tofc>C7KI@sk34X zQRjuQAP1wt#7a=c_W9?;d@IgU1?5Fio))Q#-o_Ut`>Q36-71v5XnFDE@T|W49dX~H zVxvBke6F*G`cZe~C(vcOf)+>U%5JP zL^Wg8t@hUHBXXXEzeEl!t0y}(&^c;Et%+L5O&!#X;4QhdQ~A(^w08Ih$b-l-UWIe=tBg5PyzHrF?1Wy?Ladv(3i?VKLq+ipg#io zW1v3)`VoSES^@NAF?2i7oj@}!&|T%A9|Qe4&`*H=0_ZP+{tCgrt^j%pKQT6X_isf) BJGE48Ti;4_$O|NpL~ExlbMBqb+Q?=RxpDi0~1gd z1Q>x3C=4XofINLLpMil@YdZtuMxX!_13Qpp0}3+$HE;k)9x$7gfs=s?$YW&S29it+ FJOFcr3-