From 8d978b9ab8efd5b92669975cfbf5885ff46ab763 Mon Sep 17 00:00:00 2001 From: Jyothi-HV-r <57260465+Jyothi-HV-r@users.noreply.github.com> Date: Fri, 25 Feb 2022 21:02:07 +0530 Subject: [PATCH] Release-4.2.2 fixed calling completion handler prior sending data to server. (#19) Bug Fix: Fixes a race condition where the collection handlers say they have completed prior to transmissions of the collection data to servers. Any users of 4.2.X should upgrade to this to resolve the possible race condition. --- CheckoutExample/.idea/compiler.xml | 18 +--- CheckoutExample/.idea/gradle.xml | 2 +- CheckoutExample/.idea/misc.xml | 2 +- CheckoutExample/.idea/modules.xml | 16 +-- CheckoutExample/.idea/runConfigurations.xml | 12 --- .../kount/checkoutexample/MainActivity.java | 89 +++++++---------- CheckoutExample/kotlinexample/build.gradle | 3 + .../checkoutexample/kotlin/MainActivity.kt | 94 ++++++++---------- ...2.1.jar => kount-data-collector-4.2.2.jar} | Bin 162807 -> 163090 bytes 9 files changed, 90 insertions(+), 146 deletions(-) delete mode 100644 CheckoutExample/.idea/runConfigurations.xml rename KountDataCollector/{kount-data-collector-4.2.1.jar => kount-data-collector-4.2.2.jar} (86%) diff --git a/CheckoutExample/.idea/compiler.xml b/CheckoutExample/.idea/compiler.xml index 96cc43e..61a9130 100644 --- a/CheckoutExample/.idea/compiler.xml +++ b/CheckoutExample/.idea/compiler.xml @@ -1,22 +1,6 @@ - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/CheckoutExample/.idea/gradle.xml b/CheckoutExample/.idea/gradle.xml index 5314ab7..36a0e57 100644 --- a/CheckoutExample/.idea/gradle.xml +++ b/CheckoutExample/.idea/gradle.xml @@ -4,7 +4,7 @@ - + diff --git a/CheckoutExample/.idea/modules.xml b/CheckoutExample/.idea/modules.xml index 0a26f45..6a3a521 100644 --- a/CheckoutExample/.idea/modules.xml +++ b/CheckoutExample/.idea/modules.xml @@ -2,19 +2,9 @@ - - - - - - - - - - - - - + + + \ No newline at end of file diff --git a/CheckoutExample/.idea/runConfigurations.xml b/CheckoutExample/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/CheckoutExample/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/CheckoutExample/app/src/main/java/com/kount/checkoutexample/MainActivity.java b/CheckoutExample/app/src/main/java/com/kount/checkoutexample/MainActivity.java index b4486c6..0a73b79 100644 --- a/CheckoutExample/app/src/main/java/com/kount/checkoutexample/MainActivity.java +++ b/CheckoutExample/app/src/main/java/com/kount/checkoutexample/MainActivity.java @@ -10,7 +10,6 @@ import android.widget.Button; import android.widget.TextView; -import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; @@ -18,57 +17,25 @@ import com.kount.api.analytics.AnalyticsCollector; import java.util.Locale; -import java.util.UUID; public class MainActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback { + final int PERMISSIONS_REQUEST_LOCATION = 0; static final int MERCHANT_ID = 999999; // Insert your valid merchant ID static final int ENVIRONMENT = AnalyticsCollector.ENVIRONMENT_TEST;//For production need to add AnalyticsCollector.ENVIRONMENT_PRODUCTION - static String deviceSessionID = ""; - private String KEY_UUID = "UUID"; - + TextView location; @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setTitle("Sample"); - initView(); + location = (TextView) findViewById(R.id.location); - //required section AnalyticsCollector.setMerchantId(MERCHANT_ID); - //end required section - // This turns the alpha collections on(true)/off(false). It defaults to true AnalyticsCollector.collectAnalytics(true); - - // For production you need to add AnalyticsCollector.ENVIRONMENT_PRODUCTION AnalyticsCollector.setEnvironment(ENVIRONMENT); - //Optional SessionID section - /** If you want to pass in a self generated sessionID(or one given to you by your servers) - * you can set it using colde like this. Otherwise the AnalyticsCollector will generate one - * for you.Make sure you set session id only one time in a user session. - * To do so set your sessionID below.*/ - if (savedInstanceState == null) { - deviceSessionID = UUID.randomUUID().toString(); - AnalyticsCollector.setSessionId(deviceSessionID); - } else { - deviceSessionID = savedInstanceState.getString(KEY_UUID); - AnalyticsCollector.setSessionId(deviceSessionID); - } - // END OPTIONAL SESSION_ID SECTION - - //Request location permission for Android 6.0 & above - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) - requestLocationPermissions(this); - else - AnalyticsCollector.collectDeviceDataForSession(this); - - - } - - private void initView() { final TextView merchant = (TextView) findViewById(R.id.merchant); final TextView environment = (TextView) findViewById(R.id.environment); final Button checkoutButton = (Button) findViewById(R.id.checkoutButton); @@ -92,21 +59,45 @@ public void onClick(View v) { startActivity(intent); } }); - } - void requestLocationPermissions(Activity activity) { - final TextView location = (TextView) findViewById(R.id.location); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + // Check for location permissions so the Data Collector can gather the device location + requestLocationPermission(this); + } else { + location.setText("Allowed"); + //Calling this will start standard DeviceData Collection + AnalyticsCollector.collectDeviceDataForSession(this); + } + super.onCreate(savedInstanceState); - if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION)) { - ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, AnalyticsCollector.REQUEST_PERMISSION_LOCATION); + } + + private void requestLocationPermission(Activity activity) { + if (ContextCompat.checkSelfPermission( + activity, + Manifest.permission.ACCESS_FINE_LOCATION + ) != PackageManager.PERMISSION_GRANTED + ) { + if (ActivityCompat.shouldShowRequestPermissionRationale( + activity, + Manifest.permission.ACCESS_FINE_LOCATION + ) + ) { + ActivityCompat.requestPermissions( + activity, + new String[]{(Manifest.permission.ACCESS_FINE_LOCATION)}, + AnalyticsCollector.REQUEST_PERMISSION_LOCATION + ); } else { - ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, AnalyticsCollector.REQUEST_PERMISSION_LOCATION); + ActivityCompat.requestPermissions( + activity, + new String[]{(Manifest.permission.ACCESS_FINE_LOCATION)}, + AnalyticsCollector.REQUEST_PERMISSION_LOCATION + ); } } else { - //This block executes when permission is already granted. - AnalyticsCollector.collectDeviceDataForSession(activity); location.setText("Allowed"); + AnalyticsCollector.collectDeviceDataForSession(activity); } } @@ -114,7 +105,6 @@ void requestLocationPermissions(Activity activity) { public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { final TextView location = (TextView) findViewById(R.id.location); if (requestCode == AnalyticsCollector.REQUEST_PERMISSION_LOCATION) { - //this block executes when a user grant/deny the permission AnalyticsCollector.collectDeviceDataForSession(this); if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { location.setText("Allowed"); @@ -122,12 +112,7 @@ public void onRequestPermissionsResult(int requestCode, String permissions[], in location.setText("Denied"); } } - } - - @Override - protected void onSaveInstanceState(@NonNull Bundle outState) { - super.onSaveInstanceState(outState); - outState.putString(KEY_UUID, deviceSessionID); + super.onRequestPermissionsResult(requestCode, permissions, grantResults); } } \ No newline at end of file diff --git a/CheckoutExample/kotlinexample/build.gradle b/CheckoutExample/kotlinexample/build.gradle index d150c0f..31f392c 100644 --- a/CheckoutExample/kotlinexample/build.gradle +++ b/CheckoutExample/kotlinexample/build.gradle @@ -35,9 +35,12 @@ dependencies { testImplementation 'junit:junit:4.13' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + implementation 'com.google.android.instantapps:instantapps:1.1.0' implementation 'com.google.android.instantapps:instantapps:1.1.0' implementation 'com.google.code.gson:gson:2.8.6' implementation group: 'com.android.volley', name: 'volley', version: '1.2.1' implementation "com.google.android.material:material:1.4.0" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + } diff --git a/CheckoutExample/kotlinexample/src/main/java/com/kount/checkoutexample/kotlin/MainActivity.kt b/CheckoutExample/kotlinexample/src/main/java/com/kount/checkoutexample/kotlin/MainActivity.kt index d2a8244..2fe37f6 100644 --- a/CheckoutExample/kotlinexample/src/main/java/com/kount/checkoutexample/kotlin/MainActivity.kt +++ b/CheckoutExample/kotlinexample/src/main/java/com/kount/checkoutexample/kotlin/MainActivity.kt @@ -11,55 +11,27 @@ import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import com.kount.api.analytics.AnalyticsCollector import kotlinx.android.synthetic.main.activity_main.* -import java.util.* class MainActivity : AppCompatActivity(), ActivityCompat.OnRequestPermissionsResultCallback { - private val ENVIRONMENT: Int = AnalyticsCollector.ENVIRONMENT_TEST//For production need to add AnalyticsCollector.ENVIRONMENT_PRODUCTION - var deviceSessionID: String? = "" - private val KEY_UUID = "UUID" + private val PERMISSIONS_REQUEST_LOCATION = 0 + private val ENVIRONMENT: Int = + AnalyticsCollector.ENVIRONMENT_TEST//For production need to add AnalyticsCollector.ENVIRONMENT_PRODUCTION + companion object Cons { val MERCHANT_ID = 999999 // Insert your valid merchant ID } override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) title = "Sample" - initView() - //required section - AnalyticsCollector.setMerchantId(MERCHANT_ID) - //end required section - // This turns the alpha collections on(true)/off(false). It defaults to true + AnalyticsCollector.setMerchantId(MERCHANT_ID) + //This turns the alpha collections on(true)/off(false). It defaults to true AnalyticsCollector.collectAnalytics(true) - - // For production you need to add AnalyticsCollector.ENVIRONMENT_PRODUCTION AnalyticsCollector.setEnvironment(ENVIRONMENT) - //Optional SessionID section - /** If you want to pass in a self generated sessionID(or one given to you by your servers) - * you can set it using colde like this. Otherwise the AnalyticsCollector will generate one - * for you.Make sure you set session id only one time in a user session. - * To do so set your sessionID below. */ - if (savedInstanceState == null) { - deviceSessionID = UUID.randomUUID().toString() - AnalyticsCollector.setSessionId(deviceSessionID!!) - } else { - deviceSessionID = savedInstanceState.getString(KEY_UUID) - AnalyticsCollector.setSessionId(deviceSessionID!!) - } - // END OPTIONAL SESSION_ID SECTION - - //Request location permission for Android 6.0 & above - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) - requestLocationPermissions(this) - else - AnalyticsCollector.collectDeviceDataForSession(this) - } - - private fun initView() { merchant.text = "$MERCHANT_ID" when (ENVIRONMENT) { AnalyticsCollector.ENVIRONMENT_TEST -> environment.text = "Test" @@ -71,27 +43,53 @@ class MainActivity : AppCompatActivity(), ActivityCompat.OnRequestPermissionsRes checkoutButton.setOnClickListener { startActivity(Intent(this@MainActivity, CollectionActivity::class.java)) } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) + // Check for location permissions so the Data Collector can gather the device location + requestLocationPermission(this) else { + location.text = "Allowed" + + //Calling this will start standard DeviceData Collection + AnalyticsCollector.collectDeviceDataForSession(this) + } + super.onCreate(savedInstanceState) + } - fun requestLocationPermissions(activity: Activity?) { - if (ContextCompat.checkSelfPermission(activity!!, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION)) { - ActivityCompat.requestPermissions(activity, arrayOf( - Manifest.permission.ACCESS_FINE_LOCATION), AnalyticsCollector.REQUEST_PERMISSION_LOCATION) + private fun requestLocationPermission(activity: Activity) { + if (ContextCompat.checkSelfPermission( + activity, + Manifest.permission.ACCESS_FINE_LOCATION + ) != PackageManager.PERMISSION_GRANTED + ) { + if (ActivityCompat.shouldShowRequestPermissionRationale( + activity, + Manifest.permission.ACCESS_FINE_LOCATION + ) + ) { + ActivityCompat.requestPermissions( + activity, + arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), + AnalyticsCollector.REQUEST_PERMISSION_LOCATION + ) } else { - ActivityCompat.requestPermissions(activity, arrayOf( - Manifest.permission.ACCESS_FINE_LOCATION), AnalyticsCollector.REQUEST_PERMISSION_LOCATION) + ActivityCompat.requestPermissions( + activity, + arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), + AnalyticsCollector.REQUEST_PERMISSION_LOCATION + ) } } else { - //This block executes when permission is already granted. - AnalyticsCollector.collectDeviceDataForSession(activity) location.text = "Allowed" + AnalyticsCollector.collectDeviceDataForSession(activity) } } - override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { + override fun onRequestPermissionsResult( + requestCode: Int, + permissions: Array, + grantResults: IntArray + ) { if (requestCode == AnalyticsCollector.REQUEST_PERMISSION_LOCATION) { - //this block executes when a user grant/deny the permission AnalyticsCollector.collectDeviceDataForSession(this) if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { location.text = "Allowed" @@ -99,10 +97,6 @@ class MainActivity : AppCompatActivity(), ActivityCompat.OnRequestPermissionsRes location.text = "Denied" } } - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - outState.putString(KEY_UUID, deviceSessionID) + super.onRequestPermissionsResult(requestCode, permissions, grantResults) } } \ No newline at end of file diff --git a/KountDataCollector/kount-data-collector-4.2.1.jar b/KountDataCollector/kount-data-collector-4.2.2.jar similarity index 86% rename from KountDataCollector/kount-data-collector-4.2.1.jar rename to KountDataCollector/kount-data-collector-4.2.2.jar index 24ea3e2cd83e40462f0353dfff3a3fdcba1f022c..7044cb00b6fffeb9ed0f9413215d2dd6d53a3747 100644 GIT binary patch delta 17908 zcmY(K<69=)7w)rdH`zVewryjw?VfDcWV^{WpKRMTnNyQ-zUMmEdGXtSz<#sVy4PC! z{_N*x_>?zzLKS&PD6szy92glK83fR*=F9^e42%Z?42&+L&>e!YQJN7P9MtR%z6J+X z2r5`gRYqV1+PNXB;sq)>Zc$c9s2;A)SGrd#Ug%xq7O z3S|!BjY>;xTfTq?rrqbK(*BB)IqAs|y!~u?zkWZh2YWJSPQZGSZ7>dj#2`xBPlAfX zlrdurrr;qM<4N#1=!n3C&mFFULg2}hAh4pOwauIdvP>lP0IuvgS&*9bEOdkew6}46 z^m!0p+3W0bhVZRqWV2#)QE+AvE6j38#OItsGN!x~K{TC?7O_aWb?lstdX>k1>CG&= z&K)}KB?pY4uHx<%`y3&<+RRh+1an_WeT@ks@xV>zjK9y@1NRSR8Br9;?wgFqpn1CaD-E8}>84y;rLEg% zcI>|bU9Y6AeMa%pGcARP)}?fFBZTzHaxcR)2lcio&M-j+0r|i2k?6XJ5q)i=(p5O7 z0B5+9(%736K%5`DS*Izbsw?Ci%beci4E+ueJ&RM4{T#1NzpTbe0k}|W%`?Xuj!4Ac z7+V5+$;)LzAr0Viu^;71xE^tSCC_WK*^J3@R+ci8F1JP6D}T@0j@OBT|{gxaAm} z()XB0wLO|i$e7N0E}7s94$SIwOL$B8XKYa0d?TsC2ukdWL;%sz30~jzztT9P>lNr) zS=aQaxd7JTGA1?QBGRqW5q%i4Du_Td`Lbgp@GzTJtnzEMOdJK%P1bN5`14E5;-y4J zn_Ftz1n>B}AR!INrRP<&#Yj82%X1lIbV1@;vfmZvoWqZ(^SiX4;32Gwuzn$e63_HG zkmIIkDrt|yXZ7Zl2dC&=r7+BAw`jhJbz^u`F$?hhl07u&uOY|RERD&F(s#hbGio;a z4P_n7AqM-GiKXa(p-q;bjHcM~fMTpEb;@=2<8`;VM%+v@fTn%VO)L7A5g&Tks9Gs+ zjVr#WksyN!mVWf67`M$~+wkGKXveKawry>oFxdarqD8FRY8NaR7z-L07{z}TYVPC! zuygWobO)q5kzize`9Qz|TeV}|Fi+9HuXPtE4#Bo~l%UE~F_tD%?C)i4%rOZ*=*gRq z(-rL$5Kos(5oh^aybc#0f3?`8^zA9WQJ#Yojp>va3E`*%%53;$t=K5>%V&fa@XPZS zBW}D>;*H^!vV2G11NH*D`*)oBcRrPXzL!@VK}?zH_rY=;W+F+zfDj~vCgUVjgui5> zC{SoagJ5tM2uPx-$tWV|M9^KNk;6QU=9EFUKcRRTkD^GWz*_OJDH)>h2S|<~&PG&4 z8Aa_I4>ZUV%>#)tT*St6vC@Tz1|VOeG6R+q6QS>1{EIPA56Oz|Wbq3y5(KWsDj=-~ zDA-7T-Q$`5VO^;Nax1W}S)Mebh!QBEX~CD*>W{fs>l3fQb54LRSUDXlHx9ff8`(Av zaE1`beyJ-HlxI_GL~H7iPNLpwG~0-`pV<9FB3|XJDEm3T>cDSqiFr+xmRuYYH;49n zYkDEKh`&cTwv@6-cgL1pBZm|IzSJ^dG!ZWG$d(z?Nt?J8IKzR|W}^2m_HpC)9R9@m zKSKD+sVam)hb;Ti4JB`K11(pUMjlEF-ZC&oGB-CXn|1lSmMojTUn>&|TDP-_DCb%Q zd_Oy$f7E(z;81S*ZjJs;;8?8!OxHvw0cR$?pNwVdn6fnV_Jo)^D>21?CxckyvHjxgLu+76?Gs3xJtGLwt6 zQr=5yx+Mg#9~?LGEXe&`4%(%0_H&(sV zbjNTs^d6~wjZ0p|zp;Da6HQ3uisvbb2yxoa$=!4-q2DLbzJuzMgxjGd@o(<-Qwu=o zV{-2cy`_I4>8szz%GbEV3M|}@9BLnJm4dzkGWtBBx7q_aj@vV|}k zt5XNaImpFZtNC}*ykX|Uv8(Yp6T7Goyv+RT8~A{-#%-207W;G&_F#B|Hm0>azNwm(TnGL7Zp z3Uco|&t1fFL3TjyseM#>;CPFa=F{uf9q{maWRSohH&`CVm%5WH=GYccU@#?X>+*GB zx2?6r;r{DZ_QWZ=XV)z%HqJcXfRc6W*US*MQ=~@ktKgPt@F3OPMlyf*m*6g}oBbs+|BT&7W zYAU)tQ8zcqkjU0U=hW#y>WhX$wC*$MhE< z|Lzp+^ZnJ2`cHvT@&$OA{DF5U_CkR(cTIB)KEQvohxE8SL zq$NT5q6~AF2FG}t^C%tcrisEv^T6QQ;?|h&2BxfEw`D(%c{MaRUh`AhI+{Nf^Fsxx zcIj$PvN*yA@N0eqj-&<4*8EJb2-4)N&caez@jzLDY?NJg=f-I`fnKIA;cUlJ!L=yT zFM-}(y@L1E8PgYO2x=9ztj9cd=xOgG0OW-@iyi{^cy^84x}OEaAhCPW)Pa!sqsv$~ znL~M0@cl^``uTL*lIoQOm%Dgxrw|TzGq41A2%+lUV;(;k@LY**4ZsKjl2;pzyyI-U zEnm^UvZcK18qWmk&7p_ov_|jRp?zzo7Q6er7I5z~FVRWfNCh`nt}K#>C6i7p_x#f$ zE=!;S)=WZn5i7{l1;gnk`+@yf2+0vJ^z*uW#(KslY0K8z#P#!a0`@X?l2DSII?_^LcS#Lcn@HT;uVNIa)5ojPXg3=r#qHU9P>wh zgTlQd>^I0SNq{QTXR<^8WWM3gJ!aK3qY}JcC8kFh;^S5+U^z#x0+6d$EOE(ryML(8!{-*^*04-IMWSAo#Me+y+)3tn-nh)+v0UHrU3H@DiF$WT zl9?5^nBmDiK2#-62vg;+y#y!JwiCtg!J_`E{_G!$w+b0+-A`{^*CH~*k?X|V%wP6_e{{Bu1hD2d4!60?aLLg2! zYUT}j#M%=*rIHCEATSpl4&9HV-}^0Bs?yVH0&v z)ppQu`Hl9Rvc5OAEC=KPEqn^$lszL+ecnx0`;pj`zmP-bBB6 zxX_^G3r}6=QdKe~l3M2SxjI1`ayG1p^!wRwJx%ePB4)g&_?QWoj`Un^GjO@&5w3Gk z|9s_3bXFYsb07If zRxR(tjqbtzyRDB#`cCHj+juGgK;?`zr^qzo>Q11D#%fGd8=frY9qZP-2-ptZmD-cDDxk7L7MJ=5n zH)zTlExM8vM@YSc4nK%g^!1J>psdTylAZDRW=v9OQyOg9dmx=s$#3l=V}dU<769Q(Y8>W9iR1-G5Y7)?u0&o` z&iY%))F5v(h7Z!XH^lFPQAqXlF3T6&_&2_P?QCQfFpCNZKk3D7L~R@HYE(*#UgqwQ zDwU`}qbmCtF|jR0`UXOueZ)9KcpxNA-7ijp_=<}(_5kf2gcJXQHP>vp@m@lW`&h&5iNOY%yJ=lVeW|8j)* z|DFW`ZMrQIQe*H1fKcMOEotc@hiz>?@Witb%PEI5N2`#Lxk^j9adZbEblFlA#OvAf z&cz?$-}v*^SuDy?=ObSFWXwdR5MtSc2F>AZ@H6fjU_svG2kQ74z~lpQt)Y~-K*oo>IZAgY5pZt!q>Q8F%4f04jef5n2888%o8Kt}cc`uf#0V87@V`2YcxO zYpG`WM&fQWA66|cvx%cx0XHuaR&8atj!6fEY4g~&)N1>5q%}_a*j4r|`@|9YeA7`9 z_V%+z#nekwpi977;6WMDnCG^e7Tey+XI?Y&3324L71A07uA$L_Gsp#eZSFw-2ObR` zXvx51wE@XVX#kMS)#aex%TnMOThUNr2LU15U5I!#g_qu^LFaIBoQDL3^wT~*%Wj(W z#m$^`V98!6%xwVVBG(M6Qn}|N7l;xmr|^KIZf-LJ+Dw&%XierD$@DHiHc5w5r;=y` z8eJDWl~w|VvmI=(#}?@HZgfJI{oF{FJez8^!DvpeVoJ_qBT&DQ%HeO~niO=iZMq{` zf35Tu8>+BGcZ8s#tFnZsLUTK-i)NzU9zjB@4paHp?i1R}m>_U&KKoInl8eD^<@?1GKv8Tu+3$D zfx9^D89LEgV##NO$f*xRd@T~G47(*gLKEu15S2Lgz>w3tdFW*?hUw!B-W1*fQ}Q}$TOv-f84hkRGGvLxo_|#3*IG!9Yue>^`FqVikv6`e zTTy>_=1Os2es%vi3g==J&8XecJm7gFB$}M4B~cwxhG4E&VRc{QpPR(_AY`8t0CMMol9?KF!?h0Xk*BcBAh(E?qU7aDp@S=iKM#uQ$JIat#8e`}# zAnKO_vFLT<7Z{c23@N3T8|k4udJt5By_%Ade0Y`Qg(#j{3soeAm%p5NmCSK<#c~Ij zvW*{l<4qt~2MX@-hBtGGFVVx$blvCki~1sTLfxZo2z&#@&(PSI;H5iS0>R2+b}0;u zP>JRdEovh6Z_j2E)>sB=J2veMc*U#@iTMXs2Toej9pt;CmEO3&y-6_-84nMU%7>wDqTI$~lpD!TilP~4 zqj<4KG=&YZ!4+P=ZDLe;vQ%B;F)F=-wqByt{!^;ZGonx205mEjSuFjec~X{Fk)WG5 z?B2+CO2|hC_Rvd??t{6@{-OwSB+g^z02p4wop12}uTlR`qV_z6-3U;@z(i7wNa%qh ze187wryi&N+E2fZ?dogiSm?PH(5+&J6>aRImx7q7!-$13!Yw>PNc^_OpzYl z@7(e~_w+yHx%JrrFG2NzkYK9^Hu%6k>rmAf3{>Nj0}GPbts=NSau9=O(g6ck2N*nq zL7M3h3Sh9>Q{?4$e1yE#3xRl_W2Do-?WPH!XY@8OF>)`Xu+)KY&gc{uXc8`bd`gJ) zN$F~x21l1`l7P$S$1VoU!=bLYU1yw?aS81l-xf5tnQ`}yL=Ut>0Wiwg{Tm41sx z{(|^gL{WMHXa8Uz{6PECi|B71O1!@Fx_j1ofsN=NiThqa`G#`Z+AlaD{_m!P4dtIN zxcv4J1(SF6p6d|87Q;Y>kh!7$hdXxsFY$=)7IB6TT*Oyi)bAOhy+0e@<9Gd9FX6-YAup!6faJcP07rp(}oU zvI}&`AxdPcwVzD~f+5CrN>u`kPf=~%YfJdg>lOnOOzm7zp&yXZQPrpT>I;!%n9xRjb()V%@_Xk^-$m@5bX=s3wJ?_Y(C+S)S{T@IE#ffKW(%F;k{5T0y&Xh|-GjqT*MYB(wH>05-IEacUwC*g3uXP@H{U#F z#-eQrDRzTu5!y_lhe^)+*WQ()0v5oqKEhQ&)En+l{)j@UDX1tU~k7bzZ5;9T`%(?8o*Bz@TQceJMHQasjM^RjLX6;S=( zZ@7ObowBqOlr;${xI&?GwB8s6ns-=MAymy$2%T=eT+-GrI)<2Zo`0H>(|?k8(q(Hj z$E7PVS*9YxX?rqx%s%r7yV!B}>K`lBxU11MGpFVk&t=%eH5)mb%b5!QUc}$L&i(T3 z3VDBsnqG6-((Erlsx@kk$UaI?-UU818IJH85^$45-37#pxd`AI_el<%gOMT71b~IC9UMmq)Nr1Vf>jPLh zbw9}5Xi7m=cN2D}r+Dq%Z4EaoaV5U)VW~TDQAA*#PHRDHE8XqYR@{=Zbpwu*fbLco z+obJ2@bR|aRu|} zJoUdxgI4b2=%Om-T&Yp?N*D7UXJ;pFCG*yMI+Kw0re;uK#OQ3g@2#AHx0zJS+=!e- z*fpsvy`ghl@IA}i6F67XsMqUgOP?R;GX3tbFE=ou3~rxZlf{kkNH<$kzIvUJBF^oYtSJ}-EnwZV)S`?wi%;mF#B zr-7&bX3DRspsuF2>Py&3tMhA4&?U$lvLeu5yk7O5zpDz>14g;_hU3CX5~0!mv1kUH zRyIzA5qLbizI1kJP7C(%@hS~kHS(&kE38fo(>EL3;$UYy8<71;l=Ekn5QnW-F%Xsf z%J3YqGx}(uGcAqZ%L0=vX~H0X)sZyPQ}X6r!LXr;!S}sewwXNN(m!o?d8VhT#O=KA zgv6D1g1SJ<2bj|+D9cSL-0LtK%DOh%#8Zw>yqR2RY|j2dA!TH!Yoa=dXg5Rsc>HYz z;Gzio$9R7JkR9CGyK;Sg=^~09Cx-qbEEu>h!mSdtsP@%nE`%JFGe^PVDC88n1usAU zZSI^~c~h8`v8tf2tM3Ia;qVEaWJ|~#RJLl`2?pJY3oN>`NIg*^K#YdDJ9WmL!Oixk zKXB|A`=FC9o5*vFbOz+g{7tVOgn0mC%$NW1Yz$Rh@q~?Wk05h8sAbviPaN|`rKjhQ zS*Rew`u9@XWLK9~er8e*L&cXMz5EOzGabGZJ`+eXNnQA15y%OSh>#zNTvheQr&3XI ziax&p5_ms!T1d&sQ0;9>9U`ePK(9BOeU{!d(oAA1VXPOY}x1>CoK{F3i5#0>3=4gcFGJw zJ~cImsI%C>A1KEfATth``J`*kJeRaKm5Xqi2zOE(!gMx_T`>*7u9N10X7Fi4KH%&q z8aerKt^aOE-1Y_&`G>rPs_=7LTG$zjx)7wAd3@BBsGvCDxma2^l1;45k4Sy=d+)G; z8aR*_Q*W;=~*>N_>j>;rSw8K3hr3hl*$Id%5AXlQW5aK^;s7;3N|_TCmv=dFVEJ>cn_w6K;g}V3s6r%( z$>NHVeoTYH$_m#ge}xNc8u?iKnEuFx6dK-)$rTzo`aBSG3!?8q;@$_Ck_N)P1L;(W zann}AgRH`#`)CpNbBfV+v9w;28wLSk#JiXXn-Z*bXb%l~(__A>5tov@Ml|#d%8a9- zL&2=7(PP7!FNHcWG$U*R4CzN1!wCL{HN&^jD=z^D!|f7Gfj=%JvaHb*i&a~qdxxl= zl1E`>PQ?#@du%&ZSi+OgDmi08pi;Bj}e3Ti=d zmLi8JuK*b8;uTs=NaVh0gIew?h~kbGOWtW{U-3Co^BYXI|( zQnjTBIX|RgkUB4TFIahLi@Xl5s>`(1eZUG1wbAHzh}AwNoB@C-!pesFz(WnbEMm!o z?E4!j5IK+-!5TLZt{;33C`xuc;&tHT%K&o1sQCBDJaMEDF_wjtxHo&}9ekIPW)=Nc zvbYD5o=)dy5<|O|M!NQDfW+#$1s+utlKeDq>L(9PXezY~cEd*iEzU@WX$exnC)kB! zis{&e_@V`5?iAu0t zYCjV%x| z@?fJHO})bb{a7~iC6O2J4QtO`aUxr61*FTx$jLB2SLdvN3w>`pIcBgbeKdQjZ&9=) zbv#Pk*AE(`vJxTjYt5R{^bNZR*9yP!eJIOZ7RGQjn)lZUT3OU#8P!sY*9(=>#lzTr zv9#!yOnT#esh@v2lsqj4JAfMB8w$Db7&qrSS)I$NqA7|qnMXon<*||LuBy_Y@JI*T z#Jfz>88v^Z$KgG0RT5<{i{jB<4$i7rls0^>O4EMp^@@nkDdbz0j)2-!4iz&YX1Oat#tkapQ%*F|v(ZiLMH^qkKnFpkVuS-S|q6cH?ii^jqiIB%TXBPK>d z_$-{quHD0N-c7=7mov}n^5$bbQ4mdj=sCB^GvmhK@hZlxvXvfAmNOt0P1dRsz<6gg zDnneW0b-<+$~|pIvvw@u>WT%j#Vz2&FWJ3d`%NA|tF#xv@Ro!;zgl^z1}ApKi3~M< zQ)#h8M1)M~s5_&aV)sNMVxV029Q=t;H*5(&$yIemeWq$LlykWb4q?bV*-OuGz2471 zt#{T?5{0?_i#k$nGV&UWpaH_1${ zOLES*Xpx(pm)(?0->Ni--)NcuV%ja%P9`HsmJfR(a6i*+6h7??4iJ{XHxjuzCONqg z+~OCj7caZ$e46#d#YwO7T#mW@Te|%WWVG&$ZAWjp~;0)sSY6Zj>u2Y0+C1~UfirPcf$y-zp)!} zqg?&BxITDlC*`rIUpBBR?n{2LZ%aV2=4*eS=UYWRlLjDk_A>zAu&(Z@Q{^4 z=Yww>afRVlv9A9t$hv^y`K7p=@WZKj%FiAXS%^<^sV17E|9wNWvG0(!ml7gIQ=PqZ zj99)dB+Ll6Zu?t29G^Gn_0BCA1x7%f>PScat~p}LM~e2i+Q?cgVXEmRV-P1{C%fDW zJL(rMpwQFer$7gCz9RV*h+seUS!?V7t{{hm@M5bX!vb{H4evXACDwO_ZjvqjRW|sA ze{z}I%B_!u1qk3PkFH=2Ezt-|9@Lfo)t6(|9|jl=zmZuODZ}mX{sJK4)9iaNd-$V zG2Mf~VnD1)rJh-DKA`Yvg7nEumlj2YSiE-G=a_x3TUt z4!leKM0e-yuHS6u?atTR=QT|blYK?uVRS;pxLxL&%Cf16qGK6lxd%e}&rx3tw?#*5 z7JLr7xwgwyA@NNVA`+kA1|WpXnFoGc1e&Au>&MHwpe5~w(mcB`OaOY;N2*odA$mK+ zo>v|%oLk9=1x#z_lDGIv=c@d>L+?bxE(z)nm!Z!-O0I`+R(VYZ?_0L%^?YZq_ud4; zn}-Bt8ojtquW^;BE$NT293fo8X8iE{vvkCx#-GR0dxu3dgRn@y_kn`iqhF#G3H14Q z#q^+SyK%yB98GCbfeW6M$F30R&!nWZ9wbVJ1Yz1bl$BMA~F{Rwe|^FefbX&7AaEri=HGqK}BLLn{1! zc@#sG(No-LY(02=eL!!asWrh9TC2`BS#hWNg5u>SH3AV&rOgeh4OU5w(uN@YLR|7& zGTqKc_69&^N7&yife8Kyg%9h?GiBv}?}Ba$})9R@kyB-F#?G^6}%X_d3KEqEhP2NdnUJp6;BU z<I)e9)@)3@sTH1%R?AzBUO>E^iRnDO)#>q z09slsFfb%GFfg+J5{v}MY;JGr<~G9z?@qYV`n=g>NvUi$Hfv_#F#w;?V*z_bNtsMs zJe-a>)#w6&Cz-!K)HG`ClAf-%2|;#cfegK=W~~E38L^H6BgbuB#6RDArD6?yn)Y^!oQGzUN!evN|-&+RBjM=se8-BDkD#xa=P3sXxi*CpBm9Q^jpB7z*s$4ygC zuB`*;ZEDk4;?+Yre0>LRl(vnk4dx>h{`}a}`{~!7ZRP`LPjBJ?Pv;{g{yyH*7?X6jvHhH|Jl89bU9#|kCg~dLS81Fz-V>B}?z|(qc zhw&qy2<;o;dCM7aGc_`IaB9(`GXz*K!UUME_%Fb)_GpX(WM3@!q3#(vz448h53u24 z__5SLb%g*7RSJxoiYz@3s~Wcwz%sf92*W6vWu)xiBg~4m2qINE>W|~)a1enD);Y5hV}gnNh*B3dG#$T}8)r{0|97Us|H z?UvV`b&77<FM$?qWh@AbFYf=GjH31AWX-!;;2P9PkYQz83t?C21^m?Cwi=G)JC+>4sO zQlMZJE5)~If+5P*Wlo=H#jp@}F#LL{BuFvXKyuEC-THqT9(Ii?Et6}6m1fk2dMuT1 zC3=}jx*^&9{MhP8vxqjoR<8tY*Y_m5+}Bcg`PLmvkFQIA_9p~0Hq}<;yB9~iL6|Zv zmjEM*IbvXZHJETbA_;m*NA}^iekG2m%Kk3X)$7NJ`RxZ+Uy|QLQ3K8Qdl<{X>s%g+ zs@hKj7>D+Qk%KM+?6c81)ASMvte(Kqd?CL$s$c#(3VJ00-40GO%f(xILu9-uXDv@L z=3JwsmD(y(waXgItD&O>g*;806s{^?XAY>uxjoHb55FkVFoKJ6x1QM|(G7tfwvx4= zxb8+RskXsDKQq2ljKfDzWq)-Y-`qrfln>uDka;~E#^AWLQC33m%QWi%CKXdpZbv{c ztNe1BIYSXeW`4JFZf|G*l2fM@BlB*~rtExr_?{ytPm|36*OZ!xDq!JmwgXZ7S3WQf zm7S`3Z{5}q8xFeIF6xh3enzJ;KL35N+E}p)qrXavsSytaAnA-)|dDwnI7NdcN6iHhNwn@%DdRVX}c*_2K;0 z%yHI5^!YNSD0T%ZHspHFQb>@=C(d9`sg0Y>tLo|F3};OxN0N&18UI`e)Y z5%`yIUO|oEREO^DOiU@!lup8-OUtp+5Wwo?#RM947EgJkWNpGlfB}E*Gk35hiJee=7cbGQ$f zpl^csvAr?!)%Mv689x6Z>;@T^Z7x(xl?Z*Knj;521;Fx$ltB^@nlOdt>g_ z>@#^Y4As0?sw2Ve=q-YH-Gf zn9J*2Mn&gT!K+hZOb12NN2?~;8%irAn7aK2Z5Ig{v&@_BRt>~E2RUxLl-3PXb!Iw} ziSZ}PX$?A1PmYF*uNk_aLK1~NWA_mEOF>(GBw^D4wnu)CYuB9e?%s$v0nFjcL7Ma| zQ2*DkVe;em2PzKnWA`BTGaqnceNgY#4j>Oi)R?=+iDUhnhLwzmgXSY=u_;}y_AcgO zZH}N!xzk734SlA6aS#}8RrGJ<`V*Lv@d$rUkakGb)z9Efx(hgfL=cLK#P)|HrH;XO z{4uOuY^+E``vOOzx^LSd6>N22Ovj&y@qKn;RyTkx0E{`7eHf+d$M(k}RlmdARm_yG z5}?axjH)r3Z%ooxn+OUCg(&}>RDa3qKu~CH3{gJv zns9y*gzvB4N4<+g_|Na5f1zN*`@(b3(7oiq@<%DqzN5LK4#&53mins>4U7=SVmQRG zP5wQM2;7>({($~U84Q%n=g3&d*!)BNBQW)B0I^*!*PmGf7d8Cw zp`8vY*bukF^Xyz#pFfL}W#!Fmhh1_;sqRW%8p!XDa7ko;%3m72xr(c59Cnwd3i<{z zzK-!-mm0CWOsW!%?FhZ@8KSmw>yhF5R4=%VRa;9<73cE!*?t}1Uj(tUFYjRPbQceI z1NlW{%Ldo<#kv6KT>!G3jJR4qS;SPrw~#~hD0;z(6&+*aQ`_=5&XXl7;%0m@kM@j8 z*p(CJt`N#e3)j9yRk_Q@7+*O(S@~p_ie1dPlaR*ipKBd%cwHx_dkN@HiY3|r%B<}w zsd#7OOf~cvSxZTQ%(u|KhRp?&9{E~g;27nb5qn$9T6OWl>LbmFNAVNlnR0d6)=0I^ zkL3!FY6_yEhA$qJWJV|c*UrUp?!uo5Xdes5ZpB&} z^>^f{aCr?TS&QiO+%qZUnrt!uJ+~+@9M7gl;UqL^=Y*>MDBkP*BSLPXq+EoHTFQB- z%65n@8BIkgw2?QxHxzdZi|;>(0ffIg@(aoWN00~!tZR1>ck?q;S2xF$JfJIoG_JSl zwa5P|Djvjz8yQ@qe~@sLr14qEUYFcntiB&Hi_mS2_WBS0 zf*r%L{Eywabt?GfKka`X6;<%07SiyuWnOr+dNMbT@MSE?!F{XLe}2EN9_ZzFX%L^U z_qWI=3x4(`>UYXw4w6*tNfbAo8F5n((R8Kpyg zzk5nz4E~|=+v5f1U%xE7CWqMD2@h$gtTfd4&a&RfvFZy>YYYn5GZ5~{{pq%>(+NZd zIf3(LdCzRM!J6rw_DwBf(ipp8-r^-BlQW$1VWN#olPswXE7j+x|1l)`(!+^YB;ZkLX0xFLyE1cLwg2Ud{|*W zdhj+DCduL|5C_>rnn1@_#NH#Z8i^c{FTHVCJ+U?{94q7xo3mWfx;e;S00q0*4FAJOpQ<=>c_x;~0$N zn6T4kGg9K2AUAe`dA5`U%$NqG6O&h382@ROeO6bUyxGnoo zUoPYZ6&Hhz4_pFa&o!BIx$!wsn7W5mrdj}D^z~IF2KlrQnM-p}j=?D!V`-oo4dS5G zRSi|Hlgh24YkIp0OpoH zyAAez@+NHPUo9#t>4pvK{9y6|*y-RpddXlUK^C=;>%*}!;|*xV zI+5}$jG)Aks-s=EI{{JseVRLU$Xk$^!f$$pO8g*AWza>$U#kICAuu}u?75&kEdSN( zAG#>PRPQXD$mt-dd48s%lTIuuu=jxkKNGf_aItM^=_3ptWI%*kkB0LfO8RgX=s*}@ zV1=P4pICp8F~UC{%v`<$ZSnz9^gxSG*y&#;tx$lU^&_aXa4EjJC%6Yxf`%5@DH6x8 z&SrS4DQ0V$`b0P=ES@wK3R zM+)I>4!E3ZHzHnfmD_Rrpa|P)kS~z{P{SCccf(1pA&+uyqhr9t&j_vW3MCpzM5A?* z1Z%>;G?qMPdK@X_6Y{v}j;nzh+Ft9AmJMIOzb-P5x}`wGUjsRxGL#pZAby#AK_noi z*EG1dFQ^tRxjrDi3EhKa?+wl4ESwvz9TNMNa|hOPsOijXgdE_FY!J6LMAm}>BpJ9o zpxp%ny=Z!qIEAg9y`$_R-5xOA3GLF`x5Zw$v+Dj?I~HbpTv&KP?(CC5FM$X|>@QK@ zku$x1zJulCx=mI5l8Fre9{npZR7|t4T+Fh+JGDH8A^0?AfB0?a4Q)jAbt^xN9ifRf1UMNSYBtW6S8{vL4m21u>O~uC?A-{bqB7}CO8cPq; znt|xBEMp=Ma@)v$05^n?_&0M=WQdy0Je|ZH#--f+<_p6K(5X+18 zs1FB=EgV%QQTcXxZ~Ntl6-hpRDVXxm1U8*w?swne=JCq?;aX&-GM~Z(KDAw4joLEs zF+PihHs=Z+`R}mPuammQrSTwL4|8`WP(*r@h9Ul@nuHfpLQWK|6K_%s&-+GWitXqW1Q~1z~EW3@F{>_P`Ef+?Ly+hXtuTQz{fnj>#`-S18@_Lt!)*t<1AW8FF zf2Zt!sE!cbK^_7x356L0giEO)L5qP)86)}eU(8Uy6@<*O=^I5?rRS*!_c~vAz`xCO z9Ejub&_`xw+t@G^3Bu~o%b5D?CdE=QJ`~tOTEc-+tn)kK+w7>9_)EaCgEN*Q$(tP0x*aXWa}q2v?Y*RZbV|bNz1$LPhKBD!jawQN^+lqrYm@z z3=bCc`wsWmhZZ69$TdQjOuuQXws{D6eT{4YsDH4ZkZ5fI;ZoU^%|V@fwfap@y(42^ z7>NzzqawM0@+Ig2v*;t~x1mBe^>IQE^>VoZCY0Fb2l@wSeOuDmAFPsyzTV`PqSwMw zPMB6Mgzo=zajh|JS5dtGQ{EfWtxwvrwqgJ=vR0yLXC~laj$s*<$EXapj+S<#lvlSh z7?`mw=r+{YxHA|k!8kRUh?&5$2_yqenFC?dDZ|Wt8Nw2yF%fDLGw=U@fsXY{drs5e z6rO3&YUaDPbe>Qi9{+{M(OSL>|YY6Kd=^f#se3By`NrmtyJITbBCXj-m-0< zc)zW{9(~Jnp)+9e89JwWS|*Nm2)+TcuR6r+Zhj#C)D+gf^xn^VGnWE=g~uYAKQ2;? z&Cd?rX09$=Z5z&*df2b{EiUl;2y@(TZ1WqLLBA3767Y3lMir=W;XETisSO0!@B|2= z*^3wG<75mVQwJ*SwZaZ)J%N5JWJ8M@b#6$(FI0?%eyqm^awz*8E%l7ttNv#lmf9i0 zd*-tk3=q^%ZuuNzDnJbJdNjFU6InkO;SDzkybF1P^(%Bd-lEC7l$VUX6_5;}iz|3C zTyH0dp=&D%jvytJI{MklzrqWJXpZOdfpdPs*WJE^>*^`vCGc{CteMfku*Dk^pp%Vq^T{{;v}r3VGa z)8Y)4!=r;VW<|>(D27umDr5E#Y=_bW7U)^bI}8#fyFdORX@EcC@dl))Qd8ZBNjqhC zD1c#x*~m>S#(IdR)OTpQ&;wcgueJu|DDkF;6sEOfwFe?hZGf$?N49D%99yIWjr#@Y zZy;z$C%@J zN6I_g%L^R3iu?~qu>T$`7%40%1o|+>P!qZ-IQVFb2lzTHWaWM&RjM*PE5KG6Llift zVtvVLAtq)mmJVy0tktK)2S)?5x2EdVw%gFebCYu05aT=St|vMg-#m_lbB%tHWIvIu zpS_-@eQnEX*Zj0EamRU27y#8s;_h13s2utaoiJ&?2r`m_Crxz~~xaR(e8?IuF9##_VMDYx8y zl(iidD0CxSrr#=&JHfqQ2KJ;4oI)oQ;!JA=iM^JbZE|cXme!88+Yg|1uB}S#>gKCu#mT&I9+uz+;Dz&x(+H>Q8J*^y^M{KoTA^iPfqvRTvgY1sP~Z9wz{({J`=<}^|2=*Ct|eS`&|qNnNMK;(|IMVivm>*;v!{~>b7~+7I)IJI z+`-h{Jzx9W8$%QGdxvYX%#@*6rtKHnb`Dn>CJ4dFQIyWGk#I~;6hB)C5)<=^*FhCeO*N6%wi)JTN3~7^*afB%dbu=E`DdxZq#6aVm zTr|>%N)Azl-mGfFx?)xeRtoV4vYvPt-vQmE1q|4U8#{zaR_8l$v_|t6m$372EVYp` zrk<6Hua$4a;1m$+du+&JNYY8Y?HD*QU67&lG8F5f=Z7&~T zkg!9i&dCr-bg>A^OHX&nj3e5hHOI@CmNAWv!)8cN#_rJqpBtCM^FAWRdpRT?q8+cS z*jbLRvzqQi>48=AbFiHwVz&S#!cYj%m~#`GeWxNRshi~=cg`eFG+R10K`TjrzM3W7 zu{=-sK>G7~mKS3K0RnVKtO80hpZZBWAD8cJKiCRT1(XkI@syA7@a7MB@#c@9@R;En zjL`Qjd)aJ_rPvMkI>YTL@d=TKYkd@lF4=Z}%MGy=+O!QF%)-Mg?H!rnJq`mfVkZZ7(BPqc9t?QWe*rqvB@eqD`FMJ{~;=kyS zY!=Wqn#|zXxlDDW_IJHG8q1rb!?LercusYSu zdTx~lqr=&IR0D-F7q|^~P~U#-_GftVz>Acrckwol5YS+DVjJ>0NsP2hDR3emW6=d` za5I3ZDLbYyts%I5Qk^_k#mjhkXQI=ls4hr_dE8J-w$1n*9rDl3tsu9p-Ax5YVZ1+< zdZ_A*I@)-nV67urpJ`K54@MGR6;^jgHSF~vB>&pj>g0&ex@im)o+ATIGv=p+bZbQ9WW9}_l7%#7~unFjchUqzCt)MR7{D% z)74QPENOgCz^~~p2VPkr2DMTS&r{E+ahi(b;s`*tK$&!a#ZH@&KI~1j;e%EVdzPSVut8v7zYnHg#eTDH@1Ec=Hhhgm;q@Ol^!^;&Yg~Pez+aFFOe-Ed^o2QX z4_SM^WZF{ne+`1!VVtXaq(6bGfb2_ze+OHAM6)|LZ(Rs_T;>5*gQZgyxhE;ULox-% zJiMG14S`y@r*^5fgyT&S>`a|ay*1K;4kQSYB@q|}hf(OOM7Lb+M62Q}lk_wlLlS)ycl6#%RX>*C{a zX??Vjx?Opx!}@5w@fwg1IwqZSx5&dtP~+FG^cT^J1=D=LR9vXq=5FpJcDd`r4>qKB zJtMBDm;CX`;fI3O9!tUyW8qtQx3RCwMg^695N~LCa@q1`M}Vo+^abn~>Y&rq1WUMK zZ_t^Fhln38r{gk-Itx~94Zsjdd0i2zSe9CRgFwB45&J&3cF6EgEw-zkTEbv`E{OBk zFB3226)Uf{-4m>>Ak8h~RuUNERg>>!IId|j0^iBt)Ido^IF1e?=3O#1@nOl)y|xUD zu3}Rk(`+Gaw?O^SFArRAU5CYaxCfF7#2iULQ9x>71``umf@6Ay08~w)S1L? zN8GPpL(m*SS~;M4kWnZ-G>0CsB(JrCnd}E>BkQ#5H^DIa@P|fZYnPR~Fth(-?l863s?OyaC9dfONUBU^013&+ZuHi^LCXlh~?^EVc zFYv|{Pqn!f=h=zyc5*yGc=XZ+tWh}z1uK#CRRcv~&-+cZMx>Do5@i~HjhJAZi|l_* zcc@i((|CyMX!#Hy$_pS@vsLZBwGH{ zg#!!{|3U`wzlTWT8k2QhCvOF7zq8|J}mAaA07RsV*cxQwQ)d0l}n7 zdUEnEhZOCdxRG3rVmaX(R6K3Pqv2_fV`TI{lPF6Okox94Do_@w&u%=-hSRczL`Z6` zbT>tQ#|b{gz0`TlAM;z!2QBS=f4<=a+kS$=OlNKnh)IM_h69BJlJ1y@r?N)L@oX(D zELf?JSWhVbSQz{sCXU;W4p+8#1dz^0hK57o{m}WtUnuvgAO$H8l1y%3nD&WDCl(k! zHSpIQa)&dPc~u+IhDgh^JXhMX_*L5j;pd%=x9qUI!a45+De;hFsN}TWe@v-6DpQfz zo{`=2FRJT3E?6E^F(SZa%`XY)bLjkKs^40$XV$}T?hnk)v%anvUsL=g448Q`{D{c( zB;0nL*O?5^M)6YW$?_y@&*U~pH1P1v1ro@^b-FFf^k``D!kmi9C%d6%P zB`A+xMm_w5$WB-z&6?Sg0h}--!e3|$^rZz>pJOG$D^dymGO|in+~!q9LA7r$e@iG; zZ#_(gu71H5tZ>B9DF;_#+UhSocb5YD#;lONj%%LL%dzbNwy7@kDfX0^z|%r;qiM6m zRE5@dR{R``yzDIg8Il&>fE5tN38yf~mzfia?g7V)=@6_GkfcjF4&aiL-7XK+r&RaG zbQnTqS>l7b2FMR`d9y8b^S~=0w<6Nnwklqk(_U|Asf5)24r4ae9_;X;HB}z;el;3I zc}?bPizfj;z)*?3)Nd7?EMQ=K%g|*0^k)?0l(f4r=gUIcLAYiRv^iXKh9Ym-%S zx==jJ(RC;|b(tze3V9h?md;L$9m~?#_6fga-wt;RX;dp7mBE zq+z?4cEk~`jSCHRho1zTFx;7biP_mN?>t4WUBnV1lu;#qIKbg5oNG)@DOP||KV$p3 z61yUKXA{5rAG=mdS}Szk7%wNxar)xVO*QpMYbs6TAv-22*Kko*7@*pRyX56FTDPq);gnF-99?|1eZ0?c%JaA3>6C z8bq~XD&w`NtAJ=azLjDXEK<*^mKY^Z62k_FX;=K733M||42}UpAA(Ve6cLsq)~GgK z{xxz~wC1xSLGeJOCg^jp9nQy3-~_mZ9y+qCsV9jXR$t_qKGM}Pf@K}>_U4Q!Zk=VK zzH`goKtRGmlW2Rq9G@w1b$yrb_x8Y7NHPAdub0JL3_zqBl2&pL4XRF*d=pJ%Kz}9E!+@k;F{n;Z-?lNT zdjm+C-52dLMB^U+xM{F)CW@5^4qKu6!6 zz@CsYk+m`9hILqA`~BO7!k!`ojGUNV*`{tWP5>bmydl`!x+B%Z#y)c;t8>%N44RiC zLA}E%kIQzsLb0Q)o?zWJgUU9~4-QW7Wwr#*7WMx0BJAT@@aFFe$bBwwi96`y7zezr zh@GzA1TYNSPZKGeGVJcwX(El*Uv}uruMsc_jFr)Gl^x9@nm>f%hc#}$bJ>g$&PZz5 zxFhSg8}{m@*b7ud29y+)d4}cnF&KYVV*#iN8)PO5rw=aO-fCi;H&kgY|3wfXl+_K4 za9;@oOeYKs8Ox9DWxxVT51p@c7|;gP!5*aF0L4gv$bpVh=)H8r??E77M7a7DhrZu= zeBf}e?$sL(pvd-x!XFg8?)a+QYkGR1@AfQ?^=&z>_bD@)c%>6bB0ExudBFZ!P57lh zI`kwmwpnUpTK8=7gqov>MmVpRnOrf%a9+u|dSi#JgPaxAR; z8h>neVVQ6nO1_YVoM~s_!i>^lrqoc9q(fVW5ewP43b&a}%SuJcbC~sCX>LyhnAjqG zAc;luqp}IyB?n5CN$=rsl(h^A32szML%8Kb=#^=PL#e~-4QkOQ`$Uc7)0Tj6*2q=E z-aPS=lY_g6Al;g3VRSDbJ7+VkBsy(F^Wx%&1^GZV(nuK+by}Jk^ajOQXwf6m=Dme31}7=V#rDRtD!3NN@OScyiWsx`b5_{Sq#&ag6=n-)6;wDDHk{^S8eY z3Hpy`Dhls;n{)9%81p$93c_fmA{q__8zx(MiV_kpn38))o9eRxa;Fi1uAL`#4m08X zC^=e~;Wj?v2T)fMBeq&jO=C_R$n4}K;TSYjP#jhK(KB>lf}dV}m5pREdh$nV@nF$| zqJG-?@4Eo0Aert^7bYis##m00 zLRzU(#b8{u!8;6>^aq+XEuH~SDk=q z+j6N|n>MMACH(j`wHB#Mn?9+I|6&Zi;khmIC1PEz0kb#Oimjh$+-k8>^(z&sJtMU9 z7;?M|Gtkw4R%|dF*K82FG`4CMxh5?Ux;QU>q7+j(%ec4^a((iKh;~}$NQ;###dn_} zd+~YN|0y?0f9C*fDe-Guoc76Qb|MR6;&PNUT`bl)*vuQPRHzV)hr}~FIx01I7uC0v zZ(kC+c(=DbcJc|*U9H&QTv;(TD7H)<<5e!4DQ%T5f?a9KuGp)3{0noQXP z()b~cn#CQSU#b#71-6C3^#yL&w%!RJrQAp81_x$FSCC&p?8-E|+60d!Ff~`lx z%DWIRNEzVI=_ev}7S_tE8KF38X2AWadB8)`8TqGzuo445zbvv#&WL-*_7U7K+@;jk zUjKw6S74J2uqxB4S}uL8`&lGKB3F=zV*iL%9V%c?lAaox9zRWxY5U0f&ZC|27oV1U zpA}i_VgI2kQ^+qbaHRSG!{A3V1+uGR9ekG4p9Mf+$($QQc8zwt+f7n#c#4A9JFNdf z>LYEu(&B&rXJi+-P05&gE6tsR17B7+o6Odk32bGlQesPGxuW4Bj@_8%X+y7>i(l$23S4><4>T!*z~h70==4sN_VDjmv}o)yF$&v#l6 z>B|o_)#;5c@yCrR@8p+>FI~Jk9Bq@Y=>W1}y#^6HC<*Fy8JPCJ$VuI){|w`#Qa30H zp-g(MW5fH$Z4A0t=uq|8lTCp&`t!jE%oSYa?`-qPxj}ik25njqoK)@R3<*w<@AOaQ_H?Y4u6D6sq3|fMBPBBFyvlK?6#T z?D59(idjT)K9c8d~a?m#@=t259fHi)+V@ zxBQ6e&Ou_$KW?<}u-TW=le}G78ut|B)yF3_7W1bW`uLZJPZSo{&b|1zc``2da?_Tg zXNjp3G0#vx$jlVtG=0}Bk(o|CP5=bY_=AIgd)$uN%mtLUj!Jpg#|;%`aM$VGSB=uC zfmGct=-F{1J2!<%R?92=)Sgbhf9$|F9U>l!q%&U*yD++E9%nPzy)s*RhApY$LcA)+ zj~%FaKzNM0?xaJt!}9ojd+dpi zO50i1vu+NYs=&_d>DZ2@iz|W+NBz@)@~Q-vmNC`9dBP6td=m&BK6xM}G-Vk4PCUd_ z-pL+`9$B_>N8#xU!3*l z@|5+6a7wMEIR#Q~-XtjIm&lSFge4+7bCCn$@%*H=d6woarWT;QBBN3zGbdv<$PRzR zy+A_NPK)c~+#YQv9a2qlnipe7jmw$tn9%l1b`A>;MRktP zRCI^uqoy#GkpM8=w6phXGx+7uQeSDB@5mq4h0NKf3Rfp%a{T;|waEh1#A)OU(J%jt zXrc(euflBZ2$*7+d_>QoEDvv(j%ZLG!sx8uylCtX-iE7el9}T|H5wYT$_;CCK5uZ} zxF8_Rkhf7Ry82wb;e*Gp@y4Wj<56y`hI24e%;3;(IReGO(F1+Iif*0?c*JsdW^Dho#C^D5uWyvLuZ$-Onsp6Z;wI&iD_Z{S-Bpdd&K1Ff>bKK@@tr+LdSfO|hQO zfEd9;s4`CLlVo@OEm-=1T4#~P4Ft5=Pl zc;LE`*5ZR!xZfe!tX6grz1sYv&_bZZ&yrFoLLIeLt$G|oK>du%lC(08y>WpUAi3{- z+e5RT|4JK#qFj>nas=ZOvsd#Pc+#4(N9mh4d&`r1a0i1&tjunda!;r(G@SNQatO~= zqe8zn|BI$U$1T0SsTS8XDn{;M4+85{bLBR?lPzN)%uF=^s#Y`L#E@aL*zAFE+7W^N z;@2U1%rD7Fk=Ph(Q99tSqKwKLeY4eV7m-1dob;ELS3+S%19jmT(ouckT8lLz&Kfnz+Bwlv!m+aqbd zgX{&mm5Z<}mb8R-#5V0{OgW1Nys7+a(lCq**QrKKxb*8&>e3a$+vGBt>HA|+?xDlj zeX+c|KUs9f`%-o8sbxJSCI*0-Z-=pY9=I0`vL}P8$)B?oet!@9V--Bs(4&eB`QweYfFxyxxAbYB0R@0t@I|ef+oWQE z{ZIzZe`oY<=$@)oB}G4)dwhH|OPzBm|Xt?!n8mLv!yba(@`g8$OoS6DDG>i^PQlFS}&2n0a9=CuF+g(nmr zvbH_SOnow>kyJ=&+lw(JZ0Z@$R}#uFX38R9^(xL6kQJ;hEYud}BM@+$0vL9>*CHTk zgYK*A{zZb`e6O!sTPbZ?I!~W^2K=vit)0H!PdkLc5RY1vM(#x6Ewk8|rn3}DV|n{Q z`^mWh)l;u55lW!LX@DazvGX&F`2mp^$WIHQOW5_B<+sYw1=;Y=u-VlfL|-7~FDCXp zbC*uPMAN7PA#Fq81ES|IKg3}~A#H7o05Vd`v=gLyw^EIMD$-)85E2;`kNK9cPX(BCTocyp`EN;8o)*BLk??YruRXt-FG4hB~I4lw^-? zHn$vB38`}L3G)^@g`wDb$xap2oZQ(fF)P-MZmrgCTW@(U9&|#7MAuZ{h;VH-`n%KB zh1;a&wBx;A9$@aotApGK70wffXr3$Q35vf;2Z71gLR7Px{y^>d806MNrX3qJ>vmfA z`yda^71VM;ky4s)8g7p6=6L4WH=FF<%5C6v=9OR3@<-Q{{bxbgrnboo!{))CHT0YL zlP&CQmrKbgOZOEV?DtDnHEDaNG|JJaheK?LS^G6bq2he*-YpN1B>(EX$1E7 zvQSZCH2}9*#g2{2rXM2oMluG{zvfV|XOks}D9AB7-c&Ml$K1 zOc?X$O$ON=E*&K?i9=ZA9hOA0+0t*L!2}XrYLZVjyxK`>OY6_=@7I0x;TaBL=J?Uul@epR4MaJ0)Xfm z08oEH{#~R>mD2?4ry6r!h;VMg*@Ig{ygFW#bsdi9ALDYyi=^VIID33yAv(^Zo@|kQ z{Dx>}-?`~1%Z-YnJo6ctwR)>0$_3c;yltIKE~~cr6&AO=W75tw0hu&)hwTOM(Cs%` z*vm;e8lR==5G7|M>HruC-(LYhAI+--!05`O`rklA&5e&kSI>b)6xa_FvSMQNXH(M` ziqs1g7ofH9<;&z@Y~zJ*DXj+XLQItASMJwNN{) zBSu1&+GuR#+*Jz%>Dd~PSc9%5V;)Pbt=m)b&po^c)-vhbFs~dbM3>|-_%@z0;lUso z%2&emJE-e@c|ZPv63=Y>zFngql%x$ub+~Nr-y%@|js(9U{~BSkPfxHrXdi=82|bkKFX|ZgHg>?p7V1E(JaH0TIi3iwMlQdo;ZwM184;^T+N^N;+ zUoj(4nAs!*)5c|n12aSD8KpcsSXbz#7_RSNZN1$A34hKxkLj-E&O33A>wZeQX#>T) zs?qejxcbF6=d17B%jS|22og%Elx!LI1#EcJcy(f9<=I8%TgB2F1S->!!-? z!>eq+l3nZLDrq~B?eV<&0CAq^Yw{aKztuoR`{$j>xl(Z4lbyOD zbPk90voi`<+>Ge$Q=O6__yXcXTu^Hz(jhpD^aol{c1?0)&kBEkvt!xuS%NC|bvyH| z=T45@DgLVMI|^urD4waiz`S?iOoVo*99dPy?I11;E2<1VVBVTB-=MfQq$YdFZB&}z z0z9Gknv91Yur?CVh$SfFXcr<}GXj487yYSS_1nnlhafE_MPID;ryP2u+POJ;0`Lj;vTwvEtuHL?ZmexBfff$0wzitP%G*kz zzzNVQ&}2AH5XQFxi#s#s^2q;e4E7-rGtZL`F?@Vxw6DF_d+v^{VH+uu*F3MX+bxs& z|Feaa6Cr?oZ}T&riA>t_C~*F*jg|-{jzti-Sdir`EmJEx@d(*7+^-{0Lb_5G3ea^_ z00taf!z(kOBYLmLT4*; z^wxTP55t;q$tQ-l{mLRH9Z5*Kz9EXP_8j+Zm9v*C#J+n;LMOPKLjU3WJ5 zsqWxtFE+6>^kXoJ_K!)Vr+tivy!Xabw;bYLY#%UG9Wa)jrK($8EUK!6~hxQw?IYU zmnvQco>Mz-acO6AW#zI**v|3NBskm_#>1O`Zs0$vS|tdKuWVz1jBH5ah84oQGZp1~LfyjQq)`ZsMf?(g2CztuV>pPVnGqItu^v3C9D1t-8wYCmAY0cFnq6%wjk^&GDj*~ zH9h0dXa=`$Df%adpU(L_Z!;_p6VM4|HffFIE0v9_;akM+4zRTBr2uHLXZ&jFLAy~` zGcp0wKFQdtCGtKDetOH%R+oi>vLU^?A9YU%d?))W7*Cl@GX9qCASk*XCw9Y~BTxSrC&rfjwm??))b?fHZYe)GfL z#00&`IB79x=eoni&tHi!;^1m&;p;L!j6*xdRMLUx^{E$Jg>3dVaV?|aq`-o7rb+4r2v^)E%@MH5MMe$oNgE@U4M> zIXTg+dAY(yk;SEQc}c50ntUbB@5(EqDMd=|=@bgOY>9&riVTje18qu}X&?7#irmDW z3ON(wxeby$3Bdcea&l_BKQA|ZXSLi^Q|Pe_V$I*MbO9aC?5{Cq0EUl}sX#9Eu)D#N zH^dX2lwga`q|Pj*sgh+@U77e|l{1~v2Z}%k!^Kdce}BM)0xwbhbL7mD(%sozl<_ty z=F=x^%5iTdx@}4=+BDW71-nPX5X@~cJoDf*9S9Mp3gE(MP&vftQVZWPctvM0@6PS| zz|>ngWa!cXpZRbr>mwJ@@MEX9LH*9}lSkTsCTngvYIAq4kLE!Gl|zW@(0qYqNbWvU>^bM$8$a%2v&RPA5Tc@ zT=x?8Qog7SwcZ?E=c?3ZFEMU6{a^Fo?OQLbo8SD^0tzEaruTjZRnfyyPXhDH1b=U= z8H$@+j_DAG(XejJ9(KXK<$O9~_J;f^KHFpV1_Az>uT&rrpo57=oOs&)3=Cx$4J9=h zi(~6bt#8Rfj;=hq?5iQxK;%ock8n^See#Iezo=~quO;e{(pgw$);y!pz}Mh#l$uvm zp}NDMPjFQQSL2`kbwQl2MTg|CRq)!woOFa?iRV1T)b)#k!$!=tK46on*a~V4wLDRY z)c_yZ8_JoZmFP4|Y{_*7c!rY<4L6-pQbMge*#8PEb6PjRW=(XVUxyez8l%*{$Fu=_ z#Sr?GwTCEocx;4UGDFsypR8XJqlJg8ScT+a2lFZ=d>ci@hx2#7SjHyYlk%#p>?y`o zukwTy;mJuViCQ`+rUPns>#qdRAB?_B5&*c~ln^70JIVlG^a)GEx0slQ!yAeK#nHVZ z5{l2#n1&+)*y$J?$xO`lvj{1q^e8x{EBG$AN>N)=j)O%3MdD7A6t!r${>iRmWx9SS zz`;X!^$IiuS?A->!;zlBf5n62xMN4SJ=HtI0B3X)zR*}|y#^B3R7U<^WT8u2Wq@O_ zQ2&ccM&7-cd&}eW_AFe_Xo?#dK2vjr*w;82Wml7gTkX3nadlgLLGlKRF$m+))TSkw z18S#=B{1QF_Uk_#(NZ6__F}h!^PP!Q_Wt~9O)$s0)fbnTm9N#b@E6tB^>p`t;g=2; z|6Vea?cl)e;3QwiQmqAU>1yoA`2oTM7IDyT*ad#sJKEV*JuKaE9MqCoPHdVwW=873 z+U^o}o9H|-_?q1DwB2l^c#mb}q%Q3vmr@rrLz!<+bi$#qV$CtPgs9Go9Iew+WP|EQ zXFvtqB{dkSGci8XkC6drj0+Azc=fp>Ok+m;?W`#B?qmAwMjv*PZ`d40f`HhLXqZ|P zACa3?Dc^{5h*TfRW{InlOo;~{0^Kpaf>d#q0>Q$Ecovkr<42yGDnHd zIYy<7D|3=?E11#~vT# z16IL112YO3Dka`t(!cAYaDcNF31tvp#UX3;W4RB$z^8cl{^(6JS;{|iDaf=J%v1ns_SW`9;vsN#FI>1-&R3#sOpgvBTRiAuRUa+1Xn%U zO~fL$Y6#EJVe0PeC!^9EU(yf`;o?4&!P_=okpsn*C25Y`C|4FfX zcRu4_4>c!n(8Vmz*_{-jPO29tG2aS3btg^Tz`oKAg>MewdBtfeAt>J&t>vnw&B%pk zUhy9^_nLR&kq}qqcl?``EVVi02)pbCcw|0bWv_ckJ!XV8-T%&x@ZS93pFQ zpmNz8#Q+S}_@FTNK+I)Ovi)w9fdsB|gv@hg~~ zv9ng>fFI`x;gwW$#*le`>D5lw7{)ki^p(o}%j&@&0YumT-=aR0e^I~dL%7C%?YAsd z7fT@p{n)Gc^0ui6m6F**d?C#W5(x&$*Q+ZK2j8gG;)C4^{@0!w3*_(?4%m}uj_9}T zoi=pCtsp5g0(Ac_iP{uzeQEs7F&)gt>N>A7D-;Vq|F)y(c~y#9CIJ>L5nwRe+uw^H=QV(>=KBMJO~e)@w8I=z9fy5;Vp)>q#0DG zl7P}Gg6HHxvUBBIF-LY7!*hW?3B|D%qdpn#;z8iZL*j1&^K<>BxRgX`3rmcaA|w|G z#}?Dv0%);L0uTp>RcsjLoG`ja_4opvm!T*?%&WuHHxw$jAxrd*& zn8A#*?}w&Ad&E_=K%Nv4oS07XKnKil?323bgw1(YfZIbCH(J1AXApRWvn~5LOkm7> znWa2SkoBQpUgTTAUn*>s1_z+I@NSmI{B1&?0=Qynm?CK$*%63yVvBRKNEADs@%~tf zWy>!+Hsvw9_o5A9|95JM(|ujBEG&x(IX?CRAPG7! zo&v;vOOAGHm=SDv%ixO@vzs{CupI7dDZ>matHK!@cZ>1gihso~CJfFFYrNpi^1_7Y zi#%8vH^GWWiBqd3$-@mM1kv7>{}|;OV)dDmXp82Uh?}@hQ6mh!P<_Mrkezq{M4(1M z=Z!WZ3S%6M_Z1F5Kwbso?Bh`FN{?h|Xr}b|!LAAXu+NoG45{^iRkEk$hlZ#1*~$OO z`y4_ZD9kyV@XzX*e^c!tKn^F^RmJ7M`p-^Mq(6-m6EO8ojAl$8QroE{MOylv`9Ql> zzF6m-^HZv7+|l&{xEG`FU3E(jINdYthqR~kVGSe-lG;pKnPwY+WF|P((j%5llWi;{ zjL=j2`)(IGJ-At>gx=2z`y{@Q)N=rvcYW@WbTgS}#K#V8YVNkHYvn<6i70A5uDY=z z8`SBGn^VJXfG1tFna&EyxT=)-;A$hum%Hxjj3CzbC#4`{%5L*`LXcb>fa);`XGY27 z3%g~*8xkNyzV|YkTBbcOs1k_Tn_oWMn0^bNpa>bZ;B>TcOcl&524Ij2@NvuM1KSW8 zCeswd{TsoDyjO7#<<{yI0P7r*c&BCBl5bHNJ3-fw^gY2MQhZ0()h}^p2t5$CPE*5w z=I|x>88UQY-aJV{tMht;E8N8J4%f>>2YKBm+Q+eI4p5-}5)S7+P#*afqEBS`G(re! zz%!uSeujiDK5LXd7IJ)mtccbqgS2`OE_L)no z%s9W8xn$^V4d=>)BtBoYglXJCM7+$Zs=H1|Wc>Yg+>m;T8E zdx{j+j3T#VNhsPk$tIbG5@~X$3Ja%+EWUSysuWh{X4TaBid{a_QT<;ted;!_O0j26 zPQ$>D(nrs^eE!Mm{m*VoNiz!;OC^tV#o-f1>JhY_DW|Mcg(JUkeuY%3u3qRj%cRV0 zVZ|8bYZ|8#faV+FYg@vW`C;`REgIESKu8kTcVe3_<=upRO;4(qvwNPuj~QW2#1T7P z<~Umt=X*hNPRPLEcTTQ9>>MpF4K1TPFV9BWiXJP3LR)J|idF%4_WKGV3)Yv@dog@r zE_lU%&clS4Eu>;e_aw~&nB~?Y&^BwERbbY_L1|eG_`$B`;HBi)l8Ro~^aj}^ro;=2 z*Nb!I52vO?TV!qrVYT%1V-}%QyedC7x!F`kdA0&gw%Jl4JI*&-H!8r67`oY1VW=RY zCOVM+)a#uN*n=ppXJ@TzDx&*}MIVky9xlOrzyQySK+TxVq#O<3J5o2_oNU)znkHO@ z3P5BNMApk;zpijzXy+!4cQW|Ix!hbp$%C+1@MZRWe@hc5SHdcJjOS%1RoV;jWZID2 z+j&F^xiiju+i?o`LJ7lAj>J#~@4!%o;K7Ed&&@1$h4`82XbHgwVTYVa>H&eD`P&H` zI&;zzLI%S6|5R~pAyGw9)Vq8lQ%w07n?}cpOqhI3qM7MvS}K-ip;VX}<>dGpUz0kH zL-YbavJ@`0D^M%?P@xA%1R;SR3R2WhLFAWTp-}n}l2Oz?b8K|(&pqedv-e(W?|pyn zzWZEPM{XEt&JHaV)I*OtBjtDSmcgA$Bn{N#7!HrArqu*>bX-UAUC2)n(bfp1%41Qf7J`G~fvqSAL8o3E1j24BY zPT2&y6^NlYH>0g-WVDlZ$u7K6(b0=W48Rh#X?JZCa*=(OMw*an@cp@Ml3m^#MvLRv zVghY#W^2QzCI9bd6up-(U2bMW{YU6gANJBrGb|XJ{Le+zyo{!UE$kJ)kGLDEc{Gv5 z+GDA?2hnuDg>{`WZG!l87oupnl?nY4&(76RX&+29=jPpI4qmbJQ=}C^LAw{Hz3U|}ZHl$&e}+XHP#h>c5O0sjDVmeG6w