From a9ce7611c8d70aec094230433db4801a0cc74f99 Mon Sep 17 00:00:00 2001 From: yanghaoran Date: Wed, 25 Nov 2020 19:46:08 +0800 Subject: [PATCH] support mindspore building tests --- CMakeLists.txt | 7 +++++++ cmake/external_libs/protobuf_static.cmake | 2 +- ge/CMakeLists.txt | 4 ++-- metadef | 2 +- parser | 2 +- third_party/prebuild/aarch64/libmmpa.a | Bin 0 -> 63182 bytes third_party/prebuild/x86_64/libmmpa.a | Bin 0 -> 57270 bytes 7 files changed, 12 insertions(+), 5 deletions(-) create mode 100755 third_party/prebuild/aarch64/libmmpa.a create mode 100755 third_party/prebuild/x86_64/libmmpa.a diff --git a/CMakeLists.txt b/CMakeLists.txt index 4134678f..dc0ec2c5 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,6 +156,13 @@ elseif (ENABLE_D OR ENABLE_ACL) find_module(register libregister.so ${ASCEND_MS_RUNTIME_PATH} ${ATLAS_MS_RUNTIME_PATH}) endif () + set(METADEF_DIR ${CMAKE_CURRENT_LIST_DIR}/metadef) + add_subdirectory(metadef) +elseif(ENABLE_MS_TESTCASE) + include(cmake/external_libs/protobuf_static.cmake) + include(cmake/external_libs/securec.cmake) + include(cmake/intf_pub_linux.cmake) + set(METADEF_DIR ${CMAKE_CURRENT_LIST_DIR}/metadef) add_subdirectory(metadef) else() diff --git a/cmake/external_libs/protobuf_static.cmake b/cmake/external_libs/protobuf_static.cmake index 51f4ed25..23630d44 100755 --- a/cmake/external_libs/protobuf_static.cmake +++ b/cmake/external_libs/protobuf_static.cmake @@ -48,7 +48,7 @@ set_target_properties(ascend_protobuf_static_lib PROPERTIES add_library(ascend_protobuf_static INTERFACE) target_include_directories(ascend_protobuf_static INTERFACE ${PROTOBUF_STATIC_PKG_DIR}/include) target_link_libraries(ascend_protobuf_static INTERFACE ascend_protobuf_static_lib) -if (ENABLE_D OR ENABLE_ACL) +if (ENABLE_D OR ENABLE_ACL OR ENABLE_MS_TESTCASES) include_directories(${PROTOBUF_STATIC_PKG_DIR}/include) endif () diff --git a/ge/CMakeLists.txt b/ge/CMakeLists.txt index c895e7ce..88a5c52f 100755 --- a/ge/CMakeLists.txt +++ b/ge/CMakeLists.txt @@ -1,4 +1,4 @@ -if (NOT ENABLE_D AND NOT ENABLE_ACL) +if (NOT ENABLE_D AND NOT ENABLE_ACL AND NOT ENABLE_MS_TESTCASES) add_subdirectory(common) add_subdirectory(plugin/engine) add_subdirectory(graph/build/memory) @@ -600,7 +600,7 @@ set(INFER_SRC_LIST "analyzer/analyzer.cc" ) -if (NOT ENABLE_D AND NOT ENABLE_ACL) +if (NOT ENABLE_D AND NOT ENABLE_ACL AND NOT ENABLE_MS_TESTCASES) ############ libge_runner.so ############ add_library(ge_runner SHARED ${TRAIN_SRC_LIST} ${PROTO_SRCS} ${PROTO_CLIENT_SRCS}) diff --git a/metadef b/metadef index 89590b34..57e72aac 160000 --- a/metadef +++ b/metadef @@ -1 +1 @@ -Subproject commit 89590b3405f6c5714997c07f81470764ac66635b +Subproject commit 57e72aac24a35e40799e342fdacca362a66395c4 diff --git a/parser b/parser index c4f6e1e0..bb6424dc 160000 --- a/parser +++ b/parser @@ -1 +1 @@ -Subproject commit c4f6e1e03ac58a5c24e9bd3a04634f7e7b3213c3 +Subproject commit bb6424dc6d9252a3ac70650cde2f547761237681 diff --git a/third_party/prebuild/aarch64/libmmpa.a b/third_party/prebuild/aarch64/libmmpa.a new file mode 100755 index 0000000000000000000000000000000000000000..d7c29e2b85f165c17eca9700d17cb7ec4e4235a5 GIT binary patch literal 63182 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 z%0D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 literal 0 HcmV?d00001 diff --git a/third_party/prebuild/x86_64/libmmpa.a b/third_party/prebuild/x86_64/libmmpa.a new file mode 100755 index 0000000000000000000000000000000000000000..bec195ad066b02a4966ccf47860634e9c7200bcc GIT binary patch literal 57270 zcmeHw3w&Hvwf;$3pga>w!Gcu+@+bl&lmZnBBu%DFv7wXbsPSFJM->W%+tz?+tD*!gSg*a;sHmx_61}|;wA%l-_Fn6pH79eL`nuQq z|9O7RoPEBv_S$Q&z4r6$vwOy@NGjTT^)VM!6ke6;(T4SJMaA^XFP~vq79Zm{&SxFx z*wg;`_fH%ABl|!iQIm>AGO@-;dbyKGT$hZubFeO(iLIF19?t+a;d#j@v6ygUYNdW` zYS&M-v2-StTnXNqWP1yXpdc~%9+}A%AZ(tD1q)R)`>>#vle3Rd#)m9i;Aij<6W2}8 z;_jmr=p|0-EQ}Z%P_Qwci0S9+lbQHZ$*6s(ZfoN_c~Y*8WuQ-_jiQ5y$A*>ZOf2C& z*T-8dp-}=r!jbltHj2;?OR(7xVs#LzPo}AG5b~0m-w|sEMz`s>*C*|BOYBD#q}_yT+gRz^wn$4$3e?)R^h%0f+a~JQ zw#8DZB+gkhc268!*e{iZh1@G zFt){Fq?}hn7REEJ)tL+t5vx9xjK@-5Ll3~ zDbGztGvr1nTGCov&J-G1wr&Z2=C;Q&)tRIe_nf%#6=P!#8-5N`L30q6sf}bJ5OHIq zEgPHL9+hB2mIO2XvKaz{!+QXac__3>Z7dUswjzRsua7|M`gjMq82KVS^P^Ev(`^jJ ztQjS28mXFOq5~xvPqx=5Q^qODp+=$gNmB=5{}4GzO|pg5kjFX6R3eh8gXts77$+Og zUs@ZXnoOk@k1nrCX4@$RJi>Bq^^pu^P6ZpHsGZhLY={by!8xfINmfrptV=JmS+!v@ ziw!lHngsF!Q*DTkYpL66EC44|ncqQKLKsElhAlqVR!4)|u*Jb9{5ELe>eMoUGd65- zH=TLOcH)?qj>V|epOZ;t+oR|x5U$O3P=0VD0^F{h{J*KaE#6M7HLZyxwIPjdX*a(J zLuCshAsevO5@AX@-MG?t%bfH|9ZAPHhy-in>E%>T4IPoFDJ-e29*eE5{0#MLvZ++8oh!A+766lB z8sfK;?73-ZA^G$o&QISMOQqq>mQ)v^dI;4JU=PAWO-FWa`%*G6hnU2*#x_BYaTKW7 z5N(aMm=;P9n+a~TY$WR7sU<5QHME+FigXZi%d##Jp+c_9w$~wmP)DR0#hhI+EjlfE zQAN;*__7&xAbjbJOD>yfhQy1HSreK!r?jL517mxYI9EH~lc0{%+wX;|Ot8u+b53xY z!nvP^JNH$DbE^l#x$Ho=bM>H;ISID`Cv#jl9~ubfop4uQ_NXm?I(YEl&?OcMPq6oL z+y=Lkyl`&EAl-AJ1D&f6IGLk%gbpCW!F=ezH@{Yp3Z)?8&ZYQB;ja*J)?cZ@=|+XW zNc;Z_QCq_K@n=sp1r!>&xX+ZYSpVJO?$Ca(;D$R_52N6=P_Yd)6Ky-WlAqxu9m_IL z4|g~1w|0Ed&kjczCW$&$J~SN8*NwD}YWDca`(44_iQrF&)=0ip&C|W1|fEK;ERh7e%uXKDd!IAd~NXKlt-t%ZE1P%JWUnm_YsbeA7-F znvidL)`pJDhx)tgOYB2=KD4X5r|l^6K*X${lyBN?LzDAOC`H1i*vf-Y1w3I(_{ry9 zZTQ)zKJ*NVk$vbWu6Lo^5h6Azt=L3vQiEWs2O)3*}3{92j(|J?RVxwFXcibh<|oXspDV_ems#e zKr`gGqTxQ9#`++fMB%k4OK+fl0jgxa&e+?ed^n|yK^K&UDkDw?s_b`*`eMpO*<;SE zROVO--j*$+AoU%f+}S4sM>|0Be9ZVwE<0?+Qnxrva-pmLlIi8so$eJiF^Ppb#%xB`8g|~ZU^CL~#ltG8 zN-lwLu4%U}>Zzm=d}DVpmHsaI6rsLZfG7wT$<<-l122&&G+FQt3 z`}0j`Akc$m$#wjGvnIfA3X__b3-#CL>Wo!ZoMsE{B$FhSV81EB-Hup&W^F!%zI$~) zlBFSFw4W0X<(`_G8!0Rc$!b9_P?-APB%?tUq)HWfu5OTWIxknZ)1*1Y=JaITb~~99 zY*wjW?sT$ly}Z)qbZ{PxOU#h&H{rHmLOAz>gZ(|+POjV63*&@y+g2bW;oRm9+;Z#N=(oESzb*dN4a4YU zP7QZ%BVH$iPO6JSyo|;3u>~?3uY!0xoTiX;MG_|$+O#9I6`e1}-bdgU457Xqp)K?x zI-Fl`lrp34f~ng*ovZJ02kw+{jLdtUs6fD`L?KBj-$mK*P3m%?p1jGP!4Em1%Y`=N zyT~4+MD*snU3?4?8wFs|& z{0n`)a2WD;6DN%mb&~~a2&OAKyl%}{#6L(rhX=`CGca}+OAVALan-uj`)J;O+X>Lb zE&-s94Pg~-gjN8kfjJ!WcfkCZrDc13HH_y8k9Mwp)OGQjs4{h~-eA{_d+fS#Pho|d z0UlHws!FI)c%VuVJev)D{)zG6vGs*QQeSq2J};34LM827y~)+)Tj0(&Z6)#AhL-0P zf+eEyyS*PY{9B6i(^_XC|4;%|Out}$3 za)QFzger|yl1&)l1TT})@QOPpaIYDfX-a1YG6WM~Nb!xYQizL;rgjIjcG8x|M8Q^+ zHA4mcdwFj4fn0WkR`6FGhvDnKRT#RAoOB2GH4`x-L^G`gyEUv59<$r$EvA1K&zz5i zVB3_2_63wK41@6rHA4Hs-F3qSt4aH5LL#*rO79!HwL#q)t&lgMZN_vex&|41$sHlh zLs<+5C}*Z)!%%V1syMveU)h~6;{mb{!SNm9=w3ez8D>~yx=joT{ww^jMC=Y@jI!S7*WE>ob93LE zi*?EF<0-8tNtf+3FNXF;g!TWfUEu88M!yHk?(8winAj?lWD;c3SSEuNVPhkgZWEKo zoDn#5R=5~!({VCK42|y@DnYfk_G4FpIjse@(akCA+JRdUw!%WN333h!M|Ov<31}oR z2gBTHz>J+`Vgg4V;5M3T_oZ-cJ01g}9L{U{GE5(p8SUG>;&X#hJ{B5)nc*TKQv_lE zBDc}Nc2O8tq2kl(^N(gc_JjBQ=j&_SmBWc@n*A@*}Tk! z7a+}H)M+yd!YV{bKY$U)hN*1RY!*`}2ScZOEAuw~(G>qJp^??knP<1gRia7AZQFyj zZVXoYam%gWjbEQ-c67Z2kR*2+US|a+G~0;X$xMX*QDDWlrWVEDobCRTZ;Nvp(?uk4}>l-=`g*eGwZAMWlZrSo0ZFtQ*)^?=mq z+(tLGQgRfOHI%>xw8vdvGG)zkBdl1^+{kO;4>31FmqrCJbc7iN6!c=ISD zQ%g7GEj6He{gq2pf9n*Abbw`4A+a`eS1D|U!3Gy|5zdp%;%3ueZs%~>Q>7(4$KpSg zCBM2mhc{w}7w3Obo6dcU(THt?WB2+R4>;pSJJRm8Bkf*p#d&J`aX1{B+Cz-3`=q(Z zg|>FC-s-yWa*F1A1R#E^>FZR%Q1Q?+P|GIiWu^C3o+t!_s*clouK}%9{#{-?KpLMd=nG|TB$^_Hes=7_9*1L1%hM}`>0_i}D zP2D$--(E6`dE8Lgl|*_M^sR@IG>Ul~C7X9TM-I{w2Rg*gzVYVKH#F#cX6D;%Eh58C zrJj*mOEhn^CTTJ@0G*5IO6m-njL{2X&KTbIB4eYiU^8YVjnef{l14F8#sViOIYPH>{^lL44z9 zkX2CT=nuF8J^;_!5qilw?fh;8PtXjs6;WV|#x6-L4ch}M8n@jPL^3WlkT9bXxF zwlTsw1CQaj-i?HF*iiEQaPGgtxjGERZ$bOtv=fa#>3}T=og<}XcfOBoJu)tHOy@{R z=Gwj6@QAc`hV%8E9aU2ha_r*IM;OdkP0mqefT%D; zSs}V_SW{0_9d{^3h>F-j5zX2uTf+81&YH=iqQ1GuP7L!+XiGvnbM+JQO}lL9xIETA z3^ql~FAaEj-M)G=-ZnFY+~!>vHRsmTs6N;IEPm(Zy86tmn>O2w8aCK@MdkubAwh_GC{W_~CK9CRsxRfcOis;|Am2?BgS^Q#tE5+ny7qzExs84g%DxvWMhnr( z1+wDoeE~n-Txsu@@F=R4J$~ocUqSSxxvrn$R`$5LbqaYh4rQ%sJp3}d zB#;3s7G&aZ9{p(5gmCUTtd0!+5j$jaN@XW|n#Il_L2(BOn$xB5$7Z8Y=SI{m!UbW1=EHJ(!6j1*wy`SF1doN zA`6~ncdmoIu|=G$K6EpAmLALx@?ajl?iE2aZe)v+?Gkur=s*d`SB73%^$}}cn}1o5 za{DEkP5(n{$IJ4VGa*0jrU}>K#vm8Iw1*GM&JNiZa2kA%8il3GlDkmSZR1 z58aaBwS?g-x`lEJlG;Kq*GyHJtM@|o(q2f}D2WH`siggr2%!((X+!AOpRpnAv+Oe= zyHoBE%~IaHY0f+DKq<^f(}7&MEPVZ~nP5D3tp)2?_GLG{k@u1`OHN)-amY>q-r{lQ z>ISfT11&M;^mfAzx|1w*C*GzL*EM|0T4o!J=~1x96w!*UVPW*?MkmkW7g*xmC>N?W zXk7hnNNMr*B-)}g=)|W`!cTz#K34v$R4sZI_eE$5&Mv2dSzMA zLyZ<-#zO3NOsIf%kK+fMU1yhw|xqJOETs7EyWTP zmE_*L&>|J{cWYVK5u;@0J8ptKuMF+W)|+C<%tkXafCZF+H5jtedIuh!8ktb`7>$hv za^)@=J2(4B?(DncL>I}?90)9Cl+5!#*M$qZ$ilZO=hHl!;uamkpctuv^)I!PJhU%r z;E8fHjIV=7QC%N~L~yvD6u7EXA?j{K<@G^|guG)bn78WpZ$k5x= zTvtC=Uio3mTeq*z6!o^SDY4B}xQ%ukB3j2Gx?35e;cipXPml*$$DxqtIO~lcg-_fQZnv=mx zXd+b46@QL?AoGnWVNm=H*C~B^&6~D|Wq+C}Uz|L*->z3wf zG#G>qmQ>?S^JX2bd&_%Fa_cEMv=yWry739&?rwvud+KYT-!M1#nzs>TUhaEH&Nzf! zAn1IiJZDtz+(sF2J5ectpchhDcI%yB?A7`zIoamLxQ#X#5xJ$LkgT2k9((b^*w6yZ z=<Bd&|Y;r00z+;((r!mmRb zcCV*k-o)EJ5euF=|GBO^LG0W{zX!9gvs~P7nW5g^`H;P%>u%7eLI;?c#3Pj+-0~)s z2VdPrWa{d>$O_b4n*iF*4Y{ZBQR2Y3lKzsuT-QA&4*g1*LlET_J&DP5_AHLd+trNH z1?u#{68ZH;&}JhjZw2I@H`a3Hx*A|RJ2r?sHBd^c2hhZ}45U2)xvpM>c66=6FS6(C zJreS<+-B(AU44KHzRA?~ax(bt-DI?gwxF1d6(~QBgm`N{+Pp}KBEb-@Z_ zKe({ocsp)*qFd*{1frV_Tm@3j^+_qvvaIVos(&^!cwvLBGhG`Y4H}wTXWtR{RHwG= zu|5wO52WldjADdkoB@VCpws|6J%GOVfe=CLQ-9uAmUh#aLKsIjFX^*oVC+-UUtPcO z#v4N3R;?3J4BID?uW3icOPUIut%KP=*ZA*+$WEh9$8>Y3P&il4`?5NX zZ%+kmyx>aXB4u5_zzDFQez-Ea`qrS+8C~8(gti(}ueZ)HW>*ySF#t79L)d6dBVRkJ z#7f2pa%8*v!ZC0zyNh0vU z>K;Q~6k@n+JH98zzy7kv;gx-7I~C@GvhUl$IEtIT)p7^pGBW0`OMi#tXlPRMXNxzw z{Fy3QU8v)u*CxA7{k91w+M1~X_Pz%{JIoNA9&L!0b%x%-19Nw07=PN3 zpH#|e>M^hq?PR9}MIB!{baLkxT9JGS&ly%eXw(RPA<=+-btkowxotDetB%c;xaod% z5XV(?ucs}i)>0MFo-MVbYcZJdOdC*JyBv;01fV;6^XF$qUkZ z8BUnq=x}hS7wq?fyS?Cm7aa70!(MR23p&U$%bnl_%e~-aFIeFPr+UFkFF4Z+R(Zj& z7p(V!X3%Giy4XW$B*yB{Xp4g@yx>|dc()hq@q!z?V6PY4=mj@=;oB&c?w21dk1a*IDmL=z3!SveEF`KbnC9K%5OG6x7o8> zy`>70!@1|f-6xwQ&>Fn^_w;dU*_|IEVSh%v8jcq=N~~WDCB{svjN@EnW8;vcj~QpCiIZ7`G%5}!OA{>r1>j$N zIP!OoP?4@T9$*VnwuIYGj|Nxt#u?@@JZ?{G9+43mMN#fuFQFkXc}T9O&r&I$MW{P1 zm2xFibCd!{?k94-s}hm(laU7H#^sxYy-$XOaW#xjBEW&$6IF<|oqmWn2V=m!Z=$H3 z+vw(G@R^APBqv^?;qEPKDW)(yk1?5%WlYgCG|p~O4-H~Jo;@mvkK+lidxjcl*=1EQ zZPe{F9V-;DWq*g6AR={Yr~jc^j2)(Wvu1;^u?ZG!M_Q>M(5(?u*_}TJ) zxt?dK1iHH@wIbAKh-zowLS>(zJ(>kR!NX5XiEY>2YW#OIxv}3Ruw+QCDHGv)&Fpdo zLAWpv;}DF{gP`r=Pa{q2U?}(dTxq!T>G35Vn*5MK%boUsF&57GM zKt1S3#>GM_e(76SNz)Ewtzu+Rn=8zdX9S)NVW3t6NVY+u(-b$b|f%aS8-4?9^ z8U{LG(LsyW1HB38uti5Kx)^9HP>0+*-#x*2d3^`a6+p`^I@zG68w}^}z8e_@%{0^b z?x~j6LtyUi4VG4EREmTZG&Bb+%25j=P>-w4sn(7dO?blRN|clE8j zz+}VQ3h90UXRKt1Uxn)Kj-@_Kt&1L=L+=&*?J3^O<*SaPosaa|2VrbEE6JXY@L<8F zeQcWH#^>8)AvapK&W6iL1nt>`h;lH~Dmn$R!%|*9-X{_1#YFINUVZm0^k}T~I9%cVxYXqJ9I#8uHqGWqf zIX3u9*L>AMCwTPI#~t}lFMA}tBHZ9sosUz&{DmKP&>J*F)suVv{^LZ8+wK7$XAIFt z%TVAi|F|QtplqX(YZ^AakhkSTKX&e`;%}Q|6B^dG264>Ev#^EP-v%p~!-H1u&S&@K z>z+k5q7uRSe|2t{-i{H2scxpe;$17P_M2Ga!RT!lsg##^CZ!^;2GL!O+M5^fZiU1< zl`CdkT)Cp9@)D~Sa%@F&^`)1%q)YvzOI_0Ce$wSGX{L{K`E-}`7C*_P zHIvl1*lCQ!)2)&A8!x`N(wXK=o93LIzUb^UelIltoU<#Z-*jQn57@w)axUsfC8HNb zJF;~qxd&%t!oRSsgC9gm3s0lsj8m0iJKf0FEPxT4q?=7u4{>ah@I4o@z z;kat(N9cDLvWdHha9maNBlLHB^i_o8x{`i`eyc}+h;Up%^sSa0NZ&IC{Q%RSq`RbF zy4lU&6zU>z(PY4-H+lNa8iT%Q4Em}u=npZS1{iMotG)EMGTnUJF8Z(V=zGSX9~gr^ zg$66Qg5=K{gT81C`l>PL4>7%tl#u+DhTZbn%JgQ+htS8}TtW;}0PSIVkpCPQgFXc_ zMY@9G&tiI0LHhM>`isV(uVVVKl!)j*$1A^wn0|q#FZ1YInLbU^;~sqv)5DrxT4NZ< zJ_nc{RK8PaQ#-C8`m8bNi!hB17pyqpr5BJL_d=M z(kjvLpOeDmrLKu^xF&Q z);pVk)lV1j(Pp^dR|*m>wj571RHq z(=UC+C{O|HA*R1gmtUxJ+_?Fs2p!_-W1b%(?D`0JN}u!c@e=dQ(LANqZaU+SBZA|+ z>`&+CUOH2mht5ya>5O}`Yj=b8Ry zzYZ0i4*kq?RY9Gb>DIYnroT?>XuDkFGv(&+Cda`#jF*SoJzG{Xy_hY@2K7w8RmU&2 zoet4Em>x8y=wW(Lo!G?mn+xRINeRjCAA>&3bo$`fEu+#0O$I4``3XdDoFIB7(}UW) z`Z4GoOb_Z)dYE2EN{A1rG5;o}pP}h?$Y;v0pXqrpm|m{+d#mT4{Y*bq(;GedFw=wDv~nXjc+6AD^q~4t z&-4p*`mJ929ZbJg(@VWEZ4cAW()4C8{wAhR)pRvx?;nFc%=AhfU-b#)v=4lmw-(5M+|{q2>5ml9zv$A3 znI5EnIWGuS>OOYd`KE&<{VSP%Bh8(~KI3i}PYDpcp6OTX^zD?<&^wrZZ-M-rE5C>7 zmln_~4ZQ*~H!*z^&0Qt^FvdimIKs{2F6KF|U<`1SI|kU#^Z{D`5E1y6MgXuK|I$rJOp^@pA7tp7>^bFHKq2-r;#MS?PrXN`lzr>CIDAUbN^shJ3 zjg5CP-8A(=SAE=mrpF7?_vRgwOy}n~4F&Y;Z32W9xk%OV&TkJEAvxpdQ-dPcI8cgR z;~=TnHO}D$3m`l0aO>e{o-nKazjWbqL@xK5K)p4o}ed zS#IN;V9M-qZ0r)e(Nsh$l>^aW`@b6*%&*Dy3 zmHD+V!-}O#b0Ctxm-$TpfbdaJy%;~8FGc)kan^*NK0GMKe+~1SwPMH>{<;AECCvXp z-02ejcLng@#r!WY|C2VFb6)`e#sK{30Q^S*_^$)-KLIEE{0p^#xK6V-=Xg95{#hSB znengr@Ut2J4L;p>f@*U6qCP^`5*D| zKOVsU9p)eQ@&7o0e}wrj9B(r!`X7b(#q@ataI*6|ef$?N{uv)WD?m;I^S{LWW?lpp z-Vwmx!Tc975MOVLtPp%liL}@mm?Eev7W(1jrd;{+qcUk63o+zXJGwAAr-4g7o<}mSg5s zkaaBZV)mK9{QH@ohXu}w0sNDhe+sX=+{k)X1n{53{3##*g#rB2nSUqqn|Dn}Zb6x;{CG$Vd{ARr#{BL3WMaIp$N#NB1a^?o$^#SVK3Qv@Fl;QtEqKk`P)k76~~&X2grGr`H$v;dKb(20pqtbF5{D*G5!eSOPK#<#!s%WfZ)Gp{5Hnl%>3gq9wmEz zjPXjw%NT#2@fnPt#`qCuSU}{Q!}vvvi=0asZ)RNNR5AVm#{arG=PUZD;?f|)&b0#x>fbnZs zpUMC^S2F*VJP{E)T*vr2#&2agZ)5yb#&2YNS%CZw=C8ZZGKwF*oAEC(elyGI3Xs#y z{6|l-jKWXz8L~r^@sF^aPY1|(nE6Y%0~h`$8UHBbT%DY61jzXg^KbX@|A6uTU|jm^ zfdDzbWd1X`qSUee!vXxSGJlf!x!O3TaIm6&0-WsA!~B0@`KK^`@5L4U~Eep*i7mj6r4{}{_J2VTs7UKfB@u$MxMOM9{_fdAi_|38^u%Kf*DPvZu1E2n!fK+X|Z4y@Ye+JUl)Kku$*kQRs3q! ze{leRdjNiG0KP5&zbgRm4#4jZz#jxo_Mbk_Dn5X9dAdH$_(U#Pu71v=jE5OF@5aIZ zOo04v2H?*J;QtFTcmp59RmrO zTGUzAj1S%-i3mP_OE*TAw8fmcEwP%`Saf-PvLn`Bom!T5u8n2tlI`uuOtL*5ZH(ii zxOqu@^#-^$l8M-ddCBDRY==vzP9<)H#CWpZg=#vo_4snmeXdQ!Yt5%}P^cyqg9eR} z^m3>9+IjP5SI=vnKW9!usIj@RdiK0fv(u3=AI~*M4I^S)myEX?exbY*0PwmjK3<&L z9?!T@5`;9z31Tv|U+yEf5ya%i)XE|pnbbnvP|nM!sa(rHD*TutJ)f)0s$gd2_UNdGpdpybXDzWJ!0EwD-sq z&XrCwGbx~u}rXWaXy&Y$GUJqF?qM8{PK$P zL7vBIH1m}l>*p4o72}%0sw+nDUrOdV&%l1p16D;*d+(neY}r;s7=HLOf$VhPKb(1dz?3yY{7xEaPq1kx+hh)%j9 zCK$qz_7=1>i9|yzVcaksONbKzGG-!(EdZ!Ki98V0K>-s{@SODVv4Vl}~6-H^d|%xI7)T+Xx^};hOe0(a;u) zbvW6yxrtKLT`Y`eTC35-l8a{HnNsUUH@gObqVe|D7(5~!ZN<0R1?=K<1t4M=){bOb zJnGe0k!ESs<3eYu4E9^{`cypWG&h?MzniJ9WvJ(bjvXK%^_66WLT)6ah!ABzFE^4z zBM2x+5F(0jxhk_-MxBNAHE zc>8iwd+0G`;w2JulhI6@6F0w%!^Ris)>ZMAJNO-;PjRz>prx+VCT+aAkQV+`WN z5onH3$X4_@anqQXYRzFIfWuUgIS2!oAxk20W27w`o7*0R2or3`QW8uzE+!n_19;4X zH(DWgs*RzCZ7p;Sn6$;f zQNpIq)g2H`3~P*gc@rm&Pl~$ z&Qkg*fQX|mz06wDNu-y-yDda!v7rWPP1DQLrcnj+0%|qW%TlKC#IrF8A>@Z>x}~#Q zfCp5e`5hV90}hVSFd7qb2Zn?^7m`7?Ex#obBxGWO;0*G~R}cOuN1gH&1uOqVc71sz-!%F#|O>ujp9TyabO-K}Krh>E-0Z4IPmvRi8-a)}<`gw!S8&*cYi#)aG_7CB!bm z0u4PD*uN&5O5wl~&6%%zPXoO^1F}k9p1eZBn z)&uJzC~Nfhn8{HGz$Qb&Aefrl+#JoIAe)y^M@BsDrk4OOtVF@3)PXolkzCqYYDXAo z%;Ppq%o69C6I&7-GBTwBZF+n` ztl11CW#IPCG*?QKl_WtKGpI=Lk5nH4;qGc8>EZKv~(%>dlXJfl!AXi;k4E$_>D*60T;=kcTIx7PvN>;zM}AI#s6!C*C>1{ zZ+Ia2A%)+maINQhh0|KH=<_v&YyKA%9#;H46YzkG($)I^P~lq6uN1D+os9SIbdem* zf4;)615Nb&xx#h2!wRP*Q{kug^>mT^>+vV}RSMVqs})X5m%>l)sp%p)v=%5hy%(m7 z@Fx5TK7(H{5x!929gI`8d7HvtR{S?B{I28hfQ#fT!k@_BtngbD{zHW~EBq9!^V3Cg zBKQ+IjS7z{oZd&!Mf@@R3I8t@zD(h>u&zrN@yGEe{GAG4uJGp+o>2H%SYM@!<8_3k!>YyNL2{2nFeWL~JJbnjL8%?j^P_(v6fpTb{J`27mMm^yo0B>!LW zC;586!nGYfAAo;V;SVS|KU4Syg^wuwL4}`0ohvTV=Y#kYeWog0^UqfJhZO%pg=_xR z3MZ3`{CgCx`8O$Cm*aB^|FDwtlEOct@ZTw1^IygLDJj3bivN8I*Y^LU!auI~zpZes z=eehX2^Y!NazYCKBxquXHic_B4=Mc9ioc(6s$ZW{_!%@P#6{_T7Jni?!Z`6Cfxidw zN7qut|2aGhf2WV1%9yUZ1Ngt=m|kiFrG#Jk*_!8QF@-E@Xss$OBpBqH!6Id z;{SreI~4v!g+HKhE&tOB|B~W=LE*Yw&Zj{(F0%8N@hACOp>RFE+Np3YXYw0Jik0&S z?jq+x#wouaQ24hLzxJyYZv+!A(q}XNM9vo!uG9UE!nY{?2n~*Lk(`_HCvr9@T=zS# zDqQ!=Z>vCLTqGxkKaun6GYGY~*8eqyKLEP$pLV8UH*%g)_(cjQUl#r*h3j^vMd6zN zZiQ?6>|(qWvOlBbm%IrNxF}!Wz@MahmBO{%-Wh=36@Wh)fS+;}r8>G?Y69@Z0eE)+ z{$qvf^8Hf)-gCCq$8Vo)jE@Id+vhcfYx}&BjE;-=H9jW*j|Sj90r(S)lb-LupOn|P z0`Oe{_|F6I$hi=T%dh{v0rBYX`UR7Z&Ual#XlT?zx^Ulj^@8N0NcyU%u)^0rV|`uq-m;)jz1@aq_-dhy?i|4xO!s_=hP_-hIuR`?$je&!{3z(w-^h(FQi z?Fv7r@J@x7lz99PD_oC@exz{v?>I#M2{RxR7o|&kmju5-;S&`8ZiOGC@cR^goWgf0 zyiDQ8Uuu#y>1zBsg-=xc%M?CI;SVeP6ooIm%#%M^;h$AFoe?4V-KX#=3P0v@PtGC) zh5tH*zd`YTRN<#9e22o%Q25IVf0M!&%=FUL?P{yS&sO|DQn;>nli%XWIal$oQaGK7 zA^G~6!p~RuNmqDsG@e(u*7K7JpQhxzq;Re0WmkIgwVe41*K!_ExR$d^;TNlP7tSg! zKc(3>vLwcmE-5XnsKt5=1(eImshXCHUBRZz6i3!4u4em%n}d3 zY_`>h(tV4<7b#rx_XOZC1mI;go_wv(ISSY9(&rd2MKto~Z`SDI zPx3p3amv>fDqqz;exlRWq4>3(zd6U!MW25A==A&W?=k)Y<0SV=mF}MuuI+FE4GM9I z`~maiI4wT>*NkuQ;jc3OtPiL2hUhwq20ge$emUb;`ta8?p7i0=*3K5t;0>~M>cQ=@RLPr@fB#&SOF!&8j+DLLBCyA`hO`APsjX`am& z=^0UaUZ8MohftlzuiN=fh3oeGK85T4>tTg!J3Oy&T`n&xe2>!exOz_?t>;w=*Zet! z&xS3fe0M7RW+i`saVqx%3V%5Oe@)@TY+#25Vh1xB3F^MeY1x59P#ZczA#6#rI*>vH)CUb=G?K40O_DEZ$~xYp-Ig+HM9Ut^ro4J-L4GXgi^X;m9xSVgd*oVvc zc58jOoNw3b!{vOtJ|8aU*bVq_Ij>HPD|*VgbQJ`se98H9RX+SeYUpq+_Tleje60_c z^W=JcxSSi;=fmZExB(w7=ejxLZ2Cl|KRLgx!iUQ_ZB;&8&SP8b!{vOnwLVN)}8d1^Uo^Sev&Ua=d8+y%XwyteYl)kw$_Ksxn;dRT+SKo z^Wk!C*?!<_4;r*Ppi*|%XwM@K3vYz za*it0Q_jt*@ZoYkR+SHzbFdcsa5?X4tq+%Tt$Ka9oNLwR!{t1x0Us{sQOQxTVt+Yz zs)9R0!R36ZDjzQANG!Y_4;r*hpEqp%ehJeK3vXElA~`$PdO*4;^@M1 zk@JwMe7Kx@wAhEsxkqb#xSS`{>%-+d;65KN=Lrq?a5*e7Kz7Bm3w?j-20<@$t*~J@@-? zIj84QA1>$g?DFAq9?yOsF6Z$~I-yX1Id_M?yQfR^lyi3)eYl*jlkwqlzRvwVT+Y#X z)Q8J?IlFwgoQt#Hhs(J*lgbM9l=E+9_;5M@rqPGXIX4*}F6Z3b@5ALhn@4@PoM*Gk zhs(J&`+c~aTQi9#He%=c={7$ze7KxL)9AzHyqSy-mvd$A_u*GvV&y;T!{wZqT|QjS zgW2!Hz`5Jw=oa2)5;c{Nf{XYC*mh-3&e~j^6K3vXU+3&;U z{FO-)3-y7+va zejhI9f=rrJsK1>5F~f(; zIUkKaT+Z#t_;5Mz|9&4X=lwtG!{xmH-9B8-`ycV))8|>eC!buXznr%*(}&A>8#noI zIrn0P50`TlLmY0+eY{+DNG8qTqZO~e0g zd?7xBiY`Yik`-%hUW$)$V^)>F>bC;1X{yiD1y@!Thu+%cLMFh=0xn4FN;K80auFLC zdC1;-cpOE;1d7YUVn^1Y&S9LVyEYPj^S*S2;7|Vo5J=`<8vkO%C7INp=&Og*|EMoP z(O-D!btSR*)2~`+ITqWS`&;3LY=B-{7qj2p+bz9<(