From eb69b6daadf26c84b40b3b69bdb8f9976769a0a6 Mon Sep 17 00:00:00 2001 From: Pistolmannen Date: Mon, 22 Apr 2024 13:44:55 +0200 Subject: [PATCH 1/7] added the recyclerview to main activity xml and made the list layout xml --- app/build.gradle | 1 + app/src/main/res/layout/activity_main.xml | 8 ++++---- app/src/main/res/layout/list_layout.xml | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/layout/list_layout.xml diff --git a/app/build.gradle b/app/build.gradle index ff9c03db..7a0f2405 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,6 +29,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'com.google.code.gson:gson:2.9.0' + implementation 'androidx.recyclerview:recyclerview:1.2.1' } task archive(type: Zip) { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4fc24441..702e6531 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,10 +6,10 @@ android:layout_height="match_parent" tools:context=".MainActivity"> - + + + + + \ No newline at end of file From 0170df7e47217ddcce391cbada500e750aca712b Mon Sep 17 00:00:00 2001 From: Pistolmannen Date: Mon, 22 Apr 2024 14:08:12 +0200 Subject: [PATCH 2/7] added the mountain class and added its geters and seters --- .../java/com/example/networking/Mountain.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 app/src/main/java/com/example/networking/Mountain.java diff --git a/app/src/main/java/com/example/networking/Mountain.java b/app/src/main/java/com/example/networking/Mountain.java new file mode 100644 index 00000000..c5a38cc3 --- /dev/null +++ b/app/src/main/java/com/example/networking/Mountain.java @@ -0,0 +1,36 @@ +package com.example.networking; + +public class Mountain { + + private String Name; + private String Place; + private int Hight; + + public Mountain(String Name){ + this.Name = Name; + } + + public void setName(String Name) { + this.Name = Name; + } + + public void setPlace(String Place) { + this.Place = Place; + } + + public void setHight(int Hight) { + this.Hight = Hight; + } + + public String getName() { + return Name; + } + + public String getPlace() { + return Place; + } + + public int getHight() { + return Hight; + } +} From 4d1482f2f3fbd99e35a18d34ac4a8822fec38944 Mon Sep 17 00:00:00 2001 From: Pistolmannen Date: Mon, 22 Apr 2024 14:24:38 +0200 Subject: [PATCH 3/7] made som mountens and started to give recycler view functionalety --- .../com/example/networking/MainActivity.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/src/main/java/com/example/networking/MainActivity.java b/app/src/main/java/com/example/networking/MainActivity.java index c72a5e42..e910e743 100644 --- a/app/src/main/java/com/example/networking/MainActivity.java +++ b/app/src/main/java/com/example/networking/MainActivity.java @@ -4,6 +4,11 @@ import android.util.Log; import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; +import java.util.Arrays; @SuppressWarnings("FieldCanBeLocal") public class MainActivity extends AppCompatActivity implements JsonTask.JsonTaskListener { @@ -11,11 +16,23 @@ public class MainActivity extends AppCompatActivity implements JsonTask.JsonTask private final String JSON_URL = "HTTPS_URL_TO_JSON_DATA_CHANGE_THIS_URL"; private final String JSON_FILE = "mountains.json"; + private RecyclerView resView; + private RecyclerViewAdapter resViewAdapter; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + ArrayList Mountains = new ArrayList<>(Arrays.asList( + new Mountain("Billigen"), + new Mountain("Mount Everest"), + new Mountain("Uluru") + )); + + resView = findViewById(R.id.recycler_view); + resView.setLayoutManager(new LinearLayoutManager(this)); + new JsonFile(this, this).execute(JSON_FILE); } From e3c1bb35e59a92966ed15e5adc48d6f9e808b09d Mon Sep 17 00:00:00 2001 From: Pistolmannen Date: Mon, 22 Apr 2024 14:39:45 +0200 Subject: [PATCH 4/7] added RecyclerViewAdapter and fixt last of recyclerView funktionalety --- .../com/example/networking/MainActivity.java | 13 +++-- .../networking/RecyclerViewAdapter.java | 49 +++++++++++++++++++ 2 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/example/networking/RecyclerViewAdapter.java diff --git a/app/src/main/java/com/example/networking/MainActivity.java b/app/src/main/java/com/example/networking/MainActivity.java index e910e743..2bb5615b 100644 --- a/app/src/main/java/com/example/networking/MainActivity.java +++ b/app/src/main/java/com/example/networking/MainActivity.java @@ -16,22 +16,25 @@ public class MainActivity extends AppCompatActivity implements JsonTask.JsonTask private final String JSON_URL = "HTTPS_URL_TO_JSON_DATA_CHANGE_THIS_URL"; private final String JSON_FILE = "mountains.json"; - private RecyclerView resView; - private RecyclerViewAdapter resViewAdapter; + private RecyclerView recView; + private RecyclerViewAdapter recViewAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - ArrayList Mountains = new ArrayList<>(Arrays.asList( + ArrayList Mountains = new ArrayList<>(Arrays.asList( new Mountain("Billigen"), new Mountain("Mount Everest"), new Mountain("Uluru") )); - resView = findViewById(R.id.recycler_view); - resView.setLayoutManager(new LinearLayoutManager(this)); + recViewAdapter = new RecyclerViewAdapter(this, Mountains); + + recView = findViewById(R.id.recycler_view); + recView.setLayoutManager(new LinearLayoutManager(this)); + recView.setAdapter(recViewAdapter); new JsonFile(this, this).execute(JSON_FILE); } diff --git a/app/src/main/java/com/example/networking/RecyclerViewAdapter.java b/app/src/main/java/com/example/networking/RecyclerViewAdapter.java new file mode 100644 index 00000000..aa8b7d71 --- /dev/null +++ b/app/src/main/java/com/example/networking/RecyclerViewAdapter.java @@ -0,0 +1,49 @@ +package com.example.networking; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import java.util.List; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +public class RecyclerViewAdapter extends RecyclerView.Adapter { + + private List items; + private LayoutInflater layoutInflater; + + RecyclerViewAdapter(Context context, List items) { + this.layoutInflater = LayoutInflater.from(context); + this.items = items; + } + + @Override + @NonNull + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(layoutInflater.inflate(R.layout.list_layout, parent, false)); + } + + @Override + public void onBindViewHolder(ViewHolder holder, int position) { + holder.title.setText(items.get(position).getName()); + } + + @Override + public int getItemCount() { + return items.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + TextView title; + + ViewHolder(View itemView) { + super(itemView); + title = itemView.findViewById(R.id.title); + } + } + +} From 1c45540d59bb6d8fbe15b435d73ffe41714f2eeb Mon Sep 17 00:00:00 2001 From: Pistolmannen Date: Mon, 22 Apr 2024 15:50:54 +0200 Subject: [PATCH 5/7] can now read JSON --- app/build.gradle | 1 + .../com/example/networking/MainActivity.java | 19 +++++++++++++++-- .../java/com/example/networking/Mountain.java | 21 +++++++++++++------ .../networking/RecyclerViewAdapter.java | 5 +++++ 4 files changed, 38 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 7a0f2405..ae747f29 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,6 +30,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'com.google.code.gson:gson:2.9.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' + implementation 'com.google.code.gson:gson:2.10.1' } task archive(type: Zip) { diff --git a/app/src/main/java/com/example/networking/MainActivity.java b/app/src/main/java/com/example/networking/MainActivity.java index 2bb5615b..d4f21bc1 100644 --- a/app/src/main/java/com/example/networking/MainActivity.java +++ b/app/src/main/java/com/example/networking/MainActivity.java @@ -7,24 +7,32 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; @SuppressWarnings("FieldCanBeLocal") public class MainActivity extends AppCompatActivity implements JsonTask.JsonTaskListener { - private final String JSON_URL = "HTTPS_URL_TO_JSON_DATA_CHANGE_THIS_URL"; + private final String JSON_URL = "https://mobprog.webug.se/json-api?login=brom"; private final String JSON_FILE = "mountains.json"; + private ArrayList Mountains; + private RecyclerView recView; private RecyclerViewAdapter recViewAdapter; + private Gson gson = new Gson(); + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - ArrayList Mountains = new ArrayList<>(Arrays.asList( + Mountains = new ArrayList<>(Arrays.asList( new Mountain("Billigen"), new Mountain("Mount Everest"), new Mountain("Uluru") @@ -37,11 +45,18 @@ protected void onCreate(Bundle savedInstanceState) { recView.setAdapter(recViewAdapter); new JsonFile(this, this).execute(JSON_FILE); + + } @Override public void onPostExecute(String json) { Log.d("MainActivity", json); + Type type = new TypeToken>() {}.getType(); + ArrayList listOfMountains = gson.fromJson(json, type); + + recViewAdapter.updateAdapter(listOfMountains); + recViewAdapter.notifyDataSetChanged(); } } diff --git a/app/src/main/java/com/example/networking/Mountain.java b/app/src/main/java/com/example/networking/Mountain.java index c5a38cc3..fb6641e9 100644 --- a/app/src/main/java/com/example/networking/Mountain.java +++ b/app/src/main/java/com/example/networking/Mountain.java @@ -2,16 +2,16 @@ public class Mountain { - private String Name; + private String name; private String Place; private int Hight; - public Mountain(String Name){ - this.Name = Name; + public Mountain(String name){ + this.name = name; } - public void setName(String Name) { - this.Name = Name; + public void setName(String name) { + this.name = name; } public void setPlace(String Place) { @@ -23,7 +23,7 @@ public void setHight(int Hight) { } public String getName() { - return Name; + return name; } public String getPlace() { @@ -33,4 +33,13 @@ public String getPlace() { public int getHight() { return Hight; } + + @Override + public String toString() { + return "Mountain{" + + "Name='" + name + '\'' + + ", Place='" + Place + '\'' + + ", Hight=" + Hight + + '}'; + } } diff --git a/app/src/main/java/com/example/networking/RecyclerViewAdapter.java b/app/src/main/java/com/example/networking/RecyclerViewAdapter.java index aa8b7d71..006567aa 100644 --- a/app/src/main/java/com/example/networking/RecyclerViewAdapter.java +++ b/app/src/main/java/com/example/networking/RecyclerViewAdapter.java @@ -6,6 +6,7 @@ import android.view.ViewGroup; import android.widget.TextView; +import java.util.ArrayList; import java.util.List; import androidx.annotation.NonNull; @@ -46,4 +47,8 @@ public class ViewHolder extends RecyclerView.ViewHolder { } } + public void updateAdapter(ArrayList newItems){ + items.addAll(newItems); + } + } From 83574290f16a0db4b25235da36661320d50e7b19 Mon Sep 17 00:00:00 2001 From: Pistolmannen Date: Mon, 22 Apr 2024 16:01:14 +0200 Subject: [PATCH 6/7] added serializedName to mounten class --- .../java/com/example/networking/Mountain.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/example/networking/Mountain.java b/app/src/main/java/com/example/networking/Mountain.java index fb6641e9..cf75ede7 100644 --- a/app/src/main/java/com/example/networking/Mountain.java +++ b/app/src/main/java/com/example/networking/Mountain.java @@ -1,10 +1,14 @@ package com.example.networking; +import com.google.gson.annotations.SerializedName; + public class Mountain { private String name; - private String Place; - private int Hight; + @SerializedName("location") + private String place; + @SerializedName("size") + private int hight; public Mountain(String name){ this.name = name; @@ -14,12 +18,12 @@ public void setName(String name) { this.name = name; } - public void setPlace(String Place) { - this.Place = Place; + public void setPlace(String place) { + this.place = place; } - public void setHight(int Hight) { - this.Hight = Hight; + public void setHight(int hight) { + this.hight = hight; } public String getName() { @@ -27,19 +31,19 @@ public String getName() { } public String getPlace() { - return Place; + return place; } public int getHight() { - return Hight; + return hight; } @Override public String toString() { return "Mountain{" + "Name='" + name + '\'' + - ", Place='" + Place + '\'' + - ", Hight=" + Hight + + ", Place='" + place + '\'' + + ", Hight=" + hight + '}'; } } From 40e89b3aeb5dcf9773d10a53feb8ecdbc0b06563 Mon Sep 17 00:00:00 2001 From: Pistolmannen Date: Mon, 22 Apr 2024 16:29:42 +0200 Subject: [PATCH 7/7] report done --- README.md | 111 +++++++++++++++++++++++++++++--------- Screenshot_Networking.png | Bin 0 -> 52378 bytes 2 files changed, 85 insertions(+), 26 deletions(-) create mode 100644 Screenshot_Networking.png diff --git a/README.md b/README.md index bdd11c8b..3d237c6f 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,101 @@ # Rapport -**Skriv din rapport här!** +Detta är rapporten för Networking -_Du kan ta bort all text som finns sedan tidigare_. +I activity_main.xml lade det till en recyclerview. +``` + +``` -## Följande grundsyn gäller dugga-svar: +En ny xml fill lades till för att visa hur elementen i recyclerview ska se ut. +``` + + -- Ett kortfattat svar är att föredra. Svar som är längre än en sida text (skärmdumpar och programkod exkluderat) är onödigt långt. -- Svaret skall ha minst en snutt programkod. -- Svaret skall inkludera en kort övergripande förklarande text som redogör för vad respektive snutt programkod gör eller som svarar på annan teorifråga. -- Svaret skall ha minst en skärmdump. Skärmdumpar skall illustrera exekvering av relevant programkod. Eventuell text i skärmdumpar måste vara läsbar. -- I de fall detta efterfrågas, dela upp delar av ditt svar i för- och nackdelar. Dina för- respektive nackdelar skall vara i form av punktlistor med kortare stycken (3-4 meningar). + -Programkod ska se ut som exemplet nedan. Koden måste vara korrekt indenterad då den blir lättare att läsa vilket gör det lättare att hitta syntaktiska fel. + +``` +Mountain class var skapad and given geters and seters. ``` -function errorCallback(error) { - switch(error.code) { - case error.PERMISSION_DENIED: - // Geolocation API stöds inte, gör något - break; - case error.POSITION_UNAVAILABLE: - // Misslyckat positionsanrop, gör något - break; - case error.UNKNOWN_ERROR: - // Okänt fel, gör något - break; +public class Mountain { + + private String name; + @SerializedName("location") + private String place; + @SerializedName("size") + private int hight; + + public Mountain(String name){ + this.name = name; + } + + public void setName(String name) { + this.name = name; + } +``` + +I mainActivity.java sättes en arraylist av mountains, RecyclerViewAdaptern skapades +och recView sates som RecyclerView. +``` +Mountains = new ArrayList<>(Arrays.asList( + new Mountain("Billigen"), + new Mountain("Mount Everest"), + new Mountain("Uluru") +)); + +recViewAdapter = new RecyclerViewAdapter(this, Mountains); + +recView = findViewById(R.id.recycler_view); +recView.setLayoutManager(new LinearLayoutManager(this)); +recView.setAdapter(recViewAdapter); +``` + +RecycelViewAdapter.java kopierades från guiden och allt om onclick togs bort +och en update metod skapades. +``` +public class ViewHolder extends RecyclerView.ViewHolder { + TextView title; + + ViewHolder(View itemView) { + super(itemView); + title = itemView.findViewById(R.id.title); } } + +public void updateAdapter(ArrayList newItems){ + items.addAll(newItems); +} + ``` -Bilder läggs i samma mapp som markdown-filen. +Till sista så lades det till i onPostExecute i mainActivity.java så bergen från JSON mappen +läggs till i listan av berg. +``` +Type type = new TypeToken>() {}.getType(); +ArrayList listOfMountains = gson.fromJson(json, type); -![](android.png) +recViewAdapter.updateAdapter(listOfMountains); +recViewAdapter.notifyDataSetChanged(); +``` -Läs gärna: +på grund av firewall så gorde jag inte JSON hämtningen från websidan. -- Boulos, M.N.K., Warren, J., Gong, J. & Yue, P. (2010) Web GIS in practice VIII: HTML5 and the canvas element for interactive online mapping. International journal of health geographics 9, 14. Shin, Y. & -- Wunsche, B.C. (2013) A smartphone-based golf simulation exercise game for supporting arthritis patients. 2013 28th International Conference of Image and Vision Computing New Zealand (IVCNZ), IEEE, pp. 459–464. -- Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A. (2012) Experimentation in Software Engineering, Berlin, Heidelberg: Springer Berlin Heidelberg. +![](Screenshot_Networking.png) diff --git a/Screenshot_Networking.png b/Screenshot_Networking.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6875853495f11d663d0c2fe2317d4118cde686 GIT binary patch literal 52378 zcmeFZXH-*B(>4quf+8SNr3zT+MS2(M(xrE$w@{=L0@$fR6a?u_dXW}-0I7oX5(pin zhR|z(xY?^@3AR*sWN=I_Q>9w*!T{WM%4YBaI$g%MPq%cu5d1{mrnye zt2{NMH=&|UbU5mnF9xIL8x=g~&O_5ex6lU1$D8s-SB5ME_C3^68bv<|2{f8T;T6$x zB9adhB3XzZ+@~xgAY-6P8@Cr!a0>hR;#b3B=GGin_c!>4eQV7ff<+;ssH%I~ec#F6aXT*DL7OB6f#G0CwF<*{jg8sW$QHp?sFLfncD;o5(F%AVNUTqgd2Q> zPcht&(=+$^m2Q%V-Y2+~MRYHV)bP!tVPe&`+osnn7O&5~k=P?)f62KRZu zrT8NYmK&vKRQR=!!jNr?)%BWK9Omt#+|?0jXR;b5X$F>egUai<{Ufm({zpbfq`|kY zDBiUT3Gv0;>!ziC8`)!T7bWyb7?iA;%>L(rBVlw`-%G!r#-^U`*Tu&tCeSdtW!7E zwEj#Zbm!xZj@bBKF2}T2F;C>5bE{8lsA!-QT@x9Q1~YUj_dzZzg}3R_N1EMMeE~ z6?U`i7fVsU(m0exjD@W$wJO!TjU)5z%V-J=^L_ODMf6A!mH`Ik***b3>C; z-7ZeGp!>FF%4&C?ZSBu)vEM1;DcmW?DW|nU=I&+J%R0;hYF~k<(WYouw2bsmXpv6Z z;H&g(qYb0AlE9KJli1BKzGz<&Ukl&IM-0Ik!41Lb!4*dnM@q-1s8dv!u#m92sIyR@ zySkXK#2>M3@yjvwnFu>WkZ+h+Q0?IsOG%S)tN5fa^ohLfW!rnlWrwPsJjCDXqVL=b zH50y*S_6EurQPl^+D;XA^pzEKDjihRz@t|Cr%}PEI#CJ1ZsfA!p8i~{rCL~wymd`rVi0FXnGbt zW|)-aYh`9DW-?}y^gf!#D=o_^D}ja_D>=*4CTIh9z4vU&?AqMG zY+b`?&}Z38*<#s@AXo5#TvN+S!GH=P>lL>N#KEM0Fp;OkF44U1WaZ?K(u*#VmFmF) z1Tvd6Urgvn{`^>wZtx=zYbXp?k1J3-&5@ zZ+5Hfso}Qa?%@x|Iw;EW%v&Ni`ze{`+K@jTI$~q1n5ZSJr~~^Zzko68eW|Gi7t(hpxS;lc7`d(Ct66O)9ozp8ajc=rVAfj+2xV%aE#rPZiiF z!N-49%e{KWxQ+$M+Rzg4X$#uSVjyGXpE0X4mG~3oU#{rkvNJQM*wl1LbKt+G9lCyC zr3p8cR|s>DTg^c3>M!&_6zT(x=lfc0Zq*Y@kdfc&CsUyHj`G01JX7kT?7zr4C8tZJ zW8-d5*n6&eIx-@GW-L6gInZT5UVC7(buJE96uXLl>u!OJZ z(va3d>;=eX&Y07ty3TQ5=yY$7YKF6{_EznOTDG`u7Kq;Z3xs}!zD?+DAHJ2T!;ftr zu`Amv+Obu!A7V3g_jE{gFd5r!PuyHxzj+FHys;RyaMb;f-guF_5@%J`Smp!52&!9i?XVyHJ?69d(^&7teLgz7n%w`jB{i7M<|h1g>rjE`UUAO^3XxV}wONO1 z4V>G;oHNl$49?jvY&Saum)N!0XI;U5qfZpa+MzOz0gXE;3usnzk#P}sk&yF@l@_4+E5U6@+|=^ zNuArWhv1XIFCym$b>j>2+N*Mp6$CSlQ#?|HQ=}A7vf$G$484KiR~vzWRh+;+cz}1n zL;?5eqNgon?{eG?i&|BPp6_jz+MhfF?fz=~P_X-Do}ZttIVmXYfapRA*OL`DrujYd zXC{xl8)OH&yzdYq?Hd(q1s($SPho8L-)wgdO3og`lw>p_W&vF0J~0CD)m)idxI8E~*XOt}0mee!mgi`%Pr?w}A-P zB!2alh=4$7Q^m%6F#N0ameNV9I3~eG!NAY_8uZoVQD(9+>f#Vs;9aO}nY~+k5*@G# zvQiB5ZKNj#?sz0MW?jfwe4QDDU~)ykdDaZcL-qxj_H5hf?*b1tE_Ee+liI)`Hlp*d z42%q~K}Ru9(W9AZ=Bei=z@*hT;D)@n;9kI^LN~S`qqrD(*CV4bY)RBzufJR2<_igL z1P6Z;W%P#?0gt@2RIxe!yU~yO3>Q6u(7tH>n)~QgoA3|u!$cyT zduP|&2gBI$(~OF%WlCV+E@6SThzGYMZ9_*jONLL-0%zBN(Kh8O@bfa<7X-o)E{|r@ z{gbjssCH82QVS2zE*oh6vDg7*1K}Dk*Z4;yGN#zuu0uQpLHkJD?>CeOOP3^Mz!YCc zJ4Q@0k}U>w+QRKzLESU?6Bt&$v-^a=i{=YNBLO-WV-w{!X}p;AP#0HkD2rMb-vQ@D zaCgiV0;wn&2=qg?mOE;PhjYT(&iBi?nno${(>ilwMjxAmfv0bgFjth#9gbD@?6#3q z!WN0}awF*>C_!Z#8FZLQE)S!ZR?#tw(B2{&|JhSuFnkGY?+RM0sbQPHFsck+`JvAQ zv0?k!w5S9O5~zA)4aprA){U=S8X^UE=Zf{(_E%Jtcew-ifYGOj0n0m({hF}(RHMjn zPVh8f^RI9 zP}JbtPxu2d?12L39;S0~WoNR&0O)k!vfvHL&w|BlV31%!WVmM+=Y_(#ENPxwfMH>qU)xFdY5h6Wf&E_B>Udx64Th*C1lF|LH$Eo#Fd z&&xc)*a7@|)Loho+&xcCpEn~V!nY+un=Se#kF@`djDD+}v2uvH1|@R6@?;3KOT9JE z2fQKV4N7@|lDR){v(d)x&VOx6q6WUGjW-MG1q@=su~~Y6tkEKu*{iuye1)E5zPE$e zlL9Y{>^EiA&ucg4O7zJktCF-!j;+l0@_~VH4W~6)m)FBBj9uY&fIAFdrULpWcvM-D zcdi)Vns5y`Pi(;L*`tiN68L4btikz{j&QjFDpl*;J6_H3N!$X7M>VBHte-PSgVQCOyRxV+Q{s6dv@`hSb`iF5bCWlU!WYd ze04T~mjSdUGnR@!OD>TglekkCxKQ)fi#96oG{x-H*UebG5H)+s_P1OHhlBjM7a8ia z$8LGxVJhnfaE1nBY1xNc&)U47mf^^WBx)pD6oH{|@$K*bRL3M;LUn^V%&_Um>4t~B zM*9GMvo%Fw-uAa$c7{V^g@F0qa2`tF*B|~4%(waP_Wi{`2xyIse6|gG^f8%v{(ubO z;CYc~Ha!z|j7h75hZvvaXSO^FxDC8U-JzdZuONeRi-RSwj(ub?0HFR=ib9PEC*C?R zJ6!em9=(ycGz`1y4?f+duTrV2_}u_n^O+92yt>>D&)gVd0YE?qxg1xX8G6Vvoz2!P zaWUz{_GeJ?G9H8LR_Ga8IX+5`T(qlbcz9YpQsuQ1J*}6>I+lT*8N1AGVRUR0E}O*d zTxtuMT@E4UQ}``v*spddiu-je;;%Y92L|!;4}(V3q|l2Gr>&|phO9&U!ALpoQfGR! zu8gzB$-Y9XSioTMrow6DcIjpZqnI#XF1^=yL2)zh0Q<-CSH#TI{Wk;xZGwrkSV`cA zJMI&?sbjl4S&i77f~qjg*M6Q`7WkNVm@95h*U2h$nQ5=R9iU7 zCiyEin%7xgxnD_d)`ImpXCoM6!#VR?W@VffPY<2nJ` zdbjzZWFuB#E)%kN>ai0nP4Cly-Hcmz+`aUaShG&$8dTV+biaz08QtB=3f_JbJKer( z_4(hzk{n*i0au4E2s=Ywtk+DxqMA=Vl^7$Tnhd9ybP=i4s9Qo{R`qbsS6D3u_LEJZ z-Wj3%{G_)9b$XsefyD}Os`x9pFxd^7hp54qUi_6$RR zob^_UoUmJ8*b6BiYX$Z1xbM%Qw#Z(0?{I8-w`^&KNhrwdh)~+&&SWHq&exf9^*6=(v`UU4TmujLO5TO95Y=jiy;xkO)+Daz&`66567%0 zO>89WR*>n(UXEiJtLbgc%-`?>EO@JZh`2|=7`F<2>b#2$Dg3#7OsYsXWRnCr&ZM90 z__BgUzuCslOxjzB@ASbu=d37e_>=+YuDKh=48jr}2O3)9{u0rz?|_| zeBk&c?_Am2?+yUy1DB@lU5y;l6C<12B^HD|(`xc5sLyI77rz}+tDTJ9fBWw+$TGe< zEpIudy1f~c(j}TepD{1KQD5jMxZRs!+9(Ca7J;TSR&^lO6?ytYW4KMrp2 z-SnALdnN?>&t&<$HKp9>siVf>-GlDIYpPoB$cqo!qq3#b+NPmfPM>FMXcFK<<%(~ zv0*R4qe|O39vRSVi%W=SP`NXcB3>7*f13^SPO9NhjISkZPrOK2kUQU6v@Vic*d)Ed zRS(I)sr*rd+_9!*sQ^>WDPQH)Tl9FYG*Cb|XT@e=9Nf`@54O|>muzq+2=c>5WE6Zs z28%l5Qyk_2{4kkNZDBN7|H~T9xvR)x@{82-__xu%U6D3{T#$;3VkW|#ISKgB-4NlZ zl?`3~zFHUcg5Q5+*CQ=cKhOJU)vC{kMyp7rqAu;&`fKm$3X45_mZU}xy=r}G>)X4! zU=@G0I%JdDBnbHN>#dVt-{#8eTaPl-EcEL~aPJyKIljw^G_kzDwrT z9r0OJE)apVOx>qZDz&w?IILzYiQ*O%W?aiUo$>|%Jy65_A!GloBik-WZPSEH-Jiz2 zq9gIGCDmqescTSp>S!8=4d^)vHsQap1UY zNIu!^E2e#<{|3upLo2H+`hoJ^NTL7NrV9_N>fK~hFHs1jxpO0y^sTMj7aiV7#)jpi z#Oa$j>`RFK9~Tn--)olV?vR#P9aq%a+;r`_f?1?Ka{)H<;c@os%8cg`I5q{%82~>y zeKtsTwVNp9^u291TcG(laC6RC(ytE|r!GDMxybXwsP+lff2?=v?bkTdZNpL1Gm%Mn zgwRUOyQJH}V@kx#!nN#lkLP|mI-Rt1u>NidUA@Okl3tO{B4f)EyA}n0KJ!P?&8S6* z6@GR8>2(FY3x$tu<>1lr{_8f~Bd6VSbm}d7E&dX9z6&@``O2(oBe4#9P`VvNqOUrfiL%+im2L96&!9;K}m~nqrgvo>BBg;`aujKQov2s%7F`?SF(rmNH^Gh)~x*Qh|pY__3 z(-u~C^4E+_LSqG!zJGRdu45R1Otej_uv)6`>3JM`Bs z%-;=&$=ud*lKFo-C#xuDrH;;Rqh5qyz2QWmPZU@RO=@mQFw%lXR{-Z&il$m0xN6)l zt&gkEJYrSTlvz?uRwnGJj@Qp?=)y8`0B(T-d$wz+xldA_4zUIAM3!B=jnn}s+CtE2 z7EHe~U(F}AE1+WL)I3CL)F;8kTF`Egwv7G`sK>%a-fdWFw{hnjFipBwT|GD;!7NNL zwrKCJNnmKur}Gf)jDU(zgyq3o+|9b^TAWz-)ggbC1V1qe6aScdVg;CPBQJ)Imu)%$ zTX33eY^kur*-|$$>QPViNWU#!yXd&(@c{n`;tpX?+s$$fUC9@f$@aNKESy4c%n;dW z%cMpdRdkrVsApKX_u=Z$U!t>)Nm3oXWlX=XFE<@>gpzuPZ(gH$U!Mr7f7G3e%ITa$~Dzst$0c-Hf{SOn_PNEj&+>ePhpvDCA%icA+JQa z=$t6n=01SWy(+k$6V8Vth4u4#SEC+0w^vz7LP=Hp2 z^lq}l51Fh^5p+1GKAlFIR!5)+BG?v_J-A&}Yast5ElmqnrS5Ul)Vzhb!v z)vB?yE}{D`60b8GxQSpFE;T+1=6~sAWQa8n>`$>w71Aey7K#ml1ZVqTNuA#+N#Lj* z%tlmIwvA7D2n>zZqde~cSEtV(MoV)3=iMNWMsh|E@R2g_B=(1;FXlVYZx-7uqo+mnHStuAtv%0&15O{nXOQxE; z-0Y1#O3BSm_u_osCOlPRj%x>m<5{d1lWX_tve`&QFmF=^XirW%>g*Hmj*IcC{FD7uwgIZfK}GfcB~aSg(w7u;ggeVd9k{dz=8FV*vJ*kH^hla*qT3&nRR|V z>uh+bX@Bxi*U9tz!*W|*QYTFUsmSuZ_h-2LAAr@KNglmB&7X^=GD;I{>2}_DFdG3B zdA6grZM{FWA5i5T zx#?->elHbn{U~2YbPEPwe_cVT)||BFdQ8lsDg1VYrJ`OwHLTt~ne4l4&2NZaezxI$y^@VrF(QIz^m=|ZU5zhO|4d$h* zcVjVcfvmj@H~W_8lfw$~N>Nc_3*Z!XJB($W{$;UI!yJ$n_4iy&0ce}|%PEH$e`@bR zI}~Ik&0^Xffkdo1OeN1CWL4TI8L~%>`jx7`-=rw_*?N*lJ0oBuWUNfrq}ZxkYNs& zo3eSWa;A>%s9MnWB$f$IX?OfH78OT%5y^4&Yxr7*!VsHih_D~~q_HzX>2Q)fc*&N@!TAQd(1DbNoH17xvb!`?li z!5iRvnw4}t__*bM{B_2BCuej330wV9E5RZ9d>6p}ENZs1mQ>W(f=rP!ThEX6Em-_} zyr0|Rsnj%9nUl?nIfGT`TVqSFvu~Omd#`HO&)gbq9)E3@@k#Bb*Qn6TV?nDV^eh~g zCfvdyrxt(DsSFvQWqAFe3lK6dWP1c8!2Y|sk{MRDVofV46J`sinZ2xFua&IRd7U!w zD>Vot&eY~1U78hc85_1FiyiLXj)>#?^N)^ubw*q!-&oL5X>!iY$emGT^iaMj8Kqq^ zAnP8M6MvnVh}=Vyl0kEhLh{#Kwaruje4{?>d@f)eDaw434JL`TuJ=>jzm{96y#@E# znYOTL&_g#O)fszSx8Ht^P4+7CN_7n!D#u9Ceb;uU5#06 zDZ%h@xEduGTnz8m@*#a;NcEl%4z`jLiY$9=7d(v5`!NwoGZ!X^%va6g#uu6ZJbhJ) zne{9{-dj?5F-M9=0td(WDuodS8ZRweq=@9rgiKZf)bU{EsK$ zLoRj)2hW!G`*B{&Kug`O7USV!R0&hn>d;VYYd&8u|1E!Z;j`76wF~)C1Qg_-o>~QU z_tiu{DO?6>5gsVxe|BHXT@_=AFTL!Zk}<{=0rZIB`8e~FPQ!#coa?@GcnQvD@949n z$L1B2wfT%)Ry7;_7>l)?YdDt2zZ93cqES)13%G=aN+yBvG;^ zewmyt$pC>r-2?ccNA%|2zS_oGR2VDTvpo*hcr$@{my~g=oLW9FiJwZmVJ1O)c`b z><>RKb2Cwe&q7wn_z~E`l%ba6a`&z;lNLf&(D&-Wu zvO9Gs2no`_12QVwshcC&rAbG0XVoGTB6KmIO^HBEM|7##Arfmq6IUy{vz80LB>a^l z{WM>=nRpHjVvxDhGSx?h(Z!ZBZ|M+@JmGz_PDv4T)l3O#@|T1Gp&j~uKgaC z0LNeI(Z++u|5Z34KujUXl6Hi*h?j{UQlHb~hl|;(Vo4<_G;Qz~g;BlYt_H3my1M^! zX&XItZxdg`C!l@8Nq5gmZx3Iue5&%t5@6>d|DD5jO+;A5!32vhGKTj}(GvE|zx~hb zww~9SH!1N8^Qg4p|1r!62f%=!P?iwDSpvPFYxrVr*1>grm+0y0P2j5~UWfgJ*U3YPUO=A9bxFlA?#@5Hd%#f(uEXYbcu%Yi;`P@Ot)C}dzfB>KCS#z=*?_m z2a$CMTNC!2%GXPQ*Oum{Gv>@-0iNGle%k8#&llAFMFOsFsJKc5twL7w_UnZ7YtzjcJE%zGsNhRUJAUl{HYX0cU@z0g<)0oRspdI$IRC_9%bE}9Xz$p{6 zc`2NJ$4dy=&AFHiUOPE@eX)i8F5`m+<`15GPa&C8E){ICldNMXwiwYm9CjGqtYlp) zkNCDP#!A@pt0cPOUTp}r+!73I)mmbS2#QWUbsV!1xjcSS%;>c}_jMkv>37i}^BQ!| zW`)YjGT;&hEa5t@0tdkQ>9N)sAV|Da2QIoM{N0E+FlACG1OnUHyiBr3VOpk5aQ0_! z?gP;y@H-8m+Bh)|9N45pD#-u>=6e6mx z0>M8`A69m?DN2Iv#$Zk=2Kuf+gXnj9Yh#HYugC(ru5CatA|Vwj>t_d^wK!{eTnXxR zPe3sAqp98U<&gXDas_XTE69S+ITXW{k*d3pVTB2UIW8nO3I}L4Er0)U$}l>F{=8t8 zX%#dziE(OL9A%lF6{&M7z;-NtE@L883uYTwzKDm#Exf6*QYsmehS#}V>@_5<$3;5% zF11q1;ygY3cbXS}I4P`yXR4!HYs6%ZCg!YAobvsFgLUcEE!ZaC^>dl6OmGO+Ca`M} z%!`43Tngy{bTKcyc@0{)ahA8vJ%$cn`5WNTN4HQfGE>VbH?xSWmFs71@-gvWQxjhw zj1PAFy>qk&b^Wa^h<*#Co*Q9%%LwLT^Kio$pP6pnxl)@JBk8#%F4e-aX;3b zRcPJ~k*y%T9sL|1vnIr|iJ+wSjTMaNiDFvU^4B#J@lxKDq`-BMPh*_=cC)_*zaH7a zh<-U@oVzV)OQUSo<+fRyn!X2HZjDh>In(pq9k6Zrn1ejBMM1FvSbqZ;>3Z# z@o*_$!qix|8kO6d8lQ4wLbdDC4x9-&tZB8?@JZ!hOMLai_;ggK>om8L?vGwy20~r) zf20b$Iy&_fNT;g`8komCOW2f3#f$dwmSm37!q!=#>7i}c+qvT+@)Eio0V|?heFSUL zZb(l=_*t}nbrtewuxB}lFMK)#UaLz-@}x4tE*R}trus)YeSc{Z71{YLL1n`ANbOP# z*Ol0HI#bAEaWaW;iEv^zFy)YRHmY>&E!uUFv$cPazRj>XJlFuh#|qBX4(6wH4vyHJ zbqXsw4yc|XR5PbK>U7R9Iz zA0?a+2XJ}Vbt6RD>i$Hrl7wNK_hCRk*mz_qRTyHi!@NIa!ctl5tNhG&(#}vlxXf^R z{DVI%GM4IwN}>Stdlc29vMuPLxs8l`b&hMTYR6@C^sX3B#>Ai81G0$j-j6==l?}cv zafPHoqjM4|i68E|s5pTKish#J!2XDiMALCm@`S!YBO0%eV_k83R3?Ax?$pCVXGFrd zGchw2MVHPaAYh!yFb-XQ%A9$Txn*cfwf6(zMn_iHjg)qvRaE7>pH^-{of-Dtr>vai zApqjxuBkvc*k05>F}Yxv^X~rCr$$$^HT+{qxtihLU6$>fs4faSiNvF1N2jpnkiQy- zP+AAoyI#s_HHA6388A@92eJP0>B6&;V89-Ht)uA*Vw}7>+2~26EA`x`#W?Rraf@sU z57_pP8Ardd2D_g}ysgs9(Vr3DDPzm@heao(^O8$))CYRF{AOY;Oul7wQu-nn=*EdC zpmJARHJ7F&JWB-+EDZO-Bd&~NtDoGpDW^@SJo09C^EnvYkAuhn7M_KCq|!zufO+O! zAjcy;@1TUS@Y^saW|l}dmk(aqsz{7eccw#e(HO-DsL$m0Nn_F1nMdNGt(^t5uR5|T z1a_XvddV$WgZgN!@9TomG4l_iZYMkhS$_g_SBj z4jxrg=EMBuQ?tBn%K<{Q5QI5|-i|zaDnm>z;QI)vq<~Bz&`aQa)5mk|a}7kPgyprZ z#P=FV{24Ye7K$%HKdseH3FqW%DQotjo3Y48E0s`Km4xTIzZ%(4uEp^BRgcYEz@69i za;X7zzpvVSROzFJ6zBVHg-uH-aVH$AI+n4ug4Tc{oNOlbV?Q`p@c;boN}F)GXwbD= z2VkP~MHq~=>obpxiBB69>T`loOhiPP?${x06b&@(=Yb&6=^I}aCFV1Fvc%h3m+h-; zP;$Sxm(wSD;oW}_@C7k*rIp+5cY?)MM3C8>*6<|2fdNOVXoZJ7{=zUF5A$^BZ(P2J z^^+cj4X84D{W-VxUKHBRx!gbgnf;RLcTQ`4&)ee7{cOGv4EAxf%uHppx|x-amUqO9 zwfee*Flz@wO*1a4baV|`uWxXIRMNa`^=@-T7^-VgYDJVDju=~fDs%} zneJO@&(v|?tv1pHkdED-ox8-8^a;pjGCP`wOw#=7LvUfO#EZ&3Tm2svvH5^Voe|+V z!D~yGB2mZBMx%&XhA!2y>%zwmCzUmZ^lAQfj>ns(a)OxpR6~@tan;K%qGg?;KXRhP zm_}jQfD+S{Mqx_aGA7rVsl*dvEh89tHh4rb2-QlwirwE2&x-UZ?0&_TS1)kmsgIV{ zSAoTdP4*ED!4hBI@hS={L$fw-1Z8xAtg@Pzblf_&;v^At&dA9+iV|mXX`>n{a^@W+ z<$@of-VsGHOvF#Nm~5A3+VvwZr39qB_Cy4j6e~kQ&%u1;#MXayWk;b^-1mjA@Zy#) z41{y4GSSAyxERK4s}D_-XOK(6^+M29LyuLh{hr7@BnAB9rEQ8Yp<0AKjc`qCp>1XN z+6U2oXr zw7Ow&;lS;&a>RJ^@Ya<`w9MIKcy7p+;E= z&aBqrp%fh0l7irASdux9rxZTO-48C!*01^L=1w-_TBq!?Ueb5Zl z7?n>$%_6)_p5b+PY>_IygLr*Y%Po?s zEGd<0js)(i>>eLf+|H2R?@hZDXZ00WsubxJRfYVHpr| zj-km0KEjwwqS0NAv@)g$Ud7CsKiVJq)a<&KLQ55xH$mzgdN#fMdGkQYyh2d_q(N(3 zOp@bi1hI9r>*?TNz}+JAHhtKQ9z8`Hs{fj{{NmYGraRYM5r=fb$SeL5pj)?O)WtG6 zwVxe?jvN^;3(s{Xk1b>n^O{yXU(9jtdn!lDyE5bxDu*uu2;7l{*Qyn zFOrJH@nmKU7Xv_)s>8b*k#Vpyh#i%;oC7{FE&Gz=wLD@GK|TPLS`F|yOmZ?%ueOcv&Vioj0rp(8)h0HX!2kjlel{Y_R7u@8Nq!zL zxFCDK)mo+gWGW=$sPn1`#ra^g@$fQxcmIeoL1D!WDnMb@$9%DNsUsBIi2BrZ`hxDc zugKyQJjfFg`(+K*gPZ8a6n@BwiWiJU2Yq@0NI`eSUm~@Dawot0pQE@2Wdo?UCm(as zKP{YTf_-(OdGb5*+ze}goOfz?MDNn$26LHeo+x6gr%xtg3|AT`Jdz{5PJIzz%1u24 zcX!o~A=tEciVvcv%i~ihH;oVnu>mdxyyY+kDwh*rqZ4yIOlg_Uu3!zmt_hfUa*n~t zMFaM`+>h31mA=WtJO3isP05tm*T!I$bJf}{!#S{ucY&De@9jZP0uH0Z#p=>gPYy9X(Pc2?H zDymm1W`%}y&trhNzN9^pkg3Yw0@~O$0VKI2^B0I^cb?DCN5(5`{;H4tPcQ{U>4g0p z`R!6?{(*cU85ykHdl?;2Bi48S*N3$-b31gj|F!VsXD%RZhO*>Y_wp<;&m}v<&>oGIgoHwHEH%G+k&cGm-G&t{sphbJ|$IB|QvFdB3ub zl|}(U0F-W5Ja&)GL+)U`Gr+x1T-F48!T*m_QF}cY#Fz%H^OgauIT@FGKy^dEGJKU1 z>!7(5q!Wf)!*G4hp}0IaZ>kc+nxk9<9HJe&MdMMrv&J^EH6tgV7hE9a!>%%Og~sXo zAF1cXkJLY-TIU+=GF*>i?Ce#yPrkrg1LrH{Kmf7Gsh-)omjuX2>-C^;B4u3UYP)ZXw{kVkMFGd+W0Qq!5o5xqcS5)^~h2))yM# zQ#G$)WFP*=r)N~w_ZxnIKQi-Eq4+}3x)v4HUST$<(>sc4mXD<&Xy5H}tZR^yG|#W( zqht=ZOg>859Qf7AWUjyq;jMhWKQ4y8AvUJ)#}+|DKmzg|#AKncK$@rn_C#F(c~AF~ zMbfxG+!V|?8D>>YM>6JJ;hdf8PsYs!_A%f5z$ng4^VruKCFu)5HkK7|Q}R~lAg$7e z+xiaaJ&u(n>b{0eMk7)R=T>Dh3rn9edD#Xtjb&JxOdr%3CGvNFZ#;Z^Kt+%C-H7fS zf2Si|rDQa1TsMG^8WfVYiX;4P{RJDOGb&w9UzamK8UT^`aZZU#VmJ>r8+(yUPa- z4o^MrdescO7DN>S$@rZa%kFZvN(S2kT9(}l$L&(VsP7qdiKg$XCvu`8k26MEfm7q&ZUvzAe#OwzkwNtSk6K-VJ+B(%!8c}$+N#X%kgHFq#z_vge;^W zBoT7y9RF5D>|)3Jw?+==3$R?H$a-z79Z$+Tnn}4@8uv{%E>d6H1*qd?NndAv`a}6A zkU)1LA7-APpC~~k%iV*YkE>5M0($>ADgb9QjKd4%7B}+^?IO35R~8k|q;|PKj0ynUW8(fI0nd78>vTeysZeu*-As4O z^zp*{H^^4O;X2S!DF*U?!^xYTGYNB{J5Y?_SKs{+;HNvBC7x8^0pXb{!K+4Ypn)kw zbyG6@Ci~>5NO4x3Tj7rR&s; zEH)~sO5`BYcAleqf0IL0E}b5CY{h8*xmU}Oy5@1n2X`$YzPO$wOFb52BInMIud znH!=UIC_G@1l4l=nV+weV4+vRz;*cZDEC~L_eyuE+2v0&j5Kho&6J6!q7XFSEHzW( zLJiz_`cMU?KU3wPNw>^q?otC-9{~fei+sFmO$lhOQ4D`wScQavW}X0lh4Z+{07MBQ z1N_~V{QNNTN$t^7{Qcr0^i(D1zlWdTDH71Ct4)^)SPPxHQvrAx!O>gMI_E*bt$$-r z6aO!6+&PbZBxkCc@oa^Bo+vR{N0Qe807M`Zat$gjcd=bP{f2~9vbTd$A8G5q@qn1bK}n8JHhnSJzpcAa?%@Q(rFTW*u3ziXMw|LqNLi5(KJu0dsX>N)ATO3iC| z5FYi?_-XOGxxMiIrX*|dMz&?v9ht9rXhw05*<^mpdauvM7JvNzt48j-WF_6;9Tcj6 zP-eGz`|nrXa)qHO`P2MVk3M2~@3;Yk1w15ZCrv5Rt^1;JEyb;>dPu$r8`LcpcGkh> zcy)Dkys4Bb;W@~H=%dz^72bf`dQYz*>|(!2?#A2`IcXV6{z5}mJ(w;d0Y3Qs*k}DZ zzFv?jMA&n6x{ygm1C-CwZ`^5_l&1yRMb92F7x@fIJq81sL-lk%D;=m%dHFe`PK)nj zyner%iR7wzF5GUe(QleE zbno44(5JhcvdDV_@i&;M`a0F)qXind0tSsaLN8al`5~x{T@o`p_`A> zKI4G_0m~kHnvFn8{P`~OIKZ-+0j(#x%>E3Tj2yYF_P+)-trxrc!w8i<=*1Yu2g<2} z@+v+ht5$(#V6#D~KL~q(|1;ss)rOivUpj9&6?=E~C)N~j*%BbO`#IkGUfL$#Ayg|p z{_O9*3%}U0Y;sJ$aSKpfsc9ugfL4Sbw{5V_b%j`1syL`P4jDlahJ?Q=1gbasG%Re0 zXs}Dh+q>-DqdzoJZ`6?3@}`}>^d>V#FVSedm9yw2GDvf4pz)@#FgkA{;)7&4A1MRRB3H@{ z8ieMIShU{X(&|A*U#*xU)7DT(IY`N@jVjl7S?UKml@^`vvzlnKhHr=pRUTQkQKe6r z3e{-wxd-+0*NqoQGy4uJHVkf`w&JcZ&5c^gxvzM>$69`JKa$kE7jv>-g$&Ei3RjVK$_LQxI=muS?Q zfRlIloh^MrAaWU8A)f%C_+af8cD|alj;u2`6svvJ@o^T(Ty_oWR?*_GHxoFYzWw6$ zgpmokG$vFVDvH)XioINgYSWAII4pSGH zeKVLm>e&Oz0FnoASA#@KNyeyW&?%P(AjI&${f-gbrz6vzsmYxS&)t~z2TC`ir;qUu zzvKe^Il@X2D!Ck?xE@tzKju%KejV=xb0dG>Q|t8Bx~Me~_TWvmsm`PRppVxFaqHjb zG}2-KPJV`pN}esgtLC?W{Y8HGC#nJfsETN)0`|-@)gQlq-^`==#(%ZFr*&F|;da=| z^9CpyfVOxydg+^h*j~_$Md@Udm*oV1aRCJ3$zY-|A`Fvk_EwV(M?(}*}XO* z;N2>R{@3VdkKa72sLhn{v@S>MHFeXtNGz(W#rQHx`u@v~pB6kaY@?d#$!D3tpYDH! zYxUh6wVbIsoqi5%$|_(kv1$HrNFmb=!T;YqWnY6%S39js!%9pl25ZUwsUj4Bu?Cnh z=ppEzu^5#Yua?&V=xN#HLG@qJsJ+}5;BqqOf4`EX^G@b-S*+s?fqte(nqdI6(z1&O zv+~5F=_F$2efI+0O!-2Pr2^=GRs}Q(pv7ZEQOkA}urmY}65hj7gjhtEGf&ai&vWSz;PO_=V3Z9PEf+7ZSh*s?Jtar9i z8&wn?)76$qYYM-44Hp7t_MVd-U=&#^9DI?P1)zU@if|o#NC!~E$tlfSRTIw=00;lH zDqTtb|FHMoQB7^#+bD|lNKaEqy`A(&K>kU=lzX4?jQHNP3X%s`@}9RLSVCb9I% z3R&OPBkML*Q)xrg?7|UpTA(ZXra=X%HVai6Z|+uAT+ONaI^C3j*~%*yaQ9} zE3nn=vM8bQ+;J~AZ2xN8&u{GL zOG}<)mwo&S(YKD9TgnH~Nqv}*GvKB^q-KV%?*o8-IyB(!eBvWqENoYzM}Op+6-p9h zQi(?b=f~k>YSOyBx-w(6E{W^P1I%3VmUt2&YW}$dIchE&Vov?RFQo}58+3&TFu;hy z?=L`Y_=8BxGoKwrVm0SYfBi0V;IACh`^a;q%{;XTnyL$X7k!*tvqO7v%!2{w5EioMeQ z!U%s$;Ejk^i(HpPti}U%apYF_Lv8;K|0Kd8Ak%`_`OkS0Uwc(%TI35WsMVwxh=-X@ zOKphRET!kIu`=7X;0%zoG}|5IpM>A|fs z(wh9Z6%a0Yk(`b%o`|oD5+Gv)ApB2rYOXy$pDO&4;c_5Uujv$|g$_Q8JM&>H*n$)a zrb32LA`DS>yeMEZEaesin3{yNh!^AP%IA1eo)JJsd)ax`xyA$HGduGV=cZ!umv_Vh zqD2ml|z`ip~LZgApCt|YQ!e;?d6NK52ErGh4%QiR9s@H?eg8LY;r4Yb=KYON*^PT zyR2yk`Yw%M$e&|gh%Nb3nr+Mev&Jbq>Uj9}i&*pM@`-HY+f;cZTk4O<4Sz&tH@>JW zKDWcke(uZ}&j)dF_2l>Gy*14$XlFimzgm6H#uVz~CGK81PjsqNjG6-9;OkmBRiCjU z$=ooVILstRQ)On0OS-xSD@|;*tnr{vl+spcz{zA4bUBblGD>>`occmIRO0c{Y~fh^ zW|f2vX*zH!A6+Lm#DGgK^#WHzTbZc2!2*?h0T9g4q2otyk>mNkzKtTy_VFyW-Q zRbSQCI3ukt?Aj{5f_jkH2h0oYdUR*Mg0*twU_-3$Jhg8v_x&Ai0mb*V=w!kj2-pj= zDXJa=C#+qZ)4GB*?b=0DJ)g}?H_Q4S&w#+R(2H6{^Ld|PS>fYd4Oh)*9S0;NoAw>Z zgh{$gn%_V~hTSE4{*ab3WURH)9W`i)^7fHF!D}nD42iA%sg79>Q{nUo6xRFka(|o(X|SvGAij7>7k~K)U4-0y;U+T?dC@DZ*O)(37v6uyEnX5Wq>fTz-fCgjU*(=`X(&K&~lO)HR;t3 zqO;j+CE_d;z}}hJ!XxqKuHT((pRTUK1rLpRMGNs}w!}29>{&(YnLf6cQQ(4|yyPDU zp>M_g4G*O^JklwA&Og&_bLl@z@3!qnZy987 zlgs7FED33XEqWDl4q{3q8~Xf&ZiP!cXh0m7{hQ8)GhgNu$*r9JFi@P9u-j{Dpl(2{ zS@UQM+LZ{(o9e|bZZQqh4zBHC(?KhxeZl4(bIVJV+`7QAh^pNvy;GH9eP+R$wVn?W zq92l6KCJAqJ2V`k-4(07YFZ@!n#{$MH&i7TFmU4eLhqne*tLN^Ppga_@fB-enkGg- z(Sa5jpyt=w)J5(<=hkhH2wFKdefb&Iq93T3oqqs#ljNx~-`A z{Y9{EU`Cx~9=3g&d-i@%3_B6xXeF$34D&q#e?+!;OTNfhvRn0cddnWZ@G8{w_M|*G z4jB_!HYU0Ja~e`Y`}#XeT+Ba>7|2##*eGnq`DEHklt+-$oFeY& zo@c?VFP*pma6NJEQ!>So|SK+R7^>(FE-i|Lkqg5Lha1vT2k` zx19aLC9E`S$(z2GXLy=zE{dIrXs60~<9a?r`(3{hg`G zz6iD?@@>6Ja`Z^6uC3Xr8Iz96O4QREr*HBs`VTyNXq?r2r$omjrS~2sX=Hc5X;r}7 zN2jFe@pyJUPs3!ht=qiPqmJ&jtX8hw!X^;3=b$##4QJzgO6G@-$(!^`3k#k-lI~$ePZzL@#ENMW?Vqm5PY0TR`1Mq6foVbKHmK1nA6|Lbswxh!quOcu z!h)cK5@Tp3afet%C9wB`G+dl-COHKlrr?G-1`Ji$V(|MIjtPdJ#h&8YqOylCs$DIq z_`RKGt=RrnBKz=w$`=cPfeVk8MOs&`>hb8&blkSkcKCt4r`+q8nVZV) z&gydRl6lRi5`5zmrYDXJSB#3i@7EWl=$xoKexSY5#C&ZsVwI2+eU%@ZMTXGm4=r-t zYy-));!SR}N}4L+<|%qzPP%eTb}KE)eee8;V9|@Fz5k5FnOO8PTQzvuPtFwayT*h< zG=09BSf-DO&(PV7ZTYA|vXWT+*9Ce4}gg{|%?>*XQhsaF(!8ubsg%1x(Z?*hq&j=O?UG7c3 z{LwDcB{`~oJj#OLv*$xzs04nG5Ur7zRjGVjkZ%LDQIe%$pL41l(=y9)N&Iu1{xK(F z#p-tI(tY}15hqc=_H(ctg**}Q{11OK1Ac=W18cr0T)Odml%xEAPRtTWw+I1c>V(F!bw zijs5Z*^ZkDU&R~#RC1zCkW4!2Wb<2-7KT*_H$7NlG>!@@v|r(KF>pok)>{Z{6ls4< z?>@&SB6skKKh8Ak!FwzKjIvzGGn`Em3UyXui(YBBb#ASz_*mm5!|L%s=HgQ>^IpRoYM5(Q2Bf`7%m2;uIHg+=nqu%f?*XDpB?N=viO4 zdkdxAK_yx2X?mMge{QIYn?zg;)RUO?v{J8_vdg*F+*g*iz zv6;DHc34XpS}v@uuApf_^Ii69=tFjU6s?6zJnW3LQm=MX9W5BAhgyc>ez>44X3&>} z7aFJ{FFF659dI?MuX=^6Ypc|?a)2Ucxj-&f6NvG7vv-Bvi#BZvv$K@myOt!1>m(;Z zamxA)CE`u%K0oZ$v~^2JxUns_E?8zT*vh4WzhRdq!LXUJpcST5UHX2BeUw`q0+GZl zvv~ydTY57$G>C_En~3Ae>igxmhuB<>5#?caG-GyvaWZ54+s}`AZJSx1!3%h6F8Z|= zI}!L5-w)wI7ilN%eiL{V47EBPJ#R(^{7zLLmWX#9q7aK(?RN5y8eW5yZ6-%|o#jcJ z<)lzurnB;Fo@!~VZ{OE|2&}7SWOL-sen?i>s-{RXm>t)2Oe}INH+a%&oePo*D3C0INc?Vly1~=q}UQvn0@9)h*t0vEXdoJRzBaXc=pf_m9RnT75jN}}rle~lW(@wks)n#Zp z+b%<9}y)#EQkVn!2xJj~>A5M6j1`k;F81z3H5|yx^6kP0F%&<1S72AE?dkz?ST1eUP84U!7$y#u5{B z_ZsJATen9R%3N4{>ydtkWYLc^kRIoo<8UNZ%E!CceST&^;zJL?@5U=+-rZRU#BjmU zNHf!P>upr7yW6+udf}fG_P+hQ@ zrN|i>E2mpH*G1n6;uo$Q)MXK>ymhG{7H@XG9AY5Bi})hAgwx*kH9>)E}kkKOx5}5b@VG3e#^Pelpud9!h))|G0ff z(ez{vA@;^aSKoV`27~zxVh4#rx~o@JTWq2CWvn(o;VO^xFoj=&hINcMe{Q;pSUJg5PaeRVj_fc0b5jiIOgpwgqHpy}V|5dw}S>H&S*O9~Qc0`R$hrM&8HBH&I+q6izF>=Sja(T5qC!2CxZEJXXgXt3k z#4ME~%GQOjXok(%PzBNTAXn3K=%lf7413Q2Jw|8?cESb~)+>u!E^v@dF0#I2uu`d+ zFRo8&xqGX2JnGh&Gfj417!cwjn~3VOaI>v|#e!S}mHXM{c4);*7EQ!`;%)C%b|ETE z@y#VP@fa9S+kfSw3)QZ&yf~9OX4O8gMON%*pIRlJsoN~)BuS91&%?WI&tw&OioJ6> zsQ&$#&q57SD{|dFB$uAVy<~j4EYSfTlHiq>X{85NdqlK?%IIs{Jj=r+$&--Gc6AqO zFedxx$we`cmic_>;JNKK$DEJtbebGoXl7T45!bHXo6J=&9qOR1q{}&lvo*SLOX<)X z9nSeduP9spL9g+N$A{l+>&NXmhOr8{s}smsZEKxiY_yVCY^LER?GnXxBXG?JB_7*J zmaua=(fNQPa2%M9(Ba(-Uh38U-#>mY!T;(mprvnB0c8TgA6O!KiWa&&83!apt;)iAbw=-6hJdUh2!T)kbmkTu*^aV?7uPOqie@70v|z(|>O z%%!M!WaQ2_-j`Ubo<}G{Eg(GG5aSE!n4@IK4~-(g-)nxnt6Ir!r3EgYC$dq*cB2Rw zA5ZIv9^XF84$c{vJU@*-{Mb6OJPl~X*SYhc4jErvfk{)l!J_G!e;aCwL%XyrB_c@! zRd$tg6B=wHpwOCF2Axal>)h&chZp+DY-&R8he~{D^Qy_e_T^Puxi=+JDJdAZ#(&@b zrB515jP&Fh(J9v(kaiE`G>vF8ErIU;y1ok+b3>A%lUhTJ=)p14zy2^$$tI%QbG^NW z)^7I|kH|Bcb!zTkBWw1DD?!9q7;Fc>GTpi%=7Kt&x#7d3gTRyh`|B`nf>of4ap65P zZF%^pG#j)2s~zsM!nFU)4QdYh%Ko|ZCXtnT^nb2;uzyr}QXZaYjpsJ^XP21uaUSW= zPJ}7`eF3WoLea3|5m!A{pAXBE(F%_Vn+@3eRy2Km_2U)$JF5bH<^06>^zL3GmAJru zT3xh9_7lgiF-SYrcmSG1{aA(vw8MMQ4~*~qrFTzWX(t=AG`yj;!nV$ERuP z_Ne@oYt=*OMbmmrIuLj~)U_MNaOm1?A!X?VsE(o7vqBbjI4_5}p)X{u2NLv7ORRVV zaTzPW0-jbNY>IuerzO6OxdDy|{hF;$BQUk+JGhRxnjVf0wf(u=HfAg_KR~C#$1;j= zy51ZSI&{cNohwpwZfY)L)+aqk5)WQ@n(f4kF9mJIz>2r ziSMmkk_Cd{xTUezy6Q$+i&uJbJN?ht$C>s0Kra}j zGyBNIs>>f}Vl~8ljU}H+QTe3iB@vH8Sn6!Ioyz@Xep4uWpaSa@18I|ot_8NGX_EXQ zeGugoaQoIK)yt;;T=uX4bAxrr%9owzZYH$y?9Z$n$;=l&A#DxEE`$uHdpyS)SDnqx z;~E5HZ5_G*qPZX6?uhdfZg#fJg0hJ!qINx-9t1)iS6|j9I7n6(_-wh zJ6Lv=V=Wy(T6IOPW#)w`4Cb6fBCqG3Jrz9<%09DU+bL(3U z*hcpJEBoS4*N)!+DNTmpW#t|?)zC81=Xx+KNJi={X(hlG2lu2+fys~}jz$bC=HpJf z$=)lWBhvs7Y^L#Z8k{Ogd&a|gFQTZ?Ky{W?q@NhC;|X-GwM)PTt0G3VBDSs?O)nn^ zX^^)rbAOthDxk=i3+E9U!@AXgx(&_?Vh4Z!_`L-G?{`5<_tap6Iu*CJiUTiV+0iiq zQXMq)0K>DJJ0t1%_mBm{A|B1F>+0hb3gqvlu3ejHH`1P~df`4h`YFRTe-1vzSvn5= zda44|)qN+I3BbabcHA9=WD3 z0X)Is?gBOu-);~6zFmk^@8C5(@A1z3$;+zTBHW^C7dq;XL|6#eoW$7v^M!r9?m@I3 z-&7|IHcL>Up7Xwiuoeg!GJFQ>qjg2w_xB6ppl&4en+!DVSF%U)JWCa%-5ca zw^)Njgn;+ybjV2}n&{iFp^Od$Ick)zZw|6X$yWY2W}K}1}2O$tHg6?eCEM zv<8`IjXT5?U@@tPMH7^&KNknMi0S%byTao6hi->xsdMeA|X4t5~!~jEL%Ie=xi1 zU~c@#2rxl(x;?E1NQAn$N~cCC-ASBVVU2ixRPIM_xwjJ;Xuz>x>nTyqsaoDt6Kixa zofC1f9zBQSHi~$NxUcpiFezhlVQLVqc!yhD=GyIuIR9z%?JB$nOOywN%`B490#6TU zF1D>AQmnTgLzc5MjBt38NuK+IEmK$EAy%AR*xu5|nqZnGWS_$Q3p#_mk;EZTYJ3xR z1Pd=iau~PPs8t-vF|LmUVc<=E7>ajaF^_9qpO?!64g9`ch}K1x^4k5u97W~?6R!It2Eb`?;UZ-{0ekeQ#_4$JKl zRXTqKJ4xWvr)tf2+UlBfLlwZ!9b`9BTU#2NIId zofn}bzF#T$RvSwRMCOIrqF>5bS~R3^kh@nyQoo<{H0*C~LDW@Km+&my8XtS46#Hyd zse~CyE{?zN6du&lBuiG_+)}jo?)XL!8$WgM?F=-R>R0ifzCwmwDm%Gj_X*4d_5w?c zS&%mDRmCKF=wQdo^Qj;Td@7h-wJ;E+Yd$FG8=A;AY$%ry1l&Rep7=WUDEQZ4DORGU zoWwrlmIA2TCvWavBz6u;%&R!cc!cXr!&B)JJxgBF44mh4Q68o#N%x0W9d<4Mo;4tr zuOUHD8peM+2h7~u3f#BD0Rye|vTheekZbAhlq*Ywx7WD+WG^%3RDE>VvkErD*N+lA3PnId%xkrY z&bx+R<$zoWJK$^tmrp87ZEK{y5prJ!aMHtT>uH`}YnNhsM)o;i#Xc}LN239H2-bNM zED5S!Bd0%oRjC)cd|N{*mf0SXF2pukR6C@+@X}No7%%?fuo!F6y)oid%hSztqTsCm z2<?Jp@!3vVMe`LnY3Ht3Wo#7`k;+1&VoY*2*Pd zeRi+U|K|wp)BLltQ*U<)D)b$M9ecWE(t*`7v;1F|sR$kXa4>f~ZQ&jzAT4<5JL(C) zesfHP(ffZ7CU-(U^|lVn=yGooiluA0v{N0`{rr!|=KzzhTS>@soiM%clmsz@iF3Rl zl8wmlN$_Az*vW8G%eD3|%)wc50R}spl133tQ*>Me>_4o5U{yc-}0t5N! z>#l!|>>?0e6CKfrlbu0$!D5&7{U`2wPxZ|DQ*4wcq^WvkWhcik_YPdRx9se(=7(=B zXD^0$!nlYqa&C(XR6QW}BO91jkP1B)T$szEl8MeK%yx}o)6Y3Y-bqsh;|jXJtW3>aDN46!AeVB!7cVh=5m!usFWdk5*$ zkD7leaq|l--3t6?d^uDa5Y_y1kPkIBF1<(V4RmwZwrx647&Pj735amB6VDG~8mElh zp>ic2DUi25Eer0X?=01hHrH-mf68CjL~J0BQ`avWoG-5QM4Vx;4MbI1mVy!SjFM}# zrXkAz1V;3kGJ9FqgL6dwY|J&BtJo_q|5Wrb&HkKowl-C~m?N=B-@kzq{Tp^$B1{zdYPHT(y!W1Z&{%J-HB>NY@eW@YqAjgEH zrJ{)Ip8c_!d&1mGKpJq`1LX*z-!|D(p$?{wQo<|Gv{g)_vu9LsL!^cHi|(P4Kv=+i z{p`6_^Oro*+4p){8j((^?_TNztJB9woXz7AAto2ofWl)7Qc*Vypl;oc!vNUj9PT>O z{SOo7U#~FygY{UA%~u*FLQ|G_=7o@ci$dds5_q(0(9VOOWibe+Lw{3iwG)XFjkP27 z#r&TwkTf=m6fQ8l&h=B9V584Q2_7X^ZK)T%JfgFBj%{mUwe@*vYPcDfi_NFQpnLz0 z1g{_~3U&h`_}lFF_PU5Y`F$UraGk&dDb@w@kg1$7C@;yN_Zq?GuT z3XGC((kQE#`)Xbh)??NBuTeYAfQH9gIm?;Uobes}D+Qt3Q)kF{0hgjCs!Ix#LVtd+ z%n4Fma?OegN>X21w+a2`zi2L?;9f3v+(JgP_D+(!^lCgvxTPr&O@uPGK;!aZI z5rahIkmJ}zILC(Y9yKAPUr}OBkv#(6CKM37To^DnHW0i!UTG*`Y*#;AYr!p<1Q0MA z(yJ!M+Aoja*}8+a-Mxd+0`^Cr5&%pUzaN+3FVVuv{Io=J=pew2$!;h`U-d>=I7p=H5cc>3*CGfMbX$wD}0q zUt>hoBj=Mhip(J`FqoE0ThZ{^FQ?oc1nGJPZHNS;|MmC(2Qlgx(hLll5YoctXr@9ClI9`HJ$%24-S?ATAu9qVr3eu`@4ypBAiknjf*b3hkN5*}8!24Agyz;DY*`p!2-*n5O=9xjS$jh&2mo|zS ztf;~clYRuUmjQuELBU+hiV`YS&UTlzdgQ`Y`fXv?Q6~x@?#XH&ye4gS1^w_waJV&g z@bR?958=9{If^>)4uPNS5)_^!%r5Bw9a*YdEGn;|m)Lrrt!JvIpAJ{$X4op7>A;kF@+?wwJMIMnOVdAL56!ZY zG={WX3mc1>~5=N#W$Cz?|7t zv9Otgxs?TeZ}!{G*S5qir?{Z7r?w6TU_fL$Ne`z6cD95gVZua76V+p9`uUcl9}M2T zE7IN%vG{W(5M1ZX#NrzG7NDeQwu=A!=*%2PQ`qXl^Ku%|P`RgrM$EerY&8Dn9$SE1 zXml0l^n<&Co%%JOOL8(N9@7{0Y5pCXRe8!`{QG^U09xwok~Fco+3%Qi?gF5{B}^1; zXQ0uE{`(Z#c-Q%&o`-BbW-T${c+L3G6Xy9tQnL32zv^**wf%Z#yzcYs*c<*W!QoYs zo@j{AWh2Qg1BFiJ8GLltS}p#mMMcWsDw670^8TqtwV}$jP>@>R!yK^iwM=<5q8DD1 zK)b|QGBfwS$VFx+J#f|vAGUUDL(GDrMyWvI#_6Lr`hw}6CK};$NhO*bXbc$kWd{Wl@}S+2R7UY>fw;BJlk;< ztm#2aAV>=M$GQ8^G|PMw{hJ&dE?R1%nr-xdhQ%4y>jXORi*iqP+82JR#5zdtbGW_5 ze`)0yv%c65YXnrU9PqSEUeMLVJr*1tDR+Jlih4k?%}cf4d7}Rz2ze}plVe88(@J!F zTQJ`b?c1qqE(~$~Bm}Iox-Q8Yyb`R-*sKG+w$;`t4+}nerlgfbUxzKbn1OjY@oOjt zkrgt|tRkQSg0w_47MBiB9SlgZ_*_|nmEKEiW2u5QO2`stDNnOcN0(#^?PYzs7|f9V z6x6Zu#aX349;nre_s70JEL**R>YK|C+C!Kv;wm4!nPj1S+FaN}!wn<+Y+{L_v!*nq z8wt`bJRH?-rP#KAva!)6$^Tpu#yI%aMkrIwAv1FcAGAN%Wv*tpC8 zNy*t7xrhYS2ULOct6r8Royc+wn$39gOb(UXpqfquw;KOlwg+l94D zVBa!5vsG>1UOUGj!;9&Fr88W2%LyOon*r_Vfw2HMsx*eVi$_$@gC@zj4ZU3c2b!dW zk7zB8W}*p0!#k#4dx>Qqx(dmS3(+Ghx4G;BJwG1)^QheSxxQe!%T$*FO-4xf=2>~WP@zebkoKV!e7V^-~(C(PRm+kIBv!C?q?B&O- zBn(S?e9WzdJ!ai7o8z{Yzxbp_N)rs54|F6MU6o5Wg5pQzC1S*3w~vy~n_cgLsW%Nhif(GV|4^!fhJRYUYp*_$E7XJc*YJnaX<=L{LQzXkQN zX}@HaNYrxVRNg1~TxNaegv503ok+um0gzDY&=iP*_WjlVGb7dI2!K({yhg$gLO3Qf z_U;)NMVGrXh+}E_+`UOeSjk!H+A--(5t)A`7lU~J;24VaWT9lR3trJCA11ebvHVAW z7`KnLI;d-W7h3=%lox6wUF!;ynAd5dy6u#C6e_`XG|WykI>Tl0qVseT<-hK6P7#uc zP@2AU4M`$Y6G+FR7H(;j%4hq4x|;Z5e^@s#S1i=~um^_r2~LR(UU+!Q@{eTukzhaI zu#uswKia!w2MXYSKWs!B*}jemRA-Hs9CHIw8)G7#Y)~&(f_1$IZ*KH0@a*pfnJP=uSA>k5?&slcuCduKKpm^Ci>qeQ; z9;}o8>5mUPe62e+?VN}()ry+`HFjX%ZQNRmjYLYxHhEvc4tN z-SME_3~3<8Q*I-%wFf?ojho;5=inz9r|cjM-Uf~enowJ`>cM6?$SUGdpo1}w82yC)yY7*jq72iwGFR>q+o(YDdt=n@9%1El(5CVR=>OhFnAab(n%UEa{aZ;Qd z`wO6&hYuYBC1fnhD6aM8`gup-mtZo-M)WII7QCpBYfxf$J>EZa+|tZ2 zG1Bu4jCc(Memtn!erfI!y~G_n{Lq>Wq(1zF=mF5fOuBY-Et8-LgLzRpg7I|C%{U8Y zyxYsQ=5L07++!^t!*1+ZVYq$@P;8S3>BOkrE6$A6JU4JNt=l!3@t91cs0aC_e zH--H36hFv*L#&q{kiZqV&twXzw&}oBGdd-Yhi*MYU_0dI7+Iw@?QO^aHHjm0a^bNw zkwEt$r#lg?)`PQ&-BwDBLvdQoy$|A2r+%f=(&9Udakm+_OPFQM?T>Zk;MLvh%0Wa7 z_&RVr_kL{fM8x4;@o!Qz{HObzP^V5}gy)8$SLn3TG=5$bs}2S)S*2C0_d4Ihp|?x{ z3iwIo`)gCQL#iDzTc3qZf=i3OL6=H5lJ4s&a%}&2RVVE9k{Fy81;#mlo(J-biB*tC zhtSf)(UK^ZwgoD1bg37l1tQQ#2f{zA6ev#apsRDLU%H+|P)=3z4mT^2U}8GfaO#B4 zg;y0#b~lye0(WnC*lCaIIDbOMo9D@#R{BDY#K&-aa0izacm_e}BL?mb)KkBI{9c0p zPj^8t5Huhani%iK7P^nLBxd+rLL_(HvLf2SmD$6e<+JgIW5DSioJ6Xfou#3H6;$V6 zm#G*pcn4+9kwnKb_ixAS!Bf<&yaO88y2I_#dfM1N@|%3@<9mLt3O;3J^Jk86CEiN@Yz%-k77+nJ`Kpi>&YIDi|gW);!eyMx!Mv*nk zU$rM&8I7MZg11BW4w=bMd;3kbXP$7j0n&Ma5g`y zd zSlA*d^>bitX~jZoRUloc#%=z;uV-eLM+$JNaYz>ksAg929=l*2xZCbJbX$@@hae*O zX6tHj36q{l`_qF8yg>2k+hVL?j&kj8Lcy=(q}n_vp z=E>kK9CpG^o|~CRvbYkPq|7${5oTv_XaxJdXz5qAeebS*Kn@f-9ptACJ3D7K2ZWK$L)10O}};0-)pd-s8#W_96m zK=|-ph`LKj59zusmp-fo7XY%)cd-8pFTCe+Q=si^ZN#5bRSi|FUuto~l_w5L`~K=I zz(ZH5?X!(|50wo|R#E%5FD~60dVA6fTLW-ZVV-I4ylJ>jh*)K9wQ#=4Q7gS|PD{Sy zoyL`qe@r!q3ryIk22bKbqF7-F>W5gKqb)GtoU~ z1-*>OFs~cN)xim1oNPm4dnx{BkNjDa53SiUS|3{lyku7@5Ij0urMBm=V98hQq5jKQ zXys&*3;TaVY|Lk8g~L1DP- z5Ww;zr9zQiBU%DCjK^|JpK*B9x0Z}f4X8EmqwHxO(FH5{9o5)nNFGeV9A~@{KdAJR<+F+Cbqt?Rh zEIA(vY=KUO8VKEC%!`sdx7vba$!$=Mr-Eg}mh>hC^1r)bgg}a(99C;XPq@OPBBmKo zgg-{NAEK2!{MD?W0YV*6vw6=WL|3xcPonGP54n%djG?*gH|JE-^W44YN9<%*B+MeF zfTh#|3>E9l%56~r;<`_c+sWsCLW=)|w}R81)_`!$GfBlfAL=|_VP$Gx{;{Z}iEH{bDb@~51L8@3oB z5CpvB!Ulir_uB1NIi+W<&eP9Hd{$HfQGfb<9pS4{-nw@ynrfW6iAC0CsPH!og8nKb1;fK_0LE;p#zDr z*Yd&?D$f(LE*Thmpn5>O6l=j7w%k1emBQ(1p6fiY&a>cTRbp~<}oZJIpww=h%%zA-Ad(d>hn*0`uKWE{#}QM``kDZ|FdW0 z9OP>%mES&T)gvhhM0W{bF%u^q+A!;<=^mN9Uu@{_cKfi@MtJ|R^`sXh0&WHsoF*N4 z)Jc14#!Ii_RG*WeH8=_t$=0tI=<*s|oGyr$j^9wXMy(Cj&KwtLxBH2)e19h4Zgx87 zn+dSgs6@&WhM8BO;prDfcupv}d)2fiAK}D^|AP~QmmDK=g*P+A8!J!=C8`s^?a;4H z+f|qq-PeZ3TXELYRqxhEz_(v?I0W}zW3J*<)#hK--=OG#y81WTF^`pTA;q^!ztnQ#TD6k%U`tw%T60-nd)fNw z@u(A%nsU>KuU1T#uMNb{{i?f!*U{DHMBA;bt@N#VuZiIbte|NNI=A?c&37T?eg}>% ztgYpyCs!5KgY)rAYze0;LIq;5xQ z*SuH$`0@N}`vAKDl0A;B@s@?`@MbctxA<1Ti@)BW$tgGpT5Pa2psBF7*r|>4NUa+z zzlR&!_BoZr8Z#$yYYJ!&*LqQT^D)A<8Nl#v^%FU<1jt_QSGL6z2Fo7rR|)ACbgNz* zc}`n_l+x-V#1gWa!?vzHrn%}vA6>I3fA_vTlPW-7t}GP3Hqg}OJ+pFe?rf)r^VW1P zq$Sgx;SCMTUjtXTDAEtV9^aW8aCf}Tg{8ridw6fZ1Seyi=q*QS}F;{H)98vpj}m)^7~NZ0~bg;*+u% zY+DOqh0>6J+#0Wn6jQ$UykU!|xgTQ^%{9JmYRcE0v)s^79(ct_hhq+f&+ z_n#I5HMU}b*ckOI{EueP7(!p{4J7T1z20ir_O$Hv9KPS;hV5z!Eu<~tqEkY0>M@G9 zNuuuTk|hKWir4^c*H%vfo6f*fDq||~!nLm9o<{}tE zx6kfCLd_KTGK=z&R}J)D4#olrQYQaKm!fBXXrQmIS;Wef+KHOqrIK{-Yh`a51}ATMx24Lvix5TgW+0Ywtrzzi{n3WK<>YF3sbMl%bsDm)*5$4P@0Vx1 z$6@KlQz$bSw#69LJcJe{-tAE?t(ZuUI5L7Jc)a#%vj)vVo^yYK`SGutS`uy%Hr|3^ zVs6;x#8!$FN(DfqD#QO05@3UM$9&o>67-FN z1bMZN3xaULSLW{z%c1~k63-=Ki>faVFZ+%OKfj@&ty|Jls=&hj@ArnrR!CmiRd$67S1TDoK{NrqjmHnp)G?q-jEsb6qrMl|4$wggLg%0fli zBwfAEkfoth`?y{8ASLaYm#}hTEYc~oy7SaD_$xQ7!F%V)br)CP;49o#dl6N-z#2N? zM``tZHFSBH++)!;m`xyHBfMG|dvPtGf5G~QoXytVsezN^smHtuNMTjTaNgUlO^0)} z@9c?L?DNX1$v_8!mcrrH{$e$SqzWgL zsKmB`x;ojSD(2PJF#a{6vmge?fgI3P^^J(aZI@9${FiC^_y7D}gWvn$_gVOD4}ROk z-+tk@JNyj^e#4^Q(C{}rhEwnx68v6+-;m%pB=`*penW!akl?pF{0#|ylcoPhlBJ<* zMZTqSo|g8aHL;>>>haR<8CN839(;6c>F=W+_c=?ni|$|iru+bI11YbSGOcdS9Z2~%T^8T^;&o?#*K zV^^{r^2?)2t)ORN3Uy9`QUE5VE(J)HGcgr7@*_X4v`ZsD8ngbl{Nh6aeQBsjVrtw| z5Iy}a94Sm-Du6e#2RYU#8^vp0GU^)^d6E_$dP~kZ4~W?%zjr?qtb`>5?07p zk;{16{rqam_eaWi|M`fMUM2F8d%9PIhuQx5ck|pFk1Vo$oIQj9^$)(38HvA;&k2^3 zKfoIp(xXk0n_M1UEwT`BuXL;3Qd84|bSj7Xh4?zc90mSJstIg{kDBY{FmZN*?mC@DwcdIOx;b_rFCPem zZVDB?)ibF*&kY{Kkn*LiqP$T(ezAEhrVrW8`le!h6+(`?WQ{f?mgU*7!KCy%V2&GD z_iPQ~x!l24cWFf{)E~?5T-zlC?@2Q9Mfy8{R=l;WD9Mxtdfgr*JP8cQFfRFDP&UFE@#MJV(9)=r=C%wE|Vy$;*9ZC^B5Y!_P@ zmvEDvh^&zer+jX}id=mdV9r!ng@Gjj?ceM+*lVZ@d)nh9xr(cUX-EQO> zwE4sB;6d->HB+x(F4AW$Vy0_YxE0tcPIZtrCOikBRxa`e@#K8_uPE{S+<-Nv_E!yw zyCajE2xt~cz*V!C!W&{zt8yRtT)oT;ElZT*gss1jHYMCrNk$oet5+l(+iLI0RCqR4 z?)cvR&l`_Q4 z8J`a{Vtn4ofX;fkejq=$unbubYo>N0>|Ren_2$BstR0#sWIvtn* zie}m?sL6i&*nlp1nRODHh(?Ih)m{dq!}p-4i!Z2S6ScPZT>5l;cDv>m^oF~cVkV5+ zEuO>5bvSH@$?iKeA$)@?Jj6R?K0i0^6^-j~w90vuqvOkpphZvlHs|=!VQ8IsouBRS zqkz*wdzjfy54|6*-wFLKEFAmTPwy6^2S8u(k$y!ZZ*Hdcvf+61auCYDs0f(5w*KwW zPnm54Oj+k*4=~oVvbft+f+dDZtvX9oX5m!{TKLgDS(qPR&K>I59YA^01MgKylCvvJ zh1x+9E+nK~wkBX~>IyR3l1Ax06=l_WtRlu!*^dIC)?uKgD7)EM?+F>cANXF~QrJ{1#&{Lp{tx$*BVEJlJ z-C2IkuV|K>=VAuPD%l2R7ZqQtnc{uk!;}~4uQl&|&fASCj)=5cfo9WoK|+zEhXQiw ztfmH<@tpTVS?cEppTD`t5|bTra6&JXQmf<88;ef8&?8avY@o>qX*UQrse`VkJ$G0V zOn-i7I``^zq!;2PN9Bz{gl#haS6SB{4&}DS2bJB0QX#RaO2N?jk%I|YLzgmZNq9O+@8FG zw^all@g8zpaDE+!>-1Hq`QZK|%1XLWAP7kMBw+mi=z3>mlJ)s$H=WrJ4Dq&el$}S5 z&T1d=@JH6zK*h`o-JWm8Pn%di5!I=+b`@OAsE{?At{K-592aucecN~J<^>1k?Lb%Z z0++!IA75ouPmZvX9sYT6KL|CFj&J>??ilr_+O}PP8}s|!&-3upQ!FTHs5~6KZyhb4 zLOcL^4V^Ed?R#9nW>n;5)}wC|9!qXuo{m~+q!Nr- z70~SD-S<5@zuIkn8~WuWqE%5q-h;X&bGO~EA+)MkCe>6L?^Cbw?gx~S2Lx!b(IY*U zd@U{jqWZ~3Q8%c%p#F8}*x&sREcchjw=XzcK)g>3f`JmFnlYAK1Gg2b z5`RK9gHChFRR(7qeP9WnicEz#B`5MM(DiG1#=VVixCwfs+2i5T@71HS zGkP1WLram>Xvcr351?Xk2C;fF^ggY;x!;h-{uXt*zs}pG`57g6CQkPYa2T0 zed?od?!@$5AiM3=~Lu{!`qvItgO4b99@;OCX`tT<4On79()2_ZG@p^~{ zwgd86 zPb~Hg57adBUphWuM%B8?4_@}H2{ZrrO}K)QbJ;av_&dn^tCaIic=IIX1&hArl`utL@CyrtqkY+b-{#$}E~IJ7$3h$c1Y)v-UKSL6$imAj&)z#v%4LAn5q?R7qdR*-5%VH@m+g(za_>DUibzhZUa4|W?mRm$U36B+^P3t zGpa2GCFm@(^nqrlnC>^&-k1w2!%R~lMlWtC-R9JTk6txue`VlD9iCC6A|~Cu2mfia z6F92%e@1K{iQQMCj@fc-QM`F6fsI`hud<#;DzBTLV-xfeJjI~{hc7#4D@dN*#P_d% z|Eqjl1PSFTxgXxq;SY!_h|eIJpdXYW?GrI$p!_Xy%jZM`LXCA5*E2fG2*wGX+y*3H z;0PkNn5h(On>GPUTJ2OUIT>s`6Og_MP~My__C*)1Uo-@#FG8C$L~~Y7xewmeK?IuJ zs#b;)tr$=bp+?JIt7{j|i(UdMLK^)C;?b{+K60akavJMvxfgc6*Nc>A?BTrtS6pZs zTGGN3tES*ZC6cB5xm%h5Pvyng#_|H|*utbBDVRKm) z`V#Lqkru1-J4^kvoQmbvRv~~Si)kjyZY=$};7KXaUwo2Xgd|BRUm~7<#BXq z&GR{xc3vhiTCOk=X6X#%njnn_Kj$qrg)J8Hr!@Y3A4&3nSuPc%^`ZDgY9+Iy***vu z9J}S+7x==6io#FIu^eNU2x`p5@10_Qv1@NNp5?S^{Y zJzdhrkOG!}=zS?PDmUd#@=k2kX8jVq;iMGgJyRp zZd=crAV0*#jZ;S#vRg+Q%8@Gq)pcm(ZD=-f9IH&y-SKXVzgtheK+z>oO`{Ej?An+P zY&DYx?^HS7g5;0nAT_j(V24 H<9_)cio#N8 literal 0 HcmV?d00001