From bf44b207bd60ed3a4db2f08bbd36dd7b9e764bea Mon Sep 17 00:00:00 2001 From: metinkeremurkmez <32818998+metinkeremurkmez@users.noreply.github.com> Date: Tue, 26 Jul 2022 04:19:32 +0300 Subject: [PATCH] Add files via upload --- .../KafkaConsumer.py | 68 + .../POSTER.pdf | Bin 0 -> 395726 bytes .../PYSPARK-PROJECT.ipynb | 2438 +++++++++++++++++ .../dataframe_to_kafka.py | 148 + .../elasticsearch_scripts | 20 + .../es-single-kibana-docker-compose.yml | 43 + .../terminal_operations | 31 + 7 files changed, 2748 insertions(+) create mode 100644 SMART_BULDING_PROJECT_Capstone_undergraduate/KafkaConsumer.py create mode 100644 SMART_BULDING_PROJECT_Capstone_undergraduate/POSTER.pdf create mode 100644 SMART_BULDING_PROJECT_Capstone_undergraduate/PYSPARK-PROJECT.ipynb create mode 100644 SMART_BULDING_PROJECT_Capstone_undergraduate/dataframe_to_kafka.py create mode 100644 SMART_BULDING_PROJECT_Capstone_undergraduate/elasticsearch_scripts create mode 100644 SMART_BULDING_PROJECT_Capstone_undergraduate/es-single-kibana-docker-compose.yml create mode 100644 SMART_BULDING_PROJECT_Capstone_undergraduate/terminal_operations diff --git a/SMART_BULDING_PROJECT_Capstone_undergraduate/KafkaConsumer.py b/SMART_BULDING_PROJECT_Capstone_undergraduate/KafkaConsumer.py new file mode 100644 index 0000000..66d3dcb --- /dev/null +++ b/SMART_BULDING_PROJECT_Capstone_undergraduate/KafkaConsumer.py @@ -0,0 +1,68 @@ +import findspark + +findspark.init("/opt/manual/spark") + +from pyspark.ml.pipeline import PipelineModel +from pyspark.sql import SparkSession, functions as F + +spark = (SparkSession.builder + .appName("Read From Kafka") + .config("spark.jars.packages", "org.apache.spark:spark-sql-kafka-0-10_2.12:3.1.1,org.elasticsearch:elasticsearch-spark-30_2.12:7.12.1") + .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") + .config("es.index.auto.create", "true") + .getOrCreate() + ) + +spark.sparkContext.setLogLevel('ERROR') + +lines = (spark.readStream + .format("kafka") + .option("kafka.bootstrap.servers", "localhost:9092") + .option("subscribe", "office-input") + .load()) + +lines2 = lines.selectExpr("CAST(key AS STRING)", "CAST(value AS STRING)") + +lines3 = lines2.withColumn("Value_co2", F.split(F.col("value"), ",")[2]) \ + .withColumn("Value_humidity", F.split(F.col("value"), ",")[3]) \ + .withColumn("Value_temperature", F.split(F.col("value"), ",")[4]) \ + .withColumn("Value_light", F.split(F.col("value"), ",")[5]) \ + .withColumn("Room", F.split(F.col("value"), ",")[0]) \ + .withColumn("Time", F.split(F.col("value"), ",")[1]) \ + .selectExpr("CAST(Value_co2 AS FLOAT)", "CAST(Value_humidity AS FLOAT)" + , "CAST(Value_temperature AS FLOAT)" + , "CAST(Value_light AS FLOAT)", "value", "Room", "Time") + +model = PipelineModel.load('~/saved_models/Clf_Tuned_Decision_Tree') + +transformed_frame = model.transform(lines3) \ + .selectExpr('Value_co2', 'Value_humidity', 'Value_temperature', 'Value_light', "Room", "Time", "prediction") + +checkpoint_dir = "file:///home/train/project_fin/streaming_logs" +""" +streamingQuery = (transformed_frame + .selectExpr("to_json(struct(*)) AS value") + .writeStream + .format("kafka") + .option("kafka.bootstrap.servers", "localhost:9092") + .option("topic", "office-activity") + .outputMode("append") + .option("checkpointLocation", checkpoint_dir) + .start()) +""" +streamingQuery = (transformed_frame + #.selectExpr("to_json(struct(*)) AS value") ,, bunu calistiricaksan transformed_frame üzerinde value da selectexpr at + .writeStream + .format("org.elasticsearch.spark.sql") + .outputMode("append") + .option("es.nodes", "localhost") + .option("es.port", "9200") + .option("checkpointLocation", checkpoint_dir) + .start("smart-building-sensor")) + +streamingQuery.awaitTermination() + + +#python dataframe_to_kafka.py --input ~/tez/test.csv/part-00000-0ebb56bc-34bf-4ed0-995e-5f78050631cc-c000.csv --topic office-input + + diff --git a/SMART_BULDING_PROJECT_Capstone_undergraduate/POSTER.pdf b/SMART_BULDING_PROJECT_Capstone_undergraduate/POSTER.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a4f31819a0450e533631bc36c3ab78a254d615f4 GIT binary patch literal 395726 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�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%0AWb zARxspn_^~bqEWs}QEMdHKC>AnXptN`XP^xoV^4gbo3MV?j^aT$pF;a6nsp3a0Pz`$ z7ZBqnWv{V2^^VgNV$~th-l|ooTk+x7PNL;k!-)(~2J2zlA0ah;<;S?@DJSEW^6^+@ zp)oc%)Uj>3J0)g4Jmc4Q?kYAKBU2ThQW~<2TaAj;d5K2;P12?S@!9UN?_)bX?n=kY z&rs-f*Cl$QN7^pmjx-BX(g{mkJ%prC&GfZp9mrdo7`eY}C^1}C9?|Hs+BJ6?o9rc$ zZCne_P6Z*rz7gHV(BfPl#cFeqKI8O&{?JXq=Z(nE;OB>`JO9X5=$SqK`#!7u=f{UO z&G5Jt-N&e3%#AadEVvj?0)+BR*3VEfM%aPFZy+`m4o|42`-h`SQu+_sew#|c?E|03 zg=4pX&BP%a=D^FnweTGS4<|b(3jt9V*!Yo7c9~Eu|JU7>b!Vudd&s+9>}2anaYL6C zgs}<52d8&Bp)p-k?iVJgad}6#8npw8gleKc+Q}$^hT;cg@SO~v@}eZONo02$+|t{N zm55+C-6U{aja=}QyyMz%sOuns>`9(r<(W6b0{qu>m+=TJva7v-+x9lQQ|5k|2aOgd z@?(ln)w?8x&Al5m4bLpS>BcN^%~srdw=Xv;IUA9PgY(m8HF=zCp`=*T5$5%YXM<90 z$q-T3Ed{@?@7GjSonsF{))QH3=1YCV_J38E%?~g`Pd*z*dBn}ukk7$bMkqMEmLX#F zONT(f0YHPUlKo~vrXbM5QooHI{zECNaN&*cZkeHH>c9j}O!p+sjftQ?bz5ealJcBh zv0Q&n>lfPl`*}_Xc>ZF+n^IT%j2F7<@_Ja1bL~;-c1|+oBhxQE)1)EQ$5ADll0k-xfDOz*w-QNw?kGCj3l;XANvL6&lxX%q<0cW z+2<|N#@ueBZ@gDig8#&$dYko;(tT18P;=mZ6F&|&x>7>dtf&d`VeyO86SSt$UDr6p z`O^!@P!7{4P*`hv;vQz^0mY+OnkBfC^>q<;YJ5k3op1Q+SeK`=Qi;y|=~|4d(wmh` zd0A8WFPL@jGvzE--)SXa19B+L01ye$-NU@5q?+mG zao`-CXtMQkZnc%JtnDibY^Rl~-jHu9UJfG&z~hRSn?*G9bdOW8Jyiw@9fJ z_Tyuy7m4epN~58Q@rwk*hB%HhxS^xU%+~y+RN|!9uVCYRodz5yTNTf#X|j^@O?t1O zPiF2baE5;dANCfr+kpux%u$Jk%&iCGK3Lz*cXZtlj|4`eWhS5T+65{NBW_da4F2)L zP)=t>)W-&Awy}Z{v((j1kd@1A|NO_HIb!0ZB)2RkEl8FGh;7={&6Y+d}BC-1mdKgU5y^mly0}q z*iFmt-96BpSYl>}X&G6QJP1I7cqZSXYShi2wAFFnqi(&^JOvIvIvENb2(xDFS|qZb z%M7NM7>@*u&(#GqohVG{3H}}lf9o>1qt^9_v^`q&s0QWm)H6w}Wya{MIgwc$z-bT& z_QBBk#PG{7%z#$`4;U*8L8Y6o8d(_L?XF~=o*dn3LPA(lFciGjAkcs(kIHDgqbi0N zAq<|qP9SZ|TeYg^o^6fDwe_1`0K>oT9G5-wn-8{~7CV#5bPb!|4%)?Dt|#B0`Ls3T zPp(PyOkh09@g$P^KDg%B=zZ@nV+=4 zMa7-R^3mopGmnqhhpiBAI}pD}nhe~aDam5Z=>C>7Cr+SjoN;kA&8MW>-=70Ir~`_` zhN@YA5FOA{TG+1`DSb6A8bHrIhIp7c{k&uX7NUCWmjbiv`5zBK%*zWQ00VVEEd;4D zj&Yaa*w|taU$RN(toj?zgzC(ofafQQlXT8;_166?-RqK4;$>M%mM2bIbjZW1bjr&M zkaGRtm{jT);YMyS7-kkc!+YwLsf~-@XLA@*SvSeiU_cN^Vwq zi+<+j0B+I=*_Ka~I=U{g`;eY;{;SaDC*jVC8*-MyDMUj-{#X~A6IUft+tB7g_4!Mp zqHIO{l8;7Rh|z)hk}2!bgT^QB+ancmhuB$fTEB8LwnB4jkloRB$~%6)C7tEdp{;HK ztOdfNTpQNIXrAy#QR{>Q8SY_}f}PK3hbL=srPqh~VGV+^8wi5p_KAHEj-SchUET4d zmnJ862dg95nCnRBc=Yz5F0A+!*$U3V(>L(B8GbztAf7|*>h&BS1aTdw6fNt3_6J>W z*axs2!6(E%&^enz75S$Q5jE8()Dvz$Ey6V$^+z`RWmSuR$HJcrbuqNZFz~4*6Yb6> z$8YPY9nh6GQ8{zJEE)g!$a?wG!pYo3Rd97cUpqh%Ie%-ecVlZLz3Ipx*V(W|+DXyS zG_etoZSrdj-V6fIqsh5NwUQ&gkWpA9Mc%Y2ApN4;Y~cRw-VN|;wG}jXhWZQSMiJ#4 z9}|4I_V}QoU_jwJi!W&jspi9ruO1j1ky-y?p2b~T@we+a5EE8|*>y6qp0L7)*SQAz zOk+~3I=EM)xi@5S^S|0>!~5`RwIi_07{0m_kb7$?@K0`Um(?-ZxccGM_*yN*wo4{T z1cMEj$Iq1^_6H2Zf|6&X7aH-IKOdsEvfq%@#pM$Fi?t#im$ds$|2QYRj*|;ZYX*V| zYmb&^I_6KR>tVCy$Ts5Q=BvyxWryD-El&ZpemEy}n7nLoqAFmi@%xPpqaVKm@I27W zb;sXoZ-vs~g2o6LjLlOB6m{O;|kG1R$y#i6Z;hS@;+3w_J*HHnw; zjO$%Yb%P}b?6+DX;v>MsJWYvZH~Cr9rK)E!b@TLZwDATwy6Z@3xQNReVt10m1p;gM z*rre~DQ+w&wq}`06;5?Ye05+T)NlIA+6Rr91aU`waRr_zR%M(S9 zbOuZtKgil0slRK!uKsxRRNet$@N(0IUj|E{!l>Qr`3QScWdRGybFRwk)ma#w2lb1R zHg3weKEhAFyirQdtq?7`A=ZfSQ$|j~*1fuk&Cz@A?wKn136BIHFlI1huSgmU4!A0d z+4LG;ZWO(84k%K6U}>Ulx-Lj12|6dE?kOF<@hyFZT7hWM1ZVloJK7=EEKZcc3)ukr z_U7(cdeDQaB7-Sm*GOOUbp;SI6N4ZEFQnzVa2FA~0CFnf+mVLK8mLMdzR7e~MFK<7835d-KQ)s68Ot$Bm}LvntmqGIByixuLadFZsTR=Ly$PPNjJf! zGTHh8;ehwV!0L=YMVJ2gBM-d<9 zyr&L6?4A&W@4n@JPXCmnp7uL-T(zk7%&&RFL7M{eX=C~r!ydsmk%=C${Uza`F zjkVM>GvG!k^uf>?`;vR~j`LVv5?k%h60D-k8uwl!(<#9Hf&3$K8#s9RvL@xxY*QN| z2i$yuA0EQ{ta3UQMXq7)H1iOnok8~!g3zYJDr%sknaN~{YUDngtL|hxKULynFQ$YO(GK-z2eG^!n4+5bz^JeRwZK8ovl%; z>`US@-$aE|a0;(8K2h5UM3j8uo|iUd@LaeklX3T zk?#54kaO?j@C0Y$W`Sm;wb0XEKW&0(up;@YMTxC0r=&{UB%s9Fr@P+^Wyiamhw}7L zZy?jks_Ic@Hh-Rb_#KMM+^Xt%3j8Ou#}8ZGvcHxE|P%-C9(4-3V6JN^1D}-^8&iwQ60W zlS3y3!mDZroF-T@021AF_3sAnzr~Fg$$R7-w6_FRHD0&j&ex0Mw|c;4=df9Sy&E26L|1m1@W(+MtUxAm600uX6K6mPLKDR?BCl53Q0_?U zWxsnEZC}Q)*L`Ru7;JXA-R;;3YbZM&?sKOvB%L*STY-%FzD|Q#QY)0A0ue{9Zl*j1 zO}uvIy;^x=o)t|tkrt`fj!gb1dx+w-U?wB_lP7)+%k9Urw|2Ptl;WSchJTE^hDSW9 zE8TQG_<5V$Zf*Kz1g0rWWaT&Rn6>Xsp-X}f91EF@XPMHf4gJ)yybfbcmvxsP>Fxv>9{j=IlP{0)4Q{TROy_@_=7zvUoMp zZji|ez;KIJafRbQhQn3-`vK|5-cP{54kBrS<%1OPX+5LW z7s7tv-Yxi_#`aFNS!Z``9;0pZV{Gs7yBzMkz_$8ODfc(r^&miNBY__jcBO zh8aIZzc|a&;)rh2)0ONmP!||Ha?&1xEr){>8l%`6sLjVeki_UL3t`QyLg~HVtG43k z&`0K9R}@(l(JgDRHOcgBs(U>{>5)MI09@Z6$>Tgin9-kv0pP%t{i&tGNkJ86;7kR& zviB@1W$(Rvu=!kuS#8V5FGFe^+**Mg!@@z$F%r33%No3K5&VF#g6T|+*-h6r(R%8S z*Rl-mhT>P0AGHB!zG#!SXRpgJu!b*mzCR|bK3c4i001S0)~f_lO>IZiGfcQ1O@3#% zG{Jk)PG8sWHPTWvk3c0qLQQ@M({o00M>@E?tJ`NElbojZ+VOtEbHXtkXtxNq6Qs77 zj!E{gX#_Pj26lXjZRMjR*q*O2w9?4PDgYVkLeybT+X>EqC;zK)kT2J1Ro2w9bYTJi zm(oOOH~2kS9OWA9l#`N8T%wJN$nc=wEKOE|Ex6xh3zN5YNbqxtQ5|{OI{|Op*6QWU zM2m0TXM5Q)++vQ=OJTtVIR*^#T>418y7dpFd5EcNjwbjC@tFJ;Rs@xRTMc2z)=w@! z#29xUa9gfi0lS?23>B~S;z6N4W0-u3rYRM)jPQL)rn>C6qY_tXosYT#RNX+{0{ntrm{%1b3J|&cZYNE4263c*K!MVNN{2Lls9}* z*RAp7p7Xt1^$b3nOB+|y+@LOa0!CkL*=qVaQa|y^ovi$@es!1Dg_z_?_YjN|Cy6u8 z_rw02jsc?TQ~85MQIv)#C)hMd5O^svC86wfZ!->P38*Af>dxENgHH~%rWM|uH`do# zm?SE&N42RXr)1(l_7F-ThDiU;$0>c#2#%C2@2fzbM;422FXjc`y2r9Bp#Y^{hT4z( z69KiIH1_WlS~Ly!u}q!WdC39?w=&Mq!?JM+v)hbH+U{VjP?=Y|9&9vla8Lln9!!7MhurB z#jW{8^eji(=;4X`o&!8EKsKU21JV1YlCgFvRZ`v)rb*@R2^6$1N&VOi*s#6TB|EI{ zIr&z)ecQE>Oh&&3n0f<9FZx~Xj$F{OB;VY*{Ae~gGL*1?lSvS0;arYwk@SsgA1Vwg zINl3ZZ45KK@1qu*yd)0HUs8s_8W(8IZ#SCU%eE{r*#a@`831!lziVivQ15F#Z^V2O zeTI4y!2clC?R7hu>m^Ly=K5Yb03jW4n7aPj*Ei1LH&j2M|KK-ljm4A1R z!KAl2z-q>Kjtug-zqJHey9jxZlD5PyDMZGSjR>q+9UkQrIfRFEKEcuCUGjXlgMZ-Z zjVT-Xoc+|oEKR}o9c)2!UL#rwKsp2&bmjL_e-?X3Ti4X~FtPrDjx;;G%U(_0ZnPO0 zg2`rJgE&L{ZNF_{8a<&14cRYHX59WnCiY9T}hP`Evhxw#CJj^v>29=|* z!SRmPBi=E;4V@2^g?PTGTQk6d777%&o@4<#TOJQXfbT`5)HCpgv`;E^dll-|%=z`) zJsUJV;BB&-VaRux)fsoLx0m={N}MFXPPJ8=L?g6P&tPR3^=FXW4r{LKp`qp@VD=fR zS&+bpgL~gdsp01#1kGIf?a^lQ;g5UYr^_hULkm3)QE*$Y&^{RzUUit!A#ezTAM2();$h z%qRW7IrVkj`APMbV34hK( zaf~3iT1Z{--~Tc~`kx#dIahT2_?6Orh2&(g2c+dy-qQ^zGVh@)pRPqQGcqRur-=@;Z z6-}O-!AHWc(A;Yp3NkP#NhxG3Jjg|zt|9ws&T#g{uBoGz>Y%~q^>`N?J{raeUmbeW zL|z8G=_6C@ij^MFp>QASQ5OUYF(4&dpbli1cVPpyAuEHn9MZ$J)3{re1J5=!<%YTNMvgM`X}o>yc7N2%&eZ_7ZHaTP z@3hzZN!sw@NFN_!Wn~DIH#wRRB_Ix#bn%CI;S^sIBgfHpt?8k(dFQkHPhnzM7rXX16}c8AYUupVd%RG?iv6>J1yvdLIr~3x%2QR zG(eVb9rpRxrTm1+F15`@qchw*JXDGyz>?uCOPDL);j!Yo}%oaeaTw6P#z;vba{>2 zWnZmGiu95+uVVS9hZRXytahyI6(_{O0Q=wf$6uyHmDLTvbmna)FVY&%blwwv74~#P zJIp?0{YKcmlqD|XzA1@^f$r4n9~wY^jdZ89@hhUIzKMiI&D^dQkS5GW<$vfO&UL(Y z+Vsc}cY6ofIsEEgopHHbG>+3ocPU`a5SY0IAGSr-5d~HSkB9_tS4Q{5C__o6#!!-u za()XCLBFV+MT*Nkj?*Y*u3@VDV0C;<5kz%x-l`11GQcW()IB4aVhxkGL3lEbqq(qs zhLXEDG8{m5V@rJiX5Tw_u*CJ9GDwCsH@M^Rn5;mIUp*A-HG?H1R>!Bu95txGRrh{2 z1CR2XhgnkFt2R8Nj5*)P%t)iULY;WBA?g|i`+S_MgW0I#b3PB_5${B21%QoW>x$ zV}nnIPIilM?t7buRzNE{&7rm{P;V+JspIA49RJr#?EmDE%Qee%KVc}0lA;Y3b>UkT z%;xy94oWzvFze=f!^=iR2~t$NxNV?f)hc$^Q$1Yq`0(SpP8`2_$fB zmd6L|e!M}Cn(Zm^h&)O15RpPS(L!(`0tEuXR3R;`oO*Iju9_sa6#%wStJFA;R#MHI z=FJ<#JWCOgsJ9^$h4I&$ZQJfQ&7CWYSy|)HX+9U->6z&~4yy&Uf5QDDZ00I7 zf1SYf8ywRn)=;PwL?kj6=bc7}r9n{2Jv zj#;HP4TaJw&7>0IU6_#d?Y5_t27VeSjp3sI$Z~?i9vAgF5~L??Y|Tou%B)xT_{a+v zrx+u3X|qP&H($8Svxl`b4JeM791^vs>90H!jCU9xYxVG7(<}gmE?_?pc5STKITXtz z5c?`Hm?^dV4mV8nqwzkA-Z1Uh{4A@Fj=0R7yemZ&igM1Yd>{RJo03E4f#F&y4|%V| zT^4hAqbm)Ez04-|Fm1=+zOyS$Y^?;wx_Z?8DpJIqwxLfqf1zj0-%F9w#Gd|6CEE&A@b9raI|Oe!o>v>Mln5ngu!3lU)?GjJ4U2nbya%_El!Ul>TcsVGCJzj0lpDqY?nW z;PxavOi_vvT+lCLN=< zf%0&;eJIP|^!_9-Puwxk^&F4=A7!)cS%ZWM9X+3&A?Lz__DZ8u4Zb-RF2XMe85TF z<}W2FM@i{RMVsaRtVsQ%k+jL;?Kd}e;LHW>D=7&6(chw&!gmw+fE$awobRQ`C~~C7 z+x?X}LsJZS!kUy;w%?N-*o;4O9J=Z9i3UruD;m@#Vj7ZnU6?=fy30ly-af6_toAVq z^o{(3=eSzNM=jzk+$|vp^_XbVB|ZzLF)l_rv7kYy51v-Ksj>IZv%LZAKn1jYL+al& zNhggDrGAV#g$OhDYM-g4uK+2IBclwVHv+PyLMWo_t4VZ^7J`^psq2F2?}e)KuUSy& zcz1VkwyppZQ=JIfA)pi_On0d8E^+9a)2#Q!ik~0X`LrTH=}{YJ%$8Pkh0EWrr_=oNS=uoSp6y}LO3^4^u@J@ag|)=@O5K<)zp%si3;7V8pQ z+3@ZsJ8o_(FLb_-`f>>;NT=ajgzFUM3V5$Rw69pl-lmocApCY*eZE`-7q#$5KCyQ-@Ps z%Qq0p91*JQc+B{#Wn9`1ZDAD0MRQNxv|OXa8!LEynlCa=%z?S-kntAKZ#1|qP2H<_ z4iwt!EFpbvR{wfM;rZK~&V{|%^#=FKtA{CqxP+Z2li^(;d8dBV+-_DTHnXpsSJl9U z+TjoNkSlQo7p=~bW&Jhn54H>J=z|Ct0s$K88px#lE~ZdsIfT06A}r3+o)bY^gplwE z=Rvh9cbF|ek8VHE5&adWy?XcUBJ4b+0SYd7j!jEl$Q!u(o%U^5?7kfEGqBsUt;Z;T-BF%qwm0Vl9}4n=ZAf z;O13@8?vuhyF$Q=Z)!&|D>qpt2)`t=5{XP@YFV8Owu6-(vY?2XkB5AvTGJ|GR!^K8 zmpADiFGw+c5G+m(@z%A_dJ+XRgj}>2YzX;X`-GcQz6p!AzW1YYfciaeF5Mjk8V*WI`SJXAaD+41o-C?PY1c5D(TMW;w8(1k7BP8Ws6Y=uD=sHM z8dHwCvQM3ooz85F2Ql$<3kznl2wotusXo8wh8`!GB1BHyS7lE({XVBTi_Pw;n^7Bg zf>pm%;it67h9B5TYQ|O0ZEMlK{_Ou?^U9R{(w#8kXG#{aH5$peO=78GX>0SPe;eh_RwUQT5O$O%4Zi6kfo-|q z?XM0MK=;>C(+pIriiE{hV7(OD@mU&fMIwSZjVRh9j^02Xcid@U$E>Fs($|{FGK0Ga z>Ei5xPNI2=v*rEt&yC_=gWrB(mrN|Ea*x>k^m|mqjxaBzvxHae91sWM48r=!XFw}t zQHX~PqWMUf_ZiTVlgmExK_ewd23Abh)}o4Z;wP`e!=)&uE}OQ_2WNmNmsG>i1*WpD zByF!j>Zi-*(inLh!`0P*+t(Z3cd|<*6&x{m?-okn!7KYrW7icRrKs((#k2`W* zE?fTW=Uu4+MeV86Vi6rulO!x|{*Mqth9sE;Tv-;E@THLjhe1yH^nNP@YafKl_e@OF zuV${_Xe}C)&t#;(tFTN8c=g5XJXYKe{UeSKiA6enVobIa!8)U=Uja_fH0rZUY8jKP z$1JVDmzy{5@=Mg2`O_lt!$5?u;H~l$*%c)0P(Mb`DY7S2=#H|_$QFl|#=Ldh=$zFJ z1L42IBg$e1r4?|8eeFkNNRWkpRIQdM7EO~eua}Z7KW^krIcbsq;71?SzRl^3h6mgo z{H0H+Di`dU|KknkUSM5&-(HZYnOQ!qYQgwWO4tDYFM8E)^j8O>vDZ4V??#MLBJ*uW zQ{TmlBP5g zD-s%Xu!W@fy@pvWjKv^TmUvrXby>jW8p2!<@8j*|Z74RPYV8P}g@ph>|kV z{w>uZLNIs*%5m`0?EXZWnyy&Z21D}tmd>#~nwqBK?ky9#z&Iq9`nVoVWF1QQRE|>k zFbo1|nmHJ~xG$$kGn>&6sWgdrWfx_+O&(%<3H4zrRv|*|Jte$?a-8xr>poi&5&ebk z&6{%-P3lFO5<#?%8*>xR1EYhC%Fn}Bd?3TG=NJbG2Y5asGg8WR_OJw?LZBk3ol39Fc;7VCL9;)iqEIX|BRNv@zXBb&6PjdSA5z_m5+bwq+WmNaOt4Og&i5_`MOST;qSNfl+VdVd2>zf2GN5EMiqIo2iR z|NFyUO|n#6C#k{@k-*9K7%{eXscY0&h_NVe*{d1Woka4@Yq@%eP;(Jzp2zU#v4|Oz zwV~>a7}H}3VtJ>PA(cxT^BzR|tAz+y-yrdAvOQp~ENhF9KS{anyh zP^Uahx~NWwEW|wPRx!KhB568$ZCtTU(uXrsOoX^!!)6T3v?q7YNno5NooObDSekOV zoXcxo5&4~xtEFi=3%4Aj7m)Pk8uAQHVI3SSVBeV}&nHE`g2_ zu4zMx(kZ{kGyM@uInz!MOmIM_L4EHrBSrLP*OsgfontP)c`<&Q)K^OHxwx#9iJNw@ zhZDo)(?KxEpf|C3lWjxW2UYf-jXiNU6hTM|jwYXbZfH51g0*bf7rUu!U>8JdG+0_x zips@%%>mO1H+0EwEr6fAXTbvS zn4HM@rs9RsY*$lI1c)_=16fNwzf{p~){qtopnpd0tV{ zjyx|=vXefcg#bi;L&w8Do1mV|b9VSmRwR`$1F+mQnTsdW?f&BvsrIZy54u&gs1bD= zFf#vpq0m^Zq2bh&#;I2i)>m$#_(I1Pb|4nj`;sqR!NJic%2hIm=53F(>yxf+)5gyS zDcWvXs+<-HOWt0l9*#Abl2=1G7d)yw9xST$i#aoM3DS)U5%1@&f}TID?jssiYhE)Y zB@+cf*Sf4MrM~^$oC_FS)_LNzxxw}pY^zTD1_{fA9*aF8#C5oEO0UO|g+6?jgmw`o zl0tjPatv16q__?zkqmh*_z_XNZOoU)4&>Ur11rx}L;Kr53UgW~kZfGThlP3L3gr1b65^OI(+oZ3O+iobAlN zf8#_hWokBAD_;a~=xJ*YF5L~y8lFw@be8bYwL8|k=6_fidXtb-GKjb^hb7k_>FW?C z+~2`PZ3I+BtRksoh>z8ZE0l=x;NWVn1qFa&p+8Qw!@>TR7PMYDi^S&1EZ*MD$}t#U zQJ~5kZ{(Cmx38YTU$G#4@zB4~#tdW>BEg(;Y{u%pm%PUd+f@h2^%WXyE{ z<*!}-Izsjo+G)sAb%qzi*1AspoGzpbEks8Pz#->)qE~9tni>nl9PBXg77#$_)admV zuh3)iKG>W+X~fQ}R+B8pl)STp@`!vbYkBSX71}`$n@LSdDFg{8y$khut!t@BZeHz+ zv-t90I-F&|ITB(YxM^>t9xkkW6bHvEHq}EIZWCj~t$k_EY{<1r{rfmYi)XfDx$J~H zTvo`JrON*Hy+I!25zi4Xpq)@FZI7h3Qr`CK`DtPKrKcdpmv-S)hO;sOu()>5AtM| zZ}?(-9^AqUUoixJ{mL*7F%pDl_oh4csGERcvtbykbV}3Ik%++|=HYL1knbSS#BT3( zb9*Xf^MoTCBIQg+tPm4 z&HGkh4%@(_mQ6GgGjBF92X$78`MF!_$Oz#$fV_~62QW96p`S)eFQ&0VZ};`f;X1gk zu=`tXhyCijSdeEs^(~<_&CgwLvZLj7x_;WOlL41`>qBc9j84To_lEc2W0t$xLdy2T z#{`Sm-0yncgPkxr}&OPBg07cjj4|I(w^kx`jond}$Bxub;|A~hb;%)c?Dg6O;IbnnOFoyD= z{@`aPFP;l#YbAO)EWL71iOAuRX`)MZ$O4^$0i}rrr_dVH`X=a%+uD#GK`M*t#)jh; z(JO~f=MU3oPqRL7O%89pu$p*MzF!kr&x_T=&vzO4bd`uCQ!E})D*73(hJYGsQN)jw z%}UXI8@q^-!d$(N`#3T&+u5!-ZBm#|p1l#Z!SX7!)^YTrLrhvMD|C89mgDiUCsl%k zaTGn9TrviVR)<3J&uWc4>@(ZGPxVo z-)kTR)KBMn6tieI89jX4qIv$ru&(xg=9p>CkI!TC6c0R2cpf8~7)GWlV@7^TSf9c} z@{v1z1UI_sO+~*g_awwSE>SMxNQE`8qWZ{WAlNB>UOj_E{4Gy7p!Z$|rV-9y%j8`* zR0Z^+0XY}`ob295VGvr1B|Pe)fSTzb`wMAvnP*7<%3?}F)U3lBxIMc&fE=prQwI)@SV>C*8a zCrQd7V<3zJ-W7qQcfuX}YW1b|NO{ z^MSlFlrw_RzdkQI$CRNF7(#5l_0 z4Z(Xu1aWGSJ=GC8glJB<7474(M@$)#jMwq$S@TbC-%sJ<^dzOUfA54b4kb9B{MdyY zp#b{Mt~^FrqAOCDF8hIkPb*AGZ#?qgu!x3h4E}s*E7wP;in}#FylG7`5>2)W-8ATk zH~0NWgNTMz%#Y|o2pT^~KeZd3HpwNM(_n%LO&)=C$B~N>XM8K(scZCBIIS6_ogPFI zzFsco{jEPJ{mQdiK{7dq`kWByQi`bZT69Mqw3=K_q)~1JN&Ci>si?3v zLdTIEt$^NmU(=u)&6wO(TusM~wg$-pOVhxx8l7G2_RVYWqGg8gg^X+d2E==SM=@i< z`L(cBX_;C`)&6789k(IhxJZBr2OrIH>&Ku6sVynxaW2F!awISgp6hgc4Owmc!U!Nj zA*1rChfIb=+w3}qQ(~`biG*IKv^0U-hj)r#e>9HN-n z)Gc|OE<#l_#Z<9x33FWXCF=)K7)k=E?n9e}K<3+DP$vUcWQOZGT5zn;1e6M8WY=1F zMC8d4KUb}Oo3)V?1}Y_dO)sTK&>kEJF*f*VSa6FhykVY|wK!8N;5ajZ3~QB)dm$@t zNSSTcB<9o7LeSRI(h1CAl(D4q_^4SRAV3Yk5h=!Swj7H}_lOJN>dfOwkRfVxk^M5< z=5}AQ$ijnkPL636?wp2HXyn|Gh{ck#+~j>ulg$~2YXi*RX1Z-FGn*LHAt9ywU>mVk)0Wf6c>w_k&D@%5~9vl zMz&014z{KWYAllWCJv@n_7*IfR`#OyE>?ffzZ8`)b1`wYa&&cYCg>b}n|v{id##F63OiFXdj;R%Z65f3$0V?))b`+dn^=(U5#w5OhoN1Y|Y47Swvk-%r0CvJ@KbwS=1cV?X4g~W=78SGXDSE(=SE-^t3KH2j9z8ee!=8hnF*djl;iY zhQD}6Tvp zgssdVCsf@W9c|6*UO3>7n)EMz`%}qZPx^b~|Fac;8ukBCe*4pQDJxquc5<#i6Y?J! zkdyr%2KW!*T1v*&W+wkB6J+g-EX@96rjm0*#_Vsr|B@7Uuyt@&bu=1z+m8*-gnX|Zqouh;OOGiVdkCm;fnKO%oxSE973mdY?+C%b=4z@4Jdv|Pb+gMCqIutAh9Ohd#(brf&BX|lYZ1#@{ zc?gtZb>DDQCQsjS7&`|cBH`lU6A)5S)6mkO>@bdACOGrvd%gD;9s;O&eYH913 zn3|beSXx=TxVpJ}czSsUhlGZOM?^*?CMBn&rhQJ&$S)`?DlRE4E3a>8Y-(<4ZEOGD z+t)uZI5hlYYI+h8P7rHPY zbiIOwg@J{Cp$qzz2jmBX0Sot*?KP$-5Z=fMi-P?l0=8H}UfnlDN)DA%9AoE6B;0qL z8&qd6r2V1ne@0l)|1HY?PS}6a1%g6>frbno3gN8xV#ELcl&5R7&tK<{iXK%u zsd>5*Ng+C}wT`n4H>altX5_)MPzsVjn*lKP5|FcU z%_}3wD+V_K>x3|}+V~mDyL3|BgvDCNrXP$`>{r**-UNpYFBs`R&GLZlbq=|npPw$c z)p-}tIrEbBDr;0G{*Nrgh|BOqO--42yT>Z+DavDs=%GRxD5`hP#Iy+ssy7qug7?rQ z6{UgZMQB3-Sh4oNNm10+_CMqzF7i=TjLL6`?eX$ZJ9H!RQA-=eGcw=Q^%x)vU#?eXC0!8eQC_Ky&^NxCx4 zH8-HT;_mjGC)4wmN2J{RZi8;_u7D`%CV6DJoZdHi+VjWV5I~!vxr3=e^Xy4g_wV07 zpXTl=+;wyf9$o$b!74)ipZZbZz$TRkG|uYC?l@dq z(xl^pOqDukwW}AqPkt%`)y&3Fj@P{Q@}o@ud+3%r@{!8w__jla;c=0PMkSqeMrBly zoSWHC%qO;Vyc1#2&ac_(5-@-+ptVUMed&bz;EetZj`kS}jiy4LF1eeIq$DHe(F$S{ zJbf5ZX58Ky{G?XhbISjNSp0G3M>g=WUVz@Tz7oh;b)!+ocy+SgrgTfF+Eg)PX&l9~ zocIXwmG6x;O6!BDR_rVdtqB_V@~Puzac8TQAs8xWr4$Z7znk7AMf+mt-cyVJjj@hGQq9lQA@ zM&q1^pQHLU6K{FP1Sf@!fjhqWlae_9j|YSbzqrA!yk774&IE$eEKA(^p_S?yeWK1s zV->Kd6BT8y@)-jCAO82yzET#N2c`=7ClDmkMYv#82;Z-tn5h+|PiZ&G0aXrL;3JnD zpI_E40&>59Kcts6oq9gnp1FAyo#v>Aejf<&f^822Xp3JNNf=;#oZfJ|^ zjADTCR`f|78G@#oq^1cqwL1Hgp33)`1jQ{}m&k6Iz_Wh-nsEicP2^N=;@}Cw%8sab z`+RR{E=L@w{fW+;*w^>b3Ld{dZPGs0#T} z4G{O%|MvDjRaYu_8(wKZY{L1Msx9>VKxq$U2ErbiNr+&|iJwNJdSei9{H9VVq^pA< zJ@O}ft>}LvL0@O5RLUD4V&`y@t$>f*6XX)hJMG$ZI@gL^yYahsD!1+Z&*vw$Z|~@Q z5VOqzkm#&dFlCU(AH?DRt(*T_v&MgQU9N;{{B#g9OH}PGR?cfyO6e0hl7pgXi%tKh zvH)k)Cb~ss?P;evwXSK8M-pf7#$U6Bfv@O@HBrEM|9qa+GC%6p&#MI?9w$;EBig~wvE(tF>7PX`M=nE&$yemdyg8`LwY)ylsh&9REl$sX zD!K7@r2R{k(%+E%1|x$_NbQ_Ey#yI<&IgADO&=US?%8tWW;1%G2eiY3c*L*42N^UM zP;J*~26N|jJg>kQqousoRmkFeQP3uvdFUcNCD?UNrNtrH!t7Jas(ugFe{abS%o0)Y z*o{6Z1p2eW33vA(A^}G?PvKcs&03{KFjo?%3WOGB zruQ(Ani8>RhzoUS+F%I^s1{@*y&8L~epO$pE`sR}Wh`icN|s(MZKMPxi6xDJwh!-^ zT@mxI&UP|En=`V49d^1C0~4AUWvB^(x-WeZJMQjQJA-K>W+t|+f|!pjcDRGICO`{c zxN9>&ENL9u^d1ZHzwZoAkn*FQovBy5iDa-=-5YdqAXr!0cv8n4y04!4{E&NI zk@x2p(s#zvnbI8!eS*G(uTq``}tA6@Kebh;$%qV$YxgU2&%FcT!^{ja^ft!nC zHLW-)P5GZ?{;$=M9M4(=JpvbvAE%b2RNzvGA_Q@?UBj0~682hJUvfq9)?vY$Q zPcbyy|N8H!;iv5^i4k>nq(mzISb8_;lpzfkNQi=+vg`(}4AzUt{!!WmSbM$cGbMY@ zm=qkFj=;=jz)Y^30L*g!*}o+6U!?nA?7N{}L|TtqDMr+eTj}p>Nq@E%lquj^TOJuG zDw_~u>}0#JT{g|B%1??Of}{Ub2lvPO(Ya^smAXKOtKaOcFSdy5i;vv1&R~CHqz+mh zWJ0PT%H0(-5{Y2al2-xTZ8F8q6kqnR;2w$fA}(~GY16?P=+#L%22~R@4Rue6lcO(z zeG{7^m>ytSy_>ftwOq0u1w(a9@WjU!0Qtw}04lz-Vf+p}WcX+6VbR zb?Acw?v{2s7N01ztRaudamdfqW&FBlBy+-!YlBRsedus%>Oa)&{yf*~~}8umKxA-QjFg^H9!KM8_lv;gv1&4dN19Ld6>)Z`S5L0ev9cm61)@bRPf? z7;T-*8mf=Tv4H1pYAN3!mN=C)KJIImUf5L4OSXnd%+~^XZvF(`zGJ@wN_44jkb@G~ z$uJjq%?grv>H=tbDmj(*hnAb%H(>LWFl+$cI0}I&ZHEBX_;)n<+kOgH?OO0AVP_l4 zU3AI}F?*~M0$Be;LfEOq7ujViLJUI+bQ)k>@K^8uJe7Kw68*GmcR>>zODmRo{uwv} zs#V%f^^Ov?M3**#X^G3UZno}Zg0_jm6y`U`rwsTMLABw8n69=LQGUjleU4iVIUt~= zl^ubwUFs>~sS9+iH*~w86`>m$*%#fwJd}y8DgZIo(sJ+i9C{!%+8J6Im1Eth#|7Ha z&dAMugE-?G8dCN1`HcK~?xwLi4~di}M5RB8CQ+q~BSVZmHAtux4P^EbkJ(E>sj$J; ztIn>71?)q7Osi}rKir>h5P@FqPnr`3zg$;|xJiL>C#4JC~p2A_@#i$#>o8s^F8LADje|fl6Z&@ z_KVK@%=_k`VAS7T{=Z^WR3tFduxhj_`T}>lHY0jFKE8a-qVG{X!vf^m(Aw@!irFGVz>w`ovk*$$}JWYtT0crSs%7 zq|r5L?UbJBFpW{_WJDr{#w`qr!t-E2<{2~BGHnf42|I#_WLydMb3!Vc09%WFQtue? z@LUJATNp^gG$1CC2haD$k#)A*QE5-@&?U5#V`n6l+qpK~iz2(k00!3-yaAq9 zNcobC(N^6z*jh!vASEVw!K+)c=&V^J4kwi+`UB#Z?dI$2g&gq5l2K!dajV<0?>LGW zPRx@W;F;!eIl{4E%AZwnpUN5|&hNW-ud$*y1Ij$P43-u_N?9Plx;qDGSgPbXX{1aV zwpM3|F)=auqMi6v%z?RN*yse-y&mRaIA>lh#_j=4;$NVbI*M?tiu4nJyTB4FnecX` z+(6Unc4fdx3Gtzr9}mME^AP)0Y@NaCLQeh=U#1V?2d#N+2tRRx34!fGrFH=gw$!Rg zq%cO}cMxLmlil|IdnYF!`V$|Cu0|5SD893ezX-^lu z%j=mwK-!j%-%Z2Sb5YahG={q_dX!#hO0MV9E-J|Sh`bsuVeF;{rB&Jex( z@-ra1hL+u%I3h1&c# z2!RfrHfAa6)DUA#dUMFp+`^!X+?iXZ=O>s0nX=Pju?Xg2kAS#M9F4TgS~rq6!PN;F z)ooMv4%_tR&aTNdxzLE8b;kC-|3c``b_c!=2T9-e*|T)rg+5{wx!0h?Ofrq*mPt2p z3eg{zV%BFWoio!%q%C1+eD%zzbsV|dAtK5mW3=&OK6)m}i5jIyifhVk2&9c)N@Dn1 zeuL-%!1_L5Yxq!|zp^5W+C+?n&+7!UMoN+3cI;=JQH(+~9vT^X2Tj&tRZ@WNpD0%P zoP^Cs0Yxi;9zj!4WpbzI5Mf!e^|ry1>*m`k;Io`8_Sa^%Gw87JH|&YxS;AmZ-U*aT zErES;Y<)pV6meE^F-D|{&%R*qB>%%3%;Ryx;7WYk@233_55GIMH`kwK^kB;nHc7#A z@Z$ScUcxOfuDw4CSi_QU5OCHFsgh>Ir6q2o2I%9T&>V!d$A=>1lVU}>j9^OM`xT@8 z8CVj|yz&9E^PoGn7uA@d?#Vm_o?Rg!#>9xU;>kRz%UtM$0l}*yN98Lbvtw%|u>Brm zKmc!tF^3FKw!vkP%#%5!?j#(*2ui5!Cjtfu(ADi0SfWLS11gUGAd@(mp`C^(k&$Aa zL=dMt`7Of3fV{<{sW!f2cZ60L>uT$yITLg`6Utc!n`7b!>N}xd1&K4AP>U_=Vtom$ zjaIaFH`?cS>@nme^&O|01pI;>pKDXk;PCm;!vzr|ST4S=Ruw0glE+>7uQGSImBW*_#@oj2Ntbr*8OJY!LTw;8r6a&9 zkXg#4r7~T!h=%fFcWe<)9~?Zc4(Ai_Vef#a4UDSf4F&-cH@!ndaHqi(C_onXDg|cJ0d%z+oqL~o}trnq{dD>iPaxz#INN5k3sE3;(mp$~# zvKq-{5wsaSaPvZ-Q)GrtEP2b~2XZ6J0znW`rP-x$Z0 z^Io!^v-Cn%uQN8%HmS7PZWNrNinu~?>I~=E3u;4Fu|&FJ(P7Ki^mE089t=LK`zmPl z{$QQ*>2Qxjk@$-?9Zb8RR()bsTorMaZG0e4hDv5Z>c432WSEi)ysAwZ^{$xx*oqB7mFLra=h#t}JP<4hBpGKR_5 z-8Rk9v1AF5koi*O&7^=9ZmdVCn$V{6=QH=ThHFR&*w>OQ88z6C*(`AiaE zhhr36g5cDv2F4TWrm(`_cSLSBM#QVeh-I-jHbbiNn2GzREhTgr9!RGEs0r+C$(A3Z1T8D#JR6$YpG9KhVV=Y@ zX{0rXR8$-Et1NMbaEH)f9XHQ|rgq~hvR z$3o@^*XmE4sV<$RU!X5H4J%WjkBVr~s)5Q~YWhUVHwc@nNsURE(lHS^s$hZqah2E) zMrEzj8ZFmu&+0Pk856zbvunytR!n281Cw&O$=1P!cG$n;UhvswrdYLXz4r|{2>?Fj zfackVnmG_Fg?BE@4-@k*A4;4?tqx|5qZ*h&4kMrY)X-#u0pRM@6r{l%_=Ku#r5ZwP z{Feb}9?hcXV3>zWVAsRN++ujmrd2L%SOi{XT@16#_B7!pkd#@dW{RQpIh1(9eZzHh z_uGp_Wr*Qv0v98%tvyX2S@)WJci(KdF}Y&vH`lp_hf@2C8KhdbNd`QQHlulN2)Gx1 ziTm-rFoGQwkPQJEaDEy` z?)A1KX{7=xm4GqQ`;%PWzhNmv#II!TvkFq{aTz^Qd| z9cQ2!;ozbxph?&!K+0sy`G|_OGvhgC7WIq|9-RpxT8dywguqg$qm|zv!UUn&yDJ!` z7j#|b%UqiOm_ceWB|gnE?=DL(H&&6yW}D2&K5y*H6xFgsPn+EJ z1C#NIxUj^-SU^bM(Y`fvwb1r~9dXL|8)QI)ux|9V=Xdv&kt%x9FW{A_6OU{V)%m$x zd*{xyK=T2;9;EX0Dx2D3Ubv&{B^ zz7%kGXS?E=(t?ZOhtYA^CR38*f^K-DoMH_BXxBVk#rJpDrmIp5wjPnm|HDo%TDBw4 zx5|pVvHR2jVz9ru_|yB)W^bD*^q$Fw=xMM*JFyQ1blYw>@P_EaSQj@o(Nf9sAlYLB zY31oe|0JAIl_vKhTIia0M|xDv>?r;IFz^i!a?js` z3#jW_4WJ$g=XdE&@%(B$8XYS&$T4xYnZieqfa^d8VvL*bH+u&xRv2bll@u_nb{eoD zdWE%>w;5|~ifw8~Q%OSI2=w}+Su(fas#7(fNd00(t|iiRezR}!fyvEV;~8Ij350>N zLo%p|0ee^Xb3`!V)fe}Y=O%e*X=ZDOO7@1{bmBZik@g$D{$`K77{Rr;Q1`m~RpfQ8 z#P8RKieg^_ZYgp`)b8>xNUP?mo<8x74VHq>MlP39fG@n$Ndg>(+_{_y`5!FOf^ns@y|BU z+pA%NVV3^OIpvF~y!~Sy=RFW{<<3S<%Ae@o)bHN?#~*Xv3REU8)RWgl1`lE&QwKp zEO~oaP@Cjl5FJJJaD=$cF;z3!MxBg;WEOk-OgUM;!4YIQf;LS-WaJgyTuoxMeuE5= zlI&7owhLg*cLpkc`{D}64vUaOBr?*bEM+Yj0KjzP1M3Q5bt_QwMF?Exckdg?=%9Hy z0MiF0Y*RDQK-)Zfk;i46Xn;-KOxUw|f2oMn9;_7x*@>QKwbiY~v zTa64ck{q6nb55xrw$K{RWi%~MjNZQ-;C+@fVhInBsRh|wY30I1noF*#+*&H}4q?Nx zF5h=ru4%@S448~tq{z+JY{?TDfWU3K((ODMa3YPOxexejepebrtdr|8k^|t0Widf= zQ5lTug7kMfT>mVxA_9uP3y%ue+`}4d6CU5Mx&v4uhChjYNX=?^uEwxUhjYcCi{iPu zG~g;bzaEGAm6)G>hcRnk)ts5QCI&Trm#cQmXh)V>pj}|Lt7^e4$+pCL%KlA$p+$}s zH9S!2<07p#Go$BLpar|XVwwEKHkqW0k&3$j=V9ke-VKi>1Z-0T$G?0jmlWI4clBaO zJ}H7C&ePvzHht_I(AVJyZndzY# zIAa3KcJYxlT^S=%Q7`w>g-Z!ghO321oq}KQRF1D|*+$Zt$#LdKy(Q zIYS0(7zpampR<);@CvA>qbUfxP0=2|afHWw6Gv`(eu+irS4`oO|42Om4QS>Xo=1X0 z3i(aKhzW5Lqr_7Tz@r3ku|HvrofJnR54O6-7(MM>C zbk85gl5p6qG=oBR%#=v7g4 zFY^#{X|rc(qE*@fLSd}LrERhBz!AH+N~1Q>@jKtG1~w63*a0gDzjS7QBgk4fD7UiF z=r>nc&`stk^z5d@b*=IOJ*~J|K=A@l==?GkI8+w>zGZyq%S=4rwP)T$T3B7@4`O&8 z2(Pn2&vSr=e;&of!-{gN+s(0MCY#H)GBtjowa;dsKP=yf9U8VE$`Ksa*gtxZr;*04 z-ePsQf?7PI`z|ecFTmG=+DwMiQnPK`JUf~?85hs?yFKw2F}&M?^59Yc(RCJgV$HWc z0f9vo;?i{9hQ<~cSFJ1xi^EVSs*ylyn~-Nn0g#5cGdZz{u!3n!+)NvEK=3W|D~QnB zw4A?zq>FS2^@2Em#tthEAZP-oGjw4aS%1KmPNaFtW9(Nc;Il++0kosr-XPl{S=*ClPi4f>2BS67oYnNWN|Xv{iuwVYxE%pz+!ij@L%@E>9a5wk$9uUjH3LqpLu=kG=boM&+oivB z1qZWjxG+k_fgLwnopHGnmN3ROB#YbAfr9aM(X=u+YguIKM2qG8%rRj_C3P8p(S%1 zZmW+&$@SY57-9teHnZni=AvbKQxU2R_psgbdLLtACvG=T6E}Wwked7bW=t-1c8U!> zbO~s(!SWk!<$I$y zODjQLmTW?>N=8S6?21yt@WQ)Ub6t#FzyGqjM{JC|xwT6HhxfQJ5?c*iO1mQ6iV39V z{1-jB_WglonnQRN)`0cP2e8vRnR_gFnBLfVsWz7T-{mePq7rq1 z(SxRY0~2gEcpSSh155|PrdNvG0JZ~H2EaW;rbfG*pF#&V96Tu@8^}OvCc{f2nOg9n zrTaCIgjii*cw@m47PxCIt$nz{ofl?$rkcGeaR9!3?u>D(6F)Gwe-5QPaxz3qXPakgIx&};0A6HY_maFP&P=X*k$!xEJKY`P z>Rygp(ezRV(unOF1d9s(`ODMWC-yUz1?7wxWBa0s(w>st1G z+vpPn?i;7ySY!}<<#^i{Fr7NvqdOL){2*$?p#EWtD8|z6M-1&YOaY z5ti{=S}wpuZTQ_9q@P!P%tqQlV5jiPeTal)nizL z@hDB4*V9 zhsz7wKPH2lCZ-eS+Jv~yxgP$DXf6T@A&yUj{e(EcrQ&H?~*;G*U%AS6nyl` zZecsFHSvFu&TFR<0BMYslPE`*7$HLALzJQ#ESuvx;L#IH~+@DX*F zxs-k|Z&^B_i2o?^HYUN^G$hPt$zkYV182|2o7+qxj*h7y>365V0(gDcMb76sH%GLjtx!_~7Uh+B-~=>+ao;@h7ijMX@&5W7 zYkE_*)y9ig7tBUzc;xt=O}2T)6Kn&5>miNbO`zY*{_ofD^QYwYFAK&DTxosNj+{nPJ zz?O(2pJ>dC9YkuXAP0G zys-*SDPI3H9gqDx4t0JeOBqXL<+YfZb||Wro$bE(uyB>~WjHdMt`HUHN9j2mVMxd= zd3!{8=3o(1j5*&<<9(6KYTlc3f={Zjv{g;{8on~QR9R1^h8+EA^;#d*h7DS=9OQuK z4fiBxYv+rL*rk)u$Y;bnYsZC)L#dg`-aA0um;%lApn7_!y?cD5*&Q8%f(pjZnScBa zUZL>Ou&cY1ygkA)ZCPGu`N6JJ0h5~iVcP-7Op_QEG?t=APT2+ZKU9pi(9(8h;m!#7YF7X@a$CPveKBDgTW z0io5sGT1NJHEw%kuI_;U>~Zo?`>)iO_UShi`%@Cxk1~y4wh8%Uo!t6@NHMmH?^;mq z$185hew=3n+j94(sQ8Be)fjGnnY@tIk2f*gqQ~v%3Cs)?#zcyVlaAVJ;C}rcmHWeI zmcm>C{RyzPI>i9tDgF48sdjU=$yO9gfi90nCfe+=E>2gLKYK}$pZC-qR6mXVkxvgJ zQ7~^VC30kShmaJr!BGLZ^KhNF%q=;!)zu>X{+{aa0>0#=kp{7hvR27zmD!JZ-V^tY zNEw$~hVxY#8dDrpy%|#pikTV##PoBOG^H1o4V)<*in{z+`%L>QRTT5=1Xo>v%QZtQ z)%w_k$BVe`V_m(qtB;n|d%$K_JBM}?nsqQuV}EJs2Y2VeXjRj^_sdxn-pe-@ro+_> zLAV^cLV@Q+RIceK$!6_+)49`C!R4b+LlHhG0YAxcn5MKRSo%5!99cP*H`niz0UVNpdav#Z`Yk*!qr)H_HU3=8FfqJUPm?9 zdFdW;gFrJ9PTcz^b)0GTK6eCDc4lvn#tjCBp08F5@+Ch5&rpvzY|egI-}ism}j-Ilg~SoI=2o9a4@~ml>BCeIh_EaJO`Qn-F?y=)*J1Syax?}8-mlt_7ukwIwvP$+_o3r?ja;qO zClgXyG*0l;bAei#|@cEUcDCnn~Mkwg#r~(FyJ#mI4^chux{iL#f8NZ%feQSl# zymU8Mw}H4Q*_&RrrO`qaMj*s7Y*Ly~VN>h6n4RNjcqac`CkcufBd}$Zn>JaXt?FhGc~m92r7UeSsIQbAERf$ zog_3Me?Y$N&r3Bzxn6=17=2)5}+qDfi z9DY7SBS2i?A0g^r!PbAdP2@U)R&U4;V{*Vy3HRL3*W80M`Rr`k?f9VmD16A&lL^VL zJoJF5iHxlz$iY0R_Q1rjZju@@mVEAS@yaQDL7!F{q8rfq4d1WA2^oPfrm)`mY)NlY zl4B9;j!hYK#p@`!x&0)Zq@KGW35G7tTl@Egdw)<53BMQ#J3yn4-scPM=y)hM2S=IDWibRQ=p$Z7#o3|*5DK3 zLZUix*FeHSc@2?llMCDMkz+FMi{nN1sxLNjuz?^e<;i`ZBr}Do*yUF$F9r#`<5{>aF4V6< zi0~ZVyyJLbA6+!;9UYID>fX%Ns?N#eW3P@|7*4{HLDXe%96In?4GH{^C?sPI%akpR zA5z;NU?+QdSSv%0vUM<@m$vr>lmeVhbI!tE*f}!}jp`&2FF6lVBm%QU3~Zu~`m4^X z<3jlYiY8AFkplv5PI(|1Gz?QVcm?evDHU=PoT&huX|ld~zw*}m%m(4RkD83yM$oef zgAPdb<85YvHh!XWV|@5q_AipcM!m{Q!KLL<5k7gnWJ@TKDA%qh+m1Ic~ID zeZ>yE&7SxBDXJgxxewkx`t;3O=e0}MKnqgsSLmfBxy3B~)VM0~DS&X#{eP*h*`Lrg zP24(ByoUJ7h}MXH$o6K}SD9T~ zT$8=!ji!cFA6~ST*ppv7&hK$_@6n8r&Ze*&{yzJx}l}Vmy_Qb9^*eee&JT| z^XnpGMa;Z&Z#SSpS}kR zs=xS0ljGN@+u!;t{&)T>qLMJ}!dm`j@OA#eMTMLhixuI+AExI%7CbBO z=Q7AU$Bx<@($3sjch$0c_uZyTj=OAusHHtQHrq9^Ve(1m!ORuePW`z&J^{if z;>~a&Rj)#6$j);^yfk8l$6mr5|CvBN>%2Zgwf7nq+n@Ew{UeQo`ey&C3>DCIs5Q?#=ue`<~0^^{}RkqCK@-W=w>yrPyQQiiOo z2;tnJD_rTk1vPULUpKtxxZg%Vx0OQQpsXKxW~q4knVBYBc6eL*blV4q`G9wR)gGZX zM%rT3h>ee)JS=#UdiFrUN8erN(6t`$GPCM7J#6#|?gP6;#ojzT8G3CmTi)%$!vxn7 z|J{{Kf*%w+%t2reo#-J_eQwXI7^dc!@)hN_2QS=zkX6b@uqlAHpzWcvs(Jq=TPy4 z1RSMz-z-igY(LE?b>|%S6P2?#JIXsNlw!z^;FlZa?_czjc0<=?ktdXubGO^y%ZuK~ zQm}tlm_fs{xQIorosUI0E8^;6hBZ#STZ`g-v;U}lOv72LcJ?$4)?UTn3T^vvURl2F zH=mu}IPI>Ks%qkTc;CispZ#tHgR-xO8qQWC+ajmx(>srt=Tt54IHYrH>xk6dphD;) z_c0$3KK>{l$ShA{hPj|u!sspq4pknFPg+7IMdjicn_8fcUru?jf#TX9*$01X%KaW{ z`jadAM+oY_-fqGpcL4rWpk6d`$DxM02Rj!o=!rkt8xr$r-o;R@o-yy`Y0T5Tx3tx-Q66g?!Nojpb;S1nv-)dzprb~H2}mo?SJF8 zb{EcD1WbQzwEpc735K5TVAd-C5=cR5nj)|9ru1lTF5bgke{lc6J(e{@=*r8X*@T$I zuUf&!CY>C25I1>mz5&ONB8o0&zt~Z;Bb;HAbgrg7WGVSVjr;5EPwffE_IP5*fO_9bEhCzU3R_xwR0(TNfmk zbbP4BA1Yh1#^epLk*LGyZ{;pk2_xSLGlYv2~?A+e>Ngc}1O< zvd1ouRn53jw1tsD^oS?TY-lSnOAevQ2Aep^=J9eOyj& z5n8puvrRQGHAX#rylU(@X1mYf*E7$N;^5CG8 zFTvGbUa=T*Jq`kNjw{|K*dXs<*!H{cyaZdE*;w8MUP;0d+H_6@2wez{B;U-tk$0Ci! zo&wpAZf&uzR4}V)sd43z9(CVI%Mbl5bkeA@*j?|v=pm(=*Oek!o1prH8wo1qSBIxF zL7Yso_TSh7ph?Uia<1z=fUPqtrA*^aLawSHnxfoIM;QK8K`16 z+9O=H<-h7z@^7x-ANR?SQdp2S%H3=n5yGp#P2{UcFW+2rt_ljQ_70{Oy!w<`9OpJ&^Bp(_=SRlLF^NbLh|5EI4sPwYP^9+8p7E}eD zoI_Ce$Jnjqh5b` zLTKY-=Mb!l>|UWu-m`5C7UQ|6_vuQg%7%UFXPh7t(9;$(aXj=zgT|sA0*9tQ3}$Ae z3x8llq>j(x>qO00=bl4)UNQQai)lM&@921@^l{o`OHh8D<`#&9$smLxkhlmAl|KIX<`(9<2b~`C1SatB~r#-IA+6pt5-)D zQVnV_*NlrWf%|A(*K3}%$dN*$mv_HBGhrn-?JVcrJ;`^wH(T7S5IJ2J8;^CvqHNVG zij1|#)#EURx$2Su_gW{U>Mu?oyggU@I?V63jmPqt{}#)0e{#$HP|R~b@ifj{Ici8^ zr*2WxfW^^qv?{qe1?|%uv3n)XI(NTWI{7weRJMP)(Tb&wesu0yrJy*`jNf$l(Rlfk z>-GZIwy0_R$V{LTYD>gm#_ko%gMLQjNJRTiXMO{Lwa(@YckVFX*yZaF;f_ zposl5g*e&|rHuq<_kaQ(EVV%oCfF!&fBmN}nLqvH#FQ*;-|NXQAZZbCZ11zXz2c2f zz6Wj-b?WMe!u!8|f^Z1e+|C#eHGf_;FmU3O$Hl3qoSZ5SuM~;;#5NVo_cI7x%LjR9 zZtK0&WNs=eh3H?iqF1qHuVs4jMHRm|Kx#eSn;a8;KnYQWO+7iih3%+r&-rXs9{K>h9Gb6XC_-s$J^3hXVo zg~)p@?T}lt+3=V)<&v|f4EgaAo6@}YC3RJbZ;#pi;G>WeF7%qM9XT0B#`i-vk{>0x zdFH7NJn3?UhB(GQF=8uj+A1nEY!HRlfpY1P#T_%J0E|o;i|S^GR~SR z4|6&ccgIQe+8xX~Pj^nJAiplnab{h*7>4g}vS54OS{;^aYByk(t}6`D-9sv~j!JxQ zm)NWDb=!0KS8E7tfOB+=(AmP$x1daCz@lGQW4pja!Tl>mb9Rx$&KDG|RT&bEb+NG?v@S0OC z+AA&RHz$PNUP=_{@ZB4rSK0BTd1K2tHZ2EdjP<_fBW|xxxjYJ~xaWN$e!CS8+M|MI zYyzcCGi%=Rq!=6BAg|D=mNc z*1UN_GI+TWq~D#Cg3_48A+4XkX!4}~A3b*m^l_>80C^{>yLW!r*X*WR>AgKA-7O1BE%k!yj!$J3@SeoytwC6$mK<0RL)($r(c*~)7 zMG29D@_T!a)R*l1JeE?#Jx1k7-#dREwEg1BUSnM)R~B#j2HB@(mNpSJ+>TG~{+M%o zPjK275A4#|#?E)-9d3@xP)cALhusB<$ZP)O>AO#k2s9YXT^bp!!g4AQx2ks)w2`g7 zlsARM`n+V=6jVVUb}+ZL@l?g~6c-YnclkOmXde*#GOCWtzdxI0G*|E_aqh(2PQQzV zszcVikIh|V+I_enaeI6OKYN|XZ6i=N&Rf}Exc%_bDc#%pTElJqWgpIyQi^BQRPbyC zY*!DR5US3FHkO9BeIW-dW$1U&%?9^4TiU+^rFz5J;~@ddx|3GvbUA0cjSmC(mCvxe z-KH78YsUaJSTT5yn;EKI?waYeo&EW}<2$do3M5)V{WG-HbO#SY3h(Q>h9thvlVtJx zC;;vrAG9KnW;!modyZ|1KF(H(x-YLPw7l6v$!{ozADvTFmgmmV*lRg0W|6kS2T9uc z*jY7_TBYfv=D-LVsA*S6V@FrvS!}j^4;O%z9@~j_*&Mi8v+2Z#6Y1Q@Hq{iDlK0tr9i#9pdpT?c{o``)_Lt6lX?l7G&0d~njg@-S*(veW zS3a(csn~omCxycA^-0sne!D1*6|y`b6-rp~dp#j|z;17awrpldev!W;{%MiA6toJx zmo7ihr}Lc?Hodw`>$Lkl zVf07r|EDBUt_!N^R*j>qiK4L;zI&q&uK{239TFSorB=FDa&lr~f3>U4=!PM6_Saj( zG^$vTUqP7$=xh~ba3!P81ypykGn~+0CH)>NPRg;3b4(zoDnt*Simz7{4A`26U;e&> z)T_D7=%kfUJz$&o%oqmruVMSU?|nJ${8dR^;`G4jh^op8ro5m?Sy682x$?HryQf2L zzv5Ouv9z4|>R9%HBcjfb#jM?Eep|MI>So!@)*T@8I9fK5-#Pfzt2JL0T1RsB>uxu> zDwR#KLd0TETJ+uh&1xeC8fspjU`H=5<~ zWdVZ&87QWt6`|L6$`vQ90VsIAHQcSTCO3y{JqHWaru1_^+kdQfEA(zH!}fK%%&Rg&%F>y|*DK zee3C&i@DwAE5TKhb~hd0!fx&z7ppOo3AsB13fsA_+^@v4oejNV<~>|dqpeo%GslEe zz0_IfDqy7UZr5YsBS^om9T>V;%0z)j!)$q3q0v6hBj$oyydN}eT`lGWU*o*a1XkoL zv$G|YUUIH#&fhoe#=91xvmD+Lr5_O=qhvOIxnN;qwQ|JU1CV@2Xqidr(KIXN-L|OY znBRf)Gt= z&1>A#abaKnhFfn>93RO%^g8Kd8tSuvr>SmW;$!&m3(V+#gz|lp_g~m_jb1$PzC?MU zy8rUIo~_WJi^hV4x$yquk=F?=Q}APcl0u=~c`qjQxhHkfpQj|`PJ|O5oAT*q+IEzy z1y?M4B&xs6Ulo7YY0pul+i0l0)}^J;0qw+M;9@I1DR-n| za9cF#tP?|$G94&09jX@Yv6+H5&m4|i;&}X!_&A8U#AP#x?=VS{AndDF=9hDyn3jE@ zBJeee(VwUoTb6n#*!rPetJ3@z%kry^kkKR*N00WSV3SS@gR`b$?-{o8@4G>6)`L9V z2FbO?{(0q)Kt1lM)1NM!Xf#uo^cJ2u)sZKlzgDw@cJfM@D}T{0-m{JxxA@Xw=k-`y zonN(c>c}XL|3B=#bzB@>wl3TW9w12YAW3j{mktm-KyZg7I0Sd?1QG}Y*PxBN1a}Jr zcXxMp8fZGVGH2$U_dVa7Irq$&x$^z)9~}r)yQ=o?+H0@U|%8s%!=>4fWv(d|saNDJzx%@okl(e` zW^~THV+6yh8drJ#f5g#Ana|BQ?#c$`HB~iZ#phLF8)k6|0)!@!_rGx-c7YDjjtQ4W zo)erGGj&Oh9-J@m&9D|7OubW~f6g6!K@%k>Dpwez@*Hmne*mci@Knb0;nrI=)Vkxo z*zOgo732H#wWB3aPdVJR{5IqhnAS+urV&x2dAh~T%X+DW`o*RB4owCLRK`>!r_uKU z>|}7oT3BdqZlDNnmcb)nA~cyJ(RkXsQ*IVoQsKiTmwgCDo;YJCR=&i)@6mnH1 z>P>JG_9g3J7}#}HSUu_=py-JFki3SOno$DRDQ`Kx>R@H>w4Z63$a?eQgS12}$<~-4 zI2I&>)3HS5uB=*RM{1cit^dtn4wrB!-4M~)lmRTaOPB@*&*w4{2i7HbAK){$inyF$ z`_j#6TaeL3J8bf-EF`$$wNcc&>=~Y9Z=dSIxUeabJqk^puy~@*gl|2kqOm;fi>(HdwLT4(W*ix4LvQURCTdA0WE_>Uw zw-xj-omB|Vo}1Pp_LS-%X3qR^cSH47DYEg+Fe-hJvjM*}>>@3cPas{-pS)a(q*ZfK zMttl&^I~SbpAMEK6L+Zw76#!uncH`4M|RR31ob%Y_Tg6Oq})}0&y#aQ4pdIV4_WSx zKEfK-H7Pnu`|lqrS=_51dS7YarXKyO*++6PQbRW2QZ@#}If70VR6uoH(8zmtp!XAm z8czi`a2_KDbjzN+zvm6ZH9JGCN}@4#(1oHZ<$%8FL>j17EZruMKq4b0iObK;BHJGT}?6yX`cG;bA-ICi*CGX;=g^4Q9K(pgmhwM{SYlffbfH{Ak#R`D^o}h*YkDyODh5 zcvy`Sx9C8}xBV|eH56P*(j1P;-kSAr$!g9e!xX+{OTNQ5!TTI^yYJTef`n4N65p~I zcncg)On#e9(&>(FIC2R#d*OP)^pIPNX9#6GQR<+0A*CW~vU>-QtKv0hpS|aqj*wgU zRAqWQ8f;>;3zEp58SZaS8pTdOccz^&Rou5HmzlDg z{7S*v^3hq(npJ*;RY5#oFlxu3&(8Q_2c~gAFJCpn)9rlw^hwRfx4cmj8!|b{0wqoz zl)^#=^ON<4;bMiX#kF+}j7*&o(jKJr`CS5pMl!GKa3;hHn+)YaT3z*$LXU zDpB%b{si~t*G)ps_oO^>LRUlidM6dNUXIwAPk4)aG5QVb+j(@DgkHZxA9gw)@|+!O zexg^EQ+>1Xv0kb(MC(9BILML2yFvbfK8KWR#9cH^2l z>e;GB{*~=22$n=*adJd&lq)1axKbjO#EVPK4k->_K<4Q0MUB_%p zcDT{X7%_~0wz08I9b7q5Wgf5IROiQFYgU6h_auT(K(Gg17(VQcvTDHnonMF`;yF#D zqglPqhgP$mwHCttN-h5JJTHckjVoib__RZhfxv(&1O68^Bhuk^F4ndjMN=TVwn2y4 ztS?fN#c?Xe88bQx3~kUsobWvI#B(O**!5|Cx_LJ@&j$W&V)GbFF|;Y?P_nHTvTx#; zzxbURBs^!y^1p&S*cY+PFxX3d*gRUfg{REL)Tv-h^4jwb#d(^bw&X_J(>XbrFgax@ zuVjel+i`WaW$xS@IPhS@JyXNny6p^Ckk=86z3axerYPi6l4MM624Q=?F;z>l6S>%M z!yJ9fjC~-Qso1dO){@=jC}51+QC7O}3Y5=~(S-MhgvP(IKSf_)-m;P3?321nV`FQ4 znKskSjU-9<}0G8p}kiA3z zT-9$0c7_n_x+xRI`v9yb(|J7-`s${SDOnc|VYw8c&XdZ`gVe(XpWbZCAp6FOzNA0ng3D2Jy$Xe8s!y;4ArmFNK=cjjE8;AC0)g9B`z?h}R-mx95jaSx5wOZce zl%p4}SZdKd$}6Ns@zmFvhLOJB~*aZ-*^7mpC6G~9YC8+ z{D4kQSI;p$=_u1@^6HXjmq*WD$#?J1Jck7gvRZ*k#6e^ZF?V zS7VmDUY=f8`2}x|GjdNjfG}{-Kl|(cXI<|}74nN#KQY%mI>c7X`GMMmmuR!3&1u=D zn0NLpcP*m1`QmL3)dMETBjApC5gGqr{=>hx-TlXJJE?1Xl`emRv_YcExpwl2X_X*} z=~rNPI0h!L${yVbt6y-yRMcRA>L%d}fY9-ufR_JzjuY;8bCjv(UWJLNGl-oW+<8p| z2h6#}xOvnqF73$eh-Fr0I}kN-vs1-m*Mn>gy8=@e^0M}Z=l_e+O*M-_9%j z7f*oyEE(xObI|B4TB77>TF(#rtNM$Bg`SmBtYrqYZ1EH0PTlyA&U18QBI&H{-{{om zIXDr#>r2P=-gz@G+v*L(C} z)-Ge`Dmfh7K3Q-)$ev`Q)EmrDYX9wTj#R$YY*kob_Pmv6Y->$LjlpQIdP=6i_C5M2 zA@xbO>iW=RtvD^bdA*knnQ?SjMWW&a_e6iqal%b10zi^U_*I#naNSd_&@adWL(gi# zFnQjg8w_B{(HOzv$)z+I%51aWc&C9r6*8(ke!~`gy}Hyv`Lv-nY;h5>E0^^;FW6Cz z_h6B1^sust6(6y4XghBkn^1o5obr24HnFm+t>Q6XGaxNU3XRIXg6!R#8Q6NpsAwp`z+fat0mD36qUz8GAQL zyTqHY{@(o0b~K-!Q+7)$*8v-t9Ka=n!ZgH4&L_ZsMLKfZDHC%M*lb`}{Xt&ZLwW?E za)2nWGMr2wa^ej6o`2kx1CZ_f6~Ym04OW0}_!IO=Z6#b07=S+kC;$-R&AC$mSsn$L z246~MgF&m16?K^L7!ZAG%LX_H#4>OuD3+%c6vhKU0jqn}8Sh1=Iv{8~HVW-mafv2Z z-wb8bq-cM@Pdl@4eN9=!NzkgC4Uvu&a{*yvo(8>y5*_G3q7Dw$I>@zDirg9AQ}So6 zgp;KZHwW=T%lxNLz9yev5pKPjml8$^ZRZpKxs;5pLE!=CLpK0ny-O`4q(0+ND zD#G)2N`q`nGg#EqTT6?%oner%Q<$v<0!Nx}rg9gsBq?>l@KA@+tyo6kK1M^VwS)$4yEp_u0QgJtUMdrFEIz<+7RGyy9+SyOqPjJPS5M^rE*1ic|3b$6cCysyU3R+ zQ*1x$=pHW(d$nh5=Vd!kBv^l%DQ4BGy`G1tythLp6K;6aVQ=AC9q5*|XdpeRhmoQ$ zPhfH?M7F=z!IMN=4@+1nR*)~Be5@EmC&yMg(QMA(X-od#^5$RQ1AK!ULBtYPy!w*t z7cE{D*5u7U?}l$9*-=lHpNrb?Hh2X^(S4S5qOHSniVD#JXWJ)glw_h7X3SgG+veiB z{RAn+t**;PJ(V29B=?>cdElDj^adx8ZKWw-)wOn#%{bt($4fiv>o9wC>TjakNMqt? z=>w#cP0al~Cga8vyv5AQ)s16cW((V~7rGKPn#AW9oc2^-=I#g-c6aV*S_g`X){ng?trNKZ=}06frq^q(zE7wgS!{ zGb?f%HGe80a%X3wmb?sng2n!B8R}`1(cA(KJa3o_LiA3C^L(H+vD8a8{eTwY2~_?w zF&4}&A?}z(`B6#sj?5?fU^4+zu(mp2Cr-M1`N#~-|42K2_D6By!b})B*z@gR$f{hNUzkJ2#=Jk(XMxTC*i0gVIXk^RfaI zg={)RbLt~56x=T-SfAF`QSCfhB&AMx5GAI%MY?>RhNG87^I(~U#kA!FwaG*DVvIKC zL;8DJ3IEC)2vdC9ENgXs&K%6|QZK=7)0h!#VPBvu?CM_=o(*y#{!p_)0& zs(u>2$l#DTR?1p&e2|R@T@@A2t_#~0mEP)eKcu)HAtNl_1}|(r-k6VHB>z_bbyMyc zN_c)6w*0@_gZ|o-h&Zhtrd%H3?R*M693`3;^&r<|Ev|1P0f8LmYO1_6Ggt2THEYAX zx8n6NmXPG zZ^IkNf+)Dy0`mQ724v_fu#|-wj8%G3Fm%6L!Asz5NUhB%wix82X6ZQ*cqx(3$n3HN zZ;0Q{2;LO?`mgqdnK0)BTre4n*@&H0^EIh-0o9wW${|dM=@2Get{V-s$>s*GlBmt7!~VcO<2GD@P5z40W!2g~o2PoMdf%&Hm$V%|HP!OpZ+RI*?>d z#F(N$K^d*>VK&Oaz`?}aT=MtwZrA*aP7mHuAn>>AF2Bfp+xNMo1fRLuJZ_$ITBkm> zc|6__yDW9`yFgCrq8{!G?icGEXn7*1VpSs}&q*G+TW(YY+$&gQ?vOh}O0M?t$fG_M zi{oi%VAS={J=93mS(I$-u5Cw34zZySWd>GY4ptG4Ct(&PyqHOO*`GU9H3iy8F7|Ym zj!TPDncX*9nw+a%Pwtw&lLiFXb)-eK=UaDTTABvS*3ejs6~3p-4HiXjI{b`^RB=o;!0CD|ry4{+tk54O;%J<_nKp4nY*(7(JJ8;$ObHoFV0xSd|D zA=XE3Z(dbJnU4Y+U6`<;ovr31?lSP)a$R9p6`6?JRjz#De(xi&2YZFeS^}jVXJv>Z z85Vfiee2kjtj?`BfINT|8Tl*O_nw| zp3h<8y~k;?PHK>8iCR^dba~xL`+8YgNkG`%)6-MEMz^Zyh(6xF+s{3_bF%$?8h@$7 z;(HEV41$(kSqX7dQmT}v!BUEwe3-j3gpDo=ni2B!CZSmAX|oWo+9;e{hpExDx(VY1 zy6^#~$2vdopQ7CxXLE<+@Z9^QAaw8ls1KppI5g!4V!5U82~U0$MT zXR(vTNp?)|QbR0Sw-Oqbu#eQ6h3R?iZX)Mak-~=>fqA0aoS_zVj=bhuH-vz%g6;P& zMXvr4G)-k`N1EZ@FAu7=-n1R%wefUo%55hqXELuhv&lIjT=e z+t_71yU(0?eLcKXL{pT2q>)>BJ~@8yCn#mWT}@nWY9Q`VeTdou1SIko7V6Tbrayau z6R{*hle~eWWEE@Oo}w&g?Y+4uH^O)~TA8=G|nR`xi71%G#nRbOCB)m$cqkPYt{M^^}hQ2*&&09f^OW{jbqe4f_d_m;Y^N zJO*gk2A2E;EmC!Bnp(mF5t37oBb;?+uD_<%wHW828}rr3n^ri*y*$mm?c28cM1ZH7 zY$X#Xy)gL+EmgB!wK5svlJ#I|*{W=qSFwXNsTtMrBL}>TFiEY=%jF%3q)21{$y2>5 zRwan}XTM4_D8QR#_Lb@wwsSrF+V&2*nEI+E*Jw01T46LTm>zh^&CndbCtV|;p~l?Y z>Pj(&-=@5T+9b&67rck)kBWU`otb+1fi+?s1HJ#FSM=C% zQ6i(ZSU&0z-^T9wZ8h!fO9TYEC2Kn9b|?tndtp^(7?GG#8)0ib7i0Z zdi$_5u9I>!hr;)2G2FL>_olSAEh9EIviIB5m}URzQ8i(;=Dc5T;s44HV5Q`Kn&~5nYh>u9jPH51KujE&JkGM0hXR-QdEwG3f&`V&Mg7Cc!yym3p~Tn?$!ebfdzG|IayO2ppL{G{P7 zJa>EnSdl+e=KIg$C;#a2doqx0+Fv90TL=qV(IeQp=8gN~8{=tB_ZYWOWs=p>-`St) zuxCY{h@8kmfeVTl#LkUb@(VrjKJ(E`K&12G><@7KwYKk6quMnNrRGWm>?m2~HUko( z#*n#3rWfhccHmsYbQ>h`T}yb{X=gN|vq|&0Z=<@is!Q6H9~{yzngxmV1#ilaFjZq^ zQpux5)b*IH6-!Bh?U0X1*nc20FC&$9na?PVd#)cIDGBB*`*-ui0960udxAeOMxq)^ zpm8nG>%hb8X6WbPtYnZ}8Z)I|DxJMk1muCWY`+}Mnfy5ZLQ8B*zh+k4!IuqA{S9S- zPLG@j8I|CdiS|xQ$j)s!3mBH>R9$fYE4z9)q}zs&nq;A#fNKAPOkALVL+hb~%*32) zF3nF6&S2Yq$pI1cVpB#6Y=yHnG^|oB))3AUM`( zW5}rB|3{Xt|4N(REpu^?Jr4EW;faKHp=VtztCv{O{H79iX27Z=)Ms@U^2_UKNDGL9FpvC^c+3W`=L!4O-u7UUqpd4 z=MX&!z;~9Y*O;H;Znwr9Sg%vna9A3Rybw;H(Q^D0^ZF6V&b60@4vmM2CB+xvsD5Qf z3nYaOE3FRV;C5s&bU2FXBowHjBI<@XMo3ir=Fa@j%&>dnPuB5qsmrH2j#(8&rWAd||6Tb$Ue7gCGV^CbH5Se^i8uXnYwsvhOA_w0>}66wbChm zI}uw_ggO`A#9Qs?G+&x`nLQxAgb8T+FOwhE``_)eG~~LRjcE6s8rj-=u2JlK#2Yu> zlh$^K;_y@reC>#>=1e8sY>D{1(?mb=SsV=+*9V(cq<8D&G8a__MIO|ZPB6jb6q^oi zg0zRKeN4$@ZwwAr<&ZtkDsfG8HB;o-{|*#ydGb$;A^z1aJ^a$nd6yxF|JYy<(EBB3 zr|OkmKiC&6TCieg)=H81goeejaf*&iUL&&AWaVyx8Od6&t4E|xyAhd%@&Q54Skz=` zqNw}kSpnw**Ft<$b-bxW&=ByXNJjc!`X_Bo&!{!byZYykIq#T)=h_EvW650!t$**i z^7#zhWz(DoE-u0EL+Gfkuc@wja!FV(^NFeHOZznPGGnh$G^x5@f zKdcBgEyOjiVX&Z){pGis)?Y_IKVg83YPq_1XWf#AKwNw1Z;P0k2z0K{RHGM(&h0Mh zSmMrJ_*!&d9jK^hY}z~0+6`vu&D^7nC65d#AH53flTenPDyY+qxvvDGNo`eMvI3v= zvfr*I+nG!gg2Ky~7gIK-L~8d$ z*8+*4KR;jn()?Y0hxY`5V#UXFl%xamDE0HFlGZadajBSKMI^5)> z##F~Fqdt+R4m2_d6d92h$5pzMLS#$Z^&9zfBnC#M={d)C zE*BTyBr=t}jZTB2Fqio4Fu~n22b0h%*(d&fg1PZ>oUzjj-GU`4%raV*>|F?ql31dW zp)=}?tW)h|Ix4YP3S%Lsz>Xqw26^E$fT)G>w+(LgldwzzP|V*I0aJQmNzTN`;=@3u z*zmMc2n?Z5HU}jH;Siklg)?$IpulCwv}M$B2|WE^U~yo72~NCjm(xr-338! z1!|(}8vxSyHOv1xJFyoiiM<}Ne%g1f_v@9c7~0t6Lgh@w5iAfI`M5`nx~RtD6?lY6 zG;h!4=y{fy{%`pB@3u37cF`{Oh1t_ zBviF28c)?5v-^(v3)zn;@Apc;>uFiQvws0^=_ewy(<^Nv`TAtp4<|jVBzVfeBn7Kx z=ot`>kBjgFi)AFx73cIZH~q-sI;4ryzI+7R;_)#gs)t^jz7s1JHrzXsMj zW?7evd|xC7??J@s^CddPBzt|zIdlQNL(Tg!(Dc@VaWmcb4 zkj6pnM~PwARfsB%Opx+mVj!*9sJ-jP z9AHs_!c_xdL9$OU@L@QDDfjENhzfdDerz>-F4I;FU_tDSs^`z_!P4misvDO+#3lNS zeY;OYdN}_;(%2ci;g7gqc~CjS#)hkBjT^u3R$jBrMC#n6dtW}QoB`}hya4qTOdru~ zVg9vpVkY4L2xLol=H=t!q{bl5^R3gIB+D*s6Dkc}0UH_HRyN_#M zSv8T$qe`6C@dEp}o)|>&7L2sm#-1b~K(W2F*Rs#XRnjI{{6jZ2xn|R0N|DE)anb>k z&{usNxU;6EPz>$Fr`}}mIe&X_wxG&KqekdF?}hqR{K`)d@|S&nleO*$DhFl6V1vNj z%ucGZ{QCjHJ(@tVB1@Vmtp_x2uQMNzM1MHYLF}+Xmwtjku`HsgQMXgqMA3?|Us0oI zhu+R3)W>oaqpLE#Jw-Lz#45jb6_bx293#NTNVBhMS^;GN7)nL1LEfgw>#JwkHGb~7 zGL~=dY2%lRiEq^&GQ}scM{mSKm<2JTL+%)3_!X{=e%+_kQrw#p0waba<&GajZD@ME z2za4!-+kPH^pd))sB}Lk2Fk)^o{12ec2co43;i^fK;9s$jcw zfkAwcqcqr zXII7&POu5(%ApX_tY0BrOb4dq>k!{uUa?VrnCk7)HRkMcbiMy|3+(N9b#?bX|4Y!$ zsfn*M3!kC-r&Rrr*D;+;gpCmnb%D28W0QxfAurQDdt6Wxgmp#eg(^-#q;hJwT^Hh>NQ5#l1V2Hys_i=!ndSFGtE!L3m-hFHI8Q&% z?Mm_J);`X03H6cd0e_N>SJCV2A-Xi~ra6ITvs=n!83EI4l)%F1D*uOP;oW2{%z3BU zqZm_wg1{N9rrK2eV-Wcp;hT{d6CZ4|cr%&`e7T;@fTCx9|$=WQuPU2$4c^m97U_?S>a37${zO07!T0TQqw>4 z`UpNUOLQK+Ds}K;VadoQ6~1(R#;5gE{FDl9*y(vi9SzPiai~UXAv@dll+ee(=r%NP z?nO>kn*n4jr_<*|IWasz8AnQvZfOZ0r)+*b{F$VG7%|Ud;n>iWbo;{b$Po1-0k)-` zGh?v}7JO>ylOB&v>J|BF$jjjrqJz?Tyze71b!zapW-6N5)d3h}f^@?1d6=>zvq&8S zFsw;7P1myi<58^!U5|_^LR0EW`pty0aCzH4eV`&LFjMRK_P7NJQW{omVa_cz^ZKGP#$o~_nguX4F@33!M=wzv-0lQmY zGOisI$;rMY9Gt&ad`0xuQ5)ghuw*uHP$Sssp1Fv;?F#V(B;nqe0>pfg?wiCg3ti%A z*dX^08F@K+nkb)b{V6)7l&0~cJ;3Oo{TZ?-;QHkY@%{**JCxz5Ez6t80 zfZb@kC?kH<|7~8Jj2bt`<37HyOCDm$t(Je*w3`IYW9Jn&cbOSYnIH{N`nSU9c>L7* zksQTE&>6>^u6>rhs8wu>e-(3_eYB2ufgadGE!l@#y-^a#RM~5}3OprDEb8^uq~5ls zCyN_3`jEZi^VX<#xJpkY;hh=g-Etk(*8*jN$oGbPuRQV52efO(kBT4K9MOON2`YO^ zn77C|VNw%J`l+&y5;ECZq_>yIuHpQWRq>jHKugkYRe@WG_bBjuhJYN(#PtzD+Lkj= zv|Y+w53?ob#s`m@P^Ae_eWDz7s|a5wkF4oV=z}BvWm6R`TvI;{dg}GLltnN-XTJ zli>XK=0C|CEz|+_fl@3p(Qs6=g&K|&#Se>Lb&Ankx~vWblE44$q7y+?#rLhDdesV$M)op)WJ(%%*7br3fxV+U5WkKj&$B=JdtK=2hwxZY)A4bG9VEG{Q@4 zfFwps(q-ih@}|Ir58um&Irf!$FtN)GQ%*z6qm7ca@(sOfXSl`X`GHqpdCGxtY6ig7 zSs@%BTDTR4G}s5;j7P!vwLek2h2fH$n34>KOnR z0XSAnrzX>k=994H2^epa^djGjy0=A~XYgtG?szl))SHO(F|&7WDv{SCR3EEm2)oC! zA4|)=M)ggtlzBw5M>@Aj*=v`scWZmwkm+NrcE=>=E$+eaybrCrmZ~1@daPxIcnZ8t z3QRHYvGwD)2C{S^=Un^lIsfotqbb&0@G8)JKT>iPv)klhA*#$BmkK;TP_Kbr`1Kaz zYbi|Qb0d98-xKlNmvx8j_rH3xmmr1j_k{yGS0&C{aH;)Vcm@@&K~+oCh+etvAeQ8{ z8nOEO@`TDhbJ8sfCP)gPM2#NTw2lF($Zivu>pbfHD#BXAjY4MHDc8j;Gxg}!@~-`o zd%q*jhUidJOzKCDG77pWTn46D9cgWKspSf_tw~(yR7obZn2Suwo!XnNpgm4)ASen{ zO89)3`DCA(m>GQ;k9YUUu}HOQRv9VVf1I#*6>mlmlA!Y1 zir#HsPMbFtA(Y{MQH2b*BNckdDTLEAJBgK3AOn~!@iKhTupNH#ih}G2e99yTlw>r5 zTWqF}X7F4(Av7H;wcgN$+Shw>yK5k>yX79P+(CrWc&5GAbt*+wS-z2gpqq@PCJ3^i zyX6($dcj?0v(q7kutV99c+C);o4U7yVEr-bk@Q4Tnn1N`Va|4nmce3`XqYa9i+#Q) z8`(c{vJ(95NbhrFLd#xE!O~<}<5XasrxB*V1THn zn%Hz7xrR6F6(E|WZl&mo>6#2We_2yO`uwc?2dJCi+pQ*o%U8NSI_$888RY(Rpd{YGiEve9LuC6qMmSeac>$yD4$#LRc}7?+x*9s zsd386y*){Ddt(~Bai>AiJ(Z|AVnCsco&(t5uiA8Xkl7Gu zTh=zDA5nKZ?#o^A^fIJdJXCD>6$u1t%KcHJH?w6lDh7zV{T8Q3{T=GZ{QKDDZvlnB z1Qz~3Kh+XtTr|wh9&n_kLV+;BpN=1K!b_Qfpvd6-2~_`8*vU5&GflK7{{D&?Ur_q+ zmllziZb%{QBxm_(OL?IitSQ+5M8|%D&K8w#_s65Gh|3FD z;+<;6t0ZNWMz)!%2y`B7d@enD5+R2@ep0*L_Z0Q3Z3#wCsw!lOmykf`;eNRb<{0Sx z!qB>ZE&W&5tto;Z4Rz93HTVH&PXa~Mc~ne@O@r)8wjz31#|IC7dk7lY!!42e@miySLPC%9 zu`MMd>dZ4+jUV)cbpyJ*g0b>;8e=UN!zNl+5n?dgtepu;QN z60?pP`_=cwY6U~q3UNKJYSc_p=^BNjG@Zi0uJVG#c=(3ukJX*YSqrnV^K0+ndvu^C zQHRO8Stg1HkY1yz{P|hL%-GVMt-pobuF3+W*b2x$P40Z8+<^D_d$~`hBed;9i9~Q- zd+Z`>X%cazkIfZzKCvNQV-okQp{~6g=eH-&w5$Lsbgnbe72iI_nVa`gj^}DB`crY~ zLpj}tW@RIgir0MgCfwcH>vuJzRB9m;0&9McKldD$9Fv$}^x+(r$Y%$yT9ELl*5f+z zRWmiEpk)H)@&20w+Knp;lgWDhDSSD%Oic7XlSl5jIB9Kpy)gdXNV3)QZuHqU?(mZm zO`WV%%_uE%*WG^4F{YBVI!nH0z^Q+)Z#_t_pJ)_F|J=sqal+%<_s=+i9n0r@7e#vM zD)-I-otRDxMzUJ8W+l%lQcWVnfi~B|OLP({!D64vMA&*0CDbMGA~A{nI_a`-MVa$c z>-hTz_GC{4f0aVhEo7l2h1Buo*QOHp0q>?zA=+nNbnR${cxtL9gYov_C91U$pJys} zOg0$8gEn{HF9%vY85338SJbOM2DykorFT1=0_S&as60<4JR4Tv%b^|`h*5%m7%;<@ zuoIA9A=#qepyHn_mGODQ5!9#p9TiWk@)-GY@2rnz>)d9G(l6~#CsQN?>xjrcD z32y9j&zsG%5TO_CS6W)QRC1YEU`{RKmo@KuYu>zj+M8pK6R z&S0wKRRua z8s64sFCADivEW9rK+HZm|#kagcpRwd8)XcR!Jk#-&+=oLpPJ`fsBzsuo(Rcc zQ-JyNv6v07Geu+=2#y=gn4S_|Ka_#~(lo zMT;Rikmwh8Rv5S6jD+LY#~WFh%Y>vx?>n6;g!iUw!9;gvIzeL@ChqH23!vDH|N%*JamJ;(E$osHu4b{x*p~yN!SWR8twL^-l%90TE zdie;AXelC&RI-qbA%?;v8QsdniPyEGHph=0EF7V6Of-SgbuQ|)spDmxw69uypOxoj z8}oh)(a7)V+Jdw#kdej3T+;Uk{rHhCAh))mT-GJ2b73}!Sp5<738A?X8K4nZTP*PI z{LT==5b4r-SWM5S{axT4U?Z5`y5x%c-fArP7GCIjk~piSknuC@Y5<&%*(CAllwWc6 zzY=Kv^1H^{BJ^EGhMc4?^<*}}84|nj`jw#Db~pp434RELj6Q@ZEQXT;gGy4bU?l!T z13np!z{tqUhD$;EB_pSToo$UH4LtLa-^R!;4Ek0UbAp{wZeC@|tg2dX0Pr1tPSXbc z)uV;E3jG9J-$U^xxg!mD?)jZnPydbWKKz*PacaQ=II_ScTT9|N!g<_pSw{ZZb4!T#d^i0$jytT-S@gCgWV%rzF>zXWM1KGYK5=eJVopj zGM9Fk5>li0ZfG+ib_O^KA7;dSJConjSg@j(R?sLo#Sa!d&#bn7%nigC7(st<&`^(N zGJ;osu)SN;^qD)B)yL&riV_5WF6y&j%`rbaB3eQV?H+*k7Mk3oGBO~kb-c#GH3T^# z9s9Tw#_Rh2mCV=w8_(hXKZC>=gI`1{hfMCr$dHB|6US;r8?apDw%6fAiJUpobhpR0 zI_o9pUAJm6Hxj_DqSgBaS|DtFi2CUD;&7en!z zjHD%~LIN9ce&}Z%;$57xqMm0_#EdMqAwmHpJcl+)O+sNKo|iLs?ErP@Kcr$}^2IaT znk-O#EoqRYgI;=hh1q0JL$;E0p{)}_%o=J78&UN_)CQ*viU#a^kh6L=I_NXLy|lMM z%Kc75!(L--w(#L+LCCMzUr^i)<>#e(m;^mDr+su792TU+SIPGv_H{fft?5();Bo-g z#>DBjgmpoKh;=d>LY0_|BVse2d4pj9lg#(t>_k_)AfzBH=$J&9Srm>V%tR_};3!Vp zmgEd}5mBN$m8!9}7BksS%BL zN}CY;Tr@&QQQJFQ>VeHP1gW~fowZmn)|PZKf+6Q!it@|)4^QjIymOG_5*OYJ-cW5M znqP7m@WU1Cp4Fmd*`0#d-HQ?(g{e`cnOfIz?WLGWe017;Hx)g1TZRrT5)V6fJ2k^L ziKNy1=Y3raOQnj8+9NOHT{uG`?)`ig1_iHqVM*=Y%7fi>5VgyrFf#qR8$+u?PZRJ}P+g|Q7>)34*N~zuOZw^aj5YUKsaea?IH+$YFQKaq z9Rew^GA6`?z@RleuRwiZMfH)^7eF(cfaou4#((znKVw<_p0@ZeDMs|~AJCv|!j5Nj z$?R*vw>Gt2gob(l7%$aDFN-bCNm{?jZP?N$lM(qYk#EC}n_*FhEyccO4er(|AOTz+ z`bdrhSG>LC5z3@oaVDPz_0J*j9$QRAZBcciR?u5ZlFmS;tYgL)D~W7F`LTREDLa6; z8^vovM(+4cx-nKs|u&6;KOP3aV$FD@F+Oc~6=|M82aWBlSzkOCRRZfxq% zQWmll8-AK!!kZ+xj>Y4p(TW6$gcp(pvw#bLG8{iaUO)opTWmEYiAA$;3>1g_AQi22R< zcdCayR-<3ObemvtJ_dCGAmPQ>f_Z$G&ByPa>in!Ff4TX~ zT3mADUMMwKI@{j8Hup$c&aFCtmC(_K?FO}dPO!V1iT}Q+Ba`;ILg%Z~0=-UYH>EcB z8<$)sna^4A{9I)zQZ@>?+htwEa7AeU+}ZvY_n{gk#&5IRW*Ycb+_Ch@k~J5bvHi_; znEZY0aFm~*$Z#pkd5fd7zPEcWwhzT64TBs~*C*5s$nr+=5yuZIWeTIeJb3siQEd_E; zyaTzk!XgIYsh%3Dx3A|t7>fuVAFS` zk`EU@szYWbjn0XITesLD2-b|9^0<0fMy?M(7(aKaQ$cfRy_VV0uzRQYRT{tObAL~r zIEm@5;7$18dzRmIP~|Sg6z~|lAh$rLR&-)sp+YZR;_py^?i~Rg`$YA-dk`i_fh>Wv zjo(J+KWi-aFw{mMqN`93%8FUj4ZjD|AYm1`wNCh$*DMjh;1q}AcXAzE$vRL~Fkt8W z$(As(oo$rBm_D`f#*+*L{*Oj77xI>(TXzGG%0komwWAyo^|!UsY%?Jq+wOL(Tx73d z)bM{^5B_fV)hjF}hgn|URMq0=TwGH{j*ZP`hD&+aY7(SSIV(IdQJv}OLL$xe3Gj;e zBHF=JhG&O|W^WwVrR48FHT$0Q4 znGqG4Cr(u6iM`M6rE0Wt+(UsHI)&x$gcSRS2FOPY{+@)X&Q0QExrz@6Rmni@;hF^H zOO3-h+=n2Y(M>9aG6(#;82RLn_z!;aSHsdok0aRFU)DmD9`g`-M*LSC=s$A5?k~x+ z1z#v*t;7~960;rwSu{xt-7AG~9Xxem z>fqQ={tW+bouq6VdArt#GrN@^4L1e{FX07~F|Q|eS#mn4BU)CaI8{$E{}Xe|mXkWh zq+k6H%_n>DSy#hoyk-+Z?FBG*sEoY~}AGy5ci$9;?Sy7MwVfpL?!I;#uG4 ziJUK?qrl>dNV}?D^d$(a^?-A(tp#qnvm(dq69-;`!uXMQwInepheCN4M=8B@gO#R_ zaX091{}0N49S%SI3A+k zOj$!j#Wq@&W}w59qLBuobh*5Y+O?l2kBHIsH;LEaP1Hm5R6m*^)fu)m-iJVZef}~i z(fB4IQvMJX9@bC4j$r2=fY6NBc0;v8C-Ppr(NYJk2_~#noK)D*IfP8Rd=b#{v7~J_ z&+XyPC2}3tLM45yVg%O_6|mUgEe{oK-F(VNKY~^0zVWbGkMiTjPqmbx;r`!(;j=|b0u+Kdnx>0yOViF&EAj?WbU(2Mxpr8~~?%1{e zkz|ofy-D?3Y;YwJcra&g_d74kb|X!uz#91zP2J@O4@$67P&2QM%|B~0HlqmCT|Aut%6nXem2>NN>SrKxsbbN6KLo)3v zVBgc9Nsz{V!A$eDFa{X|#^U~RgXiXyCZg0$O~1mPdjK@CeI~x5R)vC<^u4ZLS0WHF zg(WZ#md!Wiz&b_@nYy=SsOsDz5O$ppjop(2@y`!4fO6zbDV*LMYR$AX3DRo)Z0Tw- zfd2bJ3oBbyEiYH!xjvQ&65^c20NHBcM89l;HF+r9*;8$T!|h0!>c7la{Ec4-z7wCD zL?&x1{4viQtCY@_MGn`v=Cp^}p0Rs0pql5;C{m_i`-50A4mG*=?Yx7~R!+U8#VgIN zMadrx5)1GpFz+A3Aq--rG6)??5_r_I}cQ_`6X+$V-rgGUl8=^tP(SUn)z0l|?PcMIOZqaftJ6#76`3KAt;|D-$go z;bYt&GmOuAWLv(YHqt;ELbKk5O!62a+*U2gfy2~D&`V-K7C!jsJRg{mOpX5miVkgl z)1nPY@<3`Aacu(hli#->;N_kMw-~@xW~XI0AU_85RmqwZ%=dieo1oxgn#T?=Y(v_a z;kalTbh6QKqLT@SQ_oQCk#5L8PAL8B38w$#HrT&KtY`nv5bN1knEpB@qc7 zDIOjbCp8@tGaDNlAtg6I7YiQ)D;vw7k4nH`VPWCn;IR-8uvm!kh*|#AuYaPy15UvT z{(t)W|2OFG56^!O+WsGXmQZ#!e;_|}Xo8OBr`dkEir%WTt-b=ojp@&a(3S4iieB>A zpFiskuNWN*gh`1x{#xVgzM1y>MUvHawv*+`xnR-4#}_}Rq^aZ{?3_+GfB;%M##qvo zpxStw>nSq*z+@+v%Yc(*JJtaX+1v)ezjM@=OgM5-UC0b{tL8U~7=D^Q*2m@hJV|*BPYgc)}qq#cC(; zGkq^hVaN4Vss!gZ@xsuy?gi4yNgtT}=ON8aqI!IYuy=5|j|q{`xtD}@kyooYt4GZ8 z_ax-`ts7od<*4ZN#p!q@L@!>+1I)S_YqnlK93 zH}E?{o9Q4V>}BIWLLn_xG1STy{qZ%X{4mx0I*o$vz;*Se#Ihe!U+LSR1etChDs>ra z59IKD&?0)ivt$Iaz!X+Q_5ODRbN{&xsP+n_4{b9wY_j`mfh)>LvNrREI^(!oGkonz z_a%LrKY*2{i@7vO{x{kX`t|gkes!B`(P#K(z;`vv$Z2(ZFf&0F)q-~Ves4tW2#@jV zfCmZb@EWBz+Nk>wSIT7WvRO$l2L-1rsWN4Kop0)b>~741P9LJjAYBEaaab-uf+aO^ z5|lP4_Q#h{LL~w0|{#ZVC$3^y7v9U=~2LV^xSH#Y)I+{a`jk_t9Pd}I(*Nn z#iS*JH?Jm!i*(nE(7=}3K$_#newU6#F@rj^cuB7aZ}x&Lh5({)^7+T z2*Oj@Z?0*`z-D-#O&gX38YMl@K_SkuyPW6Fn0i@B=C`$l8k;6-_6@H2wehoNb-EvE zJ%{WU&Jl+~i^qkgr9EUkQ~m6HMqF%A`pB4hzwC3LX+x3moRvO@>zrazI|_AJ|KNcy z)N>G%R9V;q+~H*|)H~*_KFg;V8Aa{@OT;*TU%5~|PIlCGS06=Sf!&LF7N-1?8kagL zyoDMt>2%Idi?`lWblf!MR#2HoOIt3)ij4|gB}FRG@2h4>iB~)xs=cdrx&PKtrhh+V zJ9@o1g_gVo=MR5tPapbTM;c?>So89_k@s-@wQ8+ zs5M%1zhmEW4{29Vf79*{^9H0pQOb3iW^t=U3`emDRTp&NS0ezWCHIN+zUJ!sxdTJ1 zM#L}M_>SA;x(>X*h>M{klwUL(*wR?;{cZB%zq){PYPVclH-XhsU zy9U{F3)S%?k$YPvHI#;xf|^!r&JVkLq;y{5rqtG?#PoeKkjo_UYva6{j^}!dl$!rC z8Z}YS{NA1~ySYMbbBa=;QaJx+HiV<@lc8ZnfFpVs*PagydLqaNZxsmAQ1(#5_C72m zB__n;CI|)|Ma(q2%;1x@G^a0~0Z}5yxF4W|-RZ*i4Sm3{EAvr93pPvgZMc3I1WH!1 z*y)(Oq+tE(3tGd=N=mjNO@5bgXE27T_?oP~T%6Uhq=Lu8Jzsf#2V*{ac|y5L@~xoh zyUXOSjaG!JE7p{{5Cn!>LwndF}tHyD=o51lZe;2H(dYPHKkHpOG?njqe z?VE5jpLrR2!_gzlIZYv|p<65c(6m9?(BE!P-Xzpw?sq0Psa6-4=;_BwdNw!E2r@@L zRgxyFxiIr7*Z`eM50gE;RTM};$y+1DL*HT6VTbbWChQ;PU@y+eRgyfg1MVr>=$!^J z-BQvc*R-p$nvYRTB+TA6q0r3znV^MqbJ%T62?zBmy%#de0!2G<(%?0tSAyxI$ zq#h+;+&nwCN*@@mb0ikCs@#FXt$?DPGO!aPG5UCWY8ASm67~lGqMa`kOXi3kR11Zv zg4UbMniY?V3b-M@L!Z)4S(T^{>8B(#d&Yx0mYdh5j@X`?zEZL+#){`jo{np@0|`*; z@N?KOD$VV5*L=6>;U$mFc#VyU@#xuUt()&%XfSqEP4~(S37>{s&Kl}>)Ar8H?`*h1 zJ(Ny>d9HLJz`3L!tSr@$0c(7rj%z!9RvqVS(s!*x9rSd@n(&}zKQ#bv3~QQum9QO` zweM|~)C=_1yJnwh1EjQ+v;M?uzzrSvwvSar=A5<33XCu*E>yf{L(p1^S8p#PR+8_()cQ zg7o0obWlzhF#_9cI$&f#hIm*N&wR1%0$wns#6vHg&sS}{hv4b!DL4C!yEke@U#!S$ zNpPhS){bE4%&l8rP&PdB5ijDjhJkK#-=nMmma@dJv{c`qXAKoKja?&=M~4qcM9%zw zb^g>UZ#XK7rGiP!A-ynvl`kI2VL_p!YO%}`gZbB5>RKqFODA;^NZz~RX0)_KbI8vc z=!^TPGrbtHQPJdv2wxtm^0eTjL$!e~FjMU8{(-3|Z8#ZkLqfzp)4jLaV9z93)2{Wh z3ON?gz*k+0uzc2=j4qJ^IkuScF&*~RqW>t^J+!>~?0H9nDn~CnL9Q&0l3K7-<&8T> znJ9XtcRow%#cCV&GST?$wdM6>l8<+LLS_J`!qYbmT#A%1^XhuAdlR^=TebB(aW;THX4U|x3V5YY7ybib=g?Byu((JB}e1wCga1zRl%pt+kC z$1|8IY=oi;Na*^^yjg;*c)P;*&DK5CPw(D7kG%+rHZ+mK*9QJl8F`blm=V))bK@~i zP!|$IQ^xvF1{eM}#OgW0?SV)qpoQ!X0M1@QQuoz8B9%Tt_wv3bZA@X+^%#g0DJnWFl%{FdOr&fz^( z`OHSqH()*@)Z^$!a%0b)?mE#V69WbdgZwI|rP_z;oLAN>yFLNpXl0%F;*G4D^$hqI zPLXGg@oL}(;UznAL#iK)pok`0>eI~0FPskMqLB}jJ1l=pp&8kC$Sg!QjJPPkSWJh@ zvqqHahrmecoxx&3tbDqB3;1HvEcpo9v4zd1$o1cHwZ{$*GGj?P_keMrQ?L0k-)I(;iMw~NuX!I$;NNX>{%tT7^^ zmiy{rXE_plOxc)OBo-(=|Chn~SITW#MmW$I#Ah5wK@SFQ_UXkL-Le7UFR!y7E|^yG z-(b?en;A@bXPk3_5W1ye#Yh8^JPLW8sdCjMuHXZa6oQS~$n_LvSAX z!8EL~GEF#dT;kVT8RYi7%>2Gxp(n`VQP4HA8(N`rw3HHq0q23se>LFc6V}JikB7i!(2W3U)5pOzxq-eyPJBwwHfyWPE0Zw=4tvvIMqIxo9H;{!yY*6^(mS)I zW-8cZ*c)q_CF8zG;$>GFD2tV#uK0Z8=n>brLNQ~vTP5b;+e1L+M}$~ z@p3QFZ)|Tg`)KC_qY;7qZcb0Ckya@8Q;WrUkzq7Q04Tr!{eO=a|J~&OgP-I8dNfrH zPUKZ>IVa{dG^$zdTY$+l_{JhT-6^_+vOFXUZYl%VwONd;%ks|;2;Q!<57uKB`V!w) zlVsS*6B&elF+9IsO~j6V&&BAafQCSbHWQn|O-kl0Q^kBetz!(=$*(#;BF!|PjuO|dN)^91iL^;b zh$+tB{h%k=#El$r6=5q!X~D*}O}l@nNPD#@)`{hjvH7Zb0QGP>v5)9|H`GO?x=$ac zM_QOyu6vA;?26#yU?0C)X2(*yOVAk1XIC78Dra6QV&N~(CZdz za>X=y5=9Jn>ZDMG+W(F^(~yn0ahz_6&vQM?O2^tq3~hgi$QLw+J}*)>WV5~IBcmE` zGqf@*73l|u#3IN#n~_tI;R5%-c35Tijw*w;Mm~|1Z)GtA=fYo4=Y30dPpG6lYkBW* zoZRNceN&YWBIbJ1Wz;3q#hZ2BYZh|W&&z9TjToJ^DqSaI%5?)SgC%Nyh;wU)h2OrE zR5Pkeo#JR#DvaTZYkH3hb`BTht+wbMmQ-N#85GeqBMCDwFyy4=TDcQ5?5ALJ;kO=J z`VjW3dydbo^(XeY*agvd_M74h9XhP5IPWE`!sY8n{N_XHKT7{*Mv0R-MRtpOtZ@|` z$@`Wt`+ko#g6LpltIs5%@AZydbTpP$SQ&UcBqpZRuyAU3+gGAJN#6Wfvj&^WM__?3VM#9VaNSH5+YI2DD5K^=FYrrkuDG^M zZ+iTPrrUF@=g-Tkd?!1$cf19Y4L@VB2=xyopK!mBp_W5X$tHbOfRB7`nxbhc*s&bF zg96KAc|U>!S%5PF{s@CShR2Y~`|$_3edZ$`w)itQig}z-H)}+R2J;ha0Aa%m(;`=>1wnt^<%8cL#05jB5mF!-m zjfaL7Ty4JLOs1#)7}k%EgGH3^jH5#`pR~BkoxK_GX_Kj9oCBWKh0ld8LtDehL0@y1 z%S~-cHbcdC2Kx0r_Wc=s$m-c9tNIF6s-Zi;Jm^Khe7S#@I0gEyQt(lTkM$4WYpNgX zJG*zB6vxARd&KEs&+u>oJT4c}*4EY{k&L9bmfa`44YCnqS8ec@%mDw5_Xi<0Zyc%j z^$|*(ieIxS6e;+3JeIUfRu~#?585Uuk~cyGX6{S-k)%cEKRU|=WfvMYXnQf-D!p7B z%m$Qf8MxykyPz)mXZKv;GV#$zPSWqH%C`-W$>TB;aACt+u15!lfIf@-exDbb=53s( z;8r#bpQk%p_ix7J7yxqr&ATh*WHjq$ zjRSQ?TqW4@$gE9FZl`h{3bx744BHrIv{uy{Z7Q(SXDF}piC|5_^G32xvho@%wLvRU zA9u4~{~v@ss(%U`un*c2pO_ms4tR3*p%oqdU_|#$#rXT+wNJ^iuu&@s1SsY2wL+UtTrBn z+S)pj_X(OwR@{ln;Q;|lB|{KucJ=OECNF#`t0pw=R;hW$k9VIx=rV_nQ3;I=cNcpY z7QNjy?G2YHq1No8Ds0-B9oB_G(YZ0x3ck#GZsAHgecI_Pfklh*%2EVpYE5*TL%c zX^K+#bqd?soau<)?jl|5=3Uw)EB0~CFp~Fpt6fI;%o<%75wtfC@0*Z#wHvb*8`1?k z;i!HJyuUZ*l_a%h4%iNOR5zZ46JUEYq7ELbB~?!ceyG*d9LzNGB7!YXu(>a=f#9!b zx?TsdUehkV?_O4B*Sq)ZzVQA6#aA)eDq}FlDi-Xrcf$*)<%!T$a?G#JN=0?!B`Qsg zG2*_hU<~y6`se zfT1H15W^--tj3Lo@hYw#Bi>$}7R{~Mb_ut5a9V=vK#a~iQyen{@RcBJ@=70%p+Wy# zwzu>NaIWiLAzl{Sjs=J$`>nRa1Ht_B6=gqkal99cDht=FcuW>CEoGIXP`-T5%89l2 zsIaKy)3ZWqjQP;7Xo(hIXicX;0d5HO2qtMKe78RHAfc3CUt{I=5 zu=_MhhFlJi96oCo%yfOW24SRt@GQy#(ZEyUzg#QJdCR<5I^KGz0QyH=%n_0!{uE|u#45DKl1zJh-vP0h!i8J>`)}y z+E&?g?-=mfH75e?#|C|9CEk(xKR}be8$VdQq199Qe4BLji=t&Hn~Re0?t95Z2e*|G z%4M_Cj5&@E+{Rf3{XbMkY}#a^YDWY+^cz32eArkfH@%ZI%vPH7vQwM1wMRP|Ma6yj z>3ajD#4qo*AzmABI3ch+mEmZ7&}|VPLkYq zO3U0vUX^CGy*!wpc4iXQHvC04_|DiXeP;#3AQ*?wHaEVw3BEWN%0bUIZTrdDNBB}} zGGC?@a-fv(*o0p?TjWShBIKhp2XhRGd_Z-RXZwH46+@c@Jo}=FJIFsAXa7dv#q7|G zBn)J45c^zSJPrT{Akr-{mrgjlFhZ{lm^Ftt6}bcyB9}{+?A#f%iR1mFGZgs^gYPL`AQNbf+lwF2A@{>%j99 zz0QW@ML)RyE9nqy`JB{`f$*o*mk(cS3+mm(s9BgHaKD2A#>?12d|E!}#;WYI**Tg! zy*2>VP;XZmeTz!H`|J*VQ{L7TNs*6{8o2v|x8%UwA>qY0b3!>iQbr+Zz$$$Uzyt*- z{7|=``#0lDRXkRyo4e`=9;I(}yrG&X8wE51Vl)6kMwQKm{3V8+=FBP^%r_(wX|*R0 zEsf9lgqzlmRuXcz=o8PhpZ);U+Z&p*XqPdtaW?k9o$XI;42nx%ic0{+rotDgt3(Y< znOB=uAnHThh)m9~&axgy3Qza$;qrYW`j^g^UNAPD(=GCn-QD=alA2iIckTH3X})7l zfL!>R64u8IYoZ!&W6H?s0DW9jvU~9N1MG5*_O0{ky1s-pF?Y62O78Mbj+RPgG#TK#T_*<9oREsDFcyq4DXW*~9jml`f+86YC4u3f@mirGd~sm7o9 z!+zZVV2XF5N0+z<(o(N{qAiL3a=oqL)r9P{7M0*bBgd)nqPL!$fa^q)6UW}sK40Z< z2t$%WR%zeHZY8KbOSDKNX-nQ3jkXs~Ve#OF=Yl@9p$qO;f&D|vEL4&7g>kGlhr5^$`oPl{Iy#<1(taO z_f{RwJ!D&f!hI{|<_rOVz(M+?%52kbjzt>fQogER)aIXwnDqN+kM01)EjKmkaI!)72muCej>ULmo?131PijeyFaIj%4_xu730G@YtPr zS#z@)lD(gFkXadKhzX6@r)yjanrsH;dwpYM;9wtLQ$seu_u&5tP&@1pq94=gv#~)- zL6IV}d%1|0_IGOeA_U=DbR-2i(=KK*P}1N_*w)q88a7G9J;JNi$vlLv=Ulobk13(j z{^AfjegiQyh7h%DzOnY`TsXGQV5g)zb^rFZ`GYJuxt6vvLboA7@+;)`3;@{3PSFpY zw#ND$Rq2yL0pD(~Ig) zx4HL<@3wm^6^LQf*{Rh0SGNUQb5bD_JhbV}3)apjUTNxH7t9>sR$ipG>Ogr=kA@!-&sS@Hy@m@U#u!p{&T*vui7 zVP%$m*;F8u&i#nMp+1RU4BN}K)rNNur+qJyhjKqwC?uDcWr#_R7>rd;Ft4GTL8jXW z*OBYQvj$EPY|xq&7B%C4Oy?K;4c_+eEs$0+>h$;DqK5dt0f4t9)-w1*qN zY}Ufa>=pe1q=%|F(|OsfoxMZsLoeGU# z@xh-2sl^Ay*Z%ogos2n{ztK(QMmt&LS z*6DQp{>V4W(<(+u@c@TaFA$;Qf&c|wxX*PC z7X#vXFU!g{!uuMIlm&spyNj5bkYs<{bk@-;p1n1Xr^foyh* z8JV<@sI&$)4+8h!)b_UUhx;OsDkwb7!?$+f1! zI2MtN#ba>^l7Vl<1pW{UnRrB*pEaVHAVYMqUWPkClk*yh%4V~#h*{&X;D7={Oh*Ui ztRj6rn}ySyzQtv|KmK{qeTG4-ds##EyC%?fB4`};ZR0(4musriMoBnP2*?LQqH0wo z2WCMAS-hhwejPecQxR>6rEBi9mw$tpr=aohXa;}1o)Jt+FI(r9c524NqliyD#?1xKY@r)o0 zIkvtYWcYjBmg-2QduipgwQJk}l=gd3vACzavuM@-$!v%!GLb%#8`|{KAY)kK2=aIx zh}}SOM9Qr18?0h2&9x!XeIjmqFe5+h1svC(?|LeasSaFgG>4m~`!#4?$a;!yI({z) zpk;<|5sGNvDk<-6?tTQPp$tDK?0e}EUfE~c; zV=)6b1F8T-0L71WH-PEK_kUXh0c`*Id$W%%$B+I0dnqCSD}V#QPEEup;%I8*Z1+D| zImpgd)X3SCN|c9%iG_uUorRN$iG_oOjh2at^5gx{201&EfB%TTAtg<1P3(*<5k9kV z{^i<;gRGrR9T~-~KYl>e6liB+$|!4UYwm18#LD>(_)7N-(*!xYASU?Gi`NLeb`i+j zI7L`umuYFd``p^hB7CaUFQ8zmX^}r~DD8wQn6P=!-PQPbFCJRo%d*q{SPm8irnz)l zBFOH}u>HKZKTI0Zs5txaB>QL^s_oUqu2BpM%~jnvETq2qWo@56@r|D2tR)P3%8!{o zRUdzOhqRhbL!#2p5WrslbBtwC*c_FA;klK-|H(opxib3U1_a{g9C(oehl}UNFT&PI zb>8qVT>$G~tDyxRO;(MAFKiA>Rr$CjR#&XsDh&#p5kQ3_PjzLyk?dU?TX$LQdS@gu zjpKzRNTTeE!YZR7qe})-#l(@R#X`=6TF5n!u5#@Ng_Cii#Kt!zgnN^atfCA^UU4TQ zp^It;z-@NsF5f>LLGsj=?vhEqDnXq3~7v3Mc4>q+@5zI70O|i@jG48QB zkf%*Vzru5VXUNxKLBCw*FON?$u#kD+c`i z!2iG-SR=y;%D+o$ToU4VUSyY{i_RR$X8<*c9^s zjB0W6jLW0PCR@YiQ>yl-oCw~h22-aKlLsiUWSapNrJL2Y-*}Q;2htS^k#|XxB0;w8 zUD&$|Sj|&9HG36D(DX9Q@6)rvI@7M|VKOF>aCkxAZ6vH6j3PvI?LLl;YW! z+x$hpL_XdUhp3IjR%$YUJts_y$XJTMB^Ukc3uzOrVHp*#{xXpk_>RnF z2|$Ucp9)fm0u^#ae;D>0;^lLN`oKvR(}E==t^cmaanLnJ4+s)t540oi!A3~kKbD91 z5ZW1De@8*qYlpTX-E!KT%#9IG+1Em9z3L~YW26M}?r}F(=If=m^N{nlab^R(%UEQ( zJ&LosNUO+4HKnQe=QqdLWfylu_>@rO>1YpVr!D`0-?EcaXimxcZ6ETjdMV^c>TUZe z_u7$$^ws;eE`p~;@qT<}&crU@LGu|OqxQm{pJfP1kS>^6WH+G-Fqgx@+4D5Cnq|Gb zRTp&p3n87<`owTP=dqdTUUTjFm#B4UTP}wd|2$#@?e?Rey4N3sz+FLJJTt+crGIpM z$4U27)P5cXQao~K5MUY*s!pv)(3W#yP7*9{BKxG-@4ez#{R-iPTB61HvYGGUU2^t| ze)*T_P`bwJ7~@6SPJMTVD;si_|LprESP4>AK*akav4zo?5el#1V^IxipZU(aJ5B?P zU@n2b<2(j6p<%}-@z60CHz7wqe78UM<~M%jHHd!vdPrM)ehLaCDDmO12AJF8kB^vh zzxyKpOm@9Chr6HG3Wkw>>=Gp-`E&8@R4Vl)c9D2cD4`^@KBlG`qT2mB-gN~b%%;~Z zXbzIFAmrq<+2&Ia(_4xk)c-1l{7q8yZ*_lEfc*4FqW2=G`+=X8Zu?>4(#z~$_Wb3b zkJWdl-l{(e4@4w?E&Pv%{8MvL#o$3SZ{?P!WKl+v8J}2w3k5-U?=%&Z81d28)wDygi z4T#`mNI(}jnLn?{R{({<_f_x9J3x9m2s@}bB&>%5$~*`zw5Mik)bI)u6aW2q;x*^& zZCCh@*}5d2oZ6pd32C0s6vlorJt{j_JA_}MpoW9_G{2NUcBw_{ zok2JbomUXh|0WTIZNp{RaqVz}H-)Futl4WvI4UUB?6P11c=1*UK|jy9aL~cUS%t#V_EBeB_%gX$-z2?K5#;2_ zbg)j$&HsIFE<5q4lGMn=H>+{b?Cz|pNy|%9Mg%pKvAl_0$EQ=-JrFIKyDCus9 zuXZ9^_3AOOauLViEbXSvQoFpi%Qo6G%0{-GM-Z`X0SDfaX>Y8~#ksyhN%k|07CZXJ zC($GKdVv|GIgTOD*4)yf)$duGbSs8YswoQ0gT>#E>n0C;LS-s8Jb2p~&Sv^57In|? z)-swB)4h#xF^*BJ+S(Ydu^oL@nk)_OuYIJr_FN6JD%%EAtolZei*Gr9dOL<~nw{|g zmOXSXQiAAhh$DM*1wYbghAm%E$RdV;y@c}jUlkVLbm`9S254bjRe~(?TF}kXUbh?$ zI9`I)v+7tg61MiKt$L~726SwWyvr=LMShu2%3N2bnNCcJT*&na&?u zU)edPt|#YfWqs{Y#=HfBi*77x{~7(XrtN@q(~66e?rp0R#<;02hCOY#@5JP1nW##p zI*utg2whn(Qs{l2Zn?>5C8uGKd`T*ul{(VTeGn5I*V*-gCc9p znoZB9X?0~>j`I!HGlPM8)V#s6pz&K8Q3iqz?EY4+(4C>Eb5!ZB6bU0w(d75d4EbwX zJ(iGXGPlP(sQE$(5x?w`OoLOL{onYbO^Xd0h=*G_()+nzLM?ec1tHHP75g+vA{5N^ zxTKu7G9x*_%Hw6dF%l~TQmt+38rRZoT0;2}e>^U?R2M!~W?PoqS%4DEcpIc~pa-Zr zql^V4hxY76v4X5>IF`_|)Tss3BOWA9Ldjy`D0SNNtnXCX-S?XmLktIaVW2DRW31W> z=$atxCbZW#tQ&1O$~U#w78X%;S27YuFf{dAsXtfE$?BbG8HwJwXVg0(gWkEsJlV90>Vp@r7R;v1LhA*an?#kxIruYpH^;-e)w}>uka;A!^tbp@;Nix zHnT5sdwZ&LOr2QT{N}{Oa-g~T@sw(V_6V_7VoO2QAkbLZIa*w+=HNx%{K4w#Ig{4K z8XunK_EtEyY}^(Ifh&WRjY`fNE^oMp2#S_FYM1MrIBJ=f7q$UimpVFJr0~WJc>`OU z@;oZ+CQdmv5idEe>ZFHSRwi1k`_PS(9R$!9b3QNlb6Xa&cyk-)u5fX31t>qU|E+`H zvmacG|M<-*Gp2PB#G?Z#&$~eFb{)Dtp;y~PalZxX960cSNd(8qH6P*{1ajF;q>9WKoT5nza7Cxwqkl} zH>w{$N^g`;^Aw@1buQ)%V>7^Yv1$A_dkP#n7$1F*U6agx5;W$f!Bwoyw;{t@V09gs`9=KMLZghoxjVmtczGaw(l>uQ3QS<^uDXM$? zGWeYV*%I-MFdE}(R%S%44s$cQRf91sZE{VZ z@Z(6fS<@|y;Pad#vf$&~HPSECFGyYa4R+M`2-{Y@zP%d3-71s%y(uQIftTFdti8p- z3NVDI0wkw5#idAo`O9I!h_Amj`}MoIv9G#*or-rzxTjox*|r(I#u(Tn>kx9!yu{g7 z>m}%=4NigeBkvG(kH7rnV$8Yi(d!g!Ub@n)I4OvlMa(Dnh-!qn9UEK>qk!Uyl9j_l zNXaKYh#!0wECIU)!yhaGgNRB%Voh#M{0O`8K2H)HTeFg_9pxT(2{1x6BHi}&vn1XT z=ZijJ0IVW0|AFv~}CR&$n39)D0rYL(B??q63_3U*C7DTEd*A>~XqNt$M z6>CYbhcv?9b}V~lq4A~OMiIu`HtyA?u}9t(?u87#fjvN;y!#=Ibbz#oq>egCQ9)8c zRzXBZNk^I?rYX&pI4z|qtSPH0$`v#%qCJD$?ki)P6Wiue~s}5ms)nqAV2& z8p>y~@bT=u-qasa48j7$v2ilP#3rb9Fli8!J=+R+0X3-B@1k8ftgqkD!<|{QVKIbp zdSoTZQ(>rsO@vX1;|zdLvtufN+ziS6QVu`W)P8v zLj?SUAqs$m1rsLRHt!|w73x(8CWIA~oT$4fM6Lxld5yWG-^T4-3VsW&hVi4kMd>2* z7JAIM#NJlvrJUa!^36xMLN?0&6%H5m7JZrfOEdJ*zh=n}FUb9uUB&xJmodk_8=&ie+Nh~)N& zT0~^~K&n}_BSy0`H?cqH7aW;CWH>+`_;5%8r*!$yAINaOS5GljuPc7oa7bf!LDPy(Oh~maq?s3*|9tItWA1lCuoah4nb71Tn`}cq80X z@Ytv1A#XFtlk-@w#4T?#z?1jbrUX~fPOMXmf65X3_^xCr_Z{p`d)`X1T3j#I6a6@; zM5E-l)?%)Hj3@SSVM)GP?^Lf)Dip>xk|TlUvZWthH~!T9&~;&BaLuyamW&nhHoP#j z5%IQj@26f+unKH3k~oU^;~gG)u%j@x5m)YarYJ>WDhjkG;3E$`85)xDzjUZqE^2;R znQ5eX2z26zoZFK}Ra!nul0Px4k@q@7kOPl&m6}(C3ZUv9Rbfg z$Gau5x#wRuVxFmvC%Di#bMI@|_m1{`!40m*hPlm=lTjwgoKXgm%7zj1VF`rEjnKBa za2!7oXCV#M%Atw%T-2^VwNP!1Wdhn2#gI!FX<<}Ai^YmlI53H@i7=?Js4%;*cfq@` zyD%=nwZYoL2)XHTLXyRkI{(T~5Ln|4Z`Z?5Mc%OQkdB4sv+V=@MBl*fyyn46e&zZ` z);}X0FO_8H_(nY=9}CQP=lX^}gH4{>&L1dci}+yNF_!p=`#{}+<^^-lh2Kam5syi^ zb`kRhg4@tt;Etoc??VKxuV{Lud%e5CVuh^X49oF%uRV-`m^vFK zvIN|zIGP}3p08jbR5x#GD^HPWGHyZJ96E8f`FN zbn(RHeQ@zzq8@bPaGgBTo%L`zAYh}qI9*?DEmt{(J-_XDO^zXPk)H$biDMlq_~%p`GQmOahdy^i}F1 znIgH0Y75zniH7S;#9+{E@!YP2%hsea=(OJuHewBhm=aE^y1#9M+#doPV_df+PDPr6K8HQ8nCW}c<*+c-6Pnzt2snOkR^ z^N%d-@H+q_n^zY0_`z-zoY*}(adA6U^bj_wadA5mbx}J}X9RlGF7Uf+H@!N_CwXmw znQo5wxF=iEPzhp)ygv)2lT8AS_GF}cGtV&CJK7%m$k87~g35sS7E3{3J*DVGT zWR{mK=GU7qs#{Wm%q<6W8prcp%$9r$zm!47;-GdZL#hcY4tzCHAM`&$Hb$GAP){~2 zMJEKlYGgVZo_@9%ue?x#DxQDIqsTr4TKUA3z8-@tuBaEEf37(it8fBSINex{Wb+xb z{#ffp7}&3v8djA(q!n{K4Ito-t4-W>vGbi?Np2G%f}4RRGizI%u6D>jp?!KxT>J?;wYRarp{x)aedQmYZdG>M_QJE4w5Eype8^ zWxu+sKWm>_;-1R%`Rs|W2mDW*9cIU|XC)xNHv=FR5g$)~azDDDS_g-1DY>I$g=lQ) z6osm{0J8kMdk!uU@Ood=M^H3r#sosANbvF@CKDL}nJuVjuYM7q3E+J(S{NU(Z4qa{ z=}wrFshkL!Ab>%gA~pec0a-ucJ|i3!)_HDoH=LVy_5=x&$3n|^=(dE16{5T(HA8Sf z+v3k>emP1cFz;c}{6cGpo`F!l&DVm&5ZGwX{A|n~$`~NC&C-Im*n@6Qt_yjxZP@}< z6(ac4#h!m1z?nyA7pk+hsE8B$E6`v`x|DClFJ+oamdq5|5>pp@s^_K#SKlAgPh&LunV#<+-K!~lh>e=w?TGBudM6%U7`w3zQhy#n3qz1 zkBN$&jIa1zf#9<)g5J?DBh8oigWVEizESufe9I@WZr|YSEuzV-scBB4MNYCp#7|s9 z?mrDbp%UA3IWNdT5|3GPW!-<-wRRzHG_EOUOG?V8)Bjjy8ebK#4b!2c{8O?C3X0^X|4VvY%%@ zy!~NXq+SI4C&N^ zl3ty>0tR;0T7Z!`!H%f_)LaMX!{v#VN{yO>CUp&oeOkhy5`g+Wp6K@N#_6|2Sf0ev zSq@o;(q%&|jnWQPi{R0&hfNW;te8@cSDXU z4O$a?3KQL&mbR`gn>3dCPJ^i^Tta1m^CMMl3zZzwZeOy}r&!jjvuw(5?Ee>K=Mba| z4{hzXb=tP^wQbve+qQYywr$(CZQHi(zUQxhc4xOLRjE`4nWd7w*IJLatAXZ6Sb4Bx z%B4ipkf>;Q3QKn38n!Zjzgk8zajGbl$loNU#-@oA9S^S&*o&em6(`dKYzsNj7hbYh zzPD(ek2&au3t{dc`N>SNb+k!mY{8m{4o(`ne%&+=?e71?C}P>jN{Xlp;pQ*0I$C-z zm2tx@T?$CZmisRqpP~g~Ng)s?ekfx@;p_)GzoM>eHXvU1O0`%St-Goz-pWU(gb}J| zQi?!HBH6fDEww_hjoD1=IPuR*=aLR(&L|TpmX%3$u|gYZ7&v%fslEylm_SXR;h|ksMXsG| zaDnNzQMnJ>kO@4XdV$j7n9NBe#8CCXOMDg`wJ?qt!p*cUCK4oxz&6@i^tRgvbioOz zMN~4uJLbdLB7Ck8SNT$kCdTCf|8V~k)-nFlWs#Gi=ykQCqElb<<~wZOn`{>@uqTn; zYe4%}zf$5jcu{q?CwI4VwCy;a+|W6`9(+X6jXqmk{CGE`qOu((q^vJ6XAQ!U6%U`E z#ewyVEQ+WdAX~G6>g_p%1~w?2rk&$eQb63u&d$o4u}a@^85t*7$=uwXvugUwN`fE8 zbn1Kmb?I@C0f@J6pm#BADW&zmHmbhk*y zXf1>s;}$7*@IwcXOKE2%Dcs_<TucYtwMX~Y7)JhCL!X3Zw+7AhtSSkNFkaI@}HgFmlX;5Pw`x( zBVq+M!&KW1FdU{_V=Cj4>4;WBWxl6Z>PdEfUculTNiXX{Zpk7h?WLy&@R73Y>Ui(5vukUv^%OJgU~a}d z-DBD!P&@qD3)$XByF$1*-m!l|x+by|QVE3`tCq-2`E}))uMymv&P-z-{_lObCwm$K z(cB?2{PZ5PT9n58egxl{M*7wMKQ~;b+jF{w#p$WxBgOBXin-gEyOk&$4_}5RS&BS5 z+@$K2Vl+Ma`^|#bPvW=E#L6>)aXbtaDna#r0*6W+8tJ!9_Ph+!S6s z1aRD|Yx^{>3Jy@WkoY^U_oc#lG*r@#ZA*0}C8<~jv&wFTN>!u1KXs{Wq*knwo0@zG zb7)(=s&*(N7zZFv8hN5ehTMBi7Vv+J1R?3w*c4e6w!J$|b{G#eKN{%o&r(7|Kw^A{`*Ik;N2!A?5G*hmgu{JCT`(C!@ zDr;jK(agTL%Nui|y`-7b4*w{8DBSLG~x6TN)?KJGH!-vyH&v`2A+ly1f;B#|q zr9=g2$^VjsAKN~YvX~dom(HYx7oiQ2nFRq&j3_ zsOPe|D}3ROW&``lP0a1jfu^n9-oj%rLr?@rN^XJEaRMC z;rc_Ioj7hJ+%iQypF~)8Y0z5N;~PgJxWVFw^JH2jq~k`Va~n}~wL^(w3puD;Q_r^t z;G=hAad2M!Qk5zx<97-QT>3WX`}u-Y*he0pWd&6aRmOo*=o;0@6tT1}$wih&)?h}1 z#sH`CO;y~|rH(gfzwv@5h-_spiB@i|x&Y8v!yPobx`NEQl#Z7A-ZmFrA+aBjCk6Kb8ulPPG`;)dDICVhL&5y(vng^RpHvP;fi0pBBx|$*#mKNQh`Acfp*b2R&W6*=B3R;Z^t95; zV`7je_!OrUD_;W~#UZjPm{)}njpD|on0JDt+T*y)Hk$6Hsv~Fkx8Wl;N(NKoNVTh@ z}>g3dyk{!mP%@7k2CH1mfPFq z*VV=Cr!V&V+EwN%Z~cR7B~u8S*pcz`%kmexd2sGxpC?h<#P#}Y$Y45dpuTQWmp0Q^ zz`rdvG%jige%`j_8;Q-7(MZL% za1U2zy);#{yQH%ob8eJPO;}h5ubV9YX6ZXYnrcQ~JNVlfGQ&84w}P!irjCj2bskb_ zDN_JO`dwdu(+K0euM{s$$iFJa@YL&d+`(z%rbBF+(dz;Xc(0N|ubmEeRkM|L2Mq~a z)z#Htmy^FRuE^66lSREfOA0ZlIg3C|s+!8&3Nh>_90HER#f(6Zs=RB?uT9`CEG^iKNg`dP$e7)Hc*UOJ&>KPZPGvjV6_vA1HN_ zR&*JQy;LsGqN*IO3#G`DOe~WvgUgr@2}dFtXE902;=w~z z6%K{sr@FJyXSppjwDB(#m<~>N0_+a7Z>uM`D-HAB{^fJb4Q>mB1r!8G_=QH=+|QO< zsvX6AkU%CZU69kdj570NnUaVY7;CfBe90Ztfmhp$#)&f-)^(KSPX>J{2TWCeKkE5@ zw>fgJRmsHr-YuL~GP>yA`zO_J z1#>mm2CzKTo!(4`}GqACFRPEmmrS= z2KOjvcuFe%u?hed}Q%?p+=Uwdi}*?FRzgnW@0c5}s0r`+FO`*8nL`uaIjQoEs}KwRw2kjuy}i zt(~pDGidt+oRa*RTw8(ODI3h#%AuWAfMOY>jG9rP7*=7?k&{xW^1L(2$U@t z*(Ny*J6Y#8B^B&wfE5)j3R`d|CU)l=!b=Gp&t@NaR~IY)u7=uITOG)3GPVIcrXXF{ z@w`7{C9klNgbn-CtX?~d_eW2GE_?3OV9bQEc>2H`qWM|>^n%DeUUo4HP3MrM0z?kK zA$eoc@8C|VK)a$&c+ZAPg=nYBMr(q~hFf#Ta^;2={Y}dz4Ws)m{0J-?+nT_bfCL{( zf<9q-Tvk6nKddIu=5=xXG=e}>kmwOr#Qx+27=TB1EU%IU;x z=68ElZJS!P@}~3l=9Z6j3b#mOyp{y3u;zukN_BEEXv##$YRSNE)jUj@Y1DV{Y~Fsa z3Bh30Jusyx@4zyet+oB-IAe5=;nLqw^{#b~1260noiw${7Dc6NLeVjD;Q92J$Xq3H z9*OrYqSu5mcGb%vn1?@hI(U|hz1cL6(Y`OXE{`=VW&MS#E7=qZSMIKJ=}Dx{EpTE!7q#KdYm9)O*XKTw z*%riGH{X-Iwm{3^;=LNAkBdr1N`>7(y&PX&D9C6Rl9u)len$1}#AD_|rtxgR5yKc0 zL|Kw8BlZ!$ev6!DM%)O>5n_aSC=-@nl&Fa=FA06+`FL~lJbiilxO{ig&wyUr+~T;O z|1&ps5YO;JI-#XN3+=tnWIo7`VABRJ5>MZBpci^^IY zoT6ip*hs;@<96EE>V4JeHihRmnwj%s?0YTi_FCefKh10F_B!Iz*IKAeWg3<4PddZ!el~5x-F$v#q!7)LfM;N}n5Fr(#XX zV`b&r^b+bdl3=gv?Oo4o+OMbcn9kb1aX78LJg053zdWghfk|26I*@!0Og&vIoDpfx z|5-Sf=k@5mlg5%f2Z2;R7?c%E0qq3h(Ns97>pzq$U|2{w94zMl#PbkM&$gLv9@56L zSp%8xikZlo%p1P?F5t1(9NC@4Yv{sd6-z7$=BGtz1)y@BqJhn$fTy_IYH`@ z@_J4ALTZhkQ4E#9`p_GrO6qi77`@L&9z6V${Wz)q(u}F8*Fp2qFdE5!IUZcq?At6R zCBbj1_k|blm%u_m>w!8oV8=z2T$HdA*-``KeFGP=!l{Aj0H8*~-8RB>8{p2AvUSbt z6Z^x!VV)$u6d3R*6=ctesA!pGRT7kiO+4TI_@hd9DNc=E4MEYwGimm@;wrv@^0HP{ zOrW`ebGi0V9zXT)7o0@)&s-^kc7YWs25rdn{raRDZ6?|%7y6c$=*rns20UBuUM#0Z z>>1mKGCm^#{78g1jw$>Np5&R0T;a}tTsnf4D>n@|yo!QTl7>xltq2ZaBd1{`ID)U5 zn9%74Y3zRU6d0w1N40)%9L)_f$UmH!j|>~!`@1LZqHfJqW@B7(3?T4&h57UtZog)Qvt ztsT8>&#%$jvI_yv&oh~{*7nW{_~X57G@2l}( zg5v}+8fm1gX_+r!N?XxN*$_8h`LihWm?E2dq@vis$JZupx3L23g%~5QonTkaU_1uN z-sXwBA6bOxzlkMs25SEib`#T^$f?s>5-YGC;OksxiJDzoPd9zIEWL(PP-eHL(Y9{7 zGrNjk!$#Zxh26o45yWnW=xIR=X@{T_)HK2FG*D}Sn$W;)%FCD|kb|f~Qjk5XHnIkS z(K1QVGh)Af+c3{MswThM*=S~ieHy3r>6|wx zlAN)ux*nFxn97{HuwcqS4e+mny`63G$YZNFEzOs{`xKhFS1!v~bh~dI;yWNaa;Yl= zm>6Hpool<`iWKH~!{utRWn2xtyW;(4dHnrs67$kX@PQjF!w?8PZF~=r|1@oQj-9=Awx^tynJ_ZL;()sVTq7 zPzXFJ3i-2YT!hQkvfJwK?hlQl4m#8dq zJ@=;vK+X8egG3hR*&DBs7+uXIjrxE9sP z2J!1qbOwnoD0IJNGk^3?Gb9k7tMrPQ{!l^*r8HaM<rLxO05NVy2-aV8bk-|0&j7l^oi%({_o@a55J$ zZ9)ivI!~4*bl0>_J6}WMx9%S+w%vmin7Bk{p6CtNkD(uKaAIExxh@n6TdV|@eNIcw z0s)F6|5D8DZziyCpTAA+FDt6ZIASYBwu|@_>8FJlamtut`bUHw`|c}z(y*0MA?5&$ zS;YdU16$<%u^5W=$j$s||$Y%sOE?qcTQKM8sZdn-XdS*?y(uxG|% zQcs>vG3+cYIz1%&30p>xRw0O1<%Bxp!N{T%Rx9aJ^kJ@_Wm57ygS}vpsia}tN^{8L zV>VpY7zm?D`B;Q%$nFP^{vcCG%Dc*F+KP=@0_`Mv%VIl!anIpAw}sC!BjDqh;@&}= z%&N{ZQ2WGEB%bE$>ME!@FW)RzCSa)53eDfrToAh^zxRHa|0RPu8A_B+$vBZ2MW>r= z6hWal+`spAaI3n=ZgwCv)7J+HPXy?ECVQG)6LjYndhW8<>^%3KY-tUtS~+@aQp9v8 zN~)?oN1%5Gvq5GD=rNq(xhkLfFS6hI9vnWJ>iD|5>|Njt>PR;z+}io`J%C$cQ2JS2 z(4gS3rqUW7jY(Kk2*wb1B7hxx~wj6BDAudgpCYRQpblD+tRg zuPb!bM7#UH9u3BKg|-IKDA{_$(!&;~))IK~Gukgt4;GA3hm%J}zaq4_pHAcZ7Wo9j zEFU+RmcKaLet*JC;McalA-G~R1FZ=lO{tCifJN2j0O9Kot`1}^#p3ZOx?n@19_TqQ zD=WPgrv7VB%3L7Pj)h5%^`U`X^{I5wZA+)RIMZoutmkEM0I|X>K##`ZSlZ!WUX)QX z2jLO+sMi)$^Uh4nc6*^+Cs4@p?3HjqK-GZ)zE1bwAp4l=5VT(@F^6(F*pRitd)D;Z zYdzugoN&*cfw*2+RsTBy$La9S=LEG%i86qUt;L*yQ;Fj=6c)b9RFhr{(8|l@F==_$ z!u2gd2QmLn?2N~7uLlxFPXnY!42LL(NIt$pFHoGK(pk1YCt$X?82ZUt7iZWXa4&!F zc64}8O6*7p!{>8mNY89DblND6?_cEb^0z$f<>fvKX$H_TM$j2}lJ6cItD>;~1b#U0 z>D)CJ!sd{ zLm7%?5BYx>gM1y#TD|Ir60HsrLaHsZ{s+RDdjxFQz6cG2HFhwc=GzzXlB-I@KL4RJ z8;PNUKf%QDvGXcBMp6#=9sk=$I^RXZQ)k4mb7Lr(mQoLxuyd6}$ayVuj7SSe6aL4Z zMze@v-|Tjk7tyCODr-(`J5`DYPve>B%$o`kyes3WNwn8a5IR>R#mDei>Sr0!_u$$M zZFwb!E_=C#YqBG&tEoBsTeeNSw_geLPbW6-4A39FQ&#mxgCZ6mhTwUWfsX_i#h9F^ zJk(T4^oDPTvF+&0pzZU-uw-Qkfd+91c|>)4;HEy&%#(@w@B&Bo z)*6;@dxFb~24P@(k1=|L%)SW@K3@=hoA<8s9G(w)-pPC3EG177HB{VRDyv4Hk9@`3_ zV&n1kaUS-6_lMwiQ1*zB?tGdEve{)~GL&}}OW0PFK26~cy#(BWWch=E=;C&2-4t9js0^pIs`_0g_QqF;6O(Li*!`ZR8#VNVvDo;IqRZ z`1a^oT$puRGGtxxF}d4*$97t3KuZyJ?2YCB8B^6X78YBYuFxN(J87gR|GR2k&Hg^x ztI`^I(Rp2?fbg`#`dq8Zj%2XV59_tiHu3BWT)N@%wu@NJa}+gK$9@2Ac(tJ=DL1ph z0ON(0CX$T?J1{rC5|>*g zIv#FLN$u|*Q=JdnBr;ck=sHj+7gs%*YD)%g5?o84pN)hCSAwVy`~=fXdB;G{?X@zt zZmBXtIyd$g+!T;T_3}CMCbC5tv9b!u()P;9{5uFjOhAm2567XQ1)U9yTgk|*UIi{U zY#*-_8I?t$GvJ)+<0_F?Q4I9ho7LjM z&EcC4L@LXdNin(V<(6>I#fazL0kxSCh%o<9CBPu2q`~Z$$o?O)$3k9?$=bvkjno!h zbud3xHKU!C{=ZwHvJBZ@dB-+i(-SN5^iRlg!!;9aXd~BGvIV`=Wz7@dFp~ zw6e5SCA5G9LUY|oiR5?AdL#y^ZCDJts}zRaxgBuDz-#L>!# zI&~gv3EJK3XAHE3cEMs+z+Q;uJxD6P`^H*;TFPDhBdLQ4_@@%#Ql12o3bQ~hcUhf7 z60KM!Ea{wa9izp6fp2nZa+t|DspXHvhMdMIAr2AFa4~AT{&Hx@yHEW&6IyLvq2V%Y z)Z6;lWjl<9WxeKE4?l>+ZZFtUmx>xtEXDRN9?A2C>-}z{D}xRhxl>g|PzkK}Cp^X8 z3nBlI(uq;e_>?N$%A>~LHuul5k8+LFv6y(;AEFdfFutanK+XP_PeGSnwxPuka>Da2 z(FLUJXU3Z0OYEFeg*x7$aR4l3hx~Ng6U8M(wPQ+Ju;Ql+DlVuL6;7~w?R=2CFUyc* z3U996{26xWnA0GLwJI59@YDxhy;XH+fN|*Ls@B*WW-fhXo!iqV@<>=NkE3}-w#7(wt*qdLZ zN0PUsEnhJnuCC5@f@zvJ7)Zb_&7lk?W~1xpzCPR?SZ$X9R3iy`o0)vk_Jlw9vzS9} zkD61Bbr0b;Gy)&{tc{Wa7#W;4JKudFJ*wLHFKTf_eL{zne+ zAor#2foB&tl*Y?Tk)4~`(r)8}W7U%G2;I3z!J&oT>MdpEn9`7jqMdjWDAH zONncgMQ2t=@{cjIc3&}n)Vnf{RBs2{35$3yduUlvV<_eF9=I(2FPwLmfHo_HDw)ZK|K~rEGK?eZaSxJpmB&U#Zi(=qC5)E3F(vU>bZg zDl&FT4SWchdcoC8Gx?Swa+y&(%8Uw_vB2#-9A^j~=M7u>)&l0sbp>AAvqwnRW!O_u zkaPlxkGwwnBlze}_zKV8h9l~djqo{bRgsqr>zqOl*+0FD*EPK6P|d@K-NS^HMjEXu zIjMYK0*1!3dwZ--AZFo)<9JTz4hJ^9vzZTAm^sa%1G>DkmbX7bzt1G&8oM14-PMy< z@@)#fls`IObs>0gj&e7lddmgR zRFM0@xKmyEp_!qC8g%|7=UQ=O4YfF)ov=Jv+DTX1|6tx~Ef83799dFqXhMfK*e_0l z6bq*UN?tlBLpoFQBj7Z`d@(GMDOQ0&%?#%5AV~4_#pUXM*t14-n8s^$7h)C&Yns~= z4veh-)M6lyteMKeL$z>vWrUhC|EZpLx)1^R7NDB_O(u`4i?IZzmbw<)xV6i z!)B&!4c86HQ6A;uo#^!1}gk z42J9Q>ssbpaf_e{J*8;$t3p!wsrg1S51>q)L;}S~SlQOBfYGd94`WGUOV!+5i82$# z=@Rgf%ANIY-M`*WY1i4sCd)f&7dEMGE$oaV@-`DDw{J0_#O0LiUbPXs9rX6lcPQ((OO0HHzpwG^MXS zGStbYgFFzrdrgT-@D0Oz+B!oDMOh$jO%sh%(2(u?U%_kd+7%WLB_>2Xd&~1^*pw?h zq!@a>Hsk#s@Oj?@p7c2WOJ@5UnXS9H{Az#!MDFB=B=vJ$+h+HqyZ3#V5I$4ww1tQ8 zqIKeMTfZ=%dT1?41cx8xN^|j8MuMS6;aJG(e$y%cYNX~u)uzTQ-{!GxvY-~+aijl_ zFZNm^<#3vIiSJ@vSZx)AZ+3_!5NGDN35Lz>V{+oZ5Vv;wp>)dfj+YADbcwmN$hPMG`oS(mLn~9}M+cK8n8z;V}1TogF@; z*TLf7_s%9TGvA&sO|#&LD^q?eWWGppAUYr6htXMz(o1S9sbu|!B@Ua7Q9tx9$*hQJ z9j!l|k3RTHmCFo0B36`15w0`WVZoI&6F)6U7!4YQ#Vj`(^EBWnI^Q}D2l_4ar$=cH3|ZgKGt*6oL2eE-g1uQ3eppOi0}g8qWM-uwu^C;>N(ZiqdIGm*LsB zeipPy7%cPHQW-xU*p{YV10fX#^D6J2+dxOJr@1&CtKho7-Omj`6&L(T!!jjat3OQ1 zL;p7qs-_@7xYX!$@am@;swyPyB!%e55ua&5v7YPE!WfG zTeQ;;8|m8z+>GYqjQeJA z6cXzXRJWhYH?H{Swax+G_=twT4CnI0S-#3o_WdT@w_n3-fk1*ob87fg%dkv3X90Zj z-rY)|6t-#P@Hh{_vrbo(l&`q)f~9Gu;B#`oJ=2^a%;sK%%$OnQsO%vW!#DCfX^Utv zq(JIxlF3GoZyXCHuEPc>!IX!6IS~m3npTYuXf4tPV?CQdjgpAQlE7?hR(}hPl^gKfXF7ZQvC@I(>>Y zL_QeZsvFGp4)61q7987)E~*wQJ4-wL>ybM#n_nb;unMO!&Jpc#z=qG_PPDL-R57P8 z&g)K7_KTNs@gTGNb`SWcDPEh&4qb4iTasH_jrO&cjc%8=Mog=lRmZxBSnj&pWX$qp zCv*DEai!Z<%fQ_^GkX!-5pz|rGa(rhh%EJrR)vg2z(YHQ@XAzxG-zzX<>M`h|X^3Cvx>qZFU zZWH@8hCho24aR_0kNUX&wvgS5X8v;X?8fttm={9N(VpgYu_5EHw0nRzKJnyyDP9o$ zno+Rzq&xr6&E&C^yFhojnD7z%*{be;$5L2fdEfkRPH%c;yL;Hzlt6c15MSbNZe^=` z@6hjFSU)WJr8_~VrOU6mgS&CJ{L1_kqVGQxIJf+?xxVUrullPs#DVGGcZ+k zpF0|OSgY8d>kADr#{NAC>tD|q#l&1j;!5@N2)idZ{9dw}V@DU0B?pA|(Bg7<-Pvck zUgEbz?>8&1yfScxgjKus_7wO$hiP9SWoqfos|APmsCVrSEeC*WSDx0%T$==r8~5eV z#sPS>xMQb}WrFyVtm!VR)Jma0U71kBk7>vuoe!GP9E=AqAMr!f$^gyc&K})__qgIg zI`d)9Y8cOtT_dqQqe~zZ_zUV+ifPc{BD;9|?ma+-Wbfb$5fP_}ZZw7TLQ0WYt_7IG zzjJA~+SMr`$VBg#$bVo3!}rP_^|WL(u$_L+xpA2M36f2ODp!|7M(6oVR4MY{;RU$) zSuB}7i<#GEfnjmi=*6Z@**HSJ8!W-9raeDa#>`0ENrgP+E{Qs0B}*-WH!Xw93x?{~ zVINwk(l5_8vxP3u6;!LhiC~yno4DJp%SqncCc>ARzxkcR3J%YO-I5o1BY&H>5@}T< z>NN+G_a|r%!gG>!YbTEfdoNt7cUKyQYysb?Nl*6mFOf?3Cxbom`X&<&r(6w46aVEODg=FFvu4?6n~4>x4&MRWe1XX%<;m@SYQkF4UQniTkcj5Zp&;ePbEh@DCJpJ%O_g28JIhwLyE`|` zj1WYA&Kk|CbC1mg&CF-F;F!4B?tajX{r3-YAB8M(i$S9SMKS6sZIqXH6|g9seM^|r zs7&Qy2{h>u)B(MJtSUuzV_H-V>!ol+sBIX(UK>1ytmyMeej;{^7gm45&gT^KVb^8i zf-?HT2=i7U0s|lWvV{(RLUJN;h@WVZX#Q+e#*R_S_~grO5cWLcaHUwjd1Yrb=>O zzh;8nrVRI#^>qP6ooYUC2>tpL1^UPN42~pzO3_6k)QCiP%pGg$=S8x2Li!FuX-AaJ z(d9Gt5p&o8WuA-s_jY55UBp>4;Cc4ryK&IKnZBBD-;j`B`&>u_@0S8UEqz$?sRs?es*}je(2u63byg<2i4Ktkp|@5vHQPJ)p^Z~w}$Yo`^`?=AyVUp+@S~D1>B{Y>O=hh@xveFHgGGV#=a*iY29}X{}%sL zNXZGx%L&DT@fe2=5!_9rTsuG;ITB;OcKx zdoa0Z+WU>3E`O^$vIfd~kF&`PUM?QIAD-5Q0*Ho)yRuoh=On`;iS z{`qc#ypCX}9?55e{0&RGKbi?0Ncb+%E-2Tt`)lYLX_HtP+3(kFz|%IUSIbu{PtXYg zm57{m1|TTq^TYK9-MQE8|NmrAeXI^H-m^hS2}lCN!PIAMXiGpS3L>IOss+{{5mscR zz{Et7iFH&k1;w`2D;4H8XjLm})i{7^m+)bo3*F%ewAX5C7t!K}Y)>;}5KDsG)6WmS z-Oo=><%IUv9M75GD`rxaxPS1Bu+S_CGYiN;N_f+GOY%KtjVDRJzi2Ch-(oyeYY3=+ z;0}#71RI&GgGacSyqc;?P*W11D;=w9*E`nFes5yTnEa*utHt`guyZ1bi~OK9#e-ih z>U2K$zolgINtp!58yY}*m1v2X>4N{Yt4pc-3}18u@y)lPC{^kffz+V-H_GbBsUz{3 z-p2j#;Dp2ouu=r;d(?o%hg2b)!_@zaYS^C$`_>2gPS^)TGoIJe#r06T%bL&)+p`*G zW2R$Q#p9AJ>r+8oQBb`|!A#}3PYt27==VsiU{F_~7{P+Zz<}B(*WX9*lo*{(D>3=S zVsDC%7A*D2K%`9EvFJ;)5(*%@Xkd`DPqmoTRXQx?Nk|xxVB}8#0kFo{58@#{H*i;@ zrZK6a2w1Ch0oI$wGV6Y8021S7+^*PpF1!(44!7#=^O$xMeT4Qkgmmi^z~&~dH#S>B z{7;nL69@JbW5rO9SbSxp`Jldxi3J=(MxP^l0D4qt1FdetKBgd6+`I(6({Vf~GFA$` z*|BGLiO{pRsC-g30Fx$c-+C#na0ih?0_vCiDF^+7UA*_tp~BvoNZJCOkHy%Ex|JC< z&LtNtYlJB|42wYR(ESs?a$xXn#occPH7>NoQ4r)zm+cjoDBOTz{_t3o{RQDm_x{vK zDMn3KG|6aWG`n5f%i&>Ta zPG}bwvQ|zxU;ElZlt~o2U1s@ov(U_nQ_{PkHK<6bQQ<&`>t&q|tM#;g8|8X^RP~~i zwuy>{FoX`%h{21aaxB(5p3K*oUbJwG~@S zBJSzprFF`*WyL^x$q47L@lR!oxM!N}A@I{Sw&>kuJ2U2w@+ROEa`B$3#SEwZ^eEcH zOc@@V%S2iGyUGyAV&H6GOEArKx{^DZMf+BzDqB(2t?yZB{6fFyl0mE8 zK_#-@%=ir;n0DKqvC>|WzBga=AEiU~%!nHn^_BOLD%KPcZ1I7|P}Sc?o>A8F?CrHH zn=*8GHz-qVh ztH_+-)Ltp0debQt8XD3nstvyX8{xWKzcK2m)xSwr(&W!PObe&M^CTFOm^<)vz*|#~#(nPz^OvpfIA9YEd=;cv?E(7VsMD7}pLx|^AYw1*HgN2d zEE(MX{aU@Tf8G)YN23~K+(@>Fkiz=MwMnEi40K0y^GaX5AtrZq;W9u}>G+7|Zae}8J(6&OFj>uZVD92wn*+)2Phf?nneaPe}-1_o;M%}pcI*-0Y{GcO#+~lD5^35Z0>?!mz4<|q?PPlA_ zu!)F=nZIxWbWfEnSay{WHfKaA7nfkct7I+YEtyfF=_34@Fz#l`jF_ilg>L5}L!+8p zHpQlDW>Y0AJp$;|;9utX@EkNCpy(9;Eco3Zh$6gtTRyt}AI`i7LfwBBQLNxBy12M5b;D zH{p{cSYDKbH7*q_RGzmqMO&=!&n%OSP#$VRnIx7jWpf7;U#>dtftEm2$kfz_bTq~S zu~(p8tU%QOm&}zqp@y|cDQw!HSY7l4h^t&E0-+>irDoPI6$6Htvr6&^#2{l;qLNBy zRIX)F@E|kKX9|F87nH$bGS*jbmw{Y0mliA8C|dxQmNgAgLQH}v{=>|mz}1c30fl02C8jive6f=qW!&bSFtczM%(&;}D zXW>Zom%J^hKYFSZnB>wVFH+Y;09|#0sZ0hB85CF9U?eXC=tzu?GAURkL2=IyP7ECe z|8Is2VqcO6y|lnH>tscEfsd6Qu`&Ryju<&xUBs`7d-kqCyx=esO zM{*XlR3i{>q^a(A9XO8)A@~DGG79emelVL>;mQPRbTx&M4EQ|wh2Q6#Xo(_ZvOvCw zC298 z2UaRty@gt*SeaUdiN2a|87I2S-w{_!y~E$rL1T|cz*<)iN>9B{t^qYZ>;RSN(Vgxr zNCx!1DC8hydb>@9SecDF1p%Rcj1wYDB9A>y0J@W~sh-p_;|W<+9B?%o2( zy$Jb3WiM*{bqC-2^4uH_Dm$fO`pSihjH)+@3i-YuX(CHiF=N;ji_OUHS=a)h zaxE}})RaJeFjqu1~X$vp%KSR#zJ@j0Kb8Bmhl9|ILH8FwK=1#L{S=u*Q&!w_lVK_RNw zJa^2_$Z`=2A(5#%Fc`{%fC3aTCB}Ufg(nHiFcvNqnc(QKXxPZuQo{pE3l-}k7Pyn5 zd7}71q2l?#vVWQpJkV|(m~AA>zOyMMG*9N@{Zj%pEjP z?E?m^$p09L;pF|h2;b;Q1+h`0m!QJK<-!8#SvyMnc2O^EfPcm?Ye_;p)Us zg76sApsykkjM@m5m7{q;NX>a@`Ko}W%{3HA?;^xAtHZl-cS?c}e9o&CO2+nXhNVsC zj=MhZ4z@!venV__z1{C;z1@k1_;308-ge)CAr8CU2n@SEkq);*F>m>X%mLH8-f{D9 zfpCp3JKkycH-k}b1g2lVuLdD=U#)-ampYL|hb|EiK3BoO&Vg^8pdWYfy3Y4DP$NZ1 z=i)YZQg-@*=becE&EwFE>OFMcjizBcoc?0AP94JuG1NBR_FSck;lm zf)RIX>*~8EU{W36SbDi%5z18zV0pwo6exEH(42igacFlwFrGx9S-8G`7g!Y#kBOg|xDn45ubTS~C=b40Df=Gu z=2>YOa>mcqgz&VA{_je~6`xcPy9zZ$veI%effBnqZ_TG{2tigF8fo3)P zoY3xgh&K~kjwlbF{-vIu_4Gcev9~JBc4!8p9hUO>tImpZmzx~e}#Sr|B;0g?uTNi_n1YBud z=^)NNf*S>7WJ#A$JN5BKCkNPrSXLg2pz#0)o3BtW>WagSSuAxSXhqlx|fBxXb4F%#{9$D;l>i8Rr%OkOEsH$Yk z;A9KbGqPvIo0RM>qVelR%E+6VB4x>3Si5u%GXjhcD(NyEGH6isF8t&ri=6TUcGeIKvgih zj#U8RfyYY@SP~x2&+oU$`%t_AF9mv~1DfBf&47$N=WIxN*0XLQtvqEZMH{$g+lOu- zh)Ao@!^AzLoQa|(FHRh3k7R-TZD8zD7GL|;@%0U4K6gHp-D+ypJ_danfBPyDG~{iB zi=eJXK)~ZYY|UWxn5v%cCq;{sZfF0~PYe!+%7BSPgWB;^pzsEu3GIjdpUn}fJB$+= zlnW_v;$@82&ky;+IMi$@Q3*-IkWjAq!d2_(h!9>%8{ZHIvSz7b$9g=t52@3!pcm*C z49qGgG$>=q2GC+m0);z6-v1~oK|o9hseY*nU|{kf!^XCsl;I;XG*4o~ZzfZ)kXgEP zhVefYA)KX`9wZO)u1%u7I&se@BtB6yUrGx|qW@8X;wVKrzeODvfJnN-=?>=|bP%IY zS5-N3v)3apwG>v?u4>rbt#M}7HE7%&{6W`Am{e!%6I|)BVCl@Urqs370ExKx4O2^3 zER>9(fimK_slg9zH|?9$=O8lb+|!)NN3@!s-rT4$6Hyp&N1Xx(`=%Mc72tyWACqJU zq7w9nkb8R^xsQ$~OTUT35th1e*rzZ1jTzstcnYOsF?K?*?4pbQ@M(X{ibaF_Y=}<9 zYTN6)izQUEd_ti6>N0x~#h?tcR?-tyH!K2OGMaPn#fxuBuQPxget5(PK?^3cY`Dit zs-Bj>`T0GFu2jwf(y`rAh`YANs6!y6uJMY(71;Cm)6>d)DaI8dQ3y2F!+jN)_?V<> zK?NtI@{?h#jD=#7W7Zvh4PoLjFk=x~wA9L;62i!p@>tI6M9vG`kcr(qmv~H^68j!w z;ab{@bX&oGVVKto+|o|SZ;+{o5e%!h`lqq5GiQzNEN))pdae)9SRcGPF$pU5!To0fxC z;oe-kkj%q9R;{JRdFuseXL(${E#1%UHa$#}@hQ!0I5HEgN9~ZecCf#`up(Eo%6CK| z4)ac)xWth+u4T$h2R2vvVNYa2cLZ#IB~UUsbw}41zalIxIkvLhpf;DMpQrCffbd$+ z)LgW46 z2|a<08H}+HAhVoNmO3Yy-l2E8B42(qu|Ua!6!q*{;)z4&QTx}AE918z zdDiD>4P@n4JY&jTdW8qGZMa8}2+B*!%XvMsSNz3z7gEcR{X;RhIS^A{*%R$z%tRm; zC}Bb;ijF9VHV07`Vj=jPc9QJ_0#%B}95Qs10vcI$kY*IT#R4$eZM8lX!lxq zl^9(wH+=h&2rguMywOfUK6Z-VGGW7`Fwst(dr%B%IY2|>{7eAcvzJmbQh;}F5FoJO zwy}ZL>PNrZh|#I3;tJVG?41^~te*XKe02v^Ar2;Jd|`)I|KRq1z%}iEkk6;Zvfa?u zuv81OIIlf%3P|!6n6)`5uZekW2f*oKIFmM}GuCM;8}*R#5SZ)xHM!q{Xok(0ve?lf z^=GAwYD|U!$7jJq{wD6mx#RnfIjQI3eM&{{3%KJsK ztBUK?9Cu3j&l{=AfDJC|^Z$9H~T zNDf)qEbHZ6r93cD%~$(F`s40*-f}GJvaiccdlj94@v3=4ngW7_2Z%32>#6U|@>MVW z2vgnFxc{f)G?TfS`NVZTjo0^PhPpH)kUq=3vxfLb_l(-{@;MA!E4NMMbCs;Z`&>yI zm4cVKCD#LY|C5E+^}cIjg%{@y=-J(Y<_rN>2KV<6is#g3mB5K4b^4W=Ia@JtHR1Oi zn{}c^p3>!_BpqAqLcikmb}pCgaG$Jl+*o~$no^U?#h+~;`M!PH)mC2zyH15gB;N#g z5O>EW+yL~|!Lg_k7*=(`YG=M})XLmSqNcgljBO*KUhQQkFe_`Qn8;GQdDH=+*=4U~ zq8wh!^-R-?kx_@Ljql>?Ttp2K{vWRdo=MoyY)GzfB2gI`=!8JbpsMxz-^a6Zpz|CV z^&CyRyV4M7y9oRk>}qsU+IGJ{qONT*qot*#m@izhM6!~}1MG#=8!32Q*Vb)vNlW2lP?Y;h)83b9ImckFyaozcoD$d5TE0IA92NR3THVe4k;^Kc z)6rt#E!?Ul)n0E^CSFi(e)D+jmqCq1Zhd#n74x|d+qadQfbTx(S2dkcF?C7fV751W ze-zxg)*eN+=U4aIeb=~?V!iJ@+t@F6(;Eal({>*6&AQExK~uUlC-gjCjl|h0tb*?6 zBl>cd3&;Z%HeP7QUuRE$;?MH0ijCn%U9jpytbnO;+8KBA_E607ZmNV=EcJO zVFy~?(i$_CC^_4;P@U3U9`4HA`_t}{cZuoaA-;RIVvkFX9A_q--L4g6 zBvqbh^Vd0@+)FYwiMu(pxEalc4W37`&%Q*hR>Hz-N$)qpXExeS;yk^shu);2yS=gW zj2#w}yD5(T3P+OkZuNed4UjCZ*lG#m0=BM#P+wgRGsiANggl5`W$j-AZU?wNIVA}_ zOT2mteOLSpu0vYS9%BRvG%~>QY>i=ed8@S0T^X9mm(xb|T7&^AXc)Lkn0Oug(#??gjym}Z zsiXDwer!|dqZUk~0puh9`%A0QP~Q(_A*KX}h9(~CGOrdBbdS2}-+@o&4ZA|hcYC6> z(DXIouA*W4vaz>1+Dp)DWwhf~@bE{dw(>fRz51xDzo-oGUFgt8QEuYD%9^IKCS_hp zi^vSr2T4PQv|{TYAL-1$#xnot8Z4y)?9!RMySrm?4!?q24mV;G)+O;I_-mZ*l%}d> zrQ@dp4ys~*$7bh(+v%e*3?B^d7bR{wCV$)uB0sR_ohc!Bdgt3kIYjNY_Ze3D++eH5 zU+eu#u4p|-JFR0}(3joK0;73y_+j$^A?7+Yua$CaanGft?`jcuXc>)1GM8q5p%0r9 zp)LJk`UzFPNzaiyV(u;e+FMW!YSjiYm>O|t!2x%4g+n=EGA`vdqkJE41P1=Sl)!smQ0)h{o_Zft7CjnHM zQS)wXlEiN`l00VYixLY{mpgV0*aAooET-Zqh4+!>#F(lGgg>t7R=sbR1Y-)bcFy!p zSxK9hUw36%Zg)%@w4V{XZkzNgF*^o(>hogFdL;6hwBO zSIJv`;k$S}yxRTHf0^9`EoCULM7HhS*YKX{DK!lUY=%T`KaW$7#@fuq^ZM3$-Dam^ zEp?bZ6>+t6hMLO@Ma70vA> z4@LRf?c1P9W7@o>1U12XJ>E_$jpG}!G5vR_@@(9?pIW7ST7B7;*AZhd?fcPQKf8Iq zpX5-?9NMCVZ!DBzIFWkjW2)+qUPsvM+DHGOh(V4F{Lw+W&A|u5e3h^eN|8hmBgybf#h!U3Mg zh3T9Kq_$UI=7GPH784Cjah}%TRRrcqAf!jH}%|6Y4-j@9{_V%^Axm zeaHOSbCzvp zMh_t?sTo3#f|;pm4tXRmmRnD883#EQ%{s2O?tH`)44uj!Z!T&pXAZ zVIO600UvL#+sl(hzP@qgy|l8Mo4Ds;ue&pfn0whfD`zKy97UaodI8m@7P<4aj0O{L zFYdV7jZvN@$r_&JmOEv7cO(tgS zvsuEBF7$AvjrU?rR?*8xg9ICJT{{Y!65Kmu)yl4hOgHx8E5dfy(}SxK=gt1LXU+^G z?Iqh{jfThHFpnlT$gPh8UKLLu{X*7PZPP@Ap2l#F+>+lb(4`Qf=(nYj=T=R*+zJ(>HwEJwb=)4lp=V9+a% z{*JZtc6s=j{!)3Qek*!yW?8F@?KuyZVD2r`%FcyQP+X-0lS|gz)wP&@R@>q>V1AsF zTRQKDPR4=z`A`gvIup~@nN!nB?%PH>lUC&397D9m)5$n#JJKuf?)RrcNJ1c7m{{C( zgGAX_lY_x+*IG_ETFa_@Do&gh-g1DxXV-g-n73+k}Wfz4G4qDe+&P-qJ3TLk$%|)+4 zYlqL;DogVZ?`_GAn+93>Ly55)%4`IVn8XU1Su5qF5%*08^tR$A zFeisnCe&)bvzgz}(5O^n`_$XM-u>K<_v56xW}@7f?%s3Jq(a)u{mZuDI!i%0agbf* zoqE|Uwdbz4GMU>IKgY%O5?#kK&kHZ5TS472Vu&uq*kbG6eaHJ2AX;&hR~+$PLr_G2 zHTPWY5GKLxJlLD_cBNMiJz^;XeudlXWE7WWdP$J_mdL}!R%qM>M1E(3=zZu^G6H<> zmpk5nR1kbr^?z`sXD&-++^tyYAc1z~P zYmIWce8}lu?ddqq6%2Td+OewxTDFT3#b@_jwV`(P&``|whQ_63R7JLnKg2>(79Q>*9hu3?gF3LctNzN`3a`@8DBeV?{d>d zF_1F^kJObYt!^Wt6KCDB!zOuc@4jF%8q0P8RWDc1x#nr)W-)QUxOD>Au6-}2C#Nla&vJUA z(sWL@sj`a&!-QN952|G(2Ok_1e!8=V;Et)vPfH#y+K%nMtqFyVO{U}LPLGLO-z?tK zVKaz%6`ss09FC}>quRz{&)=>`%!JAx#?VVo6+NfX>qirDk87}|Jm zV=TvdE{HnjZ}~vA^FDI(F7tD(>jFPEbGD!Qi25RO37(gQHpaQ9b5;g+9Y+Pn^YW5x z6Yo&Zu;1F=pIzoTGx*lOKTTAjz6lbyG>)!647T67Ip_oGEv5%?E%8oE%KNYU8`|s! z&xrhkAk*`dPUK7#qnSpB+-4h6F&b!(mpae>R1OdHQ(z~w4!wp)FuvVY-H9AeF|9DY z*3>*av{zqc)8(ClUbufJjq-IZCoksgGNxF|$j!dFuIOS1AaQ%HJnJ65N?yiIvB1-X zu@!9cNea^I(cqv>T04k@Y>PMg;3t(4pd_w>=HKFmlbF(&bEdCDp$O;NaAuk}E~l1O z54A%u^g(ec(|6I!?b!P*2*pCmb36>!PfzC=qk&ByK7rd+}2@%Dtn7D2OEF(%xvzF0NFr6Q2W zL?1Psc??)397P)=i=?3f;TA4zGU()xNh|AAQ%_8@$QeteS3gX!CZ(uY6;zvltzjB?7rO%-Qb_2@a0&@l zvE)!L(7CM@_SOZ4jtmXy(XAVwNPBHU!@>Vz@r z&kj@6yV@ZUrnC`guHyn~i5ZW&-2LK2(O@OMXnx*B#m}VCBU|S(H}pLUq`R zjE!zq7}4TW_TUDg6Wn!8PZ(PT=Qz5Itx@z+F+-iT<#5KJ-SID+efsN39zD{#pCX$J z@#rzbGi(q%405XlM0E77u&?RBC&$aEpCRa&eH=(c>n@zt%!Q|GlPf7DXIvO`ToLkB zDHJce6?rcJ`i%1Oe>%=s~3;rbABviueEXp?ZV{Z(LR|BL?0IJvb+xVhLr5cgj_Hr5Zs z!u(;0ormKuWa0Rb^8D3gVP*Y*tjzzw4_$UH?hnYy@nL|S=dS@)uD?>2f27=hb^me2 z%FX!!nb|%R*x3KVf23^eA9G=4|2sdnzZU)lIaxj+$6v>6oF7wU=l<)Bjq}6qzZAGW zmd4G(_U~4>KlC}+{(5BN`8e_~+dLm`*#5D?{&yv8JUkx??93kq{{`9pS?a$9;_vji z{?3k_<727pe?y^5@*jMt9L)a_-@h^aJN*Cg`Zx#w*!?&I|JU|EqWUl0kLdi3+rLI1 zVfY)Be?}j1_`B*4{8##KGyi9i|7nRVAM$_5d-?g9{`Zu2LyU$i7O!e^Eku%>xRk3ZU34biEhMy7 zWT-rNoE*1j%~YSJPU=4$Yk0X_6gI#Q76Z!*gLXOu)x}U8uiji!UOeUrpAFj8HnH{E zWVhu6__a5(` zGi(*oukkK#Io%6_V2zGImq|G#uNp2?#AW0l*7~)p1SpWz*<4at&m{-{o;`>nNtyIg~s6EM~3rhBX(lSIuV(_$c zLRq=)aeL)u5gsFJd5P9``pyglLn}gj~lhqWBSaNXx+W#e)eFT(czzubs8{^srfMHX>!u(1A5;$Rl`k1Le< zzoylRH;lJR-_sr6zP0DFiYTWc7d@;gWDb;Q480|as5A+D+Jq7f9aOr`-Rk>b^~zni@cSi3xW`PMb9pHX&-eNB*7xV$ezY3gv{06 zy2{LQ>9|k{*H{ZHO721?_=qJy_B;6OFj1jiTatO{(T?uX>J07aT*k4kte!3y*z`dTnKhKw!>6Qq1*4PVykL+ z0)CNcCbcnf2iWNMqz4iVs}i}YbBC=EWV;zk=`>dwcD=*yD_n6IZ(rF|CtQ^URWs_& zz-;XF=Q>U_1QQPL)A`44j#)nL4Ei+l)}43R+#FKb;Xm9JJ3;>{NL}ByYE_#zZk9dU z?%yQBbMap6+{c(D^;K_q4z$YbHP^`tYsoBOqGEex!JEr@5inctu%JX=E$a}zmLEjS zDn`0)X|Jp{evE&m%}JBnS8R`29|+d_QP$3F|D;nCt)_*)Is8n}IC+=VW@A87;dMB4 zEbBI1_SbDlVbty% zzGdNeUs^WAe5;%9CETQ3-XictWEWz>%qZH6qjVQ?S!vO?S%VC|a2k$_)%B<(mV@(Ms^$=Q1+2<-`y&D6 zj>BHwcB+IdTD@iY$0hw@J$$aT@y zM2taK){qC(T~IuoAVsTnUOBmy_S>z=EVS~OU1S%rsV5gPHbkv2ITjU%z|jp$$2@bT z^vQE%a@N65p}p@vuG7|ETt{vmsh;YN#SeH)k9pkLz}?RB;b@2!(!T41`fYwMZs zl0L`cqR$TtUfu6Abslv{8V*0#rLn>2e$bsY%AOQN+|aiitRL+VTL6bGfp-v#w~#7` z@u@m9s=lq;xP74!`IDXPokj+n29QVcp~HELOJ+x9Su)c%6e<;Vh0Z=>VOjnT!PMZK zkS@X;%oyC8t2cpfw-2kY$6hsWn+Tj*FTdCVL&EF5Eb{LJ3oPBfbshFg@yjOoJ+E7q zt_m-1!5kIJ!0D{QS;f7xq%Z#DCLnR(CHzE8b_q_EPT z=<_5|J?L|;cEzp=V@z~;Qfc|163|*k7WxD90JT7uOsrkb>PjltNzl#!e@jOPyv4`z z>f{9h-d2A+joSSawmq(n$A5!w_h~P`EHAJ@<58gTl#(~+EVjre=r`Z&t83t;=JY+! z_4}#r!+-nO%U=uS?P1DqbZ-A{>L1yE(mWM1UJ?xlhlaEi=AD2#xD3%V#)4A>NpyWR4vmWTE#v2hTC(3m2+#Z;!>un_Y^ zX>%P^MB|EoVokAXiD(}(E{U`rGCcW#vWXAX4KZIoy6M+)YIspmkQXQbI^xUXNojhN zC6+|3Gi)9kf*PQgd6)Yvncj@PbAX<))T!6r9De2o)A+KOQq>NjzgJXtD{VCf8L{ToX4;3_uAH?dzppL>5;P-yv zqRuP(AUDy>o5pWsKT~La5JcRCh-zJLp!QfFD0}_yhl_e|)>Z$wl`?WBtpq%;>gYN1YyMaQKgnVS5PdGN12!?iz8%f zeVLp)nFj}db?qq0>m-rR;=M3Ix)=asYI=8=F-a~^p4MKtJFKGcv{tWZ&Szc@ zp1xSaZGdPUy;cIP&XLgqRwvS~Pj@-TMZ}`n>S$J}#j}5>hGRAS?B#jnj4rCfbcahC zwWKW?kp%5kP4Ii^=~|p4d`ChIKnS?HsbaFm5|H>TW+4C<%xQ%|K+1GHISp6xU4WwC z?5DTP_wUV{dHm!_RLtY(COb8w2|mCG>rq^wo4oVzwnf*#!Nj54rm$7Wqif5CwrlUlv=;yHD--b9V8jRPsjn`Kw4 zRw7R8vc2l6Tav9PV_G{CX&}x>lrZ^TH}qs2In^5;#C=nIk{F7n!t0 zluZTQzU|c{wYW|D&ApC7+9VP}T970R|8PgUy7)E)pSn_C%RdK@Vc6TJPg{;Xa!53O z_#l&LaeRzFF;f_SZPF=m_?m}#cG_ftNq^2y&9JaHNAKC}t!2LecWE?E7zM{hl%yE1 z!0y&G%0QprZI7uRs6u#^on5#anW)-goyxTotCji3HI-4*+XqhS`cvbuX>eY-f_H|p zYh<2ji02aA(bcj`mDm)RK8(+z{F;JXRM2_11u8x9zJ+Q*q2X?KA!+1htOCpAUJhE? zvYt6pqcIYX%*xf;jt2gCqkC+7Q(dFzYRuV^>|H}7EMEGfYP?-V ziRNNWNmC~#y?tVbzru~)06WoP{y*ZAz_mf zCtV0_JaI+iz^kY1F^sp;`h*KI*hN>F&aECF!3Jy%16yn7}Bn_T*UNn}VYLNqD}A%KK%AGmbv`0*f~&f$2>8^Ik6z!${~B!%L> z;5cnlQfExwAMOzM^+Idf6re3*WtGBrOEKJarBYU4DIBznzSWtgExd%&8yQ;^=oMdB z4Fuc;=-4iDQkNG2367O0#HC`WKH-XbF&A!W`)1~${HwjA`q7{~1ZeXc<0okH3zru?^_I~tzm&-4fkz~v zDn|lmCV5;{;^QdUOm`;l$s_QF7cvJ+pJHfvYPy?DRDjgyH%f<6$Zd?5ys*|c4<5HQ zYMTqFjU_V$9MAYQTWTLfX5J#&Sf8$QXlK=6LB{F$h6(X!N9&B5X$c^SiWk{bc*(_C z|7p)gwRvfOmm@mD_3py(8i~jLCXSmmEJL~5(zvvZ`2ycgYgW3i$zo&>U{`K{k6)Rv zo$Y7zy#&q~5V#Q<$F*?@7iD4GQ(Q1R=mu4lZr|@+i#gZ`cuqF6Y3ngCw4cV|TN9~c zhb3@!rq5E*wrTz)nk4h9{Ulx_SNFGf8fPq5N=R|+MZ$w2r-zvv{g@>k7GQ%pc`jre zr3tfn-l!to@^Z%5tOVsz+**#a)~84pgcB(#t+GX0&j2s$JHp#+foElX_FdNX3w@b2 zt#z#AOe*bq)nmm@%K5=>v|~|&E0UNtLIvZn@|qR3u)JbwmqMUc6<$|^CU@ad>5jGt z?7D(1Rnc;3I(JTJ$H>SjLAXBkKAf;E_fJS4`XNf0g z`c^XO2i=1z_1Piv8+wnQ6>Ljbxvl*NgVu=9>Q6Ahn-U5 zTz%||!R&_cnNe=Y%ATV;fHu`3w=ZdzMWyuAhA81C#ROs8%wOc7uh4$Cr|er~62-fY z7{4&u+uK*gU<#xi+{G867z;>O4{lEKn&v63wIyq8sy)XumPRnQ$&b)RSle7%nA)yy zvn*i`0kLj7n{fI2y+ZALI10leDNfhZfF4^BRPyx(28zXN;WKG7>^&CX((Fe3z_qenn`VQ({l zowiyni~~@nW|V+Nm!Of;%LAZS-?FAiq?yd_Ria3wu9gZ50?>am0-;^U7pZU2Q;ew? zRiHV=CztoqQyj$?spd+AeWxgiFH$iAqOrv%SM;(|0BIF-#GBDe#i&BdSl4>Pzm-M1i{7~J(ra+>*RG|2w zwnatpLuCtw0;Il040zEEJCEni?`;Hl=kh|qxmXt(NTa@w%{oQ)we1E-oV~M zz{}S#h4_Wa-T{Djes2iCJG=K8&{o*n3TVsgT?Vuj^rivYa(a&eZNT1AKwEC_FyKUa zi-JN=WebWTQ+mm*Vbi-zKk_A(z$f%>uu%`4trHcT?XT|6u#!Cfj0CSjpm zJOZsX-d#BCIbor=7m1<`z)rWRxFtw&rn*H$(Lh%%7uK5aP>be9<4}m^M(xmw)=1+} ziq=T&P>ZIW&?Fs(pU@-{cAU^8A7+)%BoS7c&;$shOK1`e8%}7F4HKeqC`QwcZxRoS zNLVQArKDg~%9Rd-Pgp4Gg{GLJtCoj#IYB*IAfKt0EHaM%Hb9gUB_K-Z707${`TuYL zi!NtONHoJYkoWzw%Ny#^3;E2WWYKl>w|(OOmk0i1I!mZWb>uUal10-|-wFwH z(JRXRfTJdrVU-@0QI$TGA@(>+=*G0M0!vxt6x!rJDJ!zd$&_r($$ye5S>#M;O=%5N zJJ~Zoin29;MnD!l8PuXs%er}1X!h{p2`d_COm_xjkw;k%*=8NC*kzs+$EMZKK(^#y zryXWs&WiVEWzJ~>popwyx;4o(*w|E7F|o3~eB#hd$nve(9|K3`Tce|)nSf%xLV0t* zcKT}aiL5S<3vFEFvSvyPa{)62n`UxsoAkCwMhaTHG`es`GTH*}IL5%31`r2mQNhOc zwVExK<|j@1ad)z4if9vKGEFGW#B%c|jEz$rI98U!lbNP3$%7=5f1GDNqe?d2&`mSR zhBTjL={%(zQUQrmeq2x{`h)H%&WJj^OcA5|Q~*&kfGJ zz@MAXe8gs+p@$;CRapjt<_H;N=GF1KILi<&Qkb1vN?9llHjm^p4g(zNy2BE7BNfXZ+ThwQAZs%(NRTZ-9*oWg#l zoN?+OF5Rx;;YU$hAkE6^kT)r|IgN2@FMCY!4F3M71o!P7Ov;b98=~__K4SJU{CRx# zM6vLce)nyAMwG8Qc%$s$89{4J9N7?dE70FST(%6<BzDeF)Dg$ftcVv9=6+93CPH>~ZPlPP zi)K!?lqdV^HSZtv_Fd9!VLH6Y^(V-QWs zPh5|luZOy_EOeCwpx~Dg(MX}c@eh{V+f-QV=Tsy0Qb)r3eW&Z z0u+uy*pNc!bD@lsW{#=lC|RO)U@z(S{8BRaM0dl~X}FPf@rtmn&>7u{+ zqx`d*JY}hbJz`s&czm(%4qOti0DA38bJck!qc}0wBvwH znetYDECcKpWU!Bx<5Wkko%>L!;K=s+3p{gPJ!%@~u-c}pL=8(V4Azmiwj1M}x}6!F zgq^2`?d6UBc2Kq=X=z>BJ!3U%pM1z~5Ib)t=1J%42VD>ybrIK9I}qJ&KHFC7fwWzhuS!NR^VAKk0-8AFJvH>)+N*=ld{4!AT}JvP+pB7Z-&Ol%nAS*f?y4j7(6 znXjr7c?XGDTcJE6=Gp~J6m_i_SWWaKwP3X-T5F%=_EALOV|!tx1$$tf>z7R$p)O6e zm=74qB#Blz&2D{m+9aEYnD4fM*SR(yb;<}s8XL_#O|7+Quu^j^FSXS!FQsfjka<_3`}?IfKz9@7S->fQq9KwvB4Bbjn@d_Ys5a(TG75EFEyGG;b@AA z<%+3na2e6zbrRpN3OJP9B<}Eaa4-!cCw6440y8&$`AM$n-(SSmbQdvOCGY)#O+x|l z^f+F@Wf-Jax z2#(mPWB^rQ3*dFAypXUbshO7Z2GfXn#2*i<}RyK4Ibcr9pfRY(98A%or2!Scg zvjGhRiv!301}zIg2~i*n%M6Z#{0p)lqOTJt`!f#WFNlv0DI~;$kdFQ_e&~bX5@6^zQ)w z*RBNV3nd6C2=xZx4RHb^2rUR9_(>3K4Q35;4QdU14SEe??b8~V9*iEO9+ckSO$eL` zoC$&nY#eeNd>mpNOaW2>+{>TJpUQ8*U!c>tGq01pv!_$6GoaHp8)^ZHA8ZBrC#!>$p%Nm-+hNGF81n&2@A>VQaiY z9Dh8C^1l;S<8%^{RKa{c0f+GN`+p1n-S;VcnU8-xQ`H^R9H?^%TjLqRO5fl^`1*b$ z_@ZyS`!`LK@EJ6x&I~9S9QF{%;96o14onH(ati{-@+oFQvu^8B81n`Wd`f`VITbnO z&M>bj{5RYJl6F~l=SFW|`8?%2`Qhf>6iNEf>WORx+;5PwDM)HE_F3bNhP7BU71L3lRgb@LmqA>31*ICjm{jYzSkHjvKolUuFX_|a=_H)GrV+3~a% zv~qceD$=S=zK{1jPAshEiUOl~j}n%GM`qhDSO7NEpwqsIfn2N!Q3Do+0%)yZ;zu`0 z8E*>B#zAVXiNyy^`TYqvE$LE=`tw`so?18#x?fk028iW-aXd+5Z1F~S=?d5ry!`cu zbuoGYql5tM3n!Xa*y~NlmY)^*r7TPpdB@S$dZrJR1^9=Q zBeV0Ug)8u-uMENO&Ms8f=NFIdHkqq8Bm#lBSJbCn z^4Fh!#P6d%5M6uR;|Vefi74dK=QZ813j`1zd3gHk;Ork;LXSR>yESezkc4enS{;vW6dMFTZ+5nu*S-2r@- z=z`VbLRd6q7~h}Z`zFWch;J=7h$PqGlbvo7=j>>}TKCXiIZhmTp(auAB)1P~$9Y4Z z4Z}NWDEx!NpUZ%-@D}ZZVJS(k(iJHgj6PV(qkPoWHp~QCioV{grJ&d0 z7G9^56B8~bdF@muL@GSp)^l&ilDW?2Stk0Z`y>)I zHS0x>#hhl4-tx#ZSU3s9e%a%Wz2mtv<-Ozi-9Oo=-yA9*$%%qp3Hg+S|(lM7;sd6EXLY zWXSIVBv(oN%CAgG$NoLQUFYdaB*Zyce}4vDG`@ShL@jn6+Bs{u2o6cAPcVJrA@_q> zt|mU-H6t+u#N*9Tzk2MKw2{;1KJ_Z90}7FMn$Cf?<@#p`ToKiGSXokbmI8Hb2xPKh z-#(kis#uym;u*FD<5!Lmk;$o<2ZlMUo*Y`PhlB)Cxyn_CNQ8b;<_=2hsee9+Ues?m zzO(mom;KX=qwW{s=;&w^j4(8kE-274{o7*j0DLdtH4op=qOnvY({PtV&1iM2z6FG{mtzn|P>o4diKpIVU!bs@9DKAPB?bCP$^0C` z$HFZ;?ou>Ni!ST6UXwRLOP<#q6j{89BhWUF<(Q=J*Bn*6qJUru+jOrs%-?zUaQo<@ z@0KgL7WVY;P=$b-P8z^wVjqk!_PYxgc}tAF{;ZiebqZ#K=T!L1!$cG{u_VsRc9eZU z#|kQ?CL14lL+~l=ba!lv?|P;FH?HlD+ax4wRKrmb(|9N50Sy*0@x2>`U!>>n!2v-! z;8CPyyAW`4NAs`Gp83qf1boM%1tP2wjYO7J_Kv@x#dcD|BG?y|TY=_ZkqOvIFpUYB zuobX%5l-?JPbVFBdx_#G4M#J-)fOEbv}btUoqU-}($kw3>SC!;pR4;xBpLn1RQ=cG z*=QPf(e*=}qItp@AOA>35@TXIi`Q1D-sRjG@VZ5t?T^~8>C?il2dmJsb|Gb-dv>i6)LlH1=j{Mqn#_{NosF|s`bAVuc~2~=<4D6$89o^Ygf zYF?sQXoDm}BW^zhSs)&{IGgi*e*f@+-Yz&4eHW6bK`;eTUl*A*N z-@Hun&C4X;h$cOxMNg_Y)d;?!=G}Blb0mf_d}n=RX@HFM z)(80J8&5T@!&D1uH?c06eEXq0j(%fItF*hmyrJ~|feZc*XtR+m`n7^ry|@#6Vl< z{R1uBa(|vaaQn2SJeS^E;HOsUJ7?FhL!Iz@8XxKrbW4IcRjY(T!m+jLcEkcw5lp z3fp*uNH5-d%<4m(?dJrq-Rc#!^MB%uoJND*m?r@YztV4J1&X6-;w|X+;anpbF{oWP zs9iUxT{oy*H>h1V09Aa>s2;|X9>$X%{Jma>j?u$-(u3!A5|SOcd&vrKf=CV#68fHS z!juU50zQwR@0_(`$R(#F^K%CB6$5EFGr}T*6>=o<<*x#WDwGREoAMs29WyBB%Y*@O z&2Uy^#q`RR_=SVuaD&T|)IH3YgsDKkH;Kb9& z>ru>eTzysrRc>?^mbZuMP-eu*b(jI>9?8Ea;_N$weaDB|#qPE00mN z&_X9-u{e1iW2q|0Zeux;bU5haoGt8)q#Rr^dbY*Lmsr6W@_2$)&S)u)lm8}iK5!bW zprbxNe?xg(ELiU6R8DK)7!BHC^f>2F&p+z1s(y74VdGIO_!MDRps=e@*i|U(Din4V z3OhV6LTJrn_Bk@CI!-eEa#@)iGLNzFRoNw;=?csIgrPr(+?#g(m@`rC-76sG25nxe z7CE{nOMN)`ZLR22?8zpPZ|flb9otj5ylY1nWo&40rqjB5m&-Hv2?HLOvntwXFz8^! z>tMv|V8rWS#Or_`I$$VLc#<3F8f_WXyPU?ftFfL9)QkpJl?HUqf>dq>0Z`IuNb3sa zEiv1f&SXGCPob3OyluD^8aadN5fUUa63b-d43~-3GMNF!U?ABfZwt7cAuCT6Gqm3B zx7n*~daBq*qLJ-(A)2JTTY?QymzLbEA@}M%ftdSBv)5`^7%`hq?&EYE%^+oh(wRrf z`ya238ay@LQr)~R|12|OL)CKCtE;}Kw)X5vgaGF4{V0W*rj ziNmsaTob{h(@dNxM=EkZtVSx-8}rVJ$2llRymU5x>DPAb_}aQe zY|U4%-udX-8tUP1oI0>>^6`%zd*tIEt(*AX|NQe+KfQbT%6p#KeD!m853juMC-93y z7!h_g6(a_b=He(F@ezSF8}dHCKy3993F2Eg7DrhX0#=29RSC+f1Z7nSSRklV^aHSd z0M;)UjO36Xat}W&A11`=IZ}6sWeup?`a||nLq(8Q+8!m_eSXl*YCfoqgY?2 z&=WOb&Y8RHhRKm_&8GPiHGLZuTo^sVrG>~7KgA5H66(cP9`&si`r3;7+6sMd1s1g; z79CAMUY5v-02ta5RRBd5Kv4xyQ~?xW@v*O7K%(u)4vCZ`XD90SY-rS}4qUADAkjJ} z&&nde4%SO>>a2`T48fU4Wc5@SujSmTG+g6!J$(*(4rdju=2}jx!$CI3;;~ps4eME3 zw8|5*>6zX3x~`S&yGpnsb!=_y_6+V?9*^`~mJK%7)!42v@x}T43U@B^zz^~pdje?a z@<_i;0>MP1=D$-rW(PE9`fSY|J)(B`e{=>kC;J58S0-Q<3uZ=BV&?Y47QT3 zlHNcLiLfq32V1RTtLW$esoCw-B*q}baN(LrRqKjO>+<%-OxMbtBcr!W)S2A@t6p?jEhuaBMg0DTp6Zt6 z9Zi|e@tvU2`ic)?D{mzJMXBdaQYoU1V92jaqSGr7&i*#R+28LJ+L&-7JdAL8I1h#x zCW6Qix_EFHB~ioi)EHzsjo#dN3ZZv|@J`r%t(^q$Gl0JWe+m3IQ7B8Jf1)KTW`#Ee zDE1u~&STi)K@2-?GY5?xk)c&DG%M+3)Uej}YZ)~S=x4wH75HnM4u`#L1Binyi_nOQ z*K0nhMUc8;DHbIVzUKZ^Bv&VJjM2O&6g6s7b)&1=KAV}A?KgDQwR>V635Qn48!YC4 z-Rm{R9hWm=F!b3>H@s&5b`(`q>!GNEC)lWZ;t43^5@r-teuKPcSkbgcT@o60E)ho4 zVNlwiIK+U!5l=ri3*M8pK&t0gqev5y;ve8a^L$b`1|#Pn>$l+i&R>cfO$*80LLO2I zwpiT#2IsE(N&*&bsktqEC(dkfPIvN~W#6@d7kyT%QW-`4d;&$)8<0Lt60=IZyRy~ z4tX6jCXC|k7KCJ!*sCBJg-}})B|Y#N^N=-8GG-)GZZhQ}-E(Rvz#9;VU8Oy+Az5IT z+vRq}ssm##jYY}bEZLlBA(g=js1Q?AW$Fuawl;JU+(!#s($=zTb&VLU-vXE9Q%<`3#jP{c9ms8_rJMkku)pQNrA zE&W!ng%3umjShFfPCw3zUW?6V;RC_A;PzD6POS|iog|=<{$ETC*{z1y33os1a>flY z;~YgwT4yYX_UmIPGi{dyB3A9MjUR_v!Hi{#W{X;DC?GdXy3?*#-$aholJy9GP&S}| zETA(C@#FHsIcj|&iB3ABTptf{XO`<3T&|~o$I(J86sorI^kh*QV|3Q2&mS>SJh_!I zxZ+jrh|8kq>CaI=A~$z9Jjg(-L0kB<)&S=5+3Dx?CXOa)l$i3j7IpATr{6|z-(iAk z#eNgESS<4lMH6}=KsgRUNq&y%ME%u!;(u&xz1`b7p8we!i}D#inQ5L_+7uT2A^N)^e>lIfJDzW=Gx4=cR+EoL+G-rd zXT5bD#ld7xy{q_LN3sied*$i(={uMPVi9o#pm5Md#OJ6kNoR1JO#5?w${(I1El4bF zqK*d}8ycxb6hs#t;I=~Xd#ZrnkhFaj3g1Wkj+3%q#3$%vaZ@98TyEsx_=7S!;jEfB zQ;{(-7pi&FckrI(WmB#4!CQL!ZapNYCkNU+T9iO?`dDsC>fJS(N>A)w);ZZ(V`O;^ z{WX8c6Y^R6zWCzpxBcqg0l^pYL_!vi$OocTt(za7+VJpnrYcg!q9h;sjv^oQeL3+@ zxRU2v9#}>^Lq0)x2`Bluq!Sn~dbK5&wP8pCiIeGuTm#jx2zqFaZnC|m-8OhUm~Y5a z`5Zii;Uy3*O&FL8Xp|D~%ZMqWBKnUsBu>f=QQV9mM>lD0ugThN`N89Io`7}^$931))e9VLG~X188gvcU9a!^8VC6m8%Z#1plOJ0x z_x|Voe+OziGD;Nu42-%{Xw<>nLYJZxtyC7K4=9_Y)w)iYroAULn@cIUGJ$I_xlYKY zX^r=Utl4~K${jiX3;=y<*_VF#<&${Wh+q2o9r+*EtopqC!2O%{UXr2$_xx&aw=zPO z-udj!WA|)sJM~`U%vXUAaDOIre<@;hX$An@m`xkB2CanF^EasFA2&|NkFyJYfK0!v zRPeDEu*N)plX21hxNMwek=J7@oWQ53)teYj&(6OMeV{Cyo@3D8T=8;pGpC1{N3{J2 z`F$i4nLL7=Q~JXRUW>(T=8M1L1dmm83taJgoZ!YiJN+^BKI&P7Sb=+{5us-mpI+}J zd|u57QFJmVgVW9}XBOZ~-7<@s6EZp`$efh%QD-Fd?8WNt4(ffgxp)J)gEc@W3~cd! z-U^b##v}8bFq`S$M}x(~yx_K4Jm}t6@=9lU`lXOR1otkVevf{SX(A+I2cE&JsxrIa z`Cp>OJVz~-bc-S%x;5z4po0gX+BVtHusYDNRkaY zHZ{OG2jzyXC0l{MsE}3*BdVoUj8q0>(Z+I0{j4+!>Gw38mN7RDT{$%IrS;9N8^1VO zzdruoB^#3K96>=0tynpcxaGxrmW|y1;!R7gUe#*T(f3%r0`IT(cWis;k_``UUgWTo zRmgl`QqCVJZnXJ1i^r-Ty61%(Z~3?TN9=)sH2`W16sj zi8a{f5d%Ct?TqT-Cwd5H?MxK>kM^8U4mHL%n-t3*s+}=J6@Pwi`2I9=1N3irJF4%vBU8KoDBZKZAcuVwykB)?JGR(nVeq8{3bs8U@Z zP|tM24DJiEIdlO3b;0ufVCi18a0lpK%6CBj536jkfU$_KbeZNZgz=LITb7E6_!qiQ zzfXP(UB8BCUbw#B6q#{BjMQvZD%Q$c0pQj<= zM>m5~LM_MJyire8jZ=rP&4 zVq&dwml5jn!*z9z#hIT`ohZB0Q#Qgu=%|g7k#N+^g!Q6tMlACoi|HVI(DY^+)D9j% zl?RfxP4KlQB%D697b$s&5oeU6SitmF03tnpWMyzEbZcu z520b|NSyx*e~zJwi^!MIUK;kYdXuOx?kZ||lToMocIvkX1y{*dRu~1GaRv>2(*b64 zX?6i@Wt?GP??IW_yfCrAo@ZWx`mJCt25ixV`-c2-X%u-b`d6jfI&~W-dKEipW{?kF zOl-qyBW16PBTAf>v|(dfS63Hq*1=yQ5neQ1=g`ys*tCC(pc(=y_sYPuWIJKf7>!R6 ziwVhm_Ti;U|JikZRb^kS&hM~mW;kom=?+>rs(3dOsj>SkTDtfM#aV)Gcfi8MTyh{4 za%sr~LpB-Qp@eUfJGwAxcAvV_U_fML={={uSl;`Ka1aXo^Uc&Rt7<*^V7TO;-bWT` zCx)edYIOu#g2|06AYgV#C?+*}b(o z9L`KVy$f&*AbzZ}*5^o5&ZFs}dB6{;?LH)8!Z0o^UV_ zqV$804uuB>2g36|tL!Upb_vDk=(opeR;`+-AwR@bR37FtDPq&<_n172W-zPK5B+|Y zuu&*^B&yIm%te?Fnm0w}NVDoc%0dWFK$s89=1njGVJ@Y3KcJVD49U07i zB&)}szq}tmPkFzbCpu9EP?0Or`+0k{&l|Gq=m~SQp}To=ssBh=c`m=}(gy#cp+;|A zbx62G$NjgxVNiPL-mc|MZYzg|C#^N<|5}?*dx|4vJpMK0kM(ZuhAdLhhZ>}s|Lbv6 zZ$vth?&6c~H2jwKveWNTrx1Gwi8~csdML|mtU1e|fG_1)6efrQ|2 zoAshgu%dLxZbgoOu zBH`Q;a4gGRD53lmaCYBuso!q(WtOGXywbD>^2(I7t?M5^_~z9@_xX~|^=vTonQ=${ zOT``euRmZFSHBgk;X|Xn3yt<5(T05&!Jxr?$YEv#qyY|jr*&J@QuVP9o`>=sFnHN0zS3X4mFJyfx_Z2do_V=rv#6x;QiQ&@I%ClEj(czkVhk4(B(nrnZ;%A-wUu z<9PA58ZW+wGm{WP{B_i)FfoX0PJ|N;@W0H4ok5+`j#4{Gr+4~i92!;0TTtM~wMC_{ zh^vZ6%io_>?4>SH?7fQ7Ib(rvt;@g^zs@q|XfP15aWvUPAtj@=h5i1Jk>RS8g}o*N z{k+3##0!5bj1JSp6pn4aSou0u9taiX>uR{w`CYC6!wW|8kHwH6 zfI^~VgVn&&yxC9;QH067)Pi#2Kvl@>aC)uO%b}gP0|E0qM4LJT z-3D_tM)gy#eBxP&wmFKIY@+jdqFHFB+MjDCiDt67xxTx0jzl8nl`t6&GyZq$2RdIj z3^PQ!w9XT1SdvFzGxA$>I#TlY8`muEZIFKaaL1}(#RdnPtDum8fz*mu92pY91vDWo>7iaPv_QE!Z&Nx+ zOW1WSi$aVBNeIo6*nqcJ7|No}1Dav%7?B~I+0t^AQZD+Q^f5z?SI#MOOE$MDfbU3g?do8o^{;A}$-rhKG@!D-Z3yZQVlqy>In!*15 znhkeP);wu%o{)lF($aW-&yudyt#0z|YoEEZSB$kKuHu!N8LwGfN+IU|lvo@Qmf!K? zYnR?W-D#=qX(~Q4KH0JHCh)6k5XM3JMPd>0OB~63cm;&AO7cI{)sgQUhGk~wS=#*G znM;~azpE^Dru33AZ6ZzXw*!*S*dK__k; z$JAv(k|E%JTUHvdLJLP_>p&y@XBirqg+{c{%0XE>tVld8SI)mUo>deGd&V?DkkWAO zj=|OG^$*W1>fZUtCCSnJBA1q>EJky@V^!PkTSC%QM|L8YG{6e9e-hoI(OvDgNH-n2 z_O54dY!^IXm&xj~!~>z4(9tI+?^vCTCL_ER=7-l5AH=9GCw{0zV4mDZM2Gi2VUVb z`+Lpx#I?k$xbnMs-RL&>MeT;xQNlMzo;Vbbud_Wvo*;OXhv+5Gx@2K{U#@MWjcOQ@ zhN!lowxPb^qr*d{AvZ9V9>A^vss^yYL^Xz*Z$qi8>5W%kg&7;L zMsRzwAaCz8w*}fLVn`T5Ho>h==iZS~`)lw8408Djv>VeIT?2a%xCpE?DceWM+Lc&e zS)jm{;1+hoVyf0=&TlCD8N0T2NLPuyM|YzQ(Sbmh!l~ zW99V`bLZq@Z?q1Z&{&-v&8j9`m8-=j1P-(hPU0~o$@ea|r>ss}$4o^TaxOzdS#=A)0>PX4$LAB>?VGPIWVzYx&$~7h)IrXen!QK8Nz@V z;2<_p@{t`5^jfZah8jgWvk_4uuzW_Zxnh~8u(mIk7)ekK?NU3HXiv1a)V~uN??=If zon1C84rzvP@?OaUFq+B*EPaFzn*KwmphPupd99})ukAA@0tt#}7updoaO>ms@5reA zWpIHbvU&xa@}J29xX1-6r~iQI&tB%u&T_Vp*Bfz}*y5dM**~0Ku>ZBUeG2=Nt2m20 z>~e?gI+MBhG`ZcN!^;I}&Zs5-S~Q-`fyJxRpM?Xb{y<)*Giqs?(`yYbq4;#MTC^*? z&^)WzPTZ_K%XpaBy>)~JV)VC;z>`BKBz>kcGlE{bZLu}rnjO1yV6=t?>cu9fp#l<&7h^9(fEX?P^>gy)qg;(Dcj)|BL z9`jgWj3TCmX+#3t{+`LVWpstB@g&6l8QMoS!3RG@Z#0 z@DXLRBK54=6e>iH3K}qKfmc=9W!3kIxkI%&Z1tDkK0f}rvE*Bz`b6Qa)?R1SXXiCM zOLHb)yvf_QQL5T)wlG>Fx7%IUlc?#bcULuNHI&6*tX^Dp9wq-@8ITcqM(j!Yus5IV z**;cZKXKctwVdd&MuWwwo$ItZt;XcCRE3R3Jy$)rYXkXlFp4sGZlGhb)$42OtzA6Y zWU{y`siVXQTV)tW)LG0DO1#F*_!>zlS16-hU>V%N|X`idoq>wqL-F>%}7KoXPD zXoCPe_89bu|JD>)W~Lo8lTS4xKx zA1fTr1(>OM_QJ#o)m@A@-bGzKVV@#BBKeTcs4Q5B==AA_zoC%Hc2UM&dNDGMHC~uZ zNR0?gM_I8@Y)P`joLjsfyo@=~^ z7S=9jA$!R}GLr=fLl9|2qo-AAo>rxKTFpz-sx(hS!lSc>diB}3moe2ss^S_z2`zKT zG>qd|0jE2;v!1C`@*PQ6I?)AZ9+q7LCOG%7j8BGg7EX80m^-S>DUsn9ibdrZg~`)O z@8?9H4W2#kd*srM_e|C_ZFpea$Q=@A3qa1JeSFF1@;Q{@pp2(G)G77G-K7L)_wdB< z9S1gC^UR%nOP5gk(!)jbOHppKVULu*eFo(^OBxZnQwZHhP_CaOnu&KYy0z(+T+8+r z+6vjBH3$zLT0<#V8J+@kl?SSE){k6?sMvR&P;lK6xQ%U<7 zz&jL5{o+>UeujFEAzxughVi9ej}5rqz1+0JM47bj`i9lQ_QI2$N|O19q>>8Zr>e05 z!c6KH@^!e4So(F8ahhE3%7jTUQD)lY)4nVFlpF{@eFx`Fl~-9@(1WAD<1N@09Q{b# zJ%6yOcgLtSy)13u^ej!G*x53%Q`-LhtJ^wuKDKe&LzmY*PT#P*^RlimMN#q4;Pn&r zc8{Gixh+Pk*`Rm3tX((G-FVGYw=K=@`ub|??fdG7W?I3wR-gWu+Kbd!2k`}5xpN4R zTH=(_t7h=tQs(YeQ+uyUTrd3mc|&dW-04>&3p~|Wtt+(jd18fz{@{?%j|Es0xXk3S z%m+&Ln1N+wlGvgv$mqz1SV2~g#Zsy%cg`A(N=Hk7 zj>{O$6;Ow;tsj`^ttt%k)wdP${mnzseqrdE%5nwBV_|jy}4;@fW>Fiz_ zU$Q6PwR-XS$|=nAG>wesZXRpBpfxX_+Pf;ja2%)Obq3wvtG!@*^Ve!_AS}dV#QWIZ z`}S>r4D39+XWhDiOE$vRcI)aV*5UX2M~iZMXq0C+TIlpnJR^qf26zsPRFeOOv{iR zE$xeQRw&J3?&%Qs9Ef|Cr;$@&MDx=n?iJ;;Ss3lVqA%5B*CGF)GxGLejc1^PeDy45 zP~r7ccTFff(w@Vk4P|C(mEygYc|l?3qS4lk=Q8tLmac-<%~}RI9c$2!Jk+Kgld7L) zoA=evmqzl>p#E@^ufSs{Q zDe%b0GRJ^Y8NB#H<&kdi!hew7UM4_P_1u$y@ffDa(x zJ6}{>#fzWPT>Glg-sBQHlBTpq2>N&c@G}Fyeqo<#1C~V*;7VdYwm~M-3X6?S99~mZ zwFI2N!7J-p(Z`YDz9lnOm{egU`<8)qz45|$U+a>>aDV4eUB6qcO)U6)C`-JYQ5G10 zNi5hNhfxz-a2p;O8X1olWYi2wW#x*7T)9d&e@5-$Jk_Vq?C#aV7RxGDuyKxZ?Fk#@ zvwHcy`vxz$X(;5rNX6;1x^|_QrP_^`(AatC|I_v*P;OjRqP3{BOQp56?|ZAY_Nwl7 zOTAbsb*oozZQ^b_UXoy!?e5r4AU1(4knOWLv181@44lIU{`oVL*zwXN@P~hn$svGq zfC(AGHpzic0y*^|10TYY&VTP!m89NmCz)w=OD(DDRlU2tyS;k_uj7RWAKY_lFO=T% zn>O{2ZG$WLp3{5UkreOO_U{3Y`6P@|czkyqoj=8XivLJ?@3wjVE_Q!ywl>DvoP}DX zmIbJ}>>M$cD?B9$Zx{evPjs&q+}=~{M?S@KaPYh4d2adePB=c0*6<2ch3BZcv=%SY zB&%17=Igs5|I=i2fLK~XBv(E;vi-zpKxq;}BldJP+kbo*5Cq(Aj#PqF*LxDnr)2iE z#PAI`Fo8T)tKO?ThT6ej$V-5x%-9woi}~C}>>1(^rpA0g4s4n7Lu#^iW?QG&F}|gPz5CpoS-avG90y~eS)#POA z1CW|7w9dA2K)F18N!f#>QYF4G6ViO#DxOqn+f z`1L54dP8Mvrd%7MTqIkT4qQ)?_#{D+a3F=D3)}wps-vP#N5$c(hRDFF8`_`?u?1q$op=!5BkZN%Y>wuVcWfGCy>>NK)VcB86 zqwLT|_zdf-NgPqfaubH3P63u2qljMbZgygh=imq(!#oGa$V7OqKFTu8uFEp-6p5=? ziu(5(#aYX+Zj?r~^RuKMT>~5>5w<$ByshIWPj-&vS4LM-usl!6p+~33=u~5a8-Cz||CZlTS}WMEO5CH!wGlKX&-QWZTJ4un+Uc z%R8qJ@W*KC7`v}FQyT@azT7>LW?LFIxwu|K#u8C?RkEHS_L@v6H0JS#VF+O7^sxhI z4Hw4kh64kA4i4>TX|}$_r5*Cy+6blAL6dRK?I!PrM^_8fw{%c2+FQd8gh!pi=m2;` zf)SDe6BkH=l)`l@#&4wXyuS8Y>YBZK5He$Q5!xDIMhGI~K&E z#C-*58i%njA$l1e&h)eY3;#2=8M6{mOpb+tMUXj=Q7jVNC1VCWHis68>5|(qH?z5$ z-&sxsp zG11DS7T~9U`@tG9U)7qy<#%rGi58w4$biSOmjvDMqXc*HlRJ0z9_WL19-B-u5#*`u z<$51`2H^O9s9ly+%m#@?@?9Jq>@S}vM-4je5x+0gO!;+mGqyLH<%td@7dxyV1`cn^GuHb^z}+dG9y zW+m08P1%gkr$KPLxGR(CJBSqAJ9lOwAU)+$-|Ya9w^VkrH}SP{Hq^(L+0I%ML|5v# zXb;^ACD(s@`4#|RI7;m%o`d6*`*^NtBztjvJ@>ziuNq1(DKL-qJu(kKSiH&c;`mSG zjx`+Jf;a8AvVTNzu*Z--TpEF{GVQ)l2y5TBPg|a8!=R*P4BBz1@mP0`mDo16r-w=L z?#c+JA=B%G8U^q-MQ&7EkQjiW!HFu2E9ri89g#i z=mo6EUj&AvUg~Du7%@whI;v{DuWLotGu`5y_QZ3&sAswU-m0V%*pf3P@z-{qx1eoDMnGC-|^kD(?A(!3MjL>WI>hzk#vTbhm zfo-By3qA%XppW;gPeZV7P6x1WA0oen^<(4MPMkp!+GJw7FPMRsnDHCHX)`U6k_Nm+=&XY59{I6$(`#1iu5R+zeQb+=@TKmNn_luyh~*!O zX!iyGq7W)iwq1p31w!SxWYTDYiC9VSo0OiA>V?MDj{KO@TCJO2 zT=$6ork6PXgj6h|C~U(pJX;T(0|IH}PsxEL#@NIfjgq0(1+%9*yBgV4z(T{@qxG#B zuoO@<7SogBJMtkjeNV`ppZ&;q*B+P2HqiO{(EN0|{lJ$N4xZiJY6#@~xlBId3%BpM zrD;k*{9J_0CN~H`ey|Lp~e|I&${T5#r`_^1f zkx)8PiMVxO$dm1dJM0jBP)CR;K8beNnP#Dvau@jYv*fq24L~1y0OgJ3y^~PJV0t}P zhWRzRxCfi=uIBqEy|T~%%#%-z01KGB7^>M{rvzjQv2J8hzj6gh4wQGPYdSLpPrbmU zMndr9l8Ot}DEsRiC8A1*TnkonWG!pBV_7K=!d7Se)tOFR+!wgqo=u$=CG>E>5JmO< z!=;-C{fUuEB_<_5B`O;$2`RT>Rr*up;MrZR8k1E=8!TEFfi^qL&JFu&`x1pPJ$By{ zyN^75U&R>dO&nASTLx82e?kdS#f|sw?K35YauDVSx(Mc5&@MX@_Gz@s?kvzjKTj=S zd7*mlg!0*&TEpl%Q3RqrFjfBhf z5GCL@JR=s@7B<-wghJzv6pBo$xccFO>T0@90CHuBiv0Yt7}1GgVFfiSq+KD?StJvVB_-(4nq~e@I^i;W{!zjdqOJ&2R!H^CmaPp_iQq|Ryh+h zR3@QZ0Rjc@UkMv?Yi~~y{xuw*_bUWgDDZ4gOQHb&1iAs{+}E0_s^D*4P>VMxRaFsh zWbLXdt1jJiML@(P3CJ0)CJzG2Jp-U##kOEK3sm}5Y=oFUKN;V#2wt{&`vIJgltAHD z4UiIh`n{py>ds9NYTL)s)xt_C@nRmBP^cYDLr}c%ia{tQrKt}v21mHW!68D0HHF2q z`J^<^_2k8>4YgejU^L-`YWkmir2V$Pzb!X6k+UfXLPn|Os>H^$lI zd2ozqlVJbWFM4(kg^h_~mN+VXR;K{z4^0yrn0Ml1nNpe#r$6!G?KQot9rtc)(Re3$bwMw#-K_E!8UyGn+W3Y9`0 zvIR0;y`;UFB}mhIk8e&Y)jFd|2iss!mK0kh|L1B3!f*t)DZoKtVbAtCEu88lFw^L= z>4_8y3&NqVmQUmcrg5EHzxExAE5r$~LbPK~Ax%zO?8Fl}JXbQ|W4Xn*zlYG36BA@} z5T9D~iV|dV&k!*zh-pQvuHW$jEE-NGmBJvBg~fvjYN&YCU9LOGkW=gmSS~UKl=+!| zS(1ITfM=VJwu^_~aJeC|(ZPv^L+bvO(h1+J6nCG<8q{h;*w%bRNodBX% zY^vU^;xOt~v37Tg22UUvTb5*OqdP_U-3i*py$W|leGlkgleib**=2$~DNz5Or~#I} zj@jY!{4`!(-K#~Y&)wA1=w^WW8laX2NL_&buFI3KKJH}y>Xtde zu&Y|@JcGXp6cz(6KR-GWM*C(4M*7RC?rN&$Xrh+pBK-xiqB^i6#bUWo>p=bAUFSxj z;&Fi+9T`BQ>AB^@N#rEf(Ycl?vYu{Y6?g251V?>OP*H%?ZXHe+j-Z?;=)qxHhth?k zb&UlU5@I|CMeUQ-?(M@_LuzWY65e)4)z{EnLWLE&%j!=W>*<|aCY+gpcy74G43wIh zr2he|=dneEby~nWd=gc`m6%R8+9O0^j zE@*?*wL+;^fQTX2IYBYha82h30gdb8V>$TOR}JfcJ~MV5)o>Xw0T6dV%@FRX{yBgm ztk?7$f}^{bz~d%7VT84eqgp(w#G?wlg~SsCzDDPXm)Gn(0gWDSMvbeRT3Yy*x3qYg zP{WG$muYNl9-z~)h~ww!kj-!~ zQN4F}p?&AQV^)Q6&-}w$aN{b++MM%;TXlW7VGz6`w zsi--GG3EpikCar&ktl8TSFJTn6u)S>PBv`3b4hfdnrj?s7bWY8JsNBAFanyK_%b0^ zDU~))*y_l3^n_M&aAcsT;L!!b9<7YT$=!_Cs8XqvmUOM_ttVIW@O_=bF`87W)ha!# zzBlzYPdpD`QpF8|u9F!pj!ukzc=U-;s;L>pAH^mVhk8(knbyPn4Xh}!z7q1vM@Ayo*xje_xt+9$MxHvO|M_3Oq-<1XX8krWzF z`~-G~7-3!$h_&8wLhN}k3k$+GHJoU&5KED+^v^h>`gIO78jOA;sVBvz6F)&6Cq^jd zHHnPt?Iz$3qj%GBf_T1d?%wh2wvAavErYEJlEtmvEyHX?n}1QViE`%2f3T%*Gt{%DmL5ac+%4>|`x>?t|0!0$Z1~BNLFU2?vVuWY zsmKfkSpYEfA4`#)fuWz(e6L3*qr0N>QL+}TMUzuM!LnOPSN}-zRo9s1+bYq31U$ZO zs|l&oL@8Ap`WYAX0eD9ZQGXP`8x7e%^%G7U)RladbB(Di-{w@3MG4DqEra~JHJxu5 z7qHg^{!3rI*F>XCL(9P40sFhcPus2X;kAl3>?B-1=3SwzXXwx*SPew1fz{wsLjA41 zn82CTLFzE}DE51y9%47Z(i6dyQb%-$@Fx3dRyCb(fuRaUMr7%l;$1mL(u9{39DxFhHe9N z4;N5qP}--PF$tSy3_phj3I%MpA7_vGcuu&`^eDjkv|-vm4X}=`wZH8-4qUCg?KKWu z&q4E?gH=6*j5(FK<}TmaoiqwMXLEs*HMi&ztMPp;UcG@$xd#cELhFm8*pl}+ZGwF= z?sB9D6Y-&}GvrZ1J5m+w7+FRT*JSt9HOdgFS@S z!USdvr9}Cj66JnMl=~@BdrOIHWD12UZMqa6Vm&(E#^xFUF8(T91lz>DwO6m8GB;po zo&(3)N;VzO*;qxcIbfA^8m_LtE&EznBMvGJ{zTeV-dpnAE#T}!lF9cfjL!pTcU5d* zw?#>*sO7;S0oKmV4({z`oS+l!q-y4du$@uM8A3rmS{!0#oabg(VH6!F3?pZF zPF|5TEg0N`Bf<4)d00+##jg`-zjk2+3CLtmh&@;h4#C}>C@7oEqL|xrLL~OvlIpRP zYy#{0I3O=KHh-cZn@O|IR?+5=Y{0lKlA!JkutNTp$^dEk6{I^yh`$%B=lz!aDWK>9 zA-CjwX21Zw2T89tNkb{AB|DM>tRczwcCgT+^i*U_C2R}73S=Li5t4iXQV>RT;LwgF z&-Io%*oXz~1V_iCo#1E>0m>+2tnUWOU-2?hxsj#J4MNi8{M(s#4lj|4zc2d{SUSEW z!bK0@ay~gegL2+=gE}{OU>(WL*f=}D_V)VOEK9I6`Xt}MnjoV_#&$F@IHct(vqJFt z3QRPpSN#w{=MaX$SOZIFNVa1}4*?0lXcEDw*s+ZLAxRtHzV5Z6)y%4$-D^R#QBd8u zmYk4%UuhKb28!OLfhK?xq=NRw*9JNMFOtI$RZ=kNU+t{a^AK+G1Ppq$2=yjp7%fJf zPPZO9a9nB^wDk7c@$eT}K&m&CjJ~{+3HFr-81_cL?4H}#fWzp!p(W$|XD8ocM z2B#?Owz=bnjvu;B%|BSVhds&;#hi2eZLqeJ?EK6aOnSc9H&)+CF5oXOM5O@cphObZ z_of5{36oAV@Plfes}FtK9M9dx&QuU8XU6*A_?I~G0zxI9q>zA66dMNI$X@idS?7is zstNt|Tm{808KsgdtSD>1N7r|=n*u@}LTeK?6~;hp4eC%D0@tMt`~{f55E%&SuD>6C z9j3iOUT!8HBvw(9f+!K?n~+4jAV@@tkR+mf0C4_(!H<33*FS*-;r{%7{r=h6{d&?h z4s*r^bI{LvKH}O0*B#s5F}Bvv=GbJ?-<|Cyx+gFf07F2$zaL>`Py|>-RZ$cGMPaRn zlCx3E1yatry=W*e*BA@yHgp4V&>fk;A}*ebuvQt80#->AY{-Cm4$?cv{tXCZd|xw) zjlOjxZUe={kjIAd&0v>?OcU8OgbJBnC#UFINL*i{Hzy?lJf4D;Q^>E?J(j*=JFbaA z3p)la>=^7K7DK+}m;pJF@jqV@d=)-Xlkbc{kucP?hsZ?hc=5!~4+wO>?Rm z(@>6TcoC->@E`#Ll6}%ogHUJ*o=0B$g4LbgPO86Y{;a=e%FV2WivWl;kMmPYyn(Ez8 z-~L^x3${)*;!z_WGvILw55~a<8-jQ^hzH=m#Q+`-;C}R}9}oNS7>(Z%zyq)lh{|YX z1Aa3;7Jxn9R6zL-zzQz#9mHb*j<1CcwByx)##z{P_Cs=Y8c|4QCFYE+2D_{+F zgiE?EVgcMhp$loih3aDnwRe+%4Mm}?s5e1w%Kk9hy3B$*k35bOB(Zc=rgO%<-nc_A zTY6qb;Yzd5<_VcqvLzY$S3+$LxNKfvfd7L`rPeC`_CH`PVVP2|Cbwx#DiZJm0iINE zIkj5iSFkr3q0}I}ES(}xplIQOfEO2-a|eW}3s1OkI||d-@uk2v5V7lEZs!zOyry*>I4s}KXb>fhu_z4EOWtuBZs{Nqa> zHke^wJwm22Y8CLarDOP)fH^BK!@|SvKv2&x4g;}25P>DS<$A{G*V}DQ!&{Fl3@(ho zhKX+yCCY`RfW7(O&|0Lh_AKICFJLg=brIiQ^3ajfe!t6l(x1k&=~9|Vr`4|0@rAC( z)JMr9V)Z6iLx?w`E(y)4P7#0PGzU&jTTgOW+K~QTn$(iu{J85h7hh0!J;tFi#3D{& zh2Tb)rr^5Ofg4VP=HkFa$>j|=BeOlNqn*C^C^xiO=WB~b`cht{&ZO_%yJ2{?;QZKh zyfEWFs;Rw^u`nua<#a1CaW>zHe0-QPv=&QIuk`EaD1iB}S#yw5=Xsk|_mR5KxapH>G`!ALg+YukgTrRP$S%;f&z$Z&^0 z(fRds%GW*w>u`ga+bIW@#iqrcdyz#jV_I!J;|YG6ULeo5#y_h#3QJ1Cg1YqvdnLwW zJ;QnE;HNoyp_M$#wJPGD$fE1 zQJY2%EMc`mp^g^=mD=b?av-WvD1hbAt~2S>_Q2yGpExoamTQbgwce!HSWIeJz_#n= zT{n3`DkI!k$AVeiB{u>&)*;jvKd*9hJcG}G#V3V7R5BQS2OTOh{v@-I|2u6Htrvv4 z^%6GWK}`Hfj#<#=|Bll(6SPn+T}0vy6(s{ie3v6&WN3Nj=Dxw33QqsP&SGvluAmV{ z+q-&Z~|k&H(1G^Lc0K$25So6>22`%oxc?g%71 zU>vIg=6ne7djv~kCs3|O8fbeDTyPnUuIM7Ztz^So=2LpTDt*!qOMclCkNOu>r|n0j z{&5RpGZe`thcNKz&8IkUjw}t>T!yG1g^7 z(5MbZ9CDhMPMQ*fxo9yTP^*>tU^3U`KYcnja$vX&6ubvy8;3*fVKX7aoQ~Lr7DhvB z%}%#NuT@cxo-Qwpx5UeHoyPL0E#B^hGCfRu2Y*`b#yYXB$iHSXVR~i}pD7tzqCw^3 z*+aoI%$b(M?j!oc$S&iB^!+#TSA?{0OIGRb8CcDs%DT^oS!*{- zXCtERDneb__ zq;14EUCt%JBjVbyh;KTtz{a33b77nDt)+NGcB*hVK6R>OowO2G_9UHFkez-luGRWW zCp#DX+wg5COMcuBi)t%1tp5(In4IMo1R8-6i5F-2f>@mRg`c8ElBg){D?%NETtRk< z0~fGPo#HU70bD|>WlwVGDlem}be2wX@H&8`{J4&6x{w_yLSn5s7@{ydJDV)jtM*(w zleu$MA~X0?tWIQ>%f)xZKAmdRq!09O?eKM*)Viquv2?B79jYE4Wp5eqw#MB4kdtu) z`?s~ZGuBHQ&DVRnTnU%1r`?@&>CzpU2SWDI;bc#Umi@%Rn3MK2n|JE8YMa4iC**`R z+8vA!wR@Oohd(~x)n%NaUK>+LX4p2DoU;Ezw#(>=S+ea0Pk3p+*GtG;F(%}v?S9m0 zkoXR9H&~HGxqL2ef*5pT8bHo8<~GJ{`g6&J;6d9F>WGx^T4-)$1dd4R&vEr*q%7Cw zRS2v;(Q9Y95_bb-!eRysPFHt`O;Ez>BbQd8^!u_sQ+bB?Wu02P*-9q0bXt1fy#BPr z!~L5IKvLZd_>`djiZWbF0`)TZk1^N>bsH)};=JH6%%gezywP(CCZ0MkagGxD3QWiO zJfsWrs(bHh%BcH)6z#N1cWiailrES}2ZHHrpmEQHU9OZ91bDjK;`Jt4d|r%r`$zbn za4opUAdse`qK$(8_pFK@lLN? zq0pKQZW~FFsRGfyYBmBj-3+Ly9or7)GN8e7_#?329soE4CUy~MiE4ZicHM&+Zu9Pg zMv1OOvJ(34p}f`RBbsvH>Z%R7203*#a^MtZh9PcNnA{BGHmax}tfZ+6GPTKx(h*ep zFMda(Y$C4I(!Z`jSizU%YB>pKthAV(TzcI^3p2)k4`$qyIlS$H+HerfO3EBQD9m6@ zD*FA(`)b@rg!Ck)zQgi2U}A`x+B^J1 zaXIZYTV1pw-w_)K-TTrSY(CB0OC%L90n)0)*0gcA&p+q|l z5o!ig?d%R!;t~)Xp@1X5tF3oBw@jK<;gn9Tni84}kYpQy&h-T_8#BFbeZh^1kTgX2R%}=LdwS$$R!&9w^(Sy}^rNirPue7$5+dXseZaMr-;&b3`p_Q{+ z@J?pc5d2nT7+#(4%UgTuCI%! zuW*g;Zy=XQAUL6IJpO%P-cU*n5a2Y>Czxj5vbRJ-W_^HB0Db%iM!Q}?$tjIJ?pgZE za*C_?;x?sBDc9S;ECz{h;yjo|QK)XY9ve$Pl4nMbLk%{}jCmp8pDMRF}CIiaz7r1Mb@ooiH|L}@%gUKlCnQ4z;N zL15JSZg%agolaoT%a+GVMY|6`gbx?DcldkLKCPUj6f(6Z-Wf^txAa$w34dWK?`?}Y zH5B-Uk~86qFAtROkzxyZXL2xQ*U+@qX4RRsl)*#?WA1>>7B6+g`jU)Ft5bt-j9N-( z&?TJSke!L3uJR!OuP3N4V0pnRcnS;oVi4;FGp+F*j-7F6&X^A;&ng5iy^6MGUwPx3 zKSWlp)pyt&JHt85C9~!XXFjY*o)wK;6hfD3njr&crT)LnMu6rn{0x6Wu4cRede`Q0 zjYgv#lZ)2hBjBCp5r2y_DwoMAf;2F8ukGPkJ@+xQ z%zI4S?FgA{Ix4%bt#>NN$brUaaTw%Xg#eq7gl*lN%_HH7*W?1r%9p-Xsb*3*C%p%A z@)6$!_KgLLi9Oj&0igOlc)=V{2Ef|-zLG}a4+M11dEF6gURWe>N5*M~c5A&STm5@s zi4aSX0QG|uy{o`BU+!Ebd=?k2BxO&NYD>`V4q4UYGZdvVxGjv^Bqtvw$Oj3f!9`hs zrlF;EOL`^TMXl5*@&C{owMvRWv)O4j<6lrHi&M^GaQ%a@UwunD; zF~Im$jAapjq@-0d?s=<$#Y-XSh}%bUyz{Hbm_%3gPyimi0Jy2wVuwyt`^Hhi2+ zw%9y0E*tx)0@r(;cA#^~P7xm?FS3Kfs>TOApfk_G$(H3ymJF&N~f8 zHT|1EqZXn{+M-i1R=b*}4H~@Wbm_r+lg(jvTb3?Rz-$I~Ge%w}K2Lcu4bb21*r2dp zYl#|W!sJBlJZ4ob;v1f#Njr-bf1XFZ=1|kr^HvgmbCILTk{w1|ozLg%ofg;HP=(|D z@y^a@4A`RhZt1_b{y%YF0_H|_rCYZ)NmY_+kyI+}Yj;cCEvXmvzNy>ocH3?*?cMG6 zigybeV`K1wjj^3TNCpC!Y?Ch}%o`F281Eg(f&&RJ5c2}VlH@@)GD#*AW|EH(2jW)0 zbE`_ddBL8^e9wzYbyZb5y7!#(|K~2}uAJ!QO#h>XcKRaHYFfVYbxA><%V{>hxrj$ ze^lqXSniz!3v%C*vxy-0y)F_Y=c8*UOD=)rAr}d<^B_B)i>{p{yT;^QlNh5L%U%zn zBTuZv9qU@%-n}{(1PUcNRXc-_9Ic6VOdEcWIU(7sV&~eavC^J3ZJHMYTaPp(m05)| zgkIy?3RIr35{cq&^4m|b77Ax${@Hmwd^%;Ja$0s}@6XOpYHNi0iwisp$LRCMaN-(?WAX~y~49+RyH-3S2Q(N6i$QgRwS{ufX*V~aNz;8W8?{-vsHS1 z^Jp`iaOgLu2u2a-5FO&n@O-VC>J+2oL_8VRE4~ch;4V5$6NU%yqzx}oRwd^125pF0 zO&`^Q#ypU&diOCu|seOwJB8umT{C#xB&iQ>iW|f&7Aw~5Ij5FC>TGEtoGJ?;o zh8*T$h3RQpJF}v6+WH)4H`7?)aD75i5{+R_;27F$FKi%4#Etv~y~V76%1RO?+Ppia z#5YUCslndH>0Qq-B{}UJce}j(@_6B>($R&C6U9Z}f*9ZB^2;U(nO!lzFXl4aEuKUu zlvFJiH5m#eJQj3IaWw(;v{kk;EI{esnj#fGp7&KmA}J5gds0{@-yL}u9ivxj5;p2} ztdMJoFySJb&hTP6$h(OEVa4Z*wR;8^=6rb1SuZZ1&_$8GlF&y@g3qP+L>5V`BkuP_ z9VUxKi3j|pZi~fT>JP*f3#!AL!+_D4$Puf^F$^zQFNOnUD$lEBfk48;ah?R|V|n3c zXb15N!bb!&9>cr+g!mfH>u{3K!FyGF&3oP$Ak-BPkA9AdvIF?ObT?yjcpQ?OL-Y|| zje9+DH-B#^n@)LN#sE#3tY+l6!xzT=6k$B_QTRFf6m=9L(u`hD$K%dt$T<-65#-*} zT&SXo5s1ur5JRgcoWJojF3btoZ{zaIXr6R=0Y8OXGn~M!nF!<7WNmKgF2*K%WKG~h zR(IT^g1}TbT!~w>G8|3eV`_Mo_7i?+=1eqRK!T*vp8&t%nUM>|Zzv;b^nH+>L*(AG zTrlS8V+1gx^Bw24NievXaam5#YzK<3ApL|kzC`ZH=az0gROJW0QP9nXK3;^FyfSfVNPMbd< zvpD9Pqiu@}9t1!CNa0cR9&-;ch8jI9427rYP4v_&hv6Zl;1 z(B{pt;AmwxV1dS~wJoQBnCgO{|6I9z2^aLR5)M!)qp_SaKZhgbFn0L%tg ztXM&lqTlWEOJ;JzEu?4r+dqC~J!57`hL@}_qDS9+13mf!i^zerEPcK(2P5ln>I76MfhRWp=?$F=9*1+iDU0>#ylj1*>zmOxowfy4+2i1; z%C3~6rn|~XljLheK>n)!&z3sUH5cV$;4$%9A3On{y- zy|<61gn%1Db~9Ptl~&O&2TvaRItT;R2QvN>T6FvvTJng+&M_1X;y(V=DX_33BQ$8_ z@4&+L6U*Uz51jv2J3pXV+&$EK)WqBZ7NJ``BNnZm$%zxJUdP;GA0djG1XY$jc9WZP zMcit{WkJ-(ija!_kG6E&g0r8I_&dnYYu_=7@xIb&_=`HuYmSuh<+O8*@#kwU|9uln z6c>4j72UF|3ap!RVgZ~MRQULWvZ~U_65)4+>WO8dh-F+k@-AIR*J_@>SJyNr*@OF2 z;gusiNI4-4#)gn`oLM=cQ&n4Fs+`ITgLr|dav~3(U+V%>x~_HaGyCs6yQ={o4-V~W zI1%r=ZT_qsa}x2sTj$T(IVV9nZhYah1M?nu;g&o;-v7dZ#h4#x*@ zKhwyEBugj2rdu_y=H`b;?@2IP5clf!Q%g?I+2$@x%U`f|z4yG^3Luxo79o+LMEb#_L(d!}}~Ex$0D9?5GDVDJ+_bypi}BQq7o z8oev!e8IIhHixQMa=H41xR%=8a`R)`rtVnWXf=UvVl6D6owsdj*A3m#%K5wd_E-fA z&6oxLrmjuX%e-}S>sr>#sNq4-Q)vZu;unn(?i%vq&Ej4Vt0%7&2pw78sGMK33e zWSTh56R0C5gV?Ih>KBUm$}@T6Qq{DWe`TDJR47&*wEs|03LD8n3cWrpTJi?o8l8b)`VCMpw=?ATi&Uot zlM=IFx%kN#RdTVQuP`L2&2$(nFt2M^1A6mxq9##e^$n5JP7v1c5F$=CH#7A^sO3cE zfHJ03#`K(VUG~SD@ztmEaCs%Z{#3qlfKkRPQE^UA$>rDTjn28lV-^u(jX=a0{HHcg zz5R&|P3!yXoE(D}+m&>!o6)glPAWR{wnd>#S=`}QLjf{qvGa`6QD}|y#uN>UW2`H%;$Y-X5eF+FL@3;jr1^cf=Egqcl~&`Y!DEdq>`-UYP9n zr)qwGs^<6Iy5DzS*6+KEe&2mvexG`wI{(D}gI`;lth(`u{datAUGgclZBze@jhz9t zRXYYrIdAy=8^4eJ{{P;;*~$$%l;8s zrCA>>#AvbQOeO|@iMkvBS z+wA$JvvZ}hXP4$EJJ{`JK!g^lMN;ZDM3_FmawHsPrVlFDj0oD@)9ZCam>;ej$!iao zXv|kag!=y?Al%=+^RX?R+m|#8W|p$sEOqm@b$6}pj#kXyJ!>!2mx<-=mhBoGWc%xy zSNGL$CLSmTW3o3d*fC|`u4MoR11(dw%}pI%a^HpqS1>5pAx?|?LZzW-`@-7#rDI?a z%`I(6_ST1@00x3jk=(M?9*_IRz`&I4--3NXc!Z;VWuU=|F*I-+Xn@`aG~go3%6w^T z`84+N00y;}1q1Cm5np&ZuU`pRPf-o-*0wAw4Gyze+Xd`i`OQjcWGxh6^c}a zg!@IM@GvU0qVG+@f}qI^suj*}5B9_T#j zU&n03@xb@-d|RxnC#*Oe=!9?pe}cn-?_VJrD9)uqZ*f3R+##3w*P_b`l#Vlhz&qSN zSq(`hRqxjarCW87BW(e<^AGbN=(I8&*uO7J$WD zdA_`Bd0X?+)*vvlo|`cppgEg4pIzJ$b(D8yYL`q+;S>qDLd6EC(Al^4Cxdl;sn%6p zaa7*BYhFrpd-1|@XV?SA>&sf=jdsLBBIL zWlej{!YL_^V#>Rgf>oD}T%?ZBad2x@2H&rW2t#P(R2jn%nIZJGoS>BXsxHu}h$wQA zb=*d6Qcgy0!d`xYi_eMR->WX<$6cxxuLU<>oHu-RA0H$&Cx1j1zG!lW6uc6#Pzj`h z!E6ZK%{oIB!Du>Y`y!YVTlf-L_$=CtS|ZV37KZ_T$%p|}_N#6?+0WZK&F+S8HHjW_ z?(i?Lr(ZqtpOgxozDwV656{{8=TT4Jtb2M02gRJVvi)B{DJs{hi8)Q+IrRQPrX;DF}Krf5DYC&8_WPl?#3HW8Oq8 zB)XkmFZu&cu0dO@mcn+M+Z&Jv@4KN6En0kJFvCkuj+eX+(QP+LiWF{~lUg-EF_aoY z-|+j)8vS%w3V%QpLKSmv0-cyU@*mV3@J6_Is=YYAQxBd#OuBLwtM7uezT~fyoP5qI z`7Y$8^-RfMFXP|oEBg02<%17yp1O5GTd9;>_TZL{pB_j);jQnl@0gpBeRcf}9sOyE zl=r@P-<(Ltiro(^+V_L|=FGU~#ZT;b_=a?Q{^(*jrrPpHpZ)vYZ*28N2M2)u7CN#{{2t${xXF5rREO>li4S2;gctw_a#ex}H^T>x({?d3I6&cz; zY4)4GKv!Iw{ieZwEB+hyt8=uxLpW%0MDVz$snEfTcvXdkMf+GeSQ)~(NDtavg(0%= zC|ZWfBav53`aZ{|R~W&sIs>X=CD-thuF%7q!sN{1*D?PG%T0~9+!nCh@@#n)TW+In zxy_p8rrX~Erj=f+zW-5{n{L)EH`@MAUb}@+-@j(dy9 zn8N!=M_ZS5HZSjr2fNnyhN_b>Y`iLo^Mz{3R||vQ?!=1wR#u?}i;gVI*qu&`Rq{Fo z#b$DUTTIik!dCD4e z%UXvm_(_D58x{L&p=R5Oy+w|;Y>cDbah8`Fn{=9%)@a&%Ow$s_*#+Zi+T>{btbP+F zYiWb5&DY3U0?68e31sbZp}FH4x@~c6-dOCm{cy>q2Fc&hpKV^%o8jO$GbC$~nip+t zU-7BsX=U2s8_$y&9G=gR{SJ#s3@Xl`+igSK;QhC)si>IM9F3MigdT9&-I84_iF@k? z_e^cyci)rS->}F=K0RtT)Y7;ZJ$ngj8yFX(^IDAl9%f(jA;RVjwY=6Co!4XZ_cZ!8 zAIIqYsN(*;8Qkus?T>HoylHWhWM(LvozKqQ+EeVZ-Cc~)w~cn$uAWhAGZ>tsZt=Fx zWp|Ht*`m$;pV-ji42JDCXHbbjkUpu$Rxm|#OB!&GZ8RCd6H{$&S&$=fUuMD1X>FVO zn|P9`S)ljWen``dQ$v9DV+dd?BEa8HDq4IF6>WI-dECM)g1|{VM(1;Ue%#fU!+~*m zCa&0TOFQKk%}y;=HxK`2wBPnc#u-TmW7Q%1iw+0ww_S!FMF$h1!q3460uWfuD8h;X zw~By{UMS>sBX<&#lBpyMh8)Wcy0XM zGbu%FNijuj3TL4#5y)AqQfOTAS)9q)iL-1t!#LlAir+m$rZ5@QlcI%@eR`OAB253f)Lo=FsA#>wX2lqU>zM?As z)E#@__>|pO(K@SY;pR3a*txE^aba6RwUD1U`j_LY7k}--!w+82j$dE>`CSVeJaa$! z&HSfdx}!NhWyQ@$h+@AqpjsMPwN{A7gD4(AaX*UrP~3~+9)wdlxKUDT9XSjYTcz!K zgBzp@5xDY+q>+a%X;gXA$ZnD}syt~VHAxNuX4-=)zDecrD=*=M!-AHWeP>qa(b7#h@qUO5pYcQZ};LZb)!dJ!}AxlHnAn^ zQAH3X1E@5Ja=7x{xbkyI!PcN?lT{R4nF^@$DDdko()2WWfZ+8iJV+Ol*@i%t(dw(UGwdv$t{ zh??b~OHf3+D;`rdda(E2V>fH`K;!W5QukwifTro5djKlhk1KirRhywItFhau)@r*N z*LL*~S(oE5ftam2(5xKJ2U7}{l;V6aqnyGl7W3C&)$N!BWTHKX-8U+W)_Bdc zktwTDsis5>f+C*0CO$(-L>WQro|Fav!)8xov*+Mr zny$)Rop50c!%ARe39YD+@cv_P9JBmMfBwF-jQSTmgyPgwSq}f+D%u#lmIJ-YID(bI zNOe%WUvd?`tkbfaBBg~t7E?_jkrjig1NY)mGM*^R05`k%{TTUg!_E3A%DdD^QmWam)c4vH|18#@W5uD1Ll#e$5IZs5vPPM09LJhU#%^$@MKYAReUbvod9Q5$U zuWW0UJgVI)d1VO?aM8iu8_Yu_~7QIx(!EH4jkRw zT)*Myy7}9t1j>3hcEZtL+PhI($2d}jZXu@^=a+qhh@dA=X`K{9$Z^tt8?)D#U#53d z81u^5XMg9 zdas05x3+})$9ede%08Ee3)JEc;&|QA#Id3)P76@T4OV-hoR@fpGTXS%)wD&qTuVty zDr}}LEXB&@Exn13mF*#0dhztlXtq_jHxQ()iX zaO3P$Z0f>|-RrarGo7F{OW_yJE{+eS(5pFH&-8dtW4xy)-bmR!L+HJnm$1($&ne#C z@?$>={vt>QgG|-A&fUs)4TaKNK}FML#)o_}g5}5ZL{JQp3I(@yR-Mat?q-zljw+mC z_2YIOV#no@m;}Q0<9hl>5g70HNs&t{=IrRn^fiQWZvkgz!!=Wqee=}n-l|?aE1x!T zrm6Fnw6?`Nsv|&pNs6&nw)B>^FK-LXo|TxI^}8CEw1%ycWa0(4toUW8)Y=fpghkd4 zJj`ijyIRuq4!1)M*kqf<>UP@w*=ZHMYekX@ROi3~OGc{5(`5IgUS#xmu@B)++>5NH z&l%Wr8@Kmry~wJVK9?VN=_HuCwvm3SmOO2>?J|p+5wL|P0BOJqOe_jO%f>zagvYvz zw-Z4^B*jZ z{-9TK0%4DS8_)Q9Gj*$aZcIfcEzfo|N573{dZp^$%%^T;)N|uiqN3{hM)Hjn_~e4r z{2e{9&bm@7O;b3dg~^lb$dq-aRcFPt+S067790xN0Z2{TZH52qNUJ>?r$(!DYo^4^ zc8TMF#M>M;lOWrLXni7F6|$RU1uX$bwjaew5kqCv9l;z7k7NO`_RGt?I0P6>CT=H4&V9VE}WheOpfe0aPTnLO5@0%$aUmH zV`!C=okWlmJ;-xRI1q}V*fHi#(3|b>4`t51cFsVnV|n2K6FZiN53hCh1Gz5Rv!!?X z#;#DLd&~4WTXNn{ijn$~ST-U$;CCcyLpC&R*8Zh6>BYCtoxX1%Tfc12^v1=_0e|EC z#_nZxu3*c2sL|??578m=en6|nB3d2GaT;7*^dDdjPQWS%a{#O^=Cu#5Ium*nsScSX zp9?2K#7IRWFv4eOi_ImvJOU%(#0ex`A^g|bCd%TJpq!((A`&4`0E|?v1VMVCKI@4E zMWlM|3`VLHhAKKIT0}Q;A4?ptg|aAnjJgBYZH-pB<5x8UW*y7JMO5}!9(@&=wiQc@GN)u*F%WnSPs48_>X>N;akvpy*~ySt-yR5q@hw@#!LFoy^&KXT^J))(#Y4JdfoPJ?$66A?Ha`>Nx@yBR^m2F zoa8~Wjd4PWYLwK#H4X-poA%%m0*%ZZd5hZ0)Dftn1DDttc=CXvy{p1 z(yTz)kGn?PHb8TODHrw5|cIUpl$-iV!_0PC@*X&(g zd-nJ2ui3n{eyew2MR0{YZ;`TyY;I@Ux$?9Gnk{w(j3$DqX)OT1sTj zXUiZFO}mIS;=MdvO7IX!P3Q zC#$kGHE~p(%~qoq@P~y#{CWXj{UClvJye4oSaogT&Dz@PpTi0I47^!{pSBlX(6?$b zb;G^z?r2q2mJAyg6-@BvclfrSWUI1icmvkrC(o0wG5MyX9C~UaW48Z=V;$0TZ`rGc(<{wUl1-;+LU&zv)7=KKEh%{Oy&(1^WHdX{MrzMX`zmEyf^4ch*??R78JaoKg*brl73 zrsM3*M=RzObORvzWlX5%4Bh57LtmF)_vJcHOG}#y<^s69s>M4(YciEgrgToLHA?1e$Jv_>8_BLg!p+E> z;R0cz(Msn6P{t;i3y7s`Yu2Rf|C+S*QF4%Gohsw}o9`R6TEqK!Wu&yf5Rgi$B>Pm}Zw#zlAb`vKE}HXSRj zE3VVpkE2^!wTxEZpl`6QJltZJR$wQx3LB=yzby}-(XaeCLzauAc*V-Y0pWsUQfqwM zwD?!yCH9#mH#*pd$i^OcVI4U(v7dzFPQRgKb*U<7;l&mZLK%Ijh>PQRkP{ z<~Da*OB=F_yPJzk+O{-iFRLzAs}vTERh_xIs&SdMtUjlBZBq$%bmit%`Pl}A&R{XN z8|89?Ue&zRUY2Lq7)zI}Yh3DX%u(nwR4Pkmhfb=_T~=x@&Ch~!jcb9O1lSD_c25c{ zA7{Ty`syjd(hldJlD-1-M-$z7PH6|vIg-igumf>XaW8%BU_XG;$){`!_Btv{+Uh8= z)6wJdf(mP%NzJ{jkZB6}Oq*WGJ^dIb*W0bxxoWALeKkXa-xgvY$+T%WoVsu?yH2H3 zaGb_QzA@Pi{xbn%qJUXX-$~YGnLwC4MXqkn0?OR0&6|@%;v2v>oT4A&!Fwp=T6A*( zT;@KlByTPti6m_RPXH(0;VO9BKDN^UzY&iy*q;38WEv&+rW3%O} zkrb&|CES=<@{B5WXza)A-*g5gi==Yd(Zl!?=A6Q)Wq&PKN?2B+l6`LeCk!V>Z6=SY zgf-<}vPYYpDQ$Qd4Kr%E5kCNH9|weO9iz6F&i%9=)z>RZ=JZ(ehB-wf@rD|HKkdxV z&OnedlFiLb_WIJf08@`F99*I=nG4{Hjwu=-az_@unMQVT6C+j9O$JBqN6d8h;CPb# zaz;^oOPAw0eU@E!ynEX!US}`Q;#ZX09@1tziiWrI<#uhgskpIx;`+SG!VK`$jy4}vX3c3a0sEXRBD_ZprsMxoqRoQXjO~=!=K``w>V1E*edNZ!$VjYtbLrS8 zec#Y!XY1}A`}mH!+q0WCb!^@09B$5&jE{ZRR}X6c(3Y`m^tLOPd%Mdoyj{FsDvRcR ziZ`}iG~Tw6FLS&gnEC@|2^7|9iojkC*n6?@M>bYW+0C@zBD?7(zI}&1MYoUF%jch$ z8L~4>d3YClHo?pn4E(#=DXNodT618&fjG zvEpgs47pGK!Qv7&p-5sDEiFSAK`7oR<1OYO+(G+VyFI(uB%Oa(O5gsKEA(*NoNbW4 zEz@M?Sgm%AM4`Tb@IDkTOBMLzHZtU$|Dxzq?Avjg_oE(s0Pk(7FlgtWn7>7@VTADl z>l4OK-(@^3N7zgQV*%ySoR$m_Fzpnv3=SUCA{Y*I6kvOd3702hK-l%gip)~+HvM*e zwy3uB7Z;-7!$!f!Uli0MdXRMy(@fuYKU|fCow=x1MSQww86JSuRyCJbj#GKj#9q)= z%>HL*>J4Wo{$&>{X%ma4ctw2Q#iFFWmT4riW;EdLpxY9^BsXN4GqQE^KOrRyNP|VE zM885vZm^m0K9YGEomM`}AbXm7UT!jHnbxW@G)ne&U>v*vdh3OUIQ%eEB9lP+vH0dFT`1g13`FLinySc?(Z_cRgZ)v%r-YoHM|IE&&Q~zh% z9q{|{ma%n9s@D6KuNudH$H;s@R;x@7Q$gRgJX|cp{$pfvVRlq8#^O1d41$XpubMQ; z>-IC^x?KkIK9n&-1QJW7tlMz}H7@8KN%A~#eM#4dYe=EPd#dZ@cH_6QYn@#+S-0m_ zR$2ObOB)JJk_)T7uCnu}99tc9Y};1Ht{5HLPP${;w$ZU|yJOqv*w#(@d7pF7H|`nV{risE zHTGO{P0wHL+GA9$y}kjg5hviG!!+;nP>UYQUaU-~D-r5R4P^@G%xK(R!7AF-+XSR2+0+TVFm9f!qMm_XBq>B^94Nyf z@@WjKZ8oM-8rk&J4oz9=1($ybTJ+m4HkdwnKq3YfX=>HJ&@wKKi>%r(O1e2cvxjiS zWfF>90;`@>|M>Ivyry0P)+uHRXVva|<(aM5_u*wZc2{M%&1+hz1^W7xW4Gg}nQcaC zj!UBVs94L%xONu@TJ5|PIm}iWWU>jPArrt-oEWI9*_7Xj1X-8((m^t7g0rQ^AE6{G z_k}a+RRL8`&x12yr=bL|h@~w@77nS~uVUCQv{TiE4PJb8<|3Q0>$q8n^<|5<0a~i- zn{*{BO@$7}@MqgC5i@EFdqpu?gwS2;%dVC4sbj^(L^$&K9R(Q(D+_&yG!GTRUOy0Jkl5h(p{e! zWuOhzABU>Up;3<6XVkP6m##J&$aos}CXTO6{#c^W{mpi8fR@tHVrii2a5wT}pN6?i zmDRrXyG~P0V@;XO?}|InY$Hl4UAN7SvLG`~g@tVb$)Bh_T7QP;!@WBgI;#q7-Smp& z)YT}grlgqr>D&{edwmM*N%3edDSWcT`|(?ozJ{dn(?7^A`5Jw_T5n~OG}&{R=ho|h|=qwZb~EjSBpS2f|BkDt9|->+#v z)6fX3$4s#oF$O3H()OO79R03ZVWKhm4ST8_kdjCfHf&wrwdPS^y{b6hQKr@{34^7% zsCq4j#!YeA`_j$aFLp}C8YQC&(WDusPTM#Xwc}YL;X35abV&^Hq@^WTnA22fE20U^ zoxC^xd#rvUOYRs=GG95KuDHb3qjfSc<3{Lf z9nPg?k|B240~NwT*Y@dd^*5P_y8Kv2$&lG}xK7dJEQKz1vKU!U7~OGc9?(A}SgG0? zYirT;ibH!;Mt~n~W6AQvV^>X?lPdZg^Pv?P6Ru$^OI&>V9|RAJyAc0SN+<5m`y=Y0kt?tjk-p?Gx&q=V#h zoJ=xex3RHVSvG8Bw>dUlnK#4_!XAhvjd)a7yu6AX8E|JUJ$)ZaxMfY_XIkt;d|zv9 zb~4e>c4=%ZUWj^+1o~Z?45`L>;K!Kdp=Q84{qX4PVjg?kv?Y2~*d5 z)tj`Wxo2$i=d_`$f9iBuC(X0ax+I$}33D;T@w$NJ-rKGE!6yjsrH&*dG45j1^KB2a zV^<|2FAN>^?5BRLWxTygA1R3Kpk{O7igzs^S!$L@+u6KMQtgodPgYf0QDER|@Eq%6 zW6^4_U{ozstiq45*V>6c9)r?s(;o&c%No5qmz7%Aufc#f;3?C?H_QUk zVm*O|Ks3E(TBURG)4AeqSNP7=*4uc~rS)BuyYQek0?zdvdwPWg;!vZiW(qg4xO=}B z7*j|ZIa78!h=m(A zBZaHz`Pbc`u>NSPCdge+ngM&Fm9Il!F_006sVaV}(a~@&105usxJe7Kqz=JDzm-PW z6{_ph=fCrj4{^$u#gbr3#GvFZ;`om0NY-@NY*0xy&<&}jT94usq zuAq>SQm50f4*3l`%p^xIuDdzt2kzG{Yz@);3c9z|y}&OWI1jgmnZ$3Y1~428tdJTR z4UBt-TT-jOOx3%+KuJ?)Dny7OdPq7l# zu+i}vd8)G<)4XGm>ui`QFo7@HaWZ!0DHcDq)?vJ{F)+9D&S}R(7X^4R-F^(wk$E}j zJBHo0;@{c$_(RV4Nk-I}`RWfIWss{b+s$X6d-6hGqi*`Zt8Im^CGh2N^#St%f!kMy zbuSiD4~_U#m4O?}xa;js_a|ou-#nY28wo1UJT2}Y*A9p+g~9bh-HESWhc1gGqpR!k zNoma_q}1Q|;|KGi1}lJ?EvVv#P8DUPd8-S}CT?eNV#WxfPH@-U&ciwXN>0Zn*5&W% zXomhJ{?VSkl8x13)=6_YI7%tSZzg+Y>USE`T4?h)t*}7UDU^tjBwG9Q^50cH%)Ial z^3|&Mf8B;xv5RGmCdOHc5)-rM7-QlZz7Jp-M3ut(IvtzOq%c7CSRS27ikrmjMsg5P z=lh+gU0a+QQ@cY}ymV3M^2*#e?}d)ATrY8G0@|z`P=Ith%Lpvh{LrkCU*#?-PAqEu z>Kkp0*?h`MIL64f;stFcp@2!5H>?0__I=upb0*ygZ5n34^06&ig(VpEaEGn2oSJ!Qs0Tv>EQqkQW+@fU~OoJPACk*+@zOrAcZ*x|w>cQlNdor>*~D zrGAY68O$G9zJv*;+P{(YGT%zmDh{#;n)B|Mv`PCzGs-_;8tB`W;VOI~llFAm48~Uw zD8L%$NCASHfa|KZGX@zKkr;>c@{n^ye8CHdRWHC+Ahzurlokr{EEXAn}(pjsmC|(t9Q-Dsjz^s zpNS5Q@eKC$AdW^r${_LwZ&*O=90XUWo5!dQX}~1;>Jm~QFfAE>qlkEzz{uhIY8Q$W z9_#8MsPhma6E70)EP`r&3-uQ2Mni*xu94#J3gR!THpv7fMkY~OH%>vAFbUL%LDn!? zO<41*1u}R+S2h`m2i<}d+K6}3Gkn)Kzfz>LVAPbl4&TpLi?HXXf4sD5y5*OTZAvx8 z%Gbdk&6$42xz&cxvPqaH6XF#3%cqWN+;n7b4ljBx(|_59&y9K#*D;uYA1u$|ii9=F zjc!#h;)PI|#9Kx=Cq=yc!UIC4c!EqEh0byreb+AdJV(+J9@o)h@^!GZKt#m`l}GI6 zMYQNw^|^t&%(B}SXwos>q`(t0 z5Jo>?FRq6OMo{w;hOX`ido+!Ia7kVSPzEn-X|G8S&4@D#i7PTyJKKc)>TlXa(`U!q zL+AlYf`!$N!71$Zw~z})toxc3eGkRBBt{gPr6yjFP3Rij-c~iJ--9;mMHChp-fv~A zsX~%n+e4v;g<_1)#b?$U>C6pFn=S8{YI_xX>Bwk2hwsnHIPA4U_)R*yQKqJ;fWC@mk*Y&1qOMdCtz$jGz=*i}9;4*` zIzb3=rj)v*$3)z=G7Fx+|Hdp;Y9`T6z(AoqQ`BR?qTq2iDJaR4&a#*pDk2PTT#*(I z;ak3PKUj#9rw?=FkvcNHhcEm#j8K01(Hz1wGhQs7QQz%c4@aXdNj!ZpEFW@V;c#e= ztSkO~31p<6;0_7ilmn|^#tM4hIE>y6S+0maD}nj-{U{)b6Z?V__UI4V@utJhdK*gQ zlqYg~U}xU%hrCdh3Z7oT$~zaHw;<_MfGhZd{ePq33acM)rvQ$h;hk#=mWLyJ{`d*S4bb*P;??4iv?64q0KJ~ zE(H>|hhQOQJ$6_4Ct`MN$wW>`@!|9m ze)3n?jVYToD3Z=``;m)~eFj*MVjs3sqGthOQ`_7dUbCQmkL780F}1JKJ^5M~E*~BFgqFWYvr?elAkw>hISm$LwxJn`IIl6h~^xj zBCqXW73+@(X+u-XgI0lNH)zv;2(Izw^Of;icgE#EZ@d14N#%kj)?}`z#br4n<#cxh zefc5OEHK>>wrVCKL<_9Us?L1$ zgWm>Y{&|~n+^s@hzPx7_ z`mM;_gJ@~}T1QN<5JxlV(5s z3$Pv(_eSzR@Gef>Q}sC^1RK1pSpBDPG7ov~1kIV%a{e~gQD86Hvfk+G{!E0X@lk;V zMB4aKa~XHS?k`HVv*=p}D14qC6G$7!_fNj^I?VXDkIoyr!8VSw>?4qWb4@d9{%J*Ho5ZZ ziSI~}6@oB&VU)lDWS)rRn2y3?U~=6#kbT#?mIY6JzL}CIuuvswHea)S|VZD z0{z@u6X6ZzBw+AkEfn>pI@n~E{V?RD=Vvrsgxfv`65>wpI#M$J&2#QtyW+aNY#oSe z%z3E4V0DNZ&8m_jGcT_eFQv9Be7}W0^VXzuA4+C&@#VmPV7HnQ1y=HvYwj)(U6Lsc z7a9WO%O=NzCTk}r3wWRL1Ep;a#!nS@48IG(g#mX2&sltUKhPNjc(E7Tc~}wmiv`fN zKVi~O28>14hJk9NEyUR%ozNnEeHhl=)r&tb{H7>vMt#=o5H*jx7J}iwy-UkJw4+F* z$_VAXWwSGYcVtcSp@PX$-m6aP#VFyJKM+_QQh?|Lc}5KodD8z7uLj-@($^aE|JIDJ z?!)LKBmowcJ~ipcfOHjJFnukjwE0~Z!4V%I-QR-*F6yx;t!dnY4poR8&;-^Y6}E$L z8E40|g?~9{>pqR(Gh#rOGc_e4p z2614Xz5A1}K4MOW*vXP3jDhWO|3^5gd-pbt*Pwx+k zTOA{8!k*XW!M*Uynr^Vu`og6s0BeY(2aC&*_&j)_gAa_H3F4QFV%Q}(N37_4A$lp$ zE!EY7#lUmaOUQ+KHxukCp?v5aM0S|{MI42+fLt&RUzZpULNSJbVuu(lJdhv|S?lLh z8{OswuP zF@sHM&p){jqt^mJ7tY5&Fa2IKgnGw;(KncfS|OjBu-g(~d z`(##}5q7k8Hui!;u4rbb)Rr%Zq=DouyJhem974QQgIZd4k6Ac(7I)f&IxwP zxux?gC+mgJme<~CV+vG*P-U-6;dy8~k^Q@y8`2emF?!s`vj}g;pZZCH)K)7iY~EM? znvxep#MZMnn>t4-==T!r5BTk{I9OE+dJ`DZYooCun^92eBy(AoHul#|qSwvsbKNvg z+e`lYO+gXQX+-)rR($Qrbt(QX@qZ6BjIkL+Mg@HRV8>}hrhksN4Y%kVWPVWK%6qHP zvC)3*vWsG1h=iG}_;X;5mss%;RxB_hwfnuq1#>$W>+_HEv7O6s&Tm>9hRv(#Lb}Gb zso>wg$F;2=!{I3Cx7PJ83MokP+rT`zhHQwv*%*HgK;+N_eIJPzgyhJ!Fi$R*hV`GD zLz3oB_CTuPLjXO3ofNod&`91HRUX|z8qM-UrtglwzyjNGO2Li>sU8Zy2^ND;0xw1z ziqxb)gwM9GgKwS!)Pc(g9f|IWWqkv7gbJ8+nnZO4Iu(e@JD!xC;=3W@@_q~E3w#Sj zsDXRJDHR=5qjvSC6((QAx*=Kd&(v#GNeFP^KbR@h;NPaNOgJ(JOOXuau(%8>yCDD9+*uyw`bXopJogiId?DTH0cPKV+6 z?xV=~sXf*;46ga4$T@5+wQUFvAnhs!=HT>E&gU56-gS4g%`z_zXk9PPuFK2#NguEwZ) zz=c$svmohD-ZLDw%b@9Zz=d9*038s(1~7mh3?K_y_znc{0s|aGXC>qSg%=`eK%^&v z7S?x}5!+$`16qA%Xl$P_Y@gt4pRjDXK+^HRKf7G%J%jHvgWYxLVNG1P8ORCS7(xvO zgQn?S3JJjNGQ;3F1p~-$I?~#q}TW; zlG>U>06zMvvRMbqu?F|IzJ9Uy-6z0&4_cfI~Ru_w6u}kGi+fFQKYji`I`@zZ4bK% zJ~%)J5-{j9Gb4AEWP4{d5W)1fZ}925@{xByg&N*7Yh8yDn>TKKHBg7&d6}xfhv4iM z#y?sgywlY;Ch9%&4g$!6__TruT!;@^IP-xRM_h7|=O#EuZ)ySj9jqyV3Q&(o>~Dij zUp7(y=KN7PkH0Vj19U# zaQ*6W?27kHlK0HL_Y8B_;X>D;Y}a8WLlRLNo!rn?R=1q?y4`7q2MndckSsor^UwFU zR}(wYuj~Am1{cHwP)yKZ^5uB%7FD-ymnLFi?$*V%-IST~72=uo6O{y%P>$l_M!R40`IaL6 zYRlWUHW32i<%h;EZ%C=)izdc`zw1ABc;MphRkg?sZI;}Vz<_RWJ!eXX8eY|gwm;v; ziSA|Zd9KDw`x;I&%yX5AlRV<)M}s5 z>cOCwyuK+uAj5>_@F=Z5!$g{Zy~-lZ7@IIQ2|+3bkD!Vdw45J;UJ%JlxA@O*p^;fN zr8tX{6{>Xo!ikjt%&2!Ee0RPRF5jxt>=`0eT2fblr+ZC-&cRBJk-$uGeD`d`o+OJc zFK-e(G!q}q6vc5o%OO!t`Hr9u33-4@L%gGY84An9Y}XVIlB6Jo`AaE> z0mE678A&gPD!r?6UM034`Xx1EFPjhnV4J@r6eNC+k`^)-y<``h%|o6pzsVPA(gPD9 zSJp6p%IA#0)7<>&ozqEYy#1G8osA^bL4(b5 zv|w0hjmq+`XbO@>>Mw*A{eIZUf}~RObhHi5fwxD9arTihs`BLQcjQuTl*hl!8HX0T3 z88N!=1ub@wBwH$!#G61cQBWeBv;a&>nlZ5}cux()7e`7s0#!<1z?YO@s2U86GO>un zUqp8}LQ+%>^$Uh#EeRxYTnIx7oG?6zNAzlpNS^|e8ATlM=^8XnMVtg=Y%L_CJE92% zBR6x74eU4En?OJZhOB*Y+$4xbkMY{YVAQefO*AFMVvV#jzKr_Zuwjn0G+2dTqhMpb z@Cb0o@V68ilPEZ67miv?iZr9(AwxkzM$Hsg!H?T0Z;Y>SCI02fj{XwoDv6pk0?2Ac zGxBURurb5_9@&CUy4a?Krj!swDgwy86=?vGLt9b>pP(;l;HT6U-ws$4sw8p7lg11w zcYh@G1}CC^JeUr$Zd9URMvg1ITg%-OE6lg5i0P);C(+Rr>juKJBpxAO%X|3C&jf<# zs2I0odngbjU+wQm708OUa`B`(;CvY&)73EfnFNe>L=Z$%w74HzAok=>djRA3=PS#Q z&I$<}B13qyT2NQ z0s^Ly{0}s_5~=vE@COiOR9$W;CB6XP8q?;@SdK)nQh$=}66?bJ$UnU@bRk+u(wP<3 z`rCW;WntaXxe%MmaB6HKaB46;1#Et;+$7Bmd&XZ;^nklY2wR~z$hzAZ{vhEY<}CH= z15Nd7@nAclQ`EG8fvGTkqjk)oqXe`<;m33*%CZE)y9Mv_H^bT46tJ)u3&zlup6FN0 ze-%R|g8>yL)68oXb>b9HA*fEK2sd*R)whkv;1_h!SZp(;3Vb-O* z#1ap`RS0F*0@8PAAB-YH**U<0O-I?)1h?xbmxPeh56PWYhwt_%6<=FSk){R?J-S3O zqM}yoV<+DENwRknxIL<}gg50ep-5sLea;<$ZSdk zh%$rsOgeVs`2Z*~8G+&}$cH^u*SPRc0`}qR#het@C+FpXK z_0)%`Ev1kKb`q4v+0sFILBH)WUHVNJ=UO(by11g^9GVOgwR{}{X$C5ZodK2`6IhZY z`VrGIDQp^hoNx@DVh?QqE!0KeIwefx3DnLF^1fq7hq5Qhv9$nC!c5jcP^0(lyEJSc zgZFLsi5&zBLt11NTCl)lA?8RzYw$ChFdVeWlQO72VfIoteg|GPs%;U5xFy8HjGv@S zo|t_VL>n*T=5ZFexQ6WcAd`V>6 zyTqrvK?X?GWMo$kNE++0*~r^B#5u?vhU~B|>DlsM$HvMPd05>9OPfGt#fnvm;bev2 z4$XqgDJXhn_*S8r2@)SNNSH!o&|w(k{fF;T`E6l%b`;h~p53Ze#3U|egI@ZmFs2fv z#2C0jNcPag$s`R?{pz;Kv&2U2j!XWGLmyyNAmuqU(1*ra-TI(m4>j5nv7mtplTQVdK97)y{*$>`;NC&CpD ziJ-E}CPmtHk|9YX3@5@vtdmAp2vR~RM(}Z|b_|pqo#Rv|F$c`;PMh8qV}N!i^B!Ft z7Y_ffwC$kI?GsF3pzecl-aSu6`b~j{CvAJN4IUsB#;9lG9xp3uN}w0abqP*m3-8uf zSYOA5McZC+HlnFt36`*KQ68vz%zH`6kot#m8S_~{!FaO|-q4n_ABnw>qx%{w*-{Hv zZJ~G^2kV0MpsK2BoMAYi`$?p$_-I=Aa5M5I>$$9AKUxk!ghU~^g6UU~P`@2m_ns$tG78zlyHg#qtJ8e@tnTL)NckyCfmx#Jya|FN zIW)NX@wX{+Bu8hbXi7YMFup5(3lkBEZXm7Xo!;zf4o$JiqHQJl*wpK^0gi%Xkg60 z(gq$Dr-GYja$&01^FhvmdUb7iHPXatjJXHCk9qoKFC3(wzIzKqNoT5u0*w$>jub4u zRvZLX#N4Xv-n0N`6>a`Y43_be?}?6lRnzIKqAJfNU@V=V*g!O^&1LTR_iB{b$1{bm zd3ESqtLL1Q#S&#A(BJHum;3h&G&1O;lp5BKn(Re39?8Vn|)Z67KJf+1aa^+#yQ(#wNq+=ym z-B(r~Beamo+neyfP(4jJ;!9@rP*i@me>4z(zt=HPM}8`A*}Z?#PG4!UpxrMpC`;f% z&%!&9^LjZOD8z~?V4J>*C~I;8T?3hvx<9FV(oUX^SjUR~b+GZ?-DSFheM|qWGTMP0 z`?7u6$}{0CJGRZPvS}Nf%?(C@qUIlJ0UT#;N9jRfo_Z&-Kvu?kmg%wjnrCFVXiUaW z6MR8P3mVF`9#m=tcDk}^gXT9Pu@(VG3#_QB}CM+}8E6w^iFhW@elA ziI;2cs;NOY+~@s``hLy>K0#ZDwu8&ni>YGenDkY2GH`wUn3ZQ9Zz#(jvB|HGU&r=H znN91EIVpA{Myt|cc*OQF(FtFlWvt~Zk4C}mcFK8V4>N=hx~eDc8+omsq?u3(q|tMd z*33fxDpT_Trds0M#cbb9kF!qV#v;%O^wP;n-Kr*!-Qn})Lt^D2`!!YO@!l^dZAFg> z4yvdJP~8W8Pcx zKXr9o3rDz2HYl7bIcZD2?gs(F7SICY5G?FQTKR1Fg0-jc(Ppm$)IC&^Xh~C%bz}53 zp+RKPMBFHp(&66Zbu)F4VLyKHlSGBN=%mq18HfivTBo29xCnP=WH#E}#-x5UU-j^1 zXtWz}k&RGlmBz0IVGsAJsb$bNdGK201s}P-yQjpVq*>;7{W%2LQX+zSMqeOo;||8B z$)WTobMNV%QeFjKM>9xMbW$%G1lM&d^ML`JtL~lL5$b?ZsqEH9fv~FHe*Nl5Vpp%> zeg)xFw%N^S9Rt5^mB?kj4@|m#cjOSfl$sVxx#56Bx*U#7>uOHThtBXa`Gg9fwVQvY<4P zT0r9Dn%)@U@OzJfhjSuYN6C(g(MD1S_1C#&xYU}wqrKq(%P8;&9|_mW%P?|b`sP8yZD(qNSE=BJzf)PKQqOcHy8#8i?Pv@ujpi{AGT9X~5a7&sHdX-%u0h8& z&XJ&(E`5CKTA@8>+>N=DO}sY~Xox-z&mXT=)KY4G9*mHHxsjv+;9q>T9eu>{gPkgD zFr`%vA%SP4$L(yn3R$1&H9{vw_yr-4y+-?TUrtXgNn4C$oj&t^xBRQb;RaIU%$Nj* zd>=y@dc#nAw)IhA<-Dh0VSOxXst9xGB;a6YypgPfV!X8nd$G4XgQIv@EU)VDc(c6X ztHE=hj@;TMu0Mzo5)2pG&$<|5rUjF=ALk~reg5JfYft==qu=mz3{l*@F_O7LZ)4s~4wY(s?e2BF>YC2CFO7T=Jb{!ow8=Pl zL>FU`=3c*N)FaDY*wIvY*jT)A%}O_YrCh*Svp;l*%9+a5C>6QCMy|v;aobJbuhQ=g zJH#w6Z!_?)mi^g`_55^WR2fK93wqz=Y9jo*RL7zWyYi`cJR~c>gXTg*0_}`QniH+6 z%-nP4y5`3-EUP`%j1%QEb(W{2HuKf7LYNIJaqe?46Z&FeAf67BC6~l-TXT46^;*9; z7XMe^FdC$D;fPIu(twKL(xnv(sB$nl;f}F97a*hRsfnZE4Rhn#!S;~V!yT^dOa$0% zIK%s!mo_zZI;2QRNio{Q{IY#?y->V|zj9qd^RI*mzvg&9Zc3xN+SlMQR7vTX`dKirNF_ZYIeap*pK- zsyvm)Eir)y{muDCiI6XT9kHEIlgnsmUyg{0GZURkIrZiiHZG|%B9?m)eune@oG>Pt zdoj|N?vqHHA&2h_KI1QS5t_eO&BLqM`1!{d`pIlNhAOcB$E7Fvs|}?`RH|`gs1uAN zl`CH6pO{vzLi2TrF%vg-bL(TP-wyK#(5!}B=Z1i}YWk=g+R zc>_v#xNPv}5_r*?acfMSWXaWvlROUnyvjTBvztP{;XCpq9(QbiSv^mV{pyv0gFN(H z4dUL)qJ*ecX0g&qXZ5e6tk(=vIpNN?)z#66D5d7ZH5H4}IDl}yZI(_sdQ41si@zFT zQM6hMz+K2hbhWH2kRDz+SX|dVJC;pi%B zN-7DEUtXgZAFW??pr9LY?%Q4WiC_zFJf|ioaRp?CyE-z=yFT}R?^oSM2t>bcFT4X8 z1iyJ~^5#-@<=Na1kUS~supLuA2esiNXyL+Wv zA4FF+SiV2qK2}Oy#Jw|tH8ncGwazx@i8@|NcZrdjSqQ=e(61f6ifNq0TOhJS;u)qW zC#|nD|LJl!J}i&ep%1(*Y!I37u*PKgW^_@D9QdAv)*A`1E~zG%pbYWwqTFiV$?xIA z=ZRup5j&F#uaj6K4VPo;JZq@9z69ku7|3@KSqIIs1HdXP0xI#Z_E&ZUP~v~M52RRT zWzCjtJI}gFD!M&SvWD5vb2Jf1?KDWajPD*Sd8WK>pdsMBlPnCscq@ya$|qU>K1SOm z+=G-_ST59A>0y8V!)+ar86jUUq`#Znwc|x`dTtW!a@cEUKR+^&g9{I=%z2!YiF!zi z9Z-^nQ_Rj*%|7CUVfJjI{$PU`qQY-;z|HBS@7909TwE0()r zJd5KYuzM#ZE@8mAK*^CP3UEdYEqEU4s+vA+io<=BB9x<$=5sG`JECXSo0VP+NZm-k z8NJX;FcCOSt4-~8La%h++lfF=Dsz1>-)@+$cs81%HMwH?TDM_|e>>`?TU|0-u^qtp zGQX#&D1?YG-iG!vm|ud564!VNJx5kLrqa6fnBh`qsP+@y!O_ZKYO;G6n~(fw!BJpx zF#utuYPf%b>Kd?A(}CFVm z!rp5XA1Fu@coDd6!pAddR;gyEW1)U3qWWq9okcxUfpJH5e%!&bKgC^!TiIT;#E0|n z81QCRiyD)_GA)vAS4^LYo8p&thL*=L6B+xZ^ppCNkA)?3t`Mal#wd7P^_7tG7OKDZW9G~Gx!l7^Fz(rOz} z_`XPHX|-JcmdCQe?N$b5O7V>Mz8GN5XzOr{6p=g7t4?{0tG-M`4~HGgwXxZL)T7lr z9H#2o#Nxec=K8bwDkQ_LXmS5;v9kIrwtqoI!6o7P7p~E!KIlj6ESfh0_1ATWNk6*6 zKt(ni
    FT2^bDruR$@b=}yc^IqH@&%vRNVnwUs^=WwvPowR5p>>2ZuKA^wSIA7f zHjl>p8pd9s6Iv6@dmW{>?xt&>lss$Ax9-cO>JaA8C^FSnd9zkIMHFt?J$jIfxi;G^|`y&>LLj0Djozyl@B-RJz^}-$r?6l~#fXu>y&IxM$$SVc9 z&0`h

    bK}=*dU>$%6Ph@c=As|-3BU?j(4L>Z-qcu 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 XqT=8#yNoiq31xX$V#c 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

    W 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 J2=u$&{|!*JzQX_j literal 0 HcmV?d00001 diff --git a/SMART_BULDING_PROJECT_Capstone_undergraduate/PYSPARK-PROJECT.ipynb b/SMART_BULDING_PROJECT_Capstone_undergraduate/PYSPARK-PROJECT.ipynb new file mode 100644 index 0000000..2392fc2 --- /dev/null +++ b/SMART_BULDING_PROJECT_Capstone_undergraduate/PYSPARK-PROJECT.ipynb @@ -0,0 +1,2438 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import findspark\n", + "findspark.init(\"/opt/manual/spark\")\n", + "\n", + "import pyspark\n", + "from pyspark.sql.types import * \n", + "from pyspark.sql import SparkSession, functions as F\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import os\n", + "\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml.feature import StandardScaler\n", + "from pyspark.ml.classification import DecisionTreeClassifier\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.tuning import CrossValidatorModel, ParamGridBuilder, CrossValidator" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "spark = SparkSession.builder \\\n", + " .appName(\"Spark Task\") \\\n", + " .master(\"local[4]\") \\\n", + " .enableHiveSupport() \\\n", + " .getOrCreate()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "spark.conf.set('spark.sql.repl.eagerEval.enabled', True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "path = \"/home/train/tez/KETI\"\n", + "room_numbers = os.listdir(path)\n", + "room_numbers.remove(\"README.txt\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "hdfs_base_path = \"hdfs://localhost:9000/user/train/datasets/KETI/\"\n", + "\n", + "schema = StructType([StructField('Time',\n", + " StringType(), True),\n", + " StructField('Value',\n", + " FloatType(), True),\n", + " StructField('Room',\n", + " StringType(), True)])\n", + "\n", + "df_co2 = spark.createDataFrame(data = [],\n", + " schema = schema)\n", + "df_humidity = spark.createDataFrame(data = [],\n", + " schema = schema)\n", + "df_light = spark.createDataFrame(data = [],\n", + " schema = schema)\n", + "df_pir = spark.createDataFrame(data = [],\n", + " schema = schema)\n", + "df_temperature = spark.createDataFrame(data = [],\n", + " schema = schema)\n", + "\n", + "for number in room_numbers:\n", + " hdfs_whole_path = hdfs_base_path + number + \"/\"\n", + " \n", + " co2 = spark.read.format(\"csv\") \\\n", + " .option(\"header\", False) \\\n", + " .schema(schema) \\\n", + " .load(hdfs_whole_path + \"co2.csv\")\n", + " \n", + " df_co2 = df_co2.union(co2.withColumn(\"Room\", F.lit(number)))\n", + " \n", + " humidity = spark.read.format(\"csv\") \\\n", + " .option(\"header\", False) \\\n", + " .schema(schema) \\\n", + " .load(hdfs_whole_path + \"humidity.csv\")\n", + " \n", + " df_humidity = df_humidity.union(humidity.withColumn(\"Room\", F.lit(number)))\n", + " \n", + " light = spark.read.format(\"csv\") \\\n", + " .option(\"header\", False) \\\n", + " .schema(schema) \\\n", + " .load(hdfs_whole_path + \"light.csv\")\n", + " \n", + " df_light = df_light.union(light.withColumn(\"Room\", F.lit(number)))\n", + " \n", + " temperature = spark.read.format(\"csv\") \\\n", + " .option(\"header\", False) \\\n", + " .schema(schema) \\\n", + " .load(hdfs_whole_path + \"temperature.csv\")\n", + " \n", + " df_temperature = df_temperature.union(temperature.withColumn(\"Room\", F.lit(number)))\n", + " \n", + " pir = spark.read.format(\"csv\") \\\n", + " .option(\"header\", False) \\\n", + " .schema(schema) \\\n", + " .load(hdfs_whole_path + \"pir.csv\")\n", + " \n", + " df_pir = df_pir.union(pir.withColumn(\"Room\", F.lit(number)))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    TimeValueRoom
    1377299107488.0413
    1377299108495.0413
    1377299110487.0413
    1377299127496.0413
    1377299130495.0413
    1377299134500.0413
    1377299139495.0413
    1377299144498.0413
    1377299149496.0413
    1377299154496.0413
    1377299159496.0413
    1377299164496.0413
    1377299169491.0413
    1377299174495.0413
    1377299179496.0413
    1377299184495.0413
    1377299189504.0413
    1377299194504.0413
    1377299199501.0413
    1377299204495.0413
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----------+-----+----+\n", + "| Time|Value|Room|\n", + "+----------+-----+----+\n", + "|1377299107|488.0| 413|\n", + "|1377299108|495.0| 413|\n", + "|1377299110|487.0| 413|\n", + "|1377299127|496.0| 413|\n", + "|1377299130|495.0| 413|\n", + "|1377299134|500.0| 413|\n", + "|1377299139|495.0| 413|\n", + "|1377299144|498.0| 413|\n", + "|1377299149|496.0| 413|\n", + "|1377299154|496.0| 413|\n", + "|1377299159|496.0| 413|\n", + "|1377299164|496.0| 413|\n", + "|1377299169|491.0| 413|\n", + "|1377299174|495.0| 413|\n", + "|1377299179|496.0| 413|\n", + "|1377299184|495.0| 413|\n", + "|1377299189|504.0| 413|\n", + "|1377299194|504.0| 413|\n", + "|1377299199|501.0| 413|\n", + "|1377299204|495.0| 413|\n", + "+----------+-----+----+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_co2" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    TimeValueRoom
    0000
    \n", + "
    " + ], + "text/plain": [ + " Time Value Room\n", + "0 0 0 0" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nacounts = df_co2.select([F.count(F.when(F.isnull(c), c)).alias(c) for c in df_co2.columns]).toPandas()\n", + "nacounts" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    summaryTimeValueRoom
    count657400865740086574008
    mean1.3776353446464927E9411.00657635342094578.8140258699461
    stddev197438.93946163714103.51541277299566125.11433241496981
    min13772740068.0413
    max13780186811699.0776
    \n" + ], + "text/plain": [ + "+-------+--------------------+------------------+------------------+\n", + "|summary| Time| Value| Room|\n", + "+-------+--------------------+------------------+------------------+\n", + "| count| 6574008| 6574008| 6574008|\n", + "| mean|1.3776353446464927E9|411.00657635342094| 578.8140258699461|\n", + "| stddev| 197438.93946163714|103.51541277299566|125.11433241496981|\n", + "| min| 1377274006| 8.0| 413|\n", + "| max| 1378018681| 1699.0| 776|\n", + "+-------+--------------------+------------------+------------------+" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_co2.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+----------+-----+----+\n", + "| Time|Value|Room|\n", + "+----------+-----+----+\n", + "|1377299107|45.34| 413|\n", + "|1377299108|45.34| 413|\n", + "|1377299126|45.34| 413|\n", + "|1377299131|45.31| 413|\n", + "|1377299136|45.34| 413|\n", + "+----------+-----+----+\n", + "only showing top 5 rows\n", + "\n" + ] + } + ], + "source": [ + "df_humidity.show(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    TimeValueRoom
    0000
    \n", + "
    " + ], + "text/plain": [ + " Time Value Room\n", + "0 0 0 0" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nacounts = df_humidity.select([F.count(F.when(F.isnull(c), c)).alias(c) for c in df_humidity.columns]).toPandas()\n", + "nacounts" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    summaryTimeValueRoom
    count657146565714656571465
    mean1.377634784039541E956.7477052709077578.8782723440254
    stddev197935.73901740034.307900371726986125.02399167174264
    min1377292829-500.96413
    max137801836971.91776
    \n" + ], + "text/plain": [ + "+-------+-------------------+-----------------+------------------+\n", + "|summary| Time| Value| Room|\n", + "+-------+-------------------+-----------------+------------------+\n", + "| count| 6571465| 6571465| 6571465|\n", + "| mean|1.377634784039541E9| 56.7477052709077| 578.8782723440254|\n", + "| stddev| 197935.7390174003|4.307900371726986|125.02399167174264|\n", + "| min| 1377292829| -500.96| 413|\n", + "| max| 1378018369| 71.91| 776|\n", + "+-------+-------------------+-----------------+------------------+" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_humidity.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    TimeValueRoom
    137729910797.0413
    137729910897.0413
    137729912697.0413
    137729913197.0413
    137729913697.0413
    137729914196.0413
    137729914696.0413
    137729915196.0413
    137729915696.0413
    137729916197.0413
    137729916696.0413
    137729917196.0413
    137729917698.0413
    137729918197.0413
    137729918696.0413
    137729919196.0413
    137729919697.0413
    137729920198.0413
    137729920697.0413
    137729921197.0413
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----------+-----+----+\n", + "| Time|Value|Room|\n", + "+----------+-----+----+\n", + "|1377299107| 97.0| 413|\n", + "|1377299108| 97.0| 413|\n", + "|1377299126| 97.0| 413|\n", + "|1377299131| 97.0| 413|\n", + "|1377299136| 97.0| 413|\n", + "|1377299141| 96.0| 413|\n", + "|1377299146| 96.0| 413|\n", + "|1377299151| 96.0| 413|\n", + "|1377299156| 96.0| 413|\n", + "|1377299161| 97.0| 413|\n", + "|1377299166| 96.0| 413|\n", + "|1377299171| 96.0| 413|\n", + "|1377299176| 98.0| 413|\n", + "|1377299181| 97.0| 413|\n", + "|1377299186| 96.0| 413|\n", + "|1377299191| 96.0| 413|\n", + "|1377299196| 97.0| 413|\n", + "|1377299201| 98.0| 413|\n", + "|1377299206| 97.0| 413|\n", + "|1377299211| 97.0| 413|\n", + "+----------+-----+----+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_light" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    TimeValueRoom
    0000
    \n", + "
    " + ], + "text/plain": [ + " Time Value Room\n", + "0 0 0 0" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nacounts = df_light.select([F.count(F.when(F.isnull(c), c)).alias(c) for c in df_light.columns]).toPandas()\n", + "nacounts" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    summaryTimeValueRoom
    count657146365714636571463
    mean1.3776347839036963E982.26155652097562578.8782745160211
    stddev197935.66398888963310.1547096557644125.02400109924437
    min13772928290.0413
    max137801836930551.0776
    \n" + ], + "text/plain": [ + "+-------+--------------------+-----------------+------------------+\n", + "|summary| Time| Value| Room|\n", + "+-------+--------------------+-----------------+------------------+\n", + "| count| 6571463| 6571463| 6571463|\n", + "| mean|1.3776347839036963E9|82.26155652097562| 578.8782745160211|\n", + "| stddev| 197935.66398888963|310.1547096557644|125.02400109924437|\n", + "| min| 1377292829| 0.0| 413|\n", + "| max| 1378018369| 30551.0| 776|\n", + "+-------+--------------------+-----------------+------------------+" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_light.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    TimeValueRoom
    137729910723.93413
    137729910823.94413
    137729912623.93413
    137729913123.93413
    137729913623.92413
    137729914123.92413
    137729914623.92413
    137729915123.93413
    137729915623.93413
    137729916123.93413
    137729916623.94413
    137729917123.94413
    137729917623.94413
    137729918123.94413
    137729918623.94413
    137729919123.94413
    137729919623.94413
    137729920123.93413
    137729920623.94413
    137729921123.94413
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----------+-----+----+\n", + "| Time|Value|Room|\n", + "+----------+-----+----+\n", + "|1377299107|23.93| 413|\n", + "|1377299108|23.94| 413|\n", + "|1377299126|23.93| 413|\n", + "|1377299131|23.93| 413|\n", + "|1377299136|23.92| 413|\n", + "|1377299141|23.92| 413|\n", + "|1377299146|23.92| 413|\n", + "|1377299151|23.93| 413|\n", + "|1377299156|23.93| 413|\n", + "|1377299161|23.93| 413|\n", + "|1377299166|23.94| 413|\n", + "|1377299171|23.94| 413|\n", + "|1377299176|23.94| 413|\n", + "|1377299181|23.94| 413|\n", + "|1377299186|23.94| 413|\n", + "|1377299191|23.94| 413|\n", + "|1377299196|23.94| 413|\n", + "|1377299201|23.93| 413|\n", + "|1377299206|23.94| 413|\n", + "|1377299211|23.94| 413|\n", + "+----------+-----+----+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_temperature" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    TimeValueRoom
    0000
    \n", + "
    " + ], + "text/plain": [ + " Time Value Room\n", + "0 0 0 0" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nacounts = df_temperature.select([F.count(F.when(F.isnull(c), c)).alias(c) for c in df_temperature.columns]).toPandas()\n", + "nacounts" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    summaryTimeValueRoom
    count657150565715056571505
    mean1.3776347835199444E923.970198924024434578.8783621943661
    stddev197934.309552914721.191679563973466125.02389562585525
    min1377292829-40.1413
    max1378018369579.27776
    \n" + ], + "text/plain": [ + "+-------+--------------------+------------------+------------------+\n", + "|summary| Time| Value| Room|\n", + "+-------+--------------------+------------------+------------------+\n", + "| count| 6571505| 6571505| 6571505|\n", + "| mean|1.3776347835199444E9|23.970198924024434| 578.8783621943661|\n", + "| stddev| 197934.3095529147|21.191679563973466|125.02389562585525|\n", + "| min| 1377292829| -40.1| 413|\n", + "| max| 1378018369| 579.27| 776|\n", + "+-------+--------------------+------------------+------------------+" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_temperature.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    TimeValueRoom
    13772991080.0413
    13772991260.0413
    13772991270.0413
    13772991300.0413
    13772991390.0413
    13772991490.0413
    13772991590.0413
    13772991690.0413
    13772991790.0413
    13772991890.0413
    13772991990.0413
    13772992090.0413
    13772992190.0413
    13772992290.0413
    13772992390.0413
    13772992490.0413
    13772992590.0413
    13772992690.0413
    13772992790.0413
    13772992890.0413
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----------+-----+----+\n", + "| Time|Value|Room|\n", + "+----------+-----+----+\n", + "|1377299108| 0.0| 413|\n", + "|1377299126| 0.0| 413|\n", + "|1377299127| 0.0| 413|\n", + "|1377299130| 0.0| 413|\n", + "|1377299139| 0.0| 413|\n", + "|1377299149| 0.0| 413|\n", + "|1377299159| 0.0| 413|\n", + "|1377299169| 0.0| 413|\n", + "|1377299179| 0.0| 413|\n", + "|1377299189| 0.0| 413|\n", + "|1377299199| 0.0| 413|\n", + "|1377299209| 0.0| 413|\n", + "|1377299219| 0.0| 413|\n", + "|1377299229| 0.0| 413|\n", + "|1377299239| 0.0| 413|\n", + "|1377299249| 0.0| 413|\n", + "|1377299259| 0.0| 413|\n", + "|1377299269| 0.0| 413|\n", + "|1377299279| 0.0| 413|\n", + "|1377299289| 0.0| 413|\n", + "+----------+-----+----+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pir" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    TimeValueRoom
    0000
    \n", + "
    " + ], + "text/plain": [ + " Time Value Room\n", + "0 0 0 0" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nacounts = df_pir.select([F.count(F.when(F.isnull(c), c)).alias(c) for c in df_pir.columns]).toPandas()\n", + "nacounts" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    summaryTimeValueRoom
    count359395335939533593953
    mean1.3776585765605793E91.7543006266359076579.7942800863254
    stddev207686.7558165586719.345402086673538125.1627621731147
    min13772700000.0413
    max137801873934456.0776
    \n" + ], + "text/plain": [ + "+-------+--------------------+------------------+-----------------+\n", + "|summary| Time| Value| Room|\n", + "+-------+--------------------+------------------+-----------------+\n", + "| count| 3593953| 3593953| 3593953|\n", + "| mean|1.3776585765605793E9|1.7543006266359076|579.7942800863254|\n", + "| stddev| 207686.75581655867|19.345402086673538|125.1627621731147|\n", + "| min| 1377270000| 0.0| 413|\n", + "| max| 1378018739| 34456.0| 776|\n", + "+-------+--------------------+------------------+-----------------+" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pir.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "root\n", + " |-- Time: string (nullable = true)\n", + " |-- Value: float (nullable = true)\n", + " |-- Room: string (nullable = true)\n", + "\n" + ] + } + ], + "source": [ + "df_pir.printSchema()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "def join_with_aliases(left, right, on, how, right_prefix):\n", + " renamed_right = right.selectExpr(\n", + " [\n", + " col + f\" as {col}_{right_prefix}\"\n", + " for col in df_humidity.columns\n", + " if col not in on\n", + " ]\n", + " + on\n", + " )\n", + " right_on = [f\"{x}{right_prefix}\" for x in on]\n", + " return left.join(renamed_right, on=on, how=how)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValueValue_humidityValue_temperatureValue_lightValue_pir
    4151377650743611.054.6124.0861.00.0
    4151377656833460.055.5823.7124.00.0
    4151377657993472.055.9223.639.00.0
    4151377660833465.056.5723.474.00.0
    4151377666003477.057.4123.284.00.0
    4151377667093462.057.4123.284.00.0
    4151377692382462.058.3322.614.00.0
    4151377694542454.058.322.563.00.0
    4151377695762460.058.3322.524.00.0
    4151377696862455.058.3922.514.00.0
    4151377697842450.058.5522.495.00.0
    4151377700162463.058.7322.4813.00.0
    4151377730331646.057.8423.82146.00.0
    4171377554286453.054.8923.5371.00.0
    4171377720458441.057.8423.3984.00.0
    4171377747657345.059.1923.523.00.0
    4191377542898785.055.323.54122.025.0
    4191377612137436.053.122.1920.00.0
    4191377620794442.055.0522.3299.00.0
    4191377841801449.060.8622.8626.00.0
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+----------+-----+--------------+-----------------+-----------+---------+\n", + "|Room| Time|Value|Value_humidity|Value_temperature|Value_light|Value_pir|\n", + "+----+----------+-----+--------------+-----------------+-----------+---------+\n", + "| 415|1377650743|611.0| 54.61| 24.08| 61.0| 0.0|\n", + "| 415|1377656833|460.0| 55.58| 23.71| 24.0| 0.0|\n", + "| 415|1377657993|472.0| 55.92| 23.63| 9.0| 0.0|\n", + "| 415|1377660833|465.0| 56.57| 23.47| 4.0| 0.0|\n", + "| 415|1377666003|477.0| 57.41| 23.28| 4.0| 0.0|\n", + "| 415|1377667093|462.0| 57.41| 23.28| 4.0| 0.0|\n", + "| 415|1377692382|462.0| 58.33| 22.61| 4.0| 0.0|\n", + "| 415|1377694542|454.0| 58.3| 22.56| 3.0| 0.0|\n", + "| 415|1377695762|460.0| 58.33| 22.52| 4.0| 0.0|\n", + "| 415|1377696862|455.0| 58.39| 22.51| 4.0| 0.0|\n", + "| 415|1377697842|450.0| 58.55| 22.49| 5.0| 0.0|\n", + "| 415|1377700162|463.0| 58.73| 22.48| 13.0| 0.0|\n", + "| 415|1377730331|646.0| 57.84| 23.82| 146.0| 0.0|\n", + "| 417|1377554286|453.0| 54.89| 23.53| 71.0| 0.0|\n", + "| 417|1377720458|441.0| 57.84| 23.39| 84.0| 0.0|\n", + "| 417|1377747657|345.0| 59.19| 23.52| 3.0| 0.0|\n", + "| 419|1377542898|785.0| 55.3| 23.54| 122.0| 25.0|\n", + "| 419|1377612137|436.0| 53.1| 22.19| 20.0| 0.0|\n", + "| 419|1377620794|442.0| 55.05| 22.32| 99.0| 0.0|\n", + "| 419|1377841801|449.0| 60.86| 22.86| 26.0| 0.0|\n", + "+----+----------+-----+--------------+-----------------+-----------+---------+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "co2\n", + "\n", + "co2_hum = join_with_aliases(\n", + " left=df_co2,\n", + " right=df_humidity,\n", + " on=[\"Room\",\"Time\"],\n", + " how=\"inner\",\n", + " right_prefix=\"humidity\"\n", + ")\n", + "\n", + "co2_hum_temperature = join_with_aliases(\n", + " left=co2_hum,\n", + " right=df_temperature,\n", + " on=[\"Room\",\"Time\"],\n", + " how=\"inner\",\n", + " right_prefix=\"temperature\"\n", + ")\n", + "\n", + "co2_hum_temperature_light = join_with_aliases(\n", + " left=co2_hum_temperature,\n", + " right=df_light,\n", + " on=[\"Room\",\"Time\"],\n", + " how=\"inner\",\n", + " right_prefix=\"light\"\n", + ")\n", + "\n", + "co2_hum_temperature_light_pir = join_with_aliases(\n", + " left=co2_hum_temperature_light,\n", + " right=df_pir,\n", + " on=[\"Room\",\"Time\"],\n", + " how=\"inner\",\n", + " right_prefix=\"pir\"\n", + ")\n", + "\n", + "co2_hum_temperature_light_pir" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "co2_hum_temperature_light_pir = co2_hum_temperature_light_pir.withColumnRenamed(\"Value\", \"Value_co2\")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValue_co2Value_humidityValue_temperatureValue_lightValue_pir
    4151377650743611.054.6124.0861.00.0
    4151377656833460.055.5823.7124.00.0
    4151377657993472.055.9223.639.00.0
    4151377660833465.056.5723.474.00.0
    4151377666003477.057.4123.284.00.0
    4151377667093462.057.4123.284.00.0
    4151377692382462.058.3322.614.00.0
    4151377694542454.058.322.563.00.0
    4151377695762460.058.3322.524.00.0
    4151377696862455.058.3922.514.00.0
    4151377697842450.058.5522.495.00.0
    4151377700162463.058.7322.4813.00.0
    4151377730331646.057.8423.82146.00.0
    4171377554286453.054.8923.5371.00.0
    4171377720458441.057.8423.3984.00.0
    4171377747657345.059.1923.523.00.0
    4191377542898785.055.323.54122.025.0
    4191377612137436.053.122.1920.00.0
    4191377620794442.055.0522.3299.00.0
    4191377841801449.060.8622.8626.00.0
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+----------+---------+--------------+-----------------+-----------+---------+\n", + "|Room| Time|Value_co2|Value_humidity|Value_temperature|Value_light|Value_pir|\n", + "+----+----------+---------+--------------+-----------------+-----------+---------+\n", + "| 415|1377650743| 611.0| 54.61| 24.08| 61.0| 0.0|\n", + "| 415|1377656833| 460.0| 55.58| 23.71| 24.0| 0.0|\n", + "| 415|1377657993| 472.0| 55.92| 23.63| 9.0| 0.0|\n", + "| 415|1377660833| 465.0| 56.57| 23.47| 4.0| 0.0|\n", + "| 415|1377666003| 477.0| 57.41| 23.28| 4.0| 0.0|\n", + "| 415|1377667093| 462.0| 57.41| 23.28| 4.0| 0.0|\n", + "| 415|1377692382| 462.0| 58.33| 22.61| 4.0| 0.0|\n", + "| 415|1377694542| 454.0| 58.3| 22.56| 3.0| 0.0|\n", + "| 415|1377695762| 460.0| 58.33| 22.52| 4.0| 0.0|\n", + "| 415|1377696862| 455.0| 58.39| 22.51| 4.0| 0.0|\n", + "| 415|1377697842| 450.0| 58.55| 22.49| 5.0| 0.0|\n", + "| 415|1377700162| 463.0| 58.73| 22.48| 13.0| 0.0|\n", + "| 415|1377730331| 646.0| 57.84| 23.82| 146.0| 0.0|\n", + "| 417|1377554286| 453.0| 54.89| 23.53| 71.0| 0.0|\n", + "| 417|1377720458| 441.0| 57.84| 23.39| 84.0| 0.0|\n", + "| 417|1377747657| 345.0| 59.19| 23.52| 3.0| 0.0|\n", + "| 419|1377542898| 785.0| 55.3| 23.54| 122.0| 25.0|\n", + "| 419|1377612137| 436.0| 53.1| 22.19| 20.0| 0.0|\n", + "| 419|1377620794| 442.0| 55.05| 22.32| 99.0| 0.0|\n", + "| 419|1377841801| 449.0| 60.86| 22.86| 26.0| 0.0|\n", + "+----+----------+---------+--------------+-----------------+-----------+---------+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "co2_hum_temperature_light_pir" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "135386" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "co2_hum_temperature_light_pir.count()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "co2_hum_temperature_light_pir_ts = co2_hum_temperature_light_pir.withColumn('Time', F.from_unixtime('Time').cast(TimestampType()))" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValue_co2Value_humidityValue_temperatureValue_lightValue_pir
    4152013-08-28 03:45:43611.054.6124.0861.00.0
    4152013-08-28 05:27:13460.055.5823.7124.00.0
    4152013-08-28 05:46:33472.055.9223.639.00.0
    4152013-08-28 06:33:53465.056.5723.474.00.0
    4152013-08-28 08:00:03477.057.4123.284.00.0
    4152013-08-28 08:18:13462.057.4123.284.00.0
    4152013-08-28 15:19:42462.058.3322.614.00.0
    4152013-08-28 15:55:42454.058.322.563.00.0
    4152013-08-28 16:16:02460.058.3322.524.00.0
    4152013-08-28 16:34:22455.058.3922.514.00.0
    4152013-08-28 16:50:42450.058.5522.495.00.0
    4152013-08-28 17:29:22463.058.7322.4813.00.0
    4152013-08-29 01:52:11646.057.8423.82146.00.0
    4172013-08-27 00:58:06453.054.8923.5371.00.0
    4172013-08-28 23:07:38441.057.8423.3984.00.0
    4172013-08-29 06:40:57345.059.1923.523.00.0
    4192013-08-26 21:48:18785.055.323.54122.025.0
    4192013-08-27 17:02:17436.053.122.1920.00.0
    4192013-08-27 19:26:34442.055.0522.3299.00.0
    4192013-08-30 08:50:01449.060.8622.8626.00.0
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "|Room| Time|Value_co2|Value_humidity|Value_temperature|Value_light|Value_pir|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "| 415|2013-08-28 03:45:43| 611.0| 54.61| 24.08| 61.0| 0.0|\n", + "| 415|2013-08-28 05:27:13| 460.0| 55.58| 23.71| 24.0| 0.0|\n", + "| 415|2013-08-28 05:46:33| 472.0| 55.92| 23.63| 9.0| 0.0|\n", + "| 415|2013-08-28 06:33:53| 465.0| 56.57| 23.47| 4.0| 0.0|\n", + "| 415|2013-08-28 08:00:03| 477.0| 57.41| 23.28| 4.0| 0.0|\n", + "| 415|2013-08-28 08:18:13| 462.0| 57.41| 23.28| 4.0| 0.0|\n", + "| 415|2013-08-28 15:19:42| 462.0| 58.33| 22.61| 4.0| 0.0|\n", + "| 415|2013-08-28 15:55:42| 454.0| 58.3| 22.56| 3.0| 0.0|\n", + "| 415|2013-08-28 16:16:02| 460.0| 58.33| 22.52| 4.0| 0.0|\n", + "| 415|2013-08-28 16:34:22| 455.0| 58.39| 22.51| 4.0| 0.0|\n", + "| 415|2013-08-28 16:50:42| 450.0| 58.55| 22.49| 5.0| 0.0|\n", + "| 415|2013-08-28 17:29:22| 463.0| 58.73| 22.48| 13.0| 0.0|\n", + "| 415|2013-08-29 01:52:11| 646.0| 57.84| 23.82| 146.0| 0.0|\n", + "| 417|2013-08-27 00:58:06| 453.0| 54.89| 23.53| 71.0| 0.0|\n", + "| 417|2013-08-28 23:07:38| 441.0| 57.84| 23.39| 84.0| 0.0|\n", + "| 417|2013-08-29 06:40:57| 345.0| 59.19| 23.52| 3.0| 0.0|\n", + "| 419|2013-08-26 21:48:18| 785.0| 55.3| 23.54| 122.0| 25.0|\n", + "| 419|2013-08-27 17:02:17| 436.0| 53.1| 22.19| 20.0| 0.0|\n", + "| 419|2013-08-27 19:26:34| 442.0| 55.05| 22.32| 99.0| 0.0|\n", + "| 419|2013-08-30 08:50:01| 449.0| 60.86| 22.86| 26.0| 0.0|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "co2_hum_temperature_light_pir_ts" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "co2_hum_temperature_light_pir_ts_sorted = co2_hum_temperature_light_pir_ts.sort(co2_hum_temperature_light_pir_ts.Time)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValue_co2Value_humidityValue_temperatureValue_lightValue_pir
    5112013-08-24 02:04:53387.052.7522.62252.00.0
    6442013-08-24 02:04:57465.052.422.8165.00.0
    656A2013-08-24 02:04:57579.049.924.37176.030.0
    6482013-08-24 02:04:57175.050.3223.32191.00.0
    5582013-08-24 02:05:01423.053.5123.113.00.0
    5642013-08-24 02:05:01434.049.9424.0811.029.0
    6642013-08-24 02:05:05347.050.0323.643.00.0
    6662013-08-24 02:05:05437.049.3924.14148.00.0
    6682013-08-24 02:05:05421.049.0624.811977.00.0
    656B2013-08-24 02:05:05538.046.4925.26102.030.0
    4132013-08-24 02:05:08495.045.3423.9497.00.0
    5112013-08-24 02:05:25383.052.7522.62251.00.0
    7762013-08-24 02:05:25655.048.924.6105.00.0
    7462013-08-24 02:05:25629.052.8423.0630.019.0
    5102013-08-24 02:05:25391.052.6223.46204.00.0
    6662013-08-24 02:05:26442.049.4224.14149.00.0
    621A2013-08-24 02:05:26396.055.2322.22126.00.0
    6682013-08-24 02:05:26426.049.124.812208.00.0
    5642013-08-24 02:05:26438.049.9424.0810.030.0
    6482013-08-24 02:05:26159.050.3223.32190.00.0
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "|Room| Time|Value_co2|Value_humidity|Value_temperature|Value_light|Value_pir|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "| 511|2013-08-24 02:04:53| 387.0| 52.75| 22.62| 252.0| 0.0|\n", + "|656A|2013-08-24 02:04:57| 579.0| 49.9| 24.37| 176.0| 30.0|\n", + "| 644|2013-08-24 02:04:57| 465.0| 52.4| 22.8| 165.0| 0.0|\n", + "| 648|2013-08-24 02:04:57| 175.0| 50.32| 23.32| 191.0| 0.0|\n", + "| 564|2013-08-24 02:05:01| 434.0| 49.94| 24.08| 11.0| 29.0|\n", + "| 558|2013-08-24 02:05:01| 423.0| 53.51| 23.11| 3.0| 0.0|\n", + "| 668|2013-08-24 02:05:05| 421.0| 49.06| 24.81| 1977.0| 0.0|\n", + "| 664|2013-08-24 02:05:05| 347.0| 50.03| 23.64| 3.0| 0.0|\n", + "|656B|2013-08-24 02:05:05| 538.0| 46.49| 25.26| 102.0| 30.0|\n", + "| 666|2013-08-24 02:05:05| 437.0| 49.39| 24.14| 148.0| 0.0|\n", + "| 413|2013-08-24 02:05:08| 495.0| 45.34| 23.94| 97.0| 0.0|\n", + "| 746|2013-08-24 02:05:25| 629.0| 52.84| 23.06| 30.0| 19.0|\n", + "| 511|2013-08-24 02:05:25| 383.0| 52.75| 22.62| 251.0| 0.0|\n", + "| 510|2013-08-24 02:05:25| 391.0| 52.62| 23.46| 204.0| 0.0|\n", + "| 776|2013-08-24 02:05:25| 655.0| 48.9| 24.6| 105.0| 0.0|\n", + "| 648|2013-08-24 02:05:26| 159.0| 50.32| 23.32| 190.0| 0.0|\n", + "| 734|2013-08-24 02:05:26| 384.0| 47.47| 24.8| 311.0| 17.0|\n", + "|621A|2013-08-24 02:05:26| 396.0| 55.23| 22.22| 126.0| 0.0|\n", + "| 564|2013-08-24 02:05:26| 438.0| 49.94| 24.08| 10.0| 30.0|\n", + "| 668|2013-08-24 02:05:26| 426.0| 49.1| 24.81| 2208.0| 0.0|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "co2_hum_temperature_light_pir_ts_sorted" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "data = co2_hum_temperature_light_pir_ts_sorted.alias('data')" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValue_co2Value_humidityValue_temperatureValue_lightValue_pir
    5112013-08-24 02:04:53387.052.7522.62252.00.0
    6442013-08-24 02:04:57465.052.422.8165.00.0
    6482013-08-24 02:04:57175.050.3223.32191.00.0
    656A2013-08-24 02:04:57579.049.924.37176.030.0
    5642013-08-24 02:05:01434.049.9424.0811.029.0
    5582013-08-24 02:05:01423.053.5123.113.00.0
    6682013-08-24 02:05:05421.049.0624.811977.00.0
    656B2013-08-24 02:05:05538.046.4925.26102.030.0
    6642013-08-24 02:05:05347.050.0323.643.00.0
    6662013-08-24 02:05:05437.049.3924.14148.00.0
    4132013-08-24 02:05:08495.045.3423.9497.00.0
    5112013-08-24 02:05:25383.052.7522.62251.00.0
    7462013-08-24 02:05:25629.052.8423.0630.019.0
    5102013-08-24 02:05:25391.052.6223.46204.00.0
    7762013-08-24 02:05:25655.048.924.6105.00.0
    6642013-08-24 02:05:26342.050.0323.643.00.0
    7342013-08-24 02:05:26384.047.4724.8311.017.0
    621A2013-08-24 02:05:26396.055.2322.22126.00.0
    6482013-08-24 02:05:26159.050.3223.32190.00.0
    656A2013-08-24 02:05:26559.049.924.37153.030.0
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "|Room| Time|Value_co2|Value_humidity|Value_temperature|Value_light|Value_pir|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "| 511|2013-08-24 02:04:53| 387.0| 52.75| 22.62| 252.0| 0.0|\n", + "| 644|2013-08-24 02:04:57| 465.0| 52.4| 22.8| 165.0| 0.0|\n", + "| 648|2013-08-24 02:04:57| 175.0| 50.32| 23.32| 191.0| 0.0|\n", + "|656A|2013-08-24 02:04:57| 579.0| 49.9| 24.37| 176.0| 30.0|\n", + "| 564|2013-08-24 02:05:01| 434.0| 49.94| 24.08| 11.0| 29.0|\n", + "| 558|2013-08-24 02:05:01| 423.0| 53.51| 23.11| 3.0| 0.0|\n", + "| 664|2013-08-24 02:05:05| 347.0| 50.03| 23.64| 3.0| 0.0|\n", + "| 668|2013-08-24 02:05:05| 421.0| 49.06| 24.81| 1977.0| 0.0|\n", + "|656B|2013-08-24 02:05:05| 538.0| 46.49| 25.26| 102.0| 30.0|\n", + "| 666|2013-08-24 02:05:05| 437.0| 49.39| 24.14| 148.0| 0.0|\n", + "| 413|2013-08-24 02:05:08| 495.0| 45.34| 23.94| 97.0| 0.0|\n", + "| 511|2013-08-24 02:05:25| 383.0| 52.75| 22.62| 251.0| 0.0|\n", + "| 746|2013-08-24 02:05:25| 629.0| 52.84| 23.06| 30.0| 19.0|\n", + "| 776|2013-08-24 02:05:25| 655.0| 48.9| 24.6| 105.0| 0.0|\n", + "| 510|2013-08-24 02:05:25| 391.0| 52.62| 23.46| 204.0| 0.0|\n", + "| 666|2013-08-24 02:05:26| 442.0| 49.42| 24.14| 149.0| 0.0|\n", + "| 564|2013-08-24 02:05:26| 438.0| 49.94| 24.08| 10.0| 30.0|\n", + "|621A|2013-08-24 02:05:26| 396.0| 55.23| 22.22| 126.0| 0.0|\n", + "| 668|2013-08-24 02:05:26| 426.0| 49.1| 24.81| 2208.0| 0.0|\n", + "| 734|2013-08-24 02:05:26| 384.0| 47.47| 24.8| 311.0| 17.0|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValue_co2Value_humidityValue_temperatureValue_lightValue_pir
    5112013-08-24 02:04:53387.052.7522.62252.00
    6442013-08-24 02:04:57465.052.422.8165.00
    656A2013-08-24 02:04:57579.049.924.37176.01
    6482013-08-24 02:04:57175.050.3223.32191.00
    5582013-08-24 02:05:01423.053.5123.113.00
    5642013-08-24 02:05:01434.049.9424.0811.01
    6682013-08-24 02:05:05421.049.0624.811977.00
    6642013-08-24 02:05:05347.050.0323.643.00
    656B2013-08-24 02:05:05538.046.4925.26102.01
    6662013-08-24 02:05:05437.049.3924.14148.00
    4132013-08-24 02:05:08495.045.3423.9497.00
    7462013-08-24 02:05:25629.052.8423.0630.01
    7762013-08-24 02:05:25655.048.924.6105.00
    5112013-08-24 02:05:25383.052.7522.62251.00
    5102013-08-24 02:05:25391.052.6223.46204.00
    6682013-08-24 02:05:26426.049.124.812208.00
    7342013-08-24 02:05:26384.047.4724.8311.01
    5582013-08-24 02:05:26439.053.5123.114.00
    5642013-08-24 02:05:26438.049.9424.0810.01
    621A2013-08-24 02:05:26396.055.2322.22126.00
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "|Room| Time|Value_co2|Value_humidity|Value_temperature|Value_light|Value_pir|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "| 511|2013-08-24 02:04:53| 387.0| 52.75| 22.62| 252.0| 0|\n", + "| 644|2013-08-24 02:04:57| 465.0| 52.4| 22.8| 165.0| 0|\n", + "|656A|2013-08-24 02:04:57| 579.0| 49.9| 24.37| 176.0| 1|\n", + "| 648|2013-08-24 02:04:57| 175.0| 50.32| 23.32| 191.0| 0|\n", + "| 564|2013-08-24 02:05:01| 434.0| 49.94| 24.08| 11.0| 1|\n", + "| 558|2013-08-24 02:05:01| 423.0| 53.51| 23.11| 3.0| 0|\n", + "| 668|2013-08-24 02:05:05| 421.0| 49.06| 24.81| 1977.0| 0|\n", + "|656B|2013-08-24 02:05:05| 538.0| 46.49| 25.26| 102.0| 1|\n", + "| 664|2013-08-24 02:05:05| 347.0| 50.03| 23.64| 3.0| 0|\n", + "| 666|2013-08-24 02:05:05| 437.0| 49.39| 24.14| 148.0| 0|\n", + "| 413|2013-08-24 02:05:08| 495.0| 45.34| 23.94| 97.0| 0|\n", + "| 511|2013-08-24 02:05:25| 383.0| 52.75| 22.62| 251.0| 0|\n", + "| 746|2013-08-24 02:05:25| 629.0| 52.84| 23.06| 30.0| 1|\n", + "| 776|2013-08-24 02:05:25| 655.0| 48.9| 24.6| 105.0| 0|\n", + "| 510|2013-08-24 02:05:25| 391.0| 52.62| 23.46| 204.0| 0|\n", + "| 734|2013-08-24 02:05:26| 384.0| 47.47| 24.8| 311.0| 1|\n", + "| 564|2013-08-24 02:05:26| 438.0| 49.94| 24.08| 10.0| 1|\n", + "| 648|2013-08-24 02:05:26| 159.0| 50.32| 23.32| 190.0| 0|\n", + "|621A|2013-08-24 02:05:26| 396.0| 55.23| 22.22| 126.0| 0|\n", + "|656A|2013-08-24 02:05:26| 559.0| 49.9| 24.37| 153.0| 1|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = data.withColumn('Value_pir',F.when(data.Value_pir > 0, 1).otherwise(0))\n", + "data" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "root\n", + " |-- Room: string (nullable = true)\n", + " |-- Time: timestamp (nullable = true)\n", + " |-- Value_co2: float (nullable = true)\n", + " |-- Value_humidity: float (nullable = true)\n", + " |-- Value_temperature: float (nullable = true)\n", + " |-- Value_light: float (nullable = true)\n", + " |-- Value_pir: integer (nullable = false)\n", + "\n" + ] + } + ], + "source": [ + "data.printSchema()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data.select(F.col(\"Value_pir\")).toPandas()['Value_pir'].value_counts().plot.pie(autopct='%1.1f%%', shadow=True, figsize=(8,8))\n", + "plt.title('Pie Chart for Target')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    summaryRoomValue_co2Value_humidityValue_temperatureValue_lightValue_pir
    count135386135386135386135386135386135386
    mean595.1545244267818399.2742307180949456.891765920455823.415894764528037140.571861196874120.06719306279822138
    stddev115.1693984614636119.08185828746513.61199822703788511.836374629046169470.68676287201480.2503569812734329
    min41362.042.1220.20.00
    max7761223.071.29579.272397.01
    \n" + ], + "text/plain": [ + "+-------+-----------------+------------------+-----------------+------------------+------------------+-------------------+\n", + "|summary| Room| Value_co2| Value_humidity| Value_temperature| Value_light| Value_pir|\n", + "+-------+-----------------+------------------+-----------------+------------------+------------------+-------------------+\n", + "| count| 135386| 135386| 135386| 135386| 135386| 135386|\n", + "| mean|595.1545244267818|399.27423071809494| 56.8917659204558|23.415894764528037|140.57186119687412|0.06719306279822138|\n", + "| stddev|115.1693984614636| 119.0818582874651|3.611998227037885|11.836374629046169| 470.6867628720148| 0.2503569812734329|\n", + "| min| 413| 62.0| 42.12| 20.2| 0.0| 0|\n", + "| max| 776| 1223.0| 71.29| 579.27| 2397.0| 1|\n", + "+-------+-----------------+------------------+-----------------+------------------+------------------+-------------------+" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "data = data.withColumnRenamed(\"Value_pir\",\"label\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "EDA for know specific rooms" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [], + "source": [ + "data_top3_active_rooms = data.filter(data.label == 1).groupby(\"Room\").agg(F.count(\"label\").alias(\"1_moments_count\")).orderBy(\"1_moments_count\", ascending = False).select(['Room','1_moments_count']).head(3)\n", + "data_top3_inactive_rooms = data.filter(data.label == 1).groupby(\"Room\").agg(F.count(\"label\").alias(\"1_moments_count\")).orderBy(\"1_moments_count\", ascending = False).select(['Room','1_moments_count']).tail(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Row(Room='648', 1_moments_count=760),\n", + " Row(Room='656A', 1_moments_count=567),\n", + " Row(Room='656B', 1_moments_count=561)]" + ] + }, + "execution_count": 104, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#en aktif üç oda\n", + "data_top3_active_rooms" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Row(Room='724', 1_moments_count=1),\n", + " Row(Room='446', 1_moments_count=1),\n", + " Row(Room='452', 1_moments_count=1)]" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#en in-aktif üç oda\n", + "data_top3_inactive_rooms" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [], + "source": [ + "rank_cols_withoutsum = ['Value_co2', 'Value_humidity', 'Value_temperature', 'Value_light']\n", + "\n", + "##\n", + "\n", + "data_sc = data.alias('data_sc')\n", + "\n", + "##\n", + "\n", + "from pyspark.ml.feature import MinMaxScaler\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.sql.functions import udf\n", + "from pyspark.sql.types import DoubleType\n", + "\n", + "# UDF for converting column type from vector to double type\n", + "unlist = udf(lambda x: round(float(list(x)[0]),3), DoubleType())\n", + "\n", + "# Iterating over columns to be scaled\n", + "for i in rank_cols_withoutsum:\n", + " # VectorAssembler Transformation - Converting column to vector type\n", + " assembler = VectorAssembler(inputCols=[i],outputCol=i+\"_Vect\")\n", + "\n", + " # MinMaxScaler Transformation\n", + " scaler = MinMaxScaler(inputCol=i+\"_Vect\", outputCol=i+\"_Scaled\")\n", + "\n", + " # Pipeline of VectorAssembler and MinMaxScaler\n", + " pipeline = Pipeline(stages=[assembler, scaler])\n", + "\n", + " # Fitting pipeline on dataframe\n", + " data_sc = pipeline.fit(data_sc).transform(data_sc).withColumn(i+\"_Scaled\", unlist(i+\"_Scaled\")).drop(i+\"_Vect\")\n", + "\n", + "##\n", + "\n", + "data_sc_new_cols = ['Time', 'Room', 'Value_co2_Scaled', 'Value_humidity_Scaled', 'Value_temperature_Scaled', 'Value_light_Scaled', 'label']\n", + "\n", + "##\n", + "\n", + "data_sc = data_sc.select(*data_sc_new_cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [], + "source": [ + "data_top3_sc_potential_ascfalse = data_sc.filter(data_sc.label == 1).groupBy(\"Room\").agg(F.sum(data_sc.Value_co2_Scaled + data_sc.Value_humidity_Scaled + data_sc.Value_temperature_Scaled + data_sc.Value_light_Scaled).alias(\"potential\")).orderBy(\"potential\", ascending = False).select(['Room','potential']).head(3)\n", + "data_top3_sc_potential_asctrue = data_sc.filter(data_sc.label == 1).groupBy(\"Room\").agg(F.sum(data_sc.Value_co2_Scaled + data_sc.Value_humidity_Scaled + data_sc.Value_temperature_Scaled + data_sc.Value_light_Scaled).alias(\"potential\")).orderBy(\"potential\", ascending = True).select(['Room','potential']).head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Row(Room='719', potential=648.0479999999999),\n", + " Row(Room='656A', potential=628.0630000000001),\n", + " Row(Room='746', potential=577.5759999999999)]" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#en yüksek değerlerle aktiflik gösteren 3 oda\n", + "data_top3_sc_potential_ascfalse" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Row(Room='452', potential=0.509),\n", + " Row(Room='724', potential=0.624),\n", + " Row(Room='446', potential=0.828)]" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#en düşük değerlerle aktiflik gösteren 3 oda\n", + "data_top3_sc_potential_asctrue" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "assembler = VectorAssembler(inputCols=['Value_co2','Value_humidity','Value_temperature','Value_light'],\n", + " outputCol = \"vector_assembler_cols\",\n", + " handleInvalid=\"skip\")" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "scaler = StandardScaler().setInputCol(\"vector_assembler_cols\").setOutputCol(\"features\")" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "estimator = DecisionTreeClassifier() \\\n", + ".setFeaturesCol(\"features\") \\\n", + ".setLabelCol(\"label\")" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline_obj = Pipeline().setStages([assembler, scaler, estimator])" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "train, valid, test = data.randomSplit([0.6,0.3,0.1], seed=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline_model = pipeline_obj.fit(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "paramGrid = ParamGridBuilder() \\\n", + ".addGrid(estimator.maxDepth, [4,8]) \\\n", + ".build()" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "crossval = CrossValidator(estimator=pipeline_obj,\n", + " estimatorParamMaps=paramGrid,\n", + " evaluator=BinaryClassificationEvaluator(),\n", + " numFolds=2) " + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "cvModel = crossval.fit(train)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "bestModel = cvModel.bestModel" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "evaluator = BinaryClassificationEvaluator()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'areaUnderROC'" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluator.getMetricName()" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8432904197212023" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluator.evaluate(bestModel.transform(valid))" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValue_co2Value_humidityValue_temperatureValue_lightlabel
    4152013-08-28 16:50:42450.058.5522.495.00
    4152013-08-28 17:29:22463.058.7322.4813.00
    4172013-08-29 06:40:57345.059.1923.523.00
    4192013-08-30 08:50:01449.060.8622.8626.00
    4232013-08-26 20:02:09511.053.8523.9342.01
    4232013-08-27 03:13:03460.052.2724.174.00
    4232013-08-27 18:26:01354.049.2624.143.00
    4242013-08-29 05:54:43396.055.6424.322.00
    4242013-08-29 13:40:11381.057.4423.743.00
    4242013-08-29 15:36:01381.057.4123.64.00
    4242013-08-29 22:40:40471.058.2723.524.00
    4242013-08-30 00:38:10505.058.0823.584.00
    4242013-08-30 02:25:00509.057.8423.624.00
    4242013-08-30 02:34:40506.057.7823.633.00
    4242013-08-30 09:29:59407.058.6123.594.00
    4242013-08-31 07:34:03413.057.523.55.00
    4422013-08-27 16:36:27439.048.4223.844.00
    4422013-08-31 21:13:26444.055.7923.34.00
    4462013-08-28 10:31:18457.058.7622.783.00
    4462013-08-28 13:22:08463.058.5122.684.00
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+-------------------+---------+--------------+-----------------+-----------+-----+\n", + "|Room| Time|Value_co2|Value_humidity|Value_temperature|Value_light|label|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+-----+\n", + "| 415|2013-08-28 16:50:42| 450.0| 58.55| 22.49| 5.0| 0|\n", + "| 415|2013-08-28 17:29:22| 463.0| 58.73| 22.48| 13.0| 0|\n", + "| 417|2013-08-29 06:40:57| 345.0| 59.19| 23.52| 3.0| 0|\n", + "| 419|2013-08-30 08:50:01| 449.0| 60.86| 22.86| 26.0| 0|\n", + "| 423|2013-08-26 20:02:09| 511.0| 53.85| 23.93| 42.0| 1|\n", + "| 423|2013-08-27 03:13:03| 460.0| 52.27| 24.17| 4.0| 0|\n", + "| 423|2013-08-27 18:26:01| 354.0| 49.26| 24.14| 3.0| 0|\n", + "| 424|2013-08-29 05:54:43| 396.0| 55.64| 24.32| 2.0| 0|\n", + "| 424|2013-08-29 13:40:11| 381.0| 57.44| 23.74| 3.0| 0|\n", + "| 424|2013-08-29 15:36:01| 381.0| 57.41| 23.6| 4.0| 0|\n", + "| 424|2013-08-29 22:40:40| 471.0| 58.27| 23.52| 4.0| 0|\n", + "| 424|2013-08-30 00:38:10| 505.0| 58.08| 23.58| 4.0| 0|\n", + "| 424|2013-08-30 02:25:00| 509.0| 57.84| 23.62| 4.0| 0|\n", + "| 424|2013-08-30 02:34:40| 506.0| 57.78| 23.63| 3.0| 0|\n", + "| 424|2013-08-30 09:29:59| 407.0| 58.61| 23.59| 4.0| 0|\n", + "| 424|2013-08-31 07:34:03| 413.0| 57.5| 23.5| 5.0| 0|\n", + "| 442|2013-08-27 16:36:27| 439.0| 48.42| 23.84| 4.0| 0|\n", + "| 442|2013-08-31 21:13:26| 444.0| 55.79| 23.3| 4.0| 0|\n", + "| 446|2013-08-28 10:31:18| 457.0| 58.76| 22.78| 3.0| 0|\n", + "| 446|2013-08-28 13:22:08| 463.0| 58.51| 22.68| 4.0| 0|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+-----+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "valid" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValue_co2Value_humidityValue_temperatureValue_lightlabelvector_assembler_colsfeaturesrawPredictionprobabilityprediction
    4152013-08-28 16:50:42450.058.5522.495.00[450.0,58.5499992...[3.77122823427980...[8657.0,21.0][0.99758008757778...0.0
    4152013-08-28 17:29:22463.058.7322.4813.00[463.0,58.7299995...[3.88017482771455...[5190.0,34.0][0.99349157733537...0.0
    4172013-08-29 06:40:57345.059.1923.523.00[345.0,59.1899986...[2.89127497961451...[36778.0,10.0][0.99972817223007...0.0
    4192013-08-30 08:50:01449.060.8622.8626.00[449.0,60.8600006...[3.76284772709251...[1932.0,78.0][0.96119402985074...0.0
    4232013-08-26 20:02:09511.053.8523.9342.01[511.0,53.8499984...[4.2824391727044,...[56.0,268.0][0.17283950617283...1.0
    4232013-08-27 03:13:03460.052.2724.174.00[460.0,52.2700004...[3.85503330615268...[2003.0,2.0][0.99900249376558...0.0
    4232013-08-27 18:26:01354.049.2624.143.00[354.0,49.2599983...[2.96669954430011...[36778.0,10.0][0.99972817223007...0.0
    4242013-08-29 05:54:43396.055.6424.322.00[396.0,55.6399993...[3.31868084616622...[36778.0,10.0][0.99972817223007...0.0
    4242013-08-29 13:40:11381.057.4423.743.00[381.0,57.4399986...[3.19297323835690...[36778.0,10.0][0.99972817223007...0.0
    4242013-08-29 15:36:01381.057.4123.64.00[381.0,57.4099998...[3.19297323835690...[36778.0,10.0][0.99972817223007...0.0
    4242013-08-29 22:40:40471.058.2723.524.00[471.0,58.2700004...[3.94721888521286...[8657.0,21.0][0.99758008757778...0.0
    4242013-08-30 00:38:10505.058.0823.584.00[505.0,58.0800018...[4.23215612958067...[8657.0,21.0][0.99758008757778...0.0
    4242013-08-30 02:25:00509.057.8423.624.00[509.0,57.8400001...[4.26567815832982...[8657.0,21.0][0.99758008757778...0.0
    4242013-08-30 02:34:40506.057.7823.633.00[506.0,57.7799987...[4.24053663676795...[8657.0,21.0][0.99758008757778...0.0
    4242013-08-30 09:29:59407.058.6123.594.00[407.0,58.6100006...[3.41086642522640...[36778.0,10.0][0.99972817223007...0.0
    4242013-08-31 07:34:03413.057.523.55.00[413.0,57.5,23.5,...[3.46114946835013...[36778.0,10.0][0.99972817223007...0.0
    4422013-08-27 16:36:27439.048.4223.844.00[439.0,48.4199981...[3.67904265521963...[36778.0,10.0][0.99972817223007...0.0
    4422013-08-31 21:13:26444.055.7923.34.00[444.0,55.7900009...[3.72094519115607...[8657.0,21.0][0.99758008757778...0.0
    4462013-08-28 10:31:18457.058.7622.783.00[457.0,58.7599983...[3.82989178459082...[8657.0,21.0][0.99758008757778...0.0
    4462013-08-28 13:22:08463.058.5122.684.00[463.0,58.5099983...[3.88017482771455...[8657.0,21.0][0.99758008757778...0.0
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+-------------------+---------+--------------+-----------------+-----------+-----+---------------------+--------------------+--------------+--------------------+----------+\n", + "|Room| Time|Value_co2|Value_humidity|Value_temperature|Value_light|label|vector_assembler_cols| features| rawPrediction| probability|prediction|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+-----+---------------------+--------------------+--------------+--------------------+----------+\n", + "| 415|2013-08-28 16:50:42| 450.0| 58.55| 22.49| 5.0| 0| [450.0,58.5499992...|[3.77122823427980...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 415|2013-08-28 17:29:22| 463.0| 58.73| 22.48| 13.0| 0| [463.0,58.7299995...|[3.88017482771455...| [5190.0,34.0]|[0.99349157733537...| 0.0|\n", + "| 417|2013-08-29 06:40:57| 345.0| 59.19| 23.52| 3.0| 0| [345.0,59.1899986...|[2.89127497961451...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 419|2013-08-30 08:50:01| 449.0| 60.86| 22.86| 26.0| 0| [449.0,60.8600006...|[3.76284772709251...| [1932.0,78.0]|[0.96119402985074...| 0.0|\n", + "| 423|2013-08-26 20:02:09| 511.0| 53.85| 23.93| 42.0| 1| [511.0,53.8499984...|[4.2824391727044,...| [56.0,268.0]|[0.17283950617283...| 1.0|\n", + "| 423|2013-08-27 03:13:03| 460.0| 52.27| 24.17| 4.0| 0| [460.0,52.2700004...|[3.85503330615268...| [2003.0,2.0]|[0.99900249376558...| 0.0|\n", + "| 423|2013-08-27 18:26:01| 354.0| 49.26| 24.14| 3.0| 0| [354.0,49.2599983...|[2.96669954430011...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 424|2013-08-29 05:54:43| 396.0| 55.64| 24.32| 2.0| 0| [396.0,55.6399993...|[3.31868084616622...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 424|2013-08-29 13:40:11| 381.0| 57.44| 23.74| 3.0| 0| [381.0,57.4399986...|[3.19297323835690...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 424|2013-08-29 15:36:01| 381.0| 57.41| 23.6| 4.0| 0| [381.0,57.4099998...|[3.19297323835690...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 424|2013-08-29 22:40:40| 471.0| 58.27| 23.52| 4.0| 0| [471.0,58.2700004...|[3.94721888521286...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 424|2013-08-30 00:38:10| 505.0| 58.08| 23.58| 4.0| 0| [505.0,58.0800018...|[4.23215612958067...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 424|2013-08-30 02:25:00| 509.0| 57.84| 23.62| 4.0| 0| [509.0,57.8400001...|[4.26567815832982...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 424|2013-08-30 02:34:40| 506.0| 57.78| 23.63| 3.0| 0| [506.0,57.7799987...|[4.24053663676795...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 424|2013-08-30 09:29:59| 407.0| 58.61| 23.59| 4.0| 0| [407.0,58.6100006...|[3.41086642522640...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 424|2013-08-31 07:34:03| 413.0| 57.5| 23.5| 5.0| 0| [413.0,57.5,23.5,...|[3.46114946835013...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 442|2013-08-27 16:36:27| 439.0| 48.42| 23.84| 4.0| 0| [439.0,48.4199981...|[3.67904265521963...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 442|2013-08-31 21:13:26| 444.0| 55.79| 23.3| 4.0| 0| [444.0,55.7900009...|[3.72094519115607...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 446|2013-08-28 10:31:18| 457.0| 58.76| 22.78| 3.0| 0| [457.0,58.7599983...|[3.82989178459082...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 446|2013-08-28 13:22:08| 463.0| 58.51| 22.68| 4.0| 0| [463.0,58.5099983...|[3.88017482771455...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+-----+---------------------+--------------------+--------------+--------------------+----------+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "transformed_df = bestModel.transform(valid)\n", + "transformed_df" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "bestModel.write().overwrite().save(\"~/saved_models/Clf_Tuned_Decision_Tree\")" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValue_co2Value_humidityValue_temperatureValue_light
    4152013-08-28 06:33:53465.056.5723.474.0
    4172013-08-28 23:07:38441.057.8423.3984.0
    4192013-08-31 00:12:08711.059.7723.58118.0
    4232013-08-31 12:51:46356.058.3922.853.0
    4242013-08-27 14:20:15389.048.4824.464.0
    4242013-08-29 14:12:51394.057.4123.714.0
    4422013-08-29 19:26:33451.058.4223.515.0
    4462013-08-28 12:18:58463.058.6122.72.0
    4482013-08-28 23:57:41466.058.8523.224.0
    4482013-08-29 06:17:30369.060.0723.314.0
    4482013-08-29 11:19:35370.060.6823.34.0
    4482013-08-29 17:25:54365.060.5923.063.0
    4562013-08-27 09:11:04429.050.8723.943.0
    4562013-08-27 19:38:43427.051.4123.914.0
    4562013-08-27 19:45:13431.051.4123.924.0
    4562013-08-30 04:26:57482.056.0824.183.0
    4562013-08-30 05:24:17484.056.224.123.0
    4562013-08-30 05:26:47474.056.2324.124.0
    4562013-08-30 15:05:36420.058.9723.462.0
    4562013-08-31 06:06:37436.056.5423.793.0
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+-------------------+---------+--------------+-----------------+-----------+\n", + "|Room| Time|Value_co2|Value_humidity|Value_temperature|Value_light|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+\n", + "| 415|2013-08-28 06:33:53| 465.0| 56.57| 23.47| 4.0|\n", + "| 417|2013-08-28 23:07:38| 441.0| 57.84| 23.39| 84.0|\n", + "| 419|2013-08-31 00:12:08| 711.0| 59.77| 23.58| 118.0|\n", + "| 423|2013-08-31 12:51:46| 356.0| 58.39| 22.85| 3.0|\n", + "| 424|2013-08-27 14:20:15| 389.0| 48.48| 24.46| 4.0|\n", + "| 424|2013-08-29 14:12:51| 394.0| 57.41| 23.71| 4.0|\n", + "| 442|2013-08-29 19:26:33| 451.0| 58.42| 23.51| 5.0|\n", + "| 446|2013-08-28 12:18:58| 463.0| 58.61| 22.7| 2.0|\n", + "| 448|2013-08-28 23:57:41| 466.0| 58.85| 23.22| 4.0|\n", + "| 448|2013-08-29 06:17:30| 369.0| 60.07| 23.31| 4.0|\n", + "| 448|2013-08-29 11:19:35| 370.0| 60.68| 23.3| 4.0|\n", + "| 448|2013-08-29 17:25:54| 365.0| 60.59| 23.06| 3.0|\n", + "| 456|2013-08-27 09:11:04| 429.0| 50.87| 23.94| 3.0|\n", + "| 456|2013-08-27 19:38:43| 427.0| 51.41| 23.91| 4.0|\n", + "| 456|2013-08-27 19:45:13| 431.0| 51.41| 23.92| 4.0|\n", + "| 456|2013-08-30 04:26:57| 482.0| 56.08| 24.18| 3.0|\n", + "| 456|2013-08-30 05:24:17| 484.0| 56.2| 24.12| 3.0|\n", + "| 456|2013-08-30 05:26:47| 474.0| 56.23| 24.12| 4.0|\n", + "| 456|2013-08-30 15:05:36| 420.0| 58.97| 23.46| 2.0|\n", + "| 456|2013-08-31 06:06:37| 436.0| 56.54| 23.79| 3.0|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test = test.drop('label')\n", + "test" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    RoomTimeValue_co2Value_humidityValue_temperatureValue_lightvector_assembler_colsfeaturesrawPredictionprobabilityprediction
    4152013-08-28 06:33:53465.056.5723.474.0[465.0,56.5699996...[3.89693584208913...[8657.0,21.0][0.99758008757778...0.0
    4172013-08-28 23:07:38441.057.8423.3984.0[441.0,57.8400001...[3.69580366959420...[703.0,327.0][0.68252427184466...0.0
    4192013-08-31 00:12:08711.059.7723.58118.0[711.0,59.7700004...[5.95854061016209...[3.0,7.0][0.3,0.7]1.0
    4232013-08-31 12:51:46356.058.3922.853.0[356.0,58.3899993...[2.98346055867468...[36778.0,10.0][0.99972817223007...0.0
    4242013-08-27 14:20:15389.048.4824.464.0[389.0,48.4799995...[3.26001729585520...[36778.0,10.0][0.99972817223007...0.0
    4242013-08-29 14:12:51394.057.4123.714.0[394.0,57.4099998...[3.30191983179165...[36778.0,10.0][0.99972817223007...0.0
    4422013-08-29 19:26:33451.058.4223.515.0[451.0,58.4199981...[3.77960874146709...[8657.0,21.0][0.99758008757778...0.0
    4462013-08-28 12:18:58463.058.6122.72.0[463.0,58.6100006...[3.88017482771455...[8657.0,21.0][0.99758008757778...0.0
    4482013-08-28 23:57:41466.058.8523.224.0[466.0,58.8499984...[3.90531634927642...[8657.0,21.0][0.99758008757778...0.0
    4482013-08-29 06:17:30369.060.0723.314.0[369.0,60.0699996...[3.09240715210944...[36778.0,10.0][0.99972817223007...0.0
    4482013-08-29 11:19:35370.060.6823.34.0[370.0,60.6800003...[3.10078765929672...[36778.0,10.0][0.99972817223007...0.0
    4482013-08-29 17:25:54365.060.5923.063.0[365.0,60.5900001...[3.05888512336028...[36778.0,10.0][0.99972817223007...0.0
    4562013-08-27 09:11:04429.050.8723.943.0[429.0,50.8699989...[3.59523758334674...[36778.0,10.0][0.99972817223007...0.0
    4562013-08-27 19:38:43427.051.4123.914.0[427.0,51.4099998...[3.57847656897217...[36778.0,10.0][0.99972817223007...0.0
    4562013-08-27 19:45:13431.051.4123.924.0[431.0,51.4099998...[3.61199859772132...[36778.0,10.0][0.99972817223007...0.0
    4562013-08-30 04:26:57482.056.0824.183.0[482.0,56.0800018...[4.03940446427303...[2003.0,2.0][0.99900249376558...0.0
    4562013-08-30 05:24:17484.056.224.123.0[484.0,56.2000007...[4.05616547864761...[2003.0,2.0][0.99900249376558...0.0
    4562013-08-30 05:26:47474.056.2324.124.0[474.0,56.2299995...[3.97236040677472...[2003.0,2.0][0.99900249376558...0.0
    4562013-08-30 15:05:36420.058.9723.462.0[420.0,58.9700012...[3.51981301866115...[36778.0,10.0][0.99972817223007...0.0
    4562013-08-31 06:06:37436.056.5423.793.0[436.0,56.5400009...[3.65390113365776...[36778.0,10.0][0.99972817223007...0.0
    \n", + "only showing top 20 rows\n" + ], + "text/plain": [ + "+----+-------------------+---------+--------------+-----------------+-----------+---------------------+--------------------+--------------+--------------------+----------+\n", + "|Room| Time|Value_co2|Value_humidity|Value_temperature|Value_light|vector_assembler_cols| features| rawPrediction| probability|prediction|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------------------+--------------------+--------------+--------------------+----------+\n", + "| 415|2013-08-28 06:33:53| 465.0| 56.57| 23.47| 4.0| [465.0,56.5699996...|[3.89693584208913...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 417|2013-08-28 23:07:38| 441.0| 57.84| 23.39| 84.0| [441.0,57.8400001...|[3.69580366959420...| [703.0,327.0]|[0.68252427184466...| 0.0|\n", + "| 419|2013-08-31 00:12:08| 711.0| 59.77| 23.58| 118.0| [711.0,59.7700004...|[5.95854061016209...| [3.0,7.0]| [0.3,0.7]| 1.0|\n", + "| 423|2013-08-31 12:51:46| 356.0| 58.39| 22.85| 3.0| [356.0,58.3899993...|[2.98346055867468...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 424|2013-08-27 14:20:15| 389.0| 48.48| 24.46| 4.0| [389.0,48.4799995...|[3.26001729585520...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 424|2013-08-29 14:12:51| 394.0| 57.41| 23.71| 4.0| [394.0,57.4099998...|[3.30191983179165...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 442|2013-08-29 19:26:33| 451.0| 58.42| 23.51| 5.0| [451.0,58.4199981...|[3.77960874146709...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 446|2013-08-28 12:18:58| 463.0| 58.61| 22.7| 2.0| [463.0,58.6100006...|[3.88017482771455...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 448|2013-08-28 23:57:41| 466.0| 58.85| 23.22| 4.0| [466.0,58.8499984...|[3.90531634927642...| [8657.0,21.0]|[0.99758008757778...| 0.0|\n", + "| 448|2013-08-29 06:17:30| 369.0| 60.07| 23.31| 4.0| [369.0,60.0699996...|[3.09240715210944...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 448|2013-08-29 11:19:35| 370.0| 60.68| 23.3| 4.0| [370.0,60.6800003...|[3.10078765929672...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 448|2013-08-29 17:25:54| 365.0| 60.59| 23.06| 3.0| [365.0,60.5900001...|[3.05888512336028...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 456|2013-08-27 09:11:04| 429.0| 50.87| 23.94| 3.0| [429.0,50.8699989...|[3.59523758334674...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 456|2013-08-27 19:38:43| 427.0| 51.41| 23.91| 4.0| [427.0,51.4099998...|[3.57847656897217...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 456|2013-08-27 19:45:13| 431.0| 51.41| 23.92| 4.0| [431.0,51.4099998...|[3.61199859772132...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 456|2013-08-30 04:26:57| 482.0| 56.08| 24.18| 3.0| [482.0,56.0800018...|[4.03940446427303...| [2003.0,2.0]|[0.99900249376558...| 0.0|\n", + "| 456|2013-08-30 05:24:17| 484.0| 56.2| 24.12| 3.0| [484.0,56.2000007...|[4.05616547864761...| [2003.0,2.0]|[0.99900249376558...| 0.0|\n", + "| 456|2013-08-30 05:26:47| 474.0| 56.23| 24.12| 4.0| [474.0,56.2299995...|[3.97236040677472...| [2003.0,2.0]|[0.99900249376558...| 0.0|\n", + "| 456|2013-08-30 15:05:36| 420.0| 58.97| 23.46| 2.0| [420.0,58.9700012...|[3.51981301866115...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "| 456|2013-08-31 06:06:37| 436.0| 56.54| 23.79| 3.0| [436.0,56.5400009...|[3.65390113365776...|[36778.0,10.0]|[0.99972817223007...| 0.0|\n", + "+----+-------------------+---------+--------------+-----------------+-----------+---------------------+--------------------+--------------+--------------------+----------+\n", + "only showing top 20 rows" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test_transformed_df = bestModel.transform(test)\n", + "test_transformed_df" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "test.coalesce(1).write.csv(path='file:///home/train/tez/test.csv', mode=\"overwrite\", header=\"true\")" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [], + "source": [ + "spark.stop()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venvspark", + "language": "python", + "name": "venvspark" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/SMART_BULDING_PROJECT_Capstone_undergraduate/dataframe_to_kafka.py b/SMART_BULDING_PROJECT_Capstone_undergraduate/dataframe_to_kafka.py new file mode 100644 index 0000000..24b1e14 --- /dev/null +++ b/SMART_BULDING_PROJECT_Capstone_undergraduate/dataframe_to_kafka.py @@ -0,0 +1,148 @@ +# coding: utf-8 +import pandas as pd +from kafka import KafkaProducer +import time, sys, os +from pathlib import Path +from datetime import datetime +import argparse +""" +Example: +python dataframe_to_kafka.py -i "D:/Datasets/iris.csv" -s "," -rst 0.5 -e "csv" -t iris -b "kafka_broker1:9092" "kafka_broker2:9092" -r 3 -shf "True" +""" + +class DataFrameToKafka: + + def __init__(self, input, sep, row_sleep_time, source_file_extension, bootstrap_servers, + topic, repeat, shuffle, key_index): + self.input = input + print("input: {}".format(self.input)) + self.sep = sep + print("sep: {}".format(self.sep)) + self.row_sleep_time = row_sleep_time + print("row_sleep_time: {}".format(self.row_sleep_time)) + self.repeat = repeat + print("repeat: {}".format(self.repeat)) + self.shuffle = shuffle + print("shuffle: {}".format(self.shuffle)) + self.df = self.read_source_file(source_file_extension) + self.topic = topic + print("topic: {}".format(self.topic)) + self.key_index = key_index + print("key_index: {}".format(self.key_index)) + print("bootstrap_servers: {}".format(bootstrap_servers)) + try: + self.producer = KafkaProducer(bootstrap_servers=bootstrap_servers) + except: + print("No Broker available") + + # puts all columns into one as string. Index -1 will be all columns + def turn_df_to_str(self, df): + x = df.to_string(header=False, + index=False, + index_names=False).split('\n') + + vals = [','.join(ele.split()) for ele in x] + return vals + + def read_source_file(self, extension='csv'): + if extension == 'csv': + if self.shuffle == "True": + df = pd.read_csv(self.input, sep=self.sep).sample(frac=1) + else: + df = pd.read_csv(self.input, sep=self.sep) + df = df.dropna() + + # put all cols into value column + df['value'] = self.turn_df_to_str(df) + return df + # if not csv, parquet + else: + if self.shuffle is "True": + df = pd.read_parquet(self.input, 'auto').sample(frac=1) + else: + df = pd.read_parquet(self.input, 'auto') + df = df.dropna() + # put all cols into value column + df['value'] = self.turn_df_to_str(df) + return df + + # Produce a pandas dataframe to kafka + def df_to_kafka(self): + + sayac = 0 + repeat_counter = 0 + df_size = len(self.df) * self.repeat + total_time = self.row_sleep_time * df_size + for i in range(0, self.repeat): + for index, row in self.df.iterrows(): + + if self.key_index == 1000: + self.producer.send(self.topic, key=str(index).encode(), value=row[-1].encode()) + # row[-1] corresponds to all columns which already put in one colum named value + # If -k or --key_index not used pandas df index will be sent to kafka as key + else: + self.producer.send(self.topic, key=str(row[self.key_index]).encode(), value=row[-1].encode()) + # if -k or --key_index used the column spesified in this option will be sent to kafka as key + self.producer.flush() + time.sleep(self.row_sleep_time) + sayac = sayac + 1 + remaining_per = 100 - (100 * (sayac / df_size)) + remaining_time_secs = (total_time - (self.row_sleep_time * sayac)) + remaining_time_mins = remaining_time_secs / 60 + print(str(index) + " - " + str(row[-1])) + print("%d/%d processed, %s %.2f will be completed in %.2f mins." % ( + sayac, df_size, "%", remaining_per, remaining_time_mins)) + + if sayac >= df_size: + break + self.producer.close() + + +if __name__ == "__main__": + # Boolean oprions parser + def str2bool(v): + if isinstance(v, bool): + return v + if v.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif v.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise argparse.ArgumentTypeError('Boolean value expected.') + + + ap = argparse.ArgumentParser() + ap.add_argument("-i", "--input", required=False, type=str, default="input/iris.csv", + help="Data path. Default: ./input/iris.csv") + ap.add_argument("-s", "--sep", required=False, type=str, default=",", + help="Delimiter. Default: ,") + ap.add_argument("-rst", "--row_sleep_time", required=False, type=float, default=0.5, + help="Sleep time in seconds per row. Default: 0.5") + ap.add_argument("-e", "--source_file_extension", required=False, type=str, default="csv", + help="Extension of data file. Default: csv") + ap.add_argument("-t", "--topic", required=False, type=str, default="test1", + help="Kafka topic. Default: test1") + ap.add_argument("-b", "--bootstrap_servers", required=False, nargs='+', default=["localhost:9092"], + help="Kafka bootstrap servers and port in a python list. Default: [localhost:9092]") + ap.add_argument("-r", "--repeat", required=False, type=int, default=1, + help="How many times to repeat dataset. Default: 1") + ap.add_argument("-shf", "--shuffle", required=False, type=str2bool, default=False, + help="Shuffle the rows?. Default: False") + ap.add_argument("-k", "--key_index", required=False, type=int, default=1000, + help="Which column will be send as key to kafka? If not used this option, pandas dataframe index will " + "be send. Default: 1000 indicates pandas index will be used.") + + args = vars(ap.parse_args()) + + df_to_kafka = DataFrameToKafka( + input=args['input'], + sep=args['sep'], + row_sleep_time=args['row_sleep_time'], + source_file_extension=args['source_file_extension'], + topic=args['topic'], + bootstrap_servers=args['bootstrap_servers'], + repeat=args['repeat'], + shuffle=args['shuffle'], + key_index=args['key_index'] + ) + df_to_kafka.df_to_kafka() diff --git a/SMART_BULDING_PROJECT_Capstone_undergraduate/elasticsearch_scripts b/SMART_BULDING_PROJECT_Capstone_undergraduate/elasticsearch_scripts new file mode 100644 index 0000000..e65d6b6 --- /dev/null +++ b/SMART_BULDING_PROJECT_Capstone_undergraduate/elasticsearch_scripts @@ -0,0 +1,20 @@ +GET /_cat/indices/ + +GET /smart-building-sensor/_search +{ + "query": { + "match_all": {} + } +} + + +DELETE /smart-building-sensor/ + +GET smart-building-sensor/_mapping?pretty + + + + + + + diff --git a/SMART_BULDING_PROJECT_Capstone_undergraduate/es-single-kibana-docker-compose.yml b/SMART_BULDING_PROJECT_Capstone_undergraduate/es-single-kibana-docker-compose.yml new file mode 100644 index 0000000..161fd7a --- /dev/null +++ b/SMART_BULDING_PROJECT_Capstone_undergraduate/es-single-kibana-docker-compose.yml @@ -0,0 +1,43 @@ +version: '2.2' +services: + es: + image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1 + container_name: es + environment: + - node.name=es + - cluster.name=es-docker-single + - discovery.seed_hosts=es + - cluster.initial_master_nodes=es + - bootstrap.memory_lock=true + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + ulimits: + memlock: + soft: -1 + hard: -1 + volumes: + - data:/usr/share/elasticsearch/data + ports: + - 9200:9200 + networks: + - elastic + + kib: + image: docker.elastic.co/kibana/kibana:7.12.1 + depends_on: + - es + container_name: kib + ports: + - 5601:5601 + environment: + ELASTICSEARCH_URL: http://es:9200 + ELASTICSEARCH_HOSTS: http://es:9200 + networks: + - elastic + +volumes: + data: + driver: local + +networks: + elastic: + driver: bridge diff --git a/SMART_BULDING_PROJECT_Capstone_undergraduate/terminal_operations b/SMART_BULDING_PROJECT_Capstone_undergraduate/terminal_operations new file mode 100644 index 0000000..40292e6 --- /dev/null +++ b/SMART_BULDING_PROJECT_Capstone_undergraduate/terminal_operations @@ -0,0 +1,31 @@ +GEREKLİ ORTAMLARIN AYAĞA KALDIRILMASI; + +~ sudo systemctl start zookeeper +~ sudo systemctl start kafka +~ sudo systemctl start docker +~ start-dfs.sh +~ sudo sysctl -w vm.max_map_count=262144 +~ docker-compose -f es-single-kibana.yml up -d + +VERİNİN HDFS ORTAMINA TAŞINMASI; + +~ hdfs dfs -put -p /home/train/project_fin/KETI/ /user/train/datasets/ + +JUPYTER NOTEBOOK AYAĞA KALDIRILMASI + +~ source ~/venvspark/bin/activate +~ jupyter notebook + +KAFKA PRODUCER AÇILMASI; + +~ source ~/data-generator/gen-env/bin/activate +~ cd data-generator +~ python dataframe_to_kafka.py --input ~/tez/test.csv/part-00000-0ebb56bc-34bf-4ed0-995e-5f78050631cc-c000.csv --topic office-input + + + + + + + +