dpdk22-doc-22.11.11-150500.5.13.1<>, _(it6p9|71-ٰWÊ֮C` &Xlǯ@ܖQ裒o-in%=ؖ6e _ Ne>eЙpqp,=LO< ? d  $ Q (9OU\ 4$  M  f    f    =Z || s(8U9U:UGʴ H| I0D X<Y=\= ]o ^NSbckdeflu va    Cdpdk22-doc22.11.11150500.5.13.1Data Plane Development Kit API documentationAPI programming documentation for the Data Plane Development Kit.it6h03-ch2dԕkSUSE Linux Enterprise 15SUSE LLC BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-onlyhttps://www.suse.com/System/Librarieshttps://www.dpdk.org/linuxnoarch+|ͫ 1T N)IG8 jm4g&q4S<Vz܆ Bb[YqS2PHsTYLqsDXq dNJ#=.YDCՌv>_lC2 ^&c0N4"Մ !"Z88L7 oHV'rZ @U*U;R %h4O -VZx[C$N Gp$:<@mFk{J +*3):tS#}4d1IFTYb5OfnW[\_\54ԚzSu"F4 IO"[S8533rTТ\Pc4B:icuWT&d9Kh@?hNb o7c4aEbvQŠzKodiUh O 5.MFc$,}s=<?jtG&Rk4KA:f^l3sT$$ dt4#(Z8 M4E@ay;bH2 B,v ^dY)l`?pzBt.'qKCj9@RJk¸MXUo(oT&]$Ks{;,buI! KE+[W#prXC)Ccl_# nAtuA~EL(S0X{ uM XOP>.FVVCS 0. f4PQ%z:7]5 :dFLEW <$cZ ed&dn[+)I=H*K  & 5>aaP}<-i'6'J-)eNFvmحƭHBnA-S-=%ڲ^x"\f0gZ@g<-c*D p+-Ri,pglhd@ N0N<Z">GTP ZP2\K278 ǐl:>&ZW{#6%_|ZYSYXotXholJs/N*c6iEGF'J}b KRsSR]uZJH.9VEs)@)&*Ro/ jBPS!~aKsw > *~ 7uD5 ( q z' D{s%?O)` t q-."*,??+:( 8<)( "* 8.E!-+ g  ;3& F;!* 6 |UM r2Xc%~-d}#zy~ M( @ oRz= 5y;opY!==0.?;27 Wr ~Z@e 1P9 !xjF71C!.A{4;[($[<NW \'B_))_.KW/ }(G HPTpeq3L3%3?K c ~6-=.|-8KI/95E3ThBxSO9f9IYCaD9nEI{JNj?;OEnDO3~Bv?X= }s R-=y.."C 5OPI$$/eC#80zQ,#,K,?T 8).dQG ^v)- KqhE ;.R8Op i0 ~ >/ VHQn~-hPxɴ'$6LG,XQ 4*_ZZ>`/l&l"lpUx5.@w.2^Oj*.?>1;287-.?A*${TʈK*CsaCJR9EEL@m[wLioH{OE47+MzC MF7BN<EUSta _ $J_fX  ^xi  J)SX#$ f"S "  G$A fXJJyC J0%s -_ X_S//1,Qa.tIqm8U.P4 57 :=b<@dDO0®k{O7QVI*-yAx7VG#"vfG4fjVIY,wm Y89bVS"r{ $mJPGR{HWOi>D#*Wb U(ם$G9 $m,0'1 F=%;QYypu= `>\,af>0 l9uDNA9c'2vZo@VVsa~QXT~>+7#X`=F1] >NcuN?%[^0nVaQe@:hU] #&FcFWdt:<(SO5U=3{wK,`>7D%.,* Z_bLeCHH eGjT"@xƬW{xOVPƌm~;^H(D*LBQ>H T^wXGnYVV+UxfoG]B>gbuѵ1_npeK+P\S{ 9wN862CQiStIB ehCd|x`kk{Ti}ILZ$(nqgC~{#hZRdpUDaGYAVXEVlYO{|FHIJ7NoRPt0g2:W!P2Fb/J,9',l[89)fih11~[N \r(h;&.=1)"~C+=:j\0Xq Euljz8)^2Ai3).#cn<F?Z(XB>kC&`*Tv34K9$T68Ow &M*c+4[L-)Y0 ..sgPjMepJ*s4vW=#%>LlAA:!T-c]3'@.}67Ci,q)O`c~E/( I]%/`j)rFkAe(8ZYP WZ9/UW@~Lvixsk zt)6EG&<EW*- E eC*63*xS@b!;PM$1,yEZ*Xp;{hLK[AQ>8g[[x[V?j=Nr%B=R.l<8j3U}g|j F EYV&$V=U=-JA36~og`"^+$<x8ʹ8"F (,8I+H~q[2ZPZaIB/'+`r&t3R.:.+;MjT>Je&oW#qw=dXL6K=10!$5'$O9&&1PrhSI`4d86o;"G!p]"!>6~7|"7=c*?kL/}3)_na>dQYh:F~/hM$O;'T!z<8 ft=?p`&QJ1z((wD';305v5E>?!1?['k,k xaBoDI3 &yQF 96b-)H4]5D'n <0smi zj5L-@J>KTuF|^~6YSY]+"U>OKO{Z+$[kngur5|MCO2I['nm\3`phkO^bqDGLڔ?Bd! cs' $vkJ5L (y>/v&.yei-K &"jB[NF%QM A3>lZ \dd j0rA!bc/&}$Sb_iHcF '3/3 6 l;& Dg[*>X^u1&P&'&Uf&w+hP d!%8ۀ4 4X,2!! ?`K06(3z66P[""+AN&%b#/'T>,#e+WijI ?twp@;  -tt29 d.=d:/1O( ^j~?$?t*6uE=) 1$(9)05PAWdC_zi!:$! kv2ZasOO#xF)Y37P$5!J)06 4%R&7:/h =(9"  Ym$"#''3<   N~|,"@"t 8&! &^*K(?0 !+4})`-?%K,s %6)1m5 7c, !9DQ)!VG 36m8%\.x! W)%%8 '-d"8 oVu].F[=N1.{7! +!x I> y$37|"" =6%"o%+V&)"3(2Z"!)X,-&?#&## QO,'Vs', GqB) %KuY!h% g{7L"O5E8tz'#C >9#((5 q^*h>!]OPH3U0jO@$&}'B(;-!0L>8z*?_C!J0a'kl!Z3;5,1A/5/ L }<(`!6sT+J6 #)[L""x"ZV!(!J?6e>H')VY"0W/ g$<3 Q:8y&%:X[+(5=#.o4 #0uFXoBAXeYutUM$=!/"gr(B<=I;t,4?>(F8<"/<5XOD!PFHC5)KAt6:'Y$3AAAA큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤iqiqiqiqiKipiqiqiqiqipipiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqipipiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiq iqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqipiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiq iq iqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiqiqiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiKiKiqiKiKiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiKiKiqiKiKiKiKiKiKiKiKiKiKiqiKiKiqiKiKiKiKiKiKiqiKiKiKiqiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiqiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiKiKiqiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiKiqiKiKiKiKiqiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiqiKiKiKiKiKiKiKiKiKiKiKiKiKiKiKiqiKiKiKiKiKiqiKiKiKiKiqiKiqiq_iq__________________]5iq]5]&diq____iq]5]5iq].O]5]3iq iqiq iq iq iq iq iq iq iq iq ipipiq ipiqiqiqiq iq iq iq iq iq iq iqiq iq iq iq iq iq iq iq iq iq iq iqiq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iqiq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iqiq iq iq iq iq iq iq iq iqipipipiqiq iq iq iq iq iq iq iq iq iq iq ipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiq iq iq iq iq iqiq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iqiq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iqiq iq iq iqiq iq iq iq iq iq iq iq iq iq iq iq iq iq iq ipiqiq iq iq iq iq iq iq iq iq iq iq iq iq iq iqiq iq iq iq iq ipiq ipipipiqiq iq iq iq iq iq iq iq iq iqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqipiq iqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipipiqiq iqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq iq ipipipipipipipiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiq iq iq iqiqiqiqiqiqiqiqiqiqiq0e278897b6b559c93210b0a76c3b3b5c412f997d49dd80514f2d0f5d3912ffd3f712e8ebb859cdee5275c7cfbb7b6604b58f5ebd0c0fd1c4b2c58a5dd93d3b2e3f51f0505318a0d2c418ad863cf4dd0ab2fc2c45e4eb9bd2a856540c9853884db98ab017a50d1e0ae2bb704345f4edff991a8c6ce2a5e109b050ca89f57d3dea8bad3b0174453b499ef87d29be9c1ccb8b33f221f2217a67a13f482ac40c083743f6ad0a4938654d3b16850c7493c3fa7b23306d20ee9551007baee32e549e29dcf35d449b444fa20d516ee3e2597c7d6e6404f897f8687d8b419260eb6bf04b37cfc766e9ee84c3ab69d4c1b0d111e1c138e1e9981b8f670ded1e85cc99ba134d7756ff268ccb58e7e740a941a9851557fdac360c62c0cecae6164bb190db9ffd50717d10ee2c27a01a1a844fd2427b5faca7752bfff06d4686aff410ab46e306c2795e05473d4ed6a10089148a03c31232233f43f426f224c166009c976481833c79250cc2aac4847213269e29f365317bb236d05a4d898c12d33c07dca0af83cd4f59d1d9a653a3f23cfc5b2fb1e28d5a431263196008c5b407c8ea289c55845ebd19867289a56c99185054122f1c411b479960653c69c826273c1da1cd90f26ad194321d7965271851f9adbd222a396db8d2af70057314577b8a98c49e9a6eaa52b20bf658b488dcc7a37f467ab34dc744d6daedd78a622e78284376c9f40ac0702e92f99c072f60a2fb795f7e0e898ee0389c1abe8ef7a8fef64856edb2b9b421fde296a1831c05912b541d79c7ce4b52f76821fa97d8605b57bfdc755c0670c3e05012fffdda246fe52ec04455ac83e159facd1f7a2e909259ec2f88089b38e1ceac19a05657bdd1dfb5f196d351ef119819bf2e0f011ce07151e32c171b59c091b5f0d361a9a095dff66bb7688a185c0a59a5edb088036e4aec123b94a1477b4d3bc95ae0eb89e390e487c24d99cd4d498af9d1a9f3141ddccaea8a508d0872913a6a4cf7e55639baaa02c24647a444a272dde1c412148f214daedbf3b45792e1d1bfd116d8fb6073aaf280aa65b9d712d85b9bda1a990999e353f86f0d31b211dca434342924bfca3d850355ad3949948959b5f0d87d26537fede2dad2b8076e4511a2588c99e783b3e640e0cd9553c18a885f7c07b5ee34b0a113e37e059cc415edd16bee83e0b68bf49109c6ae21355bd99a730f3d0ae2738f6f4483f1a23b189bd7449772264627ab93614cf8fec819d178c3bd0e5464f785cb7d7fd59d858ce3cb6b6ad0071bf71750e315c62a2f5c1b9ad7bc10751e6e870810a76bb7c49f240b3ccb8f976925d552e531f28a2a084ff266b0f061feeda51cf56964c857fa1cd746b26cc5ccb33e5746368ebd0bd53443608f5425f551ed81afd2f4e97b1e302bb140242c64bf7da7b261dad26ec072a79b05dbb3f83ac71dd9c2e6ff40ccba5756dd19f84294833ae628294f11c720477e7be635a2ffb33a3c21eddef8d07ea0a180df5942033bcc1f82e6d1dc845765b0f315ae7d04e9c634c1230311c3b6cd4f3961c4346b31f75e45e556ba32c7a89cc9b4a971c132f5e067921ea43333d79bea199dc99fe355fa00080cf8e5e854da6b9dc402576db17a1f04a1486a8eb0df9e530d1da4271ac7db7657ccb9ac36edda58a4aead554367e3627882d40cb4da4c007886fd1bae1899f697dfebfbe2d51ecfcaf27c582918a548cc5d4250fef68f4d767256f39f5807da8783c079aa0ee406823d39ff464046537ae8e58efe5bdc7c7c8943d98f810a806a5f40eb1fbdc1769928ed6f4bd8718cc7ad24bd15931eeada166806381c2e3bcaacd6faa94e02729da2e4670ba38016ba5479bc15b1fbb412c66a0a5a79405c6223faa2b23ba4d8095ae0fff49c82ed4ad2a3c0fb35c913075851df327f6666b539f72039cd9aa97af2c451736ed472677cb943e8a445786078f49340f8e571773ae0ae89348c99629969683d81a7fb3b774ac1aededce0f4a240deb76616f867087e05a3e65f4dadff97505abaa3e886c1a140efd658d4443fa7f7147d494ce0922cd36ab8424f86971682a2d2d6efe6c60c3091b5cf731466b2ae211a6193a6693a3e3ab79c65b49cf0a320073b3c0d9b86340d0e2fbb0eed612332a82675416f0650dce30d7798460efdb33dfcca790974fba0465a348bc2c5e901f6305b6856ef1802ebf97542a5cc762fed78e387399d8256a03fc5129eae61ac53e77523b381b53172627a5dff956ca2aa4cb4aafeed5313942115de0dd43ba2e9d0d5551e34b76abab6dbaab7a8a1c65cb6f5b80f7bb48aebf8519785ce992ed76ff1695be66b4837e62b4369ef336b7e8b3fe13788c3e5d337a5ccf26a21ae8d05021c5ebc73fc134835db67f5e9fe72ce744f392cb228c12e9811891ea292d201e37271dedd5ea6411dd66cda86080e948e1b3b3351e3b66e93c1cbf68940c79805f70aa0d68a56021750f309ff5a150d3d83b6a5e49d03ab9ff6cbbf07d440cc512e32701f4a7f01e827043a52a6d92a446a39f6f8ce655a5304565f279bb9b5ad3aa628b11fd5d5655bc9e1e049f7c05fa93cc3b487b40a262dbdbaa8f764f6cdb773a52fc3fad82a70e77e815d5a90bcd1ef0196796ac6d536ebcc6e221663061eff15f88f8ef3d17ddccbd5eb6260a3bfe3118521aa3424864a27607f2b250dd31372890392f0f2e1960a7ab5bca9dfe61f4bf5257e91f5e428a63c56f2382f6cfe4d68fac828c5f274c9a9afbe67baac1a4717d356046b74fe94b0c0d15a06f21706d8a7304e04e6f93b4f40eddb3a3469b31ce01cced9872c0ccc6f3a73dea40c0dc234dfe3efb558094830a689b54dcc68c8585e15488a7bb91be76940d1feb85b61097c0313865ceb54aef193b14e33ad2b6c6a180ea93dc11b151809f43d11815ac96294e553310468b88ca29b9c625628eab5fe1a831f482db512d55013567bef7c1f58b28ce682db6332588a416035a2797731874d06b7307122949691b7799faf1ccac4a668281041528bf5681004f932c67e644d6601576e8ee5dbdacb18d03d9ef5b2cb40ef5977b3f72ab2a87eb52ae64dc3b00366a468745930c25d8b119888d6768ab750c507489c980debd8cefc28b8fe9a00438522e1c2d9ae9de030ecb7aefaff2ed1b84c91856483fd5a53458ff02cf002379e2ff85edd1deb1ed8f0d6988b284fe21e183b88c8d680e2c27b7a0aeb324dac7ca4ea32ffe1d12e08015727555b2cf3936a0a0b47ea8cdfe1b2237bdc6e91e787938466bda36e36b967dd30e77824f0739ca0ca51723e5e4683dd700068c449870a4f3738f4219731700f6c9ba10576632f87fc317bc6836d4ff39900a0b7e5d420277790bf26124a845b0ddb2f5b47f3742af8307d6a0c95dc8faddae3ecfe7dfad58b7cc84477f7313774e76c9e8f4ef620b210d230f8f9e0df09fc03fc29daf50280c8b17f5a620f2056fedcba963f389db396a3d9e893eeb28d92587e0568993c58c843556b5dfe5a9647fbf11081feb71998420548348217bb1057d7e07ee6e66b67b48c4064ec3ed9936082bc94b337617fd40ec3c5628abe7d37c628ecee453b5c892902964ebb50f06ed9d59f78b49319c2a70815c037a9f232c4664a846a6ba1de4bdb414fc027775e412d8dee2e4c5c4510a15193b6be93431e59c691175318a8651fecb0565ad913bad9526510406812fcb55c4963fdc531a140747158cf6a1b9d4211656aafa33de4804f66c764d9411b00a08f9754f1c749ad1d0eb34b6a5f7b24ba05c6dd97fecfba61794d315ebc87c3e1e404050aaba414768d54b8b574670b0baa04bb6cc03fad8e6d687d90e495add90fb654051de97ba21cf8af2557683df8dcde2d0d22aafc2b14069e29f39c1ae37908e1bfc80812141027a227cf5bb3f1e2e60b663a414fa28d84fad6d020ce591533e01830b40b79f9c99310a76eabbd5dbd451ba1ecfff0f1b2a2bc11daa1a6e901e242b06edbb66112d69bcfd9861ea9359671aa29c221a90aadf34a9604298332d574205279c969fc4eab83ae16e83885b1c89afcc24604ad210bdad5a2bae9be3a442a1ccd18032e05377f8fa488014899642b2652378638465d52f2d830a1a15987321020c260ae99a5183f8895407646318d73cbed04bed0412618101a15231e8a6cc4fc045fb482402f3d44f2774c0fa239efd8310df31560dd2b6e6fccba9ddd3fed7c993260dc2af09f66f9398e1951e3ee0c2e191d7e83434b122e9c191f12647237ccfac7e24526d1ece54bb3cf93dadc53cbd98e3eae25ce4d4a90a7ecc92568b499ef612ed22401acf2501513586229a50c5f7b56b0730ab39de9bb93acb479f286680ee0bba969822da177b5f52b5bc9b0430ec53df44deb8a6061638d23a5eb37d36c14d2868192828e4962a134d4bae6105f2b9d32bce719557097fb2a250661298dbe0c763bec924de4d11dfeae9016c71b41bd35a1e9f5e280193024ff3658c8484a4013576ea00d1f7a99ef4c3260af6213b83691b775e118f1e309a1ee8e1c8188c16db667421876279e93d508cc8a636cb872c7445afc322c4d597b4f39f9c089222c48b78330ad3f0a9b99116b5db1b3670e644cf12cf9f5a5ac69ef18fe30d584a9fcb1431d30ac9f0d880cd906a836fcf2fb00add8fa8ea3bd12af369241b8c9bc2bd03ca3e16d973af87e8daee29b78f898f9142570cc45a8f5596b07618881703004a66bbbb68d709d84312ba06c672233c6e60e74cc39582ccfa0df356c76645197fd31b496b81eeb8f68fa50e522b560eb91dee6996c135ea4083a97dded9fc7ccb175e7f6b8ff91657cc1740f20e9ffb94d15f27967c55a2431ff5799418b4edd800d562c5ed3da5e3b09f223de506745a2aebd038d7a3a68843724ce5388739cf740de645f28ab59783753141f75a75f913e0096dead61777d97717a766fe39c893be5d7939b9deb88ad3b1527ca754af74304d0ee75779abbea303d1aea753184f7ea6eb6892c798bfe205a2efe94f32306ce376690067a56599e3b1606ef9b9eea12bcb3c342d146357663c4a77501becfc53c4ae8405461a6c5d8cd7989cedbe4cfac04674d093035605504a0047a52698fec7d52dc150448b5da54a98d4d423f01f56268ffac89538afb0903222e680d774de4dd3fbf5d0a80f09856ebc9dd9293ebe1d85ea87a21025e237ebb450e6a01e6d9d01b77532ba9dbfedd22069efb74f4b6bfbc92bd52ab95989a500170cc81ecf82ff9ad273ceeb1d7a13831f4e810d5154e5fff92ce635ac817fc11e9cc976b595636cd4e04024e9c8e231c4aa2ed291e978d2c862980a01cd8f34642733bb7d0a5ba0a59ba67cba175090eeca548655e6ffc25c5c909ba074a6e3fe660fc79ee65865af2ec0a106d4b170ad0718709982792172c4d09195e04f67334cb6670df460c38e98a30619140f2752693143f434250895dab2d7ddc1593dce0e3b4494acc4700709049348ada5c9c3867e10979834bd64bb07af8f4f48bba8ccbcc88c3129288f13a14f46b372df98837c94bade043b396289f6b82a78f5be6c403ffe38302ed65fdb27aa5063c230459fe84dfc5af830d822b268f8f18827d7fa8c3ddcf14eeeaf44dc82c5b1a2f546ef6ad366a07559885a61bb44b316b9f87e649815dff3acd349625eb2b48b0a5dccd94f277464eae6a3ec8d4a45f27bfee8781e33b7b901de7a6edcb0649abf2384cc77c211422d2decd13c759e17231e1745482b50850b3e86a7d71f77abae8c35d0ae0a044efac0b1ec63e8839f305e740c6ce7c9717b0b65872850cc0491025695cbc8e0e78578342e20a60d864e81d8fa276b3ba3ec8682be24ad15093846af941a90a9baf467cb13b19f62767c5ed89b40865f84267b17a6a70835aefc24a923577b69e6d965375b3a63eec3981fc4a0adf1e7a829e7a7aab561300dfc2adf22cc4a0c277b52ecc871ea32045ecb0e16a6e25687927eb88a7c613ff2cff1caf9bf407fbf48696b5e16044b573e1715d5774f5b5a07a691c87d42c3c596201e28105f2dc2c2008619344f6cb5a0ee684848d5541eaa5ed4a2ec0c65c887c01567590b7735ce5d9f8c577999c4977dab3637d860600292d4a8ccc3e849fd0f5b50a91df183b1a8a4d7d0d6e53bfa1bb14b78eb6b79fff0a1367c2f140bc0caa5337bea16fe49b9e12d044c7384c84d5774fd7f267e1fa77b98647a8e186e1e36f815c4476b28eaab83292a144b2c47aa6125e8f411e2dab6d4b46b92139a4861bb8f27305e43c9c65e860ca6332b59032d1a14c762912fa16252ccc0efacab8ae88157a11f9f5fd2e566572f83df098d3ca6a25eb01dec9ab69eee508de5a396a1076380d73acbe2cd29712daded071ec2c0c60b0dbf326156b162f4399a913876d95a3a210157957d3b15ec8a5964ae3f8e489fac26fa23c6fe9f0f605434e6246384ed2953f373c70291a9a6bfd5cd12219c17db5329921a9e478e37a202219debba3c198a84d880b3b93295d5d67fde16c97d7a3698b4c5a1e017486b392db87e8c08c0e4a79176d613b0dc242534e5a189dae53e9e528c67cf3873a0275ca58f4ac394d91ebc07f1f297e69b6cbab02f2eba54d4c5d93a066581fb98d8f0d21d729214d96732096bc32361a96b02a8b09681fa003c9fc603a50119472a48cae88179a863316d04bfd953c6b39146b87dcabe2decc8e4ef04d2bd9bc34664b9d3253fdd2a3b9fa9b055dfb6e147c0cb2a2abc64dc9f3ec83dcf17cf753f4506a14e225f265b4e5e27dfa46a85bd30d7e54eb89e662070ff4781cde14218ef1808376456892bff513c59338475fc7bd08ddfe3910131fd42b26d6fded460ed1a1ce90bfb70478387ff2ca86d210e85fdb507075e4672a4074b7de431de1b2714ffd6ac0da596ac20da9bc67bb9679bd8f57f1ee4fb30cdbc75fd4ed34dbb80f72321f95d064be8d98274759c9eced34247363dad2a963e6280d4134aebb5bb341421bb458a1e6697655f43d4493cab9f85741aeff17eedd590bb5797a57e9ef22a2346ff334dbf58e7251f07d1c4bfae44aa40f5987f89f1c5f8fe05dc89f3051b75b791b81c3011c70971076e633e5a5fc02b9fadb24559e165ae98a0ae52d8ba16c2cebc768c88c7df869ec0066a546f0ca5ea390bb6658b432b75f541f7be6af954acc1702988028dbcb918c97ae780410442cb37b49578ba85b1736bc493c8fdb8498a51947d626ce1b0e69f436db26a09f4ca3b9feba5fa844a8d59b9c66a067a7085b99bbef203db5eeae7553fedad38956eddd24e7f1d9495c8c76c2724c85b284923a78762b1bcc32f94714c4d26710df9e5af882e0a7f23b57227bd2c704c1e9897d49297e258bab12fc6ce529b9fb321181b9541330a1945fa5aa4ddc7ee665f003f86e01d58d9df16744744b3ce62d92e7190ccec7759928234f1b310a0ee223a567cce27e57a944b666227eea21f54ee591574466a79743bfdabdc3f7232e9ef53ea6c9a07bd6e9d06424a83741ceea612676377771aa1e75a96d7d5047f030606c60d2dd4f7f55a604ec9246f864c3005b910269676188b8b7a7df5e389a2074d57ca4bbba47bd65bfaa55cb98228b12e28f4ea2813fb7132be6dd6f47f5412bada43879e3a4044c864f057bc07d156212ef9b53fa3f1dec461ee92373945b786e862a924ece74b385909a46ba27ff6678f99591bb723cf4a8c2669a21ba6b766a34da8a0097973cf23f11d3d81f025aa3901cd76749df882d96b8d74335591f444615e8325912ac8cc96b610d88c8666cfcdf47129e868104aa6f2e56f8188c045dedc49ee906ea05aede32611801d687bbc336d03cc8bbd567984048160a328c691f2fc10ebbc0220242fa90c56f9c25aeaa55b26de9a0c83e417613d84020b3fc7c09049dd3495f88558a28cb84da0f54bc329119ce7e0801099739332b76cd6179725f128c2596284f5719dad58883844d0fba383d51cb3507d50c3a114732e8c69c2e7f29740780cc5b1ada39bd54ac2d72c7835945e87532fc467b4bc990b5302bdded8a5c61f5c27c10364779f505b2928a336a982af1fda36c74ce431e3cedd4857ab1dca5cadff4d64f970f959559b66af1923151efd0a7df19df4cebf43874cbd7f4470dc9d9387709983ceba834076d4274dc5df548828c27b0e62f0ba5b58377982249f06f7fe18e86c252d5f3b09fd45cb95cc68d40be97ebfff05f017eddcc9163ffe2c5feb9914660c74e156bf46562a4a16d74b10bc3faa496201702773bd1b370849e1806c3405db73db7e81b46d64651d7344b8aeeef67faa227b7f82603d3711deb609c6ae5fe3ebcaaf34a257dd5e7dc17c1622a98265d5b310651930436068f3235e3fff64861433c9711d6d9394bcc04441356ea8c6469c51fc809bab25c72b67e97908d244ac14c7999e2be1de71b3efecf6a9f61cef4d53413265030729214775bb34d7a956ae45d15b9c29152acc6dca672399d6104e61e77098066b068152816de5af0799ac2f9c602c16116af77f2545e4ba7b3aac68cb7b01676b5214881f39e9ca769311f7f352be45f108d3bb3ad34b1d0c04dabd1a8cf54b5e3f908c296c70ee9f85a13320ab0d3d7ff03a259c10724e5f7ed8f8276aae0cc7bc587287391ddb2bdad845cb7104f6e1cf92e0a17a571e2b6109da4ef2c9275f9fd84f5de986d96df7c075466d210c5e8b016a5faaa753f6794c290c7f7e9d140bf281b4d036d2b6be4759e98f9d375887fac4c735f5a3137f2eba2398fc21aa1c46938fafbe0f6a148ecf864f551617e6c7353bfbde719e84d27e97022dd7ff56a4316367fe81361d27b1c6231b5be3d3ff62309aaabb17d19059bf733f387f650766e35e73065ff3b16f6ea8d2b453b15c1a52462abbbce140d9f40d88e020836237492f042b880ea36056ff7333473ffe3dec8000013d2f59977b6ad22df683fd3fc8a969bb63c3417cfc62ed1523bcfb7b615ffdab90934b692e2421ed6894e5cb6eebf3cfa732319f49a2b4cfe09d6bc2756e77c6b2fb1f3712e0753cf0925b0a98ca7a3623f956f8883d581167a7b8472f8b38b2b3a59cba96a5a431acdc732e900f74cacf7fcac0e552df27f0edd1a92962245e914f92c80f5b9f68338ea00115c96baf2ff8345e840f2b5aac03d9f50d259efc3fcbfe86aded9151febbbaa1805cd5aedd00ab7def48ad7ea52cdaec005b15f8b6d73feca2b76204d6039b47cb05850455658c6f8a7f46eccf2bc4f1dc61f3c40463e0606d4439343f4175222d7f2ee79828ce25d06362714064a79acb76e22e988c970d9f5487ae3f3dd798ea8d75d00d83d2d1507179ee20ba9b00cd98d39650112bcc89a247b047e2b3c2e89964ab65c4b7258af7d2588926964884b91ecfe1f7105615c4b539d47ebf1856e5fd0d684d4224ae741f25e63d3ea3093d44a1c5aa988da63fad0ba0455889f4e7474ffb3566d54d494500317ee905dd2d683db1af78a76bf5a60bc7cca079000dc97c55456ce910ac8202e162f04e383846fae0b25075dbca8d1f9b6c1356f1281bd58a140f9a1eb427a4b0acab57347368d98a12c9c94ef081d856da293e6cb3a423aabf09d568adcb1aaaccb089f8498a9cf83f3bd866f4316f1afaa95918ac0fd9b7327260ab688d8226b074fe54e5d84d537238453a559eb48a05003ad56e3e51b981ec8631159fde366e147b3099c6d04a67c7826295609a2abbca6cd7278d3dcce8565b2bca4d3d8dafb24be27d40ad1e0e42ee4f35690f5ea178198bb446241f694b4d0c1963d2261ba947099311930eb594bbad4bbf0fedd5c3a480c3c1bfd73b885e41d6ab85a54426618a7bf7ef61592cb31c9dcea2e10980663f82ef506fe7a2a34b743f853e7188dc0e9e54a0c269faff218fe4ae096464166cf1e833510b2c7e5b7aa794da5ca7a22f533c029f9c72cbd7633a9d2bb5dc3a73fa88682d4352e0acc385fcd4c16b5f7c8757fb5d04bc2325b8495eb6d298942019c1ead4def51f344f0a9d990cfbc00a4b93c50a3a3b1cf1da883aeb8f31d1a51a66e425987e580930bf3d91b5f9d4e283fb8a5dd2d1b164c3a733eb7f4338a7052055181c0de8b2a27bd6067ca782a85dfa7215334aaed45de356b59ea7e8072ec71386d5029b47eea4cd25429743558cf5b5dcc6c3140edd4050ab42bd2b46e32f50984d2957905437b70d45c535cae58e6de47a4de14e13e7d8c680defd4affcd73a96d570cbfadbaf9277767d93b92433da6af5a0344a3bc411f3e4ec226f10d4f93709b3752d54fc281a905282d7476119f05081c5220834fa3eb25294f00fa750c52d7b5e16a48a9dde80a3aab6be60146a33e2e05380fac178f38dfae2f254d4c116f1a0c7b4758ca03b65826b459fa5334f15ad972ef6d19bec768bdaf9e9bd86cee5dd860fcb8a6bd35fa2becfa19c0b0f590f1217eba3062a04b79597abc1d8ef9abc71d99933dd762e31a9e256e3ff81fe0da581aded054feed45c8bf9df9efc8e4669261b5bfb07df22161611bfed6a02d595e34eb3388f328d5312b1149da182050f1a0712bdef632773e6ff11277da489f7120b5df5ddce5c1137b0fe0db13635320030673c468c204fa1c29fac838c1cf874ccbbd1ad21eabb6ab601b04ae2bfa8cdb9b448295dfac01bcfbd7838696c8486d407e795a8a817a75cac452dd9f03c140f64a6a075b24b18ba2ef5146a2a0fc30510f8f3bede16564cbc3d06f9234d0226572d32d87caae926a72bc874d65bafab4b3d2595807e145a34777aed6bc34f431b73568b5410e64666fa09803a00220f3d3ab2ee1fd51f593c8a25823c158ab085eec67ed130b3480ae3c1d415c841fa70ada0621cee048f39d7246f480dae615c73f22285328f815fd16268c86c318e43df3e2c86fd1dea2df9b7cc01686b4319e9314332e8ef05d631268bc0fec454b50b231c1c54e39575d53dfbc67b1ffc65084bedaf1f6ef58d09f4c7a88f9bcddce0460cbca1b265c2de3e3f5ab0cd91923dd958071babefc61e1c92cff694c312bcdbc377d3d1fa11bb48447a527020af8bdb17e92f0712462e79206ab1ec394ef0551372d9e3a9113e14b7e73a11e1c7386d8e9fc67b581557640ad9070fb138581327811edbebd850813e9207fdbbbf8713f6a733110261a22c37d940ca4cba12b56ec645c71df699863327f5bcda4a4f3061f0528a552ea47d72f65f96d89936bd0a8adecc0922221bf827c08682bda07271016988cf8de63f38f5c1c2f8be820e8ad09b9584510a2b00398c10ebeb84b794d7a04d479e1c2acd2ed93302aae63953395417a0b9002c3c299e910a5aef4348a8da1d8ea17741f95373b564867ea2a3e191a4bb879f155e3d24209042389c83ffd73c5ceb521f870a85857b30c0e641a9b2ee639dd18526eb2b2a0d7290403923c13e8331255de4f6cc3c6eb158ad812fe70459f7da78bd70bf7ff4758031ba103bd135f5959ddf9636d3055b89785cf7a7b1770074a8ce3d368abe4d410ace946d1cc0e8f94fe7fecdd6b1a319140ccdc08e941267682c0b53a4edf4da9b65343cb400ca030cfec0ec4281f45b6ffccf9007f7c582bfdf19f6678e84b70c9a8f8609f735b371dcf9df6b59bdc0bab5fb66ff3ef445fd7bfc0a72ff42cab2a46c75d48d9171bd0b082e107a84d106612acc14479a338dcd438b3796e3f92ce2242bd99feb282eb577f7b1ce91f8b55c61d23520033ac7a00f74d8fc30924fcaf1d3ebe5fb3c5709defc422ece4e3ca0fa7e4c009bc6647638b56fe780b18aed4314a88fdce2a356378b4c39532dbc7b3ba54573c15b13fad5f97fe07146cc49ca46e13dd9e32bce585365ca8383e79e95c110b16571912aaa900741c1c05e1f3ef4c080533e5a3a3bf3abb67027062394b84dcc175ffddbff33edec6388c6912a7fb24b1a2d70b994f1f7aab71600b11ec061412e44e05269c0678dfac21eedb25dbdc4dfb595adcf4c083a9fe05f4a9220e45e63fc22191a5189456d06bf7ab764f46d00d0c6ac54119f810a6989267b95bc51352500c4377eb1b678c046d61feb6d372e442cf40ddea1048aaf61e5e7bcbd212a6a73c144180372f70b02307b9421cbff226d511217b937656ca57a83a4a5b6800716dbb71b3fdc8802b590e6c50c3be2d7455586a7e271fefa9c07f305eb97036f066d20032c78fcca718b9c38fa6cd208888144b32b249b32915ad470d8ed19074bdea18cd1f34f5c3b5715e445e504bd839e31a9bf3c32b3c78b94286246c23617785201c25d97ea8c9bc8d67aa1503eac00d2f8a7d87bc0b3b1b61203f39521836096752f724ecac7055f24b6be0f02c22665fb1606b3bdba786e8084679d67f520f268b37f5c5733ca870cde795fc6d81f5f7e644724e425b61d71d20370679c8d2f34049dbe26823483ee021cd8a6bfbac2664d7b0e4a84aafaac030f1662aa614f7ea20e4ef997b188c9a82d8f33bc000b0d16bad629fd6909352d190efe22edfd60b86145faff4ba1860c0afe368022ac26b0d0b69497ea3bbff11a01a20865cc7ba14659ac1d6a6df5ef2fa66e92db1c3db1251e28f989789699b7048a633b5b154b5cfd6d42fc02bde9c7ccb7738fe2034d3829fba0510ed51b98ac3f2c6eb1b453b263ad4713cecfef7c9d929d8f4d60eb0863a0a51ea39169731e3b232c6124e047011b27e0a7b4e1523049070184d17127da2258ed69f683d2b561bc3e567f9eea9bd06fd8a946a1c6f90176fc011147009f38ded28722bd17ba915d29136e566d875383eae3cc53c965b02efbb5f6e3458e7c1709152cb9a09a8d5fe8df01036e48b12a0ae59c9ae960bf9fe78950a364b4ebe88b116b2e5164a734dd86095ea76e57a277c582941a927d8e479297e454e1fb4a7757309d68de320ee8d3877ceabf787270c5fd3dc82784adda9936ef6d0461608236467c98d333abd24a238cab9e7e55323fe4f63122f88d5d44b45d22a2f0a65a7ffdb3b762c8abab44059af5425504443cc0827502ffb070c57ef348819e0dd8af2de88d2d753e2fe09d710f0ae087c7980bf45392aea4a61385aeee5f37688baccb8c02ff13e9f4727f1ecb447670c69e501c96492ec2f294c7e0e968980790b569aa86943e4cfd927733fd8f169ef87da9a760ea8bb2ebf4fa80560433d52e6b81577e93e7e8a268d5a7f3d132cd633f221669edbd8ee54feef5680fe1901101a45176d2f3811b6887fc23eabd57615fcd4ca09a0f93c8736d73a589fb697c16dd8025248ed0b25970b6363cc06e86d9aa9dcd60baffa968dd9c7826a950c403d527ee10ee8eb7c3ce967b018aeff95eee4f3c6df05ab542d17bfde3c930bf59d841a8bef92fd4532b21302c78839ce8f6a6d2786fc1ee19933c844f05038a70c740bb08eff61b6ad4d22b783fbbf17417c31501da5256ddd4c11972364e88c7309be6be5adedd14fc9c155d624e52815f3265a6159c37a6e969040b1421f3b358f5096facb83841a20054e7a51dec5a02a8c117c101686d3454d70dbcb3ac4107aa313959f2fbcf46cb4bb3bb467b141c366e1ef0c36a0acfce071cd918dd64b7ffe675279528481ae854f1a0cf03bbd093f1fdf243b034df8f074fbf042e548158a5db994957e38dde5de8cd1ee5426844b6afd65f7301cb3c364177a96dc51c795d23587567bdb7a4c5dd8ecf580726c4d85aa0988c8c99e10668e502b9271e36ec0ccb7b2b0d2adf865ddc38d080593168a38304fcfd81abb05a90f1f3c2b7d4e1e49f433bd231ec4a3c739253ecfb273597cfcb3c3e7f324c8cd3d7754b74fe5116d1ab1f33cf3284b37914b0e352db2ed122861df7c46f8261c6edd18b64bd526486cd053ee257690edd634b5652f33e3bea4befcb94bab73da4b3cbbe882276508584d432ed6556dc152a31131ac7149ded07ab1d529809110d8bf12174919cfcc929bc431c1f270b1fb7d75b22668619994db948d918107ff096edf5f631c4eea78a39c1c5fbeac3277394c3ee9a36e246c947a11c8dc4f4dc239183ffe298b67968f8c618c079e6734cb23fa1da4c660080d05a3297afd2e16fc67caa7eacdcde0d83c230ce4de9bbc47ffe4c499180a3a1282e56fb9baa208eae292cbf33bb2412c465b487622d7a990dc003d4345a1884c7fabc61b54169dfdbc6ad6fc39bae6f1c0380b5d378090d37e455ed05c10fb85d603dc34a9cc578857d881830617b016cc1a6538123a9a1ceace488e6772e5bcff139b4439b6b79660a0aa3dd5a3d62b8c3ab5844279c2e2c29f28ddb9bbddbcfa03d329c62da57d14a769c3baf830b444cfbeb10c636264c138d57adff4d6adf1cd0976dd0f63f0971122783193c1182523b13129daf0d186257da146325b6f3f4e27e61033f5c6726695c97d63a11eb52f460806123899899632cf4ad27833c7be776bbf73c16dd70111fe408fba98d922cd7d3d1bf406730a34a1a17d92749447fc617ad2ed8ed4e03ada3410f446c97905e91b1a8121c99bd01497e928de7fc98729b45faf2080a8fd397b0017bc76914907e292793668576006b9be6e2edcb7d98ac6fb8443ea96ddb48e093edfecb3a4de18721079ef5efb2aa61d4cc0b5faf29c9412d58c31710f42e6b5bdbf1356511adfb3b39ac8d684804bb86fe9d02839d70f4c7f18cce897f1d551db586550a52289b3bc6a62f1e9c17e930f616c6efdf861445e5472c71cde7e216139693c0b29e88852b20ed690df1a48c7a2349bd1bc718020fad0ceee1bc86ae4e7da5d5d9bb60c07c0178eacaa6c2d294c65eaac7ad0fc77ea481db72aad2e4538314c8a2c599fc2424c34f0d46f6973536f4696f7a0f832b3005f192fc2dede92944ea25b19658f34803f5e82a518de8f64cbddce72926986a12e4b2b70410df11b612375e133c6b9e555c115ab738f601adb5d54f0f912ba187be8b335763584b05e70f2f68450804cb5ebcc0a54beb740c9419b93f25e5f315fa30c41dcc54974d90f30d5b0de7ce4a447444238736104d9901031886dd341970e52165cf819199df7244999ab2f0b905f2991005f39ddcc18bd30284143a3377ed5725a8e26e558024e1a370b577feb5c751d271e47df058f308be3740d606aba0ffd4518903a94060964a42cd12800784d9fa85f697df45c107706b055c63ab6ffabb88edb5a399333b1ba2fc9bf317c6a049f55d9f11d54414ddfc2359b9bd18f9c2586e8a4cfc043975d8b049b7d6f90022fdbc4a7dcd5dedf109fafdb032aa6e62fb1147f48ffb610c2c0f5916e49064ef5185a65c4f6195cbf954c83c3683996eff8d83e0c31f0441ae30970d45c5123ef99bb6c499c8bb346fb42f833b34751609b359fd2d8b05af8abf11f5b021203afbfd95c90e27c978239d7a7493fbbd1970a61cacbd6637f5a737a64008cb79d88608b1753c6b0c0f31c1192a40649b1991e77a2c8523b514f5d95aadac44e32d104e4ba630f968b57e87cc020151e69a05e6be6eaf627b47b83d02ff780e2787c2da53b4a6d3cf65300788b692da1ad806dcf26b4da66f38fa7be30d29bb9063e944b60d5091d0c3c2047d7c3bbfd507445b5a639b5194239a1ba85fe662519a33f0edc4f30bcbe320e85521be6aa92581a8c2dc96b24f2cb28094699538e38a2ef55454f21340e16f0f533cf7f5ae0869c659a7ecd549e6ddbae47a05db6a4a17bdc1e34a90a7d50884da7935ede85ed955f2f103eee19d6998e553c0f4baf8f722e49f1fb81481a1b0c20dcb64d9bc7994a8bfcf5d79ce55ea7c911f46cf10e9c9843661c624c6dc702eae6ec074b87ceaaa8e48f744ad0c10526df8f76d2af397fc846dc25f63ee1ab49550716d952e57ed2bcf0b77617871f129090b68fe210335aa38876ffd6072e9f59f6ba6cf969b11af6614c109732a056ce2267f1de96bcd150a8f319c16a86634fdbcc119a98fd8992024e87df00986ae31a446f3d1e95d33d60452073b43424da73514ccf2a95b6bb879bd65d26b2ba4a6e1a201ba29c5739013065837ca2be7c8a96647c0a9956f2b9ff34ca59d7fc7040005b3f64a378234d575e9eacd946c281c5b0ee2f2f5ff527ff812f3514f2d88aeee2aa3a1821680ee79e05c7d7aa62f0237702aaec7cdb73bea014ecbdc76c02056c10e65aaac2baa78ba476da7ec45afc148dda04586ca6095c788aae3d594ec9c90a7ee8c6fd52162302de7fc73d3d9b1618029b7b0dd1c5b59a53a89895c4b4eeeaf83b477b9c5d3651dbc0c1f7f785890b590be90b5afbe8a751be05c563896dbb7f27cea628fff6d000ff61880ce5b19a2441d10ec11ba2fb14d09ab49a2db252dc71d1674c8b693f3eae1b0ebdec5f5d57b1eda1e0bf1b737709f052ac48afc558fde7674aad15086339e88792edb3acb45373c21463855cbf3d9850e328c642510c9b9fff270dd3d72b97abb2192e2935e591f12b41d4bf25c856b0a6cfbdec966f6d87638918ce3e536aba580ead680fbce1e810fd4ac7f568d9c64b78afa7b5be79d7f8c4a3529477debb0968ccf4bd420a600f0b808aaf82786de2dc18fea9eeb873bf5f5ef425f1f0d402ed439e5ed3910677292ecb53bc5467f1e2ab1d2995ca1c50b887a48da421938612f110e76a0d5bcb239793d30b05425e5e882ddd3203f3718a525a4b92f1b9a288534d302f59a6a1bad0d302aaa77f8b34ddfea85b1a4af4e35a08e21dfdf4dd9e977fba2902d56983fecc3900b43b687d9c2d725f47be57ac115e9a14125ef9982b956e45a3faba0bd7f3bd9addabd18e75b4c6917f853376f1f3e55d51c530d9467f9907fe5959bf0f4aab06de87c3cc48b3b1d0dadc6c8b5ae8f7fea687259d27e203787b73dcc88a9b91e853ee585ecfab7cbb92135bceab497d188859842cf5b12cc6a30a978da2a7690a7fe68e3a30c6dd33f325ed337c503b38eeb6f6ae34066af46fc373da8a074eab9332c350f6d5a977b965ae27dd05572032b4658a98f4f4a7825cd4a5b5874d17981b0d6b77c7de62134f10ea0c8275ea6d760c3efc7a87cf5044e28a19b090369fae5922b4e0ee349e98b17d5d4c6922f6aa5ca4b99c29ee01a5b5f14b4b560f952e1ebe36379d2afff1e870dab2fccc45bf0a59457d2afc802c3331e51868ef2cd30b0502bdae9fafd39bc8f0d1d2195fe7fb6a8ed94005e70cb73d4a68e0ec33b2322fb29a05796d18019510ddfb68be43d6fa88094ad4da37b089033f9fddef13b09a6d4900157f9af4bfc2f7fe6e3bff8662db3540c3b0f7f1fcb1da05ddd3894ded0286d41d70d134eae253c5c20d93fec596bdc9b170d41c90dce90ba89bf09170bd01eb23f6fb9cf2cff82458a621d0e5210e75401ed4da969b11b3bdec72cfce6037b1f8b8cf0a4e82089868b44c08de1dafaed9172a441a0f91dc70e8a1acc40cfe554ce56b0dd7d6f9769d265149e840de3186d8b23fbd583b6f39db07f6083b2e486f6572e3321af734522cfa10901e78be96895387d006e265c82532fbb8226ca149b1ffc30ead6ff26961aad2a41603c1f80173bac5ad2eca0b626bd9643c740297e67c2695b36bb18fd9fa5626a433ba74c8c520324591b0025b260bf150f8120b433eb0ffc16f779ae11be87b13fa3f600ca42414c19bc5c143963d98ff6d240e28e64861c914f28f3ba0e1f2cb136965f5f62b518086a51f290b39c35a1855111ee840ade66e1d428a3d3676fb4c0acbb3c736b2f821576ab25b2c2f3dec944801c1bfa38076c34f195bb0648c424b2abc08636bc096cbb09550133cdff71312863d0afabf8f8b0a149e74a5c4ba047e04923555feb45af3e68396583b9191c6e9e7f3729b03b8406538b169608c9fa8cef1371ca3b67382c2c145ef961d6215b5d8bde97fa4a9d601ca536f4d722ecbfc680d1e74ae7e1b4aa09d434312ca1f5c7f8932c0b75c30ec31c838ffe84290540d10b0d9f0b1b7b2a197403d52ee50f7dae28c5bf46d173448a3f19f7c7aef4f837e4cb2a16964888a9d0b20d579c4c6cae25911e49b29920650ab91ceb611847545d2151cba904ed543256ead4fc3d0f8f5a87f2b275713a8180d80d5acb7a0a70a878828213caf75d43ddab6a285ac88f99e6309a180319e8a58811beedd002434b7231dcdcd9fc9f9463da86b64988d49b8a6dfb1b5dff3c0f5dd6f6767ced03a3ef6f253c56978554a473983ebe18aae5cc9528ed1fdb9dde18a2ff3dff681f99453ea16fc24a798233463504cd496728fbdbd2e5b92d956fdd7f850fe713a151e6ab1e9463261dff5cdba5ae950db736126f9d922da075d078ab93d8171c20769059a807aba193af4f697511afab4a9481d4f7cc3efe33f5c9cfd939206bb7a0aacfdc973bc4916993372e45026ef7864fa390c926e73f732e56473f80ecd7ade31a6b3cb5500537299ac69d7e2fb3eb223765f9d944d0eab36e338c95df325c8b855c0e359e42e1421ac29a1106f19775885fd4e80ef29a427f85256199f408d0397de0d08339f1410546d9d8f2ea382e57b72222cca784174d1e76558afeedfdb553e5a632370737d58e7c3051abe608b0ae50a79cce1a08776477426baa41f6d98578e2702866696c372ec3fe2ead34686973ebd279e471d14e69fecdf0f5dc4654392f2d42b7e1ee798fc5ac73577b34ea91266699f51f3422daafd3c66c8a1ffc725d05e5c7fb96d0ec73991a21f240785db0516d4cca9ffe1a3758d9992cd69ca7a98eccec216d2c420057380938b1b6a77a08f6f275d54c834674a8dcbbaa3ba157673928173768071b6c0c99a61e31507dd56dbec65470df2e16c6ffe973a75d799480568be84bbfa0ac7ed0396f36bdc01c056fbed7285acaa54f45f0a0dc1c7d8d422c7ca9dd8ee700ae4fbaa24d192598143ecfdde9560070f21eda27182efda48a5877383af7d7766efb6fcba838149e4df4230d017e44fd51cdb0e530081757bb38f3904053885da9ee1097256ce43ebd00c9a1cf4989eba1646197027912a73eb948ffac7df078095a209f103845f18cf3acec2dc65d8c9a118fb4991f378dc801f5783a703b6ff8311e6f9f88fa48a0b5265be6fb369fc7a018a616efb7d4f482bc71c881a327f01d75f0bf89d8662885fa8f13bb5868e4d0ed93897eba4db1f856b7ee676cbae06c95fb6ca379fc7cdcbad5fc7a57c7f30d3564b7ab2861295a2b631028ef69de14878d50a896f25f28ce4eb5816501d658e19b8c692dadf2cfd95e7fba890e82a15634e5818f11e3b51d84bcc37b1fd9f4a2204be145e4e41fba9b8754d62637a482a625af4304166e293b06c40ac5220f194c78082d32de6e901ab868c2adcbdcfe3f7b1c3af287a47c198b0a571e27cec94062a180773f091d6e4a862778910b280a5f80dbe5e8ac6a27a9e7678cea358cc200c9a493b93119845b25c74f3c90339e379cb85b66c35f3962bb6303b8b9d2cea3cf6c5d2b21d5464fdea55a08f2cbc7602a2f73fc6c5695e84a9d3c1f2ad7e46f8a584a6559be8b590b3dba9e0bac23f815c09131021745239339fe7f5878bf1dd1f6cf69668005e20b4ac3aef71490af53f0fe7fedca85ebbafcee73e4622842051c9c950c3a2d94c916b14791631296173283db5aa62aef8207781f4fd295053f1aae00c85d0aea9a37d16d7118a8a424c3458d59acdbdd93cc4a08bd2d6b5cf7e7ad8340d0815a1beff8ff3a72d49ab8294027cb16b6ec1b5f3137f8369636c4bcd498612d70d2831969741f064f6db786c202f33f7febb1742c5b5f2b17b62a4c6378d094c2bb3a192335a9ad44ee2a23f3f8e785f61111a49378c2234489833f75255e85cbdc739d950ca84f29777fcfddc4cdd75b40e5b5e97daafbfb7d60d46dbab634e08cc5cba44ed4d25ba4711ad02fa888b413216228c3a74d88f3732eb145db2ea7ceba4e674ce908e70048381f90fdffb77ca5fca1734108cdbf6c935ab69d1310b7d458377c3ed15fa5a01316afb1718755a1564062a009f9dee5fc4e05b625272537e4b5f1b9ea4140c7d4982a98a319915aedcf5fd05149622c964e8ff8beaaeab81af5e1f5f67af2f2696f2e2394d7db931e5c60796c1a19da7f79cf2455475c7d37cb5302950067f058784bfccd0242be14c1648abe1ec541c8025b427d8faa720e9467ea96905d59096cbfe1aa7122b03a761ac450b4cf79be3f091f2af8835aad83784902950efd62d97cef5b58e1f046dc4a3e6c273599c242f029d89038e24ec3a04ca09e383c68d838c2b8c0030ecdd7d69884f08a197f741f4d2dd01f7067ee02198203d896142f879fed8d2a31a0da39258225a5f6da84832f2b3859b5fe578f35c07dbdb423bc54e58cb367ebec9d40818dcdef3ecdedb5c284200e837e38943e88c34b92ffcba9e2f74cbf4d209846bc25fbeab6b2ed9c9479570fd91436d2626255551d9febbf5a9453adeffc8027191fdba97e9741fb032e76a227a3d34b018adc29f75a7ed992ac65c6fe5ed1dae18d7bc26270b462e8439a2d65a6f5092e6ceb0c3476cf4b28cac1aba050fcb305d70c334cfaadaf6a443d276d9a604e1c7b1043df3776da357cfc3c40178c6e8e8d4ef94aa6b2ed30bed0272fdf57203a884a1e0d7602dd4486cff7ab02f23fd99b91c1355b516e533a103147aea73280e3b4cfa34efc60e1f75e91c522fcde6d65a48d7b4d3e1108896428fe48be94369402327be297f7fe2242b8aec530493795919bb41fcee15dc746e66b08b577b494c8b4fedbdc3b4bfaad9c64c525109ee7d9438b55886f6bf0e810a8ae5e1728c1de54f466767e239d261a50dfed72446037e34d2851cede0b47410935bd552fc9c62bcc588702a26f3182411789750761166c039ab18958bc71875bfaa241bbd738af0af443ebcff9be05fb975b2c71262547e66c62d74a3f638dd84ff95400bb312da8d083edfb8ee0a3200a3be1141e2259745f9b98799fcc9229c4dd6aa2729a6ec7ef38f40cdbc1e651cbda1bd1753dcb45b72894f40a3478145b7c66f4d788159c3b5a7293e5d90dcf58ef6733374d39f137026d67b4bfdd98950970168b15ebab5f85ab22b4ceb4d55bb452e19775bdc403a63f8f4d7a04ce78ed8d30b9697f2b6a4ec2966d3bf116df12e8e3f623bb95a78e0df18a5da028acbdd74552d72e844f75ab3e0f4e924a46ddca275af40e6556f567c5ac5df98576cad9fb9a994972cb522d69de78a113bd29b852c6a5d14303bcc61d62c91d82263b1464a2576a0864f05f5a11512fa2125d4a6de16830ec010f5f5955560a9db9136489c9a856dacfb8584ec919b2c1c42f3264dfeba090d005f5df961f3e888297502c8b2789dbd88213aa0cbb9e7a8fe44b1052639f064562cc12885a0c737377682472e9734807a2b74f6939086b90691d0d12c3ed444836e1ebedb74600407b521e25e67b745a56d5626e53695a2e7753d7668e9445aa3f6b71626dc939c91303ee98b150e8957cfec1c9fb6ea36277c7dc48f790fd20bb26e3dbd0997bd4d9b302114dbed48b5ba0f8ed4c411da6ec32acf269dbafb21b01c4de9530ff143ff60759d9a9868df87390432bb2487e033299be138c4c7e1363aaa9fe19b101e56acdc02f525e65ff40ce428ae952c65ccf331e000e5a0985aa48fe0ed724849cd782ae46b1471b29db685d95f94d416bf95c6adf71a7887a98bb1198d07ae66e7447fac2ed8bbcb2ec7abbd22767ff0a812007b78a3079d317b81ed3f0ee8f86ef6133c3826a2f3c2ee2c4a135afb1994dfff9663616733a59905cd13a46e59c48178ba1e4288298f3160bc8ace6bde24e0cfbaa63bf6e5d309a39e8308b3f3bf6ec13a5d0e51de01bdbc82d7abed4d43800d8c4308be82679b9751d441495986e432ecb7ddd45333a697f1e30649f21b7a42b3849680d3489ed76c90d933d17ad324a30cb9873889e5d55ba810c80f2317743c8277922d62531bf48cb0d25532348defaba531d5d7f52efc142b442716729772f944d5e99ee02e0b3f28341b84782311e9f2210d23f86614d9ccfcc6858c44b9e4a524f0326ba8adfeabdfe1c969474a37cd55be1f1cf52528831c3eef2ef406d6faedba07e92d81e2d045a03999d1a9b552fd799051b56c659a521bbee8a6ccbdf98c0818a8b79869df35966c0f6dfbc6c2c742418a36ee9927ce41aa32e439f928094e83b1b7d8dce05a8170555c6d6ec9755d9bda2aa0595b0ad7f915361078562f46d9813bca6fde3ff523f587be23cb54dcbbc76a48ea032a9b5404ed076269e66eb6da764ee64cb5b22e0de9ebcdee9178725b2cb084bf9438d6eaad791a287894272ed1a35e03a31deabbb1d0c50f3f8d05ecd4eb939a51d0c7b30c82b3a14a05946a3a195ec1643433f658f63f601373fa16522171bf331163b651a4e12fb1419e0ce92b23bd2ada18c07dc44a2a3accf13603967b5563e68874e040010224849bf4fe8cbaa2a368c1277523aeaea2dc29833f4f4631ff4ad6830ced45994d86de1378375cb53c60e7a2a9fa7adf97c663e53a0b82e0795558dc30926bc4666619741f6679c81d4a9f6d7609b8f1ca4cae458326b6652ca3866de9ca1a86ee93bad7a738fdb18f9ee9c34c2f825b5df31c9f5258aed37d179cea0f1ac1074dcdae88bd548b70067f5674810a25d09ad4cddca2c3d78556bc9c50900c265243bcefc822ef8b582ec0540e589b3178fad5dd6490318d19f461b48abfab67e95cfe7b6f198a02cbef6d74966af2683d44ea3ae6d53e7d240c1dfc97d78aef6d667a222eb571bd852f925eaf4b7576c9ff84badfe3b17632829972dcc8677ca44ff33993b68675d13ceb15888ea3a0ba7237906d93da625b499b1f1b613d8d822efbcf51b8cab0db16ad9963990a16ee8d294ba5eeeca75328cfe569c9af1768d891577fb27db43a2ccf7bb9398b648443fb2b83f8eaeb92e866d7ccd6da9e74ee2ed90ed134d0f8b04003a87f71947bc9f1d25d81bd15c7117b63288a49b8e3a310c7deea6eba32fd2380186de5e22cae65eb375a95f9965a45eb9719b7458e52d0f87928d82ac64762e2401caa905497f2e81e8546332a3884ad48d75adc347cdf554cd03f7e5f2258915d6af3176a8960642754be46e120e9b73ceb2b63eddc9fd45838812ab5a62674f3d3b3f4032bbebc3db145bc0d2c05a95fd8e5590d2b45ceb4a3dfb53bbb03f8066131e86c9020413466b9fb6b79cb7c1acebf5782e23cb919d30e1c3642cc62fd0ab9b459a6cdb0669ad7bf7767b6cbf85ac1431fb37997253a79912132234ccb51ffb8b93ddfe005db5edc43a9d9b4efd9bb84d8f1a71c0d4ec58f95b55aeafbf6f9fcdd6f2332ad531e6e7c760005fdf53d7f06542e3e99dd02b0f1adfb372cb812511587e2bc1b12d514b73e647c14d3425773610d454be8304f357253e1ebe5457e0fa144feb2d184c43fcdf29f869d4ffe7e0e93d2c0c9b4f7597eef253968cd6800d38ecb1232c13304bb19b5f3743e0e7cd6b4fa4ccd58ce3928fd753cc5fc4418c20c0ed4796452b4203b0fdb697c43a7a90106218e5fb1d1d7f8de639135e7efd0038a51155f51326cd536a636cc581692927a7483314ca437cbd701897c4e6da4831b9a02a63720c36e3ac3a200428a5fe0d49faae862f8385541e8b68be8d5e37d96e083a1b1815034e601d80f52ff72efb55bded9f71ff3a56ad3ad512b4599010405bdde98ae5bdef72318a83f8c129ac6b4e55ee5fa5bb3b94ba08bc6cf580466343fd72995250f419a5e563d627fdc6718446561d659694c58fc7ca912f3ceaee6191a0f65c696aaac5865037433702ad58f230de703b6ff8311e6f9f88fa48a0b5265be6fb369fc7a018a616efb7d4f482bc71c8e31d8cf95b5383812fd944df228fe55095acf574318a063e8c5fe48cd847b8c364276f391b8297cade89e47896e47aeb48dfc749993287f7c403164daeac14cb1344c3418b4b70e01312c8425226ee8fe0ef420635a73902fb248d1f033bbb2f3a32368066f97d6733c3e5719fdf8d80ddae9e54d14ce96fa9e6a96098b4ac92beb0721ade7b1d3977e88a74ef376d2524156556cd2f37a4332f59c918c946fbadbc24f5a5bff1887545b09ad1b88d1d1d6c6e3f004abdfef61e2268925ee9fe8f6499e6d0f92bb79b0d97546e034f092ca624d4972d054dc6553aed6d24968931280006f7949f91c5dc74b837b3b0c21db0d62c0a43b22e63e3a5ee9d797ede88b316a8c30e0aa4e0275b6365ac1de235da48b083806ea09cd333f3ee099cc358a8d13af578b8d444f6a7ccd19b1e7202c5daaa883253db23f932f55500c89bf9e0bf6b5e2eba3582a33bc828752618470fe3c70b61f3c4914566cdba1d04140e4e3b8e4f8a3ecaed386ff22df35a80f3f9849d3224f44a5e0049de2e5ae9da14f5f274f2cea0f57fb9b0c454adc84c25d62cd79ac7a5f121bdd7651153fd934e393b6259156f60de4c0c0f7e2c132d610007bad84e4ddc8a8158633f07099b930e451ee40237a74baf300911c353347dada17c5ce19acf6cf28eaf07ed8a9b36ffa2c8ccbaf8d6981ae2f7d82c8fc399707f2d0b713d22a2623f7aa3f8806c8d04c1cd4d4b7ae93966a5e95f3ef84dafc142acaf27fa0ae7f1cd4a4bbcd51fe8a48769de982fa897b1665598fdedbd54be138d23164fd8679d0c1f9d1d05ae2fe15c2b1a7658b9c0efd4e001c8aa59386ab4af91950bc0a7968701ac4b1a79fe77b707001248baae6d0307ce41b95dee59c6aede174e2df47a6d98ea460b04a2b9d62bfa3d3b70558393af62f9012c3efb3b268e94efbd806cea9f9b623e0dc6b25f23774d24bc26401512dd88a3bc19e38eb2b2f63a4e27eaf5b646eede82bced2de336f358c0f6807d0ec9eccd8b6a8e3dc395c0af412d807e87e4654aa47ce2c26f580b600b91eea91881b7e169f8ec5c1657466e960118ace34c6ef1bec0ea8e2b21ae9657bcbcc05ba55852f9290e0fbc5338babd3d3ea4c891ecde11efe21068d9cc9aa4cf91f96803f80f06a23dd1ee7ccfd8358acabfb31004076bb668369a60719833c4e7b15e9a8735ba2d596f4f9afed57083afbff643575c81f170d1b075a451021b7841b1b6f60a503fcc39bea1062ce339b3558d7233d84e4ed80c0dc78eb8bc2f21b1e0cc950c71260b63561082766da683470b7a3e1e6ed4a8501d30edd490bf0fda41ae1cba93b3e39aa2d5f4c403255382b582c795081fc334584c198e645248bf0cd595c6df7ff68b206d249dac7bbf2c07208442a19227b99718e648f1ce4639025af49a5fbf7e527ddabc0fd205b1ab18389e12ac2c0cceacbe03a4f4627025e2ab3f4a42180d7ba327087b7e5951a06fcbec6b3c16c054db4e515f292f6e4abbeb9d3041f93cc1dccf18be48e0629b5219bf0f17012a6e6d6ff06f0a86ee6d6a12a14499b3d649716502c33c44ec9b063bac6d6420a7e3366e304b7ea2a90c45e0671b66b142e6e52e485591820860ffab5634f3e4c03cbda712f500117bb3086c15467e56264ad2f3f1ed0b47ee0b5c3458753c3e5fd9ebe0fe6f58a5cb9f52021bdae9bc81d8698dafd32a0f19519ce7328fde5a49d4eced607364cdf3615b7fefa423bd09f66b50c56e25787e777580d8933ad01a0ad7d3771446e4be9536a9fd0486cb522a1deb3916c318997fe03b1a9a4c1c47c8adc70bc4e34264403c12b0daa8fa8b961f18b6e94efc7bef6d130076943a81be80f88da11f6d4325b4aaeebd0a99707fc593161bf57dcd82db46d7eac705295b8f46b5e2c6daa85aaebbb52e49521d1bcc809ee0d6ee16a039aedd2fe33b0655e24bda49966809ef5b74f04696d0357bd73b0ce8f3701afcd0a2fb40e95822dec30514414dbb59b9a27d338d1226b59facd52c57c14f2e1cc0842d143dd30cb3b574e735b8b92c508fc51e2b885aa9f899122cc5cc6117b07231c5649c56d89350dfea472ed39fffcba6f17611d593f29b9f698e068ad3ec48e3010c48fdf447c44c820d11ae7f00f5a60a899d6d98dba31b01f30817a57a6ab2f0ee4eaf38d31e6e2a2c7253a970ade74e33c90eadb8296858a27861d3b79b2b0a40f8ab8f48c0fb66c023651353c33301047449b9b47e08ce8b91ad90c3b0a488c48d8d48a67ae1bb8962957dd27b0f9b497a56a3c88210baea845068e08d32bb9d88ef613c63f7a567fb63192f6e3e7c732fb86d7ad14cb9073da0fe0c6c84e7629333efb78186b7c3dd650962f3a4ad7c3f48461e3a570b0cb2d10e7c3ce13e3a0876204d65a52f921b3fd51b3459413e8ef2b6e4b913d57a20d1c0d33311eb483a7575032996e2f214a8a5a1b98a93fafb7bae86be2c451b18664b1086b1e3fc8cffb71a92aeeee7aeea1a97847550a9302766d57f44b88c49ba7893f735178806252dfab38cda34671cdb60d13e0321423645eb677a3c769aa2dfa9527f192fff9db4202e60c90dc88e024336c9ef8dcfcff675c6ef9fff1a24b9971e52e466d577097b101b32d737d226c3fe7b6e93079bb182c557308311fa1513d7dc064098e7e32a401bb04e545689e8852b50458994a44042d8e78fe71ff41ebfa8758b884188dee2a9651dbe5c10461483aab7c065163b43b9d900b4c9bb7bbb8be966cea3b4737f6021e8ec53c55fd1e7a5fe35ca168ee5a7970daff68bd7324c7217a11d11b1f27e8e0a84b42ae95a62858f4668280d1c4a6547cefb30c890d29f79f02ddb1c534dd55ffec46da0b84155659525027bf689184b7aad1a085f279b275372c306ac5c36887d4f44ea46f5151c7aa5ef2494167f9dbec8c82626183275ef1c432dc7f678084bc76678e4f544eeba084ad634512eedf1af603bc4bd6fd9fb3883d08ba3d519a6ac6d37575d5dee1f43c172daf1855b1d751c3d46bfac252ab0d8cff8d681c597c61cb5b4a35681e54f898a7111c769d314f7e69bff0160197ed566366987d362b94208cfd4e781b86532c81dab323b1a46faebf59bcc12c1f2530ea1559a4c28dbd9c1d8680d20e0f701ef8d7b3031a365a9ea7a17698230cb7540fbefc12d50f3889171eaaa4205f978a5d5b556ce870642c970feb4b6204af5662f417674c54dcbe696e3750cb0b63cfb5d697c587e5cd07ce948f85bb5a99f063a09e5a3f4fed2200571d83ec301a3441f51d16e1dcec848a00e082446ae1dd30d470b555be298cc596bd39e0f5923eb829fdd6fa598ea5dee14666ff02f38e29b78fb1b5a66dcc034ce7b3545db97714f7aea3610c9a61bebf53806fe015ec796823c65df0170041cf448c445664d82f53331bc194d8df83ab4f69993e7af9b06549f7b72d2440f21ddc7d2fc6b7ad45ffeb4ad2a7eca781eac4960e14f21be72632d5c2f4bdfc0695f35517091031f5b2a1d831c7b214757589c56268a859a825510103dd350445e9415f9acd85f5dae19547da69730355bfa29bdd6fbc6d28f71f36bcef17bce6c3141f6f2fc5f9b663422e9e0fb2f47af23bcc806e3617b3b13c9efec37b74ad2d49b25b8ede4790e6f7b71f82a7cb5dca577ad92d4f0dcc9715108a646d5589eaca68224efc1b47abdbe6c37faae32a85f583ea5ac248dcc53594415f6d394084b760c76825f9e487cbbe5afcf7f2d33077847389f19c6da76839e7851c7f5ae95d9b4072e95839c9734cafc09e061473070d7b93fe05a47574e63f8854e92b29e858fe371191825cdc610b97099196a7df0b526fcfd0fce086124de637cde45334ba236ae078511708d812d206f2930a47e6dcc7e94765feb1c4e38292c595626714cb6d893e6f1c89a0161114a4958311bccac750808ec763ed8d4739795477c2a4c49f31373965030b82420052de50087f9c79935166769bf1dda73f8b95b5fe11da5109e317225891baf38a009987df100b9e84600ed90b990ac59f21d7db036142b97ab7e24469737aee7a5c28fdeb5246d5bc1a4e6f6d3396d7ff22d83cf0c9a40b1e160dc7ee1547b1f35f9b65da9e3afbef2c390586c76e4ce084c3fe1ef18e2c8466a6ca8b68ecf1547fb8f6e4e80e28bdd830f9a4489df061152c00d1a509e16a2b0a03eaabf903cb70a37e870975cccd20f722ca43a54c443dbeb404ca7af634ba18b6beae8b2d2d68614b01f75a7afaedeebeaec75cc3dc4f85938f4f692e329415f6980f980724b03708197d7134f0b9c4758fad1aa233e6b0c78bbe0be38955d075f0f0e2d34aa6ff32bbaa909fb9d12506cdc997c401af4d2dbc6800e209afd05e28af5e7d1a3043c31b48e16f9247f08dc93ffb19efe2ade6f3b12ca744e80832c734dfba1617b3258ddaefd05acd8ef6c7496aec8b1041f8e4f7fa21804c96226acecb128a3623b07d17bf7d5e75c02a691f4fb3040ec4ad36bca053b084f05417977c6beeb1d9cce1706c8f68ee9dbc1295b448329f415f1f0346f0c28565d2d3a1131e26c198cbdffd3244cd4e902172eb62a70bcf3ae245c821591131585dc23ef0bc818d3fd20345062849b6d10b0ffd4b68af05bb829c0ae0408230a58b0968d81a59f73745d8ae5a45b322e68a39b61eb4a9a291e73067790cf332697ae4699390df3176a5a6c0d243732180f58350374342dc03c0b1a176f2a8973e5a48633250eedfb9d911f8bfb0ca4eb71dcd00655fe408288c7018b79aebab6eadb537cea166b100822aae91e08af43930928486a2dba915fab8e9fb90ea13679e8413fcba1e82e76cdc361daea551ef6f21deca622a7779bdba375546f47ec0ab37c73cabeedcb5594d20d696cbc3b17ee8dba65d2e36c5e541ce3cff90490376f60523a4f3d21a1d4e274c13e1ff6547253192840458e6f124d1ad14acd41f4590a1c2d7c425908d640c6772c996f2d5f71a0a679eb2e0739aaf3f76643818b7228bc1533b67c2b91bab36c31720f98bea1d1e97b55b3ab784fbdddf5524722fc0cf6226118405e0261f0fc1f875abc9784427524b662ef817ff06fb9a7b31c4bc80cdaada0aa38d8026a1f99ddaee6cc166f1b645af90771bc9b831be0e42f3a465205477982bfdd934e371a5b7860dc05c23f0fd6f6540f72fd66ec6deeceeb921c678f37addd09e33bbcaa046a10a9e47d7b4c44dcdfc0c765e2236313a02216d0fc7b0df1046659bf23d7a86a0f659e17cfd195d307fc0d358493bbc9e464296c13e2eec7cd7952966a82a87beb18644b689c65a89f33798a920eb736f345cb3ecbf43ca29b3145bb09c3f0c172bae624bd0e6cfbcb0bce69cb264f0070a0ecabb8e05b6482748496fa4efc3e5d67784ac37dda3d834f0fa59407ea3822292c804001920fb8ee85e6df9691168f63bfd581140f220702a135727a7e8ac34bbb6a10427a721e5dde46bc8b62e46b8a1d51b15a2f48896dacbcfc5f42654bfdc9aca08f639d2292a0f58ea0dcccbb0c627670edb2eeee1221a33280862401038657095a85af5ad61a45cdb642b504e4c7bdf025405d66741beb9776d8c21e692ff1a2c7c08b6da61ebacbb4bb4c5d7c6c6b87c045bcd8d931943bfeb807dbbe0ddd197520667f27599a10c003f4960fe588874666236639016567d17b3c12f72623fabe3456f6c7695e5f6d41b76f0242a9cfccbde1671d46dbe7eb082e9cee3a86a8943e132ccc33b01944695e1192ca643bca2236cfe2d6010f949a6bd637a723a5864e4ed5a808bd132b14b4a0c65fa103623e559c64196920426086c9e5a05d0c40d18b93b2975423160ed5400c8865969ee55614f7fe44365c34d37244d4ae46780175700df3b4d90a406fa0ebafc6bcd2bdeb1a9a3d031ff6e6c5cf2b941650fcd1995629ca17e67c12f70c3a36b0985aba18cadd3f09b7914690f84d8c981bc0a26e7317bd4ced17662fe9c216011f662bfa5382fc71af9e3af3ce4107f85bd4294fac80e6bd9228ec351edd7c77037d5402674b8e7fab558fbde11dacd681a34fb891ef29036d940b84a1367421519b0502693536a7e6cb6b34bd09248eee63d9009d5099bd5233ecbf2bd90f04da45b81bb790a02ae1a8148fff13a7464acae9166ec510d4df47e2fce1892039ff50730eb1a16d8abecbef82ee027829b1d6a3392a63694548a8fe577fdd794d53f21fe9f1d9f3469891321b3c3e82c9ab480166a8269b6bde8ad7359ad9b350826ab891e73b7fea75c60bda11ee9d966b6e7952e20f5ff64448b18cf243d2fae2db8bce2f370aad0f1c3077a5311b58e5935c8eeafe2799dcef5dae1a7edb565543c1cd320fd1dfdb6e379b46fd4ec0af8c6629f6b4ea0286982e5c2a7688941c2a52eb707871860195c14bb547d0a7d81f80cb3b1686be6ea9759d3a88d777149335ae0a125077a8eea474f2f3525bab961c729742464dea0d82cca74d03c4416b987c1f3dd6493b9038d593cf9b371526b8aff84ac4d22bbc8c0a440e640c27e3ced228848225b71f910771e3f10a93bd8f089c9614044950b30426c14e1379c06cac8b48cff1f526005657259b0cd0a2f81558b98b6fc53213eabaae32d7f1b9159b646e03475b0a1444fff1fc7a0d1d03c9ae6d1b4250388bea16f792b4243f09b6e758b2ac5208b2c78e93bcc64b50d55bc444f9a0dd81803e328e973c24d1c6bbcc5249aabd0f6fd1d91635a1a8611fed44501c6a16762255771cd6f10d4b2f1868531dfa236d3256e49810a3441bb14264b04c6047bc314ae362f63c2918f6a070a5d59a6bcdf20ad2d4dcb23d9c87a0a3a5ce70244fd212bac2bd17ca83e59628f3f523f3d94c24b2375990db128ee39ac6d057a649f3ff726a65c0c30e01a1a1e32a737cadc2b995b4beb462b480f723448bbd42e3dc565019c1b4f9da20515a3ad75ccd114b9e32160789b381fa2996c33035b19ec2061d47b5f369f0bfd41b399f8613663665831fa5069228626b366bb8ccd0ff8d609078ad553f5e1f4ef0d85fcd76685d78de07a259ee7f432f877a39da91488ff67f1aa922b9f9fe2e94eb95720b08ba823a26ce71c268635cfb4ea943ccfaa8769dbdbd96faba50f27d9db3fa709d76d1fcbfffabe6ecfca2e07e75dbb609984241e93aac573ce12f9d429b409dd3c76ffc86a08452dbb1db581b5ab1edb88a796bfe7fbc693f40d24f92bd61381ccf8bc2606e93ed5f38d299edbb45c191f0f163840f196b38a54b7c10ea192ceedef6fc4651555d88f837387e7df0cd1af0989a98a48af07c3d8e64308346bcb6d2944f3e1f252767c911ba80b6c1cdf3d5a2c30f669e4818cbd5ff65ce8fd61b1abbf59cb53656ac2525eba9e8df15c3006d8734a942d62031eb408a2a7d8aae91f9d8448edfe75fa6808a65049674202d79db74c5da955137a0d581efc8097de73075ac420c8cd7747ef712ad98d2616c7821f04d48f4ec37a5a50c82e54d36fd57d88aa82464f41587fe9261adadf5c07e220f675137ddb9f9deaddd875863232c6e09c7b2b1fb1e478db22f17e1ded11dd9fa59aa2d232153be2fc8ed5cbe81d6b19369b9b971efacb09847518dd6a3d372d3aa56cb0038285f4fcec29e2e1647c51e6b9d31f1c490763c4eb04695d05b89d55a8f4b3ab8b40fa690a24b99bd3a0231a736eae5d710398797360bf466d6982ef62db4b88dbe1f0eab5c48a05c9eab83251190cb91b68b3698917a4d1d9aa5d36e48a731dbacd294c4a973abb7b33bdcdb291ca6aea6dd104e12d6155cb6c7a2a456730100cf2e339fbabdea77f0a22ac84955d2ba1fa5056f5ee3ba2f9091eed9d20dec0a632c4739535cfd432dcc3551fea9af691e0c55ba4b567bdc656c2eb4a294d88003f93e29dd83b0d55bf7ba7ac221a489fa694e16453e6685f907b85c9f81c877c93714a60aa7f97ac3ea9ab48e99bc3e21620ace1230e0afb63b4beffcaa57618684963aacd9551c92ae6c710ec74b570757eb619c152b2c853a87caf1633c3d840ef075e85a6defc851ba06829bca6a15f6daaec11bc32d0539edea8459e5d23e5595f3e1972319993240b83413f3da40ca66a2185ee19a91ae53b4ad5a92207c5c1ede69e556c7e3cbf9a1db2c6dd49cec64bcb0168a8d90c9abb8dbd1393fadf1be528e6449a67fcbbaaeb7fc07ed7c0249801e1861c6341ab86c021dfa736eec0590463e759189010db89b811b246365c693631744c7de73e2dc3dbda770db5a2d63aa5214a8066366f40294b8b53d8068d769b3593213acb29003f117e6f78108b021eab59264234cd76843f3a412162e2a0716b17a7638e3b6d26856aa828c065c4237be6ca5d84d3ba0d6fd549901cc2832db2c675baaeccaf874d8e17ec73ab14c902e111e29e7135fd8b962281a7dae1ffbcebe77c7db3c1e2909ba369c9c603a7ac4bc17ce8da34c909413e6f216fb38d772b1f19569f2f1e407174003c7c60cd924cd6617828620404dd130ca0fbe7ad0cd66a1ac725c6d3e49c522404489594ed10aeceb92107907aac5466194a2f6314b2257a11ecc91da8f7c07005e303c0321fcf5ae85d511f1320c92afbe5ffb7f070fd52530bf0c409d24afd8cc8952adbf1376a84cf8c1058f92594230d033bebf1e0e9abda96d4162a97e3ff33fb7343d35c093c31c7c0bbbe0dc1e3097b4c43a02c2de71203a1235c0ae1b1d8f3ea3f12d4d2741f8d8c478e691ed3a150f2bd7ac6a45d9ff035103e8d18394fba76f38f8697ea21d69842df91e78374ae62fc598b83dca3077377630ba079995449a5f7eb828133607a45f48eaef8cc93428196b23f9ffe7d06459d306d7a1f4754e782f0dcf51e68628912acb961b6d8f3146d4aed3329e9996639eded88c5c24c2bc3ce6ec290e508a4910f97ba8d7b37fe20c5f61e5b9d2910602f53dda114146a24299057d630866d0ad37d4f52de067412929249b8fbd9a06a55dca297fbf00f6c78f0b4a9c215a4f00e8295cc4cb19c32781b4c9a29a296820d0cbf84093b1c155c3804ea53ab7c5c25524eef65278765d2633e2c1ad2e19c61b762d7f80cf1f5d4b5498dbfbd2801ea23a8e56e1e8d154f10d6416b85b0566a138afa9b75c6aee5afb6140daf80ee238127c5d181603ebf3972f2c2249ec7793920df119f0f4b2aebc9ea1592353ebee151d30e6c2f9d1e868829bb6cabc16914f79ecca116cd29654b6c84980a747f44d86a7d2926ae627e1e6bfcf37df5e7b164af09b54cfa14f97476a2686ccf45506fc4fc56785f031b1689148e2e6ea06674cef6be3b84937bfda9fd7aef76181959d1f68d8d82ab26877fa60e8084f9eb55abf77ecaa57c9439c3035c27d9fd620b82bc606f28b2c4eabea382b6550cbf5c7372204c2a35b92986c0d91078fd9562ff6d08804065179c83e312358831fd21f74e983eda08660154367aaf2abbe3e21d3a959a20a1c4faa8fcb0b77cbc981fcfce96a85a8a68732f79e81c043f5e285b622a1b83b8f9676752bff24eba63ac66dacde8225c284d80c61d3b6962db9ec9a00226e55232730175b476b180afa0ec51be202c8c2fc921b4668e2d25d59b044e409f8ecd7c7aa388c405852ac408e62b2c209ab5b389370c5e3415a02acb60c0255ff91481d36fc7480ef9564b2891048aeb730be77f5d33d9b6c8261b3c5d87e6d6edcc933c3063558c34008b8732101c3c4cc927b51258eaa8ad57881709a4fe9b7ea6d5303db844e6c5cf9476a742c312deb406adb68d9dddd3fa0c6d761785d5fc976bfd7051e219e7160fd3c0ff68ad0a0058a4fab492a18d49515d3115de188b2c63cc83578645ddd65b6190825e8b5c9c57ef988f553dcea4a7c941099659aed366575bbc997daa355920e49969fa01b90540f70d115df4a211df0b4b2339126b49ef2809f871b07788da8ff1655d2d794af7d7757b4d4e1d3f8ae74c56b267911124d246271469d1cc0309d175fd0d596de1ff9063157b9819195f653e860b22c17e3e965e0e6f9e2317e3af51df588829c020f50a3b68fdb8250a48599c87dd4ffcc86e84996665c98d8f1363340d7ffae0c0411f2b0c4651159ce122a868633ab4d01bd3f7d46dae0ced8078bc1774f01d600fd9c817ef833091c90486d6b0fd75c0c6598b410e698fbfbe01ed576b5386d2c042283ed687b88db508fb7818a09602c720c2001302f030cc0757fe0d489b5f68efaac6345e800251430e4565345018ca4d1ce29e82cec3a438ab83cbe00af920551181d29123d141eb958f6853f00b4463442eaf136e8b62f0f97ccfbbc1993e05fd32817735ac2566784cb69e307e1dfb8d901eeb297ee980731fb41c3d3eb930ad2418b282a57874097f34f2f2c6b3c3fa13ed2ef49d79bdc77bcf55a956a5004457559b5ad5bbbac4a7b843e7a92f347696e189f53a0e9c1efca1f851b6dbc130079c1bee2f27251c0a96c48db519b4bd19b43f472f87f5ddad56f002fe25724dc23ef7c264de617a680b818b4df91597f18fbce85f5259dc0f42ea111425df6fae51f34926af06b75b176dedac23806185645f116ccbe9a92d12b26123f02143f21971a8820baea20ce01cbfa565f975cf612385e74b2313f46b44a841f8c69f735d53e760f4f6cc67aad19f597970afcbf0f7ddedbbb80c86b10a2a0b0284892dabb63f3b96251231b62bdeca5b3d95d4de286ee2223a79ecdfe17f5f64f4b55f603b8915b17f7eed89c6ecee68927a089508e1b61de3807fb23c17724b1ee8f7d8dd686191197f9960d606edbb57aa3619c565277bbef8ff24f2246b49ca06385f11790a2c7fa9b9bde42a93358be26a934804b8c2b114d5001fc6feeb37e212356cbfd099cda42f72f624ccb0e47420adf2a605bc228b6a4c1758746d2c134f8d890702ae221cdb1165e95cccc14d1f9b0954d5b3bcfa814d9d0edb0621da552b684ee7221d9714f0c7c66a995b4df9248acd94097effc2fb0447ee562c22083b116cb3ca03db228d09d957c67a8d925f50293b88cc0b572058d1c4255d6406d26472b1a73b2ed8fc96a1d952349b16668f8a64f30a9357bd560841d3ed34f36e61f540a4cc266a9a5f940a91dc6bff0fa735917e9e7a7cd9ce094c1f45762217f78f86ef8efa1064295f80827e809487e40d7fe6d0f0ceeb76d36375502ed8a197411f052803fd366a8b969e2a1534e848d3360e07e11074784e1085af9c26f9afa6fad48ea5fe7a2b68860946266d74eee71d485a5c5d72c7b7945c41f22694e825b6ed9cd452d69409f4b78dccdb145b172dce6be858d4938003be149ac498a49b2596d1a9bc4c9f7547719da77221ed3fd77b2df493099c21aca54ad0e62228fc35dba9a0486f822ceda7956b755edde522d646b1369961fc9d1e7f28ef3eec340e2400ed8ba48d3b197446588613295af22266f28acb30094a4b6f91d5020d8a31303581d4dbb172b95ce3f2d869ce7a05813983a5c58ac4eb2695ad0350aa5bb2f3c9c9335c1055ae9dd1b574b32bc4afa916a996d0797611ebf7b8913be8f0cbf4acee2b46b9cb009f66243f3cefa3a6bf80f2c6a7168837bc264a7e9087c50afc92e57cca43c27232cced59466978525332a219bae8ee96cd5924015ac0ecc8e8acb04d58d1170144f7d5c8cb47ca61a9aaddd62de9bc5cb89210e507142172f26bf6c98cf86172525df28fe4b1abd91c332dcec130fecb190a4108e2accfe46d8665fe4fc1ee11b1ef8aca989e0a1913be3ad97ae6a4f7bd6dbafcfd6a81664623e84951cafbea81fd29aa9997c4d63ef3ebe0b43f37ec3362fe9389322a0f47838817b15f1410bf144ce16f9726e7316ce34c11ef7194ede899b5d29fb0c57294ca0f3fe61fac1ae95603b52d95b565e43928c2e27ec3633da6d3c24d6dfad956960b2c1013e5e7c393a8931bd276ecf43beacbcc275b53cd9da184af42927884dd94a324a037dae4b765469edba13e3f2cf9fd48c23bb148c86fbace962ea9fe7442a93f677f04f42ec647aaee00c03f852eb2e6b4b1db166b91421742b0b9b3d5faccb5a525aa4fafb5133a60d407aa8f6f42f80665f5a64ca82de043ec343cacb89a47ff9fb759960abc879ae28d77f722db94a1df43ee09028a5724e88fae071eb338cb51f9ead8b20c1074f0df2a6e120eb2772e6c3b26d877125b6fb2df262ca3e3fea9207fd12a706d31fbe3d5871ade6a3928faf04cd7472d8a9ff7f693e96d0b156951b8f8e9cdb2ece5da69d71cd196501438a07b4d21d5d733a6f2191341e6b3fcfa0369e47f465fed79800f4f634d1dbc7accb508b6c76c0d1702b09073649bbf355038c7385f88c7385647cf699ee0ca9d9f22f5d3acc208f14d907b7c8884aacea1f22ee3fa1487379d56e15bbc8dc83df53be0faedd6d21e3d829bf4a530c01cb0ff6b42e65b0c40397b38fcfaf6a7eefbabd2f92834d33bdc4362afabfea700723a80ff273d9fe83d94383baefb9afed7b5ad715830da4670bd6128f41ee89e509474524e0c7400c4af8554fe44a6e913d0cc7c2da45d8ee203c370238548fcc529dc96d1fa3850db0e8f44bf2076ba2795445212daef501014ac527dd16c3a92a4f6ebd5d9c1d7c513b4925407f441d314b6379a80239c02b79286a120a31affe6bf4d6d17ae58c83f47f6304422210a7e43637f73bdb15c2ac9736014663a591affde185b785f7855267ba894629e0043c48d78e17d5888ea627642c77a554af3bdc2de0a8749fc689d111aea398f686f32ace12805e55ba17ed4686cdf7520ab94ee29408aa91057f115fd2819121a653b7c6d8ac38b32d2a90e584f925a5188dd7958bb94f694b0347758347a4b78c1988de11f5249230117f5cb7e5b41ca4ef175bb61037937a3bee5327cc0fd3c60e76ab5e508a0cb209c6642f2f7d57b5eb99fba69a04b542a9f225eec08322a4f5f1593ad5d358e02bcb6287456c964c0e9a72686583c146eba7b33054833823313850126dd3ac37312250b4a0c494618292ea5f0086f097f7f6e469d560c213042f41bc28ed09a1bc480ce45f06ef2552824caaa918cba15755e5043bc095cbf0c39d3e8a06b6511fe91da23662b4328dbaf1a68920e461f3201a5dce6a14ea240f7c1d84537de8c84706a96126dd9015322ed72d19fe0bc8c49d1dc3ed823aed87bb6ce99bdefb377fd5cc197679868079f8fba7566e61c7b21e3edc09517706f4ff7000703e5383dc06c39db5cf7b4a0e3f5764211ccdd4a2f34c84215939c4645f69b7549c12d9f8e86aec95a844a6d5b36639534bfe04795e31647c186ee34f6b7705781727240f71ca6afdef0bd1b8db9f5a70340da8cf8c9898035d1ba65a83e97e5d9a0fa59616cfac5dc1a5208799b269720d147153f76d6e452ab520cc5edabce2693a9dd325cf515bb6929037bc59ef246ebc378f6708ab6babd5c07e865843a2f502d1bc3db9ab470a659968318cf650cb4cce2e5c6c4b9d0f6bc5ee97e2df649fdb7d7d9e0ba77cc3dcb57db118d326ba63690ebebb5f08ea1623d790ccdfb3009a88d591cc7fc2daaf640e4abf1b9353d6ce1c2f8eeb123c2ee2ca0a4ac86d4201b99fe3aa37508e10f2e21bcce04539cae19cad1e7f5643338629ff34160702b7a999e6cec8136ef5279e465022b48d13fa6a03d8ee51fbbfbbf50bf99c4a2fd27a2aa45ec16809323b370628db45b45432d62e9840c54139ac42432f9d3a2efa77d722d856a0b0c51bfe8fd02804488ffff33c1628a0059b59bf25cf7151afbc7247654f2c7be314bd8f522e743f4acb5b2831a1245b32c28da06df67c2bee4fee0e5c593825a91187b3076c0ef8e1c664d072eaf0d83ede3382c8836956731c7cbb3e7cc176c002e13f27a949185743b612fb309e26256a20ff9d6738d402d1a85e495e1d7285a32543a3c91413acc503c4aa697fa944ae032791b1fc9dd2063aa7f707309c356a6bcc137870e8956b022a8920dffd604d690ba2eedd5c03a95520089945204a7073f772cde3029a4ab1afa57d30a035d99def644832b1b426aef66eafb048be11a22695a57e6637f0b49b4158a24055d7717f0ae815f722042def30b41f912a0f5409bc2235c024e7117c7c8a7d445f50b42a3363045a32d1f9d47ba62699743f1043a93925d7826e0b59713f17565787c0448d83a328b95234a8b121328de626c7845a940ed2926f8bf96ae31310e14a9662f39d88c1b48aba50049342f2285a808df12ccbdcbff2784123038d601af7af54d9526fd8d114a32f8e1344b0eb0b2dd52f3a80a340cc5a04775aff69349a0d6da7044e790c2f0544f3fd907944648c504ac7df6af408c46647f4070546dcef7f8a734f0200a2053d506b4c637f21d8ca914b07eb88efff5564561413e22460139abcb305f883b3fd786e75820bee7ce7deda7c2f574b2931cebf01af043c5011062fcef3a33fa354d82cfe2a0733aa421dbbbe797814f253dc90bfe7ddf89310472485baca5d967c40bca3dad26ba4f11a079bcf89bf6923b75132238426d5f0a535cc817173dd278529551b02a0a47988322aa6fb0eb69ba98b2109fae1ff34c8a6d1c42d4ca8676609fd8ad04bdc0560010bd57cac3462e1ada4fe28c03c61c96cd63df2c970f589afec3bf5e413f3447ae34ecff2f64f6172a1537c05d0d02cc7fcd98eaccad8f62f978d7d41fe77f35d347a41c3c742af850eb452d92ade5e04cb87bb5bb5e340a4788578c3fc639a2000cba73a946f77a1b65d17e6c8d0783f98c7461108fe5bfaf081cada74eedd21832e2da50f038ff4d79681d6d1dc667f4f511a332c0ac20b23cf5b4fe14eaa5de53976609293146e6c3ec3d2567aeeaa5ff0d6885222e932e571609c0cb2c8b081fe11b13492e08deb88706407d5120e370406391850b4fc8284105f9062a5343aadefe7b941e07a4cd0158b5cff481e0d19619b37881cda1848861fe168e8f5ffbc55f5e0abd89473d58c13992964634a774fd2e79c8507023d921cef3bb0255ae44b785a8ea72871b106b20bd417b1050fdaef4024e3959b7edd80584bdf47fe2101f4711f222fde235cea707a8e295bbe18203b8c410e4a376280aa51ab2b013bd9ba7820291fbaf663587cce2a9898a6b898fead4176b29719b3841439bd338cad1695e1bb033b186d2405cf246406656cce27cac2c11f112d1b832be47fc3dca245a7334cb58b98286e6bd949aad8fd6c0e42ea90902241ea3398dae7920faf2b3dfc44da59455287929855b241a5d2197c2dc7a519a2d829948353266ce0ab61c4041f21e27f7ef6367a8cdf79121bcc1255bb1f137374a1dc385e6db465b164904e7e0c0907c767defad63ce3ca0863a27f542f00a355496a8f417364804f51dc5f648a9175d6376d373edf2e35771420309ceef5ade184e834e508fae8a44b5554094824108541ed4d26658e80eb28c4d8babf1bb86e1e159f0308d3157e9e6c5015ebb27d7ba50d210dc8e3cbef7103b6c2f78dcd112e7adaca0cb2d847b9dfdff9d489d67795df195d7b84e1b31aef60da140403572b47f9228ced423308173ff965d0c6fa9313917a880361f2df3f4af176ddbe6c8c5bdc2e0772420736047e7f89c12e6e60fbc25be28ada8fcdcec1d19e029fc44180b9c4dcbfb111884f153b0999763224397982b17adec835570290668932cf3cb634bc441abe3b12a061d9109d095c362b339e909796b6ee0ba4a40563b6a969f2cbb08d5a93ed11223540507bcb71c484bd413a3f35c9e782df75dcba17b2256d6b075153e8bb8c3cb597dbee53fbb14f74f96778bb1c3ff0babba08d41cda1f018b7fd80a3bd5c306bb49b5c81d15378d950a16e6f2a8676868750d77fc2582ef0194e2e345305dcec8fc04c274fba90a2c8bf8efc0887181165f821c5527043dd854d4f328eb4c04c3e624bdb0ecd38568ddeb6986f6b384a8981017ba374e2097c00b823de7dd5a75249ddcdcd97c0e62694104d6240d9c32b247dd192fa0420b92c231c59ed3742287d1472e8f0afc89e9f2aa4d3e02d77945482e9fda16508ccbdc229237f83313b62a76ee6febd633b11fc2ca58f25c931f4415f38fe682c6e9ffd0e503d14d564d6bd396fac0374d53b4473e8c7c80d85efa06da774305c019c8bb58eedcdfac58855faecaaac7b4fb32739c97bb8a6e89521de025d7395f8a03c198fccf23b746d22633e98516f8dfb7284c08e649c41b1c3a83499beec609dae24f9bd8c98c38b099e49de781b4683bdf03f2439c1174148a6c46330101eba4ce4ca11b62231abf1668da1878a29e7f957a812fd53a9b0aecc5142f39c1fa8d1659652e425296168806a5048411140da4bdb07de0c59f51fcc0661d596ab861ea6f46cf7795ef84af78ec3a9e2fbf7a6f959121cebc3c036082331b3e79a6b96d0547af96645ca8da31fc0668c05e87b0912c8416f3a48f6ad11c31ab8d9a842df071b14f6d8c4abfe96914147c45564dfb471294e2dab3d9a469b304eb62d0084eec0fabfc5997261555ba9de042573d93d758051069d324da9b62fca579b6c1e824bd001deecf3eeef29b920960ead951e751220f71b905112afc357d391ede000fdbdbe1e8e30a48babd969b4eb7623a635390dcb2621b4a125ab435c6b817cf534bfd2ab4f8c13a017e994eb768ad870145a6dce0e362b6cb64d4f19811962f7ee5bc7bca9b3513764cdab21a08674ee947db2c17a0c58b02ffe23cfe275a5e50ecaa97cd12d6176483ec983718774e0a64960923ebcbab53264a0743fe838d5d34c40979a3c23eae86fbf4b0f8b2ad6294e6c01c93e50037aef6031fdb1dbbd7847e5a79e619606fd0bb4751c58bc5733c1a31bcd4f29b9473f2f3bc29293f78c2193c37afd49743fad0c37e86e6c3f0545ee153491b30f6982985be243709ddb4a5e963c377bd7bcbef33b7c8c86a681566a52af438a89c3db25050a93010b6e047da745055c409608a48dfa2eb019e9712ebff9fbc2007ac8a66fe16a140bd536b3bb61ef81ac2aa19c8e936da7b55288f8eb5521cc11f360769321e3a5ecda331300d8af0d57ce605b9cc5f7593737c394cf64c2ed1d76d627b5da14787b81770791b5b8a95d41273f7a9e5c998ce4707ed3e10f456a50d6190d5187a59bc6d8bc80f9f8f44424abc32912de8c2faabaf0f8cbec7c92cd1c9c56e9443df86c09e0bf99aac10f91de781b3ce22c0fe37b54917eebe0206d985a8176c44dbd8fe5f8b4e8b5c23de2a48bd407276fb16067c82ac3861f93c7a4da665c89f30b88a4fd3e56a5f294833ac26b022e54d5683a8177faf1899eb04031150f77c2c72e665666a999c4e8b70e1c252d26b761a8271764c6d955c0903fdfa27b68a76faf5881ba00be49b448a3525df721f161777cc2458ac99ffa393b4588b9115ff2fc4c8647983724a89abdabdcfbefeccfb3cab80b578ab2caca5d55a56a3d66d25d4a4c41af14fa84a79b620c04ecee451c3ef688527ea235cbe6476df74431e0e17deeefef2b4e8e917d26a89cc2dd3db9a994de6d2a4f2358d765c23ad43b37e0c18fa0a1f8045e7c65a0b065a3ca9e56e857cf13f8ada5873ca6c9334a0c57c3d1bedae9d14a9ee3d65a0de23d1d8dfe905231495a2123bc19dc29e7d6ae8651feab61bbea244f137ebc81f9cb1bece561a59ebd05c9cc2a8ba17a2f64293dc6e703c9b4f13069db94c0bbef970744398966bb6a0c6645195900bfe89f0db4a8aeb996edbaafff4efef8226d202d381cd4ad57e9bfa53967ef86803af766524e50bb8357e219443401030a281fc4d05804294121ac377dee7f460aeec4f7b8b1cad99b711c2898251a8648483307d32eb85901aa1a22de13c4e2209318bbbc586ebb584e88c4e50cb608f799e79dfd7fdd0eb6e210c49046dd8322c37d04109dd6cd6e02d1c3445f4e7b05c45a4690fe67c4050fa47d8bb6297c79811f663e6cfa32cb6b783b47eaeddd6ba50d5cf1a6669fec87cadbe2413b255f1ec577573a83f1ca2e1c37aa023dbebcd3a7b864636a1a0c024dd1a267c52d5575469ffe8570d1e84164de7d393cf3414bafd17d7a0c9f32630e2c0c5135bf1e86e36cb65b3932e4410644235bc2bd995e9c7f6ff117874e42222856d7af03b3f438d21d923a4280d47fe67c48510e2174a1579795ef7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f072adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe980c8592e5488df256192c999e92db8fd302db8cd8909b7fa266a684e37e45f8c0916a33340d063f7b05679e08031e729d1888444706f04804705da5966d895d0e56b17d142eb366c8007031d14e34da48c70b4a9d9a0ca492e696a7bae45e1eae88fc0d7a961832f809527d30bd3983a6866d42f66a56ade23f543681594db626318a1467a5e5caf10b04cfa942d079632560cd7a29cec565fd1dc9f7ec50814465765f2f6eddcdad34ffd7cab559e56bc0e75e45e192f85e9562b0771481dc5b9025dda4d7688e3311b0c17eddc501133b807def33effaef6593843cf5416e983b0caf336e8542214fc17019a4fc5e0360864b92806ca14d55c1fc1c2c5a0f0fe1c43f95064ebe41691b2429011cd1633d7c4a460fa444b0b26dd4aafcf2fdd70ec0a21d2befa2bb3b536c386da3ceec79399baa9ed6eb812ff9d48f68254edae9ce69f53291177b1476127fe74e45eefc04080c47b37177f0962d62647a6f5c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e5a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd550925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089af0a4808d04c4d55378751ac096a8376b64b1a704c82584b0ee590212cf413013b42a7e949a6e21d66b30fbbb4a22deafd9e0ccabc04f0fa2907fc6252fdf165ff6e0283561ddb33b140e14977ffad57163aa28f7e2e7ff15e51e1475b6657b60b1c4d09da3a719c689344888584ef18c52c4bbcff3b7aaed7752fdff7a47050c4cd39856438b0eae2c0155ad15e281513959f7ccf998784e83e803b9be5b1b4747e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc00854115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac637029cabd6297c2a33d33024ab77167f9d7b2dafd5445ee24ca6e13a366426d469ebc062c88c456c1fe15f28f160cdc2201df68f7ede6087d847cc41df248f87df808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f483d36a9df119e8409b7a4f5329c8eaa64a8cf049d354347333413ef6893aaf38b8cdfe2d69ad71d73a0f109978f3d848abd20189e2c06eb70a21f0289d038affa49ebe56e62f7bd5d8c0e443bf22f9d8e26d977bbfda385e6daf3b9632388a11f4420a432ec67b424752538682a0c566e2d3b0d5c33b5ffc5be383b8d9c897e067f5f0137b3e4a429d4802b8a53cc8c8eae23e4192acdfd02a0e63baa6a44daa415cd7d7a2316d7a4ea0bf21d1fcb93564808a31a578c7bb35182d3dacba4e0ff8daf28b7266cf0ad2282c95dad6033fbb8a80ac8150c021dd90f56da50d03bfd3a86060f873296ac2a3f593724b2f69235226c46766d4f70576b9af192d3f1a90f595302461e01680afe2c7992cf023e671f26df0bad7f0934d29b3ac26b88a5abeaf085018d35bfcc092e46aba27b5d9a735adab8803fd075fd036bbcbc5b19e7ed0ef70f99bb7f763a48ddd95d5990e103bb145eedfd0a76d19c122374be2782b30d237bdbeddfde4aed01f007264cc116b2d4be2f398a7cb74ec7a5bc58ba74636bd6bc7965d44b018bb155f8319a44aa06fd3c1b56096a4cd58cc83225fc98c02adc57337f58c40aae15bbac05a3ccb364e5adb1d610a16452e92f17830ce408593dc315efbca5067292c86351242ad5efbbe41a8bb5a13aabc56a2bf301c29bfc2e3c8c15bd676fe4de0e63ae87a87f718cd1aed74e7d6fdb3a6a21a9ff1d98dfc0f720574f76e4b173761ca2d6df9a46d556415cd590818a92a5b50852bda1875659eead8879efa682fc18a3c52df6406d5bd872698782865574e0617060e45416dd7ebae94d2ece44d2b1717e053d238f7358a942b97de9076f950cd4b0105a123f400ff78d7f0df056b1162516f57857f31ca24cc8a78ec4243d3fe094285fed3cbc6dd8a35673b513c4887341c145a6d9dffda1afd6d498429475354456f9cbcc70cf06c9154fd1cffd7801ebbdc0f3ee435e8507e32fb6f95afd670c0a0408831d286fc8cc766c9e488fe1fc7da0e831be23460f1b3da17043d3ac1371fad0dc2472d80e2a1ef38f398d17b7f0277e7b016a65f7ce7d9ca3dda30ee3a2c4cf630a9223cb11c007598736c1834bb21a4b3118392cca391b415b372bdfcce53189c1b6261d50df715a256ce361f14f64590baed5e0b236f00d4428dd88920d4d6a6355e528ff8463c79c83635adbef2521941a30b7b39351a8c952f0ed4af3841c0571100fb4244174cc471feb65b292c6476deb2f1e465448b289a08ca5c34e45502a99ba69bd0dcbf7925bed1907a9c9a786309e853aa0c27bef061ec07446237c630a975b6630d258ae04953db187cb0875a6da244e25c54dc3c1235720f945cddbdd247bdf42b02a9cb2ba63577a5dbe073963f6d52374c745b99ffd92bb03c9e51916c42eaf94f92aedb15d24bdbb2157723d9f8e0b8a4b253fb0fd2acf51b0edb9784ff399a06ebb3fdd55fcc3a22805b4c3feeb7775b020e36fe86072c2f07d6483665901562f68fdc13128daba58972cd1bda66e0879c6b3e9c4d6cf85843129ab7b6a5b3266599afdf1c582d1d52f099eef9d7e16078b11c83382bcd092fbe72585a5ce9e38728e6cd834171c930992558a59536c20afe9a18e4a55c8b09abac05e20467ad46ebd7381fcdae9d1af6a71a042e5cabbe49997b923f4dccf29e472e3e7ed6101fa9628ffd06c29717d780b7640621898ed67fec94d6ac7d649e4df205def975acee5a974d007570c209546e55d573d2857c8a9694f47c6ba01dc09630173cae917fa81b0c6606fd2a311c41d9206e2a3e4abe6ae81b50e0ca47eecdfc643839576f750c11c81e8cd824d6c9f83c8d7207956ec8a085cb68a5367dc515257f47685a99d0b0838d1895bd4fd25d14bc6066085b6b0bff6c8b97bdc1900367f20593679b3006058288ab37d97649a3286611a0ed6a865c22203493644bc59254f18725f38fa319b5413cfd6f738ccf18145fc1fe29eacded2513b923fb54bdaabcc00125d1cc5aef859c008dde879b4e6a41dbf2671f0127a468a0a183b43fd0630f0942bdf23a74e1662d1ed835831ed601b3a18f0d37ff8754c2da3cb0422027be695b604b444e976fc7c1ef895aea7833a6f16b0d7bdf9d3d0d1efc53579d7993c3f686f9f5589ca3f88c879fce7bba02412e127db4e7ef90513292c50ae428c4317fd86869bccf871b237049181e7c248e62bafe8eaad94c2627bda68e0017ba74fb1b2081ac36f67615d789f3c1acb7aa0e745bf2726cbf6457a5a8dc1aec7646644638b7955100b790598f8f56c8ab1ca5a9ba9f0e84eb2d641e8dbbf71a89daf7fd8c5ffbdb9e9626565930f5819dbde647b5dee811de6c416489d223edd6c77874ef91eba676c6aa505d07d1e1f3fc51ef381028ab42d2e16e53c4e6dda3a32995ce501123b7dd14619e9e9cfabafd6bd6c072bc19ef4137ba9a5c4b72ac3704ec8f45a4674d51bc17724b95fc77fd844dfec8a7187a3766df49f286e9d7cadb00d807023d4f79f374baca4fbe656ed0a7669c7950f5519f18b2ab2c8496b24e893eacf49e021369ef61c7e0d2fbe78566bd6b9081e434924a0eaf69bca5e2b6ddbe6a59936cc58960740d1be05dd60887084e32d32d4a506144bfa7a57a8bc2e8b84dbff78346315a5ec24c032df7ddc9d74531a7b5f0409c7d236da406b1803d3332d3287a71e9f6c74faa67a311a2acda5cf24997cf1e6666a756a1689a0af0cfe473803047c383c9aa529d41220f4457bb40730021f69ca59ae5d09bdafef78caa8c525bc8f452224235345edd4cd7d049155a3e1b28b7ba6c355bff8f1f8a34eb2db4012de32a3d32aa55a57ff058e06ef7230d5c197abc8cc831a6291d80e2cd2f9966b06a040f6aea0fc3d33818e3d83333179f223faa6adc36ede4a79fbc55ea83ddf63f6917e6983748e0a954652bc907db171d61e827f2da60eaff09f83fd420ba10db807715abd56161be9c37accf5046457264982acbfbd01d6586b7d45167bfd98505fcb790e25d662e1d2b6d4fc17008b74f4d0503fdf9611478b6b6744e365e8726190fc5dd166856820c0fc8320aa6c7baa0c129f258acd3c40d3ab4b28b7961f9fa5c23dd966a04fe03de5045712a7b3ff4c99c4b052493c9842f690c76b77fb634e236cea45699b34e7813a1c8044f8fbc2489337fcddda6e5f3d8210a8164de5c23a5298fb7657bfe90a9d796f03244f0e85ea0caa217cb60dfcacc61f433ec5f05d5e0c6bdd509d2386128e695a810b4f44a5b27cf9a25ea2b341dcba6b8c46f33135bdf9ec0af0c803113f9777c3291bf23cc4ec404c018050fb2047a6e400e8efb57d33d1b3057a48ac9b96e7e5c86531acbc18664752f5f1eb957d816b3e99e79edb4935839c8083137da30b8ee30fc0dbad724bf14a21e20fbe41d0f69550f1783d38d96b93860b3c8e1b44c218c0c27e990fe9bd5d530e891dc85d4d43f35c81d86df68c63677eb92c6cbda09d2c39efc10e8316fbf211af228b575f93222346008872e8d539742d5379b6f15a3396af978effe8e2f2ede54972a91a600454bbf50e5606ef0c9b1c8a4197b9cfbfeda690f33fdfac683652095ad9000bc9d7c9ff6222f1b586e02dbd9d2fc0a6aabd81bc908bf7a2338615a89762b19cc4904cceaaa343134f9bc4187e79f2b5dc79a200673180a0f6806eca6d35d700c87d91ed8663e407a759175488517526e43d7b2c80a8f0f7711e6e51970586bb0faa5504dd51ea0c9e0f2b960b4b2984ad2d2ed2ed8b2b69a4e200c8238d6ac9ade0f588ae477ad934278b1ecd0d583d0b4bd24ddf3da22a942e6ac2581defbbfe7b96cc6e3b7dd3fff11e27746d53794cbbffb2f71cfc71e28e6d498f8a20e642d77110843b0251aebc344d3475b2d06d9dda4c9c4b212e756d1d2c96bdc714c875abafd2ea2e07abb1393f9b2bb6cfb5c24abacff548d8f70c813da7efb7b7cad0ebb4ceaa702c882921d81b80ad417db76aa96393d020ea6c1f39a76878b9c76526f3483e0f06c833e8e1772d6034b77ce91c1e3b8b40bbb9ea9838beaf02626702fafa71e45513a7d996352037225432e86faf88f6de773e5e1ea558b2153acd42ce10339a94f28f8e5fe94073978b938da47f43a81f2aee8bd646180cafc9a3ddb7e5402b6e65520504c6bf912edec90943d9eb6ec37665aa4801a687a3a0d1f03d68e4ad21f81b48dcde3dfdcf66cc56ebb7b44b2de3fd3dfb504956c128d5b3025db2f3d1a19eb5831b44729b70515c2c9dbf4fe079889c0e0a90e2ea14264cd7fb83692b39bac3282730ba8010e8e4f2038cf05fb47cfc56e0a0cd795e38a4aebbd2ad735fed84ffeed9766acd51922ccb50c4bb9821e40e35c3878dbfb9c11d2455b06341be4d27675a319e6af1281e9ca17b9d8cb71540026e867baa8962e88cfbc128a201403b5bd9a2e145021f8df9ae6ae85459cd808dc869e0461f57145a2a70e74c01ed8141f7365249c322d862ef1d1667be2121db4c2b76bb40364462dba12c6dedca01b4db2592dafd5437dbf51b8c2a9fc85d98ce80c7e7ec33b9094f2200baa58b44bc122f2516b3bc99bd4b16c6069aa0e4b87a7750139973223b88dedf63a10145a2e0275c0c8b30b859b994dab8083a20fb286b75954e26af13b1bf38508050be5607c34efabba939a73e964a764d7a5f0da71451d714d412d699dfc7592c00a3fcaca8161f6b4558835d3759429f727030dfec21dd1636eb836d6c7e4a06328e491de9fb5717b7da9dba5b331a9e43f21bf7b54f578d2f3f14233918e8d983b0f626536d36f787d5203c9954cd5fd25db59d767b7ad13e19c42c7fea8981028c15259ae28f0e5c81e8ad7dcb0b2e0a0d2d0814b45cd20aa3affc9d456fc109bcdb510905075244d3ed44fbdaef3de29a2878c0e736f637baa4dacb3328dcd02b1ef0037c244e39c10ea459c03af9d80bb5660ad368884fd9ba6df4a25434479f0e1f0bd5c00ca691830b1f39211bcc5c5162d3fc4568c095c817b6dd10afb501b1546a9e9113bf79c6c6ba21dfec9fc6e68a4d952b20eef55f3fbe5a054a26351ece8ecd1c90ba33aa204c3e2ed0119b8d661111e31489000a1d86739008d649533af66aa613f17f5e7d4729cca09cbe02d8705ee931e9c7c57d40a282d801bb5daae4be549a8db8cfe09f4d326f8d1c2098696ab9677a799713133a2ff68a4584dd6a3bb03191fde1319376ef79b8205351b804cbd7f1a7b997517dac6f3e9b4f5d0ae63f5224da216cb46e92d7786c659fe318615226a53122a6686cb9bfedc59d6dd86962ae22a4ed2a50187e302aab97780558ddfa7f062d90b0e8864899f4a8c20ae1e2938863dd190307d985cdaffef8880673524be19dc02e86516e25250533e6bcd2557e6f6fb6bcd63dd44a592194f3c29fc089f35cca428268c27da601cfd09bf5c3e5e240c0e89e64d8755646bb3e7fe5cf4e1ac61de7e17ce7c15d914ac32aa0ee51fc8dc6295c780aeb26e05aad2dd40a88dc9008a392837aacf4d73e1bce7eb26aadbdf212feb7d3e15b7f461b5a9938aa7f5b18799130d9edd6061374238fb3ebc9868c7bcb918e7307cf75dbc677383b1c3d18eeb5afebacdfd04949125554782eca7ee8ee015530e32b92060f9bbb3185174a56321d03ee1cbc48bbf90a3f2d7e6193aa2e3acf25b75a53b3e2e908165c418a78bcf3f22e1fa109f09d554ad515ed3612679908eb31c033325a7510db878ef498f32f32aeaa634fcd24df4722a9e4b9fa75f783394cd86b4d5125e7f0e576b1ad82d5aa513b0be760227956c12fbe1d2b603ad5536e1a665f19b0b574abb68747a2798e99449bd784eeea3660bc4590e9e05f23d35ea063d7cbb4dc71c9461297809d6dc342eb6f9ca5a3df7394a06a5c4fc80b38558fc75498e91efc3fd9eb5569a8da0a838512fd7e36548a760a3235172f0e4250998619a510a0cb4c50570fe9e98bc3cc0654e057673e1b3c20525605426d48159107454562829b84540c8ba5089b706754af181b4dc0d6fcf627dc52819fe5c886e990ceefe27fcb54e4218854fe8d1d5b44f0e51bafea0a014103ede94ce8a985151c3be20f827a4b6ebcdd206f299abc4e7eb7c8636d6f2cce50af1897b44bd194706d88bd5ba466439919dd268a6ef2aebb2b92c35fbb9e9fbe67ba5271e13c622a5ebfdf7d50c8687dde02f79ba3df6d3c6a565f9fa989e1101e40d0ba141b315088e9c4cc3b347d43be9030e5f7038f06b69437aed5d7689a41e2b87cf8c64f9a4cf1e3d74d24de5fe19a6032aac63cee58fc2faa56813d504748338ee30b3c9a51ee79a4a57cd5617105ecb476a0e2cc2876047a6ce76176159c17819b323472607be2a005ecad9869852c05811248c0e2936451cec62392bb9ea6175fd5bc289858ee9f4e9917f0d33e8915a191589697e6fdcb25f17467a440557a84a8f08507ec1a513dca7546e0c2f866e09ccdb6f03da1f649ea5ec7a2f0a0509e4fe377ea7d26d4701bd8a94a649cb5e2731d4f65a0d39be69a345a3de4dcde3a83e7e6e2d5ca1d5ccc8543dc5ebd04d39b5f79f675bb0121a773829a70c7d0defff3290d1d75178b0288e6af1f0829e9244f8627e13b9e3694239a2811cbadcbcce590cc3aaee35208efd03d1b279f49457024e629f498ecfac06fe728073dc69e924df8ffe0d39f7f1e9bee5474af1c84ee1e3cad721a9cb0690b0186c3bb37e4d334bd48c03a38feb50199225132ecb134a373f63c79f8ba6573bd882b8a074296a0b4fa8938e5a5cd4cb41607a30d7820cc20ea76b4a3b8f57d3d2b7d102b58c8e13ad95e83aa195d20ce5e9b3a8cea511e1d9f2a45e4fc9e10748406f1e00daf05c3a9c9f5bacd95fe86c0291b1e5eb2a4ac28881b88b3c8bb76e5ead42331d1161546a61ef666973a2aae66bbb99f2b57f2ef160182825fa5305444511ca1eca4e1b0b38528bbc656bd8eabe7d3ba94dbffdf2670f5e3e10e16f058cb09cfafad55e919e43169c61d6289c715193a995ffccc3e0904e32c7f88f3e1a1ca17dbadbd30c2f84bbd973d3c796457b94c189c731fbe6bcfe9f161e7f4fd2acae024d2fa030db663fa50d4921ab86cf43e3f88c66c81dd458e9f195e50b78e2d78ec2491d5a4aff9995466214cd952fd065c49e2dd056d4fdd8d4570308d171eb8249f5d2f3f07ca575a43ad541b3e41a7b10ac5be3132ea267d47dcd6cae93e3572232622ca99c26abd287753e70ce5793c9d5a6a283a04b010315a6af0a137fdf38f4d5abf0a1f5cbf89fc78a40c7ee23c714c99e36a8eacdeb0ad29fb2369a6d080253e203a81834970d62e90f3d5d96da6fdda2531b290e58fe1a480343816019707c6d9d255d404521a9d0dd572bf2fcf0514733b8320c388f5b2bb2d65452ccc9789ab00df5cec3f2c39d4a4460f03746be65e187031414a0392ce7f08fa1c03a11aea73bfbe7075c661ab02d494d16668233b192be01a974c34f357758b65a1299330410d7a53c243c36f4a34560dae35d3964c6d7bcd804d2b697c42972fc8b7efead1575db7b1e0bb6c25443fdc0e4016a217fe6a34386c784f0bbec2e3b4fe3ab7b7a2dbafd76f75dbaba5c52b3b5035993b21e3b4652322e676cee3c17d2ca7b4f621145e645d4529fc22eda824e184d7314e20312dceb4beee56fe1613cbc77d16c3c35febc8f9627d35c52ae9903ff26565a5e7d67a157372d58383ea7dc07f738a5d4c0fd388da3d57d02b44bc37252c99f05e88c2d084690dc2333d637d3cc6fa025941500c330f2138ead46f10a4b7bce572ce83b201b796c21d6760c73d209dc31b44c36235e656dc819e84af4908829663744a8c05bbbd4546f0d4f69a1de8d4d07061fe3ba6ee24c37bb2bb3924c10d3fd410f6e2dd73bb55fc3150d4303f041b7d41be6d5741afe6e2c464467c95069e77af13f64b6d973196a20577388a1f7e0eb00b11beab855a7768894b126c6a6ddb3b5f254e9a047f1c094adc10e0fe12cba9b565f1c12d078a454899bd4a8339709432bd09f5479e29857c1540ca1243b84546596d1e3313076f9252dbab8747e2e4c366477a43737847f07ccffeab2ea9eac654242e9b80e8958c830e8440dcedd20a9720b155b4f9be80359a80c4741677242bec64bb73f167cb53c46255ee05cefc1374a1571ba19564e090cd8ec7292f3687fb14cf1107a945d7d80b35835064630146f3055a9affb2eaa779c81991a80775e1ef477fe6ffdd48c21ff0e4a2c2c7312c22829d445c7f37a9dd38f54b5afe6938018636b10f01f9df4441a4355952f4ebdefdf01513fcc7c7bec33e791f35b7e3cc41c040a87d72f3376970c9d29efb77d1e4b364c7db08d5957dca1e648cd39e0fbd591a6b0f6c571b0307c1873d9c9e1adcc0478a1097c175e59f122e5a41450e4ed57e41c89f35db7480decf4493abe7cb76fd83410363e71117c9f5662b0854637ffa68b8d0924c2ada032232ed17960200aada2006311198133492ea4272fe29e5f61ab5addb94b72cf54ab257db45e2d87dc2d1ea0864d8f5a091b37807a2d296b29ee02640e29279e4cb2262b941878bdb109e0dd4de09fda90a626f25322e2a8bf82171974c2640ad7a55496dafef868bd9b6dab0baaf4fec9e35a693db6df87ed018c8a16dd63416965ef4ee16f9ee6da46e3563172ced95d7e8f034a0bfc8cb5d3b7a0f7310b3f91233f69fb89586371c81feaa14ad0baef7bb232ff600a37fed5b7cfbcb8cd197add6b763c26f9d37dc5ea07bcc74cfea559f1bbe8ca457eba3127e050dfd31f99b1f23a1d4054f5648c0ea7da9884d9aec865743fb4baa821ca5b565d69a140ca749a5134b06f17f05c3728e8cd4d1a2a51b3b512276a8ed15e4491d02d1e74ed8ccebd7d01d1fc31f62f6c8836b9fb80c9ecca90e1ce5375e4d29b8387e6f7f72b926fe20fb495043e97b8fb4b477ac3d55b9f20f89aee0ecd6e84880c8d0655df20eea591e62a04c58141255c161a285b7a890b4025b5772adb20adb00d333cdc0f2181480fb7a56ab878aacfb322d7c1e59589673754c6b937934a15afdd945e33a03c1b83723514f53878ea4f6cf1db606f3a670dc9080b16f945a5c214b5e847610aab856f4e4676d34da2c098429b0442a950c8b86619b80c3407c18c48de55b10b5b73a5dcc48420bc7d99d2bc0a111827a085e75256d014366264bc42eb6ea203091d0a07520a8d676884a1a6ff67b5aebf513f78c6e3e50c880c36d1a38641e0e8438b4ba6754a56bd76767f9d4a4f123178c93dc1bc88d990a9c6bdc302674e69f7d5c08ad2fc571da8a66f4be3d27fad82a6399876a8dd8de6683bf41583d9f91ad57f8ed53bd3c5371254306f2bcb534f9285ea28f085ebe3eda1915b0b9b407f46b4bec21ebb47d5e09a8a2b1967cf319e654b46a813148077d64dd805566a786c0b246e8271130db08952fbbcbb6ba6682d3c8b1987fd9176a6f0dc7ef3a7f4128e64a662a349ca10585f2efaeb2dde74fe071cc0ed0199278544a864fd6f1107389acb9926b17f07bb11188ade4035f3dbf82c4d05106855a4fac5f3af758c8d3ccbe0968eada548ed262ded22e2113a0facd2372661a4641b01b5fd429e5b9804f507e5739f2c2cfb5b6a66197980ff575f08c3f9098c6b27b5c65b4e4f13fd3a71ab49535b3737dc69cdc63059f43fcfe5ee4eff4fc51e2ecb8b234695bb14f7dc69c0750eb7cc564eebd6dd7291a99a80d74bd04231bdc0bcaa2c2c5eb827e98f36d58bf4ef25628517cd892e891314ac7781506408597848fb654f5423225780e46a89a4c2e8c714949714405d02b8e89574f28fc4284602de15dc60627055e12084462e86f4c85783cd1d6dd6de881451bc2fcd3acb2972641a7f201cd4af0930dcbc12f65fae8a53564e10ba0a75e5e1cdbfb7e681103916854d5b18a0d952a036354b398e24cbc1d8cc942cab8d1776532eabd8527e4ec97becd7cdb987676840e0a541c62ec094132ead9dfe4b5f688b4d7e261c674b630484985fb35760855c33ab516f42b5ff3011094ecd16ff0590c8afd79593646fed23cc8a28f8eb7b3241bd7c28fedec2fbf3354b75301548f6a10010488cfcef50f1e95043e41a97161d84bf0749f534fc534e6b6c09e70fe5c39a0fd76ace43a5da6d738f5833370ce917499b4aa7bac50fb6b24dbe192630ea1e61a1ffe9db5c4c8af104b257b3269a561b779cacffeaae0513f7c03e8353fb6114635af0621c6bb31aa19ca2752364bb61cafc6abc44a974ca7a56ae07bf33e17b8d1ebe27257d52dafdde2ee8361b4b312987e6635f5e6177e622f88a5034dbcc4aef54107ad01e6ad735552240620e1087ad215a3a072e635eca8601838efd5bd90e1a7f1a8dfa50facf37245e88b4480868957eaa6d3f02711d5f45b7cc71aefd08bd0dcd13ef422a9db045e88bdb2f5af871b6fedc31d6001c206fe5acf5cb5686104f3db65d7e3b76ec333ec3f51ab56f5ab5befa93d48d373cd668c77fa4bb4ae4f393d1cd1ae8934b985e28e5b2b95e1c4852ebd380632e86943b14d753de8c8ef085635d14496dd55945e9d6ef4ed319ad9e31d519bf0c40aabb3b0fb4831b7bc1884e8ead59f12e8e3c82a1b158618a719ce6b24c3c24e20751cc71bd3fffe2380aaa584ead6e5651ab0bdbc20e93e486d034c9566d553e6e715b34dc19274e620f80f3697bba7780cbcee69e8223016a4343289f5a384521cd403cb4884d2b1def1cc5e6c5822f5df0d7425212b6577a49fd849e7dace85b41c396d59c0bb2e4ae15186a67dd4863a83dd658646c279446a87a2c9b7eb13d740f772b5b45d01daff8449bc4aa1c2262277f594613ec011035b0c7de6fd7b7e1792769e2e52a553e4d538a2f826299df8e3067a9474f1b72b59ed5ffc6fe162c76ea86c04ab804219c93064c60e2d8c432dbbd289fc4dcb7eabf157dfda464cae7760a7aa39b4a4ca9a50306ce5c7cd29e062495429edfad781f68d15852fd896c032f7317d95464d330822200009c8b0de5dd358d6e8215ff88042e41fa82562f876a2dd325002eeb604a5011dd9b3b8ea3ef989c595e7862c70bcb86a7bbf97ebd57ff95f8f4f694c6cf50008fe2c1491285d860488e46ab054425db527f579b19bac5e557cd76a51d9d6c80d3c7aa444cc44bc12f9faac9c66654353372d089f36d48054a567fa64ead837f8f733e615d9bb4fa5f7557313e7768442d0166c61eb48a18ca2a786743997eec032d2ecfa4096b70a852e4518247c0826a9d2fec1832bdedbe16d9005a3fdeb57d79c1430678fac184da899f7bb6e225b7d07ead3b222ea018860d6725eb9b562f8a1122520191efa0312171e03b2977f327bdec189a88f85e1a44aabcc6c90909e1d2eafa75c37bb6793459a3e8bc5edd18e967309364050fe14c91bd687788e145ade7d7a47137ca64ab88082fc7e580b5e23f8ca3293d48f9809600872d2e7a57963eb736d5c88d1055bb6d0e955b70eb8933c5a0a9479bdaf8a5fd0f11fbfcd26fc203e6fa2a4d51fd74ccbf67a73f99275f24a63d6803f38173ec452b7dfec3ded172c38a58c10e90c82a99945e47ef5c68fe55e67a96afef882c37823f3b5f91dcdcda010ed8f97fd8fa8f6f1fb443993757fdeeb4eb10a8c33c61f9e93438974a7930a7ad60992be1dfec94b779912d99fe37c1ec78f2901e635870a35f38a4af16ed78422c3909bb33863e183f07ffa0db2d90863eed170b04281b8abe274dbc0596502a4dc5ea36d4fa6a99f604c31072c65aa4e5d8bcd487e9afa25dbebe4f3cd6418c392ea7a1b92de61a39e55e6b243801c6a6adbc95d8b37ae0b6d4478650bb367a0196e0daf8eb355ebe3a7ceb0a90f05a2b0a75d1bb4d112254b55a38ae01fb34b0dcb4b4ef6a13cd33070da5b12384abb0e3ce8a108dad5a42976d0105ca288d763ac0e9bc28d0c0eb233432fdee838b4ae3d57ccd2e4f27be8647025f76b760c2afe674f2ef173ce81ffa6b3be971842db2aa547ab987300e191fb8d48f802b91d5cc6bcafbab41d2902364771bc9a1c6192a07b38a4095e214acc1cdde2db80e16ddd002fc26a6771ecac78020e27b2656af8bc462a2d302703569bf7c55c7d21ce420048626a97531b5bf514a3d538548cae8dd97c2d608f1be9a86c48f5d8ec7b22ed05829af59cb161d96465e3f42fdb774328593d75a94d04a67437208106bbe4cde6c0ca251cbe5ae5963daf2f570f5c8cb7b7e727251c7efb734c3a2991b6abda1e68330fa3b158a29b40dd63df251635adbd0afbfc1c61b4acdbb66342f6912f86dd8858d596893869b7088137783675a090faf1c6b2965e549dcbac82892c8f03e47d7b2f9a0829785566e4c85f3a1fd8894607da30679037a4e2d32fb303e86b515e73068a372f4ecbcb7cbf945c7c8cbfac90badee5bfd9ce79079e8ad17fc94bfc02b31e0459db7470ee2f25ef9147e1a936c93c43f920feda3998d3047be1bbd79e3b4844e365e07e572a0350b68fe41b805d9c5700e063b1cc296e0a4c013709962c7fda74fac388acd9ef543a8caf6c29442057c8315f01549415b855815aebaa0b8f40d229ae3a9c1bb37212a4cc9d4555ae883d74e214c895d255f43105c19738c446f533442aadc1fa7d6dd42878418aa53c1397e3898a8acea7ee45acf7563e2aea911806a274cc56a17b53c6c15b5f1b98b8615044e1eca41566c90a7cc825a5139fcbb1ac175ec27e66955d22f3237fe588fe69b58403588e314421f69a439d4a5f020d3045863c150618f2f76fc3c9f17a2b8e3967a494ae47bd6157a89b27204037bad95cba979661df671358487460df9af994d4742bb9345866e93221e6f5d751ccf5e990fb2b7b7f3dee136fdb7e8f529d82e5ae33375c2cfa20b764a0e10e59bccc5eb5512ba72b413b6f131106080bcfad63c381bc9003caa3a6119335cde01f67e22efcb57103ed84d992e3cf34cbd31e7235144b12bb7cfe9613a8545264fdae216de04497a41c6d0a0dfd7ccb0c70bf63849ab23dce3114ead732dc71f81426b6119a96a2b7f414350973213871b5c065a41d0a570a1c1166e9a8cf7d8d370a6d5c46105410b4d695bfb1f679926dcf945b58e8a21173ecd97089807470a4c649410ff0dfe566c8acd95baa115ff2c756656f3303cb433e70a83509af1d4e205e25fc760eb43a06f565a3bc8f66cdbe684f36eadd480866c38dcac04d7669d222dc3cdc9265fb37308d01e4834768e290c7569f92040343ae4d2e0455431e49b884aa5bf315579e4da086d4932f4242d6cba59d4f176bb5d3e69dafcaefda11cd4e66a48d9cec9e0baac2b05913147c51af2702bf7d8847fafdcb54b9887f27fbee2d55a4e121a99b63b8c0f871ec4bc2ac312ce2386ddef99d0a02a5263e22f2cb92823522a1a44bf76b1f41f296440e9c56383de29ece63f1c70a50d08f78ca6ea3e9e1434588d0c7bfe142aefffe048ac9217b6a9399722ba15f59b04d98a3a5e831939277b0c9c3164ebdcb50db925461c3d75e29b97e6d5510153970fe90d543f0dbc6df293cef1884328fc04429dbc4cc47d14f78c42ccf9f6d7f9fa4fccc10282a991ac5ab167879c34e94262ab64dcb1df0bb1d4b11dbd1a080814ad9c705843c66e85ccfd144cc3fbd79196a690a690e1b66db6aa9819d8b19edfce0065b2b05e95453f98bf8c4c46fcd85f6f3302b81963e648433025c2c633cc7480dc2db5a6d4f099ccdfd759bad67afb45c8daa36c668e23733fdad6faebc3ce3331eacccd193c4e520fc0a15f969a7985347962eb1db280bf6358826f199272961b608cf52d5e4e2b09ce4ba97c499a53298fca5ade8c60ee9d429a734b2b6c93027601284086bf53bf76ec1dded8a840a5ab6926cb06165982fec264b846c142907310b3cae85686b8f3e1587ae0e18d4d3ec1e5088f9b326b169bbae99d9ccc768ec48081f29cfa220d35bc9a1e6c21f4e4d10cd85314b21b2d955e641003f2ce53bc89e1ac74c0238c8978a21abe58239fd5d5f60240a432539ae37d2b1d310791f56102fc79cb0608d175f00113e0e4c29221e4c56a91ea12fa998dbdc0b9b17c3bda1d246517d484d34ddb46b39e25e5c27bca080954b7b6fa2eace8085d1209cb6ed7d5442e7ed73addf4d0b8c133afef5d64423615f89ed0f4dac660e133d9f82800d3d59f13ff07f5b37648aaaba1aa5d21565f3da261ae30a49ba87c76f0d6e171c84650c93cd2dba6ca13a1c87edcfbfc91317896452c31a9d49c4768f1b4b46ac32e0907e00a73680166339ff62595dd2d2eed3a79fb9fa0c2e8250e89539f6d678aa2e5e51e26760e6cd9f2a690fe05c3bd18073e2d8634640075f24ddbb3de3d7b33104bea0953829dd084e9e32daeaae8e6d76d51bddc5b813d398c4c24e9a2cc3d8670962885706a3c0b823f5997cda7dcb20665ab0eb5205800ff2dfbaa606053dd3d3ba0e53baab68da262a2ee66a31ec0da36e894512fca6d43738ba1b97fb7f1d9eddcf584e3c87847f829bdd1833e413f72d3bb18688aba68e3ef7d3889d75422b315282f34ac3b8b2eb6ed01924611f8f9ab475f19e0d26a2a92bcdde5bdcb7d63ab1d7995e6e35e8caf6bf197c04817fd1d5d33dd73ded6b96ac59c6b8dd91942afe907683daf159d9c1e1e196336364490a3b8b607018443c0ca386033789a55c0d43dd35793e3accfa4081868129a53433be0a384b7d8c963785eaea9fe237857cf5ee3e8190e1e68383ef0ec19398a01c0753c2cc4e7c534bf421993ebdec4f6da8b7e2d29216f056939815581f76cb2da7d953b0c70f1e401a15c171ca22d3893c60912fb3d9bff744b165555cf26e8a8e400413682eb475877e57cc461de52eb9181767936f966be96c3c78ac168349ad57fad62bb4f526dda4c38c9931c283ff5280fb61f2f9dd7b48b672916adada7ea137863bf3c66c5b111211043736d92866314cfc05e4781f5d1b2b8bb8a096913a473d2a1c8a85b1c076724b9036432f67a86845122ebda6f57cbf83b1902e43dba134656d22b90c54b9b607c509ec6809ce46ea797b8b588dc4787eebb9d26d26a5a603c19588b59ae7c509ccb013f7741e988612a892ec4d95b32199ad04683994268b5e6b775c5a58b238dd5f8744f73fe4fd767545e0be9c91cb92393b6066597c18f9fb057c419729201f079939300ed076a382692004c2e421f6c98baa65d3567a10246ff2d2260b289efd8cce4454202d8d9fb5c4bff64475a8e25a2b291b8f68a9be18eac69d97c89f9c8759d14fd2fd4b9b240cee8f3bb7827894a8af681539c0562c66a64d9ea8736cb61cf21ca3855ea14371ddfc77bc096dbed08b23bc5aa35320e365fcba820f5f943810e569cc77e84d50f0f4803d0c3aaaf28261e7dd9c0480d99795e2671c8c04096a2cb9ec2643539861cd883d282a18b45bfd6dedccd83bd75ad7ed9af4cadfa6b18b52ac61ed9b39084a85fc6b7bb51c8c801ba9aadf768efd153253e9ed1ad9cb8284ec6759ce43312e218e61aa3f9a4e56275c179359c7309d52353258632e4fda9e373aa17197e114244e72dab0d22684251bcf5e49c9770b2db51f08f32c01fc4b8e354e46fb289e2f286e01e8f9951701ff3576744af40384eb799c1fd4aa0be76c4326125733a10ed408fb7483dc7dcaa3058f82cd3ea1ffcbd067660d1751c667c2f66223be29f8e6f9e46673a4c634a8c670666a950b42d1011ad71483212ed9b68e751c408fb5761eaabd2f411c2581a4ab29f655cb7ab177d940b5bc8338d3ce67f0c853842f3422eb8367576b208d4fbef20e659e78e44d97b45231902930346f3282de25862cba708fc643624dabead2b63361f24443a23bd9f5ffcde3a7bbd709043142bf85702189686c8ad6009af577449b75da0eb79cae44259f669cdf599b65d924f2266a37c245fb3c42dfd4966523587f03c3967bf7ecea5b3d08b0812651f4394743cef3688f3472157f2232271f9a53f93b7dd57f585386f673b73f1224749125db48a95b6d3b443fcadcde8a7095aede3fdde7c771030b8271598d9a640bf22eac3f062f04df6c4cd5bc564a882420db94f9178decb6ff52cc03de3bbe3cb565a4a2d05fad0c868810f6e1afefe6b988af1e38e08af579f577782bc53977fc4967f3d4c4a41e052fcf23b129526f2f7232092d912bc9316a6022e14f74293e4e3a1edfb430aa5c983c55645cdd6686d37c323b787e87883dab22ae862fa105e8d23bdf47b06b6ef19f65cd11a59441f5288d058b1e181e57d831066b6d51f8fc4091a64599c07c1d48066b3ae53d9c8abe947a6830228cd96c6b1863b4ccc70e48d05d836df4281c627c05283cfa3f4ffef4585b09825ca1ba71cceac8c1de4adee64d212b1282afe16f3a9cfc81adad277e68783eb6e17b38c10dba890cbf35413dadb43a95a61d006a178016e8fd1b1afbb501e25d2da6aacf51496a2926e5ab701658c4239128be58edf673f3212e30400413fd4cadbbb8c0cc0402acf0d7aacd94ba110e94076f989b1879b6a5b57507e3d1348af7ed67eefc7ff0e2d2362f76d7454782c2122cb4310019d8e29205b4f3a2fabed86a2805fd82186221f43cae8842f07349a74d00098894413d7bc17e63172577a0a5c02b20dc0f791155d34ab3713ca978811ae74f189aeef88799e0ca0b90d4eeee3cc0747ce1b1256955970910e8aab4b337afc245905978f3a7450d96dab478b64596d5e50f41c6bcdaee697b90458ee18045c62d3ffb2057f8dbfd796341785fab814ddc1de4e665ef5d89ad80c4e1cec60a57c717f80b49622c441f3e8629825a531922c94e21ec0290936a33243d2d8e954ca853089c9dcb729b22c04800404b4dbcfc5a349661d8ab9f8a450b705f734c8c8d1293f3b5f40eda072a9bf30e6d4b5c5f6060a27d45b5146b95112ee6af6ac6602ccee243a19524ffcd9a2c1e7dbbb591f9e15e7716445d975a86cfb211022d279806ac5474ebf5a45465dde7bce9b087858741eebfeb06306136ce0779fc41cb94499a333c704d3bb9cf2d53b076eee74f0699178e860ccd3aa5a69fbac391458b5e56c4748e61d6118892fed804c34eb6ccaf7ad8864af9e0dddef659d7682c4b4289104e130051d09cce22c400f4b03555d86e51a3c982c162e32d586513d7cfbac5525833f354f4eae4d2864266b3776a6e60b53db2a52539cc90317532da9f2ad83e7efe6fed3e60b2325fc0f85142611e483ff5a462c5e4bac509d846879185b9a31d65b4f17da98d8e20663155ab1080fc2f8e2bcbd66ea95f89d1733ed3d2c9b38b50b09ff0690d28524a6a41da0d34b168110cd563bd13a6e2b3f0caa10b90b6d3701207d0b9341eea2d6934b8b7f025d210c7fb8d25f23228f1ad7386f42f5fa99b4c8566e828df0003afffed660cfb02bffb60b3cfd6b4e231b3756d489543552b8ea391cfab900a92f70f93d2f447be537c2803440e0c9bb94b77f99369d1ccfa59d4ff1f3c446602825a3d67e539f317c2670bce2b3a952ce799dc6dc0b135e2500384ddf21960b5b941f0a2f20b778765e3d478c160ca1ee24de9a9ba814830cef3438381dfda8ed2ccbb0a7d179910b788631f32826a587400add477cdbd67823d3e4bce90263020db6e3115dc11cc6be35737b49054b91da56997a892ae69d4d3b5fd4478b67c0d718b42b72afc58e4d664a4d067510eb4b8dda204074216d53fc0ba430b920b15c3a3067898543b93f0bca9a49f7e7a2c17e7961cfc9ca188077055b9842207a46fd88e35df2b8f3b97648f35eb4f6c7344ea93c56fa2285b440bfc7010dbfa8f236fb967826f6ce7936687e22faff5a9a81fbcb645e51c5295ba88a48fc3ed7b60566728eca39e0b0c3970978fc1f8d2322adc01341bf25a7cf44bba3b5ddc310065eea1bbece732fff29d2ef9563ce40dad0b1d721f41522abc48a9d90d72e51dc34372fdf088f21533de01534716bfe72be2b65fcc17d26b4dc2185f49a4fca984168bd03b79083b1b8fc84995fd4e1610601819d740827eaaaea0cedfc9c7c92fa782821c520b58a8a81f85ae453733b6134e779bedfff4c7dc98e2141babcd6b05f9be152b7a8ca7b83ae36c25d3ac9159f6f264f13cb764f96a4f406e66d0c1ac51c3772e3111ca7ed46650e7194386bd9d1df96670c4886f457d3c451d01c35fcbe6a3011ec97217bb563b337bf1b72c1ddee2719b52b07bbbcbcd43cf635ce144f28c9d3ed9d92ea1abe4125866eb74f80b9471c0253f134e99e55cd1b6326efb3b98d6c73a4add44ef591cf0430d07e292d406e067bf22166685cba24cc5f33e57cc40909eeaceff199b284d05f958199b443fe18822e2d648594da5a1eb8181f4db01ea1768bf31d12acc93eaf16c94ee13dd14166332f4367384dcce8eb2a3e92b08a109dee771c257d2c17384378444073db4b0e5ce046eaeecbe8ff73459d0f0d94080867558b2a06872aa46e5bd4f784400af9b53a92dea1eb8f70c4ba0b8e5868d6077a2bb154f98b1b7b6609399fecd54c3d3b569310527df83f3b4002a11f3a03aee474d1f58b8d63f10ab8b99ca45b791746dabe66672e92b598ca57fde9226dfbdb4418d2890d2db1a1e61be143cb3f3889501c9394c4b9ab985782c4a19867af2f786ff8a8e0cea34ca497d3c7fa2643092b5dab9b215f56cc4e2124d8ae91eb4d399328ba86cd3f7e0357cad9d7ce8433460a321d686362ec521fbc9ab9a734a8ac194fe753c33a9079547f84cc5b46afdba2daa983891fd3ac10a40240392a5eb00072da19075136002f58a4cb9d962036bd47bcbaf3da38c05a7cefd64d8e78803406bc1d780faa74bbb05b34adabe7f59c8fad9361b8b28434f34314ae8ede381406c49f055cf5f35d6d4caf7f311c8b5fe3f7f8b27311b78b5b2466c72b1c2f260336521d57d678c26b87936ed51ac8ba7f1de137fc4c8a1fdf5a8ee3eb5c3b527a9721c9890546bdd5a14db358e9a5d59d0253d74934bb0178ecd24dad80a0e11351c169b0157b87abf0d9b3f719e26a8fdb259e34f6eb90c150e875e0d1fd9e4a5552a71f64cfdfccf8678f842c9398fc67d3669bd5c0d37b056146829bc1a850c86f0d36edf46c9fcd1a0554383b601072a97e71582ca2f1a7927439dd4de3efb5ce0137b972e55750f4c5b557cf5373272ac1ab3157b4489765da4dad7461e1b5187b27ccb444366d86c4c90bce17bd6269324810153d124c0792994d457f46042a4422935648684d5e303acbbe9cf199d197ba80224a0c96ce20fe078a904b3cfd205034344b1e0cca5bac4cc4921d79731abfd18245048a6aee4b7211c90c5e274485635054ebc078b7d490c87d5967dec027a73c2b08e1dcc483e3918a22a7ae8cd23ed8c6cbcfc8768c0cb04fc9f82745d77152bcd6a1a24f1c649f41a8d43663fcea2f417b4a4fb5a4540cf0a28c3bc2a079653a2bf6805dbea566c8eb6291e37fe1115b84af8ace523534be79cf9a106f4a9e9b39670076049df5b8c77e80525f6716c301546899fb9f525ad515e23952a7a950e3dcb8282a529bb8ea1e9667d365fdc06b70a95daecd9238f0b8139b0bdf2a346e2d5ca4f36a7f3bcb80e2df11f88e234e24cb40a0d44dbb656ab9f56b049a6ef36eff9c32e9ddebbda6349f4bf3fdf129d76c5e279a7850202f5c32341987569676d3299fb6f900e2f7eb59a6d6f93d66dbd242c418e57ad5fe44605e7cd0d60bd3b5d5014aaa74f6a8b5754472e820162187bea7e35218262f4810477424cd23afc49ed2228f5fb18b6655dfa0999a52156f20dd88f4a3f6bcac949386699bbebb5a5cd47faef06852ee5a20eae5b2ae5f93fa4cd4a596a4c5f3be025a12c04b9237a40a89c9988f3ad96e2d76f41a5cbe8b3c189e2721fb13ea823e83e17a17f9a180efa3775ee0e92ea3a33f2a3a5036f5c3f09e858b6e0b157af219caaeec4c91577254f35ad8f38f8049cc87deb56a7b63997a691f8dd8914a88bb9985cbceb4f9a536f1466922c0f026d8202c68562cf06d9d9c9c0dbbef2c75cd42a7cba533e4b60d56036c7b37e8913d88bf94ebb01814ea0b74fb62e66451bc914e7598bab5c1ec504d9491b8b4015f8ea0cc34153c4bf2f446ff2e8e5b323a6fd6e3b219c28d091acdeb3d06c9ff607d9a494adce596c85350d52844a94d05a78e9de9a8bd9e49cd1a285337401b41db4e99ce08fcabfc130c6cc2c16f63ed9a0952b3a24c6f423009bb9180663c0aeceb441a6b92f63ee85829e1fd88dd07163e13f52b75022e7417703ca5f26b5fbec2dcb87520b8c59796740be6df03b002ed98b80b968a892e665ca4a170b0b554e4af69989d022b7a47310989535dcbd58b799d2731aca00994d744ec1d4d7e18920187afd401affb21350774cce0f6bfdb161ab423e7c09a6b516e7d4454a73462b0470c3520b831b4eaeab21d7e20ae98362ebc2f99d276b93cf20a052ae48a9f93e3a7494e89e83b8d1f77655d507318f15e99b597893ce95d13507e07b646bb3730820a708a84a525ac40ea5a6be6d85010e15317d46c84bca241e1406dac0bc441437c20e5741651d10f583c8d527f440b71147cf7f8a5ecc71b708d1cfffb90a8a1408faa7e3aabdc550a36aeafafd9452706105bba1da123b77de53239d55858fdadfd8716d1b08aa7a42a7394780554d93f235220cdd3851cce89567d1fc9c4668ef0872940e761ec9a230741bbfa35d369c2343c89448a43714af64e79d9339d9a63e5a5ef7d9f6bcb14fa9a4a70f7171bfd8e51f8fb0aadbd472dc43330b56a00fe1a4529082860e671f9dd63f27a86c4f8a4b8e69f22b242e8d5fc6d8df935d66916486d949c7f5825547be4070df025755b6ff9257428f4ce4292f6613ebd8d4ee733d3513544380982385bc79768b230bd8cd46b0d7b501b63a2f6c40586d09e64ab3179f1e937b2b662b887f223e0d7b2dcc4591fa692cc450882dfb362db6838d55b5d7840e556efff2a5c57263257cc38a01cf17d6c637b29efaf669da6ef4662f5ca95a71116245f820095abfc52716c30051c5bb8d472c87d7981e901a95f711f6b9c017131457ec9c9dd2a548f9bdcda95072a3e22491af2dd5dd946263065041093cd5a39045c1bd8a1a709460b3dee715e8a2027fbfb40796abfa17e0f70948078924b6e19181cefb009dd498dd17b39146bcf0a8d111cd3e386c47d9ded3934436568dc725101a2e5686bd62d8383bd4dc9c9646a2ecc8e24904bbc7376162ccb9970200eaef6374e4a7741c1c0c4bcb12b008c8cd0909abcb602df650d8a9e2393566309e45f9c857c6a1bca1b6e81a2b2be78facbcbdd3947c572fc70bd1ab39d6af5fb441eedb78024d007a9585ad7d03debe81f6b3ce0ef954bdc6a72666e1b300fdfc5ecf102714c9fd57df76fdf47139f8dbf8ae59863643171164c16baa5953c17821a7ce5feac673c05a56b287453ce3a0bf5048f0999b7711604d6cdeaf3cdfd661fa21fc5bf18de929671c801f00415eaecd35abda33d813d603159e4265e6f48286a0d2e8b3c39fad210765ba9d3713b52eec682887ab5fd888525b5591bf1be0fd17e29c8db38bfcacb0d8eac9f63a82a4bed3eb1934e41b47a028a8ebb278e365d12d005b5b967d344726431459792e6b7d29fcd35230388ad78142f53ac40090af417624a67cbe7ac05db362a94c6a20ba03f7f3c809494075ae7a324f838634e68e9ed4a01fc819d846beba212bbde11951c697142fbd6e2a26f97c7cc61829ae057e8e78de05f00429d202aaba3f3bcc44be7451138b4f2e73a2ab95efdac72285222c850d40ace3c606cc74a8c79bff90325893d1c07fe14dbb2558710a9bc74f2a4defc561e8079818ab5ff067144e57e10144e4198ff9595a3f2f6cdcced4638f44a44836ad429e00f728ba1f454691a781181a647afd53a3411e1276c805e2361ce08852054ad0f9d617dc472b0a9ebd199d9972a051036d32261674c5616d244960db0f07fc35194264e671a54a7b73b3d1c62d4ffe1158a266d7b8f146f6f19a166c4d0a1fddf68d7359fa2703c8fb06b76a5d720f07a62cccdaa469d5e5adfd5a781dd33a72becf791cc4e9debbdbec00ee68254ca4fa1a7b740db4e3be752a5adfce32075d3647d12b77627641582e1c9b8bf31f2f4aa65dfa87c1159cd1ff7e5682eba8e806de5ad0c7fa6451a99f18d4c6c0119f270e78ff24462a9d73c086d5b9929a66cac01bec36be2c3fce5aca123b14e97929a031d982fdfafec41fdbf0bf3b912a66eb3384899435b8361af5b58dfc0ee9e25e2cb11c052eca4fa0528d6dd8babe28f3c45aed89dad9b2abac03dbba92e4d0c97d8f8a4d93c9a4acbdd630e89e3c8a816b946bb9fbfe3d3b45b59c861acd82cf999e9335fc1941e0d1407e4fe1140d16d4b05efd8716185bd9c66544cd927b22e3271d6e3465dc6b3bc0a7ea74dbe18e8c589101c32c4e04b199bc13eb433463fbcc56649ec6e4db28a6269017af37b973b0a48abcf80e39f643814adef71933482c2c03398dac5c845bd8ccd7ab2733e27039656c5bb22c4d41cdf32907e34c6ef77facc59b323e79a49cc44b16a6cdfd05b563e457e35e8fe9353d0642967217a1cd2608db733cca3c63538491b3cb21be7cf2fcb0405a9f06788ef6dca61682ad3399342bfb81e1ca8aea10949d8a093f0a18da053747764c90022a7264625083f93ca237e9e0638eae434ce4a4e4c4a766866bcf1dfab710ba6f9dd04bb526cdde8d3d5f3319e02ba929d91f77d0edbb29a5a34fa9a42a248417913f8e14a38e3b7c6669f8546a6e7483202d506ea6d57d01e4c5e01f50e5e6b456ba6691132c64cc76fb43c3cb08d73488a351a7f38539c31c611dbbf2e78c95ec748f5585fe5fb57b5b33fba4b6055084ff20dd0c9721c23c004a063de38e3b4cd1c2c5014bf9cab582cca5df74cd75f0308983b5e060e2a3dee2dddead5a4f02d373048adcee3919194498e837d09cc19ba74938fdc4dab68925dd716f25f98402c8d984f8b8e14db72809960377d159990a83d7d2143460a345cee07134fab4868aac4640f013f220d0afcca74dd68d12e83fa28588a926b25028a2191cff87938123f768e4a854698e3101be414e0db629b422abcee273429b89b31e6a9842bcdb117a02934026dd84af0cb092b754ea1009886b5acd59928a192e3f4f9f8aa1d9bc5f082c5740de32e9c3cb3089d3a540e91f739e84ad737e4aa8ffd36324d56f2752c132e169daefbbee1e40c00c93a8f7893d8c4a1f733e29b60881ee03f8035976401790da7f8fe38c4d7be3ff31e2ace4e0b69573abec2132af37c32dd2f3c2f148378bb4ff3f952970c1c0ea3019d159a65dd1ab7b3bd96c7574739bd667de0a450121b4baec7c39da9d0f0ba4a159882569ec639700cfa5176498e13fefd234257a9cbc1ed0ad7e0b570b852086d5566474a5aa12749631484c31a86a08a4caff1ba898209b77914b82a442d4ed7e022b250347cdaec5851ca59d64f7569f6aa247945bcf7ed8f637bd8980d2f225103d135e23e763820903e71e2868c93e2ba48f2d6f7e68e0a9ad67a547d4f5f4e50df95a6daa3d5195d652f0e286f37d2f55b4b5cf3b497dbac2ec42078b01a24357521f86a002227b0f8719e91427dddec936c67d4e21c8f06ca04aea59ccdcf3927738663e51dc416321977d2d7c11740efeb88e6e2a6e09252cb25e976281abab64c1641356d666383f1b51ae462e8794f617c9ed7750b2d79e863b49a6aff515e2ae67b6786dd1bf683a788fd85e01edbd427cc60bd4c2699b0621e76374435d3e1bbd3b0a8fca1fdf065b890af28c45321efbf173a74b2fd71a3f52bf4298f8e144eca9fede25fb27278a7e8de7bfda2a14063150314da75b45ef9ba345683a65539666a6238822c5b7d1a6035766356802c6bad3b09ce96826f8b216c33360c716b8f84716e7d4e97329323cf829ed5063d951f1d865750fc4b17b9d57d6699c02763cd6e8d84424149886a3c9a13067d7d9a199ce3ea3ca652340ccfc853e9580fdca11f8590a4beb228d933f5dbf321fd39c313f71eda5b41da4f7f0bcd5193debe1675676541322fced373cdea4d11382f2d513762c0f8803e7ef80c84aa20d57048b962bf7af99d9cd184aa054f1b408c82075dc77abaefb64f0a1986ec763fd257fbd3fa719532b4ef48a7e18b720394cf03084bb70535461f15b87d0ed6a8dfda62b322360d63a1693fa5f78e7717d9670c6f9558210cb7a9d205b82476e82f1c471a848103b5d9d63dcb5b755540b45ad499785c402563d8970753e1f5e524ab52747afd695501bd65e08855cc18c9db59a121fa0d623031b59a528ca3f2ed0346a04665e9dd0ef5ef2c6ddf02b4a12472984485adb027fd12ae6c60ffd203b1a4f4b9e97b9322f67ba46c15371ab74dd3033d6b6e1f278f33c346877d2807ab68847500bb8f5b9eba3e79f1de563fc2cc9cc468dd2f6d9b61e81a4f0ca421944b06d3a2b8a284d9a2f4c884f673a457d23b688c806bec69a77710de9638ddca4bc35c2008fb2a9eb1a8f139e447c221c0ecf4a8b56f931295a0cf1ba0f947e1cf6d2cc24809d52933b9fe841d462400fd571d158258b2ff0bc09799d43460f62dd8bc51a76e24d3aec4d1c5857cd09d67472d8af1e979ad0f13fe6a4efaf531854451eabb473584ba11f7b840e4897d7083425f3cc1f93a8b778ecf13eb4a0e8348209ae36d3a17782737d2d26a809c66656675dbe02f80c62dcee1cd2b7174f4de32968e83977fd3db02cc0cea1f1fe5645b51252e8984aa30d78d92e9dbb2c454d3e82ef6b387100247cc6fc8ba5e6d0c150d0d692dbf66671ab144623a2067beacc60cb5a0c8d47ca7cc857210f0d9666899244865706e0161b966a0ea6bcee281f26e17ab40b6d0941a5c5b4846dd0320576e3a67e3dea6d2d5ab62b3fee64140f0d9e384db2243a03484357c196e7d0db8779f1174cc10a21a2378903953c02ba999fec120b2d94a08ad22b90a2a2860364e1bd9f0358e766e4a774886c5aef34c7dc44eef5bc1dd0143dde6a08ae1c62207d73588f0dfb9370fe6b69fc85a7d1ef53b5ee6d34b68a01d11cf45a45f722b831d99605954c0c477a02346cb1cfdbc2800e5a7fd3ac4cb657f9e45fb3270e9ca8958c6048c54d3302747ae3e8bab8e68fe2211dd4bebf47d9f7f3a2bbdbdc5f6b8e7f32b38a40737f39f33433e2736e21a828b7735ef129a2bb3eb65361bac3cfde530567daaed88c6bf90344ed481c5558d9cbddbac507a3f965b4bedb5dce112ce461db47710fec750f21fe9b682d6949dc1b26341469355942786629880aa8a7bd84544952395acff3364cd09c4b2ab0c4663fadbd4aa789c7cbb2f0bc34c45ef62c9f7deb39ec6463e5184d96f7eed1b68abd941052b57a53c95734ba1abb1c852a5c91e586b2f15871386ebfad1a13aee6d68dd14102d11fffe500c06ac37e3dcda5d55bec034de80dabce4d570b8e492ca135d8714ae0162c15b7679696355e43e460bf3ecf64c96f2d6ff1bd842dbecb9b0344c88153fc1e9565276a10f708c9563d41876457cf0c025a25d226b3ddcb123d06f445ea497c5ad76093cedb98d3394b285b886950aa6ef6adf94db7ca35f64a912277cc077ca05dcc595e91d2689b6e27c5bf4cc7cec6b1480507402c26a5915c802c3f5d0098f913b739413f4b77410d7bd27cc0fda18e0a0789056624a1af61fd2f20dbfb51500a961cf21cec3422f9ecdc95aa7ff132b2e836077a34c312da5a33955d255831b9941322d26c0a22ae4653adf9d3eb7e543adef0b030245822f23ab19250a89a32ace9d4a780aa391b85261477c2cd6b1b618fbf6848798c875c9069c760e9e1e310b623b949a93d26e1ede97f7627413c8c9f377fc1a441687ceccd7667f8fcdc8eb87b9a061c4bfb9a0cfc87f57d77069967c1975660b2bcc09deeb2774d3d00307a941691ef32853a410577e8010fa7eb087e220eb938cec1fc74488c56de74a5a389173c4a6bcd5115f24032b3572a712a67619a96f35c7c64ac45a2e652a50bdc1ea1ae12220f0fe74298a67e682e54c8faa8e2eb1f29cc380861fedfe47bc4b78faf52153facd4156719234aa78cec57f853ad101b20bbbdae5e70bb265c05ce04ee328a0e00dddd71a348a04a477fc4216ef0955bdea381e915bf4ff72dcf2f3d6a2dd17460e80e8bb7280dfd230254334e61499ed8903f28dd7b65ed0950ece6a3b047f461dda7bf50ddf1bac14372aed127f4b6bb9d7c699d3cda426311c2b6e586acd445eec27ab7447d2f3653f7cea21e4eeeefc94e5dfeb7692e7382cd073974baf98313f1832e4a4633b97e35e2011116609b061ebcec82c01c0acb3b97e7d0097c5db0a0c0b3b686924e577c731561bd64056d0addddb7f4faec9d816afd468292da6e3305387f1a87fab8c1a5776ce86aedaa001ed2554c0a10b782e588bd2880758154bc190f7c245f3c13344b2c308c1c15572f44dae5c6d070190e588933111d3d94f237801c0a8f35eab76556bbc3179e747d2296592d8ba388428175a936d909f6a468b3f86608d96b994ce1e30f7b38137f94300d63dd335f07a884d81204a7f54f334bed0ce7dc4fdaef27585e25106c415e7f725ac18213c2d51496c97a105241e7326754767b44bb59c6eb3350cc7cf4bb0339c6cf43213e89dfb59573eef1ed8f38a9b4e6091c81043a37501e470d1fb25c2d14567ada2e575ca772076e5cccdaf9209b42880700e393ccec9278d80123d88697938993251e25fe6ba13426ce07eef7ca460c8bda0c26f43f0235ec8f2a894e7190a437fb54127c8a11c96a0a924a8033dd3c60b2cebb4ad08096e3e0af88a5c204a1196ae5d46156f1a81845db61a28c2efe4bc87d5606de72de73bc765093fb805a0eafd2976d97218188214c4ab42c9afe6db51e45a9afa02378e88377e122ff684fae10d809e803374b9a1d9261211f7de908e67820e3f1ece0e431bd62016addd757fc3cd83fa743136ba50bb2b9f05132e27af7190eda701cee566498ace43bf23bf9baf59d2d6e3ae41dbc1eacfc71159dc60a63dccc83f42a2ede8b428722833288c1a1bd7e5015845f18b7986ea935aba87b120c7419bac4da8779e1031e39863f18d7b25b6599d2a2166458f7eebb6b9df32354372f767c6f3038bb572be2eb466f12927725bed666ff52b9076664bbf4147114b3f1fd25a1769244f89179a7df00b52a6261ddb80d72939c6805e1c9a9052cd045e262f5881027ca96ef5b30ffb866c1d1baa09a89585bf617c4857eeddcf95b80c9b08e4409ce01ae815459cdcaf8b0916bc453376967e4fa1eeba53b531d98720712e23fd96e88368b05f0b419ed7c565cb268932c7b945c536c5c3efa39ce9d819241c26397700fde17fe99e5201bc1192262494bfb2d2669be85898c24db10cbe6490ffe0d98d180e79fcd98139876d65777cad6b7dd3afdc77c52c08a426efe32a93106cfa420b09fc658394072430eb1da0edc9851e215f9d5a9fb048d27fd8754a7c625eff85dab1d8350a86fd4121c0aedf394c944b4a44b1f40dfe70caf45d313369d9e9bf5451b8c768546e5071fd5e2f86c68e4e5ebe56a4f71c7e4d4e7f4fb7550e1ba89d309d40ed4621964c4235e2f5f59852bc6c3790471d1e644d87710803a3085d3ac2d4e87605183f628d95a3709c21c2ffe6c53adfb30f0c4f8fc145c01a54410719a6f0ed3268deaf1f5c86d8d8491312af3cb682ee3b6100d405ec6f13194a1d1199f7a7cc194c57be15388be39e19fc3e844b504e96ff4fc2dfcb0c2128fb449c623db81b0a383250b0325f2c21e2e7c062ee67b584e0ccea6c8928079824b2969d144ba6cb07cb24b61358b3c09604cab0f50bf2a7e02ef074968bfeebcad5d277b6e5cdf4aacd148410692c25ba9c69c246a8b22d59da75856f072e9a40c27fe0e727dbea3af95149333b70cacf59e3d4a6fcdc900e93e6eea6d8e9e8ef145d5575dea4ef7046be0e144ddacb4c885c06e1e886349433836638dc83cbbfa9dd66a64d270bde1af7057238ac2faee5d76d2a6c7d84d665429360677cad4f9c70c229736730566350bdf65698dec4f99e94ad02c7a978c90813aa25b001b7810c6ab4f56020bff5421a66230e82748ee89ec4e11e1164f1240c67442c400a062514a47125efac499b2f21c01a718557c176403f4021a14af17392d13a2c0abf830741993809d76f3e9db475c4d2bc5909e8547bf6ebd48d3c101c8a00ccbdb73c0d1fd51e50e3c938b1576d7fe6cb699cce9a154c12d620c3624863c8cc92e5c66ffce3aa29dac3d7703770bee77446f84cb5006b919a18dc9be17c8517cc9b9189368c09ffc12d42106cbcae4159e489904b4211f0562e7ac2291ce7d52ed4665a0dc244da4a9cdfed3160c3e0782f956bb148ebed2110edb8f8295268b7c7ff869e3f068cd92fee9c857389374a601108faf3f9f5858d80795ca951c7b6d8bd54388ba3394dc95346e22b103284f0e58d1725363c80ebedd3574ba55f2f4856c8da8f49496ca8e92492c9259cc7406f7779111ab40b98c342446320f6ac46f6f19e27b66b00ca6b93e0fd84bd5ed46957111204d5ec0b5cf47902abd17ed08d1099abce4b652493179873c3ff180956a31ddd681043442062f18b1b4279010f9f82e016540ab05502ccd6aef1aece4dea94eaa92e21766f9df594202acf6be3bb54dc5a81ab1a76db37fe035e2fcbf0edaff74fb6be2265fcdc380f885a88e5da32908fed6753b6163f7ae4a059ddb9d0a0337c70f07f4c030e99b292e0628e11108d6fb51db228d542441c9108c8175cb2755b69b005dd74f0d7c2aaf92e212c905c1e8a2098bf87c99e8c0deed5ae0c7254cea5b2c4584f0852129256afadc42a37c85cf62cab22fee7ef7ca8f8868a2caa308a90c4c9fed3dffbfd196dc23eb7cbddf91987e8a73ccd8b7705e1facc87fbadb241e47910023a62d26cd77fe3a2356e48a8eabf1c2d4ff37886d54a78cdabbbdc4e119a8aa64f53a8f53fc488d63b3acb9e789139f020a9b80249c21654a2a615f817d11206c2742c72d901cce5f08fee2722d442e7b035a889ebc3389856b55c9388f912467258da2854ecbc7325577f7567b2a4e04201c3356ba82bb36c2e845e265b7fc0e533d8ea3d7dc14c2ce72e349aebd9c3590832601bf867422bd83d47f4ad54da2e1b8a2ae33c8e3d92420fbd729e7f5b0655fd0cda2c46e2e065605c9fd92f91551c66905fbcb7f11e9ed5b0e76ce1c997bc7a847de0334cb846e355f7c885959ab38a3b183087534e4eccd347f992aa50e7eb7610c96b732176998c35704a3199a30e22ddf85c477f00bdec2ff9442b33263e14006fa971d51c521b6aa9cd4ccba16f0036172e10cdef4f9d519d887e138f8b2244533d5d1c9af887c3862441907c4947393f464e93adae15b4c36f17d855b350e1b4982ef1137a8af747a0de1d681f6a59684ddf5f932f3a2ab994a851abbe5f83b7ff8a035df2caa067b6daab539c0b65da6b84fb883fd7ff50f27bf3f298f02851844617e97b5312c9573b9ec2b913014acddad550d73cad81a8733acd004579e872183157bac1596c226103523030eca4a97034b58534cac79ad56ed66e7e19a1b56ea513ee5f58bf137a45edc0e638690ba4021696744ede6de261f443caea5fc7c99739e56bf1e59880466369be3035bd0bc22cb89f9cf278ef6c041ca100285dbcf64148540aabadc542b1e17e24ac822725516faaf2406a293410f104b7902b9319fa6d1332157b159518317e0ee8736a04f5f7d1f23af996c6c2f5c6268d9e3d9051c57b24b583fc5ddc7b2bb8d16b4c52d440882ac94fa720d7e34f46a86fb74cd78900934832b8a558a5aadf4d3c1e45c35fe423447ebc76c2258ce2a4b02fa2b368ff45812dbadc5fab02407bbd2b30bda8d7cfd69fa6db654dd0f41ad0a75eace7953f8f1374a0ffbe4df2239be4f3951053df04aa2208c5388a3e24a0f3fa75216c44a38de316cf1b1a54b4fafb5b775dbe537a60c8c5684299e1268307c817401787f20d790b5b2f978845d592d5d11458ed3a65896c46f7f6eb633ba31bd83c7278b0b62614b67db2ae49d46db06a512e21a327a71bf2a5dc7745d49481f9a2224034697939a3b698a3311962c6005997bac641e3e33a12ff22c3004066706aac920fed8974d73b55544121bdd6fc5ac9b9a043e3534f33f5d56636635eec687ebe9e4619ec1029452b387bb6a0fa23b8967ba2cefafc8290d64295c03c75080ebd4e1e39d0b31c281521347eb1e7130f5703a0405fc0260906ff5522bd6e3c615c9d67b964b3e8284d534e8b8e6a2009d325b506f8e3d37d7924c68e2f37aae06be07468a1978eea4e2d82aa48e6c3189dc1ae9f3761a7e93036d08f842708790c9d6ef4e4aca62981e3cc37f3988cc625dedcb712f3c1adfa0e94a5a3d9622f305c84f095ad91002485871386fb9e19dbe49f657fbdaab1a3af64d3c65efed9fee9f13e9583bd121ffe204d4d8d4d429635d8349302fbd92370ae4cebfee549890152e7a6fa9a2fe318d26548f7a7a45684c6084482ee5157d152d75e9b7398f85d1701cf848d48d8d98839ee55e857cb2e82e14e74ba14f10f56b67aa6a4d31299821889c8b265f8b7188b7654edbd747a53eb5b92e14cf415d9c7e0b416b9acd3117221e632c254b2b0f2fbfd28c3a3f8649a0f4ce9ee0b169f2ee5f1950b6f64e9541f56ea56fa7ab345b7a94cb6c9913873c8e0a3ba9b5c4230bbe3b72972327769d69c4e5c59aff47478c8da3d9a0f5f0d2a0af7103c8ff05775b8d191baac52a54d7ea4b6152e9241d9e716e64fc8b97f81889eada8eb5745b534930df298026bd994b3130167086a1fb896a5a7d02056b67e050d4ac571588276cc42c084b1038f51bf42e474fd6e954a55734be69b3eb12b2381ef7091da1e21284e8b0ab7232b6e36aa0ba49a2c286f62f4e50f5508202b3cfa9e8e015690b6b5b08462bf9acaa90dc6fd41ae6dc90e025840de43bcc01b666989746056c49482aa3c6e2e60630135574c44f8088d5d2d8c150740ae2e618b37a9c8ab3e9527bdd155e788995265a05f86b1bf3ac0f5c858b15cf2299f69f0507a17c53f5eb896c692f378dd598f61b7b617a49d705eba086104c8edf723c5e6f4eba78b287bb49da13aeaa21e93fa52e382cec48359e5fc4d7bd5c2ff25f0508f95c116c651c7cec47210ea5144f4b6b91ed784f7ada2d661407e6dc880139dc03ae1d57f729f78f776b8a17aa011a7f02399686e21066f39ad64a3a741c2d4bbf2aeb7ca6233516d9623c1cc8a9bc108895f14158525797e1752d555a8a1376c30ba8eb517e7dbb74353e235c5cdc442db8bacb6950ad97e66deb6e3582e60a5d63e713df08b9fdbdcaafda483adff8a0f7fe67b92f54ebe016db12884b88150ae2b66abdffd792bff86d5ad855bd5a161ba6ff967db38b9423ac5e367b4139584ba0e31493ce3471f2b0c6ae0e738abca346ca054ec5d8117fc2a93665273c76fb852cc26a0518e370a2a286f7b63a957ca39070fe17ce21c541ccc2de8e7bf23016598d6127799d5b95a0366e4e55cc9fe063dd175024a56d6233bb85a1abc39d5a506ae4f77a612c31284473619c6cefd713d8dade5c277f71051013bf55fe30623b87434dc4a85ba55096b1654236f74325d433e7a5cbed6ba61fe5a3854bf61c51620062e51fb3463cac4d06773aa78e6c9c847de2fef00fe7190c401b6ae23a09eb23a8f4baa48ec25883d91410d7c431e4ebcce9a46c28aef690aaa6d88c970f4c2a8a2c52f3c3a9e2f3c6236892789f30ae0126a03590224dc60d0ce4b771747958777c81d553b9f2bb3dc99b16e213c28a377fe2ec56a3673ba9a7655e8d088ce0b2908a71a3db8c466300c3d84155b530b1742ac7207076672047e1dfd88910f2ef050b66263b8c91b9dae547eccbdee9868b5cfaa36a85dcecede966a953bee0af7bcffd31469e9726495acf3521bf70fc21de78bd248ebe552d93e82a75fa71969fdce469b2415a51c9d0e5640f85c04b982b73004beacb25f9bef33c549e0afff3e575314c102b2b48f923ae327777b25ec13a4fc7eade15be15dc9096eda3be7c98e4f1910f0742c506f727d52e94c57dcf9eaee0df329168d29c9dfc8efd198a69ad8b71ac878020745fed3d874827c8862879596293c51a56a2865e928018f5ef18ee633e16297dd007961b7269e0eb44f86f92eb6a9c96d89fcc92c045550bd5e18110946f2c6c1c0c6e09fa3a1f1f1246d18f966068b8620f9f7680a79ce45427e11b3c77aa1145d23abe2c75d511ce245b6ec4ebb70ea7b3676de44fafc91e47376b4579028eafbe0191e0f5856c8a296f35fedd2786307cc1255589379a0480e6f9238d82d07afd51e8c629cd5b2b1766d560d2b75d6c37916320b5f29ce7167882eb1d3814b3e3fb19eca43972758d92d9b161bd8db6f97f77097f69ccf7b7b251b73dde8f5419b4d07fd347b887b6ff7ef53253430363ecac201a5aac66c256e663b09cab7fc6d0f6c3cb51e7deaf176e5d4ad5cbe32c6c1b00d59901c1c96ac470ea270e4cb2ab46e56e762bfe61a810bcf3e9ed198a6fbdfd1f254ab2fd7c69185bfb71dbdb0cace616d7cabe7eac76b610c2771a695761bb0a123e20f08b38395382ff0afa22a61c25694eb0e73db5ca6c19cfff77c3aa5aad5567a39abf5d61a75ed5251911d358fc2cb5e6916a869e8427a3bd5ee933cdf12c8a58a84dad79647f48733cc84f5b4df47205d06c0fe16f30c904c2a6ecdf198ec44f2d10d15620efaf893e408c238fcbe80a49efca23101c01d994ea62b83962bfef6fd1c2a00deb4b7965be62ab3dd134ee29d18fd42725fb568c7c532a2a9d6c8d9d74beef290f5384afc7674fe64e4928eb845d897ef510626893dfb81ba6c27207cf61568acc1165a8cc6373eba5271d8cb9fba1988a9a1b1e31bc68fd75fc03af629d5b2a6dfa4b7ba9af9f990851464e278db3253cba9069a045ff77a3a12d0253c30e3e0348c462201c751fb21a2bf589645237ff064ced0b1e994383e32730d045bf416e2145b83579b7163b0ae459646d4ecbec5a41f6a9946bb4d7fbfeced8a6c3a434d72ba0a4c5432cffc03058d44b37f6c0a2c3d87ded12ea62c1e3a7844f85ad7d2f5caa6cf3573ddf63849927e84a92836b6327b006fd10d1b1857915b2c4273c4a939ec06af98efb7e56e4969e260247112ac163a1a170a4e820e944b766376f5d92e09045b2af391f78ae02f8063e5b5d829b193dd55720a4ae704ce33893a202fbfd0c11f1d4e6862f86d243b9255ab808b7009f6a6e2ef4de04db1c2307350f564ad9c273ad5c23431af943b76cbdc4edbc17c0c444ce548f63e6685c6ad15fcb780e45fcfd2ae07a2ae14200c583892a3ba744de479de4ef77f76b0b8bb6f7a91d341d03057f26528c64fa50435e400909cd33816af0f2e582c0716405305fe831f6b8661cb2b7aa63c2dfa77f9bc85e000e7258c107bea51584e223b8ed224f859412488e4f7c06e24cc241e87627de00bf8860cf51aaf46268e5fb8a1e77b461e40f7aef41e860c0a695bb57ce0998ff903b542060ca7da8794f1b0a43e2a9f6103596c7dc80e632d395765c68a9be423caf8196e186f70675d90be2f5217051fe68d8e25980ee042b1c236c8e41e099ec11ff086332b9336c62615e553598dd75384a7b42c7f98be67409c4a001d3306da3f65ceeb8fee0f2b140dde24c377721da6cd1f462e012d93489badb857d7c578ec5ec51bafa36a6b2d45e82982500bf6112935a1dc6ebdf3fa3cbc850d31d10894e06cf239ef1b5034f3b6d3d6d0de607b82d828cb62713c10aba9f4b3255f6f3ad3d83ea4ad24c2d507a500036a8392781acb2a0195338bf48fc84813228a2997c49a0517669ba066df92eee31e2935cfd3c38acd1f5f67d83e2799ac739020b1f55fdd78ccf72e27be702886a17033a32fdd60f00ced04f65808bcc2ed285ac2112289959b9f11273f1fd6c9780550f8940abc488608212ccaa1085defc9653eafecf12ec5f32432cb11e6d1527eda2d1f43a9c50cc8e2dcff6da6b5b9ef61264f2693865a6052f56aef709b0f7bf0682a9ac1da4fe5d33a7a75a7abd5255f9cd2d40abd70e6fe0bffc47c356b9e197ca8ad7c052b2b7bf8211bece3149c0e586e783098f20ec2664d4453fb7fcba87bb7f2b2b955152c02a00d387d7b43c581f41c15348dbfe97911733fc5b4533318cf5be5ec22336c88c070bf600c7ae1e95523178cccbb732c5f17991470c7db90291122815e3ab19577c1ffaaa8a26b3d9aa36af2ba4d97ca9de336aae2bd1a4f5ce3cecd13f85ce09e798e2e054359fd6ec8a6428abaca4f142eac0d7574bd81bfe8c77208956232d2aa48ed2d77dc961c00db23fbb6a735ed9ee06f0b0c069502d74985b3021da1508cd06032e4ddc8729bd5552221c5a8b9b4f8a9b385a59679a2ce253cb53712b3b4b7e05278746dfbdbe9b9496c81a079cac950be87ce2748aa61462bc91d58b423c7bdc7b9e7d79b55940ba3635be232b627eb3ce41cb166708e7855d0b34d0caa025d5e5058428c84266bf2f5ce5d6c656366c6c6bf0b800d6bedb74efe8b0419620774f60171e1bd754e4e4a31db0b36c0d9a3ae83513449ea13fa33da6377ce93a9f62c5478f41b4899cf92535b2c0d82c643cb31f27afa20c02a1a9dec379aca789c7fb79a811ad46d403a7770c580663712ea95058b9177114073c4f6a24359329de22f9331efb8b6c2b8b6fd301af6d223e4908c1d8bb367abe344dc5f630894a7c056a71aa79f0ec03aa32d041ab059481aa8d8f46c6d6409b487fe6631966da9772ef3b1c56ffe0617975d8e263d9e27995ca1710bc0e16e2c877f06c39c62f09590d0cc02efb832d68796d4d008914a128e190d03b008585f374521189918a342aeea3b02277b51b8c52b8ee068a7d072c3474f55ce3f45c78d7ba797334fb1b4d0c6adca4d5d719a21bf261e16ad299abff1d6e4277a17967ba51d13e9c9bbcf2453af177ff761bb4643610fb0b29b0580c622da76214b6b1d7980bc0aa3ac8893b994e69391372df0168546ee4c3fbf60773bdb090d37c500dd475bb1280266d77a1d566037a4f3c85738f5cf8265c582017b1d586cc6b55f6ed5210b02b50377425aea7aa3cfea1d0bbfe566de0848a48b2720ed5daee39910eb7d1b5ec59e9658879970c28b8c4f5d9dc4a25fac9434f11b163769677021aafa73ea30125ac6c6ef8f4612ba7d7360c1890f585620caa740372c06a329a864e14fb205bd95c76c5418397502808db4456fc5fb16195a8feedb5020b38f3d37910909d276ece50b00fb907a156c6b56256c58f88086dd813a1886b4253216c90fcc96bd8a941a519c5c8534a0a7ecd2d70796bc9494ad8647bcd9f2f3665d7ec8d4a4e777043449f8fbda7115942d2f07c3df7096b20080291487774237779445e513f0ca6ec35d5a4c6a3bedfe149fc608f8af8aea953d707a999d9ed3689f30601687d9505c40cb9d795b6b761076d4132aa838aec4aa96152e2b5ae71cc947928ccce9e0c7b543ec6157d36efd2f75975813a2933793579e9476308163e3f10cc7539e39b4c24ebd0f14d45133b1d517ad648a7e22970f62223ed11e24dadbd4e5e3df97fd9ec9e9120c2b2357f63479a5f241befc8fa4b2d7b7d02a88a52f3c5ccbae92c04ce18e27cd84364cb371b3476dbb11cc2418838af14a7bc49765201b94e24825ba272d67599015ad89b6455ce70d91b6295be644a092f61f0906d2ba7929dd593f2d9610c4f6d9a577181eb13bd3683cd116435b1aa8668349bdce0a56298823ec8a45bb43b2912e5ffdd08fdc5f271fbf833a94970a6dc13fe340df48c3a9a6b574a8a52520d495d43405febe57a580af52aa8dd74a189afda4431b406d7be3dcd545c8c79cf2a028be9f2d776c227785da5e4ef2f79d52119f165f36c40ec86ec26647a5bb447483a27d83703b13138e32195a9f5046e470f6d15ef9cca35f9095cc2d7b5c87963518611a1df7eb5ec9fe8e2746501f3bdde5568cff5f5540dbe6508f0151e391f2860e4ad54d3e4dd5c82dc1a05229b1691ea69e4fd7ff018728dafb84ef29f9c2e9667472ce9d94d103c708c32d45e077c503046b2e08c3fbc829f66ef9f3f2b9dc9365678892fb9ee724f021f067dbffdd9b8f020aa9b397c1beb183b020ea4d84827032ef8b1db5b5d84e0977aec186f4f7c4f54ff6329adf0425c7900eec36e780e1635ec555a81086249c9236c62488a7d1c45e02545b66e57389f2904bf327b6e593fc2533dc0ea35a01009e328029970e9e51d9b90461e653e9b62fc89cebc41668a3970fc874774245ec804d032982a676dff9643297637dd7f099730782eea59cd7a83f8dacfbfe339b868c807a5eab7563d53e43241cc7dd4b19012a46af85e4b08fc051c9f0cf8270a9420dd0f07865d906dcc146d3563341fa6f56ed7e7f6b278a951d327d81439f5a7b1263eaca1121ccfa32afd376f358f063b5e4744895c814b499b190d7e01bcf07c6967e936e4b8d100e95542145596a88eefe96f0d8d74b899bb3b83f70f280efd02a9a13325a37061009b8ab17b6acca6a228a8766f67ae64c5558047535e8406d81c4bcf80ac5f2b126f6ff6a2a879654e763f57729382612144118e4698d02d852152708082ea849a2ee6383a6e8b38f7174f708a54742bed29ef58e74e08e93c52ccffb1df8c8d2045c87c6b1ecb23fd5aada83be986d8f946afd7ec4222938d581057515b9709ccc742a2fb3d4b317b1df041421c15a39f170911dd2e4ba1a3d8153ffcab424474be7a2873937a1898c0a1e1192eda21770ea0a79216dabdf2cf64cafe085d56d7648aee623a22f679b343c26e6c3a94f3cf30367e3ecb03a9afecfe30c890afefececa25a5fd63290ccacd189420c514c9486d20f07490ae9b844e67fe6bda9315e2fcc6336ae7eec4804c9d789b7c604c02ded7e1ac5f5670aa42b3ba982531fe496011f304bf35a230e0c21f6c255f838aa476fb538abbbb8dc218f0c82304dffa9b95c1bca454a64c74a86c0b65af94e49fb829d719d5a4d394e3bdd3e73c89931eba375c1648738de68f22a88335eb7fee580162051a97cdf110c5b1caebe93b3f2cd3709f5569246cbc39e9c9eaac3bce4091e6b63c8177aa4daa32d19640b5cf377880143b15beda48dd3364f829e38debe2a0c650642ec4da28582ec592ba750fb74ca86a4d8a716488c3a58aeba6d8f4abf66778267457151b0d8ca61e49d7c7991564cf2945ff8e8b028b0fd1d7d6af9f05e5c05f9686d84d16499cc71d485098aab6d1f5eb5d4cd02cb41622a094688656a67d62aa463d4012366bcb744756a192f8453389a7014908da0edfed57a5eed5fe302e6971f52306298aafe5a6d6d5ab069ca8c0b8c309011298e844d9e3a09c87204fd76f209558af0b70d817e6b5fea3a195ed7ff82ccb467e5e804ae399e298ddeaa51a1058caa87f824a851b80bd6956049de146fa33f093f25784d1890d78b563b047d0ae17103c061d26e28a66ba52482450efac77bef1e404ae41ebe7ea715232a6c6f039d71f93273ce7486d3efffc8c876c993f8c87f126f30c826311d71f294019b49dec6b678fb67a47a699f9bc4a1798a33ecb2348785cc09cca89646df854c945b1eab32c5769d60d8ef446c67b1692cc67b51df2a4410838203c6d7ad2fef9e682aaa99c89e2e2ee8efbe11f2c2ab2ab7f34840f77a6f25952e46415a5e4ca8460e556020682bccc5dc973f4593cb1baff3efa2cfb72cb2c9d602f8532ececc66f027b9dee81002c1b6a923205505ec9b3e5b470167e088d7ae466707ef36a26086bda8366cf950ad00de60bb18238bf48e6bae85a927f2d7b92eb5c9f21eaaf3cf7073e02b5c131d819786a52f949f0706bdd8369de69417e36fa9a47e2cef87f52d4c3f71109877be72ed3c61ec7541a4e3614255157bfda56fef99129a75879c378e10849b26540b92a69f267818a3cfcca7b7f6b7c91fd89273e44914ae4e182714a910247f2b49dd177fe0eb4c833d2b95c6b7e0727c39f290cd6f2bb4f487247853285d1b5a9cf0284a42ba756c4fae5ef71258662778872bdbb7e80ec3f36bddd522550ce986819067957d1b9c162543ab038f72584ee32e11e14e9d76d7568d67719c47d705e6819f7243d7a4ae79e9a84a3499f233a502aaf419f11439a84857d95f4bbac24bb4d47f314c777f614cb662b8d74886367c742af03507f2b01c29fd76db50e25f9833c57c3269e86bb7f87c8399a8e3e09856498736f430f69e83db84ecd798807a72ec0373680810df293dcdedc42fceba4fac52a5d4790a67b58080a1b04565d04905e9d8d72408c80772b2bdc2b8f6f6b4d57e232d70dce74b0c08a38e583c1b7570e06d29db460386b21be2dd7e6043154fe76001fae0ac4198ca99954dd75bca937568757c5543b8b279d220456309ed0a6334a7ee9cded65a3a5ae17a991e5602f721dc407633bbafd1462f477fb27ca9c82d2a0d9033437d83c9bca43f87fbf9e6d867927268d8119f723b344b800e4b3f08cb51bf6851f9f86537fd472fa66d03a3c28a22ccfa6b0f67ff07af4a76d55373114dad4255fcd973ab3ff53a10298877dfd994a557ba56e4d6350cfb335d8801acf44365212dc60e8b001476cfd445228728fd687dc530700cda0263ef432ca767e9168e8e095fb4009c17b3998e41d31d8d5d30973ef757816e58bd2384705ab4fbb23958d9165f831cf9209573de0a07b25b6d496b5f9544ca7208634b3ebe1e8850b733c0076e5cccfc3d3ee514127b36c9b27dc17a83dd3bd39140e4b7c63e7d9d1bde3c4ef2538d2d8c6a022fc9292eb576d0b82aee926078b67d86889039369d2e27d681baaab6d8eae1ad9f53ae3b3e3ce03dae45b2c97a8f0b2481d3721df855c21fbc3a00b7565dc39f72814175e7d3e891fd78725da17af49319cfac05be0d4f83efce4195e8fb9e8cc05277f58f1ab0f310d0802f5bcb31c2f4734aa4d7b4ffcdefb43a024c52a80d6cccbc98aa9efb62b79b24b0423d8fc36e45850a15b5fa7dc3016206187c5016210975542166450f7a179b2b17b8e0c01e94a849437e737a3ff60d70fb18f39a6791b573ac8561a05f3f7252df8e20f050fd2bbf3b86c47a6c19d61f95477f777fa0e37a77b3e8439ea0aa39b500d472c1f946dcd82855b083c8d407823fac75ed0d5cc8ba24518c4e705acf61d6cccf04580d6cd6efb52b5c1aa235e3728875d34a5d87c1bc979ee282ffd9cb7f33d373a1f391a6e38320a739725766bf5430edebb5a038593535a05e5dacc88f4ef97c203d72cabc9deb9b29065732ae52f5d2dc1f178d636099b6bc37a338cc163a2807643e09e9a6aa8122aed336ad16fee55307bd1e2ab5c9c2998038130d48dee995f03cff3468c43321def9778f0f7824d202890dececce696939b12b0757dc7c213e136e0401d9d62d105260bd1ebb19c0aabe0425f18cb2438b8886edd69751c220b332918ec3ac0edb048355f762681a362c6040115b91ec91fc749016b17322e5e40a553f418a54c2b21d9b1d776de67f1e93a7bc5c0af7e4bb97c60915a0f076afad0d8abcf90409b937856a76be2546c34047e2897580178609ccccf3991d77e4308fc9dacb589042c6e508ab65e3f2f7c9d149f32740ca4c713e45c95f421765264a2ffc325d9b603ebfa16896cd8421caa3f1e3171d12edb3dde884351f770b67e1b17c0f8ed28d3b09857b519b1c7b9abe16c498a7832677cb1f0375aeff454b9d4f6e3aa0c9569f0951af2c23f83aa624400a32e62103eb2414d542abdcbf2703a58a523eae6dce0d16c585e9eb05d7e99162abe6bb5ae53186b6e67205b7a897dd156f58df8c9cbfbf9bfd6aa38395536f27b761cdcfab6a467dd4b1e2d29d56c7e4adebc972d4d2d33569e449d087a3e12239d585072764cd0018d9b059261ceda57517ae33c76e38ed70928ce882f6573e1999269e9c11c29ebc131c1f9cb4bd19929e7bfdbc679fb1dac3d15bb5a21f4321796ea86005a225bd2f16dfecd27523cd9f5d1a851852528a7906ee6126df4980e1c63e185d64777bb587430b81386d6230cda6a9f9669bd7c983430be6ae8d62453355c49478e39f543d5281065df952ff5c60da28993150d0d1cf20001289d1647948497711c5e2b0ae14dde61c17ab0966bc95cc5566a67fde43fbf44cb1f9aa5fccbd21e84d81fff89b004df006b322e83708a6d47f464c172fbce305b49dcb8f3157b1a7921512eb3fe49cb373bd399fae4090288423938914f30b997c4f53db0943dd1ed49bb999a8b872b5300121d25ca0edff157d99e5a6d8b38233829c5d20567a8519c85fc4b367f0215931e4e1f396e9b2224761ea784fe0c316718477b1fd18c94113f1622dc7f477390ff828fd003e053208ba5bd3ce971331c4d6f47bbc56cec9147368e60336b052de25ff5a916bee07508f7888736687d2321b18fd69d74aef2c14dc5b918266f89bb9217aa20719cf14ce6f7b8937a781ac706010cb3b4927a0cab50f06af799e2f8353f95c5712567adaaa0cf945b56747ed59a3c5e00c8ecb54a1ad8b8f45e6ef82f7038eeab7a0166c0be83cbce91f20bd1ab838868a8adea50403011b9729792c9ba4ffac83e38b2d39fc3424895d1568536bbd6caf847669ded72fce11feb3f09313bc3bc75e0a154a52d10ae491504b46ff3078d82a49c39c69216dc049f63a570865c1cfa08223d085d3a3e5303c9d5ab45ede92a774608adacf3627a4258d8e60158e2f8fe82d508c619393ebcffa7dceb9fd372901180c53569ddc74c61701c77a0763daa6aa02ab05eaac18e4c96d1ad4f0a1db3ee443d9c5140899bc1c60c81de83df344cad569aa411f136f3b5bf3ad6cba72b144718733b0ec46bd0187b65948108701de02379389036b3ddcb857b283012f606b864f85f5b958421b5f47f8dd9ad5b2ff739d45046d39993ff0a75eb810e27cb14dfd61051f62e06afdd0b0b5a519d239c9a837221d20f05f0dd324fcf10a4c03262a9382f51ca9cd76c97646a7782fd7f3a7f197876abdd5d4100323872042de4efe1630da772a64dfaf61c08acc41b93429d1bf37a16438e6b5ef1edddc2c001cad34512708a216c4b42bfc8f4490142d3452b46a0d417a616d6a3515db4069668436b82fd1533ba52dec9765ebe548e6330a67a2b080bddefbf43031214833ac50868ad24dabe9f1644a1c94d9ba5b24e2ab7f76c02902d847edd6d56dfa546ad1c06b0120606c6a131e9ba5e794357fc39a791679d0b9af695c918f783ee2d69e7b7b52d4e9699cf0d8d69246c20629e0ea0f27c8070edc3a8e5ac38faf3fc2fbfb1b6d8481de687ceae6cc98c737f0532898e76d3a71b8f82ac81802e48dbddea4cd08808b50dcf93e008dbf47a04675ee156290f701352446f0953a5d93e9a83ef3f2e8731a7901d8d633336c8bb057d073710bc48a7457b8bface1cbadb5be5c924e999ae48acbee978d1f68390764d52e530880d7120c02da17130416e5e50e84f4505549388009b9507114682c8fba96395540c9641bc16816cb23811b82cf49414bc17824b3f6c77a94e5fbd001c9ea8b34e791e97beda395a8e6753aa24c5c46dc21207751c172025231bb757db4db3f6f2bafdfe3515fd659cc7ad38eb0850379658b3749a65620cb3fa0857ba1dcd0db3d12a9ff6ff817d0d50e1874c195dff825c3630e94038facad145da66a13092c5b8c0c462e32a466172063ca81c558af4b4ffef11be2c1fdbadb4d57721ee42189f4eb9efd2460b68dfd9e455bf1c6b697942a9e8da42b67a6127b9b251d7538228d5e9e32d1844d3e95fb0c43e7648c3ac6b9a53edef760ff5e1d138c84bf6d0928d6220796a771e98b92b3d6fbb7c73f349bc9aea1a4fef968d6f65eee4538c1e5f8422888daa340fa3e2abb6eb871c401580b40a05388417883b34a603dd8a30bf0d27db56bf18cbb9aca20683cd47d7f00947fbcd1a104e987cfdf84eefdcc9e26741242c6b7c20927c762b8d05383e7ecd7e025e757bfc8a62ab5242a43f4c343f6b5809f6384a10dfdd9c8030381ee932d7d5aa3d8f3860a345ebf6c7c1622ea8aae51034ae33fdb18da684fb3a19d3e50646c2ede297db588761b89212cdf607069d48470b5bf39570643f3825acc5306bc7556726e38fbe2999b64748c85fc0e1d667985a867119b5611f969f090532cedcda7f8afff5e3fa35f0b4448de1f92b3c75ac9f555b57a5e6ed52c9eec246d29a4f7f13b0fba7c6412863a87ba4b6098a7676dd2f81021dc8df162f7d804babf9e687d7df8d9dbc3050f81b229c442c49c217ddaa3ff400f19bfa37ccb3c469158f27bcdc672d442b159086f5337fc1dcadf4323692142bc46af3557256ad608f60685d4b5e9319f4d294350947971f9ff77e2ac180ead93e2afc7c0c84bb3596bef1127efd1812d8f231230a51e685f4470ef3e17a87ddaf29d1a29ae30a025ee4e33d9a02f2157401537d4f83aed93c79438a1e7bcb792b1680d3f2fcc69f5e8d9fc0812577aee2786ece5c42d6da817928c5df3f26d7a60ec729a96075b95d849e1982a3991ac749572f464451e0c9bf13898e4e54fadfeed7a73487a5cca8cc28bfee9691b68cdc24ddaef4a7cd678fe4b71ccbe490db94b600138d5e7139e4359ee24a3a157163eb8e7bda7e3322969473a7a273946b69b37ba1d321580dae620dcd208dfeb7875133ecc59b988ff754b598f1057a5908d6f797192225176ef979b900666a0f1aaa0c8f99158e6d485bbe4177f1ad6f7372d714522a49b31e247bed42ed6598fa53055f93f3068e2b502e8440ac557cf5944cebeaf08b9f84eb09d6b01b787d0e566ad6e32e6d67302691eec665836014d8122ed3ac6ecbd4e3620afb616d5d79bf7e991cf4d1b2383540680647b930218daa9995f988fcf8dda6fed177c13b863c51b2be59c7a24ea65274fa5ab31ad3514aef4bb09c868252efe40f20de87e013e94fa5cab63cc7cc5a7b1460816e72fa973805df034e04a1bd7867d25cc88bca6752b82b54db1c08bc0ff76d809201efae5ca92e063204d1e1b5e44cff5b0480ad6aebfb4b0b0fe94605f895fbf33ad30be9cfe7377ec29679622e0db835fb775465b8638196a1581f48427705dae894eb953ed4e085ebb65b2c1bddf419735efcda10b96d0683e0a778e0e241c1609db8a072b41ffa83481e4bd5fc733e4d1959ed22625ed2ee3b66ed0932f58e6833db43e0e52afe8f7e0980fcb923682fc62e1e089bc9a2c77d1cf50c60569e9929a7c83e6171bcc8d1fcccb9803f1d41bb4c09fd6f2b3c98a0299e03d92b5f764d958cb939d9ce1ffb9e448a63e18bb0ef5ee9c03fa509d74c6f19004c15966b23bc149b101725b9e38ec4619fb7b019f5d5a84438d1f2695c384216cb49e6eb7036e15afcb492eeb75a0a1c38b680f2adfd258aed9c23ca329e5d080a8544f197e8af41be0a8b142c13db43ddeb67c8f80f03d407b75ed1344dc5ea704bd40c76a44679824e4ba562b2e232006c3689a2364cabb779a164a156ee0018e042515d8a30def6fa6dffe487796433891b92cc7feb0cd0a8c14592eea54a913197d6583b8ca1754ea436223c033c79533d7d65ea6fc0ad1b9266dd53c14804b21c41e723763fb981141aca100c3a8592e58676d1fd2c03e1c9251b080912c7e51b1b9dc68b35b770d64d93def38e2e4627d26a5ed55b2de9bd632d5077f74256e0948ea03bc66d39bd9c1646cc2a671587156d4761cfdb85478c5065dc3161a8a068997dbb17d0b7017835152ce12595a64cbf5e2a630e4d3921897d877d05004d2f439e4004ac337ad18c7862977b34348d271230200fb953e3537c531cfd12367d0f6d424314e6bec1fa41e096fb6ce8546789d0cc93f010c189827a130e41a416303bd2bc08eae177bb3bf265bea4f44fa7bd80e2061f2504634dab1e3a00da08f8842784a3e079e14e85823b5169840fcc53ca98cc133e0336b11d61803ed2f5e80a9dd348c8df4e410eccf9ef599e25b31c3e47502a636858f647ab709660ca341dcc1b8b19bc32c2be50229cb85e89ae12aa4d50eedb915a5f9a453e7064392ab0927cca9e2d6680472e20b8dd71d296b9c1fab36f0276f58f8aa203fe344416d9ba14113dff6b7e6a9b92355e9d85815f9e7dcd60bbca60b1d91fb4ceb2dc51cac911f01a8ce15b75a7173b975763c70aabd6fd5f16a84aee88ded4122949a0f393a34193efd8db0595f9f568be80c0a755bee149eaaa31efcb1e1aee1cda560cd20dba61d10b325863bd5cf52c3536ac7ba9bcdb91a90c6af4f23b3428ca55c3076605995158d171258815522e2c31fc5245abc458729ea8cca520fe83955edf5a06310ed495c763d6a068d8f76e04b6f53c4fecc119c819c15c8acf2082d27454b72c898e640a8614b09a2a2ecfeaeee882fa0be82e74439b159db8fefe99ff175b1c5aa6ae0f136e1bd4e106b216991f295576b0e65a8459f576b7712232d85b0b95b908ed4cc7b7f2863018ee954d091469621d1afda6246099db676dcab675d675674b8d4e9fce43d13f96202d4574c1ea38d00e9a6958c49c0ad354fdd2798408867b64dcbd93a50d1fdbddb841b4ba7d763ed16093a26e53e35763de7e170336608948c5abb98e4f3fd09f8a4c1416e8a9ce23176cf94c3bca481ef766c4366c0a6d02c53d1f1042272c24a98a525dac98916eedd1e9b66299a2fb32fa277a2752a56ed998f7b9fbb1e6ecd169035b5b1053747f304ebccbc6ece514dd1e797274a2941fe3dc1f98f83c70098b5354e959f67bdc5bd16c12ab54534a500c105a023a97e475cfae9a61fc746a01a6361bd3cd4e709ddc51fa7532e93a607f623f1dc13df21243881665743d1745dcc5bdf2a5a8f44f73f9126f2a77e949161951dad2960710a7ad40bba4f77f03d1fac17cb65dad4ae621b6f1bc017a16d56f5c186565297dfca7feaf762daca571d43335a1352e7a963eab230ba14683164c6a1448273d4701523ecfb9b9251b51ef758a721edcf2f2f89c8301349496f55b7d5cc662bf3244eb96a8da0d3fb7132391b53b03d0564c4af644a2ff2ee37e6c9b16ab07b0aae65c80506c7e52b6c1055a0464a466e3612b4d35887df3b5539a4279044eb7a78792c33a8075555776085e84f8813efadb8380d9150cf2aa3ff711fc9a0368cb1089e969d4a87f5cf42fc7866787d26dac5e6071c1212b1881022a0c988dec9d2e69a75458a505cd46301474ed12ea0df47240ee3a03ca15d9c9317707496cc19f6979ace41dc04e99b0e682867478408751d001941e1fc4d656ef8cbb07af66e128fabf9933e16684b1f6ff4bc6ba083f1b5c22df533bb975021277c3670dcc3ae5a39e070eb693670cbf4a54336bc4d74cc14a43fc06f5f2a752461cb1a06596f9edfee69d96662c848b20b4345b067fa017c83de02498ebba2685bc830ad647c58a890285998dba2dbb48db8d4fd2564c2b4357a59526a3a411e01e1e52095a633a4160a023d4b39e60de7984cc13ab33d38ae23dfaaadb27022f64c2bbaae0260f3ade3a77a1dcdf8b3fa1f932d66ed6caf4648586f470ce172b24a26765688abd63528cd5b1764dc4f7756c4f9d5300fb516a2c6009ff26037dc65251c5cb7e60df52dc6683eff2c1c4b3e0c8057b93517ffa5f954393fb199d8838e2f419558e2cbb211d461b5507e53f8a5d29f2af2fb0a1410f34ce7635555c786284db84bc0d325127212c631e08bad2a872369ede39d3635e86a2172dab86763db87be508cea779e974223913b4e3830d987137f78ea67084475712791b9c603f99e3e3fe09f9188efb7f30fa10e62537502ccfa03cce84929b3ae308a22f3507eec81da8382814f1b7e999fb49114df5152d87cb4f64353bc6491cfe5d8524269ba7d926126529d963a04706a4e67b62c258c071f661304b80321b8f430a729391d835c3086c507283f2e12d28e4382329f027e11d00b77bb0c9c82896857b6038d333d676c66a7be9e923b65b8bf731ab40502b35ec2c687f43870cdd26321f99865727ece1a2762a1b2da94cf2cd010d0bab93ec02f655fdb2fa2ef30a958d2a434f8d5892a34f54628f80a6e8ef476cc65eea2850c44441561d01f6932b4bf7bfea55d553ad8c4ba8420f90aff019cf04ff81a72216cf683f4a98bf6563ea19cb48d27b721463d541424a0e0710cafe76ff7d796f4b8c17bedec19c139ebb683fc96a8123a0a4802d5403b96a6d56e3528879cf99fd5297b534a85c1fca918c686bde6c4469742081ee5ead3f397e42967a7d4cdc22fb5f484bb2bae7b5b9ef080869b3fd852a7d1657cc5cb17492d0e6284a132c0aa7abf48c12eaeb8991622e8d046d465387485fa9d35e3b10f90310609c640c36d4d4797248ad1b7a9f32189a3943d984f61629a3156d4b34304a0265b96caf535cde5ed5e72d57f8c3129f728847c2977c2c46f158088b1ea3cca488e1c02961a3aff1f17ddcaea0dd373957751cd75ea6df967c3b4a820d80cee00ff0c12f7ac930ecc5c7b57fd57053d0ea16bc207394a48c25cc9123e1e00f0f18596fffc649aa1d48eee93b474af530d39a129ea28b7a60ea543df3cdd4f63c2816c34208f4f8430352db0aaa8d602fa84c61d7f3b8b41e5e05f7a888c1c1f75bbe0b386242ee8533bbf47e15e2fd04c188d999896867bc14fc91bdbf17b0cc2f6094320af1c36f2146012673f24ee8150249611c059b4335a45477c5a41381358329d31d433595de4b301ada7db25478d770cc11a7ba78d56d6c91dd874a5c6ca6b8dfc55c32b375991d5def7f44ad1ac4ebf836bac179388be3c2a748778221dbb74666fa9972be451b2b35778865d9ce30fcc8886e93de0c397e9418124a82cef57cff0f919f80e4712947e735351eca6430f794aa6a021bdd5af3d08a08dcf8bde3b0a3158644d2c9bd01c12da3654203411456f0a86d297c4d51ee281ee24cee066550e8ffd973b17e2e6cf4a5e1c801c0b8ca344d1b74a1b2ccb4ed9286da5335ba731098379967619e9451ad4b944f9102b95d9990bc199585333b5933e1abd35f92e21293c78c23211aa8302dfa00a650601d18b608ac43cab0a1f69595bfb0e1f297ccea88851f0c7178851d5c20f5ea749b9362779b08cc6705e5cfc7f46ff3077a9951a82aefe36831584e9f85676bd2dd636244f84280573c2700112bcfd43eb5009653a09e39c7fefc7592b3f533b6cd5057fc92a9c0fc9d23b693cf6a3e89a3562dbfa4fbb1da11db55b2cbd8a51004401c60c58a90989ea391f5e30e93741a6cf9ff0ce8daf3b67a376ddcd81e8e33e561b6205f2e482911da5493068e8481b8a799e611982bacac37ec3d8734c7d8bf993f83a59c5deea3ea7788b2e81b442bf953b19c298c6da5e63bdbb9a08093d681478abb20d5df822fe4f752b6de006e1291cc7c97f74939195d739ec348c11acc82f7169e755c980bcc8d0fb644a0e642feb44f1ab3ca4faf2bcf4fbd520f8db02460c53137b3490495a0ea71a0bbac5a1ae7c10f4c39d3797737f27ae50763004296605eddab9d3a2ec0146973de2db492abcb0c5a45cef7db6cc7ec208ac55eef1b29b7efeb2d1c062026e619cb340c524462ad506be9e116bfff5ab61e5f22366cc6a5befeffadcf86d70950997c473a2a3177a0c8773a9a2caf6fc6e20f33475ea5acfd973cb272f43d67068464af9b7934bca0fa829a3cf717709aadf87ce4a8c2c868beabbc60a3439167f9cd5ed17980a4b5111a767bb7b289acddd83da13257ee695a986044052cddee5196c6d8926b9a9a0cab8495db81a2f25a9b1bd40f3032fea7e08ddb55f877012801a5e747d9cf63919f1768870e45a2a5d80f6629442785184dc9f647e6fef10f45da5a1533b94e10eb7b78273303014db39a7ac4633ae5eaa23f659fc0c197c2970e3f1c41daa546a2a0715d75186fa2d8d5615277509c6ea72127b59f6037d103fc28bd7b0ff888759423b7adbf7d81e0abd1a6e3bd3fec369de1bd2b70ff9dc140a0cd00fabbb63326c85af2518ded692c6650c79f13948d6784ea234041dae7a92aae96e0a52c94bb1f2cdee2a2867e19b655ef11619d829a4138bec27afb997dbc08cae6e314278bbaf123cdccc741d4fabadb7d564baae057c56bd074f9bd1f6267f6b3b7b5da7f2016ca9c217c898b50b23b2904b8dac4269cdc4bdfbc74d5de43937351db3f6549e641d7c1ac96fb0cfeeab0a3a913df4dfa027877d0feaaaad35fb4a321f903da0e704ce2f060aa5193eee741e50b58d37895be618ba143a1b0f6ab60165b02055e08813e2d9417ba409362d84fa7af1393ff4c197f621716b841cdd4c0f4e5ece095a11a58b1739eac92b3b67d6e5d4c2dd6b772ebffb075bb89aa6ac932e26f3098107721349803886bbad7274222df9e0493bdf3d2d08f3e6861cc49f3359a3ea56cbb36a0bc922f973e768517e7dc1a8ef570b7e1bcd2ec7415b23938e97e5ced03f93b122946ad98ea923fea18605c978ccbde8b3646d94eb35a27c1af43dc1f884803bfe4fcddd02a3f3a423cef006e68cf8c0864bac12c289cd95075020d6a828a2362095dcfdb577a26922aec77d5e685694cf9aae6e051efa88383851df58d703f2b92f4eb4be3191fb27c55b6dc3effc98b55b765bb57df18cbaf0cd79967a3da5adc25e021e0d72d95f4d91f434442d44d1894a94dbeec798ea4f72316d0b59ef49d1ffd96623d62b1ddee72e32d1e356253ff3b163d233d39ffd5fca6953d28a7a1636d2e8fd759ab2dc6da2d7fb9ffd5a848e922224c9249ec5e310b670e2ba179ac1e1172c3df32e500572ca911b5496b89eb088208386767bb1253a160a052a9d91f10ebea723f6e4466325f5f2ab00cac3ffe49ada079ce401ce5b59e61d6426b8b51580e40b48f5031d2b14e164dbda0a8d10d253740d806c4ccf8a5ffe5f39ec02a155f492e3161a8a99fff25bbc25391dfe964f8a895161114ed68516ade44400f3b522b1ca49ff8be373e4abd42e0bbecd642abcebb9ffcfcd09592805c517169404a6ac797640673be8b0320ac698014bd44a24569c6648c3aa6bd19565ed475f4203fc015cfa9d110eeb952b1cd68a9c1cc8d491a9209c517c0af7bb1a9f25070d1f5472dff2f923132969f1a9dfe02d6b78763170e287c7238a9daa8b16c8b794f2163fa0e5e81e9ab740b9d2149ab6b20b8b4da6663370140f02b8be9aac2ef251a8060251887fef0d57b4dc57f961d5039e35af4776b2efa32cfe604e79db53d62949c31db6cb2ca37acc387615e9da8770c070d9c1c74a75f174d5d5b791f5692ddf8ef4ffdf4b3e949d03a5c3b4349db8f54bf81dc25f1372cefd9269369338e839f18142444f93343dad02e4c32b190b31995efd38c648b0adf837678f40d641a3b8a4ecfb8bbcb57828243f6e02861e0c0aa20d485c27c3be2057fbc992c3a49c10f7793c186484117696bd7fab3c85a972bbea9158e63182ea6ad3e1684ab285585cc17f833c5be6e29441b152ed8f2c8f78fd710925262107600da563411e9db15f748b799f5c556c5fd2226bfe64bbe53c215305910a954343def9bf622bfc684f80e0e579747c2ebab116902edc36899d55b4760d2e166c21bd9f93998836a9bd092a3c4727f04814b1ea41ec101434c6eff7900e389a23d22e1a5f0ca93f68b66638904b4fab4b69b9d2ee006de296d946eb474c1b93b7f3c13ef36ecc03afc15f888f6c766b992474181ce444203e129fbc8431b789d4183644c81535dc82cf939d23f308ec3eb63379f953bbf04810dbe3c05690a02ced79a8aa21d096597d71b48735a9fc71e95fd9a6c61b5086ac7e5fdee07d8e5e921c220e15f958109500fc55a7ac873953944de8bd02531b91fd4dc9f86c9517901e658a969c817108b9f926dd1993bab695ccc3b17a6d6275066f338c512831e025686c011225765115d36bcee44e682ad4ef9744a08995193885e340db4623d33ccba04ec62fc2c0843288ac81b7023461b8a675180e742f855c1019e053e0462d5849c63839077a35e73f73c821d4de9440e8769deb96e1f218925f321019d8c037801d624185c0424285c473fc1b4e04947afa80907b632523557d5d91cf44ed1ba3a78f68481871ce791dc0bf7b9793d5e293ae235aeef8ee38f5996c73a354e7cf37dfc1d477b22090bdee3744f2302237934766fbd961cdfcbe7cbc87fcd9d302e5a3a40ca0a8ecd061a23246bcc5c973733b6870335a40c833208232fbf64614e10e93081485b9347448a9931a9987609e819c34502d2aba832e6fc83c1e90972dc82fec7ed7b61b922e4d17860090cad74bc60a0dc3e18536591c98ace0f95f20ea4602b22aa8660a9643a6ea7ff430bbf82bf0342942fa5d3828b947eaf3d3b9944f2f62caddb8bf52cb68be428ca9bfe5d450fc461e64e988c9d1cc033eae13155a23b85f2884a178e01c68b3112db6916e077a96f7e328e76ac214e32178c4b2ae34caefe44ff383fbe05af11e2a9b83b146b1e905dce682cee3e170fd5da93c81d3a5a8b601456c8a6062706e3f29aa54bd1e5a5cfdd8ccbe8a3f22fe159ec07c354b8b6a2bb61b000c62f33080e7237eedd1cab4fa1176e0246657d2eb89105b70cf90fd6626d9263c86bfb4df1780e4a193b2f71c76af060eae98cc97d8197c3d383af32d1195ecff50c38c4549e3f9521df8973a0bbac79e6607f70843bbea0d92d6de8f5f63e6fe5ac49fff76f49ff8b0ccde43a6e9b686bbb7096b3c326f98c8bd90715cbbd87163d831612b382081080ac59397bfa75cc85e4cb1f6776b6f7f9ebcfcfed253e8bf922be644d51c4c69fedd86727f747c5d8570d3a4a782e94e9bfc2f0194849de53c20ad3c07e44ad5aa1211e9837116b8d1cc44d8c8474eba6ba0d45005c9416cbe6842a367463bc3002373bc28731e182b8a36309bc06a440b6a992c9728de3c3bff817e8265c86335c638ff9738a0e5a9b525fdbee1d4d84a6e04085a17123926bed083494d86833f51c18f1ff8d48efd73e0532c74340719a6cc364fe92d366dea7360083e2c7d7b317d818a32ea52577ea17945017284f099055ca9d6b1b371779ec48b4aa372b997b3fee10459058c934617e9b257fad7b98011350ef5ca3372d86e6b9fedc9a0ffdf9869e72d27c67184b439d082296b2a98985ac2daa10b37b9d8e00dec35e5276cb60dc31e8c2192d38445b0757ee3d9c6956011d0c34506d944dea64faed4751cc8d3ee1994cd814fbb84291c39a690b241fb7c38cb064201824dc6a5207952bdc3f489012139d1a2c8d4cea7901c0d981bf2927cd851ef0d1049dfa0c770cbb3dbe64f521553f38020e5ca22bb1f993fa1abbbeb6a45a86698c28f153dfb329d9473d4d19c75b700f6c036f3a2a380aa87085790618a461f74472f0cc13bd514a8a2984a3cd802c475a387cae459babf242eb1952d1f133107fb69b590aaeca79167a93f10c01bce1f7fda83e2ce9b094b12c9d643970eb055fd89191df3906ad1916fdf6084e1f9899af96f5ad1a9711afdb2e4bc0f6426d37f72205f9eb99362b87f34d2b3087b49064385b5317c6f221e2d245bde5db616e12738064670e66daa66b6d907407a5094abf4079ab33eb9cfd9334cfd6ac8f277122099953ae39b49e36750809e92c76479f3cd637e322d4e9c3f92d39519ebf71e24bcda09da333e94a5fedbd44e13d5b731e497669ed266d9a064e4549fa64680b18be3625f78957ce423f4018b320a8252aa362cff570da13e38b4406499f073dd6e13184940282127f7fa4f98f903d47ede941a2930ea4ef7f05e5c57cd85fe49a88cb4ddbf9149ca27e950493202f8325a22129f343705c97f1d2a9d71e7bb8955f4a810650ebfebdc5585588a597c1d0f7a5f727cc24ab4c8d8d8af529e4fa5ffe9879344008b3e177201a5b63e3d45c44d390bda24d511ebe171966bebfab65b80b23fc33e0973a129099e09fcaa7cdf151c83af4c0bc36302b936e17e94795ad47b7c8a84265170c20b78deec8346b6cf22ead13d52e6174b59c5cb123ee859a5b2f843a4dce7609e52f99d87c95ed980a9f28f21caef2d6a442599830aadd1fcfe4a2a35cc02db751ff4b22721f623bffec61602a57bcc1c3cda3a91ffdbd56fa39d44529107ca24aec3cfd920ac45fe9289f45a587e031d6e24fc8444c0a83b325153ac46f4b92c5acc8156d3daafa87b705ca0d417fed4dffd98dccab68f8e79665bfaa791ea977895de06006169d3faa6bcb3e064b6603850e4d7cb198d62c560c0845af2ce4ed129ef9b397b9bbd10f7dbc0b779f915fdadf7bd912114f5a1ea1f769e12fd1c6b409a8c80327586e548a3ed949bbb322e7b4769674a62709fa34cc5ccf3bbdf8c64172baa9abe2eeaa7279552d3fd356c7f181befe619664f1d3b5a5793d996a67b00d1528b3f67001d763816d1118c6fe05d32136795b1ed798dbd628876935f7aa5d93553333216d6f71d7217f280e82c96f3c38ab2e72ac96fae4dbc6c9d586debac05556bf0e25691115d12d2e02c13efd674c8c6a68fa76215e8641354979eb6dc78ae6726214448d47d85da023662b9ec8064bf05470296e47ed1cd77ee267ddf4099a0158d4d6bd6e71b9a3b5fbfc8854c7e8e72df0d5ede503d1a6d3227a50ae9c1edfe60c51cf7d1b62bfb18d1ca8d20108242059467241951eecb6a0b77a95ce152068dc39ba441d7b7d7242230bb73a3cca1a032b32df514df89cd50be5a87f5a4e52f5b56a0066b066cddfc0556deee0800aaeee54f7c752b0a489a1ac97f71392ed67e0840f76c27de2ce16acb8395aa4c402b29d6de1a899b5343a3ab6f46b2e058ad220bd4278949ed7b9092904dd5b69d029b46a0b00d7e8e187ddfc2274cd4ab00b97500dc1bcd77f70a801065a67b6e45e7beffe59727b4471e721c1ef929556f402a39c33cf843d1f25130d538117cd1f495750ba66c2dfefc939d95601aee92a0cddedec49b4cf2095fb9e2baad6e3bde32d45e94a49fe6ccb3a90c103a62bed83df9f2d5c8adba3c68ea50a68408181ee3dfe7ff1b890cdb178b32875c67bd794d860ff0054cd91b02f2213e0ea5b56b6ee38acb89fe4a1bc698954085f083a0698761a0428eb160f1e48ac59fafa54a2d564e28d574eb8be6c29fe02732c70776e73f389702b42538f5cfe1f26c56282ec01dec417d4f11bb7a72494f5d0b488af545a1ed2ae0f0c422240ec2b9da8611594367cdd19c3de52d31ea80862cd29e0706b1f6fd603baf3dc97cb7eaf3178936f2670c2f56a7126f638129529e5724d266bfdfc3354ec3d15411dbbbc4dd0e1e9a9770d37fd8e387bc5b822f104c68fd98474aed914bf21892faa7f73636a4bc550e35a9523eea74dcbcfa7ffa732a67fd364656adbdd6f6b1fca347dba54c9885889e1d0fdc5e95846c45d6271b4000dd77b2e822ce3bd33aa56934443dde3f6459f9c80043bff460e377d97b00a2ed0641f5b7778e7abe0d16e094eba4362ba3c43936e9acc783cf39f76927eee66e5bf1931592ef766843380da38b6fcc6ab77a5cf9b1aa4a624b1c8f35738e0c64d1cf5446475eda84b5d9827c567eabbe003b6d1a7d8afb372bb1d6a4b09ebac5a49b5de54710b33633f6b0c7257d051b3d0c041ec48a6932b1e6f5b8903727566221bbf98508e739f639972bcb783d4dcd66091bf9a242fa26de4d48e6e52c3dce4b9115fb9f600a598a6271754754198b9973f5faa493a316478551b95c3d88a333e9f163e2c94c0480b164591cadb538d8bcec3dff172e545d225a888afb25b618078f1e5dbe32e92a85451846cc8c6271128588046d0ef75bead1854822c999a7798da93ea809499c0fbd2a95bc6c3ebb2a8f96cda59fa19a191670df96f1f343aeefab0bae1aa3576004145dcfd4eaafc576a68be6fbfe423c223049b85038b529a213b99cc8bb00c2f9d69e1dc54daba0a17f7b9b7d564ec67f92293a27c1f6ffd074d64c669d1257a68124ebf583df1aa6afc5273ef1512514651e5a0d89e63ff12fb73d19f0d79e25240ba70837feab76dff12e9eb61e80a2ef66ec0c2a27a21a0a743e3aa097183852ea432aba135c89ae658b0774e0e78496799706dc2effa062b3502a44bb372153c35ba4a794e2b64c8bc6451e3644a738e4e6ba7c1eedc5ab41cdae4077c53aba606de88c908def7a46bac3fbfc4e46e8ac54e5c388ebc0d8f5c1ec26ddae3705e530596e6e62b1c08362810af0357cee8fdd22cf90ac6a19cf5ddb25175991e5823561d7ff14157e4e335e89cb0f6ccb9d7ecf7950d89f4257557e756d13219864bb02fd09b1d24b7768cd2c916b045008cab41f81d7f20bad426c628a4c009ee3113590c8eb7fd0eb54c23b184cf624344a877459a08e593d629b8ec74d987c0ac9df7963a3a19116fd130457ec69af858f53f26f0ae5bb4cb60bfa1d461cdfba84c9a9b1762508e94de4de20e41fcaa2638d64c2f95c9d13bee4e2de4234f60381f7655c22b474ea1d678d91cf4384e74586a8129f8759a532a34c1ed3b05c11ed1ee3c22373366350ab5e31d5c105dc3b0007bfe8369eb3e0b134db658bb3fb90489223d2fe0f559777e2da5e01ddbb96d22a36ff5c85bd28712d00a4da2dea7747b6bb7e6307e0dad31fa02d4060d0809492d41b956a290632930ffe34bb728a7882b0e73d1fe5ddb05ca8899bf2fa005bc720615b9db93c58df137aea6aca2e7a9e69d1692cedc9089e1e6702347119c8f6a72ef7c501c3cc545ed95d091680ef7a14a96b022c3a90687a8e7e3789595f3d753d009822bc4dbc1d517c95a3abc8ed610e7cd7324f7ac7b7660169d9fb5578832b73bc0d30eac491afa411084b7734265dcba7025fc556ebccaae75ec0ff4cf09643062dcc059e712dd27bd1a1581a948d994865802eea74a7d723e5e0e10f1540665b7e726485dbbdfe10799a27aa44c0abf910c205a71b93310fa569f17629219ab1a5ddfc01d88c1adf909b151ec2361b70bd866ab99c26b99df32e50b76f67ea1bc823c5027132d801914e290ec8f08937891e82bc0018960fbef4293558292a39c91ba974b784aa1ae96291273305dea25a353079032930ecc53163bdba35410d7854d0dabf27c08eaf8b31bc2ec39b1eaafd3458e924e26265569cbfb4de4818b83753b0b4a48e7ad54eec49c504a14a872161f0537ee302a82152498bb08cb690beccb87455a1330ab593f612ccbdf458c9c7ae56497d6d1f64df7927501a16fd7e188106f2c38d51caf5200000f38ba09f0cf0d246c405480ab2fa79a80a29bb4a2c393d074f5a85831548881229e4df1f881ec1e6fc395c64180191ce9fe367540c3a8fd012a50da10a3eff6111db27d527ca51fcaee879cec86ed9c5cff73a19dd7f3d73ec3e01193086732986bd6fbcb09a12d967258fa53009f57720c15c7cce737c768e2ff80254363deefa3ae5a538c1f7524059a4dfcb77ab5e749c6aacac2121f048242ec87e8a5109fad70a93676d4d150a4efda60da248d4e7890ac4fdb9d21d8550a3ca72b0246b5415c340fabec5c22a3a62d4dc2d0a621adba4265df06fb4e14db007abc0003bfbcefb60a5814267ec53f4183a261fdf2c94cbbc05e3597f7d521f9d51fa31e4cc150991867352e94bf93dee2c854ce09fec68e71e36082d20e02d20ca8b1ea90a9fe5904bd49e9477310f7bcaae53d6c602c66a95472a583403bac5008bf489bb564c12213938230f93502bc215031f1c8d3d0af2406e7ba6415240a6d6f39ac91ff2fff99a20d0dc7c938bdc461e5c28140bc37440d7e114dd987966e2afb9f7ccdffeb3da1e047751050b7d7b4c1444b35edb4213fb15d9127b2e1480d74b2cd4ab2dd73022167d3bb8219b0fcda5fcceaf3ac5892423cecdffcd747ac010096c542c70995fd82ec95d963309f1f8a58d545360b4f8eed5f128c542c84fa60af2673b9916d437a57e234f81b1d24299d0af1ef2e9f6ef9378d037f76595c9d9b98ddd495f11cf29fa8e755ea93027eab3d347f5336268a76eb113cc6e11a945eaee50faf82b50b899fd82f759be61d05800515ab626f3a99d29067ef712ef7017a2eb4eb8cd591987675d3f32d1450a5da01027bece797b4d7c4382a330efa7ef999a1834d35d30aae7d163afd374d8c7387e123b64cf4112955e91bbe83f8e1cb04e400fcfb10ec006fe0ce2d885a13b9edb2c4ab59be2ed886d69964e741035759daf1dd3a47c5595c0dac3f4fefbc7d18f529736beefc6afa04fa4527f688519c0263ccc0f21f490928a814c35710f83cdcd33dda02bc11feb24977940ecb9280d211241f460266cceb9fd757f3fba3b007e4d23793dc58ce996e2084b1dccdc14b43994fda3ada581b44314bc6e24918d10b71b0eefa44b6a5f9a4869fbf8d0420bc6a8d619f9a2959f4f1287b999cf5a11c2306ee56759df2d8eb3e3465062ef33bcc76b7d7f921f025f7091ef821cf6bdbf3579f428dcccb1ae241495d6b3aba48f87ce3879b55743e81994ced8d7fca5c9eb5870563295ee71890e233b0ff23c6ca02a5b93bfb85d127407978c9157ddc24bee019cad1eb4d89e92e3363fd3133a4d5f55ac3d6eaabc8921ec85edd517b93d98620387a74285543fa546310c17c85a67f55587c1e752d6f0f3b4e03fb261948add6e0e5a3fe9bc9c848d6bd7a655a962d6e9cda03b695862e94f2728b6926dce308ea0660e71e1e5fd4f6a2c2c6f44aedac18f5d7649737548378df67138f287833f1903ef26fa50a4f30bccc90f9e76bcd7260c69e06ceece006c6afdca70d5064243e836c77918c99e5290029f2745c65e5c5c97c1e38323faf05db94b7679254c75d0febb74761d6e7222b64e93c37af3cb00d5ff2f1a74cd379e671bb4550a6902de7ffea5e294d17e28b235cb7bd6074dca6b7e447ebce18ff5ec75b29a196d658228f50bcf746ddefa46b736f368944ea93a9972b249a865206d32d092a5de981476e2b6ccf9bc078d7f4b9df9a21abb47efba110dbff39c8f729a8330aae5bcda801fc72946fc8bd01202fa4bede8187c1c09d6a8ad7650ebac6dc21b6571c9aab067780ec8b06c80cfcc1e0d7c4bf5b3e3b91d6ae2eaba36f53de318777abe1dc8013671c72154d79470e377e9d885ac81326de49abe2f8a1f1485095e3eabe1103b8c5b32aefaba082fa7145f655e2ad06766f09074292019966959a862b21c0c43d000e4bdae851e5d5a7c35f0f0b3ffa1bdd0f6c9d68efc5a4a602ffeb845f1c701229448da0bcbfdfa49c1e9a40b7a86b68f1687c8f69708bab7fccbb990487ea1d956649a9ab8866951cd591c4d2e9fdd30f8f394f8353dbb2aad8443b2912402917a341ccf515539e60efd2755fc6becf45815c5b9a8d4fe8ea429aea6c071b5a254f1f8c02f3f0a7ab9de1ef272014535ae22a777950d923e05a160d584ff88c3bae348e1cbff44cf364d852ba149cde6b230d76b45363aa49662182c7f6f2faeddc68278842a936febad1823872871c78ae5875ea44b9daaf8fde878e2cfdee8eeafaf489c71bd0397282d85713ac6d36a5ef15f52b6a7832cdc2444f2905dfc77375b42612bec0dd6dd4d639913c42e9b8c53fe9d0a411050dea6c32dba41f79568a0187039ee890c50de13f160f85d8eb947490f9b8f08354a1644f5f535441d93cd2eaa8dcc4ccafbb474c97e24cd0923ed22317da61c5d5b3aa9b6cb7423dc8e842fd6b3ae092360bea19541825418d506ee83d168a19bee553881b9c7ceb842a19fbaf393762830d8bc78e93566078a1124b7985a90ebc2ab343b16da3dd032653eeec6f3c5e603b6c609011068cda573940e08a2bc50c7acf32f2ef3972c2a32194028ea17dee64757164d303459813250e60e0f21ce6f83b6d61fe7adfd4a893f890639c742a30d3150d9d9748c81a6e5b77a33d89887a5a71dad452029a04f5e3aa5a3290e1ae61eb9be7581923479b40abe704c409f967ef87647c16d1bd6ab108ef045030fa0010eb70760a7ac1311f95b5268ffe9cab6075d7f63211e5e8df363a87c7f75d7b89a135b902b33ef63399210d446e7c917f883fdfda5bea09af04ef05b6c9d36ccc851f2b9b1549ad3a755935150d7ae61d02b7dee116b3622b2593ae1450e8d9f2fd9e4ed7687e9eddb459a82f73048e257c2482bfd2be3b3ca529aefb4bb65bff739a6e750391d1ba2411e72351b75d9357b28aa2b62250cccbf44c5e389ded920bd9ed62f1d8ba4ec61d4e3131d13cf75b9ee928a8dd5cacc24f19b92ee33e7603e19369469cbe0ac598b207de8eee50b47a4472574140707045cc847ba2b4915e2eed1983f466b11a95d1645ca2e3dde8b25db233d69ada13771a255feb6d9ee2a7e791f243705b88941a5782f37419f5c8a853ff0382cf103d1a8e19be4c61efc5f0ff8db542eb75e2dd9c510995fd742e521475fc370bc9b06e00ae34a169102d71f8ca64c99127aa72f4bf7409c01b865698f02739d4b78c20b2edb2f64148b85175950b02b84b1a66fb7bfe047c471accbc6db1edde0a851e7422baa6a0038ae09fb02f040a3b4affb4d9010162522bd452883eaf24df8bc599795a6e0616e9178cd5da4ee6e7829045f7a381c84783ad854c8f964f0537cad1c07b6ff22131ad2dc4b02b204034c31daf699a2f0d4fa55972b9197abc1bae495dc080fa0416ca7a92201adb43292cadd446a4de559f5192a8d2073badef2bf86e86bc62f8315fb7a7721200f84c8c3c2ce37005ca02587f8f1ac6b6246059421f526e2a62e0f3f8d61d67d040bd649684a7de630c578a2481dcc9a3b41ffb5f50704f87d5e8a7a7aa37f23515c90b35646bbc989df5d192490ab16262df6b246470794ae117b3e055c980e3a51b64c6f8c1ba4aacdb3c9fcd3ffffef226e03ef755216e3176ee7dcec611c2f681fb8ca7795672f9f706694ffa2fa9405ad084f895f896968c9641b373d7aca9a1ffe3743dffafce5130e7a5a14b791851297dc077306f65ff429c66125d4d8a0c886ee16346e4c719742e19e3af0f3b81d1ca41ea4eb439e562f3acae9a6e2ef4b65b9e4942da9b1fe198a4c1fccf6b4011347d9dab9c2cd8021156ee570760873ec99fb774cfe31baf01548267d7b6511407c369461264749cc4fc11f4657a0669c82f617846c7bd945c32c64ffce65503043b18a6a9acb96337cda95cb94898cb1e279271f9c5f782d8bfa319010597eca754351afd68946a798732c8466230c105a2942d452bfdb968f8be7a15bf8c00f17e4e5cdd08559ad4d27d5856abce2ec98319b3925012a9c776f4b9f2cadfdf7b4bcc056990fa12c9759cba1213a761612cfb50351e49cd729f0344d9f7d9ced060abb00e0e3eda086a4299cc03c50e6bf6fb29f7ec4e6950691bb4fc4260c76a8a06b9bb52baa5fddd267a2f46346acbfc5d9d9c4ada7360b5b29159bce568a14c95c968b0f1e9eb374fc09ef89c2119fd500647d0af60d3721b24b32616970a3fade8012859f24772a7755a4a5a33704ceda1903020c5b85ee3dc56689e15af3db1b981771d6fd9efc34507982fe99f046d727a9bebfbb8c1b26f8c83b2af9fa274877b6e3ea60b2ba0973ea59578d4e21193350e5c5828ff13e3845dcf5d7446227053aa8482638d76b3eea36a9b994666c611afa4e0d2f6eb1d3449c4157f13cba9fea540652efca373c12cbec11d43e7e458364e747e2a7c036c11206a4f55ff83bbf95326b588c427f27fd5d1b05634ab5554ef1ad1f678ba3604a7d63a66d8e0c5b2b2625d61544984c4d2f6b5e80d4ab45e731b276f69a6cbae58054c8248e3fdd99c629d1612c09e70d143953d6ad052abce1175878af3512f60a8a2950f5037e5a9fbd89cd2b2882fee5f50913b494a620bcc81b762c8f2bf0e394fbde952f01a22b0e8d9611b58a17cd9f868e0119bb9a5f5ff5743e3bf1b20bc1e4689f696ef72c7e212c6011ab16cd1f08b6064633f759fd4f277a6c7344de831bce231a04e04e1dadbefde52c18385a02acbab37920d42f46c966c69a3b0779c75584a4e9954757b24a589bb63983c12f7364b52ee6d935192b28f592a669363f2ca531b612cd5f6831a282159920b927c7786a815c8f42df2c3a2ef5ad90b19c87ea65314c3715e5bf97e2aa5d097cca5eab78ad7598aad4a61dbd6026cca8b5720a157e6dc6624a27773f051a989d55ac2d4eaed8c824f2df9534d8fe572128ce2cf0b76b94e0eaebb85cbe9dc62d0fd64d2c63ab2444028a6258e4b14ecb73138c20f8dd5009edfc510ef12741d020564e964031bcb88746130286673f41144cee75859a6fb6199e9c32fe96947d56e5b6a9cfbd423dc93163fc45ead66d551d0059a8693fc7ce059f584b7ebdc16587643c861ccf5bc4f7c722ceff812bc1038b2286b4c3b023ba8af795a2e9eef315ca6aff1707d300808369dd5df3423f374d93fb7a0dac3b8412b02cfa0406f0199a53d1a8f2da0f0ea636d50d891156ccadd1b4034a4af8305ecb04f21294dd611ef66f04054f0f3da5d3902d324efb07488f770547d9449c3f08e90fa771a450a33c95d27a5624aa620a09360735f8acbea46737892b1abeab71a6fcd12680883e4b2ea7ab7281c591f325c2ba7e1ce4af88dff4f188f22fa3c5acb5082c427eda3d1107d8997d20347e7ef5cd8792e7ecad8fc7be2b8721f7df35af29c3209feacd76bfc25a874dbf95c51c42f1adbe3947c03b5000a1b547277faebab9a5851bc0c95e7b780308ba7325f1830d455bf191a469acdaac0e01f666bbca7bd004e9693e0b85dd6b2a4ef1967260673f97557094953bb16eb20e3c5513c1309789197a17320dc629529cb896c4f3ddd625ea691259881bd9961146361dcd5a28ef93e15787818545bf2d4ce38a30eed2dcdeb11dc063b43f40802619b07a25e1ab2d0eae36994b4d0f06e3b07534973bddbe531305a0e54b781d7a803915a39bdda6ae9a983f0acb2fd7d503cc54921e216d2d6d8e41d392fe1d38c4e94ad6557f1ff73512d980bb92ee5ae49e9b3a758647064398773a6eccc4696199f19fb60f091f3145521f0a055f32b9ba4459d45c5e912a733fdcf5d578b9a46cbfd77714a1617480b5f04dca67d5d9c0c4ac6147d5ed1d7f18e8073831a81735b82a630a1231112074929add6721f69de7c9b4ef1df47d7cac5138c13bb351b9d290a1720977a1dfccc505e46b53dddd2268b8e2624972a002372ca9727493635bfe3fe16376a45e815ed64a639ade447429e9cbd789fb4fa800d8181a3b40170d01cbea96fa289a3bfeb380d3d4032d458015465e6571148c84338c6f0498518e1fd5a669d363e8b6819b1268f8f84940850b135c29e6bcdeacc4c8e5f19fcbe916f6f01ae5471a36dce428ae0f61d7edc70d79674dc49c074e5eb372d17e55e1652cb3e57a657de95d8dfbbb98f65f2438a2e7c7b2ae652c7c549b769a27cd04189598eeb6dc20a71e5751b70f4a729b027772f37055ab240c14f5b42ba8cd1c8af3728b7802adc6186151910903381721983dd61893c299bd6c878a4bac43084beaa42ddcfbc4967a8851f64861c417e46c510c84965cce6ddaf324562e48b3510abb6db172da0d1909b00d261e90ee0b44714167ebcb3bea9b708883d55d2a6a1e398183fd6adb1ecab83951434f66545684f82473afa577e04360dbb935f696131036a150fd573aa80616a7ac68dd0b6c1d899063aa87f64860516c6b3aa2fa4191ed6c60cadb4ae1a18e157af129aa7f9c267316bce6909152c1ca0dfd5666e34a1ae0aa27021d3c0e71d9a630656e7c79f66d13d5bcfa60ccdfd9a9f4cc03ba8fa2143d90db6de5db7ee9fa748246f8d1bfc4191a70a830e8776f74d63e5f2d908ed50920fc4dd321693d96d584e67ccac6b647a597b54fa764e04f8e0666a061a1245d75c3af41f3b4deed4127255b90fb5f33f590458c65c409da6b53e24a01f06983659107bca9611de809635f8759680ee6e6ce18f2f4802531141d4c79abbd65ed1d7d61022b9fb3cbed027118f66b7c5ee43ba5f15b414f794dfc03ebdc69c2f27b868401d4378906a93b9b36096c22d29354c66af8d4c5d3e06fb3b8cd5e0b3ebd9a9247e053c8dd5399f98085c991727340986475db1055669e4309e326424ec76ea8c9205ef63fbda7fd9b6ac4d9a03e1724cc152fd96fe98e6fd3576eb2f6eea7e5c864200666e604c8ccd2bacb80ab7b4cb0d55fc1d87d07b2d4048d1d75f3e2cea47dcfb177df42e3cd72e225c853a7abcc67af581cd4b40b68195058d4190bd582511680344a75669d6fe47fa39753ccf95520af5a5fef4897dceec88032486371f1269d869a91cc1bcc9d5d59e39a3628b4e8ab2a5e6f62ce9f4060b2691bd1fab9424e8118e858cd0d4266a5420fc16d4a2fbc36c26c3ef8cc86cdcefed49a6223fe2afacc1eaefca7f09419c7bb528f053539780677b81b0a972a3fbfa5b5966329e7f695cff4f6cd945eb1ca7a54cb58ab8456ac00208ee99afb29280882aa685872c0abcc4cf8faafa55cdabf31af0b7d67ffc2e953b39d844da7f9a45d31b8441a9427d3b320d912c210a5f238a71b13e6d2f26de7e98b36dce58d7b68f96f4192d95bd027eb7c7bfc58bde7a6d985b0a95a37fec420fd97f8c0b2c29ddb97b0f7a91a3058a7121d14107286492c62c0e698e0cfd4b9d74e4ccc35313bee80b3b8325dcaf116c8b9c169314f07d7a2801ee398281c0860a86b09e64eee1f5814d77f9db8970879c951f37e1b6df9154fb53a74e906bfefb2d0966761ce5bcecf45b5e80f1b6498d1820e709bb57c7317df2f0939833504e69b09d081f4868f3ccdaba6d467ba84ae7335a82ddcd619accc494a5bf191931c27560986bcdda5acd0997a3c56b41518b99ea6c68d9f1538618abee429cf6ba34bd5181113c114bef983bec7a8b4819d47d6c90a3477d6f9052fb479133fec718f4218cb488fef9987d18b973fb526ce27f53c62e5040cfcaa60bb54b5c51db19f75442530845bf98e7ffab8bed8f0a2d1e4b4d56e2ea05bfa119718f2024b0ef3a9ac446c2db8b524f5e60b0a03c18edb5a60b7c63224d36a186f2f95306da3dca0d63460473f0979662d8eda6a2cc2950f51f6697ab1456065baaedc7a9b8c95463da8c54cc7daac3489729f5034ae6f74265cb25793856af80a516bd4e808f1dd7f81a2267474af5f2c0fbf2677344916b90ebd3a909711e4662d805fb3522d84e268ac307499e25fd88002f7c6d6d367652d0d0fd5307e649e7fbe3a0d0079df0d763ed8c07a65f6b8fb206c460ca24b4bb214fd430fcdd5fdff5583aa3f91068e156030f863ba0156dd896f7085c7b5cf7334ae62ed22360a2d817c50429cba0c57dd04a539c02156563041c35967895fee4276940d9cca4ff76cb8be0107c02f88f66283a845519a79a3310447f5255aa2cc64d0f95536e939f805be8a4dc41f4ade80b2f35b8b2cd54dfbc6aff19e29212113c8e98d301bd814b7c070dc0aa8f2dd8f8b3645823d8b15f6412b8d2728ef66150d25bf4432cd938a010fb134f15313a49fbc19cdccf65d534bb336faba9bb2e2e9830c5d4cf288704b1a4f8c823eb9747e01530576f2b1e39ed7b7377d05718b36ea315e2753259dc379eb1856b1d3fbaf70f6b3ab3b2e6f6e7c3c9496044b11702c725c1f4696e7b30bdef62d81b6bc06a89931e38719a74bd42e889ff990b0dd6185f14fa4a15f0990187af476c43b9e0b4287800e9102abfde1a9ccbce10d959573ec7973f56eac78d012793b5eb9e93f0de5abd34da731384d3dbea8549b41851d1fdbd85173c9f58210c9f9d3ecc12a4714bd728786bdb1f59d6779b74f54514ebd476d82d50f574a6ff6a241d26489bc885ecb871d82994edbb4993aa15ea82ce412d2d21686f7f481cfe66568b06c80cfcc1e0d7c4bf5b3e3b91d6ae2eaba36f53de318777abe1dc8013671c5318637343c80a4b12bcb6fd1095ca7ebd0911a049ac833e6f70f5921631938700a101c00dc057165802fa279ee513338b2371b32b7fc706271df169f3ac6533cbbf5f2fc3311a67c2a5ff3743f7654c40ec91ac5c6846605c914d61de32c1c5352374949a8a7372e555d97d731d1b621a278671102732dd019ef2af0df12c07bc774de1af063c7f5ab87f9ea28e11d440aa6c6f0d8f65ebaf136ad5b5deafde035cab386af9dc0835cab2e4e87643af7193ef176223aa02b58edeb73b0e21fe26bda14f82fbc6da442d21fdcce1a03cf5e1f15f2e92ce76a0be5e9539ed73d6233f6b5e39341398e7d103f9ab32169790363518d1a9a19a989f61e4250cc4cb2e3076577c7f13314f5ecc113182fef068b2bc0524e12ba3f40d61b3a1ccc0df1e7603cc26c9c5f76f1b8c4eee0d0ea51622a9e851b1c8ed5b7e9c57b7bfa01b5dd5bcaca578368eed441d3a6feb7073c28f6c6872eede266d0a29c65b2fc51b0b4627d8851f4f2a649e2017b7a8c6b600f5f7285833dd02a576f897dbc627b22bfe53922391d696dbfa266d4f4f438ecd06590118a6ce28f55aa9cca8443c95c8e842fd6b3ae092360bea19541825418d506ee83d168a19bee553881b9c7ceb85815db6e51c081271b95e67c7cfc000da150c8c93b66f4cec041e65b0a8f899032653eeec6f3c5e603b6c609011068cda573940e08a2bc50c7acf32f2ef39724654e513f539556ca5eac01c9aa1557e23cd816e13d282ef0927ff1467be1bffd4a893f890639c742a30d3150d9d9748c81a6e5b77a33d89887a5a71dad45202ceb855667d9bab072819ac1e64f80943c4a6c9adc0151e1988912cbf18936b4d324a91760d3906a6b9943eb61e83227a1b5b82368ac9c962c18f0e065ebe1e4a4ae4f14c26018a409f46028d31403f41fd50aa8c7f5e54cf81f1cf1564fa5851f1ec0810ad88ba473070182172a756b237d672027f92f6f5967aabb03f5f4b1324240a156b8b6d2f9beffa4cbc840aec77a5015d557fa789cd64e52cfb1576ae2174686a18c5719c6e5ad72775be217d0445c8471af4e32cffa5e896bc774275636bde3f17adb3b233dbb3cc56d13e8bd2a82cdd1e52cc756fa520bb41b839e2aa102e6de88d57397c3490ba845ffd1d9aa7477ba9ddf3991d11979894a40f7e1c8ec3a277cdf182882db3eae64df96f1aa25b8dfe3e8a1c2ead413b2db2513e8790fac16e94d274721f3ba784d5e21c44c1afcdb1d98494c3f8b8faf8bed96381009cc9e6ca4d373bbc2b126590ea564e2ee2d9bd6ef9417709fe0817b495f4dba1921c70ca67c09c35c44662a57a65046b2f05863ad94eca0e07944617fb0d8284c53d250083f4a01f58928681738b84a0a661d611bc9bbf5d291e31667fe8dcb7649510630976278298b70d74a779aad52060a9f951452361a871f91f53f6f56014b89eb22683d7393da7eacb4d652d9aa818c12068364fb6bcd8ba325d36a8d7967715bd7eca3b47576958c33c126505f96471595eba62c0f7b5ccef8fccdea5c0132021604862d34382aaef20543a6e2ede64ea1c2b391b1f67eea8ab6da8d2073badef2bf86e86bc62f8315fb7a7721200f84c8c3c2ce37005ca02587f75dcb2822b477a386eba179069898352c05bf55797386e5ee7ac0c32c55d9e9568314e87bc6e53a278624244e15829a156e9c1e6810d834f9696b4b4cbd4de736350cdc0c81f04af79b49bd86a52039653b20be8574a0d98a875b88ccaad2b6d8c5b3b2b878aefec629655e793bc917334cbf5cbb19714d3a3eea5ba6b2dba9e8189fe86b3851bdc8defa660e4b3d06430431fe519f4220aa7329582f4773d77a5a14b791851297dc077306f65ff429c66125d4d8a0c886ee16346e4c719742e7aa3bdfd857a3f562f8c25719224af49af9a1456042e42dc16be7594a2310e950b126242a607a3198148499f43d7e7c0d79ae583fecde2ab0bdea7784bb5a3954c52304b5985f89c3171ad09e03af708798f92bb71f3039258fbd87fb7d59622059ea736549df8f90545732493ef5ffb92d0ef9774c6ab2bdce4f594418cf4e3bf7e2c06eabefa88a4dfc7737848a8bb88053533b2bd7476c409b89c5ef92dec1c555557ca84ba3598f52c281780dd7e22655db21ac383712e62d4540a1bc525fb43bcd78317a835d0ca32880ea9fb64876ee1ad7ccfbac074326498d66f8b9a9c41cae0efd269278ce3fa4484e70576cb261201f558169213ae1df0e1149135f2dc578fdb8ebd265909b1a34d059065fb7558cbfb360bbf1edb995a8b2c4d1dd0fa874c7d8afb02583523c57932dbef11346e99a4975fa55b9bf2ba22833240568900036338c8ab0d1824ecb45f8b598ea44ee688b7c751f3355817b9e66a6cbfee745e07672b0f89a3e08b6a1b1283a4612945037f7de9844ee39d01415f8804db03b34aeb291117fa075b68c9a2fa6387dbb2f21daa1d390058f4da7f88d5f86d9b9c2e833911668fe4830c2e228aea000a45e03ae72f489a9223a7cb3a78597f2840a4917f196b1f26f2137d94b6c0df114adb5cc359b786e3152ee340002a5523d511f5460f17af072ae0c3b24584ad11f03e2c55e5576eb7b9f7767e5548187d94dd78c6115ef7e17ee41ba1066c58b2a47322e3553e22a7041b996dc2924ebde95293d915cfe1b41bcc6bfabc7e2cb97ea82662a8bf27e73f062ae94c0d49a7df8ff6ef541d365744f4f9f03788ca71abf19ae87282b9d5eea5ef97644e0c41e33c8aab47a26fdc89546c2809aba9e35d9b90d76dc2f2017464d0838b3773993bce6be4d2a6bfae5d079fb48d133647612cb7724751aae43c1945c8ce6ab55062e40a2c2d9f13a7c17398c1852ca6a9bf56265f6aa034689267ce26d625d4855790ff1649c61c8475959be7c4387e9857fdce2df9ff890528b24ded811aa86db0ac1599a6f1b1015e29b58751edd0a9766c5e8e40105b91e978a2f54bb750fb94283586ec7e2f9417e4355c35ab77e6a25799dca6e6d662929d4289585004fa2ef1dd82a2d1c47569843a05fc60993c00973c4e3cbee86728d918eb8968eef379d22e441d596170ad0623228f3f8b2e651b91103b3f6d54afa3c3883f1fc05bec5ab33d818100b2246951b41e04404710b0264c8b0d22a62e0af6880fdc6489cf03cc0cbb3e6a1f1273a0996715ff9e0b9632915929f05226ebeafa3d406b8517c63f30c683a2cb398c208d852e5f8242b00ada6b103e814facfdd6c37cacf8146a7a8e8b84fa75223465de8c97c7996003102d67552f8d2ade2bb8c95d9f2a244c62feb6a9c8c0e1a34ad64dbc9dd8abf959ab1aab2b3673fec5b5030ef1a43d3c0b3835de687008eeec6a8083a7e2d1c03f6c164bcd179168b2cafd6267bd1e3e3b5168fe909a26df619659235e31f3d4c9fa8f9e341619c4f6d4ec635e000294c8bff7188cfcc3a48095b53dfcb666636e4f2201a990ab7fd82b6c5f798567b63389522ca5c50c4fd4851bee7548b227bbc593ddef6a03a60f2934fff5051f29ea3537cef0b44ec07f94af60ee41291175c9066145267aefdeafc77dcbcd433d4ad3c18b173c63f94b18666c3cd75b50207e9f04adb646690d02fcc7941d3c1148809939fec3123b3703468b919bf3084ea0dfd08a5cb793adc8ac71fa02b169b8532340d03eb8c036a26951c79f2684cb09af7e7b2ac2628608d354e3193eab9d52ee82fe4820717488347e963d1005744b320a313a4d4e0c17a971ba2d2117870e9d33058bfdc772c904e850650d8dc6c84d356b5b1593b44971022a88ff1c42a1a43779fd2cd12bf64e789dfa1009bc396cee588358fc395f7e8c487574445742d46a1238ce8adb2102eeacdea86f9b72dcb45e44ce06251128ae92229c86da04df0838a712ecc267493932e6163bc74db9655edf2db60f8179d8799bdf2a446e4869ed2cbcc288976d483eaab6b90f440c876c9b5382e153c7fac7cff9e96d191ae5c7c3ffd68e70220c2beab7449d055930023c51f108237d9783fd1b79aff6fb4317306bd56ee3a15ed2461809773d688b5360d1f26c8e862aa4443aa7fde5a2f1604e8b8ab9e5cd9e67c03811dde649f83c244d9d5d64f7b2f6fd8c93a46963de2916beb7b45735ef0e078aee34728b7d0df2e5e692e245168a3473327e6e9d9183a83a115be6526100a39e216134c25d6eb2cb73f654b6aeb8efe9958387121b5318678cb1022df58555d3f7c2de86a22e1606f4615d80d86627140163e7157b625e7e9d2642ffaaaff13492d44d43a99c67c60dfe01572bea6c00a0d209040d3c194b8399da3c61ae161ebf878304941c3cc817c562c3c1cfc21c9bd8dcbec08d12b3c08f28fe06b246b155287cb60396f6d7c97b850d42aa1e29aff5bbce5cbb7f3e4c72bfdcfb77028e9a86469eee1d35fb2dfb16bfc0c5d7c8d11832ff9afa619fc4bd0ae66f85616516a98df471a28b9b86a8e218ac9980411e0bd52fcd19d2b84d6be2efe4077a19c133735e582c403e5e892152d26ac74bc63f43e702e12b0e67b7bbeb93b4af9ff2f531107b14b401d2b5cd31945495c378b56b550bece2fe8c79b09a9821d3b51be913a47d6ecc92093e82634c38987b053b26a766e1c36e6b9362017fc75649cd28a2e44bae558851c746ecb510f8b2c4044504d9792c3563d24dcacd9c99e019749308df29c14b303bda9bf7a5dfc511174eafd68aa1a65e395492035b09e75aae3832b5cd81d295ecdd24ac5add80b826c0eff7d65ae99efe5cab1d458a5d9888785d229e4f693c319a4d036541042d1a303f90a08931877c379fd4f898699742453dc94d6104858bb1a5067a070ceb8677c4db3be32b472d27f2539e57acda595d8b922a2bb7e2c2a18ac3cf1f678051097c8aedb9092ca5406afb3f179af5d33b85913c4cdea398aee819b7106308c8f224230ea2c8b1a1c877980ae2d8c7c7436e23ff7b0527069d116dc2a06761d9016fa756d1e96d75807fa0d67d4f0e29a7806388f0f7ee4798b586ab4f4b60ba85ca516d306e52464ba3207599643658d9a3f3069b6e230869a48b478e99354a88cb1d84a7070b6089e87ef0a943f69b77e9609f8f6537fcbc8a09f13d19fa7f888a28e3fed5a79d0ddb9a034d5fac8c9530e9c2ee14ab79332a6c6721d5522230f7dedd597fc5a72c58d12f01957d8b00cad9f8e358ecf192e179eb4fea2f1b8ffa924377b2a75575592621e7d2f28d9ef06c45fac83aaa14eafcb794a7b68af42ab0e0007e38b533eb0277e9f69490ee655f97bf17ddfcc6e9003a474402070af2c8be3ae663dd4db067731e70ee5f00d605891947c18d26a44ec47d94a16db0b820f26ed59b104dacfd5cac78efa8ff24dbd2740002caa00ff15a98c59243310655302864015be83532293d98fdcb99c7a1d0b819d962ee266924ba692f6fef84cb785f397a00188d111ba53d1281edab804f9b8fd2e4d7114672ee01d282bfbeb0d7f99040a5df7b89abada5ba44d991c7458709b30e41f7c26b1bf9da2af042b7a610517cbca3ac8f6268051c2815ab21dd453993b22b3e16dd9e7da6c3ef9466a9a9e1aa7c5e291482094544e3bd0ecae76ca32adc59b6edbced3a91150ed7a654a058e4c86d71087b43098022e7bbe035fa94f1e0e97d04d8e60c4f7d589ebae1733fe1f8b5f62bcafbe23804e38b64d287d31601e8a31ce69a92ce2de332ff94d67d982b121da2379dbabdce575e9960065a6bc5dc1c7ab38a621d4cf87b0b0bb156d8ae19f9f3a295e18fcafc968e5e409a0d90ea3cb73054977df2764f7e78d90874acc46bc79d0aa177147636e71b45d00c8245b67e4bd1216b24afd522bf91ddac29cfe34e5eee1a9212ced6576d2546179d212c50d743255dde34528615bb3ddca5e2e3d0a07dc71538b63de018a91c58c12f366803f7ec16c7371a933366b462fc4c37f9ff90bd45c1c1850aab59d2d0b2f86a9e18881d8351bc500cf6e12d7b61dd6e336d9c2bb690bf3b99c8078e4b7b1bc7045ffd67795b5d5c62ed90f5e4b1508a2577ea67d89a0744a5dbc5b1999279a80810c509ba898073eb53918a38f53b0033c9b18b20f72e2513d1cb85dbf158a3c4e7128e411137a44255c9a2ff84757fb1df39ed2dd2394215ac4a181594dc930d5bdf4f94480c19a7b6eade1ddb85b0fe14632111f5f6b2ae17f4ac483efbf8ccb5db3219488e20097ae338fe26b97797f200d7047cb9c3bd2a8368f9ef2a69e8381a9f6e23a12e040eee6a2a9893c4e5b4f820d508994926a1503129500b72b64723dd11ee4cb3316e6aa30c88e9a219416d490be76cb1e938558f31e6fe23046aef503e5055b1fabc4026415391932a6282ad553d7d556cf8c3cc7a7c4d0c02065673a2fbd8c2a12b5edfe2e522e30a9d1785250f23daeefaa46ec39a9c53c1a31b40914037d0e91efd8ad2b7105998f9506704194696a90deb780283202b2d8b4b49870fedb097bfc057d22bc6565d39e59e2bf21a7e0953b1e6ac215440c9203a2c2350f8852dc6137bb2aa2a984520dab3f81ddcaea89087f0d9214645713dc932a10f29d6adc914fe3cee10f413a46726df0b033156391d3830c573f91fb952c269a4c43599187951162a39f7c3d65babf0af5ee4e25df0f700a48e812ddf1ff83a67ca1a248b3d4a5435e8055a13026ff1ce461f0309910f804c4eb06b520fe97012282621d382bd3900db0be6bb92d6f632b3ae298517f0a6055aa79f75c321183b6b7d4d55f6fde6af485f909d2a52c85d61ac9f9c87f4b1dab24bbd27715595ab215036ece770bbba9f036464b86bee3b7f53ba037a5f432605e390fe6c8537b7c2d9fc8f207314569a2a0194fc254a8a4f24c8b5c15b35541f8bfff1bcb0ca82758bf4c7d9c85ea911c65af7974a40bbb71a461178fe83c2fec1486912615ad53a9e3a7eec830720d1e461fa8f41b50da21d7508eb381019cb5252a13f3bee641f8813c8d40c3b63124bac99b9c08555f1696a836205200b18bb180e0e685f0f6bae571f8ade66dd173cfb532a99272143f9c18cb974badfb82642b964e0b236e0bcbe8323e6e193205e0fa7bef5b591d09804c1b2153d59c1c24306dea7cb07e74c0adecf42ebb990550b972dc7735303f5a84b489780642123d49e7a7fdf2b9e94b9a1d7d007d093fcacc8039a31bf33675943472e157612dcde3a985ae7863b3888d41739f64561508eedb2c9d4db1f3eab0a26637ce82ac72fc0bf32cb508828678cda2cac476a237604a65b405fce89af2a00bb90a793143279f5d4631ad90484e8e209bd65844293d704cecf84962618f80b618d9f0471e03d918d5a337de8ddc00c0ee78a72747d76ef164553f58171400631528af8c916bd418f1a43db2b9c9cd44d0f05ced4fdfedf26c8d13f18b09380e673f9ecfe63c106e3232d15829d225f539d4a36588b95e07c499f5ec8d360b16aade4b53e8d206a887da12905de80328b8793cc3f00c463059ecf47e97322d12028eca54a8c53df0ac8c646724ebe0dda5f237650d3e944a486da8f6712144c19d5956caa316520084ce8ef06885ca0f08fcb40522b27975ffa0a81cb8a00faab1c1414a0230a30d3f9d9ea0cba0b1389a78f361a1e1c682345dffa0a2c7521cd534f4a5fbd97712a497ab984f876b6d5796134d49cce253e334ddac169f2e7094cd0fda53de2ac106b95ff0c0f3e315e12f4ba16ae4c50fbc06af4ab569d8b9312d7b9280c7f07d399be160ab779bb2f065711e250e1ae119c52fa0f61eff1047e5887a4a33c33448401af9e125032de082ec92b1f31d73cb46a44a826afe04fc9f0d45eea584eae81df4c74e2222ec0c61281c29822c0e51fe762047178a1b30334f1eeae1822e3ee98df7131b852c2a6c125aa065f0def8805cd3b075484fdb99b54d99bf93a5ca89696c2baf4bbe3e4270791b3a9aac14930e320ff8d6e5c97555ba026874be674a3bf93bb84eb0ad3c13032d2dc06d954a865c13093c9086843f016c42077085c0d38f04929f34bfb69991337e027f294c8103fa435677f5b4424fdec7f70d3987c81b5c1788d24e4867ccffac67e367f284715db821463dc3bfc7e0acb1297ed8c9563d9c8319cdb3cb2091b3688d0a269dc1c96e37c70ef564906ae5662a68094711284c88a0a0c65f6f84281b94b689600b0e885a69099aeeabcafd77cff980e0639b69705489691ade7fe25a9af89412d6c2c309a73a58daa127c033f56d11f3f47f4118871f8fd20745cc52af6292f95a20d255eadb581d4a82a06ee6c7e271960d51ac79815a2918233b12cb815cab17b0b2736db99c6a3bc8b9bd18af6f9dbdc9b2101d4d21c2cfa5c1b986cab7132e3439f728a127ee54f39d6ef535b829b1bf21ec8e6b9368930073f5ce110f571090173c1c8027326448f6823800a6c47c8950e5cec48c8de39216da2c980093085d3263a60e937c9ba118dc4c272df381903b7dfcf41c579888cbd8d771f0dc82e9aa171b3ef46543c86f5dbd306d427a97c9774f1f686c784a9254747aa94d7cffccd9f9faa8b562ad4fcccd7fb6d8431314017c4dbbf7d393d29097abfd13c7b4a71635ec5aebdbef8adce30411029bbd83f902dcac8042d59b957233084042038c5e61fcb69acbb38978c858ac22d40ebe32bdefdac1bb990cf27190941548d30b43e1620830280eaee33ea74d04b602cff55d495997f0f6a092e2f5aec7cfe65d87763e7e994a1b97a78618aa19e9157654f2eca92bcc4c6961a729c9f2d1e67befa6d289afb5f13fbdb345d1f693a5ae89e26555df5b992d0e7a4c807ef5400c0dd22e7378c8a725ca03b6d99b93ed71ca1aeae9ea155bc7ea198152e9fc9b8eaadecf9f0964819e5a4fc47098b028f82a104bbe41afea8b99188e4c5fa7642f7f1061d8d07efebbfddece848d6662d3992040510ec62c34bed9e83a57f13dd08c8910d0ea6689b0fda4ccac0836adb01c168415b0e4676617a7f424cf37ab02d36a8462f81718bf9210cb41bedaeda43f8729b64eefdb8450c96b8a86e693ada014fac5527809c00dc47d8188b7252e1baaf230aa7d1f36769a83e147caf92ddeba8228e569538dd044f814c5bb3963a40a8d508b85be0299137c3a69f309dcac2c83ad40ede4a3e09532deb6f79b8454e655fbb05c147110fe0b7cf92a8cc7a3dd51a25459cea9756533fa9ea3120bb881e825f1a8f9afc0950389a5149ec0f5d0d3a5ccb925960a150aaa3581ef6149d72852cae80b00129204a1a44f95efa01549acde8cd9e1a820538840777524ca9811597a441a4e6a538a695575f3199861310c9caab95ecc20a443b1e0075919a015980d54afdb5b106e9cebe1427aec6fddbd3952c7f185f87e795add01c2f20a35d232a116542f7d9d84211c8fe37ea21547f50089d076631195319f27d9e16f88edda23a9c253dc4904408824966e0ab68813d8c1c21cef39086473b16cc3688fce7ac3822b92a5cae0a8eacac88e8bbf041af374032c5ec78dc12e8e657e4ce7ed493d0a96f0202a07d7c7046c4f4e15a18767e5a139ef40b3253610148742a08bee9b201a224bf190747976df7eadefadeb737d9acd77ea7da6b84275ff228cbe1e9742bf514039ecdebb5a570e52eaafc41de509fa2d3f5e8d86f0e4f4a124682d7652b68514c2921070aceb1ebec5eccac617d0575fb10dd658c373d803da8905c454d1ccb2fa0dc6687c5fbeba0eb885ff5e84a987ac4a0026fe7a8df1720da8b765c4b721daf52d4dcda41747cb75b821dc8cf6add988cc72079975a858b3cd9cf40230c4d6b163b6decee8d0b4eff831aad65e38259f74b0a60322a85933aa8fcc56d94cad4b54f2a554d653aee8a0b513f43eac7923d7d0100ec9629a47aa27219993ba76db4ecf42e94569a8eb40fd83652af78d0d6ad083488472e0010e11d95a082951fcf4fb07c9577b17f1fe6d13d89e27fde46cec777b31651f5be86541cfbf7a084183084ba44165bb56ff7b192c1eaaabcac3e8b2f6bd45f1927f2b15b3bf9371ee7d4f6b8e30bf955604f52512a3f732cf84c98d018a170fef90b980024ba564c3ebc3fedeb881af71a00602dafc9344119792d10ab1c0ac1c9def5e6ea957b53072ac988d0d1bd6af30fd9479fb05401371e9271f5ac1c56a50d7863d6e62de9765fedf847605978cf333a3002b920b38252dd8cf9d54df7ba6d963d8f469a285637af327a18a1011f6d3ffbf9ff624839e483d361e904db987a5c0dddfa497a841913cd8d1c38435aaaced284a4b905238905ed2d99034e70c35ce50bb0df01e5f08d430d2d64298cbc74184d170c82b0fe02c28e85325560ba67667dc0e88bbdf92305ef03dca659f096d419b5176f75900de29da3e6c1eb8ef7cefaf3ead5a4b0508213f2cf00c939730af3893507d76d7146bea7286ff008f05e109039f938ba93b2a0290313afc611ae32db964dc00d72a15a013bccc25e87404c583f91e88c788d9fb8364d9ca85627044222f1938328324be44a7cb109f56302bf1f4aa6110a3335139fa44fac3d2c81caaa6051dfd7336322681e921432491aa1f71e4c3b7ab63ab36fd02bdc6af4c3d2d1a436cea21e53b2d13c04bdd4e7ba02cb872c0e3307d481ab43c2a5e0ce93f33e86ab99d7c5d533735214bca6b71b67e2a3c22233d553a8c39500e977091b985d7bcee26af0409fe01e270ad4053b8a3073fc5abd91e4012af81cb52da26eaf7f9989a876a86a50734aace8b638350ce88a504d889a780e58e3a76426414adbf96c5266c651b64e703319a709324c69d615928a479573cbb6af0589961a1a26d4771b0bb6afa60467949eaf3515ee51d8e221d93403af1d4de3ca9b2138dbac085d01a86a62b8f949c38d4760c08a1bd1434fad5399827a1716aec9d97b6e664d6005025db5bbdd7a79007b6a410de8ef401807ded51c99538319ce23282707a007408f25983b0facc38e9a1e2bb2a590f2de68bd23aa8ad43418007f5f6e8e2f829b0d5d6cd09200761bc644f780e344d070cfcd0968e6ee338bf526053699b9038c279e840c2984a938a4ee958249c11c7274d8e1653ea6ab4cd6e332ba3b7a4bf40febaedf4effb1035751b88d863f4261cbdb651b7418a0147105c884c7255661cd590fb552b8a2903f98a90198d5c95bbeb6ffd905a70b6df946f764c2d9afccae77a925f2f8c184babfbe2bb943ada37a0eca62d5bad6e0cbd5f37c0eaedb12d1aab1e3c6b7c7987f8b2ab877f729b1783c8dc066cd526bf7c6f49500272b058fe52f92ae93c8b071888fd79a5792afd28efd1b4b3bd0219c3811869094b218a2a718cd7be766ae4109596eef247540414a55aa88f96bce53f43828b480317dd8292542500a680f91f83effcc60c13f7099acf454ff679ae685ce7a86268cda27ba117f66a35776042ae55ac1cf6306b368ea82579797c2c3d60442885b63091baf8f9ca8e4822d21978fa43692a172cf188d131bed51193500f0e7806edafa8f58c6bd390fa01ec5d6b41074db1ad777e4409375d7d48038e58e6212c183637247bc7addc8c9132994f5ce51780ae73b853f646dc34304718c1568de8cde8dd2baf8ec604c1fcab70f5ff1c3e15ac76f477691ac8aae6a6da36ddd5e9bdd6352a2a24801eba99fede069d8e262c42180c0a2cea09ecb70582f2eb5234548f5df9bf9341198900acce70e756dbdc68b2351cef48273a6dab8dd8a39f23640605eea462dccde7edb34c8483e32de6d60a042a9e50826d72dc2e98fdd6e5e34c12030153a41ff6de4f27c778175e97298b7e673ac3abf725447b23af7e8cfeb8043bc0a2199c0c432c2cde3b7d6128ac4482a5d211328636a1684959f71c262bb54616f82862812a823d097e4ef8f999fcc04d5254d437eb6d43eef9360b1131230ca946e1183ae65f2985869df369b13fecddacce809c997b9d56aa919949b4348d3b288832e22e934e75431bf9b99f22ef7d63013f85b42fb6ccf2229f616eda910ffc4bb4c55fb0332187e3e2df1dfccb22ea80ba9f9f4b76210c57521ddb03e711aeb9056871f96b871997fb4ea2ccb4c4de5d09b6806f52b8f8f098e409d978a68b9615f6c7fbf844a613590223daac612cb0bdf651ceca6f17a52aad1ada791610e09268c0aac6299baf6440b27fcca262eb359f2086aaf6cf7a879767d52a6cb902ee3e03666767a7074e8ebee3bb2ae15c019e6cdda348526148f495848bc57cedb85145727f0c0f563fba95a563ede50e689b92403437d57efbfb5344fa83aa2c68d04e941ebbe09111671d8c225cd61f2060a6383308f5023b906f8564e5948d2dd1cf6db17fd485b92a6a0f3351a25e75eb4240a40eb76c93d542ba2700ae27ad656ad44f5cd056abb067d6a38c8326570e345961c159fc4fd447e68fb4f09bb380cbec32388a214e1ec5906396c32051405493355c69944e9a28fa4be004d9b673fb99927df935cae48c7aeba56225fab919f876aeb7c813c0435c2ae24581a570de57ddd724d18438aaa0e50de85e0abc0d984dd91598e2540c62eb423ee256e792a23482542836b1eac4837d405417354210143d20ee149d5644b9738e31a62f4557416762914c0c82526ee2a688fd0f61e87f4822a3714e592be5ddee68400b620eb308069b2596b0504b21f7e0bd2cdfb2be4b57d5d680c42ce9903b33c83cb9f8dbc100f7b506750b8a77d0f45f98ab5dd75a097ef5f76eb8bd9a8e8cf059c972b0ee1995def1a0ba9b89fb1f9287c69bc6f6531cc0f8851e9e69d9abe9a5c4074a613bba566fc757f67ab4277046c2c25c06d17412a142f8284d225afaf8cebee5fe71c8bf2fac71aee0f080bf6d33164667b1304df67b9d382157ced9cc2e8f65a7d18b251e090c7ee2843f3b9b672082b7a2c65d6b587b1e8bdd7ca7f352d81ef0868da25a5b1188a9d2406d4d7c5a61cdc10eb1ddc3b5b2bc6f6844dfe9c70160883ad8c74a06bd416e77af914b9984d5d3b445e729420385f77c8ffb095b3e40d16c786e4a6b285bfd5b8506f397a4d46134824172904258ad7ea8eb46fe88f8df4ba389b894bccf23f37467897239809074e490e9efbce7cbabe028df9b53fb8ae989240690fae12d6a1b3e72c22a2d0a594fbbae444067927f226e9b0c6606e1c76c0d0a2fc4966fb041fff855080cb0e09ca615f4008f339c6333dc962d01ea6e21c9102cf6cb3c3cf6723c16c185c45953d981b88e6f361ecbac1585e589d9675042e76e2f2b040c5292fad23282a4a6664da33c65cf6c6d11bba97be3abbd32663607df61952956ae0f5e71e632e74829ea01bf871153071e50ae838d367e01a15b0423e34e7af9975068678764f5bd4bb94493df9d4e364d81f8130a72892817b6c0bbff8bbae1f063ec0aad3047d4d8402ec67c7b941a8ca9458e788eb9207f016107cfac7b95fbbead1fe3af4e5ff6da814ff4026faca24e5163e394034e763c9fb36c4b71bf40d9f7a69fc5ed1bbe73065db97de21a06093d2007b8f0c9b0fa46683be91a8f83fd9533cc383f42b0c9f7b537b10fa193288b9088f1dda72a32ddeaea88781bb3e27862c258ebb1bff792e937fbf9791cd9e28e0df20dd423f658adda2df5c6d10ce89cf04fc7c242de80a40fa11756742ad9cfe00eef9226fa6da283bbbe4ca683a37fb418c68f039c6838d16ebed91deb7362b6163b0529fa797bccabf85c37acb8b87e45c0798a720c9a60febf8f19ab496c48fc112c457e128cba2c4e99f76622118148d392b1085c21ecbde78f2963ff2aa39e7fc310142ce4bb9634251a7aceaed93a28eeef8dc726770e1723ed4199ab8f0e432d22efebb3c20a258d0b21073e4fe6bcccb7332ed9a1e124f217855d368f978ce3ed06894a133b9c7311e1e20825d326a773118fcf20d86ecd5f75549989c2f6428f8dbda7e5ce20b2571616eace8070ec2f645a25fc9f7d8cf93f71730dbda05a8c0833fb818c302534ba987d266f8d99cbff80be84ddf5cd74190564140c77a3bcec094c1663f021689d965dfc967c6841acb312320e2940f088be9951dc8eebac29628e9e456c046b1056ce957a769023c2cbb05e6fd2ca47d466bddc77bcded3119cf5dd2a5cfb1608ead9849522dd66a38629f5516cb6de7cbe98cd62ffff0dec5fe44cd72d6e0d43dab379e57ddc9209fac30579eb46998f917b01032064db9d97502ee7a07293073c0cb4b201f43da724bc8e8165d2be53ddfd7771bcfdcb370b4bfc3a0f430c32a4219b7607fadfa1d5488fbd729cab22a869a5e5262bf329bba60d901cde2a6248197021d0d2fa230604497f785b5cce4bb1d99203b221eb52de1e9e523f589fee6c5102d323f3de0f4736d0d75ba8d622a3fe4e8a922dbf285f92b42ec536ffc209a290b55ae9685d46fad9ddfd5e21b7bad4ba8ad66b6d526e6086b422bbd51a2e207b3cb4af712c92fd8ae863aa62a8e9c5aaae29d8788c28d8bb5b057a8a9e79d7e910ab117800a9599e134fb72490dc464b9537a3f50d5c771aa6d7c1783ac3c1f3ec77e910f97a36020fc27c6e6ef5221e125460563ac4f78665b3bdc4b5c8ddc2f0bef0383dec3e67bf96e2cbf085afc220ca163a2cc33e6dca1150a98596c648f120b4c932a8de90a48e1b8cdc9dc440276b176480f46936769a84968d164c0f95be925d89b631c179217a68a470b7a4bee4a3b9eb267aaaaeded4b04a12f29740cb47423aeb8cead0e0767b4ea21502cd41f7883019eaef1fb266b9bddda6feb1734e871af86fb0854d74cc82daa7d7a7cb452dfc7ad5c896018b0cb7dd5b8a616561b1bb9795f9124b3266253c75f2464293568b14bcfa33e7e8b4b9cb0e2ab0c68a682b12071ef8705c7660d4966a06a07acd2c6705ec6c010783645b45e96cd30c981e695a569e1126c1da01c3c5cab2b03c83a3a5cd3b01ea7e2bb76edf06b30934e24cef1f04670c43181b4519ab4b15a308fe3df46d65cdcdaa6c7c2f247aebd4f52e37e2ace4f6c9b20a577f1e88039b496a15f7dcdb8055245e9002cdb414860a6326313a2e334b930e168b1b03ba10c152a0ce15ad40107171e6e8c7c7022aeae08b4f865739c869033b737d77d468103eebcbfbfdc16b891aea1fd6697fef1e4be5ce29db31eac02215330ac9d2661012a9b62af998716dfd6f7048452311040ac497cb413d7f871b675a6fe91e083ab4edc5fe54281ebb58555f8520abda75d899ba5f84e95f98655a7ca09a5b5de780bd194ffc1c2c88e6ad50c8d3f5ed07a4d874d3b3fe684b416eac54a10633b87390d1e4aaba8095e6de46825d225b795dacd708178b667ad7ae9fc8f910c226f3cb6bc6649a5036443aa703b9c11a4d633e2e3eee8d3f04b326a6bf4693ee031f065ff01f8ee0a0325b412ca230abcca9b06a8e88a66f2ca14c5d723e6f3f31b2fbe65adbed3b0ab6324c06cd5dffaffab25a37cee27b0149258321c47b20d0944115952a8b82a339ed355b39736e37f15225f7d0afa8b0328491d9b00eb41ddfafb57d3817dbb5e8ed60586550cb17f9a1f6c9fa43a6fd69c4a9de56cab267db2d759c0324dc6f9fd1b0316a859d5cef5c277723008565a6a9435724933e3e47bf0d644123dd9185006ded3d0741b683dba4d81ed2188e4f952f54108a278eae3b6097a8734215bb56a69fdd80a6f5d03f0ab16cc07d170f131603cad1149765b396b960a6198a6ef5ac447aefa1a273461174b7add49a487025b8e598637155b6fad8e8a7d98dd7b3fe47df571c6b1e652c1b7f2323704981dc6094a7f3b0abcb48cf4ff1489ffa573ebff01a3b9adce5867c50f465eb33e258d362c193af2826e756e36e8ef17334aae299262e987edec5805b97193568e3ed31ae61616fa469d12ab5889e083a54bdcf32f05bee7b9fce0a00486c5ebb0d125321e8c173008c92ffbbbce5b16e6de3deccfe50f7f32c958fdafadce9bff7261d4cac11d305fe74a294550b00d951d4bfe66bad02cf8a34edd39c0053cc4ede9a63b8ec3ab98652412c3d4625386a0082d9c9e8d85ca8a1ec385e75b59779013b1cd1489570c3fdea04a331f87f28123f8973622b615ee078a242fa5b45715525b2134245b07318d14b91b842f21e4bc2b684c9a1222bf124ffacd41ca213b30fad71e3ee869b7158962a5bcc27f9ba01c023e617784c040aa04ba975ea2c57f4ba6576ac63903b026407adb5097d29ca6fd07295f24ccd3c05997f722e1b541464f35a08b04de9f30594d5dbaa12676abf5165471936744c8a887b21ade6a743a7feed44f398d96a67b82ececa19b64db96fd63da902f953aeb7a592254d442e2423f385a00cd380bcf610ca3c49af4171136af85fdb68a9b488d37b41555422256b614d96e933f45774daf7ffb4ada70a510138170e5ce1b3975370a1e3146c3af398657f6d0ac11e3480bd8869a0911bc818ba7fa763c22ccc974dc96071176c96fdfeb17d33024bf69dc5dd3ce58434c31866a4af27768dc7fcffcc114ba093fcb5423eb3c0f4360a5cae79ef15868e9fb9c3673b53fd449017695af4318dd4c5e3d0ab1615c4c0c1a8155b59512facf50a1353245f4d5e6d722d4b81e9437753a25866bd24fb87fa6645268f14eb40a100af1c5f3db2e293da080926d188229c3188a53e2c742f00abebccd53ff3b215ec9dc4137097f59afe5692ac955094e3fad531f868d66a1e9bd58e791364cace8fbe694a48bd52a5125a582479520cb09072c4e019888facf4d55776c5b4bd5f7929cc576e8f4ebefb86dfcbea9c483253273c7f43701c2c5c1a8ca913382b8f9fc23289a44403f9b80a98014cb90e0896109beed3af891cd83d8d04ced0438f46d9dc9c052a988d823fe1b924cac61c6bc5aa56c62d5a76392e2716106b4124a9c114320207a91e1d49a38aa6ac5ea34d82af01cadd881fc692c67d28e14ef8903444d7fb84d66480491ed64b104eacfdbdf53e00867b39e2984d5db6ad0d7b380bf28e0a6ef972491252ce9a5e085b5c28be91f9e52d1be76652101c4b099d363099ad25e7469c570da06e5239e3437dbebbfb194ed9230acbcbf1267fe77ab8d350b00cda23ac05804db97b86571085452e0cf6e8628695b679a86771b5adac3b6726167327e7238aaa430a8b34d3ae1208ba7693441f4080dddce68e64fd24545d595a8affad040208de2f3dfcf82d2833b04120cfb63eb240dd885adaed2500bc53daca77d79c8ea5c1c3544fe0cd6c5eb958c7c43f7f9034793eecbffc8fe5b1269612bfc5ffa4d3bba6b1457f1a9e0eddff4b63e5a9a3b150d6bf22757462bfa4d2d0c7405d366e6a63f876d88d40c4327ea69e27f2fd43947f1d2b789695441584338337ee1b7c4d60e05c3825e0cbefe6c7de2f16f47d639f8c8522d4023c8c748e3c43999c252937b6728b06a1f30eb93e9ebd9331e59cc67e2ad5ffe7a0b43ed7142850776f89efeef49e66091692379d6a7e9580b44fb6543c9861073c7ddcc9ebe532c4f8ef294963693d77d89e5174d4a67fb5df006986c2cd04c9070b36b880bf91abe4063139325ad8034d06c5f020bfea7bcff7e5396e44418bc62c9511a4d080d2e133b5dc9c3565ed0314b3656ddf721a6f1860ecaa868b5042868cc8753a1768cb02d1e96c9b8eeef08383e3c037847d47a5d9d3f85bb6290ca3dac1f50ceb37d2e05758f48524731cbd227f63f8d0b572ef7bbc2b8a1b0ab78d09f1132a92794339a21fbbdee6eace7f6c45b966bb22ac6b9231852f8df99b0f6b5ff68d2b1f7c91fa61422f5360404c922ca6a6ae7b748603724c70341955e15d950416383916905b432839a5b6941142d367e8b0659ab81383611add6b65866ffb7c6d52538dafe3eb51db355cd5a9d760a187223806810b356bc6a4da7093795d6607f57ce0644bbc87133c646a3b42688e0dcbd26cd611afa42852b9d0347f28c2ae8f79ff5b921994b650fc490c3bb2415bc27c8ba91021caa77f5dbe9fa9be362dd15040df4760164f51fcd617876c71380983ce944a405bcdd3d1c74af5f2b549f84455c056379a04b15db928a19ff1e9346e1564b7accaa976a94c4994dac041cb959852b461eae78f5e7311fed91eb65feb866e562c9965362d6061cd41ab0a988ae43d924e346a66d50f5cbc19c8ce8583c84d3c95bfb8861f298b61e770203c500cb8eec7c91a8df7dc4d1f1629b3d1ee92438d6cbbd5ee70826b32aabbe83f75cbca13cd9ac21a5547142cd41c74df5ed42809985c950fcee1c9e075e4e6743b4b7cad263e1f4eeccdda32d0660e111c7548354c1d3a10da1a32451ceba1d7fe92b80737018b8731d8b2fbd196c68ca8038b9099bee65527f6aa83b8f9bd244f265689fb1d6191a462534b97aefd622e6883b83908e43c0787cfa970fa0f31237356b63acd3b6a1ae1f2e82c537321cb276718f7ccfd4a819ce606a047fbee6d61a813fbea697fe4abd1c9ccaa5c764d057f83a65cad6b7324e5592ad45614f23899f6d04f50d1c1babfb833291d663f44184faa5cb0f4066dd74709fb2a9470878480a9baa97c23c73b18c5d2aab365a0b0f07bc1373d9a3db9c6e3004e01950eb4c2f65bf354327bdc89ccdea4f26bc57787442d5f3570936bcf85c995dccd9bb9635bac87601f18a5a903e0242a2870286b671b840fbd7713cbd11ad48d79b0a0aad92cee60c81393a59cb9bb6edbecef92bbf57cb503dde25d95524ad2c12bb7126a10a096cffe78e6577372871c8967b9368b62bce515a8e1a98e086f2e1a7efd1aad7cf3bcd2ab6c818f67d548be5772390aacfb2a0c04fc528d3a5957ce0aeb87cdcc203093f4604b82ce57b48c545995cf7be047015d3b0ddd76e8aa006e515338a2c34cc7c867aad83acb0a45256846dd295c9afd7a065251ba25132c8b30d56f97e12f46aaae91552a840b67118e3aece1118bcbc036b2268894144c10e76288f1ecb7586420ff6e6775ee2b117098864c4f77d49986e57de793c8981adf952117804ca3b14e2d582bc6f00b817beee6e2072f9658d29d24691ce9355ab49520c04837ff2424f2575962367db8d14af64fdde06307dc1bb5e20a167986efe41e2b50a08f07e42cf57f1a2cc85599cee79c0e648c8ec80db9215cac880110d915ae25074dfa9525ebe50f83d6483b8929a949f5c5d5332c3578e277d3ccf43673f676b3adf1f514d076c65bdd697ff6df4ae2e107b95fcd7a6723d31bea52c52fbfa5fef107cf7dff8d0c0d8b5163e376053262285069dcccc3da0664ccc607db24e4107b238e301fbec65e66f75eb8137acd86750893bdc26dfe4302b9de10b842cc54ae9358715a555849124586b3de62adb7300f5c27d5a6fce1b095335e49466b1c8bcfedc5814d9988f3777eb31e853e7ec1653ae41cc76992f630512591c72e44f0b462b5f051eec334797b75d622d4580df04ae856131504d385eec46ab83707477a06b5af981f96567a858988a2ba1b43cff128a077abaadbd065dfafae13c9816de2ce3cc4adff50ad50a9c58942564065d9d7d16f88400c618410f9b75f7acc67699c7b536a040318357e41a5f7ccf21568e77fb335a71769b9572748662c37d2fdd33b817e31f9b119b36e2b1c26d62695807b1ea82acebb63b563804d7ac9e064e06d2a86d3040ea190403546712c8df6a2d15baa0b1bbcc0ab6f6a136969aee5f9a2017b73e1f1b5ace5a43e76ddd477bacf85e0aa1433f51b68c2961f4183662b1d4100331927d38d5700edb044adea951cc75a2ee809bfd54103572e71281b6b105109e668b91dac5a4bda0c2b38fa5c212f4b1ed9a17360558017c60c0ea01f009e4e2d25ac4c6783a96d9caa6f35055ee400d82cdf86e192d0af031882bee3fd3cd94f1b4eef6689ac5ca823225d6fe8401d4503ca04941f987e2f89c78e4e31f91a3386140cd74ba58005677788bf6792833d0272404cc300671db6dbe15b3b208b02f76ec8bda1e13e07b50f846b15bd2e86be6298f05a450949e6ca721de43b4bb5dc51c8fac2c484f3e426839a69a387143b81133089f7c5e7d82e2d6c0632e8f4ffc87a02f90dcf4da990bbc162c22aaa298e3443901fbc06960fa9f1c519cd47f85fda6954c30353f52ac3336cd26474dac772a02527f675a0b360484c70c53a94bfb0ee66e9167177f2a1fa21c5171b79dd7dac5dce9dd5a2ca9540ae962d8598983413d58bb0487b30ea7aa76cc3e6886c7eb474a89754226090bdabbeac2e25358f4242d4113beb1a036159b82ffef0e8ff0d898d9142b343dac8243bc94d7b5c06a5eb9161b08a4f6fcf766b4570263268f36675bc66930e8c3d91c982a161153a25aa8fd32f776ac4a1572af4619b35e9347c80a4ab2878474b5b7d570a2da144ea2f1dad36be08b9c445535ec591a56031109ca8fc355b4a96dc0734d75aa6c027dfdb481224e107e5a32c6fadf5b1b5610504b56a1aa57ebf4923c0b91e5954d01bf3dec109e08fa03038a81f0d42d1248855eace01f984812a797e349315c3427222319e5837928df4c856358318973e1a50362e37e1f47dab17ca70f43996796c37ad09f49f79554b58c1272257a27d05f7742e12523fcece0da44cf3fd8ad9a95e0f8230357c685705d5f5c08d57e7d5162c4b3c154af228d1a2def74b6b5363c294f641cc8d40adc0bce4a39d706031bcfbe012e35b3fb0516576c172dcb4c3ca179f33f6b32c5ad7db673bcaa1bc372dce49b47648aa4fded9cd79f893ebc6eebb1adb49ab85221deae067f6cd505ff0902adf13508344a31a87d7585b5323227a2e10c3a25d7c48d0cde05ebc132c5583f8e852635fb731880389c2916c0fe47e593a7f8a81b5fc3b40a60a7991d91e2b453ab8b522276b44a2ee4858dc07ae49b675df036c0e7797e39c041b45e18389dcab61a98d5d793c4a035f14d75ed8e0658a9223d66bad83bb230d383cee5975e41d54595427ef9c8fddc1598f16a117ba6af835da9c55aabb2d070e246424e71fa8ac4dee5b1e83a09c7de3a40fd0285a352b567dbb7faff3c3c79ee6aea805c2be4c7b2111456df5f27ec206bf6ac57f1517b9db1b9b65e11af6f815f88188255f83d9f25d5b4f87adbd2fe9198a8f802e54de98ac67a2ee9d13c45e81a1d8f3698606e3928770175fd3f1f184ad9253f37fb363d2f363eaf94c142de6f9952d4baadc6fbdcf5f1f6178e95ab20587a2253bc0e8966d6b6299edab4071dd688f389c9426a32ac1eb1a23c8c8d24bdca8dffc97ec2078352f41691a30e226de59717163615c0d224ab06408a4c7201c893ad5cf9fe3fb5572bc0b850adf1f09cbf18a018ee9ffb9a5661b7a240a652a757614b90d84d74a1a9d166ca49498bbd6aea48926e30c749ab110278f42fef5382c4a77b742d711d38ec43340e6cb794831adfb90a218247cfbb9a8119b6c5a542b81a2cc419a032fa249ca30f5dfd32cd95a5525302993709695daa993c5cef0261f1d8eec62d3698a8ad5731fc34e8f25640a62e71484736ae781a69b3b683a382bfe7f42fe17fd6fed6feebb714892e5b862ffa22c993be8a6910d338e9736437ae044315094406dfb00b437efbf50db78aed6b25b5a29fa6c5da25961402c20ecd6a8385fbe6d59e9b2e4e637f819f379d7c7b53e7b2c1eb584f93f675b6fbba4733396a5e7849e1d8ce9140ff1fb9ca1493812aed48dd786d292a977d8553534eb048f722cfdf020b2a838a7c14490cde21ec1d74c19142851b2d48eb187571e504a4398e2d95bb01aa119b84df69e1a07efc28729633b80cbc9c5b01199bf9ea35cdc9fd453ffd105f849dbb1666c44f5d76a5c37ae08d238c206a89fd16bbf95c2b9df8f605e57f447435fb20b658c9421ed44fdc2a31efd1381fd8e0c5209800dfd47e04633160f03cce3dd70c5e25b74c992a19ec760a3e6fd98d64605f142498adeb5757b1161b161ab4a30052b323adf85c6308b61813be463d4e950591ba2c3493e824c088f4926a53d47f7236a87cb7378da0e95d19af62d282c8dd66c076c31b6ca49172fa59a541ebcb5136cdd9b29ae602d89f2c4251e545c6bafb5a0aa5bb27dbbe1707d4a58ee64cd3af645eeac158d7058ee1199de56dc7927bb148cb8ee8bc2c27e758a83e26463d8ff76abb7875ed19beaf48b5e407dab1acc119ea81f56d99750d7d651a9fca32f2ccabfd18c97bc1dc62b7b86cf0f2759ef5eda4ae7734bff4d9bbe96b292e45edf2fd5022f23dde741421118cf80d89c067f5f7b1fe3bef99b503d165ebbed37c30591cf797f56636a71ede5188b2b0bb159e3e1d6d75511c821f2e5258cb4ffeec6710f3512aa88f0649d6f120e80584908877a8c9e0da4e48c77a7f5cdd15ee25f9551c8522d49d5c064f0abfedd5dbd9cd57b4df43b4b596a9c3aa60cbf058b2e46bfffb5b642139a8410971c5dbf28db97b6546fdbb38b5be6fbe6f1e7cdafd010e26008ad477314826b5c884e00b41a1347b84ac35f23a52f9852c45c08bb2273454e32dd910c61dece1ef599abd3fa26d600de6c9a46a31f112e6332143da9375d8fe2ee1652f6fe8b70cbafce256737428113fd89bd98e521d0cd275e5c2834a33ee2239eb0a97c6430979fa9ed72f7c605ac5d2fb048900d5648468bb320899c0a8a5fa1a669cec901714783a65e8f06946b497933e6faa4e3f73b55ba5b46143aa542588d8e91c0f21645ac9acbfa910bc2170c1121fd5413ab8b56688c322f9d7f0a2d5cb93fe3b54b8229c55ce877f28596ce2d5ab4fffe4270904f09535b4563984e6cca260bc01838b6ef5b19f8e43015d8973f726a419ff5a0b6befcaaa7cd4ff3ea2f11974922b44ff4b5bbb53258f98226c9de9b25d819524cbba266893e165565d622fe7f1fef84af5e47140e148e490cc3e01d5c072cc27b15ddaec78351efb0842aa09d5c521e48136d095152b4aa0056a50a3edd8c954dd2f8d031bd6a7ad26c6cb7a9cb56a56c505e119d3caa821b75629c6de14474261c3ea5bea3b28792da4497572a7dfd06cb2d0a47ffe85689b34db6f1eae45332f0946df28d97e2ba5a4a8c419c0aea645524b77c9938ae44a4a80c96277525c36d7471fd60badbeed3de9643631083315530e1a6d727a8d060836acb8ccb0ecd5c3743683949664ef04328af2dd1df5e2e7c0718888b3935355b4e6b326a2503b59a6b31428829c1562338ef4e0293b1f054690c102d6fd7da3e0db47d43bfea0828a1e3b5f535c09d7ba42c0a02d41fc4b850a322422824d61db6353c221f2a1365349a21e8e4f7ee4025749b5787350aef00cfc0f7aeda443ef6e6fbf53b4d1c8dc00ff0031ae4d4cdefbfc89697c8c5e000b96b066592dd3ede4912cfce2ff8a3953c9886496e14192fa699991aea3b3e9ed16bef13d6333a45bf6644c10dc596428afbcd6b41855f0b5433618a1c3ba7398f81b1f6678909ce8d8eb192f92e6d33a5d140ed851fe84a5b4b01beb436a9ec45cb1fe09d155bee20cf2e777d98a6b569b2a2e7b676cd7e1be284c774af71933037670f8e74947d19fe683d6795be1f170bf89ca63b45f9a2d8be2d15729d0ee17eca4b06f1912341e65281aa93f018fbebda7ea52ab1353bc5ce44e88f5bbb18856fe883c45f2777e88fd23b338c246763fba862555021f5b4e57aefb89f3fa7cef1d72193c056cef0ea2850d451527082846cec3c47176df281b21ef77e1dbb5a7618f893ee86374020a8fba045c566d2f4aaed51680cfdc5b81a3bdc15cf7fa12da1bdf57e59e1dc493970bba5942bfc7da8ec1f10348b200b91f7b52bbd83016181d0a5f81901724c732db6f27a909d6a76be431ec28fbc219e1e4d3e91f18d72b570a25a4f972daefa0a9694b050a5c22134af66ac000b6167f7b8414881695012f2cf32b990dc2c56faa43bdb576089e0f77f8f1d8a4abe10f2f17b660e3faa45ad81242390a1f1f3baa4a57bd8987f02e50fc4cbf2a265d64078f9b5be69474f0c50ddd78399c79beba86fbea800bc0299f9c78f4c0c5594bf44a95b92f4a5c51f89121a2027013f3ea15c3a5b8f4df666a124615b8fe9e5371a322504b42472546e350f8608b0056f74686f96d8ce94650b265c0f133d38996b1a023215057a2677629b9ae0087f80f3a7e1b7ae5e76471d055a07d0ff03dfa23e2935da6e132deb3645ba9859f8f85ab95468daac7539efff76cad9b29a8e09fec334795da10112e12309b605734dd657b633ec64af7601d81a370f40b213453c87d01403bd80936a013c3bba28bfe7d43a5909f07aebb13717a5e724113f9ffd01b4f30e18b1d5bd078f7a5b43d67ecd254d4b090c35de675f34c44013b51ef2c528f6bebbc2d60950039466e6d0d4b414a0cd3c8fcbe3f4437e34119c9fe76d787689d1e045d73d0e6f4f703b066a0adf5690fc229ba31ee9de5503d30dfc461ad650b90e4feb3b6f91b623c1744d4a39af0c44beabe96cc50cba798a12ee04ae8b35fa1473ad3f3f711a0ee25cbabfe8886670ef887502802fd57a8164c2fba55b4666e010256d642b35fb739a795b4c9fd96ea1c96887b942ae75e274da31666fb872275ff0120c8dffb27bcb2a18b58b56f7d53a50814dc4ddbc115cdba949754a7ebbe6543e8a01b854620a8a1289b6e2ac35f988390328f75987e2176cc464d30784cfcb53f26c3e04618d2cd01984b9dc5e3b160b28bffc56a69c2206b2e6ca300b3d63834aa327cc93b1143aca40546dd714de7383c0bf8eed8a6435367771c226d8bf5583c177e3afb9159b671392c36f740c809e09bbc45e095014bf5a962a8590b802bf9cf8c67cf6cccc19fadd564a539459e72907f4d8afcdabe860ac623a7eb53f755b2e9a49163a79558d1f1826cf4e2d717795b91a81a89d33805e80ec53bc79bee161cbb4856b5d434054e986a4b1c8521c7f97e9111de6841dca402a49174cbba5c96fd0a1b2742e8178c28af2b47be2861646bd44e140ce5e671f8d36bff4b060a23eb942eeb22cbba9099f7a1de741e4fd632211aa7a1f2c3fa998e45045aa687bde4dd78bfae3a713836ad1bebbc63285adc757fdbc93627b56634514bcc4fa74d279d2ab6ce84a552119b4cef92ad78d64c4bafc3616f17f6ad8b5ea6e350bbd7e2ec326d9a8669458cddde86c2a96b2bed7073320d893b317c75f443f9c094c6106437e7d365b447acb55b83c2b035d64ae1873a03f490a030797abe344e09f0580f7c24940887335ca8b06e3748fa4e9e15b7f501fc7dd6041ac6c046caf1733353f99b3a74749150cccd47c25385b27d979dfe8b3650dfdf78bd460facfb585db971d8b0b136169ba6a2809350c5d035c6f629dfdd3ca7289528c976e533754ce4d95beabb245226fb1c73e20a39c9d5b1ce228e2d38e5253dcc661ac84969067ae5713add87542bb4400da48e9d7feff3a67abacca18771f794df82a589d7ba52c7eec49d7bfda6a9314743b66c38000f738906040b9b6a8164fb1048a29d170cc05611f8971a9a2b50e1f6f5d56706e7e68ce0596f2ea7c55d081897709fd9885ec81d47fd7154ae6d80ddbc5e1bcbfbb7d9066768ff691dc5f42b25a7d97432a45e09579fe4a53ddd2c0021bf72de5841ec4a6a91255d04264a6a34788b52f3f9862d6ad476c6ffc601d3f52119e0d980d39b90c68d3753f7f1385c35a5c3b7bae40ade2bdebf98cd9fb443290c13971e8b062a0f072c234166342d9dcbca94beac0f1c8c498d2022aa127a0678f657974c51064fb29f9d05de6aa19724955e4e3b0b57234d94424232a29287d86438c27332e38164ce666f7a6310c97cec4394f0689cd00a97d4a7fadf91da60cea102cc31fae1c0fc919b72efb51e4ddc462c4355ed7f5e2c4a08a63499abf3d7723692efb74320a315a19e06c6b85d8a46b510018b68f294d783d61a1b180ade7f899670290d545fee01cf0495755a4b2ff5b49817675e648c1075f6204f315afd0fcd23e103957f9141c5a1eea4af4962d06becd1d5a6cdbb1ecbdbc0c17fd83e5fccacb336ceed5d29d412aaf89db160c758dff8216f0ecd3b4b976a536f33bf978479dd7e2be99e7d1f25091e78c2adbe5f979b2a5a552fd3775439fe30f240680c558e11a7ad5b3cb4ca3537bb81179afba23b02785ec397a916532913e39c5f534ffd0c78a5a94d14a86d1a2f86b8c703166f835f4da11b6d176ab53a144a2f3ba6ca38a2061ba0bb00cb3d078a58f3d388c1644322c4a2d978b3b89935cd0c44a5de659471cb0ab0b1e6de6aa8f1963997eaa65d1d471ff12849bc072d34a73eb7e54fa9d0cdc227ac7f1d9f25bb4dcf896d0fda7dff58bcc43c3fda383e785399ab80fb068b6a1e6481d8716c8e7cbf9f2fba329955b2bd4e9de196826f2325a7706c4e1e24f4672bafeb1e3c0aa4a40c1ffda0628935136a7400de6565a0cdff9ab5a5bd3386f690dfff1aa71d07353c2dcf5a12c5e5c64b83399b75e258e6e21f90575fc0893b17d752679d5f1900fcc4565823f8760e7be9794bbaf8f9e2746c6b40e044a93577dc14e5740c930748097148c8d1894f17c03aa3993cc3db331385897fee47ed238783306bb9953d0477a51940058661be2f2711bcc6f2f561f10a2a97b3aed21f26493d33b002c38272fcc737a203974511804aa697ceea418537b1045bd8198e7055c703949b2a86087b4c76885388711fc2e736e1846ab627c92d9f4a27c3001c19c27a0c99da3f0c0198ee47909cefd2fe21a102c460c476467a5afcac05e25a4b62298aa74e63f1b82f8ce904c7c380a877cef78d924f02f4f8aa3389764af5b08131b89f2e2d24835d7a905ea300189ae897166fdca83c7f781acf7eeac6dd8a291dff4b76dea63ea476dfa5121c68762cfa8e321855721535d04001db85aa8d23fbdd2e34161a17e553e70daf56741c004303e6aa592cdf18adbf3225a804a3230f0907b1162d1f4294e60f3be58b9f7e9404ab0eb4731a8a54a195d565b32427a666e015d1f5cef25a5f019f05cf5c67eaa99021529f08ecf80818be263acd4d08b14c5c99b1c5bcd353b2d4045939d76a5527b8503e924e82667a907aacd95d752092aa5fa4cc06af6dcc3d7374da1c108e85ce158233d2ee79343e2addde8d0d8452d33b92d327798a3043c9caee36d6bccc24bf9b134d7adb5e5d3828ec9cbdcd9f821768b3c10cd472225ba0a08c8f5b5424bdcb5b444d94bbd91be72af3d6e874e1e16d36af2f783d2d3400a0ec8853b87228d6433a1d7fd723273543be7f1e4012cdb8fa1dd0ced78559d215340f349a88a3c09152eac5d5c706322dff517643b5b227854f442ae8e4086b893cb61d1cc84fd43795add5f633f8291bd2ddf7a8aa5f0f8d069dffc2aa40ad1aeb06d2aed4b7309c8429887f6a0ae0ab8bdf1420bf117e74fbe84bf80b043dad562d534d26dfc916696f6e7a4bf529dbd962e011452fafb7fb4581a031cc8ffa1d35eefa649e6f298d650440b67234d78c372ee45126ed34badc9a920976e059974fa0d8c55b895cc3e186769fcbd0637a3e35ca46fa9fae6423c3d9575488d5eadc1e92c9e1bb3bdebf1270e30770d0e7994b2599ed31153c232cf0b4574d82d4d1cae4e6f240364e09e02ede4f92db0024299ea0fd88d99882ac47b0e4036fc48d68544730be2932d99a521fa470013ca718d5775253967462fc5f6e3bcca1bcc43b296be7a45593a42b04e8aa61e0fa205d592b419cc59d8505c9c7d35499fd85d58ccc606d6d313872d47fe7a689f75ba61534ad8f37212d3c9527a863d72f751c4439a817f27cba6d396f5b140a78c212600ccf90ef9690afdf297baa0cac28bc61e8f5d12dd1a9ad701047fb8cf780fd96d066480fb4a3344bc1716a0ccd228b79969e923fe6537f627282812b3e72fcbf282cf13922bfc2314d0ac1c7eeb9c075fdf6b660711851e3806913c1a9591994103e361161050a638e092bef34a18aa1859aded286632e1af7a2f713b07927c709894732c0932e0bda01cd029a678c1abd50f007ef16e2a7ceec1e0dad2a7a17f0667fcf306f1d4d1498a41148e631f3f501452921624e29a2a4d4c993cc430d13a2a6adb58b375ec0f2d6be99b11d912e300861858bf4002d479286ebe0f3f070f2fd4cb3a7617512c1cafc93b95c603ae57a6bd879c31b3b41f374d6f9487d3ad252b6bd4288be2f84c9126131ed7d065150694810954e23a9ff8fcf11d6732f2a344dec262656b8f42beefa1142464dfcebd46d54a8807eb1045852a8e0dce89f7f35987846d79397781301fc2eae3bb96dbd6f0dade4ac39544292e5b440f48392fb3bf85c376ed85ea22abbe576f280aa1231044aa077bee9b7277f2684933b11d1ea7812e81ba71c266d5b57886da7589d9582ce682385101c6ccaded2298d29025be621ef2946408d4fd3cc9444509f816749d03e1619563bba01d2539530c246df549c07aaa2421f3f58d2329fae7c8d8eb112103b72c21df98576dd47e5e168bdf216a40dace067cac76200721206ff142dc0e2f6cfc5a6c6a1da79a03bb9df2b007f1c085b153d2ee52e8a9e4cfb055cec14a4bca8fa6b48f0bb497a56ef2717b679bbf98a01e5585ecdfda96ab8bbbbd508be3648b0d7cff1a551e4794b254768d5b5ed9df3c4ec46604cb45c6a84f3d7dd0c4ef851b8fdeaad77b0e81e5ab2292728a1532e9978aaeefdbf947e490ab3492433d7023a30ffae02e33b24440c3f12d299738eae71311a6e8f39ceb366c4494280dd496942938d590a2a603b0d6e8ed63c2403e3017d70cf9cc92826025150cbf18d0719cc7ef9ca8342547fce45c870be09c6f30937e7d4b4ca53a369ef2c67ee5476fe4c8b17a50f59a341bcf179dcc826f0dbc6bde086ef08ec0cd3fba988a0f0911e9013aa604c6fca426d89633b79e1161426391bfafe2f4cc7e1065d47babfd64b77d5f38411449ad9b7e60a317b9f2c6cf9495b446ee8c303ab2eb95a30ff820d4f4d2f34dda5b9687ae9eb719220d8c5b2bb9a0c43dfe2c2f67e5973da4c4ffd3c343a643268096ec4cdeaca335c639ced0235380b38a7b2b6accfec3969f87049d5cc3b86b9d9c1cd0e0ec005965fe99f738befa3c35cf56cb2bfdeb101206a6d515ae3b0966bf57419508e463532d7792ff26f5451236e1704600e5e752f9bcb3d0a1d97a858575a2d4d3aaf7ae62dee6f968b32ee758b02b741c1305bed0e4ff846dce3d34e37aedf8f734fe59ba55349532685a51f5ec83be6c06b10dff9304fb03c335f1c45c860f4d75f43cecaa4c324eaee26209a327475688c9c8cc57c690d454346ef68e5979c7904109a10ffcf87489170946be73a7311d15ba5edf6f8bc6f4ac91e8f28376a59f0640111899ee7d06741ee93864417a39c1f315d47dc24125599c0e0bd3e2598904890b62757908b6ece0f0ecb920672a22e317448fe3a28cda9bc2a4d9b49551d2b96e88c436c5e05823556a0562ad53b4d35ed5a637a6a0ce6c75333927b4e15083127f6cab07ad3a84121ad927ceb4893e0bff6f90a7f941e1bbfc059b2888ccd06d15f36b46df027805616443f27d6734236e45be50db123bf2fe9d9f8f38e48295e25af7b43bf93a74d0994d43ebaa54a7649dcb3b850b29329c1cd46241309b5764aa72e0a1e8c0e2abf9b4c8e38e2870128a9475d385e0d9d3a85a2723ef4c50b22488f9b97da4993bfa3346cd4b46038e558c624749c4608ce4fd4f7c54885a89b5503b9f685896c77b71ef1363626eb1992032062ed9563be6a4b80008da9af034010512dcbec6af90c756b60f876f709321e8d1e2a5347574f516044e9496152d94e1c744bf82fab4e54dfd634c78c420584e7347dbc3ccb953572c4b4422f515fe4752dd1aa0c86a1fcf769b315031dde5843b325a073528f23e1abee777da12af1b737112b605fc3e0a3243b81eda4ab349e0086fb357dc3d64a358c414027630149fa00944f4927912f47679a8c06ed0a415e64f536c80455d883f558151fa0712918996296eb80f5bc67c706b8c2ae04717674c80b808949ec22dfeacc5468cf8fa1a189136123dd0e1e1128d344d7fe4b8b8ea043fd99571f935dd949009b2041c125f2bca22ebbc39e07982aeed831ce8e7826838fb782a8177d077aeb1c4855910183968dac5923e8485eb5d874d11e4c6635c9e346dc379dbf6c8d68123a023d33c79bb250654c63a12124b314e2d286aee264c17a0daea192ea55712345da336479dfb435d63939d8f6832cc02a7519e6d2adaeca915a2b42f39b92d0a6a3254d9cd31d1386fbd83ba6a18c56e4012b6f31d10d801a3ea12b01db4becc5f846632eaca291767136f84f36ed2516779546c05b4f2b8fb79851adad9d3f2450def4d042ba80f4e6a8bc5b12192ec7fade530d58e00c19767bb6f8787f9ef574c194db8f440eaa3edee43f9e288d9bf901e956aa146d334f01abfe54cf6fe2ff8ad1320a05f250f36828d1221d73624ea8d7292eff113937c04caa8353c408f88b4afebebf03c9b2e2269513e10399959c92779ade624805ee43748be86f078aaddcd4efaa35fb26bcc9f302c6b8a74321fa010577b004aa4e50b8bf076122b9b2278401f891e4642f8d88ee9ef7f4731ce067e39890064fb6d57e1a49a0afcb36f665e65100642fb8199233a04237c9a80ce04753e03c3ac8e1c66d91f1ae8079dd68eac9db7d3230ba3249a26edf62b56e4687dc40cd3293bf431d4b1ef243ffd1c7aade9388eba6c945b1f35aaca04d26cda8025eea3be591713bb96afb0977d037f721c445fc80d40d393275e90e786abf47b4d64cdb4f57beaa00b1211e65dab45fa518a12fd086582b021167662762c77165b803623e17facc40560be907923efa6c39fab4797056b428a5b9eaf51ef9ef1e9cba37678c0595a954986637a126e8cb5c27929fa74e4192aa90a82204ddc80956dd2ede810dffbbf935e0fcd4e1157760d2959b1fbc0b5d23cf8263595e4eac0cd5b4266fb1dcb8ddf7f0fceb508b3efbfb43332eb34da33e82471671ee58507129d3a0a9d5c955b1c0c0f093b44a641d3c79de7562afce6ae75583c08d3f2070a71cb9ba6387513eb53e24c0194a47b14358db36cbef5735ccebe88c36560ec8eacc0846d0ce7ac785d8ba43da82d5ac65f07f960643e0332995b87473e566b5282e4f2e4d460b7b39cdbdc8de00b24b42d9c2beb5b257919c79383046ba7d1d533ad0eaa5e591f9258e0490355feeb487c684d44f1d7adfbde9828878d84bf13efe3cd56163a3af31820badbdf3f183ca8789e3cf6fc94d38ea595a884094aed194bb7a5f615a491fce74e9a90eb10a50de35e145be6f34938398a275106592663dd14e3341a04629c6cbb2f91df63cca3312a45b12f887e1a5fea9238ea40372dc3ed2af72f2f7506fa6afd184c02ff76735a3efff2371a23430e61bd62057ea4723eaa5da033470558d219ee8f93a8de96660b71f34c3d60b2960351981f4ab556b403df98aa0831046efd14363ffe7dd9ca51f4dd9b5f8ec1577fad263cb47ecd7754ff769bd4be499596d7692a1471eaba703bf6c6ac9d8e767337cb98812bfeb934398ecd739f8fe2a0ae941db551150e04222d2c3d44bb6d4eb252f14915b61e74a42343b031c29a0c8dde9b81a85ec2ca960463b437517637ce37bb2d6c8e90aa73c816e1c76d604ed5c226fe03eb6c102a85e40436c1196ce2024b7ce1faf37a3c790c92832c4fe77c00f8903141d877ba703caf35a2e3f953c5258e1231deb26bd0e3b55d826a77d2e95b42584f5f34770afd9f1ae6c274c0c91fb8f35683e7ba16a7f2c20a75f7cf1ddc73f7a0fa85d656bd4a4863c7acba8594f918a8fe70f91ca113733a2d1c555a84a5daae653e2bd9e95391f728e1e5b70de2b9a133f5a8379ef62e7375863a77bc1a7cb19ac1e29882fc943bc179e905ada0db483802ae2042eae5ff66d6fe537f33e050d9e5d9cd8789a30719ca93eab5675174b2cec60e8887700292d1fb67adc9e40d4df0986279ebf028acdf16f331efa385e9f43a0f1b5c7c00182fbf7cc0265a1be1f3951132486c6c617e8cf55db4f3edadad1d22acc53894b083ca4a21ee3957fc187c9238f7b34c850ebc7645f3856f76f877493c9507b0f189075ebbae686334f49f847655f5afb2d7574bb578e1ea3727397a17a93bc6cf1a7bcd46de92316d12d60b9ecd01aa31f21c5919c17c2341f19d98e65a006b36bacf7da80bd45c05fe537ecf45a10fc177553e573e417218720a0e03597f838867c120439adaf95d139c82c5e6c6ef6c1af7c1213be7e25249fdf43ebff38f062b485a49527b90009b6fdfdfa6bc9f7beb1babd6eb1506d27f2982879079322d8777a6704778567a3ee26f06178d32f55840526c5845a292574bbe5ea8beccf75ed47a5280a0fd4ca8990b7ff6e8eac86b039f2c576cd5a0cd997ac783551594a5344e79f53b4632f9939015c0c692b4d39f326f1993feb911303d8f0f2211a7a2556f591496cf364f75b2cbf87221723529a97c48d75b7b669b0bfc8a5e983144ae8edc93d37f89119f90c847e2a33100419b2dabf68b18b3a8640f4b699d0e623ec85ce0907a118e464dc4e8452be6d2ad099eb3928ce7b878454c08dc7b0e9212808ce95cc8d2124e6078fe16af0b9d006baf55e2285bbf65ac050ba930dc2926e52e7ebe79411b3eeaaae099234a94b7530f99ecf86992555c2b07dd858d0da68e3f7e077b88491c28e8a691e3df14dc9768603432da14a8ea31b253d7b3722cea24cb8d1d98e627b762d23bd2b1792701d634f1160922cfbbff00854e99b10023757857f698fbec20727c9c5abe7d491029c360679df9a6aadad184ee5271a007c4fc55d3b4ac2e7ded57d572a6d3fff0d9bf9c09d5a3ccb202dcff20bf489e9f20a4719fec036c5cd969d96b01291a75f6f5b01bb519cbfd426e2f651b7ff1d0ddd26d1488c35d9da3076ab6e3cfe9ef30bbbdbe613aefed9f1793f865ecc3c9c5b7d22f599f3107353de7f85ab338d97330171890871f696eebd793d2e227227a95c2d7978c3d316e4ef60a384bb9f052758dd05183c84ea5fa736bd471974e913297bbf85a184c3d82b4698837de313e701f99b91b0334a72b2131bc69ebe65a8205bce3fa41e83a06a306e2e31f2c570a5beaa4ccf6ba7c93e015e113d0fb5cbacc5aa1d0ac236335de213fa7c4902db5ee072b2d94b837a3f16f2ece292efae9062dcc7227579f3665171be1c5d075a0ab25f77a14dd8b82d5f04e4778137b4fb42e49a47f88974784a6ccf2fabfd49b2767623d6b8351b5822b2b935c9a2e44aa0e9b2a08f71a98ff6b0afee965fde801d90b8cc5d2c421502126494cb7021cbb789b2db8f380579820ccc53668235e5f7ab16192699170f47160ae49c79233984bc734266d8d2ac8936790f1dc5ca9b2d522e0cac14d3f290ede9b33273ad6b5f8fbfacd97786fa3aa022c60aae47e4362f708edea680a76f9b6f3fe24ec305f10ce9c9b776673a415a3e638d70ddb0cdc29a8cd185da7e82ea50ce69c5faa4d75fe94534cd703995266b8befdf6b64b688eb4ce9fc77653cf85c9b7f6d4c6368ad7cd752f947ae2d3f7b4333a4f8cabd36e4989a7d75e5f862765ba8b6b0588927be94c9cedb96af61b6990a1d890779e9336c6cf19deb9677e62e630483f116ec7869ee4fffd5cca0203a1a70b686dc90fa82961ce6555b0bbdb1550085ef4d9dc76dd6314b2be5f28727912d5a8c67daccffc01f8c423a29c4272a796d5a9afb97c8bef455578940d15b990eef66b0035ecf9f9d5cdd7f2153b074eca95b635b927928365b33c10e3ed938857b4139bcba0c183ec442cc90fe27a2dbafd4e1c791aff374b5326ba16880a16d98269abb731904dd1f8eb00aaea66bfef72d5252931d84cc01cfabde3bea854b5b145ddd37bdced843340e0679b6b4e7ed2fe318fd0cef76d160543722e0c3eac11f901ae15db25905dca7a17b81c6d51869fd12ea569fc4b072d217786b4b4d73bde4b9bd9425bc87b33d6b1911e6398673939aa2f15ac505b9a1ab029b8452dd0869f392daa28adc942272615ff2db16bcf084f01ec9fcc2f7f6a632b2bba8c468655e985a3b271c25952b7ba3a9142a23515947e79dc051e75d70f84249a4b15e5afc817a9ec8f9c7b858536019bc6093a8ed0e95b7f452889db285fc82ddb289843a8c6d5140f6bdb99bbd2477aa064871b7fff5231bc1db0e0b8f19fad6ed54426684b60d55988df7d2feafbed24edf854a997e0515f02dc09a6d796e475c67d91de7157c320d9c43833fe4cf809574764a630050ea346ac3d277acf97237468976b1e91e88e0b7c63fed04bbe0713a57bae8feb31d841e0e959cdc7eba437ca2b430bf314c20e633a91d0c0e2ea05d89cbde042a01adc0e4a788361b356e64a086c0b1e06505b5c6b946e5807174c6e23e5df7ee8ad6ff096bab96df5670359d41c84c55ec30caaaf6360c18b70e5f31e6c084b852a0c61224742ce2b970d8ae1c8851671b46643fc422ab623dbe30997a2a6962caa40149569e368d687dac479222d09b77259426d705cd7a55d0f198e1a8ca7effea97eee731943167c9bbd3cc572fa5680bb7bc29a800417f19caf37ca171df28c64967fb3ee99d1d6f6071d52cde0981f9b213c4d17c3e9844a6bff438981d02349f4f0f3761219bcd751e42257f91612a25847d0c75a202ff44028ec9ef201670c9984238c44138c0986c312d9a17545998383006cf6fed8dfdab50f1e7308723ce0785a3a5fd15b99cb99e463fcc5256f27f1c9d05f409bc4577a7ee68ef5dcc53c96e99a03a63a88de34aaac58373c036b1159fa6a277c850093f76585db2cbdab68f81e112460360d5233d2be1a69d25a9cc217edc2ae6ecfa0e72b17910effd2ae8a7ec071c5c3445f4f73866f1ba8be90a641e8cd3ef12dbe5c2301937a58ebf96005fb8943b15d86691ca23ca054c7c1186e16d04afff230ca077bf21fa98488d625beda8cc664717c4a1396fc2435a6e130669d0d92447e7f0464ea8407c29b78c2afcf6c321ecc4b91f4d77d5eb6ffc15402f71b47b5362e18657a650abc9d84e4403012c20a3e767c8fc803a2b46d4579c77f89c7cf578668c6f28662efbf1a0a4c9c2224d6df62cd227ec6a54e120d9ad82ec75d61b7f713b08d2a6203037e2f01356d7f098ad4e117b4ffd2f13b05065261caaa4121c7ca0c81782033831ad5ea77f42814cbdc31f9b2619cd5eaeee2ae84cb5b16c8218c570a8b46cc0c526a473c71b5ba91ff697fa8b73b62ef42b44d73ed165b638ef1b3c21816889d787512fc153e00c5e739c8f893e86e05db361375ad4aa0070ec07e2d4a4b0abaac2d165cc3da1b138fca5973b88ae97947fae57acc087bb2c0889ee01d7e69a84f1a3353e6720beff027e45dddce2afe4a57ed74142ee452967550b7723d12c273220f6ff590b8c2de06aba4950e122ee7cb2666c3111f4c594bc42dbe71458405af34a5ad0ccd6072134f2f0c6b9f3380e87c3ea22ea7c24602d7d1ece2999c56907f3d346c97476f66193a5da70a29be28d05483d7c4785f4748f0b1e39a19c3e365eee1f9e25bcfa65f36cf0126dcb0984a96a0d7d530764b10edf0c88a3091486bd1c0b6869c6f52130485835fc94c82e9f6cafc2b00ad56576f29c3f9375744ab557a041ad5be19fc9564ff391ebd490be384b8cdd95eded869599fd00cd5a294f1157bb00c06e6262d673ec7aa2fd395ef92e466e53f378be786f464e6c3b38b0d413f06b0f27b981d1f95e3d9adf29b643b55ed91d7e77c956e93f806230eecbde0846f69187c064ee13bed1a255d25bcb5bab252a93c0df3f6ccf9e047826b350a8d5rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootdpdk22-22.11.11-150500.5.13.1.src.rpmdpdk22-any-docdpdk22-doc     rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0.4-14.0-15.2-1dpdk-any-doc4.14.3iq@i@fM@dJcd3@d dxccwsc5c47@bK@bja?=@a;H`]`f@`_s!_i@_2@^@^l@^\@]@]@]\@\Y@\o@\I[Ѱ@[[['ZZ@ZZZH@Z\ZTZ@X6@W= 5.9. Also see here: http://inbox.dpdk.org/users/CAJFAV8w8ozEkdSKdBHEHXJDxpChorGa1jUsNEcPMptG30bWykw@mail.gmail.com/T- Add patches to fix vulnerability where malicious guest can harm the host using vhost crypto, this includes executing code in host (VM Escape), reading host application memory space to guest and causing partially denial of service in the host (bsc#1176590). * 0001-vhost-crypto-fix-pool-allocation.patch * 0002-vhost-crypto-fix-incorrect-descriptor-deduction.patch * 0003-vhost-crypto-fix-missed-request-check-for-copy-mode.patch * 0004-vhost-crypto-fix-incorrect-write-back-source.patch * 0005-vhost-crypto-fix-data-length-check.patch * 0006-vhost-crypto-fix-possible-TOCTOU-attack.patch- Update to 19.11.4. For a list of fixes check: https://doc.dpdk.org/guides-19.11/rel_notes/release_19_11.html#id8 - Add patch to resolve build error reported in Staging:E project where a kernel backport (jsc#SLE-13536) introduced backward incompatible changes to the API that break kni module build * 0001-SLE15-SP3-compatibility-patch-for-kni.patch- update to v19.11.3: app/crypto-perf: fix display of sample test vector app/eventdev: check Tx adapter service ID app: fix usage help of options separated by dashes app/pipeline: fix build with gcc 10 app: remove extra new line after link duplex app/testpmd: add parsing for QinQ VLAN headers app/testpmd: fix DCB set app/testpmd: fix memory failure handling for i40e DDP app/testpmd: fix PPPoE flow command app/testpmd: fix statistics after reset baseband/turbo_sw: fix exposed LLR decimals assumption bbdev: fix doxygen comments build: disable gcc 10 zero-length-bounds warning build: fix linker warnings with clang on Windows build: support MinGW-w64 with Meson buildtools: get static mlx dependencies for meson bus/fslmc: fix dereferencing null pointer bus/fslmc: fix size of qman fq descriptor bus/pci: fix devargs on probing again bus/pci: fix UIO resource access from secondary process bus/vmbus: fix comment spelling ci: fix telemetry dependency in Travis common/iavf: update copyright common/mlx5: fix build with -fno-common common/mlx5: fix build with rdma-core 21 common/mlx5: fix netlink buffer allocation from stack common/mlx5: fix umem buffer alignment common/octeontx: fix gcc 9.1 ABI break common/qat: fix GEN3 marketing name contigmem: cleanup properly when load fails crypto/caam_jr: fix check of file descriptors crypto/caam_jr: fix IRQ functions return type crypto/ccp: fix fd leak on probe failure cryptodev: add asymmetric session-less feature name cryptodev: fix missing device id range checking cryptodev: fix SHA-1 digest enum comment crypto/kasumi: fix extern declaration crypto/nitrox: fix CSR register address generation crypto/nitrox: fix oversized device name crypto/octeontx2: fix build with gcc 10 crypto/openssl: fix out-of-place encryption crypto/qat: fix cipher descriptor for ZUC and SNOW crypto/qat: support plain SHA1..SHA512 hashes devtools: fix symbol map change check doc: add i40e limitation for flow director doc: add NASM installation steps doc: fix API index doc: fix build issue in ABI guide doc: fix build with doxygen 1.8.18 doc: fix default symbol binding in ABI guide doc: fix log level example in Linux guide doc: fix LTO config option doc: fix matrix CSS for recent sphinx doc: fix multicast filter feature announcement doc: fix number of failsafe sub-devices doc: fix reference in ABI guide doc: fix sphinx compatibility doc: fix typo in contributors guide doc: fix typo in contributors guide doc: fix typos in ABI policy doc: prefer https when pointing to dpdk.org drivers: add crypto as dependency for event drivers drivers/crypto: disable gcc 10 no-common errors drivers/crypto: fix build with make 4.3 drivers/crypto: fix log type variables for -fno-common drivers: fix log type variables for -fno-common eal/arm64: fix precise TSC eal: fix C++17 compilation eal: fix comments spelling eal: fix log message print for regex eal: fix PRNG init with HPET enabled eal: fix typo in endian conversion macros eal/freebsd: fix queuing duplicate alarm callbacks eal/ppc: fix bool type after altivec include eal/ppc: fix build with gcc 9.3 eal/x86: ignore gcc 10 stringop-overflow warnings ethdev: fix build when vtune profiling is on ethdev: fix spelling eventdev: fix probe and remove for secondary process event/dsw: avoid reusing previously recorded events event/dsw: fix enqueue burst return value event/dsw: remove redundant control ring poll event/dsw: remove unnecessary read barrier event/octeontx2: fix build for O1 optimization event/octeontx2: fix queue removal from Rx adapter examples/eventdev: fix build with gcc 10 examples/eventdev: fix crash on exit examples/fips_validation: fix parsing of algorithms examples/ip_pipeline: remove check of null response examples/ipsec-gw: fix gcc 10 maybe-uninitialized warning examples/kni: fix crash during MTU set examples/kni: fix MTU change to setup Tx queue examples/l2fwd-keepalive: fix mbuf pool size examples/qos_sched: fix build with gcc 10 examples: remove extra new line after link duplex examples/vhost_blk: fix build with gcc 10 examples/vmdq: fix output of pools/queues examples/vmdq: fix RSS configuration examples/vm_power: drop Unix path limit redefinition examples/vm_power: fix build with -fno-common fib: fix headers for C++ support fix same typo in multiple places fix various typos found by Lintian ipsec: check SAD lookup error ipsec: fix build dependency on hash lib kvargs: fix buffer overflow when parsing list kvargs: fix invalid token parsing on FreeBSD kvargs: fix strcmp helper documentation log: fix level picked with globbing on type register lpm6: fix comments spelling lpm6: fix size of tbl8 group mem: fix overflow on allocation mem: mark pages as not accessed when freeing memory mem: mark pages as not accessed when reserving VA mempool/dpaa2: install missing header with meson mempool/octeontx2: fix build for gcc O1 optimization mempool: remove inline functions from export list mem: preallocate VA space in no-huge mode mk: fix static linkage of mlx dependency net/avp: fix gcc 10 maybe-uninitialized warning net/bnxt: do not use PMD log type net/bnxt: fix error log for command timeout net/bnxt: fix FW version query net/bnxt: fix HWRM command during FW reset net/bnxt: fix max ring count net/bnxt: fix memory leak during queue restart net/bnxt: fix number of TQM ring net/bnxt: fix port start failure handling net/bnxt: fix possible stack smashing net/bnxt: fix Rx ring producer index net/bnxt: fix storing MAC address twice net/bnxt: fix TQM ring context memory size net/bnxt: fix using RSS config struct net/bnxt: fix VLAN add when port is stopped net/bnxt: fix VNIC Rx queue count on VNIC free net/bnxt: use true/false for bool types net/dpaa2: fix 10G port negotiation net/dpaa2: fix congestion ID for multiple traffic classes net/dpaa: use dynamic log type net/e1000: fix port hotplug for multi-process net/ena/base: fix documentation of functions net/ena/base: fix indentation in CQ polling net/ena/base: fix indentation of multiple defines net/ena/base: fix testing for supported hash function net/ena/base: make allocation macros thread-safe net/ena/base: prevent allocation of zero sized memory net/ena: fix build for O1 optimization net/ena: set IO ring size to valid value net/enetc: fix Rx lock-up net/enic: fix flow action reordering net/failsafe: fix fd leak net/hinic: allocate IO memory with socket id net/hinic/base: fix PF firmware hot-active problem net/hinic/base: fix port start during FW hot update net/hinic: fix LRO net/hinic: fix queues resource free net/hinic: fix repeating cable log and length check net/hinic: fix snprintf length of cable info net/hinic: fix TSO net/hinic: fix Tx mbuf length while copying net/hns3: add free threshold in Rx net/hns3: add RSS hash offload to capabilities net/hns3: clear residual flow rules on init net/hns3: fix configuring illegal VLAN PVID net/hns3: fix configuring RSS hash when rules are flushed net/hns3: fix crash when flushing RSS flow rules with FLR net/hns3: fix default error code of command interface net/hns3: fix default VLAN filter configuration for PF net/hns3: fix mailbox opcode data type net/hns3: fix MSI-X interrupt during initialization net/hns3: fix packets offload features flags in Rx net/hns3: fix promiscuous mode for PF net/hns3: fix return value of setting VLAN offload net/hns3: fix return value when clearing statistics net/hns3: fix RSS indirection table configuration net/hns3: fix RSS key length net/hns3: fix Rx interrupt after reset net/hns3: fix status after repeated resets net/hns3: fix Tx interrupt when enabling Rx interrupt net/hns3: fix VLAN filter when setting promisucous mode net/hns3: fix VLAN PVID when configuring device net/hns3: reduce judgements of free Tx ring space net/hns3: remove one IO barrier in Rx net/hns3: remove unnecessary assignments in Tx net/hns3: replace memory barrier with data dependency order net/hns3: support different numbers of Rx and Tx queues net/hns3: support Rx interrupt net/i40e/base: update copyright net/i40e: fix flow director enabling net/i40e: fix flow director for ARP packets net/i40e: fix flow director initialisation net/i40e: fix flush of flow director filter net/i40e: fix queue region in RSS flow net/i40e: fix queue related exception handling net/i40e: fix setting L2TAG net/i40e: fix wild pointer net/i40e: fix X722 performance net/i40e: relax barrier in Tx net/i40e: relax barrier in Tx for NEON net/iavf: fix link speed net/iavf: fix setting L2TAG net/iavf: fix stats query error code net/ice: add action number check for switch net/ice/base: check memory pointer before copying net/ice/base: fix binary order for GTPU filter net/ice/base: fix MAC write command net/ice/base: fix uninitialized stack variables net/ice/base: minor fixes net/ice/base: read PSM clock frequency from register net/ice/base: remove unused code in switch rule net/ice/base: update copyright net/ice: change default tunnel type net/ice: fix crash in switch filter net/ice: fix hash flow crash net/ice: fix input set of VLAN item net/ice: fix RSS advanced rule net/ice: fix RSS for GTPU net/ice: fix setting L2TAG net/ice: fix variable initialization net/ice: remove bulk alloc option net/ice: remove unnecessary variable net/ice: support mark only action for flow director net/ipn3ke: use control thread to check link status net/ixgbe/base: update copyright net/ixgbe: check driver type in MACsec API net/ixgbe: fix link state timing on fiber ports net/ixgbe: fix link status after port reset net/ixgbe: fix link status inconsistencies net/ixgbe: fix link status synchronization on BSD net/ixgbe: fix resource leak after thread exits normally net/ixgbe: fix statistics in flow control mode net/memif: fix init when already connected net/memif: fix resource leak net/mlx4: fix build with -fno-common net/mlx4: fix drop queue error handling net/mlx5: add device parameter for MPRQ stride size net/mlx5: add multi-segment packets in MPRQ mode net/mlx5: enable MPRQ multi-stride operations net/mlx5: fix actions validation on root table net/mlx5: fix assert in doorbell lookup net/mlx5: fix assert in dynamic metadata handling net/mlx5: fix assert in modify converting net/mlx5: fix build with separate glue lib for dlopen net/mlx5: fix call to modify action without init item net/mlx5: fix counter container usage net/mlx5: fix crash when releasing meter table net/mlx5: fix CVLAN tag set in IP item translation net/mlx5: fix doorbell bitmap management offsets net/mlx5: fix gcc 10 enum-conversion warning net/mlx5: fix header modify action validation net/mlx5: fix imissed counter overflow net/mlx5: fix jump table leak net/mlx5: fix mask used for IPv6 item validation net/mlx5: fix matching for UDP tunnels with Verbs net/mlx5: fix match on empty VLAN item in DV mode net/mlx5: fix metadata for compressed Rx CQEs net/mlx5: fix meter color register consideration net/mlx5: fix meter suffix table leak net/mlx5: fix packet length assert in MPRQ net/mlx5: fix push VLAN action to use item info net/mlx5: fix RSS enablement net/mlx5: fix RSS key copy to TIR context net/mlx5: fix Tx queue release debug log timing net/mlx5: fix validation of push VLAN without full mask net/mlx5: fix validation of VXLAN/VXLAN-GPE specs net/mlx5: fix VLAN flow action with wildcard VLAN item net/mlx5: fix VLAN ID check net/mlx5: fix VLAN PCP item calculation net/mlx5: fix zero metadata action net/mlx5: fix zero value validation for metadata net/mlx5: improve logging of MPRQ selection net/mlx5: reduce Tx completion index memory loads net/mlx5: set dynamic flow metadata in Rx queues net/mlx5: update VLAN and encap actions validation net/mlx5: use open/read/close for ib stats query net/mvneta: do not use PMD log type net/mvpp2: fix build with gcc 10 net/netvsc: avoid possible live lock net/netvsc: do not configure RSS if disabled net/netvsc: do RSS across Rx queue only net/netvsc: fix comment spelling net/netvsc: fix memory free on device close net/netvsc: handle Rx packets during multi-channel setup net/netvsc: handle Tx completions based on burst size net/netvsc: propagate descriptor limits from VF net/netvsc: remove process event optimization net/netvsc: split send buffers from Tx descriptors net/nfp: fix dangling pointer on probe failure net/nfp: fix log format specifiers net/null: fix secondary burst function selection net/null: remove redundant check net/octeontx2: disable unnecessary error interrupts net/octeontx2: enable error and RAS interrupt in configure net/octeontx2: fix buffer size assignment net/octeontx2: fix device configuration sequence net/octeontx2: fix link information for loopback port net/octeontx: fix dangling pointer on init failure net/octeontx: fix meson build for disabled drivers net/pfe: do not use PMD log type net/pfe: fix double free of MAC address net/qede: fix link state configuration net/qede: fix port reconfiguration net/ring: fix device pointer on allocation net/sfc/base: fix build when EVB is enabled net/sfc/base: fix manual filter delete in EF10 net/sfc/base: handle manual and auto filter clashes in EF10 net/sfc/base: reduce filter priorities to implemented only net/sfc/base: refactor filter lookup loop in EF10 net/sfc/base: reject automatic filter creation by users net/sfc/base: use simpler EF10 family conditional check net/sfc/base: use simpler EF10 family run-time checks net/sfc: fix initialization error path net/sfc: fix promiscuous and allmulticast toggles errors net/sfc: fix reported promiscuous/multicast mode net/sfc: fix Rx queue start failure path net/sfc: set priority of created filters to manual net/softnic: fix memory leak for thread net/softnic: fix resource leak for pipeline net/tap: do not use PMD log type net/tap: fix check for mbuf number of segment net/tap: fix crash in flow destroy net/tap: fix fd leak on creation failure net/tap: fix file close on remove net/tap: fix mbuf and mem leak during queue release net/tap: fix mbuf double free when writev fails net/tap: fix queues fd check before close net/tap: fix unexpected link handler net/tap: remove unused assert net/thunderx: use dynamic log type net/vhost: fix potential memory leak on close net/virtio: do not use PMD log type net/virtio: fix crash when device reconnecting net/virtio: fix outdated comment net/virtio: fix unexpected event after reconnect net/virtio-user: fix devargs parsing net/vmxnet3: fix RSS setting on v4 net/vmxnet3: handle bad host framing pci: accept 32-bit domain numbers pci: fix build on FreeBSD pci: fix build on ppc pci: reject negative values in PCI id pci: remove unneeded includes in public header file remove references to private PCI probe function Revert “common/qat: fix GEN3 marketing name” Revert “net/bnxt: fix number of TQM ring” Revert “net/bnxt: fix TQM ring context memory size” security: fix crash at accessing non-implemented ops security: fix return types in documentation security: fix session counter security: fix verification of parameters service: fix crash on exit service: fix identification of service running on other lcore service: fix race condition for MT unsafe service service: remove rte prefix from static functions telemetry: fix port stats retrieval test/crypto: fix flag check test/crypto: fix statistics case test: fix build with gcc 10 test/flow_classify: enable multi-sockets system test/ipsec: fix crash in session destroy test/kvargs: fix invalid cases check test/kvargs: fix to consider empty elements as valid test: load drivers when required test: remove redundant macro test: skip some subtests in no-huge mode timer: protect initialization with lock usertools: check for pci.ids in /usr/share/misc vfio: fix race condition with sysfs vfio: fix use after free with multiprocess vhost/crypto: add missing user protocol flag vhost: fix packed ring zero-copy vhost: fix peer close check vhost: fix shadowed descriptors not flushed vhost: fix shadow update vhost: fix zero-copy server mode vhost: handle mbuf allocation failure vhost: make IOTLB cache name unique among processes vhost: prevent zero-copy with incompatible client mode vhost: remove unused variable - remove the security backport patches as they're already included upstream: * 0001-vhost-check-log-mmap-offset-and-size-overflow.patch * 0002-vhost-fix-vring-index-check.patch * 0003-vhost-crypto-validate-keys-lengths.patch * 0004-vhost-fix-translated-address-not-checked.patch * 0005-vhost-fix-potential-memory-space-leak.patch * 0006-vhost-fix-potential-fd-leak.patch- Add patches to fix vulnerability where malicious guest/container can cause resource leak resulting a Denial-of-Service, or memory corruption and crash, or information leak in vhost-user backend application (bsc#1171477, CVE-2020-10722, CVE-2020-10723, CVE-2020-10724, CVE-2020-10725, CVE-2020-10726). * 0001-vhost-check-log-mmap-offset-and-size-overflow.patch * 0002-vhost-fix-vring-index-check.patch * 0003-vhost-crypto-validate-keys-lengths.patch * 0004-vhost-fix-translated-address-not-checked.patch * 0005-vhost-fix-potential-memory-space-leak.patch * 0006-vhost-fix-potential-fd-leak.patch- Update to v19.11.1. For a list of changes, check: * https://doc.dpdk.org/guides/rel_notes/release_19_11.html#new-features - Removed patches no longer applying to the code base: * 0001-vhost-fix-possible-denial-of-service-on-SET_VRING_NU.patch * 0002-vhost-fix-possible-denial-of-service-by-leaking-FDs.patch * 0002-fix-cpu-compatibility.patch - Rebased patches: * 0001-fix-cpu-compatibility.patch- Change constraint to ssse3 to fix build issues on x86_64 and i586- Add version to the PMD driver directory to avoid loading previous version drivers (bsc#1157179). - Update to 18.11.3 (bsc#1156146). For a list of fixes check: * https://doc.dpdk.org/guides-18.11/rel_notes/release_18_11.html#fixes - Add patches to fix vulnerability where malicious container can trigger a denial of service (CVE-2019-14818, bsc#1156146) * 0001-vhost-fix-possible-denial-of-service-on-SET_VRING_NU.patch * 0002-vhost-fix-possible-denial-of-service-by-leaking-FDs.patch - Removed patrches already included upstream: * dpdk-fix-implicit-fallthrough-warning.patch- Changed to multibuild (bsc#1151455). - Added dpdk-fix-implicit-fallthrough-warning.patch to address build error with recent kernels (bsc#1144704).- Minor Update to 18.11.2 * List of fixes can be found in https://doc.dpdk.org/guides-18.11/rel_notes/release_18_11.html#fixes- Add missing libmnl-devel- remove -Wno-error=array-bounds as its no longer needed - disable i586 build because lack of sse support- Add 0002-fix-cpu-compatibility.patch to address issue with older CPUs (bsc#1125961, bsc#1099474) [+ 0002-fix-cpu-compatibility.patch]- Update to 18.11; some of the changes are(fate#325916, fate#325951 fate#326025, fate#326992, bsc#1134968, jira#SLE-4715) : * Added support for using externally allocated memory in DPDK. * Added check for ensuring allocated memory is addressable by devices. * Updated the C11 memory model version of the ring library. * Added NXP CAAM JR PMD. * Added support for GEN3 devices to Intel QAT driver. * Added Distributed Software Eventdev PMD. * Updated KNI kernel module, rte_kni library, and KNI sample application. * Add a new sample application for vDPA. * Updated mlx5 driver. * * Improved security of PMD to prevent the NIC from getting stuck when the application misbehaves. * * Reworked flow engine to supported e-switch flow rules (transfer attribute). * * Added support for header re-write(L2-L4), VXLAN encap/decap, count, match on TCP flags and multiple flow groups with e-switch flow rules. * * Added support for match on metadata, VXLAN and MPLS encap/decap with flow rules. * * Added support for RTE_ETH_DEV_CLOSE_REMOVE flag to provide better support for representors. * * Added support for meson build. * * Fixed build issue with PPC. * * Added support for BlueField VF. * * Added support for externally allocated static memory for DMA. all the changes can be viwed in http://doc.dpdk.org/guides/rel_notes/release_18_11.html [- 0001-enic-fix-Type-punning-and-strict-aliasing-warning.patch]- Enable missed MLX PMDs for SLE12SP4 (bsc#1112307)- Fixed a problem with ABI compatibility; API/ABI compatibility is guaranteed by DPDK upstream community across subsequent bug-fix releases. However, the .spec file broke it by defining the wrong version which included also the bug-fix release number. - Fixed a naming issue with library: did not reflect soname- Fixed a syntax error affecting csh environment configuration(bsc#1102310)- Update to 18.02.2; some of the changes are: * Added function to allow releasing internal EAL resources on exit * Added igb, ixgbe and i40e ethernet driver to support RSS with flow API * Updated i40e driver to support PPPoE/PPPoL2TP * Added MAC loopback support for i40e * Added support of run time determination of number of queues per i40e VF * Updated mlx4/mlx5 driver * Added NVGRE and UDP tunnels support in Solarflare network PMD * Added AVF (Adaptive Virtual Function) net PMD * Added feature supports for live migration from vhost-net to vhost-user * Updated the AESNI-MB PMD * Updated the DPAA_SEC crypto driver to support rte_security * Added New eventdev Ordered Packet Distribution Library (OPDL) PMD * Added GRO support for VxLAN-tunneled packets - Removed 0002-dpdk-eal-ppc-rte_smp_mb.patch since incorporated upstream- Update to 18.02.1 - Restrict untrusted guest to misuse virtio to corrupt host application(ovs-dpdk) memory which can lead all VM to lose connectivity(CVE-2018-1059,bsc#1089638). Changes: * Add deprecation notice for rte_vhost_gpa_to_vva() * Patch vhost-net and vhost-scsi examples * Fixes checkpatch warnings * Take VIRTIO_RING_F_EVENT_IDX into account when ring size (Tiwei) * Fix next chuncks translation access rights in Rx paths (Tiwei) * vhost: fix indirect descriptors table translation size * vhost: check all range is mapped when translating GPAs * vhost: introduce safe API for GPA translation * vhost: ensure all range is mapped when translating QVAs * vhost: add support for non-contiguous indirect descs tables * vhost: handle virtually non-contiguous buffers in Tx * vhost: handle virtually non-contiguous buffers in Rx * vhost: handle virtually non-contiguous buffers in Rx-mrg * examples/vhost: move to safe GPA translation API * examples/vhost_scsi: move to safe GPA translation API * vhost/crypto: move to safe GPA translation API * vhost: deprecate unsafe GPA translation API- Enable MLX4/5 PMD only in Factory and >= SLES15 It needs rdma-core >= v16.- Removed 0002-kni-fix-build-on-SLE12-SP3.patch since no longer referenced in .spec files - Added 0002-dpdk-eal-ppc-rte_smp_mb.patch to fix an issue on ppc64le platforms with v18.02 - Updated to version 18.02; some of the changes include: * Added function to allow releasing internal EAL resources on exit * Added igb, ixgbe and i40e ethernet driver to support RSS with flow API * Updated i40e driver to support PPPoE/PPPoL2TP * Added MAC loopback support for i40e * Added support of run time determination of number of queues per i40e VF * Updated mlx5 driver * Updated mlx4 driver * Added NVGRE and UDP tunnels support in Solarflare network PMD * Added AVF (Adaptive Virtual Function) net PMD * Added feature supports for live migration from vhost-net to vhost-user * Updated the AESNI-MB PMD * Updated the DPAA_SEC crypto driver to support rte_security * Added Wireless Base Band Device (bbdev) abstraction * Added New eventdev Ordered Packet Distribution Library (OPDL) PMD * Added new pipeline use case for dpdk-test-eventdev application * Updated Eventdev sample application to support event devices based on capability * Added Rawdev, a generic device support library * Added new multi-process communication channel * Added GRO support for VxLAN-tunneled packets * Increased default Rx and Tx ring size in sample applications * Added new DPDK build system using the tools “meson” and “ninja” [EXPERIMENTAL]- The vm_power example does not work for ppc64le since it uses the IXGBE PMD driver which is not available for that platform(bsc#1082154): * Disable CONFIG_RTE_LIBRTE_POWER for the sample application; * Disable CONFIG_RTE_LIBRTE_IXGBE_PMD for the actual PMD driver;- Upgraded to latest stable release 17.11.1 (LTS): some of the fixes include: * location changes of the GPL and LGPL licenses; * net/mlx4: - fix drop flow resources leak * net/bnxt: - double increment of idx during Tx ring alloc - group info usage - check for ether type - size of Tx ring in HW - number of pools for RSS - return code in MAC address set - link speed setting with autoneg off * net/nfp: - MTU settings - jumbo settings - CRC strip check behaviour * net/sfc: - multicast address list copy memory leak - DMA memory leak after kvarg processing failure - fix label name to be consistent * net/i40e: - VLAN offload setting issue - FDIR input set conflict - FDIR rule confiliction issue - setting MAC address of VF - flow director Rx resource defect - warn when writing global registers - multiple driver support - interrupt conflict with multi-driver - Rx interrupt - check multi-driver option parsing - flow director filter * net/qede: - enable LRO over tunnels - reject config with no Rx queue - check tunnel L3 header - tunnel header size in Tx BD configuration - VF LRO tunnel configuration * net/mlx5: - Tx checksum offloads - un-supported RSS hash fields use - device operation type - pedantic compilation - fix pedantic compilation - flow item validation - flow RSS configuration - UAR remapping on non configured queues - secondary process verification - port stop by verify flows are still present - flow priority on queue action- Enable(disabled by default) MLX4 and MLX5 pmd(fate#322609)- Upgraded to latest major 17.11(fate#322609); some of the fixes include: * Extended port_id range from uint8_t to uint16_t * Added a new driver for Marvell Armada 7k/8k devices * Updated mlx4 driver * Updated mlx5 driver * Added SoftNIC PMD * Added support for NXP DPAA Devices * Updated support for Cavium OCTEONTX Device * Added PF support to the Netronome NFP PMD * Updated bnxt PMD * Added bus agnostic functions to cryptodev for PMD initialization * Updated QAT crypto PMD * Updated the AESNI MB PMD * Updated the OpenSSL PMD * Added NXP DPAA SEC crypto PMD * Add new benchmarking mode to dpdk-test-crypto-perf application * Added IOMMU support to libvhost-user * Added the Generic Segmentation Offload Library * Added the Flow Classification Library - Removed 0002-kni-fix-build-on-SLE12-SP3.patch since patch merged upstream and available in 17.11- Added missing supported broadcom chipset family Broadcom NetXtreme II BCM57810- Upgraded to latest stable 17.08.1; some of the fixes include: * net/qede: disable per-VF Tx switching feature * revert "net/virtio: flush Rx queues on start" * various fixes for mlx5 PMD drivers * various fixes for bnxt PMD drivers * various fixes for i40e PMD drivers * various fixes for crypto PMD drivers * testpmd: fix for non-consecutive ports * ethdev: fix ABI version- Add missing libelf-devel dependency- Updated to 17.08(bsc#1050250, bsc#1046598, fate#322913, fate#322608) Some of the new features are listed below: * Increase minimum x86 ISA version to SSE4.2 * Added Fail-Safe PMD * Added support for generic flow API (rte_flow) on igb NICs * Added support for generic flow API (rte_flow) on enic * Added support for Chelsio T6 family of adapters * Added latency and performance improvements for cxgbe * Updated mlx5 driver * Added NXP DPAA2 Eventdev PMD * Added dpdk-test-eventdev test application * from 17.05: * Added mbuf raw free API * Added free Tx mbuf on demand API * Added VFIO hotplug support * Added PowerPC support for i40e and its vector PMD * Added VF max bandwidth setting in i40e * Added LiquidIO network PMD * Added support for NXP DPAA2 Network PMD * Added support for NXP DPAA2 - FSLMC bus * Added support for the Wind River Systems AVP PMD * Added vmxnet3 version 3 support * Added MTU feature support to Virtio and Vhost * Added event driven programming model library (rte_eventdev) * Added Software Eventdev PMD * Added Cavium OCTEONTX Eventdev PMD * Added NXP DPAA2 SEC crypto PMD * from 17.02: * Added generic EAL API for I/O device memory read/write operations * Added VF Daemon (VFD) for i40e. - EXPERIMENTAL * Added generic flow API (rte_flow) * Added APIs for MACsec offload support to the ixgbe PMD * Added Solarflare libefx-based network PMD. * Added support for Mellanox ConnectX-5 adapters (mlx5) * Added ARMv8 crypto PMD * Added crypto performance test application * more details can be found in http://dpdk.org/doc/guides/rel_notes/release_17_08.html http://dpdk.org/doc/guides/rel_notes/release_17_05.html http://dpdk.org/doc/guides/rel_notes/release_17_02.html [-0002-kni-define-HAVE_VF_VLAN_PROTO-for-SLES12SP3.patch - 0003-kni-define-HAVE_TRANS_START_HELPER-for-SLES12SP3.patch - 0004-net-thunderx-sync-mailbox-definitions-with-Linux-PF-.patch - 0005-kni-fix-build-with-gcc-7.1.patch - 0006-kni-fix-ethtool-build-with-kernel-4.11.patch - 0007-igb_uio-switch-to-new-irq-function-for-MSI-X.patch] - Use updated patch to enable HAVE_TRANS_START_HELPER for SLE12SP3(bsc#1031705). [+ 0002-kni-fix-build-on-SLE12-SP3.patch]- Enabled CONFIG_RTE_MAJOR_ABI: libs SONAME equal the DPDK release version- Split libs into a subpackage to provide multiple installable versions on same sytem- Do not use obsolete pci_enable_msix for() kernel > 4.8 [+0006-kni-fix-ethtool-build-with-kernel-4.11.patch, +0007-igb_uio-switch-to-new-irq-function-for-MSI-X.patch]- Updated to 16.11.2 which provide bug fixes as below(fate#321541): * mbuf: fix missing includes in exported header * eal: fix debug macro redefinition * net/nfp: fix packet/data length conversion * net/i40e: fix setup when bulk is disabled * pci: fix device registration on FreeBSD * net/i40e: ensure vector mode is not used with QinQ * nic_uio: fix device binding at boot * net/bnx2x: fix transmit queue free threshold * net/vmxnet3: fix queue size changes * kni: fix build with kernel 4.11 * kni: fix possible memory leak * kni: fix crash caused by freeing mempool * net/i40e: fix allocation check * net/virtio: fix crash when closing twice * net/ixgbevf: set xstats id values * net/i40e: fix hash input set on X722 * eal/linux: fix build with glibc 2.25 * net/i40e: fix incorrect packet index reference * net/thunderx: fix 32-bit build * net/thunderx: fix build on FreeBSD * net/thunderx: fix deadlock in Rx path * net/ixgbe: fix setting MTU on stopped device * vfio: fix secondary process start * net/virtio-user: fix address on 32-bit system * net/virtio: fix MSI-X for modern devices * net/virtio: fix link status always down * net/ixgbe: fix multi-queue mode check in SRIOV mode * net/i40e/base: fix potential out of bound array access * vhost: fix false sharing * net/thunderx: fix stats access out of bounds * net/virtio: disable LSC interrupt if MSIX not enabled * net/i40e: fix mbuf alloc failed counter * net: fix stripped VLAN flag for offload emulation * vfio: fix disabling INTx * net/igb: fix VF MAC address setting * net/igb: fix VF MAC address setting * net/ixgbe: fix VF Rx mode for allmulticast disabled * net/bonding: fix updating slave link status * net/virtio-user: fix overflow * net/i40e: fix TC bitmap of VEB * net/ixgbe/base: fix build error * net/ixgbe: fix Rx queue blocking issue * net/ixgbe: fix all queues drop setting of DCB * net/ixgbe: fix TC bandwidth setting more details can be found in http://dpdk.org/ml/archives/stable/2017-May/001809.html [- 0005-kni-fix-build-with-kernel-4.11.patch] - use default gcc which is now gcc7 (bsc#1042372) [+0005-kni-fix-build-with-gcc-7.1.patch]- Add upstream patch to fix building against linux kernel 4.11 [+0005-kni-fix-build-with-kernel-4.11.patch]- sync mailbox definitions with Linux PF driver(bsc#1035993) [+0004-net-thunderx-sync-mailbox-definitions-with-Linux-PF-.patch]- Enable HAVE_TRANS_START_HELPER for SLE12SP3(bsc#1031705). [+0003-kni-define-HAVE_TRANS_START_HELPER-for-SLES12SP3.patch]- Fix dpdk KMP build fails(bsc#1031750) - enable igb_uio kernel module(fate#322394) - update kernel version for SLES12SP3 4.4.59 for bsc#1031705 [*0002-kni-define-HAVE_VF_VLAN_PROTO-for-SLES12SP3.patch]- Enable HAVE_VF_VLAN_PROTO for SLE12SP3(bsc#1031705). [+0002-kni-define-HAVE_VF_VLAN_PROTO-for-SLES12SP3.patch]- Disable dpdk-kmp package for ix86.- Upgrade to LTS release of 16.11 which contains fixes below(fate#321541): * app/test: fix symmetric session free in crypto perf tests * app/testpmd: fix check for invalid ports * app/testpmd: fix static build link ordering * crypto/aesni_gcm: fix IV size in capabilities * crypto/aesni_gcm: fix J0 padding bytes * crypto/aesni_mb: fix incorrect crypto session * crypto/openssl: fix extra bytes written at end of data * crypto/openssl: fix indentation in guide * crypto/qat: fix IV size in capabilities * crypto/qat: fix to avoid buffer overwrite in OOP case * cryptodev: fix crash on null dereference * cryptodev: fix loop in device query * devargs: reset driver name pointer on parsing failure * drivers/crypto: fix different auth/cipher keys * ethdev: check maximum number of queues for statistics * ethdev: fix extended statistics name index * ethdev: fix port data mismatched in multiple process model * ethdev: fix port lookup if none * ethdev: remove invalid function from version map * examples/ethtool: fix driver information * examples/ethtool: fix querying non-PCI devices * examples/ip_pipeline: fix coremask limitation * examples/ip_pipeline: fix parsing of pass-through pipeline * examples/l2fwd-crypto: fix overflow * examples/vhost: fix calculation of mbuf count * examples/vhost: fix lcore initialization * mempool: fix API documentation * mempool: fix stack handler dequeue * net/af_packet: fix fd use after free * net/bnx2x: fix Rx mode configuration * net/cxgbe/base: initialize variable before reading EEPROM * net/cxgbe: fix parenthesis on bitwise operation * net/ena: fix setting host attributes * net/enic: fix hardcoding of some flow director masks * net/enic: fix memory leak with oversized Tx packets * net/enic: remove unnecessary function parameter attributes * net/i40e: enable auto link update for 25G * net/i40e: fix Rx checksum flag * net/i40e: fix TC bandwidth definition * net/i40e: fix VF reset flow * net/i40e: fix checksum flag in x86 vector Rx * net/i40e: fix crash in close * net/i40e: fix deletion of all macvlan filters * net/i40e: fix ethertype filter on X722 * net/i40e: fix link update delay * net/i40e: fix logging for Tx free threshold check * net/i40e: fix segment number in reassemble process * net/i40e: fix wrong return value when handling PF message * net/i40e: fix xstats value mapping * net/i40evf: fix casting between structs * net/i40evf: fix reporting of imissed packets * net/ixgbe: fix blocked interrupts * net/ixgbe: fix received packets number for ARM * net/ixgbe: fix received packets number for ARM NEON * net/ixgbevf: fix max packet length * net/mlx5: fix RSS hash result for flows * net/mlx5: fix Rx packet validation and type * net/mlx5: fix Tx doorbell * net/mlx5: fix endianness in Tx completion queue * net/mlx5: fix inconsistent link status * net/mlx5: fix leak when starvation occurs * net/mlx5: fix link status query * net/mlx5: fix memory leak when parsing device params * net/mlx5: fix missing inline attributes * net/mlx5: fix updating total length of multi-packet send * net/mlx: fix IPv4 and IPv6 packet type * net/nfp: fix VLAN offload flags check * net/nfp: fix typo in Tx offload capabilities * net/pcap: fix timestamps in output pcap file * net/qede/base: fix FreeBSD build * net/qede: add vendor/device id info * net/qede: fix PF fastpath status block index * net/qede: fix filtering code * net/qede: fix function declaration * net/qede: fix per queue statisitics * net/qede: fix resource leak * net/vhost: fix socket file deleted on stop * net/vhost: fix unix socket not removed as closing * net/virtio-user: fix not properly reset device * net/virtio-user: fix wrongly get/set features * net/virtio: fix build without virtio-user * net/virtio: fix crash when number of virtio devices > 1 * net/virtio: fix multiple process support * net/virtio: fix performance regression due to TSO * net/virtio: fix rewriting LSC flag * net/virtio: fix wrong Rx/Tx method for secondary process * net/virtio: optimize header reset on any layout * net/virtio: store IO port info locally * net/virtio: store PCI operators pointer locally * net/vmxnet3: fix Rx deadlock * pci: fix check of mknod * pmdinfogen: fix endianness with cross-compilation * pmdinfogen: fix null dereference * sched: fix crash when freeing port * usertools: fix active interface detection when binding * vdev: fix detaching with alias * vfio: fix file descriptor leak in multi-process * vhost: allow many vhost-user ports * vhost: do not GSO when no header is present * vhost: fix dead loop in enqueue path * vhost: fix guest/host physical address mapping * vhost: fix long stall of negotiation * vhost: fix memory leak- Fix broken dpdk-pmd/* soft links(bsc#1026804).- Do not disable cryptodev as EXPREMENTAL tag has been removed. - Remove CONFIG_RTE_LIBRTE_MBUF_OFFLOAD as cryptodev is not depending on it anymore and its removed from the upstream.- Enable rte_kni kernel module for dpdk(fate#322394). [+preamble] - Build dpdk-thunderx only for aarch64- Update to version 16.11(fate#321541). Some of the new features are listed below: * Added software parser for packet type. * Improved offloads support in mbuf. * Added vhost-user dequeue zero copy support. * Added vhost-user indirect descriptors support. * Added vhost PMD xstats. * Added virtio NEON support for ARM. * Updated the ixgbe base driver. * Added APIs for VF management to the ixgbe PMD. * Updated the enic driver. * Added openssl PMD. * Added support for new gcc -march option. Detailed changes can be obtained from http://dpdk.org/doc/guides/rel_notes/release_16_11.html - Resolved fixes in the updated versions are : * enic: Fixed several flow director issues. * enic: Fixed inadvertent setting of L4 checksum ptype on ICMP packets. * enic: Fixed high driver overhead when servicing Rx queues beyond the first.- Added gcc-6 as default compiler for CRC/mtune & other optimizations. - Fix possible parallel installation of dpdk subpackages.- Add pre_checkin.sh to generate the dpdk-thunderx.spec file- Fixed paths using %{name} to have the dpdk.spec aligned with dpdk-thunderx.spec- Added back in all the architectures to keep .spec files aligned * Driving thunderx platform architectural dependency via the ExclusiveArch tag- Added support to build code for Thunderx platform(fate#321960). - Introduced new dpdk-thunderx.spec file: * Removed architectures not supporting Thunderx platform (e.g. x86) * Added dependency on gcc v5.0 for armv8a-crc- Update to version 16.07.2. Some of the fixes are listed below: * ethdev: prevent duplicate event callback * hash: fix bucket size usage * hash: fix unlimited cuckoo path * lpm: fix freeing memory * lpm: fix freeing unused sub-table on rule delete * mempool: fix leak if populate fails * mempool: fix search of maximum contiguous pages * pci: fix probing error if no driver found * net/bnx2x: fix maximum PF queues * net/bnxt: fix bit shift size * net/bnxt: fix crash when closing * net/enic: fix Rx queue index when not using Rx scatter * net/enic: fix crash on MTU update or Rx queue reconfigure * net/enic: fix crash with removed flow director filters * net/enic: fix max packet length check * net/enic: fix multi-queue Rx performance * net/enic: revert truncated packets counter fix * net/fm10k: fix VF Tx queue initialization * net/i40e: fix Rx hang when disable LLDP * net/ixgbe: fix VF registers * net/thunderx: fix Tx checksum handling * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides-16.07/rel_notes/release_16_07.html#id2]- Update to version 16.07.1. Some of the fixes are listed below: * contigmem: zero all pages during mmap * crypto/null: fix key size increment value * hash: fix false zero signature key hit lookup * mem: fix crash on hugepage mapping error * mbuf: fix error handling on pool creation * net/e1000: fix returned number of available Rx descriptors * net/enic: fix freeing memory for descriptor ring * net/i40e: fix dropping packets with ethertype 0x88A8 * net/i40e: fix mbuf leak during Rx queue release * net/i40e: fix null pointer dereferences when using VMDq+RSS * net/ixgbe/base: fix possible corruption of shadow RAM * net/ixgbe: fix VF reset to apply to correct VF * net/virtio_user: fix error management during init * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides-16.07/rel_notes/release_16_07.html#fixes-in-16-07-01-stable-release]- Drop code for generating our own linker script. * Commit 948fd64befc3 (" mk: replace the combined library with a linker script") added upstream support for building and installing a linker script so we drop our code from the spec file which generated a much larger and possibly broken linker script resulting to linking issues (boo#1002534)- Update to version 16.07. Some of the new features are listed below: * Removed the mempool cache memory if caching is not being used. * Added mempool external cache for non-EAL thread. * Changed the memory allocation scheme in the mempool library. * Added a new driver for Broadcom NetXtreme-C devices. * Added a new driver for ThunderX nicvf devices. * Added mailbox interrupt support for ixgbe and igb VFs. * Updated the ixgbe base driver. * Updated the i40e base driver. * Updated the enic driver. * Updated the mlx5 driver. * Added support for virtio on IBM POWER8. * Added support for Virtio in containers. * Added vhost-user client mode. * Added NSH packet recognition in i40e. * Added AES-CTR support to AESNI MB PMD. * Added AES counter mode support for Intel QuickAssist devices. * Added KASUMI SW PMD. * Added multi-writer support for RTE Hash with Intel TSX. * Improved IP Pipeline Application. * Added keepalive enhancements. * Added packet capture framework. * Added floating VEB support for i40e PF driver. * Added support for live migration of a VM with SRIOV VF. * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides/rel_notes/release_16_07.html - http://dpdk.org/browse/dpdk/tree/doc/guides/rel_notes/release_16_07.rst - Or the doc/guides/rel_notes/release_16_07.rst file in the released tarball.] - Removed patches that are already avilable in dpdk-16.07 [ -0002-examples-ip_pipeline-fix-implicit-declaration-of-fun.patch - 0003-mk-fix-external-shared-library-dependencies-of-libraries.patch - 0004-54f9e32-vhost-handle-dirty-pages-logging-request.patch - 0005-d293dac-vhost-claim-support-of-guest-announce.patch - 0006-d639996-vhost-enable-log_shmfd-protocol-feature.patch - 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch - 0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch - 0009-bonding-copy-entire-config-structure-in-mode-4.patch - 0010-bonding-fix-active-slaves-with-no-primary.patch - 0011-bonding-do-not-ignore-multicast-in-mode-4.patch - 0012-bonding-do-not-activate-slave-twice.patch - 0013-bonding-fix-crash-when-no-slave-device.patch - 0014-bonding-fix-detach-of-bonded-device.patch - 0015-bonding-fix-detach-of-slave-devices.patch - 0016-eal-linux-support-built-in-kernel-modules.patch - 0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch - 0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch - 0019-i40e-base-fix-driver-load-failure.patch - 0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch - 0021-i40e-fix-inverted-check-for-no-refcount.patch - 0022-i40e-fix-overflow.patch - 0023-i40e-fix-VLAN-filtering.patch - 0024-mempool-fix-leak-when-creation-fails.patch - 0025-pcap-fix-captured-frame-length.patch - 0026-port-fix-crash-for-ethdev-writer-nodrop.patch - 0027-port-fix-crash-for-ring-writer-nodrop.patch - 0028-tools-fix-unbinding-failure-handling.patch - 0029-tools-support-Python-3-in-bind-script.patch - 0030-tools-support-binding-to-built-in-kernel-modules.patch - 0031-vhost-fix-leak-of-fds-and-mmaps.patch - 0032-virtio-fix-crash-in-statistics-functions.patch - 0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch - 0034-virtio-fix-restart.patch - 0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi.patch - 0036-examples-fix-build-dependencies.patch - 0037-examples-ethtool-fix-build.patch - 0099-mk-fix-gcc-5-version-on-suse.patch - 0100-kni-fix-build-with-gcc-6.patch - 0101-ixgbe-fix-uninitialized-warning.patch - 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch - 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch - 0104-igb-fix-constant-sign-in-left-shift-operator.patch - 0105-e1000-fix-missing-link-interrupt-check-brackets.patch - 0106-app-test-fix-missing-brackets.patch - 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch ] - Created soft link for dpdk_proc_info and dpdk_nic_bind(from dpdk-procinfo, dpdk-devbind) to keep compatibility. - Added a new binary dpdk-pdump dpdk-procinfo- Add _constraints file to force build dpdk with sse3 enabled x86 machine(bsc#993462). - Enable compilation for ppc64le with the help of Rüdiger(ro@suse.de). - Enable example package for aarch64 using Rüdiger(ro@suse.de) changes. - Do not enable PMD_RING on ppc64le (missing rte_eth_from_rings). - Disable examples that need LPM which is disabled on non-x86. [+0036-examples-fix-build-dependencies.patch, +0037-examples-ethtool-fix-build.patch, +_constraints]- Added support for aarch64 compilation. [+0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi.patch] - Disabled aarch64 dpdk-examples package for the time being as it contains lots of Intel specific code. - Added proper "Group" field for the subpackages .- Add upstream patches to fix building with gcc >= 6 * 0100-kni-fix-build-with-gcc-6.patch * 0101-ixgbe-fix-uninitialized-warning.patch * 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch * 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch * 0104-igb-fix-constant-sign-in-left-shift-operator.patch * 0105-e1000-fix-missing-link-interrupt-check-brackets.patch * 0106-app-test-fix-missing-brackets.patch * 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch- Removed unwanted files(bsc#984437).- Added missing GPL-2.0 and LGPL-2.1 licenses.- Update tarball URL.- Applied all the fixes recommended by upstream for v2.2 stable release(bsc#981996). [+0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch, +0009-bonding-copy-entire-config-structure-in-mode-4.patch, +0010-bonding-fix-active-slaves-with-no-primary.patch, +0011-bonding-do-not-ignore-multicast-in-mode-4.patch, +0012-bonding-do-not-activate-slave-twice.patch, +0013-bonding-fix-crash-when-no-slave-device.patch, +0014-bonding-fix-detach-of-bonded-device.patch, +0015-bonding-fix-detach-of-slave-devices.patch, +0016-eal-linux-support-built-in-kernel-modules.patch, +0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch, +0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch, +0019-i40e-base-fix-driver-load-failure.patch, +0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch, +0021-i40e-fix-inverted-check-for-no-refcount.patch, +0022-i40e-fix-overflow.patch, +0023-i40e-fix-VLAN-filtering.patch, +0024-mempool-fix-leak-when-creation-fails.patch, +0025-pcap-fix-captured-frame-length.patch, +0026-port-fix-crash-for-ethdev-writer-nodrop.patch, +0027-port-fix-crash-for-ring-writer-nodrop.patch, +0028-tools-fix-unbinding-failure-handling.patch, +0029-tools-support-Python-3-in-bind-script.patch, +0030-tools-support-binding-to-built-in-kernel-modules.patch, +0031-vhost-fix-leak-of-fds-and-mmaps.patch, +0032-virtio-fix-crash-in-statistics-functions.patch, +0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch, +0034-virtio-fix-restart.patch]- Use fdupes to manage duplicate files- Create DPDK packages for 32 bit x86(bsc#977639).- Add upstream patch for the ixgbe driver * 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch: Fix VLAN filtering logic by adding the missing brackets in the 'if' statement.- DPDK is most common vhost-user backend, Adding upstream patches to help qemu vm live migration with vhost-user (fate#320713). [+ 0004-54f9e32-vhost-handle-dirty-pages-logging-request.patch + 0005-d293dac-vhost-claim-support-of-guest-announce.patch + 0006-d639996-vhost-enable-log_shmfd-protocol-feature.patch]- Move the combined library back to the devel package (bsc#975123) Ever since we dropped the CONFIG_RTE_BUILD_COMBINE_LIBS=y option, the libdpdk.so is no longer a shared object but rather a linker script generated by the spec file. This means that it is only used during linking and the linker will add the individual DPDK libraries to the DT_NEEDED tag on the dependent binaries.- Fix shared linking against libdpdk.so (bsc#975123) * Restore the 0003-mk-fix-external-shared-library-dependencies-of-libraries.patch patch which sets the correct dependencies for the shared libraries. * Drop CONFIG_RTE_BUILD_COMBINE_LIBS since a custom linker script is used to create and install a more lightweight version of libdpdk.so. * Include the combined libdpdk.so library to the regular package since it is also necessary during runtime.- Removed unwnated patch and reformated patch file names(bsc#974903). [- dpdk-2.2-dtneeded.patch, - dpdk-2.2-examples.patch, - enic-pun-fix.patch, - dpdk-2.2-warningflags.patch, + 0001-enic-fix-Type-punning-and-strict-aliasing-warning.patch + 0002-examples-ip_pipeline-fix-implicit-declaration-of-fun.patch] - Added CONFIG_RTE_BUILD_COMBINE_LIBS flags to club all all *.so into one library- Intial version 2.2.0(fate#319169)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~     # )                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  22.11.1122.11.11-150500.5.13.1      !!!!!!!"""""""""""#########################$$$$$$$%%%%%%%%%%&&''''''((())))))))))))))**************+++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------......................................................................//////00001111111111111111111111111111111112222222222222222222222222222222222222222222222223333344444444444444455555666677788999999999999999998777777::::7777777;;;;;;;;;<<<<<<<===========>>>>>>>>>>>>>>>>>>>>>>>>>???????@@@@@@@@@@AABBBBBBCCCDDDDDDDDDDDDDDEEEEEEEEEEEEEEFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOPPPPPPPPPPPPPPPQQQQQRRRRdpdkdpdk_staticcsscustom.cssexamples.doxhtml.buildinfo.doctreesbbdevsacc100.doctreeacc200.doctreefpga_5gnr_fec.doctreefpga_lte_fec.doctreeindex.doctreela12xx.doctreenull.doctreeoverview.doctreeturbo_sw.doctreecompressdevsindex.doctreeisal.doctreemlx5.doctreeocteontx.doctreeoverview.doctreeqat_comp.doctreezlib.doctreecontributingabi_policy.doctreeabi_versioning.doctreecheatsheet.doctreecoding_style.doctreedesign.doctreedocumentation.doctreeindex.doctreepatches.doctreestable.doctreeunit_test.doctreevulnerability.doctreecryptodevsaesni_gcm.doctreeaesni_mb.doctreearmv8.doctreebcmfs.doctreecaam_jr.doctreeccp.doctreechacha20_poly1305.doctreecnxk.doctreedpaa2_sec.doctreedpaa_sec.doctreeindex.doctreekasumi.doctreemlx5.doctreemvsam.doctreenitrox.doctreenull.doctreeocteontx.doctreeopenssl.doctreeoverview.doctreeqat.doctreescheduler.doctreesnow3g.doctreeuadk.doctreevirtio.doctreezuc.doctreedmadevscnxk.doctreedpaa.doctreedpaa2.doctreehisilicon.doctreeidxd.doctreeindex.doctreeioat.doctreeenvironment.pickleeventdevscnxk.doctreedlb2.doctreedpaa.doctreedpaa2.doctreedsw.doctreeindex.doctreeocteontx.doctreeopdl.doctreeoverview.doctreesw.doctreefaqfaq.doctreeindex.doctreefreebsd_gsgbuild_dpdk.doctreebuild_sample_apps.doctreefreebsd_eal_parameters.doctreeindex.doctreeinstall_from_ports.doctreeintro.doctreegpuscuda.doctreeindex.doctreeoverview.doctreehowtoavx512.doctreedebug_troubleshoot.doctreeflow_bifurcation.doctreeindex.doctreelm_bond_virtio_sriov.doctreelm_virtio_vhost_user.doctreeopenwrt.doctreepacket_capture_framework.doctreepvp_reference_benchmark.doctreerte_flow.doctreetelemetry.doctreevfd.doctreevirtio_user_as_exception_path.doctreevirtio_user_for_container_networking.doctreeindex.doctreelinux_gsgbuild_dpdk.doctreebuild_sample_apps.doctreecross_build_dpdk_for_arm64.doctreecross_build_dpdk_for_loongarch.doctreecross_build_dpdk_for_riscv.doctreedoc_roadmap.include.doctreeeal_args.include.doctreeenable_func.doctreeindex.doctreeintro.doctreelinux_drivers.doctreelinux_eal_parameters.doctreenic_perf_intel_platform.doctreesys_reqs.doctreemempoolcnxk.doctreeindex.doctreeocteontx.doctreering.doctreestack.doctreenicsaf_packet.doctreeaf_xdp.doctreeark.doctreeatlantic.doctreeavp.doctreeaxgbe.doctreebnx2x.doctreebnxt.doctreebuild_and_test.doctreecnxk.doctreecxgbe.doctreedpaa.doctreedpaa2.doctreee1000em.doctreeena.doctreeenetc.doctreeenetfec.doctreeenic.doctreefail_safe.doctreefeatures.doctreefm10k.doctreegve.doctreehinic.doctreehns3.doctreei40e.doctreeice.doctreeidpf.doctreeigb.doctreeigc.doctreeindex.doctreeintel_vf.doctreeionic.doctreeipn3ke.doctreeixgbe.doctreekni.doctreeliquidio.doctreemana.doctreememif.doctreemlx4.doctreemlx5.doctreemvneta.doctreemvpp2.doctreenetvsc.doctreenfb.doctreenfp.doctreengbe.doctreenull.doctreeocteon_ep.doctreeocteontx.doctreeoverview.doctreepcap_ring.doctreepfe.doctreeqede.doctreesfc_efx.doctreesoftnic.doctreetap.doctreethunderx.doctreetxgbe.doctreevdev_netvsc.doctreevhost.doctreevirtio.doctreevmxnet3.doctreeplatformbluefield.doctreecnxk.doctreedpaa.doctreedpaa2.doctreeindex.doctreemlx5.doctreeocteontx.doctreeprog_guideasan.doctreebbdev.doctreebpf_lib.doctreebuild-sdk-meson.doctreebuild_app.doctreecompressdev.doctreecryptodev_lib.doctreedmadev.doctreeefd_lib.doctreeenv_abstraction_layer.doctreeevent_crypto_adapter.doctreeevent_ethernet_rx_adapter.doctreeevent_ethernet_tx_adapter.doctreeevent_timer_adapter.doctreeeventdev.doctreefib_lib.doctreeflow_classify_lib.doctreegeneric_receive_offload_lib.doctreegeneric_segmentation_offload_lib.doctreeglossary.doctreegpudev.doctreegraph_lib.doctreehash_lib.doctreeindex.doctreeintro.doctreeip_fragment_reassembly_lib.doctreeipsec_lib.doctreekernel_nic_interface.doctreelink_bonding_poll_mode_drv_lib.doctreelpm6_lib.doctreelpm_lib.doctreelto.doctreembuf_lib.doctreemember_lib.doctreemempool_lib.doctreemeson_ut.doctreemetrics_lib.doctreemulti_proc_support.doctreeoverview.doctreepacket_classif_access_ctrl.doctreepacket_distrib_lib.doctreepacket_framework.doctreepcapng_lib.doctreepdump_lib.doctreeperf_opt_guidelines.doctreepoll_mode_drv.doctreepower_man.doctreeprofile_app.doctreeqos_framework.doctreerawdev.doctreercu_lib.doctreeregexdev.doctreereorder_lib.doctreerib_lib.doctreering_lib.doctreerte_flow.doctreerte_security.doctreeservice_cores.doctreesource_org.doctreestack_lib.doctreeswitch_representation.doctreetelemetry_lib.doctreethread_safety_dpdk_functions.doctreetimer_lib.doctreetoeplitz_hash_lib.doctreetrace_lib.doctreetraffic_management.doctreetraffic_metering_and_policing.doctreevhost_lib.doctreewriting_efficient_code.doctreerawdevscnxk_bphy.doctreecnxk_gpio.doctreedpaa2_cmdif.doctreeifpga.doctreeindex.doctreentb.doctreeregexdevscn9k.doctreefeatures_overview.doctreeindex.doctreemlx5.doctreerel_notesdeprecation.doctreeindex.doctreeknown_issues.doctreerelease_16_04.doctreerelease_16_07.doctreerelease_16_11.doctreerelease_17_02.doctreerelease_17_05.doctreerelease_17_08.doctreerelease_17_11.doctreerelease_18_02.doctreerelease_18_05.doctreerelease_18_08.doctreerelease_18_11.doctreerelease_19_02.doctreerelease_19_05.doctreerelease_19_08.doctreerelease_19_11.doctreerelease_1_8.doctreerelease_20_02.doctreerelease_20_05.doctreerelease_20_08.doctreerelease_20_11.doctreerelease_21_02.doctreerelease_21_05.doctreerelease_21_08.doctreerelease_21_11.doctreerelease_22_03.doctreerelease_22_07.doctreerelease_22_11.doctreerelease_2_0.doctreerelease_2_1.doctreerelease_2_2.doctreesample_app_ugbbdev_app.doctreecmd_line.doctreecompiling.doctreedist_app.doctreedma.doctreeethtool.doctreeeventdev_pipeline.doctreefips_validation.doctreeflow_classify.doctreeflow_filtering.doctreehello_world.doctreeindex.doctreeintro.doctreeip_frag.doctreeip_pipeline.doctreeip_reassembly.doctreeipsec_secgw.doctreeipv4_multicast.doctreekeep_alive.doctreel2_forward_cat.doctreel2_forward_crypto.doctreel2_forward_event.doctreel2_forward_job_stats.doctreel2_forward_real_virtual.doctreel3_forward.doctreel3_forward_graph.doctreel3_forward_power_man.doctreelink_status_intr.doctreemulti_process.doctreentb.doctreepacket_ordering.doctreepipeline.doctreeptpclient.doctreeqos_metering.doctreeqos_scheduler.doctreerxtx_callbacks.doctreeserver_node_efd.doctreeservice_cores.doctreeskeleton.doctreetest_pipeline.doctreetimer.doctreevdpa.doctreevhost.doctreevhost_blk.doctreevhost_crypto.doctreevm_power_management.doctreevmdq_dcb_forwarding.doctreevmdq_forwarding.doctreetestpmd_app_ugbuild_app.doctreeindex.doctreeintro.doctreerun_app.doctreetestpmd_funcs.doctreetoolscomp_perf.doctreecryptoperf.doctreedevbind.doctreedts.doctreedumpcap.doctreeflow-perf.doctreehugepages.doctreeindex.doctreepdump.doctreepmdinfo.doctreeproc_info.doctreesecurityperf.doctreetestbbdev.doctreetesteventdev.doctreetestregex.doctreevdpadevsfeatures_overview.doctreeifc.doctreeindex.doctreemlx5.doctreesfc.doctreewindows_gsgbuild_dpdk.doctreeindex.doctreeintro.doctreerun_apps.doctree_imagesabi_stability_policy.svganatomy_of_a_node.svgarchitecture-overview.svgblk_diag_dropper.pngbond-mode-0.svgbond-mode-1.svgbond-mode-2.svgbond-mode-3.svgbond-mode-4.svgbond-mode-5.svgbond-overview.svgclient_svr_sym_multi_proc_app.pngcnxk_packet_flow_hw_accelerators.svgcnxk_resource_virtualization.svgconsole.pngcrypto_op.svgcrypto_xform_chain.svgdata_struct_per_port.pngdir_24_8_alg.svgdist_app.svgdist_perf.svgdmadev.svgdrop_probability_eq3.pngdrop_probability_eq4.pngdrop_probability_graph.pngdtg_consumer_ring.svgdtg_crypto.svgdtg_distributor_worker.svgdtg_mempool.svgdtg_pdump.svgdtg_producer_ring.svgdtg_qos_tx.svgdtg_rx_rate.svgdtg_rx_tx_drop.svgdtg_sample_app_model.svgdtg_service.svgefd_i1.svgefd_i10.svgefd_i11.svgefd_i12.svgefd_i2.svgefd_i3.svgefd_i4.svgefd_i5.svgefd_i6.svgefd_i7.svgefd_i8.svgefd_i9.svgeq2_expression.pngeq2_factor.pngevent_crypto_adapter_op_forward.svgevent_crypto_adapter_op_new.svgeventdev_order_atq_test.svgeventdev_order_queue_test.svgeventdev_perf_atq_test.svgeventdev_perf_queue_test.svgeventdev_pipeline_atq_test_generic.svgeventdev_pipeline_atq_test_internal_port.svgeventdev_pipeline_queue_test_generic.svgeventdev_pipeline_queue_test_internal_port.svgeventdev_usage.svgewma_filter_eq_1.pngewma_filter_eq_2.pngex_data_flow_tru_dropper.pngfast_pkt_proc.pngfigure32.pngfigure33.pngfigure34.pngfigure35.pngfigure37.pngfigure38.pngfigure39.pngflow_bifurcation_overview.svgflow_tru_dropper.pngforward_stats.pnggraph_mem_layout.svggro-key-algorithm.svggso-output-segment-format.svggso-three-seg-mbuf.svghier_sched_blk.pnghost_vm_comms.pnghost_vm_comms_qemu.pngice_dcf.svgintel_perf_test_setup.svginter_vm_comms.pngipv4_acl_rule.pngkernel_nic_intf.pngl2_fwd_benchmark_setup.svgl2_fwd_encrypt_flow.svgl2_fwd_virtenv_benchmark_setup.pngl2_fwd_vm2vm.svglink_the_nodes.svglinuxapp_launch.svglm_bond_virtio_sriov.svglm_vhost_user.svgm_definition.pngmalloc_heap.svgmbuf1.svgmbuf2.svgmember_i1.svgmember_i2.svgmember_i3.svgmember_i4.svgmember_i5.svgmember_i6.svgmember_i7.svgmemory-management.svgmemory-management2.svgmempool.svgmulti_process_memory.svgmvpp2_tm.svgpacket_capture_framework.svgpacket_distributor1.pngpacket_distributor2.pngpatch_cheatsheet.svgperf_benchmark.pngpipe_prefetch_sm.pngpkt_drop_probability.pngpkt_flow_kni.pngpkt_proc_pipeline_qos.pngpredictable_snat_1.svgpredictable_snat_2.svgprefetch_pipeline.pngptpclient.svgpvp_2nics.svgqos_sched_app_arch.pngrcu_general_info.svgrib_internals.svgrib_pic.svgring-dequeue1.svgring-dequeue2.svgring-dequeue3.svgring-enqueue1.svgring-enqueue2.svgring-enqueue3.svgring-modulo1.svgring-modulo2.svgring-mp-enqueue1.svgring-mp-enqueue2.svgring-mp-enqueue3.svgring-mp-enqueue4.svgring-mp-enqueue5.svgring1.svgrss_queue_assign.svgrte_flow_async_init.svgrte_flow_async_usage.svgrte_mtr_meter_chaining.svgsched_hier_per_port.svgscheduler-overview.svgserver_node_efd.svgsingle_port_nic.pngstateful-op.svgstateless-op-shared.svgstateless-op.svgsym_multi_proc_app.pngtbl24_tbl8.pngtbl24_tbl8_tbl8.pngtest_pipeline_app.pngturbo_tb_decode.svgturbo_tb_encode.svguse_models_for_running_dpdk_in_containers.svgvf_daemon_overview.svgvirtio_user_as_exception_path.svgvirtio_user_for_container_networking.svgvm_power_mgr_highlevel.svgvm_power_mgr_vm_request_seq.svgvm_vm_comms.pngvmdq_dcb_example.svgvmxnet3_int.pngvswitch_vm.pngwhat_is_an_abi.svg_sourcesbbdevsacc100.rst.txtacc200.rst.txtfpga_5gnr_fec.rst.txtfpga_lte_fec.rst.txtindex.rst.txtla12xx.rst.txtnull.rst.txtoverview.rst.txtturbo_sw.rst.txtcompressdevsindex.rst.txtisal.rst.txtmlx5.rst.txtocteontx.rst.txtoverview.rst.txtqat_comp.rst.txtzlib.rst.txtcontributingabi_policy.rst.txtabi_versioning.rst.txtcheatsheet.rst.txtcoding_style.rst.txtdesign.rst.txtdocumentation.rst.txtindex.rst.txtpatches.rst.txtstable.rst.txtunit_test.rst.txtvulnerability.rst.txtcryptodevsaesni_gcm.rst.txtaesni_mb.rst.txtarmv8.rst.txtbcmfs.rst.txtcaam_jr.rst.txtccp.rst.txtchacha20_poly1305.rst.txtcnxk.rst.txtdpaa2_sec.rst.txtdpaa_sec.rst.txtindex.rst.txtkasumi.rst.txtmlx5.rst.txtmvsam.rst.txtnitrox.rst.txtnull.rst.txtocteontx.rst.txtopenssl.rst.txtoverview.rst.txtqat.rst.txtscheduler.rst.txtsnow3g.rst.txtuadk.rst.txtvirtio.rst.txtzuc.rst.txtdmadevscnxk.rst.txtdpaa.rst.txtdpaa2.rst.txthisilicon.rst.txtidxd.rst.txtindex.rst.txtioat.rst.txteventdevscnxk.rst.txtdlb2.rst.txtdpaa.rst.txtdpaa2.rst.txtdsw.rst.txtindex.rst.txtocteontx.rst.txtopdl.rst.txtoverview.rst.txtsw.rst.txtfaqfaq.rst.txtindex.rst.txtfreebsd_gsgbuild_dpdk.rst.txtbuild_sample_apps.rst.txtfreebsd_eal_parameters.rst.txtindex.rst.txtinstall_from_ports.rst.txtintro.rst.txtgpuscuda.rst.txtindex.rst.txtoverview.rst.txthowtoavx512.rst.txtdebug_troubleshoot.rst.txtflow_bifurcation.rst.txtindex.rst.txtlm_bond_virtio_sriov.rst.txtlm_virtio_vhost_user.rst.txtopenwrt.rst.txtpacket_capture_framework.rst.txtpvp_reference_benchmark.rst.txtrte_flow.rst.txttelemetry.rst.txtvfd.rst.txtvirtio_user_as_exception_path.rst.txtvirtio_user_for_container_networking.rst.txtindex.rst.txtlinux_gsgbuild_dpdk.rst.txtbuild_sample_apps.rst.txtcross_build_dpdk_for_arm64.rst.txtcross_build_dpdk_for_loongarch.rst.txtcross_build_dpdk_for_riscv.rst.txtdoc_roadmap.include.rst.txteal_args.include.rst.txtenable_func.rst.txtindex.rst.txtintro.rst.txtlinux_drivers.rst.txtlinux_eal_parameters.rst.txtnic_perf_intel_platform.rst.txtsys_reqs.rst.txtmempoolcnxk.rst.txtindex.rst.txtocteontx.rst.txtring.rst.txtstack.rst.txtnicsaf_packet.rst.txtaf_xdp.rst.txtark.rst.txtatlantic.rst.txtavp.rst.txtaxgbe.rst.txtbnx2x.rst.txtbnxt.rst.txtbuild_and_test.rst.txtcnxk.rst.txtcxgbe.rst.txtdpaa.rst.txtdpaa2.rst.txte1000em.rst.txtena.rst.txtenetc.rst.txtenetfec.rst.txtenic.rst.txtfail_safe.rst.txtfeatures.rst.txtfm10k.rst.txtgve.rst.txthinic.rst.txthns3.rst.txti40e.rst.txtice.rst.txtidpf.rst.txtigb.rst.txtigc.rst.txtindex.rst.txtintel_vf.rst.txtionic.rst.txtipn3ke.rst.txtixgbe.rst.txtkni.rst.txtliquidio.rst.txtmana.rst.txtmemif.rst.txtmlx4.rst.txtmlx5.rst.txtmvneta.rst.txtmvpp2.rst.txtnetvsc.rst.txtnfb.rst.txtnfp.rst.txtngbe.rst.txtnull.rst.txtocteon_ep.rst.txtocteontx.rst.txtoverview.rst.txtpcap_ring.rst.txtpfe.rst.txtqede.rst.txtsfc_efx.rst.txtsoftnic.rst.txttap.rst.txtthunderx.rst.txttxgbe.rst.txtvdev_netvsc.rst.txtvhost.rst.txtvirtio.rst.txtvmxnet3.rst.txtplatformbluefield.rst.txtcnxk.rst.txtdpaa.rst.txtdpaa2.rst.txtindex.rst.txtmlx5.rst.txtocteontx.rst.txtprog_guideasan.rst.txtbbdev.rst.txtbpf_lib.rst.txtbuild-sdk-meson.rst.txtbuild_app.rst.txtcompressdev.rst.txtcryptodev_lib.rst.txtdmadev.rst.txtefd_lib.rst.txtenv_abstraction_layer.rst.txtevent_crypto_adapter.rst.txtevent_ethernet_rx_adapter.rst.txtevent_ethernet_tx_adapter.rst.txtevent_timer_adapter.rst.txteventdev.rst.txtfib_lib.rst.txtflow_classify_lib.rst.txtgeneric_receive_offload_lib.rst.txtgeneric_segmentation_offload_lib.rst.txtglossary.rst.txtgpudev.rst.txtgraph_lib.rst.txthash_lib.rst.txtindex.rst.txtintro.rst.txtip_fragment_reassembly_lib.rst.txtipsec_lib.rst.txtkernel_nic_interface.rst.txtlink_bonding_poll_mode_drv_lib.rst.txtlpm6_lib.rst.txtlpm_lib.rst.txtlto.rst.txtmbuf_lib.rst.txtmember_lib.rst.txtmempool_lib.rst.txtmeson_ut.rst.txtmetrics_lib.rst.txtmulti_proc_support.rst.txtoverview.rst.txtpacket_classif_access_ctrl.rst.txtpacket_distrib_lib.rst.txtpacket_framework.rst.txtpcapng_lib.rst.txtpdump_lib.rst.txtperf_opt_guidelines.rst.txtpoll_mode_drv.rst.txtpower_man.rst.txtprofile_app.rst.txtqos_framework.rst.txtrawdev.rst.txtrcu_lib.rst.txtregexdev.rst.txtreorder_lib.rst.txtrib_lib.rst.txtring_lib.rst.txtrte_flow.rst.txtrte_security.rst.txtservice_cores.rst.txtsource_org.rst.txtstack_lib.rst.txtswitch_representation.rst.txttelemetry_lib.rst.txtthread_safety_dpdk_functions.rst.txttimer_lib.rst.txttoeplitz_hash_lib.rst.txttrace_lib.rst.txttraffic_management.rst.txttraffic_metering_and_policing.rst.txtvhost_lib.rst.txtwriting_efficient_code.rst.txtrawdevscnxk_bphy.rst.txtcnxk_gpio.rst.txtdpaa2_cmdif.rst.txtifpga.rst.txtindex.rst.txtntb.rst.txtregexdevscn9k.rst.txtfeatures_overview.rst.txtindex.rst.txtmlx5.rst.txtrel_notesdeprecation.rst.txtindex.rst.txtknown_issues.rst.txtrelease_16_04.rst.txtrelease_16_07.rst.txtrelease_16_11.rst.txtrelease_17_02.rst.txtrelease_17_05.rst.txtrelease_17_08.rst.txtrelease_17_11.rst.txtrelease_18_02.rst.txtrelease_18_05.rst.txtrelease_18_08.rst.txtrelease_18_11.rst.txtrelease_19_02.rst.txtrelease_19_05.rst.txtrelease_19_08.rst.txtrelease_19_11.rst.txtrelease_1_8.rst.txtrelease_20_02.rst.txtrelease_20_05.rst.txtrelease_20_08.rst.txtrelease_20_11.rst.txtrelease_21_02.rst.txtrelease_21_05.rst.txtrelease_21_08.rst.txtrelease_21_11.rst.txtrelease_22_03.rst.txtrelease_22_07.rst.txtrelease_22_11.rst.txtrelease_2_0.rst.txtrelease_2_1.rst.txtrelease_2_2.rst.txtsample_app_ugbbdev_app.rst.txtcmd_line.rst.txtcompiling.rst.txtdist_app.rst.txtdma.rst.txtethtool.rst.txteventdev_pipeline.rst.txtfips_validation.rst.txtflow_classify.rst.txtflow_filtering.rst.txthello_world.rst.txtindex.rst.txtintro.rst.txtip_frag.rst.txtip_pipeline.rst.txtip_reassembly.rst.txtipsec_secgw.rst.txtipv4_multicast.rst.txtkeep_alive.rst.txtl2_forward_cat.rst.txtl2_forward_crypto.rst.txtl2_forward_event.rst.txtl2_forward_job_stats.rst.txtl2_forward_real_virtual.rst.txtl3_forward.rst.txtl3_forward_graph.rst.txtl3_forward_power_man.rst.txtlink_status_intr.rst.txtmulti_process.rst.txtntb.rst.txtpacket_ordering.rst.txtpipeline.rst.txtptpclient.rst.txtqos_metering.rst.txtqos_scheduler.rst.txtrxtx_callbacks.rst.txtserver_node_efd.rst.txtservice_cores.rst.txtskeleton.rst.txttest_pipeline.rst.txttimer.rst.txtvdpa.rst.txtvhost.rst.txtvhost_blk.rst.txtvhost_crypto.rst.txtvm_power_management.rst.txtvmdq_dcb_forwarding.rst.txtvmdq_forwarding.rst.txttestpmd_app_ugbuild_app.rst.txtindex.rst.txtintro.rst.txtrun_app.rst.txttestpmd_funcs.rst.txttoolscomp_perf.rst.txtcryptoperf.rst.txtdevbind.rst.txtdts.rst.txtdumpcap.rst.txtflow-perf.rst.txthugepages.rst.txtindex.rst.txtpdump.rst.txtpmdinfo.rst.txtproc_info.rst.txtsecurityperf.rst.txttestbbdev.rst.txttesteventdev.rst.txttestregex.rst.txtvdpadevsfeatures_overview.rst.txtifc.rst.txtindex.rst.txtmlx5.rst.txtsfc.rst.txtwindows_gsgbuild_dpdk.rst.txtindex.rst.txtintro.rst.txtrun_apps.rst.txt_staticDPDK_logo_vertical_rev_small.pngbasic.csscssbadge_only.cssfontsRoboto-Slab-Bold.woffRoboto-Slab-Bold.woff2Roboto-Slab-Regular.woffRoboto-Slab-Regular.woff2fontawesome-webfont.eotfontawesome-webfont.svgfontawesome-webfont.ttffontawesome-webfont.wofffontawesome-webfont.woff2lato-bold-italic.wofflato-bold-italic.woff2lato-bold.wofflato-bold.woff2lato-normal-italic.wofflato-normal-italic.woff2lato-normal.wofflato-normal.woff2theme.cssdoctools.jsdocumentation_options.jsfile.pngjquery-3.4.1.jsjquery.jsjsbadge_only.jshtml5shiv-printshiv.min.jshtml5shiv.min.jstheme.jslanguage_data.jsminus.pngplus.pngpygments.csssearchtools.jsunderscore-1.3.1.jsunderscore.jsannotated.htmlbbdevsacc100.htmlacc200.htmlfpga_5gnr_fec.htmlfpga_lte_fec.htmlindex.htmlla12xx.htmlnull.htmloverview.htmlturbo_sw.htmlbc_s.pngbdwn.pngclasses.htmlclosed.pngcmdline_8h.htmlcmdline_8h_source.htmlcompressdevsindex.htmlisal.htmlmlx5.htmlocteontx.htmloverview.htmlqat_comp.htmlzlib.htmlcontributingabi_policy.htmlabi_versioning.htmlcheatsheet.htmlcoding_style.htmldesign.htmldocumentation.htmlindex.htmlpatches.htmlstable.htmlunit_test.htmlvulnerability.htmlcryptodevsaesni_gcm.htmlaesni_mb.htmlarmv8.htmlbcmfs.htmlcaam_jr.htmlccp.htmlchacha20_poly1305.htmlcnxk.htmldpaa2_sec.htmldpaa_sec.htmlindex.htmlkasumi.htmlmlx5.htmlmvsam.htmlnitrox.htmlnull.htmlocteontx.htmlopenssl.htmloverview.htmlqat.htmlscheduler.htmlsnow3g.htmluadk.htmlvirtio.htmlzuc.htmlcustom.cssdeprecated.htmldir_027d848eb0856837615f91e0560ad906.htmldir_0a9cd71c70f63c77d4fdf57488b8e54a.htmldir_0fe40313c168184020dbbf10f5ac09c0.htmldir_128b0d86a58fb45249214ca3dc74cbc9.htmldir_132d3bf12e92890f77d412b442152bed.htmldir_14bc92f4b96c8519b376567118ac28b3.htmldir_169ce2eae159d00288030e06032874df.htmldir_16c303a33e40f8505809a7365cb41c4b.htmldir_187940831b71d61a6519527a3e4148be.htmldir_1a9fb2c796188042b605d57bf1c55a3d.htmldir_1ce54d6452d2a96363c3c6015a896093.htmldir_230ad763cae58fc1a0fb842f86dd3d49.htmldir_2a008cc8fcb766f5d3d2edc2d07a712e.htmldir_30e420dc66cb6a1025e817881ff166fe.htmldir_30ffa9e37ba255d412596fece5f94d0a.htmldir_3241a1b75803951af6cc6f4dc301eca1.htmldir_3327fc01e082132efd6f7ef74e3e5043.htmldir_35ae03c0f35416b98825df846a315ffa.htmldir_369fb281a9132de856a68cf467b0d2e6.htmldir_39682fcddd5257d4645221b6200fddbb.htmldir_4e5c52521fbb4af3f7908ec35c5f7449.htmldir_4f2295b392fd4902b00407c8774475b6.htmldir_5207a48ed2a9e9a73f125f9d7c2df2c0.htmldir_5b40ece745440104426b600fd4b9af5b.htmldir_5c00d6169c27e106b2143b35c400b9d0.htmldir_662763201df975e54664a452d4fba6a4.htmldir_68cfe39720133e98f6e3a4074209d013.htmldir_69b56c737b88889f2accff61801490f1.htmldir_7000efad870a094c64f37526ff510b71.htmldir_7290c4e1b767a9df50837cc2dacfa7a9.htmldir_76a2bc88fc90378cdbb4a3abd054cf98.htmldir_7f070900be6581b075a9f089924c3baa.htmldir_80017d03a93d1c6dc29fe032f2756a58.htmldir_80aaf5c78aab202ac8db50cd5384bc56.htmldir_87f0c34ed8400daf07819036fa8c39bd.htmldir_8b1838ac4b20f7f73ab00b84f68bffe1.htmldir_8cca61d62425cdde8ca9e991c6e9c615.htmldir_9307927e31d3cd9c2b1472b513da3003.htmldir_95af220a3c72a42ac2ec70758694a9b2.htmldir_96f22058a36c07fca60f198ee4725ec8.htmldir_97aefd0d527b934f1d99a682da8fe6a9.htmldir_9aebdd883657b226d0f62a5a89257326.htmldir_9bbe46d096c65f107a2835d407d44cf2.htmldir_9eeab561cdff5b79b69e3433d5c0167e.htmldir_9f54a0e5c0accd58ed9d59aeb0a494b6.htmldir_a1590196e97b8334b8475f5e5e087fd0.htmldir_a433880e15c69bf379b17cfb26eaf05d.htmldir_a66127405287735c58fa95e3096a1dc5.htmldir_a92c14a28250b8529d90f928c82c5102.htmldir_ae2f63391bb292b7e8558f7d4adaae63.htmldir_aed5081ad84ad6fd73db0659cc0cf044.htmldir_af404d643d0129b0e925f84c76faf17f.htmldir_b4339d4f4f2e5cbf2e8264936d494377.htmldir_ba6acfef82b3882df2fed47fa0d8d2a9.htmldir_be25e9ebe1cf72b0a6a9480e41191023.htmldir_bf3e464f03adb62aa764be6267ea2f60.htmldir_bf4e3df11d44f4b6825d29c13e587a17.htmldir_c23ec1d5a5a67dc4f425a84c90c80f1e.htmldir_c240775eefe260f0b8b46ef0dbfa47e0.htmldir_c2f9c4dbea9f332c883db9398dc36494.htmldir_ccfedd453ca541995d18197ee3a05a26.htmldir_cf81492ff0344076a1bb1c27d3530b80.htmldir_d2365ae4516a63d6ace8153d3d1b2dc6.htmldir_d3e827987308cfca320e97f92975a971.htmldir_d56e13e9a9eafb6dfb836bd2e321b577.htmldir_d73c785d64cf20f491fb8bfb6f272940.htmldir_da18e332567afad90ca07324c52c5833.htmldir_da56b6fc425598871b11381db37332cc.htmldir_dfa0f50067f3bec97f3280411bf8787b.htmldir_e40db8686525414cb6ee23b747cda254.htmldir_e4d91705e579e3718a61980d7fa2b542.htmldir_eb138416be9f50ee0ac981c1ab1f5f6c.htmldir_ec4a1c3109f84755eb9f2543da90387c.htmldir_ecb2c20e2142bf48d37172e063cb90e1.htmldir_ee4e60a3821e66a7ae93e419bf4e05e5.htmldir_f5e0cc2a752635854ee1050679b5092d.htmldir_f6c638f437be7ac91682c39b2e3071e7.htmldir_f79d26637757d6bd2761b02cf6d4ce05.htmldir_f9bb17aa67306532eda035e0955b885e.htmldir_f9c8576adea8e03f32bd6a1f02ff38bf.htmldir_fae3262754b62706934aa5631f56772f.htmldir_fd8fb6312855934d61d82226c5dcbc19.htmldmadevscnxk.htmldpaa.htmldpaa2.htmlhisilicon.htmlidxd.htmlindex.htmlioat.htmldoc.pngdoxy-api-index_8md_source.htmldoxygen.cssdoxygen.pngdynsections.jseventdevscnxk.htmldlb2.htmldpaa.htmldpaa2.htmldsw.htmlindex.htmlocteontx.htmlopdl.htmloverview.htmlsw.htmlexamples.htmlexamples_2bbdev_app_2main_8c-example.htmlexamples_2bond_2main_8c-example.htmlexamples_2bpf_2dummy_8c-example.htmlexamples_2bpf_2t1_8c-example.htmlexamples_2bpf_2t2_8c-example.htmlexamples_2bpf_2t3_8c-example.htmlexamples_2cmdline_2commands_8c-example.htmlexamples_2cmdline_2main_8c-example.htmlexamples_2cmdline_2parse_obj_list_8c-example.htmlexamples_2distributor_2main_8c-example.htmlexamples_2dma_2dmafwd_8c-example.htmlexamples_2ethtool_2ethtool-app_2ethapp_8c-example.htmlexamples_2ethtool_2ethtool-app_2main_8c-example.htmlexamples_2ethtool_2lib_2rte_ethtool_8c-example.htmlexamples_2eventdev_pipeline_2main_8c-example.htmlexamples_2eventdev_pipeline_2pipeline_worker_generic_8c-example.htmlexamples_2eventdev_pipeline_2pipeline_worker_tx_8c-example.htmlexamples_2fips_validation_2fips_dev_self_test_8c-example.htmlexamples_2fips_validation_2fips_validation_8c-example.htmlexamples_2fips_validation_2fips_validation_aes_8c-example.htmlexamples_2fips_validation_2fips_validation_ccm_8c-example.htmlexamples_2fips_validation_2fips_validation_cmac_8c-example.htmlexamples_2fips_validation_2fips_validation_ecdsa_8c-example.htmlexamples_2fips_validation_2fips_validation_gcm_8c-example.htmlexamples_2fips_validation_2fips_validation_hmac_8c-example.htmlexamples_2fips_validation_2fips_validation_rsa_8c-example.htmlexamples_2fips_validation_2fips_validation_sha_8c-example.htmlexamples_2fips_validation_2fips_validation_tdes_8c-example.htmlexamples_2fips_validation_2fips_validation_xts_8c-example.htmlexamples_2fips_validation_2main_8c-example.htmlexamples_2flow_classify_2flow_classify_8c-example.htmlexamples_2flow_filtering_2flow_blocks_8c-example.htmlexamples_2flow_filtering_2main_8c-example.htmlexamples_2helloworld_2main_8c-example.htmlexamples_2ip_fragmentation_2main_8c-example.htmlexamples_2ip_pipeline_2action_8c-example.htmlexamples_2ip_pipeline_2cli_8c-example.htmlexamples_2ip_pipeline_2conn_8c-example.htmlexamples_2ip_pipeline_2cryptodev_8c-example.htmlexamples_2ip_pipeline_2kni_8c-example.htmlexamples_2ip_pipeline_2link_8c-example.htmlexamples_2ip_pipeline_2main_8c-example.htmlexamples_2ip_pipeline_2mempool_8c-example.htmlexamples_2ip_pipeline_2parser_8c-example.htmlexamples_2ip_pipeline_2pipeline_8c-example.htmlexamples_2ip_pipeline_2swq_8c-example.htmlexamples_2ip_pipeline_2tap_8c-example.htmlexamples_2ip_pipeline_2thread_8c-example.htmlexamples_2ip_pipeline_2tmgr_8c-example.htmlexamples_2ip_reassembly_2main_8c-example.htmlexamples_2ipsec-secgw_2esp_8c-example.htmlexamples_2ipsec-secgw_2event_helper_8c-example.htmlexamples_2ipsec-secgw_2flow_8c-example.htmlexamples_2ipsec-secgw_2ipsec-secgw_8c-example.htmlexamples_2ipsec-secgw_2ipsec_8c-example.htmlexamples_2ipsec-secgw_2ipsec_process_8c-example.htmlexamples_2ipsec-secgw_2ipsec_worker_8c-example.htmlexamples_2ipsec-secgw_2parser_8c-example.htmlexamples_2ipsec-secgw_2rt_8c-example.htmlexamples_2ipsec-secgw_2sa_8c-example.htmlexamples_2ipsec-secgw_2sad_8c-example.htmlexamples_2ipsec-secgw_2sp4_8c-example.htmlexamples_2ipsec-secgw_2sp6_8c-example.htmlexamples_2ipv4_multicast_2main_8c-example.htmlexamples_2l2fwd-cat_2cat_8c-example.htmlexamples_2l2fwd-cat_2l2fwd-cat_8c-example.htmlexamples_2l2fwd-crypto_2main_8c-example.htmlexamples_2l2fwd-event_2l2fwd_common_8c-example.htmlexamples_2l2fwd-event_2l2fwd_event_8c-example.htmlexamples_2l2fwd-event_2l2fwd_event_generic_8c-example.htmlexamples_2l2fwd-event_2l2fwd_event_internal_port_8c-example.htmlexamples_2l2fwd-event_2l2fwd_poll_8c-example.htmlexamples_2l2fwd-event_2main_8c-example.htmlexamples_2l2fwd-jobstats_2main_8c-example.htmlexamples_2l2fwd-keepalive_2ka-agent_2main_8c-example.htmlexamples_2l2fwd-keepalive_2main_8c-example.htmlexamples_2l2fwd-keepalive_2shm_8c-example.htmlexamples_2l2fwd_2main_8c-example.htmlexamples_2l3fwd-graph_2main_8c-example.htmlexamples_2l3fwd-power_2main_8c-example.htmlexamples_2l3fwd-power_2perf_core_8c-example.htmlexamples_2l3fwd_2em_route_parse_8c-example.htmlexamples_2l3fwd_2l3fwd_acl_8c-example.htmlexamples_2l3fwd_2l3fwd_em_8c-example.htmlexamples_2l3fwd_2l3fwd_event_8c-example.htmlexamples_2l3fwd_2l3fwd_event_generic_8c-example.htmlexamples_2l3fwd_2l3fwd_event_internal_port_8c-example.htmlexamples_2l3fwd_2l3fwd_fib_8c-example.htmlexamples_2l3fwd_2l3fwd_lpm_8c-example.htmlexamples_2l3fwd_2lpm_route_parse_8c-example.htmlexamples_2l3fwd_2main_8c-example.htmlexamples_2link_status_interrupt_2main_8c-example.htmlexamples_2multi_process_2client_server_mp_2mp_client_2client_8c-example.htmlexamples_2multi_process_2client_server_mp_2mp_server_2args_8c-example.htmlexamples_2multi_process_2client_server_mp_2mp_server_2init_8c-example.htmlexamples_2multi_process_2client_server_mp_2mp_server_2main_8c-example.htmlexamples_2multi_process_2hotplug_mp_2commands_8c-example.htmlexamples_2multi_process_2hotplug_mp_2main_8c-example.htmlexamples_2multi_process_2simple_mp_2main_8c-example.htmlexamples_2multi_process_2simple_mp_2mp_commands_8c-example.htmlexamples_2multi_process_2symmetric_mp_2main_8c-example.htmlexamples_2ntb_2ntb_fwd_8c-example.htmlexamples_2packet_ordering_2main_8c-example.htmlexamples_2pipeline_2cli_8c-example.htmlexamples_2pipeline_2conn_8c-example.htmlexamples_2pipeline_2main_8c-example.htmlexamples_2pipeline_2obj_8c-example.htmlexamples_2pipeline_2thread_8c-example.htmlexamples_2ptpclient_2ptpclient_8c-example.htmlexamples_2qos_meter_2main_8c-example.htmlexamples_2qos_meter_2rte_policer_8c-example.htmlexamples_2qos_sched_2app_thread_8c-example.htmlexamples_2qos_sched_2args_8c-example.htmlexamples_2qos_sched_2cfg_file_8c-example.htmlexamples_2qos_sched_2cmdline_8c-example.htmlexamples_2qos_sched_2init_8c-example.htmlexamples_2qos_sched_2main_8c-example.htmlexamples_2qos_sched_2stats_8c-example.htmlexamples_2rxtx_callbacks_2main_8c-example.htmlexamples_2server_node_efd_2node_2node_8c-example.htmlexamples_2server_node_efd_2server_2args_8c-example.htmlexamples_2server_node_efd_2server_2init_8c-example.htmlexamples_2server_node_efd_2server_2main_8c-example.htmlexamples_2service_cores_2main_8c-example.htmlexamples_2skeleton_2basicfwd_8c-example.htmlexamples_2timer_2main_8c-example.htmlexamples_2vdpa_2main_8c-example.htmlexamples_2vhost_2main_8c-example.htmlexamples_2vhost_2virtio_net_8c-example.htmlexamples_2vhost_blk_2blk_8c-example.htmlexamples_2vhost_blk_2vhost_blk_8c-example.htmlexamples_2vhost_blk_2vhost_blk_compat_8c-example.htmlexamples_2vhost_crypto_2main_8c-example.htmlexamples_2vm_power_manager_2channel_manager_8c-example.htmlexamples_2vm_power_manager_2channel_monitor_8c-example.htmlexamples_2vm_power_manager_2guest_cli_2main_8c-example.htmlexamples_2vm_power_manager_2guest_cli_2parse_8c-example.htmlexamples_2vm_power_manager_2guest_cli_2vm_power_cli_guest_8c-example.htmlexamples_2vm_power_manager_2main_8c-example.htmlexamples_2vm_power_manager_2oob_monitor_nop_8c-example.htmlexamples_2vm_power_manager_2oob_monitor_x86_8c-example.htmlexamples_2vm_power_manager_2parse_8c-example.htmlexamples_2vm_power_manager_2power_manager_8c-example.htmlexamples_2vm_power_manager_2vm_power_cli_8c-example.htmlexamples_2vmdq_2main_8c-example.htmlexamples_2vmdq_dcb_2main_8c-example.htmlfaqfaq.htmlindex.htmlfiles.htmlfolderclosed.pngfolderopen.pngfreebsd_gsgbuild_dpdk.htmlbuild_sample_apps.htmlfreebsd_eal_parameters.htmlindex.htmlinstall_from_ports.htmlintro.htmlfunctions.htmlfunctions_a.htmlfunctions_b.htmlfunctions_c.htmlfunctions_d.htmlfunctions_e.htmlfunctions_f.htmlfunctions_func.htmlfunctions_g.htmlfunctions_h.htmlfunctions_i.htmlfunctions_k.htmlfunctions_l.htmlfunctions_m.htmlfunctions_n.htmlfunctions_o.htmlfunctions_p.htmlfunctions_q.htmlfunctions_r.htmlfunctions_s.htmlfunctions_t.htmlfunctions_u.htmlfunctions_v.htmlfunctions_vars.htmlfunctions_vars_a.htmlfunctions_vars_b.htmlfunctions_vars_c.htmlfunctions_vars_d.htmlfunctions_vars_e.htmlfunctions_vars_f.htmlfunctions_vars_g.htmlfunctions_vars_h.htmlfunctions_vars_i.htmlfunctions_vars_k.htmlfunctions_vars_l.htmlfunctions_vars_m.htmlfunctions_vars_n.htmlfunctions_vars_o.htmlfunctions_vars_p.htmlfunctions_vars_q.htmlfunctions_vars_r.htmlfunctions_vars_s.htmlfunctions_vars_t.htmlfunctions_vars_u.htmlfunctions_vars_v.htmlfunctions_vars_w.htmlfunctions_vars_x.htmlfunctions_vars_y.htmlfunctions_vars_z.htmlfunctions_w.htmlfunctions_x.htmlfunctions_y.htmlfunctions_z.htmlgenindex.htmlglobals.htmlglobals_a.htmlglobals_b.htmlglobals_c.htmlglobals_d.htmlglobals_defs.htmlglobals_defs_b.htmlglobals_defs_c.htmlglobals_defs_i.htmlglobals_defs_l.htmlglobals_defs_m.htmlglobals_defs_o.htmlglobals_defs_p.htmlglobals_defs_r.htmlglobals_defs_s.htmlglobals_defs_t.htmlglobals_defs_u.htmlglobals_defs_v.htmlglobals_e.htmlglobals_enum.htmlglobals_eval.htmlglobals_eval_e.htmlglobals_eval_f.htmlglobals_eval_r.htmlglobals_eval_s.htmlglobals_eval_w.htmlglobals_f.htmlglobals_func.htmlglobals_func_c.htmlglobals_func_g.htmlglobals_func_r.htmlglobals_g.htmlglobals_h.htmlglobals_i.htmlglobals_l.htmlglobals_m.htmlglobals_o.htmlglobals_p.htmlglobals_r.htmlglobals_s.htmlglobals_t.htmlglobals_type.htmlglobals_type_c.htmlglobals_type_d.htmlglobals_type_e.htmlglobals_type_h.htmlglobals_type_l.htmlglobals_type_m.htmlglobals_type_p.htmlglobals_type_r.htmlglobals_type_s.htmlglobals_type_t.htmlglobals_u.htmlglobals_v.htmlglobals_vars.htmlglobals_w.htmlgpuscuda.htmlindex.htmloverview.htmlhowtoavx512.htmldebug_troubleshoot.htmlflow_bifurcation.htmlindex.htmllm_bond_virtio_sriov.htmllm_virtio_vhost_user.htmlopenwrt.htmlpacket_capture_framework.htmlpvp_reference_benchmark.htmlrte_flow.htmltelemetry.htmlvfd.htmlvirtio_user_as_exception_path.htmlvirtio_user_for_container_networking.htmlindex.htmljquery.jslinux_gsgbuild_dpdk.htmlbuild_sample_apps.htmlcross_build_dpdk_for_arm64.htmlcross_build_dpdk_for_loongarch.htmlcross_build_dpdk_for_riscv.htmldoc_roadmap.include.htmleal_args.include.htmlenable_func.htmlindex.htmlintro.htmllinux_drivers.htmllinux_eal_parameters.htmlnic_perf_intel_platform.htmlsys_reqs.htmlmempoolcnxk.htmlindex.htmlocteontx.htmlring.htmlstack.htmlmenu.jsmenudata.jsnav_f.pngnav_g.pngnav_h.pngnicsaf_packet.htmlaf_xdp.htmlark.htmlatlantic.htmlavp.htmlaxgbe.htmlbnx2x.htmlbnxt.htmlbuild_and_test.htmlcnxk.htmlcxgbe.htmldpaa.htmldpaa2.htmle1000em.htmlena.htmlenetc.htmlenetfec.htmlenic.htmlfail_safe.htmlfeatures.htmlfm10k.htmlgve.htmlhinic.htmlhns3.htmli40e.htmlice.htmlidpf.htmligb.htmligc.htmlindex.htmlintel_vf.htmlionic.htmlipn3ke.htmlixgbe.htmlkni.htmlliquidio.htmlmana.htmlmemif.htmlmlx4.htmlmlx5.htmlmvneta.htmlmvpp2.htmlnetvsc.htmlnfb.htmlnfp.htmlngbe.htmlnull.htmlocteon_ep.htmlocteontx.htmloverview.htmlpcap_ring.htmlpfe.htmlqede.htmlsfc_efx.htmlsoftnic.htmltap.htmlthunderx.htmltxgbe.htmlvdev_netvsc.htmlvhost.htmlvirtio.htmlvmxnet3.htmlobjects.invopen.pngpages.htmlplatformbluefield.htmlcnxk.htmldpaa.htmldpaa2.htmlindex.htmlmlx5.htmlocteontx.htmlprog_guideasan.htmlbbdev.htmlbpf_lib.htmlbuild-sdk-meson.htmlbuild_app.htmlcompressdev.htmlcryptodev_lib.htmldmadev.htmlefd_lib.htmlenv_abstraction_layer.htmlevent_crypto_adapter.htmlevent_ethernet_rx_adapter.htmlevent_ethernet_tx_adapter.htmlevent_timer_adapter.htmleventdev.htmlfib_lib.htmlflow_classify_lib.htmlgeneric_receive_offload_lib.htmlgeneric_segmentation_offload_lib.htmlglossary.htmlgpudev.htmlgraph_lib.htmlhash_lib.htmlindex.htmlintro.htmlip_fragment_reassembly_lib.htmlipsec_lib.htmlkernel_nic_interface.htmllink_bonding_poll_mode_drv_lib.htmllpm6_lib.htmllpm_lib.htmllto.htmlmbuf_lib.htmlmember_lib.htmlmempool_lib.htmlmeson_ut.htmlmetrics_lib.htmlmulti_proc_support.htmloverview.htmlpacket_classif_access_ctrl.htmlpacket_distrib_lib.htmlpacket_framework.htmlpcapng_lib.htmlpdump_lib.htmlperf_opt_guidelines.htmlpoll_mode_drv.htmlpower_man.htmlprofile_app.htmlqos_framework.htmlrawdev.htmlrcu_lib.htmlregexdev.htmlreorder_lib.htmlrib_lib.htmlring_lib.htmlrte_flow.htmlrte_security.htmlservice_cores.htmlsource_org.htmlstack_lib.htmlswitch_representation.htmltelemetry_lib.htmlthread_safety_dpdk_functions.htmltimer_lib.htmltoeplitz_hash_lib.htmltrace_lib.htmltraffic_management.htmltraffic_metering_and_policing.htmlvhost_lib.htmlwriting_efficient_code.htmlrawdevscnxk_bphy.htmlcnxk_gpio.htmldpaa2_cmdif.htmlifpga.htmlindex.htmlntb.htmlregexdevscn9k.htmlfeatures_overview.htmlindex.htmlmlx5.htmlrel_notesdeprecation.htmlindex.htmlknown_issues.htmlrelease_16_04.htmlrelease_16_07.htmlrelease_16_11.htmlrelease_17_02.htmlrelease_17_05.htmlrelease_17_08.htmlrelease_17_11.htmlrelease_18_02.htmlrelease_18_05.htmlrelease_18_08.htmlrelease_18_11.htmlrelease_19_02.htmlrelease_19_05.htmlrelease_19_08.htmlrelease_19_11.htmlrelease_1_8.htmlrelease_20_02.htmlrelease_20_05.htmlrelease_20_08.htmlrelease_20_11.htmlrelease_21_02.htmlrelease_21_05.htmlrelease_21_08.htmlrelease_21_11.htmlrelease_22_03.htmlrelease_22_07.htmlrelease_22_11.htmlrelease_2_0.htmlrelease_2_1.htmlrelease_2_2.htmlrte__acl_8h.htmlrte__acl_8h_source.htmlrte__acl__osdep_8h.htmlrte__acl__osdep_8h_source.htmlrte__alarm_8h.htmlrte__alarm_8h_source.htmlrte__approx_8h.htmlrte__approx_8h_source.htmlrte__arp_8h.htmlrte__arp_8h_source.htmlrte__atomic_8h.htmlrte__atomic_8h_source.htmlrte__bbdev_8h.htmlrte__bbdev_8h_source.htmlrte__bbdev__op_8h.htmlrte__bbdev__op_8h_source.htmlrte__bbdev__pmd_8h.htmlrte__bbdev__pmd_8h_source.htmlrte__bitmap_8h.htmlrte__bitmap_8h_source.htmlrte__bitops_8h.htmlrte__bitops_8h_source.htmlrte__bitrate_8h_source.htmlrte__bpf_8h.htmlrte__bpf_8h_source.htmlrte__bpf__ethdev_8h.htmlrte__bpf__ethdev_8h_source.htmlrte__branch__prediction_8h.htmlrte__branch__prediction_8h_source.htmlrte__bus_8h.htmlrte__bus_8h_source.htmlrte__bus__vdev_8h.htmlrte__bus__vdev_8h_source.htmlrte__byteorder_8h.htmlrte__byteorder_8h_source.htmlrte__cfgfile_8h.htmlrte__cfgfile_8h_source.htmlrte__class_8h.htmlrte__class_8h_source.htmlrte__cman_8h.htmlrte__cman_8h_source.htmlrte__cmp__arm64_8h_source.htmlrte__cmp__x86_8h_source.htmlrte__common_8h.htmlrte__common_8h_source.htmlrte__comp_8h.htmlrte__comp_8h_source.htmlrte__compat_8h_source.htmlrte__compressdev_8h.htmlrte__compressdev_8h_source.htmlrte__compressdev__internal_8h_source.htmlrte__compressdev__pmd_8h.htmlrte__compressdev__pmd_8h_source.htmlrte__cpuflags_8h.htmlrte__cpuflags_8h_source.htmlrte__crc__arm64_8h_source.htmlrte__crc__generic_8h_source.htmlrte__crc__sw_8h_source.htmlrte__crc__x86_8h_source.htmlrte__crypto_8h.htmlrte__crypto_8h_source.htmlrte__crypto__asym_8h.htmlrte__crypto__asym_8h_source.htmlrte__crypto__sym_8h.htmlrte__crypto__sym_8h_source.htmlrte__cryptodev_8h.htmlrte__cryptodev_8h_source.htmlrte__cryptodev__core_8h.htmlrte__cryptodev__core_8h_source.htmlrte__cryptodev__scheduler_8h.htmlrte__cryptodev__scheduler_8h_source.htmlrte__cryptodev__scheduler__operations_8h_source.htmlrte__cryptodev__trace_8h.htmlrte__cryptodev__trace_8h_source.htmlrte__cryptodev__trace__fp_8h_source.htmlrte__cuckoo__hash_8h_source.htmlrte__cycles_8h.htmlrte__cycles_8h_source.htmlrte__debug_8h.htmlrte__debug_8h_source.htmlrte__dev_8h.htmlrte__dev_8h_source.htmlrte__dev__info_8h_source.htmlrte__devargs_8h.htmlrte__devargs_8h_source.htmlrte__distributor_8h.htmlrte__distributor_8h_source.htmlrte__distributor__single_8h.htmlrte__distributor__single_8h_source.htmlrte__dmadev_8h.htmlrte__dmadev_8h_source.htmlrte__dmadev__core_8h.htmlrte__dmadev__core_8h_source.htmlrte__dmadev__pmd_8h.htmlrte__dmadev__pmd_8h_source.htmlrte__dpaa2__mempool_8h.htmlrte__dpaa2__mempool_8h_source.htmlrte__eal_8h.htmlrte__eal_8h_source.htmlrte__eal__memconfig_8h.htmlrte__eal__memconfig_8h_source.htmlrte__eal__paging_8h.htmlrte__eal__paging_8h_source.htmlrte__eal__trace_8h.htmlrte__eal__trace_8h_source.htmlrte__ecpri_8h.htmlrte__ecpri_8h_source.htmlrte__efd_8h.htmlrte__efd_8h_source.htmlrte__efd__arm64_8h_source.htmlrte__efd__x86_8h_source.htmlrte__epoll_8h.htmlrte__epoll_8h_source.htmlrte__errno_8h.htmlrte__errno_8h_source.htmlrte__esp_8h.htmlrte__esp_8h_source.htmlrte__eth__bond_8h.htmlrte__eth__bond_8h_source.htmlrte__eth__bond__8023ad_8h_source.htmlrte__eth__bond__alb_8h_source.htmlrte__eth__ctrl_8h.htmlrte__eth__ctrl_8h_source.htmlrte__eth__softnic_8h_source.htmlrte__eth__softnic__internals_8h_source.htmlrte__ethdev_8h.htmlrte__ethdev_8h_source.htmlrte__ethdev__core_8h.htmlrte__ethdev__core_8h_source.htmlrte__ethdev__trace_8h.htmlrte__ethdev__trace_8h_source.htmlrte__ethdev__trace__fp_8h.htmlrte__ethdev__trace__fp_8h_source.htmlrte__ether_8h.htmlrte__ether_8h_source.htmlrte__event__crypto__adapter_8h.htmlrte__event__crypto__adapter_8h_source.htmlrte__event__eth__rx__adapter_8h.htmlrte__event__eth__rx__adapter_8h_source.htmlrte__event__eth__tx__adapter_8h.htmlrte__event__eth__tx__adapter_8h_source.htmlrte__event__ring_8h.htmlrte__event__ring_8h_source.htmlrte__event__timer__adapter_8h.htmlrte__event__timer__adapter_8h_source.htmlrte__eventdev_8h.htmlrte__eventdev_8h_source.htmlrte__eventdev__core_8h_source.htmlrte__eventdev__trace__fp_8h.htmlrte__eventdev__trace__fp_8h_source.htmlrte__fbarray_8h.htmlrte__fbarray_8h_source.htmlrte__fbk__hash_8h.htmlrte__fbk__hash_8h_source.htmlrte__fib6_8h.htmlrte__fib6_8h_source.htmlrte__fib_8h.htmlrte__fib_8h_source.htmlrte__flow_8h.htmlrte__flow_8h_source.htmlrte__flow__classify_8h.htmlrte__flow__classify_8h_source.htmlrte__flow__classify__parse_8h_source.htmlrte__flow__driver_8h.htmlrte__flow__driver_8h_source.htmlrte__function__versioning_8h_source.htmlrte__geneve_8h.htmlrte__geneve_8h_source.htmlrte__gpudev_8h.htmlrte__gpudev_8h_source.htmlrte__graph_8h.htmlrte__graph_8h_source.htmlrte__graph__worker_8h.htmlrte__graph__worker_8h_source.htmlrte__gre_8h.htmlrte__gre_8h_source.htmlrte__gro_8h.htmlrte__gro_8h_source.htmlrte__gso_8h.htmlrte__gso_8h_source.htmlrte__gtp_8h.htmlrte__gtp_8h_source.htmlrte__hash_8h.htmlrte__hash_8h_source.htmlrte__hash__crc_8h.htmlrte__hash__crc_8h_source.htmlrte__hexdump_8h.htmlrte__hexdump_8h_source.htmlrte__higig_8h.htmlrte__higig_8h_source.htmlrte__hypervisor_8h.htmlrte__hypervisor_8h_source.htmlrte__icmp_8h.htmlrte__icmp_8h_source.htmlrte__interrupts_8h.htmlrte__interrupts_8h_source.htmlrte__io_8h.htmlrte__io_8h_source.htmlrte__ip_8h.htmlrte__ip_8h_source.htmlrte__ip__frag_8h.htmlrte__ip__frag_8h_source.htmlrte__ipsec_8h.htmlrte__ipsec_8h_source.htmlrte__ipsec__group_8h.htmlrte__ipsec__group_8h_source.htmlrte__ipsec__sa_8h.htmlrte__ipsec__sa_8h_source.htmlrte__ipsec__sad_8h.htmlrte__ipsec__sad_8h_source.htmlrte__jhash_8h.htmlrte__jhash_8h_source.htmlrte__jobstats_8h_source.htmlrte__keepalive_8h.htmlrte__keepalive_8h_source.htmlrte__kni_8h.htmlrte__kni_8h_source.htmlrte__kni__common_8h_source.htmlrte__kni__fifo_8h_source.htmlrte__kvargs_8h.htmlrte__kvargs_8h_source.htmlrte__l2tpv2_8h.htmlrte__l2tpv2_8h_source.htmlrte__latencystats_8h.htmlrte__latencystats_8h_source.htmlrte__launch_8h.htmlrte__launch_8h_source.htmlrte__lcore_8h.htmlrte__lcore_8h_source.htmlrte__log_8h.htmlrte__log_8h_source.htmlrte__lpm6_8h.htmlrte__lpm6_8h_source.htmlrte__lpm_8h.htmlrte__lpm_8h_source.htmlrte__lpm__altivec_8h_source.htmlrte__lpm__neon_8h_source.htmlrte__lpm__scalar_8h_source.htmlrte__lpm__sse_8h_source.htmlrte__lpm__sve_8h_source.htmlrte__lru_8h_source.htmlrte__lru__arm64_8h_source.htmlrte__lru__x86_8h_source.htmlrte__macsec_8h.htmlrte__macsec_8h_source.htmlrte__malloc_8h.htmlrte__malloc_8h_source.htmlrte__mbuf_8h.htmlrte__mbuf_8h_source.htmlrte__mbuf__core_8h.htmlrte__mbuf__core_8h_source.htmlrte__mbuf__dyn_8h.htmlrte__mbuf__dyn_8h_source.htmlrte__mbuf__pool__ops_8h.htmlrte__mbuf__pool__ops_8h_source.htmlrte__mbuf__ptype_8h.htmlrte__mbuf__ptype_8h_source.htmlrte__mcslock_8h.htmlrte__mcslock_8h_source.htmlrte__member_8h.htmlrte__member_8h_source.htmlrte__member__heap_8h_source.htmlrte__member__ht_8h_source.htmlrte__member__sketch_8h_source.htmlrte__member__sketch__avx512_8h_source.htmlrte__member__vbf_8h_source.htmlrte__member__x86_8h_source.htmlrte__memcpy_8h.htmlrte__memcpy_8h_source.htmlrte__memory_8h.htmlrte__memory_8h_source.htmlrte__mempool_8h.htmlrte__mempool_8h_source.htmlrte__mempool__trace_8h.htmlrte__mempool__trace_8h_source.htmlrte__mempool__trace__fp_8h.htmlrte__mempool__trace__fp_8h_source.htmlrte__memzone_8h.htmlrte__memzone_8h_source.htmlrte__meter_8h.htmlrte__meter_8h_source.htmlrte__metrics_8h.htmlrte__metrics_8h_source.htmlrte__metrics__telemetry_8h_source.htmlrte__mpls_8h.htmlrte__mpls_8h_source.htmlrte__mtr_8h.htmlrte__mtr_8h_source.htmlrte__mtr__driver_8h.htmlrte__mtr__driver_8h_source.htmlrte__net_8h_source.htmlrte__net__crc_8h_source.htmlrte__node__eth__api_8h.htmlrte__node__eth__api_8h_source.htmlrte__node__ip4__api_8h.htmlrte__node__ip4__api_8h_source.htmlrte__pause_8h.htmlrte__pause_8h_source.htmlrte__pcapng_8h.htmlrte__pcapng_8h_source.htmlrte__pci_8h.htmlrte__pci_8h_source.htmlrte__pci__dev__feature__defs_8h_source.htmlrte__pci__dev__features_8h_source.htmlrte__pdump_8h.htmlrte__pdump_8h_source.htmlrte__per__lcore_8h.htmlrte__per__lcore_8h_source.htmlrte__pflock_8h.htmlrte__pflock_8h_source.htmlrte__pie_8h.htmlrte__pie_8h_source.htmlrte__pipeline_8h.htmlrte__pipeline_8h_source.htmlrte__pmd__afu_8h.htmlrte__pmd__afu_8h_source.htmlrte__pmd__bnxt_8h_source.htmlrte__pmd__cnxk_8h.htmlrte__pmd__cnxk_8h_source.htmlrte__pmd__dlb2_8h.htmlrte__pmd__dlb2_8h_source.htmlrte__pmd__dpaa2_8h.htmlrte__pmd__dpaa2_8h_source.htmlrte__pmd__dpaa2__cmdif_8h.htmlrte__pmd__dpaa2__cmdif_8h_source.htmlrte__pmd__dpaa2__qdma_8h_source.htmlrte__pmd__dpaa_8h.htmlrte__pmd__dpaa_8h_source.htmlrte__pmd__i40e_8h.htmlrte__pmd__i40e_8h_source.htmlrte__pmd__iavf_8h.htmlrte__pmd__iavf_8h_source.htmlrte__pmd__ifpga_8h.htmlrte__pmd__ifpga_8h_source.htmlrte__pmd__ixgbe_8h.htmlrte__pmd__ixgbe_8h_source.htmlrte__pmd__mlx5_8h.htmlrte__pmd__mlx5_8h_source.htmlrte__port_8h.htmlrte__port_8h_source.htmlrte__port__ethdev_8h.htmlrte__port__ethdev_8h_source.htmlrte__port__eventdev_8h.htmlrte__port__eventdev_8h_source.htmlrte__port__fd_8h.htmlrte__port__fd_8h_source.htmlrte__port__frag_8h.htmlrte__port__frag_8h_source.htmlrte__port__in__action_8h.htmlrte__port__in__action_8h_source.htmlrte__port__kni_8h.htmlrte__port__kni_8h_source.htmlrte__port__ras_8h.htmlrte__port__ras_8h_source.htmlrte__port__ring_8h.htmlrte__port__ring_8h_source.htmlrte__port__sched_8h.htmlrte__port__sched_8h_source.htmlrte__port__source__sink_8h.htmlrte__port__source__sink_8h_source.htmlrte__port__sym__crypto_8h.htmlrte__port__sym__crypto_8h_source.htmlrte__power_8h.htmlrte__power_8h_source.htmlrte__power__empty__poll_8h.htmlrte__power__empty__poll_8h_source.htmlrte__power__guest__channel_8h_source.htmlrte__power__intel__uncore_8h.htmlrte__power__intel__uncore_8h_source.htmlrte__power__intrinsics_8h.htmlrte__power__intrinsics_8h_source.htmlrte__power__pmd__mgmt_8h.htmlrte__power__pmd__mgmt_8h_source.htmlrte__ppp_8h.htmlrte__ppp_8h_source.htmlrte__prefetch_8h.htmlrte__prefetch_8h_source.htmlrte__random_8h.htmlrte__random_8h_source.htmlrte__rawdev_8h.htmlrte__rawdev_8h_source.htmlrte__rawdev__pmd_8h.htmlrte__rawdev__pmd_8h_source.htmlrte__rcu__qsbr_8h.htmlrte__rcu__qsbr_8h_source.htmlrte__reciprocal_8h_source.htmlrte__red_8h.htmlrte__red_8h_source.htmlrte__regexdev_8h.htmlrte__regexdev_8h_source.htmlrte__regexdev__core_8h.htmlrte__regexdev__core_8h_source.htmlrte__regexdev__driver_8h.htmlrte__regexdev__driver_8h_source.htmlrte__reorder_8h.htmlrte__reorder_8h_source.htmlrte__rib6_8h.htmlrte__rib6_8h_source.htmlrte__rib_8h.htmlrte__rib_8h_source.htmlrte__ring_8h.htmlrte__ring_8h_source.htmlrte__ring__c11__pvt_8h_source.htmlrte__ring__core_8h.htmlrte__ring__core_8h_source.htmlrte__ring__elem_8h.htmlrte__ring__elem_8h_source.htmlrte__ring__elem__pvt_8h_source.htmlrte__ring__generic__pvt_8h_source.htmlrte__ring__hts_8h.htmlrte__ring__hts_8h_source.htmlrte__ring__hts__elem__pvt_8h.htmlrte__ring__hts__elem__pvt_8h_source.htmlrte__ring__peek_8h.htmlrte__ring__peek_8h_source.htmlrte__ring__peek__elem__pvt_8h.htmlrte__ring__peek__elem__pvt_8h_source.htmlrte__ring__peek__zc_8h.htmlrte__ring__peek__zc_8h_source.htmlrte__ring__rts_8h.htmlrte__ring__rts_8h_source.htmlrte__ring__rts__elem__pvt_8h.htmlrte__ring__rts__elem__pvt_8h_source.htmlrte__rwlock_8h.htmlrte__rwlock_8h_source.htmlrte__sched_8h.htmlrte__sched_8h_source.htmlrte__sched__common_8h_source.htmlrte__sctp_8h.htmlrte__sctp_8h_source.htmlrte__security_8h.htmlrte__security_8h_source.htmlrte__security__driver_8h.htmlrte__security__driver_8h_source.htmlrte__seqcount_8h.htmlrte__seqcount_8h_source.htmlrte__seqlock_8h.htmlrte__seqlock_8h_source.htmlrte__service_8h.htmlrte__service_8h_source.htmlrte__service__component_8h_source.htmlrte__spinlock_8h.htmlrte__spinlock_8h_source.htmlrte__stack_8h.htmlrte__stack_8h_source.htmlrte__stack__lf_8h_source.htmlrte__stack__lf__c11_8h_source.htmlrte__stack__lf__generic_8h_source.htmlrte__stack__lf__stubs_8h_source.htmlrte__stack__std_8h_source.htmlrte__string__fns_8h.htmlrte__string__fns_8h_source.htmlrte__swx__ctl_8h.htmlrte__swx__ctl_8h_source.htmlrte__swx__extern_8h.htmlrte__swx__extern_8h_source.htmlrte__swx__hash__func_8h.htmlrte__swx__hash__func_8h_source.htmlrte__swx__keycmp_8h.htmlrte__swx__keycmp_8h_source.htmlrte__swx__pipeline_8h.htmlrte__swx__pipeline_8h_source.htmlrte__swx__pipeline__internal_8h_source.htmlrte__swx__pipeline__spec_8h_source.htmlrte__swx__port_8h.htmlrte__swx__port_8h_source.htmlrte__swx__port__ethdev_8h.htmlrte__swx__port__ethdev_8h_source.htmlrte__swx__port__fd_8h.htmlrte__swx__port__fd_8h_source.htmlrte__swx__port__ring_8h.htmlrte__swx__port__ring_8h_source.htmlrte__swx__port__source__sink_8h.htmlrte__swx__port__source__sink_8h_source.htmlrte__swx__table_8h.htmlrte__swx__table_8h_source.htmlrte__swx__table__em_8h.htmlrte__swx__table__em_8h_source.htmlrte__swx__table__learner_8h.htmlrte__swx__table__learner_8h_source.htmlrte__swx__table__selector_8h.htmlrte__swx__table__selector_8h_source.htmlrte__swx__table__wm_8h.htmlrte__swx__table__wm_8h_source.htmlrte__table_8h.htmlrte__table_8h_source.htmlrte__table__acl_8h.htmlrte__table__acl_8h_source.htmlrte__table__action_8h.htmlrte__table__action_8h_source.htmlrte__table__array_8h.htmlrte__table__array_8h_source.htmlrte__table__hash_8h.htmlrte__table__hash_8h_source.htmlrte__table__hash__cuckoo_8h.htmlrte__table__hash__cuckoo_8h_source.htmlrte__table__hash__func_8h_source.htmlrte__table__hash__func__arm64_8h_source.htmlrte__table__lpm_8h.htmlrte__table__lpm_8h_source.htmlrte__table__lpm__ipv6_8h.htmlrte__table__lpm__ipv6_8h_source.htmlrte__table__stub_8h.htmlrte__table__stub_8h_source.htmlrte__tailq_8h.htmlrte__tailq_8h_source.htmlrte__tcp_8h.htmlrte__tcp_8h_source.htmlrte__telemetry_8h.htmlrte__telemetry_8h_source.htmlrte__test_8h_source.htmlrte__thash_8h.htmlrte__thash_8h_source.htmlrte__thash__gfni_8h_source.htmlrte__thash__x86__gfni_8h.htmlrte__thash__x86__gfni_8h_source.htmlrte__thread_8h.htmlrte__thread_8h_source.htmlrte__ticketlock_8h.htmlrte__ticketlock_8h_source.htmlrte__time_8h_source.htmlrte__timer_8h.htmlrte__timer_8h_source.htmlrte__tm_8h.htmlrte__tm_8h_source.htmlrte__tm__driver_8h.htmlrte__tm__driver_8h_source.htmlrte__trace_8h.htmlrte__trace_8h_source.htmlrte__trace__point_8h.htmlrte__trace__point_8h_source.htmlrte__trace__point__register_8h_source.htmlrte__udp_8h.htmlrte__udp_8h_source.htmlrte__uuid_8h.htmlrte__uuid_8h_source.htmlrte__vdpa_8h.htmlrte__vdpa_8h_source.htmlrte__vect_8h.htmlrte__vect_8h_source.htmlrte__version_8h.htmlrte__version_8h_source.htmlrte__vfio_8h.htmlrte__vfio_8h_source.htmlrte__vhost_8h.htmlrte__vhost_8h_source.htmlrte__vhost__async_8h_source.htmlrte__vhost__crypto_8h_source.htmlrte__vxlan_8h.htmlrte__vxlan_8h_source.htmlrte__xxh64__avx512_8h_source.htmlsample_app_ugbbdev_app.htmlcmd_line.htmlcompiling.htmldist_app.htmldma.htmlethtool.htmleventdev_pipeline.htmlfips_validation.htmlflow_classify.htmlflow_filtering.htmlhello_world.htmlindex.htmlintro.htmlip_frag.htmlip_pipeline.htmlip_reassembly.htmlipsec_secgw.htmlipv4_multicast.htmlkeep_alive.htmll2_forward_cat.htmll2_forward_crypto.htmll2_forward_event.htmll2_forward_job_stats.htmll2_forward_real_virtual.htmll3_forward.htmll3_forward_graph.htmll3_forward_power_man.htmllink_status_intr.htmlmulti_process.htmlntb.htmlpacket_ordering.htmlpipeline.htmlptpclient.htmlqos_metering.htmlqos_scheduler.htmlrxtx_callbacks.htmlserver_node_efd.htmlservice_cores.htmlskeleton.htmltest_pipeline.htmltimer.htmlvdpa.htmlvhost.htmlvhost_blk.htmlvhost_crypto.htmlvm_power_management.htmlvmdq_dcb_forwarding.htmlvmdq_forwarding.htmlsearchsearch.htmlall_0.htmlall_0.jsall_1.htmlall_1.jsall_10.htmlall_10.jsall_11.htmlall_11.jsall_12.htmlall_12.jsall_13.htmlall_13.jsall_14.htmlall_14.jsall_15.htmlall_15.jsall_16.htmlall_16.jsall_17.htmlall_17.jsall_18.htmlall_18.jsall_19.htmlall_19.jsall_2.htmlall_2.jsall_3.htmlall_3.jsall_4.htmlall_4.jsall_5.htmlall_5.jsall_6.htmlall_6.jsall_7.htmlall_7.jsall_8.htmlall_8.jsall_9.htmlall_9.jsall_a.htmlall_a.jsall_b.htmlall_b.jsall_c.htmlall_c.jsall_d.htmlall_d.jsall_e.htmlall_e.jsall_f.htmlall_f.jsclasses_0.htmlclasses_0.jsclasses_1.htmlclasses_1.jsclasses_2.htmlclasses_2.jsclasses_3.htmlclasses_3.jsclasses_4.htmlclasses_4.jsclose.pngdefines_0.htmldefines_0.jsdefines_1.htmldefines_1.jsdefines_2.htmldefines_2.jsdefines_3.htmldefines_3.jsdefines_4.htmldefines_4.jsdefines_5.htmldefines_5.jsdefines_6.htmldefines_6.jsdefines_7.htmldefines_7.jsdefines_8.htmldefines_8.jsdefines_9.htmldefines_9.jsdefines_a.htmldefines_a.jsdefines_b.htmldefines_b.jsdefines_c.htmldefines_c.jsenums_0.htmlenums_0.jsenums_1.htmlenums_1.jsenumvalues_0.htmlenumvalues_0.jsenumvalues_1.htmlenumvalues_1.jsenumvalues_2.htmlenumvalues_2.jsenumvalues_3.htmlenumvalues_3.jsenumvalues_4.htmlenumvalues_4.jsenumvalues_5.htmlenumvalues_5.jsfiles_0.htmlfiles_0.jsfiles_1.htmlfiles_1.jsfunctions_0.htmlfunctions_0.jsfunctions_1.htmlfunctions_1.jsfunctions_2.htmlfunctions_2.jsfunctions_3.htmlfunctions_3.jsmag_sel.pngnomatches.htmlpages_0.htmlpages_0.jspages_1.htmlpages_1.jssearch.csssearch.jssearch_l.pngsearch_m.pngsearch_r.pngsearchdata.jstypedefs_0.htmltypedefs_0.jstypedefs_1.htmltypedefs_1.jstypedefs_2.htmltypedefs_2.jstypedefs_3.htmltypedefs_3.jstypedefs_4.htmltypedefs_4.jstypedefs_5.htmltypedefs_5.jstypedefs_6.htmltypedefs_6.jstypedefs_7.htmltypedefs_7.jstypedefs_8.htmltypedefs_8.jstypedefs_9.htmltypedefs_9.jstypedefs_a.htmltypedefs_a.jsvariables_0.htmlvariables_0.jsvariables_1.htmlvariables_1.jsvariables_10.htmlvariables_10.jsvariables_11.htmlvariables_11.jsvariables_12.htmlvariables_12.jsvariables_13.htmlvariables_13.jsvariables_14.htmlvariables_14.jsvariables_15.htmlvariables_15.jsvariables_16.htmlvariables_16.jsvariables_17.htmlvariables_17.jsvariables_18.htmlvariables_18.jsvariables_19.htmlvariables_19.jsvariables_2.htmlvariables_2.jsvariables_3.htmlvariables_3.jsvariables_4.htmlvariables_4.jsvariables_5.htmlvariables_5.jsvariables_6.htmlvariables_6.jsvariables_7.htmlvariables_7.jsvariables_8.htmlvariables_8.jsvariables_9.htmlvariables_9.jsvariables_a.htmlvariables_a.jsvariables_b.htmlvariables_b.jsvariables_c.htmlvariables_c.jsvariables_d.htmlvariables_d.jsvariables_e.htmlvariables_e.jsvariables_f.htmlvariables_f.jssearchindex.jssplitbar.pngstruct____rte__aligned.htmlstructlacpdu.htmlstructlacpdu__header.htmlstructpipeline.htmlstructpmd__internals.htmlstructpmd__params.htmlstructrte__acl__config.htmlstructrte__acl__field.htmlstructrte__acl__field__def.htmlstructrte__acl__param.htmlstructrte__acl__rule__data.htmlstructrte__arp__hdr.htmlstructrte__arp__ipv4.htmlstructrte__atomic16__t.htmlstructrte__atomic32__t.htmlstructrte__atomic64__t.htmlstructrte__bbdev__dec__op.htmlstructrte__bbdev__driver__info.htmlstructrte__bbdev__enc__op.htmlstructrte__bbdev__fft__op.htmlstructrte__bbdev__info.htmlstructrte__bbdev__op__cap.htmlstructrte__bbdev__op__cap__fft.htmlstructrte__bbdev__op__cap__ldpc__dec.htmlstructrte__bbdev__op__cap__ldpc__enc.htmlstructrte__bbdev__op__cap__turbo__dec.htmlstructrte__bbdev__op__cap__turbo__enc.htmlstructrte__bbdev__op__data.htmlstructrte__bbdev__op__dec__ldpc__cb__params.htmlstructrte__bbdev__op__dec__ldpc__tb__params.htmlstructrte__bbdev__op__dec__turbo__cb__params.htmlstructrte__bbdev__op__dec__turbo__tb__params.htmlstructrte__bbdev__op__enc__ldpc__cb__params.htmlstructrte__bbdev__op__enc__ldpc__tb__params.htmlstructrte__bbdev__op__enc__turbo__cb__params.htmlstructrte__bbdev__op__enc__turbo__tb__params.htmlstructrte__bbdev__op__fft.htmlstructrte__bbdev__op__ldpc__dec.htmlstructrte__bbdev__op__ldpc__enc.htmlstructrte__bbdev__op__turbo__dec.htmlstructrte__bbdev__op__turbo__enc.htmlstructrte__bbdev__ops.htmlstructrte__bbdev__queue__conf.htmlstructrte__bbdev__queue__info.htmlstructrte__bbdev__stats.htmlstructrte__bitmap.htmlstructrte__bpf__arg.htmlstructrte__bpf__jit.htmlstructrte__bpf__prm.htmlstructrte__bpf__xsym.htmlstructrte__cfgfile__entry.htmlstructrte__cfgfile__parameters.htmlstructrte__class.htmlstructrte__cman__red__params.htmlstructrte__comp__compress__xform.htmlstructrte__comp__decompress__xform.htmlstructrte__comp__deflate__params.htmlstructrte__comp__op.htmlstructrte__comp__xform.htmlstructrte__compressdev.htmlstructrte__compressdev__capabilities.htmlstructrte__compressdev__config.htmlstructrte__compressdev__data.htmlstructrte__compressdev__global.htmlstructrte__compressdev__info.htmlstructrte__compressdev__ops.htmlstructrte__compressdev__stats.htmlstructrte__cpu__intrinsics.htmlstructrte__crypto__asym__op.htmlstructrte__crypto__asym__xform.htmlstructrte__crypto__auth__xform.htmlstructrte__crypto__cipher__xform.htmlstructrte__crypto__dh__op__param.htmlstructrte__crypto__dh__xform.htmlstructrte__crypto__dsa__op__param.htmlstructrte__crypto__dsa__xform.htmlstructrte__crypto__ec__point.htmlstructrte__crypto__ec__xform.htmlstructrte__crypto__ecdh__op__param.htmlstructrte__crypto__ecdsa__op__param.htmlstructrte__crypto__ecpm__op__param.htmlstructrte__crypto__mod__op__param.htmlstructrte__crypto__modex__xform.htmlstructrte__crypto__modinv__xform.htmlstructrte__crypto__op.htmlstructrte__crypto__op__pool__private.htmlstructrte__crypto__param__range.htmlstructrte__crypto__param__t.htmlstructrte__crypto__raw__dp__ctx.htmlstructrte__crypto__rsa__op__param.htmlstructrte__crypto__rsa__padding.htmlstructrte__crypto__rsa__priv__key__qt.htmlstructrte__crypto__rsa__xform.htmlstructrte__crypto__sgl.htmlstructrte__crypto__sym__op.htmlstructrte__crypto__sym__vec.htmlstructrte__crypto__sym__xform.htmlstructrte__crypto__va__iova__ptr.htmlstructrte__crypto__vec.htmlstructrte__cryptodev__asym__capability__idx.htmlstructrte__cryptodev__asymmetric__capability.htmlstructrte__cryptodev__asymmetric__xform__capability.htmlstructrte__cryptodev__capabilities.htmlstructrte__cryptodev__cb.htmlstructrte__cryptodev__config.htmlstructrte__cryptodev__info.htmlstructrte__cryptodev__qp__conf.htmlstructrte__cryptodev__scheduler.htmlstructrte__cryptodev__stats.htmlstructrte__cryptodev__sym__capability__idx.htmlstructrte__cryptodev__symmetric__capability.htmlstructrte__dev__iterator.htmlstructrte__devargs.htmlstructrte__dma__conf.htmlstructrte__dma__dev__ops.htmlstructrte__dma__info.htmlstructrte__dma__port__param.htmlstructrte__dma__sge.htmlstructrte__dma__stats.htmlstructrte__dma__vchan__conf.htmlstructrte__dpaa2__cmdif__context.htmlstructrte__dpaa2__qdma__job.htmlstructrte__ecpri__combined__msg__hdr.htmlstructrte__ecpri__common__hdr.htmlstructrte__ecpri__msg__bit__seq.htmlstructrte__ecpri__msg__delay__measure.htmlstructrte__ecpri__msg__event__ind.htmlstructrte__ecpri__msg__gen__data.htmlstructrte__ecpri__msg__iq__data.htmlstructrte__ecpri__msg__remote__reset.htmlstructrte__ecpri__msg__rm__access.htmlstructrte__ecpri__msg__rtc__ctrl.htmlstructrte__epoll__event.htmlstructrte__esp__hdr.htmlstructrte__esp__tail.htmlstructrte__eth__burst__mode.htmlstructrte__eth__cman__config.htmlstructrte__eth__cman__info.htmlstructrte__eth__conf.htmlstructrte__eth__dcb__info.htmlstructrte__eth__dcb__tc__queue__mapping.htmlstructrte__eth__desc__lim.htmlstructrte__eth__dev__info.htmlstructrte__eth__dev__module__info.htmlstructrte__eth__dev__portconf.htmlstructrte__eth__dev__tx__buffer.htmlstructrte__eth__event__ipsec__desc.htmlstructrte__eth__event__macsec__desc.htmlstructrte__eth__fc__conf.htmlstructrte__eth__fdir__action.htmlstructrte__eth__fdir__filter.htmlstructrte__eth__fdir__flex__conf.htmlstructrte__eth__fdir__flex__mask.htmlstructrte__eth__fdir__flow__ext.htmlstructrte__eth__fdir__info.htmlstructrte__eth__fdir__input.htmlstructrte__eth__fdir__masks.htmlstructrte__eth__fdir__stats.htmlstructrte__eth__flex__payload__cfg.htmlstructrte__eth__hairpin__cap.htmlstructrte__eth__hairpin__conf.htmlstructrte__eth__hairpin__peer.htmlstructrte__eth__hairpin__queue__cap.htmlstructrte__eth__input__set__conf.htmlstructrte__eth__intr__conf.htmlstructrte__eth__ip__reassembly__dynfield__t.htmlstructrte__eth__ip__reassembly__params.htmlstructrte__eth__ipv4__flow.htmlstructrte__eth__ipv6__flow.htmlstructrte__eth__l2__flow.htmlstructrte__eth__link.htmlstructrte__eth__mac__vlan__flow.htmlstructrte__eth__ntuple__filter.htmlstructrte__eth__pfc__conf.htmlstructrte__eth__pfc__queue__conf.htmlstructrte__eth__pfc__queue__info.htmlstructrte__eth__representor__info.htmlstructrte__eth__representor__range.htmlstructrte__eth__rss__conf.htmlstructrte__eth__rss__reta__entry64.htmlstructrte__eth__rxconf.htmlstructrte__eth__rxmode.htmlstructrte__eth__rxq__info.htmlstructrte__eth__rxseg__capa.htmlstructrte__eth__rxseg__split.htmlstructrte__eth__sctpv4__flow.htmlstructrte__eth__sctpv6__flow.htmlstructrte__eth__stats.htmlstructrte__eth__switch__info.htmlstructrte__eth__tcpv4__flow.htmlstructrte__eth__tcpv6__flow.htmlstructrte__eth__thresh.htmlstructrte__eth__tunnel__flow.htmlstructrte__eth__txconf.htmlstructrte__eth__txmode.htmlstructrte__eth__txq__info.htmlstructrte__eth__udp__tunnel.htmlstructrte__eth__udpv4__flow.htmlstructrte__eth__udpv6__flow.htmlstructrte__eth__vmdq__dcb__conf.htmlstructrte__eth__vmdq__rx__conf.htmlstructrte__eth__xstat.htmlstructrte__eth__xstat__name.htmlstructrte__ether__addr.htmlstructrte__ether__hdr.htmlstructrte__event.htmlstructrte__event__crypto__adapter__conf.htmlstructrte__event__crypto__adapter__queue__conf.htmlstructrte__event__crypto__adapter__stats.htmlstructrte__event__crypto__adapter__vector__limits.htmlstructrte__event__crypto__request.htmlstructrte__event__dev__config.htmlstructrte__event__dev__info.htmlstructrte__event__dev__xstats__name.htmlstructrte__event__eth__rx__adapter__conf.htmlstructrte__event__eth__rx__adapter__params.htmlstructrte__event__eth__rx__adapter__queue__conf.htmlstructrte__event__eth__rx__adapter__queue__stats.htmlstructrte__event__eth__rx__adapter__stats.htmlstructrte__event__eth__rx__adapter__vector__limits.htmlstructrte__event__eth__tx__adapter__conf.htmlstructrte__event__eth__tx__adapter__stats.htmlstructrte__event__port__conf.htmlstructrte__event__queue__conf.htmlstructrte__event__ring.htmlstructrte__event__timer.htmlstructrte__event__timer__adapter__conf.htmlstructrte__event__timer__adapter__info.htmlstructrte__event__timer__adapter__stats.htmlstructrte__event__vector.htmlstructrte__fbk__hash__params.htmlstructrte__fbk__hash__table.htmlstructrte__fib6__conf.htmlstructrte__fib__conf.htmlstructrte__flow__action.htmlstructrte__flow__action__age.htmlstructrte__flow__action__conntrack.htmlstructrte__flow__action__count.htmlstructrte__flow__action__ethdev.htmlstructrte__flow__action__jump.htmlstructrte__flow__action__mark.htmlstructrte__flow__action__meter.htmlstructrte__flow__action__meter__color.htmlstructrte__flow__action__meter__mark.htmlstructrte__flow__action__modify__data.htmlstructrte__flow__action__modify__field.htmlstructrte__flow__action__nvgre__encap.htmlstructrte__flow__action__of__pop__mpls.htmlstructrte__flow__action__of__push__mpls.htmlstructrte__flow__action__of__push__vlan.htmlstructrte__flow__action__of__set__vlan__pcp.htmlstructrte__flow__action__of__set__vlan__vid.htmlstructrte__flow__action__port__id.htmlstructrte__flow__action__queue.htmlstructrte__flow__action__raw__decap.htmlstructrte__flow__action__raw__encap.htmlstructrte__flow__action__rss.htmlstructrte__flow__action__sample.htmlstructrte__flow__action__security.htmlstructrte__flow__action__set__dscp.htmlstructrte__flow__action__set__ipv4.htmlstructrte__flow__action__set__ipv6.htmlstructrte__flow__action__set__mac.htmlstructrte__flow__action__set__meta.htmlstructrte__flow__action__set__tag.htmlstructrte__flow__action__set__tp.htmlstructrte__flow__action__set__ttl.htmlstructrte__flow__action__vf.htmlstructrte__flow__action__vxlan__encap.htmlstructrte__flow__actions__template__attr.htmlstructrte__flow__attr.htmlstructrte__flow__classifier__params.htmlstructrte__flow__classify__ipv4__5tuple.htmlstructrte__flow__classify__stats.htmlstructrte__flow__classify__table__params.htmlstructrte__flow__conv__rule.htmlstructrte__flow__desc.htmlstructrte__flow__error.htmlstructrte__flow__indir__action__conf.htmlstructrte__flow__item.htmlstructrte__flow__item__ah.htmlstructrte__flow__item__any.htmlstructrte__flow__item__arp__eth__ipv4.htmlstructrte__flow__item__conntrack.htmlstructrte__flow__item__e__tag.htmlstructrte__flow__item__ecpri.htmlstructrte__flow__item__esp.htmlstructrte__flow__item__eth.htmlstructrte__flow__item__ethdev.htmlstructrte__flow__item__flex.htmlstructrte__flow__item__flex__conf.htmlstructrte__flow__item__flex__field.htmlstructrte__flow__item__flex__link.htmlstructrte__flow__item__fuzzy.htmlstructrte__flow__item__geneve.htmlstructrte__flow__item__geneve__opt.htmlstructrte__flow__item__gre.htmlstructrte__flow__item__gre__opt.htmlstructrte__flow__item__gtp.htmlstructrte__flow__item__gtp__psc.htmlstructrte__flow__item__higig2__hdr.htmlstructrte__flow__item__icmp.htmlstructrte__flow__item__icmp6.htmlstructrte__flow__item__icmp6__nd__na.htmlstructrte__flow__item__icmp6__nd__ns.htmlstructrte__flow__item__icmp6__nd__opt.htmlstructrte__flow__item__icmp6__nd__opt__sla__eth.htmlstructrte__flow__item__icmp6__nd__opt__tla__eth.htmlstructrte__flow__item__igmp.htmlstructrte__flow__item__integrity.htmlstructrte__flow__item__ipv4.htmlstructrte__flow__item__ipv6.htmlstructrte__flow__item__ipv6__ext.htmlstructrte__flow__item__ipv6__frag__ext.htmlstructrte__flow__item__l2tpv2.htmlstructrte__flow__item__l2tpv3oip.htmlstructrte__flow__item__macsec.htmlstructrte__flow__item__mark.htmlstructrte__flow__item__meta.htmlstructrte__flow__item__meter__color.htmlstructrte__flow__item__mpls.htmlstructrte__flow__item__nsh.htmlstructrte__flow__item__nvgre.htmlstructrte__flow__item__pfcp.htmlstructrte__flow__item__port__id.htmlstructrte__flow__item__ppp.htmlstructrte__flow__item__pppoe.htmlstructrte__flow__item__pppoe__proto__id.htmlstructrte__flow__item__raw.htmlstructrte__flow__item__sctp.htmlstructrte__flow__item__tag.htmlstructrte__flow__item__tcp.htmlstructrte__flow__item__udp.htmlstructrte__flow__item__vlan.htmlstructrte__flow__item__vxlan.htmlstructrte__flow__item__vxlan__gpe.htmlstructrte__flow__modify__conntrack.htmlstructrte__flow__op__attr.htmlstructrte__flow__op__result.htmlstructrte__flow__ops.htmlstructrte__flow__pattern__template__attr.htmlstructrte__flow__port__attr.htmlstructrte__flow__port__info.htmlstructrte__flow__query__age.htmlstructrte__flow__query__count.htmlstructrte__flow__queue__attr.htmlstructrte__flow__queue__info.htmlstructrte__flow__restore__info.htmlstructrte__flow__tcp__dir__param.htmlstructrte__flow__template__table__attr.htmlstructrte__flow__update__age.htmlstructrte__flow__update__meter__mark.htmlstructrte__geneve__hdr.htmlstructrte__gpu__comm__flag.htmlstructrte__gpu__comm__list.htmlstructrte__gpu__comm__pkt.htmlstructrte__gpu__info.htmlstructrte__graph__cluster__node__stats.htmlstructrte__graph__cluster__stats__param.htmlstructrte__graph__param.htmlstructrte__gre__hdr.htmlstructrte__gre__hdr__opt__checksum__rsvd.htmlstructrte__gre__hdr__opt__key.htmlstructrte__gre__hdr__opt__sequence.htmlstructrte__gro__param.htmlstructrte__gso__ctx.htmlstructrte__gtp__hdr.htmlstructrte__gtp__psc__generic__hdr.htmlstructrte__gtp__psc__type0__hdr.htmlstructrte__gtp__psc__type1__hdr.htmlstructrte__hash.htmlstructrte__hash__bucket.htmlstructrte__hash__parameters.htmlstructrte__hash__rcu__config.htmlstructrte__higig2__frc.htmlstructrte__higig2__hdr.htmlstructrte__higig2__ppt__type0.htmlstructrte__higig2__ppt__type1.htmlstructrte__icmp__hdr.htmlstructrte__ip__frag__death__row.htmlstructrte__ipsec__group.htmlstructrte__ipsec__sa__pkt__func.htmlstructrte__ipsec__sa__prm.htmlstructrte__ipsec__sad__conf.htmlstructrte__ipsec__session.htmlstructrte__ipv4__hdr.htmlstructrte__ipv4__tuple.htmlstructrte__ipv6__hdr.htmlstructrte__ipv6__tuple.htmlstructrte__kni__conf.htmlstructrte__kni__ops.htmlstructrte__kvargs.htmlstructrte__kvargs__pair.htmlstructrte__l2tpv2__combined__msg__hdr.htmlstructrte__l2tpv2__common__hdr.htmlstructrte__l2tpv2__msg__with__all__options.htmlstructrte__l2tpv2__msg__with__length.htmlstructrte__l2tpv2__msg__with__ns__nr.htmlstructrte__l2tpv2__msg__with__offset.htmlstructrte__l2tpv2__msg__without__all__options.htmlstructrte__l2tpv2__msg__without__length.htmlstructrte__l2tpv2__msg__without__ns__nr.htmlstructrte__l2tpv2__msg__without__offset.htmlstructrte__lpm6__config.htmlstructrte__lpm__config.htmlstructrte__lpm__rcu__config.htmlstructrte__macsec__hdr.htmlstructrte__macsec__sci__hdr.htmlstructrte__malloc__socket__stats.htmlstructrte__mbuf.htmlstructrte__mbuf__dynfield.htmlstructrte__mbuf__dynflag.htmlstructrte__mbuf__ext__shared__info.htmlstructrte__mbuf__sched.htmlstructrte__mcslock.htmlstructrte__mem__resource.htmlstructrte__member__parameters.htmlstructrte__mempool.htmlstructrte__mempool__cache.htmlstructrte__mempool__info.htmlstructrte__mempool__memhdr.htmlstructrte__mempool__objhdr.htmlstructrte__mempool__objsz.htmlstructrte__mempool__ops.htmlstructrte__mempool__ops__table.htmlstructrte__memseg.htmlstructrte__memseg__list.htmlstructrte__memzone.htmlstructrte__meter__srtcm__params.htmlstructrte__meter__trtcm.htmlstructrte__meter__trtcm__params.htmlstructrte__meter__trtcm__rfc4115.htmlstructrte__meter__trtcm__rfc4115__params.htmlstructrte__metric__name.htmlstructrte__metric__value.htmlstructrte__mpls__hdr.htmlstructrte__mtr__capabilities.htmlstructrte__mtr__error.htmlstructrte__mtr__meter__policy__params.htmlstructrte__mtr__meter__profile.htmlstructrte__mtr__params.htmlstructrte__mtr__stats.htmlstructrte__net__hdr__lens.htmlstructrte__node__ethdev__config.htmlstructrte__node__register.htmlstructrte__param__log2__range.htmlstructrte__pci__addr.htmlstructrte__pci__id.htmlstructrte__pdump__stats.htmlstructrte__pflock.htmlstructrte__pie.htmlstructrte__pie__config.htmlstructrte__pie__params.htmlstructrte__pipeline__params.htmlstructrte__pipeline__port__in__params.htmlstructrte__pipeline__port__in__stats.htmlstructrte__pipeline__port__out__params.htmlstructrte__pipeline__port__out__stats.htmlstructrte__pipeline__table__entry.htmlstructrte__pipeline__table__params.htmlstructrte__pipeline__table__stats.htmlstructrte__pktmbuf__extmem.htmlstructrte__pktmbuf__pool__private.htmlstructrte__pmd__afu__dma__cfg.htmlstructrte__pmd__afu__he__hssi__cfg.htmlstructrte__pmd__afu__he__lpbk__cfg.htmlstructrte__pmd__afu__he__mem__tg__cfg.htmlstructrte__pmd__afu__n3000__cfg.htmlstructrte__pmd__afu__nlb__cfg.htmlstructrte__pmd__i40e__ddp__device__id.htmlstructrte__pmd__i40e__ddp__version.htmlstructrte__pmd__i40e__mb__event__param.htmlstructrte__pmd__i40e__pkt__template__action.htmlstructrte__pmd__i40e__pkt__template__conf.htmlstructrte__pmd__i40e__pkt__template__input.htmlstructrte__pmd__i40e__profile__info.htmlstructrte__pmd__i40e__profile__list.htmlstructrte__pmd__i40e__proto__info.htmlstructrte__pmd__i40e__ptype__info.htmlstructrte__pmd__i40e__queue__region__conf.htmlstructrte__pmd__ifpga__common__prop.htmlstructrte__pmd__ifpga__phy__info.htmlstructrte__pmd__ifpga__port__prop.htmlstructrte__pmd__ifpga__prop.htmlstructrte__pmd__ifpga__uuid.htmlstructrte__pmd__ixgbe__mb__event__param.htmlstructrte__port__ethdev__reader__params.htmlstructrte__port__ethdev__writer__nodrop__params.htmlstructrte__port__ethdev__writer__params.htmlstructrte__port__eventdev__reader__params.htmlstructrte__port__eventdev__writer__nodrop__params.htmlstructrte__port__eventdev__writer__params.htmlstructrte__port__fd__reader__params.htmlstructrte__port__fd__writer__nodrop__params.htmlstructrte__port__fd__writer__params.htmlstructrte__port__in__action__fltr__config.htmlstructrte__port__in__action__fltr__params.htmlstructrte__port__in__action__lb__config.htmlstructrte__port__in__action__lb__params.htmlstructrte__port__in__ops.htmlstructrte__port__in__stats.htmlstructrte__port__kni__reader__params.htmlstructrte__port__kni__writer__nodrop__params.htmlstructrte__port__kni__writer__params.htmlstructrte__port__out__ops.htmlstructrte__port__out__stats.htmlstructrte__port__ring__reader__frag__params.htmlstructrte__port__ring__reader__params.htmlstructrte__port__ring__writer__nodrop__params.htmlstructrte__port__ring__writer__params.htmlstructrte__port__ring__writer__ras__params.htmlstructrte__port__sched__reader__params.htmlstructrte__port__sched__writer__params.htmlstructrte__port__sink__params.htmlstructrte__port__source__params.htmlstructrte__port__sym__crypto__reader__params.htmlstructrte__port__sym__crypto__writer__nodrop__params.htmlstructrte__port__sym__crypto__writer__params.htmlstructrte__power__core__capabilities.htmlstructrte__ppp__hdr.htmlstructrte__rawdev__ops.htmlstructrte__rawdev__xstats__name.htmlstructrte__rcu__qsbr__dq__parameters.htmlstructrte__red.htmlstructrte__red__config.htmlstructrte__red__params.htmlstructrte__regex__ops.htmlstructrte__regexdev__config.htmlstructrte__regexdev__info.htmlstructrte__regexdev__match.htmlstructrte__regexdev__ops.htmlstructrte__regexdev__qp__conf.htmlstructrte__regexdev__rule.htmlstructrte__regexdev__xstats__map.htmlstructrte__rib6__conf.htmlstructrte__rib__conf.htmlstructrte__ring.htmlstructrte__ring__headtail.htmlstructrte__ring__zc__data.htmlstructrte__sched__port__params.htmlstructrte__sched__queue__stats.htmlstructrte__sched__subport__stats.htmlstructrte__sctp__hdr.htmlstructrte__security__capability.htmlstructrte__security__capability__idx.htmlstructrte__security__ctx.htmlstructrte__security__docsis__xform.htmlstructrte__security__ipsec__lifetime.htmlstructrte__security__ipsec__sa__options.htmlstructrte__security__ipsec__tunnel__param.htmlstructrte__security__ipsec__xform.htmlstructrte__security__macsec__sa.htmlstructrte__security__macsec__sc.htmlstructrte__security__macsec__xform.htmlstructrte__security__ops.htmlstructrte__security__pdcp__xform.htmlstructrte__security__session__conf.htmlstructrte__seqcount__t.htmlstructrte__seqlock__t.htmlstructrte__service__spec.htmlstructrte__spinlock__recursive__t.htmlstructrte__spinlock__t.htmlstructrte__swx__ctl__action__arg__info.htmlstructrte__swx__ctl__action__info.htmlstructrte__swx__ctl__learner__info.htmlstructrte__swx__ctl__metarray__info.htmlstructrte__swx__ctl__meter__stats.htmlstructrte__swx__ctl__pipeline__info.htmlstructrte__swx__ctl__regarray__info.htmlstructrte__swx__ctl__selector__info.htmlstructrte__swx__ctl__table__action__info.htmlstructrte__swx__ctl__table__info.htmlstructrte__swx__ctl__table__match__field__info.htmlstructrte__swx__field__params.htmlstructrte__swx__learner__stats.htmlstructrte__swx__match__field__params.htmlstructrte__swx__pipeline__learner__params.htmlstructrte__swx__pipeline__mirroring__params.htmlstructrte__swx__pipeline__mirroring__session__params.htmlstructrte__swx__pipeline__selector__params.htmlstructrte__swx__pipeline__selector__stats.htmlstructrte__swx__pipeline__table__params.htmlstructrte__swx__pkt.htmlstructrte__swx__port__ethdev__reader__params.htmlstructrte__swx__port__ethdev__writer__params.htmlstructrte__swx__port__fd__reader__params.htmlstructrte__swx__port__fd__writer__params.htmlstructrte__swx__port__in__ops.htmlstructrte__swx__port__in__stats.htmlstructrte__swx__port__out__ops.htmlstructrte__swx__port__out__stats.htmlstructrte__swx__port__ring__reader__params.htmlstructrte__swx__port__ring__writer__params.htmlstructrte__swx__port__sink__params.htmlstructrte__swx__port__source__params.htmlstructrte__swx__table__entry.htmlstructrte__swx__table__learner__params.htmlstructrte__swx__table__ops.htmlstructrte__swx__table__params.htmlstructrte__swx__table__selector__group.htmlstructrte__swx__table__selector__member.htmlstructrte__swx__table__selector__params.htmlstructrte__swx__table__state.htmlstructrte__swx__table__stats.htmlstructrte__table__acl__params.htmlstructrte__table__acl__rule__add__params.htmlstructrte__table__acl__rule__delete__params.htmlstructrte__table__action__common__config.htmlstructrte__table__action__decap__params.htmlstructrte__table__action__dscp__table.htmlstructrte__table__action__dscp__table__entry.htmlstructrte__table__action__encap__config.htmlstructrte__table__action__encap__ether__params.htmlstructrte__table__action__encap__mpls__params.htmlstructrte__table__action__encap__params.htmlstructrte__table__action__encap__pppoe__params.htmlstructrte__table__action__encap__qinq__params.htmlstructrte__table__action__encap__vlan__params.htmlstructrte__table__action__encap__vxlan__params.htmlstructrte__table__action__ether__hdr.htmlstructrte__table__action__fwd__params.htmlstructrte__table__action__ipv4__header.htmlstructrte__table__action__ipv6__header.htmlstructrte__table__action__lb__config.htmlstructrte__table__action__lb__params.htmlstructrte__table__action__meter__profile.htmlstructrte__table__action__mpls__hdr.htmlstructrte__table__action__mtr__config.htmlstructrte__table__action__mtr__counters.htmlstructrte__table__action__mtr__counters__tc.htmlstructrte__table__action__mtr__params.htmlstructrte__table__action__mtr__tc__params.htmlstructrte__table__action__nat__config.htmlstructrte__table__action__nat__params.htmlstructrte__table__action__pppoe__hdr.htmlstructrte__table__action__stats__config.htmlstructrte__table__action__stats__counters.htmlstructrte__table__action__stats__params.htmlstructrte__table__action__sym__crypto__config.htmlstructrte__table__action__sym__crypto__params.htmlstructrte__table__action__tag__params.htmlstructrte__table__action__time__params.htmlstructrte__table__action__tm__config.htmlstructrte__table__action__tm__params.htmlstructrte__table__action__ttl__config.htmlstructrte__table__action__ttl__counters.htmlstructrte__table__action__ttl__params.htmlstructrte__table__action__udp__header.htmlstructrte__table__action__vlan__hdr.htmlstructrte__table__action__vlo.htmlstructrte__table__action__vxlan__hdr.htmlstructrte__table__array__key.htmlstructrte__table__array__params.htmlstructrte__table__encap__ether__qinq__pppoe.htmlstructrte__table__hash__cuckoo__params.htmlstructrte__table__hash__params.htmlstructrte__table__lpm__ipv6__key.htmlstructrte__table__lpm__ipv6__params.htmlstructrte__table__lpm__key.htmlstructrte__table__lpm__params.htmlstructrte__table__ops.htmlstructrte__table__stats.htmlstructrte__tailq__entry.htmlstructrte__tailq__head.htmlstructrte__tcp__hdr.htmlstructrte__thread__attr__t.htmlstructrte__thread__t.htmlstructrte__timecounter.htmlstructrte__timer.htmlstructrte__tm__capabilities.htmlstructrte__tm__error.htmlstructrte__tm__level__capabilities.htmlstructrte__tm__node__capabilities.htmlstructrte__tm__node__params.htmlstructrte__tm__node__stats.htmlstructrte__tm__red__params.htmlstructrte__tm__shaper__params.htmlstructrte__tm__token__bucket.htmlstructrte__tm__wred__params.htmlstructrte__udp__hdr.htmlstructrte__vdpa__stat.htmlstructrte__vdpa__stat__name.htmlstructrte__vhost__device__ops.htmlstructrte__vhost__mem__region.htmlstructrte__vhost__memory.htmlstructrte__vhost__power__monitor__cond.htmlstructrte__vhost__stat.htmlstructrte__vhost__stat__name.htmlstructrte__vhost__user__extern__ops.htmlstructrte__vlan__filter__conf.htmlstructrte__vlan__hdr.htmlstructrte__vxlan__gpe__hdr.htmlstructrte__vxlan__hdr.htmlstructslow__protocol.htmlstructslow__protocol__frame.htmlstructsoftnic__mempool__params.htmlstructsoftnic__swq__params.htmlstructsoftnic__thread.htmlstructsoftnic__thread__data.htmlsync_off.pngsync_on.pngtab_a.pngtab_b.pngtab_h.pngtab_s.pngtabs.csstestpmd_app_ugbuild_app.htmlindex.htmlintro.htmlrun_app.htmltestpmd_funcs.htmltoolscomp_perf.htmlcryptoperf.htmldevbind.htmldts.htmldumpcap.htmlflow-perf.htmlhugepages.htmlindex.htmlpdump.htmlpmdinfo.htmlproc_info.htmlsecurityperf.htmltestbbdev.htmltesteventdev.htmltestregex.htmlunionrte__crypto__sym__ofs.htmlunionrte__cryptodev__session__ctx.htmlunionrte__eth__fdir__flow.htmlunionrte__eth__rxseg.htmlunionrte__event__crypto__metadata.htmlunionrte__fbk__hash__entry.htmlunionrte__pmd__ifd__proto__xtr__metadata.htmlunionrte__ticketlock__t.htmlunionrte__timer__status.htmlvdpadevsfeatures_overview.htmlifc.htmlindex.htmlmlx5.htmlsfc.htmlwindows_gsgbuild_dpdk.htmlindex.htmlintro.htmlrun_apps.html/usr/share/doc/packages//usr/share/doc/packages/dpdk//usr/share/doc/packages/dpdk/dpdk//usr/share/doc/packages/dpdk/dpdk/_static//usr/share/doc/packages/dpdk/dpdk/_static/css//usr/share/doc/packages/dpdk/dpdk/html//usr/share/doc/packages/dpdk/dpdk/html/.doctrees//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/bbdevs//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/compressdevs//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/contributing//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/cryptodevs//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/dmadevs//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/eventdevs//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/faq//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/freebsd_gsg//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/gpus//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/howto//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/linux_gsg//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/mempool//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/nics//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/platform//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/prog_guide//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/rawdevs//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/regexdevs//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/rel_notes//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/sample_app_ug//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/testpmd_app_ug//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/tools//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/vdpadevs//usr/share/doc/packages/dpdk/dpdk/html/.doctrees/windows_gsg//usr/share/doc/packages/dpdk/dpdk/html/_images//usr/share/doc/packages/dpdk/dpdk/html/_sources//usr/share/doc/packages/dpdk/dpdk/html/_sources/bbdevs//usr/share/doc/packages/dpdk/dpdk/html/_sources/compressdevs//usr/share/doc/packages/dpdk/dpdk/html/_sources/contributing//usr/share/doc/packages/dpdk/dpdk/html/_sources/cryptodevs//usr/share/doc/packages/dpdk/dpdk/html/_sources/dmadevs//usr/share/doc/packages/dpdk/dpdk/html/_sources/eventdevs//usr/share/doc/packages/dpdk/dpdk/html/_sources/faq//usr/share/doc/packages/dpdk/dpdk/html/_sources/freebsd_gsg//usr/share/doc/packages/dpdk/dpdk/html/_sources/gpus//usr/share/doc/packages/dpdk/dpdk/html/_sources/howto//usr/share/doc/packages/dpdk/dpdk/html/_sources/linux_gsg//usr/share/doc/packages/dpdk/dpdk/html/_sources/mempool//usr/share/doc/packages/dpdk/dpdk/html/_sources/nics//usr/share/doc/packages/dpdk/dpdk/html/_sources/platform//usr/share/doc/packages/dpdk/dpdk/html/_sources/prog_guide//usr/share/doc/packages/dpdk/dpdk/html/_sources/rawdevs//usr/share/doc/packages/dpdk/dpdk/html/_sources/regexdevs//usr/share/doc/packages/dpdk/dpdk/html/_sources/rel_notes//usr/share/doc/packages/dpdk/dpdk/html/_sources/sample_app_ug//usr/share/doc/packages/dpdk/dpdk/html/_sources/testpmd_app_ug//usr/share/doc/packages/dpdk/dpdk/html/_sources/tools//usr/share/doc/packages/dpdk/dpdk/html/_sources/vdpadevs//usr/share/doc/packages/dpdk/dpdk/html/_sources/windows_gsg//usr/share/doc/packages/dpdk/dpdk/html/_static//usr/share/doc/packages/dpdk/dpdk/html/_static/css//usr/share/doc/packages/dpdk/dpdk/html/_static/css/fonts//usr/share/doc/packages/dpdk/dpdk/html/_static/js//usr/share/doc/packages/dpdk/dpdk/html/bbdevs//usr/share/doc/packages/dpdk/dpdk/html/compressdevs//usr/share/doc/packages/dpdk/dpdk/html/contributing//usr/share/doc/packages/dpdk/dpdk/html/cryptodevs//usr/share/doc/packages/dpdk/dpdk/html/dmadevs//usr/share/doc/packages/dpdk/dpdk/html/eventdevs//usr/share/doc/packages/dpdk/dpdk/html/faq//usr/share/doc/packages/dpdk/dpdk/html/freebsd_gsg//usr/share/doc/packages/dpdk/dpdk/html/gpus//usr/share/doc/packages/dpdk/dpdk/html/howto//usr/share/doc/packages/dpdk/dpdk/html/linux_gsg//usr/share/doc/packages/dpdk/dpdk/html/mempool//usr/share/doc/packages/dpdk/dpdk/html/nics//usr/share/doc/packages/dpdk/dpdk/html/platform//usr/share/doc/packages/dpdk/dpdk/html/prog_guide//usr/share/doc/packages/dpdk/dpdk/html/rawdevs//usr/share/doc/packages/dpdk/dpdk/html/regexdevs//usr/share/doc/packages/dpdk/dpdk/html/rel_notes//usr/share/doc/packages/dpdk/dpdk/html/sample_app_ug//usr/share/doc/packages/dpdk/dpdk/html/search//usr/share/doc/packages/dpdk/dpdk/html/testpmd_app_ug//usr/share/doc/packages/dpdk/dpdk/html/tools//usr/share/doc/packages/dpdk/dpdk/html/vdpadevs//usr/share/doc/packages/dpdk/dpdk/html/windows_gsg/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:43450/SUSE_SLE-15-SP5_Update/e5d4e3deb3119385aaf8176b9223ccb1-dpdk22.SUSE_SLE-15-SP5_Updatedrpmxz5x86_64-suse-linux    !"#$%&'()*+,-./01233333334333353333633363363333333783338733333933433333333333333633333:;<=>?@ABCDEFGHIJK6L4;MM;NN4MOOPPOOOOOQRMSTMOOOOOOOOPPPPPOPOPOOOOOOOOOOOOOOOOOOOOPOOOOOMTTTTTTTTTMTMTTTMTTTTTTTTTTTTTTTTMTTMTMTMTTMTTTTMTMTTTTTTTTTTTTTTMTMTTTTTTTTTTTTTTTOOOOPOPUMVPOOOOOOPOOTMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMPPMUUPPPOPOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOPPPPOOPPO6POPOOOPOOOPPPOPOOOOMWXYOOPOOOOPOPOOOOPOPPPPOOOOPPOOOOOOPOOOOOOPOOOOOOOOOOPOOOOPOOOOOOSTOPOOOOOOPPPOPPPPPPPPPPOPOOOPPOOOPPOOOOOOPPOPOOPOPOOOPOOPOPOOPPPPOOOOPOOPOOOPPOOOOOPOOOOPOPOPPOPPPOPOOPOPOOOPPPPPOPOPPOOOMMTMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMPMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMTMMMMMMMMMMMMMMMMMMTMMMMMMMTMMMTMTMMMMMMMMMTMMMMMMMMMMMTMTMTMMMMMMMMMMMMMMMMTMMMMMMMMMMMMMMMMMTMMMMMMMTMMMMMMMMMMMMMTMMMTMMMMMMMMMMMMMMMMMMMMMMMMMMMMTMMMMMMMMMMMMMMMMMMMMMTMMMMMMMMMMMMMMPMMMMMMMMMMMMMMTMTMMMMMMMMTMMMMMMMMMMMMMMMMMMMMMMMMMMMMMTMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMTMMMTMMMMMMMPMMPMMMTMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMTMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMPMPMMMMMTMMMMMMMTMMMMMMMMPMMMMMMMMTMMMMMMMMMMMMMMMMMMOPOOPOOOPPPOOPOPOPPPPPPPPPPPPOOOPPOPPPPOPOOOOPPPOT4T4T4T4T4T4T4T4T4T4TTT4T4T4T4T4T4T4T4T4T4T4T4T4T4TTTTTZTTTTTTTTTTTTTTTTTTTTTTTTTTT4[TTT[\]TTTTTTTTTTTT4T4T4T4T4T4T4T4T4T4TTT4T4T4T4T4T4T4T4T4T4T4T4T4T4;^TTTMMTMTMMTTMTTTMMMMMMTOTTTMTTTTTTTTPPPMMMMMMTTTMMTTMTMMMMMMMTTMMMTTMMMMMMMMMMMMMMMMMMTMMMMMMMMMMTMMTMMMMMMMTTMMMMTMMMTMTTTTMTTMMMMMTMTMMTMMMTMTTMMMMMMMMMMMMTMMTTTTTMMTTTMMTMMMMMMMMMMTMMMMMMMTMMMMTMMMMMMMMMMMMMTMMTMTMMTMTTMPTMMMTMMMMMMTMTTTTTMMMMMMMMTMTMTTMMMTTTTMTTTTMTMTTTMTMMTMTTMTMTMMTTMMMTMTMTMMTMTMMTMMTTMMTTTMTTMMTTMTTTMMTMTMMMTTMTMMTTTTTTTTTMMMMMMTTMMTTTTTTMMTTTMTMMTTTTTMMTMMMMTMTTTMTMTMMMMMMMMMMTMMTMMMMTTTMMMTMMTMMMTMTTTTTMMTMMMMMMTMMTTTTTTTTTMMMMMMMMTTTTTTTTTTMMTTTTTTTTTTTTTTTTMTMTTMTMMMTTTTMTMMMMMTTTMMMTMMMTMTTTMMTMTMMMTTMMTMTMMMTMMMMMMMMMMMMTMTMMMMMMMMMMMMMTTMMTMMTMTTTMTMTMTTTTMMMMMMMMTTMMMTTMMTMMMMMMMMMTTMMMTMMMMMTTTTTTMMTTTTTTTTTTTTTMMMMTMTMTMMMMTTMMMMMMMTMTMMTMMTTTMMTTMMMTTTTTT__````;OOOPPOOOOOOOOOOPOPPOTTTTMTTTTOOOOOOOOOdirectoryASCII textSVG Scalable Vector Graphics imagePNG image data, 856 x 603, 8-bit/color RGBA, non-interlacedPNG image data, 696 x 358, 8-bit/color RGBA, non-interlacedPNG image data, 516 x 166, 8-bit/color RGBA, non-interlacedPNG image data, 494 x 581, 8-bit/color RGB, non-interlacedPNG image data, 355 x 68, 8-bit/color RGBA, non-interlacedPNG image data, 121 x 38, 8-bit/color RGBA, non-interlacedPNG image data, 728 x 392, 8-bit/color RGBA, non-interlacedPNG image data, 194 x 36, 8-bit/color RGBA, non-interlacedPNG image data, 112 x 27, 8-bit/color RGBA, non-interlacedPNG image data, 267 x 27, 8-bit colormap, non-interlacedPNG image data, 209 x 27, 8-bit/color RGBA, non-interlacedPNG image data, 606 x 341, 8-bit/color RGB, non-interlacedPNG image data, 838 x 547, 8-bit/color RGBA, non-interlacedPNG image data, 670 x 260, 8-bit/color RGBA, non-interlacedPNG image data, 3578 x 400, 8-bit/color RGBA, non-interlacedPNG image data, 793 x 203, 8-bit/color RGBA, non-interlacedPNG image data, 3652 x 485, 8-bit/color RGBA, non-interlacedPNG image data, 792 x 97, 8-bit/color RGBA, non-interlacedPNG image data, 791 x 131, 8-bit/color RGBA, non-interlacedPNG image data, 2882 x 487, 8-bit/color RGBA, non-interlacedPNG image data, 325 x 629, 8-bit/color RGB, non-interlacedPNG image data, 621 x 140, 8-bit/color RGBA, non-interlacedPNG image data, 580 x 400, 8-bit/color RGBA, non-interlacedPNG image data, 436 x 468, 8-bit/color RGBA, non-interlacedPNG image data, 417 x 445, 8-bit/color RGBA, non-interlacedPNG image data, 893 x 581, 8-bit/color RGB, non-interlacedPNG image data, 468 x 64, 8-bit colormap, non-interlacedPNG image data, 757 x 582, 8-bit/color RGB, non-interlacedPNG image data, 482 x 434, 8-bit/color RGBA, non-interlacedPNG image data, 146 x 42, 8-bit/color RGBA, non-interlacedPNG image data, 809 x 720, 8-bit/color RGBA, non-interlacedPNG image data, 1108 x 643, 8-bit/color RGBA, non-interlacedPNG image data, 897 x 482, 8-bit/color RGBA, non-interlacedPNG image data, 459 x 629, 8-bit/color RGBA, non-interlacedPNG image data, 734 x 548, 8-bit/color RGBA, non-interlacedPNG image data, 896 x 466, 8-bit/color RGB, non-interlacedPNG image data, 892 x 426, 8-bit/color RGBA, non-interlacedPNG image data, 790 x 122, 8-bit/color RGBA, non-interlacedPNG image data, 691 x 302, 8-bit/color RGBA, non-interlacedPNG image data, 898 x 693, 8-bit/color RGB, non-interlacedPNG image data, 565 x 466, 8-bit/color RGBA, non-interlacedPNG image data, 608 x 390, 8-bit/color RGBA, non-interlacedPNG image data, 564 x 370, 8-bit/color RGBA, non-interlacedPNG image data, 661 x 241, 8-bit/color RGBA, non-interlacedPNG image data, 545 x 443, 8-bit/color RGB, non-interlacedPNG image data, 517 x 261, 8-bit/color RGBA, non-interlacedPNG image data, 520 x 460, 8-bit/color RGB, non-interlacedUTF-8 Unicode textASCII text, with very long linesAlgol 68 source, ASCII textUTF-8 Unicode text, with very long linesC source, ASCII textassembler source, ASCII textassembler source, ASCII text, with very long linesPNG image data, 176 x 131, 8-bit/color RGBA, non-interlacedASCII text, with very long lines, with no line terminatorsWeb Open Font Format, TrueType, length 87624, version 1.1Web Open Font Format (Version 2), TrueType, length 67312, version 1.0Web Open Font Format, TrueType, length 86288, version 1.1Web Open Font Format (Version 2), TrueType, length 66444, version 1.0Embedded OpenType (EOT), FontAwesome familyTrueType Font data, 13 tables, 1st "FFTM", 24 names, MacintoshWeb Open Font Format, TrueType, length 98024, version 4.7Web Open Font Format (Version 2), TrueType, length 77160, version 4.459Web Open Font Format, TrueType, length 323344, version 1.0Web Open Font Format (Version 2), TrueType, length 193308, version 2.983Web Open Font Format, TrueType, length 309728, version 1.0Web Open Font Format (Version 2), TrueType, length 184912, version 2.983Web Open Font Format, TrueType, length 328412, version 1.0Web Open Font Format (Version 2), TrueType, length 195704, version 2.983Web Open Font Format, TrueType, length 309192, version 1.0Web Open Font Format (Version 2), TrueType, length 182708, version 2.983PNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedHTML document, ASCII text, with very long linesPNG image data, 11 x 11, 8-bit grayscale, non-interlacedHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesPNG image data, 8 x 30, 8-bit/color RGBA, non-interlacedPNG image data, 7 x 8, 8-bit/color RGBA, non-interlacedPNG image data, 9 x 9, 8-bit/color RGBA, non-interlacedHTML document, ASCII textPNG image data, 24 x 22, 8-bit/color RGBA, non-interlacedPNG image data, 104 x 31, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 56, 8-bit/color RGB, non-interlacedPNG image data, 1 x 6, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 12, 8-bit/color RGB, non-interlacedPNG image data, 11 x 11, 8-bit/color RGBA, non-interlacedPNG image data, 20 x 19, 8-bit/color RGBA, non-interlacedPNG image data, 2 x 19, 8-bit/color RGB, non-interlacedPNG image data, 18 x 19, 8-bit/color RGBA, non-interlacedPNG image data, 6 x 1024, 8-bit/color RGB, non-interlacedPNG image data, 24 x 24, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 36, 8-bit/color RGB, non-interlacedutf-829554886627945918304b3f5a87270b419b462233220c48749fe3a68a08687fe?@7zXZ !t/$]"k%J&wxLu {waeq/ଈm\ekSs~'+E I&GҵtBm'&fؗY%'iWIdoW4䋳eiG3( :Z32:V8=Tk@`h21ֵMP;fknh@n$ힼU"=FZNV1V5u/l m{ i!#?yf/zk/! b(N(!6IoACP;IvEj _N^zRN+zs. /$O :Y[whs8.C&9>Gq=qް\1be/Jp{ AcbnTYV$4ru:[i' \hO}ЉPU=)zir^a7c8p;ox0dXJAN$NуJZߴa_4p4el?FIW%oתc3_@l 13 yqfmn JX5BLeIKCF4)SW։jd2J`̝ Whتsk0ƔdΓ|mY 8@:$ϓy9f TVZO`~ Ź&!=vwz߽$0ģe E1bG7JYYW_?eB^&Ι!V~'d,Bj>]4%R)LjA$A7),FbpZt+`9tO_\k\D?eNXPB\K~;[RY:5ґZxX(\! "q!TYs.ƈ9}S;D:ր}s&E@1f/_嗦'!F d ?|EMqrh,U*;]WL'_MT5MVWmꚛHy+UY Y%%Fr1d=1>%qxfȠ: v!c+-djw<fidNcu-q39Sh) A.9I6!@A!XЛrSFJI,CqT9^w)p֑|w$.RڋCzf 8?z7~TA9(m{CIt-4H{_|̀k`jjvZ /lCHêJpm;Jd#tz>[Mlw{Н m"Tq6R6W:G6{ CJ8tԖO.c )HjFIE]@,:haKdҍ:1G]պ#(9ܯ[tpd[k@O*STś(i ;qli2lC( ؿdNWaWn?e]ObhSHz5j;0Xd!o-|HF&'Vҁo T@Tu{RU Ř2 B >˷PXP^zQ~g=zU caKI|2w'굑^YCEF =ϭN2u |tY(x~d8 vͷcgD6ִ*LeTsJ-qb]'46;OIz8Y7} S͡ ׂnffy}xOhHrs"θO[N+0*Q{ܓU0j{ =ߡ 8ĵ;C}J_f{FHN31"#L6B )iq`K H1 3aUaR!BQϵttjt{Ea/ [}_1BA9D5a k,D LEI50\ krd|'0PVʞI;>Nf? !!4ɢP$n/7:Fξ&,xdG*6&蓛 ~8~5Ogmy8QJ`Y9/„E_VlN'j&ХvD5,M2RYLv] &gT@ϸ{X2y[һ錿 n;.Y|Vʰ vtynצ`C\EZ;-<1~Q*i_5o3`P!I0x…5]}nj.}直z.͂iַGE#*1z_=;HX%!W,$5LrVa:*O'tFƜ&J擘L%W"@mE?cWDZ:#j{kc P zpCxqu[`آf66dϢCg\׈J(,qC ڸytZYN D ^镅kA'! N'+߉je&uq pM18P)s;'׃t ݸx+M+jfzIqC(؝ZbjSJPRGmŸgtGoܶAd*.d@Ƞbw6EԐř:xRn|9*T\l5dr%qHj9sܳx- G_g GAo#INTI;UFq'(afQ)f03@0s8iٕҳĸSm_Fo&Hz-Mj=Vz')vz.&rx$&yy=M,5D$kc[2djrUGZ/g4UH;x3]㻓 {̢ˈv{O~镞OBϚIEKT1#{](uBTOE0X{sX 7{L?i !~xI2eww|ar9+–K#'4U BPpofs ibƁ j( LV['AH.(kq:%r C>f!է#zFKY]k!x'9K$Ju(ۤ j]Tt~7O6"/q!AYi|)qEгHYJ?j&{KIWS-fECg._ˁsR~_N qLv X?(6HyLV;M Vp4J J\:Er8,b&; -jfhHgĢ?@ (L^Uw s>` Y'Iz1 L-)Q`pW81>/^)z*ͿjGOo@QA5~z} ?I(R-$'O9KޗǺA>o~7V-Ț䩓v\?v2OjDb-&hwS}Wb,1LxI]O,KOCi`v6nApc=?B ߕwv@{U>^σl 5"S`4ʧR1LTXݧq/԰]*C$KKiK.?$%*]~!=hal7=-Qp C qf!7 */3GOJLrIjbk p{6D^Y`FՇjWrmQ"AC+l`͝^k@ {|6&,5m&#Npܤ et3uKB+DK1rkK*(Hk"nYT³?}$jO O`VU*'.%S 2xc|t]խSu\_]B }pѠEhP:s(g\y]AG` twε_;x@HqjF.}PE~bō_>rڔ OڲPn6䱭3u3}>`z.ƈ) F1<

Z6Z` rXf C(=n A}_ 9^ælGR亹d+8ÌG/!I'^D?A{7}(T>WXic/n /9uLLU(ۦ':8RΦG*hK1G `otaBO5.@%اCUq0n):޾8:OF=`+; M!rd֗BJ6&NK/Hy(w[D*Vv!Uw'Uf;l6 )l)U#Qж !dwig.lqHmҌfM`!!ޯؘ:,׼J0DC1տu @Y֦ T gҚLۅIC{:/Ua%hmO ɠ"-كvF]#lF&uw(M[P$%%N9'g5Ogp&>삷\pydgs1 ҹ)P'2CifNþ+V`y j7jRCf}dO(ێtR^_WOC|״a$0M[ůu-J+9!#sv 1"fFq&6Up+>XEQN kḦh3tOn̊Xp΄:r*z$uRʲZlAv~>3;UP?nJ b@ECd %wT%Jښs":RB(ogj ,akmoP\HRSŢ٪p_LW1zhxAiRH$]jȤp/d^iJTcfb~+,G[Ʊ`a~suF i ٮ`ąӬi]u7EZ lx~N 9\Vsm&{-h}/V" Yپ.de)B9_f4*XN5{m'+PxY s"z8[<o.\)28 yy[p^eO13 _kyS$=F!wceΓ3HbVNGG nqiPЅ#|4Z6!ADž Dn3/[-82w'@ŻP]? vCh~9+?i>4qHb5[QUT .3%FcfX]a YOx5b#"ZgwKgƵT2&jA)+ 2!o? 9/2O&#Rʟi\)EjˁymxUw= M5H:9A+p#Fo/315 x74][d+a'v5:Q n0/I՝XAChsxU%6s Z m"a}6G:vexaF|Y#=d_ ? GeÉ ck^t)jg_q4r_c HQisaD.??=\ڇQi%pd#1?Ե[ -!k,^.zyt+pb,n٠PyTWi\Z܊3r"A2y&|A!mLiIIۺ ;sEr e*$`جXH~\DMbQddή'^ĩ.QbUOF @:S9 #5 w9#ޤ|M2YCdmS} &GG^CڋV&I6_ ;7I|@_VXqwJT9,ֶPdꛤBŞHwϗ?Z\9jma]_hZн|SlF Ì?C 3=G𤼨ρicϨ#Bin33{QZ 'PB;k)WL y e󍐴iD#Rdv챔%̒{ZbR>4|\a҈2W;;lWKM`Uqy̪$=(Ն Qh/,1dl|%vn  L#dk3YҚ8]%Q2#eՑFjh?bH-ڢSk 9ԛ7Y2{<զgv?nFANy1{D"D/?k䰊`^,&R#X{] :nQ9kJ7'A3|A*BċWS~0*rN+L٩YTH[Hufb059?U:4ȭJ>-bmTT˖@ dLBpL')$^N1Pd=pl)uқH*8s@i: XU7}%旷nOS^=IЍcK{=<Tm|PXtŜ2)D\t xwPM3@7x 2wt+ ""5')oQD1Cr?8Ànޜr )^҈>IxKEy@Cq?2)L)Fo\n(}V%nKQ/>]onv w BEd5\86'F;w+8{26 [j|Pbt\9 '{%M \|#7/BY y)=c#m2gNHuhOiNtcb&,~Hmwy@t/.[,M+{UX5>|-[SN+e'z-BdjC|}j`gL 0F3?K̴?Bٗ|-{hĪB}P,&H3B9,hhx~UO2jIsx!V}9UcNbH :ј zt!4 :$bDvʦE`ng,k"OˀǔЌf;v>\1AYpc6ǧ#deQ-7IvoXښ;&E{bg?&qvJOc fLĒ΁@ 8T IBjOF,|9EhVB)a斷tuTRcAH>:.%j%-1Dh{Bt :NZ٨'{iIj Qux(+ aW17=}^ AH8*?*04{Pގj.U=AK!j6b'2O<؄nYԞ'3=FKpPEDژ؞WЀiM6'& 21z]1Tz}&~;N8ѐ{z;=4'~Gx{ 즴 C%VDU}/?LQ;]ϫ?A@UU3>`$zg}By 6ž6d 1 mWfD-Q'gJmUX+)&yg`0gE64} eO@!^蔃Lȧj79w6<"F*Z20ìFպ'bY8 ?ƲJK*$J,mRaR!h1+ːx \Yw~_lO ZCNZ!A~` ~F||]km>/)5R?ط]uyS +&&_VeFy4\M0NCmP1W:R,g2O& xw\lUv'D6m"UUAdp:Nz8LKɜ$P H]cDW\%j_rZ V^v;}rE.FKU4YAQ(fɭ꪿_"% ^P\p5pH#w7(*t%I}OEZ? ߥ(0 RkwpqLݥOdt5Y-[ʪ9 zYtvqέj8aC˔vFB($ A=u,+$k=0X|I"NWAh8["%Rh>S} l5fðRo'g+!r¿_w b8E!珔UbѢZ'Z'QJΰXV8J'Z !%֓FD Ǝ%N,8^#1D]v|T!}㸪~6nv#sV[j{@8 ,33uEjz|~0K0<^]Q}ҠV0ݞt`ٰ&Jp ~E1-w9;t2m>9'6 l/sF)W7ntF)YFIƿLQ_5`twTbbO`P۩<ܥBݱ6 Eʞ|+"rm3r(X 6’_+ E܅mQub l{_&j-CCLdst/.0=FRjcn8ɚ$nfŶK=oƲ1C(ڝ1Pk0>-6fl66 qb<P+ _X HgCTkGK ʁ6JQ^Gl#6d ITt:>%c(ĊKV*DrwMDͬϬ($ɸ'5~2 \ Z3}S(?Y*kÍ k41_oh^mr=˼U'(Dqtm&E:}E"a| 烔vfA-`Ccuť qQ'+b`߈<`"Jg:-zi`<c. Zfď +Iٟ,cRY}N 9bʺDx |Y0uoQ 4;TNs4='}#w样~9B f>Cys7TBu@Cu7mQ&b\41θ%W)tݫvx-7d '2j=Ӟo컙2F*)3Ev:n]#E>]J]38@޻fV%t&> ԟfp<ݏS? #۞fH*xʭĩ6!˕_==>tUρ'v&זB#z`@Ŕq CUsg"idj#uFũ,-M \EIv(KEyb# U&m3wLF~L"ploA\&snAIwRt̵?G6f3- !SLRahJw<{ E9Y$Y ä`/&ѝ+st*t9[n=Gt Q(BTF5(Gq$~QB&T|vʏoLU렛Yz*:&JJtO+jy 5[WZvn!ZO7XR`dwDAhĴ fS0,^tipɯw`Of[s\PJGʹVih=;%9%|VK!X8LG)jt$^4`\t3OT:guȀ 83 yIy)${ⅺ^ Jlgt \PFrPo0ZLquЃu`/{"t2J]ĈW{\汲ȁKH2ցEJ~=+)XBH S4؉ԀjJ>e ertU1g`{hI\*J1N7OvI4uC@kFzccAqVP_B0fJ!]و=`.vSO]=͙VB+r)ko%{?N!]ZU֥-$>Bd9rZ6=Dys[sqEI R;F+櫻7NM)=l%ZgGshstFDye{xMV_RXmj :6rw0]mvfGRU!_X:>^}{|o[ީN}cՏc='^s& I@ȪU_Mr=FPcVY?a稴hIYS~ԠC "kP)~dQ <5r&AɣV<f ΂-Q3C O;)F}:3{e|7HOZ KagC)*Pl1bs My _>dg|fTJo`%=,W45Bh~Ǵ{a|tԀ= " HwwD4Q>׿N$ۊhYӛc 0*ON|4rAڸ#gKKVѬyU2ܒJeh*Oei]g$w ks"'Z2{'%r^e^_ؾ7zɌ0} =NWছwe q>xLɘX*fQ[mq}ݣ6)k hԧ:kcλ.E%$A$ :ј>u9ic LΟ#H"T=m npZ GI.~&4,XO/O)ʦ;*r}d>iR#Kҗ]5c4V!V,@3t[xH;]9&k{۽E=xIlWtm0ú䪣IOG&!R/wdz&.e6Hb~%={۝ڻ,?V&8է qqԸ'q[[.DbA4XU?*GA! БAmYŇS)_*V[@f=Y$#2*7aeQf8Fbw%8l=E3c,3x,$Mbh4`pӎe퇡xu 8/e{wg'N 5O}rӳ`%_U<"=π2G<DAwMY2]tllJP$c9fsGG`8u$3K-a6 "+fӊ,6rg<@2FCx?Z=ˀ#sph!_L?n޻{l#Qs%v\IR k_{V~/^-iqY1SP5[<+6im6Ŧ&߬*XZyJ)MsbYzGxܵ~t2 >Ow R|ZoDx,bQ+ۑ !,23QK3nL|0d mS|m$k4h $>wNWV4Y"5CFd١cZ0uiI-FSrʴRI{,,@$;4? fG(+_3-cJG>")R .'Zϳ"ÍɴP+Gr3";Ehi*S?ӷM/Ւ`U%S]uReSMb16ܩepfsŤH?}ɑV0ff*A!y e!3#.U&e_MKwbz_1#<$GYoQXhls%=1cD䏛 dXm 'a.O֨`1qFLu!vd'@ӑ5'Ca0<|N޻DQ 9*sxL sayQ)sFj!=d0!#zw<j v%:?QQX+UxvWd[/%YQ'Hw}3 հPcԙaAY _EUJf֫ɜ16L~[[VP(-ZZU7;GǴ-F_ *ap]:{tۭhns6{d,&wxj^v4Y>JLC3;z2Ec_2ty/?GKnS? :Z~ywHVjK,=`+%d9Q ts)4oMtNDuMc˭40VmEMp½j Ӈe'1s/>( vb#EG YqW@Qk]Ý퐓pz7Lirzwd'A)F|M!mi 㔧dFҟO? l+ jW~<ufn[d}B]p-{oc{j*;<8e/zYf(_O^++|Z׶amw趒t*7`&{y)SjA;>[MOd>Clz顭/( HFdu}~e̖{m9OP_90i(C[!ϗ^عPTFWPt|\9E92a6S$:P>|QZ2 w2+@{W{@9Gp-*}/~o84ړHQhhl( bYi<%~-ĹS?V@6”(ulu'Y% MtC5^;W2b`('`vHٱ#\ioԑ+!pc;Ù[$6dC _lH;L?~;c$bBB0(~񑻲\`-.1o@_NF–?+8% m {yd[yڍaN?VY?x$l j%c\껲c W; %:ۨU?0 ZqF8]z꬟|XՠnNiU'a5%ZH\(G9l)RANZDh:7ahFEGVg0˲)tvYvQ.l 1_4Ȩ\Wq)(g7$\@^ߙ=Zvs QtY?>螀~.bY[a}ojWI2Kb2ꪼT8u+,cDB@$*PjV..tD5Q$=A9~k).߷kD(_p![$CKJkit %_ uFs;!tC&${Ql&Z|<8v/)>>qZOΗ~bE򿑠8tu{-98`Ld. Mɔ@rUZci}Dhtx? l0T="*OP><泫ϝS=9SJ3]"?0= + DSA1ٳ֮%ظ4dl Lޣd;Ffdt=EJ́Q .5S7dc"l |GzJyVtiU3b;(S2+*]Sgk;~`Je=&l"Y .nܤS  #a }萧+`j HoaK5 sbOYMVK6BɲpJb+p/]):aemx#VSe&sU tx; 6/GDvTѣ+#C_c #bPHX[??"yH Q[m؜Xx|:>E:\12lP͍OxC/XO3#6USO(lú8iNҘ,E sE1es xq򽘑שnm%✹b+O!"Q8zs]*&}<\-d|19 /u' F/ubIsI![?9k/G$$OӌiK%7Ő nP|rĖزP97e?ZA?pCPKSIyi-4MBpJ27~..y{#C -"*m=A㶖45+zlQ gʆΨ^df!Q6Aă ;yyEvPòwV\ن3k1h D=>|*H?H^-vCZOȡq; E)45})q|6a /'D+؁z3b{32<&:f ȉRfA{YZJ89yɠ.\&H*?0PtO\U~+]9_0 ~ݴH ?v iǯ+!3@ĸh o{=^)J0 KKAJ{?c.{ 4,d;wFrb]۞rg`-:z+Oءc,%<:a3Eܖ_p/VViGw[KG-Pu@qty$&9X]e`?#+}皕;}qϺdsل ߭`>Y&̙OՆ> Y5 *lSi.{ γ0?7tet=Ű\4[CX,7(D;\LT gmbǬC'u~r{ LYzv!{e1 MUzcgjĂ eLCI`V'_)FW9DJtB4* q_pNɔ_5v2I+wLI?/V ɊDk^r|6R\e1L*miSF IH۲rHKf%hov0\@hO4AYRJ}cfUB~U%8R.KI i4Fc$=EiﶍM/@? s נ?&1#n!DB^wjx1u7?~0"krR_e,)$NFQYt{_l@g;cZJQܿ!lY6ykPBȽ_Tդkfs0T.0 4*F:L|3BF͗6yʇ}̃USGt҄/"v6\žM]K&G)gtۇ. $T/(jѫ﵃dHҸu< yxCfdI*lN4_&IֶsЛo7!2™alPPiC<(\;xҥCOn/r!>z6{/eNv6n5OvbdDzwrBGP2A!'=fX\*hsό8g (OOrw॒BkɋE͖Z3 w8V]WSʃ3gvrlѡU|;j=~a~`E)rI"m/36ab^mf%Nb ~㒙믽 f@XӍU`=~2C zlN 6 3 -? .WO\<> K mX~桓4=BW&nQ'2HFv拼鍰o/eGpȄGw{T z਄O2A. MǩdIX/iei1@;oyg_EsmD?73UrZ5R *?fGyjdyn .?=e9Yc3K!`&.1YlN[=pwlu0EªfMpǎ)3Șo<&$̑7j ߈m T!aZ%FHg}Qs2 :\|!_C-܂t!9[ԆH`U 愫rp6Ͱ9vbru f:Cg4L$*h?X´c$LBxIwSo/kk{aw/B#10f NB'ACڕ:{ZpSuֳ{n<;Gc줇N^IDU,W!#}// xd8dtcӢLr5BVZ[(/s+Lr}?:ʷhBlo]p|9h玾1't5;; aR.%NpOo+y&@hqVݚ0UľĦ3j*D2H37\!ZSR:Zsϯ(Qe IRh ;!+6A@k/}r_1?:!fH9ln*„>##tiS?P$Al xMu(owVp❞цS63(b1[AU^Ct?/{eZ-6AQ\bf%Rq'K+Gq4_ :V˹@K2 baNWEt m_jpj6tx|T:V'@37^LUR~[C,m;q&FVz|eKMtTau`tfJ[Ѓz~OQb\>zQ}QGpTSbrԤ =bqY ʹrAbP#5J!#ȵʊI3oYg̒><쥜Hm0oB9MN!b9H"X˃v`-,c9lir)!&JV9F J S|IҲ?ESu6GJ}5!=TO&4* }]hUVr^DW,Ah=R.젘4ذC[J;]Vo RJ) b3 .$g]3a]R-`ӋT`Bj it#{w>PtZh8#Rkb*x(xr,QNBy35չ5#8 " %5! [1RNn\")<#p'"3mwj̘oב giW;5E )=y+#Txp: TYL-7+>bԬ 润Uj(.4¨bn &|`4UQM.L[ʖW8 mDMjO'3OU諛}><Rge2ݑr};Y.{tsu*14_!Q¶cVϑcX3T6I}f4Z$׿~}@3WoMH!! ҉Ppl6kQ._=rEݟm) ֚7:&r``m(nkq l"oluWzěi'eBI5*VZش`-Sqy $J*b?i'qD:yּ7cCf*LC Դ> w!{(ߣǍh(C{寤D'G"⭼Ŵ)-kݧ!7yf;礿i&S瓗僯2IɠJ9zfׄzXqO\7)qqn1Xd;Q;n J ,o%Uad5u`3vCQNvc)H@#t0R #MzJ$9`a%~|fq̏4 f>KթRk8K t.g*MHR|eZ2F=8|,1@MTi `_$X/5Q Q{nЇ@,3 m[w]|<6ZR@ќ흺ED&oH*̐tG&b2N0xMX|$K̓)PIHpr9nm9MͪIɀ<.:SnDtAS}[v8dؾP: \l~(j.8)?O]>!?>{}r$v#,Bn: +demL0ʹ Iجc&=<)(:4g5pڹ)t ?5{r[[@ivv;Fo]lI?a@BUD^VӠI)GV8vܯ!MJAd>Տ8wLSG㻈f1re G_&@Fq';ߧ\iU2/ >qJl\J^'x_RC&cyvΐA¼NxXB6Z8piTE$ߔ ?MJ̤+dsj}˳3{%ה'gUSLf]~ZjU?—ciJ̼H}d\un7 K'D6hC/U 4-ML̒xB!DΟ⻮;e B=l䂵^6㟐}o5Τ9`B|=0˚5#8b`Tԕ#ƒMQ OPeNC,^+K҅W jQV޴nxRX)ijL~8<(&cuK7 ⴄ/s\]R騛K;+.&3v"1]xtdBJXb5BivbkCIϗ5F gϊBtmA"7e_g?n]~LzAzrC8OKs+$;'%f}24j۩)6]^|^gѸXj2'R[Rh- j̔4Bn]o~GUS_N}|:}se\e-y.cm|/~{L]Ӫ@fa]Z4%31I zNuv@Y9389tXH3>bٍf7 iq\(~z{~qz:)'O#s: a \mr- 3n~W0#ܛLN.mS#-- T9K*k{_=j(3cHL>?BqZZJK /A-ŒpF@ PPg!(FUǀ_Bamܱۤ4(dַUf"ji[{CFFcsލXS߇|ܭ.xCR݆3g3Tg\MKZ>: ޫX&6kN,-$No 'XI0 ,$iRb&z8Q{$`mB.^ћ*;4 H")taxi~ RRg g9lAv5<lx6冁(!:Z֪Kc7T:e/'X%a'0%#5 07N𿹎s9gvܖ*LW}iAL@8 类mê3bhPsIN@2a A{I'[S+TQ;94L"?!%dC—ImwgI% x7A- h 4o /;?+h%FAs[o9seB`˷Y}H<=?S3mJdB"5&{LlRw)I.M> -_J;W'TMj87Ct_3fD(5A:Bw<LfgSgm r!zoHE`DEuI cCyf딨YxFjBd"~{ \FO2ՎE xs 4vzq}C];Im(kQftl^qaȗ"tTv}"vci~E{@ng|<JrpͪCcXhI7hJ:2ɔECkфAD_Ҵ}՚H Bq|w7۱ dx>صkN`M)">gOn.l38@== $aGa P|B 3~Qh0_Lf}g`- 93u۱ڄa ׼ ֲ}9]a-wph сDCJݷ/ m9R2#Q-asjf; ǁeXdh}P&` 쀥GgQoف=eTyW] P&u@ۃJf3D -rS aET>ǫԃu 'Q M,r}éMUlϠ܈LiP GkQ6 ) lxwx ` ǹM"@Z}ѯJJ"Z3'.n o;ʈo[@|ʼnECJ6()几@~@4!^CrS!h68xoW{ iC8i-Sm %T5e)r'0jr'nTi23WKTxcAW-Tj`ϭ[fbFL8";) reL4">NOlEp;K [/ ~5\.nT)1B&ώCPj [wwRqgy&洞Lŵz~ {"'.ZB;s'N>UWk@c _QTy(Ae]\pzjf>DqE@Bjy9K:ZM>6a\Et9WOzV_@}XI6>2ia0xȦܜtkhPvE6QU]3AzN8NUWd$\j(™6ILFڀ1m:0/o0LƬ8A$ DֲO0 B=QyMz\ZwM)F}\j=%e'@f]x;WL/p0H+ :qK4~~>'R:͡9In n:j!s_ rx;]՞?Jˇ,~/=c?ם͢*v=4%8u13riUƎM?<Ѯ (T|&~ªy mUt] b>- 1`S|h$*T։G5I(yC"# jy2Pѧcp P$ݾwJ'XN}z !P&G:J:v-t% r̉aKDzd[Aۤ&U$ LB>`X|ݎH4mj&s*1q{dE:C,~t~f1=x&}^|ޠ2@/lUJ,3uTGT߻oܪRb ߾cxru_YH'ɖ R40fV~k~ /64<<7GV 4n=E+0@drgߒcM㌭p9NF|5Hm\; %##`z y|k._Q$y=LT_8,}87=XsPEY%UavR $a'Ư280o<+3y>!V$S^<ԙbkS<ʸuL94ir+)tDAL w.~{ O*d/^OljLT[0D<'ęw$"u=3J`,[UMRC^y` F=5iy?G]0b;Ks+W_@`ӺQآcr ^LVT^^ϖcm,-gg'/pd`|yNlF!< _X~>I [-{+)zETJg#0ɵ|?SjRД#s%X+!|isBJG x^7G 39?ɌGd6/EQىf}Յk5?k炚Վk٩Tu[e1w鉠4stY[%A^/7GvK 9?|]ׇR&.%=g'_M<546_:" +[V#Q !~1}ļ]њ m m౴˟XE2`g|VMVu&+L9EqR|ytr,eŒ BT,1c.Gy=J!6j]p`bH7B]8~yPlBx"g2m n1!" 8 \;oV8| WoW>'-6EB0Mၦ6v #GÂ$i5ƃU:ie>}de}b¡i̓$KJg<ܬX;bu)+&rՋ9U%$J?̈́Q8+*]9e(ul'RA=fnI>{Q \)-AN<9/`qP9{ӊΠv,3ʒk8JqZp`ce5I1(yw#f HX(C6rtyMG;?oҮl,;$u0U:EɕZ9)>~-[at'ζ~{#vU58K,}۲Z?ތ`!q5[UǝB?7ylhAf_2 RӪx> 0.FXfGZ'FxUx'._.=~SmMx~$RŶ0ӒBZ ÙXM KT8=> UW \q 5$^)U>C؏SyVrhLMW^J$ VmSW[ɔVs?\f,'0Bէ@d|HÀKX X:.V_+Պq /&IM>t逆ca{Ou~zaUeK~<8=H#B9NeWV\E(A|FI|G1%S}HJ*ȕNʭA1TY,|.,—MG%Wke=pDL18}j쩬I剻^W;n&˷rŠ#E Y9O)()éy"eF$]X.7?ghOT5ޓtt_.^~auSNftsIUqAd}r|kYv- ea!uHˣ mR.PڇlK.d/-#VAnID8-}04a&c H%ECQ6['Xxm)\NybyGcw/eE~=Ul7U)l 8i;d=!B5LF[G!ֶ]J/m\P: uא̺7.ݴSqd[(潗_ 4%4V B;8{ay)zSQb 179vk{A$h _DYr/R e̶ɀ(}Mzwhui& 7xF&9($E(&z8o!prgBZuc vn @3tȊAxyS-xB"emԫm08^8xlFǣio-"ŷ'3! ݮMʕ.Kw*@Kp[.S  PJN,: jh  |i>[zTP0u3:^mnj( wWV)`6TrX8̤;+Tހ>I pN^ jSN2TҕX+sxjN 8$.SM9 ߭s@bkWsxD2;̗P`m+;o6 q{?[e·$s~b:4õfzEm_4JQof&k Z,U3n_b%g;\b8rbܲz&8 ?Gc CFk[o3]ސ/2˙`-Ca xby]Z֘Bg`nbEPۍ*`aw㦣вKV7d/LTޒ `O?SE܉Y0/WKYy~3D4A[3gt/G[[WSaMAg$3PxuI`M(68.x7ϥf1QOo}=UA22տmN'a7bò,`u {PɟM\)ZIj8I MQ$c(?QNVEԧ 4'dE[_x>>tͥ>0Ō#bdH%HI 2XkճNKڐ]s`1Qߑ25NzW c?SƜիM?ZwzةoN!}>MN&)&ß=a}z8ɌĴg9ͩm 4;7]y\-qscyBv(V^0T8*6\Kc n__I4 =g|;7癧bXphID=K)Avl99 w+Dz-?W ro3/S:.ɇx#(2q._'xۛ .Uvc=4$N3id}wJF4.!Crq5 }_mQsf˄\OdLY>:KC/\G21Ӯʿ7TTz8Ɛ|YkMdS+x(Hn`sD@X&ǾbrS_~9}44"L__3b'uPe[ˁC爍1&3/ҵUlR2oc{, m,?^Y9^啄(ᛖC`"Y2QghUjv+h%G"rq&unƅZqu^,̮˨edO\`jq:6iVmKX _i .UͷΚ޺?nt=ZlYiJT'3iueDu쬑FM߅N iB4!fC4j"l*槍L2 ; f0vk`0`ak{b8"T ]b*%gzXw,VC2l/'.<0dijJA_U wj<) Ю6Q9`QWx@%`iN;.G3A)>hj$y/o@ReHvƿK_#оK!ohnt8d3 Y>9i'`}uP>|\ y^o!`m6c?=QabѦJMD;r!ޖ{9~2~YQ'7Qщ61Jtɰ)آچ;my4(f^`?k䏈uN4󹝇4OK$y.fk$Gc;xx0Zu 1 C*R2֓AWX_1(oϛ % vnlC\σݳކ7e\*0`1 |FC=S !4Q<7HUyWfm-Qi@b.=x rT/A+ڒY0X)AJ_[EMG^m lYoER}Ԋ.}!sQTM32vO[#W9bTGU4(dۛUq65?l3 5 +a@lɱԵ(?-9$YkŲS䯐GG*l4YP']G}DY{ܭe>ZWVe MЈmMJ e%,\FF4 uJ6%CD& EЙAz`W5aC dR~O"8%z |뙲Dh53@*N΋荺k@e%DjdA'j}ѓiu9.@}FN}Kĸ/?׶Rwhc}oz)kVkgݾ;lp%ŭ!mAZA$zE1$8f4%x o1-?^=.vVC]\$fw_2H”}߉i~W tfP|0<t]"ʗ ]D1OJlɗZI1tWq!LT|;&`"|C¶aΓz 9r6ms F91LO m4W T!~uMJ7+ڨYV(A,;`qBQ8= `LΪI`D57>oύWEJvz&$:'!"|]P@`Otq@nRuWJwnPh@2ʯ X|B2 i["d-:`G!՞AjGœz 7VJF󃞦/Y5\̃.rH5XxlRAyKgd}g RR eHg65CB{.:n7qzt2٨xùaZ>υC׼m9iﭑuÎǧ "0 lFZmN/ 23CWL` gF_l[t?rN[5;1m_Ṉ́\b1H+Wn7R2UuԙߛNZ!pc =Y& a*!PhtDY#]1w+2V.' pe >!tfUK|T@XŤ>3M_wùYp9 =g QXh,䂜WRTUsQ{tx7A-=ixٵtԚ@T`.7vڽ_7D:8ϙhOdl\[E4%2 YLC2.G2T\ ޯ|vGd $SQ+孫L˿na]RCϪ3O 4|^B'n}zD:O~Xtwz;LaXn )I' 9k|D1L38kϦ3D0SKsXR6+iJ J8QMIjT)_|ԁy9Уw'A9x q]2Ctn)5Sc[x2(bus1˟C x{Ņr."En64Ѫx>7@hc3w*v/`Yt4ʳk*Q_j/\YBvzڜK\Xg abKyŝ]A A Jy!c=SSGͻՇ={D]eڴNB,QXN! :s_" BNMl̟7?I-Lc/x4ρ$^a:bs'V}:BHZ[*z]2u7p(kEDBIaJeIk*3Q \ ]Gq^kݢB.A%*\ QKJʀö@ҋΪ yW68tÚ2D\RԆs`x&i5K3#=yІO9[Z{\\5UH3]yǽgz懆vRsgdzu&%QUպIbPҶ~S6 2MGcUrjVt5wId]|L/BoW*'Q)OE Gg{=$kj'TD0~wq剟k虸kP_P d%j:@l!ߗ/7ʹyՉ\9D*J+X -^דG/_bq+@[kGB˽1iK5L|?S6A>ig'X \uN*z0 X )=㑴bi2{t[fAi Jڤ YM_%ÿT:{}7b_n U$[L8"N񋑐{c`=;9E"%!-ND3AD͟1WqDW@m\c @J,n`gQ{69p?ٝ1W(иa]G"sD?_ ]k&?!͉|R};:55X3h'++}@w\,z355]YGUyE/q?.^˱,L&Iuy?~IoC\Ƽo[-6so#eX\!["ΰѹߔR}ߘ`M*g 3V>UIX4;zzKQt;VBiF%'79j!0|f!g W&hMjHtj}!殱H-Uz]G#2 @°4[yKOh'; ЇM1D=8V/{ODܚ -4Y%S*3oe,-afnX⨊}?2)^<q9ݫM%BZ̀X4Ԕ#űܬf[Z Ì gfش=g@8gt!= ZB\]sQR~ NQߧ8~"T$d@ZcdEKv(0ʽmaG&)!@<5{z\%j#"qHnztJ9J/F5SOΰr] C<`" pQII-~M2zz/JYȻdyP9gVie"08t#ӓcko_K 0#ȼ /Hdꐆ+ۙcX*>yA'ȝm<7VxbTk2]+ync؋75grqea7 T^]e]w0JQȤ"*9vuƱ=BM/ ;#W H:N ?BO ~*>lVT$! b= K#VrfG<|d{ŭǤPܑ%Qzz u-h[[Q J}O1>rQ] /| [&pbm׊ք]Z7fe5y/c?iE.9I|(jvks|Խ;PW)EsخЮZN X}\[>dvۇRь ASs:nTJxK]3 T.liTPxGH۸"g2Vϗ" ~=r,7F:?,4u9OvE@~Jfx߽zmRkm<>2̌J5qo,,vP0e9u[ ފ .'p/'f֗g51P$@`t}MNm@>w#y"8Y)͘K.Ϛr& D2yLF; 5 ~,cxK1~k(+gCh?5ԯ$ zvtJrXQi9aHٍ`DRklKêy)o@=\*R[la29OHڴags%4X>7nS4)Y=՞p]J{O mK1 V̕~;/IA ϑiZΫhFnp&+,pZthCDrY>ʏu2/~֦yy_OHO@vEʜ5Zia0@V؁;hy<2x&@(Wۄ{ Fૠgru7e=8SҮ+j3#Y̬ mހloo܊P7}L/,.!5 dU:]hR MJqd0&:qTΫ?bp;We/ؐf[`ˈN bIـb}Ϡ\=IR(U;B!;:L{Ͼ"oxPԬ=&83{HiN@>%4vS}Np(4!\7ńHpƄG7w\+Eڄ9+;:m-u0z#Ph[T̑ZΫpX<ˢ[)~Isܑc5P4 >+&}Nn$ Lcj]GBprk8ᾘMF!_ȷмS{Q̚FR oÀ(.u16l ϨSvA.,zm ؖQEs`R?!e%K8]`&[IieFN83LK\.yn3 T XBe]WxkM*줠 &A:nr%JL` W)j4a\WΡ> ,O?p F A 󩲈6i({[C'wlOnjsvTA (yŐ$ZIjVVQpь Of%< 7FZd%20~OL.#$?kfwpm-p޹gwg#/;x]k1yf/͡<|G+B "{@"IdCQWDYŽUg|6`^п>֜80 E>|:2c ǭ R&wsn"ȔwUF Y``2k8SN+i±6|[3p"~0hz!{mB[M`A#.YPU\l/&8B3r̵"^FC<~n\vN_, "r hΪ5 ӽ}i!Gq=b{Qr%@ =m2i,h!2a<‹UG@[3 |D [9Bw5ĩ"\ s} ]oVSkIFԧƂ*ٚspSr"e>#W뜞֨ C?d&[r0%`r.Gq. ց.]X}POɸU TdZAYc| .z]? rjf;e{jaX}&KU W%2A枑(Rg+<Rv$R_$Ǜ(ٵ3Io.,21!6C?Zi޷3FvQg \L*8YJlXR{Y'tuLy4E2{JGMrc< WEEp'ʣi)E&dTUR^?kzT}ȯ`Ŕ= %`  %|hHA&xJ斵P+nvI<.ab{Y,R^RJlL=?%1Ka^GhO헅7؋;1|>ԅ=H-:aYSm9z i za47c^#c"=t(mCYi72Tۻf͋A"F_C}k9]Ŏ `9#Do cL/̪$g浇ZO Q@ ѽ}`<'WlT냷¥ڽ(BͭMEmIkīC{c3{rC~1N L)veVɁ|@݂KHCVX Ӂʥmp3 7[՛QA(b@(89,mDŊ՞&7om08tx6V G[K⟢,)!it)#r)n,)?6;fa3)r؟Y=n (˥K@hG!ϾE%ri>5r5cEA^)hhGן2]w LiS&V߭g@FdeivK]s37iʆ7E'g '|e6I>`KTw}IGu0dAc^# uZ;#wXZjgc!BNlj C??1Uڒ ~lgo&E0xcdnLH-`4 Lԃ[f?̤' թUʏ5j@۾sU+]sj?Tlζx_{t1v֢ :ާL)Cb&"WϰMLQҽ-&G[:{uɭG"\^בwKM(WKQw6}#Lf}~wZ ОZ:5"bׇ(ZV0wj=8E3& WC`tN)9p(jS~Xj1*э5bY}zZP=[H$In΅i2^'܏#~Ybt^V?=}k* +!S<$B4]c!)?h'1=6lU4|9J~5SX1P$i/3SAB?G^}^aR!"*\L~sIKSكysRiN peiY ҷ/bNYq7%qI0x * d]*$uʜ}(D=CB7CP?Y>6v(h#a8tI^z1]\%_g`䩀IHdNR$/;-CdjJK<&e.U{Hvɾ_6CoQw-^;qy26l/Wyۭ*8wDAPI9ͽlO̯aM۴);{)hJ][v3;T{qF팧md mS|.=bۍbSσ6ʼnJ8:Y*)yrlTR~204HֆCa.2*s5j9X}O(ӒC=yKΐy8rrnDKV HC G,3 h;]R8@R~zQ؞.˩\p^;[ܭ THn7_G# .DH[0s:L8'(K. J&yTmOB@ecpv~o%k ܗ&:`~HLY{x0[xk%BL)j%9HC>q-C` dg6ݺ:2&128g}]vfq:,@K%fHz3&ҜJ1 -g\2_ԋMOS3J|_4ج6YG 3CA3"_@w 6.xG>\H\cy$ڇmeNpڌ1xmW9;Cu4h6k񧳲lc%~B-|-,M~?guI[F#'LH$_nt5\aNQ8Twr Y18-N}T`ڭ]p]fG慜&d0G駓F7TS͆x-AA -e;PrJ[3ă,@zl,vS#B2ܻ&mi͌O˃gǶĝZ_C$yY;6s4Fcl20gϱ[z}Nz|_s9gi'0COV=)GmS{kcv:uLH+0;l;p]E,X$-̔{=a1H8 &+rE@lnFLv;e! Ԉ{/ [OȮ0X{n|ܞTԸi^̒ @ p{v<^<%@3R$#0j䱦xdz4>'{;Oؒ'Xb6ɝkk8?onBpwܼ mABz@V71cbºSwМlj {ϱ#xP:[ 4ak=ӊO6ݩ M( |65553bebso#ymRz;- Gm]C]Թz\o;5VԦ)drժ\WafR ܀[|.CJUjt3u `:ٸAW8&r%Vr>Hxrq_x^k0L>ᮚEiLb!0*0Eӗ/_7uef @v;_u&?&a*==]S@ E=r,WNUPDA$<ٷMwE2{& ws8n$>6?ijMeMXjPY8Xaҭ&\xU9N>[E7oi~}"+ {>%썧PX.#dםɚyUXT.앪 0Bfbo4{smw xrbd얤ۗq댣 pOƁ)ic+crD$9Ke:. Nu}f.*N6eAkxnwQש-D;BwŨJ+YW|a֏Zs5IFg4-"\Xiku/@A&7]*#10g JmD_WZ":~G]BM6+GHe%] V-$oH\O⚁G8A$Os)G/F݈(#^zlPoK[ūnI9M=m͒I[oٴhC`sV.)[a^V>NF t9Ȓͳm.KB-ΐ^v{Q ȇ:YE@#>Hqt3kxx,_+*-/ @?!UW/-_Hfͭk w,_KOdW=Q֢ΝŸ9CbI,4Z*ìIU@zO颸d<{3/x0 >r0Y cujۤsd _Ĵ2N0+DY!k Y^GX-> e0`㴟,X:!PŢ|,hހW%K ?Nb7p`bs*(/>'h ik6Ua&ĕqD[0fwr\'gySv, Jx4i}E,@9) ]!>FIQ" dGfN<)YIVЉ ~'H2 {i&g(,'p7-:TƱawu|\h&)Z-`С)"{)5Oe~+9hAczpZkSR SYQC fߝBXG(¦u4,~XzÝگ#w_ks0_4=߸)^y$S_/ECfrM4(8G0#nfU@ l06h$Ypt} swn{_FX|yOF8 WNG- [+֞1(1ZLr3vs~-5Rk,1HUg̈́fז0a&c*>gck]cڗ9;DRH8[^{"tch+[:sK԰f >iRڝï{d\ֵ*6@9;/!#u u3T bMa vsR( Ӂp!+DGOyݷPE)NIsB=!9ls  <|ܟe.fU'kD5݊-OxJuRQTJZP7$_zXrs{t/Udr2D)˳a"Des#@~pkqdxq0/ΎzGBڽ{rsABebKKuCc9GM,aӿ]u QcST8DU62(-j@S$J n,'X0 N^Sg/v]*a4[$O|֎3璧nӮ VsYԬu*g.9p]Q'02/E%X9L5F{rd9jq䍭&7Ԛ$^}W,.>)a&fA&%`\c:?ZЅj# 9"mpp(-3탗^d`+yg? AC0 է!?V ꜙ8 ]$KF om!S">1j_ ,4N}a6FM,CgqN)m;0[Jdvh[Pn ߡ/A{u^yd Bd,vk,!*"{/f(Ri|=gqh'M 6Bagt.Wd(1b1$h& =GSo56ܠ$M( b7K_?R hB;wdB??7(CGq"n] ]شs%; Rdž4ŽIOWkl'AQmhQTIW$mj/9)Ŗ` ][DZ5 '̷sξ ;2 ixkM;3ܫ'?3v/.{9zy`Wl'Ib[rBA?OME.r#Euz}PYKދ:FRlͦ.WM.ЍM4pr+?D;Clɡ1` mΎTML+*KMjזyR0`f2eఎ\ Bx,eCzQ4a?}D(Z QƶVfWW [ǔZVHX(Y[W%|>51sE4r6VB01lpªIWYHw|+-Ai7d~q{#:"uFy)~p{Ipr" DT4j,Aғm4gwI{™ Uq %ή #շoF3<]Rr/HG| G7&FHqw3ۚ6gSЄ$lRaESԇ!Y> . Fkz%AˊQ~S\UH?p%6i˂)\޶DV;s|vr߁\`IEqƠH;Ԕ\Ne![A|L[3TY~A2qh~(GDvw^autG`['NRQN])]}? _{QUHdtI2_iFRܫU:5m18$΁f2TgAH6ո'ޟ&g7 Fjjn-޾0`lAxTuP@6?=CvI aKul n'ݷoEZHPqBW{@EJ*5V%q|"rV+q<63y\G_&qW]: 1LRw@)U,5ZH#Al %j^Ykl I|L,&mbQj ԙV#b:#|ʼn$?ЎrOqDpd`uh8>FOieSUBI*y(ǖj0Rǫ (Ov8_6kWꝓX`_~fȃ)P( ` YTc|P9=ET 1Q\k/زő3 p!f@B1vZ37-خRPqNEla:`^=ʵ'.HN̾*"B;\McxZSdδS@ʟhF?J(n웈oVe*q:4-Tu.RP# 2d۔>K:hx9Cl;$L>W4HRe~;-tˌcFkX C;[`OYj4uӱ%Sy?ԑVœ:yzfk;= -6Lxc?-?\@Wk&-PP"$'9 8U 6mɛ҂LVwƿo3#u11,y+2SkuΦa^e3J#*#"zAr_&~&6XY0# ))čsXݩ!Lܭ96,cZ2># P%4P(s/USȩ4jsnjvW(z$ rߴZa\\=-ajbQ"b ;n_,$*0A5 uV["C6Ovz:bE6OB#|or89za+lԈ`{%,`J fnJźڂ.SSY6^=4O3Ahw=eĔ8 YNZt>mYJ|X(kˆ/G+R@8 )emp0f)aLblaxBy7@ 4B:y (-a uYߢ~v|~[2ۊE>|FEjEnk1aYɺ('2%- !viM]s>KW{֜c MGN=uhAnw։u.>%UC8 C "duSGvcֲ%>?w rK)IM麣mr]vi˙EqH"ЦR:LUC-ӚyeܻYSx(:EaPj8yz-WBH-_& MiR'U1ayBq)u%՛jf0voR)k%Ygf?wHη~Y:nDfPTENA7`X5NR]vajJɳ]4!|XDpl P8V#2eBZ ~vD9aqo*!vj{. V0\+yo%HS/ ulݮZdE ovY(~P(mjdLW)8LguNj#16φvpO v?gܒ)e񶨧.j,?4Hd,QZ> %l25H5Kdg`wObd̝ZGK^UZIذ1 {dUx54iR}G\zEbE9@d]hC϶)g QO 0?/Dp{H̦l۫$ #TE`f&i4>{.]uQ!uTPsx?UgEΦKVQ&ܥ8R,X;Gx, = I|"QWʨNx3H5c޶<޾&Ux* 5z+7ޗgxr5$(!)4QOC)}hU>xmBccEsuT+{^GCRfLxsa9%F0 +,+c4)gߧ[zڰ ew!Ο] -*D//F~kNתօr#yHJ/?m^[TfЂ,@uI" `t)Oޓ 8.Ōc#TWm 3uylZS=b+W 3JY-Bv'eG9밿׮d ~SyQ|ĩ ƔOJ-dv4?؁&IgIYQ:-GO ^gh]5?TK?Z=RIty aBBXWxOfe\T6RoJSi[e-$=-Qj"f`&,c]?Vxo|[_K_3:1?˷Dn2YLEsWcGB; &:h!^Wk(S%.-l֘Sc@\oTL1ǴG-uH`D9 9a{Gp#:n8 n`NnڬI=$荤)%pw(OB]Ȋ_Q3mDkm U7IDpg)XjwT8D篃OӅ*.'(m5>#v9nqf+E *} d3ZxTjVt]:1fW|͙2ݜn0xS{V,cXjk,J3z5(q̺}nJ a=Q@8EQy NvmL-SB72ĵvI_$L^xfM1xZǻ@/i{T/#M鿝Gl-2jX|C- dCjZ-w K_JU9QO2 s.{ Q&0rszJ0oˌմBU*!| r?Fz<P!3:gW ~̲^z3N<./Tqú^N_}!$)\|G\1<&&B0K/oFo8D1‡֯PU -|ŠZ7 J]KnK)8H?IPtEqce^9ϵ 0R3m#n|3&|dFiB.դP4KWy35n1k"IS zZosfLҌa>TP•'h<]",ҩkyk: 58S "]LսX i{/Z1"[4b}^*&DGU%}H,~rHT\߅x> 'nNhO$`&KeiZ[ST ğD`BGn0J3k?J61|$;t"XX&Z|4GQ͖7$>K,Uք= 9[H;Ҹoisێ5l׽{?2h`(=%!o^L;Kw^6 1ϿL u˓'"C d@h+4[T`#|3p8.E+sG6;xK"AcL FOܲdOBtXY;!@{ڪSF;?MPq=ţ3AUwMe5soxE׺f GGk¨{c^ qN.t,}{(e6VS컎ԇhWcq y9*B#G E&V8G^r¨G1׾{YGCgr^0Ҷ$c6AKt1g";-* 3CRbyfj?ᕆLM^^F#(0mv yۍtR@Q1ZS/7tfAVs.w93N"x˅%xlfZmpl!} F_zCg5=kRL)Y U' " 7] 23 P<4o9ȻfzC?aN \dQt3ŝ!4'l:GG3} P4o1ӺEn(ɐ }Y˔#0o ?+*4: [[W" . ?x$tRLN1䨗t3Bu6}ܪbϖҪrmhk͑?s0xTWZھܐ ){3bN3'zl~ߺ6#fLujx£#>đ.bn~ybul<;]~!犒MQTIre ..3F|`eh99׼ɀ5V/Sxxg0Mg }*nPݓfnKlbw7~"|<}1$Z&} #weSY_$bť=8&hwS4AYG¡x󴀸wΖfb0 w]ZB7"z42;hg !&P N ο3ڬK ?{CtЏBbo9xtGC7Pd.CBs*,PHDM`7 č [ @Dҳ!pk+h@lS:PtoFGlhMU_7wۗM;{{kޣd^Ou,5_U\Q^hTM(Öϭxd5- T0p0wzr},.̷NQB_Hb ^dFd6M '2'3"%B%nw1Z/jI]ǯi+і*u6Zb.OlZd-@ A/êJFpz !I,4? 5߳[ը٪86*Xc7 n=ՈҶ@kL9@ ?ԥ&C d+ӈɂ. Nտi 9#ѝ%x g!nː{]!4`V$8e7M+0o W)ˤXMc #VgߎR'6Aaơ 'ʹi/5&1z/L\ž!ύced6dy-D$x"k)t(`޹kV1wuG9*M\us}+QD&m?>ll47|( /k4-h-GhPLJu%tc.g"E,*Ѩ:jک8[X5m:rA0j7:u)j% kEɔrgf|ܝ ؿQC-UJ+R<" Rw}z&T-xhGqy ("C xZ]@/[(t&3ϜkQ 8tbZfbHհbO#uՄp+ޗ׼FעPvr)P{]^S%eΉ|pE"ρԉ![K r;(^VL&O!*mub$w3N2Pߘ/SF8΀?`TKۄ)UhodF}@E]Xu'dK) {pwh`-N}fkn{},~G,ܶ:J\ݕQf]UH3#Kls†% "/,v b Iw+%~gݩHltuƙuа-s)R_F=;} [~U!DrTFp_z_ڎC5<,~{b%vE?%aUf^ z llGYGzhW'0E}²_ Z08]"*)$q4% 6oKy@;oIF D˰e޺:jSF9 fm3'*UsQ)pރEUy}E/QMHbteE#r5 ϹC.^#`L=eA5jdAs}*7Aϫ`P#XyS /@ OUBE4GF.g< cZ'JPR0FZ\~QKݝwa4Đw=hMMI( c 6]..ԇ.TCXKr\ D@ -BSFH r"yaJ2Eƕj_?Omr) Lx:}6*_撝 R.3ߑ[&Ƈu&̀zEU9|kZ^CCŸTTZgj,.'Qr#.9@qF_G475}l䜏,xig2Gc)vn-=e!C`Ij0ȅqu)^G9ZO+)Y܈}Pҵ0Ik4_A7V$9(eϰ&zER.SͦK whH08hG5SNE8QK_*$O/ fo%Ŕb"^2Fn6p|h BbE @$ kpdnУ3UUxs]^:z\bz'2+(7F 2%id*c q=Y)1.˥DTEğ˪=12.Z (>r#j!A׾KNx6kQg#lW:vZ?KV@MVӷLB /3ᮈnrp) XЍ2gmy!ح< SCۦw*cN-33S1*+69H6]tuZ\@aLO=Ah}Lx)B}UL#N.$T 䚖\6m18i*7lR>\Fk''U*دo`ú!4Tb 'Vh`ȌGuu-s&f:3V;БTAz_v5 / vBe|B%a;`7ۡ, uiPLl @gx6E?1Qk(mw3 D7vY#N $sK1#l9Lgk_K0nz_xl8/`^31#d65ɑx|r^ zë$?ES7ʕ/3u_7Zʼn--;UO q?~]me}#05ZmJ+e^50ygO3D2u(̬~{딒&TIYYשs/WBuc-*X) ,7<)OH.,uInVCۻ>6Yf3UOo؅[|_$ ~*`Zg%*j΂}Y?0UiY;Nfݴ1Y%`H2&B}|Ur{.:!ΔȽpu$ַ;9.0,Ut~Hs҇I@%V%tGqIapg"*)4T-  lk쬯gҢe9I:֯P;.3>FDOoق"]5o|ָg*]*I)Dz\[.$J$ȞYh~1ٶ*-l/C!!Z,hPF'b9BRv>X+*D3j_](,RY[,)xL-Ckrl'HcwiBl*f= Eϣ;XO1Mt1mt뾇k? $ <{+1'>pt%Y8?F߉y $P|;uɻ5v5T.40so&}w$o`ƐjPc%To WVr(: èDN$b]Ԍe3 `mÓȵ01*M#CRٓHE~`:"s غ=e獮hNO_| y˟6n *\'L [uo0:;A3N%E;) MK/F8.V6_,eϮ~ }bFȀbSfGu)֩,-]g5#QJލ.bN*1 )*U ʝӬ v`>pwΎu ۘ@cCV uE6898S)Vnaf"ӧ \ W{RKz-&`qs_8SybzPoy-5#M{$jFINcY=82HgºdqHnqU^Ҍ0GQqIy+BJY=SgU =j$>尓dXnIj/'Kz~?;?-cI$U3(^[{EP@&c`Q,C*ŭ}zrBGwΙ%SF-FhIjo7 h5u#Ƚ\>GV |\ ;16CAEaz͹\(Kzhݵ#dUئn∄o\k;[إYS蹔8kxm[#j'XP<2jNkq`׺$m= UQ/N}m?A4gRAr'bfBv.BKgn r/x$¤֖8A ]{F>h̭%v߱y4̸oZ`־+fdՑv#n' =M} #*L׎̼ݳ ݚlAˌ),( 4by_qgކRin 2+aa}f{K, .+\ZȭIx&nc68NOf+U1}>9/8lp*OKp/w^ )pe&hD[DyxJeچReSS_P}ܓƘy)P9IqӾWdM)4 OWz+Ɖj:XF[⯺`\ʷtF+Nږ|v1EZ^WSL=)㼏mnU5xRPX+UpEЕIc>k UItBFLBd_ŀeEzȍyiEmg]\Ň㯠c"PcoTpuN|ȅ DL D ɕ*ϱ)43Td/$np<*xqye,[iIͥWI>\(*X#*Q $@C`1"p]bKDPU.u5ܐ9phM=79@5療^j*n +,O$Kd h 93'r^_ crS,wWzRi( [4J$qڦqDɾDo1Ӵ? "Ya~ _`B_JV$SЫ1ЃR_N{-čVɻ[2pI #JYANUO摦ж{L_RQfrty:w.X5_IDRɲD] 䞭-Ia2X"(2҅ՕL.n,KQk}.MKH2xV6[$G!9G/wۼۛ0fYYCӃZ+&;SsOjYOWB'$\\z8ɡǁ"ߦ!(8i3UAE "i B.RǍUt.jOquX[hbb;=w:}څ]ߏR*Fw..+;ڙ5RG,YyrwE)Fg #&QƸD h\:f5YbEobܐlg}|԰`O¼F r,DU͠%%w2`LrbƌyA4f37Eh1:h?2zy$QWGK|VDMB} N%CP-J,;52Be5G\4!3hf(>3hv8w ]Z3e)5RO026/}+yM .Ƭ.DU?Q\0%;[k3q;m$ńR&䟩hX:Zh> Ϭ;*(5#}׽wqTw~/@U[4orJ!Ro:!֣Lպ~`d=>-؝$Wʰ딡wo3500љVM`LQ/oPk92 ѩFԃiT:λw]r.'Us=u es?(u5O]ʅ5&׊n&?$UCv005dNMQV.pouLP1߁L#o~EqA]fhY :LC\1#7&ka%>;E\BiYp)[0˿p"۸"O7I_S#쁳*Mp%"n<&!Wgl~-@Ap $s!oU>ʁ4 !Ŷ--(ݾoHYBEFdGc[?Q"*U: Y ̓jкc"x=ůx2 X9&Ks>jxdlXNXj :o\qFu g~xY?;ꔐ_Oi#T"ih'ǡMe:ۆV*{dagn;g9BE'eDa`M6 W88 Oh~hQZ*3P);v^ʀO4PɦI>#AsDr%g ryDہBg>n*O+=ަsRJoNU쑤fyI1}#$Yē/~JыFmz ,^ܳ 7O L^R 9zTd\+٬ZQ`/䩪cL̷(O◄Q1%Z^E$+Lm]VIFх։R_/lU j6%ʊ,/g)[7[:/'VU2O+1MphҖ9NByFC%bvGHTy̍s-WƶD/G翗"\e4%Kӽ.>[v!'ۧ ?]CG$c+ʬܝܘ&ڳ8Fρ$&d<E{wg[F U9?~Fi<X,<#sE9ѐBb,r}5I-U)IIRRs=+thSD 67ۉYmp`_*Ǯ,L魾=GF_&Cg~[gnxU D-G`Aͧl_q? ӼۧÞtBn8 3>0Z- ~=Lp\.&bQiSjZ\(Y<TjсC<eEq:yrc,H>*3*#QE4IB_N 3MA7 "g*t;hĞ,޷B6\;pN ]X8Rƽ`?#2~†,t\62i5&묥FMPH\ $8aΙ"LSS5}$K̀!X~džպ w,ʴ"+3+ t2%7$~eg~ #V`J}C~6 a/adIϚ ˪ N3dNlG/p 5tv[үG8kg \=2usQ6(Ie0ޛl y{?€_M}* /JL=*+,$0Io7=1MͩvZD梹g{⛘h*jpV=n4GEہ,ZCXVo*\^x_GC͕8%<+{0э d\a, Cpy%:P,x@)8iQ}tPK’~r{- V8{)Mʭ t#=c$u4fa3nj'8_sG*4up8!,y#VI1,djmD=Jp,fdp6 ]Z8c9ŻyW0p7߅H{3.ռ=uGax#E<gN"]T(iƈ4ñ+ux," 4NKdȖ}bo m{{.puޗK( SQk۰khf#HK_R&q?,"*F٩R O%GNoLby]V[-9]H:1< 0 #6D}e ;TXpr܁VxJ> PnU4DBkZ&:aJg2pC"o$ ɢid$j9K:k'+9R-a) ?6n Yٮ7)b4fɫw1PhEK[6wYl@dش F\V^+xR>=rnR#SR? //=_;EuSy#M'-̽*.Y" 9k[ym"e8ECY w }P\Er"Ղ2|J1a%`{=Ak} pcpf?1ėziЎ-E>[2CHLR Lã< L+PЄPe~%j`?@o*Ple~ ),X x$cR)6nJW$UM؏|y ةAUU";~ C-2_ƎJA؄ XG@l@cX{3 'LA)4o¼yM\$c*Hg~x ѪOM~gw`ighmH]_n-[W+F3bخGƧ 8P< R$gi1F$Zuglϕ|1R.[)?s*-R떗3t- Gt~j~)]k"RY%RH(cD~G˿ӽU/ uJf<+.ͪh?_o|E%@gL'ʬ%UXI;Lxf< xIdFro{SQhCXC3?1o+ᅪyCnYa']6l)vVDGE ˜Tr^GK(`7l(h;3+9mv+ c HxL9RwoR_9rzpY>_D7H&Urw,_x?}9 2 `٥5% "|ʒd6lDvxFn{cX_X7"\\=w\Jb2!̀'${y\ٚg@otr)a7Ryu(h?-p?m؍b|B?FK@֢㻍W (+9x2bo']O *h[CG^%>Jp+efL¨s$ƴSId̈́7Aws"gq\A`R4q[`{ MtJi3Nmu}UTvm&%xr%&UN_ tO{(!;1A.+yX(iHywu]mV'NjA VGL"EZrJ=a)q `< 6j>zfLJAKhH㵌95|cBq6 ){єeՔ M\chǛ,,Օ݉+%g{"+TJW4m%[Y穇vNmJ,V9u(ͤP㭔S'.?x vF勤tIxyzCpF!ͻh3ၒZ|晈>TlUp7ba+B0B^*4$.{M!to#ה[O<-lїL뻄xϗR}ݽq@x(}; dZ~h'%~ebM Zf<~π;n U$D7:4m/|4aI#喼Ezemz=j(Ch#4]@Ј[?RDl=3O3IZԷ]6|qC|϶|1P |=J5 Y8?O0ƒE"NvQwPH(R rbc CfFT+H_ΕJ#Xf]E!#a5 ?!œ2"6X[Q/̀#R2VHL jpImL>ˊa/7J0xFEX"P +olݿ_ =xÌLF꬟ n/@J ;]{)ږ N5);ywm722}^Ou8BW FգӢiDNt sIqu>ElmfE$`D"-7WTqoD^`UIFt*(^"<5'Dǰjc%[s[cW*ruSXlEZq k@(gFG3gWeXr 3[|FFρ`}$$d  F)XP]BE Md+)}=Eu?w =6q~~a^5>o>7VUX+87,JInPЭ4N{-G B yFH]2,x_Ѭd"i j;3H #޳V)qD= 7qdϽ/|~5ijc$@jNpQ["cE5v '%rBJu aea9yHFkU:J̻FwB* E +=P;KDc?7uQK@jo7سt47ac>_> D}Q?09.  wzmXc-^!G QjXL*D1㠍mI%awG]iV„[PeZw`ޢ2[6IBs4T٨O".)H3jK p^d{w4莟G~1b-47$ACGWsfQ=/;%454L} uųD5=7t7Kq$^eXfJ8kOe"'iegB r,O<>Ldֽ&8|3dzBDF"@kIA``Q*Qxu0K$mرsC bl{9:0t?Z ÈX]%h{WtPYJ/H'ՉE~\g f?HriP) _h-=#:A5\e?%si{N86X2ˋ5 &L:*=k}p;H]w0,,>.2K>ɔ+vGݺFZQ vuHE\/$E3fipQ"6{ׅ2 lEpmcLwR R󝷯-[Vz`"M xuДS#gvAU8I_U٠ M Z5hгL'9f >'џM;T /i2 8 # r5J B;9cVe<I{m@BDt[l0c(?NG4 KjDMJgK>stR([F,pP'ĩ&'lpF.zu*".T:WW[}Ću\O,ކUKвzHdb}$umb$;TiĞVjIHs"trP;Ug/%69PP@m\.( o{(~7 U#Jy4/3xK0gԾOCl$f]3 Z/ƮX'ْ= NOL<_^OYw:wii(+lsF6ck33ZIɔZ5+l5; Ukw4Y,)jז4i= NQ46Wݖ^A]#})R.4 핢9S齧l|b,`P#m}̿6XJ˵Rϳƍ277MΝ Wl= vLM0XE`r0K+y"Ij&@oЄ,>sCEd`ez`-WL"!!jߦ5lf WJ䙷ހ.[B-EAlo<}%/g3))+M>o,2ZÎdFғHŨ8(&K”f.o'DhFJ6Ys̙|^ C+viBWu$zKFPvmE.*ow.$Ni(:53ࠃ02*[mS &h ux`D$OYm:~xasK:X*4!IqJy`5Bˊ,WАfi涥ôdpVD٭íN yP*cMLpsKٝv_.m7-q[Ԗ'eCr"tu5FD**9ZjZ UFi:;mw ^:v4)bHYX+hk0N7tþVT Wd釤,:EtcN\#⒟K-}/sqWFo0JƓ?hcG7+hxiB4li1e Gp/܃yHc)G)=dacb (a P!͛8,퉂oCqftۭs4ᣢuY4ݴB8_ $55knR-1E7 \Tc5\5)ji7%pꔨWV`$Ke=.LvC_bxb`(qKP܁#6< ϝ DZX7/TBȳqoYJsBGo9'dLA W*&S!?ry_%f5 i~+!+B\1Xa YZ