snapd-devel-2.65.1-0.fc39$> ձռiC9k/W>;U?Ud  8 *6X^h )  =  Q  y  ̄  ֐  0 c8cT (8)9):)G H I XY\x ] ^ib>de flt, u&\ vN/U(U,UQUWUUCsnapd-devel2.65.10.fc39Development files for snapdThis package contains library source intended for building other packages which use import path with github.com/snapcore/snapd prefix.fـbuildhw-x86-10.iad2.fedoraproject.orgFedora ProjectFedora ProjectGPL-3.0-onlyFedora ProjectUnspecifiedhttps://github.com/snapcore/snapdlinuxnoarch ,3: |7f$W k ]/eLN77[%v˔^'!#, !'h_ h n*,P& !J2Y1!;4HF s+J /3T  X\PJ+?`I-X!1!b:&6BFX&>&%d}J((%IIx*bM 86:v2 1=w 6_]a7Jz6 {mlpD K |B1HE>.AQq$AY ( BS@8\h9p4R "!Z+ -EJF)qZ4V 5 65A " 2#6Y 4r vE$:T":$-2= {" + !v*#,/?:| )rki O.&# M#Y!F' P!8>R,9}   z IK3 \ynd7x5; </ D ! *,> =$jnw c6"m7 : 'zFj/! #_  \ , F?& Tr _p ? I28Dr%9` w"X ` M|1 .pD\R%N Tp$) +X;<Qg  h h G @<::("F+mZ%iK&^19Y h$-!y [9d$B/;06 8TE C.6B ' +< !?BDg&.<M# ir X!]vi 04^%cZ0W:M2i 0 ~'<[,10K 5q FOL* w% G j> *?3,R0}UR*x*{n/%&(7 l ]rd23(F $T ?^ N V X^!6 Q    >XT.h !T,=a @ v/g7 N  vZ ±|  ? Et&;4 $ B '_!~/?H'7 ]#<4: q%'{$}i0 mQh*GIt c "- T Y>@I8 #~  V*6X+*v c#*w* ;! 41 5 p ' A* - d A!;&5#9O 3^ 0 bN|22 T4 mdNYP / f e>,8. g  = +Y o;Z(.  09Ap A d0")-l3 Ou )  z79D 5 $O# . $  g % vT n[A% V!j+< E O,m }{ s-P  5&S& s (  & *:'8U V   f* $O]l9TUm0( Y { b $  d&V2 s #I,q  < S 7 & b',< b D 3   q %$'  &2kC !g3G  Rd v  sVX #C6 # ?V ALY!x C!-"9 7e R"#6.*f:/C 1Tz!Hk  Q^ Dr[c F? ? @@x\33 ~6( (m{ D#}=W [hy% FN]&!)PTo-$+8 S E#r6 m3@9 @ dV!i`  1 NA / b5%dKL #; XJ 3 X ~sG-Z' 5  9 D h 4b>5I(J>b9 cb P  }_)" et'>0C%P2Z$E %,QC&; 11;Y!9 A%4} ~'Sm(= G.!pHt5 8$$>Z fG 0R*' V.H[,A_<&$Gb{ L   FUWK ! #4:'2z 79 $^G O' 5  LeR)?L3 IJ Pq ]+ 2S r >@UsQb#GEYnV$ 6pHzi wK^:VE 5} *iPWj  :"7k+z y@& -. _04X-gl(}'"'T5 v*{ATY IFem{V + 3 yJ"? *B_R  aNab;5ANU 2Mj U}Mi 4q H "O)! @1 ,e$Q+6Q, B d;3 (0Jq}ɟ7,; m61yLj  RDsf]a $7{ #64[ d %07&,8a L0(HqN_6/&  ["AiQNDTs/A:-+ X(%,, hWlR53 oG =f "F9, L)$Y$; 7w'Q#Vy YJB>y96B% a0^ /F8B!0" 5 ,ywe+.S 5\w%= b = r 5[L=/Qy^ ; 7 G *\GO5 =8]9 &4H =X8# Fgd' "o"^. 4 6 #JC 4!.G8i( z)5s'")>G 01Fa^"2p jYSO<Ya9mAGYj )e',T&  5"lx' &(2_!(&. ~ m^d+4m M vژFV X"A`g 1Fa } i :) 8:, SC #Fr  m2,8 9 ( `ubL*O6 Km!#Gg& c/4 3 O /J1 -~DZd*2L)RWt  iE!%$%\A DKA큤AAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"f"c4e39d94add19fbd551236534f4ba14671a73a97df639ef5d11a4255e48a758bf9c679f0c2ea5d9be4927c15fbe81bbdd2d8a6c7c2abb877d3a6b2de943b13d0ba3460d07ebf3f4da4fb8d7f1b0f154888bd1ff9e1df5cce89fd979adb2051f77063b937dd87a100c894ea8d45efc867f6d2f5f875ec74f6d02f93f382ec3f05e0e0ca544d91dec35b073e31b48ef786ed552d866c467c51db69ad3ea28ec6f69f54e72ffd47d112645313d6a89eb73c21ada1ef6054ffcd6e5e571954daa095f364ee020d414691a297f5820a44d85930b43921f5e7d05d68c3e3dcded5f9c49fd5a490873c57aaedb21e56a7bab48253e70939d3110abaed37336c848182d36b24d7dfc697c2c239663346cc4014f1eae4b173b3397f99c385cd4fec9a9cce59d2bb2f8c9875933627f11478ced16af4c2dfef02366318bf51d197cd5e5de313017fc78ee6c9fdb486203661ef21e64dfcb1482a9e161c584bbc780dd890bb6aa8663d242970b59c161b8f779a71d9e89b685939e8951933c3928a4b52390e97442e3498280905630373b2013b2a6d96311b3d11adffaecaa86c006a0c8d7000733c5229b3097d981d74e7981d8bf04c0b08f77937fa8fa76de93875b36795e0cb557062526db10d9e79c5e709f047aa5b69b9af236ebf0457b1d32fc0b5602362c299bef8581070dd6521fe8622a5b12c0176f33984f5725fa1d9cc438e5ebac83f2712c2d63089757ceeb3405ee3161f7e7c1c65779ca349f70e9ad8aee24e6ae92efe8c6c6cdfea555333eb53f8ca399c94d0e580c7ba6582c2353a36353c23f91fe26ed511a0c20688f3907e5eda4db97a5f568952b84f35245ee74e2f1cbab3f2ba3c822c80b30940dcdaaa53205c4d69b7a7e5b91696eeab483bb28e62502292e4b6a7a30f6a41d7e7e8677e99ec18abcc1c30f45b1c3767093f6fa370b21ba97920ffe4c393bc76402611a012456e60875977b88ee886cec3c5aaa9ce270bc0c7ea14aa2bf29398da5c6e8b1d23249f07313f9709b578c3f338be5719c7c14af100d0733a413eae9f9516cf2e38538ec1ffcad5a72c5f793479db578a5269dbcb5732bf4e9a060996763d3ae220581ea78be675eb8b7e967f431f08be31d596211e9ff806b3b6cffdbebcbca4426ab62de1439e6261145855fbdef3e5c0f208ba7db48a6d70e94375fc9ebeb9fdbeab0e0b263ad33a660143e6ffa40c3e68914f56ff0f41c963bdbfa6a4bd1fc7daf670e9428699010e927dfcd032de513f3db391490c3dcd9a7d7ff9e39ddb11dbc97d6a4aa14f439fd5ce9e7f3dbe21def244eb38307f24e6cf57a4fb0557e0a3b6b3fbf9b8348a1b57b5d2dbe26f1f98767ce4e795181ddfca566c23bc9538ff5c9c9b5a4876beca7768e23add1f3a18fdc52ecf139db17c077f0cb8503c3eab7c9a923c763239915a076cb096da39829e782c3ee89177f62248ee42c51c5cda2c406c2006ec6cc255b3c13d43cb6ba911bac8dd94ff16ba43cb326f0be57fa9120b2673d19990d78fe75f921e768d10a245f3cedf7786cce9d73e8d44e1925160b86f1b43a8e59f1a7922e2e79a486b049ee6875e1e0f37bf7973624bff0837455e9b0d2f3b8f4330967c3038218a34a3a1e583117fa3a4b80ea449b380a0e4e7f0dfc27a6f4f754c239091553cda1b4cb9be0bf54c4e4dbc8bac8bcf779a51e71ba12d730429a0c30b325af9f3116fb656b21c670a81363ee2ea99f22a3252415a44ce2afc9d6e46c3c7e3eadcec5fa12244d93b0f81ddbb381b6b2c322bc3311b61cc531c03c392c77f9163d2aa7ad2f9ea2fa10ff5b67f5b3a538795cba65c44fae9434dc358c9ae32cc691062e0db0d3e18c03302a8ec00dbfc9df9343ac9316999482350da4cb7f6472fb3dadba8c9fdb2e632e738210a2be0f3bbee9f511177798792056f215a44d462c9eada14ece164348503a45433c4a312588c06005ddb94ba5b010289a3ce55d92bd7ea1492c1fcaf3c3fa3dde55aa4482e6759df72ab0155974424e39d42fc30c72e792d7ef44e522938d18b8d35a93809269709a4dce6424316adad727814e77f51a2b94847cfe5ce59607d1e9d9fa7dd9962cd747decb45d7235636371d66a6956f15eedd049acd8cdd915a5309a2614d9b714a00341bbb8eac6849e9bc82e5aa2c7cd33d11329825d14080c3420c6564257fbbc195c78b2017ba104ec5005e367930d974ecf201c9d026f5c688a79929b71c62e165fa712d952ed45f0a664c05e1f2f733af70e73b02d2879d029a0cbc794ead63c09ac527575af5a7e07b1dfc86d28c93399ac7a7e29cb0e68b6451ad15d2a443510ed75ce411e2d9112983e158bbdb40efc5ec08fe24ff1126e8edb59e6f83a7fb87d9a7cc96ff45e08dae45fb5a9586a99c8679844066c73d777a6db1e440a3a5e603ad6eca1d4b57640713c457c8ebcc035af65a3aeb43bbca0766044af025130c90c8c8479741b26ff4ff4f77d74a806710a00158c794cd12991e8951ade78c55686c344cc53672583c37c1a9a175262e4ad85baa470d297fcc68caed4ef8cdeefe6d07a6215361b92ab235fc6a3a3baddb5aa4a6a587ba7138f1ffe0eed3f12f68888c531858ef660f39ced275bac9dae1881bcb73111c5b0309f05c7331d712ac601cba819aa0e7bf30c42b29a35e430b1dde6270cf3857e454e8c09f0363d910a4d08281df93babe38cb6d92b48e89260feb7bf57a4e9f466f502685bf81cd6be6bcc63f48b46c741bf90ca00474a7117c35dc5823b7729c095ab532f70b4ff589512d583481727ba436904591ecf3ed1b1e6ec4cfebe656e86e3fddd1a9d9f7c93aa85658c6f60fb0d7737df37a92081887e2a6eb971fc731867ae295f331c97e02be316cd176e2d04c63a0fdcd74afdd50bced3f03af84dfec193ea71852fde32cfd7542986d55c4fe82b2fac181530c31db8bbb0fa726a986544035167532331d55e97c5ea70ffe53277f7a29a9df90738927d58c44c05c8f02a9d2d1e1278e6a65fe5ac7a9bce2de65a08b9c5b93382b5d8fb62acedaa825c97440f1f405506c1f2465848d9fdee27db8c5931cd006cefdeec3cb968c51f8f96715dfbb5197a1dfcc50b88e8e3feba5a23f86eeec76da1fda65a19fce6ab38dc3b2575394aae8e5939349331903abca79758da3c0c9616c8e4b170dc9b2f7ae8d82115ecf8945c4c3585a41e435cbeaded714c6ccbe6321693b6f1c81221946d2445c0b08971556dd3c8ade18db4ed4946a4c4ac35983bedde94bc4f453280c0eb11a510c4215e47329b2ea17820d2825d9db5a86e6e87c1fc5125af7488495fe7bbbe1d154532fb27dfa90816afd6296dada71ac1a17c3452f99ab888cf79155a5c3f1a3de24db698e786930cb6c3a875480fee43159e13c502617b514b29d4dd5b8c7145ee91eff0e8a6d5000a1d0bda643bb99193b9bb2d35d66ae0688c1fe124285ade3a949c9235fba5abfed81111d87cebc7079db795ec857b94db31545494ed7e8b98914d9e504e782d02e3487ad4057f09f73b54674ad1e7215c5be0004c80a0998a72d07c65740c6806ea5d874664c619f5e605be15226cd80b960fd0979c0dee7c0a79fd28bb7ce8147d0c5be2d33c82660761c0feecb4366618ba62190efba37264cf5f8722098f9a71b46e743b47ab42b97af6a4c1651a0dc9063752e29de10a7d82767c321dec42ed51e6934b920d9b90b4817772175bf830c4367d11d0b811e6a486b420ffca6a07d403f03b0e34b38e267dbd89f2405778064027e71a905b27aa1e04c5738db2f4624aa0e3fdf7028ac1df2e53014c4278843cd2ab7baca9b322c4f055b7aacd1c82e0fecb151e6c7394a55fae650f433443fe2ca66f444efa802937dcbdbcff6af21d1425b94880f0de24a15f48fe065f876484a7e471bf1cd8c5bccc5f8a01f2d887cdf3243fb0f2a83af850e45df3d6f9564155c2ddad10f2bf5c0521f68ed74d32b9195b6ef2553258029bb29e9767d9557c922937211dc2656f5ab9740d1848ab57df8b7ef5d8b49ef5d54b41421ab7b5eeec5d7cdcb8a46a8ca13e0665aa9fc7b8ec882c4c4a90fc73308b4ef0cc5dff2395b3c77d164cec4dc18a0e04e595daba369fda3d7e08230f77bdf9156af1214f5c67a8bfbb7e7efc7f9e92cabf1af8b7dafbed5a57850f7361baf898e154b67364d7272344f0a0a7f6f9558038a3869cf85af9bf7a3d2eef6401b76e5e7e65c3b233f4feb441cfad345320564c13a3e28326256425c02d874c62ad02ad09c39c5b70c6b431caeb4287223bd54f7899241e51954882f67330764ea93112aff6963cf3a89143fa5a3fa59f5e3fc0fe6d8b9b18d9d72230fbaec8c4c12a995a6943805639133cb82a957b8c6ba711f443c425eb9fca9df103e6b050b13bed86cac851ec7e17bf173d5578db78c059b2f5a68e6d5dfdf7b823fe12e1fe0d8e0cd25d75ac18bdddab6416aed32fe0cf4badf099d1b048fb980685d85fbb35803809c682a787ae7bcef94c3d5e4932e8a3e4af0b805a4e722d107dfc22b02f42a891a2303a628a6e07f52ab3a650fe1f28626282b1b51029541f7aa13f2cec250f34d689f48dc325e3b7e37f399f7a75b9bd93c918d88755fb7aefc7735276fff4013654518d4bcb63f40f62990674ad287158f32c32a75a8f32515294243b46b2c96f5ec8c4fc733c514b9b63023d7cc8f0cc96222e8e83d2646a64b35d46a0763b13403d8e2b20c0a21b55d06b93fd56e2e74dd69fb2cf8a0730f79460f62b7eb620d727eaae07730674ecde33b9870b6a5e30d8073d283645f9b195301691641c3ab31c65c5af74d71963f5397271767c1710d968102f3d2adb60953107259b5f1658196dd5817104ffd99b03f6abf18c77ab881d16b90cf04a718e1814bc9f0e7d1d07b55d08b747a5b6b79a4eae7027290fcedfa39bad52a49c96dfeccdb5076fe46cbfc2bb2779ecbd39bda287b41c44eab458acdd620d7e9696414468e1889afce88942abdb06f6d34bedd2a4710795338b96ca5e980929ecc5737fef2b6e5d47e2bc1bbcd0db15f2d77ffb1d329191458a6cad0f4cf40cfd6f66b26936504d433479160893931731f7d125c0b4a53d16e39fe45b3dd92e1ebc6c3413436e700e3e88ab1caf22f7ad62f25a84034b7480a2c3ea899c1ce46b4524f63016f4591a084d11ec97aad5a031807e5702ef40a3ff7d4b04fa0a30b2af50e398b3a1d4a0f33be99afecba783daa1db61fb7cbcd39e1e10b709ec6723a7609cbe992e0dbc711bf82c8371e4c15dd2c83eb41cda98fbf445aac57fb9898b619af7a639907c80bbe25920400b13c7e3824bee15a4b8d1b6d4a38bbd1a8defe9881ef59025200fcbd87cbbed312863ddd1d566947a216045b6823c0b0d15b3b75bbe6fd2a23fb0a0e51074137d7029bc344279ab0d4cfb80c45295c8bb43f7962613ae28fd99be1603068754df62b6c523134db159530ad5f03dc75bd325a6a5cd94da4d809a0af9ca5747a0dfc554e80ae2c5865d372ab723d3631c443aba917f8e600056371bf2c89d45deaf8efa007fd87796bc7a342d9a323e79376cdea195ec32f5c69299a54e4e66fc0fae98d11396405bd86fdf330311ecc715ceb9e2d92ac41390323be7ada1de316a3fb9c12e06d8f3ad3971d95d23a1263b2f37c0c9c99fd45b49bbcde4056f7909b9cb326463f31fd8cb9b70c0649109da9f1c7fd1d67b46004af63bd4cfc03a5d8d0ec1251501ffd30c9b7f62dcd2a0d0109b59f5af9961d83fb56d07b3fef9eea8ef8332f056b4e72956fa9a986132c6a51d469ce8a959270b2bd72d3e486a441b3efe5eb719ada8f105e764d705c4d72d4dae4e7896d51f5f415106997a7d70ea9568d52f0562dc605bfef029551b38a9716d54b0dd350c95430631d0273554cc3ce16e50ef2c5e07d88341a7cbcef3fed22cf70eec9d592fb76c71bfbaa8f088b78a45d89dae95c2e5863c0ed2d4cc260d3d5cd5f7541d0189877de5c9941d6bf4cfb09331d68e9bc1f6095e30e56fce42a15d69eaa20b27c8a73f0cc530c43d5224b73a781ceaae3c51b145569fb9107fe491965a7531379a121cead1f1001551d9623144d38f72cb55e68427e6e9055f4bd246e09bfe6060192d0037f1a85a600d54590bd3d79364a533e4bebc3c9eb91703858ea65f423e15a5e519b162424da5db09aa61ca680cd236aefb05ccecc127b15206f0d7859946db69f5b727552e5d68bda2ebe66816e24f6b22156cdc28991c6131dfc61cbd890c20d69f874de60dd791da54764e5d9df2d5fef27e3d016179dc0d0f3785b55d3945a696f6589aa187c70d177b3d4f78619bf57d64ed525c55c2783c8b47c0bd37d506cc5156a3583b5a2b999497191c291b003a0766dd58d7a870c483597b162a25c853c596abae8f25927292c3fad12f4e78970cddd799f49ec366ef93650b01c83e70c9b3a72751b18c683242494caa1f6c84cb5496798781b8655f5eb9fc5b30dc401988d8375126eb298dd44d8503822851376038fa3aa7764a3662709dcb68f1485f5297aec85e851e56e9074887a48c5b565a6b68f53665a876d9fbcff3e9d50f6a104d2e8cce3fd65eee379b5ebeb4c8c4d5c86a25eff1fc1d401e632f35b9d6f51c26654d1eac92e12d28d413fb8b618bfa4567885a7d223ffeebc421e02a6a6fc6ee21fa2b0c038a69d6e6dd9dd2bcdf0075d0dfe7c853e22253f28685fe91eef4d345596484085a5725f48a74de474315ab2f9889f00a38601c7f4414d001371d7708998af2ecf7cae7e51d7a59199a9b52355383cbb443ddc74bab12d9fe9970603343dc74f431c50a9347b941afeea6df2012223175999280520b4d56778b823ae5cdf7d4b61d9a814a6b6aee02e317a29cdf6241a925a0d6d74a859128d4a42002eff8fee7f735e2b85c27d605f5b31411313010644a0b55ce1351521000864603856fac38c85f4c5e42196f3dc13e238a10adb0b927edace989eb6bc2e4861e32728db4497ca5a0b3e9e84df7e27d416d422004f802acedd61d8fa885cdd29ad076d42ba58848ebeff5fb2c9676e2f32141e27b883368a1b27338b2d35603b2b46a9c02f5a026e5d5e7f3ebb2b321e78c73d023688065acbd10925b7b4b8572771274255cad9687140ef98a637ddbbf5caa3165bccfd5cdbb0ee014181930c0c5d6bcbdd6b3fa583cdfc5eea9233744141801ebd263e46fd205ac738ec9f8909add9e5dbc2ff6263ee3144343e116c4360eba0f981b8937ef6ebe8bf772af19f48d6078ebb6038445545df4dd8e72c7b4e8602f422b058efbe10020655b757ae2939810172536bc781419eeccfc56fb10b70b7a3527bbcf157d269426591548f824fdbd47b18958ef03638d50b6efdf74ab49460d4396c0c15609fd8f2c55df025196970a47a801e2a5447a36cdb39f3ba8af3fef8767e298a11bf743407e351663e9efe728ecfbc23aad62e71ae7e202183392741ac59639c85b202ee65188d5295978f3f0aadff6a7be06c331349ca726e4746c66770f182b05ea4bc58c8941e3bf9a48c2ca65b625d073c2cab86d4c31a17656545ab2e70e7504cd8a0df3ea06177aac944fdd3a9eb16699cfe0581ff5d08281641c29ab19ae479dfbb573f86034791e097eeb4140b0f72ec61b4deb0d9b926b03473b223233922e7423fb448aaa62eb39e47de878ba34c27d660f87e5c8ee4110e4805021db5d2eaca9829be267f5cbf6067411b872fd2a0f6453ff420a5c2bff72a1ca661e9a58c1e0b2f6249376ef87c301c160f10fdfb292583050b0cb39d7629619e1875e8e7d8545af2436ca8075dcc08001d414f7fc0fe67c492d402a250024766afe5c8e600a82c2955b1cb7d22581284e134b8237202badd505e9b6f97a87340725e1b81853952c510139d465547c79859fa2c52bca3134695ee9a238a5bbac8be738e10f08098d444c505f8143a530434a5dd15bb498c9af15d614608416807496622b0fceef2aec17d6106cbdd4118546de0d52385cb6a79a0589b4787df15db2952059047f1ddbfd044fc5d059e6488113c86eec18c224eb650990384592f147f293b6f566115aa6c8b8102f1c7924a12b7790bb84125b76a749eaed931d186b05679302db3329a52c08bfcf1003f21f5cb3ddd3e012161e5179b81609a6c941bc7933371b2eaedf0c2570f94e8905372c33636a4f9182a6249e7b4405caaba2239912b0781842b0f3241c2ae41e12b300fbe4a67a501526700a1e99da5f2cc15946b250a07c1ff649281a7650ce429253eae6457e7c8e5c04cf2ff9602fd4a9e29b7b5b6e6007112155353bd78854a29d7296e8c05a5642c0f13ab717cf4def98c1daf9579089a9cb5672f2c1a5b1d681bd1fbfad9540822fcab8344470b3549ab1e4074688587e56c6c9c5243001a4756a8ca2c5bcce1266cb53109caeaa94fab89e62be2e12173f9024469a7e16501112d609288e71ea1cc5a879e64c0fb55addc821c47af8961e8f85730e3d54e9f5a44a52c27f938f8092b3cb7b6a064323526ab3836e75347a13d1e2aea35f679a58491f609ef0459816f0c1b710c67e8469daefb5f5aa582c87e7f373081c7cf448b5d21e26f81c6f901013f1625b35a269ad3aa3109a2ce1794956a61d4e0d06b0665c13b54dd3b48f98cba53dd1a51a17fb4a2293510c2445a526470ccbae21eb5fe19855b1e2c2942d30b69dfbb66b228c197a0ccb571f013ae85d136eed7758a00c37b3d35108e767ccdfeba8d0fca8eb91c2042391897c6f1efd310fbc6af3d99913e84be7acad589f8510acc74134fd0fd000b1475cb6f713279697a6dd03b43629788065665385d1ad6ce1bfec9d42dac375524c68450ca8a72b3704f50c9e39685347740ff10cb9bf7a31bc5fcba85acebfb94cfd6d2f0dce535f78875b4ba18860b525064c3927bb0c203d3487d0f1d85f702ac0e3655a11c93e7f58b05987c4dd1da4ce2c378f9e6705fba47087cc45c7e64173cb48ce4e6574e963ca4f6bde5873969b55b4afa864d775868ce2ecaac7991671a84187578a8209c39377012512aee6be127495b7e9887abdf7ace93b8468f3e6ef8384eacbe324b7c25b1abe25cf03b32366b371cd28aa8ba57bf4d4741e4f28192f015429ab86f75d2364e8ff09748712d770df4e8026100d6ac37ac819be1e3747efcc3b736322243b4f47af770d63aeba200ca8e931f9fafcb52f7f010376728d0a4ea35c2d959ee9a72cda0ee5153a4d4924b14962956d5d995a65a3ea007ccc4b0859ef985b8115df4921db8de80bee69b814df6fa923ccf8ad24419a1ccc9a995e936d58574adc0955a146ca3d55225cc7312054314ec2b1952bbd9dc5f78a1e4fce7bcb7adaa50e071873c509f419148c0c23e22bad38b628b11d5a15ab70821156ed0cc69f89870bf55974460e18bae9caacc150f401bdb2283af2dc125dec1569c8d845a42bea68bb7120779441422300ddfb68ac6412693521971b6d01e2dd39ec0acd146fe59b021029e8534cbcf0428d63014614142f6149c9fa0ba33d007f83617806fe5f48b1c4ec8e711bef01c91f53ea2cdf9aa552672cd63fb0aef79c53bee97ada6b19f7046194966ab42cb9de63fd1dbd28f6f309e7831bc81ddb3874c2af81bb3b076e55decb5291b5caeb0d548519cc3cdd86d922ccaa852709851c69896acea3e31d7bd1735fb396a1cc5557d88975a956b817722fdbf15a4cc655cc6f9778751939354c870087a3fc393d4c483ea882aed8c2ac1766ddeede949d924d3f4486276a6fe9f81070686c1115a50504dea902b631705cbc86ade2f1cffa91009bfb395ff14bd4e353a008c18d6a31825f2cf7b23a84727f9bad59a28ba209a708832551929bdfc3d4dbbb3e2e693b2224a83c52a4198124945378a07d0bdb73520199cae05180563a1eec46d2ba0ca18276a4aa491759966d0fbe47513eedec4d220327542744f620078a126f585fdf6de1dcf6e9ff1702839c7f9bce9a80b88d9bc3062ea2cc654d1990fac209da3517f2dbf7630255a0f2f5f34816fa2333972900bdccdb4fe149ef8c13b58d7996f2b105198d8b7be22d08c7bea945c945c06453a97bb0ce2b08fb28f7893a2a9bdc920c4aa017e3226866222c2c35fdca3a2ca8ce11800a0feec34dc113685597eeab08fd02eb0743acf069514ec494400fc0a05b8adc8603266abaa97632bdd1ac2e30b8d21f7482559c10bb8b2b5c625e87c11c2b760610c289b15c7371076af58c45935ff2a34a87cd45faef70cbd22f4b35cc60e376b4832d4dab55b32e5bb3902ed2826612e9e8850cdf5f26135ec3c28389179fdc795a712cb88103f8296fd02892b6fb2d1ddb09e6a63f7a10cfcc29242166b7cf38da20a255ebcc525a60390e2baa36987c1a703148baf62d06b441f2a9c257d3287b0f4c8584d0f30cdae7f217a7a157cf5e2eb16c7a76af1a8a2a536af0aa6c55fb9fb1dab9972887bdf53fc8a9268c88f1a2f6d4c6e7f3b0fad8d177afa3a3a5f041a6347eadf11c6df7aa40cdb1c87dac969b0a04dd9f4e4b37c9b28316757e7f63ca97960543992b95a9b046ca8411616607e5016d9d44909d64cb382c6074876d854ca5f352b32f6f6f916555fcdc3c2ea1cc294867fe3c7c05ceb8095b4f2fe327dce8daf38bc9410357bf1110b6ac369dd934171d51af85519b3667c634b70bb074cb27617a453fc2c0b196de55ec5ccd98e4f8ac444c3ec11fd74a0bb1a38985b3130cfa44744e9fe4ac6f098ae3ae93bce3bfdcfc522e5aee6d4f7e190cd0cf766063f3db2736efffeccf16ca944f3aa8e86f9419649988c380f2fd07424758f3ac4de7470dff944d311d960914194bde50d7dd4be6c60bffe7c7e71ef248ee70d04cb28fb76aef3861accf94be1bedec1aef0483601e1636d6c6384f953fef7f1ceb336e87a673440a681c5bcb4e940c76f98f37cabd0906720b6e4ee25c90464f9c162cf59dee92e739ba2c370cf7464ca8a2155c4ab54fffd2ec40bf121d671ed041bc0acbaf4d8367afea0417534040379ef577119597378d8dabc6a3d3a125044e1c645725d2d86e9ee8bee30763c324e3d2e2512f3ac1535217f1df16b1f2545219e41157923b67d8ffb75430d9d02502fd305b0f085cef2db820dbe41e5441c6fd3c7e2e20f89c7a8797534596c1a133d791490dec72d1b7b2758d83c648060177c8098df57d2cac3804270a12f5981a0e3d51b4f14ccbbb59f105f934d0d0f1b00ef76bee7266398e9477f5a74dd3192dd98a3308dddbc473bf76182b95611286efd5388af80a3124981f939c15b82a5dbde99df31f62480bb03771ea4c7cda264e4b2d16f85ab385caa690d31c3600aa15517dded715cc2735c10894cef7aea724d531532f17009ea192648e6e8c4ea951cdefc3b0520255b3ff820d2badca358c5348007b4ba11638d6f72227cec680cb2f4892a4dcab78d787ecc20e5f2fb7a9e0f85aec9e82ac120caed36190f1d9d5e1ce18c2ca9d0b2df98f0f2a23ffbb7bf6553448556bfeca8cde0dad52b10293ad20e1f73f71073449522c84a9ed3ec7f1c60f4b72dc462f6f60c370eea1ad923b0bdc5698303a61112f01e106757788c0109e0b34a6d0540015484742153d5bab7b70c4608ba7f172e054a75a7244fb3439060846becdcce4fa0908a8812fcf23fb96d8c6e79bf935b9e63f647e1846d1dc92abf26f1872d60642a7cfc82e6bc8e937beead6670f7bf064ad8d7988579d85f59e9e87c0743f62e9825eef52cec84812ebdf23a1bc9d26134348115534040ee241ba4804ea04377f5afa69b56f5bccf7508a86b6d5bb15a48ee055845544e55ebda1ded531dea57369750f83983ca1d6069a336692a35ba57313a451094b0fc714f3d4e739295379c9cbebd3d293402fd0e64e1e74cfa80e916a1322c3df1d6233d92f7fc5f3529ccedd2b1f538476206c12ae76b58bd5d0871414b1968cfffad19aeb1b9d62bf67d4907eb8ee2c53140d963309f855120635ff5f459fe1c16d99463e4bbb2907c43d12747148373aa19f13ee12be24ad9d0b798066216577b9dc7dca670bf8847bb3f058e83c86e24eebad2998788bc9ddd38e15fe8ec9ddffe78da953b20708ae2ea118712f54af9ffd9d4d36a814ec64336ca7c9a791cedd7306c8de13a6aa5c970cc337a33f110a2d483a5e92de28ee9aba18c06453dd76abb12ee837b985bc6b960e654ca4b00d95470055e0ec12a514f11b2d94160fac51d5b5df620695769f7bc1a630c9e244af1a19c3b5b05ce5cd66940a035be8021d9d89cd88d05d3f2aac53d1c25bee53f9ebeed81924a4233c14d973c91b327535d7d5f33ad7e7ccb2e9b5ede2806508bf45d604dee9ea3b4adec627cdd32942e6b7857bdb0d3c2e7be684277602867bde825af29be47ffd5f91df13536a3e0832736779f56e41019cd000890965a133a78863b65925089a065603c3726b48d633494857e0cec13cfccbd0ff47cee1e401faf6fcc333974007035cef993c332af88eb64f352d46868f5acdc04f72f950bb3be08b55dbcb1232fd65b47329d27f7827f1d4b906222dfbd7297e3b4ef1fae9e5cd67e3c10658a6289453ddd747e18b639dd0eeadeed4c943d68965886a6435416835af395c40c647d4eda32cbd0f1470dc350454ee2f94b769debc018ee600e8ec3c9b70f86e312714370b3b1d4364b7678f2da4f42a8251f56b8bac9688eb3c39fccfdeb0b810258f8defc0e638fa056c906f4d78df8d7bda33a85160e359d86be8ae190623412b1ef1a191d398e8081b7c31f95f790f4e8f061bd0b0b8f9d1ed7463a474107e9d587f5890f9e414647eb10d6fd5d9dc818086f460f7cdf8b0ad27744c15cb1eca58d227867f53d4537114506be2adcafbd6d21e1df1d061c3a2b64162fe71ccf1d8099a504fa4611c1452909a0ed775590d436a246daf1fe742ee71a1d54841c1767679798bd49d2b4c48f7679f0d6f1a407130cb1f04d73fa8c450094a4f2c8f34cc7b18d6e419631ff2c493a3a0d987c8350518f0bcc363e4bb5b161b4066744ce308a3a2a35f9bfc92caa965da382d945471647b29a868e39648ee27348b261ba76ed15c94881062bee1b53964110da118b1dd51c536bf0fade53532e239ef35a727ff1cd89865ac48e7d66e878efa5d4885cff35a2eef1b6722d1f525d193dc8fecff838cf972e2e2a394789e95935232051a65b625a4eb7d388d2a90adcbb2b5144b549d127a56340ce9c835472f186d604a070a24079b851cb05eb73e24fe11f2de028a0a85aed51f39bb0dc075d2d103359efca2d6809ea22cd7a06392972846af02dc361423a075ad2dc20ae4d268118c788d6b817dcff8ae05418b39c02c5580962dea8c68d25314cf2114e42b291a390eecba975fb296af32331bf2c84e9c44052127b725a425e5b751bf26a7739e5bc52da51a8080f30234ebaf3c6988a13bff6341177f2fa1fc1a35a04e6815f7beea34f844f3fa1f15c08eb443956e32b7c10532457ae63fc50515561078cf0e826f4e30808442a251a2ed4da78b51ef99730bbc9501d37b04d1afca18ee35ef59fced70f380400aaa25aa688753b76c9654d2214418aa3591a0ab401a2523a58ee515dc0690f856a14cc9275042c11e9a1cc5a31649ce999321c7aaab8998a8db2a26da01c18ef7fc7475cad31b7ce0e316096606cb0f513e3f23bbe03f45a13bf1c1ea2f6f3d9a13f8dd85fb2076c96cc1a7a88438be9feef67bf45e8de6116a36d0fa5165f5e54cf57c4059afbffbea6863e2ceb44356aaf36a4a2cbbab16155a9cd84660c8f300e30c6a72dcb1b647f8a33bce8859fee894ef2337aabe6465700944350a0823c51b021a5f1bfd6fa6f23530a186b878690e196879695e9e97a442a48b9243494f027112771bd75d7509d8e2cb8f3bac3688d7c865203fd5299bbd0be6cc738dcee68fbd795ef823eefb95b50e1e667b96e2b7828780955f2d3db2fcdc6cefe326c87dddd1803b0b2c6f66e1defaafb566fb95890edfd0b2b40e0f13f020a1330a0b70a80dcc5c46b5dd096606cb0f513e3f23bbe03f45a13bf1c1ea2f6f3d9a13f8dd85fb2076c96cc1a21b34e3c7c2dc8900ef8bca379226c7e089b81574d688324e3c76357564e2a178ce92a783556cd0e870ee6a561085e88d659b4fe4cfd8e4aecc39e1c761159e3ddc848302e236a4ad55ad4a3503c2b65053a619f3dad6cf07285be46e095cac76a38faa29451ed102b2044020483a224bc0f87b3fa603329ca9ef916c4bd37e100ace8b9c5115a3c0b0719a526cdcd50566b505d48d243480b829fb74113149ca2759cb4a1087231b23ead6fe0d2fefd78c91bffe29b6ce9fb509d52d2f6c4a2e95e08339f1de033428ea3d1d696e386b8a500a310d66c1de7d1db65c655d19701b5872e5fb5f011160d7e5765e25919c0d26244ddf5cefc29d65eff7f1ed2b091d7bcb577a72d0d39a667101921e4f3347384fa4adc25e21de6c417e89bcbd441b2e38b6ba2f44e58e2ae4091f6aaec58e5783b921fd90aec15c02a65dc9b29da71e6072e4a4c4b5e959a0df16de4f51cbc2e3204c5349b6f8e9194504fa24c3a8705dc8326871eb365f595dabd9cc098fbd51f5d592fcaf959e53557153e965329b00095c52518a23fca3e02952a0ce9045b0e52116a36fb582d5dad2395b52ca4ba9c60a8069c9f0cf35d871bf528c6ace3b1f825111f5e0ab405d4101ef9c38cd157ad3c39608720c92bd560efdfa8690dad7aeaacf3e14db5b5c13fd4f4dcde6bca62286129f85036a506abfaa9a94289673e0c389152dbcc0b7952ac1dcd57416cb8ebaed2855470ad1af38ed27952850b8334a475746dbea2fc2e578a6eeca130954be7d26a9e84d6f501b22588462e9b55f7ac425ae18d3209ec3ada64ddc88ecad1564403841ffa56931d6d8124c43f69f92efb79a838e3e4438bc440508b1d2c1357d738a674e0e09087715c76a4222baebd06067214830eddd6e92e556d6d5f278d724f37616e77fdc64ec87d273e5ba0517867e62d2a9b6027f55f970372a5196c6727d9b3ea1e851dae8ae45cd9201cbf273a06d7084c85fd79d4dbc80ffbed8617dafb27b7209d13b5fe06e521a406f62c420df4d9c997a8520514adf3e80c3ede2493e459262825f11622ecc1f7d8a84954b036124d1f3516fc40d5e2c96165e11fe781e501e06cf5439cba99378302cb298a50d1eb3deee42baec006d5917405f7539f89a30dfe742a925f40ef6f25ab75ccc48c904be6c8c98a78725bd022ede5e3c93ec0dfb86fde96ec9b20c17b08ae3c1c46e2b93580850f48d16ddb9f9a317e771e35d8825ee9184f96c512330038744581b6335613ef5672964227b13085bd9acc00acc3850ca5ce6263e53714db38afae7eb309dab25c2c0d78e86e0840873df5990c23df371c0943cdc33fece8ac93a0f55cf604f9b7c4f756ecf12099d7550dfaf49343429ea33be6f0b7f88e9315025c13e14960692d12d9accc80446726c762a69ab530096e910f027ed705b4fc77e14caefd853944de452677e441d39f6d693219d151c4349385965aa996c1426c26269704c6bc73b8e2ef8260438aa506c9f170cfd20ab329db8d33616d7eb0f214983115f0f4d1899e9d0f3fc124bd854f96e24174ff08a7ca51bc15de91afb0e2640d631dc71ab737abb18db698f8f8225668f71f686051f57e533973b46b4f3777665acc6d731d69930c9750789284af998dd655356cd6a2ec99b1d5fec37a1febca8abcd26845bfdb60aa0a1ce01344035fd52ff5bc11d4547ce568b0d9d56de9997d2887486571e6febc7cf1de5156ce2912a78060bcefbaf5c4f25964fe3ee67364743c9d77619e9187b138611929d3366be15e21488541c37d0e11d5b00abe19a74f28dd1da2e18a9b7290626133aade491601a5bde5173c6af6f21cdb5895d0b7d94f457bbd7eeff93b1e37377de9377cc17092642eccd1b58eb67d33bb840990aa8de91753f3a743d1a27b79b9983971291c81354863deb2b777b85a6d9d222bcd4750f4db2920ab71a0527d1d9ee6c016f75dff81f0b0fe75eafe1f21a96341a8dc9f5a4cecc24d6d8b00337a8ce78848a342251dfd99dee994fd06fd8f39423e10a2f4ffe963e10189f66221bb5dbead69b764b8b3616fbfa96b7b5123a5ed276aba2a8eb31a08650b4b5389b73afc7c034b8b972f72f3661fe8c2384398efbe4c2d2fed2753f406deccec210a3d0b52ec07289d49bb64e3a7c2aa4e44f9ea972121d14ddda6ed39bc58da6f52b4726da4d7c2599366448dfc9d524fb5f7e7068ab95e2f155465e29477e39a93cb436d3ce313f3ae63d4928c98da13e8c028fb01607f567c836f24ae97b8e5a461860f3278fe8d099e8b7fc8354dac2239f5b256e7907914251920deb27693d05006f5c2594194f413df85d9c507e1d5f525983e803ce277c3c723f1dc22e63ba04dfd50e64325512bf310aa7d651a84ec251a05501c646d9fa7e9b009d2a79845dd380c147b45be9888b77ea73f17e4ff8355896a5cfc726261bd59d4dd4c9c5c643033b32b8d4d0eb10e9bfdf7fd0bb7f67c05afd733024f6f825d44f5cd1436fdc5ee0150fc9756f631a57caf80af853224c360a83b147db97007ce8aaa1199f6c9943813cc9d57af4982d3a7dfd269ab35a131288819777f4507e742d8ac9fcd76502275c39fbf9d8ca1adae35741cdd74f1ce1b822817099608a5b7a442de64d4392fd67301ca37395bee8aeeeb428aee167035f5c18a7cd63ad4720d3a6fb688e475f18b70117ee777eb705b2129509be1007841068ba3d909c434a6a885619bf3a69e92b80222693edbd01c5a307c9d19417cbba967644163723bf37bbe27faf2105bec9ec90b1db1dc7274dc4f93a9df699476465bf57d86f04c8dfeb53b31dcc91b0d13d5ab9f2325b5c92e1fca0a6bc0caa90024d88569a5ba1bb861e919ab54e5dfb4f1b1fb3874702ab8cef2cbf741ccd1e0747e7523fb786d41124fcde5cf65ac05fd67ac9a1255bb6af64cb2b69cac222c8b8da65630975a4bd4cf30b0f23b92290324662af92374482a46d573272755497f2c30f96ec2585e96ef8d0384ee2564cf50030ea858f700df9a42fbfc789c62662921557f5743edd93df2f606080d0e555765e584cadc267b42eb112649f704c072f1a765912b1f70e94250c31df09cedeaea62eb4639834491cce68bf8870155cba2e0a277a5ed883ebc9bddda851cf89d210d0bc75031b77987117691c2a73bce16f7a71ef45bfd659ae31b663a98e257bb739fb7148d260cfa390896882f22afab5f4c9007e25f66be0ac4905cf74aba10f8aa9c23ec35afeed4f4bc60b819d6f5a8eb4ed9694be10fbd95d6dcb5ac2d2f17242c128d1e1fca6255e2c8752556b871d727109a66daec0436a9c6f8f421e4a28bfd08a4c4e24040b329c5d39849f28efe6cdb8b4973f99860d0eb0585065dddf55bf24d40b656c14cd2e1449493ba63d108f0611fd7bca1448af49de3d704c6a18e550e6b896345c81b9337d3c48fd276d1bf3547bb999bdaf6d3079b6fc422b5fab7e2fbc51104853e567b9ea9594c9ac0ee188883caaaf5a931cf0576144ebadf00f48905266597465cfb8edf102374f12e7a385fa665b5682cec037c8acec1729bcafd014653b62fd441d7f2100462d023b519ebcb2b794dd6ecfdb0b369904566dc3917e53024699b095435d25938d3489bf4de8e9131c0d7c2ae4711bc96a5816379240e58d2c3dd38ebf33dae93518afad0d86aa1aec4e3ac8414f936719e9d2306b74dd3e829c829586f363978881475db160fd08d29ce62938b6ea80d58489cee894c886e8e64cc14d3610f78a3d26dc512418448f7542ba8ad2f433bbe0a307311f00b44e28864268b398ced2788c9eccc86395bb08f9f5de6b0859bf71c8d98cd84dbe4bb2ba3608b4a98f1bc6eacd4580c263e7c5d0e59c2f1fcdf2e97648ca4d610ddae8133d22db043b3c22b6f87ca8c679c93501bc4e61c5b8fff3a53d23203241e2893a6aae74cd648368c6d9b0c8fe2e0d0537b361479c8065d8a3f4ec8748e3c7f23e22137117fc35df45a921504b2e15c071fa5da5f79f2f59440ae1d339a1dfa20cdbf46947cba1e6dfaf917c6d20db586ff1af39f301d01d7e8b15ec685c63dc388980b5c1c37db9025579bb0ed4a642a047a6838b415ba6e0c9478dd400a2f51a292cddcf5abc0f8f1da62acd37340cfbdb7f6beff5adca09e4bda5285be254c76ea8eaad96d2d0cde8a554e09f7c59be946c6b4342d1e95cdb369180b1946e6c09d362d8cb4838a2343e9b846c86dc17c3d2035a0ad0f561dac24f182003fb783669e855fec5696fdc663be7647b1718827405371f3ed2eaaac65eee6864f8a9ef737025bd0c052248e7d344d0ebf76bb9d75486594e4d70b25ce7f67d326c77b51224ad8467273f9bd35b0c83d8eda117984c335de9dfc63321328d1c5dac511c8d8a5b001fdf10382914065e0c12a9b622beb078b08aed9bf1ca8bdadee9f4d9d7933eede27d9783ab7d25c069d6f351d7c83a5a687110c2d83a4b395dbb510188de0adb35a6b8abdae24f74ae1e6c0c3cd4dbdb9af2336d551f1fb971efc8197eb40a21a5f84af0ee488eff834dbd0e0d1882fd88f546d417c94dec9160d20ccd9de02696d46b9fcf76e8e579ab4dacb551e1f9db480fef7b0e8ae301f5a823bd9f9cf540a4e1f9c5a726c71396ed7763af5dd1096a09cc22158ffc70f1545a3218f744b65afac8006c7bdc39b50a5afe607c2af73f700b1b0bf49e9e7eb669ddcc140045fbf5a2f5dc1d4a1c495a6d1fe0871e920f0547a94b5dad9434f00d391666b428f059fa82d26fdd7aa2f2d62ca2eca4709b8084e188ef02cf1bf6803ed4142034b19399ce1db92d4bec0830cd4d8297a0a2f4a6a88b423f042d4a507db34a3f00e111714ed9071dc5866da784f9972a26239cfd31426d362840d6af5843d4e4b0b90cfb8857a411336b7aa3385c95e755ea091347b05a48f792c45baf88fb3144a9a8ee8349b6ac1996823ccdfd64759f37812426e7b208cac4cc0a18451c0f94424ddbfb0ccb5a4fed1ae497eb2c363979bf9d145c7564521a1862f6e7cc259a60c9c2db65748ab5a64a7131840fcaab0b2d091241264c14ada7708385df95932b0cbfebd2a7408c16f72f089dbe81f0a39ad9f6df7f114f75a8f544de5b332d5ec5227d976890ae1de48b29821db4f726c73467b6104f8c4539574cc397b1215f51ba7d608df9440e75a4f1e5643f7533c1bcd92ffdbc22c656f14b3f5bb50f35791a38875de50a41e5d8ef3503887112d225a2b240d59a6d5e2a75b16a912c3d5a24dc2e91b018baf6b25ddd82a57eeeb89a8709ef4930a98908b0586ac0e3f881b06202a76c71e93fac7164d352a1ff1b802688d7631ac2bf8d76061104266e82266ffea552a3ba528e56059cfa19b8450d505b6fbc57eebdca56a08813efe93d5c2e64a4060dbd489a1f13a3c7ff7029cbb87e8d8b9137070e090b151788fa3b3c4b42034c7262563997e8990f356b8d3ce16c8bad75559ee688e1cab5dd325f422598093558a826880b7a1bc3fda704be57f8fdce506f42e92fb481f36008220f12aac5b514a5bb92ede9418242ef9c4b456f06a6a3ddaee60ece8ac8c44f8810f60ea09b9d26340bf298798a43c2e09748630dbb2620de609c10ddddbe9c51984f040c7f3e7f590e961a7bdeaf7c0f34c15785d08359b985448b92b8e7c384b40590696b2546b02236b8ecb627e55b924d2dc5e13ce68296b007a0cb8867c80e4e23f98f958ab58e4b783a49f560f2140109543e155e93e5f979e18f67bf28feaeb6bcc5cd1fe336a36374b4a2e132e4d362ae0a454c307c6497879ca6247032c36dd65b40d8ae667e65249c4fc054bb9093a541f52cc5e2f8c4f3fbc144b76749f1c3da2f0464618ed9cdd08cce1a0ad6980f20655bd6981e9456bdf7646ff5d7e80f34f4f04e9a58dee082da85b6ee9c566720359fa2aa8ff1304e4cdd5dab6cd54f46a338328974639143acd1b4780af2bbda55ce9d7cfd0895bcbc84b8e18481444c3ce2d1e58255e59ac96d7c72092af11b27cd24d93b805eef5221ea82ad0181b46f83dd9c38013918a82a98b8f3abfe59b4e190587db587004e35fc7b36427cfa6cc09757fae9032046cb729bbf750c5192802d31f99c9c38cbf2dcd0446dc53e0425037f7e06c6a7b7a930784288d8a002b2be4e0220ff24e862e38cc9aed1d6c7d0b38859d0da68947e71626e135eee9a5f8f114b9edff1d5492b2b7096c8376410019c715a0370ece9cde97ff024db1b8c6f5dba6ff7aa7a52c7e9183a7f4e88c02f94a4bfb7ed64e243cb95d6f03f0ad87198d4583dd28c17626432e6e20e8ca67d1afd9a3af394f1ee1368029bcdaebc901b8e0b7d4ce2582952ee9566b98dda18343b7a8f7396b75c09238b43eb32079da03d65b2f3951d7b2c38818aa09d51f7e6258d79d6baf1f193e4f455a54eaa9bbabd41a89b2ae3a4c29a139e9d947a7dcf08cf4e21547836c189bf92e0dbd49cbafee275f89272e6d89fefa30fdef2472b1c85e8ded6887e40036e295da197b9ecd18babbba9376e1018e079220c9ed8f8994736d9e50ad99c89d7a10b45520f4caf53ebcd8aa0cb0df28a087dabd11e734f78cc4e6b43ca72738d8ea886ad4aff96c3d20b783ebc5b50f712422412183c1c12991a8df58afb422c9dc0e51c12c45e10fc539d07e799e2ee5dfac1e78a341a1eaa00438b74048cc81efc862fd60112142617bd818c21183ee78c460974a1fb11a71d445686c4a460a1ec742234c2d8f689bb9b4324297fa3b9d151c8f78072887e0e30aed957c7619f2f8bc08351406ebf1dee484483204a54333a16fff55424cb10ea0bab41caa1bd2d6c749f313f8ae4cfbe924e48cb04bfdec86008918308b5eef53c733212cf786e504e846dce8af407ae622bb992128735fc779c44889686f493a6a183f2b5052cdb67382f67d59cf76d14854c6e8009bc9f4e6eccec22f1ed1e28d14302f4ae85e2632fb5a620d8157d1226470db442c175d427cebdf3c09b274046575363b2efc473519fca73b75f03b2c399f329d9da42686f1af61e84a98f6566d076116cf375a524346f81c2e18ea391a8bb9c2fa7875634f0d6664a7de334bf5135aa6c5bfe98deee318a7c90bf5b3dbec3c7efff0f3a69dbd1bedc0c2fb606ce99c7a0f5ddb259925c54757967c2ece38c1e611790902b8f1baf92c2ff178dd2732783304cdbd978d7fa4ebabb5a831d876cf89f6f3a3edbb4429eeb19419b75d6fc8523d9e0adcba1e119252f3ddba57244c59a60d3a572bcebf6f502d074ba47e41590b63e9647b54228e239e979b31f89357e94c8e464d9f23421a038bccdc7fd525eab6da88803160e1f4cbde7403ab76583a86aba6ff0a38df66cc218e823c1bcce2cc02b78f4a983eff49470f937bfe1313bc74ae254176804ebe11cd3c94e7c6e05067c4e1dee3f436883de93c425ed87cf655d37f5a6c2e0b32b7099cac0fbf80e9cb30aa3ba44a1c5add1d7ecb671c0be78d1a7bccbbd121643a4a331e76a49b3e5981ec01ab4fc1f99c9ca0038a2479e9833cac52a2b66a01d6fa01bfeb1603811996a5b8186ee51bff56ccb52bb1b280c376e7b964d64b7cbe1bb82c0e9fcde47abdd9ef36e364385be359c1c3662955a86d7fb6bd132b45351241c9ff03887062954d33ba76e42288974f07f546c8cf6cce29b5e4a4fa2caa14eeb4a021a7ee778cab3372ea521b76bb982911a987bfab6833c900fb67e027974080fd7398b1ede4b68a271b448e73afea3adcc5cdb9a03eeca32525fe077714b4f5befa97b9ef98d2db1b5b549492fc23822a43e323568769c68acdefeebdbe8a0a719692e5f041fae1f2037994a5fc1bfaed5ed46b0f32cc25f2497f2cfa500f4e8aa209a41584a72b14ed17e1fbffbeb22fc5a481de25d10e31a8682fc10d42bdcb4b28e995ab09412b711f9426458a9eee5462c00b1805f0ee85139f3ce60cf035fdd0e419673974f072ed8fed614ea4710feb6f4a52041f27efb17152f6b1322f87f1a3ce7f68d1edaef710032769c41f1c6c02d15a5df252fe5debe39064f19a155b70c74fd4632f5f4de29f6d6c24d4c366e5678e153288df1b5dad0a602ff3af7f8342a2262d2b1d77e5fa604dcf9ebbc9350d6aa7adfabceffb0ba99e556e55d3c25957091fa0519ad27f105e8e146e099a267612031bd2253f7fb67b655f4b465933f0b305f553c39f8f990109289ba4220b086b6d265910dde63189ad5f6a3052d5ccd037cb580556fcb13021bc3c5507a209521d2469e3ac48acdfd731f341b1df39d7682225e44a9cb2091cec6cecc8cbe4b6bd418f4cab4e4f17723bcc8335fbc6f58eaab0ce7c9ce525bacab4269e6c2ccb1ddc1a95f87a8195c2f306d7f822e35ce424c892c3df15687f395bcc1bdd842e2905e5e14fc2a5de2d0dbe00aa8d560494438b1b300ce313f6a42fc3b2ad97a4d36d314d62a47ce49ac8c8d4040a806b9679be80da9d1412a33d7861a40d8640da700d2b75e5697bfda3fd3f9660af55e31901efa04a544d294b79c8c4059a6c7963f7d5514f6a8a04536b30c11de138a16e7218d7b64bebe7360f01436d005d474bcffe0edc821cf496a86383798ea8638e395592f955d02624dab2db55100444489db425aa3cba508d05428c7d839e02aa343f059573b909e0b38acfc574d0c5d1be4eeadcb196c5b3d8c2ff573b0aed4a9f7f45f9b8b2bef0c4a8ceaefc45b75b17e270b06d4f25e63eed5e424d51dc31442c8a863eb339e5950f8ee2ff9a45a1e7ac9828e9dd98158189674ce0633adc3d58ec849e9ecdb2ae56f9edece24322d96dbf40334406bd7cc2d4a0bb4ccbcba405feced12299ed90441f43bb238439e6b8a0b88925edd2a72a1ce1137195f0ddb93f363fd10c8cfa4d136ad96496a54ef0f9f245f77dc4f8c7311bd7a5867107a046f216b6c853cf6d694425ff77141b40be1b036a2fb3dd2f6b805874e2cf6df93d0a0ea7f0931150c4088f4f8356ef531ef8c4767fb26aa8835bee2e1cc1333b23f99a83760df378ed67be7fd5a513fe13d5377a78157ee2e9faf8c58f8ca75aa3a8cfd115e7c21c31f5235b34600d3c6898d2703b669165a5b99f64f95153650b567ff24050fe13393afe296c7cc4b768f8e5e580e4b7806adda20f60f422e3e83a899ab6bd6979668d40f8448203b9c6a1da5b4ff1c6f976421667e0c878c10be9a40142b25e3f81ee99354403a687190bf602d6b0d9d2f60434fcb6670ce7d682f32f97678f8204120de0c4ce44bb108b0b1809626ee54a017a439d767289d814768131cd59d780d8f24d8bdc27322647c8daf977996807610431ac4ee5125649cf712f2e96500454037ebf88d0c4c2035009e5084bb77cc8af47041607f77b7f81214dc3ce90d2e25f4cb6a0e6772759439991c5af977d046c09f5e63d40343661cda09e47e1ce329f4aac7478adffc3d62d2af2cbece2b4374e5aa1c12a2b4e0320d246ea9843bfef04d0491c37538c07efb6e2ca62a8a7e1c61f4663dcd45de69b19f14c3ce79ebebff41200a6fe676e2b8a6c69869d13ec58c0745d908bd8b9846ab1d9cf3c26e18fcd3faee40f43a363d255a3e1a32b5b260e496fa1aa38a0114f3de6525796492f52f651d15ca8e83efe1bc23c0726ec975b837001e542cf1c4eb4dc0f8a1f2b197257fa14e76b02d44cf1a018039be906071d79eb7be8ac95503c5154ffb25366bc262d015cdb6b59e17b1356cf5b0f792ca82731386070ee02e9fe606962cfe75a5457cab1a3582688c33dd9adc99b0a7ee63114e244ce95a8174c5bd4f07076a63f89e1c2611bbc8bf317560c4248ca373d07ba1ef6b89b1651b557b5234ba43b752fbe5a8f1c587ea12b8ac8d640ceb7d6c03619a06c0618595fc865e74f788c328310eec1b7e20620c9bc6dc58c177854b5aca6099037bae6618fdffcea117072d3dbb2ad2a33cb4032337d97a95499a1ec53bd42eca7c4ed81adfa1f2d7a010b671a9b79c632c002dd81239d39d28f38665fbf1d451261c5a08a4e88e818d33a09326731b83f7e94cb35c80d524ca9cf71f2a15a0788921e5b518666905eb4fb198a4dac41d999bb90e46436d0477226b7acc7b92dae55cc10c7376439e25930a1347b784dac25abbe789f0ec9f19fc0c1a6071840faa7fd25087e2f0f2efd76ff9ac06fbe66864c263e8b31f9fd7c7d66dede50a69a215d6d1766d1255673dd120ddf3b04e168437244e36a349294c40b9f6916b34e6b0138ba6de9a2c42db4e7ceacf32f826429f7e1b835e95694f1a6806e5142b1fa0fc63936db31dd76a1586ed0d6e402ec3133a9daf7bb86077b10075118e623267ed75885bae65c178431eb226a80bfa3a25173f15656f0ca8114c7c7aa8e15739a83ed23a524274a91e7bf720029e7ebba7318f66a14ac72cbd260b84e8e2dcf1eb32b121e673cba7f53373652a6bac2e55677610ba4b36a3c511f7118d7e20f51126068d2f3b8a8a686bb9533f21e341c0974b6c3e968c40152314863261a0777123d6e744cc016630ed9d0cc01a3032e19d9e59ce01f331d83e4357aadc21d6e9d95067746e99d498946066e8b0e27a7848e0f93e647e58974433ffdd77781a6eda600e2ae411fe1a7815a4f9518af9afe96fbaf87cb77dea6e8aaec87ace05edd90735da1111cb45091f87217055c762a60c40729b6a7070cd3927e0fb4a49fceaaff48468eb423c43bddfa2798a08d8b51c670f3ef785bcbc0caaedc6d45ab280b4b56d9072e2041e17a1d6cb4142909f28f6a5a40e3a69fc69b5fe14352db75efd139d37558269030e58330107a475004e2516cbf0d2a908013a2df17faf13fe8d830e2f321db223190a01d2a3a8c34922fd47242fd30f6bce9170ddb211e95409b53b9b95fa287bbbda0560e08fd5274b3b85ea4c7f6b478fe5e58352178c9c873c4b23bbb943952fd636ee9bb3f47ba10bdfbfcc1fdb5a046aa6c0c44c034078cd44a453f2c5e2ed2d3a28fdfa4193f18ac045e130e018450a32de8dc77a9b5a58c7f3bea0e2737ba2a3001a91dc90659006cf857ceeacaa68d1b4afd3684beb01f562fbd88c48a415543f2d135d958284cd9f17f9593b42ecf699081a1f8ce29ed0c2c9f34ed6c5d5bb9b6f38d71b1d07c140f21bf00bda27bc2a135f44cf9845ab4b9fbad3380de63034865a56cd19a09b63d30b9c97c5fc125dd7ffbeae5e50c5f9378846bf6db22c4e361e1aad3fec5cbc846308798419a709437faf2b4f601bdb6dd48502d3970a1f9ece64e671a28bff48485fa41a91bf3f8af52af05f930aa01d72052591a9657094694fe9b1e4dc59468b4b9e1a4e4de8d6d7d16e8612b37dd10c6bb0da7c17cc90c253f3ff7619c4b4066ab1241d0d65ff8fc7a2245119cfa2a9c22da51be208cac67829de980646a730ba8cb5913905afafd840ee1e4b48944ab6c47ff6ba11ee69db419c5a2fe9eb0e1fc2a855f585ccbdc4219ea34cb9f8dd78b456777f71fcf0b4905e6ff07528264d804df774754483d5a384b9fe29a9733cf74e2436cffe0d52d7d69fcbec6f1e8f5aed43a9c311912515df71ffc3c14d10431cd913541118c48cad2509ad8630ba44a3b98fc634825413d9175ab5b9f45c6bfbdf78fa97487cce091bc5e618d48a8304c2b5b03620bd8578765296e309abfa51fc82e6f575543e78bba059ddc9e7a9f04a20d474239abf2d1f9da8149e12bacc6f3afeaa0f7b172122377be7d751b81420d25348a1a3da49ae8437b993bd45cdbb4754d27b0d59ee1773bc5e9770e3406a202b51dfbea18debebad55ef897c1c835aa5dbe5d2541f91ae0f26a7621ad198de9e85afc9ada67200d9c0efe27026f946920387e1ad932903a7a55f7908a1506bed524f059e611129baff31e611c920c7e5fb29f100aa5fea4d4b2cda8684c09e8a8bb667a75b9c31ec5bf2a2822f3a4a86034f9c4f72deedf6199b22361f42ec96ba1c8e6721fdf693375e13c5ce781c92f68a64b3b0b9771a82f9d63d6f752bea8972a547fc8f5fc29a98941520592218e6dd13153ac6309d68a66619577766cccb52b8ac7c4422eddcbf105dcbfb1c4d25788816eea8c9b7362fa3e31285c2597e30526a507858a81a55db333ab29ae1156b42b96a86303577d080ed1cb02ac0ccd86dbe6ffe942edf6243b7ca31328f356e47201fc2eb2fae13d58b193544f2395ee52bcd5b1d3560ce6e9a22aa153aa974d9a1c81d44c4c131caf3f58f0b9be9ba7d60b66ceca0de5dd0110b2855bce2e406ab7cf17fec6bd892ae9c2906083d957b3a897b0e2c113f48f2f569069bd0355f5acae2882503077ec97031645c5ba395c0f0fc291a66b1c24d06bfb4d5d55e3745212147569e7587a1fd2d8e1d0633877a7e48a8b5552ace7a139aa78c89b3eb23f0d794d59d9c63e9d605c6c92cd3e2c408307228303712cc3ea51c44ec634cc96e11a874579e4a0494fa5d2fccc8e00df8e7f6029ae171c1f66affc28b462b085f500dd9faa6e68a7433b2677bc8f457965c69b37debca45e706e0103b42b0967e5681174edc52894e5a589a88ff6f230d2d8621cd60dd39b7bd3c716746889edb4bc54ae7185f7d195f0fe5aa0b0c85dfe3c15db55817a9ba35aeb4e6a85905343bf1b0204cf1cedda6e130480f274a99f0ac5e4e3f4577311b326a5207753b5ff341c2aced00c10833f7e01e402441e1c40d8a56e7f92100d3a59703b7d26879c5cd868e90c58fb80b6e6e7566eb702a8b715feecb2e1ee10478f560e70c515ee608ce593dfe7db02cb7b84d74827cfba764198134d6a17e0d898a5948d7353c412fe87e73d7d2a555223f86634264d624b185bad7b8fdf8791334000d9775912848f161bf02f02ad197de514c499b10d527588496d1f26fad427d570f935abf5c9c45bac73641ff2a8660b2c2fdc07ca3bbedae6a979b7c085b5cdd4ff40abc7b87212c2112b951d235d8e31eb9a2db07892d3c9fc25b196665d52e0eed9620fb42e1868c82b96bc39d1a7aa0312308aaab0816d99df936fec46fcf235d35ad537c25e9d993df1b5077a5e077d0decb15b0c2fe9255146cf2d2733293d6a53d02eb0af5f12bf4821d35da81c39ce192ba0e7235cd2b7cfe1731a1faddec7f1b8943e8837b02cd4e8134ca73f0191914a6e3d6b5b599f0ff839b0280e6ae78f14b7902dd50c17a01e4ebb16be7f98940f3ca30684d2a752247b94225327ca6ce831694f4cbfc2b7890a70962316553e880868ad691a0a7c7957be3254c4d35592a467230b01531fe47b5e093b09b31a4b84364d6108a6833a678b5f4cce29702ace76adaa8a878ce9c35403267b4cda0e4ea59746901ec500f225fa902a84c002d256f1e4aba92d20f0b1ed0f4c9d3d4a710bb5e143a3cb929db297e39aa074acdf5eaeb2683ce5d487ce76444bc7846412190e963726f22762472d84dcf447313dace624bcea078c3f46370a7cbba59002bc46998796c7f74766f7a3ffb5cc1dfebadb09c03004611d246cc21c0622ce8d7980597a92b46be96ac83857ccf435747a82585af93d1566b6875e02bce576c84c80ed440f6f0101a0df7d6b2e491bfcae021a522aa52af579b68f611555b1057d76dcf56418cd80baad13654b95053a236cdb5d594b54c370aeb9658641cd695d85d6c5edca95cb5bc1f2ab027419b9a671a075b5f79792862a58af86022ffd4e6195754b72ae5c1879d21147e1ee263eaba541795372695be42c7b33607214c9c667d2fa301b84d23859263901e4960ab739ad1d48545a8239a17b9a89d9ddb0b8ace6688a8312476c1214cd8bd514539fa4c1d2de5cc7dcfd2c6b6b2e44500112460862a5359b788bbf5c42357cbbf0a817557d614c644587062fceb5b55cec5061acec8d8ac3a842252a84579b4b5eac4ff0ce0e731284e5d8be2ffcc0e9b2ac5f9e0e29f48a1de6ed9a0f4cecf4de5828f99ae369405171253767858b08b7bb76b276cd15b1d287980f7de2e31ac2c1cf129fc1699115f15a1911d909aae38982bff812e4999e89ae63a6bdadbc06d81bfcf1f2f6952ee0d2c97626e0ca958f55f4e03d72c2564d5026b8b00b412caba692705053877826e37419c0681b0c8a6709b2cb7976266b96e8a83e9151e81ca52e2d6ac778d335ac692cb85f97da5c96fc19d8978fe11444c8815b82f760d56a117e5316378095cc9f3c8054d794d38fb608566a23515b176faab69d20c9fa9cd8c38eecbdab985ac0c3fbad43427e00ab48da5b2066dba32447bc65a5dc0b73ce3bfc64c5b2d710d13ffc1a735e288023cc9df6015c2930a8b460466fbbe09c18d68bb3eadc5261ea2d1a881cf41f14e7b0c99da4d6182287dabbea60f30fd2848fd57be7eb99dfa9eb09ae8f2740ff118b62b6352867cf131bb126b377e40d32f64e0318a3a1acbdd180d997d9d6809689e3b76010fe820142daafdf609b9d0318e990d5d28b8edee306140f7522db0db557275213e3e979435b78c85cd5cecd9d5a20626accef3322b97bf672699975fc3a1012a7a1831d5b139f7c6fb4ee467995a79e1ac2e9caee74124c07573029167d86b55f115031a764c217726aef7b608a9edcb389d8911fadcc76f6a5c63ac56c178f7bcb684a96c112615a3290c460d21bef903f986234aad87df94493c7b60e94b675193c125fc9390046918a0b7bdde68ad1f873610b348c955541b931b3771c04598995ac879c03209e42ff1c7bf98b722d2ad90401ef729f73e1f81d343ce8fe368b58df8448bf0b49fb380731b5ae856bc32d8cc5404c8ef2f43394a9d157c6ed8cb7e0104b648bd08ac172ada83a252448f9099450f1daeddcd8b47a78cc13a5114d5ee6e76464c19480386ee1a40472c2761ac70231a23c2b03e4d721a2fe097f92e77d0ee827f32511d109c66db9cee9cea79ba3ac2aabd9824d19084f38bf01a014942763b16510184cb2ca250519060565543766e4ecb30d2b9bb422f7bced7cbb5682e245eefb45f1353db6cd4ccdc2031231279b7b72e4248b36294e78251a931639f8ace4f6ce48a640b3a469b315bfa85f29ef7d45f0ea7b31679f90f68f6b98a3058c48cd2aeaa9b70d875bcfa84bd8f0c324b6a9846baefa1981ca412d77f5c6ba9234e16b4cdf3180c42eabac4f59fce156684ebe0cfa6c64d744144a25d805e2a4f6c2ac051d47849c3e534edc29aa5e89c6210b096939244fbcb2be6c43b9f7c8619b8f511a1fec6d631eab2b8f0e20dd2a8141900c0d1f89bb2ee95ffb1f132c4a70dde2cbf8f510e3bbc0f18a31dcbc589464b52f0e1381ac0c55db06dd79a9deb723fa63cce4cbdffed7d9549975965c1a2079a05c66f61135b3d62110f01dd00192ae51e38ee7c6ef2ab75388eb87856218fff4e3d038b27616feb96bab854ebaf54ab7e5276a753afcdd5dba42dbf423930d197940766b0eee355b5e987517415cb7095ce0c862b4cbe24712c20d67edd47c43a65eb9daed37b3e05677ca15915d7c80f544e500bb46e8d500a6c8bbf6228be0272f6e008beb4593fafd04ca86760293d3d94b3d64a00875fdde64393ec3af9c36babbd2bad1b4ec891115f89128b5ec7b32b03f43a908365ad573c0e6f8e9f00b80e68882cf57bb40ceaf23018d0bb1e97d9f14a8a49d7c896bbf65b7738da105da63a3059a02aae7b6638da677c4b103864d235a8e2cd00488c035aaadc46178d6dde50c808e7ec11813d8ac5fc183be6a7481b9014a9d5d1cdc5e3ebbddddf160e0be9d732985bbd09efbf97fd918be644d662b792a805ea558df2f081c32bd344aae40cb47a2c50ff356bbbf9c57738037a12a50d4852a47361349e39267e7c5b8b9580d0d70d9556897e007213e8db8e3976ac80d9e872955d32831517e1cddb6f76e1257b42df2a4801ce1f47dc873c81944e71fcc6409b15723abea26bd11403d21e272fe00f42f65d0a0357e478775d21932f62541c4efe4bd6190dc4b8b72c68853efa3dcd72053e5322931e8a96b88a2c1e638b56754d16bffb678ca86aace0520b2ecd0275ffb4a960ab0943c84b2dbf3103c614bf4dfd0f10fb57aeb268d8cc34e24764e89d83a966426965d8d82f3946e4d5c8b576614cf1522bd730f0e683cb4e4296fb6cd97cb67298a5bfbe772e6e39916f2a16a8976ef84437aa529c532b39be3f0454f7d282ad89be306b3228827dff5527d9c84b63ed5c906fcc392d226a7a303af6f25cc12e30b36763074f601aaea4eb5addfdb22a01f84584aa0e1dd3ace619b21d1c9679855c12b021fd9a24e46b66053449913f83afd1504f970314dfe322e4dd6abb195b263ad8d1ea9db3986d3358661178ae7c59c18f571fce0f116405ac6951b3106cf1bf23098289d38e153d9a497fe7f6ae9814d26c2b0741ee9d67e026bfb9f37729244a57bc3521decf9dc6b7899f07f386aa18000d4ddd3c1b8b3910762ee945517102465caeee2eb061e5edbe3192c9a106e9e355db80350487e307ac0d1d45daefe81f5c55e43634b26921d45deab6ed018e8136e6ee270308283dd06c56d373ffb7700fd74ef09c5c29035279e8948396884546dddc70b4b98cff981cc80500c3369e949d796e3d3b694fb705bf8808ddebede5a6edbaf417eabc135d9809561e5cdebd85501226a893daa6da145a329f51658529d3c603d44cfed8d5ca3a661ac4a510f2e94e8170c1a745a37305650ab3abec911d2fec3fe212675ad3a6aa77758149ca80279920462d17391f6bc71a8b4a2ef6b02140839d3ff67b36a10fea27c9eb5b11e417be42745911e6d5cdb6e73aa3889529af7247a0359b754c62ec89a9620ec2a0fa8ebe2779dbdae172193951064cdcf815703bad084433a3b5684fb6164af037425a009db65f5c7d08bcaa894f1c6cfb069d08272fc4cea38a037efe8b453f5e48748961f1dc2636ff21661a76bd16fb0c48ad85f73d2735cc712d458e416cf35f1733dec336f6fada10e94690e8b1e0483d59db092ed029d0e7092a694507b0670bcea4408d10fafd5464edb4ccdb13ba2a803f966184df23aca95d0965d4773a4c1f3f5ce0b6a7483b41befc946d3848965026318fb51c183708c9ba692434460de17856dee8caea0386fbec3a81292f130c41343e05377743e1c850314032486175c60e81eea2c97c34a0420186fb8a6f804d1be34c6cda46d85f024bfa44a925b1240ea05406eb61ca39a35c26c6b7357797e4da8e9b043e7f523db7763daade831ac8132473c9ab99dc1357a923993bf3b16a225a3078c6abf5b9c7b80b1ae9d282bbc57fa086ec399ad4230f5d5d789fcff2f505a81e0d9c42e9206067c655f1f18cb626dc18eb76aa81d08b5f712cb6f624f351d46efe00b25fce92d8121d5c8f19fb2a083e52257a029d19cd3028e39cffe9bb88e7735c452d100edb53d58426337212c369d9a6044c97e59b8c0bcc6460a77e1c253cbe5dca20b20a032406c8adbd4c6b84e6865deb28c8d32c85f7b108f8b716c90b9b293ccb1f0470cbfeb103dadc7aeb398e6f2f143491b12c347f161865bc103cc149be2a1e77d18075aacb9309e57fd3342b716247202123cab3ad5d3f68cc547567d14bde4b33f241611c0ea0a1f5621089292328012f4a8d3387b2be42636369f434d985525176afe22e8303ce9ebab0f8bdb1e1a5ef69b4d9b897b2988bd05c95db60e67b035387227a57596e11ba214bc343708b26b4b47d31266b5ebd9b00f0462bffaa31be48761e0d9bcd64b09aba9555da3dc676a47838c8128dab61dd159c695d3aec9496bff9db8e18fb9c013c498d183168829c8ec5e8499f667d59b43f873065fd2499d055d243e047854858eb5047399ef835d21cc9f716d8e06d03fcb715a4c876735fce03c72b867a8b8ada3fca801224786a820dbd2852cdce87480d08bcbe085902d9711a763832e10eba2020e57bb198cc077bdcab598b23933158cb1a92b98a99b36c39bb15e6bcf90a20f6a44a8ae1dc024dee196f6755c8053a94e664c54cc3fc1fd7e952c3f0195a9e283e88bc061da6e8d2b1279bf042f608ff046895f5340ad12eb3dd643013818cb77dd00c4da37be94e98b31db7c8da409dd49a6dcc535d49b2574cbdf853e72515248ab689a19945c4b3c55c3e938200c1c38d60fe4f7fc5662aeaf87fa4eebac924068ab92910cae1004ad94b384fe6e4e6ba4d49919018d4ccc56b9dd681792e71fa94637bfb47287a9354dfaf689f022784c6044baba0d82bdaf6aae1fac0401960388e0a3a3eb82251b210b8201c6d5ec365bf937a265ed058c2c4a66d033c282fa85e24c4ff40331f36807f0932a6201c66c1e19812781775d1e38229a35dbf99049223821732c5a3de2df9b161690e2e8c0a50a796e3bc6812c3febe2e728742c797ac1be8763b49f152074efe5f12e631644486ec190d18888dafc6bc9325eeabf6045df76b212abdcac0afd6b73c40bec3f900edb4494ff3d1d6efbe6bb32a6a0e4be99ea539575905a2f5e09ca27528da5890846b21c8228e730f48fc6b3a3b197ea43c845afe6fdda776b8a25e081884be6a2dace6f404ff02a141f7454efb8135111e73b5c0ba6c57ae654da8e8d45740d11a7e28af5fe3f949f3f5f41feb1db5e47bdf26cb6e069bad3b59e280ea0f9aafa34e1ed9f125c5a84524b413ed73365f2f5915ac9f0e76438e5ff97a033a5fa0db6bd837c70bb2479ff3b5de3b23b0bed25e9520c00f0504c2045f214697ec259adf656384fd9e9fc48ecb395bc3b8a9415613b1f945b12b127c764f6b3a7f80a1dd747f9f541ebf973da57fa63b6d4de40c8a79f9fd3b6eb85310506996db8f5d7dd8f486a2fb08bd9852c66a8fd1b4065399221f7282119a9f9f8234d3895dcbc54d99378f8c887cf542e8733902de08f67592dca7815b9ed5a421c513876fb2c87b40233b5a0e2ea7c5134bf22814cb27204f970580202a12f06f1682fdcdc5baac4124842560bca214fcb9bed15deef1e5cffeb6fcb75f6a0a5c2fe2179c9722c0175790e9f2c218529624bb772b05123f86b3385aa4450d51d0e2259b1c312d7fca7e2fe92696d714da30277fc0b332de9239440820a49fc6158500adf2c92b0710991f24f7e7077799f08e8965443dfa1873a08cac71fc6505cc4a9bf4bc419cf8ed7d9595f14778a9059f384a91541b0129614bfdd34407bb2616fb8308012ebdffb102b06fb05c2e5bc832fed79a6a234a637f044834a29654eb49aa5d6fc2f761f858f2439565270d23aa11540d626e3cd950e4d4ee56acc524835b4e9ba3a79b2a4b8e5a5142c46788d57c591aaa235861ae78549802eb67ddd053254971d36588350d5095f7637b1ca2932f10a34248fe601acec447900c12258992c8537fad72f06938249d3223a6390cb33841dfea3c9064dc4a90537cab471feb5c24d8d85668ed42d2a42409887db0c787ec9d538ad623bc89b2b1a23e2e6b2492fe8ec43e39ed60c2fe8a09a9c5fb796ffae8ae40cdc3f04f20e9068be9f2cc8f11a3be6878bafa4fa016f1f3fbf0bf173c9e087121ebcca4259fd703515beba7d4541f741243cf38c182ac16e203a439b3d4cfbb34c0c37eb108dfb7cb3102734d1cfb3b5b6e1e53f23a239ef15d671fbc9489d352f9fe7fde9d48680898c1f1e1ec39b60473e16ce0fd19282363605f77564d1bf7d5ffe0122164b4b99576a129ef16935a88f6a39239828313ad0371c9e5c8e394de4ab43b2f4e3c2156908507a697a8f755296aecd564bad6002db5786b6c906a8072f51487d1c05774b69fc91e29b6a61df95f93bddaaafa3bc46a2bf42eda6b149f21ae617e9fe914417d82b71bc83beecce9e4a599b36c761cf30f66678c0da880f4e57b105b96300e9a732f17e47ba482c56f9f7adbd50d03705abc2e75229c72a10ca424923b2f7574c214c676197128bbc15f8955e3b085b2adcbea9c5fbf4e386fbc1a52883886beaa795b947ac32df57427c12182c58fbfa7e9562de73cf9e795f537057a00e4a4aa1514468bdb86cd87456505a7e8dbf780bbae6ceeb0e57c3b313f8aed3162a5864766c7f3e97eecbe9d440cfb76e54b39c6efa1f35a39fa7ae76f6cc6fb1a557d490ec20f5cbfb6adbd963b74d1f03f3fd4c77c14ee865fba905bd1277318fda34c72591d36fda4482595895991b946a5af12836e0e14bf9e82674578680d0cb1d41b17c4f9cc87a2767312c24f4aa4136d4898194585d7363e7998c3d13c9f114484c6bcebdafae6a4489f5f68cd68f9318620abfeaebafe9b75a17ed01ff92e08fc12380da57bab485f736fd28292e0d0bfb1e24c9b6fe6678f916db50d91304aab4dc7bbbbb937394292b986af1cc0c9d477c92701b8db39adae83fcb84ce8c38f0c4918e755eb1b1c94a4a0e7543b5a7d75ae9433e3efe6250d1685807cf9b3e97cc873b1eb7383ded1407fcf71dd02c8f2582e0b2a7a1eb81b758646192bdd70ea925a6101545e4b23e487cd49b94f691eed4fea0916e3667233cb2697e663ec8f0f245c97c4aa034b2be4dd99449a5b1b7bbeb9002c81e4c498c6222e3b887708e3ffa2cd7e9625500678f91ad9e431b39a65f1137599fedeb2f36b4835a40674264aed7ea55b1e42e254881979b453524b932f9d7435f6de3020f5cf6277254ba98a4c421f5593f2d3de8fcd62d0420c5671d94059e24a9ccf47c7825aefb5cac0ed73e2b5236227c8f27869e6c10b068aca612c4b5b5cd7535c6c521a62f85d784837af7685c12292e705350e3662156955b9fd152e11a30cc3ea474a9cfa182a7bf5e4b6f9076231d578dc9775a1742b478330fccb64a3005225bee45855c921153744ff30476bc830186118cffb19cdbbd9a59561ce3906d91c60cb64ef8b688d730bd49a1375011c299568b1c81781951a28a5c86800b655abdc8735cebbaaeb48aa5385fe79fd58123973d4155c12ae320c596d15b5f9598a5139a455d221096029b835dee0d6621be49daff212f7037898c554eff7e0ff257ae91a7ae9065ba780e3fe083537bdb2b982d75fe3390d76be7d818aab577ed13cf18055da10c5470773033b2698f78bc9d0e420f2c09dea074d0f82b57fe9adb44f5f6ed5ac2fbdb4e12c27b063a005c035bba29a92aa31b7222eb43293397925ec7e0382b1d0b3c09c53ed17e9c819a60e7c5b35167dae46bcecebde7bdf1461837234a82d0504aad90cc82c045d4de30a683c11058a7b23ef645c7f5168ffff750f56d6dffffcb2978ce7d6153e7c61e1469545a8e0277f04096e49f2005f8a3e276b7fade2d5f12be09dbdde56f5d82c194b7602372dc0090f3894c934952fac33dfda443bb2c41de1932b235ebf54156cfc93434c2adf53229a107b10a1809fe718402d1481b1f72108f1342d78226909b173238abfcc92418b07705187bdae3db2dc932b11c82fba852679d02e37e03eb1a48d77a8869500bd280ec166512f98ec0ca45edc2e6f37f9d1f5f1361ddf3c727757e166d816b2d024839125565d75ce3203da5ec393b727a312d1516c73c209a55db7cd89e8b9426e9966a0fde699d43a7093a39abac2899784cec8e5f657b73722d591dff20125bcb93a1325c16aba37d806ce3d63f938eab47e55eac3afa0f178ab8f48b80473083a8bdb1a08b1b7b35ba43b5d90a32e5f8af47a34fda606fcc12305a29ffa548b301a8bf831ac78cef94152c363f8b0df8a055c1523bc974a03e6401fd59d5f8958dddd218bd3a81c60176fab73f85b3599c979829005a31934a605b1efac587418ab1fb19d996b55163b625ed2a7b646e5c933efc6d34435baf67c5f1f1b76f6d7a236cc7de5b6595271eded9f53533ac605f965fcda3fb159c4be96b3c33bf72087707d8253102291efc04482a1e7f31daea8838dd37b2d78a4d8c371663070674a654e50930b8d5cb025f2b48788077d0a2c87284686ee4d3b83bc317372a879a513d1d22421f8572d2e98a555d94f6c7de45bc0f71e882a6ed6da6e55f306d520fc6d428789331acb2b405e2fb5d858e8bbb82250193c149b0b0c01974e4ab0a14390d2fb27a7aaab203a633fd953b2e31929448912859c96c47eb1286ac4c1fc82ec2ccbe262320439b7ddbbbd6e9cb2b26c17e178b20977f22233a85a926ec3f2aef8f46c3bb2ceec8193388ff1838ddfab7c9d1ea726af80e3a09591a1fe3af65b548414c05ba6ab345cd55d556585313d7c0fe4e6f48313d022424c25fbbc32ae21a9d15e1c0402800d63a478511de391dc43d14e7dab025abea37e036f1f3b91924c33ec5242a7d39cf2c5d3418aae482966d33382dc3e044fcf2e954a3ed00d2f99eb2d60a24a0ba322ef35b08fecac29c230006231257903d467a0dff18d37f807a7e77571435768051f5a107b7dc1a22775565274523be73a8f4031ff60e2a5a76f5a385b128ed0fa979206e8ae3f108274b168d7261752fbaf15e2d4c28f0f1c45a42e68b5465b53a4c473c2dce83d9a1471115cebb08ab966ca65a71c7109df25f762c79dd6917b927316c744c916965d85754d8b7a22aaca780f3ba459519b630b0e86666b5577d3075be7a1405b4e91efd9ebc552be82874bba4989e340c932a4c43b97c2218aa70454af02068bd4bbcdea6c49b158ec6f29a1093fbe6c50127320ca44977144101b771f52a3f8a57ce0cade6056aaf6b526dc2130869c59b98443f618f1d4329270b4c599165349fa0aa3c3f79bc13bb5a3ffad738cdef2053dc94c1aa97721718cd27ae7b62496258ed04c4b2ead61f8ebdb4b665514ed4a320a35f50408818b4b8d616ce3eb75fd4a2aae55603b15fd617e8a8c9f830bc4af413af8e9797de644dbdb0ef6f3c6e747499de2394217076503ac1379a87faa9046f62944c908b4493a4c75fbc2d6a827f0f4e9001ddb4486a98092eda1978d5585756ba71951443785fa504062143b3262e273a23b28c3ac9043c9b87dd21bd64affd8714224cbefa80f195bfbfa8509eeb0a82b708183229b95015800276b85cd71a168ce25f1c417b116509b3ab3097e3786e178341d8651fe1819731ba625b9504be307dfc71563af6887d9b4ceb2d8fa2384545c4b49d37394c94e646dc08bb5f39806a426ce313d51569a3236d04ae24c588b91231c050c832f22f3af704fd4af044f4d34341ae28456bd5f94c686f401b8e479cfc9d070d7228654496f412b18e2aea42a08a9829919b8dbf9415bb5570e127d1fccfb694ba43a1b28abc72c3019082d7a9095474f367bfa06b1f1c82e7992ff7b060fe04167759cd803bb3b75a6d9df50e9dd3607a019e64f035bec28ccf651b159e12c6696a78b65d5b3f8109f9a4e924a56b5b4515ac7116d9e03eb175cf46e9243aca5f871b6808bbd3fc09d86e5ae6702ce1ee81d971ff2964a0c8cfee3043b118e1952d284f572826a6b245f8b29b2d30e1eab0eff37b4d07ef0d9f5221f02036a2a7a9bd680e19af263e50a88a6f3dacf31a30440976e9c69ef51f778c91a80ffe3a281521a7fcdcb85c5b8f770becad6f1ec170f83bc34983aba60d61dd649af4012e07dcaffde1bc6b495f9c009461d9e79e9e87c4978122bc89d0b4dbe8d044452450f4e7be714b85eb428ae4252c0495160b936927b7daa90510437f7d72828c9a642b12f13b3d6cb59538c96e7b03980527802a5f77192cf693f768338d5469e558653bdd87fcee2fb284fa8c80a64550db6ec01e38e8a999cfce09ea0b5607fd7bfe662e7c7c7a456f1f94a1c7ad7864f4a0bdb6cae76c3ba1b47320fef96a7bdfb5ab3954a924d826bae854049db95e0d6374a6f17197bc921a7c385342e7d2579d9d6a470c2aa15333b94713400620ba53dbf3da44dca14de9a81ae7eb580e540c3974a66f617772ac838275e0356246550b17190f19ff6ec5fcb1bf6240c5fed55c2a98caad01f55fc9c6b550be85318bc665dfdafb5c9919fb7c61b0fdd9400217a8a2cbff387ea4043b945c8564cecba64d89f2dcc11788c3bae39a9de0c795b9be6a3f13eb658bf815488444a759fe487eeaf99de615c8b4d3a2dd0ba3b5bd7a6d6b33ada1b5bac58257dae596f714ab2a2adf3efbf76dc6711bd5d5275de827f237b0a4cd2d1d993a6309820917732a9f207c38fcb92051ccc09c6fb9b34f1cc8eeb4ad6e96b1ee36889cdcccaf7cb412825018c190176a1cff17ed3f579b747fae0f18d5633d6bd00fa38e2113abaefb8be19dbc48b41a49f07423afbc2831f5a10c06115c6780aefb11f450f629acb8d03d6d7ee7bd8a680bec314eee308dded6b4bfd24626611d667ff38ac4a51efe63a3e6621e1f0380cd57a0716d063aa9dd55ece9ca22157ee87c0900c14462e5de0fffb5213db74b73f6d1929181154e3346d9d31d09fb47ab6bc5546ab854f9e6472619ed7de8d71498ab722b88d61c07bf3139ef95a92636429281307d299d9d6c66471a1f28bd6cbe33bfbeebeca6c864b22279ff2b67abf9ddc882305a48c45cbf9be9f636f968c6b3ca8b3baa72eac29b7fb3807dc5720d0cb0021c7ff8d621d4961d944aac5260111420f8641466b5a21c742de94035be4c3468e755074a90ea60881d375e8b4b0813e1ffc70c841a01efa101e85ea0fb026a453e21f79048f74c47aa6690f946c00cb76b9c3e6e9461a88fc24b2f03ba63cfddfb7915c2dba8bfdf5579ec2a383143f500070b38a438a51e4fe7db0372a82eba715e38f862665191db750bcce38674301ec790b67b8b138090684bd7623571a9422e3b0589fc287e817ca988418b1cda571852ba22d8cecdcb16c9dd0f0ae4c4064790f6a8a66bcad77b975198f7de96dbcd56ae4319e3e6da3b216efd44cc4364c1647d0abf01894a67d3272dab812c0e0324086700b4f21c3ed394b87e66a34705d5f624e0a60a8b1256dba6a870dd7b8a5c57bd24f156ba76e2bf87f10915abb706d00060b50fad52a951c11b483bd2a4d12c090657e492bd03cccc60e94711ece923125cdbbcad72c142b3f21e867ff841c80de251edc6be305b3733e7f056d3ce3838ce3fd48d042536445cecb6a4f7f6e410800ccf1ebe179ec9bdfb04f6444fb53440498076f42303fe94eb98c1a3c4885c5d04d549f92838b06e16fa3bc0bb86ef015d65ccfe1671306aca4e7f5abcae7863420c9153e2980724037c0e187ddc2791dc0b47412df4745d3209cf15f6e923540d4cb36eaa8f03bb71fa256fc1f00d79f220f8e8a8eaa279bfbe63903aa7997f5a2dc1578aef8aa39d763488787bcacd9e3b29245ffa37383179636f6e0983136d1fc969c0d2fd9f10ff68fc51e93bbff9436b7cb71b962231b05c3486ddd592febc7bd2bd32cfa159cd149c827f0d4024756a3e7ae56eaed59b6d256b3a8df3ac1fcf513ee09db6167e472289609d98447a76955fc2267bc8cf3ac4264f6082287e21227bb77a114ce8ab5ad7a63dd1df7ae19ab1bc7cd89f26cf420d2090017f71165ec9e201a9a1ad26b8381a2731599081c4f6d3f5f0d8dc715de461ef934a9e75c864cc33370f556b226a9f7c357100d4dd8159df793881cd45701024d8fd2120b96124b9985e40ea20f15bd591c876a9b74e0ee03e7e717d8490ecb48628bdfae6e819dfd3f8a524e826c5f9ca268b0d53ef187deac7ef241fead6c13e54906873860a41d63ec6e262e29f70a284be5d4652b1690e5c9cbdc175b8da10906d4a73017ace730a6a443d982691c08fb73a2f641205a28c4839ccd9c3ba62abf9879bc6b97e06a4523bd9afc294e60a3ab08ec34ebc83293271d98a8795783fe339007b096e4db642391dd9397c96d794fef45a967036404d9e9eb66ee1e2e1f906101db1740dd7c7e7b935974fecbdd46e3dfad688e48b3f16daa9d45a759da1954ae988be3eabd16e4323f255ab3c0bbab18ff196883a0cb7af1de5196f805983dd3a1c67a79d0adac68eb9e4bb61a77358c783d9d03b1ab66cfcbd942b602eb603e11a82261878a7dcec7532f08aaa1f6892a4aa881f07398429eca4fa3102c3d6f54b5225adca9c2d3b2bb407b0c2a0774010c7b14789f52bc2b6e19d3ac90e6f109b883c7c3970cfd289beb12b81226e10b0e19a703a40c7d923ec68fdc0f3f88f7c5d620fd2ccaffa9497b3d68bd4df35f89408a3c6bd02eb77eb6353a2dc9b2f7d2b35d1083f568b814554c62355711eb7ff12603a2d70218b7acdc694777a7b800cb12e48f3ad3c1f0e9f3d3c8553894ec8aff03f4c54779a85420d0c84182e06562e0f1832f9d048524f945dbb71711ed8d181a532d35029f65caa9c7f9ce5af54d3fb182a54e2d39f374f3f5c6c70bf8228bada8ac7e0b5f9a4f00c67133ddb74dab53b95f2bd114879e877c4e44eeb46a51e24e684dd318bceb5b8444423514d873ff9f034fd7067875e360ac5cc61db4ef07887f7c2ac72eb6b829549e5750e1617e40955a998aba8be1fc21f027368f60e511fd785cc6c6ec2e9afb52a177c99e75beb1a877ca53b691108c58fee9404e78ef9344f41ca176366d0d85b3af330f9b20d3caa0210fe6a4afd7536a010c5d628748cb20071f69951697d7d910756f6acf33dc2ba1215f4d1001fadd05f7534efa11cb6ac39205277ad8d7be8ecd3153a7f1c752479b94d66bf299bb07b518a6100779991d2ad43367be63856a6b763ecda11fe56a1bd2a0cd5b4727a0a9e4da141810f1046099593c8c5ee2772627c00119bdd44bb7e5804460ee8a4b22add6bced8578ade4ebe3d764fc849629fe308873db60d7d328613208dc4f3f8c22344257e297213996e1ac3aa4f21dd66d179e13de3ff6318a7171846eca201c9737ff271917b20f22a9d1341b6347195ab2a3ffa9e692369c4aea246d8bf98b3534cf77a4fda6382fad7d9975aa56218ca7c9045c7f620a99f527f9652692137854de86d7e8a4c53f0ce32ffc7c118f2091b3caf5a3bc3c192d36cfd91a7b76924a01a7dd90be2f5d525455f8534c1b9a3aa6ebd2a7a31ab12924ad3a06fbcda9193034b6e5fbe40fb302df5310c4283ead027e4d904f50d9eb0aac6a3f26418a6c343e2e21452ccf6fd28c1cbe6009e6c88f839affe47379ae81984463c00de0bf31a58aca0511bbd120b4ea3f51cbd9892f4a2c1d44921f91f1fab2a18432dd954dfeaa19eea67be9acf30c9131bc77f944670833b0a617ecf0842665cdd858791e8a3038ae715e579f210d3ae4b5f64621f6bade026749c0a045c7c3a37ade1599503186d828d79e032279ab93d23515e22d5fe17d0534b88a577dcf7d8e2f2523f6b1017f17d4f48b9370c41ebba9a5a994bc01161a3600e8c7d7aa655759861b8343fae4d567f28319f844fd525bcfa1727265de5b30c0c7447d5f1e0a875e667b4a681add7a910928e3da4085eef53d8643e7214fa926a6848b5ab76ccbe988ff6afd68aa6a32cab66bcd49e8941eb2ec73e0b7cba8719a26b45d514f9dd19d10c97a809179797e1cd04dff52e9a4432aed366a1452c36f62c43488115ddec1bab844c21376a04700558e7576b716752061c9a13a23203d07f307e8a8640467d36ad8b63986f4b41bba5329e48394dd614eea414a66b46ccd492fa71978251ee171a08734c04733ee08b64fe9127494e4fdc868d225ff6bb110d60d0d9fbcaaa1c61c9f0870bcdcdf8d4571207825e20090e295607cf76125ebb3ea412ec36d1cfcabdbf2367ffdbb6d86911e625b576203368f8f65e59eba3f4377cd44072c75266feb2ac8e92a3f7a1ee987af386a837b7e716c2d34e3558eb89d22792099879e1b9c63695f08ae9038e58c75cb151d17b8e5d2b83bfdb19d4f52bc7fb943a145a99bf9f3978058e56ce9548511127ec072ed81541e57cace6e46e4242eaba68f522b71f50d1753dd6cedacfd018212241f40a9c8c1c0725407d403152abcf267ea3e71115715beee2bffa0ce5181d7d1996d9de3258dcc8ed33ce84fc1b51b758eecf79dd39cc92ff404d1e3da08681ab23009cb5b57b0c5230ac7f8376b68ab136a02b21fc49a68b9ecd7071933d4353e465c7540094fe6ec7bdec45da37deba7edced79de01d7fb3da33b1b1f5003fdaa19e6074d457df4f5cbac4a6111fbe74e70ad056469124d3807505da1196e141c30e8a5e1bf44cad744a7635cd8acff4768b332c85d61ecd368e92ca6be92675e875f2b0fbf3bfa8b2a9ea8fadaddfb92394ded23cf79fa9f751a39163e446d4a9ded0eb15b9bb20f21c4f4519644427d70bd180d49d0dfaa8c03981adc4b0caefa08c6052bd5e261e6b74ba8b700c2e0fc83059ed5d3da58ac48b0c8641a06e4212e97a5db13c57fcf53e95fd4cd7136f3b016c173f9963b92e88890f52f72534f6a699f2d4cb71e1892f3c46b4883cb8f558f0295d884e229244fa240892132a1a13abb0d5e92a27087b6e35bc19eeb1f07689499f2c79649224b8a02c98836947902c479b8a8ffc1158804e75c8b3da5928cb291afd8b727268dc8f904b7fc265c042a7d31916a90c9beee668d6e08f1166dbf15dbb90fd915ea0f23917eb528dfb6ee93be53ccd06889fd0c0ad27d41b21baa72a3fdf8fe137db9ab49f3a1077ba92979e5e2a056fc1e9f4ed4204b8162bb5e876d3aec18b89982eb9a5c2ff744cf04dc19da36a4799afad1a1ad0df8913413fbe164b46e3c33eb7b46e4c538a3c8c76c88edf0394902bd45ddc614afb951160d97728a38c38d9a6e2df9aadd81cb0993e7b639585e7bca8ce68ab96199a6cfbc6e015217fba17bf50108138bdeb4212f55738ddf14fd9810a722780d83f37334f88f60c641fcfa9ca5f4b4a888496d888f146ff2496b8b887756a200bc007cc003305bd3b7168dd311d37ebd762b1685152ca4a89a9ce650ec6d9f6ff59453738889239b5e396ff613203543502be470b43374a5484836419d8d01f430026a88cca7e4e9e2d327d59c23f14f233040c059869a332b7adbcf66cd246c1238316f3c6fa90d674537a7d5bb4d57b20e8b2e1e4557706601fbfba225311948e10547612d05892b918df8f627a3b7c41c046edd06fbdf4089d68278b79784c7709645b8b05b17c2ce436d613e89241f2fe1a2adaf558e07619ed0a15020c2462b14ca63fb59e68ffbede0709f95962bfedeea1acdd72aaef0850f2f0374e8a5def30c487c4cac84edfe6f05c09d68a12a3b1453d7b2c2ec276fdfb49ae10b5105b13ef478ea0cb640a967a635edb88278bbbf6633c3c3b7e23f54964e0874ba4e8f30fe60ffafc9e5f424e6be004f0f55f305220bee0657620b1993e1d39e96ae93af32fe3e95831fbe1d65f8bafa5c93399c7a3c9919995e5788321125050b6e42489eb75967dc26c196238df2a18c52c8364c9dad1336ba3b5b671b380d4438824af4b810176675a5266f96058bcb1944a7f25d03f3fb65c47b411c3a38dc1ba9c4c28496bdaf0bb67ed9103f89afe2851be1b46e22d122b95ea58e5f61f07f44abb1206bd7bf3cd4eb85e287b3489b7d368698782d3185eb9fff5ca2d8ea810eb52997bb3fb2c4ed2bebfe1b801ced7eed3966d105c3a874c68943737d9a5fdb32cca68d807d97933c7f28c29eaae01ebecb7a0aa2ebd692d17f3e08d8bd344a6464f5fe5447627636869ac93547e7e6e839302d8e67345d8263164a99ea12babb7de8c86ad721629755bf4747da6339759d9ee6d5a6e87ae8c2fc7490b3be210acb6a2ddf5cc6914a70af7570d0b90912c60dac3c0f9f3316e49d63857078512658830ff8af104cc8055b344b430d91983a08cce6bf56a49dd09bf29f906b1971f7c7b4d7aa454a3807e7f998dd863f2f0d85ae8b8cced235935bdf00cecb17d90118af90846ceea668e2679848d248fdb13759c5ece496ee995baad5d6b32076ffbb4da8edc88c08a16d04f32ce084558fbddf8208694964c505b0cf98a6e6bbdfba992f5ec4190317a18620412317ed0e91dad19ca69c0faf19c25dc201c51b61964791b72fb4db7dd2d686335234f75c2a676d5ddf1f83978bbe74a47cf0672bf73c1628050f68801027252538bb0fbb0a52267d37910824e1df59dd282887a061e1a6eaca762f353386a874d8ed5f14134b0d7d4c927471879dd5bd6c482adcdfef1190fd647c95cf368b9260d09b272aa7e374202374a7251dc78511a723298adeae530bcbae63a1fc3a17b0d0a9bce0a8e3c706a91636bd504a312f5d3be31c5f34bf45d4c175ea246dc7dd8202ad6112dbdd3795837ad885b366c25bc0e9d5edaf32b36f067755231cb70c431ac2a469269de013427f79a3bfa7f3e8a2ad80dc616597ad20e8b5f4ffb59af2db7dac3ccef5c050cd6fe4830b9fe1020d3cef7cfe9bc5fae5ba0bf7a645c66a5899cc5cd18287dd26ea206b57d71a8a2b9c02d6140adedd9ed44dd5f0d4eeef6b5ebc96406fa6a9a28d9797ee613f9852740c72a5bb1d758eacac48f8142b8e413d20539211d7973b31a0914c86d2cd996250d4cd6ad0d25bb03e32639674db0b71cd6dd895edde5c080d1fc31c6519a05d5fe2efaac690acd0faa53dd0e0646cac1a7df5bf50e967040ac708ee77c8b59ea341e9440a8cd769db7b829f9fa918da7d837eaf8547f67f8b857847d45e4c3e64daf877d72c228732c81a5221834381334eb31fa00f54593750bcbc074435f254c76d8e4f80ea6f071d34811c2de8abe364f1e00e553edd8f15f39a2f9d54826eaeefd3d1927e16b190a922374b67299fd26d7da5a5080874d67c13488dac2aff82c1cbb0079e5fc281020bfa47ac5aa20d433f44822651d42d7a8edd9706b7671ad2fffd2889d409f34373629260708e42d0f98089172afaed4537ffcd3f921f7481659d58ed634c1804535f9edf86e39feaa52707982e95ccd08806c6d378660c627f85af1343f211aa467e76bc2cc1468ab1257fe9cc31e71b7ab6e4c2a5f47323605cdf64214dc072b53d2f65053982ec484a0bbbdf967a54f4f0a0c44d3dddeb0c1e0de98a7e7c1e7e636aa11a9ef680a03b5a978dfa88aa0086451e804e58192e89ebd27de0616e7ed7abed15e71b02de7e48d62cc55a0c33b1f2501babefffdf7c0b02cb7a3f3a97b6675e7e8ce4b8fc715ebf5fd57b4b008ded155d0c4b394934cf416577014ba2104d2860052bd3d909ea3f25bbbd6ea79e52353addef2ee0e5f541e39079a5f6addd138f4cb71fbec31f49f2c68f0c602efda3dfbaab42d82a08a463e823c09754ed710ea4ae64f2fe84cf384779abebc7a4fdd2bb58049eb6b83feef48131a74eaca0397dda95de2b280f1b7cf100fd8f944cc1c87f270c9604b1711f45592f57f2947d48f6fcca30c0ba45c0d602eafde64881423a50725243469d596e5be1046ac2111900c6c98f45e45a49c6c12e3485692388485fdca4359875d1ac01649e26ecf1c9fcf15080eeca54d21628a94b87e20d887231af33f2608857af2d5ebff807a9da71298ca068e7ec7b023e370b783c12d6de0e548f28ad3e893ea14016bf32213aab46092dc3b111bb7e67c3373a88b032cdba65d3cb7f0137dd835ff0686656f545ee8f9cb654c9ef125b8e809ae66b0fc1f35d1c4d1882d3f3c4832c11566928f2baf47d4ba8a7251ad3208f0b009ca587943ecc5627109d81f38822b2e98e9075d0ac0c5d86a8df50db70b697da191b08dd4113c8e4268ec73de27ff2c8702da14056935cf8bc160cf62bea6f81fdd3841bed127298a9ee4c63eefe640ab0bea10448ab666304cdfa9b854ee2890b26ffb20ff6850178160a8eab55ee9f623076bd0cfa804268164e5264aa46b32043d25fa74c2d30b783ffe86568014cc2ddb1f7b585f868dbd101b36e9cf115410bdef063535835359b7eb62eb2136db792c4a361207916ca25dc6e5e6242591da35d4aefb84976ac247734bbee132054445f41c2151ee7d89eb83f93949069b4426441540d15e4587e5d5b43fc4b388bff706073dbc0f2802e0127f2d289ee3dce7ee3c158631c57e5e51f7296ff36807db81c33c985ccccec4c2bf35c52ccc1b47f80e2eba6655363f96e4c58eed37709d0ddfe294f8eba5dc08d982dd9ca3940bd87cb6d364d1271a6f35f3c3d93fce93a2824e6f9c2f63335b7376ba3be9e0f7b28fcad4263dd9434c61867d72ed6e6af32ea79930987f7c561f8805f8ab04f073b83565d948ab9cc00f6e44285c2dbab302e30ac099dbab1e207f325a3a8b4ccb2b68005a3800d76eeeb470c3e6f90a186a98d01cd245d184d8b0152b6b47ded2d912f86f3f8e5fa3eb7d3b0bc9aacb6726415fc4f49cb966abb27a11a585d6e6a8c59b6d09e4a32a8cabb977845882d8edc1c3bb9ec87034e75e6e62bc2b7c442d657f1d93ad9b824218b1f78d9f2c348fb72f4ad40e7f67e0ed970fb1ae13c3fc7bb504c790b2fe02ade67bbf2e9affb0f5acb1456e2f5802bd11b8913601aa97496a17d77508e8f8d3fa2da97b13c514925678274469f835640a3fbd90fd32b3e28685230a9abf34cd607d4a801c49e00608b09e0c1209bcfe3081896bb613f611c3c115aa61ae3fb85c584b92ae12e3b1ae04010ab4629d14d465ac92b43de52ff490fe45b6f5c8b3317d38dc2c6c6e76771f93d7515703f05ce117ed033c639900f94f5529d05f8af25f786ea88aee22e15feb8fa0dbef2288a582e59e9e1e750f4658050a258be2926904dc445dd3e605d718729eb8dd667c88890f12df4bcd0afce5ebcbb83452978ad67e5a1b30e9acf208a7c507cbae9aeafe7babf43e9f177a9a5a0e0031ee97a5e00ba4abf1caab24aa6a9ed4cce2664a869748b2891d7d04b923e51444190001927efa38c01fad81467cc21964e7c3f5a70cd6e8fe1d6f958fc9d193681e9362115f76983aa27f20de40cb0dd04ff7eddc8d245c6e8dae42d929d28593c83bdd19d6aac79184113c65e2261b6790fea0ee83c90b5c79f7b8b70b7a3b354a574bda54826d952a0561d2e2465355bbfcd6cc9b92c9e95209636a779177798f0eabc6cb91f71eb121aed6eae501889d1591c96b33f280837f033be8205b08f1f12c3643bf3d4fbf2cae4c5d96a6179e63ab4b1190b048d2ff49711b4899729e59495d1120e0da5b89feb25dd77c8bddafa20f78acca88c3e4889a48ab88d0d3b48a01bd6073986ce3104adeff053e9f39da5867e87f0f96e0d5aee4e53a293fb3995eac1170a8f943dffd2f4250c930162a9dea281218b50cdbec6e3733e550a0544423b89c6a0f998db9fb0d14d9e7a3fd01bf05fb66de63e8d98a6285fdf5d6dc56658d162c4951d28209fd8fb1d9d627449dd6f687c26f21ea941169458e7cd34b8ee97e6c265209cb8fad198ff6c43c1d51057cfe1d6d38685dbd4355faaf7d7b0cb334d3904f4b5f74a3e18cbdf82f952992c90220755a06346ae6eea75dbb9e47976c45a3ce6890f1d46a7d29032a7cd23f5eb0048e793942bfc739952f837cfb1c66314bdda812a74ddb505267fbea89f53920964d377ffc5bca50a609233e04f2cf8e7289ea69bc3c2e19e3ae73ccd82399d1f35b9fa66e943592f8822f62888fce3341364fabfa65b718a567e3be69083f08753985799a6ad22beb02ad5a687994a5e411f2d3fb03b4d949560b72fd4f0a9a58927c474f4aa8fe0294f6deaae889ad756b4b6ab86ae82709583d97347ed52475f0fd69dd934c61e35e1b37be226ab54d35d42bb18165e894b7c19cb4cf7f093be17c2b8f69bc0412dfbc56b998240997ebe431d03dc8d14467418bd1b367b32f618affdad63b54e3cc95486bce7a5d1c78cde06b086da70e8fc84316c8b2b2fc2f0c3510b72473744cfdc27141b26cf297a6c87f1811580b71002317f547ab7f27f2f0d244563201d0fd2998e2435831f352565ed4cf0b4c38fb4fc5437f1e2180ddf5119aa22d5baaf75baa7530cce3718d1008724f8f139951352fecb5a4444728d59eed217b598837ffe51d10952e600ccc0a663b13f318ea8e67dd61ac2f679e32f07702cfffe386d71e577e6116d8a75a9bdb8bf9916979816891ea8f5c8505f4195326d3d86fb63abf6c6ba1897d324a648f276c126bb2b600072920e9d173846d5700bb92d5e239cf1694d6d44955a0567e6dc3ebad1020f6695b7170e2600c529a1c105c0ffcce06592137484108069aa13f29ce956fe2bfb256809fa84ca9df9912b95967264234cecf80abe7af996cfcfc97933c2f098e0e7feb91b5732d061b66c4ee3a14dcd2eea23ca9830970a3b5b6ec33d7ee0d60838f744786d80dab890591b4c14e4fb3a4e649370b0255d4cc1b05b4089fa09024b6a7c55f498757a53bbb4b39673bae22f39442b10b64b18d2dd05f65ad2dede53156eca22314a13a7854dadd0ea96b60e1c1a1321c6b34afa371bbf91b4f298bff5df253ec40b25d56cb06d477f7a43cc12772e53c2eba9829364b12e1e4263ee96604efe2d91b4eb9c2120d3964eca900427370bf8bff5b0edf60864a9e37250c9f6a08df5b2e7dfe49fa5f8156cb41c67a9958a38d187aad6f574ec1325ede73de15e916ef33b1abf1bcb925a4382f2cf39868eeaf41c871ba76df6a0dec24aba1eacac7f4d05bc6df6e62e65c226d99ea4eb83470e305e28c7e8a541df6edcfb139fe1ce4f04a2dc367a862fba8d32cd0d81e8f17af78bd825ea9b828701b493648fe401409615fd885b3f838069045850b81c21cc0a35bc30830f6c3dece03beeb063b9a4ba52389ae0f5384e7685b42a92f8be1b721d6d1444fece077bf92c1ea867de27f4104704d673bc49b59febe9a5e09808ee1c4d3d56f4963eb735e9106021a43a71a1c87b197dd9018bbb580b002a83d38f2987ee2085c26dccba46870e11c1355a006abf8594647fcd4749df307ae25c5aa823d6f29e0e0d19dad150cf8df233cba2d12049b78110299ab340eeddabbb5a688338f5e60bbc3bfd0e0e15cd35ae8b10963562ac6100eab748965b0b7764a776abf5bf681d8b130e01f58f3ff5f1027c075dd95c434653c962b3264259924735039e852d07ae9d0729ea1f6f9eb6e7338b309dc052cd24cf376e14b57974062295337b80e5da465593167e8a4e9be821347ef6d1bbbbbd2b02fe770df32c929be0915be0896b0e32f0a1deababfbea3a4e0e1ca86750759ae17295f7bf13452e70318ca2255a88b4c8154ce5e4978ade83411cc30e53755f52aa443bf1997c6f5c968cd772ef87379a9ce5f544c0ceb457431c49f180efe3c403ca07a4924378bc59b56b1eace70a97bf815356d5493c77c52d9b4c79f3577a95a64e4b960c20a29b2df72521f4dd616fe32fcb8bfc319718fa3e4c1bab445fb8508b7ba23ecfbdafc6f32bc1ce75dea9ea355fd12ec24ceab096dfe60108433859c722d3857a5ae2b34d9011c3530c7486588449fd72cb85a7f177c277d2ed982e0a989e190a04fe6a717aea07fd3dc701fdda6fc233b5862e5d8a5124acbfafcfcf9d99c5548ce64ef7455c05a1e2874b9320bc3ec3ebb1b412f365924373e79e9dcbf46b0e8b6f5c55a5ef296ed56d26d7cdf1077e72838303195885d9f2ea05b99240f0b1a769424e16ded1c4b247a11ab4c5e9ba3b3ccb052d1db917d2c0ad43f991e860f81289569cd081a918d530e47c11e373177d1a5480b62cc385451fea10df722efa33da34a6a1986ac53f60225c8e9debd191eaff3924a8f02e1875f155de3c409f6ce0178eb30b1896dae1d4d528353758fbb7d0c342bb6d880420185884579490e2e6a215b7e45ec56291830d4c83184d3b449fe83b26da39e8f9675f3e832fdab657a4149be30953c79c7eb5a9f4783e26e258092457814be5bd6044e1bc451494c07956c7e64bdecf2235cac435d200dd1f0d49f8f5c56c5b5b78c7aef645f25bf7653ea4438869d080986c79b5bba7112dc67d4ec6e7405691e596b12f66f7bd80c0a170b5e159a0849366cb05f8c630d51cf243e3fb5b7720d8e0c16bb746278a4218e68d932485a9ecffb6f9a3a397182ce5fbdca0e29ca4786d77528f4bf18f6345be4684cb6042bb39e7d6a4a822207e3041f1c9aca5234b1b9e9e9b62bff25b993f2fb6c6eba7bdce10e415f8d19331e20230589f6e9c10ad392d5ed87680a238cd2b5d4121cd848ffbf52a1f5603c161c377e91008baf6d137815c9b88ae30f526fe2802c3b016e4c3432da2890f1a496d48fc86df182ef9d4e9922a6150bed4ca201e7872ad59190f621923d51d02733f4d31dafa5b0892c19e533b366d870010fdc3b1770d0f19c23e0586ade147c41d4bf5e43ad1af5ccaf87401a0b3093844fad0e73308ebdc6ff3d12e9c2acf9d3d709f912593648c217fc53e1e4e638749b65637c509e686050fabb48a447f0cf68dd72fc6071b5ac507c92b59888434332f2e682088ffa3490a5a4e24af6c843f221e198597aa93ed6f277204935bcd2be522ab83e4d1b31ddb87cbaee8d31275bfc2504afe8008e263cd53f16ecac3184a3a75b3fc7d517175189c54223c5ec850e030c6d09623e08115fadd5b17fa7d14ba4d1f75f69d6558afea53e600b88c0a72e4bf799f88181c98de90d11d865693d3e6a23fa5382aa22e8ca94de130dc21107c784aa8aa3bcf7a001c029f1741269c7da3984ed74041577b29aca24dba251b3134087f99ab9ef2e776ec10837296e24604eb05eb292676ce98ba905372d23f53d57d42712c9f3a6c671f2d8b7f4d169342d980f9ff22a8af52bffc72997818b5489df276c7e05be33c9ff656728ad99586bc1a0b4d2c38c546584a76c8bc47976e6be5f731f2776bb7594e693579726be048d7290c7f7ae7302029f27c5e4a9397c2276a13ee778a8e50b920b7d078e997be5cc0616ec20c234238f9ce3dd045e44e41e16d8c484dca48be3016cfdc7dcc9ee66434143e1b6b8c1f91b89c6b0f22847b3310078ca6ab7eb735c121503fb1ee31a415a9edc8136224a03e929e162206ff58656d1cc281258901d5d71b37f6991220c569584e85d14eb1df4fbcf37f6d53dbbc590210d1c3851cf9d3925848b43364bbc7302f99bf8c85fc065247bc7097aa6a2b7f169702d7d1735d607f51539a8e91102cf78c1aa206551c9378089f324ddd02150adb665bcdea2426e5e110aeeb1a4ae51b0126f5c16a7676d76e369e0044ea3f16c4bf0219e4c0c5d1431df89ae5926d16bd4761facb1d3a767322351f3d50b06e72ff37545ff853ed2081d9d266b4babc26b802fe08b990cf23089d8386c887a0d8d23eddb71fd78ffbbcbe002a9992ae46e1ba4b991c87577240b5462218e0b9d886a9aedb7b0e47c622897bb154f749163c7ca28f2115a3223e63dd1267538425085a731816816d0f574b772264a1e1b640c60a713f063ae78dc8e39e7c68aad11cf0948af1dba681b4d3dc2277b1cc6c7eaaac9049f5df4f14b19029b28b07569fd6d12e6860a799626feb6bc631a32c1e2719882f281baa748793a00f54af71a6162511b576168ac895b5721bf5a93acffb0eba6a793089e9ac4fbadf1503c4107083e06e9a2da2205eeb7816fe7b9166e4dfc4811f4438faa7c3ebf92fad52fcfb3d8df6c2b07cc6cf248dbe084f709efe89a7b186b7031ade8e79564b186f40e3b5f513c2cc818ba12b553f34725eaa74464e7401638cc212a54ad3086cf5e17d1473115daf689e7b13cacb7b45a6c3f31a8b820b986558fdf6b44bb79ed1738c9592c2ccc58cdc7b405e3afac766a0fdfefea261fd2b9188e70a646504b24909098fa5828b0c06a6dde3462f2279c7af81057991c0fa79a5d3ce2fff059fe3874a7b8a4af7d1cc8116e79da9894117e0c087eea50beffebc5d522847d1086a657af1080add8b11d8aa86a59958169405e520f93782077079aa24e52babae5c44c155daf06bdfb96405276cc14d9d5843f11d564338c39e1a86182a6fbffdb0e032d611204fce63c56e3b3168d9b9c781dc85c3bc56fa9e9fc571de1375c4a0ae08e658ab23acb32f12ae3e48bb04972b80155269f24bae3302172ec86888dbdb93f0921fa4a41d6ef32e7074f1598225549736234983e8e7603e4e76bb673a58eace3e133d1c96bb8b7df71f7130f06eb1eb75029295dc2f3c75d3cd9032422bc4b97b6beed4fbc71a6ee53d72a158849457e91523057e58cd83b2ad397704aabf954477b83f2714ab36761fbfdb7d9ed4ef11f77d6cbdd457c7f2091fb040951b6688d581f99bc04b26d63d95a1754807199b59336e5938091ab9d0d754a9a53e56f734ceb4f9d089676801a97a3eeafe60dc0c3468cbba11a4f3432e8fc558f55f5d5e1eb989fe7d1e3a448c10b70902a1f34efbfed7d288dbabc5491be6b8bbfb540c699cb3073b541b4315b5608af4db7eaa33b3404bad855e9b15a300381e67d273bfad0b69b21e3db45b0d5470a273e19ded863709f0bab4936e59bb03e8bd7ff173df5c2f8a517b82444a2811a82ddcc7f33276220d4ada7adc148e31d98eb81c5fefed5d5b0201beb80366c0a8321dbe4de6db9a3fcc77de422df40a682769a72a35f22a49356bcaaad7a760c4e636b7283371a77eee292f8e8688b8100e3ca49c38cf3ba012286ef8fe55b2e008080595b7236ded3babc4d5fe4d1a20ff6f70837ebd9e512198c3e35105ceb3e05743c34af40acdfd07f7c852c1b94e44427d4518078782461057612041703670b78a3b90138d6dadfc94d7ffa2364e41c28c0467100b525c093475562c2eea13bc6ba10f8668a64c3d938307df7b2eb81dbafb9be21b2f70653e0adf56cee762d303a20fdeceb732689522ff1ce6f53dd358d6dbf2d4324f763b263d4f190cee598bb22bcc7332f1cf20e6393d78765a561f145ec931755adabec433bca47b685a14842807b9cba7ab9f0173a03cf4b486a7a7eea81e1cdcb55f94ece1abe3d19f3cebf6ade3c6d1f6a3d6c659abcfd3ffefb9461c915911ae3a7797197b670baf9a42f65c11075e7e4de88492e725fad2481168cdb26c9316ba94f8c64c0aab883d71c98f0c0ff4df4fe3294ac4ba8f10e6a79dc7c06b95b717d2ccd07db9c5e4441ad3d702f957678b779f37f1b579324145b3c1c6c0663365e40a8461486ff8573652713a51f00b6bdc7a17e0b96dcb8c8d1b9f7fbb0e7c422d3fe9cc173e78b054e14137e578f1f25be73dcdfa07ba18aec723fbca38ce378c7d7a62cc9fae8a983a7481f40d6897b6e012416f2f69f5fbfb26112d89f6556f3ed1889d7dc4845231802bd1ba81dd777e14569e6cd8a7094fd30260c527485250e5d177b4c0499b8e2e78d18601694b4817218a3b56c9c17a9c0f9db2e73b971e743656c00f9b5a267bd97609748bf522683d9e3d46bae02a968c01ee4866cc449c6e2ee526c20f9785c5b2fdf6d8c01439aca0fb4a88f84c50b2ab078f0d9a4358694cb3fd56000e7240d5de938ee4dd0a30c75eacc2d4fea356028b20df7a883bf02b4b56333d508b8ea4b68f288a5bdf2041f5c4a771c2741ba9f37d25d4bee51040b41a935d906dd778317659b4374c023612efed0096173257c58db6224f82fc1674741dc3b2e260d2274c63aaa0ce5e6ad35a661a0286d275a8b397bea3f6bc660077efd4a8d2a054221917a591b37145f9b32601dd27915bf53c4a6a2b3f8516b0e7997377dbb4f72d147128f50dae270893336d8cb54e8ad4ae40a39e7e2f6163b404fc7f9e4e7aed52151bd43702943bd00b73ffca7e4682817f5ef8871a580d23e1823f187bafaefcd9be8402e1642f3e10ac906dc56a8f90ec3aee0196825565da4b9eef34de2535c6cadcea4f3540aa649ad3a546de10ef87bc1291c6772c3ab13ba4783bcca6c365c9818657dd01ce52311065c1ed52c86e873b128911713c385f5f0a39a2fba7b78cc8b8eb818fdcb781dcae608dbd625e5dc65b990a11209dc6d7e0d0a6bde83fec3773a39d466969197df84cc4c45fb27cb168162a13349dacdc1f478e39b7d624f13bba12add6d4cdfcdaa4e694d7576124fd47ba085edb1253d4a6df85d53e1ef837dde52712d4f7f52c2e9978eec8d80e0a9fa10f2999434c71c7c03083b25e184ca26e9658055ccd6229c0537310b1ae3e590dc204ea667422f967f4a2eb512ae3999639d9b7f924e3c048ee77da85c355f5a7c558467b5ebefa23ba1d63dc256bda13e457c78ade811fd022a91b6cbaf132069cabb32741695023ca6e5a449c538c10c0ba459b77f77b3dd1c9575a944400f865972ddbbaae5b11c43b2105e78edf7dbde41a337fc8bf072e5168752c2a7d00a58cf5dfe4f951c4b83d78d7175d14bc94d3d93f0f0fe35f6e1b947a8df9951da1d9a53519635f8a7f4fa15f2ac0656a16f8d7ed1fee63974206828e6f3b634fe084007d5baf4ad203c91d6fbdd2c2debd353ef5cc6b54b15cf65469e3580848ab41d06c78a9bdf836392fd0c97a75a7e3ae2f2b5e65d14451e77df93031ce4294e2f75f8bfa790f06ecb678f5f43ce5e75e5f6ec6120fbdeb814aa02494bd3f9f70eff5d9ec6dac61ed385b6d5c7edee4ae78299fbb29f9a6da2f35eff32bf5aecf41ce13ff9fe790d4439b020563f88ad809789ede5349fe1eee7219b20e9888c96a615627d489776765978da73bb16b6fb3afb458fd6b5e259b5bb7a14e57d4d61c511335f7d6a5ffb70c2d437e0f68fb96dcb238d9e664843d5ea77f09255f1827c0502b7ce8fa094e67abcfab27109d35b1c5625c75123246c0bfa642f8dba3cb93eb8b41cff98528c11cdeeae41add24ada4ca55830eb06cc492d6c96f2f73bd95334a7670b1d96565f5a3934946971d781b818e96f78a2ee8e2ba4e588fc013be1108a8c44f1f44879d7bcd6910588c8aceea7b3407192f77da51c5186cf770d73d60cb630d2947660b4665cf50373b69593b21b710b8e9263ca886c2c861cd1419609e0fe0727660a8b5f8b393030787f377ab3aa9f1fdf61dd8fbf5efd40bc1551a4407d43fe54795332c0d78ca767f3d0e360395c33c344cbf988ed89c06fd10b2ef153756ffb36c2016b33fc379ede03f141b9daeeff90ac7d411a9d7d78f31cf6cbdebef0068fea70b810c85fa8ed5543b2bf5d91946186c4a31965b813d1ab7687512257cd6ce8c624b32909435876d197a56216309b412952100a891fcb6d5cdb306ffa6c567ed443b2b9a367d153f8af70f183107ec97ab77edfd6d164aa65199a10a784f9197ede7e8149853d03de99eb1578f6d10ca27070e94059b1c8355a8f9ba5e0bab11ae2c59f8eb6832d219e82423e7f93f09d9c1874404f3dafbfaf535c4890db6b9ea6574006b373b0900d2919fc71e36d252a1ac7422672b884cef5bf129d0eca4f15bd56df800a35d158309ff525ae0ffa863c8679f8f8bc56e21d4015b058ba7faa991eb7044c25d25b07825766acd9610c4962e97120f17ae1ca2a28c4c555886679b109e74b9a352efd3a336fdcb2bd61134e937c2b25bf38e84f4b365bf5690851536099ec77e787558907b7cfa57f79de5090a13f486ed83a82f049d6cdd095205738df8489f35d641e4eb7786073007b8748dc90d573cae044be02b46cb4ba3cfb15ca207c7167d5362610950b6fba699e10caeaf20fc270b687d94282b363b68339ea2c8dd5c615e55df5b121824eae90bd13391eec8f02f8785d67fd67346083977b0cfeebc64a5955cb4b47a982e4b57337e821396787e766a3fb084e591fd526200343d88bc6ae96e3a680c63c1c48c3dd83eab7627f1c974515d7108bcc6785ef2a24940b48bcdd8ea8cac363517985f1f11ecc393a74d78dc40aa393bb205cacf58aea9383a120ebc9263dac6495e5c172a416c89fdec97be7827cee756a07a974354651b7dd1d5fd6a975d9da4cc699cfb560e82a3534407f20f867ac1b45bdcc81c9d6fea5c186a0a210a02194f7b93ba60444e1176a482270d11aa89b4a33d1ab7980987fa3005f8b871a621d5539f5dfefc8e6846e8539eb9f9ce8979c74e01ae7fa1fe275e8e30fa1268edfc65bb02b9219b638b27049520af1b19b6fda839cb3a478351b3bfff95215e96866470d2bebd0837aa262f66e21ad91c8b2c6309290e42cfbd2d56503f7b0c74b2ecc7e133d4d6c6807f0bfd95af2a4c1f9692f6f24ba14c1b268bb9642416ad2a11d3dba00caf0e0b523c088837430caadc1350d1ece755a367de48b263a6374483dca6bde179aba0cdd86548388fa89ceec95a8047614d9314ee8522ce52c8d953a90de790bcd89cc69c9da293967ead34f760e8b2c994f1a9fe9ea6b147620a0ab157b05d718f91fc50b45bd816c6527328c62bf0054e3d8114ce7bc538111d24e9e56549df64a76a08715099a58fc715beb588f26cb48678965d8228018bf136c7641e19278a1ab5cbd17dbf377464199c6131386155d66c554d2413af66a336aed0dd3cb195cb43608fc003aa28cab5773e5d83ae1501a271c310e9763fda426730701a4ac59feda41f183fa8105a6b7bce6d63c890691cf7ff62ac7e26cd4f7df0c0c1456943f95b8d8bd95532c92243b6322358ef668e72b8dff846db8311ae1b08af571817db85a187287d8c7f392613c140e3a3d3df7a582696353490922585318c3ee99de79d7919567129ec240b2fdaf2889275a73deecf6634cff4de7b4155c7f8771e228f37c9279930f14849b9dfdcdbac7b1d7f627a8ecbbe2749f0772bbde7af28401e91a440d87d74fd1a71ef4c5a05087627dee6c0b12e28263fa2de534041af1fcc6d9deb251ba0fc997ba3fc49bdb75bbefbb768247b302fef5e0080db99b31180d2e1b1df15acb27d8f2aee6c84aee8f9e50cbaec01978c9a846c192464a98f2116b1e069d9d42d3c2160b4992dffa8e04b0c54574e096054829c27fdc13ec429e55e28566a621964bc36686b007b8ef4e593f626b0039f28dd23ad15cabb8bf1fb3594c372181fcb6183d6d6c92c562495fdf0818fa0768179f23dc3b76937e6f56176b68afae28b23605bd643f3673fe10ce8c8eed20aa113a8289931b6b81b43cfccdff77a1b09b571cc1974c6640b357d3e9433a3cfa1ab92b9f4dc2629eab15418c585542dde8ae84b2eec6e9295f3cfb9a4558199eb0fac3894eb6d06d0677756f696e3b76dad504a553fec4b6b8ccd0d3b4caa1eb0f4be8831685138a9e01a3ee6be4b7de70d090a4c8a3a63c04c257d6bcf7687b343f1f964a6e5596f7829d972ff418156d7618c9f5dad9f7af83aca0bf300e5ce3ffbb731fa671ea7a343268b1c6687970db7f918aa26e2f3e4fb751415fc50233f47e60b7f2df3bb2c8c139f99346788d9d9799b0c388956cca1b13aa472f38e4a1135a14292ca82de3ab80531cb1951b4f88e0e3230a382ea1571c0d06210c7c8c6dfa10b02e0b8bf7f3c457e76e5070d72670d48161e45ec980429ad400a8896da17b34ad0a43a0c94411113cfde6f761df88247d8c773219906d40c99c34606c8df7bbd09efb0d8f98fa8f59e261eb692eb3f7de0fd88c13f8f1557b8b5541eeaaf65f54f3a1a63f98de83623f1da2f137c0292eb4a3446a14ecf34760896f474a18e5d784ecd7cf1e3332200113d8d85fa2ceb190e5b8c766e8d20fdd4504f9c482aed976243cf3606ca6e39060a0403c62a5a817cb63f7b8e727800d45c8c35a7be35fa57e34157ca166b23ded301407aaf08368469fbcec94570e9f71dd9915edb35e90bbcd01a405064de7ca3149752df827dc53a0432c137a75cc0f57807e41057e14c8e6c99878da8d3e63d213f36d53b6fa43cc875be220267c9ae2a34998c165e9a0d1ab513ef1c4d2a2cf141a0d4797c051df61cd6e834f64722b819149efa9efd45ce25ff7d7808cd9a1e233586d059ac1d8bde49528836b9a339e80b5f8ff7f22aa4c232bab782d812f03bb0600b2c9a9abe9dcb2123f9ac2fcec3bdaef4b52ad4be336faba5cc5336bd24f738955d5007d74a0ffc8bfcf9690dc0678276a738c643b3acc36da0d1e3c80d1b26bc5f18a60b586b962c6e79859ea1e23bb62016856b2d8157b4bb2edff81f6989d48094593f55d534f254ba58cbd92a4f261bf7faa63eb3107cccc32a1ceed5c2ed20e9298694a11a4c2b644423836c04559880f2edef92e7882ea3115c0c397236bb5848bc0da2d34f6df8fcbe350cd03657f7a7e8f994f12eb847f1a408a062902ac9faeadc0ea8465dd50b79912236f628dde03ca4f96257e3f1451b5789955fa21d22ba96fd0edd0ff41e6f82fc5acebb6f236d05eb6f6f1b1819a99d8636b50778c4925ccdf97d597d35d01aaf0e135692aec3bf57bc899c6834acc3e3e756c163a52d08f84436fed857e05fb0fc91733103b7d918c75cbfd2f9765b81c45501a043371c929eae9a74a3fb7942370b244d6cb9fa7cebfc6be41465b317210e1503aec7d55a55a85cb918ad2e6d4414ab27c200d30eadb8e0bcf1f345ce0c869e997957397fcde8c40aa4780cc32985a3d7727bf550fcc0c129196e4d0a0274e12935eb0200b0f21cadc58a7cb09571f369acf73a6ee97b2ab7b5f5949c364456371b3d63ea0f874633022eb952e1de32906e0e67d3d7b3a3aa4eea02340b1efd01ebb25b0d4f5d09b15c9b9966c7472bf00950c3073afca0833db8b4a784eb26321d5c0ec757528af9a7205836317999e439925e95c399c649eb835e258c6f2ea9882b6422d060e4f4b3643061d3e7883b095c0ec7795f8b0ac50a3dd819894def8f1726bab198176bf56cdd11234b610bd7e2e995a3fed49082c16d1ffad7f0dfc7bc13d44e5940f9b525591108d581a4a5b4023c9250a84c2aab5541a86ac428021cfe5079da2b07d25322264ef528fe757624576b5b7ed0bd6c5700bce6c1739e6e39620099599631e4375d84b56ee09b19671ed2f57563edfce61336729c4c36dba8387e5f2c497c21fdcdccf5b0117e58511d2e3317a6b920f081976be97ff2c0d6923fe1943f98e9cfd0101818aa9fefc9c086f630fd88835666238838f45da77876f18827dc33e801630a0a92c84a2f0d0b1d944d2bf09812465b38ef6c394e8f02d0b8fab2096e1a14c4adbc820ed7b4e04fa8bf92f4df8d8b782c24b3d85214073e1a742ceb6e69a4cd2bd5cd23f1676ec8ddb60f6fe31311c989cb560e734de74f02b88d84329ff235a40c62e79ff2d8cd6064f8609460f2e0dcb2c1a9ff952905647ade2d15383e5b11bebc744ecd6910f3c8c109c3e4343b3545c42b3d6752fd31412f680686c888355f9ee699f362f59f88ec432e2f9093685576ec65d017883111732333224773a33efb96474617a57a85917f2607474ad65fd18906036a77fe01b330a1b2014d8bb470fe83e876b9f22cd67c58134c2506d170586b539f8a48ecd552eaaf9f3cd1857db6774ed26a8ae0a4d8a6d8a95a3550fafc6fbca7dc796385f7b3c522f4ea11551ff6007d75857b3a5ac4cf6c867dde1e8252feb778673529389b2bf3785f6d6499befcdd8003ee7b54daf9267cf9c66655e89bcb1d2b05f72eda045416b136f93c83428cce564f42064c5c83f3e3c5a2f8dfae0b110a045f27cf7be521d47c4bfab659d64b62983ceb2d4708c3d236a8bd08a3e61e3d379675d59017d2ab7c6c3e386ece65d5bcbe57eccab7af83b0d0775d3a8bd668be3bcee4c958d4d28c7696ac0b291c10f9fef7bc75a0b7ec7c1c1c933fb0b5c49e241cf821f0764bc5c81f17fc88c2bdb9e2ee3cbd0a151eb23f619fcece80eaf2f0abb274dbed6a9804a534cb77a3c273b409411c063ccd8313dc5fe1ad3d09f99578dec2d6e2990726905768243e711f6744f404f42c43eb51d198f994dada115c746dfed1540675053abe7555a57591f29312980240be496e1a14b43b4d3019498cfd14af01379a87fcc1798dc27e21b1d120d4d5aa08addc670e50636429cae47cbce47d4bdee9c0c8fb8d26ae2e969e972cfd472bdc129e9ca415d39ee41a1e5842b17625578f605ca49e1aa4b8db0a844e57bb9c4ae0add880db990faa208bc9c1441e92496147aa241f2b6376735a6fdc89af5372ae3bd4dfb35e382a8fba3016bd4a0bd9542e57c2913b3478397ed5b8b031fa8f0f05b71ca43f79a37ecf3b8d16292c8758f5e94eed8dcc3b3bafc3eec7750e4986d70b5203da69a036b64856f2eb37868b1a2a5f489d419cfbe6e8d782a0ff219184da6e74eace9d1292c42b625c2bd0e90d639fec49553ead3409e42c8a7dd4884a1134df371aa134b58c94e69f2a658dbd2e9791b4d56f82b25f9682db7eb4f2adc54c9c58816d60a065a08ab4f540ec57152b77597633ce0aba9201c34fdd64680e2038c4616c7eba0fc8b588b3fc49f554753a2f73588d7749bfc0c7d7db50993ca2856956a2c53184672a488989e6caf5b460ea118182e7be86f59e5f7cf6eabdb2792f6f181d9fd391c9990fb735af2968bbc4855cbe3c2124724e92413f7f0056099a9e909516a3b21818264a09e278a9f87ff7f5d2580c54f8adc4b06db666a14c30f8ae3fd55cbe6f90f1297aef12707a6b30cd42d354c386fabea17dd963441de16796568e4667013424e56989056cd7cfed16fb94958f92ef79a737303089b5bf2bddaa7beaecc8d1749d83855564df14e7bd303db849e5f3b932df16f46c332f7f78cdc2d29bc57af1598ed1aac47c1de53bd09fe5bc92b437eab1e5a5350f0c757b779a10f08a6ab05c405faaae35459bb81f584bc527ddec61b83b5b09bbe2cde40f95e5fb021dc98d3a8347d9966e03aced45a6a231c9f1d89708253b10cd62e2ac6d4338a0e42e69cdd5d688dd1c61e799a33e4c35e5f127706f57c44b679bea02193146da9f6990b596827641749c0fc6059763bcef8620c1c2ad2410dc8fee1744f887c768cf2c584e96b8bdbaeb759d568e77f8fef9b4d26f131a38b990ee7ec2488bd81dcc48a03c19124283a04b8d89fafb82977987226cae9f3328e5d0249d2985bad1c045b2febba4649c63a65e0ea2bbc65710da2a626de412ca9f9eb97d51d735ef7bbae8a4ce1dd9dcdfa2193e7655e817094668fe56778d9c37859468feb2f5708d69330b961fa44e8c34911eaba8fb2248ba1f159c160c0aaab964fe3d04528ae54e257e4cdf2985f1ae2b75973f8f48cdf7b036e7b08bc913b1d72605fe34796a4999930ac4f1a00d8f728ac73337f54715555892a136b9bf3768d61688978a3a13f76dd3f2b9c41c7628c8303972e67801bae923a3db98b8002384181dec40e7b7178d8d1132d359cfbb89efb2a79fdeba88a58df796adc64d66a1e399dbd214a8a077cbb70827c903c9e2d1bf9bf86fc3fb5fbcd97f40efc9f2057ea4d6db0a84579e79baacfb4e9780f2d8d86739c50b89d0fd54b4dc36c9503bdef7ddc0c55651b3c29b795bc5e20d84db97fbf4e3c5a1d241d6e87be3ac86f8fca9998027d38ee64af76308b6cabd53dc6bab5112d55f8f2ce93ad013d4db885fabe18617e8ec2507fc4bfbbcaac0d0eaba60def8a9cc12ceb91a567e74e55a25fe766369e4db8d2131ef6427aa19ad861fe4e0ff2de3ee38ac2eca301ca5be2d07acef0e9cc11c997db58ec711e26524217d4ffe2523e7ddcf25b534e63407efc7681baca9d48bb6853ec84757b77af1e862de7bd610b151d21b790c81696a4d1246ce7cbeb95f50caec943717dccae1582299683826b8b9d8809a0e10c5c36d9578db7d8bbad3888ad55e2c8f18ce853410eb4a9e682ef8e920c2d9df351b8b49a3900c7bb13ac119a7c0751a3aa1bb23c3aecb97cb1215f495735589289e18eb9fa136f8f7cb50fcbc9a64af6687e8b3489f7156a4e4100648e0e82be6d15d3406c5ba1f7b8a6b0ae6457db77039d6c606e4666f7d0e08e263e1667a2db28c4a928033c3bfbaddb8cf7b11cd269b59c8d85d593ea7c99351053e300e51001434b432e11da552154a6db3b7566e35184fb22716ee78c3ca10351c2f20aa901b21bb3ff6948f1e25ebc914c07cc7d657d42f54bf47af66bb6269a2b045e6e0ff12a8bc55fa2688458afa667b0f8119c5f1d8b545bba82c035a2f5100c865771e4ad8f04649c9ef4a0394caedfae79295d1db8b63f5c2214c16d6147bcc91ac94becc66befd534caa7550fbfa3b5732930d37dc766d9a25f0a50fe38079d58a6b6e19409c8365652f1cfebdf16afc089453e6ed6bb904b64b780ad35dd02db870c03e851c82fd16c96d00b2425ff9308c57d66e414e4882d4d07bc0eac699dc545a8e70f4b7000d204a7196ebdd8b85313ed3e9165d83be5bd92e150ac8ce9f8edcf56bfeab675a75e7bf1324ce7121e486271ac41554a5202832ad4dab195b820ef66fe8c471c8372b3fb8649b59ece1bc5d65e90c7c0adcf83314e91f7f99b9e29d498497bb6d3766e2c929702fb49cb133c98e95c095c6fba356a84fe5c4b9d55fcd51e28a0071e387699b7ed9bee89480dee27fff707bd5765bf85d2f777a20441ced649a60e0e68b34bc06e069189f329c0ef75e4ff8f6fcf4dfdbb7b0d44243af518ec7f250d7c2f6be0885d0da91fe979deb0d33c0e00522e5b22aa7d68c24390c610832c3af1675f96db4322eaf7dd33b9ef2af9952ba74b4e64aee5a79b8099b809a7e35f260f1f036b5fa1d0a3fc9cbdbc85215343764831db9355e5c7a724b86c962d16d3b3508b9bc12aa91f8551bb3afb449d99729e7035b92f1d55c05e19497e5199823d892b2bf031a4aa3eef85ad025402a4118c384442c1907041fff31b4d3e63631eab22f84f58b17dc08c662fb7f2de6761cc106030452838bc9b8cfad363141e7c7c063d6b4a54e4461af233cb9105973a75ea685b0cb495962e1a468bb4623fb68885bf4a898801dfa9a1b085604756c87e8373ddc27c28325f535bd637dd4707c62169cbc12d13b5a5dcd48457d82a9980f826af1b4797cec1e2a0a2670716dbfb7ec6be400eb093db71ba66356eeb208d69576067c16b506c37610b9ba9e8fe6d9bc64e443d162de820f8350eef5867a2ef192cae8b0ae10cf2f56efe1bce8643f802c443e2b6119b33da17812f6b64daef86754f932b5f02b155c5bde6e4bef96d1ab3109e64ac335e32876e097473ed4d2c4e1d657c11273f7ebd63498c0922cb82edd88e3edc8dc1cdfc77c36e45e497b422eca593b886b5a942606f6ce592383e6ec752b4c31f17b91ec29c2a29fc81013075f1e6072460bb55a8596cc2ac62b9aefc4fd324cf136e845b4e06eeb843697ccb37a0318da12a39373c30fb5356ea06481f2ba8e1029a3e4cf48615443e650355fc118f888a54e0ce0840bb96d6780e142e58da53dae9174ec8e05784f9ca3d2cea45101fbfeb7ee5633f33aaac11c74c41dbc3581dd8d96433a31660867d242943c953ee758e72c1dcaf2a0576497345810f1598986eb131cad591aaec8c5bb48b743914d4f2207d60e6aacaf40840212540656c41b9787da4c46ed0b5174f7bfaa18185211e0f7e19cbd0ea0b1d448d372651851536eca7bbcbcba831e3151732c59660ac14eeefe478e2306e12814917e5e3190ff0c1f68d555a987283bf54c8316a9a21df1f2ebafdea3fbca1b878ec8778bf01c85bcc63f0db955f2441e72a6b5f9eb93e2cce174caf3d062ef0d2a6fed9fc24d6fe0a03853e46ebd334b7254e1927f47d255f251bf55b725b9152ad8d5a8ba8e66bce6133c0807c725f9171f903c6ef54f2c3c695cf2745f5bf57b6427fb4c5203c9fdb508fc1e17fe403de436245677979a71e845a0011c3640029282dfd432cfefe4b1a301363b43c47116d5ba60241834173cb90c68fa7bd362e82b0a296a7e0250815bc553c3e991fb179ab2f8a5b6c3edcdd78ae8b4139222bc80364a7b53406ac5a6317cda0c578a43fffd2a6ea0c00ab3aee42fc664361570bd370ec397236d91b315b48815c6887e174fce4cb29c81550f07103a507537e0c9663fd75903887944b5e601e30819d3d0c783a128feb1f374a99fd7b3d784ca7c09c2d51b1bf23328000f84719977c8f3a122cc057d5dbb793411a25c3c245cacde3294232b996702729e2d13e41b07bf0c9e9607493e45a538f8e22a6c3be1656d25b92e733df8bb993c7615aeb611717aad45c440d37d946d06245d468d1b8f93a021fd98cb6c41e840cacd433c5c34296843047e94b2805c53d48ac3f984ec4163c4aa39169c27f46749ea31f2271f5b9d68e6aebc4efa05333baf80af205328602030fb08d0217b972523d99c69473bdb798d390939fde19214b6feac8bb702eecc64597118d9143107a34013593d88f64b880add10ccdc40b58b980ece516213cecf3dee4689776bd7081e60ea6ccb6b7d96b08699ee522bd18b1f2bd24a4ba6bea3c2032b9bc09fe8b625c906d2a50115e33158d9e8940492131669559bfd94c600240f06d7145385dcd1eb88e0049aac2c6407b2aec7b10e78c8d9fb267d568861150ba4a6e7da4188d9fdaf36e226d5069a0fac223d2e2f211101de8fb9d217f25eb68fd576c2daf8964792c9331357c4cab8372287b002a8546c56c36aa546a97baae48c814d03b1aa8636e9626aa4be20fd5ce8d0ab5b1aeb6e8de03d88e92b04092c6b63be2e658b95295f7f9e823150b93a507705238c6d54d8dc7b01324f39cf563f5769f7aebcd0fd7bc5984339cc455b5f94e93b71354fa83a5a109ba92aef739b6aba84f5a37d88e51cb1243f891adde668363ade8e9feab70f25ae0cd65c1a06b2e096d4b9312ff3e00e5c161df6d067cd4c8bf936765567665e0d11ef4e1ddd693dee2276ea8969fe35231577f41494121bd42d0701d2507d83e715acf82e32a019c83fae051b4360a9efb39b4dc6a5afa6dcd060482ce529a0bfcc2168f8134cbbc289982e6df9d235f4cdb11a0fec5900cbdd67998215e97b5ba48e361d316f4628c0bb6b7d163f43bbee069861b9964dc259b91330400514a9b2873c4e84bfeac76ef4759b4840dc36e2d473623d167bd78b6b2777224cf04891f9378eaa5762793be928a55f61d2c20db1c04f51b5611a7a3a80f8f82207b89562868d60bc3b3c7a02c7fc26bcefa9e42d125561f5c8638a48dca03d0578e12482d5b00e7ff454e9488da04960cb2e76e63dde104fa6fd13c584ea2456de0f82650c94a2d42ef3ca876dccaf584a6ab3941cec484d0b7b92988ffb30d5d12ff1b70ea60a849ff9be7bd81e5f75f89362d4eca46f0d45baa2cdf5d4c5a4158ae1d478cda4b74f03388e9529d192839d436d1ecc5b5c36ad573dae2a3bbcfccbac16837add749ba957d4fde43a901d58ead8ffe1e8aee1971d494d17595ec86efd2ae15198d4b4a1c25005116ead4f57b0d9033facc19ce8ce2d2d7a243af2c3b6656d397a35f75fceb3dbf8a77bbe942612f9c5e30d37fca51d1454a1fcd7da9ba356f545573621c6f8a666eaceffff414b8cfa5be21823de488e6c3b683b5a5034489937538b5c04dc388d9376e7f107a797e5be5d8373f26a005223cfe2c4d435ba01e7fae674f69d2267862f8e7f358100a6fbd2465610749585d90fdc0e6a3c8fc4045d8a1480c1302acded4eb20d5d5f161789a26c2828f16ec51cf35d9c48b93751729553b9fce7561f7f63257ac8a2dc34105cf39a1e80421bfae89932d97216544f9019f2e51b26e02d6163d42f2fa765bda832fc0fb28f9350a0c4f1900c5de250171ed5871fe252435a18b0d3cd5f937bb36db0d674b17e42c984eb8318ec7f27da8a2d2a1c3cf3308ff294353868a560915953175d9c8c1d5ae9f73da32d928a0a853a698db9fa60124e522039c16b56c7205af65318c6bad7a3574f9e5611fc95105e17cc0069d062bd4e3c552b0798f9a5608a78e3b6fd0865ada2d0af39fe5eff655990d3788370d3cb4cdb15b0ad3db3bd5f69501fe713da58e027694982b5dd68eeb61f76b2c320fdb2debb7d7ea0deb47873b7f2f5283d16b7f0bd81bf23e5fefb998e8e671f2bd7eb2a693f10504e2a70aa3c6dfcb4333ce5ca611ada2b5bc6ece88ef918dbc359d29395160443dc03a4d2b769bb4facf745793c6e32f927a5e0c22afe58a5dd83657509cc91f3bb1de31c6a2c850d3e7f868e92ce0560ed5dee3b310a51df2fddc609d5bc2ce56af354ac0a34468f9163bb7046ab23ffcf67129ffc7040f1baa6e9da895bb31089a785ffd42a050325f81c35f0ecc4d29e019d8a60d7c7b28d14f82ae287b4a52b8b82e08a2f69e3ba62dd667882dbc2b73a17298ba98c0e76d4e55105b3b6537aec4104bdd887d8d1a549697d43df5dba5e9f84b25a6354021bb08666bbc52a699adcb37a189af481801655d689592cbbe3265bc4923df8659ee44f7aa18b5acd1f0b43445214ccf5a182e017680f7abc68483c3259c6f9087f02a675d7e6a8d7cef7617cd5fd0716022806a92beedd61886fd49dcd6c3138c13f4c9501badffda16b9ceabdd9e9136281a30243b456efb7aa26d4cdde913c19f5ba8a2ab9c6f051bee83e72fab4fe87eacde9b71f7816d299612b452b888b4361fb967e3b830f18f9eb388758449d92c7154ad386a216a5e85e5d1f17c3c34c4d90e7f350b25cd4f654eb10b40a9c295e2e659e7058306162167da0b6a74e16f4fbef99ebc7dee70c1056d0d0458091ed512996cea03c39869ba8a2e52a2339d00a8e039c7aa9e12a4facf6a3110cb5c61eb11417aa7ecfd8d01788ade3a6f83b44e46ae38bfcc065c1de7c0879eb79fef93f4232575ecdc1a1221ac30e57b81cdcf8a254ee13dd3990b92a6ed129d006c1597ff984f7361cf93b6f4218bbd5c79a53525e74ecbbf39ec21906fe94db84404b40550658f496766638687de2bb189b05f0f4c6c21a82072fc627a13f17855fa8804e4e5a460ca5bafdc2f8088f8dbd887bdb248ea56432e5e375492b532d80f1fe57c9dda2a78f8ec5e1c2d1a7dafafacc331bd08659c5acd1f658ae78d4144ec006c12ef0e30cba5bf2c30cab60ab1f6879c8c4c0831471452a6844b60b0725aa53e0add77b13ac707178181bff0af9fe447cee46d616ca14c2b3760613d25c554cf981aa1b70803ca35f492af4f150f436b6e86d3686cd3fe56b7b56a1ca9e7202762ea5edad939f475bd850b7b3fc5ff4d0d055df5f4d6bacd8c99bd66dd27b962fd602e898df3a23fc07bcedc4eadf388c40d7171b379895984ebb3b8061e96caa1717ff41d7cc8b348a89e67624cbbfcf474ad5974e3c1fdc0946db619051c711b6e30d342937f81b5b4cd00e36c610ff1ca9bf125dc7509366e555906d2e202c090395b5843f4ad1b1f149c521a9bd70bb7a4a43531eea9ba8da098c85bb01e67a23751a8b4e55ee807acc56dab82e4b09d0ec30e4b7cf2a63fd39ce8dc744aab731fbb984704d4a3f01813d5233719b52039ec418845d7fe143a5e79ed624fceb501a241ca7cb9645115c5710f6f58ce36374dc83119e67dc15dc717b2cba8b497626ccd7b2d12327a30e196fc75d2858dab4c2ed6a0336a1600e5035ff6a04e13e3dced13056aaf1e2300104e3108dca637b9ec2d7f1deb479db4beb890d8be3db2092a3c148a94e435b056dbb9d7e4d0f139b37881a3f8dc18f8c1f162f872e582922ccd33a58667d18e83fb6021a350f088c01ae27ad8dc5eb74bcfeed2377b415a122b9984be7b1eac40d4d655b108ad91af661a7624e14f303f3efc61aefbb7a0fd6aafc8ecada7c5c0e34c3aa917fd2e4d9e111ec78da00fb0f5f1cf758c2d23447d4c5ce9138893d9ea6ae05edf7382037b89aaf7c5b8fc18a2b195bb28bac875f1973a18b47a1c6e5fe5fc49a07b247efaaface88dc4d5a396915bebaa71b4a41153c267b4e6c775af87d0ee0b5e9d86df67313f64800b56421f31f0b3c580f0c27796088e170e75e2bf3df402699a6b5d8e9e32066fec72db1ad2a09347c3995c6e5aa9b4951b47a95d59685f1b74eb543f82759cb3d70a99265a6820a1f2d3fca72db7633dedf7b0e84ba692f8300aae35d7b3802fbf7a018eb3280ecc946337a316237a6beca620fd5f06c77b085fffc3ed014c24a14d85d36b4ac791048750bd5aff56a4c92880b9ab55ac81d8d03b6d4946e2fc28d75cf7c6b06c4ba2e9f2ed9d6be131d2568b0312c6bc80afa5afbe8e88af160c5d6c5b8ee07d3b6fb4d9c40d4a113fdd27993f7422faeabb44a5c9b590c79279c8ce6c30b95256972623e3167149fdd19e7395f989c5f3fc346fcea8ab7f0e2bb295b337822649ef12312d7ec0d35dedb9cf02f937773d491dbe32aa07c9b918a602939764f8d073fda12fc9be9c38f2427c2cdb36b71ea1c44bff10df56774baeea0868cb631905c225ac82037ddfd2c7e57baf90cd291ed95be4d15f42aaa0132d39a28dbd5a69292854d231d3f6b3ba0af2e99c14adc3bb0e5d7deabc68b86e466e1f1fbee30ceeadaed431a82ec6b85caa25c271d2187de4dbc9ec133e8a306497a634ad5aa97cee705fa14cdd4d5c3b813859ad49ce66835d7a1a1e080a1b7886c6a6b5be4117aa7782ed2f1932001007d3bcc082c455bf07cfb60ca9486ffd59bc706c38bad9f056cb58c42b5ce4aa08763b0e85398af38432d2e6ac40552f0d7f031344170779fe9992c7d7e1a93ecc6d1f856db6f3fe8f37d58e612194fcd164eeb4652369362a9ae74189f3f64b6678844188555143f1f85f9c8777afead26e8cc8ba0e85c91f3b73f095d6ce1c3d1cb7a73a9e14665c83f0071213860dd4e79c3bc5e6e83f5b0d05c3334934637a8e3883627a6e9544667bf2bfd0e84384b903030f8e697824e1569e58cf65e83e3d3002898899e6a8dcb43ca6916f45ed4227128e7e4c5defe3dc5dd6bb1891f10382ebeffa7d852a4da20a5aa399ee1c9507adcf62a1f5c7a76966d140ab6772ceb59814b54143addad247043fb1bc1f26ae43c81d056b42a93f7a5acf040ac192cdca113218b0f59fd5c36d8ed6048de1f243597aa543da4c0ac770939bef6d92cf5b070bbc471f44dd155926a9eda4fe13f869930d5cdb58dbfe541821f8819abe41dd273da0083b123a66267b24c00fa75488f58d5795656567290e45458d3b40e58bc9e1599911e9a60dd3c2f0550f36a575c8e2afae7e4c35b7c673162e88f314be254337fa71fafccb4e9d1abd0c992d8c8f9df8c6764465a750ac3d76e303fa338b4b4702e52900bcdd8e75b8733588ea555b5ab07d7fb777129b1765f62e173628399d450d71862f4bd2f43a74285c8908858aa7e1a6ea7caff97f715964beab4df7664d1fbdaa90482e8d2fbc21728dc846a065e26c3a239c623f38f747b00208fb5cc16c79c7ebe8b489e0a1c27db7e04544dcfa6d3fe6dac206b276302678d3bfc039fcf952e41be4fe309db7829c792cd6a75abc22bd57bb6f16d7ef35b091787a3dc83270cb679c3e670db57cf9916492b8fc865022dabf987281a69eb60efd0152760e218168b4ff98b003b9f7b225fa4d1cf6f88fdcdd924a6ab95acbdf1cebc2469536c28eab11cc1611d174235a8c8f5149a9f18f037e14a48000dd297b7f266e43bcea98dfe2579e90852a6c164bc5453226a736dacc8e5cff8ab433d65a1077398eb2fb444063ddc6e0c0a4d55e1e10fd970fa8ec5247d6727a743dd1349ff9b450a6ae4cb139096afe8f3f2b9cda08cd75a5249a692566c5939e323e50e36bf2d71eb45cf82b14baa594cc15630329ad97238bea76d965f4b9b15f527a7eaac6c4482c2de85e394c5836fcddaf0cc2f89dd93507dccaf6de7e4cb6ccc68645518822e6722788bc2b24053b75b92892083ac7ffac8b6604a165ab99b4949946a09e57cb86eeecb11c7b48af163bc367581715fee14c84b7fcb50d34ee25061c323ecd39c8f2fd8775fdea8c283cc85eb380d8dda253463b61fb79a5187f8f1753a75dd1a9a0687f6c2e106a0e884becf99640c9401cf25b8c445b7f3a3e889676fd4c8a52307d4c6899b1b50b1c588a5c118be27f3bfd1f65428d7f5dc7ec5228098fd3426057f0b0f7ec8d05d60f9d62d2aba543546d99710166caea936c51819fb0fee2f6f84ff69d197dd3002c0e6599ad1a7503b2b7f35cafa6c2b449860b460a21b52e663d2da4a19b2d1030b437b2089f098da7a8b505ee9e54d317c83ee7e5ab0d9889f98b8bfad5cac1070465e4437e43877f98490feb83fc8dfe1586dae737bd41b52aee0e0a43d4b46c32a08aeb76c00d6f5e599e9bd8cff7ca4067ee4816723523531a452d496cd2154c46104c1115c9d41040de39b873ab5c0bfff323d52cba1f2a6b25c3f0c456bfde337c0fa6ba537dfa468559d3fd513f0695a03f4a357be40125a696634742022d41242417dfacdfcde4bd1c08267cd5bcc95ba8dba4de85e6d6a464b3a82eac2725e702803e58557798c5221ab532be806256d98e36d5f59fe44c33782e379e34eb0aeb65a5292bd837eb1b2c5069a6a3693e7734516aa0590b7990b1b20abe84ffa4132a18a7c7376ad16546e2286e81891c210df47b22cc7428b72c8460aaa6f5481ee2bfeac7ec491725f817def7454596ce47ba0f1bc83ba4257a36c2eceab81ba5238d895e2d497754298db9ac7126753c8c896bbed1f4324b1995d3a536a02f585422637d332d624190b08988c558831c717acb0646e9337bc2e7c1cd7cec19f350b4aa0d93b39940a5d333a328a21f8891d43ae843d88b678c57bb582f91b09938531ce7387c4f6ca44700e70c18a7335eef42188726629962daedb0b4e29619f5b0f57caa24eb6abe06a4715afb80d17f9349e545d05d31101588ff53981279c7e8354917b4f9d4132e79b4ea68be97851408e200e23ddc970e1fdb316549c09424cb1e9a7057b13e878de7ca8b0cbe78791b79e426116d1955ab7e7e28393ae83ec13ac90b6b2bd38228e22e09b14f745556af01d4857cdd302792d250ba14bd6e5ece1b80134b9b99443fcef0e8b4f6b35e1a59280908c5c8cd3cbb5c60f6837877a3b706426426458fab06033f1b6dacc18bbfe4031ca105ebcab2b0dff5a125a68e6a9467ac07e1bf3c55b92f4cf0f2b831d7fea8a983782b5df01b6c6a4d6b20ccd607c15ab5dd0cb297556f82635c51a5a53607ff9874f32526c43eaa28258d292a3ac4907cf7231cabd8e7e1fcc45fb15990c2c44bd30c36ca3826070b240cd59459a9a2615b60e3b959e141c86ccebb846067314a6ffbe05272c0b2be16fba580d4d736b2da1ba6735cdde8d91f4f443297e9cc1dec75840ac10743c0ab69ff1a81d4d9b173dac5f6202c8720c661763906c3297fbb980a92560fed43b357dbd75fd2c2e553022d9fb71d3ce15740e92aa9c1b3ce3232f07e093d234accd38d91d50c9ced1f369323839edcbd293a703bacc4a7a350b57d21eac178a5f079f4e6eedbc586ddaec0c04dc1c7eb1c900cb7f669377a4ba32ffa43f4757691eb7077da2fc1e51b546d6c69ed056fa7736da5aa5957c842e62b8db78c4e6d6fadbb5267496e8eef25ee2bded06898e162b78548d78daf36dee263c32f95c2d87260fdd6e1beafa1cae908dfb5777b04d9fe7ecbba542878cf02059701b80fffe611d324454034b477ae2c7b268a57aafb000abc7b865e081221cdbef4204b450270a23caa9acd012f3a12a61c29ba7629adfbd3ffe2b1cb9fff9f6c2f9f7486893e0f12092058b616f3081e13af3c1b6adb4a16de9b6782aec33823184f20168572026aa3d848d44f2c82798faa92ddcbbc49dd964a0d48de9cfa20ac43836917337616c5cc3566b220cd5c786bc3bb3c2e2ac790db5fa684763c86fb0127f94b1a87dd9ea6c6a0e06c196238859d43f3756ef0ead5b63a583048da234077cc4decf8e67bc0d87e056c74741b064b012b717d5bc6a4da05cd76041cb35282b183edd38daed3dc267b15ce03e3af0e93baa2793ca8e395e4e5bccaf77eda991eea0b92f33c2558822056c59376b0392d5ce26de30f3e86247a926ac7a28b936cd8fe9919b5e7f38f8d77f2f2bdf6ddbb46622abac61fb5c5b344d3a93e3dc6c0c6d82b51b945840409356e8a0d909f4d1bfccee12dd934160896b361b6320327ba9c56a664a05d06e6ae4de1059a3e6251b7b16b767adfcc4d9907d8ef3a6a6c2e5c64936759f4868e2076c6b5232f844751f85041401fee3a0be89a3ad3dfc830c8a4518c71c24c6a832644aa5a73b2157c9a3f20869c0594cd1556686d43bb05759e72ed9d4751a9aca207ca1fcae23d743ccaf4502003b50392eee3b5c7c21820ed9ae7dc1b3b7b0379b938f5b87e11ab7cd4321dad6866d4186fafa17fb8309196bc80f1389e55e67da56990f15ccb5bc68f644cd4b8037b52cf1b3656d1b4931b6c6af2b196922e4b7990d47defd779dff0e2d3b47024faacbb1d0e3e93852c0a3bfeaeb38185863846a6c3cd4ce133a2f016cd96af8bc128f828c5dfc271dac2e2b302608de2f4cce2c4f555226cece07042bed30962a806aaeb4b54be31a6d136cc924e3360db5d95b962cd13e18e978bdb763aa3fc1bb0ab25ad1eeaf933c3c2db170d3e79228ac4bf0ec8ccbac190a02b6354710e3860601c06497bc355e7eb053c37a7bddba44ac43ac0784d9f1ff2624ae37411dca1e996e312da3f2f95988c63dda645a2d3563d09a30565c0dd96387c9ab568f753c06d5de40fd2d3c63700cabcb955fa8638a1fd0db8170f2ea540022dae214b562ff79aeec51f4a66bcfde63c4498c4860924605b3578e9221e360ec24ca333070d98af126c222bb08ee79411704ebb24cb945039e80c82d34610b8f818b4a0d11bb435dcb986123c4282282671add6944f96e4f2216c2bbe1131ba4187584c3cf76277e149e2aa06f6dc07a3098b22f59a270efcf016a282bd60f672466612b32f612849e01ec8c04e898db923c5fbd375ba8e91e735416758f306c21f2bc8a7b8484e354f79bc1018a75a2ec8c019e5c5a154d13356a2757ae379abb6942dc0f5f3a6d3ed993f5482e7f1476cc8a678ab3a9f8188e9b3e990a5e4497d726fec0ed074f209fda070ad2cd2fe834194c392651a5e0da1228b5bfdb63c5c7fd76c15859de761d38ae634aed373188bc484e451b01ae613865e07fb1f129083af347def678d348205f8094fc5ef29211627b43c94b4b2fd2e52673bfba83c0561266ea57424fa1be49208989c6dafe3de61be0c4c4b90eb3d216ebed49fef066c525c2da1ab850c453f3b6b7235ebadc76fdeaf13c5b6280d295568c8290058f9e449e5ea552d57969b5cd12a2d1a3bbec2148606b35c3bbdd917ccd11e7b955fb2d2501b1a199a6be5a6180a1efd3648e9db7c981b5214236f6fe7b415c268a51c3b2f213d08dc764ab8a65d899cf86cec74338dd1afc67c0719d385fd1a6ed4e9097a76de5fe600b8ce3000a8f8f97f0ce2995eac2c7b1d2efac9241e11ab187d7d2b5c7f382366275d91c02f6adc5fc269022a8cb38384e87a71ca1f5738fc352772f50c2844d6fcb7ec895bfc7e7e45eeff5b9806c31171d8d61a42ea49c90bdeb1d096f63ca8d7254384aadba915a4a24b6a4d60e472e826f5b01f3bd24f128cef2768a88a3262f4a0bba0b950cb3a478e1a4c9da89ad71a6b9987365a82266d4143abf8881d22d6f2b3faf02aaad7c2b5607535112ddbf1fdb26ccf35fa6fa5cfbd22767e7a18f100f8c229be6a1d5af1dedca42c032ea8b0ca905cd21d6eb569205d804019ca37dbd939f39e4a0cc0eb32a49e8fb09bebf40976bf41a274e09045b8893e183f3cb00c626a5c62a639a4b78257f4ae01d7f3977fccdd694419b98956c8107fc96ba4b09869a068cfd8afd9606caa4b5844901d4626d66c4ff0a5030850376980c5a24a4103bee62c4046566d7e1a875189d0e21096f2af2834a8747781adb32ffa5f0e3c0c7d1a1df7c44325a98c1b0b93a564d8670682464abe196b03e0d6b0f77024b2982236279c69d45080acdd4cc90c4bf5355f0a3a6aece54c116bf4951c3756e1ac467e79302ada795c0ee45353acee39340ab333f3e437fa0ac2591a12524e4075094d5281f17dcde779c1e4fc152fb6abbcb0251774242d8593327f6f0305838569a5fbe43f9bd05e3155c67b9766e799d8c66434ca1734e85cf3c1ce6962f3a3fb1856ad37eee1cb60cb946d3d5f40951f69d8eea570f911c606377b223c086c465007c8c2093e66d2c32887d639e8fcb26d1a2e8f63234dd9cc2ad226e254e0ea8b98cff6d3c4fe7e66502a665a2cbc56bda62e07f4c126e01f41403dc8f6ca6265b18c2cdfdf246bd93f29a57b3776e981f7443f12daa86dcf62b3f92f8a8cf1ece48ba9de48522773018fd8d96809d9295baf3c080db03afa11b13f0f4b42dd3e516a4bf4a0c8ce951fad90ea15bdff41411358b803750176d4f95d452924ed1e0a198d5a4883afea22cfe1562bde8845d9f1f75123be81a34b53a4dfbb49f987f7b61f0d30f5fd4b8fd7388e90916ad70acc0e538bf45f48d8d981a1982665d77e26ce788ab963c7c8d1090d19173677be98327127f1d0f8b9abafdd1d1f7f1e774ef5301250317528592856f43a1ee69ac3d11a53f8495baec0ce320a8b92fa5aa76b5536eeea0d0d7f3827b59b1ebb8c18eecfcc1356ecf3c93d575f5a19299a0a710f77cd88f58174edd91d0a8b27654e34ce541f37332a41ac92859b8e67fd42fd4c4f36beecf48466b8d2fa981171eb1224f052897ea25b7603a15c92a94e16904455654194cf5beaf8f556b273fa9b4af668b1659cc49d3014030a877ef538a6ecf4fede19326e28edd1fad39aee09da57ba90c0bab5455d73a35a555ce3fe6d7802ddad4c16a3b4702f0b99eb7e0c2035a864e321386c1eb5d03a1236bf82a8724218e4a85e9d258caba658b258204ca82f0d654cd22a3aa8e84831a3dbabfff7a02116d0f64c8d0d2dd7a61ac7a56a712735935be01348bab515e30d93f1b32bc73fecd35ce641faf30c5444109c8bb7d3a8ce3fe8991be96fdeb84f6c7e31a4c300310d4dac4817a8aaffcf52d1fa77d44688367da70b0452756ef9d2ec9d1434bde2175331139a29b0081cd3d7151ab24e91855d64809956e0d79e82777e5075ddc1cb7a2c8443d8a0a1b463c91f0892a1f23a87ae6ceab7a3eb17eaad9ed335f92283446bf0ef260cc762dbbb82a506f64a2a4b44dcbef6d23c63b78e16bf478d1a0ea6b60cc7c3e2a608caa5a8cd8340c14870de02a8940f1c0608d200c97ee9d961f5cddb01141628aa9a9854c2dab1357ba3119d9fabcd7d50992a22f58949a12858b5b6486c6eb635a730d8015b7d94b5d6b96554972248d56f284680c2c4b72508dfc502bbc8c4e20d02d3b7a499aa212ae1e2496aa15813766a841ddcd03e4c72beaebeaeb0aa09666d0be420871d8098f4d8460d6ee81e7d812da21e4c2b5f11607793f5e590b1ec8a19d9cd771bdbfc8b43b80491bb34c67ca8c4c400fcb0ef44a9f8b5d22188724e9451a4f9cb301caed6e1d3b757f0abd3adc1ef661f40c77b503960efb6955a67583bfd4d8695a2204622ce0f32249d56a5c9f71a312b3834c3b7df7bb352052c2b9395de3e312a2b7c9dbfb29e44c0b490f5469b3e0298ad2fe8cdf1933f75ebae3d93dd248e600b0a8dda58af473a0ddb123b598036d3dc7dd4d329ceadce733d5b6d82f5a9045f10545153ef407ffa5c2c243663668e63e7e4f5a83cdc2764a89836ff4ec5a721b2e652c93d48274ea0e5c6f9c6893657d921c67c9053454d9cfebcc0dd74c15151a5e3e363efe706b2245bf17a221b2d68b65160313a9555975751e6c485246e1c198c5b0d1ca0f8fc87f02fc7704e4f9a56e16ae85c6200c9f3bbe0d411fc72f7a4beddfb89b37c71928f3abaee48a171dec9392eb10703357e43f8b4d05740be2c6180a0dc283f294f926f8b9a238bd251c8d86307b072f79163a685fd12e5126b016f2f7b183aba544d61bfca0131f99a378f37d874f2c4b12d547126c057888489f1bf100647687aa7687ba9775f941f8cdb67ba57ada288cff9e7983dda18b85d0944ff1c1b7dad9f5f26169b0d010f03afffb087fbd67888d70475401f4191a0c89a73c7b6c383d724f0baa11d7aae07a223b1896503ccb64830afeeef9254071527c48024ce4152a03b94d051f28aa51cfafbcb21b4baa91fa23b47b41bc50c0bf4374f35e244a9bc58eb14d966bd63b9a05fb21543068a4e5ae7d74feef8518b4bcffd4f434291f790fa18dd24cab5963391cd4b7eec4bf9a4d78158172adb5fce7152d6f106c74bba0bee35209d667fd71278401e3339b4393184f0ebf0482e352912664c815af87dcc08bfe7d388a589014aafd0a23f7008721f39b96ffadda24e109bbc10dea3b65ab6fe809d41b3cedd7bf958cd92cde6f4084fa3cdfe41296f42854cda2e1910e99c3040d34c934c79417736c59e21cce26984518a3146401485fb42c2146daa039a43941ae29e0b0dca453e704a4d4551765274eacb1ce658c0be284ebe96cf727f81036231deff6f4488dced112808cbe25b659274d5af89ac7d62e4ffd862d3de145380429d632e0a9cd49349f686892860fbfb77be01b83ca627d14c5306da9ad02f957b382f6edcfff6eee9f5a51a49a76ea933147b2f3949f29ec9739b38e52dc9e146986ccdee28da90c892bfa3b6e4f17177cc44cd4f90d1263a83d052a9fe6f88b45b4873ec5b0f0c9428c9e70b0cdde333b6eafa4fee9bb9b9e3027ccbbec31a0c489aa2e6d54067d31e5403b91f9b773026f36c17e8f0ef241676dd37249ee1aa3ddc9cb649901571c6db04f7f31da412cf38653bc40c8a7dbb2a7ccbf86e825a0116510462d4476ca267ff38e1f4ef29ba5ebbeafe680dd49491b6094a1a956fa23f51fa0acf9e7870fa5d4d6433c716b38319e1b20b2c3f60463411c7bbc80df6d6625e564a7fa8c29b8679660da986846372d413b22f92e3fed3ad0fc48b1facfc661d3ccc600751bb4f354a47f331b29f756b4f3268bf4688310d4bf247e36cd59b2971467e5b45623303456468619c192c50672feb348a86a446a42d59640728bfd1778440f939278ea4476a8a65aab7c8eb5352c8c03d111fbc370861b4248c410ce43d8a7795697ed31a124539c9dcb0c4c9df5984087e22a3e749da02279e30d6c04340c596f47062e09b3c8fb348c476946971cc60be2b69591fcc03e91939b026ffba82b3f155c96aab306440feecafd04e5d9cb1c3e66419af81afe616938e0c6741d5c332b8134ed152a286dc901fef0935ed5e065eaa43fe647279653e21ca88f5ae41903432c8394122f4b0d9f33135ad7d25be29c9ae82c9f7305d848ceb42d74057fa5cfe4f2be58a8c09d63f875943bb23da59bc7c090505e07b78c2a4534ad8de3d3a3929fb3636cf45525da32c3a25127e1e37de6b130aeefe2aad6108eacffc09236aed0d1ec704da7970b82e40e437def3d7e889c36ce29c44da0c009de81f0c3f09b0d8cedb4754f74a5512a22b5653295662ab2b21b07b7d3d34a46e6269ec50b6b4896af03fd75135b33c94072863f6a365498ba1589c0849f3d3bd30d50e29cfdff0b7136dffded72840bfd97dd075c416b664dbb543441db2d4e5adc78da71150ab70fddd589c9b2372732ec4e36cc13ea641ce2cd64587dd2d21d32a7b180b3040f50dffaebda2b71bd33846c4780d6fcbacf67b683084c9313acd487c879ac54bf0306d89652248cea772a763be457a943c0d55e55e3784781e245a409ee09c0746b0ce71325a496d2146b50fdacdb91c6d8cbaf3dd19c657b619d43b0ab9306d7ce6debcc4937a81ac54a4b09b1a5c4cb81026d19c16b48bf3729ada3fda2a812abe045e170cee41c892fd5dcdacf4979ed58e0bfb026fca71db5e2b0a7bca2dbc95e36f597e148c12d958fe845504c8eb8031c31c26d61f75077b787eaf8bc0b056bc4ed8e3e402c0f2f2c712dfb0640a91ae520bcf7b61b93cb3a0c29b2ffe74eb1c325d61082d191009c0a1f5713fdad7ff6f0075e7498cfcb0b8c2d4d0faea88a5bd4c4a90518700f5abd24a7fd88ad06b3bfea82483d40b84b3610ef26507916b974ce5ce883f89aabca3792b217f1871d8f122c8d8fc6511deb3fe6d9ff8222d7b786f51c728bd328306f55805e006024fb03c6d0e6b8e5f04ce16fcd3e3cf11515f2913c7f175178f1c7b909321f9f84fe571956b9cfc9ab7e21e88f8cafd0a4ad09f401de3c715bcaf3e549fda338f879f5c2d7267a2ea1d255b7f5bdc0c1940658300e7e10f66d5925f0d453d2ebd1145b51a3e2b4916f540b928c38493e338e91e65e32e9a2ec176eb3feb7ee9d40a2038fc8207180d0d86c89c4a184d1c8bdf419f1f0751af51fcdd1752684c3806312ef6855d9e96d200daea34ec3b5da00e80e946f9ef22f82ff297d07b5bdeaed11b3353ba407d45b1e2b4518ec6dc8fd90866c2bea0cfb587ac17e244219f5a592b9ad112c5327163f923e6051e31d4376ce32263dd6c307c36936d665677689ed19bc5f64ed2d4bc1ed5bb317bf08e8a2c53f2735d462b5bace125a894349b626ccb2fcbf69bf5280f7e6dedfa112b0d7a337d9553ff577e71cca79661f367144b4d0a46f1f95470c5d57bcf240bf0ac104686dc99c9e71e711edea58961fbc379931877765362a3f06af2028170f004b876d1abed28e823171f85d2cbbddfb32415fc58c04faca2a9400adc0875763d2892396dbb45f48c60f538d29724d6f3dc607e99a309dc64861d102b435272e507f7ac7619375731eff2bbb07d5552c789a3cf0ece0d3ff0246db99f114ac0dc5a5451fd56579cc482a1c754f5112bae931a249edba4c9b5abd713824361b7de1f06be40376daa49b837ce5d67f7fc9c1bdc30f3e5663ae38b60a64b55d8a15a13fa6af35eb758ad3ef080e18a6dcf8bd22df6bf20d718746ced854f330fbd9f8fa46cd9c6318b3aec8ff5c534d81ac681eb238f2a9cfc98eda64cf8e852c301c2001f0c6aa7b7f9c2df16febdc4d07a1ba049144beb4e0f596aca4acd312234e068d86ce01932092a284cefef6b5252e320be12571dc0ca0f5d2634ab3c4e8bcdca8cb53399998b009624fe5d610120af6fc43632563db2a3faba6f8199180a02caccce40c1fe0067fbc42776fcb6d16f5c5dbeb052484d8863e04396c214bfd12d1df861c8b7bea859ef9ec282451a6853254167a247bfbe1b09c8a9e52a427c7e8f33590415f2011cd6f341a305678663100bf411f3eb01f1c488e242e31d135ab4af02358539f4eb51833e106e0ed5eb66eac450cfb04e6e95a8c1a7468d632be700c0265d8ec0e62e7734a65881d1994964e662a3eb453b74719510472a18683cdff68da846cb82fc7af8bc3972e6623b5c10bf378faffe27b76fd50599ad692c2787c59453e5b9ecdaa4a8d91db70528547e15d4fe322a8ea50c58092765db4165f7c1c70409a851834dd91bae7b27c9ddb839374ff90a49ea1cef366c51e9cf45e4725b5fe383899ed71993c5abc737748e64ca8e0a9b10cf0152399711e82e1addfc5def94b06b6b176322bafd9940926c479f734944682a5c985c99041100fc2f8d821ecfb95c691a0affe62b239835aad9002e0211a55bd8de6309851e9e5b07e17fc96a21e7e677b6c8e66cc12b6376aa74d3e01d331105acee57954b8a5c9f6c0a9542edf822b73e1a7cdff325907c4ab9ce4f20f2e33c60eadd19edab7a5e238ef30311738c2d46e3deb2668bb761f9914158c956eec19b03ebb339f3e7e95d98f5185e0bc24bacb0bfb00a97ad2131a5bd84e4ee6f47388b00fedea03a66343e6bb344ccdbddd00bdeaea5c7f8eda82f535ef36e72b33b1244b5d63b03d7dea3c066da83d9bbd69c0a9e6b711cb6c62da2bb701b29a9c3e0baedfd39669f0005549cf8f6bb9ca05ec1d8bc5811183aaf0807775efa88bbb47179d8f5081a03a5c235027c7d3419ce91768f0eb5d63dc2bb8248ddc4d5b3747d2170e0bd07f8a8b27839e716b78fd6547b22e34a0c6b4c290955e396094e726b8648c6c4c09f7b50b6917646d3392fc5782962ff7f1c449a4b8314904fb6d1407dcf13db0c583de092cc5bf42c466375de77e84a82d90ef05ca4b556b976d27277b3a3796d0e5b5160032082a3cba034bfba227b39315193f9328423874bceeb6281feb8208ff3a52362ec4e10386068cb221cdd0a53074449de723e5a8693374402fc7808364cc0877b42b92fc89621772a60c5f11d088c5630027bf9d65ec1dcbe030fa6af97633c46218576257ed248012330b6a5377e6298d696c166ee83742e41fe691657e3b3237c13ec1cd10a99a783a5b36863c473ece542ea4a63c16795fccd66932f34b9b8e279d4ed4f80cb8c4a122eca4102e5dfdde3f1d480fa8718f637a75db426f6674557faa9f4de1a0da430665999af755c7f340200ba4a70b7dfae7d562c47f14b3ab5609d06ee2cb3d993b4f2ae480fd868c1a7f497fe91272cdd5961b9e5c4860b686185dd6177b7182a614e891d7458bd41d47ff3556581a7e6e2fff523dc6295d942d9373956a53d9b1bb05711a1ae37f42e8a962c188d514892295d467abf99e4659f31d8cd34f0c13180b1000f40d56f44c422d7abebbd5375fc3675e27c680f46dcc521076fb4a5f3920bb97f4b414831a31c965d502a79f2a7ae851632968d828fc3f80734ec7e6cd9e5d23de2021604f2fdb8a33a699ed725bb5ff971996b29a9e510a512dcc051cfa287d0a62f188127de5870f893f207339d68a67d0c00f23c0fce8d305513a27f33aaeef1a8cf97944cd50042a5fc5b97a91689498888793afbb730274ae5e4fb76e9031de70e3793f756f948e5dbb4ca460d79444f37feb58b21aee05b9ac54fda131c8207e546f565e05fd968af574e8ea754efeadaea49bf798ab59bd7074baac5acad1fbd783dec01cbefccdd0517dd91725027d8920132e093abb427f66136584c96e3353304681b2cbcfdaa69add3195c9207819a5e542c299e233176abac678decf436d3299028406cd3d567202dde2b0a1d2fe5b609de9d18b79725b951a015c4643726dc518155d72ef875621e62ef44f75bd6c62f341bde162b682ce6b454320833cf77a07003c115ef2ab345b9a85b0d9f4a3244798e3f47f8e75ed2bd594375a72680ac267cbf153628deac63526842d98f1180c5f5c606ae9dca12f4d745cd55945e2e8768562d8d9626abf2f1a47469283dcf4a00bdf16db16fccc9e580f1401889971b359391e5644c7bf576b2b4c9c0772e90394c3d8cf0e37f07d29fce1ff2f1617b4133f9572c06188e22eca62b1f477eced2884d60d5ebc4abfda9eb6411315378f77ec5fe1b09e80abbf647617f1f307e6fdfae3d1f30e9f26a5d380e53790d9a5c7342fc4b6b47a304bf2c8d0f22345bf8fb4de5eba893601eea041495dbb757246e4dd5bd1da499bc836b7330b026729d4e2292fb338b89650671ee8677699cf9b9d259f623eaa4f8dc9ce7f061445c9f357662745b1a55912917454bb7302c0e8d550587e2f5a4b76f59771ec215ee79d78d6383ba0c96d47394b92ea6e632181935f2aad790331d1c728014c2bd0fe4b94c05450d4116a308a073908e7b3446873224678f11e037e42c6698b7798e2ecfee7243a70156da84cb0e0513a14596bca86e97c7389e1be7da7450f21d8db35d3979fcc7631a0c0cfeeb3f608ea0605ebb329fb8510f6965db0c837daff2271e1b5ac9809959dd23d91869bd3ebe56dc5c0699a4139b3e527eca1bc9700a0989128fe93b816b3f07e6796e40b851cf2b1244400d4faca7bcdd40af6ae1fb3574539ab6a506a747cb84491cbd3f9997587287660a10029d636a81f077406f527e15d0009ed2dc776ab6764e97548e1c12ee3693dc3b4cb76c3e55f032b4081022219fee64adc81d4a0dc9f38d0838e0c96bb392dd2252cd1d3f8a9b2c2ac22f9d18c1ccc50a17ba6c30bde4d525d1b15bb253e9a30b2e2619aac9d95f56a3d7022a89650fa1ecf1f1a3632aba6ed0e6b96e28c19fc39f96044faf1bc060945f45df52cb41cf038f27ce8146cecccaef7f342bc03da623104075ec93cb6e3311b28e7f4e239354d0f2c05dd64d057b3de4dfd32936b99079028c97c75fdad7122ab8561159dd77ae3c81d319bd1fd375da45f02f238054ea5e9b92e1180e9aa6d1d69afe8e0448a082e1cddde57cf30ca32e05d28b1ef94c3b588bd8447b6d06f40707b1ff3786208d837a38a87a682ac1ab455d9e7721c502e550d5f93cfece8eabe9fd02b3eeb68426adec82e3f407fe4972f3b7cfb32d2dd543a11786aeffa93e1a5744120e761ea0d80ba721ebb19b261ab1ae04e9dd16913ceb7bc8115bdf29b768807e38818af1fdb491080f70d34cfb63b914a20535c90470b74e189ccd2481e816b1a847c4a2d8d2a719233b94a8a636b26b75f3de36cb58cb1613ac39a7ea60fc5bf199b7e725533e68987795f41fa12040276dab76981d5ec53093c0d9163967fbb4f0790a9546d5790fe0b0a12d05742e2653783d75400f46e017b4f2addaca3db361a8e85758a772c8aae8cfe02a22f77dba304efbdd4394e6a3c3c3e12d85d4bedb2ae89da218298fd2c2d5ba5cf2cf97103237bff88f72be321eff5a82b0b07908ff542344247564c92c6e6e0731ed41a6e3ba6f1b75213375f86305ae3641618b1ab30c56e5db0c593893c6fa8e4174a287b8ab14a7be28f32390e826f0f79261383302aab43c87586f453778c37257bd529b40e04a83d435b3a21e9c0672c3dc437d9ecd1af47527c87183277a987a60c0da73747849cd9c3593935b67a3c2e079c7fb78aa32e1b094c8c65655242e1585dae5255226e0c8d67497c7f600520260f2e1ec490522c108ce88e3a69896d53db654453cde5b4198fc0d365c591c4d1837a840ad3621c5696cca6a7e13888b7f1f25bba91d5235769ffcc7feee68e2fdaa59c4f6508ec9ba52b7934a2d432dc946f79203c845250c8e51ec277951f14df853a3def55586da132750a9c64a687d0e027e2f46d1a6bb1ab15d4975083217d313eea7930cb1c92d79f5b333f2159ab101f86bdaee8315332825a2ba170e6888b3a28474c7ec8d0da3387d24204e5d68ddbea30dacb916208cf0ba5a6e78b3a1122f1b8cf864b95187a02518e5060dd6a40c37942c9431c19cfe4f31e59459899430b64a129467897b6fee00eee6008e4fb96ecbe02aacc1d6074342ae251c7c06895f99dc442ec7aa3ed48d89198f25ad14e5feec2ddb84fec0b13eb2b1c796ca7727a8e1e1c9e83c07d9da8632582d40df566d14727ad5498940868e2c072952b1fbc38c4dfa4736ebc63a0b8ddb10ff115af28dfb3d8fd5d16dadace57ecd8aa96706daee1aea04acc15a4ce91501ce75070440264eb9296692f796b484bbd0b9b808cefcf23a5db7469352ca0b1ca12c74fa7abb32c03674f32f41121c0bb16519addd5d5bd6c54ac3ad7bfd803fc391c8dfcfce6fc8910d6471ae80444703d452afb70d82588afddb1c525d246d985bcc59e72a005a657ab32652ebb525013e541a5cc13650dd9093c1c6fc632b320ccfba4e60989a5eb440212dc984cdd1fc639bf609559c1d2492005b63b3f495b9e3a5bc7306652aba88b5cc189f501e0a845b71ba903438f3600f406ff304bde8571feab666986151d454780541ccb2b9dd6220cb4c5542531c30271a2f8a009d67f9bdcc2ed85877d29eee250c4bdc31cd32a4c7ebd82408281f8432ce1c395b3ace1d37ed8a3e71c0b2ea4153cdade588a5c6f81f78ae461f575e4cdb358a9db02e0005dff35dfc82de91dd96166baf3bb8a2f62531323e0d8d5431fdfe8e00f22ae9109799524d31dff9e9ad5dd080c6d0ed47868063987e06aeee64b801a49cfe6cd01040b21622e54ae1042596b3f14db22e1ee623fd1c12e7de219b295dc6447353555fd8c2ed804d64364fc14b48f860d88f70c5effd8e8c1ae859f893ea3a40e55aab69509a239b5d7655230129682c5277f3b92c863675839e8be585476a0eba0f0149e4875b0742a000958141df39087b3b7491840062669eecbe0f99fdb7c7515bd7c3a6636829dceab0168658f61eedc8cf3f8fb741672f32f66c0d84d2c0eaf228b0fac42d2acefcf94ce78d44d56a9a39bdab2a34362bbc8e4b81c562bb5c44403dcdfcb8365cf859568630a4db0a2563050e431a161da524bc43c14edd34db30f33da475be16fc266bb8cce31dc444610690a595e56ffbda875f48f5e91ef6e569fffc577aff10a8bd6ea08d6284bce97ca46b3c85c352d24cb71956c977172d83e25776b52884e81ed16c91fb1f674f152264ca2b5d68303441216a3cac22fa94e0da694536c9eee9da781ced1b5fc81eefaf611ef4ec3259825337ec7f9e5d43e9c6ea61cab9e297d926b54323f02d4d63f303abcd561c35bc59302482caed460379f42f12251b0413fcaaf6921ee619dd71c4d341e61a419db349c49b53449edece39e1ecd8e94801a74f3a5b3046389eccf1603c171415601d2638dd4a8c9d57a818225e670a636c59b3ae7a241eeb00dbc42d0b56134eaaa4c53b5b6709e686d96f5083d9e56f89a14d3f765bd15f4215c62f207e0aa8949332999995db65af8c79f11f6d76a991ad18ee7d924fa7aca8a5caa583eca42acd6f4a869a52a6f1fa87af4ab922219bc6a18f90a085c3ad4929f12e31fa89f04255191893c1a76626fcf1629521ff6e40a0163728ae5ae0ec1026c330b32e590301e97329b1f3befc4001b6b25c0c83c8d20f781108e9d45d87166efd650c3b958f5e0f6de78d294ae66143af2c1d754d234ff449af1e88c824e232a4c0058ff22e8e27b52b16a325418bb49900636c1eccbb3a0b6f8d01df097063aa8388a477b8b462c24789acb604566bf7a84af901ba9e55613902a0de8d172026469be0737eb6a2ec7eaca3ff657eb9bf1724afa0b1f8cb6f50c7112257e7bc97e70fdca784844449872f9045424d3e07bfe62a31b3002f2324748a0b241482a1849cfef0041bc6176a716efce92dd54ca799b0ac1def837827add2c9ef54923fcc037f74ec5d66c29758fc7b2b5f3370a84e8df99c3d956b66d1403bd2efb05276f1fc0cbaad680c9bdc3ee1932966d495339a1cb5f85c4cac2f9f973f001b5900bba0f1b817907f0c789367b428e8ea3fc5d950fffa75a313118f509377d83e585de16ebf5cb4254de800624794e80033f74bb64494bc1bd8b99606af29d129ec065a053e03672fa77467f5bb03e82ae7a5a82149ad9e719d39fd3f5e2fc9a7c841d2776b3a50c57d6b09d89de86f55f3b1f0c107c9eae1b46bb515143fbda5c57726953f29972c540bb0703d5d72c91551b4bc40daec423761bc6c19bb9d3a810ae8f2cbe7ce92ac82057ea803dd93bc36e8711dc452b86398f3848fc3f690872ca6a61c60f58d5c1094abecc57f7c6b7c80011efae1b71783b09e0ef33a28bf1d1eeb259785b621677373c7f427404a534f3aedc57ea56175b89cea3f46860a1a296a970a5e49fba4257690213110074fb9c715b130f2dd9696ef3dbbaa49dbbb95011a80d5b156b5232fd2cce9449c625f4e97ae2de384c9cc4d0ba664c68e04e30dbc7e46860042f54bce26cec3884f2e1d000b6e8be9ad6f9b46aa855d44e7cbad21a139fc10417d3328e3ea0e740154db3f2776b1a27d98ad1a1219a1c19bef4d8e41a5010ec9ecaaaf12851d99dfd4233c6117c78ee065b10b3203a3d9bcaa3b4a939552d4df9b6a439997aa3ed67adbae9e0e799717fffc1316064b1e8bbaf4d8679b3fa09baad7a131f4eb32e23f256825a65da41900e46b6733201a4dfdc46083e0d5f2b92634044bacc30a7dd075cf40edb9529b6c329bb73a01e5542972b074dd5efc7bc6e44915b3ff3dcc0a292ab82b9e3281215478bbe834830467463240c963a6786e400bb1b3ba5bda17a6a507b0c362760ed7760efe13a34c759b1c95fb9a640e955f6364ef6b11295e542f3cc9b0039353ffb727effb5d03fc99515b801e745b27195e439b0013f24a3a3655101294603fc3dbb24fbcf7327f48aee3ea777b450313020691170a3aaff36c8ddd1712718bc03535424f3033ff7c1447863e6bab863bc954d983589a8686e1e361ad96353bffb9a5e96b09ead2cbbb970e046e24fe8dd6e94558b718a0b4c3ad13ef8f0cf3e950c9c79ab48de3fb8fbbf683f72de2b5b5ef9d0f2b4d2151cca62d6fdb5ca942af70060428dd13eb923271c0176d062be954a95768c449b5fc150bd8101ed0fe10ee7ef32d8a5cd1d22acfc200a6307d7b7286930efc74f193509ce209493e8aaec147a17e0287438724b765b896711b6e59e8ac7b3070cbe78ef655267769db337e55466fa4b1ee6a67e40f64e062d1568dcc64b061d32aa741f124a0a74bb78c800975998b0b3553adb22357ee522f30f687208d40c752e4787f5befc3fef31e3649d550b863d52d2e6aa9b73224b3589e07c99232bf7f7c7e28bf184743b1661b09af79a697f3630f888d0a3ea50bdc7a201a6b5d7192afd34bbaf516a6950b5a1e5d724374af98f3ec032de16db5ecf0e221a6b6b464adede91dc0196dfb84705a8aa5df5da8a7ac709cfac5063de51ecbd35bf9711bef810acfc4dd687df545efcf374d65a6881522f8e9d287400a581da9b78bce6ea20f6dec3f59663cc2e460ab0cecf4850abddb526fd47843ff5fcdb38788a92a9c2bc979827b1b17fc7dd1bf5e8f601ecd72bb72faea74354cb7f1a774ebab8ab2d915590f7923c31a17c66de01e1ee387b9e7494a947775e48f702dbc8d035450ebff5b0ecc49a03b202864a48867f0820cb9c5074ed1734c43110213a5255a69bb07f2a7b0893cbd8020a87aa50e2e71775eae1fcd6522816d60bc2b4e59d09d3f2a12de9074967a4b247c0a9cd0e67d49843658899638157106b95566e919a40e6838b425118a56722a7ffe61bf301644dec8c2074f872fd478b10d2c7bb93eb0abadfe8ba6ab36654ba41d0868887f70f6c7be863b95fcc4ef17fe7b660b253ebedd07c7f3eee9af6df3781405192db15414c6fbc2ee1e251cda01ba7413d3f68280a824e489bdead6de8896d8213a72414288a6c49a58e8cfe2c774ede651af465741e4acf91fa478fc9c235d1cdadf66707497cc6fbb1b17fe944f37219bd5e4b5ad050871415e3a3a4454dc1ad3162a3a747bfac554150a2ddd363e971b1fd460d1852d09ae80ba333f9f68e16d159558d9fea7d95e1564c3f3f4e5218f28fc0c340d33cbbf32700e3709024b59fc6ac8510ba7ebb8f1c069157add10b95a0fa91d6851c3dfb4c3c21f06bd0c575e8c37f0b34eb6eeda715eb266d25496168bbc88675898c05e52debe361a1143c0d4ff6767b0fe2504f18cf26886c8a13c8d5a7b4d9a6167c33625412d02808e225fcfb886cd55c39a16d9b1659e40f928e4ca12a6ef9b6ff3b1fcb1321d0b07842a24436e0860f215aac3dca13362f143dab877c999501eea7586de82291fadca28ec45a322efa59155fe3dc00e74c9b90b4519ef112eafc348fb6eb599c556303d12bc4e223adba521b4f8f5c3192d53e118935eb494524c84ab44fbe375100ab3ab72a5f156d99857c00b8d8039e3c8503870eb2fd275bb7a611a967cca19d28c817ad24ee5eacac14a8a686dd8c4a72504486b41073629bd655e7f8ee55300c3f5ef64e038c5c6c1a1c21a3e6910c5b481b5efbe3b0ac2aa0e0e4ca4876482ae106ce331547ef7169116245954b93ebf3a909a1f62f2e9d31f6c57ccbae1cfd16899f41d5c9c4f31ad3b15980f17d7d81a30553d49c380ff5f29c15eee443d036d638eb91d72f45615737a9320e8ef3a1a9f4b0ebc06f5effbffcd5cc415ed55ecbab8a434e65cd5f9c1d599051382579a4dee692dc70aa328db7af9f922357e1c526f383f20c79dc08858c7823745f085e245ef81a7a483439fe195dfa72d8fdd8e15679302fbb4a02c5fc73837364e9c9d894b6166ee85da04c0263d55f073a7c24ae2f20954bca4b35d3ee4bf2ee64a1bc99dd84819621778976819a753a1d448e6c0d5e89c464ccbff1decf123ca4cdc5b27e24bcad737bada3680779e58840d15c44194037c053e078b0b47773d32f8459f1120f2d8fc2a51947c5a071eb0e0e47c9c084e6500df46df42e269cc42ea92fc639ca8f9a2fd542320fd70128f64759fa7bfad7741d5321251f6a1a3acc130794c946923438579bc57fd12cac528e46ae9951c25cfac0f98e76ac423cf1c7048f2301b5e0122d3fc42898cdb91905ddb80c8bac3bed80b41233fb1f6ba6d703f2339b5bca51ad9d0125ad38c34762f55ecc9dc6b3bb82e4f19e7ed092be07ce817b837907da84f800591d7c51c9c3d41e0762d0c2e8c03c76a7cb4b6e129a74af57b5054252398dc7a545be361a2c7e5b2707c10262dfafd1e544c6d5498399da35d65ca8b839d4694ca4b0dcee118b5240b76b564b3e6cc8db24e93547bbecde481a70fd1ef7a34113d28f10d8523202c08d843fab38af7f35042399ea670dc81a130ac9a67feddf088791e02b8070cf5af0194c0cc01ce73a7e49b6cac1d2eca958057c21f13cb9ccce470ca954a535e6452930c85ee74b3f9dc7fb5a241f2b39459ef63872aa194bcbdab0969f27677a2b7211794184b82b25aee361552bcf556344b3c0a56e5c3ecbe7d64386e302fede598868ce1c331c7bfe6bb0458797fa827e84ae0979ec8bd89ca122acea4dd6487db349a67c6e030b28e03c63698f8d6b23dd7b365467cbab813fcf19761968e98cb465458fdda9c03b52549754f8187da9f44fa6f15734a1d1f449d59813bce0af6aaff21de5097f0e55a9111230e5677b2528c499cf42b40c396ad69eb750e199e6bbc14e472caa2fded06cc5d1966cefb21232f2eefc2852fc5448b6439e6f92e9b0f980c08c354eba1fb2f96a0596b2baa9c2604926bc0c1682b8e15b06484035c7a997b1351cda8f822ada4c07e178b7fd6fecbc1289e3a8bcafdfef31b14d87cc5130d9dc346f712b11149498426f7824c6d4eadc871f0a8dbc6f5e911c46f78e5b9454c7b136945afb7a21756835f500e544f2ee1f41b3749fc1bfa9e51d395961a33f75a3847d863d6993ba4278b762964dec22167127a3d6c48f679a7b6d38c2d1f72e2cad2023c9a4d87cdbfe6fb0040c4bd9de481c9d6eaacca49bf87724e03c5024b5ee27fc05e4cfa8492a5b69cbc8036c0a9dfcda7c473502d3488053a8533edb9d9fc1202567a223619e648fc8f4c9467527f47fe3b3871d827ac7d584a5919f042d8b6cfe4856d300d3928b54bebc61d9ea38a25ce2108f90f2e3f3d57387eedfab2df4a8b8adde2c3d51bf432a14ee118ebe7e79625111421409290f212d2ec8a85be7171bdfcd1b6c8e25d95e1673042dfef5236be8e758e1678713d54955bc3409d290b7b0015d8b751cded50e85c8aa7abe33d3b766690cb4bb22a5f7de8dce0b99faad4b29ae58fb7c26b11c54ae064f6b072dc618b8814008042bc00b40722360c0cecdee3437f82f798109b3618ecdad0998d14209c1aa6216fbd15299efd0aa8670f37d094431f1fda913a227bf03387ca7b4be6f89019e49998a8ed4b4b4c5f94682b31c8267f3a45a752f482b3c15434292ca2a009b8e20edad79d91bbaaa4cb45cf3e04720a2e4a1e6a116ee6a997889aa06d26ba5edf33ed07a7fad559d092312fec35102b3043e46080efa0b96b0bbdfb9d33c903eb038fd0639f19a1c0af98f94ca26e3f2e733e637c6332a6aaf866df532605562322d0fceebad83c0b7aa4a7e2ad73b28f95479e02e6a5ed3dbd13a7f9597607230a4674fc4c05cbff79931b1d8e37822614071cc54d279c256f1623f36a33eb10fd16811d3a7b39388644beac23cc0bcf8fa6618d13eebeba305a5c57e62853259956e77e10970ba7f89ccb4217bf3dab1e9139e20f4f18e51ded9a150a4b9a67cd6f015e82f299db23d19f373f292ff8821911924e621ede8f0d32f731c6995239949850b7487a2efbd045a6cef676b8a94c5e7949b3e148ca9f2568fa311c1d65d3b9c8a048063e2c4681bfd4184cff8b1df591a033a6c48e6c0e0a8b656a040962bd7dd14ee0e56080f41c37a2f1a5e9c3446f355bcd044216d7b85b67084d547649d12d64a9d004014c71b7b1b444a6f6631c7e7ae9ba12e11f053d75e6a2e96f8abbdc1aefe76a9df738dfe43a9526f4438b08b285642691dad03249d84448e0e7dc7a0b3cd36c0aead495bae898e802fda2779904acb89d32deefa922b135f98766d6570d8f2a2e6557206f34dcde9f909ee7cd46ce249086e58479db341bd4d6c4f4ba8fecbac3e069d1f6c57c1fefd5ad2b7e78d07ac651027f26793f4107e05ea634d71da3eac7792d7a26902ca5ff081e6f6ed7bb03716c45c522e21a56ea32e6cc83a07e27a4610b6b080e17b316292f1caf912caa4f3bcef7b8f25152fa2d56afd6600dc868d37d9c96d458e2f06b16c367bebf9fece798faed86d679a83ba70f56813f3d666385964a0bf5f99dee849bda8a8ecd9144fb6682c5d139ffae5b404c3c6c666e6dc42f5130560f53c18cce9e0aca4fdcff34bce2433fe07879fdb99a45f4ee62bd85b11952cc3b0ab9eadd6e55ab3c1cd8d5d5373c0ee2d07bef086d03e422b85999204c6c284fe5b53bc5cc1ea32d4e4d50aee3292e54b6e1d75e61dd57f3169a9d3739f8c1c6607627ec953f4c29593e9d117a8295121a527ec7412640d01a861ac963113c10d44dc6203fd8e9b3c99401969c557f0d7e221a90052fd7aad8ae3cff60c9569d6a313b81767f0dc2ed06c075772abc8cd9433560cdd836dd74f2b3f720f695e550066d84739d394585b57fc0cd19e1642cdcfdce2c8761eaddb4f8f014192117a25e64c675893c034f59757df56d5318e23c20cade5e0e5a70577ad0db3cca1102b0ab09483db10d4da84cd4f783ce27b49c44d62e0e97d2c2e8ebd409b974a5547c54d84e717e722efdd0b3fd2963e8164b8df626231abca73212510f99ffeedfdfcbd17c0930c3331528ab314e38860b6e9ad316f1fb4a2392e2f537392b7e2b7eb7ea35e103249384be3111a052b90c946e7aacf2a894f49f85d7cd6c065b192a014b4b6ddc46b337abf9ff9ab24b4bff8efb452d6e97780145b54d84b81837cb7160194f85ebf656c31904bdb328dbe33abfe809f9724a7c2f54da445e776d8acd49a5bace2de794fec5212a62b98f9597ea79e2504d771b03c578d754bd5bd5df6eab7cf4f80008c91ec235afa3b02dc24403d5f0a69a66f794223ad0a3e033886c7f4f4491c92381b30eae2727ec86613f8b6130853637c0f1f58fb75ed90857c9dd0a1aa62b82bfcc233ec763ac6e5b9cba312f076b80c37c368b89a39a419c763faef82cf5288c4fa431b7f1762e26bdc5a38f3f49553d2139620e4bf451430fe201b2280a610dcbc4e2a9bd6d1a9f81f59abfbfeb05cd06bc493a5969f96dd862eb563d55abba4dc7d90c26cbe5f7b7accaffbb1ad7bce7ab9cbbc10694cac88913d0f4d4ad8f12ad56aac02036fab0a1b0fb48526ae53c37f8b35169956803025a66e4770a787ed1ba4449b0f35eee4ba63a666ca5ac2b17ad4be26b5587f41f465fb6469b395244f755dfaa4d177c6f85ccf8e5de9ac77fbcdc1b1fa0ab5d673df8d056693d99883c60685e563b8625582c6912f3ef11d2374688e02472d095a2907980651db47658b7e24642e67f9d7492c09de363647efa6efe7c9d476b8901dbcef1e4bae5a1e3d81d10e0c8e53745c697bc342b39833577b05718ccd81bd2056e52d3e9f6b655eeb2e09063e32b6cb9a46a7f5d3d53b097a6ddc9da7b825cd7db9c3c23dc60ccaf87614114728e963294952fcbe40866d3602cc07ad80726dcfcc00675c6a38266bd1c4932aa809cc555bf262d636b4167b11bce2df8f7be16b7332a0e86115b75f0f92d2a73f3d77b68144c1cfbf0c140286bc132a49a7aee400bfa4d2d36489508849fbc5d413ffda6da3fcec660deaf86840ff7155e658eaf34c517df41f7f09d4d21ee832e60a4bba9b4988305e72a2aff3e63137c728c988a81b86779560439fa9f849370e8b9ded05436cae8020039d298a102276d7a6b44b5bc13b89642eef7c59e74b4614e143d57a332323e641edee136f5003e6a04a8f5eb2b16d566da6460306a681d373d36c2c4d740209de66264d9d5e9f114edb5d25dcbca37e2e6529f1972d5072fe9fb6b1951bec518bfd9b28c5e8d62d0d267c888b9f305c801240e2409d1fe4ab13c0c6b9335a5f1b4aeaaa312f39354a90b4e09bfff1bdfbc2e062733f9aa03405d0f8c06789a1dc11b7f3eddfcdcccb9944898ecc0d0549dca25d64f8e1dff3cf63a2f29b3873019a46fa06cb5b4acc7edbd514ba40ff86511cbaad9b0495311794ab856d0a48b36b60222e9bf13d9b5e3f7f31876ce8ec353abb9eb5d6f149bc49f97b0642597e3ab52a4603c17bd16ab246a3b552d37d01fb6fb489605b87f6c0627ad4cbc1326229fa8296eb952b02658b892ea98ab50f0065e1f22843b3ab9faa77ce643e51925c64b078e92457924ee187f85b7dd18ab9658bbbec3026b036cf90349297f645e9e5d0be3a67e785f37ec99d2fb5132e274265105645cb14601946fb4836a27d73f7318d7e7002f8e5e4027f81258e4eb9fa3f0dbbd240552fc36b6b71e35a82133fba7b950a141a4c3600cd3b81359ae71ab619300184f8f72e45b1194593ec90a69506d5f77c0d04e6f0999bcaafcfc07ad6cc2c062ebff65a39bff13bb6ed4de115a17fc63d5cf8dbf5b34154388368bf2156e949a94676d762d6a316f98b2089023061abbaa5a78ef16828f23d342ad72f759b80a1e72d6f27397a810a2d601f0a819406e664a9f273a819a2acc2089227a7411bd3f8a365a212170ce5b216eb413669c2722f8246e3441e127920e60fcb2ef620d4c6cf265134b346865a7a19a71ff1aa2645d026186b2c0a0ed7abaef81b6059d5a64c27b7551262b1ed9b50e3e11d33e2ecaf95afc9c24d1af0f76c7fd0bc28e9362bf282d306d5ade0ea8bff375cd4570d4275032d0e85e4a5ea7a3900e0ae96520582a8721906979e82c5dcebe011560158c0ed1ddd752faa2832c18051d0e69af2a538205f594007f8a1bb9a1a6d80109be1fd02a39e8f49ed0d617c35bd698586c608c1a92f236080e327c13ca7915dd9cf13219c4345f807acc2b446146f0e07a14d0e3f2a1b17de345186dd289a0c805789120d0dff4865af526c9e6da3101a89d84fb004b214ef394c84ebb8519ffd2e3d9eabccf5d6547b2b3a0cd00da9b902cfab2dbbe7ae0d0054546313a3fc9ccf2b0e0f2d2dbe345a27a9e2c3054daf2ea1b81984799c59f60e8ccfe6ea0f3d655f20ddef99e7ce422949f0b18542e50e5f6d1693ccf48035a4201ebf8e59137c58315e9ccf67c29b0de8aef6f337f236783582241d016c6d096b93ff1b14d7b79f65de9b4763c12c1968d8d5bdbde7e852a43993588e47a7f5473174ab50a659e40e9d46d48bb99da473d2e5496c151f6bb35d7ea542a6e82c0af0f62495338d183cac792ce484c19e3da7622469e12b4b6537f98ba42c3056a8d09cc247dbec77421cb5bb49ba7f9b4e4d71d52052195c77243fe1835763df0f2ad59ef459c989c753d0997f66cb56acff0c9a773ac90eb5bf658c479e6e826b779d639764a097837cb3f868a41f309bce7542e304657beb8ac0c6d1e24aee1bf7e0b843baeb46317187152ca7983de27bd4545665dabafc1d839eec88510ea18d2a3f6c5b9212e97f9a57be3ba111ebed29b4fb074fa1ee68e724b2e57d06b959bb53ed6cd374671f41f3d36b5dd0f554be2d16a5641f8eeb87b39fa6d7d60c33cccca24fd83d6302149cfefa120479dd414b6a74000420195094f1e0379a24f3dec29e1c2d85abef73bbdf4a5b03c6ee245150c1a011cea5f627a67f20d107e2d2ef288e2383214eb776c56ee77baad9ab3639d04c879cd08cdfa7b1a896e96b118e03f8c458cb9b5dea066bab2d4c4003ef0de122783944337b119d54e1bed39ff3408a8ca705db4a6fc29af17e435a9f93744dfdc58297bcaa12baff9da292626c65574596b3d0a304a884f6496355f6b923a2703d1b84837fffa8bcb4ebac213d2ef746a77d64178b6e5f7bcf9e1e1f1dda66b7faf84582cf1ef7acb4c0902926213cf294428fced4b03a6ef7de43627a8f6c17ea2884568edfca8876c71489f2e4782bc4c751b617c4b966c9569df6cbef999ae5a748d01ded8cc7700e99ee3887c53c2b8a36c46e7af780d7a18b1e22ce8b45fbd135ba8fb7765e11406c4e344924e905d08fabf7f40d0d6e218f9069172718c6a3e92e8622fa040b9afc14e67ac12f642c2379083186d7aabd95db25972dd28b6fd4d396337f3e47c68fd8925e75be7599f58701fffba74caf63d654b547f95852b9c29f4a1a525f82c1301117b77b3f4be94e0a2fecde0ff7adf31e71731d3ef1c3c00c52580e5e2e249249932d54d9aec19a13c1e1e2b0012feca0d27c82a4452bc8554be4b57bf9a7693ffeca560515f21fc00aa35c96e5f80ffc13430c9625601685f4785852f811beb64f40a162483d9b72a2281a68a063a5f13ab8ed5b356d415a8cb5c375f203f838ea64bdc8d75adaf8a773b800d4930db5ac2ba65797dcaf0b1e4369bff3ecaedeca890c7c97ce2fc4e89c08e1d7fedb78f6e516067164332ac641f34a1a4dc492fe3d5cbbb4b7e78f0ff5dd3a14e577aede8e0b6bc273897c68b6617efe9c7965bce8f41dbd43ef58ff2ebea5cfd1c332ab491350a5e6cd14b1f883b47231eaafce3476ed5f9097f3f4b8100a56f11aeeb8abe7dd87e0e4296e4309796748cfcdf2eb42c6743f055d6163c6aa52d0b5b212fd3184cb01b58dd28e95a729cd98bd87c4255dc929a7ffa6a1b67318f65170fb4b2bf969cd3e8e9eb2f1c15b76bf74df5e5c32d1e8aa1d39da8ca9d44a61c4ece4552f46f98915bf2e517126c484489b26f372698650d7b34492f01f777e939b6ba8f1a744acd76b91471ae5fb6b0dc98e680898567347d21cbae2ff83587ec9cccb4d82c4a445f7b9782e887dc28aaa49871ae09fb1061ac2d76a3044f7f1e09da71e069b3558bd1bd24b43867b3970b5a9844f05622702e840389b5370a1cd6882089bbae711e9bd4035a10ac6362aed152f681758054a51c70930a25a0be184c6975af0e2d0e00a154732e3b8027aff2b972dc38000871bb523b40c8868ad7884665f30c894264f2a25f3df746869cf646cbb97bec08fc6a674f800afce5e0ed169fdb53736979caa69d9c1fab63449ee59a64501cd1d073aa18bd248aded80c89aa8b5649cd01c7d12b968e80c9e106dfc263add9e2724200a59b5158cbd20832f4c18829b8c13c9910f4d35cf0d63f8f3288bc49f8353a0873bc640e8cac344a61eada4e07179b86f6f771f0717bf17e09952c82dc639c273f938ada0f1a9296eb895c2b43b1a7cd299294a32c42a68c9bd941cf121566a2394a86bf8396ed963a17fa17e1f7d24d98bb199547ca56cc4d8f1280b88afc60cca67c79af2568d2a43278e4092961b7d234f248bba492b42bb8bbfd2082eb756273e980270a8bac539e82c9937866e9c61dad4a402a16f0bbce8efa59026e7bb3c449426f188cf9fcb9505d6e5e4514e531827dd4b74694235c8d610522d8c11a89dab9faa63a1b5707e37c098b69a99a33647e95954c3b9b71acdb7026beb18d39f12182ae5536f934173d7adfb3544e96394b5bf8e8fe7260e9056028cbbb070f8dd6bb393679b08fc4af6fe3a5e7447634255034255f98406ef64699c22862a076640a8d3b3d51c6360ccd24bd03e6b5e10d068cb96ff4eacc21b5d222993c786d18fa5f5b5ede195bdbf2c7953f82c5b7ce798273e44d62f956a8ffed69d82858f5e4854177e19dc24039dba089af4ffa2768007724805a56d25f551cac711d18be1e59a1d4801918a46345ea5d09c4544c6f9273f72d04b8ea11c88e3c55f245d3859513f7c376e8aeb5c343c9c99fc21a1c59862ff6cc507c9c1bb9125f2c2d73894540c0b47eeb3cf601ad0dd4d9cee48ecc0ae6a358ca57ffd7e69ea4eabcb89db9e6d3f05e010c28ca3154b9834508172a0c701d22353501ab462bdf6e9238385246fe7877d54606bc47a4973e6234df4ba871102002c5897ad15bfcb894a0b468a9c3e75e933170eae1b51b9966298ce9f50b856eb1c844dac4e7a9a5e4c2bd6b011c88afc9c0955c2c052edd22abb331e8228c056f25f02ddabb8793a9b546592ec38ac03ca9201737d8d306efc2b874e316602cd27ed4e252c9e8b05b59bd54e8814b481bb355bfc71c78b13607047bbff593c5e810a2436fd5996ff3cde0b4d27e48825cdc7b1ed82519657238d1406346b99dcd787d7adb7eaf1182562deafb32889cd13737129ff993c6e70a21faeeee1599e8a618627fdca7e2274bcafec36950b23029e8ce3829934e6aa1055967906adf059929d3fa31bf7ad5f4851ff80f3f0de0df3384396f49ed547944543a47a8895a413bf093d3ec3ab8c36609d6ab5631a8953bb686ec6e7b0f95c2ddbf303a0cd61174ca8787456ea3d34d3623bdccb99fe6ba3ab8806c6097127198f5b8258f405c1c66faf455f929b442bd29e1e82c0c225a47801999bbb46276b34e5300eeadeab54dbe05dee39e1594f802f918d3dedbc32969e33b5a01d592051a2e5ec43e24b6733abe8c4f31862cbe380fcc396bf3645c5c8e82593fddc4fe9c58e587ae66db02c693076617beba3aeb4063bee204202d9346122377da66096961bf1b81e76a54b7056350108465d01b7740a1e52f530ffb3e9f4356548a2bf7a66e60b38b436c9a41745c285796e70c0c1aed1c25b7753d4e2d792d077e6b435b1e3812e9f2bc377eaeaff448128891d512577f7c3e9751d205be54f7c6898b261f17f38b8c20c2e87edd407ce11db10bb080a55a773b651aefc68259e5aad53d39a61a983b468c68dea79c1f0f984553f51ae34aa94964990075915a90c069775d1e3ada1a66b2bcd8a1c7a27072b0d6826a3efd7e07167e05278717bdaf22e77d7825cac87d0487010778436e13d219eb0ad29ea5f39df8a6c9faa8fdf35f6fa0a90d45c0e1ab60a9fb81580d552c995ac9d7c0ac78eebf9e8ad46320018d40705ee029701471a261ec85761c9fe2c34cc126a300b1c86b0e0fc5d2ef96f20cff209fa34635f8f67e1dfb6f97eea1a5e96e7ab0d8dbbd5c887fcb69c61b90cda70048152c6abc9091c1ec7d93cab0763e31e387799d77da8ad005a53b2f9879592a0bb53904f9f2959e0e112249c42e420a734420d5e0579068814e47e3edfe47391321475a1e496818419faae6cc07553df5334c54614e64fce93884a469511bd1294d609d095ca255bfb348ed5eafa8eda9aca12317f90eb42d4ee82a2a2e49f002d7da84ad5df1c5da7e8e6ac3325f93faa9da170403335c8c7e8a81bc5f4ba9da67ecee4da7e52f0ae5caa238a9c47646e93851249315bc9b09e3a31a9244260b5fac3fc8375bc57e5e7597bc1b69e4821044f80574aeb39d64ac77310e187b13f39588f696b6f41bf3d1dd521419a008d247f05dfdbbea806131e9839461559c51ec97da24c8cb09b2ab10a8817a86f763017ee04f042283c31a7024f9ff3d35881fb6971034146ab53d0554df678472e6db664e6a4cd643a47190912eba20872496da7f4d312e2c9ac48557094ae9312471938188df3897c9df254b77eb0cbff8bd489edbc27a4e39690c18c058c0c5ab210ee211ebd2fcb34824b1d549c5f2aad851b4d5c1ec06cd0077541df226b1e130ea2bbdbbc63fe82e7c129804fa4df40f9657cef7a79d81c709fb7eabe049228b373987019423ae6fba9574b75b5e8de48722304541881536c5aadad8337e39249edf90bb8e4169bf07c5b23509a0471ed6507e19ada0453a3ac7e3559a65ae5ab6cc1fb81dbd4f38752b61fc8af38ac1c5fb46d2ed707c75304c9b60b1fd0c79f96df7d5fcd49215e9587485f3ba0eae1549381f6a5a60acb9722e4559efed70ac54cb6b1692f270a62249d9a9ed296d8088d23da3ed8a990868b924c1c6a48c89c15bdae2592ffb51f8eea22a9811f44528f05748f5bc6c0add2175e1132db8216597db783b51acdecfb89d785ca8f4a635e5c159ef5a5166f95b4c6c08c17531f5fcbf3f0d616f1dd75dfe36a44ae625e0c25008fdc3bc7166f9707234fc9233de2c592f062cb734f80e5b52f318ed56bd9d5f347a502d24b73ba40b175c56c8d993d4966bcc1ac38ce47145e7c8050b8275923773ccef650487f00ce08fb92b5aacf1020535f39c5d4a8f2dcd0bea8a5d455fbce8a2fdfcb1bd82e53d8992d56efa2b7ad8a7dc1caad28940583108af805c7ffa18544739d2b1183b01a71ca9d0fe3af02759c48f96b610facb5d76ecf74fe13b377eaf191ca3c1ecc12fa1c0199483e3345ef2d74c8c3e3515e618701ef1d3e707c793b9ea6831198498deb48f11d6114bb63631b8b1dc881cca6949f23f9cdbcddb3a6d99224ebdc9fa8ab20e75f8de8fd9580026149614af2625a7644b4b17c082960c6377c414a25064e6f21cc8af8b096d352963185d85c0284f0f204fffce6720703daf338df0b7bf19f574d7954e8568870c644030e0ab3611c362a0520c82a2f1cfcc4e7fc20b1816f4d65357cc56347d030095e9506caa3baf985d913743d7f6f07f29ccf6f819b5fb39e92f73cb1ad733214011eb90627ddbaf51e0e328eb28c9523247f69fd48966a4a7294ff3dd4b3ce6324d231099203e95dce83ae825c2a4af5674a628b3f29198023bc5107daf3f01a3a5fc2cebff94706906fc64d10902407a4ffff5d12594e4ecd072284177422ed3b047b6e3d550f712f29b731c0230a0434056d9bf63ecfe75c3523722f28bb0fda8d13fd5f814e83dfc0ef8a72719c26866a8155f8cd4159059fbe1dcf5f597df49c438060021a38447bcf380da2e943983252a7928a50f44d14bd86a8b3ef57dd8ab6f3a565e4644ec6c2dbc0c1ca7a6a5c8ae1f6f2d024f722b9c595fc9e1e5b08a78ab39eacbee867034259cfb908a5b589368703c2d69f33a4196df25988f6d117f5ff828e543267f2a3786109e1750050581408d00131b57dac715328fa6a6c2c350028a2ee6c4c6bdbbb76fe2221bcf568968d179ed7bd23f2952746264c2892d25a613bad2ad725461bec71aa0c6d52381624ff8c9a007b2737074b7bf6fdea37a8083d10b1ae583e14393183394d934b51104ca73ee5a4dab7a3b62a8932e3f7525701792d3b07df103c3a6b4edf0a76123cf1fdb5f481765b6e69865990ec0ca0a61d3856e701b70de195a33fd0560068ffdcbe30caf901f8c34622e77030f1360b9da68cdd716607b4b63367c67b8b11f3f4a91c040772f6a108652ddddca1a87fe1042da01a4197bf6e6d19f0b905f2b5e321a02269dc0e8a7f8c5a18b264f6ddd744b8c902ec1a4234d0e48db90b19edc5a24c2e7213306c43c5b9c317fb1827b661103fcdb707d5e450624ff40481829f338cb71884313367c3deea1452dabdcd5fb8ffd6852782ecd3d0992f3173ae7aebb858f248a07e6184c7a3d6a8c515e7ae8b13e75613fbcb4f19d228fc6999dbe8f04a47b4caa4e3cf513186c71a525e79726b0d90e5a584c11bc3945899182c547fc96029ae479b9e19513f6cd0efa4923ed139adf71cd1fd7313daeaa5093837e99035adf48d51247e7a88bc2a015cfc7845fe67608125408d63ca0a44143dafcb5b4a44ab0d96d5ed33cf3852b67f793e1eedb97fb5d114bcd25a2fa395777c7798a4dff9a6795c64f08229914142d0168aacba2b355a9573dc691acd9347b5340305c3e9551a9a2f617b7f20bcd9fee2a4ca60affc29700d4c73989d8608a1507454c2e9ac983ee5b19797c42a6bce2cf188846167507a65384d0c372210726f42e1a0e388af207e8006e7b4459c6da2602899787cad0a2ca7f64357609bc9cddce7d15a331307d574443e5f8589c95239c47e0b33e3e8357ee2b2a889653b01bbd73ed5959329dea04a26533afb265d32c5a5f8866334b40870967e02bac87657bead87d9dc03b9bf6203f8c2634a77d3247c3ae42340596956a05e7e6a5d2f7c939a908c3afb7599983e3c97e52a3ea0e7714e8497a265de1ad74edfe26057979daaae5f7bad776ed16c9cc76b684795a55af0d280e0f315243d727b226f3b22174ff23e89dcb3bec123f2576cbc9afa4258d4e95185f88d2f880a5fcd72d50b678bdeb13ee0c6457342dd6ac21a5f96213b9c6a50656a5b0ea3cf1a93cca7b5516158aee6a75cde1f28804e5b4b5194b628d51f2a893580062ff2712c34f2d7049f6d498495ed283a46087afdba10509741b179d39d8bd0022b22b3ebce426ac00a4f378aa13b99028e342a815b03e2a9cc6ddf6757c152317f62cbb9a60e0a29bece582b13354bacc0b62b79cb64b67ede534e20ccc1561c690f7b5f88b5f25ee643f3cdf7d04e200dfea65707076847d5d763fc38d75861e8595de0fb9db056e7262f17f11d97b26bcc05efd5d274ba5796dbd444ad217084d613578b047ba9dc93cad0e3ef1754578b09b8e90ed84ae5ecf04a539c0b9b2a069f6a7e175c54521f92b183e9d581addc22cee747434d9e5938ea25fb0ee33a3c35d064e8430fb3d40649210a88c78f64857ab963feb44766ec941959b96e381636498d4853604e8f3144720cdb248ee3e5da7acafd9aa6f77bcc3c2e1a405a9a3f442bf2e0c1ba8783ccf7544cd52623284853b6332c1b932fbb061b19cc45bd48b6fa0e95c6d26933db4b1994340f0e885978e31efe67ce9069bd0a5b01bcbdfde63bdf6f7d5259d43c8aad994259c0ef4434eb39207603ec953476e230d8f677a4a8bfc1c1ac5c2519438969832e7c28975037f273dc402faefc60728cbc295d9ef5758865799650e6d74ce9c70e528f8706c02655f6f23918bdd135e05da3db50a88379cc0f759990a5fdab0414d4f3aefc722b9897c02c45b097373e3de4517e38ed3b4e833ab53a1a99013d79939a0f44e5c36324677446a856fd815293cb166f274998733195d2bac3c66ff5ace3b87ff2e7046f1f8c1357e12f931c19bb7d4286cf18ce92a8139e05951ec6b810c267cfa38d5fe1a7901c3a4e7984d13a34201e3ca3aae13e7f959998bcd281ac03bceef9a3eaafeb9766730241511a6b8b30538f39e05958dddcd35052b1e3763a997ec6ffaa0e31dc60c90b35f01b544bb64f9f6e21de9478b824ee92d0bd3478b68c0239d17d9c7f2d60d9c03c31c204900a0c9978318ea63d634753920a4ab8d24a952052d0b512dbbdc89ff17d89fcedd9fe93b70b81ac241f7777942c62129983be41aaff02a67dc38d44a027946cb4a09acca2bee7ece4cc8f6c5dcb5632fb8569a25cdbc4ebca945fe71ea33fe54fa9d573f747447bef79e509498d87c3c055707c4979b3b7c85660270c98d9e35ec645a15b6754567d3d7f6154ea4f5c94c06a2233d0349f8a2362de9462c91b7d91c4398b74814a7baea304aee5483089ba28d2c0744d41acd183426305f8f82a2c326868608758ab047359c09a412890d73c460dd6858a1db9e3faf768dfe34950e4ded3b724bf68f7d1d38d51f1baebdc0786410397743c41d5653ea7267dcd0c7753277e7657ced831040487884e9bde45e4ca5e079049ed50a0002abd686f076664771927e24fe1a4e924900c9ce1f0e14e1f73d8d03ea407b28dd66c858d13f636713d8f5a513094b176ecd675605b55912b8e2636c287af7b04b1721e81dcfb6355be07358a2676d9855acd578296bd1d79cf57098c88b2cfbe4d51d6a2429953fe291f2df47e1bf304299fa45b688a90f96b86654aefda5527712a61df20af1dbab947b9a1b5739a08e55811b33d2354a9a649015935fb4f803cea64f2a17ed8c93010622bdc0f115b16a86d781e250e82d24956c1f223e6711a0f492660a00d9daf14895bacc0472f016972641d5991c7600f15d995e23867ad4dd85caf05874c791e0bc1bf3c846d4e7e7e57e72f5a3021e301a844a3877b819ad947b773b90fe5b4961e93d095e8f8d27192b83b1ed3c44434180b9e7c3bf42444ea7729f9f322afe5030370e7e4aece6479b9e2d35b22ac2e74fb8b310e44e6bffde04cf5034cb131f791930304c665a9e8e78e562dea33ed76a92a26f555f7c0b9a47de5e6ab0e4b1c98b3a02b677a4b3d8e710f0d4bab77e6c5f69fefda98f8dd528115665c9a2f1065e07efca8fc8b63a0f75b6a85291f6a72c6bb3dcd86b583d21ab4345cbf99fce091b51a29b27e648e4891350b298d55bc1702a215f254238e088c6a403c4e23f841c9bb89c4c0da1d11b6cc86b05c555319a9f7a07aa8effb720cf9bdd4600d00a6df16181368556d8b8ee73493f247da592249c7930e4d57187931d7d2d5f07bb3693ba3d6aa5280957d4143161a67ec33fd4d0593cdc9dc32f3e5ee6b5c847beadac95634e9cbc5f6e1f8d4ea2e705fabd6ff62d0334b134389c7ddc55e7f1b6d5c8c14f3329ad628c830b645da09c64da9aee05123c08e544e926e586d6a0fdb1db640fe55cffb533493ad7a6db0a7fabcb600fd2e8ccefe8f003e46b5c0a8479c25612fa67cb02c3c7f9bdff8dd0f431456417086277e59ccf6e17e3689f25af411763ec788da5931a6a353c391dbf9e5b424ee207bdb340c8e12f000093d728f9bc89435071f932f4ed6cfd6be4c04ffab2abf04d591f4d50a047464f11a1d45a66ab5fff03ba9aa420b549c8af93c9d644fa046bede5859e9b1094730343bcb0b6a746afadb7da2385564524593c5f7553e411fff5e7a2275197892130b932befd6ce93efa05cd54d89725daf953f8149c14638ca2c722d27ceed520e54c8f99c49bcf38a4a530612b3ffb212f03c663d6557a1ded59167cae527b9c1d1553f964cd15d419a1ae347f1e3dd584253079213eba2aa831acab377ecee5b9b375f1fc0b0e5f5a654aa328da6c9011d343c290a9426902bca6e0383d82d383af5560d325ea3004629a54ec995463834cffc3b5126907eb671610dd293d44e1ace89861fb223d2d53246ddef4926d1a7fe6937da3a6230420c7308c219906f6931c0d69544c7cca1b9d351a98725fc262c66cb23bbd3d429ebdd5b6a5fd5219176b636c6980964b003a6097b7ae8451f57e39a7be48f7312ed3eb48a8fab25f053707f12782da6e65d1fa90766f15b70a7ea5c08fc0f5aa7340a6c01a498022f4b0201ae2c630c4809d0908caa84d4c352a0997f63c7d91f23dcf5adc4382cc9c176e481fb28a6afefafb74032f622e0999cf90b55f258d8002e07296a1c6a256073b6fe238f767def689b628466d2505dacf87911c7e3825fbe2ac69d780d405269e6f5fc5c2f846e83639401764208b8f08a3708cf897bddf5e1b69c856fc90fa3585f0af64e76aa526cd8124b224d56cebd44918755e60d522e7ad8a9d382ea3eb45565456eb8fbf5b0a83e279eaf44c8e049bf882df4b5becfccbf777803a09072585e45c094a1c232aa472bb6ba68f9f20188857cceb248e8d39ea3c9df8e8449ffc90d4ae9032e3ae7a5246505e3f19912d8049bfe1879752e1d65b57fffa7bfdd1c11315b239a2e61e25499161abd5ee57031f85b7c7d1cef11cd0737834317aa39f851c4dadb5490814a77d6ca9b679ff3006730e6d3b90a0104e88b501affa0a2aa455e8b9a7b3f9fcec36a9483fbfee62585f13937e4311a41c7046870190729e142918a8795117a31a24ce39ee8b56ff29b57e855dfdff349cdac526755213fec612d5c1be375cc8ca438c584f5247004594dca4158cb47bdf9c33c3f4cb7b7e1e4724a9b9f652f803fe7c9bd88be7af7e439e1dc16511254cf7d384c1cde027a59608fcd2c5601d4870c062baa999d9ae784c9e1d0ee9416652a530e6ebb84823900ab753fc7aae39e7f5ee9f9cd21b9c4b90ae27586b638341aab81a34483a851de3467ba092ad4af025f7fa063fee54da81c62f55af248d64327f79a62ee66707404f37948de3f37a3bce99e35486eaf8b60f2e89d35253653f1f00fd1b5955648ad6190b8f2532b1a5aabab2a427ef4fa86f87d06b3eb59d6f048ff1a7d8784adabc7d4ca54b0aefb5f04785d2a4e9f249b8f005b6720327f8e099ce722824d6c79ac8d6a464a36072a235942146d38fcb0e8b0c5dfca31c2ec4370b166fa27d8b04ef0fc8adfccd6bb0931bdfb49727b9211b4ebe4964cc3db23dd1279ff702509edf8d0d9189c7ee77381b426d4aa3fe5d93304d1c65d917f24f0abb4865bba761be3dceadc709303495168e05e355f2befab32e7d0832797815586c4d6e037741f937b678cb743500e45e99b6b677c4b1c0f9f8086ea73ebbaeb6fea3fe3b470bebcb46a17fda7650ad3e3c3e4959d1fb6e779452b092caf27eb167617d4fde319190a0fd7c26cf93ec02885acb215eb52a023d2d965b40ab3765e169931eef4fc7eecb475ea4d65cd594d295985ea73329f8bb94f4bf9feed5599a962b9342118a076bf9815bebeade6af8486f8b3681e1b09c97121d281bf86b7918982a319b0202b6591ead634eca1d2b18b3c6ef8cd2e13394d72001d383a5c8465dc3f7aabd9420f7c3485d61b3b36090a7b0d4c8f6e5eee400c8bcc4fe2c8d3aef6ff70f6cb25edaf71f696e41ffb867f6852a47de71966d4a369487572fa6aed2e5913fec5dd3cb2b15a5d9490ee9837e012a8c80e232a891a4920a76b8e23fbfe9098ff59248408caaa629feaeaf7272c0df525c3e0cc0c3c351a9b3014dcfe6092d322de341ad2cdf3d51721261455450dae243025d24066edbbaf1ab8db013631ee3b286aa2f454a82ea451901961ca24ee0b4e7253755a43dd3f5f13a00a86946ac4d9dde56cbf8f5c1d009d3c5c9955196bae145885c8f9fe410afde291c7505f12574737087cbc680a5ca3b31a6b9b88b906fc7403489f5b2d5470912637c066f354b37f046996eb61abef633348580bbad4490a1238f5fb4586500eb1ad4530d0250bb887201bcf1fa83593b6491ece11ac0f2207bef35b1a3d432f6443a5ea6ceea97aaa5f7d7c2b938853fcece4347d87a4740259a391fe9c9369f2b8793485e857f8bac4abd5af9e21eb2cac4b9294f2998c85f3188e1ec4c67a6fdb78c4039cab890781b286f28b961d5e20f04e5d23a3fb16cb0bf7d8469dc8e341eb8ccac992503c902478c835418c3220571ab08ca14b5459f04a3ca66bbe754a9fb54e04c684d4910336778d9b61df07aa9e6f04039aed6448238022d759dec54bcb74cff43ef7cd0fc28edad25074c986013fb55340f68a3e9934fac3db30ec89a559120e576eca3359b392e3bb8390f2e2723665fa2d416ff2b0250ae36e8ed7a810e29ee39620002d195ce6b5d419673525002ece99d1f29ab0c750cdcb91ffda0e93f2fef4a74d3dbe1270e9bb7b435b6fc03a1bff59a9386d84aa6a5e7c9e6d8445da5e78465e99fb91b4f872932cc2efeab7fbdd1e26e4c4ea96959d57330697df6185ebc579227f3148abb08b3f543c90d7c6166bbb67377ecfb8c5d309dd21080f878270f66f209ba44e2a943688e3fbf5993666f4d03f7d88caca066d53899e3ecd5d07534c9844b9913ba55393726a6adb7caf0c1ab3756675e8ce49d8b091793295639aefdb5bc4c31a1fa98cf27ed48e1e4ffc50f1c278b932fa2df3940621e99fbb457aa8ae5c7dee9373b068ed90f2dae8c07e66756f7e565bbb5c4d2de102432d1f8db74cfa50f60e75939db8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootsnapd-2.65.1-0.fc39.src.rpmgolang(github.com/snapcore/snapd/advisor)golang(github.com/snapcore/snapd/arch)golang(github.com/snapcore/snapd/asserts)golang(github.com/snapcore/snapd/asserts/assertstest)golang(github.com/snapcore/snapd/asserts/internal)golang(github.com/snapcore/snapd/asserts/signtool)golang(github.com/snapcore/snapd/asserts/snapasserts)golang(github.com/snapcore/snapd/asserts/sysdb)golang(github.com/snapcore/snapd/asserts/systestkeys)golang(github.com/snapcore/snapd/boot)golang(github.com/snapcore/snapd/boot/boottest)golang(github.com/snapcore/snapd/bootloader)golang(github.com/snapcore/snapd/bootloader/androidbootenv)golang(github.com/snapcore/snapd/bootloader/assets)golang(github.com/snapcore/snapd/bootloader/assets/genasset)golang(github.com/snapcore/snapd/bootloader/bootloadertest)golang(github.com/snapcore/snapd/bootloader/efi)golang(github.com/snapcore/snapd/bootloader/grubenv)golang(github.com/snapcore/snapd/bootloader/lkenv)golang(github.com/snapcore/snapd/bootloader/ubootenv)golang(github.com/snapcore/snapd/client)golang(github.com/snapcore/snapd/client/clientutil)golang(github.com/snapcore/snapd/cmd/snap)golang(github.com/snapcore/snapd/cmd/snap-bootstrap)golang(github.com/snapcore/snapd/cmd/snap-bootstrap/triggerwatch)golang(github.com/snapcore/snapd/cmd/snap-exec)golang(github.com/snapcore/snapd/cmd/snap-failure)golang(github.com/snapcore/snapd/cmd/snap-preseed)golang(github.com/snapcore/snapd/cmd/snap-recovery-chooser)golang(github.com/snapcore/snapd/cmd/snap-repair)golang(github.com/snapcore/snapd/cmd/snap-seccomp)golang(github.com/snapcore/snapd/cmd/snap-seccomp/syscalls)golang(github.com/snapcore/snapd/cmd/snap-update-ns)golang(github.com/snapcore/snapd/cmd/snapctl)golang(github.com/snapcore/snapd/cmd/snapd)golang(github.com/snapcore/snapd/cmd/snaplock)golang(github.com/snapcore/snapd/cmd/snaplock/runinhibit)golang(github.com/snapcore/snapd/daemon)golang(github.com/snapcore/snapd/dbusutil)golang(github.com/snapcore/snapd/dbusutil/dbustest)golang(github.com/snapcore/snapd/desktop/notification)golang(github.com/snapcore/snapd/desktop/notification/notificationtest)golang(github.com/snapcore/snapd/dirs)golang(github.com/snapcore/snapd/docs)golang(github.com/snapcore/snapd/features)golang(github.com/snapcore/snapd/gadget)golang(github.com/snapcore/snapd/gadget/edition)golang(github.com/snapcore/snapd/gadget/install)golang(github.com/snapcore/snapd/gadget/internal)golang(github.com/snapcore/snapd/gadget/quantity)golang(github.com/snapcore/snapd/httputil)golang(github.com/snapcore/snapd/i18n)golang(github.com/snapcore/snapd/i18n/xgettext-go)golang(github.com/snapcore/snapd/image)golang(github.com/snapcore/snapd/interfaces)golang(github.com/snapcore/snapd/interfaces/apparmor)golang(github.com/snapcore/snapd/interfaces/backends)golang(github.com/snapcore/snapd/interfaces/builtin)golang(github.com/snapcore/snapd/interfaces/dbus)golang(github.com/snapcore/snapd/interfaces/hotplug)golang(github.com/snapcore/snapd/interfaces/ifacetest)golang(github.com/snapcore/snapd/interfaces/kmod)golang(github.com/snapcore/snapd/interfaces/mount)golang(github.com/snapcore/snapd/interfaces/policy)golang(github.com/snapcore/snapd/interfaces/seccomp)golang(github.com/snapcore/snapd/interfaces/systemd)golang(github.com/snapcore/snapd/interfaces/udev)golang(github.com/snapcore/snapd/interfaces/utils)golang(github.com/snapcore/snapd/jsonutil)golang(github.com/snapcore/snapd/jsonutil/safejson)golang(github.com/snapcore/snapd/kernel)golang(github.com/snapcore/snapd/logger)golang(github.com/snapcore/snapd/metautil)golang(github.com/snapcore/snapd/netutil)golang(github.com/snapcore/snapd/osutil)golang(github.com/snapcore/snapd/osutil/disks)golang(github.com/snapcore/snapd/osutil/mount)golang(github.com/snapcore/snapd/osutil/squashfs)golang(github.com/snapcore/snapd/osutil/strace)golang(github.com/snapcore/snapd/osutil/sys)golang(github.com/snapcore/snapd/osutil/udev/crawler)golang(github.com/snapcore/snapd/osutil/udev/netlink)golang(github.com/snapcore/snapd/overlord)golang(github.com/snapcore/snapd/overlord/assertstate)golang(github.com/snapcore/snapd/overlord/assertstate/assertstatetest)golang(github.com/snapcore/snapd/overlord/auth)golang(github.com/snapcore/snapd/overlord/cmdstate)golang(github.com/snapcore/snapd/overlord/configstate)golang(github.com/snapcore/snapd/overlord/configstate/config)golang(github.com/snapcore/snapd/overlord/configstate/configcore)golang(github.com/snapcore/snapd/overlord/configstate/proxyconf)golang(github.com/snapcore/snapd/overlord/configstate/settings)golang(github.com/snapcore/snapd/overlord/devicestate)golang(github.com/snapcore/snapd/overlord/devicestate/devicestatetest)golang(github.com/snapcore/snapd/overlord/devicestate/fde)golang(github.com/snapcore/snapd/overlord/devicestate/internal)golang(github.com/snapcore/snapd/overlord/healthstate)golang(github.com/snapcore/snapd/overlord/hookstate)golang(github.com/snapcore/snapd/overlord/hookstate/ctlcmd)golang(github.com/snapcore/snapd/overlord/hookstate/hooktest)golang(github.com/snapcore/snapd/overlord/ifacestate)golang(github.com/snapcore/snapd/overlord/ifacestate/ifacerepo)golang(github.com/snapcore/snapd/overlord/ifacestate/udevmonitor)golang(github.com/snapcore/snapd/overlord/patch)golang(github.com/snapcore/snapd/overlord/servicestate)golang(github.com/snapcore/snapd/overlord/snapshotstate)golang(github.com/snapcore/snapd/overlord/snapshotstate/backend)golang(github.com/snapcore/snapd/overlord/snapstate)golang(github.com/snapcore/snapd/overlord/snapstate/backend)golang(github.com/snapcore/snapd/overlord/snapstate/policy)golang(github.com/snapcore/snapd/overlord/snapstate/snapstatetest)golang(github.com/snapcore/snapd/overlord/standby)golang(github.com/snapcore/snapd/overlord/state)golang(github.com/snapcore/snapd/overlord/storecontext)golang(github.com/snapcore/snapd/polkit)golang(github.com/snapcore/snapd/progress)golang(github.com/snapcore/snapd/progress/progresstest)golang(github.com/snapcore/snapd/randutil)golang(github.com/snapcore/snapd/release)golang(github.com/snapcore/snapd/sandbox)golang(github.com/snapcore/snapd/sandbox/apparmor)golang(github.com/snapcore/snapd/sandbox/cgroup)golang(github.com/snapcore/snapd/sandbox/seccomp)golang(github.com/snapcore/snapd/sandbox/selinux)golang(github.com/snapcore/snapd/sanity)golang(github.com/snapcore/snapd/secboot)golang(github.com/snapcore/snapd/seed)golang(github.com/snapcore/snapd/seed/internal)golang(github.com/snapcore/snapd/seed/seedtest)golang(github.com/snapcore/snapd/seed/seedwriter)golang(github.com/snapcore/snapd/snap)golang(github.com/snapcore/snapd/snap/channel)golang(github.com/snapcore/snapd/snap/internal)golang(github.com/snapcore/snapd/snap/naming)golang(github.com/snapcore/snapd/snap/pack)golang(github.com/snapcore/snapd/snap/snapdir)golang(github.com/snapcore/snapd/snap/snapenv)golang(github.com/snapcore/snapd/snap/snapfile)golang(github.com/snapcore/snapd/snap/snaptest)golang(github.com/snapcore/snapd/snap/squashfs)golang(github.com/snapcore/snapd/snapdenv)golang(github.com/snapcore/snapd/snapdtool)golang(github.com/snapcore/snapd/spdx)golang(github.com/snapcore/snapd/store)golang(github.com/snapcore/snapd/store/storetest)golang(github.com/snapcore/snapd/strutil)golang(github.com/snapcore/snapd/strutil/chrorder)golang(github.com/snapcore/snapd/strutil/quantity)golang(github.com/snapcore/snapd/strutil/shlex)golang(github.com/snapcore/snapd/sysconfig)golang(github.com/snapcore/snapd/systemd)golang(github.com/snapcore/snapd/testutil)golang(github.com/snapcore/snapd/timeout)golang(github.com/snapcore/snapd/timeutil)golang(github.com/snapcore/snapd/timings)golang(github.com/snapcore/snapd/usersession/agent)golang(github.com/snapcore/snapd/usersession/autostart)golang(github.com/snapcore/snapd/usersession/client)golang(github.com/snapcore/snapd/usersession/userd)golang(github.com/snapcore/snapd/usersession/userd/ui)golang(github.com/snapcore/snapd/usersession/xdgopenproxy)golang(github.com/snapcore/snapd/wrappers)golang(github.com/snapcore/snapd/x11)snapd-devel    golang(github.com/bmatcuk/doublestar/v4)golang(github.com/coreos/go-systemd/activation)golang(github.com/godbus/dbus)golang(github.com/godbus/dbus/introspect)golang(github.com/gorilla/mux)golang(github.com/jessevdk/go-flags)golang(github.com/juju/ratelimit)golang(github.com/kr/pretty)golang(github.com/kr/text)golang(github.com/mvo5/goconfigparser)golang(github.com/seccomp/libseccomp-golang)golang(github.com/snapcore/go-gettext)golang(go.etcd.io/bbolt)golang(golang.org/x/crypto/openpgp/armor)golang(golang.org/x/crypto/openpgp/packet)golang(golang.org/x/crypto/sha3)golang(golang.org/x/crypto/ssh/terminal)golang(golang.org/x/xerrors)golang(golang.org/x/xerrors/internal)golang(gopkg.in/check.v1)golang(gopkg.in/macaroon.v1)golang(gopkg.in/mgo.v2/bson)golang(gopkg.in/retry.v1)golang(gopkg.in/tomb.v2)golang(gopkg.in/yaml.v2)golang(gopkg.in/yaml.v3)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsZstd)3.0.4-14.6.0-14.0-15.4.18-14.19.1.1f@fyf@ffff(@e!@eZeN@eȶe@ee@e`@e)1@eG@dd@dd d@dqd^*@dRLd>@d"d c@c@ccvcc]c@cEcs@cMCc5c#c@Ernest Lotter Ernest Lotter Miroslav Suchý - 2.63-3Miroslav Suchý - 2.63-2Ernest Lotter Fedora Release Engineering - 2.63-1Ernest Lotter Ernest Lotter Ernest Lotter Ernest Lotter Maxwell G - 2.61.1-2Fedora Release Engineering - 2.61.1-1Zygmunt Krynicki - 2.61.1-1Zygmunt Krynicki - 2.58.3-3Ernest Lotter Philip Meulengracht Michael Vogt Michael Vogt Michael Vogt Fedora Release Engineering - 2.58.3-2Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Maciek Borzecki - 2.58.3-1Michael Vogt Michael Vogt Michael Vogt Fedora Release Engineering - 2.57.6-3Maciek Borzecki - 2.57.6-2Michael Vogt Maciek Borzecki - 2.57.6-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt - New upstream release 2.65.1 - Support building snapd using base Core22 (Snapcraft 8.x) - FIPS: support building FIPS complaint snapd variant that switches to FIPS mode when the system boots with FIPS enabled - AppArmor: update to latest 4.0.2 release - AppArmor: enable using ABI 4.0 from host parser - AppArmor: fix parser lookup - AppArmor: support AppArmor snippet priorities - AppArmor: allow reading cgroup memory.max file - AppArmor: allow using snap-exec coming from the snapd snap when starting a confined process with jailmode - AppArmor prompting (experimental): add checks for prompting support, include prompting status in system key, and restart snapd if prompting flag changes - AppArmor prompting (experimental): include prompt prefix in AppArmor rules if prompting is supported and enabled - AppArmor prompting (experimental): add common types, constraints, and mappings from AppArmor permissions to abstract permissions - AppArmor prompting (experimental): add path pattern parsing and matching - AppArmor prompting (experimental): add path pattern precedence based on specificity - AppArmor prompting (experimental): add packages to manage outstanding request prompts and rules - AppArmor prompting (experimental): add prompting API and notice types, which require snap-interfaces-requests-control interface - AppArmor prompting (experimental): feature flag can only be enabled if prompting is supported, handler service connected, and the service can be started - Registry views (experimental): rename from aspects to registries - Registry views (experimental): support reading registry views and setting/unsetting registry data using snapctl - Registry views (experimental): fetch and refresh registry assertions as needed - Registry views (experimental): restrict view paths from using a number as first character and view names to storage path style patterns - Snap components: support installing snaps and components from files at the same time (no REST API/CLI) - Snap components: support downloading components related assertions from the store - Snap components: support installing components from the store - Snap components: support removing components individually and during snap removal - Snap components: support kernel modules as components - Snap components: support for component install, pre-refresh and post-refresh hooks - Snap components: initial support for building systems that contain components - Refresh app awareness (experimental): add data field for /v2/changes REST API to allow associating each task with affected snaps - Refresh app awareness (experimental): use the app name from .desktop file in notifications - Refresh app awareness (experimental): give snap-refresh-observe interface access to /v2/snaps/{name} endpoint - Improve snap-confine compatibility with nvidia drivers - Allow re-exec when SNAP_REEXEC is set for unlisted distros to simplify testing - Allow mixing revision and channel on snap install - Generate GNU build ID for Go binaries - Add missing etelpmoc.sh for shell completion - Do not attempt to run snapd on classic when re-exec is disabled - Packaging/build maintenance for Debian sid, Fedora, Arch, openSuse - Add snap debug API command to enable running raw queries - Enable snap-confine snap mount directory detection - Replace global seccomp filter with deny rules in standard seccomp template - Remove support for Ubuntu Core Launcher (superseded by snap- confine) - Support creating pending serial bound users after serial assertion becomes available - Support disabling cloud-init using kernel command-line - In hybrid systems, apps can refresh without waiting for restarts required by essential snaps - Ship snap-debug-info.sh script used for system diagnostics - Improve error messages when attempting to run non-existent snap - Switch to -u UID:GID for strace-static - Support enabling snapd logging with snap set system debug.snapd.{log,log-level} - Add options system.coredump.enable and system.coredump.maxuse to support using systemd-coredump on Ubuntu Core - Provide documentation URL for 'snap interface ' - Fix snapd riscv64 build - Fix restarting activated services instead of their activator units (i.e. sockets, timers) - Fix potential unexpected auto-refresh of snap on managed schedule - Fix potential segfault by guarding against kernel command-line changes on classic system - Fix proxy entries in /etc/environment with missing newline that caused later manual entries to not be usable - Fix offline remodelling by ignoring prerequisites that will otherwise be downloaded from store - Fix devmode seccomp deny regression that caused spamming the log instead of actual denies - Fix snap lock leak during refresh - Fix not re-pinning validation sets that were already pinned when enforcing new validation sets - Fix handling of unexpected snapd runtime failure - Fix /v2/notices REST API skipping notices with duplicate timestamps - Fix comparing systemd versions that may contain pre-release suffixes - Fix udev potentially starting before snap-device-helper is made available - Fix race in snap seed metadata loading - Fix treating cloud-init exit status 2 as error - Fix to prevent sending refresh complete notification if snap snap- refresh-observe interface is connected - Fix to queue snapctl service commands if run from the default- configure hook to ensure they get up-to-date config values - Fix stop service failure when the service is not actually running anymore - Fix parsing /proc/PID/mounts with spaces - Add registry interface that provides snaps access to a particular registry view - Add snap-interfaces-requests-control interface to enable prompting client snaps - steam-support interface: remove all AppArmor and seccomp restrictions to improve user experience - opengl interface: improve compatibility with nvidia drivers - home interface: autoconnect home on Ubuntu Core Desktop - serial-port interface: support RPMsg tty - display-control interface: allow changing LVDS backlight power and brightness - power-control interface: support for battery charging thesholds, type/status and AC type/status - cpu-control interface: allow CPU C-state control - raw-usb interface: support RPi5 and Thinkpad x13s - custom-device interface: allow device file locking - lxd-support interface: allow LXD to self-manage its own cgroup - network-manager interface: support MPTCP sockets - network-control interface: allow plug/slot access to gnutls config and systemd resolved cache flushing via D-Bus - network-control interface: allow wpa_supplicant dbus api - gpio-control interface: support gpiochip* devices - polkit interface: fix "rw" mount option check - u2f-devices interface: enable additional security keys - desktop interface: enable kde theming support- New upstream release 2.65 - Support building snapd using base Core22 (Snapcraft 8.x) - FIPS: support building FIPS complaint snapd variant that switches to FIPS mode when the system boots with FIPS enabled - AppArmor: update to latest 4.0.2 release - AppArmor: enable using ABI 4.0 from host parser - AppArmor: fix parser lookup - AppArmor: support AppArmor snippet priorities - AppArmor: allow reading cgroup memory.max file - AppArmor: allow using snap-exec coming from the snapd snap when starting a confined process with jailmode - AppArmor prompting (experimental): add checks for prompting support, include prompting status in system key, and restart snapd if prompting flag changes - AppArmor prompting (experimental): include prompt prefix in AppArmor rules if prompting is supported and enabled - AppArmor prompting (experimental): add common types, constraints, and mappings from AppArmor permissions to abstract permissions - AppArmor prompting (experimental): add path pattern parsing and matching - AppArmor prompting (experimental): add path pattern precedence based on specificity - AppArmor prompting (experimental): add packages to manage outstanding request prompts and rules - AppArmor prompting (experimental): add prompting API and notice types, which require snap-interfaces-requests-control interface - AppArmor prompting (experimental): feature flag can only be enabled if prompting is supported, handler service connected, and the service can be started - Registry views (experimental): rename from aspects to registries - Registry views (experimental): support reading registry views and setting/unsetting registry data using snapctl - Registry views (experimental): fetch and refresh registry assertions as needed - Registry views (experimental): restrict view paths from using a number as first character and view names to storage path style patterns - Snap components: support installing snaps and components from files at the same time (no REST API/CLI) - Snap components: support downloading components related assertions from the store - Snap components: support installing components from the store - Snap components: support removing components individually and during snap removal - Snap components: support kernel modules as components - Snap components: support for component install, pre-refresh and post-refresh hooks - Snap components: initial support for building systems that contain components - Refresh app awareness (experimental): add data field for /v2/changes REST API to allow associating each task with affected snaps - Refresh app awareness (experimental): use the app name from .desktop file in notifications - Refresh app awareness (experimental): give snap-refresh-observe interface access to /v2/snaps/{name} endpoint - Improve snap-confine compatibility with nvidia drivers - Allow re-exec when SNAP_REEXEC is set for unlisted distros to simplify testing - Allow mixing revision and channel on snap install - Generate GNU build ID for Go binaries - Add missing etelpmoc.sh for shell completion - Do not attempt to run snapd on classic when re-exec is disabled - Packaging/build maintenance for Debian sid, Fedora, Arch, openSuse - Add snap debug API command to enable running raw queries - Enable snap-confine snap mount directory detection - Replace global seccomp filter with deny rules in standard seccomp template - Remove support for Ubuntu Core Launcher (superseded by snap- confine) - Support creating pending serial bound users after serial assertion becomes available - Support disabling cloud-init using kernel command-line - In hybrid systems, apps can refresh without waiting for restarts required by essential snaps - Ship snap-debug-info.sh script used for system diagnostics - Improve error messages when attempting to run non-existent snap - Switch to -u UID:GID for strace-static - Support enabling snapd logging with snap set system debug.snapd.{log,log-level} - Add options system.coredump.enable and system.coredump.maxuse to support using systemd-coredump on Ubuntu Core - Provide documentation URL for 'snap interface ' - Fix restarting activated services instead of their activator units (i.e. sockets, timers) - Fix potential unexpected auto-refresh of snap on managed schedule - Fix potential segfault by guarding against kernel command-line changes on classic system - Fix proxy entries in /etc/environment with missing newline that caused later manual entries to not be usable - Fix offline remodelling by ignoring prerequisites that will otherwise be downloaded from store - Fix devmode seccomp deny regression that caused spamming the log instead of actual denies - Fix snap lock leak during refresh - Fix not re-pinning validation sets that were already pinned when enforcing new validation sets - Fix handling of unexpected snapd runtime failure - Fix /v2/notices REST API skipping notices with duplicate timestamps - Fix comparing systemd versions that may contain pre-release suffixes - Fix udev potentially starting before snap-device-helper is made available - Fix race in snap seed metadata loading - Fix treating cloud-init exit status 2 as error - Fix to prevent sending refresh complete notification if snap snap- refresh-observe interface is connected - Fix to queue snapctl service commands if run from the default- configure hook to ensure they get up-to-date config values - Fix stop service failure when the service is not actually running anymore - Fix parsing /proc/PID/mounts with spaces - Add registry interface that provides snaps access to a particular registry view - Add snap-interfaces-requests-control interface to enable prompting client snaps - steam-support interface: remove all AppArmor and seccomp restrictions to improve user experience - opengl interface: improve compatibility with nvidia drivers - home interface: autoconnect home on Ubuntu Core Desktop - serial-port interface: support RPMsg tty - display-control interface: allow changing LVDS backlight power and brightness - power-control interface: support for battery charging thesholds, type/status and AC type/status - cpu-control interface: allow CPU C-state control - raw-usb interface: support RPi5 and Thinkpad x13s - custom-device interface: allow device file locking - lxd-support interface: allow LXD to self-manage its own cgroup - network-manager interface: support MPTCP sockets - network-control interface: allow plug/slot access to gnutls config and systemd resolved cache flushing via D-Bus - network-control interface: allow wpa_supplicant dbus api - gpio-control interface: support gpiochip* devices - polkit interface: fix "rw" mount option check - u2f-devices interface: enable additional security keys - desktop interface: enable kde theming support- convert license to SPDX- convert license to SPDX- New upstream release 2.64 - Support building snapd using base Core22 (Snapcraft 8.x) - FIPS: support building FIPS complaint snapd variant that switches to FIPS mode when the system boots with FIPS enabled - AppArmor: update to AppArmor 4.0.1 - AppArmor: support AppArmor snippet priorities - AppArmor prompting: add checks for prompting support, include prompting status in system key, and restart snapd if prompting flag changes - AppArmor prompting: include prompt prefix in AppArmor rules if prompting is supported and enabled - AppArmor prompting: add common types, constraints, and mappings from AppArmor permissions to abstract permissions - AppArmor prompting: add path pattern parsing and matching - Registry views (experimental): rename from aspects to registries - Registry views (experimental): support reading registry views using snapctl - Registry views (experimental): restrict view paths from using a number as first character and view names to storage path style patterns - Snap components: support installing snaps and components from files at the same time (no REST API/CLI) - Snap components: support downloading components related assertions from the store - Snap components: support installing components from the store (no REST API/CLI) - Snap components: support removing components (REST API, no CLI) - Snap components: started support for component hooks - Snap components: support kernel modules as components - Refresh app awareness (experimental): add data field for /v2/changes REST API to allow associating each task with affected snaps - Refresh app awareness (experimental): use the app name from .desktop file in notifications - Refresh app awareness (experimental): give snap-refresh-observe interface access to /v2/snaps/{name} endpoint - Allow re-exec when SNAP_REEXEC is set for unlisted distros to simplify testing - Generate GNU build ID for Go binaries - Add missing etelpmoc.sh for shell completion - Do not attempt to run snapd on classic when re-exec is disabled - Packaging/build maintenance for Debian sid, Fedora, Arch, openSuse - Add snap debug api command to enable running raw queries - Enable snap-confine snap mount directory detection - Replace global seccomp filter with deny rules in standard seccomp template - Remove support for Ubuntu Core Launcher (superseded by snap- confine) - Support creating pending serial bound users after serial assertion becomes available - Support disabling cloud-init using kernel command-line - In hybrid systems, apps can refresh without waiting for restarts required by essential snaps - Ship snap-debug-info.sh script used for system diagnostics - Improve error messages when attempting to run non-existent snap - Switch to -u UID:GID for strace-static - Support enabling snapd logging with snap set system debug.snapd.{log,log-level} - Fix restarting activated services instead of their activator units (i.e. sockets, timers) - Fix potential unexpected auto-refresh of snap on managed schedule - Fix potential segfault by guarding against kernel command-line changes on classic system - Fix proxy entries in /etc/environment with missing newline that caused later manual entries to not be usable - Fix offline remodelling by ignoring prerequisites that will otherwise be downloaded from store - Fix devmode seccomp deny regression that caused spamming the log instead of actual denies - Fix snap lock leak during refresh - Fix not re-pinning validation sets that were already pinned when enforcing new validation sets - Fix handling of unexpected snapd runtime failure - Fix /v2/notices REST API skipping notices with duplicate timestamps - Fix comparing systemd versions that may contain pre-release suffixes - Fix udev potentially starting before snap-device-helper is made available - Fix race in snap seed metadata loading - Fix treating cloud-init exit status 2 as error - Fix to prevent sending refresh complete notification if snap snap- refresh-observe interface is connected - Fix to queue snapctl service commands if run from the default- configure hook to ensure they get up-to-date config values - Fix stop service failure when the service is not actually running anymore - Add registry interface that provides snaps access to a particular registry view - steam-support interface: relaxed AppArmor and seccomp restrictions to improve user experience - home interface: autoconnect home on Ubuntu Core Desktop - serial-port interface: support RPMsg tty - display-control interface: allow changing LVDS backlight power and brightness - power-control interface: support for battery charging thesholds, type/status and AC type/status - cpu-control interface: allow CPU C-state control - raw-usb interface: support RPi5 and Thinkpad x13s - custom-device interface: allow device file locking - lxd-support interface: allow LXD to self-manage its own cgroup - network-manager interface: support MPTCP sockets - network-control interface: allow plug/slot access to gnutls config and systemd resolved cache flushing via D-Bus- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild- New upstream release 2.63 - Support for snap services to show the current status of user services (experimental) - Refresh app awareness: record snap-run-inhibit notice when starting app from snap that is busy with refresh (experimental) - Refresh app awareness: use warnings as fallback for desktop notifications (experimental) - Aspect based configuration: make request fields in the aspect- bundle's rules optional (experimental) - Aspect based configuration: make map keys conform to the same format as path sub-keys (experimental) - Aspect based configuration: make unset and set behaviour similar to configuration options (experimental) - Aspect based configuration: limit nesting level for setting value (experimental) - Components: use symlinks to point active snap component revisions - Components: add model assertion support for components - Components: fix to ensure local component installation always gets a new revision number - Add basic support for a CIFS remote filesystem-based home directory - Add support for AppArmor profile kill mode to avoid snap-confine error - Allow more than one interface to grant access to the same API endpoint or notice type - Allow all snapd service's control group processes to send systemd notifications to prevent warnings flooding the log - Enable not preseeded single boot install - Update secboot to handle new sbatlevel - Fix to not use cgroup for non-strict confined snaps (devmode, classic) - Fix two race conditions relating to freedesktop notifications - Fix missing tunables in snap-update-ns AppArmor template - Fix rejection of snapd snap udev command line by older host snap- device-helper - Rework seccomp allow/deny list - Clean up files removed by gadgets - Remove non-viable boot chains to avoid secboot failure - posix_mq interface: add support for missing time64 mqueue syscalls mq_timedreceive_time64 and mq_timedsend_time64 - password-manager-service interface: allow kwalletd version 6 - kubernetes-support interface: allow SOCK_SEQPACKET sockets - system-observe interface: allow listing systemd units and their properties - opengl interface: enable use of nvidia container toolkit CDI config generation- New upstream release 2.62 - Aspects based configuration schema support (experimental) - Refresh app awareness support for UI (experimental) - Support for user daemons by introducing new control switches --user/--system/--users for service start/stop/restart (experimental) - Add AppArmor prompting experimental flag (feature currently unsupported) - Installation of local snap components of type test - Packaging of components with snap pack - Expose experimental features supported/enabled in snapd REST API endpoint /v2/system-info - Support creating and removing recovery systems for use by factory reset - Enable API route for creating and removing recovery systems using /v2/systems with action create and /v2/systems/{label} with action remove - Lift requirements for fde-setup hook for single boot install - Enable single reboot gadget update for UC20+ - Allow core to be removed on classic systems - Support for remodeling on hybrid systems - Install desktop files on Ubuntu Core and update after snapd upgrade - Upgrade sandbox features to account for cgroup v2 device filtering - Support snaps to manage their own cgroups - Add support for AppArmor 4.0 unconfined profile mode - Add AppArmor based read access to /etc/default/keyboard - Upgrade to squashfuse 0.5.0 - Support useradd utility to enable removing Perl dependency for UC24+ - Support for recovery-chooser to use console-conf snap - Add support for --uid/--gid using strace-static - Add support for notices (from pebble) and expose via the snapd REST API endpoints /v2/notices and /v2/notice - Add polkit authentication for snapd REST API endpoints /v2/snaps/{snap}/conf and /v2/apps - Add refresh-inhibit field to snapd REST API endpoint /v2/snaps - Add refresh-inhibited select query to REST API endpoint /v2/snaps - Take into account validation sets during remodeling - Improve offline remodeling to use installed revisions of snaps to fulfill the remodel revision requirement - Add rpi configuration option sdtv_mode - When snapd snap is not installed, pin policy ABI to 4.0 or 3.0 if present on host - Fix gadget zero-sized disk mapping caused by not ignoring zero sized storage traits - Fix gadget install case where size of existing partition was not correctly taken into account - Fix trying to unmount early kernel mount if it does not exist - Fix restarting mount units on snapd start - Fix call to udev in preseed mode - Fix to ensure always setting up the device cgroup for base bare and core24+ - Fix not copying data from newly set homedirs on revision change - Fix leaving behind empty snap home directories after snap is removed (resulting in broken symlink) - Fix to avoid using libzstd from host by adding to snapd snap - Fix autorefresh to correctly handle forever refresh hold - Fix username regex allowed for system-user assertion to not allow '+' - Fix incorrect application icon for notification after autorefresh completion - Fix to restart mount units when changed - Fix to support AppArmor running under incus - Fix case of snap-update-ns dropping synthetic mounts due to failure to match desired mount dependencies - Fix parsing of base snap version to enable pre-seeding of Ubuntu Core Desktop - Fix packaging and tests for various distributions - Add remoteproc interface to allow developers to interact with Remote Processor Framework which enables snaps to load firmware to ARM Cortex microcontrollers - Add kernel-control interface to enable controlling the kernel firmware search path - Add nfs-mount interface to allow mounting of NFS shares - Add ros-opt-data interface to allow snaps to access the host /opt/ros/ paths - Add snap-refresh-observe interface that provides refresh-app- awareness clients access to relevant snapd API endpoints - steam-support interface: generalize Pressure Vessel root paths and allow access to driver information, features and container versions - steam-support interface: make implicit on Ubuntu Core Desktop - desktop interface: improved support for Ubuntu Core Desktop and limit autoconnection to implicit slots - cups-control interface: make autoconnect depend on presence of cupsd on host to ensure it works on classic systems - opengl interface: allow read access to /usr/share/nvidia - personal-files interface: extend to support automatic creation of missing parent directories in write paths - network-control interface: allow creating /run/resolveconf - network-setup-control and network-setup-observe interfaces: allow busctl bind as required for systemd 254+ - libvirt interface: allow r/w access to /run/libvirt/libvirt-sock- ro and read access to /var/lib/libvirt/dnsmasq/** - fwupd interface: allow access to IMPI devices (including locking of device nodes), sysfs attributes needed by amdgpu and the COD capsule update directory - uio interface: allow configuring UIO drivers from userspace libraries - serial-port interface: add support for NXP Layerscape SoC - lxd-support interface: add attribute enable-unconfined-mode to require LXD to opt-in to run unconfined - block-devices interface: add support for ZFS volumes - system-packages-doc interface: add support for reading jquery and sphinx documentation - system-packages-doc interface: workaround to prevent autoconnect failure for snaps using base bare - microceph-support interface: allow more types of block devices to be added as an OSD - mount-observe interface: allow read access to /proc/{pid}/task/{tid}/mounts and proc/{pid}/task/{tid}/mountinfo - polkit interface: changed to not be implicit on core because installing policy files is not possible - upower-observe interface: allow stats refresh - gpg-public-keys interface: allow creating lock file for certain gpg operations - shutdown interface: allow access to SetRebootParameter method - media-control interface: allow device file locking - u2f-devices interface: support for Trustkey G310H, JaCarta U2F, Kensington VeriMark Guard, RSA DS100, Google Titan v2- New upstream release 2.61.3 - Install systemd files in correct location for 24.04- New upstream release 2.61.2 - Fix to enable plug/slot sanitization for prepare-image - Fix panic when device-service.access=offline - Support offline remodeling - Allow offline update only remodels without serial - Fail early when remodeling to old model revision - Fix to enable plug/slot sanitization for validate-seed - Allow removal of core snap on classic systems - Fix network-control interface denial for file lock on /run/netns - Add well-known core24 snap-id - Fix remodel snap installation order - Prevent remodeling from UC18+ to UC16 - Fix cups auto-connect on classic with cups snap installed - u2f-devices interface support for GoTrust Idem Key with USB-C - Fix to restore services after unlink failure - Add libcudnn.so to Nvidia libraries - Fix skipping base snap download due to false snapd downgrade conflict- Rebuild for golang 1.22.0- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild- Changelog resynchronization- Require xdelta on Fedora or EPEL >= 9 (for delta updates)- New upstream release 2.61.1 - Stop requiring default provider snaps on image building and first boot if alternative providers are included and available - Fix auth.json access for login as non-root group ID - Fix incorrect remodelling conflict when changing track to older snapd version - Improved check-rerefresh message - Fix UC16/18 kernel/gadget update failure due volume mismatch with installed disk - Stop auto-import of assertions during install modes - Desktop interface exposes GetIdletime - Polkit interface support for new polkit versions - Fix not applying snapd snap changes in tracked channel when remodelling- New upstream release 2.61 - Fix control of activated services in 'snap start' and 'snap stop' - Correctly reflect activated services in 'snap services' - Disabled services are no longer enabled again when snap is refreshed - interfaces/builtin: added support for Token2 U2F keys - interfaces/u2f-devices: add Swissbit iShield Key - interfaces/builtin: update gpio apparmor to match pattern that contains multiple subdirectories under /sys/devices/platform - interfaces: add a polkit-agent interface - interfaces: add pcscd interface - Kernel command-line can now be edited in the gadget.yaml - Only track validation-sets in run-mode, fixes validation-set issues on first boot. - Added support for using store.access to disable access to snap store - Support for fat16 partition in gadget - Pre-seed authority delegation is now possible - Support new system-user name daemon - Several bug fixes and improvements around remodelling - Offline remodelling support- New upstream release 2.60.4 - i/b/qualcomm_ipc_router.go: switch to plug/slot and add socket permission - interfaces/builtin: fix custom-device udev KERNEL values - overlord: allow the firmware-updater snap to install user daemons - interfaces: allow loopback as a block-device- New upstream release 2.60.3 - i/b/shared-memory: handle "private" plug attribute in shared- memory interface correctly - i/apparmor: support for home.d tunables from /etc/- New upstream release 2.60.2 - i/builtin: allow directories in private /dev/shm - i/builtin: add read access to /proc/task/schedstat in system- observe - snap-bootstrap: print version information at startup - go.mod: update gopkg.in/yaml.v3 to v3.0.1 to fix CVE-2022-28948 - snap, store: filter out invalid snap edited links from store info and persisted state - o/configcore: write netplan defaults to 00-snapd-config on seeding - snapcraft.yaml: pull in apparmor_parser optimization patches from https://gitlab.com/apparmor/apparmor/-/merge_requests/711 - snap-confine: fix missing \0 after readlink - cmd/snap: hide append-integrity-data - interfaces/opengl: add support for ARM Mali- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild- New upstream release 2.60.1 - install: fallback to lazy unmount() in writeFilesystemContent - data: include "modprobe.d" and "modules-load.d" in preseeded blob - gadget: fix install test on armhf - interfaces: fix typo in network_manager_observe - sandbox/apparmor: don't let vendored apparmor conflict with system - gadget/update: set parts in laid out data from the ones matched - many: move SnapConfineAppArmorDir from dirs to sandbox/apparmor - many: stop using `-O no-expr-simplify` in apparmor_parser - go.mod: update secboot to latest uc22 branch- New upstream release 2.60 - Support for dynamic snapshot data exclusions - Apparmor userspace is vendored inside the snapd snap - Added a default-configure hook that exposes gadget default configuration options to snaps during first install before services are started - Allow install from initrd to speed up the initial installation for systems that do not have a install-device hook - New `snap sign --chain` flag that appends the account and account-key assertions - Support validation-sets in the model assertion - Support new "min-size" field in gadget.yaml - New interface: "userns"- New upstream release 2.59.5 - Explicitly disallow the use of ioctl + TIOCLINUX This fixes CVE-2023-1523.- New upstream release 2.59.4 - Retry when looking for disk label on non-UEFI systems (LP: #2018977) - Fix remodel from UC20 to UC22- New upstream release 2.59.3 - Fix quiet boot - i/b/physical_memory_observe: allow reading virt-phys page mappings - gadget: warn instead of returning error if overlapping with GPT header - overlord,wrappers: restart always enabled units - go.mod: update github.com/snapcore/secboot to latest uc22 - boot: make sure we update assets for the system-seed-null role - many: ignore case for vfat partitions when validating- New upstream release 2.59.2 - Notify users when a user triggered auto refresh finished- New upstream release 2.59.1 - Add udev rules from steam-devices to steam-support interface - Bugfixes for layout path checking, dm_crypt permissions, mount-control interface parameter checking, kernel commandline parsing, docker-support, refresh-app-awareness- New upstream release 2.59 - Support setting extra kernel command line parameters via snap configuration and under a gadget allow-list - Support for Full-Disk-Encryption using ICE - Support for arbitrary home dir locations via snap configuration - New nvidia-drivers-support interface - Support for udisks2 snap - Pre-download of snaps ready for refresh and automatic refresh of the snap when all apps are closed - New microovn interface - Support uboot with `CONFIG_SYS_REDUNDAND_ENV=n` - Make "snap-preseed --reset" re-exec when needed - Update the fwupd interface to support fully confined fwupd - The memory,cpu,thread quota options are no longer experimental - Support debugging snap client requests via the `SNAPD_CLIENT_DEBUG_HTTP` environment variable - Support ssh listen-address via snap configuration - Support for quotas on single services - prepare-image now takes into account snapd versions going into the image, including in the kernel initrd, to fetch supported assertion formats- Releate 2.58.3 to Fedora RHBZ#2173056- New upstream release 2.58.3 - interfaces/screen-inhibit-control: Add support for xfce-power- manager - interfaces/network-manager: do not show ptrace read denials - interfaces: relax rules for mount-control `what` for functionfs - cmd/snap-bootstrap: add support for snapd_system_disk - interfaces/modem-manager: add net_admin capability - interfaces/network-manager: add permission for OpenVPN - httputil: fix checking x509 certification error on go 1.20 - i/b/fwupd: allow reading host os-release - boot: on classic+modes `MarkBootSuccessfull` does not need a base - boot: do not include `base=` in modeenv for classic+modes installs - tests: add spread test that validates revert on boot for core does not happen on classic+modes - snapstate: only take boot participants into account in UpdateBootRevisions - snapstate: refactor UpdateBootRevisions() to make it easier to check for boot.SnapTypeParticipatesInBoot()- New upstream release 2.58.2 - bootloader: fix dirty build by hardcoding copyright year- New upstream release 2.58.1 - secboot: detect lockout mode in CheckTPMKeySealingSupported - cmd/snap-update-ns: prevent keeping unneeded mountpoints - o/snapstate: do not infinitely retry when an update fails during seeding - interfaces/modem-manager: add permissions for NETLINK_ROUTE - systemd/emulation.go: use `systemctl --root` to enable/disable - snap: provide more error context in `NotSnapError` - interfaces: add read access to /run for cryptsetup - boot: avoid reboot loop if there is a bad try kernel - devicestate: retry serial acquire on time based certificate errors - o/devicestate: run systemctl daemon-reload after install-device hook - cmd/snap,daemon: add 'held' to notes in 'snap list' - o/snapshotstate: check snapshots are self-contained on import - cmd/snap: show user+gating hold info in 'snap info' - daemon: expose user and gating holds at /v2/snaps/{name}- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild- Fix for RHBZ#2152903- New upstream release 2.58 - many: Use /tmp/snap-private-tmp for per-snap private tmps - data: Add systemd-tmpfiles configuration to create private tmp dir - cmd/snap: test allowed and forbidden refresh hold values - cmd/snap: be more consistent in --hold help and err messages - cmd/snap: error on refresh holds that are negative or too short - o/homedirs: make sure we do not write to /var on build time - image: make sure file customizations happen also when we have defaultscause - tests/fde-on-classic: set ubuntu-seed label in seed partitions - gadget: system-seed-null should also have fs label ubuntu-seed - many: gadget.HasRole, ubuntu-seed can come also from system-seed- null - o/devicestate: fix paths for retrieving recovery key on classic - cmd/snap-confine: do not discard const qualifier - interfaces: allow python3.10+ in the default template - o/restart: fix PendingForSystemRestart - interfaces: allow wayland slot snaps to access shm files created by Firefox - o/assertstate: add Sequence() to val set tracking - o/assertstate: set val set 'Current' to pinned sequence - tests: tweak the libvirt interface test to work on 22.10 - tests: use system-seed-null role on classic with modes tests - boot: add directory for data on install - o/devicestate: change some names from esp to seed/seed-null - gadget: add system-seed-null role - o/devicestate: really add error to new error message - restart,snapstate: implement reboot-required notifications on classic - many: avoid automatic system restarts on classic through new overlord/restart logic - release: Fix WSL detection in LXD - o/state: introduce WaitStatus - interfaces: Fix desktop interface rules for document portal - client: remove classic check for `snap recovery --show- keys` - many: create snapd.mounts targets to schedule mount units - image: enable sysfs overlay for UC preseeding - i/b/network-control: add permissions for using AF_XDP - i/apparmor: move mocking of home and overlay conditions to osutil - tests/main/degraded: ignore man-db update failures in CentOS - cmd/snap: fix panic when running snap w/ flag but w/o subcommand - tests: save snaps generated during image preaparation - tests: skip building snapd based on new env var - client: remove misleading comments in ValidateApplyOptions - boot/seal: add debug traces for bootchains - bootloader/assets: fix grub.cfg when there are no labels - cmd/snap: improve refresh hold's output - packaging: enable BPF in RHEL9 - packaging: do not traverse filesystems in postrm script - tests: get microk8s from another branch - bootloader: do not specify Core version in grub entry - many: refresh --hold follow-up - many: support refresh hold/unhold to API and CLI - many: expand fully handling links mapping in all components, in the API and in snap info - snap/system_usernames,tests: Azure IoT Edge system usernames - interface: Allow access to org.freedesktop.DBus.ListActivatableNames via system-observe interface - o/devicestate,daemon: use the expiration date from the assertion in user-state and REST api (user-removal 4/n) - gadget: add unit tests for new install functions for FDE on classic - cmd/snap-seccomp: fix typo in AF_XDP value - tests/connected-after-reboot-revert: run also on UC16 - kvm: allow read of AMD-SEV parameters - data: tweak apt integration config var - o/c/configcore: add faillock configuration - tests: use dbus-daemon instead of dbus-launch - packaging: remove unclean debian-sid patch - asserts: add keyword 'user-presence' keyword in system-user assertion (auto-removal 3/n) - interfaces: steam-support allow pivot /run/media and /etc/nvidia mount - aspects: initial code - overlord: process auto-import assertion at first boot - release, snapd-apparmor, syscheck: distinguish WSL1 and WSL2 - tests: fix lxd-mount-units in ubuntu kinetic - tests: new variable used to configure the kernel command line in nested tests - go.mod: update to newer secboot/uc22 branch - autopkgtests: fix running autopkgtest on kinetic - tests: remove squashfs leftovers in fakeinstaller - tests: create partition table in fakeinstaller - o/ifacestate: introduce DebugAutoConnectCheck hook - tests: use test-snapd-swtpm instead of swtpm-mvo snap in nested helper - interfaces/polkit: do not require polkit directory if no file is needed - o/snapstate: be consistent not creating per-snap save dirs for classic models - inhibit: use hintFile() - tests: use `snap prepare-image` in fde-on-classic mk-image.sh - interfaces: add microceph interface - seccomp: allow opening XDP sockets - interfaces: allow access to icon subdirectories - tests: add minimal-smoke test for UC22 and increase minimal RAM - overlord: introduce hold levels in the snapstate.Hold* API - o/devicestate: support mounting ubuntu-save also on classic with modes - interfaces: steam-support allow additional mounts - fakeinstaller: format SystemDetails result with %+v - cmd/libsnap-confine-private: do not panic on chmod failure - tests: ensure that fakeinstaller put the seed into the right place - many: add stub services for prompting - tests: add libfwupd and libfwupdplugin5 to openSUSE dependencies - o/snapstate: fix snaps-hold pruning/reset in the presence of system holding - many: add support for setting up encryption from installer - many: support classic snaps in the context of classic and extended models - cmd/snap,daemon: allow zero values from client to daemon for journal rate limit - boot,o/devicestate: extend HasFDESetupHook to consider unrelated kernels - cmd/snap: validation set refresh-enforce CLI support + spread test - many: fix filenames written in modeenv for base/gadget plus drive- by TODO - seed: fix seed test to use a pseudo-random byte sequence - cmd/snap-confine: remove setuid calls from cgroup init code - boot,o/devicestate: introduce and use MakeRunnableStandaloneSystem - devicestate,boot,tests: make `fakeinstaller` test work - store: send Snap-Device-Location header with cloud information - overlord: fix unit tests after merging master in - o/auth: move HasUserExpired into UserState and name it HasExpired, and add unit tests for this - o/auth: rename NewUserData to NewUserParams - many: implementation of finish install step handlers - overlord: auto-resolve validation set enforcement constraints - i/backends,o/ifacestate: cleanup backends.All - cmd/snap-confine: move bind-mount setup into separate function - tests/main/mount-ns: update namespace for 18.04 - o/state: Hold pseudo-error for explicit holding, concept of pending changes in prune logic - many: support extended classic models that omit kernel/gadget - data/selinux: allow snapd to detect WSL - overlord: add code to remove users that has an expiration date set - wrappers,snap/quota: clear LogsDirectory= in the service unit for journal namespaces - daemon: move user add, remove operations to overlord device state - gadget: implement write content from gadget information - {device,snap}state: fix ineffectual assignments - daemon: support validation set refresh+enforce in API - many: rename AddAffected* to RegisterAffected*, add Change|State.Has, fix a comment - many: reset store session when setting proxy.store - overlord/ifacestate: fix conflict detection of auto-connection - interfaces: added read/write access to /proc/self/coredump_filter for process-control - interfaces: add read access to /proc/cgroups and /proc/sys/vm/swappiness to system-observe - fde: run fde-reveal-key with `DefaultDependencies=no` - many: don't concatenate non-constant format strings - o/devicestate: fix non-compiling test - release, snapd-apparmor: fixed outdated WSL detection - many: add todos discussed in the review in tests/nested/manual/fde-on-classic, snapstate cleanups - overlord: run install-device hook during factory reset - i/b/mount-control: add optional `/` to umount rules - gadget/install: split Run in several functions - o/devicestate: refactor some methods as preparation for install steps implementation - tests: fix how snaps are cached in uc22 - tests/main/cgroup-tracking-failure: fix rare failure in Xenial and Bionic - many: make {Install,Initramfs}{{,Host},Writable}Dir a function - tests/nested/manual/core20: fix manual test after changes to 'tests.nested exec' - tests: move the unit tests system to 22.04 in github actions workflow - tests: fix nested errors uc20 - boot: rewrite switch in SnapTypeParticipatesInBoot() - gadget: refactor to allow usage from the installer - overlord/devicestate: support for mounting ubuntu-save before the install-device hook - many: allow to install/update kernels/gadgets on classic with modes - tests: fix issues related to dbus session and localtime in uc18 - many: support home dirs located deeper under /home - many: refactor tests to use explicit strings instead of boot.Install{Initramfs,Host}{Writable,FDEData}Dir - boot: add factory-reset cases for boot-flags - tests: disable quota tests on arm devices using ubuntu core - tests: fix unbound SPREAD_PATH variable on nested debug session - overlord: start turning restart into a full state manager - boot: apply boot logic also for classic with modes boot snaps - tests: fix snap-env test on debug section when no var files were created - overlord,daemon: allow returning errors when requesting a restart - interfaces: login-session-control: add further D-Bus interfaces - snapdenv: added wsl to userAgent - o/snapstate: support running multiple ops transactionally - store: use typed valset keys in store package - daemon: add `ensureStateSoon()` when calling systems POST api - gadget: add rules for validating classic with modes gadget.yaml files - wrappers: journal namespaces did not honor journal.persistent - many: stub devicestate.Install{Finish,SetupStorageEncryption}() - sandbox/cgroup: don't check V1 cgroup if V2 is active - seed: add support to load auto import assertion - tests: fix preseed tests for arm systems - include/lk: update LK recovery environment definition to include device lock state used by bootloader - daemon: return `storage-encryption` in /systems/