From d7ee05dd792d91e5f54415a3db2bae0a7c1acebf Mon Sep 17 00:00:00 2001 From: pointerkung Date: Fri, 3 Mar 2023 17:30:07 +0800 Subject: [PATCH 1/5] Camera: Force front camera always binning for 720P or less Bug: 271241073 Test: Build pass Change-Id: I519925dd475283d1d5938e26c3b5389a4e9ee03c --- device-felix.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/device-felix.mk b/device-felix.mk index 413fd16..0a78902 100644 --- a/device-felix.mk +++ b/device-felix.mk @@ -320,6 +320,10 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_VENDOR_PROPERTIES += \ persist.vendor.camera.exif_reveal_make_model=true +# Enable front camera always binning for 720P or smaller resolution +PRODUCT_VENDOR_PROPERTIES += \ + persist.vendor.camera.front_720P_always_binning=true + # Bluetooth OPUS codec PRODUCT_PRODUCT_PROPERTIES += \ persist.bluetooth.opus.enabled=true From 4267c03e58e3f5877b6667aa123b0bee62ccc654 Mon Sep 17 00:00:00 2001 From: Suprabh Shukla Date: Mon, 6 Mar 2023 16:51:48 -0800 Subject: [PATCH 2/5] Add device map for wakeup attribution to felix This xml maps the devices that can wake the main CPU up to subsystems that use them. Test: Builds, boots. Manualy verify the loaded map in the output of `dumpsys batterystats --wakeups` Bug: 271922941 Change-Id: I3988cde6d8c5258c1f952ccd8c0a08143998473a --- .../base/core/res/res/xml/irq_device_map.xml | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 felix/overlay/frameworks/base/core/res/res/xml/irq_device_map.xml diff --git a/felix/overlay/frameworks/base/core/res/res/xml/irq_device_map.xml b/felix/overlay/frameworks/base/core/res/res/xml/irq_device_map.xml new file mode 100644 index 0000000..beb5166 --- /dev/null +++ b/felix/overlay/frameworks/base/core/res/res/xml/irq_device_map.xml @@ -0,0 +1,27 @@ + + + + + Alarm + + + Wifi + + + From ee538e6ebc68a224768734ac791094988966476b Mon Sep 17 00:00:00 2001 From: Jimmy Shiu Date: Mon, 20 Feb 2023 16:39:20 +0800 Subject: [PATCH 3/5] powerhint: Boost GPU(302000) by 1st frame Take ADPF_FIRST_FRAME hint to boost the GPU freq to 302000 Bug: 243025173 Test: Manual Change-Id: Iac5c503e6fd8f19f0252b65f9ef10ed82b3ed378 Merged-In: Iac5c503e6fd8f19f0252b65f9ef10ed82b3ed378 --- powerhint.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/powerhint.json b/powerhint.json index 9d2338e..605d76b 100644 --- a/powerhint.json +++ b/powerhint.json @@ -1553,6 +1553,12 @@ "Duration": 0, "Value": "572000" }, + { + "PowerHint": "ADPF_FIRST_FRAME", + "Node": "GPUMinFreq", + "Duration": 50, + "Value": "302000" + }, { "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT", "Node": "PMU_POLL", From 0277cb2ad365d7e00aef7084a1ae331bc168896d Mon Sep 17 00:00:00 2001 From: timothywang Date: Wed, 22 Feb 2023 16:48:05 +0800 Subject: [PATCH 4/5] Do not use sensor output ratio in itp output Add a property to avoid using sensor output ratio as the itp output ratio. Bug: 263851685 Test: GCA, CTS Change-Id: Ie511989e934fd033e6f375c85675ad9b26de55d4 Merged-In: Ie511989e934fd033e6f375c85675ad9b26de55d4 (cherry picked from commit d5b8e013656e4fb907b4c4846c117699eb1bc7ec) --- device-felix.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/device-felix.mk b/device-felix.mk index 413fd16..eba6a21 100644 --- a/device-felix.mk +++ b/device-felix.mk @@ -314,7 +314,8 @@ PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.camera.optimized_tnr_freq=1 \ persist.vendor.camera.raise_buf_allocation_priority=1 \ camera.enable_landscape_to_portrait=true \ - persist.vendor.camera.debug.bypass_csi_link_error=true + persist.vendor.camera.debug.bypass_csi_link_error=true \ + vendor.camera.allow_sensor_binning_aspect_ratio_to_override_itp_output=false # Enable camera exif model/make reporting PRODUCT_VENDOR_PROPERTIES += \ From afefe55e059353749653347dbbeae331db0e2ccd Mon Sep 17 00:00:00 2001 From: Jasmine Cha Date: Wed, 8 Mar 2023 16:22:10 +0800 Subject: [PATCH 5/5] audio: update playback tuning 1. Optimize playback tuning to reduce overall power and meet thermal requirement. 2. Volume cuve tuning for media playback, notification, alarm and ringtone Basic function Regression Pass TMO thermal test Bug: 269818309 Test: manual test from b/269818309#comment20 Change-Id: I06e6f351dab40d81053bb1bfc4af5f097ad6d1f4 Signed-off-by: Jasmine Cha --- audio/felix/config/audio_policy_volumes.xml | 34 +++++++++++--------- audio/felix/tuning/waves/waves_preset.mps | Bin 312321 -> 325381 bytes 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/audio/felix/config/audio_policy_volumes.xml b/audio/felix/config/audio_policy_volumes.xml index a48b103..7e04dfd 100644 --- a/audio/felix/config/audio_policy_volumes.xml +++ b/audio/felix/config/audio_policy_volumes.xml @@ -64,8 +64,8 @@ volume index from 0 to 100. 1,-4735 14,-4170 - 28,-3460 - 71,-1530 + 28,-3600 + 71,-2030 100,-200 - 1,-6550 - 20,-4880 - 28,-4170 - 52,-2880 - 68,-1990 + 1,-6400 + 12,-5360 + 20,-4700 + 28,-4020 + 36,-3570 + 52,-2765 + 60,-2300 + 68,-1950 80,-1170 - 92,-470 - 96,-200 + 88,-750 + 92,-490 + 96,-210 100,0 - 0,-6150 - 17,-4900 - 34,-3450 + 0,-5900 + 17,-4650 + 34,-3210 83,-1430 100,-400 @@ -112,9 +116,9 @@ volume index from 0 to 100. ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/> 1,-4920 - 14,-4450 - 57,-2800 - 85,-1600 + 14,-4390 + 57,-2740 + 85,-1570 100,-300 8dXkwOkHFz@qBP1jT8?MRpj!K3CwlYCRvPghq} zS66ra=6R0k+w$0Ie0A#hI|Dbtu$Z7+yE&ooR{j&g?Z3j8W7LTnMSu(67tHTLn z#+Qs8Q(P81y`rReRLR(JvE$0ihL;R))^@<@$MlNzDJdRaF`|4-$++gNk14ybWPEw~ z_z~H8y~~G<3ioJ{+jrz8C1tT=E*w6tK7GOlFoMJ2<}ZMDt7-#XZO=l}m` z1ICmlkC&U5DnRV?;?j~f+ntuO5eqZqwX=WfRaQKD+=!C0vhLfSI;MZ|(6W-)amB+* z22>Q~yWG3{;xR|&pHy5izPuu4_Zhyud!W>gCGG#eKl0v3P?a@5?D+EX^UF#GAJ?tx z;IiT|!^aIPt|-~RZ~55qV~aeRX!SN=r$KMV3szHr>gVX4#NKj-j&$qzM-0A&_v?n1UeH*CQ$wTeGw*iuro zqV^9BbV2&fK>W3N*g6CNt#SoAB6XE;AFc9S*v19wPGPnfwzUvHG03+7`{8yL;>E%C z7U-Y_E>Ld`t!cH306?J&y9)Hcm;eNOI{=*owCe1_z82!8xSs{8`u!Ouy|}jXph@f0 z0g|HCZv+6lSeQ8k4`eVEzfg5$c=L!WOQ+9Vrn=c|bf(<}0E#RGS7Q%`qU2|F;vj+V z)xkC!88}1$;7|*f&BeoHpZ3Aw4Eqk^lgLKuw^E}=3IH5s;oy0AG=nKY^FY}Y$VL>< zs;2*^;8wIRXF!EgX3p4q`B+ZX2A-Q1ICCOC}WL;(0b3ox)%N zfFTxgZpLB;QwQHBhBBP?>~7aB?^mOS*=%HBxBx(jg_@yQY5@SxXE4^*su7Z+)kpz= z3oN`g3r8`SQ)nNQF_=@x#?dw#m0*kjK)HprPhf=w*dwT92%B-Nq-Zrx0ARd@U?5(| zu)eld6&1A&E@D{69dT`qy4Yr;5?mqxaH)kh3vq%4C+%eoMCBlJXoi$k`%43767=$Lc9#GWiS=LN?pfLc~tJZ_f@pO>uokVg&PC_Z?rJ~ zNxaDd^~9SQjDZ#EcaoyjtpWgd2xxVu3wK$FpNvxk`eKy@D$Z1aSa7#MmtdLz;5`Bb zIGw>y zq|P{7Qfd+pT8NFnITof&#<>Ky@qf4T5)fl7RrA#8>B7{XRqEZMYrUjXnw0$Tmo zg%1Ss@k0yL3LjaZR;aN+t*}G@;C}*IEfoOxKNmi>Fy~ra#$c|W4eAqyA8Ko7R8?&s zd}_1N<@}idz~=&5EqCDyf&FlWh0c@kO9nFw*bP_O6xb`!0syN7wE9W_V6_Wt1SaEJ zhWjgccv!F2F_@dgF2UE5O{;GN0KOH_>N^2|?*$5Ry}+rsL0~WZL7;n3D?kHI7L~w! zw8|2oCoC75TgaP^*$m+i-4K&#dQ0J#E%*v3Mv0`nNm z4Qv6@0s!4y=emZWHPwhQN2=z1#-v_J+1F_`LItj?7btvAP3JE&}xJLz(@-P&*KFQrUVd-vMG>{Wdd4_762S$ z;n_Q|+yd1>g+LBg3TQP}0AO4Q@!XeiJVRK53&RwkN1lrWw7OUT;1YphcqxOKY&Q=k zFeINho?WLVN;a)769Bl}!gg=r6&9d-aHRlXTtKU<1OTqKfR%U+gE@t~;97>{lkcFf z)pa%-HRJUH05@2mhprnL%w^U#xQQWr=(^cvBLlw^0Jz1%{0H$?3y>ZBp23u0rJ5uu zT1^%J_=AO-p?I4Gn$X?OV7l^J^+!q3>J9;bJ1vw=$GaHJ7{4wtg~3dmKUY;Y8=b;b z0f4(L&_mZW3pByFhar6Enl33?%@6>XY2m#oILiXmB<^J}{h%e@Cn;LpF97g>1$yY3 zZGj%T9%Kj~y5>lVR&xaa94IgGO_4Zlf5r!}50pYsk->OG#HmZZi1OOhlKo4E> z7>t2c>IsJMq3cPTjSM^`0Qe^h_&Ppqfv(197{Vd#&yu3m?B{@aCj zU3kxh#V)+>!V&>`ViC~lV+M1ff2Ed53cx2WeCony0$P1;VNM*EGlW<07dC}D#R>s{ zF9oz(X(8SdwFMf8S2+M*323$20`|u>7HFTf0y(%&0N`r|GbS!m-?*^B&Gv%@EXP_4 zG$nvsG7x^UTxeziAIIhvXrF8WfEF&abfFbPShgG&TD#eDU1;M%o(r8_*jJ!0?k7Mm z+68j(00DsRE))q=U=IO+g9LK$U;%(5T{uc$G9E1eK`5h3gqB<0yI-~p+ukpO9cSV7s$a8 z0sv!NC>NNF6#@X20y#KVfaZxVTq-aRCkW6|m_QC*CP33X7p@Tq@LBjZM}dI6fH zxp1pM0sdY9V3G@WGMF)BFTBgb;+{A~vgKfv0Kili?sj3C3-<_UHC+H;h6^(Vw3;OV zaIXsw3DDa~fo#+QXJd;twv%hMtpGjoyO8g~b}qDYVS53s+6$b39R#%6$%UN-0CsVq z(1l%H*v*CAU5L4`hYNeUu$K!5xbPbnx>yJX2X37DG#b`0{?u@a!;!?`Y=;Xf;rP zp6dm)I#&STJb`>1Y@wnOhcK8qMJ^WG6j}%wDgZD{fEL6AXhF<{QVXw4!Sfl+jq*D+ z!luxTf20F&feWJqv?>z-7%h;GV=PpR#d3z^6WCK7vBIX%%e6`eAPbtm(y}*IU>0q3 z)h9pn3XXQBwb7AdN{VU8thxC!)q8)+I)S!|o@TqTXI57E9`x^9T0h&!2EAL^$VO{x zGmyeA>pRZ1YkA28*img3{7uiK$hK6N{=(qMtj_Rz(XCbez;N zhx6~Wh2^HVDH|QL6=zO<4kg>C^aiA3!D#1LaazNOC#a|l7V{Zr*wMQz0A%*S=xs0Fe4ETZ~d zLiO944$Ey7e&PW@O=>IO1E|eTq9nEz+T{9jZDtdj&jPZ^cHOp*_oQ;t7Hw+=?YJph zeU?mBywNM{TeRNNXtrqKW0STPRZpYx@HRiW)mJWB zK-i=$YCkmF6smXLqU)a49~xlml4EFsMO#^Fi?-DwYtyz$OJ~zHG&_0y(4pyPw5@gx zumwY=9h=-@Q;r4R>akVO09&P{$I%$V+dj#yK3nwCev|dZV-RmVPMEPG`W)%~{U&Wm zJ03uF&s(%Ddi~!3Tk~jt-fl^4##Y_&f?k$yWNXvoMc)?yCa1RO^3j{yjci7Z7c_1M zye+COOK#!0)-4~s`P#_VrpuR4Wy92F%C}>utY*~zQqs6wBaLGLBL9&GBlAfe$pGyj zDKw}G(Ak9Gg>h6_UKm&8g>h9?UKm$Z<%Mxx7{|8{FN~}9!Z_*&TG2COI9bq&Ccq&? z3FAnO``GctUKqz$(AE>ig{@E{jpc=L5SwI#aeb22v%w4FsE_8#(z_SN@nGkLarEUI z=@hh%DBy*0;DvGEg>f`)dSM)Z7sk;dffvTn)!>D3G;{F6I4_K&OTi1{o?WKAFpj>y zEjlAFjHBf?FN}kqr!bD3qPVgeFN_25!Z-jgjQeQ`Ar1NnByv%9%iI);PkrXj|zC zm7Xvz+E#kPxM*AH3FD$|r6-Jwww0bRF4|Ul!nkN#=?UYaZKWrSi?)@X zFfQ6wdcrtktL}J_nJ_N8eCY|}qRW?=FwWTQ3|Y6zbounHpk^&7cTVV+j&}=}w84fbGIibLZ_nbb{hxepGIU>Ag7^;(I;0+G%X+rP#@Sa;Jyl1EddQt8eKD;LdvuN7z zo?$E0xUH~6;MW=6vpN;tb0aTi#-INVKD;M*FJ?T|^WO+r_uTYU?fww0bD zE813iimYf`=_#_JZKbEkinf)WBFosSJ6>d_$cipsdWx**@@1yTGB!uugyaWtt{Dc z1v*mnZYL$rg>78eR)AuE%C7HBD@z=ifM>>@y4Y;eK*%mO&n zR>=Pz#KRcO8{<@*$@?pgqOk7Sc!bTi1r=IB3HIXSB;|ocv4Ex|IWUnTl`Waz6`eh_C^dc>8bUZIt&dRL(ZFr8~>BZbzWNiUM~fz@gzr=0feZr3gEr`0S5 zGoY+d_cCmx(4rvlw9^;reoiqTtsY=lL@u*_#AgD&svySiGQ&G>lHn4gl7uyoB)MMap7++ zY)+g>(-v|JFE1=bP0s!9&+>aqyQ#*FW{cQ@J!T|yRzY)-?3xkc2UiLJ#s##xN&w($3s{NQFeImW)p^0S3}&$VT3u(e(XHTm0e~AUWE^Mm z(^+_{wFWxzdj?a2CU&4@2FP!>qFl>7CM`?c%XN^Pxi_@~Ei((yUamzw-pjRqOs@6U z*3?H+-90WLA4iO zV<%t-0j+j&VP^q=U0m?a$^Z`I3Ni0cytA^*ot5daID~7I7eDE>6c$T=YZnX^02n6l z(~2`WWSogJX}+Gj4^~J)A*ghK-a0n#&}=-7Pg%5STD|AbKmwlGhA|9jh2MPQPtzLh z2fZM^U2ll@r>&T_^JyDT%e50|!+^I%^cY=Qx-2oZYH?yw^-1(|C)%oL@qmt#_4r)+ z_rP%eowo3pC3TKTdV|#GP_lbUZ$LU0jCPI{PmuqP1U)b&=mi)34t%WSF(7pe+F_$( zY+j5=Q_lV=8>^^pxV)K3(jK1+bnbO+W+q#SwwamK#MtZ%t?A{nIqyxyZENl0w#mbw z*PyIU9K>UYdG-9gI#`xEv^qq<)u3E9*Jx18J}C`KxVmwK?9;?vf)>zH@}w7AdoMv= zgVJ;wlwhFIpscU;aogwyM4xuS%{&Ac&BhA#J9j*|RRG`)0j=(I;VuibEIUP@FIHKg zXOgJ`vEXijF2OW`C@(=~1>yhH49>Quwzk%4P|Q^FE2BX%*-{#mP`7d)?_*%a=4()5 zBODFNl*z6JWoLXyO6_V;I^MPwG$@eLpseFDb!|$6LRwDTLSBNBT_?Vg2E}^`YH}|@ zVJp-~PuwF|BJk_<5(FtPK}Ke~UajK_F_WKNyq6&FC5WyX?9(Hi#7J+vmmt3BdD+R2$xb%kOAvtf66C!E@d)R= z1bHt(+z-5$AnzrJ`+@foo zkg-u$K9QLuqjqngHajU*f1%8Su9zqRPVe+*FAj|vjMg)IR=2YveXuBt3}qPZIzbJCP~ulq#TJ3O+TY;wQGPa z7&7hHUA)ndnvz~c+e*(%P_(V|yaX9rb;pa$S0__lN z0k1&x{w1ic&IuaPD^Prd>lLWI>lJ9{V9R&~nps70fHL$7ROomGBHwdKuRumT(8=`* z)IHeRUV&m*pI0FI%A)N^belNbg^j!dc}GBAk>%sIu`|mib_7IMC4GF{HXg5i+%~Vs z;;Z3t*Tc^|0RXSa0{EIM#3*Q&sc&4^;8xWS7SJoQxL0{amRDqPKk$kyugKzl;1yY3 zk;VPsm#fH%S2m#{>yY+YhqV8wX%$)Kn8T?NNldYY6j|mNBthEf7@Mcaing(NiY#NJ zuEHWSMb;thf!eHb6j{->(oTd$MOL(}^b}dqw$f8%McYbGkriz#Jw;Zu zt@IRG(YDf4WJTLbPmvXED?LS4w5{|MS;kh~@gg%tR&@E&Q)ES#FEd4!vDq1NoALdC zw;y+=^-+u>yiw@0bDOoG+&O*A$BrLcJd*EW;bJQN*31POZ{_>Ev{Vv;59mfU73?h) z@~e?<`G9T!LoUFRx#`X7*p9&|493C6Hh8LZ3W`1quoLvXrHfeuJx zm|SK91OU#k(D80O(*g-*&SEf2re3<$WYR4k(Cz0W-SPq5_$%!df2Xyn&tzV6F%g1n|u%|wT8@x9KXR(yiJmC5mZaiIihAZUF zWa#c?>dzu{)oONg`~IK@KJLQPETIChw;5q>> z-2&)~`$=Rbfc*t>@BjgT?k;%gmX~hv7{B$TTYPl*CBzleYFqI@M3KZ@$ai5o7uvb7 zy?~D^HmO-R?BQ0(K`tEZ!XYjkD&XUa@x^tHRESms1po#KXmzeYz0xfoS8U7175i#! z)>ms6Z&}%uIYwr(D`TUs1R^uZ)K_bP&b_Y9%w!eOHZzk#7@IXLaELXEa~iL3ph3zj z9I8^`!b~iUCUQ;_L^-FKSn$~KOD5#{aA7`NSkr|I^9l#AaNyZ02?riv;XqQbbW&%W zEh>VV#DfB7IN`$P-Qk7{1E?olSf5E-AzawZRJgF@xj`yim;r$2VrII*(Uf@Cpa7 zaNxe}6%JnE;1v$6)Ab4m=z1&CTa)mfMQ@!LjG%e3I#*J(I#0ld3*&KgTv#FT+?Q}X zgVAwAaABANq~pFwK&y)d$Ro4`uW;}R2kuf{;XunxuOqz!lo81*9R8wa+2!0<`Go!a#w(I7on&F9dS%JOK)}>OzS?1(pf`oG*}rBLo1(xKJ)I87lvE({Q$Z=SkvW(e^a3-Bz4mK3FEdB0|Oc9_C# z>J<+8IL21Uka5O2jd75@&yR-->(Gq9l)Omr;Sg;zGlhe(IeCvZuk?QwwCR8B>HT8^#*~(qapO4;Pt7QOFA?_Z%qZdApO~-#9y0-twZ1?qFe!hHUe7Z36P5l0g~qlbilS2 z;wJ{=s3I)Eez={5cyX}31v+Sf3+-LlMSy&ayRfT34~#LGH(v`AX}fe-Ra>i;KCm{i zKU)iR`3J~xwEB$zU>6JVVmy!`_2mZDl_50H&1R!B?Jhv>9R>Pg4*`IK1ak0T0f0kX zIMl-7bMP>R(4E2I44Wf(fSd4WYmG$UO5huX0$TMH060cqAogM~@6qxC8YOa|PjaYi z(;&e^Fbw;Mf%WPHhSQQ>L)WMi8O%qk-wFVbE2vZord&E0FAnXEO9xYehPiZzm$@z- zzEG!I(^Mfex=0D?ap@3DbzM5-8Cb zmAGSYk-$=QvCT#$xI_Tp(h%Z*c@-yw08kK26rcwo0j(|<$j2)Lj>jtn@`E_T(&QI? z)~Tx`MXRd?0Ivxl{>~eCEkmjwB(7r!2bAl>Yqb8N$l2qwVKH(*DdcygTQJvi@}U8 zYt+3ACf3)->OKYvj!8Rxq3&lepOoMs_ucy{j>=6(@USyJDW~ERd881P|ZW)?WGI+LYj7J>7PT zigpZMbxr@%g=zt<76|~nCQyj4TNw05e1jnwuc>PhzG+jSWAK&$z}o^^y(0kdFBkr8 zfn+D|GK8)09z)m)i)}V)h4%#j|0AH)e_i-MARj-pK&|kR1&CpdK*wN-KnBrxOf;(v z>JzqRuB>*!r(#;G&jbKI7tm_C3ttEn;tC7%|A1dwfIV@gz#f4X09YlU)mH-b3Lf6O z1=n&mbD!Iw)-jkHUbD_C~OQvHs!%@lcDI3XOp$zyfZ8qvitpwl?>iN<4E zd!uMP1&tJq$K2il$+cnF3VDqgjc4XC6OAW4g+e*g4qGT1Px20uVKg4C$PZ$8GwN-k z@g(m>J9c%V@x;6Sw4(8J4-S=5H#izkUw5CMhku9v&B7s4YMm%%Fq4IqYN(Tvpke+UW)8&*cpo!xtxt?%NcNC-v#?C8X*F5^aEyg#??7_v8+I{@IWCZc zl>%Cg6>!uKfWwUX!Avw;VN(5IMx-B9+Uf^0f2&m!<)B(!CIE1`g^G*t3JVlf=1PGa zj0jY42#m#R80a+yh0xk2xR$|`;A?fAWYg+;0h%~lc;iOAk-@Y=UT_nGsgTxq zv&}{W@$UoxZn4n$8oX8ZS(^AggK5U)YLd-HL&{_q{$OG6f8uQn=5DrsaJx;R$G$%b z0NmliofgWb<6R8lW8V~pV>kRsW_ zH#6{I2Gep&H$OB_`Q#xbc?R-WwH+hpEv-Y3hWttCZN^l7Uslp zIfLnZtJD`Zg-ovy0QgcstCbewJyBbrC+k%Xz*hoVt+o&!fNLyxrAe|Sz0!pIhPWb$ zega-;0^pSF{?KnkRH5jIH9^qljf9`{KUso)(O37RVYDoBw7rh{j%C#O89raw)bC`CQL9@8=vA>aUaJ9Kt3i`muhjsr)u83dr*L~-sq$J4 zSuUrLmm&O`v>INX;pG{f2YGo$?z>)|LGwi~&zR}MZ@|yaIR#B^le1ed836df3J|ay zYb`)Ng1dN_lA|P(>fF1Sl%Te zsCKdyLg&U*UdHyc+8@btwHVKXx&K(x)wlmN!&se9x#w?`WFZ%4CEHpO(Aa!l9DaZ!$fpQIk!fZjf$18K#7mJuBSCB4c=bfCKM z5gn)wMo6b)#3y9SZA>=y38DkLVBvahS>d&A7&mis%qVfw+&e8Bef2 zq60qz{k$SN@T`ZzXaAfdI(%JQJA-A3O%u_fbFf4P;tV1>82@zZO+*LN3I#v2hz_RI zfK4CK0S@vJ9lSPx`kz*rX#=3UkLWX^l>!uVSHO!h_{#F` z8N4Wi-x3@mnhLEB74V`AzDmxK3ejqy0Kgytt6kfH+qI1eefWT?;3B>S|` z5!(o8mFL1XE^I3h!?qUUCpN93f;$*}g1v1Ch&l;q)!Bu8Es%S-{VdQv`!giNv`<>6 z4v-WIt|I{0#lp-Xcp!s`&9+c=WeC4U)DT5Qa5eVeeay?f)ro@yzE=k`m=BH10sx0v zxNI&SCi}EEaTiQr=WIN}W}|`qNC9%2W8vU=c(fR3?kXy>5p6ay&{F{57z^Z8 z6?P0xVK6n?u(%7Os_``5$1Kiv2u`=AsRT5_NGl8w064=!$Gh=N3(zh&i@}^vOFUar zv^qxsV4#H~Z^Jq z0F1W~48#i=*4NgmqN29O+k#m=tZ7Kx1!%JnCs=C~EOjD-X~t%FnWSiSxj;T%A#gli zDUct;8I~S#W$E;p>(o_}qSe&`0M}TEm*KSxrWseMq@u!nIl2X2Z?jQ9xIqB$Mho+w z#G5QoPrRAI7-(SJ1+DHB16ti>A?_+F;(f8orciOF3dDlD1-b;&1OV?5D8T6qp*ms) z!3{)Hi2 z2>&a?_H@9aqScA#BwMD6iu_7^fvqKDEEjJScVUlUfgA_m?*dx=Ljd3<7hbjyyBuF( zn3x>Xn&Cp5(zuF>$+zPhY})jl?)au0CsS_=P>JudwXhZ5V+dPeu^dOM_XPm|BcRoP zUHCvCA3wA}t?&^;*a|f^g~r4s0vRYO%q6qIC@OwPibA%}R8g@XuCQh6JPE&KNCp#p zaW`CPQ(&(^3jnMV(CRAzfYmOnu~0o3*D~};R?h~tj=>DkI|N_bY&0T$BLMKNfL7lL zY~*dB5Z6n}sklL4FZ@BEdxnaNyy=+D-y;uaX)PF5)Yc}dtJfr2+HaWCDYO!x!wYED zS^ywdpb*Sg*`0Hn}~Zdn33W;wO1-- zW>wW^iHJ1^~Lb(A|Y17Y-88 z>R^Ew9wJZ_94bJsdt5l&g;NBy>MH>7^9aH)c`6R!Qkyx&`b1Ju5l%3M%K2zDOaNfG zz)e^p08lE>upkTt&*KHWk2xp=qr^ZymI-JzS^#j2g=g=;atk!+sSwD)N&&6L3IL1? zA)fmZj%Nrz*7Q%f3kqDn^*+3b)iI{ z0!sw|&KK~C3a5$vCZN@D0e})0N-exH1sSa5jKUM+D1A67q~D= zK&vtVfYAc^IL1P}63ZEq6Pc$vVuekimur;{04XY7Y1x|wtt{F!t={v8Ucu4Mv^F|& zOi3{@+aP(vQD6_qNmwz?3tDI_%!;rEv=tzWMd#1bZxXw8ekhw_X7B!7sR*g zowOG(rl052Ha=w=1FDQ*5q&qIv~*cwYSrSzqUw|A=T5X$J$L$9qyaX^XZsgLd4Mtv*YpD&FW7c5SVI%#{zHl z*rK(9O`c2WlM@U~BKtIrm_wBMvH9)oz}al(uh(dS6sk~e8f+VKFYd)}gL(d+*P z*qTTC^L9&WGq&oE7iZM5wdwJq?+XBvQ(JWT=*{gW%SYpOz}uqgvg8(?Yu)nEo3D** zZMuB!9SA&ACFJw)67jF8$?i1K|~$P{O!rIf*NeYx@aMn>CI+F4|Ul^0;VQ>B-}w zZKWrVi?)@XJTBT+dh)nvTj|N;qHU!okBhdIo;)tvR(kTdXj|#Yg<)%AM14N1 zCJR4PmvTQj&7Ail=e@}Fd-hl7MJ_qCc$pkkgZCoGec>6tv3M_Xsb?AbGU~mqNNu(Y za|8~#Rh5t6 zimkF-Xl8+&@HDsJrCZ7S#8FZqlksQ)0E*-iKK^^@7Cps#=@xaEU$AsbD=*#h(k&ho zy>!caHUnVKW~UxS|Nham(k*k$Ei2tJ$H+{&6>Velq+7;DT`5Lp(yddE0&26yk#0rX zN>92KZ7V(LRTd$=~lF@^rTzSw$hVsMcYbGx)p6JJ?U1o zt@NZ@(YDf)ZW&v3$BWFQThZl9Pr4OdzRaXs#^z)eWW|gi3!wE$#bbt#8&+IV!t<5z zF>Uh{SxIjW4GZ$=y_iugdoN}HTPDb7ORC)E{c?Sf&r%=cb3%a+^67(o@?CB7f_&ER z#moo!l<<NJnRi^qS3~`d%Qjz;l~Zr5 zN$*UH>)I=_01k2mRR;^ujm8D9$fD?JQXxLpBtQZFUMd7&k_%pu1>l`&`B;-cPT9RP zEr4HmtjXQWvUV?frD+ve=9pVnk!6mNnIbFN#^x!qjE%Yqi_8>RyO#mAS>q_OqHU$8 z$cna=o+2ySR(gu8Xj|zivZ8IJr^t%7m7XFi+E#jstY};5DYBw%rKiY>ww0bDE813i zimYf`=_#^|t-9kyW{Rxn@};N9iY{MfiY#Mu_fD;OSWLy5Y-eIk4j5DFqfNSt%+KEPrLApz)!|=7WW*8$M8id z+aAFJ0f4^?X!Q>PfR|i&*+T4ce1&0R!DGiSna~Uu+7##zyei;5XF+}?eq<|zTA{`Q z>=7&x0QjGPR!aqb$)2-dvWYf%e+A1p*Q<4W+CJK3_`MDvZPG`ZOb*{rWHm~}2MK6( zus{qC5hw}{6#zKQg~MGqML;XZ7c_u(qvhRbc{f@wuI)T%rJCekC6fgJ{$QbIDBfm) zW{|ft7zx-~^+!q3>J9;Ntzn^TI^MjVJ4W_WhD>z4O>cA5Idg$-`DA1rv6Wywiw zk*Jp{u!n#b$Z_?YD;1K1=LrA|cfkwf0B)5E@d7#SJ3iVZK$kEaA_Rl+Knq>HK+X%~ z_!`+70=bH@Sk65$`9|}pj#y#4B}Im+bbvx_HGidLT@hF|6`EfKhLH@Dsslcgcz?<| zfwqdCW@DFST|cCMs%Zss=9t5&NLjS$TrM1mxCz{Hw=#dG{|}`ypVAw!n0}7#4e{~x zlg}fb;Ef)86I507J0uoWpY(ikx72x2rj3rVdC?|KIqTZkJb|3CQCIN7ZQ`Em=0%(A z`XNx8HI6_o+E#i3xoBJI3FM+}r6-V!w)IJ!HpotP9R6=XFMvg~P3XO-dRkz%`Sf#s z095f&b)TLepqHU!okTbUGju)8; z_sugnSGvkXq{n z3tlsqyn_C1D+DU>U50g?2Tgi$?RrJeaN=QZv1HTgeF4D#2x#?R7d{Zk#}6%d&0MnL zSKA69TqEE$b37YtZB-LgJGla0Gsm^FyHp53%mp89vavODUMA;da$Y9qWpYLm(h~2J z;a02r1ppqf&}Jddwg3gegA7LY*9_-KidJ(403NcCKMfydF!Dk#ljED7m&yH@Om6di zoB3#yKH6mRNd&xf3t*tAj{4#t0WaO+K60H@NDf{v0C0;7Ub^L@O>%enjVpff(k*~q zZiVy~@V?EsyEMITvnG{p9lkv4@a0V$ZPFZbI8`n$({CB+mN`aU+12Jrx1w!qo^;FD zs4K92K zZ7V(LRTd$>6Woocf80?0 z#*8+(sG2@slp)3X3s+pVB1LcrU66h=;G<2_o!Cd4+)~jd7tj~EC%xF(N1OD~CYShV zlUJ7dXp=PD(l>qY3GYAbZ+|+&?)=@}-9A<{1J8jqwY9aK2d!2!8I1Hrt62=mTU+%S zbuYt4(I)q0flTKw)cu@dK3Y9s_wioLs7|!n97Psgv5y^J?7f(AXWDv-tgsboq+fe4 zX5gbuCNF2N$l5vB)h^IemFysP4A^3f*4$#zZRULJeBA}a^p zJc6I}mZ?9xH>26j?Q=;FeB6bnU3lJwR|UwguYgw7E-Z4vE3&*Ii|+g0nHE(-XIBTa zuRveiPXJ(lfgC(Q0HC`IUXkS$Sv;k_Mmj}+*9v$=7QbP7SSlnNN#hXC56;FGBC+v` zEbd5Nkp*y!bPBJ?;_GL)TOlPbG`%7#UfG1sv~*3Du9-WYt_xQkHIRUZkkBDlYrb&! z6MveV41LfG;@go^D{{^iCkI#Y^Bo6Q{2gN?$3uBRY3Z`W)T+ho;EI0kL|YZT2dCrE z0r{9)R*_|nk(nYZ+Q#N7vW$(o3X9AXS-J+O{u)P-6>Td$MOL(}^b}dqw$f8%McYbG zkriz#Jw;Zut@IRG(YDf4WJTLbPmvXED?LS4w5{|MS<$xAQ)ETkN>7nxY}FkvGE-zl zmoGg=jn#2-;#tJqWp2DYMTC2|l06rJcYPkzv2o&N93wknsX#w`cl>#*hEda1eK&!6= z0P1m^6)DpSPvL7Zpw%}50N)B|^_>6!J>G^FMn2N>X$s;e;|2?`7ycknlc*J-L%VCT zSpqb5ccHn3yy=+DVDzQgNDs1M2>@CO&^Igu=!gOhbDTvTHjno)gK8meBL->`+X~Rs zT|ldR0h+qIKu^i3g5L5JZqGpRJ}KyDt)gdMIfeEDTJ0bJu%m!h9RvV&5-7x-EyPN2 z7Y1`X+yM)13e+UFj7%%pmpaOEwAxz$U>^akItkFypg=y-19I4rPQm>ck~OtsSKQyG z&?y`sKrinFwCciO=HyG&fs)cG=qdov&4unRG$`04Kz+d`wK~kT=7UXA2p_4Co3KQH zzS%7BtI=!?DM5P6Vz2sO0s}{qE_m!~HBnNux=aAzatqtNg;!XB?!lD;fN=q>t`Y#a z+5%SMH4H|Xr?c=@3!oFfXD}sb;$V|zfc!Qwg-gI;m@AI@Tva(`Q&R;1?zXV@37lquqFLX= zU@BxAoGvL^%@6>XY2m#oIE%qNCN0~Fnk_R6(1}O5IA73rKdxK;t$NfJl$!A|0h07s zpogw`4Bh1_F8~v7`$dHyaSfvy*7*0s!Z@;60XYO?_N)PJz8~iZn?MRtW%1b>VIo zrnzvBfL7B50A{!_Q-EH43IN>e!b1WL)W-pA>neYIut^_mlKb{A%43-xi$l1Ro9CZg zES4VME*L5RFiha5rH>mj&gkRJcXapp@nDl3nvJI>%%Uyy{56n(XWd&y+tzkoR@-^& zhu1kKy$RXqnB*2F^+_jCq&WtyA#ZeEo9AuJ*r=;BX-+oXy4k!Sk8S4xoqJuInQ2#| zZDyu7F*Z9xF1>Fyb@=1K+dhhsGNn<1w|NZ;Rd}$s>16aPeL4wf)!Bu8E&Kvp1$hk$ zz>o{@WNuUQ4r#~W6o&9U+Nrj+>7lc)06;$rqpI;V2J<$vLvXrHfeuLHPU>X}85ke{ zaE67BcjK8BXyyMb2J=>~C7vxQTAd?6-@mayuR{khgs(%-We8t~o@cXB2?h($nOn%Y z8H*Xhmytsm%qo738fLSR0lJ5T=R=W(Ez}IfQVXQDKA*u@TdPJ$idG{904}ib+AJK! zU{0ZZP{v?RAsa{AY*d0V0s!R}=yhm?1$rG?$q+WSio|uwLp)GAWNV0e%pm+7VvRw zZh`j67654BLQ5CC6e0)Ft&rnfI9^~L_7MO$K_CZD6!20AnxVrbZiQSbFb^jP&{u;6 za_}+%QoOpb^;`wvWD;(&);S~;5-pfW+l~*`aRehWA z3J33H1H6}w>gxJ~A$f%Z-88+zf!_|lBU%pcWrHikd)e?_HfVJ4UN-1j@Lo0m>i4qY z6%JnE;1v#D;b2xyTjG7B{4>9Y@CpZh$lnUi9=yVVZ&P03;1v$s z54^L7bOIUeHZ^Ovsg+w+;b4xDnZm)?sH;ZEOyRKGRG@ROYcn&2L$uAz6b{DboqM$5 z(+z`*^gs6W{;>gLO3TZJH%@SogOFThgkNtSS#NNWE=YMywjT>F0?;PR#&^d&0diC! zK({b~4p?7sk^OK>2NyA4aafp0+p)u{+FG^rfwhVK`FujBkO#=gY4sZcz%CZz#dsh? z%Cn~G$`BgpX0uTxb{C-d>;iqUhXBAq0y%iF0C@p+;ZO^Q&vAo`>=+!*DVq~q1a30H zMYwy?zUTxO`9`5V4xK_z0XMh^3^c(-LLaX*R^&jRq<5S)4GJz248uOWk1?=boxosx z60A`t%0adItpGXDv4APZ4xvkdq+k-3*|U=Air<+I8+DqICco8 zx{e+4jbn$f4jSUv;jGE7V~4j@(y>FbMW{&{;@Dx{4H-Ii=z5du*dZrKI(7(4Fv6{a zdK^3a^-mscZ#i-aZE za=}ILny`A~@4R7xiPSgae8bT!efihx<_ZoZuoKrGkr?R%jR8%-M{i+!g9~ zvX54`3IN<8kb`#$Xmyvs2{^@tDgmvg3dDlD1-b;&1OV?5D8T6q^#>QZZaF&$Uae+v zHZwS+f{QFz+nHQAf2{7~6yu}+3w6JkPC0fkuJ1eJY)Pp}JSb3qaFLzyA<6cW2`*yJ zG!3_OVEuhsR0f5&83h{LdgZ_wbFeH0?*CKq=ra;HwEdhYH1vXFi5Vpd5Y#?lf#jdsY z1pxmepw)j}_&^{ZKeRxt@R0?GVU0k?V2MBm!9~n?ut9yo*36aFF8EYTXDWM`|A%^m zi|i3-IZhhEMc%sw*RlaK=i8vx$te^B83q^8YP~HR_BFvpOlx;^f{Vnv1+_LC-yEFv z7uAs9BA29six?k>so)~vfZx)!)=GemDA2IrBC&E4T*S2YE^cs`@o-t`3+iFXaQc5smxI>AM{2Zy?i z^~((|^1oR)M9x$viW$sgVWk@Cq^My6jT&5J=1{zVO{X4t5~CQB;b-2>!ZJCiR-**~ z$5?pw4kU-0=24!!9~nIOHFVQ(~Qg2BwJO~K9gPegN42SiMKJByV?H1?KXuT`~E0E6Lc5u zv`{u3?_$`<%R}p?BWR2`*x0LQ73>5$=+7$7+xU;(t#X z4TNch9gGITM5)QbhG-zZnPD^#VJmF52BQ7TCb)@P-R- zy6~0@Z@ci0Ko|U%Kq3Cyg?C+e&xOSIN^|^&P zaa_(|I^Qbwg-xNlULgSRr9h^^MdAZ+jaUO*E0BZh1iaqF>rJ?ud%cO*n{YqydK0dN zLW%DHu&WEZxv;wnF&Fl5VNVzKa^V00TE-Lb!9}msTf2;{El6?N@vQcmmov5_g=r~!>9JA``GU|HNXwEgvpZIvn zI-xhM3MFWc^gRD5D{JLP^sirC4F&JRFBZZ8C8R7!eHQg1`EW0Yw@%s$|4POKfSS~{ z@*{|_nVBvl+Gb|D3}dr1v}sNcu2h-)+2+)-BTL4NFCIU#e9Yi((APd?(~#XNMhcF6 zgbE ztp?SNRvm1G5bh*Uh&x-D>9ra~MN8FzwnCs&&{Y7Sn+x4tD01N-0j&-eXaucBKe0xy zaaRd_D>O28}!4|wc zgQT5ao&jE-0pR5s0A8NK6BMX&SCpr@@Jo|tc*%g540y=^U-Mov;3Wgx54>c6Yr#tf z01o3dV53!Ug@?Nf!biApqzgwe7)5P6JlaiBE}#oNT{y-CFBzcV=x&9SxKL{0l__{W zgYgIVof=_N;O8qDXbV~NuW=;<c^O`Sif&U3gUh;GY6oRlBgrh1UcCUU%UQ7rty|59*ZwydL(k2q3)k0Pc-H*b2dN zthGRK4I$U*J6SF?vw)9da|^Ujwg5m27h1Z|ioq;!EK@lyw05)Qy3odjJQq5*y63^Jm8|$Sr@II(zr^1i&jH~&CHYl(Ka(v z0vMYE_Q+#j38|nC1<9Zey~>J5j~h`^R@OLi9eS9!4#{s%oKS}3KqGwgAddtBO%&Gw zdI#hIAuNH9>%e#8?ouH?>9`JokL%#$I#6HT>Tw+kd|U_e+P@XzIuzEc5IA{@$8`up zIn3nI(m2SCit7-@g1C>f8Go=ot^?m?=F441tG~HGuAIUfvQ`O!d<-l!bzBFY6ajSj zImdPQy0&%(ixZnBu0!WWitAu}7OyvP9ZV|}{LJDym{J2aeOw1P$j5cK`>!ERF6_>VzOIt3kYcn%hMYPS#WEIBdo}G?# zWEJgCzHr>gVX;QmRdh4DisXx;1r5?wz#r!!1)2BYSm;QeQ!Hqe=fXBFY%35$ zawn0p7C*6RbrpPh(kIy4mVl^}fL5Jd*w+F@^4re>?Xy1vMMl0t!Y1OU5O zm^lOwWH9bP7pkrdp>xr0He3C=ir{MO!P(3!zSW6?1in`Xy9N#s065gbWpnW`*{8jU z!C<}|nvF-;Y*d0H1ptn+aPT}lS`0LIbrso&HX9k}DFAScg?I_}5(BY-f~n+yiD=&% zkG0vzz;OZq$6MHTA@*UQU@r98EjYoZKnFZgK&#&hP&^k4LoUFR8B8neXksv!8r=p@ zwb`fyeFXseSr}D~r!kl%+77|#Hib$+fqbNP=?czQuc<$V5k|2 zrPdlbY&~DBtyLo=MXQkl6duUJYqM|^gE@uvK^cQNg=`#cv(YJx5dbK+u=WY8ut2Z3 zDjC9N94jeWjS~PEZy^|n7c#7`tyM)uZG(##%o<{iy4Yr;5?mqxaH)kh3vq%4C+%eoMGt^SC&qnxlUarDOz1E0C0_kco|;HV4882O6n?1 zwD1;qz0F3aaDxEgjTYuVi8ooGo_I5ZF|b1YPExeGRe-|r3TSnw3wK$FySj>aU#zkz zRGg^-vEXijF2OVbzzf!Xp%%!cb6mZ`2HzYrTmo3CD$5$98CI^IOxX`9FuC8M8?f3?pHhrf%zA4A)7`!C_ z@V08U^iT8 zO8|QXS^!{`fL31#0IYUljfLvTxR$|$SlXc0F_6p!H@Zl`21;dKk+C+8rnnX)?b-tAV9bQ1I)&c;z0)^Pd z0?DNE7)*df?ffZWvyXq7Jju$>F-EQGoWv&6O~I?Ha~jk0LVN`7 z!lupbuss&q62Q*Et^xqN323#u0C|vcVGj%QCgPq9W~BH|?UhQISylB}qNB}59cga? zfPDnC>Ljp{uA&efUBwx=A7?YC(8=+ig1E4)IEh^0szAWZo(1)fKq{mxnU@H9xvd1%t0X-B?j`b zOhBvA0)S&IJbMS0TcAl#g+LBg3TQP}0AO4Q@!XeiJVRK53&Ru=I^snFT3svvaEZV$ zyp+LAwwnhN7|d5^*Qtq;O{>cU04}$%-CKBt1-cfl6ab71XmynUz||J860cz}r;rz1 z%P=T;J%6pPv)SkhzFq*}1`G7ibt6Og(3R9xgb!Ue+iYaucLD&nSeXAH-pY`ALaP7r$F<1TnN z42R)dS!LGhApwAg1+;p^LcBD1)B-oK05z}xJ&p+gcwI#yzAY6}i0=q=!G8%9;=f&Z z*M;|7SnR_4E^H$Bg}KnbQp;qYz3~$PfKLUE!_Ne?`rN{tI4)-}1J`Qxg-xMOu|fdg zO98D`T8Q^VZGi^jRSv*c0$Q!MfcOOm*RI7pA#zkAT-z@YS#tbQJ)$d6EW2J_Od zBNj0vUu!k%hCOUHy2~8o!oe;a;=-WQy6_q%ItJlmaa1Zr#xSN1J0xIqTY>m?uAKgUX~9Ro|k>4uIj>3n8!Bud~ zJsJ|l-6)z6K@fT9_y~`2;@cQ|0|Sx-Au)pE1BQo)FC=SBVAoC8#_XC1CT!v^y4h?H zl!%}faY!&By64oLy64WM=Ci5p!GNbfNBB`ar>kz=x_zt8|NhT-E3b>Q95gS8v)@PL zC9eynT6vufu+NO*09F~+WG;{oZBt%{&GNcvPO62Cs3WA1*Zr*(Hd5Q7Dzz=5M4{Ri z0hQE=>?%8i! zd7a(T-#R_qg}kn;Nb)+XMFFH+W|6t{ zl-&tUF99uV)UvQqDtX<>?I*7rno3@Ga471wF0+a{dyAk>MO9VmRHRNt{K!C^iqxsd zPNoiNr=ky0dD#}w!baQJW8Vyytc^#U2J6QCrd54Q?vVIy_V;V%A>sJzIm!Pm*C$_wB#euIn@ zD96tVykR~kK&!WW7$ZQo2R>XHLw4zNIF_LciA#1~+yTeMTeu$-QRNlZS(TSv<#M1@ zUY&}m@+z&fDz7!?(IVf$C;2L`FxOh;Rc!a1ifX8+?%q0!Uzo}uIc8zX02`CC_#HKi zA3p^SO;0~z+gE^wS|5%R7>4~AA|*3b02m-!_Rl0|H@RwTdw5T7AP0ySHw}_#ZJOj{ zCtH&oE6d!z|0X#w+M49>K*F!nx86cmjSTTV#o3pOd~s}j#gYT!ivu{-`r_ERrDpLpi?3PyXtXD9pvV`;u7u8@`r-gQBqkq2 zaf!fiTq-aI8yW1gr}bu;+mfxp zpTiICM@xff`5gX!zRESomML03hn$>ma}5$J1FY&t%jbZW&!Lo&me1i~<0o>JX!#s2 zVx;ABw0us!$^b2&LnBCNdb=b&;jsec*vEmE&!IH#HglS55cr!bpL1|11GHieXvG{F zXS8AtfL6?*1zuV)hpq-_kR(08$9a9fy~)=qF5D?}eZQ{n=YF8;`>9x;cmhzBYk>e~ z3jov$WN?lES!4S!U!V-{764e_!y*PNw>l9QJJ2dF+$#@$Wq?+3;nR5NDg(5NOD8(N zeg%$>e8TyaSjFX{@g*0H|IH1wne*mxMV0og;$lDZ%2uCQ+$t{iGe)-hjQy+Pk{o0I zs<_w~t(6vhPW*GUe^p#A8V_{Nic`fUIaazVF3GXdRdGpJ?3sb2KgRa}x|rK{qS94lQF7aObf zcu|MY)n#Qb%cIJskowwEV=+xk)?_(T77m*a3PP6c17Zmc#$0} zd4Nbq%75tmrCP9L;hU=;6HqL z-a)@R@TUy7M>QHc;LqF^=pDQu0IF3x*ccs|A`XuGkg5 z`%F}ErAJivMip5As>tFm*L=KMRFOp^h$^xu?H3FZsTDn^7YNN@20MpUMHUR1kMx9A zrmYhgY|iQxbGd8@%|ro!D;%gIOBGo>aZyE!MjlD*zmT!|h)JpD<(;tB+oR*_{tlTu+VRA9wbWZBPX-8TED$V!f}e~K&{qqV}K zFhy3=2B33R97R@gtaOU3feDO{T$QIDF2ROBt*LJs@_gOUE(Zpr?9 zEgl{NPrJJc030C@nr;FBM+(s7TA()`B``9eql)+7R6N>2c5*-|%y>&^%6!n`Sz0`6 zYK+ytv6+;P;Tf7ogdm1H2AD&tUUcJ*^0fE86g93mL36$XyhU4in zUsv(Ep$T{fqQBR_YZ@7BWr=sqG6s8THksxA@2rq5yUa=k`wGp&3{*gnst8u%D%r9n z_lUrkaJ7TA_u``tpbtJKK+l>SoWB5{aIj?%r z+IX}Cs1eZOS(Ot$Ftf0&L%3f6-~k8c--8b_*Z`e_hZt-n$F8`tl&*yQi11+A#-w_{ci>#;tsJm?UJi~(Dc>r$+ z^bd9jgyu~LtFyS1!CqOr%`UfvLcb*d@U}o`-f@sU2SW#Rb?x>5elHN3cO7KMV3Py- zojn2>{DXiN&(h*q+|9LkmKM+Aeh``^qM8C&>O-S|3bMGdju+_+KtCT&@S(pCC;Bi* zK#ON_iypdytgsFz@!5{2)RX1ZcMqlr6jzXS=oHUdG#wUAzoWQLu~jRVCjfzPhT=2%@ek>Z)>Q&639LW~?OBLNm^X%N(ey z3c$L1kyd1hjG$H^gVzg$rcMChD=}!DD;jpxRYhG@cmk`gD%=X{szUP+byeAJ{^IBQ z)m24ZRd{evR~2jygKF-Q)nk=Z@QpA5g^S zy%YW2zNFp{K%=^c@vrM# zCC5tVs*)TlovVtC)q1=r%vB|M|I)dtB=28gf-Deel_9wQt}11ot4j6)-&JLBySu8`F@H;LKzwlg4<`$R zrc$63PZ2m5Pi3$sx9{f$GW_RRHc>E0-bPbs4{)%9>|{KR!7ihC#SCGH1ANN8jqYlO z3IJ3IjK*OCDO^>acoc_AfbPKvhEt-2X8X)pvL!Ut0sv7szl{b%HGe*Ri*Z3 z>#AY{bg`}~b|LOtCZ94_1-q*3ZNy9Y5bQFsPQh3PThe8h8Rw3a+Tbz)y6_#0U5FDH z>@u-mnakZ4TBtTrAT(D908Dc5@^^4DgALFzhy+=-*vp%F39_IOYg{xs!B-1p@EQSt zYkj!RLE{YkGDEZfMQ)nFJ~Q3DjoM&_0KiOvwOA_vaJ@hV$t+Pi-&cH~nSAq>#w+ng z2HOUI&fUZix$~^sZfZ(#|T~+LkzGhuj>^kRWR~0*oHCb1c*l%Sy@3n!Xy_&}zJ5YOGu{}=F>o;HR{S>xtK%%kAG*vv2=E`2DM-{Wo)#y34%#~ef-NP?))j#;9e+a)42+d0Z0RQE~e>=dLxS1hd z{Y!UdaU*7eR|Ek5$A@1Fgyw&J_>Dk0{-1+4>hZS>w)ghJEp7{~{(V&dV5>lAwg~{d z=7YGZY?@_VRqSO}g1?iu_4Zv=0CvchJY7|W<6G``!g_q0!LBRmh3~j6P#S~+0J{Z3 z^Lqh+cYSDbP&yy?Fxa#3f%yZ2y)Y_*Kf1Tk7{6Bl;5~uR{7C@d&jO{m&q4M^{0oEa zux0qZ+X91v4+Q86j1>?03bJBX73(L}8R?ca?nn@H@c<6nCCHk%(z>eHMm!uNR~6fy3p8vH+&x4IHg`YKS*7#MX5;xzC}Y^JW2nTLfy6 z9-+jYoSsMvWYBX}0cbZ@m8^ADvF!#BxvE&mV7=@Pz#JduI=H2Ut4apv@fJG|$01m3R*pxX+<~S?EI%T~+8tEpkF2v~^XnV{cb{gagF$s(f5k$QmGWRf+c?a#e}jz;jgrXfIb4*o4o>VFUbt zAs*6x=x~4ydXe@Uj;(5(T5j(_=Nz#CLi8D%qZW+x~UpWWwlRlck1_6Nk zeR#l!2Yq-*;NxSY0?@~|ujuPTxev$rP~n3bsnGfbzd_Dsu(P!8_-TKO@qvjVJ4ED)M$0wf_4 z_$1D7kgd1Htn4B5@rzl7xz@$3s-c?Ntb~53gkAI+Przq7mfv)+|4jd9sZ#T+Wba+{ z-$G?!$2c!?2%#rn&(%)m>AgsqU&OO?6jQX{vkUMoo1$ zG-#@upYCX?TT|VjscxEpYpR>(%$n-fR5x7`gk*&1B#fZAu3532=+f0;UHTRJn4YuZ)*goD2xDA zZ4>}_)rYMDn(Dror2lF+qN#4W5x_4>CR9`1G;YDy{RWvO5a4V9fO>%p&Jmz$V?N9m zD8su202cVLNI+BFd=|R9gd9N+0ZJ1IjKbamp*dDSQ{DWa;|yt#(3~kiYr7fjiig8+ dgumr1A2ijiscya+OQ2)gRQH0pB@5B?aF^jy63%fd40v+ z>3ua)glYO>xaXYr4(ELL-gAHO*;CnTp3hFbdwyWg=G3oT_uh5_5 zTK1<;{KX;Ahi(l3r z;GeH_4du;@4Nc40aZlUIoKu{Z&}=^KIW~#!oWQ2@rVh4&H{SvZ8(%ekKIQvETBRP} zoXy{8VE6K-Chd>Bcms9w$T7`Q(wAmb@+Fg4HXY9c-L%qW80#fNX7czWYzQwbU}LFI zZ#h`TGpEv#X@@>Ces1D)qvq#d6u`H;f9|RhU;K++(LRSq3)xuyUV&ESt}}nMIN$%J zR>vRu1FK5A-Te6*Z~KMI&kJt_`*AziI_`g6o5rKZwUVsnI{yO{qLV^MWYfY?alUjF zEz#b7c~ABBS7{o)@uE)Os?#D%c}bX+>Hg_~yyiFkFB(?pURUc&#vf*+f3mr0#{c-5 zh_-~s-=L+uX)K-1-}@~q*2@o z4Y?y0>?dTs`B=h|Ck$ar(3^g_sokgVDVUWc``ePe%Iwvrf$SyXRT(^d8(Wt5ZVRG~ zo%$<8+Z+LQoHNj_%bN3=pZCB|;=J>HT5<*JnNR=D|N9=Lll)5D>xU#pd|fVGmwT6U z#L-R-aiJ?iT!`(6ugfLil``U}EpbP7QsbD??w1?dS(R1iVs4AJrx33!xo- zY-;dQ-G6LqpTO%!p0Mhc@jZ2m{=noNc@5kArACc|^L2iFy77l+|5Nd9{jhf&5y{E*_qzW%nwDewI`C(7FR>3Ud5;#)ynRd3;TwRypu~l?o*x z%nEwN+InqqPi2((WUuMt0*{B;X#QeEt8rKn89k?!rj0X`*!j)~w#}V(w!rv%bn);V ztUB$ak=#db;Uy!r{KQkqVGlj*`Jwavgmw!3DUHGh;8$P&*{yvROX5xT?sV8gz$xYK zgzA#+B!pIX@=$oU@%m1E)N2d*jKypy-+D6}gH`{+SYAGxlFFNP>WzgauzYIOq*tSW zhxI^swX2MGoPg}z~(%DS2kk^{)^rg>~Vdb7SJTVcMM$$_oA9hXz z+9?nL^|R2Gjj%#&N8-{*0$wR2f$9<@gwR3)iVJKiAfC&`g(q2D^tVXtuei8c>%#%n z5uKg1vvZ4c%F#}Za-l1uT!`(IcXkr+N||z0mryQ*7Ui%?#HI$XUUqDn`||z=-~R#~ zC5FHlY<%QWbIT(JTOJK5=0M0{AYAo*-_l4(>nkp6w_!ju6|JR3YZp7G3GLKq61p;) zgxF3~(OLptDbs}N5}Jh2qRCC+-Nx(rVK_2RK|3`}gsuz|A+}=@$|c~HGA5`l!9)lxOkirorUq|1EMD$S@{wrk z^89gn{&uo3-PALR!=CZ2EcS6Vz0;Gp+TFE}?%J2>JmhGn7IL90 z3%L;6L%wSt0k4!pj_Q(-3!xQq7`d^D&wI=qxiidCw^!u150h*hB@8+)OI4!2`vBd2 z;BMzpM?1Bs3td^%h1eeT-3JJGr5trsmqc9%t*FC5h)oUN3}YAPs)l>Ta=K#qTIb<+7TR33Fg%V}tNmGgw4omxVKt}G!!Y)?pNIRUSf6N2iJ zgb1NMA=q@<$3H(rXS>gIcaJ+T>~!llmmh9Mi2nySoobD><+ER3M@x_^PE}oS+_&sx zmi<)q8JhXUV*iSsv!M|@@H(BM7o869qA&{>=c`%cpT|Qe+^clMiEfyUGPV&HYV$Yo z;SbX?Z}TGYWgbY&McL@gdAPR=< z{!UzjTWD}glXJ$=PK|M)D`Q-U?TiPv5b#Qwaa5NuE`%22P_ST=apJn;IKvayrCnO` z#5K{)nS|R+aA{^xK_AfGRhCT`{^oIcY zW)qyaGCgptZ{m|juE`_U0UfzUPtfRz7aVmce&iI*NiprzIuw3GdO=Ny?Hww5f`C`b z9SYSY9ZCqT4h5?*Y&z%T4fWcbWWAK&Zow6+gzwee%ixDJ_~EOL&^GU0qMaJrLRUIh zm@epcw1XcK@JbnNRF|MFgcjOHnPk4+I6D?)l7}bDq<$_K_g5xe(`Uzf8|mK0M(32H zof_prS4O!I+bQ4MNWd#)%28cHxe!{ELq&v54PK8~5n0=p-`u`Qo*p~B)7aif+Z)e0 z-|u0jK2Pth0ZTx zt=>jgZ`v|xcn1vWK!dBx3a z_Kh%#d^<)$M``HjBqXP)MX{Q)?)RnQ0F7#T7MyC+)N?`StI6eEZ!)z;%#hdnN1gb+#O-_`rOnS zyekInHMG5^(osTSD<&t!G*in5enL9%2(djM?KK3PQqBjeOY$Lv_IzN|MIT?Zp9PaQ z49N9z!=SyEw%5*a&a!Ey$TI56#uoIT*I3?OOTa00mQ8gT%P6#1cEbYMY~pK~w49cfpK_X!>{PTYap7dzsSPmr4Jp$? zY-c)JOu#E;rcqtOv=CZM8}+;SdY~EW_ax5O;_b)*;k+P17ep>P!r43+MLRW|g|2MA z6k