From 9fe033ea88c2f705ec18c232873d056e0c229d72 Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:05:53 +0200 Subject: Initial commit --- sem_5/HLIN505_Java/.gitignore | 1 + .../caches/identified-project-coordinates.json | 1 + .../.recommenders/caches/manual-mappings.json | 1 + .../_4.fdt | Bin 0 -> 7000176 bytes .../_4.fdx | Bin 0 -> 112412 bytes .../_4.fnm | 3 + .../_4.frq | 1018 ++++++++++++++++++++ .../_4.nrm | 1 + .../_4.prx | Bin 0 -> 181660 bytes .../_4.tii | Bin 0 -> 27144 bytes .../_4.tis | Bin 0 -> 1672063 bytes .../segments.gen | Bin 0 -> 20 bytes .../segments_5 | Bin 0 -> 244 bytes sem_5/HLIN505_Java/HLIN505/.classpath | 13 + sem_5/HLIN505_Java/HLIN505/.factorypath | 3 + sem_5/HLIN505_Java/HLIN505/.gitignore | 2 + sem_5/HLIN505_Java/HLIN505/.project | 17 + .../.settings/org.eclipse.jdt.apt.core.prefs | 6 + .../HLIN505/.settings/org.eclipse.jdt.core.prefs | 12 + .../HLIN505/lib/cofoja.asm-1.3-20160207.jar | Bin 0 -> 458417 bytes sem_5/HLIN505_Java/HLIN505/src/TP1/Adherent.java | 25 + sem_5/HLIN505_Java/HLIN505/src/TP1/Creneau.java | 40 + sem_5/HLIN505_Java/HLIN505/src/TP1/Heure.java | 59 ++ .../HLIN505_Java/HLIN505/src/TP1/JourSemaine.java | 11 + sem_5/HLIN505_Java/HLIN505/src/TP1/Lieu.java | 29 + .../HLIN505_Java/HLIN505/src/TP1/ListeChainee.java | 64 ++ sem_5/HLIN505_Java/HLIN505/src/TP1/Main.java | 32 + sem_5/HLIN505_Java/HLIN505/src/TP2/Constante.java | 11 + sem_5/HLIN505_Java/HLIN505/src/TP2/Exp.java | 5 + sem_5/HLIN505_Java/HLIN505/src/TP2/ExpComp.java | 28 + sem_5/HLIN505_Java/HLIN505/src/TP2/Main.java | 19 + sem_5/HLIN505_Java/HLIN505/src/TP3/FicText.java | 47 + .../HLIN505/src/TP4/AbstractAudioElement.java | 31 + .../HLIN505/src/TP4/IelementAudio.java | 12 + .../src/TP4/IncorrectFileNameException.java | 18 + sem_5/HLIN505_Java/HLIN505/src/TP4/Iplaylist.java | 6 + .../HLIN505/src/TP4/SimplePlayList.java | 60 ++ sem_5/HLIN505_Java/HLIN505/src/TP4/Song.java | 41 + sem_5/HLIN505_Java/HLIN505/src/TP6/foobar.tar.gz | Bin 0 -> 1234 bytes .../HLIN505/src/foobar/FooBarException.java | 9 + sem_5/HLIN505_Java/HLIN505/src/foobar/SUT.java | 48 + .../HLIN505/src/foobar/TestFooBar.java | 64 ++ .../HLIN505/src/foobar/TestParametreFoo.java | 63 ++ sem_5/HLIN505_Java/HLIN505/src/tp7/Ex1.java | 59 ++ sem_5/HLIN505_Java/HLIN505/src/tp7/ManipAnnot.java | 5 + sem_5/HLIN505_Java/HLIN505/src/tp7/Persobonus.java | 17 + .../HLIN505/src/tp7/Persoinvisible.java | 24 + sem_5/HLIN505_Java/HLIN505/src/tp7/Personnage.java | 35 + sem_5/HLIN505_Java/HLIN505/src/tp7/Todo.java | 7 + .../HLIN505/src/tp7/fabriquePerso.java | 38 + .../HLIN505/src/visites/toTest/Etape.java | 57 ++ .../HLIN505/src/visites/toTest/NatureEtape.java | 8 + .../HLIN505/src/visites/toTest/Parcours.java | 65 ++ .../HLIN505/src/visites/toTest/TestEtqpe.java | 16 + .../HLIN505/src/visites/toTest/TestParcours.java | 17 + .../HLIN505/src/visites/toTest/TestTroncon.java | 16 + .../HLIN505/src/visites/toTest/Troncon.java | 69 ++ sem_5/HLIN505_Java/HLIN505/zbeb.txt | 690 +++++++++++++ 58 files changed, 2923 insertions(+) create mode 100644 sem_5/HLIN505_Java/.gitignore create mode 100644 sem_5/HLIN505_Java/.recommenders/caches/identified-project-coordinates.json create mode 100644 sem_5/HLIN505_Java/.recommenders/caches/manual-mappings.json create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdt create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdx create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fnm create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.frq create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.nrm create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.prx create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tii create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tis create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments.gen create mode 100644 sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments_5 create mode 100644 sem_5/HLIN505_Java/HLIN505/.classpath create mode 100644 sem_5/HLIN505_Java/HLIN505/.factorypath create mode 100644 sem_5/HLIN505_Java/HLIN505/.gitignore create mode 100644 sem_5/HLIN505_Java/HLIN505/.project create mode 100644 sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.apt.core.prefs create mode 100644 sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.core.prefs create mode 100644 sem_5/HLIN505_Java/HLIN505/lib/cofoja.asm-1.3-20160207.jar create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP1/Adherent.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP1/Creneau.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP1/Heure.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP1/JourSemaine.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP1/Lieu.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP1/ListeChainee.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP1/Main.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP2/Constante.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP2/Exp.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP2/ExpComp.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP2/Main.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP3/FicText.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP4/AbstractAudioElement.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP4/IelementAudio.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP4/IncorrectFileNameException.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP4/Iplaylist.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP4/SimplePlayList.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP4/Song.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/TP6/foobar.tar.gz create mode 100644 sem_5/HLIN505_Java/HLIN505/src/foobar/FooBarException.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/foobar/SUT.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/foobar/TestFooBar.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/foobar/TestParametreFoo.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/tp7/Ex1.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/tp7/ManipAnnot.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/tp7/Persobonus.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/tp7/Persoinvisible.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/tp7/Personnage.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/tp7/Todo.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Etape.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/visites/toTest/NatureEtape.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestEtqpe.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestParcours.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestTroncon.java create mode 100644 sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Troncon.java create mode 100644 sem_5/HLIN505_Java/HLIN505/zbeb.txt (limited to 'sem_5/HLIN505_Java') diff --git a/sem_5/HLIN505_Java/.gitignore b/sem_5/HLIN505_Java/.gitignore new file mode 100644 index 0000000..e10e727 --- /dev/null +++ b/sem_5/HLIN505_Java/.gitignore @@ -0,0 +1 @@ +/.metadata/ diff --git a/sem_5/HLIN505_Java/.recommenders/caches/identified-project-coordinates.json b/sem_5/HLIN505_Java/.recommenders/caches/identified-project-coordinates.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/sem_5/HLIN505_Java/.recommenders/caches/identified-project-coordinates.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/sem_5/HLIN505_Java/.recommenders/caches/manual-mappings.json b/sem_5/HLIN505_Java/.recommenders/caches/manual-mappings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/sem_5/HLIN505_Java/.recommenders/caches/manual-mappings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdt b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdt new file mode 100644 index 0000000..f45918d Binary files /dev/null and b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdt differ diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdx b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdx new file mode 100644 index 0000000..47905a6 Binary files /dev/null and b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdx differ diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fnm b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fnm new file mode 100644 index 0000000..e5e6f9a --- /dev/null +++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fnm @@ -0,0 +1,3 @@ + +coordinate fingerprintssymbolic-names +classifierselfccallovrdselfmovrpovrmstaticsctor \ No newline at end of file diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.frq b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.frq new file mode 100644 index 0000000..46d06e3 --- /dev/null +++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.frq @@ -0,0 +1,1018 @@ +>H!D =m](?*"Q#"1_ͯ +3')|"7 u2|K#0)\.B7  $/1HAC8 +=2'0o(2/dQGɡ!;ը"%!8% 2cu"9wvKYׄ +Fy?n7q-vFx\2uTώ-fE? hÞ~LrKߩ:Kc<{ iN-8/O +*: w 2B&F՛V`L)'N<& -!# |G0` c(-'+  j!$ %3a A + w*/"$"O /! }"#)- P(? (0A-*K"$"7'!#>IC;U)! -&c3&/`&#I"<ׅ , A;1S 1_<Q-j! A5@U(9!0*G#`0) ל D-w)_/; S'7+?!$7*W\9:(3 *A* "-(e !KY*|# FE G `((#! DVl ;! 5" (1 @#+A'I"9&P %~9!(I%-! ~w+$5"V 'v A>qO;I U 8! +Cj  "1 +jVC&$Q#P !E? 7ɓ +fL? ++QK!19? X$)$X,$ )X#E!="9  <[N&/ ]C?9fo57da"#=?%#:M$)5%#!-(%i-N5;'5')%3071/A"8 + "*;_-k##$ L#]b15ɛbB{~$Yu_2LTOσ4VI[[Ӑ7w|f!˵PŇY "1Ӭ +JJM#>%#L'[$XQ:E,&8/  I vA!Ϯ{'/SSz$3<ͅm !{% !0{? MiC- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?8a" +v4 +G2!^ # UfJ$=S bۀ$ U?w y".I +C ;#i"q>$%=/C/:#)1=VADtD! +*4]/8(u".sJI#v#!DZ  .+Ӱ!!DtKu.1Sݱ6t"0|<# +#ј "%?DFF!){Cə"$ŏÃ* @=!!{M " >WӖ!""( +E;D" #3$&q*"! + 8L) "#}{w ~ 6qFz͋p+95 E*/\!#:>!Ӥ['QV[0S,?)=.mK$۟w&&Jϑ8<5Y _=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH(.V1X,;?gX=;? ?1[7n&/ 'p_| ;%9'!,u*mq}#'xCa @* ٔ$lnAK1-E ;AJk 0 1X7;{4K]] ZY"y#1_@>i;|`dWzK@VLJ":/ "T  y 0  +(@ v## 0h& 9"! 7Gk; )/(Aٷ LG$" ) oxN +  !$O! "c u 'G/ o A"E"j  +#bV    $j 2;B H! B+V!6H$  x2B!!v2&vɆ ) w ?   F!FQ!RA$. ! }R BC #! $j":@! @# +x#!"|+6P!h)q'G/F@@c;?V: + ˡOs"4b4{;( @=(6-x/2)۵B|E G^$2*;6S* CL( ',i .%o5_(cwϔD& 1*J/ !GO #=@?#`*I+B8541S8%/ˈ,\.$a+-K' +,.9  y`"1+k-"1M*5!$C1O A58I 2 ?!5 *L W F3 N' *n.B%:.  \ 3C ^5 $12( + j:`9"w*'',9F<5 f7!" (12h+D%9 Mv9.I-h!a +.  6F(E*L75,073S$)$'+-"eE;5!]24% 8?2 44-'12'",0hDR)4$6>g- +<8 E)*;?1-ɲ D@%&7++j |+E(Q  s*)ð2z+.>*'WDAY,6((BJ^' + Jq V$8Q4"F K%*#\W2V(OC$L#-L!<L !K"("D*M +.~>E!BdQ$#"їS #CqV 3q + +ѐ5"[-]0;W!! "#žv5 ݄SA7 !%!?ICBQ)0T7ۉXz( L'!D=*" J#<!ߗ< V,)(5 Z?/%!" 'i"&y( +~0O =u ϯ3nz4#I` s +_dO.  r  C(ѕ&'(=^&'&!Z*a+# J D5GM!)%(k D!n(7ayE EOCS*+T!VArGP1pO}!!W#"L +#9C|+DL"~٘& w)#"Fr2,-Kk #fi +sŋ:1)-y#. "_!q0 +%Q|)g +*  "I{<$f%`ϗ'S۬ dAݨ&c&Vݚ#k#I %DD" C;YoBDvW^q R"Ix!)$7c9CIY0dEtA.uAr#C 9.-vDCLB7^ +U=% ?A1rE'GE !"H-C9p_- # "3'"@DDK۱ +)3aNA˲+'L7x'/tBMr(%(b$>7+]97!E(- :/&]!9۷7 &7)#" +CQC%1"I Z#QG8%A&5[K<.7uEz#&DK.'0#E +F*5! 9ueCE$7oI7ݍ" C+E C)1ň'4#L  8EB5=>_=E%.E-='=x(/Տd(O"G  i y =; U=8yB HxG/Xp8?R759۝YWF"n-"W{mÅN.21P.F %zr "= ˸ O +6KF%0\Un: }1 +M.>FǔǾ110:*;'фKdϙu^!o%"(Rt' p;!J)% z%L*!!הW2B;7SB &Z( 0, +Y-4o5+J * Ӈ '0ft#  ( +ё"",  6y!D"z5x4*CtM>GhG&" N9=qזI???qv% '"j4~5=7ߌ@1b.O;3R.}h%/n 2 %6%=[ c&K['ņɒzU!>%Ӏ gQE۔?-"1 + +9"M9")G +5%Y90{$70^3-i.n$"glj%Vb&'a5-6C01;w A:FF]QdMA+$ALF])ߢG,k%g( )/)m'c>:&͟ Pq;)_'3+R@ne ۅb,R&$Z X =v*KkkT%;K)stAS=g2mmDjE;T!(/ u\ Q%L(+]*4EFK  <)DSJ N(Ӱ;'ϛC˧)ˉd~,."ߴ!P"U_E"!0\QJ + L= ?Q^q-.~0߅> y*p +~)AHj'CôfOv=E-EqջyPS)ai RHtcǿU32` +Vr0cI x28D5ׇװ5jc8W9 +nߓB6۲c6S?#U4f<ߛ :Ǚɟp/.S\w5\߂zJcZF\۽v.ZA +|\͙U!Ò[9*sFɧ&$ә:9}-/]+Oo'-$b? qE͟27ӹ P+8ݮ=oT(%Ƀ- >L.]'& EՇ')$$_B ;CBCTh d H%P` *eK, M$a!*݄ 'I 1^/VÆ 8ŀRիxչ5-0cѤ)vEi"?v;2Z]h#M K%3_"H"! DU MGGUm)|a#u +#I"]b|i_{=!& x*ϕMɾ~!"&):oJ 'ǐr1>%JţͰjǑ;ӎ!7C+sEjx; pnM}IvLe:b;' G+1b!!tE" +`|էgOD'ϱB[)>ō,#{DO ɰu% -E##o*@(2 $ +1c!i $!1)<# 'Ei!"/!!i!(M#'A\$ x+ #!C  +'p + @2.')O+/."_JF r. ^/ l(! G/r$Q).<c ?BYr&22 #   W_651'Z+1*qx&[)"(C 8!),I-?11h(l#  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ / +#!)4/ J"*)υ)D/ <" " (w'k)"s $U1C) CY=R>V- 9hhK YrK';!s*9| x@!)9#)FCH  +F?L ͔I;XQ 3!|2G]I*K 7n5'0с'5# ߣ#OL=EQ;!3&Ś' ! AL(3F!>F?J,)_8! %ˮ`,+ <qHOUvK'45 +\@ 'Gd{)IYCu2vxC' 'pB" )+EL >J&ɪXSi-no?6ǁB?5s'^)A##՜- _"O";/(#"1= ː:1xA&7&(HM\' i&5e"_!= =gJ ?="3)*xW9 &8!#1ÖE>I" =SL)t 7(=*MA)b0;QM*!4}9!0}AL 1ǎ"h*r&'א;i.#I*sX<) $s.ם>) \ɗpHP E&vCxCoj&*"TE=E_tǨOˊT/A5 +C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J +A$)$ !V + - 2C +;"Ѩ͊(' +D*"$B"@& ("&2(+!E$#&)*.+$+" &7~D ?#-!9>**"DF +O S? Y 4%U>5( A7o G-$#*U H .&)+Dd;ٰAY/M/7 q! P+*i17 / ?' r $'2^ +'a(U}+7"/ AF!$D 0(]1) #E #(F4* -'b$E+)t M# ,C '#; +)st/( b*{./ӏ7fE ۭ ۠+,x0O/2v.!&(@EGW?K4ϼG~!r`nz.CӪ5X9zK]:JJ(5(W6Z *C'K "].y!l#p'>1%ۃ( U2"{;L*A  +Mw xO mNl9"լ}`WGE,8Gnj˃,í(iBz| +'`g' +Pb 80'B#6ˆEzjÉ'nɦ!/W(D771'3w9-0$: +u+Z@/"b+~-X@ +; #k;Y"ł"m?!"P5?L ;?oC-?!C#& +"}9E#Kb'='|;-/s9"  !(x=C E +E xJ8 M#oD ۗ>KD )DG j< +׉Ó7IOHct'C"E; )!W x#!5{1#^4y-s7&7/G>~݌DžF5F~ݪ+S8".-[ёϯ?yA1/K"-v 7u=:8W! =Z @ K?/ŒMBG ezS; m IɁ-<A Dѡ,'SmB Og -:E?H!#5gAC59B)eAD/y#/ð:;$4׼e#=UA{I9#3}>V7hўD7"RDPL9[] O9E1Z#|ö83'~!Şh1AXdt w=LZє N٬5"ߋ6c?A1 ?D;X^ 7:[W"eXy2y9"G5p4;":8uR3v+g'auj( "$i  o7C! YzY 7vDٔ"!-VCJmͬC-DZ?|÷ɊO--ل;{k5ŗA5!?d9TIű3 S9 +X"us"OXl +"\5r!bh{D94By"( 1.6@ SIYńYyL7$B?g8!ߡ"79M"} C?e{A;ϭC!? 0)/Aߪ 2a! s)1e/Jo GJt;]A %w"G =-y7aѶP%bu"C6?~)!Q`ÿKrP81HEFE.sJk(=#J$5+8)eߗ3)CFpA'q7#1aT!"i+ˍ; 52W 7}1VCK/3dF=+/϶]MLE + A"k )݊M ǣ?!ӱ[" 4Ւ +;aG4$ "2Q%h~W8*Mɨd ?߫1E`748ϣ QTVNS-`êcT#.#{׾,hgCݫkGvNRDMˑu}Շ)E_ODX)Rl{ E1vHjQŴC${Bzզ!zTdٻ"lKUd&['eɑwו" '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s +<W.M߲^05<8,)'?C4S1( o+-&2-:#1 +I!`z1' $J, +q+o9](5g~IZ1˟PE2&X1M(2e2s  | uِr/6Umb"5w>"!  :Yz#LK0zD  Q0yL(} +!Ş/x"AP.$'#>/&^ {#!w" "*{P* `ѯp!B "C 0!z!)> <)| Ex uFxJwD# τH! + +'  +?B!ѩ M +#ŕw"'# +P(X+R p+!,;<"š[&"v$#7"% 9K~2 EH}# + ":G ="C#-u "}*) V;Nnb5 sd + <  '$;* ?D m@ #.|Ba +m vсA߼~:!r7  `!."!'z pe+; Ät8"kPKd#&"!JX"p0Ey"q;gY#8lųo"I"Xɸr oA%X0 (rf׏˄K"QA"AeQNc""!OJ !z%SIl y! %=0T;dc,Ǩh;Okj;lt˓6fIj)H3)UWۚ́?dbݻ" -+Ő)! +S+G"$0 K%# " a1K.##v8#$x M)4'> ^#/-0#F/}#(/7;I"\&P>i_45٨.tG0SǬN~S`p(/Xx6"_) [90 ,U3J /?!ӗ \ͭU0xaqW*Tv&Rr08= ɏ"Jݗ=٪"|.ݧ!S#ev z-?1t[цK8Xa{3!v׵!1w X9g _p#-/Ol D!ۯg9j,3p3ٗr#_ɇA793r 9#CB*|# b=qZa1U017 +& *j4 M ' טC* '+$*?cӫj1-##>Vq0DL##j"T"$'I<1/#1 ( % #G xW1#ŰBհ(Sӻɮ  CS[4F![s7n3[a`Nݼw#IYxU.yшjD/2!H1[ )N,3T5s-J`/*#4sZD- +C<7=p;I9##,0 +O-DD& "TM`^|Y ++3 G.1 BO1 3s ( C"Mw=тt'|Tfg "O͂9* *##No^ "L r !97=CT+!EZW/.Qs\T@9( 11@Jdi@S !!m#LݎgJ߶PJR-S?"!L%&O.B #T.0FF%)QO1BE:у9"3:  +W&&,MA$*PWK (8-JDw +l.+!d,)g5%*"p+(J'B 3-3v .-p=6JZ>#vI#B )K ߁>JXA pYӜ:S3|Uipz!Z/q!,5a.! "lp7'sم^{C>0`#9:B #>! CY@ŮzWT[\ +U!@ +3M% M(Eq1W9˔J' .[fɂۂO2"51GN7*"S J$W'u\KI4U3  p#(iBJr`?r" + LN7al|(q8%6|$ŕ +@ q3Se߆XǏ/2\0952' #z 8j:VoK85Ð1*Pپ{#F<*oF3a8/2VyF)Yݙ)d#['5{UogZDoK0'&ˀs\5zd/A25ǕtuIkS>xQu' #[˰v +K%ɶ*(?Y:"~ٸ,oo4:!# t""ߏ"o& R9u7 &) R*( +: +@56>݋H )F! .< +$Q#}0 x\u.GEA"#5!& y - * i  #8*%B+9: 7PFk+$t +9 +/ 1g $Ü>@ !52( ! @04R !&7I " #h  +})2! +J('b +M;(,8,'+w -c +ݶ:8  GGp;G* )"3V! + |  0`    + + +        &+                                                                                                                                                                                                                                                                                                   /|/ 0`    + + +        $""'  """                                                                                                                                                                                                                                                                                                  /|/ 0`    + + +        $""'  """                                                                                                                                                                                                                                                                                                  /|/ 0`    + + +        $""'  """                                                                                                                                                                                                                                                                                                  /|/ 0`    + + +        $"     "$  !! !                                                                                                                                                                                                                                                                                                                                     !                                                                                                                                                                                                                                                                                                                                                                                                                               H|0` -#-'%-*)& #,%)")0%".;$*!/, $.)'"1##%$$%'-+)/')'#(##%((!)((*&%%3)#*(.(&'% (!( 3(%")'0'!+(()%)-$')'#$)""   '0+"#'("!*%$,,6'&'6'!%&,"+$5*!(',,$-$2 -2)$"#+-""#"&'&+$& #+!#*(&(,))&&)*"%&""4%&$%#-&*+ #+" *!((% %%%)'0#'2+%2&+'"$!&# -!#)% )-.!,$%"+-%" %+&%&$#*!*!.,!#"'."++*)%'($%".$" #% $% +                                                               &|' 0`    + + +        t$>MŠ&;kjHHHjiUϏfgST+?UmmJZLL)(_zͯ +33G|ն7Sfe^"0#hh_`t6``gipYZmn;^Q/0=>ml݀"Յʹpۿ{WlI~:Y#)MTDl3ǴHASBǍǚwh#7ՑAp1 fQ;t,N\1gGAe.1fR;.$}Y_J2 XmIf"4BfbMCIlr?oqkID<{2Akq. ˶ݠh6Ao=oYn'eddžGGɡ;;lըݢjH#]:H%ɓ/uɗM9wϸvYׄ +Fy?n7q-vFx\2uTώ-fE? hÞ~LrKߩ:Kc<{ iN-8/VORfq_TGM*: B&F՛V`L)'abNxoqb<;Nߙx44 Cj3ZZpɈיr`ۛ<<^7ׅ˔Ӷ  VLb0 !_SR=קǻךyk%%+CCJkrff_5r` !վǛPX &:$('(01))((>=OONNcc˒%%9jGHZ7!CI"fZ/ +*Ū_`hk!Eh$mY ]qb5ɛbB{~$Yu_2LTOσ4VI[Ӑ7ñw|f˵PŇma /͸Ӭ +ZJ۰U''|Ltn8a)6͆!]rlWl +_1~t 49tύo[$XQeN:,.&g8 @2vbAϮ{'`մ0`z3<ͅm+ !4{{ MniC]Q$׸5lVǁ=>EZכsiɳhӀhG ! R:7(}{ W ]$"ǘuaɢvz>4SNH22Ӓ#,fJntDzS ۀۤU?w*3(yݛh +cZ;;NdiiK4"՟hkS>$Łl=CY:Obj9=є5"tK5 +r]K8ZKD}u.Ѵs#IՋv|#FDI 0E1A+ӰߤYDJوtǸu&&ߪ6͹Ũ0F7<_e +.Ǫ -S?TjD1)hF{əū+$ÃTg^=,$4MaZ#*>Ӗ_7d +Ϣ;ߥ5;3q3 +Z8LaL?+#{ùw~͠YEqz͋pŃ+,5IBEo\}Zv:Ӥ['="VD&S,k=]m)QŷeP~7Cߎ۟Ѳ?f&ϑR8{өZ_=lXa2A 0z_PsDL%v%XDŚ:0t?,Wc[sDK͗WgۖY;z0L~7K8c@3rՆN67=2`! k]qHv6ߚO Ya(X5}jJn.a2p]g*x~YA,ݏ}Zպ٫1cW*Dˀ`J +ѧ#ABpXC$Q,K.9LݑpA  +Ϟa4Q4{ee]CdAݷIwʼnDD%00 Z' {\0zP]H5xE͛ #}naJ<`LF}״_<7RՁz+/0|ǶͲ.WXmKyɝJ`ע[/ ق˅/?Í[X$(1KXki/yGɄu&6׶JŔnm&V[(4_t|;%-|U9(0,ѭuկmtٕwśq}xûaeKv  lA1HC-s|;AkÛ1{4K[xiY9ysB@>i;|`dWzK@VLgJ^:i:\ 2<]g"+ły2IkY{nV +.ۮ`;Q.~vŹNBV۞h}vɣ[9ՔsG\kŕk;G٠qAٷ*U@JŢ՞rlG0Q< +W 3ǧ5 ߹uǤ#7^ 7hEAӌŧ0 +)MɌVlc?6 gS?;Qfݩ "*oHi\0"Ų65 2߸tT?/@VhnjߠͫYH2!  XMřőqs˕ۜOU FCY-*?Tm-^M(dCATǀy˿H> oͮBٌ59[c*ѷ:{ џugR='hEA" +#+LUw~||Dߞhq'(/F@dc? + ˡOs"4b4d;@A[266-.x[2۵U| ͑^WIh"Y7z*1YZ3Y4jn):wϔDlEw*G#k!f*>|G`Ë\8mÌS/ա\ыaqKrj ӉLaHK &Gz`˜.@T".Bw!Eɻ͉atO m+sVş`R ݇B\5,"uW^RzR٩$;ѱqy.e*zH 7i@ե ^5g,0 ˛<:>`9Z2*i)'VyݚwBfןCk"hqxMsW X"PŸa ǥ>Gr7m@t7T0Mu)"q;6JM,däɵ 8lۡ'YO"|sZ6$1hͻgϺӁE*Tݹ~vp?ɲN h@ߍfc7j|bEf s)2l.W˷EC]wOk(XJPˤ|ׯJ׻oyeQw'm%4fR7ϓ݈1QW7N)Q#ݬR<Kn˖<Tr8MA+Fi;] 5oGBgR (]U2M- ͎W,+pZnz͍/z2o,˯ wge]9ϧדDZ[ӷ5|KE\D1 ׿|C~|[Qp,߻+j3$,&i.@cd~p#5i^kR2G^>'>IXݞ<&%͇ǜpoL`&36 ~ +5ɍ S*çנ /S=ǝr$*lɷjU@hp/Eߺ HjvӊLDM]A +տe#EQuїwSfrClWVydzۺq*-ӯťɭ`_<5Ê-;"!De#žv Ϳ݄Sh`aAрժFF?CBGqTT6!XztLӂ=g3H]3TM4!VLiV-]i(lT?RѽiAA3Y"y= ݲcO"u# nz4#I` s +_dϚO}rsv,&Muv=?6]\a7++#hh5GM%kwټnӾyydTS*VVx!!rGP1pO}ݟ(aL +#P9|ݤېD"5٘wϠ@j$r.\K_߉^fفwv(ϳ׹$:lɚl{zJm)ź&%lwǡ C I{<$f%`ϗ'S۬ dAݨ&c&VkIj`ckIۓՙӕ;oqvvq(Ruux(c9}}YщdeVkEtuxrǕ -%.vC^iUdrøm'(N+ HH9Map#$4  (K@IKDY۱3 + +e]NN˲^MLxtٜrtbck?>~]^}77@ɥa::]۷P&'& +d!DC18[IWUh٥QR^8'&ݿ[\c[<.uzDُW0.M#hm +dP:95I^ոÈueepjEoݍP +! eň4DDLa[ߖˠ}88aaE>=/.ŻxՠՏ˸͏fdwUO)/! ivuׂyۍͺѻ8yߣKBVx|/Xp8?R759۝YWF"n-"W{mÅN.21P.F %zͷrE ]g åK]˻\p~w۹#}1G<9?TZFӣyǔǾgL+%i?:~;фjdϙu!5*4]tѬpJtz׍gg'HהWɉ~iVB;b[qٟղ7Kъ 4Ŷ, + I5,w +ۄŘ߄o+JlW -Tkt*7 # +*׷&Z9NZ,]I6Egyz{<Ӕ!utћ6E2+&I^iyNaQ=ז~??߰ٛveBB5 _H4~G=ߌJbCO3R}߿hB/nێS2%6%=yo;xq BQrM2qOsw7-[a +t ?&݁w߯dӘ&OET$)~D8$REͦn!$8RV%bH8՚PKLJszGurBّWa 3c2\9iWrђfӆ l@TW߽ +Yt bNNӋA} 2A1nR`ݜ'VͳA}Y0J@G!~sD1s+>5EץǢ2ntHkk/8w &KǦ'ŭɒzU!>+,Q0EQRo۔˾Z\cO::]e/NMx]$$aú/0ɱӺ׃۴ %# +Nũխ.&PgkEnUMqwVhsFa<ŤS&,K5eZ:'(1!|X;|P.gk24Zu{VuC_\:X}ɤ@?a?3msanq;тj:JMF` Ӹ6YoVF@˫t_\+(^7[IþgyzNcR<& GG%19#hٞM?ՈtJݒ{t'?5|W9-HBb3 K +$mUk=͐!>< c!!.T.ՍcMODVcbAMXkcIM\kF +HI>%߷$MH9~{6}in$ljjVm>E&a5-ϲm==ߐF^]wAB+$Lwɠߢ ,×g6 /Ymc&PRq__3ӓRnۅяbyR$<^~X} @vKkskT;%K)stSf&=g23mيIjՂFvT06!u(wQLu4]ˇ4CETKf<SJ\N(;bϛXC˧ˉdy~,P.ߴPd"U_YE4"R!c\Q + XH=Ր?n^q~߅>O y{p~)UAH<Côf}gvɋ=E-EqջyPS)ai RHtcǿU32` +Vr0cI x28D5ׇװ5jc8W9 +nߓB6۲c6S?#U4f<ߛ :Ǚɟp/9 +Ӛ.S\w5\߂zJcZF\۽v.ZA +|\͙U!Ò[9*sFɧc>ә:9}-/]+Oo'-$b? qE͟27ӹ P+8ݮ=otTé%Ǔ{L PAj'H$_~;[hǗdru% ׭c9j,:Mr!K3 O[1^/VÆ 8ŀRիxչ5-0Ѥϐvi"?v;2Z]rn#)Ub3H_d@2# DXU MbՎGUm)au +I3]b|i_{QQ=3&}xݶ*ϕMɾ~~ݭe;&:oJX 1ǐr>%ZJţͰqjǑ߳;ӎٯR7Cs}jxG;^pnM}IvLeŝ:;c rG3b$tE" +`|էgOD'ϱB[)>ō{ uۻlVX#FFooۙq@Sm2>>Uzæ1rr\F1Z10 VOφ'-OX0ݥ''˨xÚWW 7
,;mW1ˮ`TTMqUjvw5<pq\ dy{{nYM 2ˋx5 pӛ E >E'J&)/mihSnуEo6ہBӅs^dEDS##t_43bO9((99]4P&<:PxӼ&,G ՕHnq\ χeۋ_=WKJͼ3e;:3xC9i#gjUÖlI ǺѥSjόcaL}}tQ=xѹ*bwQbbaM46}Z hâ߮r'-׮pi|RQ.s=<^sם>h \ߵpP^ kEvxoӑj:"T˦=_tǨOˊT0/5@&Ŏ4CKɯ"r*ӈ:uJ>bfwwH6K$y[-8~u"]Fy#>GoK$`ͣkɿ\~]ɞT)% +٭Kp AXK eר˙*Ѩ͊T|AQu/Çb"{?Y݆2Z[+R{P+ײߏd͈k/4$٣oV?tP!9p>i׽DO^S?̓ے* F lH0-cًPUgp S+Cn#[ QR. +0@{ +?*ɴvv~2Lh Oů 3\ZT͓[^47" ݾɫ-TUh}@FUS@6Ƿs75"o ;3Ѽ}>mNBbϩ{ӏff ۸۠ϥ,r^Ov&:NvHW?DÏϼGI~rnzdQ=ӪXz{Մ:bŋ5]a68?F|ZϜͧ*WCKX{_KŌyolpۘ.`%gU{Lvw~ +W %OZmǼl<}fOc@~T*G@ Qgݵ/S_fI|.&ýn8˘ sNbd %zNٳmJ8jàpoמfDQce}uטF /q"r[׋3 +3o B׌mzVvoZP-Bx('2ىsFSiCyJnl,Hw_ßu9PM2;>լ}`WGE,8Gnj˃,í(iBz| +'`g'˺PW8ieBVC B.jÉ'nɦmmW(97j'3ɜw9$:4 Z@AHkbbuߊ,~X@ + +Aߧ~kـ{Y6,&m?AbPPXXLopØ.-EXߕGGj&(K}((m%&wb|0ss/- WxVWCI +x_^8R//ǵoۗ?> "LLDXjHG<׉Ó)(IOcthFIIEV1W xx!5{5^4yssLaG>~݌ 2DžXXF~ݪ+88Z. [ёϯ?5A1mmKv u O:هWx,R=Z @VV /ŒMOɘב4ez˞yzmɁ-<Dѡ61c'-hSmBV10g-:QH!))gC;;5B)eAD/yð:;R$4׼eeUVj{˽9@@}Õ>hўIIDRDP[}]PO1Z(|ö88_~ŞhXdt xwZǹżӧ N٬ߋ67>cߑIIAW?Xjj^:>Q[WYm"`aX2"#7ݳp4):8uR3v+gauj( "$piאoC˼%.Yz{vٔbbAV+Jmͬ-D\Za?AV|1Ɋ0--لlkqѝŗ(h9jiTű 9 +e"6sXl"\5rtŖbh{4Bëy(J6ۊ SI٢ń`Yygf$Bg8:[bߡ/.&9} C՝e{;ϭCEF!TT?G0+*)A2as)1ϊzeJo at11?]Î%ϹwG=-aѶPٴbux~76~#$Q`ÿrP88ׁFGuskӨJ$+8)e3))mFppǃ͘'q7'11a՘vTi+ˍee\;2W }..V^3dFhi=϶]2LLX+ 4k݊M ǣϫӱ[5+%4Ւgf^<ONTuLNb[zv%Bd{{3~}Ͻ|ǫ87g_W 6pc_Oü'-ɀ|ݐN*lQwJXYC/vîN Fp+߭hh{@*oj~pVpo`G&ˢZ1!s))-NT ͢CӲoWx + iJGݸ'gz_6ߘn11(exӴ~~ +"̀()}8UDͤXl;lHmǰõ3qVlϟǩ Q6=`RfRy,UAdP _=C<{NGۚm$ cɎNMx?eX{{\4onZ%vPu6nD|crG2f<<ג}&Ŧۈul7W-FDF[o"FyQ;S^;Ӎωۭ(WY]=z>aGF$ Ӧ"Uh5LW8HVɨۨœãs߫1E`748ϣ eQTVNS-`êcT#.#{׾,hgCݫkGvNRDMˑu}Շ)E_ODX)Rl{ E1vHjQŴhC{zզzTdٻ"lKUd&['eɑwï1XY2';j)Kk}wO cMπyņYa(Q5Ռzٹρ_8َݴ0sRf W͞і2߲^ۑ<\,,(xCSSH:oњXn&:?--ױ +-=`aˎz۫A d +qoo]^E?xg~~RPExYXcMy2ge9O *7| u׬ِrr6Unmb5w!-'5 :zߗLz ݦQ0FѮy( +!/Q>x|AP.$[8n>f^tѿǞ{w|J7"*Pz `)p6 ICVY80z>Rf U)˥ YxuϷxwۼ τ7=+?ѩ{fM- +}w5!S/' +ٍPeXYgRɽpVM /хo#Nb snd{[3'@jzQU? v]ZR#VB +w@%۶ͽс%A߼~:!rK7 r`"5!;!ɕz&p+;P Ät8[k~לPdD"Xh23ӡpZE՜yq;l%8SrlųoIkroA%X 0(r׏˄KnQ#AAHeQf3Nc!O *?zhSIlwyϒ "ݕ*%m=T;dc,hckj;˓6xfI)f3)<ۧ?Ӈ|QJy cF"Q0 qɔWZNJ ɃˏU  ӟOɩDgBWjAba0'ϦmͶч#gop׳LBY aJw L^OSA n [J&2qo+դ6Ϭ#ձ Lyj(kљѸUL߈LE݅CnktB'`GFU!BBMmmiѕTռٮNOupC- V͚'(REbI j@ B+r&A I,Ŋ'(#l23߀`ͩziB@nˈ׊͝h*kKee!uI=L5Y=__*Yu]NhGqQ wnɬQXGf b=Q,Ӯm;bI'MkՀ__7q(r*rl;a>ó١wݻſ"߾--!6EF@Seb\~~ϡpBC/#+ۉr}7sI"\&Pi_u4E5٨tG0SǬNc~GFS˳`p(/Xx6ɰ_) [j9 ,ǭUe3JU/?`ӗ \ͭٲU0xaq*TvϝRr8˚= ɏJ˝ݗ=٪|ݧS1evՊ z-?S1[цٝK8a{3@v׵1w+ X9 _ݓp-6OlxDfۯgѰ2F,,p3ٗr23ɇ͜׆rש%$gۦ*=ɼF,'ˬqZaÀ߱*1POg{ŏgA+ j4@ai 1='nCD+Pd*?cӫj1^fэh#*۪aM)2YfRݡ|vTIlW՗^ x1#ŰBհTSӻɮ CcS[4F!!s7n3\[`NݼwՉIբx.yшjŅUK|ÂyNh,_5s-J`/=\qc_<.sյhVO=וۆ=;:^],b)1DJ /`^|ٚӥDxUݘj ْO/ Od]"V [^;4 PPdUMwۇ%tt'|Tfg0. O͂*ͪ#NӢ^iL rS=T+ǟE/.Qs\T@9( 11@Jdi@S !!mmLݎjgJJ߶PJRYbX7ͥ%LTffO}y%#My˪))BB)&%9[ccvN:\d >d ,zU+$˂xXW8LLթwlrѳK_ppdːս]>56pٵ@Uӵ**BOUU"3M_64p6J__Zpك>÷)vBBKkٖ߁T>ZAbpӜhSѵ3|iz+nq3$5:.P4lp_7sم^{]gT>0e`lj0L:eD`> ӳCߜ@@ŮzT[m +"x.@Jɺ3ϴ%*)V <(EqW9KJݽB.nɂۂ2;"56݉9A1N7`=iSue_JoϖWu~~\kI]U0 } i`J`?'I? MLN7a|sq88ò6$R +qq3Se߆XǏ.b/Ѿi052'˩zjј:̈́oK8Ð,*LPپ{F*oۏ7a/bVy)Yݙd&[\'oZoՃK0X&ߦs\ǯ5d!/A^2ǽ5tuϿkS>ٶQu #[v +U%,ɶ*0(??:\~ٸ,oo\:ɖt"oR9u]7Qۃ R}Ǯɸ:DŽD6>݋r^H09)Fgq.FfP@<]*b9ds K!>ݱ4<^M/fϻ  NBצח#ݰˌ}٧dt!L8ѦrJbVrDT*$q +W+/G?cN"wϪ/:ѓs 2B]KפpG`>)/Vx&+  0M) ۾=AKdhٕw(,S;ݞ\b05[ BR'&I:vaǕɑWXђ0cj`l.9v(?î2 ш^224ˬ6c9kE`|XY5@hmɗ>c%:5Yð>gͭUDO- +gf?@X& ǭ1 Vb^ m ׺- 41 kV [ӹxP4\Wnh< I x4hӧz>F0!"vK ݄٤=lj Gň<qp]RxR~tdiG&>OeFB>Mgc.:bdQ8-5HKVǩ)q'Xàa3Un@G\P-XW?߃,`zDz*:݌_$`LBR(`LUUAluwDBߞ 1U M/=D1-KK[ 6rQը<9rP-׻["a:^MJnBFSCG{vxթ~W/%pwi)v:l.8ApbO\ s> ɃvI-1jʼneՔo Q_ Y~zSH|HE*b "ߠ%V "R4ǂc&\ӄH}U2Ѯ$ KSŎM͒˲ RՏI$˗fz$a ["פ!˔AiifS~P~q<ŘU=ŲM'ϔK.?͈uqx{ͯםeh xnDf߄V@˧j1@VdńòHǪϽߋg'H͹1]ӝ +!>C -$o?}o +q_=+_cWz'njMR#W^Lͥ!e $Ŋ>p2Z{Y߅B3]]A~DAJE|XdU674n(rI$+R)*:U])%646%1&> +oP#|z՚َcӭ +٦n?ik +Fx.œ?& Gŧ߲nK@'~a-h_'t O$RtT?Bùy kVю`P6DZyQ BlɄo A)#.x ǯ-_3~Q-sU#1ӢiٰNGsA{j#bz3s{z˫*}Eљ݅ˑ{z +ÑBw"0y?i`Ӆ6vJCjk|qL5}nXg(BF\|;7k(a)הqmу_ۦ[%Ӟp EWUJV\f)o]2@g۞$ mϋ8іmD_ xiR\Z>`23͔m[,#f}Nb,ŖFr +ÄǢ i1g|E ero)d=HyNjEuUfAY]J`~W1O;m ݠoߺ-.e݂FIPd9û:߶&&Y*בo[6%т G2fHt@e1\c̀-;swO._D> #l7=qz(7(R)aӦ7Y,%ŮEgKnr +uɮN XI16ELRˢ&Q_u?Y٥MtۛB#k +V60՘D[-2K۱!2)ӘCHj7@״jyJ5gH8:/{~.ǣYSQݒ;ţ[xod="ő@Z;uxۆt^HDZ`ۡ<i~cpϕ{BrWc}@Tnr͞,cdy2jMA۝ź GhӔYcSca5ͳ 92g@^&lɞ0ѕǧZ+Dϳl\ ۫ӗ R'э4PPO-tv61ISم-J,ӓyNKoT2iyo~-\?x{Õ| DVp69qӋ9 _$I9'Yuۙ =L|evrpѨ)˸x55z _&kbh +\dѐ5q\cr#,qNSJTkjy7vy6]1ݹx]+b%'3;7g8:q KkSɔjی&RJí`$$p+IυAeˈrUщ^Ņʹ`AsC+V\z?!Xpύ<@`3+%3ϒ٫p; +I$8|kc}˛O8L`)PCPRRō,J Ӳ.ۓ~Aۄyp_/vAss$!|KKjqŕ{Ol2SC׭bi +="Y߈uuF,`C͵فpx)˰M,*vә@ɖ*VI(ۤ>Hkۚ>@n?^v9fMӈv} fVӰi |aa +ϵROkE 29׿) \IshTofKwUX׆ J*fX>4]#׃&#ٷ{h9Gw V5z%Ak0{ٔ!;Q +wPٖ(ӉQ|kFw76P:7[$`TVv4A >QnՙvC&=zUӮեX Na~wrfbl DGnbsEn}Ih'}2D:hy@@M:= + Y6_v|k@QӖ ^3Nיh!^IFj,IU +RT́Z= +8zۮaI]50Pni )o<40ݓ%z=՞b#Ѣ + јI" +rϼ8ŜoOyKO[BkPAvlbk E[LT{3BՐ~=@j~4ÞŻٵQ]Nsݽ0 /YycuP)im<ϸl}S|e#CZY032Yrbl$o5 G'tӸ~}daϢSGqǞ˜*(SL/3ëRJmwvQW ϜzCP$Tۗ\ +'2dC/E{r`L#Dr dYcːp|Y$%%75W}{cŶ6Ѷgcr7'2MiPV)]xXx"YlM)AYӤfg>TN* =͌c_kh*dž4R|V +ɨL`CÜ'/CLkxˣǁS`: ' lN48n%@gon!CߐVYXɢɣL>eQe3Q%d?j˻c'=IuX8T +Xx=!JvBy77لAǡGPRnk+YU>գ $Gzê7U* $Q( |z*lRvW}%vemtBN͆f˴Z~wg+I;w/}UT4[ +%]{ŋ:&eoW|]++QK4X+a-7$dQūOo'`!ձs(Lͻ\Mq&  +s +,BE)jr^M٘Je{HہUզg2۠z}e$,ջ1gt.k?ɴ \p 4+śT6<_`:dz2~ zyÔ81*T: +o}Dռ5Musp{4#GUm_Sd~m9ͦ>Ǜugu2Nô 1$Nd8x55y7ыz=#zB,dv*JbZ͏XC_Z$*9tQ#^T zX *ݰɻlrF"[C]w9BDͿRJ.ia%B '-mC;X>M5Ͱq<Td,˽ozߥj"DTZ"@UۼvI+ǔ `C͸lO"I{τ^Rt i rn~ +G\ۣېۀu0;IåN۸;8>9P1!s?4doM{(WsS.tGXu_˥tt-t{+v٣{ftbӴ wR!tQ6yeSsA3@`O݉[\ۊŏ͢( xlLj wũ*UB0"jt1ӣˆwg8,1dJh,ϩa'UTYdw=j-ɥ@/9"g +^ߦչ[5^6remN˹ŬVZ4Օ3Q/ 5?:= ,ׄwɎ*bCmf'O +."_P8}ۨeG9Rɏ=} 5NJ`'uxb +HMOCu([>^&AKJRpA9+@!]g~^p:VF7(/՝3*%} V+ӎpPa@:{s0׮aXj{$ZÊ0_y9 RyzfSL.U/v(q*2WߑdF.Y3-}Òcѧ49'BE|HKϐs'g9NA+A+Cψ  )ߊ@mױ)E$FA7ۍmaCϨ.#ǵպsRP[0Pj;B;W@v>s[C=/;ɼMQɝ( ەժY yS,+YU՛LP˞Tr%q'͗ wB[UnE Ǻ>`˝@zJU_h|yãݝjZ2eٓ.96''&%=eG TqAߩ" 1\]k;y*W"vP 5xkJ9Ǎˎac!' 3[r&A96d>1j2NnxөVB()NWIu=h9kZ1npH%!^?eZYW T_`7Wdm iuB'd?NwGudݯi q^ d4#f@rNjAaL˚շ*|0lRE UE[(`>wØߟZwߕ6o=go !mu-_C4KS!^)͠#0͑wB cH _TixP#j+s +!g@ n8F-t8)hkxDs<ÂO?(ZqV*$v?=io3w<!"7W3BդˋهWcgx0߰ݪϣa?LF#˟~7ťxJ:GWϊs|FU@)6۲@Mbh5gOC˳c|V +why5dчשъ)ˠ^E%O`ZJלGTA Xs u׉a(jCB"}U4^Sմ\%] 2apN,=|"&LuOsݡ]Us=|FBXǦp ET&,_Y'5z;# +mjzGjNNNc|+ Pۋ*9 dAN/^ӂD4ٟdɀb_qeͣH:MJXɌNzpV`_% ͇QoǼZzx&O"?lBɷӺ7R@ ]d:rN_,P0#i'..A>jzo>Ouk& gkϟߴ߽k%;ٱrb006ZJxH/Oǚ$\D:R jrJïñ:r.sKcS4"$Vh8}߷8}"Hc<&!qů(ѩ?1Sɿ}h]* {pdAT| -b4y{+h[W&"ӌCm{ Ɂ4 +.f0Czϴ8}Cӕ(fپ/$]S+]^E}ݷqc=kߢDǑD<j;EoߜE&tYӵ:,wI)1T.XMuA+yߚ7X*!Kpec^uBqͅ`ZHB| ѱ'$CݣX7Y~,VP>i,Ѻ~Xpnzݏi# Fs +ǘ٩{\&2èxYYoAŦ/sV`vll(u\kϮ{XYËP/^hiš}+:!PT͕~0ɰ\ŽJJ?CÌQwwǸC qUZ7J]}%ktOGk~e^ɠsgKt N pesv}{HXZQ4q*!WBir"KtKr~zGHZrɺ80CӨǟ#Spq$o/ɧ4m#7KpmX9]QU7p16t2D`Ilj)Q/Ƕ#GaHF"!^Ѫv>TMm@PycǓeD\[V}Ϻ_zA:g&(H 9h3uџ1}g!N4ɩ@S_Eь͐>סt٬&W4LSlnM8%3ɚݥ'\ + ټJP !~,ŷ׬[1EuՈ!6Ť~t:K@dDPӁ:a-fբT,IGAKdρpIÎ%{DŽBo68=-9۷lN'݆ ˨g߯MçnFiXvu&##+y0p{##9kŒ"cY Xǜ՗x!kSbkl}&M~;st][9< E{$%xLt"v"V0Ţ߫:@ooA!0F747L8OA>[߿٧[4mJɱ.8_ɭ8ɅA|5J8Y $Axk1 ۏ48RRKH.3=8iiJsnzٺbka#8i?Q{&YgE;A6j*(RϘqUZz{d +;9nA͙ٛכ%yٚ6;Nѹ4-"nj]j5{˩v}1@ Cw? "ZV=V͛"˖B pזg3 +\Q +kB=6 +ێ;r)SɲQ]le^pՒa8Ûr8ߪ>߭~|\m;׊S0:TW"<Q;A1ݙA~kwg2/)E-/D/ۢ5\2c!az"p?՜Q,%`ImÖ%3?U!9˄wR+ӪsÙ pmw /`oqVG=ոV6\k٢\?A)ۅUkGS<_>Ls2˶aN x jVDu$.^#L]!ͮ1Di +Pkr7A]ߒ6نE{1cŌ&-D?l9WNE]ٲsd!=!ӃtF&P5cϿk5}~ۻs.bt^ f5OhZ2{ݕ4u1 @T yO!e)bgL&55SffɓLPBoa3 TǴ~ %7ϏPt8*3Ÿ##۪xCO@s*.t..חj9):*_;\ͩwdF ' E]zZ<RfgZOJjyY24?M9٪ B>Qk +%MM2׼/ z:dyGnt8`͎"ݐA b3m5x>?JTс\HY{j+o@Y(l!YGhѳ 3CgH^||.>qّ'N3^0.DO-p 4דvi^קmuǻݳ,ךg6dn/- 6Z_wnV͜P'˕2\fٝ.EawU#Cig1#k^ӫkx'l/Ro<[hˊ1hjalDI׀Aǀ)iY,77 !-A=KcϯǤWhb mQ;@S +|˭ I@s#']*'O۶ݮELlς H`Q #HhC(l|` [/RY&M]e?˙х65- :$-EŰn$SFz ++F R[boBI~ s<kK3p5 +Oe÷I\K},V vd7]Z{T Xm=7(|Oŗ2;Ŕr'eK?fT5G pRE('rLymհP3ǿHAxÍ@U8SfcwD6ϖ8iR*m|5 ۽}n`he)Hm\YnǾ7l ;˺EHX@=`->c_-|bMc^dx7ѸH*" 4DTs_v=bJXjG7uwm+bbىPQQI5F41٨B7J?ǏpUJv ZHdݫZE1_^Ӏ,cw hoL8tal2ϡwߌawa{Ktv:ݑj(OB1!yV+˅ٗj)} (C!V+z ff%Rӡ: 2fѴoYpћo((I7&*h(*}/rMhѾ|RKH&a ע%:#G xտ> yUZ`D62[t&[˪!ItLF/ӿ^Nq 0Kgza]u-y6o*|SǝlX?A=ioɡ3ET rOI^ [+Pos8;^]L}Q3F[5jpRW׶>ǎՎ,6~>=d+YL"*0 ǹO\W6x;Eu$[ն0~5- ׈׷h/χ8{v'p./tLouїHr^Z,w((f.~xF$ϭX"3Z?#D53i׋{;ۘcLJ>f!V&BG0~ZMٶѓJ~q\M+ Nj$pDó9GIJzpVYtW(ͤXdÃ`߀I; ՂrF<ZS݀xNrQF3-M,Cy <i!e˯:ɛv&2Vd+ݎ$Q_Ѭ=F<(mN).J{,q.\ +ai4MɬeCǽn,l١606lduˇgO׾ɉų:!݇ gqۇD/ɕFhn'^ߵ?kM8Jٻݻ+úOrGEgϱϞiOj0NrUEM+P/Nb\2!\+9eBN՟N ՠͶɟt4C>MO͝:y݁6!Q×UI[łŚ; Oc}eɯ:QӇ# &0 B)%i݈w~%˷ݱW{\hKbF0h}Xd*!.ѿ2Ň'`au^XQ.(Y0uj>}Te׹fװ'I8ßG53DsqMɋf"ט("˼[S1@J&Cצ%h}<iW'i=WC\97*GRhz3tr4 ű=ӟ:o)LYو pUei~ݵb;5Ydh,mnPh , F%2 ɪÀ +AUnɂ5]]IYX,SRu\Ֆ,gcgQ#}bm$GT9ia(ϑm;rנݔ_ErÈJ[ϪѲ?|z˃խQ];Eߍ%B_}iìE|ͱɐ_gOs1H+ǖG}7H8t`<1VF9`fDv.;;b%SH@l(zg#-U2des [;?o ɽ%6&-[+L=qXt')ϧbӒxKqv"xվwz8T;[KM׳f1":[ fnzsR\~xhI9G_F ׍] +^Ǭ JvOӚ_r? fكǙB$!Ft\LG;-#xuONןѭ6rLZsѰ^|l)۹ŹDc˾0QŴglpÐ qۧ^A(P˓ +1B>a3\ZeO/o(H +FU[GI!o0%7e$'43cP/YͧxY hFzقߧ^aQ=/eӊ m 2, wác`G>chnŝG*<v7D;߬d'w7=m](#"1_ +3')|"7 u2|K#:E,&8/ I vA!Ϯ'/SS3ͅ !{% !0{? Mi- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?a" +4 +G2!^ # UfJ$=ۀ$ U?w y". +C ;#i"$%=/C/:#)1=VADtD! +*4.sJ#! .Ӱ!!tKSݱ6t"DF{Cə"$ŏÃ* @=!!{M " >WӖ!""( +E;D"#3q*"! + 8L) "{w ~ 6qFz͋p+95 E*/:>!Ӥ['Q[0K$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH;?7;|`dzK@VJ":/ "T  y 0  +(@ v## 0h& 9"! 7k; )/( LG$" xN !$O! "c u 'G/ o "j  V  2;B +V!2B!!vvɆ )FQA$.R @# +x|+6P!h)c;?V: + ˡO"4{;(@=(6-۵B|E G* CL( ',i .%o5_wϔ8541S8%\.$a+-K' +`"1+k-"1M!$C18I 2 ?! n 3C $12(:`*'',9F Mv9.I-h! 6F($)$'+-24%'12'",0+<8 ɲ D|+  )ð2z+AY,6(JV$8Q4"F K%*#\(OC#-L!<L !K"(r!8+F";"WGBg (]U. ,+Z/J +?2c #BB$$ \F/C8|Q (y"lZ "RSsC.#sg&$#LW5( Z7RFp!. %ӓ o͇L'$ + +#HHɍ +5*T  #Ņ @PYM*D*M +.~>E!BdQ$#"їS #3 + +ѐ5"[-]0!! "#žv5 SA7 !%!?ICBQ)0ۉL'!D=*" #< V,(5 Z?/%! +~0O =u ϯ3nz4# +_dO.  r  C(ѕ&'(=^&'&!+# J5GM%(k D!n(7ayE EOCS!VAPpO}!#"L +#9C|+DL"~٘& #r2,-Kk #ŋ:1)-y#. "%Q|)g +* "I{<$f%` cVDD" C;Yx!)tA. 9B7^ +=%H-C9p_- 3'"@DDK۱ +)NA˲+'x'/r(%(b$>7+(- :/&]!9&7)#"QC%1"I #&5uEDK.'0*5oI7ݍ" C+E C)1ň'  B5=>_.E-='=d(O"G  i y =U=8yB HxG/X8?759W-"W{m21. %zr "= ˸KF%0\Un:}1 +M.>ǔǾ:*фKd!o"(Rt' J)% %L*הW2B;7SB &Z( , +Y-4o5+J *t#  ( "",  y!D"z5x4*CtM>GhG=qזI '"j~5=71b.O;R.}h%/n 2 %6%;=q 9Qr52q8O$w7--a +t;w8s5E$/)]i~($ߔRDn!$VbH8՚PKLJszGurBّa 3c2\Lrf#!ӆ l@TW߽Yt (NNG A1kn1R`<'߰ѡ}0(qJ](ӛ@!˩~TD.1+H)5 .Ǣ#2;H"/;;8>[&K[zU!>%Ӏ g۔?M9")G +5%Y90{$70^3-i.n$"gVb&'a5-6C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$*Kkk%;K)stA=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N;'ϛC˧)d,.""U!0= ?Q~0>y*p +~)AHj'ôOvai Rtcr0c85ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v.|\͙U*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '/Æ ŀxչ0cѤ)v"v2Z#M U GGUa# +#b|i_=!ϕ"&)J '%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!E|էgOD'ϱ)>,# ɰE##o*@(2 $ + $!1)'E'A\$  #!C  +'@2.')O+/."_r. ^/G/r$Q).<?BYr&22  W_651'Z+1*qx&,I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ / +#!)4/ D/ <" " ( $U1C) CV- 9h x@  +F?L Q 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45d{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!*MA)b!4}9!0}AL"א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5 +C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J +A$)$ !V + - 2C +;"Ѩ(' +D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^ +'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#; +)st/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A  +Mw xO mN}`WGE,8nj˃í(iBz +'`g' +Pb 80'B#6Ez'nɦ!/71'w-0$ +u+Z#k;łm?!"P5?L ;?-?!C#& +"}9Eb'='|;s9" !(x= +E oD ۗ>KDDG j< +׉OHc'C")!W x#!5{1#^s7&7/G>~݌~ݪ+S8".ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'ŞhXd w=Lє ߋ6c?A1 ?D;X"eXy"G5p4;":8uv'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S +X"us"OXl +"\5r!bBy"( 1.6@IYńYyL7$B?g8!9M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C~)!Q`ÿKrP81HEFE.J$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ +;aG4$ "2Q%h~W8*Mɨ178ϣ QN`êcT{׾ݫkGNRˑu}_EHC${Bzզ!zٻ&['e '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s +<W.M߲^05<8?C4S1( -:#1 +I!z1'q+~IZPE2&(2e2s   uِr/6! :Yz#LKQ0yL +!Ş/AP.$'#^ " "P*ѯ "C <)| Ex uF! + +w"'# +P(X+R p+!,;<[&"v$#7"% 9K~2}# +:G="C#-u "}*) V;Nn s;* ?D m@  +m vсA߼: ."!'pe+; tkPKd#&E;gY8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)ۚdbݻ-+Ő)! +SG" K%# " a1KM)4'^##F/}#(/7;I"\&P>i_45٨.tG0SN~`x6 ,U3J /ͭU0xaqW*T= ɏ"Jݗ=.ݧ!S?1t[цK!v׵!1w X _p#-/Ol D!ۯg9j,3r#_ɇA793r 9#CB*|# b=qZ1U017 *4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( % G xW#ŰBհ( C[4![s7n3[aNݼwU.yjD/2!H1[ ),3TJ/*#4 +C<7=p;I9## +O-DD& "TM`^|Y ++3 G.1 B 3s (=тt'O͂9* *##NoL r !97T+!EZW/.s\T@9( 1@Jd@ m#߶J-S?"!L%&O.B #T.0FF%)QO1BE:у9"3:  ,MA$*PWK (w +l.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI# )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم{C>0`#9:B #>! CY@ŮzWT\ +U!@ +3% M(EW9˔J' .[fɂۂO2"1GN*"J$W'I4U3  p#(iBJr`?r" +Lalq8%6|$ŕ +@3S߆XǏ' #:VK5Ð1Pپ{#*oF3a8/2yFYݙ)['5{Uog&ˀs\5zd/A25ǕtuI>xu' #[˰v +K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*( +>݋H )F! Q#}x\u.GEA"# y - *8*%B+9: 7PFk+$9 +/ 1Ü>@ !5 ! @04R " #h  +})2! +J('b +M;(,8,'+w -c +ݶ p;)"3V! +>=m](#"1_ +3')|"7 u2|K#:E,&8/ I vA!Ϯ'/SS3ͅ !{% !0{? Mi- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?a" +4 +G2!^ # UfJ$=ۀ$ U?w y". +C ;#i"$%=/C/:#)1=VADtD! +*4.sJ#! .Ӱ!!tKSݱ6t"DF{Cə"$ŏÃ* @=!!{M " >WӖ!""( +E;D"#3q*"! + 8L) "{w ~ 6qFz͋p+95 E*/:>!Ӥ['Q[0K$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH;?7;|`dzK@VJ":/ "T  y 0  +(@ v## 0h& 9"! 7k; )/( LG$" xN !$O! "c u 'G/ o "j  V  2;B +V!2B!!vvɆ )FQA$.R @# +x|+6P!h)c;?V: + ˡO"4{;(@=(6-۵B|E G* CL( ',i .%o5_wϔ8541S8%\.$a+-K' +`"1+k-"1M!$C18I 2 ?! n 3C $12(:`*'',9F Mv9.I-h! 6F($)$'+-24%'12'",0+<8 ɲ D|+  )ð2z+AY,6(JV$8Q4"F K%*#\(OC#-L!<L !K"(r!8+F";"WGBg (]U. ,+Z/J +?2c #BB$$ \F/C8|Q (y"lZ "RSsC.#sg&$#LW5( Z7RFp!. %ӓ o͇L'$ + +#HHɍ +5*T  #Ņ @PYM*D*M +.~>E!BdQ$#"їS #3 + +ѐ5"[-]0!! "#žv5 SA7 !%!?ICBQ)0ۉL'!D=*" #< V,(5 Z?/%! +~0O =u ϯ3nz4# +_dO.  r  C(ѕ&'(=^&'&!+# J5GM%(k D!n(7ayE EOCS!VAPpO}!#"L +#9C|+DL"~٘& #r2,-Kk #ŋ:1)-y#. "%Q|)g +* "I{<$f%` cVDD" C;Yx!)tA. 9B7^ +=%H-C9p_- 3'"@DDK۱ +)NA˲+'x'/r(%(b$>7+(- :/&]!9&7)#"QC%1"I #&5uEDK.'0*5oI7ݍ" C+E C)1ň'  B5=>_.E-='=d(O"G  i y =U=8yB HxG/X8?759W-"W{m21. %zr "= ˸KF%0\Un:}1 +M.>ǔǾ:*фKd!o"(Rt' J)% %L*הW2B;7SB &Z( , +Y-4o5+J *t#  ( "",  y!D"z5x4*CtM>GhG=qזI '"j~5=71b.O;R.}h%/n 2 %6%;=q 9Qr52q8O$w7--a +t;w8s5E$/)]i~($ߔRDn!$VbH8՚PKLJszGurBّa 3c2\Lrf#!ӆ l@TW߽Yt (NNG A1kn1R`<'߰ѡ}0(qJ](ӛ@!˩~TD.1+H)5 .Ǣ#2;H"/;;8>[&K[zU!>%Ӏ g۔?M9")G +5%Y90{$70^3-i.n$"gVb&'a5-6C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$*Kkk%;K)stA=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N;'ϛC˧)d,.""U!0= ?Q~0>y*p +~)AHj'ôOvai Rtcr0c85ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v.|\͙U*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '/Æ ŀxչ0cѤ)v"v2Z#M U GGUa# +#b|i_=!ϕ"&)J '%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!E|էgOD'ϱ)>,# ɰE##o*@(2 $ + $!1)'E'A\$  #!C  +'@2.')O+/."_r. ^/G/r$Q).<?BYr&22  W_651'Z+1*qx&,I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ / +#!)4/ D/ <" " ( $U1C) CV- 9h x@  +F?L Q 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45d{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!*MA)b!4}9!0}AL"א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5 +C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J +A$)$ !V + - 2C +;"Ѩ(' +D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^ +'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#; +)st/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A  +Mw xO mN}`WGE,8nj˃í(iBz +'`g' +Pb 80'B#6Ez'nɦ!/71'w-0$ +u+Z#k;łm?!"P5?L ;?-?!C#& +"}9Eb'='|;s9" !(x= +E oD ۗ>KDDG j< +׉OHc'C")!W x#!5{1#^s7&7/G>~݌~ݪ+S8".ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'ŞhXd w=Lє ߋ6c?A1 ?D;X"eXy"G5p4;":8uv'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S +X"us"OXl +"\5r!bBy"( 1.6@IYńYyL7$B?g8!9M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C~)!Q`ÿKrP81HEFE.J$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ +;aG4$ "2Q%h~W8*Mɨ178ϣ QN`êcT{׾ݫkGNRˑu}_EHC${Bzզ!zٻ&['e '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s +<W.M߲^05<8?C4S1( -:#1 +I!z1'q+~IZPE2&(2e2s   uِr/6! :Yz#LKQ0yL +!Ş/AP.$'#^ " "P*ѯ "C <)| Ex uF! + +w"'# +P(X+R p+!,;<[&"v$#7"% 9K~2}# +:G="C#-u "}*) V;Nn s;* ?D m@  +m vсA߼: ."!'pe+; tkPKd#&E;gY8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)ۚdbݻ-+Ő)! +SG" K%# " a1KM)4'^##F/}#(/7;I"\&P>i_45٨.tG0SN~`x6 ,U3J /ͭU0xaqW*T= ɏ"Jݗ=.ݧ!S?1t[цK!v׵!1w X _p#-/Ol D!ۯg9j,3r#_ɇA793r 9#CB*|# b=qZ1U017 *4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( % G xW#ŰBհ( C[4![s7n3[aNݼwU.yjD/2!H1[ ),3TJ/*#4 +C<7=p;I9## +O-DD& "TM`^|Y ++3 G.1 B 3s (=тt'O͂9* *##NoL r !97T+!EZW/.s\T@9( 1@Jd@ m#߶J-S?"!L%&O.B #T.0FF%)QO1BE:у9"3:  ,MA$*PWK (w +l.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI# )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم{C>0`#9:B #>! CY@ŮzWT\ +U!@ +3% M(EW9˔J' .[fɂۂO2"1GN*"J$W'I4U3  p#(iBJr`?r" +Lalq8%6|$ŕ +@3S߆XǏ' #:VK5Ð1Pپ{#*oF3a8/2yFYݙ)['5{Uog&ˀs\5zd/A25ǕtuI>xu' #[˰v +K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*( +>݋H )F! Q#}x\u.GEA"# y - *8*%B+9: 7PFk+$9 +/ 1Ü>@ !5 ! @04R " #h  +})2! +J('b +M;(,8,'+w -c +ݶ p;)"3V! +>=m](#"1_ +3')|"7 u2|K#:E,&8/ I vA!Ϯ'/SS3ͅ !{% !0{? Mi- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?a" +4 +G2!^ # UfJ$=ۀ$ U?w y". +C ;#i"$%=/C/:#)1=VADtD! +*4.sJ#! .Ӱ!!tKSݱ6t"DF{Cə"$ŏÃ* @=!!{M " >WӖ!""( +E;D"#3q*"! + 8L) "{w ~ 6qFz͋p+95 E*/:>!Ӥ['Q[0K$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH;?7;|`dzK@VJ":/ "T  y 0  +(@ v## 0h& 9"! 7k; )/( LG$" xN !$O! "c u 'G/ o "j  V  2;B +V!2B!!vvɆ )FQA$.R @# +x|+6P!h)c;?V: + ˡO"4{;(@=(6-۵B|E G* CL( ',i .%o5_wϔ8541S8%\.$a+-K' +`"1+k-"1M!$C18I 2 ?! n 3C $12(:`*'',9F Mv9.I-h! 6F($)$'+-24%'12'",0+<8 ɲ D|+  )ð2z+AY,6(JV$8Q4"F K%*#\(OC#-L!<L !K"(r!8+F";"WGBg (]U. ,+Z/J +?2c #BB$$ \F/C8|Q (y"lZ "RSsC.#sg&$#LW5( Z7RFp!. %ӓ o͇L'$ + +#HHɍ +5*T  #Ņ @PYM*D*M +.~>E!BdQ$#"їS #3 + +ѐ5"[-]0!! "#žv5 SA7 !%!?ICBQ)0ۉL'!D=*" #< V,(5 Z?/%! +~0O =u ϯ3nz4# +_dO.  r  C(ѕ&'(=^&'&!+# J5GM%(k D!n(7ayE EOCS!VAPpO}!#"L +#9C|+DL"~٘& #r2,-Kk #ŋ:1)-y#. "%Q|)g +* "I{<$f%` cVDD" C;Yx!)tA. 9B7^ +=%H-C9p_- 3'"@DDK۱ +)NA˲+'x'/r(%(b$>7+(- :/&]!9&7)#"QC%1"I #&5uEDK.'0*5oI7ݍ" C+E C)1ň'  B5=>_.E-='=d(O"G  i y =U=8yB HxG/X8?759W-"W{m21. %zr "= ˸KF%0\Un:}1 +M.>ǔǾ:*фKd!o"(Rt' J)% %L*הW2B;7SB &Z( , +Y-4o5+J *t#  ( "",  y!D"z5x4*CtM>GhG=qזI '"j~5=71b.O;R.}h%/n 2 %6%;=q 9Qr52q8O$w7--a +t;w8s5E$/)]i~($ߔRDn!$VbH8՚PKLJszGurBّa 3c2\Lrf#!ӆ l@TW߽Yt (NNG A1kn1R`<'߰ѡ}0(qJ](ӛ@!˩~TD.1+H)5 .Ǣ#2;H"/;;8>[&K[zU!>%Ӏ g۔?M9")G +5%Y90{$70^3-i.n$"gVb&'a5-6C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$*Kkk%;K)stA=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N;'ϛC˧)d,.""U!0= ?Q~0>y*p +~)AHj'ôOvai Rtcr0c85ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v.|\͙U*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '/Æ ŀxչ0cѤ)v"v2Z#M U GGUa# +#b|i_=!ϕ"&)J '%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!E|էgOD'ϱ)>,# ɰE##o*@(2 $ + $!1)'E'A\$  #!C  +'@2.')O+/."_r. ^/G/r$Q).<?BYr&22  W_651'Z+1*qx&,I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ / +#!)4/ D/ <" " ( $U1C) CV- 9h x@  +F?L Q 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45d{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!*MA)b!4}9!0}AL"א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5 +C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J +A$)$ !V + - 2C +;"Ѩ(' +D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^ +'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#; +)st/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A  +Mw xO mN}`WGE,8nj˃í(iBz +'`g' +Pb 80'B#6Ez'nɦ!/71'w-0$ +u+Z#k;łm?!"P5?L ;?-?!C#& +"}9Eb'='|;s9" !(x= +E oD ۗ>KDDG j< +׉OHc'C")!W x#!5{1#^s7&7/G>~݌~ݪ+S8".ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'ŞhXd w=Lє ߋ6c?A1 ?D;X"eXy"G5p4;":8uv'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S +X"us"OXl +"\5r!bBy"( 1.6@IYńYyL7$B?g8!9M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C~)!Q`ÿKrP81HEFE.J$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ +;aG4$ "2Q%h~W8*Mɨ178ϣ QN`êcT{׾ݫkGNRˑu}_EHC${Bzզ!zٻ&['e '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s +<W.M߲^05<8?C4S1( -:#1 +I!z1'q+~IZPE2&(2e2s   uِr/6! :Yz#LKQ0yL +!Ş/AP.$'#^ " "P*ѯ "C <)| Ex uF! + +w"'# +P(X+R p+!,;<[&"v$#7"% 9K~2}# +:G="C#-u "}*) V;Nn s;* ?D m@  +m vсA߼: ."!'pe+; tkPKd#&E;gY8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)ۚdbݻ-+Ő)! +SG" K%# " a1KM)4'^##F/}#(/7;I"\&P>i_45٨.tG0SN~`x6 ,U3J /ͭU0xaqW*T= ɏ"Jݗ=.ݧ!S?1t[цK!v׵!1w X _p#-/Ol D!ۯg9j,3r#_ɇA793r 9#CB*|# b=qZ1U017 *4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( % G xW#ŰBհ( C[4![s7n3[aNݼwU.yjD/2!H1[ ),3TJ/*#4 +C<7=p;I9## +O-DD& "TM`^|Y ++3 G.1 B 3s (=тt'O͂9* *##NoL r !97T+!EZW/.s\T@9( 1@Jd@ m#߶J-S?"!L%&O.B #T.0FF%)QO1BE:у9"3:  ,MA$*PWK (w +l.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI# )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم{C>0`#9:B #>! CY@ŮzWT\ +U!@ +3% M(EW9˔J' .[fɂۂO2"1GN*"J$W'I4U3  p#(iBJr`?r" +Lalq8%6|$ŕ +@3S߆XǏ' #:VK5Ð1Pپ{#*oF3a8/2yFYݙ)['5{Uog&ˀs\5zd/A25ǕtuI>xu' #[˰v +K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*( +>݋H )F! Q#}x\u.GEA"# y - *8*%B+9: 7PFk+$9 +/ 1Ü>@ !5 ! @04R " #h  +})2! +J('b +M;(,8,'+w -c +ݶ p;)"3V! +>=m](#"1_ +3')|"7 u2|K#:E,&8/ I vA!Ϯ'/SS3ͅ !{% !0{? Mi- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?a" +4 +G2!^ # UfJ$=ۀ$ U?w y". +C ;#i"$%=/C/:#)1=VADtD! +*4.sJ#! .Ӱ!!tKSݱ6t"DF{Cə"$ŏÃ* @=!!{M " >WӖ!""( +E;D"#3q*"! + 8L) "{w ~ 6qFz͋p+95 E*/:>!Ӥ['Q[0K$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH;?7;|`dzK@VJ":/ "T  y 0  +(@ v## 0h& 9"! 7k; )/( LG$" xN !$O! "c u 'G/ o "j  V  2;B +V!2B!!vvɆ )FQA$.R @# +x|+6P!h)c;?V: + ˡO"4{;(@=(6-۵B|E G* CL( ',i .%o5_wϔ8541S8%\.$a+-K' +`"1+k-"1M!$C18I 2 ?! n 3C $12(:`*'',9F Mv9.I-h! 6F($)$'+-24%'12'",0+<8 ɲ D|+  )ð2z+AY,6(JV$8Q4"F K%*#\(OC#-L!<L !K"(r!8+F";"WGBg (]U. ,+Z/J +?2c #BB$$ \F/C8|Q (y"lZ "RSsC.#sg&$#LW5( Z7RFp!. %ӓ o͇L'$ + +#HHɍ +5*T  #Ņ @PYM*D*M +.~>E!BdQ$#"їS #3 + +ѐ5"[-]0!! "#žv5 SA7 !%!?ICBQ)0ۉL'!D=*" #< V,(5 Z?/%! +~0O =u ϯ3nz4# +_dO.  r  C(ѕ&'(=^&'&!+# J5GM%(k D!n(7ayE EOCS!VAPpO}!#"L +#9C|+DL"~٘& #r2,-Kk #ŋ:1)-y#. "%Q|)g +* "I{<$f%` cVDD" C;Yx!)tA. 9B7^ +=%H-C9p_- 3'"@DDK۱ +)NA˲+'x'/r(%(b$>7+(- :/&]!9&7)#"QC%1"I #&5uEDK.'0*5oI7ݍ" C+E C)1ň'  B5=>_.E-='=d(O"G  i y =U=8yB HxG/X8?759W-"W{m21. %zr "= ˸KF%0\Un:}1 +M.>ǔǾ:*фKd!o"(Rt' J)% %L*הW2B;7SB &Z( , +Y-4o5+J *t#  ( "",  y!D"z5x4*CtM>GhG=qזI '"j~5=71b.;R.}h%/n 2 %6%;=q 9Qr52q8O$w7--a +t;w8s5E$/)]i~($ߔRDn!$VbH8՚PKLJszGurBّa 3c2\Lrf#!ӆ l@TW߽Yt (NNG A1kn1R`<'߰ѡ}0(qJ](ӛ@!˩~TD.1+H)5 .Ǣ#2;H"/;;8>[&K[zU!>%Ӏ g۔?M9")G +5%Y90{$70^3-i.n$"gVb&'a5-6C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$*Kkk%;K)stA=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N;'ϛC˧)d,.""U!0= ?Q~0>y*p +~)AHj'ôOvai Rtcr0c85ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v.|\͙U*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '/Æ ŀxչ0cѤ)v"v2Z#M U GGUa# +#b|i_=!ϕ"&)J '%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!E|էgOD'ϱ)>,# ɰE##o*@(2 $ + $!1)'E'A\$  #!C  +'@2.')O+/."_r. ^/G/r$Q).<?BYr&22  W_651'Z+1*qx&,I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ / +#!)4/ D/ <" " ( $U1C) CV- 9h x@  +F?L Q 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45d{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!*MA)b!4}9!0}AL"א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5 +C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J +A$)$ !V + - 2C +;"Ѩ(' +D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^ +'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#; +)st/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A  +Mw xO mN}`WGE,8nj˃í(iBz +'`g' +Pb 80'B#6Ez'nɦ!/71'w-0$ +u+Z#k;łm?!"P5?L ;?-?!C#& +"}9Eb'='|;s9" !(x= +E oD ۗ>KDDG j< +׉OHc'C")!W x#!5{1#^s7&7/G>~݌~ݪ+S8".ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'ŞhXd w=Lє ߋ6c?A1 ?D;X"eXy"G5p4;":8uv'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S +X"us"OXl +"\5r!bBy"( 1.6@IYńYyL7$B?g8!9M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C~)!Q`ÿKrP81HEFE.$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ +;aG4$ "2Q%h~W8*Mɨ178ϣ QN`êcT{׾ݫkGNRˑu}_EHC${Bzզ!zٻ&['e '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s +<W.M߲^05<8?C4S1( -:#1 +I!z1'q+~IZPE2&(2e2s   uِr/6! :Yz#LKQ0yL +!Ş/AP.$'#^ " "P*ѯ "C <)| Ex uF! + +w"'#P(X+R p+!,;<[&"v$#7"% 9K~2}# +:G="C#-u "}*) V;Nn s;* ?D m@  +m vсA߼: ."!'pe+; tkPKd#&E;gY8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)ۚdbݻ-+Ő)! +SG" K%# " a1KM)4'^##F/}#(/7;I"\&P>i_45٨.tG0SN~`x6 ,U3J /ͭU0xaqW*T= ɏ"Jݗ=.ݧ!S?1t[цK!v׵!1w X _p#-/Ol D!ۯg9j,3r#_ɇA793r 9#CB*|# b=qZ1U017 *4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( % G xW#ŰBհ( C[4![s7n3[aNݼwU.yjD/2!H1[ ),3TJ/*#4 +C<7=p;I9## +O-DD& "TM`^|Y ++3 G.1 B 3s (=тt'O͂9* *##NoL r !97T+!EZW/.s\T@9( 1@Jd@ m#߶J-S?"!L%&O.B #T.0FF%)QO1BE:у9"3:  ,MA$*PWK (w +l.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI# )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم{C>0`#9:B #>! CY@ŮzWT\ +U!@ +3% M(EW9˔J' .[fɂۂO2"1GN*"J$W'I4U3  p#(iBJr`?r" +Lalq8%6|$ŕ +@3S߆XǏ' #:VK5Ð1Pپ{#*oF3a8/2yFYݙ)['5{Uog&ˀs\5zd/A25ǕtuI>xu' #[˰v +K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*( +>݋H )F! Q#}x\u.GEA"# y - *8*%B+9: 7PFk+$9 +/ 1Ü>@ !5 ! @04R " #h  +})2! +J('b +M;(,8,'+w -c +ݶ p;)"3V! +N   +/W% +M-?5 Jt*?H: G8 53B== K$m=3<c!I .&- coD GS GA 6 BX IMkF +> +5%Y90{$70^3-i.n$"glj%Vb&'a56C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$Z *Kkk%;K)stA=mDjE;T!(/ u\ Q%L(+]*4EFK <)DJ N(Ӱ;'C˧)d~,.""E!0= ?Q~0>y*p +~)AHj'Ovai Rtc2`r0c285ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v. +|\͙UÒ[*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '1^/Æ ŀxչ0cѤ)vEi"v2Z#MK3""! U GGUa# +#b|i_=!& x*ϕɾ"&)J 'r1>%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!!E|էgOD'ϱ[)>,# ɰE##o*@(2 $ + $!1)'E'A\$  #!C  +'p +@2.')O+/."_r. ^/G/$Q).<?BYr&22  W_651'Z+1*qx&[)",I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ / +#!)4/ D/ <" " ( $U1C) CV- 9h x@FCH  +F?L ͔I;XQ 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45 'Gd{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!=*MA)b!4}9!0}AL"h*א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5 +C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J +A$)$ !V + - 2C +;"Ѩ͊(' +D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^ +'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#; +)st/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A  +Mw xO mN}`GE,8nj˃í(iBz +'`g' +Pb 80'B#6ˆEz'nɦ!/71'w-0$ +u+Zb+~-X@#k;Y"ł"m?!"P5?L ;?-?!C#& +"}9E#Kb'='|;s9"  !(x=C E +E xJ#oD ۗ>KDDG j< +׉OHcE; )!W x#!5{1#^s7&7/G>~݌~ݪ+S8".[ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'~!ŞhXd w=Lє N٬5"ߋ6c?A1 ?D;X^ 7["eXy"G5p4;":8uvg'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S +X"us"OXl +"\5r!bBy"( 1.6@IYńYyL7$B?g8!"79M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C6?~)!Q`ÿKrP81HEFE.$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ +;aG4$ "2Q%h~W8*Mɨ߫1748ϣ QTN`êcT{׾ݫGNRˑu}_XRE1vHC${Bzզ!zٻ&['ew '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s +<W.M߲^05<8?C4S1( &2-:#1 +I!z1'J,q+o9](~IZPE2&(2e2s   uِr/65! :Yz#LKzD  Q0yL(} +!Ş/P.$'#>/&^ w" "P*ѯ "C <)| Ex uFxJ! +  +w"P(X+R p+!,;<"[&"v$#7"% 9K~2H}# +:G="C#-u "}*) V;Nnb5 s '$;* ?D m@ Ba +m vA߼:7 ."!'z pe+; tkPKd#&Ey";gY#8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)ۚ́?dbݻ-+Ő)! +SG"$0 K%# " a1KM)4'^##F/}#(7;\&i5tG0SN~`x6 90 ,U3J /ͭU0xaqW*T ݗ=.v ?1t[цK!v׵!1w X9g/l D!ۯg9j,3#_ɇA793r 9#CB*|# b=qZ1U017 *j4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( % G xW#ŰBհ( C[4![s7n3[aNݼwxU.yD/2!H1[ ),3T5J/*#4 +C<7=p;I9##,0 +O-DD& "TM|Y ++3 G.1 B 3s (=тt'|TO͂9* *##NoL r !97=CT+!EZW/.s\T@9( 11@Jdi@ m#Lݎ߶PJR-S?"!L%&O.B #T.0FF%)QO1BE:у9"3: ,MA$*PWK (w +l.d,)g"p+(JB 3-3v .-p=6JZ>#vI#B )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم^{C>0`#9:B #>! CY@ŮzWT\ +U!@ +3% M(EW9˔J' .[fɂۂO2"51GN7*"J$W'\KI4U3  p#(iBJr`?r" + Lalq8%6|$ŕ +@ 3S߆XǏ5' #:VK5Ð1Pپ{#*oF3a8/2yFݙ)d#['5{UogZDo&ˀ5zA25ǕuIS>xQu'#˰v +K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*( +>݋H )F! Q#}x\u.GEA"#5!& y - *8*%B+9: 7PFk+$9 +/ 1Ü>@ !5 ! @04R " #h  +})2! +J('b +M;(,8,'+w -c +ݶ p;G* )"3V! +>H!D =m](#"1_ +3')7 u2|K6)%F2;^/0 ."b<p!7"ID:$!$##DE !A +M+(5 1br A/< # +,H1 .W# *er') +  Y#-6.  -1d(#*wo(D!(<>0)\.B7  $/1HAC8 +=2'0o(2/dQG;lը"%!8% 2cu"9wYFn7-vFx\2uT-? Þ~Kߩ:K<{ iN-8/O +*: w 2FV`L)'N<& -!# |G0` c(-'+  j!$ %3a A + w*/"$"O /! }"#)- P(? (0A-*K"$"7'!#>IC;U)! -&c3&/`&#I"<ׅ , A;1S 15@U(9!0*G#`0) ל D-w)_/; S'7+?!$7*W "-(e !KY*|# G `((#! l ;! 5" (1 1! A*@#+A'I"9&P %~9!(I%-! ~w+$5"V 'v A>qO;I U 8! +Cj $Q#P !E? 7ɓ +fL? ++QK!19? X$)$X,$ )X#E!="9  <[N&/ ]C?9%#:M$)5%#!-(%i-N5;'5')%3071/A"+ "*;_-]b15ɛbB{YuOσ4VI[[Ӑ7w|f!˵PŇY "1Ӭ #L'[XQ:E,&8/  I vA!Ϯ'/SSz$3<ͅm !{% !0{? iC- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?8a" +4 +G2!^ # UfJ$=S bۀ$ U?w y". +C ;#i"q>$%=/C/:#)1=VADtD! +*4]/(sJI##!  .+Ӱ!!tKu.1Sݱ6t" "%?DFF!){Cə"$ŏÃ* @=!!{M >WӖ!""( +E;D"#$&q*"! + 8 "#}{w ~ 6qFzp+95 E*/\!#:>!Ӥ['QV[0S,?)=.mK$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h WSH(.V1X,;?X=;? ?1[7&/ 'p_| ;%9'!,u*mxCa @* ٔ$-E ;AJk 0 1X7;{4]]Y"y#1_@>;dWzK@VLJ:/ "T  y 0  +(@ # 0h& 9"! 7Gk; )/( LG$" ) oxN +  "c u  o "j  V  2;BH! B+V!6H$  x2B!!vvɆ ) ?   F!Q!RA$.R :@! @# +x#!"|+6P!h)'G/Fc;?V: + ˡOsb4@=(6-x۵B|E G^$6S* CL( ',i .%o5_(cϔD& 1*J/ !GO #=@?#`*I+B8541S8%/ˈ,\.$a+-K' +,.9+k-"1M!$C1 A5 2 ?! W F3 n 3C $12(:`9"w*'<5 f7!" (12h+D%9 Mv-h! 6F(E*L75,0$)$'+-"eE24% '12'",0R)46>+<8 ɲ D  s*)ð2z+.>*Y,6(JV$8Q4%*#\(OC$L#-L!<L !K"("D* +.~>E!BdQ$#"S #Cq3q + +ѐ5"[-]0!! "žv5 ݄SA7 !%!?ICBQ)0T7ۉXL'!D=*" J#!ߗ< V,(5 Z?/%" 'i"& +~0O =u ϯ3nz4# +_dO.  r  C&'(=^&+# J5GM%(n(7ayE EO!VAP1O}!!WL +#9C|+DL"~٘&#r2,-Kk #ŋ:1)-y#. "%Q| "{<$f%`ϗ'۬ Aݨ&c&VDD" C;YvW^q R"Ix!)$7ctA.uAr#C 9.-vDB7^ +UA1rEH-C93'"@DDK۱ +)3a˲+'L7x'/tBMr(%(b$>7+7!E(- :/&۷7 &7)#" +CQC%1"I #QG8%A&5.7uEz#&DK.'0#E +F*5!9ueCE$7oI7ݍ" C+E C  8E=.E-='=x(/ՏG  i y =; U=8yB HxGX8?R79n-{ÅN.2. %zr "= ˸ O +6KF%\Un: }FǔǾ110:*;'фKjdu^!o%"(Rt' p;!J)% z%L*!!הW2B;7SB &Z( 0 +Y-4o5J * Ӈ '0t#  ( +ё"",  y!D"z5x4*C!tM>GhG&" N9=qI??v% '"j4~5=71b.OR.}h%/n 2 %6%=[&K['ņɒzU!>%Ӏ g۔?-"1 + +9"M9")G +5%Y90{$70^3-i.n$"glj%&'a5-6C01;w A:FF]QdMA+$ALF])ߢG,k%g( )/)m'c>:&͟ Pq;)_'R@ ۅb,R&$Z  =v*KkkT%;K)stAS=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N(Ӱ;'ϛC˧)ˉd~,."ߴ!P"U_E"QJ= ?Q^q-.~0߅> y*p +~)AHj'CôfOvEqջyPS)ai RH2`Vr0c85ׇװ5jcW9ߓB6۲c6S?ɟp/9 +Ӛ.S\w5zJcZF\۽v.ZA +|\!Ò[9sFɧ&$:9}-/]+Oo'-$b? q͟2ӹ Pݮ=oT(%Ƀ- >L.]'& EՇ')$$_B ;CBCTd H *, M$a '1/VÆ 8ŀRիxչ5-0cѤ)vEi"v;2Z]h#M K%3_"H"!DU GGU)|a#u +#"]b|i_{=!& x*ϕMɾ"&):oJ 'r1>%JţͰjǑ;ӎ!7C+sEjx; pnM}vLe:b;' G+1b!!tE" +`|էgOD'ϱB[)>,# ɰu% -E##o*@(2 $ +1c!i $!1)<'Ei!"!(M#'A\$  #!C  +'p + @2.')O+/."_JF r. ^/ l(!G/r$Q).<c ?BYr&22 #   W_651'Z+1*qx&[)",I-?11h(  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?/ +#!)4/ υ)D/ <" " ( $U1C) CY=R>V- 9hhK YrK';!s*9| x@!)9#)FCH  +F?L ͔I;XQ 3!|2G]I*K 7'5# ߣ#OL=EQ;!' ! AL(3F!>F?J,)_8! %ˮ<qHOUvK'45 +\@ 'G{)IYCu2vxC' 'pB" )+EL>J&ɪXSi-no?6ǁ)A##՜- _"O";/(#"1:1xA&\'_!= =gJ ?3)*xW9 &8!#1t 7(=*MA)bM*!4}9!0}AL"h*r&'א;i<) $s.>) \ɗpHP E&vCxCj&*TE=E_ǨOˊT/A5 +C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2E$&-/\;c] *J +A$)$ !V + - 2C +;"Ѩ͊(' +D*"$B("&2(+!E$#&)*.+$+" ~D ?#-!>**"DF +O S? Y5( A7o G-$#*U H .&)+Dd;ٰAY/M q! P+*17 / ?' r $'2^ +'a(}+7"/ AF!$(]1) #E #(F4* -'b$E+)t M# ,C '#; +)st/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4~!r`CX9zK]:JJ(5(WK "].y!l#p'>1%ۃ( U2"{;L*A  +Mw xO l9"լ}`WGE,8nj˃,í(iBz'g' +Pb ˆEz'nɦ!/71'3w9-0$:b+~-X@#k;Y"ł"m?!"P5?!C#& +"}9E#Kb'='|;-/s9" !(x=C E +E xJ8 M#oD ۗ>KD )DG jOHcE; )!W x#!5{1#^s7&7/G>݌ݪ+S8".-[ёϯ?yA1/v 7u==Z @ K?/ŒMBG ezSm IɁ-<A Dѡ,mB Og H!#5gAC59BeADy#/ð:;$4׼e#=#3}"DPL9[] #|ö83'~!h1Ad w=LZє N٬5"ߋ6cA1 ?D;X^ 7W"eXy"G":8Rvg'a( "$i   Y 7vDٔVCJmͬC-DZ?|÷ɊOل;{S9 +X"us"OXl +"\5r!bh{D94( 1.6@ SIYńYyL7$B?g8!ߡ"79M"} C?e{A;ϭC!? 0)/s)e/Jt;]%w"G =-y7aѶP%bu"6?~)!Q`ÿKrP81HEFE.+))CFpA'aT!"i+ˍ 7}K/F=+/϶]LE + A"k )݊M ӱ[4Ւ +;aG4$ "2Q%h~W8*Mɨ߫1`748ϣ QTV-`êcT#.#{׾,hgCݫkGNRDMˑu}Շ)E_ODX)Rl{ EHjŴC${Bzզ!zTdٻ"lKd&['eɑwו" '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s +<W.M,)'?C4S1( &2-:#1 +I!`55g~IZ1˟PE2&X1M(2e2s  | uِr/6Umb"5w>"!  :Yz#LK0zD  Q0yL(} +!Ş/AP.$'#>/&^ {#!w" "*{P* `ѯp!B "C z!) < Ex uFxJ#τH! + +'  +?B!ѩ M +#ŕw"'# +X+R p+!,;<"š[&"v$#7"% 9K~2zK EH# +:G="C#-u "}*) V;#K2'Nnb5 s '$;* ?D m@ #.| +m vсA߼~:!r7  `"'pe+ tkPKd#&"!JXEy"qY8lųXɸr A˄K"QA"AeQNc""OJ !*z%SIl ! %=0T;dc,Ǩh;Okj;lt˓6fIj)H3)UWۚdbݻ" -+Ő)! +S+G"$0 K%# " a1K.##$x M)4'/-0#F/}#(/7;I"\&_45٨.tG0SǬN~GFS`p(x6"_) [90 ,U3J /?!ӗ\ͭU0xaqW*Tv&Rr08= ɏ"Jݗ=.ݧ!S#v z-?1t[цK8Xa!v׵!1w X9g _p#-/Ol ۯg9j,3p3r#_ɇA793r 9#CB*|# b=qZa1U017 +& *j4 MC* '*?cӫ1-##>Vq0DL##j"2  (T"$'I<1/#1 ( % #G xW1#ŰBհ(ӻ CS[4F![s7n3[a`Nݼw#IYxU.yшjD/2!H1[ )N,3Ts-J/*#4sZD- +C<7=p;I9##,0 +O-DD& "TM`^|Y ++3 G.1O1 3s ( C"=тt|T͂9* #No^ " r !97=CT+!EZW/.s\T@9( 11@Jdi@S m#LJ߶PJR-S?"!L%&O.B FF%)QO1BE::  +W&&,MA$*PWK (8-JDl.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI#B )K ߁>JXA pYӜ:S3|Uipz!Zq!,5a.! "p7'sم^{C>0`#9:B #>! CY@ŮzWT\ +U!3M% M(Eq1W9˔J' .[fɂۂO2"51GN7*"S J$W'u\KI4U3  p#(iBJr`?r" + L7al|(q8%6|$ŕ +@ q3SeXǏ/2\095' #z 8j:VoK85Ð1*Pپ{#F<*oF3a8/2VyF)Yݙ)d#['5{UogZDoK0'&ˀs\5zd/A25ǕtuIkS>xQu' #[˰v +K%ɶ*?Y:"ٸ,oo4:!# "ߏ"o& 9u7 &)R*( +: +@56>݋H )F! .< +$Q#}0 x\u.GEA"#5!& y 8*%B+9: 7PFt +9 +/ 1>@ !5 ! @04R !&7I " #h  +})2J(' +M;(,8,'+w -c +ݶ:8  GG)"3V! +18l,Hw_ßu"<8/##k9M2;>)}լ`WGE,8G=m](H!D #"1?*"Q_ͯ +3')7 u2|"|KF2#0)\.B7  $/1HAC8 +=2'0o(dQGlɡ!;ը"%!8% 2cu"w9vKY +ׄFny?-7qv\Fx2Tu-ώ fE?hÞ~LrNKߩ:Kc<{ i-8/O +*: w 2&BF`՛VL'N<& -!# |G0`+  j c(-'a A +!$ %3w*/ /! }"$"O P(? (0"#)-  -&cA-*7'!#K"$";U)!>IC3&/`&ׅ #I"<;1S, A_<Q- 1`0) (9!j! A5@U0*G# D-ל w)_/; S'7(1 +?!$7*W\9:(3 "-(e *A* !K FE Y*|# G `((#! DVl ;! 5" X$)@#+A1! A*O;I'I"9&P %~9!(I%-! ~w+$5"V 'v A>q U 8! +Cj  "1 +jVC&$Q#P !E? 7ɓ +fL? ++QK!19?$X,$ )X#="9 E! <[&/ ]C?9fo57da"#=?%#:M$)5%#!-(%i-N5;'5')]1## 5#A"%3071/8 "+*;_-5ɛb{B~$Yu_σ2LOT4VI[5%,7W|צf3!WPY "1L!8 +JJM#>%#8f +T"!2;5t ύ#"[X$, EQ&8/  I A!Ϯ{'/SSz$3ɋ<ͅm{%!0{? MiC<'&- [5Vbf !%Y,-"U; 9! ѝ7Z K?{8a" +4 +Gv2!^ # UJ$=fۀ$ S bU?w +*4y".IC +C/;#"i>q$%=/#)1:=VAtD!D8]/ #u"(sJ.vI#DZ! .+!Ӱ!tKDSݱu.16t"<#0| +#ј? "%=!{CDFF!)$ŏə"Ã* @!{M Ӗ!"">W "( +E;D"# 3$&!q*"8 + {L) "#} w6~ ͋zqFp+95 E*/\!#:>!Ӥ['Q,')J07)CK=.DK$&&98_  5W8<5=? >J OH (.V1X(X /;? 91X(V$*"201I< ; +;.).-&771MՔ1F;? /#<.#E*3  .#;,#;1%G";F +@2  %.Y"?HC0$1RY1 #?K_D#O%AY +S *.!3W<4XO{4C'"A#)w/ I E ,E' ZE;*"'$=J - "2#!C#6F7 +7 Tz#( ,M+Ow. 1a|6J#  #1_ق˅?M+/[H$XK|(X0k i2 +0u# ٔ$J׶>n&/|  'p_%;9'!,u*mqa}#'xC @*1X77A* M1-E ;AJk 0 K4GQ]] ZY"y@Vk>hѯ;sin`dtKoqfWc@nLJ:/" "Ty 0   h& +(@ v## 09"! 7Gk; )/(AٷxN LG$" ) o !$O! + ;B "c u  o 'G/"j  A"EV  +#b 2  $jv H! B+V!2B!!6H$  x2&Ɇ )v w ?   F!A$.F!RQR ! }#! BC $j"@#:@! #!" +x57+h)!/A +Cq'GF?$;14@@ZQ$#"n  72c #/J +?BB "RS  ã $$wPKT%\!Q (\FE1&/C8 |y"lZ?s }C.#sg#LW&$Z75( ׫RFp!%ӓ o.  #Ņ͇L'$ + +#HHɍ +5*T ѕ rh +.~@PYM*ETD >"D*ME!Bd>ї3S #V Cqq+ѐ + =*"+v55"[!! "-]0;W#˚ S݄ +!%!A7 BQ)0?ICˡL'!DۉT7Xz(  #JV, +Oss*4% !t#bu ϯ3(5 )Z?/%0O!" 'i"&y( +~ =G>$ =;(M{ -~6xN2)H/nB1+|E2*;6S* CL $,(zi .5_%o#(cwϔD& 1!GO *J/ I#=`*I+B8541` +S8%/ˈ,K'\.$a+-  y,.9+k-`"1"1M!$C1*5O A58I 2 ?! 5 *LW F3 nN' *.B%:. 3C  \ $12(^5  + j:`9"w Mv*'',9F<5 f7!" (12h+D%9a +.-h!9.I 6F( E*L75,0$73S)$'+-"eE;524%!] 8?2 '12'44-",0hDR)4$6>+<8 g- E)*;?1- +s_dr O.  =^& C(ѕ&'(+# J'&!Z*a D5GM%(!)n(7ak D!EOyE !VACS*+TrQ, + V8Jq #\ +*"F 1WNG(6C2V$LK""1<L !#--!}!!WL#" +;L C,o%qWB R"I!)cq$7t(9 #I E r$ 9 .GD - CL +)B^ +E7=%U ?r+1 9-* G"3"pp9 - @.K%/3aNA˲+'L7x'r(tBM(b$- >7+]97!E(#":/&]!9۷7 &7)# + CFQ1 %; 8G A +5<5.FE 7z#& DK +-' !u9EC7o" 7 ;  ECB %ň 14#'=8E=B5.E>_=E%-=x/GǔO!=  i  #C٘&|+DL"~ ,-#w)"Fr2Kk #ŋfi +s:1)- "y#.!q0 +_%Q|)g +* " *'Y,AWD6(J(B^'U= 8 HxG/Xp?8R759Y۝WF"n-"W{mÅN.21.PF %zr ";} O +6KF%0n:\U 1 +M}.>ǾFǔ;110:*'фKdjϙu^!o%"(Rt' p;!J)% z%L*!!הW2B7S;B &Z(0,o5 +Y-4+J * Ӈ '0,  t#f  ( "" +ё6y!D"z5x4*CG!tM>hGN9&" =qזI??v%?q '"j4~&, 1ߌ0.  -h% R. }n )% <=2 ;5r$ 92q8 ˧7 O$--w"t; 2&[A&d.sA+ $/RDrّB)]i~($ߔaW 3c\29n$!RMV$8RN b[,E8HͦK*PLWr#!ӆ lђfA}}GG1kA 2n1W@T߽`<ӛ'. 9VIJ](ѡ}/0(q@!!q˩D.~F 1)+H.5 2#Ǣ#H"! ;;8>[ cK[&6\ +R3'ņtY (NNӋ +D?L5  dR=9- ?)K ;!K's9ECH8!9#X(I;7 3!R]2GI*='[K 70=5''  DL#,F?JQ;!4&G &  A(3!r5:K'4)_" + %W<`,+ UHO +\@ 'GY )Id([ 'xC' 9L )+pB" 7%Ӏ gQE-"۔?1 + +9"M9")G߃: |:&JU3>;P^Qi=)_?%+ S!n<),Q>, 5&#$ Z X =U3v^={ p)6J kM]B%!!tKf  ۫s:0 r2m`!:e  T!V(!/yu&5J( 9%V+' .*++K .OE<  2) dA p# JS1!&"+( 2ϛNX)ˉd\7F,S ?!Pb" YUoF_-\"9Z!0S\WQ> +  L?Q #' a^ 8j  !:Co> t ˯y.p +1 ~!A*Hb'{#ôCF <])&}O-EC.+Vy6 a'- ImcR-AMUi`RZo +іV6!3 @/$"O92Պ5+RD]%18*)R C6},A .@S:>:N/@/ +%1:1:'9\)^ +/`.%0&\00L\&Z 7FGH!i?AA +QA UD9!w[62"F&$*IW,aә:4D-c/Q][O+-'G$>?M X@3x2m,7m+ Eh+8ݮ$G;[`T(%Ƀ- >L.]'& EՇ')$$ '_B CT;CBh d H%P` *eK, M$a!*݄I 0{/V/ 8ŀRիxչ5-c͊ѤvNE)?v;2Zh]#MK 3%"_"H! *kCY;!'DUn M:p"Mq^!O?'lG 9Fm)|a#'uB|i_ +#"]Sb{y=!& D&)Z:4>41,%Jj ǑJ+s6jH; nM}2IvLe:b;' :+1Kp 'yǐH)!!tE" +|E`>ō,#o*2 $ +@(1c!i1) $!<'E# i!"/!!i!(M#'A\$  #!Cx+  +'p + @2.')O+/."{DO ɰEu% - l(!JF r. ^/ G/?Br$Q)c ..Juo1r>lSi"iB?5#!A^'BD- 15";r/"# 1|A:'= &7&8=!!= \'DM( D"&5D ?>9 &!3)*W "ň= G:=I"*E>*7IA)=" 7(L)M*,Q(0;!.{9!L"A 1r"K>;h*('E&<) .#I!O(N('> +)_$E1.1O$'-"& < <]"2E]B'($$&-/\;c *J +A$)$ !V + - 2C +;"Ѩ͊(' +D*"$B"@& ("&2(+!E$#&)*.+$+" &7~D ?#-!9ם>) \ɗPpHvC E&xCo*j&TE"=E **"DF +O S C 4%U>&J)")&'5( A7o G-$#*U H .&)+Dd;ٰAY/M/7 q! P+*i17 / ?' r $ 2^ +'aU}+7"/ AF!$D 0(]1) #E #(F4* -'b$E+)t M# ,C '#; +)T_s<8*"-':M %d&4(]tAEǨH?6-01* ,XO-+@^*5ˊ6\<N#48C#l;iQ#"sD$1(3 , ^ B$kx#y3*; +#1$yK !y +! +5~*LJv#2W-2 \+O2D(BJ)R 'T0[DEɫO-'L*A 6 +8@*B's' +o0i/] .3>/7( ~_./b*,s+0 [ER O/2EGv.!&(@?74r`ϼG~!n .CX95:@K >5(WJ(6K "P Z% *'y!.p'>l#1%ۃ(U2 {;" x +MwO l9"mN KDDG ,4jJH< +A-7 J1#($c'C" E; W#)!%@57/6V7&4E-&Ga~݌ F!Q9F5%jݪ+S. +"q-I%>-ё1z/=TK"- 7g:8W! = Q $&?;FMBDgA G reS; m DɁI;B-b:,>m'S- O6- - E? +&#5e,-#MA59o)eAD/I#/$;7&׼4A #J#=#3=UA,II:>),7 D7l"DRP A9"#S719EZw83'!öhXJ 1AdXt GL j=47^5"6%')?A1 -#+;^ 74% Gy*HW^"ey9"G_#4;05;"8uRv3+a#$'(}uOj3  $E  +C+7! 7zYv&"!--)>C uC +XkZs?XK÷OY-W;{hk5hű35!ŗA?dTI9 kS9-!X"O u"9^ +44D9B7"(a 1Y6@ SI; +B7 @#%;? 0D(M"#!D"7rC"#?# @AF!"9-0 )/W,Ah 2aD! )J"J/3 GJ;%Q"A DK -$E7PI%u"C6?~)!-4=PLK81HEÉFE. sJk(=#$&\58+))&!1K'HA 7k(7:21#aT!"ia2 5WU&1>k͌C5+/M{>K/3F]+ E S&M A"M? ) áǣ?!ӱ[" e)!Eh4^ +L 2N= 30 A4_CdA) `A' % m?'&D"lISH N-J%#%l0#'v M+d$h :!S1q=h)4poj& (8Vi3H-A;!`s3 AD7' >5CL=W +S9e;"+( 5s_)7A6` n^O(! +(VD'$ 8(0*0YA$7. +3qˬ I  # & !b= 2%#  !2=% s*@ d ?߫1`E4۔8ϣ CT<cGV-NS`@D#.׾#{,hgCݫkFGUvNDAMˑYՇ)E_.O,).R-l E}1DHjQŴC${Bzզ!zTdٻ"lKUd&[\'=ɑwו" ';/+$ &#"O( 1yVņ 1Q!s!z  "8&!#)َ&#sW. +<<55M^0')ٮ( 1C4?&2o+-- +Ir1 5`z1'J, $q+ +eI1(9g51M +1 +E +%&2y +U +2 s v| s66;/85P*>/&^ {#!w" "*{` ѯp!BC "z!)0! <> E)|uFx xJ#wDτH   :Yz#LK0zD  Q0yL(} +/!Şx"! +w" +' + ѩ ?B!w>" +#ŕM'# +X+P(!R p+!,;<'#"š"v[&!#8Ӏ7."%$ ~29KHzK Eu # +}:G "="C #-"}*)#K2'Nnb5 s '$d + < ;* ? m@ ?D#.|Ba X +Yс%߼~:!r .<ג `!."'!z pe+; d#PKkÄt8"&X"!J"p0Ey"q;gY#8lųɸo"I"Xr o9|9=A7ZM^#&'~_B Ln9!`t-hCIp- nw.7E0 %30%A"K" AfN"$" ! +O dJ*eS b!I" 1`%0,g),6ih1*H60;.=t;H=) j) +<hJR w s?_ L"$x0!b fcW=F0 bI U. D Y!NJB$OA(I7 +c.a0'' ߂ӁϦ*m` M)B +fdkR;J=5]- C@ ! _1,&#Z)=0n +Ϭ#ձL */#,'c;k.<(B ?-<; bECA7/+B(?2EG`B!$;H7<~,C +3i/' Ab= DCC,*V6 ~G݅'C 6 9`0@P3  {; +BES;br&',];#aDl2Q~`-/eͩi,BFr'9c +Anh!+;!'5KC: E 3'=5$L4uN]hGq Qnw1KӮ==G + T,d'!;' +(H7' "rL *H/́?ۚ;& +>UWdb-+Ő)" ݻ! +S$0+G" " a K%#.##v8#$x 4'M)^#> #F//-0 Q<-C#F/}x.0#pG,W}#(/7;I"\&iO>J4*85|2O>GFS4%(HL/)'26A6gGl D!  )_."[C  MG +0%'!63!h/ 0$Xa**WR#&%8:0/ 1FHD",Zb." .QT!e;#X, i-M0'd1)+"J^8)-!5`Gn@1F>! g& MZɬ,39jrp3ٗɇA#_7 993r#CB*|# b=qZa1U017 +&k 3[*4 ӫM  'jטC* +$*r)1-##>VDLq0##j" *T"$'2  (I<1/N/: #1 ( % #G lW1#dŰBk((Sӻɮ  COS4&J.z![H;3;X[aw`Nmc+#IYxbU.Jjш C"D/2!H1[ ),3TN5s-J`/*#4s +C<7ZD-9##=p;I,0DD& +O- "TM`^|Y B ++3 G.1O1( 3s =тM*t6'T' f !97f4 "7O39* *o##No^ "L=CTEZW+!/.Q@\sT19( 1@dJi@S !!m#LݎgJ߶PJR)QO1"!L-S?%&O.B #T.0FF%BE:: у9"3l. +W&&WK (,MA$*P8-JDw ++!B 3)gd,"5%*p+(J'3v -.& 2Iςa 2B>Y +hJ  #L3%v"i {'( rB@` 3r ׈" +wz@> +#&zWT[S &G + H9  n/!F@ +(0ÅwEq1W" M)"% %  HN7al|(q +?$$jWyFu9=K=2> 488@F%V6c +Y)Ӂ )B"#'5Q)@!/Q]Qnu # ["S"e&߆ +Ke %*'ɶ(?YO:"~ٸ:!$,Bo&  t""ߏ", #R9u*7 &)R*( : +@5 +6>H)!  #b. +$x? \.GN-c + y 5!&%B- * # i 8*+9: 7PFk+$t + 19 +/g $ !5Ü>@2( " 4R ! @0!&7I #h  + +M;(})2! +J('b,,'+8w )"xݶ:8 % GG0p;G<* 3V! +nj˃,í_E(iBz| +'`g'N \ No newline at end of file diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.nrm b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.nrm new file mode 100644 index 0000000..19f64e5 --- /dev/null +++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.nrm @@ -0,0 +1 @@ +NRM|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||vvvwvvyvyvvx||vvvvvvy|yyvvvy|vv|vvv|yvyyvv||vxv||yy|vv|vvvvvvvvvyyvyyvvwxvyvvvvvvyyvvy|vvvvvvv|vyvvy|vvvwvv|yvvyvvxvvv|yvv|vyvvvv||vvxvvyv||y||vvvvxyyvvwvvyvvvv|vvv||vvy|vwvvvvw|yvvyvv|vvvvxvyvvv|vvvyvv||vyyvvyxvvvv|||vvvyvyvyvvvxxvvyvvvy||vxyvvvvvyv|vvv|xvwvyyvy|vw|vv|vvvvw|vvxvyy|vyvvvxyyvxvvvvvyv|vvyvvyw|vyyvvvy||vvvvvvwy|yyyvwvvyyvvvvvvvvvv|vv||wyyvyvvvvvvvvyvvvvvvvvyvyyyy|vv|ywvvvvvvyvyv|vvvvyvvv|yxvvyvvv||vvvvyy|vvvyv|vyvv|vvvyvywyyv|vvvyvvvvvvyyy|xvvvyyyy|vyv|y|vvy||vv|vvvvy|v|vvy|vvv|vvvvvyv|yvyy|vvvvvvvx|yy|vvvv|vvvvyv|vvv|vvvv||yvv|vxvvv|yv|vxvvwxvv|vvyyvvvyvyv|yvvvvvvv|vvvyvyv|yvv|yvyvvvvv|vvvvvvvvvvvy|v|yv||vvyvv|vvyvvvyvyv|vwvvvvxyvv|vvy|v|yv|vvvyvvv|wvvvyvvy|vvvvvvx|v|v|yvvvvvy|vvvvy||||vvv|vyvvv|vvvvvvvvxyv|yyvwvvvvvvwvv|vw|wvvvvvvvvy|vyvvvvvvvvvvvyvvvvvv||yvvvvvvvvvvv|vvvv|v|vvv|yvvvvvvv|vv|vvyvyvvvvvvwvvvvxvyvy|vvvv|vyvyvvvvwyvvvvvv|yxyvyyvvv|vvvv|yv|vxvvyxxvvyvxvvvvvvv|yv|vvyvv||vvyvv|vyvvy||vvvv|vvvvyvvvvvv||vvvyvy|vvvwvvyvv||vyyvvvvxvvvvvvv|vyvvvvyvvvyxv|vyvv|yv|vxvvvvvv|vvvvvvvvvvvxvvvvvvvvwvvv|vv|yvvvvvvvyyyvvwvyvvywvvvxy|vvvvyyvy|yvvvv|vvvvwvvv|||yvyv|vv||vv|vvvvvyv|vvvvvvvyvx|yvvvvvyvvvvvvy|vvvvvyvvv||vwyyvvvvvvvvvvvvy|vvvvvvvyvyvxvvvvyvvyvvvvvvvv|vvvvvx|yvwyyvvvvv|vv|v|vvvvvyvvv|vvyyvvvvyvyvvyvvvvvvyvvvvv|v|yyvvvv|vw|v|vvvv|yvyvyvy|vyvvvvvxvyvvvvv|y|vy|v|yvvyvv|vvvvvvxvvxyvvvvvvvvvvvyvvvyvvvvvvvvvvyvv|vvvyyvvvv|vvvvvvvvvvyvvv|vyvvvvyvv|wvvxyvvvyvx|yyvyv|yvvvvvvvv|v|vyvvvvyvvvv|vvvvy|vvyv|wy|yvvyyvyvv|vvvvvvv|yvvvyvyvvyx||xvy|yv|v|vvyyvy|yvvvvvvyvvvyyvvvyvyvvvvvyvxvvvvvwvvvvvyvvyvyvvvvvvvx|vvyxvvyvvvvvvyyvvvyvvvv|yvyv|vvvv|vvvvvx|vvvvvy|v|vvvvvvvvvyvvvyxvyvvyvyvvvvxvvvvvyvvvvv||xyyv|yvvvyyvv|yvyvvyvvyyvyyyyvvvvv|vyvyv|yv|v|yyvvv|vvv|vvvvvvvyvwvy|vxyvvvvvvvy|vvvvyvvvvvyy||vvv|yvvvyxvvvvyvv||vvvvvwvvv|vvvvyvvvvvyyvyvvvvxvyvvv|yyvw|v|vvxvv|||vyvvvyv|vxvyvvvvvvvvyvyvvvvvvvvyvyyvvvv|vvvyvvvy|yyvvv|v|vvvvv|vvvvvvvvvwvvvvvvvvvvvyvv|vyvvwyvxvyv|vvv|yvvvvvvvvv|yvyvvvv|wyy|vvvvvvv|vvyvv|vvvvvvvvvvvvvvvvvvyv||vvvvv|wyyvvvxwvx|vvyvyvyyvv|vvvwvvyyvyvvv|vyvyvxy|yvv|vvy||vyv|vvwvvvvvyyvvv|v|vvyvvvvv||||vvyv|v|vvvvwvvvvvvy|vvvvvyvv|y||vwyvvyv||vvyvv|vvyvvvyvxyyvvy|vvvvvvvy|vvyy|yyvvvvvvxvyvyy|vyvyvv|v|vvvvvw|vvvyvvvvvvvvvxyv|vvvvyvvvwvyvvvyvyvyv|vvvyyvyvwvvvvyvvvvvvyvvv|v|vvvvvwvwyv|vvyvvyyvvyvwv|vvvvwvvvvvvvvwvyvyvv|vy|yv|xvyyvvvvvvvv|vvvvvyvvvvvyvyyyywy|vvvv|vvvv|v|vvvyvyvvvv|vvvvvyvyvvvvvvvv|v||vvvvvv|vvyv|vy|vvvxv|yvvvvvyvvvvyvvyvvvvvy|v|vvvvvyv||v||xvvvyvvvvvv|vvvvvvvvvvvxvyvvvvvvyvwvvxvvvy|vyv|vvvyxyvwxvv|vvvvvyvyvvvvvvxxy|vvxyvvvvvvvvvxvyyyvvvwvvvyvvvvyvyvvvvyv|vy|vwvyvv|vv|vvvvyvwxvvvvvyyv||v|yxvvyyvvv||vvvvvyvvvv|vyyyvvvyvxvv|yvvvxxvvvy|yvyv|yyvv|vvwy|v|yw|vvvvvyyvvvvvvvxvvvvvvvv|vvvvvvvvvyvvvvvxy|vvvvvvvvyvvvvvyywvvvvyyyv|vvvvvvvyyyvvvvvyv|vyvv|wvvv|vyyxvvvyvvv||ywv|v|y|vvv|yvvvvvvv|vvvvyvvv|vvvyvyyvvvvwvvvv|wvvyvyvvvv||vyv|vyvv|yvvvvyvvv|vvvwyvvvvyyvvvwv|y|yvvvvyxvvyvyvyvvvvvvyvvvvvx||vyvvyvvvvwvv|vvvvvyv|vvxwvvvyv|vvv|vvv|vyvvvvv|xyvyvvvvvvvvvvvvvvvyvyv|v|v|yy|vwv|vyvvyvyvvy|y|vvvvyvvwvvvvyvvxvvvvvvvvvv|ywvvyvvxxvyyvvvvv|vx|yxv|yvvvyxvyvvxvvvv|vvvv|vvwv|vvvxyvyvvyyvvvvvyyvvxvvvyvvvvvvvvvvvvvyvv|vyvy|yvv|vvvvvvvvvvvvvvvyvvvyyvyvyv|vyyyvw|vyv|vvvvv|vvvv|vvvvvvvvyvwyv|vvwvv|vvvvyvxvvvyvv|yvvyyy|vvxxv|vvvvvwvyvv|y|vvvvxyvvvwyy|vvxvv||vvvvvvvyvxvyyvvvv|vvyvvvvvvvvvxyyvyyvyv|yv|vvyv|v|vvwvvyvv|yvvvxyvyvvvvyvvyw|wvvvvxvvv|xvvvv|v||vv|vy|||yvvyvvwv|vv|vvxvvvvvvvyvvvy|y|vv|vvvvvvvvvvv|vvvvvvvyvvvvvyvyvyv|yvvv|vvxyvvw|vvvvvvvvvvxvvvxvvvv|vw|vvvyvvvvvvvvvvvv|yv|yvv|vvvxvvvvv|yxvvvwvvyvyvvvvvvvvvvv|xvv|vv|yvvvyyvvvvvvyvwyv|vvvvvvvvvvvy|vyvvvvvv|xv|vvyvyvvvvv|vvv|vvvvyvywyw|vvxvy|vvvvvvvvvv|vyvvxvyvxvvvvvyvvyvv||||vvyvvyv|yvvyvvv|vvyvvvy|y|vy||vvvvvvvvvvv|vvvv|v|yvvvyyvvvvvyvvv|yvvxvyvvvyvvvvvvvyvvvvvxvvv|xvvvvvyv|vvvvvy|vvvvywv|v|vv|yvvvvvvvvvvyvvvy|vyvyvvvyvyyvvvvwvvvyyvyvyvvyvvvvvvv|vvyyvyvyyyvvyvvvvvyxv|yvvvvyvy|yvvv|yvyvv|vvvvyyvvvvvv|vvvyvvvvwvvvvyvyvvvvvvvv|vyvyvyv|vyvvyvvv|vxvyvvyvwywyvvy|vvyvvvyvvvvvyvvvvvvvvv||vvvyvyvx|vyv|vvvvvvvxvvyvvyvvvxvvyvvvyvvv||vvyvvvv|xyvyvvvvvvvvvvvvxvvvvv|vvvvvvvv|vyvvvyvvvvvvvvvy|vvvvvvxvvvvvvv|vvvvvv|yvyvyxvwvvy|vyyvvvv|vvvyv|vv||yvvwvvvvvvvvv|vvy|vvvvv|xyyyvvvv|vvvvvwvvyvvvvvvvvvvvvvvv|vvxyvvvvvvvvvvvvvv||vvvyvvvvvvvv|vvyvvvvvvvvvx|vvvyvvvv|vv|vvvvvv|vyvvvv|vvvvvyvvywvyvyvv||yvvvyvyy|yvyyyvyvyvvvyvvyv|yvvy|vv|xvyvyyvvvwyxvvvv|yvvvyv|vyvvv|y|vvyvvvvvvyvvvvvv|vvy|vyvy|vyvvy|wvyvvvvvvvvyvyyyvvyvvvxvvyv|xvvvvywwywvyvvyyvvvy|vvvvvvyvyvvyvvvvvvvvvvvvvvvvvyvvvyyw|yv|y|vv|vvvvv|vv|yvvvyvvvyv|vyvwvyv|vwvvxvvvvvvvvyvv|vv|vvvv|v|y|y|w|vvv|yvvvyvvyv|vv|xy|vvyvvvvvvvyyv|vvvvvwyvvvyvvvvyvvvv|vyvv|vvvvwv|vvw|yv|vvyvy|vvv|v||yvyvyv|yvvvvvv|v|yvyvyvv|vvvwv|vyvvvvvvvyvwv|vvvyvvvvvvvvyvvvvvvyvvyv|vyyv|v|vvvyxvvvvvyvvvvvv|vvwvvvv|vvyyvy|vyvvxyyxvyyvvvyvvxvvvyvv|vvvv|vv|yyvvvvwy|vyvv|vyyvvvyvxvvvvvv||vvvv|v|vv|xvvvv|v|vvxyvvvyvvvvvvvvyxvvv|vvvvv|yvvvvvy|yvvyvvvvvx|vvvvv|vv|vvvvv|vvvvvyvvvvvvvvvvvvvy|vvvvvv|yvyvvvvvxvvyyyvv|vvyv|vvvyvvy|vvvv|yvvvvvvyvvvv|yvvvwvvyvvvvyxvxvyv||yvvvvwvyvvvvvv|wvvy|yvvy|yv|yvvyyvvyvvvvyvvyvvvyvwvvv|vvvy|vvvvvv|vvvvvyyvv|vyy|vvvvwyvvvvvy|vv|yvvvwvyxvvvvvvyvyvyyyvvvv|vvvwvv|vvvwvvvvvvvvvv|vvvvvwvvvvvvxvvvxvvvvvvv|vvvvvvvvvvyvwvvvvwvvv|vyxvvyvvvvvvvvvvyvyxvv|vvvvvvyyvvvyyvyyvvwvvw|vvyxvvvyvyvyvvvvvvvvyvyv|vvvvvvvvvvyvvvvvyvvyyvvyvvvyyvvvvyxv||vvvvvyvvvvvvvvxyvvvyv|vvxvvvy|vvvvv||vv|vv|yyvvyvyvxvvvvvwvvvyxvvvvvvy|v||vyvvvyy|yxyvvyvvvwv|yvvy|ywvvvvvyvvv|v|xyvy|y|xyvvvvywvvvvv||y|wvvvyyvvyx|vvyvvxvvvyyyvvvyvyy|vvy|yvy|vyvvvyvvvvv|v|vvvvyvvvv||vyxvxvvyxvwwvvyyvvvwyvyv|vvvvvvvyvvv|vyvvvxyvvvvvvvvvvvvvvvvv|vvvyv|vvvvwvyvyvvvvvyvy|vvvvyyvvvvvvyvv|vvvvvvvv|yv|vvy|vvyvvvvvvvvv|vvyw|vvwvyvy|vvyvyvyyvvxv|vxyvv|vvvwvvvvvvvvvvvvv|v|vyvvvxvvyywvvvvvvvvy|vwvxyy|vv|vy||vy|vvwyvvv|vvvvvvyvv|yxvvvvvv|vvvvvywv|vxv|vvyvvv|yyxvy|xvxvyvyvyvyvvyv||vvvvvvvv|vvvyyvywvyvvywvvvvvvyvyvvvvxv|vv|vv|yyvv|yv|w|vwvxvvyv|y|vvxvvxvvyvvvv|yv|vvvvyyv|yvvvvvvvvvxvyv|v|vvvv|vvyv|yvvvv|vv|vy|vvyvy|vvyyvvyvvyyvvvxw|vvvvvv|xv||xvvxyvvyxvv|||vvyvvvvv|vvvvvvxvvvvvvvv||vyvvvvvvvv|v|vyvvyvvvvvyvvxyvxv|vvvvyyywvvyvyxyy|vvvvywv|vvy|vvw|vyxvyyvvyvvyvywvvv|vvyvyyvwvvvvvyyvvvvvyvyvywyvvvyyyvvy|vwvyyyvvv|yxvvyvvvvvv|vxvvx|yyvyxvvyvvwyvv|yvvvyyvxyyyvvyvwyvyvvyvvvvvvvvvvvvyvvvyvvvvvvvyyvvvvvvyvvvw|vyvv|vvvvyvvvvv|vyvvvyvvvvvvv|vvvvvvvvvywvvvvvyvywvvvvyyyxvyvvvvyvvvvvvvv|yvvvvvyvvw|vv|yyvvvy|v|v|vvw|vvv|vvv||vvvvvvvwvyyvv|vw|vvyyvv|vyvvwvvvyvvvvvvyvvvv|yvvxvxv|vv|vvvyvvvvvvvvvxyv|vvv||vyvvvv|vvvvy|vyvv|vyvvyvxvyy|yxvv|vvyvyvvv|vvv||vyvyvv|vv|vyvvvvvvyyvvvvvvyvv|vvvvvv|v|vvvvvvyyvvv|yyy|wvvvyv|vvvvvyvvvvv|yvvyxy|vyvwyvvy|yvvvvvyvvvvvyvyyvvyyyxv|vvyvyvvv|yvvvvvvvvvv||yyw|yvvvvvvvvvvvvy|vyvvyv|vvyvv||vvvvvvvvy|vv|vyyv|vvv|vv|vv|yvvyvvvvvvvvvyvv|y|v|vvy|vvvyv|vyvv|v|vyv|wvy|vvvvvywvyvyvvv|vvvvvvvvvvvvvxvvvy|v|yvyvywvvyyvvvvy|vvyyvyvvvv|vyvy||||w|vvyvvvv|vwv|y|yvvvvvvvvv|vyvvyyvyvwxvvvyvv|yvvvwy|ywyyv|vy|y|vwyvvvvvvvvyvvvyvvvyyv|vvvy|xvvyvvvvvvyvyvxvvvyv|vyyvwwvvyyvvv|vv|yvyvvvvxv|v|vvvxvx|vvvvy|yyv||vyvyxxy||vyy|v|vvvv|v||yvvv|yvvvyv|v|vxvvvy|vvvyv|vyvvvwvvvvvyyvy|y|vv|vvwyyvv|y||yvvyxvv|v|v|vvvv|vyvyyvvvvv|||vvvvvvyxv|vvyvvvv|vvyvvv|vvvvxwvyv|vvy|vy|v|y|vvvvyvvyyyvvvvv|vvvvvwwvyv|vvvvvvvvvy|vvyvv|yvyyyy|vvyvvvvvyvvxvvxvyvyvvxvvxvvyvvvvyvvvyvvyvyvvvvv||vxvvv|||yvvv|vv|vv|vvvy|yy|v|vx|||vvvyvv|vyvvxvvvyvyxyyvvvvvvvvvvv|vvvyyvvvvyyvyvy||vvvvvwvyvxvvvyvvyvvwvvvvvvvvvyv||vyvyyvvyvvwv|vvvy|vyvvyvyvvvvyyy|vvvyvv|wvyvvyyvvyy|vyvy|yvyv|yvvx|yvvvvxyvvvvvyv|yv|vvvv|vvvyvyvvv|vvvvyvvyvvwyvvyvvvv|vyvvvvvyyvyvvvvvv|yvyvy|vvwvvvvyvvvyyvvvvxy|vvyvvyv|vvvv|vyyv|vyvv|yvvvvvvvvv|yvvvvyvvvv|v|vvyvvvyvvvvvyvv|y|v||vvvvvvyv|vyy|vyvvvvvvvvvvvv||vvvyvvy|vywvvvyvvwvvvvwvvvvyvyvvvvvvvvvyvvvvyyvvvvyyyyvyvvyvvvvvyvv|vvvvv|yyv|vvvvvyvvxvyyvvvvvvyvvvvwvvyyvvxv|vyv|yvv|vv|vvv|v|vyvvvyvvvvvvvvvv|vvvvw|xvvyyvvvvvvv|vvwvvv|vvvvxyvvvwvwvvyvv|vvv|vvxwvvyyvvvvwyvv|vvy||vvvyvyvvvxvyvyvvvvvvvvvvv|yyyvvvvvv|yyvvxvy|yxvv|vvvxvyvvvvvv|vyvvv|vvv|vvyvvvvvvyvvvyvvvvv|vv|yvy|vvvyvvvvxvv|v|vyvyxvyy|wvvyvvvvvvyyvvvvvvv|vyvv|yw|vvvvyvvvvvvyvvvvvv|vyyvvy|yvvxv|vvyvvvvvy|yvvxvvvvvyyvyvyvvxv|vyvvyvvvvvvvv|vvvvvvyvvvvvvy|yyvvvyvy|vvvv|vyvvvvxv|y|vvvwvvvy|yv||wvvvvv|vywwvvxvwv|vyvxvvvv||vvvyvvvyvv|vv|yvywvvvv|yyvvvvvwv|yvvvvvvvvv|yyvyxvvvvvvvyv|vvvvyvvy|yvvyvvvyv|vvyyvv|vvv|vywvvvvvv|v|xvyxy|vvvxvvyvvvvvvyvxyvvxvvyvvyvv|yvvxyxvvvvvvvvvvvyvvvvvvvxvw|vvvvwvyvvvvvw|xvyvvvvvv|vvwvxyvvv|vy|wvyvvv|yvy|v||vvyvvvyyvv|vvyvvvv|v||vyv|vvvvvvvvvvvv|xvv|vyyvvv|vvyvvvvvv|v|vvvyvvv|vvvyxvv||vxvyvv|vvvvvyvvvvvyvvv|v||yyvv|vvvvvvvvvvvvv|vyvvvyxyvvyvyvvvxvv|vvyvvvvvvyyvvvyvvvvvvvv|v||vy|yvyyvvyvv|vvvvvvv|vvyyyvvvvv|vv|vvvyvv|v||vvv|vvvyvvvvvxyvvvxxvvyw|yy|vvxvvvvyvvvvvvvvvyvv|vvyvv|vyvvvvvvyyvvv|vyvyyyvvywvvyvvvvvyvvvvvvvvvvvvyyvvvvyvvvvvvvyxvvyvyyvyvvvyyvvvyv|vwvyv|vyvvvyv|vy|vv|vv|yvvvvy|yvwvvxyvyv||vvvyv|vvvyvvvvvyvvvvvvvvvyvvyvvvyvvywvvvvvvvvy|vyvvvvvyvvvxyvvvvvvvvvvvyvvvvyvv|vvyvvvvvv|vvyvv|||yvvvvxvvy|yv|vvv|vyvv|vv|vvvvv|vyvvvyyvvvvvvxv|yvywyvx|vyvvvvv|vyvy|vvyv||vvy|vvyvw|v|vvv|vv||vy|vv|vyvvvyxvvyy|v|vxvyvv|vyvvvvvvvyvv|vvyvyvvvvvvyv|vv||vvvvvvvyvyvvy|vvvwyvyvxyvv|yvvxvvvxvvvvx|vvyv|vyvyvvvvvvvwvvwv|vww|yvvvxyvv|vvx|vyvvvwvvvyyyvvwvvy|vvvvvvvvvvyvyyyvvvxvvvvy|vvvvvvx|vvyvvyvyvvvyvyvvyyvvwvvvvvv|v|vv|vv|wvv|yvx|xyv|w|vvv|vvvyvvvvvvvyvy|vvyvwwyvvvvvvvvvv|yvyyvvvxyvvv|vvyv|y|vyvvy|vvyvwvvvvvyvvv|vvvw|vvvyv|yvyvv|vvvvvvyv|ywyvv|vvyvvvvv||vyv|vvvy|||wvvvyvyv||v|vxvvvvvvvyx|y|||vyvwvvvvvwvvvy|vvyv|vvv|vyyyvyv|x||yvyvyvvvyvvvvvvv|vvvv|vyyvvvvvvy|vv||vvvvvvvvvvv|yvvvyvvv|||yxyyvvvyvvyyyvv|vvyvvvvvv|vvy|xyvvvvxvyvyvyvvyvyvvyvy|vvyyw|vvv|yvvvvvywvvvvvvvy|y|vvyv|vvvvvvvvvvvxvxvvyvvvyvvvvvvvy|vvvyxvyxvvyyvvvvvvvyvvwvvvvvv|vvywvvyvvyvyy|vvv||vvvxvyvyv|vvvvyvy|wvvvvvvvvvvvvvvvvvvvvxyvvvxvywvvyvvvv|vxvvvvv|v|yxvvvvvvvyvvyvvvvyvvvvyvvv|vyvvx|vvvvxvvyvvy|vwvxvwvvvv|xv|wvyy|yvvvv|vvv|vwvvvvvv|vvyv|xvywvyvvvv|vvvvvvvvv|yvv|vv|vvxvyv|v|vyvyvvvvxwyyvvvvv|wvxv|vvyvvvyvvv|vyvvvvyvv|v|vvyv|v|vvwvvwvyvyv|vvvvywyvv|vvv|yv|vvvwvvvyvxvvvvvvyvyvvvyvvvvvv|vvvyyxxv|vvv|vv|vvyvvvyyvvvvv|xvvyv|vv|vvvvyv|vvvyyyvvvvvvvvvvvvvvvvyv|v|vvvvvvvyvvvv|vvvvvvvvvyvvvvvvyw|yyvvvvvvvvx||yvvvvvxvxvvvvvyvyvvvvvvvvvvyvvvv||w|vvyvyyvvvvyvvv|vvvyvvyvvvv||vvyyxvvyvvv|vxvyvv|vyvyyvvvyv||vvvwvyyvvvvvvvvv|vvvvvvyvvvvywvvvyvvvvxvvvy|vvwvyv|v|vvvvyvxvvwvvyvxvvyvvyv|yvvyyvyvyvvvvyyvvvvvy|vvvvyvvyvvvvvvyvvvyv|y|yvvyvvvy|yvvx|vxvv|yy|vvyyvvvv|vxvvvvvvvvvvxvyvvyvvyv|vvvyxyvvv|wvvyv|vwvvvvvv|vvv|v|yyvvvvvvvvv|vyvvvvvywvywvvvyvvvvw|vvv|v|vv|yvvvyvyvyvyyvvvwv|vyvyvvvv|vvvyvvvvvyvvwvvvvvvvvvvvyyvyvyxvv|xvvyv||yvv|v|yvvvvvyvvv|vvvyx|yvv|vyyvvyvvvwvvvvvv|vvvvxywvvy|vyvvyv|ywwvvvv|vvy|vyvvvvwvv|vvv||vvyv|vvyvvyyvvvvvvvy|vxvxyyvyvvyv|vvxvvvvyvvyywvxvvvyvvv|vvvvvv|yvvyvvvvy|yy||vyvvvvvvvvyyvw|v|y|vvv|v|vvvvvyvvyvvv|yvvvyyv|vvvvvyxvv|vvvyyv|yy|yvvv|xvvvvwvv|xvv|vv|vvv|vvvvvyvvvvyyv|y|vy|vvyvvyvyvvvvvywvv|vvvv|vvvvvyv|vvv|vvwyvyv|vvvv|vvvvvy||vvv|v|yxvvvvvvyvvvyvvvvv|v|xvyyvxvvv|vvvvvvw|vyvyvvvv|yvvvvyvxvyvyvvvxvvvvv|vvvvvvvyvv|yvv|v|yvvvvyvyvvvyvvvvvvvvvwyvvvvvv|vvvvvvwvvvy|vvvyyy|vvvvvvyvvwvv||y|vvy|vvvvvvyyvvvvyyvvvvvv|v|yvv|yvv|x|vvvvvvvvv|vvv|vvvyvxvvyvvvv|v|v|yvvvvvvvvvvvvyvvvvyvy|vvvvwvvvv|vvvvvvvv|vv|yvvvvvvvyvvvvvvvyvvyvvwvvy|v|vvvvvvyvvvvxvvv|vvvvvvvvxvvvvyvv|vv|y|vvy|v|vvvvvxyvyvvxv|vvvvvvvv|vvvvvvv|vyyyvvvxvvy|yxvvvvyvy|vyvvyvvyv|yyvvvyvvvyv|vyvvyvyvvvvvvyvyvvvvyvyvxyvvvvvx|vvvvxvyvv|vvvvvvvxvyxvvvvyv|wvvwvvvvv|v|vyvvvyvvyvvv|vyvvvvvvvv|vvwvvv|vv|ywvv|vyv|vyvvvvvv||yvyvv|vv|vvv|vvvvv|vvvvvxvvvyyvvvvvvvvvvyxvvvv|yvwvv|xvyyvy|vxv|vvyvyvxvvyvv|yvyxvvw|vyvv|vvvvvvvvvy|wvv|vvvv|vv|vvvvvvvvy|vy|vvvyywyvyyvvvvwvyvvvyvvvvvvvvvv|y|yv|yyvvvvxvwvy|||vxyyv|vv|vvv|vv|yvvvvvw|yvyyyyv|vyyvvvyvvyvvvvvvyyv|vvyv|vyvvvvy|vvwv|vyxvvvvvv|vvvwvv||vvv|vxvvvvvwvv|vvvvvvvvvvvvvvwvvvvvyvvvvvvyyyyy|vvyywvyvv|vvyw|vy|vvvvvvvvvvvvvvyvvvvy|vvvvvyvxvvvvyyvyvvvxvvvxvvvyvvvvwvvyvvvvvxvvvvwvy|vvvvwvvyvvvyyxvv|vvvvwvyvvvvvyyv|vyyyvvvvyvvvyvv|vyyxvvyvyvv|vvvyyvvv|yvvvvvv|vvyvvxyvyvvyvvvvvvv||v|vv|vyvvvvvvy|v|vvxvvvyyvvvwvvvvvywyvvvv|v|vvxyyvvvvvvvvvxyyv|yvvvvvvyvvvvvyv|y|vwvvwvvvyvvvv|vy||vv|yvvyv|vvyvvvvvvyvvy|vyvvvyvy|yyyvvvvv|vvvvyvvxyvvvvvyvyvyv||y|vvvvvvvxvyy|vvxvyvvvvyvvvvvvv|vyvvvvvvyvvvyyv|vvvyyvvyvwvvyvvvvvvvv|vvvyvwvyvvvv|vyvv|vvvv|vvvvvv|vyyvvvvvvvvyyyyvvx||vv|vvvvvyvvyvyvvvv|vvyyxvvvvvvvy||vvvvvvyv|||yv|vvvyvvyyvvyvvvvvvv|vw|yvyy|vyvvvvvyyvvy|vvvvvvyvvyvyvvv|vvvvvvvw|vv|yvvvvvvwyy|vvvvv|||vvvvw|vvvvvvwvvvwvv|yvyv|v|vv|vvvyvxvvvwvyv||vv|yyvvvywvv|yvvvvywvvvvvvvyv||vyvyvyyyvvvvvyyvvvv|vvvvxvvvyvwvvyvvvyvvvyvvvvvvxv|vyvyvvvvvvyvyvxxvvvvvvyyvvv|v|vyvyvy||vyvyvvvvvywvvvvvv|vvvy|vvvvyvv|vyvvyvvyvvvvvvvv|vvvvvvv|vxxvvvvvvxxx|vvvvv|vv|vvvvvvyvvvvvvvvvyyvwvvv||vvvv|vvvv|vwvv|vvvvyvv|vyvyyvvyvyvyvvyv|vvyvvvx|yvwyyv|vv|v|vvvv|vvvv||vvvvvyvvy|vyyvv|vvvvvvvvvvvvvwvyyv|vvvvvvv|xvyvvvvvv|v||vvxwyvvxvvvvyvyvvvvvxvvv|yvy|yyyvvyvvvvvv|vvy|vvy|vvvyv||vvvxvvvyyvvv|vvvvvyvvvv|yvvvvvywvvyvvvv|vvvvyyyvwvvvvvwxvvv|yvvvvvyvxvvvv|vvv|yyvy|vvyvyvw|vvyv||vxwyyvvv||yv|yvv|v|vvy|vy|vy|yxvvvvxyvyvxvvvvvyvvvvyvvvyyv|yvvyvvvyvvv|vyvyyy|vvv|vxvvvvv|vvyv|vv|vy|vvyvvvvvvyvvvvvv|v|vyv||v|vvyyv|vvvvvwyvvvvvvyv|vvxvvvvy|vvvvyy|vvvv|vyvvvvy|vv|vx|vvyy||vvyvyvv||yyvvv|vvyvvvyvyvvvvvvxvv|vvyyvyvvvvvvxvvyvyvyyvvvvvyyvvvv|wvvyvvvv|yvwywvvvvvvvyvvvvyyyvvvvvvv|vvvyyyvvvv|vy|vvvvvvyvvvvvvvvvyvyvvvv|vyvvvvvvv|v|vvvvxv|vyyvvvvvvxyyvvvvvv|vyvyyvyv|yvyv||vvvyvyv|vvvvvvvyvvyv|v|vyvvvvvvyvvvyvwvvvvvvvvvvvvvvvvvvy|ywvvv|vvyvyvvvvvvvwyvvyyyvvvvvvvvvvvvvvwwvyvyvvyvvv|vyvyvywywvvvvvvvv|v|vvyyvvv|vy||w|vvyv|vyvvvvy|yyvvvvvvyvvvvvv|yv|vvvvvvvvvyyvvvv|yxvyvv|vvvvvvvyvvvyyvvvvyvvvvvvvv|vv|vy|v|vy|v|vyyv||vvvvwv||vvvyvvvvvvvyyyvvvv|vvvvvvyvvyvvvv|vvvyvyvvvvyyvvvy||vvvyvvyyvvvvyyvwvvvv|yvvvvvyvwvvyvvvvvvwyvvvv||xvvvwvvxvyxyvvvvvvvyvvyvv|yyvvv|vvyvyyvyvyywvvvyvv|v|vvvyxvvvvvvvyvvv|vvvvvvvvvvyyvv|yvv|vvvyvvvv|vvv|v|vvvvvvyyyvyyyvvvvyvvvyvvvvvvvy|yyvv|v|vvxvvvvvyv||vvvvvvvvvyyvyvvvyyvvw|vvvvvvv|vvvvvvv|v|vvyvvvyvvxvvvyvvv|vvvvv|vvv|vvvx|vv|vyv|yv|yvyvv||v|yvyvvxvyvv|yvvyvyyvvvyyvvvvyvvyvvyv|yvvvxvyyvvvvvyyvvvyyv|yvvvvvvvwvvvyvwvvyvvvvyv|vvyvvvyyxvwyvvvvvvvvyvvvyvv|vvvvvyvwvy||v|||vvvvxvvvxwy|vyv|xvv|wv|yvxy|vvyvvyyvvvwyvvvwv|v|vv|vvvvvvv|vyvyyvvvvvvvvyvvyyvvyvvv|vvvyy|yv|xvvv|vvvvyvvxv|vvvvvvyvvvyvv|vvvvvvvvyvyv|vvvvvyvvvxv|vxvvvvvvxyvvvvyv||vvyxvvvvvw|v|vvvyvvvv|vvvvwy|vyvvy|vvvwvvvvvvvvvvvvvvy|vyvvyvvx|vv|vvvvvv|vvvyvyyvwvvv|vvvv|v||v|vvvv|vvvyxyv||vwvvvvvvvvvv|y|vvvv|vvvvvvyvxxvvyvvvvvvyvvvv|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| \ No newline at end of file diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.prx b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.prx new file mode 100644 index 0000000..238226b Binary files /dev/null and b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.prx differ diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tii b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tii new file mode 100644 index 0000000..3b536ad Binary files /dev/null and b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tii differ diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tis b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tis new file mode 100644 index 0000000..d36d9c8 Binary files /dev/null and b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tis differ diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments.gen b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments.gen new file mode 100644 index 0000000..53b4656 Binary files /dev/null and b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments.gen differ diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments_5 b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments_5 new file mode 100644 index 0000000..5634721 Binary files /dev/null and b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments_5 differ diff --git a/sem_5/HLIN505_Java/HLIN505/.classpath b/sem_5/HLIN505_Java/HLIN505/.classpath new file mode 100644 index 0000000..33db24f --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/sem_5/HLIN505_Java/HLIN505/.factorypath b/sem_5/HLIN505_Java/HLIN505/.factorypath new file mode 100644 index 0000000..a7dbadb --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/.factorypath @@ -0,0 +1,3 @@ + + + diff --git a/sem_5/HLIN505_Java/HLIN505/.gitignore b/sem_5/HLIN505_Java/HLIN505/.gitignore new file mode 100644 index 0000000..e66a2ba --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/.gitignore @@ -0,0 +1,2 @@ +/bin/ +/.apt_generated/ diff --git a/sem_5/HLIN505_Java/HLIN505/.project b/sem_5/HLIN505_Java/HLIN505/.project new file mode 100644 index 0000000..bb13130 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/.project @@ -0,0 +1,17 @@ + + + HLIN505 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.apt.core.prefs b/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..586ea86 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=true +org.eclipse.jdt.apt.genSrcDir=.apt_generated +org.eclipse.jdt.apt.processorOptions/com.google.java.contract.classoutput=%PROJECT.DIR%/.apt_generated +org.eclipse.jdt.apt.processorOptions/com.google.java.contract.classpath=%PROJECT.DIR%/lib/cofoja.asm-1.3-20160207.jar +org.eclipse.jdt.apt.reconcileEnabled=true diff --git a/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.core.prefs b/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..5f0539d --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.processAnnotations=enabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/sem_5/HLIN505_Java/HLIN505/lib/cofoja.asm-1.3-20160207.jar b/sem_5/HLIN505_Java/HLIN505/lib/cofoja.asm-1.3-20160207.jar new file mode 100644 index 0000000..ca1ae87 Binary files /dev/null and b/sem_5/HLIN505_Java/HLIN505/lib/cofoja.asm-1.3-20160207.jar differ diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Adherent.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Adherent.java new file mode 100644 index 0000000..0edcb1c --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Adherent.java @@ -0,0 +1,25 @@ +package TP1; + +import java.util.GregorianCalendar; + +public class Adherent { + private String nom; + private Boolean cotisationajour; + private final Integer ID; + private static Integer NbAdherents=0; + private Integer DerniereAnneeCotis; + public Adherent (String n) { + nom = n; + NbAdherents ++; + cotisationajour = true; + ID = NbAdherents; + DerniereAnneeCotis = new GregorianCalendar().get(GregorianCalendar.YEAR); + } + public void readhesion() { + cotisationajour=true; + DerniereAnneeCotis= new GregorianCalendar().get(GregorianCalendar.YEAR); + } + public void nouvelleAnnee() { + cotisationajour = false; + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Creneau.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Creneau.java new file mode 100644 index 0000000..2bec420 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Creneau.java @@ -0,0 +1,40 @@ +package TP1; + +public class Creneau { + private Heure hdeb; + private Heure hfin; + private JourSemaine jour; + + protected Heure getHdeb() { + return hdeb; + } + protected void setHdeb(Heure hdeb) { + this.hdeb = hdeb; + } + protected Heure getHfin() { + return hfin; + } + protected void setHfin(Heure hfin) { + this.hfin = hfin; + } + protected JourSemaine getJour() { + return jour; + } + protected void setJour(JourSemaine jour) { + this.jour = jour; + } + public Creneau ( Heure deb, Heure fin, JourSemaine j) { + setHdeb(deb); + setHfin(fin); + setJour(j); + } + public Boolean chevauche(Creneau c) { + return (getHdeb().estAvant(c.getHfin())||c.getHdeb().estAvant(getHfin())); + } + public Boolean estInclusDans(Creneau c) { + return ((c.getHdeb().estAvant(getHdeb()) && (getHfin().estAvant(c.getHfin())))); + } + public String toString() { + return getJour().toString()+" "+ getHdeb().toString()+" - "+ getHfin().toString(); + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Heure.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Heure.java new file mode 100644 index 0000000..5ea86e8 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Heure.java @@ -0,0 +1,59 @@ +package TP1; + +public class Heure { + private Integer hour; + private Integer min; + private static Integer granularitee= 5; + private static Integer hMin = 7; + private static Integer hMax = 22; + + public Heure (Integer h, Integer m) { + hour = new Integer(h); + min=new Integer(m); + //setHour(h); + //setMin(m); + } + + protected Integer getHour() { + return hour; + } + + protected void setHour(Integer hour) { + if ( (hour <= hMin ) && (hour < hMax)) { + this.hour = hour; + } + } + + protected Integer getMin() { + return min; + } + + protected void setMin(Integer min) { + if ((min <=55) && (min % granularitee == 0) && (min >=0)) { + this.min = min; + } + } + public String toString () { + String htemp; + String mtemp; + if (getHour().intValue() < 10) { + htemp = "0"+getHour().toString(); + } + else htemp = getHour().toString(); + if (getMin().intValue() < 10) { + mtemp = "0"+getMin().toString(); + } + else mtemp = getMin().toString(); + return htemp+":"+mtemp; + } + public Boolean estAvant(Heure h) { + if (h.getHour() < getHour()) { + return false; + } + else if ( h.getHour() > getHour()) { + return true; + } + else return (h.getMin()>getMin()); + } + +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/JourSemaine.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/JourSemaine.java new file mode 100644 index 0000000..35b99a6 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/JourSemaine.java @@ -0,0 +1,11 @@ +package TP1; + +public enum JourSemaine { +Lundi, +Mardi, +Mercredi, +Jeudi, +Vendredi, +Samedi, +Dimanche; +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Lieu.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Lieu.java new file mode 100644 index 0000000..567fd3c --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Lieu.java @@ -0,0 +1,29 @@ +package TP1; + +import java.util.*; + +public enum Lieu { + Stade("Stade de foot"), + Gymnase("Gymnase"), + Piscine("La piscine"); + private ArrayList horairedispo = new ArrayList(); + private String nom = ""; + + private Lieu(String nom){ + this.nom = nom; + } + public String toString() { + String tmp = this.nom+"\n"; + for (Creneau c:horairedispo) + tmp += c.toString()+"\n"; + return tmp; + } + + + public void ajoutCreneauDisponible(Creneau c) { + horairedispo.add(c); + } + public Boolean estdisponiblePour(Creneau c) { + return horairedispo.contains(c); + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/ListeChainee.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/ListeChainee.java new file mode 100644 index 0000000..d4b101a --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/ListeChainee.java @@ -0,0 +1,64 @@ +package TP1; + +public class ListeChainee { + private Node racine; + class Node { + private String nom; + private Node suivant; + public Node (String val) { + nom = val; + suivant = null; + } + public Node (String val, Node suiv) { + nom = val; + suivant = suiv; + } + } + public void push (String val) { + int tmp = this.taille(); + racine= new Node(val,racine); + assert(tmp == this.taille()+1); + } + public int taille() { + int cpt=0; + Node tmp = racine; + if (tmp == null) { + return 0; + } + while (tmp.suivant!=null) { + cpt ++; + tmp=tmp.suivant; + } + return cpt; + } + public void affiche() { + Node tmp = racine; + while ( tmp != null) { + System.out.println(tmp.nom); + tmp = tmp.suivant; + } + } + public void renverser() { + int tailleAvant = this.taille(); + ListeChainee elem = new ListeChainee(); + elem.push(this.racine.nom); + Node runner = this.racine.suivant; + while(runner != null) { + elem.push(runner.nom); + runner = runner.suivant; + } + this.racine = elem.racine; + assert (this.taille() == tailleAvant); + } + + public static void main (String args []) { + ListeChainee li = new ListeChainee(); + li.push("Zbeb1"); + li.push("Zbeb2"); + li.push("Zbeb3"); + li.affiche(); + li.renverser(); + li.affiche(); + } + +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Main.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Main.java new file mode 100644 index 0000000..a207920 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Main.java @@ -0,0 +1,32 @@ +package TP1; + +public class Main { + + public static void main(String[] args) { + Heure h1 = new Heure(8,0); + Heure h2 = new Heure(9,30); + Heure h3 = new Heure(10,25); + Heure h4 = new Heure(12,55); + Heure h5 = new Heure(16,15); + Heure h6 = new Heure(17,00); + Lieu l1 = Lieu.Stade; + Lieu l2 = Lieu.Piscine; + Lieu l3 = Lieu.Gymnase; + JourSemaine j1 = JourSemaine.Lundi; + JourSemaine j2 = JourSemaine.Mardi; + Creneau c1 = new Creneau(h1,h2,j1); + Creneau c2 = new Creneau(h2,h3,j2); + Creneau c3 = new Creneau(h1,h2,j1); + Creneau c4 = new Creneau(h5,h6,j1); + Creneau c5 = new Creneau(h4,h6,j2); + l1.ajoutCreneauDisponible(c1); + l2.ajoutCreneauDisponible(c2); + l3.ajoutCreneauDisponible(c3); + l1.ajoutCreneauDisponible(c5); + l2.ajoutCreneauDisponible(c4); + System.out.println(l1.toString()); + System.out.println(l2.toString()); + System.out.println(l3.toString()); + } + +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP2/Constante.java b/sem_5/HLIN505_Java/HLIN505/src/TP2/Constante.java new file mode 100644 index 0000000..5d3cb70 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP2/Constante.java @@ -0,0 +1,11 @@ +package TP2; + +public class Constante extends Exp { + float val; + public float eval() { + return val; + } + public Constante(float x) { + val = x; + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP2/Exp.java b/sem_5/HLIN505_Java/HLIN505/src/TP2/Exp.java new file mode 100644 index 0000000..b465d4c --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP2/Exp.java @@ -0,0 +1,5 @@ +package TP2; + +public abstract class Exp { + public abstract float eval (); +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP2/ExpComp.java b/sem_5/HLIN505_Java/HLIN505/src/TP2/ExpComp.java new file mode 100644 index 0000000..30cfc2e --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP2/ExpComp.java @@ -0,0 +1,28 @@ +package TP2; + +public class ExpComp extends Exp{ + private Exp val1; + private Exp val2; + private String op; + + public ExpComp (Exp v1,String op, Exp v2) { + val1= v1; + this.op = op; + val2=v2; + } + + public float eval() { + switch (op) { + case "*": + return val1.eval()*val2.eval(); + case "/": + return val1.eval()/val2.eval(); + case "+": + return val1.eval()+val2.eval(); + case "-": + return val1.eval()-val2.eval(); + default : + return 0; + } + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP2/Main.java b/sem_5/HLIN505_Java/HLIN505/src/TP2/Main.java new file mode 100644 index 0000000..de235ce --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP2/Main.java @@ -0,0 +1,19 @@ +package TP2; + +public class Main { + + public static void main(String[] args) { + Constante a = new Constante(5); + Constante b = new Constante(2); + Constante c = new Constante(3); + ExpComp e1 = new ExpComp(a,"+",b); + ExpComp e2 = new ExpComp(e1,"*",c); + ExpComp e3 = new ExpComp(new Constante(4),"*",e2); + System.out.println(a.eval()); + System.out.println(e1.eval()); + System.out.println(e2.eval()); + System.out.println(e3.eval()); + + } + +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP3/FicText.java b/sem_5/HLIN505_Java/HLIN505/src/TP3/FicText.java new file mode 100644 index 0000000..d50656f --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP3/FicText.java @@ -0,0 +1,47 @@ +package TP3; + +import java.io.*; + +public class FicText { + public static Boolean existsfile (String nom) throws IOException { + Boolean exist= true; + try { + BufferedReader lectureFichier = new BufferedReader(new FileReader(nom)); + lectureFichier.close(); + } + catch(FileNotFoundException e) {exist = false;} + return exist; + } + + public static BufferedReader searchFile () throws IOException{ + BufferedReader lectureClavier = new BufferedReader(new InputStreamReader (System.in)); + String aouvrir = lectureClavier.readLine(); + while (!existsfile(aouvrir)) { + System.out.println("Fichier introuvable"); + aouvrir = lectureClavier.readLine(); + } + BufferedReader lectureFichier = new BufferedReader(new FileReader(aouvrir)); + return lectureFichier; + } + + + public static void main (String args[]) throws IOException{ +// int nbcharac=0; +// BufferedReader lectureFichier; +// try { +// lectureFichier = searchFile(); +// } +// catch(FileNotFoundException e) {lectureFichier = searchFile(); }; +// String s = lectureFichier.readLine(); +// while ( s != null) { +// nbcharac += s.replace(" ","").length(); +// System.out.println(s); +// s= lectureFichier.readLine(); +// +// } + if (1) { + System.out.println("Nombre de characteres autres qu'espace: " + nbcharac); + lectureFichier.close(); + + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/AbstractAudioElement.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/AbstractAudioElement.java new file mode 100644 index 0000000..078ece9 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/AbstractAudioElement.java @@ -0,0 +1,31 @@ +package TP4; + +import java.io.*; + +public abstract class AbstractAudioElement implements IelementAudio{ + private String Name; + private String Path; + private File fichier; + public String getName() { + return Name; + } + public void setName(String name) { + Name = name; + } + public String getPath() { + return Path; + } + public void setPath(String path) { + Path = path; + } + public File getFichier() { + return fichier; + } + public void setFichier(File fichier) { + this.fichier = fichier; + } + public AbstractAudioElement(String p){ + setPath(p); + fichier= new File(Path); + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/IelementAudio.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/IelementAudio.java new file mode 100644 index 0000000..febe561 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/IelementAudio.java @@ -0,0 +1,12 @@ +package TP4; + +public interface IelementAudio { + public int getLength(); + public void setLength(int length); + public String getName(); + public void setName(String name); + public String getPath(); + public void setPath(String path); + public int getSize(); + public void setSize() throws SecurityException; +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/IncorrectFileNameException.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/IncorrectFileNameException.java new file mode 100644 index 0000000..f819343 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/IncorrectFileNameException.java @@ -0,0 +1,18 @@ +package TP4; + +public class IncorrectFileNameException extends Exception { + /** + * + */ + private static final long serialVersionUID = 1L; + private String path; + public String getPath() { + return path; + } + public void setPath(String path) { + this.path = path; + } + public IncorrectFileNameException(String path){ + setPath(path); + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/Iplaylist.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/Iplaylist.java new file mode 100644 index 0000000..58cfaff --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/Iplaylist.java @@ -0,0 +1,6 @@ +package TP4; + +public interface Iplaylist extends IelementAudio { + public int getnbElements(); + public void setNbElements(); +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/SimplePlayList.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/SimplePlayList.java new file mode 100644 index 0000000..a65fc25 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/SimplePlayList.java @@ -0,0 +1,60 @@ +package TP4; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; + +public class SimplePlayList extends AbstractAudioElement implements Iplaylist{ + private ArrayList liste; + private int Length; + private int Size; + private int nbElements; + public SimplePlayList (String titre, String Path) throws IOException { + super(Path); + setName(titre); + if (!getFichier().exists()) { + getFichier().createNewFile(); + } + + + } + private void browseFile() throws IOException, NumberFormatException, IncorrectFileNameException { + BufferedReader read = new BufferedReader(new FileReader(getPath())); + String tmp = read.readLine(); + while (!tmp.isEmpty()) { + liste.add(new Song(Integer.parseInt(tmp.split("\\")[0]),tmp.split("\\")[1],tmp.split("\\")[2],tmp.split("\\")[3])); + tmp = read.readLine(); + } + read.close(); + } + public int getLength() { + return this.Length; + } + public void setLength() { + Length=0; + for ( Song s : liste) { + Length+=s.getLength(); + } + } + public int getSize() { + return this.Size; + } + public void setSize() throws SecurityException{ + Size = 0; + for(Song s : liste) { + Size+=s.getSize(); + } + } + public int getnbElements() { + return nbElements; + } + public void setNbElements() { + nbElements=liste.size(); + } + @Override + public void setLength(int length) { + // TODO Auto-generated method stub + + } + } diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/Song.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/Song.java new file mode 100644 index 0000000..d82c94f --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/Song.java @@ -0,0 +1,41 @@ +package TP4; + +public class Song extends AbstractAudioElement { + private String artiste; + private int length; + private int size; + + public Song (int l, String t,String p, String a) throws IncorrectFileNameException{ + super(p); + setLength(l); + setArtiste(a); + setName(t); + setSize(); + if (!getFichier().exists()) { + throw new IncorrectFileNameException(p); + } + } + + public String getArtiste() { + return artiste; + } + public void setArtiste(String artiste) { + this.artiste = artiste; + } + public int getLength() { + return length; + } + + public void setLength(int length) { + this.length=length; + } + + public int getSize() { + return size; + } + + public void setSize() throws SecurityException { + this.size=(int)getFichier().length(); + } + +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP6/foobar.tar.gz b/sem_5/HLIN505_Java/HLIN505/src/TP6/foobar.tar.gz new file mode 100644 index 0000000..5372441 Binary files /dev/null and b/sem_5/HLIN505_Java/HLIN505/src/TP6/foobar.tar.gz differ diff --git a/sem_5/HLIN505_Java/HLIN505/src/foobar/FooBarException.java b/sem_5/HLIN505_Java/HLIN505/src/foobar/FooBarException.java new file mode 100644 index 0000000..5809650 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/foobar/FooBarException.java @@ -0,0 +1,9 @@ +package foobar; + +public class FooBarException extends Exception { + + /** + * + */ + private static final long serialVersionUID = 1L; +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/foobar/SUT.java b/sem_5/HLIN505_Java/HLIN505/src/foobar/SUT.java new file mode 100644 index 0000000..7d29953 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/foobar/SUT.java @@ -0,0 +1,48 @@ +package foobar; + +public class SUT { + private int x; + private int y; + private int z; + + public SUT(int x, int y, int z) { + this.x = x; + this.y = y; + this.z = z; + } + public SUT(){ + x=1; + y=3; + z=5; + } + + /** + * Si t est strictement plus petit que x, on retourne x, sinon si t est strictement plus grand que z, on retourne z, sinon on retourne y. + * @param t un entier quelconque + * @return x si tz, y sinon + */ + public int foo(int t){ + int resultat=0; + if (tz) resultat=z; + else resultat=y; + return resultat; + } + + /** + * décale circulairement les valeurs de x, y et z : x prend la valeur de y, y prend la valeur de z et z prend la valeur de x + */ + public void bar(){ + int temp=x; + x=y; + y=z; + z=temp; + } + + /** + * + */ + public void foobar()throws FooBarException{ + if (x<0) throw new FooBarException(); + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/foobar/TestFooBar.java b/sem_5/HLIN505_Java/HLIN505/src/foobar/TestFooBar.java new file mode 100644 index 0000000..ac8bde0 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/foobar/TestFooBar.java @@ -0,0 +1,64 @@ +package foobar; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +public class TestFooBar { + SUT sut; + + @Before + public void setUp() throws Exception { + sut=new SUT(); + } + + @Ignore + @Test + public void testLouche(){ + assertEquals(1,2); + assertTrue(false); + } + + @Test + public void testFooInitParDefaut1() { + assertTrue(sut.foo(0)==1); + assertTrue(sut.foo(2)==3); + assertTrue(sut.foo(4)==3); + assertTrue(sut.foo(6)==5); + } + + @Test + public void testFooInitParDefaut3() { + assertEquals(1,sut.foo(0)); + assertEquals(3, sut.foo(2)); + assertEquals(3, sut.foo(4)); + assertEquals(5, sut.foo(6)); + } + + + @Test + public void testFooInitParDefaut2() { + assertEquals(sut.foo(0),1); + assertEquals(sut.foo(2),3); + assertEquals(sut.foo(4),3); + assertEquals(sut.foo(6),5); + } + @Test + public void testFooInitParDefaut4() { + assertThat(sut.foo(0),is(1)); + assertThat(sut.foo(2),is(3)); + assertThat(sut.foo(4),is(3)); + assertThat(sut.foo(6),is(5)); + } + + @Test + public void testBar(){ + sut.bar(); + } + +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/foobar/TestParametreFoo.java b/sem_5/HLIN505_Java/HLIN505/src/foobar/TestParametreFoo.java new file mode 100644 index 0000000..9b117d5 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/foobar/TestParametreFoo.java @@ -0,0 +1,63 @@ +package foobar; + +import static org.junit.Assert.*; + +import java.util.Arrays; +import java.util.Collection; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import static org.hamcrest.CoreMatchers.is; + +@RunWith(Parameterized.class) +public class TestParametreFoo { + + private static SUT sut; + private int x; + private int y; + private int z; + private int t; + private int res; + + @Parameters + public static Collection data() { + return Arrays.asList(new Object[][]{ + {-1, 3, 5, 2, 3}, + {5, 5, 5, 2, 5}, + {5, 5, 3, 2, 5}, + {3, 3, 5, 2, 3}, + {3, 3, 3, 2, 3}, + {1, 5, 3, 2, 5} + }); + } + + + public TestParametreFoo(int x, int y, int z, int t, int res) { + this.x = x; + this.y = y; + this.z = z; + this.res = res; + this.t=t; + } + + + @Before + public void setUp() throws Exception { + } + + @Test + public void testFoo() { + sut=new SUT(x, y, z); + assertThat(sut.foo(t), is(res)); + } + + @Test(expected=FooBarException.class) + public void TestFoobarexcept () throws FooBarException { + sut=new SUT(-1, 12, 26); + sut.foobar(); + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Ex1.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Ex1.java new file mode 100644 index 0000000..1a6116d --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Ex1.java @@ -0,0 +1,59 @@ +package tp7; + +import java.util.ArrayList; + +import javax.swing.JTextField; + +import java.io.File; +import java.lang.reflect.*; + +public class Ex1 { + private ArrayList Liste; + public Ex1 (ArrayList a) { + Liste=a; + } + public Method[] methodesdei (int i) { + Class cl = Liste.get(i).getClass(); + Method[] m = cl.getMethods(); + return m; + } + public Class superclasse() { + Class ret; + ArrayList cl= new ArrayList(); + for (int i = 0; i < Liste.size(); i++) { + cl.add(Liste.get(i).getClass()); + } + ArrayList cl2 = new ArrayList(); + while (cl2.add(cl.get(0).getSuperclass())); + Object tmp2=new Object(); + ret = tmp2.getClass(); + for (Class tmp : cl2) { + Boolean fornow = true; + for (int i = 1; i < Liste.size(); i ++) { + if (!tmp.isInstance(Liste.get(i))){ + fornow = false; + } + } + if (fornow) { + ret = tmp; + break; + } + } + return ret; + } + + public void add (T obj) { + Liste.add(obj); + } + + public static void main (String[] args) { + ArrayList list = new ArrayList(); + list.add(new Integer(12)); + list.add(new String("allo")); + list.add(new Double(12.2311)); + list.add(new File(".")); + list.add(new JTextField()); + Ex1 test = new Ex1(list); + System.out.println(test.superclasse()); + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/ManipAnnot.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/ManipAnnot.java new file mode 100644 index 0000000..2b4dcd6 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/ManipAnnot.java @@ -0,0 +1,5 @@ +package tp7; + +public class ManipAnnot { + +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Persobonus.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Persobonus.java new file mode 100644 index 0000000..9b74195 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Persobonus.java @@ -0,0 +1,17 @@ +package tp7; + +public class Persobonus extends Personnage{ + private int palier; + public void setpoint (int point) { + super.setpoint(point+super.getpoint()); + if (getpoint()/palier>0) { + setUp(getUp()+getpoint()/palier); + super.setpoint(getpoint()%palier); + } + } + public Persobonus(String nom, int point, int Up, int palier) { + super(nom,point,Up); + this.palier=palier; + this.setpoint(0); + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Persoinvisible.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Persoinvisible.java new file mode 100644 index 0000000..5599ddb --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Persoinvisible.java @@ -0,0 +1,24 @@ +package tp7; + +public class Persoinvisible extends Personnage { + private Boolean visible; + private int invtime; + private int cd; + public void devenirInvisible() { + visible=false; + invtime=5; + } + public void devenirVisible() { + visible = true; + invtime=0; + cd = 5; + } + @Todo(type="Incroyable", version="0.12", dureeapprox=120) + + public Persoinvisible (String nom, int point, int Up, Boolean visible, int invtime, int cd) { + super(nom,point,Up); + this.visible=visible; + this.invtime=invtime; + this.cd=cd; + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Personnage.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Personnage.java new file mode 100644 index 0000000..2d1a8ff --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Personnage.java @@ -0,0 +1,35 @@ +package tp7; + +public abstract class Personnage { + private String nom; + private int point; + private int up; + public String getNom() { + return nom; + } + public void setNom(String nom) { + this.nom = nom; + } + public int getpoint() { + return point; + } + public void setpoint(int point) { + this.point = point; + } + public int getUp() { + return up; + } + public void setUp(int up) { + this.up = up; + } + public Personnage (String nom, int point, int Up) { + this.nom=nom; + this.point=point; + this.up=Up; + } + public Personnage() { + nom="defaut"; + point=0; + up=3; + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Todo.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Todo.java new file mode 100644 index 0000000..2ce9318 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Todo.java @@ -0,0 +1,7 @@ +package tp7; + +public @interface Todo { + String type(); + String version(); + int dureeapprox(); +} \ No newline at end of file diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java new file mode 100644 index 0000000..5123c79 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java @@ -0,0 +1,38 @@ +package tp7; + +import java.lang.reflect.*; +import java.util.ArrayList; + +public class fabriquePerso { + public Personnage creer(String name) throws ClassNotFoundException, InstantiationException, IllegalAccessException { + if (name.equals("Persoinvisible") || name.equals("Persobonus")) { + Class t = Class.forName(name); + Personnage ret = (Personnage) t.newInstance(); + return ret; + } + else { + return null; + } + } + public Personnage ficheperso (Personnage pers) { + Class c=pers.getClass(); + Field[] fields = c.getDeclaredFields(); + ArrayList AF = tabtoarray(fields); + Method[] Methodes = c.getDeclaredMethods(); + while ((c=c.getSuperclass()) != null) { + Field[] tmp = c.getDeclaredFields(); + for (Field f : tmp) { + AF.add(f); + } + + } + System.out.println("Entrer"); + } + public ArrayList tabtoarray(Field[] f){ + ArrayList ret = new ArrayList(); + for (int i =0; i < f.length; i ++) { + ret.add(f[i]); + } + return ret; + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Etape.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Etape.java new file mode 100644 index 0000000..6cc127c --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Etape.java @@ -0,0 +1,57 @@ +package visites.toTest; + +public class Etape { + private int dureeVisite; + private NatureEtape type; + private String nom; + private String rue; + + public Etape(String nom, String rue, int dureeVisite, NatureEtape type) { + this.nom=nom; + this.dureeVisite = dureeVisite; + this.type = type; + } + + public NatureEtape getType() { + return type; + } + + public void setType(NatureEtape type) { + this.type = type; + } + + public String getNom() { + return nom; + } + + public void setNom(String nom) { + this.nom = nom; + } + + public int getDureeVisite() { + return dureeVisite; + } + + public void setDureeVisite(int dureeVisite) { + this.dureeVisite = dureeVisite; + } + + public String getRue() { + return rue; + } +/** + * vérifie que l'étape est correcte, c'est à dire que la durée de visite n'est nulle que s'il s'agit d'un lieu d'intérêt sans visite. + * @return vrai ssi duree de visite nulle <=> lieu d'intérêt sans visite + */ + public boolean estCorrecte(){ + if ( dureeVisite == 0 ) { + if (type==NatureEtape.lieuInteretSansVisite) { + return true; + } + else { + return false; + } + } + return type!=NatureEtape.lieuInteretSansVisite; + } +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/NatureEtape.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/NatureEtape.java new file mode 100644 index 0000000..807dff6 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/NatureEtape.java @@ -0,0 +1,8 @@ +package visites.toTest; + +public enum NatureEtape { +musee, +visiteMonument, +visiteJardin, +lieuInteretSansVisite; +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java new file mode 100644 index 0000000..ccc0db9 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java @@ -0,0 +1,65 @@ +package visites.toTest; +import java.util.Vector; + + +public class Parcours { + private Vector troncons=new Vector(); + + public void ajoutTroncon(Troncon t){ + boolean ajout=true; + + if (!troncons.isEmpty()){ + Troncon dernierTroncon = troncons.lastElement(); + if (dernierTroncon.getArrivee()!=t.getDepart()){ + System.out.println("erreur"); + ajout=false; + } + } + if (ajout){ + troncons.add(t); + } + } +/*** + * Calcul de la durée du parcours + * @return somme des temps de trajet des tronçons et des visites des étapes + */ + public int calculDuree(){ + int resultat=0; + for (Troncon t:troncons){ + resultat+=t.getTempsTrajet(); + resultat+=t.getDepart().getDureeVisite(); + } + return resultat; + } + + /** + * méthode permettant de déterminer s'il y a des boucles dans le circuit, autre que début/arrivée si le parcours est un circuit. + * On considère qu'il y a une boucle dès qu'il y a à l'intérieur du parcours deux passages par la même étape. + * @return retourne vrai ssi il y a au moins une boucle dans le parcours, autre que début/arrivée + */ + public boolean existeBoucle(){ + Vector etapes=new Vector(); + for (Troncon t:troncons){ + etapes.add(t.getDepart()); + etapes.add(t.getArrivee()); + } + int posEtape=0; + for (Etape etape:etapes){ + for (int i=posEtape+1;i rues) + } + +} diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Troncon.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Troncon.java new file mode 100644 index 0000000..460b833 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Troncon.java @@ -0,0 +1,69 @@ +package visites.toTest; + +import java.util.Vector; + + +public class Troncon { + private Etape depart; + private Etape arrivee; + private int tempsTrajet; + private Vector rues; + + public Troncon(Etape depart, Etape arrivee, int tempsTrajet, Vector rues) { + this.depart = depart; + this.arrivee = arrivee; + this.tempsTrajet = tempsTrajet; + this.rues=rues; + } + public Troncon(Etape depart, Etape arrivee, int tempsTrajet) { + this.depart = depart; + this.arrivee = arrivee; + this.tempsTrajet = tempsTrajet; // rues non initialisé + } + + public int getTempsTrajet() { + return tempsTrajet; + } + public void setTempsTrajet(int tempsTrajet) { + this.tempsTrajet = tempsTrajet; + } + public Etape getDepart() { + return depart; + } + public void setDepart(Etape depart) { + this.depart = depart; + } + public Etape getArrivee() { + return arrivee; + } + public void setArrivee(Etape arrivee) { + this.arrivee = arrivee; + } + + /*** + * vérifie que la première rue de rues est la rue de départ, et la dernière celle d'arrivée + * @return vrai ssi la première rue de rues est la rue de départ, et la dernière celle d'arrivée + */ + public boolean verif(){ + boolean result; + result=depart.getRue()==rues.firstElement(); + result=result&&arrivee.getRue()==rues.lastElement(); + return result; + } + + /** + * vérifie que les noms des rues sont 2 à 2 différentes + * @return vrai ssi les noms de rues sont 2 à 2 différentes + */ + public boolean verifListeRues(){ + for (String r1:rues){ + for (String r2:rues){ + if (r1.equals(r2)){ + return false; + } + } + } + return true; + } + +} diff --git a/sem_5/HLIN505_Java/HLIN505/zbeb.txt b/sem_5/HLIN505_Java/HLIN505/zbeb.txt new file mode 100644 index 0000000..f48c859 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/zbeb.txt @@ -0,0 +1,690 @@ +MAN(1) Manual pager utils MAN(1) + + + +NAME + man - an interface to the on-line reference manuals + +SYNOPSIS + man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] + [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I] + [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] + [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p + string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] + page ...] ... + man -k [apropos options] regexp ... + man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ... + man -f [whatis options] page ... + man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L + locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] + [-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ... + man -w|-W [-C file] [-d] [-D] page ... + man -c [-C file] [-d] [-D] page ... + man [-?V] + +DESCRIPTION + man is the system's manual pager. Each page argument given to man is nor‐ + mally the name of a program, utility or function. The manual page associ‐ + ated with each of these arguments is then found and displayed. A section, + if provided, will direct man to look only in that section of the manual. + The default action is to search in all of the available sections following + a pre-defined order ("1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7" by default, + unless overridden by the SECTION directive in /etc/manpath.config), and to + show only the first page found, even if page exists in several sections. + + The table below shows the section numbers of the manual followed by the + types of pages they contain. + + + 1 Executable programs or shell commands + 2 System calls (functions provided by the kernel) + 3 Library calls (functions within program libraries) + 4 Special files (usually found in /dev) + 5 File formats and conventions eg /etc/passwd + 6 Games + 7 Miscellaneous (including macro packages and conventions), e.g. man(7), + groff(7) + 8 System administration commands (usually only for root) + 9 Kernel routines [Non standard] + + A manual page consists of several sections. + + Conventional section names include NAME, SYNOPSIS, CONFIGURATION, DESCRIP‐ + TION, OPTIONS, EXIT STATUS, RETURN VALUE, ERRORS, ENVIRONMENT, FILES, VER‐ + SIONS, CONFORMING TO, NOTES, BUGS, EXAMPLE, AUTHORS, and SEE ALSO. + + The following conventions apply to the SYNOPSIS section and can be used as + a guide in other sections. + + + bold text type exactly as shown. + italic text replace with appropriate argument. + [-abc] any or all arguments within [ ] are optional. + -a|-b options delimited by | cannot be used together. + argument ... argument is repeatable. + [expression] ... entire expression within [ ] is repeatable. + + Exact rendering may vary depending on the output device. For instance, man + will usually not be able to render italics when running in a terminal, and + will typically use underlined or coloured text instead. + + The command or function illustration is a pattern that should match all + possible invocations. In some cases it is advisable to illustrate several + exclusive invocations as is shown in the SYNOPSIS section of this manual + page. + +EXAMPLES + man ls + Display the manual page for the item (program) ls. + + man -a intro + Display, in succession, all of the available intro manual pages con‐ + tained within the manual. It is possible to quit between successive + displays or skip any of them. + + man -t alias | lpr -Pps + Format the manual page referenced by `alias', usually a shell manual + page, into the default troff or groff format and pipe it to the printer + named ps. The default output for groff is usually PostScript. man + --help should advise as to which processor is bound to the -t option. + + man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi + This command will decompress and format the nroff source manual page + ./foo.1x.gz into a device independent (dvi) file. The redirection is + necessary as the -T flag causes output to be directed to stdout with no + pager. The output could be viewed with a program such as xdvi or fur‐ + ther processed into PostScript using a program such as dvips. + + man -k printf + Search the short descriptions and manual page names for the keyword + printf as regular expression. Print out any matches. Equivalent to + apropos -r printf. + + man -f smail + Lookup the manual pages referenced by smail and print out the short + descriptions of any found. Equivalent to whatis -r smail. + +OVERVIEW + Many options are available to man in order to give as much flexibility as + possible to the user. Changes can be made to the search path, section + order, output processor, and other behaviours and operations detailed + below. + + If set, various environment variables are interrogated to determine the + operation of man. It is possible to set the `catch all' variable $MANOPT + to any string in command line format with the exception that any spaces + used as part of an option's argument must be escaped (preceded by a back‐ + slash). man will parse $MANOPT prior to parsing its own command line. + Those options requiring an argument will be overridden by the same options + found on the command line. To reset all of the options set in $MANOPT, -D + can be specified as the initial command line option. This will allow man + to `forget' about the options specified in $MANOPT although they must still + have been valid. + + The manual pager utilities packaged as man-db make extensive use of index + database caches. These caches contain information such as where each man‐ + ual page can be found on the filesystem and what its whatis (short one line + description of the man page) contains, and allow man to run faster than if + it had to search the filesystem each time to find the appropriate manual + page. If requested using the -u option, man will ensure that the caches + remain consistent, which can obviate the need to manually run software to + update traditional whatis text databases. + + If man cannot find a mandb initiated index database for a particular manual + page hierarchy, it will still search for the requested manual pages, + although file globbing will be necessary to search within that hierarchy. + If whatis or apropos fails to find an index it will try to extract informa‐ + tion from a traditional whatis database instead. + + These utilities support compressed source nroff files having, by default, + the extensions of .Z, .z and .gz. It is possible to deal with any compres‐ + sion extension, but this information must be known at compile time. Also, + by default, any cat pages produced are compressed using gzip. Each + `global' manual page hierarchy such as /usr/share/man or /usr/X11R6/man may + have any directory as its cat page hierarchy. Traditionally the cat pages + are stored under the same hierarchy as the man pages, but for reasons such + as those specified in the File Hierarchy Standard (FHS), it may be better + to store them elsewhere. For details on how to do this, please read man‐ + path(5). For details on why to do this, read the standard. + + International support is available with this package. Native language man‐ + ual pages are accessible (if available on your system) via use of locale + functions. To activate such support, it is necessary to set either + $LC_MESSAGES, $LANG or another system dependent environment variable to + your language locale, usually specified in the POSIX 1003.1 based format: + + [_[.[,]]] + + If the desired page is available in your locale, it will be displayed in + lieu of the standard (usually American English) page. + + Support for international message catalogues is also featured in this pack‐ + age and can be activated in the same way, again if available. If you find + that the manual pages and message catalogues supplied with this package are + not available in your native language and you would like to supply them, + please contact the maintainer who will be coordinating such activity. + + For information regarding other features and extensions available with this + manual pager, please read the documents supplied with the package. + +DEFAULTS + man will search for the desired manual pages within the index database + caches. If the -u option is given, a cache consistency check is performed + to ensure the databases accurately reflect the filesystem. If this option + is always given, it is not generally necessary to run mandb after the + caches are initially created, unless a cache becomes corrupt. However, the + cache consistency check can be slow on systems with many manual pages + installed, so it is not performed by default, and system administrators may + wish to run mandb every week or so to keep the database caches fresh. To + forestall problems caused by outdated caches, man will fall back to file + globbing if a cache lookup fails, just as it would if no cache was present. + + Once a manual page has been located, a check is performed to find out if a + relative preformatted `cat' file already exists and is newer than the nroff + file. If it does and is, this preformatted file is (usually) decompressed + and then displayed, via use of a pager. The pager can be specified in a + number of ways, or else will fall back to a default is used (see option -P + for details). If no cat is found or is older than the nroff file, the + nroff is filtered through various programs and is shown immediately. + + If a cat file can be produced (a relative cat directory exists and has + appropriate permissions), man will compress and store the cat file in the + background. + + The filters are deciphered by a number of means. Firstly, the command line + option -p or the environment variable $MANROFFSEQ is interrogated. If -p + was not used and the environment variable was not set, the initial line of + the nroff file is parsed for a preprocessor string. To contain a valid + preprocessor string, the first line must resemble + + '\" + + where string can be any combination of letters described by option -p + below. + + If none of the above methods provide any filter information, a default set + is used. + + A formatting pipeline is formed from the filters and the primary formatter + (nroff or [tg]roff with -t) and executed. Alternatively, if an executable + program mandb_nfmt (or mandb_tfmt with -t) exists in the man tree root, it + is executed instead. It gets passed the manual source file, the preproces‐ + sor string, and optionally the device specified with -T or -E as arguments. + +OPTIONS + Non argument options that are duplicated either on the command line, in + $MANOPT, or both, are not harmful. For options that require an argument, + each duplication will override the previous argument value. + + General options + -C file, --config-file=file + Use this user configuration file rather than the default of ~/.man‐ + path. + + -d, --debug + Print debugging information. + + -D, --default + This option is normally issued as the very first option and resets + man's behaviour to its default. Its use is to reset those options + that may have been set in $MANOPT. Any options that follow -D will + have their usual effect. + + --warnings[=warnings] + Enable warnings from groff. This may be used to perform sanity + checks on the source text of manual pages. warnings is a comma-sep‐ + arated list of warning names; if it is not supplied, the default is + "mac". See the “Warnings” node in info groff for a list of avail‐ + able warning names. + + Main modes of operation + -f, --whatis + Equivalent to whatis. Display a short description from the manual + page, if available. See whatis(1) for details. + + -k, --apropos + Equivalent to apropos. Search the short manual page descriptions + for keywords and display any matches. See apropos(1) for details. + + -K, --global-apropos + Search for text in all manual pages. This is a brute-force search, + and is likely to take some time; if you can, you should specify a + section to reduce the number of pages that need to be searched. + Search terms may be simple strings (the default), or regular expres‐ + sions if the --regex option is used. + + -l, --local-file + Activate `local' mode. Format and display local manual files + instead of searching through the system's manual collection. Each + manual page argument will be interpreted as an nroff source file in + the correct format. No cat file is produced. If '-' is listed as + one of the arguments, input will be taken from stdin. When this + option is not used, and man fails to find the page required, before + displaying the error message, it attempts to act as if this option + was supplied, using the name as a filename and looking for an exact + match. + + -w, --where, --path, --location + Don't actually display the manual pages, but do print the loca‐ + tion(s) of the source nroff files that would be formatted. + + -W, --where-cat, --location-cat + Don't actually display the manual pages, but do print the loca‐ + tion(s) of the cat files that would be displayed. If -w and -W are + both specified, print both separated by a space. + + -c, --catman + This option is not for general use and should only be used by the + catman program. + + -R encoding, --recode=encoding + Instead of formatting the manual page in the usual way, output its + source converted to the specified encoding. If you already know the + encoding of the source file, you can also use manconv(1) directly. + However, this option allows you to convert several manual pages to a + single encoding without having to explicitly state the encoding of + each, provided that they were already installed in a structure simi‐ + lar to a manual page hierarchy. + + Finding manual pages + -L locale, --locale=locale + man will normally determine your current locale by a call to the C + function setlocale(3) which interrogates various environment vari‐ + ables, possibly including $LC_MESSAGES and $LANG. To temporarily + override the determined value, use this option to supply a locale + string directly to man. Note that it will not take effect until the + search for pages actually begins. Output such as the help message + will always be displayed in the initially determined locale. + + -m system[,...], --systems=system[,...] + If this system has access to other operating system's manual pages, + they can be accessed using this option. To search for a manual page + from NewOS's manual page collection, use the option -m NewOS. + + The system specified can be a combination of comma delimited operat‐ + ing system names. To include a search of the native operating sys‐ + tem's manual pages, include the system name man in the argument + string. This option will override the $SYSTEM environment variable. + + -M path, --manpath=path + Specify an alternate manpath to use. By default, man uses manpath + derived code to determine the path to search. This option overrides + the $MANPATH environment variable and causes option -m to be + ignored. + + A path specified as a manpath must be the root of a manual page + hierarchy structured into sections as described in the man-db manual + (under "The manual page system"). To view manual pages outside such + hierarchies, see the -l option. + + -S list, -s list, --sections=list + List is a colon- or comma-separated list of `order specific' manual + sections to search. This option overrides the $MANSECT environment + variable. (The -s spelling is for compatibility with System V.) + + -e sub-extension, --extension=sub-extension + Some systems incorporate large packages of manual pages, such as + those that accompany the Tcl package, into the main manual page + hierarchy. To get around the problem of having two manual pages + with the same name such as exit(3), the Tcl pages were usually all + assigned to section l. As this is unfortunate, it is now possible + to put the pages in the correct section, and to assign a specific + `extension' to them, in this case, exit(3tcl). Under normal opera‐ + tion, man will display exit(3) in preference to exit(3tcl). To + negotiate this situation and to avoid having to know which section + the page you require resides in, it is now possible to give man a + sub-extension string indicating which package the page must belong + to. Using the above example, supplying the option -e tcl to man + will restrict the search to pages having an extension of *tcl. + + -i, --ignore-case + Ignore case when searching for manual pages. This is the default. + + -I, --match-case + Search for manual pages case-sensitively. + + --regex + Show all pages with any part of either their names or their descrip‐ + tions matching each page argument as a regular expression, as with + apropos(1). Since there is usually no reasonable way to pick a + "best" page when searching for a regular expression, this option + implies -a. + + --wildcard + Show all pages with any part of either their names or their descrip‐ + tions matching each page argument using shell-style wildcards, as + with apropos(1) --wildcard. The page argument must match the entire + name or description, or match on word boundaries in the description. + Since there is usually no reasonable way to pick a "best" page when + searching for a wildcard, this option implies -a. + + --names-only + If the --regex or --wildcard option is used, match only page names, + not page descriptions, as with whatis(1). Otherwise, no effect. + + -a, --all + By default, man will exit after displaying the most suitable manual + page it finds. Using this option forces man to display all the man‐ + ual pages with names that match the search criteria. + + -u, --update + This option causes man to perform an `inode level' consistency check + on its database caches to ensure that they are an accurate represen‐ + tation of the filesystem. It will only have a useful effect if man + is installed with the setuid bit set. + + --no-subpages + By default, man will try to interpret pairs of manual page names + given on the command line as equivalent to a single manual page name + containing a hyphen or an underscore. This supports the common pat‐ + tern of programs that implement a number of subcommands, allowing + them to provide manual pages for each that can be accessed using + similar syntax as would be used to invoke the subcommands them‐ + selves. For example: + + $ man -aw git diff + /usr/share/man/man1/git-diff.1.gz + + To disable this behaviour, use the --no-subpages option. + + $ man -aw --no-subpages git diff + /usr/share/man/man1/git.1.gz + /usr/share/man/man3/Git.3pm.gz + /usr/share/man/man1/diff.1.gz + + Controlling formatted output + -P pager, --pager=pager + Specify which output pager to use. By default, man uses pager -s. + This option overrides the $MANPAGER environment variable, which in + turn overrides the $PAGER environment variable. It is not used in + conjunction with -f or -k. + + The value may be a simple command name or a command with arguments, + and may use shell quoting (backslashes, single quotes, or double + quotes). It may not use pipes to connect multiple commands; if you + need that, use a wrapper script, which may take the file to display + either as an argument or on standard input. + + -r prompt, --prompt=prompt + If a recent version of less is used as the pager, man will attempt + to set its prompt and some sensible options. The default prompt + looks like + + Manual page name(sec) line x + + where name denotes the manual page name, sec denotes the section it + was found under and x the current line number. This is achieved by + using the $LESS environment variable. + + Supplying -r with a string will override this default. The string + may contain the text $MAN_PN which will be expanded to the name of + the current manual page and its section name surrounded by `(' and + `)'. The string used to produce the default could be expressed as + + \ Manual\ page\ \$MAN_PN\ ?ltline\ %lt?L/%L.: + byte\ %bB?s/%s..?\ (END):?pB\ %pB\\%.. + (press h for help or q to quit) + + It is broken into three lines here for the sake of readability only. + For its meaning see the less(1) manual page. The prompt string is + first evaluated by the shell. All double quotes, back-quotes and + backslashes in the prompt must be escaped by a preceding backslash. + The prompt string may end in an escaped $ which may be followed by + further options for less. By default man sets the -ix8 options. + + The $MANLESS environment variable described below may be used to set + a default prompt string if none is supplied on the command line. + + -7, --ascii + When viewing a pure ascii(7) manual page on a 7 bit terminal or ter‐ + minal emulator, some characters may not display correctly when using + the latin1(7) device description with GNU nroff. This option allows + pure ascii manual pages to be displayed in ascii with the latin1 + device. It will not translate any latin1 text. The following table + shows the translations performed: some parts of it may only be dis‐ + played properly when using GNU nroff's latin1(7) device. + + + Description Octal latin1 ascii + ────────────────────────────────────────── + continuation 255 ‐ - + hyphen + bullet (middle 267 · o + dot) + acute accent 264 ´ ' + multiplication 327 × x + sign + + If the latin1 column displays correctly, your terminal may be set up + for latin1 characters and this option is not necessary. If the + latin1 and ascii columns are identical, you are reading this page + using this option or man did not format this page using the latin1 + device description. If the latin1 column is missing or corrupt, you + may need to view manual pages with this option. + + This option is ignored when using options -t, -H, -T, or -Z and may + be useless for nroff other than GNU's. + + -E encoding, --encoding=encoding + Generate output for a character encoding other than the default. + For backward compatibility, encoding may be an nroff device such as + ascii, latin1, or utf8 as well as a true character encoding such as + UTF-8. + + --no-hyphenation, --nh + Normally, nroff will automatically hyphenate text at line breaks + even in words that do not contain hyphens, if it is necessary to do + so to lay out words on a line without excessive spacing. This + option disables automatic hyphenation, so words will only be hyphen‐ + ated if they already contain hyphens. + + If you are writing a manual page and simply want to prevent nroff + from hyphenating a word at an inappropriate point, do not use this + option, but consult the nroff documentation instead; for instance, + you can put "\%" inside a word to indicate that it may be hyphenated + at that point, or put "\%" at the start of a word to prevent it from + being hyphenated. + + --no-justification, --nj + Normally, nroff will automatically justify text to both margins. + This option disables full justification, leaving justified only to + the left margin, sometimes called "ragged-right" text. + + If you are writing a manual page and simply want to prevent nroff + from justifying certain paragraphs, do not use this option, but con‐ + sult the nroff documentation instead; for instance, you can use the + ".na", ".nf", ".fi", and ".ad" requests to temporarily disable + adjusting and filling. + + -p string, --preprocessor=string + Specify the sequence of preprocessors to run before nroff or + troff/groff. Not all installations will have a full set of pre‐ + processors. Some of the preprocessors and the letters used to des‐ + ignate them are: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), + refer (r). This option overrides the $MANROFFSEQ environment vari‐ + able. zsoelim is always run as the very first preprocessor. + + -t, --troff + Use groff -mandoc to format the manual page to stdout. This option + is not required in conjunction with -H, -T, or -Z. + + -T[device], --troff-device[=device] + This option is used to change groff (or possibly troff's) output to + be suitable for a device other than the default. It implies -t. + Examples (provided with Groff-1.17) include dvi, latin1, ps, utf8, + X75 and X100. + + -H[browser], --html[=browser] + This option will cause groff to produce HTML output, and will dis‐ + play that output in a web browser. The choice of browser is deter‐ + mined by the optional browser argument if one is provided, by the + $BROWSER environment variable, or by a compile-time default if that + is unset (usually lynx). This option implies -t, and will only work + with GNU troff. + + -X[dpi], --gxditview[=dpi] + This option displays the output of groff in a graphical window using + the gxditview program. The dpi (dots per inch) may be 75, 75-12, + 100, or 100-12, defaulting to 75; the -12 variants use a 12-point + base font. This option implies -T with the X75, X75-12, X100, or + X100-12 device respectively. + + -Z, --ditroff + groff will run troff and then use an appropriate post-processor to + produce output suitable for the chosen device. If groff -mandoc is + groff, this option is passed to groff and will suppress the use of a + post-processor. It implies -t. + + Getting help + -?, --help + Print a help message and exit. + + --usage + Print a short usage message and exit. + + -V, --version + Display version information. + +EXIT STATUS + 0 Successful program execution. + + 1 Usage, syntax or configuration file error. + + 2 Operational error. + + 3 A child process returned a non-zero exit status. + + 16 At least one of the pages/files/keywords didn't exist or wasn't + matched. + +ENVIRONMENT + MANPATH + If $MANPATH is set, its value is used as the path to search for man‐ + ual pages. + + MANROFFOPT + The contents of $MANROFFOPT are added to the command line every time + man invokes the formatter (nroff, troff, or groff). + + MANROFFSEQ + If $MANROFFSEQ is set, its value is used to determine the set of + preprocessors to pass each manual page through. The default pre‐ + processor list is system dependent. + + MANSECT + If $MANSECT is set, its value is a colon-delimited list of sections + and it is used to determine which manual sections to search and in + what order. The default is "1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 + 7", unless overridden by the SECTION directive in /etc/manpath.con‐ + fig. + + MANPAGER, PAGER + If $MANPAGER or $PAGER is set ($MANPAGER is used in preference), its + value is used as the name of the program used to display the manual + page. By default, pager -s is used. + + The value may be a simple command name or a command with arguments, + and may use shell quoting (backslashes, single quotes, or double + quotes). It may not use pipes to connect multiple commands; if you + need that, use a wrapper script, which may take the file to display + either as an argument or on standard input. + + MANLESS + If $MANLESS is set, its value will be used as the default prompt + string for the less pager, as if it had been passed using the -r + option (so any occurrences of the text $MAN_PN will be expanded in + the same way). For example, if you want to set the prompt string + unconditionally to “my prompt string”, set $MANLESS to + ‘-Psmy prompt string’. Using the -r option overrides this environ‐ + ment variable. + + BROWSER + If $BROWSER is set, its value is a colon-delimited list of commands, + each of which in turn is used to try to start a web browser for man + --html. In each command, %s is replaced by a filename containing + the HTML output from groff, %% is replaced by a single percent sign + (%), and %c is replaced by a colon (:). + + SYSTEM If $SYSTEM is set, it will have the same effect as if it had been + specified as the argument to the -m option. + + MANOPT If $MANOPT is set, it will be parsed prior to man's command line and + is expected to be in a similar format. As all of the other man spe‐ + cific environment variables can be expressed as command line + options, and are thus candidates for being included in $MANOPT it is + expected that they will become obsolete. N.B. All spaces that + should be interpreted as part of an option's argument must be + escaped. + + MANWIDTH + If $MANWIDTH is set, its value is used as the line length for which + manual pages should be formatted. If it is not set, manual pages + will be formatted with a line length appropriate to the current ter‐ + minal (using an ioctl(2) if available, the value of $COLUMNS, or + falling back to 80 characters if neither is available). Cat pages + will only be saved when the default formatting can be used, that is + when the terminal line length is between 66 and 80 characters. + + MAN_KEEP_FORMATTING + Normally, when output is not being directed to a terminal (such as + to a file or a pipe), formatting characters are discarded to make it + easier to read the result without special tools. However, if + $MAN_KEEP_FORMATTING is set to any non-empty value, these formatting + characters are retained. This may be useful for wrappers around man + that can interpret formatting characters. + + MAN_KEEP_STDERR + Normally, when output is being directed to a terminal (usually to a + pager), any error output from the command used to produce formatted + versions of manual pages is discarded to avoid interfering with the + pager's display. Programs such as groff often produce relatively + minor error messages about typographical problems such as poor + alignment, which are unsightly and generally confusing when dis‐ + played along with the manual page. However, some users want to see + them anyway, so, if $MAN_KEEP_STDERR is set to any non-empty value, + error output will be displayed as usual. + + LANG, LC_MESSAGES + Depending on system and implementation, either or both of $LANG and + $LC_MESSAGES will be interrogated for the current message locale. + man will display its messages in that locale (if available). See + setlocale(3) for precise details. + +FILES + /etc/manpath.config + man-db configuration file. + + /usr/share/man + A global manual page hierarchy. + + /usr/share/man/index.(bt|db|dir|pag) + A traditional global index database cache. + + /var/cache/man/index.(bt|db|dir|pag) + An FHS compliant global index database cache. + +SEE ALSO + apropos(1), groff(1), less(1), manpath(1), nroff(1), troff(1), whatis(1), + zsoelim(1), setlocale(3), manpath(5), ascii(7), latin1(7), man(7), cat‐ + man(8), mandb(8), the man-db package manual, FSSTND + +HISTORY + 1990, 1991 - Originally written by John W. Eaton (jwe@che.utexas.edu). + + Dec 23 1992: Rik Faith (faith@cs.unc.edu) applied bug fixes supplied by + Willem Kasdorp (wkasdo@nikhefk.nikef.nl). + + 30th April 1994 - 23rd February 2000: Wilf. (G.Wilford@ee.surrey.ac.uk) has + been developing and maintaining this package with the help of a few dedi‐ + cated people. + + 30th October 1996 - 30th March 2001: Fabrizio Polacco + maintained and enhanced this package for the Debian project, with the help + of all the community. + + 31st March 2001 - present day: Colin Watson is now + developing and maintaining man-db. + + + +2.6.7.1 2014-04-10 MAN(1) -- cgit v1.2.3