From 45c9feefd1ee8cafa7783ea9c72231d495237b00 Mon Sep 17 00:00:00 2001
From: "vincent.steinman" <vincent.steinmann@etu.hesge.ch>
Date: Tue, 15 Nov 2022 10:52:22 +0100
Subject: [PATCH] s2 without ordering

---
 tp/src/main/java/org/example/Contact.java     |  14 +-
 tp/src/main/java/org/example/Family.java      |  30 ++++
 tp/src/main/java/org/example/Friend.java      |   9 +
 tp/src/main/java/org/example/Main.java        | 162 +++++++++++++-----
 .../main/java/org/example/Professional.java   |  30 ++++
 tp/target/classes/org/example/Contact.class   | Bin 3693 -> 3693 bytes
 tp/target/classes/org/example/Family.class    | Bin 0 -> 2004 bytes
 tp/target/classes/org/example/Friend.class    | Bin 0 -> 567 bytes
 tp/target/classes/org/example/Main.class      | Bin 6301 -> 8586 bytes
 .../classes/org/example/Professional.class    | Bin 0 -> 2024 bytes
 10 files changed, 199 insertions(+), 46 deletions(-)
 create mode 100644 tp/src/main/java/org/example/Family.java
 create mode 100644 tp/src/main/java/org/example/Friend.java
 create mode 100644 tp/src/main/java/org/example/Professional.java
 create mode 100644 tp/target/classes/org/example/Family.class
 create mode 100644 tp/target/classes/org/example/Friend.class
 create mode 100644 tp/target/classes/org/example/Professional.class

diff --git a/tp/src/main/java/org/example/Contact.java b/tp/src/main/java/org/example/Contact.java
index 15b12ef..590b07c 100644
--- a/tp/src/main/java/org/example/Contact.java
+++ b/tp/src/main/java/org/example/Contact.java
@@ -1,13 +1,13 @@
 package org.example;
 
