pacemaker-cts-2.0.1+20190417.13d370ca9-lp151.2.16.4<>, H8_g6/=„\-oފ! e C94uγ\ti%!}cᄖ0%z*b(|,QCꎷ  0w}QV0Ҳ= y'W}hYi5RbsI,Tjs̞buk?}&C8t,*^'3Y֖VG%!؝<8[ Qvip7YR%D`C5*^| (S RgGT_־$i["jP>A ? pd) 6 f  %@[ah< Z x $ ̉ HNU   ( 8 9#:/F9 G9HtIDX,Y0\X]^ @$ b Ac B]d Be Bf Bl Bu C v ~ w x ty <z      $ * lCpacemaker-cts2.0.1+20190417.13d370ca9lp151.2.16.4Test framework for cluster-related technologiesTest framework for cluster-related technologies like Pacemaker_g6goat13˳GopenSUSE Leap 15.1openSUSEGPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-laterhttp://bugs.opensuse.orgProductivity/Clustering/HAhttp://www.clusterlabs.orglinuxnoarch HK ~zujG00 0F m5].E!9y"p/JK 4 3.6.b*iIF.%: D68t'<YVy\ > [ %#'<99' 34&~%}@j@~s0 3;9b;| j9 @ $9 6/"A#.X,8-!N HJN ) }$d-  /?D(E1 !} nVNg dk Ln : UqJ; {< ! m  =5c3 P8D bYVO$y^z2&5!) 7[ _/R ^bC%>G1x'O)=u5bh#+!/ c : (8 2YM%%$!1Y/7h&"I+ _gB Q/Gc6ß&C^<$NFSRbn = agJ-;h4!?:A!_gqM'o{9y !1%nt1j('ԙ=`&%$w `]D= :L`M]l3AL % - {T %=.$w=+ h$*#o;J :pQxc @^. ~ 6{'G]= _1?. >_?W >#A=sw?j? .G0 g-L g-M :Ld}!j m4E%^C-=D 3=Dh.mfD g>:lc W= u o> k W=L g=B7b{0:~sk7ac7c=o ,,s#>  s5 qw  3}%OuJ!ޭ,=n3,bgCe2_  [+|R5cI?mG xY O &,GO$ NCJ( PfK)} }   r,coQ EO'(h'W"S "]/; "f/3 ` u a?  // L+U@]UI^-@/E X K[t!  M*.h*V 42__b&ÿc@t Jg#, tg#,2rc?  f^ 4ql t[+PFV" Y >&3sKI3 FJ [jIa . CF/ q+:Y#6n } %\C^= io )i M }gPXGcU=) , 9 D QzPAS 03~n[PG( J)J PS U y3NV ^tl K LBJ c T ^OY1S1DT:T:# \Ow?C% [wP){> P'"A`vm,CE$1eo22, 2$1;"&wd3v f;I % 'u @ Q;c49 2Õ U  `$ | PDJG&IK#'t:)' J?%^^ &<9h|.*@7 ċ_i$ D z >;Vk& B!+ y/v2 x2IB;-@ g M: zFv ~A;G3V]ԟc0W$3Yhp ,'_) qD{+%e"(& r"d u4 zu Y l +% C g2C" [#&S%S _%S;& \"b #']#M%"Er%`# ."b[ #?YKkTL: Rb i,d%= " h. %'a-, C #q^%S4 tT842se* (z]| Wb g$[ST 9/JC 9J%$1G;'w.wI}@(-B[s \{"rW" c9!F]Gd)% F~   Cx zss i.u-a -( V-Cѭ =5 ?$&7 JTL"Ay  96?/)e mC   R % yO T 4^4-.Py-w&_O 4&q9P;bT!.`)BZW 4zzQ. 4e2TFqAu3IVSD RIQz V7 ; 2]M!]4   3!V[C$$#$)&'.(gmfs,F^(.j$-*R  W L *+p4|B wJ {2g&?I 6A1! %ELA P + I 5 j XI u%j l6[{Eg  f$   OpYX v* n. 6 (: 3 9Y~{/kWG{:nE 6  4  3 /gT n<uhQmA (]X27pY j<jp _8aJW<b&iZXQ)" э tZ`#mZ*xk)gO -MX / 34Jq!nk%BAla  #^+}n j@.|" Ug> && !Q0,F 'l[WIQZ 1$J*})TJ' 4 ='8Q .E,COu!e\ qBGOW'"&%'%'+1 {Z9& ,;$Y5KcC & C  ) 6U),T(KMKY{"N )39 k Hv"dux q! ;Kh^wy%f7"L LJc1^N'QDT/#E ?* f?z i`"k )"" hv  v zv v M z { { n{ ~{,  | b %G %  % %m oc >k5#Gk%%)7K N4   b3e__ XU ^[ J_\eKN  L +@m4L!u-HTGHT  _$K U<N$1S^   )8F{ {! OcX g iiwJ w_, _W9 t89 Y:; XH9T'R: Y: ;=* iJ, hIX+(   3g' T h`a bc am Sb b clR T qS E39 GR1'  s;* qz$  , /-   G} F4  t G] =Rij kl jk k lS[ ] \g T|==|s8u  ) 299v9x')I8f_4)529Z )8t&K 9SIE X# I t`&N q9Bp|j } <8 /7y }4E| "D#4ho Ņ\,5UdE ' i _p)yZ!]= `) -uG#FTH4") |3{,} B+ tp!w( u*w i d-!oYbSg}, o (R-1.<"ԭ ,D yJ&MD }VPRA큤A큤A큤A큤A큤AA큤큤큤큤A큤_fb_fb_fb_@_@_@_@_@_@_@_@_@_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fo_fb_fb_@_@_@_@_@_@_g#\dh\dh_fc_fc_fb_fb_fb_fb_fb_fb_fb_fb_fc_fc_fc_fc_fc_fc_fb_fb_fb_fb_fb_fb_fb_fb_fb_fb_fb_fb_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fc_fc_fc_fc_fn_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fo_fn_fn_fc_fc_fc_fc_fc_fc_fm_fn_fn_fn_fc_fc_fc_fc_fc_fc_fm_fn_fc_fo_fc_fm_fn_fn_fo_fc_fn_fo_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fm_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fn_fm_fn_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fn_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fo_fc_fn_fc_fc_fc_fc_fn_fc_fm_fm_fn_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fm_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fn_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fo_fo_fm_fc_fn_fm_fc_fm_fc_fo_fo_fc_fn_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fn_fc_fc_fc_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fm_fo_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fn_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fm_fc_fc_fc_fc_fc_fn_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fc_fc_fc_fc_fc_fc_fc_fm_fc_fn_fc_fc_fc_fc_fn_fc_fc_fm_fc_fn_fc_fc_fo_fc_fn_fc_fc_fc_fc_fm_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fm_fn_fo_fc_fc_fc_fc_fc_fc_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fc_fc_fc_fc_fn_fc_fc_fn_fc_fn_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fn_fc_fc_fm_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fo_fn_fo_fn_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fo_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fn_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fo_fc_fo_fm_fn_fn_fc_fn_fm_fc_fc_fc_fb_fc_fc_fc_fc_fn_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fo_fm_fn_fn_fc_fc_fc_fb_fc_fc_fc_fc_fn_fn_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fm_fm_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fc_fc_fn_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fn_fc_fc_fc_fc_fm_fm_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fn_fm_fb_fc_fc_fn_fc_fb_fc_fc_fn_fo_fn_fn_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fo_fb_fc_fc_fc_fm_fm_fc_fc_fc_fc_fn_fc_fc_fc_fc_fo_fc_fc_fc_fc_fn_fc_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fn_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fn_fn_fo_fo_fc_fc_fc_fm_fc_fc_fm_fc_fm_fc_fc_fm_fm_fo_fc_fc_fm_fo_fn_fo_fo_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fn_fo_fm_fo_fc_fn_fn_fo_fc_fc_fm_fn_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fo_fo_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fn_fc_fc_fm_fm_fm_fo_fm_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fm_fm_fn_fn_fc_fn_fo_fb_fc_fc_fm_fn_fb_fc_fc_fm_fc_fb_fc_fc_fc_fc_fb_fc_fc_fn_fo_fn_fo_fc_fc_fc_fn_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fn_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fo_fc_fc_fc_fc_fm_fc_fc_fc_fc_fm_fc_fc_fm_fn_fo_fc_fc_fm_fo_fo_fc_fc_fo_fm_fn_fc_fc_fo_fm_fb_fc_fc_fc_fc_fo_fc_fc_fn_fn_fb_fc_fc_fo_fm_fb_fc_fc_fm_fn_fm_fc_fc_fn_fm_fo_fc_fc_fc_fc_fm_fc_fc_fo_fc_fo_fc_fc_fc_fc_fm_fc_fc_fc_fc_fo_fc_fc_fn_fm_fn_fc_fc_fc_fc_fm_fc_fc_fm_fn_fn_fc_fc_fn_fo_fn_fc_fc_fc_fc_fb_fc_fc_fn_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fm_fc_fc_fm_fn_fm_fm_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fm_fo_fm_fn_fc_fm_fm_fo_fn_fc_fo_fm_fm_fn_fc_fc_fc_fb_fc_fc_fo_fn_fn_fo_fc_fn_fm_fo_fn_fc_fn_fm_fo_fm_fc_fn_fm_fn_fm_fc_fm_fm_fo_fm_fc_fo_fo_fm_fn_fc_fn_fm_fm_fm_fc_fc_fc_fb_fc_fc_fm_fn_fn_fo_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fo_fn_fo_fn_fc_fc_fc_fb_fc_fc_fo_fc_fm_fo_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fn_fc_fc_fc_fc_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fm_fm_fb_fm_fc_fc_fc_fb_fc_fc_fc_fc_fn_fc_fc_fc_fc_fn_fc_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fm_fc_fo_fm_fn_fo_fc_fc_fc_fb_fc_fc_fo_fn_fo_fn_fc_fc_fc_fb_fc_fc_fm_fo_fm_fo_fc_fc_fc_fb_fc_fc_fm_fn_fb_fc_fc_fn_fn_fo_fc_fc_fc_fc_fn_fc_fc_fm_fm_fn_fn_fc_fm_fn_fn_fm_fc_fm_fo_fo_fn_fc_fm_fo_fn_fm_fc_fo_fn_fm_fm_fc_fm_fo_fn_fm_fc_fo_fm_fn_fo_fc_fc_fc_fn_fc_fc_fm_fm_fo_fn_fc_fm_fn_fm_fn_fc_fn_fm_fm_fn_fc_fc_fm_fo_fo_fc_fn_fo_fm_fo_fc_fo_fn_fm_fn_fc_fo_fo_fn_fo_fc_fn_fn_fm_fm_fc_fm_fm_fm_fm_fc_fc_fn_fn_fn_fc_fc_fc_fb_fc_fc_fn_fn_fn_fm_fc_fc_fc_fb_fc_fc_fm_fm_fo_fc_fc_fn_fn_fo_fc_fc_fc_fc_fn_fc_fc_fm_fn_fm_fo_fc_fm_fo_fn_fo_fc_fm_fm_fn_fn_fc_fn_fm_fn_fn_fc_fo_fo_fn_fo_fc_fo_fn_fn_fo_fc_fn_fn_fo_fm_fc_fc_fc_fn_fc_fc_fn_fm_fm_fo_fc_fn_fn_fm_fn_fc_fm_fn_fo_fn_fc_fc_fn_fn_fm_fc_fm_fo_fn_fn_fc_fm_fn_fn_fo_fc_fm_fm_fn_fm_fc_fo_fo_fo_fn_fc_fm_fn_fm_fm_fc_fc_fm_fm_fo_fc_fn_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fo_fo_fb_fc_fc_fn_fn_fn_fc_fc_fc_fc_fn_fc_fc_fm_fn_fm_fn_fc_fn_fn_fb_fc_fc_fc_fc_fo_fc_fc_fm_fm_fn_fm_fc_fn_fn_fo_fn_fc_fc_fc_fb_fc_fc_fm_fm_fo_fm_fc_fc_fc_fb_fc_fc_fo_fn_fm_fn_fc_fn_fn_fm_fo_fc_fm_fm_fn_fn_fc_fc_fm_fn_fn_fc_fm_fn_fm_fo_fc_fm_fo_fo_fm_fc_fc_fm_fn_fn_fc_fo_fm_fn_fn_fc_fo_fn_fo_fo_fc_fc_fn_fm_fn_fc_fc_fc_fb_fc_fc_fm_fm_fm_fn_fc_fc_fc_fm_fc_fc_fm_fn_fm_fc_fc_fo_fn_fn_fc_fc_fc_fc_fm_fc_fc_fn_fm_fm_fm_fc_fn_fo_fo_fn_fc_fo_fn_fo_fo_fc_fm_fo_fn_fm_fc_fm_fm_fm_fo_fc_fm_fn_fn_fo_fc_fn_fm_fm_fm_fc_fc_fc_fn_fc_fc_fm_fm_fm_fn_fc_fm_fn_fm_fo_fc_fm_fm_fn_fn_fc_fc_fm_fm_fo_fc_fn_fm_fm_fn_fc_fm_fm_fn_fn_fc_fm_fn_fn_fo_fc_fm_fm_fo_fn_fc_fm_fm_fm_fn_fc_fc_fn_fm_fm_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fm_fo_fm_fc_fc_fc_fc_fm_fc_fc_fn_fm_fo_fm_fc_fn_fm_fm_fo_fc_fc_fc_fb_fc_fc_fc_fn_fn_fm_fc_fn_fm_fo_fm_fc_fc_fc_fb_fc_fc_fc_fc_fn_fc_fc_fo_fn_fn_fn_fc_fm_fn_fm_fn_fc_fo_fo_fn_fm_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fn_fb_fc_fc_fo_fo_fm_fm_fc_fc_fc_fb_fc_fc_fm_fm_fb_fc_fc_fc_fc_fb_fc_fc_fc_fm_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fm_fc_fc_fc_fc_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fn_fm_fo_fc_fc_fc_fc_fb_fc_fc_fn_fc_fo_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc_fc_fb_fc_fc_fc8f72f08499ef4b924d342c29edf2106e28864f3b0725b9a31e7838bc1315d0def763056385e7f18ae32ff865ad0a131730057aab808e8acf8fa3d84f7c46e660011b48d0d5503817c91615fcb428e084652bc1f31077aa078a21a7a8bb4f8754d358eea46bc223838e3d855879a0d0fd734a0cc996a7479c824ec8e0dd30d95680b742085cb7552a243f98effb0409024917de347284fae4dac076c9365a7b7f1e5654995d89a73d2adbabe2da22cc19f5f73d69096a129e9fc0129fdcc1f6426cf1fcd439b7a41aa77794110d827625d77a6e9ef4c5afef5aaaccc6a7f086793092b0790a4af47b410031a76edefc01ca9ea3255f524f1a5a93d5cbd98d67c3560d7d8dd684bb7c2c9b3070d8df179ebd3414cf1d8449bebac4b72a4537509b6c18f67ed377c089fa11757bc188fec03d02d080a60b9d5c67a78a2e03a0eb97e69010f44378614f46a385a59b04af64464ab0ff4e238e9883f6924148a9201df43f977f8212bf96838935c2842e3f7e4215d1147e36f139d77337028344631f7f29a68f6036a5baf5fa76d1aeafdee17ae3f2de8bb31e23998524c5b7f4ef1d887144c6f0229138efa930e7a5c0d8a67cfee8e856ed650b102c2afa1f71e1efa408811bdc871fc4abcc6741c36afece29e2d3dc6dea459258e76441e442bedd208226a2fd83d9f477161c64236f170258b8dee8fb6643ea6c86c5e7afd01e5d878ef35542990b689b9f9b927b08950ade7190dc82357b740e6a5ab857d2132d6152e22b81c6b6428408394bad66bade70a697c1e026c776ddc359882d75ba7b8e0ed567d8c8041b28f8ec6118923c7077c5efeafe870d34fc50cab337c30857f67e922407a43b70c265b37ccb8325f58f922a4b16315d89ab80a1a35b607f2e427c34fe5d58d4ee45987d6836dbb34c1a5fe67b0324ff3846562faad97450bdc415768e42f545d25f7a4da9e14d9c6ed282cb1275dad294338d382fcbfa0dc1784a9d5a45d94f3214432ba2cc8e2b6b0c5e83389f4a22014c9191205869ef7310b1b70f2d8745afae1cba63c2123b71538e775998ef8794fba492cdb92e695461e387995c0230b3b1305b7026ad087ebe982ffe2dbb739e3cd1d0c061affa5fb5c41ed0e5634dc889d2d969dba369232eebda32981a7c7e5b5fac9b8300ffbd015cf7b28f517ba1c431d7254064c42cff9dca6526ae2f0601e378b833304849264a0098fd3dd4af29a5e7bd5280240a84c54d2790496c4035da3afc6e2d45cb5f4fe78a54ffb82430778f9a21572e6e955121924bad6d989f9d5e30f96c4122eb09d2d79bf1a488ee6209f75fc3145ebdcbec621ddda2a651f0ebcd4dba91b4e6e3619871111461be805fa227c909acd763a98f9794a7b49a4b1c5fa89d99425e7fee591342e60cdc941569a5640cc068d706094c53af1792cc7e2fa71b5532f6044d367fc97b71ca634ee375c6fdc8da9d2e7b9b0076eec372ceadaca0472d1692e89a98d4e81037401e9dee476e71cf634880c36b4e25a2adffc3427dc57e60d356c34e3c731290204bae8d7920585cf1b976487d646380f5cc1969e963595dd47ed5a66c25f7eb1ba68d74441c92c6ff1c4eb04b7d3a0cb94beb7de761d1fa4664822e7f3a30f7c73adcc67f87d5df6288cb285edfc4975d03053b292bb9b1db004250ec393fe89f33652cd787f167028cc73c8e81ece2c50c17f9a29365015a2293ce3fdf838b82b13984be03ae16c21f61506f6869641b9c1050898d43a7bd692b798959b1ff8d0b09dba653b92f928567f6056448004454fb40b5db8c90699ad383eae831229539008caca2247a507d1c0e4de122d1bacb6c827799332f357eb54ddc04b56dffa39f52ed3aca6c45da81bcc61448ad25f73fb8af00c4a3bc1a43756eec86a229bee3d24f56589f9bcf5499b86b1872c818bb9ea74dbca1b88e9c599075f241542dc22f4b8b8b720d78eb5294b1eb1b1ad540b1f65ba9fd37a78ec81300b395576fd6087dafeeea440cecc5494cd68462685783706e0ce3021a2841973b7f7a6e16b21fadbb822d585ddaecad129b9736c419a1c8c823c6c98f590ba48ab7f80ff8027f18e1cad9236f3730807c17c0f1a0864ad5eab0b74c38b5b7437fb9db17011dec74fb9d24cdef2eb9f342299b7275109a5c7196a0ed38db0e3ba64258cf5b50a2fac16c455e875a47a6636290f9272fe95a12f02d3e99630cb8fb9bdaa79a4972b36762ae77715ef4fe6b32addd42d8baa8855ce4112c881484bd61b9debce74de22166ec455537d3f53b2ac1cbe2cd5fcb9fa09573293955ac8cc9be05e5df80291b930a78c19562f3f8e64aac4e6d263706f7d362765adadafebc2b9e8308934331703d31fd9610c7c24a88874abf43d18c1504b92075e99a0524834cf1276f4bfb06c11578ce3efc571f045f06376bac6ae1e250fd15f0faa749164db5024830d48f6d47a29e28a6773105a973464d358a8c33d4426df4decfb8e2ed239a21b264461c323f00114458e956cdc343544df465a83bd69b12e0d906488e969527d50da99c8c00becfb3a82118fd596e59940c0738c3a600e2a019e93289564c1f4da4a2bf2c28d3d738e75c879cc570cf7216bf702f3f2f331f318341ade61c4bef8089e78367b08772bb04a45482cd459a421d954f1bde672734b7c980ce09520309b788fc75313885fd02dd3173591e125e4071ed5c6a4f7801b2c1e7e0988d6d95180e670c149334780b264ce156b719a270424e4b5f8c0cb3c30c626983d11dcdbcce6b590ae92e312320cab1dfc76257616c287cc2eb1fe51d4de0596d5fe34462933450bdb69f7116e28237cce7bafb992c08d817fc4795bf13ac9f09f506d0712dfa4c6a321c6961f319e897f0ebf1c943db0bcc911a3466fe3f9ff5343e765ca3ca7bf77ac9946daa4cbe68e8a8fba5a359ff70a7ee2131e678fa18ee0af5d580155edd85162119223b1967f0802cdc8081bae75bee8e8e7fd0d3f640801fe137b1238b06518b0067b7bffcdff04d9837ddae402c9475051aa163216be2b757572abf9d793560b52315a05c16b7fbc7fbcf6dde2fce59ed3935d14b16147d09bc38b3da9e7038dc0f85252ba6a103da44d5b983315a984cef7d78590f4ca622bd8be58401d20bc9cf04ceec81ed99ae4645664fed0afebcf28f184369e26744895888c5f2d72f2f0a0dce90135a0f2bd32b29286fbba11e5ce99e0f052d0a6e81973573b0909d35ad8c48f3457cf3fee53e351979ac20ca7f8c4828fa0e08e14a7b9a813ec4aeee342b1ab1a473e2a0b764dc388e44cdaf40b5e963c5ad9f58537062466207dcb9b59fded60b91298f31b996da5238b655c94a354a8a65e96419710667027b1aaa4f80d67c5750b70d2fbdb5beac1f76774401097e92879586f67cc54396f4d1712a65d9c844fa0447dea2078b8318274e362a390555fbd74b20dc2dfe0053879f515afa06256087b8f609c581edb9ac6fb753aa411e1d617fede08aa1aa15cdfbf4d55a4ef03a9ec9864c22df74b650012c2748a2113e367ae1505548789c6dcee478106ab6b92d11f0af290762556b1000fb1ee85716b309bab3e3c11d44e28759f0a74381cb0b8fef2019cdb7beb4af198e9710f981e66c41291742aea229f265eec3f98e83f67e4dfae5200b3d1bb2f55c41a3a64182f6a201c9c50966ca46d8698527410192ae7a4a60b95284f0dfd2fd67d738f582026bbd85317e24b48310d8ba81a5752e12ec3cf82a7f960efbd1da5fef979c3e1a7b423f551a96a6ca91f3a27c50d969ccc713b22abd54805740766ee163b3b90d8285ca11bba0aa55819a852867480ed040f7667a42130417b5eed0b26045e702ef68794108276aaa77a9c10c8a7aee1a2f1fc049cf14f6abd0b0b03bd800d6501e24b8f7623bd1bf7cdc48bb14d3dedeb8bf6e731de32b59f215ef03c5bcf6d0b64bb0ef55a55214ae7ea182c79434be16832a1538511d319f0913c915914ab0ffb770d862bef18d004335496f9d1214bad1ed92a1244e8c625d25153d9f655253b8a35805d2adad4da45fb8b90d9e7bbb105102b0ff320b503ccd81fc89411c43042961cb931da591d10cd162127464825dcadf7bec3eabdcd5ad3434f088835ccbd98821c49069567ac3b3da862da1e3da67ecef1fb3142c544f0cc5b6f788527c50c1015af96d30f47ac86ab2b68a54daaade3e2a68c07dc13c5529bdf217e3d09e997d79835b7c28ee9560d9148f8b7724ebec88b77e8026d9199e1a5c127ead7976b89d87d9c276aefce3e5466499a9edcfcb757b9bf33bb18d59ab35dc0d7de358a0a3e83ff9a974bf52f390dd9fdfd4029241345d9ea4f3cc60dc2428723b347a4d0186a8936bc0d5db68142c3e152abcebfa94f97ce59a209c279e743d4f205448914a7fc280b4a185354c1d5a601a637a7f3330030fdb08f0b73db6cb969fdca81cce5bad6e148eca40174099061f15c67a294abb11a42e07d1e7abd77b8b0582166415553f30964483a004c3ed53cbca960d9f96dbc9bb683dcdadd60253d45ab9c185236893bf05903df915a72acb72dfda096f972bb30873600d68a865dc0a82398f71be33ce3646f9187365d5e78f0908f592720e675a69745d274785bded1c65cb8aa31b4e07257a9c9af61cd1191c5afed6517e0a9a7e76bbe866cdaeef156989e7d376003d1d93325619eb21f25fe5c4aa43a5867060648d4b98faa86f57294c95c801d9bfcf90ba0d93550a65dfc03427618bbb68d3c50622dac5efcab6cac0d05e8e144ec8fe45e1a4542c11554b77c251c11caf58e4f5ba2600966db5768c2c033690a2ea4eb968746de9ae3666ff73f502e82981699dc1acd5999f127c71df2310475a306f59670c06d79f589d00e5fddebf21d5c7863060210f649bea2f3cb30d9ed20a691ab86c769dc3c6a568be68679668bae0e4254b2b847964587211fc1af3f14384b9432cc01d0a563a3ebc220e933526968e2346f2adf3a129dfb57314360513274aeed8f39b34112941ef3471cd6aff1b90b851a5e1831dce1c1878d1b1cf2ea35e8bed32a2ec088acce89c9f1479dac78268444c83d7fbaf84f8a04a7bf7066f92b465a7b8f0d42c305c35a96b63e9e6aea254be0d5367dd45431182fb6acdda85f9c4b730b92e3a75f30724894687d849186958bcaf2727a009af0f55ca99a98d76bdaf31b17487fc1192c92e237a1bbabcdba76383f3e7f53064679708bb2cd2711991666e59656402820ddab507464a1f1d4e74fce3cb80fdd71ab49b6ddae579f1603dc5ce43e760c7cc8465ace9e183f1e132fd9157fb4acc13a34dfc35b0fc28bf50cd0816484cb0959fbcdc31d3fa0895168240e8c981ae145a4504c0368dded273f81b4383ed38768e108f054c90612d4a70559085b341cf2effe8962f1e44c6aba9e0cae3a8549c4902f69f4ddcebe72bd49d16e7bec97c2b122ee3a6a29ee43843b9ea057b410e2996bf359b54760153b0ce8e47b7ce4a12998c6748002851b5f17d25586c5dc432c2a0a07fbedbdf0563747c612215579dfded12836a0cd7aceb008a2dfa481058d190074c74283b1ac0cb37e0166fff066b2cbc7cb38a1dbfe0088c47e321f4d09cacd40d8c59988705e5e463fd5677a12e48ebf5b24a69e7d67a6b94736aa11c5080e7f9df9a3a2142dba7e2536457519b0540de974cbce32990b9c36883e546ab4875f971b00a6b8b66a4d341fa513abb54c4e9b226829dcd7be2a7cfe876e993c55525b6d095940cac7f7bea228ed07fb98443fec6929b3f31c7c6612658655afb1b799ae878a43cb855807ac424bd3fddcc545d071ce6effe8c454c502b61a9753b991beb853bce4c8f1f97d155c3d2d78dac9b001593edc3883a1eb1918495b6b9210b5ad3a03254cce2257d408c3e03920a3673117761b98d705c3e243030e7a5d33430d2228e3232f4e5413033eee97bfd47714eb117f5a8df5f05c74616d4105666c9196fc56eb80a97427233664d358258c7d4f68c2e63500406e087c85bbd108d379e0b86c9204c6dc19ade6170f3a71c3bd4bfd9f901d7139caf0e8faa0100db4ecb6697989c4928d8cbd57c03c1f1641d06ba455c6d2af765b1d599c443391949a287ce1f62d73c8b830e6ee54ed8251500335161589a253acff9d8dd4c11f03bf6a7be39e45728938f47d3449370faf17f087f9bdb3633a89209ec1edf13e353da0eebbbb526e166a04d970a120f52230ad44c2de1636c240e063c4a4d094a35504ab2510b232c1b4d879aebb077d8fe3ea9fa83a12d00318d36857565c06a5a50c457c47f732408e67ff7f7c211fdcaadc82f4d46ab86266d78eb42275b8e227dbe0c3a31b1836b1f88e4d72d3130733cdde1bab7bbddedb0611e5cee42736ee76992424f2c7b2c86d3531cdbdc023ed3e8747ca34797140b0e8aa4c86390f7e137f044a053c00a74e66cbbd81dfe87f23f4cc3f1161ab70e27986fdbba41bc4a6cbb999def0edfe18cc1e83beae46352adb26e75e69b7b8698674d4b872a224873b52071be2f16cedf70ddcc9a707524dcdcca0bf7077c6f45bd3498d56d0be14415bc5eb8fbcf413510e5edc9ba6e201df6ee280332a772a3e027a5996ff16bb92e1b13c1133740e70a87af256b0f2dee76bf2a1de8778fe185830e1679f3c1b48505f8f433993624e68f5b4115175056b56c14e03b3448dc20a8acf0ebc126018c05979db0cf19be9e9ab73bb63480fef40a113a3af7e2176c1302c7b96a009fe0f542a2e062951044d9f3f3863cd12f77b47712593d0dfb30f22c83af180170248f9b59d6cdebd045b8cc4566925e2b892963e068ea394b765127fffa094af1522e98fe86be3fc421269423973828b4c8216d442b4f85a780809e7f61de81397366a8759563cfcbc215ee1e147df2af705195d4da955de48b62152f7c46f7bb1dd658b66419dfb1af46f3253a216c597265ed23db1d28625a7bf8904e727e1cf350d99236283499b81462ee24e93cd6b9ff925e5a8053c0dac817344764cc9773a2fbf2da18591e7c4e9efc536d170e4436c3e75df414513df452030aa4b3ff2e1eb323020bdc7ea7f3279cc9067aab56ad8de4c26ba10b3703996cb1842a0a87b3ba5a5aae393ebea4c86162f5dcb6dac1e7341af0d246377dd7717ca2a0a0060018cd766f4ca7bcaebdbf5db2b2be7638f02fc86f37f1d4b0cb424f6ab7c2ac53ff30eb67c417776155d713f7073ec1f9b32ba676fc0674feacbd4046ad2d2037ea648701d8623236c2545b181b80d4795f17d2386f93e69b0d05288ae4ab9e25e4eaf1401f185d15f2a90f8a987995b026990a91704f27d81e07d84819d78f2a709ef7625ecac80fcaf1b35eb0e5ec8cd3a0ac1a9a771a95e6bb970f40035a611e15129108c4f2e78701964246cb2dd0fb8bb2c8aab46c80c13543ef2c28c084f1ff05c62d8c779f2ffd9610656544020e9ed00f00ae8b88098e1075bab4e75cac4f58a1a7efb7d483b192dc2a51b48c17929aaf6561168d40ced5561ee801789f776592a3b7538ed15e5135ad03a52e17a288cf1cbc678f82a01f1903467f9ea776023691587b4224826b595ccce233ff694eceb9933eca454a56261f5161c917509edd429ec6b96f7c660c261cee8170199db8a1954fdea9d8a9f2f261e2595efbd2b07d98558ce6613f4b81a6201890cbff60197eb6534129ad9446dca10f77ad9151d9fcb2e51cddaffc8ef4a76413298e3a836a53ae8b68c3cf447b56141252ae56118217d325a99e39bca5b7af3ae2700f11a02ff3d2dd2acf8c903a481f604e27d9277a19337a4a3253ea0467cd28c757e4cc937b5cf178f666f27c35ef90e889a8292175099768a0ec443cd43323e5ed6739b734ca88116ac21d5f92b03c3d2dff934b650f7c5180b3ba0796b5a11f175233e52e766ce2ec86bc82ad11d278205a88b3a6e6e56238a6d90e31395683efd10a23644325b9f6a2c3fac9b9967edabc513f15b15f7f7d22e48e69d7afa8aff8fed09446d4ad0200a1d82a846467ea7eff631c1a69def587c6f0fe04a41b6ec247bf813e1bf68e4958f39ec6303955bf53171514c1e7f2be09d03b6714d4802ed1b32bd249adedc7450572ec7ebca20cfaf6fd83859c65ceb01f99a323a2fab3ed59d9a82f789e5d6188b3b3f3db93793cc2f7dbe56bbf65ff07b751cd0aa65cbdad96cd6f500ac33a4a29e6784f73c4dff79bcd7d25f1842361eafa89c8105ab20942872754f1b269831a47ee1026c02225a4d31cc6f843e9bfc01472a3f6053d6049108b84d543c0d208e200e751cc5a55b5e2dc3157179218055fb0d63fb9611d2dfc605ad72cdf9bd125ea4f45b175ca9a699398bea53b03bc52216c466182902da7b066bd00a406645c444a6270d3b0014a6550dc56be7459d1f789b7b93fe48637eba5edeab40c313dc198546996b3e1166dd4de3d8dc07fab846f84be195c8f350a5098add27ebd91ddd015a933bf7307ada7044ca5e99ec3c0d6bd33026cd221f51bbb45822f0cfe3df5637145a7a705c5f42e445239d6f754627941682f501eaf01414aef472033cd6ad2637da5817fea04efb367744131d78c651f545d96455191df0daef93c6073ea945819915ad8ae116f06600a9ac8f30ef4a2300f18f18db568699ef0e4ab1bac5ea85c4657a0ad69312ed6017454d6a5560ee12e8c6640ec9bb6b337de0ec1d14826fbe88b839fccc331d8340401b36158009d3290d07b55b2bb9bcabc9e962e0114d5211b5edf75df9c1c61f2762042fc7ee4e3df6d1300b46ba1c451ba9e5d0875a2ece42664e548d33205c8a8009d93382a4540aa542cb256bee564b54e09d64c63f368c979ec7462c94771e319793951fd7c74fa72f103e4e225f0cc7a634aeef3d4fc187ff52eb5f389f90a331236148031f4886d1320b3cb44d6c9b6a9bda873b645ca304c98f18230e39860444bad1e46cdf7c15ecda563b28f74776b0245a57d7cbb0d3598908af17333df44968ce75e578bdc8d6e4a6c0c4fc04958c7656d545f59a6b116a7ff5791df1b194bcbe67944e4ef129de91feae29fed04a052b021dadc5b42dc432a460f0c3abc7e97cbf11d66a6571f621799b6a95bf4bdff95d1f7f927b934de694133d73927d3e4f8dbbefa56a5b3ac9dca438dad0933eac0f26659aa937d3b60aa736fc3352d5758e63bf7b4b8ea5fd49d76e29557e42ccd6ac66735fa935668c5aa6a4762ec3a79d69438659f257a1e95ae15c5bcba0fd289059ed5512ff6c4527b4da93061e07ec5851d94b36c2733170b758f10aca3237a2702344b1f99334d05b0b7ee37183894562519f236913e4f7be95ded3cc5cbdd7e7210a8322c8682bed082f4e95b241d056a9d68311d545f157e6f5d31e15bed9849561d27005bf76ee937608beb81ea258112a49807685670dbaf4fbdf1253841f965b501af85b9fc006c3efad474dab8bf891e38f4dc91bca759114b36f0c52317b68dbbca74ff851564cd085e6fe71b590d2f360e57fa20e1e0f314ff537e792e6098ef640b336a6d8528e88c8d93c8d92a331d5cd65b5a0fa0614f6b761ffaf67d05de48fd222e36d4f4d1e37141cf2f842554f174f11ab33c27013a8b70390d8cd25153451293afa3ad4f356de4bf68cd7c74543ea813a43be7c0ecd8d34dedf5a44a3576f5c8170b4c903feeb40b2905e162191d17e3520585da219f67366ade0cdf2acba73d54377edf1dd253a6afc4f8b1d74dbff3987ab75d286d07ccb4a542e4c8ecb5061802cae22257031496dea5d03ef9b9b0516f6eff058da0141dda56165a01c22def0928bc99b610657cebfb94a05de74d9777fbd0a7acbeaee6cddef0802a760b253c9ada2d4dfa6f4a066f15c8ad165e0f974fab037cb671e4512a8c8a2bd1c42722a136d5317b04d9b2b9b1c9c5e75075b56a5ebc2802c0dbd67244c5637ecf2f6d134f85d3c1c43e2a1d5ac090eb819d9d8fd8d832c8aa384f312dbf492886b490bbaa2925b124a517cc571e747252e4492665dc54d031c39ecbd30432906062433dd9f592ebd60511ff6c29a0b747a55eab7d1735da48108bc2c7c64e319801fa938f31b0c7ad1e10522b3697d5793983f4052e0ee0f2a238253f8919b2bc9b18448d503d93b17f6c8d757d655feaddbfd3ac54805136bc45d6635c201b7921eccafced4d055024509d4710a51482818a710cc0debc835051782eb200d3b4bebc3796f7cae7a84603b6520794eed036a2d9bffc27046347dbb76a54c23102be59f37cf1091b0778dfe59607362760d7b24d4d8e0c3e40690a9c59fe1bc431208f48d4d340b4ef60952b53355b2fd4e190b12f1cf9ec73a27549f1fa154f1001c96fe5085456f20f3193be31d2079c4689a14f34436f5ccb4eb7ffdf8a45887b7eb3bc4154149fbc80fdb1ed1567c6a19119410ff4ce7b3b88fa52cb5c437de2851853f4b986a5007b566360e1a952f0ded36d1ac50f0e5bb18e2da32eb8d2c9ccaab0ee128562fd4c669dfc957ffebe0cb3a9b945a29b8791443520ed204cfb7deab9f41ae5ffed457a5530ad7521f68ba804d06346b8bcba8dd6fb529dcc86bee72105c15d27982f6853c46d53979bf8a6b6a524366ef9541808bfd334f89e3eecdc711e0733176b104ef8aaa410a366e313b0aca0b2df129777a6c392d04b72e2870ab1765c87a9870fa7bc84d9b910d53d1a90fa88ae577284954e1508e2d3aa6cd109945c5041869134b71811593913f0dceecef4c4118ee6b5323ecbf034672b587ebe3c047a05cd36b18075b6c34800fa815c1e35c779d1425c23f0a198bed7e319b21b0b570894835a347fce46b86fb81e0b487a3d04b0882dbaaa741a5bb2f5293e8d941f453082cea417c6ec7a775e569dbf09328ef0225dd66888ed1fa1f477ae729a6b72b8e3d4646f315d323a8a8e4c8857a2f84f1681b38fa072031de22f1a44832a987fc1a55114687d4c88d6d105681992574dd50a3d3e33fc349924508e4d53508d1ff2c2812a32e6bc39e3e22aaeeb949c59dc58a376de7c485dd5b73dec394a9c1ef8eba3aa9fbfab2a0ca99c7e58f82133469fa1322261d01b1f1142c5c9215c5cdd6497a9cf938ae3ef028f834ec21481bdba50c9143938bcdc59cc85cfbc392f95689fe98e0498527b2cae5be8b4367312d148e652274cd3c58b7369ea5e7db97a6e14f8e07f0d3116d5c9bad919f9a4f62c562f9895c2a9873e9ffd95a11c230d90c15b1f3d6eee89c9c765f50d449f48a554197a795a7f585765ac960ba552f1933e0fbdb866531674047ab3213a05ceb6b481d4871a0ee163ab9c38d38adb2798658964b972a6245f7e6a2d648b3f2ae5883fbce97d48ba0bc6c7a0d3ce18d3d73fb29b27efd7165803acece53d519eeee52b380f7095693c64f31cadc7fa2cd64723e26599b61292e01c1e2bb476318a6829f2ec34a29d339264b3f941b840c4c1cf9167d7d84a1add22fdb0cc74e5a1fb3a2707c5fd75c0436bb5b0839b1a492e59a7fa8dc9574461888a6d43b6c629dc9d31a9e0ae1ddf3bfc39a8022c76f1686442c9ce65eb063d229afa16f073b8a27cbcb6c2582ebc16238f5cab674f0c7ff788643e99b1523cb6e8bb0266efa091c7ac7d34c352b8638ba7847ff65fb2a09b8568ec4fd1f320e4bdaba9064656cd3f83d7efd2e5132519d01d08f40649d8695af04845c53ef26885b229a073e4bcadd2af595603906d0a208c91bb177c5d4368144d8f50ceb5c5426917a88aa63e1fe0be94cbb5b4550d8a948f7ae342773de5c9e47d733892ee024d9c6df18ed48fadcc0a8f400c7e2aa77297b320c510f650e91f5774109002c60fd457ba33ad9d0afb403f2f82b6f617cd2692256ed43148a0a5aecbb6429f6c4d559257b9bfa3edf61026f18b17dd63526a1256c76c3172a09355a8aff003b7db12d01c9f570f753630add20daa0473d3b6aac01b61e333f013c49682b12745d2d58ee8bdbe1f7c5c55f646da07b8662bd5a3d3b2f0a2b0b0de99d536635608df4450a6d590fbb915536d3eb19f566096619b31bbeb470001545a946f029ff89d5ff7b761c4a4d4de35eeb16c20f492acd8bb256efb2498e733af6b8e35da78f556a73eb1febf53b21bb391878909d6c112bbac02b03d973abb7d0d8b4e5cae2a1ed62966044400e0f5eacfbf2284520769c5f598edc4a732fae3f662d5f2c0234441e285e65b7b67bb2245dcf8a02ccf1deeac150b8f2c1d18b72901b196302355e1e9dfe80675b95431691cbccf5ce36f3e4c1c5d71d4810ad0de4222175d23f17445e8481a0987bef0a5336f8924018f0b2cc2c2e68f26ed6b8562c39f9ed752f1acf38b8946246beac550ee04d5eea566b20fad1084f9e01c3a661cf0edef479f09a98dbd0ebc878fd3520c77a275d75cb2ce8bbf43f3d4736d1a7f18b3e67c2845d234b003db4a250365fd98d6718eb9fcc6fb708ba61d486c3d6fd581a36d6ed64368936d428133e31f40fef0f20bf7adc0a73c63b708d71dd128801887f24fae7ea3d8a37b7146599cfcdf40e14757ace9c2ae0e721ff2a040e3f36b868afe117d2651c9d01474f9a63bf873093942b8b5f585a3b6eb10317f226476acf813b2bd65adf0de827c21108155ef9ff5de5030c954f49f9658dcff6e6e28c4799d889a051fca83a56bbde8228640c936564e9eea025a6d056db6f58c21dae0e754a23ff22006be1cf6a2f97273fb927b161de345dd97828a8bd886edc650ee3f0c7ca5d89e948419061486e74dd6cb90fd5fd1cf1d145f9c5c4ba2ee323a722d110a052fd6ef717c00cf7ba5ce748272c282ca64f7978d4794ba2bc2fbf6c079b22590444b7c3667ddf739ade9ae10cd75f77b1acad08c9cea36df2c8f2d2d66e243f6410401f1be594d2715bedd7458bf5f05c88b92ffe777b167263ac163a6e2e75a2c450a9bf19e40b4c680e25743a65257788f1407269077d29ff2a7bdcc191454cdfc863d558939ac74e8558931757b1b691e27f7528f1f71491923fe4c7759acfcaa5870c6a078e227d6ee39b66c8df6f921185014ba8a109db135ab9e586d5668e858c04e23085798f44c84b660af8a1725ac7491f9c2b47d1a4e002ea79a9432353e72a5247514d02475982eba87e64b6bb85c2e674f07445bef418ae0f33da4cadb8569acbda486ac05233632ad485d3c07ae435f9317bac8e7db266ffa2db868757c3e3552127a34a298f593468a33a2fa67a2fe63cdc413836ed64171659408598b4cf1b1c76f1f78b33d650cac1d8c13a2e93eb67eeb6510df2afd1aafae7fb1952a24ee60a3dfd0c1e3e2eab571cb60ebf9909fa553e82e5b3bdef0746c572d200fb63b7229a86a3c2f1e1ef66287f2c5a09b94968e7dda09fee82cc4ebf6b3d4c2deccfe787519e9f3acc71b1203d12457e9382d18d95d8f8938ee7b56462b372b5ec2dfd490f8c2d9d4c6ce9a1f07dd34a593de8ed427c02ceb20c875646b676686e38f618f158d0eed2d0ca8b0aa738b7828d9613dad3164cb2bca4e71da9b0c47cce1b0c2ec07c65e95b47b864ef66ceee3055c18df62bcab59876cfe041e0cba4435917c2c265de9959a9408de79a4631026e98e1cb057eee6b5c45de3d5be5154393d939220ad3a4154bbf76b4a42966213507f16093cdc19c9104fe6fc443381a6fa5dd0801f7d214fa0f37149e7e408fd55a148b5d574c49061e44a19044aac870d47efc9a2aa4feb8584cebeb6fd4e5adc334089aae7a53c591681b69e0b54797841f132260d8eb54f94d77753368770efcf8d043608336090c325165c4f767be69948a2f178f29898db950af2e73a5b4f463609b32f766b87f5907227ec6828f54e2a01d4cd62b318fe1095bebd97646bd93188892cc0eaba22202c696656cc962b616e33d54cf10c687ae2b317f19fa2f825756b7acc15850ae5a0b34e565d74b245ba4a803e4d7aa4e675a1999a661bb34df9476a3093352a93392195ad88e46d2779e3abdeedf260ab44b18fe0e10548a36fb62d3a76863c5371fd5493de84b8f976478ebaef8ffa44dc6f516968e23ab84b214b52a2b0ec66e463c8a176311ea91f7ce1011c09ca61449ab9f6a12e88f13c95ca8a01088f0cbf6eeadef587fc0b5e01a138d17323b18618be5d638b2496152dc4dce20c991017bbe911845e01412809234ecbb031b309a64167e27764a2b95364809e65e260fbdcf58c73b2ba87c4056cb5853cb2f17d7627fadfbc9438f7a05ea3bbeba892ee7abc55faff6af25375a864d351ece474f0d7707990982ce3a4b2411f3db24d99bd187d55afabc2ce919a442a81841bae267bfae0608fc938fba1c5d271c781783f91554b7882864410df470ecb60b93341d32c1072dc24561f030d9c157217f57bf592c185d9a63b9da96e5ed88ea367f7c506b14440bf8e67a2bee447005864b50930cfd97b78d94ad3d2d94e98377ebe56e3d5bd94f086abb324d24df8344e7bb1ea5159dd3f055a28b464bbb6be672d883be63401116e2161518cb767f44fd872a055599f0a12b2afcc9d125e9c1a34dd9913ee00fc98f878299e48337dd07d42d3d5f855e9db0584be43ab43d7dd5939ad9a35b107ca644e109a4baf90a9a5ffd6b268764bf75eb3b680a4ba890062b35822a58158cab96d169a6801821178bbcd6df9915ddf641bb6c4b040b0dec3f89887a9db23919990d619ec8a2bb444c3d53590f4452f0374e9f00fd7fee165af0b43a4383a8d3fb88d449ce710d89b4004cb2471fc43b563662ea1a4ac1ed2177b73ac23fa217f9579333c6744d684ffaf70720ca7b915e4d545ec5b1ef71c3e354f4e87600af23997534a92909a4de9d0e72c3d1d515f96f800acd0fddb82d201a8004f9bc40b46e187d1874c309edd8c9e8b2f2b9acb5383f5bc202173cd393ff1a930a93248c42dbbe0b08698b143c841fad4229b64292ac29ea87069ac8da568a19a8a925bd34b5a186dc6a9e33daa7464ad0875d7e5c4e4107f3b961bd043a942a6de4000e2f48aae37b18b84fb14f062af6fb66ea34d27338672555177e95c3e078f771c8fc85d1c654919768cbfa06e5c645f7cb8b6294f6536bb405d2203c1fdc2d618356dc74e4f578c3275fe4cea56aa9690bb2c48dd8c4f4df764eca7866876965844d299bca8b9a7d60d670c67a942929e7a0c2529b27f4e7f3efc4d98fcd0f1f6013eef84bb56c10dfd2814e04391a1a3bac0edbadc074899596bd2ade7d28e297a6decfdf23430c7734d7dc6bf3795ff946b5b6de793799751a992fb28d0047cbcfbb17dc02d56113be97f721d8b291e07162dfe851fa636cd638cb10f2d16abfbf854be488df24f614eecb58d3f7d5f2111c8e7bf1fa90628c54fe066dd9b47f68fa021c5ef4babd555bfcc94328aab3a391fa4e47dfd9ed0821f047374c49faf225231a9f88c372de37e16531b9b385c85e899fac04b0ad2fbc7c80244b88d5d9353e3840812747ffc12ae4486aefceddcab64b8eb2ed2703369186dd2b62ffb8039e4d17d62cc53de1eb72d92d379ed56e371e9d0fc4aad442bff2a1a2d737637cffb74a901eff3c60755eee72a7bc4fdb6146d4e624c6ccacdf85a9e5ddbb1c0dfa7731daff2dfb697c1812df112c4c4b380c6ff8320a384ce277b22b77fffdc68755b3b089c977a08f560390a89950e7b8feaf130468debff0bae47de69679a9e20a1235dbb8194156aecc1e0edc4729cf961dd84e60c967d8822878077986ab2d0a937ce4df7a24b86b72b6a64942e85244ffa70fae505972c1bdc63ed442a266c09f79a9982495625a4b9bc33590b5eb699903fa9bf012c20d06160988d956a485d8d11f000cbacb54e32183ad40585ab26bc39ae55e6bf101b5aec76baf95021d51251188cf0cbd2e4d32bf00b741b1fd1777c2aa47855f578f4f9dd61ef55d334d529376e9af55380a74b891552c4461dc2462f82c1832cb953585713d62ff598b7028fda11ccbf5cf58c3803bf12e2914c1b18ce89ac53414fbec732a7b72d4984331ce22bfe36d568b0c079fac00f07c91e569f7582fb4fef8e43612da83667ee849587b1eccf62d9d59c624072c24665924ceb2fc8eb3e8f40c48d3cd1bd3c0f9ed0f21241da4cb5dd6f7cefa3461c1a73f699464c1615a4b84b59c1562365fd9128e1e9e88c413259e1e175add754c16b54c63210bb7980a405cbd7c335f635b6c2b1b4a31e76539582a603b900644e1f12efd92b33a2b6e5f93204e2e3edef5e288f57737d041e37ba4c98d78133e5dcef63b1661a78e6ae9ff9aa3ff6d324c9a7681c86671c0733d1fa4f010f49b15c6e27da8529ab4ee5de17483fbddd8a463b13bc2e751ff65a480a04749725bcf4323f6a248af69f9010db1b915ffee2a08d01611075a5e6629fe2295ff8e21aabbe56b2ae57116a50f91a4d6bc0978c1b5d15049d00be09e9d50bccf75fcdb797f7b556ef65166088c27963f95fd0635ecd8ebbe42ef3f5eee826e1fff77cb726f7c6db18aa02c75753a790c9d4bf48b9073f1efd5d2e894f7eeef9cee42426da7986b498e1ea6656ffcac19f24ea0e449368fdd3b42fa3d532db29c1f4b5aeacddecca51ccc503e1a859f36826e65dce076263c39167d948846e1762f4b1ef02790bf7f3e015128e43cdb0df1f343665e4fd16ec15186b0519598876daafb526b0ded3ce67c431d04d5dbc8ffc73a0c53498a9696afdc57b745911adb6d9cd08ee1d5854189daff91a20fa7cacdf3ec7a93dbca0538da8aa97932e02ce01843d358515d099274c4631cb3c39d8246b4e5306f15a1b68b63767c57f5bff6d5898bc722b76488ed761e70dc22759c352af3fa28a7136c710c5353b1cf23b478c89144a2ac6b2cbc5647519cbc8462bf190a8acb1131d369b0aa57f503677a2c1fd7c3cefeaa668d62e23f9063880786f766037a85c40d056540d48761947a63c3d71f28f276ed82e3dfabe2159fe3de70f1b5473261c8cacd810c5040f9b24e88686deb7ad31b3e2e05dc308ded77cab8c73080f3ece8179259ba6a0ef7a07276abd17ce052640e325ba94160c830a7d92ff6b28bc448c7ff868d133664d4cf2f9efa32a2b6c186e21cbd591e63a12ff7d8af7182aeaa3c8ad6d0d571060448cc8cee8034d382a266ebde319a2a8ca747c7405bfe92fb9e518a591b796238028b67b6e154806c928e6b073c1022c0517e77ee7f80b28f7d8725c3965a5be784fd91b40923662fe796690a77b9a20c093eb1d596e4d732a5fd2f62e603afa02ce3e0a6f3214e814992943cf5c26f6af988ce6ba674feea51554c55efd3bc738c25e6e675c6681d8e27194c18fea8a60c9ce575d1112dca13f81774246a3f8b289f60aa8e93bc04633a371751e61d98a95498fe1bdec6723a01d2ab30ac9f518410fc62cb7c239f9a00b32c06636ffe0b654404d6b277aabd52890a36e0cec56aaafea12a6aff50e27eede11c4a45849ca083799433e1ec16ebacbba4e9e70439a790e93c0eb71c3f2ba120672c378f8d6b6d1df3201787fb0416d24da86c8721dd28cfacce9f26e96bc4f1c7c324055f3e47720c369f9158a4fc3117fa156b2113e0b237669f6a3a346465baeb786d6523f8266b9227b2d4b03c20031ffda49e6fc5316343b33fcc4fecc30d8fe2978ef5c1d285e3c1f173cdcb620384be6353da06495724d2368a23d0d687325135079e9bc715946aeed6f4c39aced593d03f68e59679b4fa012b3cab8371c04ae3e7a8a61397c2ee27efad5dbc381b06eca6474ff54f287ff25041dc676b06a8f0ac18b7d0c0a36ee1877a168e0518df95161a3dbc862b69378052000f5a9ccf7cf0cefecaff6a87799a931522fecb29ca32c9d26f1b4b1ea4c1be51c8e053d1651ef8c42b6181daccd768fcab1ed967d0b3c36412d5b63d9baac078d6aead1a42440fcaeac379bf8229891f156f714debf8eba45e11d8cfee0bae000f88da19d38fd272e4e34a6a677c03af828ba7ee89efcd99c0028df7dc2ee74052c7711480dd0883f817cee52e0fd2b7e51c273428bc8132ea3f53eeff2744bdf57b77bc7c24f02c0ecf599d1c51a5bc6b26fb4b9ec27d1515c0c73b38d7045c20ecf5a039c6a8ec059acc1ff99bb304d16e4404019f7e6cfbb560e3e9ddb55760f36ab979af1c9db59ea8a91e69b82040ff5ccdab4f7470e47ad42e2005cbe0f33719fe6eed978796d82a200e60eaf2554387ca71db2bd31556a7d5f64057bdaeab328184747920b2af991c87bcdd066c582882f1463a6d4114f3648282de8bdeb2a2c78357472dc480562548a53518988931dbeb3405d635147361f53ae97057fa72b9d07f47551a14bbaebf08a2de1d8c892462f636a7caa09bd0b8f47887b44b15c7723acdede6eabb5b31d33a1e981ec7346742a2c8a62763c806148d3a67f456f8527a1a59ec5b7aad260b96622eb6e442257a495562885d3846249a9872fee494a44e899f02bbd715df2ccdc242956c26cf9b0f6836fceec814ec64da6644714e022558d6be832baca5c0abca6c69e5f78026211390b37379586aa10ecc92db6ada7ae9bab31407dd247932dc18ce6c5665e444369a23b48e6e1d1cd9ebbbe61634d4e93ca657d791c321889e55e36a035788103c3080ed2d3fda61c78c8eb2fad87d5786aaac416f1a2f4cef265089c48e8590d71299424803154c1cb67018d7866119ab0e65b78dd7c34b448b0662fe21f9197829adf0f61a26eb3723521cc36381f9ba0b5c42aa58ad97d1934b2edf00509f5a3b6d80e57d9b375784e35bf3464010470d426f188e4bc3de8d7026812cd24b205a13fa14ffae2d17b69f6e62b088b695cca2948a7e7a469ebe3e1d4f3e7dcccdb67af8239308deb8bcd46f414fa97ed193f401e0170ce924cad5638bcac3f51eb55fdcdaf82c6de25fc879deefe0e106be6df385747ad0f2aca112c2901e0ada835bc71a21437062dcbe5e13f61a502f38ad0c9a7f0e1564796e8bc580c729100595bd3f352f51ba792443692f74911fefa22d72dbacb28a29426862bd40a926ec15bea7cbfbc0b3ce72ab117231807400db37b3c0a4addf0ef9eec329f9671629e56f297d6985d067d6bbe7bf72fb7871ea0117a8940c1fbc484f7e34460f91c8be6aa936133b067e3daf900a946db3bb13860f4eb6dce01ac82814fcb078eb0ba9610d00f6b13b2750d81a7f3b54eef8e1aa28739fdfc9f8e6d144db913f8e88103b26450204e1d028436d3879fd435b2fe28d04893c8661f7865f181e2311790f5f81ef9551c2ba0d1d22493704f13266c844b07eb80d40b8407d2bbbcc17cd2af535a28af3d62835087650287e27b81abb02d55e483d188590bffb46a3cdcee05e7751cb2d9ad71c3401add298b291dff7fce84eb6341e2f365e3decab37fa077d25564383d05ae6cc0d9129471467ef76bcb032beadb345494bffcba278315e75adcc72144ce8f283f5f479916126449931461c98dbcd229e06ea2e972f9c08347afc849a40360863765316ce8fc06288a655b8dc6958bac93eeb043344fa6dc1f4078d850ac7cf034559105df46bb461171ca2048d1b81e7bc8b251c88ee178aea4a50f145c00a81565b5799a6f28ebda9977190764c834c4bbabd00f850190cfc7bd31de9cb6e0acbfcf94ecd37050a79a0ed761ed6f129b46b2658d5ed7207afbe8e340e84f5bb36009fc857facbdaae4c3095e8ad68f72d72efc7fb609184a0d1b5e1dc834eccef12acf531b4a7b5949fa8291e1bb132a0a89f4faa7745e410a450929e3b4a40632b8fe865b3175f3b752dec32a1afde459954fc6f741515844994886c11156e72807bf85bbb171b623a5d94f51b57d2be82921ac6d1612f7ca0ae0151bc9931bb1fcb67ed2584d5446cef43d75930a5d0bdb987a3d6db353fa12ea3ba567dd8700051fc201116f821771310c7b3c9cbff7cb2601ef93336a57d6143fa5f4c1be977763793c29647f213f4c240a5050387bddce30dc0abe7bf4f22f24b75893958fdce22ce511dd1a33f315c1701ee388dd554e7ef3b70df853eb4dcdbb833839746c2196a94da6034f778a0613645ef484570a594dbe50812303e16ed584b286878ad2f8bdb8ef8da7aab64208e365551a09513bd567fc4735b712166f800ffb1b134acdf3315363d5e38ef6caa5dd07f6416f608291a2f0a9990c73288cea29789c5cbfbae15dad176957640084cc3dbd7e1c5739a6aa3413ea8f4620388dc5e4f1c6d0cfbaf40a13ac662eeadb8f0e5267e9b5d6db0f56826b2102c882880cf03676201efd803d3245fd0693d6d2f1fb97eb6c965f8cf2c2b351d936cd3504f2bc220db5e98cbdfeb9197032bed06f1f37d3a57ea6e708e11143e8a250c667dcce0ad6cb0a982814a2f0aa36e331d43f48c313e205cdc20619f01f60f82ee2a48cf156e1ada9402a78c2522c7b59bc65a99e7b9843f32026914c7bbf2dfa883908c665ea2ca2948b62594c1fb794eefcb58ce61c3f515fbc3d05d99025633a658574ea0c1a5d4a704165b2ad8ee6213b99398c15476948cc4820e5825a7783939a9d5c7f8fe356e889c97e0ebded32909351923ee009f9c17c8f88010ba6b5ed51aaf9f79dc1cc1b338bbb621553d530693a55ef103a5fa5d1efdca4a8c362bfd48fc04e45898d5012b310644014bbd157ec75603ed0a11888e0429af6647e599f5717572e869220e4df9d77a2af35eae84c42c3992fdde35b8c0f558aa2b8a85b5cb71397e6fb01bb4238983a6b660b4b47f6d22ebe7dc244b6901804426348acd23a4bf37c11dc5a7f5b92e3eb7059bea5f00c934c9bbd8bd6d4153ea5365fc5335ac7c4f20ef2c0a0e47ad0af94533389ff23783b33470a8dc95ee45c9242736be7fd96e885f9290969bc1661d991f876fa11bc3133a252cae72add60217a335bb690dc2a40ba7a96e39826d5a7a015b7969b4a722b7e3ceeca3dd61ff8a8b68ebf6d4ded4caeb77d26739d53f1510963c66efa89d060d8270e2b8e34a167cdcebb7186f6047cb7d80e5703c1bc33bb797d51c25bf85079a2dbf158686d5a70da0dfe954ce054a35a728787427e281018a65b6fecf5917e7ae7a16f5eb1d6b808f11e7f34095fe189efae5ea618f03f8b92a6ab5669de3dd6cb98987db6ba9ac355550786dbdf3a5165ddb739948cbec78b4398672eab3a927e14ebcc50dc3ac75f281c8bf2d6677c4435e377cee687c41c5bcbe02914d1200bf2f5c8a4fd03685ded638fb369cb745f5a2adff70f4d8059c1b455078614630c49eac78531c0c89fb056d34a50c315d253eef8b4385cbc1f264a4e12ef1a985bd24e3f25e09b98c1d37a29b8e53fcba5e31ccfcb09dcbc1bc471cee6e849b2f05c1864d1d8ce659196cddf97c11ed63a20abd15b39fe7ae19023b31eec44cfa623098da23f7b8469f156ab9811f18cbbd80686a0334dff88b3beca40a2016bc6adb2cc5443aea9c38360408e5163899744f9173e5770978830f93261ff8ae00a1c23912877cebe2c606b45948b167c4cff746dfd9b1d8c461039251265bbea906d7d0a70b4ebcd2ba047589dee8edb8b5986a97049bbd72f78798f7991f2ee3d74c31306c41673768ba10d03f6f4754fa2331a973c75aeedf35f1864621c6f9352ed976d10a022e2cd18a1cfafdebd652f694dd013a2187bc0dc1625c4db6f9203ea3e1ecc3b89bd8bc6b93dffeeb541a57968729d3948ed5d494e37bd8ca1c4759e15eadbfb81f09cc004239a8aa80c5525d6e0ebe8739bcdb8206a4ca6781e324813eb8005d8f0ef0e687928eb7cf0005922aad59e1127695cad6efedc02b6135005891c57846272a95f2d4a476febce300a48aabac989d3fb409aa912aa5626e110c4cc0880823292e89db545d870618b550ad2275a1080a33a9d1ed9bc566f3fdc45c1d17c865fa85ca128f87befb8b970e44ee295ad18b22b89bf834c13982b493af9c006b6a08b7a776c999974fdf3c363d2d9a7e437c6b0f73c7198c08d3eeeb25c8ce082753cfe911605262715356a4ebe9292eb611d8358b3e388df462870659b7ece89ead2e2e4cc8427697b5c0c5e91e147d55791d3006138eeca31c327904f6b83b64ef83f3f83590d9bad739018e3189042ceee05e5ce639d93494d519b0d36b1fcb09b05367a7619edf4e1902d7d2d79d648d8128343d6e515538f67ba02f335d276370f6d54ed374ccc5c96f0bd5cf7ba867402118be8862815d297d70fb69b12972aeccf22abd31684a158a2fa7ecc96b258856d9d32a1683434da827e93f9988c8892dea8f589aa0a4ef6de8fe617b03d4be8a84242239db226a905154246fa70f7a88b4f76464106174ec0b58ab21ef7a43df00d2643c482e9d54d6ea65e865de301e2acce8e1879bed0eba0283a4a5e747e4e1547f24651b1b3c48e7aab4bc349e630bfa86c3a4041202f67ccea8a3f1308c477b0811878751266b29f5c0cfac2564a9f467fc4a8b72ef204f4ef96ec88361074c340020a75bfe09f668bfc5d47565855c6fe4f1807dadf5ee0d7d7535a8f4b3911f43d891a62015ba7f7c7ae279be4efe15c87637596fb27bef8969976e3cdee6017a46f22929676c63c3332229c26eb516876af5f908294d4623fcd9fec53bf117c0b896ebe746e0e98aedd1881a412e1f8ec1bb89c92a910284bbdea60504259c3d2d5d3fcf4bf914695def85ff5f15e8663bb9f5c9cf1de44704cf0e980bf50412c7271bd1d92c4f2ad5f4ee35e471c18d604dd5a3d44264b4003c0c017d806e7ae532046804c42060977023631f7c4c665e4eb9a6fbfbadca3f7d6213054e5f5fd098f8062b460eea7e2adcdc4ddeee8ea58202ce3cde61c6c938ede20296cb5e99566b95518eb53a0f234d94e6e189211dd92e5119e2680dec6206d9c330d97a8286045b7fee2ed013ea0221dbc3c83ea6a2343036a10e8b2319090f338a06192ac95635ad7beac0e2e255600ed641cd96a909e7344a23e5f12d8b0c5d08db2fd7f09cc13b7b5fa132beaa1a7ac2338d086abf4923256a415ffb04bcb9d24f3ce5e9f1cce1657a317cf492e1b4d96aadec20b722e2f0cb3a1845201c00a1dd9f4e90112ca7da4fa001e33e8b042d41bb13465194222cd4ba04d3be9b5816e34b0d7b2950024c918592b08e4e1b6ba066bfb4c2ddb58d55a3753103633aa18cf5d8f575a1985df3165d811dd128d169336fdbafc357bfcdd1beea1c296f34e53a493e48a46e719dfbc7e9cf110d9586828bdfef95eb180031b815863698151fdc5afb130ad9baee90891ebc278f2aa6534ff26a25616b023d92a1111ed1c203783ee0c5b1dc52710843bc05dcaa0e721e7ef06c0f2103a5da6ed3e8db6c8feb60c85180e911483d15aaf0dc1a23a545ff71bb8851cc3ee5f34fc7a9964ca7865cac93ec0d86927c398d36967643b7d7b5a2ba3c3ac7d4a5eb737c18c75b966a0d60314ea98374504a24d63a92fe4fd66d2547676c0f68bdb78003959bbef637da052735e6a0cbf7d19852f1cd47b7a0f5a4d2179a5970c836d75e79069be61cd3dfa9a1a4ff6ae38e75f2d161e229f6a8ef0824f1adbdf6a032554367979e9a379542a433a1ee82b5ad3161400e2ed944b69b8ee59319e767a341dd6f3e9198891a547cccfabe6d592f107e0b1bba2f13fa78e20afaae06842281aa38b78862307aba875318734d9cc8692e5a7440b0146f56d49ff3da0da169c2c39a8bd9e8087af2d0dca16db3d8a00123c131e25bd4d7e320e705ba51ae72128b4e6019a4f3eaacc2cfe912927763d09d63e9135f0ef5fecbe361d47692159127482d4e1966005abf6f54405d95c17f8f9b267a01fffc944b486252c5ef6ebeb31275ff8c8c8f0a4393b72a498be2a07e0e5d1f7c37839f7492f0a9f931a0be883e23fe9fe478758a01e57716acc4c21f24d225db263ebb2f995cdd20606b81b2cee32a14e3f95fbbc9f70f78d61667d22e7fcdd1745014492122b056ffc767534a5773816b44f69fde33ba3358a81073e4aaa630d27967dcfafb45e5891380b06d1346f93e8c7dc4750f36c243747f16ecbe6fb4a4f53d94f7b440d86c93976d320f250d3d93a9151f07ac462c508ed316faf33482c23ad0a117997acdfa0e690c743493043a367edca8ed0469b14592899a760d3f3ef65fc84d4477d30c1e2ce35c53d7384a9d84becea02d5f8c01b6668552e10920baff9fb45f385b6ec88a55fe2119574adc22775bc96460bfbed3e6a16e9a0c4f789e26c794048aeb964abc6ed8990461b42cc699fefa5f37c9d994841c4b9fc96f2d35881ceb96fb947b48dfe942d59dd583fa916dbc5f17c8d224316b0de0d367cfa416dbf37d32a05f249b4b27143bb6b9f239ecf475d073419fb9aba3e6d1be050aa37fac876466867c50200f83844c32a712d1432163f8e9f74514fbf83e2ae9821f34f4eb2be3c19da057afde47a2e9fde3fe9df1007bc73a7964335d514498e3ed2337a4dda5e404723f0e99d61b1e72a2cc94c594d6eda53b28a1c13fbc6feffc3b411076b3fbf3392f8b32775e07830eb6870378457175da7f2b67499210af191dc3ab5ebf2767e55d756f64502ca2deefc3865f79b2073c6a9160ae33ed52ad644ba8d916dd80242f1c05db38ca781951c6a2ef8a7beba94fefba0f2c8ba74ade5d69276d395339bd0d8ff4ea3f19c89a5fe179a22400b3779527fe861eba2e9bb04c45ae1b4fa382585ed877ebec259d92618fcd05c493886ae51806a810bceb1521d5d62cde2493ded3423e18c1093b322c1eb11813908ea7c06ea696c48bf642042b359c6a4c71877837925808ba2563f7e764df3dd23afda7a93eec6431e7308db391e42cd0ecc3df4c95b2dce7a234bc33a09fa2b3f71797443affee47eae188d5cee18963a426b10e5d87ae0d1af4e605e7bd94260d032e4d4aa59b2b113155f8a1a5d273157b821095fdc1d483c4a56a36836d34da20f9c4112d9b46ce2f4c260ee08513529f3f9aca84932575f2f6dbb2a0f528b759467caa6a978d88680451a0a65cb198217562c6487c4067ebb8ada2346dbb95717fb6b7a151c409abe265a80482eb40c17306e56c9d10a0c165961f098368da8c22ebe67f4e415c201a2ba7cd900a81c6e48c999f735b6edfb04c68212330a44c435326f56fef6c12372d416d7778721a15ada4b83a404dd2278dc29b783551db561626ed0592080a6764cf2a932f1d2afa87662d51aa9eae332d3a9435747dedfc04b2b026272772d10c64fa8839c6ef41e9705abdcbd8690ab3e167e4d0351456b6874ac72f80a8b5a611b4547544ac3fb49b898eb70d6823537629d66dac753040584e9f37f77083ab14cd126d4292b1472ce527a9d538a1344b8fb5e60165311f3171a336bfc20042c48360aa0ed60f394a2f4c1569db3e3663a60ec13a5bf5f6ed45f0fb017761d67760443aab86ac2f7e5a6e5e2a1fa6e1283124dcd15096c7d7745adf3b39e47658d0379b1ad1aaba377ef3f6c46439fd3933bd67fa2483f924306f5a78b180074da80c298cb06eec05356b4f22c20ee9f9c64d0972e74b970fa6e2b5bac2982c1b28eecae0f8c72454d813f0f8da600e4b68372adefb8dc028ab80732394ada32be0338225de7ff7f17f71fc34f9d2c49a3cf71179995bf14745f1588f82a30b60c6bf3cd649b736ee699c82aecb6fa6b58b99207ee5bccfccb4adbc8a2d702cf0e5d2ef78a296e5cd32ba75c7b4386bcc708bbdbe055856ca855e2d17d70ecf552fd416bf3aa8754002f2f20f89382a8a117f363edb4555ed697a161e7c0dafe07da1d6cdfe6679ac83d44577bb3db25ec305dccb8ac95c7e5adca4c3c160d4d7b7449ed9267c621bbf8c4caab3bbfb9b733f0469d946aae73e493aeb197f7b3b74cb89f5f1f74744957192aaf7fec7c07755e61f850414bdb9ccd84c50a3a46e726721e6f3f94118dd1bbf66c91a49b9073b575ff98f7534a9e1a1d5fc976b950fc7befde9abd0ae2c93ba58e4f626a81bb4ef9bce464d2d5a47bb9e5166e983cdb2f9e71dfffa86528867ebf2c84c09c3fae8b337f1a3650567009b2741b46c21ea27dc2abba32bffa10f8b14592910ba345cf65ba82f033dd4ed5ef6d9ab5ecae4c83b9af757cc135b519d6654e82989f3f550975876e865ac75d235ea915163cfa1204a386d76390730a09c722c98cfd25565271f9d89c1ef33f270e7c6d3d41be2ac948b23dd699378d5c16dde9fd25d9d0206dfb2cf674004c092b8aa1666271cffb032fc4b15b2d559dba9f02027a66f3f7c0c4e8a9d196de478cb0989090ded9416bf14087b7c9a992db4f8720381f5631da277194cfa4549f827889901f35b473260215dcc0f54ee58baed89a38859261918a0aa24b0449db5a7f19a8f41919aa0314e9d9b7227eae5f0b018cf0c95ef6cca0cae777dee2c1d164914f409827d1a431ab5b507ea91c44234f2d43b3469bbbdafcf3cce79e8334cc0655af2428e196c2df2f1bfae6413f273f7530ade3ef4e47c6dcf26b9f69256ccee51059c84c922df7330ad308d719cadb8e4fd0b4f6f940328b0e2f03636bf2237111ec878c94f5ec7573b6803bd2bf9cf0f72f207973695161daf4ec0bbee028887471d3e691973d4952493de6b6ac2b65f6f3b572501de98567f6e5771dbeddf95ab0015fa12196838b18d6954c83e10140b9400231f35b3cb1958b70181c117089554a00270e1f5e1d7fdb2ad6c3528bf23af7d65723125f4b0cce7dd2e3dc97969f69e8504c3edc807542bc7513e4977b52e1377ce9ea26cbfad37021465c91bdb107bb34344bcc944eccbdb0d5bd176a259c10c58ec4bdae1f3ad4f380f82da898ac0df430d184fef829eec669bb8a3eb06713b8806826bb6b36d48ef84abb6fbeaf06857b0dda53b1ab3b8d9ccd46c328510a98c6f6aed8d75f7e8a4aa4fa6be68c46cf47dda30e6ca8a44f4e752e45f3fe5c269826202d17cea6a2d9af6608b0c5e837f398f203cbadf500fac847b150989c7373cd2c7c602482c61b6a525c20705c594a8a9fbbae29ba4421845d59c68b5bf30eb6dca81bc33e7777a2e8f6e444940b9beba8160a9617d8a75a012831d3ba6b6b513c456c69aad0af5b3afbaedf3407d0eb15c91e0b96658646225d6a10b6a8d1c5d529b2ca265bf0e89bba0dc0b43b87044af291105b049ff2c1e8deb4e580919597a402a0db8bfab704f3ceaa56eaa8b4e7a6a90cde6e0ce7b9a48ab7108853ad498c754861a8a2268862fd1c9b17d2ffc979f9ffbd818775158e5f795893d0e6d8310a31b9a9f7830f7f689a99f9d66d410aa4ac140d0ee1294301400c8abc47cc47c7c794c46c373436c71d23581f6c385bb10740b8924172ae5d59b42f108a7ad68259f6908de9973fb11fbc4185bd50928a481936c208183c799500516c5a5b8ae986ef26658406e73e1959511950184e135c6e5de9cbbb22605a8e7737eec9bff264fb26d0ec8ec5b8da001804c32654089106ea7ab84c4eb862dbfe7a5579a4e7cd6b77cbbbdba58e45f3f6773e4f37557507ff188d67110eb2c1acdd1c8160a12284347cc5ce0072dd51a094f59f916bb206f88c9112c6251b8c96185c5687352eaf6e1162707b396fe6ef64538ffff443fbbf71eb5147c8e4cfca518a6c192484f29ba4181a61d8c02b264bd3a8e93fb674a0f86206f74aef8a86253734631442aa96e18c1a398647fd588bf0380d6fcae01644fc86e99eec72084d01ddfddcd129eba68000fd0db4def92d9883b51c665dde870aa4ed76a78bb2db3db8f2f4b2dc586954fa4ff7bc6375c64b0293f6528e5c05270a9228ecfd51a8404f2f94100a333f50bc408c0a1187adb47448c16309dd380ab09b5f297c998a3528154908c638714a964bae5b41bcb94d88bd38a6b01cdd4ae681b27b946e29db796c1e52001e7f6cc69f8c00d4d0df36aa02d2f1510c9811a23d19870fab4a8b9a2ff924ef04d313505122e9768f7bfa1a9a07d833c51c7df6f952cb76e44fd70cdca91584b5e8f61c711fba7b4a41babf8206519f8a6a4e78f138757369e1e8a00f70d9bc09276c0b5f0db44c19232dd52dcb344eceb19fe95d482c3c03b85c3072a89237b52e2ae6c206c3aae67791762ec74c5d75a7fa415e2cf98b51b7c19b980f89a5a77ede9384762098df68ee5dffa63d76bd6250c3b93cb48b14ba7474e70b75aa86c4b4443a3a355e234d019e4f38b7adb6dfacdc46f0e25196527f1c7a7e6da7d0e60f2c9f80eb0d5323f58a710bd3ff5a03f862384ec583ec99fb9d2916796f0f90ae49d5217af3fd7ad4b4532964822b5bb8686cca10a7a4f29485551fa0cd4c61afb0982923aa05f5ac70841d7df09a829b0274681881ccc93b2fd2c388f4c35a53fb4c201ca9e718a1fb545206172448f7e3638dc87e88e88cc420eea67f6df2a14c972c760e39938123102cd14daf5d075a6072f0c2530863c707ee6e1c350a5ad6926d5d32740584fa2b1f67be55f8bd05016f3c2c183e69673313bc1b810c47ef403c52224106a14e82e132e44d62bf0dba28c3ee66b6c23ae5e690f83e6075731db75831c357ae1efc1722dd62826a7a4abbdd94b49eb3fd9a4b0cdfce02983cfa30b40f5742f25b4e4a0028b416e4770aa2e30ed943f44fdd21bb5db82bd8401bb30f30cf7a6518e6e773010febb448d7dde3cbcd7315f616fae594c017d4cf1793251ec12f6a9dae32cdd39b6a99e62ffdff5ba65054b8fe0840824b1471abd632d37fe7217d9677ad3b412b6189225a33ac79b310b28157e5f5a6b206a4ea843d641e752814433fdce066c994e9077393df8abc5436bb9125fbdc3c7ab1b1b6d76b952d3f5da9f7e0e8509453ed4b4d748ce0c10e7059589e969a23b58bcf713a74cdc5c251a3dedaf017d96770c0a278eec4de02ac4df6ece8b5cea9ba3ecf0aeb8963b063423e5b60e33cc5ab9a6b50d8361de5ac01ccb44105884240abd8e3f24ba7ab8982475d2fdd39e3a6b9d5450b585427af1d2334ebb1cf1ebe556532a868c8eef72d227d1eb93623a448d7f14c6a2022ad5e1c6333b83cd2b7259edbe5d7f47ac16d677843feb3c41fe21efcd074eb7adf8ca640b5c6f726c46b515696c77f21762d01ea5f8812a7b6b0376fb9689759e4667889f8756c23ed3170cdc0cb52e84b1bd8e705b25a4ea7932095ab8e02c633024129e94bd6568eac76f5984b55415f3f8f9cbda3eb385dd396b6211ffc5398034424740e126c79b8e8aa5b0051e8d50f3d3cdc44e584d7ef784523000f69e5d0a20ab9388c3e460a14b2c8970b072e5e3beda8f5131fb3f7200f3af4d42ded87aab35dd6cbf7fb4a389452cded27e976daa7c5b4451590923676cdcb29d1c8369b358c6cfd4841e09c47822440b1b0aa2a349de1c376c0fb77d6d64d33dfd566bd85461c34b8b3ae2a9b02160c1f1c8111aa9c892848af9810a6fba94127eaefc0c98eec7f526df4b68d50cb933a17677f4379de1d5b16990455596c017755313c74f39a9924a6396da8a3e5bf4efbdc465ee7323196a1084265991b2db06f27a3d192b47bad6d8f03b1e4204e2dca2a4a5050ac6922928e0932173a4c4f566fc98a77c6dd53ab963d1ff48f13201f3674117aff13a6faedf2ab77a4bee924a7adfda34e52d0c06cc85a7345b6022991dd709d65d0686a921f75244311b87bf58531e3dcead3b1425af4153123579bb90faf39cc168091c628d9be67b645b56d7fc411e7ae2822e8fae0954aa80fc6f2426b96eb70c5f02327526beb7c6baaf03dda38f3596a515126698861848c47927f7a9dac507e0c62637ca5d31e551c00a9cc8b6fa00bfe211778fee421ac5718d8ecaff869d657b974218257fd71f3f1d1cac6ece4005329308e9ba7dc122007a38be71dee40d128ed390669fcfbeabebda673168cf11a1a7c9d19710b36f774c5cb11ff9156057f2e2e3a856daf54a1741e56347237fda8927c5693077dc96992ea5a907e18549220a869d7ad7b9c7b806170aca7de2488787f869f487a149035733b170459ad3369d14edc2cb3e97d575231f812a2c855dda6bb38e705133319e78808f003901ae256aa4d476808aebb859a10e9210f9b771123170170588536017ef1f3761d463517bc608b611342443d16ae0f3309855a253f4aec9d7eeebd18be5f592a57ff5434753ec0af306c84cc6c1f968c1af6baf58c2fd7618c556b10368b31fbcef0c546b22375f1d77ce181999bc3a0d20c274df280f07b4179f1f1dfa94ee0c391a1505e55c0ffba79d1bb1dfa260e63878a28e6d8020dddb382878d9870a4792f9900d609bd7b92a24a77a683fea7bd97972277f6e0bfcaedfeb9ee8f7cc960c25c7d546c4b3ce27469f69116a1fde65b817d56eda9b7fbce499dad5c3d4b1b0058fcc06a9d7b215a8ca24e4a729c2a2261004f4acd66484d6deb0b718a5c66c4dedc512ebe33b0bdf5043add6dbb9b46d24d72dfe2e1eca4adacbf21c0ab1adca7fa222267745338a9df5ab6f1c0cd921a526f0fe527e4960fa743e08dbc3854cc8eb8300982b99b639ba5ece9b479aa87ffc0dc0feb9a9e6156de3a8b60cda58de635cb205cf1e5129d74a8e970bf0e1757f0f2638bca99db9dc662b89e8913e06b13a6bd817f374b8ae92e5095561addf3ed1f2e348cd0cdce340f4d0845de4f84c32173ee87887a16bd71469151abf0b424773f671cc5a054a9f7487609d8dcea5bfa8c6ffc5204fa77af06821597349e9f210dd219d0cf33b465cc96d7456f266dd60a0a1f4b30035eeb147c37e2616fff401cc3b4a4642d40ef7321fbab0ff2446d356ab54fbfb501a5b1dd7b85b981f75d65ffb740ed4ac3b6a64ee8de1885d0dd2aad3fa4d0d723d1e2029c695f3bb6ee0a9dee29304b585e90c3118bf2971c02d98c02b9722b48eca3fc61ea5f3d65e0c883b7b55d8ea32430737779c498a18bb281f44968c3f1ead25072651c17cb8e88b776142c3ac00b318fc57a9c06218f41a3a562d511cb1cc5b719d61dcdf899d969e0c513c251032e994ae1a351228032c9f2cd48a9c7e47f19e8522d50ccfc35b00e4553cafdc411c888d211495ce05d554beb993af7a2938fa10a88cfce86acd0833d04d6f1a55bac5607c8211be91f9b915f17215ee168da93dac8823b460a1b68f1622d754f776d2165422c99b4bd27499b5f1249a18edfd124789412b4572ea0e6586d775371daf1e5b9fcf36f2de08d0c8ef817b3e14249c15432274b68c410f2e6d8466dc59e38760b91008482a7ce9519ef12c23e20f12bdb7a24bd0e6ec4d3f5331cbee015af1f034bdc161bec48d27958f3e72f8c2eea283838023ba7c4d93f5a8deb004ae515d198063aee111b9abea7f349fc68a4a85a089ea8ae381262b865f080f088ccbfb8dcc260513cce31ed5482cf1e8de4012141db8caf0b7c367720466c4bb77705da9d0d47e19bee604d2148d43f283803e1fc924e57d10b962f26f247fe152f00bff1a7783ce949f479b096696af0afe8dd0effb485a8595ccef40e3b226162efa85e8684d8348aef26988363a579dce765297aa0e40234dfd7a3ff4740e3b01549aa167b8301af577e85788871d4d795333c587c92bbba45d5bc8f99ce5470f55aaf16c79c3cc6481f63ace5349a782bc65826381474ad05764357c8a46d0f8f051a7ce551cd116ff30e21f9dff6255712ef562ce50eb44da420bb14022fb3076518025eadcfb5387d87f164de221fdb714e1cdf6469eaa962994e20ff1c54f034175fb3923b2fd2eb7c2a6c7a05abf5ad15c3d3f48ba556366d2a217a7703d233a0b5b765528040093c368407e451ea5383fc8c1508f94e05481a13f21df8fc5be0efd713eabac2c451883cb3e5e5069f5aaaf03e441f24d1e05d73ccfbdd363fd5804d9a377d8cceec41618e8b72e2241a9208cd430df29fe3a26accbdb04796e1598f34c2f21c0c385a138da30ee7b12541d73ca022396356967e5e77076b4637073df36541d8c7fd944e9282149df72330a5e827340860b4c28accac2d631de0bf839b1d700e65fe6ca891e0c0fade459d28e8686dd1e81a6c430a1450dfe083dbef23ff529ca016d9687d3bc5d33c29bf8d22bbd321a08d769f72cea07fd903d80622cd3cba4ff93f504c691837d55b51450060ede605e33004fc40d0a71822ee14b1cfca92a1e3cba20e3bd54ede44764f955f2262412dcf660d47e4aba69309a8d977e00648999a131e9ce379d7e3bed1db316a19414a81b514933d918cc1447e770d940c3882d8626507fee1a4214755ba5e9b351cd19c784972beb77ddbd074adb83ec4d49f55fb604cacc937ce09338aeb4d93c1e06a7a47af6f866d31c4bb3b530506f32fcd27b524d7338cefa99720c358f974cceb84f1a49154e3737f32df26c55fefe255efc4ed89a5951061183eac20e36299da0f255036d648ec9c7120679ef6802d2a1bf28c33b5e609c539b333d5bee2157b4ffec6c31da36c28dc0666cdd414b3e85f256163ea33fd0704baf72384136b3eade55200c00a0704fbfd54531c853c54013f79874fff2325d27004f5876ba34f202caaea2bef0af0db3711263277427056c07362a490bb32129c5e6f80bba6864d0bfb9eded159014e6ec41081fbfa8b0c621113f8067a74a8d978ea96831180720c61057423bfbf86e445bbf3950b04a5a56156f3ac602115e503272a350439f3983df14b215430a3479d65d6e7e1de01e8e2221abfd693a9f3b21d274cdc0fc957e9e2dba4a1603f2638485b3eff3119dff37140248bb9f75fd70d84eb40ff991c591115a213b7969792f7fef8b225c29db685c09a59aa461793d697674690eb6a6bb5a40f96011e22b731511139256a64b98c14ff91ca60219d89be7a542f064ccb2050ea1393c832c7437ef37561427b9251625282acfd54db2b5f3d30301c405dfa9c995ac7178b73da3c906942b7a5b6be7c07df801a2de45a2586a9582f798b09760e6220d72178edfe94b18d73d90b3169a7aa6fb0ce63a8619007488c6452b4240f72fd9a0537617021764f3071bf4c0ad8a809d6df4c10c2fda848f4ffc78d7a2175145459b4f6eab3d8084f1ca5a3696589c04e55552735f3f3a1c29e72d959e00e035edd1ddcc43ec5318505167651a8222a706a04eb99f1db82dc8cf4baf72b97a99a967e3b090cef58b5b79d01895180f4fec80938e0c9d3be61abbdece318bc9e8a01e0dba9f137d830dae2e2f3d458128331f548aabe7260b28e9b846b1a98acf429b4d3eb7959361c8494f3ca84d3510028778c77048469cc9a5473a8ccbf412faf066d612393e71ea59958170ec11a1b80d897135cfcb9940e19ca2e0ff91fbc70173bc67a1455cd4cf4f79298956b24fd08b2e055d6805b48e9e4346ac1ed27ba483c42d3ef701bb48fd94e9d215a82ecc2adfaac71ecf5f0e711e67d7cb81d7f4d4e1ffc8ac91dc732c22e14d43438be5b12a1331d123ff56f5955edbc3fc6f491179ef17e49b9ad3003d8758b1e74afbaba25a2bd29db2a60062425296a7641b2abbe8dac16c367a80662ba3af2ba9f296619920eb7016346409b1e83272a90829f8ca1840a05c19ef4233aba234ba205131969156dc68f0f79e273520434b66486e1f2f332b1172f072a1bc0f583d8aad77369dc64f8ca7ca9eb1c67cab1b2e5974ad1cc59a40806ec049ca164d10608f6d2970d20068d61d29a1a5ffce52b11ac2bfb6d45c380053cd786360e787de40b60bcd11081954dd0fa6fcb6e25caaaa40293e77b7d388517de7eb2d5438fce955db3275a5a8fbd05c7e74920d1e875e2cb4875b894b2411c88b5ef0c83b7cb3448f6f9927add5e09c0618bed0ced9acce88c405f53ef0ff0e0d87ef51fe0edb7114358fdb0e3132bddef0109b53891d4fdee55cdc963e4dba30498f6e3ce8095a86c3b8b2c6d7cf8baab4cef404bb97a45eb3b69c6e525746adc03af8a8bf1e38467f7c081ac71171385d1e9c38b6839b82d3a34d8fe37528f5ff23954c12f005604088832d9720760406c6fc4214e379e45161d1e21d3b98da6165e569681f926ca1cffc70d3b0aedecd6f6fce9100ef788e02a0252b6365876018c00ccc8060a99510ece5b2df7b9dde8bc936bf8c9029b0745ba8fe231ffbb3c2ae359bb2951c1ae018bf3ef516877eca0493c95317548c5b88172e5e0e2aa89c73b0a1ea31cd375a539215310f40d1f76a681cb842a50d5690237c17deb8c2427f8f851aae873a9098dfa197d97e412744e295062250b6b72315f9599d4871ca76bbd06eaf75147c4165336bcc6bf02ce311f74e04fd5eb1f1d195722e555d2714c9fcc1070bf15e0a34a9e831b37a7a02c16eb204b9011fe91d4dd026d7b5c98373979a732db5029f644f5eee58ccd59eb9ed2ef44fe68a48e460949bcc11c90a1941aaba46eba652408fcf20abf092bed4ebe52bc9b2371389e6549a205e4cad43dbd7feed24f652c53de8eba543e5e7338f10090de8a957a662f0e87e2589040c4751f587eb55b74e7743b71956e3e085d7c56543422e184e02caa8e16cf3f698058f6dbc7e7cac118fa020840c3cc636200e55fe2fb6bd1009a21598c1da166fe4f91bd70c011c52393d981c7f66fe0bd442604e3e7777e40dc348ba0b10a9125d69f09152c83b0fd4b8b3c68ece69c849aceafa752710b80c2f0a30f8f56aac9a56411c74402cf5d05daf2e3315921b15bd7e486793ca5d9669ba3f7da96eef2e58d45e037745c02f76283bf73de952f2480f9e33ad390a0a7252240419da0381667372e3a9e29fbd98e70e4d3517d9ee3c0308c7777b2bfa6764e643d910d9555bfaf299039a42ed1b15de20a2ee625298721ca9e9238c13ecbec6cabf4823a99e318828a23a689e2eb35f4c14af8a4bb233787541b5758bc4aab149f5dd93424e5a7c861193f7de5f33d1512e248a88e6ba7cda1464c654b61459ac91822661b83cccd698bcc218456874758dcbfc36c946c3d4a919a87cd993076e63a779570003d1410bb7c971ba52c738b30163595d41d9bb8c56227cca6f1c6bbee94d03fdb9db6729dcc90c0112a3a9a91ffa4087851cf667a257d6bb10d420b3b6e27fb8bee602a6185b1850267e2f90c18c884c8b4160b7f6b269a82d71724296886bf224d35a3eee4a3ddc11f8b6ee6a9df828d0874609c380d5867cfe7f7c780085c73a58b45b66aaa618b5f85f73f62fcaeeb3b9a95ca60b451718b80c31639da6207558c8850a882430ceecf0d66b0e07e39f44fbc75a7e4a0e666a66f2eae27fbfdbdf3e9e2918beeafc45054930198b43e1feb2d738d21c3f8b28ebbd91001a725a4c3dc4cdaf2a6875fd861ec1a500a7c9e66b8fc1bd786a95c840b02ba38a1626c5c972d0fc48d2b05cb4a0615fbb62e64de0987a5b4a93cfcf585adccfbf8dcc07b5f5238928ba5da64e1f9935e325e1972247c103c9f39499a395fa06a4685d08b80c12ac43ecdd12281da00591e5b2a648f6c201a7dd01ab91fd5658886d32097a0c8634ce8eafb76fb6ad37c5bd16683fce5884387ec9a7cf0b2c3a69f65eb00e3efd9a3fbce52df3ffb212f93233cdac6c775d833574b97936363fbc4eba0af174494473fdaae424b0e4d4b5a964c927393bcd976e5d045c027f5fa691104dee9c5e622702a123301790f2caef3df76885b0998ce72dcc0f5b68bf0baef7076e5269d1c3d93065dfd54ededb8615061cd72e8d513311e831826bf1cca3d8768ef6cbe9a6a2090cf66cb696ff30ea895e091c423fa4abca24d6095f77ae5d8883d9f42f7b37c72b92abd570ce127672019950a4535b516545a7f68848127558b984b0395b5cbf7be7608d72ea0065e3db7c47a75bd06391cc0f278f50058360e0fe1d4363f050143ab3080f54145dfe6ce0fd99c0d00ef870c1605ada7f08ffc26e2dd9bad70fcdf795c3e6f6a98404edd5395649493fbe156644c801e4569da870390bbfc4e22f9e9766747eb2ab4c7dd0193cd3e6ee0bfb40ddf7edc5a05cd4c5e4398585d2f931105092a38ac43c3bcca1840648a8b64e929704c17cd80d2bd7ba0a8cbb8f492a377e9cad044d648903a21d2d6c845a2762402162af20f8f97337e9b87a364cceb4f9447be5ddc7ea9ad98d3dfe8e7f009bb08c2c0c5d58a435105d35191d64c871f739b898c4fdf79bee25059dfd005c3712bfb97dbd17a85baebef6633d29939f62876d5bdf83fb99dc65e024681eb6e9ff2895af239efa4dfefef532d57cf20f4ba6521d24449f57663a539dd44209f3f5d16fb6be61743806dc2dae65ff22822629654ea4fcf9f553536ce10679828c8002a9b0556f9aed8672a792e03cde393f4918b5244e2a41f92d9b4e4b1b92b0edead28b3ff22cac4d80a07ce82d5d2de5089f402fed057406196f47cc4ad35efabb4469701d71d3e9a3c69d213393460ca960781413eb790957ab44982cd4037412983ee24fd2fb5cd7d63f372fa344ff57654c6ae09055cc5b292afe0cda95d1849eab449795a1664e4d5a392b6131dd4ed3693ed16b99eb8d1892b8ff3ed3ba8357fd8a2d5a472839e536e2891d620669967386f52ff5d4d6bffc7a1a8964687dcd14947a5de6143dc84bd0d372ce11cdaef7a1fabdedd015329cd05963ed31af3dff70ec638bdfad2540e882e0f2f8d3766712ea46c47074132eda59fbd9520578e83a48197b92c00fe086c5fbfdadfd9d5f87e4d1cf214bd66178fab17d77bc0a2409c57993d6be5db0382f4fb7eefd7a38a6c9286d8624c9ce1b67df2d93625e6a1c26db7b6f9a8a4a969a4c53295a948ecf0e6950863c6219161c4e24d5c7a400e26ea63f8173bef23ef5efe473525e7902ca169041f2edcac71bdaf466c882fafcb8780c920bb9c3f9dd3f91939b1bcb05fec990958fdc9cdf9119164b0e3ecef82272b7a21d6238be8d8ec06f4c6c27acb9f599f7c0351db2ba554790d3f15c488f02a581ecbc063284b9f8651c799886d46eb37ae720fd3741bad060e83c2d70267463bcf56e23f4e8c3a496cca6f1327479a0dd8448913e19e66f5cda16e58e40ff8cb839d47e6e3596e7c084a13a89ab53cd46808fe7bc87807e7937fa3ee90fdf5158ef382bc1045c52df89b7e2dda10b498770b01fb4705ad06d33ac24fb30408a5ce3edaf74a18d673f7fabd82d9b0e1a6a0902c1bc4194a180f19b5fb6f3d765bc3da33d1f25855588ec4dfc0b3f5990ba800e96f13272c71fc9f7c2f8b77956f8d1cbb07d98d6067f5653538a7fc40742be4456e4661a70de326edbe956ab761079854e5414e804ff74ff4788ac6275a17b7fd4d0e7d7310123943f607d9c9dc6b856cc7b106821d6c77332d37c55bf1585cd1e475785dc48f4b8beb06a67e3eb6dd8432455d48f8db0804b86d0aa4abdd231c6aef34429e9412eacec4737e5a29351209072162fcb891b4cce22ee7851d2ebc5ced95e123cbf6e93d097d6553f43b47a58247dcd3dfb962b25bc4cd0db6e9713bc2e397f052f6803b7d6e64cb9c73984bb9ab572ad1fec08fda70d2babb0279f339ad373d57babf191d23146da88102c7af4d9ff7cb7cef11b84cbe8cfd8aa289dfa0c3680064c31e85ed53aa6ceb6414b1ffead1846b08c607b5a637cbeef8c25aa7a63c22373a82408373350b51b7332de289e6ce84113f68778903efbb8226bbac2eec785eff08e43822aae2094175199a9baaa5e4d65c4555583bbfb817c08fffa3c5d98d1a3bf25b991cea5dad3ece92a74acfff3fe9d15c2058dcbdf585bcd64152136c4562299fe918af9db52ea598b82cf1ed264e348d8ccb26088fd77f94ed3dd353f28e5bda9d14943115a4a5ece9b44f0903a8b03e9dcf6e82f665020ccab092d3b9c5dd57c904948908270cc8b328d974cfe4a56ac8ea197c73b83c719f47876c788ca1bcb338d7cb4ccd0f69bbcc6e91c27f14fca90d60602b0b331e880ebf405350aabdf1679a8de1ddc7dafab3d21d2a5072d3c0b1c47b9b14f757cf742aa165235739d9185c647bf1af993a0c08e2b6f97570a279c458603aeebad5758425d79ec7f4f33b455ba12025a66daf643a8e4a6a69f1c706257f544759b62dfdd684fee40fc5dc7a6b4d934afa3efb87f11fa9ed0e463bb5d82acf0365260a03bd85448ba1980039076a8767ec560ea7fa667a70ad302383ea32783e8b2402906e940b108d32c3227af14740ddcefce19b8a40e621c178c2e6cba683b5d4d73150a88afc113af6f7c0021fef90e3cc28f1af83a6f94052c29bd02dba8be0281852b55e2cb862d71e4db6ae5c629c23f13c82c2b490f97e15c4b6a6b10e49b612d030223cb844481572910c686133f0c163697f4fbdaadff6fd27ec5b97afd023b846927149512491011826b3eaa20f4f99cff982c62416dbece815d0cd2dd888383b1267077059bf4befc1fe079928439c7417c7722cfd1627d09f94b833c166b40f73efbdcc72470e7cf9730314c4a279194e74291624daca3105a80df351b4611c94fc6892e48902c19c38296d6280dcd88c4f6e01806a1f5662823e907fac83459efd1d7296efc1b866d14064b51f3972a8377af87df29396ca1dcb84c3acdaa6c227df1d70568fd75ec8993b56362b3a2ebc4ede76e74d9ddc101c0a23313cc9844bd654d26e87be1f20a28b8917bc68effcd95ab258ea2aeb8cb0f0816fb911b498e967854fc591738652ba461982e78e81d992e0c919080b410c3cd4f259b555589b3985b51e5c55106f7f0fb3f51d8aa90c2f1ada8fa94969707f335c7f325eaffaca34f7ec4139257091e9b93303d72181c580f5f5e45f61fc8b264b6f0cf8c754df66bee265a7a3ccee5462786f65d67e3a48b62d1dd9c5c0c153fc04caa9817d6bd882257f07b24df5c39745567f6c94b516f208bcee361b1c6821b91c65ef97a0550f78a25a640cc69624f3699062094d9a53f52436e4102baf7221c0718fa35b85dd5a957435e950f5192c68cc9dd33ab1751c626b2c8197208cd52a8bbc8a24111d3f1ddc13fbb9856f2d7bc627ee819909975ccfb5cf048990ed0b0520de342a0f2a6900160fe84a16f45ddb8f65d99a5f286ff18e67a80f2d2a390b551f0e2c006023d3fc27d8c0983375c0454706aa29bb78aa5114e3ef3582e23082a8e11dcb1d38504b2944603d6178d8285888daa06001721c621eb1ed515a7cb8bec7b28d164dc962250c4ff14b78fb9c24f2a4df3d1aa6147f10783d08d5631c7d737c93c219ab9a6fb2c4ad5a720607431c892ca95f9c5b8b8781680743bda5ef60824e491fae6a617c804ed6a97dabb935bfb2ac5787b1b375ba687b9c7205fec57ca7f5b0537bbefb03df7c528725db9eac76eb4fb31d60ab26aacc01b98b97cfdbc4eac5e0f757537b3f743139aaf24f6261fe97ff5638aac46303ffbac4f7bc0dd56b9cf9fa7b8e5ab0e9e6b521951def70eb3dd1e8e90d6ce9fc9bfca13355763b05e733186460ee2187c83af454b6fcc8a9f610e2b8a50be81a61254675f159f85e5c1b4a3eb1f4371e8e756d858ea37e75c90f0077a355c11853dc8595795f5949186890eef3d47e26fbca3d9fd6c1d11ca706f279a7a920e18fbdb375a4b3f77dc221038bde0b4838d0968f79d80d3cd5c3687c26331d832663aac2cd156d3a874d404443c78ec7c28de2f4d25ca3566a3d8772c4b1c8bd74563cb04127cad7b4c551f3d3be37098dc16645bd8968fb24c0d477cfb1e707ab212f1193b99190fc3c19210312d75eb48cddae7779f9c167f47c97b8f9bb1aeb1300cf857d550e76d5fe110eaa0856f62db5a6b9649077d3a00aac955294e5f5318a8b95468acf2304f0fc092026a2bd16c7ef91d45f7d9b5bd76ec83fd82ea07ec6d9b08d98af805be2829a381056a3ed7fa87dce5462d62f88e4e71c83761196c33396d92b217a88b10a4a8fa28548cc868ce0da9f53367238ae39a0b7670697b19e20d4364994955ac06fc1407d4a46c8da5fe6e17234bbc432525cf9dc8337bcee5241f9e5f1d1d7d17ab23232a9d627c21ae80ed3f8add16546c88d70eb6fd264829bdf71d379e50370a9a1e69aa68a42fc903ee95fa1d4a0f2bc34e9a83a4ed67641eeef5926803b9203e9e190fd003d164f041153a2e7447d9f04c09e6a2d8055a2f1f932b703522861a45c496ee46f6c73ba2521f26967ad3a9d8349706319f67bc7d4b00168b63d89ef66bee67756d4689ad3ae380b5e3140e15c738380077b8bc7f3055121dfb31cd16641ad085752d8e3204ee64f603ac41bd6bdb24cd293a13eb391957f01d6a195f35609e6d012f20750a119097441f7f9856076d2d2c6fcbeabca0e8d4678d1e4b92760a0ebc1b3ce5a612aed2be2e9fdb98c2aed6f62535198e720a733f08f881c2e1205d1ef7f13330f2fd7c2270429062c9fa91720d0e7f7624ceec82cb2a696a3e69ea12f681696599da0ec83e47519dc4c35d70e066357d0c35277153af8c43c7ab2acbbcb90be1804dda1e8ad02e885ccda37c274c36f789df22a1407083175911b2316ba299ebc89196c585e525ae4bc1237b2c039ad9160ee44f33279dbacb08804062f1950ee1a6113b6e629f0bf414c8aae10815fe3a5187791e794876b30a1e60f43b343c63661adfe9222c29fa50856b3409c8d505c1e324ff419d8f06ed41f3e79c5294b348feafbdfca32fdd8cf3905ec2d185292ecca390e3279480993f9f70acddc930e3d7ba48e0fabfafdda4fb239d1ede9451a180e3f5af45703252913826349a37078a48880e73bf16937ac0929e1a79a517541e217917833599a49efc4a5fbbce64f00cd74653336319f727b94f25cd63463bcdfea31b41e83f897baf08c60e9c318df874ccfda93e1e778129096a330c1c1c6762dd15a30c83a0f444a17b80b1481936e1c75ab219d3b0e165d6436b87d47bc628905903372bcf63c632569b206f9292dc1569556ff2c1f06ce85bc946340757e9e5537c769464bff36bbd046d2c002ec1a278f0bfe19b921e9500284769da3fde4934bd2ed7e2ad7d8c6f101fa29cbc6bef5d7c150721e23d1a86bffcd9cb0d37356bb0eabef5b2ef5a9863a307f3d7b52c070bbf2aeb6a1d99a310b074e1337b8e7476c92459bd3809a7da7281a73525bebf8616b7fbf5ba0d6170693d28f4ab361f21a978845753d8e684a7e41de0c25ce370789dbbe72587daa942b682be3b623fa6bc69f63409546d157d405f5d16e238a81d946ed72f271df8fced45e72b1984852efb9c3cc00efdf802c340e0ffc3d5c6afeec1f2b831b1e43c0c4943c8a76d8ef8cbcc749263f5ef549917c70cd2a7187c2a8d781bc3ae4127b232f581cd58b68cc9d1a5f7e4755c284177bc55c13b0f3e359f2fa3bfd1e0a8a833b89c0b3c6a8f5f9f7a6c498bca85d011f848fd5204e860889e9a117a497c0a5d27bd8e1bfbaa9db3e56d0a2de519a17d7936218970ba719488af62eb69509a91a6180a1c9f775bd8633f2df678e800f7d2be1bd32740c58ebdc46b687d107dec023b7ed105e5a6d8530c60edde3ccd7f3d93278319b9f504e7011c6e9ecb4cc51d4567be33969346f8a138ff76dc816c871c70e7159b8061241523fed2cc67f16ffc64d711c14fd9160fef5bbf067a56847b82165cf9b17276eb93dff3f73626aa012632e36027d4a1aefe93927b4cbc4c3d305fc8daaf9425ecf3bc209abde4ccc8431d500b9aa2591c8963a8ecd6f92f911705eedf77c5cabf316fd9765ded9f6a58c9f2cf73d0f4994e6515e7586cc5bb1ca1eb72ac64c0abb80373958ec28439384098ae63c67fff134e6d0509b3fc793e05248ffdcbea48a90898323e2aedc5e12597a3d8b90eb5ebd9ccf040011de1167c87d280d850649e2c0c7df2160f9291fe9b86bf292f8ac56cf58d018e177b87d0e6ff7198b8235ba596deb2a598d93624eaca24ca18894955692de4fd81a6988e140e586a6a8ba70fff88f4fb3bf4567b46dcb0a712cb83de8cdb10e06eb91b937e6d4e9331977d5cd4a0e9b42fe878320b95fa3c642e5ad53e8e6ec829cdb35c487d4864dfaa228b5b9bf250be0a9234f18235f223eb2af88fd0b4470de615ebcbeed22322a6cc83741ab08ab4e5a354ecc038a10edd07e6a05e4990c365e55b814eb73292bfd6006385b75ae16ee722f27cb3ac91a4eee598309d6592c2e6293b6c4044bc354584a804fde0dd1355ec6610d7bcb2556cfc880a74c020e82d2e1881f82dabf82fcbcab68885aa2c62f42719703cbf99bb79c6a6d553306c4d6ee5be7d4cac30b3e5109b0b3683804a08e93459b41714c47400b6eacf23a55e60a1f792c2b412e371700449ecb7882927a5b08043e5723bbc6af10b7900467c4dccadcfe193244bd6888726b7d091afbd6f9b4b65f5c8c8a97db8784c73f25363eeff5c6b079fec7c4e4bf2505499dfbfc88b6b1f36c9fdd6ed8e5933e517a98308698f7d95d84f09aa5d5503dde535bd3b61505c36764207e881bc0baf0d7cd98bec44cfe2266eb1e8027b6b0dd28dc8eb7c6aa1b665c50af3d985e9cc4d3388d83eba15441548229d7dd143e04413572e5e557bfe2ce79b971cb3ae1d6fb9b11d083d033d762813ae74e969faf1eab12097c4de305bd9ddd5b2ae3977c7034cc123b85c210b2e4edd82f942d328cb1a7e34aa021326682d7e894f253d0c5be8030949769d6a19806bcdfc3ed4e7a6e98e4ce47bd6bb05ab2f374d8bd7c3e59d368eff19efefee05cb3bc9b2e6aabc837c3f7c32925c214864f51d0d2b26beea010e83b70f4d24d096eee20718452d9e084311f9654d8ea9836df79a5b39ea762256188bb59f75254c855af67451d931f19b85d2b3e8011bd2313cb33d04b58c753070ecab0096d8a13131448d31ac21af1843b140abf034331db32e45a36beed228317d9b1c9f4f0dcf50ce57ee32803d9169d7fc9db85b3c42c0d84b6219af237372483b2cc4602cb6a20adaca664205dfa1e639ba20ae635f24f32c3c77e5a3f41310fcbf1d4099e6d4d5e2c62f2f7e1ad6d838330aa8e8cde689908be4157b4fb0b8b79ed59c25bb4fa305f7bc436053638381a5cce686059980f672e08c5a85b349154a0a7fa57ffb0eaa675a9ff8183776a431d57e3fa087da7aca755b2a85baf5c4826d75abae08f0af99cdba40f9665ac917efaaddba2d0e7615764b9800c70d77bf23302b218b4e9b547b8ec9afb03f1a2ebf6e613db7f1a81b884def5502963d9f76447784b8311762f7e97418698f2937cbff9661323a561550fe403958a1b812a66cbf4e367fad2ece0d439ea83be9109ea0fcf1e77fbc541e82e5d7bb51930796706f37bddc8537d5c0acf93d40a9da6896dd9f9a9ca18b62820ae75a3d6ea575c9beb5609a2e290d185de13863a6ad69d5d9964061ada2094b3bfc205685cc0e26f11f6b2550b4bfa00d40c7746e36aff154e77401c9d7ebe3f2c2a5d803c65128397a6c4f7fa36987f13f8fbf6d3fe9352d86eec9cf42b0d487bb3b9ae8eb0fc66e686b79c297633e57369617d0e2bdfd51b9bad37c52ea917ec69eee151ae45714d9e17e7bbdcc2f2a9c081998c9f3c37c89ad6fa0b92fc1d9372abb4528a193887f1abd2bee30c4ce785820aa21ce97ab0204547ff2f657b9a69c527d5511be2c5fd7ba4f6b544b049656fb86d3a84ba5e0ced9bffbbbd63a9f663305af38c739e6a3af11801b4ba658a6bc4e187c7fe8e5849af9e4b5532164a8535722beb96f46929c981c046a9b9ab1a1c3dba46f0a3da73f291ab1602e6a918da8765d0b963c7c7dd47ffc2f953b1c46124a5a6586d54006e6f310b36d8f1bda5acf39976525f6d29479eec39f2a60dec9cb40bc016fd1bbaebbf54bee818469841670139cc833df8259437d889fe818dbdf948f337b7c142e4e045ae12b2dfe5a907e173e8ad1e01f1bd21a22dbef936dde8c21299bea0f2da7034d89174f4536f5e96e59216b5f749bbd33cdf3196b3a312d6962ea015cff5a8b38d3bd05a67954f20c5437f6bed08bf10be01d9978932b4515586b8e4b18ac84d3443ede55b59d1408ab069e92cbf38dad9d6e746511874fc2f4c38eaf5005714c34cfdaad1b5fd5e338e70b580e85e3f2ef471d9073a768c1ba9a2b22e3eac216793f7058198ebdd2e0341bf051ea3c85dc118e3bd4d20214af59737717c5d125cc88eba51a9ab581eec514817db77f80c635df387da0192f6971b221edaaeba2ac6201cc5f5280a386b28a8d49f6f0e45ccd904ec80c54d329cd29dc40bdc3419d2593a254d51eed791a4b36c9e261c04f96c85a687a55e352acc6717330ab9765c90da11d432a54c9bc39f1dc4ddd0a015159188c1fa09e73116390a5424038b3b7d0a8b70a3edc1ce04d410700afd56d5d1006f7723a0f746a4f294f071f1e7561c06198a66aa78c83c9604f55700f0b2bdee54da7793df2b7e54450f3e4def0b94fe049d4740273464a775ce3101a10e49b376d2f309d5b6294ba2fbd15049e10c2407e822171148ef3833d8332a406c36628d6f993e11ed276264682a69b16553ee1db0969fa2d5943dc789ff41b49bbf91377c1b1e084678bb6af10fb606adca00444291fcff3780a15d7c57fa3285d145625fce838e2436d895ad636e8d5a4ec8337f01ac32b94898c4b22fc6ccdc1603d9a4c9f4ab8953b4becaf2c7ad29068dfac4d942785138c27f190f108650f60f58d3a178bccd25838e43816d4701c95e3737e4c661a887db531702eaea0bfbdbb76af7e079d7200297f1721a48cb1a4f78f4cce4493e52193d0a15ffdaa0e1aa15e25dd42f851c0b465db2936eccb2091bae3be4605a539a2d61a6e37fe353545c395690c0b09b977692397a06488ce8c2fc25d495e983f7edbf5ca4462d146925d63e8a88105a01c12c2bdcdb0c25e55bcbfb16b02b34791ada51df3d7d9efdad713991d3425c535374e5c72e0aecee8397e852f78d9b53bd9a20e4094beeb8cd85e2d76649ce286ad219215475073d564411423358ba9eb0df830fb22196effbe6e5e743835e32b8801a2ea6fd16af5fe2161c83bac8367da76f8c851ea8e4a233618b86f56838943d9ddbc1f95feacde9662dec071d580a97bde97760e271e8eb7dd15d82c512cb196d01e3cb4bdc8daaac71aac267ddba05af2efe118542abcd3ee0cbff27cf4f481602d6de71093c144f8a8c0beba67a0296e7f1161e0bb94df5ef7c01fea11db5fb3e1380791c14a13d751415da3b78e4a3380c9dbe28b512839136348f1f82992ec56a355c613ef19b2d19d5d9f2200285eaf37c457cfe875e118be2b7289a7a1f5c649e76df3c8ce3b6b8f56ef9e5b977664917f84b7081c9ffe7ee9850815376e7be16efaa83cf3e05830ff5756e8ef36b571ba2925a3a5b868c1ff0bab77b4990999739dae66f0531c785747e84c62657483339c26ea88a8fb2a418923fd03e4b77b2784455fd037555f91bd22bc9daf9366b6b2d835b75b8cdf5673f1b611734cfcee0e2ad366fbfbc62ca7fe8d57bf0e4ddac40e9f2ab35a5288689b7501caef274f124db60b92e7f0eefca60a716d526d0bf9af2e323b814ab120007a9dab49ce7dd39b2ace8812de835e6e3c321f9079f8ef553f72205cc8a02d48366be4a3af5edc18ac8f9b7c478c99a04c85eb4d748121ef2fe52950b8335f6a9cd542dca4703ab7e70cb2a6fffeb766d339e7361026ab018c22e4e85944d10ad0ad26a72424f7c1143af6a875a81f06fcb2b31c908c0b46cf471798464f4c7bc387a7d30fbc6a679aa3ede4628b58561238dc6a0344a5a15892d894bee9b96381dbd670a9c42db9c85649b0306f899151c5d343688ebddcfb7636ce7073884df0b9e898b7ddd3bb4b49aa33e7ea53a41166f34827a8548bc8cdc7eaeeaefc7841530531d159ce70a9343dd26a7bcfe4f4a489260dd9672659c1ef9160cb8e5edc7772807204cf0fa3902427101f37b657f11417600331008399a823d3b4803374c99351f0febeb11a598a8512aab90cc893cffddbd67d058c3588acc2f38aa98be84fd6a488bc256fcf6bdd276cfa8f149fd948eb421ed26b2e8d8015b063609c8676c13262b2f9ff26a99cac16358e4ed59918857bed219323e2a6ba9d7648d3fb48d1302c1f835b7d6d3bb361436653f1879a793073101377d115043f170622ecfc25a170b7c643f5850fc73d10a7a6b1fc047fcd7f56177088c813d3b8f2ce7a6b8451c6cf5ed54e21f4f25e3af9aa9e2e4b8bf399c616dd71eb6855a31e1f840d3410fd1ebf7acf776b71b1dec7b283e7415a684f97e8fa007757dab0a84c92a7cb5cee57cb536d42c39c9031b9a2404208563549b0f547725851853b5df723f8eb0ba72dc644f81c38a4de81c0fe89545416b169b0cb4022059dff7837cb866afc566c66c73fa83a2c9c029f212daf66016833f3e92a5be70200b262e272f5796d4e1c654f9f181fee7d6163dd2f999fda9a569a873d4899245b3a6fea8741ee86cc5e56c74513dae5a00e5f2e53b43b691b01455e9fe605046fc1cd966581d56f4e5c4f4d92a526127752a54f10695051e020db4b3faa4ea7358cf71406eb871e6804ab7470d9fce339ef158d80f451086b93a8aada8fa190031373c6024878e80c8cf169bad43b45ccfce753d374bf33e71c05f2f735540196435e242549fbff739b283c3065f582a834ef0b21ddfdaf45bbf18e247e9f25ca21b7668e29b8c92b2923573ca527bbeba48ffe6d9214e323604f7e066c4a3e23f7e37eb5be95e3b6ce143bbce760d48c6ea9aa4df6e7eed6ba42477ef2acc983f19304573204f27b156235025abe3e1ea6b5515b900bfa191dfd2fb59d6578699317fc4b2c9c5e473b8dff43b73d5254da192d0cdaade3158b1e4560d3849ae4675e5a244bea2cba76c0b8cff41278d89928eab94e168657918f5b6cf2c031b90d10dd0bcfaaf6546aee309d52fd95fa0320833e2ace942f7b6437d150bd3a4328e9289e8dcb20f10fe8d65453ce4dbffc8a252d2142b6a538607ee5e6d8df9f0c9349b69dd87c42672865856f961ce500a6358664ba831d39afae8fe2996361a81b749fc813f98180ea802a2e5cbcf043e835424dac8821c4771d19bb662dd33b6db2282bd741eb1c6496bcb87529045abae561488aaa8aacf8878db376db7a91d8ea35b11303ced21458bccad86c1f99161775919774c3f13633a6b56fcad401e88cc4925d146cdb630f4ab78b3afad88e289b27df851703db9851ac924af17ced6c318b0117ecfa068ecfd7ce49282ef697391ad628a80a2a810cbbf4bbcbf8a4b7f74e26a5d03f4b72bbd1b356fb09acd6ec30358e4b6d73c1dc51b8803a801c801674ebfd9f2f9b5e2eaddae82092a6dcc26273727fbda2d7fd5d884856e5574c24b7a4a91d9adf127988e0d5934b6d7c1eaec44e5970da7d70ca2dbdab8ec99de7ac49773d0beaa33fb2927d1b25c27d1135f154919c3db79b82535bfbf0650179ca4855fcc2465dd4e7748153cbc750148e765921cedba95aaa05f5f1adef8e0682368bdec269c8f3a4696b6e72d8d6f26c7b4f9b9f8cf2c3fdcbeb6a3893762353a359a548d3e3cca069485d77d1bfba0a5ce62235b6120c05c6703eede01378bf0414292dbc7c49272055779ce5c0e546ffa209ccb7eb96863ec915922268af495e801f04c9517736418b499c5ae45d4f80d50e65802032c77894e767291edc44193b89985ffee91fb5096ff0750f4c479090a0c74063107535fb43b0394c6c1e256367256a1ee045a0c9dce63043c2883d3168e95adf3c5be6a2d10b89da0e944d6fdc6b52c1212e7eb1c6220039878755650afd0fe04de08a6d26a21327964943ab9774c826449228c6cea3e4d99900932c1559558082d5b01e1e55c8737d057283ac146670db3e975f05aeed7f81365e52d9275c3d116049b50e2172cc916c5fd42da235d7415a8b317e4d242bdd33ba8bb0397f3657fe386ca32a229a7a014b7eef143b72caed3dd4437823d8a780d763fd879ac6b7e042cde4942c80652b4a8e827d68364f36b9b0eaf047b46009528ad6ac4f7b8a448b39d4f150db4fea2de9d4b0bbd3e3750fa9b16340af044df314511ca630c11933c646fe180aa49c6fafb6d662b2b9bf9620099149f0243992621710513bd7dbabffff212ab539f8322c1b0e348a9e1567ed41aef9e0af9d8ee6f20fcdd3382fef129e26aaa65bf4fbe9168b2719c465c0437bb953d430e55da0124432c76e3a823c78b2d217b6de1c860cb8a990fd96a350ecaa38ada73dd47097faa60f233ce752768218ac57b3a08c52b9d9e69480d591c14d5996c8b0436554b5c38275c62ddc09b23bb4654d89d8849471ca1e1ca07e8f5b122d92da0db5c98e8b9a1a4293b8de715c418ac58d22b6133602dc7c1685431e81733b08dca3069f5f35ff26776af431ebaf898c8892d28b16b2ba880a1c24e098ec6ae0f3314c0df299bed9809353a1ad3146e420588bdc593d1b75489b34195a81886929e8078a72363c5e8d02d9be8ab5b1329a8e8941a4a2d525fa0b246020e4e15e9211e11280ab468805fe9ebb75c83e5997b8113da24c5906f8f88fbb9db40bba02368433134432558b4285449fdb1913c10e97ffc26a537221c3751348de9dd6f74442345ca58a909cbbef6247af0ff305bdd215be135f28ddd3fd764c5c561cf3f0b0e858462ea80714fecaf5e68b11abfafc35b5175cec7f1d7bf7eea7fd32d9013d919e0fbde54c2245bbc33b523ac8356482d3eca4fc5e6736e28c39acfd52d88eeb8639d4bf0fbbc6e5537763aa262f3ae9f0dbb6803f5c006d8b97f6e6686d3454c1212369c466a2be9e173538a440d6845d30b0208c9d8495275c3752cdfd07fb59ab796b9c4fc1b1ba12cbdac006b971d23b346fd4db787492142b88b34f5653870f213ca09a3dac63ded5386e28a4ce9b4da2c46e5cf53fe6917a3c372befdf5021c3defb60f43bd01da839ad2d711039cda32c4b1dd844bcab0e59a675b2b25c43512ab26dff4535b74967c723bdb676ec9ba16b6fdbe994069f9e2b78fc5b9b01c361545009bfaa05f8cf6636d679112a15102b0300fe2a6a8371d41a616d359d5d66a1161ce06cdd370ab82ffe84ee8030eac500a5d7261fb664a855c5200675d69a703cc8020f86dc8477daaf4afccdbae62f0b3d45716fc7c7b03bba9435f60d9c78ed8bf5f0b2b0442158142d7c7e36a0fc8ae1c8466062bef08489cad801774dbdcb7a04d69bf4a266be8d7c87dc05f2c9387d770e214eaee8c026cd433542c9c381e95af905a4fd2d4b392412ecd00745338c0b4ee05887a5c41e7f59b24c893153c8fe73f6e9459f08b6aa86ad183505fee77ee07263e2fa07fa778e9dc36c63c60ae9b0331f3db934b1881e5561921a7ba1da31ef4a23e3742aae9388187c1fd2905fc56208e3628239d7150a98bf05629357e3bbb874f9804088c02a3b553a5ea1499854cfae74d3d67dcc6e6201a1fdf17c98c8e3eabb2c1f6f698f66071ab3baffc80587d6c2cdc34627b10031ed93e55bd06ea7fcbee811b94f12a08551ac173b2b5ea3cbe257095218e78b91d5402d09734230344aa7a1793e0ba02d583160298f47fbfb00323e69c3e9570555725203ddcebe1b15c18fc47fc5ac456e25b597408b3e81c30b6fb50b730070d2230bcc57f749c970f8428159659b5a39b73f20159ca47646da9766cd55082296fc945a41bb4dcd7f2aa28585f1073018b1cccced05f7818b6c944301cf9ad66e850c39c3e6fda0d7ddbad79b44e1f9181c968fe1babaa2ee59926f20fbeb4bb549b9d43a3c3e4d9df7807bbd1ab83520bed4c31ff4f0980efef4ea50cf5aa503738670f0513101a2ebdeef52bab0fc61ef75daa125b17d81978568038d1eef659e0e262216f91aae9bed81f93df35c7d3ce613d1857bd2a1a76fe1164149a67d947ee4f81f6cc0d240d5f6de69dc9515824358474ad73281d48db2d2cc2e5e47c7b8c98b47ad9b310183288e3816d8a389b74bd62afd76126a1f237c83cb470e2336d79271069a9afffd144733b4e11a249f5d2a13e990518ca67161fb33e6d9ef7c397dc5e3ed2ac5bdd073bede4c0e32d29995ea9e876c6e7dacc8f9e1f14a499c18e78fdb4457a39fcf98fd2562b51ee0885a52a2b72345d7d4ff25442a44ea4ced520090f20b12d015bd2cc4f349bb35b0605b74c0df2484b2aec5535ba9bce3a3b75db2798ea3b5862b11af5cf9cc28ecb2bd13241de9edebb553423ec615722e7f630807376373b5ad7ee7ed2daa33922d87e4287ca7abf27e7af199f5ec24fe9fe141f88774b26e69a3bed5fd78718ffa0d0da25d12367e95725730cb20d8218b00007eb1b040c4ac7dbf451331001a387d442366eed21fb9cec885f64cb3b982a17d289b96aca227572ac70168bfe355d81a3dadc45616e3ae2dac8848b5f7259817fc2272187fb71cbc7e211aa9fe51eccca45ac75695be75cde62f434dc66c5b3de64c25258cc6952c53d6261c1ef335010469ce195e08a20a9d10b65c8301669065627b2382ac9eb5404a132015ee90d75564851f663c6eedc8710e94c65b7f5df2003b83abde19373bd5639fdfacf3f7ea0a4b368bf3846734dab1008bb0bf38573693ce7fabae58382a63ba8dafc2152a30276866e12d0f4cadcbe81a888f0de556383324337940f90c2f27d304f37fb34ddf28c0744483e58c7f456ad05026b3103b201c5cf530090ac9f7e1684f5008149c3409189e0daa3f7251c8a32a07abc2777531aa3bf4b09fe416a2fa0c31b9d1f482c95889df7a04ca6a137f768a8b41545442bfa947fc6889736bd218ac9758baf8744ae910b99eeb458a409f6ed43212bfb955bc495261da916ed3a539cd025d0b7baf34479d6a28911ffb8ba286cbfa8c599fd7188b4481a394f7c564956bf50d00c46f6aafbd8948d3fd59d0ebb5982cfa2ab55fd4132dd0a3b0c519ead56a1830e1f4b3f89b788f9afc88d653902134411874a8a7b2d7b1cdfa5c1b43c369db61d6a29cd80846d2aa7c7e7492fd96457d6f90166c0a3d31b28b30e026da087ff7076818db0f2ac5174e3b8677139f761eab25601fb1817ba15b97ee8177b6ba822374936d2f6c153f8ad48581b1a2d53cfaee300119ad2e9d630fdcfb64e9a1acdc31b89a9beb3ed9c02311daf7aae5e9f05cf81be6ed96e0d18e9d4c81535405bbf8a0e2e1fb37db02c144afbb59bb4d06d237e3ac873add8024d01e1f585c90b934910ff64660e05519501cbc2d7624e4d1f97b04ce12c3ea177aa74a7c97b6a73c2d0783d0a0b342e4f146b365b925494d41c4993f9652f7999fdf2d1c2fab190e52c6b9279415df3655e3db291defd40c7d02f58c6fa3cb73ada91d39c466a077b4a8183f54d7eff9a043a5f1a21a2e531295c839221f9e79a3d507da4170300dc57c2f351eeac693337b3f056b5a1890c87ddc8fbe8faaebe1673d587152162ac9820b5901999bf53bc08b88af7ca320141a90bcb80840c3859c7db743a3a4e3ccddeaff0bf6aba7a66c53073c916e1cffe66d81056ca2d3424ab1c643f1bb889a8653a43c5013eb44e9d29b3853ae9cb555ce4f66bd6c5b38aefd92f6903c353bc5a102ecc4936232de7fdb8ea11f253c1bdd5aafc35d81f219e2aad501422f175544bdd7e8560954b1aaac90a1d1e50b37ee5890fa4d56e83394681536d4690c8a41245102fe716e89a128271b42bfe9e6daf874a98d9ef92c052971ea0298de79690b546431e9e99782295e7dde1a830ed03c04ba0078ae0591acd010c0ddf88b7380a0bdda448e3bb87a440df46c4b76feaa533e09642df307daf442e7a236cbd55d19086f4da62e6b1e5a9c72f38b98aec1e31d02562dfbe89f8bba74b09fd38e8bdcf935c00651419de351f1b2b24a92d07e93786cc4b034a375490d98a44a58c7c6e16202c1b2f663ba78bb8cc1deed60cac77c9328d0eda1959c21c39d888a7a1ef149689c9317bf3867163744875e01b492aa133c1e852537c008f3b227a6d8d67f5bebb54b253e4dad1373e1322bd97c62206191e3580d2a983b00adbf5582f79d660ed291fd6cd695950ce2456a56f4dcc32ccdf154b8548dfa2ffafcf03de4040b160ce1f9058439881d96f0154e5e8af9dcd9cff6dab7c00e3dce4f5f10ee9208a2051cdf1e2c5661bb9f9a9f822d2986786364e46d8d1e9667e74622436fef43b6001cc7a7c255da4a9dbbc5235d1340bbdfcf4778dca4ed69f954d44a2678ef8b07b5ea4a4d9f91c1920b0bd1817868eaded86ec90dfa487e7f3718b545e8e5c046a513c53380bc92ec99c6ca40ce4f917e3f1a48644d289f0d2992d73d6c185fe986e14549a89607c077ac02a50ccf0bfccbcb31e9228822fb05e5b95b727331529b8165c2eae03e6bdd2eb0dd3335285ff94c53e7f133e959a1f20dce1c3909822bc7627a5829cd4b93107719ac18bd4dc44eb945e86bdf6465a0069427ea26bd71cdb3cf238497fd37e688d6ab7eea534ece7be182be5665767bfa27085830357df5535d0fb0c5692fcddeba4fbf62816f007fe0f2d681c89992c310078f6b033d804b07b0b429981713f14f74399a4805a3941f27ca9143ad0cd8d2e7103582b25c0c050f854f5bf51b632d5479fe38564cfdd55007d84810f8e3106906247ca8ae9f73632430a5d3accd326c83fadf64c18c0944e680c0fa6987d1614a7bcdaab01579670faf682fbcf06aed871c82fc6577e312a1bd75d9732d4cf3bd639b962006cecefb780dea58f3515f8bdaa80d13e09ea4a1633e62db90bcbc8f66bd3203764062137fa07a1117d0019bc80a374fe6eb2f78a04c407bb9db20e97a5ca75406bc0a6c11e868893d91554763246c181372e2a716fe939a612610b4525596997c664008ef2dcc7d600d2a46fe406661ea1be8a65bbb6165b2ce7b7d88a6cc5cd1fa1cca2ba26421066f7f9ee071c5b2202c3a694323dc2cf861f3265bbca6eee0406815d124613f3b032ab4b91e321370e5f94f9e5124bad054acbf973517cf9951ef97f3bd22beabebdd190dc0243259d9b37765a8ff0ef241a9aa6cd37c423ec524b3aa7d22b4ba9aab7be4404490bf89553690e737400d1677f48bff6d35c304cf43e6b683369a16b95bd16eced96ed2a9af717d7bcaa6f91421bed4ff6cd2a0ddddb8eb59b77775071104a61e67b72ea3355dea71d71e956acaeccde4eeee1cad33f547f0bf59eea1b3a11e8b72835b24530212f96bcbb151f4a8ab03776d8c3a3fe2bb4109065e74a523ab7dd1031873612b4acce9ecdcf69e78815bdaf2ddfb05737ac9fc36f84be8525dbfe6817c30aa3bd853b1df7241d0ac9085875633583b1f9023882d4dfc03e276f28c97c981a0f1f7c3ba4ae07292ec7930bd85cb7a59661ef026bce12c04117b11bb64b7c91d175e4fa5ca8687361a6675bace8faa31772acc515e2927994432877b3dea7bd547e51e68716db9f4d6736fecdcc2d116853e5c8968c79a9af5f3cbccfb3452eba0d57b98d5d2fc6025651c98bb206001a4584cbe17486213d855d5ef9ae5f1df9bae1607f1acda3f2c1405fe7a14b4f6881b0d9fa6d548f6f016250c30baeb5a86710d80563b76093164f039747e0535362742c6c201c69ca56bb70e9bf2d3d1c16f3bd71923ecd8c097c3b4ec263d8813d899a44523f1b9aacf627edd99d60aa29edce01a7b04e43a40b5a35a2a0800528179c02478f5f30cd054702ed2094af18091d4b79f01d22964d59f9b66c560db74266e7abd830010673e706dcdc76a0335244e721c15434451489f13fdd57e79011a60ed00abd8607f9402294d89926fab505442cd3e9be8fe39a3f6a7b28c903b142670c0a7693153467c58785a29d50213c56361813fb71fc3bd62acaaefca7d6a9bd6eda838eb11df0353a673438c9c24509ecd470cee9b5d7f376c94ec1cfd5d2517c3f1f2ee9c8d4d123ccbc580af75faa7168d9db6b5b02f427778e2272ae31b2f44eeec452ea777380be6910cb4c98b6247e244bf8d94c2f97fc88862ddfcde28dea42d06ace3fcedec1df9290f7e9055cdf36432a6436159a22f3ba49eb553b0165a9ca52ce67a7fa50e28aa2961469fcff682821c12953efae57625bf60825302a222f521f9c31628132aae812a9300fdc0a02a70a794cc47444689a64d8eee0ac4b1e958b355d79bd8c5da27ec6d17fbce794a6581138f4bb92b525d48dabb0b7608c14c74f97a8d5230192230d0bab56be1c7ac45214c4c674d8a3ca3212d00a62df87a50900cf369f62a04fc9a919b8a6d7e3110c51899dce8fe7c7841511ab1b4c383e51d91e176243a4c4c46f186e8204f765ceac3d148133b3f2e1f0dbe924c5cf20c3e195935acba563a1521fc9676399361e44b11ce5cbda73c85d48322ea26fb6c385ed7f754a4ded73862386340f1c450733e798ef61d1e5f251edae36f40cd8d23d9f986b836e2790ccf8b755e45ac88c6382d8278150b5bf62837fa7c0b4df0a349dd14e955a2cf53e10fe25bf72b84a4524e06dcbb064689485f5c94a12c680e9b16cabe56d2a66778bde63a00bc57e4d028d52d6dd9ec58de80b933414ec029983de8d9cbc7633c799d7785572edf7ac98b0fb0fe2511a105e32c9e78ec5e41204cc19a095ae3b749d1b2ec49c3276483489fe9e84ae9c067c968921b3de864012429fe665ccec0ebf21d46eff3be117683309b344496493863224a90c82e01bf8c89fe76901545e9f0e5deb4a09a2990b547b8206f00cc109905c4178d4d69f1f218b297f258176b420e2a5917be29a2421a99d1ddaa3f44d17372b4831ea9fff032cbf6e1c4608f756065e440809b79556cb68ef81c76155293b8d8387fe34ca1dd21614b78c7a3a43e9dbd1bef2052fd787a584b272824a48d4f0db62990ceceaad431b4568a7b0ad751d27f593771a9e40aed9470fb5b6d16727fbe1a2590bdc2e12ebf7a487eaf94bc2e9174b853603ed99fcf12bceb3a1d116ec819d3f07e8e45231af9f5eb1e2636ae8ed4d40208dc60108d01689932363289e285213140ff702adc984e47e57688ad1ac563f2fd711dab57daf538d985562e3bce9735a21bad552cb2a8697bf5c443a2b3df9a4f820adcd827c2edfb88637113fb98cf9338d9b25e7c03471f3c40f5b88d982a7913c920db32e1c137578a27e66b2f4e166a229cd938547d40dfdb142ac5159d0d9bc31b014dffa7c64b465e9a2dbc343f255253fffb8cf1e54e3209630b183e096dfd7f5ed77c9050bfceb1938ce6a669e1ff47735f228e1614922808c5430159e5af8746c63f8840ae5f09697f8c55cb5fd5473e59001626a7a64e0692486f6bf02d5196d1135134fbcf0b1d05a24355a44cff86194fa0cdef885ae01568ba38d4ed2504c0fab7990de6d9263674be2289e6f19869f321553e331b9cc7badf62457e912491feea9332e4849e5e589bc6f028d33df3acc0a36d86b6d33269c2fa333324f6786b004223849f1f6c6d381a9ebc8a240fa6b5fe10eac0eeaebd6d0538fa3a4905a684df1ac12f0a46442f468a2ad4a9d81908d6c07b1224c36c54df39c9a6496fa2c6eece61ef7c0a283d687ef8bd278f7ac0704ad27a907dcc8607a30b687da83d327ac170d2314892a5feec46c3e4536b122122fa40f66df630a2827b781e83229083aa541b34d52cab8ccd02e349eddc40d259b3ecdb469fb59c2f41828535fe869ff04c1dad6e77b02f2f3dc0b81ce1aa8b7331ab2e0ecdcbc85b0c9b15abd99885582d45e4a8549d71ce61fe2d44ee5dcda1bc77925df5a6425647c8242e77959ba5d3bb28a76ef2d47ec5b6fbda7ecb69ef3e05633451fb5e0767d12704a9aafe60f8af7eb063e7a0e561d166c19c58e2f4579ea5a14553ab6549b596b2f15e5ce29726f0eb7f2c4694e627a0131f4a02e32b5c310f83108f3158eb9a381ed74c21691f3a602211e2b3185334428dc745b5b5e93dcb7e9469eb7a69c65b03fde98c06fdbc829f3f6344707be70be9fecf4048f3f77c6d40c3550a9520851f177f534f2523fb0115ed94e069c14b1a5fb8ff9695cd0eed1a5b283481f49d6374fa21897fd4b2df581ef90fe6c800360a66e222e1e3354af6565682c0b0bc238498dd2cd91eff6705efea16a41e84904f79e756ac6b0f54312449fb0847ca26d46aff8166e25bc38982ff0187c9db25fc095429c5c0895149e9ace38ae006a25fd011b068a4fc6c995d6f0a1fcada7b29164a72d4668b54852f365f4c374b395da977d4eae815aad1e402d49374614e1e670ebf512820b71e1b8f23c261871f8263b5e98e744ecbca300e195a60e3486f59fe9db4724b9dbeac447dc93e061d667f716a10c4e277a07e14ff320d7d9ac202ed1447774aea4412e4935ffe26d2072fb03fe34f57193896a2122a67807e7480d46d4646422fbe9caa1e3e6646a5fe103816c9626cd651c4b9311f824568f0d577e207f3bd94381d5d9dd41c06815de736a5fa96d202705da69c3c02b523bdb42860877563404bdd55758d98d66fc63d2f22832beaad361bfa4a4ad0b44f422f5dbea044f61b5670f9717282b71220211175ac536d6b4987d911035bf5a58606042d1a13fd665be3ae50ccec073944b1f62bf67f8f98031b82c94829afa91d74061d5c414a851314fd8e968c52f735ccb5d033f09cde72c381bd517e2155293221a3d11a655126802216743bbace81f844f8e98e7028b7d22c69e1ff215dab74d00999bb93a0b15f79135ef2580da20215a219629207abd159ea5fa2a13b6b62954e4dc6a1059cb4787e8220582e90ff59891a7602ee63ed64f0572cadcb0a4f97066ee8f99d02539f8aaae3bfd5e9324756ee9d8d79d58fc1ddcfd8cfeb8b4781c62c6a05634081068724146df45245d3ed31db93c894ed85a67c256753a2abe18254af51eb68a26ead3bd539cd33dd5d6f1124fd15e04f69f37aa0d8e18fc3b8c487e2095679b9492cce80915a2b04a13434aff5462af0f3e33f1406d8c88b3330e034f7becafd6396f01f443657ba5c363d8129153b073757b4c4284a851cc975ddc862dff8b78c103edbcf7e862b557ddefb1a1905078f5aeda6b342f94485cbd77ede604f3be1df115b777b91a25fa1cfbc251a19ec06b5f5b273f7025e9c9a4d9a6779881063c22a555c75c910c11462de512cc2e35259cb053eb6666616b66f4b97e925082221139ef928fed92e0d1052f84aaf68ae357a6a5cb21e8b4c7b3b28e3dc9da73d3d5e4853165b7a111e891bfa49ed36ce7fbc0a025cd84e4e15bfffbbf85072a8fab9527ed3526b67bf434fa8aac1834aadae65f34e0a0132737ee5e3728692fd3057700729a796604d5d141456e8e6a9a887b04617b0f4bc955865d547603418444f10e1f026c5e811883696b767001b4c4e7f1ad70c8b5d0f74fbe07d1854584d674f8430536f55b9d986f7d9fbae8565dfec4df9dc07b735ed08dd54b2ba356dfcc5b4a158c350b896cec5a8994ce64cae388d91fd8bb54baedc22fcdcfb1b308b9e394f1cacd20cd99c35807abc19a2e2a38405826d354eebe878663e5dd0b8db3db8f3368f63f43bb20a125771a8c9ed9d201636e231c6e1675fad14ea8835c1f997f7d16b4575ca599ae713378b2e5c02bf2a9270f5e7cb07251fad7d31ff53a004960ddae862fd1f62bf64414d9dcdab15b627ddae7e02cfef2e360935f6a2ab89dfac8738b81ee468bf3c069b7a3a69edac6fc77fd2207cedaef9d503a9ee118982ec692b6d6d501b7f9b99cdda8c323de0288c35ee02e248e6ff59ec5440d63d0b7be4727ba455a80571db84f20383ca3558d7ba99fc012ba48af7b0c42a410c42d52e7181267c94fd8b514b01f8220224b750ec26a483a7d768b8b580f9993f9682706e691d3641febfdfd71ca96435e008502e69d986ed24497fa805b6e7053f86b058b24a136cd9e9aa9add1438a38d5eef54eae6cd9adad07b4532af66e2b52a893ffcf9c1194dbb886de4669567f41bd0878e4ea2b7ffe0af9c5f2af31e960b8a34f6b60d2b8fb3f94960dea8f523211711f5b151a85398c41d4500acb04543ed0af0bd277f7adc7d564567d7201f2d8b2aba4805bf082d676d089db9e9b9164fab6b66dc3f44d8fc60fc1d7a7bb0b43f473b73abd830d5cbc68b49e577e7bb3316852db10615a287cefc6ce267fc7531f8328e8cc06fd0cb9021058cb7e41c035495a58eed613f343bd97d3d04e44bc1bb87ed90fadce28a88c08194cab26f95166095effd79d830c1b01711837deb617e9399ad46a7c822f1a975ee607acc7964cddd85fe973f03b1cc5d8a1261bcd189fc0d8c4512b572088978fac036e97bc4687f94cf686f9aef557e2ff06e2abb8443eaeb7beb6b06cd6b13897c7915774c1f95da6c05dd3eb31d3fe1ea4473876143e7d854f528ab0a9f7e27bf6c0a5e0023814580a8ddd62539523b111baad461c70a473659e6a6bc2b75d2cc1f71edde2575fcbf7a13be9b23adf8db6f4975edb70d3a278d23d73054a5fb99dbcb4b6c1a491d5bc21ba80bc5ddc345cc3b3e36b0056431f11f3fd3e25b161057cb21e05f3d70f7854d85e02c18c6f9b22a2dbe8c81f074d3bb2aa331937388499b1e6acb2bb82d1f50d46638c62a7984e159c8c1e393fce100ca2730a2655a40c4add4c32a9816ad6983d7ea1aef60eb5e8551be964a2a46335903bbed8124c70431edff9b8a71ef15469ab232a6140b980fc4ccb20b53ae7b10085cbd34474447777b64073ec3c94d61992ba6903e1459c75291ffd33bbe7cfdf4714e6d106938f19996051a105805e70b92384a577aead3de4173588c066026812250c01e3239b2b83a4c20f912e986e726da359c1ec11c865ee5f760d51236a92ab6588df06335dba87d27d634e19403fb6ae89246c7db87fd895cd31af9131cb8440e1414b04894b0f0db4a39adb87479a79310429646de6f0a6bed164b1354813c36d6df214ba97d875acf8e8bb1283dd003eee3cb00300868b99bf5d1cde8916a0b1d83f8c90fa4f3d3e682f6135847e34de1195bde20a4ea3c4bafdb0707596569fb86a296bdbd002de4f086bda50e58650ef69162967c429854d3b6586d4044e1eebfade604c5b939f4eba7612edd4b07a109ce5e5becc2e45880f93c0d3f0b454f9d9403d88a1ed82ab2057840bf186e93bfbf2c01b1cb3146e9cb81ce1d320ee3725ef6df66c91f9fb2b101af08749d4ab25a38735445466f5d873756ac9dd7eb5584c07e3c8d489a964a7a928d348b1180157590d7567d7072e22c742206f5aefe15e39a2cacb59d7c47439e3db4d6630008d57ceca882b15f5207fafae8a457e47220e1328c3efc2fdc24217a9ad4f66e88d156e6a19cb4783ae965d4c5fb5abd770ce235bca34b65cdd8d2f6d53f65fe0de3bad7ba8de86db7cfe9d3d66f15526a099309fa7f88b16e16e499a2b2de6d492910923c5fe6ad4afd93cc9d978e35d35992b9dd85cb0183a9d81c4e0f23c1941ebc0951391c2921e5ee9629f8dfbd7388c1fb73c2653eb0ad087c34bef2c06cc75147859b6015c93e7ff0441ce5ccaf95ce3510fdbbae925cdefffc121e701fde93e255958c66b3cf82cf858f514d0b50e697105dd202a8cb562979c61a0cb5d12fe6f4c4723b49507204e7146805d911414a1f28ae15af6714489a5f9772464cd14165e44e48b9314605c1baa326e59833f5e70d288f8e9648d26f9b32d2e5b3db5badb47ad830d29563a5be6e1827b880273dd84b910455f76199e8dea5909bee8830b646904784cd990c3131e3b825d678656aace16587969ee87b66c42177cedff7499cf262600558e77a59f4e4ac073fad2fe5f8c287ef7fff67a74ddbab0ede417791241094564242c1f64c98a594e64df7fdb7ce11ce622a31964f4c90f79df08790070797ed07dd1c4743fa29d8d4ed7b5df872d6c12987b12f7bee63b50a42453c67b112b7a45444c40f79d5e56b6e6543b5fc72fca6e8e450548a349cf8f75af8792b7293f0e5d7db761adbbc57119e6e9ce2a444b8763edbd2672441bfd14f49e221c3f3233cf7080fc746198aed363303752886e77ad5bd79849f45fbf5422e3808afc4539a9ca73ee1287a0ce636851cb911d994ca06ea7ebd8d03bc59699dd96fd306b7ab70192f3aa37b7666c632871e671a84a8926348ca99ebfd5c0f844e0ba00b757495168276b3f413a300299d995a1ec79caeb0d53cc884e81b7a867d872c402e90a99c558623cde7e8a7e9fa86835cd6ba4569f87a3713d8f73ed9156129ca6f7aa990f99bab2f6f9c376c6d43917524b7b10f1ca0abf9273abe77f7fcf687893ffdd15860e77378bf2642b737e0e46a1e22bdadd0d569f9ef92da9d57be3eec529ee64f34a3d79db5e4fc077dc763b3b542af9ac46231e310e1ea95f88b5819e1ff33796097217b5c8a3eae3e0ee60e143a97c4e850b2ecb1c6b6b6dc3a14ce1d1bd7d1e02addfee74f7920c88e277fb6229748d4c5aaee143f2f9c4d1cb16b9d6750c638d94a95da9a3fd897101a41cea4f4ae83364077011cd8e1ed3c816a327b343b5a88c84e75bef79509a329f4353248b50eaa856b375b50e8008e26b32d47e1e550eec702ef2d17c88791588bddc54c19e01d438059fa6dbd9e4849ed1fb53ac286885206186b1a526f28cce0f736c4be2e668620edba994ddf604ac5379f520b29bd1125e40280f6594056bf568befd302a3051c4a556ab329064769e4e171f7c871a71d1ea9be64df0d66728235ffa0f2f3aa94dfcaadb7e221879d4bfcc84521ffea0b868b352a3b23df5abe5f166f0d98a6a4b1e22a4bb484616ee5235795c76f39abce59c525cb58a2f430978cef4fd5d12bf85d63de74c3d258f61b428c0f9e9ae1d69f15b5aab9b509ab9c0cab7a5174f59bc392f898e9f22ed5ff2e2b5447efff99237631c523f19ecf6641c656b7a3a89e1338ceb43cc3f7a0e643574b50b0b2d052fd3ec1c3edcd4e4e618bf78ffaa443e6116aaa08bc00fade96d00085debb942b1e3cfc570217b36fca3bb2003d6c0ac1348079e4b38b5e4da5e604d752a197229a93b9ad10669320cfb0aab7a05e8ee2fad466e11ce57d85df9c512dbc928fc3301f1ee95ef9b96d30549719b861cc9363bf4c53768f599c8f2eb0f070dcde3edd104e9b6c52ac7570927d4af46c50a9c5a2e1f44c2bceea16bbb393522b9e2db066bd5d3ef899e0b47ca6c85e87a1230130674cdaae009fbdef43dc4ee2ab3679d759d473008688224ded6e3cec24df5fc4772bd5b1843aab551c0e979feefed6f3bae1fde51b3527da1bd30b36f176ae6418a10fc7842794f7e9453c520874d4372f791f938ad75396f67523b7341b76a6ccba0c09f68a7e57fedd8f6feaad09dab1c075e60934d3e8b28ebcebde28e4e9eb483ec1c1654154aa8fc7ed958bd0388a7cbf662fb0a9a10855149917f2ec370f68bcdec33f3c4bd1620a434653e39b28db3e38e31daea7772053f4627335d0f66fae088f0ed7fcc11f299eba479d4214193ccb592d36d6bf8f40e21d849ad94d96e97a2b77910e6c5ccc0cd9e4331233b5e11b7eadd9bb7fc9ce17d65cbf9df0bc1e8417de5ba404deb0d8c9e1a80dc908792bbbdb8f5bb1a14c37182e3a31c140bf963aeb8d7703c26c13cdb4ffad5651e17526682bea00d4af52d2a68beb8e0b0857cc3dacc1b7971216ce4d3624f75315298d85e1791ffb5e0e8a79599740c970efd78f26ba44145fa364ef4b7d2a37d3acceb0f478cb26a6b71c88a61b8c097f5bad9349cb338b5938e607458cc1bad41ad2ea48463899dcc02925369d9b24e65d7739f5faeebda09090837dc9daf6717d4ff3f34d69d0d6d89b008076ccf8f05513aeb4520eb31a3cf1253b7000f693e361fb8c48687459a2fc98a68893003a15bc8aaf86547a75f0ca6f574780d8ae81534cccb2a055c1bbf93b7e421294a7a3d3b34447ffda73da35a38571e68eda7db5077ed6c46e6f28f2fd5f9f9fd65a8fa353c7ebd79b5a7f0939a7ca2d866ab840883403ab1ac6614a02f64fac881f8652571a1902b768b74f6cbb725cca6f518449128e86560bb44784711f41f5728900ebaeffc57cfa4c2c13fd9a62d7cd9d232cdd9532e909d052c11cb76f4c7502d4acd8fcf8c36ceedb072790608fa41899f8231885168c4b41aabe0caf37c8c8f0ea10d47949c04713aa0d3fbe35c105b161930d6f01c3602b09b0c8324c98d13ee53c3aa2d0a9c3a6f8f250b312c88a7753d66cb7cef6a292b8ac87ff79331c3d263dada223325525f6e07e1dd06028dacfee3d1798e4cde5a3f3a36a10dbc5725d8982066d18e1c86d986fbe27be1d52fce01b42bb9ae1ee05ef669790faefba8525c7fd9c700eb2a4021e066aabe6b34c2b0803892c78fd8e757ca2318323561725110d6a06d6ae49df7cc3c71a468d732b23b624e07dec2c202537ce0271ccc4e35be1c81009eb7b41618e8c04eb7e7abf65261d405461ea003351a1aef0598c3c796a7c08f2ec9a7bd1da0c375fd564724ef19d1ed1ec1e8cd140b225f515a0069c472e387ed42f7fea9bf51d4aa825ba47a5faed912454e6c6f42ad5fb1a8c43a4a9cc5afe7589be3c0cbddc2df4328c96c677672dbeaa8c71264023c0816dd0d429c42b362fadda0445b0e3b88664bf854aec6f343bba63600a3de423d3b944fa4e8cb21a7f2dd364441c7ee8c15d63e48bbba47fccae593a528aadf73c54c6a70bed2313edce055c0205ea7881f12df4c31a867d56382f139407b74b3c38b882dc03a7ce05194e273f0e08586b665c2aa55373eee68a048a346b75d421fc42ab36c832396add06362c44ca113bb8664d702225fea70c97505eeca44abf845bb96dbc89fa461abdecdb07ddc339a7cb954a7c1e9c644972ee9707484e9d1a0a827f022dca35d6d4ea7b439afdfd867fe46945587f211269aa4102deda82c4c086f7b4d1eb3cdfee93a5a9889c9d9d58b8dffd153369300ae177624cca5a33e8e2ddc782afbf055f8f2a71c57e7b2071b44e5742eed818f5e7efecf06e27cc49cff14c6a0a444e00ff01bdfbd0e77ce4e6b58a8326566445ed5dd94a31ba2b054fce2745e9d2d19c1d3d14054cd8250a6e234875ed450528dcd68cf0997efb03c74c2267cbc9479d533bf9de79ce9e83c392650a323b87d96b1bf713b9898c6392e365463793a9d499c0316698b12cd8610bbab3225b78a2b308667b8bebc46b09fc7e1206e1b75b97ae5019613c6cdda157b0b2dfdc816d159830434809fd14c7eeecc13471d862cfb67bdb72173f5babb1449832c3efa623f07dfd39fc8f6c29c9101620a34470c4703ffd8833971d125b7bce0499253b039acd7f915c029b2b9fb7e81d15478c3f083a9718e8b1e6951a5718db0fdc2e1e9f26c237f44184db02c98ab08acbbd442e1977748520b2b828186a638dd1d33f20d23498004d1bd9dce6943302eb913f803229ba04c097532188ef85b375048916af7ee3b617c7a0446d007effac0ca1e1278375e6e84ec174b60cf17457eb3eccdb448d640aaaed9f57c0e0faad9cdfb8548e4fb58b4a60a9b04dd36ae536104ba6d6946f6ada2995e66c327fe2894e94101fe40d415e36e71cc198751b55bcfb4ac27573a0186b1c4627daf545ed3c458829832c9369957c05ac827b341a0513fdd7801136e094ea80e13f8c302206b5c8d511dd6acf819b2f96b56d378bb1a10e9327a91ee3464e55506a895005a86cbf3bb8970c04b2654dcf9643bdb97b749c4e5da3bda46e20e64c2033fbe851f0a06f3e3ddb8339916bb56f30cf50e806f36929862e6c13f0b41e7ec7d238bb1de4dcc2abadf54005cfaedf4c9f6cf213d92b811e5f969967a7d2a69c961e5f5cc35d5f774085833f581087795eb0ef4db3a556151384edadcac79ac59e373f2873d8ab0f62ca6ee06a07fc996db7ee4023936f71ee930af8738443eadf12169b4b0d4a25d93f519885a343be60fcc31f0536c7ec278dc2856923e1fa5bbe479c5d5294196f7e66cd5fcd36288af2d0e192fdb47e0dfdd28c543068fe1dfbb95995fd11e21dce843b9af1e3e77761cb1c2faa1568b941f39fbab46f4024563956704f7510b36d4e8b1d908d85d94fc324f0874af3ec3c8b9a4c15c735d475410b510f2d49bc4b25e06fb88f7e41591e7568dc81edeee10f97c0898e5555f95b78e23fba8b06856fe5890bc4f4b59783d5a5127f6124c0e9fbab2d12f08868fab0311b94ae4e9bd4c7c765a5767b0ad82e4d136a070e7f70b4041d859c00d95a29e071570346274c9738835c54e6434ec296c8ca22722a80f1fe1a6bfc26bc679de92739531da2043516d9022ffe0acaabc7c7d150d04e8485bada230650553bf470b2cf51f75fee22a5a440b48e05a47b107ebf239ba8f4d2ff7eed5fe2fac6d53d3ba436ce506e794f4dafde77539eb244186fb64ec91021dcb5c07cd517b80576cad84b80e67c2af7ffde971a2e0eeaf74cb9374970d6590bb7e545e482824f1c8079dbd705f3c52aa058b068e80cc75f10e4aa0a515364247b5898a829cc5921df4b2924602b4d51a99d7f4f466727395127546850f8783a9639a7576559be9dcd7f5013c0aef5153968d77c6952da0db42b42da80c51ccb9962eb8450ae52244398c76b11219a1bb3437e4a5c8814a1d64a9e2bd95ac2cca65b2bc00b1abb874499591b8364baa84b1c9ee438150995992f62cb0f86b1be1b563840fe8b79f3fd83f7a1e51e68ce6fd07462abef148078dedf79dad338c18f3608f94308c26584c65c258a764c21ec06d8d965ff3eabd820a172fe56220331311575e5a4c6dd4207e1a24078189b42d3f59d7ef43caf34e2ac548699497e9ead16fef3da52ab492865215eda54c8cf07ec8257cd98d30d1532af1bc33ffcdeeaecc3f8d1373ed1640b04b577ad771add8bfb3a78a531d30ca826a53b0c725d70bde5e86d2970d7d79f32898ab80e062bb2d9682a34436e4ab3393518af5946befe65b19a47b966da88926fc48496913f6ee6b6928e062d32ce89ca5db9f309d9309cae272bdef303e906471d85f933c5bb04f163495fe9a9a4198c82d98f98769ac5217382bb4aa1a6f54eed42878b2f522c7369e5b3a252cd9cbc3e71b4230edf60e6749d2f16b7b84b4d0d0562f7fc9477fc05042221a796ad2fa8c4f74585d2c52a775b52e9962d3297577a38d5609ef5f998918ad5ebe40c925c6995a4a1b1a5b7ddbcbc52241aa47d70783e42a36033420b125ff7de2f8c84a42ff2644fbd09fa6860134a710e3e13bf239220444a4dbd493a72e1e69f5df362ebcf3d6a2b38eb823dce563d041c1d580c40694ffebac012a7b508e5304c4f7ebbfe7b65af092e0b9b1d00af81e6ad667df46e023375301a8959867e984b1eaf228d6e7ac16ddc21627596a2a19b742c1c8bb4d6df61d42254aaab3bf911b5565e81ddbf0fd1a1240683e5baf2e477ef62e90e78ee4d588620b771d82e3d449da04ca83ef574b49079754f97366871241de9ae375550e32b50e7e3760259ccb11188c494697e8fa0b7021e0e22be86743e6c0a74d839151ec2d0e3a1b9373c0fcdeb3b25df95ac4998c580d45e00c6ebb673319b79c0383c5a8da79b4ee4084682dc6cf3e8528436449ee25f9a397351b9f3968ca962bd8a98b92b1f3ce38e0a41f7cd6596f7993fd4c84e4ec435dddc40abacbdb2a71661ce58d75a572d638631b3e44fbc1043b0f60e73d31b45fcfe11062120c406fba58734bd79f9a8182da7daf6084dacf960941173d5b1d3bfe9e7603d846a0dd0f5c9af600fe56df9c85e2e30015aa1d0ad17c9b6654ec524e983e3cefb352154475bcf43eef1408dad69e034ba8aa09af15a8db597e34bd17a44c6a1d8a38b678ca34b1cb025e29d38b946343372e05a8fae8df7352065d24831813ff14b35591e0925c17e857ff1447b86056a6eb5f5773d8a80941186293d61302b7253ee4533650e3eafa1c935c30c9bef071dc5374ff34df5d04a607d73123c321d99aad1a115284c1c8915af11d2fef1fb2984097edf4e36969db2aa0bab124aa6ccd84ca3a132b81f95e40383069810e092a572fb7f2f7878ba8ab5e8ca9e78d33d0410626bea85fdf907c175cb039b6b37d15518d7bf7b764ee2333ae97906d753a5874b660c47705f4f58790a2ffac28ad3bbff9da5f3cf4eadcce6e84f7825592ec3f4cc57900b8f687ca47826048b8580391745d6ca088a4a995fa10ef467b96e3d1e6831240b74d7558cd102888af571d8b5fcb338265fca0092aa039a7bf977ec9d0dc9dc64a8abde5b16dfdc4dbb7c089b145974cb24f52ee4a3363ae19b262aed32a3416d5736fc9832f8b5bfced37e358a092903835a349e24834fb9eb013fa75fd4bec4ace59da9ff2e64be66d46d8e400d7971ccf274c3f516c766ea17abc8f1d5e8e0f5c15069de820ba1de5b91282c6ed2bd51b43388d0002a9747080f0be47f5eaf19728cd43a44a96539057c977547f0b3c0a461c8246796b568b868bca72ea7e9641cc89843cd91ad84d1d8ea05060ba931c35028f44119960ac72a78ac716fc3ce9f11ca94f3d0d9374e83cb176461b9eeea57495c954f056aa11e6fe8a06e756fd865d0dbe8ba9d292876715edcb7a328bf25316ff3201b9eea4365449cc1ac5ae07b0efc26d42e9893d50dea61434d24aa6521a862ccd78cd0fda2578246a73a26e08bc8403051744cc1bc223d76e23dbceea1db60e2e83c026e0d8d9f04232789fc624374221f3e4354d7abebb4bf468421fb1f1a0fb7435760e9acf6d863a56ec7eb1915e89606d58df097e1424db2804a317d91eb4a389e4a94f3843dfb0d47f0b97f82c1ab0a8e310c1306a6e44c2ce465375a450925288b572b54f3b88ee50487e43acb273156aeee3242228868d38bbc102d1d0106e4f4fa0a16d12a678a3c77836a728a5fafbae462ae1a57455adebdf8f2599c9b977d4fb02f87ecca8c2f6bb539d5cdd19fc4c190dbbb86dcb6361158d103ab13a82a5e778ad39bdc645fbaa312327902454880234fd329173d334a58e1c992cd0c77fae9d77d228c2eda3033bd27865e54a6aac4215f6aaa1effe8a1449769870fbe02c0e35b37448fe3c301823fd97fc576b543e88dc3c156c75bce66f6d18bc4cb87a44bd4e507342bb244564226205502ce5eb4e1a597ad96e5dd759f51fa30fc1a1a4ac667a7ddb869bb289f8ee12cd5a4add65631c38c5c1dcf4a9a74004662be5b8f79289bea2d8230a160c57e1cd0491d0b25b4c560301b3e9f74ca9192c3a4fb471c25072c4e3571115f61970da25b0b5fb7feb380668a5391dd79c48e099789cde837598249fc7e5d17c1376fa786f7c0fced75962d9ef819f9e86abf552c91f1f33580cce45c28697eee76ca434becbdf56630b3d125067cb4d14a8ee11fad3f2cb6243a11d8647331048c64e2b9f7f4c8515d04416a036bffa5924e28ec61ccd7ebd472652ae4c3dce41521fddd9e3522f3976c57b5d070138228c864ab9cf2e6bfca52fb62b33b467d2cdb10461ac0a307cc9e965e06829a1b9f3c5fab7fd3d8cdcb3d84c1d6e8901d059fed784d28c5a141f77cbc1339455c736bcb383497b291bff81db1a706662f2b708e7fd2814a3151e1919092ae16dae5b4a5185ef389e05dffe6ef376594dc3af3d49d168f9e32d641537bbe0d2f4fee87901698a0252aa8316815ae3c5e89e4850c652c92da3f9efed78f253a9a3f0d1da9afed8ac4a8768be9f6e8bd093a3baca24df2ae733aa599ded9adbc9a11a0e21fae81baa25cbd746954788b4fe072e16b5f2d82680fd47ccbc0ec3c3da972933d6f1d33268c5f7db9827dbbb28d8e01c24f8408b538b5365edc08a6d49c80fcaa0939a8f9f295ca8863f46558ae600068cb4a0d31eda8f143d22a00d94d51d55b0bab2ac7ed1fd937f7fc69344f62440ab61a9b777cb9f3a363528ac6ec2210c4a03e3dc99003f895f910a30317e07b8002eefec1a1b60043dafae83d1e1a07067fd366558e5eb5caa5c7f14548fdd21448dd17bd88f7514c5f6d167c5e2e9a3dd11fa510508a81794462d4a62b096b61745855eb4dd7f28191c8027f68c63cf195d043e6b7b4adbf0eebdd8f5090045604b7b68b952093099a499801b9d55b80e07a3e7ebf667e104aa2a7b192e28def79f28d4bddd43b478fedb6e5c9a2ad4974924b958a292bda33e5f4c8017caeaeb4a2452681dfa3e05072c1646427cf34cbff1f923e134c9f6f15f8c783199925fbc5f74836f853d1ff9db642172f9dafd0571db11c150ee53115ba2db9642c73abc10e37969a7c8fe110ad493a8430842cbcc12ffc3e7f4bcecd34917b8df7b2bd9f54fd8188634d9942af9875efca20eb1011053bf4bd75d7d661114ae6464dd0c570f4c2bc9e40787577c610f3ca09e1111d5a398654efea7854f26967bd3299a40145b81a494aea320c0dff3a2c46ec5b68fbedd46fc60b1045c3372e2c9a11eedf66c0d9427a3c37497040f3db99e72c5932c224fae784d59a952d43f675c225b3a26c67d784f891d19ee9a93f5545f4143b1d96cc93d85afa1fdb3c36779c0df03c9669cbee037298fb26dbb8607b9a787769c22a5550850dc16c185b4ed8346add6bb55d104f0432f5f14863dc1da7a52f46c8add2a87dab5d8293f675f2563e9a04373c76f293bed35895161104aed01552c86ee1bebab74298aab980bbf15653a8b30fcfe1da605e505c3af434aeac8b3c06f3b85ad25dc4973af00e61600cca5a6d4fa0ff0279d9e25224d827fc117358d530e204517184afabe380276bc609131ee4af6442b25a336a217fd99d5ce54fa0972b5cbe19c7f9aced0668c33a696a202fc31663d71c527d1e19bb76d0c40b660108b343742fe509991ce68b0f890e2330fd9a63b43f734e988ed36b8a2d485fbc3a6d3eb99bc7a561761d300e2fd4349d8f76e2c47d7d4e1ddc23c825235d738e234dfc97dc699613255e55464eaddc8f3f6c08143bc479aa7b866a04b73f9083cf86dfb6be8a89d8ffdca878b8eb98d02ab6b5fe2dfb6178c9b7f4508d06af5fe1651798ac1e359ef5d7b5713a2796c2d3251b6b515e24ce6b47ac31c3d1c6c9929a65f4631903c8bb32ef6b790644a5cb6f2a96abfa9a48a0fbc5f2aaeab7bbdce3853d3e148f273e4097d4a9a3452b913c29f75da53414050f946b3496382e74ac189b5c919bc0d28a29ddf02fa10fe158c69da1ced572e88a99c1220ad1c8e60c2169c5c3cb385b18d6fc14a63bac5231164472cad66f7259ab805b51d8b8b247a2ea88d126fe81cd619a1f4c3e51fc12cf6f6d79f44bfae58199747b83881848dcf74ffc39f3402041f608dffd05cce8c092e9b6b14f78f67ce78385c4c1d894cfa6d23c92a22cd989c036c8ccba34e7e4cc502de3272f972abbe9c649a07f4981d64fedd09f671b1b7eb5cc019b71e92ed67b64aa22abebc7210c8479561bf795fd555c52edd21bab3b2b4c1a637f57acff6e4cafbb7c45289a2d9e05fa919d063148ec951cb6831472a23608fd1c1484455c68badf783ff6109ac8f756596e216b88bf1378ca257b07ffc296f817e8b6c85ca19ef829f11bccdfe7f6ccb3543614e5cd8bb5937bc1bb109407917d8d12f418cd894e042bf00c8a036b8899acb34fc2af46358a7a9151722b642369f7883feb14e88999b908d8f5683972056f4ff421912b61eb3729818b704c593f45bfe5c49f00c63a4a4a87bc06a5ed8c3e06f7d04e9e2863db6fb1edd8ff8c4bfcf9a6e8e13b6c225a8f253831fcfa691c25e2ead63da9c48b46c7f0f2d0911c2057df395b31312596ede5812d506052421d86168c4ab91e47da36b25c7716ccb1945f6f2402b5dac91d2e6dd33386a5828c7795fdea23495b9b18ccbe47b25e83a19ab9d7b825158e23c2901377709eb57f5d2b4ad7df8c3647d1b7499e7a25df9d594f93cd253628dd367fa9883c67853f62e8a3d1beb92387fdc0022665fcea4c72f69cc7f68d37244cb38e78105575dbc1cd46fa68c77e1cf54c0eb07190f3b06237ff54007abf0770d1bd76681db63567600a3549d79bc6cc92de4b5d13553024ef375f929cb681bbf52c0f6588f92530244f4cc1bf925e999f179ae1c9193224c52fde8ee1514fcbb44a0be8862706b7f1f3e228d7f6a158309c5f6682f010382d396c35218dec4bcf2e4cfc2f5ae37899248832d847ba103a0db29b518cf873b0d965f0ab6df4b0448efc6dad0b29455799b00b7c38ca3d5b69662883b57275fb12ebb4d463560f96af5f8068856243414da1d283a4fb4c3b0fa5d493dcb37317904d18f95c6cf4eefcc6fc2aa6657e999049f209e13ffbcfbd59f5007d0137fd168ca7c143f177ca8d2a00ac6b87bc2bb256cedf5fac4b02c2feb8a7ae6ec48393c1d2f87ffd0b36afcbb30e6809ca20e4cc61a212ff069a57004cc5ba060b0554df3235d89742d939216b7a763546e8370cbd4b1ee6a8be0d1e60cdfdf872503e386ff27513846a8d75061623ea9a54736fe50f8bf2a593b510163b5b98c1f925a40dbef2c054b05c16d5ad9e072c1530b16d67d4b6cca8d06e7fc66b91aa00578cbf4052ea6607b1cedd3b4b746d41bea77176089b7ced601656f779d0f9d8eb2d58aa38831401d42360f041ae513f249571e9ebd90d867cbb5e9677ee92b70fe2d10460cd754d1bb94239f3b70fbd18cc69c1104ba2ed21ea2bdc39f98f2ee239a003094e8af83a602de0e3ec5b022de8e3cff4b21739cea1f17357ee344feb890135711c763d9994d0f01820dcad2842b631bfb645252bae152af01bbd7d332aa94eafef2194239cbf7a6a3f00a79051814dc10fae3f89c2b632d16cac650db92e4f61ec57bdb2bd862cf6563b35721c75312faa25059c02faa3ab4215740252630c80cc39df16d4cabb0044950f805ca0cc8533fb679d66841d203df21ebff7fcb30396392272f255d3d805c64232a79e5c45e68b71d4fc4e8fb69c4150bb55a564cdd8286e4d5065891a87a5e8859f95b549bdb51e7b5834ff6e0289b3808ed639dfb5d23f51f58b9b784ec7046230b0b7149a8efd9ff7b8094298243f0a0c18fe82eee586287fe3fdd2cb723e8283b0ddf60d1416b9ab719763b5e2af57c1a39726a3bf8a621ebb923c021e48f05437f2f140fc445165408be13f9f54b773738e96b51a173c15d33744e61f77fc1d07e9a0b27aaacbc440da2d303e8d5e0c3b6709a63a4fddd2bc45ec85ad4e289b57b8cf643f09f9c62fcfde2837800c89933a21fb80f44678e5f488f1a2059469402e287f793456407ab3b9df0ae774d2e5ea5e6e171798207ef4753d96fd1485194c022117b5c0a384ae8ee646bb6e38ff13afa2f4af2eb7dbc406b397094b230e142d2f76597ee3e84fd8780166d94f911ca1b952caf9e2883d594880a1c7894e339e6de1350219379eb2293ea32ae5719863fa33351f055bfbd7b953d9e1621e0d4473b51d530fd76ed1e54db5a03d67b14851d836383d3e81320119b6fca2ece644c75e9436d4b2aad720441c84a9de28a618e658e185d6ae36936f44e463ab0a1fbddab7b7432db12b452a2cf68a21af232bf2a4f4337a8f897982cb7ab53e00434bee58c2116ac997a4a7ac75b0bd4a9b6ceee7e28fd60ddf61131e868cff8747f32a8e0955e9710ba65740d97d736c5d1e6231b9eaf6cf8a4c5d866dec1e8477f0d39623d7bb9c6ff3598f336bd9e28c0b0edc7fa2b51bed98860bc0e9b5fe20b364fc6e2adabddf0dc50aeaf7284ec3871b8e6e8f0cc46c42e37cd14f3357ab8c57490d30dd348c3d33055d58409f9defeb16c8fe079819b087e1e0aa53b5792ea2eeb7f358ab0afff4c88083eafbe66e33720d12e94c9c3bcce16fa0a22fec67fa9c885bd0b1f094c7a631a52bc701028595f05792776660c8aeaa87480329c0ad70c65ee23d3926a4675d58d68100cf51f3f8042ed7675ce82618e4a7f00bafa797e343b069b51590c68303c87d8c89287c8b2d01b283b465ccbb96e81b54c4e5ef640565740a94a09ec252d59fe90e7054fa8f6bb4ac1bbf083352c5c6bf6527f472550a2755e2b9da36974bb4d5c11ea07f8a09459fe38749a48c8c9302ccfcf2577c92c0554a96493325bf9e1677c8f5f8a13104935b4b3542fd51ae6629f20f05bbd8ccdcc09283471b8f6344f092106a0cab5393de567a26f1b9096150e7e737b54c85d7815140e69fc18122338b969556319db076a8d7b6a578e7ec6afd77f94a0ca30d59c6908b704262da6d2857579172664369e4eb8b2ba998bfad43a0884d2ab6320049c08506d2d0d458eeedad284caeeb56482095329d871531b5909787fe24afc4cb716757c28d7c10f6bb61964827d583dc091b6bc0321fe7e35dfcad512fd50fc013e2081c729f3f68044269fcb3740dfa0c340b32a0074e02f80c7ff171868f99430e646b9ff656b4a28f223ac236afcab3b96c375448e1c535541923cdeee69acd58afe330276cffcc9fb1cd503be7562fd685a744df7c2620b2c9caceb180b40ebddedfd8dcbf2b43d795e7e1e5c2413017b09e374b55efb514986043a72f9ff58be8c2d1c3a45a48e024451935555d2fe1dcd8f3503b2d7a7a324dc05608cb559a6f58243c6131dfefd8cc569af8c930879994310dd6a05520445d9121f6ee19a227fd4f8b79eef72e0ea9f4143e34b6e53bd2cda8483e6374504fd749943e815308943377033e7126daff9c389a688c62afe5285dfdc5e963595236df37285b8977b58a6155b66ef9026e3b9bbd2a6ff09eb06f25cb372a1e0aa4d867619c100b82639c8624d02a21ce77b52f54ec43b9282eb8de2aaba72e9ec090deb740a3a3e52866c20f60ffc0611d79f7c7ab0b65dd0c36b482d052e04f14957eb8a9a9855b9523a5491228134f00cb5c239f345ed2c018d05b63142bd02346a53e9eceb8bab47794d6d61551452e7cf52948cdaed20f4e3cac569e2406dd13a0b5414c444c1b0288508b7b24d5f9dfab33f6b592e667b2e25a467e11383857bb0803169f2968425584accb0b4c9ec0dda95b305ebde36e3f237dbe371f053f429e699346b1a0ba3af7b1a5771e0d2568136876db870ce41d98cbab0a77733f033950c4ee627604c286c3c3b71fc16d635d875cc02fb9726294dbb011890709283aa162f82656516c96466063ef7aeba53ab1b9a4a342729a8919658c2c39efe088b5100206cb5091e64ee34fa645a8f7ebd32338082ae5de3219f512a19fb60aabbdfd94278362d12aad2fd39c94dea8b4cf04d188d805e37182ac4cdeac8cebf734d519efa0320e0be16860bb35b018d7483b2a582cf9b3779c25a07d0c010b99b96c0a688fe0ec82823e3a060d9c864657e95871d071c6d48ae212a22799ffb9608a06f7697fa39c37762ea1e55d8f9ed7f32a195bf65e5373bb7b035069f296e7b0d581d4f4f912bdf713c7283f78334f2e9190e737e29e5ff2f5f05b18de53cc25e31b6ddeceb5e9937535bebe3a8759570b1e9dd6079fa118752f6f33be9843f66593bf801f5063fee7cbc7f1c7f9f4f122ae2f872c32b03faea98f5e59e8a3e262fd3ec723fba8fa655a12d8557a662a1207013101f10dd08b4d177665a789362ff8b608147ef3d03f090f35cb4a53948d41b3a2a6e53272e6b5f75735664b763302c35ede5a46eeff61c49c55efee0d0bebb373b22f4c29dd35c4a87bad1fe9c8ed6ac955233c3209834ff96f8368594c9b25c949d3bc664bc2bacbf9554b1b83699ffcba9dd721c23d9df9f7944d04a9414c84c4d35af7a6816c47b76d6ea0e56ccdb48a004075c0039ec17475229671a1534e42b6b2c8021c03c4d858df144e645db96a94a6a4a147b4c47ddcb110a1cae228558745f41efc2cd5d6edc0c102534204b532fc08ee25fe318ac17e9a7faea8e918ca50f53940eccedaa8483a61950d0a96406bfac223c06c4a55675814a762d2db6a242b14802789e6ed654a4f80005f4242243d32d5f51d3dba3219ecf2e313cfc2d5413064f25ca7669111b0b5433d5bf76120c1c545803906dbbd538d620d8ec4290f15bdaf34ed81a834a1e8a05647ea75c363130b8eeb480ce236d46f098b1cf531569cd05badd25c2b0638d785fa0c936f005587af9dc8a212c2e7994f66560e8191aaa46ae9f8ede87f0d69d658d2e12a480b6211810380cd00f272ebbba59b75c7d7be178cab85c9b5304c1d305461286893a80acb85fd9b95c03957e443ebf361ffac4668b810ed5fee5d693f76a0662bc1fef4ad836d8893e1c0b74342ce97273e90fd21a4d2798174e4a57a2603c2e8d445c5c95ffd2940646908d3612b5d391e8a20a7e87a3da09d77065266f90506348ecaf80b64501acdc6b437faec3db512bf00986dd03f9334c0f09fb4e45adb3292ec83d4b9b26bdcd8d14c2e5dc2fb119d0001f870e10086827da7291ed4e16edf9e717daa1f0ad86931761c780526c35b958eca3c1d511ec8ab2e4ec89472e241ddc1621859443cf4a4dd1341becb546c66660e4dfeb1d4fda958e32c531170c0aa4b844401eeeb18aa1eaa33487bddb6ab8288f46108636e427f5c6ab002a53bd98572084bbd7b1231a5b360c7b4bf81f841aa4fc73ecb52eef573f118eef099b3cfabb7a95fac71d4ddb298d917b17af5d0936f0e3e6d8079cdb041ae030a8d4ec267decefce9f8cd2a7111dc7fb89b7484b03d37d91c101a84abd134283d1d998491e6e8b6eeaa1f83b60658bda385ef52132c82b72d99ec229d7460acfa1926920a8daa799480031959db0326b61399ccd74e9168a656d265a632a3ce9a3288354a942d3443a01679df4fcc2465236fec93c411411d4f8a563ebd596c01ede20bb29daccb14372db3dfab8fb8e79ac7852617813d5dd728bae511889c8bc8f20ff36e15eec1bacb7bf4cd6daf5cc1dabeb2344ab6e33ab487760e121c967ae9285df3ec879e801c8c79954b1396190f751e1d66661106b0da4ec78405ca7b4f2e417e4825c049746e9ac1c2b09ec28b3b097ed1d3d7fd7ede872ac4cb484d698e99935693cc97631cf0765e96ac099f7cd79d57d9e5b0b7442bef08e705c38a26c3d50e9cbfa64edc5ec7bcbaf7ed341f63802f6cf03388df49b9e87b248b74307b1de833e8f0503abad8e98475eca28bf27447d80c65e740ff1f8fc4f54f148279e63ce30cf04b65218815bb23093ea65747ceac0fc7f6ada9c0e1665b01f90e50d68d0440625474a3018a83886065b714cfcdc0160099bbf01ed82056ece853d1eff81949e60e0fc79c4d2f1ecab953c39cb5ae680a7197089bf34502db91826507e6c01b2ac385beded7b25785f2a5b59e54808c1151ad0d158bf314d23439b2e5d93bad1a4db0ead554033134ea56d841816f7b5a790fc253c9e68833cf8a06f04899489739b620c152c294a368f1700d63a3e2f9c825cd47a84b87d624865868589e19466bf2d5580580971ebb035a1d7207faaf2ea0ac19341a81a7e4d484cbeea570e6bd31eed3d07c8d4abddda37b8819f0a0d4c59b59560f3f558eef166278c49e6160a2dc4f7622926564b025d56b6eef6f98b1d03cc69030b4961a4ff782add7c3d715bd16c488025de0986c38f3f74d6320f7de7f63cfb4aa9202819070714d67e6037efd333e8ca9f70dbad52481d1ea293f9b8bd713d7b80ddbd1545b63063af9093b37e089d744cc8c656395049133a9834811149ee2f491d9483ac1569f8bf0e5f72ec21b94dd91f8d7154dfe9e03c0c7b2cc6bd06de273508c20918fd1f912bc647c57e53919fb687315f3e8b805a4119ef760983572a83b21a79ebddcad18de846dd94901e5f394946f1d88044067a80d38daaaacb2c9fca8e7e9e4f051eb706c6844ae7f8aeef43c5f1d6329c235e74fbccd466cbbfdfc61597aaaea10ac27e85621557d01c253d133b50775ed353642c0635b942cf7f3d16589f7ab575336c23d397a5c7b98c169ed945a99cb3c5a9dc7509ce4ad01e00e24bff2e5bc63f0dd49fa3d1f6422a42746423c89c6fd0112f66382851139ddb83bf86c2ad932e7d2d9bd0ec5abb8c516ce374d4099c7dcfbd6f878c644f70d216941f32c22564c371381811894e8fad5d258ebfccdad86f6acd2a6bf46257bc24fa62030095bb502e0891824a1723b2ea99f6da2226df42da0d554b1bfcd2ed6e3cc3db804764c3e8b841b4935d1e0d68eab2996779632f4d3ee2da31e64cf754f62abf4793733112e9ca1579adf9bd24124df3f0a7f881522c2fcdb1c9000dbccac96ee33b17c9fc12ac281c371b9a81644e7436ce5f180fde2047bd95e26a016cf15cbc47c99af580aee5b38ca14288fbada962735af83da24f7da8bb27cc5ea37ca2003c6f369af15e12573712f137bac436ff46a876c38b847b0525ac2c9d39b769639facd99a8152424f8a95e2b24c77564baabe940d6e1e302c1ca7bda0a45fd28c2c770e5a1760faf9849e5d1881d5e91b3a3fc4f6bbd648fd521d4a4b38f8b9b4c4c07cc34d46c217d8997b4d6e9c1f5d13c71aa4a59e5a751c776546519283fc57f71691ec10e054643aa47dec4faab97ebf31e66d1a1a2eb83f1e4283d4ebfb8bd03663d61ca52555b75f6e453a89efa9acdffccce7826d7c7d855566ed854c4aec951f82f9dae0d1f5d86863e28bfb89e7ffc74a8bf91cbeeebde524b60d03bf7540bec62b3302fdc31757550dc52db14b2af5a16d90467efd8ebdbf8f888de096cc9195ed9be47385cac6da73d05604ab628eeba8f272f18020bc7ef68ba4d368b4054102c7f5d8821f07bb85a38441f1c4b9e43775c8439aa71fd4cb208c1d037d8b09e014620e0e5e2a31087df6180205d847039050c175af3bc5670847fd4cc8bdb22464c795818bf5e9567f8598ead8539dadb5829de49b78fe4c7e6109c602a33975962e334506be075c7f121a18d328e9d42183bffaafe3b22f10fd98f51698f4a9acf980588b5f079e62e0fe1f85f5e99d2f36b69eeee102734f76ff7ab63387017dd4012d97f6b6edd24db23238946506bc9ca0a6507f4a0b3d2068b55d366a34dcbb0bdf9090f426f646c4ea0f1791f7b8a1656cd44d4e3087a6bb61ae1ff489504fb7f74af1d290fc79ca02f347b25e52558188259177179fa106351eb36ea924b3e7a1de2253cf3dc172efeac3e6038a99da4ce55637e0918f1d15e3f50d763bdc3f4adfd994c561a58744c3bcf3a6f187840939736bc33242ccdc8694d8eaac2f25a0fdab88481f37ff2a4c0beb13ed352652ee58509d82e00c885a3403949d871771403339217aab49ceb01541b16b49a8e464a2cdeaa4f525f2048d86d690032698707c77a7c7d0a4b30e2504afde1b7586c29d49d70cd724aebe5ccf2bbb601cbb48462c44a9061032af8cc7c5bfa9a29f3f600053742a60065a9b817c7b079c0a91d3aa7db0360334db6d76f6cca04d5d923b7579653d52143b05976e8be32a82467bca8218b99d3b59af9d432e9417ebd72f75bd133b3305762bae2e41ac66c9abb3f9906ed86555213454acd54c75bc4341386f11457613af5159e88b86562dffffc13f0a019f39c3c2234e4d12727552e9ea5247c2c6242b5e41a1ef12198c05b56f123a70b571a0b7477710c1c7cfe6fb73686a6331353acc9d63f9748ef1c7a3bb881847333f09c07aaebb55a75036b338393dd5a71f608aaddfd64a858116143b8afb303094bb5340ab6709da9d43a0b630b81c68f300d1bf74d452852040e4fdfa05b8cb544bdc9f733750a3040601005f1f6057254f2fb6ce5b2ac95a2221fde819ee795d39be62033967eea1055e87a8d6f38bbb9b2d5a906ba3a8d3f992cc6315b2bfe1fcbf546c8e7b59952dc17ffc531070c21fa5ff95d9c8675a2168620ae7c802f25c8148ab0789a9a69e7b351617aefabe1a7ad8b9123e3eb0f5a5ddc3dabd6e01baead05dddf24381433839a3430c799e5446184e27fcd1d5f366510cd8ed4f59f9e26920c85e46f2a861881bda58ec2f6ac14f2c603fe87c5f99d2c0ef4c3cb8d93c70a2b301219c56943f3c05d2e21dfdc91dc2670747123bc7675b21055a372cf5ecc500041f50e4f6dbe26af5b9fcb46450de4a5ca610a7fac86a9de8408610b6b17ec4210f67aad43e8d0999372c93e97351e5b7af4cb82ccbc892bff3227226bf1af10f84553c07585970a550be8b1ba9e36da1db3c469fc1ef9531f1150e04f54321c92f3a3c163d226654dc2bbe9b2c9ba1b246f34ce4efa1378da93b87a1cd6d52878aa7b0ca2950bc3d35926ba0cfbda67f2e80c7da24738bd65b3638d5412aefeaca0c75c675f01361959cf8700a904268a625b01ccd443be4a66f1d00d378b6d443af1156df649440d980ba90ee8d31060edc28aca4ec13c8824cb159cc8f66c93d0f769592e0cee3475f56cc51e736cb9747283d2f7d027076939b3c1d0b1f03f3de3337ca0905bd2696bfae2e7f9cb054c1dcb0d9abc09fcce349faa602a65050aebe060953acff261f677ce7aff50c6b2ae8b70ba504fc912ff1ef8c627e2b221e65b9358cd7ca082fe64c40c106efb1433944e9484483aabc5ac4874b6dc98954c0e72bd4ce79da5321793fb4739fa8fe671fa90f0fed24a990d08361a1d963ff428192ddfb48b4ae477cf3ab575a72479ae19e64e31326c8b70e274c6c6bc79aa7293fa68beefebfa62eeda8bf5b6d4944153be19572b72d9ab3df638322107af03b5d9a72e4184d9b8ddca1b7ff9123b8ef3ab990ed07549c5bcba795d5ecb794c1fec543b7fe665ec90ff9b9095d2693bfae3731b8bfdc131eec9cc5599bb70f86ae0c10c6b920207acf86884a87df8c1c24b0ede8c08d5689da4367509581bd92e5a4d3600c7b9bda9fc5162f97a2798003621283dcd1e98c638e4bff50e8fe0e173e383a98c54b8c7a58f49bddfb4124c0353a13053f5007a7f49a8d43bd8236b2dcb42ecd96ea2a51e363d97fce30e1feb68fbb2914477ed8fea73a1cfa2363f87cda6e69744fa9b2130a6b92e54a0955505f8ab6890672337221be3fdbef2b07f13cd485c0dc869cd85ba2fd33963d52b43da3441c27bbaf7aad39346ec42b9fd62d83451f277b57a39b047d2b206dc28bf8cd54bbba7049bee1c5925cda703a919a73bdfad26aa3410fefde6c08d0ef49b15c6c3ef74ff00147bbc58cfb5e97bb87195694d4e0f23e8f99325f796cbced046faec07433d3d005368ed48038ea5470db18a0dc18f4eda0c2830fb41e0c0df7d0d1176a5ba0cb2f651e82487b79d8c7978a9d0f8c70093cc1234d2ad59fbe7f8f5002daf13fcdc3b6fff185e474a7099f5400e62fdfaa3e815513926e34998b4a7858ff66cd49b82ba1343f32a56953bfe193ba2b7f43a97e0ba16ec8766bb7058ff44552c11df86f452dd7af39d4dee583fff21652c09a927283d0ba20b0666ca2c975d8ca38210be90c06d4b00251ba89ccdd1e4ef6c416cfab32c79d5744daa03cbc1e6c8330a8879a25cc2d2b18dce5e6202c865efcd20bcf1459bfd3a683394b9ddabac54f6887d1e6679154891be13a79cbb33d0a6d282d08756b12d294ee462899d8726ca30823e9088fb1293f8955de1c9c94edc160590b572f2e5be522ee3b1c79fe5d9e1baea71d875e1b11b4763b0d129fb5cd6c21289feb466a597e91ee05dd7b433eb8c5ec7b6904c34fada3f11216bc4b46e734d337990151dd685b8ca48c914af7f82f393ec0e2e98796ea53088c6f597daeb7af1032c12b5cafb02922819b6b4b14df3ea2024defd1f2adb41d1240a13de8c558bcc8ab5117bffe314bf3260ca7324a64252618596790067ff9d9e23c0e548674f56a16142e6f7031ad1f91e0839d10fbafb906bac233d9cf4ed95b4179eec5f1fe532bd1f8441b7e7b9d0307a3c669c5aa26c53ab46709ec6b60d91054d5e661c76da7d70ad66899cbaf3cb97e3dc218d90d7bdd96990da8ea7d7a3638caa1806e75546b21e602ce56260362313c8612d125e0f98262c79227d1d6296cabc5d53edafa835e5f560d1c2249dbb7df9c6adff5448c8a20597e7e411f4b0081fe987a25dea93233efd68809bb2ba38303cd3f51ceb00d07aa637f4ad6b089b6a5570deec2ffbdcb199a7491ed2f5cd45b283bda8574c9306278daf919b7869700d7a5205c833a3aee8584443cab96c5f1b13b4b8152a55d5551c55b047f128b7aef6ffd48928ddb583b2f5171c0ec474e98754c1ff254f24f6f1db99b9be425b82ca0a308dab3da88ddf4e820c38793c5063b7aa9f2efdb17c1341b8124648919dfdbdf38abd5f10fe9370859d546c65ab8d93fdb79d80675f9307368715f615f8266ca273e12b44adbc9a68a520083e5bc814d8af140ad49bb385ace32eb17b204df364412a51e3e9cc4786fae993c2993bb55940c0d363acac9d93a4cbebac00586d12642967b38a96fa7e2d2d5aacb7a331c5317373c253e31e5bcc993985cd3e4b5b483aaae2dce6fc2b6aaed371c0b7d7463e40ca719a29c50423d9aac485fd484f28b5ba9b9292df6970e50bc04014c6e5492bcb1a28560e72afe43d9c73aebc62455431659153c8bf050970c9d7e9e38374bd50e9d80eed06eed882257856286567600f757c7f416c84dd5a5223c5e3dfa2825e2daff2f4c016161c8450660c07967a18acc6016d231b245fc7b6130004207ea78172a89a8ee071e72b0ffd7e80bc9e4727e2fec0d8da4d1ef57840bf02c382b6cd0566dbce7dd3f048f46db2551068327a337080089057c57fcc5520c8449385e805b32a1f73f462f1a6ba413d919eba16ad3035b5459cf2d33e31d51b641266e051e741a63dc4d87afb955e9c8ce72758f2af9ef14cf147a89bf925935500440970898853cb9260beb2c984eb16bdeac835bf709dacf91c8eeeee8314906703baa4a7f791ea02efe503af207403d190de21551d55ec2559d0f35c69436bd779ea760960bd3ef24accabcd1517ff8ee5cf11360e6905f6cce544058b4e5b16435c496e4c4b93c8fe2fdaa374bcd7af1127877af29155cac95eb18d24f5b64df88d580e5243fd8419e8169a4ad73fd89c3f470f202b0883dfcc70e7ede1e6c9162ca3858e8a0f19a5446c781e01f8dbfdb2eaf4abe936f3da20b5aad7fe34239168f84315cf864ea40ef46417d4c2d1e45326226560f940391ef09fbcdfd222eb157c6ee1796ac75a04da6c6d0569c21cd1d665d0642fac6b885410c0edb1396bc9315c862a09c85d52929dfb32fb982a794bee05ff7348170b415d0988b619d8957b16de2b594d95d8ec7916bcf5276af9de9f2718e6647606b6cb0dcfff6a1bbaa1bef00c70baa84ef8803e11927a7c264fcac7bf9dc99eafa6a24b5e8f70e3454b88e757d6ca77b0014b72fbd6458e5896be9ceddc354f6f63e60dffd85c2ab2e83eea747700b7815d770961bc030a347ee85172227863b2013f883545688dc0c2fef005592f8b8be2e05b69d6d0deee3400950454eab70698190c90b9294589863a228d913813ce23554a7bf4d129883d04d1dad73bbb5d0c76cda195edffebb69567c795d2bff7226bdfe562d700510d5c23b9a116dd0ac548bd44a518cb7e30ce9d1f2cbc127a729e55bf7ad37d1ee03707feb0b021d0391d0a3c51b617e6d50ae557415c861830a2240736b77cc085d1f3604a92891de4fec221a5f675f0d7ec1939244bc00eee71c17f2c31f283720c56df58afec4cac300443bbd9b19ca34f8d86afa89e7e9db6281586f65e7f2ef7bb7db0665d67e192913a2aeb4cb1c460dde807b023f9d622d4d587f5b82d44b900b9cdc303086ece17c8a4fb5b1ce40a867a69a94cdaf4e3d8dcb53d441adb3915d3bc1cd0674d3c282a1d05ef9f0f37d07b9ec2422b3fef04d59b2a48cc0269e74ff6d4dc81c5dfdee63818ec60e6143433faa4900bdae1215db1ac0a12089856f0cdb77f620af7e15a819a5873bc3578a62c1b9419617ee67b1fe46049e282959fc12b3ca94ac1ee5724ff71a7c1de6f74f86e7c4ef00a8ae77f66164150acb690d404ea9575db2394002791f056df2a3724f7077633e440d4d104291eb20cbfc8ebf97063bd73efbac9b28963ce95d88ee9e67137cdc8f946d31fb97e58e8e421352639ce1e2fe94fda680f0ff13bbb67bfdf70f7700ec1763afa7b2de025504b569610c794890667fe862432cb7429ef998cc6dd7e6baf731b202f090433acba07ed68c76462cd5cbc6666f0679cfc84a68f026f535d8a1d952d220fe375509a2882f756eaa7531173fdf3a03ac2cd4f88fb39088623ab2f6eaad0ba1472f8d26dbeca4b4828bc7e02c236e65c7a3c9324207df2f1063dc415fcf3eeb92981d10818fdf3e81a6db430ebe152a4dadd7d54bb8e2974695a0d203e71bbc680b55e353b78c84151ffbae346b98b7cce0a1d86d552cac5b785176cd80a0648432580f699c62ab4b0fe55731a5dadaf5ca03b51f2d40f2151156d028140310d804e44b947f0ec2234838c369742a0ca7e934d753f3e6d87a71196e26352b66a49787bab28887b08d5e013b23e0f4b685d66a5ee3a0264818dbc6016af383397d526203a39baa420536a89a15c4f760b101eaebe825a1937f565dd430b11654bf826eb9680ac2fc94ee438ef2619a0dc9eaddce17f303d0093969c975c378e3e39418d2281180be4039f05c4ab783e0ce6da93061957160e57363d939790ed7c85800d86aeb4ddbc19c737f2bc099d96b24652b77d2dbc828de0eddaac4cc632c8586658be889cf0bc6b11600ddc260b41d9523c1c10d3130578406a924a327fce7bdb41114d25739d0da2ea7c8fed00f448c0490be8f9a9b255574061d1b688fd838fdddff9e65c2ce3ce30e264a92fbf0e3fb0118466d3a9decb6539ccb75846ba5ba10f91e794a01fd1ba9a2c7292f38134f1f1be64f3ec9c79be32b7a7b90aa440c2da8796784ba8b847c13f0afdaf214d8b695912c31381c0297c9975044346ae105e9a1150468774d4c140400c99da7f750f27e1e9c1baa40fa8733dcf162bafa7191816279b5977865fc7135a74bd0ff2c76906c22b3c9514a300f1b8f6a3cc6dbf2d53c31d2cf98a79437bd18f64357203b4e65a1986a1f8dd5939a1447dd78c347dbd036a093977a5c9d158db531b4c0e65f88e0904924c4cebd4d1e327d28134e2d354295ec2af6adb718bca180fd81594a525d999cc478d751a7a9a1a2db0e8fa12f0498f07b1ef662defda374b901d85a68c11fd3f12c17c3f26d56a049f8f274a97f7865e90c8c09ce26989693c0f43883de3170b3c831a371e587b38fea2e677812e24c399d18f225a1ded7c4b3085067e3c9aa6934430e7d2ba39ccc5544ad0d0a17b09273eec1a35f3a292f6b1625d3bbed068d8443de4740755bc059cbd2a83b360098ffac114748f6c2ddf5c37e026fd35bb95c4e6473af0945606f647549825b3507c615077893fbee96ca3f17741aa341a2d89f7e5d8c12be9ec71f1c0f1b998d6c746b3234e6e0a8f50bd8d6bc8f42b5de66f84eb399afb4b5a5484c0512aa4d31de10e46b36389ff77bcc8d42d4fbce9ea8815fd8fa88b15576f9da0388d8bc63a67294698294126b6e2008e2988c4320d0b3e58c883dcdb8852ba0cf94aacaa8a6a21a1fb3082b2b9433b0b5e5d99bfff08dbfe61ef625641a8808e096798248f29694bc82d689f1e260f02b53d85a1c59f4c925ed59b782cffb43db885f12f864470e8683f95b0d85c962c6ee61a75e4cf0404cd73e12540f57151d3d9d3bbf58dc8c07048cc76db0765a094d5889fbfa6945cadb3af6bb6003c9422fc0e433b1f8c890d37c0c6ad98a36e7b24753e1af4e0937999ee7047716f9e57782170f9c31a668fa11f28af4fe170e97729fd9b6658ae0a28337a386c883eb22c38ec9d9f6846bfa3aa29e9bf0633eaed6f59c580f9bb338fa75aaec58dd5a91ef86f051e24658c326e3efba79258d452338e0eb2933e5322b720ecf12754fd8370551f163a5ba0bf0a1e4d474ada0cb7599ba7a068c73c7b015f1b0913924d450edb604c19245888121e4c697470d9c5646ca2de8e804e64d1f3d19ee6cfcfe191513af931575b74335ab6e9b444c302bc4f4ad4e69a471b656e5f2047a0b206af92f0774fc092874300c7bdb083b4d94d2be045187b98686d3e775b0cf56650064b16aeac45d944d7efd6607036df8c2f7275d7280e84314cc62e4437ed43fc9afd04d9365e597434c4db163e718866402d6be21a38c85fb30e10bc5618cddf906640091dfc9340071d5b22d16c1fd930b9046b8d4c6786d608384ce762e0c73fd2a12395514c750403d17f30d1ce249acc905fa3cd745c88196e41a13e7aa98414c1bb83613fe934c09b302ed6cf1796d3c7d606af7b468d40c217c4792db78ab41d6db47fa8a6c724e47029dd72f8409037c3c14a2addffadf76c061c1b7402678d047268587f8e160718839cca0ecae51d75888031139f84ef276632f246a3ee459cd5caea4e3d29279bbdb3b8741c8e654f7143fd6a40180d3581242abfcace59027f94ea42becdae1ca6ff43f4108641b8216522833168b0dcfd024329e488b967b045bbd1c09a8e3cde2361f29e61326cbf99ba1d4f2cc21e24a5b1329fe6c55be98a1c343a0df486bd0dec40ce4d5768713c6581f613c75ca11834fdd22202ab5be6f29f9e6f6393602b3e1a5538a12497f12b7451c98a7300a2ff11c2c7c5db2ebd98d5ae5f95b9af2be5422f1d90549af0c5fdacb090e3bccdcd953032e84763b5529da6dbb784932618cc17eb3242fe1901a859391d5f064214836ed9b24f5ade0f165353cb0d047ed2aeddc76b8b4cb9395af75f6df8c3b3f250784593647f083097ca220e1b54293696b6181b73ce06efdbe6f477c054852063b86c0c09b2b0f4ad2a3789678ae8e8f130a2c31650142a2d53b309c00ec7f3e4d0d06db8cb277e0ccd32a0562648dd94d75d54ae60b2e4bbd5e9d166ac5e3a200841998a6969d5c30a3bd3fee0481e17bf57c8de7f173412b07366e1f1aff8dd9ae0e425f9e8b5decdf06f36656fddc9c95c18605b3ac0109eeeab0e9b0d2eec0718cd203f88eea10f4247305efb34514f68b830af5945b71be6779652d2e6cbbef85993bec282a650d43a826fab66f223b92b3e81bbc0dd4fa0a2768bc5b6ea037f506a4b0cfffe7b238f1a011d82b06fdab944ee08681216e95336bcee65c68b26175b26faa93350f09d6b6775130a1873ac296e737b9f5210103ec215021049ed5bbe1c8c9a2cd0e5a7804979346f509163d4b518ee8b646b54e4c4f99dfb9fcb3bd7d9cee20cdd891bc60ebea754115fd79a9bfc02748e0b4046a531b77789823be14b18d33547a586f8acfaedefc2afd52a022c40415ebdeab1be0b509ef2169fc9fb9864164874bbae07c5233ab6d1821f6afa92d74bdcffe19f041585a95c6b5f182998d9f3b444567865ee6887f5fb807e7d9008d04a3af798c8491fa7388718d12b5751a278b87d4c575bc9c942649c5614429579efa8df9ab902f67abd753d0630176d4c6c23193c25f8a488b4464b366d14b362b5cae9688bbad4586e1cdbfccbba4deb75fc0a85808a1f2bc4f781c3854d3b822aa325ced30edd4e4e8363a9d59b86b63635cfcc019e0e99bad817e9c074b76485aeb3dc0c2f434b4b7d721e7d0e81e178790c373d20b12dc1c669fd7b98df0d2febd0c90989f6048659cecf7edac866930bac0112f02645618635a9866c3af0e57294f357c6b39fde785212323caa5fd8be4027d7ad5aac9d1804154e476df71d8bfe3f503d52b5b77003cd168ba3a5286b005cc01c0fce623226333e65bdde61bd81c5e33ad43457d4e66ca306925106e51b3605337ee0eaad5e213eccb2aacc4b9e9583bd6b992f074de13fda8e0142451c010e9f9fd0c3c027553a85d8f6e469aae919dc39eb0f41b13c93e5b15efb66f0d8ba273ba6cc789dcea64a49684bb86502acf3ab2d0c8c7b29b21568e4315cf0c4a0849e6cdb1295c34766dc5dd2bdd04f07446e55833293f4bc3f3254291a3e6e6dcf96d7829f8c52d6298e7143e472528fbbd0315143dfa1779fdf9b3e8da1235fabf805f56020bd4f0e6a5ffe41cf2d035808c9510c5583d85e51b27f83100fcaa1e8e6053c7d19cdd316605604073104979111c84e0643f600cd022e87d9911c2ab4fa570f1dab198fe876dc778903cdde624c24765000dc9677c1fc85a554bf0522aa3934af7394ee0ef02bfdc65a6baef76cf702ddea2169e2aac4559824780f0f2ea6e05767cfc9da39d3a1a77d55f347b7570642362c3923316d41adcd4c37365896af7816664696dea33d72d2866837a2bc75b8f194abb6a26f183314927ffeb28c2cc86e74f569420b9cf3f429576b1e519b48c9798ad72a734b37f4097ddbe81d6ac75bd5208f7bb577fcfdbab12a157b4805bc4b244a9ab3a41b86d651ab95ad7b3aa22eea1eeeca0f845a864bb7d1230383dbbc6905d569b2e076fcea3055496b88d12eb20f444d06136e488a224efb46a55335ff01a958dbf9ef074bd22c2a1de7d499ffaa8d285a0a0ad43699e74195e86bcfc079d357a19bbcc2110b011051a548d1823bbeeb828657ef28982036bc401edd009e361dc924204f7ff9389fc839ff8a9539b150bfc7484a9ca377dad711c9752980eeb9be49289145aaefbf4c3be5d740ea41892c73b9557473e06afcfe525e5a50839c8b971ac7b37f1daf75427b03682811fd7787259aba50574ab4928fe3d95be78d2115126c66b9c39a4ef1ab1d3dd6fb72ba3b839a480ba5274b2b5092cf96ecbaed8d1049265f6eecb7d46eb83980ca94acc33118c73d15d0be258658d424bf5dc15d794a70eed26125550d5360de016abc8d22d9992a84d92599c779798f1d983d22cb4b85b477b441c9d8b7f8dddfa159347ce5af373c5f747118452fae3129dcd9aba4a17d740fc17de2443c3e6fd37401e784cf4e9bcb7b9dc7bac6bb647bb677f93c07a40c44fdfbf6e0019aa9ddc8f8d96b61c292fe7ec1dd7e81eef91d3d3cbcaeee8eafbf4f105b176954b2bcac8dcd02bcf42cd3baa2d2976faecb4fd768372ce1aa26f22bcb1b4613e14d20214ad73b608a2613866ad63671e957fd293ab8d521edcc25af702acf8ac97ea2a8e4d1985d9291611f3847693ba0dc51b335d33c0376eddf0042ac2d4f66558625331a62b06660398dad687c5bdde45264cc72bc19c8f863975f51b7f6739c808e1a2f721270f0f1f9b8dad77bad47d4ccf59bd77d5aa5db112ce332ee69c1df22c587e22a4f734957a283929258abf24cd965c95a81e8d06a5694541469757de5492377a480a651d4b15deb2bc54cd611f5def83c6171ff587631678b7b23282770aeaf0778be9d7ae6f94281ab7b7a1be4788e8dd5416e580864afa96fb5805ce6bb3b595e7e425c44019af082c34b1fc341bc4d3976f518c60413bae1c0d095e82c8822b991c38969d5ab6c02603a1b638c03eb95c144e3b9dedf45c5999669e34771ea0c40849bcda46bf8b576cc88e03427a966ca369d7f63c1c2c01abe2ce2ad1e5c9f08f42e793759ab5391a684a14bb76c5a65a484d964acc6877ac69a90aef773b194e63c5e9436431ebe6a5dbea32cef6cffe75ad15229034768940496cd8deec2b2f0c79b8d0c858816b865324656115ff57e085032d3602e5d42f3d946ff0948494acf3829fbcd1de82ffa21fe1eb8d677a72b64e5609762d5984d31bf860000f16e52ad4cbfa5f40a373c3873a3c745292616ae722a3e50cb5dc786dc5d59a17b94a60cf7a482366d6fba8cb695294573b171beceda8518f8541f9c71ccfaef1ccf19854c5c5501a79a388fe79e63f743b9c754bb65367a7684dce95e3d4fd4004762d4a6bcfe1c9f7fe7f4c3941647dc346559a818295d9fbdafa6b60600b47d1cd55cd83d21bff4aeacd4050c05aa16b1aba64a0128cfcc2222e7af6284799d2b27f86f826f1dd2235eb38dd9fd29b0cdae5684b8b689e5ce16a029dec030b622e135ae37567c5d08042387d6520b6a99aba69c1f588aa0343869fd695076a43ef8bde56f28c2e945773eaea2f818cd3c3fe41cfbc7b4844094cc6dd25ce3dcafedb31c043b22027ce6f5ecc589d8a3479b72991da6363ec202b41c1cbd58e1d1201636ddb719fad0bf0acd3bca0f6470b6b61991b5b35bf459a3b44a6f869ca9f3da9f6b46516a06c46bca191e20ff36ff658814acb657382fb5f6e4ae038014c6c4c77d498a013d59f3e242e929499751e9b0530b6fe700ff6e555d2ae2751b7f878dccce78d242ac4e52963d9d9f2765f4be359a87d8abbd8b02d4c43f5b4e1fe90a94a699b88a00e3259f8499cc40b1b6bcab59e1d4f7c8c96f3557446947e3f51f0e13fdf81c477e09330ccf91024672982feb75a40231d7e795d8e58380b90c8413938282b002ecb4df8fc708c1d48e88b63f575a049d87635ed6dc001cd656ac8c099895659e6cd6b69a5b96bd635b2a731da254df8f4b458fe52c6dfbabd6df029fd46abbe457744b6a39522f4fda9b5eed8d2d28cb6a8b97a7d326d1d9bda8aa06d84073593dfe64fa7bec1f136c080e3082bd9c7767bd8cd73c1457d6965323373d77d4339b2391fd3c631ea05615526865b816004423ae4de1d7c2736743ab7d19bf35e14b82ce23e7c779b7afc452c17c2431315b2cb5747e6d9a52dd2b05aa422b3674d089bf45f41e94e69fee0ed94ae3957d1f656fa1f2793011cf2a62c0fb1471720557a46cfb5730d7587e114e40e7785fc6755535114d913cfd4f39dab9737231c9a7f4533227b15df9d5dfbf32e13fdb09ad7b8333bc93b24a43e9c9cfaa6ef5cdf3a9f6ad77d2f8717ee1d435b0acc50dfb096fbd9a5e560c35b738726b1ff6b7ef524b1f8e42628eade4834d75baf67caadfe5c22a0f287cbede3b3122c4e70b5656a210f548037466b84872e21b938f322660c81948c9cfac28ba4e332e8b01894d9c4f7e3f053b10ec616a0e4fb2653cbc766fac1ad55cccb47bde8bd9ab2862921122934229301083d53cb86a8ff874db99823a2073802a3f3af6e92dbf943934f92628026b531e259057ce96600b6d5d2d3d1a8c65a68e5eb49d2e2edf470fbef20c20e96bad15fee6a42d5db490ab452be5e9ae80faaaacd7f61c620a1840f2ad105d4d62d7ccfd224a86d4ff03b8eebc42aaeaea74ecef66a5ff671331bcdfd7b8b3eb894202b7e9579446da56135d57d72e23b4496e1ab98f177faa1a4a45fd7a94281b5edd16ff69cfc1a94854a790735409a4098882ded4accb4160ab4c468915c648410cdb1eb2849634fc163455053a721fe96833c62e82db6a4fc1bffe240735bec0362c431f44514cb2aa301058bd488eecc91889e88e0acf33077a790f89f83f0bb5095a41a9bdd5147b3a175e2ba5371c732ff8adefc23e2510a660117fd5ca8387ae97edba015233c09affbc4fd956bc4665eaf3687622951b9169f48ba25c0d13bf25812efc9ae5e0c46664248fdb911768c027473abef1dfe4da944cec1ac1770a786fe6dc909717c913351dfc1d61c8b0ad3d4cf9df1a4fe4fc12819e6ebf2fa10bdea6f1829cf2fb8cd1672e8e78cc78d81e09be3f71203da685e78c6ffe80bc1c99f9b77f52394e16a28f32905b713173b339338ba9c751d063386cc2e90c90aeb873ae9e6931a2b2830c033a93c280b1ba4aa9469dbf29e3d1f5ab830116a166d3ad7dbd0fb34961e4dca16869ce81283463f00a49496c0605bf74570d9ad5d788bf89ebd515438eec91c712ea70a65d0ad352d18b1158c170b4db4804717a3fc3a4fb3ca433641055ebf7510873f6b12cc955e03a104f802fdefb89cd777a93dd96714c5822ddb185435282e4c6b0a08eb6c87e52302d46c7ddcf550982126b9748d553db9f3e117a7565ad284ad02a0a13adf39513c301527d9e990b3dbf076c93daf4a61186e8b7834bd7e7ccf8fa12e7b863cdfa8a06ab3ccce6e60f1368133d23d3b327a1e40c208d82c68c27700c899fc4404baa12466360847327f0d72e213832f76607f073165fe873758915384f87649a82e1e58c0dac0de458a8dc6bb025939d9268cc023c12fc74c174c70fbb8b47e7da85069079671748ad49becaec37a24d64a5156b243e111ef5e758d1b710679da5ebe31e53155a37ed79b98e7f812a31cea6e75bdbd383b2a275fda100a8c0dd5d6fc681463429aa3d86590828ad5848e993c292eca42cc4ee1b0c419c2f4f9fcf76980a3d8dfd7a19d5827ef21721e8b79d3769341b2e19fde362934e52c6f3efaf7dee47e8b5bdeb9f03d605c4db18800f3ff922b866fe55c75f43ba1f69b57f3ff5370a9698fb66d50991edade3185b881d82ea8fbb473d7540cf21bd8b59e7b5e11148c963ee33428236314792fc65c63dd267d067b4441ef07e6c918eed0296adbd89205e10b72c6a03611e794657788e531497e4a5c1059187bfb3cfac50c1415c6eee08a3355931be356202b203d5629f1b33d07f1fc037af6649bc5bf813d3de9991d947dbccbacb4df680c158d8e3fc66f44cd798d2a3f06f02deab407630be3d0d4eeeecc773027454ccf3c009cf2560ceea2ea9e9569ff08402759be85c8cbbb96916b292795ab5e513eb2d14b698db9dae4397cd6fc9f5b4f844ba244f32b3a9367f59601466b4b4170f1dfa8164aff531b40c56ffee47a8daef9d0afb47f97d60d16a3955cce6e36ce6aa5263bb21588e45d5a78c5dae2e11e97e88bfddf58918deddcf298e09ca46f05408ea8945a2505ddf5b371e9848752943a98caae9f4920e918657fb2e0613ef7849900fb1f7fa08985fd3b540775b730787aae38dcd5c053ed71018e00f429cef79cc70b6051fb8cefe0d1968b3b3460858a8e32deeedf1b952b472419b9c547b9b0eb2841481e88e450412e5c4a51b3e89ea76b243a2e71601e19100bb6e3ff81edd0b1a9a2cf8b6e8b227c3203b7ff062ea9a1b399d2834811e16f8287530fe25479933b97aaa1268b65d6d62e46d1a68bd1857a249c030dc7c8c84194362e640b91e4b3a0c0930f9cfc51d3dc32e13a0acbe3df79682b7b6f472f89750ef5c926299d410c24903cb2c9561751fc11beb2d6269892b578ec0b52bbc98c0062b61e1342c583d7806c48487ee58ae5500469efb407507c0bc5c8d68fc0c3c136df7424b12d76ded5a2f0126b5317045ef5b4f407b5e37b97c7a5d0e736d0a5e6a36c4360c6d1b0c619297176e0f99fd0e1907c33fe080ccb85ecb1f8320a739c79ab499f21c38beb6a5994437b84ebab47abf462e327d2b27a14ab0b1c3705b302eb1ceaf521ec6954307157d08d5081a5930796c3b20ab490e502eebfd951568a2eb2982a22e6bb39431e5b31a247754e8d2cd1f4a75e0c60f24b2441535419e7d5019e007bf33a925a261b07e9f12a19cc5932f23cd8d63a4a1e4868a02a6dde5ea8d8ab3604a45afa6e4763cb6240dc29d4935ece8a4c6462577989a217af7b24369b79fcc53da761dda61f1e3963f07ff00edc4a00d7670c1feb46e090fef49a54ddcb8a6ca6398c49d35c04af485cd1aed62c86218cdde7c2682b8df0ba1ea2bc96df0e055b61acede74765b8bc6e60a974bbe7c43e46489c4206b33bf19f4829c670599e00f14fb9a8ac7434a07e6c96b278b97b368958c6ebdb7eb5cd4d74247903023e31ea88b9a709fbc6f365e4c37490227e88c06c10a4b8379ba18f3fb0794865e3ff2bc57c75479d165f6dce95a42d48c6216fe16062b1f8ec309bba920f7bdffda1e88e15a2bfc23b4bb88a6daefe9790faf0e687756097197f9f509230326ecd3b1e5ca5f10a4b98f2190b93528247af3062cf6b3b4e5ae88b8958e10513abff9c8b9eb4c846d85e453727b9ef733988976e181d373368977a3fc1a1a8f6cbe22df008a8496a6ecd70a097a6ea5f9c5c8272eb7441d0d843a0de397e05d693483704e59c08985b54e1a72a2ac9baa13e650f3879cb7f1a22c76e675e5f4efa7540ded7cca3f8713a7438bd9cc25be4fd9e867db26e6e9f9cb1299eb4e7f12a2e9ec3d64e1dd2a0fa923b2f9abe627eff595d720732aeb352470bc631500f9d9f7bc70787f459b51f1913a217ae2bfa0042b8fe2410baa530094c50e32876769d2bdb3a11975884b2a7e73dca8198bf0e3d4a20a578004fd433f90232969c71ecd21fcfb8b0e86badc36027805a194f1fd7ac08584f0d0e6c897f72c2ad578c26e6df7ce2390db9f1c4734813c737be1c0dde8cec0f93494138a96e8218604bcfbbd124a366003268cf97a3c1a4165050a93595ec5bac6feeb5ca044a09b31b753c2aef773985b9bbdb2c1408b434a91c9bba6617d62e1ab6340d49d47919e430d7b0d6280855fd5017b39d472b5618578c23531712eaed3d0fe0cf5223ca3c81849a9425966688ddadff9ff4bc4cb329ea850100389112c7fb68dadb465c34549ee51d0b39fe6300ecf024aad2b749f3a41fe76ea812906b35b4cc21c1187a43fc4b8d6eacd732fa8cf3a33addafead02bb206ed784dad952981a1275c91a23093f4715dbba260b8510c1b6a66581be0a7b6972e95f5fc14f8036091017fd57880f2d46b18b28357001efa2498e91b1bbeea0d1f1bd832d83ebc0254a726b7a08aa01c1bc91f786ff3c9841c9b4594da15ee1f34dca52d155168f4ad9d09f6f9bea73cacb43211b1e87e275ad5eaf81bce818dec41904ec4d8e19c14cfccea171045d79093b141a690479b285b425fb90dc7233949d3363f97eb46c05d6f758ae4969821f6979c72253a74e63b4bda0368b951036579d4d9491bebcd2abdbb6214b00dabf8f2a2ac38c1b71c28864f4962313bb680e63456c24c405eac64bbb786411de073b7d2027b1a0a511f329f42d5660f8c7591bdeb98283c3f860a7a778bbbb187e131ef0a235452bf1035ddc0317b922fe011d5ad49da24eb2015ecd73776396d90e498704273c8fbf612ce5527e6930a7182ad31b76c825ba7f8fccde9e432118e3c9bf4ba0ac1444e03ce70c7894aeb0c6f037771f94be80760e9e27d39677f3c3c098c48422de4c374d7ecf2f9f424c0ccb6ae7a56ee2fc4d14fd6847d64a2450b2fe11bda6b010589debfc524a532501b2b7d69f7fde5791ec2345e0e24c8a3b4590d1bd51085b65ccf60060deb613e7c071b0b19f733e2a57868219dc3e93eeaa0f7bf0b375d0bcf68b22ff03f75d4733f577c778e311cd48623627d80b78494368ebe18f5be31ffab4b78605369d831207538dc1674a11cf458c41b72a1e7a3534f4d8a4ab74c765ef9f72e4ad8e5872339b90f4f284ef73339f0e5e5cef6be8fe3b60a2e16d90c37271abd5e4daa4f51b5c1748ed2154d9eaab29db17f916e75f68706b3d16b02cd260b4281cb0da053d079fa4d26b0d09798f3a7f4ba9de980987ec6b67870718cf81ab3d0d389bb8ebf6b128d16ef2ac0d507588e73a88e0a80cc2d219b1f9e61376fa220fd2839e6594f4cacc7f511b50613958e107f40fcea0c61e649c0e8baaa61cea7ad1ec2cc991aab4a3bc898c7f4d8d2b28cc02c2e39dcefff472891db6b6bf3b68601dac9908564f382abc46fa36327d18a1969277d22072af60482a51eea4944d34e2ef9c8e75481afd22b957d3ddf1a722b46804717535845bd89d3252ee6e67b057e10dc23f06eb1aed80a46ca08b02b3d774e0d3ce151bc1cca966c2cb4892fd8727932fdc8198e80855cda434f3577fdff8256ef5f176b9ebed4fc1a44a5e85976e31af9bb4004f100defa07c3579fbc07c406618a8caf9abd60eff7831a2d8302d8fec8e76e615107d3d2d8c2155abde177c7a485ce343519e0ca63b6acdb1979cfe777d0ce8201c2333b972e3168b9547124b9e50db6179097e1a8e7291f7b6742caf8d0048dbc0e83ceb40a1543f30ce3f15c369435e07daba7f352fecf671a3aa5a83dd302520efe7e4469a4c08db69196e908a6ad83d8ff36860e08c1d19087347781dba22157cd425786b770a499d78b6999dc8a021df479af828dc37e1f968e1ca4396f29ceee68ba27430379b405b3f5fb14f509e0a07a1eaafa6954e07f3f4359cf9af68757f1a5aef965d4c907096d1d72b40d7c2e7aba1824879792a210f1fdc774e7448317be52dbdad4ffc74c535f72708d03cabad864d54961d46e8431a8975276c31d4f30f401ba4ec5739f9b6307f47751df330a9c012b341806b639e8942120cda8840fcad6d979a4633af506f35e1c99654612bccadd594137934dd9ee5059f0ab6048da741f3d64e0e27845aa3f3e9fb66f20ac21aea0e5de93a23f4fcd9ee6b733cb82f8f22f284f0129080dc2c97998e14e0d0daaffa33831af66dc91f28c44e9a90bfa437ccffead8fd4acf8676c2bac7a5fd01c29bc74e453835fc0be8b5738ac2b5ebee29d551ed74643338036f9a2e7258e7c941de9b5366fae4dea57879ff067347020c274f792e16a42ca2ad3f6e40aa6e02ad77c51f62cc2510d3af05b3939704a8ad0cfcc3f77915a7967c56360abd30556b00f839cefe8b04e8b5fa3e0c3f028bfce74340ed3503cccf12ad07f8ce23ad652a2b67e686d345c721c9be8b5080db3f066cfa5f39adb345e52352cdae62bd69f6983290aa7ed9b22136b86a2fb0ca1e2897c07ae283666f4b20aa9d817b23200c70d854b607ed0c588aae34bc770bc419b7a691eba53c91df57f2bd06513dad22f4c0760b956525a7ac9213f65a93721e33402a69ac78a5bb866dc037eb3a22f03376d3344dc899093ac2b37b41a8780b58ff19a55a6f37da3469820752de440772ddfca035c2a9f039c75b3774c478a865297a324d0bcb059bbff495e9ec5abacdb044fed7d99cfb7c903f91056fe087bb77f0ac21a0df382b0054e0c2d76269edf9a784c6fa20c6da5f40c161f4333b7373065580b0917444966f1de6d5c8282340db3f4e532cb43743b159c4bb04e6f77d3c9ed4011605b0596fdde9f934ce44a6eded11d4fef2996e15eba8604996207072ee171e67fb47d6f678557f0b9f28e3d83dd0278a14b0e6bb09c5be3bdf10c29c8c0628da3eb2efb96affc1ef66cac7eb5d744f5c38f57742079672666632ad8a5ed57bc294c227b7d43ba5d17ff4f05c52690c427715669271f591c2ae00f4f9f1e5ae9b7f579e36b63531428d2af68611225013c521e0a2212d5defda4831a98685be4bf806f7182f7c5a5db6b243f94ba9d145ac3807afd20ae7b7af76b8a91432d72c308c65e233b33c466fdecc02c4ad0929df41020ee1146503b8fc9913a4a59835bcec09f1a4fb8ebc529f712853cdc12faec8bc5bd2e54bdc0172a94e48c5978f3c66c2fdfe6e0bb7da0435b8e32ccc0839318448e34d3449e7ae24d08fa0bfee288d8c3eb6128583eedd353a799e7194deeb362cde53956d2787b526d287661746c0a36cb851303f67b652951df27ea4a6a0c6cf9a7a8e8b8cc3313dcf12f8b46e904413b954848757730fed73fcc03fb26da610cd1090778f795a73b0a339c120b1a49a665978e8678997caba472186ed6bcd1a7d6c17ca5359cc2af8ee1120880f354c3da073377ff96f81d8c20aa2b8ec57fbcd67dc550965899ef548648d926a5878bfa909cbf248b279e5a04d5b0b94b046e1d2ac44ac7397ad11b13648035a4b1b8581cc44034f0a380d62c6315365f6915f7c7ba6aaf689c0f4c15ad477dc36944003338696002940ac607ad22394f1d1bf609a06affd1c7a8f4fc49d92583e0401f9715ab302c80306130e525004a79a3f939b6b0988d39b6130e7f21d6e7899b37735e3506f4f70273b58ab5af9814db1e3d2014b4b8ef70962f5add773483e3dabc82b1fa1cffd98f2f442ca61b7c732b53926d618671627bc9929f03b4106e56fefe3d8aa8550a5c40c596b8b2792c041b18b802d591c7c8f45404ebaacee0c3c5f93f77d3ff8eaf196918d85cfa201398f62c20a41973986b70ef1641d7c23dad6aa4efc8448c4fde85228726e5b81f09c4a19cdfa85c6556f51c0f9be684cee47364d94cf14492a6a0fa4bce70a26f46c588034dc8a88caf09fa18edf4885b7a44646c0c42182bd5139a44d90e414d78113a5018f194611b53fc6ea346f5204698c12187a3042d4328bac9b64669baaa91f566afc717863af74959e0c999d2e242bcd57ce4b7b39012109ce805afee8e1738970b032b8772bb67e685e58534344dddf91f0ce5c9fd244b338c7cdb2021b6638a34ed9483d8b6b09815187b32f0aeb3226de2c8bc8ddb90440fb4e720587e2b16b107317022ee2846619f097050d21d8b5a3ce1d3ca3ec807a952bf6a2d768e6641e1ce7ea618ca73d8be89f1e91d5e841ee1bd26a4b562bb90a2e0f9d1ffcd259939fd7c71cc878610237008b1746f9ae2c4e1353a22312a6461ba5af7110a0dc210f98bb39dec9bd9f609bbdfec1c8a80d1cb6e022446d6f74ee12fc9afb77c7171373f2e61a3547889d459f3213742ef919665163ab5c13ff10d0f46ed78485f2c4fda31711571b4407864e6f8753dc0d8982b9a0f0ed5c80661888d135a34b71c0dd85a6adf8e55b378b9be6c0f25591c84f283d110d3ead5ee4e495e9fdfde93cdb7f52f5292dcb38d3f831b1f33f9f57aa1c73c55c5c305d0637bebf46e85b88a0fa317f54d0eeea7b329ed6aa24d612146da0460ba176a07515955d12d65e3e23c8b835729c556759b20242b1190023f2b96fbc70c84cadf5ffa1b17f359bfe28d8e163277a0f31958375a7436bfe99836d08ad95136bf211b9188760a56bee0c285350b023e356c76570f7bf895316d28884df5eeb3f742710b03172675ad851a766ccfc03b1dcf95c00d5ad64962d239685c8cb6bbcdd07fe5ac1e96d1ccbae176ae9eeb13ec1b5f5dc218fe129e7fb3887830812e554b6abbba8989321aea01dc3d46c1c5b53fa8fbfd739fd173082594f1f9a8508d4adee3cc1463f60091d7fe0618b9507f51325f5c35c55aeb90ba82d3067610ea326fb14205b23e226214f1dc75d77a441afbbb5677fe072c765a8e8b62751e379451b1c21fe42b7ee6d47b74371216108edf5749312513d33aa7813469420af85cee2e94b99142c15600d3ac190acc764418d97defd972c916a9aefc8114794b7aee379b03d468e5935db7f00613aea911746c10537084b6605a272d9d64bf4adf0ceb47ea8040cfbd26b3e0d654a1c51a095d28ec5358be3a1c93b712041128a3c0f176631dfe17677233ed90878872dc3a5e839c1a8c2589b76e94c1ca6c357c5d82c51772e8ffca906836cc9bae82b25315f821bf82a5e53909043b79f18ffb8767f4387b1d3843b93c31a4eb2fc392ad72b3b22b0f21740f9d2689dcbd429af23ced06d5552669eb20307cd7044f27a0ed4190dfefda0445df85d53855f405e86dc8f9955cdf3fe2e43aa76907e7eb1fc46c7d470a3562ce3151681befb38209e44322c95701f7dd8b58f13a9ffccbc3ddbd0817bcf46b2b3056cb3354b1c978749aecb5f1d55c75c1c77fbbb56951b8c8bdef4261d250d7738d5caeac1b337753eaeaad20f384007477c9eaaaa3b6a93cc93c6fb2841ae05bd23d92b2674414ac70a7edbf46e4a4e5bba1fd0d7c912f117f67422998ce0f43fe6659dce9c548498603306b904d0e1849b85b971975172b476886b039c45759978c43df3e48d924775401702fc7e920c98bbc6d643637791892eb670a8ca236837df286b2dbda81dcd2428354de855557f61215a73c21025970c798511716c3a4360baf5c59e946e2a8eccc7a8ceaf4a613b4b71523d531ee8dc108f645942c953dd5271ecbcba097a47c08d0ca1b0ebc784cafd9c39ef7ec52b5fc9a556d5d06dbb6986b683e957408994dec0a234d40bc4b47fb2c3d73068354b5b3be2cf3d58942db52aa9e6e0c3dda5be0678892059aa6155a3991fbf20c36ea90f8502739535233f794b4f922b1f20ef0987112ae46cd4c7eb6b6a08a1f54ed9da2eeaa6100e0b25643e22814bf0966c8effeb240cbd12320fa4fee16835028bedd42827fd020f929685eddc6469566c63e1aff3b2f142c00d2c32b0626f7412e3041d24e7ce11ebedbabf7536e4372b1768dd8ab9a5e0b95707f3b6e0267749be4e8273e01d1bd4def83e0ac1534c999c3a26572ca0daf648b80cd09208916cc4481a47449bdecabcbc416f3eb1e5a6e40a179de2c7e7938e9c24cd69d38f2139e545e01d349df759cbcd32ccc73660e4089121ca478ec8c0bb39e5979702655ace1475b4d8a644fbf461595755de8b711e09f07ad9a11e51a48e33e0b37d88984ab1e315ac83638cf5a2ff97a2d4a238dd37c3c4989248ce3170b088e7503dbe2dcab3050588e9548d7782ee5c3b918337f46f96d4ada8073287af0a4d75ed0229cb8e0b1a5db197fb5843eb1585440284c58500f440c47f4263093dc772b0ba8df693075ca6c4018266bf5f67b9b234b70b0a297f7a908c429cccacf2de5588bf413ecdadde385befac91ecc61afec48624f13ffdbd8c4cf923c2feafeb44f4f23078b0e11aa40af4e66613736317ad938bf2c2d126605cb7b477ef4a8bc39fdc3a14a3d22edad59f91f5083f783ddfe5d694456d3ccf348c7f3355aebf76eb240550bb4d8d0971d8f225fb656895724d60d37ec6c12eb0feb14be97b6cbdb3353ed9032e69fbc7c5a554c7d2730c1f92605416ebcfe64765061bfa11113fe6936e6666034af0facc3474a70fcf65eb45004b5a1b302ed7e19c625acd3f1bd8fa9bf28bf79d3292c2a837d7e91d4d8db076af6bc13bff0e35fd272b61046a21e9f0a6813a10c4a35ee0f7528ca25714e664c221569d8bdebbbeb377c3d6bb629a3619cbfc951f29eb162131c26ded1079c88808fc25c0af0616d3f93c30f34e936ec1a32642e145a3a61794e87754f3be78cfd987450fc61ea83bd44cf702937c76512a30bd9383a81aae07b4eb123d327fb635177cb26e187e49cc67082354d9d0ef706706290532f13fb4480888c8cb1e0392e0ec7989c2176f5f13164dc7d2048d50b38166ef3d971240438143c7270da08371611d4b83626f05f3e478b9878fa89f39e753563908237ad85a147230294fca4a67229bdedeb3684cbb1ffd595cd87792f6ff634711077c5891994e4bec1d33eb6b1d9ed797deece24aa391dbbdd72a36f78a6497bd21fff9e7aaa26e4c5347d8b116ebd0b38b745e0c242f7613cabc8931fe87b8e7c9f40f1ec069dbdbb8968121f611a8c99e1bf915d5ced0ac934cbdbeb33b6030e5dad4cb7dc48f47f49fa28866e82399ea3baed6af7f4577b9e3612c6ad9ab09deced2a29c8e14f7dece6c748837d0dc16ee18db6cc0657c6a174c8a6314a69688a77c40c085b8089dbc19bcce964a11a8f84d3c8e8c4fd6a0e7e84c1792d84845bf0463b614b3b6d36ba17fb059bd11f97b07b520015b062a05e59289b15336a36ff0e29a710952bc86309cc9de444e6729ac616a8371caf8172c425203b3c9d181eefc9e2f61e50eedb0e2e0773139c5df4bfaaaa95ecc0a12c4c2cc36b4fc4ab68e24d607100a092132147b9e36978ad283bba171dabd19d16a164481c83f021a057e3dd537e8110586ae9e4af21e5f28e71deb30d511fb729dbf45cc04da014bc93802826158d8835edcc577fb1d4a5f48ca7ddc4489a3e359f1c46d3daea70d61fc49bd3e9526a58676d94a4a2d6d3071de9348a42ddf20bf54e090a76b366026d5fd2800cab6f5e05b0b95f7aa7937faea57c49ee4f03bfb0de112c252d8bd37cc8a94166f2571c5b69b5a6d24e672eafd210eda8f77d134cccac0512e2dd8b9bc98b786fd8ed9c96755250758e5401a9f92be0ada8896645c5e468225063af0efc06fa26eccb6bd80b4c5c1a333fccc0efe4f545b8e55b3da3b7d77a61dc124be3cd68bc1fbb6901f72bffebf2987011b12f0f82d3bd365856cdd11872e5c2f11eaa2b11ba8bb6e9d528a8439cc506dfb8999e504b094b22253b7e7616efbebd92700d7d7232825613af2198e5cc078b22f5bc439ff7a679ec5194f74f1d2ece2ca01689065c0d4785b8dd0d4ca9a600a7f3ed30c674c89a486ca99c67f79d3ecac1eefdae1974617d1a5fe8d5b9a4a70d540583fbc7357b99bbab50d652af8b6a8644ff53fac8818ba07199e3e9b0ce25f856e920e88d2be9f01b3fb476c1fba639a08903d4e4d4054a7aafaf7dfb3ac199183fb4eb58834fa6f6c80d02ebff949a90e53b41222a8c3c3445d0a588ecfc200619deb3dbd5ae05baa4f558a6d6e98ea7b687ef506f7fd408092e84595b5e93767c12e9a5c938425e5d9af8e60f23e3149c7bc85a2714a356c00ff54969dff4b292d2d3ceafac599ecf8657e70681cd9bba4d362206e70562164c1412fb9c44d45f00e9973a55c342982d101056e169e4ff47e58a79e792cca9389d58a7c1e25bebf7ff633a412a3c5386c5978fc71023506d04057b49a0821ed1ed90beb82a7cd0773e390c6bf04179092679477f3137ae99609df5a6932b3e1d0f202a938b7b8cea38c9afe412eb9ead3f1b32f0fc7fddfc2510421ffb48130c64e7af72ca69914d7cdde63216b2feccb707f3770e540bae3d84d6c2821bdeca9e75b92748876c9a1e6143d86f9a5019c9188295e36b836b25cb422d865357e2aea5c63cfebaf01e43af708cedd88ee9b2d4a6b36d653e98d1dfadc43239cee5254bc527fc729c6841b62e70ad04cea1d36241bdf0c6c09ec67a7947e84838041c259cd9f0a1d8fc6fe14f7d211ddf1f3591d21d32e71d1150e02680522d4371714964d8566028fda21b15602f2e3641d2f5f7e4c0b31eb3289b68992d1823fe0027f0a66d5a4bd790c1476d60ab00018fc8e196b5bb68b776abcb1f800968524d566865069649ac363e2727b688c6af8a84ce1a045571f9d1421e27b7b73a0a13b4110700e3b82c60cfa0eda3f19e28bf1aa45d7cff2b51d7aebd997c8e60bd0039294035c94dd3ffff1f01ad220c33e1bea0365baeb71b6aca30ca751470111a3ffe0fe2f3f8528a8139c58d603d296a8c0d71ba46ddc71ca1a63a625b8c30740c23606dcd16615c95fc5b29a209774c21e0761e429871747799fbac7f5fd864a43a8bfe02eccf5708b0620a862d48055be9c82d22d77d16edf9b79681fef9fbee0c6ca557e194bd194a271126c966d2b8c3b21dc6827353adf0751797e28410a0da50eeb16b365b38aac72d35e838f6723c751748b094224bd57a08938fb79cb36639f2fda3b26006d4d91164645e5038c1d9ae2987930c75f44aca0547c45fa64776755238211759569e5101201dff12362d7c2b9d11967a028ea143e49aaa3d2d5580fe72d82bb5135f5d1cd31d0c495d7eb8629fd112f6334049e2cba074c0de026412afdb7f9a2ca1f91401a745a744e055001f1d4da38bfdf5ca61f4d278b0aff6ea7c55539d1cf8a4b0da6830867477406fbde0fe248c00ad7fbeaf8ab66120878101fc0184cc3e21dfbb9b9ea2b658033b2a6b81def30754a0cd329bdbac1a9ea2b7912c0545fc98d02025d153fed8eddd1e883174058d7058466d24eebad7090b99ff79b8cb4282818e42bf3f674ac12bbc5079bf3d87ed46221077e8000a2d78a3858c233e849ad29660919dc3d5406ef44b9cc9d8b65ee3d9670c5a3e1de6d9598563f9e581d47834f647144db32f6d57637a4fbbd5234274b5ad2d4c7b3b9426e458d3876e8430ad278389b1bcc939f5f6452b49f6d6fc6f696dbafa2b4ac44ac7afc8aa21bade7a5610ec14d1486da899081a046406fde9b48af0cac65d4316015cf41918ad2c643c09669f1a883bc5bbe4b3fb165e90f6158a1749bd2e588bb5e5aedd2959b7ff1c82471f5603d1c2848a9b7b27f99fb0b334801d2636d7586a4ba5d8af7e98cc0ce65e35c208005993b5709429750b06d0a3351315094497543ff1e0e2d8d8be61a7a72d60bf3b279412bd565739afe56dbc0b4295725286a030ffbadbaf8651122f416ae6814f699b9d09d65bdfcc3f00016bcff0ea2551b514bfeb33fa694d29cb3ee3ec377c31da22abf79507b923ce1f0c3de19fb6bcf8b8c5b1ff3f1b9d6b5ab4a8bce96f8489c89b7636211b7688b6bc224ee3884ef02f74f70118cf70512429c9ab8d7d5a1ead07efdeebab85ca875a8ab0277130e80a9a6ebcb92a7c20ce770d8f6bf0cd126f2120cacee7d16812db40aff341696ea32a12ecf67a62b1d5d615c1fed6cea8997c61cf4e05db5de02d8165d8a7300bc60855aaab32be99689958d99c1761590e512680993ef178745f677c37900c56aa88bdbb142e02f05123d1a0b49cc03da89634d437e497ddadee584577f1c0046ee47ebc93f4e044fe68ce2d2c07a9acd44f657d8f50fa64633471c42bbb247cb73bf95d1aef797d3e98d1a7048e82bf88ca6d15a566b6edb1cf62127188ac85c7c780f47928f6e5694c1173bc846178f3c157f7be49e2efadb4403810c3e13dbefc6315655b1d05a445f18aed8327477a2ba2acfae824ce584e0e6fc3275ce91f36c7957a82d360f278b15d2505959a7aa5d6d6fd5729bfbe6983573366679570bc4727272ee99340853ff98cc99555157b4f1851abe17c921a819585b7b53309bcac84e64d0abf546970d4c4bd63b88d7ef48384cc455e6b53694be92e939aba6affeac1b76e598808ec1e825d86cb3d832754d71300a6caace26f27978a8cd835c234fc0af99e67b3fe9c3445ee70ffcc13d0f7fc30bab473849228f05335a6bb180dc72fa4566309c7bbc4826dd15f9756bc0d7ab3b925aefaddc759450096b2a96fc9383c69cb74d8e2a4780bc3b3f737780c236e46541826068bd828e0c534a971bc1d849bcf3ea428c826e6e1ea601ea00a96a5a97a3f690e66f5aea7392764abeca4eb96918974dfea0bd9d41064641102cce218d7d37d640efa6f8d10f2e789b688e3d2c6f9bb8ceac0d5eb9f66765b82765a4e0f2036fe3c43c13a2a282ae85386be1f222ec1c0a6d80d30a2e07b369615fc6e46f780bf41b3cc0efa3b816ae00f946f70fbf4ff8ba47c2e7ebd83f4ee86dac0bb31e0e9b8838f2ef91ddcace2a74f36c6c3f0e0609aec0f2da110cc333b4c59a9c41e972a828cdd78c36b7831538bb57b5b23ddcd4a12cc61834407d81acb93b2a8a2183fee7e8f6248b0088238344ca8795adfff18ae6840a99ca074e5e505bda439ba2659442bbfc60c20d1c151cf59c1f5ca9c5957fe79ed52129b23e95bbf9e4ef5d2ea47acde553b6c6a2f347fe4830f0f79dceb003997bfba505354bbbf2c5d72691dcf96e587cc818f7aa05d558472bb8dbb28abb0e64a075142609621103d25ec8653455323b6aa09940a56216bb9f81f3a786a4a3cc1826eac8a32a4f08b1106ce33adcc201900c73110bb27e718aaefb9524d3f37beda460cc08a6f8cdab700fd96db023c7788a234df66f3756d24b580cf5839c621f6b752df1e673d88285f39793bd326a4a56675ed3e2d2db2b4d60932a927757808238045b1e4c92f794810cc8dadcf0b84a9e1947a42a1521d8123db7c08f230dda1a53bc260a52252baf4336898e1454600243c97509280cb892698aa2a60642fa23d66c7a7de9e4a79587d94c049d607975d646118ac186eba719fbc39e613998e30debf58664c277447ff5ca21540b60e212dec687d142fa945f0e399e08cac702c7425a1b01111e381e31916f94ea7d44ebaedb75779b62bce55f4a53d4ed3f5cf7cb0850eb468fe96c1d64ff7eb50a6eeb08dc358a7b28b2853c3f6c42d506ce3caa786212a1a0d449e6486d477b026f509f0e45e750f065a94ec6c68042da2bbf2ea0aa8122410e13abdbb4a38e55016a112b8a179e67e57fac7065b3a3951d71364fb046003c908c66721c0cc6e7b8f6fd423c718e3221efcced4371ba1652ea7c30aac4ac43db99d0ff1b28bd6a9c27fe4487f651a198c9a6ab0fe325db803a66732b14e2038f83bef28176ecf056ffe29d8436ff0f806fc66d6bb20cd3ce09b7fd934d5c7026258e6d2ead11930e41b407214d50ca9784c74b0121fc3b0556fda3a254b6f456ec983a0c4df5bb953c39c0cdd6997f15e7e6fcf05ee1c14d90bfbdabeda272f8696f9ac9fe8d1ed1378ca1b8c604f9a8e515ce8ac99a5db875cb7f4ea299f9891f8391f53b6f47ff73737334661510050dc5fac7999993ff4a34ca296073d54cb57c78efaf51371275f94f1e2e8cee2b37d63731b89c1d21f540a700b090fab765ab41161ba879d44d7854df568b24b000c9233801e6ff8338245713d8d0c96874cdc5e68b507e8d85173ecdd3603b6c148ed142a0d2c540c46f9ba633557df7d70f73428df8b5aa6892886b2e78104143edcf7f0b6506b382426e60b2a9c64623e74717a7d8814b97f2a71f017ef08e540352501d6838f7a2109671a1cec2b0067477eac20a8eb7eb59df773b02364319ee165158d0d81290fd9bd3476f03c7ed5ef76aab78c5634783e9fe8ab45f1f72c0c22fb6b2de508d85e6859fe68634c474a85163f386eb98cded61caade6e13176c322e95bde7a08c252dc990451c9e72851bf925e1a4ef4fe3571b0a9da52b287ac346bbce77b89af4f930fb2e0716b34b6d19358dea5af80d17b9e488125868d027c5cae858bded9583eab6253e22a03de2e36ff14301dea9637dbec4e8020339ffa6b5e89f3d233ba0fa1a69aec06975571602e5dd184aacf8d6a17bf74d735f926072d1a06fa92bcb0cf85e1c5a84b5a8b86b46cfd0933e8a5d94f9720b6e1d6b6496a5073ad857115afa43ccf90db6fcd131af7d18943236fe2e6200c07c7c95acbeca00dbc89881ab24c6dc9ed0471b68d42105b31bb2185b1f51ed7c877176e7d430648a2c3fbf86ec4845cd5e290e6fff2ca66ddef8b352d717e21b58e848aea569cb6e6eb5db66ff9a320adb9b35cf340d019241e3e52897558ce831032e2536fe532981625a9e1ed6f4acde9ffc7349a4170f0d44e9c7f9afdad0d96f4e9d1242970a01c5e7ff9422a7faffbef0eaaf0e8f391b997c086f25785deb7430f72c4a16f83d58f84685c8027853b2eb51f049a3c0a74be4604cf6b0fa76835b4a46c675c1cc4a5bceb5015f29f2f7f44c5c50153aaecae78ac29fd3ceb187b6de800ab63904a704da7c00a96ead17241a95d14405bcf7bf53fdfa527ff2fd1ac15aef1b3a3970554e90d632a982f40f63db9f1937517cacb91531505edbc0fa78b9aa07b4be4bca96f7f3a88b527264eb600ddfc4b01edece815bba6854e6cdbf084ae8d63cd974ea71e3a7e40c0e99486a7d9a660a73b9fea694418e1e2f9c3838982ea3eb11aa97ddb2298f80e5830a8eb1e5902ecaeeb7b6670f984a7397f463006ad45bf564c90789c0dbc70b2477d688c0dcf3c0871207f050058472b4b030aa0f89c6d16e6fed20023ecc5d570414506cd70c6895e3b181c88d925b99aa3675f6f5fda444deae5cce3cdb686c1cd6fb2d4f15f9da4823ae720f082afac0ba1168dc1f96626e66a647b656682c1d4d93da3a34e047ce6a64a7156b92c80f9c844c3ebce97efebf0be003fcc2ee221a33b5720d852b85b1a38dd2d140ce53c83d186471e2220056c121fa54fcb48f86ef4ed3d814c5b4ae77375f47b3396ada4c952d911a12613ffc38f93ef7bb07c1276aed532f894a76796bbaecacb2e3866944e614b5982b50bdc03beb612b7daa3e930b610b16fb1c5f5ad3bb95fb899c5eb68397e7d2d020462cd17c68374b9c45fe776f2a6c278c6b04f5d63a77bcaea10264192e56b82a14e740b315f885cbb4a8f3c716a25e8afb47679d165f846f1dfa406946a6f282117921c73fe359d3ebd88d14ad186bcc3f21c43aeedbd4a290ed3290cb233841cf15c3b5237e2604e84b57f4cc686718db18423f9fb8786bacebea68555a1ae39cb496788cf9b4faf45d56d610903b5411082b0ede52a5471773225e58a86da150dcdda3299cb1c1029fc8f9e5911042d204fe6e196519778cbac6bd03eb2baa9fe12f7d165216c94def2e1f821d99f1fc78f277def9fc111c25e9bf4c1fc067804dc782cf888806ea656cc732d43fdac531ff57d5a5434eca3e62abad5585dc527a736b4755db819eeb7f00d173bda2572f2dab81edc9c51be61fd2ab0112e098dfd2bc1924d89e3c6ce2de252efa88faeedc478e081cf3dcb27f3d5e523ad9d0033accbc0b319fbe7a88f10a5ffc9c494dc9efc2c850b458f2f2c1e279e6654a503837dc6e8fb2fb5d2f6dc40e811ede5d99b0eb6a8cec1a942b2e63fe75a99941eb6e041118d97741860077ed0748ef9f734150d7d7301a0179931f7d78ac01c34fddfbb7c73687a55cc75aa3ab7048f8081f6e4f53998d0dfde015cc5c7dc6dc3c215bb9bb261af6395658a19e00f0a5457194dcd1146ed25b15188e4869ddbea1fb86f6f46172619ec36df3c17a3638e126bd708528df45713ac9eed64462fa36dfe75beee83ed58e8102c87863fa1c88569e65f935422e0c612c28aa31aff142b80a6a4aae2ef8d93d1c409fbe5fdce156c68aef1e3601e7550535c43f46dfdfad7e24cbaae32deae3b89b377ad790fa541594c49d592d030b5b84d2034cfd99664549ecc33cfcc5d26a3eda663708544d3fb47a712b6ac04929f13e7f1697fdfed30bb70ee157ca9217b9c6887532bee94cafbfc0a83f222d4b0e93471817237d32af84579be91720f6cb868d8ce6658a201dcc56523dade8e15c49bca326783e6a6ec1104513f6df95f3ee2003735d91f3a284f893edf2463f2f8893201e5aee688b8dcfa0c080261f26c8fcc6ac4de3ee69d1f5391bdab3c6ed76d4fc8eb563dfba4fcfae28d14175764a8216c4e177a3a5c2394f806534855868dbda241aed5da08e457eb6216e9f7e346347546a3b3c82ce4c1aaea08a8a877db82805623490082ee142d09fe85ecc1c91f11003ddf42ed683a5ccf9225a0331720a96033879d90652756f498d6eb43a517fce89a83db3580bf09473ceb75f4a71b2130fc54359b89cde460e68e4a543ccbd1a4529d93ba88e049e9f305cd52d8f0c68b02d41ed8c9f82a21199346dc2c85da9915c8b4b39c3cf97aead70eb9dcb029218e82a211fc5985d44103d6a635c728918e9c0dcf7375eec55ea85eae7a83f1511f7808e709ba4bf99891127bbfe5e1ea1d03fc95758d4a0658c645d4382624e642314628860027d06803ae77a661fcee980a91dac97efa4479c0ec9f6d3416ced08ba241ea14a2e053c80c483c6e3e0e8e1d2b34fb39de184df6bac07e5c3e518e5bdb336f7f4a5d490d58d2b8e6cf81dee8a88d0f6a10088173ba6dac3e3199c0740ec3ff2d51afa23c93a56bde880b31388b577342f33f46c5d9f73853451145b5e9dd4fddc76945a04010a9d56b60bb299f3a2bf03850169fcf3ae50bfd69e16411d2d813eb330fc98561de27eb688e15dc7ceeecb92c8d45278a6a261a25f1afc208d664080d0849fe88003cf26bd70749a5555f27eb0a06f1daa8217bea877303ebce16b91d84f139bca4003170a60e42681ff0473deceac4f1baed1084e8e3e8136bc20dbb5f6755adee2b9cc612185fb682de310aa7d623a84d4d842d5f01cb330c82f92873a690bcb3e71a0dae9f2d9bd47a5c6ab3514afbf32977bce8a36e42b0fd44b9b527be4fe5a50c962cb5723fc05416d62a1a2c31e80dcfd335cfcda3bb88294a447b862174fc73a474c5ca57fd334a49c343d0cbf82a4b16a0fda4ffbe0eb62ce990edbdb850f9530554a4ac8802e2616e35bfe26f77a3f8272fe41aea2c60eb3aa617e820d7c87e12c78a6185c099063c0a8dc2b3d4a79e0dce2e269ea0720d37b5c823386d41461d159c1a6d40807bf5c41e5f64f4e2f90ec55490a09e9fd7b496df71006c156540b534315ac87729b0e8c8bb31b1089ec323037a9860b6fb60b6abb2055b7ea8cac809cf0c12e3332e3c5e4ad3da9f1f0e08902a61fe5bde91ab7d9410d428139d63776db548fd54fe4b7f8a39ce79f8d9e469926675448458f9e525a5fdd3b5f87956b37fd31aaf0ce59f7ed65833c8e6673be6069a1d0deba5cab206590c7aa7d901f1faa477600698b55ed39dc6fe843a07da41725eb94cf70bc433f672763b13592fb546dc18d7f427c296b40155ae3c7ca26ed041e154418aaedac0122982e999771f459cd40ce744ccf7e5748f76a65addf66a6299845f1787b8f59fc5c2082bb8bc0cafcaa2bda6dc9b64b2a30100242b1a529df6738d779ca5f451afa1a690938c586ec854804c1b5e48df7f3d115ec534d76fd1ba0f4c8dfcb15cb3005a508484ff20687cd263bf7fd66f94f8b98f710427b878858a28ed80d23ddf7836bbf43aaac823c4304d4cfd959fce7fb7e72a601283f1cab471d98b790b55a1144df93adf819881c203cc26c9df76d9c14ca85e573cbd115dcf08c101675881e64b6a3ac9ba20c3d6601b7d9f7e3a2d3f72454248306b28bf18b00732e29ca4b7de2534f780e416dfd8e655d27a2e3b875dcd194a32c44a23cfd801ca933d57e3067007ad88d4714137121c27f73d731fe9da3fc73a0e115a636d4533391635af41d57d333bfdfb5ff914feaf1553eaed57724766967b68e60911d243753bf8e475ab208f51e7f82a67ef9889b2e09ba0aeca11a3302a5f864a80490b20be7e3dad6fc9767576a7b8d5239895229c914297007dc397f9f3c1be2103795528ef6d43c9ffa9265ef747e8ce012e9f364aa56ccad82bc3b173245a1a45c56b0fe8ac71d25f51f93582bda518a956d870785423f2fbb29e83736464304bae3dd991e2a63311cb13e9d6ec2ccd7e97567640d49ddc3ee988e71bebaabcf61f216199bc9bd55be882ce49a1a20a20edce51d9349f58029882b2483426d578dc97a6922a9a4d0f68a4bcbdbc91290c00407f374e46112c9b7fd375b75723e17ce45e9fdf0a9976ddb793a1881ceee075136694037bc6667332dddb20a182ef4cd3208de0161d6cbf80cafb2e96538b68e23b4856ecbaf2c85ed5143e6f4043d095336099a256f699d2c5540a5d3df87d0d4717e4d48654637d417a46fb7028dc1d9b62429d7b6793443b96fac0a4a943a4833d92a7878165765f50983005c3c4df2b1f19c97379343e425b60fd110b5e5a10c73d115a1ff312f31420d53cfb1e764c614e3e0d9e74970f8b69a27c9030791e54281d015eabcf022772e110b36e6a4a515c395190fa387823011cbed2bea6b2de73d4789fc1a08992a87dd2c82160e9da4ea85cb95fb4dcd7f3310ec184a9e028b093b8e70d75f484c89792e8d772aea35e4b2b7d7f018b014a3bf2308785b398fb937d3396c4a5f2d5f96692b8ac180b1f65f6719ce5a98aeb5570485328d5c9fc05e4ec4a219174491e4aa6c9f4a421a4785e5da2d6b9baa87ac97630fd9d8a9a6dd841300af400c91ab26612699a249037407e643a66307c8539d7ccc8017c7c77d565aedee19d2eaeb516f3b2120a9e4f474b210beddf9bdf166255d6af05baaaafaf05fd8429f8ae75a93606d685d93f3b47fa21f847fefefa4d879b3f24ba12a0a52525b98dbcb6dd7f5e9214c91d2d1813a9bb8efbc836d949c03dc25a8388356f2228eac6c5ed7f0f6e7e34a2e9df5fc4f49884252a8878ee7ee47f65a7b56fcfee7fab86fcac9f995726bfa5f11ee17744a0e11f6a6aab98fd36e99e401c99f144d4d7e5e7ab51e5ffd7e4112e5fc9b89bd6fb42ee7e21eafb3b7c9629f54b2915af2554f49d65e2385dc57d2b93fa2526ee5a4bed1f15dc68d627fa50dccc03660d520f3c8d6cb7d9e06352ef91b6df250ec97e5d0b864990b90378b00bc8af518fbc8702f1a26463bca1af3c1d399135b33acc4efcecc4f6b4120f1bcb0cb0f0488f7936dd5163eb3cef0b8a674066f48505b4e9c15b9b6997bd49ce789256389670dcfe506740d5712b83ab02e1271f58a9ad3769e64ccd0461d15646c59958847d3a39695333591971fb808282d43b927c58dd7a560c4965db0857460b7160b2afae2a2f3e231721bd16b402950c2660ed0b925194db6dde83d2c9d2e9961bfc0d033ee58907cc3da52e9c479e15af5c2acf34afb95db77d573cacea57aeef767619b3ec40ffdddf73068517942005c504483f061dfd273b8113f49b850b07202d29b9ce2adc592775eef2b06a1f2d36c0e0885676d8a7ece0a7993e978174ba37a77db3a508193098f9a1e9e669dbdf96e5f3bcabcd949169f4203ede0955ffcc0770a3124c8e95d6b8f5448ac7abf17a7fd21efa1136fd51048bbff44bb91fc0bf51897bfbe428135f2102129e1ade1e1f474bb605e469bef475220aede7f49659b5423dda1ca288544619a7b56a76ffca5f65c7d56705b60c4c58b1e395542bfd80340a74a5de751767135e9e5a902e839bfe337641f2d9bf9b58ddf6f9234d22a7aba63e1495456139740f47dcbb4947e1e85cb12061be7336ec5327b955a08584cc3fe1b383e0cee82ddf6873b6d9a88b93489f421bb3a60003a50e317d82182d7e83e751456db91fc7a16d712d57c107395bd646503a2b49d702a8053b8fe5f81e263bb7946a82a02dfef6b29d527488d3f7696dad145229abd6d5c7bb6b42071bf6cd51ed687b56fdfda63523ddf6d1e13b6f427d99cb0685561eee3322792e22f93ccb6973c80ee8c092f83eac37abfde958cb54e597c089cdfd9849e4da4ad7cf9943104d56da97653414489dbddfcaa4ed59ab68210e7c31a767389cdf103c3412c8b073eb55f2544c4e9fea182fafb40d469c788fa48cd7a03195214087f1c27374192df04486e5d56a1eece891338ee80da2f9c19f61cdd0b1432c6333ecd85c3fa850693e25998a8fba64bff01b79602198c85b029cf63d4ea5510fb660966ba1f9c216eae5e2ae5f456ab47bafdd1ea3b1ed9289ba3f8e6db4d5897bc6322bdea3bf8331bb972aa0c749f8678f20f228f821b38de810437c96bd320ba8df160c1940c2425db947243b52ae214b281cdf5b840078ca1f4a5291e0d5a3a968bf987c3b3218c6c9493205fbfb2866b1ae30853be07f4695e6bfa5d4f1deb3d711787bbca526142fd9340e5489203cd886003294dbb19f850950cc6f7b91dc6a350921d080a62f172cfb4465f66002f387128ea609e22e7ee50a6a50794c0ae18c54dbbfaa5237af05726ce7862fbbe810d008e7e5ba15c08ecb63a1c42db6ee45e9626c782565b2477b1068cf9cee13fe2862a0491b7e71b804c3d92cbc75c84c78da62a01087d81517e4417c9181c1c6a143fb16b60c4acdfda4b79470b40565a1a7902528aa8c54b3847764164206e558ca79959c090bca46e7cd721add22438dd915c3d4211c4861a7a16357191703eeb2152e717c04773c55eb95dc060dc08822d5965d7a061c118edc5ff091f74d3e88b83611c3cdea7834394cb6ea1245ac93b617a663501983eada336386ca3482d4df193e9c73dd38936658152b36c79f931debe319ec861d571aebe4c34782188c593820d2e0ac8b274fcb8219d327f92bd61b97dcfa5d01d1b7d28fc0e9d230d135d0863aaf7c24c05a704e56d6d4da49bb84a4e14d62a9e8f31e7e43d32673fd579b6c0b6e648e47dee314fb16b1b568ba1de62263f534e96df4f6bd91e78cd06da7557f949ff7fceccf01f3a8cdd21164f1052a96fdb26ac9df96a261886d9be0caa18f465951315d21252df5dc3463a411ef69b6c7fab89116d6a1132beb2cb723901375a4b0a1e6b022ab939d16ae92ae31592f1fedba45d2051a6f3b8be80e07641544c46e63e25008d9e7d4e66ed3016be3e58a56260ecfc4720f43172ec58e3e349807d881904f6178eb51f1bcd47817daf7c3d13a7dcb2df21cce45f4a1b28fb42232d26c38b204cf144ae31e19d7c8bdcb7f45878153be0882494af92e56bf7c6103f19ac7ab2014d325f9d6f34f7517cd54e0ff531c4ea5846409f6e4c4924cd96ead1c29a8f8240061647f4d16504af4ca8f817f35dcaee4f8368f4c3112addbae4f8a8b92a75a0d4f24b29394f65ea165b499e2c254aea794b687696955d1957686320b29ed06fa601823795bb373c75c66fc098ce4ea3b0d4f5b59ac436ef3a54c4bb7ff14222a61b723950929dc56fa2369a64fa54117913951132ec8630e1fb2ca23d9782316ad7f43a33d347da53b70a9e525a5916d857d7d270b4d5a4f6a96db24626781d588868e93e79d462eaa895227b850705efa1ecffe00f07aa4e4d3159c59b41d2e7d299c154f1f2cee40e642c5a7775c12911952ad7f48d504909c0a56d398a0a0b149207f95f671ab442aafdeea54138e8d808c3461fbdb2231d31efa333cfb4467d868327c40b93b4a6c38b521eb8ef6770c82e152073bada9f16767dfda29436b3c5eb8b930978db847ac3905622b37391169bb6fe58256fc207af821bc7c36d6dbf04e48d80438aa6180dcf81fe8b165ab281d3f2663f329306db3cf059705d8ff8be1eff13730193cb81a83393bd5cdba46e6a117d04d489b2439fe5604abba0857b1595f303aaaf65e0e1ef2ccf08c2bf3333c0ec9708bf8e763ec20b596bf84dff07a01466cbac09ca01162aefc69c1823d3160518990e76615a21e11b8368c609d181df113d122a2347733fc3f8babfa7fce9db2ac80e373007e149f3f6d4b5d61d9775ff4bdfd8d58ff65317e0b91d748178a040fcbec52532344ed9245479a2c4da455e9a29457a743af0865ea9fa20331be085a8b9450a1cc57634cf5ebfbebd0c9bf6929e8877f13e5bb2751e37148841c139bc93cbc7bddf9aadc483c833befe29b8fe09c3b68bea72eda926298ac7478c84985e268af8aa79995263277d084aefb9a6ccaf718bd633cc9ba68b10f3b0886260d119d1e1f8d982189088637a51befa9a061b76246e9cd306786bd8a7f555b045d1f9f97f1dbf0400c36f490b172660e4c2e04deecd57acfa7501c139c23f4b5f6dee765127afee27d321ef1ad56a536a1594a431a82e7c557f8af94517ebdde2e6ff6749a734021a7dc9be5342175c3e7bdb913b72d17c1ec744f3241ac0c7eadeb660bf7ddf91c2d20080e0dae4361bb9cd70c3610b066e9b2189e1b3c697ee6f85f307724f00995420c6ad2729087b3323dc9347e6dacb7baea584c2222ba1a4d00470a44a75b6113939df9924b05e57d698e7df69598c5f06935b85a75a730cb0c87a321b692bcbdc8b8b116f43c4e24c2244235938cd93750e71e89c384232a8b67e6caf10c8f8bccd8db5f2c0c9f5803f05ff2f125c84c91aa7937bfa42f6f06b1b746ea8c8816d85f006e4260205ccfed2f2a2e3cecf6e2037ac55648e1b1c4697ad383f857d80741939544f71912423485e29071db93cace5c2975362a11b4e25b90fabfd64448d79f9dd894cbdc1354c9978d86e452a5ca79e4a1b9bf4156bd0c4a20ec1065ee1cdebdfaad66fba3b98c4026072e16e210f2dc4b2410f8d5752df8c87730f577aec44091b3bf519bdc49a0f234d23469b7e36a1d96910cd0229861cf13bce140d48e784cfbace48e4cc63b4a90a126909f9215ddf3f08bd566f59256e18dcc86a3518c8dc5a475122d89374ba9572e3e0a7df3b6e5b15e30129a8183355fe3b8a8cc36b906283b7667d1d9521d3781aacf61e9e96e1b0043c13640af04493f30f0d4c555f7ba0f0ce4d8a4b787e3464a23229c462aa5c0214737278955b30591725100fd7837a714bf0541b5730187268056df47353a84f11f076744bff20b9900d81f9b12c714dd4be4b8bd9ff132b0751a65719360166ed74d0795f72fffcf2a399ddcc5f5dc2852cc8085837bceb615b0cca60855d3ab6bf5dec3b0e02c3a2f21deb558528cbc6b3c55c1468b987b9b9df5688babb217f00ddc90027d7bb0899d3a3ec736eb053c5619486585ce42937dbf76e89d3b8b9146fc9637c5860e799feeb5831d1de788cbf42d12122dafddf402fea7206f27b363a2c76cd960413c7d090b2bc79c166026c127b112e0505974603b0f5423e05d0b66be0226c0bcae19b420c1b3a5728250e35b8983854833dcb9233b649ab92bb4461b26a61ff4228720f29810f7071fff102b30935c065d240e7925670e9ccf67eaf3493855d447760562eb83b4c3e9dcbbd8fd27280bc062331e1b87c13c9d182b52137679baea28584d27c6a9d35f68088a9468c9d2d1515cd4954de69cf3980699851cffff43eeaa1629ee1d453ac429f451332e078f6af586034dd57f316a969fb4ee27df07e7502d82989db305ab6d42f3573df5af01b7f83870c3bb6c3d14284cae5eac03229d51403fb39349310fcd01f118d094175b055e499812ee985a073ea12ba2c921aa5bfc7ab5f30ef421e892bea0d41a621fc2106f948aad45e19b1419f5b4e60ffab1fa67c6f9ae07041575f1bff8a5a828a88529766dd6cb8a985606ddff7041952af85d6513fa7d2839cee07578aba05530bbc043111014926efd31e1e9d43547cfe8c11e4b7d2c7a84bcef09f7b17448e03464f42ac8b076d9c630fdfcd27fe2779e6f2a731ebe572b6dd732a71d34229ecab7900c7ef788f43a291f3c33100d14d20d7b1d4a3a7541c3eed5e64f4ec298cab421397f6ce386b0024249f64f8213496d79d524a41c8050500ef0b71fd0aded14a0e8d6d9e343c8087a1d94a007ab041724de9d1bac6cf150fb31da6480c65e51b31c57c97f3b3ae34b840a7d8531b8e6d72d6fe6b30092b9ae79dd372b81bcb2027a926c1eee5f7941aacd7075bb3f08525e2da99737ae82dc0ae481d2cefe5eb293a689038dacf648d74a90fc4c05dd12e128fb1116f0677d5535cda681a8e34b7a6533d7b21a154e2b216c2b2380437c0a3eddd8b8734bdc19acf2aacd46eba0cd002ed9f041f3c2a33f4e8ae2d88b42a3a6760f68e5e45ba07ed90f09c1a66bc085d1546c6dd1bcb173ff9ea9444dc0459fc4de9a3b56293a6b8b3f9d5c6959fc2267ab4189a53994c2bf7833d51e386ab1ce34882d6900e82505110f6b413fadde9fb452ac6e7bc7124af1282220de8a04b7a4d3af62dc4fb5b2f43283a73f41e2c397531585a63afd61f3485890266c2d5d8a9fa840d4f9cdcf0cb1232471067f702ed6a2be378802d97983b7f3cd67cbb51a342c5646b3bdd99a0554c432d25da96aee3d203578cf212f3733bca56bfb1697a06f72f419595d27f290567db648c58eba3deeb4bdefbb263e881eb97c0e04071c49b7fa70106f054cafd2ce0c4e5e7930590cc384198fea39436f32cb6feb3aee785c09242f7fe9a9e66a5011b32f7f1fe32b06c0ab21b0bdd7585c3dce9e6f31e1e6e9ef79bfd50205dc1d4537c092a2ceaf171c6f622f505f5f47d9526655e21fda3beaea7c60cc6ffb4c9fdf0b6c3a0b4cba361de30d3bbbe078e638aec34b88c94adca6a4c67536d8f6df47d46428e49db9798c0e413388871896ae82710b030067fb9e2e5ea3278b94adf6b16d335651b8c18f9a2585a88380d647684d5636f03fefa75b6c006e15896148ba93b9f29e66a745895100f7b9146993a127e4619f69fbc6ec42b67f36838db80307a4809dff52f3c592788c660c20c6248be7124b7315bb8da8959c0372fed2e38b30bf7637379236414d66b5192d91b11b1ccc496b23e26ad27b17b6ef357e3751a2a7bcfa6ae382c3bbff4fd0b1ebcdb44635ac055fc8265b920732b8cbdd2425a0e58389b8b9cafd7fbfc5eefaba9850de02a11e7b1d1034862b3c4950cd660aa77a6dde19e644cceb4e446f5bbc3a9a21c7f9af348d2a876894529dcd34c4e8aea1593b49b79c5557e53474d9085b8b23a66b86a9eb7133afa8ce7b82a9b0f68ce6b8b1c5aed1f9131373a727fecf4ef3c08351b78cf9b489d345c87ec7433c01dc26743fb34992437e95ef4c8c961b1e933a87754f95a02afc1a29d3bacd8401f45928047043193d966e54549f8e3025766cbe21399ade9e660c5c78d422fe3d4b7821dacde241dacdc5ad2dc637e63be36516cf24aad9e27d51042dcb721de53fb6b0c6687bee1d055efabd23604a7f4b245fac2779eda9dc9f51f00f2f0efc37a1c3bd11e94fa3d7a19f02f629a0d38c465038f73f12d0a2b6e0983b8ddfefa11658e7dbeb2b440bc58234e60d3c217aa078cfa021b50099467e67c75dae0b2ed2f8fd1ef47641db3e9c4247716b0137855e1d8bd23428109d696d39271c0988b972744aa2f1413a478c1b49f7991916f4833d2cadf15c00dbca4806a13b94ba2ad436d290322ca6b338536b9ee960e8d0c8cd9609618f9132e7c1fb66b316c941a37c279df93dcdf2c1a82199ab040873c813c6437cfa5ec548fcb9fe7d6714a7f085ce2bbfbdb382ad1b4bb82c0939d1c0fa30459b2b3f5d5db3af7fc4361a6a55d82858f8bd0c2c7ba2f229f2cc9f1846f638ae6cd8bc2dd6a6c011c52d4040b545ebd67e6587e0cc06d48b7943de292dadf88f5fce9a8494200e2411eeddcb84517e71079423a322641bcd68706a0ad3807a0677c003cc0fa3e6a9690b96e931a8836d2fe685d23c1402821f611770b28fde671125a43d541e320224693290ea590a11c9c20ee1847cf75a04ed5cee7e880f5295231722a75db0c73065ab9aff94fa2436bbcc57ec40cad3e8e57e1f0bf072e7d1d4d8ee78133912af5b7ff1f2654413d4babeb522ebadd3833c07c4cc08ee05b583b7d3ba63099db9459a672fbe673efec379e14d2468f255a0ce44a9fa65b5b39dcb31b1a0e871513ff6723bbe59cc007e9d806213acfd846fcf2244607a96a6dba4aa270afa610c025782b4de383a49f232d208f5712d09cb8065ab1ed92c38ca887cb2c0e7567b0a2b7ebd3adb1421555d1625a4eb3686e58e0b32a8d0f1905ee28808e4ce8a57a3638bfaa776257d2688fe5d2e8f6a4b2e6ed425041cd37461ecd5e0ec6358b91dcf425d396dd9ee66a96915f04f9f18cf9f689c749954d23e33d7cd005db96fa289d8263e9d1502df98620d3be54945bc522a290b08499fedb639be89d8563b0c48261a45e372263405e122d6195ed6783a3c303c8536c38699c46c4ec51757a14766bd3d827cc031b2169db3d52005a84410f6a3025e473634d34bf50341e66a5720708c5b04f4d4aedc4d36e7d4e2a39f368806988b608f5118037f908987a6f2accea15da1cf5605da1ff1f9709fd7b8b2da4dce5908cbe6788418fe6d3c03bf9232f47de143f6e408c9bd08ca2b5a0053bf5041e0f25a4b9355145a7031df6e09e020c553bc8759faace6baa7ddaeacdd8640c0500a13cfb650c42fc0fb64f33b0e9e88bbca95e0e3c8c573d371c03924ac82e8ccbb1d87cdf5ec9ab6cd460a57f7c243981eca5f00f5ce600a6272d1363d107f5c14949b5ad2aa1711db99284c801703358ad785d0310529d91c10319c89df89161ee96d267d5502cdc4ce9d71593754ae975d9b5347ccd344e9c9e52587dd1afa6406afcb9d647c2cec81e74c8bd848c912b463a33464a637ed6d1e032f342629f929b9a1f441b04ed91db86a5b90d62a1b8062b797b615d95052bb1fc97ec72b7d2e9f2ae51d7d1bf49993ecb8a63fb068250c62d89513b832f8d08498b641e1aee95aa0291b1f9b34b56076f80cde688d6d606c8cb40933cff689c9abc641acb7fabfb247166e8df4f5624f07bc0cb04cacff18b6e5af8152d6c253b5c0756195bca0999f7aaa1f2295237d355166d103f0b8c31a687658ecf2ebb842d1cead228c7ed487afc6f86fd60df2038ef359db06984b611fe8e196f9cd832d21a18cf2b72b3b08859c7b0c2e740d90494d6ebcc0834abd0eee16614d1491d6406c07899ecdd40902bd728e10a276bc2b1b0a63f20f2a48c1d0fa034ec01077ff88bbfb1d4f084edfe7db716e982ada324534c5e2290c2bc4ea087fc0d7641c01ee3974322633b5aa17cb8ba9ced6a45ff913b69d23c12ba99f7e9aed05e1e72f9c85e27e9be412d8fce1735e5deafbd63292221ecad9335b1a0ed4d4c489af16c43bea42a7a6083f08b5735de50deb61b8ef4f0fe74582350ceb1d685b3b8f047e6d9e6e93364d205465498c9998d0abe061bef6e4a364e4460fd3092cc8f30b962d5d6bb519551402b66dea0e1d34050eae8dd22b370f4b7d97fc4ae84a29e583a95c97f92b601c61dc5a9849fbf732eb3480a65b1f95ad8620c74d332330afd5c795a44fbc3d55b122437e45aaad3abece66c5fcd05cd2f603ffff5f96d3421246d176cfd654dd466c0dd209d525df67df55c54ad39f30805b0da537743099d96adb04dfa20181b8ee8eae8fded13054f2ee9738b82b3af030aea6b74f588b825c949350ed92680df208752de96e8fbd6b72232368d8c1a3b1f413bf26a0dab5618c1984d446ee7f8e6e8ed8f4559cdb5f28e8fc150fca74b2b09d0d91a91058a9f75a393fd7610bdd15fe68668b64eb290e43fe77ca947a0d56abe1858232fa4653ecd5aa7f60cd6fda4eff11f0c0103ca88113300ec0181b22e4b27b8698cda64526020ca3d3bde08adba7274a228529e079eb7e2c375e79494dd735b187cc263066fa4c0c4043ca5ee3fe00eb608a1d5f1a556b519f278d307eb94ba80d3faa3fc5eacb4eacbaebf9c248fb107f7c4afdb697e7648dd00f0ad9d2f98200b07acade77a85209c52d43fcd735137549a8e43daff28ca7b38d0638e745d6f98dc01f514e2f431b1117e8d40883fca66516ca7cb1a7dff886cc07e4745d5b68b883f64b3913b65b7553be706d5e27548a4ff40147329293ac1ce20c589e6afa5f090c49288bb4b7cc6d7496ccade271dd5bdaab3ffce449579de5aaef4dd8de86627b8208675d74e6b0f31932eb9b37951ed661f6e2c35de56a6a82eb8643c730f74fd9a245299a68be807d04174c02f586b1184062269144f3985a6d1c08d85e1f6ce978e86c688a638ad9ede852addfd94b8688273e5ecbd408af5183d4e097d1b1446fb3f5812a174b4b1dbc23a870a68efbe5126ae973100d0f871b2956d6e057b1f8350187826a9596b31de1654b20922d5f72d14dc86055e03c9738e1e53f69ee4341c71b530542b5a5e6de768936dad0be1fce3124f0034ecd93297ef360a5778fe9f802866c29e72444570f4796e7ff0e37797e83f9d2b3b8f2d7d2537a3c261b185f92c6728e8f0c80230b36f9784aed9b85e59a6d2b2f396102cce76c76c017b60a8d7b673ed85db8fcb3b44c6d60e4c2add42ee0075bd07ca664616f6c94049349751747a48abb696920e1e5703830a9ab1d1d07978ec7f34dc636f21dbeec6b3aa991d7c26438b7d032265377e3449361fefa4472745472c7092987650b89024132a837418e57ae7700e69a22c28c059b3e5eb3f5589024208d992dfe26b1894d363a4a5523f0f954cfc2ade4eb01dbde779b3750d27a716c3562a9d0191cea5cf5fefd5e2a764f30a6f6799572f7bb7fd168d5f84e8091aa86efe6704288f557944b8f2b07e7b397ea35d290b238345a526539b11ece29dadb2514a5381ccd7afdcc5678ff1b95b3be76ac50b7818064a6a3eccd45242b1b590cbe18a0b28521240d6cdc8c6548184cc1e27c00c0b7dc776c9700ef39f1209ceb31b10c9eaed653882405c8167848a87ebc8ed4a2f6628d95c186badf9717173368aec37ad0f4c4208435c6b500ad9473ed370bdc9560b6df14aefecb8cfb72178ce7fd1e5efe15c8496b4a4d3904a1d248e4654d909b10e2ba1f70b61cf6eebe4412a8c05af46ba6109a187e38f4baaf724f19a635df2d8b34a63dcf994dc5ff91ad26d01146cc909a3767018f4ac980e25ba370cfde6da4a91cf661c920a062f75b221f41c02b78f7de32e3d585b99f9be3c87293794300ea93733cdfd5a4471cfe83696b2709f545c62cb8b8b3d423412ff4f89131e6332587fc7900e8eac4c8fe824936cffbf01c5e874e5be0fcede49e414aa291d1eda546e4c9dc3b0e89be8af935fed9cca8c188243d71fe1d916325e78cf3dd9bf7d11372ea614af70ece91950e32ecea4843ed28784e55334bbfd49326777552353e207fb4bfcbb3887c7a85117d3cbc0b53826dfc4bfdfbf444164b9a65f0361b2c5ce249d0d009d377049d218324238849f828873a50e83b4e8933ed2077b12ac326c31efcedcc7beb28096347ee2b18c852eb78471b8b4177abaa042acd59ce86c7659cbf684e4749b96accf87e01729620166b7841625be5ee9c91cbc4152286210b4a08ea021cbf78f484b48ea0ca04a8201a5dc55b8bb4fdbec0ebe4bf37f280f0936ed8c3b12eaf2b7f15f33d6eaf50202d75efd43748052e36bd9e63d4f6e5cfe3195cb58ce9c749873716514b7af258cc65f934656099c05a0a0e0a5b57dd177b0dff231e2db9f917ba2bd3bc807d774c0a28460908108d765eda9b38bad2fdd0c0539d21f3430d2f7917ee7517dad5297327cc45c3a9a354dd376ff3ec62bd2f1cf2f4539ab15d01110af7ba180673d838a0539b564921918705626acf6ecc44b0b5c8c0fee66429e4549acf2b75e9c3164649cedee7084e993e2333c38b7b7c81713d45e75393b79d1b66cfea7c4476af766f30476f57c4f6b7894a5d1f4cf60e2b4961df8eeed3872fd1a45e3fd965f8be3d28b0c5a9e005d3a4d61e293c4b8e460309d73a9cb2c6815aed40775d2844ce4936b58f43d8e75c680cd752756cdc283688e6e94a848ec3f34d86f1652f00532c3569eb4d92e4985b50574481e3ca99664b8b444abf2ee2a1e9b7deff96a7dd6c18925bf9b1398f436ab257d761683ba33ce9f9429e9b1db39d9d8be6ad37c051b9d9014d174f8e13e254e6af313fc48a9b92f4ac8a4180fa6cc101a5a9bb44631f662e75994e1c8ae903c16d9bb61fa2bb6a26cd4090d31e79c245a2efc0fd0b5c64c826ed542d1ad94af80b9495189e096cf1b0266fc9eebf0683e86abf7569ca47b853fed3c4a5c24569c7841afadb9acd861dd3f2599eb06ffc70e6262ebec59e105bfe2b1d06948e5a84b57241f2f086ae3c41e5d95e7340f4980a1fec1b202c5c9514c2385393b427d7d274b3d96822236baf08ca70df34784355e730416272d6dfdea18b7be38ea39594127b2e485a9fd3e480df97bafa198eb614855026340b1c12cacbf582867b6ded2aaac5bff20b541d27f8f233433074a3d7b380cb5c140b1f56813988a7a95dcf8316816488e6504f7c9f712b7e9179c83e7110907f9f7473893191bd384aded66254a9231295998a82a3ca571d780c0e616c34fb41a1cc623fce213989c296ba2abb13563fe11f0b12eaf6d600abc1d886fdbe68eb0a2cc02e1fc397e07d45b6dc015e7258e2148225d55956269ae4eadd23c756ce75335017cf850340043ce2dd4b7a49c96a74dd3a8f12365cac2db2959813144c7b4b385d771a2aa3872ec1a07aa8f9a7d078225e5222641dbea7205525b56dba3ce1561af04d13242c07d29a95f60c2455301ea63dfc08a8e914a63b020ad20f292422bdcf11c64e4582208c687bae958385c33c0e017e0ecaa92978c7b912113aa6d5a9c9a3b763938ace3516da579511ab9133a5a56be008d9432f7e472e47de8a1da3ffbc2f9d505c621a6cce2bae7860cf62d1cc642efb62ee4cc6d3583102c904c645d016ef7450f9f1459634adfa1428bb23346bc0c4ab7e9299de16b93c88b2c1d9c07b487b6fad69fd534cd91037cdd02670813006a9de0d59d225bd2654ca2bf912cba76bd270cdc9b6ce0a1075da6a5f936d70aabcf1de037d3487f32a8c49b94fbb23b02a56141f6c2f55d25ee25a2751532476c21e5ab1c74b0bc097c82ad49f8b51e51656b673869ae7550f600185cf7af1edb98db867226f21cb98bce9fb63a038c19458e114d1189a0e1132bd9d33b9aab986fb10f58d66905aa9c8845721ec0a77d9eeb7ae0afb9889e00c8d86452eba6d7926e79d4dd16a381c0174fd2a6de8684ab2b1c5b6dbf5d3c3a5ea951986b86eac06f1041e3c1f9d02e231042d5f1d1a3197d742137365116dfe11d716ff460905ae39fe40d26d93b9f1628ac6168adf48dc2b877177d7876d59a15a8ee6d66b487b880e5883ced23458edc0f943036daf9a839b6862aec11a37c7369926ff2be365d64aed83b02d61af06ef3c01706d49e15fc4a0cca537102979d49be1ae148ede524318665c948d08fb6c85e21a853fd29161f4c3d2d0fa552978f57bb3b3756b860d0513f16ab2826b358c08ca838aab3d7134941de7a085114c89c59252f166dd8284ac45461ca3601dcea6cd976a5deaf14fa5007e714350ead369bdce02073968c2361a1ef1af89f64a58df0028932d437950eac72daf674c7681dd588d0f5fdc23423718822a552a5e4e86fd540e6b4fd7a341ac2b800aebc531f3886405bef1953d5a97e2500c12bab0254eea93004278966ed3e3c823610e9759de18db38aa52e61b8a945367fbaf8494f33b58d2987ecd076ccc494be2ce379139a913b323e073741bf1ac09e4764513fa30b84af780202f486d9ecc500d9f9b30bfcb6d2ccda4a197af1e0f28dd75bbca55e45c171e618f5862af66cd524febc2bd26f34fd6d95f14234051750be369ff80fcf4f5855274ac7dc8d0175040a42a873f97183f7bda6f7018ce7507361ab5d4d5103e9471f70ca6a7f05219f33265f57b252e8c8f068cf1b8cb53720b8b38553eec7b461022d8f15a24255cc6d705fbb0ac4ec52436202d8c70d44b64a7a7204680a9defdacf5f4c01a36e33ae9fef7a8679f09c2d150fddfc08d03d5d8fc61872dc90d1bad68ee6f751ea830054c6f406ec25dcfc942f9d74f9ef0972f4942350e8e5e87166d0ec104a303ae94259d337a46a476f148f699a28c3688e2f71a2dd87e62cd3076bfe9f0ac5f4d637da4f3d17e95b8edb919bfc286fdef36983f80094cd09aefb2ff5ec9e26c4fbed3b8e530032071e127c1a3929a254ec41a3b54f043d5f9f0d8ec8eb626c2bf77127bc95f5eec652b78cd60bd5137b80de056b96dfe3341a3b2f49cdcf2eaa2b4d191aee5040efe90b8ae9ec1cedba9f94cabd647b8835a9e7a9436d99c5a0e08f33b4418177ad05bff708d8ce2a13ec0441429b67e09d77f8a4fd000e1618f5b0c51731b9195ea728dd0ff62f034ef3d54740c99c662b00ed40927b43bff72ea5420f36e4f11785432228b98e59ca8bbe2585c0a6a0e0da13273e75df413bd90844dc7dc06213854d54c97f81e82f3082b3c61cf01d1374125a29b38e2759900dadc13b8b44de96440eaf41323655c59dd220335622d6694179ab296efec9568ed36e20247e9bf443d14dc82bb91bdcd60b85f21df3b81dd58cf5a3944fd01dee72a75d41318b711c679e68952b4d41c7670be16e961ed1c13575f3ccf90bf0ffee6274fdda7e644bae3b00549d2a9e1cf2f488c59813159b905247ad683372998acf02d9c275106e53c7aaac088de5ae0fd0ab36a4a36f6b4413ffba99b36c0377bb5bc8bd4b95a6c4f26e8f17d02d6956bc7e3dfd2251e34cec9d54ff8566c530e2590b6a387359df76521179ff303d50e2afee3c6e8a0d730d576972a2cda46609a3342af0cab2f4313e3b887c7e302af761620540fa1ef95b13abceee1a44d202be81847fb7f862bfa1f8fa30a3206387a8a97806dace9231e53c52756a3fd058601bff7a404a30ed67da681050e7631714f8e8eeee2285abd460f9f01a2acc54b32adffb19f82bdf8531d0f4cf3707e2c84e4736027d5ebea951d310b03d02b32462651e3998aee7bcaa5ead782ec6e4c119454bdf151344a71662213c37e0ac8efa6a94fb8f556268238724c7ab755a059aec4b6b2374daa76f45ca8f220e4dc105d744f8a7a30a4ceb3b68a5df836eb40065fb75cd1178d0d0d3c29f2252cea39d4e4399668a51207d875cadd291ac7f8a607efba5393ce35c8d15a2277adcabe456561df9ee7de49f4cd4b44f121f7348adc47b8da639b85c13f2c09debabb7041e66ad5de15c4ca9281f3fc9fcb2230a6c4e8afef4592151f1f639af030f1b8a81b07bebdfcd0b8b17dd6268282828067e1620bf5fe800c8f144c155beb55935ac2260caefa10f10bbda9e82b05d636de1b91d32319b952a2c20ccf0d2e77ef700a8926381ee5295993c28c7df8be2f165f190c5c90f133fcb23c670570c566f822aaf2acfa2951006b78c87a7ceb23d83cf9996682501d126b80ff8541202f43a8d0a56160f3fe76324c443a6b1e81d16b56162b724fbb120f80d09715c6b00326788cedd984bded230cf71c54fdcf1a4875e43ef716c7060913987aab98c3c36b4bb7064eb58c25634b7feba5f54fca1d9a0eec47e83c8b77eed5dccf48dbd200e4c8188a4ea82f0efa343753c5c1cce155e2ed4f2dfca84d511c10ad84ade1340b49278f68831f76ac44a93e027e540def9ba194824a8baace64290bcaa65eb3c8654a4750536292854bb95460d9fccd3540436d4f78baa3b69d9c37daecb55e7d1d74289faf93340d1a58a7df6624f084f58b11623b370e162277d0adebc01ea845cd3bbdefc4e54d344b2f6242536a96e40dc15c68a53e5c66428fd7304c76513035e316a64f40700f50fcb29ede278cab0dfa82b472a533cc1fc989116b7a2f92d0c88955efd905f5ff5d03fa24c8495f5ec0bc06dde62a7644f78cb08475d100ea2ff3508eb2d9d99002d1c928f0780b13699042536d3bbb1cc6f1c7e58eccbb2b6a28d0f464a4ce4b515624eedbee5aa1a101b4497b6791f8754618199e24d8388eb56019ed19c5d2ec305d05925048476fdd9efbf6e080f086edb534f1d64ddbb78842e168c834c6b549bb4ae6c975d209720cff48300bacb871983ffc0f5464ed093a8abf6b2410dd33ceed38b229ce618e7fd50b5a08f7c198d3db0416d26786d5257c4a9b16498a429dbd40356bada90a18192dab1789988a135aba5efe85467f365339114bb51aad3f96681320e68031915353167054d95d2b4ff9242a85f1328e59b7ac3c2d1a174c9673ee64504a828c67ee9da4a9ea3223e8c1c97ba84ff15e62c1e1adbbff2729400d34cf858444f21a78093a2df3c6f9b10b1709263414f67e4c6119a5a9d8a361506f4ef41beb1281993000eb66d8e0608874cef1b69dd3d2b2728f4c5108b92592b87f423d5496aad97eb2ed7478d69c0573083774b8b0753dc7fd800c1b57a71738f72d82ad39bd9b66f9460f08914c180b6bd2015b0202a1ab871191c7ec6b2c44e7bb7cdcb8791a8c98bd5e8b614c2cf98b852bee220430755438f8f96c14e274e906920befe5fe86e3bf779eaa90e161509be817e82d6a8848909f0367e9381ad581ba1ea7d6b9f84ce7cc0b6f9d153a68628fc69d05f84236d1ebfbeb2ec0a1a9ace7fe8ebcfc9e0db975e1d0f34fa98a8fbf57884c196a42cfd80ab97de77bf3cf9c9d2a6af3baf1a78ba6bf2fc773a2d14be882e1fef531d3a4b253d4fca7e351ca64b30a28839241839dfd43c86a53410e1afb153e571be6c4f39f7a8ca0bdd8f7ddb26cb2a9d8abe844f787474222ad9d0c966694b2b1b1acf1aef83b1bb97c85ff25085c4632ca543a3a5b3a3505600700e30d301ece14f0e33b759397720923cfb6a11c1373790ee7cebdf640d92a5ba39c28e323f46e24683cf4d1d21df8487a3c2ecb256fe78cd5ba7dec4cce4876e452bdf68dd0a06604ff9451ecf96407a55c5fcea88b0afe04cb2d07d8636fb4740627bca6a2aec79def4d4a34a48375d9f7d0fb30754084f283b1ac1f3e40a3c82fb206d1fd27a32c3e14b5ab0a5eae7301b7713ba45adc58aeccc9c56011f529b11bb8cb1242b0ba447e35c5a0a7f08a02276bb9d23fab794471c34919bed7e4abf2b6980097fc94767a958b097693af91cc868088693fc0ceb6f3bd125afe9962f9d2911796fee9c81f1f8473567cf8f4f53c1fb63925bf44c51d5bd35bf081a41d29fc0bb137862563810c7e94f7d56d6abd1462e125fe5c4c3aa00fba7ff236a031e7856835bb4c1c507eff746b4aea2e75d6f99c4131b22d1a2570358adba4af2134a1a0aba1b8aff7d7c30e8e177087d60454d1258b68fe0cc903e20cd2d0e340388e719dd244f72dab30af124191f7c292d72f3db709ee908f444577882ad3a1f8d6a852952838d2159f837fa226b528197d4b0ff3635a48324f0d50c1a73ebd288ffd9da8275141cc0dbd2dad18a2630197ebb97f1741ff395d03e5339cc9cd6eca0333656c9a40606a03c48c5d3c1f399adb97cb057b94c18eeb4fe97dc04d3c4196448373ccb9b7b5bf75b7b02f897d2eb32c53756a9033a1952849aec34a8f5165a7b89d2b3ffe594809e0636c1bc6df1872818f65fa9e3e7785dde57e82eba114397ce0e6a239a598339b84a205870dc89303403ed80bd644d7eb2c3b3ba2d45221e0e329a8ac913bdeecf942b2981cc56ac6abc5e43551f9b509099ae75a790edffafdde898f4f5c4a28d24b42c925c5075b7688c782b235f50ef20fec70abf390278075f763e78a9f3b1c5d8aca852c20daea737b2d5ef0dacebe9c033f2607b842c42967e9d1f937a993089ccf6c02c9edcf7d1f9262255d16b63be44125bccc6e1cb19a7d7b7da98c106ebb866732cb0c22ebcf57715da690ba1ed4c72a583afa50eb4445c89f624bcec5c65ff8a3f61d8f246783d652b2d5a3f32f8e1cacbc467a320090ea81fab454cba6adf31b95dc0fca89ed691b6dadf821a313bb84814ffd409bd6d6e4d1832fdbb16a1f4c00325ad60876363abe725aaf4e0b9a990b2eef86e4c8c2f02d9b04b62f9d9194f993cb766ce0b4cb60fb7bdf219f6cbebd5584b44c0bdf86f754661ea29a16e3f773408fed26865b9b378639174c531ecc2c332be547ad4ccdfd98af65292117adf065e3a39377db8e1f74a2cfb639c05e0bbccd1d30e805eb08a8a0221e7c982a60b61500ca0bcd978f10ee5274eb0c264e479b7f18653122e153730d3946b6cd19bc89296d70927f00002f79d5c9332ffe4b4ba5cc3288e1c7e4489ed2798dbd8659e78845fcbdfe785b98d7b9a4ccb47de677232a04938e120ea609b756f158e6075622435feefc311596c69bfda9e45cb8edfc94df4966946ebf0c70bcead1891c214464694a11103250d87c7c37da5b8195b34ef470650c10d75f342bc79cd53b286fc37b7613815466c7eb74b1f2957223516eb445a01fbc13fd93196b0037fe093b3e9e9acc4684034c79f234da58d1cd00ae00a8d7c52c69e49ba7110d6633c75caa7d63234689af74d0cc3091174acbe6b8d45ec85e7e9f8572e1ae1d780981c59923c5a96cd279ccc072797ed80d8e9d310af94124fb5a88bc77f29cb0d0c8f012fb63ed216fb022ad536ee4648ed50c22a9c61fd498f6c03a8361e3dbf1e2eb11b2e19686cd7d5346c54538b84c590bf9165443aae253aaffa6afe924f21b771283582e4d495ffbfef18bdff86f0517d9b0e0705827bdaea218ecfa0d77cd9d173dcda10d378a463042479faba97cae55ec45167b20460f2f1e693f24633acd9b2938953357ff2a771c00a9657be97c9eddc27d491c4972d06e630121c95b87e0dbae62a374af61958ac5532fdc873a544475cfc7d515f31e82c32c7a6bb639744869a820365ee77b3002d1f149418b16c958270b19e68b717a49489c03d373e001e83bcfdbf1e3bf5e25d4a1a70f3a1dd70f8f9d2f1a02b9e6edd49c303c832273006dad0c393fe4f6b3f71940cd6d3ef8d4d26d9a011bb130ebddd6b3263323be09bdb750f50d95c4d41eb326ba6ec8a6bc52e6f059a9ece437a0cae3369d8697fdfaa992783d21533dab4c9d47aa501ca62b4b85a903502ddf18dd4728d87e75a3805eed37a661747f2e704477ae70bb4074dc75d71692e8b21e6e9203a92133b85c861e46725852aacd49860f2acde807bd896e17595179adaae8e85c46949ad259d6b4ed185be29c22292c880a0041dd980ab612b7319a917c60caa7b4159fb63ecfc727f6b7ab3cb8f006c5fa96be55d7db5132439f1ed2ab4a1f6d2cee5d54d18ec321bb785877f268ea931f8516ff71fec295ddcf90e47b059d3b0b165acf8a04da2bc7f88292588fe6d619c70be94cc6a7cd102402fe17058f7255a5bed7e37694c684777cb6e421d5284d7ef60ec5a56620ecaf89c832561c4cabae5e62424be9023bc798a9fe1720efe73cd9c8e3f5b6eb1bdbf8c91af5210626b86047fd4cc63c45e7e1d8000c7b42c145f34091506ac44b3fa0b1f5d40c18da39ed79f53ddbd17d739459fe6899b09eba18e48698c4d4815b8cf83499c1c73ce0f55bfb9b349cb79230739b4627b0fe01e3b97d85bd498e7b5a4681bd0e95624c04beed0db3150bd6ec673493fd27f8c9cfe656becdc7a6558fb6fed0b9fa4111e9640e9f58e1413526020694eec87ee1c37fc01edecc4045087ae232bef04cc3b000514b3d42a88ae59b4a1d8fb70cb68ea50c4c8358d5a057eaa172016b1b21d53ff7306cb1ff643bb6a3c5ddf6a2d0938d16949a4b18210ac773caca0f4fd250feb2e6f0ffc3c74d8375e499f319317db15d80ceea2ba826d0e9a54353ee6d1262968ac746456ea044fbe0554b622409325dd2d9d8280b547bf41dc2096988a3fffb5ab5ce3294ea19697b3dc7db8871832a97d4c32e123e2a4e77d1d41df08df768857aa2c6eb549d3b74d4739f66adf7cb62db102afb784da21b4b825746fdf6d16e77ff283d546a5006ac25ba2c9e35a39f556ab15425e33ddcc52d895ea4106ab8d0f5c1f4aecbf70a2a93d06b8e05f4bd5821e0ddd731dba22df7dfe8b26df87ae4f975006895269cf3c355d494884b8c1d6ef939c00c738ff49bdee26bd22152a2652175c21d6f44f177116b11b7bf5a7f62c6bfe709466dea82e643169a013bbe0fa031f7c6101a9234db481d31ad33a20f9059af2ccc7e74cd9229671d2a6c9ab986b152d8d285a57b8262af2980036e58839e855c7024a29a714b639e484e650a8b598c9cbc502f3b658248e8547732fe0e2cad785f79a929cc7aa0b0cb061f421e9f965f6a0928d283be2b61feee2741a8593126dc434cee12a6f772da3822f221ddf9aabfd36720f34ca392bcbc1b7ea0850d61d92523f84893990a85672dac91058d37b2156a93f52f03ee9155aaaaa4e7877d4cd3dbe0ca9b789ae2eedf83726195928b15f8fba0aba2ff7e37239a89933adc245859d2f549c30844be5cc6062f5f65efb18cff3bb1476039ef39976f269d8f51d76484182ddbac868b7cd058691d8f6078bf112dcc1dcdea5a2efd9534311af7574f46f7d0c75122376ed0415ee1e65f04461bb7665713b16ce4f177758df8d6d133981838d7b4d01d0f6f4b66ddb1c5b7e5455a81debc96afd3e40949acd23b820927640858908fb1713c721fbe05b7fc9042c02d330d206c9012e0a915d93a55bdeb3485f22eb03437526ce2f5b5020759b27ac02e9be905f6503720287097f631eea9ba814425d3f8e64f015db436d13cd17afcd8f1860b314fb657ae9970f72964cd6b700c5126f1b90654fbe3a3f980cefd953157276b3615f688d64dbbc91b3bbbe3b9a5832997b5c909e9e71ae83a474f47460b6a78ce6c8b57ac66b2f7c7a81f22a6cde6b74b23d7aa18b175ab280087392029d279b6d920b76c1f7db25ec203f791916c9db129ec9c65811e2bd1878c9f9b4d35cf8c630a7812baf4b0d88d8dacf1fdc023021e239193316b0b803b4f96318b1dce0dc991556d096548f85eb27607bd5d61ff906495365db8683b321ae654aab707448f5c60242d12c637a0d47a561c27a8a4fb5f71e7eb1ea7f31e2cd7e54f7c5e9f4531f9cbf27f3114bc30629448d1886d9532d80ee347f4f0c2518a988f26c6c17fe66935ea69a4ad7b7d4949105bbe0a29d4495378983fa6c0434c9e64a29bd73aa90bec6e4c024f0e3ca8c216de4886c1a4ab6b9ea7077801598febf1fcd74a5455b05f076091c3422264402e049a5a626c21f96d7f3ee0fdd64b367e4e4338d8a71fbf38350027f23085f64c7ae61bdfbd91dac30e94bdffad5a7128f06be0261d4559801c06caa3ccfca4891c2ff10d2deed224fc4a454c9219fd3e935d526854d109e3d90326224e82253a1fcffff19697766f278d1bdaa1343beea34bb907426ce512397378314f341972641b6c013fff6dbcdf81999c407fce4ad6466d4c18a5d6b661d5e9aef5982b605c5633b8dc178a2a08bb7f20424c8b180089d84b352bbd7aae69868f5de6c8c300eb6d03d9e55004807708b0d84b4574e51259e162828eddf8401d7a321bff8d9420edd148d21bd6350e3420d849744ecb14d0b0d35a057985650ce00a218c68919718a4c916243824ac895fdac1f07b3336d68423314b2484afb9483ca85e6aad6fc5aad6c79aa7cc4e19cb002b99e8d26976e0674e17ca7769c04ba9a16afd4b71368e399e178876689f84ba7c8ab51b3f4652a7cc206f834c685f260b033cbcbc165a5b095cbe3402d7c096fa3168d3121f5ca1332c78009275eaf772a56bc8e69e8cf276b19cc95ce1c7c7b2dbf9dec7e86be7a6f2ca9dc0a6d522cbb98f61a88089a6e798e965f8e75fe75db193f723d0a72705491078ede22dae599c0d13971592ec3ef07d6ec0aea66d62250644882afb5417ed3ce3d3b4baa19cabc7728897558294931a3211444246fb7bb5e341a707748f1bbccbcd9207771ee6c606fe5a7c45b8de2331e00793e26e0fd8b850b34e290e353a531402eb3875fc1b6dc18a541d2d58036d5b9d847ec8e1a9d797d460324548d3a10bfc0466a09016fad1aca17717b7a045bd3d1a32e7a37ad23cf1e9adf7f8ebc86398052dd59f2cc720f40ddd1cfeee8eee013ac8aab98248d6ea2d92587b1d0e1aaf3d640bbd485f4cf4038816f07607041180903e1789957c025c5a8b1dd26b0fd46098e66686dfbc89204f38ee15167bbfe3ce8ddf4d8e6c536045fcf0749676f08b79d502fd0654de6dd0f5ffedb7a07f9e4a69a0b0eb36d4a53ce1a981b0cf564f351cd7762fb9c1864d01b09d8dde2c230ce6d77d3feb32270a7783f934e4c941c9b8b2885a4936a68b3c89d7907971b413c861967fe2bfde2cc17107a9309e1ffcf6c8f024d03588c8421abf97e8e66431cc905cefd7964a5de4fb9c1815747aa098145c1a149bd5d5b6a7cff3b48bcc3ee8a4ff78d266a6be4d735335733114a3e376c34ea40575243b50462658731de95a4b88fb267bcb838838206b04621d7c145f8f6d223b4a4a0a207f5427631867a12b4b45bca002c5077e7615a0729aab8c3b8698b36a05aae46efe9043bbb85a475a4981e727639540aee63e05678d193f928425dd9e1bf08f8b789e807878189a8414b3b543a1fdd2267f5247f8106f0a3e1174e702d5f80e35dc71d038e6467ddfd9e2e9af354735124fd45f73841f4518415e0fe4c2f84dfdfbad59b3adb3c830770c230dc2ef8ea5c8bd5089036a338cefdba42ecf41c98837daffcd2a89af64998df562594032596c0178ad9bae65465c699b38e6524a822064ac573b6de5622f7a6866824894f5b18605a0150cff3b89c304ff54fab7bf0303e8cbf60ea6c4b37daee9d54fcd1e23d98481b0f1bffbb3da7fcf25a92a1e69f2a585b45c7cbaf852faa48d43c14aeba90aaa2e224e40e36e18828f080220444ab4a8ecc7ee285e4a093e30bbbc109ae02f50c8bd5da3848775084008a5ebffbabf0dd1ba65df217eac75973d972d2db5ac7d8e7f39b453cde7c7bf8938c93ac4464258a27dc7398a700e247e6691243908a851739ba69e184badba4493cba5ed3319fe3a139122ba6d91bfb2ca2970fac1a7f9bad57a294026367eda55af83f6446bfd58f9096c34c587717f9209400115b192ff08e2b8311bf73fa73bcdae07a7a4dbe46bab74376fb59b2e0370a9ac4c0030fc7a15f575ad12c219d63c8aa2c3684cf54bc2cb2e5da0f2c226a5e17efa7f3831c7ed0984dbd8f4ca26604a95dbe383f281fc8a972bc216774348d5a7964f43ee5be2ca68fd1409c4bc02d4362f1a779722a9fe45939d728b010a460bd0d5bcfd307b34965508ca1deca9f259d13ed9ec82681ffb3cfdd804b83edfdb9ac4bb41c3285ed7f4af5db4bf9d04c9bdd7d33de9b7ca614b38514831fb4789749c3d4eae31185eceaed27a9844c7be6824eceaccc005752bd4480a3987bfb0d70cfa314116a84898996b2dcb16d5df0513a8e794b087656e7a0e9ebc5e9e0a88abd7853287ae6d785bfaa65dccfa38cfcc929c8ef292f6fb91298a777278e23734a54642b9ff415621feaa9c7a59407084a3a46601ab2813c1835f55ca22e2f474d36c025f25c5271d2ebeff9a5a2a11ef832f9c5185010cc385187b72631de290ba05602e1e433aa3cfb99183b7c12e4af46f6a8bc2007838d58c461d17ea52087c67aadd415a7ca707e264cd1be93c5b26507f67b6b3a4436272e5339db7672672eea802a9304eebe732cdbb392d21bf95d784307b1316d7f70d9f26e1814c2daf7f48a4756563e7d3c652e5bfbc7b53ef982bad8e376c707bed634b96c278bf8b8c446c8f5e42868485f1be214a2494235db42712c2d15031e92f0285894ca756a96e31d55ba885981a9813a0b8fc4017321f2b2c71d8d608fd1e4520ff70816e85afbf19bd0662d8389b6838f4a3ea6407eca28499385678f42d31f335cb906fd5544b7fb1311c6691b19600bdd8886675444db81f04c64b01945bc007854b4dfc87e04bf24f6ee930d6d1d6910925e252057ef1211fccc5249a1e3bd8bf1eadb7d64162c058e9057a5e1a151ebcddc480e61a0feb371cee8bd325f8b65f89443ba8a756803fa0ef2039f673e99a40b5db3a77826c0677d3451729cfd0f6d2ccb28cd1a1ba2a82d85438f72820d4cda9f0fd1b53d51b65c40b5efa154821913cfc89d5317a875d04b9d3d60ef7c38a30ed8db66491ab66325c8124fe4a905b12f3655999e2726d27fcfca22fef4d77fdc6527c33c02365f07d05c7dd70aaa64e953b3e5a908a450882af9694d6f2c35e500e549cff54aafb40aabbc901be61c327ef8d61d916c6aebdeb453044b6f6965982b26867e61ad390b4da6d21a0921eb6fb1650ffde941f9bd557ed77b5b5b09e905a8a5943b7c7c577fcfef913e54047b5cfc7b051413aedc7f570b15a807ddd1807ed1e9ecb89ec95562bafeadbe2f78664dd3a3fb007be456d60dbae9b822cc881b5bfdde37ba14eca292160ab3d1c0b232eb3cd94a7f03344788bb9e1f13b242468a75680d8a4d69caf409370fb094377d3439ff9aee8e8b51eb33a9ba549c0c16b4e1cdaf1905d513d5bb7bd62adbb7bb146c4aabdde9d4a81e45d3112db92b57eacb94c64fa40673293f38916e00c66a7de40938e6e18490e9079d216e7a4afbe568d9301a242bd7d116c13db045d9b93576365e5cc0d9d9f3a26ab9fdd892d114ef012dc33ae0761287be0330a5c7b9dc271b582b1428f9cc5d9ad5d43e9b7292b0b8775c4cf0f186d7dee6192b42508c0ff12a0d6e1e4e037d67326e468264989767658c8a9b91a7759047cdffa4426ad387c8b9586043051ca7656f2448e003228c27985d3fa4063b58989d42f10f155f08ca077d668c5201dcfe2b7045cfa0e0aa3926c2e0dfb6cd949fb6b0dc37e8d41c734cb713d1fc88a9375ce426b48139c19977075443035041f5871df53b0914afcf7c847955c7861ef5b5c6fbfc41bbee184f1c28249ca9ca1eb1d6507981f453c485dd3a8eec29ef0405043a4b33f39143bd2636dcac37d46ad3ed17100c55031d2f89a1527cd50c7795c1bb7778e509e801780001befee90ada9ad171a744f96c3b9c2d4b41c2721dc050ca5cf0b69c1399dc6840d4eb0c52253bf70d66a5ffe900e7359e1ba2fc99cc12c39c1a6c43eadebaebb81668bafa2c3cc09d8f5ae29a670fc76ba5a560d55e0fb5e2bbdddcf9f91373cbc50f5988ececd78f412b979ed67a92b056c01c84f73d477a9879f867c3ce2cb095273917f2269217fd99689f18a0f9dd65a7d70132601af91f3c84c329a9f35203e4b57508915d65db3af4af9910ac04a460128482f7cc334f9587a9d98448ee1a02ceccb91c7929d26952dfa405e6d6f15763d30fc06712c7a0265457dc25e131ed33294eda39d5651f1016904d2698ee98cdf84ccec8bbec564f388c1ef92f5dbe78ab374974a5eca2122af56993aee727df570318af396d7774dc85c171376abb3227531576a022bbded4653621c47f39f34de9906810d7daa57de4256bdf9da9c799a3951ce04bc3e074f2d9ce02e976d6ad6324fd05a4e418f1bb4e651cf2b5343257ede25728b74567a0cb33d225429c9e265f1db81f35bf39e3fe0e7ffe44ab0865581c1e4ddf61848d97bde2429942db04b91983194a4535759687ee0ac077a9f5bd326d3e71fc535c0049f45f23adf69a61f1885543a5692d29595033faea2442fd3a8edc4ff5840ac0e8062d8b36d43d2a0ad6120306dd65555f49bee6e66261e5b8164f3ac7285c7b68182fd2713e0e7f038d955774cc644287a86c8c8b0c2324b8d8e9e3df2c17fc4e8fb33df938bfa6ba37a3dc6b847e721abdaa59fbab3540dadc063fd08763eb7129eb7794bbe432c9f6dd53b06a5ba460ad61d7919b9fbe39b7ec4984ec98cfebb68e27e2b2c3142cfb0ddc29c81e3789f4a6d67e6f80a2ad9b4853953d7ee0206a23cce6b9042abfc1aadf6b3ec60828134abcf0098692ad23159ed4f4f4158a7bb697923009d173031653406be0f24455ef963e59f42874714b1f1c13b7764ccf577b0a690a84c55f347355df80db9061c8c6c485e36d903080dbefdf21dd2d076f5ab227a4e2d120773d8412bfb0c97436003a8a2a32e243356c02bcf3f10b2193a371b78052c9e8336ae308770933308665d775d73b67d7962355c70917f194d9c99181c062cb2aabe5bd556aa4c500250297b6d1f1cf30ce5af227f9e37e82e3c9ede314643d303e20adb91e6536f42d28d8d7d1a09494a64531b74d8963219c07343ffa72fbf5e8ac8562ac1c4a4313be6b4f54ad5a06cbc2b0c8e553765dbc42e2f5fa360ad1cbdab1d9f1ee980b454d33dfea20eec49d2923c2cd281f77bf7c9b1c2e110b51f708f6016dd9a3ce03156accf4211f4950f5c40d87005fc24e0dcb9507f3ff4a75c214da30ae4e88be766c9e91089085d1b40d49f4fed14f836779ebb0964bf6363dfc2bbd47ec4d0f3bb65908eafcac2973c260a95df4c5676008d0fb295ee68f8fb7c89b33ec0d2393358d935370fe71bd8ab3a30cb804fc1edc3ab4951db5d8c9f2fe267add08ed6b1c007d51ef4d6bb08a34f82404f66d6ea6454ca407100109e9adcad5f4c406597615063c89fe4313ca4bd402800b14f5e03c91dea9570ee5edb7d640d70f8d30db2a970cd34a883b8e276cb48ae7b7c191be84333ab0b544da4744061741ac3f32e98a8a546e3773daab04aaab89e08ac113225cdef4b92e399372c9eb60863668a7733e3374e2fc9d234da95c52dada0e136d1bce5228b93744d3ee62d84641ae1f2a01a10902fdcc1ac4ef73e718e9761ffa6c758a5a4c653ecab28fdc968bf72145b277701a5d2eb7a2b62b9fc4a80af911fde55d826ba7f198a16bef01bd1e58500c2490acab818b3291073ba11581e76840646e9e18711c2409367f8e655d85bca2151f22fbc43391b42b872240be475804e803ae480271f93ba21f85f1d7cfc48acd6b5665e2b219e22cbfce6a9c7990bcbd9b08fbb8f20459a3385e73fee38469759e38fd5bad850eaa6ef98497679ef1db1353b8346aa6e203430be30132514e31d9155be1bc8e39efedf0d568748c8abf72e63ace4e42f44c69efec23fba85fea60a6b8d39706f476153e373d5402eec95ae341b70ee4bde91ad0d2c976d01052fbf3b906b5f48aab03046cbbf43b401df1ead21a98b9968d5b91c9c3c7e6f0e58e163b9fed3dd5048f9580212dde344cf2165a2d84d4f5f1c2b0fdd8fc03ffed32dfdd48e7406ecc97899fb5a219f26d6f3f4b5039f8bf81a1855c0c654fb0a2ee8d4f7d8e8561b16e7ab4c40da60bbdf4c2881a8c52a616ff79fc239515a54cdd3ba143024d88a2a75db1ea388def7ad8ebdf5ed685f0c33080884cf22cc82080b6fd0f9b05e74e3a150bfc96d1c1e8247b274157ac4a81767cba4f286eb58e874603f6539cd7a95d1b41d63e95fbe2bafd35662a37f054c2a3e907a28d3689b4e9bfbde7b245e11e4fcccf1c7a3082378fbc4b2fc23805e04aa48310554521275d2fbba42038e0368a2fe0407d714ca2659e4e2dfd7dc1cc1c3766df2e315896aac7ab0e3ff197cac1fae063546d31170a71ab8327d2635cb35cf298763d02bb65a87823d0bcd62b8e0ee0bf553e9367f03218048b4e9e1b9d0d35e3427ea48d85df467d9b37f74f5acfa4a8496653729857bf7b643cefda6593022f973f7ceb219427780c1ccd66dee5bdf0e3c73264a36d53d17874927e5c059d8f3754d7debbe968327d03555bf5cc1d6d635726cf12b1b69c848d20870e3bb5361f8518b851b31c6a4b3e18f80b26aaabfac98329c0511ceccac4bb507b4bc3296d2e729e86bc653765aa6e1873362505b34e71fe307f777416bfb50932bd009c8d846f31f3f008e42578ba6f4c8c3311ec6977989633cbcb4ee3e43619852bdff90f986ceb4106688f45bc90821ee979353b8b445ee32da4e98f5d2f6f16ce2b52b725eaa5317d777bc141a282151eb9c80ec09a83a433013d09ac20e3cc1dc16abb07d19ce0dc28fc6d0f8b865947b4e95370ae0ad0987da2689976c6879eaa5b9c47a34a2213ea706b75a8917632ecb9c15003f0f037e72f2e55ef0357157c7af141e7d6c324c25b5e3c76a81ab384aa24876e0cded0cd79a2919ad684f3064a6985af17ed2ac4ff1271c420774d19eb4bd9a0c98263edcc0e131edf2ffb5a0afc422a0189e749a6c0285b08c0c80a332361cdad3086ffb786a2054dac487817cda463a7c498dac637095e86623080356c10b8e4e8bef782871512ae1ae5b74ad1b7c2e2da8d70001776cc6bf11ff91ad8ad59afdd7fd679d5021cbc2be2aa0b3e8462ec9fed8993a667a0fdf7c00c533f440a926145cbe93d605cf774c96df91c51e2c18983c694a45eaadd83ef0b6c2ac30a610f8ecbfc099965997addb2b1e79bdf14029b4801f0b03dfb38a6e3cff42f54d60d3030cef5e43ad9e709e03ac6fdc8188735dde55461fe95447dc49edb20f017b2059ade7a418e6abe823ef0df8a8167b8540729a21334cc6e75edafa21e212479738ac270ea2e9a81d2179d3b6836c33cb4d4e56ed9df8bac6ed638498d2cee23e0e84d1494ca17b5dad7525dad58dba49bb22d533bd0222413a3d724e554141943138e9817735bf40743059f2bfdebf25200ac8a04ee29f15e0d9c1eb2cebfe128e113e308be0b1be6c8e01d13f21e93d76b497a9672ff9ee1dc5ac0490011f3e8347fe48c1e243a845287f3a6f5931d13bb340f4218e5802ff87cb825405fbea54a3171cfb1793283c036c110d12ad9a21761e22fa0e0531ceaa1903819df97bd10df4bc8c914e2ad8ca9bf8b12c28c958ea2ee623dfb698a7f97e842c4432feaae1e36f3ee190d0f2518421e78e51dd0b4ddbc4ada5ea5de0a3702dac96315358cb9b4d91c02951dd02d626f7602cc73121e2f60ae0e512f5506e9cb6fd69f7ec61c4e590c1bfc7c0cdde48f65d3a4eee64ca57a9ac7b1f934b60ecc8bc60919522e3a8ab4e98a4e10350abd3eb7409f7a9550f3e117ad5bb6e30ab6ac8c9d3e5519688c9c2853a39d723e319e008050c9f591efc9b0df20c5081d95477b65163bdae3b48061170ea6149249598135fc495242ca66fddb591928cf90440f183b45d50a5246bdede74ab41b6cb60d6da6ad0bc7dab4ca141d7518dc1f650efacbe57e96cc7b34cbf14de746cb670ef12520dcdc2027a008b4064d5252b3076a24b4a4df8ab0671db79d76fdd704a8261a977740638109c8d0ebfcf2037acfa1598bc462f719ec495e5117b0e4c29e09515ae64c6c4c0d938517c04b196297dea8b2b401fee87a36a9868a4abfef5d3a6c693bae05be8d024d11855d0c604223ffde6fb00e50c46ade1fd1887302ee30513a4e39483e163f3f62c91402d8e954d48176f3aa8f8ec0401e94c09c40eb0c410f39dcb9dc4b57e63019760a413c48d9afff3cc1db3acc97303054b743e5a2ed6f4b0e2f7a1fb2fcf45e609071268002ff99bc97912a0c73ceef7ab0194344bfd90015bf4387c203a46e6da9cf891e57e69985d9bcd642cb3aaea5ac2c5f922ec38230740695faf3e1f97ee35889f991c9f59a1b3c78e479188471917f3dd5ff108992c142858f6cebf218e2984a773f1d1acb78d0ff48e122a40343175fe7e7e81cf1c48953fec10bcb91a8084868f90e6475684cd0426e82bc216017d90c10de3542e9cb752a46d9cb5275ebf5bef19b0f9f1948448e239576788c99d899d19b0535f6dfda729c830417e1b25cfe2a5503f23e7eeffc1b447427a6070760e86e3ef6755ab1681bf4c3b7fdf4d10e1878a16ad3141ec7c3c22ff94235ca791d1fe0e2eebd36bb3c67784c8f677032805c36142761bea08feef32287abe7e5016467faf432acb64f5070e222cfcacbda5349fc0cd58ad6aa42a135284ed98d85f91dd0720f8ac8978b3f80f44f52670d6777dafddac958ce364aa371eeacedba408094443701d5d3bbac210776b3560fd228ed0cc61651a5421817252946309c349c0ef915fe14bc1094b21c1038aa5e1f9c4cf161c9c80a6b32c1cf72f845de29bbcb378a5068998b115df5808dae8bb55dad6faa55c585d49a6e854781a3fc9d2f7857dbf6f32fa041d4d018ef5c946bd9dc76525fa472e00c066fe2ae0fee1b3c0dbb3298c636915f05c370752f1ef61947426bacbff129889a0a9c6d9e52e2d96c87fd6948e9cf6afd0a774216ce8dfcc5868114c2f21ed1596d64cc1f0b1ddd35d7a1a05380fa22ffb75c64e9e289810683d69ebd78b4e6147c4ea96614aae01d1630eb450be021e798b40b8c2957ae352779f649bb5fa2d91f53bf26d1fdc6eebcfc14397c67b926b43199057e4b6927b290cb6f1d5021f2fcb8c11e0ee9b4671861de838a80119a780caba780b4338a8d264db985056c80e9380a0355452daaef04dbc393ebc3e9f527fb03aa60d9715fca74726f0877a951e96ca48797161fb5fa7eed5d58addae438e925170cf9e9ee5af6b80dd734c4e6a9c5f198c5d0d30ad2d6519b7fbaaba97686777a291984ae08f864c533e0a6119446c32ca1283d898230dc8968e16b8f920dd04f57357d02f35fd62234008fc93ec5c7f4d50390073bcb0808247ffb6d393e22fe3b3c40504d09c43a0057602b8aa73490b63a764723854b2c9cc7553fc71ec06ba9990fcfc6bb3687535e436def04e8260704a7b096b5fc90865fc7554ada55830455f38931771a30976af35d48f49e74a18985bda11fe2cc09540df9a5c8b71ac0fad0996af49f5823749e7398a08c5520465a3c47627e553f4e9efb26b55a2e187dee038c352c3202a941b1b48809c6c403298b18962dd67fcb55f821ad46a72e17b933f730c645488b7a5dc82dc96293745c1557b7722a0a3c787d07c8489df588544202a96cebd05aaeba5a03ba80bbe7bc9d6b00f5da536f3ac1890f15fb1663aabf043c8b16538e5884b41efc58fa636a492b398146139b990524b33545b3eae51f9290eb47b08d2c65533a52337cfc81314b88579021bdc846ab9075e6e78198b6980584a189ce6d58440c1bcd51f5b9e3bdbe5e302d00ad574c83be813571cb3d1008548d696965e4023960a396c508919b10ddaf0dab5330ad1d225fb3a3b111bf2c1f7ac02dd1cb010404eec39a3713f1efb7e1179f4bfd2316e9b27d642c47e872b205b8cfe48172bf58f0b5479a4bf049ac89ed93e3a32298a5b3b8de26546f45f67e6f9f0c08b01b8c5c6c730111fc8fbb32fc5f7a7c4e65106230c12ee09f76aead23f41b4773069567993f7a9085c846b678d8f9016e9e64abc80e02047995bc67034ead90d156350cdad631fdce8793aca4ec21989a5004b6d2af11d8958fc75164814adb45b8bbde583bb8eb7c77892d67052a95653ed4630ebd47d8b4ede2c665a72e54179d88474bdcb3e9ca394dd3671ae8cfb388f33ec281bb748c8a953400b972f136fa4928c00a8f1ad00272bbdb7ca737752c4b5c96c83c8d7a108325bd9254408448c6d76b427daa849f73510a59ee5813b644fe52cde8f93a37750ece39c2b96fee501b697ee26a281409e9ab43b8951c7a09ce39f3fae390b950fe3a49ab73bc40e92d0ac5fbf80421647588a70dc644bebac13240363d08569eff493da722e06daf89238815c4c639b774df4442da06728b41e44c668c0055e03752a411410f8773e42bf13cf9e284261e6449672a58a91ae685c2531ec3730bbd950dfb19806e98e276abd9ee54ea737fec3cd32f2f622f8930263b3b236df9ab3f3233189b4055d80fc6d6f3838bd48eb76e845f32e0c91ad203ff2a7541571cde02132c863e44bb6d7a2840f7391e825adfebb41d2a59f54b5be3fee917ed6896e9bf1f0155c3cc0483855446cc17fa40e100861e3d6532f11747afcd20eafd461184578e144d8ddf4c282a4f3dea83f9cffac472a85821eac8d038ca093099ec487097cf231b8facf513ea9b98c143c8da03da562fb8696fe4c42754b0d32bf5fd23eb3701f1c7bd69e4b1a306860cea40fc0acee51f452866e9f332c9e99dc6b970512d820c3563ef40adb66f187da7ee67743e3ae7b13f52aeba27287564336960fcc410c55960969c1b2961e008e3e5b4ca1d486a97001d8b6288b2e4c97091ba5ba73cbca64b9b799bff0a2fdf5bb3e3e905a22ed2c2b913f3f0189fefdd8d4a6967efc94ff838310d577c41e841e6ca617d61117909b8d95c82dfde16d8CIB.cpython-36.opt-1.pycCM_common.cpython-36.opt-1.pycCM_corosync.cpython-36.opt-1.pycCTS.cpython-36.opt-1.pycCTSaudits.cpython-36.opt-1.pycCTSscenarios.cpython-36.opt-1.pycCTStests.cpython-36.opt-1.pycCTSvars.cpython-36.opt-1.pyc__init__.cpython-36.opt-1.pyccib_xml.cpython-36.opt-1.pycenvironment.cpython-36.opt-1.pyclogging.cpython-36.opt-1.pycpatterns.cpython-36.opt-1.pycremote.cpython-36.opt-1.pyc3-am-then-bm-both-migrate.scores3-am-then-bm-both-migrate.scores6-migrate-group.scoresattrs1.dotattrs1.expattrs1.scoresattrs1.summaryattrs3.dotattrs3.expattrs3.scoresattrs3.summaryattrs3.dotattrs3.expattrs3.summaryattrs1.dotattrs1.expattrs1.scoresattrs1.summaryattrs1.dotattrs1.expattrs1.summarybug-5014-A-stop-B-started.scoresbug-5014-GROUP-A-stopped-B-started.scoresbug-5014-ordered-set-symmetrical-false.scoresbug-5014-GROUP-A-stopped-B-stopped.expbug-5025-2.scoresbug-5025-2.dotbug-5014-GROUP-A-stopped-B-stopped.expbug-5069-op-disabled.scoresbug-5143-ms-shuffle.dotbug-5038.dotbundle-order-partial-stop.dotbundle-order-partial-stop.expbundle-order-partial-stop.scoresbundle-order-partial-stop.summarybundle-order-partial-stop.xmlcolocated-utilization-primitive-1.scorescontainer-1.scorescontainer-1.scorescontainer-group-1.scorescontainer-group-1.scoresattrs1.dotattrs1.summarybug-5025-2.dotbug-5025-2.dotdate-2.scoresdate-2.summarydate-2.xmlbug-5038.dotbundle-order-partial.expbug-5038.dotgroup4.scoresbug-5038.dotbug-5038.expinc3.scoresinc5.scoresinterleave-0.dotinterleave-0.expinterleave-0.scoresinterleave-0.summaryinterleave-0.dotinterleave-0.expinterleave-0.summaryinterleave-0.dotinterleave-0.expinterleave-0.summaryinterleave-pseudo-stop.scoresmanaged-0.dotmanaged-0.expinc0.dotmaster-10.scoresmaster-1.dotmaster-1.expmaster-1.summarymaster-4.scoresbug-5038.dotbug-5014-GROUP-A-stopped-B-stopped.expmaster-failed-demote-2.scoresbug-5025-2.dotbundle-order-partial.expmigrate-1.scoresmigrate-2.scoresmigrate-begin.scoresmigrate-fail-2.dotmigrate-begin.scoresmigrate-begin.scoresmigrate-fail-2.dotmigrate-begin.scoresmigrate-fail-5.dotmigrate-fail-3.scoresmigrate-begin.scoresmigrate-begin.scoresmigrate-fail-3.scoresmigrate-begin.scoresmigrate-5.expmigrate-5.scoresmigrate-5.summarymigrate-fail-3.scoresbalanced.scoresmon-rsc-1.scoresmon-rsc-1.scoresmon-rsc-2.dotmon-rsc-1.scoresmon-rsc-1.scoresbug-5038.dotnotify-0.scoresnotify-1.dotnotify-1.expnotify-0.scoresnotify-1.summarynotify-0.scoresbug-5025-2.dotbug-5014-ordered-set-symmetrical-false.scoresbug-5014-ordered-set-symmetrical-false.summaryorder-mandatory.scoresorder-optional-keyword.dotorder-mandatory.scoresorder-optional-keyword.summaryorder-optional-keyword.xmlorder-mandatory.dotorder-mandatory.scoresorder-mandatory.summaryorder-serialize-set.scoresorder-mandatory.scoresorder1.dotorder1.exporder1.scoresorder1.summaryorder5.scoresorder5.summaryone-or-more-5.scoresbug-5038.dotbundle-order-partial.exporphan-0.scoresorphan-0.scoresparams-0.scoresparams-0.scoresparams-0.scoresparams-1.summaryplacement-capacity.dotplacement-capacity.expplacement-capacity.dotplacement-capacity.dotplacement-capacity.expplacement-capacity.scoresplacement-location.summarybug-5038.expgroup-unmanaged.expprobe-3.scoresplacement-priority.scoresorder1.scoresorder1.scoresorder1.scoresplacement-priority.scoresconcurrent-fencing.scoresrec-node-1.dotrec-node-1.expplacement-priority.scoresrec-node-1.summaryrec-node-10.scoresrec-node-1.dotplacement-priority.scoresrec-node-4.dotrec-node-4.exprec-node-10.scoresrec-node-4.dotrec-node-4.exprec-node-10.scoresrec-node-4.summaryrec-node-4.xmlplacement-priority.scoresmon-rsc-1.scoresmon-rsc-1.scoresmulti1.dotmulti1.expmon-rsc-1.scoresmulti1.summaryrec-rsc-0.dotrec-rsc-0.exprec-rsc-0.scoresbug-5025-2.dotbundle-order-partial.expmon-rsc-1.scoresremote-fence-unclean.scoresbug-5025-2.dotbundle-order-partial.expattrs5.scoresremote-disable.scoresremote-recover-no-resources.scoresremote-fence-unclean2.scoresremote-recover-connection.dotremote-recover-connection.expremote-recover-connection.scoresremote-recover-connection.summaryremote-recover-connection.xmlreload-versioned.scoresrsc-sets-seq-false.scorescomments.scoresrsc_dep2.scoresrsc_dep2.dotrsc_dep2.exprsc_dep2.scoresrsc_dep2.summarybug-5038.dotbundle-order-partial.expbug-5025-2.dotnovell-239087.exprsc_dep3.dotattrs3.dotattrs3.expmon-rsc-1.scoresattrs3.summarysimple1.scoressimple1.scoresbundle-order-partial.expmon-rsc-1.scoresmon-rsc-1.scoresmon-rsc-1.scoresrec-rsc-0.scoresbug-5038.dotbundle-order-partial.exprec-rsc-0.scoresbug-5038.dotbundle-order-partial.exprec-rsc-1.scoresbug-5038.dotbundle-order-partial.exprec-rsc-0.scoresbug-5038.dotbundle-order-partial.expmon-rsc-1.scoresbug-5038.dotbundle-order-partial.expbug-5038.dotbundle-order-partial.expbug-5038.dotbundle-order-partial.exprec-rsc-0.scoresbug-5038.dotbundle-order-partial.exprec-rsc-0.scoresrec-rsc-0.scoresstopped-monitor-03.dotrec-rsc-0.scoresrec-rsc-0.scoresmon-rsc-1.scoresbug-5038.dotbundle-order-partial.exprec-rsc-0.scoresrec-rsc-0.scoresbug-5038.dotbundle-order-partial.expmon-rsc-1.scoresstopped-monitor-25.dotstopped-monitor-25.expstopped-monitor-10.scoresstopped-monitor-30.dotsuicide-needed-inquorate.scoressuicide-needed-inquorate.scoressuicide-not-needed-initial-quorum.dotsuicide-not-needed-initial-quorum.expsuicide-needed-inquorate.scoressuicide-not-needed-initial-quorum.summarysystemhealth1.scoressystemhealth2.dotsystemhealth2.expsystemhealth1.scoressystemhealth2.summarysystemhealth1.dotsystemhealth1.expsystemhealth1.scoressystemhealth1.summarysystemhealth2.dotsystemhealth2.expsystemhealth1.scoressystemhealth2.summarysystemhealth1.dotsystemhealth1.expsystemhealth1.scoressystemhealth1.summarysystemhealth2.dotsystemhealth2.expsystemhealth1.scoressystemhealth2.summarysystemhealth2.dotsystemhealth2.expsystemhealth1.scoressystemhealth2.summarysystemhealth1.dotsystemhealth1.expsystemhealth1.scoressystemhealth1.summarysystemhealthm3.dotsystemhealthm3.expsystemhealthm3.scoressystemhealthm3.summarysystemhealthm3.dotsystemhealthm3.expsystemhealthm3.scoressystemhealthm3.summarysystemhealth1.dotsystemhealth1.expsystemhealth1.scoressystemhealth1.summarysystemhealthm3.dotsystemhealthm3.expsystemhealthm3.scoressystemhealthm3.summarylocation-sets-templates.dotlocation-sets-templates.explocation-sets-templates.scoreslocation-sets-templates.summaryparams-0.dotparams-0.scoresparams-0.summaryplacement-priority.scoresplacement-priority.scorestemplate-coloc-1.dottemplate-coloc-1.exptemplate-coloc-1.summaryorder2.scoresorder2.scorestemplate-coloc-3.scorestemplate-rsc-sets-1.scorestemplate-rsc-sets-1.summarytemplate-rsc-sets-1.dottemplate-rsc-sets-1.exptemplate-rsc-sets-1.scorestemplate-rsc-sets-1.summarytemplate-rsc-sets-4.dottemplate-rsc-sets-4.exptemplate-rsc-sets-4.scorestemplate-rsc-sets-4.summaryticket-clone-1.dotticket-clone-1.expticket-clone-1.scoresticket-clone-1.summarybug-5038.dotbundle-order-partial.expbug-5038.dotbundle-order-partial.expticket-clone-1.scoresticket-clone-1.scoresticket-clone-14.dotticket-clone-14.expticket-clone-1.scoresticket-clone-14.summarybug-5038.dotbundle-order-partial.expticket-clone-1.scoresticket-clone-13.summaryticket-clone-14.dotticket-clone-14.expticket-clone-1.scoresticket-clone-14.summaryticket-clone-14.dotticket-clone-14.expticket-clone-1.scoresticket-clone-14.summarybug-5038.dotbundle-order-partial.expticket-clone-1.scoresticket-clone-13.summaryticket-clone-11.dotticket-clone-11.expticket-clone-11.scoresticket-clone-11.summaryticket-clone-14.dotticket-clone-14.expticket-clone-1.scoresticket-clone-14.summaryticket-clone-1.scoresbug-5038.dotbundle-order-partial.expticket-clone-1.scoresticket-clone-13.summaryticket-clone-14.dotticket-clone-14.expticket-clone-1.scoresticket-clone-14.summarybug-5038.dotbundle-order-partial.expticket-clone-12.scoresticket-clone-12.summaryticket-clone-14.expticket-clone-1.scoresticket-clone-14.summaryticket-clone-1.dotticket-clone-1.expticket-clone-1.scoresticket-clone-1.summaryticket-clone-11.dotticket-clone-11.expticket-clone-11.scoresticket-clone-11.summaryticket-clone-3.dotticket-clone-14.expticket-clone-1.scoresticket-clone-14.summaryticket-clone-1.dotticket-clone-1.expticket-clone-1.scoresticket-clone-1.summaryticket-clone-11.dotticket-clone-11.expticket-clone-11.scoresticket-clone-11.summaryticket-clone-21.expticket-clone-1.scoresticket-clone-21.summaryticket-group-1.dotticket-group-1.expticket-group-1.scoresticket-group-1.summarybug-5038.dotbundle-order-partial.expticket-group-11.scoresbug-5038.dotbundle-order-partial.expticket-group-1.scoresticket-group-1.scoresticket-group-14.dotticket-group-14.expticket-group-1.scoresticket-group-14.summarybug-5038.dotbundle-order-partial.expticket-group-1.scoresticket-group-13.summaryticket-group-14.dotticket-group-14.expticket-group-1.scoresticket-group-14.summaryticket-group-14.dotticket-group-14.expticket-group-1.scoresticket-group-14.summarybug-5038.dotbundle-order-partial.expticket-group-1.scoresticket-group-13.summaryticket-group-11.dotticket-group-11.expticket-group-11.scoresticket-group-11.summaryticket-group-14.dotticket-group-14.expticket-group-1.scoresticket-group-14.summaryticket-group-1.scoresbug-5038.dotbundle-order-partial.expticket-group-1.scoresticket-group-13.summaryticket-group-14.dotticket-group-14.expticket-group-1.scoresticket-group-14.summarybug-5038.dotbundle-order-partial.expticket-group-11.scoresticket-group-12.summaryticket-group-14.expticket-group-1.scoresticket-group-14.summaryticket-group-1.dotticket-group-1.expticket-group-1.scoresticket-group-1.summaryticket-group-11.dotticket-group-11.expticket-group-11.scoresticket-group-11.summaryticket-group-3.dotticket-group-14.expticket-group-1.scoresticket-group-14.summaryticket-group-1.dotticket-group-1.expticket-group-1.scoresticket-group-1.summaryticket-group-11.dotticket-group-11.expticket-group-11.scoresticket-group-11.summaryticket-group-21.expticket-group-1.scoresticket-group-21.summaryticket-clone-1.dotbug-5038.dotbundle-order-partial.expbug-5038.dotbundle-order-partial.expticket-master-1.scoresticket-master-1.scoresticket-master-14.dotticket-master-14.expticket-master-1.scoresticket-master-14.summarybug-5038.dotbundle-order-partial.expticket-master-16.scoresticket-master-17.dotticket-master-17.expticket-master-16.scoresticket-master-17.summarybug-5038.dotbundle-order-partial.expticket-master-16.scoresticket-master-16.summaryticket-master-17.dotticket-master-17.expticket-master-16.scoresticket-master-17.summarybug-5038.dotbundle-order-partial.expticket-master-16.scoresticket-master-16.summaryticket-master-17.dotticket-master-17.expticket-master-16.scoresticket-master-17.summarybug-5038.dotbundle-order-partial.expticket-master-12.scoresticket-master-12.summaryticket-master-14.expticket-master-1.scoresticket-master-14.summaryticket-master-10.dotticket-master-10.expticket-master-10.scoresticket-master-10.summaryticket-master-11.dotticket-master-11.expticket-master-11.scoresticket-master-11.summaryticket-master-17.expticket-master-16.scoresticket-master-17.summaryticket-master-10.dotticket-master-10.expticket-master-10.scoresticket-master-10.summaryticket-master-11.dotticket-master-11.expticket-master-11.scoresticket-master-11.summaryticket-master-21.expticket-master-21.scoresticket-master-21.summaryticket-primitive-1.dotticket-primitive-1.expticket-primitive-1.scoresticket-primitive-1.summarycluster-specific-params.scoresbug-5038.dotbundle-order-partial.expcluster-specific-params.scoresbug-5038.dotbundle-order-partial.expticket-primitive-1.scoresticket-primitive-1.scoresticket-primitive-14.dotticket-primitive-14.expticket-primitive-1.scoresticket-primitive-14.summarybug-5038.dotbundle-order-partial.expticket-primitive-1.scoresticket-primitive-13.summaryticket-primitive-14.dotticket-primitive-14.expticket-primitive-1.scoresticket-primitive-14.summaryticket-primitive-14.dotticket-primitive-14.expticket-primitive-1.scoresticket-primitive-14.summarybug-5038.dotbundle-order-partial.expticket-primitive-1.scoresticket-primitive-13.summaryticket-primitive-11.dotticket-primitive-11.expcluster-specific-params.scoresticket-primitive-11.summaryticket-primitive-14.dotticket-primitive-14.expticket-primitive-1.scoresticket-primitive-14.summaryticket-primitive-1.scoresbug-5038.dotbundle-order-partial.expticket-primitive-1.scoresticket-primitive-13.summaryticket-primitive-14.dotticket-primitive-14.expticket-primitive-1.scoresticket-primitive-14.summarybug-5038.dotbundle-order-partial.expcluster-specific-params.scoresticket-primitive-12.summaryticket-primitive-14.expticket-primitive-1.scoresticket-primitive-14.summaryticket-primitive-1.dotticket-primitive-1.expticket-primitive-1.scoresticket-primitive-1.summaryticket-primitive-11.dotticket-primitive-11.expcluster-specific-params.scoresticket-primitive-11.summaryticket-primitive-3.dotticket-primitive-14.expticket-primitive-1.scoresticket-primitive-14.summaryticket-primitive-1.dotticket-primitive-1.expticket-primitive-1.scoresticket-primitive-1.summaryticket-primitive-11.dotticket-primitive-11.expcluster-specific-params.scoresticket-primitive-11.summaryticket-primitive-21.expticket-primitive-1.scoresticket-primitive-21.summarybug-5038.dotbundle-order-partial.expticket-rsc-sets-10.scoresticket-rsc-sets-10.scoresticket-rsc-sets-10.dotticket-rsc-sets-10.expticket-rsc-sets-10.scoresticket-rsc-sets-10.summaryticket-rsc-sets-10.dotticket-rsc-sets-10.expticket-rsc-sets-10.scoresticket-rsc-sets-10.summaryticket-rsc-sets-10.expticket-rsc-sets-10.scoresticket-rsc-sets-10.summaryticket-rsc-sets-1.dotticket-rsc-sets-1.expticket-rsc-sets-1.scoresticket-rsc-sets-1.summaryticket-rsc-sets-2.scoresticket-rsc-sets-3.dotticket-rsc-sets-10.expticket-rsc-sets-10.scoresticket-rsc-sets-10.summarybug-5038.dotbundle-order-partial.expticket-rsc-sets-10.scoresticket-rsc-sets-11.summaryticket-rsc-sets-10.dotticket-rsc-sets-10.expticket-rsc-sets-10.scoresticket-rsc-sets-10.summaryunfence-definition.scoresunfence-definition.scoresbundle-order-partial.expunmanaged-stop-1.dotbundle-order-partial.expunmanaged-stop-1.scoresunmanaged-stop-1.summaryunmanaged-stop-3.dotunmanaged-stop-3.expbundle-order-partial.expplacement-priority.scoresplacement-priority.scoresbalanced.scoresreload-versioned.scoreswhitebox-fail1.dotwhitebox-fail1.expwhitebox-fail1.scorespriority-fencing-delay.dotpriority-fencing-delay.scoresrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpacemaker-2.0.1+20190417.13d370ca9-lp151.2.16.4.src.rpmpacemaker-cts@@@@    /bin/bash/bin/sh/usr/bin/python3.6pacemakerprocpspsmiscpython(abi)python3rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)2.0.1+20190417.13d370ca9-lp151.2.16.43.63.0.4-14.6.0-14.0-15.2-14.14.1_@_Wr@_3_c^W@^?@^^>@^I^^^H^H^@^0"@^g@]@]@],j\Q\Ɋ@\8\f\,@\@\\\\\@\@\~d\w@\R@\N\J@\I\E@ZYan Gao Yan Gao Callum Farmer Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Jan Engelhardt Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao Yan Gao ygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.combliu@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comrbrown@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comdimstar@opensuse.orgygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comtchvatal@suse.comygao@suse.comtchvatal@suse.comtchvatal@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comrguenther@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comygao@suse.comdimstar@opensuse.orgygao@suse.comygao@suse.comygao@suse.com- fencer: restrict certain IPC requests to privileged users (CVE-2020-25654, bsc#1177916) - pacemakerd: ignore shutdown requests from unprivileged users (CVE-2020-25654, bsc#1177916) - executor: restrict certain IPC requests to Pacemaker daemons (CVE-2020-25654, bsc#1177916) * bsc#1177916-CVE-2020-25654_pacemaker.patch- extra: quote shell variables in agent code where appropriate (bsc#1175557) * bsc#1175557-0006-Low-extra-quote-shell-variables-in-agent-code-where-.patch - extra: use ":=" where appropriate in agent code * bsc#1175557-0005-Low-extra-use-where-appropriate-in-agent-code.patch - extra: add vim modelines to agents * bsc#1175557-0004-Low-extra-add-vim-modelines-to-agents.patch - extra: remove trailing whitespace from agent code * bsc#1175557-0003-Refactor-extra-remove-trailing-whitespace-from-agent.patch - extra: use 4-space indents in resource agent code * bsc#1175557-0002-Refactor-extra-use-4-space-indents-in-resource-agent.patch - extra: update agent boilerplate (copyright/license notices) * bsc#1175557-0001-Doc-extra-update-agent-boilerplate-copyright-license.patch- rpm: use the user/group ID 90 for haclient/hacluster to be consistent with cluster-glue (bsc#1167171)- Fixes for %_libexecdir changing to /usr/libexec- rpm: add spec option for enabling CIB secrets- rpm: put user-configurable items at top of spec- move bcond_with/without up front for e.g. pcmk_release- fencer: avoid possible use-of-NULL when parsing metadata (bsc#1171372) * bsc#1171372-0011-Fix-fencer-avoid-possible-use-of-NULL-when-parsing-m.patch - libstonithd: make the assert message from stonith__device_parameter_flags() more clear (bsc#1171372) * bsc#1171372-0010-Refactor-libstonithd-make-the-assert-message-from-st.patch- libstonithd: respect `pcmk_host_argument=none` on `validate` (bsc#1171372) * bsc#1171372-0009-Fix-libstonithd-respect-pcmk_host_argument-none-on-v.patch - libstonithd: add `port` or `plug` parameter according to metadata on `validate` if no `pcmk_host_argument` specified (bsc#1171372) * bsc#1171372-0008-Fix-libstonithd-add-port-or-plug-parameter-according.patch - Pacemaker Explained: update the default value and the description of `pcmk_host_argument` (bsc#1171372) * bsc#1171372-0007-Doc-Pacemaker-Explained-update-the-default-value-and.patch - fencer: add `port` or `plug` parameter according to metadata for RHCS-style fence-agents (bsc#1171372) * bsc#1171372-0006-Fix-fencer-add-port-or-plug-parameter-according-to-m.patch - libstonithd: add function to check supported parameters according to the metadata of a fence agent (bsc#1171372) * bsc#1171372-0005-Refactor-libstonithd-add-function-to-check-supported.patch- stonith_admin: --delay is an optional option for --fence/--unfence/--reboot commands (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0017-Doc-stonith_admin-delay-is-an-optional-option-for-fe.patch - controller: avoid possible use-of-NULL on logging fencing message (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0016-Fix-controller-avoid-possible-use-of-NULL-on-logging.patch- cts: add `plug` parameter for fence_dummy agent (bsc#1171372) * bsc#1171372-0004-Test-cts-add-plug-parameter-for-fence_dummy-agent.patch - libstonithd: `plug` parameter of RHCS-style fence-agents is shown as non-required in the metadata (bsc#1171372) * bsc#1171372-0003-Fix-libstonithd-plug-parameter-of-RHCS-style-fence-a.patch - libstonithd: `action` parameter of RHCS-style fence-agents is shown as non-required in the metadata (bsc#1171372) * bsc#1171372-0002-Fix-libstonithd-action-parameter-of-RHCS-style-fence.patch - libstonithd: functionize fudging metadata of RHCS-style agent to make specific parameter non-required (bsc#1171372) * bsc#1171372-0001-Refactor-libstonithd-functionize-fudging-metadata-of.patch- fencer: update cpg_topology_delay test to also verify pcmk_delay_base is added (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0015-Test-fencer-update-cpg_topology_delay-test-to-also-v.patch - controller: requested priority fencing delay defaults to 0 (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0014-Feature-controller-requested-priority-fencing-delay-.patch - stonith_admin: --delay option defaults to 0 (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0013-Feature-stonith_admin-delay-option-defaults-to-0.patch - fencer: any delays from pcmk_delay_base/max are added to requested fencing delay (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0012-Feature-fencer-any-delays-from-pcmk_delay_base-max-a.patch - scheduler: do not differentiate the case where all the nodes have equal priority (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0011-Feature-scheduler-do-not-differentiate-the-case-wher.patch - scheduler: priority-fencing-delay defaults to 0 meaning disabled (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0010-Feature-scheduler-priority-fencing-delay-defaults-to.patch- Pacemaker Explained: document priority-fencing-delay cluster option (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0009-Doc-Pacemaker-Explained-document-priority-fencing-de.patch - fencer: add cpg_topology_delay test to verify enforced fencing delay with fencing topology (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0008-Test-fencer-add-cpg_topology_delay-test-to-verify-en.patch - fencer: handle any enforced fencing delay (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0007-Feature-fencer-handle-any-enforced-fencing-delay.patch - stonith_admin: add --delay option to support enforced fencing delay (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0006-Feature-stonith_admin-add-delay-option-to-support-en.patch - controller: request fencing with any enforced priority fencing delay (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0005-Feature-controller-request-fencing-with-any-enforced.patch - libstonithd: introduce fence_with_delay() operation (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0004-Feature-libstonithd-introduce-fence_with_delay-opera.patch - scheduler: add regression test for priority-fencing-delay (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0003-Test-scheduler-add-regression-test-for-priority-fenc.patch - scheduler: implement priority-fencing-delay (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0002-Feature-scheduler-implement-priority-fencing-delay.patch - scheduler: add priority-fencing-delay cluster option (jsc#ECO-1611, jsc#SLE-12237) * jsc#ECO-1611-0001-Feature-scheduler-add-priority-fencing-delay-cluster.patch- libcrmcluster: use uint64_t type for corosync ringid (membership id) when updating node state (bsc#1168771) * bsc#1168771-0001-Fix-libcrmcluster-use-uint64_t-type-for-corosync-rin.patch- get ready for implicit -fno-common with upcoming GCC 10 (bsc#1160410) * bsc#1160410-0001-Build-get-ready-for-implicit-fno-common-with-upcomin.patch- attrd: properly declare global variables as extern in header (bsc#1160410) * bsc#1160410-0001-Refactor-attrd-properly-declare-global-variables-as-.patch- scheduler: make sure cluster-wide maintenance-mode=true overrides per-resource settings (bsc#1154881) * bsc#1154881-0001-Fix-scheduler-make-sure-cluster-wide-maintenance-mod.patch- cts: ComponentFail: killed corosync doesn't respawn immediatelly. * 0001-Test-cts-ComponentFail-killed-corosync-doesn-t-respa.patch - fencer: improved log messages regarding fencing actions (bsc#1151007) * bsc#1151007-0005-Log-fencer-improved-log-messages-regarding-fencing-a.patch - fencer: no need to check the length of a non-empty list for pending fencing actions (bsc#1151007) * bsc#1151007-0004-Refactor-fencer-no-need-to-check-the-length-of-a-non.patch - fencer: Indicate fencing target in the logs when scheduling and executing fencing command (bsc#1151007) * bsc#1151007-0003-Log-fencer-Indicate-fencing-target-in-the-logs-when-.patch - fencer: Make sure concurrent fencing commands get triggered to execute (bsc#1151007) * bsc#1151007-0002-Fix-fencer-Make-sure-concurrent-fencing-commands-get.patch - fencer: Don't let a fencing command with a long delay block any other commands pending on the device (bsc#1151007) * bsc#1151007-0001-Fix-fencer-Don-t-let-a-fencing-command-with-a-long-d.patch- scheduler: wait for probe actions to complete to prevent unnecessary restart/re-promote of dependent resources (bsc#1130122, bsc#1032511) * bsc#1130122-0001-Fix-scheduler-wait-for-probe-actions-to-complete-to-.patch * bsc#1130122-0002-Test-scheduler-wait-for-probe-actions-to-complete-to.patch- stonith_admin --help: specify the usage of --cleanup (bsc#1135317) * bsc#1135317-0001-Low-stonith_admin-help-specify-the-usage-of-cleanup.patch - controller: confirm cancel of failed monitors (bsc#1133866) * bsc#1133866-0001-Fix-controller-confirm-cancel-of-failed-monitors.patch - libcrmcommon: return error when applying XML diffs containing unknown operations (bsc#1127716) * bsc#1127716-0003-Fix-libcrmcommon-return-error-when-applying-XML-diff.patch - libcrmcommon: avoid possible use-of-NULL when applying XML diffs (bsc#1127716) * bsc#1127716-0002-Fix-libcrmcommon-avoid-possible-use-of-NULL-when-app.patch - libcrmcommon: correctly apply XML diffs with multiple move/create changes (bsc#1127716) * bsc#1127716-0001-Fix-libcrmcommon-correctly-apply-XML-diffs-with-mult.patch- controller: avoid memory leak when duplicate monitor is scheduled * 0001-Low-controller-avoid-memory-leak-when-duplicate-moni.patch - libcrmcommon: return proper code if testing pid is denied (bsc#1131353, bsc#1131356) * bsc#1131353-bsc#1131356-0001-Low-libcrmcommon-return-proper-code-if-testing-pid-i.patch- libcrmcommon: avoid use-of-NULL when checking whether process is active (bsc#1131353, bsc#1131356) * bsc#1131353-bsc#1131356-0001-Fix-libcrmcommon-avoid-use-of-NULL-when-checking-whe.patch- Update to version 2.0.1+20190417.13d370ca9: - controld: fix possible NULL pointer dereference (bsc#1131353, bsc#1131356) - pacemakerd vs. IPC/procfs confused deputy authenticity issue (CVE-2018-16877, bsc#1131356) (CVE-2018-16878, bsc#1131353) - libservices: fix use-after-free wrt. alert handling (CVE-2019-3885, bsc#1131357) - executor: systemd starts should return UNKNOWN_ERROR instead of NOT_RUNNING - pacemaker-remoted: improve proxy accept failure message - executor: consider stonith resource stopped only if stop succeeded - executor: improve stonith operation rc and status mapping - executor: reschedule recurring stonith monitor if not connected - executor: put recurring stonith failsafe stop in correct place- Rebase: bug-728579_pacemaker-stonith-dev-id.patch - Revert "use common service interface for fence-agents and RAs" (bsc#1132123) * 0002-Revert-use-common-service-interface-for-fence-agents.patch - Revert "service-lib: avoid call-pattern leading to use-after-free" * 0001-Revert-Fix-service-lib-avoid-call-pattern-leading-to.patch- Update to version 2.0.1+20190408.1b68da8e8: - scheduler: avoid error log in harmless situation - libcrmcommon: use INT_MIN/INT_MAX instead of -1 for out-of-range integers - service-lib: avoid call-pattern leading to use-after-free - libp-i: Renamed to libpacemaker.- Drop %if..%endif guards around %packages which does not affect the build result.- spec: no need to explicitly require the virtual dependency on libqb- Rebase: * bug-728579_pacemaker-stonith-dev-id.patch - Update to version 2.0.1+20190402.e091f4f0c: - scheduler: one group stop shouldn't make another required - libcrmcommon: compare_version: drop superfluous heap allocation - libfencing: enumerate installed RHCS-style agents alpha-sorted - xml diff'ing: prevent 'id' attribute reordering in "diff-removed" - libcrmcommon: downplay "Creating RNG parser context" as debug prio - controller: improve failed recurring action messages - controller: improve lost action logs - use common service interface for fence-agents and RAs - libcrmcommon: allow whitespace in name/value pairs - libcrmcommon: pcmk_nvpair_t should handle NULL values- Update to version 2.0.1+20190312.059e2e26b: - spec: move stonith_admin to -cli where it belongs - tools: Add crm_rule.- Update to version 2.0.1+20190311.e91ee92e5: - libfencing: Change return type on stonith_agent_exists. - scheduler: cl#5301 - respect order constraints when relevant resources are being probed (bsc#1117934, bsc#1128374)- Update to version 2.0.1+20190304.1ac166cd3: - build: Update pkgconfig files for libpe. - libp-i: Add a pkgconfig file for libp-i. - libs: Rename libpengine to libpacemaker-internal. - tools: Add new validate options to crm_resource. - Add HealthIOWait provider which checks hosts's IOWait - tools: crm_resource --clear should print out what it does- Update to version 2.0.1+20190304.9e909a5bd (Pacemaker-2.0.1): - libcrmcommon: complete interrupted live migrations correctly- Update to version 2.0.0+20190225.22ee9a769: - scheduler: skip all native constraints for unmanaged resources - scheduler: sort nodes when creating constraints- Update to version 2.0.0+20190130.57cc9c14b: - CTS: really don't require nodes to be specified if listing tests (bsc#1114840) - controller: really avoid closing attrd IPC for temporary failures - controller: clear election dampening when DC is lost- Update to version 2.0.0+20190125.788ee2c49: - attrd: clear election dampening when the writer leaves - libcrmcluster: *really* write only one election storm black box - attrd: log previous writer *before* clearing it- Update to version 2.0.0+20190124.c3c9c6e66: - scheduler: don't order non-DC shutdowns before DC fencing - scheduler: improve fence action ordering - scheduler: don't disable waiting for DC fencing - libcrmservice: cancel DBus call when cancelling systemd/upstart actions - libcrmservice: null-terminate string *before* printing it - libcrmservice: improve logs when cleaning up an operation - spec: add hint about sbd compatibility- Update to version 2.0.0+20190122.3f993c74f: - crm_mon: remove duplicity of fence-action-state in xml-output - cts: temporarily disable any enabled cluster serivces when running remote tests - cts: service counts as enabled only if it's explicitly enabled- Update to version 2.0.0+20190111.750c5bd01: - cts-exec: still run the tests for the other resource classes even without python systemd bindings (bsc#1121808)- Update to version 2.0.0+20190111.f07d766f3: - controller: directly acknowledge unrecordable operation results - resources: clean serialized file on SIGTERM in Dummy - libcrmcommon: downgrade empty output logging to trace level- Update to version 2.0.0+20190110.7bbbeb6f6: - tools: Clear all prefer constraints when performing a move (bsc#1155290) - tools: Fix moving a resource with a lifetime constraint (bsc#1155290) - attrd: check for alert changes after CIB is replaced - attrd: start new election if writer is lost - attrd: handle shutdown more cleanly (bsc#1173668) - attrd: don't start a new election when receiving a client update - attrd: clear lost updates - attrd: don't delay re-attempted writes unless original failed - attrd: connect to the CIB before connecting the cluster- Update to version 2.0.0+20190103.5b36d4e10: - scheduler: downgrade clone pre-allocation message - libpe_status: downgrade remote node fence-before-clear message - libpe_status: improve trace messages when finding actions - libpe_status: avoid use-after-free when logging at trace level - libpe_status: avoid double free of stop_needed list - tools: stonith_admin -I doesn't require an agent - pacemakerd,libcrmcommon: don't touch kernel.sysrq - fencing: use next device's name where intended - tools: Implement crm_resource --expired. - CTS: ignore monitor failures when testing remote node fencing - CTS: lower remote connection failure detection time - attrd: Ignoring delayed updating of attributes when integrating disjointed clusters without stonith. - pacemakerd: only one active process check needed - cts: use bash in the pacemaker-cts-dummyd - cts: clear constraints on cluster nodes (bsc#1121272) - cts: resume any possibly frozen pacemaker_remoted when cleaning up the test (bsc#1121272) - cts: simulate failure of pacemaker_remoted by freezing it with SIGSTOP (bsc#1121272) - scheduler: order resource moves after connection starts - scheduler: get rid of now-unused stonith_complete pseudo-action - scheduler: get rid of now-unused all_stopped pseudo-action - scheduler: order start after particular stonith op - controller: be more tolerant of malformed executor events - scheduler: don't send clone notifications to a stopped remote node - tools: avoid memory leak at failure exit in crm_resource --restart - controller: improve debug messages for remote connection events - CTS: don't require nodes to be specified if only listing tests (bsc#1114840) - tools: Remove extra newlines from crm_resource output. - tools: Change crm_resource output for attributes. - cts: set default number of iterations to 1 - crm_report: Add sanitize drbd to remove values of sensitive attributes. - crm_report: remove deprecated drbd-overview and add drbd configuration - scheduler: avoid container stop on wrong node - scheduler: check bundle remote connection actions properly - scheduler: downgrade addr replacement message - scheduler: don't trace implicit resource XML - spec: split -schemas standalone noarch package - pacemaker-fenced: fix easily plausible NULL pointer dereference - tools: crm_simulate -P should return consistent exit code - tools: end crm_ticket error messages with newline - libcrmcommon: make blackbox logger compatible with newer libqb - tools: make crm_verify return reliable exit codes - libpe_status: add constructor/destructor for pe_working_set_t- Update to version 2.0.0+20181108.62ffcafbc: - fenced: trigger device-update on resource-defaults changed - fenced: adhere meta-attributes when triggering device-update- Update to version 2.0.0+20181105.fb362c0c9: - scheduler: formally deprecate score in rsc_order - pacemaker-remote: skip remote_config_check for guest-nodes- Update to version 2.0.0+20181101.a21fd0099: - rhbz#1644076 - Ensure the bundle stop/demote notifications are directed to the correct host - libcrmservice: override removal failure is not a problem - libcrmcommon,execd: pass remaining timeout to drain function - tools: log user-specified time correctly in crm_simulate - libcrmcluster: log microseconds sensibly - libcrmservice: order systemd resources relative to pacemaker_remote - scheduler: order guest pseudo-fencing properly after clean-up - scheduler: avoid unnecessary recovery of cleaned guest nodes - scheduler: improve bundle address fixing messages - attrd: record tentative writer only if election not already lost - attrd: skip election check if peer election op had error - attrd: disregard lost nodes' election votes - attrd: improve election messages - attrd: initialize election before broadcasting protocol - controller: remove node's vote as soon as it is inactive - controller: don't register DC input twice - controller: don't stop election timer for nonexistent election - controller: improve election messages - libcrmcluster: don't write more than one election storm black box - libcrmcluster: only count no-vote if an election is in progress - libcrmcluster: validate election cluster messages better - libcrmcluster: improve election log messages- Update to version 2.0.0+20181012.dc40c8037: - schedulerd: Improve internal bundle ordering - execd: Allow the SBD check to be explicitly disabled for bundles - fenced: Handle fencing requested with nodeid by utilizing the membership cache of known nodes (bsc#1094208, bsc#1107270, bsc#974108) * Drop merged bsc-1094208-Refactor-fenced-Handle-fencing-requested-with-nodeid.patch - controld: able to manually confirm unseen nodes are down (bsc#1094208, bsc#1107270) * Drop merged bsc-1094208-Fix-controld-able-to-manually-confirm-unseen-nodes-a.patch- fenced: Handle fencing requested with nodeid by utilizing the membership cache of known nodes (bsc#1094208, bsc#1107270, bsc#974108) * bsc-1094208-Refactor-fenced-Handle-fencing-requested-with-nodeid.patch - controld: able to manually confirm unseen nodes are down (bsc#1094208, bsc#1107270) * bsc-1094208-Fix-controld-able-to-manually-confirm-unseen-nodes-a.patch- Update to version 2.0.0+20180927.b67d8d0de: - logrotate: set a maximum size for logs - tools: ensure crm_resource --force-* commands get stderr messages - libcrmcommon: properly check whether resource supports parameters - tools: "return" from crm_mon after calling functions that don't - alerts: send all MIB OIDs with all SNMP alerts - resource-agents: add "s"-suffix where missing in metadata - libcommon: do not write to /proc/sys/kernel/sysrq when unneeded - pacemaker-based: drop declared, errant option never backed in tree - crm_mon: don't exit directly from cib_connect on error - scheduler: honor asymmetric orderings even when restarting- Update to version 2.0.0+20180911.b7803d27c: - libcrmcommon: allow configurable bounds for DH prime length - CIB,executor: improve remote server-side messages - CIB: give more detail when TLS handshake fails - libcrmcommon: get DH prime bit length from GnuTLS API - libcrmcommon: improve TLS session initialization failure handling - CIB: raise exit escalation timer to 10s - cts,tools: make static analysis happy - crm_mon: no sense in having --as-xml in daemon-mode - attrd: Adding the ignore_delay parameter to reduce the number of scans of the attribute hash table. - crm_mon: rhbz#1625231 - disable fence-history in file-mode- Update to version 2.0.0+20180831.e41c7d6d6: - XML: schemas.c: ensure proper upgrade-enter fallback & guard strdup arg - controller: trigger join after both peer and join notifications - controller: handle shutdown completion only when needed - libcrmcluster: reset "when lost" when a peer becomes a member - libcrmcluster: improve CPG membership messages - controller: improve membership messages - stonith-history: keep history recorded within boundaries - tools: crm_resource -C should wait for all replies (bsc#1140519) - libcrmcommon: explicitly include stdint.h in util.h (bsc#1108303) - attrd: improve log messages - attrd: delay re-attempted writes - crm_mon: in case of html-output avoid missleading output - tools: make crm_resource messages tool-agnostic - scheduler: show promotable clones as "(promotable)" rather than "Master/Slave" - tools: make crm_resource --lifetime specify rule with local time zone - crm_mon: rhbz1419548: show standby-node with active resources - crm_mon: rhbz#1486869 - common language on connection-errors - avoid possible printf vs. scanf format specifiers disrepancy - also utilize configured format specifiers serving uint32_t - configure: fix overkill format specifier serving uint64_t check - controller: shut down DC if unable to update node attributes - libcrmcommon: assume unprivileged user if can't get user info - libcrmcommon,libcib: improve messages when unable to get user info - Initial podman support - scheduler: sort node names with leading zeroes - scheduler: add regression test for anonymous instance numbering - fenced: g_hash_table_insert has no returnvalue till glib 2.40 - scheduler: sort node names numerically and case-insensitively - scheduler: Act on clone instances in numerical order - scheduler: assign anonymous clone instances properly - scheduler: print pending node if no active node - scheduler: print clone instances individually when action is pending - stonith-API: free history reply in client - controller: avoid error message if node state not known in peer callback - tools: document crm_master -r option - stonith_admin: no sense in calling without action option - fence-API: empty history-query-reply is OK without history-tag - scheduler: reword messages when finding anonymous clone instances - scheduler: make inc6 regression test input more sane - tools: simulation should use same history name as live cluster - scheduler: avoid unnecessary probe loop for anonymous clones - scheduler: improve efficiency of checking for clone instance on node - scheduler: never probe more than a single instance for anonymous clones - crm_mon: default to showing pending fence actions - tools: already latest schema is not failure for cibadmin --upgrade - pacemaker-based: inform originator of CIB upgrade failure - controller: set exit-reason when faking failure - crm_mon: default to showing fence-failures - fence-history: automatically sync history - crm_mon: use new fence-history notifications - fence-history: add cleanup & sync & history-notify - RPM: don't package servicelog-related binaries - agents: remove references to corosync plugin daemons from controld meta-data - controller: log variables *after* setting them - cts-scheduler: add test for forced anonymous clone - scheduler: clear globally-unique correctly when forcing anonymous - scheduler: respect lower clone-max for forced anonymous clones - scheduler: reword force-anonymous message - scheduler: only some agent standards support unique clones - controld: No update by already confirmed events. - Present exec_time in event environment- Update to version 2.0.0+20180726.3d81c89b8: - Shutdown corosync after a fatal error - tools: ipmiservicelogd FTBFS on ppc64le - tools: notifyServicelogEvent FTBFS on ppc64le - tools: detect CIB directory correctly - tools: avoid memory leak when crm_resource checks resource - controller: avoid any chance of use-of-NULL when doing LRM op - resources: controld doesn't need to check for corosync 1 plugin - resources: use correct variable name in Stateful - cts-scheduler: restore ability to pass arguments to single test run - resources: use ocf_is_true in SysInfo - spec: drop superfluous dependency of -libs-devel on -cts - tools: update URL in crm_simulate help - crm_mon: rhbz#1461964 - add fence history features (bsc#968055)- Update to version 2.0.0+20180706.8cf3fe749 (Pacemaker-2.0.0): - tools: Multiple -V increase debug level (#1526) - scheduler: clarify multiple-anonymous-instances message - scheduler: avoid use-after-free when on-fail=block - controller: add node name to meta-data call environment - controller: filter certain synthesized failures from CIB - controller: filter certain action timeouts from CIB - controller: don't record pending notifies in CIB - executor: cancel recurring monitors if fence device registration is lost - controller: avoid memory leak if start-up fails - XML: schemas.c: fix possible memleak + less magic with numeric constants - tools: stonith_admin -h/-H options are queries - libstonithd: avoid memory leak when getting meta-data - XML: resources-3.1.rng: relaxed schema after tight upgrade enforcement - XML: schemas.c: take severities of XSLT messages into account properly - XML: assets/upgrade-2.10-htmldiff.xsl: express message severity visually - XML: upgrade-2.10{,-leave}.rng: distinguish message severity - XML: upgrade-2.10-roundtrip.xsl et al.: new tests incl. browser view - XML: upgrade-2.10.xsl: simplify thanks to diehard assumptions wrt. input - XML: upgrade-2.10-leave.xsl: post-upgrade output restoring stylesheet - XML: upgrade-2.10-enter.xsl: pre-upgrade input normalizing stylesheet - XML: schemas.c: implement & employ full round-trip apply_upgrade - XML: schemas.c: switch to using add_schema_by_version - XML: schemas.c: prepare the ground for unfold-transform-refold logic - XML: schemas.c: crm_schema_init: simplify for/break, call add_schema 1x - XML: schemas.c: shortcut upgrade transformation when not needed - st_client, stonith_admin: cleanup memory of stonith-history - XML: cib_ops.c: make use of cib_verbose flag for RNG/XSLT handling - XML: xml_internal.h: accept changing priority over particular chunks - CIB: no schema violating oversimplified patching with @id-ref - schemas.c: cleanup XSLT extension modules' data and whatnot - spec: move crm_node to -cli package - attrd: support removing node by ID - tools: query controller for crm_node -n - controller: add CRM_OP_NODE_INFO operation - xml.c: fix cleaning of own vs. XSLT's XML node's _private load - xml.c: properly "staticize" or drop eligible functions - scheduler: print to stdout when appropriate - tools: treat INFINITY correctly in crm_failcount - libcrmservice: support mount, path, and timer systemd unit types - libcrmcluster: avoid use-of-NULL when searching for remote node (bsc#1128772) - spec: add procps-ng & psmisc dependencies as suitable - libcrmcommon: lower maximum IPC flush delay to 1.5 seconds - CTS: fix python3 usage - libstonithd: show error if agent not found for meta-data call - fencing: add stonith_admin --validate option - libstonithd: add client API for device validation - based_callbacks.c: restore -Werror buildability, avoid truncation - tools: handle stonith_admin exit codes better - tools: stonith_admin should print error if stonithd connection fails - tools: improve stonith meta-data error messages- Update to version 1.1.18+20180531.63ff11d35: - scheduler: ensure orphaned recurring monitors have interval set - scheduler: improve action creation messages - XML: regression.sh + upgrade-2.10.xsl + test-2: browser-based test drive - XML: upgrade-2.10.xsl: use namespacing and/or modes for easier mash-ups - XML: regression.sh + upgrade-detail.xsl: fix minor cosmetic issues - scheduler: "requires" shouldn't apply to guest node fencing - libpe_status: handle "requires" properly for anonymous clones - scheduler: avoid unnecessary delay of start actions - scheduler: order implicit actions more strictly - all: prefer appropriate node when multiply active - libpe_status: find active instances properly according to requires - libpe_status: handle pending migrations correctly - tools: correctly check crm_resource --move for master role - scheduler: update wiki URL in log message - libcrmcommon: use proper IPC buffer size when reading - CIB manager: improve notification failure messages - liblrmd: improve TLS key reading - XML: upgrade-2.10.xsl: rsc op instance_attrs [2/2]: remaining meta attrs - XML: upgrade-2.10.xsl: rsc op instance_attrs [1/2]: meta-like requires - XML: upgrade-2.10.xsl: resource meta_attributes: in-situ exchange - XML: upgrade-2.10.xsl: simplify "should diagnostics be emitted" decision - XML: upgrade-2.10.xsl: related commits in "./regression.sh -X" output - XML: regression.sh + upgrade-2.10.xsl: remove commented out leftovers - XML: resources-3.0.rng: omit "isolation*" resource meta_attributes - XML: upgrade-2.10.xsl: normalize indentation of new rsc meta attributes - executor: give more detail when TLS handshake fails - fenced: be more paranoid about freeing memory - cts: use python2/3-compatible comparison- Update to version 1.1.18+20180517.adf4d77b8: - spec: unify quoting in {pre,post}* scriptlets' action soliciting - spec: add a simple retention of pre-existing log move targets - libcrmcommon,libcrmcluster,liblrmd: recognize daemons under new names - XML: upgrade-2.10.xsl: resource meta_attributes: tweak diagnostic msg - XML: upgrade-2.10.xsl: re-apply on scheduler CTS test cases - XML: upgrade-2.10.xsl: resource meta_attributes: validity conformance- Update to version 1.1.18+20180511.acd8ff5a7: - execd: avoid memory leak when testing remote key - cts-scheduler: avoid unsupported usage of requires - controld: avoid memory leak when synthesizing failure - XML: upgrade-2.10.xsl: resource meta_attributes: isolation* items - XML: upgrade-2.10.xsl: make diagnostics more direct wrt. context - XML: upgrade-2.10.xsl: remaining "marking" space with op meta_attributes - XML: upgrade-2.10.xsl: simplify 2/2: HelperIdentity, no INNER-RECURSION - XML: upgrade-2.10.xsl: simplify 1/2: resource instance_attributes - XML: regression.sh: avoid doubts when tests expected at stdin with '-' - XML: regression.sh: modularize "XSLT processor", allow substitutes - tools: improve error messages from crm_resource --move - tools: use output redirection correctly in crm_standby - tools: handle multiple values properly in crm_attribute - tools: bash portability issue in crm_failcount - libcrmservice: don't consider a cancelled recurring operation as failed - tools: cibsecret checks pacemaker-controld instead of crmd - tools: cibsecret --help/--version doesn't require cluster to be running (bsc#1102915) - spec: package cts-exec-helper with main package instead of -cli - spec: move old logs after upgrade - scheduler: improve failed op message - libcrmservice: find absolute paths when used with "service:" - libcrmservice: separate LSB-specific code into own source files - execd: handle systemd actions correctly when used with "service:"- Update to version 1.1.18+20180504.70fe3d6e9: - all: take advantage of new libqb features - contoller,scheduler: guard hash table deletes (bsc#1136712) - controller: don't abort after delay if we're no longer DC - libcrmcommon,pacemakerd: kernel task name is at most 15 characters - cts: install dummy systemd daemon via helper script - cts: externalize log watcher script - Maint: make systemctl react to pacemaker-remote as with underscored one - make some old daemon references traceable with "man -K OLDNAME" - io.c: restore -Werror buildability, put conversion specifier last- Update to version 1.1.18+20180430.c0d7ba798: - libcrmcommon: avoid memory leak on failed IPC send - daemons: add configure option to create links at old daemon names - controld: rename "crmd-*" cluster options - all: change log file message format - daemons: improve connection loss messages - libcrmcommon: improve connection loss message - pacemaker_remote: correct documentation URL in systemd unit file - libcrmcommon: check file/directory writability better - spec: no more buildroot XML to modify - cib: rename cib daemon to pacemaker-based - cts-stonithd: rename cts-stonithd to cts-fencing - fenced: rename stonith-test to cts-fence-helper - fencing: rename stonithd to pacemaker-fenced - rename cts-pengine to cts-scheduler - pengine: rename pengine daemon to pacemaker-schedulerd - crmd: rename crmd daemon to pacemaker-controld - pacemaker-execd: rename pacemaker_remoted to pacemaker-remoted - rename cts-lrmd to cts-exec - pacemaker-execd: rename lrmd_test to cts-exec-helper - lrmd: rename lrmd daemon to pacemaker-execd - attrd: rename attrd daemon to pacemaker-attrd- Update to version 1.1.18+20180430.b12c320f5: * XML: upgrade-2.10.xsl: fix "mark space" issue (bsc#1091661)- Update to version 1.1.18+20180427.a34ccd926: - crmd: avoid double free after ACL rejection of resource delete - lib: Changed to lowercase comparison. - all: correct misspellings - controld: remove deprecated configdir parameter - controld: deprecate and ignore configdir parameter - controld: consistently indent with spaces instead of tabs - libcrmcommon: don't record pending notify actions as completed - crmd: improve messages when a node is unexpectedly lost - cib: improve shutdown messages - cts-regression: allow specifying to run multiple tests again (bsc#1091360)- Update to version 1.1.18+20180417.24df451b5: - alerts: Delete redundant code. - liblrmd: cast time_t to long long when printing - cts: separate dummy systemd service into separate files * Drop obsolete fate-323526_pacemaker-tests-shebang-python3.patch - crm_diff: rhbz#1561617 - Ignore attribute placement when comparing in 'cib' mode - spec: remove reference to long-gone file - spec: mark -cts & -doc packages as noarch - spec: fix malformed conditional macros for systemd-less cases - alerts: Change timestamp of Alert of snmp.- Update to version 1.1.18+20180411.2f77f4922: - libcrmcommon: free signal triggers when cleaning up mainloop - libcrmcommon: fix memory leak in schema workaround - fencing: avoid memory leaks when freeing remote operation - fencing: free dynamic memory at stonithd shutdown - crmd: delete resource from lrmd when appropriate (bsc#1117381) - Test: rhbz#1565187 - Ensure failures that cause fencing are not removed until after fencing completes - rhbz#1565187 - Ensure failures that cause fencing are not removed until after fencing completes- Update to version 1.1.18+20180406.633845120: - libcrmcommon: add a byte to pid file holder - attrd,cib,libcrmcommon: avoid %z - crmd: avoid memory leak when synthesizing operation result - tools: avoid memory leak on invalid resource - crmd: log rc code as extended information - cib: avoid file descriptor leak on temporary file creation - pengine: avoid redundant test - libcrmcommon: handle compression failures properly - libcrmcommon: improve empty string check - various: improve NULL checks - libcrmcommon: improve patch xpath searches - libcrmcommon,tools: use format strings appropriate to variables - libcrmcommon: use correct argument type for duration - libcrmcluster: avoid potential use-of-NULL - libcrmcommon,libstonithd: avoid resource leaks - tools: get sensor lun in ipmiservicelogd before using it - schema upgrade: temporary fix to avoid crash on newly present text- Update to version 1.1.18+20180406.ce623681e: - fencing: convert fence_legacy to python - fencing: fix typos in messages- Update to version 1.1.18+20180406.18fe1cc2b: - XML: upgrade-2.10.xsl: add transform for automatic upgrades to latest schema - Log: establish correct character string literals also with qb_logt sink - pengine: fix swapped warning message arguments leading to segfault (bsc#1090538) - cts-pengine: add regression test for notifications for unrunnable actions - cts-pengine: update regression tests for notification changes - rhbz#1545449 - Do not perform notifications for events we know wont be executed - bundle: Added add-host option. - liblrmd: add API function for new lrmd op - lrmd: add new lrmd op to list recurring ops - spec: require corosync >= 2.0.0 - crmd,libcrmcommon,libpe_status: guint can't be negative - xml: Allow local "kind" in resource_set within rsc_order (bsc#1085515) - Pacemaker Explained: "symmetrical" defaults to "false" for serialize orders (bsc#1085515) - pengine: "symmetrical" defaults to "false" for serialize orders (bsc#1085515) - pengine: Avoid potential use-of-NULL in unpack_simple_rsc_order() (bsc#1085515) - cts-pengine: add new regression test for interval handling - libpe_status: handle ISO8601 intervals when checking for blocking failures - pengine: properly cancel recurring monitors - pengine: improve recurring operation messages - pengine: check for duplicate intervals properly - libcrmcommon: avoid misuse of crm_get_msec() - pengine: treat reconnect_interval more consistently with action intervals - libpe_status: use default timeout rather than 0 if timeout spec is bad - libpe_status: use correct default timeout for monitors- Update to version 1.1.18+20180322.d37067b2a: - spec: Make sure shadow package is installed before adding user and group- Update to version 1.1.18+20180313.2c83c6872: - cts-pengine: add regression test for changing bundle replica count - libpe_status: handle unique bundle children correctly- Update to version 1.1.18+20180312.31c732adc: - spec: make shadow dependency explicit - spec: drop requirements for bison and flex- Update to version 1.1.18+20180309.e51687162: - crmd,liblrmd,libcrmcommon: improve remote node disconnection logs - libcrmcommon: add function to get text equivalent of client type - crmd: always write faked failures to CIB whenever possible - liblrmd: add function to create resource info structure - crmd: functionize setting fake operation status - crmd: always assert when operation can't be created - crmd: avoid core dump if remote connection doesn't exist - crmd: improve lrmd failure handling - crmd: return rich error codes from get_lrm_resource() - crmd: match only executed down events - crmd: functionize pieces of do_lrm_invoke() - crmd: don't abort for v2 diff LRM refresh if actions pending - crmd: validate CIB diffs better- Update to version 1.1.18+20180305.9cd0f6cb8: - libcrmcommon: avoid memory leak when schema transform not found - tools: warn if crm_resource --wait called in mixed-version cluster - Install /etc/pacemaker directory for storing authkey file (bsc#1082883)- Update to version 1.1.18+20180226.f788652cf: - crmd: log transition ID when aborting - crmd: always log unmatched down events at least at debug level - pengine: deprecate require-all in rsc_order (fate#324508) - libpe_status: deprecate stonith-action=poweroff (fate#324508) - tools: already latest schema is not failure for cibadmin --upgrade - libcrmcluster: prefer corosync name over ring0_addr (fate#324508) - spec: add gcc to BuildRequires - attrd: Synchronize attributes held only on own node.- Build: Ship cibsecret by pacemaker instead of cluster-glue (bsc#1082456) * Drop obsolete pacemaker-cibsecret-tool-temp-disabled.patch- Update to version 1.1.18+20180216.ae50b7f5d: - various: improve string allocation - XML: upgrade-2.10.xsl: re(drop) rsc_colocation/@score-attribute{,-mangle} - XML: upgrade-*.xsl: bump the validate-with field from within stylesheet - XML: upgrade-*.xsl: omit XML declaration - upgrade-*.xsl: don't be picky about comments, PIs, etc.- Update to version 1.1.18+20180213.965befd59: - libcrmcommon: use /tmp when creating temporary XML file - tools: crm_master should always work on node attribute - tools: crm_resource --cleanup couldn't match clone instances - tools: crm_resource --refresh should ignore --operation and --interval - crmd: quorum gain should always cause new transition - rhbz#1527072 - Correctly observe colocation constraints with bundles in the Master role - Bug rhbz#1519812 - Prevent notify actions from causing --wait to hang - libpe_status: recover after failed demote when appropriate - lrmd: always use most recent remote proxy - libpe_status: limit resource type check to primitives - PE: correct mispelled constant - PE: Ensure stop operations occur after stopped remote connections have been brought up - PE: Remote connection resources are safe to to require only quorum - PE: Only allowed nodes need to be considered when ordering resource startup after _all_ recovery - PE: Ordering bundle child stops/demotes after container fencing causes graph loops - PE: Passing boolean instead of a pointer- Update to version 1.1.18+20180209.7acb22379: - use proper way to make output files executable - spec: move lrmd_test to cli package - spec: make log directories owned by cli package - spec: move all test data into cts package - pengine: move regression test to cts as cts-pengine - lrmd: move regression test to cts as cts-lrmd - fencing: move regression test to cts as cts-stonithd - tools: move CLI regression test to cts as cts-cli - rename top-level testing files and move to cts directory - tools: drop crmadmin -i and -d options (fate#324508)- Update to version 1.1.18+20180208.f6a261987: - Feature: crmd: modify feature set handling- Update to version 1.1.18+20180205.b44c57e35: - pengine,doc,tools: rename "master score" to "promotion score" (fate#324508) - libpe_status: rename bundle 'masters' to 'promoted-max' (fate#323415) - pengine,libpe_status: rename master-{max,node-max} to promoted-* (fate#324508) - various: merge clone resource type and master/slave resource type (fate#324508) - attrd,pacemakerd,libcrmcommon: make "Exiting" last message - don't use corosync logging settings (fate#324508) - crmd,libpe_rules: drop support for notification-agent/recipient - tools: improve crm_failcount exit code usage- Update to version 1.1.18+20180129.c801ab11e: - allow configuring specific python intepreter version (fate#323526) * Drop obsolete fate-323526_pacemaker-pacemaker-configure-AM_PATH_PYTHON-python3.patch - use auto-configured python executable in python shebangs (fate#323526) * Update fate-323526_pacemaker-tests-shebang-python3.patch - xml: drop score-attribute and score-attribute-mangle - pengine: avoid misuse of function parameter - libcrmservice,pacemakerd: improve privilege dropping- Update to version 1.1.18+20180119.9146c3c20: - crmd: Avoid double-removal of glib event source on stopping- Update to version 1.1.18+20180118.9c3f7a49c: - libcrmcommon: put exit/return handling in own source/header files - Build: bump build dependencies - Rebase: * pacemaker-Wno-format-signedness.patch- configure: Check for python3 with AM_PATH_PYTHON (fate#323526) * fate-323526_pacemaker-pacemaker-configure-AM_PATH_PYTHON-python3.patch- Update to version 1.1.18+20180112.bd7115b8c: - tools: improve help text - libpe_status: deprecate restart-type and role_after_failure- Update to version 1.1.18+20180109.57d48a1b1: - libcluster,libcrmcommon: improve BZ2 error messages - all: use consistent exit status codes - libcrmcommon,tools: improve XML write error handling - stonithd,libcrmcommon: auto-calculate stonith-watchdog-timeout when requested (fate#324508) - logrotate: switch user when rotating logs- cts: Operate pacemaker service on startup to prevent triggering StopWhenUnneeded of corosync service * pacemaker-cts-StartCmd.patch- Update to version 1.1.18+20180104.7ba28d854: - tools: improve crm_standby option handling - tools: improve crm_standby help and error messages - tools: improve crm_master option handling - tools: improve crm_master help and error messages - tools: remove deprecated stonith_admin option (fate#324508) - tools: remove deprecated crm_verify option (fate#324508) - tools: remove deprecated crm_attribute --node-uuid option (fate#324508) - tools: avoid using deprecated options - tools: remove deprecated crm_resource options (fate#324508) - libpe_status: use consistent monitor for implicit remotes - all: overhaul log locations (fate#324508)- spec: Switch dependencies from python to python3 (fate#323526) - tests: Switch shebang from /usr/bin/python to /usr/bin/python3 (fate#323526) * fate-323526_pacemaker-tests-shebang-python3.patch- Update to version 1.1.18+20180101.494eacba4: - migrate cts to python3 (fate#323526)- Update to version 1.1.18+20171221.c91a650ec: - libcrmcommon: drop special handling of pre-1.1.7 failed recurring op history - libcrmcommon: drop special handling of pre-1.1.4 migration history entries - crmd: drop support for DCs that don't support throttling - cib,libcrmcommon: drop support for PCMK_legacy variable- libcrmcluster: use crm_strdup_printf() instead of calloc() - attrd: avoid small memory leak at start-up - systemd unit files: restore DBus dependency - libcrmservice: avoid memory leak on DBus error - pengine: validate more function arguments - Upstream version cs: 098d557cc495944e1b6ebd9d05b819d6da74825e- libpe_status: drop support for "requires" operation meta-attribute (fate#324508) - tools: crm_resource --cleanup with no resource specified (bsc#1071503) - tools: crm_resource --cleanup (bsc#1071503) - crmd,libpe_status: drop support for legacy option aliases (fate#324508) - libstonithd,libpe_status: drop support for pcmk_poweroff_action (fate#324508) - libstonithd,libpe_status: drop support for pcmk_arg_map (fate#324508) - libstonithd,libpe_status: drop support for pcmk_*_cmd (fate#324508) - libpe_status,libpe_rules: drop support for default-action-timeout (fate#324508) - libpe_status: use correct default timeout for probes - libpe_status: drop support for operation meta-attributes in instance_attributes (fate#324508) - libpe_status: fix precedence of operation meta-attributes - libpe_status,libpe_rules: remove support for is-managed-default (fate#324508) - libpe_status,libpe_rules: drop support for default-resource-stickiness (fate#324508) - crmd: drop support for LRMD_MAX_CHILDREN environment variable (fate#324508) - tools: remove crm_mon SMTP support (fate#324508) - tools: remove crm_mon SNMP support (fate#324508) - lrmd: remove deprecated -r/--dummy command-line option (fate#324508) - tools: crm_resource --cleanup for non-primitive resources (bsc#1071503) - pengine: unfence before probing or starting fence devices - Upstream version cs: 4528eb3b726197ab077243ab923ed291473f0ed7- attrd: ensure node name is broadcast at start-up (CLBZ#5330) - Upstream version cs: 407ded8de381543e71c5b94b3ade296fcfd2c828- libpe_status: remove support for default-resource-failure-stickiness (fate#324508) - libpe_status: remove support for resource-failure-stickiness (fate#324508) - various: remove support for pre-Pacemaker-1.0 CIB XML (fate#324508) - libpe_status,tools: remove support for legacy ticket state entries (fate#324508) - various: remove isolation wrapper support (fate#324508) - systemd unit files: enable TasksMax=infinity (bsc#1028138, bsc#1066710) * Drop obsolete bug-1028138_pacemaker-pacemaker.service-TasksMax.patch - Upstream version cs: 53a3fe14b15b087bbde9ccb524d11d0a413cc6e9- RA: NodeUtilization RA is now shipped by resource-agents package (bsc#1070347) * Drop bug-1015842_pacemaker-NodeUtilization-RA.patch- crmd: default record-pending to TRUE (fate#324508) - tools: enable new crm_resource --cleanup/--refresh behavior (fate#324508) - Upstream version cs: f36ad364748880815bf00151c516a1f2deae2fed- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468)- Update to version 1.1.18 - libpe_status: always use default key location with bundles - attrd,stonithd: more efficient regular expression parsing - libpe_status: avoid potential NULL dereference - tools: use proper variable in message from crm_resource -g - tools: use uber-parent for crm_resource -a/-A - tools: use g_main_loop_is_running() properly - libpe_status: monitors are rescheduled, not reloaded - crmd: determine restart/private digests correctly - systemd: add TasksMax comment to pacemaker_remote unit (bsc#1028138, bsc#1066710) - tools: make regression test insensitive to line number changes - pengine,tools,libpe_status: avoid unnecessary use of pe_find_current - pacemaker.service: Recommend not to limit tasks (bsc#1028138, bsc#1066710) * Update bug-1028138_pacemaker-pacemaker.service-TasksMax.patch - tools: set the correct OCF_RESOURCE_INSTANCE env when crm_resource --force-* executes RA - typo: overriden -> overridden - portability: the difference of time_t values is given by difftime() - pengine: avoid not-really-possible use-of-NULL - PE: Have bundles log to stderr so that 'journalctl -M' works (rkt) - tools: don't expect reply to failed send - pengine: use newer Pacemaker Remote terminology - pengine: memory leak when writing graph to file - tools: don't reinvent the glib wheel - tools: implement clean-up dry-run correctly - pengine: avoid potential use-of-NULL - Update regression test outputs - PE: Improved logging of reasons for stop/restart actions - PE: Allow all resources to stop prior to probes completing - PE: Correctly defer processing of resources inside containers - crm_resource: Ensure we wait for all messages before exiting - crm_resource: Have cleanup operate only on failures - PE: Have bundles log to stderr so that 'docker logs' works - PE: Resources are allowed to stop before their state is known everywhere - PE: Use the node we already have and know isnt NULL - PE: Flag resources that are acting as remote nodes - crmd: Scale all cib operation timeouts - PE: Bare metal remotes _can_ run resources now and must be probed - PE: Bundles only need to wait for other containers on the same node to be probed - crmd: Scale timeouts with the number of remotes too - PE: There is no need for port mapping directives when net=host is specified - PE: Do not always expire failed operations of nested remotes - PE: Consolidate REMOTE_CONTAINER_HACK logic - PE: Exclude resources and nodes from the symmetric_default constraint in some circumstances - crm_resource: Don't cleanup on nodes not meeting the discovery conditions - PE: Restore the ability to send the transition graph via the disk if it gets too big - crm_resource: Prevent disconnection from crmd during cleanup - PE: Do not probe connection resources until the container is active - PE: Detailed resource information should include connection resource state - Tools: Allow crm_resource to operate on anonymous clones in unknown states - tools: Clean up everywhere if we don't know anything about the resource - crm_resource: See what cleanup would have done for a saved configuration - PE: Only pass requests for promote/demote flags onto the bundle's child - Upstream version cs: 2b07d5c5a908998891c3317faa30328c108d3a91 (Pacemaker-1.1.18)- pengine: if ignoring failure, also ignore migration-threshold - libcrmcommon,liblrmd,lrmd: improve messages for failed remote sends - libcrmcommon,lrmd: meaningful error codes when sending remote messages - libcrmcommon: lower watchdog messages when default - tools: set meta_timeout env when crm_resource --force-* executes RA - fencing: don't print event twice with stonith_admin --verbose - fencing: memory leak in stonith_admin --env - fencing: improve stonith_admin help - crmd: hard error if remote start fails due to missing key - libcrmcommon,liblrmd: report meaningful async connection errors - libcrmcommon: return meaningful error codes to connection callbacks - libcrmcommon: async connection callback must get negative error codes - libcrmcommon,liblrmd: improve remote connection messages - pacemaker_remote: warn if TLS key can't be read at start-up - lrmd: tweak TLS listener messages - pengine: don't probe offline or unclean guest nodes (fate#324441) - agents: ifspeed - Try to detect interface name from ip address. - pengine: don't keep unique instances on same node - pengine: improve messages when assigning resources to nodes - Upstream version cs: 23be51236edc34477a99d6979bc0e2cc1e1a7684- libpe_status: avoid use-after-free (again) - lrmd: don't reject protocol 1.0 clients (bsc#1009076) - tools: print descriptive messages for OCF exit code - tools: differentiate trace log level for RAs - tools: show RAs debug logs only when verbose mode for crm_resource --force-* - tools: suppress an invalid error message for crm_resource --force-* options - pengine: don't schedule reload and restart in same transition - libcrmservice: list systemd agents alphabetically - libcrmcommon: add function to sort list alphabetically - pengine: new regression test for unrecoverable remote connection - libcrmservice: avoid infinite loop on bad DBus reply - libcrmservice: list systemd unit files, not only active units - libpe_status: print container type in lowercase when outputting XML - tools: re-enable crm_resource --lifetime option (CLBZ#5251, bsc#950128) - libcrmcluster: improve error checking when updating node name - tools: fix crm_resource --why output when resource and node are specified - libcrmservice: parse LSB long description correctly - libcrmservice: follow LSB standard for header block more strictly - libcommon: Erase old exit_reason - Upstream version cs: 36d2962a8613322fc43d727d95720d61a47d0138- crm_mon: error-exit child if execl should return - crmd: avoid memory leak when caching meta-data - tools: ensure crm_resource data set is initialized - libcib: ensure xpath result isn't empty - tools: missing break statement in attrd_updater - libcrmcommon: check sscanf() result when parsing schema version - tools: check sscanf return value when parsing failed op list - tools: treat bundles with replicas like clones when restarting - tools: allow crm_resource to be called without arguments - tools: update regression test for recent message changes - tools: improve crm_resource --show-metadata error messages (CLBZ#5287) - libcrmcommon: add functions for using agent specifications - tools: improve crm_resource help (CLBZ#5251, bsc#950128) - libcrmcommon: improve cluster option parsing - Upstream version cs: 27b631162104d90e944cbc107c2d46e983f94ca7- spec: Disable deprecated crm_mon SNMP/ESMTP support (configure alerts instead)- pengine: add tests for no-quorum-policy=suicide - libpe_status: properly detect when nodes should suicide - libpe_status: always log startup-fencing value - libpe_status: generalize ability to log warning only once - pengine: reset loss-policy from fence to stop if no fencing - pengine: avoid use-of-NULL when unpacking tickets - tools: ensure crm_resource works if no command is specified - libpe_status: validate no-quorum-policy=suicide correctly - tools: use-after-free in crm_diff - RA: ClusterMon - Correctly handle "update" parameter - attrd: "peer peer loss" -> "peer loss" - Tools:Refactored Crm_resource to have proper assignments for require_* - Upstream version cs: c4a09cfec99570a2509831f4b8974457dcdb1af6- Log: Reduce verbosity of developer logging - PE: We most definitely need to probe connection resources - PE: Ensure the bundle nodes get set with the correct discovery mode - PE: Implement probing of container remote nodes (fate#324441) - attrd: Tweak log messages for clarity - crm_resource: Do not send history erasure commands for nodes where this is none - PE: Resources in bundles should also respect failcounts - PE: Do not send notifications to unclean bundles - PE: Prevent graph loops when fencing the host out from underneath a bundle - Tools: Allow bundle resources to read/write master scores based on the same logic as attrd (cf34f4c) - PE: bundle: Send an additional host list when container-attribute-target=host - PE: Correctly interpret colocation with bundles - PE/attrd: Allow bundle resources to read/write attributes based on the physical host rather than the container name - Upstream version cs: 4328c6a65424d1caf9785107664ec1b7fc824664- Rebase: * bug-728579_pacemaker-stonith-dev-id.patch - Fix: -Wformat-truncation=2: prevent format truncation - snprintf: use correct signedness in print format specifiers - snprintf: use sizeof(X) as size + prevent off-by-ones - crmd,libcrmcommon,libcluster,tools: handle PID as string properly - tools: use right size for string buffer in fake_transition.c - crm_resource: fix a memleak - pengine: sprintf -> snprintf - libcrmcommon: fix possible infloop in buffer_print - crm_snprintf_offset like parts: fix off-by-ones - attrd: improve update messages - stonithd,lrmd,pengine: spelling/formatting corrections - build: install ifspeed resource agent - libcrmservices: avoid assert for HB resource with no parameters - crmd: re-enable local collection of meta-data for remote nodes - crmd,pengine,libpe_status,libpe_rules: remove support for versioned attributes - crmd: avoid memory leak when node state is unknown - crmd: avoid assert if LRM query fails - libpe_status: more error checking when unpacking bundles - libpe_status: bundles now respect PCMK_authkey_location - libcrmcommon,liblrmd,lrmd: validate PCMK_remote_port - PE: Bundles: add support for rkt bundle type - libcrmcommon,libpe_rules: unpack new alert filter syntax - xml: allow specifying alertable events - Fix: a proper calculation of a speed in case of hfi1 for ifspeed RA. - pengine: detect proper clone name at startup - pengine: don't ignore permanent master scores at startup - pengine: handle resource migrating behind a migrating remote connection - stonith-ng: advertise pcmk_on_action via metadata - liblrmd: Make sure the operation of a remote resource returns if setup of the key fails (bsc#1053463) - libcrmcommon,pengine: improve log messages - PE: only print to stdout if run from command line - crmd: eliminate size restriction on node state xpath - pengine: add regression test for remote connect interval wait - pengine: re-enable unrecoverable remote fencing - pengine: Make sure calculated resource scores are consistent on different architectures (bsc#1054389) - PE: Allow resources inside bundles to receive notifications - PE: Update unfencing device change test output - attrd,crmd: erase attributes at attrd start-up, not first join - attrd: accept connections only after CIB connection is active - attrd: make CIB connection function self-contained - attrd: improve messages - stonith-ng: make fencing-device reappear properly after reenabling - crmd: don't need meta-data after resource is deleted - crmd: only get meta-data for OCF and stonith agents - libcrmcommon: generate agent key without :: if no provider - pengine: avoid fence loop for remote nodes - attrd: don't log error if CIB doesn't have an alerts section - PE: Only retrigger unfencing on nodes that ran operations with the old parameters - PE: Output resource changes in a friendlier format - PE: Attempt to indicate why resources are changing state - Mechanism for recording why an action is required - Support unfencing of remote nodes - PE: Ignore optional unfencing events and report the fencing type - Upstream version cs: 20cffae1e9c64217339173c197edac8612ad02b9- logging: ensure blackbox gets generated on arithmetic error - crm_mon: overcome crm_system_name no longer influenced with argv - crm_mon: make CGI bail out on suspicious arguments - crm_mon: make CGI bail out properly and w/o help screen - crm_mon: canonical casing of Content-Type CGI header field - libcrmcommon: handle schema versions properly - attrd: don't reconnect to lrmd if already connected - PE: Ensure nested container connections run on the same host - crmd: send alerts via lrmd - lrmd: execute alerts as cluster daemon user - libservices: add ability to specify user to run an action - libcrmcommon: improve user lookup messages - extra: correct ClusterMon metadata - attrd: avoid memory leak when disconnecting from lrmd - attrd,tools: avoid memory leaks from use of crm_itoa() - attrd: be consistent about attr/host logging - attrd: delay lrmd connect until needed - attrd: add timestamp to alert just when needed - attrd: improve log messages - libcrmcommon,libpe_rules: avoid crash when alerts section has comments - libcrmcommon: add API call for next named XML child - liblrmd: only set environment variables with a value - attrd,liblrmd: handle adding env var at head of list - lrmd: drain alerts at shutdown - attrd,lrmd: generate alert sequence number in lrmd - liblrmd: better trace message when creating command - stonith-ng: avoid double-free of pending-ops in free_device - crmd: log correct feature set revision - PE: update start-failure-is-fatal help - cib: avoid unnecessary memory allocation - stonith-ng: add pcmk_delay_base as static base-delay (fate#324488) - XML: upgrade-1.3.xsl: be explicit about non 1:1 wrt. ACL @attributes - enable upgrade XSLTs to use meaningfully - Tools: Added option of --why/Y to crm_resource to inform the status of resources if running or not - various: fix spelling in messages and comments - cib: reword trace message - PE: Prevent use-after-free when creating bundle constraints - add versioned operations support - TE: don't bump counters when action or synapse is invalid - obtain metadata in CRMd via async call - tools: add version options for cibsecret - alerts: Support of meta attributes(kind, attribute_name). - attrd,lrmd,lib: Addition of the transmission function of the attribute alert to attrd. - extra: Change alert_xxx.sh.sample for attribute alerts. - extra: Change PCMK-MIB.txt for attribute alerts. - XML: upgrade-1.3.xsl: simplify branching - XML: upgrade-1.3.xsl: drop superfluous branching - XML: upgrade-1.3.xsl: simplify "weak identity" transform rules - XML: upgrade-1.3.xsl: easy simplifications + redundant declarations drop - re-enable versioned attributes - Upstream version cs: d134f83b4f0188f6d7cd381c8cdda1a2a7c38bd5- Update to version 1.1.17 - PE: Ensure unrecoverable remote nodes are fenced even if no resources can run on them - iso8601: strftime needs fully populated struct tm (bsc#1058844) - crmd: abort transition whenever we lose quorum - PE: Ensure bundle nodes and child resources are correctly cleaned up - PE: Generic ordering for anything with bundles - PE: Default to non-interleaved bundle ordering for safety - PE: Functional inter-bundle ordering when either side has no child - PE: Basic inter-bundle ordering when both sides have children - PE: Implement bundle ordering - libpe_status: properly disallow other resources from bundle nodes - libcib: get remoteness correctly from node status - libpe_status: avoid memory leaks when creating bundle remote resource - libpe_status: disallow resources on bundle nodes - pengine: make checks a little safer - PE: Clones within bundles may also have notifications enabled - PE: Correctly implement pe_order_implies_first_printed - PE: Do not re-add a node's default score for each location constraint - PE: Bundle location constraints should only apply to the IP and docker resources - PE: Bundles: Allow clones to be colocated with bundles - PE: Bundles: Implement colocation of primitives and groups with bundles - cib,libcib: support option for IPC eviction threshold - libcib: correctly search for v2 patchset changes - libcib: always use current values when unpacking config - libcrmcluster: fix spelling error in error message - crmd: DC should update stonith fail count before aborting transition - cib: Broadcasts of cib changes should always pass ACLs check (bsc#1042054) - Upstream version cs: b36b869ca8fe74caa077c286304f653f0be117ef (Pacemaker-1.1.17)- pengine,libpe_status: revisit fencing messages - PE: Improve logging of node fencing and shutdown - PE: Fence unrecoverable remote nodes with no resources - libpe_status: propagate multiple-active=block for bundles - libpe_status: set parent for bundle components - attrd: broadcast local overrides of sync'ed attributes - crmd: attribute write-out not needed with atomic attrd - PE: Prevent use-after-free when creating bundle constraints - PE: Ensure remote nodes are fenced when the connection cannot be recovered - PE: Improved fencing logging - PE: Assume resources on remote nodes do not need to be restarted until absolutely necessary - PE: Correctly compare a point with NULL instead of FALSE - libpe_status: correctly flag remote connection resources - pengine: improve internal bundle constraints - pengine: re-phrase trace log for internal constraints - libpe_status: set #kind to "container" for bundle nodes - pengine,libpengine: avoid potential use-of-NULL - pengine: avoid use-of-NULL in bundle without primitive - libpengine: don't double score when adding first allowed node - pengine: improve detection of invalid constraints - PE: Prevent use-of-NULL when expanding containers - PE: Partially restore 62ed004 to ensure remote connections are available before attempting resource recovery - stonith-ng: Trigger on constraints added to cib (bsc#1042374) - Upstream version cs: e47bd5bc77a3d1b38589b3716f5112ed39329e7b- RA: NodeUtilization - Use xl if available (bsc#1015842) * Drop obsolete: * * bug-1015842_pacemaker-NodeUtilization-RA-1.patch * * bug-1015842_pacemaker-NodeUtilization-RA-2.patch * * bug-1015842_pacemaker-NodeUtilization-RA-3.patch * Add bug-1015842_pacemaker-NodeUtilization-RA.patch - Drop obsolete pacemaker-lrmd.h-include-libxml.patch - lrmd,pengine: remove versioned parameters from documentation and tests - lrmd,pengine: don't support versioned attributes by default - Containers: Relax docker/remote colocation constraint when appropriate - Containers: Ensure remote resources are only allocated to full cluster nodes - lrmd: Ensure verbosity options are handled after crm_log_init() - pengine: unmanage guest-container puts guest in maintenance - pengine: unique ids for meta-attributes of guest-connection - pengine: update regression tests for probes of guest-connections - pengine: have guest-node connection-resources probed - crmd: clean up throttle memory on exit - libcib: avoid use-after-free when deleting CIB connection - systemd unit files: add dependency on resource-agents-deps - pengine: Allow use of resource params and meta-params in location rules - libcrmcommon: avoid evicting IPC client if messages spike briefly - libcrmcommon: don't delay next flush by more than 5 seconds - libcib: downgrade ACL status message to trace - crmd: don't destroy election structure twice - crmd: avoid use-after-free when disconnecting from CIB - libcib: functionize destroying op callback table - crmd,libcrmcommon: update throttle when CPUs are hot-plugged - crmd: remove I/O load checks - libcrmcommon: add function to get number of CPU cores - crmd: functionize checking throttle thresholds - crmd: functionize setting throttle load target - CTS: update corosync fail patterns - crmd: check correct timer for being started - crmd: improve fencing result message - lrmd: Have pacemaker-remote reap zombies if it is running as pid 1 - pengine: add test for per-op fail count - libcrmcommon: filter attributes with '#' from XML fields - extra: Dummy stop shouldn't fail if monitor is in progress - extra: use whitespace consistently in Dummy - crmd: don't fence old DC if it's shutting down as soon-to-be DC joins - crmd: avoid DC sending offer to itself twice - crmd: don't restart transition if no fence devices - crmd: skip restart at (not above) stonith-max-attempts - crmd: allow clearing all stonith fail counts - crmd: track stonith fail counts on all nodes - crmd: forget stonith failures when forgetting node - crmd: consider target when checking stonith failures - crmd: check for too many stonith failures only when aborting for that reason - PE: Remote: Allow remote nodes that start containers with pacemaker remote inside - fencing: ignore empty 'action' parameter in fence devices - crmd: fix remove attr_id from update_attr_delegate() - Fix log showing the node status so that it is easily distinguishable from other logs - crmd: don't abandon fencing after one "no devices" failure - libcrmcommon: more useful message if can't open dump file - libcib: use new convenience function for sanitizing ID - libpe_status: implement active check for bundles - tools: update crm_mon RNG schema for bundles - crmd: add set_join_state() - crmd: fix line wrapping - crmd: update_attr_delegate() instead of set_standby() - PE: Containers: Allow custom docker run commands - logrotate: rotate pacemaker logs inside bundled containers - libpe_status: improve bundle docker defaults - tools: crm_resource should free result if re-running function returns one - libpe_status: avoid memory leak when counting failures - crmd: remove functions from crmd_utils.c - PE: Containers: Ensure replicas_per_host=1 is respected during rediscovery and startup - libcib: change the format of the state id in set_standby() - PE: Containers: Allow the internal and external ports to optionally differ - PE: Containers: Allow custom control ports when using the machine's local address - crmd: set_standby in first_join - PE: Bundles: Better support for net=host, allow the pacemaker-remote port to change - Remote: Allow the port to listen on to be specified on the commandline - libpe_status: allow more than 254 containers in a bundle - crmd,liblrmd: handle crmd-local proxy requests properly - common: Prevention of the double definition. - pacemaker_remoted: Allow compilation with glib older 2.36 - PE: Containers: Default 'replicas' to the same number of 'masters' - PE: Containers: Correctly find the right anonymous child resource running in a container - PE: Clone: Simplified allocation function - PE: Contaienrs: Better checks when assuming a container will start - PE: Preferred nodes are only accepted if their scores are equal to the otherwise best candidate - PE: Containers: Remove containers on termination by default - PE: Container: Add support for non-default docker networks and supplying external IPs to container resources - PE: Containers: Allow specifiying the maximum number of peers per host - PE: Containers: Force a sane hostname - PE: Containers: Add support for nic and netmask parameters - PE: container: Parse network and mount options - PE: Allow the graph to assume container nodes will come up and schedule actions for it - PE: Force node scores for containerized resources - PE: Basic allocation of containers - Core: Track the line number of callers of crm_(set|clear)_bit - xml: Correctly find the first child element - PE: Basic container parsing and expansion (fate#323415) - PE: Correctly test for clone functionality - Improve recovery when demote fails with OCF_NOT_RUNNING - Upstream version cs: ce86684f5d0672791e9fd3043a84f0931cdd97ea- libcrmcluster,crmd: log join phase as text rather than integer - pacemaker-remote: pacemaker_remoted shutdown while unmanaged - tools: disable agent stdout/stderr for crm_resource --validate - tools: Add "--validate" command to crm_resource - tools: crm_resource should set OCF_RESKEY_crm_feature_set - tools: make crm_failcount compatible with per-operation failcounts - tools: support clearing failure of a single operation with crm_resource -C - crmd: support clearing failure of a single operation - crmd: make clearing last failure more efficient - attrd,libcrmcommon: support clearing failure of a single operation - attrd,crmd,libraries,tools: track resource failures per-operation - tools: support crm_failcount -q as advertised - Upstream version cs: 77ea74d01bcb6b7100e1c7acab0e66e79aceaf8b- NodeUtilization: Never set hv_memory to a negative value (bsc#1015842) * bug-1015842_pacemaker-NodeUtilization-RA-3.patch - NodeUtilization: Fix mixed indentation, set executable bit (bsc#1015842) * bug-1015842_pacemaker-NodeUtilization-RA-2.patch - RA: NodeUtilization - Use xl if available (bsc#1015842) * Drop obsolete bug-1015842_pacemaker-NodeUtilization-RA.patch * Add bug-1015842_pacemaker-NodeUtilization-RA-1.patch- spec: Merge the SLE and Factory versions * enable_fatal_warnings=0- crmd: new cluster option stonith-max-attempts with default value 10 (fate#323417) - crmd: Change of the log level and addition of uuid. - crmd: use new attrd op to clear fail counts - tools: crm_resource -C should clear last-failure - libcrmcommon: add API for new attrd clear-failure operation - attrd: add more detail to legacy attrd messages - attrd: add API for clearing failures - Upstream version cs: e55d506cc390f0a0335b4ec6e365ea89da30b6b1- pacemaker.service: Add presetting TasksMax=4915 (bsc#1028138) * bug-1028138_pacemaker-pacemaker.service-TasksMax.patch- Build: lrmd: Include libxml/tree.h in lrmd.h * pacemaker-lrmd.h-include-libxml.patch- libfencing,fencing: properly remap "action" in configuration - libservices: ensure recurring actions table is created before using - libservices: improve error messages when creating operation - libservices: properly detect in-flight systemd/upstart ops when kicking - libservices: properly cancel in-flight systemd/upstart op - libservices: handle in-flight case first when cancelling an operation - libservices: prevent use-after-free when freeing an operation - libservices: ensure completed ops aren't on blocked ops list - libcrmcommon: assert if can't generate operation key - libcrmcommon: improve remote connection polling messages - crmd: clear failure only for requested node - crmd: improve message when clearing failures - pengine,libpe_status: make failcount clearing messages more helpful - pengine,libpe_status: don't clear same fail-count twice - cib: properly mark variable as volatile - libcib: avoid memory leak in query_node_uuid() - tools: avoid NULL dereference in crm_resource debug message - cib,libcrmcommon,lrmd: handle IP addresses better in messages - tools: crm_attribute should prefer node name from environment - libcrmcommon: Correctly delete XML comments according to their positions (bsc#1024037) - libcrmcommon: Correctly compare XML comments to prevent crmd from getting into infinite election loop (bsc#1024037) - crmd,libcrmcluster: minor log message improvements - tools: avoid deprecated function in notifyServicelogEvent - libcrmcommon,pengine,tools: pass local node name to resource agents - use callback instead of sync call - libcib: make querying node uuid more efficient - tools: allow regular expression with crm_attribute - attrd: support regular expressions in legacy attrd - attrd: support Pacemaker Remote node attributes in legacy attrd - use status scope to start node in standby mode - attrd: ignore unsupported requests in legacy attrd - attrd,crmd: implement peer remove requests in legacy attrd - crmd: don't clear remote node transient attributes unnecessarily - crm_mon: protect against non-standard or failing asctime - libservices(sync): partially prevent killing foreign process - libservices (sync): ensure no zombie is left behind - cib: improve re-sync handling - tools: implement crm_failcount command-line options correctly - tools: use correct regular expression for fail counts in crm_resource - cib: never disable legacy mode with corosync 1 stacks - cib: improve warning when legacy diff fails - libcrmcommon: ensure filename is not NULL before opening - crmd: be more resilient when checking an LRM command's "from" - crmd: improve crmd's LRM-related log messages - tools: properly ignore version with crm_diff --no-version (bsc#888726) - Ability to start node in standby (fate#323416) - Upstream version cs: a7825f4f0a8db272d1ce0b1f93e8044cbcaa5144- libservices: properly watch writable DBus handles - tools: don't reference hidden parameter in crm_resource help text - Alert: Set SNMP_PERSISTENT_DIR directory for the snmp-trap tool. - dbus: Prevent lrmd from hanging on dbus calls (bsc#1015264) - spec: add %check to run a subset of tests on rpmbuild - crmd: update cache status for guest node whose host is fenced - pengine: consider guest node unclean if its host is unclean - pengine: create a pseudo-fence for guest node recovery - pengine: guest node fencing doesn't require stonith enabled - pengine: remove unnecessary assert - mcp: Correction of the difference in access permission setting. - stonith_admin: Addition of the list-targets option. - stonith: Check for missing params in new device and dup - libservices: treat systemd service reloading as OK (bsc#1059187) - crmd: increase severity when fencing didn't happen (bsc#1011240) - rng: Create resources-2.7.rng to update template class validation - libcrmcommon: Don't report error if the output file isn't syncable - crmd: bump feature set - pengine: disable migration for versioned resources - add versioned parameters support - Upstream version cs: 2817a2081e9e70e7412f0d0a253495611afab55e- wd: Fix to not compare NULL when environment variable is not set - mcp,pacemaker_remote: order after time-sync - configure: fix fouled parameter expansion * Drop obsolete pacemaker-configure-systemd-detection.patch - xml: rng: Keep score-attribute{,-mangle} in the existing RelaxNG schema files for graceful upgrades - Upstream version cs: 94ff4df51a55cc30d01843ea11b3292bac755432 (Pacemaker-1.1.16)- RA: NodeUtilization - Use xl if available (bsc#1015842) * bug-1015842_pacemaker-NodeUtilization-RA.patch- spec: Prevent overwriting existing sysconfig files by conditionally running %fillup_only (bsc#1022807, bsc#980341)- spec: cts brings an RA that needs python-systemd- Explicitly own %{_defaultdocdir}/%{name}.- Revert "Build: configure: make systemd detection akin to + before Upstart one" * pacemaker-configure-systemd-detection.patch - libcrmcommon: fix CVE-2016-7035 (improper IPC guarding) (bsc#1007433) - sysconfig: minor tweaks (typo, wording) - various: issues discovered via valgrind and coverity - attrd_updater: fix usage of HAVE_ATOMIC_ATTRD - Upstream version cs: b6f251a13fadca0cb74702b0c007a55275c8ea09- Rebase: * pacemaker-NodeUtilization-RA.patch - extra: add resource agent for managing a node attribute - crmd: cl#5185 - Record pending operations in the CIB before they are performed (bsc#1003565) - ClusterMon: fix to avoid matching other process with the same PID - mcp: improve comments for sysconfig options - spec: require libqb >= 0.13.0 - tools: crm_standby --version/--help should work without cluster - spec: reorganize so %pre etc. blocks are self-contained - spec: require python >= 2.6 - spec: comment better - libpengine: ensure child is not null before looking up value - libpengine: only log startup-fencing warning once - Upstream version cs: 722276c442bf023931842313bfe0dfb7d90a7c15- pacemaker.service: do not mistakenly suggest killing fenced - pacemaker.spec: consume "systemdunitdir" via %_unitdir - libcrmcommon: report errors consistently when waiting for data on connection (bsc#986644) - libservices: use DBusError API properly - remote: Correctly calculate the remaining timeouts when receiving messages (bsc#986644) - libfencing: report added node ID correctly - crm_mon: Do not call setenv with null value - pacemaker_remote: allow remote clients to timeout/reconnect - pengine: Do not fence a maintenance node if it shuts down cleanly (bsc#1000743) - install README in doc instead of now-removed AUTHORS file - ping: Avoid temporary files for fping check (bsc#987348) - all: clarify licensing and copyrights - schemas.c: treat CIB with unrecognized validate-with better - schemas.c: avoid downgrade validate-with in a corner case - xml.c: better info in cli_config_update on no validation success - fix infloop when no schema validates on update_validation - xml.c: internal self-or-less reference inflicted infloop guard - crmd: Resend the shutdown request if the DC forgets - ping: Avoid temp files in fping_check (bsc#987348) - crmd: Ensure the R_SHUTDOWN is set whenever we ask the DC to shut us down - crmd: clear remote node operation history only when it comes up - libcib,libfencing,libtransition: handle memory allocation errors without CRM_CHECK() - tools: make crm_mon XML schema handle resources with multiple active - tools: make crm_mon resources section more consistent - crmd: bump feature set - pengine: set OCF_RESKEY_CRM_meta_notify_active_* for multistate resources - LSB init: try to be a little more compliant - pengine: avoid null dereference in new same-node ordering option - lrmd,libcluster: ensure g_hash_table_foreach() is never passed a null table - crmd: don't log warning if abort_unless_down() can't find down event - lib: Correction of the deletion of the notice registration. - stonithd: Correction of the wrong connection process name. - crmd: Keep a state of LRMD in the DC node latest. - pengine: avoid transition loop for start-then-stop + unfencing - libpengine: allow pe_order_same_node option for constraints - pengine: avoid sisyphean score-attribute-mangled parsing - xml: score-attribute{,-mangle} has no meaning for rsc_colocation - Upstream version cs: 4cce2b26f6f468c342adb24bf74234a12a0070c2- cts: Restart systemd-journald with "systemctl restart systemd-journald.socket" (bsc#995365) * bug-995365_pacemaker-cts-restart-systemd-journald.patch- libcrmcommon: properly handle XML comments when comparing v2 patchset diffs - crmd: don't abort transitions for CIB comment changes - libcrmcommon: log XML comments correctly - libcrmcommon: remove extraneous format specifier from log message - crm_mon: Avoid logging errors for any CIB changes that we don't care about (bsc#986931) - crmd: When node load was reduced, crmd carries out a feasible action. - Upstream version cs: 58fef06198fef17873d0d2e2d0cc5c7db73c5724- ping: Log sensible error when /tmp is full (bsc#987348) - crm_mon: Do not log errors for the known CIB changes that should be ignored (bsc#986931) - logging: Enable synchronous logging when blackboxes are enabled - libpengine: print target role and blocked status in XML output - tools: add maintenance mode and disabled/blocked resources to crm_mon XML/HTML output - tools: break up long lines in crm_mon console output - libservices: include socket units when listing all systemd agents - fencing: fence_legacy - Search capable devices by querying them through "list" action for cluster-glue stonith agents (bsc#986265) - extra: correct quoting of timestamp-format in alert-snmp-example - pengine,tools: Display pending resource state by default when it's available (bsc#986201) - rng: Allow rsc-pattern in locations for version 2.6 - pengine: Expand regexp references in location constraints - pengine: Allow to set base score for progressive node health strategy - systemd: Allow unit names ending in .socket. - watchdog: Correction to do to change action of the system reboot by fail_fast - Upstream version cs: 630d0d112092042b6f79c2a02bb442e82fee93ec- Remove conditionals that are not really needed as they always kept the values - Remove the cman conditional as we do not even have the dependencies to build with it in OBS - Convert deps to pkgconfig style ones and remove deps that are not mentioned by the testsuite or the configure.ac- Update to version 1.1.15 - crmd: mention that graceful remote shutdowns may cause connection failures (bsc#981489) - alerts - drop 5min timeout to 30s since it is configurable now - Bug bz#5292 - crmd: wait for alerts to finish - libais,libcluster,libcrmcommon,liblrmd: don't use %z specifier - alerts: ensure sample alert agents handle undefined recipient - tools: crm_resource -T option should not be hidden anymore - PE: Correctly update the dependant actions of un-runnable clones - alerts: make timestamp-format-string work properly if strftime-escape is the last character - extra: make alert-file-example cope with spaces in timeformat-string - attrd,ipc: Prevent possible segfault on exit (bsc#986056) - alerts: fix SMTP recipient defaulting - tools: properly handle crm_resource --restart with a resource in a group - tools: don't assume all resources restart on same node with crm_resource --restart - tools: avoid memory leaks in crm_resource --restart - tools: remember any existing target-role when doing crm_resource --restart - tools: correctly count starting resources when doing crm_resource --restart - Upstream version cs: e174ec84857e087210b9dacee3318f8203176129 (Pacemaker-1.1.15)- Clean-up with spec-cleaner - Drop heartbeat conditions, no heartbeat around - Sort CMAN conditionals to be actually logical - Run fdupes to not waste so much space - Add logrotate to reqs of pacemaker-cli - Cleanup rpmlintrc to contain only bare needed minimum - Run basic sanity check in %check phase- Drop sysvinit support we now run on sle12+ only - Cleanup the define conditionals that are never used - Drop profiling and coverage options it is not enabled by default and better to run separately- libcrmcommon: really ensure crm_time_t structure is fully initialized by API calls - extra: correct syntax error in sample alert script - crmd: avoid timeout on older peers when cancelling a resource operation - crmd: use proper resource agent name when caching metadata - crmd: avoid memory leak when sending fencing alert - liblrmd: avoid memory leak when closing or deleting lrmd connections - extra: improve determination of successful monitors in SNMP alert script - tools: avoid memory leak when crm_mon unpacks constraints - pengine: avoid use-after-free with location constraint + sets + templates - pengine: better error handling when unpacking sets in location constraints - pengine: avoid memory leak when invalid constraint involves set - Build: rename sample alert scripts and install them in datadir - pengine : Correction of the record judgment of the failed information. - Upstream version cs: dd46368eead0d756735216a4bc765466b99274fc- alert-helpers: some fixes in pcmk_smtp_helper.sh - libpengine: log message when stonith disabled, not enabled - pengine: only set unfencing constraints once - tools: don't require node to be known to crm_resource when deleting attribute - libcrmcommon: ensure crm_time_t structure is fully initialized by API calls - attrd: don't leak memory when returning due to malformed update request - crmd: always free result of crm_itoa() - xml: adapt crm_mon.rng per recent reorder of the summary elements - Upstream version cs: 1a05449500f015414b6df68b6d4feb64b713f533- Rebase: * bug-977201_pacemaker-controld-self-fencing.patch - pengine: properly order stop actions relative to stonith - crm_resource: don't pretend that target-role:started would prevent promotion - crm_mon: consistently print ms resource state - controld: use "stonith_admin -H '*' -V" (bsc#977201) - stonith_admin: allow -H '*' to show history for all nodes (bsc#977201) - controld: fix "[: -eq: unary operator expected" issue from PR 1022 (bsc#977201) - extra: Support of the task designation of a resource and the fencing. - extra: Change pcmk_snmp_helper.sh (2). - Upstream version cs: 6a8c1e9d35c65cbfd4019cfe797cb7bb9dfd4322- controld: Prevent unwanted self-fencing if "stateful_merge_wait" state of dlm is not available (bsc#977201) * bug-977201_pacemaker-controld-self-fencing.patch- libservices: clean up non-signalfd code paths - spec: fence_pcmk only eligible for Pacemaker+CMAN - crmd: Acknowledge cancellation operations for remote connection resources (bsc#976865) - controld: improve DLM check with stateful_merge_wait (bsc#977201) - attrd, libcrmcommon: validate attrd requests better - crmd: clear remote node transient attributes on disconnect (bsc#981489) - Revert "Fix: attrd: Correctly implement mass removal of a node's attributes" (bsc#981489) - crm_mon: Fix time formatting on x32 - resources: use OCF version tagging correctly - libcommon: crm_procfs_pid_of() would always return last /proc entry checked - crmd: correctly dig into cib-query-answer if alerts section is present timestamp-format defaults to "%H:%M:%S.%06N" - crmd: Take start-delay into account for the timeout of the action timer (bsc#977258) - libservices: make systemd override file world-readable to avoid log warning - libcrmcommon: correct directory name in log message - Log: make crmd messages more user-friendly - Log: make messages in common quorum/fencing situations more user-friendly - Log: make shutdown messages more user-friendly - pengine: lf#2560/lf#2588 - Correctly set the environment variable "OCF_RESKEY_CRM_meta_timeout" when "start-delay" is configured (bsc#977258) - Log: make operation messages more user-friendly - Log: make startup messages more user-friendly - services: Correctly clean up service actions for non-dbus case - uninitialized use of nano_digits - attrd: Update also dampens when synchronizing attributes (bsc#977846) - Upstream version cs: 389294fd1ebefddad67fff51306f585b758ca860- Rebase: * pacemaker-Wno-format-signedness.patch - RA: SysInfo - Reset the node attribute "#health_disk" to "green" when there's sufficient free disk (bsc#975079) - pengine: Organize order of actions for slave resources in anti-colocations (bsc#977800) - attrd: Fix the synchronization of attributes (bsc#977846) - pengine: Organize order of actions for master resources in anti-colocations (bsc#977800) - pengine: Respect asymmetrical ordering when trying to move resources (bsc#977675) - fencing: Record the last known names of nodes to make sure fencing requested with nodeid works (bsc#974108) - crmd: first implementation of integrated multi-agent, multi-target alerting mechanism (fate#320855) - ping resource: Use fping6 for IPv6 hosts (bsc#976271) - pengine: Consider resource failed if any of the configured monitor operations failed (bsc#972187) - ping resource: avoid undefined func w/ OCF_FUNCTIONS=/dev/null - spec: make Publican docs not depend on pre-existing packages - cib/fencing: Set status callback before connecting to cluster (bsc#974108) - xml: use spaces instead of tabs in schema files - extra: Support of the dampen change by RA. - Upstream version cs: 9e382568ac3cd54c222496501088ab3fc158b2e2- crmd: update cluster state in CIB after fencing an unseen node - crmd: don't abort transition for expected remote node shutdown - libtransition: potential memory leak if unpacking action fails - Upstream version cs: 5a6cdd11b4f93b4d55e1b2654078018c339931d4- attrd: crash on exit if initialization fails - build: fix scalability regression - pengine: Suppress assert if a stateful clone is not being demoted/stopped (bsc#971129) - attrd: Support of the dampen change by attrd. - PE: Correctly handle the ordering of demote actions for failed and moving containers - Upstream version cs: d076e9dbf9827f7801c89c6d635df370aeca5e90- crmd,tools: Set attributes for remote nodes directly into cib if it's legacy attrd (bsc#967775) - libcib: Correctly determine the node type (bsc#967775) - resources: match agents' default for globally_unique to pacemaker's - crm_mon: Help admins identify why resources are not being started or responding to commands - PE: Memory leak - crm_resource: Prevent segfault when --resource is not correctly supplied for --restart command - Build: Create CRM_CORE_DIR during installation - Upstream version cs: eb89393a82eb41ff50d041b91765ccac52e873e0- cpg: Ensure group name is never unset - remote: Simplify calls to accept() and inet_ntop() by using "struct sockaddr_storage" (bsc#964183) - remote: cl#5269 - Notify other clients of a new connection only if the handshake has completed (bsc#967388, bsc#1002767, CVE-2016-7797) - remote: Correctly display the IP address of the remote client (bsc#964183) - spec: declare also BSD license as suitable - libservices: Add error handling for pipe() failed. - libservices: Check resource agent is executable or not before pipe open. - crmd: Prevent use-after-free when an unexpected remote client takes over (bsc#964183) - pacemakerd: Correction of the stonithd process judgment of pacemakerd. - crmd: Do not turn on stonith-watchdog-timeout automatically if SBD is detected - remote: Correctly check for SBD configuration consistency - resources: Fix state file metadata in Dummy, Stateful and HealthCPU resource agents - systemd: Modified so that the cluster to stop before the rsyslog - common: Correctly locate sbd via its pidfile - common: Assume processes are active if we get EACCESS - Fencing: Simplify watchdog integration - crmd: Only poopulate stonith-watchdog-timeout if SBD is active - remote: Ensure SBD is consistently configured on remote nodes - remote: Allow cluster and remote LRM API versions to diverge (bsc#1009076) - cib: Do not send notifications when the dryrun flag is present - Upstream version cs: cf67796823c4429714857411e614cfacfbc59d89- crm_shadow: fix broken --display command - ipc: Respect the parameter of pick_ipc_buffer() but don't let it affect the global value - libcluster: crm_peer_uname() should return NULL if uuid is invalid - remote: recover from remote node fencing more quickly - crmd: update node state for migrated pacemaker_remote nodes - crmd: update node state for stopped pacemaker_remote nodes - crmd: update node state for started pacemaker_remote nodes - crmd: add new message type for updating pacemaker_remote node state - libcluster: set remote peer cache state based on CIB node state - libcluster: send notifications when pacemaker_remote nodes are started - crmd: report pacemaker_remote node state in CIB status section - Upstream version cs: c851a117bc77bdefe15181a7d753f1aed867cde6- spec: Move the common directories under /var/lib/pacemaker into pacemaker-cli package - liblrmd: Prevent potential use-after-free (bsc#964183) - crmd: Disconnect the relevant remote proxies as well when disconnecting a remote node (bsc#964183) - crmd: Prevent potential use-after-free (bsc#964183) - liblrmd: Prevent potential use-after-free issues (bsc#964183) - PE: Fix conditions for internal sanity check (bsc#971129) - attrd: ensure remote nodes are in correct peer cache (bsc#981489) - crmd: set remote flag when gracefully shutting down remote nodes (bsc#981489) - fencing: Correctly track active stonith actions (bsc#938545) - fencing: Functionize adding and removing active pids of device (bsc#938545) - crm_shadow: Do not invoke shells with --noprofile option other than bash (bsc#961392) - lib/common: check return value of dlsym() and not dlerror() - lib/ipc: allow PCMK_ipc_buffer to be smaller than default max sizes - lib/services: use self-pipe sigchld handling when signalfd isn't available - spec: associate subpackage with correct licenses - spec: rely on system-wide RPM macros if available - spec: C++ compiler is not something currently needed - RHBZ#1286316: Do an ordered shutdown of systemd resources - header == NULL when parsing compressed message - attrd: Correctly implement mass removal of a node's attributes (bsc#981489) - attrd: Hook up the client name so we can track requests - crmd: Set the shutdown transient attribute in response to LRMD_IPC_OP_SHUTDOWN_REQ from remote nodes (bsc#981489) - PE: Honor the shutdown transient attributes for remote nodes (bsc#981489) - pacemaker_remote: support graceful stops (bsc#981489) - crmd: support graceful pacemaker_remote stops (bsc#981489) - lrmd,liblrmd: add lrmd IPC operations for requesting and acknowledging shutdown (bsc#981489) - fencing: Support concurrent fencing actions on each device (bsc#938545) - pengine: Support concurrent fencing (bsc#938545) - Upstream version cs: c54f10440a7bba5a1491ea8506925c7d6d9ca2a3- Update to version 1.1.14 - fencing: free only after last usage makes coverity happy - crmd: 0 is a valid fd makes coverity happy - tools: crm_resource compile issue - crm_resource --list-agents: don't print uninitialized memory - extra: update SNMP MIB with new pacemakerTrap OID containing pacemakerNotificationTrap - fencing, libfencing: remap fence agent error codes before async callback (bsc#962309) - libfencing: topology is not used - fencing: topology is not used - libcrmcommon: when caching attrd connection, cache connection flags as well - cts: Plugin-based cluster has its own PacemakerUp pattern - Upstream version cs: 70404b0e5ecbe5e51d07c6c2233eea640cbd720a (Pacemaker-1.1.14)- Rebase: * bug-806256_pacemaker-log-level-notice.patch * bug-728579_pacemaker-stonith-dev-id.patch - core: Mistake of the parameter order. - RHBZ#1287315: stonithd: Trigger cib_devices_update in case of deletion of just an attribute - CLBZ#5253: stonithd: Do not intermingle stdout & stderr coming from stonith-RAs (bsc#962309) - resources: allow for top output with or without percent sign in HealthCPU - controld: Return error when DLM status is wait fencing (RHBZ#1268313) - crmd: Don't update cluster/peer CIB fields when processing stonith results - Upstream version cs: e16447de89d25db3b3578c7e080c1a4c2f85806f- ping: Clarify the description of host_list parameter in ping metadata (bsc#956459) - systemd: Prevent segfaul when logging failed operations - systemd: The underlying systemd calls default to 90s for their timeouts - cib: Do not terminate due to badly behaving clients - Correctly check for recycled PIDs in crm_pid_active - crmd: Consider only fence and shutdown transition events to be "down" events - pengine: Support of multiple-active=block for resource groups (bsc#942491) - crmd: use 300s timeout with notification scripts, not 300ms - stonith_admin: add ability to target topology by pattern or attribute - fencing,libfencing: add API support for targeting topology by pattern or attribute - Upstream version cs: a7d6e6b56fd2779a07970df7de4e0fb0b22742d3- crm_report: Call "crm report" if available (bsc#950483)- fencing: crm_resource --show-metadata drops documentation strings for fencing agents (bsc#950375) - Upstream version cs: 6f22ad7312b703289da5d24e918a78117a0825e1- CTS: add "try except" to deal with errors that raw_input gets EOFError and add "--yes" to skip interaction (bsc#953192) - Upstream version cs: 577898dc4ac1efdb5989a996cb5f9ac60ed2eb7a- crm_resource: Correctly clean up all children for anonymous cloned groups (bsc#950128) - services: Directly add operations into in-flight list in the execution functions (bsc#952874) - systemd: Return PCMK_OCF_UNKNOWN_ERROR instead of PCMK_OCF_NOT_INSTALLED for uncertain errors on LoadUnit (bsc#952884) - systemd: Return FALSE for systemd_mask_error() if it only maps an error instead of masking one (bsc#952884) - dbus: Correctly return the result for pcmk_dbus_find_error() no matter if there's a DBusError passed in (bsc#952884) - services: Prevent potential use-after-free when trying to add an operation into in-flight list (bsc#952874) - systemd: Directly return an error if the connection to System DBus is closed (bsc#952874) - services: Correctly determine if operations are in-flight (bsc#952874) - systemd: Reconnect to System DBus if the connection is closed (bsc#931271) - lrmd: Finalize all pending and recurring operations when cleaning up a resource (bsc#950450) - fencing: don't poke peers when remote node status changes - attrd: don't try to communicate with attrd on a remote node - libcluster,crmd: never update join info or processes for remote nodes - cib: Increased paranoia when peer updates fail to apply in compatability mode - crmd: do not accept remote peer data as enough for startup - crmd: remote nodes can't be DC so never add them to stonith cleanup list - libcluster: never autoreap from remote peer cache - crmd: improve generation of node state - CTS: get Reattach test working again and up-to-date (bsc#953192) - libcommon: Ignore CDATA of metadata of the resource. - cib: Downgrade the log message on forwarding CRM_OP_NOOP requests from INFO to DEBUG (bsc#949267) - fencing: Return a provider for the internal fencing agent "#watchdog" instead of logging an error (bsc#949441) * Drop bug-949441_pacemaker-fencing-provider-internal.patch which has been merged upstream - Upstream version cs: 7bd00f3f3010bc10d13b87e2ff501b597ea6ca03- fencing: Return a provider for the internal fencing agent "#watchdog" instead of logging an error (bsc#949441) * bug-949441_pacemaker-fencing-provider-internal.patch - spec: Move the normal resource agents into pacemaker-cli package (bsc#947197) - spec: Move logrotate configuration file into pacemaker-cli package (bsc#947197) - spec: Move attrd_updater, crm_attribute and crm_master into pacemaker-cli package (bsc#947197) - spec: Move xml schema files and PCMK-MIB.txt into pacemaker-cli package (bsc#947197)- crm_resource: Correctly observe --force when deleting and updating attributes (bsc#948197) - crm_resource: Correctly delete existing meta attributes regardless of their position in the heirarchy (bsc#948197) - fencing,libfencing: use level tag consistently in internal XML - crm_resource: Correctly update existing meta attributes regardless of their position in the heirarchy (bsc#948197) - crmd: properly detect CIB update failures for remote nodes - cibadmin: Prevent potential use-of-NULL in print_xml_output() (bsc#947180) - Fencing: The device list is expected to be comma separated - Tools: Do not send command lines to syslog (bsc#986676) - Tools: Repair the logging of 'interesting' command-lines - PE: resolve memory leak - libfencing: make topology level removal compatible with latest stonithd API - fencing: parse from correct XML location when registering/unregistering topology - tools: improve error handling when modifying configuration - crmd,libcrmcommon,libservices,tools: potential memory leaks (bsc#948197) - crmd,fencing: avoid potential null dereference in string searches - typo: OPSTIONS -> OPTIONS in crm_mon.sysconfig - cib: Check if the configuration changes with cib_config_changed() only for v1 diffs (bsc#946224) - liblrmd: don't print error if remote key environment variable unset - libcib: properly handle temporary file - libcrmcommon: better validation of environment variable value - crmd: avoid potential null dereference - libcib: potential user input overflow - controld: replace bashism - PE: drop probe_complete actions - PE: Allow resources to start and stop as soon as their state is known on all nodes - Fencing: Correctly construct simple topologies with stonith_admin - Fencing: Correctly remove topologies and detect invalid entries - remote: Revise a misleading message in the ocf:pacemaker:remote resource agent (bsc#946332, bsc#967383) * Drop bug-946332_pacemaker-resource-agent-remote-message.patch which has been merged upstream - remote: Correctly display the usage of the ocf:pacemaker:remote resource agent (bsc#946332, bsc#967383) * Drop bug-946332_pacemaker-resource-agent-remote-usage.patch which has been merged upstream - libcib: find_nvpair_attr_delegate: check buffer overflow - libcib: find_nvpair_attr_delegate: check alloc failure - Upstream version cs: 7906df92a713052db1edae851579ea229d8a5393- remote: Revise a misleading message in the ocf:pacemaker:remote resource agent (bsc#946332, bsc#967383) * bug-946332_pacemaker-resource-agent-remote-message.patch - remote: Correctly display the usage of the ocf:pacemaker:remote resource agent (bsc#946332, bsc#967383) * bug-946332_pacemaker-resource-agent-remote-usage.patch- crm_resource: Allow the resource configuration to be modified for --force-{check,start,..} calls - Fencing: Correctly parse 'by-attribute' fencing levels - Fencing: Use dedicated fields for fencing level patterns and attribute matching - pacemaker_remote: memory leak in ipc_proxy_dispatch() - crmd: don't add node ID to proxied remote node requests for attrd - membership: Safely autoreap nodes without code duplication - PE: Resolve memory leak - pacemakerd: Do not forget about nodes that leave the cluster - corosync: Display node state and quorum data if available - crmd: Implement reliable event notifications - extra: Added snmp trap of type "NOTIFICATION-TYPE" to MIB and snmp helper script - Date: Correctly set time from seconds-since-epoch - PE: Bug cl#5247 - Imply resources running on a container are stopped when the container is stopped - Upstream version cs: 20c2178f076ff32fdf9ba9a467c193b8dac2f9e5- lrmd: Upgrade start/finish log tags from INFO to NOTICE (bsc#943295) * bug-943295_pacemaker-lrmd-log-notice.patch- services: Reduce severity of noisy log messages (bsc#943319) - xml: Mark xml nodes as dirty if any children move (bsc#942382) - pengine: The failed action of the resource that occurred in shutdown is not displayed. - tools: memory leak in crm_resource - crm_resource: Correctly check if a resource is unmanaged or has a target-role - fencing: add ability to target by attribute - crmd: Resolve memory leak in remote_proxy_cb() - ipc: Do not constantly increase suggested size for PCMK_ipc_buffer every time we find it's insufficient (bsc#940992) - Upstream version cs: e8888b98cd7dbdfb986c1a46bdb4b113b96e914f- crm_resource: Indicate common reasons why a resource may not start after a cleanup - pengine: Ensure fencing of the DC precedes the STONITH_DONE operation - crm_resource: Compensate for -C and -p being called with the child resource for clones - ipc: Fix output formats (bsc#940992) - fencing: ensure "required"/"automatic" only apply to "on" actions - fencing: Remove unnecessary casts (bsc#940711) - crm_simulate: Prevent segfault on arches with 64bit time_t (bsc#940711) - ipc: Correctly compare values for the size of ipc buffer and prevent suggesting a negative value when it's insufficient (bsc#940992) - xml: Reduce severity of noisy log message (bsc#950551) - crm_resource: Correctly clean up failcounts for inactive anonymous clones - crmd: Avoid cancelling transitions when we tell nodes to shutdown - systemd: drop legacy SysVStartPriority from service units - crm: Set the attribute from remote node. - Upstream version cs: 4ad07f5f464c84b80c739922bd9fd708e8d36e5a- dbus: Remove redundant ref/unref of pending call records - stonithd: potential device list corruption - cib: don't destroy peer cache in peer status callback - systemd: Ensure pending structs are correctly unreferenced - systemd: Track pending operations so they can be safely cancelled - crmd: memory leak in CIB callbacks - attrd: memory leak in legacy attrd's CIB callback - attrd: memory leak in CIB callback - libcib: allow free function for user data supplied to CIB callbacks - xml: Prevent use-of-NULL in crm_xml_dump() - crm_mon: Memory leaks - Upstream version cs: 3fb7f71bf9ca2a3d6e1187fa3b74c7841d6af5a7- pengine: properly handle blocked clone actions - pengine: Correctly bypass fencing for resources that do not require it - libservices: potential memory leaks when executing systemd actions - libservices: memory leak in DBus-related log messages - crmd: memory leaks in recurring operation history - pengine: Addtion of the clone resource clone-min metadata option - Upstream version cs: 3d781d3fe61504c841e3c89b2e8ccff8195d4af6- Rebase bug-806256_pacemaker-log-level-notice.patch - Build: Update version numbers to 1.1.13 in version.m4 and sample spec file - fencing: Broadcast uname as soon as a peer's state has changed (bsc#938410) - fencing: remap sequential topology reboots to all-off-then-all-on - fencing: remap sequential topology reboots to off - fencing: support remapping reboots when processing fencing query results - fencing: treat remapped reboots as reboots when appropriate - fencing: support remapping reboots in fencing query results - crmd: check for errors when searching for CIB daemon's load file - libcib,libfencing,tools: memory leaks from xmlGetNodePath() - attrd: use-after-free in attrd_client_update() - fencing: memory leak when searching for a target's fencing topology - lrmd: memory leak when freeing command structure - libcluster: work around peer cache destruction in client status callbacks - fencing: add support for operation phases to device properties - fencing: add support for operation phases - crmd: Do not enforce restart for resources that support reload and don't support any unique parameters - crmd: Do not enforce restart for changes of non-unique parameters - cts: change the stack from openais (white-tank) to corosync (plugin v0) in set_stack of environment.py (bsc#936149) - Upstream version cs: bd8c4b5a30c9cacd0257fe50ab50d3a6436db42a- crmd: Make resource_supports_action() really general - crmd: Remove a duplicate invocation of snprintf() - pengine: clear failures after reconnect_interval expires - RA: Prevent an error message on stopping "Dummy" resource - PE: Ignore comment blocks when unpacking the cib - fencing: use "off" timeout when remapping "reboot" to "off" - fencing: do not set call options twice in query - crmd: don't synthesize op failures during shutdown - lrmd: prevent double free after unregistering stonith device for monitoring (bsc#1035822) - libcommon: crm_ipc_get_fd() must set errno on error - PE: Record the execution date in PE files so we can re-use it in crm_simulate - pengine: allow guest remote nodes using containers/vms to be nested in a group resource - pengine: Resolve memory leak in expand_notification_data() - cib: Prevent use-after-free and return -EINVAL when attempting to delete the whole "/cib" (bsc#934609) - cib: Prevent use-after-free when invoking "cibadmin --delete-all --xpath" (bsc#934609) - crmd: Prevent segfault when erasing resources from disconnected remote nodes - pengine: do not timeout remote node recurring monitor op failure until after fencing - crmd: No need to re-process actions we've already marked as failed - crmd: All pseduo ops must be allowed to complete - crm_simulate: Optionally include action IDs in the dot graph - fencing: properly decide whether a topology fencing device has been found - fencing: properly sort peers by number of fencing devices found - crmd: Record actions in the CIB as failed if we cannot execute them - pengine: do not stop notify a fenced node that the rscs on the fenced node stopped - pengine: fixes segfault in pengine when fencing remote node - remote: do not fail operations because of a migration - remote: handle merging duplicate recurring monitors for connection rsc - pengine: cl#5235 - Prevent graph loops that can be introduced by "load_stopped -> migrate_to" ordering - PE: Exclude nodes which don't match any exclusive discovery rules - Log: improve IPC connection error messages - Log: make syslog less noisy - lrmd: cancel currently pending STONITH op if stonithd connection is lost - fencing: Correct the all_topology_devices_found() implementation - crmd: Pre-emptively fail in-flight actions when lrmd connections fail - PE: Include a list of all and available nodes with notifications - lrmd: set recv timeout upper bound for tls connections - services: prevent recurring monitors from colliding with other operations - crmd: handle resources named the same as cluster nodes - crmd: make actions incompletable after remote-node fails - crm_simulate: Correctly invoke the policy engine library - libcluster: overhaul peer cache management - crmd: Prevent use-of-NULL - crm_report: Enable password sanitizing by default - PE: Keep the size of the secure list small in the cib - PE: Reduce noise when sanitized policy engine files are replayed - attrd: handle removals of cluster peers and remote peers consistently - libcluster: avoid possibility of invalidating a hash table iterator - membership: Ensure peer cache management supports all stacks - libcluster: do not re-add peer entries for exiting nodes - PE: Skip unrunnable actions when one-or-more is in effect - PE: Ensure recurring monitor operations are cancelled when clone instances are de-allocated - systemd: No need to trigger assert if cannot obtain an unit (bsc#931271) - dbus: Use operation timeout for dbus reply timeout (bsc#931271) - fencing: correct choice of fencing topology level - crm_shadow: Fix "crm_shadow --diff" (bsc#931166) - cib: Calculate and add digest for a patchset after accepting changes for the target xml (bsc#931114) - remote: enable reloads for select remote connection options - crmd: fence remote node after connection failure only once - remote: reconnect_delay option for remote nodes to delay reconnect after fence - tools: ignore stderr from crm_mon when running via systemd - xml: update RelaxNG schema for crm_mon XML output - Fencing: Correctly handle changes to the fencing topology - fencing: Allow complex configurations to apply to multiple hosts - tools: Update regression tests for ACL fixes - tools: improve failed actions display in crm_mon - tools: implement printing tickets in crm_mon HTML/XML output - tools: implement printing negative location constraints in crm_mon HTML/XML output - tools: implement printing operations and failcounts in crm_mon HTML/XML output - tools: implement printing node attributes in crm_mon HTML/XML output - tools: improve cluster summary display in crm_mon - tools: improve guest node output in crm_mon - tools: prettify plaintext output - tools: prettify crm_mon HTML output - tools: prettify crm_mon --simple-status output - crm_report: Allow log file discovery to be disabled - crm_resource: Support debugging promote and demote operations - fencing: Allow semi-colon delimiter for pcmk_host_list - Upstream version cs: ef86b494a411ce920eb18b9b6541a3a0425a41e0- Update to version 1.1.13 - Build: Update library versions - Build: Move new struct members to the end for backwards compatibility - Fencing: Gracefully handle invalid metadata from agents - Upstream version cs: 6052cd16c2f455809f8088af76ce86483bf98353 (Pacemaker-1.1.13)- pengine: cl#5130 - Only check the capacities of the nodes that are allowed to run the resource (FATE#313105) - cib: Correctly add "update-origin", "update-client" and "update-user" attributes for cib (bsc#931177) - fencing : Correction of the log output of the practice node of stonith. - Upstream version cs: a0449d443fa5c834207def5fe36a117a53c334d6- xml: Correctly create v1 patchsets when deleting attributes (bsc#931170) - xml: Prevent potential use-of-NULL (bsc#929960) - Upstream version cs: 677f53216662d121a47b4c7683ec3749c614437e- cib: No need to enforce cib digests for v2 diffs in legacy mode (bsc#929960) - cib: Ability to upgrade cib validation schema in legacy mode (bsc#929960) - xml: Do not dump deleted attributes (bsc#929960) - cib: Revert d153b86 to instantly get cib synchronized in legacy mode (bsc#929960) - cib: Enable cib legacy mode for plugin-based clusters (bsc#929960) - Build: CRM_STATE_DIR is created dynamically when needed - Tools: Repair expected output for ACLs - Build: Prevent rpm packaging conflicts - pengine: cl#5130 - Choose nodes capable of running all the colocated utilization resources (FATE#313105) * Drop obsolete pacemaker-colocated-utilization.patch - Upstream version cs: 0b79da3e73fe2ced8b9602aa59d55873d857b3e7- crmd/pengine: implement on-fail=ignore without allow-fail (bsc#981731) - pengine: Prevent use-after-free in sort_rsc_process_order() (bsc#930368) - crmd: Prevent the old version of DC from being fenced when it shuts down for rolling-upgrade (bsc#929955) - xml: Fix upgrade-1.3.xsl to correctly transform ACL rules with "attribute" (bsc#929681) - crmd/pengine: handle on-fail=ignore properly (bsc#981731) - crmd: respect start-failure-is-fatal even for artifically injected events (bsc#981731) - crmd: don't update fail count twice for same failure (bsc#950450, bsc#981731) - crmd: report operation rc as advertised instead of status (bsc#981731) - xml: add RelaxNG schema for crm_mon XML output - Upstream version cs: c9ad9cd503f071391efe17d3c45d578d6f152acd- pengine: process rsc parameters during unpack (bsc#929842) - pengine: handle setting container attribute in the correct location (bsc#929842) - lrmd: move isolation wrappers to hidden directory (bsc#929842) - mainloop: resolves race condition mainloop poll involving modification of ipc connections (bsc#929835) - Upstream version cs: f47ea56b4ec23c7d8e0c129535a9b49cdbd80482- fencing: Correctly make args for fencing agents (bsc#925751) - fence_legacy: Avoid passing 'port' to cluster-glue agents (bsc#925751) - corosync: Bug cl#5232 - Somewhat gracefully handle nodes with invalid UUIDs - HealthSMART: OCF_RESKEY_drives could contain multiple values - pengine: restart master instances on instance attribute changes - spec: move report.common and report.collector to cli package - pengine: only kill process group on timeout when on-fail does not equal block. - lrmd: Hint to child processes that using sd_notify is not required (bsc#956626) - Agents: Fix the HealthSMART metadata - make targetted reprobe for remote node work, crm_resource -C -N - crmd: include remote nodes when forcing cluster wide resource reprobe - crm_mon: Support of the start from systemd of crm_mon - Upstream version cs: 195559d47b0e9186b5d131981f6f7fee96ecad76- Rebase: * pacemaker-NodeUtilization-RA.patch - docker-wrapper: per resource logging of lrmd and remote client tool - pengine: Avoid trailing whitespaces when printing resource state - pengine: cl#5207 - Display "UNCLEAN" for resources running on unclean offline nodes - docker-wrapper: add reuse option for presistent containers - docker-wrapper: only override exit reason if docker daemon is inactive - pengine: handle isolated resource scenario, cloned group of isolated resources - pengine: handle cloned isolated resources in a sane way - crm_report: More patterns for finding logs on non-DC nodes - lrmd: Use original timestamps when reporting multi-step systemd operations - lrmd: report original timeout when systemd operation completes - systemd: improve unit files - PE: Turn off legacy unpacking of resource options into the meta hashtable - acl: Do not delay evaluation of added nodes in some situations (bsc#927828: CVE-2015-1867) - docker-wrapper: add demote, promote, and notify actions for multistate rsc - docker-wrapper: properly forward key value pairs during isolation - attrd: fixes double free in attrd legacy - lrmd: do not let isolation wrappers inherit the wrapper attribute, or it makes a loop - pengine: pass node name of pcmk host into isolated resources - lrmd: isolation wrappers are moved from containers to isolation OCF namepace - pengine: Fix colocation with unmanaged resources - stonith-ng: Correctly track node state - stonith-ng: No reply is needed for CRM_OP_RM_NODE_CACHE - crm_resource: Fix output format of the warning from --force-start - crm_resource: Display the locations of all anonymous clone children when supplying the children's common ID (bsc#870339) - cib: Correctly track node state - Upstream version cs: 7a2e3ae6b736621933b24f4cdc9ea260021d878d- Rebase: * bug-806256_pacemaker-log-level-notice.patch * pacemaker-NodeUtilization-RA.patch * pacemaker-colocated-utilization.patch - crmd: All peers need to track node shutdown requests (bsc#917625) - crmd: Cached copies of transient attributes cease to be valid once a node leaves the membership (bsc#917625) - crmd: Wait for all pending operations to complete before poking the policy engine - lrmd: preserve exit reason string when isolation wrappers are in use - docker-wrapper: properly separate docker and resource specific attributes - docker-wrapper: set authkey file permissions and properly set container 'node name' during start - systemd: Trick systemd into not stopping our services before us during shutdown (bsc#913251) - mcp: Allow a configurable delay when debugging shutdown issues - systemd: Kindly ask dbus NOT to kill the process if the dbus connection fails (bsc#931271) - systemd: Tell systemd not to take DBus down from underneath us (bsc#913251) - cib: Correctly set up signal handlers - PE: Do not record duplicate copies of the failed actions - lrmd: enable ipc proxy for docker-wrapper privileged mode - lrmd: properly handle poke requests in lrmd client when using ipc - spec: add docker-wrapper directory to spec file - pengine: disable migrations for resources with isolation containers - pengine: disable reloading of resources within isolated container wrappers - pengine: ability to launch resources in isolated containers - extra: docker container tech wrapper script for pcmk remote - tools: crm_mon prints Stopped clones only if --inactive was specified - tools: display node names more consistently in crm_mon output - tools: Improve crm_mon output with certain option combinations - tools: make crm_mon last updated header consistent across formats - remote: pcmk remote client tool for use with container wrapper script - crmd: Reset stonith failcount to recover transitioner when the node rejoins (bsc#921102) - systemd: fix crash caused when canceling in-flight operation - Upstream version cs: 3e93bc1dd6c1c3f2ee101f754567aa007b24bb5e- PE: Support non-actionable degraded mode for OCF - lrmd, services: interpret LSB status codes properly - tools: add crm_resource --wait option - tools: attrd_updater supports --query and --all options - attrd: attrd supports queries - pengine: remove unnecessary whitespace from notify environment variables - tools: free allocated memory correctly in crm_resource - attrd: properly write attributes for peers once uuid is discovered - cib: assignment where comparison intended - attrd: only send ack for recognized operations - attrd: make each client operation handler its own function - tools: attrd_updater supports private attributes - attrd supports private attributes (not written to CIB) - pengine: Reschedule specific monitors when resource definitions have changed (bsc#914761) - pengine: Resolve memory leaks (bsc#914761) - Upstream version cs: e32080b460f81486b85d08ec958582b3e72d858c- properly record stop args after reload - pengine: Do not reschedule monitors that are no longer needed while resource definitions have changed (bsc#914761) - Build: Fix building when heartbeat support is disabled - fencing: cl#5134 - Support random fencing delay to avoid double fencing (FATE#317136, FATE#318381, bsc#970733) - extra: Use crm_simulate for the showscores script - attrd: refresh should force an immediate write-out of all attributes - service: Leave synchronous calls to be free'd by the caller - service: Additional pointer safety - crmd: Add "on_node" attribute for *_last_failure_0 lrm resource operations (bsc#918839) - crm_mon: Fill CRM_notify_node in traps with node's uname rather than node's id if possible (bsc#918839) - pengine: ensure if B is colocated with A, B can never run without A - cib: automatically update .sig files in file backends when clients update live CIB - cib: file-based backends now detect whether file is live CIB - lrmd: add back support for class heartbeat agents - lrmd: provide fake meta data for ra class heartbeat - crm_resource: Use-after-free when restarting a resource - cli: Ensure subsequent unknown long options are correctly detected - crmd: Bug rhbz#1181824 - Ensure the DC can be reliably fenced - attrd_updater: Allow attributes to be set for other nodes - native_print: report target-role as well - membership: fix crm_update_peer_proc to NOT ignore flags if partially set - crmd: don't trigger a stonith_reconnect if no longer required - Upstream version cs: fa1311a0159588385f24cd8c3530233f4b90f3a9- Add pacemaker-Wno-format-signedness.patch to disable - Wformat-signedness added by GCC 5 and enabled by -Wformat=2- pengine: Handle ordering between stateful and migratable resources (bsc#881160) - crmd: Check "watchdog" daemon option before setting "have-watchdog" property - crmd: Correctly add the local option that validates against schema for pengine to calculate - Upstream version cs: 3021d731fdeba29e1136c117a62f3201785be6ea- crm_standby: update accepted options to match documentation - cts: Fix bashisms in LSBDummy script - pengine: fixes pengine crash with orphaned remote node connection resource - PE: Do not aggregate children in a pending state into the started/stopped/etc lists - acl: Correctly implement the 'reference' acl directive - Upstream version cs: 03ec61210c82471161f6cf3366e8afc30d737d67- pengine: imply stop in container node resources when host node is fenced - Build: Fix building if ncurses doesn't provide pkg-config files - xml: Do not change the ordering of properties when applying v1 cib diffs - xml: Do not prune leaves from v1 cib diffs that are being created with digests - Upstream version cs: 4109f1539a625bfa3e884d19ab2fc42d7a4daec4- xml: add 'require-all' to xml schema for constraints - pengine: require-all feature for ordered clones - xml: Ensure ACLs are reapplied before calculating what a replace operation changed - cib: Ensure file-based backends treat '-o section' consistently with the native backend - crmd: resolves memory leak in crmd. - pacemakerd: resolves memory leak of xml structure in pacemakerd - ipc: use server enforced buffer during ipc client send - pengine: do not recording pending migrate_to ops for pacemaker remote - crmd: never stop recurring monitor ops for pcmk remote during incomplete migration - pengine: prefer migration target for remote node connections - pengine: properly handle ordering during remote connection partial migration - crmd: Ensure remote connection resources timeout properly during 'migrate_from' action - crmd: gracefully handle remote node disconnects during op execution - pengine: Fence baremetal remote when recurring monitor op fails - crmd: Handle remote connection failures while executing ops on remote connection - remote: Treat recv msg timeout as a disconnect - pengine: properly recover remote-nodes when cluster-node proxy goes offline - systemd: Correctly handle long running stop actions (bsc#948989) - crm_resource: Include group members when calculating the next timeout - crm_resource: Ensure --restart sets/clears meta attributes - crm_resource: Clean up memory in --restart error paths - Build: Use a wrapper for realloc() which calls abort when we run out of memory - services: Prevent potential use-of-NULL - crm_resource: Memory leak in error paths - crmd: Mistake of the set of the variable. - Upstream version cs: d0139e9a00c32b9bc1d7d206d6210126045b49be- crm_node: Correctly remove nodes from the CIB by nodeid - fencing: Allow nodes to be purged from the member cache - xml: cl#5231 - Unset the deleted attributes in the resulting diffs (bsc#905641, bsc#967254) - fencing: stonith -l option for custom log - cib: Avoid nodeid conflicts we don't care about - Membership: Detect and resolve nodes that change their ID - attrd: Simplify how node deletions happen - attrd: Clean out the node cache when requested by the admin - crm_resource: Allow resource restart operations to be node specific - crm_resource: Implement --timeout for resource restart operations - crm_resource: Calculate how long to wait for a restart based on the resource timeouts - crm_resource: Implement an intelligent restart capability - crm_failcount: Better error reporting when no resource is specified - cib: tls sock cleanup for remote cib connections - Upstream version cs: 7dd90226e10035340d6707d9fd2b04f2e0141194- pengine: make resource-discovery work with location rules - services: Conditionally clean up services actions - Upstream version cs: 5093c095c5f517ab58375b2b69ecfc5516c86b5b- Drop conditional BuildRequires of system-devel: it was required one line lower unconditionally. - Replace remaining systemd-devel BuildRequires with pkgconfig(systemd).- pengine: exclusive discovery implies rsc is only allowed on exclusive subset of nodes - dbus: handle dispatch queue when multiple replies need to be processed - dbus ref count leaks - dbus: Ensure both the read and write queues get dispatched - systemd: Ensure failed monitor operations always return - Perform systemd reloads asynchronously - Upstream version cs: cd7c9abbcfc620aa84194ee07aade142240db15a- watchdog: Allow startup without sbd - service: Prevent potential use-of-NULL in metadata lookups - dbus: Fail gracefully if malloc fails - crmd: Prevent use-of-NULL during reprobe - crmd: Correctly obtain SBD_WATCHDOG_TIMEOUT from the environment - pengine: add #kind=remote for baremetal remote-nodes - Officially support the resource-discovery attribute for location constraints - xml: fix xml.c memleak in "missing upgrade XSLT" case - Prefer to inherit the watchdog timeout from SBD - stonith-ng: Correctly observe the watchdog completion timeout - sbd: Attempt to locate sbd via its pid file - Fencing: If configured, wait stonith-watchdog-timer seconds for self-fencing to complete - Resolve some potential issues spotted by clang and coverity - PE: Watchdog integration is sufficient for fencing - Fencing: Correctly wait for self-fencing to occur when the watchdog is in use - Fencing: Ensure the hostlist parameter is set for watchdog agents - crm_resource: Allow -M location to be reinforced with -f even if rsc is already on node - mcp: Turn on sbd integration if pacemakerd finds it running - pengine: Fix the behaviors of multi-state resources with asymmetrical ordering (bsc#899403) - lrmd: Prevent glib assert triggered by timers being removed from mainloop more than once - cib: Improved tracing of callbacks - Upstream version cs: a9c81774b89f21f990be255f9862446d1a38afee- remote: advertise default port correctly, further adjust default timeout periods - remote: report timestamps for remote connection resource operations - pengine: allow remote-nodes to be placed in maintenance mode - xml: Prevent assert errors in crm_element_value() on applying a patch without version information (bsc#900296) - pengine: prevent disabling rsc discovery per node in certain situations - crm_resource: avoid deletion of lrm cache on node with resource discovery disabled. - pengine: per-node control over resource discovery - mainloop: fix potential segfault for fd = 0 - ping: Correct metadata for attempts parameter (bsc#899324) - ping: Pass extra options to fping (bsc#899324) - ping: Remove incorrectly advertised migrate_to|migrate_from (bsc#899324) - ping: Add use_fping parameter (bsc#899324) - ping: Correctly advertise multiplier default (bsc#899324) - pengine: resource discovery mode for location constraints - cib: Ensure upgrade operations from a non-DC get an acknowledgement - lrmd: cancel pending async connection during disconnect - systemd: Ensure we don't call dbus_message_unref() with NULL - systemd: Perform monitor operations without blocking - dbus: Notice when dbus connections get disabled - pengine: allow baremetal remote-nodes to recover without requiring fencing when cluster-node fails - crmd: do not remove connection resources during re-probe - pengine: only fence baremetal remote when connection can fails or can not be recovered - ipc: properly allocate server enforced buffer size on client - remote: advertise more reasonable timeout periods for remote-nodes connections - crmd: properly update job limit for baremetal remote-nodes - crmd: Remote-node throttle jobs count towards cluster-node hosting conneciton rsc - crmd: Ensure throttle_mode() does something on Linux - systemd: Perform actions asynchronously (bsc#956500) - crm_attribute: Correctly update config options when -o crm_config is specified - crmd: Fixes crash when remote connection migration fails - pengine: fixes segfault caused by malformed log warning - Allow fail-counts to be removed en-mass when the new attrd is in operation - fencing: Use the correct define for origin - fencing: Reject actions for devices that haven't been explicitly registered yet - cts : change default cluster stack from openais to corosync (bsc#894871) - crm_resource: Ensure fail-counts are purged when we redetect the state of all resources - corosync: Avoid unnecessary repeated CMAP API calls (bsc#870771) - cib: Do not update on disk backups if we're just querying them - mcp: Allow orphan children to initiate node panic via SIGQUIT - Support machine panics for some kinds of errors (via sbd if available) - Fencing: Allow the cluster to recover resources if the watchdog is in use - crmd: If configured, trigger the watchdog immediately if we loose quorum and no-quorum-policy=suicide - crmd: Ensure a watchdog device is in use if stonith-watchdog-timeout is configured - Fencing: Advertise the watchdog device for fencing operations - PE: Allow natural ordering of colocation sets - stonith-ng: Reset mainloop source IDs after removing them - Fencing: Force 'stonith-ng' as the system name - crm_mon: Repair notification delivery when the v2 patch format is in use (bsc#909286) - mcp: Teach pacemakerd to ignore SIGHUP - Rebase bug-806256_pacemaker-log-level-notice.patch - Upstream version cs: 28aee948cebd51305a2cdc3ec4f94252ce975655goat13 1604151094  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~2.0.1+20190417.13d370ca9-lp151.2.16.4  cts-log-watchercts-supportctsCIB.pyCM_common.pyCM_corosync.pyCTS.pyCTSaudits.pyCTSscenarios.pyCTStests.pyCTSvars.py__init__.py__pycache__CIB.cpython-36.opt-1.pycCIB.cpython-36.pycCM_common.cpython-36.opt-1.pycCM_common.cpython-36.pycCM_corosync.cpython-36.opt-1.pycCM_corosync.cpython-36.pycCTS.cpython-36.opt-1.pycCTS.cpython-36.pycCTSaudits.cpython-36.opt-1.pycCTSaudits.cpython-36.pycCTSscenarios.cpython-36.opt-1.pycCTSscenarios.cpython-36.pycCTStests.cpython-36.opt-1.pycCTStests.cpython-36.pycCTSvars.cpython-36.opt-1.pycCTSvars.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pyccib_xml.cpython-36.opt-1.pyccib_xml.cpython-36.pycenvironment.cpython-36.opt-1.pycenvironment.cpython-36.pyclogging.cpython-36.opt-1.pyclogging.cpython-36.pycpatterns.cpython-36.opt-1.pycpatterns.cpython-36.pycremote.cpython-36.opt-1.pycremote.cpython-36.pycwatcher.cpython-36.opt-1.pycwatcher.cpython-36.pyccib_xml.pyenvironment.pylogging.pypatterns.pyremote.pywatcher.pypacemaker-ctsCOPYINGChangeLogtestsREADME.mdcliregression.acls.expregression.dates.expregression.rules.expregression.tools.expregression.upgrade.expregression.validity.expctscts-clicts-coveragects-execcts-fencingcts-regressioncts-schedulerCTSlab.pyLSBDummybenchmarkREADME.benchmarkclubenchcontrolctscts.conffence_dummylxc_autogen.shpacemaker-cts-dummydpacemaker-cts-dummyd@.servicescheduler1-a-then-bm-move-b.dot1-a-then-bm-move-b.exp1-a-then-bm-move-b.scores1-a-then-bm-move-b.summary1-a-then-bm-move-b.xml10-a-then-bm-b-move-a-clone.dot10-a-then-bm-b-move-a-clone.exp10-a-then-bm-b-move-a-clone.scores10-a-then-bm-b-move-a-clone.summary10-a-then-bm-b-move-a-clone.xml11-a-then-bm-b-move-a-clone-starting.dot11-a-then-bm-b-move-a-clone-starting.exp11-a-then-bm-b-move-a-clone-starting.scores11-a-then-bm-b-move-a-clone-starting.summary11-a-then-bm-b-move-a-clone-starting.xml1360.dot1360.exp1360.scores1360.summary1360.xml1484.dot1484.exp1484.scores1484.summary1484.xml1494.dot1494.exp1494.scores1494.summary1494.xml2-am-then-b-move-a.dot2-am-then-b-move-a.exp2-am-then-b-move-a.scores2-am-then-b-move-a.summary2-am-then-b-move-a.xml3-am-then-bm-both-migrate.dot3-am-then-bm-both-migrate.exp3-am-then-bm-both-migrate.scores3-am-then-bm-both-migrate.summary3-am-then-bm-both-migrate.xml4-am-then-bm-b-not-migratable.dot4-am-then-bm-b-not-migratable.exp4-am-then-bm-b-not-migratable.scores4-am-then-bm-b-not-migratable.summary4-am-then-bm-b-not-migratable.xml5-am-then-bm-a-not-migratable.dot5-am-then-bm-a-not-migratable.exp5-am-then-bm-a-not-migratable.scores5-am-then-bm-a-not-migratable.summary5-am-then-bm-a-not-migratable.xml594.dot594.exp594.scores594.summary594.xml6-migrate-group.dot6-migrate-group.exp6-migrate-group.scores6-migrate-group.summary6-migrate-group.xml662.dot662.exp662.scores662.summary662.xml696.dot696.exp696.scores696.summary696.xml7-migrate-group-one-unmigratable.dot7-migrate-group-one-unmigratable.exp7-migrate-group-one-unmigratable.scores7-migrate-group-one-unmigratable.summary7-migrate-group-one-unmigratable.xml726.dot726.exp726.scores726.summary726.xml735.dot735.exp735.scores735.summary735.xml764.dot764.exp764.scores764.summary764.xml797.dot797.exp797.scores797.summary797.xml8-am-then-bm-a-migrating-b-stopping.dot8-am-then-bm-a-migrating-b-stopping.exp8-am-then-bm-a-migrating-b-stopping.scores8-am-then-bm-a-migrating-b-stopping.summary8-am-then-bm-a-migrating-b-stopping.xml829.dot829.exp829.scores829.summary829.xml9-am-then-bm-b-migrating-a-stopping.dot9-am-then-bm-b-migrating-a-stopping.exp9-am-then-bm-b-migrating-a-stopping.scores9-am-then-bm-b-migrating-a-stopping.summary9-am-then-bm-b-migrating-a-stopping.xml994-2.dot994-2.exp994-2.scores994-2.summary994-2.xml994.dot994.exp994.scores994.summary994.xmla-demote-then-b-migrate.dota-demote-then-b-migrate.expa-demote-then-b-migrate.scoresa-demote-then-b-migrate.summarya-demote-then-b-migrate.xmla-promote-then-b-migrate.dota-promote-then-b-migrate.expa-promote-then-b-migrate.scoresa-promote-then-b-migrate.summarya-promote-then-b-migrate.xmlanon-instance-pending.dotanon-instance-pending.expanon-instance-pending.scoresanon-instance-pending.summaryanon-instance-pending.xmlanti-colocation-master.dotanti-colocation-master.expanti-colocation-master.scoresanti-colocation-master.summaryanti-colocation-master.xmlanti-colocation-order.dotanti-colocation-order.expanti-colocation-order.scoresanti-colocation-order.summaryanti-colocation-order.xmlanti-colocation-slave.dotanti-colocation-slave.expanti-colocation-slave.scoresanti-colocation-slave.summaryanti-colocation-slave.xmlasymmetric.dotasymmetric.expasymmetric.scoresasymmetric.summaryasymmetric.xmlasymmetrical-order-move.dotasymmetrical-order-move.expasymmetrical-order-move.scoresasymmetrical-order-move.summaryasymmetrical-order-move.xmlasymmetrical-order-restart.dotasymmetrical-order-restart.expasymmetrical-order-restart.scoresasymmetrical-order-restart.summaryasymmetrical-order-restart.xmlattrs1.dotattrs1.expattrs1.scoresattrs1.summaryattrs1.xmlattrs2.dotattrs2.expattrs2.scoresattrs2.summaryattrs2.xmlattrs3.dotattrs3.expattrs3.scoresattrs3.summaryattrs3.xmlattrs4.dotattrs4.expattrs4.scoresattrs4.summaryattrs4.xmlattrs5.dotattrs5.expattrs5.scoresattrs5.summaryattrs5.xmlattrs6.dotattrs6.expattrs6.scoresattrs6.summaryattrs6.xmlattrs7.dotattrs7.expattrs7.scoresattrs7.summaryattrs7.xmlattrs8.dotattrs8.expattrs8.scoresattrs8.summaryattrs8.xmlbalanced.dotbalanced.expbalanced.scoresbalanced.summarybalanced.xmlbase-score.dotbase-score.expbase-score.scoresbase-score.summarybase-score.xmlbnc-515172.dotbnc-515172.expbnc-515172.scoresbnc-515172.summarybnc-515172.xmlbug-1572-1.dotbug-1572-1.expbug-1572-1.scoresbug-1572-1.summarybug-1572-1.xmlbug-1572-2.dotbug-1572-2.expbug-1572-2.scoresbug-1572-2.summarybug-1572-2.xmlbug-1573.dotbug-1573.expbug-1573.scoresbug-1573.summarybug-1573.xmlbug-1685.dotbug-1685.expbug-1685.scoresbug-1685.summarybug-1685.xmlbug-1718.dotbug-1718.expbug-1718.scoresbug-1718.summarybug-1718.xmlbug-1765.dotbug-1765.expbug-1765.scoresbug-1765.summarybug-1765.xmlbug-1820-1.dotbug-1820-1.expbug-1820-1.scoresbug-1820-1.summarybug-1820-1.xmlbug-1820.dotbug-1820.expbug-1820.scoresbug-1820.summarybug-1820.xmlbug-1822.dotbug-1822.expbug-1822.scoresbug-1822.summarybug-1822.xmlbug-5007-masterslave_colocation.dotbug-5007-masterslave_colocation.expbug-5007-masterslave_colocation.scoresbug-5007-masterslave_colocation.summarybug-5007-masterslave_colocation.xmlbug-5014-A-start-B-start.dotbug-5014-A-start-B-start.expbug-5014-A-start-B-start.scoresbug-5014-A-start-B-start.summarybug-5014-A-start-B-start.xmlbug-5014-A-stop-B-started.dotbug-5014-A-stop-B-started.expbug-5014-A-stop-B-started.scoresbug-5014-A-stop-B-started.summarybug-5014-A-stop-B-started.xmlbug-5014-A-stopped-B-stopped.dotbug-5014-A-stopped-B-stopped.expbug-5014-A-stopped-B-stopped.scoresbug-5014-A-stopped-B-stopped.summarybug-5014-A-stopped-B-stopped.xmlbug-5014-CLONE-A-start-B-start.dotbug-5014-CLONE-A-start-B-start.expbug-5014-CLONE-A-start-B-start.scoresbug-5014-CLONE-A-start-B-start.summarybug-5014-CLONE-A-start-B-start.xmlbug-5014-CLONE-A-stop-B-started.dotbug-5014-CLONE-A-stop-B-started.expbug-5014-CLONE-A-stop-B-started.scoresbug-5014-CLONE-A-stop-B-started.summarybug-5014-CLONE-A-stop-B-started.xmlbug-5014-CthenAthenB-C-stopped.dotbug-5014-CthenAthenB-C-stopped.expbug-5014-CthenAthenB-C-stopped.scoresbug-5014-CthenAthenB-C-stopped.summarybug-5014-CthenAthenB-C-stopped.xmlbug-5014-GROUP-A-start-B-start.dotbug-5014-GROUP-A-start-B-start.expbug-5014-GROUP-A-start-B-start.scoresbug-5014-GROUP-A-start-B-start.summarybug-5014-GROUP-A-start-B-start.xmlbug-5014-GROUP-A-stopped-B-started.dotbug-5014-GROUP-A-stopped-B-started.expbug-5014-GROUP-A-stopped-B-started.scoresbug-5014-GROUP-A-stopped-B-started.summarybug-5014-GROUP-A-stopped-B-started.xmlbug-5014-GROUP-A-stopped-B-stopped.dotbug-5014-GROUP-A-stopped-B-stopped.expbug-5014-GROUP-A-stopped-B-stopped.scoresbug-5014-GROUP-A-stopped-B-stopped.summarybug-5014-GROUP-A-stopped-B-stopped.xmlbug-5014-ordered-set-symmetrical-false.dotbug-5014-ordered-set-symmetrical-false.expbug-5014-ordered-set-symmetrical-false.scoresbug-5014-ordered-set-symmetrical-false.summarybug-5014-ordered-set-symmetrical-false.xmlbug-5014-ordered-set-symmetrical-true.dotbug-5014-ordered-set-symmetrical-true.expbug-5014-ordered-set-symmetrical-true.scoresbug-5014-ordered-set-symmetrical-true.summarybug-5014-ordered-set-symmetrical-true.xmlbug-5025-1.dotbug-5025-1.expbug-5025-1.scoresbug-5025-1.summarybug-5025-1.xmlbug-5025-2.dotbug-5025-2.expbug-5025-2.scoresbug-5025-2.summarybug-5025-2.xmlbug-5025-3.dotbug-5025-3.expbug-5025-3.scoresbug-5025-3.summarybug-5025-3.xmlbug-5025-4.dotbug-5025-4.expbug-5025-4.scoresbug-5025-4.summarybug-5025-4.xmlbug-5028-bottom.dotbug-5028-bottom.expbug-5028-bottom.scoresbug-5028-bottom.summarybug-5028-bottom.xmlbug-5028-detach.dotbug-5028-detach.expbug-5028-detach.scoresbug-5028-detach.summarybug-5028-detach.xmlbug-5028.dotbug-5028.expbug-5028.scoresbug-5028.summarybug-5028.xmlbug-5038.dotbug-5038.expbug-5038.scoresbug-5038.summarybug-5038.xmlbug-5059.dotbug-5059.expbug-5059.scoresbug-5059.summarybug-5059.xmlbug-5069-op-disabled.dotbug-5069-op-disabled.expbug-5069-op-disabled.scoresbug-5069-op-disabled.summarybug-5069-op-disabled.xmlbug-5069-op-enabled.dotbug-5069-op-enabled.expbug-5069-op-enabled.scoresbug-5069-op-enabled.summarybug-5069-op-enabled.xmlbug-5140-require-all-false.dotbug-5140-require-all-false.expbug-5140-require-all-false.scoresbug-5140-require-all-false.summarybug-5140-require-all-false.xmlbug-5143-ms-shuffle.dotbug-5143-ms-shuffle.expbug-5143-ms-shuffle.scoresbug-5143-ms-shuffle.summarybug-5143-ms-shuffle.xmlbug-5186-partial-migrate.dotbug-5186-partial-migrate.expbug-5186-partial-migrate.scoresbug-5186-partial-migrate.summarybug-5186-partial-migrate.xmlbug-cl-5168.dotbug-cl-5168.expbug-cl-5168.scoresbug-cl-5168.summarybug-cl-5168.xmlbug-cl-5170.dotbug-cl-5170.expbug-cl-5170.scoresbug-cl-5170.summarybug-cl-5170.xmlbug-cl-5212.dotbug-cl-5212.expbug-cl-5212.scoresbug-cl-5212.summarybug-cl-5212.xmlbug-cl-5213.dotbug-cl-5213.expbug-cl-5213.scoresbug-cl-5213.summarybug-cl-5213.xmlbug-cl-5219.dotbug-cl-5219.expbug-cl-5219.scoresbug-cl-5219.summarybug-cl-5219.xmlbug-cl-5247.dotbug-cl-5247.expbug-cl-5247.scoresbug-cl-5247.summarybug-cl-5247.xmlbug-lf-1852.dotbug-lf-1852.expbug-lf-1852.scoresbug-lf-1852.summarybug-lf-1852.xmlbug-lf-1920.dotbug-lf-1920.expbug-lf-1920.scoresbug-lf-1920.summarybug-lf-1920.xmlbug-lf-2106.dotbug-lf-2106.expbug-lf-2106.scoresbug-lf-2106.summarybug-lf-2106.xmlbug-lf-2153.dotbug-lf-2153.expbug-lf-2153.scoresbug-lf-2153.summarybug-lf-2153.xmlbug-lf-2160.dotbug-lf-2160.expbug-lf-2160.scoresbug-lf-2160.summarybug-lf-2160.xmlbug-lf-2171.dotbug-lf-2171.expbug-lf-2171.scoresbug-lf-2171.summarybug-lf-2171.xmlbug-lf-2213.dotbug-lf-2213.expbug-lf-2213.scoresbug-lf-2213.summarybug-lf-2213.xmlbug-lf-2317.dotbug-lf-2317.expbug-lf-2317.scoresbug-lf-2317.summarybug-lf-2317.xmlbug-lf-2358.dotbug-lf-2358.expbug-lf-2358.scoresbug-lf-2358.summarybug-lf-2358.xmlbug-lf-2361.dotbug-lf-2361.expbug-lf-2361.scoresbug-lf-2361.summarybug-lf-2361.xmlbug-lf-2422.dotbug-lf-2422.expbug-lf-2422.scoresbug-lf-2422.summarybug-lf-2422.xmlbug-lf-2435.dotbug-lf-2435.expbug-lf-2435.scoresbug-lf-2435.summarybug-lf-2435.xmlbug-lf-2445.dotbug-lf-2445.expbug-lf-2445.scoresbug-lf-2445.summarybug-lf-2445.xmlbug-lf-2453.dotbug-lf-2453.expbug-lf-2453.scoresbug-lf-2453.summarybug-lf-2453.xmlbug-lf-2474.dotbug-lf-2474.expbug-lf-2474.scoresbug-lf-2474.summarybug-lf-2474.xmlbug-lf-2493.dotbug-lf-2493.expbug-lf-2493.scoresbug-lf-2493.summarybug-lf-2493.xmlbug-lf-2508.dotbug-lf-2508.expbug-lf-2508.scoresbug-lf-2508.summarybug-lf-2508.xmlbug-lf-2544.dotbug-lf-2544.expbug-lf-2544.scoresbug-lf-2544.summarybug-lf-2544.xmlbug-lf-2551.dotbug-lf-2551.expbug-lf-2551.scoresbug-lf-2551.summarybug-lf-2551.xmlbug-lf-2574.dotbug-lf-2574.expbug-lf-2574.scoresbug-lf-2574.summarybug-lf-2574.xmlbug-lf-2581.dotbug-lf-2581.expbug-lf-2581.scoresbug-lf-2581.summarybug-lf-2581.xmlbug-lf-2606.dotbug-lf-2606.expbug-lf-2606.scoresbug-lf-2606.summarybug-lf-2606.xmlbug-lf-2613.dotbug-lf-2613.expbug-lf-2613.scoresbug-lf-2613.summarybug-lf-2613.xmlbug-lf-2619.dotbug-lf-2619.expbug-lf-2619.scoresbug-lf-2619.summarybug-lf-2619.xmlbug-n-385265-2.dotbug-n-385265-2.expbug-n-385265-2.scoresbug-n-385265-2.summarybug-n-385265-2.xmlbug-n-385265.dotbug-n-385265.expbug-n-385265.scoresbug-n-385265.summarybug-n-385265.xmlbug-n-387749.dotbug-n-387749.expbug-n-387749.scoresbug-n-387749.summarybug-n-387749.xmlbug-pm-11.dotbug-pm-11.expbug-pm-11.scoresbug-pm-11.summarybug-pm-11.xmlbug-pm-12.dotbug-pm-12.expbug-pm-12.scoresbug-pm-12.summarybug-pm-12.xmlbug-rh-1097457.dotbug-rh-1097457.expbug-rh-1097457.scoresbug-rh-1097457.summarybug-rh-1097457.xmlbug-rh-880249.dotbug-rh-880249.expbug-rh-880249.scoresbug-rh-880249.summarybug-rh-880249.xmlbug-suse-707150.dotbug-suse-707150.expbug-suse-707150.scoresbug-suse-707150.summarybug-suse-707150.xmlbundle-nested-colocation.dotbundle-nested-colocation.expbundle-nested-colocation.scoresbundle-nested-colocation.summarybundle-nested-colocation.xmlbundle-order-fencing.dotbundle-order-fencing.expbundle-order-fencing.scoresbundle-order-fencing.summarybundle-order-fencing.xmlbundle-order-partial-start-2.dotbundle-order-partial-start-2.expbundle-order-partial-start-2.scoresbundle-order-partial-start-2.summarybundle-order-partial-start-2.xmlbundle-order-partial-start.dotbundle-order-partial-start.expbundle-order-partial-start.scoresbundle-order-partial-start.summarybundle-order-partial-start.xmlbundle-order-partial-stop.dotbundle-order-partial-stop.expbundle-order-partial-stop.scoresbundle-order-partial-stop.summarybundle-order-partial-stop.xmlbundle-order-partial.dotbundle-order-partial.expbundle-order-partial.scoresbundle-order-partial.summarybundle-order-partial.xmlbundle-order-startup-clone-2.dotbundle-order-startup-clone-2.expbundle-order-startup-clone-2.scoresbundle-order-startup-clone-2.summarybundle-order-startup-clone-2.xmlbundle-order-startup-clone.dotbundle-order-startup-clone.expbundle-order-startup-clone.scoresbundle-order-startup-clone.summarybundle-order-startup-clone.xmlbundle-order-startup.dotbundle-order-startup.expbundle-order-startup.scoresbundle-order-startup.summarybundle-order-startup.xmlbundle-order-stop-clone.dotbundle-order-stop-clone.expbundle-order-stop-clone.scoresbundle-order-stop-clone.summarybundle-order-stop-clone.xmlbundle-order-stop-on-remote.dotbundle-order-stop-on-remote.expbundle-order-stop-on-remote.scoresbundle-order-stop-on-remote.summarybundle-order-stop-on-remote.xmlbundle-order-stop.dotbundle-order-stop.expbundle-order-stop.scoresbundle-order-stop.summarybundle-order-stop.xmlbundle-probe-order-1.dotbundle-probe-order-1.expbundle-probe-order-1.scoresbundle-probe-order-1.summarybundle-probe-order-1.xmlbundle-probe-order-2.dotbundle-probe-order-2.expbundle-probe-order-2.scoresbundle-probe-order-2.summarybundle-probe-order-2.xmlbundle-probe-order-3.dotbundle-probe-order-3.expbundle-probe-order-3.scoresbundle-probe-order-3.summarybundle-probe-order-3.xmlbundle-probe-remotes.dotbundle-probe-remotes.expbundle-probe-remotes.scoresbundle-probe-remotes.summarybundle-probe-remotes.xmlbundle-replicas-change.dotbundle-replicas-change.expbundle-replicas-change.scoresbundle-replicas-change.summarybundle-replicas-change.xmlclone-anon-dup.dotclone-anon-dup.expclone-anon-dup.scoresclone-anon-dup.summaryclone-anon-dup.xmlclone-anon-failcount.dotclone-anon-failcount.expclone-anon-failcount.scoresclone-anon-failcount.summaryclone-anon-failcount.xmlclone-anon-probe-1.dotclone-anon-probe-1.expclone-anon-probe-1.scoresclone-anon-probe-1.summaryclone-anon-probe-1.xmlclone-anon-probe-2.dotclone-anon-probe-2.expclone-anon-probe-2.scoresclone-anon-probe-2.summaryclone-anon-probe-2.xmlclone-colocate-instance-1.dotclone-colocate-instance-1.expclone-colocate-instance-1.scoresclone-colocate-instance-1.summaryclone-colocate-instance-1.xmlclone-colocate-instance-2.dotclone-colocate-instance-2.expclone-colocate-instance-2.scoresclone-colocate-instance-2.summaryclone-colocate-instance-2.xmlclone-fail-block-colocation.dotclone-fail-block-colocation.expclone-fail-block-colocation.scoresclone-fail-block-colocation.summaryclone-fail-block-colocation.xmlclone-interleave-1.dotclone-interleave-1.expclone-interleave-1.scoresclone-interleave-1.summaryclone-interleave-1.xmlclone-interleave-2.dotclone-interleave-2.expclone-interleave-2.scoresclone-interleave-2.summaryclone-interleave-2.xmlclone-interleave-3.dotclone-interleave-3.expclone-interleave-3.scoresclone-interleave-3.summaryclone-interleave-3.xmlclone-max-zero.dotclone-max-zero.expclone-max-zero.scoresclone-max-zero.summaryclone-max-zero.xmlclone-no-shuffle.dotclone-no-shuffle.expclone-no-shuffle.scoresclone-no-shuffle.summaryclone-no-shuffle.xmlclone-order-16instances.dotclone-order-16instances.expclone-order-16instances.scoresclone-order-16instances.summaryclone-order-16instances.xmlclone-order-instance.dotclone-order-instance.expclone-order-instance.scoresclone-order-instance.summaryclone-order-instance.xmlclone-order-primitive.dotclone-order-primitive.expclone-order-primitive.scoresclone-order-primitive.summaryclone-order-primitive.xmlclone-require-all-1.dotclone-require-all-1.expclone-require-all-1.scoresclone-require-all-1.summaryclone-require-all-1.xmlclone-require-all-2.dotclone-require-all-2.expclone-require-all-2.scoresclone-require-all-2.summaryclone-require-all-2.xmlclone-require-all-3.dotclone-require-all-3.expclone-require-all-3.scoresclone-require-all-3.summaryclone-require-all-3.xmlclone-require-all-4.dotclone-require-all-4.expclone-require-all-4.scoresclone-require-all-4.summaryclone-require-all-4.xmlclone-require-all-5.dotclone-require-all-5.expclone-require-all-5.scoresclone-require-all-5.summaryclone-require-all-5.xmlclone-require-all-6.dotclone-require-all-6.expclone-require-all-6.scoresclone-require-all-6.summaryclone-require-all-6.xmlclone-require-all-7.dotclone-require-all-7.expclone-require-all-7.scoresclone-require-all-7.summaryclone-require-all-7.xmlclone-require-all-no-interleave-1.dotclone-require-all-no-interleave-1.expclone-require-all-no-interleave-1.scoresclone-require-all-no-interleave-1.summaryclone-require-all-no-interleave-1.xmlclone-require-all-no-interleave-2.dotclone-require-all-no-interleave-2.expclone-require-all-no-interleave-2.scoresclone-require-all-no-interleave-2.summaryclone-require-all-no-interleave-2.xmlclone-require-all-no-interleave-3.dotclone-require-all-no-interleave-3.expclone-require-all-no-interleave-3.scoresclone-require-all-no-interleave-3.summaryclone-require-all-no-interleave-3.xmlclone-requires-quorum-recovery.dotclone-requires-quorum-recovery.expclone-requires-quorum-recovery.scoresclone-requires-quorum-recovery.summaryclone-requires-quorum-recovery.xmlclone-requires-quorum.dotclone-requires-quorum.expclone-requires-quorum.scoresclone-requires-quorum.summaryclone-requires-quorum.xmlclone_min_interleave_start_one.dotclone_min_interleave_start_one.expclone_min_interleave_start_one.scoresclone_min_interleave_start_one.summaryclone_min_interleave_start_one.xmlclone_min_interleave_start_two.dotclone_min_interleave_start_two.expclone_min_interleave_start_two.scoresclone_min_interleave_start_two.summaryclone_min_interleave_start_two.xmlclone_min_interleave_stop_one.dotclone_min_interleave_stop_one.expclone_min_interleave_stop_one.scoresclone_min_interleave_stop_one.summaryclone_min_interleave_stop_one.xmlclone_min_interleave_stop_two.dotclone_min_interleave_stop_two.expclone_min_interleave_stop_two.scoresclone_min_interleave_stop_two.summaryclone_min_interleave_stop_two.xmlclone_min_start_one.dotclone_min_start_one.expclone_min_start_one.scoresclone_min_start_one.summaryclone_min_start_one.xmlclone_min_start_two.dotclone_min_start_two.expclone_min_start_two.scoresclone_min_start_two.summaryclone_min_start_two.xmlclone_min_stop_all.dotclone_min_stop_all.expclone_min_stop_all.scoresclone_min_stop_all.summaryclone_min_stop_all.xmlclone_min_stop_one.dotclone_min_stop_one.expclone_min_stop_one.scoresclone_min_stop_one.summaryclone_min_stop_one.xmlclone_min_stop_two.dotclone_min_stop_two.expclone_min_stop_two.scoresclone_min_stop_two.summaryclone_min_stop_two.xmlcloned-group-stop.dotcloned-group-stop.expcloned-group-stop.scorescloned-group-stop.summarycloned-group-stop.xmlcloned-group.dotcloned-group.expcloned-group.scorescloned-group.summarycloned-group.xmlcloned_start_one.dotcloned_start_one.expcloned_start_one.scorescloned_start_one.summarycloned_start_one.xmlcloned_start_two.dotcloned_start_two.expcloned_start_two.scorescloned_start_two.summarycloned_start_two.xmlcloned_stop_one.dotcloned_stop_one.expcloned_stop_one.scorescloned_stop_one.summarycloned_stop_one.xmlcloned_stop_two.dotcloned_stop_two.expcloned_stop_two.scorescloned_stop_two.summarycloned_stop_two.xmlcluster-specific-params.dotcluster-specific-params.expcluster-specific-params.scorescluster-specific-params.summarycluster-specific-params.xmlcolo_master_w_native.dotcolo_master_w_native.expcolo_master_w_native.scorescolo_master_w_native.summarycolo_master_w_native.xmlcolo_slave_w_native.dotcolo_slave_w_native.expcolo_slave_w_native.scorescolo_slave_w_native.summarycolo_slave_w_native.xmlcoloc-attr.dotcoloc-attr.expcoloc-attr.scorescoloc-attr.summarycoloc-attr.xmlcoloc-clone-stays-active.dotcoloc-clone-stays-active.expcoloc-clone-stays-active.scorescoloc-clone-stays-active.summarycoloc-clone-stays-active.xmlcoloc-group.dotcoloc-group.expcoloc-group.scorescoloc-group.summarycoloc-group.xmlcoloc-intra-set.dotcoloc-intra-set.expcoloc-intra-set.scorescoloc-intra-set.summarycoloc-intra-set.xmlcoloc-list.dotcoloc-list.expcoloc-list.scorescoloc-list.summarycoloc-list.xmlcoloc-loop.dotcoloc-loop.expcoloc-loop.scorescoloc-loop.summarycoloc-loop.xmlcoloc-many-one.dotcoloc-many-one.expcoloc-many-one.scorescoloc-many-one.summarycoloc-many-one.xmlcoloc-negative-group.dotcoloc-negative-group.expcoloc-negative-group.scorescoloc-negative-group.summarycoloc-negative-group.xmlcoloc-slave-anti.dotcoloc-slave-anti.expcoloc-slave-anti.scorescoloc-slave-anti.summarycoloc-slave-anti.xmlcoloc_fp_logic.dotcoloc_fp_logic.expcoloc_fp_logic.scorescoloc_fp_logic.summarycoloc_fp_logic.xmlcolocate-primitive-with-clone.dotcolocate-primitive-with-clone.expcolocate-primitive-with-clone.scorescolocate-primitive-with-clone.summarycolocate-primitive-with-clone.xmlcolocated-utilization-clone.dotcolocated-utilization-clone.expcolocated-utilization-clone.scorescolocated-utilization-clone.summarycolocated-utilization-clone.xmlcolocated-utilization-group.dotcolocated-utilization-group.expcolocated-utilization-group.scorescolocated-utilization-group.summarycolocated-utilization-group.xmlcolocated-utilization-primitive-1.dotcolocated-utilization-primitive-1.expcolocated-utilization-primitive-1.scorescolocated-utilization-primitive-1.summarycolocated-utilization-primitive-1.xmlcolocated-utilization-primitive-2.dotcolocated-utilization-primitive-2.expcolocated-utilization-primitive-2.scorescolocated-utilization-primitive-2.summarycolocated-utilization-primitive-2.xmlcolocation_constraint_stops_master.dotcolocation_constraint_stops_master.expcolocation_constraint_stops_master.scorescolocation_constraint_stops_master.summarycolocation_constraint_stops_master.xmlcolocation_constraint_stops_slave.dotcolocation_constraint_stops_slave.expcolocation_constraint_stops_slave.scorescolocation_constraint_stops_slave.summarycolocation_constraint_stops_slave.xmlcomments.dotcomments.expcomments.scorescomments.summarycomments.xmlcomplex_enforce_colo.dotcomplex_enforce_colo.expcomplex_enforce_colo.scorescomplex_enforce_colo.summarycomplex_enforce_colo.xmlconcurrent-fencing.dotconcurrent-fencing.expconcurrent-fencing.scoresconcurrent-fencing.summaryconcurrent-fencing.xmlcontainer-1.dotcontainer-1.expcontainer-1.scorescontainer-1.summarycontainer-1.xmlcontainer-2.dotcontainer-2.expcontainer-2.scorescontainer-2.summarycontainer-2.xmlcontainer-3.dotcontainer-3.expcontainer-3.scorescontainer-3.summarycontainer-3.xmlcontainer-4.dotcontainer-4.expcontainer-4.scorescontainer-4.summarycontainer-4.xmlcontainer-group-1.dotcontainer-group-1.expcontainer-group-1.scorescontainer-group-1.summarycontainer-group-1.xmlcontainer-group-2.dotcontainer-group-2.expcontainer-group-2.scorescontainer-group-2.summarycontainer-group-2.xmlcontainer-group-3.dotcontainer-group-3.expcontainer-group-3.scorescontainer-group-3.summarycontainer-group-3.xmlcontainer-group-4.dotcontainer-group-4.expcontainer-group-4.scorescontainer-group-4.summarycontainer-group-4.xmlcontainer-is-remote-node.dotcontainer-is-remote-node.expcontainer-is-remote-node.scorescontainer-is-remote-node.summarycontainer-is-remote-node.xmldate-1.dotdate-1.expdate-1.scoresdate-1.summarydate-1.xmldate-2.dotdate-2.expdate-2.scoresdate-2.summarydate-2.xmldate-3.dotdate-3.expdate-3.scoresdate-3.summarydate-3.xmldc-fence-ordering.dotdc-fence-ordering.expdc-fence-ordering.scoresdc-fence-ordering.summarydc-fence-ordering.xmlenforce-colo1.dotenforce-colo1.expenforce-colo1.scoresenforce-colo1.summaryenforce-colo1.xmlexpire-non-blocked-failure.dotexpire-non-blocked-failure.expexpire-non-blocked-failure.scoresexpire-non-blocked-failure.summaryexpire-non-blocked-failure.xmlfailcount-block.dotfailcount-block.expfailcount-block.scoresfailcount-block.summaryfailcount-block.xmlfailcount.dotfailcount.expfailcount.scoresfailcount.summaryfailcount.xmlfailed-demote-recovery-master.dotfailed-demote-recovery-master.expfailed-demote-recovery-master.scoresfailed-demote-recovery-master.summaryfailed-demote-recovery-master.xmlfailed-demote-recovery.dotfailed-demote-recovery.expfailed-demote-recovery.scoresfailed-demote-recovery.summaryfailed-demote-recovery.xmlforce-anon-clone-max.dotforce-anon-clone-max.expforce-anon-clone-max.scoresforce-anon-clone-max.summaryforce-anon-clone-max.xmlgroup-dependents.dotgroup-dependents.expgroup-dependents.scoresgroup-dependents.summarygroup-dependents.xmlgroup-fail.dotgroup-fail.expgroup-fail.scoresgroup-fail.summarygroup-fail.xmlgroup-stop-ordering.dotgroup-stop-ordering.expgroup-stop-ordering.scoresgroup-stop-ordering.summarygroup-stop-ordering.xmlgroup-unmanaged-stopped.dotgroup-unmanaged-stopped.expgroup-unmanaged-stopped.scoresgroup-unmanaged-stopped.summarygroup-unmanaged-stopped.xmlgroup-unmanaged.dotgroup-unmanaged.expgroup-unmanaged.scoresgroup-unmanaged.summarygroup-unmanaged.xmlgroup1.dotgroup1.expgroup1.scoresgroup1.summarygroup1.xmlgroup10.dotgroup10.expgroup10.scoresgroup10.summarygroup10.xmlgroup11.dotgroup11.expgroup11.scoresgroup11.summarygroup11.xmlgroup13.dotgroup13.expgroup13.scoresgroup13.summarygroup13.xmlgroup14.dotgroup14.expgroup14.scoresgroup14.summarygroup14.xmlgroup15.dotgroup15.expgroup15.scoresgroup15.summarygroup15.xmlgroup2.dotgroup2.expgroup2.scoresgroup2.summarygroup2.xmlgroup3.dotgroup3.expgroup3.scoresgroup3.summarygroup3.xmlgroup4.dotgroup4.expgroup4.scoresgroup4.summarygroup4.xmlgroup5.dotgroup5.expgroup5.scoresgroup5.summarygroup5.xmlgroup6.dotgroup6.expgroup6.scoresgroup6.summarygroup6.xmlgroup7.dotgroup7.expgroup7.scoresgroup7.summarygroup7.xmlgroup8.dotgroup8.expgroup8.scoresgroup8.summarygroup8.xmlgroup9.dotgroup9.expgroup9.scoresgroup9.summarygroup9.xmlguest-node-cleanup.dotguest-node-cleanup.expguest-node-cleanup.scoresguest-node-cleanup.summaryguest-node-cleanup.xmlguest-node-host-dies.dotguest-node-host-dies.expguest-node-host-dies.scoresguest-node-host-dies.summaryguest-node-host-dies.xmlhistory-1.dothistory-1.exphistory-1.scoreshistory-1.summaryhistory-1.xmlhonor_stonith_rsc_order1.dothonor_stonith_rsc_order1.exphonor_stonith_rsc_order1.scoreshonor_stonith_rsc_order1.summaryhonor_stonith_rsc_order1.xmlhonor_stonith_rsc_order2.dothonor_stonith_rsc_order2.exphonor_stonith_rsc_order2.scoreshonor_stonith_rsc_order2.summaryhonor_stonith_rsc_order2.xmlhonor_stonith_rsc_order3.dothonor_stonith_rsc_order3.exphonor_stonith_rsc_order3.scoreshonor_stonith_rsc_order3.summaryhonor_stonith_rsc_order3.xmlhonor_stonith_rsc_order4.dothonor_stonith_rsc_order4.exphonor_stonith_rsc_order4.scoreshonor_stonith_rsc_order4.summaryhonor_stonith_rsc_order4.xmlignore_stonith_rsc_order1.dotignore_stonith_rsc_order1.expignore_stonith_rsc_order1.scoresignore_stonith_rsc_order1.summaryignore_stonith_rsc_order1.xmlignore_stonith_rsc_order2.dotignore_stonith_rsc_order2.expignore_stonith_rsc_order2.scoresignore_stonith_rsc_order2.summaryignore_stonith_rsc_order2.xmlignore_stonith_rsc_order3.dotignore_stonith_rsc_order3.expignore_stonith_rsc_order3.scoresignore_stonith_rsc_order3.summaryignore_stonith_rsc_order3.xmlignore_stonith_rsc_order4.dotignore_stonith_rsc_order4.expignore_stonith_rsc_order4.scoresignore_stonith_rsc_order4.summaryignore_stonith_rsc_order4.xmlinc0.dotinc0.expinc0.scoresinc0.summaryinc0.xmlinc1.dotinc1.expinc1.scoresinc1.summaryinc1.xmlinc10.dotinc10.expinc10.scoresinc10.summaryinc10.xmlinc11.dotinc11.expinc11.scoresinc11.summaryinc11.xmlinc12.dotinc12.expinc12.scoresinc12.summaryinc12.xmlinc2.dotinc2.expinc2.scoresinc2.summaryinc2.xmlinc3.dotinc3.expinc3.scoresinc3.summaryinc3.xmlinc4.dotinc4.expinc4.scoresinc4.summaryinc4.xmlinc5.dotinc5.expinc5.scoresinc5.summaryinc5.xmlinc6.dotinc6.expinc6.scoresinc6.summaryinc6.xmlinc7.dotinc7.expinc7.scoresinc7.summaryinc7.xmlinc8.dotinc8.expinc8.scoresinc8.summaryinc8.xmlinc9.dotinc9.expinc9.scoresinc9.summaryinc9.xmlinterleave-0.dotinterleave-0.expinterleave-0.scoresinterleave-0.summaryinterleave-0.xmlinterleave-1.dotinterleave-1.expinterleave-1.scoresinterleave-1.summaryinterleave-1.xmlinterleave-2.dotinterleave-2.expinterleave-2.scoresinterleave-2.summaryinterleave-2.xmlinterleave-3.dotinterleave-3.expinterleave-3.scoresinterleave-3.summaryinterleave-3.xmlinterleave-pseudo-stop.dotinterleave-pseudo-stop.expinterleave-pseudo-stop.scoresinterleave-pseudo-stop.summaryinterleave-pseudo-stop.xmlinterleave-restart.dotinterleave-restart.expinterleave-restart.scoresinterleave-restart.summaryinterleave-restart.xmlinterleave-stop.dotinterleave-stop.expinterleave-stop.scoresinterleave-stop.summaryinterleave-stop.xmlintervals.dotintervals.expintervals.scoresintervals.summaryintervals.xmlload-stopped-loop-2.dotload-stopped-loop-2.expload-stopped-loop-2.scoresload-stopped-loop-2.summaryload-stopped-loop-2.xmlload-stopped-loop.dotload-stopped-loop.expload-stopped-loop.scoresload-stopped-loop.summaryload-stopped-loop.xmllocation-sets-templates.dotlocation-sets-templates.explocation-sets-templates.scoreslocation-sets-templates.summarylocation-sets-templates.xmlmanaged-0.dotmanaged-0.expmanaged-0.scoresmanaged-0.summarymanaged-0.xmlmanaged-1.dotmanaged-1.expmanaged-1.scoresmanaged-1.summarymanaged-1.xmlmanaged-2.dotmanaged-2.expmanaged-2.scoresmanaged-2.summarymanaged-2.xmlmaster-0.dotmaster-0.expmaster-0.scoresmaster-0.summarymaster-0.xmlmaster-1.dotmaster-1.expmaster-1.scoresmaster-1.summarymaster-1.xmlmaster-10.dotmaster-10.expmaster-10.scoresmaster-10.summarymaster-10.xmlmaster-11.dotmaster-11.expmaster-11.scoresmaster-11.summarymaster-11.xmlmaster-12.dotmaster-12.expmaster-12.scoresmaster-12.summarymaster-12.xmlmaster-13.dotmaster-13.expmaster-13.scoresmaster-13.summarymaster-13.xmlmaster-2.dotmaster-2.expmaster-2.scoresmaster-2.summarymaster-2.xmlmaster-3.dotmaster-3.expmaster-3.scoresmaster-3.summarymaster-3.xmlmaster-4.dotmaster-4.expmaster-4.scoresmaster-4.summarymaster-4.xmlmaster-5.dotmaster-5.expmaster-5.scoresmaster-5.summarymaster-5.xmlmaster-6.dotmaster-6.expmaster-6.scoresmaster-6.summarymaster-6.xmlmaster-7.dotmaster-7.expmaster-7.scoresmaster-7.summarymaster-7.xmlmaster-8.dotmaster-8.expmaster-8.scoresmaster-8.summarymaster-8.xmlmaster-9.dotmaster-9.expmaster-9.scoresmaster-9.summarymaster-9.xmlmaster-allow-start.dotmaster-allow-start.expmaster-allow-start.scoresmaster-allow-start.summarymaster-allow-start.xmlmaster-asymmetrical-order.dotmaster-asymmetrical-order.expmaster-asymmetrical-order.scoresmaster-asymmetrical-order.summarymaster-asymmetrical-order.xmlmaster-colocation.dotmaster-colocation.expmaster-colocation.scoresmaster-colocation.summarymaster-colocation.xmlmaster-demote-2.dotmaster-demote-2.expmaster-demote-2.scoresmaster-demote-2.summarymaster-demote-2.xmlmaster-demote-block.dotmaster-demote-block.expmaster-demote-block.scoresmaster-demote-block.summarymaster-demote-block.xmlmaster-demote.dotmaster-demote.expmaster-demote.scoresmaster-demote.summarymaster-demote.xmlmaster-depend.dotmaster-depend.expmaster-depend.scoresmaster-depend.summarymaster-depend.xmlmaster-dependent-ban.dotmaster-dependent-ban.expmaster-dependent-ban.scoresmaster-dependent-ban.summarymaster-dependent-ban.xmlmaster-failed-demote-2.dotmaster-failed-demote-2.expmaster-failed-demote-2.scoresmaster-failed-demote-2.summarymaster-failed-demote-2.xmlmaster-failed-demote.dotmaster-failed-demote.expmaster-failed-demote.scoresmaster-failed-demote.summarymaster-failed-demote.xmlmaster-group.dotmaster-group.expmaster-group.scoresmaster-group.summarymaster-group.xmlmaster-move.dotmaster-move.expmaster-move.scoresmaster-move.summarymaster-move.xmlmaster-notify.dotmaster-notify.expmaster-notify.scoresmaster-notify.summarymaster-notify.xmlmaster-ordering.dotmaster-ordering.expmaster-ordering.scoresmaster-ordering.summarymaster-ordering.xmlmaster-partially-demoted-group.dotmaster-partially-demoted-group.expmaster-partially-demoted-group.scoresmaster-partially-demoted-group.summarymaster-partially-demoted-group.xmlmaster-probed-score.dotmaster-probed-score.expmaster-probed-score.scoresmaster-probed-score.summarymaster-probed-score.xmlmaster-promotion-constraint.dotmaster-promotion-constraint.expmaster-promotion-constraint.scoresmaster-promotion-constraint.summarymaster-promotion-constraint.xmlmaster-pseudo.dotmaster-pseudo.expmaster-pseudo.scoresmaster-pseudo.summarymaster-pseudo.xmlmaster-reattach.dotmaster-reattach.expmaster-reattach.scoresmaster-reattach.summarymaster-reattach.xmlmaster-role.dotmaster-role.expmaster-role.scoresmaster-role.summarymaster-role.xmlmaster-score-startup.dotmaster-score-startup.expmaster-score-startup.scoresmaster-score-startup.summarymaster-score-startup.xmlmaster-stop.dotmaster-stop.expmaster-stop.scoresmaster-stop.summarymaster-stop.xmlmaster-unmanaged-monitor.dotmaster-unmanaged-monitor.expmaster-unmanaged-monitor.scoresmaster-unmanaged-monitor.summarymaster-unmanaged-monitor.xmlmaster_monitor_restart.dotmaster_monitor_restart.expmaster_monitor_restart.scoresmaster_monitor_restart.summarymaster_monitor_restart.xmlmigrate-1.dotmigrate-1.expmigrate-1.scoresmigrate-1.summarymigrate-1.xmlmigrate-2.dotmigrate-2.expmigrate-2.scoresmigrate-2.summarymigrate-2.xmlmigrate-3.dotmigrate-3.expmigrate-3.scoresmigrate-3.summarymigrate-3.xmlmigrate-4.dotmigrate-4.expmigrate-4.scoresmigrate-4.summarymigrate-4.xmlmigrate-5.dotmigrate-5.expmigrate-5.scoresmigrate-5.summarymigrate-5.xmlmigrate-begin.dotmigrate-begin.expmigrate-begin.scoresmigrate-begin.summarymigrate-begin.xmlmigrate-both-vms.dotmigrate-both-vms.expmigrate-both-vms.scoresmigrate-both-vms.summarymigrate-both-vms.xmlmigrate-fail-2.dotmigrate-fail-2.expmigrate-fail-2.scoresmigrate-fail-2.summarymigrate-fail-2.xmlmigrate-fail-3.dotmigrate-fail-3.expmigrate-fail-3.scoresmigrate-fail-3.summarymigrate-fail-3.xmlmigrate-fail-4.dotmigrate-fail-4.expmigrate-fail-4.scoresmigrate-fail-4.summarymigrate-fail-4.xmlmigrate-fail-5.dotmigrate-fail-5.expmigrate-fail-5.scoresmigrate-fail-5.summarymigrate-fail-5.xmlmigrate-fail-6.dotmigrate-fail-6.expmigrate-fail-6.scoresmigrate-fail-6.summarymigrate-fail-6.xmlmigrate-fail-7.dotmigrate-fail-7.expmigrate-fail-7.scoresmigrate-fail-7.summarymigrate-fail-7.xmlmigrate-fail-8.dotmigrate-fail-8.expmigrate-fail-8.scoresmigrate-fail-8.summarymigrate-fail-8.xmlmigrate-fail-9.dotmigrate-fail-9.expmigrate-fail-9.scoresmigrate-fail-9.summarymigrate-fail-9.xmlmigrate-fencing.dotmigrate-fencing.expmigrate-fencing.scoresmigrate-fencing.summarymigrate-fencing.xmlmigrate-partial-1.dotmigrate-partial-1.expmigrate-partial-1.scoresmigrate-partial-1.summarymigrate-partial-1.xmlmigrate-partial-2.dotmigrate-partial-2.expmigrate-partial-2.scoresmigrate-partial-2.summarymigrate-partial-2.xmlmigrate-partial-3.dotmigrate-partial-3.expmigrate-partial-3.scoresmigrate-partial-3.summarymigrate-partial-3.xmlmigrate-partial-4.dotmigrate-partial-4.expmigrate-partial-4.scoresmigrate-partial-4.summarymigrate-partial-4.xmlmigrate-shutdown.dotmigrate-shutdown.expmigrate-shutdown.scoresmigrate-shutdown.summarymigrate-shutdown.xmlmigrate-start-complex.dotmigrate-start-complex.expmigrate-start-complex.scoresmigrate-start-complex.summarymigrate-start-complex.xmlmigrate-start.dotmigrate-start.expmigrate-start.scoresmigrate-start.summarymigrate-start.xmlmigrate-stop-complex.dotmigrate-stop-complex.expmigrate-stop-complex.scoresmigrate-stop-complex.summarymigrate-stop-complex.xmlmigrate-stop-start-complex.dotmigrate-stop-start-complex.expmigrate-stop-start-complex.scoresmigrate-stop-start-complex.summarymigrate-stop-start-complex.xmlmigrate-stop.dotmigrate-stop.expmigrate-stop.scoresmigrate-stop.summarymigrate-stop.xmlmigrate-stop_start.dotmigrate-stop_start.expmigrate-stop_start.scoresmigrate-stop_start.summarymigrate-stop_start.xmlmigrate-success.dotmigrate-success.expmigrate-success.scoresmigrate-success.summarymigrate-success.xmlmigrate-versioned.dotmigrate-versioned.expmigrate-versioned.scoresmigrate-versioned.summarymigrate-versioned.xmlmigration-behind-migrating-remote.dotmigration-behind-migrating-remote.expmigration-behind-migrating-remote.scoresmigration-behind-migrating-remote.summarymigration-behind-migrating-remote.xmlminimal.dotminimal.expminimal.scoresminimal.summaryminimal.xmlmon-rsc-1.dotmon-rsc-1.expmon-rsc-1.scoresmon-rsc-1.summarymon-rsc-1.xmlmon-rsc-2.dotmon-rsc-2.expmon-rsc-2.scoresmon-rsc-2.summarymon-rsc-2.xmlmon-rsc-3.dotmon-rsc-3.expmon-rsc-3.scoresmon-rsc-3.summarymon-rsc-3.xmlmon-rsc-4.dotmon-rsc-4.expmon-rsc-4.scoresmon-rsc-4.summarymon-rsc-4.xmlmonitor-onfail-restart.dotmonitor-onfail-restart.expmonitor-onfail-restart.scoresmonitor-onfail-restart.summarymonitor-onfail-restart.xmlmonitor-onfail-stop.dotmonitor-onfail-stop.expmonitor-onfail-stop.scoresmonitor-onfail-stop.summarymonitor-onfail-stop.xmlmonitor-recovery.dotmonitor-recovery.expmonitor-recovery.scoresmonitor-recovery.summarymonitor-recovery.xmlmulti1.dotmulti1.expmulti1.scoresmulti1.summarymulti1.xmlmultiple-active-block-group.dotmultiple-active-block-group.expmultiple-active-block-group.scoresmultiple-active-block-group.summarymultiple-active-block-group.xmlmultiple-monitor-one-failed.dotmultiple-monitor-one-failed.expmultiple-monitor-one-failed.scoresmultiple-monitor-one-failed.summarymultiple-monitor-one-failed.xmlmultiply-active-stonith.dotmultiply-active-stonith.expmultiply-active-stonith.scoresmultiply-active-stonith.summarymultiply-active-stonith.xmlnested-remote-recovery.dotnested-remote-recovery.expnested-remote-recovery.scoresnested-remote-recovery.summarynested-remote-recovery.xmlnode-maintenance-1.dotnode-maintenance-1.expnode-maintenance-1.scoresnode-maintenance-1.summarynode-maintenance-1.xmlnode-maintenance-2.dotnode-maintenance-2.expnode-maintenance-2.scoresnode-maintenance-2.summarynode-maintenance-2.xmlnot-installed-agent.dotnot-installed-agent.expnot-installed-agent.scoresnot-installed-agent.summarynot-installed-agent.xmlnot-installed-tools.dotnot-installed-tools.expnot-installed-tools.scoresnot-installed-tools.summarynot-installed-tools.xmlnot-reschedule-unneeded-monitor.dotnot-reschedule-unneeded-monitor.expnot-reschedule-unneeded-monitor.scoresnot-reschedule-unneeded-monitor.summarynot-reschedule-unneeded-monitor.xmlnotifs-for-unrunnable.dotnotifs-for-unrunnable.expnotifs-for-unrunnable.scoresnotifs-for-unrunnable.summarynotifs-for-unrunnable.xmlnotify-0.dotnotify-0.expnotify-0.scoresnotify-0.summarynotify-0.xmlnotify-1.dotnotify-1.expnotify-1.scoresnotify-1.summarynotify-1.xmlnotify-2.dotnotify-2.expnotify-2.scoresnotify-2.summarynotify-2.xmlnotify-3.dotnotify-3.expnotify-3.scoresnotify-3.summarynotify-3.xmlnotify-behind-stopping-remote.dotnotify-behind-stopping-remote.expnotify-behind-stopping-remote.scoresnotify-behind-stopping-remote.summarynotify-behind-stopping-remote.xmlnovell-239079.dotnovell-239079.expnovell-239079.scoresnovell-239079.summarynovell-239079.xmlnovell-239082.dotnovell-239082.expnovell-239082.scoresnovell-239082.summarynovell-239082.xmlnovell-239087.dotnovell-239087.expnovell-239087.scoresnovell-239087.summarynovell-239087.xmlnovell-251689.dotnovell-251689.expnovell-251689.scoresnovell-251689.summarynovell-251689.xmlnovell-252693-2.dotnovell-252693-2.expnovell-252693-2.scoresnovell-252693-2.summarynovell-252693-2.xmlnovell-252693-3.dotnovell-252693-3.expnovell-252693-3.scoresnovell-252693-3.summarynovell-252693-3.xmlnovell-252693.dotnovell-252693.expnovell-252693.scoresnovell-252693.summarynovell-252693.xmlnvpair-id-ref.dotnvpair-id-ref.expnvpair-id-ref.scoresnvpair-id-ref.summarynvpair-id-ref.xmlobsolete-lrm-resource.dotobsolete-lrm-resource.expobsolete-lrm-resource.scoresobsolete-lrm-resource.summaryobsolete-lrm-resource.xmlon-fail-ignore.doton-fail-ignore.expon-fail-ignore.scoreson-fail-ignore.summaryon-fail-ignore.xmlone-or-more-0.dotone-or-more-0.expone-or-more-0.scoresone-or-more-0.summaryone-or-more-0.xmlone-or-more-1.dotone-or-more-1.expone-or-more-1.scoresone-or-more-1.summaryone-or-more-1.xmlone-or-more-2.dotone-or-more-2.expone-or-more-2.scoresone-or-more-2.summaryone-or-more-2.xmlone-or-more-3.dotone-or-more-3.expone-or-more-3.scoresone-or-more-3.summaryone-or-more-3.xmlone-or-more-4.dotone-or-more-4.expone-or-more-4.scoresone-or-more-4.summaryone-or-more-4.xmlone-or-more-5.dotone-or-more-5.expone-or-more-5.scoresone-or-more-5.summaryone-or-more-5.xmlone-or-more-6.dotone-or-more-6.expone-or-more-6.scoresone-or-more-6.summaryone-or-more-6.xmlone-or-more-7.dotone-or-more-7.expone-or-more-7.scoresone-or-more-7.summaryone-or-more-7.xmlone-or-more-unrunnable-instances.dotone-or-more-unrunnable-instances.expone-or-more-unrunnable-instances.scoresone-or-more-unrunnable-instances.summaryone-or-more-unrunnable-instances.xmlorder-clone.dotorder-clone.exporder-clone.scoresorder-clone.summaryorder-clone.xmlorder-expired-failure.dotorder-expired-failure.exporder-expired-failure.scoresorder-expired-failure.summaryorder-expired-failure.xmlorder-first-probes.dotorder-first-probes.exporder-first-probes.scoresorder-first-probes.summaryorder-first-probes.xmlorder-mandatory.dotorder-mandatory.exporder-mandatory.scoresorder-mandatory.summaryorder-mandatory.xmlorder-optional-keyword.dotorder-optional-keyword.exporder-optional-keyword.scoresorder-optional-keyword.summaryorder-optional-keyword.xmlorder-optional.dotorder-optional.exporder-optional.scoresorder-optional.summaryorder-optional.xmlorder-required.dotorder-required.exporder-required.scoresorder-required.summaryorder-required.xmlorder-serialize-set.dotorder-serialize-set.exporder-serialize-set.scoresorder-serialize-set.summaryorder-serialize-set.xmlorder-serialize.dotorder-serialize.exporder-serialize.scoresorder-serialize.summaryorder-serialize.xmlorder-sets.dotorder-sets.exporder-sets.scoresorder-sets.summaryorder-sets.xmlorder-wrong-kind.dotorder-wrong-kind.exporder-wrong-kind.scoresorder-wrong-kind.stderrorder-wrong-kind.summaryorder-wrong-kind.xmlorder1.dotorder1.exporder1.scoresorder1.summaryorder1.xmlorder2.dotorder2.exporder2.scoresorder2.summaryorder2.xmlorder3.dotorder3.exporder3.scoresorder3.summaryorder3.xmlorder4.dotorder4.exporder4.scoresorder4.summaryorder4.xmlorder5.dotorder5.exporder5.scoresorder5.summaryorder5.xmlorder6.dotorder6.exporder6.scoresorder6.summaryorder6.xmlorder7.dotorder7.exporder7.scoresorder7.summaryorder7.xmlorder_constraint_stops_master.dotorder_constraint_stops_master.exporder_constraint_stops_master.scoresorder_constraint_stops_master.summaryorder_constraint_stops_master.xmlorder_constraint_stops_slave.dotorder_constraint_stops_slave.exporder_constraint_stops_slave.scoresorder_constraint_stops_slave.summaryorder_constraint_stops_slave.xmlordered-set-basic-startup.dotordered-set-basic-startup.expordered-set-basic-startup.scoresordered-set-basic-startup.summaryordered-set-basic-startup.xmlordered-set-natural.dotordered-set-natural.expordered-set-natural.scoresordered-set-natural.summaryordered-set-natural.xmlorigin.dotorigin.exporigin.scoresorigin.summaryorigin.xmlorphan-0.dotorphan-0.exporphan-0.scoresorphan-0.summaryorphan-0.xmlorphan-1.dotorphan-1.exporphan-1.scoresorphan-1.summaryorphan-1.xmlorphan-2.dotorphan-2.exporphan-2.scoresorphan-2.summaryorphan-2.xmlparams-0.dotparams-0.expparams-0.scoresparams-0.summaryparams-0.xmlparams-1.dotparams-1.expparams-1.scoresparams-1.summaryparams-1.xmlparams-2.dotparams-2.expparams-2.scoresparams-2.summaryparams-2.xmlparams-4.dotparams-4.expparams-4.scoresparams-4.summaryparams-4.xmlparams-5.dotparams-5.expparams-5.scoresparams-5.summaryparams-5.xmlparams-6.dotparams-6.expparams-6.scoresparams-6.summaryparams-6.xmlper-node-attrs.dotper-node-attrs.expper-node-attrs.scoresper-node-attrs.summaryper-node-attrs.xmlper-op-failcount.dotper-op-failcount.expper-op-failcount.scoresper-op-failcount.summaryper-op-failcount.xmlplacement-capacity.dotplacement-capacity.expplacement-capacity.scoresplacement-capacity.summaryplacement-capacity.xmlplacement-location.dotplacement-location.expplacement-location.scoresplacement-location.summaryplacement-location.xmlplacement-priority.dotplacement-priority.expplacement-priority.scoresplacement-priority.summaryplacement-priority.xmlplacement-stickiness.dotplacement-stickiness.expplacement-stickiness.scoresplacement-stickiness.summaryplacement-stickiness.xmlpriority-fencing-delay.dotpriority-fencing-delay.exppriority-fencing-delay.scorespriority-fencing-delay.summarypriority-fencing-delay.xmlprobe-0.dotprobe-0.expprobe-0.scoresprobe-0.summaryprobe-0.xmlprobe-1.dotprobe-1.expprobe-1.scoresprobe-1.summaryprobe-1.xmlprobe-2.dotprobe-2.expprobe-2.scoresprobe-2.summaryprobe-2.xmlprobe-3.dotprobe-3.expprobe-3.scoresprobe-3.summaryprobe-3.xmlprobe-4.dotprobe-4.expprobe-4.scoresprobe-4.summaryprobe-4.xmlprobe-timeout.dotprobe-timeout.expprobe-timeout.scoresprobe-timeout.summaryprobe-timeout.xmlquorum-1.dotquorum-1.expquorum-1.scoresquorum-1.summaryquorum-1.xmlquorum-2.dotquorum-2.expquorum-2.scoresquorum-2.summaryquorum-2.xmlquorum-3.dotquorum-3.expquorum-3.scoresquorum-3.summaryquorum-3.xmlquorum-4.dotquorum-4.expquorum-4.scoresquorum-4.summaryquorum-4.xmlquorum-5.dotquorum-5.expquorum-5.scoresquorum-5.summaryquorum-5.xmlquorum-6.dotquorum-6.expquorum-6.scoresquorum-6.summaryquorum-6.xmlrebalance-unique-clones.dotrebalance-unique-clones.exprebalance-unique-clones.scoresrebalance-unique-clones.summaryrebalance-unique-clones.xmlrec-node-1.dotrec-node-1.exprec-node-1.scoresrec-node-1.summaryrec-node-1.xmlrec-node-10.dotrec-node-10.exprec-node-10.scoresrec-node-10.summaryrec-node-10.xmlrec-node-11.dotrec-node-11.exprec-node-11.scoresrec-node-11.summaryrec-node-11.xmlrec-node-12.dotrec-node-12.exprec-node-12.scoresrec-node-12.summaryrec-node-12.xmlrec-node-13.dotrec-node-13.exprec-node-13.scoresrec-node-13.summaryrec-node-13.xmlrec-node-14.dotrec-node-14.exprec-node-14.scoresrec-node-14.summaryrec-node-14.xmlrec-node-15.dotrec-node-15.exprec-node-15.scoresrec-node-15.summaryrec-node-15.xmlrec-node-2.dotrec-node-2.exprec-node-2.scoresrec-node-2.summaryrec-node-2.xmlrec-node-3.dotrec-node-3.exprec-node-3.scoresrec-node-3.summaryrec-node-3.xmlrec-node-4.dotrec-node-4.exprec-node-4.scoresrec-node-4.summaryrec-node-4.xmlrec-node-5.dotrec-node-5.exprec-node-5.scoresrec-node-5.summaryrec-node-5.xmlrec-node-6.dotrec-node-6.exprec-node-6.scoresrec-node-6.summaryrec-node-6.xmlrec-node-7.dotrec-node-7.exprec-node-7.scoresrec-node-7.summaryrec-node-7.xmlrec-node-8.dotrec-node-8.exprec-node-8.scoresrec-node-8.summaryrec-node-8.xmlrec-node-9.dotrec-node-9.exprec-node-9.scoresrec-node-9.summaryrec-node-9.xmlrec-rsc-0.dotrec-rsc-0.exprec-rsc-0.scoresrec-rsc-0.summaryrec-rsc-0.xmlrec-rsc-1.dotrec-rsc-1.exprec-rsc-1.scoresrec-rsc-1.summaryrec-rsc-1.xmlrec-rsc-2.dotrec-rsc-2.exprec-rsc-2.scoresrec-rsc-2.summaryrec-rsc-2.xmlrec-rsc-3.dotrec-rsc-3.exprec-rsc-3.scoresrec-rsc-3.summaryrec-rsc-3.xmlrec-rsc-4.dotrec-rsc-4.exprec-rsc-4.scoresrec-rsc-4.summaryrec-rsc-4.xmlrec-rsc-5.dotrec-rsc-5.exprec-rsc-5.scoresrec-rsc-5.summaryrec-rsc-5.xmlrec-rsc-6.dotrec-rsc-6.exprec-rsc-6.scoresrec-rsc-6.summaryrec-rsc-6.xmlrec-rsc-7.dotrec-rsc-7.exprec-rsc-7.scoresrec-rsc-7.summaryrec-rsc-7.xmlrec-rsc-8.dotrec-rsc-8.exprec-rsc-8.scoresrec-rsc-8.summaryrec-rsc-8.xmlrec-rsc-9.dotrec-rsc-9.exprec-rsc-9.scoresrec-rsc-9.summaryrec-rsc-9.xmlreload-becomes-restart.dotreload-becomes-restart.expreload-becomes-restart.scoresreload-becomes-restart.summaryreload-becomes-restart.xmlreload-versioned.dotreload-versioned.expreload-versioned.scoresreload-versioned.summaryreload-versioned.xmlremote-connection-unrecoverable.dotremote-connection-unrecoverable.expremote-connection-unrecoverable.scoresremote-connection-unrecoverable.summaryremote-connection-unrecoverable.xmlremote-disable.dotremote-disable.expremote-disable.scoresremote-disable.summaryremote-disable.xmlremote-fence-before-reconnect.dotremote-fence-before-reconnect.expremote-fence-before-reconnect.scoresremote-fence-before-reconnect.summaryremote-fence-before-reconnect.xmlremote-fence-unclean-3.dotremote-fence-unclean-3.expremote-fence-unclean-3.scoresremote-fence-unclean-3.summaryremote-fence-unclean-3.xmlremote-fence-unclean.dotremote-fence-unclean.expremote-fence-unclean.scoresremote-fence-unclean.summaryremote-fence-unclean.xmlremote-fence-unclean2.dotremote-fence-unclean2.expremote-fence-unclean2.scoresremote-fence-unclean2.summaryremote-fence-unclean2.xmlremote-move.dotremote-move.expremote-move.scoresremote-move.summaryremote-move.xmlremote-orphaned.dotremote-orphaned.expremote-orphaned.scoresremote-orphaned.summaryremote-orphaned.xmlremote-orphaned2.dotremote-orphaned2.expremote-orphaned2.scoresremote-orphaned2.summaryremote-orphaned2.xmlremote-partial-migrate.dotremote-partial-migrate.expremote-partial-migrate.scoresremote-partial-migrate.summaryremote-partial-migrate.xmlremote-partial-migrate2.dotremote-partial-migrate2.expremote-partial-migrate2.scoresremote-partial-migrate2.summaryremote-partial-migrate2.xmlremote-probe-disable.dotremote-probe-disable.expremote-probe-disable.scoresremote-probe-disable.summaryremote-probe-disable.xmlremote-reconnect-delay.dotremote-reconnect-delay.expremote-reconnect-delay.scoresremote-reconnect-delay.summaryremote-reconnect-delay.xmlremote-recover-all.dotremote-recover-all.expremote-recover-all.scoresremote-recover-all.summaryremote-recover-all.xmlremote-recover-connection.dotremote-recover-connection.expremote-recover-connection.scoresremote-recover-connection.summaryremote-recover-connection.xmlremote-recover-fail.dotremote-recover-fail.expremote-recover-fail.scoresremote-recover-fail.summaryremote-recover-fail.xmlremote-recover-no-resources.dotremote-recover-no-resources.expremote-recover-no-resources.scoresremote-recover-no-resources.summaryremote-recover-no-resources.xmlremote-recover-unknown.dotremote-recover-unknown.expremote-recover-unknown.scoresremote-recover-unknown.summaryremote-recover-unknown.xmlremote-recover.dotremote-recover.expremote-recover.scoresremote-recover.summaryremote-recover.xmlremote-recovery.dotremote-recovery.expremote-recovery.scoresremote-recovery.summaryremote-recovery.xmlremote-stale-node-entry.dotremote-stale-node-entry.expremote-stale-node-entry.scoresremote-stale-node-entry.summaryremote-stale-node-entry.xmlremote-start-fail.dotremote-start-fail.expremote-start-fail.scoresremote-start-fail.summaryremote-start-fail.xmlremote-startup-probes.dotremote-startup-probes.expremote-startup-probes.scoresremote-startup-probes.summaryremote-startup-probes.xmlremote-startup.dotremote-startup.expremote-startup.scoresremote-startup.summaryremote-startup.xmlremote-unclean2.dotremote-unclean2.expremote-unclean2.scoresremote-unclean2.summaryremote-unclean2.xmlreprobe-target_rc.dotreprobe-target_rc.expreprobe-target_rc.scoresreprobe-target_rc.summaryreprobe-target_rc.xmlresource-discovery.dotresource-discovery.expresource-discovery.scoresresource-discovery.summaryresource-discovery.xmlrestart-versioned.dotrestart-versioned.exprestart-versioned.scoresrestart-versioned.summaryrestart-versioned.xmlroute-remote-notify.dotroute-remote-notify.exproute-remote-notify.scoresroute-remote-notify.summaryroute-remote-notify.xmlrsc-discovery-per-node.dotrsc-discovery-per-node.exprsc-discovery-per-node.scoresrsc-discovery-per-node.summaryrsc-discovery-per-node.xmlrsc-maintenance.dotrsc-maintenance.exprsc-maintenance.scoresrsc-maintenance.summaryrsc-maintenance.xmlrsc-sets-clone-1.dotrsc-sets-clone-1.exprsc-sets-clone-1.scoresrsc-sets-clone-1.summaryrsc-sets-clone-1.xmlrsc-sets-clone.dotrsc-sets-clone.exprsc-sets-clone.scoresrsc-sets-clone.summaryrsc-sets-clone.xmlrsc-sets-master.dotrsc-sets-master.exprsc-sets-master.scoresrsc-sets-master.summaryrsc-sets-master.xmlrsc-sets-seq-false.dotrsc-sets-seq-false.exprsc-sets-seq-false.scoresrsc-sets-seq-false.summaryrsc-sets-seq-false.xmlrsc-sets-seq-true.dotrsc-sets-seq-true.exprsc-sets-seq-true.scoresrsc-sets-seq-true.summaryrsc-sets-seq-true.xmlrsc_dep1.dotrsc_dep1.exprsc_dep1.scoresrsc_dep1.summaryrsc_dep1.xmlrsc_dep10.dotrsc_dep10.exprsc_dep10.scoresrsc_dep10.summaryrsc_dep10.xmlrsc_dep2.dotrsc_dep2.exprsc_dep2.scoresrsc_dep2.summaryrsc_dep2.xmlrsc_dep3.dotrsc_dep3.exprsc_dep3.scoresrsc_dep3.summaryrsc_dep3.xmlrsc_dep4.dotrsc_dep4.exprsc_dep4.scoresrsc_dep4.summaryrsc_dep4.xmlrsc_dep5.dotrsc_dep5.exprsc_dep5.scoresrsc_dep5.summaryrsc_dep5.xmlrsc_dep7.dotrsc_dep7.exprsc_dep7.scoresrsc_dep7.summaryrsc_dep7.xmlrsc_dep8.dotrsc_dep8.exprsc_dep8.scoresrsc_dep8.summaryrsc_dep8.xmlshutdown-maintenance-node.dotshutdown-maintenance-node.expshutdown-maintenance-node.scoresshutdown-maintenance-node.summaryshutdown-maintenance-node.xmlsimple1.dotsimple1.expsimple1.scoressimple1.summarysimple1.xmlsimple11.dotsimple11.expsimple11.scoressimple11.summarysimple11.xmlsimple12.dotsimple12.expsimple12.scoressimple12.summarysimple12.xmlsimple2.dotsimple2.expsimple2.scoressimple2.summarysimple2.xmlsimple3.dotsimple3.expsimple3.scoressimple3.summarysimple3.xmlsimple4.dotsimple4.expsimple4.scoressimple4.summarysimple4.xmlsimple6.dotsimple6.expsimple6.scoressimple6.summarysimple6.xmlsimple7.dotsimple7.expsimple7.scoressimple7.summarysimple7.xmlsimple8.dotsimple8.expsimple8.scoressimple8.summarysimple8.xmlsite-specific-params.dotsite-specific-params.expsite-specific-params.scoressite-specific-params.summarysite-specific-params.xmlstandby.dotstandby.expstandby.scoresstandby.summarystandby.xmlstart-then-stop-with-unfence.dotstart-then-stop-with-unfence.expstart-then-stop-with-unfence.scoresstart-then-stop-with-unfence.summarystart-then-stop-with-unfence.xmlstonith-0.dotstonith-0.expstonith-0.scoresstonith-0.summarystonith-0.xmlstonith-1.dotstonith-1.expstonith-1.scoresstonith-1.summarystonith-1.xmlstonith-2.dotstonith-2.expstonith-2.scoresstonith-2.summarystonith-2.xmlstonith-3.dotstonith-3.expstonith-3.scoresstonith-3.summarystonith-3.xmlstonith-4.dotstonith-4.expstonith-4.scoresstonith-4.summarystonith-4.xmlstop-failure-no-fencing.dotstop-failure-no-fencing.expstop-failure-no-fencing.scoresstop-failure-no-fencing.summarystop-failure-no-fencing.xmlstop-failure-no-quorum.dotstop-failure-no-quorum.expstop-failure-no-quorum.scoresstop-failure-no-quorum.summarystop-failure-no-quorum.xmlstop-failure-with-fencing.dotstop-failure-with-fencing.expstop-failure-with-fencing.scoresstop-failure-with-fencing.summarystop-failure-with-fencing.xmlstopped-monitor-00.dotstopped-monitor-00.expstopped-monitor-00.scoresstopped-monitor-00.summarystopped-monitor-00.xmlstopped-monitor-01.dotstopped-monitor-01.expstopped-monitor-01.scoresstopped-monitor-01.summarystopped-monitor-01.xmlstopped-monitor-02.dotstopped-monitor-02.expstopped-monitor-02.scoresstopped-monitor-02.summarystopped-monitor-02.xmlstopped-monitor-03.dotstopped-monitor-03.expstopped-monitor-03.scoresstopped-monitor-03.summarystopped-monitor-03.xmlstopped-monitor-04.dotstopped-monitor-04.expstopped-monitor-04.scoresstopped-monitor-04.summarystopped-monitor-04.xmlstopped-monitor-05.dotstopped-monitor-05.expstopped-monitor-05.scoresstopped-monitor-05.summarystopped-monitor-05.xmlstopped-monitor-06.dotstopped-monitor-06.expstopped-monitor-06.scoresstopped-monitor-06.summarystopped-monitor-06.xmlstopped-monitor-07.dotstopped-monitor-07.expstopped-monitor-07.scoresstopped-monitor-07.summarystopped-monitor-07.xmlstopped-monitor-08.dotstopped-monitor-08.expstopped-monitor-08.scoresstopped-monitor-08.summarystopped-monitor-08.xmlstopped-monitor-09.dotstopped-monitor-09.expstopped-monitor-09.scoresstopped-monitor-09.summarystopped-monitor-09.xmlstopped-monitor-10.dotstopped-monitor-10.expstopped-monitor-10.scoresstopped-monitor-10.summarystopped-monitor-10.xmlstopped-monitor-11.dotstopped-monitor-11.expstopped-monitor-11.scoresstopped-monitor-11.summarystopped-monitor-11.xmlstopped-monitor-12.dotstopped-monitor-12.expstopped-monitor-12.scoresstopped-monitor-12.summarystopped-monitor-12.xmlstopped-monitor-20.dotstopped-monitor-20.expstopped-monitor-20.scoresstopped-monitor-20.summarystopped-monitor-20.xmlstopped-monitor-21.dotstopped-monitor-21.expstopped-monitor-21.scoresstopped-monitor-21.summarystopped-monitor-21.xmlstopped-monitor-22.dotstopped-monitor-22.expstopped-monitor-22.scoresstopped-monitor-22.summarystopped-monitor-22.xmlstopped-monitor-23.dotstopped-monitor-23.expstopped-monitor-23.scoresstopped-monitor-23.summarystopped-monitor-23.xmlstopped-monitor-24.dotstopped-monitor-24.expstopped-monitor-24.scoresstopped-monitor-24.summarystopped-monitor-24.xmlstopped-monitor-25.dotstopped-monitor-25.expstopped-monitor-25.scoresstopped-monitor-25.summarystopped-monitor-25.xmlstopped-monitor-26.dotstopped-monitor-26.expstopped-monitor-26.scoresstopped-monitor-26.summarystopped-monitor-26.xmlstopped-monitor-27.dotstopped-monitor-27.expstopped-monitor-27.scoresstopped-monitor-27.summarystopped-monitor-27.xmlstopped-monitor-30.dotstopped-monitor-30.expstopped-monitor-30.scoresstopped-monitor-30.summarystopped-monitor-30.xmlstopped-monitor-31.dotstopped-monitor-31.expstopped-monitor-31.scoresstopped-monitor-31.summarystopped-monitor-31.xmlsuicide-needed-inquorate.dotsuicide-needed-inquorate.expsuicide-needed-inquorate.scoressuicide-needed-inquorate.summarysuicide-needed-inquorate.xmlsuicide-not-needed-initial-quorum.dotsuicide-not-needed-initial-quorum.expsuicide-not-needed-initial-quorum.scoressuicide-not-needed-initial-quorum.summarysuicide-not-needed-initial-quorum.xmlsuicide-not-needed-never-quorate.dotsuicide-not-needed-never-quorate.expsuicide-not-needed-never-quorate.scoressuicide-not-needed-never-quorate.summarysuicide-not-needed-never-quorate.xmlsuicide-not-needed-quorate.dotsuicide-not-needed-quorate.expsuicide-not-needed-quorate.scoressuicide-not-needed-quorate.summarysuicide-not-needed-quorate.xmlsystemhealth1.dotsystemhealth1.expsystemhealth1.scoressystemhealth1.summarysystemhealth1.xmlsystemhealth2.dotsystemhealth2.expsystemhealth2.scoressystemhealth2.summarysystemhealth2.xmlsystemhealth3.dotsystemhealth3.expsystemhealth3.scoressystemhealth3.summarysystemhealth3.xmlsystemhealthm1.dotsystemhealthm1.expsystemhealthm1.scoressystemhealthm1.summarysystemhealthm1.xmlsystemhealthm2.dotsystemhealthm2.expsystemhealthm2.scoressystemhealthm2.summarysystemhealthm2.xmlsystemhealthm3.dotsystemhealthm3.expsystemhealthm3.scoressystemhealthm3.summarysystemhealthm3.xmlsystemhealthn1.dotsystemhealthn1.expsystemhealthn1.scoressystemhealthn1.summarysystemhealthn1.xmlsystemhealthn2.dotsystemhealthn2.expsystemhealthn2.scoressystemhealthn2.summarysystemhealthn2.xmlsystemhealthn3.dotsystemhealthn3.expsystemhealthn3.scoressystemhealthn3.summarysystemhealthn3.xmlsystemhealtho1.dotsystemhealtho1.expsystemhealtho1.scoressystemhealtho1.summarysystemhealtho1.xmlsystemhealtho2.dotsystemhealtho2.expsystemhealtho2.scoressystemhealtho2.summarysystemhealtho2.xmlsystemhealtho3.dotsystemhealtho3.expsystemhealtho3.scoressystemhealtho3.summarysystemhealtho3.xmlsystemhealthp1.dotsystemhealthp1.expsystemhealthp1.scoressystemhealthp1.summarysystemhealthp1.xmlsystemhealthp2.dotsystemhealthp2.expsystemhealthp2.scoressystemhealthp2.summarysystemhealthp2.xmlsystemhealthp3.dotsystemhealthp3.expsystemhealthp3.scoressystemhealthp3.summarysystemhealthp3.xmltags-coloc-order-1.dottags-coloc-order-1.exptags-coloc-order-1.scorestags-coloc-order-1.summarytags-coloc-order-1.xmltags-coloc-order-2.dottags-coloc-order-2.exptags-coloc-order-2.scorestags-coloc-order-2.summarytags-coloc-order-2.xmltags-location.dottags-location.exptags-location.scorestags-location.summarytags-location.xmltags-ticket.dottags-ticket.exptags-ticket.scorestags-ticket.summarytags-ticket.xmltarget-0.dottarget-0.exptarget-0.scorestarget-0.summarytarget-0.xmltarget-1.dottarget-1.exptarget-1.scorestarget-1.summarytarget-1.xmltarget-2.dottarget-2.exptarget-2.scorestarget-2.summarytarget-2.xmltemplate-1.dottemplate-1.exptemplate-1.scorestemplate-1.summarytemplate-1.xmltemplate-2.dottemplate-2.exptemplate-2.scorestemplate-2.summarytemplate-2.xmltemplate-3.dottemplate-3.exptemplate-3.scorestemplate-3.summarytemplate-3.xmltemplate-clone-group.dottemplate-clone-group.exptemplate-clone-group.scorestemplate-clone-group.summarytemplate-clone-group.xmltemplate-clone-primitive.dottemplate-clone-primitive.exptemplate-clone-primitive.scorestemplate-clone-primitive.summarytemplate-clone-primitive.xmltemplate-coloc-1.dottemplate-coloc-1.exptemplate-coloc-1.scorestemplate-coloc-1.summarytemplate-coloc-1.xmltemplate-coloc-2.dottemplate-coloc-2.exptemplate-coloc-2.scorestemplate-coloc-2.summarytemplate-coloc-2.xmltemplate-coloc-3.dottemplate-coloc-3.exptemplate-coloc-3.scorestemplate-coloc-3.summarytemplate-coloc-3.xmltemplate-order-1.dottemplate-order-1.exptemplate-order-1.scorestemplate-order-1.summarytemplate-order-1.xmltemplate-order-2.dottemplate-order-2.exptemplate-order-2.scorestemplate-order-2.summarytemplate-order-2.xmltemplate-order-3.dottemplate-order-3.exptemplate-order-3.scorestemplate-order-3.summarytemplate-order-3.xmltemplate-rsc-sets-1.dottemplate-rsc-sets-1.exptemplate-rsc-sets-1.scorestemplate-rsc-sets-1.summarytemplate-rsc-sets-1.xmltemplate-rsc-sets-2.dottemplate-rsc-sets-2.exptemplate-rsc-sets-2.scorestemplate-rsc-sets-2.summarytemplate-rsc-sets-2.xmltemplate-rsc-sets-3.dottemplate-rsc-sets-3.exptemplate-rsc-sets-3.scorestemplate-rsc-sets-3.summarytemplate-rsc-sets-3.xmltemplate-rsc-sets-4.dottemplate-rsc-sets-4.exptemplate-rsc-sets-4.scorestemplate-rsc-sets-4.summarytemplate-rsc-sets-4.xmltemplate-ticket.dottemplate-ticket.exptemplate-ticket.scorestemplate-ticket.summarytemplate-ticket.xmlticket-clone-1.dotticket-clone-1.expticket-clone-1.scoresticket-clone-1.summaryticket-clone-1.xmlticket-clone-10.dotticket-clone-10.expticket-clone-10.scoresticket-clone-10.summaryticket-clone-10.xmlticket-clone-11.dotticket-clone-11.expticket-clone-11.scoresticket-clone-11.summaryticket-clone-11.xmlticket-clone-12.dotticket-clone-12.expticket-clone-12.scoresticket-clone-12.summaryticket-clone-12.xmlticket-clone-13.dotticket-clone-13.expticket-clone-13.scoresticket-clone-13.summaryticket-clone-13.xmlticket-clone-14.dotticket-clone-14.expticket-clone-14.scoresticket-clone-14.summaryticket-clone-14.xmlticket-clone-15.dotticket-clone-15.expticket-clone-15.scoresticket-clone-15.summaryticket-clone-15.xmlticket-clone-16.dotticket-clone-16.expticket-clone-16.scoresticket-clone-16.summaryticket-clone-16.xmlticket-clone-17.dotticket-clone-17.expticket-clone-17.scoresticket-clone-17.summaryticket-clone-17.xmlticket-clone-18.dotticket-clone-18.expticket-clone-18.scoresticket-clone-18.summaryticket-clone-18.xmlticket-clone-19.dotticket-clone-19.expticket-clone-19.scoresticket-clone-19.summaryticket-clone-19.xmlticket-clone-2.dotticket-clone-2.expticket-clone-2.scoresticket-clone-2.summaryticket-clone-2.xmlticket-clone-20.dotticket-clone-20.expticket-clone-20.scoresticket-clone-20.summaryticket-clone-20.xmlticket-clone-21.dotticket-clone-21.expticket-clone-21.scoresticket-clone-21.summaryticket-clone-21.xmlticket-clone-22.dotticket-clone-22.expticket-clone-22.scoresticket-clone-22.summaryticket-clone-22.xmlticket-clone-23.dotticket-clone-23.expticket-clone-23.scoresticket-clone-23.summaryticket-clone-23.xmlticket-clone-24.dotticket-clone-24.expticket-clone-24.scoresticket-clone-24.summaryticket-clone-24.xmlticket-clone-3.dotticket-clone-3.expticket-clone-3.scoresticket-clone-3.summaryticket-clone-3.xmlticket-clone-4.dotticket-clone-4.expticket-clone-4.scoresticket-clone-4.summaryticket-clone-4.xmlticket-clone-5.dotticket-clone-5.expticket-clone-5.scoresticket-clone-5.summaryticket-clone-5.xmlticket-clone-6.dotticket-clone-6.expticket-clone-6.scoresticket-clone-6.summaryticket-clone-6.xmlticket-clone-7.dotticket-clone-7.expticket-clone-7.scoresticket-clone-7.summaryticket-clone-7.xmlticket-clone-8.dotticket-clone-8.expticket-clone-8.scoresticket-clone-8.summaryticket-clone-8.xmlticket-clone-9.dotticket-clone-9.expticket-clone-9.scoresticket-clone-9.summaryticket-clone-9.xmlticket-group-1.dotticket-group-1.expticket-group-1.scoresticket-group-1.summaryticket-group-1.xmlticket-group-10.dotticket-group-10.expticket-group-10.scoresticket-group-10.summaryticket-group-10.xmlticket-group-11.dotticket-group-11.expticket-group-11.scoresticket-group-11.summaryticket-group-11.xmlticket-group-12.dotticket-group-12.expticket-group-12.scoresticket-group-12.summaryticket-group-12.xmlticket-group-13.dotticket-group-13.expticket-group-13.scoresticket-group-13.summaryticket-group-13.xmlticket-group-14.dotticket-group-14.expticket-group-14.scoresticket-group-14.summaryticket-group-14.xmlticket-group-15.dotticket-group-15.expticket-group-15.scoresticket-group-15.summaryticket-group-15.xmlticket-group-16.dotticket-group-16.expticket-group-16.scoresticket-group-16.summaryticket-group-16.xmlticket-group-17.dotticket-group-17.expticket-group-17.scoresticket-group-17.summaryticket-group-17.xmlticket-group-18.dotticket-group-18.expticket-group-18.scoresticket-group-18.summaryticket-group-18.xmlticket-group-19.dotticket-group-19.expticket-group-19.scoresticket-group-19.summaryticket-group-19.xmlticket-group-2.dotticket-group-2.expticket-group-2.scoresticket-group-2.summaryticket-group-2.xmlticket-group-20.dotticket-group-20.expticket-group-20.scoresticket-group-20.summaryticket-group-20.xmlticket-group-21.dotticket-group-21.expticket-group-21.scoresticket-group-21.summaryticket-group-21.xmlticket-group-22.dotticket-group-22.expticket-group-22.scoresticket-group-22.summaryticket-group-22.xmlticket-group-23.dotticket-group-23.expticket-group-23.scoresticket-group-23.summaryticket-group-23.xmlticket-group-24.dotticket-group-24.expticket-group-24.scoresticket-group-24.summaryticket-group-24.xmlticket-group-3.dotticket-group-3.expticket-group-3.scoresticket-group-3.summaryticket-group-3.xmlticket-group-4.dotticket-group-4.expticket-group-4.scoresticket-group-4.summaryticket-group-4.xmlticket-group-5.dotticket-group-5.expticket-group-5.scoresticket-group-5.summaryticket-group-5.xmlticket-group-6.dotticket-group-6.expticket-group-6.scoresticket-group-6.summaryticket-group-6.xmlticket-group-7.dotticket-group-7.expticket-group-7.scoresticket-group-7.summaryticket-group-7.xmlticket-group-8.dotticket-group-8.expticket-group-8.scoresticket-group-8.summaryticket-group-8.xmlticket-group-9.dotticket-group-9.expticket-group-9.scoresticket-group-9.summaryticket-group-9.xmlticket-master-1.dotticket-master-1.expticket-master-1.scoresticket-master-1.summaryticket-master-1.xmlticket-master-10.dotticket-master-10.expticket-master-10.scoresticket-master-10.summaryticket-master-10.xmlticket-master-11.dotticket-master-11.expticket-master-11.scoresticket-master-11.summaryticket-master-11.xmlticket-master-12.dotticket-master-12.expticket-master-12.scoresticket-master-12.summaryticket-master-12.xmlticket-master-13.dotticket-master-13.expticket-master-13.scoresticket-master-13.summaryticket-master-13.xmlticket-master-14.dotticket-master-14.expticket-master-14.scoresticket-master-14.summaryticket-master-14.xmlticket-master-15.dotticket-master-15.expticket-master-15.scoresticket-master-15.summaryticket-master-15.xmlticket-master-16.dotticket-master-16.expticket-master-16.scoresticket-master-16.summaryticket-master-16.xmlticket-master-17.dotticket-master-17.expticket-master-17.scoresticket-master-17.summaryticket-master-17.xmlticket-master-18.dotticket-master-18.expticket-master-18.scoresticket-master-18.summaryticket-master-18.xmlticket-master-19.dotticket-master-19.expticket-master-19.scoresticket-master-19.summaryticket-master-19.xmlticket-master-2.dotticket-master-2.expticket-master-2.scoresticket-master-2.summaryticket-master-2.xmlticket-master-20.dotticket-master-20.expticket-master-20.scoresticket-master-20.summaryticket-master-20.xmlticket-master-21.dotticket-master-21.expticket-master-21.scoresticket-master-21.summaryticket-master-21.xmlticket-master-22.dotticket-master-22.expticket-master-22.scoresticket-master-22.summaryticket-master-22.xmlticket-master-23.dotticket-master-23.expticket-master-23.scoresticket-master-23.summaryticket-master-23.xmlticket-master-24.dotticket-master-24.expticket-master-24.scoresticket-master-24.summaryticket-master-24.xmlticket-master-3.dotticket-master-3.expticket-master-3.scoresticket-master-3.summaryticket-master-3.xmlticket-master-4.dotticket-master-4.expticket-master-4.scoresticket-master-4.summaryticket-master-4.xmlticket-master-5.dotticket-master-5.expticket-master-5.scoresticket-master-5.summaryticket-master-5.xmlticket-master-6.dotticket-master-6.expticket-master-6.scoresticket-master-6.summaryticket-master-6.xmlticket-master-7.dotticket-master-7.expticket-master-7.scoresticket-master-7.summaryticket-master-7.xmlticket-master-8.dotticket-master-8.expticket-master-8.scoresticket-master-8.summaryticket-master-8.xmlticket-master-9.dotticket-master-9.expticket-master-9.scoresticket-master-9.summaryticket-master-9.xmlticket-primitive-1.dotticket-primitive-1.expticket-primitive-1.scoresticket-primitive-1.summaryticket-primitive-1.xmlticket-primitive-10.dotticket-primitive-10.expticket-primitive-10.scoresticket-primitive-10.summaryticket-primitive-10.xmlticket-primitive-11.dotticket-primitive-11.expticket-primitive-11.scoresticket-primitive-11.summaryticket-primitive-11.xmlticket-primitive-12.dotticket-primitive-12.expticket-primitive-12.scoresticket-primitive-12.summaryticket-primitive-12.xmlticket-primitive-13.dotticket-primitive-13.expticket-primitive-13.scoresticket-primitive-13.summaryticket-primitive-13.xmlticket-primitive-14.dotticket-primitive-14.expticket-primitive-14.scoresticket-primitive-14.summaryticket-primitive-14.xmlticket-primitive-15.dotticket-primitive-15.expticket-primitive-15.scoresticket-primitive-15.summaryticket-primitive-15.xmlticket-primitive-16.dotticket-primitive-16.expticket-primitive-16.scoresticket-primitive-16.summaryticket-primitive-16.xmlticket-primitive-17.dotticket-primitive-17.expticket-primitive-17.scoresticket-primitive-17.summaryticket-primitive-17.xmlticket-primitive-18.dotticket-primitive-18.expticket-primitive-18.scoresticket-primitive-18.summaryticket-primitive-18.xmlticket-primitive-19.dotticket-primitive-19.expticket-primitive-19.scoresticket-primitive-19.summaryticket-primitive-19.xmlticket-primitive-2.dotticket-primitive-2.expticket-primitive-2.scoresticket-primitive-2.summaryticket-primitive-2.xmlticket-primitive-20.dotticket-primitive-20.expticket-primitive-20.scoresticket-primitive-20.summaryticket-primitive-20.xmlticket-primitive-21.dotticket-primitive-21.expticket-primitive-21.scoresticket-primitive-21.summaryticket-primitive-21.xmlticket-primitive-22.dotticket-primitive-22.expticket-primitive-22.scoresticket-primitive-22.summaryticket-primitive-22.xmlticket-primitive-23.dotticket-primitive-23.expticket-primitive-23.scoresticket-primitive-23.summaryticket-primitive-23.xmlticket-primitive-24.dotticket-primitive-24.expticket-primitive-24.scoresticket-primitive-24.summaryticket-primitive-24.xmlticket-primitive-3.dotticket-primitive-3.expticket-primitive-3.scoresticket-primitive-3.summaryticket-primitive-3.xmlticket-primitive-4.dotticket-primitive-4.expticket-primitive-4.scoresticket-primitive-4.summaryticket-primitive-4.xmlticket-primitive-5.dotticket-primitive-5.expticket-primitive-5.scoresticket-primitive-5.summaryticket-primitive-5.xmlticket-primitive-6.dotticket-primitive-6.expticket-primitive-6.scoresticket-primitive-6.summaryticket-primitive-6.xmlticket-primitive-7.dotticket-primitive-7.expticket-primitive-7.scoresticket-primitive-7.summaryticket-primitive-7.xmlticket-primitive-8.dotticket-primitive-8.expticket-primitive-8.scoresticket-primitive-8.summaryticket-primitive-8.xmlticket-primitive-9.dotticket-primitive-9.expticket-primitive-9.scoresticket-primitive-9.summaryticket-primitive-9.xmlticket-rsc-sets-1.dotticket-rsc-sets-1.expticket-rsc-sets-1.scoresticket-rsc-sets-1.summaryticket-rsc-sets-1.xmlticket-rsc-sets-10.dotticket-rsc-sets-10.expticket-rsc-sets-10.scoresticket-rsc-sets-10.summaryticket-rsc-sets-10.xmlticket-rsc-sets-11.dotticket-rsc-sets-11.expticket-rsc-sets-11.scoresticket-rsc-sets-11.summaryticket-rsc-sets-11.xmlticket-rsc-sets-12.dotticket-rsc-sets-12.expticket-rsc-sets-12.scoresticket-rsc-sets-12.summaryticket-rsc-sets-12.xmlticket-rsc-sets-13.dotticket-rsc-sets-13.expticket-rsc-sets-13.scoresticket-rsc-sets-13.summaryticket-rsc-sets-13.xmlticket-rsc-sets-14.dotticket-rsc-sets-14.expticket-rsc-sets-14.scoresticket-rsc-sets-14.summaryticket-rsc-sets-14.xmlticket-rsc-sets-2.dotticket-rsc-sets-2.expticket-rsc-sets-2.scoresticket-rsc-sets-2.summaryticket-rsc-sets-2.xmlticket-rsc-sets-3.dotticket-rsc-sets-3.expticket-rsc-sets-3.scoresticket-rsc-sets-3.summaryticket-rsc-sets-3.xmlticket-rsc-sets-4.dotticket-rsc-sets-4.expticket-rsc-sets-4.scoresticket-rsc-sets-4.summaryticket-rsc-sets-4.xmlticket-rsc-sets-5.dotticket-rsc-sets-5.expticket-rsc-sets-5.scoresticket-rsc-sets-5.summaryticket-rsc-sets-5.xmlticket-rsc-sets-6.dotticket-rsc-sets-6.expticket-rsc-sets-6.scoresticket-rsc-sets-6.summaryticket-rsc-sets-6.xmlticket-rsc-sets-7.dotticket-rsc-sets-7.expticket-rsc-sets-7.scoresticket-rsc-sets-7.summaryticket-rsc-sets-7.xmlticket-rsc-sets-8.dotticket-rsc-sets-8.expticket-rsc-sets-8.scoresticket-rsc-sets-8.summaryticket-rsc-sets-8.xmlticket-rsc-sets-9.dotticket-rsc-sets-9.expticket-rsc-sets-9.scoresticket-rsc-sets-9.summaryticket-rsc-sets-9.xmlunfence-definition.dotunfence-definition.expunfence-definition.scoresunfence-definition.summaryunfence-definition.xmlunfence-device.dotunfence-device.expunfence-device.scoresunfence-device.summaryunfence-device.xmlunfence-parameters.dotunfence-parameters.expunfence-parameters.scoresunfence-parameters.summaryunfence-parameters.xmlunfence-startup.dotunfence-startup.expunfence-startup.scoresunfence-startup.summaryunfence-startup.xmlunmanaged-block-restart.dotunmanaged-block-restart.expunmanaged-block-restart.scoresunmanaged-block-restart.summaryunmanaged-block-restart.xmlunmanaged-master.dotunmanaged-master.expunmanaged-master.scoresunmanaged-master.summaryunmanaged-master.xmlunmanaged-stop-1.dotunmanaged-stop-1.expunmanaged-stop-1.scoresunmanaged-stop-1.summaryunmanaged-stop-1.xmlunmanaged-stop-2.dotunmanaged-stop-2.expunmanaged-stop-2.scoresunmanaged-stop-2.summaryunmanaged-stop-2.xmlunmanaged-stop-3.dotunmanaged-stop-3.expunmanaged-stop-3.scoresunmanaged-stop-3.summaryunmanaged-stop-3.xmlunmanaged-stop-4.dotunmanaged-stop-4.expunmanaged-stop-4.scoresunmanaged-stop-4.summaryunmanaged-stop-4.xmlunrunnable-1.dotunrunnable-1.expunrunnable-1.scoresunrunnable-1.summaryunrunnable-1.xmlunrunnable-2.dotunrunnable-2.expunrunnable-2.scoresunrunnable-2.summaryunrunnable-2.xmluse-after-free-merge.dotuse-after-free-merge.expuse-after-free-merge.scoresuse-after-free-merge.summaryuse-after-free-merge.xmlutilization-check-allowed-nodes.dotutilization-check-allowed-nodes.exputilization-check-allowed-nodes.scoresutilization-check-allowed-nodes.summaryutilization-check-allowed-nodes.xmlutilization-order1.dotutilization-order1.exputilization-order1.scoresutilization-order1.summaryutilization-order1.xmlutilization-order2.dotutilization-order2.exputilization-order2.scoresutilization-order2.summaryutilization-order2.xmlutilization-order3.dotutilization-order3.exputilization-order3.scoresutilization-order3.summaryutilization-order3.xmlutilization-order4.dotutilization-order4.exputilization-order4.scoresutilization-order4.summaryutilization-order4.xmlutilization-shuffle.dotutilization-shuffle.exputilization-shuffle.scoresutilization-shuffle.summaryutilization-shuffle.xmlutilization.dotutilization.exputilization.scoresutilization.summaryutilization.xmlversioned-operations-1.dotversioned-operations-1.expversioned-operations-1.scoresversioned-operations-1.summaryversioned-operations-1.xmlversioned-operations-2.dotversioned-operations-2.expversioned-operations-2.scoresversioned-operations-2.summaryversioned-operations-2.xmlversioned-operations-3.dotversioned-operations-3.expversioned-operations-3.scoresversioned-operations-3.summaryversioned-operations-3.xmlversioned-operations-4.dotversioned-operations-4.expversioned-operations-4.scoresversioned-operations-4.summaryversioned-operations-4.xmlversioned-resources.dotversioned-resources.expversioned-resources.scoresversioned-resources.summaryversioned-resources.xmlwhitebox-asymmetric.dotwhitebox-asymmetric.expwhitebox-asymmetric.scoreswhitebox-asymmetric.summarywhitebox-asymmetric.xmlwhitebox-fail1.dotwhitebox-fail1.expwhitebox-fail1.scoreswhitebox-fail1.summarywhitebox-fail1.xmlwhitebox-fail2.dotwhitebox-fail2.expwhitebox-fail2.scoreswhitebox-fail2.summarywhitebox-fail2.xmlwhitebox-fail3.dotwhitebox-fail3.expwhitebox-fail3.scoreswhitebox-fail3.summarywhitebox-fail3.xmlwhitebox-imply-stop-on-fence.dotwhitebox-imply-stop-on-fence.expwhitebox-imply-stop-on-fence.scoreswhitebox-imply-stop-on-fence.summarywhitebox-imply-stop-on-fence.xmlwhitebox-migrate1.dotwhitebox-migrate1.expwhitebox-migrate1.scoreswhitebox-migrate1.summarywhitebox-migrate1.xmlwhitebox-move.dotwhitebox-move.expwhitebox-move.scoreswhitebox-move.summarywhitebox-move.xmlwhitebox-ms-ordering-move.dotwhitebox-ms-ordering-move.expwhitebox-ms-ordering-move.scoreswhitebox-ms-ordering-move.summarywhitebox-ms-ordering-move.xmlwhitebox-ms-ordering.dotwhitebox-ms-ordering.expwhitebox-ms-ordering.scoreswhitebox-ms-ordering.summarywhitebox-ms-ordering.xmlwhitebox-nested-group.dotwhitebox-nested-group.expwhitebox-nested-group.scoreswhitebox-nested-group.summarywhitebox-nested-group.xmlwhitebox-orphan-ms.dotwhitebox-orphan-ms.expwhitebox-orphan-ms.scoreswhitebox-orphan-ms.summarywhitebox-orphan-ms.xmlwhitebox-orphaned.dotwhitebox-orphaned.expwhitebox-orphaned.scoreswhitebox-orphaned.summarywhitebox-orphaned.xmlwhitebox-start.dotwhitebox-start.expwhitebox-start.scoreswhitebox-start.summarywhitebox-start.xmlwhitebox-stop.dotwhitebox-stop.expwhitebox-stop.scoreswhitebox-stop.summarywhitebox-stop.xmlwhitebox-unexpectedly-running.dotwhitebox-unexpectedly-running.expwhitebox-unexpectedly-running.scoreswhitebox-unexpectedly-running.summarywhitebox-unexpectedly-running.xmlvalgrind-pcmk.suppressions/usr/lib/pacemaker//usr/lib/python3.6/site-packages//usr/lib/python3.6/site-packages/cts//usr/lib/python3.6/site-packages/cts/__pycache__//usr/share/doc/packages//usr/share/doc/packages/pacemaker-cts//usr/share/pacemaker//usr/share/pacemaker/tests//usr/share/pacemaker/tests/cli//usr/share/pacemaker/tests/cts//usr/share/pacemaker/tests/cts/benchmark//usr/share/pacemaker/tests/scheduler/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:14777/openSUSE_Leap_15.1_Update/a0bfbfdfd545b3f850fe13d4d2e117aa-pacemaker.openSUSE_Leap_15.1_Updatedrpmxz5x86_64-suse-linux             Python script, ASCII text executablePOSIX shell script, ASCII text executabledirectorypython 3.6 byte-compiledASCII textUTF-8 Unicode textASCII text, with very long linesexported SGML document, ASCII textBourne-Again shell script, ASCII text executableexported SGML document, ASCII text, with very long lines  !"#$%&'()*+,-./0123456789:;RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRZZo'B=python3-systemdutf-826a6f700e98c2c029fdbdf18fee3997152f4b2e62dcccc134279ab6c99499df9?7zXZ !t/iwK=]"k%.VMY֒`fXdvWl崠' wڒ.Av/:fF4X/,w3<$ҕm}D7[%𭆇bC%,vA٭̇Ԭѯiu PLaahШR쎋bo ,]Hh٫cQhnP7^ӗR ͩKO#d_z8,VsZ 9oV;cx]*$cUKѪSH뉸7:$-l OcŃͺN6_ɣvAbCKÎlEN~CKmkM`T|FԷP*.ff{@<\:6L\(> Sdi7ѥ$^QT4wKN0{yI>X8Fm4Z"ms6iˏ 7kSGొE (k Pk؈Kɠƺ pv*Ѕ<4rGh0RPOy>[|'J ;=-e$o vY B6z50m(+2[B.e\Ub ch%ngdq)Ars̮rm&m|у>>l=L<`XAd]iDEMЦƆ8J0$AƵpIeemO⨘tg06e @iyn+-{Νhjxw`K͂ 2`E ?*e/b8+ֻ=9y@*;mweik sЖY0QЌ}`V)WA"5gDl^_[v0ԄiZ>ȕ~`z㍚\5%& 9fآ/_Y-8QU̞ .{/9۫c?l&a]؀;F7u_׽0Th$x F.´ L#7/*!x֒>m4Lu!|Ҁr+UD3H^,֩bA"svԱp_ͨS_0G :y1τDV0Ґxk͍~̦tNLjxӠo4ΣU\bc a.]`x3+bsxZAGeyd˃Yo2bD4;M TCkDūaY[D11q^WjSJi?;A"\ [tkKB?LU ?Y*k%C>9FNK!J^9^P.@!~F{EᦕLŝ˳vvIo>eh-$Q -I&sVhOoYVaF5 Op\k;3봴 `J󴂵r __\HFK0 qһr(-WrKzjaTønGtK DlݙzЀϖ-: (|xS- $h DLEA:p/g|b{5j{o!7 _{!{u/A1ܤ?hrY\!qcx=%ISm5:6pQBHAA jtr6ֱџ v 9<|.A\wCT<8TN6R̊w;6t/TP!zkFz]ge5#Qd)V ļyDu_@/WՀqɯ$^z 0# 6iG+/{?'/:dΓ4gfriGl 59T`ۇ'G*AK F˕١˰tj;'/]9{e)w|o; $2AS&k㓐Wt.Ǔky\Fcjw1Q@/+itN3zk3ݒd6"k YϏާmY` d F/Q2L2,cj.7kMXӿ05_᪂{!1qL( ֦ų9o_;k*x]S+o%cA"B|fV3BRN:|7EPl_s]g[po;px.vtxL*5rᣪi5`y]޷PNT3σث:"hDA>IgIZ(GZфi6&N#^wV[Ci]䉗v-;MhbFUT/C&u&򉘨jZDd$R;_8 2 V#mN4È: (0~Tg@xJrBa$ArJv= S&?a #!Z{4V/*x f@ä@w9;348P dۑk'# P¦ ѷCw0@k%*E$T@qz=7FĖi5uA5dxd_(cUHˊPE9i%OeNQ`:"kV*Y.Wib7Rp Q (LU(l{4ZT"zcQVs6HXz24[eu8aV -^}ڃgн%yDm=G v%YR(MvŒB2 .xZh$_j6e>UpRZ[,u4 p:cz՚eWVևU7\,]N(,f7 %xV=-Xi>A2ˁ>}z.~Tlrz熗/۸KX)f0ĺ{wb'<6 0O3WqZF4n%FV,`\o(<בB"J`OnE=}˧pn>9M}/0;ULش#jo/͆RaܘKSZy=iC}!uA,.VD q-ܤŷ rh\a?liKM31%v5u#xWWË2j?]@pe+/nY G$(-RN-Rp缚i<=U.g{T͢tكDe#JZǁ",7H־U$ #8COFe">%1`҉dNLL7R:H&^CU/$Wk r'|s1sbWY+HwdsW򗴼~ޕ>.d20HMl,,M׵m,6:V^n凈ulڸr]E9zo99l]W%|effEoTb~ꮵ#Zp?" ̣1Ѷ^ƾ^$Ͼ K%gIo n1Nmոos!aوuњ*^(?ML#_P~%(@jL,詎 .댩{15^J|֣J6pA[mau#ZT\T6똟}/ dF/{:Ha1%98fQԵh.l02wٗ;2ey~r:Yzzuvҟ)X"{j^ >KR֏}ׅ~TXrIC&wY~ 7k^ RXsꦈ m#qtr }CZ/ ѣ_ ilh=nEs`wc\H <:J][}&Z.7y?$.ajZT?]Su н{WErtXNNh$`Mn )ۊu1Њ#nJ.GNpZD+Fj椚?úv!Kzo3yYK~@"_1u 77g*N!u/"t<- .7s) ڏ! Np☘okYIX%6~3јhq3̰p KB)q'0ix\=5t|/xڷzAm4 :3jBny$|1<]eBl97hp|Lt5vQρ[XF;SpZs}D<[\K)_f9~=bmAQJYd(\UI3Ivqnw;9`6;CFB!*eL8p r*롂 ug*^.h7~=lV e(ADi<6LN?obBƵٸB\$(DWSbpB!-e:ރo@d­<,4>`7vf "GZU+njp׬d}7G$< `4aS#b98%1Cu-'1jdZ+Iu]WH=2̎/݊5 HAV3bKIMѣlp G Cտd:AiI mA[eEi)n]5gUJS@b$zATԗu9$ʏjJ>Σ);PfaS‚\l!m `2 Te~We竒~('f]tFYrn]Zz7aDӜأ@V}f/!Xy2*WU8g3cː_h D y\ Y{<(qjJΘ W~ gsO>0؋pA`x#'$I5M.D>PTÕ,xؠFrRMscO4;#ػ*^#P߃lW !3p: hmfZOBywx0R1N2ν/pjIDi0Pxf1wX#SUQ!ffvab\Ŧs[IٔJiQ"<ȭ_g/KIzdv0Or"Bh "Fפ~d*DOS [$loyzr&0_9S71 $o":Zfbb}wHR[s1qqu0ܯ+$-Rk ͛aȈ=>y͆jSP?}`Mc5;tl cٟl. ЂYf%o }|-(9בȣKfDigHCQaWhH1g-d7߿CK*6V::yq3 >s#Sъi'@:pԒvMB\yS.|‰ lnPsaںZhՒi ܊YxauU;cqmg\xOSGQхhU6h3Y8cuhI҇Bhru+H W†\CֈK:g5Ez?PG%{ wH-ŀ_$:)lV7ďk3 58T- UEPMW3S8nse̙{^tc CtehەdF c=Eu ~ 5͠BMx дˇb _ζ}3΂72@v4mi,penN΀; A1z綮 jC1osSnѐzQ72j*KO uլJNz~in4L~ae`7FBy?86f.ꁝM V"qHpM 5$DVF0 Լ`}#vgz#pp~b:aDצT˾f(CC>,k7{+<VF'C~JD]̫*8{ԓIK{l!h}4G]ÍP׆xΦ˛yўP䆒̟ G E[;Bc]Aɕv;"Ėmp+b['0ܢ8C]" Pjgrm2!BWW7с@a1|k>L7^wᠨ9-ps\5P}2Khoҷie?IYMqWRa)==lkY6UsWMoh  "4o[4z1Z%G lZaQg`-QֺiaER>yšlS `Nr Uߔ^9Qh9sD7sEA.3$Nk(}V%v4Oр?t X/^rڊ|Wcif%EQ! IQBfl[*ȳ 5{ RqRC]c9m&*=Q8BbKΤs IuN~\@J4BM&BǵGj\_mM>@D"}R1k;8k21y.[%ϐZTC72,P?ZRFNQIM-peNaNj^}~'?EH<T]Eߡ"qm#:;_>KuNle#Q *ksGT~۽c^6cU?4-h\yo&Q ܫI{>TGىNEuҬqR|e)2 4\hMsI3BK*0^KDׇ`6} hR:L)oou d;k{_g$*e*)\ív=rӎ\Ykee*  z[1dLS)̈́]B㳥; M}*y2 x5zZ{{B9ie Un걼Dcf^d*Y3Aߪ1^dcᰓWBqJG pMrx;~nj9@r $hJa?cMQnCbE>k,#I?~|&-SfK ;"1"c~S%OzR iO7HT`B HnqiV*'u!ۀUpnIsD Nu">sq{zD~lKЊ_~8>3"N:>Z&!Bҥ+ Oz"euZO5+i[1;W Xa3;,r/-r??IKcujN'd7Nh%я?xw"r*9e:^8I/6Tl~>Ag`xs@a< {~+7[?AEQ E} =s ;nβRT 2u K2yd\+:$TfK!QFWĺkW/~\.sQAPHc(,am|@",aKѶ$}?*~iCXs}?[z4=oMD],6_JWIhO"%Ϸ!8N G ?P SNJ'S3@5HU\~DJ.3%XZҦlE%?l_%]g73!D~HMkx{)D*9mJ@7R4CϴЊxOI2pZC6OltticreSwbJ刃8ѵ5c[|+ma~ܵª4s !9D~1]E]ɷ0m7ˍ97ňtd@X<5j6O, 7㫥k\aag ptxG qeb|nj<QJ|a=0U <=W\3wӝ()c:ce*a3;DPmhhyH(# 9G͖2v|@wу!} e5at9<4@D-+@Gnq]j{^]}{S/nhp[`56//7L('UcעO8yAC _U =T8R|@wKʬi@ἕrH0f@=60&P_0|i/!M2Xʅ6Cy"=E Fb,64d%AϢAb~\DW-g.[Dޱ!NvS•ޮG W3-)/UL<3Ҿ=+Ž]2 0>] fRd>δn@)ب6e&v8'5DcU'*̀f[ NuJ~ՆuʥE9[ }yYKd]x@* VO((V s~WpHf xOp{=L\`*o-Ǚ}εm.?A:C>eg3gn' h" y,"şUٹKglx]4mH#eVF{|[B F [Nb'B{X!80F$Tarb+X֪buߨEL4;j95=SbAK2?-Jj\o#`_CasdC4L+ XErhS_3&et &jˆdW'^zK!ڂ-yﺰǂQ%*FָU%o&=ͧ ji|B藴#6JdcJ9 B'2qac:w~ l(H[|VL"׀A bRCD43CTb,)IsP?7*Yus>Tg3YQ`_dmVaиYѩ&%:n7fM*ڑ ycq~[V $FHJXc݇fA@$q #F. rRb'?(d4-^UYQew5]esdS=iOFPhuA Wڱv CFMԮ%&q)_DLT,~ʴE6(2ԬRߋzuRO z4@V|!5hoF*`(Qt<][sdo5kY$kUcb!i\+7WNuT"ޅ\2;*yOU >cM 5›m/vE)ŝ6;$(\k )ͻ}@ǵ?U]mzPI.(븣zNì6cXo3.,|M`U2!|:V\0Do?X#KkSTߓk/AQ1~iGXMyp!ᶎS\/Pg|^w@2nVc ŋ)7Jl[x 8pgv:Ͻt(!f8fGk:fg!^|MǕYvaG= G0Y|c~IO=3@2Ӫ[ m b2`6@7U 9J׬VnWrGBp+m&M<8eSkԜ}@:Maa釭+0Fە8^CD}T{;6XFdXWYfaGo8r[?巿,誯.{]1|Hj`)z?,MGy7G4^\=k[TDP<O54D&Hyo@] Jz@_u|ON&NK@L.UV>pm\ґ ~܇gH\_[ڨ"}A?~1V-A"הW'n7q (~r:AX(0(a}_ꄥhpǿKZ@x ܫ;fuL>A}EfLAAWfddXD@bI 8-e/-M+;Ha)c9)8%1Y`?Ӂ۾N3v_L,&=j{!$E~5 }ی.$'˗4f-7\A 8XB! QuK5d> 9 >O-bAT*Mt}8ݪY֔60 o϶ qoZG(_^)EXΆE"!lxZC$DZ;rfYS]~f+mfwQ0HoVOc _Dfc]Wb>hlGZu_peIBfKMӱd" <I{<ݭlIN)>Ӽ2D+= 3ğ )L|tcQiUy^_ǩ^G(btU{:lF[va } H'p/fdzcKhMs+ "`Q4`%PTny M'r ࿟}8~g{1Q4#ȿ3[ѭ n "pDBmb5jl/P_GstvD5u4_ǚ |3Sdu[")Ǟ9աمt"c//8ڎ>1CVH20La{e 3`ecze-2 cx?ԅ'׻?޽Q p8sɑwEeK"nXnow"q[w+%s+~9|$HԹ'_kh[{VhAd- I#~3'ˇ, ϳ9biaWE3G@"R1N'+Cj'SOC'#p2uB%0źo1d7B,ux^&d(y!]Au!2>-zT0 X0OW9C@_X $KU<ęsi,8,Xg= CiBݚ}Ij]Uj1FPSANk ዗$6g]KV?>9|AP(#Mjոp+lњˍ"ʉ1(( LB2av7.)s^`h/ 6҄`TQrOs'ۑJޒ0Pk6!nGfBJgM4WW z)ݧLJ_ñ%{)X#ٓxy2pSI'2쐻[Z1Wy+ɤ#i7jwѶeO1FhՁzQ׈nSkTH 9\º*\񆓵{^strZ%Kݏk` ('b%R/)DH[%gXyVN/@L.C`As|N]мNAܨBG$)V-lSܒ憂a vGr?Ws2sKA4[h%v3\:)U!/8BhuhMFV