From 8296bcb432fa68a9da84bc261c7f184923b1b230 Mon Sep 17 00:00:00 2001 From: ryderling <892686843@qq.com> Date: Mon, 10 Jan 2022 16:39:55 +0800 Subject: [PATCH] update --- configs/default.yaml | 27 +++ samples/FunctionCallGraph.png | Bin 0 -> 52120 bytes samples/PreProcess.py | 41 ++++ samples/README.md | 21 ++ samples/sample.jsonl | 1 + samples/sub_401000.png | Bin 0 -> 200293 bytes samples/sub_40103C.png | Bin 0 -> 62308 bytes src/DistTrainModel.py | 346 +++++++++++++++++++++++++++ src/models/HierarchicalGraphModel.py | 213 +++++++++++++++++ src/models/__init__.py | 0 src/requirement_conda.txt | 83 +++++++ src/utils/FunctionHelpers.py | 108 +++++++++ src/utils/ParameterClasses.py | 60 +++++ src/utils/PreProcessedDataset.py | 85 +++++++ src/utils/RealBatch.py | 24 ++ src/utils/Vocabulary.py | 91 +++++++ src/utils/__init__.py | 0 17 files changed, 1100 insertions(+) create mode 100644 configs/default.yaml create mode 100644 samples/FunctionCallGraph.png create mode 100644 samples/PreProcess.py create mode 100644 samples/README.md create mode 100644 samples/sample.jsonl create mode 100644 samples/sub_401000.png create mode 100644 samples/sub_40103C.png create mode 100644 src/DistTrainModel.py create mode 100644 src/models/HierarchicalGraphModel.py create mode 100644 src/models/__init__.py create mode 100644 src/requirement_conda.txt create mode 100644 src/utils/FunctionHelpers.py create mode 100644 src/utils/ParameterClasses.py create mode 100644 src/utils/PreProcessedDataset.py create mode 100644 src/utils/RealBatch.py create mode 100644 src/utils/Vocabulary.py create mode 100644 src/utils/__init__.py diff --git a/configs/default.yaml b/configs/default.yaml new file mode 100644 index 0000000..08ce646 --- /dev/null +++ b/configs/default.yaml @@ -0,0 +1,27 @@ +Data: + preprocess_root: "../data/processed_dataset/DatasetJSON/" + train_vocab_file: "../data/processed_dataset/train_external_function_name_vocab.jsonl" + max_vocab_size: 10000 # modify according to the result of 1BuildExternalVocab.py +Training: + cuda: True # enable GPU training if cuda is available + dist_backend: "nccl" # if using torch.distribution, the backend to be used + dist_port: "1234" + max_epoches: 10 + train_batch_size: 16 + test_batch_size: 32 + seed: 19920208 + only_test_path: 'None' +Model: + ablation_models: "Full" # "Full" + gnn_type: "GraphSAGE" # "GraphSAGE" / "GCN" + pool_type: "global_max_pool" # "global_max_pool" / "global_mean_pool" + acfg_node_init_dims: 11 + cfg_filters: "200-200" + fcg_filters: "200-200" + number_classes: 1 + drapout_rate: 0.2 +Optimizer: + name: "AdamW" # Adam / AdamW + learning_rate: 1e-3 # initial learning rate + weight_decay: 1e-5 # initial weight decay + learning_anneal: 1.1 # Annealing applied to learning rate after each epoch \ No newline at end of file diff --git a/samples/FunctionCallGraph.png b/samples/FunctionCallGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..988907a496403920baf716931164980f806ec37d GIT binary patch literal 52120 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

;GB%KEa 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

hZ8 zvu24g1`Qg41>3e05tabmF}gAG-d@3Ovt!#yVFX}yENbB-boELgEubbRX9j|(yCr}? z|7oUnDK(uMq|*iZx)X#!DN6cB!nQ_Zd5@EL?59&5A{x9SF9`Oj-A{|l7|MA9*WPO9moF+h28sJ7>jdHk^j)IYa(Hh7931$m+<}sToy=bd zGJFD^C?F-NtbiIoyr3vU0iJ1;-n5m}8T}Ia^lRc#1 zMTO_)E}cv0=3&Adm+NB`ct54jrpettD1we%4F34> zDacxw}@uej96MCH!LiAr!VDr zs2~vW3nZrh*OCII%P3P>h$tqG0*_b()USXdZODMW>{i|knww%KQ&)JCkZkolsOZ)- zi;v@H@P5?!6571W^1?nWuqtI@&Xq@D&OW`Zj&q)!eH8o5EJDT2%^3{2q@5>WSqSg0ID_2Ta=jW4&5cAGUn*)Q{ z%!YaMzpA3K{Dx+L;PD@|H%Q6FU-~VN`}AM`t|t1g=K#e$e+EOaz26+sA4){<=n9D6 zF0b{QFy&Y2{^5U8CC0zsp;s~_Zs`(DyI|8#cje?~N^mTnl6Z10~JZLBv-pjWkdV`?DK@6^vbS%!ib5y!YDsK#g_eex z09ueo95_>*oQbaKyfHLrYnl|zg!^ju3o|JDZMwjDzc(^bVUIMTg{GDQ)`Y29ssKt5 z+N1(9+^+L7m6z#zM*!l{*(pRC8-+%TWM?n12xA^~EY&l(k`dd!Rcwz~2y!FyiwtyE zQhKHeb8dDT4@)+q!bXrq{?!$QSbE4-J_b5$o(L$rxrqxvmyBts>V}6W-*IqmWho`! zBeH$EJ{IAc^=|vkuN4(v*8Fd7wPsVTRD%~gsI+E1Tz6nae4|nviz!t<*krAE@<~iF ztq}(NRCxfV4lt#$jl8e2=bbtaU@{S~GXleDGyc>wygNaGDy~6k$$H;Gl=LdzDt& z$g-c(b4IuLz1SgvCf^vj*%vkcbBA}E|62n5bj{E(Q_T0;g)^8F)Z8ARYx)1NHE0?r z6**m`loGqvD|}(?C6mvq+ z!T`~|;rRajE{-+Q<0=3o1cgZifW!tObgksEg_EZ(d1i9nPz^#)j9 z90K~^D)3pCV>IsuULXtOoU{G4wHIyv-OI%83%e|<6bQNMmVY_dme*RT-@R#qB@D9h zw3b3S?dcEd!lKRh-83JmdSbEzq;(u$)&;0#0mHvevQT3~HTo_J9SlVisMZ^ZnyjBP z*parW!2m49`NEkcVGWT)#nMVTtER^Itgj;RxXWZXucvlzz)0J;omP1D~XZ}#1i4?i7s;Q4){o+zkb+F!XF$2oT$oXYm(Ah0`MKk`dWY3na zxsT7f8CvOm9I7{);PGuB-`8e6oTr#Bm)sX-41#UM+fVBZ9~0Wn87aF8&Gj6mdE4oM z`d>%=ed^smBZDI^)qHY81G$i;G?r0H&}GH%yO9N^s;f`M2AWeL*pzWt}IYbE}o^@t@(-Z-y_r^8pvz`D1Gnxp= zA(bVU@hYgGXqGbRd2_Xo> zY+fN`wnA816L2@8df$8GGc~8Y7xLm^y6D{YhR`L)IzhluSF6d{T*pJ)TtxH|hH)P7 zVhktKqEp3wV#VFs|7HLU8oXRhO-$aLC`F>QZ#$g|6kzBb%|A?yL1 zpn8ik7N^@wFU&R)vmJHYESH1QSF3W;uC438Eh5wI{L)RpNo-1o7W37xKHLtUIhX#^ z$QOXx96vjhg3!GR=@)#NRt^!xI0g)==$HAH;4*(LF+UL~8xo{00`>rg4yJ|GM7>Lf7kl#Y&V!)fIU`Z*WCg3l z1roEsqh{2u5}uRok#07e#s-e>K<;l$&M${F_cKdvym#mG`wiPxw`Y>y)xZ6wW+5@K zlEIJ@xk!UJ?ZyhlyQ;K1MKW)hq^df@Dj0304?B(lAC#G$Q;~^Kd0A!uX0}Pr@`I5x zw#pMFzU>G3@ABR?A9an=YnOUK)>gvv?UxaVL$smK6>`BKkBCR6J5Y=9)wn~2TcxY=koWrRQZLHOKI zT?#{_w+u3LN435{gF`&`Jh54!^O9*Imr;^g&p54LrN#RPrS2T0|NN+I8#$767Gw)zYhor0juAe#^Cy;q51X zV*-Oo6cf8I&2gD_y0L4&Ruys6-8;pUJ*+s!`%u+8liUAm(6i$V0MRGzy!O#-DA{lU z;#N3SnKm9q|N35cxc=xw#TL8W!ieWiyG+>r<$qE7F7$X=M)dI8_PZXyCSW_Q`Sv_M z2RQofn{=Y5hxZzeSF=>oiPT7-uv$m81FNwXRV+DdgFZc*1vCh1Nk7n#`yOd}S zo(Mg2BWMi|YvHrs4*N4I?7&RNsQNm%0^IT?!+7bsXZCdJzFQsxG!=dlR-QWrQikjG z*@tc6(g@%=0uSu^lsl43^k_cbp-&;XT9HYK{Jc@Ge*ix+Sw}!-vCD*rVqtMSj;1DI4`>5w!dn1R%sP~&@6imW z&h)>RGk*A?%WJu$E@;`G#BA-^g`hRy+XWRo$>JXLSsO7190w&D3R%aTod=y_sP3-} z@AH%W_QxEp5LW44`+C`SQyOPy`uNl!TVJEDnK;C8umWi%Bm@`SI={{Jx13X3fSe^A zg9xfyK;PHZUf)&SzQU$PMLsV3UK5w0_2uG$JjKjmJ6Yi={&le_k#A;-0Ei(r=O1?0 z@slPtPu`6Zur}g!17f*4d@Cl7ZYBk<@WRJ z>uNdO>hVwpGy}i`i;P(}%@%;Aa-|TdPb-A0s;Ql#*|@vAdaE6JJRdYSe5}|Sw)DJi z$g&+wq+JTODOp?Gh0B0=MM$v+$SJZ_llLD~O$)vA2-CCz?*1KV-X9hkCHb2Sr4w+? zy-M{w8M;%#X{3oXC7BJ%76Z752@&69Y;%sj)*t2Zf%Kx|TxA|C*VJm#Ln;2M>9>!r zfLXMXCgaGGBX|J|+Cuoo-wLp@h^WAPyJ;&_%dC*JJ5pYSC-8fTTQv7}xx5vo3f!TKQV= z{;&M3({D%PdvaVWr(da3%Hm23$x@J|WYFcQw@0W0D|~+JN|kNh?e6TU@|Ajqo~>$Q zm3Y2$M=xp2<)ZLDDswkEOZ^MT0KV+i-$0P-cB?gk(|2c<94{l`IuJngD1JqJzW+@5*rwyTUGSy^@4Fvmm!KgGs)dG(Nf0$@@96S!@F!If7MSj*tPuy%cw? zaq$D91}2}J^n>gXb_QwE9pZmNd#=UM~@BiBtR6UkVD%9KpJ?rrr55SK+lHKD%e5!x*LA%T| zQNXeA8r#P<5`CFGH?8D?MjDz z&8x4EPJilka#(D{Lb3SSOjLbdO$a6!vE2Y>UwmJ6qgyKrBsndmacDlZbnp)PIIcB2*ibV!J*4w!WEN@*e{>MVi#Nj0UOH*Zr+y>KkZjQV`i3skZb3h?K{ zQj3sa0g9n@d0t4&91y8pCLwy&ppeiUD&+a;?$QIcxOP0@Ml_*tFL*R~MR9R6wJ<^0 zJSgtzefPuIVRj>G3bA&ER+zIYujAV1?cJV|uDaD#1I;y{+p@A=)z|>+2U<&Eu^4Ou zrUHnMY?Y>pOfi75=FkYdqWrh-9vm?#SsiSKaq){d=f=g(>M^m@B-~xxX_vO%o!>C> zlzb=ZyLgQHQ#I%1%XS8Sz_|7b;${q^cYX;WCNUPWH{j{54~W5X1~9w*V#cfLgf!{j zYON!t$sh&lQH_`6$e7q{iKE=ky>k(B$%fxORd6P(A_`d<=O%MR#Qk6tO1usrlP7U* zKkzKYq|5{W`pI)J4+d|c`z|crr003TEOiawwwGzXuxO)NpOc%{lFjqMiWC5~ke6v# zErr>&d~;g}q{D8pMMBIEXo`iZS!5h<`)KEBE!8p_#&L{JLg&*pcQRR8&XVBaj9;J0OKHHv2J@caMHUAQohI zJgB3JipazhQ^kCR*f`|@%Jz=fSr*bmIAI{uPjZ_RoGpm=AZU3tvGkWOo+>sQPl)DR zJM)Keiu--#x*>OBm;j<=7lxYrdGF zWEQ_4n6KvXcz(PhxL4uMuIJY>rc96ekswMLRmF(B;)|a-9=Zcn#OjcF1s=-*I;`_M z81?5qi+2+0xm;&I+nW2Hf}kDXXF7^Wl@OVgK@vHSbf&q^lQryd@c^Jgw}i?GYWkga zaESqSKM|*iDX1qo{&8}v!K+yHJE2tVfN{iE^HCmpQ(g zEFkZ2)pxEfQ>W=v=2eSAgVRm5H;hjc_)IYS<^6o))o{4kVT1G1g4LMQvsxGJ68sta zVj}PO=x~QDJyNZ!jNaEY@w$l($O0`hwu?`Gpf~kp$6t}vCix>B(K z3IZ>59TfUvvhe~etFI19@e@f_=HnlC5;g-UO$H50E@8MUUzm?ed&qzenI5DEkz&q% zt(c)RrF}|6s+?xw{}VvLyQ1IwZV`a2iZVc70n=ArS%g~$ z;Gh?u$58S#9!x7>H{C@+!+6H$FOr4bBk|ZOrv=S@6W=T8c)uPo2%?0OL4!x095jNj zX$`_&dgRywH6?-i0G=Q(yrnS87#TJUlIsJZoJvH4X*B~YTS3Iq67+^}U%6#|iq0=c z;QoWYAmQneppA06H(D$E2$dOp9(rQrJ>_8xZ`f%YW|)YYULaMz^t>qN=`mhZ$Q==u zGfqX&w=+?xUjzoE0I+dq#LvA>d%rQ^u4rM1TD;WE`|xV1uDiesi~Y=kv=*ld3^rhB+}=giWYn!?QVcV5d&~8ol281CfAmjJUEmn2 ze*ycbpS_CcV#ba4B95~fycS%#RY)Y;E{vCJ3&S!Ix%G0Q8`3IKav{Id=)ZqrvifsR3(4w6ma>xJ2{EYP%%#WO=6 z2@E}B7zKrvp9;{aqh#C)K1fGQW&zGeFw3&I{|G*HD&)acn003Xbf-s59Zd1FsU=8L zjORXdJ;eK^OQ2Jkxd6RW>V+$6YEUftD?>e_c+*`O$AT%+&c~8_AzT#~v166&>@S>6 z1Y&k7td%cgO>5r(j$0s$UCG`?6$#;NN~7BTt;eyjhH!i~*yY_?W0DTZ`)bB))pfhP1p}R%!2OA?|?aDdkSYI+hK@ zDhf;wT`_&|X>Bk<1nr>f=1p-Opa-WYCea#ivpUPzTYpY}axHaZ+V`@*(h76=7u0n5!sz}#$+ zfEQ3*!u~RDSGxzrXy-Z@|A4@+~yC-V@{J?Z>Um{lp z;b=}dd2Veo=>O5?0C0yg>VJwYf`+|9-%Er1Qw>e5lpIipB;rpqz4ksC38I8yyowc$ z8Ag{Ka=6lWQvef$UH#h^8)UJ}_(@fhkD3zB2V&#>F`7-Q)Z-ne zYO9byV$2YI#Li+8OkxiTK*ZM0#UANC?GVQCs7XX2$>84T!6n2B{7`}(kq^03e-?!g zl;fJ#sdM;dX3oIU91MM8$(sN_CA~R0O)VTYg9DA!<=_P^q$@PhA)ddAAHMu;C73g| zGAWK<%b^tiTQwy#`4JK7gPaN1hXmIb&Wl-%Dxlq}p_d1Phb&U+D&#<$bEj8^RR|TK6ZT+s4xiIvsfBHNE6SW zd{mXMWp3caQWDi2cBfrZ4e2)VpaDG?(62!!#1N8TO{3jieg^=9gs5P~6VetL$HghL z@vHM(_o?EQ0t68?Qs`h$ge5%&FdD``zPT&1{mtkTD74Ys^v7GF6cmi2cbG%QH^)5P zH;nWt=6!p{(fG>5$7j|p^0J-;cPaKo{&-^GLU*xWDd+EWI2gsPe*T=dD+p`XYLd)7 z>sFe%N&hg`t_1fJAQK68+kX3PE|N0nbX(=q&+rqE-?88!(X-6#twTdYEteSbKZgV2 zOWLCmRmt#o^;?bUtvI8UtP=e=>;3g9@r*W@DMJ_OvKlj^FUUO_Z*GhfQwFlE;PudF z1rcpKp)65lYAh&Wiea@@NZ%~5;XSG_M>3o7MXF0m)H->B*B zx*63((O?lBveMn{gZEA@P60s?**rHVVqWs~Me8gqYw05rhF4<>XIjKWTpoOdHT3>P z$WothH^}&AX8z|KFA=|)+oR7ahoEQqVz$(FQ4b%FIQk~>r!;B_LeS}y9bBt_LI1OjUE{_cInf_1_36bE66qIK6Q&ra zvBp<8Ai22VadIR(v4X_Aa)JWqM-yC+j+k16dOy|VsVOV>U21uU)JC^I+}aPQMpy{|g!BG7(!qKb#ce0@?A{^is#_{%vp6LmNiB={B_UsRu#6BaIfuH*r2(NIr z)tn*N&@FXa0H zfh0z0Rm>t!N+AKC?=gG|eEeL(d6`d^8y#N;j(soi!h6n#rwD5L21Q=J)gX?F^};qB z?5*l6vHtA#Qu5cJn-K?ihtbN zhv3pdM$VLpQ~XoR>3PiHN=H4bQm5_56^e!29`}7};k8;-=rMRNW$l)2q3KnLC!T!5 z&mzl}EDt%2#!4DF#OrWfUe8ZgiRt)d^^ZwZ3zhVT^IF>rkVV;Ihk1ec3kwh^VBL|L zbHZCA!K3=6B=)u1#H;m>H{B=}_JX$7M&hEkS2*}vyl(>Xt{MVb9#ouvRNy9);Mg1UzhmTFtNAN zE?tTMql15lIjfzX3lUZ;IU6(3x5j3@h*t!#Vfeh(9<5*-exW3v%{7dirbbU*qISah zQ}2E;UPV?))J&+qar?__?d3Jj<5B;gUgpZHWP4thN&d@0$cbRgzEQ#cL^)14x#Zk4(JCy^a%5qFX$+;pGGp{ z)~!yGkEo#&-!J*d?BNb>CPfEBtO%c#RfO+*Dy|E^o!nrNYmznIdpgRG?q^b7eYxLP zi2C}k$2h_5Ghd1einHbzt5#e)pc~#qudCcKn8xAUX_ioUpS(b27O-Pwr=7Uet=%?; zKClayJ7CS&^`!X(@yjgwBU>V`GV3a0v@?;@a>2Ty!el+bsjBeaTx|DHlEms-{xs)G zpkD>A#dOWa7Jl{go=cp?Asby#ZeU)ellJKe9)c2xdN;w|Q2M?%?tqGJFlWrcC1oY zdZK*jeeKqYmcNwHJ0Dm4Jt!`?7p_dY6^O2gHb9D_%r?Y+-NT>gK%SR&sSxi0;@>Y~ z&PP&q%3VgAR)}?};UH${ZPcJf(ZE2_NtwJsI$svOYUrJmz2mThz1||J#FP(GnBCo! zvhLG*G9kSu1K+-10_7U{+tol{@Xb(8R@}1-F;la~wDequMNT#?u@Kdhl^xEt5+jm= znUhF_YtNG$Au~2V_Q%1E-bQT{u$xJ(Q-Yac`b*_Gutjkp%+>R<%bN|v+ zAcpp9;L5L@PS!>WhSm!lh0mrD^Vltk*meu(Z8mKF7zI)MAb%eawZzuo%7UHeBeey6 z6~}GT@HL-Q9&FHQV-6;J*Ira%!Ebj4q+WXF(^mYt0pFcL zgpL7+(DIWA4l9Q!)VXes~ZPS3&;C0q}`%Q5F^#v%N@q08M|+-sqV!GS{qH8R$szbW*7ue3`Co4lo_#pB zF%jW{F%lC^b{kmW7pjJqlw?@vUdK$5@i{zFyy6FZELB)IuPddRhU%$U~ zI1`;K(K!LV%_yy1Jf8P$6}g5s#L}mnqM({Hk$zcoqL_QGYbCn}j{ki+VrQ39u}4f5 zV%S%7bbIBEQ?vBVZXm%3iP^|0?GV+!mJ~(i&Up<*r1g zI8j$Wi4}_>lN9p0r=B2+Ssr$8D$Hm)xKW?Xa8lJ7R#~@_lM^a z%dAq&I1D%5biTRMHEd<0IW@K^jz!4BvqKH4Wsu%$hI^ae?ox|*tJYxN#Ch6|TQ0aa zX2u{-a$>QI{D}~kM>P|Ig%u9iYa1Qim|-l{uT}cnYb5r)o@LDK8N|DN(3sRFCiYt{l*2u3cXtRF0(DGRlUha7;U)c( zQFw9M>2~mf-I5w?&wGpHX+8RX-_kdTvJ^MbgizPi&mJ}K?s2^OIt}!H6Ay!N8yug8 z{Tk-q)_l*H+zy}Z`0{Z6El{*WO{(ps(`!RJpqOwuMq8$^u16bckzd_{7aW>z<_~qU zu=RG#lE0eeOSva2CP;CIQ_f)L7$w+L^X@?y=zsdpIyA>~qrcB=?qG5#IkJpN-gS)w z;d`K{zPCyi3P~533x$*j7>7U#1Q^=_eGc27EnUC5 z>)6|~sHLbgshK;LtakUPrL3$JKvv>c!$dQL7)kPb`~NC{I5e%Ik+}wCF#qfP9pOJW znseo^HNetSBLiTu$d#%l+HBm>mR;>!PH*kzzEW+y7bW(C7YTND|I=}6cqTd&89r

