snapd-devel-2.68.3-0.el8$> /{hoZcl`>:?d  7 *6X^h; X v L  W#(GGG(H8H (9L(:|(G1HlHIX(Y \]^,bIdKeKfKlKtK8uvtxCsnapd-devel2.68.30.el8Development files for snapdThis package contains library source intended for building other packages which use import path with github.com/snapcore/snapd prefix.g⼇buildvm-a64-18.iad2.fedoraproject.org}Fedora ProjectFedora ProjectGPL-3.0-onlyFedora ProjectUnspecifiedhttps://github.com/snapcore/snapdlinuxnoarch ,3: |7f$W k ]/LN7x8 7[%w%˔^'!#, !'h_ h n*,P' !J2[1!;4HF s+ %J/3T  X\i\b+?`L `!1!b:&6BFX()NI(*%IIy`*bM 86:v{f1=w 6_ic(N6 m`mYnzD~ K |B1HE>.AScq$AY ( BS@8\h9p4R "!Z+ -cJF)qZ4V ' s65A " 2 3#%6Y & 4#r vE$:T#;$-=}# + !v*+1?:| dY+}7k O.LAc&>TPM#Y"/F' P"E8>R,9}   z IK3 vnd7x};*T </ CJ! *,>F $jnHw c6"m7 : 'zFj/!^; #_  \  F?& T r _p ? 28Dr%9 w"X" ` MT1h .pD\R%N Tp$) +X1 &'Qg  h h G @<::("FNm%K(Q9Y '>$-!y [9d@$B/;1 8TF CX6B ) 2^@IHk֙'lUBD^&"L<QC ir X G!]vi 04^%cZ0;2i 0 ~-3q,1C~ 5q{@9/j G 3> *Ta!o3,p0}ZR*x,Wn/&7 l K ]rd63(F %^T ?^ NX X^!6 Q    \vW2 h !.,:!$a @ !'*/ Jq n k Q 2c ? Et&;4 $ B '_!g,C'7 ]#<4: q%'A$y Qh+EKIt1 cf - T Y>@I8 s"  N  V*6X+*v c#*w* ;! 41  5 p  i A*- d A!;&5#?JV 3^ 0 bk|7v>8 T4 mdNYP5 / f e>,9n. g  = +Y o;Z(.  09Ap A d0")- ?l3 Ou )  z79D $O# . A  g % vT n[A&% "(qHf Z O,m }{ s-P  7&Ug& s (   & *:*U V   fh @%O] Kl9TUm0+U Y { b $  d&V2 s #I,q < S , 7 & b',< D 3   q %$'  &2kC =!g/  Rd v  sVT #D6 # ?VrALY!x C!i"9 7 Ge R"#6.&>x*f:1 1Tz!Hk  Q^ Dr[k U? ? @!LR-@x\33 @6( (m{ DU.9W [{[%# \N]& (tp|D4mG+8 S Fr6 m-3"@\9 @ dV!i`  1 NA / b ,7=i L #;.J *z X ~sG-Z*Q| 9 D h 8L>5I (J>b cb P  }'n" et)I0C%P2Z$E %-@bQC&; 11;Y!9 A%4} ~'SmK(= G.!pHt5 8$$>Z fG 4*Vw-[\*:'~ V.H[,A_9>a}0&$Ibd>{ L   FUWK #34:'2z 79 $^G O' 5 QOeR+}C3 IJ Pq ]+ 2S r >@UsQbR..EJ$ A9Xczi wVA=E" 6 F*iPNm(  :"Un+ =,s'JPE 5 !?G4y@& S5g4X-gl(}'"FUXB v*AYY g M{V + 3 B"? -CFR  aIV`@b;5AUc 2RK co5O< 4q H "O)! @1 ,e$6Q, B%?d;3 J0Kq}ɽU,; m61yLj 9 RD]TU $7{ '65Y<L`4%5v&,8a R0(L j]8/2  ["AsdDZN@-G X4v>y,, nYlRA3 oG =f "F, [)$Y$;sk'!~Mo YJBv[96/u" a0^ 9@K   `2f'&)NLbF _()  }GFOk.Tse  ,1 j  l .O;)fQI ?  1h w%/  Gz 0 x0I y4._w~hR /F8B!4V ,ywe+.W8f%= b [  5[L[/#QV ; 7 G *\{H5 =8]9 &27, =X8# F' "". 4 6 #%C 4!.hHd8h( z)5s'")>G01Fan"np jYSO<imAJK[ )e',T Z&  5"l0+ &(2_!Y(&. ~ m^d+4}m M vFh X " 1O^ }L& i :) 8:, SC #Fr  m2,8 9 S `u -bL*OBfu!#3=uU& c/4 3 O /J1 -Q8tl0@-&b3H:T/9cS,7   ]q   b :* 08|0~&f!)V+g&!.J!=LfAd,U B'h~7i@ۡ9P9$ ?RT F 9bzq3 .( 0(( (w~  WPO5b1{F5nG ZPGEY#Hi ^+XY5b@   D _   ZtF [! 8)9F 2ZEiF j#/ai } =L+ ;E )T kW $' 1M(&4 1#f I2\+x {d9i5U&h* /K4g ,-=]>E +8h #/ f,+ #3g'y~  HK$D ByJ=dB  G \p "#f ; E_ -%5 M MQ S]3nF3\.2D|% 12O#f XV L/+ ,@wW)T$O;,O^!n#H'RU;'n j :_ &<_ E!h @ {;:#ST`H P [5 k -)L58>7k CS  L0~]sx+Bq z@xhiXYef+uK !0!pNv,O  >Z+> Jf3&  G !Wm Q;u) b A B@b;R,>GbAC{ 6)##"ITN?h%%x1e3.3.,%h|lQAQ ѫҬ]]>5=<<Nkz #!d!d:3:5:):5:2: 9n9#3x&{i u t+a y0mA>n82rC A@ CCWG*G.80qAjjjjjn j`///////G^G np`b`bdF3uA\++"F464<FE{9 9,46BffffGGGGLH0GGNJ811&&&%%1 100R0g10011115<2F0%&&Z&$$%% % %#%%"0W9Y}oO)  K'?k1k1m^JS%} \]Dr[Y% 91n : !V"/| T7VT#v;R2D2S!N)&T2|/ Q6=fAaUayד9v7 !BW *Ntqv !d~D_|5uRWt  iE!%$%\Y DKA큤AAA큤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큤AA큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤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큤AA큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤AA큤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큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤AA큤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큤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큤A큤AA큤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큤gsg+gUgig\g+g+g+g+g+g+g+g+g+g^g+g+g^g+g+g+g+gig+g+g+g+g+g+ghg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+ghg+ghg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+ghg+g+g+g+g+g+g+g+gig+g+g+g+g+g+g+ghg+g+g+g+g+g+g+g+ghg+g+g+g^g+g+g+g+g+g+g+g+g+g+g+g+g^g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g\g+g+g\g+g+g+g+g\g+g+g+g+g\g+g+g+g+g+g+g+g+g+g+g\g+g+g\g+g+g+g+g+g\g+g+g+g+g\g+g+g+g+g+g+g+g+g+g\g+g+g+g+g+g\g+g+g+g+g+g+g+g+g+g+g+g\g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gggeg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+geg+g+g+g+geg+g+g+gfg+g+g+g+g+geg+g+g+ggg+g+g+g+ggg+g+g+geg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+geg+g+g+g+g+g+g+geg+g+g+gfg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+geg+g+gegfg+g+g+g+g+g+gfg+g+gfg+g+g+g\g+g+g+g+g+g+g+g]g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gegeg+g+g+g+g+geg+g]g+g+g+g+g+g]g+g+g+g+g+g+g+g+g+g+g]g+g+g+g+g]g+g+g+g+g+geg+g+g+g]g+g^g+g+g+g[g[g+g+g+g+g+g+g[g+g+g+g+g+g+g[g+g+g[g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g[g+g+g+g+g+g+g+g+g+g+gig+g+g+g+g+g+g+g+g[g+g+g[g+g+g\g+g+g+g+g+g+g+g\g+g+g+g+g+g+g+g+gag^g+g+g+g+g+g+g+g+g+g+gag+g+g`g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gag+g+g+g+g+g+g+g+g+g`g+g+g+g+g+g+g+g+g+g+g+g+g+gag+g+g+g+g+g+g^g+g+g+g+g+g+g+g+gag+g+g+g+g+g+g+gag+g+g+g+gag+g+g+g+g+g+g+g+gag+g+g+g+g+g+g+gag+g+g+g+gag+g+g+g+gag+g+gag+g+gag+g+g+g+g+g+g+g+g+g+g+g+g+gag+g+g+gag+g+g+g+g+gag+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gag+g+g+g+g+g+g+gag+g+g+g+g+g+g+gag+g+g+g+g+g[g+g+g[g+g+gig+gig+g+g+g+g+g+g+g+g+g+g+g[g+g+g+gig+g+g+g+g+gig+g+geg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gdg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+geg+g+g+g+g+g+g+g+g+g+g+g+g+geg+g+g+g+g+g+g+g+g+g+geg+g+g+g+g+g+gdg+g+geg+g+g+g+g+g+g+gdg+g+gegeg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+geg+g+g+geg+g+g+g+g+g+g+g+g+gdg+g+g+g+g+g+g+g+g+g+gdg+gdg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+geg+g+g+g+g+g+g+g+gdgdg+g+g+gdg+g+g+g+g+g+gbg+g+g+gcg+g+g+g+gbg+g+g+g+g+g+g+gbgbg+g+g+g+g+gbg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gbg+g+gdg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gcg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gcg+g+g+g+g+g+g+g+gcgbg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gbg+g+g+gbg+g+gbg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gbg+g+g+g+gdgdg+g+g+g+g+g+g+g+g+g+g+g+gdg+g+g+g+g+g+gdg+gdg+g+gbg+g+g+g+g+g+gbg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gbg+g+g+g+g+gag+g+g+gag+g+g+g+g+g+g+g+g+g+g+g+g+g+gag+gdgdg+g+g+g+g+g+g+g+g+g+g+gcgcg+g+g+g+g+g+g+g+g+g+g+gcg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gcg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gcg+g+g+g+g+g+g+g+g+g+gcg+g+g+g+g+g+g+gag+g+g+gcg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gbg+g+g+gig+g+g+gig+g+g^g+g+g+g+g+g^g+geg+g+g+g+g+ggg+g+g+ggggg+g+g+ggg+g+g+ggg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+ggg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+ggg+g+g+g+g+ggg+g+g+g+g+g+g+g+g+g+gig+g+g+g+g+g+g+g+g+g+g+g+g+gig+g+g+gig+g+g+g+g+g+g+g+g+gig+g+g+g+g+g+g+g+g+gig+g+g+gig+g+g+g+g+g+g+g+g+g+g+g+gig+g+gig+g+g+g+g+g+g+g+g+g+g+g+ghg+g+ghg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+ghghg+g+g+g+g+g+ghg+ghg+g+g+g+g+g+g+g+g+g+g+g+g+ghg+g+g+ghg+g+g+g+g+g+g+g+g+g+ghg+g+ghg+g+ghg+g+g+g+g+ghg+g+ghg+g+g+g+g+ghg+g+g+g+g+g+g+g+gig+g+g+g+g+g+ghg+g+g+g+g+g+g+g+g+g+g+g+g+g+gg]g+g+g+g+g+g+gig+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gig+g+gig+g+g+g+g+g+g+g+gagag+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gag+g+g+g+gag+g+g+g+g+g+g+g]g+g+g+g+g+g+g+g+g+g+g+g+g+ggg+g+g+g+g+gig+g+g+g+g+g+g+g+g+g+g+g+g+g+gig+gdgdg+gdg+g+g+g+g+g+g+g+gdg+g+gdg+g+gdgdg+g+g+g+gdg+g+gdg+gdg+gdg+gdg+gdg+gdg+gdg+gdg+gdg+gdg+gdg+gdg+gdg+gdg+gdg+g+g[g+g+g+g]g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+ghg+g+g\g+g+g+g+g+g+g+g+g+geg+g+g+g+g+g^g+g+g+g+g+g+g^g+g+g+g^g+g+g^g+g+g+g+g+g+g+g+g+g^g+g+g+g+g+g+g^g+g+g+g+g+g+g[g+g+g+g+g+g+g+gZg+g+g+gZg+g+g+g+g+g+gZg+g+g+gZg+gZg+g+gZg+g+g+g+g+g+g+g+g+g+g+gZg+gZg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gZg+g+g+g+g+g+g+g+g+g+gZgZg+g+g+gZg+g+g+g+g[g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gZg+g+g+g+g+g+gZg+g+g+g+gZg+gZg+gZg+g+g+g+g+gZg+g+gZg+g+g+g+g+g+g+g+gZg+g+g+g+g+g+g+g+g+g+g+g+g+g+g[g+g+g+g+g+gZg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gZg+g+g+g+gZg+g+g+g+g+g+g+g+g+g+g[g+g+g+g[g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g[g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g[g+g+g+g+g+g+g[g+g+g+g+g+g+g[g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g[g+g+g[g+g+g+g+g[g+g+g+g[g+g[g+g+g[g+g+gYg+g+gYg+g+g+g+g+gZg+g+g+g+g+gYg+g+g+g+gYg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gZg+g+gYg+g+gYg+gZg+gYg+g+g+g+g+g+g+g+g+gYg+gZg+g+g+g+gYg+g+gYg+gYg+gZg+g+g+g+g+gYg+gYg+gYg+g+g+g+g+g+g+g+g+gZg+g+g+g+gYg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gYg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gXg+g+g+g+g+g+gYg+g+g+g+g+g+g+g+gXg+gXgXg+g+g+g+gXg+gXg+g+gXg+g+g+g+g+g+g+g+g+gXg+gYg+g+gYg+gYg+gYg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gYg+gXg+gXg+g+g+g+g+g+gYg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gXg+gXg+gXg+g+g+g+g+gXg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gXg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gXg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gVg+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+g+gVg+g+g+g+g+g+g+g+gVg+gVgVg+g+g+gVg+g+gVg+gVg+g+gVg+gXg+g+g+g+g+g+gXg+g+gUg+g+g+g+g+g+g+gUg+g+g+g+gUg+g+g+g+g+gUg+g+g+gUg+g+g+g+g+g+g+g+g+g+g+g+g+gUg+g+g+g+g+g+g+g+g+g+g+g+g+gYg+g+ghg+g+g+g+g+g+g+g+g+g+g+ggg+g+g+g+g+g+g+g+g+g+g+g+g+g]g+g+gsg+c4e39d94add19fbd551236534f4ba14671a73a97df639ef5d11a4255e48a758bf9c679f0c2ea5d9be4927c15fbe81bbdd2d8a6c7c2abb877d3a6b2de943b13d0ba3460d07ebf3f4da4fb8d7f1b0f154888bd1ff9e1df5cce89fd979adb2051f77063b937dd87a100c894ea8d45efc867f6d2f5f875ec74f6d02f93f382ec3f05e0e0ca544d91dec35b073e31b48ef786ed552d866c467c51db69ad3ea28ec6f69f54e72ffd47d112645313d6a89eb73c21ada1ef6054ffcd6e5e571954daa095f364ee020d414691a297f5820a44d85930b43921f5e7d05d68c3e3dcded5f9c49fd5a490873c57aaedb21e56a7bab48253e70939d3110abaed37336c848182d36b24d7dfc697c2c239663346cc4014f1eae4b173b3397f99c385cd4fec9a9cce59d2bb2f8c9875933627f11478ced16af4c2dfef02366318bf51d197cd5e5de313017fc78ee6c9fdb486203661ef21e64dfcb1482a9e161c584bbc780dd890bb6aa8663d242970b59c161b8f779a71d9e89b685939e8951933c3928a4b52390e97442e3498280905630373b2013b2a6d96311b3d11adffaecaa86c006a0c8d7000733c5229b3097d981d74e7981d8bf04c0b08f77937fa8fa76de93875b36795e0cb557062526db10d9e79c5e709f047aa5b69b9af236ebf0457b1d32fc0b5602362c299bef8581070dd6521fe8622a5b12c0176f33984f5725fa1d9cc438e5ebac83f2712c2d63089757ceeb3405ee3161f7e7c1c65779ca349f70e9ad8aee2cdfc3f2449c1c4aa324a621fb458b98a043b6c77c206c5276bf286a56164b9c63c23f91fe26ed511a0c20688f3907e5eda4db97a5f568952b84f35245ee74e2f1cbab3f2ba3c822c80b30940dcdaaa53205c4d69b7a7e5b91696eeab483bb28ed2fd2e78a6d23494dd615c65b1941389451f51fc5fd724c9847c426bf5a281daf1329ce2aed7384a1c6af98b3b6c48b6cafe934f6b7cfcde650cdac46e9d9764ce270bc0c7ea14aa2bf29398da5c6e8b1d23249f07313f9709b578c3f338be5719c7c14af100d0733a413eae9f9516cf2e38538ec1ffcad5a72c5f793479db578a5269dbcb5732bf4e9a060996763d3ae220581ea78be675eb8b7e967f431f08be31d596211e9ff806b3b6cffdbebcbca4426ab62de1439e6261145855fbdef39854d1631a7b2345c31651689d575572636814c1939e69f8558fa31d3395aee928d54726dd129ee7cfdb069f645cd19e2e884140bf8a159bbb5c9ef6e5d61849da53f66229f8e0f9cf72c14732eb8ce50c086928a75b116a48d8b1fbaeb2822425e5b0eca74a0724f28b1de403ba20e834d36cc66f1f73192d2ce019ff497db1de513f3db391490c3dcd9a7d7ff9e39ddb11dbc97d6a4aa14f439fd5ce9e7f3d6e9a1a32aefa0be3ae286514f9f9a092687c245378079ca9342917658770839e6f1f98767ce4e795181ddfca566c23bc9538ff5c9c9b5a4876beca7768e23add1f3a18fdc52ecf139db17c077f0cb8503c3eab7c9a923c763239915a076cb096da39829e782c3ee89177f62248ee42c51c5cda2c406c2006ec6cc255b3c13d43ac511c84b1814710fb81400d0ede4d02f7273aeae7d72973dc4e805f0ed528b6768d10a245f3cedf7786cce9d73e8d44e1925160b86f1b43a8e59f1a7922e2e79a486b049ee6875e1e0f37bf7973624bff0837455e9b0d2f3b8f4330967c3038218a34a3a1e583117fa3a4b80ea449b380a0e4e7f0dfc27a6f4f754c239091553cda1b4cb9be0bf54c4e4dbc8bac8bcf779a51e71ba12d730429a0c30b325af9f3116fb656b21c670a81363ee2ea99f22a3252415a44ce2afc9d6e46c3c7e3eadcec5fa12244d93b0f81ddbb381b6b2c322bc3311b61cc531c03c392c77f9163d2aa7ad2f9ea2fa10ff5b67f5b3a538795cba65c44fae9434dc358c9ae32cc691062e0db0d3e18c03302a8ec00dbfc9df9343ac9316999482350da4cb7f6472fb3dadba8c9fdb2e632e738210a2be0f3bbee9f511177798792056f215a44d462c9eada14ece164348503a45433c4a312588c06005ddb94ba5b010289a3ce55d92bd7ea1492c1fcaf3c3fa3dde55aa4482e6759df72ab0155974424e39d42fc30c72e792d7ef44e522938d18b8d35a93809269709a4dce6424316adad727814e77f51a2b94847cfe5ce59607d1e9d9fa7dd9962cd747decb45d7235636371d66a97e4d019b66fec9c14a60aa88c8d6571fbfcaf493b72ab993fa0c092572935c05aa2c7cd33d11329825d14080c3420c6564257fbbc195c78b2017ba104ec5005e367930d974ecf201c9d026f5c688a79929b71c62e165fa712d952ed45f0a664c05e1f2f733af70e73b02d2879d029a0cbc794ead63c09ac527575af5a7e07b17f9cb4eb09ed4a831e0a3d3fda9e099193963c01b7545e9ed98384e49467c92d3e158bbdb40efc5ec08fe24ff1126e8edb59e6f83a7fb87d9a7cc96ff45e08dae45fb5a9586a99c8679844066c73d777a6db1e440a3a5e603ad6eca1d4b57640713c457c8ebcc035af65a3aeb43bbca0766044af025130c90c8c8479741b26ff4ff4f77d74a806710a00158c794cd12991e8951ade78c55686c344cc53672583c37c1a9a175262e4ad85baa470d297fcc68caed4ef8cdeefe6d07a6215361b92ab235fc6a3a3baddb5aa4a6a587ba7138f1ffe0eed3f12f68888c531858ef660f39ced275bac9dae1881bcb73111c5b0309f05c7331d712ac601cba819aa0e7bf30c42b29a35e430b1dde6270cf3857e454e8c09f0363d910a4d08281df93babe38cb6d92b48e89260feb7bf57a4e9f466f502685bf81cd6be6bcc63f48b46c741bf90ca00474a7117c35dc5823b7729c095ab532f70b4ff589512d583481727ba436904591ecf3ed1b1e6ec4cfebe656e86e3fddd1a9d9f7c93aa85658c6f6020ceed5a627ecda55807bc07c41ca5562534a42cfbcede9380f7a6fa6633cf5f27d2e7e919a35aab39f798f7a432a0b45bec7c83ca903519b0534e1b3f099d4b5c4fe82b2fac181530c31db8bbb0fa726a986544035167532331d55e97c5ea70fdee27db8c5931cd006cefdeec3cb968c51f8f96715dfbb5197a1dfcc50b88e8e3feba5a23f86eeec76da1fda65a19fce6ab38dc3b2575394aae8e5939349331903abca79758da3c0c9616c8e4b170dc9b2f7ae8d82115ecf8945c4c3585a41e435cbeaded714c6ccbe6321693b6f1c81221946d2445c0b08971556dd3c8ade18db4ed4946a4c4ac35983bedde94bc4f453280c0eb11a510c4215e47329b2ea17820d2825d9db5a86e6e87c1fc5125af7488495fe7bbbe1d154532fb27dfa90816afd6296dada71ac1a17c3452f99ab888cf79155a5c3f1a3de24db698e786930cb6c3a875480fee43159e13c502617b514b29d4dd5b8c7145ee91eff0e8a6d5566448f651df12eab88ec0484286d5b4f5683d5bea11b3d29b833851f858e5fcf7db736ceeb7e15ee838f7ef1e134c749be3b453e730954ba4233ef2c0bde9a92d02e3487ad4057f09f73b54674ad1e7215c5be0004c80a0998a72d07c65740c6806ea5d874664c619f5e605be15226cd80b960fd0979c0dee7c0a79fd28bb7cff5440a57400523796f5aa279742d4b073a79711c7a30d69a826bb9abea228331c127419b7590d5744095b3a802f335653f68a4d270518129ad45c4eff64787ab4e93d39bb0155672ef44d735bb83cf68afedb61f4f4fbff7a6a977408986350ab1664ed615d1cbf411e272d8a46feae7b9289f4870fea8cf69d4f7bc9bcdc48d348619ccf3cbc17dda9eed52c379526a38b6786c37b9f242f9632b0c672c79daacd1c82e0fecb151e6c7394a55fae650f433443fe2ca66f444efa802937dcbdbcff6af21d1425b94880f0de24a15f48fe065f876484a7e471bf1cd8c5bccc5f8a01f2d887cdf3243fb0f2a83af850e45df3d6f9564155c2ddad10f2bf5c0521f68ed74d32b9195b6ef2553258029bb29e9767d9557c922937211dc2656f5ab9740d1848ab57df8b7ef5d8b49ef5d54b41421ab7b5eeec5d7cdcb8a46a8ca13e0665aa9fc7b8ec882c4c4a90fc73308b4ef0cc5dff2395b3c77d164cec4dc18a0e04e595daba369fda3d7e08230f77bdf9156af1214f5c67a8bfbb7e7efc7f9e92cabf1af8b7dafbed5a57850f7361baf898e154b67364d7272344f0a0a7f6f9558038a3869cf85af9bf7a3d2eef6401b76e5e7e65c3b233f4feb441cfad345320564c13a3e28326256425c02d874c62ad02ad09c39c5b70c6b431caeb4287223bd54f7899241e51954882f67330764ea93112aff6963cf3a89143fa5a3fa59f15678c4f5b2249db5ea6393ceb1280cefa60583c191779d3d91dbe2f024a699778740586f7896b49ba320454df6533a10ba0ae5e11dfed3027e7c663b03468ec929b7368ad77831487d395f02ca76ef18f3f54b9b19f32bebc7c09173f16990a970a74c368ed3d3aa8a1fbaf04df8891cce67542b37cb51d7aa28c25258bb00eeea9a877d503be8a0b0c904fe1992eca7741fed86ae6d71e6875136decaab4ab50fe1f28626282b1b51029541f7aa13f2cec250f34d689f48dc325e3b7e37f39a897f5181444d97f60e1c61f31093686c49c45c0dedb1c8b699adcfbc2ce31daad3146d7c18ad0a2fdd4ef1f6591331b9389c9d8240ad4c0a92ffe702349115976586ea10a350a962bc63787fd403d0cb9215f79fc629bb27d2c53bd522ac9dd6b93fd56e2e74dd69fb2cf8a0730f79460f62b7eb620d727eaae07730674ecde33b9870b6a5e30d8073d283645f9b195301691641c3ab31c65c5af74d71963f5397271767c1710d968102f3d2adb60953107259b5f1658196dd5817104ffd99b7cc10c9ffd0fbbd9418063cd266e145482555678ac0a97df2b658a45c2e429439a4eae7027290fcedfa39bad52a49c96dfeccdb5076fe46cbfc2bb2779ecbd39bda287b41c44eab458acdd620d7e9696414468e1889afce88942abdb06f6d34bedd2a4710795338b96ca5e980929ecc5737fef2b6e5d47e2bc1bbcd0db15f2d77ffb1d329191458a6cad0f4cf40cfd6f66b26936504d433479160893931731f7699cb066d58745d15aa804ae6dcacdf8789f249aff2dbecc2c3e282450b6049dd125c0b4a53d16e39fe45b3dd92e1ebc6c3413436e700e3e88ab1caf22f7ad62f25a84034b7480a2c3ea899c1ce46b4524f63016f4591a084d11ec97aad5a031807e5702ef40a3ff7d4b04fa0a30b2af50e398b3a1d4a0f33be99afecba783daa1db61fb7cbcd39e1e10b709ec6723a7609cbe992e0dbc711bf82c8371e4c15dd2c83eb41cda98fbf445aac57fb9898b619af7a639907c80bbe25920400b13c7a87fe74ec648e3c86656d28701afe8eaf935cd5cda54d99ccb707224ecbc05add2890f19538ac81c4b2cf9c3d9b2bd2de6d1564984c14d3f3fb2e787217be07bbc344279ab0d4cfb80c45295c8bb43f7962613ae28fd99be1603068754df62b6c523134db159530ad5f03dc75bd325a6a5cd94da4d809a0af9ca5747a0dfc554e80ae2c5865d372ab723d3631c443aba917f8e600056371bf2c89d45deaf8efa007fd87796bc7a342d9a323e79376cdea195ec32f5c69299a54e4e66fc0fae98d11396405bd86fdf330311ecc715ceb9e2d92ac41390323be7ada1de316a3fb9c12e06d8f3ad3971d95d23a1263b2f37c0c9c99fd45b49bbcde4056f7909b9cb326463f31fd8cb9b70c0649109da9f1c7fd1d67b46004af63bd4cfc03a5d8d0ec2bd511cb35b87e4f3e29123d433fd12d407a4945888b06985f6cf6acbb09bb34edb36a89f5a4a9acc449d0241e50d541d9ebe97baf7ccba04c5e346da8c2c65db02c14ecd1255e3dae63502db889190808247af04100b249b1167ff446e869ed7fc0e7ca3d54ca9b347545eb445ed3a9fc84fe4eb593804f4e825ad0e682a07a18f401576e6451fdd131384d20aa8855905784f99f8b5e9801a30fd18d68d73f8c49ae41698d72825f0a24032d177e06dfac31b666166d99a25486110a64520cfb09331d68e9bc1f6095e30e56fce42a15d69eaa20b27c8a73f0cc530c43d5224b73a781ceaae3c51b145569fb9107fe491965a7531379a121cead1f1001551007296e0b17da87a0123712e76092b96f7dd37dda02980f55e34358b5788a22aab803cf918de6d3e48fece47d6c08c451416cefd15090c0e0b5e5a1775646c1ea5db09aa61ca680cd236aefb05ccecc127b15206f0d7859946db69f5b727552e93da3b3ae207a9dd9cd7e4fa7b44370d92d725ece18c2f37c9e98fcb1724af0f5e227a0ca1c6015b771fc4e6d350b4729cb0039fd8f0a61fe6f60ea0735de26ea187c70d177b3d4f78619bf57d64ed525c55c2783c8b47c0bd37d506cc5156a377612cd96189213301b575b7c9115cb725de2a5af990662fdf566d4d45660f08ae8f25927292c3fad12f4e78970cddd799f49ec366ef93650b01c83e70c9b3a72751b18c683242494caa1f6c84cb5496798781b8655f5eb9fc5b30dc401988d8375126eb298dd44d8503822851376038fa3aa7764a3662709dcb68f1485f5297aec85e851e56e9074887a48c5b565a6b68f53665a876d9fbcff3e9d50f6a104d2e8cce3fd65eee379b5ebeb4c8c4d5c86a25eff1fc1d401e632f35b9d6f51c26654d1eac92e12d28d413fb8b618bfa4567885a7d223ffeebc421e02a6a6fc6ee21fa2b0c038a69d6e6dd9dd2bcdf0075d0dfe7c853e22253f28685fe91eef4d345596484085a5725f48a74de474315ab2f9889f00a38601c7f4414d001371d7708998af2ecf7cae7e51d7a59199a9b52355383cbb443ddc74bab12d9fe9970603343dc74f431c50a9347b941afeea6df2012223175999280520b4d56778b823ae5cdf7d4b61d9a814a6b6aee02e317a29cdf6241a925a0d6d74a859128d4a42002eff8fee7f735e2b85c27d605f5b31411313010644a0b55ce1351521000864603856fac38c85f4c5e42196f3dc13e238a10adb0b927edace989eb6bc2e4861e32728db4497ca5a0b3e9e84df7e27d416d422004f802acedd61d8fa885cdd29ad076d42ba58848ebeff5fb2c9676e2f32141e27b883368a1b27338b2d35603b2b46a9c02f5a026e5d5e7f3ebb2b321e78c73d023688065acbd10925b7b4b8572771274255cad9687140ef98a637ddbbf5caa3165bccfd5cdbb0ee014181930c0c5d6bcbdd6b3fa583cdfc5eea9233744141801ebd263e46fd205ac738ec9f8909add9e5dbc2ff6263ee3144343e116c4360eba0f981b8937ef6ebe8bf772af19f48d6078ebb6038445545df4dd8e72c7b4e8602f422b058efbe10020655b757af3f97d55df263eca2a062ee3a7b99db9570c649ccc0deeba337a4c4235e4cfb0f824fdbd47b18958ef03638d50b6efdf74ab49460d4396c0c15609fd8f2c55df025196970a47a801e2a5447a36cdb39f3ba8af3fef8767e298a11bf743407e351663e9efe728ecfbc23aad62e71ae7e202183392741ac59639c85b202ee65188d5295978f3f0aadff6a7be06c331349ca726e4746c66770f182b05ea4bc58c8941e3bf9a48c2ca65b625d073c2cab86d4c31a17656545ab2e70e7504cd8a0df3ea06177aac944fdd3a9eb16699cfe0581ff5d08281641c29ab19ae479dfbb573f86034791e097eeb4140b0f72ec61b4deb0d9b926b03473b223233922e7423fb448aaa62eb39e47de878ba34c27d660f87e5c8ee4110e4805021db5d2eaca9829be267f5cbf6067411b872fd2a0f6453ff420a5c2bff72a1ca661e9a58c1e0b2f6249376ef87c301c160f10fdfb292583050b0cb39d7629619e1875e8e7d8545af2436ca8075dcc08001d414f7fc0fe67c492d402a250024766afe5c8e600a82c2955b1cb7d22581284e134b8237202badd505e9b6f97a87340725e1b81853952c510139d465547c79859fa2c52bca3134695ee9a238a5bbac8be738e10f08098d444c505f8143a530434a5dd15bb498c9af15d614608416807496622b0fceef2aec17d6106cbdd4118546de0d52385cb6a79a0589b4787df15db2952059047f1ddbfd044fc5d059e6488113c86eec18c224eb650990384592f147f293b6f566115aa6c8b8102f1c7924a12b7790bb84125b76a749eaed931d186b05679302db3329a52c08bfcf1003f21f5cb3ddd3e012161e5179b81609a6c941bc7933371b2eaedf0c2570f94e8905372c33636a4f9182a6249e7b4405caaba2239912b0781842b0f3241c2ae41e12b300fbe4a67a501526700a1e99da5f2cc15946b250a07c1ff649281a7650ce429253eae6457e7c8e5c04cf2ff9602fd4a9e29b7b5b6e6007112155353bd78854a29d7296e8c05a5642c0f13ab717cf4def98c1daf9579089a9cb5672f2c1a5b1d681bd1fbfad9540822fcab8344470b3549ab1e4074688587e56c6c9c5243001a4756a8ca2c5bcce1266cb53109caeaa94fab89e62be2e12173f9024469a7e16501112d609288e71ea1cc5a879e64c0fb55addc821c47af8961e8f85730e3d54e9f5a44a52c27f938f8092b3cb7b6a064323526ab3833f9f7587a0c8fc4a80ecb75550b6157c6ffbbb3db8a15788f3f20ba4cf8fcd708676bbcb0d05efa621bafc0621060c40ea1d1fc0647df9544b5e85257a54b1cd109a2ce1794956a61d4e0d06b0665c13b54dd3b48f98cba53dd1a51a17fb4a2293510c2445a526470ccbae21eb5fe19855b1e2c2942d30b69dfbb66b228c197a0ccb571f013ae85d136eed7758a00c37b3d35108e767ccdfeba8d0fca8eb91c2042391897c6f1efd310fbc6af3d99913e84be7acad589f8510acc74134fd0fd000b1475cb6f713279697a6dd03b43629788065665385d1ad6ce1bfec9d42dac375524c68450ca8a72b3704f50c9e39685347740ff10cb9bf7a31bc5fcba85acebfb94cfd6d2f0dce535f78875b4ba18860b525064c3927bb0c203d3487d0f1d813a6b3b65b750625d4a57fbbdd982ade96ff72f06202775f92ce21dcd4df5012580a9c495dab33d5ce30d48e15015845b906eb93925129fa0ac2b8de4ca4944dc7991671a84187578a8209c39377012512aee6be127495b7e9887abdf7ace93b8468f3e6ef8384eacbe324b7c25b1abe25cf03b32366b371cd28aa8ba57bf4d4741e4f28192f015429ab86f75d2364e8ff09748712d770df4e8026100d6ac37ac819be1e3747efcc3b736322243b4f47af770d63aeba200ca8e931f9fafcb52fa3ac8b33799c305c4c32b846396c906e43d4c6ada271cc9b499f4e4ad43541394f6cd505c8206947a004feb746b824dacbd1de4e658eea202051fb32bed4a7f57f010376728d0a4ea35c2d959ee9a72cda0ee5153a4d4924b14962956d5d995adb345f6adda8536420ec0ec6a82753f0991b2d866597df5b2f517a637ad6eeb224419a1ccc9a995e936d58574adc0955a146ca3d55225cc7312054314ec2b1952bbd9dc5f78a1e4fce7bcb7adaa50e071873c509f419148c0c23e22bad38b628b11d5a15ab70821156ed0cc69f89870bf55974460e18bae9caacc150f401bdb2283af2dc125dec1569c8d845a42bea68bb7120779441422300ddfb68ac6412693521971b6d01e2dd39ec0acd146fe59b021029e8534cbcf0428d63014614142f117319a99c0e98fba96880da3c9e536e064f74f3741024321e5615b9bb150484a0deb74971531e10381ebc058209dcd94d4973ec42179da2f39a619d072a91e76149c9fa0ba33d007f83617806fe5f48b1c4ec8e711bef01c91f53ea2cdf9aa552672cd63fb0aef79c53bee97ada6b19f7046194966ab42cb9de63fd1dbd28f6f309e7831bc81ddb3874c2af81bb3b076e55decb5291b5caeb0d548519cc3cdd86d922ccaa852709851c69896acea3e31d7bd1735fb396a1cc5557d88975a9560d6b9290e13a75b38cf6f52cccc9399bc490415de0ca72110139ce8fb4524fdad8c2ac1766ddeede949d924d3f4486276a6fe9f81070686c1115a50504dea902b631705cbc86ade2f1cffa91009bfb395ff14bd4e353a008c18d6a31825f2cf7b23a84727f9bad59a28ba209a708832551929bdfc3d4dbbb3e2e693b2224a83c52a4198124945378a07d0bdb73520199cae05180563a1eec46d2ba0ca18276a4aa491759966d0fbe47513eedec4d220327542744f620078a126f585fdf6de1dc5551736607f2bfef70bbff65fb1ebd4ca95c5b1c7063ae88f5bb14676a7f1c35f7630255a0f2f5f34816fa2333972900bdccdb4fe149ef8c13b58d7996f2b105198d8b7be22d08c7bea945c945c06453a97bb0ce2b08fb28f7893a2a9bdc920c4aa017e3226866222c2c35fdca3a2ca8ce11800a0feec34dc113685597eeab08fd02eb0743acf069514ec494400fc0a05b8adc8603266abaa97632bdd1ac2e30b8d21f7482559c10bb8b2b5c625e87c11c2b760610c289b15c7371076af58c45a2b1c6870ccbdc4a44e92c8095918632b4baa3743f9a07b073165e1061bb09d21ff5cc484a2f5513265f2929c04713feb34f29c047bf8dc64db1621346b5a6c692b6fb2d1ddb09e6a63f7a10cfcc29242166b7cf38da20a255ebcc525a60390e2baa36987c1a703148baf62d06b441f2a9c257d3287b0f4c8584d0f30cdae7f2ba26cdc4541def7cc6c60a71b9b76e29a77592f22cf4df11a1215951327b8ba18fc2b7af092ac5c3207e7ddde824fe5a2e0c2b650d020938fd89978c6f862d07916555fcdc3c2ea1cc294867fe3c7c05ceb8095b4f2fe327dce8daf38bc9410357bf1110b6ac369dd934171d51af85519b3667c634b70bb074cb27617a453fc2c0b196de55ec5ccd98e4f8ac444c3ec11fd74a0bb1a38985b3130cfa44744e9fe4ac6f098ae3ae93bce3bfdcfc522e5aee6d4f7e190cd0cf766063f3db2736effefab061d92bafc072df0b5c20f1a98d2458fb9dd2649cf6f9b534b0a099da9620b412ce6e6d7af54621c7ec23481f7029bc649c87cecd8835864f43c06268c13861accf94be1bedec1aef0483601e1636d6c6384f953fef7f1ceb336e87a673440a681c5bcb4e940c76f98f37cabd0906720b6e4ee25c90464f9c162cf59dee92e739ba2c370cf7464ca8a2155c4ab54fffd2ec40bf121d671ed041bc0acbaf4d8367afea0417534040379ef577119597378d8dabc6a3d3a125044e1c645725d2d86e9ee8bee30763c324e3d2e2512f3ac1535217f1df16b1f2545219e41157923b67d8ffb75430d9d02502fd305b0f085cef2db820dbe41e5441c6fd3c7e2e670a1b0a20e2894618f70d5b081473a2b1c02ea9b5de003aabcede93ddb75f40ee324b253a8d2691ec5180489199b7aa40a2731750e1bc7089795c08b1a5e8ce4d47a5bd761e56b7063d8a64fb7e5b86685777609814a4c43645e9299c8379b907b1f971cdd4d725080efef290f03f8a3c7e22f60334f10255bedafef6b99a8eee7266398e9477f5a74dd3192dd98a3308dddbc473bf76182b95611286efd53881e06d6c0b83dddcb7c20a1f67dba0288bdd30c883e681c7dbc7be23e003ae41e68ba149f12684608d09c95a34fbde2928e11f8bd124b164370a6c05cc973617532f17009ea192648e6e8c4ea951cdefc3b0520255b3ff820d2badca358c5348007b4ba11638d6f72227cec680cb2f4892a4dcab78d787ecc20e5f2fb7a9e0f8dcbd052a7badcfb7915c98c1caf3fb6c27c8a3eeff0b64f1eba8e4aafbdf3941c68796e53eb52614a14d7a9ed5ffb6cdc1e511e560fda97112301d00c06f679877cacb6ec5ebdcfa84fc5b36f4b4062a6e6bc188ba1ba4aed3972b9e0237bb4b3448556bfeca8cde0dad52b10293ad20e1f73f71073449522c84a9ed3ec7f1c6c1f8382502c23e3a52e9e2353fc3ce719926b8c70b2bf27636d1e991c233e5e81caa14f9723175c550fe812a1d6fe53667c4a5c3c031de76f64b2208f4f186cb4cb6a447b76addb933c991b328460a8155bc6d70b4e2839f0b75ffe9632daac992abf26f1872d60642a7cfc82e6bc8e937beead6670f7bf064ad8d7988579d85f59e9e87c0743f62e9825eef52cec84812ebdf23a1bc9d26134348115534040ee241ba4804ea04377f5afa69b56f5bccf7508a86b6d5bb15a48ee055845544e55ebda1ded531dea57369750f83983ca1d6069a336692a35ba57313a451094b0fc714f3d4e739295379c9cbebd3d293402fd0e64e1e74cfa80e916a1322c3df1d6233d92f7fc5f3529ccedd2b1f538476206c12ae76b58bd5d0871414b1968cfffad19aeb1b9d62bf67d4907eb8ee2c53140d963309f855120635ff5f459fe1c1257143d73e9ecfcd15e054f95cb9400a081343c7c4bee7d7cff8c700bf4f22c3b3028a0b6bfbdc71340220dbcce04d6436b182fb02d23c2bde574d7c110c1671ffe78da953b20708ae2ea118712f54af9ffd9d4d36a814ec64336ca7c9a791cedd7306c8de13a6aa5c970cc337a33f110a2d483a5e92de28ee9aba18c06453dd76abb12ee837b985bc6b960e654ca4b00d95470055e0ec12a514f11b2d94160fac51d5b5df620695769f7bc1a630c9e244af1a19c3b5b05ce5cd66940a035be8021d9d89cd88d05d3f2aac53d1c25bee53f9ebeed81924a4233c14d973c91b321813e59201e10012689c9798a0bead4f082d3ca46caf3eee435d285d8faa742c42e6b7857bdb0d3c2e7be684277602867bde825af29be47ffd5f91df13536a3e0832736779f56e41019cd000890965a133a78863b65925089a065603c3726b48d633494857e0cec13cfccbd0ff47cee1e401faf6fcc333974007035cef993c332af88eb64f352d46868f5acdc04f72f950bb3be08b55dbcb1232fd65b47329d27f7827f1d4b906222dfbd7297e3b4ef1fae9e5cd67e3c10658a6289453ddd747e18b639dd0eeadeed4c943d68965886a6435416835af395c40c647d4eda32cbd0f1470dc350454ee2f94b769debc018ee600e8ec3c9b70f86e312714370b3b1d4364b7678f2da4f42a8251f56b8bac9688eb3c39fccfdeb0b810258f8defc0e638fa056c906f4d78df8d7bda33a85160e359d86be8ae190623412b1ef1a191d398e8081b7c31f95f790f4e8f061bd0b0b8f9d1ed7463a474107e9d587f5890f9e414647eb10d6fd5d9dc818086f460f7cdf8b0ad27744c15cb1eca58d227867f53d4537114506be2adcafbd6d21e1df1d061c3a2b64162fe71ccf1d8099a504fa4611c1452909a0ed775590d436a246daf1fe742ee71a1d54841c1767679798bd49d2b4c48f7679f0d6f1a407130cb1f04d73fa8c450094a4f2c8f34cc7b18d6e419631ff2c493a3a0d987c8350518f0bcc363e4bb5b161b4066744ce308a3a2a35f9bfc92caa965da382d945471647b29a868e39648ee27348b261ba76ed15c94881062bee1b53964110da118b1dd51c536bf0fade53532e239ef35a727ff1cd89865ac48e7d66e878efa5d4885cff35a2eef1b6722d1f525d193dc8fecff838cf972e2e2a394789e95935232051a65b625a4eb7d388d2a90adcbb2b5144b549d127a56340ce9c835472f186d604a070a24079b851cb05eb73e24fe11f2de028a0a85aed51f39bb0dc075d2d103359efca2d6809ea22cd7a06392972846af02dc361423a075ad2dc20ae4d268118c788d6b817dcff8ae05418b39c02c5580962dea8c68d25314cf2114e42b291a390eecba975fb296af32331bf2c84e9c44052127b725a425e5b751bf26a7739e5bc52da51a8080f30234ebaf3c6988a13bff6341177f2fa1fc1a35a04e6815f7beea34f844f3fa1f15c08eb443956e32b7c10532457ae63fc50515561078cf0e826f4e30808442a251a2ed4da78b51ef99732407f386319dc98dae1ee0109bedbfcaa5afb09027ef73325c6521b157ba7e1c0d4466a4d1aa1a0ed26b1da43dccf801ed2d4494d417bb4d1c1df5fd1f47bd0cc5a31649ce999321c7aaab8998a8db2a26da01c18ef7fc7475cad31b7ce0e316096606cb0f513e3f23bbe03f45a13bf1c1ea2f6f3d9a13f8dd85fb2076c96cc1a7a88438be9feef67bf45e8de6116a36d0fa5165f5e54cf57c4059afbffbea680bfb33bbd787f004a601e5b8ae794fa77f9325eea55c437c471874a54e0a51e2a33bce8859fee894ef2337aabe6465700944350a0823c51b021a5f1bfd6fa6f26a610d04f0e15dbe3695946977b1ee5d64eac3923573f7e063de66107f34fc48d8e2cb8f3bac3688d7c865203fd5299bbd0be6cc738dcee68fbd795ef823eefb95b50e1e667b96e2b7828780955f2d3db2fcdc6cefe326c87dddd1803b0b2c6f66e1defaafb566fb95890edfd0b2b40e0f13f020a1330a0b70a80dcc5c46b5dd096606cb0f513e3f23bbe03f45a13bf1c1ea2f6f3d9a13f8dd85fb2076c96cc1a21b34e3c7c2dc8900ef8bca379226c7e089b81574d688324e3c76357564e2a178f8cd1632ccffa26ee19ab6170d88c002f895da9dd4b7413ddd9c710b07f7c63ddc848302e236a4ad55ad4a3503c2b65053a619f3dad6cf07285be46e095cacf36668195df9d694082b677672cba41fb0902f5d8bbb3aa60a81b0751c847de1dc5d3e1a62b4081fa87e3fe0b08f7f757a450175058c2839c789f8e6c95a79b5a7a57309a0804c45ec5bf9918ae50e287ac6fc9d2f0bf8cedec82d4fbdbec09bca2759cb4a1087231b23ead6fe0d2fefd78c91bffe29b6ce9fb509d52d2f6c4a2e95e08339f1de033428ea3d1d696e386b8a500a310d66c1de7d1db65c655d19701b5872e5fb5f011160d7e5765e25919c0d26244ddf5cefc29d65eff7f1ed2b091d7bcb577a72d0d39a667101921e4f3347384fa4adc25e21de6c417e89bcbd28d3be718d854f8b73632eea8c24d6c46d2da795e394006fe5b93c795872b3339da71e6072e4a4c4b5e959a0df16de4f51cbc2e3204c5349b6f8e9194504fa24c3a8705dc8326871eb365f595dabd9cc098fbd51f5d592fcaf959e53557153e965329b00095c52518a23fca3e02952a0ce9045b0e52116a36fb582d5dad2395b52ca4ba9c60a8069c9f0cf35d871bf528c6ace3b1f825111f5e0ab405d4101ef9c38cd157ad3c39608720c92bd560efdfa8690dad7aeaacf3e14db5b5c13fd4f139621799c9229cbbbc99b0471e802c007663f7520c508e168e049e2abdbabc7dcd57416cb8ebaed2855470ad1af38ed27952850b8334a475746dbea2fc2e578a6eeca130954be7d26a9e84d6f501b22588462e9b55f7ac425ae18d3209ec3ad5c0cce87aa8748840916ace3461d18048220a1a013e09518c62fff28c838ae76eb55a6e7d52eee57f5c0e9649120cace153c3b8fc15d913a81ea576b32b8c8f292e556d6d5f278d724f37616e77fdc64ec87d273e5ba0517867e62d2a9b6027f55f970372a5196c6727d9b3ea1e851dae8ae45cd9201cbf273a06d7084c85fd7d9fbdd8206f6d25a3a94c296ff2751e41fad307f6dcd3dbe4b424300917291ef20514adf3e80c3ede2493e459262825f11622ecc1f7d8a84954b036124d1f3516fc40d5e2c96165e11fe781e501e06cf5439cba99378302cb298a50d1eb3deee42baec006d5917405f7539f89a30dfe742a925f40ef6f25ab75ccc48c904be6c8c98a78725bd022ede5e3c93ec0dfb86fde96ec9b20c17b08ae3c1c46e2b93580850f48d16ddb9f9a317e771e35d8825ee9184f96c512330038744581b6335613ef5672964227b13085bd9acc00acc3850ca5ce6263e53714db38afae7eb309dab25c2c0d78e86e0840873df5990c23df371c0943cdc33fece8ac93a0f55cf604f9b7c4f756ecf12099d7550dfaf49343429ea33be6f0b7f88e9315025c13e14960692d12d9accc80446726c762a69ab530096e910f027ed705b4fc77e14caefd853944de452677e441d39f6d693219d151c4349385965aa996c1426c26269704c6bc73b8e2ef8260438aa506c9f170cfd20ab329db8d33616d7eb0f214983115f0f4d1899e9d0f3fc124bd854f96e24174ff08a7ca51bc15de91afb0e2640d631dc71ab737abb18db698f8f8225668f71f686051f57e533973b46b4f3777665acc6d731d69930c9750789284af998dd655356cd6a2ec99b1d5fec37a1febca8abcd26845bfdb60aa0a1ce01344035fd52ff5bc11d4547ce568b0d9d56de9997d2887486571e6febc7cf1de5156ce2912a78060bcefbaf5c4f25964fe3ee67364743c9d77619e9187b138611929d3366be15e21488541c37d0e11d5b00abe19afca0af2568c72bdf10421110d43556152e79c8669fe7e7222ebc1922d58e4242e78377f7d9e8e15503db1f7d5943b208d28c47646c63ffa5de79d6d73412be3874f28dd1da2e18a9b7290626133aade491601a5bde5173c6af6f21cdb5895d0b7d94f457bbd7eeff93b1e37377de9377cc17092642eccd1b58eb67d33bb840990aa8de91753f3a743d1a27b79b9983971291c81354863deb2b777b85a6d9d222bcd4750f4db2920ab71a0527d1d9ee6c016f75dff81f0b0fe75eafe1f21a96341a8dc9f5a4cecc24d6d8b00337a8ce78848a342251dfd99dee994fd06fd8f39423e10a2f4ffe963e10189f66221bb5dbead69b764b8b3616fbfa96b7b5123a5ed276aba2a8eb31a08650b4b5389b73afc7c034b8b972f72f3661fe8c2384398efbe4c2d2fed2753f406deccec210a3d0b52ec07289d49bb64e3a7c2aa4e44f9ea972121d14ddda6ed39bc58da6f52b4726da4d7c2599366448dfc9d524fb5f7e7068ab95e2f155465e29477e39a93cb436d3ce313f3ae63d4928c98da13e8c028fb01607f567c836f24ae97b8e5a461860f3278fe8d099e8b7fc8354dac2239f46558e673255ff064735695c6c14d140ed2abe832c230d3ce60fc137bb04d53a5983e803ce277c3c723f1dc22e63ba04dfd50e64325512bf310aa7d651a84ec251a05501c646d9fa7e9b009d2a79845dd380c147b45be9888b77ea73f17e4ff8355896a5cfc726261bd59d4dd4c9c5c643033b32b8d4d0eb10e9bfdf7fd0bb7f67c05afd733024f6f825d44f5cd1436fdc5ee0150fc9756f631a57caf80af853224c360a83b147db97007ce8aaa1199f6c9943813cc9d57af4982d3a7dfd269ab35a131288819777f4507e742d8ac9fcd76502275c39fbf9d8ca1adae35741cdd74f1ce1b822817099608a5b7a442de64d4392fd67301ca37395bee8aeeeb428aee167035f5c18a7cd63ad4720d3a6fb688e475f18b70117ee777eb705b2129509be1007841068ba3d909c434a6a885619bf3a69e92b80222693edbd01c5a307c9d19417cbba967644163723bf37bbe27faf2105bec9ec90b1db1dc7274dc4f91b3819c27c9c2bc4107ea80252e7135f1585da5beec82f7c543155b21d807b4c3a9df699476465bf57d86f04c8dfeb53b31dcc91b0d13d5ab9f2325b5c92e1fca0a6bc0caa90024d88569a5ba1bb861e919ab54e5dfb4f1b1fb3874702ab8cef2cbf741ccd1e0747e7523fb786d41124fcde5cf65ac05fd67ac9a1255bb6af64cb2b69cac222c8b8da65630975a4bd4cf30b0f23b92290324662af92374482a46d573272755497f2c30f96ec2585e96ef8d0384ee2564cf50030ea858f700df9a42fbfc789c62662921557f5743edd93df2f606080d0e555765e584cadc267b42eb112649f704c072f1a765912b1f70e94250c31df09cedeaea62eb4639834491cce68bf8870155cba2e0a277a5ed883ebc9bddda851cf89d210d0bc75031b77987117691c2a73bce16f7a71ef45bfd659ae31b663a98e257bb739fb7148d260cfa390896882f22afab5f4c9007e25f66be0ac4905cf74aba10f8aa9c23ec35afeed4f4bc60b819d6f5a8eb4ed9694be10fbd95d6dcb5ac2d2f17242c128d1e1651a8a6f1753524e60c8e0f312c3f8b220ba3f7f5b079a97b3543b4288354f1d24040b329c5d39849f28efe6cdb8b4973f99860d0eb0585065dddf55bf24d40b656c14cd2e1449493ba63d108f0611fd7bca1448af49de3d704c6a18e550e6b896345c81b9337d3c48fd276d1bf3547bb999bdaf6d3079b6fc422b5fab7e2fbc51104853e567b9ea9594c9ac0ee188883caaaf5a931cf0576144ebadf00f48905266597465cfb8edf102374f12e7a385fa665b5682cec037c8acec1729bcafd014653b62fd441d7f2100462d023b519ebcb2b794dd6ecfdb0b369904566dc391aad62d5cc0aab982007137907f502dfa932394b9e910de4b6ddd2e4f3ec4a52240e58d2c3dd38ebf33dae93518afad0d86aa1aec4e3ac8414f936719e9d2306b74dd3e829c829586f363978881475db160fd08d29ce62938b6ea80d58489cee894c886e8e64cc14d3610f78a3d26dc512418448f7542ba8ad2f433bbe0a307311f00b44e28864268b398ced2788c9eccc86395bb08f9f5de6b0859bf71c8d98cd84dbe4bb2ba3608b4a98f1bc6eacd4580c263e7c5d0e59c2f1fcdf2e97648ca45f3256ad9dbbb0b3e3489c4da0c1bb3f8976e88a3f53b3f0335713827b0fbc7ed42d358b76e52c392a497136842bdbe37b8c03dbdb0dc699ff25aca15f6cb648748e3c7f23e22137117fc35df45a921504b2e15c071fa5da5f79f2f59440ae1d339a1dfa20cdbf46947cba1e6dfaf917c6d20db586ff1af39f301d01d7e8b15ec685c63dc388980b5c1c37db9025579bb0ed4a642a047a6838b415ba6e0c9478dd400a2f51a292cddcf5abc0f8f1da62acd37340cfbdb7f6beff5adca09e4bda5285be254c76ea8eaad96d2d0cde8a554e09f7c59be946c6b4342d1e95cdb361dce8fdefcb843fc462d96b421536d6a6169ca37dc2368eabc1f3d71247f920a8fba9158498619c4bebaf06ab7b683caf2f6e55175b875408db898a7ad276a915eee6864f8a9ef737025bd0c052248e7d344d0ebf76bb9d75486594e4d70b25c75176f8d7f651737452fa903989f2f26a673d8501775f056e3f1474905c09536328d1c5dac511c8d8a5b001fdf10382914065e0c12a9b622beb078b08aed9bf1ca8bdadee9f4d9d7933eede27d9783ab7d25c069d6f351d7c83a5a687110c2d83a4b395dbb510188de0adb35a6b8abdae24f74ae1e6c0c3cd4dbdb9af2336d551f1fb971efc8197eb40a21a5f84af0ee488eff834dbd0e0d1882fd88f546d417c94dec9160d20ccd9de02696d46b9fcf76e8e579ab4dacb551e1f9db480fef7b0e8ae301f5a823bd9f9cf540a4e1f9c5a726c71396ed7763af5dd1096a09cc22158ffc70f1545a3218f744b65afac8006c7bdc39b50a5afe607c2af73f700b1b0bf49e9e7eb669ddcc140045fbf5a2f5dc1d4a1c495a6d1fe0871e920f0547a94b5dad9434f00d391666b428f059fa82d26fdd7aa2f2d62ca2eca4709b8084e188ef02cf1bf6803ed4142034b19399ce1db92d4bec0830cd4d8297a0a2f4a6a88b423f042d4a507db34a3f00e111714ed9071dc5866da784f9972a26239cfd31426d362840d6af5843d4e4b0b90cfb8857a411336b7aa3385c95e755ea091347b05a48f792c45baf88fb3144a9a8ee8349b6ac1996823ccdfd64759f37812426e7b208cac4cc0a18451c0f94424ddbfb0ccb5a4fed1ae497eb2c363979bf9d145c7564521a1862f6e7cc259a60c9c2db65748ab5a64a7131840fcaab0b2d091241264c14ada7708385df95932b0cbfebd2a7408c16f72f089dbe81f0a39ad9f6df7f114f75a8f544de5b332d5ec5227d976890ae1de48b29821db4f726c73467b6104f8c4539574cc397b1215f51ba7d608df9440e75a4f1e5643f7533c1bcd92ffdbc22c656f14b3f5bb50f35791a38875de50a41e5d8ef3503887112d225a2b240d59a6d5e2a75b16a912c3d5a24dc2e91b018baf6b25ddd82a57eeeb89a877d54e1d68302b5e9ed70d608a5c5619c33dab20df174a3c359bec4045c86e596626dc6ce3883bd2725e643dc33998243877e752ed3d2b6652ab379e1faef67eb5b6fbc57eebdca56a08813efe93d5c2e64a4060dbd489a1f13a3c7ff7029cbb87e8d8b9137070e090b151788fa3b3c4b42034c7262563997e8990f356b8d3ce197eb2c5bc9ca251ee4faf3da141ad46e255730ab12dfdeb5d1d3e8701a3c98d704bcfa9c19905c96f35092f2c5773280fc9b7128d7a73940c0603acf4545e8a26f06a6a3ddaee60ece8ac8c44f8810f60ea09b9d26340bf298798a43c2e09748630dbb2620de609c10ddddbe9c51984f040c7f3e7f590e961a7bdeaf7c0f34c15785d08359b985448b92b8e7c384b40590696b2546b02236b8ecb627e55b924d2dc5e13ce68296b007a0cb8867c80e4e23f98f958ab58e4b783a49f560f2140109543e155e93e5f979e18f67bf28feaeb6bcc5cd1fe336a36374b4a2e132e4d362ae0a454c307c6497879ca6247032c36dd65b40d8ae667e65249c4fc054bb9093a541f52cc5e2f8c4f3fbc144b76749f1c3da2f0464618ed9cdd08cce1a0ad6980f20655bd6981e9456bdf7646ff5d7e80f34f4f04e9a58dee082da85b6ee9c566720359fa2aa8ff1304e4cdd5dab6cd54f46a338328974639143acd1b4780af2bbda55ce9d7cfd0895bcbc84b8e18481444c3ce2d1e58255e59ac96d7c72092af11b27cd24d93b805eef5221ea82ad0181b46f83dd9c38013918a82a98b8f3abfe59b4e190587db587004e35fc7b36427cfa6cc09757fae9032046cb729bbf750c5192802d31f99c9c38cbf2dcd0446dc53e0425037f7e06c6a7b7a930784288d8a002b2be4e0220ff24e862e38cc9aed1d6c7d0b38859d0da68947e71626e135eee9a5f8f114b9edff1d5492b2b7096c8376410019c715a0370ece9cde97ff024db1b8c6f5dba6ff7aa7a52c7e9183a7f4e88c02f94a4bfb7ed64e243cb9508fe7ade244b8364cd546a81d5ad6d1de9b935e1c1a7dfdd872ee49d67bcd836029bcdaebc901b8e0b7d4ce2582952ee9566b98dda18343b7a8f7396b75c09238b43eb32079da03d65b2f3951d7b2c38818aa09d51f7e6258d79d6baf1f193e48415f87ff80a8fb3f577497aace72cfbefd5a1dbfca6037e7bb023f234604cfa63f83b8afb66f44936603f6ac60942679715b92b24c9ab8d9f8310322e9b47f6c95654cc24c53da0cc5c3133592c8d32c68eacefbb452fe579c31337821b21b2913ca9ecc12a66f32ecd54b2ae8f40a617970783ccadd562a02d0f5146882fdb544be6d1d146c8feb403524bb656578b56a7598deaffcf7fb8eb03b25dd99b379fea0f39594d3b26176ecf8ef7a09ab14daed8ff18f65fd830bd73b41f1a9748c81efc862fd60112142617bd818c21183ee78c460974a1fb11a71d445686c4a460a1ec742234c2d8f689bb9b4324297fa3b9d151c8f78072887e0e30aed957c7619f2f8bc08351406ebf1dee484483204a54333a16fff55424cb10ea0bab41caa1bd2d6c749f313f8ae4cfbe924e48cb04bfdec86008918308b5eef53c733212588c0a7060cdf1563c0238009d2b12d42aa268450f42f4303025b68267ab74091c495c693491e856e156244b7e5d48f9d0e6c3f8c3469e33416c52a4805f5498f4ae85e2632fb5a620d8157d1226470db442c175d427cebdf3c09b274046575363b2efc473519fca73b75f03b2c399f329d9da42686f1af61e84a98f6566d076116cf375a524346f81c2e18ea391a8bb9c2fa7875634f0d6664a7de334bf5135aa6c5bfe98deee318a7c90bf5b3dbec3c7efff0f3a69dbd1bedc0c2fb606ce99b6856a2f7be508d18db99ba11540d56f1a183863808e1fa68f58c34f25b3f0c822bc0dc78a7da424bfee681aac6b0b5f86056d98e001e77663b3e2658459bf89fc8523d9e0adcba1e119252f3ddba57244c59a60d3a572bcebf6f502d074ba47437a6f733869fc8930abdd77efa6f87b76f15cbad79468e63c3b8b64a0756a30a632ebdd2ba962ce187a8feffa04f3a8425b3f5639186049587655fdd0fcd122c1bcce2cc02b78f4a983eff49470f937bfe1313bc74ae254176804ebe11cd3c94e7c6e05067c4e1dee3f436883de93c425ed87cf655d37f5a6c2e0b32b7099cac0fbf80e9cb30aa3ba44a1c5add1d7ecb671c0be78d1a7bccbbd121643a4a331e76a49b3e5981ec01ab4fc1f99c9ca0038a2479e9833cac52a2b66a01d6fa01bfeb1603811996a5b8186ee51bff56ccb52bb1b280c376e7b964d64b7cbe1bb82c0e9fcde47abdd9ef36e364385be359c1c3662955a86d7fb6bd132b45351241c9ff03887062954d33ba76e42288974f07f546c8cf6cce29b5e4a4fa2caa14eeb4a021a7ee778cab3372ea521b76bb982911a987bfab6833c900fb67e027974080fd7398b1ede4b68a271b448e73afea3adcc5cdb9a03eeca32525fe077714b4f5befa97b9ef98d2db1b5b549492fc23822a43e323568769c68acdefeebdbe8a0a719692e5f041fae1f2037994a5fc1bfaed5ed46b0f32cc25f2497f2cfa500f4e8aa209a41584a72b14ed17e1fbffbeb22fc5a481de25d10e31a8682fc10d42bdcb4b28e995ab09412b711f9426458a9eee5462c00b1805f0ee85139f3ce60cf6b2e78f78c39f63e58429694ed98d3f68df35b2a10b60bb62cc229fbfc25bfad22f87f1a3ce7f68d1edaef710032769c41f1c6c02d15a5df252fe5debe39064f19a155b70c74fd4632f5f4de29f6d6c24d4c366e5678e153288df1b5dad0a602be3ac353ad57dddf7a2516b9f085b1163e4a742f458699f002d56f9f09032bc21c691a4dd2877f5b218abb0cd6c6533afd0a3fa8090a2af161bafc577bd56e8655f4b465933f0b305f553c39f8f990109289ba4220b086b6d265910dde63189ad5f6a3052d5ccd037cb580556fcb13021bc3c5507a209521d2469e3ac48acdfd731f341b1df39d7682225e44a9cb2091cec6cecc8cbe4b6bd418f4cab4e4f17723bcc8335fbc6f58eaab0ce7c9ce525bacab4269e6c2ccb1ddc1a95f87a8195cc86f9675413119de16c83d8f4bf4d68493052d0ea788c1841f6e4cb057deac68d0dbe00aa8d560494438b1b300ce313f6a42fc3b2ad97a4d36d314d62a47ce49ac8c8d4040a806b9679be80da9d1412a33d7861a40d8640da700d2b75e5697bfda3fd3f9660af55e31901efa04a544d294b79c8c4059a6c7963f7d5514f6a8a0a42bfdf437f67a70a71b3c12d161b8c0e927f1ff78fab17a2bea3829379888b1496a86383798ea8638e395592f955d02624dab2db55100444489db425aa3cba508d05428c7d839e02aa343f059573b909e0b38acfc574d0c5d1be4eeadcb196c5b3d8c2ff573b0aed4a9f7f45f9b8b2bef0c4a8ceaefc45b75b17e270b06d4f25e63eed5e424d51dc31442c8a863eb339e5950f8ee2ff9a45a1e7ac9828e9dd98158189674ce0633adc3d58ec849e9ecdb2ae56f9edece24322d96dbf40334406bd7cc2d4a0bb4ccbcba405feced12299ed90441f43bb238439e6b8a0b88925edd2a72a1ce1137195f0ddb93f363fd10c8cfa4d136ad96496a54ef0f9f245f77dc4f8c7311bd7a5867107a046f216b6c853cf6d694425ff77141b40be1b036a229b508a050ccb72da2396b46a6957721f71ba9871cce20b71441226cfebe2f2eac25d0d738e52a147ff4a03bdb27ea64258dcda2edd612514d8aca1cc6470d698157ee2e9faf8c58f8ca75aa3a8cfd115e7c21c31f5235b34600d3c6898d27036760d9ddd66574eb9ae21083b27181e48b8344d466ad01973e81112eb256ae150e4b7806adda20f60f422e3e83a899ab6bd6979668d40f8448203b9c6a1da5b4a7bc04e778ff2aa04df243ba3e47a7cc37f2fbfccc65ac3c18d053a63fd70c686b0d9d2f60434fcb6670ce7d682f32f97678f8204120de0c4ce44bb108b0b1809626ee54a017a439d767289d814768131cd59d780d8f24d8bdc27322647c8daf93a98e3a14adf607288d520e50e68bda37e67e76177f8fa967c2feb10727c41f08cd14c8e9c0dc9019b1e48a92419432517c4d259fd6bd7d66a0f5a8a7ff4e1d38e698b70b3c847249cbb93910f08f464d2b2e888960cec1599932e2707a8163f505460a3365f050dc053ebf3c1fa0b2f6205f3012df0d78fec1e797f49f78c9235bfec1cd7363e4100131c6b1f22501eab327ee2ec723480dc9f14d2f283365bfb684122454e7eb69df0c408e2b87501f9ec3313319976dbcb2fa459553b27e91745380ee2bbacb2803a23e3911727c321c9557079e68900e96aee4b59ac5d34710a263e71ca7e537a8017e8df13e12d67bc2e7d129d44ede3cb80ff429e758c6ab0a7d5a7878ccca355a755f075504a672e6c21ac5d3c93cf468cd0ca78cb15a199f6a6fa884c6b3b0fbc22cedc8aa1690b91294e1dd910e971a492278cd2a84e7cb22d908c4ef26f51b5c878e10f48f576dc78360f3455a2da2a4692df40d3494c8f7e1142164ec41d714378d75d6c3c82566b1eb70512d2a4045bce50fb6a6c69869d13ec58c0745d908bd8b9846ab1d9cf3c26e18fcd3faee40f43a363d255a3e1a32b5b260e496fa1aa38a0114f3de6525796492f52f651d15ca8e83efe1bc23c0726ec975b837001e542cf1c4eb4dc0f8a1f2b197257fa14e76b02d4494409a7dfcb1169f884c8760ef118c2106f9c7107282590db89524d2d5daecd4279d7da1ac6c5552e79a4ffa77ae47850e9b7c1791021e938c2880ee5e0ac09991384d12d7a23d27415c77eff5ed186dc2d2298a7aef2ed81ecc32d9355a465fbf317560c4248ca373d07ba1ef6b89b1651b557b5234ba43b752fbe5a8f1c587ea12b8ac8d640ceb7d6c03619a06c0618595fc865e74f788c328310eec1b7e2055fb67a795ae1c9213b2c2368870fbf1337871d5d5ac939a31531f50a3a6a627b4032337d97a95499a1ec53bd42eca7c4ed81adfa1f2d7a010b671a9b79c632c002dd81239d39d28f38665fbf1d451261c5a08a4e88e818d33a09326731b83f7e94cb35c80d524ca9cf71f2a15a0788921e5b518666905eb4fb198a4dac41d999bb90e46436d0477226b7acc7b92dae55cc10c7376439e25930a1347b784dac25abbe789f0ec9f19fc0c1a6071840faa7fd25087e2f0f2efd76ff9ac06fbe668c2b2c29aea10cbb440593f1da43f006dbeac284b532b4ccb13be0afc1a935b03b09deb662995dbe030e2f6b894190ab2854bd0bf063931bf534bf6fd0ddf307164c263e8b31f9fd7c7d66dede50a69a215d6d1766d1255673dd120ddf3b04e168437244e36a349294c40b9f6916b34e6b0138ba6de9a2c42db4e7ceacf32f826429f7e1b835e95694f1a6806e5142b1fa0fc63936db31dd76a1586ed0d6e402ec3133a9daf7bb86077b10075118e623267ed75885bae65c178431eb226a80bfa3a25173f15656f0ca8114c7c7aa8e15739a83ed23a524274a91e7bf720029e7ebba7318f66a14ac72cbd260b84e8e2dcf1eb32b121e673cba7f53373652a6bac2e55677610ba4b36a3c511f7118d7e20f51126068d2f3b8a8a686bb9533f21e341c0974b6c3e968c40152314863261a0777123d6e744cc016630ed9d0cc01a3032e19d9e59ce01f331d83e4357aadc21d6e9d95067746e99d498946066e8b0e27a7848e0f93e647e58974433ffdd77781a6eda600e2ae411fe1a7815a4f9518af9afe96fbaf87cb77dea6e8aaec87ace05edd90735da1111cb45091f87217055c762a60c40729b6a7070cd3927e0fb4a49fceaaff48468eb423c43bddfa2798a08d8b51c670f3ef785bcbc0caaedc6d45ab280b4b56d9072e2041e17a1d6cb4142909f28f6a5a40e3a69fc69b5fe14352db75efd139d37558269030e58330107624d2b673b9f1ed8fbdb0a9fd628b25e155899e3b00e0366ddc11a4fdbdc5fcb5b9afc1e61beb5e839952601be8fa45991046e22be5270763df9cb9d93549a998fd5274b3b85ea4c7f6b478fe5e58352178c9c873c4b23bbb943952fd636ee9bb3f47ba10bdfbfcc1fdb5a046aa6c0c44c034078cd44a453f2c5e2ed2d3a28fdfa4193f18ac045e130e018450a32de8dc77a9b5a58c7f3bea0e2737ba2a3001a91dc90659006cf857ceeacaa68d1b4afd3684beb01f562fbd88c48a415543f2d135d958284cd9f17f9593b42ecf699081a1f8ce29ed0c2c9f34ed6c5d5bb9b6f38d71b1d07c140f21bf00bda27bc2a135f44cf9845ab4b9fbad3380de63034865a56cd19a09b63d30b9c97c5fc125dd7ffbeae5e50c5f9378846bf6db22c4e36c5a7e83f00db739b31a8da46c746f1417ef899f2e5debfd1d58c3da4e09d4b753b1c59cdc5169b83db72e8fd41e530f9b39831e4713f2542582ff85154ab15fa694fe9b1e4dc59468b4b9e1a4e4de8d6d7d16e8612b37dd10c6bb0da7c17cc90c253f3ff7619c4b4066ab1241d0d65ff8fc7a2245119cfa2a9c22da51be208ca58fe5812aca7d18f73d58a1d4714036386382898661b2906587f34d6ab6d4d8f967b118fa923f357d0b30bd5acdb6c8d599d913eeeb1882ef03a71b2fa457abdf0b4905e6ff07528264d804df774754483d5a384b9fe29a9733cf74e2436cffe0d52d7d69fcbec6f1e8f5aed43a9c311912515df71ffc3c14d10431cd913541175543e78bba059ddc9e7a9f04a20d474239abf2d1f9da8149e12bacc6f3afeaadaa60d095ef61afb3a9a4fa03784c7af320725b732f7bd346a018036e0a19918508410c8ea49dda111c5fd606735439f466c6828d3d4a616a772f15588f0458aab5a68f0c963e09ac33b08d495853946b2591faaeae61026d3a9d8da58fef0e3fdde6f008c44eccaaaf50720205d1a6fa5bbb042d9cb708dc08a1007db9d94a829f100aa5fea4d4b2cda8684c09e8a8bb667a75b9c31ec5bf2a2822f3a4a86034f9c4f72deedf6199b22361f42ec96ba1c8e6721fdf693375e13c5ce781c92f68a64b3b0b9771a82f9d63d6f752bea8972a547fc8f5fc29a98941520592218e6dd13153ac6309d68a66619577766cccb52b8ac7c4422eddcbf105dcbfb1c4d254380ff2ffc7309131bbe090580c8ef5c8c1df117d74f47c7c0c8ee0dd8387a007df1aa84f842a69ca0588d451ae965383e67490fe6a22ceee98c54dcca09b0466e47201fc2eb2fae13d58b193544f2395ee52bcd5b1d3560ce6e9a22aa153aa974d9a1c81d44c4c131caf3f58f0b9be9ba7d60b66ceca0de5dd0110b2855bce2e406ab7cf17fec6bd892ae9c2906083d957b3a897b0e2c113f48f2f569069bd0355f5acae2882503077ec97031645c5ba395c0f0fc291a66b1c24d06bfb4d5d5cebbaf80dcdc3558e8f6b94dd6ca9dfc6b134b6c1917507a6045d4b8d9bf547562ff0d8046dfce5dcc0ecfdd7b0daffc7eea394bc7914e230e5f68fda91094cdcad0188735feca61d74dddace9b886356a0b4228aa54cfed1a01ad674fc33d307b46d9651ef7a251ee019690f6490efd00ae6a773a408286e1c1d9a9d971fbd6634cc96e11a874579e4a0494fa5d2fccc8e00df8e7f6029ae171c1f66affc28b462b085f500dd9faa6e68a7433b2677bc8f457965c69b37debca45e706e0103b42b0967e5681174edc52894e5a589a88ff6f230d2d8621cd60dd39b7bd3c716746889edb4bc54ae7185f7d195f0fe5aa0b0c85dfe3c15db55817a9ba35aeb4e6ec15f4dbcafea981b936b2925291b0580a219cce3872ad8ac03d5595d2f96bde07753b5ff341c2aced00c10833f7e01e402441e1c40d8a56e7f92100d3a597035b9450b5a98b22122be9be4d458bbaf61c3e1bbed79f1b6027b74676b058cc95e70c515ee608ce593dfe7db02cb7b84d74827cfba764198134d6a17e0d898a5948d7353c412fe87e73d7d2a555223f86634264d624b185bad7b8fdf8791334000d9775912848f161bf02f02ad197de514c499b10d527588496d1f26fad427d578398963e691b47c9b98e25de7dee7318593f3ed87b09a1eeb9e81fbf2d81c2674ff40abc7b87212c2112b951d235d8e31eb9a2db07892d3c9fc25b196665d52e3e4852ab0951d1e10f1c4116e6a7885a5b52eee2e5b3a7b313a26764b4c02172235d35ad537c25e9d993df1b5077a5e077d0decb15b0c2fe9255146cf2d27332c87d01b4bf24c9ad305bcdd70b7d2c655e541f05aaf6dd164995314f4df51796ddec7f1b8943e8837b02cd4e8134ca73f0191914a6e3d6b5b599f0ff839b0280e6ae78f14b7902dd50c17a01e4ebb16be7f98940f3ca30684d2a752247b94225327ca6ce831694f4cbfc2b7890a70962316553e880868ad691a0a7c7957be3254c4d35592a467230b01531fe47b5e093b09b31a4b84364d6108a6833a678b5f4cce29702ace76adaa8a878ce9c35403267b4cda0e4ea59746901ec500f225fa9fe58652f313457fb95a5d650c9e571d715d63dbebea17718a5ba2a94360d28ce39aa074acdf5eaeb2683ce5d487ce76444bc7846412190e963726f22762472d8b20ff7b72a3f92a5b381f525096a40389f1b3417404f6b8aee48ff26962bf0e13ffb5cc1dfebadb09c03004611d246cc21c0622ce8d7980597a92b46be96ac83857ccf435747a82585af93d1566b6875e02bce576c84c80ed440f6f0101a0df7d6b2e491bfcae021a522aa52af579b68f611555b1057d76dcf56418cd80baad13654b95053a236cdb5d594b54c370aeb9658641cd695d85d6c5edca95cb5bc1f2ab027419b9a671a075b5f79792862a58af86022ffd4e6195754b72ae5c1879d21147e1ee263eaba541795372695be42c7b33607214c9c667d2fa301b84d23856adc4aa62b5eafc48d1b51d18f98469d4eda991b8b43c2174961eca6845efd6a180384615fdf0ff9ecda09e673f01bebac5728ed9b74a6b69c9cccc135368b9e214cd8bd514539fa4c1d2de5cc7dcfd2c6b6b2e44500112460862a5359b788bbf5c42357cbbf0a817557d614c644587062fceb5b55cec5061acec8d8ac3a842252a84579b4b5eac4ff0ce0e731284e5d8be2ffcc0e9b2ac5f9e0e29f48a1de6ed9a0f4cecf4de5828f99ae369405171253767858b08b7bb76b276cd15b1d28791dbbace452b35f7fc13977afd2b3b416223258a1ba84357a0e020104c2cfef70e63a6bdadbc06d81bfcf1f2f6952ee0d2c97626e0ca958f55f4e03d72c2564d5026b8b00b412caba692705053877826e37419c0681b0c8a6709b2cb7976266b96e8a83e9151e81ca52e2d6ac778d335ac692cb85f97da5c96fc19d8978fe11444c8815b82f760d56a117e5316378095cc9f3c8054d794d38fb608566a23515b1488daccc2b0fda43d3ca7482bedd35a09ae8bf5b3984788de53dd3101a246ca332447bc65a5dc0b73ce3bfc64c5b2d710d13ffc1a735e288023cc9df6015c2930a8b460466fbbe09c18d68bb3eadc5261ea2d1a881cf41f14e7b0c99da4d6182287dabbea60f30fd2848fd57be7eb99dfa9eb09ae8f2740ff118b62b6352867cf131bb126b377e40d32f64e0318a3a1acbdd180d997d9d6809689e3b76010fe820142daafdf609b9d0318e990d5d28b8edee306140f7522db0db557275213e3e979435b78c85cd5cecd9d5a20626accef3322b97bf672699975fc3a1012a7a1831d5b139f7c6fb4ee467995a79e1ac2e9caee74124c07573029167d86b55f115031a764c217726aef7b608a9edcb389d8911fadcc76f6a5c63ac56c178f7bcb6bf026bdceff637f6a07e9141e4f4083f94b374e90681a9e6e504378de3ec74b3b4658491b936f9830f2114492afb8ef9e7a79b20ec3903a4a3cccccabda4a44c5ac879c03209e42ff1c7bf98b722d2ad90401ef729f73e1f81d343ce8fe368b58df8448bf0b49fb380731b5ae856bc32d8cc5404c8ef2f43394a9d157c6ed8cb7e0104b648bd08ac172ada83a252448f9099450f1daeddcd8b47a78cc13a5114d5ee6e76464c19480386ee1a40472c2761ac70231a23c2b03e4d721a2fe097f92e77d0ee827f32511d109c66db9cee9cea79ba3ac2aabd9824d19084f38bf01a014942763b16510184cb2ca250519060565543766e4ecb30d2b9bb422f7bced7cbb5682e245eefb45f1353db6cd4ccdc2031231279b7b72e4248b36294e78251a931639f8ace4f6ce48a640b3a469b315bfa85f29ef7d45f0ea7b31679f90f68f6b98a3058c48cd2aeaa9b70d875bcfa84bd8f0c324b6a9846baefa1981ca412d77f5c6ba9234e16b4cdf3180c42eabac4f59fce156684ebe0cfa6c64d744144a25d805e2a4f6c2ac051d47849c3e534edc29aa5e89c6210b096939244fbcb2be6c43b9f7c8619b8f511a1fec6d631eab2b8f0e20dd2a8141900c0d1f89bb2ee95ffb1f132c4a70dde2cbf8f510e3bbc0f18a31dcbc589464b52f0e1381ac0c55db06dd79a9deb723fa63cce4cbdffed7d9549975965c1a2079a05c66f61135b3d62110f01dd00192ae51e38ee7c6ef2ab75388eb87856218fff4e3d038b27616feb96bab854ebaf54ab7e5276a753afcdd5dba42dbf423930d197940766b0eee355b5e987517415cb7095ce0c862b4cbe24712c20d67edd47c43a65eb9daed314d756789c39fcb7f8a03e036b487cde09dc3e709ee77727af86c2b3f0440549eddf9887a87c13f8cea77ff41d8d4dc1628db7721cbf1317dcb65d4bcafc58f6cd2e3c29016c845bef4b0f3f88d07e204c5476895ce0bb825fdd9458e09cc5f9f57bb40ceaf23018d0bb1e97d9f14a8a49d7c896bbf65b7738da105da63a3059a02aae7b6638da677c4b103864d235a8e2cd00488c035aaadc46178d6dde50c8c49015379178e136fafcaf9cea549ec947ca39ab3c09f50385888c38841d276a91abc902b47489c6f07e9b2be497d8e967f2158517b664c50c2eb560b3bc9727b47a2c50ff356bbbf9c57738037a12a50d4852a47361349e39267e7c5b8b9580d0d70d9556897e007213e8db8e3976ac80d9e872955d32831517e1cddb6f76e17f1fc639de97310db76d1d46d21b44e03ac20e2c93bcc6724066415753835d7a6d0bcfbf8ef7a6146c41281abb74925c555c4ccfedf5c55e5e946f958a85a707d78c1ed667e8bf717d7fd008ff99b6ec47c78d7c1370a1fa9f67ae1a239e44290b2ecd0275ffb4a960ab0943c84b2dbf3103c614bf4dfd0f10fb57aeb268d8cc217204c466046ba194285330fd6c22dbaca03f8499784594a3d2385ae0bbfaeefed70b11145e1ceef154275d2b1ea767555fc2d58c29a0ce47248e17f0a9e1de2b39be3f0454f7d282ad89be306b3228827dff5527d9c84b63ed5c906fcc392d226a7a303af6f25cc12e30b36763074f601aaea4eb5addfdb22a01f84584aa0e1dd3ace619b21d1c9679855c12b021fd9a24e46b66053449913f83afd1504f970314dfe322e4dd6abb195b263ad8d1ea9db3986d3358661178ae7c59c18f571fce0f116405ac6951b3106cf1bf23098289d38e153d9a497fe7f6ae9814d26c2bb81812d9df79e6e848c17366b6a22ce29b642e548a537dc2a51e68e63d027e867cdba61ae7cde12644f41a6f2228ac38a831f1e0bd5da11b4c30b86d1505d9b839da5e9c3ce11cdf4e2561a9ffe2fce2c0469a2083c7fce573dd320fa060132fc1b7590ab17f2790f0b31a3ef62f82915ee64504fef0f81445870d294836b3dfb62d428ac0d90400c3216830d81cc9c737e8b35fce1550adb0509648f4dc7bb65d61ec4697723864fc7cfa4b4074f8d1722267e1686a47aa77677fc2482b52bbb19a58d85b67de9fff9d06d944169733d5ace33dd8f14207b8d09522559bed6bd6e5c3d31c159f04cf127cd4a1b2da9faee789ec9d68d3c6175e4472d4dbd1ebbfada21ccbafb8b820833308721d1e0caef6c600887a4371635aeb19eafb04c1fe28f397125698477023ac14ee177688340a4eb38c97014747bb1704f24db9f511c2539ca63cfae983ac5e43e716ee74302e0fa9f4979529b5d45940f9c8e48a9eef1ba5e2925c9dca8539d59ceb04429716edbfae06a3260b31fb4f043de77efef9b2a7c0fa073e1f4058bbf9f81d8cc73eb9dccbe9a7955da158a0e5b2fe5e62e4462c630b943589a2f0f8015cc6bb393f91a1944f2ee4e44641441cbff68281b4840995a009f373397299f947b6df3ad3423e44d4b15f65b1db4599c5113f460c64767abb9e155886e93b1309f338fe55d2451eab298b7639a278dbdeefe7946d3848965026318fb51c183708c9ba692434460de17856dee8caea0386fbec3a81292f130c41343e05377743e1c850314032486175c60e81eea2c97c34a0421bbe0c41c711a9f8df5b4b67f6f9abc7d572d0b5fedd3870aa39608e506929395c26c6b7357797e4da8e9b043e7f523db7763daade831ac8132473c9ab99dc1357a923993bf3b16a225a3078c6abf5b9c7b80b1ae9d282bbc57fa086ec399ad4230f5d5d789fcff2f505a81e0d9c42e9206067c655f1f18cb626dc18eb76aa81d08b5f712cb6f624f351d46efe00b25fce92d8121d5c8f19fb2a083e52257a024dc259800bf228e4b86b1838f270e0493fcb9e374b70639617e0e701124940f42921d13684686f20b6f7c068196248c94abfec88fe3f261721dbc286da43a80128c8d32c85f7b108f8b716c90b9b293ccb1f0470cbfeb103dadc7aeb398e6f2f143491b12c347f161865bc103cc149be2a1e77d18075aacb9309e57fd3342b716247202123cab3ad5d3f68cc547567d14bde4b33f241611c0ea0a1f5621089292328012f4a8d3387b2be42636369f434d985525176afe22e8303ce9ebab0f8bdb1e1a5ef69b4d9b897b2988bd05c95db60e67b035387227a57596e11ba214bc343708b26b4b47d31266b5ebd9b00f0462bffaa31be48761e0d9bcd64b09aba9555da3dc676a47838c8128dab61dd159c695d3aec9496bff9db8e18fb9c013c498d183168829c8ec5e8499f667d59b43f873065fd2499d055d243e047854858eb5047399ef835d21cc9f716d8e06d03fcb715a4c876735fce03c72b867a8b8ada3fca801224786a820dbd2852cdce87480d08bcbe085902d9711a763832e10eba2020e57bb198cc077bdcab598b23933158cb1a92b98a99b36c39bb15e6bcf90a20f6a44a8ae1dc024dee196f6755c8053a94e664c54cc3fc1fd7e952c3f0195a878c9b5b6154fd2b57cee862102569a18112ef18caf26618e25839365a97eca505e807ea0181d65b165713ce37d47645ceeb36b188baa64b3575079e4825598ab8ccb381bc049d94043744303c7e135407780df62f6b9052331b05a62743ca60042d9900dc6b7e236873bd79724dd9807474dff01d655c36dd62ab8b0e78af0b792e71fa94637bfb47287a9354dfaf689f022784c6044baba0d82bdaf6aae1fac0401960388e0a3a3eb82251b210b8201c6d5ec365bf937a265ed058c2c4a66d033c282fa85e24c4ff40331f36807f0932a6201c66c1e19812781775d1e38229a35dbf99049223821732c5a3de2df9b161690e2e8c0a50a796e3bc6812c3febe2e728742c797ac1be8763b49f152074efe5f12e631644486ec190d18888dafc6bc9325eeabf6045df76b212abdcac0afd6b73c40bec3f900edb4494ff3d1d6efbe6bb32a6a0e4be99ea539575905a2f5e09ca27528da5890846b21c8228e730f48fc6b3a3b197ea43c845afe6fdda776b8a25e081884be6a2dace6f404ff02a141f7454efb8135111e73b5c0ba6c57ae654da8e8d45740d11a7e28af5fe3f949f3f5f41feb1db5e47bdf26cb6e069bad3b59e280ea0f9aafa34e1ed9f125c5a84524b413ed73365f2f5915ac9f0e76438e5ff97a033a5fa0db6bd837c70bb2479ff3b5de3b23b0bed25e9520c00f0504c2045f214697ec259adf656384fd9e9fc48ecb395bc3b8a9415613b1f945b12b127c764f6b3a7f80a1dd747f9f541ebf4b28fc23e62d1f2a6db35503cd9622cdcc77c713b9a2d9f14380855d7944decabd9852c66a8fd1b4065399221f7282119a9f9f8234d3895dcbc54d99378f8c887cf542e8733902de08f67592dca7815b9ed5a421c513876fb2c87b40233b5a0ef4a9744d05ca4f931fcbf608b032690b091bc3246d8ee239ba0e591479aa4d89f44825a281a83f364a3ef085c0681e23c51e3c1ee2c210bdcd616d30b04e21e2b7bbfc37c2393dfae01c942895e1b37d09214693da4bc1d34bcb9c1901394e9896d714da30277fc0b332de9239440820a49fc6158500adf2c92b0710991f24f71fea9bfa3906af32868c06a8ebee2fca322469171a3f0a6e8211488c05214ecbf14778a9059f384a91541b0129614bfdd34407bb2616fb8308012ebdffb102b0715a541ad04828e2430ce8f348b198db6730936c2bdbe7e22ffa69f34af1e218439565270d23aa11540d626e3cd950e4d4ee56acc524835b4e9ba3a79b2a4b8eb4093bf4b0b088d27fb81e27d31ea1a9e6933424c2afe0f6383b22e25438c5e88ffe3ba8bb3500fb4a4096ff92a17a94c1e779cef66e54c0d2f6cb151aa241f938249d3223a6390cb33841dfea3c9064dc4a90537cab471feb5c24d8d85668ed42d2a42409887db0c787ec9d538ad623bc89b2b1a23e2e6b2492fe8ec43e39ed60c2fe8a09a9c5fb796ffae8ae40cdc3f04f20e9068be9f2cc8f11a3be6878ba52989d487431d3d297efb1bbe00662cd8e2d79489eec416f08b4cc7b72638a8a54e1dfe1861c4dded6688693de67bd5baef6c1b9099900c62e294e51a5d04d251e53f23a239ef15d671fbc9489d352f9fe7fde9d48680898c1f1e1ec39b6047378e9cbf368e22b6321fbe7286df90c833d6242b5276229642cce21fb0ff6fa51f6a39239828313ad0371c9e5c8e394de4ab43b2f4e3c2156908507a697a8f7557ad98fb4700c533ee31a1f283ee51c08145d38d00eea404f797ab956be0b42b5f95f93bddaaafa3bc46a2bf42eda6b149f21ae617e9fe914417d82b71bc83bee22bd063c73b274f8924de7c003fbcee01a0efaf7ef3bb216ba1222cab2ebac8a867c44215ad7e00ac99adfee8ef6c61a2c48b7158be0a15479df481ec76ab8fbd7ca6931ef54254f6a1db88c0b7186cae84f68fe6febf42b883b626c73a9e3f42df57427c12182c58fbfa7e9562de73cf9e795f537057a00e4a4aa1514468bdb86cd87456505a7e8dbf780bbae6ceeb0e57c3b313f8aed3162a5864766c7f3e97eecbe9d440cfb76e54b39c6efa1f35a39fa7ae76f6cc6fb1a557d490ec20f5cbfb6adbd963b74d1f03f3fd4c77c14ee865fba905bd1277318fda34c72591d36fda4482595895991b946a5af12836e0e14bf9e82674578680d0cb1d41b17c4f9cc87a2767312c24f4aa4136d4898194585d7363e7998c3d13c9f114484c6bcebdafae6a4489f5f68cd68f9318620abfeaebafe9b75a17ed01ff92e08fc12380da57bab485f736fd28292e0d0bfb1e24c9b6fe6678f916db50d91304aab4dc7bbbbb937394292b986af1cc0c9d477c92701b8db39adae83fcb84ce8c38f0c4918e755eb1b1c94a4a0e7543b5a7d75ae9433e3efe6250d1685807cf9b3e97cc873b1eb7383ded1407fcf71dd02c8f2582e0b2a7a1eb81b758646192bdd70ea925a6101545e4b23e487cd49b94f691eed4fea0916e3667233cb2697e663ec8f0f245c97c4aa034b2be4dd99449a5b1b7bbeb9002c81e4c498c6222e3b887708e3ffa2cd7e9625500678f91ad9e431b39a65f1137599fedeb2f36b4835a40674264aed7ea55b1e42e254881979b453524b932f9d7435f6de3020f5cf6277254ba98a4c421f5593f2d3de8fcd62d0420c5671d94059e24a9ccf47c7825aefb5cac0ed01f148ba6d343cb6c7eda088a371f894a073d557d68fecb5b18aa83422ec259f5db1624f23cb0d053d5d64728968df6fa697da87602665e2ba8ec624cf7c2938f5e4b6f9076231d578dc9775a1742b478330fccb64a3005225bee45855c921153744ff30476bc830186118cffb19cdbbd9a59561ce3906d91c60cb64ef8b688d453f23f8b2eb9a32a086eaa0941f530350c562fc3dc8e070d3d1607d1b2d60ab57b2f6cff9c7d1b4a2867a80f7fd9278c67c9afc1b1059920b60c8a84169b6b7730bd49a1375011c299568b1c81781951a28a5c86800b655abdc8735cebbaaeb48aa5385fe79fd58123973d4155c12ae320c596d15b5f9598a5139a455d221096029b835dee0d6621be49daff212f7037898c554eff7e0ff257ae91a7ae9065ba780e3fe083537bdb2b982d75fe3390d76be7d818aab577ed13cf18055da10c5470773033b2698f78bc9d0e420f2c09dea074d0f82b57fe9adb44f5f6ed5ac2fbdb4e12c27b063a005c035bba29a92aa31b7222eb43293397925ec7e0382b1d0b3c09c53ed17e9c819a60e7c5b35167dae46bcecebde7bdf1461837234a82d0504aad90cc82c045d4de30a683c11058a7b23ef645c7f5168ffff750f56d6dffffcb2978ce7d6153e7c61e1469545a8e0277f04096e49f2005f8a3e276b7fade2d5f12be09dbdde56f5d82c194b7602372dc0090f3894c934952fac33dfda443bb2c41de1932b235ebf54156cfc93434c2adf53229a107b10a1809fe718402d1481b1f72108f1342d78226909b173238abfcc92418b07705187bdae3db2dc932b11c82fba852679d02e37e03eb1a48d77a8869500bd280ec166512f98ec0ca45edc2e6f37f9d1f5f1361ddf3c727757e166d816b2d024839125565d75ce3203da5ec393b727a312d1516c73c209a55db7cd89e8b9426e9966a0fde699d43a7093a39abac2899784cec8e5f657b73722d591dff20125bcb93a1325c16aba37d806ce3d63f938eab47e55eac3afa0f178ab8f48b80473083a8bdb1a08b1b7b35ba43b5d90a32e5f8af47a34fda606fcc12305a29ffa548b301a8bf831ac78cef94152c363f8b0df8a055c1523bc974a03e6401fd59d5f8958dddd218bd3a81c60176fab73f85b3599c979829005a31934a605b1efac587418ab1fb19d996b55163b625ed2a7b646e5c933efc6d34435baf67c5f1f1b76f6d7a236cc7de5b6595271eded9f53533ac605f965fcda3fb159c4be96b3c33bf72087707d8253102291efc04482a1e7f31daea8838dd37b2d78a4d8c371663070674a654e50930b8d5cb025f2b48788077d0a2c87284686ee4d3b83bc317372a879a513d1d22421f8572db264f44df5578e936f912ea1ea3bc4625a51764685cfc641b01f9041bbcb4460b89ac0edd9890e92488b3b19322fbff61491cf29afbe5824d19d88bfae0e4f642e98a555d94f6c7de45bc0f71e882a6ed6da6e55f306d520fc6d428789331acb2b405e2fb5d858e8bbb82250193c149b0b0c01974e4ab0a14390d2fb27a7aaab203a633fd953b2e31929448912859c96c47eb1286ac4c1fc82ec2ccbe262320439b7ddbbbd6e9cb2b26c17e178b20977f22233a85a926ec3f2aef8f46c3bb2ceec8193388ff1838ddfab7c9d1ea726af80e3a09591a1fe3af65b548414c05ba6a6f37adee08f1622f8782022fa68ac91260810763c5541c26d95e21c9f945fc902800d63a478511de391dc43d14e7dab025abea37e036f1f3b91924c33ec5242ad122067e74cb0916903ca5e147daf2c53b50f427f88214385f8f98634b0ce380ccd238de0c64eb02f5c4dce5f7ac55caa90d669203c687b6ab1d6694d64c6e9a7d39cf2c5d3418aae482966d33382dc3e044fcf2e954a3ed00d2f99eb2d60a24a0ba322ef35b08fecac29c230006231257903d467a0dff18d37f807a7e77571ed3400abc7accb37af47c13674863e4cd357d5914563da86c3c08109b5b7c503128ed0fa979206e8ae3f108274b168d7261752fbaf15e2d4c28f0f1c45a42e68b5465b53a4c473c2dce83d9a1471115cebb08ab966ca65a71c7109df25f762c79dd6917b927316c744c916965d85754d8b7a22aaca780f3ba459519b630b0e86c2f85c66c989a5a3b53cebd64463c8889f7597c60b00529673090e7b54ca4fb297c2218aa70454af02068bd4bbcdea6c49b158ec6f29a1093fbe6c50127320ca44977144101b771f52a3f8a57ce0cade6056aaf6b526dc2130869c59b98443f618f1d4329270b4c599165349fa0aa3c3f79bc13bb5a3ffad738cdef2053dc94c1aa97721718cd27ae7b62496258ed04c4b2ead61f8ebdb4b665514ed4a320a35f50408818b4b8d616ce3eb75fd4a2aae55603b15fd617e8a8c9f830bc4af413ae3cb12f96cc8254ace9775ed9e4c96c5d1132766f7cd44f4e47342739d25e99c626b78cece87470ce1f640213dd904f2c5cdc51b65e000507e21f75330f3e6a86ba71951443785fa504062143b3262e273a23b28c3ac9043c9b87dd21bd64affd8714224cbefa80f195bfbfa8509eeb0a82b708183229b95015800276b85cd71a168ce25f1c417b116509b3ab3097e3786e178341d8651fe1819731ba625b9504be307dfc71563af6887d9b4ceb2d8fa2384545c4b49d37394c94e646dc08bb5f39806a426ce313d51569a3236d04ae24c588b91231c050c832f22f3af704fd4af044f4d34341ae28456bd5f94c686f401b8e479cfc9d070d7228654496f412bcf5db4449c5ee10f3391d2a3e5854601ef20267b5618243fb1bf8c4c50c471073019082d7a9095474f367bfa06b1f1c82e7992ff7b060fe04167759cd803bb3b75a6d9df50e9dd3607a019e64f035bec28ccf651b159e12c6696a78b65d5b3f8db8963fc44aa36e5fcfa98cf883dbfcd4e8d0a3b7f9942b11488ffd8b864a080e989f33e82a2ab577a7d058fb26e7ea167a15823274bea2076558ff0c5b231f6e098a2d0cd857486d1763b2bd0f2ca472853c7359bff6c395ba7753b3dea1e9463e50a88a6f3dacf31a30440976e9c69ef51f778c91a80ffe3a281521a7fcdcb85c5b8f770becad6f1ec170f83bc34983aba60d61dd649af4012e07dcaffde1bc6b495f9c009461d9e79e9e87c4978122bc89d0b4dbe8d044452450f4e7be714b85eb428ae4252c0495160b936927b7daa90510437f7d72828c9a642b12f13b3d6cb59538c96e7b03980527802a5f77192cf693f768338d5469e558653bdd87fcee2fb284fa8c80a64550db6ec01e38e8a999cfce09ea0b5607fd7bfe662e7c7c7a456f1f94a1c7ad7864f4a0bdb6cae76c3ba1b47320fef96a7bdfb5ab3954a924d826bae854049db95e0d6374a6f17197bc921a7c385342e7d2579d9d6a470ca13804732be1ad3745b92b13e4d435a1cb1e3050956447c088e94c15629ac28f617772ac838275e0356246550b17190f19ff6ec5fcb1bf6240c5fed55c2a98caad01f55fc9c6b550be85318bc665dfdafb5c9919fb7c61b0fdd9400217a8a2cbff387ea4043b945c8564cecba64d89f2dcc11788c3bae39a9de0c795b9be6a3f13eb658bf815488444a759fe487eeaf99de615c8b4d3a2dd0ba3b5bd7a6d6b33ada1b5bac58257dae596f714ab2a2adf3efbf76dc6711bd5d5275de827f237b0a4cd2d1d993a6309820917732a9f207c38fcb92051ccc09c6fb9b34f1cc8eeb27316be6378d4a69f3afd5edecb0233f9eeddd8ff38f7305fc7387d71617e826f18d5633d6bd00fa38e2113abaefb8be19dbc48b41a49f07423afbc2831f5a10c06115c6780aefb11f450f629acb8d03d6d7ee7bd8a680bec314eee308dded6b4bfd24626611d667ff38ac4a51efe63a3e6621e1f0380cd57a0716d063aa9dd55ece9ca22157ee87c0900c14462e5de0fffb5213db74b73f6d1929181154e3346d9d31d09fb47ab6bc5546ab854f9e6472619ed7de8d71498ab722b88d61c07bf3139ef95a92636429281307d299d9d6c66471a1f28bd6cbe33bfbeebeca6c864b22279ff2b67abf9ddc882305a48c45cbf9be9f636f968c6b3ca8b3baa72eac29b7fb3807dc5720d0cb0021c7ff8d621d4961d944aac5260111420f8641466bb40b76033ae87756b0ea4f5999d9eb63018aa81b68d85c3434c4dec3832d8399a01efa101e85ea0fb026a453e21f79048f74c47aa6690f946c00cb76b9c3e6e9461a88fc24b2f03ba63cfddfb7915c2dba8bfdf5579ec2a383143f500070b38a438a51e4fe7db0372a82eba715e38f862665191db750bcce38674301ec790b67b8b138090684bd7623571a9422e3b0589fc287e817ca988418b1cda571852ba22d8cecdcb16c9dd0f0ae4c4064790f6a8a66bcad77b975198f7de96dbcd56ae4319e3e6da3b216efd44cc4364c1647d0abf01894a67d3272dab812c0e0324086700b4f21c3ed394b87e66a34705d5f624e0a60a8b1256dba6a870dd7b8a5c57bd24f156ba76e2bf87f10915abb706d00060b50fad52a951c11b483bd2a4d12c090657e492bd03cccc60e94711ece923125cdbbcad72c142b3f21e867ff841c80de251edc6be305b3733e7f056d3ce3838ce3fd48d042536445cecb6a4f7f6e410800ccf1ebe179ec9bdfb04f6444fb53440498076f42303fe94eb98c1a3c4885c5d04d549f92838b06e16fa3bc0bb86ef015d65ccfe1671306aca4e7f5abcae7863420c9153e2980724037c0e187ddc2791dc0b47412df4745d3209cf15f6e923540d4cb36eaa8f03bb71fa256fc1f00d79f220f8e8a8eaa279bfbe63903aa7997f5a2dc1578aef8aa39d763488787bcacd9e3b29245ffa37383179636f6e0983136d1fc969c0d2fd9f10ff68fc51e93bbff9436b7cb71b962231b05c3486ddd592febc7bd2bd32cfa159cd149c827f0d4024756a3e7ae56eaed59b6d256b3a8e79ff6e48ceea061453909cc8ce8eb1de1c542fcb257b5e1434bfb5dde8cbb43082287e21227bb77a114ce8ab5ad7a63dd1df7ae19ab1bc7cd89f26cf420d2090017f71165ec9e201a9a1ad26b8381a2731599081c4f6d3f5f0d8dc715de461ef934a9e75c864cc33370f556b226a9f7c357100d4dd8159df793881cd45701024d8fd2120b96124b9985e40ea20f15bd591c876a9b74e0ee03e7e717d8490ecb48628bdfae6e819dfd3f8a524e826c5f9ca268b0d53ef187deac7ef241fead6c13e54906873860a41d63ec6e262e29f70a284be5d4652b1690e5c9cbdc175b8da10906d4a73017ace730a6a443d982691c08fb73a2f641205a28c4839ccd9c3ba62abf9879bc6b97e06a4523bd9afc294e60a3ab08ec34ebc83293271d98a8795783fe339007b096e4db642391dd9397c96d794fef45a967036404d9e9eb66ee1e2e1f906101db1740dd7c7e7b935974fecbdd46e3dfad688e48b3f16daa9d45a759da1954ae988be3eabd16e4323f255ab3c0bbab18ff196883a0cb7af1de5196f805983dd3a1c67a79d0adac68eb9e4bb61a77358c783d9d03b1ab66cfcbd942b602eb603e11a82261878a7dcec7532f08aaa1f6892a4aa881f07398429eca4fa3102c3d6f54b5225adca9c2d3b2bb407b0c2a0774010c7b14789f52bc2b6e19d3ac90e6f109b883c7c3970cfd289beb12b81226e10b0e19a703a40c7d923ec68fdc0f3f88f7c5d620fd2ccaffa9497b3d68bd4df35f89408a3c6bd02eb77eb6353a2dc9b2f7d2b35d1083f568b814554c62355711eb7ff12603a2d70218b7acdc694777a7b800cb12e48f3ad3c1f0e9f3d3c8553894ec8aff03f4c54779a85420d0c84182e06562e0f1832f9d048524f945dbb71711ed8d181a532d35029f1d89ad6980b27ba985fe9addd14a620c43f1b77697759279788b9603d23cec63c991fd7f800a88fa8db530e55433b398d1a1c6c538b6fc119b7dcbc610562eb065caa9c7f9ce5af54d3fb182a54e2d39f374f3f5c6c70bf8228bada8ac7e0b5f9a4f00c67133ddb74dab53b95f2bd114879e877c4e44eeb46a51e24e684dd318bceb5b8444423514d873ff9f034fd7067875e360ac5cc61db4ef07887f7c2ac72eb6b829549e5750e1617e40955a998aba8be1fc21f027368f60e511fd785cc6c6ec2e9afb52a177c99e75beb1a877ca53b691108c58fee9404e78ef9344f41ca176366d0d85b3af330f9b20d3caa0210fe6a4afd7536a010c5d628748cb20071f69951697d7d910756f6acf33dc2ba1215f4d1001fadd05f7534efa11cb6ac39205277ad8d7be8ecd3153a7f1c752479b94d66bf299bb07b518a6100779991d2ad43367be63856a6b763ecda11fe56a1bd2a0cd5b4727a0a9e4da141810f1046099593c8c5ee2772627c00119bdd44bb7e5804460ee8a4b22add6bced8578ade4ebe3d764fc849629fe308873db60d7d328613208dc4f3f8c22344257e297213996e1ac3aa4f21dd66d179e13de3ff6318a7171846eca201c9737ff271917b20f22a9d1341b6347195ab2a3ffa9e692369c4aea246d8bf98b3534cf77a4fda6382fad7d9975aa56218ca7c9045c7f620a99f527f9652692137854de86d7e8a4c53f0ce32ffc7c118f2091b3caf5a3bc3c192d36cfd91a7b76924a01a7dd90be2f5d525455f8534c1b9a3aa6ebd2a7a31ab12924ad3a06fbcda9193034b6e5fbe40fb302df5310c4283ead027e4d904f50d9eb0aac6a3f26418a6c343e2e21452ccf6fd28c1cbe6009e6c88f839affe47379ae81984463c00de0bf31a58aca0511bbd120b4ea3f51cbd9892f4a2c1d44921f91f1fab2a18432dd954dfeaa19eea67be9acf30c9131bc77f944670833b0a617ecf0842665cdd858791e8a3038ae715e579f210d3ae4b5f64621f6bade026749c0a045c7c3a37ade1599503186d828d79e032279ab93d23515e22d5fe17d0534b88a577dcf7d8e2f2523f6b1017f17d4f48b9370c41ebba9a5a994bc01161a3600e8c7d7aa655759861b8343fae4d567f28319f844fd525bcfa1727265de5b30c0c7447d5f1e0a875e667b4a681add7a910928e3da4085eef53d8643e7214fa926a6848b5ab76ccbe988ff6afd68aa6a32cab66bcd49e8941eb2ec73e0b7cba8719a26b45d514f9dd19d10c97a80552e46acca67ff7e8c8546b11bc92371aa519659ec565ab984ee31b72c9479a91376a04700558e7576b716752061c9a13a23203d07f307e8a8640467d36ad8b63986f4b41bba5329e48394dd614eea414a66b46ccd492fa71978251ee171a08734c04733ee08b64fe9127494e4fdc868d225ff6bb110d60d0d9fbcaaa1c61c9f0870bcdcdf8d4571207825e20090e295607cf76125ebb3ea412ec36d1cfcabdbf2367ffdbb6d86911e625b576203368f8f65e59eba3f4377cd44072c75266feb2ac8e92a3f7a1ee987af386a837b7e716c2d34e3558eb89d22792099879e1b9c63695f08ae9038e58c75cb151d17b8e5d2b83bfdb19d4f52bc7fb943a145a99bf9f3978058e56ce9548511127ec072ed81541e57cace6e46e4242eaba68f522b71f50d1753dd6cedacfd018212241f40a9c8c1c0725407d403152abcf267ea3e24192162088981bbb67c404ac7b8f441c373786a94c5cdf0936a4c4e3335711df79dd39cc92ff404d1e3da08681ab23009cb5b57b0c5230ac7f8376b68ab136a02b21fc49a68b9ecd7071933d4353e465c7540094fe6ec7bdec45da37deba7edced79de01d7fb3da33b1b1f5003fdaa19e6074d457df4f5cbac4a6111fbe74e70ad056469124d3807505da1196e141c30e8a5e1bf44cad744a7635cd8acff4768b332c85d61ecd368e92ca6be92675e875f2b0fbf3bfa8b2a9ea8fadaddfb92394ded23cf79fa9f751a39163e446d4a9ded0eb15b9bb20f21c4f4519644427d70bd180d49d0dfaa8c03981adc4b0caefa08c6052bd5e261e6b74ba8b700c2e0fc83059ed5d3da58ac48b0c8641a06e4212e97a5db13c57fcf53e95fd4cd7136f3b016c173f9963b92e88890f52f72534f6a699f2d4cb71e1892f3c46b4883cb8f558f0295d884e229244fa240892132a1a13abb0d5e92a27087b6e35bc19eeb1f07689499f2c79649224b8a02c98836947902c479b8a8ffc1158804e75c8b3da5928cb291afd8b727268dc8f904b7fc265c042a7d31916a90c9beee668d6e08f1166dbf15dbb90fd915ea0f23917eb528dfb6ee93be53ccd06889fd0c0ad27d41b21baa72a3fdf8fe137db9ab49f3a1077ba92979e5e2a056fc1e9f4ed4204b8162bb5e876d3aec18b89982eb9a5c2ff744cf04dc19da36a4799afad1a1ad0df8913413fbe164b46e3c33eb7b46e4c538a3c8c76c88edf0394902bd45ddc614afb951160d97728a38c38d9a6e2df9aadd81cb0993e7b639585e7bca8ce68ab96a0bbfaef8e6c5a238a766fab32058268924a0c0b725f74dd02940a189e6ac101d83f37334f88f60c641fcfa9ca5f4b4a888496d888f146ff2496b8b887756a200bc007cc003305bd3b7168dd311d37ebd762b1685152ca4a89a9ce650ec6d9f6ff59453738889239b5e396ff613203543502be470b43374a5484836419d8d01f8d64125052e0d506148f42391d8bfc44c95a2296de7996dca2059641e5465d8553fef5fecebc845f70294acab95c6ed8a811ddb2f4b5ed47880db4b82e0a84eabfa8ea7454d0aa52b1803407695ad77283866e10b1696f44ca7f5af72f2a13b81484c21a34479b190fe8ac94b8d5e618e2cc3846aae1e48236d3dac7df7ac4afe4cfaad65c629489a487445651f22e2c368d47652724e914750ad63f49b59dbf8a5def30c487c4cac84edfe6f05c09d68a12a3b1453d7b2c2ec276fdfb49ae10a4870eb12d32e77e3e28bb0fbec29444ec50b9f86d8cff041c4acf92bf72ae804ba4e8f30fe60ffafc9e5f424e6be004f0f55f305220bee0657620b1993e1d39e96ae93af32fe3e95831fbe1d65f8bafa5c93399c7a3c9919995e5788321125050b6e42489eb75967dc26c196238df2a18c52c8364c9dad1336ba3b5b671b380d4438824af4b810176675a5266f96058bcb1944a7f25d03f3fb65c47b411c3a38dc1ba9c4c28496bdaf0bb67ed9103f89afe2851be1b46e22d122b95ea58e5f61f07f44abb1206bd7bf3cd4eb85e287b3489b7d368698782d3185eb9fff5ca2d8ea810eb52997bb3fb2c4ed2bebfe1b801ced7eed3966d105c3a874c68943737d9a5fdb32cca68d807d97933c7f28c29eaae01ebecb7a0aa2ebd692d17f3e08d8bd344a6464f5fe5447627636869ac93547e7e6e839302d8e67345d8263164a99ea12babb7de8c86ad721629755bf4747da6339759d9ee6d5a6e87ae8c2fc7490b3be210acb6a2ddf5cc6914a70af7570d0b90912c60dac3c0f9f3316e49d63857078512658830ff8af104cc8055b344b430d91983a08cce6bf56a49dd09bf29eb3ca197b03e78e652cac3c67653ecca8cfff4fa01d1e16056fda4dee90b8ae30cecb17d90118af90846ceea668e2679848d248fdb13759c5ece496ee995baad8da4caf735952412487b4907a4878cdeac0c126514f2f7bb061ac8306623de803233581e179b026d8077e26bde76982cd4bd0ecb23fbf0b17fa8531e32d5ae2ddc201c51b61964791b72fb4db7dd2d686335234f75c2a676d5ddf1f83978bbe74a47cf0672bf73c1628050f68801027252538bb0fbb0a52267d37910824e1df59dd282887a061e1a6eaca762f353386a874d8ed5f14134b0d7d4c927471879dd5bd6c482adcdfef1190fd647c95cf368b9260d09b272aa7e374202374a7251dc78511a723298adeae530bcbae63a1fc3a17b0d0a9bce0a8e3c706a91636bd504a312f5d3be31c5f34bf45d4c175ea246dc7dd8202ad6112dbdd3795837ad885b366c25bc0e9d5edaf32b36f067755231cb70c431ac2a469269de013427f79a3bfa7f3e8a2ad80dc616597ad20e8b5f4ffb59af2db7dac3ccef5c050cd6fe4830b9fe1020d3cef7cfe9bc5fae5ba0bf7a645c66a5899cc5cd18287dd26ea206b57d71a8a2b9c02d6140adedd9ed44dd5f0d4eeef6b5ebc96406fa6a9a28d9797ee613f9852740c72a5bb1d758eacac48f8142b8e413d20539211d7973b31a0914c86d2cd996250d4cd6ad0d25bb03e32639674db0b71cd6dd895edde5c080d1fc31c6519a05d5fe2efaac690acd0faa53dd0e0646cac1a7df5bf50e967040ac70310c7af6b38c24b0bf670dc2ece3207408fcd588fd18bcdb6bd4b5e4a94812e4a5ecc344eb3de61381cce3f6d89b26ad337c38f18f6ee2cc6299ebede70c902e8ee77c8b59ea341e9440a8cd769db7b829f9fa918da7d837eaf8547f67f8b857847d45e4c3e64daf877d72c228732c81a5221834381334eb31fa00f54593750bcbc074435f254c76d8e4f80ea6f071d34811c2de8abe364f1e00e553edd8f15f39a2f9d54826eaeefd3d1927e16b190a922374b67299fd26d7da5a5080874d67c13488dac2aff82c1cbb0079e5fc281020bfa47ac5aa20d433f44822651d42d7a8edd9706b7671ad2fffd2889d409f34373629260708e42d0f98089172afaed4c2cee6db6c8e7a1848b4ec001d3dcf7a30d5ee83a3c3092aac348aeb1c2e06d126f0539aeb1e43c227a10bf720cf43a91cec081cae0acf2ad96c6e38c95d6eb0b7ab6e4c2a5f47323605cdf64214dc072b53d2f65053982ec484a0bbbdf967a54f4f0a0c44d3dddeb0c1e0de98a7e7c1e7e636aa11a9ef680a03b5a978dfa88aa0086451e804e58192e89ebd27de0616e7ed7abed15e71b02de7e48d62cc55a0c33b1f2501babefffdf7c0b02cb7a3f3a97b6675e7e8ce4b8fc715ebf5fd57b4b008ded155d0c4b394934cf416577014ba2104d2860052bd3d909ea3f25bbbd6ea79e52353addef2ee0e5f541e39079a5f6addd138f4cb71fbec31f49f2c68f0c602efda3dfbaab42d82a08a463e823c09754ed710ea4ae64f2fe84cf384779abebc7a4fdd2bb58049eb6b83feef48131a74eaca0397dda95de2b280f1b7cf100fd8f944cc1c87f270c9604b1711f45592f57f2947d48f6fcca30c0ba45c0d602eafde64881423a50725243469d596e5be1046ac2111900c6c98f45e45a49c6c29b773f1ba913d7cebdf2e283a2d5a4bc8d5d8d4f06e3d4fb3a0f0955811a8e4aea9f44c9c47175b3645cd4da3d1b891ff9d324626e8436e21327b384a01b288e370b783c12d6de0e548f28ad3e893ea14016bf32213aab46092dc3b111bb7e6fb8159cdce031b0302e96ba2a3f29b34290671581d64685b423e340e912d76deb8e809ae66b0fc1f35d1c4d1882d3f3c4832c11566928f2baf47d4ba8a7251ad3208f0b009ca587943ecc5627109d81f38822b2e98e9075d0ac0c5d86a8df50db70b697da191b08dd4113c8e4268ec73de27ff2c8702da14056935cf8bc160cf62bea6f81fdd3841bed127298a9ee4c63eefe640ab0bea10448ab666304cdfa9b7c4f872602694ac45a2c256af4ef94fae2f9b5ea7f3389578c5c44b34a2563fab699c6e5e0d2e124f48df74bfadd2c35a90c2ed2755b1acc883c6c0a49a90c1b854ee2890b26ffb20ff6850178160a8eab55ee9f623076bd0cfa804268164e5264aa46b32043d25fa74c2d30b783ffe86568014cc2ddb1f7b585f868dbd101b36e9cf115410bdef063535835359b7eb62eb2136db792c4a361207916ca25dc6e5e6242591da35d4aefb84976ac247734bbee132054445f41c2151ee7d89eb83f93949069b4426441540d15e4587e5d5b43fc4b388bff706073dbc0f2802e0127f2d289ee3dce7ee3c158631c57e5e51f7296ff36807db81c33c985ccccec4c21c2dddf3af3258bc1930da39728c41aee6bab5e6bf3fa239ea0bb55f115fe737f344ac40e20f4bce533d6a665e00c25e8e4a5b17109ed21957190772600e3e557376ba3be9e0f7b28fcad4263dd9434c61867d72ed6e6af32ea79930987f7c561f8805f8ab04f073b83565d948ab9cc00f6e44285c2dbab302e30ac099dbab1e207f325a3a8b4ccb2b68005a3800d76eeeb470c3e6f90a186a98d01cd245d184d8b0152b6b47ded2d912f86f3f8e5fa3eb7d3b0bc9aacb6726415fc4f49cb966abb27a11a585d6e6a8c59b6d09e4a32a8cabb977845882d8edc1c3bb9ec87034e75e6e62bc2b7c442d657f1d93ad9b824218b1f78d9f2c348fb72f4ad40e7f67e0ed970fb1ae13c3fc7bb504c790b2fe02ade67bbf2e9affb0f5acb1456e2f5802bd11b8913601aa97496a17d77508e8f8d3fa2da97b13c514925678274469f835640a3fbd90fd32b3e28685230a9abf34cd607d4a801c49e00608b09e0c1209bcfe3081896bb613f611c3c115aa61ae3fb85c584b92ae12e3b1ae04010ab4629d14d465ac92b43de52ff490fe45b6f5c8b3317d38dc2c6c6e76771f93d7515703f05ce117ed033c639900f94f5529d05f8af25f786ea88aee22e15feb8fa0dbef2288a582e59e9e1e750f4658050a258be2926904dc445dd3e605d718729eb8dd667c88890f12df4bcd0afce5ebcbb83452978ad67e5a1b30e9acf208a7c507cbae9aeafe7babf43e9f177a9a5a0e0031ee97a5e00ba4abf1caab24aa6a9ed4cce2664a869748b2891d7d04b923e51444190001927efa38c01fad81467cc21964e7c3f5a70cd6e8fe1d6f958fc9d193681e9362115f76983aa27f20de40cb0dd04ff7eddc8d245c6e8dae42d929d28593c83bdd19d6aac79184113c65e2261b6790fea0ee83c90b5c79f7b8b70b7a3b354a574bda54826d952a0561d2e2465355bbfcd6cc9b92c9e95209636a779177798f0eabc6cb91f71eb121aed6eae5018bddafa20f78acca88c3e4889a48ab88d0d3b48a01bd6073986ce3104adeff053e9f39da5867e87f0f96e0d5aee4e53a293fb3995eac1170a8f943dffd2f4250c930162a9dea281218b50cdbec6e3733e550a0544423b89c6a0f998db9fb0d14d9e7a3fd01bf05fb66de63e8d98a6285fdf5d6dc56658d162c4951d28209fd8fb1d9d627449dd6f687c26f21ea941169458e7cd34b8ee97e6c265209cb8fad198ff6c43c1d51057cfe1d6d38685dbd4355faaf7d7b0cb334d3904f4b5f74a3e1f7f8dbb0d95d2abd2fcf4f5876b68581d7cdac4b54b2eca8d16d818bf464d1fb7d29032a7cd23f5eb0048e793942bfc739952f837cfb1c66314bdda812a74ddb505267fbea89f53920964d377ffc5bca50a609233e04f2cf8e7289ea69bc3c2e19e3ae73ccd82399d1f35b9fa66e943592f8822f62888fce3341364fabfa65b718a567e3be69083f08753985799a6ad22beb02ad5a687994a5e411f2d3fb03b4d949560b72fd4f0a9a58927c474f4aa8fe0294f6deaae889ad756b4b6ab86ae82709583d97347ed52475f0fd69dd934c61e35e1b37be226ab54d35d42bb18165e894b7c19cb4cf7f093be17c2b8f69bc0412dfbc56b998240997ebe431d03dc8d14467418bd1b367b32f618affdad63b54e3cc95486bce7a5d1c78cde06b086da70e8fc84316c8b2b2fc2f0c3510b72473744cfdc27141b26cf297a6c87f1811580b71002317f547ab7f27f2f0d244563201d0fd2998e2435831f352565ed4cf0b4c38fb4fc5437f1e2180ddf5119aa22d5baaf75baa7530cce3718d1008724ff46a84d41c13a34d2827d30fb0398688ad1899abe8dc6f745d4f1ee295d350ac13f318ea8e67dd61ac2f679e32f07702cfffe386d71e577e6116d8a75a9bdb8bf9916979816891ea8f5c8505f4195326d3d86fb63abf6c6ba1897d324a648f276c126bb2b600072920e9d173846d5700bb92d5e239cf1694d6d44955a0567e6dc3ebad1020f6695b7170e2600c529a1c105c0ffcce06592137484108069aa13f29ce956fe2bfb256809fa84ca9df9912b95967264234cecf80abe7af996cfcfc97933c2f098e0e7feb91b5732d061b66c4ee3a14dcd2eea23ca9830970a3b5b6ec33d7ee0d60838f744786d80dab890591b4c14e4fb3a4e649370b0255d4cc1b05b4089fa09024b6a7c55f498757a53bbb4b39673bae22f39442b10b64b18d2dd05f65ad2dede53156eca22314a13a7854dadd0ea96b60e1c1a1321c6b34afa371bbf91b4f298bff5df253ec40b25d56cb06d477f7a43cc12772e53c2eba9829364b12e1e4263ee96604efe2d91b4eb9c2120d3964eca900427370bf8bff5b0edf60864a9e37250c9f6a08df5b2e7dfe49fa5f8156cb41c67a9958a38d187aad6f574ec1325ede73de15e916ef33b1abf1bcb925a4382f2cf39868eeaf41c871ba76df6a0dec24aba1eacac7f4d05bc6df6e62e65c226d99ea4eb83470e305e28c7e8a541df6edcfb139fe1ce4f04a2dc367a862fba8d32cd0d81e8f17af78bd825ea9b828701b493648fe401409615fd885b3f838069045850b81c21cc0a35bc30830f6c3dece03beeb063b9a4ba52389ae0f5384e7685b42a92f8be1b721d6d1444fece077bf92c1ea867de27f4104704d673bc49b59febe9a5e09808ee1c4d3d56f4963eb735e9106021a43a71a1c87b197dd9018bbb580b002a83d38f2987ee2085c26dccba46870e11c1355a006abf8594647fcd4749df307ae25c5aa823d6f29e0e0d19dad150cf8df233cba2d12049b78110299ab340eeddabbb5a688338f5e60bbc3bfd0e0e15cd35ae8b10963562ac6100eab748965b0b7764a776abf5bf681d8b130e01f58f3ff5f1027c075dd95c434653c962b3264259924735039e852d07ae9d0729ea1f6f9eb6e7338b309dc052cd24cf376e14b57974062298d59830ddec608165e1269a4daf45aa0b2864ed5b34fc10626b1085f394d341d86588d1877eb139d1c49d64a2201297826457e97ebbd944ca269afc1f96639860318ca2255a88b4c8154ce5e4978ade83411cc30e53755f52aa443bf1997c6f531b0d25921033e620f599e8cc2a6b0fe98fdeaf91c0723dbcebef8f25c961dc269dfbe50af20879c183e2a7aaba8c41948d89defacbc9ec5e9cdf50915c6dd0e29b2df72521f4dd616fe32fcb8bfc319718fa3e4c1bab445fb8508b7ba23ecfbdafc6f32bc1ce75dea9ea355fd12ec24ceab096dfe60108433859c722d3857a5ae2b34d9011c3530c7486588449fd72cb85a7f177c277d2ed982e0a989e190a04fe6a717aea07fd3dc701fdda6fc233b5862e5d8a5124acbfafcfcf9d99c5548ce64ef7455c05a1e2874b9320bc3ec3ebb1b412f365924373e79e9dcbf46b0e8b6f5c55a5ef296ed56d26d7cdf1077e72838303195885d9f2ea05b99240f0b1a769424e16ded1c4b247a11ab4c5e9ba3b3ccb052d1db917d2c0ad43f991e860f81289569cd081a918d530e47c11e373177d1a5480b62cc385451fea10df722ef13d9330a304678a02f41279d8c744644e084bfa54801a4ba688bf468a538c39af6ce0178eb30b1896dae1d4d528353758fbb7d0c342bb6d880420185884579490e2e6a215b7e45ec56291830d4c83184d3b449fe83b26da39e8f9675f3e832fdab657a4149be30953c79c7eb5a9f4783e26e258092457814be5bd6044e1bc451494c07956c7e64bdecf2235cac435d200dd1f0d49f8f5c56c5b5b78c7aef645f25bf7653ea4438869d080986c79b5bba7112dc67d4ec6e7405691e596b12f66f7bd80c0a170b5e159a0849366cb05f8c630d51cf243e3fb5b7720d8e0c16bb746278a4218e68d932485a9ecffb6f9a3a397182ce5fbdca0e29ca4786d77528f462c4d52881e41988b0a0f354f66b3c3e6e3a2e493b8283c849195004731a1c4d774149fc025074df4c1c842b76f34d3a83b96c7b3a512e878bc240c36f8e61f887680a238cd2b5d4121cd848ffbf52a1f5603c161c377e91008baf6d137815c9b88ae30f526fe2802c3b016e4c3432da2890f1a496d48fc86df182ef9d4e9922384e94ab98b0310c09a50275d01d09f9b804d697825dda4dc850ded15761a45bb366d870010fdc3b1770d0f19c23e0586ade147c41d4bf5e43ad1af5ccaf87401a0b3093844fad0e73308ebdc6ff3d12e9c2acf9d3d709f912593648c217fc53e1e4e638749b65637c509e686050fabb48a447f0cf68dd72fc6071b5ac507c92b59888434332f2e682088ffa3490a5a4e24af6c843f221e198597aa93ed6f277204935bcd2be522ab83e4d1b31ddb87cbaee8d31275bfc2504afe8008e263cd53f16ecac3184a3a75b3fc7d517175189c54223c5ec850e030c6d09623e08115fadd5b17fa7d14ba4d1f75f69d6558afea53e600b88c0a72e4bf799f88181c98db2aef59409def29b2e4df8a26ac490930e77c094314f6cedc5e3d71e520a78d077bd7cfc22b58660f6acab7499756770e366afe8e7d293f66d21162dc1a9df14776ec10837296e24604eb05eb292676ce98ba905372d23f53d57d42712c9f3a6c671f2d8b7f4d169342d980f9ff22a8af52bffc72997818b5489df276c7e05be33c9ff656728ad99586bc1a0b4d2c38c546584a76c8bc47976e6be5f731f2776bb7594e693579726be048d7290c7f7ae7302029f27c5e4a9397c2276a13ee778a8e50b920b7d078e997be5cc0616ec20c234238f9ce3dd045e44e41e16d8c484dca48be3016cfdc7dcc9ee66434143e1b6b8c1f91b89c6b0f22847b3310078ca6ab7eb735c121503fb1ee31a415a9edc8136224a03e929e162206ff58656d1ccedfa88f8f163bcb841e8bb9e1455d55a8fa3b57dcaf8d1e8453e66927cc3e4620d1c3851cf9d3925848b43364bbc7302f99bf8c85fc065247bc7097aa6a2b7f169702d7d1735d607f51539a8e91102cf78c1aa206551c9378089f324ddd02150adb665bcdea2426e5e110aeeb1a4ae51b0126f5c16a7676d76e369e0044ea3f17e47bd6cf7ec3f7a69c4addae359535bebe658691e4857f458556dcd23bf09b502e58dbe45d5dc0f4a7b71332054ed0a11e806f4de7e0f5bb0f807d17d29e5770d8d23eddb71fd78ffbbcbe002a9992ae46e1ba4b991c87577240b5462218e0b9d886a9aedb7b0e47c622897bb154f749163c7ca28f2115a3223e63dd1267538425085a731816816d0f574b772264a1e1b640c60a713f063ae78dc8e39e7c68aad11cf0948af1dba681b4d3dc2277b1cc6c7eaaac9049f5df4f14b19029b28b07569fd6d12e6860a799626feb6bc631a32c1e2719882f281baa748793a00f54af71a6162511b576168ac895b5721bf5a93acffb0eba6a793089e9ac4fbadf1503c4107083e06e9a2da2205eeb7816fe7b9166e4dfc4811f4438faa7c3ebf92fad52fcfb3d8df6c2b07cc6cf248dbe084f709efe89a7b186b7031ade8e79564b1032bb9072b75bf0456a1df41c1a3f815a1d6f2ed9b0c0e9fb51e077195cd22e5f80454e40cd0d3b6704ffff21cbb487576c070258dbcdb03ad7d3c13312b46604e9755ca45ecd51c2afc5f2cb77329ed8d64fd7acaca5848090f5236221b8c20992b789f99f6cd577b7166448d594e41a645c3c8e118356bb27aaa4ae147e2fee9eac9e7b6e391a7577ff058a046abda15b827a03d97015fa1d17c3eee6ae29586f40e3b5f513c2cc818ba12b553f34725eaa74464e7401638cc212a54ad30867216fdfc7a0e836557bd8a3e51f8aa9a22157fc15047b2b099abbd4da55fdbd95ac52bfc9671c1e7ee3f1d7b58dd98768fb450772090d69e5e65f8a9aa1301f04b24909098fa5828b0c06a6dde3462f2279c7af81057991c0fa79a5d3ce2fff059fe3874a7b8a4af7d1cc8116e79da9894117e0c087eea50beffebc5d522847d1086a657af1080add8b11d8aa86a59958169405e520f93782077079aa24e52babae5c44c155daf06bdfb96405276cc14d9d5843f11d564338c39e1a86182a6fbffdb0e032d611204fce63c56e3b3168d9b9c781dc85c3bc56fa9e9fc571de1375c4a0ae08e658ab23acb32f12ae3e48bb04972b80155269f24bae3302172ec86888dbdb93f0921fa4a41d6ef32e7074f1598225549736234983e8e7603e4e76bb673a58eace3e133d1c96bb8b7df71f7130f06eb1eb75029295dc2f3c75d3cd9032422bc4b97b6beed4fbc71a6ee53d72a158849457e91523057e58cd83b2ad397704aabf954477b83f2714ab36761fbfdb7d9ed4ef11f77d6cbdd457c7f2091fb040951b6688d581f99bc04b26d63d95a1754807199b59336e5938091ab9d0d754a9a53e56f734ceb4f9d089676801a97a3eeafe60dc0c3468cbba11a4f3432e8fc558f55f5d5e1eb989fe7d1e3a448c10b70902a1f34efbfed7d288dbabc5491be6b8bbfb540c699cb3073b541b4315b5608af4db7eaa33b3404bad855e9b15a300381e67d273bfad0b69b21e3db45b0d5470a273e19ded863709f0bab4936e59bb03e8bd7ff173df5c2f8a517b82444a2811a82ddcc7f33276220d4ada7adc148e31d98eb81c5fefed5d5b0201beb80366c0a8321dbe4de6db9a3fcc77de422df40a682769a72a35f22a49356bcaaad7a760c4e636b7283371a77eee292f8e8688b8100e3ca49c38cf3ba012286ef8fe55b2e008080595b7236ded3babc4d5fe4d1a20ff6f70837ebd9e512198c3e35105ceb3e05743c34af40acdfd07f7c852c1b94e44427d4518078782461057612041703670b78a3b90138d6dadfc94d7ffa2364e41c28c0467100b525c093475562c2eea13bc6ba10f8668a64c3d93800ef9edebde39137ac38b8c341a3feb5f683f6d9f1e5bbd4cade4a1884a7c3702ff1ce6f53dd358d6dbf2d4324f763b263d4f190cee598bb22bcc7332f1cf20e6393d78765a561f145ec931755adabec433bca47b685a14842807b9cba7ab9f0173a03cf4b486a7a7eea81e1cdcb55f94ece1abe3d19f3cebf6ade3c6d1f6a3d879f0f0ec428fcefd167ec512a4df766942f444dcda4a4d4e4295d391542d8b688492e725fad2481168cdb26c9316ba94f8c64c0aab883d71c98f0c0ff4df4fe3294ac4ba8f10e6a79dc7c06b95b717d2ccd07db9c5e4441ad3d702f957678b779f37f1b579324145b3c1c6c0663365e40a8461486ff8573652713a51f00b6bdc7a17e0b96dcb8c8d1b9f7fbb0e7c422d3fe9cc173e78b054e14137e578f1f25be73dcdfa07ba18aec723fbca38ce378c7d7a62cc9fae8a983a7481f40d6897b6e012416f2f69f5fbfb26112d89f6556f3ed1889d7dc4845231802bd1ba81dd777e14569e6cd8a7094fd30260c527485250e5d177b4c0499b8e2e78d18601694b4817218a3b56c9c17a9c0f9db2e73b971e743656c00f9b5a267bd97609748bfacab71fb7a9eff747fae101ff6e8ffc49328f272b383d3cda94302b47dda1ef014db98371c96406a3843e74884483658e034eda904542502c5f1ae6febcf55a0eb6ee19f34e564d27ea4e080d8c60b578ba702fbcf1e3a6bfe5393a26468e4046524f06a26fe20fec3a1dc0a1de47adeab1e849f0b6b41cf991f1ee7199a6e24df970fac71b96108d6198ba9cb5a0210dc4f5b3cd8665abc95bc5cb28cde2f9801439aca0fb4a88f84c50b2ab078f0d9a4358694cb3fd56000e7240d5de938ee4dd0a30c75eacc2d4fea356028b20df7a883bf02b4b56333d508b8ea4b68f288a5bdf2041f5c4a771c2741ba9f37d25d4bee51040b41a935d906dd778317659b4374c023612efed0096173257c58db6224f82fc1674741dc3b2e260d2274c63aaa0ce5e6ad35a661a0286d275a8b397bea3f6bc660077efd4a8d2a054221917a591b37145f9b32601dd27915bf53c4a6a2b3f8516b0e7997377dbb4f72d147128f50dae270893336d8cb54e8ad4ae40a39e7e2f6163b404fc7f9e4e7aed52151bd43702943bd00b73ffca7e4682817f5ef8871a580d23e1823f187bafaefcd9bed73f245ce1d8e882c5af30dad7b2fdeeedc1fc08e7f86a78614fff80cf56f89adcea4f3540aa649ad3a546de10ef87bc1291c6772c3ab13ba4783bcca6c365c9818657dd01ce52311065c1ed52c86e873b128911713c385f5f0a39a2fba7b78cc8b8eb818fdcb781dcae608dbd625e5dc65b990a11209dc6d7e0d0a6bde83fec3773a39d466969197df84cc4c45fb27cb168162a13349dacdc1f478e39b7d624f13bba12add6d4cdfcdaa4e694d7576124fd47ba085edb1253d4a6df85d53e1ef837dde52712d4f7f52c2e9978eec8d80e0a9fa10f2999434c71c7c03083b25e184ca26e9658055ccd6229c0537310b1ae3e590dc204ea667422f967f4a2eb512ae3999639d9b7f924e3c048ee77da85c355f5a7c558467b5ebefa23ba1d63dc256bda13e457c78ade811fd022a91b6cbaf132069cabb32741695023ca6e5a414be4b3694c9e4ece05941915aefaacec1988eaca296ecb21d6dd31741029b73a9f214c1109b99cd95510036af8138405dfe4443646efe9aa1fdee8b914b5cb87175d14bc94d3d93f0f0fe35f6e1b947a8df9951da1d9a53519635f8a7f4fa15f2ac0656a16f8d7ed1fee63974206828e6f3b634fe084007d5baf4ad203c91d6203dacfd15a2365abdd3f40e4f20cce8c73ec2f435650a5a03106bb666b49f401667aa52813f77ec902d96b909a2d0b15b8b2c78e0b9819e0d2e9dd3231158520c97a75a7e3ae2f2b5e65d14451e77df93031ce4294e2f75f8bfa790f06ecb678f5f43ce5e75e5f6ec6120fbdeb814aa02494bd3f9f70eff5d9ec6dac61ed385b6d5c7edee4ae78299fbb29f9a6da2f35eff32bf5aecf41ce13ff9fe790d4439b020563f88ad809789ede5349fe1eee7219b20e9888c96a615627d489776765978da73bb16b6fb3afb458fd6b5e259b5bb7a14e57d4d61c511335f7d6a5ffb70e44852ffcf54337e4435cf9eb284aef5df2e496f71a6d4d3300faa37cc9fe9451bb4bb7adec22845d7164ff39096a571711be382c5a45044975fe4adb67c716ed670ec84d93e0671e1614a7140544daeb272d010937c35c57ef2eaeb7ad647ce542102f6145aed1187522abdae2c9d0887bbabd9c70232e78d12d247e5990c45a12d6634a0f17adb7c8f1a8e477daeb49e11a605b67da8b6f17c8595a8230822d15be625b387cbc7f48e9f0954670a756d7bab83eec3be36e7915dff526ca4450a8b5f8b393030787f377ab3aa9f1fdf61dd8fbf5efd40bc1551a4407d43fe54795332c0d78ca767f3d0e360395c33c344cbf988ed89c06fd10b2ef153756ffb38b933aa38234fa1bfb9b0df33fe5e34ebf724d920e5da5da1d63456767fc9c07bca69071835b4561a542429ebe5db04b5a597dc053b1051b8dd19fa27df6e7d22b80be36ae0677136517c30b6bc52ed6e497a6c2d7c0295552404d2c96d2be7d2f6f7889052bf21c70aad4063c41562c8a4f7e4d5bb730ad979aa36756992649cd04b1bd6979d0b3052c1307f25711cf06996a79d3e750a64fca01e07c1812c6f13f9386d20336d4807c5eaffb4f22380e2de4693ad05a2afb69ebc5fafc6b07d891709e82bff50252caff9a57d256ffdc1643654fd29e04b572f03fbb6f25bf471e9336b6e8c122d9be21d339a37d226c98acbbd22f77719c6b055c88b90ec980def1465c788bf8ed19b048413fc0cd60bfbcc845ffd1c6a4ccf0140d4e65bc555886679b109e74b9a352efd3a336fdcb2bd61134e937c2b25bf38e84f4b365bf5690851536099ec77e787558907b7cfa57f79de5090a13f486ed83a82f049d6cdd095205738df8489f35d641e4eb7786073007b8748dc90d573cae044be02b46cb4ba3cfb15ca207c7167d5362610950b6fba699e10caeaf20fc270b687d94282b363b68339ea2c8dd5c615e55df5b121824eae90bd13391eec8f02f8785d67fd67346083977b0cfeebc64a5955cb4b47a982e4b57337e821396787e766a3fb084e591fd526200343d88bc6ae96e3a680c63c1c48c3dd83eab7627f1c9745ab4569e8a87294b4617c1c0505c16690c31e346cf69ca4400806675da2c9c552c40aa393bb205cacf58aea9383a120ebc9263dac6495e5c172a416c89fdec97b154a91bcbdd3a975a879a1f089af4a297052f04bcb3904bfc21cae90ba4a0f907f20f867ac1b45bdcc81c9d6fea5c186a0a210a02194f7b93ba60444e1176a482270d11aa89b4a33d1ab7980987fa3005f8b871a621d5539f5dfefc8e6846e85453739b9194f24c515c02d1d7ca8d8bffb63f8f9bedb1af739ec7d84f9f9b9e0d6bd5bc0161d502e657323412fd51f153441eeadb004c38a6bec8ec0d02b30ec49520af1b19b6fda839cb3a478351b3bfff95215e96866470d2bebd0837aa262ca2f6dc7a4748197e0199e984df614ffeb6717127513ddb461fe42be6cda70b7f66e21ad91c8b2c6309290e42cfbd2d56503f7b0c74b2ecc7e133d4d6c6807f0bfd95af2a4c1f9692f6f24ba14c1b268bb9642416ad2a11d3dba00caf0e0b523c088837430caadc1350d1ece755a367de48b263a6374483dca6bde179aba0cdd86548388fa89ceec95a8047614d9314ee8522ce52c8d953a90de790bcd89cc69c9da293967ead34f760e8b2c994f1a9fe9ea6b147620a0ab157b05d718f91fc50b45bd816c6527328c62bf0054e3d8114ce7bc538111d24e9e56549df64a76a08715099a58fc715beb588f26cb48678965d8228018bf136c7641e19278a1ab5cbd17dbf377464199c6131386155d66c554d2413af66a336aed0dd3cb195cb43608fc003aa28cab5773e5d83ae1501a271c310e9763fda426730701a4ac59feda41f183fa8105a6b7bce6d63c890691cf7ff62ac7e26cd4f7df0c0c1456943f95b8d8bd95532c92243b6322358ef668e72b8dff846db8311ae1b08af571817db8abb9bfd9e2662c0547ac30b26be33174374f7b706e4ae9c4c04d8c4c13275efbd7919567129ec240b2fdaf2889275a73deecf6634cff4de7b4155c7f8771e228f37c9279930f14849b9dfdcdbac7b1d7f627a8ecbbe2749f0772bbde7af28401e91a440d87d74fd1a71ef4c5a05087627dee6c0b12e28263fa2de534041af1fcc6d9deb251ba0fc997ba3fc49bdb75bbefbb768247b302fef5e0080db99b31180d2e1b1df15acb27d8f2aee6c84aee8f9e50cbaec01978c9a846c192464a98f2116b1e069d9d42d3c2160b4992dffa8e04b0c54574e096054829c27fdc13ec429e55e28566a621964bc36686b007b8ef4e593f626b0039f28dd23ad15cabb8bf1fb3594c372181fcb6183d6d6c92c562495fdf0818fa0768179f23dc3b76937e6f56176b68afae28b23605bd643f3673fe10ce8c8eed20aa113a8289931b6b81b43cfccdff77a1b09b571cc1974c6640b357d3e9433a3cfa1ab92b9f4dc2629eab15418c585542dde8ae84b2eec6e9295f3cfb9a4558199eb0fac3894eb6d06d0677756f696e3b76dad504a553fec4b6b8ccd0d3b4caa1eb0f4be8831685138a9e01a3ee6be4b7de70d090a4c8a3a63c04c257d6bcf7687b343f1f964a6e5596f7829d972ff418156d7618c9f5dad9f7af83aca0bf300e5ce3ffbb731fa671ea7a343268b1c6687970db7f918aa26e2f3e4fb751415fc50233f47e60b7f2df3bb2c8c139f99346788d9d9799b0c388956cca1b13aa472f38e4a1135a14292ca82de3ab80531cb1951b4f88e0e3230a382ea1571c0d06210c7c8c6dfa10b02e0b7dfcd3d9fbd7bcb8df33e66072f061f75d7369c992fa374c797e97d8cebd657a5d5791f4ef61b919e8e06f793001856f21d3ebf34d9a51b31d3e8323905dbf59eb157a862ecbda567c80703351518f5a169ada91a7426437d2ba875446b0d0f1b6c34da03f468c08e956e58fcf4ae5c2c622f40351c3c58fcc9b656c239f8a4cd7cf1e3332200113d8d85fa2ceb190e5b8c766e8d20fdd4504f9c482aed976243cf3606ca6e39060a0403c62a5a817cb63f7b8e727800d45c8c35a7be35fa57e34157ca166b23ded301407aaf08368469fbcec94570e9f71dd9915edb35e90bbafd043e12f43b7dd9fd6c0fe74638a9c0b8eba35b0c49819b8c2bd35bb3514c589d8c41df1b6aaeca006f2e3f86011a5993dd45db643140a2dc8339f8f9c8804d1ab513ef1c4d2a2cf141a0d4797c051df61cd6e834f64722b819149efa9efd45ce25ff7d7808cd9a1e233586d059ac1d8bde49528836b9a339e80b5f8ff7f22aa4c232bab782d812f03bb0600b2c9a9abe9dcb2123f9ac2fcec3bdaef4b52ad4be336faba5cc5336bd24f738955d5007d74a0ffc8bfcf9690dc0678276a738c643b3acc36da0d1e3c80d1b26bc5f18a60b586b962c6e79859ea1e23bb62016856b2d8157b4bb2edff81f6989d48094593f55d534f254ba58cbd92a4f261bf7faa63eb3107cccc32a1ceed5c2ed20e9298694a11a4c2b644423836c04559880f2edef92e7882ea3115c0c397236bb5848bc0da2d34f6df8fcbe350cd03657f7a7e8f994f12eb847f1a408a062902ac9faeadc0ea8465dd50b79912236f628dde776f16305b3b761385fb275bedd9bab19218bae8cc84ab893a12b9ddcf3919ae12c5ec39e85c6114cf701c56a84821d83e7f058e4ad734639bc610a41756cb6abe8d35f5a09f0c0e1b58714110f38dddf7aacccf4ca11552d51c68a6bccb61663b7d918c75cbfd2f9765b81c45501a043371c929eae9a74a3fb7942370b244d6cb9fa7cebfc6be41465b317210e1503aec7d55a55a85cb918ad2e6d4414ab27c200d30eadb8e0bcf1f345ce0c869e997957397fcde8c40aa4780cc32985a3d7727bf550fcc0c129196e4d0a0274e12935eb0200b0f21cadc58a7cb09571f369acf73a6ee97b2ab7b5f5949c364456371b3d63ea0f874633022eb952e1de32906e0e67d3d7b3a3aa4eea02340b1efd01ebb25b0d4f5d09b15c9b9966c7472bf00950c3073afca0833db8b4a784eb26321d5c0ec757528af9a7205836317999e439925e95c399c649eb835e258c6f2ea9882b6422d060e4f4b3643061d3e7883b095c0ec7795f8b0ac50a3dd819894def8f1726bab198176bf56cdd11234b610bd7e2e995a3fed49082c16d1ffad7f0dfc7bc13d44e5940f9b525591108d581a4a5b4023c9250a84c2aab5541a86ac428021cfe5079da2b07d25322264ef528fe757624576b5b7ed0bd6c5700bce6c1739e6e39620099599631e4375d84b56ee09b19671ed2f57563edfce61336729c4c36dba8387e5f2c497c21fdcdccf5b0117e58511d2e3317a6b920f081976be97ff2c0d6923fe1943f98e9cfd0101818aa9fefc9c086f630fd88835666238838f45da77876f18827dc33e801630a0a92c84a2f0d0b1d944d2bf09812465b38ef6c394e8f02d0b8fab2096e1a14c4adbc820ed7b4e04fa8bf92f4df8d8b782c24b3d85214073e1a742ceb6e69a4cd2bd5cd23f1676ec8ddb60f6fe31311c989cb560e734de74f02b88d84329ff235a40c62e71b476d2da98fa753671a600eb8d74a1d4783559a4fbe5b6c672d092f91463882bc797e322d7202fcaf254ca1564fc403455b0dcb4df44ca871a6ced3a669466d3da0db7744bade923e4beb86075d1b962478bc3195292b9e534de12b32be5064bcfcd065b02dc4bda0bf1a0c12d644e43d387568640736af00989261ee124dfe83e876b9f22cd67c58134c2506d170586b539f8a48ecd552eaaf9f3cd1857db6774ed26a8ae0a4d8a6d8a95a3550fafc6fbca7dc796385f7b3c522f4ea11551ff6007d75857b3a5ac4cf6c867dde1e8252feb778673529389b2bf3785f6d6499befcdd8003ee7b54daf9267cf9c66655e89bcb1d2b05f72eda045416b136f93c83428cce564f42064c5c83f3e3c5a2f8dfae0b110a045f27cf7be521d47c4bfab659d64b62983ceb2d4708c3d236a8bd08a3e61e3d379675d59017d2ab7c6c3e386ece65d5bcbe57eccab7af83b0d0775d3a8bd668be3bcee4c958d4d28c7696ac0b291c10f9fef7bc75a0b7ec7c1c1c933fb0b5c49e241cf821f0764bc5c81f17fc88c2bdb9e2ee3cbd0a151eb23f619fcece80eaf2f0abb274dbed6a9804a534cb77a3c273b409411c063ccd8313dc5fe1ad3d09f99578dec2d6e29907269162f868c23ad30da93886f4403dd24f548e2cfc6d75de21f8e02e024bf0fc1ddabe7555a57591f29312980240be496e1a14b43b4d3019498cfd14af01379a87fcc1798dc27e21b1d120d4d5aa08addc670e50636429cae47cbce47d4bdee9c0c8fb8d26ae2e969e972cfd472bdc129e9ca415d39ee41a1e5842b17625578f605746ec216701b69f38404bcaa359158364ee32921aca1bbe3facbf3b599d01883a241f2b6376735a6fdc89af5372ae3bd4dfb35e382a8fba3016bd4a0bd9542e57c2913b3478397ed5b8b031fa8f0f05b71ca43f79a37ecf3b8d16292c8758f5e94eed8dcc3b3bafc3eec7750e4986d70b5203da69a036b64856f2eb37868b1a2a5f489d419cfbe6e8d782a0ff219184da6e74eace9d1292c42b625c2bd0e90d639fec49553ead3409e42c8a7dd4884a1134df371aa134b58c94e69f2a658dbd2e9791b4d56f82b25f9682db7eb4f2adc54c9c58816d60a065a08ab4f540ec57152b77597633ce0aba9201c34fdd64680e2038c4616c7eba0fc8b588b3fc49f554753a2f73588d7749bfc0c7d7db50993ca2856956a2c53184672a488989e6caf5b460ea118182e7be86f59e5f7cf6eabdb2792f6f181d9fd391c9990fb735af2ed667cd00bde44545ece938f75bcd346920434d1921698d73b8216eb8d0e603c8a9f87ff7f5d2580c54f8adc4b06db666a14c30f8ae3fd55cbe6f90f1297aef12707a6b30cd42d354c386fabea17dd963441de16796568e4667013424e56989056cd7cfed16fb94958f92ef79a737303089b5bf2bddaa7beaecc8d1749d83855564df14e7bd303db849e5f3b932df16f46c332f7f78cdc2d29bc57af1598ed1aac47c1de53bd09fe5bc92b437eab1e5a5350f0c757b779a10f08a6ab05c405faaae35459bb81f584bc527ddec61b83b5b09bbe2cde40f95e5fb021dc98d3a834c702dc775a4b7cc06820ffd9708146fba23b3373cbe9861f87f8ff15d78992734226054b2959d250bd4794f00cb01643024aff7a6f4d9512e255bac8bb8df03e27641749c0fc6059763bcef8620c1c2ad2410dc8fee1744f887c768cf2c584e96b8bdbaeb759d568e77f8fef9b4d26f131a38b990ee7ec2488bd81dcc48a03c15194d3a8aaca0f072f78d46bfe1b06cd7184db4ab2fd299d23d74debf6178d1bba4649c63a65e0ea2bbc65710da2a626de412ca9f9eb97d51d735ef7bbae8a4ce1dd9dcdfa2193e7655e817094668fe56778d9c37859468feb2f5708d69330b9ed04318cf9183d6c3a495f636caa143d804ae289ce32e77af9e1cd40fbf9c3fccdf2985f1ae2b75973f8f48cdf7b036e7b08bc913b1d72605fe34796a4999930ac4f1a00d8f728ac73337f54715555892a136b9bf3768d61688978a3a13f76dd3f2b9c41c7628c8303972e67801bae923a3db98b8002384181dec40e7b7178d8d1132d359cfbb89efb2a79fdeba88a58df796adc64d66a1e399dbd214a8a077cfbf3d0ce70f41d92160c0485c4d8063b48baf89296e0d2cb1674562128c2d7f45feb7392c662951b6797a106750dd83f7ac680a6a180aa1001e608533e34d5e929b795bc5e20d84db97fbf4e3c5a1d241d6e87be3ac86f8fca9998027d38ee64af76308b6cabd53dc6bab5112d55f8f2ce93ad013d4db885fabe18617e8ec2507fc4bfbbcaac0d0eaba60def8a9cc12ceb91a567e74e55a25fe766369e4db8d2131ef6427aa19ad861fe4e0ff2de3ee38ac2eca301ca5be2d07acef0e9cc11c997db58ec711e26524217d4ffe2523e7ddcf25b534e63407efc7681baca9d48bb6853ec84757b77af1e862de7bd610b151d21b790c81696a4d1246ce7cbeb95f50caec943717dccae1582299683826b8b9d8809a0e10c5c36d9578db7d8bbad3888ad55e2c8f18ce853410eb4a9e682ef8e920c2d9df351b8b49a3900c7bb13ac119a7c0751a3aa1bb23c3aecb97cb1215f495735589289e18eb9fa136f8f7cb50fcbc9a64af6687e8b3489f7156a4e4100648e0e82be6d15d3406c5ba1f7b8a6b0ae6457db77039d6c606e4666f7d0e08e263e1667a2db28c4a928033c3bfbadeda2b531f090dfdc521155d44c83453fad85feb2e3293119909dd0992b750df3b7ece561a2a1363dda44aa8181e9097763dd5fe58dd2f9c30f3f1332fd6990d61b05e4275be0e013107f70c0b284c5f3079ec3c2d9854c85f2c2559b513037dfacc12a6824f816c2adb816a5d2fe4ddd365c0653975185617f38785432e6a265db8cf7b11cd269b59c8d85d593ea7c99351053e300e51001434b432e11da552154a6db3b7566e35184fb22716ee78c3ca10351c2f20aa901b21bb3ff6948f1e25ebc914c07cc7d657d42f54bf47af66bb6269a2b045e6e0ff12a8bc55fa2688458afa667b0f8119c5f1d8b545bba82c035a2f5100c865771e4ad8f04649c9ef4a0394caedfae79295d1db8b63f5c2214c16d6147bcc91ac94becc66befd534ca7872de353db207705acfee001c7aef4661a6ca2dc97704da0f7a3fc2d48adf0c6e9c88cf62eb6da7bd16d895bd0264202db98da560a68fa729608a76017802ca96d00b2425ff9308c57d66e414e4882d4d07bc0eac699dc545a8e70f4b7000d204a7196ebdd8b85313ed3e9165d83be5bd92e150ac8ce9f8edcf56bfeab675a75e7bf1324ce7121e486271ac41554a5202832ad4dab195b820ef66fe8c471c8372b3fb8649b59ece1bc5d65e90c7c0adcf83314e91f7f99b9e29d498497bb6d3766e2c929702fb49cb133c98e95c095c6fba356a84fe5c4b9d55fcd51e28a0071e387699b7ed9bee89480dee27fff707bd5765bf85d2f777a20441ced649a60e0e68b34bc06e069189f329c0ef75e4ff8f6fcf4dfdbb7b0d44243af518ec7f250d7c2f6be0885d0da91fe979deb0d33c0e00522e5b22aa7d68c24390c610832c3af1675f96db4322eaf7dd33b9ef2af9952ba74b4e64aee5a79b8099b809a7e35f260f1f036b5fa1d0a3fc9cbdbc85215343764831db9355e5c7a724b86c962d16d3b3508b9bc12aa91f8551bb3afb449d99729e7035b92f1d55c05e19497e5199823d892b2bf031a4aa3eef85ad025402a4118c384442c1907041fff31b4d3e63631eab22f84f58b17dc08c662fb7f2de6761cc106030452838bc9b8cfad363141e7c7c063d6b4a54e4461af233cb9105973a75ea685b0cb495962e1a468bb4623fb68885bf4a898801dfa9a1b085604756c87e8373ddc27c28325f535bd637dd4707c62169cbc12d13b5a5dcd48457d82a9980f826af1b4797cec1e2a0a2670716dbfb7ec6be400eb093db71ba66356eeb208d69576067c16b506c37610b9ba9e8fe6d9bc64e443d162de820f8350eef5867a2ef192cae8b0ae10cf2f56efe1bce8643f802c443e2b6119b33da17812f6b64daef86754f932b5f02b155c5bde6e4bef96d1ab3109e64ac335e32876e097473ed4d2c4e1d657c11273f7ebd63498c0922cb82edd88e3edc8dc1cdfc77c36e45e497b422eca593b886b5a942606f6ce592383e6ec752b4c31f17b91ec29c2a29fc81013075f1e6072460bb55a8596cc2ac62b9aefc4fd324cf136e845b4e06eeb843697ccb37a0318da12a39373c30fb5356ea06481f2ba8e1029a3e4cf48615443e650355fc118f888a54e0ce0840bb96d6780e142e58da53dae9174ec8e05784f9ca3d2cea45101fbfeb7ee5633f33aaac11c74c41dbc3581dd8d96433a31660867d242943c953ee758e72c1dcaf2a0576497345810f1598986eb131cad591aaec8c5bb48b743914d4f2207d60e6aacaf40840212540656c41b9787da4c46ed0b5174f7bfaa18185211e0f7e19cbd0ea0b1d448d372651851536eca7bbcbcba831e3151732c59660ac14eeefe478e2306e12814917e5e3190ff0c1f68d555a987283bf54c8316a9a21df1f2ebafdea3fbca1b878ec8778bf01c85bcc63f0db955f2441e72a6b5f9eb93e2cce174caf3d062ef0d2a6fed9fc24d6fe0a03853e46ebd334b7254e1927f47d255f251bf55b725b9152ad8d5a8ba8e66bce6133c0807c725f9171f903c6ef54f2c3c695cf2745f5bf57b6427fb4c5203c9fdb508fc1e17fe403de436245677979a71e845a0011c3640029282dfd432cfefe4b1a301363b43c47116d5ba60241834173cb90c68fa7bd362e82b0a296a7e0250815bc553c3e991fb179ab2f8a5b6c3ebd41da71f99cecbda13172a38d2bd50220d519b0b671b04ec48b1c7ec46d65b860c464485f2f0042d4515fdf4bad8aed0b55f1d90f7b57aacc123a07240459881550f07103a507537e0c9663fd75903887944b5e601e30819d3d0c783a128feb1f374a99fd7b3d784ca7c09c2d51b1bf23328000f84719977c8f3a122cc057d5dbb793411a25c3c245cacde3294232b996702729e2d13e41b07bf0c9e9607493e45a538f8e22a6c3be1656d25b92e733df8bb993c7615aeb611717aad45c440d37d946d06245d468d1b8f93a021fd98cb6c41e840cacd433c5c34296843047e94b2805c53d48ac3f984ec4163c4aa39169c27f46749ea31f2271f5b9d68e6aebc4efa05333baf80af205328602030fb08d0217b972523d99c69473bdb798d390939fde19214b6feac8bb702eecc64597118d9143107a34013593d88f64b880add10ccdc40b58b980ece516213cecf3dee4689776bd7081e60ea6ccb6b7d96b08699ee522bd18b1f2bd24a4ba6bea3c2032b9bc09fe8b625c906d2a50115e33158d9e8940492131669559bfd94c600240f06d7145385dcd1eb88e0049aac2c6407b2aec7b10e78c8d9fb267d568861150ba4a6e7da4188d9fdaf36e226d5069a0fac223d2e2f211101de8fb9d217f25eb68fd576c2daf8964792c9331357c4cab8372287b002a8546c56c36aa546a97baae48c814d03b1aa8636e9626aa4be20fd5ce8d0ab5b1aeb6e8de03d88e92b04092c6b63be2e658b95295f7f9e823150b93a507705238c6d54d8dc7b01324f39cf563f5769f7aebcd0fd7bc5984339cc455b5f94e93b71354fa83a5a109ba92aef739b6aba84f5a37d88e51cb1243f891adde668363ade8e9feab70f25ae0cd65c1a06b2e096d4b9312ff3e00e5c161df6d067cd4c8bf936765567665e0d11ef4e1ddd693dee2276ea8969fe35231577f41494121bd42d0701d2507d83e715acf82e32a019c83fae051b4360a9efb39b4dc6a5afa6dcd060482ce529a0bfcc2168f8134cbbc289982e6df9d235f4cdb11a0fec5900cbdd67998215e97b5ba48e361d316f4628c0bb6b7d163f43bbee069861b9964dc259b91330400514a9b2873c4e84bfeac76ef4759b4840dc36e2d473623d167bd78b6b2777224cf04891f9378eaa5762793be928a55f61d2c20db1c04f51b5611a7a3a80f8f82207b89562868d60bc3b3c7a02c7fc26bcefa9e42d125561f5c8638a48dca03d0578e12482d5b00e7ff454e9488da04960cb2e76e63dde104fa6fd13c584ea2456de0f82650c94a2d42ef3ca876dccaf584a6ab3941cec484d0b7b92988ffb30d5d12ff1b70ea60a849ff9be7bd81e5f75f89362d4eca46f0d45baa2cdf5d4c5a4158ae1d478cda4b74f03388e9529d192839d436d1ecc5b5c36ad573dae2a3bbcfccbac16837add749ba957d4fde43a901d58ead8ffe1e8aee1971d494d17595ec86efd2ae15198d4b4a1c25005116ead4f57b0d9033facc19ce8ce2d2d7a243af2c3b6656d397a35f75fceb3dbf8a77bbe942612f9c5e30d37fca51d1454a1fcd7da9ba356f545573621c6f8a666eaceffff414b8cfa5be21823de488e6c3b683b5a5034489937538b5c04dc388d9376e7f107a797e5be5d8373f26a005223cfe2c4d435ba01e7fae674f69d2267862f8e7f35810110460b4f861c11da11cfaa79ef191e9dc9122e790037bf2904bf9acf5d075d8b71b112f2be4b859c3d3739bd5c08fd8fdbbc1aefba8f3c62f7bd0583eb929f4b3eee3a33fdfe0b3d37bf170ab29ad1f6463131e695f5b6b320cca9fafafd06165d69bc5069a8d5cd8b08bf352ccb3e8d37bc9ca746960c10a82b67844b1449dc5ec3aa42b57edad753704cb2bf43384287d0defac7bbe9c8aed44da1feb57f3b7a01b4ca8943b044727e60fc53d7a89a307aa9e1f701ddbf33b7fb185c33c1ac2e420a573a411cf3cd69cbbdb9571c45e4abf8ede27a2142c64b4b6c88bbec12dc34105cf39a1e80421bfae89932d97216544f9019f2e51b26e02d6163d42f29468855318bfd2896a57e7dbf625f9f8b3cdaba565974bb10c8ffde214befc5a10dc70b217a091b9f769d0c16f1175ff6fddaa394af188fff3db012354841f8379ff6a6325f68f3fde55341227f51943a6315c5118d68f52b6dfad7306626f529c16b56c7205af65318c6bad7a3574f9e5611fc95105e17cc0069d062bd4e3c5dd71efb3b6877fc0a861ae0639ea666d7836896ca91e7d512a02a3203b2cd8cdb15b0ad3db3bd5f69501fe713da58e027694982b5dd68eeb61f76b2c320fdb2debb7d7ea0deb47873b7f2f5283d16b7f0bd81bf23e5fefb998e8e671f2bd7eb2a693f10504e2a70aa3c6dfcb4333ce5ca611ada2b5bc6ece88ef918dbc359d29395160443dc03a4d2b769bb4facf745793c6e32f927a5e0c22afe58a5dd83657509cc91f3bb1de31c6a2c850d3e7f868e92ce0560ed5dee3b310a51df2fddc609d5bc2ce56af354ac0a34468f9163bb7046ab23ffcf67129ffc7040f1baa6e9da895bb31089a785ffd42a050325f81c35f0ecc4d29e019d8a60d7c7b28d14f82ae287b4a52b8b82e08a2f69e3ba62dd667882dbc2b73a17298ba98c0e76d4e55105b3b6537aec4104bdd887d8d1a549697d43df5dba5e9f84b25a6354021bb08666bbc52a699adcb37a189af481801655d689592cbbe3265bc4923df8659ee44f7aa18b5acd1f0b43445214ccf5a182e017680f7abc68483c3259c6f9087f02a373a838c4c674fac62040fa23a686c6d2249c62f46247b1ed944ff85fd51d1261d30c9a680db5a989bec89e7825283d64bc529d0c1bcddaa747da6efd9314ec5e509fb9d5b2c5161ae80ac03ad444d13557f6c648f5572d444f0f7be0c08b9d7f4ac651e3a06c2dd2c0a9c91daffea415021153e510f6036fe7a8358e91f77abd23b6de52ae2f9a9675fe895eaef4666f4c9ab3a198e73358975d8cd5eead106940c944d86117c0982174b792e539c8c9af86e05238a93d865e1f6d106cca5b9e6c5473f068b82afa4922dc1025d7835e96bfc315d095d958dbe49ad2c521a41aebc4eea193f0683650946ece1ba23d88aa8d3c56bcd1b8cb9b094dd8f0c6d20c9501badffda16b9ceabdd9e9136281a30243b456efb7aa26d4cdde913c19f5ba8a2ab9c6f051bee83e72fab4fe87eacde9b71f7816d299612b452b888b4361f301c82c40ad59390f09540e9c6c2c133c560ce905e6a4be4b6c23686c162654dfb2d404eee421e41429e3b579d1ca3ee829bf6b6ffd3b761438ea298d01fa64cbef99ebc7dee70c1056d0d0458091ed512996cea03c39869ba8a2e52a2339d00a8e039c7aa9e12a4facf6a3110cb5c61eb11417aa7ecfd8d01788ade3a6f83b44e46ae38bfcc065c1de7c0879eb79fef93f4232575ecdc1a1221ac30e57b81cdcf8a254ee13dd3990b92a6ed129d006c1597ff984f7361cf93b6f4218bbd5c79a53525e74ecbbf39ec21906fe94db84404b40550658f496766638687de2bb189b05f0f4c6c21a82072fc627a13f17855fa8804e4e5a460ca5bafdc2f8088f8dbd887bdb248ea56432e5e375492b532d80f1fe57c9dda2a78f8ec5e1c2d1a7daf28abbf7b05128ab39f5c6e20dbca0be613966078fc31b5530a9b92ff3f28d83ab1f6879c8c4c0831471452a6844b60b0725aa53e0add77b13ac707178181bff0af9fe447cee46d616ca14c2b3760613d25c554cf981aa1b70803ca35f492af4f150f436b6e86d3686cd3fe56b7b56a1ca9e7202762ea5edad939f475bd850b7b4a5ed30b50bd10e24f99e96aba44e324edba5604e1900a7b72fb5c450fd8fcd24eadf388c40d7171b379895984ebb3b8061e96caa1717ff41d7cc8b348a89e67624cbbfcf474ad5974e3c1fdc0946db619051c711b6e30d342937f81b5b4cd00e36c610ff1ca9bf125dc7509366e555906d2e202c090395b5843f4ad1b1f149c0dac61d6c3f4a910cf31d63cbc969091990ee997f8c066a03a8e0c534337c12a6dab82e4b09d0ec30e4b7cf2a63fd39ce8dc744aab731fbb984704d4a3f01813d5233719b52039ec418845d7fe143a5e79ed624fceb501a241ca7cb9645115c5591d60b70c97a5f6a97a70ee8fcf463c99e75847b31000eef6b9f1e30589205a96fc75d2858dab4c2ed6a0336a1600e5035ff6a04e13e3dced13056aaf1e2300104e3108dca637b9ec2d7f1deb479db4beb890d8be3db2092a3c148a94e435b056dbb9d7e4d0f139b37881a3f8dc18f8c1f162f872e582922ccd33a58667d18e83fb6021a350f088c01ae27ad8dc5eb74bcfeed2377b415a122b9984be7b1eac40d4d655b108ad91af661a7624e14f303f3efc61aefbb7a0fd6aafc8ecada7c5c0e34c3aa917fd2e4d9e111ec78da00fb0f5f1cf758c2d23447d4c5ce9138893d9ea6ae05edf7382037b89aaf7c5b8fc18a2b195bb28bac875f1973a18b47a1c6e5fe5fc49a07b247efaaface88dc4d5a396915bebaa71b4a41153c267b4e6c775af87d0ee0b5e9d86df67313f64800b56421f31f0b3c580f0c27796088e170e75e2bf3df402699a6b5d8e9e32066fec72db1ad2a09347c3995c6e5aa9b4951b47a95d59685f1b74eb543f82759cb3d70a99265a6820a1f2d3fca72db7633dedf7b0e84ba692f8300aae35d7b3802fbf7a018eb3280ecc946337a316237a6beca620fd5f06c77b085fffc3ed014c24a14d85d36b4ac791048750bd5aff56a4c92880b9ab55ac81d8d03b6d4946e2fc28d75cf7c6b06c4ba2e9f2ed9d6be131d2568b0312c6bc80afa5afbe8e88af160c5d6c5b8ee07d3b6fb4d9c40d4a113fdd27993f7422faeabb44a5c9b590c79279c8ce6c30b95256972623e3167149fdd19e7395f989c5f3fc346fcea8ab7f0e2bb295b337822649ef12312d7ec0d35dedb9cf02f937773d491dbe32aa07c9b918a602939764f8d073fda12fc9be9c38f2427c2cdb36b71ea1c44bff10df56774baeea0868cb631905c225ac82037ddfd2d8023d41c7cf56b2f9ee7cd38b192247faf9a228b60e62bf4bb9e1c3695bf4fa93db0e1ac3122ebbd3f04b01f8a6a8da1f51c2c564014569f545993659a69559b85caa25c271d2187de4dbc9ec133e8a306497a634ad5aa97cee705fa14cdd4d5c3b813859ad49ce66835d7a1a1e080a1b7886c6a6b5be4117aa7782ed2f1932001007d3bcc082c455bf07cfb60ca9486ffd59bc706c38bad9f056cb58c42b5ce4aa08763b0e85398af38432d2e6ac40552f0d7f031344170779fe9992c7d7e1a93ecc6d1f856db6f3fe8f37d58e612194fcd164eeb4652369362a9ae74189f3f64b6678844188555143f1f85f9c8777afead26e8cc8ba0e85c91f3b73f095d654ed1ddf36be2df620ee766fae032340c2703d3957ee80cc1a58289a04e500ecb3a325a0f6c47d8b6063c2ec1eee1c6ff9065aa3e186baa1e6b88a7288337c0965e83e3d3002898899e6a8dcb43ca6916f45ed4227128e7e4c5defe3dc5dd6bb1891f10382ebeffa7d852a4da20a5aa399ee1c9507adcf62a1f5c7a76966d140ab6772ceb59814b54143addad247043fb1bc1f26ae43c81d056b42a93f7a5acf040ac192cdca113218b0f59fd5c36d8ed6048de1f243597aa543da4c0ac770939bef6d92cf5b070bbc471f44dd155926a9eda4fe13f869930d5cdb58dbfe541821f8819abe41dd273da0083b123a66267b24c00fa75488f58d5795656567290e45458d3b40e58bc9e1599911e9a60dd3c2f0550f36a575c8e2afae7e4c35b7c673162e88f314be254337fa71fafccb4e9d1abd0c992d8c8f9df8c6764465a750ac3d76e303fa338b4b4702e52900bcdd8e75b8733588ea555b5ab07d7fb777129b1765f62e173628399d450d71862f4bd2f43a74285c8908858aa7e1a6ea7caff97f715964beab4df7664d1fbdaa90482e8d2fbc21728dc846a065e26c3a239c623f38f747b00208fb5cc16c79c7ebe8b489e0a1c27db7e04544dcfa6d3fe6dac206b276302678d3bfc039fcf952e41be4fe309db7829c792cd6a75abc22bd57bb6f16d7ef35b091787a3dc83270cb679c3e670db57cf9916492b8fc865022dabf987281a69eb60efd0152760e218168b4ff98b003b9f7b225fa4d1cf6f88fdcdd924a6ab95acbdf1cebc2469536c28eab11cc1611d174235a8c8f5149a9f18f037e14a48000dd297b7f266e43bcea98dfe2579e90852a6c164bc5453226a736dacc8e5cff8ab433d65a1077398eb2fb444063ddc6e0c0a4d55e1e10fd970fa8ec5247d6727a743dd1349ff9b450a6ae4cb139096afe8f3f2b9cda08cd75a5249a692566c5939e323e50e36bf2d71eb45cf82b14baa594cc15630329ad97238bea76d965f4b9b15f527a7eaac6c4482c2de85e394c5836fcddaf0cc2f89dd93507dccaf6de7e4cb6ccc68645518822e6722788bc2b24053b75b92892083ac7ffac8b6604a165ab99b4949946a09e57cb86eeecb11c7b48af163bc367581715fee14c84b7fcb50d34ee25061c323ecd39c8f2fd8775fdea8c283cc85eb380d8dda253463b61fb79a5187f8f1753a75dd1a9a0687f6c2e106a0e884becf99640c9401cf25b8c445b7f3a3e889676fd4c8a52307d4c6899b1b50b1c588a5c118be27f3bfd1f65428d7f5dc7ec5228098fd3426057f0b0f7ec8d05d60f9d62d2aba543546d99710166caea936c51819fb0fee2f6f84ff69d197dd3002c0e6599ad1a7503b2b7f35cafa6c2b449860b460a21b52e663d2da4a19b2d1030b437b2089fae54762da73302573431ddfc9760b99e25c9b84166c395eafc45faf4166ea7de43877f98490feb83fc8dfe1586dae737bd41b52aee0e0a43d4b46c32a08aeb7609c615532d56f48ad73ee1f2ede3a493170cdef031c0f25e6e716d3a0adfc8bf27e419bd3f0773063f189de99eed7b7c3984e3907e9a235a494ecd29049f3f93ba537dfa468559d3fd513f0695a03f4a357be40125a696634742022d41242417dfacdfcde4bd1c08267cd5bcc95ba8dba4de85e6d6a464b3a82eac2725e70280d84205da62db7f1b611f3d8b5902e0af8e2d97dd0f5f7c178f1c2925299b4fa297b46bbacbdce0c053964c3801b55f7a518e16d6ee112fd12da67aecd2ea5ba56d4d944a53b5a61b809905cb8ceead3305c6447145a0da9a05c94dfc3f4c19cabfeac7ec491725f817def7454596ce47ba0f1bc83ba4257a36c2eceab81ba5232276a1a2f51d3394d0c2ace434d89c76c89897b593fe1255499277b1afd5303c22637d332d624190b08988c558831c717acb0646e9337bc2e7c1cd7cec19f350301d74169584ff6dd9f6c0cadff02010fe67927105394f29dca80607a255c5588020889a4a41153ca95f2ca76de8a907076b454d9a1059e2c1a924dad69593da13363246fe89a9ac74f3a67edea613c00eef6bd3f025c3f072ae99cc1822ee0ae8354917b4f9d4132e79b4ea68be97851408e200e23ddc970e1fdb316549c09424cb1e9a7057b13e878de7ca8b0cbe78791b79e426116d1955ab7e7e28393ae83ec13ac90b6b2bd38228e22e09b14f745556af01d4857cdd302792d250ba14bdff55bdce0acb4c879f79a4b42f988442e0ef1a70b659902046d28978be9529336d1ef3344898dbcc514d7c44f8c960a16034b4729026754b9d3bb49da85f93afe2779aaae6d09f0ea72951dd66b0e4c398dafe18437f79e72914aefd182867c76b20ccd607c15ab5dd0cb297556f82635c51a5a53607ff9874f32526c43eaa28ebd44b602075a38b79a5a56f41a13ae28017ff98aa779bec74b2edf70d81b3ba2780a1841bc1f8265a3606af79f249a1f2fc5e18b32d74e4fef85b94815289f116fba580d4d736b2da1ba6735cdde8d91f4f443297e9cc1dec75840ac10743c03d221f2e4d1b63a62ab8011653aacdc9b808a279b356b68660f819bd2bf65797109801208c2937e3af2f3846528e7b058d62afeaecee21e3f69cc7f948852c7efbf3b0a3f34a3d8fe5b5187553650b5a6f91b87a9170124f790f4a2bb338edcef079f4e6eedbc586ddaec0c04dc1c7eb1c900cb7f669377a4ba32ffa43f475769927aed41729ebe294f62fdd8e46328bad39b15d4bf2495e646255b99f2ed9a421c4049d6731fe248934ae8d829ea68be6100414b53e792f4f0402c8a7116b6bd87260fdd6e1beafa1cae908dfb5777b04d9fe7ecbba542878cf02059701b80fffe611d324454034b477ae2c7b268a57aafb000abc7b865e081221cdbef4204b450270a23caa9acd012f3a12a61c29ba7629adfbd3ffe2b1cb9fff9f6c2f9f7486893e0f12092058b616f3081e13af3c1b6adb4a16de9b6782aec33823184f20168572026aa3d848d44f2c82798faa92ddcbbc49dd964a0d48de9cfa20ac4383094373a52b01af0e661e0466daa0d8557c4c4018fdbefc4e0ed4c206b561eed7fdf5e91855815394e0feeb5d82813d9f04b362b13a965e956ed2ee9911d544f57034258f09e54b4f0aaeefa4597a55088b1b8c752bba66cdc0b7c21360fd1aa5b183edd38daed3dc267b15ce03e3af0e93baa2793ca8e395e4e5bccaf77eda99c10d95e5ca2bd64875a2b67b923cbbf8cae58021fb9f1ae6380c15dae3f90a1cde75f2e46b493a570be1afb612c5dbdb175d54c72ec915bb8a7ffda57d1ff39fe38773c733a5b172859145459a73c9c3e7a88915cb0fcb8be2740698bf0f680e7339ab0deded39e9207b1958fdb98bc2f106cd89b54722e4ca12337dd8332ccc6657f2e26dc5f24df1fa5e503d9c310b4a53b6367df6977b2a5834c2189b1b9f1664b49583575ad3a37bca1c52b350f81b93df5e5a9bc5aa2ad813f6f8c7c854770f331ea4fe61aacc75c940a7e2ec1e75c392388d366603abd467e995247eac5d7bfd7ff2aeb9daa3495a09d04c458ab9d90cb3cf84359153180c420844173cde57d1ca44aa93c78131ad4896404e006fdfc31c15fb5089b5e2948ef8c0b92c5d2dcf7a86a600914782ecfd6a25a534caa19d07b4180b17dda9176432fb004e23e6f0f7594bae3e29a95aac974a8ddb63eee9fd746f95252d4c832b3c41d5c841ca5fb4cd9410c99ec472135162a4cfb15771dbd8c186376fe9aad7dd19ca90d517b1fff87898a86717d5bd28648173a804262e70fb87577126b88d7a34cd5b54197f69c8827db2d242ea205b4aa42df36530fd7ed26128fe6719f374c9d4a4e6437ab5467d917bb5d165b23449397475c99fe67da5eeed1400d44431495b191eea0b92f33c2558822056c59376b0392d5ce26de30f3e86247a926ac7a28b936cd8fe9919b5e7f38f8d77f2f2bdf6ddbb46622abac61fb5c5b344d3a93e3dc6c0c6d82b51b945840409356e8a0d909f4d1bfccee12dd934160896b361b6320327ba9c56a664a05d06e6ae4de1059a3e6251b7b16b767adfcc4d9907d8ef3a6a089bd3888cfb8c60c8b400d655985ae34bad4a6df56c61cbf8a3489353a5d4afc830c8a4518c71c24c6a832644aa5a73b2157c9a3f20869c0594cd1556686d43bb05759e72ed9d4751a9aca207ca1fcae23d743ccaf4502003b50392eee3b5c7d23f75a4bdebac9c7a43903a4701ab6ab30503bc359727253f4dff2412661c510c8f069ec629251c6eaa4dbd8eac2a1c83d19c3061a488670e0280e9dd593e9d8ef05c61ea4e73f52608789d4dd6133f400e87411b09d7d81f2ba0e1c6534c7cb8309196bc80f1389e55e67da56990f15ccb5bc68f644cd4b8037b52cf1b3656d1b4931b6c6af2b196922e4b7990d47defd779dff0e2d3b47024faacbb1d0e3e26394736aa1bfb9d24e9c0135a8804cdd92e685b3f609ff597c617101a19a7bc83b2b9c7e74358be0a374f5f86676a7169af196d2ad343f3d56c4c5a6e5d8ff7be31a6d136cc924e3360db5d95b962cd13e18e978bdb763aa3fc1bb0ab25ad1eeaf933c3c2db170d3e79228ac4bf0ec8ccbac190a02b6354710e3860601c0649ae295eb98100baaa9b343605e69ac90698aa6333cf221e51c40f868bf246a61cda3f2f95988c63dda645a2d3563d09a30565c0dd96387c9ab568f753c06d5de40fd2d3c63700cabcb955fa8638a1fd0db8170f2ea540022dae214b562ff79aeec51f4a66bcfde63c4498c4860924605b3578e9221e360ec24ca333070d98af126c222bb08ee79411704ebb24cb945039e80c82d34610b8f818b4a0d11bb435dcb986123c4282282671add6944f96e4f2216c2bbe1131ba4187584c3cf76277e1f3eb5259f8d9de87116fecac41d02d3a00b1147df49834e47e6dc81248ce4f5c8233820a42f98509798f583eb75117a9249698b0887459f1bff2ecf5802c9f76292e8539c1a49fe863f4001776adfb820e77ad86b9c3432683e33b1ea5369e72d962ab919ef55803d1cc69650659f5a88ee5e37918b703326de2d5d0e9bc95f209fda070ad2cd2fe834194c392651a5e0da1228b5bfdb63c5c7fd76c15859de761d38ae634aed373188bc484e451b01ae613865e07fb1f129083af347def678d1ee0a89b7c797f4787783f68a01f3c86ec4c896eaabacb63737eb5e389adf3c9a8cc5e68882153203f6dfb601e1d2ce445adf63caae034ac9121185bcdeba8f6850c453f3b6b7235ebadc76fdeaf13c5b6280d295568c8290058f9e449e5ea552d57969b5cd12a2d1a3bbec2148606b35c3bbdd917ccd11e7b955fb2d2501b1a199a6be5a6180a1efd3648e9db7c981b5214236f6fe7b415c268a51c3b2f213dc6b32637957b46d648a511abd3f1e45ddf940546f6c4b5b8df8d59adee54302e06b8fddceef20e19d0c1acede80fdaa3dc32f2be14fe51df02d9b2a3847bb336e0e0520b76a423a2484645f616d3ad78bb57a50d1d5198ae91d7303676e2a4bd17444e40bfce8b23bbfd35b537c31fa5c9690e2465e139e9bfef829103cb11a7f63ca8d7254384aadba915a4a24b6a4d60e472e826f5b01f3bd24f128cef2768a88a3262f4a0bba0b950cb3a478e1a4c9da89ad71a6b9987365a82266d4143abf8881d22d6f2b3faf02aaad7c2b5607535112ddbf1fdb26ccf35fa6fa5cfbd22767e7a18f100f8c229be6a1d5af1dedca42c032ea8b0ca905cd21d6eb569205d804019ca37dbd939f39e4a0cc0eb32a49e8fb09bebf40976bf41a274e09045b8893e183f3cb00c626a5c62a639a4b78257f4ae01d7f3977fccdd694419b98956c1b4da9c4cc46b19398dff0eef13fd61ce17bc2e0f68527af927ef2db6dc4741a9cea503074a896c7e9a0babe115adffcf704e08042ccf48e9626e545f37737181adb32ffa5f0e3c0c7d1a1df7c44325a98c1b0b93a564d8670682464abe196bc8b4e7a6f36d8e58d39d3d7b2c3f1c3a277bb9153c59aec86a8cbaa9ab651a4ee5f4c5a086e692f495d9770432888834da265731715abc8ac229185ac4b51626eea8bb297dc8352291271213d16dbbaa912d6c7ef6f3824ad2a1483d20240b338593327f6f0305838569a5fbe43f9bd05e3155c67b9766e799d8c66434ca173452325cfcb35279156d6012f8f5754672d7b7e9e3fd161affb669eaf19ec2a55011c606377b223c086c465007c8c2093e66d2c32887d639e8fcb26d1a2e8f63234dd9cc2ad226e254e0ea8b98cff6d3c4fe7e66502a665a2cbc56bda62e07f4c126e01f41403dc8f6ca6265b18c2cdfdf246bd93f29a57b3776e981f7443f12daa86dcf62b3f92f8a8cf1ece48ba9de48522773018fd8d96809d9295baf3c080db03afa11b13f0f4b42dd3e516a4bf4a0c8ce951fad90ea15bdff41411358b80389f76091232a953019596f7d90fac83ddca3a5711b9369b539a04d14f3a1bddd25407ca529526ce4fdd63272f43c1a70879a797ff5482895ff8875cda276ee18f6a333ac02b5a049ca87b7d042257b640aa900272c40ea243c77503e2c6e975b48b9df21028c800a487f34ebbb5730724fff51f167b5a74f71efeb7dc7022be02d9441dd018b8908784c4276881454194463416379401fd4662d6e8ed9e908801d51671a065013a6b7087203bea25b3f53722b879fc65959ec98d690ff5c20d71f37332a41ac92859b8e67fd42fd4c4f36beecf48466b8d2fa981171eb1224f052897ea25b7603a15c92a94e16904455654194cf5beaf8f556b273fa9b4af668b1659cc49d3014030a877ef538a6ecf4fede19326e28edd1fad39aee09da57ba90c0bab5455d73a35a555ce3fe6d7802ddad4c16a3b4702f0b99eb7e0c2035a887e5e171a1d44acbedf8a13af305a86a27f7172bf56d3f39ad730e3d575fed820d654cd22a3aa8e84831a3dbabfff7a02116d0f64c8d0d2dd7a61ac7a56a712735935be01348bab515e30d93f1b32bc73fecd35ce641faf30c5444109c8bb7d31a384e5f3ae376b5695c32402aaca76304d1e39aef8acc42af737b480bd25c79bb6efffaf7df1169e664fc945b8f347359f1ae081ebd7270bd391cc0bff719754e91855d64809956e0d79e82777e5075ddc1cb7a2c8443d8a0a1b463c91f0892a1f23a87ae6ceab7a3eb17eaad9ed335f92283446bf0ef260cc762dbbb82a506f64a2a4b44dcbef6d23c63b78e16bf478d1a0ea6b60cc7c3e2a608caa5a8cd8340c14870de02a8940f1c0608d200c97ee9d961f5cddb01141628aa9a9854c2dab1357ba3119d9fabcd7d50992a22f58949a12858b5b6486c6eb635a730d8015b677eab97b721690a3ebba6670a95f41b4510675caa23394ed9d4744f1793bf6d78bdea4a986ac734f984a690859125f5424739d205b1af51eb0460a09d1b11942b30c81434cd76b641a4f223b8f8cefdf49c853b4778786fd137e6b8b9f25be17de813588e627b10024733c22147abec535e9edb6441311e8d625f3a75e4313a583ec259abadf644e426765e2cacab32a9adf96372fbd5c368d4fa6d0b5317829f133db94803b6656e6699ec5a71136327e2aac68128c4cd4251a68f96428ebede3e312a2b7c9dbfb29e44c0b490f5469b3e0298ad2fe8cdf1933f75ebae3d93dd248e600b0a8dda58af473a0ddb123b598036d3dc7dd4d329ceadce733d5b6d82f5a9045f10545153ef407ffa5c2c243663668e63e7e4f5a83cdc2764a89836ff4ec5a721b2e652c93d48274ea0e5c6f9c6893657d921c67c9053454d9cfebcc0dd74c15151a5e3e363efe706b2245bf17a221b2d68b65160313a9555975751e6c485246e1c198c5b0d1ca0f8fc87f02fc7704e4f9a56e16ae85c6200c9f3bbe0d411fc72f7a4beddfb89b37c71928f3abaee48a171dec9392eb10703357e43f8b4d05740be2c6180a0dc283f294f926f8b9a238bd251c8d86307b072f79163a685fd12e5126b016f2f7b183aba544d61bfca0131f99a378f37d874f2c4b12d547126c057888489f1bf100647687aa7687ba9775f941f8cdb67ba57ada288cff9e7983dda18b85d0944ff1c1b7dad9f5f26169b0d010f03afffb087fbd67888d70475401f4191a0c89a73c7b6c383d724f0baa11d7aae07a223b1896503ccb64830afeeef9254071527c48024ce4152a03b94d051f28aa51cfafbcb21b4baa91fa23b47b41bc50c0bf4374f35e244a9bc58eb14d966bd63b9a05fb21543068a4e5ae7d74feef8518b4bcffd4f434291f790fa18dd24cab5963391cd4b7eec4bf9a4d78158172adb5fce7152d6f106c74bba0bee35209d667fd71278401e3339b4393184f0ebf0482e352912664c815af87dcc08bfe7d388a589014aafd0a23f7008721f39b96ffadda24e109bbc10dea3b65ab6fe809d41b3cedd7bf958cd92cde6f4084fa3cdfe41296f42854cda2e1910e99c3040d34c934c79417736c59e21cce26984518a3146401485fb42c2146daa039a43941ae29e0b0dca453e704af686892860fbfb77be01b83ca627d14c5306da9ad02f957b382f6edcfff6eee9f5a51a49a76ea933147b2f3949f29ec9739b38e52dc9e146986ccdee28da90c892bfa3b6e4f17177cc44cd4f90d1263a83d052a9fe6f88b45b4873ec5b0f0c9428c9e70b0cdde333b6eafa4fee9bb9b9e3027ccbbec31a0c489aa2e6d54067d31e5403b91f9b773026f36c17e8f0ef241676dd37249ee1aa3ddc9cb649901571c6db04f7f31da412cf38653bc40c8a7dbb2a7ccbf86e825a0116510462d4476ca267ff38e1f4ef29ba5ebbeafe680dd49491b6094a1a956fa23f51fa0acf9e787b78d0dbd812fc59d7527561a9b9fb60d2cdd19eecf1ea1e8fa91fe3ad90cfbcc29b8679660da986846372d413b22f92e3fed3ad0fc48b1facfc661d3ccc600751bb4f354a47f331b29f756b4f3268bf4688310d4bf247e36cd59b2971467e5b45623303456468619c192c50672feb348a86a446a42d59640728bfd1778440f939278ea4476a8a65aab7c8eb5352c8c03d111fbc370861b4248c410ce43d8a7795697ed31a124539c9dcb0c4c9df5984087e22a3e749da02279e30d6c04340c596f47062e09b3c8fb348c476946971cc60be2b69591fcc03e91939b026ffba82b3f155c96aab306440feecafd04e5d9cb1c3e66419af81afe616938e0c6741d5c332b8134ed152a286dc901fef0935ed5e065eaa43fe647279653e21ca88f5ae1fcf2a92187b782417fe6e66b1a9f9a6cc3e994778e7bfec75161d221f360cce5fecb27ffe397ab095eeab10a06b9bb6e824cc683426e7ee581d7afb4c8d1af7de3d3a3929fb3636cf45525da32c3a25127e1e37de6b130aeefe2aad6108eacffc09236aed0d1ec704da7970b82e40e437def3d7e889c36ce29c44da0c009de8921997010309ae5021d4eb8106585badeb30d1783739d59759cf2b7856f096bbae2b4666770f3908ab28f3019c912a6d9b3b96cdb3bdeb4b0ee744d1c5f630c4d50e29cfdff0b7136dffded72840bfd97dd075c416b664dbb543441db2d4e5adc78da71150ab70fddd589c9b2372732ec4e36cc13ea641ce2cd64587dd2d21d37aa318e500c9b8c3be544b1f48275f6baa7a9e7cb7c03579762e6ca8fb429607d9b45d381f8432242391d847b0e653211f795d873158c3a4a64b3eac70fff99ebc9d87d89711cce60db37991c450e91b7699f3ef5aa7f3b709c0578608d443e5d43b0ab9306d7ce6debcc4937a81ac54a4b09b1a5c4cb81026d19c16b48bf3729ada3fda2a812abe045e170cee41c892fd5dcdacf4979ed58e0bfb026fca71db5e2b0a7bca2dbc95e36f597e148c12d958fe845504c8eb8031c31c26d61f75077b787eaf8bc0b056bc4ed8e3e402c0f2f2c712dfb0640a91ae520bcf7b61b93cb3a0c29b2ffe74eb1c325d61082d191009c0a1f5713fdad7ff6f0075e7498cfcb0b8c2d4d0faea88a5bd4c4a90518700f5abd24a7fd88ad06b3bfea82483d40b1defff4408417a167198f3d27946b72a9fba260a0f0f671796e869123db101a511deb3fe6d9ff8222d7b786f51c728bd328306f55805e006024fb03c6d0e6b8e5f04ce16fcd3e3cf11515f2913c7f175178f1c7b909321f9f84fe571956b9cfc9ab7e21e88f8cafd0a4ad09f401de3c715bcaf3e549fda338f879f5c2d7267a2ea1d255b7f5bdc0c1940658300e7e10f66d5925f0d453d2ebd1145b51a3e2b49fb851304c75dccc12ecfadc67ac99c3556e71a503089bbcf59ae18fdb9226b3c3a4706f599f44c6f7d3f6fcfc6007f6b1af27ff29b624dfa4fe785555846a40096d200daea34ec3b5da00e80e946f9ef22f82ff297d07b5bdeaed11b3353ba4030616083e4a50b337a6599ac81eabc262fe1e9df5adcd3e84f1bf29eda0e27dfd7e1ffe94a88962a9ab29085e057ceaf49610463d457afbd72fe9b55c332ee7bd2d4bc1ed5bb317bf08e8a2c53f2735d462b5bace125a894349b626ccb2fcbf69bf5280f7e6dedfa112b0d7a337d9553ff577e71cca79661f367144b4d0a46f12449b0a37314184c047aa66492bd820326c230af672ba145a2940223b2c6f6c85362a3f06af2028170f004b876d1abed28e823171f85d2cbbddfb32415fc58c04faca2a9400adc0875763d2892396dbb45f48c60f538d29724d6f3dc607e99a309dc64861d102b435272e507f7ac7619375731eff2bbb07d5552c789a3cf0ece0d3ff0246db99f114ac0dc5a5451fd56579cc482a1c754f5112bae931a249edb4e650eacbbc7596effb82f581fca3cde990b3e203d0d228622070227fc9911c28dd6ddcf458ee4a3255dd1cbd6d9de7f3abbd8f9dd6ebf655ec2f7228c137a310ce41f6dfd94c511c147e917477d82a69b573bff43eac517104be059b82572ca2105018ca5ddd9cae6643d3b9aab69c53afd5c2592e6730d136fb7109276d3def42e6c384e973cf3ab8bedfe47ebd9715a51cf8ab48ecf2f5e29d262ee6db97cd3099844d88ff24ad47653b4814571d0366733d147c59e3591a65001197cb33279b591a5d0b8910071c6f6b92458ee0bc34374e75b29b0a2accdb7e963e0c133feab028538a5da92fc99f001991a1ede5e22b055bf1e5b47e960a35c3e4b4205a247bfbe1b09c8a9e52a427c7e8f33590415f2011cd6f341a305678663100bf411f3eb01f1c488e242e31d135ab4af02358539f4eb51833e106e0ed5eb66eac450cfb04e6e95a8c1a7468d632be700c0265d8ec0e62e7734a65881d1994964e6a3fb8171532a1727dc73a4ac3d98400ab118645a3ad4592491a759a7bc3f86489c9513b66330748a4d4581a201093a0c5a9b157cc85c4a2d5d987fe8587777d915d4fe322a8ea50c58092765db4165f7c1c70409a851834dd91bae7b27c9ddb839374ff90a49ea1cef366c51e9cf45e4725b5fe383899ed71993c5abc737748e64ca8e0a9b10cf0152399711e82e1addfc5def94b06b6b176322bafd9940926cbcf7797de3bfccf691e7da00415eedc2b4733074fa75f55bc52dfece75463dc3d9002e0211a55bd8de6309851e9e5b07e17fc96a21e7e677b6c8e66cc12b6376db852bf80b95f61e13db0834179c9b439641e491afa0d0711a35b6dad0fe88e34ab9ce4f20f2e33c60eadd19edab7a5e238ef30311738c2d46e3deb2668bb761f9914158c956eec19b03ebb339f3e7e95d98f5185e0bc24bacb0bfb00a97ad2168f3a142977f22a0cb183ef0aab2f553ee6a6e865b87593a954f996d4bfd3cf520d1d1ac0eed89c3baa230b3ac55f10ea9f1703ac60b2e89358f8f1fe8b3d824faad51aad8bb58adfb939cf0b100b14746df02730999be88687ee12f0c0b87c4e3bdeb758a9d516d1b289f817b40d4b2d8fa025e809ae0ff69fc698935866a5c4b871d03bb4f0987ce3faa1f108e8f4b4e2de0fb0a0ecf48bc363ff9eee0b2dbac6520f0eee9839f2e995a0a434267376ec6ccc6421e91d3860d934e4a76267b8cc8316b645dd72d197a587a5aa859571fd5cf8dfc53f72a07a09e53ae5c0e6ed90ef05ca4b556b976d27277b3a3796d0e5b5160032082a3cba034bfba227b39315193f9328423874bceeb6281feb8208ff3a52362ec4e10386068cb221cdd0a53074449de723e5a8693374402fc7808364cc0877b42b92fc89621772a60c5f11d088c5630027bf9d65ec1dcbe030fa6af97633c46218576257ed248012330b6a5377e6298d696c166ee83742e41fe691657e3b3237c13ec1cd10a99a783a5b36863c473ece542ea4a63c16795fccd66932f34b9b8e279d4ed4f80cb8c4a122eca4102e5dfdde3f1d480fa8718f637a75db426f6674557faa9f4de1a0da430667183fec9fd18f8613db6d30880ac739ffadd10e1ec9365bd8ddbb24d4f2ddfd1f2ae480fd868c1a7f497fe91272cdd5961b9e5c4860b686185dd6177b7182a61a29d1c8f470db65533dccf7acfd05f0a04d3aa04b3ba1967eaf11d91e7a1b9e7b05711a1ae37f42e8a962c188d514892295d467abf99e4659f31d8cd34f0c131336bc6bd029da1387215329934af952374133a280e6d0ee4bea16a5b05de0f7b24d62092f268fde3abde383cfb61a9216b13ecac36d4a54683abf92ef34e55b46632ffbe2685020941260fb66cf4ba04f3d985f8f5d118f5edf7939947ebcc14cfa287d0a62f188127de5870f893f207339d68a67d0c00f23c0fce8d305513a2f149c1807fd379101eeb49bf035c289de819f9381a9c2e6e7a13775daed851a4c51dff5a7cbdf8a2be911cc472945bbb82b20de1fc5e41e73e40a1fd715edd022b6414aafde1a7956d8a0dbd9247093b7e0b397fbec0d33d3a5270fc545c561c1fbe58aedabe03191985a92a70c415940ec5efb8b946c1ef0408c636335022c66136584c96e3353304681b2cbcfdaa69add3195c9207819a5e542c299e233176abac678decf436d3299028406cd3d567202dde2b0a1d2fe5b609de9d18b797254c5005419f322ef8c88cad5b1676235ad1ab6690f53bad1b4dcab786ca18437377015e36f6e2a67fde0c81e234597932613fde857f533fbdd715b7f940f6657e5ed2bd594375a72680ac267cbf153628deac63526842d98f1180c5f5c606ae9dca12f4d745cd55945e2e8768562d8d9626abf2f1a47469283dcf4a00bdf16db1f0a26614a221c4b182e9719c41d1d971a7615278410438232e2c4d1d2968cda7e37f07d29fce1ff2f1617b4133f9572c06188e22eca62b1f477eced2884d60d5ebc4abfda9eb6411315378f77ec5fe1b09e80abbf647617f1f307e6fdfae3d1f3b63c78aea86543a423179ebe98a59655936727786b1bafb8bbc53c354b74982a893601eea041495dbb757246e4dd5bd1da499bc836b7330b026729d4e2292fb338b89650671ee8677699cf9b9d259f623eaa4f8dc9ce7f061445c9f357662745b1a55912917454bb7302c0e8d550587e2f5a4b76f59771ec215ee79d78d6383ba0c96d47394b92ea6e632181935f2aad790331d1c728014c2bd0fe4b94c05450d4116a308a073908e7b3446873224678f11e037e42c6698b7798e2ecfee7243a70156da84cb0e0513a14596bca86e97c7389e1be7da7450f21d8db35d3979fcc7631a0c0cfeeb3f608ea0605ebb329fb8510f6965db0c837daff2271e1b5ac9809959dd23d91869bd3ebe56dc5c0699a4139b3e527eca1bc9700a0989128fe93b816b3f07e6796e40b851cf2b1244400d4faca7bcdd40af6ae1fb3574539ab6a506a747cb84491cbd3f9997587287660a10029d636a81f077406f527e15d0009ed2dc776ab6764e97548e1c12ee3693dc3b4cb76c3e55f032b4081022219fee64adc81d4a0dc9f38d0838e0c96bb392dd2252cd1d3f8a9b2c2ac22f9d18c1ccc50a17ba6c30bde4d525d1b15bb253e9a30b2e2619aac9d95f56a3d7022a89650fa1ecf1f1a3632aba6ed0e6b96e28c19fc39f96044faf1bc060945f45df52cb41cf038f27ce8146cecccaef7f342bc03da623104075ec93cb6e3311b28e7f4e239354d0f2c05dd64d057b3de4dfd32936b99079028c97c75fdad7122ab85611256fc769c8b69e2240771f9dc83287b221a8a5c81c0efdc404098ee080696a988e0448a082e1cddde57cf30ca32e05d28b1ef94c3b588bd8447b6d06f40707b14ed1ee16a88c16656be6ee18b52fa10c03bd8e893094d0e01b343213e07d4ab35fe8ea9649bfa62227a406744b750d0d7b506bb7f71898e3716f9caa88a7c04544120e761ea0d80ba721ebb19b261ab1ae04e9dd16913ceb7bc8115bdf29b768630ff9ca171ac533adf11e7bb41878a9444f879a8083aec28162d2c22f74859016b1a847c4a2d8d2a719233b94a8a636b26b75f3de36cb58cb1613ac39a7ea60d008ab396a61317f6ccf0babbfb15b42cfd65b360e6d47dedcf76fcaf893a04f9ed370b1dfc5a5e64526c21f2c2b462f6dc321d85bcd7f67b5c6db525057f8fa0fbcb40c2d6ec81dd8a5ab7ce3e317196f2e90cf3642b2e6f53328bf11aaa22885d4bedb2ae89da218298fd2c2d5ba5cf2cf97103237bff88f72be321eff5a8271c62ea8db71c53965ff4a3e049b196e44bd9d121b8010e7ea0ce39ca13da9c965923b693314c489683e01e48dc4461bb22f6580fd8be5d2b286de1e17eebb20ecef13089543b1aca135f4a5d5ee3a659741ad129a8dd38f5e30d1dae63b095e0672c3dc437d9ecd1af47527c87183277a987a60c0da73747849cd9c3593935b9644a8b3d3bc5ccb9158ed1cd7846d51e89a6baa447de793edddf9dac180f3a4f600520260f2e1ec490522c108ce88e3a69896d53db654453cde5b4198fc0d365c591c4d1837a840ad3621c5696cca6a7e13888b7f1f25bba91d5235769ffcc78899e28207777156d5a5957964b5c4197a47c2d6f8a237bb8933ab650f0a4ae8a9343a37b2249240ec495c6e4194312c2a78eaf04d5b3ef3afdc0f97c2906c594975083217d313eea7930cb1c92d79f5b333f2159ab101f86bdaee8315332825401d8d463559e65bdb9935716a69e06ed4f52d7c52606342368528bde8ecb9adff88b6e5c39e3bcddec6119d280834a557c1ee9e6e405752b3d8046e99a279ff4f31e59459899430b64a129467897b6fee00eee6008e4fb96ecbe02aacc1d6074342ae251c7c06895f99dc442ec7aa3ed48d89198f25ad14e5feec2ddb84fec0b13eb2b1c796ca7727a8e1e1c9e83c07d9da8632582d40df566d14727ad5498940868e2c072952b1fbc38c4dfa4736ebc63a0b8ddb10ff115af28dfb3d8fd5d16dadace57ecd8aa96706daee1aea04acc15a4ce91501ce75070440264eb9296692f796b484bbd0b9b808cefcf23a5db7469352ca0b1ca12c74fa7abb32c03674f32f41121c0bb16519addd5d5bd6c54ac3ad7bfd803fc391c8dfcfce6fc8910d6471ae80444703d452afb70d82588afddb1c525d246d985bcc59e72a005a657a0e670868fe99ebdc462d2bcfabbcc2a58ce7d4ce814dac69cab57147ced253fb0a918534f445510c4d0ff96672c8b87e0e954227f444d0efdc4438f100c62824b32652ebb525013e541a5cc13650dd9093c1c6fc632b320ccfba4e60989a5eb440212dc984cdd1fc639bf609559c1d2492005b63b3f495b9e3a5bc7306652aba06f113a592edd59ab550f3c2de5a7f1ff5a1e8327ac83e75a05fa04bfaf31f554c207c3e2647a833cfd4b28cada4e3016b4444e2711e3afa114f630be647589bd29eee250c4bdc31cd32a4c7ebd82408281f8432ce1c395b3ace1d37ed8a3e71c0b2ea4153cdade588a5c6f81f78ae461f575e4cdb358a9db02e0005dff35dfc82de91dd96166baf3bb8a2f62531323e0d8d5431fdfe8e00f22ae9109799524d31dff9e9ad5dd080c6d0ed47868063987e06aeee64b801a49cfe6cd01040b21622e54ae1042596b3f14db22e1ee623fd1c12e7de219b295dc6447353555fd8c2ed804d64364fc14b48f860d88f70c5effd8e8c1ae859f893ea3a40e55aab69509a239b5d7655230129682c5277f3b92c863675839e8be585476a0eba0f0149e4875b0742a000958141df39087b3b7491840062669eecbe0f99fdb7c7515bd7c3a6636829dceab0168658f61eedc8cf3f8fb741672f32f66c0d84d2c0eaf228b0fac42d2acefcf94ce78d44d56a9a39bdab2a34362bbc8e4b81c562bb5c44403dcdfcb8365cf859568630a4db0a2563050e431a161da524bc43c14edd34db30f33da475be16fc266bb8cce31dc444610690a595e56ffbda875f48f5e91ef6e569fffc577aff10a8bd6ea08d6284bce97ca46b3c85c352d24cb71956c977172d83e25776b52884e81ed16c91fb1f674f152264ca2b5d68303441216a3cac22fa94e0da694536c9eee9da781ced1b5fc81eefaf611ef4ec3259825337ec7f9e5d43e9c6ea61cab9e297d926b54323f02d4d63f303abcd561c35bc59302482caed460379f42f12251b0413fcaaf6921ee619dd71c4d341e61a419db349c49b53449edece39e1ecd8e94801a74f3a5b3046389eccf1603c171415601d2638dd4a8c9d57a818225e670a636c59b3ae7a241eeb00dbc42d0b56134eaaa4c53b5b6709e686d96f5083d9e56f89a14d3f765bd15f4215c62f207e0aa8949332999995db65af8c79f11f6d76a991ad18ee7d924fa7aca8a5caa583eca42acd6f4a869a52a63ee5ed23cc3426aeb4d4c3159b33d8c28ca7e15918c8299556086b664aa660a36626fcf1629521ff6e40a0163728ae5ae0ec1026c330b32e590301e97329b1f3befc4001b6b25c0c83c8d20f781108e9d45d87166efd650c3b958f5e0f6de78d294ae66143af2c1d754d234ff449af1e88c824e232a4c0058ff22e8e27b52b16a325418bb49900636c1eccbb3a0b6f8d01df097063aa8388a477b8b462c24789acb604566bf7a84af901ba9e55613902a0de8d172026469be0737eb6a2ec7eac4fd8a7f675c7be8f7f692c50807a7ac9c987597dc901f576d8be28eb8ec9798b9045424d3e07bfe62a31b3002f2324748a0b241482a1849cfef0041bc6176a71a9309ee2981fa843b381cc257e06eaba06ff9288a17642e5fe01a4c5cbed5f8c5dc0007d609ae8bad616c0be7de1ca5dc4743f5b84280be21af8ca84f9c009c9b344d164405916aeb3b65b68682060a4b1fe07cb22e54b10c1df01b45ca388f58df414f9c0a111cf756ebe69e6b38f00e533559b391e17cf7504a6b7309d1ac97bc2086c81e919605a1fff7c1492af7c9fea17f868616ec7ead0c6a7fe833194ae3be01ab13f04c541096216f19dea0d5e2ba9f2934587ba8579b45239b3a6dc51f900e35678088905ecaaf9a310465282975b55979cda7a8d36e5d2dadf334d484426d0bad571b27562627a5b0df38561bf3ee8620d34066e9d0e2461c53b01ecaaaf12851d99dfd4233c6117c78ee065b10b3203a3d9bcaa3b4a939552d4df21e87c33395cb9ff7f01af887822732af333f24fcf2131345a0dc94bb98936b08a9882a36c0930879e590cb914105f0814d3a35c1d606520a42871ed2479eac7fd858adb826b0198f9320fdef625ddee17327a48d4bcc49fc6f5a44d9251c6d3c6e44915b3ff3dcc0a292ab82b9e3281215478bbe834830467463240c963a6786e400bb1b3ba5bda17a6a507b0c362760ed7760efe13a34c759b1c95fb9a640e5f7dfff3c70bc0a59d0327fe8be28ad3ee62b655823da84d58faa6f7782501b9c3ea5a8d57a29ce48d1fe5bf0aec91fad0082c8751aa23a91900316fb8e7553c0313020691170a3aaff36c8ddd1712718bc03535424f3033ff7c1447863e6bab863bc954d983589a8686e1e361ad96353bffb9a5e96b09ead2cbbb970e046e2436cdc266b86b0c711b0d049a53ab49672ab0a5421e22ebd84a243079b42e9988d3c2129cf1a676b2a7ed2e8b191e3f1f171eaef7fe32d7c60e115e28f54eb0df062be954a95768c449b5fc150bd8101ed0fe10ee7ef32d8a5cd1d22acfc200a6307d7b7286930efc74f193509ce209493e8aaec147a17e0287438724b765b896711b6e59e8ac7b3070cbe78ef655267769db337e55466fa4b1ee6a67e40f64e062d1568dcc64b061d32aa741f124a0a74bb78c800975998b0b3553adb22357ee522f30f687208d40c752e4787f5befc3fef31e3649d550b863d52d2e6aa9b73217f0fd3643da152574819295035a3bdf08264f5b8b2dcbd54768958d45f9a27b45c44599624ec2e0abd09a92163b7156f3cc83f418a744bcac80461b5436379224b3589e07c99232bf7f7c7e28bf184743b1661b09af79a697f3630f888d0a3ea50bdc7a201a6b5d7192afd34bbaf516a6950b5a1e5d724374af98f3ec032de16db5ecf0e221a6b6b464adede91dc0196dfb84705a8aa5df5da8a7ac709cfac5063de51ecbd35bf9711bef810acfc4dd687df545efcf374d65a6881522f8e9d25e9288440073ac51cda5d460bdae397013befd848f05e3555808f048b698ee357843ff5fcdb38788a92a9c2bc979827b1b17fc7dd1bf5e8f601ecd72bb72faead690e426cda126e885e8d4998802f9590765d1d27d26f3f3c1b261440b7f243e2d6d97e3e15aec87223293876725262248238e25179c4acf0be20a22552189f299f53584fc3bd05edb0de9abfa2a4f9cb7643d6c903f273035a7bdf411c00aad3be0bb3e177ab26420457973f3fa4d49b37611634c97fa0124a40182200e43dd6b0310639eb4b03f2f27ae921526564fe621f528858159148b9aa589cfc73cee8269ced4b01121f0bacad3432c0896a17919eb16dc62fec13ec8152fe900ea67f8b2907f0255dd0b44fd12607ac62c4c1cf3a975f6b6aa44c18572a7ffc8abcb4f872fd478b10d2c7bb93eb0abadfe8ba6ab36654ba41d0868887f70f6c7be863b95fcc4ef17fe7b660b253ebedd07c7f3eee9af6df3781405192db15414c6fbc2ee1e251cda01ba7413d3f68280a824e489bdead6de8896d8213a72414288a6c49a58e8cfe2c774ede651af465741e4acf91fa478fc9c235d1cdadf66707497cc6fbb1b17fe944f37219bd5e4b5ad050871415e3a3a4454dc1ad3162a3a747bfac554150a2ddd363e971b1fd460d1852d09ae80ba333f9f68e16d159558d9fea7d95e1564c3f3f4e5218f28fc0c340d33cbbf32700e3709024b59fc6ac8510ba7ebb8f1c069157add10b95a0fa91d6851c3dfb4c3c21f06bd0c575e8c37f0b34eb6eeda715eb266d25496168bbc88675898c05e52debe361a1143c0d4ff6767b0fe2504f18cf26886c8a13c8d5a7b4d9a6167c33625412d02808e225fcfb886cd55c39a16d9b1659e40f928e4ca12a6ef9b6ff3b1fcb1321d0b07842a24436e0860f215aac3dca13362f143dab877c999501eea7586de82291fadca28ec45a322efa59155fe3dc00e74c9b90b4519ef112eafc348fb6eb599c556303d12bc4e223adba521b4f8f5c3192d53e118935eb494524c84ab44fbe375100ab3ab72a5f156d99857c00b8d8039e3c8503870eb2fd275bb7a611a967cca19d28c817ad24ee5eacac14a8a686dd8c4a72504486b41073629bd655e7f8ee55300c3f5ef64e038c5c6c1a1c21a3e6910c5b481b5efbe3b0ac2aa0e0e4ca4876482ae106ce331547ef7169116245954b93ebf3a909a1f62f2e9d31f6c57ccbae1cfd16899f41d5c9c4f31ad3b15980f17d7d81a30553d49c380ff5f29c15eee443d036d638eb91d72f45615737a9320e8ef3a1a9f4b0ebc06f5effbffcd5cc415ed55ecbab8a434e65cd5f9c1d599051382579a4dee692dc70aa328db7af9f922357e1c526f383f20c79dc08858c7823745f085e245ef81a7a483439fe195dfa72d8fdd8e15679302fbb4a02c5fc73837364e9c9d894b6166ee85da04c0263d55f073a7c24ae2f20954bca4b35d3ee4bf2ee64a1bc99dd84819621778976819a753a1d448e6c0d5e89c464ccbff1decf123ca4cdc5b27e24bcad737bada3680779e58840d15c44194037c053e078b0b47773d32f8459f1120f2d8fc2a51947c5a071eb0e0e47c9c084e6500df46df42e269cc42ea92fc639ca8f9a2fd542320fd70128f64755eae6b851ee79d507434d089819db1b57ed516cfcc97e71fe9dd2d0a8eb7d6d8787d11c82fd24d57231dc5f546414578b709242dbaa62ed585fc21841bca7181e31bbbeb3e786f48dd626fe65e39aa0c3ad8cd545510a798de6bae5a233ff63d1a4f31c1433547519fcd01f75169a436a93563965b901adb12b8c7cb8df6210952145b6ddc93d2c4d634c50e8e5c107e4b59236af9717f6696ce737c2430e1cd91001e83b46c8ff2030d9254def0c4edb9ae302701d55f729b9f92ff9b54af3536308255e7ec66e60a399608f333df50bd7cbceef491311aaf743ec831e95b973a993efda8147835943ab99f1a0f2db0851698b9407a687420671bc3201d20196ae9951c25cfac0f98e76ac423cf1c7048f2301b5e0122d3fc42898cdb91905dd5bf3360fd59c0912486ac53d29b8a092416bf28a80bb0445eeab299f53df9bc81c28be2efc80e4204d0e4cbf8fa77e6483bb116ce7bf2b0391d3a98232c1c0441e0762d0c2e8c03c76a7cb4b6e129a74af57b5054252398dc7a545be361a2c70d07de4361bb1a5ee51febdbd577420889d47676b1c02c0b5cb04ccd492c40da8523dd5c779f116ded20c0bd769bec946a68b09c4d2e058bb0356ca02b4c27070d069d644742557e3dfe8edb9adec84a2c7bfbadbb65238f39bccd293294298e87a0f38e2d8852ad2377943233b9e0fc5e19a03313579cb648448be39c6c667daa684a3d092b677058b9106bec8aaeb6c5d0aba6c68aa73b720cb33e62f3ee3f7677a2b7211794184b82b25aee361552bcf556344b3c0a56e5c3ecbe7d64386e302fede598868ce1c331c7bfe6bb0458797fa827e84ae0979ec8bd89ca122acea4dd6487db349a67c6e030b28e03c63698f8d6b23dd7b365467cbab813fcf19761968e98cb465458fdda9c03b52549754f8187da9f44fa6f15734a1d1f449d59813bce0af6aaff21de5097f0e55a9111230e5677b2528c499cf42b40c396ad69c834a33477c1827711a0aa92ac35575bd9ad22e09d9fa7137e2cb77f21b5275c38412fbaaaac397a7b74993eac527b2ac6f647a089423504078baaa040104a21d8e466d1dfdbaa5463a3e1a1714c2a34505a56d12846c961e823efc8be70ba68eb750e199e6bbc14e472caa2fded06cc5d1966cefb21232f2eefc2852fc5448b6439e6f92e9b0f980c08c354eba1fb2f96a0596b2baa9c2604926bc0c1682b8e15b06484035c7a997b1351cda8f822ada4c07e178b7fd6fecbc1289e3a8bcafd6589cbb686bf2e9b44891073cfd34496af0fc2e43621aaea9790b920c73afe486098097200dba74d12a6a5af3d02e252297e59500b22ddefb9fee9bf1f35f2b68220496204740933c64de7b4c27e97f8a8b9141a0c8dafb90e3f63946f6740124c7339a823c58cfde2ea3702306b8f39ca5ec764480a34e83cde81ea04fecc5f014b36febf61b04dd91bab5c77d80ee4c051d43015d1cae143d62528cd5ada5c585ad9307f5b56669e8c24fbd8692c9df8a84de3c901327fc47b6f2b2397a8723871d827ac7d584a5919f042d8b6cfe4856d300d3928b54bebc61d9ea38a25ce930b0ee20eb305b398a6aa2af926045bcb3fbaa7b91508ab1a197fa8e1ff23ec25111421409290f212d2ec8a85be7171bdfcd1b6c8e25d95e1673042dfef5236be8e758e1678713d54955bc3409d290b7b0015d8b751cded50e85c8aa7abe33d3b766690cb4bb22a5f7de8dce0b99faad4b29ae58fb7c26b11c54ae064f6b072dc618b8814008042bc00b40722360c0cecdee3437f82f798109b3618ecdad099ad32d391ad695ede64652d9ed85beee8d9797f7cf81341d72920887826ddb8cbb6e314425c4d2a2eba94dfb4a7dafc1c68cf5cb5837135333cfdacf347eb371a292ca2a009b8e20edad79d91bbaaa4cb45cf3e04720a2e4a1e6a116ee6a997889aa06d26ba5edf33ed07a7fad559d092312fec35102b3043e46080efa0b96b0bd145f760b46f26180a23a100bdd493266bb885f298881bfd9eaa55af5e9bbfafe3b3db787444027ae8b34a4dd91b0e8db2c10671512bd99837430169215d6ceeef7d27e0d2331c9ff57acd68b98e147782d8794a93c07daad7dbbb0f7d84217537f80d9de47875fa257506c7093ee5e33628ed2b485d65239521bfc6bd621411871cc83c20ad31916cf747bd8534aad0e49d3005d79ef83b2df62438ff02157b04c2c4abad3152c44620e62c59d69f6babf48018dbc9aa055d174431138a9ce2cb426e30a38e658d02652015eec337598293716e47794f437a593a7f520af2369f2568fa311c1d65d3b9c8a048063e2c4681bfd4184cff8b1df591a033a6c48e6c0e0a8b656a040962bd7dd14ee0e56080f41c37a2f1a5e9c3446f355bcd044216d7b85b67084d547649d12d64a9d004014c71b7b1b444a6f6631c7e7ae9ba12e11f053d75e6a2e96f8abbdc1aefe76a9df738dfe43a9526f4438b08b285642691dad03249d84448e0e7dc7a0b3cd36c0aead495bae898e802fda2779904acb89d32deefa922b135f98766d6570d8f2a2e6557206f34dcde9f909ee7cd46ce242db48bb9929bbb46bc7d0b61f07939f17e7749edd9a479b32939a0ef605aefbfd9698b322cd7457f3ff3589625ccbf2d4f0afc2045679854420af5728a1665fe09a0cbac1666c4493e485abc92004dbefa0e0b1815cf84213c87964c3d55fca0843688bdbe59c4f4c7b87c4583287f92fd609259d41f9be2e1263c28455e33689fece798faed86d679a83ba70f56813f3d666385964a0bf5f99dee849bda8a8ecd9144fb6682c5d139ffae5b404c3c6c666e6dc42f5130560f53c18cce9e0aca4fdcff34bce2433fe07879fdb99a45f4ee62bd85b11952cc3b0ab9eadd6e55ab3c1cd8d5d5373c0ee2d07bef086d03e422b85999204c6c284fe5b53bc5cc1ea32d4e4d50aee3292e54b6e1d75e61dd57f3169a9d3739f8c1c6607627ec953f4c29593e9d117a8295121a527ec7412640d01a861ac963113c10d44dc6203fd8e9d573847daa7bebe2f9f791a4dd43769864e3f3cc5cdd1012decfe67cf586895ddbd3ce428ab6989e2a2bb17e3810647c982ac3669f17a6475fc74f92678d7a60be7c6957160747583cea88d719e4f114a097d3b210c4238fd035569b3f0ded26a754e34fa85c619d6a969f48cfe3c0c96d87f7fd7791ed0521fa2e86f5d033550d4da84cd4f783ce27b49c44d62e0e97d2c2e8ebd409b974a5547c54d84e717e722efdd0b3fd2963e8164b8df626231abca73212510f99ffeedfdfcbd17c0930c3331528ab314e38860b6e9ad316f1fb4a2392e2f537392b7e2b7eb7ea35e103249384be3111a052b90c946e7aacf2a894f49f85d7cd6c065b192a014b4b6ddc46b337abf9ff9ab24b4bff8efb452d6e97780145b54d84b81837cb7160194f85ebf656c31904bdb328dbe33abfe809f9724a7c2f54da445e776d8acd49a5bace743f297b8e41e869148a4c6e6519db21307ac606d3be3caa9636433e93294d795340f7be2b85a7fd6ca8b2aca244c1a2cb986898755447270242fc641e0a3e2f91c92381b30eae2727ec86613f8b6130853637c0f1f58fb75ed90857c9dd0a1aa62b82bfcc233ec763ac6e5b9cba312f076b80c37c368b89a39a419c763faef82cf5288c4fa431b7f1762e26bdc5a38f3f49553d2139620e4bf451430fe201b2280a610dcbc4e2a9bd6d1a9f81f59abfbfeb05cd06bc493a5969f96dd862eb56e8fdc80668586151ca844ddebfad30473fbb2ddffc48fad6021f58f82efcd72ef4d4ad8f12ad56aac02036fab0a1b0fb48526ae53c37f8b35169956803025a66ee815a30e282b2a067f58566b626106d9a434bb94ad5e768e26325833af5eb2b9e6e85ecb699557159f5ca0c17552dbc340aef4f8fe069472ad5aad36a0612c5d056693d99883c60685e563b8625582c6912f3ef11d2374688e02472d095a29055268e1557b6bff7d51aafdb1f2dec4620f84f9d68198acb6146e819794d6ee2cf3b58b0428a6460a3af9eec3c2e76f54d0e7ffeb9c9b579f8924d7fa26313136e52d3e9f6b655eeb2e09063e32b6cb9a46a7f5d3d53b097a6ddc9da7b825cd7dc1e2ce7a1fd0b3815c52e161616ab0801f0606f3ee0c2c76dea1ff4516f705f31c01f0111cb6da7ed1bf0ad246126410eed761efc783b291ff10454462f1e5eb7332a0e86115b75f0f92d2a73f3d77b68144c1cfbf0c140286bc132a49a7aeeef71dcff6a1505c7dddfdb606ace0e69b0273361a8f811bb2de0cff2666642b6fa2bf844aa3b7a22a53639d6bd413c450eb2eeec9fa7257869d6c3409b05a71a988a81b86779560439fa9f849370e8b9ded05436cae8020039d298a102276d7a6b44b5bc13b89642eef7c59e74b4614e143d57a332323e641edee136f5003e6a04a8f5eb2b16d566da6460306a681d373d36c2c4d740209de66264d9d5e9f114edb5d25dcbca37e2e6529f1972d5072fe9fb6b1951bec518bfd9b28c5e8d62d0d267c888b9f305c801240e2409d1fe4ab13c0c6b9335a5f1b4aeaaa312f39354a90b4e09bfff1bdfbc2e062733f9aa03405d0f8c06789a1dc11b7f3eddfcdcccb9944898ecc0d0549dca25d64f8e1dff3cf63a2f29b3873019a46fa06cb5b4accd60d4b65101e8e69462eab57c97eb0f8749c4dc2af007808ea7eef5334a882db5e3f7f31876ce8ec353abb9eb5d6f149bc49f97b0642597e3ab52a4603c17bd16ab246a3b552d37d01fb6fb489605b87f6c0627ad4cbc1326229fa8296eb952b02658b892ea98ab50f0065e1f22843b3ab9faa77ce643e51925c64b078e92457924ee187f85b7dd18ab9658bbbec3026b036cf90349297f645e9e5d0be3a67e80531cc88f532b0978514318bbe000c55cdae5d65647e8783529bcdb7cdeeeac229d78c8da890cc33495223d43620162799ee41533598dba7471c12e0f694f3c41a4c3600cd3b81359ae71ab619300184f8f72e45b1194593ec90a69506d5f77c0d04e6f0999bcaafcfc07ad6cc2c062ebff65a39bff13bb6ed4de115a17fc63d5cf8dbf5b34154388368bf2156e949a94676d762d6a316f98b2089023061abbaa5a78ef16828f23d342ad72f759b80a1e72d6f27397a810a2d601f0a819406e664a9f273a819a2acc2089227a7411bd3f8a365a212170ce5b216eb413669c2722f8246e3441e127920e60fcb2ef620d4c6cf265134b346865a7a19a71ff1aa2645d026186b2c0a0ed7abaef81b6059d5a64c27b7551262b1ed9b50e3e11d33e2ecaf95afc9c24d1af0f76c7fd0bc28e9362bf282d306d5ade0ea8bff375cd4570d4275032d0e85e4a5ea7a3900e0ae96520582a8721906979e82c5dcebe011560158c0ed1ddd752faa2832c18051d0e69af2a538205f594007f8a1bb9a1a6d80109be1fd02a39e8f49ed0d617c35bd698586c608c1a92f236080e327c13ca7915dd9cf13219c4345f807acc2b446146f0e07a14d0e3f2a1b17de345186dd289c18b9100eb1933deac56d3e02ee89f342183bd25f123efa4d08fdf066d8bf532c27137d62caf87d457cbc2e8736e05d97134d0db98ab8d684902e333c913acca3fc9ccf2b0e0f2d2dbe345a27a9e2c3054daf2ea1b81984799c59f60e8ccfe6ea0f3d655f20ddef99e7ce422949f0b18542e50e5f6d1693ccf48035a4201ebf8e59137c58315e9ccf67c29b0de8aef6f337f236783582241d016c6d096b93ff1b14d7b79f65de9b4763c12c1968d8d5bdbde7e852a43993588e47a7f5473174ab50a659e40e9d46d48bb99da473d2e5496c151f6bb35d7ea542a6e82c0af0f628c76145048d3f83ea81e668d9461b088c0223be69d5a38a14bb92f4af76fc8be247dbec77421cb5bb49ba7f9b4e4d71d52052195c77243fe1835763df0f2ad59ef459c989c753d0997f66cb56acff0c9a773ac90eb5bf658c479e6e826b779d6a0ed407f0e08e25c56a5cf9f47504dd83f8a1bd3aa94b9e28265e08e6489506d4c1f42b9a8017e39ff14b0e525138bcad8bf82b4b7005ef3411a7332fb152f78f6c5b9212e97f9a57be3ba111ebed29b4fb074fa1ee68e724b2e57d06b959bb53ed6cd374671f41f3d36b5dd0f554be2d16a5641f8eeb87b39fa6d7d60c33cccca24fd83d6302149cfefa120479dd414b6a74000420195094f1e0379a24f3dec29e1c2d85abef73bbdf4a5b03c6ee245150c1a011cea5f627a67f20d107e2d2ef288e2383214eb776c56ee77baad9ab3639d04c879cd08cdfa7b1a896e96b118e03f8c458cb9b5dea066bab2d4c4003ef0de122783944337b119d54e1bed39ff8599ce7156b2b3e24de89e5477733c4324cbaa0302e594dd791af698bec7fb21ee827ec70cdbea16cd9438dec8c0b1446aae0e3c3686bb9fc40fbfdbe38af64ed2ef746a77d64178b6e5f7bcf9e1e1f1dda66b7faf84582cf1ef7acb4c090292b262c08f09b70a0fdaf154d37035d4faba452c7d1dad1975c9bb3b871a2e58ad2e4782bc4c751b617c4b966c9569df6cbef999ae5a748d01ded8cc7700e99ee3887c53c2b8a36c46e7af780d7a18b1e22ce8b45fbd135ba8fb7765e11406c4e344924e905d08fabf7f40d0d6e218f9069172718c6a3e92e8622fa040b9afc14e67ac12f642c2379083186d7aabd95db25972dd28b6fd4d396337f3e47c68fd8925e75be7599f58701fffba74caf63d654b547f95852b9c29f4a1a525f82c1301117b77b3f4be94e0a2fecde0ff7adf31e71731d3ef1c3c00c52580e5e2e249249932d54d9aec19a13c1e1e2b0012feca0d27c82a4452bc8554be4b57bf9a7693ffeca560515f21fc00aa35c96e5f80ffc13430c9625601685f4785852f811beb64f40a162483d9b72a2281a68a063a5f13ab8ed5b356d415a8cb5c375f203f83f11c3f083f94018ef9b12adc68c9ae4b7ee876df21a9dacab0b8328868ea07ca50284abaec5822b22c39ab500213ecaa7ed0081a9d2570f0fb7558e199e270a6cdb6c25b44a3e0bc5906602097acad8eb0e866f693038ec7f5cf4e7db184a4492fe3d5cbbb4b7e78f0ff5dd3a14e577aede8e0b6bc273897c68b6617efe9c7965bce8f41dbd43ef58ff2ebea5cfd1c332ab491350a5e6cd14b1f883b47231eaafce3476ed5f9097f3f4b8100a56f11aeeb8abe7dd87e0e4296e4309796748cfcdf2eb42c6743f055d6163c6aa52d0b5b212fd3184cb01b58dd28e95a729cd98bd87c4255dc929a7ffa6a1b67318f65170fb4b2bf969cd3e8e9eb2f1c15b76bf7864e401c62c12752d7dc0be33fed5f53b549d8e7bef27105563f5045eb8eb0ab573f21d8c860e648e71de059a4fe1896e7d1a0c03c457ba2e868484491cd3696dc98e680898567347d21cbae2ff83587ec9cccb4d82c4a445f7b9782e887dc281eb2086c345c13b6dd01c7e2723b03c5149c442bd5fc936e33ced8d26ccb0e94970b5a9844f05622702e840389b5370a1cd6882089bbae711e9bd4035a10ac6362aed152f681758054a51c70930a25a0be184c6975af0e2d0e00a154732e3b8027aff2b972dc38000871bb523b40c8868ad7884665f30c894264f2a25f3df746869cf646cbb97bec08fc6a674f800afce5e0ed169fdb53736979caa69d9c1fab63449ee59a64501cd1d073aa18bd248aded80c89aa8b5649cd01c7d12b968e80c9e106dfc263add9e2724200a59b5158cbd20832f4c18829b8c13c9910f4d35cf0d63f8f3288bc49f8353a0873bc640e8cac344a61eada4e07179b86f6f771f0717bf17e09952c82dc639c273f938ada0f1a9296eb895c2b43b1a7cd299294a32c42a68c9bd941cf121566a2394a86bf8396ed963a17fa17e1f7d24d98bb1995cc886549af0c8315abb8e676df7bf1d2821f2f0e858ec0310a1d46a25201af72bba492b42bb8bbfd2082eb756273e980270a8bac539e82c9937866e9c61dad4a402a16f0bbce8efa59026e7bb3c449426f188cf9fcb9505d6e5e4514e531827dd4b74694235c8d610522d8c11a89dab9faa63a1b5707e37c098b69a99a33647ef3cf566d9270dab2b9dccadda5c05e34654cffab717645d69b65cb954da2ca645bf8e8fe7260e9056028cbbb070f8dd6bb393679b08fc4af6fe3a5e744763425f755edb0ca70c9ae14b2b5e2e5aa19ec96b05a75f01fbda8958481f7ac2ce50c068cb96ff4eacc21b5d222993c786d18fa5f5b5ede195bdbf2c7953f82c5b7ce31b22158b99e73ee0eac5cc9b1f7d32d13b1ebbc134a9d5c64f26e740cdb201f68007724805a56d25f551cac711d18be1e59a1d4801918a46345ea5d09c4544c47f9fdf217f4b6f12dda1b4ae0bf35db8baedf4b1b71fa8823ebc65b39defc3a1c59862ff6cc507c9c1bb9125f2c2d73894540c0b47eeb3cf601ad0dd4d9cee48ecc0ae6a358ca57ffd7e69ea4eabcb89db9e6d3f05e010c28ca3154b983450888d7adf9eb760e00e7f9fec09698f90040a7959b6f52fe17b1e32b5c99c7b11adf4ba871102002c5897ad15bfcb894a0b468a9c3e75e933170eae1b51b9966298ce9f50b856eb1c844dac4e7a9a5e4c2bd6b011c88afc9c0955c2c052edd22ab7dc49661e3f82a16c2766ff3872c6fa6018e4480d917662402ad45b91cc822a5bb64b46ec873821914054b7e107e81eed0e9de5d1c30e76ea27a3db1486e8ccf047bbff593c5e810a2436fd5996ff3cde0b4d27e48825cdc7b1ed82519657238d1406346b99dcd787d7adb7eaf1182562deafb32889cd13737129ff993c6e70a21faeeee1599e8a618627fdca7e2274bcafec36950b23029e8ce3829934e6aa1055967906adf059929d3fa31bf7ad5f4851ff80f3f0de0df3384396f49ed547944543a47a8895a413bf093d3ec3ab8c36609d6ab5631a8953bb686ec6e7b0f95795c40ed00a319c9f3734525c1e2bed692163381bd14ade44413c2e4a94d75f3ed5f08ba30ef97f1eee10ca6a1c43053c7312d12a6eff3278404afe561ab1a8b76b34e5300eeadeab54dbe05dee39e1594f802f918d3dedbc32969e33b5a01d592051a2e5ec43e24b6733abe8c4f31862cbe380fcc396bf3645c5c8e82593fddc4fe9c58e587ae66db02c693076617beba3aeb4063bee204202d9346122377da66096961bf1b81e76a54b7056350108465d01b7740a1e52f530ffb3e9f4356548a2bf7a66e60b38b436c9a41745c285796e70c0c1aed1c25b7753d4e2d792d077e6b435b1e3812e9f2bc377eaeaff448128891d512577f7c3e9751d205be54f7c6898b261f17f38b8c20c2e87edd407ce11db10bb080a55a773b651aefc68259e5aad53d39a61a983b468c68dea79c1f0f984553f51ae34aa94964990075915a90c069775d1e3ada1a66b2bcd8a1c7a27072b0d6826a3efd7e07167e05278717bdaf22e77d7825cac87d0487010778436e13d219eb0ad29ea5f39df8a6c9faa80e6e0034fe36b69d1775acb03f450501653f8b690c7a0bb141a94efdde5e2ca9f115c27b2980f5c3bd37b224978b9c9c0650bc2035ab4dc2da3792da4d674c65fdf35f6fa0a90d45c0e1ab60a9fb81580d552c995ac9d7c0ac78eebf9e8ad46320018d40705ee029701471a261ec85761c9fe2c34cc126a300b1c86b0e0fc5d2ef96f20cff209fa34635f8f67e1dfb6f97eea1a5e96e7ab0d8dbbd5c887fcb693409c684f27d55cfbdc8644f7f861063c57b9d0d3ed3271ac7d5ea460bd8a3f9e27b9dcccf1f569e9f610f78e1d17d62916de3e5cbeb8f6fd764231fd4a59f3ac61b90cda70048152c6abc9091c1ec7d93cab0763e31e387799d77da8ad005a53b2f9879592a0bb53904f9f2959e0e112249c42e420a734420d5e0579068814e47e3edfe47391321475a1e496818419faae6cc07553df5334c54614e64fce93884a469511bd1294d609d095ca255bfb348ed5eafa8eda9aca12317f90eb42d4ee82a2a2e49f002d7da84ad5df1c5da7e8e6ac3325f93faa9da170403335c8c7e8a81bc5f4ba9da67ecee4da7e52f0ae5caa238a9c47646e93851249315bc9b09e3a31a9244260b5fac3fc8375bc57e5e7597bc1b69e4821044f80574aeb39d64d87216a0e632fd3ba7696a5d912544de7b5cac6ffa8edf85264caaa898509a18217eee445db7605cfae9814943aa8fb2437ce1b6ea2f6b943183a17697a1a2af1a7024f9ff3d35881fb6971034146ab53d0554df678472e6db664e6a4cd643a47190912eba20872496da7f4d312e2c9ac48557094ae9312471938188df3897c9df254b77eb0cbff8bd489edbc27a4e39690c18c058c0c5ab210ee211ebd2fcb34824b1d549c5f2aad851b4d5c1ec06cd0077541df226b1e130ea2bbdbbc63fe82e7c129804fa4df40f9657cef7a79d81c709fb7eabe049228b373987019423ae6fba9574b75b5e8de48722304541881536c5aadad8337e39249edf90bb8e4169bf07c5b23509a0471ed6507e19ada0453a3ac7e3559a65ae5ab6cc1fb81dbd4f38752b61fc8af38ac1c5fb46d2ed707c75304c9b60b1fd0c79f96df7d5fcd49215e9587485f3ba0eae1549381f6a5a60acb9722e4559efed70ac54cb6b1692f270a62249d9a9ed296d8088d23da3ed8a990868b924c1c6a48c89c15bdae2592fb3fa3e18913f842eceb2134edd14514e382ddb6b40302c8ceb56b65316960cedacdecfb89d785ca8f4a635e5c159ef5a5166f95b4c6c08c17531f5fcbf3f0d616f1dd75dfe36a44ae625e0c25008fdc3bc7166f9707234fc9233de2c592f062cb734f80e5b52f318ed56bd9d5f347a502d24b73ba40b175c56c8d993d4966bcc1ac38ce47145e7c8050b8275923773ccef650487f00ce08fb92b5aacf1020535f39c5d4a8f2dcd0bea8a5d455fbce8a2fdfcb1bd82e53d8992d56efa2b7ad8a7dc1caad28940583108af805c7ffa18544739d2b1183b01a71ca9d0fe3af02759c48f96b610facb5d76ecf74fe13b377eaf191ca3c1ecc12fa1c0199483e3345ef2d74c8c3e3515e618701ef1d3e707c793b9ea6831198498deb48f11d6114bb63631b8b1dc881cca6949f23f9cdbcddb3a6d99224ebdc9fa8ab20e75f8de8fd9580026149614af2625a7644b4b17c082960c6377c414a25064e6f21cc8af8b096d352963185d85c0284f0f204fffce6720703daf338df0b7bf19f574d7954e8568870c644030e0ab3611c362a0520c82a2f1cfcc4e7fc20b1816f4d65357cc56347d030095e9506caa3baf985d913743d7f6f07f29ccf6f819b5fb39e92f73cb1ad733214011eb90627ddbaf51e0e328eb28c9523247f69fd48966a4a7294ff3dd4b3ce6324d231099203e95dce83ae825c2a4af5674a628b3f29198023bc5107daf3f01a3a5fc2cebff94706906fc64d10902407a4ffff5d12594e4ecd072284177422ed3b047b6e3d550f712f29b731c0230a0434056d9bf63ecfe75c3523722f28bb0fda8d13fd5f814e83dfc0ef8a72719c26866a8155f8cd4159059fbe1fdd95dc61b06caa9a1fe3228891753f036d2d604a27214b669d3b0dea8cfffeb8d32f180e03b28853d81843f10b00b642773d2064a64db52777ccb5f0a4f6c8fb2144fe65b9aeb6d0a52714258fd981204667952c0d3b9b939d7ace3d6fd3edc6a8b3ef57dd8ab6f3a565e4644ec6c2dbc0c1ca7a6a5c8ae1f6f2d024f722b9c595fc9e1e5b08a78ab39eacbee867034259cfb908a5b589368703c2d69f33a4196df25988f6d117f5ff828e543267f2a3786109e1750050581408d00131b57dac715328fa6a6c2c350028a2ee6c4c6bdbbb76fe2221bcf568968d179ed7bd23f2952746264c2892d25a613bad2ad725461bec71aa0c6d52381624ff8c9a007b2737074b7bf6fdea37a8083d10b1ae583e14393183394d934b51104ca73ee5a4dab7a3b62a8932e3f7525701792d3b07df103c3a6b4edf0a76123cf1fdb5f481765b6e69865990ec0ca0a61d3856e701b70de195a33fd0560068ffdcbe30caf901f8c34622e77030f1360b9da68cdd716607b4b63367c67b8b11f3f4a91c0407793064e34e34f8c54068870cde3a6e41b734a848be5710723acf8391f5a6fc781bb1e2a973b04b9b2c5fa33efe2800ee32d88e7a122fb531e77c5fbc8568eedcd3306c43c5b9c317fb1827b661103fcdb707d5e450624ff40481829f338cb71884313367c3deea1452dabdcd5fb8ffd6852782ecd3d0992f3173ae7aebb858f248a07e6184c7a3d6a8c515e7ae8b13e75613fbcb4f19d228fc6999dbe8f04a47b4caa4e3cf513186c71a525e79726b0d90e5a584c11bc3945899182c547fc96024aa89ad5e6c340e14ec8af40e119e2d2a6800b07f8c93101b7e3d776e8abf7a950a3bc1dada823ed5c12ed424c3faa1ab7180ad04c65bbf71b9d22562695075fd94a39161ecd936e6727405648505bd4bc5b1c4c384414d474f18fe22ca0a9a4a53d815e49dc968fae94f788c924e85cbd560f9c1c0029347f4b81095d7cf3b74ab0d96d5ed33cf3852b67f793e1eedb97fb5d114bcd25a2fa395777c7798a4dff9a6795c64f08229914142d0168aacba2b355a9573dc691acd9347b5340305c3e9551a9a2f617b7f20bcd9fee2a4ca60affc29700d4c73989d8608a1507454c58d3b5bed7626a636d43c1e28f864f35de3e238c1f874b927c7ad87688905361619f0d1f2468beb4911a334ce0865b96748ce65b6809884962302cf8489a85e8f3ed032d4b8a319564216589e5ead1b96b570dafb07b7194e854e725caa9a029ed5959329dea04a26533afb265d32c5a5f8866334b40870967e02bac87657bead87d9dc03b9bf6203f8c2634a77d3247c3ae42340596956a05e7e6a5d2f7c939a908c3afb7599983e3c97e52a3ea0e7714e8497a265de1ad74edfe26057979daaae5f7bad776ed16c9cc76b684795a55af0d280e0f315243d727b226f3b22174ff23e89dcb3bec123f2576cbc9afa4258d4e95185f88d2f880a5fcd72d50b678bdeb13ee0c6457342dd6ac21a5f96213b9c6a50656a5b0ea3cf1a93cca7b5516152b9f5ea8164063d8f1f97919d6e4559c50057d646dec5f3f468b1cec3c25baf6d498495ed283a46087afdba10509741b179d39d8bd0022b22b3ebce426ac00a4f378aa13b99028e342a815b03e2a9cc6ddf6757c152317f62cbb9a60e0a29b92de50fd6daa89ce09e6374f6e0461c2c6d81ca7ccdf6d60235ff5692c696b09643f3cdf7d04e200dfea65707076847d5d763fc38d75861e8595de0fb9db056e7262f17f11d97b26bcc05efd5d274ba5796dbd444ad217084d613578b047ba9dc93cad0e3ef1754578b09b8e90ed84ae5ecf04a539c0b9b2a069f6a7e175c54521f92b183e9d581addc22cee747434d9e5938ea25fb0ee33a3c35d064e8430fb3d40649210a88c78f64857ab963feb44766ec941959b96e381636498d4853604e8f3144720cdb248ee3e5da7acafd9aa6f77bcc3c2e1a405a9a3f442bf2e0c1ba8783ccf7544cd52623284853b6332c1b932fbb061b19cc45bd48b6fa0e95c6d26933db4b1994340f0e885978e31efe67ce9069bd0a5b01bcbdfde63bdf6f7d5259d43c8aad994259c0ef4434eb39207603ec953476e230d8f677a4a8bfc1c1ac5c2519438969832e7c28975037f273dc402faefc60728cbc295d9ef5758865799650e6d74ce9c70e528f8706c02655f6f23918bdd135e05da3db50a88379cc0f759990a5fdab0414d4f3aefc722b9897c02c45b097373e3de4517e38ed3b4e8327c430717b656ed3f8fb7644f92f71f4b7ae6ff078424d6f47b70953aea951d31c5d501ff15844ced83c155d459cb77b37cec38a1df79267ab2dee76b9bdce72c3a75b92f455a0468831c19f0639493e3e33848e9c8cea198907da5785f0a20727f942f687c00631d2a02c82a4c7309dde9b24245d7c297a75eab0c44f7045533195d2bac3c66ff5ace3b87ff2e7046f1f8c1357e12f931c19bb7d4286cf18ce92a8139e05951ec6b810c267cfa38d5fe1a7901c3a4e7984d13a34201e3ca3aae13e7f959998bcd281ac03bceef9a3eaafeb9766730241511a6b8b30538f39e05958dddcd35052b1e3763a997ec6ffaa0e31dc60c90b35f01b544bb64f9f6e21de9478b824ee92d0bd3478b68c0239d17d9c7f2d60d9c03c31c204900a0c9978318ea63d634753920a4ab8d24a952052d0b512dbbdc89ff17d89fcedd9fe93b70b81ac241f7777942c62129983be41aaff02a67dc38d44a027946cb4a09acca2bee7ece4cc8f6c5dcb5632fb8569a25cdbc4ebca945fe71ea33fe54fa9d573f747447bef79e509498d87c3c055707c4979b3b7c85660270c98d9e35ec645a15b6754567d3d7f6154ea4f5c94c06a2233d0349f8a2362de9462c91b7d91c4398b74814a7baea304aee5483089ba28d2c0744d41acd183426305f8f82a2c326868608758ab047359c09a412890d73c460dd6858a1db9e3faf768dfe34950e4ded3b724bf68f7d1d38d51f1baebdc0786410397743c41d5653ea7267dcd0c7753277e7657ced831040487884e9bde45e4ca5e079049ed50a0002abd686f076664771927e24fe1a4e924900c9ce1f0e14e1f73d8d03ea407b28dd66c858d13f636713d8f5a513094b176ecd675605b55912b8e2636c287af7b04b1721e81dcfb6355be07358a2676d9855acd578296bd1d79cf57098c88b2cfbe4d51d6a2429953fe291f2df47e1bf304299fa45b688a90f96b86654aefda5527712a61df20af1dbab947b9a1b5739a08e55811b33d2354a9a649015935fb4f803cea64f2a17ed8c93010622bdc0f115b16a86d781e250e82d24956c1f223e6711a0f492660a00d9daf14895bacc0472f016972641d5991c7600f15d995e23867ad4dd85caf05874c791e0bc1bf3c846d4e7e7e57e72f5a3021e301a844a3877b819ad947b773b90fe5b4961e93d095e8f8d27192b83b1ed3c44434180b9e7c3bf42444ea7729f9f322afe5030370e7e4aece6479b9e2d35b22ac2e74fb8b310e44e6bffde04cf5034cb131f791930304c665a9e8e78e562dea33ed76a92a26f555f7c0b9a47de5e6ab0e4b1c98b3a02b677a4b3d8e710f0d4bab77e6c5f69fefda98f8dd528115665c9a2f1065e07efca8fc8b63a0f75b6a85291f6a72c6bb3dcd86b583d21ab4345cbf99fce091b51a29b27e648e4891350b298d55bc1702a215f254238e088c6a403c4e23f841c9bb89c4c0da1d11b6cc86b05c555319a9f7a07aa8effb720cf9bdd4600d00a6df16181368556d8b8ee73493f247da592249c7930e4d57187931d7d2d5f07bb3693ba3d6aa5280957d4143161a67ec33fd4d0593cdc9dc32f3e5ee6b5c847beadac95634e9cbc5f6e1f8d4ea2e705fabd6ff62d0334b134389c7ddc55e7f1b6d5c8c14f3329ad628c830b645da09c64da9aee05123c08e544e926e586d6a0fdb1db640fe55cffb533493ad7a6db0a7fabcb600fd2e8ccefe8f003e46b5c0a8479c25612fa67cb02c3c7f9bdff8dd0f431456417086277e59ccf4dec9cd8914b0dd226a891fae0cf744c4c82836dcfa9faea5d527c763fecdc41e12f000093d728f9bc89435071f932f4ed6cfd6be4c04ffab2abf04d591f4d50a047464f11a1d45a66ab5fff03ba9aa420b549c8af93c9d644fa046bede5859e9b1094730343bcb0b6a746afadb7da2385564524593c5f7553e411fff5e7a2275197892130b932befd6ce93efa05cd54d89725daf953f8149c14638ca2c722d27ceed520e54c8f99c49bcf38a4a530612b3ffb212f03c663d6557a1ded59167c2445bf10348ad8f6d13247b6087d6f7340a82dfa9025eb6ee35f96f9b49e3d75633b71ee4edf427e4a58a06547b9f65f7e6100428acb2931ce58d895a653c354ae527b9c1d1553f964cd15d419a1ae347f1e3dd584253079213eba2aa831acab377ecee5b9b375f1fc0b0e5f5a654aa328da6c9011d343c290a9426902bca6e0383d82d383af5560d325ea3004629a54ec995463834cffc3b5126907eb671610dd293d44e1ace89861fb223d2d53246ddef4926d1a7fe6937da3a6230420c7308c219906f6931c0d69544c7cca1b9d351a98725fc262c66cb23bbd3d429ebdd589a0c68928979374581ad6ca93624bc8380255422ef892f64177b06e343125c959d0368208fbf6984f9b5cd87445f8fdef57ae98de85de34e443917f52dd740469e3831cf13f0d1d3b183c04749a049e0cdb02746e7701ab27a78583ab107dd67a4ec020f878527ed05e8bcf4f247017c6c37d9b168c1da5794e0969b651b3517296a1c6a256073b6fe238f767def689b628466d2505dacf87911c7e3825fbe2ac69d780d405269e6f5fc5c2f846e83639401764208b8f08a3708cf897bddf5e0e86b7ab7dd98f1d734eeaf8e71c2645dc3d57690a1384e21d8791a8760d5724d33fb646ec962b0c5b0d2c896cc4f8d2717ea71d5c2f979e287d309227d1cee7fccbf777803a09072585e45c094a1c232aa472bb6ba68f9f20188857cceb248e38136c0c9ec38ae3dca05e937e543d429316fea6f62baaed9abc514a04ed2061eefa490f993961ac8810b1feffa8043645b43d961b2f18ce4b402b647dd05ffccef11cd0737834317aa39f851c4dadb5490814a77d6ca9b679ff3006730e6d3b90a0104e88b501affa0a2aa455e8b9a7b3f9fcec36a9483fbfee62585f13937e4311a41c7046870190729e142918a8795117a31a24ce39ee8b56ff29b57e855dfdff349cdac526755213fec612d5c1be375cc8ca438c584f5247004594dca4158cb47bdf9c33c3f4cb7b7e1e4724a9b9f652f803fe7c9bd88be7af7e439e1dc16511254cf7d384c1cde027a59608fcd2c5601d4870c062baa999d9ae784c9e1d0ee9416652a530e6ebb84823900ab753fc7aae39e7f5ee9f9cd21b9c4b90ae27586b638341aab81a34483a851de3467ba092ad4af025f7fa063fee54da81c62f55af248d64327f79a62ee66707404f37948de3f37a3bce99e35486eaf8b60f2e89d35253653f1f00fd1b5955648ad6190b8f2532b1a5aabab2a427ef4fa86f87d06b3eb59d6f048ff1a7d8784adabc7d4ca54b0aefb5f04785d2a4e9f249b8f005b6720327f8e099ce722824d6c79ac8d6a464a36072a235942146d38fcb0e8b0c5dfca31c2ec4370b166fa27d8b04ef0fc8adfccd6bb0931bdfb49727b9211b4ebe4964cc3db23dd1279ff702509edf8d0d9189c7ee77381b426d4aa3fe5d93304d1c65d917f24f0abb4865bba761be3dceadc709303495168e05e355f2befab32e7d0832797815586c4d6e037741f937b678cb743500e45e99b6b677c4b1c0f9f8086ea73ebbaeb6fea3fe3b470bebcb46a17fda7650ad3e3c3e4959d1fb6e779452b092caf27eb167617d4fde319190a0fd7c26cf93ec02885acb215eb52a023d2d965b40ab3765e169931eef4fc7eecb475ea4d65cd594d295985ea73329f8bb94f4bf9feed5599a962b9342118a076bf9815bebeade6af8486f8b3681e1b09c97121d281bf86b7918982a319b0202b6591ead634eca1d2b18b3c6ef8cd2beee7623985724da0ce6653414b57a23f72a52770d8b1420146a88237a9add4108d6e392b1f512d9607560f0fa8dfc4c68e01ea5b8cabb7ac20c3c6337cb460c55ab4ce16707d6d91c8093a12cc9432b7761869101614c588c381111ab74862a215c4fc18f22d34fbaa7289088f952e2f1d9fdf08ab8efaaffe6ba061851ed6f69d34b0fcde634d4e58d85016bb46f57e77ecda38e55e6e86b6fbba2888578c2cb292d742bbb26c6e48bd88923089e37b739375acb96a97a3bba1ce696354d9d64e4fac59cb2f742a2a19144363406de0ead3c449174fc34820f2200ecd5576f9835b00898c44ece4d6bd01c9c31dbf4b3eed37229dcb381e53703d94d6a04c95b7a877ab64fc829218460552ca140a6f2cb2dee74cabe547b97c791689c2fa31fe0cef22dd83b202d8e2c9ab72468fadae2ed4e8460600095feb5928ee461db592de50ca57261ac77df00e04fad6283f217ea9493a02f1eb44f83b727e6e3c5e904e70a0d11147fe550e9214a699bf03c4253aa6ca32f84d411a5ad5ecd5a60817a5142493a6b7f3425cf33fd946038b0e5524993b4872c5ea1778f59904d34d00fd2f0134ba57d677c26dd9e332cf5256fcf18d813882aa798a541d719337559db63a59b78161403fe088a5a5fa11644c180540da8e962671ccce406c9bdb67ffe9f5ccbf2f2c69473813a59e892505928ef057419b5b19a426a5adf3c94aba5bd0b49decdbeb7da36346d024b15b27b696c7455680a04e30e1b4ce1b193ad787d4831a84d8883c857f57dfd4ad5d73eb24a0d60071bf7286613ae62da3bd7020104d54f91a7dd697bcfc16dcb1b589ec50cb48a6b4cd8ac82d099fbfbebe9354341baf575e727a7e93aed5acf01290b14fca2a4f940061a93e0fb5c7250bb1a14871e1f9d2db6735312ac40e25d4b9d34cf11af390b8c68c14bfa3f6d300256a1738986aec5fd157beb6aa06e533df3620371770960e5858638fdb305b3b7b6cc9d4f2b26bea695eee0eaf614b557d48a8668fdb4ab473ea80ea66215fb8b965ab5b51a4d729c78a5917967ea6775359aa6e7ba609e60b793d03403c396bc203cb87dbf8b0e280f278369313202e45ca690a2c50a63f5a6df360ec76c2e9677738d5a3106be13621df3a721fcb3a837c51d1d0a84abd7008110b6aa6064176d7e5655b90aee1a64f41fe76dc9c14e27e35553e98e590b7b0dce6ec329594fd7fafde5b17039a811389a66208d7e249ea779fdb6f267f7d4352d4b3634dd415cff7424e18fea7e83f149f5742acd8d4d174e4fa2a7fa2f59d42f36ea4bece242b2f313abe580cc7bff9a6e7a09c93be6fe86195bf007de548de70cb5ab27917e71081cbc97c63707146a91da799c9d4039ecc5deaae228e2aa8db515f821d2f62371f7f7721e466b9b1fec05525ad836a033de4623cfb3635164c8e78c57a4bd8fded657c1cafd27a5aeadcd98647c0088bdfe77c5856ddc87f451b6bbd1813b26833d6edc5f5d1d41f414741f8f9c80c7116ad9f95ffd086193d214b3d22c67e4fb0e0f4786481a0785b506bca5632980a8b0f614d04b2beee48298a0e8d3ba441c49d791696ac5750596d04695ee2ffff8bea10f625d2408a13680cd9d4168184de67018115e75213eacedc66277559a9da1e179bddfdb7eb60950fd18c72bdfe186e5804d401170c56ef79f4b491b6c327de2808b0743c3cb5fae96db8f5896cdc80775585bdd873514312b8b69217d3c3dffe282cc2286a354a7483fc19e5e43f0adf2ff723111ce992ddda47d71acf42f2eaefb6f4f11f8a2d93e419674f13dd2dc768716dfa8899c05224e94551e3ce72d56f3ba79dfd3682d2b470ae0a5855df38c4f2142380885c943de4e485d94992ab9feab1cc354c11296c17449293c9329dc7ff1826b8e404867f23986025b266f8681dd881a6e02c1712f75eefc2b3803dcf6a55c4520c4831e21a09240a2e625713b34ea88bb66ea368296fa7e74af1c50cafdf76d4db5c6258dd799ce997c4eec8e4c6cca66443fe69552f0ff65390f92c71d4891b02c4f821756203efc1e1b30f43f80a2c3ef843c97c882b6ab35ec1b4588d2f1e6c296f4894f235364b1ee66c14ae0b7f36eb4c10bf060dfbe2abd4a40574b90b5eda7d2e8f0aa6dc45b02c6fde886152fe9a71c6461721f806177d7bcb335bcf52bffaba157e0ec28fb105d5752a2a323d4f912306e9fd19a76a46d4ed4f02b1cbdcfc7a84b0a0eedc4eaad9e236f6d972bdf5321a9c5cf9b9509d7f275c607f5796200c929805533b3dc4cef71f7aabf70aa7bf3d8b4dcea9efde253ae6f14b0c031b5c530e2095ce2658f61eaffc99a37de89e4335f32dfdf58a25516d30b841ae9d519506b617565dfb3427e047d1205a7964bfd8658483637e92af5db8df770f901cd369d7672a8acf5d1aea6ddecff5d4abf3ec071f74e09963088e7788201852fa6cb88577483ee46e67b5b24417d2eea759bc93ff6687cab1facbd205e90536e4c3cb0487a8d67361c476db59bc674ac15a2b1d298bb829ac5b04465b5eb7cc37d671abb8601174ec975ed2dc045f5428105bb490eb476d0e818dfd30d6f7a225628bbccf259f44b18cff4ce1215899bb696b5ccb15573ca94f8cc3d8a8b5a51d533f3eeebef265186197bacc976beff345ec7cd4800db0d6a187f3e8272661160f767711dda970642c5513f2fc574269eb550ef2651323291040aff0dd94d6312964ee14c2a8fe46743eba44b9a47217157d17237823de482acb5bb3e8dcd0719857ad2f2da566a04d33e69994730f9e76c348ef8c309dfd6c5833c75eba18cc91d374212428f18d213de7fc1bba527f73ea1fa6d625c6f06cd8b05d512fa2337a1bc6c452019d25ac33670fe193818227cce1d4f936b8f0a0ea6b6c6c494f1ef97554433f3ef229cebea7be5ed1b66f2e0e8f3a6b942c671be6b6e38757c694fc4a05ecdff90c2fbfbdfa404d7aa35662c50a1512427a0e697e2e72e962d072f373e513637baadc8145bee9506fe7dd055879c9ed1c00f1b350caf2eb12900243c04b332592a17ad668d0617d9aeff4724b1b972caaf51b36b789cffb580399a79e33a7aefd9d8f8f3732a6fca1228262e5fdf60f35cf8ee944a8121f2ae73bfa34f017f0d51645b2b78427c92ad4cc8d640b0662481bf4d5188dd2918b0939e13c10338a2d3bfcbb3d11a9f0a1629cf7d03a761283205d19ef601c2565c6226c9569f71283ec077d736514e6b43bffb8da71a4ed678c37143a0526f9a7ff724d4c005798559bb28c60b4e4e389c2378448ab49ab792c8444dadc4378f3e4b83179549b1c130f2a5a3b2dc05a6c060f62bac1ae7ace51b35b3227bfbcb5473592bb28d467ed39872a7475973590ddc3001a36332b27a315b99885c3f514f48828095be2d4effba7ac186f609089cc427a1d88b1307ebc9d8554e7cbe674f582c02483bb6df9df5847ba19313a96b731ce825417e882038fbb4de630d052249be919e5ca5a911be133a9047684860ec4e2ff8d241bf7bf0404e126cb3165f4cbb35f3538656bf45ed42ef7fde08b94ea201b857115752d4891ecb8e127b5ef721810f8664dd2dac06be2781c2f294603ed4683b3473bfeae28a950a6a3346446581b9aed6d3a86e75bca3fe6dd248847aeab19bce5ec770d6fddfb43453e9200cc93cce4613986b96c39e7728e2c08c0ec4fc7dfa45f59ab1f3eaaacc847781c14a87b27eebe792a4ab98235678d1f7eaddc582b551ce60483261fc340b11455dc6182f5638bf7df03c8c2bee120edb7b4f5bf66df9422ca6573aeda057f991302b1333aaad99e284cfd0c8c6d689a3e270ace47cb7dbd38e555610be6d8043ec2b5a10fa3ddfe9a17553cfb6abe9d5f9d7625fa4d95d4d3e19059d7eb673d5b9cb9ad8cb61761d1a3dfd96bf0c8dc51981ca70c2b335e5fec6945fb69bcea36e645f6f30d516263ae233c83f713064b1b48c408e94abb339439935d3775affbdda2ef8864ab220667f23ae0590a68697a068a4e099037fb9eb453b5fab5209459e9ed5e0324e609b440f29967679ed54b90bc3362e891edcc06f83e5142554dac5e6d0f79ccfb43170eb2217f26c256985cfff5bbf84c0ecb4a6135940579fb01da33da082cd70195dfc35444f9557c6344627e9f8314a03206c3974327ec3b25f03889174b25d1c3534af6a04a66deac037d45d30a3406e4a557344e7f43c1bf40eb1316b8214adb8958e6d0fbe74fbcb76a61367a713d241b9ffb3279e3ff6b4885c7aa6da17e131b70ea46da66a65fb84e8e8901b32a8cda19acc98db48e8d73712726fe59decfcb770c48bfee301b2337098a3d7a80bf5593a9a80cc72f267b9df189c655c321bad99b55302a04e635eaeadfa7a7c5d05f380dba14583fae1583ce98add4b6d1efc84b36459589feea445a38610116f7f80284de1f36a29b8056cce80c504452977140cb90d0672b71939ffebcc10704fa503dda7dae11aaa5d96eacbe0aabfb6096b05d93c3bf14ac3e33d5427685537459df74472333f1cea0a3767f7f549449c8aff63f2823c24130f4b39832e707bc785288218823cf2484f82d9e71e9f48ec6d52493126f9aaca99156f336e267c5258d56e255ebab42edc28b0ce5acc815d7dc1b7e702b7f4928bdf85c749a017aa4af62755a81d07ad521a98d46cfd39974267085996e716f6f2c6b8aec732504e4516a5851d376b281bcdcd04a420f5132ca35714e90217d78151354e4d2cbbc77cbf3ab0b40508879014e57e5512743376ad4a331f27ac73668b59f7d7ca8428b374ecc19a6b89b8054e23c66b9e1d196f09a3f3b91bbb699a925eba4abb6eb48e6c0ce5bd39163f70ab61590b7ca2e2daa3391a55714d85206f652f5336e4d11c8ccb91ddb03812dc7b9f134b0878d74b99f1cd185801f64a1f562a27a5bebad10b7e569a150e57c2833f4bea9ddb0a609d3d1d21439e1058254b9633fa90458a2a0ef1f95e9d292ba2085661d1d4d368e7a3f4fce3690f348013769cc214947d62c1f7d3f542b08b2277df53ee8b2f44969e377e655a185a220bb9db3e7a2b769513dcb63f96918e3b6a0f17d70416392ab10654c47c04b3070606b506a1f7f4faa99a5716070fd106e2dfc232e9cc3ce8ec0a1a47bc8de8ad1910867fac74390267026741b2b88cb38bcad19f6430215dea10f4b67e0d98ab3df50310764870be01903dda8e136a362953d0eee56536a260fab47ad6eb151740f606aa54049c113cfd2e4a2bc75b04dbb3562311180543aed2b9cc63babe5c9d29c668b0982f68c548525d3befc17f4d85515b29549d6744a352f00fea00fc28eeecd012e6981f114d71105f82803dd26b445660aafcd7f85b2d621bcb03b53b35d92bbd17a44ec41ae3739f082084d38562d358529440e90a4de27cc0b0cb22134b6d7820fd04b34189cea65e29b0ae48cd761e48cfe53332e5247170e60063bcc216da559b4383dd3ddce6ae75ee99c67b0606b21948ab075533b42ed91c67f0300046678449570abeff83e8e7f8fbc5d62abe9242d17ad47af797fde8c739a26fd41020b42351000662552a94d9ba50e26ad34dc870ed08678f0bb1e415df3efcad2c516f25376aa25770552d3f16bb02e30045c49923e92188b0de9b2ac96739cd8c5cac33fceed59ee818a550ed314702058562cedb62514461c3c7da5c24df47044d3a6bab9cce7f8e90db120b5328473be02d8571c939ac953b16bf2a0d2101dff2738b3ad28320727e59b4ffff051e4cbb6e77fc336b878f7a8cce5f6634e95fc14c4158610ae52aae7b0d9a34b9b3a7016672708d77f4669aca56543d084d5a62ed9375c6553cfd7a1f5f0b6426666d52bb8403e1aefa142a79761f84fbe8bab9cb07d8335af5e0815c6614b9f8cdf311017e7b02bab406b6e7a17ab32e71aadade59736936e4341c00de838371e47491ed68636d0f0ef7fcc81958b0b70b16c27df866ed1eada21ba93a984a42f3ea7dd1dd13d44ac31a211351a74d3f291a49cadb74e7ff64d87cd60a69a3b249b657708378798067183beee482e5eb7efaecc6c6f9d6d4604807067fbe1eba4a952a2bbe50a4864dd4d95bbcb67ee7d76e4733c5f77def5bdf04666666bf87963397af49aec490a3d7c30de32ff4e5e28d48cd7e53e25d58765919124ab283a8332ba4434b387f731176d40d0201d4c638d7dbdbffa154b1cd68ae71158e28b26aa2c29651e6d7d21faab2014cca7004a4f97e7b7b35f747abb7e83b7cd10242ba1c8e50207a3adfb67ea05962ce7b3d864d12af8b65dd95858a005b00272e8c264dddeb18eb9fcd903294a203461374f502070ddee32c99e17a5e9d345d5c52e4602f7de421d37e18f539d8ab54911ca5469e3a8fe1b19ac5520410d4194d44a471e5fc4d105d18bba888c21bc2f54661f16de7d4b345b52a008cc3f6c1a8f80b475f3adb09d7f331433683b3cd26da101e3dec90138ae84f351f42e806bbb1f6a6a1672f67049fdf0760d3dd6931ffc3595895377985d851268b2dbd02a84a17e4b95fd87597d21cb3d67ff8acfd8134a9bc2aff8860c3fe9ccb67babfc2b16dc52441e06fae802ae5938e6a2a4bb112ee97df8967c32e1771e50776627bd2fe23f78679eaec9d863f66930a62f5a34f18e4bf82f1cd6dcb2bdca82819a61b1594b8b7e8cf5d841a9bb007cb76de6721253b931b653b6a2de585be49d91bf3da016986d4282669f9502e16dd4f99cfd4ea5e17a3664e0af2ca00b1ad5358195c89549e8c3d73fa95f430adb9209d6e5021e72da043eaaf0774b68ee591868178a0364a87b1119e2f7ed5d1d4a6fa0531c097f8717103385662b37b7bb9db54fae4d8f3e1481b77b6f6fb9876f5746014688401587a315dc83d50dd88330d5c6828c73a956c4df04eabe79be84469cc28d4e3b4ed37d77c4fffc0a80be2eaaa498e679dd4932bedd6a1263078acf1da01363aea6895c9b86eeebd1170d12472e76abdd4e998c92b8c24b01e80807da1bce74623e4fc879b79449fd17a69abc9d14770a307060992ee2d1a98bb985b7f624fd79f803776d182e0333d474990ea400f94587d04f794770b629d0054c148a3d6379005c3b40e831b65ec280cf35640ef269c43a2985933d1d1e41875beb2135c834b2603be2a1a0041a6a5cac033be159a0305c9e5096c9c758fcb925853e8a2152d1c7c220d24e4e360cfe2536c233149bfdaf776f26419b7ac1dfa4d1c3d9160c5234c630ab13ced37d1d50a2fb83dc0b6c7408f6c0af35c20e66e0cbc1b45865be18c8599a5bfabc89fd893614fcf94c6c42e87fb61aa5cd9fe3d34d7c6f394adcae5b2c78447eeccff77daea93b1092de18779fc05624bd41ddcb35dfecb08589a7eafac4bb2cc787947e88ed9a4b64e0fad6091cd0c83d197e21c85646dd8e53548768684d285bc9678c866de0620e72bd914976ed8721de67a3b4bfe7360f4d99b53638bb4642a23f9d37f5b031bfc3836b18487bb1c2d3083bf420745c5fffe8f3a36c1dad8290c1c9a811c37710c55f727eb5a4a91f2f0da0444e40902ec2f8cde99d703b5906a14360c0df4ea06ae6f0aed50ebdfd6871753b073a5d55bc6c1d22e180ed33fafdc24c19d3b3ead5f35535994c7038d75783c0bb2a9c17fb01b45f820521a65b81f6773b6a7c6f6791f15cfb13e950a69a6dcd638dc6dcdff21279bc4fe7522e76291f347a7b012128f31bfb98998f9b4f916025eeb6f65cb696438d8ed1f6ca552588d53c88e24e8477174e3d566c158174530934213396ec6b78d165c7e53637b316df54dace1b376a756d9d0fe0e8109f055e0494eb0c36678297ee769fdc44487a64c0a6781fb78e827fbf1a971785eac6c1f02b13a2924042ec9cdb13863cb50df9f4d2b8302b441cc0b37a225ca5745ec5a9d759029dce92c5c21f61a986af96a94cf58b85209d8de907357aece79022f31858e7d57240f6051bd505de0a0dc38639ba67bf4cc572abb4f33589b691485e83c06f40b1bd5d142d554ab1b66a1d7832de424f480c63491709158a378b43d9b7acfb038e48f9b3816f5ed2821c8ff9db4fbd7909a7673626281ba75a48da216c05cc688c850190107cc18dd1db541fca01f00f33d4aaa8c6eef17bf7afee39257332fa156c7096be1ec9c1785f6c8912bd80c4d4b26e38a3bb87d8c1c6e85ca0a29a956a458e343da4985234685f1c3b35093dfd3ce9ddf45b1fff83e4dcd5cbbf92ed8dab8a23ced23804fb11c5c9c4153194c58cdd3ce78098b0d5d6226bbbc172d5959266c68077535c6538bb28156e0d567ce5e49925ac642d1d09b435f027793fb08df5d25e40c3328d07b02b451f77f31b67fa6aba59659d87e5ae99afdddda863fd077eb473a279b96a5d067d31077fc3d76033d265bb5466ca358a8eb62e63b8ff94de2e5b1a67f7445c8fa1b899bf58a615145a4c0d37ca8649782a6d47ddb7faa37c49ecfc1a8fe2dc47ef011bd98a581ccf40157539c2b597d3d0f0f42114ffbc3c40381766c7115a61849f70ef0e8d6891a1dca14f245fe633349919b1d17972a7f64e83ceec05da6ed68d2b85c14cd9fa2e1780993cdf1bf35b01e7c112c5da043685602118df760ae9e4ef67c0d3df9531f339c7c2baa4bab09dab3e5f2dabeb08e92cd8bf62b80018d955f809d8da2136ce3bd3e171d7a64e70898c4d6d64447f6625a83758b59fcf6d1719be1c9c4d9ebb4c41bd57f071e9b771fbbbeb43ca0bd622918eca0f4d24b164a08fd7d816ac1d91487c56fe173362236607c241c292160b68c6fcc01dac2191d45f7902a131f45dc1d525d98e5ef61d579fcc07844a69558db577db0c818b78c071bf5ef27a158072912bd841f56200a9fb1325dc7d3ae6a11e60aed21d927edabe7c81f0a9950f926ad9fa741333656361a34cc08097528ebca58439480f86507ba6ad447a7e3edb1637427818d9b351979e7c60c38285b6cecafc1d4946f5fa93aa273a407fbb65cbb990c0fca3ae610e1518cb633c8daa8386ed0ba511e5c09ea1bc4cf4b8d002251657621b6db23373248b9c8759944ef82979213066156e2f2336b1a5b62488e14f0bf6973783df65a23093aa5e245352860386581c38c3da6a188bbce56f688990a4ebef40c54a908410ca3e682208c158e27c456932a73edb99587e3ff4c38fbc92b45e0587f2637006205755c11dd8423c94f75c363f3708ee31ff3cf9246b7cd25e35aaaf9a5a320dd909f8c6478b9e837e9d3ed9095cd407b163828a300285d623462480805d5ebffbb0ec984e45d754f35253f61b7e90106ef0bd5813e9105b96660fee6834284ff5d39a009388be98b88d45fad2b9e2f96866614256389dfb950711983f5189cfd89d9c3283f69ce922462cd975ff5790be4e8aaa27cc33f9832711f0ed07172c39e166946e96542ace6f759dad13f8889c6028f45ec94f1716f7eb614a7713db9555334076a061b29022e17b7cd1c82d177ab68510ac049ae3c2396364fcad138ffa721bbb0ea1271bd431ca0bd3a93d07c8cdd36a464c1f538fbab470125c4d4be287f6304c440e809fb8fd072af06ee1fc9f4fcaba47c80aa6bc5debf9c4e778a181a3b8eb5ff8223568eb5931b3dd80fbac7640e2e55975905b28b5b2179a32edef8f730a6dc57b937d1eaf4686441c19bca2dffa2a6aca5a9f14b481da72a8870bd3b59acf8e0281e08a771e6732e2d61acbde5d9d0df612bfc01878c4c2cb926252d5ab467e8d024f5f51a2188855006335975339b56b887e87df5cfc3e5f08cd6e4d2aeb11be4a0b844d8fb079688236d3271208259231c1fca5ce8a43a77da4a6549a0f2383a0bf198a2409309088f57396ac5ede76937ae3bbf15397b05bdd44c143f97601cfd5fa2e700a257c0ee6415eb7c994f485619ba82313ca63b09a6567f67f56965348fe039807f8e2caf9f29f336a407eace61c52ab406141dfaafb577587eaf86aba34df6d98be6ac0a7b54124210c437bece52a62d633eb4eaef4125ae1b6a4eba98eabf7d306070d5a1cc5b706fba28950763f0f3f7a36f0cabbbea64c6abce292cb3c6702b62b894f76e828ebbe5a8fbea55e5c5b0c4f747ed9a4f7e2f8f1aaa01857ed41b9d4a70c992051f18c923f0425da020f9e69b4dcf2fa2703580057af75eeb3015ca52228e088ff2d26f22ee2e70ee525d193108dd585b39f12c950441a44dfb16923af31d54e7705e57cde66d32e3f8c712cb9c46c83a89a6900dc487b068c95e070b1de3affc4f5dad91a7d71248f2fa95c68a7973c07619b56bb1b828dea9ccbb812d1ae67f9412543e2d64ba14d01c869b0fd077fd950f754a8df90acb878108dd0eb3cbbcbca93fd318ddab89c832128e0a9b40eae8ef44937cf14ad2f60bc2755cce64a3edbc735078347e1adeb104ebda83cb71b4cb2797e4a2791c94d2629e9e3497895583adf716819d182711e6df7d870592e1bc74ab684b2d474c6ab856ab470910e48a026e293099d5f50ce793b11f8e681e16bd34eb9a3cd83ecde5324a2cd81a17d7566eb7edb3c43d3931b820b052a9f74428e46ca5fb702776497b0fe79200516d16a294a44c8448f549373be55c2e8b8e66ba85aac91c7d07f0ef3a9f946770cd01c60bdc124c1fec0bad1430c22fee5123b06e7c325b75e337a845b5d62d299c622c7314f6787d184c56951790f982759d8d47c4bcf1142d37c0f2e86baf75ec2364a4532da8a492fbcbe0b593b8f32f3bd133507a89c447041381e352ff93258efa965d83a1dcbb04aa27f9fbcfed4fb96020cf99b0540ad71b9799d84e4de94c582072dc277870463d7c8a9062d637c0ce3a377271f062957b00458954cf6ce228c6ee6326c5662e2cd4489de382d88d819dd107a4f19961aabf275b1b25d257c9030ffe299eaa932e50d7cf25957ddec3980bd3bd6c57ed4e9e192a0a9f9158e11d8bec75baecb48a5e77c15adb52d01254fca6698af7aaa0ef6df1a402dfcf088a2b1b0b0c297fc718f60442e0e9e818fd0a91eb760270e1167c29f5826089dbd2da31300a4430a91fdc2a59b7fc2afc3ecd723bb2905b4ce0e03bff9f335dc09e45b7dcc4a2fa4cda2728007140facfb1fb9ccf7934d4bda8130a139bac59170bfbe2f27f55ef634d56a6f88586c234e66db3a5cfc857d149120ca9b10c8a57bdc03de4bc4c03a8e8b1f92d8bf555a55413e40618b453ea580b9d5b28d545917017ce2090cb98d6ab0cb68d55712c21b00f217959f034e40516040371e7cad7af732bb178bf1706de172ecba15d90fbdee1f07b31905afee5d2e3cae03d459e975379e721a8ba1eb9057dc15a861a9fa7dab33a4da445f303a524b81729f190064420ff9e79309ba6bda1bc0443df93f88495a39ddeaa0e09ce39ab438987bffb98d4f4eae72d1bb5324bd70cfc5efe9f80f30ea3ab950bbb3d514b0059c1fe4bb26c115639b52d5524567056c3bc72704450775e1b0fe7e1720b85ba48fb97bf3e5e683fb5e92498e14f380fb4c425aff48206c7675da7060fe215a92d53c333228d6cab56e35fe1da3244987a77823536db2ff80c51fee03021f7ecc8eac5fbf45fefaae624b3815c96b97a96d8658086657be72652eb5d4bc3260532b17732fd8e6f3f9cd82af9bdfe3da6b45467f059a2be9e8154a2833acc865b220487a3fcecf81056d1586c2391582760f49af69d54c7b18ec797d92869b880897f2820c9cf1de6709eea2a353009728acc5c915d1eea2a39411c55732c7714d9f5757725b2895131885112205f7e3ce413c7f87c883a6aca9ae7a42478e6cea7b9e9bac929242145ffaf0f4b0631b1def4da707a8a9f3da18b6a084a2cb77e24c34fc1c9156306afce86057062c82112f827cb4c29cc9b44b7bf148d49db9c31fa5f20e521a4548c05b947d30dc7607ecd30649edf53d66f72b79b01580e7c288e0bf68b64cc69ebc6931f33c0e0b9023e3d5da2f1c60ae3bbce676d29f24fbd10e527ea0e633109a02ecb57088646820a73e2718b510040e472383dc4ed4801dc2cb9d1314ce4fabc8e39f7215b303f6beac7a3c8282dad46ca9e7ca182e31db7e657a3c1aca7e3348292f8044839ab0520e0b53c3d4c061218abc0079e706a05611c4f9a6dc46f30f58f98defea71f8baf94e9ca9de666875d61ba1f79f69cf04bdea7d76387f786d029e0239c55a8558651a561f4801ae3166fc6ea34fc5ca91add0ce5f15b893040913aec631d95449e51bac8c83987cea09c335c7179bc60a9628570ac54df52cc73cb7d8446073befabebaaf416d4b46cdb54eb7bfbb3a05125c6355e7d34f5063b861dc97934c37d11756c85934090210dc71a1c910a5314a211ef58a0d2fdfacbaf8191563e2176b6649ac9550dcdc712aee550fb9f80e2e8d01bb51e2ce9205eaf77b34ffae54454c71ff54074b72edcad12e778b46f4f7461a6236d845db5e293d939906c4cbb23c517136e2bc510f9002dcf7d0dffbf1a8b951ee50c6008b3e4f7003e8362438d9a237bcab711adc29b7ef01f1b1648306fe8185cb104e7e8c0af62750a068014d9edfd2ff9d5d02db1bb98122d8e3a2e5646d6fe50cdb2752707eab136c8256ba462967c06631519ecfd469ed41e711e8bbf627128082692c13c160dcc71dca41b5ccd733f5b94ec67bc77cd663c5b5f445a4bf762a1d189c3607173c43977e820e1f972d70fc7eea5b050bf77c86658c5021a7cf0be5c09442a87062efa456d2db6ef3f15e04e1916a6011b56aa10fefe2252c8c20ff7efb941cf48b1a384c24ba8ce4c1185d807f5ade58edac5c2c37f060dbffc389ef9bff14956e6d44af04b1057b43e1fee906cf87b597ebaab9ea595f1b6fdccd58eb101c62b28a5f7d5b972d455b77a76a237bb73fd3616112451e31a570d8e8ba381a2ae4ad112c695b26b0b711a04f3642facc190811007eb8c0042f42af4a42f95d3906ef12fdb3ebb0e93d16d9e7d1bfabc48977d6e0aada9e118a92af4a502f04f3ceb93d851239149d33acb8821f8e0820f53de3b2dd2433fa6cac0d7c70c8e34ecfe616c472eb30d67c7af58fe5e0d563556eeaa3e824a4a07dd3880bbe81e4fd6500425aba0c8297421f5b000a8e4226aa91a85d7043fbd15c67b074b558f6ed8f938bbbacf042f3ad5a27f939f1ca9b68cfe933c2faf0ad02d76d2d36206714f1b5f10b474c23034f496d3ad8ad1188aa52c13096e99a608449b67170e4441ba0af01642f8e18a4576d1a61369164440ccca6156327cd9bc6c8d84e2df83b020a57cfe143ddbd7495fb47d344988f82f28722cd147515f1b37bcc05e08132a1f67f26e9eeed49f4c9675a1501a1e70f5221d2cb1ad9e9f4a2ffaf9fd847ea96cfcbe8f87d1defeb5447cf753b98d25ef6e7fdb870b1b276946ff76756200ad2d51e261792bbb265d251cb24deb9389241480710ef1847e3c0f31b3ba8e252d21b4fcebe8a4e19583678325916839f2e8af6d2d9a50f962aa39aed21e1ec4daf540b3e146971d56f9b5220ffabd81af771371137f9d0fd70481fda5afb51b13d7cc04ba105aae5c964118f0a176a9d71beaaf28e229e132463e486979254f89f882449c3af7cfa01d7657d613e787ac862fe093674a97516bab43aa144a2f3ac0bcd1de726b0382bc3ace1078fcd073d43a4faac2435d006f634f0c4365b375750e8fa81db6231c2ce2772c83ac3a2933628e7688fd49f77876de01ddce7f106673181308ea289df565ac635219bdfd66d18f0a72be9127a6c40406b9321220ceb8d4c70030a2136abda94dd61ce0b7c543b0dd5b47b173f286a728ff5d575cfc064c11de18c87c8ab4bee67dc0bf0141c35900c70e0e3d48bbcd0f7857575b3f789a4c8bd1ad4eacda56c397e3daee267ce7ab88846224892b1d3b9100b45d45a21a4f0e1aba2c6a3ff033e01ac71b9793fc9357a9dbb2e3a6407ec51b311e1f7060766d3355eb9eb9f3059c0c0dfc6c64df9568cb5f314257c011614a3b404b825dd598e27adce062f4e7ab1c89745fab7ef60fd8aaf0633c09f6c3531e79e99655f12aaca03bd309544e99e6d761b424c5c9079194b3326f18ecc8f3561e148997f3fb974dc30128fed5ba307d4998f67c20a82c36de783b4816222369f62e7ac48aa90a9ed17181f42c70ec40e8dfebf1e90628e360f721c2a67f8ae42f3b63b238b5da1991ec7fb8fc1d498768234fb4818c84e6b21691f1e823921df19375999173ad9412688a25d7eb06c7a5bc174f3b4511b9d58bdc216be2a090a67b70e63939e6fb23a98e5d95adc2fa77426908d23d5f6f9d3949ad5059fdd305952298c1d89cde3da24d945b1971288afdbbb761237dcac379f93373995fba7145a6796ff918484b85b5c2eeb658791e2a294877f65d6a145b6244cfbdaa52df406e77bb93a883307409a7a411b7b66172841ecf9621838b0e2915d205143be2490bc078754f47dbc020940da6295cbbc90a103ebffc41241ddf85dd59715cd65cbb3e1bfb4ec0f56324dfe6dd982d936ed1e8bc485f7ca04b93296a45902e42f62aae118e0d90967d139ee8a559b561b9809d4b5f21db1a0c27b143540bbcf583473212e68d56a1ec6c56466deadf942c275075d4bd81285840d90a0aee0f87f83183caad531d1dc2b41c08a50d8c1a29189a558ae453d39855297e5013cd919d468e0a405d094da7a325bdfba3664bc8f12858c8e753ed30b062fd384ff4eae6d9e6d45487f53e84cf0a49df0551daf569e46ac54b082ffc7c68c332862469ae0ff5130b51d7d3be27ae959ec82dadcf5aaa692cfef4df3b3c3db20d0eeeb5e1edeabfdecbfab11a1fa9c70ba97d9269cbc3fe14a3b55182080b7ecedf807d387fbd49743e4c324c91d1e9be03d7cfdded21de742d0af332af5d737eae1b2a9c6c913acaad3f7f8fa93b86699e4b747b50eb941eb839e30a3cf9e4e84acaa6cbbca8e7e6224e20b5f41705409e474a1721f8a311d9dc54f8efc1b4d51c97fc52650aa40240a760335f21101511a4108fcb209a9b0c219c0fd323234f374eec8a34ee65172b0e2e6105b2927891806949f1f1ea3bb2f6eb30fca9f71986865e8c8e2141da7113cfbeee3247619155ab8a9e78623fdfbcbedbbb8441bd28956a060400604a490ddad645d5cb4bb59eac78db01481fc1075d8d49535b21b7715408fb86e941139ffd305ef83dff315dcf866b11606ba5824daaaccb5383a2016748f0c72573e23d4a1711ca8b365a4667748f1c54f7da460b0c279b79f0ef35af22fbb6ea8434a1a260ae02e567a98db18fde29a44f42b3d8a2252943fcb4338af58124d777ee50e345672839d69209f8cf09e944cbf6c99737a849a6f134f045d5180c4398ee9d7342e46872f49a24ce53108d1e79b45ba55d38e4c46331aa1a49a64c7ab9ea28e7d85e579b82394164284ee7f16c99df63e4ba03be4139ed5b38cdd46422587e2cb7bf0f00731bcff897fe424d2a1ccc5b979da9610897db241e44071dd90aec10b90e4fea87616ef4d13da2e7d9f7016ea1bd3814aa6874e207352e8b05e28d301766866eb9ed525a885c5e87f89e5954c2cd8410808f84c73ba33b25dcf2eef377b2d557be80e97127ea375d9254c578db754a45c3a5f277ef234285958c88f75ee708f7f9ae5276e9fde286e558ef34bcad4d74a47652b3bae42153a305ed82fb4d2e5fb4f07e701ce62bb6a2f3e03c86fe6dfaabb625b7c80932d3de84ed008a5a04b445bb4b70d71af2bca1a74765e4b5d16d797be1deec426672c46d4b222f4fd97430e9069fab7db553048c3cbba1974da7d06c249aec43d5552c71e54561f016ec22dd87bc4ff145a771ba57ac61a007da1b6d161c93f7b5f1c58d27198ecaf268cfaf0030439d073b6571b82873c2259709aa72d6204873748ae68b9e9001976334db19c85558aca96547eec8dbd10524447d911ffb6e694afe45eb72f0823ca52f285bc5c7e1430767254395168bd06df95497db907724f41eb1555b60346f72fcedcf38b886dde9f0083a88cf6babb77519465e3d7f2203fdb0d5dc4624bcb02e4f4f091deab733d13a9be7e6e9d8f3b8e90ef397ecf8d84592c01ae059e197b742f1215969839858184e2db08b0fd80e55fce5ca54350582c7a79d6e6d601703b9226360623526aaf3cc90e837b98a41f9e7254665ce6c000a2e1ae51d88978e8e8eacd3b57c75d98e138ec0cf20018b04e4d803350497a73c79ebc4794c41b778564f054647dcdd16ca91be384eee4cc1a48731f658a832daaa2265a1cf3c52caf14f490ab98bd6e259de52efb3365a1db8b0783c76324fe868a3af674cfe738cf74885df1db55bfdf93a6fe95cfad231a7aa6ccde46afc3eac4378c409a70c4a367f09e38e7b50d1ed76926ead89dc4d1ed2a4923138986cce059630c660168cf74885df1db55bfdf93a6fe95cfad231a7aa6ccde46afc3eac4378c409a70c5bfb5d74b58f4308112081f858513fab19e2e442069ca3df61d3d91c96fb639f45d698a86a4ee7d216430f85cca76cf54753c8713c45bb3b28b92c3a8ef3a4642d6e626de56bf15ebb5bc60e004f274d719a67a5f8d47bae2de9c4e60498282efd7f231207772743da8e469b373411c962a3c44cde81a1db690deea42ec39e6af1647dcb61f7eea378f22b3790403e9cb9e4bea458ecd71d3854bd5df88336fa743f477b3b9f4495240ac9d35859f063bc04a9b46c35b69e1e87c4f1249e4a0333ad233ed2cec56a6efc7cf3004aa0655084843391cd674506313901202a7619af1283397680827d4a661e31f62d401c189b6f3383ff71ee47f1a64403f59fcf22724b7a0c93121687d7cce65f53a9674a4e9f1c27083422432971b485bb95eaf9769e239de2749da7b75d350a145e96ffdb392b055ed16457b66b5a7c6d5ce96e7546099b839c742d2b64e38bfce0c52ebbb2eb3fd2f5e5cf2380e3e50b81dbafd70596af6f1d37b68e02eecabda77dfc160c023dc7bf07123b3d60340009c796adfb32ee98f7e398dd8d3104d292d5acb22c0898dba671eaa8047f71dc3ca9090acfa7e39879846ee192cc2498762395451a4ac98b4b8a16f6d53dc140e47199e1c2b27ecb9dcddf490879150b8abab67eec0893a9692ab97a0f91d6403017e1f9635a19e3f808f6acabc274241d940ce0d5163fde8d5509a8b7bf2f4ae7367657e0e018c184abfe722789c9932c50ca7b7ee368885e3a815ef9c5905011c3b6f91d8c1b731f48507c25cd7cbe6d72b928c1f15c2bc68cc5084386d7324e201d408f5d1e9d6ccf054fb24e6de6fd6488601bea827f165ee7fe132cf8c1e215a5c2092760554940dc249c8c8be8b7e1673c85476b0cd2908d5cb04a50c9cff47981a75a3e3786eb91923afb7fedf378743a68946d7857ba4fdf7f5131057a3cb1268c684a8f88ba8bced2eda63d5894f650f1112028f8c2238f977ce1caabdcb3b1a02e6755e6989bbb2653521da790eed416d7becc54bfc2b295a4d2c483419922c6377dd098cccf30e3b2cd166248f93277ad911fca06ebd448f407b752005323153b5536a1e2cbc206c1d78961c21fee047cc1ce8424dfe7b0274554471c6428175ee603fc184dddc3ce548d6ac3d63752ad6e9818173b88d141f0cbfc8a36c7c757be7089c3d3f1446d3d9ea9e5fbe082585d2b15801a51a3750d5a6008c3cbb7d84d9db08759c6f330f20976fcea24807202a5f40d5cdf93c962ff95f093fbe937892063da3683bf6b7bfcdca2de64b3a681a2086200209381582b04d06bbd9c520d96a8ed3eec7dd81432b4e657f6313f8913dba6e286a0a52c129ff6cd6c7418e5bb53a89eb2329d0cfa6c15877be64328a0675020d2ebf25799218affb72204313f878c3c6598177e78f89f9ca6de12199e95b4a8565e580f3d007300b7ed36b3569e067ce4e34c92b44914e98a26f3666a2cf01b6785cc4b8201e63f579a886e71b212df75178fef7876aa2b3ea059db0baab44cd3fb4239edca12ff1356685d18063cc7793e274d1f109a3adbb9560a9572c2dfc7175f84c872a764fc08ec2dbd617cad784bb742d3533ee14254489f94dea41849aa6e00f6b5ca716a8b18609d5262d3164ac9c90c574f6b02a49337e9c2094facfe7ebdd8aaa6f370186a863f5ef09589b842c688747c480dfd4d3d6bb89661e08de78ed49bb81a2952821dcf30e5f49a9eec1091ba5f74d6f900cde45eb842bdf362044309826f1cda9e75d4ce889fcb834cb8733bda26a38db4b842c1475795ca7ffb5cf59c5d1ec2a6232c3aa8d2c6abc8577f56c4cf6d9e0b5d443136f823a82628f24c6d3ca806fe8939d7688d4dfa70003bef7ff55e66088176b6c6b794fb32fe02725fd7e3c0c71f323f0226badb07a0a04daba5b40e7d5f8d31ac622608c7d6761f250bbc2fbd298ee663cebf28716bd1946682e96abad982fc1a54e2396cb4ca596bf010131c5e272dde27a5d1d30ce1329d681fdd74b5f5025d197c29448e57deaee860e1176d0328b1c2675f164790a8e514235f13101e67fb162e7f6c861be009362446580adfd9fe477c43117eff186de2e334147105eea749e0f3f1f49786c1709c1f7667c4710f871dfb023e3eb12bab8005d6a3da495171aeb99b01bcf34863e388880001b25f0b8bceb2b3702699146f3691f35dd5284a7651aff93fcf1ce42de4484a56eee7de7f6536f9dfb3b2f7e7988330d966be085060f11268b3c67bc1c614f9ba4d9a1bf3bd83e83afb6e641883f0969afcb24e4a2c088c502fe57bb0ef254a7e9360ec43e3129fad11d27edcc611bf87c12dba089f6e381f462ef048d9f5c89a4611ce845d46126445867f434cb746cdc5d7fedc43607fd89b7f623bec85390e7b61f4306c96b6280b7b1089cac716dbfbd5ca55f05d725e50e1c4b20ab7330e47ee155a775f69ae3b0e432c75d74ad005cf764228a69ddf6da6df6f5f8e6033b50492a97ee5b2188ed80e5a2e1d7861c8388ce563a1d914f874fcee3253205e51db51144b617ac2474d98f58f15db70b4863cfc945a864d4be6b0094a2895d5bda42dcaaf57c0b31fc914c3b6c6aa6237aab0100a6d7834693381289f68b8baeca965108aa70624bfeaa046d10f92057d55b3359b5bc1ad01f168b048f63411adb8e8bc61db3a5c08a7ba343b7b5235d5b5d2ea5d98d817ef5e2c397170a5922ad79a20b44cc8daf82c5a263b9c2578df685f03973f6b1fc931e6e9f457d640052142a2e8ca672498c73d73be426d5262576e2ecb81b5d13d6d52ad9976e7eb5266674a84e72f461e0aab4da6c05cf32d35e6cf0171d53ffd7f15ac5173d3c619d69fa08bd4359f5692f146d33d2d707fdef26e195b96c8d18be5bb8c97a57538cb60c83cd7d251313f016bdb0d8cdfe1ed72edc805547c2fdab1704a2dd4689d562693f185e4d704f5c080c407634cc299727344e3c314e8c6073031c3d69fcf89c1304894f165df9f3375c94568a8d285de451d1220617bb5235361bc257b087395a30492053ec264ce74c2dc22ed750c46914a25cc98b47ff28901e97565f83eb11c59e11ebdc4eef614e280a84330a2339e85643f3e92643dd5f997da0652e8ab5716eb46cf88efcddc8784afa1adb7f346f9df8e37edc90f761a9a1e5c4925951c73e2862464bab54611032733bd1d30825cddcbcefd0c97f83c5a3d76122baf10694abd6800ad5de280b484bd4e9b1766061ad72269cb7c5d8c831c1800ea0c617bfb1fd7333e1178ca89796ad091e0d69afd524f400eee2a1d850b6bc03d40e5dab6877986a3bb9d5e5f102b2b61bc9e5f0fb544004acb45b2cd2ba476eebc8a25a9ba1d2eb74ab6a3844941c5710c3c86d004b7b941ac0518829e82499444699ac5f7f3745da3fe5a21681f7f1e90f1d9bcf67cbdb3a7c919b8247fb7764acc332f1216f42e581296c85fbddcda4945c6b2d58cb328b545509c88e300281ceb5b0184a3fa7c511b2b8467803c51467de3b4f12e9f70e9213e087e18d62a7662f26264800b8c810a07a4da659add0ee39a2b29ed4e17cdb85a4a756fb11dce00be3b7aa190b6a91ca243d3e602f3789a9e1e9ac32705920edfef739614e07aca0a86de0d242387347fde08701edaae8a44dd76ad3ff80c70f19586b963c517c9d2b65a9606fa2228769108253bff64c7c37c2b097f93f8a492d681e6464bd2d16f6cb0d07f287611b18b238a433451cf387760c538172729f25991d95a934165c6fc2979d20efc0539272ab608e3e918180c042d095fe42a95236ab07e01dd58f9c665dd65a8388a57e28f440eed72a1e6868507bac0751d00e3d4cb132a87429ef88ed9922f18c08bd3c26a201003dfa943b4f5619e6721342d75d85f64ce24201be141a00b03c094ff80f2540413ad5c0df470fe22009792e474a3e7a16b1a8d8a9bb45b5c991a3460b47f0faf52c8b9ac82b5f7e2a88fce75eec99f02057992816cbdc1b16821e660743dabb2ea727028377235c0a9f337971f5b94010cd74447d2bf78d66d478da9bf51e8de943d7015d738e08a88d200a2910744b3c4c5f69da660ac83e7df5c770c85858411866025e8eac9f272dca768c73c6c6f7209081a3b82f2ae7e62bbdb97436ff76ca25f6a5b43a826ef71eb019d32e3de6b92a3a7b8839cb8209b9e0d398f0a495a421e06bfcf44d18af73fcc800bbfcd55d76d246d9e9176fd328e3986e12c84a1f135031a10ed30a584e638d721c63812030f211912494cda9cea1d560dadab46ec590b98e83979cfda1b86b6d0db7e5fa73b8cc74e6bf4185bd6d39c1ca1887af322f85ac16e99905f7cd07071da81fdf687fe2f7ffd63953db93578573c49d9d9c26c0352f4f5f79669320a1a438df53db1923f23263360c6c46e83aa85082b9192755881f009312892ed10558028aeb90feaae89b90d8d2760a5c508df1c0b124dd85f359afb441922a27162c466a80fd95cedde6bc77de49f583c90a9701b1638fee9c0e990297d82f29cbf43982f6c2d707d2903e749ebb62b48425f8a51e35bed3ed7e6eb41221753f385f7e7f0d693953b484b989864a33e040fd34fd0716434e60bea7d75bcece3ad0faf3cf764d8d3ba2422e7608f8b74c932bd5e7b7759b4ec528176974671cb609ed776d3d644d7cbe563de7c1ab2025665cef45f5ad40cdf772e0154c8626d9452b7b2cfd4240c6b5cb64d0d5a677a49262c8321aa0dcec130fb1518fd65de1ce716df8158c06c5b5091611755184deef6738c00a47ee09dba26d169e878bc23bd8fc79aa00f13e7c72c203a3522a2616df3a801fbbb45375b5b1c2a9a5fab410654ed23c0ff0fbf06e2bd9390744ac4d804d6e8b1459e8b024596146fecb94e71b464d4e68ce0e9a6a96253d9732fc1522f0b644309cbe1f57efddf47f0b0b0a132deb00b6aebe0a5d752a7c8214827494bc910e576d445bbd5d4239dbc1d8d31de1db4fe8bad965117aaff2267416cc20078ddc8e118d82211f212bf2b3e6f3b9781a8e255abf7158835437396fe8c31d04cf0c1cee634d81c23a1b4313cb0cac7e244c1a3e0b0281d96327edc2aa9ca627a3d768bc164fbb783430cff7a41d42cafe2e95fbfb391d542f60f5ae3e707e7ce93f1f2f30b526bf37f8f93ebea34fb0beabeb8857abba7ca2ee757ff474579246596e00540d5d91e5a50f8f52ea89a7c638bdd6798f576523ecfc1e4ec2cb657d445f1a7dc0dfab2825146fd4557b1cbd8161fa28bb4be8820089848d695316edeecb7fd5a551f8abd6c7007736d4b41f8b45260840cc32e6193bc7ce9798ee797771b08f4ee62b71e9265c7703fe4b8b2bd6813e05f2fc15a83eb60e237dcafa0911b5b19a7e25f23e6d65d2ba6bf988f6413643cb336b49b438b2b15659c0b22c2d0c63a25e3c00b18cb85032b670a24f0d705d9bb3451ccc6bbd65a86883dc889e1b6f7c3f86c347522286dc35735caef57e37710618296b36051aed54dac38244caffda2a19e58e20a70f4400b4969c85e01f017f36bd6eeb240fb1c49799cd18ccdf8bd8bc29af08f2d1f95402635813d6303faae72ddd1218fc27115252002282da415f7e821711aec00bd43881cbf8b233763adea3db57f17631eb303ec706b6948c43263db9c59162435505021c13a5f0a3c78cb4acbf611032746fa5c637e487789511b89f09aa36fdb1fef1a4ec171178cc12daf4f49e6ee368fec496c482d04ddf14563076f1a1b8669db58e902ddd9653fcccce44fe046f0c62574224c2a2d2d6729cf0f4c7211c4cc912689fecbd30bd4747b6dadf577b065ac03823d74ae1ac8705c2f68fd8e53218eb96b8d67375564242a6bf825021a4ecbc8347af6f47898c0ecc3c9fbf6d73d6295b1f9057713ce05c968894ce8ba516fc772071b055840242527fa939ae3ba4ff7a7a5190c865cdde199d079e5f25b7aa52b1b56e4e110167dc9069abfc5566ac4a0c2642cce5650d86fea693f62af356ef536915e1573ec01d1a98f48bec3bbb204e88898ba6b5441d30671cb502790e9091471d25d304a290f658b0d8e7e9dd93d3b908cd202f13b3a4f228071d4211f4e1947050dbbcc9e9698be08b0bd12c6f33f9e470c8214b0c597d339e211f4432292a8fcaad76a77a333aebca444ef9f718d27df30422a9ac88cba29add1029c30d3dc1c6dc78135bb6ba0d168ee41f3763110d65e39e8f6271995b59e6422dc65690fb69e2a9ab250e2406e45f0c972605266c3d67dd7a6ad614cb0fba5467d87facf62464436681c260436ffe0d3d591bc99e9e08a3218e0017589552a7f6a374fcd4a54aad85ab9396eff64294fd703389dfae36d4d794f6261c79b6cbfc347699b38f361cc54da156f719d6aee6e14693c79a062680db425f5580d6222d56e57c53e228ca6615305a105429a427461329ee47fe30ac1e0e7db93edb3a624a2d43069224290f0ff8ddcebee1e3652369ff24d1f09c22702048266e0c64e0ebac908247c08290baab277f0a08d9b958cd1dc3c06f35ebd63c453bfff47adb65e7bbdbf94cb97f4595d128c37d0b779b788170d6e7976b0b488644b3df07774c0ffbfb4fac28c63aa31373ef16a2ca856ca2a1e54496d4cc91602ebf64bf5df99fbdfc334a89604d8fc187abb0d1caea131cd5d49bff0aff2fa4174d19f05f9daba1b4c7a3c1c0abc36c54a82044ad48a406a2828e522f24b70247c922a79330cf8f616debbef2ab869aa3b38626aba388fa6db352a3be80f1efdfd2085bdf97c2ef594a5e7770da8add0ce546dfed3a844f94ce693137b6833712c016561f598e6d8b08c474eec2bf2e0967876cbb696c364160f7697a904b243e8160f4afc2f471e4ce0d37a5ba35bcee387a818c370484f8e3a09b6eef842d7b5b110615dd758cf5e29f30bff82e534d4d81726e13f34919386becdcb65cb9fc24c0f5835314e00fe13070d53b684a51586ff413570961780bea6526a6eab2568dce27c15efdf0d8e421d05005d2761cef8d501304f73be92a7f43174bf738a380c9d5d7bc0cac926075f57c6bc70c372d9e1fe86fcf295f406b17bf04bf8d1af25c2456f58520cdaef3be94101df793fddf76dfae477f917928008bc4a797446cd4ad44cde6e906c3f87132a7609201edd3538f89942ea8a32307c377d7937f6623bcba98d328986010e27dfdf71a1c8d94e7cc44117cadb1cf6f66fa2e8cdfb873dd5f1d85831d19841aad898ace395866bed261d403c8cd0ea6eab6d6d77f52042204957e389c38938cf6eee9d1a593dce53d22545dc5d5f6ed9127a43e6568ef5f5521920946510d445a384f5e0e1f961a15295f30078e8c8cf16ec28672b659b7ff80829ccf8a2a84833f76a8da28ee51d3db32944949fc2ddcb9870ba0f2d22d29732dfcf2a6ba1191a3a3cf8d418ac9c4093d175f6c5b12997d0bd6902a5467d3f79e3abe7e60d7824a9c10414fc834ec763576fba475148243e4253f2a94f8001ee370148628db5ffcd45494479e8704e6c76c0cb14163e4a1945d74f227689050942bd539b776c134d070fb08d17dcf9d99ddf49d0292b1aa068fe3458112070e0e7374d28bca2622cb24770d3e8e007f200782210eafb4e711caf49fae8c3a7d9f8bbee312e4d8a085a885566456c46be6b63945569f3ade74c8043052010e63b50bfca22e42873d0fcf4f3d1a36028d3448e105961749f3e2e672288ce295aac942d851c3546f7cf2a2692a72eb8df570f98351fbd478306686cb3f3efce1e6921fdeda3f5d881b64672696d8759c5bdcf94c5d6c36eb471c2f78b72158bf47bf60bffb483eaf343988d31d0856e57d2f3fbd91e382ba134db11f71b3e14f6f70d14f78f7df3ef938073e2cbc7b312b5813ee2d5ba2e15a6cee2c5cc46908eb6bd209dd2e46c47a1d57ec72da80583fc1d27295970ca08aedbcff1440f381b9fdc0ad644d7a0e27a462231f0f1e9676afd7d39dcbb6dc01a376114f6eec5d2324c49f670a5b4d345244c57b95fa73670aad1a98cfeaed9976b64d9794abbf95f99ca795b6c3630d1bfb43b86ab62190c4590b08418c7e139cb392dfa666e66b34cfde03c49b590b91bdb2381562908d6568f72efefb975c477adfedbf8c1bdbc4f6e505421f4c2eb064f54fd4d844e025f8ad131d11ae804d89a2bccf36360792a2b22cb33709d2838a3a4427370c1078897ffab0d0c4a3fc74f2983516e6c9a7c40a3ec37186b9027a1b9a0e5029f819bbed060b8771742c5f946b4163ef1080531ee4366c6fec0be0ae3217f48c812af387e8763f915ed129745f9d12711a95eeba505e1be53e7eeba0503ad62ec18cdf2ca51a1785249a8646354439c854148dc57c06fb55a50f8f52ea89a7c638bdd6798f576523ecfc1e4ec2cb657d445f1a7dc0dfab2790fd7c184c61a23c71b47ca48c3c8ce8ea7b305be61e0c59f737c5e8672ce3a1fecd01932d872c0d4ec06178a1860ae12bfab8490056dcf0a9d7a16cd455531aee4126e4b15f53515db886192f7ace1cce06c36b8b7956751ba3d08c3ecc92bf7740a9d925eccd280e54e7971a36508a7d2856d9ef996a394ad5cfd80bec8c37680b5f4d70dba1d2654b31e42b7d32d759991c41f733a294791b3b37e840323706ba6d0c95ce47dcdbe2a5442d65777ef1b7c0e55280609060e78e2fadacb5e9a114d3e93e4eb61429a28c38af9dbd7685c2aacf0bcf3bd85d02c945dbd0a8a14c826e5d2db337e49c32e0b5a66317b58da198874a0eb950c33aac571e9573c31b76d65dc3f98d14bd6d8952161476fe6d79bd7c630243e1974f54e7586e5da9d1514c08da093cd38b77f03ff5fe265c16500a42295b32c66509dc828a34045e15e4ee47b7871b4dad52c86a33b4ee31116cbf593260b02b116215c68507c69ad37fe507bb5fe75649c60f438dbea75a9e67dfd87b013ba57eaa9eafc8e165c7f98956068f3f7687b3853b7308df8fc97ab5642ca2ccd7202313cd9f7a7093b5a83d8878d016ac6dbc7f528669e9568697960f89ee89e62828f7c6274ed36cfcd59298164685165e72b5d3a92d744f14d41aa308c72d7ad2ad9aa2b4e2f59eef9205625a4e32073588696dda6e8971f2f19998b4bc076bce6ec08ee6d6eb26faebaf02e3dbc94f7969f085ce1708a33c653d1134929931b3db743ee324ab034fb0c083f4b4f98ed0654d6104bb5bcef5be5c6c4f3e53129246b33e82aa3babe87a6ef3dc4c1f487702ad317748569e25fcb3853529a1139e22226cd3cfcecdb72ce84a68d3647cd34f04e9040861333ac9e9f9ac5b00008d41514c79da664d82424f17c5e4996277e2bb13341f2bd735f1e2a188218c2e9a83e8da33656374fb2b78b72b16a5b0f3665a7fa5dcaa9d1c46be457f1aac8939e36b9290878c1a4ee66b772df1a3a4502973ca9512dede096a91289330c377d562ebce014b1b2aaf3405abc7484992964143eac589b951132d8e3a90f8359fc1a6e9ddcc201aa8a260c626e3d43587d50d577ca7387eb2d5b3470e9d092c99b984e4ace7a0ec5e5180e30bed1e9fc2a01617127f35eb0f45bfe01271f47508521be8377d13fda489a0bc8af77b4325bb10b651e00b8f7974cc972d0e5456a370f2c46a56181ada7125802ffd01c98daddf86bd57960f51f7dadccb15b530c48e6a24f4f1c697fbac246eb43233fd2e714c85e84407a084da2823d5a64e61313fd393d34589ef0f3eec381cf025f58965728544dae5df9394d6bebc7e68572e429814c87ee6dd284f712a720bab3f9598c897c45e389c6666998899b963c05892fc2e12179cf1ca4bc0456ed97d8bb58bed6b4b70959e04215d3393596d92b33a7aa515238349dd1387b8e9ec6361dd3176e279ef086a0aa6f3c47f1059250b319edbb2939dc9cb803e3b15a8428e2f1520386291052fd30e5d74ecb4d78c724bae7953d71425be1e3301465531d68ae0625eb52b10d0056dcbeb55f02c275af76a423e70c0b684ebc06276262c57cf21e35c13ff2f5fdc96c18feb32a055c6201edfa76e95c967fbcb73ccfc5a8dae1f59e4debba69e0f600155b947f358c939bc753443a7a8007e8d84df0c6ed38a56014cc73d431aa973f1d298169735eaf9f7d42cbb26f7768fb6aa54ed72a392548bcd7c79a10ce16e9ed70da90492ef13346e2419fa52d3f012288300cc487e655953e6c18adb05252b3ab97f655b30f282fb27ecb9375f5730a0d9937b101605965406f3671cbf2b812210f5681b829ef80ba04e85675cbe2fa0c806b04a17e3e3c42865d85d825c391871dc6517e5aef10a13f4c7dc977f958825fc376f98f51562efa821ef42d35abd47d05a99a12c59a0b5756bc1ce6732132edefa39962b6329286afcf187b8c25cfcd8140691079776922804320dc92077ae06dab77329e5d7d6ed876e745497cce67554ad5e86145d7471eaa9a9b41979a4113d03024368c7415ea941d032cba902735a046bf9f31d51ecce53fafff4db0e00a889cab526a1fd70694f8063d72f885b0a8ae3b3ff5483a63ae8df85b92dfbd38c982b63a7c71e4291d20176501f7c1117df19721c1cbc14de86266f6166771a7d9a6c116617b6e21a15b020ddf709b39162c8596e0880cef3ce4bed625f8710f0cec15eac4558e6a4fc3bff85bb0dd7718195d72a476c4e0b126385fea300c32898efe55341abb39489aeac76f81ea9df513f68d1b2556be7b48a3e90f0adacfae47941c205d45c8fc04ef2095530850f966f9a074fd794a250d3361eab9ab1e3d5d24b8e3545352e97afa0f76a77a578f75fb078026617444052c3a02dde1da1081aee268293d7f8bc6742e5dbeb4cf77fa44bdab52c0217c47ff08df3ead4ae451092de5c3c04b4c2054376426f79a987e2dbe73a646dda136468a78192af2b20cd177f78e3761e10d66567373cef3b7671aa3c7912d65de4c9050e29bed47a256b79cb3754f43d0f8c1a5ea762e400bf809d0eb44d16ddd4714db3a5b0e169d6f2431e3a145d2a3cc4374330e29d40378cb3fb26ede4fcd813dca6c99e3061644a02a28d20b6b8e6eb4aa50490511528a6b34cf7070f0f44e2c51d948aa226aa043c2760288aa883f9dbd53b9d65cf8bc20215146fc016dde6f7863093bfa7ec9e564c36992fbf2b7c97244c84d406e5fdc60b72c56a23af39673f23d4f0c002e24160530515a45f46bb6fbe8728cc79b135a8c6956d5c8458c05fe500643578c70b627c2b7041faf8e5b00266b7e33d2ff6a1f8e26e3179c8401262578778aa029ff817e964e38e7d68701476cd6334bc881f561921831b94041abaa37d079eee890fb7803dde876a19ba3acdbadf41f269ae8ed0d73ca0e37e0eb80bf5d4fef30966c73521a39d5504d80adc7788990d0c9e74e197efcf99b4bb1d071cf56d0f31a9018d9dfbe96d268a8da5f5b00a227cdbb688c21717a80105ad1ebe5dabeafad78d102afcc6231e674e81dbe157f4a48e7c3373e23dec053d6db23c6307444ad18512ee160159c175608c0d424a86ec22dec6b28eeda65f61acf04434e51e95d004b487e4899fb123547abd913a54236b2f884f55298117a180893c051cc50d668414ce2ae60da968b7303aa3b1ebb816fcb0619b7faa5ca9f22a90e5e81a736c0ad500f015b139cbb05a23ffdbc39906c6feb6975244e0c327ad9b9845e19b1e097dfb7b569bc9793b670874e24be4a87ac9bd4647557c80e592d527f7e27840509603059731990a0242f19f37f51f2908c87b82bf6ddedbdb3562f740dcdcbadc0e8a651841429d5c7342e67b8063c6cea0edf8717544008e3ba2768c6e74c2543ab438a5f8cf30fd06a86cd13dc8d7142740b4322462ad1792d561743e033461fdfe16e29756318baf5f4d0ffb76b04f8cca00ae8ded57c9f92d30c8cef868ec6ef999bc57ea7e244e9324cd230b2deb5ff0c49bfb33cf2893961f37c2368365b6e89b586bdf3ec73becfe0c4c4f6d0bc702d61d731f3016c9d290e207f21023e6afe743e981dfcf3218418db2e62808dc3f52e32de6d5edb901717e9316090f160657eed229dd5674e9ce619350dd97fee75c5fccb1deff496d06247a591b292fb32bb0f5ec9c1f4a53f76bd5a97653bca5f195a06bfe9660fd2a5a19be10df94c096fcbc1bcf63908b118c22d990df834297999f8883dd53a9104fa6ea5dbc3363349d8465ed32663e63f2907d34f59f48dcb4e7522f4a488088931fe9dc223d5b8c430b137a792ccdb3bd3f110d3c85d0e1266475ebff619b691fdf91ac27519af156c4864d5bb780da5febc38a9b7bc101e86c3eede15c54c7c4dfc0691ae0e646fd31aca15bfd72f53783081e829cd150b19e0726898c3fc94154dfb2e0d1f96ff112821fe748bff1c3ed5b55f58aefc4047296c5b86f3c4aa3dcf8619c5d444491414f72e014767e57fd9ad62f57653f4d837e56137fb527f9ccfca6d63caabf621383f97fc7300ccb8aadd0d38816f374736d17ef10bdd9203e9edbe248633e0bcb6cd60fc2cfe37c5cd82dc37585376a87d41a54001d221205e9f1538066105b46c08cd329e85d4529426063961daa862354b7f4eb1f9ecf86005b6aafbe0aed40dd9a0eef685ed86bb808afb25f15cfb7e91a8f7ff35117a087e3cf4a1ed21474d58294f36ba339ecc1fce4e0b955181f4d0ba74e31927265f5a40fe5f331d3c68a012a87c4ad3cbe459c474f96bbc55371e235d97c691118af96a10ef1271e0eab2e77a8e70b329be2a798517825b6952cd4467cbe2b0b9b117ca6e1e4b2d871bc592c579d2a547df60446f2d7fe76c45f9d7288743218b0cc5077844164087f7c2c124c592036f116f991ea62f47c8bc1222512a8caceb2c82273cede87622c66b7beff1de9e1d200968ab1f73fb0f61c51528b4811277557f3f0f4a9b69b9d938e6b7adcfe66cc465c61e12762f1f48bcd37d7547c7f2038eaf1a70bb5084e79bbdc12f6e83a27f4c8b4438e5db9f0e9afb6bc5ea5ab652c6ed0ed4d89b958e163b38ec1e10c4977cfce4b836f20519639bb4b84919ced0a37a6adcf2c650faca22c2047469c6be49ceea41b889e59f0b3ec8e477c2f7944cbf8803379902e38e8cd4827f4f37bbad821be5d456fbaaf7bc86b8a1d4b9fe4ca3cca33150e5e6490592849306fceb7dcc549e8b613b27d3172691c063016fb6c22284085f61e59cb44bd9f705a6c8ad610f960db7215b36e0dc5f9f9b24f6bdaabc811f444e4c226325ac67332699027884b4de429b1d92883018b17ec95c903cc1204498f24eb3e54bffed060963e907666e8edae23f0c78cdd9794b69d4936425b6296ee9945d56cdc42a2dcdd7f632db7ad6f8231227e16e5e97daa0d01b256c9a7d68f8076fc9c6e46be05465179a327ee997a3cecb655debbaf5b4e3a1e4097542c82c80021d85ae789eda1a021f369afc0818280c9ce3bd3a1ef3e3ebfe138dc118711f0bae444a4a6b875c65bcdce98e758abe844a7e43d9ff569b7c77c1216adc94662afcd25934a82249be35cea34a8ca400f899973d6beaef91ebf443c48825b44ad013816ff61d521f1efb79f73fbfb60d8f249670f3576e501a7d9d9efb839e8dff2f3f5b4cd1b0811d512517c682f219bc6f44bc01d924993cca7bacf74486598b71c2aa3a6b82357c51ecb36b2a569d0c6873a1bd84d6fde93cfda412e16c8a67ad00d42fe11afc4a429954d379a98db37288a7b7d1c3e8d947af473c1d438bba8c33af933524d82116261b5d1cda1f34d8ce5f072384850072d8ec7585ee97bc2d72434eaea8ef1fb40262809a3abbe9d156d6665945ff7f5fe2b6602d31923664e260ef7b8e8cf2063ab6d2ecf8a752f58b3668985f333ae02c677b460963db74f68ceb5d43af6567fbdd79b5ccaf8b7592bca0fff629f9bb6f2c78c4ec8810f989e04b29d76ebd1ff81efd34db5beccdc8f6dfce151bea174bb9bcb14bd3ace20c96b893cdf34a419d52052227b7c1578f806e58df31b038f3d3e93c0be6a7f739e2fa53a2b509cdd3c48949c0ff8f932aac3521059ca3b4156c78b1ec45f1976972d1f70dee14375a1b7a507e44e9e5031e048cf7c58692650ea14887158c3bedaaba506be63cbd8190cea2c066b513c4e9cd077df2b1452bd645abcc3e252ec28ef44cf4e2a984d94bd5464fb3d0d07c2481ce2692f4e5728d65ccab1d105ecf64f52ac6b9a923ef106088a249b195b18022ffb7f5120c89b2e874ebaae9425ee73bd15e5d6e172cd4daaaf086b6f5db793b511dab8b925b61165983980b7679d897d39f9e44a2277e61e00ac8e05dab83828668d3732014abe9f1e11f62c218990fb9be4f598425c0c1cd49db630c6a0a9f909c1138f6008a045affe5df1a3308f2fc1b321fb4fe3916265e69fab8f5a86e8c84502a7978327a57b65423e84cc50da33c0cdb5020e23411d7ec73c5828ef7f395531381fc908e8869b21564d2cc9c02382ae6714a2d2f46a2ac3884e33b8c394639bc8ef32d436df7a1520ecffbcc4ce2f4fab77eb1c3cb97ca007480fe44b8d12f4048903351e35d4d6a3eab0889aac620dcd33cfde0b36faaac896c1e7c7714ba8ab2087bc827a601a6c8a92dd0420c9c56744d2ab88bff4d42373bf5c7521282ee975bf8797b6e47dcc6b9685e213e185021c1789adca8c27b0db98e291065f74f491fbb408c99f7af7f99208a6e3fd2ccca8f6bccb04b5600b371a983b3502c066b0c0d75a911f79f84aeac30923f7a7a5283ca94755beac5c1b5bc806006b07dd740c59c9fc0eb9ce4d361e47699a39a7305474b5a3a2ecf9aef0554ed6469e04ff50446853db341412e68c1bef49fe3bebc325876a3e8574261a438584430ab6810aa9f239ff81f5b5fc0488fe404d65a38efa2a16b1db293bd54a62f2d9104b0244f2b4140b23da73902916b5c79091a34ab6831477d303bfb27814e71ce84894ef54bf4784f86177eed062c294e54081c0b8c25d483cc4951318b238e1f90fa665432eb89ad1cf6b9d5288abdf80b33fa382a98adb3f433bb64c948dfb04b844f79b6f6e18c640214d45e7abaaa8b19b6556b1b05c119125ecf94a0721ad4bcd33d851472136d8ad4f178c5935e1879a18f544cf7a0057848a397460f5fa1a24ae063f49ae0e97ceaa216430dfc2954ec52d4036cda93839c371461c65ccf18827098fa759d7256c80b2690adcdcabb277c04c009dc8eb4060a172ffd1557719048fced10473f948c2ecae28e06050edb5d2705c9c14b34dd8ed1524ff65e590cc4a53f3a3d3993cf33953e15e36228b0dcc11990f7b19a5ff257ba5b7a6ce14397a296b9303bf5d37d6fc78fa4c7851e0d462b5b0e741aa1edfbab398bb993265f132237d62da031a43ccd857f7eda6043262790c1cd3d6cfd063c58be4cf85428cb75d6df798b5146f9786b4f17e30cfc4100cc0d2c00483904faa427868af63e5b2c03b7eb46fe9b50575721d1087f8f0a63baf4443453636ba638badcf6e2127bcfaec61ad70cfa9b98647badfdda81b9516adc091c5337f22379bdf944f9bf6b639f2b20b0781c465879f6aff2965f8928b700b4a08e2cd9ac780dfa4e5eee2c9a08a34db6077fb84f2cb95c5fff3b82d808a265397af71c94e188e4dbaa8d31fd811c3c3ae2f1bde8c9506ff41e8c3525d98fef763a308139bb402c2c802bc9d63c903f34288264b33bf7b7b14153dae562cf0a7627470dce06b95a13b99ed321b89a9b9665e871f500e9ef9a07dd9186e82437663f6c7d26928fb53c78397eed495133c971df42b3f5f29c9ce03207d09e6f1cfd33d63b136a00da86ea1b4bf3d46ca0f1e6f6eb4a71c03075a51fcfb2998bed990700f0194f8bc9b2f030365848c09ae8a9bc33a00028935ff26724caa8a7cdea7b2a72bfd4097983492ed13b2ca161f9685c446c6de720bed246898d811a997f75783bed55c60e65a356139d616ed0da2bee276ccdbfeea255f6786c5ddce2ba0e91f4560ea11c6317f5e3da7d8aa30e09022e1533045028ebaa975643f0da659964e38844310697c5b7782c7d836251607b34e6299b46182578ecd63a1611dbfe9592da41fdb9689aed2903977c61f22a480bb054f4c9e3c8202df284b43148ef332ae164e19e447a3859d35c96dd56de0833f22f622d5e73f9a0d1c009e9be9bf128adc6660fbb4680b449a4ed9fcda027f5ebf35cd42df4065ffc79a29869c8980e2f50432e76f44ff2681bd62ec524db1828551da2f9f2761262a05ddc4b1c692caaaab1e50e386776a08ce44e3a4d2def73513bb4fa8d04332ac63115f6a988dbda1b91bb91d3204ebf9b51424fa3b89cf36284e1084ba0983441f2d097275c6bb77738a93bf819430a440fd17968bb57b969cd28932c9ae03ff978d66e0f51215071990de1968d52e80be0d57c2d49b3ad0ca9cd9448859d04fff85a806c7a1368edba0adb4f7c029c8b4e1c7f4ce3e2053608f8546bb358fd82826dfa24c210eb72c021e67ec6a4735ae42b3b94907867f45e9a36e3ee78a8e7298014176dd3f2f2168a6e8974334e212132be5db3ff1ea6a3da228a9e07cf643ae3596801ec146257ea91a052675e611d7ac1da51357a2227274502864b24c4fe71862378b71749a93b24739265351cc06dcfb4cda9208a9d6faf81561940f96bae3ccba6d2b0a9899cc56242805f379967dec365a81e1e518a648738e490024ca732dabec53544123755d2f6da0dcb19600ec126f532b27322a01a5eedb41a825dd36e95f2d0ccfab556cae4c281f53ea0ad04e71826cdfe95e94cf6c63f356025b3b0394494814dc7e52c37ac2f319606cdb46ac4abfab55e14ecac60c5428b70d3d252dc6bbfde7871192caa80963b8f1f934d4332c903a74426c8c71cfaaaa3045fd79c8c8d1fc5ffd48d5dc6a0fe27dd8daab2cf22053479acfaf39b002b03821551530bdbce9e731b861fc58079289c4e0086b06856c1077b2220ffadd66dbad6fb56bf5533b9a5a75edca9a37d7b1a2740155fc9db4761ee39422f77a8c936e7c89a3c506c64d73cfc4a8a3cddcd4414def5fbf545245337f71662243837f6a41a316e9c47fb26b3c061595b00e84b30a400d7c8f5f2f7963688b08781eb26e476e74bffd32e69b33f8c2bb9e692820a073f92570085af78916f33b30ac4a25887c53992f81198498d47f20d2cae52b4360da4b352c1a25205809d56055bc1e5b29d17c5423726ee837eed7643dd309dfb3a72d45fee532465137e4f409424fd15862ada70540d53a931b05690f773938ada9b98e2bde7120945bde76af8e7a9ce6754b932449e4046b3a781c7c1df7a873611850921f3a2ccc30a10fe0bed5391ecbb1d3a06665c5dfa641c25b5a49dce852dedc9317df8407ebadb85f237cf9da6a4d63cf6db2c1dec56123169bc731d4cdd4cdea4dca3a8518e3c2ec4a50583e5433b10214c58c5f77ab9a041b1d300a2d9761c537281a7e3f197bcf95142c4a7908767565e7cc5ee25865156e507e25570d2bcf472b566d6c51aa89a6132b9950cd5c0c5e5779e22a5921a9ded48510d9c8035bf9cf7d23b51f907c30be495ffe50ccc73d0d441bd47341db237d0bf18945358efdc1af031e7ea0e07d914525c484b31d8e8766c2f5f899c29aac1830a4232a32d2834d863848c5f65e81bfa10bea8041af51304a960c30b810ce935cd560521434647aad49caace1cee09448d5ec7dbdc2df4aa752a8320155f15476355af437fff1b2b3ed93ab11afde75a0285d44e60306ef59a47b194eb02f174aa9798ac0ff7838f99f07df978a3e84de88d1840e46872b0b07c04e0b05aca1e0517ae41e1d44d204e93007e4bc2f501601b9afe42ec05caf640af236e85512d60957178b2529f03529f9d0051a8535b3d6d1688c278cd04057c672af6bec3ce4ba267626e45be4095fbc5559d0aaf469d2f9e5165c8c39ba7cf5c3c9fef0414c8041e0c6ba4dd47ced819fdca68e168d9b4450505d4b561bc1086ba2c41b5652108d86b968e24028f2000de5c85c582775d15a88f2915818c4216df0ae269bdbad6414d169d0a1b9b024397395c6c30cb254891c975694c362ae83717427301771a1f893df5175f93bba0cb37e7c1d7412bc18ae8561c3f3ad0c352440e31895fce72d8c82753aafe22636e53c7335b9b6469141c4bf3280e6bc8088d9715d5b13f0d5cc3d4b9ebcf67e226d58e01a7290be1751fba4e72dcc654e8c9c1bf4084fea702ea67a41b04cb3c316a0a8d0164171909ddbd3e99626299825b8d72f644c705ed0b34986ce5ec18328ff29aece504b5c178f734f3ce9bc601b104bab136d81aabb9e9cad8fe39c9010c3088fab2f5c8bc92288a75e0e3e290287df039f4a709ee87201133c62e31c1628ca02ce3e9447a92f39cd9ea81efb1dcaea96e9c82ba580a0efcf0687f2f46212bd4931f1bc13ffa7572e9ce0d0841b90390f521d59e6d5214550c2087aa5ed2cd42ee1d36628ed7624e85a3a150ba360143a50f0f49ca8513a9f5328fc3a9dab7c6dbca02297e513ff0c8965425fa4c2be333d628d07fa3049920816165f26bd52aae75b37d228dda7e633a0b96c598e944ed9ccf436045becf3b78a26dde0bce46788df89d5046f2fb01dfd0a4117ea6d9fa89c7e87d0c2d0ca45c1c8dfdfe83841f74f78d5a4dfa0f27d7ec176309b0f35cce550d5c437031281a9c698d02aae16ad0cfd0f0c7619faa57b645c77a4d29e0accd5421d96dc8ce8fdece70d3288c57ed415e241ff252c531a501d30d311323f63aee630a9bc4af2efaf92398bcd5efc831b3ea2a9018e74ba73a5c91bf70c99dcc6535d488384b6e5631ce0f23078edcb76a7ea146dc4a733dab86a26faa972e62c581e11287b19fee6ab7dd0bc67bf9c9f136dc41aa88a90680648b2aa1f95b1dbf238f2d77556a409baf1676b925d522477e4e7fd676824bda93fb59b6137dfe664e5e0b2185562e1c504b5206af23653e05e1387725e20213ff7c9792ab60aaa9298eab7a148394fd1b3153f86ca570545e32a352b93289a5e5353cb32902c8ba0e8135d2dc26a1031272a8b1f6889157965cd4d35d4b2053dff3ca194c1b54184b13fd7e4358ddd92a3633274e0b4ce8b1c8a2d0a13377b302afe093c027338d776e9ce905fc5fc566f2cf398c41711963500d9f40e3d9eec5ac5f7873ac0a6a8a347acfcf5694bdee58d9c373407b0b2f2586880c821abb4b226addb5ddded76231a3100aa257dffb779583884bd496fcd157cb3d4cc5fa14ef1f079b168d0602d4a1483140657fae67d27d478fc096d1a1bc958216ad4e956cb8b35a8e778e72471369d0809cfff3976af06ce4ac678d026e22a06a6274a29d57ccd2771170b5f2fc2057bb48ac45f0318543125bc3eb846596bebf0f8d672046140c0ad811234abed0212d23f104188f254fca558baf65e161c11875160d2d21da9d88bc48144241d0119365a2c8a1a455883ef3f7a7ef564c4640ad3e69c4e8d0e65f189649ab489799820091db670845df7d5a413e0e7fb860b9b238d280dd1095d7cf62d5badf0f9d4c2940eab83a2bc2f8b0d81000d7cf12d28dccc883481539652c9b912ecffbf183c43a89d0fc07b157472ad1827d7b2be7ef88605ed66cc9e999d53f73dadde91863279925cd50555cb1a282f493e63aec3874801b282281bb65684444f8fa04d8f6f921daba89adfe49eb4d1500b428a768bfb6cba83f8dc146db1766bc69c4b66d1c98564b0505c8a8a4bcede469bbc88526f2b5776937c7f5eb9e1f60e5f5b9d1d5b0fdf391c2a1a82633eca0e81257b88538e1650e3512ce758979771348e8aea155bd327a0933c23e74ee546fad510d02c13df0cdd339b7a21af1a394d25a841df9626ead4da6e68f8ac5c5b20b2d01d171d6369e8a8291ef8b030bbe9d27e2df45b5e3dfe1ad595a433e8556b10ad4678f4bbbe1b2a891e0b2a84a057cb55559045f753a308e9454c501c9bdb63eed4c81dfeff2bba50b038ceb79512308832b45248162a04517fd9f5076d8e14aba165c44579fac8f72f30fe53599d02d163e45b7dcf17be14bcb342222f5af8aa4645014673bfd972da0f597ef8a4dce3f4c20eb431dca837d55447ffb0d5dcd3e7a198d3077b1a0c71d010c3abb7b012106162f133810ec7a871f96eb09c90c01323b32ef6d9ff1e489145f2ef879f70dc85c938e2818ede93c15a376677ff997482eedc6a5264f15f90c16f62d432ed7e9f38153c5fbf8dcc2af5aba6a08a072a3fbcef6eb712f63ce5dbba679b47bd21c95ff951a51a836fb7c910f4bd5692ecd3de7a2128e028f77f4ec73c6e5b8212d47bc9b53c4a014787ef672ff936f22081414c0d5fc17ab047bfbd0958882577b30a51aa0ef1d1a00512782f0972cb3363f10bf91243eb8ae12e47e72828f53aebd85ae531da3a8ebed54bb6b84d95d8682f47632dbc64a7c6dc7ca90dbba89591ce7dc9f3757d7e3e0dc2f72cfad57e3bb14e2affe2f7a7d7a011c08a6d3026c403dc9830a788d0bff4aeb155d3cba8206471744ef1f65155cf60d279e12bdd461ca03c228be88ccd7f0611da395ad644ed6a3f9309d14c283f2b1ed4f401537b781723afa671a0adece188f2d1d791f1147d3e0b7d8b15f294a2d88d25032ee32dc9400c63804e1a58e4c22ab67d85537429c5c8f4ef26393c060152a8f79ab1f03463d936e6f235b475c83d9e92b9f29ee9d5d42c4559580bcca92c0e488413ef42b56162bdd809632c82f00b8827f3191b36dc2a0503cd5c24cc0287dd22d40dc4dba53a028985e3cf8355dc9e2b57d7565d46c60900fe495800f3348a913cc9a94f9e11d51671ca24c0131bbecdd2f721eae0945e51c59617f77b2bd32262fc5838185757d09f249afdb0d3d9a98a4db808c5035b5f34d4c3910300c6e9ec687173066b52875e607ae94b463d380d31c4bd643242544bae1e87afd7c2eb1329d683587b7857d8ff1b2b870c0d4628b1887cc3525b8452e919ab79e1b094363f6c1d4a8a1ee2b21ced24c3b0152723a82001180747a512b5663ea3d824bf5eee239e3fdd44968ab6b48906b2c7b9fd46be093f3ccba9c1a74f9993f5b1634555c6bff56e2f9a687032fb6d7d343a8dbcc416de05226a5ed25889cfa4599504c5edd4c82393fe72852bea2c8feeedbd9c612a5df22f829525aae43f5a8e8bb1cde7726172f12cd2bb321d40b908852d2aaf95a217fc0240adba2221ab3a28c5ab76ff0e7ca79c368715415c3ddc6744790eae8d948796c1505f5d3e5915d8ef0071920b97104c1a790f4417210c61a3bd3b089cd904c902d91cce271650a3e1f00864865d92e94ff9d3db0be1a38152ff0d068bef9013bc38a8c7bfc85577941cb31a3be6c416c9ae4be636a5e17d581b9b05eb75803bd3da5f69619f4040bb9d5e7cb5a3952a00fbce256281b25c97802694ad40fd0c58601d301c45aba802a88f836e045a6f487cd1b60dd375e3c6bd918bae240652f5684a52b8ac1d1477a1e0fc93d42194338d2e4e6134d579435e8b0cb54d762a58e83f6810dd4c34cb685d23e349cd46926f30af421b50311964c959b3e6ba93c8b2b1b2c0f0a7ff0ee2c43a8d6fe002ba6b2070e267ab7f27aad958a4565481d6955466c63c5eef0e2d740f9dde6f1e4b59e03847f93967662ed4c88cbff34212fc7a0c7093180cb5b8545b9dc69387a517bb6239d53820663fd31cce559aa03cfac0ea805cafd64a214029cc86620b576fa25d86df35615275d5d6822e43e32fd709522856e92a105347516a7d89bbb8981eee55d11108eb576abcd22214fdfc67fca3bcd894a74be7da6f90827bfe30eebca2c6842057d77ebe4bcb5b1a1b1a9f2990c4ea48fac86d4616b0ed08e79c1e946600e92a36b46c1fcb1762391c7362b7ddd195ebce3324645835e4288ef10383d66b258ab363d6f95c47b05530e5460cd76b6a091729659c2cba459e6adcbc0633207918962e7b2cb9ab4b5e46601241a2fcf5030f748c47dbdd515f42c58307c3b4ea330340cb93385fb4ee84864b7e945c32e8b0d491a9e0f84ebaeb44d6b85c0c04bbfdb984211e55dd0edd330e4bc5968d278887b7c630ca5f1a98246d4f9a47d2e79e795e4734fcf557a8a4ce0219e7b2dadfc3c619a499350ae9dca653b75d57c6440a6be245f50a37391103d9ba93149ce3cb47e01f3951c4328c4bd228d5f2c6b7f78e5ed6102c36e227283b283b67da4fd3b8be6e25c48202114da5c04e530ee67bf870c7773e1d8ffb3a36e7a5d34d1fc1f93d25ec76a58b9b8b1dce3e0ad7e8d93fb1d55fe07fd7a667849c335730b90dc83f3e3fa7ca4af1f37ee2d68f3a8c9b51e488953dff60ddf779527ebcda84eb9c537db32b5a32d6951d0a0c5dbcda2882e75e5b712745a4e7d32fc37ce032d02fcfa69bb220a15cc151240ecc57bb144cf25c6628e899bc72d8217171376ab5b0162de9581d94b7f73c2125e310a8c08d1f5f6ec9d99d68b450ea330cdab33e09c4824d3c8a1d54189f9d81e54a5786971b338c6d8b116ad188c1746212534a8070342979027b739e224a8d35c5dabd9ac6ea662b9a58954446f27103c2443c4ece9a0ac70f7ee5765046bed09762c27e22b7a3777ab82d65ba696806cdcd264bda47d77e2bd07cbdb9471188672b735973fbf85e9f6494a0c7fb397d53f20fafd656479b0761b07939c12b95733002fe0437f33e6a9b317cdaf8b3fe3e116e494c204f62a550d6c83917127b03297d266fa265bbc19d5e53bfa8ec70cc9fc0a88b18aaac8358e790f5f723acac90799e84b813bc02c9c7ddad2e0f15a0503d772097fc028210a5700ede92673d155af6de97210292770bfb31363691dad07c46c8cc24a3e0c11c6b4950dbb49a5f7eb72e65fcb861a8cd71cdad376125a43cb60b6c688bece9fb3550cb369311b55dc33d1e2350a93f9c8a5f8fa0cd8ddb2ccf4dd8ce26561868b13a356679c1ff25b39ddb690214e5c09ede6e5d8557a8fe0b706858f56a5bb63a488ad7976bbaf7e9bb04914d12de7ba561d86ffe71c412702d259fd40882f68a35913b0c1d3320054804d92a4a7a4e6b86b1816c1b90258c375406875cabc6447a9a8ca917eccab2227ea33a17ac3ed02a3a8fca0af8ce1e4dade4b688c7dea2a0d89a819d6917f3ab7be2514e462d7eb2fc2052cdc625cc375406875cabc6447a9a8ca917eccab2227ea33a17ac3ed02a3a8fca0af8ce1fdf634bbd093494501a9aec0660aa53b434fdc2c2bb989e8d0925323e511358d3815bbaa8adf5400041954decc56e8889eb56eb20bfc30053e7799703af0fc9542f4475c23419f095a41817c7c1f6eb6f8ad96916d4c3ab0d066d234fcc16e4a9792d91be6b3e5195591a2e5bda1fd01cb19954df79fd844de4d429538c1c5d5d2317483f1077eaab2f6a33c1b31704cb072fbdad75b5bca67aac8f0a8dd175ee6a95d1ac948b5e2b389676545101de744f2715766e77f55160375a49a765b15582326355334ff9492a712458087a16b705c5855d44c30ed1ae45c0aeb0be7afb85131ef51f97355fdadfec6f993c8fb4c0cd5c3d2453e1eec76c48d1d4d87d04eea632af55288c8a05509b8754dbbf530746ca73cfa0f29b31fd515192858f7e1d8fbef7e3e5c93700cd15cacd44bed66aaea51b72e70da3eb50655e7018f2030a5ebfa9e972f186a90cb0d68c27da16e31347cb245df6b85f7ca1232adc6387a66d04774bf136fc1e655e0746eee54237e33ce21802d7e286c87b6e130717250c99f12c73517c9314d04fb7807e7fdc57e75436306d3b38036fb17bc0c41ca7dac7c2f13c9a8f31f6f8228e71ea0ae6f470f3099a2ba8cebc4a1fbc876385ad49433c5ac6f01c29013957898b7fd9d899832d2c7d09cc137ff52a4270aff8756800213c1d96ac93e091ac0bdf084caf259fac616fcea62b49c5f5ecff24b8f9c761f4b9a471db13c7b4cf571cfd380eb9d6a6a1bf7a3177885db6fd8d003fba2aa5c3b12a72996fcedd945dd7d1955f2e5ef76bde6f5277238d2b2d6506390a97ca46dc0d82c3f04b17efdb26244f9f779ef1cabcdd5875b17fa51dc24640e30879876f51d507e1cce28de3aa6c63966d101f92df42e6e0be18fec9dd7592f7716301e210f42b764ec78f4adffb05075f1d5103446a40b8a38043f5a7abd8830abafd25cdd7a04ed6fa99a7c6cd5315612a6a6888fd8ff7d4596885f43f3b4019ee1ead8720a4880980c4f632fe4c18286141c3a08faaced4160246349159fc586895ab8940ddc232e93fd1d882d04f58bc0d04d56c5a53fa09285cfb3b56b6cb6c405e5bbbf0ee57e83692e7d6a3191d2c5b48aa110c2e662e6bc42115c8ba13a0ec293b4591e1bbf212f005c952923055a24ab5174da0b69438f4d07213fc54035b2bee1ecd22d5d0afbd7c3765a6feaa4177e7bb08a60fe0073c53b06f28812dac4db4b1fe949ad574a7f59dfe8a806b4342a3dd26d0adc92a4dea634cf995f2ad1491b749c73904991b8812a7b392051375380b516df1e263a16f426f5447eded8497747dda2be986be1b8f8b8cb6ea36a738cd86d2d066085e60fdc74996c6be40c7402953013eff32741d3eb4f6345fd0d1b16a1bbf19d80cf31c5ca32f3bbae594a7bab8365c64f5be456b09ddb100090df865ab586b9fa0d923cfd1944a3a0550b43da55d18afc3955576d3f248a9483c2172c1847b420d48eaf891ef93b9dc3d0641bbd442378602428314535692187774443ad621ef3d752404a1acb9b8e190fa60f2bfd81a680641cf065135b455fdccfabe8fefbb3d271110568fd0f9dee52b16af92058ebbc3e0ebd1b5fbadb97f95ca79e12d232280348dae34d9003a1de2860ed6abcb921ec9287568e723aecb5be646db1d7485795b21866832b38d76b28e39a2fc82b7a2ea834cd3138590b32f4c3aeb86da65d2806e508956818e8f688813b7d94da6c5407e90e3e01570e4e4a313a37c5d9d6ef99a64928b5d1d2b0e15d13b57635b7f664ef039b1af917e773a5f86ed46e53994310b5c5dcc4daa4fd28c8eb94181dcd60854c0c33a5dc24636addbacb1b48080afd4475fd94762c2af67d19bedb484ba16c0425cafcbdc472e2b4be512f3541b6e89985de87faf374cc69ffa3614a890261f3b3e8011490fea44fa39f0b2fb4dd84c3ff63f4941907ebb7997ce09aaa219e898fc257b241c1b0e0ef424fafa3a37739acf62cd504a40ad5849e223b51e2b54c3bdefb55155e621c830f3ac386149558234ed7920c6934f05a9a5975ece6a5348de0b16cf97b6a4e54e810bf0d51086d4351e47b0889285fd31cfa76fe375f2d04a906de95ca032fcbeed3428b1f65943af178c8420baf054600a8e1832dbc3426817f717596e5502b141e438ca2cea3917d33b1dce8254f04bef0907189428b0182364e4815b737d60b98249d198ac0eb5cc60c4bc108e0ad3f89992f09a05b42b7920e28223a6edcccff6cee1d4c6311bafb0626f9d174ff1071f537e1a240d23c24c42a74f8d04230a9bfbedbb56f842189d0530a22bd146824cf266e9c4fda56b9ba5186238c0bf539537f3a56db4e41cfe88f747f8da7bcee943ab1e96cc33fc7d6a4b64cc2ac9902a0b3429568ca782bd29c03d67a91c69439d04238390829f9f27520fd1fa2f0f208049e592b102c842cd923bbf9b2424a314558391b9afc73bd5bf7a0ce51cd27b90873269963b0d9edfb8cef2eaa5ea57ac40216cfca4fadf8c8cbb84c2e4b961aeea09b69dd002fd057894a61545c8d1144f1baa1d9607870269208fcebd10d7a5de44afbdc6dffbce4d3bddd5a872b8396b0a31eaded2cdd394f8728dec515d2620f7ab905eb379b8a9a4d3d744b74846f407829bb60de3a42e89945f56b7840227ecaffcc127f978e2ceca9941f6c6ed1f10982950db45f7a18253614b7b3707093d5c46816f21e39a76697c4caccc8534cdbbdba930896786cdb7762d29867f38a5c53051cabd9cd9e98d49dea201a11475a11e6cc436b32a54e7d46bebdce88cdc3a66a783addb0f9cdb45f9e87deb0e51c2aca6bf81e46d4e822136993ba81505d5ce8fbd8a664831adb58c1c82280fd3568d14fab38868142a765d1eb1e05d3a3be13ba7293fb7a39157b58e304de89d81c46c0332b97bbc4152273515b61ee864ca0ff93c79c32592106e3c44a7a6dedd41f6d55d88809aaa3b28fd675b0aa827693311b8e90eebf81d8468cb5a312725491002c5c6061c49a5488435069c7a369b6069012fef0a518e379222007f6ea7622cb1c235a35b1355bb5641ab16d26730400aff4d8033ea29e472fe29f63aa9d78068dc3a2f719385dc2a612ccf884111f911a8095798fda2a7c708e20a931d2c228e637ff82de3ff44794d2d0ae92ebf6b56361527f081803c4067263ea97f44637ce2cc329168fb17e4e193fc40d447f1c34c1851298028e561e8aaefde8c9c3ebcc2f965ff81f9a603f2d9e4fc5013b8e96cde431fcacb828c6ea5de97d02f659ac02f42bb2310b7ad173897ff55e29848cb6ddbfe90bea82fd2c26e507de666833a1ff45dfd545a4bf5bb6254d118d93863940b076a247af19a993950ea1b736e2281209ea23f71c7b3df75bb9a84b7bf1b5ea18d92145a2fc6c696d04029a994db1e2bdb440e3be7852d8b19de13394d72001d383a5c8465dc3f7aabd9420f7c3485d61b3b36090a7b0d4c8f6e5eee400c8bcc4fe2c8d3aef6ff70f6cb25edaf71f696e41ffb867f6852a47de299e4867e9bde9e79aa0e05234e13caaa5edc668bff7821ac7fb7c777cbeb55eef7a7513cfe26e93e6b9ff4f1d28b2f8783fe29774a5007c8cdd2ecc260c1fcc3e0cc0c3c351a9b3014dcfe6092d322de341ad2cdf3d51721261455450dae243025d24066edbbaf1ab8db013631ee3b286aa2f454a82ea451901961ca24ee0b4df279027feeb13b6eec97f011ebc4d8149206199d1553e98c04557c24db47f0c0ea179e5d261ff0834d4f3141265238e5d5691e9644e9983ea38ccd52dc8745ac52592a738c9b7d65aa0c675fe4385428b27681098c5d09baacaffc2bc98893c4490a1238f5fb4586500eb1ad4530d0250bb887201bcf1fa83593b6491ece11ac0f2207bef35b1a3d432f6443a5ea6ceea97aaa5f7d7c2b938853fcece4347d87a4740259a391fe9c9369f2b8793485e857f8bac4abd5af9e21eb2cac4b9294f2998c85f3188e1ec4c67a6fdb78c4039cab890781b286f28b961d5e20f04e5d23a3fb16cb0bf7d8469dc8e341eb8ccac992503c902478c835418c3220571ab08ca14b5459f04a3ca66bbe754a9fb54e04c684d4910336778d9b61df07aa9e6f04039aed6448238022d759dec54bcb74cff43ef7cd0fc28edad25074c986013fb55340f68a3e9934fac3db30ec89a559120e576eca3359b392e3bb8390f2e2723665fa2d416ff2b0250ae36e8ed7a810e29ee39620002d195ce6b5d419673525002ece99d1f29ab0c750cdcb91ffda0e93f2fef4a74d3dbe1270e9bb7b435b6fc03a1bff59a9386d84aa6a5e7c9e6d8445da5e78465e99fb91b4f872932cc2efeab7fbdd1e26e4c4ea96959d57330697df6185ebc579227f3148abb08b3f543c90d7c6166bbb67377ecfb8c5d309dd21080f878270f66f209ba44e2a943688e3f9543c47b239d52c1a2c3e0a8e49a7807fa7f631d8f5fdf24d048b99e684286ef7a59d5ae2ef150ad7137196a809648ad22e5833bc01b692f1576d899d4d74b5eed48e1e4ffc50f1c278b932fa2df3940621e99fbb457aa8ae5c7dee9373b068ed90f2dae8c07e66756f7e565bbb5c4d2de102432d1f8db74cfa50f60e75939db8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootsnapd-2.68.3-0.el8.src.rpmbundled(golang(github.com/bmatcuk/doublestar/v4))bundled(golang(github.com/coreos/go-systemd/activation))bundled(golang(github.com/godbus/dbus))bundled(golang(github.com/godbus/dbus/introspect))bundled(golang(github.com/gorilla/mux))bundled(golang(github.com/jessevdk/go-flags))bundled(golang(github.com/juju/ratelimit))bundled(golang(github.com/kr/pretty))bundled(golang(github.com/kr/text))bundled(golang(github.com/mvo5/goconfigparser))bundled(golang(github.com/seccomp/libseccomp-golang))bundled(golang(github.com/snapcore/go-gettext))bundled(golang(go.etcd.io/bbolt))bundled(golang(golang.org/x/crypto/openpgp/armor))bundled(golang(golang.org/x/crypto/openpgp/packet))bundled(golang(golang.org/x/crypto/sha3))bundled(golang(golang.org/x/crypto/ssh/terminal))bundled(golang(golang.org/x/xerrors))bundled(golang(golang.org/x/xerrors/internal))bundled(golang(gopkg.in/check.v1))bundled(golang(gopkg.in/macaroon.v1))bundled(golang(gopkg.in/mgo.v2/bson))bundled(golang(gopkg.in/retry.v1))bundled(golang(gopkg.in/tomb.v2))bundled(golang(gopkg.in/yaml.v2))bundled(golang(gopkg.in/yaml.v3))golang(github.com/snapcore/snapd/advisor)golang(github.com/snapcore/snapd/arch)golang(github.com/snapcore/snapd/asserts)golang(github.com/snapcore/snapd/asserts/assertstest)golang(github.com/snapcore/snapd/asserts/internal)golang(github.com/snapcore/snapd/asserts/signtool)golang(github.com/snapcore/snapd/asserts/snapasserts)golang(github.com/snapcore/snapd/asserts/sysdb)golang(github.com/snapcore/snapd/asserts/systestkeys)golang(github.com/snapcore/snapd/boot)golang(github.com/snapcore/snapd/boot/boottest)golang(github.com/snapcore/snapd/bootloader)golang(github.com/snapcore/snapd/bootloader/androidbootenv)golang(github.com/snapcore/snapd/bootloader/assets)golang(github.com/snapcore/snapd/bootloader/assets/genasset)golang(github.com/snapcore/snapd/bootloader/bootloadertest)golang(github.com/snapcore/snapd/bootloader/efi)golang(github.com/snapcore/snapd/bootloader/grubenv)golang(github.com/snapcore/snapd/bootloader/lkenv)golang(github.com/snapcore/snapd/bootloader/ubootenv)golang(github.com/snapcore/snapd/client)golang(github.com/snapcore/snapd/client/clientutil)golang(github.com/snapcore/snapd/cmd/snap)golang(github.com/snapcore/snapd/cmd/snap-bootstrap)golang(github.com/snapcore/snapd/cmd/snap-bootstrap/triggerwatch)golang(github.com/snapcore/snapd/cmd/snap-exec)golang(github.com/snapcore/snapd/cmd/snap-failure)golang(github.com/snapcore/snapd/cmd/snap-preseed)golang(github.com/snapcore/snapd/cmd/snap-recovery-chooser)golang(github.com/snapcore/snapd/cmd/snap-repair)golang(github.com/snapcore/snapd/cmd/snap-seccomp)golang(github.com/snapcore/snapd/cmd/snap-seccomp/syscalls)golang(github.com/snapcore/snapd/cmd/snap-update-ns)golang(github.com/snapcore/snapd/cmd/snapctl)golang(github.com/snapcore/snapd/cmd/snapd)golang(github.com/snapcore/snapd/cmd/snaplock)golang(github.com/snapcore/snapd/cmd/snaplock/runinhibit)golang(github.com/snapcore/snapd/daemon)golang(github.com/snapcore/snapd/dbusutil)golang(github.com/snapcore/snapd/dbusutil/dbustest)golang(github.com/snapcore/snapd/desktop/notification)golang(github.com/snapcore/snapd/desktop/notification/notificationtest)golang(github.com/snapcore/snapd/dirs)golang(github.com/snapcore/snapd/docs)golang(github.com/snapcore/snapd/features)golang(github.com/snapcore/snapd/gadget)golang(github.com/snapcore/snapd/gadget/edition)golang(github.com/snapcore/snapd/gadget/install)golang(github.com/snapcore/snapd/gadget/internal)golang(github.com/snapcore/snapd/gadget/quantity)golang(github.com/snapcore/snapd/httputil)golang(github.com/snapcore/snapd/i18n)golang(github.com/snapcore/snapd/i18n/xgettext-go)golang(github.com/snapcore/snapd/image)golang(github.com/snapcore/snapd/interfaces)golang(github.com/snapcore/snapd/interfaces/apparmor)golang(github.com/snapcore/snapd/interfaces/backends)golang(github.com/snapcore/snapd/interfaces/builtin)golang(github.com/snapcore/snapd/interfaces/dbus)golang(github.com/snapcore/snapd/interfaces/hotplug)golang(github.com/snapcore/snapd/interfaces/ifacetest)golang(github.com/snapcore/snapd/interfaces/kmod)golang(github.com/snapcore/snapd/interfaces/mount)golang(github.com/snapcore/snapd/interfaces/policy)golang(github.com/snapcore/snapd/interfaces/seccomp)golang(github.com/snapcore/snapd/interfaces/systemd)golang(github.com/snapcore/snapd/interfaces/udev)golang(github.com/snapcore/snapd/interfaces/utils)golang(github.com/snapcore/snapd/jsonutil)golang(github.com/snapcore/snapd/jsonutil/safejson)golang(github.com/snapcore/snapd/kernel)golang(github.com/snapcore/snapd/logger)golang(github.com/snapcore/snapd/metautil)golang(github.com/snapcore/snapd/netutil)golang(github.com/snapcore/snapd/osutil)golang(github.com/snapcore/snapd/osutil/disks)golang(github.com/snapcore/snapd/osutil/mount)golang(github.com/snapcore/snapd/osutil/squashfs)golang(github.com/snapcore/snapd/osutil/strace)golang(github.com/snapcore/snapd/osutil/sys)golang(github.com/snapcore/snapd/osutil/udev/crawler)golang(github.com/snapcore/snapd/osutil/udev/netlink)golang(github.com/snapcore/snapd/overlord)golang(github.com/snapcore/snapd/overlord/assertstate)golang(github.com/snapcore/snapd/overlord/assertstate/assertstatetest)golang(github.com/snapcore/snapd/overlord/auth)golang(github.com/snapcore/snapd/overlord/cmdstate)golang(github.com/snapcore/snapd/overlord/configstate)golang(github.com/snapcore/snapd/overlord/configstate/config)golang(github.com/snapcore/snapd/overlord/configstate/configcore)golang(github.com/snapcore/snapd/overlord/configstate/proxyconf)golang(github.com/snapcore/snapd/overlord/configstate/settings)golang(github.com/snapcore/snapd/overlord/devicestate)golang(github.com/snapcore/snapd/overlord/devicestate/devicestatetest)golang(github.com/snapcore/snapd/overlord/devicestate/fde)golang(github.com/snapcore/snapd/overlord/devicestate/internal)golang(github.com/snapcore/snapd/overlord/healthstate)golang(github.com/snapcore/snapd/overlord/hookstate)golang(github.com/snapcore/snapd/overlord/hookstate/ctlcmd)golang(github.com/snapcore/snapd/overlord/hookstate/hooktest)golang(github.com/snapcore/snapd/overlord/ifacestate)golang(github.com/snapcore/snapd/overlord/ifacestate/ifacerepo)golang(github.com/snapcore/snapd/overlord/ifacestate/udevmonitor)golang(github.com/snapcore/snapd/overlord/patch)golang(github.com/snapcore/snapd/overlord/servicestate)golang(github.com/snapcore/snapd/overlord/snapshotstate)golang(github.com/snapcore/snapd/overlord/snapshotstate/backend)golang(github.com/snapcore/snapd/overlord/snapstate)golang(github.com/snapcore/snapd/overlord/snapstate/backend)golang(github.com/snapcore/snapd/overlord/snapstate/policy)golang(github.com/snapcore/snapd/overlord/snapstate/snapstatetest)golang(github.com/snapcore/snapd/overlord/standby)golang(github.com/snapcore/snapd/overlord/state)golang(github.com/snapcore/snapd/overlord/storecontext)golang(github.com/snapcore/snapd/polkit)golang(github.com/snapcore/snapd/progress)golang(github.com/snapcore/snapd/progress/progresstest)golang(github.com/snapcore/snapd/randutil)golang(github.com/snapcore/snapd/release)golang(github.com/snapcore/snapd/sandbox)golang(github.com/snapcore/snapd/sandbox/apparmor)golang(github.com/snapcore/snapd/sandbox/cgroup)golang(github.com/snapcore/snapd/sandbox/seccomp)golang(github.com/snapcore/snapd/sandbox/selinux)golang(github.com/snapcore/snapd/sanity)golang(github.com/snapcore/snapd/secboot)golang(github.com/snapcore/snapd/seed)golang(github.com/snapcore/snapd/seed/internal)golang(github.com/snapcore/snapd/seed/seedtest)golang(github.com/snapcore/snapd/seed/seedwriter)golang(github.com/snapcore/snapd/snap)golang(github.com/snapcore/snapd/snap/channel)golang(github.com/snapcore/snapd/snap/internal)golang(github.com/snapcore/snapd/snap/naming)golang(github.com/snapcore/snapd/snap/pack)golang(github.com/snapcore/snapd/snap/snapdir)golang(github.com/snapcore/snapd/snap/snapenv)golang(github.com/snapcore/snapd/snap/snapfile)golang(github.com/snapcore/snapd/snap/snaptest)golang(github.com/snapcore/snapd/snap/squashfs)golang(github.com/snapcore/snapd/snapdenv)golang(github.com/snapcore/snapd/snapdtool)golang(github.com/snapcore/snapd/spdx)golang(github.com/snapcore/snapd/store)golang(github.com/snapcore/snapd/store/storetest)golang(github.com/snapcore/snapd/strutil)golang(github.com/snapcore/snapd/strutil/chrorder)golang(github.com/snapcore/snapd/strutil/quantity)golang(github.com/snapcore/snapd/strutil/shlex)golang(github.com/snapcore/snapd/sysconfig)golang(github.com/snapcore/snapd/systemd)golang(github.com/snapcore/snapd/testutil)golang(github.com/snapcore/snapd/timeout)golang(github.com/snapcore/snapd/timeutil)golang(github.com/snapcore/snapd/timings)golang(github.com/snapcore/snapd/usersession/agent)golang(github.com/snapcore/snapd/usersession/autostart)golang(github.com/snapcore/snapd/usersession/client)golang(github.com/snapcore/snapd/usersession/userd)golang(github.com/snapcore/snapd/usersession/userd/ui)golang(github.com/snapcore/snapd/usersession/xdgopenproxy)golang(github.com/snapcore/snapd/wrappers)golang(github.com/snapcore/snapd/x11)snapd-devel    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3g@gSg_@ggg@g@gNgIg=@g@g @ffff@fyf@ffff(@e!@eZeN@eȶe@ee@e`@e)1@eG@dd@dd d@dqd^*@dRLd>@d"d c@c@ccvcc]c@cEcs@cMCc5c#c@bbz@bb֜bγbʿ@bmbb@bbb1@b{@bm$bY^@bT@bP#bMb8hb8hb8hb+9b b8b aaɪap@a{a@a@a@aaaKa(@a(@aqV@a\>@a\>@aTU@a2@a/k@a(aGaS@aa`@`@``@`Ȗ@`````@`]`F`>(`+`%@`#`>`U_I@_إ@_@_^@_E@_~@_s!_R,@_D@_)M_%Y@_!d_ @___X@^(@^3^^^_^^v^p^E:@^C^2@^0"@^@^]B]߶]e@]@]*]µ]{@])]4@]?]nU]i]:@](v@] ]@\\\]@\t@\!\-@\@\C@\|\|\w@\w@\v{\k\j@\Z@\Z@\V\P@@\?\@\@[[H[H[@[v[@[^[ā@[R@[R@[["@[D[z@[[ @[P}@[M@[I[?Y[,[+@[oZ@ZZZZԐ@ZJ@ZZZZZx@ZZ=Zw@Z1@ZZ Z}@ZyZiZ7Z6\@Zr@Zr@Z@ZC@YZ@YZ@Y@Y@Y@YYY@YYYܶ@Y@Y˒YY)@Y4Y@@YYYY3Y3Y3YYYJYJY@YyY&@Y!@Y;@Y#@X@X@Xߖ@XDX@XۡXƉXX`@XWu@W:W@W@W@W@W@W@W@W@W@W@Wm Wc@W_WZErnest Lotter Ernest Lotter Ernest Lotter Ernest Lotter Zygmunt Krynicki Fedora Release Engineering - 2.66.1-3Ernest Lotter Orion Poplawski Zygmunt Krynicki Zygmunt Krynicki Zygmunt Krynicki Ernest Lotter Ernest Lotter Ernest Lotter Ernest Lotter Ernest Lotter Ernest Lotter Miroslav Suchý - 2.63-3Miroslav Suchý - 2.63-2Ernest Lotter Fedora Release Engineering - 2.63-1Ernest Lotter Ernest Lotter Ernest Lotter Ernest Lotter Maxwell G - 2.61.1-2Fedora Release Engineering - 2.61.1-1Zygmunt Krynicki - 2.61.1-1Zygmunt Krynicki - 2.58.3-3Ernest Lotter Philip Meulengracht Michael Vogt Michael Vogt Michael Vogt Fedora Release Engineering - 2.58.3-2Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Maciek Borzecki - 2.58.3-1Michael Vogt Michael Vogt Michael Vogt Fedora Release Engineering - 2.57.6-3Maciek Borzecki - 2.57.6-2Michael Vogt Maciek Borzecki - 2.57.6-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Alberto Mardegan Michael Vogt Fedora Release Engineering - 2.56.2-5Maxwell G - 2.56.2-4Michael Vogt Maxwell G - 2.56.2-2Maxwell G - 2.56.2-2Maciek Borzecki - 2.56.2-1Robert-André Mauchin - 2.55.3-2Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt David King - 2.55.3-2Maciek Borzecki - 2.55.3-1Michael Vogt Maciek Borzecki - 2.55.2-1Ian Johnson Ian Johnson Ian Johnson Maciek Borzecki - 2.54.4-1Michael Vogt Maciek Borzecki - 2.54.3-1Michael Vogt Ian Johnson Maciek Borzecki - 2.54.1-1Michael Vogt Michael Vogt Maciek Borzecki - 2.53.4-1Ian Johnson Ian Johnson Maciek Borzecki - 2.53.2-2Maciek Borzecki - 2.53.2-1Ian Johnson Maciek Borzecki - 2.53.1-2Maciek Borzecki - 2.53.1-1Ian Johnson Michael Vogt Michael Vogt Maciek Borzecki - 2.52-1Ian Johnson Maciek Borzecki - 2.51.7-1Ian Johnson Ian Johnson Ian Johnson Ian Johnson Maciek Borzecki - 2.51-4Maciek Borzecki - 2.51-3Fedora Release Engineering - 2.51-2Ian Johnson Michael Vogt Michael Vogt Maciek Borzecki - 2.51-1Ian Johnson Ian Johnson Maciek Borzecki - 2.50-1Michael Vogt Michael Vogt Michael Vogt Zbigniew Jędrzejewski-Szmek - 2.49-3Maciek Borzecki - 2.49-2Maciek Borzecki - 2.49-1Michael Vogt Maciek Borzecki - 2.48.2-3Fedora Release Engineering - 2.48.2-2Maciek Borzecki - 2.48.2-1Michael Vogt Michael Vogt Michael Vogt Maciek Borzecki - 2.47.1-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Maciek Borzecki - 2.45.3.1-1Fedora Release Engineering - 2.45.2-3Fedora Release Engineering - 2.45.2-2Samuele Pedroni Zygmunt Krynicki Maciek Borzecki - 2.45.2-1Michael Vogt Maciek Borzecki - 2.45.1-1Michael Vogt Maciek Borzecki - 2.45-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Maciek Borzecki - 2.43.3-1Michael Vogt Fedora Release Engineering - 2.42.2-2Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Maciek Borzecki - 2.42.2-1Michael Vogt Maciek Borzecki - 2.42.1-1Michael Vogt Maciek Borzecki - 2.42-2Maciek Borzecki - 2.42-1Michael Vogt Neal Gompa - 2.41-1Michael Vogt Fedora Release Engineering - 2.39.2-2Michael Vogt Michael Vogt Neal Gompa - 2.39.2-1Maciej Borzecki - 2.39.1-2Michael Vogt Neal Gompa - 2.39.1-1Michael Vogt Neal Gompa - 2.39-1Michael Vogt Robert-André Mauchin - 2.38-3Neal Gompa - 2.38-2Neal Gompa - 2.38-1Michael Vogt Neal Gompa - 2.37.4-2Zygmunt Bazyli Krynicki - 2.37.4-1Michael Vogt Zygmunt Bazyli Krynicki - 2.37.3-1Michael Vogt Neal Gompa - 2.37.2-1Michael Vogt Fedora Release Engineering - 2.36.3-2Michael Vogt Michael Vogt Neal Gompa - 2.36.3-1Michael Vogt Michael Vogt Neal Gompa - 2.36-4Neal Gompa - 2.36-3Neal Gompa - 2.36-2Michael Vogt Neal Gompa - 2.36-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Neal Gompa - 2.35-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Fedora Release Engineering - 2.33.1-2Michael Vogt Neal Gompa - 2.33.1-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Neal Gompa - 2.32.4-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Neal Gompa - 2.31.1-2Neal Gompa - 2.31.1-1Michael Vogt Fedora Release Engineering - 2.30-2Michael Vogt Neal Gompa - 2.30-1Michael Vogt Neal Gompa - 2.29.4-3Neal Gompa - 2.29.4-2Neal Gompa - 2.29.4-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Neal Gompa - 2.28.5-2Neal Gompa - 2.28.5-1Michael Vogt Neal Gompa - 2.28.4-1Michael Vogt Michael Vogt Michael Vogt Neal Gompa - 2.28.1-1Michael Vogt Michael Vogt Neal Gompa - 2.27.6-1Michael Vogt Neal Gompa - 2.27.5-1Michael Vogt Michael Vogt Michael Vogt Neal Gompa - 2.27.2-2Neal Gompa - 2.27.2-1Michael Vogt Neal Gompa - 2.27.1-1Michael Vogt Neal Gompa - 2.27-1Michael Vogt Fedora Release Engineering - 2.26.3-5Fedora Release Engineering - 2.26.3-4Neal Gompa - 2.26.3-3Neal Gompa - 2.26.3-2Neal Gompa - 2.26.3-1Neal Gompa - 2.25-1Neal Gompa - 2.24-1Neal Gompa - 2.23.6-4Neal Gompa - 2.23.6-3Neal Gompa - 2.23.6-2Neal Gompa - 2.23.6-1Neal Gompa - 2.23.5-1Neal Gompa - 2.23.1-1Fedora Release Engineering - 2.16-2Zygmunt Krynicki - 2.16-1Neal Gompa - 2.14-2Zygmunt Krynicki - 2.14-1Zygmunt Krynicki - 2.13-1Zygmunt Krynicki - 2.12-2Zygmunt Krynicki - 2.12-1Zygmunt Krynicki - 2.11-8Zygmunt Krynicki - 2.11-7Zygmunt Krynicki - 2.11-6Zygmunt Krynicki - 2.11-5Zygmunt Krynicki - 2.11-4Zygmunt Krynicki - 2.11-3Zygmunt Krynicki - 2.11-2Zygmunt Krynicki - 2.11-1Zygmunt Krynicki - 2.0.9-2Zygmunt Krynicki - 2.0.9Zygmunt Krynicki - 2.0.8.1Zygmunt Krynicki - 2.0.8- New upstream release 2.68.3 - FDE: LP: #2101834 snapd 2.68+ and snap-bootstrap <2.68 fallback to old keyring path - Fix Plucky snapd deb build issue related to /var/lib/snapd/void permissions - Fix snapd deb build complaint about ifneq with extra bracket- New upstream release 2.68.2 - FDE: use boot mode for FDE hooks - FDE: add snap-bootstrap compatibility check to prevent image creation with incompatible snapd and kernel snap - FDE: add argon2 out-of-process KDF support - FDE: have separate mutex for the sections writing a fresh modeenv - FDE: LP: #2099709 update secboot to e07f4ae48e98 - Confdb: support pruning ephemeral data and process alternative types in order - core-initrd: look at env to mount directly to /sysroot - core-initrd: prepare for Plucky build and split out 24.10 (Oracular) - Fix missing primed packages in snapd snap manifest - Interfaces: posix-mq | fix incorrect clobbering of global variable and make interface more precise - Interfaces: opengl | add more kernel fusion driver files- New upstream release 2.68.1 - Fix snap-confine type specifier type mismatch on armhf- New upstream release 2.68 - FDE: add support for new and more extensible key format that is unified between TPM and FDE hook - FDE: add support for adding passphrases during installation - FDE: update secboot to 30317622bbbc - Snap components: make kernel components available on firstboot after either initramfs or ephemeral rootfs style install - Snap components: mount drivers tree from initramfs so kernel modules are available in early boot stages - Snap components: support remodeling to models that contain components - Snap components: support offline remodeling to models that contain components - Snap components: support creating new recovery systems with components - Snap components: support downloading components with 'snap download' command - Snap components: support sideloading asserted components - AppArmor Prompting(experimental): improve version checks and handling of listener notification protocol for communication with kernel AppArmor - AppArmor Prompting(experimental): make prompt replies idempotent, and have at most one rule for any given path pattern, with potentially mixed outcomes and lifespans - AppArmor Prompting(experimental): timeout unresolved prompts after a period of client inactivity - AppArmor Prompting(experimental): return an error if a patch request to the API would result in a rule without any permissions - AppArmor Prompting(experimental): warn if there is no prompting client present but prompting is enabled, or if a prompting-related error occurs during snapd startup - AppArmor Prompting(experimental): do not log error when converting empty permissions to AppArmor permissions - Confdb(experimental): rename registries to confdbs (including API /v2/registries => /v2/confdb) - Confdb(experimental): support marking confdb schemas as ephemeral - Confdb(experimental): add confdb-control assertion and feature flag - Refresh App Awareness(experimental): LP: #2089195 prevent possibility of incorrect notification that snap will quit and update - Confidential VMs: snap-bootstrap support for loading partition information from a manifest file for cloudimg-rootfs mode - Confidential VMs: snap-bootstrap support for setting up cloudimg- rootfs as an overlayfs with integrity protection - dm-verity for essential snaps: add support for snap-integrity assertion - Interfaces: modify AppArmor template to allow owner read on @{PROC}/@{pid}/fdinfo/* - Interfaces: LP: #2072987 modify AppArmor template to allow using setpriv to run daemon as non-root user - Interfaces: add configfiles backend that ensures the state of configuration files in the filesystem - Interfaces: add ldconfig backend that exposes libraries coming from snaps to either the rootfs or to other snaps - Interfaces: LP: #1712808 LP: 1865503 disable udev backend when inside a container - Interfaces: add auditd-support interface that grants audit_control capability and required paths for auditd to function - Interfaces: add checkbox-support interface that allows unrestricted access to all devices - Interfaces: fwupd | allow access to dell bios recovery - Interfaces: fwupd | allow access to shim and fallback shim - Interfaces: mount-control | add mount option validator to detect mount option conflicts early - Interfaces: cpu-control | add read access to /sys/kernel/irq/ - Interfaces: locale-control | changed to be implicit on Ubuntu Core Desktop - Interfaces: microstack-support | support for utilizing of AMD SEV capabilities - Interfaces: u2f | added missing OneSpan device product IDs - Interfaces: auditd-support | grant seccomp setpriority - Interfaces: opengl interface | enable parsing of nvidia driver information files - Allow mksquashfs 'xattrs' when packing snap types os, core, base and snapd as part of work to support non-root snap-confine - Upstream/downstream packaging changes and build updates - Improve error logs for malformed desktop files to also show which desktop file is at fault - Provide more precise error message when overriding channels with grade during seed creation - Expose 'snap prepare-image' validation parameter - Add snap-seccomp 'dump' command that dumps the filter rules from a compiled profile - Add fallback release info location /etc/initrd-release - Added core-initrd to snapd repo and fixed issues with ubuntu-core- initramfs deb builds - Remove stale robust-mount-namespace-updates experimental feature flag - Remove snapd-snap experimental feature (rejected) and it's feature flag - Changed snap-bootstrap to mount base directly on /sysroot - Mount ubuntu-seed mounted as no-{suid,exec,dev} - Mapping volumes to disks: add support for volume-assignments in gadget - Fix silently broken binaries produced by distro patchelf 0.14.3 by using locally build patchelf 0.18 - Fix mismatch between listed refresh candidates and actual refresh due to outdated validation sets - Fix 'snap get' to produce compact listing for tty - Fix missing store-url by keeping it as part of auxiliary store info - Fix snap-confine attempting to retrieve device cgroup setup inside container where it is not available - Fix 'snap set' and 'snap get' panic on empty strings with early error checking - Fix logger debug entries to show correct caller and file information - Fix issue preventing hybrid systems from being seeded on first boot - LP: #1966203 remove auto-import udev rules not required by deb package to avoid unwanted syslog errors - LP: #1886414 fix progress reporting when stdout is on a tty, but stdin is not- The changelog date and author have been modified to maintain linearity. - Drop 0001-data-selinux-remove-timedatex.patch - applied upstream. - New upstream release 2.67 - AppArmor prompting (experimental): allow overlapping rules - Registry view (experimental): Changes to registry data (from both users and snaps) can be validated and saved by custodian snaps - Registry view (experimental): Support 'snapctl get --pristine' to read the registry data excluding staged transaction changes - Registry view (experimental): Put registry commands behind experimental feature flag - Components: Make modules shipped/created by kernel-modules components available right after reboot - Components: Add tab completion for local component files - Components: Allow installing snaps and components from local files jointly on the CLI - Components: Allow 'snapctl model' command for gadget and kernel snaps - Components: Add 'snap components' command - Components: Bug fixes - eMMC gadget updates (WIP): add syntax support in gadget.yaml for eMMC schema - Support for ephemeral recovery mode on hybrid systems - Support for dm-verity options in snap-bootstrap - Support for overlayfs options and allow empty what argument for tmpfs - Enable ubuntu-image to determine the size of the disk image to create - Expose 'snap debug' commands 'validate-seed' and 'seeding' - Add debug API option to use dedicated snap socket /run/snapd- snap.socket - Hide experimental features that are no longer required (accepted/rejected) - Mount ubuntu-save partition with no{exec,dev,suid} at install, run and factory-reset - Improve memory controller support with cgroup v2 - Support ssh socket activation configurations (used by ubuntu 22.10+) - Fix generation of AppArmor profile with incorrect revision during multi snap refresh - Fix refresh app awareness related deadlock edge case - Fix not caching delta updated snap download - Fix passing non root uid, guid to initial tmpfs mount - Fix ignoring snaps in try mode when amending - Fix reloading of service activation units to avoid systemd errors - Fix snapd snap FIPS build on Launchpad to use Advantage Pro FIPS updates PPA - Make killing of snap apps best effort to avoid possibility of malicious failure loop - Alleviate impact of auto-refresh failure loop with progressive delay - Dropped timedatex in selinux-policy to avoid runtime issue - Fix missing syscalls in seccomp profile - Modify AppArmor template to allow using SNAP_REEXEC on arch systems - Modify AppArmor template to allow using vim.tiny (available in base snaps) - Modify AppArmor template to add read-access to debian_version - Modify AppArmor template to allow owner to read @{PROC}/@{pid}/sessionid - {common,personal,system}-files interface: prohibit trailing @ in filepaths - {desktop,shutdown,system-observe,upower-observe} interface: improve for Ubuntu Core Desktop - custom-device interface: allow @ in custom-device filepaths - desktop interface: improve launch entry and systray integration with session - desktop-legacy interface: allow DBus access to com.canonical.dbusmenu - fwupd interface: allow access to nvmem for thunderbolt plugin - mpris interface: add plasmashell as label - mount-control interface: add support for nfs mounts - network-{control,manager} interface: add missing dbus link rules - network-manager-observe interface: add getDevices methods - opengl interface: add Kernel Fusion Driver access to opengl - screen-inhibit-control interface: improve screen inhibit control for use on core - udisks2 interface: allow ping of the UDisks2 service - u2f-devices interface: add Nitrokey Passkey- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild- New upstream release 2.67.1 - Fix apparmor permissions to allow snaps access to kernel modules and firmware on UC24, which also fixes the kernel-modules-control interface on UC24 - AppArmor prompting (experimental): disallow /./ and /../ in path patterns - Fix 'snap run' getent based user lookup in case of bad PATH - Fix snapd using the incorrect AppArmor version during undo of an refresh for regenerating snap profiles - Add new syscalls to base templates - hardware-observe interface: allow riscv_hwprobe syscall - mount-observe interface: allow listmount and statmount syscalls- Drop RestartMode from snapd.service on EL8 (rhbz#2315759)- Re-cherry pick fix for SELinux timedatex problem from upstream as it was not released in 2.66.1, sorry.- Drop only patch, applied upstream.- Cherry pick fix for SELinux timedatex problem from upstream- New upstream release 2.66.1 - AppArmor prompting (experimental): Fix kernel prompting support check - Allow kernel snaps to have content slots - Fix ignoring snaps in try mode when amending- New upstream release 2.66 - AppArmor prompting (experimental): expand kernel support checks - AppArmor prompting (experimental): consolidate error messages and add error kinds - AppArmor prompting (experimental): grant /v2/snaps/{name} via snap-interfaces-requests-control - AppArmor prompting (experimental): add checks for duplicate pattern variants - Registry views (experimental): add handlers that commit (and cleanup) registry transactions - Registry views (experimental): add a snapctl fail command for rejecting registry transactions - Registry views (experimental): allow custodian snaps to implement registry hooks that modify and save registry data - Registry views (experimental): run view-changed hooks only for snaps plugging views affected by modified paths - Registry views (experimental): make registry transactions serialisable - Snap components: handle refreshing components to revisions that have been on the system before - Snap components: enable creating Ubuntu Core images that contain components - Snap components: handle refreshing components independently of snaps - Snap components: handle removing components when refreshing a snap that no longer defines them - Snap components: extend snapd Ubuntu Core installation API to allow for picking optional snaps and components to install - Snap components: extend kernel.yaml with "dynamic-modules", allowing kernel to define a location for kmods from component hooks - Snap components: renamed component type "test" to "standard" - Desktop IDs: support installing desktop files with custom names based on desktop-file-ids desktop interface plug attr - Auto-install snapd on classic systems as prerequisite for any non- essential snap install - Support loading AppArmor profiles on WSL2 with non-default kernel and securityfs mounted - Debian/Fedora packaging updates - Add snap debug command for investigating execution aspects of the snap toolchain - Improve snap pack error for easier parsing - Add support for user services when refreshing snaps - Add snap remove --terminate flag for terminating running snap processes - Support building FIPS complaint snapd deb and snap - Fix to not use nss when looking up for users/groups from snapd snap - Fix ordering in which layout changes are saved - Patch snapd snap dynamic linker to ignore LD_LIBRARY_PATH and related variables - Fix libexec dir for openSUSE Slowroll - Fix handling of the shared snap directory for parallel installs - Allow writing to /run/systemd/journal/dev-log by default - Avoid state lock during snap removal to avoid delaying other snapd operations - Add nomad-support interface to enable running Hashicorp Nomad - Add intel-qat interface - u2f-devices interface: add u2f trustkey t120 product id and fx series fido u2f devices - desktop interface: improve integration with xdg-desktop-portal - desktop interface: add desktop-file-ids plug attr to desktop interface - unity7 interface: support desktop-file-ids in desktop files rule generation - desktop-legacy interface: support desktop-file-ids in desktop files rule generation - desktop-legacy interface: grant access to gcin socket location - login-session-observe interface: allow introspection - custom-device interface: allow to explicitly identify matching device in udev tagging block - system-packages-doc interface: allow reading /usr/share/javascript - modem-manager interface: add new format of WWAN ports - pcscd interface: allow pcscd to read opensc.conf - cpu-control interface: add IRQ affinity control to cpu_control - opengl interface: add support for cuda workloads on Tegra iGPU in opengl interface- New upstream release 2.65.3 - Fix missing aux info from store on snap setup- New upstream release 2.65.2 - Bump squashfuse from version 0.5.0 to 0.5.2 (used in snapd deb only)- New upstream release 2.65.1 - Support building snapd using base Core22 (Snapcraft 8.x) - FIPS: support building FIPS complaint snapd variant that switches to FIPS mode when the system boots with FIPS enabled - AppArmor: update to latest 4.0.2 release - AppArmor: enable using ABI 4.0 from host parser - AppArmor: fix parser lookup - AppArmor: support AppArmor snippet priorities - AppArmor: allow reading cgroup memory.max file - AppArmor: allow using snap-exec coming from the snapd snap when starting a confined process with jailmode - AppArmor prompting (experimental): add checks for prompting support, include prompting status in system key, and restart snapd if prompting flag changes - AppArmor prompting (experimental): include prompt prefix in AppArmor rules if prompting is supported and enabled - AppArmor prompting (experimental): add common types, constraints, and mappings from AppArmor permissions to abstract permissions - AppArmor prompting (experimental): add path pattern parsing and matching - AppArmor prompting (experimental): add path pattern precedence based on specificity - AppArmor prompting (experimental): add packages to manage outstanding request prompts and rules - AppArmor prompting (experimental): add prompting API and notice types, which require snap-interfaces-requests-control interface - AppArmor prompting (experimental): feature flag can only be enabled if prompting is supported, handler service connected, and the service can be started - Registry views (experimental): rename from aspects to registries - Registry views (experimental): support reading registry views and setting/unsetting registry data using snapctl - Registry views (experimental): fetch and refresh registry assertions as needed - Registry views (experimental): restrict view paths from using a number as first character and view names to storage path style patterns - Snap components: support installing snaps and components from files at the same time (no REST API/CLI) - Snap components: support downloading components related assertions from the store - Snap components: support installing components from the store - Snap components: support removing components individually and during snap removal - Snap components: support kernel modules as components - Snap components: support for component install, pre-refresh and post-refresh hooks - Snap components: initial support for building systems that contain components - Refresh app awareness (experimental): add data field for /v2/changes REST API to allow associating each task with affected snaps - Refresh app awareness (experimental): use the app name from .desktop file in notifications - Refresh app awareness (experimental): give snap-refresh-observe interface access to /v2/snaps/{name} endpoint - Improve snap-confine compatibility with nvidia drivers - Allow re-exec when SNAP_REEXEC is set for unlisted distros to simplify testing - Allow mixing revision and channel on snap install - Generate GNU build ID for Go binaries - Add missing etelpmoc.sh for shell completion - Do not attempt to run snapd on classic when re-exec is disabled - Packaging/build maintenance for Debian sid, Fedora, Arch, openSuse - Add snap debug API command to enable running raw queries - Enable snap-confine snap mount directory detection - Replace global seccomp filter with deny rules in standard seccomp template - Remove support for Ubuntu Core Launcher (superseded by snap- confine) - Support creating pending serial bound users after serial assertion becomes available - Support disabling cloud-init using kernel command-line - In hybrid systems, apps can refresh without waiting for restarts required by essential snaps - Ship snap-debug-info.sh script used for system diagnostics - Improve error messages when attempting to run non-existent snap - Switch to -u UID:GID for strace-static - Support enabling snapd logging with snap set system debug.snapd.{log,log-level} - Add options system.coredump.enable and system.coredump.maxuse to support using systemd-coredump on Ubuntu Core - Provide documentation URL for 'snap interface ' - Fix snapd riscv64 build - Fix restarting activated services instead of their activator units (i.e. sockets, timers) - Fix potential unexpected auto-refresh of snap on managed schedule - Fix potential segfault by guarding against kernel command-line changes on classic system - Fix proxy entries in /etc/environment with missing newline that caused later manual entries to not be usable - Fix offline remodelling by ignoring prerequisites that will otherwise be downloaded from store - Fix devmode seccomp deny regression that caused spamming the log instead of actual denies - Fix snap lock leak during refresh - Fix not re-pinning validation sets that were already pinned when enforcing new validation sets - Fix handling of unexpected snapd runtime failure - Fix /v2/notices REST API skipping notices with duplicate timestamps - Fix comparing systemd versions that may contain pre-release suffixes - Fix udev potentially starting before snap-device-helper is made available - Fix race in snap seed metadata loading - Fix treating cloud-init exit status 2 as error - Fix to prevent sending refresh complete notification if snap snap- refresh-observe interface is connected - Fix to queue snapctl service commands if run from the default- configure hook to ensure they get up-to-date config values - Fix stop service failure when the service is not actually running anymore - Fix parsing /proc/PID/mounts with spaces - Add registry interface that provides snaps access to a particular registry view - Add snap-interfaces-requests-control interface to enable prompting client snaps - steam-support interface: remove all AppArmor and seccomp restrictions to improve user experience - opengl interface: improve compatibility with nvidia drivers - home interface: autoconnect home on Ubuntu Core Desktop - serial-port interface: support RPMsg tty - display-control interface: allow changing LVDS backlight power and brightness - power-control interface: support for battery charging thesholds, type/status and AC type/status - cpu-control interface: allow CPU C-state control - raw-usb interface: support RPi5 and Thinkpad x13s - custom-device interface: allow device file locking - lxd-support interface: allow LXD to self-manage its own cgroup - network-manager interface: support MPTCP sockets - network-control interface: allow plug/slot access to gnutls config and systemd resolved cache flushing via D-Bus - network-control interface: allow wpa_supplicant dbus api - gpio-control interface: support gpiochip* devices - polkit interface: fix "rw" mount option check - u2f-devices interface: enable additional security keys - desktop interface: enable kde theming support- New upstream release 2.65 - Support building snapd using base Core22 (Snapcraft 8.x) - FIPS: support building FIPS complaint snapd variant that switches to FIPS mode when the system boots with FIPS enabled - AppArmor: update to latest 4.0.2 release - AppArmor: enable using ABI 4.0 from host parser - AppArmor: fix parser lookup - AppArmor: support AppArmor snippet priorities - AppArmor: allow reading cgroup memory.max file - AppArmor: allow using snap-exec coming from the snapd snap when starting a confined process with jailmode - AppArmor prompting (experimental): add checks for prompting support, include prompting status in system key, and restart snapd if prompting flag changes - AppArmor prompting (experimental): include prompt prefix in AppArmor rules if prompting is supported and enabled - AppArmor prompting (experimental): add common types, constraints, and mappings from AppArmor permissions to abstract permissions - AppArmor prompting (experimental): add path pattern parsing and matching - AppArmor prompting (experimental): add path pattern precedence based on specificity - AppArmor prompting (experimental): add packages to manage outstanding request prompts and rules - AppArmor prompting (experimental): add prompting API and notice types, which require snap-interfaces-requests-control interface - AppArmor prompting (experimental): feature flag can only be enabled if prompting is supported, handler service connected, and the service can be started - Registry views (experimental): rename from aspects to registries - Registry views (experimental): support reading registry views and setting/unsetting registry data using snapctl - Registry views (experimental): fetch and refresh registry assertions as needed - Registry views (experimental): restrict view paths from using a number as first character and view names to storage path style patterns - Snap components: support installing snaps and components from files at the same time (no REST API/CLI) - Snap components: support downloading components related assertions from the store - Snap components: support installing components from the store - Snap components: support removing components individually and during snap removal - Snap components: support kernel modules as components - Snap components: support for component install, pre-refresh and post-refresh hooks - Snap components: initial support for building systems that contain components - Refresh app awareness (experimental): add data field for /v2/changes REST API to allow associating each task with affected snaps - Refresh app awareness (experimental): use the app name from .desktop file in notifications - Refresh app awareness (experimental): give snap-refresh-observe interface access to /v2/snaps/{name} endpoint - Improve snap-confine compatibility with nvidia drivers - Allow re-exec when SNAP_REEXEC is set for unlisted distros to simplify testing - Allow mixing revision and channel on snap install - Generate GNU build ID for Go binaries - Add missing etelpmoc.sh for shell completion - Do not attempt to run snapd on classic when re-exec is disabled - Packaging/build maintenance for Debian sid, Fedora, Arch, openSuse - Add snap debug API command to enable running raw queries - Enable snap-confine snap mount directory detection - Replace global seccomp filter with deny rules in standard seccomp template - Remove support for Ubuntu Core Launcher (superseded by snap- confine) - Support creating pending serial bound users after serial assertion becomes available - Support disabling cloud-init using kernel command-line - In hybrid systems, apps can refresh without waiting for restarts required by essential snaps - Ship snap-debug-info.sh script used for system diagnostics - Improve error messages when attempting to run non-existent snap - Switch to -u UID:GID for strace-static - Support enabling snapd logging with snap set system debug.snapd.{log,log-level} - Add options system.coredump.enable and system.coredump.maxuse to support using systemd-coredump on Ubuntu Core - Provide documentation URL for 'snap interface ' - Fix restarting activated services instead of their activator units (i.e. sockets, timers) - Fix potential unexpected auto-refresh of snap on managed schedule - Fix potential segfault by guarding against kernel command-line changes on classic system - Fix proxy entries in /etc/environment with missing newline that caused later manual entries to not be usable - Fix offline remodelling by ignoring prerequisites that will otherwise be downloaded from store - Fix devmode seccomp deny regression that caused spamming the log instead of actual denies - Fix snap lock leak during refresh - Fix not re-pinning validation sets that were already pinned when enforcing new validation sets - Fix handling of unexpected snapd runtime failure - Fix /v2/notices REST API skipping notices with duplicate timestamps - Fix comparing systemd versions that may contain pre-release suffixes - Fix udev potentially starting before snap-device-helper is made available - Fix race in snap seed metadata loading - Fix treating cloud-init exit status 2 as error - Fix to prevent sending refresh complete notification if snap snap- refresh-observe interface is connected - Fix to queue snapctl service commands if run from the default- configure hook to ensure they get up-to-date config values - Fix stop service failure when the service is not actually running anymore - Fix parsing /proc/PID/mounts with spaces - Add registry interface that provides snaps access to a particular registry view - Add snap-interfaces-requests-control interface to enable prompting client snaps - steam-support interface: remove all AppArmor and seccomp restrictions to improve user experience - opengl interface: improve compatibility with nvidia drivers - home interface: autoconnect home on Ubuntu Core Desktop - serial-port interface: support RPMsg tty - display-control interface: allow changing LVDS backlight power and brightness - power-control interface: support for battery charging thesholds, type/status and AC type/status - cpu-control interface: allow CPU C-state control - raw-usb interface: support RPi5 and Thinkpad x13s - custom-device interface: allow device file locking - lxd-support interface: allow LXD to self-manage its own cgroup - network-manager interface: support MPTCP sockets - network-control interface: allow plug/slot access to gnutls config and systemd resolved cache flushing via D-Bus - network-control interface: allow wpa_supplicant dbus api - gpio-control interface: support gpiochip* devices - polkit interface: fix "rw" mount option check - u2f-devices interface: enable additional security keys - desktop interface: enable kde theming support- convert license to SPDX- convert license to SPDX- New upstream release 2.64 - Support building snapd using base Core22 (Snapcraft 8.x) - FIPS: support building FIPS complaint snapd variant that switches to FIPS mode when the system boots with FIPS enabled - AppArmor: update to AppArmor 4.0.1 - AppArmor: support AppArmor snippet priorities - AppArmor prompting: add checks for prompting support, include prompting status in system key, and restart snapd if prompting flag changes - AppArmor prompting: include prompt prefix in AppArmor rules if prompting is supported and enabled - AppArmor prompting: add common types, constraints, and mappings from AppArmor permissions to abstract permissions - AppArmor prompting: add path pattern parsing and matching - Registry views (experimental): rename from aspects to registries - Registry views (experimental): support reading registry views using snapctl - Registry views (experimental): restrict view paths from using a number as first character and view names to storage path style patterns - Snap components: support installing snaps and components from files at the same time (no REST API/CLI) - Snap components: support downloading components related assertions from the store - Snap components: support installing components from the store (no REST API/CLI) - Snap components: support removing components (REST API, no CLI) - Snap components: started support for component hooks - Snap components: support kernel modules as components - Refresh app awareness (experimental): add data field for /v2/changes REST API to allow associating each task with affected snaps - Refresh app awareness (experimental): use the app name from .desktop file in notifications - Refresh app awareness (experimental): give snap-refresh-observe interface access to /v2/snaps/{name} endpoint - Allow re-exec when SNAP_REEXEC is set for unlisted distros to simplify testing - Generate GNU build ID for Go binaries - Add missing etelpmoc.sh for shell completion - Do not attempt to run snapd on classic when re-exec is disabled - Packaging/build maintenance for Debian sid, Fedora, Arch, openSuse - Add snap debug api command to enable running raw queries - Enable snap-confine snap mount directory detection - Replace global seccomp filter with deny rules in standard seccomp template - Remove support for Ubuntu Core Launcher (superseded by snap- confine) - Support creating pending serial bound users after serial assertion becomes available - Support disabling cloud-init using kernel command-line - In hybrid systems, apps can refresh without waiting for restarts required by essential snaps - Ship snap-debug-info.sh script used for system diagnostics - Improve error messages when attempting to run non-existent snap - Switch to -u UID:GID for strace-static - Support enabling snapd logging with snap set system debug.snapd.{log,log-level} - Fix restarting activated services instead of their activator units (i.e. sockets, timers) - Fix potential unexpected auto-refresh of snap on managed schedule - Fix potential segfault by guarding against kernel command-line changes on classic system - Fix proxy entries in /etc/environment with missing newline that caused later manual entries to not be usable - Fix offline remodelling by ignoring prerequisites that will otherwise be downloaded from store - Fix devmode seccomp deny regression that caused spamming the log instead of actual denies - Fix snap lock leak during refresh - Fix not re-pinning validation sets that were already pinned when enforcing new validation sets - Fix handling of unexpected snapd runtime failure - Fix /v2/notices REST API skipping notices with duplicate timestamps - Fix comparing systemd versions that may contain pre-release suffixes - Fix udev potentially starting before snap-device-helper is made available - Fix race in snap seed metadata loading - Fix treating cloud-init exit status 2 as error - Fix to prevent sending refresh complete notification if snap snap- refresh-observe interface is connected - Fix to queue snapctl service commands if run from the default- configure hook to ensure they get up-to-date config values - Fix stop service failure when the service is not actually running anymore - Add registry interface that provides snaps access to a particular registry view - steam-support interface: relaxed AppArmor and seccomp restrictions to improve user experience - home interface: autoconnect home on Ubuntu Core Desktop - serial-port interface: support RPMsg tty - display-control interface: allow changing LVDS backlight power and brightness - power-control interface: support for battery charging thesholds, type/status and AC type/status - cpu-control interface: allow CPU C-state control - raw-usb interface: support RPi5 and Thinkpad x13s - custom-device interface: allow device file locking - lxd-support interface: allow LXD to self-manage its own cgroup - network-manager interface: support MPTCP sockets - network-control interface: allow plug/slot access to gnutls config and systemd resolved cache flushing via D-Bus- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild- New upstream release 2.63 - Support for snap services to show the current status of user services (experimental) - Refresh app awareness: record snap-run-inhibit notice when starting app from snap that is busy with refresh (experimental) - Refresh app awareness: use warnings as fallback for desktop notifications (experimental) - Aspect based configuration: make request fields in the aspect- bundle's rules optional (experimental) - Aspect based configuration: make map keys conform to the same format as path sub-keys (experimental) - Aspect based configuration: make unset and set behaviour similar to configuration options (experimental) - Aspect based configuration: limit nesting level for setting value (experimental) - Components: use symlinks to point active snap component revisions - Components: add model assertion support for components - Components: fix to ensure local component installation always gets a new revision number - Add basic support for a CIFS remote filesystem-based home directory - Add support for AppArmor profile kill mode to avoid snap-confine error - Allow more than one interface to grant access to the same API endpoint or notice type - Allow all snapd service's control group processes to send systemd notifications to prevent warnings flooding the log - Enable not preseeded single boot install - Update secboot to handle new sbatlevel - Fix to not use cgroup for non-strict confined snaps (devmode, classic) - Fix two race conditions relating to freedesktop notifications - Fix missing tunables in snap-update-ns AppArmor template - Fix rejection of snapd snap udev command line by older host snap- device-helper - Rework seccomp allow/deny list - Clean up files removed by gadgets - Remove non-viable boot chains to avoid secboot failure - posix_mq interface: add support for missing time64 mqueue syscalls mq_timedreceive_time64 and mq_timedsend_time64 - password-manager-service interface: allow kwalletd version 6 - kubernetes-support interface: allow SOCK_SEQPACKET sockets - system-observe interface: allow listing systemd units and their properties - opengl interface: enable use of nvidia container toolkit CDI config generation- New upstream release 2.62 - Aspects based configuration schema support (experimental) - Refresh app awareness support for UI (experimental) - Support for user daemons by introducing new control switches --user/--system/--users for service start/stop/restart (experimental) - Add AppArmor prompting experimental flag (feature currently unsupported) - Installation of local snap components of type test - Packaging of components with snap pack - Expose experimental features supported/enabled in snapd REST API endpoint /v2/system-info - Support creating and removing recovery systems for use by factory reset - Enable API route for creating and removing recovery systems using /v2/systems with action create and /v2/systems/{label} with action remove - Lift requirements for fde-setup hook for single boot install - Enable single reboot gadget update for UC20+ - Allow core to be removed on classic systems - Support for remodeling on hybrid systems - Install desktop files on Ubuntu Core and update after snapd upgrade - Upgrade sandbox features to account for cgroup v2 device filtering - Support snaps to manage their own cgroups - Add support for AppArmor 4.0 unconfined profile mode - Add AppArmor based read access to /etc/default/keyboard - Upgrade to squashfuse 0.5.0 - Support useradd utility to enable removing Perl dependency for UC24+ - Support for recovery-chooser to use console-conf snap - Add support for --uid/--gid using strace-static - Add support for notices (from pebble) and expose via the snapd REST API endpoints /v2/notices and /v2/notice - Add polkit authentication for snapd REST API endpoints /v2/snaps/{snap}/conf and /v2/apps - Add refresh-inhibit field to snapd REST API endpoint /v2/snaps - Add refresh-inhibited select query to REST API endpoint /v2/snaps - Take into account validation sets during remodeling - Improve offline remodeling to use installed revisions of snaps to fulfill the remodel revision requirement - Add rpi configuration option sdtv_mode - When snapd snap is not installed, pin policy ABI to 4.0 or 3.0 if present on host - Fix gadget zero-sized disk mapping caused by not ignoring zero sized storage traits - Fix gadget install case where size of existing partition was not correctly taken into account - Fix trying to unmount early kernel mount if it does not exist - Fix restarting mount units on snapd start - Fix call to udev in preseed mode - Fix to ensure always setting up the device cgroup for base bare and core24+ - Fix not copying data from newly set homedirs on revision change - Fix leaving behind empty snap home directories after snap is removed (resulting in broken symlink) - Fix to avoid using libzstd from host by adding to snapd snap - Fix autorefresh to correctly handle forever refresh hold - Fix username regex allowed for system-user assertion to not allow '+' - Fix incorrect application icon for notification after autorefresh completion - Fix to restart mount units when changed - Fix to support AppArmor running under incus - Fix case of snap-update-ns dropping synthetic mounts due to failure to match desired mount dependencies - Fix parsing of base snap version to enable pre-seeding of Ubuntu Core Desktop - Fix packaging and tests for various distributions - Add remoteproc interface to allow developers to interact with Remote Processor Framework which enables snaps to load firmware to ARM Cortex microcontrollers - Add kernel-control interface to enable controlling the kernel firmware search path - Add nfs-mount interface to allow mounting of NFS shares - Add ros-opt-data interface to allow snaps to access the host /opt/ros/ paths - Add snap-refresh-observe interface that provides refresh-app- awareness clients access to relevant snapd API endpoints - steam-support interface: generalize Pressure Vessel root paths and allow access to driver information, features and container versions - steam-support interface: make implicit on Ubuntu Core Desktop - desktop interface: improved support for Ubuntu Core Desktop and limit autoconnection to implicit slots - cups-control interface: make autoconnect depend on presence of cupsd on host to ensure it works on classic systems - opengl interface: allow read access to /usr/share/nvidia - personal-files interface: extend to support automatic creation of missing parent directories in write paths - network-control interface: allow creating /run/resolveconf - network-setup-control and network-setup-observe interfaces: allow busctl bind as required for systemd 254+ - libvirt interface: allow r/w access to /run/libvirt/libvirt-sock- ro and read access to /var/lib/libvirt/dnsmasq/** - fwupd interface: allow access to IMPI devices (including locking of device nodes), sysfs attributes needed by amdgpu and the COD capsule update directory - uio interface: allow configuring UIO drivers from userspace libraries - serial-port interface: add support for NXP Layerscape SoC - lxd-support interface: add attribute enable-unconfined-mode to require LXD to opt-in to run unconfined - block-devices interface: add support for ZFS volumes - system-packages-doc interface: add support for reading jquery and sphinx documentation - system-packages-doc interface: workaround to prevent autoconnect failure for snaps using base bare - microceph-support interface: allow more types of block devices to be added as an OSD - mount-observe interface: allow read access to /proc/{pid}/task/{tid}/mounts and proc/{pid}/task/{tid}/mountinfo - polkit interface: changed to not be implicit on core because installing policy files is not possible - upower-observe interface: allow stats refresh - gpg-public-keys interface: allow creating lock file for certain gpg operations - shutdown interface: allow access to SetRebootParameter method - media-control interface: allow device file locking - u2f-devices interface: support for Trustkey G310H, JaCarta U2F, Kensington VeriMark Guard, RSA DS100, Google Titan v2- New upstream release 2.61.3 - Install systemd files in correct location for 24.04- New upstream release 2.61.2 - Fix to enable plug/slot sanitization for prepare-image - Fix panic when device-service.access=offline - Support offline remodeling - Allow offline update only remodels without serial - Fail early when remodeling to old model revision - Fix to enable plug/slot sanitization for validate-seed - Allow removal of core snap on classic systems - Fix network-control interface denial for file lock on /run/netns - Add well-known core24 snap-id - Fix remodel snap installation order - Prevent remodeling from UC18+ to UC16 - Fix cups auto-connect on classic with cups snap installed - u2f-devices interface support for GoTrust Idem Key with USB-C - Fix to restore services after unlink failure - Add libcudnn.so to Nvidia libraries - Fix skipping base snap download due to false snapd downgrade conflict- Rebuild for golang 1.22.0- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild- Changelog resynchronization- Require xdelta on Fedora or EPEL >= 9 (for delta updates)- New upstream release 2.61.1 - Stop requiring default provider snaps on image building and first boot if alternative providers are included and available - Fix auth.json access for login as non-root group ID - Fix incorrect remodelling conflict when changing track to older snapd version - Improved check-rerefresh message - Fix UC16/18 kernel/gadget update failure due volume mismatch with installed disk - Stop auto-import of assertions during install modes - Desktop interface exposes GetIdletime - Polkit interface support for new polkit versions - Fix not applying snapd snap changes in tracked channel when remodelling- New upstream release 2.61 - Fix control of activated services in 'snap start' and 'snap stop' - Correctly reflect activated services in 'snap services' - Disabled services are no longer enabled again when snap is refreshed - interfaces/builtin: added support for Token2 U2F keys - interfaces/u2f-devices: add Swissbit iShield Key - interfaces/builtin: update gpio apparmor to match pattern that contains multiple subdirectories under /sys/devices/platform - interfaces: add a polkit-agent interface - interfaces: add pcscd interface - Kernel command-line can now be edited in the gadget.yaml - Only track validation-sets in run-mode, fixes validation-set issues on first boot. - Added support for using store.access to disable access to snap store - Support for fat16 partition in gadget - Pre-seed authority delegation is now possible - Support new system-user name daemon - Several bug fixes and improvements around remodelling - Offline remodelling support- New upstream release 2.60.4 - i/b/qualcomm_ipc_router.go: switch to plug/slot and add socket permission - interfaces/builtin: fix custom-device udev KERNEL values - overlord: allow the firmware-updater snap to install user daemons - interfaces: allow loopback as a block-device- New upstream release 2.60.3 - i/b/shared-memory: handle "private" plug attribute in shared- memory interface correctly - i/apparmor: support for home.d tunables from /etc/- New upstream release 2.60.2 - i/builtin: allow directories in private /dev/shm - i/builtin: add read access to /proc/task/schedstat in system- observe - snap-bootstrap: print version information at startup - go.mod: update gopkg.in/yaml.v3 to v3.0.1 to fix CVE-2022-28948 - snap, store: filter out invalid snap edited links from store info and persisted state - o/configcore: write netplan defaults to 00-snapd-config on seeding - snapcraft.yaml: pull in apparmor_parser optimization patches from https://gitlab.com/apparmor/apparmor/-/merge_requests/711 - snap-confine: fix missing \0 after readlink - cmd/snap: hide append-integrity-data - interfaces/opengl: add support for ARM Mali- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild- New upstream release 2.60.1 - install: fallback to lazy unmount() in writeFilesystemContent - data: include "modprobe.d" and "modules-load.d" in preseeded blob - gadget: fix install test on armhf - interfaces: fix typo in network_manager_observe - sandbox/apparmor: don't let vendored apparmor conflict with system - gadget/update: set parts in laid out data from the ones matched - many: move SnapConfineAppArmorDir from dirs to sandbox/apparmor - many: stop using `-O no-expr-simplify` in apparmor_parser - go.mod: update secboot to latest uc22 branch- New upstream release 2.60 - Support for dynamic snapshot data exclusions - Apparmor userspace is vendored inside the snapd snap - Added a default-configure hook that exposes gadget default configuration options to snaps during first install before services are started - Allow install from initrd to speed up the initial installation for systems that do not have a install-device hook - New `snap sign --chain` flag that appends the account and account-key assertions - Support validation-sets in the model assertion - Support new "min-size" field in gadget.yaml - New interface: "userns"- New upstream release 2.59.5 - Explicitly disallow the use of ioctl + TIOCLINUX This fixes CVE-2023-1523.- New upstream release 2.59.4 - Retry when looking for disk label on non-UEFI systems (LP: #2018977) - Fix remodel from UC20 to UC22- New upstream release 2.59.3 - Fix quiet boot - i/b/physical_memory_observe: allow reading virt-phys page mappings - gadget: warn instead of returning error if overlapping with GPT header - overlord,wrappers: restart always enabled units - go.mod: update github.com/snapcore/secboot to latest uc22 - boot: make sure we update assets for the system-seed-null role - many: ignore case for vfat partitions when validating- New upstream release 2.59.2 - Notify users when a user triggered auto refresh finished- New upstream release 2.59.1 - Add udev rules from steam-devices to steam-support interface - Bugfixes for layout path checking, dm_crypt permissions, mount-control interface parameter checking, kernel commandline parsing, docker-support, refresh-app-awareness- New upstream release 2.59 - Support setting extra kernel command line parameters via snap configuration and under a gadget allow-list - Support for Full-Disk-Encryption using ICE - Support for arbitrary home dir locations via snap configuration - New nvidia-drivers-support interface - Support for udisks2 snap - Pre-download of snaps ready for refresh and automatic refresh of the snap when all apps are closed - New microovn interface - Support uboot with `CONFIG_SYS_REDUNDAND_ENV=n` - Make "snap-preseed --reset" re-exec when needed - Update the fwupd interface to support fully confined fwupd - The memory,cpu,thread quota options are no longer experimental - Support debugging snap client requests via the `SNAPD_CLIENT_DEBUG_HTTP` environment variable - Support ssh listen-address via snap configuration - Support for quotas on single services - prepare-image now takes into account snapd versions going into the image, including in the kernel initrd, to fetch supported assertion formats- Releate 2.58.3 to Fedora RHBZ#2173056- New upstream release 2.58.3 - interfaces/screen-inhibit-control: Add support for xfce-power- manager - interfaces/network-manager: do not show ptrace read denials - interfaces: relax rules for mount-control `what` for functionfs - cmd/snap-bootstrap: add support for snapd_system_disk - interfaces/modem-manager: add net_admin capability - interfaces/network-manager: add permission for OpenVPN - httputil: fix checking x509 certification error on go 1.20 - i/b/fwupd: allow reading host os-release - boot: on classic+modes `MarkBootSuccessfull` does not need a base - boot: do not include `base=` in modeenv for classic+modes installs - tests: add spread test that validates revert on boot for core does not happen on classic+modes - snapstate: only take boot participants into account in UpdateBootRevisions - snapstate: refactor UpdateBootRevisions() to make it easier to check for boot.SnapTypeParticipatesInBoot()- New upstream release 2.58.2 - bootloader: fix dirty build by hardcoding copyright year- New upstream release 2.58.1 - secboot: detect lockout mode in CheckTPMKeySealingSupported - cmd/snap-update-ns: prevent keeping unneeded mountpoints - o/snapstate: do not infinitely retry when an update fails during seeding - interfaces/modem-manager: add permissions for NETLINK_ROUTE - systemd/emulation.go: use `systemctl --root` to enable/disable - snap: provide more error context in `NotSnapError` - interfaces: add read access to /run for cryptsetup - boot: avoid reboot loop if there is a bad try kernel - devicestate: retry serial acquire on time based certificate errors - o/devicestate: run systemctl daemon-reload after install-device hook - cmd/snap,daemon: add 'held' to notes in 'snap list' - o/snapshotstate: check snapshots are self-contained on import - cmd/snap: show user+gating hold info in 'snap info' - daemon: expose user and gating holds at /v2/snaps/{name}- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild- Fix for RHBZ#2152903- New upstream release 2.58 - many: Use /tmp/snap-private-tmp for per-snap private tmps - data: Add systemd-tmpfiles configuration to create private tmp dir - cmd/snap: test allowed and forbidden refresh hold values - cmd/snap: be more consistent in --hold help and err messages - cmd/snap: error on refresh holds that are negative or too short - o/homedirs: make sure we do not write to /var on build time - image: make sure file customizations happen also when we have defaultscause - tests/fde-on-classic: set ubuntu-seed label in seed partitions - gadget: system-seed-null should also have fs label ubuntu-seed - many: gadget.HasRole, ubuntu-seed can come also from system-seed- null - o/devicestate: fix paths for retrieving recovery key on classic - cmd/snap-confine: do not discard const qualifier - interfaces: allow python3.10+ in the default template - o/restart: fix PendingForSystemRestart - interfaces: allow wayland slot snaps to access shm files created by Firefox - o/assertstate: add Sequence() to val set tracking - o/assertstate: set val set 'Current' to pinned sequence - tests: tweak the libvirt interface test to work on 22.10 - tests: use system-seed-null role on classic with modes tests - boot: add directory for data on install - o/devicestate: change some names from esp to seed/seed-null - gadget: add system-seed-null role - o/devicestate: really add error to new error message - restart,snapstate: implement reboot-required notifications on classic - many: avoid automatic system restarts on classic through new overlord/restart logic - release: Fix WSL detection in LXD - o/state: introduce WaitStatus - interfaces: Fix desktop interface rules for document portal - client: remove classic check for `snap recovery --show- keys` - many: create snapd.mounts targets to schedule mount units - image: enable sysfs overlay for UC preseeding - i/b/network-control: add permissions for using AF_XDP - i/apparmor: move mocking of home and overlay conditions to osutil - tests/main/degraded: ignore man-db update failures in CentOS - cmd/snap: fix panic when running snap w/ flag but w/o subcommand - tests: save snaps generated during image preaparation - tests: skip building snapd based on new env var - client: remove misleading comments in ValidateApplyOptions - boot/seal: add debug traces for bootchains - bootloader/assets: fix grub.cfg when there are no labels - cmd/snap: improve refresh hold's output - packaging: enable BPF in RHEL9 - packaging: do not traverse filesystems in postrm script - tests: get microk8s from another branch - bootloader: do not specify Core version in grub entry - many: refresh --hold follow-up - many: support refresh hold/unhold to API and CLI - many: expand fully handling links mapping in all components, in the API and in snap info - snap/system_usernames,tests: Azure IoT Edge system usernames - interface: Allow access to org.freedesktop.DBus.ListActivatableNames via system-observe interface - o/devicestate,daemon: use the expiration date from the assertion in user-state and REST api (user-removal 4/n) - gadget: add unit tests for new install functions for FDE on classic - cmd/snap-seccomp: fix typo in AF_XDP value - tests/connected-after-reboot-revert: run also on UC16 - kvm: allow read of AMD-SEV parameters - data: tweak apt integration config var - o/c/configcore: add faillock configuration - tests: use dbus-daemon instead of dbus-launch - packaging: remove unclean debian-sid patch - asserts: add keyword 'user-presence' keyword in system-user assertion (auto-removal 3/n) - interfaces: steam-support allow pivot /run/media and /etc/nvidia mount - aspects: initial code - overlord: process auto-import assertion at first boot - release, snapd-apparmor, syscheck: distinguish WSL1 and WSL2 - tests: fix lxd-mount-units in ubuntu kinetic - tests: new variable used to configure the kernel command line in nested tests - go.mod: update to newer secboot/uc22 branch - autopkgtests: fix running autopkgtest on kinetic - tests: remove squashfs leftovers in fakeinstaller - tests: create partition table in fakeinstaller - o/ifacestate: introduce DebugAutoConnectCheck hook - tests: use test-snapd-swtpm instead of swtpm-mvo snap in nested helper - interfaces/polkit: do not require polkit directory if no file is needed - o/snapstate: be consistent not creating per-snap save dirs for classic models - inhibit: use hintFile() - tests: use `snap prepare-image` in fde-on-classic mk-image.sh - interfaces: add microceph interface - seccomp: allow opening XDP sockets - interfaces: allow access to icon subdirectories - tests: add minimal-smoke test for UC22 and increase minimal RAM - overlord: introduce hold levels in the snapstate.Hold* API - o/devicestate: support mounting ubuntu-save also on classic with modes - interfaces: steam-support allow additional mounts - fakeinstaller: format SystemDetails result with %+v - cmd/libsnap-confine-private: do not panic on chmod failure - tests: ensure that fakeinstaller put the seed into the right place - many: add stub services for prompting - tests: add libfwupd and libfwupdplugin5 to openSUSE dependencies - o/snapstate: fix snaps-hold pruning/reset in the presence of system holding - many: add support for setting up encryption from installer - many: support classic snaps in the context of classic and extended models - cmd/snap,daemon: allow zero values from client to daemon for journal rate limit - boot,o/devicestate: extend HasFDESetupHook to consider unrelated kernels - cmd/snap: validation set refresh-enforce CLI support + spread test - many: fix filenames written in modeenv for base/gadget plus drive- by TODO - seed: fix seed test to use a pseudo-random byte sequence - cmd/snap-confine: remove setuid calls from cgroup init code - boot,o/devicestate: introduce and use MakeRunnableStandaloneSystem - devicestate,boot,tests: make `fakeinstaller` test work - store: send Snap-Device-Location header with cloud information - overlord: fix unit tests after merging master in - o/auth: move HasUserExpired into UserState and name it HasExpired, and add unit tests for this - o/auth: rename NewUserData to NewUserParams - many: implementation of finish install step handlers - overlord: auto-resolve validation set enforcement constraints - i/backends,o/ifacestate: cleanup backends.All - cmd/snap-confine: move bind-mount setup into separate function - tests/main/mount-ns: update namespace for 18.04 - o/state: Hold pseudo-error for explicit holding, concept of pending changes in prune logic - many: support extended classic models that omit kernel/gadget - data/selinux: allow snapd to detect WSL - overlord: add code to remove users that has an expiration date set - wrappers,snap/quota: clear LogsDirectory= in the service unit for journal namespaces - daemon: move user add, remove operations to overlord device state - gadget: implement write content from gadget information - {device,snap}state: fix ineffectual assignments - daemon: support validation set refresh+enforce in API - many: rename AddAffected* to RegisterAffected*, add Change|State.Has, fix a comment - many: reset store session when setting proxy.store - overlord/ifacestate: fix conflict detection of auto-connection - interfaces: added read/write access to /proc/self/coredump_filter for process-control - interfaces: add read access to /proc/cgroups and /proc/sys/vm/swappiness to system-observe - fde: run fde-reveal-key with `DefaultDependencies=no` - many: don't concatenate non-constant format strings - o/devicestate: fix non-compiling test - release, snapd-apparmor: fixed outdated WSL detection - many: add todos discussed in the review in tests/nested/manual/fde-on-classic, snapstate cleanups - overlord: run install-device hook during factory reset - i/b/mount-control: add optional `/` to umount rules - gadget/install: split Run in several functions - o/devicestate: refactor some methods as preparation for install steps implementation - tests: fix how snaps are cached in uc22 - tests/main/cgroup-tracking-failure: fix rare failure in Xenial and Bionic - many: make {Install,Initramfs}{{,Host},Writable}Dir a function - tests/nested/manual/core20: fix manual test after changes to 'tests.nested exec' - tests: move the unit tests system to 22.04 in github actions workflow - tests: fix nested errors uc20 - boot: rewrite switch in SnapTypeParticipatesInBoot() - gadget: refactor to allow usage from the installer - overlord/devicestate: support for mounting ubuntu-save before the install-device hook - many: allow to install/update kernels/gadgets on classic with modes - tests: fix issues related to dbus session and localtime in uc18 - many: support home dirs located deeper under /home - many: refactor tests to use explicit strings instead of boot.Install{Initramfs,Host}{Writable,FDEData}Dir - boot: add factory-reset cases for boot-flags - tests: disable quota tests on arm devices using ubuntu core - tests: fix unbound SPREAD_PATH variable on nested debug session - overlord: start turning restart into a full state manager - boot: apply boot logic also for classic with modes boot snaps - tests: fix snap-env test on debug section when no var files were created - overlord,daemon: allow returning errors when requesting a restart - interfaces: login-session-control: add further D-Bus interfaces - snapdenv: added wsl to userAgent - o/snapstate: support running multiple ops transactionally - store: use typed valset keys in store package - daemon: add `ensureStateSoon()` when calling systems POST api - gadget: add rules for validating classic with modes gadget.yaml files - wrappers: journal namespaces did not honor journal.persistent - many: stub devicestate.Install{Finish,SetupStorageEncryption}() - sandbox/cgroup: don't check V1 cgroup if V2 is active - seed: add support to load auto import assertion - tests: fix preseed tests for arm systems - include/lk: update LK recovery environment definition to include device lock state used by bootloader - daemon: return `storage-encryption` in /systems/