From abb50f093b9e97ed5180b669b78cabc8d53d7f0c Mon Sep 17 00:00:00 2001 From: phaneesh Date: Tue, 11 Jun 2019 13:21:38 +0530 Subject: [PATCH 1/4] Week 2 assignment 1 --- Week 2 Assignment 1/Factorial_W2A1_3.class | Bin 0 -> 632 bytes Week 2 Assignment 1/Factorial_W2A1_3.java | 15 +++++++++++++++ Week 2 Assignment 1/Fibonacci_W2A1_1.class | Bin 0 -> 976 bytes Week 2 Assignment 1/Fibonacci_W2A1_1.java | 18 ++++++++++++++++++ Week 2 Assignment 1/Reverse_W2A1_4.class | Bin 0 -> 856 bytes Week 2 Assignment 1/Reverse_W2A1_4.java | 19 +++++++++++++++++++ Week 2 Assignment 1/SumOFArray_W2A1_2.class | Bin 0 -> 724 bytes Week 2 Assignment 1/SumOFArray_W2A1_2.java | 15 +++++++++++++++ 8 files changed, 67 insertions(+) create mode 100644 Week 2 Assignment 1/Factorial_W2A1_3.class create mode 100644 Week 2 Assignment 1/Factorial_W2A1_3.java create mode 100644 Week 2 Assignment 1/Fibonacci_W2A1_1.class create mode 100644 Week 2 Assignment 1/Fibonacci_W2A1_1.java create mode 100644 Week 2 Assignment 1/Reverse_W2A1_4.class create mode 100644 Week 2 Assignment 1/Reverse_W2A1_4.java create mode 100644 Week 2 Assignment 1/SumOFArray_W2A1_2.class create mode 100644 Week 2 Assignment 1/SumOFArray_W2A1_2.java diff --git a/Week 2 Assignment 1/Factorial_W2A1_3.class b/Week 2 Assignment 1/Factorial_W2A1_3.class new file mode 100644 index 0000000000000000000000000000000000000000..d3ba8bf70338e1c2c4caf85f957672fe260697a1 GIT binary patch literal 632 zcmZ8dO-~w86g>|f42*-~2ebvO-wC>qXuFd%X-r5+sJ5Zeg$wf-CirleA>)jRf2O~n z8#Sq>i~fNAsHSId5=uAszIX1u=bU?g|M~d~zqgUfgOv4RB?a~6tNG_Yo29UB&M$Q#(Su!U`b;{RiWrq)h-Lnq$xAEPIY;UiQ#_<1?2Cxr(DkM*_uQlLb_kv{|6h5{=gAV~J=QqDK1V8UMtQkz|`X Ndhs7CudtXx=`a7>Y)}9I literal 0 HcmV?d00001 diff --git a/Week 2 Assignment 1/Factorial_W2A1_3.java b/Week 2 Assignment 1/Factorial_W2A1_3.java new file mode 100644 index 0000000..51a4a39 --- /dev/null +++ b/Week 2 Assignment 1/Factorial_W2A1_3.java @@ -0,0 +1,15 @@ +public class Factorial_W2A1_3 { + static int product = 1; + public static void main(String args[]) { + int num = 4; + System.out.println(recursion(num)); + } + + static int recursion(int num) { + if(num > 0) { + product = product * num; + recursion(num - 1); + } + return product; + } +} \ No newline at end of file diff --git a/Week 2 Assignment 1/Fibonacci_W2A1_1.class b/Week 2 Assignment 1/Fibonacci_W2A1_1.class new file mode 100644 index 0000000000000000000000000000000000000000..321640cc9fa79714a45c6fd01394ef7a38768544 GIT binary patch literal 976 zcmaJkA3)@{vX{kyd)<+epfb`*`OH9T1Ux-6S!E9?@wnD}S> z4?;qXCjJ0_l<^F#BE|S+?wvb#&N=tY{P_9xJAiGN8fLMU#1&jsaZN*1Zc?}|v-JdS z$aqs$@-i!E*uX7~+uO2MR8dk<7KjB-t6dQg`(eHr#w~$()%D!qp+GcWI22Hx_zg#3 z_Q3U=XWdra>AbS)O;(ha<$3~(`L_or)(5NHw7lbTE$F!3u_-SmJC5D$oVq@nl>ELd z8MVN&-#@k5Aw;5TH$yV5=65@`v*$|a?4DcqJ9Z-y(5V;*w?>GNzXjj^BCPaHd# zDAhim(mxvHcX^N7&(dJ6=OznZr+66pCeEF+X)^{;xj~_#>AE z7V^`LM4TV0pA^LRZA*F7`!Bvjey9|G7Wior(m-Yj>Dn;TCPoEhM3(C!cPos7F}86A z@tFxE(_`Y2*3kf8{b;`o3eewQawN;UThyM!g&yFLttzT6mnB>$#0Cb@D-BV>yVCs-vq zppkEemdH 0) { + temp3 = temp1 + temp2; + temp1 = temp2; + temp2 = temp3; + System.out.print(temp3 + " "); + recursion(num - 1); + } + } +} \ No newline at end of file diff --git a/Week 2 Assignment 1/Reverse_W2A1_4.class b/Week 2 Assignment 1/Reverse_W2A1_4.class new file mode 100644 index 0000000000000000000000000000000000000000..8212dc7ddf1a641e4b427b0316971233300539e6 GIT binary patch literal 856 zcmZuu?M@Rx6g|`3c0XK7QCp>oiXX5o+6v(x#Dtib5YZZIBn>}cyPc55woA5K5?;n< z&^A$G2oK;x8PDuCHVy8NJ9qEgd(J&)e*gJ(1z-~!Hf-Ftu!IK|EIhOs9@$vNWA*z) zg{L;2Va33z0arltqDUZfuq!YZ$uk)ZWM?OeymJA=4~P9&@>=jVw;l9@_!TGI%4Y%n zb=Z*t^Ls&Gz9075GWz7TyR7IvFX#)D+=IOn@64-rz5a2%8An0?cuNghk@SbrAPCu1 zbayM)ySPa+_WUpJyweG$x$So+>~=F8M!tL#D6U%{(~S@JH+I$!H*1Q}K>-T}Dh{ex zb8rKWgA(o-c<$f@Y7XX9C69Rnbq6o8E|8yv5hzSIZ?sROAJ3GU=Yv@GXhb;VMKKi+ zg!K>97*nbAdRyEr!I&-6(^J*dO|)NEuKY>4hjGxYC+{#2Fyk;aFtPQ2mhpitK0Kho zRFavQN@#LYD^DH7#scF_{w?toJhRoG5Z{?_Va8li)ChJPMdqrticC_?kB}KbySjk> z1KH_}&HI$jA}Ot&%pD<{%+MzSuH#xKwbLRSm)=+u}b#Z`r24HS^MLX}LyAHyW*Mfl02w%qUomams#a ZkCD?zJC%?po^oi3j4O!=W&USy?=NuQqa^?U literal 0 HcmV?d00001 diff --git a/Week 2 Assignment 1/Reverse_W2A1_4.java b/Week 2 Assignment 1/Reverse_W2A1_4.java new file mode 100644 index 0000000..74167d9 --- /dev/null +++ b/Week 2 Assignment 1/Reverse_W2A1_4.java @@ -0,0 +1,19 @@ +import java.util.Arrays; + +public class Reverse_W2A1_4 { + static int[] arr = {3,4,6,7,9}; + static int[] reversedArray = new int[arr.length]; + static int counter = 0; + public static void main(String args[]) { + System.out.println(recursion(arr.length)); + } + + static String recursion(int arrLength) { + if(arrLength > 0) { + reversedArray[counter] = arr[(arr.length - 1) - counter]; + counter++; + recursion(arrLength - 1); + } + return Arrays.toString(reversedArray); + } +} \ No newline at end of file diff --git a/Week 2 Assignment 1/SumOFArray_W2A1_2.class b/Week 2 Assignment 1/SumOFArray_W2A1_2.class new file mode 100644 index 0000000000000000000000000000000000000000..4628b3c13ed4623bfb9ec0d103c0a52df9a674dd GIT binary patch literal 724 zcmZWme{0iF6g@9V^O`K%vdvYkPFJRHpxg6VPD2i z;6HYtBC-$QhZ4_=#W4-McYnNl&pqen=dbUV0AApk4GVWH+{K!OD(>05?%P;LLxm62 z^-$uGL{mVY6tRHV<%t;iStg(zGBmfNB+6eh*J=+0j92M#D6qH}CE=SQ9);PyKN>S* z#D0_r)LMsor~U`OJNA>4Za>eWQ`tZU^Jp zFuR`?SrG0-3cA)WVsEFHW&Zim!DjFI(dLF4;b0N2#A63f&~h-31qZ9BNwghw@YI2g zIR_5r1eX3o5OA+(dZW`Y$gidP=aW3-M)b7c!|ESRQQCb=K{;iGe!L~HQes?B3&=B7 zG@c0^put63{3ALoInk>sTBRjxS_51uT;5BJ)@TK7rSlcyGaZ3t-e#HPCb5DW^i^pG zTA5v#LYqRr{08F-Dpx%=-wDL!m>kOO%=!i-qee9AAF)1#$=)gC#=8sUN`qF`jbox6 z@bME1wUR=OP>Q`l63f(5r-}x_Z!$|jCG^%`89kP%uc;H2M^=B>L*4X-hV+J&iZ?V} VI?}bg3+Vq+)(E92-X?&C`fnohc>e$Z literal 0 HcmV?d00001 diff --git a/Week 2 Assignment 1/SumOFArray_W2A1_2.java b/Week 2 Assignment 1/SumOFArray_W2A1_2.java new file mode 100644 index 0000000..15ce919 --- /dev/null +++ b/Week 2 Assignment 1/SumOFArray_W2A1_2.java @@ -0,0 +1,15 @@ +public class SumOFArray_W2A1_2 { + static int sum = 0, i = 0; + static int[] arr = {3,4,2,7,9}; + public static void main(String args[]) { + System.out.println(recursion(arr.length)); + } + static int recursion(int arrLength) { + if(arrLength > 0) { + sum += arr[i]; + i++; + recursion(arrLength - 1); + } + return sum; + } +} \ No newline at end of file From 703e6799178029951d9ec442748d749aa1803552 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Tue, 11 Jun 2019 13:27:06 +0530 Subject: [PATCH 2/4] Week 2 assignment 2 --- Week 2 Assignment 2/PizzaShop_W2A2_1.class | Bin 0 -> 3308 bytes Week 2 Assignment 2/PizzaShop_W2A2_1.java | 106 +++++++++++++++++++ Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java | 54 ++++++++++ 3 files changed, 160 insertions(+) create mode 100644 Week 2 Assignment 2/PizzaShop_W2A2_1.class create mode 100644 Week 2 Assignment 2/PizzaShop_W2A2_1.java create mode 100644 Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java diff --git a/Week 2 Assignment 2/PizzaShop_W2A2_1.class b/Week 2 Assignment 2/PizzaShop_W2A2_1.class new file mode 100644 index 0000000000000000000000000000000000000000..7a65ecb7162936e9c611eaf66695f70db7f29882 GIT binary patch literal 3308 zcma)8`+pNv7XMC~WTwfqwrLC007ejKV`*ve*#bgaV5>m7rUDTarpdG&n$E;zq7>h* zE53Gpu@Cp*?z#`xx3V<2R&dw%LBpLIinZuMNrGdyM}?dSZ_jW;{>kjIT0D*?R6H5MWw13oCH!YXelFzc2%f>SGI~zK z^BPXd{1+O2so_^Del5l?M9_iXsQ7J!?&#rn8h$Us7e)RD8U0bipM<|85?tF1ZSt4(&N=++}p-4ST#R?G`P2 zyiY;YTTK;Q%dr(GLkc3EWVmQ$O$C8NlxVI~C{Vqmpnh&RXHhpNs2YSyR?ehi)Z=qn z5pPyii8y0pW^rV?;OTjjIlWN9-&Psqt~sleb;>rOhqqX^C~RHg3ArP3qFFk)7OY6y}ynrkj#|Y2G#@UPQSn(YToQaf`G%j8Zys z{^U_E%+JJPz>lj~RENPS!(tSdwJj0q_Wde$^X_@$Ojd?D?UajIbC)H+TZXOU$Bp!a zQ#gE}XGhQB?oPQX9S3kwLBrx}qw&auWhbh;>H`y|Suzv-<)YkkbRch(N>(;8Y}h(> zVYiMOag!IdBEhKx6IOQ8qT>wSRq;<9?_pLX?=xW&M6)izdyMEfi&-91jJOa{ z(CGOuyH>s{oi%LREb2Ii4GemYoWUF@A(+MxnO9|JZgkJ#54|`wxtX2Ee3knHz3YtQ2>CXcfqJkGlEI4j5F ztPzj1h&;|Z@;FP$<18PKvx3N@P^3AK@}r~>2uHvd$um%r;j;*2YGO6%OfVKqXF{=1 zdIsTS`29$xrXiQg1RL>rDidl{I#M%GlbWxtiF&Q5N79*aESk=!F`b5WNo@(kOt?{b zCY4bemH*I5eNy$ETp~^y#7Uz#iP63(seZ5h44RW6Z?&1Q8hYreC0R3rW$*AX3T`D` z&(AGTgCPIo2xBuec9IB=LB~ndvyn8gej2IG67j=n(eYtV{zT#Bv4eRUADri#l2OuLq6IjqTT*|Xq)0a1R6{F*qeRqS1!bUb}{x%#NLg5Y+?a!UWk1s zF|bE3jeW&p?AH*xoR+P9Y3y|u!(O)ld;Jf?-b?I##NJEnTQ9`U&(6}=moLV?o!EC! zm!GVqv4<~)J-h(B`opjf68lbKA0+nOi?P>Y4C6i$rHwfgV$PhLMMvfoHl9J}o>_FU znl|laCd9f~M8bLZ>pCjf%nQG2TgR#jt`_MvzVzDj((6Qey)W%OFYOcQ7D_4E+8b;Q z#(!wYB?`F3A>$9e63?lZvI;CwQTv1q|^jj{_j@eLH`8)hvZI2-uB>EQFGn_c*N zzGk+vdixpW-7NVOTTq%uKgepnofT@bQYM-EWoF%d%%g|+aCnr`CmD;UF@fh{d4XC6 Y 0) { + discount = offerTypes[offerOption - 1] / 100.00; + discount = price * discount; + price = price - discount; + } + System.out.println("Total: Rs " + price); + } + + public void setOffer(int option) { + offerOption = option; + } + + public void getOffer() { + for(int i = 0; i < offerTypes.length; i++) { + System.out.print((i + 1) + " " + offerTypes[i] + "% Off\n"); + } + } + + public void setSides(int option) { + sidesOption = option - 1; + } + + public void getSides() { + for(int i = 0; i < sides.length; i++) { + System.out.print((i + 1) + " " + sides[i] + " Rs " + sidesPrice[i] + "\n"); + } + } + + public void setToppings(int option) { + toppingsOption = option - 1; + } + + public void getToppings() { + for(int i = 0; i < toppings.length; i++) { + System.out.print((i + 1) + " " + toppings[i] + " Rs " + toppingsPrice[i] + "\n"); + } + } + + public void setCrust(int option) { + crustOption = option - 1; + } + + public void getCrust() { + for(int i = 0; i < crust.length; i++) { + System.out.print((i + 1) + " " + crust[i] + " Rs " + crustPrice[i] + "\n"); + } + } + + public static void main(String args[]) { + Scanner scans = new Scanner(System.in); + PizzaShop_W2A2_1 pizzaShop = new PizzaShop_W2A2_1(); + int option; + String offerGiven; + System.out.println("Select from below"); + + System.out.println("Crust:"); + pizzaShop.getCrust(); + option = scans.nextInt(); + pizzaShop.setCrust(option); + + System.out.println("Toppings: "); + pizzaShop.getToppings(); + option = scans.nextInt(); + pizzaShop.setToppings(option); + + System.out.println("Sides: "); + pizzaShop.getSides(); + option = scans.nextInt(); + pizzaShop.setSides(option); + + System.out.println("Any discounts to be applied?\ny/n"); + offerGiven = scans.next(); + if(offerGiven.equals("y")) { + System.out.println("Offers: "); + pizzaShop.getOffer(); + option = scans.nextInt(); + pizzaShop.setOffer(option); + } + pizzaShop.getPrice(); + scans.close(); + } +} \ No newline at end of file diff --git a/Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java b/Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java new file mode 100644 index 0000000..fdfb913 --- /dev/null +++ b/Week 2 Assignment 2/PizzaShop_W2A2_1_v2.java @@ -0,0 +1,54 @@ +public class PizzaShop_W2A2_1_v2 { + private String crustType; + private String toppingType; + private String sidesType; + private int offers; + private boolean offerApplied = false; + private double price; + private double discount; + + private int crustTypeAmount; + //crusttype, toppings, sides, offers, price + PizzaShop_W2A2_1_v2(String crust, String topping, String sides) { + crustType = crust; + toppingType = topping; + sidesType = sides; + } + + PizzaShop_W2A2_1_v2(String crust, String topping, String sides, int offer) { + crustType = crust; + toppingType = topping; + sidesType = sides; + offers = offer; + offerApplied = true; + } + + // private int getCrustPrice() { + // switch(crustType) { + // case "thinCrust": + // crustTypeAmount = 100; + // break; + // case "cheeseBurst": + // crustTypeAmount = 200; + // break; + // case "classicPan": + // crustTypeAmount = 300; + // break; + // } + // } + + public double calculateTotalPrice() { + //logic to calculate price here + return price; + } + public static void main(String arg[]) { + //(crustType, toppingType, sidesType) + PizzaShop_W2A2_1_v2 pizzaWithoutOffer = new PizzaShop_W2A2_1_v2("Thin Crust", "Corn", "Fries"); + System.out.println("Total price: " + pizzaWithoutOffer.calculateTotalPrice()); + + //20% off applied + //(crustType, toppingType, sidesType, offerDiscount) + PizzaShop_W2A2_1_v2 pizzaWithOfferApplied = new PizzaShop_W2A2_1_v2("Thin Crust", "Cheese Burst", "Classic Pan", 20); + System.out.println("Total price: " + pizzaWithOfferApplied.calculateTotalPrice()); + } +} \ No newline at end of file From dcd4d2046ba900d7d418f4f9f69a9e53b5fbcf89 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Tue, 11 Jun 2019 13:29:56 +0530 Subject: [PATCH 3/4] Week 2 Assignment 3 --- .../SavingsAccount_W2A2_2.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Week 2 Assignment 3/SavingsAccount_W2A2_2.java diff --git a/Week 2 Assignment 3/SavingsAccount_W2A2_2.java b/Week 2 Assignment 3/SavingsAccount_W2A2_2.java new file mode 100644 index 0000000..516aed6 --- /dev/null +++ b/Week 2 Assignment 3/SavingsAccount_W2A2_2.java @@ -0,0 +1,44 @@ +public class SavingsAccount_W2A2_2 { + private double balance; + private String customerName; + private int customerAge; + private String nomineeName; + private long panNumber; + private boolean withdraw = false; + private boolean deposit = false; + + public SavingsAccount_W2A2_2(String custName, int custAge, long panNo) { + customerName = custName; + customerAge = custAge; + panNumber = panNo; + } + + public void updateNomineeDetails(String name) { + nomineeName = name; + } + + public double getBalance() { + return balance; + } + + public void withdraw(String withdrawUsing) { + if(withdrawUsing.equals("withdrawSlip") || withdrawUsing.equals("atm")) { + withdraw = true; + } + if(withdraw) { + //withdraw money code here + } + } + + public void deposit(String depositUsing) { + if(depositUsing.equals("challan") || depositUsing.equals("atm")) { + deposit = true; + } + if(deposit) { + //deposit money code here + } + } + public static void main(String args[]) { + + } +} \ No newline at end of file From 2edb60a1714e4ba9f8498a592a1f58bc84f5b2e9 Mon Sep 17 00:00:00 2001 From: phaneesh Date: Wed, 19 Jun 2019 20:23:18 +0530 Subject: [PATCH 4/4] Week 3 assignment 1 --- Week 3 Assignment 1/BankAccount.class | Bin 0 -> 1209 bytes .../BankAccountClient_W3A1_2.java | 209 ++++++++++++++++++ Week 3 Assignment 1/ContractEmployee.class | Bin 0 -> 1623 bytes Week 3 Assignment 1/CurrentAccount.class | Bin 0 -> 1622 bytes Week 3 Assignment 1/Employee.class | Bin 0 -> 592 bytes Week 3 Assignment 1/EmployeeClient.class | Bin 0 -> 1562 bytes .../EmployeeClient_W3A1_1.java | 115 ++++++++++ Week 3 Assignment 1/MainClass.class | Bin 0 -> 1033 bytes Week 3 Assignment 1/RegularEmployee.class | Bin 0 -> 1604 bytes Week 3 Assignment 1/SalariedAccount.class | Bin 0 -> 1615 bytes Week 3 Assignment 1/SavingsAccount.class | Bin 0 -> 1683 bytes Week 3 Assignment 1/accountRules.class | Bin 0 -> 171 bytes 12 files changed, 324 insertions(+) create mode 100644 Week 3 Assignment 1/BankAccount.class create mode 100644 Week 3 Assignment 1/BankAccountClient_W3A1_2.java create mode 100644 Week 3 Assignment 1/ContractEmployee.class create mode 100644 Week 3 Assignment 1/CurrentAccount.class create mode 100644 Week 3 Assignment 1/Employee.class create mode 100644 Week 3 Assignment 1/EmployeeClient.class create mode 100644 Week 3 Assignment 1/EmployeeClient_W3A1_1.java create mode 100644 Week 3 Assignment 1/MainClass.class create mode 100644 Week 3 Assignment 1/RegularEmployee.class create mode 100644 Week 3 Assignment 1/SalariedAccount.class create mode 100644 Week 3 Assignment 1/SavingsAccount.class create mode 100644 Week 3 Assignment 1/accountRules.class diff --git a/Week 3 Assignment 1/BankAccount.class b/Week 3 Assignment 1/BankAccount.class new file mode 100644 index 0000000000000000000000000000000000000000..993ea6b7b4712d73554c936ffa6aa4668c850c05 GIT binary patch literal 1209 zcmZ`%+fEZv6kVsCcFHi6TdN=-AYiA%rHY^?7?VO{B*FTCF)==!PA53n&Y0=c#D6mJ z+Gu?61N}F0D=>3%F5k;iL;7c>(;8qTHI&;kH#+QjOj<>{G+LKZnpIKtx%Rs{r>h1{3b++Fl3s&j zSR;J?$H62Um9K0!XBCGB5Eze%y%p0EmpmQkuI_n4Ilr`OHA%U*Uv*h_oW4=Ya0=rz zXorsb#8Z=JpGnU@YRFb=NBzqt@+g=XhiPI0Sre1$Yf8a1W=zZ?r(@s5eLSGYL+QVz ze$e(KfvJmE^1OELI{j2T@*1Ub7|IXaRVE6$Z%CkEU0zbR=3vA!v=zQkgHJh)gmT8O zgfbUL`eS7GI2y`je5O%GgEx6xBVOm}73(sL8}<(fd$WUtz1Tt0-tIuN=d}(}bE$7g z+w*z{`j=Q{j(96B%0r{j7=^N!;~wVuyMdcnz&aM$K%Kg67THFyPWy`Vr@l%$&Mgxc zV!kr8N@kKVRbbnTh6dBX8XK-_z!ICN374@#RAozyszJ*Bj>PBqQu*w5DDrBRo`#lGaA5YJ;jJQrAaPQ-jo9QaAckn(5wCvnL+kGC%lb9?93u2Q2YlLlH-N| literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/BankAccountClient_W3A1_2.java b/Week 3 Assignment 1/BankAccountClient_W3A1_2.java new file mode 100644 index 0000000..64c78ad --- /dev/null +++ b/Week 3 Assignment 1/BankAccountClient_W3A1_2.java @@ -0,0 +1,209 @@ +// a. A BankAccount will contain the account holders name, account number, +// the account creation date (string as of now), branch name and balance and Address + +// b. A BankAccount can be either SavingsAccount or CurrentAccount or Salaried Account (a special type of savings account) +// c. Current account holders do not have withdrawal limit on their account balance whereas Savings account holders +// can only withdraw 25000 per day. +// d. CurrentAccount holders should have a minimum account balance of Rs 25000. Regular savings account holders should +// maintain 10000 rupees whereas Salaried account holders can maintain 0 balance. +// e. There should be a provision to update Nominee details but they cannot update account number and name. +// f. The address should contain FlatNo, Street, City, State and pin code. +import java.util.Arrays; + +abstract class BankAccount { + private String acHolderName; + private int acNumber; + private String acCreationDate; + public String branchName; + private static double balance; + public String[] address; + + public BankAccount(String acHolderName, int acNumber, String acCreationDate, String branchName, double bal, String[] address) { + this.acHolderName = acHolderName; + this.acNumber = acNumber; + this.acCreationDate = acCreationDate; + this.branchName = branchName; + balance = bal; + this.address = address; + } + + public double getBalance() { + return balance; + } + + public void setBalance(double bal) { + balance = bal; + } + + abstract void updateNomineeDetails(String branchName, String[] address); + + public String getAcHolderName() { + return acHolderName; + } + public int getAcNumber() { + return acNumber; + } + public String getAcCreationDate() { + return acCreationDate; + } + public String getBranchName() { + return branchName; + } + public String getAddress() { + return Arrays.toString(address); + } + abstract void getAccDetails(); +} + +interface accountRules { + void withdrawFunc(double amount); + boolean minAcBalanceMaintained(); +} + +class SavingsAccount extends BankAccount implements accountRules { + + public static double withdrawLimit = 25_000; // per day + private static double minAcBalAmount = 10_000; + + public SavingsAccount(String acHolderName, int acNumber, String acCreationDate, String branchName, double balance, + String[] address) { + super(acHolderName, acNumber, acCreationDate, branchName, balance, address); + } + + @Override + public void withdrawFunc(double amount) { + if(amount < withdrawLimit && getBalance() > minAcBalAmount) { + setBalance(getBalance() - amount); + } + } + + @Override + public boolean minAcBalanceMaintained() { + if(getBalance() < minAcBalAmount) { + return false; + } + else return true; + } + + @Override + void updateNomineeDetails(String branchName, String[] address) { + this.branchName = branchName; + this.address = address; + } + + public void getAccDetails() { + System.out.println( + "\nAccount holder name: " + getAcHolderName() + + "\nAccount number: " + getAcNumber() + + "\nAccount creation date: " + getAcCreationDate() + + "\nBranch name: " + getBranchName() + + "\nAddress: " + getAddress() + ); + } +} + +class CurrentAccount extends BankAccount implements accountRules { + + private static double minAcBalAmount = 25_000; + + public CurrentAccount(String acHolderName, int acNumber, String acCreationDate, String branchName, double bal, + String[] address) { + super(acHolderName, acNumber, acCreationDate, branchName, bal, address); + } + + @Override + public void withdrawFunc(double amount) { + if(getBalance() > minAcBalAmount) { + setBalance(getBalance() - amount); + } + } + + @Override + public boolean minAcBalanceMaintained() { + if(getBalance() < minAcBalAmount) { + return false; + } + else return true; + } + + @Override + void updateNomineeDetails(String branchName, String[] address) { + this.branchName = branchName; + this.address = address; + } + + @Override + public void getAccDetails() { + System.out.println( + "\nAccount holder name: " + getAcHolderName() + + "\nAccount number: " + getAcNumber() + + "\nAccount creation date: " + getAcCreationDate() + + "\nBranch name: " + getBranchName() + + "\nAddress: " + getAddress() + ); + } +} + +class SalariedAccount extends SavingsAccount implements accountRules { + + private static double minAcBalAmount = 0; + + public SalariedAccount(String acHolderName, int acNumber, String acCreationDate, String branchName, double balance, + String[] address) { + super(acHolderName, acNumber, acCreationDate, branchName, balance, address); + // TODO Auto-generated constructor stub + } + + @Override + public void withdrawFunc(double amount) { + if(getBalance() > minAcBalAmount) { + setBalance(getBalance() - amount); + } + } + + @Override + public boolean minAcBalanceMaintained() { + if(getBalance() < minAcBalAmount) { + return false; + } + else return true; + } + + @Override + void updateNomineeDetails(String branchName, String[] address) { + this.branchName = branchName; + this.address = address; + } + + @Override + public void getAccDetails() { + System.out.println( + "\nAccount holder name: " + getAcHolderName() + + "\nAccount number: " + getAcNumber() + + "\nAccount creation date: " + getAcCreationDate() + + "\nBranch name: " + getBranchName() + + "\nAddress: " + getAddress() + ); + } +} + +public class BankAccountClient_W3A1_2 { + public static void main(String args[]) { + String[] address1 = {"Flat No 56", "Street 71", "City31", "State18", "577902"}; + //adding a new savings account + SavingsAccount acc1 = new SavingsAccount("anon1", 12, "today", "bdvt", 13000, address1); + acc1.withdrawFunc(2000); //withdrawing money as per the withdrawal and minimum balance rules + //System.out.println(acc1.getBalance()); + //System.out.println(acc1.minAcBalanceMaintained()); + acc1.getAccDetails(); + SavingsAccount acc2 = new SavingsAccount("anon2", 12, "today", "bdvt", 13000, address1); + //acc2.getAccDetails(); + String[] address2 = {"Flat No 3", "Street 7", "City1", "State10", "577291"}; + acc1.updateNomineeDetails("smg", address2); + acc1.getAccDetails(); + + String[] address3 = {"dummydata"}; + CurrentAccount currentAccount1 = new CurrentAccount("anon3", 56171, "18jun19", "bnglr", 70000, address3); + currentAccount1.getAccDetails(); + } +} \ No newline at end of file diff --git a/Week 3 Assignment 1/ContractEmployee.class b/Week 3 Assignment 1/ContractEmployee.class new file mode 100644 index 0000000000000000000000000000000000000000..a7ee906d05d5cd5faa7979233a572d77d36f4cb6 GIT binary patch literal 1623 zcmbVM+j1L45IrNw+Vy&q2-zkvR*cLol5!D{aEq0TZN;&`aZF^K8<&iwL9D&nRjpU4 z(pT^kJo17A3I$bs03SthW>>Nda`C{!cK7yex=;7apMU-K2Y_q%)DNzCJ2P2SVw z{YhNKH3J`5NaI5jA8G!vwtS+c>n4`;PsPLy&2O5xrTJ|W%bKrPSVh&u9qqhk;;xBx zE!Hf2iq8ye7`P{pY4~0k$VOQ01~PPfPe9ZJtd8t$sbJmj22@l9(iO*Z!kYp&3bl9xxBFmSxq(g~`k<6hO`jzDVFZz_Q^8;++oyX{>SY|CAjno|wwEq6L@Z$ruF z{7)5X#V1tPL)qBBCp!bTTuX%yR9mtfueCZ>e6mnv`B^&MX?I+|r&Lvi(s2(2XyW;1 zrQr@*vFdEEq1GII{PfU&)pe8?UeP_;Sj47{*O9kz9t$?^W6QwjHXfiZaQ5FYtaKf> zsRA8!k%bQv=4;jKOt6hFZ0zVP+jvOett0!UY%A^Y2#*QONH1HF`Uw`adMohvR3prL z1MjEWd(x`!JFa`6!@tB=2EMlO4W32*vX}3uApaekjL(+>i`Ef#`QhZXm*Y3{P1$1} zfr&`cd3FsnY&1c5GDE0`RTIgPSo!};p=V;rV{;cAdgd6ky@OD-IX%A{3e3h^<@n_- zE?&s>Q?k9p^<)O+H3cpg#`mr`rW#C&feD8}Ij-7&_@p%CT&gh_#wR%>fvHYB96d=E za}dphJ9WY(7&g}p9k;w31O%N>hJJjL1TGYg2i@P*GhZ67jz{MT)p7l(vzfxUl~L0X zwEqN9!02c=UEcoLlK|X7o-ay{PgMezz6z8qeJ{u-_$}fM2)s$@Dqk3re7ZD$>HJ)3 zZsH|G>EXHb3nYG`THr0x(@2uu#uS#3#R|1=kEyI3%csb)r(^ky)@Ne*6|K+4^7OBm(Z91Khe-7C zYW8d-CUw9$iha!W@!ANMxSu+o?MG;#jy+y!6PJ#PTZl>n(wPde7{$enRA{}-(i6Dy EH#NI>mH+?% literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/CurrentAccount.class b/Week 3 Assignment 1/CurrentAccount.class new file mode 100644 index 0000000000000000000000000000000000000000..9a85a6b81649b28f3df125d551dfb49ecccce6cd GIT binary patch literal 1622 zcmZ`)ZF3V<6n<`#cDLJ2+J?3iL5YZxCY1VuinK!WLM6~fq*x31cDuRLF5T>AHoJBl z9cLW%11OB&^n>Fs;EOnf8JzJ4_zV0sj_2$yX(jc;-h1}k=bU}cb53sl`seYV08Ya) za2Rt2p25q*w7kOBt8Bf-%jsdfjyE*CX+Xyr9dGe|mND}>7I=S~J?C_s=a)qtW!@_~ zs=U|u@PdIQyfd`;_bvJ$py8s1x`s;v*_Q2=t%`KYEiZHf0Z|heTCiO^I4963EZ>r! z$vH>5n{%syZ@ZiG^?p~sr*^a7H?t;?u6j)+FuH8Jsu8v}lz&ZbIOH*R>|m?u%blgr zwFpT67F9}Q;#DJTT-}2a{${+nc*W^BU09D%qN+p_c8oa%om(_Zf$o zJ_<=sC~!2IiHlJ$V!{)Jemnt3B49k$QPp*UBZYcDb~pEU6jDvvRHH7@(6e@X>GT_OekTPNw(=Bgc+gxIgnHRS11I1FM&kHK?F7s3$PG`qAuPj5xKF?8Cq z#nO@4L+R!QV^4r<|Uj+lAS@CEMPQA_VX_oOx;i4e=5rtl;ule^3{_p z83GhAlVmB;Cz;YnvGfpw#gh*)v|C5a;~QfAE!FfLg%nXr0>5TP6u9yL+8@xbKf-X% z=u)08Oxkjp*v@t_nj4GlarWn8`vBV$u{}v!7gJpv-2L>iNZ{KT!yRhG_r&-I`XjiD nMchLjx3P>L330MV=V&B3-P{wH{vD~^MBF)Go7P#{2XN|NDBEuY literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/Employee.class b/Week 3 Assignment 1/Employee.class new file mode 100644 index 0000000000000000000000000000000000000000..42cfe082c9d77a43888aee666f81ddd6559a947d GIT binary patch literal 592 zcmZuuT}uK%6g}gv-|M%1m|138xt}~PN@RC8}LrO)bv&l&GosL%+;nS(LY74%k6nka}%wMHt%^5N; zn=}FqX-nsdp;2x9&u_Tepi+AzpUugDCMMd_7M;boCuR@4XVFcp&+Y3!p7d&~Mz+#J z;oOd=)?_8bjc~YB7PYF9igYK7Szp{q)t*@wH7zM@=UlD9Ko)reNu&%!5H(;RW+1Mj zgo@J0Fof2P49VZ!-S^b0^djv#Opg)(jYE_orbIj@9gj)MV;bWzsS;~+ve=^fZHk`Y zBMqQpzJr;X3!j;Hp_ykcbhF^XZ{~Ct0W;@!5qzUUh8@BZjR%d+}R5Pc&{+O=40WsxBwc38d=8T=6lB*8Y0ZOJ5dWZ`%TiA)kQS`A|D)$Xzy zLFtwwe}O~JIfui#DlVv8lS6XI?;(|*6|Mr?#RXNVyQin;_3Q4L{p-Kqp98o8nZpFG zX_(P5t7A^bbsh5>KG(6JV==o}_~U1aLw4cc$4Vmy4NHS4qoSlidQFL%5;s-Mx)NXO*wA6?xTWD69k+FSn_W1UB%llyzEfgZM_uVn9e0!_ z;O{m3z>uADeOJyi43x%iGo;HwQ!oryU0>9??S_bM@rFm9bep?A!|~Fc>K1>D2TQ#TR7dwl|2SlrjpBnFC*^AeatV@G`jZ!#hWsp ztWyImpVB)o!>v$6ZqQT&I&i5>tI2yEhM_&2es^E%>CMKLa3s}n$ov@QODhM*dWh?g z!rr>IJPd{3WSA@+tabc= z>*eH$>L^ir!?rGi{yShOlnw?Gz{p_a#-H1y!@NpU! z>2suhDNxavA~{W~G1825=E4rxZ)7lhL^7K=?_v;_aG7ihWmjXH=V-8*{AXk8~gQ2yj7@o)*G4e6qQFaV7#xYWb37x!8 zaEiRU7^&~zxOpPRyZwk_jFU0mqrDiT*?!J3mGga-^ORlNg;mdwnWyQ0X0m{@J2*d+ zE~fKGV|?%g=U)N+kU)#+7^N6RbDS1^Xyv+~icTd(&tQmbjv^Ygb})w~eNhEg=@oCF x1s_|G^uQmZjbCW>E4}kS@c@4#!pC&7fYb~48m?%#`U0DY@d-8W( duration) { + applyLeave = true; + leaveBalance -= duration; + } + return applyLeave; + } + + public int getLeaveBalance() { + return leaveBalance; + } + + public void getEmployeeDetails() { + System.out.println( + "Employee ID: " + id + + "\nEmployee Name: " + name + + "\nEmployee age: " + age + + "\nProject name: " + projectName + + "\nSkills: " + Arrays.toString(skills) + + "\nBonus: " + bonus + + "\nLeave Balance: " + leaveBalance + ); + } +} + +class ContractEmployee extends Employee { + private static int contractDuration = 60; //days + private static double payPerHour; + + ContractEmployee(int id, String name, int age, String projectName, String[] skills, double payPerHour) { + super(id, name, age, projectName, skills); + this.payPerHour = payPerHour; + } + + @Override + public boolean canApplyLeave(int duration) { + if(contractDuration > duration) { + applyLeave = true; + contractDuration += duration; + } + return applyLeave; + } + + public int getRemainingContractDuration() { + return contractDuration; + } + + @Override + public void getEmployeeDetails() { + System.out.println( + "Employee ID: " + id + + "\nEmployee Name: " + name + + "\nEmployee age: " + age + + "\nProject name: " + projectName + + "\nSkills: " + Arrays.toString(skills) + + "\nPay per hour: " + payPerHour + + "\nRemaining contract period days: " + contractDuration + " days" + ); + } +} + +public class EmployeeClient_W3A1_1 { + public static void main(String args[]) { + String emp1Skills[] = {"Java", "Spring", "JS", "Shell scripting"}; + RegularEmployee regEmp1 = new RegularEmployee(12, "anon1", 34, "prism", emp1Skills, 340000, 20000); + System.out.println(regEmp1.canApplyLeave(12)); + System.out.println(regEmp1.getLeaveBalance()); + regEmp1.getEmployeeDetails(); + if(regEmp1.canApplyLeave(5)) { + System.out.println("New leave balance: " + regEmp1.getLeaveBalance()); + } + + System.out.println(); + + String contractEmp1Skills[] = {"Pen testing", "Network Security", "Data analysis"}; + ContractEmployee contractEmp1 = new ContractEmployee(29, "anon2", 29, "ufo", contractEmp1Skills, 10); + if(contractEmp1.canApplyLeave(13)) { + System.out.println("Your new contract period: " + contractEmp1.getRemainingContractDuration() + " days"); + } + contractEmp1.getEmployeeDetails(); + } +} \ No newline at end of file diff --git a/Week 3 Assignment 1/MainClass.class b/Week 3 Assignment 1/MainClass.class new file mode 100644 index 0000000000000000000000000000000000000000..775427708d9dd0e55ed3dd9016489e70cf014055 GIT binary patch literal 1033 zcmZ`%+fEZv6kS8xnbSH7juor|mUt^rftE{YxmawiqNRvqOd6j~+esa4r=*<$NqqM! zjER1MFC~#k)I=l1%Ln)YKKld4eE=Z{&cmE@*4}Haz4tj=zu#;C7{NUsE@M!^5JQ9^ z$}r3@!Z4~}j3LG_&JdTAnFQE3l&1#Rc=}m+CvYsi+q_6R=8Cj)a|-yl_vzzr`Mc%(a4x0`NSM0rz*VB7!b)S zt{^0#?O!6XG8JwIbG6{;m;^7$8HOEMq{z~P?XelzD%}_ znPRc#ShfTYw`vyUdhA+>uTrgr(y}c~vnuA0Q!y{>x3h@u{p&d_f&I0luyEWr9NICA z#tCvYs$~^-u|VXKQ?0I+xXr1KlvA%8mVK}eQdJ`3i;fkElW4&zSL#ID8_0n%%oi4o zA~lc;9UkiJVdyZD{?BcwE2jOZROc%h$12i5LTPbF$IFH&Hf`A4tTZI}oh9nT$knQJ z+r}OoI-;5*eb9qT^p?ff0!dsl{d?)uMXN-sr*93?YuZTYqrbcjZorFvglR8Qf6_^z z^%Z-Imb^=I>3O&2*7F|CqvvH!*7J&{=-G9!yyk6FHJ^6O54C@d-dNa=)+SDdo6xqy zrw)X3yMlfpcv=Xy3&9Q{ct%gS!&)HVZsM$9LZy=5p&RcJ#RtUk5mWet1$@R5Ht_^oc#1E0hOc;zZ+MCC)b3T{v|!*5 DsgmQ* literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/RegularEmployee.class b/Week 3 Assignment 1/RegularEmployee.class new file mode 100644 index 0000000000000000000000000000000000000000..4165ab9123a2a5944ef0b3eafe462094cf8738a2 GIT binary patch literal 1604 zcmbVMZF3S=6n-u&u-U8)CD@3;l&Ypi)#RYDd)n#GG;*`J8 z-_ei#(xk;sJL3=VM|Jufmb_Fl{opX1bM`qe_q^Tv@}Iw60Jwstg)H8mz$`ux@}ZEA zgj|`x$M__HPc0;H)x>AQuZdrb3#PKj>KQZ?wheskd%=+U@Uxm?&%Fjm_Q9yhh_`g)_+s_E`sr{)nkQFr|1PRHx7 zOI|e0R|?+}t_Dv1=}o6IGMj4ZU}$lWc{E>O?kVEeTOF_6*Sf3&$Mu*tRXoyMtb3#M zt!lg1t?M;cPMqGiU-ew=2bZNT8)tFL#@oo*ct^+?%-Pt)?F8=FsN$}|%&YaU^jxo@ zyW%>}g!iN7D&=boa1UEH?n{(=c%YE94)hyNON+%ru+FJN+-VNsN0<|Mv)g{6>p{*R zS$`+i6IS)9>v=ok{ylz3;71#e;jmU~MJ5&=T$AI5&B~3sCHQ016KL4b*k=4Yy4mBr z_mg6TLviu-hb?`#oFn5@%sP3bbN!t_w>Y78FHkrcZj0M4ZE~Rku9bFL3tT%!(0)VV zQht1&3S-b{5Oj>Vbjosr{>R3Uj&gCvOz0ow40s2V>;SZj#z2V{0(%>II8(f9)~ksEt3ioYZFE0vKW zq0aFQI}e*knnCi^MxoM-RzPtSGfS?hFc?SN!%X5s>>}w!%#%tbKQlYA+}=g}ZzLW* zhnbofz~aG^1K6n(q5K9}YATeIg1;HcDZ!^hIsGS2%I8}oyNC`jlR7mN4LS^v8Q}D* oT`6IeuYV0C-omReap@qhxnWj7Jeg)24*kL!W~jZ)tRpD>3+dTtIsgCw literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/SalariedAccount.class b/Week 3 Assignment 1/SalariedAccount.class new file mode 100644 index 0000000000000000000000000000000000000000..8033ef8c2213ac1b10d6ef1f689e323b30b964b3 GIT binary patch literal 1615 zcmZ`)ZF3V<6n<`#bhq10+J?5YS}@iZl9W<;QGr%U+E}T!5eZZQ1#dTZ+QrRoX0w6e zqd&q?M+X=`=s3d&B29gn@dx;$9M9R^rj?Wrx%cGUbIyIvbDrG%^Y5R312_d~U>ws1 z#&E2UmKnC*VCy(9C;D&_r!>52K*w7;-sb%@$DGk|miJlq%;|WCzns%C&--~DCEgeK zaM3^+?`l}m@ScVX0-3t)maGNol5cc2%WSUswKRx$cn1ykiHOHDBIYYPlB0<;xtNt_ITj zVpTTcsL>s?(zVp8wB3L{swR-g7p@5mw;DAWsES8nN|hCzI!%H6K3zNqUwT6YCCloh zQeA?f&sk2)h*9-gzNMCI2AyFDi;iqIk1epg z@ewWw9DJ73g_iBql+XDEfl-4H@Gx?l9=mg{tgEv*6IEO`aRmfus1xFbB=YIU_=H2Q z3XFA5EnmsN_S_uP!a>(KJ7X;PMBrwp@OAbYMyXcwRkO))pJL6#XIRs4!^BN|P9v*I zNBXv^#o(w+Ro*5+G&>GcMz}Av97VJn#3c!fM->i;gk?1MxQz7>MTNQ($ad>RK$8(7 zfdl)@OJHyhk$0Pcs?$AQi$pvURkOXBi=^3rl&fTYmV_-E4ds$vruUIVp$kGh7fKum zb#Wn_M+A5{-yKhZ{b67v?Xc@*frTm>y4# zrN*^wh+oMgC>xa3L+iIl<2&-ajLA4}9w{W~WVF~u&l4oRzK3*??IRm)Bssq)%+G{T z_tB3B7{L#Cg-#L>BUI*9ycQQbjU-vXKwRvb?~zJ8Og?<3%8yj#CqnY`PL(tTypAJr zl_|QCA@vuhwvZ|w-9qnf9}$jU2=ycC=`p3`QHT@2WJHv>`UKiv(64TzFKe`^P8%j| z*>q%Q+8D?VM)nZEO2c4vGe*gdg literal 0 HcmV?d00001 diff --git a/Week 3 Assignment 1/SavingsAccount.class b/Week 3 Assignment 1/SavingsAccount.class new file mode 100644 index 0000000000000000000000000000000000000000..3274ad4b3320f4707652cc326fca65ffc324f899 GIT binary patch literal 1683 zcmZ`)+fo}x5Iutg604N}A!De3BRdx)VXR!7#4*G{LIEolvW*-Pg9#q3#$xT&u1Z?j zmB+m050ZyezQ8ZRWx2|!%8TFf1^Jp(x_8%tSfnUsdV9Ki&YV6o`s<&Ue*(CSLk;Kf z@i-Q6S)<_-wmxO+Gq$eq@cB5dVkLrA4deJCifcT7$uVnD6nHMOXFZA%e|#0i2G5&O zT<5vWi(hNFfy&t0-w$b5U~KKxPo5FMRs_`uZVJSonC@YtBcD{vmgx$Jl0c$m+6AL1 ztwPJ`+2kBsHEq+qCQ!{(9?HiuZ%MnEuelx5ZmyJvUBjNz-movbBM@G98cJZIV%ncfj;vec(O=`*=-CFvWl9_#ues8Av?bd?)XZz7(l*qVG;NpuRYM?@$?giIdhLdE zRn?&|rAmrct*$`klvDfUX8FYdntXs0%y~H%> zcn9z5NaMVYTez*`0$bb2=&0e2j&HCN!M8fT!(D;1ZxUPVnN~w}xJX`LMk5&9jr5_z z?zAmi>S|iYF7|ZX!@j`OAjI~V@;)3L6Wl*TCqbc9u5lE z*{f-VMx&#;U5+!bucLwe2$YToXi`#5J|+!x18f4ZqO>0kzI5qh-tJk7c-M$bQWf{g z>kvsz>z;6Fbq_(6P9~5X7K}hd`e+2EPidIIEv&bXkC)7 zlC2d|wrsbRO@diIMHAT}2tiLMal#YEb*~pb;8bQfo&sZDps#K3)MbJBOnEr=xb~En zvL3XlL|r1~Gj}KGVJ?H#kRDyfzl_9-$H0HjNxZfB)Rs*|oOaF~(&z%cNCIzTgx(EO zEWHyN>y@7k@{^Ehe2>0zh|(XB$Sut;&xL14=OQm4ekYH>`!s4)0oXtso8(zUCdk{w zC_=PyZt(~szx;~XTpyt$gn#}G@f_QW%|1rC&WKkh;YHuTG%AFxiY%>!AQq@x4ogAN zD+rSXOa#TK?r7*~_~{!}wh^Nn7pDssREbl-MJxwZmS{_c7RxO?$5`&-b3~5MU+{=Nz$ETto^ELdb^7fvutt}#i~}O(0Y!W;fRpv82jVHrJ;O)}Z#_f! SxSZda0`;>~}N`A2@S*hAvck-2P35$Ns#B|S&w^A!N0tkWJ0D@4I2m$FK1PF=x9pgWZ CnJ0h% literal 0 HcmV?d00001