-public class Contact {
+public abstract class Contact {
     //Fields
-    private Person pers;
-    private String addr;
-    private String[] phone;
-    private String[] email;
-    private String[] social;
-    private String job;
+    protected Person pers;
+    protected String addr;
+    protected String[] phone;
+    protected String[] email;
+    protected String[] social;
+    protected String job;
 
     //Ctor
     public Contact(Person pers, String addr, String[] phone, String[] email,
diff --git a/tp/src/main/java/org/example/Family.java b/tp/src/main/java/org/example/Family.java
new file mode 100644
index 0000000..b5266bc
--- /dev/null
+++ b/tp/src/main/java/org/example/Family.java
@@ -0,0 +1,30 @@
+package org.example;
+
+public class Family extends Contact{
+    private String relation;
+    public Family(Person pers, String addr, String[] phone, String[] email,
+                  String[] social, String job, String relation){
+        super(pers, addr, phone, email, social, job);
+        this.relation = relation;
+    }
+
+    @Override
+    public String toString(){
+        String w_phone = "";
+        String w_email = "";
+        String w_social = "";
+
+        for(String elem: this.phone){
+            w_phone += elem + " ";
+        }
+        for(String elem: this.email){
+            w_email += elem + " ";
+        }
+        for(String elem: this.social){
+            w_social += elem + " ";
+        }
+
+        return pers.toString() + "\n" + this.addr + "\n" + w_phone + "\n" + w_email + "\n"
+                + w_social + "\n" + this.job + "\n" + this.relation;
+    }
+}
diff --git a/tp/src/main/java/org/example/Friend.java b/tp/src/main/java/org/example/Friend.java
new file mode 100644
index 0000000..16e8c74
--- /dev/null
+++ b/tp/src/main/java/org/example/Friend.java
@@ -0,0 +1,9 @@
+package org.example;
+
+public class Friend extends Contact{
+
+    public Friend(Person pers, String addr, String[] phone, String[] email,
+                  String[] social, String job){
+        super(pers, addr, phone, email, social, job);
+    }
+}
diff --git a/tp/src/main/java/org/example/Main.java b/tp/src/main/java/org/example/Main.java
index d82ac5a..65e89b8 100644
--- a/tp/src/main/java/org/example/Main.java
+++ b/tp/src/main/java/org/example/Main.java
@@ -1,9 +1,10 @@
 package org.example;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Scanner;
 
 public class Main {
-    static Contact[] contactArray = {};
+    static ArrayList<Contact> contactArray = new ArrayList<Contact>();
     public static void main(String[] args) {
         while(true){
             System.out.println("");
@@ -11,13 +12,14 @@ public class Main {
             System.out.println("[1] Edit Contact");
             System.out.println("[2] Delete Contact");
             System.out.println("[3] Show Contact");
+            System.out.println("[4] Search Contact");
 
             Scanner myObj = new Scanner(System.in);
             String usrInput = myObj.nextLine();
 
             switch (usrInput){
                 case "0":
-                    Add();
+                    Pick();
                     break;
                 case  "1":
                     Edit();
@@ -28,15 +30,42 @@ public class Main {
                 case "3":
                     Show();
                     break;
+                case "4":
+                    Search();
+                    break;
                 default:
                     System.out.println("Please enter valid input");
                     break;
             }
         }
     }
-    public static void Add(){
-        int size_array = contactArray.length;
-        Contact[] newContactArray = new Contact[size_array + 1];
+    public static void Pick(){
+        int size_array = contactArray.size();
+
+        System.out.println("");
+        System.out.println("[0] Friend");
+        System.out.println("[1] Family");
+        System.out.println("[2] Professional");
+
+        Scanner myObj = new Scanner(System.in);
+        String usrInput = myObj.nextLine();
+
+        switch (usrInput){
+            case "0":
+                AddPal();
+                break;
+            case  "1":
+                AddFam();
+                break;
+            case "2":
+                AddPro();
+                break;
+            default:
+                System.out.println("Please enter valid input");
+                break;
+        }
+    }
+    public static void AddPal(){
         System.out.println("Enter first names");
         Scanner myObj = new Scanner(System.in);
         String firstName = myObj.nextLine();
@@ -59,15 +88,71 @@ public class Main {
         String[] emailList = phone.split(" ");
         String[] socialList = phone.split(" ");
 
-        Contact c = new Contact(p, address, phoneList, emailList, socialList, job);
-        System.arraycopy(contactArray,0,newContactArray, 0,size_array);
-        newContactArray[size_array] = c;
-        contactArray = newContactArray;
-        OrderArray();
+        Friend pal = new Friend(p, address, phoneList, emailList, socialList, job);
+        Add(pal);
+    }
+    public static void AddFam(){
+        System.out.println("Enter first names");
+        Scanner myObj = new Scanner(System.in);
+        String firstName = myObj.nextLine();
+        System.out.println("Enter last names");
+        String lastName = myObj.nextLine();
+        Person p = new Person(lastName, firstName);
+
+        System.out.println("Enter Address");
+        String address = myObj.nextLine();
+        System.out.println("Enter Phone");
+        String phone = myObj.nextLine();
+        System.out.println("Enter Emails");
+        String emails = myObj.nextLine();
+        System.out.println("Enter Socials");
+        String social = myObj.nextLine();
+        System.out.println("Enter Job");
+        String job = myObj.nextLine();
+        System.out.println("Enter relation");
+        String relation = myObj.nextLine();
+
+        String[] phoneList = phone.split(" ");
+        String[] emailList = phone.split(" ");
+        String[] socialList = phone.split(" ");
 
+        Family fam = new Family(p, address, phoneList, emailList, socialList, job, relation);
+        Add(fam);
+    }
+    public static void AddPro(){
+        System.out.println("Enter first names");
+        Scanner myObj = new Scanner(System.in);
+        String firstName = myObj.nextLine();
+        System.out.println("Enter last names");
+        String lastName = myObj.nextLine();
+        Person p = new Person(lastName, firstName);
+
+        System.out.println("Enter Address");
+        String address = myObj.nextLine();
+        System.out.println("Enter Phone");
+        String phone = myObj.nextLine();
+        System.out.println("Enter Emails");
+        String emails = myObj.nextLine();
+        System.out.println("Enter Socials");
+        String social = myObj.nextLine();
+        System.out.println("Enter Job");
+        String job = myObj.nextLine();
+        System.out.println("Enter Work Place");
+        String wp = myObj.nextLine();
+
+        String[] phoneList = phone.split(" ");
+        String[] emailList = phone.split(" ");
+        String[] socialList = phone.split(" ");
+
+        Professional pro = new Professional(p, address, phoneList, emailList, socialList, job, wp);
+        Add(pro);
+    }
+    public static void Add(Contact c){
+        contactArray.add(c);
+        OrderArray();
     }
     public static void Edit(){
-        int size_array = contactArray.length;
+        int size_array = contactArray.size();
         if(size_array == 0){
             System.out.println("List is empty");
         }
@@ -89,40 +174,40 @@ public class Main {
                     case "0":
                         System.out.println("Enter new first names");
                         String editFirst = myObj.nextLine();
-                        contactArray[Integer.parseInt(contactNb)].EditFirstName(editFirst);
+                        contactArray.get(Integer.parseInt(contactNb)).EditFirstName(editFirst);
                         break;
                     case "1":
                         System.out.println("Enter new last names");
                         String editLast = myObj.nextLine();
-                        contactArray[Integer.parseInt(contactNb)].EditLastName(editLast);
+                        contactArray.get(Integer.parseInt(contactNb)).EditLastName(editLast);
                         break;
                     case "2":
                         System.out.println("Enter new first address");
                         String editAddr = myObj.nextLine();
-                        contactArray[Integer.parseInt(contactNb)].EditFirstName(editAddr);
+                        contactArray.get(Integer.parseInt(contactNb)).EditFirstName(editAddr);
                         break;
                     case "3":
                         System.out.println("Enter new phone numbers (use / as separator)");
                         String editPhone = myObj.nextLine();
                         String[] editPhoneList = editPhone.split("/");
-                        contactArray[Integer.parseInt(contactNb)].EditPhone(editPhoneList);
+                        contactArray.get(Integer.parseInt(contactNb)).EditPhone(editPhoneList);
                         break;
                     case "4":
                         System.out.println("Enter new Emails (use / as separator)");
                         String editEmail = myObj.nextLine();
                         String[] editEmailList = editEmail.split("/");
-                        contactArray[Integer.parseInt(contactNb)].EditEmail(editEmailList);
+                        contactArray.get(Integer.parseInt(contactNb)).EditEmail(editEmailList);
                         break;
                     case "5":
                         System.out.println("Enter new Socials (use / as separator)");
                         String editSocial = myObj.nextLine();
                         String[] editSocialList = editSocial.split("/");
-                        contactArray[Integer.parseInt(contactNb)].EditEmail(editSocialList);
+                        contactArray.get(Integer.parseInt(contactNb)).EditEmail(editSocialList);
                         break;
                     case "6":
                         System.out.println("Enter new Job");
                         String editJob = myObj.nextLine();
-                        contactArray[Integer.parseInt(contactNb)].EditLastName(editJob);
+                        contactArray.get(Integer.parseInt(contactNb)).EditLastName(editJob);
                         break;
                     default:
                         System.out.println("Please enter correct value");
@@ -136,25 +221,16 @@ public class Main {
         }
     }
     public static void Delete(){
-        int size_array = contactArray.length;
+        int size_array = contactArray.size();
         if(size_array == 0){
             System.out.println("List is empty");
         }
         else{
-            Contact[] newContactArray = new Contact[size_array -1];
             System.out.println("Which Contact?");
             Scanner myObj = new Scanner(System.in);
             String usrInput = myObj.nextLine();
             if(TryNumber(usrInput)){
-                for(int i = 0; i < size_array -1; i++){
-                    if(i >= Integer.parseInt(usrInput)){
-                        newContactArray[i] = contactArray[i+1];
-                    }
-                    else{
-                        newContactArray[i] = contactArray[i];
-                    }
-                }
-                contactArray = newContactArray;
+                contactArray.remove(usrInput);
             }
             else{
                 System.out.println("Please enter valid input");
@@ -168,9 +244,16 @@ public class Main {
             System.out.println();
         }
     }
+    public static void Search(){
+        for(Contact c: contactArray){
+            if(c.getPers().getFirst_name() == ""){
+
+            }
+        }
+    }
     //Test if the value is a number or not and if it's withing the range of the array
     public static boolean TryNumber(String nb){
-        int size_array = contactArray.length;
+        int size_array = contactArray.size();
         int nbInt = 0;
         try{
             nbInt = Integer.parseInt(nb);
@@ -181,21 +264,22 @@ public class Main {
         return (nbInt < size_array);
     }
     public static void OrderArray(){
-        int size_array = contactArray.length;
+        int size_array = contactArray.size();
         if(size_array > 1){
-            Contact[] newContactArray = new Contact[size_array];
-            for(int i = 0; i < size_array - 1; i++){ //-1 as we check +1 later
-                String nameP1 = contactArray[i].getPers().getFirst_name();
-                String nameP2 = contactArray[i+1].getPers().getFirst_name();
+            ArrayList<Contact> newContactArray = new ArrayList<Contact>();
+            for(int i = 0; i < size_array - 1; i++){ //-1 as we check +1 later (< as lst starts at 0)
+                String nameP1 = contactArray.get(i).getPers().getFirst_name();
+                String nameP2 = contactArray.get(i+1).getPers().getFirst_name();
                 int test = nameP1.compareTo(nameP2); //Return distance between 2 letter (f and a = -5 / a and b = 1)
                 if(test > 0){
-                    newContactArray[i] = contactArray[i+1];
-                    newContactArray[i+1] = contactArray[i];
+                    newContactArray.add(contactArray.get(i+1));
+                    newContactArray.add(contactArray.get(i));
                 }
                 else{
-                    newContactArray[i] = contactArray[i];
+                    newContactArray.add(contactArray.get(i));
                 }
-                if(i == size_array - 2){ //-2 to take last iteration only (as we do "i < size -1")
+                if(i == size_array - 1){ //-2 to take last iteration only (as we do "i < size -1")
+                    newContactArray.add(contactArray.get(i+1));
                     contactArray = newContactArray;
                 }
             }
diff --git a/tp/src/main/java/org/example/Professional.java b/tp/src/main/java/org/example/Professional.java
new file mode 100644
index 0000000..bdb6496
--- /dev/null
+++ b/tp/src/main/java/org/example/Professional.java
@@ -0,0 +1,30 @@
+package org.example;
+
+public class Professional extends Contact{
+    private String work_place;
+    public Professional(Person pers, String addr, String[] phone, String[] email,
+                  String[] social, String job, String work_place){
+        super(pers, addr, phone, email, social, job);
+        this.work_place = work_place;
+    }
+
+    @Override
+    public String toString(){
+        String w_phone = "";
+        String w_email = "";
+        String w_social = "";
+
+        for(String elem: this.phone){
+            w_phone += elem + " ";
+        }
+        for(String elem: this.email){
+            w_email += elem + " ";
+        }
+        for(String elem: this.social){
+            w_social += elem + " ";
+        }
+
+        return pers.toString() + "\n" + this.addr + "\n" + w_phone + "\n" + w_email + "\n"
+                + w_social + "\n" + this.job + "\n" + this.work_place;
+    }
+}
diff --git a/tp/target/classes/org/example/Contact.class b/tp/target/classes/org/example/Contact.class
index 90149e1f5120b89e0d5dc82f9bf65d6683aca544..90a523062b11ba0b0f791d92073dc5d969add585 100644
GIT binary patch
delta 65
zcmaDW^Hyd<9h(V@A_E5l69WSS8v_diHv<m?0|N^KKZ5|67G@9u)8bHC3PNw*#I~Cq
E002A&s{jB1

delta 65
zcmaDW^Hyd<9h(V*A_E5l69WSS8v_#qHv<m?0|OHSKZ5|67G@9u)8bHC3PNw*#I~Cq
E0R9mMn*aa+

diff --git a/tp/target/classes/org/example/Family.class b/tp/target/classes/org/example/Family.class
new file mode 100644
index 0000000000000000000000000000000000000000..a80639b27961d303be0f4113fc674724e8c9f1b8
GIT binary patch
literal 2004
zcmX^0Z`VEs1_nEZKrRL*24;2!79Ivx1~x_p;rya>{nU!Y+=84`edqkVlEmZ^Mg}&U
z%)HDJJ4S{Q4Ig9$0jWjB`FYkpS&3zd`Z<Yt>H5JXMVWc&*3sk&Vd~Qi<7D7q;ACgu
z;$h%s;9+DCLUw^$Vs2(mB_jhzQEE<NNoIZ?BZCm885|6Jj0_AQa|C!81Q~=F8CVN4
z^7B#|8HBO8REU9rL4=1vltGM<K|D7xJJmTqFFCO!JhLRjIX|zsBr&g~n32Ik1JfQ%
z5lu`XkTWEB7$m{YNX<>m%mIl=^DxMOMA(Y+lQR>+LUKF|@(c=$3@inyMa7H^BG`hS
zi$RG&nVms}he4G=4J~XSvBSu~QIZdd7DfgU4IB>A;9<}N1ujcsN=gyPJ=#1BIv@e&
zto$S)21W)wP=M$&GE5@M+nBzlmIxO2GcvT%KUre>M>C9(fyFsLC6$qZ-zPIK)vq)+
zDYYmhF)1e%lqmC)6LZ26i!wocs31#8MkYqYLQ=FfBLhonPHHYA1ABQqG_A6i$Agm#
zBLhcyJS3SgGVlhMBqnG3CKiCrWM{BpWDr2lj_ja>#TA@iT9lmXmI-nWH^de_kV-}d
z0jK=@lH!u0!~);cl8pS6VtzITCoTqO1{Zb)S5UmWF*2xtltS`&W?or-b}BThL-K}O
zVsc4-Q6(e84CLeiRR}TEBQY-}C$(6`CqF;Cv;a$)ffS-B8bc}zQn4sU&ba<bS*gh-
z*2rlCYJ_uQPEK%UNvbsmg9jr6Gb5t{2ZI+Q11}>N5@clH@yyFhEppCDEG|whW@qqa
zWKhNMFE($mGx#$y$l+JY$iN2iGlL=n2LlrW0|O%i6R0R-U|?WkU}RurFkoP0Fl1n0
z=wV=I-~bgqTG~3gk}Q&}l5E=<7_}tXw=%GA1gkb;U|`^5U}j)oU}xZE;9wAD;AAjn
zU|<M>=wmQpFl7J%5m3p&zz8x6l&`_IihxQ!uwD^R;lscJmX%=;VqgWcbQpLT*uX4q
z1|9}>21Zbk0&y8*Db!`lgm`^~czuO<{j|0)@LRD+vg|WsWj13IWfNsx#2_ijBFbiD
z#jY*MzKcPafx)MRjdA(^XIfhr#BnLrfhzTdE0w~fR2Qn$53W>p8-t?O76x@~9bK(0
z3|d-S7}$3)=rS;DU|?WiW&nki83Qi^0|PGuGXoz38v{QBCxak^DuWP%9)lo*34;hj
z0D~w)B!dV;JcBqxHG>303xhaA7lSl7Og$Lb8B`fK8O*?;5dddZ!&wXr%b+37%&?fj
zoPmddk%5h20fPkt4+9eeC&OF@O9mbWW(F$;1_omWw*L&`4D9R-9PA9%Fl5Wf$iVP}
zLFOL=FFS)RBO@x4ftkS$9PRcD4&aDqVsK<&WN-(Qo($d$3=CWhj0`>uehdK&k^p(`
B>IVP-

literal 0
HcmV?d00001

diff --git a/tp/target/classes/org/example/Friend.class b/tp/target/classes/org/example/Friend.class
new file mode 100644
index 0000000000000000000000000000000000000000..7502894edd022967e3f0e47ff76321052ab7666a
GIT binary patch
literal 567
zcmX^0Z`VEs1_nC@NiGH^24;2!79Ivx1~x_p;rya>{nU!Y+=84`edqkVlEmZ^Mg}&U
z%)HDJJ4S{Q4Ig9$0jWjB`FYkpS&3zd`Z<Yt>H5JXMVWc&*3sk&Vd~QiV`t!CWDr8O
z*R3csH7|vcfyFsLC6$qZ-zPIK)vq)+DYYmhF)1gNkwM5OKRGccEU_pP#D@y9lw@QU
zGct&vcmZORH6sH{L240(EYyRH3@nK$DMcW2F}%viz*>-zpO?zWAdJP=j0~))xrv!M
zj0|kW`N^4yIgAX<S@}tf3|ztarA5i9ZkZtGazk992Qr*Nk%66oi2(!{85lva!obMD
z$-ux+!NAVI&cMLHr=_i<E6F0sD#^B;fpH@P0|OHS7Xt$WC?**g*co^kI2gDY7#KVt
zsu_3~ctM6S@G<Z)@G~%iOkfaT5Cq%7#~{QY%)ks56JZc$U;(p48H5>F!7MQbK?XJk
KMh0=PEfN4F1%+h*

literal 0
HcmV?d00001

diff --git a/tp/target/classes/org/example/Main.class b/tp/target/classes/org/example/Main.class
index 611c4014bad05fc0a784690238cdc1e343376535..26c69ecfe8a389705cae4a52d07bc900fb788bde 100644
GIT binary patch
literal 8586
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
A`v3p{

delta 4319
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
M<YnY%6l9PD0A+Hm-2eap

diff --git a/tp/target/classes/org/example/Professional.class b/tp/target/classes/org/example/Professional.class
new file mode 100644
index 0000000000000000000000000000000000000000..b23347c22668ebf646f715c6f737764224ccf42e
GIT binary patch
literal 2024
zcmX^0Z`VEs1_nEZKrRL*24;2!79Ivx1~x_p;rya>{nU!Y+=84`edqkVlEmZ^Mg}&U
z%)HDJJ4S{Q4Ig9$0jWjB`FYkpS&3zd`Z<Yt>H5JXMVWc&*3sk&Vd~Qi<7D7q;ACgu
z;$h%s;9+EtKyg7)ep+gAab|vAVh$q%S9yL>c6>ojVsa`YgAk@!91MJn3=AOi1b7$(
z8H5-aSPL@p^HLcZgt53-h=GAYgoi<tL5z_>JU1~r)j2;eIk6->vn0bgKd-nXF|VYU
zk-<U((;iF_O-vz>GbDHzB*D%|%}vbA0f|WSFvx&J*oyO$GZVo=ay$(33<``4ECs1W
z#f%Ih*rI@oL5V?`ok4|%L6t#`kwFM0jKHzP$iPvO4~ZT|1`!P$4$|OZ&;$iCOJYh&
z5y(B-JPbM@0p_gyBq0Vy20c)K=rb}*BFfvCzNVH47WXqUw9!9#V){ojjFExGIX@+p
zk%8YQGcVPzG&d==C?qi{2b?JLlM{2o5{oiHe5fExNk(QdBZCxb#3H3^Yeoi^)ST2@
zMh5oscxZ}cFOLT&8b$_=@_0yMVPxP9E=f$z_Dw7Ro6OE&!^j|jo;le;$%`vEzqBYh
z)h!d`D8T?EyYxWn85sne^7BiIONtT;d{av@@>7cW*%+L-7@Qeg*cn_wX~2z<K?S4~
zlJ7I~%JQ>Qq1hjjPuvodOY(~<85w3ECl#ndh@l>dc_}%m#VS7e`ProfSjrKk&_&T0
zQdy9SMLBXN_D{-6O)jxUPA5<!oD*|$f-_4}tvMJx7#Wxu85KAfycijH8M%-kBLk0T
zUS4XEb53G$acVI;gD)e4Du#ctd4rw7pOHZhzfwj9Hi(}Y6d5=em>3us7#WyA#Tx?y
z0}}%y11p0810#bW0|P@313Lo;s36kP*3p$@kz|!*+s?qKCCR>(fqf%bwGjgY10Mr3
z0|Ns)11|#ygD?XpgE0dGLl8tCg9(Ev0|<zKN)ZM|kXfKS4z^VUR0@Liihv3t1{Sca
z41*8@E10Fjz{9`>W^ps{Ft9T)f{GW2%NR?cE?XwV>m$VLE5z%kwS|G-ibaxTpBXE&
z8Jj4ZDC;5yNl6w_HX|!`ZAtcB48jZyJ}qpF%l|*q+QJ}?OQ{Z2sV`iq6fUK@P^Erw
zrLx-?6t%W6sB7!!YHeZA(%QnnzKcPZfnfs!0|PSyD6GsFco`TNco~=(_!!t2_!&4E
z1Q}Ergc$S~1Q|>iL>K}XL>VF(L>S^3#2Km?Bp6y4#2LC6q`_h8!NAU-%D~BB1`dq?
zII9}YVqjPX4RL0M#SG>QJPeEsYzzw+EEsqgm>4)2<}z3^@GvklSTQg#7&EZ_XAoy#
zXJ_DGXRwALTSi6(h93+v{}_1L8EhFDQJD<P40hmXw`XtwM?4dQBLgFYJDBuj@Md6O
Q;9_88@L}*{2w;!|04s#@od5s;

literal 0
HcmV?d00001

-- 
GitLab