#HCEtEetTYk+U?b5--T$^=dr$6XX$8q!|l*7|Kn#0rCpCi9U$yI3mv4&lF zldQo{Q<_}%>$zc;fZttekW!F_^U1Rkn^teH+#l?eXyD;9ekEkC@VK2(c-YZ7RVd=i z=(63B&M3F$1+Puj-l7H}{aY2#=%Ln$lup&HqprOrHpcWJuV1 zNAF0WTx9F?^at1DIr7sos}y086J3WKDo8%yc|gDN*WQq~XA*ik;#R{bs{EKY zmakDWZ*Gr&4c$LGPZ^unBPXE$c8Ez;&BfzYYy@1HeN8lT0AgmrM6tND95-SyU%nc6KU2>V9Ze_7) z)XJ4#B=75D9jvrH(kbK1J=D_HX}DW<=o~as49&^B;I=$GAlqrEA)#Amkl9f>nb$hk zW-&TlzWrSJ>uZC&;JfC_`Ql^LT=go#sv$1()#W}ZSG@)A?xOy(DCbdWC#! z{&?xq+Uu^|l@M!bYneDR@fY+fPTAw5)e_Ltm9^tBbw#zpPg>!(L#`eE6TG&LZeROuLuGbwM=O0iewzpRhp|ATIL&JM=yC!8pnRp3?c{($i?Xm&M;$rvk^7c^}IEZ#&YZ_U)W=%7^wuc&i z`x32co4;tS+H!5M4Lg{nKIT=2x>-C$nlg%iDf*MXNM4g>^5O|^l_ZiJD{~!lls6EabyS33YD#NAY*=o~=D1VV0}^6^Jo@^22{`=d8Ww@;8YHfgxv?)J?Y!%H@+fvN zG+K)AgSv{^^$m;HfcXSJ{dQrM&*8;li9u;=Ql({22{}F*{mV0uy4>>hPs2&}n@{Z= zJsYfEtYbgrIA%+|Gay;O`|TFi?Sy|XZVnum=bLgv#b^pcIp}f?vGBRQUP;E``HVQ8 zS})@T^G8GRT)_gcoRg-s?*3Bxr2G*@gTcXG&6Nki$UIbN-|C1pbO3(x^u;NXM0(kf zgRa=X_+ZV!fSK9vFo13~C1VR(rww=Q5W<$)(~Uy?q{YJ`ZMdbFa)%#_Cns#>FMm0< zkd8((wBk0Pr?6rnSH#x@X8=Kvo$4njbt`^YcKeBj3tr^>Zss9I2Nf z8RneMT|h4P>7L3^@)o3rrrMW;o|XlkF5$|DjVXBtAe2+tN(iKyos`Cvq{2~?ym5Q; zRb3oJHf|CsseeNxYfRBE^Gx4Vp|`yS9m{9ZS@?my#NHJBWzB=f%tCK;OE*LsEpF7THpCMIWBGsZbt^87ELGI3=(@YM<;SA|t+6ez zn$$Jq-Sm)#*4VsiJV22i?~_QMzj-=}q|JjLR^42^?^AmDP3-Ii)SgQ2Q~`AV6<<~| zSa_+IANusrtvpa_R8=-vk#W2n{oH23`}hsZU#cf{xD!!?*OF+(#Vr?kD1&5pFs1odF<$CgW#W!kzE&E^+$dO#p$a+e$J^{OJMhC^_q}fU(&d(s zv^?8`=~c*61t6T>Oe9|Asw%Zo^wD(9X|n%e7E!#vPOR^TzWvzi0?ZbD`dX>4uCjS9ObbO>=Fl1 zK?(Xw?aaAzs>cK?T8%C|%0`>p{xyTAG?s>r`zG>rA@0IzR!TcS={@}9@QmnyT`rwf zg(6AC*Mi_g+W`qh{#7fJ=te$Zj#bFDD z*=uA6yqlOtdq*U{+N8MT;|J%?JibOsdWLlD!1uz~qmLN)=8^*uHG_2KtsTFTHRm%+ zC$UQh!Y@41N|8&dL~anaN5{uKSbiN$T{!W$XmrT6UfubfBxrv=)Zo#qsb5Z zZFQApkVVL4`K^i`xZk7orw?~p405Baj~?RxI`0;t7%*EUg3QaU4wAAa-Y3V2L(;32 zEd(@=Xar)t6L$AP(8`y#W zz+YJ>OGPh}ohWb?|9Ve3|M?ue6*x<6YjlsC68|>d%-=twt}&C3T3nJyuYLi(zRLge zSuT@aEv0+?$1oZE^O+?{*vdQJ{A1AeReubg>b;VIYe7E-AnxY?Jai1N#|<+iUrzYvpIUQRt)I?DSf_P|ZAPQ$ua zUBiu7U47JXt}Q&syePB2{=BxfW>kW9(DUbVkjUfX8&a;W#bc#;c~^OPD~P?d4m!FD zxiA#hG;}KKB5G^By7*l0ag;o?v#Y7$GoXxotgCAukrMUTOs~PKr+aR{#zG|iKVQnk z{+^ig;=|9a6wOE|g?V2NrjEs!75B3zzEzVc2$D5UG>@J9qB|~VI+?bT_Qp?Ip-ZiP}Nu&3iY#S|b#Qh%= z1=ccp<&uI7kX#G0>5%^&enTQEUTgS@wvNBe`SzWiz%Ly&Rs{`I*EKZ^_+v(7Wn1sY zb1>)M@2lXsZc(c3d>PPD0)nNJ32LYu;^GV;eH-Hx&t#*Oo}PGccBjG5dmk9w7x%TW zxGRPe=@;Smu1q7Srt-(>Yw5TQRF#Fdx4q8)utFC7pFN}1-$lrGEfDCvD& z{vcyY{oLpq_igc7=uHWc{+co}FSNjmZ{LW>a)JX*LE@0U{%Dbdh-NtmNL~VzQj#4G zw<*ey^tk0Gp6l-j#teNNZ`8U9zsQ#N=X&yYlAvFyL9pVNUh6rUuNr|fBBg6z-+MSm zU=VUrEkggfr`CyEHH);2bP{Z)sDmtreC&f}kB%s|50qQh$8rZUgD3T@6Q|nS>wkp zPJ8LC=@PA`(|Up$!AL)B#3WIxVAJ1!t2v*7QVm9nUmLM>_1n!Fpe4r{>Gn{M-45cz zZ~oZpB425hMc!YtZ)%w6#!a~&%*JTa4CMBalJyGN&Ays6MHfxPMvxC=JjWPMJDnwCGiC&zDg*T z(bD(b)XP~Rm>zzTW~Y%__Gg`OyKg*iS6=`Uw@rdl>>>;5BU%V177nVK9yevF#h@K| z_qQUOv*l~P)k1mllv$DGapd(W!)vBzo` z{K3`ZU`jM6kdXB=RlT!r5W1v<8)LTgoBY%C7qGsX3lx0q2>kS`7dM^NIy=$y~2v?eBFQ9 z**V_5vecYL)a(g8lzL`+Qzab3|6i6JCA&_@;o&XVPEYL3G+(!FwI^jUUq1N{aZUqa8>YADarXhk$I~?UyBA8(HK<_%7>`8%D&0s`A(^hh}zs5@qeC( z-V!?r5X!_>2)`W>?8eo(nNJlQ>O)hzyG1$vW|q1R>uvXJsB@RTb^G>^T1}a0cRs9RQ6M?);SL7+UuK0#A>R7ESMTJQh01HU5r~Ssf?7YaCNq0G zjW7sGQt*oq~V${tRn_HpU2-_QzOTaR9`8~ed z-}~hrZ>aHy*CGM}Q)l;+p}NiU^Lo5SLYP35PX5kOXb1}_MU3@xRNK=3*y=OQ+4tCr z9!g0i5EQ^*@`~SjIxT~~5`8M}i%D#psT7+as;!|-GY;gfGN*SsKNNhK`;qxaJ6B*x zVXnPg6W1O`%8296{2N zsl;%c8jTo@KNiCY^xItm9$eIojU6)btdb8NBogpWO+KAjihKUz1r3>t(~N@V=ykp7 zSAo^l4^ci^T5jN=_3~#IQiaJoZ0emC5t(&Z?x&!E(nWs${Iu-Ky`{~$Xp@qtQLj^< zoc#Gk*A&qtyJl+xGWvskr4KY~p?@4GNm*E2JAc`w<=ZDat#==hG-Y{tgJ>-hA_f0C z@8p`Q7}7(FGcY z&~q&4Ka|ow?-T7ib9Li6Be(Q7(j}vP);f(52UA13my$29FLD#LL=v};yeoDfa{rt^ z56gKfB8*|F2R8f3$Hzoevk{;WglbpCOlvpbc#=($3wU3B~}nVO@XmggDtTWEohk=5L=iJun+nhiiuJ zx{E&73=9aqepvW(v3mzH`sIrE=?Mhbs%nCyEwir=ceKk+*p?cfH#f@-kBnr#ecSA$ zteoL&&ZLmK9=Q?ZUlnfJg)tX-csIfsUJ&#p;`PlE? z{ep`m5242*)A-dEC-UImNtv*6zMr9)DmofIuhSVfgJ7NlQ!2-|V}8|NtTFVo>N&~n zZr_VPl}t-i9UQzL5zwzyxwu+DpIww5{B@V(200^qz>kyDaR83b*=2b$u_{IEY{!n2 zQF+x9DlM-SFo&zIk3lE!iqSTmIb;XWkacAf6V1I^US8@v_FgB$&j6RRthU(NI^FyE z!VlvcC5}uNdkWe46z614?=(fHy_uG?3iKzSb$h;lU;oz@VY$~iC0M`YnH(+k zm1m0=A5UuDTvpsClp*|U%B`1I@zklV`>*FIJQiMj9`F4&s{|h*pQps>1dg;G)0xCW zxAH4?BWmY@3b#kx+ZADKseGFd6Sl`Pd)E_xzz((@3etSZh6@2_^oDs!Z347iPb3TwgTHU(ag( z9yWj8z2d@H0*T=HbT?rr1erpLLZ4ohpFlr5L0Hu{5IdI4<)CXSri0(;Ge=2FA+{gg){$MZ8Yi!s*{LkLLeGFrpgCU}X0)t@fE}OsPEwA|L6@je+Eyfaq zmF5B{oL=}XjT>5hhBMKWNRmHx@hOdo`={)YHllcQln!hmu^GAc^UIC&Ylp}=#`zVF zb+hA_+aw3D+M7VIggOp@tqku z&*R)U&Y#y^_@!RT6XDeF{rv!8hL5lZT?;EgcCDE06m@=%mG@kbdigR!{SGJN&za0> z2lBPf0E}Pd^z^*=aby=fyWB9DFzV{x)zza>vdph z?D#TIK{Z1?n1r!s)8|tbZm9eBQQQZ!#Cme`m9#?GMR)qMZU8!(OQz;Ww$yE7m{4wFSo zBQYy8EVmhlN^PBv`?HG~OZl711^D#P%=DGTTTO;|a|T{Q3GTZS&zKb9 z8aiyBe2nvrgGiB~2LJKbhz&QI#$Lu!`{cTTQHZ-?Rh5HLLK)ji@CYQ(P?zY_@v$)cZ<)|N4^ES`+a?XTCqFd zpx!|1UAU%ut;Ae&v9J7rj*Y3Ij?IH~Xp|~vK>O#r!^=zfW4Ho~RQEp*T-TDn>OJUc zz=UJ_;Aw%TY`qyHnSmjWaleL2O0r+q=QUxGBE~j|Wf@-ylIY-Qq|@mdJIf>^#}rD` z&o_mk2rU=js4**hk2){cYDi}Iuu7_^M84$eQ>Q}Ci1}{ds)8E-&BoS z=Cyl}SK3%!3#;w)wV$~+cb@$Xj5|L&AJ%MjheM@Fet};=mEVbz*?PR$e6uB!^^~G?uO8zm7^}2wx?znySNc;#>{?&XVCd1Ow*a87o9Dn@iP7rZk5k~GhlSgIk zAI!&FMEti@*yNu zc!t6g(_e9R2+ROao=9U)S!!u1tjtCRzS24F>-Xx&NuwtX4QF(CW~aOvxWpfx7SB84 z=va7=rOo!4f{{}}M`G6ym53Yx!@!#|GpWmRK0c_Y?V|cibX~70X1U?z`KM++1V|md zY2p++^rhuhxUfi;6vw2J0I}^!qCi#ED|K_ix=W$@K*?zH=F@6gduw)!yk?IbJEX0p75@6Q zB}O66er_+<`t^WTnX6S)G#QM>czZIPoE5t zu9^D}X%TE9E;Oj#x)=&^Y0gOHzn-d+_mjMO5cGal`&>fbZEp%Retpqg=;`u=*??z9 z>LH)PkN*3|e7ptCe|#DhY;c&Zy~ewLf2YPLMMq3V=0UTfa|gL35a^*qzg&-*gUzom z3?#ssiNSSd$Q&cCz&sPSB&(t+%w-uhdoX6TZ7)KHH=}qm)W?^ zp@#4SN{bB&>?^PaBum_;?hZHq7{PMy81N}uHn^}uu$JgqQ|_5J zZ*aU3*a-9{7pLC4($dz?$JVnL1kr~Yc`UJqTdiVqWz*I`Yd@h<^s*Xw89;oTNGTkt zz7xN_hIf($GEu#`jLN)q7^@GyT1Dj+LdE`tl*gQn((aaCo89A%&(;=e1i1KskCOmU z)EnCqGoUW-N^IWOp^8RQ^K(H5&HfB~B6;IWcbJBs>LvdZ}5UB0< zGLK(5XJ1%kbz{0j)8bQ=Wuu|aB4Hs#xtNrS1~>O&QITCbo1AD1&lzlqZ2kO6xMKo? zRAh=LyiS#Sct~5?6M58F>6iS1S9D(a*HNkKa-H) zixnstxBIHHn3k59UIgayto5({(~tqMWsfhtgVF;x{BvGW`ti3GVK5*-S}*6I?66RF zJgFxst{#G5B{7zc}b#x#k~o zDDGb_D6q#aoToOP8U!6*<#k`bUM7Dq8DYN(NNDWc_MmO+_v}%B`S++wHzg)J z#swEXBqb@ZS4$lf^d~%dEp}^7Miu$9&GymA3dGBSETskNyS%e_B|jk&Mde-RCQYB1xP8QUTf>K_Na%Ss{MTA{C8+w zK>afNeWM=#+l{K9XG}VxX$zG@oR`UNG0ZeE@#_z66FaQ;0Xu@}TK4zvuBNPtUh+Q@ zR4XUiWay@1pAeSmO1+ZmyXF5Mod+A@!-wN%fspX|%&=vm{foM(8PK)((+=;&-M6UV zSg}AdD2RTY|CcLwPk6_iasL8%&Jla@V53fA_c=3NlN~4qB8hMjEzqM_X5pND*XUplSe9iw`DN*vU< zOM$fV^jhSW*uIO@n^(NOGZWQD8zpmB@!t9J@RXhv-bFj|c5xN!*4O5;SO--?7cO_! zB`Y)ga@VrRsCT~`ja$v$-@l^Vds_13e7!lE*fscQN9De0{#EtM5X^gwBnc^%o|+V6 za7gu<|L%YCq3Yir*u_!m5O`AQGA__I3hneiObYp} zyQVOkk<7ezciMWZ6ptYZAI?bR^8$bTC|@$0Ch-7P*vi#ava*UD$oJ$UZny#SOYO3P z-@khaM)g;$zDyKSn@>u5@cNCO(L_@4cpK4j=n`B#aU=)~bf=)u!xk1KIS=uAW1Xv4 zS@-ShP`9S_L->Q5QxsRF-RB@TEG>_Uh}x+;<5l`0E%K`1Np16MgT+l7e|WV@#*1-+ zbN&Q|X}%<0{|qMieY+Ky(hVk(tOH$5B}Bg&hU2pyGtS4w^=KREM@A$a!f2>Qg4wVD zjLyLbU<#sjDO+2XE7yXp!xD)^WXg@(w<4J9h#yjF2k!W26wLBZ#{juX%RjerxV2hI zs!ghJWad!2f(%RKKF+j^JDLzTfe5R`W@mZjTH{WPe1;@A=V*QnSzdqD!~Zc5z-!+9 z)frCjWDt0TkZ^WQ%Z_tSbnSC_nuvzJy1f3`MkPUY7lN}dGv_pW_@q4+i&#&*Z6_|> zLNzhTm%f^u3+GmVQQTe2ABucNw#$W_zq8LNv>&qxfs?bIJ@9MU2&C$0_hWTUH*PkBAsw z%<91R#dpllNv^>t^HPHCbg>;V@rf5`2(fHxJ}GvZ0J+WC(Ti=)TBQxXxCk+~;TW&8N`D7l!f>>!Oj_%EqxQu$s> z4+YqN`0sc<$rPj(S1vZ)ZF8G#EU;)Uu)5Kpe7MmtlW?TMs3eF{RX};;K#C8cw#YA? zIVxbiO{TY4bf3JuK0YwsKC&)_BH&*tVAbqR2R?$BD$rJ&8-nO8Adci$Pd$QgJO4N^ zYGd=U)W3?et0()Y{t@K9xykBIjUxnNm^Y+R(Py9**{o8ZgtAi?_J?kq>P|6=yd@-L zQMCHd9@78pf{G4w^atca+y@zBQhb=$@!j@OSdL1`3BFagt4J#0FR`a6bR;F?g^rci zB{~N*CTn)6v9sREuln@y0BZ8EU}>@LGuZKfiA22T3P~(M7SB~5CQuK|RcGhYC-SH* zb-6Zk)bbRHuKR=ccIWCVxb-3HNZtIv_0ItN!t4WG7+YY-6e-<7x)*xHd&ORry+aC0 zmB};q>c0O1>$-`Ddkh1!Uqje`#Xi)=#ufg)40!kb^Hn8m0XsBVUO8tH#RJ%*zN&r- zjR%^+B$uvnD7&ugrjY20qB{kdCnP6V&s(CIdRER$>L{2iL6_m_`|G>^ubIg}4pBl< z^F0*y=t~#=usq(nmtW5R^e<2hEoG}+!nSFARo-ZL1W{5rLaxIl%8J}-yd@Xsd#Ekw zja6ljCwqibbpg+-N})t^rQ&nN^gGi&%@dhHNOxmtQ>5=wt@TnZF<=X@?qsfcLrv?n{1=CC|7%;x)4<5Z} z#{aNxT*c2=<2=kL@A2e_ecvmn{T!GNaSj!|e^k*yN8H)TuIcBAgU^mOt3M&)E{KbN zPf+M;J}{hf4EeSFjbx59lFbcB_MP{}0Y70$k(1~Q{rKr;Bu*%&8hE!MXGlbJyU@~{tB6La{nm`c9DZaf z=*uhYWLzbfxR|Wh@Y9n6+ouH8JMcScG$R(L6ej^m@#uPpZUDX<%0Q|0F`q@sWha#@yZPxP~| zGTRM?lY}=C_F;8YFGoTg$Ha{2KpFN`8RN=H3GqCs9?Tm(%R1`Im$vNHsPF2{&Nre~ zc%xT*$fHE^PLw8VK!+tTD9|i+MIUbqWq_9%^^s?2x@n%>T^Bn8L*jnUE7ru8c+@z= z45P>FQgr^jhgJib8`->4uH*jc@ToldChh6jF#PoecW3okDXE@|S6giD7{PnOuA}`a zGiM3z0+i6WjvRXgIi}c7O`Xk2?*UB7akh3S5e4452%xNx#7jwHH|5}r9gtt7+aX<} zIY*FPid>{$pbZuv2_&bc%Ds3}|d5H8D6(*fuC6SdkZ|>sqg{dtx=$HfYlt zU8^w*d<(ahp88-a4DD$K6v+?AGo;(O>C&YA<%^hin1U|>Pcyj%oF9MD4;``YX?2#} zzQ}q_KuS!fH=ZKjN&>qFs}Q*lYsgx@ALrep9vzQ>@9+bd^yrHle=(NdXVcbNK#UfD8BYM+-A(G~T`aa>5l3ud6Fkmv9dqf%MUq zTAc__Yn5Yd6jg~1Xsm-Nret<2=L=G1CqYt3{S(p3g`lK|syCiK+%~P_bC^ShgORJh z(iB-XP@aUInwmbb@`RK^gpI|tM@uU=l8k)8x!MV@EXSSD?a6kmo%MngC1)3|X=8E0M$cBTN5ttI(?VVi5Z>xYtRec<`-;O`K?5Kd*qpa^#qN}Nb) zmWeEHA4{I-T9Z$4B49cNweH>)k&2tf`6Zq7jp5eo>FznPg{k$hijLL3uNw^d0dV>w zyd#P7%1kj_d@f2mr8e0k!21SWn4^mdP3e#bizDMqG_lbNtEsSiWAEm7tQaJF6kC)h zi_!jbNa_8{1^mr>9bWu!9ThYzu4c*+agelRXP z!>#CX{mYt-XdEH?Mp#>zC+ zZ^Yf&x~ILYOj%%5g_5%RlIntrYy>YmQ2&Z|C>2W;nrpKE73)-RriLtarj*TW#&QOlJg#`|aD3uCA>|`BSVmZj`JHVNkAlbuAYT zNz_#GwZ*4iyK*Is8N>68c9x2_J5L~S9;YRhJx`zIe;rSIAS%}Lz%mQ##mlb<@FohE z(L(=^Wf)~b<>^zKi5-_=jZgwcfGcTiWnkbIUD6%!_bHi_C){>+Y_oOXhn+fwS8DoF z_2I)ID#6-(w(m&P2{&F*eMYqT_Fbm@SF2BZhNsa$WUhB7qxnJO4R#J51HHZlz+q{j zb=$muHfjz3W2%9xvc0KUyR#i%XsZi-bCFqkf~Xn<-gPxp7h*4`Xx0Rn4L}PVr*pKC z=cO>#&Xsg5mM`+g&6}a5-G=bsKZH^>q@IZrnKM)<#UPU2-E!mipeR1D9@N zuIx02SzYc3A0MG4s>f^ubgz7Vbgk@s*!$6IZOhF`-x65Nq}F19q~0~a!nIKk&{!#{ zRxJaAZ~zr7u2Y}(mdmtX{9NW}@{Bnx-?S>!Z&Ta?pLB$d=&TNUG&%WWzhlClt^qZ% zeN-Bio;t1~l=vlSSaI;Rv-3f^3=5@`ziso67gV4W>K0hx69!0Q{FbM^-g}zq;xt`} z9XxqM`w_q09pT4QpNYX^xytrwYb&!{i_>QL%>dB@Xw#J|Qj#8XJW&Dx z$Ld49%)gz2w$DyZYu*gn)u}0FE1N4+C;Fzj>Dv~z8OiePg-%Wasp$?-D z0OI#E1uOQ(XEYRsyr&)_H+abtG}Q@8By#(3Zi&0qKqX8tVR!6RJ)Oguz=xPtu?|8S zdEV6QY}{qPsR<_Jc+)<|E6#e^*l3pQ&UHpcv+Rn)jiiW>S?x9N7+x<*<=#4<#_4B~ zqSCpRF#?)j0vUF=p_hIuJ4%0@0dwb$Bi)t~BvUwr)a_!x0zuf$uM7u4IX=k|IXVsn zz#sJ|TZ_%&>9&<(p(8oR1mFagDsR3zuv-$EduM{6>>%=fbmWlwGTl$0)5pwtJSqap zCjhz63kF!LtnxuGWNewgULf`i1~gTl0IZBI^RTcm1T3a#7kGuD%pVf#AQ*oJDQe(( zhaE>+Z-9{k4x}wDi)&thauHkYY^gM?l}8P0t=z8RN|O^E;pv5WQqjDXD!4}$21JqH z_Ulr?U$KJnS6Z0u_l6w!x3BlE3+$FM5LM^Rv$De2R2@aW>gOrhrA+s4LRaRZ8)Eo| ze^N-K`?n-O+r95cvSR(ocZBYfVj&~;L3QgZGhScsKhjK|vYTkforioZ8#=Ex1B{S_ zSigAP^z5*~!dOeyg*uZ1vSXUbl&?s=jUzkRPW-Ch%{oLHw%dq2O|Gu(M| zAW_7{W7Pl#=TA-Zw6v52%vBBGaJ7)m1K11}Fr_-c}+wzZEn9CkluDoELm)FM` z**H2I=`|4(hV8O?+4v%4w+S#c;hhp0pOox+fH*R5xzX0=^zAvd(j_cDyHb=d~FlX!1cA}r(EA@lz5s&m# zuvD4-Bj3KMk5TpikWwBTYAkzxZqpNWS)K8lef&$%x@TqR+`FxweT1&=1=RVEKz4(I zVCvW8gB)>pfM7Wwijx_xi=(9G-siqISn4u5@h+h<7V^U|jc}>r)2CMZ`YBW>UP*v! z>)}BH4W$@5tRxgmY*bt?%*pA)WPlO(vLaQLim*qth z*X8z`Io7vYue?QkYH!ZYp4WWjol(yjfvsx$gXZ3Vyq7n_owE4&7%)rB&EdM;kfQK3 z`RsnL+)4!QTuW=YEx#t{=vJQ%!_}-)-hX^^Cg%**{lyFU2?I*}YIb$?K&980Yhpa6 zC|1Y^9%mQ@A>(uT@<(|#a@xXHWr?pC_h&jW1nx-Nl8_Nf%4Oxv_W`;e<>=>LGt$jx zl%}Jnm$=^N9`NoRcmcfE;D5$4%*r2^F)M{zz}0jZ3mW#s$HFdJzin&gK0prC^(RnC z4}#28Awek1XZS`{Grz8*?{B0+BX3C^z~Rw7wbN-pd8f%OqR69_2*>8;XFXr-tVHV0%tiP(Xb z$^C53*9j{JH|Q6Ho4nDFf)JMMx}d-g4RbHz5dTekB-IRzCMd+g|R57$iLdqx|oo;_~^enC;ABFPxkk}kd7>lydw=xZuMfh z>}HZ?QdM?Kw^35u_>3w(pERG;TQq9%2}-5Nu@RbOOPXjC%}v0SC~;WS(rcx?Uq;yp zIRD>Se*hc;E+7!-2QEtwUruV^pC@pP<($yel#t<0A@^lN4JJ@PIMz^|4*M8iT+E@K zoT!OFB-VPlI^tv{85qor*-J)Oj2{<)d=>!ECJKQG0Q~-|ZpChrccM3ck2U{?gPfsZ z^n^x*0VNMQL0oO#Sf;*suJv%=0yv)w0hD&pV91Fx_pxjF0iaYjG>nZ>${;xgE}Uq% z*_WMdZ8_hyL*gc_4s;p;y2Z*ydXlhu zgHrmf#LSS1a0Ytpi0-kD(jfw%bB{k@IT4fN@~`Sl?@h*9XzJ6iT}CURfZKv0sFI}O}WJC@ryJboAl?+CLMoD9>%4zWYMN{5qpm`zrCB^H5oR2g6((br~qNMZNld>QCO8A3Wmq?ZGIx&qc;N;)J-(AAv2*mFW$=qcOK zu|I&%VLD?Bbjdk*?tKFuf|f6UJUWAvK)3#D9!MN?2ksQT%!1B)AKgv=Ms5~r`FwM6 z;Tg=qY|VIePMlkICSg5kuUx$=HLibsD z6d%Uw(W5tpSFw3{15!1Q*|%U6qyb@id|Axo#G?mwQ1t-7-K>G5^NpQ~#T>Iy-XluQ zKZzqcePh$1)TtL7HwcLc-zyp9xN^e7HA3p?8aM!lER!fPk$NeL@iyMh`KErXKC9Q0 zsD>s3eL*Y^uC!#4@Q?27PA;-1P4D%$XW$V*&rzKINY>R$y_BVtjBM`9PGNk zG`jOoEa{!1;UgG$5DpB35L_szA_UAWnOav%%NLUp{G4w>K72TH^#=8{oZSA9khrhJ zd??wa29yHuJU%Nb>Yl&gKiYIyM~tuz9dmc9vg}KT9!C~?T3a99x9=XlxFZpE0Ti-& z5M!J;Yt&p&BUginE9=Xk4F1O@0Fj_WIwpRz55%&vb8T&>+O3L;$0Km9P!+8p?z2F63{=C_ZC;(O<@x6o0{Wia+*J9T#Z3;DiKWLjYU#BE{5}KtwHUDOJy&<@)s*n3H{>u`aC9`5^*ckh%KN#q!eJS(#F6?eFC$ z?wjOaxu(I8WtXk3Z$|f6+o=syu$DC`mh$E@&cSB{MakQ_-np9gx%_x7Pc8S1EVr_; zxB1xO3+`!o&Y0nt2{}k@i35vTPaYE#&^hC@$eVY?9eXR*wJ7W0-~ar_0QllY%AbRv z4ZX;MjH>hS70zw|^KPvp3m)4X0ilVbCz3({m}WoVySFoa-4b{a;6#W8E@U0>4w+cN zN|tj@7ma_$f@#{Iy4qeO(8vdRsoM4YV7tqBt2sUG3gQ+(UFEuVO;=EBg?2}_r*V22 zl#yDo>@qfiYC18`ZccLn1&>DQk18m*2mu26;%HTYjgBw~$2e7I4o#g1a+|(VV5fgT z7UcI-CdOW$J#(hnzU_!tbBr@cMcVM+xhY(irQ2;sDwX_E$p|XtSG*YfvZtwO2^l=^-$v?GKkq8i60UF?%a_t6}uu1^~Rwo1%0)CqK^8)e^e>=`yOM@rlwGbXsyh zJs0vVBQ`q`1yZCS64ZB~)7rXAPzhnspZV$)^G4Y=IAABD_v*QU3C*f*hb~<-uJ%J1 zYxgsiCweVZ9|sH+4#&#Cz(Jp_DMT+CA>sB?wV%mR_E%1UYhbKS^eHp10TUID}Ec=%d-xWv8D@{t#~o#vfpaTMfMZU6ee2_j&Xu zy3%j+sNh%%bokuLO!!rLd>sJS9IZL#DRPS+m>t0&brm!Li(#tvvU@kaz7Sg2m{!!d zS>fSyuKcl!Y#a&5d*S%owgj&Qb2xj1$J|VCW90rLN1ofJtS;V?)$I}R_uNw-$_KNM z3wmg}TQNV^Nay>5M*-m^*j|kW@VcpvP9&H%+NxaZXhg+?ET`(>g?1R)1q7|U*aKHz z4=>L39|b&op}iSmqREaMB#OYn(D-EU4PbO>x4E55gr;_F`vwJWEGt@ye1E0GqW!>) z$bo@4sl48ypUcv_6*uWj{IV6LohK!!Y~>S^`5$KhCQ4QGMZR=`rdxE>7?Rft7wei z8gdUFCpgoO-*14A)N?u zkOwLB%aYkIc+PdUNhn%QwCf0do$cQ&m=vS89@<4_a-w8vyL>coh|Vf0ouv2F94&O= zDfTfTby!7onCCXl8%!S@^Y#vPD*3-OXZWq?k0ix4s9`t} znnE33G>GQs(l@X3T~Ue!qGYU#IE3mYwzHE-PhS5a@=apkX6!4zNHZ7y&2MRsI#)us ze}GuU>GV@gzmBGk!&zS4y?X^%y4+M5!mop7&WODeYxvrcCyfX35QhZGBgq2M4i;o} zYq_AskC*RAPBbKNs=4STR5X?+eoH1Rn7CdUJnJXf<&iac!4db{!(4sxw-f2ZEt)zy zhTe`BFH*`fPIC6OOS9Ys0dQNfs6jKmV zPZRY*oso<=>GKSxggC`_{I%nQ3@|Mq`koi$!%N)Usse$Ir4c8e5BQA8H?dsp`;s9! zq#882$PbcTsBu zHAPZea;+SQCN;`&O+D;whwt^oE2*ft`QyFD^~ca5Fnxx6DUK0HBT3eJcYM3o-Q^_C zxOX4$IN5{A*Ijfa#m7zSir!kMM_~LKefXzHmcpj~xxCtC+8{ZW9VeebP1x=qrD&TN zIsETZ1^(?)y}NctgF|}1GeF9D6&^DHdT2sY4~lhTGIB2<%8`AXYg>U6`IN;$>J;Lm z%<5s5Hd*rL74v0xfB%rlaQ`)Dh>}vy>ay&9_fQHRbXNrPl+y~L1TTLeNcymc_T##RFI+gE z&UeSwmRU)ey?wMYV+*q>`5f66N0$b*5>KnHS{V#dc(d~KPjA}F?(5j6ex!P}!_@P< zXX3ZbE8PqjqEc+Z40KF)OlD?p=Unh`3FSI0^t!P< z@F0gd4>*W{cDQ2N(#t8huheaB{d^OduEEoZr{!Ka*WFLpJimEbNr-a)4O2S9$o-{E zqXv$qL}(RI(j4pz!in=7)tO(2Cu`*Y+MV;i4+8jsdOgMxV}q9tHV=^0ro>lBA@cB z6ES3BWYl9Xd>4Y}AuPS8e}JR&Y+O|z^0O{F+4RO(D>n7>Q?nUkjRNYW1~>Z9Yci6* z9Jfjj3pm-_#m%#ml}oqrod2L5-&HU-f^Yy786yC^!*#PgXZG+g<%z=O>@mKpq)kapzFeKRUGNBs=Vl_iY5S$VY7w%V+YX|0i@t#%u{4OA} zM8La?<1B`+yfbcp73p0h!(vpqkm4LunF8FL#DSkU24zxH$o3DgLPA6IIK0FF%SWuY zbr%0RHFC^>)9&!Wn=oorRC{AMJ2Qe+sTo8kCN#MIeQAJjzgJ{G5rk1j0JxHH1SVPd z^+38^PfGpLI8uYV)jw<{oQ}+qc*u6WScsLN8lb#MxNanUd&UjBn+`0reqSr2w6v zS}Cdv2z47u(#U?O)ZUjN#shVot7(@^a76|9>f1m=-%6(yn@tE#qj=8nw;3AzJ07&;V9Uu#0y4~(0@0h0WoygdCOYP`M3 zr&!)_nXU-{an%7VhHlNZ`{%qyd;(Va6Z|RkX&T)q6WA@}o$d|+%U*cIVGjq2&bJ>} z^?el>*Nr*3e;b_hMtMTLGxe=@jKA>s~wh6bLkb0eeW=gL^AeAsvQ$L7d%3Jwe6x2eZ=pn0I^1 zEHb9?xo>*{yC7s2WY5v_JcMGO)gaI5T$2e9K>%-jMS$8b(|+$C1OZ(z4W&Tt(D6xq zGdJm{qV+>26=$FipD}?+1$hO$!z@UB-09vuZM6^U3(<6f`!RT37Jp|(s#F|4r#&Wy z0DlV0PUqR_0KImBO(#QVchF`*GIJ^wy&oihA7y>uah)fz+gvdZEr&D%H6Ed7kL_;< z0SP!q2c(dc_rb;IIhm>6NzVlKc6VTvGx6I1Q0Jv;0(Q>|elabc;svN;fep3}eui%J z?p^NAwE*v84P<_2SU6y;t03A|_Js;kTk1#f>xH%$8g&|}s5%ckywhuq5_<3T^Xoyl zN;X#;tn{g43n)E~qNd26RwZJ6JU+;GgUHatdNaR~ANF<%ichH*Pbr~GkMKc?^}Z#L zty$Qju_nk&zn1Tz?;YyH{|kip-v5j4CB_C+wtps==iBMsft^AWm(l|)dq5Zc?N^My z0TVeHN=Z>7odgJKqCW}p6dVES3`%O2p=26$6a5V{tG0&NlU=zE9zjj^8L21y(4kLW zm}alpV!re`%xdVc+vCUlrQ8>?aTV^$j{;p8=gnk*TXS+SKraOQ(&ziTJ?wqhE9hET za&N)APPm8*x1Y#tkJh8uzx_M-Tl{R+$c};1Sw~m zlXa%wfvYPOc}_~n`cu2@c$izScLdXc50;}%T41k)u^X$fC=JU4|Xw3xZt8J3Mv7J3z|^JfpevP1&!_Wl|lisL1V99AH&Kabb?MRsM)Wa zF{@JG9^BobPVmm0Cqy_A<~?f24+Gt+IcI2i8n*aw_79#2Y%#M@Nx>lu817ga<=OaS zpQ_aFu&MMq6(~biLCUNid_|3P2fBIOYaNik7MhGbn##qspB)O9k0UpER#=b={U0N- zhQhD6o8<*oY(d;^JKf<>y~}`yDN{X4kAz)jCF1SwX}ZuiW0alzD~)9aKaSLNSxMyw zal7CoP}ay0#$1T8KzHqPIj}U1j>UaLTS#%$K5S!Op{6Kw_1yP`eX!>dv!ZP$B2cMdp;tQvXy78wrcU?oi@VRq zK=-OeYE_Y`5$kKN4xWY^*-rYYc)G|AzF^VSIVi^yFgfxm@&aaF|#+o8W#0CM;R+1)@5(ciKd6g z&D$S6cJ#%50Ec6tLgZX$AI4VSpeJTDe~OA{-nVZT*VfL}1F#4aU+bY06gL8LxQLLw zYj4CXCXAI-xthj!4X@$fCa)&1Vo+dDUsGcwDLr1U-c}DmQ|N_b(&Wr4$cr-8cQ{#B zbg0Xr!4Dtg0gWy;GT7T&FbTfj(^#*J7QnQy<5KhM*FE;HVE_W#UYGMpz`C(gn>VK> zIPD&k9p}(Z@~PkS8@XBu>dn~dk$DMf+Y?M=;*u3m+7h|`rTPLw>$EF6oeJkB5729J~s{hmFqkD=Qze3WN8H@r7su;;3 z1ty_Q^~&6y@vrYEx{E=Y9C}$p930n@io(|GRsQw&ol=XAoIij5Os?hE=cj+OMdE)w z4Zv&BR9Qc#;5K!xLj+`lQbqsV{aEo=c+XE)c#hwhb>3q>yhPF6w!?^TpniJ(b8}mM zO*ogSKSO}$4#U>OYQUFWrR9@bOX0h<#DH}<|BYUW>O%juR|3OEs%xBmel>j6+fIW` zu>l)q8jd}f)a@~$we{72C#kz_tBbUNP59PKhN_*b;(EyV<`mDb6Hsn;u$1#%@yP<4 zdH)&J;on;;9e+w&|@`;?@&qr6mumq`h!nT&eHg4lA(l)N42R zeBiyHX8l`jtMBvJqd(y@=*i`j*~M8^zmu~mc46~18~Hzfl-zhlmO)-3nsRS#r9#I@ zs+QkG^WO!e?r1m)z44K;ln&KQh`K=Iv|Q|q?ya2P!|J(FM-Co|`F$mSOLk%#Sz24! zA9TCVq?PXDdI=jsrJd$hb>F>!*IQL?W%=8=obi(&S_H^~6jxqP5BRUgeb)Q30t#(?A4T>Fvc-iffiJ8$C(mbQgt!Pn1l`C6jlU|wXhP}@2IgPh4C|3Oogv|aoqSYk&gGDH<* z(KZeGtM}`i#%JBz_8^qjb@>_?4;r#JhN~3*;Kj`=}LpO*AECwYdUY$7 zM`o6yWga(P-KuZiedcaL9#&=AIS!Krf4E}8-lXtEg|}~1zkquqVJB#)z{c(sIh>;= z)xESFeF?KYw|yq>)W!2GM&hOBQL7ih3Y0(9>!q82sn_5zEY-MYDDw^#=^}obBco1Y zw3kG4USkBmw+CS_qJ9N@+X(wc@S$j9iU5z|k zI9XFS@rr4f-Mz&zgRSheXTzfdY$qb#W_G$veJ}(6f82bdFsAHy5Vr7EX+o02zQxa3 z3hcqZpX0w+DO=u%0OWU%#kv*!#g&1(9^-iB`C$pgfksiI!KOPW2fw8DY%>Hrp!LD~ z*dtRL2Jfz^K7!}*@tgg!lMC@i7j&DxsNQ*omgZP|-+bD=*79obb?LHX-_uesw(nkz zH-$5=-fnd3tV4Q4{VD1c{`H4lBbJ*w(W#BAoV$_CP4nT2oUn`OhU$LOThoC8BO1-C zLy4Y8nHxFW@359Vn=wSafZ2!?y~)3R&;H&katqh7JK4|gnOb?1$knmGmx}#XCT+fF zwzmo1+`^};O7l4nMjOVaaPjR1%J0o~PCM0kUz{u|v~=k9gv6D}&xyjO*u93CB=AIQ zVEqJsUz)#?s_)u9UXy#{%73yh8LH^~k@7J&p0!@_?6JjhjuOh?OqB6h>caJ>o8f{S zPL#li0Y7aO%j37Z9k04SAc$>-aZ&3o5XiyR9hJ-(6Yt5x{%h^1qCc*|iyN3fuf>aQ zEtA-sO3Sg-LzhTnnZoFYl78Ls#(XM=bomsAr%IWH`#koL3>gr+zwDNuiHkN3H|&X$ zlkY0fz0wx%hMEl{FnOC#O*T4fK(>~q|F9Tie={CnxA2sV4l`k>Vyf!yCvNGnJ5S|I zl9djRTQ#K(JqwdLl3(h$qM272sw~<4=9F>6uUGHYs*fLN<5Hm|+3$1Fn{GB1+x+M6 zWV`Lc;3{$T3{jPPT?MJ7;3FDxFbw}7_P5w}_iPn(&$Q{=aog-%27FSG4 z#>`94VQSZOP>Tak=hiw`dcKW12dFF3TlaO{7mVNF$dyn(^ z-f{il7{&~E+j`ft)-&gCUJ5_lxlbv+@OwqpOMCrx%u2rROKIzyQQY~* z1}niAe_@1UU;Vk_3`aH23elB{z7MXYEv2H$yvQkud29NRi&N~BZ|})VsB1gB8j_Rq zk(s04Gqt(Tb0`~O|2gu$HNh50Gth4YHt+L%y`(5YbGJmF`&4>327G4KVo&0kCErm*H z{=f!=Sbo%9-CNBg0`<@Dq)(>E@-EnH)Efrc8#9p5K`@WP4!3YTdoqc`1G~zCC|<<< z;y-i#t`?88Up2XO!n-5yx^hs%l6cts1X`JAPKC1Qac!#+J^wSZulKRBv$yr-_wOUE zO_VNXWj@8iC}sG@dbDyl9z8%2(yZCQfnjk5xuAmhef|EPu4m!TtMXP&LkGZ$ljkRu zpmCA|u@L}^`Iy*{>xn*a&w)p&xs1;Iy*$75k-3LG!=%I1>UHoXD#VA%hF!%*8$M_7 z{E$x||9Z6k^=zeJS7YMBbv?;^h|UBA*?j(I-Q(VbI6X(_+et(vfB81{9AS}1IVF@6 z6n`XIP*+Q0?yA4^k<%@~u>HltbN#fx&ylpo2`;*|?Dt`-elE&iANB75FKa|8O;x) zq5|O5jydw0me&bHb>E1|FWX?)pQp`DuqZ*G)PHSK0PrtgD%$~qDIokxZ20#W#UiDg zH*5CG0M2@`KQ%yxBLI6 z>q4N;1z|`@zwchq%->%+tjg_lbh@@oEIVY4BRgz-ti8{!tV=ZBl2=0-4)hP6<)e>= z@|rz&e%3_4AEsRQYi83BuVf8Fww;6ee`eigE7MDS{a|}tMn7@>#E;p#4@HSSL-ql@ z!LF!ti89VVDzxdehX1jx4`Dl9YKDWo{G;S^mic=lT>!4*d}cVl3Ni8IIju?_Zr$+5 znU4oN62_xcV#K;KXrb$lPGY`J=;*ATZT2kE$+2rT%~>JPan3%)ZigZ}3%UeOxavBTTA z*hX&5J~LxyNEBM1WXf0lnrjz8?~XTDiX4}DDx~6>*FvvSim@f0f@msui3DRcqqJ*s;{u68<}W0`qgr3hwi)u32ms z5*nX=zLer+pQ86|C;B}+>N<>7r7-DwO1)@GB3oCsz!WFPO#Iimj~QBRW4f6#HycEX zJ73V&sCupm8d-gKG_v3wXw?wM_1r;K^m^Q&dsk{xA%~HE9H&E2DSQ_hl3u&>pAHM# z^**s@?(VG+{7ZNbbo;#107z-HsZM;aPyC=F-zep|J0wapJB93LEQves%4u+E~Mqv4nOm^fnFs` z$0$psXH-`{=vX|^x=|V4A^NaN%5#PL+4Tnmev1T!_{$uk_FC9HRp4F75SiA!=cs){ z%H=sI`JcF`q(ifQk9?lLBR^D)8y#`oG9+)0WUqQ_n;*2nNbK}86*oLId2hv7Z#RS= zK+raYSta0eMD&(g^WMu9DeJ5*^xp<}Px}olnBuVHRxvbj_7Z6sCemgsicXM;m&iR` z&Q*Db#L29^@&rr4DM7J!6hHZNTD?rZokq52F3Zq6i#9WP_`K>Phc}^tsgt@a@z5bI za8~c=k0a$jZH|d9^GDbpaBxKEdjUx32--Pu>#=jJTAp`=&n5`aAB? za{|e7`!AmhgMMS%$fi`(DOvM@c~|02HuiG z@Rb8|TL-9hr;D{MV(|kme@-aH8pb7|E6$mo86NvY)1psK??}gni^|n+U?kT68i^x+ zp0M$1xtKYPPs<5U8K;KWwoug_)^8|0Fut85<8&n#8%sFv7Fg)+C+I4qFta?DQ$(LvxNcseEPX=S5w}H4fp5^;n(YLN(X1LZF{{Afbzr z{&h~r$^_q6!MXKat-#43+vOlvT5(kF2oLIO7P;obfqS%lr-JJ4a>U<=KXUr=IYYyG zzaD*0aBncyVRQ^ed$Zr83^Jd_=^5Cm%VK!N>*v%z7cOT&2Y)?nEo^_Ewkg3l%-m8z z?feu*-3FWKk9RfK&!5;g#Z9 z-@pr}vMG6xuyw>V-d@hb)q0q@f(@b5{TZEc*o%ISy0d+NG~>lb!rY9hARCtHi3hjbVY;d+GWIkH*(~k7$ycR45Cur?UZK z!FFBw+Ma29^vR)TXs{%QS06Z>j#8Sb{@sb95Skd>rQQ#&+;Ny&c|FNWO^uRFWQ@a{ z6QZ=;7{<0Oaxl|VGwS1Ohl_Mk#d>bnAN{#4XcC3pw82?Qm`%7_l-;;4o9U4U-XZec zz2l|tg+JW(8#Xy@*tGlWg#INga;}Y@Qw!X4X3*S7+WoPyTf1JsJ~4~XrZ7N@Fo{EJ zc_~9{JEHe-)SXTk$g+k>y7zv(LK%_l$eiJ&YS>6D>oB5SSy| z1RKsUa=L~n5zw;I+V^i01h&ZmZ*V+Xe6+yOj#(lLT#F$L~g-@n!Q)Z&V3w>ZkYmqLo3d0$Ag7bR4 zp26v|zk-XGzbE_O_oxj<#nU!zV8rGgV<-pE)Q;K>6$DXsTx;iMb;yd!eH_Xd7|wzZ zQ@^c^;LRGv>^%#tB&ANB)p5hWJ+DcABc%?VixGF)oLLr&PYP4;-2B+SHb3?*1`iic zdj}@)z;n!;|N*{lvEK`Td2|IlE1t>hXZST+% z_^7*@Y{Z7X8yG#-ni~*)wIIPoY3qbnVDp7&t0KJ19BKWXC(`Nr@!aamzZXW6H~+Vq z0R(y2Z{L^OUaewD>Sph3oz?mj`ibGkBvst^=az!{&d&%VvE6QltdKnY0^^~go9x9F zb=*8W!%@mfH~Zy-KbpBtaz+%5gx~1jxKesRkC*P7eEfsT7*+Fk<=|vg#mYPwyQ<<{ z%8`ofN&W@)D{$^7Qx7Um2-vGg*si?0@MP+K#r}EBUuW-v?e_O5cz!j#YPqhK>^k{K zhR8nq8s&_)cyiwKf%06u)bCoWSL;s`e!s2&KqjqH-~{~q`EY;FnU}9#y^g&6;cMY{ z=C>zKoaCsjk*iph^5HhJraRNxh%%)rfS@`$FRR6W^4VuY2Tde(4Dd zZ^=n$%@1O(2<&il_4ikZclT~H{Qai!hWuVkJXap%jYE(&`}xm4cv;P<8_fcCA}KyD zlG;~)Us+AnzgM;@Y7Ro#NZi=|Vthqt<9m|vTqBxX`rnI2P^tDLiY2bEdpe7g$mETm zMP;Xd@8vKU{r-v7&IutPuO`duim})4gW06{v)!X?m>W3p$H|#r^Y;kxX82f`Ss55(xad*7SWqy+1fV`3??89%_eXPWYII4Y~!20=@GY zgGFuVq`zkL0KjLrgRcCU6c#RRpPb}_i-32;byp1Nm~?cO97D7nnd<~@Yy|^HE+EYd z8)X`tyL7jsuHpxK0%fP;fsti!o`Ky8H0(DFfN927rNbLJ*dxKT z&(4%9YZu1MwB26;={b4&_8gqg?H>hNNnl!C=65#l78R9c_)M<;S(TOi)r33O#>|Q&RP8A~Bcqh75BuB7HIC)>MmF=wEgqGK`8GUaIMW}u1mI~~s7BAyBNC zzxKIHV4wdIu3Q$iHB+zb(ef}`%Tjtoz_oO>8JFof)9SGAJW!#bXHksKS0_4zCS(v7iv(GXOB@$AAobKY3%m1qh2lRuBzf3(u|3 zN~!4jPfM8;_H=&FNX*=t`dfkg>t_3h5V=isLV`~06PKO<-)v+bpkh26EFT|InAC&= zqfA{xcWR+4{d94Y)qadks+Q)yf$2ElTZ62DXr>VXc_OhOy*vY@;OmHQ@pIwdciRF} zDLw60Ypc?}9HD(--z7O;k#)svtS003axJ@dz|UJ}01W8BzUy^hutOYqXswvn=^CXG z?bZ%ZQ9}iZQenGQw@rZ-ghYBF@{aCs(L{?e)n`ci$~T&tnhYq-DuFC@Gg=%V;}6zUiLjQXy!t*l0w_*|-gUD3 z-vZ{p7NQSw4dJu|($=}Fsh*pTl1S~beNtwUFk#kL^A?CVKMRq8Aa!OA3oo*@iJ? z9yju?ktCmrfH&>8K|sb>6@Vi^1W*%xPWg$*a**N^r>I?^WDQ)Y_?D{ng?*~AafXPt zegbs2hBPSotXDI@PRmxM1>}}qK5W3e-FqvJx>ME&-q=D4F3CA#i=B@Hp8!Va`H<=O z?p*vnwNolZREsUWTuWUYbt}GVJQOJm+0sk|-YBb%6)g168+iCnMB2Dgh^`lX3n>%$ zA0zhTUry%|)FvK#P9$opKLmDdLl+MCC0iHn=>3V}%+-Bv_i3jZ)f}gsb)X(!2Wo4D z175f_mS;c-n8{zP2+aXpp2)9oI{C4~Z$Grfd76X;0AKknkE(A>9T>NX_Nx;-;Ac?@ zr}xQc*;?$g5)iX+!;JHT7N$$c2kQumU!rs3XYf|Kj|%c#Te)|)O4{tmz2K~Zx36q~ zk_UJ(BAEtPnYx0+2n5g@J;~v8oAO^zI#?Pl{aqRf#$3!*rFD|^7XX~?yN}944@WG% zd2^X-&wY|V4yfV{U0wlTuc5J9bbE2Nqv~|c@_{e1Q9MH{oJh|x(Bc)HSdl{l4*5@$ zJfL6zq8w#=Ai22tt=T3VvD80EnRK;31HgYw@5Wpv;qneX%x;@a`=BS!>~9Oj^iB^^ z{xYsn?P}DYcU%nhLV%`!(MLA6FG@bhB6P!f_y$rO zFfO+5I4$!V;F@w;+Fq7B70xn#~PApO6!06L21Zbo)cd48`+$ERqC|+83 z(0RmNi7@_a?|1T#UFkERkaoGaEMFBm0;d;HL4LVqpt$bvzW-Uuw^`u!zI;D=!GbZ# zR$13q)~fHp1KEKkAQTPusG17_9x@URR;C1;Ra0)c%0>D6-2S_zuyrI4?ahot^ITo=fJa$IGJ^pT4>}Q(SEaa- zNjjmS<9OY`1AC!=q|LNRl?G(3DcQ== zTEHbi3WBCd8JjY*`o+}wXJ8A+#-=~ z%q*onyprN=Sfd(&?FNjH=P7q=_xvU-fd>}*!yW>`iZSBPEmCw>eIng z?}3_4?aI^C|8Pdl1*#EV(X}kDk8R~TY@-`l9ub6z;ao)x`$flE&jUAYq?_rbL7R-k zEq>Bypr@F7hy8xLKQu@a*|w|M;k?!#BwzgW$$&y=>zKr3biBjbD5vdt_lcPxvn)eR zhQuzy#M7Sj^c02Mh^czkW;YsS5@C%c`tDoAYvi%W6<>BG*&2ngt%9pC)bvg;|;Rht2vW z_q4n(UTjYWz{>PQi z_j>Tb`lh!mcM$8@vtSM8+@H++<4X?@@EV^3>4vAJO5%Mgy)!4qc~h!ImUR*VH}UmE zxO?iNBCGCH%o}p{?r30`xH5?MkVRUq_sts1kNYS&5lU1TWQfJxMDNW(n*}s=-RY;bzed>Xd!z*svQK&eFE|}rY2)RHVW+mJS@BY`RTia)YYS5q(IH= zQ2+Q3!mv*fvpBgC(h+7dpWVX=8d4x3aj2&THF%9=Fu?gmqY3ycne>>}FK?eO(`|mj z#UvrWi8p}y&WLw%cPa^2`2Bl<2%=e-Ujk>`6F_YGLd^)R24HI7`JHdZ?WTR29NIVz zM1fru_8af8Ak3^>5Za$CfAbiU@|~p{K!aM1VGW-n7hT_OPN3a80dt0RXe~mB1tDfl zR86Lr=_sHc4)>K4gy-s7sIHVN-Zdazn1|JD9| zP*cnmc4;=#CndJ#LlZT%ONvO|)3i_7&0+){#sLA z-C^L{vcparh|84ZAA3X>7gxvue9}N;T<&W2Y)Jw6sR^J#ZbexG^oOW95KV%bV0}GS z-@@V;SP=j!z0l;;{J#9Iu(RG26CvsvQwgAWObAR?n$sf>?e6K>Dw3luC5>Pj>V9_D zay;f{UjfH+uJE&%VVivyoz#;K5OXDuhG~Dk@1j9{#((=vuD>L_iG0^Z}{zfyfVOTSy;UB0<5^r&C~md zreN7B^mK3L;y%cbzU#y|oqL5lBa-oAn4UI3=FW0r4qzmmzT5#g=EY=8`YJ7W!M+r| z2cK`z?$eh1K$%N;H2iN{CHwDmWyzIeNVw$iu%wFMann=`-p|lbq_D_^)xE#R6$KE< zJ}Zh=ckaNp6ei%%%$~4Md8O0dhJGW!Wt0Fs#~}AE0>qyzdW8-4e1K1%@#wejbaS2X zLc90@KQepAzpa%)yk`RZFFWsFw=(_w23+mG-{1fE;rIw^S5Z-Tljh8%S}TfOQpPQC zPU@ni$g>v*Et(h)G0={Uu^O9ppY3lt%p6|j6mH)`BPX}K!FA+e;px}!8S9{9d#be` zK2(U7)$ud39D;_1KcrdiS@)dT^E)cbrs{WC)u($8-6nJQ0>EgegADAi>O&xm&Pya+gYBe!5bqxn~ zbcQdxMfW!PA8>acK8$S+DQS}}D${>LV-+R!Gw;2?4;YYX%%&fVW*f^<9 zPyVOpm%hKa-O-dd8`Jvo)G$X%F77ecFiqe9zl#l0KE-zTd*3izoaI$c=8I?n|pyGn!FGUd7;@p75yJiIl6p$dbscbpg3u@KTFqYGK*>sYd-rUOO4CZtAc*E zBgPzO%ZT(${f1@<6EISg_HdVf=;WtVR7I$;*PrR)E9tSjtxg+g;)|fR)HGkp(LRT6 z89wc8a<57*Fi{jVN}x{;s9=zU=JocHTzpv=UGZIqDU1Z9B6=A_4wu|Eoh5&iYIVvv z3-tY$Gs$20?9o8Jx=WqD|Wm0;zjWmc6d(k=!lV*dkwWX{Oge>_e2vVmbu^q7#c=|oWZZKk5vV|x+D+!0~JlxY?> zfqxXwIX)XKbfzD*;7>ZX>j86d>-ang$d+;U;VQQL{2;wDuVo!&4XL1()KzIZ0N&qdDrKg7>GIg z9ypFdpWS;--&C;-wSNBaCZM8}aJT#Kn=<=S1irZMc8QN4KTJtE`@}Iy5pt&7A$A~a zlqK9PN0G&8;s|{`OBYDj1*_??;xiuZ>zXXBLDFze+ZrXJYt@U4Z;LA;({JNr8`c^KzEyBW@jf_qsTl!v5TvqdY3hY+&D4RQ zx&R$?G)Rl({n+MrQjkj&7_D7rg4|oo*1z5y=9Pi_%dzy2-N_6c5Gbw6QAc(7ORgj# zU1pj_dopvXc9_kJU8f#sNfdRMxgi0dxf7GYY_U>R|8F7!!I(Lg!ZE%KV4AKI2n0vK zgLY+Y=RM8xWK1aIn5*Sm=Zbu{hO63eq7Vfs-J$8arM zMnCYX`TF3`2PS5U?;RIZLUO7W7;*OB)QakYw4>3PDj_k7nT{uvbDU~4bp4`97GINk z?v*2tW~`c!$l!yk#-?v#2(XrVY?BXc#@I8zLGLNU2j@h6YKS)cH&|(NAj_8@oJ1 z!R5dV;RE6bU*R;_JG|kKZ6{vp#TOq_!$NSF`t-l%k$*LEKy?x(#{dY_lPqrqgsalW zPf8C6R@dHQBEM$=*TeRj$%x`7Oa|TVAD!m^w(Ny~P0ct(8r)8eiQPo`k-ehv2+h+G zuL#A$kkIjQIr46@%;4Xxth)g8{%K3;v-EFWclBAE6t|NG7u?8pg2N;}CI%M1dU4cv za+(I8p^5LNK_9hY_kmxnZ+5uiGrxNcIyV_*>T513n*JhT6fCPu{=>3r!aL`@*Dl&o z9@#RwvNXjnW{>Z86WwVGX${e7vfiCe0$n@+N%q1dg{}XQ^x_`>?YOSpku3Fs{o4}a zrsTBp{|6s}y=`VbStXsKYSs@Q_NfB_fA;5S3w}qYjVpmRHs~&3 z`YEIZe}?{vV8o>@KHH5wnbGenkH{=t9dG_LVMG5VDe2r?j{PXr^>*^bNy~u&eb4iP znkfDB!`}yyG3$hPC8-VfnWBxeqYvbDzd<>PU#+Rs45YpIw9P5$o!!Uw6Q)3!nSm4Q zK7jqA`r-FUt#SS7bS5OV7xCVA&>0 zm3D*RqHObOUQ|_7jebPYX*S>#?`#?&R<7g^SO)i}e^0o0v$6}k;*#1t)3bnR?JF8%L}!PSuM@-!YOoUmwbzdmXie)jPW2Jy$yNo#{ zzs7V8VoeK&+wPy8^(kqUvXs-mw9?=IiYyZknG3z@EIJzte)K(m&i2nfoarxQ*bm4S z_KD89rnPrn|MTdP|7;D5s`Xhww;m)g+1SUQ{(g+Z`ffu0=JH}f{5vbfUq==4r$MOc z?RvX+)APa4vt0Y1*Wda51pN{@$M%ZQ~VU%w{lzkbdC4d2*&d#x$|Jx5oNSugUcN}Ha&z*tbPjO0ZS*W7Uc zU%?R-q}B`9%*jrU8YtG}HqDl6S-lWY%GjlsyybB3=+>g}nP<;m#ZSID!u@KpK?`&1 zURr>AvfISfd-uK{FMH3gmr&cduqVlErbdt~*9;(LB8()hEK;57<;HrEQWvadrzj_& zMDl{47c#B)ChbY=qOvkcv1_@~qPG5>>sC6Ca(&6|>tRpp*@s6^!D4|W zbjcwm-u<}FtSRe|sU;jc70Ubl?qaI#1bhjS)5Q1oEnP3FqN!9fdkmhoELGuZo*GXg zkxs5rOV+ki=FG7k{bf1zd}9d+i3}JyF8;7IPKMQNQQNevs6GcmqMRNWJZE&W_U$69 zWt_N$O%4@of%(XwsqA}us`??i8}L9FVhIfi@DA;q=Q9rz#W-w*tXf&1vq;cp#7KZd znYDQvLeX0qA^z4$nM~|xzSWK>@{xf_INU==U{T#LnCT+AJ%>GGn6edM9Y&RuttL_I z2_cXOT&q8YCBMMwxT4}0?@((jmKw4YPehYY1u=IoJzoeJ-K>)A_eO}lAeh6#-kOJn zh3?>}S`PJmZ@Yq$bGDMPm-=&1B;GJ8{!NSlYrI(@%OdBT^XM1VFdp!>!M$sry=6k8I-by|c( zYDq*;;{lWpb0s&>-9moO@}&JnUE)wnC^19bpF%^MTxav;1NV3CQOb?J3PzpRU%aK= z(M-(~#@+AJ7-k&^@hY=$uBrO_|LBQ6od49q@3#19$c~2Icsw#|RxP%-!H;;pUru$F z!KvNWJH&UXb5%bNdre~ub3(92rKr=gqYSc1koLO7dN<}W z>uL$RCXw>d1=5{qY9m?SStpp~NTN*lfdaSGl_QBWb=^c23Pt3JtXN4@gz-P^GN=u) ziG;+PchhYM3{Uvjkit=Yt08$eiCv~^+_4<}K5EwE!>7l6WY`AW6I-SN#k4PC*iYI& zz9Mh*)^yQ<&{OKysDVK2HhjV69PF2?FHj!rd~slPs9wC*Z4c$-e2Q93*Xpx+bpS40 zmZ9dZIFgbS`I$pMQ`NujF%edzL4J!LCQfWFr*Ql@RMxesP^eP7>NZ4LPT^gOcvvH5 zyJ+J+v5Csb%r}TsW$W4;nuI6mZ9%M8$%K*ARboJY@e(^}53l$Q(As3C(H?s^RF;Jp z58wBr3tvyxNvAzxSC?yM08c!`S}c2{tc213ZaiyVNbbmwcQ9C8O675*qfiY0RY6Ux zC={klA?9T)U=tUq(9!DM90YNbs2?nE2UW4zXtiR6Va;K%wQ)bCi%<9yUNN*xqp7$T zJCuORNooiI8^a(8;-+Sa<<6gjq3&r2oUS}<8CB+5Sr4Y?BvI zn4$k;01RwmBYJ786sqN@EL->@=^n@<@njgJ4Ch zUi1{fY0Pfho5hbs=iUvYBor>YhAuww#PO3;o5XLrc=A}22A&Wq2HT&T^ie72H;UKo zV@)Z7djSMR%6u)Xt;mD)jdWt-mLzBh$Nc!xUmki9vK{=6ma?6r_37=h_sV6I&UZJ7 zhMSjW8N9qF7@uHA=`5|`Bt0s!@ji7f%+{=@-~~i((wb`UB%{7 zZ`NeFG4)3{D%}pi*_IP>GeT!PQ*s06iNqzbiFvY$G%mah1mN_<!%$03@RQ^ze^;#^uwM!xb4ikd~dB}Imj5Epg@0>W>&~hPBPgQ>F$x|6jS?YdULO)wka&#ThjLfs`zv<4~zqM3*>=V;%w>(xe38@+usrHV(Rx1sCCOo;f;@cO&+cH z<+!*Ve86(LYBFYI8crJf@z9-_-L7v*>7L34W~*ooo7Iqn6{8TY9@c(RlSKcKUP$zJ|!VYJGfPMyWKt4(oZkq`5(&}N1FwoYD(Y3#YxXzhawc|_u|=@19T zZnfZ!zD+^Q*<1PLpCu*slr-U})=^_>>>Ad5twRX>g)QK3*`|SCz#LUTso$Bvl_C1Q zuZnFS(I%|dWS|j-WK!Ri!}^_lZl-5i#P|F{$2PahA{NfBg&Wg@c~j?-YSOM=DpUeO zZLuLx64Y2xbh-+=38jW%uxZqCl?1m(JPwyZA^S*-;G$f)zh9W!j{cB3GPYT@9%D@* z_!s;h9ztj^obl=+92$2^^dFs)z)|NH2@FClfLIJB7>v;r3 zdv7oV-$5N=CU>j1f7`Txb|@>e_x~FDF;wkLQ)T`LG)zo{fTJ|>mIZVQp_&sgqA)fx z#-k^>KN-=p!96v7Cjeo(v%Xqbzuv?0|I|2jQDjT@E!Sd@vizKajT+=Lb75Y@dJA9 zF<+y7JF+}RoExpck`$~NgMr}=QFdU~-Pk?ZmJ{5FAF3>Q(^S^%(4PvVZFY~mj!3vb z9J&vMC2kOb;ZL&x*dQg4S&8f>SzSx<$%y-(i>W7;cXv-+n$_`K!AZYk5qi{;VXr{x z=rUEdQ_ECDP~>W|`}J)p42Yg*JlUh)?bTp*(w{YX?Itp3@wF-`Hhrb7858g5)-JZb zsNEQO?la_7!SKe8>-l086UDq|e*T+8#aG3pML4Gfsba50XSA-5Nj3#FTiJilb-Ma6 z%rb;2`+4o{+UeVp**3FJEyWjYRt)IBy3~Rg>-bHV6tzAXTjk(a`Wyg2`V|Ax*TOFA$x3abMLL0Xh!XQ*)XMU5u{EN zj)kETI*v3Ynjs3$h_5I0M zn8XFQ)fl#czaFW{mlj_F4I(Hp)8E?FJ`uTi7ovhWP zFot_YtIdUS+dZ0IRj z-r=J>iTF%wbSS_L3t(IR$dWGElv9-1X-!2+sdT%2%{?RY)SO_ zsIh_F0AqHu@M9TJ!7z$Ucdm@j#%>(PN;Qc9sKb8-HtR&pSaY(?fKM_++z`4ywC8aj z??lbHZBW9#AYh;-Z{di_yvkQBT6wN3tvs?}(2(I61^pTE#PTnJM#k2JpWUxKoDdsGJIG@!NmO!QO*KG@*M7R;M?|$-qzgbQqG|C}h z(&mreP6gYwYzYWA-6v=$jctaIg7k$gx}RmMSO#8 zj~)s~<}ZjtWDcnvV3v0pdH_{z3l&F^LMK)Nb#egh!o@<>!Y&ul8P*TV@F6oVw|E0HuXIM;>$gv~uD;B*J3smqwJ|OgUmn^>9dzqp z*RaPFh}pIW_sf}vGxa($W-^*RKz1Ds))!4*TYljmm6|LOL9}(EWIx2FQYO(!|FzNs z9$rJsCu>u+M+dy2?&i;uo_^^MvG0E}ojRBHG-)H*`ibJ3=U(3Q%EdL4Rede0{;~^; z6#@@LEx*!P@``jFXJ1wjt=6b-Y0tbG=`P6HL&&l1ZIkkhuY^LrJH1irWl^ue$UJ~rl{3*e(GsQb>YsB52e3zn}%ICZh6?t zWyC*>^%<}X<<3oB4J>iK)6Q8JQorEz0s^(W{5;J=?P4&^nFvVF51n}V;A*ZjZn=RU z7RImGbCicF@HTHtcgvt7YTA~1o#zZCLtv+#YOTi8k{fInUnHbD)+2_R5XoCkS=Mo5 zinX@8cGmYCz~V9Z)<2UHEIn_`;^n`JAErDWQ^8^zcrp~Ak2H?w6;rR|AJt%PiFdO9 zhJVcODSt>`&Ri5#J6W6R<~a>NFtsQ05W6&*v8B3P&Xy6))*dTj<=ONMx`oLp>lgH0 zu3|vOba=S$k7(CQ*)^R{lvAlnSjq0~$iZ9`>{!e! zIl!KhLm#??naHx*UyFwFTS0{AEBdngXUp#$?>5Yc_me1XMQ;Z9&AY9cB6+^+iG^=% zj-@L2N=BQph%_*Y>#N%#h4oj|789S5gd+n>yV`he%6r$*3Tw$8J+8u2&lxj2dq0g@ z&dINCFEp&qpt8-uuH!o@dUd%)Sm>hk`R(U)rrIIJ3w4^i*QC9xNl3oyabG7-F4`Bg z4@ep8WWo8+QZJ+6iZI3^(=(|yY$cx)nBbjWn0P07{t>z`MN7y=e3eK%6ivcZ06 zNIvkNyQ21{X*}Ul;XM^0V{COnmaT-&Ti+wkZte9D=RZF7OVw}_jyAG*G<4-@yAL`z z(7lQz;z|fhRrh;{~9Taez4Q^Wi8`!Ym*F4seFv1niEc(>59E!TCfYu<1 z-hHSSKWvK&?@&FG78h@p4B<;2ne6j^LPazyCdTc3+$D!Dmjr|~kLd0#_!np_DPJn! zN_zi~Lbq?`k;h(#B_D8eUgzYNKIFi0=!$>?hvd1mmmhA?a|&Fzcz{QeLm>W0yudwK z`s>4%&1+&FJC^7GBi36y+`73Z*)WNyxY>ZP0%SQ#I|PdsXks0l@uF}DPdbl_A7aPr zV~*zFX+%ELXp^7aNcbFiE%G^rZ9C|`(iyrD&NbZybW|_GqUDkRy|bFq(?l-SHNmL- zIR7Q=msY5;UZu&7(8_}gp$!uF7Nvx<#~8J@-!t^B|C5nJ|6%Fps*BD)#xChrbe~)N zo1ib5Z)+pJExbP7M_bzCEcD6OB=V*w=EQtMAY;OjSER=>Cpa&Nf9=srlXy-LKcKcg z`a}LL$>pLhu@Fw>IA!mo?fr&4+ve5EX~ch?>();Eo3NId;CJF>6<5dsAwrK~FCQL) zF|Um8$t=R^MWu$K%O! zH$J&``H%tYjt)ldDMTO+`Ia-XjK$Qd#ID+5$t<&PcjrS7KQU zZanv$=RI`rz{igtkGU>gWKifu%ne zy+d=x<`Eg!V*Be4GP*nHKKq&Quqszx)hzbW<+r()BGLu2LGC9-*cIt;iJ0nLb}=$~ z?Yf!#jqF{_y~4c&gS~5ENM2}}_zbWAoALzJpuA4WpB{Q^^{S&}d&v1O@z+()fBv{o zg;~a+dL)a_lpE;JqD|V{I z@;tR!AL4q#>Yw`o&)cLT7Nw$4nsjMz@s!E;Czsc98;=Q7keD`~{_y-9!H$m@!yuhr zRdsd^<3r&-gag405~a7Yny(kvlQWJk^`C55l~%yZ<&}7FbbQCI*4SMTFjN{};+MM6 zgbk__jLL0*-~L&5e>lfh^(S~IkRY%?W@I37f)Hlddtbk#tcUSGxd7|8{a@$D^VtTrT?2rX>N zMCR7ATiQ9y9fMK#>(^)sRv|XuB-HV)&)Iyn$7A)xQtf67-pS);=ErU1D)GYj6^q9R zsx_A|+tD3yA14oI#y52k+gv2HsjBm!hFjTd{k@@zBXbY5>&z`?-XVmbF=z2hF=emw zwwPu^T_>^O^9rnzE`k67KDdz1dj__nRTp92M6TlyWO0u^WECQ@i(o0)&N!S-bb5z@ zQ1Kz6yFFRGHj!y*t!Fm{kxqS!j^VG5+-`TQzI^dmu8+(TRpB#rR$pbV8Pf6?0d=9} zDihvjc}A$w7I}qXwvc|ESt?C@iz!W3BBGry z$Gx>wQ6TpHi*x5O0XL%cbwvV4IpQxQlI4$8w!G+lhdg*(SFEgU{1v^tRv=5M8tdoR zP;vtfuzhY>T;i+Ep`ycr}QN=JoDV%{eF~(D?IU1I? zZT-d%n2#JGP(4p*hoBE7JAHnJ_vFaBh5T7{eK6o5+40rJ#*()*b(lMICc~ic$9dE` zO}Y=My3iWta`v(={Eh9~ac-L6 ztF290#wuWaK2xHh`P`4cEn>DZznL~d6$Cu;o8q-2kP=1f9mDpX1}%y03@^OM9 z?Yv?jAVi2&uVfNJlR02vJuJ~ZH=pTmUlARW3wKmEZ7^kkg@lN=-2JHMnRcGC;A>)E z{D~`@7h*$Uz|P=cP(BY7(ZEFi<6ZF|styKxV10Kgq498;$9B2Lgp+C2f-aQOb^Hyw zrMvRg$x$)!b1w|y6EB_Kjw^cJGxdl=MQGHT=V<-IC(j?KXUB zCLGG`$c%1#gK+OWI7M^8MCnQd?x$axh~kn59qKd1NuHmjd%6Fm&PJ$^-#QTy_Joil z`_kxHe2Q#@nN9N7aG|d=hn)QdvqchPh(p=)(NDIJlDnD^~c$Ys$ptB-WnYkbYj!l zK*n)%t2Z+sH|9r=n8f@Xt`~5_(Ie-n&|8-TRnLz^F9_w%vlC}dbSEg$(F?@j22Uv z+1pOOqd6sVnVjeH}a_Ol+}pH`1w{BZNN8RW)%vsmr?joG&$+?UiA zZZN#C`sb|L`}4$GkJ2-bRexfIiNL8dCz$E>&0L~`$uU;y#<*%&JSkVIZot7 zQSSfM);EXO(e>@Njcwa%V>aBeZ8Wy+9b1iUqd{XEjh!@UW1BnL$v%1B?>*;ynt$e+ zYi7-?nKg6Iz3!g^8rB~)(#h;kq@cJ>zc5H6paouA@RV3+7Sd}31}-JvXSdv|r6yDDYAPQ2vZRr6Ol1>?ip2hZ#czoh&d0R5suDm`3GSB1{@qAr`uhhvjr; zixeuJ_#B5?oIY82zGH`t`#1>fCHwP^<%Ss8EJ(1P$6DGC50}?rZ!$SCJ+MLK$>^aU zCaCJ?-NmosV0Dzm#oEilCJi4P!?!CcnLdHlDD2V#1H4Qi6SK0tl?Ckq7Cvvc3B8BL z0e4F!JBrkBFIp_4H%iBUzCOG9Kx%ppsIPlC*yOW^0Z8v5N40AJJsb>F179{jCf?q`-e+H7Q*;U}lnRaP7rn~;`g@#92FD`26oxJ@%qk0)lU zbsgt|n6&n;YJ$aFd_Km66fRM*)7bNg*2MJ}KTpzk9~-DY2D!%AOF?>W55?nPJL{de zCfnaX(Fkc;DaPO>-3sXLJoBVXWS8223b!7k7cjV6;nd{eCEa3?X!W7R{gi&7X^%6? zUBl#e^1RXG-9L8C9hN6XoU>~?%O?LE32U?ucmbV>l=x;F7mHE0$xz-Uflg_jOC_Z7 zlo6b!X+JRQwQXrB!AB>c_x@eL7uH|ZU!H9mj6xeE(IAcJX@+5B~?^&e~0vCxHX@9DoMi5u|xtKGDtv| zyWe|?UOlAO0_Z{_8}!-3VQ~)KZ$R>L1Me~E+Wm{1FyKiz)ltKa9Y=0~!)HMtH9$#% zetxi~!95!ab-it1<(%5@OPo=g56Z@?2p-&ki&LqNL)U_zZ&YH|Xjol2(#EPcMpWw< zq#9fn+|FA%Y)lM&_J+;>`qK%7Yrs~a3eQe8cnd_8wfB{sda*Hkp%}Xy{ipf2kUGjFs(} z)k_VZyuEPR$=E(yGC3}lN+w3|@sls&yQ={g9Oi{wATa%6P{PArso5;!SfhiLC|gL# z+B0=gmIyDqnNo!O8t0j%7a26Sg?`EnGo2;jY`U|)?aZvjQ4HB ztfzS$Mk+Z@yMgb6l$hLTLixPDFb1{%udUyCRQeQ~&o&!2S0c(fChmXF@pol7e zk;6kVGvG!iUYfDcuX2QQE-YApX=Yx$L{^}H zcr`f=K~92^f}LgZ#C^pnx%ov`$Ofj8HYq=x96JOw|CHXv!rU3I1_#~TQ!vzUzB}d34)Ai7s-yv;YvubO8t8NO zu$M~KP|nywph(PfWl9KpuAj1GLau8EOGV)_#Dl_^%2D*O0_R_s5Za(+X}9t(^gMTu+$eW-)Yq6fxr~ z3gT|<;G@pueMiP8vT{M9W*%?WuW26)f%|)hj42}qfh*%QtGk2f!c6rxJa8j$W4wGu$kP`Z+6|*H)$QID=np0p+pwh6S;nm!N{<(v z-A7}9O^}F zB;&c(tzolqMLT{jg9UtSWSF}hmiYPL5eD^c9t2ez#voj*LwhinbYY@g^WN79typ6E z3MDQm(UHO?rcpVIAcEtgzz`n1inbThKtV2i2Rhv7BrPZBhQ!pA*-#QVxCB_h_%W1T zU!FyRfFS)Z)ronYOhCdd@_E3!Qeo89BaawuD@)x?U(F8#$j;gBii)5{S%a#wnv)TK{wBV>3cof2P2cN-=yCfNTNm(R z3qD{W+X*=K-WKsnU)_o1Tp}eawVB+`V5ZMtxHr|oyJ%77#^yK889={bk<*NDiD!#j7Call$R$$kK+LZkM2fA|PI0R$0vPv5Jh zICeowyx%gfP=vf3ao7%)`_l4bs=tWi(!mZVtZ$^dgMMl-=4GW6M1L8US9h=xLjv`V@bOhTr7bY`nAel{@0;#FD;A|UFl z59{ZSwu|{>KP&-A&Xvvbz;@>wh9|c+-EolClA8Y)S~6$ZGfYWl4Y%?Vk%oWo{99pr zE~%(Z`9~|0LZBI*CkmA~&9DS4aLV&g@EG&Ar>+BRrPiAV$2I26EgqWBq=?j^vL-G4 zYuK97){;u~I~!}P!;^~n+Om>{qQ!h2izuWr?J!g9KA?!tqvo6R9plmuXp_y!mpeH- zP$HHxX09erRMJ)P{&;*+Ea5#^`_D*_G&Zt?e zs$Od+vj0Qy))od7KSb0G6lYXIgSFKD#wwHt-77a9gRTd|H@0;|NvU~Xq=<4;EHRs0 z)b4K%vbE6X`-U1$AOm& zWcn>Ul1_jxF8s8;5WA3_tP$bLeDE~X8!^kLyz}=`W~F}c0%;~wc$ZsRki*u;zn8S2 zUs7JDB>u$6-BIc|kPzmBj(`pH(Yu4~fTSKUnQhME1vnGybqKbHEIRNz{TW|k)Ofh! zV#z4QcHdW%-u=qg9>#@V?+8%D3VeSOQw=`f-MMGh;VE!NGCHPZ-%2>x<4^m2TZ;7_5&*YGM$T zxJnC%yYtUfQ_;>q(bD=@RaI6E$A#UY;x9;)7xM*!wDN>=CiqZaSmJ5qMJdaYeH->u z!qcEfGlJ;6BUQlnrm&sKmz8%Nb~ZlfdHt#t4R(bF7v?p@=40^h=F0{4TrjecTM0r@ z5%C}D*EH($PB-zeq20#>xb1y{sL&ub&MM*wah6h9&?+L8shoDc01HYakEeVCCFGsf ztVdGmhdQmJL;t>+o8_VJUX*`Fg>{WU@l7Nr9z=k*eGDhs)N^8OeT}%oA9LO#A4-;T z!oPc$cOfHYwDp>5g8!KNJ!(osxFqR1% z!5V!q+Gj6YAzVlPsNzG%Vx@~F!I|eNLHak7*2`*U;kCs&H7~sDg9&F5&yTprC&u?a z13XL(M`)M3G42t@d+8x-w7(_7{~JDV%*H2{VPfx>V0AO*J4X4tUNqr&5Vr*u97SI@ zWt~3U!VM#ZoNYh98rIv~+xXpvkaE{-2G+gxz<#lq?Zd|0{#mYynY5axBF{) zQjrEd`)o;2llSDts@O!txrxnd2Ej{dwf)Wo1Ur2Q?sEDQb+F~+#YTx#Ny0D@0W+M> zPQUSGAcGuRz>^us?mE~$A)(xDbgQy!k4&A>w;u|nsgo;Vv?sBjk(MMnCaGdhbwX&P z;`zo0GaMo73~~5u_Ye`}c|{)z5bj&H;O`M08-9p~;q92fGJdhg@O==HEwwM1uExeD zt85QXvl2UN-8D%T!#80bQ94Ri*O%#u!c>9Njf4QSq8Gr&xst=>>4P#5d%vqFRABe7 z-Q$p*gh*tx$nPY>Vg<=4%&8^Y`ew+A4ld%$afr>ETIOG$7OQ}-aroy-B72#)yj@F3 zo?R`JJ3|&n7hIzcQq0D!62xAo9^0aSxJn+-3abrcN5(15lKoT{Z%W3%tzDQD;zMtj z`A(lt<)3|tak2lUR&j{X(7&;OZ}VS|9BRd$mi*K)i(|gkP`;kX#~m!oifhC5t#A{E znW>g4M%qX=av_r4dm4#|)2?=@mzbGtYx=j^>FtNQkqo%}QA7?(I8R`0tWT*$XQ`U? z^KiXik{=>;Mo(u_hLwm?p`(o_dT{#uxJ{G1ar{GG)VYL)cfHkQ;UslduM=BOe`njh zn+WQLBjykj``zsqp zWvstC{nAm?%i6CH~f?)wF3L9)DWIX;3(XfFnq z-`%QlMQ}XS z7>R2Yk-HK2RXI;j^0f{*S-z|FX5ocJQ>vlF9Lf%{g+_6Y9y>(^2hUR`yr5)3 z{88XSS`aT0P^@Dh9v1tVKZ~Nn8;5NJx1Q|Nhh^RVW!E=No;~{@XE<-lIl2YRM`T=MJ&Q@q)Kv z$$2t_t%#u@+hoLs3b`!JU8!o78~LR8$wyu%4})+Kb6+nRUb2RW_ARYwbHzifo9vJ$ z^u44e$%e76D*f*AxHsEMdeN#|RNk}Yki5Lu%HW-uMqndCbZ_jxXJV(;m=vQ4P_6#5 zI`2%N*8Wxf-&PEx7SPODfoVC``G8M~!51kpj!d$#%~CQHt67ExJjwMVZg=xp=?vHG zNfugo{s8+f;NLiyw(NsYDqn#uyK0xRHgZh;T#|Y&p%9U|4=2y5Ow;^7sS*zZ@Y4=2 z$-BgtBi59iX|OSf1vBhYe+|0G5b;`T~mI1qYh>;ii!Bg8J zk9iY$*mo!P)Hk|$QAJs}@ciL$VhI> zrvepv4n??`{bgs7T;G$cuTmOMyCWjRG!GH*YtfTPfhk{iNeMK^%60TfKcES)*MGTv zXpK;f6vg@zEhw=N4i&N$n-Mx-eGd6uprH&V`2BBFstQ6hMED(+9wGsl@SWa7PSHeY zLTursA6YuOZ<@1IxqXziOR={LIftYUeg zI&NbF*QIai%AgV=2^#G>V|Y*mUl+{k2k(3-jgoHkf+8L@WsS!uPTP>KrTA-CKnDA0 z@$SldYXN>z{7jz#dA?|j%K^Cp{c`2+J zT6#tEBvP_sW54@999ctMgd4W zpEx7t5y<9|rx;;q(b%M5m1!*^pdLWFY{xO2K5ac#=RhR98z5VulH>NlC*HCU&xz>o zP(^-*MT?}f#^mLoN9zbbQT9f=G+Ep@Glj-nVK&(L{%rEE z6a9{d6tBd`eknk#R2}z5;l2knB9`l*p-#^ zCmBZ`pFJ10zt;?|4VUyBFdE-dt{>#j(Vngm1$am&Cm+$PYDCN6UF9&kMn0)HGme&j z?-hQ}g&=MG!C^?-)V@F%xOR%9l?=bA(Omg=o9(pVdRNM-x>h{&n)ERbKEq8w)IFG_ zD4sc}aE9yZhW{OPz%pnfq~;V<%!s(B(?#n0Vo0UMppQH9IT*)yF)4{`oXH?B2Y|EB z$6|7ILiGFxIJFF)^0?F9pO1FXr|T5kv;@5gQC~Qdf>#Ig>c8!v0)LCY$o)$0=N70< z5Ye~eU0yY#XpLR7xH()(SH?AqAHK{sxy=dQDL(Qh7frjBX+wW;o+30Lj+zS9a={h& zvTVBY%`$`6vhW0uuy~O7_*N6Vqb_X!Kn3z<{ukTV(rBIXJ8N{xtH@B*|$;S5vyU?`!~uzpi}H= zs^acIC*SfTXv0|8DJg>7O7&ziO8y_zNjQ1N_(QY1o3qVqxA2PVtFO50W=$vX_uScQ z^P695L_!<#b`uC7JK%8Wf5(LH}vyVg0TbL{__GDd3j!5tNxFplgJUEv%&u4 zbo3lmv|r!tZqBK&UUTV{Li4uz2EgRp%-_N;;fa3rdM;>G=N*sPo~dR}K8NvD93BsN z4d-7SynJ0f6E=P+2UF%*5kc8KPF!BSJTVnEdeE^Y9hn2M@kBWve{)sP9Uo6Ei=n_+ z^_;-hnJ%w(rbA7LQRh}Npt_!IqiY4(4n+~n7{=cfl{dmUEe>FojjS76-#{U^r*8wB zQC`J<%D6HEu7jS5IYW(#=avA?JmBq@ zd&jFOyzHw63};+hbN){$?hD_5)N!Tgh7Yg__*2oFJY0hCNVd$=Wm-i|iLpvM;tNaW z!{Fri^r&^$*PFOo!f6iu@q+5%$NbBo%K8GlFWu}0mDiN|F(F$S8C#Kh_=1n9=Gf zdMo9x2d;AgrlvoRY$nAz=k9_sY|h8{K?0r@ZOOJzSZ z91qot2ZEK!+AvfjUN3}!Yq&;2EXNCIk#hH}FnaKfY{)e~7rTn@PT?0Ad zSbE7L9W-%1a3opJ;$W6z%fKHmp3hTJJz7VXA#}!5abiB^aD+5i6I^;netHR6c0$uw z*>f3d2@{@1#lDQSDU1^}3XnOpem6i^FBZdYt)MnX0E3%WO_)%oFi0Uo_}@q?p`37c z>3O?iw8^}1EmWML*U`5sfY`uevv|()71ELl_)Z9KyKvdyzbT`g$0#C*f|zuO_`VGA(?NR%dVs$wk^5EVuS%zQC|20e5l?qqoV8p3`+P``p7w*fs zu?smi08h>-f3Z%Y`dK4>CclTe?$_H40k@J=63Dy%;otLQn?o6gY1W`bZ^+A0G}9WoBYQeE`yh7p_gcFU{^jR*5mTXzR@`(@Wyfi7cJ@>yaF? z(dkGB{9^`JH)FdDWtvmV&>9=#9=VeLMlDri1;1ustJF!nq=(J}q{ z`|kt2s$20?9tdrk8}P;v==M(nk9swI<1hgum$<|OiVrdLRBvk3_xZSBgkIfx)aPlo z$c}|DkWl82Qm))~^wQ1&pLPsX3^IVTN)3D5d{4HHkgtV-@UTQJT5T>&ej|e6=|vbp zrJ=Je*-t8a=aD(=YGPLmt%4`9eR-?mUYtt-xtIKYBUb!6mgE`i^hmblF{zYfgqEWt zBL;w!C081F5P2GGve$$qmPN?5w;zGBB<=hMvAUUaN<6k6XbW#rtyel-xdV6Xj2Gv} z!JAn#5`C{{OrjTe=dSDttkM2vl#YYa-D(H8us z2%}y$WhAa8c#kSe;-f>}OSYut?`-_y%S(_L49^avVO(#*nOvh^7KOy2B>!wJA^*~c z7*74y#adTaN=zH3grYR;Xw2AKH|}0fcJ&ihIsFyUXvyeyY`R$XH6Pw9k7mO1iFT-+ z0UA}-+bzxPoGa`o3tTr8XNJhU!07W7E&ZEn%YUeEjybf*APaQ5HFyi^SCi-Ini0t2 z{eom~5Be*erR0kgQ-uSwgbFsE;$AD=iFe$SrzX}*=qeO($hBLwg1iwiA)+1>RK^dk z0h4lMZ5@{_`w}DrD#r|b9fhp?WnGv)wo(`rwEYefMJsxUiz@S=vUsTm!-Dl(z+D?_ z2miQP^UoS~&Pg(sv42gVC7(2Y{xK3p7Gp}(EaeNNpOpEi^dLwqumj69-%IHYQEch0 zc-;~^i%=h`0+A(>kx&Y&NDK)ruJ*XZwyhGXMxQJLIdLQ?24&zR7ZdO=A+{&C3nuf+ z7C~F$CB?1GlGV@FO~UYU?)MGD{Cb2ri#XRa0d~e;XA>f^c?;3^xwZt0V&K!S8T90Wu#idwlyeOSNwfSQzoh9p+ z__`P=%-0oM5;)aQHlph+os90vOReP6oB28h^)QnRHoY3iywH(TFrn8@qzwe_RWp(; zJZV+EYRRu1_UQLAoj*94C4;srn`RbHm27%TF`sS$ZB+pUAV1Iz-}*Ddp4u7^09P2m zDt!{bFruWJLL^^oQ?|&$QJDG$Bn1h-o9$S?>CwUsA9K%aqc-s@7V46V5CF(4M0DEG z(Y`*F?6N?P*K>YKA`qD#smaD?A z_US>RUCJu3ty{?kUAFZiPL`F?TB5NYF_rO{v5IhZkt0+HC3$bPSP1!^v#_x0(}VQ$ z&z~;vdL1&}srT7x%6_5vdEMz47Q0ceOn&GAtup7ueKncNLigMS@>ZL4W<}}mpQ%LT z%}@5`CXFJ=V{UODq0PG|ts>dgSj}Jb)WwX}z7w-r+eo9A0ika{q3UIAMICMzcn6`s zoIdPb(@Xkf&0QBHEh^=e)qDy*q2(OcBC1kLDC@kw(rF;e<2G)SKVi}Q(TnKnA`2%+ z&WId#&rX-)CY@!LGH-ybu=Gite*EjS*;A@pb8&O{-NN4}>q|^=bS@8u+>PJyO7{DQ zY`kC29IX>ypSRX*Xnxaor%BfS*p*&$k?KUYBUMmG(CvV2d+NO(W?Wc zd}cSVKMdTktH&Nz297tOb5T<67ANd8{V@Zib`@~c`_I4w(j6$$V-1fp8*er>S#688 zkzVNx45Wx5wH6pQ(jA@iO-=D!=vk~$Dx5z?p69-56xSA#kWl}))BYgA*F=#2 z4}%NAr+qGJ?!au0{;4iRzJJkQ0hW$==Wg#B&i~_XaU8Lu#bypT7$gN=mYTZ(C(qW! zhK7-E$sEP6#W+6;L<~FeQT~ky3#P!GqC{hgq!X2YHTwG`-i>RSYIj= zKnU+T3A64GkLtwdTLqF+;31^;f9o!^ZTP-^)rA`STzu>*}$LlDBjduv?;cd#%6CD?66%@#UfM zf4DI#Wq;)WwBj8=_xV_&cY%>g4%r!J4mB+m6_2%hA zYh+`B5`lXO5n-h6xcTA_J1mlut8bI^ zzy_oD4(`%K)H3@C#BTQk?-H+T+BjXm`aD0gvEG=?BR;QW8cx3zAn_t5PVM%A<9O=7 zUxj}%_??Koma{PV&fkQICjZ05mm?HrxP03>cxTbr8gFC7-k3j>WX)dBZyVogRN9pw zx{6Sl`eY<>$14nvz=ZYw-HfTd$Y=U8v&2xUCv!{?b3edn@*Sn1*bs=_H!-%W66+o_ z`$svf+I$MV#kMEqE-V=KhQE4_z6|#I?tCV82M?)AO-DJW-z$pXI5Dp=7jGYyNKgDI?NNv?!Q3=q~mk-Q?qY7J08%qyPAc z+kWBK)Dz7r zQ!c@GYY_|YXZkmJBM{vCuSh^R<8|i!nZ#xqy$_$)&0dt-r&7q$UCy;l-}BRw)ZA!I zz9I5zhAHbem(^>A8R#;k_tD;cDx7VQpLrjDSW`yr_d9w&!#|-j|9@47VgtB_Jl8=6 z0^SY-{yFeJ@BQa}kuAc-hFn749KolC5R?Dj{{0%M;)K|}8BQnD{2({e*mWGPl^Bl literal 0 HcmV?d00001 diff --git a/samples/sub_40103C.png b/samples/sub_40103C.png new file mode 100644 index 0000000000000000000000000000000000000000..ea0b4d2d4027a054d54d5b251b8e28ec68292926 GIT binary patch literal 62308 zcmeFZ2~?BWwl0d>U0ODXh&0lwl%gU*MEcGSCC{Q~^np2o%!yk_e#>p$m|Zyp=!HF84m?ygTlBcf5DrJ-5cFA^Eei{?*Ji=QqDO z=Zd*%W-PcC9GihORXb#p%gywk9?wOwxU;^|-{VwiPvz0h@4bPoH9Os$J3*P&dH8ljMKCK+T>QU z7p0|YI93_Io~FXF19(y5gG z9k1=gdJR-2#H}+iTefZ|J`mE|UtG@#WxG%O(a=_#qV8%mwagm@{;xUTEhrRINcX!8 z4_q5V49EmEb+qX_tTy-3iRgsm9obn=Br&=VG(GX+AIo{7;O#z=Y!G~O+GYD5$^GWK%hzkUqfyYwy1s?i`ol9` zV}Uoq(CYGbPvETNfAqym=Y}!!>JiW;*X4*5Y*u4naNt)wB2AC^vWH z6|&Qz-09>s)RWwr+e5kOtmTa5DPl%|_@!LuDzh^mHjs^>%VPbKCa?n}uW|&ud^S+U zw`zzQ19PNo$YbK$6;k(GhAzj-u~rKELYXmg=Ch)zX(8&jOkYT<-r_u8e*tvuS+~8A zc8Os3(GWd)7dRxDpdrz!-4YU5=McA)h*m8G<&qxdkH+^#IdwWD*|50-sF4U}dcZ2H zsDz^~b#eL%SHh&I>gHPiBrMRk}K0AB=3Ua`aj;6 zJ1Usd1e#`Std85oniy4U;69LmwlJs#Gpv_m>xVs$J1daW~qAwQ?qwbdhrkt~9m zV-0a=$UL6brm3o5{qt$c8_knY@ zxrBFb^na3br98`13ID3WSgD~CM9lSMf`%i^2YowQ5VOk~O=>+(Sl=$So{J-#9K)!m zfe9-^LFiQfK&|?SRx^Wv`9GF35K)GiT}~#3HS+41GG%SmqUweG?*eD7Y)An;aH%RG zNokDk>eX6CbAigzB8v17F+%FxA>vB>dR)z6Z9ru)UX@B3u7hlPehPG`=b|n>rA~Pi z$7R+8um~!orYFWSGTY_+ew-^;a z>1F#I`_S2}%sIJfBdUQK+IqS?_Da9k%XRt-EZ(ceYX)b@T4j0H5QbBkFiyHX)wEQ(3wX)2(7GejjTo0(c>kTwQi?naf3*v;0{)pKbetoAF=9&g7n9Y! zGJttL;uUiw=@@%)xvJT+xauZk^=|&iGZd#a6yTK}J+QQ}x$0xe%F1_Ab%MlrX6n^1 z{NDT<+@ewtRH9*Cu|t(NUx)qCHtH8T_Z`?JvAZrfcvv9Lv}X94ngYBvMG>AY!&88X z=lH!}#+?-8io$Ys@eJ+tLy+=I@wGdw&pvjGXW#{HUW6Jdz>~h`eYpv!#(DjE6jo3l zVVz@kSY{L7-05(g`XpyrT=$0mGydppL>k8=J&F!s^wzG2FAhDIP~}9O|1IUT>n&3j zBj=ZL*45c>C(CP|Ztb8nSL^;`_|l|1V@>>m>#D{Gu~+Ws{+SY*V?bzVdcUX?u2Vmrq9=YLIrsCN93;XnhKo$0RmVBF{6HjMC;hNW*C|! z7mAxtEK#mox36WklT>D=pD;F>E@iDHmOx8*fM=NRf9h)Ttse9v8>V-dVH~#Yj<1hIzx0V^%7wXdP<1 zLR!2=^9Y)|o0UIb2Fv;M{6(lizS6($$lbiG4Dy!kO$Xdlt%9fg{_v^-2iHKj7;h!Z z<@njgAK*f&Mc|v)eLRAVN8Ov;my?Pxf`|5vsrb%&F+R9rAc1&ypTE`(ZZSNKDX=*= zGu%nxZ~;!N1DRL-M{uyd8P`m$-eqPa-grhrC5O8~I=9 z<-9Xx&p%W3GCHupqMt|oMqrK^bol7PC`lI6Grkl1)cuobom^Mf;HV#Q#`i^_H1AAp zgU%G(>wD~0&?FtDb+TUZcVDepe8booX#Y;|#q+=BwE4pP-*LnLM>7Wi@(b{FI|p|G zt$4CC+jngWKI->5{zV=$^ZiQ^nENMDSO*%owD+6&hntlh8AUdM)#!T5ggfY-(SajZ z#@Ga{2kc zX~-d^b$qHK%Krs6z#ft#Zbgyflz{|-ev#VuY~%B{jF!%?Wl8@92{=7p^HgSEN4c(x z+E~X}h%aLtyS=3VWRF(&>c2Qp>1EQt&*UVezt4ULkt?6)i(RKW+K5XXZP5peWkpp( zm(!M2_b9dt<)ld3&}&Vk>qa9d)q79varW8JoM@XS>U$K*)D+hn&6GFimn>f{bnO^R z!Yn&%=yOVEN=v+B)lHOS3t+=A*edn4|+SQG?RukABL000D4oOue;ER`8 zy=)^W{SuZ6%IanT+WYV**1V?fQ}T%!vbf{><68{;dfprx2^%wba(& z)ffe8SJg1Ot)6|t2$K$Jg5Pu@>g4<(_{yA!Dq0Vg?d*HQG-7)8{BO;lpD_*M8DsRO zXsi>ODTn+at!8!w$DHz@CdI9j+}u+R&{D%Mr*vexFHN^oQ8Qg`HLDRdLikEMi-8a~QV^1+RD<5bw3$2e$Fnde$1#IlkOFx7=MY;tmwWDP-A;OT$?_VeU^n*wCt%QjWGjL-bb&+G zQ<*^P?AkK_S+OYIzZHKlbXiLYZNO;Kq~vB&UtJJN*edi<=PSyy_Xah05v$$q+h|m> zBt~xP*C`U2WzIbgo$(3yv8R!mvI`bnP*kHoIyLPRoeY4M&fI}(!Tk$aJtOfLeXe=< z#!&C-jj4OQp$Uvb&~;zwZtU9a>cIuFF*!-elE)9e)bNpQd8rl$JXE8nN3Uc6RQz26 zl8_-No}j%veKFN=`r?q`w9&@4<;-)Lk$EJJb)0g2@RH_oC(iW)e%~Csrw&1XAViWk z*A-Q+U9hiR93`pTYx*FedgGdD+M4A#fGCR~`6`7>_71y9GP@&j?QHdQQH_xupfW$C zdvs*CP?pMA1d%rV^!cy;%1!>tc*$a*hUpRPJK=!PTlHo?Z0Jb3)8jnEhrXA1&}m<+ zFl_PMyX#2?J-2{s%r)WKt*#~dhp`@DC>!SbapoM=Gm!~wbs$4mS3`TRg?;wh18vkv z=nVeit3@AcQ{#$O_6!GG?q=QUlQqm+1S+3_D&iI!#RE1alE8D_l;Y>8g}2mc}qn|oEW03qK9NN5+94G zW~n0j<9|h#F7)s*AAdRz$sx+9qASU2ajI=v8cs-R%j%ahlz3Wg%3{U4J3V&!->zfB zSS{9|=jfG}O(hEVFg5f#<+P7O#pY4S1Jt8tMZ(TPIvW3W6c(9A3=E7#8nba0xgZ;S zYB-!($D8x0yF<34dmbN)|H=cBKYWi}bmG9J)bH+3)eZu|5RNKuuNn5hcVrK=Lu+#V z{y$nCf~$M(51Z>c4x4Zms~S=L!6~9Zw|@N=pO_Sdj_?jJWCeJ(9I*WYqL8ipZ}G(H zd#sS|im7R99hmorDDvdmRW)Fa(#{-N#x-AU9`(c2X%p7U8pjlU5=rlTj0mfF9hSvq z*RQ;gf$iclPwD)V_qi_{Yz*9M7q)|ko%!xNgt~Yemgf5cc@n(kI<)Nnjh^h6hkKV0 z#M%oTs(yWJU<0YV6X}q2-aG)4LsIg3Zc2e3GuU%ebeUzDbi;_$&2Kpf*FW1!_0GKq1C8vOm>UpCx^wz_9gDi ziyefQEj{!kyOV)KVVDX3;TMROFH+Rs#nYlSxQoc}^`UpGZL3ezh#xeZWAirF`DzRD z_;^}ao`jSuuG{dgW#3wBOG7fUaNH-x)c#~|bXlvOGFoeH6*APX8sE2e{LbxF-UG-m z&3hGHlvg8Fv4uUJq8@-rVRp8Qn`M`NEe_y z1pR^#2`?Ld`{%(h#u3B_XZwD59ak3dVM}roXS=7S`F2k{T>9NdE`d{1BH0dY!IjRfT1Sf8I@~XkbaV)^HlCsi>BF!zx<7Qp z&L%?PtA{R8fg3|#;U7WgVL#5$=A-1oBzXp9e6!=l7<) z0hxxGMtP(+AJYd?{0mPGg)N!ZDMPkW;27k@|9C7Ar;A6~ow?h2Y>)2zZ^slB3)J2R z(PazmD`Mp_lS!e@d|<#28b7`&)8NMW*a(7>7rpF5LPE;D2CR95dDXpXfJ-%bn;?)o z%QJ=t&*4tCjz1(fqBT#~C!ab_G*6Wkac4_By~TMJnw}3?va>3XZ2#hGm(sEW%aXh2 z%XVLlUR`0y?PQ#mgO#DNkTK&&U3WCNA=DM%bHgRBx~$J+3(oJx3_|o11A~wkfyMc; z5XGXxmWC;eIRQQU3HXS6q@@9Fx};Z>-?`#jJ+w!s>9+xTv~gPa`@PC2;&f2;bsEd}evlW~CreUH|g{9YLR->{qsGm)YNmkY| zdIRMj2S*(|g*UWkWvZkD?&(JKPcqWUFieTY@P5nff~}vJ54IDPgq)8-Tq6|d<(*(t z)zF4FtLy?{#wQbH(wCaK7?UF0X;|&o&zkx4l9JXf)5Lzqeq!i$ue~U}@affoCj(05 z2||5m)aj)+q=!RTnqD<{qTw{>2+Xqw1{?IQ`Q%vJxCi0JT2Xn^G0d2H9YyE?;S@PD ztz}xYQ*V)sQOiHcdN}PU<53~u7cR)gyiymEwnpCAGBdD2d0QO^OX#fG& z7|g8#Z-nBOb1@F4^mQvDleqbXWjrbB0)s$ETm#In*upX=?r6Fi( zGSpUdnA_YO0AY1tC22ys$Mp5rpPw&J`CJfm8fKmKKq%%oYT)SbOzoB3+MxxSg+Y+y z|79{4x~fJJL_(M1fjUz+Ho?Fr|iLvu!A;x@X&ntj{3QJ$(JQ z2Pz;C??PErCVmxnJ`oPHdmh?Sp|bYdR?6%~Q0#z^k2pUb!H+%cTVR|h0D60kr?=w) zr)~&Xh=ND#>T=-o6;(6FR~M2kUP!IXPORQt0ucs;-{_@|7**8ex*)3~+%@yLA;n?+ za3M%BnDPZ*rNNCkHMOR$z&w2GWs%8*D`y+Oo0x_undJ`Q{+0h$Bv z?mBj??FhGNOmOQq;>3=pr-h;jN1;|HLHIug3jaTK4%fr}qM`eF?>6UfKSsf#Zx4BnkB_x?InQ_CY5Ub3=kN)Z4jO90MuE zSi?;n+BaHC<{&nd8nPghVZHhD{V)iz$MU`LhbE)fAXO{z|DUf%vA$ZWOeqj)C}bJ{ ze(hN&^~8ls56MBpn9)p9b{gu+_3yEDp@tzn&wRDQZ%&1Q&3Sbi5{ZVd;t$E^af3cw z9B15K0_LBN=iAdw`+OV@>An3>xCJ;bn``%{`Tno)bt4F9oaY5JetQF`=Vw1ZaBXNh zo=38Z)Ef2caST%Wd*jqW6l~46x(&$!QD>p(p5YLKdPzO?Wwu8Ko5uA3D>nZmj}8FL zeLlmz4Ql=?T78V^DO^3oMUH3?UPix9~mGP zvmSR+GGJOg7FZh53|GUA5$*I%9PFi`ukwXwfMT{8rL25!33?=mfDi^($4;*7y;F{-9p` z{F|GGW0`IvWv%EfL4%?`5%Y-Ma*GjDb@~4!@HKwe|c1iE+$=^!`7q+_4QM;o%T4k@U#`f&2b~}5>UVnYb zpV9YDm@zB#^cvmj3LpKPaja)JGEyuN>U^N1YoYpSzSrK!QB=Yt^gTO1{}z0zyo zZjM!fb$h8BSt6YI80d}3Z}mp$_gEem$Jt;R1L#}P0SwZnhWH-R5QpM?UkE+85V<>M z3I}paZntL`!co&_okgKoIX^TA>9UZ;af?8pKqub`t9Umr*^4Uk_0FH_sr2^eH+SyQ z5q`RxEB;79xuYoSDCA-s6Wc^~e4Y3O*yj5>bFo$WtD2FRHT`A#yN4mW-~uIz0f2Z? zQtj@3*1bN1q8hiewJWVGM%P41Ue7g=Z&&1dETA}`Q?ZK=xa~H7ehmkOs5jk(y+A|q zdxz3Z{to8s@>5Q{gq0#{(vZ` z=<11f!}^G}U_FIf#C+=SzckDoQ9E(_C2N_YluRnUl1wZWlp>Y_zM!s@#|Y$n~6EbBn<&IwA%!KYWcvuB^px-vVMv6jV}dPTTg=iPG%zrlKw zD4Z)Pm9nCzWBox!3t$2*C(Vg363FvR2~=~QN}>6P9a`s5c7WdDqeAbMjv`kPrq8wI zm-{a#emerg#<8HM*+iR>1czhWhd!%K$ypeP83ZzV=i?Jxxr#z|2P3wp%V6-U=XIIQ z(+r9{hE(I8CL?#xprk?n)7sZ2SrvAtlgip#q{{M)KT^GLdQ`=AVAiGoi7^2vW{*J| zBHx_w59IYT@L^6d3m`G=lg|>>Z_C875l?QvyZpe`vxVSF2(Ym~=;7IWv~qRYIdjO` zfy4o%i&Mmx*Q+aqK_>{g3qdY3I&?x4)8NzEg!|L&!(tt1UG3~;O*@_ezkiv}ZHo$G zY2)ZZkn!dD?)Po&uP;QImU|Crci$bTocCAlXw5qpJiOAg?{wtu1N-a%!{y!Jc7%6!1paYQX;*NjC|-i; zU&P;0cs8DwMtNe2=DT(Qioxr{uju8ue*)<&X4SbTmwV3;c4L)mEz&~G67zgf>q|<{ zb$xx=rx2H?5LqWs5hAD~a5D-0)606Go2v&P1#~0BSIhhn%kn{^8)toCbb+5t5f2#~ zK&SgOxUI85>sJ|2>vOmijnUH^5xn19KuY`|yfxYP1&5bsntNzyUR(s$ zF~W>VzY4Z`&7yIQE%%e+06k1}@yY5gd+lZZ( zp@dGS2xv2MFG5pzECzG0yd%;PH2LnV{zn;|ADC$)`C$Wu%oY_7Qf1DZL`{18ou6fV zKfXpV{A~z=^xbJ7vA6zYs6n^FaP9Qe`Cz!MrI~?h_H3U@woDj&w1PKkfy4_Cas-By z^ijpXZkd`h-a^eW6kF5!$vP`tQaxVI##Uu+w)E0WU>HerYLrU(nzL^G9vw6*A_XrE z)D3Myt3=RSRSL;lRF-?GD9(D%+Ka#@3zdjsGnKJlcDa65Z6gRh&B+=jUE}++f0@;E z$qtjRn9e(RCi6@?d6@iP*NudXvX-|>nYl|t{z|3Pdf39sd#uEH`A3fe{;0l zn?!uJs2qP>JkhGIpa^{lqbIDfu{db!!xSv|o z=zibE@2Wm#Bbw@2gi+Exhl4_TcG@V~w?^yOLvo+FxER%4GcC-*uCvfV!y1kt+y>6i zC9?Acj{QQcH$OZ+wmepR2&Dw^MW6We z^7q)pDy`9llwB+mvjY{+P(_~jv1V=xB6|PfHN33_%u__$l(;+*jiDbkSN!{@^64TN z^p=0P49x>6z9Hw^o>EiI^)V<6TfKhm2Bpp1IolCc^3R48dLy8Qi4UNl8^~4&S368J zOSSMy=cjx9Loq1&00u}lEFgB;`@mkN-g#J>J~b+ES~($i2(#z2#9S} zjpRk7^l&K>zO*66OhGY;CSM<8abTq9yKlwjAl!Nw@NRgostYM0!`~qmy+Fo02->9! z%0XV>Z>T@P!2+Puyvt@+5JW8+;mQLaOpY_OVf=al0P_=}IF*1Hl!W;I;4}OXe3;p* zs-n*XX;KH3c+R9%Yu@PSLSA))TmQ2702}=CtvdoTjz0hPyNVNz-NLHyU7MVL!tmPh zi0sai-v3k?e;Ns8Z{?ofR9x1>(01AS{(thBM~i-wRs3rbK9XI*vmXMdP|$z?OWVgS zRorQQytU9UE~&jXWbt-?x!oD>&u{i_l^R!L3j)qIa(Rl7u`Cu7sukeQE&HiGRBKsr zsC&RiJfc-!r%2}1LD>+_S}>jbT4jcXV9a(N?`p--(jdMSR5|h3Lcj%uv!1rOei^#3 zuSo9HF<3odqXLL_h*cGmQBDLiPERKQJ){$8e>=>x?#fIhajK-f*@W1vsF9G>?J22P z`1wrtY6smV;fhU67q>tAbH#M+m3!I@IYg5o$uRw#JBeWKENX*Cnhegjez{8{)D%J6 z@Ym~2RTrWzF&Mx}Xo^!N-3L?@2kU%*<{W+}CCs9)K_|;5rHso#d|HtrdC%IDoGTsF z)kju?N@lmk5k>;-R4XS-?L7UP0u%2JxCX|jnoaEuORe#d4&M+)%tYu>-WZ1&wgJs5 zrJ#?vE6urDg`0VwnNiy_%7FKzLLmAybPjfOsld^x>Z*|#DY;_QyoK(<%p!tR$0U6@ z#3a6|i8@&eMs{xNHo`0KAxZ;!z%Zw-zbVZDCL6X9(mv7a9n+gh4lNlt5N4G>)Hbz0 zEVat#UNz;hCZ&=}X(ELhVieZjY-@7ST7M$qLOLfyk;8h6(3bkO=O)&n@YelJRwiIK zcBF0fxRH69m~;F(tVrtAslcf}4h0T|V0%Y3`Vpj5mz)6ZzFBKW6>Eop7~5r`1edNO z;xSgJkyF-o5qY*DPpuTYP9(FBR}Oki<0u>u!xBnIlkmaEW#!hd>8dP^-KC;2veDj{ zwEf0TWyXiB$20k)MiTEp9DJ=ENv;jA{bUdlvhtm{A;8tH1W}uK;OZnjJd$L4xc}{t zdRoM6f`rBfsdHMf(i|^$z^&NnK+d4wJ4pLj@L^EE9&88=-f8es%|mR1#l$QuEd2UM zwLk54N2Ql8m+0`ww! z!Sd$<2K`BRD@!h(sn0!JFKeK(yv|qZuX>>s zI){799%~#sO|Fd1MC<8q8w@djhGN^ruOiP+EsH|%^em*|&jJ;^22?OccLj%AZmogD z?MG+|yw{mSP;>21T7Cg?Bz|LWf-gJhi$61cdGCab#-@4z`Wi|B7T7du04+g!L*Oqn z23b3SaXP?@5fH`kP}~W9JYrq!YvUMGBG|BRA=4(?nVJnrB-b366;4FZ2P+J)|g3; zP`^q9Gan!0eqEH{=XL$U6XqXyYn797fEiG)X4X4Zu}aqNa4oE~@H#ng_j+fZrTzd} zOK1%Kq(d<$tQE1V(2Y!Wd6bBb3+UE^_0vP)qaQysCt;FkiH`e%^yYnQS!?2q<<*!x zCLSUn1!Av2C=p2Uy|%KfNspLh&R+?6Ni%nb#F~J~iec6EQIC3&hiDNhOp5%_0>`E6!ZgX=Z zqx3uh;SyeM3hEm8R4@PZ0o=^gJLvLdsH?9$B}Pj`?1SKgqfO@=6`HiC&7#+r6}}cB z&Y$s7Iix=1avpxK@1X=IVvNi+C9``Pt*aE2XnZ@sAL5U@ur&BHq-RNd+G)MCU`FBx z)W(z#qVd%s#MPcdC9Ur-WFR-#J>)$xkqMDamr>ID9QT-^+8S^h_1h`b;(9YZ<`m>x zY#!0q`y0lvuJsr_=A1Mj%-L7$zn<|PJU!Lp^P;BSxwD|>wB#7lU{-IJYxNjbxrtov zU(8Qx+T4)Khv7&KSYUtFh4MQcN7t99#ogT8x`;(JbN12LHNdU3*1hM$RQ~vnW%>32 z?@&U+8-6`!jOxaTX-)RQtJWu<)+4q6+$@Vh~V-!Qjn9 zGEzKC&f(+*yp*_3(p4PWWvRClOhW7oJiAUDC?8KfEG z!n51XsZ1^?Qp2DfIdKMLm#&+}CqLn34!`PVb@{&V^DNmdqo)Y31it?Jz*$Kix1EXi*F!j-(ZcuUYFhA8OrB2v($ zkC@=vcdJG5CXax6phK7H*#HF8Se`qDETj*+h))+}X%kT^=?w;?E2*FkqBIF#45?%S zpSmFI1et*$9W_B>ls-0m{ znTc}TaZ(WG5*98-C7NHZle7EQq#v`!g?n_;5PxhKH?3?9LJ!SN>^IgA4_^u{rT)a`|j4M4~y4X>wNyXhOQi%BHdBtDc&(a-zVZzdxVHuy)&ivk)JETx5Ev^kI3}w z*7zH)sAKH#kNNXowzmX_aU_pIPalx!IE6(C-Vvq{AD9OSoN8M5K*$ z=~Y+_Ju-OxcVo)h(@^5B?K0PHD390reYn9G7B(hC&nXZ-h=lzR?tiap)qBj!<&#Ss zVM0(neza%gS*UsGGw%8j`{`T$#z04Q2VM*|!dWul0c;|==3ef;WUn6B%PKG72BcuJSTqbBxCCTpAi@}Pn-^)#B1V@*N=j=6yPh{R=OOqW{X9A_62nm zii*h__|Dcb1IvHbiYtYCVGhbNjzzj>LI>~tv@}`awtMa+G}?cV;T|Ik>67~uVWO$z z6^uyHuySbn2`IR&2Z6}FFsOkGSxL5LWk~gX8s7Mx0rDws`EiTu)gGl?=Fa?J{AR?C z++W3Z@AvED#(AOp53NjAUyw%jt|K-$$;A8ow2D&xVl}wUI&f6I>TkyN-b`a zC`#^t0#i?K-8s+=9ylw=X!9t-)NiyVWTNS^sWmflVSro?obJv0e6P38((|1~j%`GX zUB6c<5}p*;7l!Gbx1-X@wxKwkxv*2) zhWveY*LwVzRgIW`tT}}{RN_FgGt*Jnz@2o|pC@WgWXQXur|C3}Mit8S(D8S6YkKnI zAD^IYI`1Wfbwd;ZTPi7fLcScLMViViGgC>J(}gZD{a+N z#3gF!QZX$(dTwi&Vb3BndXD6?uS&KwWcL(b>}4Ra&z&9h>kS$q^-dZPf-K#MALNdb z@OT-Kbd0o2I!Z79bND*do!Cr2<@1*~}AtHm*4&wJKAL2uRHuGJhc}WbhR1-mskBNmwvrVFJ3`nxiP_GscqB_;Suo$7b{6^ZA!kB{QLBM zh-=Ec#S>V7W_m~oUNn5vrA!Hr8CObcu9H2D)$#Lgu0EAx-1@r~>+8Mz$A;pw`=z}4 zj|WcUeo`OGuzXuT-Z1b}=7r40Id|gEQA5%SX$#j=99HOnWMDkXIaF{>-(EKGdXv86 zEdnG30wBrP)nA$S&e4Sd*$v9OWv2w|7LxIhAu?WT%OdIu`9SibQ){D^#yC95awS>K z%UVpa5*GJBNI4EE-ZF4JCz0@TR1%?5Cy9{Gy(Z>SWF=NmT>Yi{w*Q@SJ65x;Ph*%% zT%a;3P$wbUF)(?5O+fsKt{Y5n8Azaa6+&5k%~2Rwr~v4j5%nc`8S zV-o%gb_lPiu#CoZeLynZx)@siiEP|5snzJ`L=HJat52y;Z-#3Y+Q{y!36k7LbJYD| z+n}0H1WPbRP+f8#%0A*p_KoU8?KsBcTpOQ5op_C@9=ySn@_P8m_Y=nLuYO;>-RpbH z?0WTjTc`ddh5$Wwtcqz)4QEv6j^sww4vrvy^SCQ}Gdp z+sl%boMlav9c4{mRAB`lzVWH2K)QEzgvKms^%kXb)ny5{8vb=+b!OV)J0Ikd-5{&? zDWa_rV-=GYAsct}ivLSpF(n6mvE?Z}kZ5@_p5&kQAw-3ikW%IM`EN93F=v9Oe}O@N21o>%O#uPrq21K&~x#0J!ofX~gyT6iqcF^A{GYeQ64IJqO4z z0h~Swc#<0F@Y~@l%efLN$ZPRw+LjPM0$ee`{{p^b9q`jb%zmA;klB{t#iwo5G9M#S zZlAeRwj-Afjc^_++W`Ud4p1=eU1iCV@MYpDuieuyJqGMEktl^jXD z8ng4JNq$ie@<{3gK~^;g5EZ?j><*roq)|4wyW@(XG31_tls6c#0zX&gIuwB8&EUVq zgTnO2vFA|jXm#V*!@kkev$*dpEE~r@=A<968NTPCy9)A0hIxs$8;eiHK)D~e;g?8q zIWHh^)(wP)P&`Tg&2xlngOj%W**7E(L^G?{Ho(V=9$jc$dq|GKIv#L^j8XodMHQ3D zpfO~b&OU+;!Y{rr^f!|R?*3;VoVR*Nb_^P-*sE+}$4jaMIUx;h&Ab}M&0MMTZjt2Q znfiNCw#c>fwJDi*7H_q`y3}Y}j(Cte;@b}0`9XGAs>&6QJ87>mHO{d!V7@=MvEKg9 zsqVII)!bWDHyK|P-N!956z2gqQP1+pTL>tBSs;<0=zBsHjyyHPtNS+y(K0S3x1nXs z29H$g-b}W|Q;)XaVgQzH%LFd`j=I>s)hwd4SP8v7YAd1lRfLsxEsbj=}k3lmX=c2#E4c zec}OF$L?@ueedMDqbmj#h#qPk)~VEa9pUM}w5McQ7$lLl?C}uy5?VF!L@l)qcv4y*{aP&?~iWV zn63|Auh5`&fK-d=kzmZX2l{#dPM1kA$?QAO;+kv{6dj?gb8JO3$A2c!I%k!2AWW&; zv28*^#%x42)G;7%@E$1@L7ojFzEW*N4}fr!_eh!R;4q?iXSF{lF!`}D62X+?><#k7 zN9@M2nJS4FLd48!*3!5F7cC4*zwShwsJgP;VG&+gtCT^QG)$26kntdFbr z`N!qf+!(Sg8roUX@7xn_rS70)J^a;NtAKM$%Bw8I6Tb-iPRFw{WTt#7KQSW$l&_c! zy)W?xFdVry<{DL4iIxeR+p81MTQOfzlFBrAHQ!YdB^zNnRngiOs1p#kP4K;8s&*Ts z13N?iL`#cL3PE{T$y9!U5ieIXLDUAWGSyuu6)@GAmqgPrz^9;~JE_hV@)bL92Nx~o zD+j#e09AiC6UF7UzqKnnk9&)T8bi5#0#N7k9^fXihd=38TIC2HI1SxR_C2o0GZ>v{UgQvRgsD$=o z^3qMLz9kX%!g&3l`~cdbA-I+!L>sDt7{#sI-052{^LuRHEOwDDsmPto!%dFKE ztAWk&pZ<)Y@|ik*XCue0*Qxh$OZ_D37*jv~wJVXN@iZp~sc*$kx7#$hJq=^|1x1oo zLxB#5_E?Ma!Wg$&UUuF0?bElmoup{ef32Z@v~j{keQVFhp zw=;LI^5W0$-rFJwqM5+PsvU&S?Nxkx?_7#yps_9oL?qg6qj4v=;#riyPgdt*q>P|8(qDsOBD0nTmRz|&A1O0pbE_5nTOAgq49Uo&Us*9j0N zUelg#h|6T!iIYYGahg+|)tZuO?=`y}xs-_x<&D)xB_G8cc49^OnSA^`JcajNYxz3K z80(dzBr^45jnhzCbEv7l6!&qDALr;YRfB7$Gj$`XB_9sA0kF~5RH>scQZ zG4&pjcYaHyK6l1_lF|dPs%--C=(m;MvGSA+<)}8BHTOm;0~<+tZ7hf}6gvPwoSN=R ze^7Ak`nh$+E~?yi*&pE6{IZ@+(&v|lfb`*BkH%)^w8mTPnkb;V6FuZw<1=g8crb}5 zmy~=UN?J>mqpA%ihM2G*0lM(piM=~Gx=>DUYt!gvgEbrL`o(ygr$6B5#!(S6MY5BAQW`o>JhoE zJ^{Bp7d^BBu4$<1JwZu{laEX=|EJmhxiSk+p9uE|p@CpT8%kaDtZ;04gf$L7!iPtX z`NzXb6lTByPF%8l;LP6kSLd1nXXRnlM=1qzpE1r74Q>RU85h{kXP>TH;n=r>o3eV0 zJZmg3K8O^a1=VDPE5eQZyhH&%=uo`QZy4L|+_HYRmu=Ie?kT}wqJ?|*#7pQO0-|vU zZVe?fY!dUl88M>_mlWfAT?(Qj6Ao+7Ng+C9gylj0H_x5?tH-bl@@6_3E>BzJCDmek zY4@YITsUlGYWnX_JXQIynU=iEg9OkRJ>hq|X;uj2O!HRz6CVPDX^(J%E;5~jr;7{} z;j-a3oAfY7;Y$CyHe>_LM7O-ltby?v?|q2X5@Du+C}a7}5>-6X*A4;oxEb^0^~gR$ znWrA^w)L>a%>=qM$tz!s-^^JB zdG}~3|YVI()oZge4jQQnFB1I2+4+3rh2rY1Mv_XX;`A8qJxlKs&P zyTxe#=EK7r^QJ1xj(=Ao!Wl!+vw^W7`xo^13;D4A>Scaf>Q7>S_P5rcBa9kS&meGH zc4EN|v5d(N(H0&5zJP_->$;Q$3WMT=Gd{wIH9=wL_`F)*>ZW}r7iq1jnIOgQNM;0U z1&AudXl+W!jX7Vf^=v6>rcWfXU?hB>Im*iEkcO_KtcRDgtf2KVOg8Ey#;GTfB%h8Y zS*~$6$V}>FTO_e#%#t$MZD3eAK-nrCWN+Pr)^R% z7cljelX2~a!IyecvihY&Yh*0^$)aED1&gY= zq4qbETia_17rI)HCL8P{tpuOoEME+%)$qI+uIgqK|8m83>R(N{8a$BPcg(%wM5#+$ zZpS;v&b*G-zs~$x=Gtnll}w;xrzI4YLwl7brN;MQtGZtKf}7`1vD4c}gy~3zRk$8Y(XOKiU)dZ*-Zd@^Q{b5) zz7e_lJ@x``SU*+1l!Rd&ZakXkpbrLr0WR)?8_pyf15>j)PXFC=4P!yy8jZVmaqtx; z9^>y2ScMQ|EMX;kT3IwY$}4-43!JDcL%7bdNsgWF$KIap*?HX5#Ut zw`QmFt-k*r%NO^*qNx7`z8+BKT}Gz?EU&%K;3BxxCQt|F{hm4(Je%3(GSRyuugBRT z;#A;G_J9Yd)rg?FoO78T@HD|6gEGoe?f`iMCwAa=-4 zz1dEQX0D}3d;7S|v-O&miM44XVcKZ=R)R|cAdV8UlF(h&PFg$$>T=0ovtrYU=^`{K(NgHd`iFj%PAzk8 zHPagS%C2xp8ZJL~&#}U4$+5<3sc+l|(QHAw*w)edc7K>mnX_le2lbK-M9oFou07G2 zK6GI{IX(GM1OGi`GR)q*66!0*%#I@te9_>uOh5sqYceNpqo`;`6i4w>EY^RiMN5r_ zOWEqbu*E-p#G4R-6t9`9xC<{^>_)UbF(#$jI02}N2pSCJHj4U<$!yJFSw*V))W5rLT3C z@-c$Xjq{Vv{G-TB*t9rS7ZoxS(o^3)9$U$s{+zPt-`b+(eki5uXt(}b!}6gjr?(MT zJ9?`~MhHgVc0!yxGa-nMQy5n>7VW3aRH4=pqMgkCMd}-4bH(sP4-Bg<8YHrw0(W!#L0_Fi zSb%CB{Efy5eA7O}@9R=cAp_nvS>E)}i}CNLof#V&LN@t6vN(gHFyIa$SQdzdN$8Ge zft&oR9(WpZw%VrLv-cFQNQPHLe}H!{6i5*vH76H|kp>6K_QGo55w<7SNLiWZ9&F2_ zA3x$>uJ|c)7Bxyco({d=0}h$1F}&pE=z%I6L4}50n0Sq?X_Z&Rio9z_Z^;Y@{e{K{LdmA z(lBGF!aY8MGxof<#^+pK6uDcfaG#@(4h$W(+SyCbzu@|@TTK~`RKE+KqS*>J9yO0C z7?G7$Xc2{>p7ZY70{Qy)HysDyX%x+4yW7WJ79qY44P`E7Z71$iRIj14U81(tGB0y=I(9b8`OE*r;0wwBuZylhRh%)S$ja`qV%9;0oc zHrMF)u0HPD*tA&$0s;%4*bv9wYF}^r0DANXE)wOxV?x5g^51n_4o)GEPb zmV;sKh+Re3RO|u47$J*bDT@Hsl%MM$ZnbrA`}pyauejYkD1SGT%yJlvArC25tCXoZ z1rLyWJ(2+*htUC~2GvpDnltIM2lT;gM!ymfzA0ZmI+wc`9Uf1{ZJpKBW0Dn_QjQ zUKPNR3B}A*&)}WhXmz`=`${gX-8*dMIXxq&8aUoFGekiqLN_guMwMV6Uix@P27uY1 zxptEn?g^l&=Ti-UIzi4FbDcTM3fNlkTOEy??00S3nX13Hq*0qMs#mmM%(s?wo}IUZfEz||Gl4?nN4(#sLA_VH!>PfDpxTL zS_qg{bO%q&z57yE@7!O4SiOK04}OTsE-?8R%GvPisgs9aa<-H{oJ89rLxdoeQR<`_871cZ)qZdu%%|!tpg?qK_;T3M>R5ChmTFTM!)Q z_(HYtnZIq@c@B=&V=dc0_q1{PHODk)&`F9^R<9EB3-d_QGW3W=?`jhsxC+wO{bQv|98ygqDv%%c{5>mGFIk04Cgf&}eRZ zXAj4O&bghpz0!8)lvsZ0?3&Ni?x+&)Y$_&!vU`8_?}mP5@CI1mQM0`;9COOsdRf^sVWxAV)Vf&@xEtqU9g8om{&D z)B8C^*okWxobEl=rZj%Nw~cjSD!$5@^+^1niDcZ+`gND0{5!fSZzQJzNWGhj(wx!* z2zO2p(a6AO)Um)~Jdang8?)$m2#%i5D#9SLc%vQi78!(vI7!xviED!Y9GU+<*ea5# zq1R@0K*zG@lGT_s;nylZlDxPX_bbWfsWueC^st(z_Tm6oTch&99^9;hLKZxaN;3)8 zepE;AH1wqS&_Yt07CBiu(12y0P*f0m6dWh_?aFhS8+?hm4t>cYjmxJ7K{O<8+xu=F zT)yFDi06u!L%9%Jhw-`a)^b${#^1=eDjg3BKBeG@S#jQ;ufsL_3Zmk2e3R z)%tNeJWau#BpuG}=YgP=2uien%yLj_sK^Lh-}hhjUbgo7#VxXBD`QKt_0-M2?gtP- z`H?I4RqhMqW&QOTF-4YbB+NB!rTC=VdyE>3ljmxN5%Q$0cZ3a~YX{ctJ6}^=w zE#`ioYDal~|3jSX5H|M0cXxvg1Mh9#xZ!&LiTML96OYELs$;+S^&0 zzvmABXh7lk)^}c>EBE4k(YVeqEiq&5QxQC7KEs3NC9|0RiPt{6!wL-DRjd=M&JP_z6G|jC3E^>;*i4n6w#k_| z%YMGh#$4PtWEKq7Sae#mslYe`YKBl|Bv}Z*Ln^K&X)4)VHr01++RPpk18GV&t-jQ3 zUK3JcPM!!@%gx`&H)a;AC{f-sx8~YiP=wq}oGnRtKz3QA(1N%~3%RZ4oi?K1)FfZT z(m#MIu{fNA%nUQ@Lgc%+fGXeFa))#6YRE|N?usbe3sZ|QEq%F_OQq1gLJB94_-`|8A& z9~~5jOOzHS{z7&@cB>M##Sz~;kqK%yp_m^<2wmGC``#XS-O_3DgDBx;5cIYIh-hjM z15X51lp_k=lZ_9*Up7Y+Q5+G4IQk4G$Hv*4Fr?)@EUQnw!@U7ZfnxC9M1f#28R&9;9tK!~kIkjX4q8sKTn?eclTYz2F%6Gt>H*HTv7|^_Uq=Evd@;MHcF; z`MYdosHN`$d;D>Jgd^UU(EhrVRu`ztm{#0sE3tBIM~~JM#$B6pS;~|&AXwte=qn9- z9KqGM@;!ZKMPDr)tc>M=Y4R?vk(}LqHd7;HY4H(9w+u_#poK`k#!|^fq>=P^eL%+) zs7V&y$XjgZLZy@}M20b+tbH4 z=7@ma2IeBJV=s@-pZ`29|LD!|4ewsuXfwt(9gs2sfq{Ro@z|OSCQ&P+&mtM%Cb+TK z$@WFd0?RH*>0(vx7*{Z*l+Ol|!UladqLSkZ%M|Tj4yW$=WT0U&E zZ5lahPp~IrWU+nRE7+1U)!9L-xwy)vMd;UXzdlS z7Jq|b?FD)1AP_{Enl5ilk1vvD#0xB}DKshm044Y^Q#Ch&?xV?p7S@n&1pD?kr)I}L zZ;ezwGEPd|Ta5Fdycq5&uQCdPs7EaqeSHonJN zK0Hgr4sVkW4i4Yn*^I-SLAJao1TpwHXgutX|n^)SP zjz)ctYJ=BlC`e01dpYE5m*5=?q7sJ(^IxHKYp~D~Y>7pF*I%jJ)l#?Hx%e@;26G7~ z`4LaT{2g%$e~F6k&?(BV?7^J{Si!q|twh6_ZwWK=^LCy_;D4J-Y2#H!Fxj-q zX{c{8i2A4*3%=99rP62G-Yh?s13RkoraUNYWznGMg!(QsHNUQG)nc2Eas&1s(dP<7 zcdEYRc{SU|Z^q1ZR1qQPLq)#Vu*?`|civPhxXZ74!_I)^gJ{Xjm8EQgTBNY`_v5X3 zmaTpYiD$>(HMe{g+iHwhNGWqNSmQSf8IfdFKTCYU+RDVBk8Q7or}STT=gWF8fM(>x zS3TGpa&il+?Sjah7Hf*G3QqU4hRJ&xO?W{NX;zXN`a^;H{V#Y8lTArYb26ax+pTc4 z{#z>-HQ#;!57{|hyQRf8TpTOV-C3z*4fw}U(sFy_^G2#wFXR=3#0!_hmDMp0x_U%a z?3`%yOH0rtHV2+i*4P22iHsY^#I=*obDoiqi+lYk);tq&MV{jE=Rco1SG)VCbF%EW zZQIS=4tS{THueAbkkvs6oYPqD?Wvus=GA!&h8LEE5f6ZSy+UVIf?pIHkRHG(BSdXgC;LirTs`z7fcXu|;c z3(ftx)Xu;-I4ErBd3d3-XRUr*B)2;WB9_iybJxIZ$*3K10hE6$I*m88=LtQGTHbCQ zgR!=`q2!fB_FD1LNTW9=gp}ZJs{Bj#0&I85>E>FUR(-WkPROFlT@{i?<1we9?Dfxd zN7N4hI~%h`AP%#s>k~AGfvk9C`##HD2QGuwykL?uT%fK9o1N)!oj0quOR1`ys;^zr zq`HC$TPZr2Nwc5COG$r6fjk_8O-ff-ZwP;mCd#P&VU1JznjMVlq@;`zK44uLuvm3- z*V8*%pm>*UHTc||)n0`xD%?b3N)VRARk%2-5hrY-UOMLUj8v2KBs#!uTFn;b% z^)Qmp4tRVFd$uFq55FW%Tw@p&&yHhf%eYG)8C(l%Wkw`Mobtt42@Vnp^Y?5-s_dQ5 zid-p00!M^N69}=i&D7fow6(XbLW1e~G5WR}pW<0p#w5i*UUwC8EGgY-{_oySG;>OH z^_0KQ`T`-l9b~NdUL^IX`C2we=*Y(xD>$_LRkB#u-Szmpn5_Cn%HxBQKlOm^YYsl8 z%hX;+JQrJi#Vg}fAZ(B~g4=)O%sZH6h-rGDoS8Uf*~CZW?w;zn4<=Q1&mQluFYH#x zXN!R2E1SrE_=OVaX1^awp`R2GCPCj3CNOiLm|ce&y@*BzXB%6YChH;6Xo;y(G%rN->#Eq>UFc)br<~Ze~J;6EWxOUu%F?0CA$M!ANT(b zKE(jcNQgm2;w-&nV6j9&{JV8q0t~zO2lD42`F48#aL;cNQ6b-clTblyB!Gpq%bvkz z6JWE>R$b$bl}4wj>THI0bL`*7Y;ebox;n=_qu8chaY`IRgFKS=xO(R_g7u_IVvRiy z98dqz@3kDj9K3s-BmLR-1$Ozj-q(kF>)CD)$43Yotp_hnTNZdLtPNvYZ;WbiX}9pDpgXF2^icYX)#ojx*7 zf@1@2hHB|%UNj4g3q|R%k)DIC9M$I>-Rzmp&I0DE=k~+qb{A7E;onC6UrKs+;vZE0 z_ddA2FkM{{PoF-e4^MZ*liK)P+2i2&dvUrU55NF(`k>>@MWUmwGWC53aIDxrSFqdo zepnNy_Yvue0-J)zo1G8Fe#CxvRxA7zIG5WFTCSVhSmtw`PmL4#S{l&RFiR(sJp>4) zrcp3^M(Gv)x|2DFcV}^gODshqvy0W(@VjQnBLzaGk9fOwjfd-p^+nbU9Tub(ualvZ?;<<_g)|( zO-iD+cB5N=E6(-gqcJ}WEFA4U;WSbCbv+VP$t>|GJSd%L;NrN zYpu?ootI5v_%71%QT5 zfVwDDUjHW&oWxD6_3Nr6AP|UOfBn_zWu4A!JqT`qK5k?|Ye&d}Wf+^OkNXjoKRMAD z8=;(T0)ahXWA-}&4uQg6@=Wjah8s1Me#)6V2_RZ=;*<_suQ>h|$hq3anr&bp)nKYF zY}Ix{7!4SY5#fJM=w2AbXB%ypjoFPxrAA*@@220o2kHd4rCA34KZA|GD}Z@xO%#;l zzTmK{F6JyUEka(wjJHM|ochb63_^tf2?3q89nVYp1D%KNFvPjjqBDJ$NWVidE*?423jPHEh|}O#OtCteGxC)#+MiI_M4|I z9d0l5dH5q6BS2-S*C-8cv31Te;*+|RYqB;_C6n_Uxfyt$DNCZy1I z&KTEem7aSjBSgi>AuR8@CQ2IbV?SQFE)QMSXl1Sm!mXPj0Cj1SFcR+sV&rS`J1j}y z&z+UZ2C$gZltMK2kwarqLbIh6;%ZrPD#5vAU!g#N{=4pLQ7 z_1X&ve^Da`08qruCUUGH_4fW1vvp>qmdHb!3}O|n3Rl&5&p>>GRM9w=q7KK|cMQjv z)kqndb3HRZTX)8>YNX~TW&UY3x0g&8N2$h-hg#?S&n>)(g=l~6?-gA=r27){`b&~x zcv_UePOJ%jzGIRE7*l^I z^*e6%Df}z>S}H6D?`FKa{6f9Mfa5zLa%cb)8N}!0OhItv)>=yRrHaLY{@z9T(b!y5 z0HWpg!mvAc8FT!LI2y0yOn9gPZ!@aRlo$)2SThW88v^R5Ajl91U2AL zfhsA-q4L~qZ+_R&d->bngs4Ixa7J)(1RggQhzx3OG9W88ZIIysD|FB@At zs5{;FR-9Cg!I?;PI)`Gs>-qmP(haq4tqC&RXxY_ge?!-BH`EkS9@|zW<3aqkJ_*E+ zrH2S3pg?(Vj1EHG$kM9odsLYbZebTR{>A0M=9BrE^*83*Rn=CaCd!FMr@aSz4EEGC zIFRZ_6WiCyXM>&x>6Buy^KR-ankx{_tCqKXBpy3hu+kDXAl##;7N#-(ao`xu{o^@? z)3_oB(H@39l{N1xJ zB$z8L zy~G0*IdXp-`7AT6zB1@rVdoolEki6tLqQX7K8>vdN0_vfU{nJ1jbkh~gH7Il|d#rjHP zn0V*Rz6&J+y_pJ%IdOF8BOsH}i}T!!A%SmT3{Ym(iI)AdHO~H3i)N6uI5WnaisOt1 zcjcfrxLUqL+fw(mbozjf67J}3;N#qZomF^K;?x1B0Z|096o_Iq!ZnqF5F3C6n#}K9 zBBqm9;p-#!Y?3?6xvPV8c?1I2+?8lwa;Rjeu449h!e)A_pa4B=W;{|;@d=gky`6;y z(oa*X`59lqxcrQ3ixtl_m1*Vq980 zHx{7kJnMCl9j5tvOxHq{q=G~w;!P7%!%&lk&5f5Tig{YB!}fD}F=(U>+m*5D`JWN# zn*uwK@e~YrLdaeBfdkL>4W~mV$~U!lJ2`l1NBz&8Zk4OuFso~uR6Q!;h$}5Y!6eN; zp&AN-`p%!jVP_A&ssqd@Gob#xjktx)BPQeBewbwQX7xjn2)Ulv-?Oi-sW4kxg z*|qy&y2_-=OWhf^+t2TVaj9&57-JQLHkW`jFpC2Qq>2puc9V-!OCXY&r&L#oY~VDr?UEt#>tnJ(1Ne@ zu`Q4xs$_q7USa=zhLl-Sy_>G&SdsWCUzysV4LuCKG&!6~2|EQ;({D~KE)MFhZyDL^ zecWF%R*gDtkz#C-QWFzHrH;R(laNFIbtl&5bBaa_Ua*@fdlT-(|{2}qCSPen(tUKan4z>8(T7Ggk*Myns zvRPLP0Y$;w3S(y0d?quYM10q&`w!nWxI-nJu@=1X31pS$=P)~IZB~8NM3sKj%;j{T zyd3DKUpr#33k86GKmJyaX-48J%B+Y2c4?OKLW`VY*1frXhUwF#M&Rkuw+3!?1DbBhRpLo4 z*2!WmxwxVw=Zms7ZbPp4-=fk&wHy&UjBrBr){c#5>m-nuZSDEka;dp3c${cRA(t}Ma7Hu;d=45+w`%&K&%5sG2-s_GWq5%Re?x&weBNHz zPusP3M=9R@{y2nz=mt|GkEX>{KZ6|JBV*SGmgM9ols139Q&1D{`PX&3*|9-cn|5ZdOnO7%7pu5q;Gcjp%?6ZPSHe&QnXD26 zVW366v)9_R z0Tc1(KZjV$sfXNZ_dpFke@~D<&W#ARl@JzNYy9*_H}~`QM$dBMqj{GtB^*uBH?1tg zC8L5gZJ_&~MyBww(YcuCVMg;Bm-;1$RD=A?DX`0ZE{O~A2HvlCSzO@Doqzn#oBu0eTJ2f-H6d^2 z{#bAuX!?Ft<)*GOM1RlzBMh4;(a`xTv zxP$?eB(fMt#;E+>S-uN54+GhTp6|nY(sZ4P1MyrHArVlth7$YKsQ?B-M+DNQCm52_ zwnd*Y<|oy7#L_0>Edr3CVPm4>s>DW0(^x?M>oGrgo&`gTyJ^Egz3E4vPyn;_&_41c ziaVN8_|8LcwseC|Txjh>%v1X$7s6{SdZG|-2cjgE{P7mS%W>s!X1Lj~ET~4A%zGuf z2CS4O?fq9nqfz(3w+VH#8qYeJh|>B;^%NsU)quBF&!*kMLVtSY$Ezx4oG%7&qhT9W zYOjW?j=YH)HA?W8_$f`X-GRCPX_j)`*n>Bi=(TteR3uVmCrNTo4B)y)rxP6XZ8hvC z3ZR9=A4pUd>tYo#>B!+Q4Y<>ZxC?RLR(@=6(b2g+hJmQ`>H;;6;=`rIcJ zl4FtC>OK%-k$WhZKI;rOTh<04K$_mXjX9UP#tl$DGng`b`(iJ}lO*T?RG9WOBrCHX z7h3qOMq_?2zhV(&S~T>rfZ&bAZ*OyK`S&lwD}YJ2!>iAl-A;ozC8X!H14|50}j}G#5lCoW?AVzFDNT99}e}U+|vC&Q}j9T-Tq=&>m>A^d#{O-|5a#uAH}Y-Y z*J$R4C+fo9S_DIijC9Q^3|=yqp{Mdox6}?uwmHyye=Ff)sD=PulpW+G<0 zaMT{XP$7Q`_HG@@(x?}7y#b@ecZ2Dm*TO7p$DgCe^7WsH8P{)AkkC8j4?kCin;<@5 zvo_#}mwtOjZ1|e9vxd^z^PCKkg#z0Q&wZH?$&tX% zt{XX_T>TLAG(*BvUlO@h{tYGxMK`jTbRcK}mdVvj(0_6KqS*J@hz|@}-wNMO*2W;O zQ+)kYF3cj}o~|P4?H%3pM|F(l<_ehCpYp1&I|}PJ){)}INoH`zo%j6o^eAP~6CNL* z{sII;kwU=feeVTBHdP-zdUS}Bv#AA-#~-(-UK~`+<7Vt~40fqwqg&M6TY%ZE5R8n{S5n*L-wr^d{8rKoMZ z<_#pqj5g`0fKsHcGBqq0s$`q{L=nNcvSTz&!4QYw=1^K+X%V1YeM`BbmFs@*|9Des zUSi2!ZA3PE+-Y9J|30S3xxwp)ez62=O%TN$ga54SP@0JxvF)x>%oJ?euM4V@Hvr|* z3^C5vKzr_(Wg9${e2bg2qqmx(m7>!wE9S6~xslX0wp7tch8 z0X4_2j9K|hsN_+X^x--U1C`4Xz)3B+RM8T&@dGB_#}V>Xd09S0a~qvtAv73q;#OQsKTl^t?i4*=2H^& zkc5s#_KB0PgCKfHCM7Xow>5zsljJ5?F*D&YQw@=K6E=eN0nQ5G{GgCb-0>$VaWn1J zIjr7yy{y+c>(J{q!_ep%Q=opVlXL~w4o0LBxOe(B61clsmqHFn9JXqA@34;^@J+hj zZ6JTrI+%^eZY*{PY{d%5Kmd2gh_yV@Giwg2(}YRvW;i$wh40X|+Bl$eWE)y$9NM#= zL?i+U{N3yfM>soBGSXgsR=IR#53mIK^_CkbhEYe;4f9uhY2}Nuv@JM7{QTpPw;@E) zrp<50w5iNy;3|>eTw@E##yI2$9EDslBQJel`Il9*3WACmU-qr!@1j);BHjyZVF9~L z*twLGCr*cKoydVKjq-Xf8X|y8yTPIS-LNmL%t9Yu+V`cd@3kGldI$75C@O5PHK}$BFq>o| zaz1js*G#b567Cye=7LKRRCe^W-&%sunx`bB?aH*Y@u$YxEuSrPa?-@JN)glBnCajf}1$$g%ybFBH1aaN90A-06;uyI{nbI*l1#RRy@ z)^}m0jh_C9H>Z$v$UUVk=ta_e4z<4w7T?W;41u?X0!(*$d~@|R5147QedjC(hum+& zf~D7pFk_(pRNDI6TLl-u5(H3ZVAkV6W{tiRID0zDE>XDI{A4dIHa51N&%n>G7O+UV zyE(HxY)9Z`^KK0B>8>aEf9MZDF9d^r`~__3=?6*y3vDxl6L&q511EQM?P<`E|5oK< z2(I(E#h5m*ckcs@xii{#er)Y{C25Ob0kGaBDoM=SbNX>f^G+=#$K~D9qn(F2PRi}9 z9`=WyQ498`o3Ggou|GXv#~^ke{6FzEV9yjh)K~c14k-P6&(FB?&gb2r3j6>5ySw+_ zI~o5&-?nnc&41|sTLJ=>oue$V4+CZB0{7Hv9aLfL-(7sbFUqrIy%f{ji?v6_>a~D^ zFV+T7{39$aU1ib`!l(xh3$UT$hSzVp*r{;sSGL8s*#5%t^(DZeMj#s%z}GK}*xa$V zN#FvzC8wnoYr!OhuU_q4WIrFVx#_2_uD+@kRaJApaMVOjxdPoe$qkfY3!VIRd9LNAo4vvf_g{hD0YcCs)9=>#o)Cc}dtudKCxkej76T6T#LDC* za49N>dN@!|eK7nc-Tw-(N%5#o8n9^+h*&*si2C1qxyL~X1dsmPwBPe<3ofhkWoKJ) zbHm=h6*aC9e}Asj5?Sgf{6h0(Tv?jkR}py`3-^0CubD-X7^1Go(K!C?nG-pK(f(G^ z)Z+$XsBhIv@Q(VFGw|9ZJ1b>_#^Y~F=U-C6iPZbyoEg`!DssZAW%rB|(wrgdL>fl4 zKJjG!rirIg1y1dLqu$tCN7HY%OvksM{m_0>{wUi=!kK#5FHbI7YGJAfJSdsDrXqNo z{G}w+wb>Uht}fCSr6FBwOj8Kb2V{KQ>h15TWk;{Re4%BStyc|~O$?+!8Xi}cY+i1? zGiTJi)G2@Od54+Mopjzz|Cg&Ngat&0FSQiXOM1Ka;-&l%Lsm__!g6~M`sBq{o|*0( zhRwKgPRtq~>(Za1t$r)R;_G80A(JN^UD{{sN3Oa0Pz%RDeRX2F*Hxq89S83OpIIL4 zyVR-tc{4~qn(VCT>zO_>98x@xNloTubRzu6)0t-7~0QpGKY%dKKU#5?R{hv+9o z84Y#8ZD*|SM#~PHl~2aUcq4t9ZVKtFw9~{_mh;cepvWnEt@yKJf|<@R#5smz3SQJQ zgpB4PI8{P(B=29N;cMSFQdDX^50wWG{^7|$Tx{pV7Y_-IuaJE`>0+I$R;skqQ-iHH zGIXzCsV~dYpL9D~Z@q5TZf#E`q)vSNqY)kXR#a!){wt{lI zz8zm1OC}1QuyVp3v`HWF+A_I)ji5qg)M(ec4A7->GOv>fWoO{O%dXUxR_&C5dM+EgFWPx*7}%h?YU}ivw)t^C-nRSDAT)LEezd>q z0;_n3hu+ldxLA8#_t$44gZ=6k2m^YaYUxG{%s_`Fo}AuM{VKH9=7^8Pa?%CX!SsRm zkCZT1VX37csIMF~6VohZ$`yUV>-(T4^@i62LC@v@PEdaT-n!1AM@Qb4M;>(72s_za z0Nd~DY$Jw9Z-EGeJQ{XYguSv>Hh2`4A5G#~OD$3jY3KH;bTb~gm@$-J!PM~}j*FP{ z4>%6qPQSG2*d42-dAH-t-9OKeMLW@ID{YF)V(Tf^OS#9^Lr?lCgL;K|P|c5j!<9L& z&kR+T)ngZOjviGu^Ir=6qr4GnbntYnJu)s#k(Pv#R*BbHl=q806)rSymqx;kaL#?& zsvK&HJ&T_Kbb?IvcSuy@uX1_PoR`2Wj} z@SE<@e`(4EPv^{IEg5EV<+1YDWyg_lURlz>mUH__7e(8Qo(_3eGCBS;8G7+v;dgkY zG8lW)+hy73z&GPpOlj@!DA+ioLe7;&?u8}= zG4kx+T8_~LN96VmDLd(DZV0DydEpw5eO~!U_HAg7+qY~vT)}2QJ z(CbU^gD37dCT1dN^xS2nt5EHAI!q}fM|#*bZi}pLs|>S?cJHR4&`rp*(G-`rOeSfO z1e~1}eBEL3EL8wm)7~!EQOs(jjLQhO7EspzI+P-7xhIB1srZY89zo8IGKmF_ZSJ$V z{KIp^3;CDgXA;_(!jkrM#O$sr-R3uND9BfY)brxi+g96;JIj(0hsEeP`8H-%EX{AT z!xma3@u!Jto6?&hm6YI&I)1)kxuRIQ4Kp;I`R3# z^kI3+73P6*3e;$apua1aJ_Ej_zKp9=`Yc@m<*O<+(ICNbdZc>b0&911sJ=FJ0#xG7u_`NjN+|pZ4 z>Cx>!umNhg_}$Fl>%=t)#RnQnO9N%Auz;DcqM|itZ7qJ2!xHh6-IpKZ{`BXnF~;i> z3VLhq1ShXUX)(NHe4d0QCVrH!%aC-~R(qW95f6tg z6UD6vX4w(I_ov1o=Y;>BDg5U~$SZq6vwfZWX^9GFcyQTNj)p-vTv+RM2XC89;{!8w^9=sG0iN*+_$e8zU;*eo~K zY~w8V*@MR#DtiO{63P8v?Np4ap;q*}oRq#Wx0^KI#uXN1Vl zuW8?tRw)>T6H7LnV-DB?c-;86K$e}tNVKlBgxRzy4}F_+U3a=syQFu4LWZ`_$ksMK zj^>+;36K}af*g<>Te~=R1jw8zd}uC0rmk{XJRvNyi)z<&cT0p z{fW9~Z16oa|AgjqvqF2$1NL_r2iN3I!!OjNji57uc={{C8R_JDN~yNO6PUF-4IZo>3b`9 zdCm?jWh<`yBzVH3rv{PdBc6lwK9l3(SuMP{Wv}jhRtV7%wgILjqY@mGXkp=Mv9S@=BKQi z672u_<|__fJ$=gYaab1bfLn^uos09g6DggGE|r-dE}oFiYKvN2UKEe~-ok5CmTD7d zs!|r>wC<6!C0WRN*Sn~=dO!~2*0)iH)xH13S%rT#1N)RXB3%fJOl+SGdMtw^IWAY# zN$Gxg=Ahg2hn$gM&M%qd>S5)nSZCmXw0ehe=qqK9HRB&#LfqWd;MdBKf%bmOJrx@& zvmO1v2?lcV^eJi456TS3B`mY*SDD5&qF;RL>lMc#Cxn~^jHXso39?~zO0(SHQ`3wt zCNUbhY8qpgKes$*zp-{jJ$*|RIHkmM?mkExJ#|PqaVSq>Z=l^w(j}2`XOBcOp%k+Y z23f6zh=1#2sfUZ}%|GKU8p4A}BeIKM7S>-5%V?ZGyuScbDV}mB4XcrKNFSLTP39vY z>>2q*l({hJ##@o*!}&auNkUt|hS4E%Ma5g!S7nksxpVxoUtQ61Ru=vHsbuHkQfp=X z$gB2@zybA~bp9W`4mCza3Veg8Aa}g1%+L zNbdJR`xYz@>o;!^k)6zO;|y(N`Lo1j+sqyhD@JyAgs1}|e|DoVN0PZ|8;o^%>AVki zuWe4?d(OqE(*?j~K#4zqJ>C|K-fG>*#vwUd*l;tHlzUmiJIGzLNyJ*K*n7M_pR90TW3B%AIOj%(3WDj^Iva8~| zd21<8LLePEwH62;thLfqS`m&jJ#0;^2Yr`~iMy6m^HQm5?tnH+Vs2G6>;1ThjMvKL zu4PhsTk%+q^s#%Ib;sdfeuSGt3^(F`O^^>jvpWqq2R=NCU(Qrekz{+OTENcf+ihv&~9w)S8`O*#RP_ zdER|D8inGLrLNms7IlB&JJ2eG74-nglFm%!D0?0ikvYHqEp`jolGHRRPjIZcf_ibl zaou{5C}ntDsH}C7zf~R{wnKnn3aDgQRh6{SUrKCL}1u_Elc0AE}D{DRa=oXP7`{WTU&z>iu zh=%w#R%pUNwZBpA!Af;GLcuIYswOU+PYov0;3)=N<92TFdE>=1qvFX-3Hh0vt!4SuYN`zi12Uok=9y zGi{RmwLXax8l~MwAB88)M7?<6@Ty|uQncZ{NDgsMB}YXclfna|*Sox*n|Y^Pmdp`U z@#-~+pyD69YjE?NdUrAY($_%hEZ?%E%HNTUhj`nR_lE<$uGS)Kv@;Q-vSYW-zsrbg4zmq{#4c`oKh){DS`JTx=n6X|Z;Ze?zJiRq6cMXYoU!cOG4QcVZ}i$f#3l9SGfWK ze9@##!Gec5Tn(?@lB8|D<*waz1jjJZ*AS*cpQWFCebSXl%mp=Y+0V@wwpw)1QnsQL zCgDn=5q3Z3y%+Hw)opmWuR>P>-9WFF5$^y;cZiv-8!`W*{>7R_O{+(4{ERGyOuy`< z>Y6}kx_MNY9^>3%r*TZH(tGuaw9B=dIkv9YYJ)qBKlxC1<@2XK6;3ujDQ%pScuk4* zl=qS-bZfDuF>R;cl@(z=X%S+kY}dOF^PnRS?Em(;TgT-@lQjB_ZL`Z8o;lW5mOJk`GzvupwD!!&EoCry?`S_ zMMX)eRZQ0fm67SC`a7zxVO1*T)QB^EbQP<*7d$9k73J{?r)RY4ntqriG^a1~`T)gQ zKCi@AH>Xqx@y6Ee+3`31u|sG+f-?H@=cHJE=}#shf~YlD##TA(0+h_>J*)68Tv0|4 z+qT|jHH)FgT+GbkQY++4{D;2SFE&jyriD1ObO-4HN=dk)5{$qwh;{4;pen z)lt6=>A(DPbi=%#yBAe>b-Z!@nv$r0#yWC%cfC)-hA?K6*8=nyI^~R>SG^*5Ux(sm zY(C#6R2|q~EJW!Nwn8$q1}AdbuH9v>x`oktRp@BkmBDkfg^SUJS3(!~|0x`{{k|wc zTRf{Xz%)8IWo((Z5q>2|2zNAmTAHEEV?MaVvZ;-1%I9rwr`|b!mPD9TX@D3Uc#fU9 z<@mkuh=DyoU&v-J7F@|iY6^s2N zX-8kHnmX)R_LK=CIm3`?b$F-RHTk(M>Sa;>yXTuSj7!~;{hV$TF3KUAjRvlkL{j>X zBFu6VB)wR_No6RROA9S4l++ziJz917oGvGOsrj@VuddZv7|gBq zo*l-5JuPJx7Uanpgzu)3^zjgp=YgkojqpP>!Nnu$Ex zYYybtnV~G8V2sEVa$o)?<)3<~#4kC(1HO8ubcI_bs=a7-vF2?0wDC}0cX0*@h*W-U zYH7UloJ{8Rhi~NvYq$ljX!%pIwqN0w#s8Z~k2g17zh$#_cqBQJk1iN?ELqaHC}@TY zV*|gCUA)CZ4^Ss(G~`w)*o|QvISFZ>LY6!bl+6z9ye;4|NT&<`ovB%xNU$Eg-N@=p4|oRH~H-)-@~dpHER%g_x^hSasBDZO_0iyKA9 zmyNcaoS*2~R&SxsAi~J0fPL5E5R0-5+1B17hORD+w_pd3y4AVS%sxFBQd)AT5$3qV zPia0}x)xUWIa+ugcxP^E2!GG=TLFXxvJ+X^HL`{rwTD+C94zO%_bu~0aYV%Px< z3qsVoG?9VETR zA9WZCHQSj7^j()aTNQcB8u>sr~b&JPoB*{;7+Tp zsW+EWk;SYlyt{J*ZX4 z+$ED#%k9)Uk$FX&DRrl%v=TM>T%hSwTFXxL+uA|1pV|JNrpOH0NaU+HM_WYquXL*M zsgV-OlUiZ? zgm~t$!tgoiDq+pCb#Qem7+RaSmwLR#4KdA+7Ixi9VqbR_dM1Nw^c%ETLTYX#M3t5T zGzDJ8Ex|z4l`HI$-s9gcV*G#t{s7CMWwF&Gh3O3Ta3#Pjha-U~C-r5rzAr ztCe5~FnyI)>^S(yhQE23Y@Ke|xQc+RHbun59Xd+Ec`*~mHDmN~g9A)oP(Cp0Ddtvy zx)bjmR?LP!*z~D|1LL7_>x8X(0oe58o~Wx>7$}sSV#)UYtXgAv9gm(Ec_XqQ0(V2AJKDXz_EhCWR z+dgWkTeNc_P0W=bCv{1Z_-$mrWc@vJ<|>Rv6V1pQh1e6+dJJNQ{`REZA#II^(GrvS z!;NC0LGVep#s`9=sJ_>8VYI+(oVOUwvFts;R{y@w%r+72O8*=0k2jzN0v%M>$mk?2zNAX9CiTQ}K3& zv2mlL@2=bu<_7+7Gc?RvL;g-m47zc5=R)CbTfR3I><8B5#I|wc&F$Uv+{uF&cQh8b z#q()oz;%*Q_cloeq}q#!k{Y3Yy`I3dd^UAMB<;DGw1dz}t)kAJ1Wh%vQK&5+BU6CP zK>mfL(pU4SB@;c`+<9@-WOre+%o$`fNzZeoCx`xH<5j3&(6>F86qCG#!4Ww;F^eS8 zt3Tan#APWnI$^I`Gxpt$(Pcpvo3(MC*X>^rf8KOspo#wngax~q;DIB)PaCf&MWc>V zSY#jj8sP_yX3dZq=jYd;yLLae`;CcKzn*5Y+l2okrtN|TM(d<37j7M@~wVU`WM7+_qH3A-X~D*Pi6=$pLO7!9ax&7@=~ zcA_gA6Udlfx4N1)9GlZg6V@2V3bSi#I`6rq#~Ik^y!naw$jaI+<-CI`?n`#7<;?lN zQTXmZz)=Ei(1gTIO+@xxF!s5NsyNTI@54u3YaxUDVi|{GMHqQHVtzT+2J-is^N(|! za7CdnKOdu=XuP1L07I3v3ob zG|rg1U1<=1hS05<_~|*k!3=3N!2mlHyfz*n$$?+7NwS`Dhvg|^r^lyH#46VK81Q(2 z)LL(tBWn3c6)wqImi%n6>SHOA5oY;>ThJ7L6km13C)mxPC95Lp4o@<+XPU@ph;~J_ zO7QE4c+IQPg6NNL779YV{uxDW@?t)0v?zdH*w-9Pl?cqnIoGFC#l~+-4{ag_WEP}F zbF*3s+}GD1c6JI;92SZ%lM3Cl?L!W>RZJ71w8_+nLQj8~T!}r)7IOS)Pkp8&YDE(an@Xf_)@$--?-mbEfY<-Th=Gz0%`=>wh9!xQi+GtA zJmVZ8&^^#K!_1IzR&NBP{iKdSKd#FEpD><4)4_Q88m}N<8-b4YD}s@_-O_)r6KkrO z{j`p7=oZ^RvDn%k6_i@~39ZX+@%gGHUT2|q?fkUixl!~uO|1J>4X&`RK!KU3!78t2 zc?!UV@KYh|T!1F3Ox#vx?6G|PfdBCkWd0>N6~r&!iG zW?iTIp%gAL_^=@TU)VTjrYvliHH%t5=umWi46gCn${w;Gn9T|_OIUyq(616E#bi%y zzprnJ!`OaO{$AJMQ8bjvg+OrV9A}ilw9NOQ5AUK8)x%A#bme^$2GxV~0`0o%ZXD`k zG;%&A(ZuyAP+weo(gT{F?#h2^Uo87n5D5{~4+Mg5nSWp0_~{QA^g2%3)Ek&AKj>PN zS7yEnPqA$Y71&XqUQ8K$+@U6AcR9Cw-CQUC$EvSn9*`rm`gL=w(6d_aJMS;Y1_H1e zi@Ghj?Oq;y)Cell7BaLc*9FBF5dEE~G`SVG#cx|c6Z@uOTnLpo2C1GwseK8S)B>S; zdkyQtGJ*~4>xEoF+n4grts-kHv&#F!5E+~{ZHrHMkT5;Jd@zka8kmt3;9Z&Ui>O?+TS+vF9u~}+nrHy19h2XZLKNmVeio9 zl0yW*bI&8OZ)o!?a<1sP7OI5Co__q6d?DG^mOa-8cV-ONC*!kC?_vY;wG!-yBBW#6 zxnLeXk?c7l&c@gL3%x>A&Dyb*6KKeU)0sBvb`GLGy0bi!WhbtYec;w$o#_fh7+^Dd zD7tXI-r{A~H9*18VM>5W$qoMoi1Ua49OhLM85_=!ctR_?CBAMqa)o9rRzTH0QSAzP z^~M3d_u65rs(g42$PV3V&DCnI0XJvbLH^*rqP76#Y@8HcD2eug5>$S~r11nNQrw+! zYUO#lHOL==P`in~TUM(0F)&|hphL0vTJJ0 zR3AaIcL3D7*~s)H~gp6y%nS&{-$=2 zlb^9+FudSRVhHh9>eL_JtpfeM9*lq4+1x_PHG^n%zn%Vw)v=;Wwn}+MhlBI4PX~ z^e5TlrmhCNFD=CC8>$sfg%2v4L6_Ou2>T!QMIZa=&Mh*VU|+u9FBA8`WCW($R{a ze#GfHYi&K6+X7LsCGuF0CpmzUC3x-iv-G$%vOPL|vLnfiG3dKz@{uY<9hqb`I{A zBk}gDcfB5ggFNvb`{%E#xHl(E1D$WwZDfPZl!2gv5<-Te`a~FGcr;%usd4_PPZsw? zyElS&XD0hg(1M`msJ21vI}mAd>nwcEE^#dkwD_T4MbNQ>A}qKq34VE z;ijOk+OsyEBPCD=@4Cn1alzq=x3y$#KY()aha4i+o5nzaFSOKiq*9iM5V7NMwm2XP zUsdlBv8i0rx~Uoni|v2HBRpl6*{Fc|MVLL?!fr~rgj(O)KD+C0TJ?#mT1~;GcP(Kf z$LN#DNXxg&g%9uJ!z86-PYJYCbabYB?gO(WHrlFoN~ z;M%`-?G2mM9IEFiGI&YkQ9~Q`@J2#&7nHDYUwhmQHCd1c8>i}Qkdm&WShF|qg~E0* z9EoU%^x#XzzY2c;cJAVog-fEhd2JfQGOzMSzpDnn6EoBA6ZFPK_W5FtRHH1I5j4`tP;6bYZtuv;QiVazb8N^Wc)X+}tl(oST?D47f zuR1M?XlzJWLt2ws$~%`(CX%e^+uL_;TT7h)7`Gmtl}QPISWoEtoibYpTx(4Y<*t%v z&1_Cv2RTMMfN{^SMLmcpGA1c`c)6Fh=a$~<2=qyK4%oLqnO?SN^N0?H$JIuV6mDJD zZ&D+=kJN$JiwkEE_;=75&j^-m*IMh#;;ji>30=MsJ7@H4;U4yK)rZ+KoSiVw?pS5KqsMY?GFjz9e$}UNic zE(L+?hU%n9qv8~ey4x`dLzcoxBjNHiE%<00rvO`Ez&``LA z-X9?zxw1Qd>>Q*Z76<4Rkxqn?ArXxN>?h75N5&Gnf(V#;AypFS0 z-jz!pRt>%G9Q5l0Q2rmwiF`qdYZn&C;f}WUiZ7Sl)p0KQ5!yzQDiMkChBRHX)zE&4 z-83WJwH6r(&K1r63*ULv2fHMO5V;)g!Me`{ow=0r6K|?g34#|q*pNy18c?ku{q(D) z9IE~96Ix|$Vly4fsdq>upYlp}hU&cRDHAL7#0N{Hg+lAev(Uraq-IK1foo^xBqGB^O8Lc z?^lh361z?FwgXf&?mqUlHfh)vOF)`!lBJ3AkYxH%Ca{!{QkOdH#$9ltBiZ+URGZez zj5E_k82h`RnE`>cM(mXCkgkMp*K?=>eI=DOTdgds(~BL~Xw}*h8z%%ETTN~4e27M$ zr3hr7RbMNP!8+VZZ6ka}lMgo$M*X>bz6v|u|A`#0v;EGwT0Vyij%dIgGoC`vnt84N z$x}LM=1nr5$Tiqg@f1CgFUFSHPeXdzr+}DcW}L=TDS~TW3La$uLjp9|N$;%iM*g3M$dw@E4 zp_Wq4*=Vynb*~OuCwep0QUOeL&-oo4BNg(A1LO9wiI*sRaYv}iP{=v1=mhBs(SakJ zuT+%Vl5nq8(o+q53g;F_m9K#aF!vH}9ZV$}yHUYcr@O^SDK3uefkQb){cp7Itstu* zYwojxc4=_jo`gSK&R8mZV7x6mpFBq2#ZECplN=qGLMb}A2VzouC+D}%qAS>!6sN1X;UYdH*d}zmx**GSvb1?<5rH%aZ7YF ztaLo>owNm%*D@ht%gD{X^eiym{*F>q@;UDeSD|TiGPG!?Zr^PzT?Ro3PyO< z(4OIAXz{&aI5)*?_b80$3PuITC&oR(oTAL3B zH{~r78At1ny>geK-AEX2PFkyG!n;hj_IrtX%KO;i-=09@TL!JJuXv0`r7 z@m+asV%mjYv9L^#oxj79b>!h)aZYE-yXoJg-GsKB%Xj}rDjf(h5Hl~%(Z`V1 zXYX1Zv`OY$uwqjx1IU((X!$PCpbH0sVLkiQfeGR`+Jhi~)pV4IdbR#qv#rNssiNQ| z-=}`GV`zWV4G5F!WeaZrX90i~3l6_xS6x8nIZ}WtE z{sT)WNb9%1Z*O3a9{*?QCP(n)3qIY_)2IcDncLQem|&)KJts}`&uf~ct{IRzx;j>r z+`6H3i3yghy+e1x`+1hn$4?WzTS9~hpVB#ThUDMM4sLJtK+NNpC2OJP=x~Y#y3wu8 zML+4=&{i_;=R(?u+s6Wdt=Fh&;CKQX5GrGWYZOro==AZPsj|Pw-3sgWk~!FGDZ+0s z0B`$e&q<^BgGA8!>DS_bnXd8v{)d~yJ>Ap_K?eO{i)D<-iUdI_@%8Ul$t{Br|80Zti;LO^O_IoCi z(2 z$@AP)>217w+M%Ww7Ni!RM#0{z9&4`z{{xVrj?O9V?YZY8c|I=sli5%!mb7cPHpFZQ;W)dpk zbAQUMeZpdr##L&)>!^Y!x^D`!S#l)c~A$cue`=}HYKWiqbLl0rN%uj^YYnaz$Dgf5g$+sbo=yg!pg zr8j!`4;ErNF$Q_jm-*lshjndWm#osb=Mx(@XR2;kF%I?aw)5BDPCbE5x^pXI9%ZdA z-iI81<_$G`qG~F9E&rpv&H39`G& zNwT}Wr>QBl;(%my+EPm|xiRj=&J5cf-pQ!?| zN?tp8qhnsUboW)~YWl8(fp6$73Ed^My&`80S#u~D3RVenw(g#!dFo)p(wY{|O@2!X zL@pAVI6GK;&3kRkR#ux1yU10Ivs>cBm#H?G@!AkLNlBP1IP6V2TrO7cPzwuZchBl~~Fc&9ZM^k@ZZxv^?e` z7D2OmcO0(VAI=HyQ0irmTKN8DJq@!K!d$=OMF8%s98! zo4VyiXz2MeD{<6S-AwPZ7QVTA4k?I7T30G?dPC~XEAjz{&`=KlW3(_{Vr2f&%^8t67(!Hp=tmL{9!Q<5zi2m7eRl3;L@*#;tX4wd=Q<-nSAzUw zkN%~CNSVJM^kE}n_=_@8Ud4)|#5iG1WEYvTe?L3# zx=9)qfCNuQu4vT{ZQ7!OSp78%eH1`{5c{nNnN|{o7|>8I zT&y%>;yRA$%)m0Pl=v%EfCM3r`i4k9*)_+y8`h17sAt0JkvVyH5_R6SMKKagruJ zHstHljIeN7Pdb|ayRcZ{;;6Pl)YOGgQN#1n<8al+E=%+l$^BRJEy0En<49&2XyGlN z?)(qpThmhkSrJ^}T`E7aq^uYX9M!yct?k%&VD}P2AvBdHlsXO9Z1k!G^6V6if;tFd zrvH%VtA)+7+FXu9^E0LjyyfjyW}?2_J+Qv9lbzRfbf=A9Ok|>W_eo~cx1t}uGTsg= z1z{pEP&^?v1elU69d`I^D`O{HR6fK-NUY$t2%z?`A#Kj*OIk|66&nl;I$I}kgbyK09c6*2l+GVl@u01`f*Y@LRJCSmd`j>vtFeelaM}(3Ox?$Q(~P} zAWp5r#=CJkB6bD0`MpD1V2LY>mnC8W? zRd$d%_t}a&`76P&1hvN^Q>7-bu(Z`t!}&tPZxE~wITfzVD!<)LwazBzLn`n;SCjpV z0a~I`>F!BK%D)Ulu4Hr$2V{LmrhtzE(lA_dsRau zDgU>H%Ws!;<_v}?&1)m@g}o?u*Xxs3HxQUq z@IO8Y)SVry$Bg~hD{%#w3Y|!>^5OPeKnK8K2|y)f5TW<@By9Dka-dC=l>Zh|*7hb} zb@=;WuKME6pDzB6Nuigj?zfGbIxEM{s22l=5-}m2skUf8xaKN7#&h`dQzFC0kSE09 zhM4nDu(HI)Xgv)o-+?`o9#)Z#YOWKtv~&7gR){-$ z51@SBZa~rk&{GF?R0ft~>*H((zh93ImBj2p4vsC${0|qBw}2(CPxy$_<{cz-;WhZy z9j@~fU~U5!s6n-;N1d`_Q<0icxo~&gj*g@@supX-D$hWUINO%$(~1z{S3Q^!meUaV zM+@BA;CrO0#@~>elRA>Y>2-4Ig-N87GC1g>KmD)d>ceE)pGa}gGtT_+iiK|~o31$X zHgtLPwc2g}gxW@6QuKUb*j^1<5bZP!wY6|jP)sp9<}LIVXyo4c+K!h6R_6XZi7x&z{A6mhW=&&f07#e|oXWtuK@qOe^g_ zE(qhKtuq*eetd$dUCQtv9qAOXj+6J{Qw_|{0?QF%!+7x zB^))N7_S-T;W^2yGevWBf}i?yX}tXW2S5Nm55>n6_}_8cXO2^QLTtmz*DD{k%-50p zBlKtX`oG?%RWnWOXXoD7cBYZAnAZttPVZp2lc)Yf`u{-zwv_YWDY%RRy0EWR`)9QA_cnP0rqJn z*uLsLotJO><*yq+_Y9vZpA*hb;l2@g6cNU>oy0k&!(JEpc%PSQ*eK-x=7g`w-FX}; zn4(k2!PPSx5PE+E`uTA%=$tWGBpy@z88P{K$9$R3Su9P%5gn~A|F8vEP7Sbp+m8qj zBLBRhT$6Pdb>>l>nwUbHftjtU$LO2H8Bj!4h+@53g{dieeqzEMpG-6!+3e|8$%w%4 zi|KIM>6TKvyO<9oUEBIb`|Id&41uZBQjxw0GHsvw&q_^g(c+v2d0wy+tlSc@oqpxx#EtVgFIezQvlAN;!$_~?|0#NH}E?*&P$_&x+g6k-1!N4y9p1Oc&16hN0-XY zgy7@1EZTYmGb*8b!48r9U zX6zk6e+A@fQG_cz!lF<+*uw=TO0-6#5FdD#wSlM}`w?Is@FDb8^CmzxfE`MbBcmR2 zLdogm%}N^s?IEko|IwNG57R)7mlrvK48J^`u$$QZIY7UD z1L(GjtPF07_;J^TRfN?n&P(CWtKPPn1jJ1y|2lCt9RQRM4+PEv=U;)r_v#GXl&gJ^ z((yh-WvK!37BdcOH@A|vILZl@6^Jz3$sELzYS4zJ$=3WK$ljg$bIHd4?a)cXudU&3 zHDJ)aR+ke&n^SgBy_23@1p|nZvzOI$V!}Wu&TbU{v=ShP_&_fJ&#fg`yR8LAM*Z_Z zB?S9%$bO=+CR!y#wvW>r;FM&=lyaT4N^+5Dt0nYz;>FCe9=Si!zL2>xQj3_W1EgSUVujJ5(qQj!MAqz8sq>1)Ca$Fnom*XAZDj@Y#dA6OR@}zBoL`!e;nh~yrnXko>?InF_126v4y=c(r$y%?a zhaGE#;wI2?bDWf1pwbl7t>XSlldHyS#N4sP#t3JQaPx{{Lbt#l)F9gTTD4uWe%z%jny69iL-k7R)$A9=Pjk<-D zc4gdSAU*ff#fN|11gsh;*Ex=oVnAIV7p7~^#{`Q^gmm4OIt?{*qJzurp~`vRr4p+H zBj5wn@!~vTn;LWYo`Ir=LEO-p%YqOvhqQub`2pu(iRRI|~>ZYYJAIj|=GU0j>O zk+UMRux6L|t~EYPcip#$3Fe)qw=Udtbw8rJZ)w744rjP5J>Vfx2LbC}CnK8#n2xix zMCBLNr^=L&QsQ#Puf;Q`a>pf4dG7y{0Gz5hA*v?2PG@ zva@4Wq)t9f$VPmv#)PecB7N;PC?WoA1}kRCS9xzfUw>|?oOEo0gLtIitlR=bHe1cG zKwOda&a~i0kU59#6F{_Zo_FSTCusqAJa?1BYQP?)sL*rIEeCA^O%O(x349SYF-CB+ z7tZL3sMMPEEcrg59Rx5X=tPX?@CbIn` z$Bibs-I6dz;d$xDVJ(GYGU{b=HBh-zKkn{(tx{H5B>z`mM!A&x2d%KShY8w>Q!ZI4 zTdJs=exthVkcW@V>{dpn-JLfG{V#AXKV}Z??y*ODgcz;O^t$U+FwnspetV<(2IiXO zD*X^JF&yPm$Qyxl@~ueU5u*@*>?@dcFno5F6^ zdLH=dK}mBOw)Wp=LPW(m^;M1Ha^($fb2L+zMzy6M3Uv9?h0yY|s8MlCdHU*39K^^n zrh;rIkedmEGTD62wlhkWlAHbO6hPnldjR@*PvJ?zLowjkljzaoACYmPSYESq?3H+)BcSUOpl@<$-IiEuNjSe{PR|2d)I?G7 zqiR{oCE7v|1>EbM>mN25 zg$rHugt2$DH)qk`MVAZtz13Bou@bpF9^%0hd3m(y>gTYsgNY+m=XtK7@jm9KnTzWP zMd#U~4K4x3uwfTV{+ANVfs-r(fax+@`@LL-7}rff+J{$>vJx_@Fc0Zd;qF?nG+hSm zr@N-J;wzTQ78K_a*V5$qFcWp4J8k2+TK$j`oQ0uHT~=ur(vyTfn4NcT!U?!+rkP^9 zSlH_jcKD+Hw;P92mOqakc#=)ew3rqYEco2FHsJNbd~Sdc%vWEw*cQC)QwaJN%l@>< zhrL z5$iVi0kl_k+S_4As`X7W#xuK+eorZPO6&NF@goM9qWEczcYS@}l)u=xW3ZX=on7~1 zseZ-(R}QAtQRPwJ{DR!G{Rw^ZyG!DHE}9XhJ zTzJ7bW6H1m6Gt_1S?$7sj$;jdI|Jm%aOi#-k@-mL2z_+=ldvPakfFM^fDf0h6>0qN z=E=RolTGWtxvERu$0X&MugE$|U~iX375`Bqh0E^HjQ!s1C(wN25Ytg4y%5*_c>18P z+=X-|Blz4>mQq=SoW2jq$~GzH05m?H@>grNXm^=XlA~jvBYjAnWs`IIR+Hd}mr%4l zV;jDq5vP8CX&nq$B*4M#!_-=QM|v^xallofu2K}=7Sv+uI=TE&Z}+K}TqT0Dqr~)1 z-)C%rhM=s%{67>4>5m&9)Aa9}nnZD13a5E%LX*J2YPVOvVR^kf_8_WzlY|Rs{T;_M z33=?PSwr`QuQA_vK9T?KMYnP#A6!dzOz7`?(hyW0akehPENmu7>tx?uTVDyavU?mR ziHJLL;d4p*e)TsryC}4`F|x362@Scz&)ES8 zvg7t~YS( zNdzj*eG;Edu|vOWms`Quy)BmKbF6IiBP&eqc7B6gjNKgzo5nu(03>6xb360A=2O+sZ;n#ZtB+Ck3C+1S<_`k@D)q{j z9OGYyCj_zTSB`F!Ualxx=D%y}bz0nKbFI=>nK5#s4D4CnTK4) zFSqD06Z6@(A9yvpoakac`j_*rN3bT1gr`{HNg374+=gt7gIKTs8UeGIy`eDkm?2_1 zE7KBTy$|pCasrn*^*P#QnVq;51*~Q(LXMO6bOuyWcAB7~h?%22LrIU}C}#pgKgn3S z9z-sbuZt4=jHB4Kx~7Sdh%%|tS?u=qOGzo-x{=m1#|j4e$I57-&ZY!OxFue%X+xyh zgJ}2*5X!SBqGHHpdJ}Dn9r{e`J`BG`@(VK-t@Vm4Gz4qTIcMbsH%9@+A2mu^S-nc^k=_fMRd?Vsnu!ON%)^yq>nzQd0>EB;F=XMW zlD}gwJXrVc_?+H1$5{#10IP7ZzllRo-T@~Ut9yxY?i>++_N ztuv&$3v$oV)-t&{{Yo_fV#HdJ_U;oGmBtvB?f7-g(QGm87T2lpiHMR{_VtV8Kk>#V z&iJP*(I#Brx73kpu#EMflSx~ug!ZCizB0S!K|^%jZF1&@)^Q1g zjX=ETlqkLS`@&!G@BN|(M9X#Q*Q`Z<-Y@>}CJFDsgscnt3tOZ^xVEW-Wx z{!u0u*YG&bQq!5QVp=_}sBv(IogYE2Z@J&3w8Wl%le+HN7odaLzgb9AdvE$g>a+KIh8*ff6VBBhQu zr-JOA5y;a~ve7z2x@qlGH4Xi})p39Cw`Na9K1?Q-B`*?tHx_&%gn*l%M%|gw{E-0H zk2v%4@8b~@TJ@eD3^Vc0+;Bhq-%X&fOeoiNys9}ly_4jIw#^A9DK;xILtorf?1fWIC zW5&2E{ZR?oMIKTSslb;W!oL zsAEVj{LeM0OsuSMtJ_Z7Y`|5$2iscAg+!&BUEROWAAN6sZ*YTSHqsOsJJ%=8X)D#c z3XBVv^Ki?{tP}22kPA^wOPxrrwDcmx{D|Q@72ZW?Wy{fgnX8?z&eEvHJf)gD^vz@oNaC z`7;Jiy#u&+0FZiKX;c40{4K!fyNPg&3Xub^vfGQ4MEEYt2O&AP0(_L>br_--P@E0|je6)n?hYrS6zv+m&B z8IC3lltGa<<)t}e<*^_Y{%5yxU=%R=ZQAfIHXwe$19*vM5D_5nlM#NtQ*7!gGD_O6 zOt{%k>oKBl;7UQ~cZI9G*Z=MkR9?7uTTY``E$HA*p}3DFeD10={ts;W$f$Wdxqw%} z-nc~-5YGF$k^PDOR?W+y>J-Ra#-}|^Ged72GodQ|=_BxpA9M9MmzQraGqy`}sPz*k z0=PH$E{!d=kLPVj#4$>Dm709#1>U-?2-uA9Q=I+FxifWDAdPfv&6mwVC1*Z)uD;L9!r$=(44S3SGaueX;!$Tzz)`_psm>g@zx zv?+uT44j%+_SdaC!bcJEK1{c2!%uutu60 zZ|s6wPv2DWKOZj%8}VbQ4I!k17mw>4l$g!}8rqMm|M*C%>&fQ9)r(3CvX$7kId5Jr zfjl5>*X1O8?)>?HOGe5s*`W{Opq#MrxUgUqtqIM#7h2XEV3ZY}$})PqZ@$z{_|{ut z9Y5+{IlHR(4~tPFOK?$x?bbl-v4Fpgr0g|TE}_KMaE96_<#Nt|Fy6iD}scK_xb-vIZw)3?eJ-T)aXdy=l}ovX*I0oVyFEYhqG!3N6_`Rr#eQD%d}p+{Xf7;B}@PS literal 0 HcmV?d00001 diff --git a/src/DistTrainModel.py b/src/DistTrainModel.py new file mode 100644 index 0000000..9869479 --- /dev/null +++ b/src/DistTrainModel.py @@ -0,0 +1,346 @@ +import logging +import math +import os +import random +from datetime import datetime + +import hydra +import numpy as np +import torch +import torch.distributed as dist +import torch.multiprocessing as torch_mp +import torch.utils.data +import torch.utils.data.distributed +from hydra.utils import to_absolute_path +from omegaconf import DictConfig +from prefetch_generator import BackgroundGenerator +from sklearn.metrics import roc_auc_score, roc_curve +from torch import nn +from torch_geometric.data import DataLoader +from tqdm import tqdm + +from models.HierarchicalGraphModel import HierarchicalGraphNeuralNetwork +from utils.FunctionHelpers import write_into, params_print_log, find_threshold_with_fixed_fpr +from utils.ParameterClasses import ModelParams, TrainParams, OptimizerParams, OneEpochResult +from utils.PreProcessedDataset import MalwareDetectionDataset +from utils.RealBatch import create_real_batch_data +from utils.Vocabulary import Vocab + + +class DataLoaderX(DataLoader): + def __iter__(self): + return BackgroundGenerator(super().__iter__()) + + +def reduce_sum(tensor): + rt = tensor.clone() + dist.all_reduce(rt, op=dist.ReduceOp.SUM) # noqa + return rt + + +def reduce_mean(tensor, nprocs): + rt = tensor.clone() + dist.all_reduce(rt, op=dist.ReduceOp.SUM) # noqa + rt /= nprocs + return rt + + +def all_gather_concat(tensor): + tensors_gather = [torch.ones_like(tensor) for _ in range(torch.distributed.get_world_size())] + dist.all_gather(tensors_gather, tensor, async_op=False) + output = torch.cat(tensors_gather, dim=0) + return output + + +def train_one_epoch(local_rank, train_loader, valid_loader, model, criterion, optimizer, nprocs, idx_epoch, best_auc, best_model_file, original_valid_length, result_file): + model.train() + local_device = torch.device("cuda", local_rank) + write_into(file_name_path=result_file, log_str="The local device = {} among {} nprocs in the {}-th epoch.".format(local_device, nprocs, idx_epoch)) + + until_sum_reduced_loss = 0.0 + smooth_avg_reduced_loss_list = [] + + for _idx_bt, _batch in enumerate(tqdm(train_loader, desc="reading _batch from local_rank={}".format(local_rank))): + model.train() + _real_batch, _position, _hash, _external_list, _function_edges, _true_classes = create_real_batch_data(one_batch=_batch) + if _real_batch is None: + write_into(result_file, "{}\n_real_batch is None in creating the real batch data of training ... ".format("*-" * 100)) + continue + + _real_batch = _real_batch.to(local_device) + _position = torch.tensor(_position, dtype=torch.long).cuda(local_rank, non_blocking=True) + _true_classes = _true_classes.float().cuda(local_rank, non_blocking=True) + + train_batch_pred = model(real_local_batch=_real_batch, real_bt_positions=_position, bt_external_names=_external_list, bt_all_function_edges=_function_edges, local_device=local_device) + train_batch_pred = train_batch_pred.squeeze() + + loss = criterion(train_batch_pred, _true_classes) + + torch.distributed.barrier() + + optimizer.zero_grad() + loss.backward() + optimizer.step() + + reduced_loss = reduce_mean(loss, nprocs) + until_sum_reduced_loss += reduced_loss.item() + smooth_avg_reduced_loss_list.append(until_sum_reduced_loss / (_idx_bt + 1)) + + if _idx_bt != 0 and (_idx_bt % math.ceil(len(train_loader) / 3) == 0 or _idx_bt == int(len(train_loader) - 1)): + + val_start_time = datetime.now() + if local_rank == 0: + write_into(result_file, "\nIn {}-th epoch, {}-th batch, we start to validate ... ".format(idx_epoch, _idx_bt)) + + _eval_flag = "Valid_In_Train_Epoch_{}_Batch_{}".format(idx_epoch, _idx_bt) + valid_result = validate(local_rank=local_rank, valid_loader=valid_loader, model=model, criterion=criterion, evaluate_flag=_eval_flag, distributed=True, nprocs=nprocs, + original_valid_length=original_valid_length, result_file=result_file, details=False) + + if best_auc < valid_result.ROC_AUC_Score: + _info = "[AUC Increased!] In evaluation of epoch-{} / batch-{}: AUC increased from {:.5f} < {:.5f}! Saving the model into {}".format(idx_epoch, + _idx_bt, + best_auc, + valid_result.ROC_AUC_Score, + best_model_file) + best_auc = valid_result.ROC_AUC_Score + torch.save(model.module.state_dict(), best_model_file) + else: + _info = "[AUC NOT Increased!] AUC decreased from {:.5f} to {:.5f}!".format(best_auc, valid_result.ROC_AUC_Score) + + if local_rank == 0: + write_into(result_file, valid_result.__str__()) + write_into(result_file, _info) + write_into(result_file, "[#One Validation Time#] Consume about {} time period for one validation.".format(datetime.now() - val_start_time)) + + return smooth_avg_reduced_loss_list, best_auc + + +def validate(local_rank, valid_loader, model, criterion, evaluate_flag, distributed, nprocs, original_valid_length, result_file, details): + model.eval() + if distributed: + local_device = torch.device("cuda", local_rank) + else: + local_device = torch.device("cuda") + + sum_loss = torch.tensor(0.0, dtype=torch.float, device=local_device) + n_samples = torch.tensor(0, dtype=torch.int, device=local_device) + + all_true_classes = [] + all_positive_probs = [] + + with torch.no_grad(): + for idx_batch, data in enumerate(tqdm(valid_loader)): + _real_batch, _position, _hash, _external_list, _function_edges, _true_classes = create_real_batch_data(one_batch=data) + if _real_batch is None: + write_into(result_file, "{}\n_real_batch is None in creating the real batch data of validation ... ".format("*-" * 100)) + continue + _real_batch = _real_batch.to(local_device) + _position = torch.tensor(_position, dtype=torch.long).cuda(local_rank, non_blocking=True) + _true_classes = _true_classes.float().cuda(local_rank, non_blocking=True) + + batch_pred = model(real_local_batch=_real_batch, real_bt_positions=_position, bt_external_names=_external_list, bt_all_function_edges=_function_edges, local_device=local_device) + batch_pred = batch_pred.squeeze(-1) + loss = criterion(batch_pred, _true_classes) + sum_loss += loss.item() + + n_samples += len(batch_pred) + + all_true_classes.append(_true_classes) + all_positive_probs.append(batch_pred) + + avg_loss = sum_loss / (idx_batch + 1) + all_true_classes = torch.cat(all_true_classes, dim=0) + all_positive_probs = torch.cat(all_positive_probs, dim=0) + + if distributed: + torch.distributed.barrier() + reduced_n_samples = reduce_sum(n_samples) + reduced_avg_loss = reduce_mean(avg_loss, nprocs) + gather_true_classes = all_gather_concat(all_true_classes).detach().cpu().numpy() + gather_positive_prods = all_gather_concat(all_positive_probs).detach().cpu().numpy() + + gather_true_classes = gather_true_classes[:original_valid_length] + gather_positive_prods = gather_positive_prods[:original_valid_length] + + else: + reduced_n_samples = n_samples + reduced_avg_loss = avg_loss + gather_true_classes = all_true_classes.detach().cpu().numpy() + gather_positive_prods = all_positive_probs.detach().cpu().numpy() + + # https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html + # https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html + _roc_auc_score = roc_auc_score(y_true=gather_true_classes, y_score=gather_positive_prods) + _fpr, _tpr, _thresholds = roc_curve(y_true=gather_true_classes, y_score=gather_positive_prods) + if details is True: + _100_info = find_threshold_with_fixed_fpr(y_true=gather_true_classes, y_pred=gather_positive_prods, fpr_target=0.01) + _1000_info = find_threshold_with_fixed_fpr(y_true=gather_true_classes, y_pred=gather_positive_prods, fpr_target=0.001) + else: + _100_info, _1000_info = "None", "None" + + _eval_result = OneEpochResult(Epoch_Flag=evaluate_flag, Number_Samples=reduced_n_samples, Avg_Loss=reduced_avg_loss, Info_100=_100_info, Info_1000=_1000_info, + ROC_AUC_Score=_roc_auc_score, Thresholds=_thresholds, TPRs=_tpr, FPRs=_fpr) + return _eval_result + + +def main_train_worker(local_rank: int, nprocs: int, train_params: TrainParams, model_params: ModelParams, optimizer_params: OptimizerParams, global_log: logging.Logger, + log_result_file: str): + # dist.init_process_group(backend='nccl', init_method='tcp://127.0.0.1:12345', world_size=nprocs, rank=local_rank) + dist.init_process_group(backend='nccl', init_method='env://', world_size=nprocs, rank=local_rank) + torch.cuda.set_device(local_rank) + + # model configure + vocab = Vocab(freq_file=train_params.external_func_vocab_file, max_vocab_size=train_params.max_vocab_size) + + if model_params.ablation_models.lower() == "full": + model = HierarchicalGraphNeuralNetwork(model_params=model_params, external_vocab=vocab, global_log=global_log) + else: + raise NotImplementedError + + model.cuda(local_rank) + model = nn.parallel.DistributedDataParallel(model, device_ids=[local_rank]) + + if local_rank == 0: + write_into(file_name_path=log_result_file, log_str=model.__str__()) + + # loss function + criterion = nn.BCELoss().cuda(local_rank) + + lr = optimizer_params.lr + if optimizer_params.optimizer_name.lower() == 'adam': + optimizer = torch.optim.Adam(model.parameters(), lr=lr) + elif optimizer_params.optimizer_name.lower() == 'adamw': + optimizer = torch.optim.AdamW(model.parameters(), lr=lr, weight_decay=optimizer_params.weight_decay) + else: + raise NotImplementedError + + max_epochs = train_params.max_epochs + + dataset_root_path = train_params.processed_files_path + train_batch_size = train_params.train_bs + test_batch_size = train_params.test_bs + + # training dataset & dataloader + train_dataset = MalwareDetectionDataset(root=dataset_root_path, train_or_test="train") + train_sampler = torch.utils.data.distributed.DistributedSampler(train_dataset) + train_loader = DataLoaderX(dataset=train_dataset, batch_size=train_batch_size, shuffle=False, num_workers=0, pin_memory=True, sampler=train_sampler) + # validation dataset & dataloader + valid_dataset = MalwareDetectionDataset(root=dataset_root_path, train_or_test="valid") + valid_sampler = torch.utils.data.distributed.DistributedSampler(valid_dataset) + valid_loader = DataLoaderX(dataset=valid_dataset, batch_size=test_batch_size, pin_memory=True, sampler=valid_sampler) + + if local_rank == 0: + write_into(file_name_path=log_result_file, log_str="Training dataset={}, sampler={}, loader={}".format(len(train_dataset), len(train_sampler), len(train_loader))) + write_into(file_name_path=log_result_file, log_str="Validation dataset={}, sampler={}, loader={}".format(len(valid_dataset), len(valid_sampler), len(valid_loader))) + + best_auc = 0.0 + ori_valid_length = len(valid_dataset) + best_model_path = os.path.join(os.getcwd(), 'LocalRank_{}_best_model.pt'.format(local_rank)) + + all_batch_avg_smooth_loss_list = [] + for epoch in range(max_epochs): + train_sampler.set_epoch(epoch) + valid_sampler.set_epoch(epoch) + + # train for one epoch + time_start = datetime.now() + if local_rank == 0: + write_into(log_result_file, "\n{} start of {}-epoch, init best_auc={}, start time={} {}".format("-" * 50, epoch, best_auc, time_start.strftime("%Y-%m-%d@%H:%M:%S"), "-" * 50)) + + smooth_avg_reduced_loss_list, best_auc = train_one_epoch(local_rank=local_rank, train_loader=train_loader, valid_loader=valid_loader, model=model, criterion=criterion, + optimizer=optimizer, nprocs=nprocs, idx_epoch=epoch, best_auc=best_auc, best_model_file=best_model_path, + original_valid_length=ori_valid_length, result_file=log_result_file) + all_batch_avg_smooth_loss_list.extend(smooth_avg_reduced_loss_list) + + # adjust learning rate + for param_group in optimizer.param_groups: + param_group['lr'] = param_group['lr'] / optimizer_params.learning_anneal + + time_end = datetime.now() + if local_rank == 0: + write_into(log_result_file, "\n{} end of {}-epoch, with best_auc={}, len of loss={}, end time={}, and time period={} {}".format("*" * 50, epoch, best_auc, + len(smooth_avg_reduced_loss_list), + time_end.strftime("%Y-%m-%d@%H:%M:%S"), + time_end - time_start, "*" * 50)) + + +# https://hydra.cc/docs/tutorials/basic/your_first_app/defaults#overriding-a-config-group-default +@hydra.main(config_path="../configs/", config_name="default.yaml") +def main_app(config: DictConfig): + # set seed for determinism for reproduction + random.seed(config.Training.seed) + np.random.seed(config.Training.seed) + torch.manual_seed(config.Training.seed) + torch.cuda.manual_seed(config.Training.seed) + torch.cuda.manual_seed_all(config.Training.seed) + + # setting hyper-parameter for Training / Model / Optimizer + _train_params = TrainParams(processed_files_path=to_absolute_path(config.Data.preprocess_root), max_epochs=config.Training.max_epoches, train_bs=config.Training.train_batch_size, test_bs=config.Training.test_batch_size, external_func_vocab_file=to_absolute_path(config.Data.train_vocab_file), max_vocab_size=config.Data.max_vocab_size) + _model_params = ModelParams(gnn_type=config.Model.gnn_type, pool_type=config.Model.pool_type, acfg_init_dims=config.Model.acfg_node_init_dims, cfg_filters=config.Model.cfg_filters, fcg_filters=config.Model.fcg_filters, number_classes=config.Model.number_classes, dropout_rate=config.Model.drapout_rate, ablation_models=config.Model.ablation_models) + _optim_params = OptimizerParams(optimizer_name=config.Optimizer.name, lr=config.Optimizer.learning_rate, weight_decay=config.Optimizer.weight_decay, learning_anneal=config.Optimizer.learning_anneal) + + # logging + log = logging.getLogger("DistTrainModel.py") + log.setLevel("DEBUG") + log.warning("Hydra's Current Working Directory: {}".format(os.getcwd())) + + # setting for the log directory + result_file = '{}_{}_{}_ACFG_{}_FCG_{}_Epoch_{}_TrainBS_{}_LR_{}_Time_{}.txt'.format(_model_params.ablation_models, _model_params.gnn_type, _model_params.pool_type, + _model_params.cfg_filters, _model_params.fcg_filters, _train_params.max_epochs, + _train_params.train_bs, _optim_params.lr, datetime.now().strftime("%Y%m%d_%H%M%S")) + log_result_file = os.path.join(os.getcwd(), result_file) + + _other_params = {"Hydra's Current Working Directory": os.getcwd(), "seed": config.Training.seed, "log result file": log_result_file, "only_test_path": config.Training.only_test_path} + + params_print_log(_train_params.__dict__, log_result_file) + params_print_log(_model_params.__dict__, log_result_file) + params_print_log(_optim_params.__dict__, log_result_file) + params_print_log(_other_params, log_result_file) + + if config.Training.only_test_path == 'None': + os.environ['MASTER_ADDR'] = '127.0.0.1' + os.environ['MASTER_PORT'] = str(config.Training.dist_port) + # num_gpus = 1 + num_gpus = torch.cuda.device_count() + log.info("Total number of GPUs = {}".format(num_gpus)) + torch_mp.spawn(main_train_worker, nprocs=num_gpus, args=(num_gpus, _train_params, _model_params, _optim_params, log, log_result_file,)) + + best_model_file = os.path.join(os.getcwd(), 'LocalRank_{}_best_model.pt'.format(0)) + + else: + best_model_file = config.Training.only_test_path + + # model re-init and loading + log.info("\n\nstarting to load the model & re-validation & testing from the file of \"{}\" \n".format(best_model_file)) + device = torch.device('cuda') + train_vocab_path = _train_params.external_func_vocab_file + vocab = Vocab(freq_file=train_vocab_path, max_vocab_size=_train_params.max_vocab_size) + + if _model_params.ablation_models.lower() == "full": + model = HierarchicalGraphNeuralNetwork(model_params=_model_params, external_vocab=vocab, global_log=log) + else: + raise NotImplementedError + model.to(device) + model.load_state_dict(torch.load(best_model_file, map_location=device)) + criterion = nn.BCELoss().cuda() + + test_batch_size = config.Training.test_batch_size + dataset_root_path = _train_params.processed_files_path + # validation dataset & dataloader + valid_dataset = MalwareDetectionDataset(root=dataset_root_path, train_or_test="valid") + valid_dataloader = DataLoaderX(dataset=valid_dataset, batch_size=test_batch_size, shuffle=False) + log.info("Total number of all validation samples = {} ".format(len(valid_dataset))) + + # testing dataset & dataloader + test_dataset = MalwareDetectionDataset(root=dataset_root_path, train_or_test="test") + test_dataloader = DataLoaderX(dataset=test_dataset, batch_size=test_batch_size, shuffle=False) + log.info("Total number of all testing samples = {} ".format(len(test_dataset))) + + _valid_result = validate(valid_loader=valid_dataloader, model=model, criterion=criterion, evaluate_flag="DoubleCheckValidation", distributed=False, local_rank=None, nprocs=None, original_valid_length=len(valid_dataset), result_file=log_result_file, details=True) + log.warning("\n\n" + _valid_result.__str__()) + _test_result = validate(valid_loader=test_dataloader, model=model, criterion=criterion, evaluate_flag="FinalTestingResult", distributed=False, local_rank=None, nprocs=None, original_valid_length=len(test_dataset), result_file=log_result_file, details=True) + log.warning("\n\n" + _test_result.__str__()) + + +if __name__ == '__main__': + main_app() \ No newline at end of file diff --git a/src/models/HierarchicalGraphModel.py b/src/models/HierarchicalGraphModel.py new file mode 100644 index 0000000..2b4e9b4 --- /dev/null +++ b/src/models/HierarchicalGraphModel.py @@ -0,0 +1,213 @@ +import logging +import sys + +import torch +from torch import nn +from torch.nn import Linear +from torch.nn import functional as pt_f +from torch_geometric.data import Batch, Data +from torch_geometric.nn.conv import GCNConv, SAGEConv +from torch_geometric.nn.glob import global_max_pool, global_mean_pool + +sys.path.append("..") +from utils.ParameterClasses import ModelParams # noqa +from utils.Vocabulary import Vocab # noqa + + +def div_with_small_value(n, d, eps=1e-8): + d = d * (d > eps).float() + eps * (d <= eps).float() + return n / d + + +def padding_tensors(tensor_list): + num = len(tensor_list) + max_len = max([s.shape[0] for s in tensor_list]) + out_dims = (num, max_len, *tensor_list[0].shape[1:]) + out_tensor = tensor_list[0].data.new(*out_dims).fill_(0) + mask = tensor_list[0].data.new(*out_dims).fill_(0) + for i, tensor in enumerate(tensor_list): + length = tensor.size(0) + out_tensor[i, :length] = tensor + mask[i, :length] = 1 + return out_tensor, mask + + +def inverse_padding_tensors(tensors, masks): + mask_index = torch.sum(masks, dim=-1) / masks.size(-1) + # print("mask_index: ", mask_index.size(), mask_index) + + _out_mask_select = torch.masked_select(tensors, (masks == 1)).view(-1, tensors.size(-1)) + # print("_out_mask_select: ", _out_mask_select.size(), _out_mask_select) + + batch_index = torch.sum(mask_index, dim=-1) + # print("batch_index: ", type(batch_index), batch_index.size(), batch_index) + + batch_idx_list = [] + for idx, num in enumerate(batch_index): + batch_idx_list.extend([idx for _ in range(int(num))]) + return _out_mask_select, batch_idx_list + + +class HierarchicalGraphNeuralNetwork(nn.Module): + def __init__(self, model_params: ModelParams, external_vocab: Vocab, global_log: logging.Logger): # device=torch.device('cuda') + super(HierarchicalGraphNeuralNetwork, self).__init__() + + self.conv = model_params.gnn_type.lower() + if self.conv not in ['graphsage', 'gcn']: + raise NotImplementedError + self.pool = model_params.pool_type.lower() + if self.pool not in ["global_max_pool", "global_mean_pool"]: + raise NotImplementedError + + # self.device = device + self.global_log = global_log + + # Hierarchical 1: Control Flow Graph (CFG) embedding and pooling + print(type(model_params.cfg_filters), model_params.cfg_filters) + if type(model_params.cfg_filters) == str: + cfg_filter_list = [int(number_filter) for number_filter in model_params.cfg_filters.split("-")] + else: + cfg_filter_list = [int(model_params.cfg_filters)] + cfg_filter_list.insert(0, model_params.acfg_init_dims) + self.cfg_filter_length = len(cfg_filter_list) + + cfg_graphsage_params = [dict(in_channels=cfg_filter_list[i], out_channels=cfg_filter_list[i + 1], bias=True) for i in range(self.cfg_filter_length - 1)] # GraphSAGE for cfg + cfg_gcn_params = [dict(in_channels=cfg_filter_list[i], out_channels=cfg_filter_list[i + 1], cached=False, bias=True) for i in range(self.cfg_filter_length - 1)] # GCN for cfg + + cfg_conv_layer_constructor = { + 'graphsage': dict(constructor=SAGEConv, kwargs=cfg_graphsage_params), + 'gcn': dict(constructor=GCNConv, kwargs=cfg_gcn_params) + } + + cfg_conv = cfg_conv_layer_constructor[self.conv] + cfg_constructor = cfg_conv['constructor'] + for i in range(self.cfg_filter_length - 1): + setattr(self, 'CFG_gnn_{}'.format(i + 1), cfg_constructor(**cfg_conv['kwargs'][i])) + + # self.dropout = nn.Dropout(p=model_params.dropout_rate).to(self.device) + self.dropout = nn.Dropout(p=model_params.dropout_rate) + + # Hierarchical 2: Function Call Graph (FCG) embedding and pooling + self.external_embedding_layer = nn.Embedding(num_embeddings=external_vocab.max_vocab_size + 2, embedding_dim=cfg_filter_list[-1], padding_idx=external_vocab.pad_idx) + print(type(model_params.fcg_filters), model_params.fcg_filters) + if type(model_params.fcg_filters) == str: + fcg_filter_list = [int(number_filter) for number_filter in model_params.fcg_filters.split("-")] + else: + fcg_filter_list = [int(model_params.fcg_filters)] + + fcg_filter_list.insert(0, cfg_filter_list[-1]) + self.fcg_filter_length = len(fcg_filter_list) + + fcg_graphsage_params = [dict(in_channels=fcg_filter_list[i], out_channels=fcg_filter_list[i + 1], bias=True) for i in range(self.fcg_filter_length - 1)] # GraphSAGE for fcg + fcg_gcn_params = [dict(in_channels=fcg_filter_list[i], out_channels=fcg_filter_list[i + 1], cached=False, bias=True) for i in range(self.fcg_filter_length - 1)] # GCN for fcg + + fcg_conv_layer_constructor = { + 'graphsage': dict(constructor=SAGEConv, kwargs=fcg_graphsage_params), + 'gcn': dict(constructor=GCNConv, kwargs=fcg_gcn_params) + } + fcg_conv = fcg_conv_layer_constructor[self.conv] + fcg_constructor = fcg_conv['constructor'] + for i in range(self.fcg_filter_length - 1): + setattr(self, 'FCG_gnn_{}'.format(i + 1), fcg_constructor(**fcg_conv['kwargs'][i])) + + # Last Projection Function: gradually project with more linear layers + self.pj1 = Linear(in_features=fcg_filter_list[-1], out_features=int(fcg_filter_list[-1] / 2)) + self.pj2 = Linear(in_features=int(fcg_filter_list[-1] / 2), out_features=int(fcg_filter_list[-1] / 4)) + self.pj3 = Linear(in_features=int(fcg_filter_list[-1] / 4), out_features=1) + + self.last_activation = nn.Sigmoid() + + # self.last_activation = nn.Softmax(dim=1) + # self.last_activation = nn.LogSoftmax(dim=1) + + def forward_cfg_gnn(self, local_batch: Batch): + in_x, edge_index = local_batch.x, local_batch.edge_index + for i in range(self.cfg_filter_length - 1): + out_x = getattr(self, 'CFG_gnn_{}'.format(i + 1))(x=in_x, edge_index=edge_index) + out_x = pt_f.relu(out_x, inplace=True) + out_x = self.dropout(out_x) + in_x = out_x + local_batch.x = in_x + return local_batch + + def aggregate_cfg_batch_pooling(self, local_batch: Batch): + if self.pool == 'global_max_pool': + x_pool = global_max_pool(x=local_batch.x, batch=local_batch.batch) + elif self.pool == 'global_mean_pool': + x_pool = global_mean_pool(x=local_batch.x, batch=local_batch.batch) + else: + raise NotImplementedError + return x_pool + + def forward_fcg_gnn(self, function_batch: Batch): + in_x, edge_index = function_batch.x, function_batch.edge_index + for i in range(self.fcg_filter_length - 1): + out_x = getattr(self, 'FCG_gnn_{}'.format(i + 1))(x=in_x, edge_index=edge_index) + out_x = pt_f.relu(out_x, inplace=True) + out_x = self.dropout(out_x) + in_x = out_x + function_batch.x = in_x + return function_batch + + def aggregate_fcg_batch_pooling(self, function_batch: Batch): + if self.pool == 'global_max_pool': + x_pool = global_max_pool(x=function_batch.x, batch=function_batch.batch) + elif self.pool == 'global_mean_pool': + x_pool = global_mean_pool(x=function_batch.x, batch=function_batch.batch) + else: + raise NotImplementedError + return x_pool + + def aggregate_final_skip_pooling(self, x, batch): + if self.pool == 'global_max_pool': + x_pool = global_max_pool(x=x, batch=batch) + elif self.pool == 'global_mean_pool': + x_pool = global_mean_pool(x=x, batch=batch) + else: + raise NotImplementedError + return x_pool + + @staticmethod + def cosine_attention(mtx1, mtx2): + v1_norm = mtx1.norm(p=2, dim=2, keepdim=True) + v2_norm = mtx2.norm(p=2, dim=2, keepdim=True).permute(0, 2, 1) + a = torch.bmm(mtx1, mtx2.permute(0, 2, 1)) + d = v1_norm * v2_norm + + return div_with_small_value(a, d) + + def forward(self, real_local_batch: Batch, real_bt_positions: list, bt_external_names: list, bt_all_function_edges: list, local_device: torch.device): + + rtn_local_batch = self.forward_cfg_gnn(local_batch=real_local_batch) + x_cfg_pool = self.aggregate_cfg_batch_pooling(local_batch=rtn_local_batch) + + # build the Function Call Graph (FCG) Data/Batch datasets + assert len(real_bt_positions) - 1 == len(bt_external_names), "all should be equal to the batch size ... " + assert len(real_bt_positions) - 1 == len(bt_all_function_edges), "all should be equal to the batch size ... " + + fcg_list = [] + fcg_internal_list = [] + for idx_batch in range(len(real_bt_positions) - 1): + start_pos, end_pos = real_bt_positions[idx_batch: idx_batch + 2] + + idx_x_cfg = x_cfg_pool[start_pos: end_pos] + fcg_internal_list.append(idx_x_cfg) + + idx_x_external = self.external_embedding_layer(torch.tensor([bt_external_names[idx_batch]], dtype=torch.long).to(local_device)) + idx_x_external = idx_x_external.squeeze(dim=0) + + idx_x_total = torch.cat([idx_x_cfg, idx_x_external], dim=0) + idx_function_edge = torch.tensor(bt_all_function_edges[idx_batch], dtype=torch.long) + idx_graph_data = Data(x=idx_x_total, edge_index=idx_function_edge).to(local_device) + + fcg_list.append(idx_graph_data) + fcg_batch = Batch.from_data_list(fcg_list) + # Hierarchical 2: Function Call Graph (FCG) embedding and pooling + rtn_fcg_batch = self.forward_fcg_gnn(function_batch=fcg_batch) # [batch_size, max_node_size, dim] + x_fcg_pool = self.aggregate_fcg_batch_pooling(function_batch=rtn_fcg_batch) # [batch_size, 1, dim] => [batch_size, dim] + batch_final = x_fcg_pool + + # step last project to the number_of_numbers (binary) + bt_final_embed = self.pj3(self.pj2(self.pj1(batch_final))) + bt_pred = self.last_activation(bt_final_embed) + return bt_pred \ No newline at end of file diff --git a/src/models/__init__.py b/src/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/requirement_conda.txt b/src/requirement_conda.txt new file mode 100644 index 0000000..f9d3094 --- /dev/null +++ b/src/requirement_conda.txt @@ -0,0 +1,83 @@ +# This file may be used to create an environment using: +# $ conda create --name --file +# platform: linux-64 +_libgcc_mutex=0.1=main +antlr4-python3-runtime=4.8=pypi_0 +ase=3.21.1=pypi_0 +ca-certificates=2021.1.19=h06a4308_1 +cached-property=1.5.2=pypi_0 +certifi=2020.12.5=py37h06a4308_0 +cffi=1.14.5=pypi_0 +chardet=4.0.0=pypi_0 +cmake=3.18.4.post1=pypi_0 +cycler=0.10.0=pypi_0 +dataclasses=0.6=pypi_0 +decorator=4.4.2=pypi_0 +future=0.18.2=pypi_0 +googledrivedownloader=0.4=pypi_0 +h5py=3.2.1=pypi_0 +hydra-core=1.0.6=pypi_0 +idna=2.10=pypi_0 +importlib-resources=5.1.2=pypi_0 +intel-openmp=2021.1.2=pypi_0 +isodate=0.6.0=pypi_0 +jinja2=2.11.3=pypi_0 +joblib=1.0.1=pypi_0 +kiwisolver=1.3.1=pypi_0 +ld_impl_linux-64=2.33.1=h53a641e_7 +libedit=3.1.20191231=h14c3975_1 +libffi=3.3=he6710b0_2 +libgcc-ng=9.1.0=hdf63c60_0 +libstdcxx-ng=9.1.0=hdf63c60_0 +llvmlite=0.35.0=pypi_0 +magma-cuda112=2.5.2=1 +markupsafe=1.1.1=pypi_0 +matplotlib=3.3.4=pypi_0 +mkl=2021.1.1=pypi_0 +mkl-include=2021.1.1=pypi_0 +ncurses=6.2=he6710b0_1 +networkx=2.5=pypi_0 +ninja=1.10.0.post2=pypi_0 +numba=0.52.0=pypi_0 +numpy=1.20.1=pypi_0 +omegaconf=2.0.6=pypi_0 +openssl=1.1.1j=h27cfd23_0 +pandas=1.2.3=pypi_0 +pillow=8.1.2=pypi_0 +pip=21.0.1=py37h06a4308_0 +prefetch-generator=1.0.1=pypi_0 +pycparser=2.20=pypi_0 +pyparsing=2.4.7=pypi_0 +python=3.7.9=h7579374_0 +python-dateutil=2.8.1=pypi_0 +python-louvain=0.15=pypi_0 +pytz=2021.1=pypi_0 +pyyaml=5.4.1=pypi_0 +rdflib=5.0.0=pypi_0 +readline=8.1=h27cfd23_0 +requests=2.25.1=pypi_0 +scikit-learn=0.24.1=pypi_0 +scipy=1.6.1=pypi_0 +seaborn=0.11.1=pypi_0 +setuptools=52.0.0=py37h06a4308_0 +six=1.15.0=pypi_0 +sqlite=3.33.0=h62c20be_0 +tbb=2021.1.1=pypi_0 +texttable=1.6.3=pypi_0 +threadpoolctl=2.1.0=pypi_0 +tk=8.6.10=hbc83047_0 +torch=1.8.0+cu111=pypi_0 +torch-cluster=1.5.9=pypi_0 +torch-geometric=1.6.3=pypi_0 +torch-scatter=2.0.6=pypi_0 +torch-sparse=0.6.9=pypi_0 +torch-spline-conv=1.2.1=pypi_0 +torchaudio=0.8.0=pypi_0 +torchvision=0.9.0+cu111=pypi_0 +tqdm=4.59.0=pypi_0 +typing-extensions=3.7.4.3=pypi_0 +urllib3=1.26.3=pypi_0 +wheel=0.36.2=pyhd3eb1b0_0 +xz=5.2.5=h7b6447c_0 +zipp=3.4.1=pypi_0 +zlib=1.2.11=h7b6447c_3 diff --git a/src/utils/FunctionHelpers.py b/src/utils/FunctionHelpers.py new file mode 100644 index 0000000..3fcf853 --- /dev/null +++ b/src/utils/FunctionHelpers.py @@ -0,0 +1,108 @@ +import logging +import os +import re +from collections import Counter +from dataclasses import dataclass +from typing import Dict + +from sklearn.metrics import auc, confusion_matrix, balanced_accuracy_score +from texttable import Texttable +from datetime import datetime + + +def only_get_fpr(y_true, y_pred): + n_benign = (y_true == 0).sum() + n_false = (y_pred[y_true == 0] == 1).sum() + return float(n_false) / float(n_benign) + + +def get_fpr(y_true, y_pred): + tn, fp, fn, tp = confusion_matrix(y_true=y_true, y_pred=y_pred).ravel() + return float(fp) / float(fp + tn) + + +def find_threshold_with_fixed_fpr(y_true, y_pred, fpr_target): + start_time = datetime.now() + + threshold = 0.0 + fpr = only_get_fpr(y_true, y_pred > threshold) + while fpr > fpr_target and threshold <= 1.0: + threshold += 0.0001 + fpr = only_get_fpr(y_true, y_pred > threshold) + + tn, fp, fn, tp = confusion_matrix(y_true=y_true, y_pred=y_pred > threshold).ravel() + tpr = tp / (tp + fn) + fpr = fp / (fp + tn) + acc = (tp + tn) / (tn + fp + fn + tp) # equal to accuracy_score(y_true=y_true, y_pred=y_pred > threshold) + balanced_acc = balanced_accuracy_score(y_true=y_true, y_pred=y_pred > threshold) + + _info = "Threshold: {:.6f}, TN: {}, FP: {}, FN: {}, TP: {}, TPR: {:.6f}, FPR: {:.6f}, ACC: {:.6f}, Balanced_ACC: {:.6f}. consume about {} time in find threshold".format( + threshold, tn, fp, fn, tp, tpr, fpr, acc, balanced_acc, datetime.now() - start_time) + return _info + + +def alphabet_lower_strip(str1): + return re.sub("[^A-Za-z]", "", str1).lower() + + +def filter_counter_with_threshold(counter: Counter, min_threshold): + return {x: counter[x] for x in counter if counter[x] >= min_threshold} + + +def create_dir_if_not_exists(new_dir: str, log: logging.Logger): + if not os.path.exists(new_dir): + os.makedirs(new_dir) + log.info('We are creating the dir of \"{}\" '.format(new_dir)) + else: + log.info('We CANNOT creat the dir of \"{}\" as it is already exists.'.format(new_dir)) + + +def get_jsonl_files_from_path(file_path: str, log: logging.Logger): + file_list = [] + for root, dirs, files in os.walk(file_path): + for file in files: + if file.endswith(".jsonl"): + file_list.append(os.path.join(root, file)) + file_list.sort() + log.info("{}\nFrom the path of {}, we obtain a list of {} files as follows.".format("-" * 50, file_path, len(file_list))) + log.info("\n" + '\n'.join(str(f) for f in file_list)) + return file_list + + +def write_into(file_name_path: str, log_str: str, print_flag=True): + if print_flag: + print(log_str) + if log_str is None: + log_str = 'None' + if os.path.isfile(file_name_path): + with open(file_name_path, 'a+') as log_file: + log_file.write(log_str + '\n') + else: + with open(file_name_path, 'w+') as log_file: + log_file.write(log_str + '\n') + + +def params_print_log(param_dict: Dict, log_path: str): + keys = sorted(param_dict.keys()) + table = Texttable() + table.set_precision(6) + table.set_cols_align(["l", "l", "c"]) + table.add_row(["Index", "Parameters", "Values"]) + for index, k in enumerate(keys): + table.add_row([index, k, str(param_dict[k])]) + + # print(table.draw()) + write_into(file_name_path=log_path, log_str=table.draw()) + + +def dataclasses_to_string(ins: dataclass): + name = type(ins).__name__ + + var_list = [f"{key} = {value}" for key, value in vars(ins).items()] + var_str = '\n=>'.join(var_list) + + return f"{name}:\n=>{var_str}\n" + + +if __name__ == '__main__': + pass \ No newline at end of file diff --git a/src/utils/ParameterClasses.py b/src/utils/ParameterClasses.py new file mode 100644 index 0000000..37bdd24 --- /dev/null +++ b/src/utils/ParameterClasses.py @@ -0,0 +1,60 @@ +from dataclasses import dataclass + + +@dataclass +class TrainParams: + processed_files_path: str + # train_test_split_file: str + max_epochs: int + train_bs: int + test_bs: int + external_func_vocab_file: str + max_vocab_size: int + + +@dataclass +class OptimizerParams: + optimizer_name: str + lr: float + weight_decay: float + learning_anneal: float + + +@dataclass +class ModelParams: + gnn_type: str + pool_type: str + acfg_init_dims: int + cfg_filters: str + fcg_filters: str + number_classes: int + dropout_rate: float + ablation_models: str + + +@dataclass +class OneEpochResult: + Epoch_Flag: str + Number_Samples: int + Avg_Loss: float + Info_100: str + Info_1000: str + ROC_AUC_Score: float + Thresholds: list + TPRs: list + FPRs: list + + def __str__(self): + s = "\nResult of \"{}\":\n=Epoch_Flag = {}\n=>Number of samples = {}\n=>Avg_Loss = {}\n=>Info_100 = {}\n=>Info_1000 = {}\n=>ROC_AUC_score = {}\n".format( + self.Epoch_Flag, + self.Epoch_Flag, + self.Number_Samples, + self.Avg_Loss, + self.Info_100, + self.Info_1000, + self.ROC_AUC_Score) + return s + + +if __name__ == '__main__': + pass \ No newline at end of file diff --git a/src/utils/PreProcessedDataset.py b/src/utils/PreProcessedDataset.py new file mode 100644 index 0000000..dba7991 --- /dev/null +++ b/src/utils/PreProcessedDataset.py @@ -0,0 +1,85 @@ +import os +import os.path as osp +from datetime import datetime + +import torch +from torch_geometric.data import Dataset, DataLoader +from utils.RealBatch import create_real_batch_data # noqa + + +class MalwareDetectionDataset(Dataset): + def __init__(self, root, train_or_test, transform=None, pre_transform=None): + super(MalwareDetectionDataset, self).__init__(None, transform, pre_transform) + self.flag = train_or_test.lower() + self.malware_root = os.path.join(root, "{}_malware".format(self.flag)) + self.benign_root = os.path.join(root, "{}_benign".format(self.flag)) + self.malware_files = os.listdir(self.malware_root) + self.benign_files = os.listdir(self.benign_root) + + @staticmethod + def _list_files_for_pt(the_path): + files = [] + for name in os.listdir(the_path): + if os.path.splitext(name)[-1] == '.pt': + files.append(name) + return files + + def __len__(self): + # def len(self): + # return 201 + return len(self.malware_files) + len(self.benign_files) + + def get(self, idx): + split = len(self.malware_files) + # split = 100 + if idx < split: + idx_data = torch.load(osp.join(self.malware_root, 'malware_{}.pt'.format(idx))) + else: + over_fit_idx = idx - split + idx_data = torch.load(osp.join(self.benign_root, "benign_{}.pt".format(over_fit_idx))) + return idx_data + + +def _simulating(_dataset, _batch_size: int): + print("\nBatch size = {}".format(_batch_size)) + time_start = datetime.now() + print("start time: " + time_start.strftime("%Y-%m-%d@%H:%M:%S")) + + # https://github.com/pytorch/fairseq/issues/1560 + # https://github.com/pytorch/pytorch/issues/973#issuecomment-459398189 + # loaders_1 = DataLoader(dataset=benign_exe_dataset, batch_size=10, shuffle=True, num_workers=0) + # increasing the shared memory: ulimit -SHn 51200 + loader = DataLoader(dataset=_dataset, batch_size=_batch_size, shuffle=True) # default of prefetch_factor = 2 # num_workers=4 + + for index, data in enumerate(loader): + if index >= 3: + break + _real_batch, _position, _hash, _external_list, _function_edges, _true_classes = create_real_batch_data(one_batch=data) + print(data) + print("Hash: ", _hash) + print("Position: ", _position) + print("\n") + + time_end = datetime.now() + print("end time: " + time_end.strftime("%Y-%m-%d@%H:%M:%S")) + print("All time = {}\n\n".format(time_end - time_start)) + + +if __name__ == '__main__': + root_path: str = '/home/xiang/MalGraph/data/processed_dataset/DatasetJSON/' + i_batch_size = 2 + + train_dataset = MalwareDetectionDataset(root=root_path, train_or_test='train') + print(train_dataset.malware_root, train_dataset.benign_root) + print(len(train_dataset.malware_files), len(train_dataset.benign_files), len(train_dataset)) + _simulating(_dataset=train_dataset, _batch_size=i_batch_size) + + valid_dataset = MalwareDetectionDataset(root=root_path, train_or_test='valid') + print(valid_dataset.malware_root, valid_dataset.benign_root) + print(len(valid_dataset.malware_files), len(valid_dataset.benign_files), len(valid_dataset)) + _simulating(_dataset=valid_dataset, _batch_size=i_batch_size) + + test_dataset = MalwareDetectionDataset(root=root_path, train_or_test='test') + print(test_dataset.malware_root, test_dataset.benign_root) + print(len(test_dataset.malware_files), len(test_dataset.benign_files), len(test_dataset)) + _simulating(_dataset=test_dataset, _batch_size=i_batch_size) \ No newline at end of file diff --git a/src/utils/RealBatch.py b/src/utils/RealBatch.py new file mode 100644 index 0000000..39313c8 --- /dev/null +++ b/src/utils/RealBatch.py @@ -0,0 +1,24 @@ +import torch +from torch_geometric.data import Batch +from torch_geometric.data import DataLoader +from pprint import pprint + + +def create_real_batch_data(one_batch: Batch): + real = [] + position = [0] + count = 0 + + assert len(one_batch.external_list) == len(one_batch.function_edges) == len(one_batch.local_acfgs) == len(one_batch.hash), "size of each component must be equal to each other" + + for item in one_batch.local_acfgs: + for acfg in item: + real.append(acfg) + count += len(item) + position.append(count) + + if len(one_batch.local_acfgs) == 1 and len(one_batch.local_acfgs[0]) == 0: + return (None for _ in range(6)) + else: + real_batch = Batch.from_data_list(real) + return real_batch, position, one_batch.hash, one_batch.external_list, one_batch.function_edges, one_batch.targets \ No newline at end of file diff --git a/src/utils/Vocabulary.py b/src/utils/Vocabulary.py new file mode 100644 index 0000000..ce9c805 --- /dev/null +++ b/src/utils/Vocabulary.py @@ -0,0 +1,91 @@ +import json +import os +from collections import Counter +from tqdm import tqdm + + +class Vocab: + def __init__(self, freq_file: str, max_vocab_size: int, min_freq: int = 1, unk_token: str = '', pad_token: str = '', special_tokens: list = None): + + self.max_vocab_size = max_vocab_size + self.min_freq = min_freq + + self.unk_token = unk_token + self.pad_token = pad_token + self.special_tokens = special_tokens + + assert os.path.exists(freq_file), "The file of {} is not exist".format(freq_file) + freq_counter = self.load_freq_counter_from_file(file_path=freq_file, min_freq=self.min_freq) + + self.token_2_index, self.index_2_token = self.create_vocabulary(freq_counter=freq_counter) + + self.unk_idx = None if self.unk_token is None else self.token_2_index[self.unk_token] + self.pad_idx = None if self.pad_token is None else self.token_2_index[self.pad_token] + + def __len__(self): + return len(self.index_2_token) + + def __getitem__(self, item: str): + assert isinstance(item, str) + if item in self.token_2_index.keys(): + return self.token_2_index[item] + else: + if self.unk_token is not None: + return self.token_2_index[self.unk_token] + else: + raise KeyError("{} is not in the vocabulary, and self.unk_token is None".format(item)) + + def create_vocabulary(self, freq_counter: Counter): + + token_2_index = {} # dict + index_2_token = [] # list + + if self.unk_token is not None: + index_2_token.append(self.unk_token) + if self.pad_token is not None: + index_2_token.append(self.pad_token) + if self.special_tokens is not None: + for token in self.special_tokens: + index_2_token.append(token) + + for f_name, count in tqdm(freq_counter.most_common(self.max_vocab_size), desc="creating vocab ... "): + if f_name in index_2_token: + print("trying to add {} to the vocabulary, but it already exists !!!".format(f_name)) + continue + else: + index_2_token.append(f_name) + + for index, token in enumerate(index_2_token): # reverse + token_2_index.update({token: index}) + + return token_2_index, index_2_token + + @staticmethod + def load_freq_counter_from_file(file_path: str, min_freq: int): + freq_dict = {} + with open(file_path, 'r') as f: + for line in tqdm(f, desc="Load frequency list from the file of {} ... ".format(file_path)): + line = json.loads(line) + f_name = line["f_name"] + count = int(line["count"]) + + assert f_name not in freq_dict, "trying to add {} to the vocabulary, but it already exists !!!" + if count < min_freq: + print(line, "break") + break + + freq_dict[f_name] = count + return Counter(freq_dict) + + +if __name__ == '__main__': + max_vocab_size = 1000 + vocab = Vocab(freq_file="../../data/processed_dataset/train_external_function_name_vocab.jsonl", max_vocab_size=max_vocab_size) + print(len(vocab.token_2_index), vocab.token_2_index) + print(len(vocab.index_2_token), vocab.index_2_token) + print(vocab.unk_token, vocab.unk_idx) + print(vocab.pad_token, vocab.pad_idx) + print(vocab['queryperformancecounter']) + print(vocab['EmptyClipboard']) + print(vocab[str.lower('EmptyClipboard')]) + print(vocab['X_Y_Z']) \ No newline at end of file diff --git a/src/utils/__init__.py b/src/utils/__init__.py new file mode 100644 index 0000000..e69de29