í«îÛvzkernel-devel-2.6.32-042stab117.6Ž­è$>èìJ€ov‘ã+U®7¹‘¡Gôܽ>ÿÿÿÐŽ­è4I–¸?I–¨dèéêì %í iîÔïØñôóøöø ü"ý9þ?Dp,²t,  v, bx, |, \, ˆ¨,8¬,±,ð¶ðÜ,  à ¡< ¡X ¡ú( ¢"8 ¢(‡9 ¬D‡: 1L‡>C?µFC?½GC?ä,HCïè,IDŸì,XDËðYDÌ\DÌh,]E|l,^Fù, bI•×dI–ueI–zfI–€lI–‚zI–˜Cvzkernel-devel2.6.32042stab117.6Development package for building kernel modules to match the kernelThis package provides kernel headers and makefiles sufficient to build modules against the kernel package.Wq kbuild-rh6-x32.eng.sw.ru˜Š.VirtuozzoGPLv2System Environment/Kernelhttp://www.kernel.org/linuxi686if [ -f /etc/sysconfig/kernel ] then . /etc/sysconfig/kernel || exit $? fi if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] then (cd /usr/src/kernels/2.6.32-042stab117.6 && /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*.el6*.*/$f $f done) fiºàI î k~LzKÒ ýKŽŒ«Y [)  .õ ¾ªÆoUó¤º/± dý`‚¤-@ ·ý)WH‘U=‚îUd°ÖÖ%0+aU¦YWTº¯T>/9và8'9ØÖT=œo…Uø[T÷zÕ°V¦™T>&U ú‹†hT oÁT´[T* ]òUàœ,éW] jV ÍeT¿X,w Î èÉà}U…É øo9Ê0 0€ #+gkƒ8 ¬8V¦žYTYT 7d‚tÅU"Â6L v<#¿4hrƒßY91Α§Îsyñ9ãk /™> ÅÐ2M>6#å&ßv· “t×#E1Ê=++¤H¬cÓHvÉAHc Hl kH®bàH*—ÁŸjÉ‚M1A5 ›-W6\„¢i$5aÅ„„\d¢ à-ߎ<=A–s%d, ŠuÑøæ¥ Ù¡“cþ»rrq<B<oAAHÛˆ M#%cê׈N›Ø4«2K;5RJdÛˆC{Š&×{•º+ ™ LJÊ; m›X²W^5e†–ÔÝPVV¥¦c~=Hø¹íÇv××ÓÖßÔÍÍÐÖ ¿Õ¼0Ó(R <¼å×ÄV w..ËäÌ^H Äñ˿Ŋſ¸yU°‘ùÖ±Ká ˆý¯<Í_w2Xib•Ô… †$sTM»Ýd(äK5Q*KSY Ú^ž/šH_XÍ"U†‡q² tòd778 ˆašXk“ ŸyU„ÙHDVö#ˆŠc`ŒÎFb$é 2=³€1¾òˆ>»¥›ÌJÂÒßïs e¡ î Ô+$3 ’äÛöˆþky,e,Ç–¥ggÏÌ £–¬9ÐÊ *Hü-ññ|¦kqqÁì߃îœ] rçŘLº gм©bcñVå+žB_|qÊ=ÐXðB)Ufaff¬fUYf QÛ¹ô<$ä :û¼‡Tê°•Pv•`8Çî½ ÏöÁê3 Í  #ä’ÚŒ!ào1!äuJx ëË"€ „ Â;¾ÔÖꊘÇQ×?k#Äð 1 SäL0"˜µÄºŒ;ÔÄ:±,åºÏ+R&D+”3«åù š  ‰,Õ 6ÜV/åT%æñ÷¯&U‰¢!üÞX’ X\3p :@||%ÕÛ Pø®R)µ} Px¾¿ø t mwZQ å$À”4µ\œ €æÌõÝòM®éò3 ó% ò¿|¥ígcÄ­©úOÅDåi™ÕEÛ ®ñ!¶© ïZ"[ ëªc2 §*Re\Ï ÀïR"EƒPÛ ÓÞ B ;N É 2[äw¶afxZf'…Ng ¯ O Zg÷Žë ¸¾Šl?Á ŸvÜB+€Ü  ß¾êH†dvMeaL‚ (" »±Tõ€t» ”M šÎ” Æ!’3 ! ¿—J X aR¤aTe+ ¾» vhC t5ž™¼"!!o­ï =R~ +oÂçB¥ôoS2È.`6¦E‹´ Û`£T†‹e:à á úI <xà ¾OVÔçy`Ö<– \Y î©ÈTIÇwvæ>£'åE[cÿÿ½V#|@ª$QÂ*WO‰= C]ÊöTzÑ©•ÔHLa 0ûim ˆŸ2€ iÅ93œ†ŽÇL¬78bØœ@Þ ~ÚIBÂÚîér2Ë‘vV§Vë¡}a[%!} W Ùð¶6 qö¤([kºÐW„Ìrçô9cÙ6>No®]$q2– Œ¼¸Ã?Àe\#tÙ\ ý\]M2]8kT(© jxˆù©Ï |üì_- Ké"y—ÜKVMXÖVìf>ñÕ`n£è!ýÇn‹bq\6à}>Ÿï²2+xDXë}cØF1(RÜ›1›_&ü:#^¬Ñm ¹7:ìˆÑG¿ÕRªæ{_—®ÂÕvýnã2s £9P%<…²îãq% žõº$6Bµª:T Œo%Ú™žè’» ZTE“ôÔrè0 ¾ÁzF­ Â{èsn¨v$ªÄ‚ g7Hݽ*a¨""I¦…hYÃSí]Ã!¸ Ûpï­ÌQi- ÝÐræùÇ ûŒ*bæ¡#'ôÌøZÖ Hû²Û™‹q épÁ³Æó6f "Õ3,KÞ$¤y©[Òª ßÇ<ôÅqÆg}L+)7-˜!ó/u¢¿Já o=ýX N:. ì ŒÊÔ%dჅýfÈUd;À¦=øQ÷+ý‹›Ñ*±‰MB±Á ¤r1ÿ¤]ö4ìWpS6pR\Úv°@E^.…º 1­Fa)±¡úÏ8aºÍ?*Løp¾>µIæw­í2š‹ É ÏéKoø ¦Áÿ zÔLº^ÔÓ=®ïMýêÞôûD‚j:”竱¼»Ì¼į̂̈á³*V]°g[xˆÒdÅݵ ~ë+ ÙKzJ&" ¾OF<_T@:€SJµ™ RÉ0R¶",†ó–C49_Ù ‡ ”Äauø1ˆÛF t"¨2Ê ½' ØDZ À Yü /èŽøjVj  ðò{ýþþq¸f•È ÊÞ ½ÿ B ‚Ÿ2Ó%¯À¹, p x<)Š9…óQ"øù@ á Z3 –-š(6ŒÖ=ˆÝ×Ûª-cã‚L Ç]û¬³Q KÝ)[7'~¢tV±¯§Þ%Œñœ $+  ¡%­Lr9EL§3­§Ö³,}9Ó&#3#*!n }%V)R ˜p}³2žKöË,gaü˜]† Ô:>kÍ+ÎÝ$¦\lp|1Røt :(ë¬]}0cˆOë  a¦É°£ „ßYjsØDFÚð FüÛ$¤dîBT ¹v$[} ~ 1„•Õ뚀ô¯¦½HÌ£;bê:Œcí ¡Æ—=‘-FsZÛVsÝE¶)u4ßÂm Œ ¨®´¤§d0jˆ ìëDÜùuEŒñW Úv‘CyÈ| „ ãC.$ûDý®¶ {C™ñCÙûÿ΀υpÓóV ñï=¸$<¦]­ï‡™ %µ¥øT18cs;$§d ãÏ ¥õ–J‰#€l PÞf‡ 7ÍÃË "2Æòæ+Êè´ÃvvøöÇ þ M1Ü š+D Ð3.Ωú0,@³eY#‰<RŒÆçsñ.- ó&r¢ç\|õ0@î$ÿÚâqÖ%g {5I ÈF, ×ÑjäYœ–Y PÙÕõ[{ ¸ŽÑ ~è9é¥íð#Áï z Ž Ç¨lÔ‡ŒTà ™á e»© IJÛ٠Ȉ ö ¨óIý* l/oGWã” ]VBŠùª2¦¨"î" àx" å·û8ÌOK×Õ_¦½`.Ý¡&‹gOñ$Y6jõJÄè ¸ 4>îo.á UåÒ³pº=f [û$^M § ?z “#Á $$~ÎÛ˜ ®¸ 1ž @ õee´‘1 Hæ4˜¼ãg%È ãkÛ8Ó12±j/kz ÿòîÛ Cžû É(¾#ó[í¶Ø ÃpÖ,  üÀ˜ A ¥,!;uOV‚•Uí\,W ó!Aë°ç"¦ ; =7ºÊ  Ò9ÜÉ Î§" (ÈÉ ^ãk°Ë r o'1µ–(vŽxm;IW|¿ýèFyÑ ˆA2õ$™‚ ¤Ç+C/ C@+þg èjcB £ÿËÕô Àvš+$4ÃÆ{;zB”53ê±;&Eê¨+mϧ§2`lŒà¸o\ 2‘7‘üÖüL þN ×eé LG Õ“¥1â€cO>Ÿk§èq(¹ € yE,¡¤ C €0}(2'~ ô7Ñ)æÀ” 0Â"ަa1Tþ—-8í0¤3¹ W-•5û"gŽº rWäJgn QL-†4æ¼Òb= ð n‡ z0çVh> ø Ã#qõ’ÃBõk;Ý+À±Eê è(•Ú«)¬ d;E VLÞ#b3"k¥P›X¯Ò<Vo()a`N¯ Ç t8Ü Ù  Ît*]@bø"K 9 |é ì:œt °* /€Ì»ªkq4^¶ „¸i¯M Âhô 'DÀ š¶¨ã ©-Mgë O•0€³ ô((€aÝ·.‹·0 W Oۤà <2¦óLçoF 3"Œ=Õ;e%Ñ*,±zŽš ™õ 0 HIKZ2."Õ ŽÖŸOH É“ ô#VC*Yb©pßl“á SI¡„M8 ¦:@øÃ)‚I¦ÍéO¡('æ êr Ö@>’‘rÕ”< ?\ï€Úú½¯l9-;w ¢Ûž2j û"²ÓM(š"BÊ’†F쫎)$CŠOŠOy2Ñ õ Ê–T<î)¼ & â@Q˜ª9*Áti m pö’-“VGAö¯K£ 6 W«0MAõ ô ‡ Ž ­d©· /11' \Új1}&t/í ãA÷Ž zÐŒ~L¯uú7 ï99 Q7ÆT!µ' Ï™b#ƒ²%.§ ù٠퟇5þ°À Lñ‰Åª7²É(3ú ¨dè%Pv<Ô ´üöž0Î0G^þ.-PÃQ=Z¯§ š‚üMc¦ ; æß* ÔvjÁK¾U? gî ßUÕÛe*Ü#G NL>n™0 Â$Ñš›9Äô/ » (•ÚôæÝ’ ç=`UJŠ(™‹„&£ &î ð^.¾Ì¢r>éÉ”6G  71ýõ~Ã|3?Î1 Æ0\5Ð sÆÙµ 7.'/"µ ÈT—en0Vk¢*ŽÛ(/èp½ õ@ “%ºÕ˜Ÿ N x,1[•ßaŸ —X£iL94ÿm «Ú!+b Ë׆.º-† ‹n³ N&u qž34› <ä¨PÊL%€Òáä*m î85’ÖLÆnà ÷óW0)èkX’Ñ­™ PmÐr »ÝWÓ oÙ Ñ™à!6œ ñ ‹ñƒë -‹Ü8ÚC ŒrS+º%e1²kýiIf »£D øh  2†Dt/feoèv¹' ! z Æ ÕËA7ôšáîz—nFÞ1O¬BÙ1°ÿƒe µ¤~c}éžb‡Þ’ 2}O@ùÛL Y¾£÷·|5!»# ´5¥ÅQBÊ1'¹¸ß!¸‚2qf K #íÕ8•1Ã&ìX \™‘¸^ Õ'¶GNHžy8fDb'] ÞÏÜ} !J ¹bLbTa e– €*T]¦Æ  ! STïb Í Ö¢ É?ƒ*àŒ a/€ý L'áF ¬Ìþô– G½“žŠ:ÚÈ Õ?Ó NP(Ö^ö’°Ÿî!©¼z”W D+ŸXø*’»17 ­'£Hê6! ?w¬ ²ÿ$M*‡ {{Kƒ#7„Ì\^#uUîhçcA: .Y%pÔŽö=2M K Í¢c òhëŶÿ” ý) « S á ¨X5PÙ1g= 9^)"£&-%¨ŒSb zd±U.«;,6÷ p UâN3äØ#‡¸•‡Ä‡|njªiX=Q"µ†Ÿ Þ/™é*q6Õo)#Cg45  ù ÛZ êS@Ï  S3:(J‰rÊ aZ9 _#³UÍÙ v†íÃ,w¢$f;Ÿ<' ˆ3½¬@ ‹ÓìX E¾*óc!M1Uâœg"’.Þ™ Ї)½é8¸ÿ08|Õ)£,ÌOh áúIÐ µì4¥,b׋ۜ—™€o}B @<«h–*½1 # kÐF ̓QÄu ™›oJ]€T°'›O³¶\U ìs %» t´,·Ì ê¾ëÃ"Å8L*bí8ÏPkª1º iâ 7/§X §˜F%¯ i$x™ŸbËÖ,;e!ˆ` úì#E ¡ˆE;i‘r¡d_ÈÀA7î#[ Í—x ½%ª88«FÆñ×)?‚;æT/ ¾`¦$D Sð7¶Æ%Iš¸ Æ z 7X; …“ËíQí=Qå¡5d/ÃCí&0å +sÔ:†!¶)ˆ¸ Ã\_¨7 »a5R1ç , t]  »œ=e$(7¥7' >ò ¾ÿ'B)HŽÓ˜p¢NcKCdÌuK !˜¹2 ›#%AEeM $1ñ} + ¶™Q*_ç ¥}õ!r×ò B‹ò!Õ þñà[û”û Ç  >K¢ÿ"•}÷S¶ò ²3¹?'ªþ €U²*fv"Z‡34 Z `)X± ?ê…'tÌ ßŸ$éN\ó>gSéZ9Ú•º¬'j³FQµÆ â!%´ Ü*¬ ‡]/wÿøG§‚&}(Œ¨[u’< Ç)Lï#y"òEŸb˜Ð9 O±-û ªVXX& *î*ºu-ÛÈ& #9«† ­³LÚ© «R0õhÆ ³~­Ž~$’; {– lÜ ²¹°· nå çÅ­(>èŸG%Ò í’HPq£Áüà‰žŒ5عj@ ß‹$Y ±2FQI-(y¦Õ2:¨# m#í:ÑQ*> Âó _caó‚jÍ{fH5Wd3*¹øÚµó¯…”Ù§Ê+P/ª%fB²à $ ô9Ó¦%©5œ €ž ×$„K: o\Vé Œ> Â~"W®Cà) Ì1ïSƒ¡"*6tQgì\$ +˜~/Î ò6V‹—gÆâ!cÑmé6}")L¢sZ(Ûy³ ÍPì„Bê Î ­ Ý› ; zjà É1§fo¡ Ž¡µú Ô, .]ª g º 2Ù€BÑ`Iãåw… R7Â;á W>oK\>"-W( ª'\=I~k¶ 6‡GZ¢ž¤ 4 ¶T&b1Š Žo) ×]ML’b‰ “Gk(.Q?å «&ÁŒ…2Œ &í–Ê ê „{.Š3a4ò¿©) ‡*.4 ¼‹ôxð=«J‰#×&µ? ` ´µ(o`Ò +ï,  Éð8ÖÝ«Ài€4ª -ƒ ÅŸ€i!v !šâªAÓÏ„2¤' —8¯ Âõe/-#ödDЗ b'Ô º¦`ˆ“t’y[veoæŸXãPr¿ë¼¤(Š< “Û_Ū¶f”#“XÀ/U ­CýjT Ú™ 9÷Ëë€8XB…øà%­‡Bà[å&ÞºFOç#m}G¬®DDþ)ªDJ‰ Pê ŒR¡L€ð«bªp -;iAÝ/ÉU’ùY&9̦¤/• î óÕ"¿ ‚ ‹Ö&Ä.;h&J P¾Ç¯y÷E ÓÔK ¤ ‡xþ¦:7T=/ K䱨° ¡ŒKU0á%ú-#0 Iêá>fL 5 5 ÝÁ3·Çö‘¯%«ü»ðQ¹ öooÂÂæ  ii) Yè+ ã` ô0'H<—x€¬ c)niÖ 40íKewJ šb¥„QäVäVÚ êu (ª+g#¾BÇ X^½5©#7N žB'ª'ªŒUU:9ô}‚, >EF{Jmî×" “ Ôç¨6të,É0Pc׫¸ÞQâ.Ò4aÈð c ['/&˜.¤z8p²òMg7Ì  ª³ b ê #5[‚ ÷¡’ÃCù í` è§§6¨uô ]ys‘þkí m{d5eIŽ’geg}‹ec°Õ©ÃT‚£=~$bÊvæ-‘–Ƕ &:Àœóº¸P¬ Û©èÊ€YÌxý¹ÐMr)È\#  lÕ½WıvxJ6Ù ÃÕvÕ¶ ÚtL %µ@nL¬‚þ>P œn! UUAê9EW¦D˜k;Œv 0FœUE¿ HOÊ&†½E±000000KN‰¿f ÄöÔÓ¢§AíAí¤¤¤¤¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤¤¤Aí¤¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤¤AíAí¤¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤AíAí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤AíAíAíAí¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤AíAí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤AíAí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤AíAí¤Aí¤¤¤Aí¤Aí¤Aí¤AíAí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤AíAí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤AíAí¤Aí¤AíAí¤Aí¤Aí¤Aí¤AíAí¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤AíAíAí¤Aí¤AíAí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤AíAí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤¤¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤AíAí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤¤¤Aí¤Aí¤Aí¤Aí¤AíAí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤AíAíAí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤AíAí¤Aí¤Aí¤AíAí¤Aí¤¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤AíAí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤AíAí¤¤¤¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤AíAí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¡ÿAí¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤¤¤Aí¤¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤AíAíAí¤Aí¤AíAí¤AíAíAí¤Aí¤AíAí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤AíAíAí¤AíAí¤¤Aí¤AíAíAí¤AíAí¤¤Aí¤AíAíAí¤Aí¤AíAíAí¤AíAíAí¤AíAí¤¤AíAí¤Aí¤AíAí¤¤Aí¤Aí¤AíAí¤AíAí¤Aí¤AíAíAí¤Aí¤Aí¤¤¤Aí¤¤AíAíAí¤AíAí¤AíAí¤¤¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤Aí¤Aí¤¤AíAíAí¤¤¤¤Aí¤Aí¤¤Aí¤¤¤¤¤Aí¤¤Aí¤AíAí¤¤¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤AíAí¤Aí¤Aí¤¤¤Aí¤¤Aí¤¤¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤¤AíAí¤¤¤AíAí¤¤¤¤¤¤Aí¤Aí¤¤¤¤Aí¤AíAí¤Aí¤AíAí¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤AíAí¤¤AíAíAí¤Aí¤¤AíAíAí¤AíAí¤¤AíAí¤Aí¤¤Aí¤¤¤¤¤¤Aí¤AíAí¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤¤¤¤Aí¤¤Aí¤Aí¤Aí¤AíAí¤¤Aí¤Aí¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤AíAí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤¤¤Aí¤¤Aí¤¤Aí¤¤¤¤Aí¤Aí¤Aí¤AíAí¤¤Aí¤¤Aí¤Aí¤Aí¤¤AíAí¤Aí¤¤Aí¤¤¤¤¤¤Aí¤AíAí¤¤¤¤¤AíAí¤¤¤¤Aí¤Aí¤¤Aí¤¤¤¤AíAí¤¤AíAí¤AíAíAí¤¤AíAí¤¤¤¤Aí¤Aí¤¤Aí¤¤¤AíAí¤¤AíAíAíAí¤AíAí¤¤AíAí¤Aí¤¤¤¤¤Aí¤¤¤Aí¤Aí¤¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤¤Aí¤¤Aí¤Aí¤¤¤¤¤Aí¤AíAí¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤Aí¤AíAí¤¤Aí¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤Aí¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤¤Aí¤¤¤¤Aí¤Aí¤¤¤AíAí¤¤¤¤¤¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤¤Aí¤¤¤Aí¤¤AíAí¤¤AíAí¤Aí¤Aí¤Aí¤¤¤AíAí¤¤¤AíAí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤AíAí¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤¤¤Aí¤¤¤¤Aí¤Aí¤¤Aí¤Aí¤¤¤¤¤¤Aí¤Aí¤Aí¤¤¤AíAí¤¤AíAí¤¤Aí¤Aí¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤¤AíAí¤¤¤¤¤Aí¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤Aí¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤Aí¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤AíAí¤¤¤Aí¤¤¤¤¤¤¤¤Aí¤¤¤¤AíAí¤¤¤Aí¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤Aí¤Aí¤¤¤¤Aí¤¤¤¤Aí¤AíAí¤Aí¤¤¤¤¤Aí¤¤¤¤¤¤AíAí¤Aí¤¤¤¤AíAíAí¤Aí¤Aí¤¤¤AíAí¤Aí¤¤¤Aí¤AíAí¤AíAí¤¤¤Aí¤Aí¤¤¤Aí¤¤Aí¤¤¤AíAí¤Aí¤¤¤¤¤Aí¤¤Aí¤¤¤¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤¤Aí¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤Aí¤Aí¤Aí¤¤Aí¤¤¤Aí¤AíAí¤Aí¤¤Aí¤¤¤Aí¤AíAí¤Aí¤¤¤Aí¤Aí¤¤Aí¤¤¤¤Aí¤¤Aí¤Aí¤Aí¤¤¤¤¤Aí¤¤¤¤Aí¤Aí¤¤Aí¤¤¤Aí¤Aí¤¤¤Aí¤Aí¤AíAí¤Aí¤Aí¤¤Aí¤AíAí¤¤¤Aí¤Aí¤Aí¤¤AíAí¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤Aí¤¤Aí¤Aí¤¤¤Aí¤Aí¤¤¤Aí¤AíAí¤¤Aí¤AíAí¤AíAí¤AíAíAí¤¤AíAí¤¤AíAí¤¤Aí¤Aí¤Aí¤Aí¤¤¤¤¤¤Aí¤Aí¤Aí¤¤¤AíAí¤¤¤AíAí¤AíAíAí¤Aí¤AíAí¤AíAí¤Aí¤¤¤¤¤¤Aí¤Aí¤AíAíAí¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤AíAí¤¤¤¤AíAí¤¤AíAí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤¤¤Aí¤Aí¤¤¤¤Aí¤¤¤¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤¤Aí¤¤¤¤Aí¤¤Aí¤Aí¤¤¤¤¤¤Aí¤¤¤Aí¤Aí¤¤AíAí¤Aí¤Aí¤¤Aí¤¤¤Aí¤Aí¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤Aí¤¤Aí¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤Aí¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤¤¤Aí¤¤¤¤AíAí¤Aí¤¤Aí¤¤¤¤¤Aí¤¤AíAí¤¤¤¤Aí¤¤¤¤AíAí¤¤¤¤¤Aí¤Aí¤¤¤Aí¤¤¤¤Aí¤¤¤¤¤Aí¤¤¤¤AíAíAí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤AíAí¤¤Aí¤¤¤Aí¤Aí¤¤¤¤¤¤¤¤Aí¤Aí¤Aí¤¤Aí¤¤¤¤Aí¤AíAí¤Aí¤¤¤¤Aí¤Aí¤¤¤¤AíAí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤AíAí¤¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤Aí¤Aí¤¤¤Aí¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤Aí¤AíAí¤¤¤¤¤¤¤¤¤Aí¤¤¤¤AíAí¤¤¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤¤¤Aí¤AíAí¤¤¤¤¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤¤Aí¤¤Aí¤¤¤¤¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤AíAí¤Aí¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤¤AíAíAí¤¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤AíAí¤¤¤¤¤¤¤Aí¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤AíAí¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤¤¤Aí¤AíAí¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤¤¤¤Aí¤Aí¤¤¤AíAí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤¤¤Aí¤¤AíAí¤¤Aí¤Aí¤¤¤¤Aí¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤Aí¤Aí¤AíAí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤AíAí¤Aí¤Aí¤¤¤Aí¤¤Aí¤Aí¤¤¤AíAí¤¤Aí¤¤AíAíAí¤Aí¤Aí¤¤¤Aí¤Aí¤AíAí¤Aí¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤AíAí¤¤Aí¤¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤¤Aí¤AíAí¤¤¤¤¤AíAíAí¤¤¤¤AíAíAí¤¤¤¤¤Aí¤¤¤Aí¤¤¤Aí¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤AíAí¤¤¤¤Aí¤Aí¤¤¤Aí¤¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤¤AíAí¤¤Aí¤¤Aí¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤¤Aí¤¤¤AíAíAí¤¤¤¤Aí¤¤¤Aí¤Aí¤Aí¤¤¤¤¤¤¤¤Aí¤¤AíAí¤¤¤¤Aí¤¤Aí¤Aí¤Aí¤AíAí¤Aí¤Aí¤Aí¤Aí¤AíAíAí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤AíAí¤AíAí¤AíAí¤AíAíAíAí¤AíAí¤Aí¤Aí¤¤¤Aí¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤AíAí¤¤Aí¤Aí¤Aí¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤AíAí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤Aí¤¤¤Aí¤¤Aí¤¤¤¤AíAí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤AíAí¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤Aí¤¤¤¤Aí¤Aí¤¤¤¤¤¤¤Aí¤¤¤¤¤Aí¤¤AíAí¤¤¤¤¤AíAí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤¤Aí¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤AíAí¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤¤¤¤Aí¤¤Aí¤Aí¤Aí¤¤¤Aí¤¤Aí¤Aí¤¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤Aí¤Aí¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤¤¤Aí¤Aí¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤Aí¤¤¤¤AíAíAí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤AíAí¤¤¤AíAí¤¤Aí¤¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤¤AíAí¤Aí¤AíAí¤AíAí¤¤Aí¤¤Aí¤¤¤Aí¤Aí¤¤¤¤¤AíAí¤Aí¤¤Aí¤¤¤¤¤Aí¤¤Aí¤¤Aí¤¤¤¤¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤AíAí¤¤Aí¤¤¤Aí¤¤¤¤¤Aí¤¤¤¤AíAí¤Aí¤¤¤Aí¤¤¤Aí¤Aí¤Aí¤¤¤Aí¤AíAí¤Aí¤¤AíAí¤¤¤AíAí¤¤¤¤¤AíAí¤¤Aí¤¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤¤Aí¤¤¤AíAí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤AíAí¤¤Aí¤¤¤AíAí¤¤¤¤Aí¤Aí¤¤¤¤¤¤¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤¤Aí¤¤¤¤Aí¤Aí¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤AíAí¤¤¤¤¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤AíAí¤Aí¤¤¤¤Aí¤AíAíAí¤¤AíAíAí¤Aí¤AíAí¤¤AíAí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤AíAí¤¤¤Aí¤¤Aí¤Aí¤¤¤¤Aí¤Aí¤Aí¤¤¤¤Aí¤¤¤¤¤Aí¤Aí¤¤¤¤¤Aí¤¤¤Aí¤¤¤¤¤¤¤¤Aí¤¤¤Aí¤Aí¤¤AíAí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤AíAí¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤¤¤¤¤Aí¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤AíAí¤¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤AíAí¤¤¤¤AíAí¤¤¤¤Aí¤AíAí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤AíAí¤¤AíAí¤¤¤Aí¤¤¤Aí¤Aí¤¤¤¤¤Aí¤¤¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤¤¤Aí¤¤¤Aí¤¤¤¤¤¤Aí¤Aí¤¤¤¤¤Aí¤¤Aí¤AíAí¤¤¤¤¤¤¤¤Aí¤AíAí¤Aí¤Aí¤¤Aí¤AíAí¤¤Aí¤Aí¤¤¤AíAí¤Aí¤AíAí¤Aí¤AíAí¤¤AíAí¤¤Aí¤¤Aí¤¤¤Aí¤¤¤¤Aí¤¤¤¤¤Aí¤¤Aí¤AíAí¤Aí¤¤¤Aí¤¤AíAí¤¤Aí¤¤¤Aí¤Aí¤¤¤Aí¤Aí¤¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤¤AíAí¤¤¤¤¤Aí¤AíAí¤Aí¤¤¤Aí¤Aí¤¤¤¤¤¤Aí¤¤¤¤AíAí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤Aí¤¤AíAí¤Aí¤¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤¤AíAí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤Aí¤¤¤¤¤¤¤¤Aí¤AíAí¤¤AíAí¤Aí¤¤Aí¤Aí¤Aí¤¤¤¤AíAí¤¤¤¤Aí¤¤Aí¤AíAí¤¤Aí¤¤¤Aí¤Aí¤¤¤¤¤¤¤Aí¤Aí¤Aí¤¤¤Aí¤¤AíAí¤¤AíAí¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤Aí¤AíAí¤Aí¤¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤Aí¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤¤¤Aí¤¤¤¤¤¤¤Aí¤¤Aí¤Aí¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤Aí¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤AíAí¤Aí¤¤¤Aí¤Aí¤¤Aí¤¤¤¤¤AíAíAí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤¤¤AíAí¤Aí¤¤¤¤¤¤Aí¤AíAí¤Aí¤¤¤AíAíAí¤¤¤Aí¤AíAí¤¤¤Aí¤Aí¤¤¤Aí¤Aí¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤¤¤Aí¤¤AíAí¤Aí¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤AíAí¤¤¤¤AíAí¤Aí¤¤¤¤¤¤¤¤Aí¤AíAí¤¤AíAí¤¤Aí¤¤¤¤Aí¤¤AíAí¤¤¤¤AíAí¤¤¤¤¤¤¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤¤Aí¤¤¤¤AíAí¤Aí¤Aí¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤¤Aí¤¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤Aí¤¤AíAí¤¤Aí¤AíAí¤¤Aí¤¤Aí¤¤¤¤¤AíAí¤¤¤¤Aí¤Aí¤¤¤Aí¤Aí¤Aí¤Aí¤AíAí¤¤¤AíAíAíAí¤AíAí¤Aí¤¤¤Aí¤¤¤AíAí¤AíAí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤AíAí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤¤¤Aí¤¤Aí¤Aí¤Aí¤¤¤¤¤¤¤Aí¤¤AíAí¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤AíAí¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤AíAí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤Aí¤¤¤¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤AíAí¤¤Aí¤¤Aí¤¤¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤¤¤¤¤¤í¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤í¤í¤í¤¤¤¤í¤íííííííííí¤ííAí¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤í¤¤¤¤Aí¤¤¤¤¤¤í¤¤¤¤¤¤¤¤¤¤¤¤¤¤í¤íí¤¤í¤Aí¤¤¤¤¤¤¤íí¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤íAí¤í¤í¤¤í¤Aí¤¤¤¤¤¤¤¤¤¤¤¤¤í¤í¤í¤¤¤¤¤¤¤íAí¤¤¤ííí¤¤íAí¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Aí¤¤Aí¤¤¤Aí¤¤¤¤íííAí¤¤¤í¤íAí¤¤AíAí¤¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤Aí¤Aí¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤¤Aí¤Aí¤AíAí¤¤¤Aí¤Aí¤Aí¤Aí¤Aí¤AíAí¤¤Aí¤AíAí¤AíAí¤Aí¤AíAí¤¤¤AíAí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤Aí¤¤AíAíAí¤Aí¤AíAí¤Aí¤AíAí¤Aí¤¤AíAí¤Wq®Wq"Wq!Wq!WqWq!Wq!Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq WqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq WqWqWqWqWq WqWqWq Wq WqWq WqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq WqWqWqWqWq Wq Wq Wq WqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq!Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq WpþŒWpþbW ƶK5¹K5¹W ÆÀK5¹K5¹W ƧW Æ©W ÆÎW Æ¿W ÆÑW ÆÄW ưK5¹K5¹W Æ®K5¹K5¹K5¹K5¹K5¹K5¹W ưK5¹K5¹K5¹K5¹K5¹K5¹K5¹W Æ W ÆÎK5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþbW Æ£K5¹W ƼWpþbW ƶK5¹W ưWpþ^W ƸW ƸK5¹K5¹K5¹W ÆÎK5¹K5¹K5¹W ÆÉK5¹W ÆÓW ƯW ƪK5¹W ÆÃWpþbK5¹WpþbK5¹W ÆšK5¹W Æ›K5¹K5¹W ƸK5¹W ÆÎK5¹K5¹K5¹W ÆÔW ÆšW Æ©W ÆÁWpþbK5¹W ÆÐW ƸW ÆÓK5¹W ÆÄK5¹K5¹K5¹W ÆœW ÆœK5¹W ÆœW ƸW ÆÃK5¹K5¹W ƾK5¹K5¹K5¹W ÆÎK5¹K5¹W ÆÂK5¹K5¹WpþbK5¹K5¹W ƳW ÆÕK5¹K5¹K5¹W Æ¡W ÆÑW ƪW ÆØW ƾW ÆÑW ÆÎK5¹K5¹WpþbK5¹W Æ¢K5¹K5¹K5¹K5¹K5¹K5¹W ÆÓW Æ™W ÆšK5¹K5¹W Æ™W ÆÀK5¹K5¹W ƧW ƧK5¹W Æ¥K5¹K5¹W ÆÐK5¹WpþbW ÆÕW ÆÃK5¹W ÆÃW ÆÃW ÆÇW ÆÎK5¹K5¹K5¹W ÆÅK5¹K5¹WpþbK5¹W ÆÈK5¹W ÆÈW Æ›K5¹W ÆÆW Æ®K5¹W ÆšK5¹K5¹W ÆÁK5¹W ÆÁW Æ¡W ÆÕW ƧW ÆÀW ÆšW ÆšK5¹W ƯK5¹W ƱW Æ£K5¹W Æ¥K5¹W ƤK5¹K5¹K5¹K5¹K5¹W Æ£K5¹W Æ´WpþbW Æ¥W ÆœWpþbW Æ´W Æ¥K5¹K5¹K5¹W ƧK5¹K5¹K5¹K5¹K5¹W ÆšK5¹K5¹K5¹K5¹W ÆžK5¹K5¹K5¹W ƦK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ƧK5¹K5¹K5¹K5¹W ÆœK5¹K5¹K5¹W Æ¢K5¹K5¹K5¹W ÆK5¹K5¹K5¹K5¹W ƹK5¹W ÆÎK5¹W ÆšK5¹W ÆšW ÆÒK5¹K5¹K5¹K5¹WpþbK5¹W ƽK5¹K5¹WpþbW ÆÁWpþbWpþbW ƺW Æ£WpþbWpþbW ƯW Æ·K5¹W ƧK5¹K5¹K5¹WpþbWpþbW Æ›K5¹K5¹K5¹Wpþ^W ÆW Æ£W ÆÎW ÆÆW ÆšW ÆÆWpþbW ƱWpþbK5¹Wpþ^K5¹K5¹K5¹K5¹K5¹W ÆÐK5¹W ÆÇK5¹W ÆÎK5¹Wpþ^K5¹K5¹W ÆœW ÆœK5¹K5¹K5¹W ƦK5¹W ƼW ƼW Æ¿W ÆÅWpþŒWpþŒWq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq WqWqWqWqWqWqWqWqWqWqWqWqWqWqWq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq Wq Wq Wq!Wq!Wq!Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq"Wq!Wq!WpþcWpþcWq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq-Wpþ^K5¹K5¹W ƶK5¹W ÆÓW Æ©W ÆÁW ÆÀW ÆÎK5¹K5¹W ÆÅK5¹W ÆÎW ƺK5¹K5¹W ÆÅW Æ¡K5¹Wpþ^K5¹K5¹W Æ¡W ÆÎK5¹W ƦWq-WpþcK5¹W ÆÂW ÆÂK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W Æ»K5¹K5¹K5¹K5¹K5¹K5¹W ÆK5¹K5¹K5¹K5¹K5¹K5¹W ƯK5¹K5¹K5¹K5¹K5¹K5¹W ÆK5¹K5¹K5¹W Æ¿K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ƶK5¹K5¹WpþcK5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹W Æ´K5¹K5¹K5¹W Æ¢K5¹K5¹WpþcWpþcK5¹K5¹W Æ™K5¹W ÆÃW ÆÃW ÆÃK5¹K5¹K5¹K5¹W ƶW ÆËW Æ·W ÆÅK5¹K5¹K5¹W ÆÑW ÆÀK5¹W ƬK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆÀK5¹K5¹K5¹W Æ¥K5¹K5¹K5¹K5¹K5¹W ÆšK5¹K5¹K5¹WpþcK5¹K5¹W ƺW ƯK5¹K5¹K5¹K5¹WpþcK5¹K5¹W ÆÀK5¹WpþŽWpþŽWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpÿWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWq-WpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpÿWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþŒWpþcK5¹K5¹K5¹W ÆÑK5¹K5¹W ƸK5¹K5¹K5¹W ÆÐK5¹W ÆÑWpþ^W ÆÑK5¹K5¹K5¹K5¹W ƸW ÆÃK5¹W ƸWpþcK5¹K5¹K5¹W ƸWpþ^W ÆÊW ÆØW ÆØW ÆØW ÆØW ÆØW ÆÙW Æ W ÆØW ÆØW Æ×W ÆØW ÆØW ÆØW ƾW ÆÄW ÆØW ÆÄW Æ×W ÆØW Æ×W Æ W ƾW ÆÊW ÆØW Æ×W Æ×W ÆØW ÆØW ÆØW ÆÄW ÆØW ÆØW ÆØW ÆÊK5¹W ÆØW ÆÊWpþ^W Æ™W Æ W ÆÄW ÆØW ÆÉW ÆÙW ÆÊW ÆÉW ÆØWpþ^W Æ×W Æ×W Æ×W ƾW ƾW Æ W ÆÊW ÆÄW ÆÊWpþ^W ÆÑK5¹W Æ®WpÿK5¹W ÆËK5¹K5¹K5¹W ÆÙW ƱK5¹K5¹K5¹W ƺK5¹W ÆÄK5¹WpþcWpþcWpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹K5¹K5¹K5¹W ƯK5¹W ÆÀK5¹K5¹W ÆÍK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆÕK5¹WpþcK5¹K5¹W ƨWq!K5¹W ÆÕK5¹K5¹K5¹WpþcW ÆÎK5¹K5¹W ÆÕW ƺWpþ^W ÆÕW ÆÕW ÆÕW ÆÕW ÆÕW ÆÕW ÆÕW ÆÕK5¹W Æ¿WpþcWpþcW ƯW ÆÅK5¹K5¹W ÆÀWpþcWpþcW ƽK5¹W ÆÎK5¹WpþK5¹W Æ›W ƧK5¹WpþcK5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹W ÆšK5¹K5¹K5¹Wpþ^K5¹K5¹WpþcK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcWpþcK5¹K5¹K5¹K5¹W ÆÍW ÆËK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ƵWpþcWpþõW ÆÑK5¹K5¹W ÆÑW ÆÕWpþcW Æ×K5¹K5¹K5¹W ƺW ÆËW ÆK5¹K5¹W ưW ƽW ÆÅWpþcWpþcWpþcWpþcWpþcW ƶW ƸW ÆÁW ÆÇW ÆÕWpþcK5¹K5¹W ÆÑK5¹K5¹W ÆÅK5¹W ÆÉWpþcK5¹WpþcWpþ^W ƸW ÆÀW Æ™WpþcW ÆÎK5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcW ƽK5¹K5¹K5¹W Æ×K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹W ƪWpþcW ÆÙWpþcWpþcWpþcK5¹K5¹K5¹W ÆžK5¹K5¹W ƤK5¹W ÆšW ƨW ÆÑW ƼW ÆÀW ÆšK5¹K5¹W ÆØK5¹W ÆÁW Æ×K5¹K5¹W ÆÎW ÆÅK5¹K5¹K5¹K5¹K5¹W Æ¡WpþcWpþcWpþcWpþcWpþcK5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹W Æ¢K5¹K5¹W Æ¢K5¹K5¹W ÆÎW ÆÅK5¹W ƬW ÆÓK5¹K5¹K5¹W ƶK5¹K5¹WpþcK5¹W ÆW ÆW ÆÌW ÆÉW ÆÅK5¹W ÆÓW Æ×WpþcWpþcW ưWpþcW ƪK5¹WpþcK5¹W ƳK5¹K5¹WpþcWpþcWpþcK5¹W Æ¢K5¹WpþcK5¹K5¹K5¹WpþcWpþcW ÆÊW Æ®K5¹WpþcW ÆÅK5¹K5¹K5¹W Æ¢K5¹W ƯK5¹W ƲK5¹WpþcWpþcK5¹K5¹WpþcK5¹W ÆÕW ÆÕK5¹W Æ·WpþcW ÆÖW ÆÒK5¹WpþcWpþcK5¹K5¹K5¹W ƯK5¹K5¹W ƯWpþcK5¹WpþcW ÆÓK5¹K5¹K5¹K5¹WpþcK5¹W ÆÀK5¹Wpþ^K5¹K5¹K5¹K5¹W ÆÄK5¹K5¹K5¹W ÆÐK5¹K5¹W Æ¢K5¹K5¹K5¹K5¹K5¹W ÆšWpþcK5¹WpþcWpþcWpþcW ưK5¹K5¹K5¹W ÆÙK5¹Wpþ^W ƱK5¹K5¹K5¹K5¹W Æ¢K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W Æ›K5¹W Æ™K5¹K5¹K5¹K5¹K5¹WpþcW ÆÕW ƽK5¹K5¹K5¹K5¹W ÆÇWpþcK5¹K5¹K5¹W ÆÕK5¹K5¹K5¹K5¹K5¹W ÆÑK5¹WpþcW ƸK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆŸW Æ›WpþcW Æ›K5¹W ÆW ÆËW ÆËK5¹K5¹W ÆÐK5¹WpþcW ƯK5¹WpþcK5¹WpþcWpþ^K5¹W ÆÑK5¹K5¹W ÆÇW Æ W ƱW ƸW ÆÉW Æ W ÆÇK5¹K5¹WpþcK5¹K5¹W Æ¿W ÆÐWpþcK5¹K5¹K5¹W Æ»WpþcW ÆÌW ÆÒK5¹W ÆÃK5¹W ÆÙK5¹K5¹K5¹WpþcK5¹W Æ­K5¹K5¹K5¹K5¹K5¹W ƧW Æ¢Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W Æ¢K5¹W ÆËW ÆËK5¹W Æ¥W ÆÀK5¹K5¹K5¹K5¹K5¹K5¹W ƺK5¹K5¹WpþcW Æ™WpþcWpþcK5¹WpþcW ÆÑW ÆÑK5¹W ÆÉW Æ¡K5¹K5¹W ƹK5¹K5¹K5¹WpþcK5¹WpþcW ƬK5¹WpþcW Æ¡W ÆÃK5¹W ÆÒWpþcW ÆÓW ÆÂW ÆÎK5¹W ưK5¹K5¹K5¹W Æ›K5¹K5¹K5¹W ƺK5¹WpþcK5¹K5¹W ÆÑW ÆËK5¹K5¹K5¹K5¹WpþcK5¹W ÆÓW Æ¡K5¹W ÆœK5¹W ÆÎW ÆÇWpþcWpþcK5¹WpþcK5¹K5¹K5¹K5¹W ÆÉW ÆÒW Æ´K5¹WpþcW ÆÑK5¹K5¹K5¹K5¹K5¹W ƦWpþcK5¹K5¹W ÆÆK5¹K5¹K5¹K5¹K5¹K5¹W ÆK5¹K5¹K5¹W ƸWpþcW Æ¢W ƺW Æ®K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆÒK5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹W ÆÀW ÆÒW ÆÍK5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹W Æ›K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ƳW ƹK5¹W ƵWpþ^W Æ×W ÆÅW Æ×K5¹W Æ×W Æ×W ƽWpþ^W Æ×W ÆØW ÆØW Æ×W ÆÙW ÆØW ÆØW ÆØW Æ×W ÆØWpþcWpþcWpþcWpþcWpþ^W ÆÃW ÆÃW ÆÃW ÆÃW ÆÃW ÆÃW Æ W ÆÃW ÆÕK5¹WpþcK5¹K5¹K5¹W ưWpþcWpþcW ÆÂW Æ™WpþcW ÆÈW ÆÎWpþcK5¹W ÆÍK5¹W Æ®K5¹W ƶWpþcW ÆÒWpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ƹW ÆÃW ÆÃK5¹K5¹K5¹W Æ¥K5¹WpþcK5¹K5¹K5¹K5¹K5¹K5¹K5¹W ƾWpþcK5¹W ÆÁWpþcWpþcWpþcW Æ¥Wpþ^W Æ¥W ƶW ÆÈW Æ¥W Æ¥W Æ¥W Æ¥W Æ¥W Æ¥K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆÑW Æ»W Æ¢W ÆÐK5¹K5¹WpþcK5¹K5¹W ƪW ƵWpþcW Æ¢W ÆK5¹WpþcK5¹K5¹K5¹WpþcK5¹W ƸK5¹K5¹K5¹K5¹W ÆŸK5¹K5¹K5¹K5¹WpþcWpþcK5¹K5¹K5¹WpþcK5¹K5¹K5¹K5¹K5¹WpþcK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹W Æ¥K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹K5¹WpþcK5¹Wpþ^W ƸK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹K5¹K5¹K5¹K5¹WpþcWpþcK5¹WpþcK5¹WpþcK5¹K5¹W ƸK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹W ÆÄW ÆÇK5¹K5¹K5¹K5¹W ƾK5¹K5¹WpþcK5¹WpþcW Æ­W ƶWpþcW Æ´W ÆÓW Æ£WpþcK5¹K5¹K5¹WpþcW Æ´WpþcW Æ™K5¹K5¹W ÆÕK5¹W ƶWpþcW ÆŸW ÆŸWpþcK5¹WpþcK5¹W ÆŸW ÆÒK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcW ÆÇK5¹K5¹K5¹WpþcK5¹W ƶW ƵWpþcWpþcK5¹K5¹K5¹W ÆÎK5¹K5¹W ƦW ƦW ƬW ÆÙW ƾWpþcW ÆÒW ƺK5¹K5¹W ÆÐW ÆÒW ÆÐW ÆœWpþcW ÆÀW ÆWpþcW ƸK5¹K5¹K5¹K5¹K5¹W ƸK5¹WpþcWpþcK5¹WpþcK5¹W ƪK5¹Wpþ^W ÆÕW ÆÒW ÆÒW ÆËWpþcWpþcWpþcWpþcWpþcWpþcW ƼW ưK5¹W ÆÉK5¹K5¹W Æ´W ÆŸWpþcW ƳWpþcW Æ£K5¹K5¹K5¹W ÆÂK5¹K5¹K5¹K5¹K5¹W ƵWpþcWpþcWpþcWpþcK5¹W ÆÒK5¹K5¹WpþcK5¹K5¹W ÆÅW ƸW ƸW ƸWpþcK5¹K5¹K5¹K5¹K5¹WpþcWpþcK5¹WpþcWpþ^K5¹W ÆÁW ÆËW ưK5¹W Æ›WpþcW ƾW ƶK5¹K5¹K5¹W ÆÉW ƺW ưK5¹WpþcW ƤW Æ¡K5¹K5¹W Æ­Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹K5¹K5¹K5¹W ÆËW ÆÊW ÆK5¹W Æ™K5¹K5¹K5¹K5¹K5¹WpþcW ƵK5¹K5¹K5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹W ÆÈK5¹K5¹K5¹K5¹W Æ×K5¹WpþcK5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹K5¹K5¹WpþcK5¹W ÆÒW ƲK5¹W ÆÉW ÆœK5¹K5¹K5¹W ÆÀK5¹K5¹K5¹K5¹W ÆÂK5¹K5¹K5¹K5¹WpþcWpþcK5¹K5¹WpþcWpþcWpþcWpþcK5¹K5¹WpþcK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ƹK5¹K5¹W ÆÑWpþcW ÆÉK5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆÓWpþcWpþ^W ÆÕW ÆÍW ÆÍW ÆÍW ÆÍK5¹K5¹W ÆÕK5¹W ưK5¹K5¹K5¹W Æ¥K5¹W ƪW ÆÑW ÆÎK5¹WpþcK5¹W ÆÅW ÆÅW Æ£WpþcWpþcW ƯW ƯK5¹K5¹W ÆœK5¹W ƼW Æ­K5¹W ÆÓWpþcWpþcWpþcW ÆÓW ÆÔW ÆžK5¹W ÆÑK5¹K5¹W ƸWpþcW ÆÓK5¹K5¹W Æ­K5¹K5¹K5¹WpþcWpþcW ÆÎK5¹K5¹WpþcWpþcW ƸWpþcWpþcK5¹K5¹K5¹WpþcWpþcK5¹K5¹W ÆK5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹WpþcK5¹W ÆŸK5¹K5¹K5¹K5¹W ÆËK5¹WpþcW ÆœK5¹WpþcK5¹W Æ¡WpþcK5¹K5¹W ƳK5¹K5¹K5¹W ÆÂK5¹W ÆÓW ƺW ÆÐWpþcW ƽK5¹K5¹K5¹WpþcWpþcK5¹K5¹K5¹WpþcW ÆÃK5¹K5¹K5¹K5¹W ÆÁK5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^W ÆÐK5¹K5¹K5¹W ÆÌW Æ´K5¹W ƸW ƸW ƾW ÆÀK5¹W Æ´K5¹W Æ´W Æ´K5¹W ÆÀK5¹K5¹K5¹K5¹K5¹K5¹W Æ´K5¹K5¹K5¹W Æ´K5¹K5¹K5¹W Æ´W Æ´K5¹K5¹W ƸW Æ¢K5¹W Æ´K5¹W Æ™W ưW Æ™K5¹W ƸK5¹WpþcK5¹WpþcWpþW ÆÅWpþ^K5¹K5¹K5¹K5¹K5¹WpþcWpþcWpþcWpþcWpþcWpþcWpþcK5¹Wq!WpþcK5¹W ƱW ƱW Æ™K5¹K5¹K5¹W Æ¢K5¹WpþcW ÆÉK5¹W ÆW Æ¥W ÆÇW Æ›W ƬW ÆÏK5¹W ÆÀK5¹W Æ´K5¹WpþcWpþcK5¹W ÆÉW ÆËWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcWpþcK5¹W ÆÀK5¹W ÆÕWpþ^K5¹K5¹K5¹K5¹W ƬW ÆÍK5¹K5¹K5¹WpþcWpþcW ÆÃK5¹WpþcW ƶK5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^K5¹W Æ¢K5¹K5¹W Æ¢W Æ¢Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W Æ¢W Æ¢W Æ¢K5¹K5¹W Æ¢K5¹K5¹K5¹W Æ¢W Æ¢K5¹W Æ¢K5¹K5¹K5¹W Æ¢W Æ¢K5¹W Æ¢W Æ¢W Æ¢W Æ¢K5¹W ƦK5¹K5¹K5¹K5¹W Æ¢K5¹K5¹W Æ¢W Æ¢W Æ¢W Æ¢W Æ¢W Æ¢W Æ¢K5¹K5¹W Æ¢W Æ¢W Æ¢W Æ¢W Æ¢W Æ¢W Æ¢W Æ¢K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹WpþcWpþ^K5¹K5¹K5¹K5¹WpþcK5¹K5¹WpþcW ÆÇK5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹W ÆÑW ÆÑW ÆÑW ÆÑW ÆÀW ƬW ÆÕW ÆÉK5¹W ÆœW ƨK5¹W Æ¡W ƽK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcW ÆÒK5¹K5¹WpþcWpþcW ÆÔK5¹K5¹W ÆÀW Æ»W ƾW Æ®W ÆÍK5¹K5¹W Æ¿K5¹W ÆÀK5¹K5¹K5¹WpþcW ÆÀW ƵWpþcK5¹W ÆËW ÆÙWpþcWpþcW Æ»WpþcWpþcW ÆÎK5¹K5¹WpþcK5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^W ÆÂW ƧW ÆÕK5¹W ƺK5¹K5¹K5¹K5¹K5¹K5¹W ÆÇK5¹K5¹K5¹K5¹W ÆÕK5¹W Æ¿WpþcWpþcWpþcK5¹K5¹WpþcWpþ^K5¹K5¹Wpþ^K5¹W Æ¿W ÆŸWpþcW ÆWpþcWpþcWpþcW Æ¿W Æ¢K5¹K5¹K5¹K5¹WpþcK5¹K5¹K5¹W ÆÂK5¹W ƾK5¹WpþcK5¹W ÆÉW ƺWpþcWpþcWpþcK5¹K5¹WpþcK5¹W Æ®WpþcK5¹K5¹K5¹K5¹WpþcW ƪK5¹K5¹K5¹K5¹Wpþ^K5¹K5¹W ƾK5¹W ƯK5¹W ÆÕW ƶK5¹K5¹K5¹K5¹W ÆÕK5¹K5¹WpþcWpþcW ÆÕW ÆÙWpþ^K5¹W ÆÉW ÆÇW Æ·W ÆÉW ÆÇW ÆÒW ƯW ƬK5¹W ƶW Æ©K5¹K5¹WpþcK5¹Wpþ^K5¹K5¹K5¹W ưK5¹K5¹K5¹WpþcK5¹K5¹Wpþ^K5¹K5¹K5¹K5¹W ÆÀW ÆÙW Æ£W ƾW ƱK5¹K5¹K5¹K5¹W ÆÈWpþ^K5¹K5¹K5¹K5¹K5¹W ưW ƺK5¹K5¹Wpþ^W Æ©W ƽW Æ×W ƵW Æ×K5¹W Æ×K5¹W ÆÅW Æ­W ÆÅK5¹W Æ×W Æ©W Æ×W ÆœW Æ×W Æ×W ÆÏW Æ×W ƽK5¹W Æ×W ÆÆWpþ^K5¹K5¹Wpþ^W ÆWpþ^W ÆšW Æ¢K5¹K5¹W ÆW ƵW Æ¢W ÆšW ÆšW Æ­W ƤW Æ­W Æ©W ƺW ÆÂW Æ®W ƺW Æ¿W ÆÅW Æ«W ƯK5¹K5¹K5¹W Æ™K5¹K5¹K5¹W Æ®W Æ®W ÆÀW ÆšW ƧW ÆÊK5¹W Æ×W ƽW ƯW ÆÆK5¹W Æ×K5¹K5¹K5¹W ƨK5¹K5¹K5¹W ÆÓW ÆÅW ƽK5¹W ÆÅK5¹K5¹W Æ¡WpþcK5¹K5¹W Æ¢K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆÌK5¹K5¹K5¹K5¹W ÆËWpþcK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆËK5¹K5¹W ÆÌK5¹K5¹K5¹W ƪK5¹W ƽK5¹W ÆËK5¹K5¹K5¹K5¹W ÆÌW ÆK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆËK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆËK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹WpþcK5¹W ƽWpþcW Æ»W ƵW ƬWpþcW ÆÊW Æ¢W ƦW Æ«WpþcW ÆÐW Æ£W Æ›W Æ›W Æ¢W Æ©W ÆÑW ƺW ÆÈW ƤW Æ«W Æ¢W Æ¥W ƪK5¹W Æ·W Æ¥W Æ›WpþcWpþcW ƼWpþ^W ƾWpþ^W ÆÊW ÆØW ÆØW ÆØW ƾW ÆØW ÆØW ƾW ÆØW ÆØW ÆØW ÆØW ÆØW ÆØW ÆØW ÆÒWpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W ÆÃK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!WqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWqWq Wq Wq Wq Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq ÉWpþK5¹WpþWpþWpÿdW ƧK5¹K5¹W ÆÂW ÆžW ÆžK5¹W ÆÂK5¹K5¹K5¹WpþdWq ÉWpþ‰WpþˆK5¹Wpþ‰K5¹Wq ÉK5¹Wq ÉK5¹Wq ÉK5¹WpÿK5¹K5¹K5¹K5¹K5¹K5¹W ÆÐK5¹K5¹K5¹K5¹K5¹K5¹Wq ÉK5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wq ÉWpþWpþK5¹WpþWpþK5¹Wq ÉK5¹K5¹WpþK5¹K5¹WpþK5¹K5¹WpÿWpþK5¹WpþK5¹K5¹K5¹K5¹K5¹K5¹W ÆÂK5¹Wq ÉK5¹Wq ÉWpþ‹Wpþ‰K5¹Wpþ‰Wpþ‹W Æ¥K5¹K5¹Wq ÉW Æ™K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ‰K5¹K5¹K5¹Wpþ^K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹W Æ¥K5¹K5¹K5¹Wpþ‰K5¹K5¹Wpþ‰K5¹K5¹W Æ›Wpþ^K5¹K5¹K5¹K5¹W ÆŸK5¹K5¹K5¹Wq ÉWpþWpþWpþK5¹WpþWpþWpþWpþWpþW Æ™WpþK5¹W ÆÑWq ÉK5¹Wq ÉW ÆWq ÉW ÆÈK5¹W Æ™WpÿK5¹K5¹WpÿK5¹Wpþ^W Æ¢K5¹K5¹K5¹K5¹Wq ÉK5¹K5¹K5¹Wq ÌK5¹W ÆœWq ËWq ËK5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹K5¹Wpþ^W ÆšK5¹Wpþ^W ÆšW ÆšK5¹Wpþ^K5¹K5¹K5¹W ÆšK5¹W ÆœW Æ¿Wq ÌK5¹Wq ËWq ËWq ÉK5¹K5¹Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!Wq!WqWqWq9ba11b14b1eaf35dbc19ce06b9c393784d57b4c4f499f8de5b530aa33952171f72165606835ef6c261233d368e5754774f814c4357c8164beea69bcaab9b057c9dcd8a1fc8c5ca5d447319d8bd5a09d2f8832b5292488af6d64e1730bdfd49110ae3fe0798e8560562b8be8e8ac8b213d95f38e1df0bca6a0e56e2d7728543e9560f0097fa779f91ef1ecc97379a84db43162aeb69ed1c1f4df7de0499e70e6ebb989b0161a2e6798acf9d3444b0a9bb5989d8d6e26fa74c917aa4031afff606738b72c07dd8526ede509ef1b376be67d39f84d8e361938d507a84cff2a2afc8998e552858003b01968425ec732065efe29b4b8c6bc16af5ec793db8e8e220b6d121ffda4bcd7e1f451a884e76d6613668bea38bb8813b3de8cfe7318cce0fe86135a8472e16677488ba7022579ed928752ac98ce3f6d1b157c5a3604106acf2b1f3434bf4fe37795c033b960286616d2c8cc280099007e43c65cc2dd8f2a61e4686dc67a88e4c5e62e03f185de0a2142654b05e4542cf9a0a30530e59c0479d7096956ec54cf5f1b9b0788f4a97675b9f4684daab1f6469dfa89ba4242ae7ee91e42a4378eac36658a3cec347e627fac7c690d9def22e0f5f3db46f652c1f646a99ba5da71265d213aa42bc89a7b5722e6900a1aeffa38071680822f5a3c23debca0b078fcedde5f3c851c38cae8a4e6716a1e4745a7f114f541c524ffdeab48b7d338c90699714db38e09bff2ac4fe60ea73907491a581ef0aaf7f1b83b81044d93f449dca44bfdfb1b86e181d590a46de6f7a38e0a7c7ce1aa66011158f0fa21b0ed4ebcaa5ee88249b38a4ef326c7a014e23286dcf072b48e42f22ec92bccf3b30498db68a7052e1f3a80a297b6725e711499dd5e83621a6f7c64b069d409f29d96d2a6447744e182ec07885b166075f828807256194888e34514301efe292e98170bef84e2959ff98c08d366b5e23fd3837f2a2af2d507e84ac7f6384ddb72fed3c33700a4ef3dc07d950587f0b234edbf01e697c48bac7591aaa5c34d2b418e36bc727ade5488d69e245fbd5a4eee6b0cb28d832d0f8a3f7a14fa9d36f424d46ac3f4dc156b34d073b249c79607d7356300281c1d3ee82125ad9354ff16b5f94d24acdc8e88bc02f4415041313946a5007d29fabb8fcc5f4e76e7573d5f5eb83936d20e497689f34b5e06dbbe41fd7c57a4f7d267776c24c8f4024ec14dc30472ee6746b11dc7e2c84629c0477c614e664afc9e9c9506cf4b50b8ea2aa053925f2af3c4136020c087576a01498b7868935ca0bda85787965588c0508cfe58a2a5170f36cae202d3a40cb7172df995831d020fb5716920f925c4e34e320d32d2efa7a28155de317112c83dec9dd85ec87e3e79b72890e187d034cba5d9d1fd7c57a4f7d267776c24c8f4024ec1433ec534827438452fa3dbc34c75c27759cdb569181f6a1e99d5e79a0f78ae5eda480db8bb5dcd1c926b77f452ef2ad950e72551deff5c396fd1e00293fd009ac144fd7ea46e1762cc3afdb9d8a4abd5ac93127a00055a458a7dcf9715e714f775a65f04e4f44723d3e996e1371c765c3697ddef5a7a8dbdb67fcbe8f0741e1f32d8e959feddb306bbe713874054300baf9a6917f7ea8f64c5f5055d84b781659d28aa72f0f54765fab7a2fcfa9de4fad1e493f8003e94f08380b49cd3c5ad3c2c30838a1ada9ff9caf37360646b9375fc40de47bd501b84a7e088ac9b0e78afcb563360cf893bd48ea9d73a36da3958b382ceec315fba61f2ef28b71778823efc9ada6c60f0da097ce09164ed251ccfc1e493f8003e94f08380b49cd3c5ad3c2e535c3c2d06fb03979f4f634602dcf1f84394f581ff4fc390204a238597e0a9e2d8e959feddb306bbe713874054300ba321e7ff54b7117daf93316d0133564dc4f878de6b8f86731fb49affdd7e574c6b76ca49f948f2426a1c023ddf35a0f167d5ec694fe14fbbdfb13574dbada5f220b0bde4eadc2db836b4271c1f0caa96c5697abdeb0f54888d052d4f43c5f2ded28513d3f0d19222cbdadbeb32c12d9e7426b6c98e4c972d797108c6953b52d59282214df866d82cf69891ee812a1cb60a0f77b385b6f291b8750582e4472611a2d8e959feddb306bbe713874054300baa11d36c42533228ba861cc63f9339112e6a2ee556752fd4fd8c89614eb43adf99aa297314c22cd4244310c08066610077f552f652299847e1f8f56b158a775011efb39f604ee6c3981b21a9089e44a343d16864aacabcac85cfa8ce6194b8b3b4f741fdc8057570d1b0c8ce1548e180721a0dfc426fa570f56494b9cd3ff3ba62d8e959feddb306bbe713874054300ba0fa4ed87a9485b491d0b46194b56e4a0ecbcf5dbd36a6a057143861ab3ea25da39de414944b90d85811e15d62f19665163fcad457b10b9638db3240abc0fb7a38741ec8ee295452f0f1a2fd3f382c30fccaec15fee6f50ff5c2e6820447c17209fb6a487e4cf7b1c4160a3bc9928c7a6c3f08bcd6a3c83f735818c758d0b0e54938e16af2f93216b568b07955986f74e96d9a4f16637a4504f37ed360263dd4385752920e0cc236dc45b4cc415f60ab2938e16af2f93216b568b07955986f74e92e9f2d7acb8aeabf5cddda718eb03dee69b58dde86029a89724febc17b20cb5e06973374d5fffe30bb0fa9631bee31ba77d6fab0c1259cb3e4a93e861826f6a50b843d9169a205e96818d2e083b496f60401b3445cf8d833f6a0aab5fce961f8e13b42b6c9e2caa22f26adb85ae9f39ef45692e6cf853a820212f27780d99651fd7c57a4f7d267776c24c8f4024ec14cb4ab8be332d1d6e5ac7792c75b56b860f0493ab49730063ddb6bf3da24fd68e6e74d9ab0e60ba68ac3f437f71e66774b685effa092dbb439671c7bfe74cf0f1440fe89b206c7a9d02cf70371d1989724805417874f826f074a5a31fea700680262a861ce397135ec84c8547a16bd158b4aac3f01d513a798f2d3f6fe8d0e75eed9a1e73c5b2958a9ebd356f27fc973b10257e1d41994ac446db4841cf0ffc084f361642ddf7291081addf9dbd52fa6d2d8e959feddb306bbe713874054300ba932421aa2c0acbd0d68dbbf64a393b2ee04d1c0a01304f35c4f6715d673b6125f90973c8e437e796fd5e4c5afedc3c4a1ad3a31bcd93b90afad4791fd0d256cb170a5716941e4794c63ac0a0e2cd66858cf3405b2083e184c50ab43542c87480632088efd641869735610a043dcf899597c2a655fa60bbd2643c896984051a8fe7a581167290c9e2e988699c6be3a9b6abd858e71eec02c5e68186854edbea1b98a57d8250ad3a33b0a0d1ed249411449d6b64a030b0332c27261a3a5fd7366effd2a0b2934718d1cd920773350caba56ad3d9fa2d6deb483c975822bbe4c1b5871fee2e2f51b01283078815d6c4844ffaa4993a35e4f91afbbceccaccbc896312ac41246b1e9672cf1202a1ea4952b5b1509a5b9c6e26361c62e7b4eb5bf41c4554c503972882809ee1204cce7263068259a58ccb6968f4c93a62114f0927f89712c768234eb124c8c2683cd548f5c13c42c92e8ab282cf9dff1557abb7ae0c52fc71ef153996e4b6b47727e4464d3c0cc6a83ef1cba25ba3c36992be55fa06a78495a37d7c7c27d296e5ddc807b950aeabba8cbf8ee323cb861d4ae08c03cf271fee5f003ff7e30e54f778dc8448421856fa9e05b717b245a1084c1477e01ceb57b65b0e7932fb08221429af4708b2ec8b3d2038bd8274e3032c4dd8f39ee390098708ec1576e9dee4d22f4a2d527a3f3154d304616cf55990a70852e08a8fb3f216bd7cc68cab25892a1bbbbe6664efa4e0a7311fd8539dcac1f875621d217a937d0db5ca84076a771d7b4f9081052cd187da93c394826bf9e5fefd46b032b5034548107fe5af7bcf6a7dc2dc3e05d43b44e0451cf2fd2470a50dea56d85f6dd03c1a3203ec6e0905e22e3f8f9bb1d43b44e0451cf2fd2470a50dea56d85fb3e53607d8535fb372e0169b5b3a1de883de62ef37bc579de450b559cc036bdc0deb9a94746d9e2e073dae654a07672168725dfeefa342063fd76a0f5b93a85df04396f397f206868fbbeae4fa61e9121fd7c57a4f7d267776c24c8f4024ec140eb658f7c7c5887f6dd0c522ecff4074eb6f3a8560b5d09aee9551585ff40d2e6148b2c85289e0172c60a6c97e8393991bab6cc6e4f423c7f46898c3c3e68c7f271ce45c3a70e02e48be28e8f63cca9dbc1641653f73072cbaa53c050565042ba27bc24e96e99b17f25ebaa8167e562b82b05be6faf036338842bd09f077508c2fdee25cf94c33ab3992e1de999608f425ac6b690b8bd399d83d25d6a485985b81f4358d070d4082010584780167b2acba411b3c47774b3e6d50712f96e779e037a08794a4aace78bed90aa06d14673f12318bd8a607f743cfb733a2e5004efd6cdf2f2687c3d41bf009139b1693711ba152b1fea729b4602b609601ab8defc92952ca891c1c964ecfafca4c1bb8e1410429a8ff8bb56c1f263176edabc65c0c17688bba36b2e830ab1484f382d07ded81f5077d6ed3320155cfda04626c9ddce7add2ff4d6bacd3c14e3a9e150b656d34febd8a8b09d56749c4b8430a864190b97564570a3043d6aed29ca6fdc457273210478e852febd3d018c27e4dbd1e78f5d9e46bda014e04d4287e776d1ad7bab44332cff67032acaf5b71e13da68e931ef26b822b1eaabd13925832f5d62511e2e492c0e20dc6282663d6232f423f1395e186cce435e1341d0f8c986808239b511665c65155c0e251f4a2b1cd8b007f71c289ba9d4ae69b85e53ba4f79fb52429eb4f653077ff7d4c523abedfb8fdd348f4f2c96f5a70011ad7e08028e2c2e2cfe3db377e4ef1717829c79208ace88a07287e7d0698f0bccb6532e248d5fd83aa7de2e284daf5f8a92e0a0de15739de75c1db5de12e84513381599ac64acc92d719ac4af5ea4f80cf7d3dad693d141a9b3d80bc27b5b63e28ca89a8e702e4ff96ce5fea669deca43369da58cea90e011e4c95f46778eb180c45bd2d8c5790efc025af59cd69fdde69147378efbce13cad941dcc87a6cb9a3bbefc6bb3da216bdece4c69f02b0c7720167da9ffb41c5bed7e7455214db7f8c40e10183c208a20fcc72bc5d374210e49bdf3f49252e4e39fa34646636cf244dae9e783c7015186bfabe58c4b4be1f8b0826447e70d815eb5539901f16c8882102257ec0e7e0e4311f05391a07cc4ccabe989ce9944d141f34adcda67f8dcc0b28c93cc44743e6c572b7f11e0b9d53df3c576fdf3c50ff96058cb28ca54a8c498684a2b075504427c082e6f086e215e70097a2b21df2cbebb804e2d0f7d80831ee7cbc6a9a95af9d0f2553ab14a3895e1b401748a551864d0f2553ab14a3895e1b401748a551864f4f2a1b4b06c82c187a7dcce6ede1ebae2852d74408c18a38bd66ca1a481323b3508f60a518c3ebef1cbc0ea893e2bccd41b45508072768ae7211055f4ab6f7789d4ebcaf902e2d967e4863f21207b236a04986c242b4351b7ddddd513d6bf8b374d6d16425fcee3550ac4bbdfa003d46a52ff5c5e2388c7592d326c9832a1714dfa514842fb3000979b9614e4c5bc55280dc5cce093f42405b87383e8cb0a6666866284c4f0cbc7dbd5adf953bdec6d83776c3ee2da906c4b6d8687b93747ff7df509672816d77b718f4112f37f58b110031a4859dbc3b409179049923adeab9942a38d5efdd16022c8d935b6d78490e29765913ee3164e6bcd398283490816386fa4721d8df7bf88918ed95511303a1ff7b173560ad92066b4246b68d19e2a68004c59b56258bdb30a49d5458745e58ff99efc21df126c8f3499946966cb31a91727f780b7d4a21265b6e9372e7e52fd936a9666547b0575e651488020cb299942a38d5efdd16022c8d935b6d78490b615d108613f671ec98054750b71d1ca7043b5124264ac8543d68c51a6e459591c7ee51fdcc349df3df0db17f87fe6ec3771829cd7030293e83e2fea26a30799e649712e737eaeb8dfb6eab78dafaa15999273fd41043259585cb02f75c096951674b521b20f0009c74e166054d65833c1b757635bbdad7e1f0dd9a0a5a11b7739a6ca8a5988dc4029374294a82cb252f1deeebf012c90d2e74015aa3fa52ef2262a18a5cbaab271957326ef51c8a3fa7e1731a7df786316ea6d3a56fca6ef79434cb856da8538209dcfecf2d01924417603b81a19b5447847a1563e79784f82062c46651ec9c4186ed90c149a857dde653271b2d185c6d5c23d187ab9e49d2e167f0297ea5ce72e2062f0243f2929f3295daf2e0b6610958440efcb438c50b2a8cf4fff6bc8f37db55543e1246c3120ed81fe1970b0b98b8e4e345a13ab75e5057ae0c25984bf836097d6e17930e4b6b01186bf7ef2d7f5247eeb56ed05c33bb01186bf7ef2d7f5247eeb56ed05c33b1c8efa633563b1496bd2c660cea547473c77ff9378c2b8f446f54018ff8911b63fb8b1838d0891d732f64a009cc8d12def269789e20032ec6beaac0231003e487ebfbf5c8003717d2a46ce43f72c61222b316cda0e35eb3e0796e343c0e54b4e25b5587eb1c67af50e999173b8a02559ecddb03c1464d07c055239d29de6a48ec45de43c3a9f0b76ed0a84dff1752527240803ffd1e3e96e5124053acfed8d45ead1336e374fdc92e4ab49df23204f843d413cb0e9275586c900ef4022edc9c5de4a3822982af82fbc75daf2cf7f4b15954c3106a17db056cd216011819f8753340936b60ee64d30a28d3ae1d1256f9a85ac777453b93ad3786d40abf4f9a609bc7a3ae100110db6bd3afaa53350c4b031a20a26b8e4929b6ceb07983e8f60cbafa1672905adff24a5a8512d927cc840fc17e79653592b8727ac197e83202d8485574e6a06ede932397deb00bdf065b3cde75fc56320e05e70bd43744841372989d356c495fd76412d269a9150f6f0642ae320a3d2c43cf6fce1823e78ecd3fb488128405eda38c5d23b86bf6f1cc4c86c9b207d67b936e4d47755ae4146d39dc94de3a5e44e663f0fd148ce8e45dff38af7e8e560139291161efa10a60d73a4760546a2948a98705cd8e35d8bcd54e9481136de25e7646bcb71ee45a7cd06e7a2d75dba8507ea73279f234f82596c671a4145614b9f2fa0a6bbaea47461d59583637930484dda968404d8dfd57c853185f7d8b8fa2394d44be690b393a40984b9c4302acc6f0aa5cba35a6c5d46eaae708ba2a6323c690c80c6ee4c7089d5dcb129aa836199bd5afc6796a69b437a0c708ba2a6323c690c80c6ee4c7089d5dcdd5c1a05415acf87ee90881e79649155312622a42105ea97b971ea3c207ead61b30b8ad7880c4234517fc22c7e359c64bf6a971de8b6cb122e4dd2c65ba0bee1653f30cb2b5de8a9ef5719bc44b675c8eb34810153ea63dc24d1dd61a2c36e13aa16cd36b083e238afdae374ec49618a585c6fd0c682f1007fc27c7c99820c4088ce7c8cf059c13651af41ac41bb869f3db8689df45b20140fc57d6c76a3b9aac7ea0c32626990f79fffa3c0711aaee64d4627bd03e6eabcfbf95284181693386e0b29fd6db2b341b334db28978ba1d043241c2db57a82b7044a2fdcd20a185a90aaa459a7393ba40e9ce8c91e6be36c5de67701124693cc9a99c53e899922c94dfb21232ec2625a0ff0a61f6a666ad6b26251cb92dc925429e52139238ac10c555417e55aeec9a11e29a630d22d477f1bd573eccb479e10678a588413248b931c82279f78ece3a6fbe0f1766641ca2ddcbb28a250420dcb9972f3cf6c73d85dd8c9df5f4a9897ebe0105f4b9ceb6e403fbe368adf47b3c1d1d7ad94fba35e90329ab7c3b0d849628c5de2f84a32ea0b945a3f97fe3ad349ff6955d2d7f8db19a5bc588105b2d1807975f6a975faaf9d80b37a85079da789b875d1c30ed049a963f7c69c5220bff46e59e7c3cf809bc845e9f0abcaa10105cd37e280b25735f6c7147336183345ad31318c86df900cbe46555d2d34d7a77c2decdd984d64a41c3a27d306e60f3ec844ee57e97d5b3e3e0a2d5f2d0068e6ad9ecabbd415f998aecac897de942784f5b0438f91dd594a40cffb593cec5e677a45accd5b45da171d11516dc7542fc1981457306a88492728a6589c5cf3cd69214c325c43e4cbecfcaddfa7ba5d44a3b2c62249c62b292cd886f7dda25bba0105f4de125b9cfd3c2ef72a276bc6f05354613ef165f56ac9641155ba22625c98033157778da8f10b57b7bb3e6aefcc347c9a80352c9ce784deb7bb3e6aefcc347c9a80352c9ce784deb7bb3e6aefcc347c9a80352c9ce784deb7bb3e6aefcc347c9a80352c9ce784deb7bb3e6aefcc347c9a80352c9ce784deb7bb3e6aefcc347c9a80352c9ce784deb7bb3e6aefcc347c9a80352c9ce784deb7bb3e6aefcc347c9a80352c9ce784ded3aec8ff9d602282c47f19a05494969ab53db47f43505f0e9068a3ca621304dc17eed2d1144e37ae05b5e56d9d0cd5ced167bc00cfc009c6e69b2873fc76f43995ebb7eee5dc9cbec5e5629f376e0814e544eeb0ef14c17774208160f35e654cb47b155722d72ff4f1f164c2e2d116d7f1ef23bf25357657271b87d63aafe9fa4c841ea8ec98562355249ad6a3f53fc9e7ce091d2b529494b66adcf650829805a8f6f74246644fd8095f9ce464efc6ab59af99e0ccd075e9d56c5cd0ac8a0e563d1a56897e086477a5ea1e483fa0685783092f9eebbfa7bbf420cc7f708e978696937ff8e46eb22a22b0b9ea3c78f8ddacb79d659f673b2fa98b16ca94abd8e41963aba81292717b22cad13de718e4b92da56a7b0974611892f2b5667d6c4d4547833fa8515e93a72d6c83d5626d8d04e3531d6734b3c34790d1e45955d6eb9f7ad5216f42f8f6455a81a92ab183a48eb7051fcccfbe9e5402fc4e231d669391ec052a98f49ee3ff8df48fe50868a5eb241e28dffcf9bd6dd60510a63d93746ab04359f792e91b2e55fef4a183f89a21829d600dcff7c1cbc4f54880059b876a8f33972438c5513f12a834b5b27b5d61a91e5c1337f1b7dc7010514de494239e4f98bbf37f701b1f4879592640899aa24f98bbf37f701b1f4879592640899aa2355189d6d19965184e445ddd642ce922d59b06ce1d5a78e10f03ce86db000718e549c0e944c586be79b23040efda091454f207477d7a8af7bfc9d9a577d6c9f59079082c0135a22c9b476ab00c4ea02a9079082c0135a22c9b476ab00c4ea02aaec173413741465fff8faa86eccb4b0184c0d9d52668647535f307da9835d6a23faa5b90702b337d9b037d22249950c89a71849ce1c621264ba1fcdbed0c088730f69ce964edcd7f3e460e4d803a8692fd84bf31d3c8ace20d02b5bf45212412830d77d2a83028d440ddda6b8578b59575096f9af452d2c1073b3c9a203196ad3e3271d420a27f10a59a735d75ee0507daef86c9fcec8d7d73e2971294d4314022b8f732db1a065039e5e0510c86113efef5411e7bd0c827dbd061464e7d7b15d8cb033e9ffa4ee0e056064965b84965ab263c7bbc9504f59ac9599b3145961c9141ce580baac5a1f6054128679095dc3a8e21f657ea737c26fd00c6024ddba66e1305dddcd0b5bac49a559413cde25f0b05d0c83c22f74f425162279a9b23015b7daa5ca274dc74f13a83895cb67881d79844776ef50ae65483d61f4921382365a73d82a506a718ded84ab5af357f947a7c111fcd924cbbb6de94b3d2bda997de4fb90a3de387163bee6d71066a9d4a3e2e69656a66e9c1681120a2478855d54c446e033d73bd99e07f25acf145cea10834798fcff4a9cdbab7ed49aa0b10bbda7db7e04a4f3231f34014cd019c58826bee9225a42ebe6eca63f8a3e4e9487c1af342dbcd9ce1e2895c948203615ae6599921f7325299f76d10867ecf1fcdc29ee43c112d359b476ade7efad44670e885a3c3e41e940bf7902614a817e58a1599c56cf6550827811739091591f17abe8a5a956892bc25be5614caa5408dee2b86fd5edfe14e049794437237e1f8ba148880dd894a85682767e5fdc7ded42bb56ef8ec1a9796c39313812cc7874231ce08f046d6459a8ee8c3597edcc463ea88a171f966265e35233bc935191bc0d7245ade07865d18ce77997b19881517fa7dd706b2a681ab521a0f9746407021224d695a585f484f1a429f4088c9e4b9132849714b5eed9cd4120900ae193df199a20a6429a2f41405cb6689f28511ada1f43dfe0e4586826030c736bf6cc1a893d0d4191d13295b1c434c436091f0083f7195e0e18e457235dc5f95f24aecbfc9cf5c404542528203574aa7a9f6f1334aa02f247c3e37b55d75d6bb8576d5d17d81337adb7538b85974334e9b2f82c5514b8cca05fec8cd52aa4a8cf2c3ca259753292282aeaa1bc777ce377e09836c56af3653bb2ad4739004268a65864ec0e5424edb4addc9bd229619776472efee142c736785157134fa843daee15d96ae3d31f33f3ad3c505fe234d37b7e3556341f21bc1947b4640aeefb9bac4de0bae7defe35383d1f4be6174df49ff0ab3cd35ebc471d1075b0253fe36d830627c1feae8366b7f8ac45432ed1a2da3fcb97258dcb2189407d5f0e239280b00e6e8312f786d81670b29c476a1319d20802fc661333d1c48c8270fddc6d86661abd1d56d54835d59cd39d1b165e1f2d2defe552afbc487fe49d09ec06d846a1d0036c8fb51b13b6e17eb1c7034350c4bfa1177ae3afbc11163a41e9ae2fc0185e79560932aae780684f92be5ca92e2a182b344636b260f1b7d2e2f222e4181ad2872a7ae164283001ad8e949014b5154dc397b620c4f76be4b3dd30765746b56e722c32f8d3b8dc2bb82e8f2568b3dc87d4faa4a2c0b5ea5fc17cc37b35cd38036c931ab350ec5750bd005a80b6220b41200e5f84ffaf1a48e5b0af0ebb346b07e570eee9e4f89a37ac0a15bf9e396451f37f913d8ee154f9ba7fc8f0161c709abc578d67b3b0e3dce8c2a03a6770c08388dca547908ff10bbd90f43ec5e408344db4d1903b7156d4c2bc08ef351d9cf207f874d6a21c08ac756f5e14dd034e38cc41134d7acfb1bd499af5226b026944ff99f3842d5a3c394ad8dc7ed28daece0815289e8cf3ea736ddcc077ed5da2d14db3f8607c974d75c2d1ab18cb64bc53c284cd089d64d11556be36055eaab66531dff537170424992e419bc88e995f5eb9a2dc0a06cff2b0896a5e6a3fcf00426df53517beef61db6bc5cae3a40c9aadbdc539bf2ed6f795e7fef9bad2502eff01394ac6ddde3221bb1bd75f1bc40bb5dd51b3008aeb4a04c48e02b4472c647fd97f7002c5e288050e18d8ed4f92821b4545111f7b0a64a2bed4e9dd60782f83d1225db545bb842e51fa84292107f24b8a40b28a5609ba53baa91d93271254dda46f31bac73bc332d895bf7fff8e912f7350f9dcbb8e58c5d5e39293c225e832add117944b8e58c5d5e39293c225e832add1179449cc9ac7e614a6a6388ff7dfc7d8b71529836597c875af6ef55f5929404f115585911c57371559cb8e6c7adfc11f410c9e81c74bc7eac57808c4c31ab7f8d8b1ed8c8ace2976faee3ef0d54f727b5b783eb5ac8a3bc6a9b206f3c84f13bddb8c203e4524e73610a4b451e6b22462ae5d84c1ec7117bf3bb721efe2014353f2058e596d1f8a90a31553fc401f85aa2a17682070a0a0214059934b3e55564ab779beb717f3cfd15442811194a8399c2799fe636948dad212ccde3786e79bf14c0212b8e796616e1ddbec18eac23ab3915bb4911fe8919fd09f43ff5847fa7cef213869190d07159701e8bdc5041e403e18543a5906df7da2eeb89869d869d69891f1e45e4b69e2b6709535860ff6e2012169cfe9fa273453a5fb4ee91ae28404b9f0537d99622b54ad3fb2b7d477fddcc1a89bd21ad992d78dd8a73953740a54cd3ffabc536dc8252eb4d4c404769bf9de09441b5195bfa57dc0f3fbaf971d98002d1acf44327681d6f73bc48f4b656914b12209934aefa794ef725b8377aaaa0df6409196eba4752c3a56bead2e397a391b908d1ed9671fa0c2dda6ded887f8dd28b540251cf2d1cdaf09fb168ae2efb21a53ff208e6efd5a4cff14e4a92d77490ed5b18b3ef19749736b1fd2aa2cd121376128a3f45a73f31ffbfd81d15e4e3343a55490fe89df4a744e8cab90dfe3a044a78592ef3e92f4ed45eb64e5d757c5da1002fff814dd8e983b812c772d3f1bbe79df6371a092c679901a1fc6b00ef851cbb57eb4d32140d35bd1ca059784d1011c4a4f78f75961e6b121f3bb251c4ffc8db095107b1475536513859feed418649d59c7d6ecc3b146a569c0762038c4ad9efbedb9723d6ee0426e9a9f33d76bb340f63df3662ebcbc491ff78b6ae86707377d355db149459fa9c937106af31ca1927953bbc0b321cf2b8bdd5cfb9a5a9fe02457cff8be17f44af9714b67a73dadad7e8846dd7939e70691626446a38fac51d1937190cac1f77826216e63c8de8ba3c3831e3058f74992288aa140a59b417d1a14d961bd5675fa649b1cbb184e6ca0cd7c05ab42a703df31d09a03b144aaab57342ea78794f636c58d1e7b073b2cf41096ac1775811fd8423b8131c764d57c1c33f05f814b6c488afa08b3324f7d41918adca00cc47529ab8bfbc3487df5df9af0b50832131c73a958ea1be88ab066c2233928ebb35d4d43ae2141334812cf70f152059ceec91534ea8828f748888828c422a698d08fc3cbcc71d9a5117b6a96bf08c598ce69231b325c30481cd10360b6611d7a555f280270f3c606e68817acb135b7d2c7428bb3fbbe47bb1d2828fd413d9bb6dbdf1f4abab91dc739738c071b2cdc27c9b128f2288ea328c88eafa1291634aedc9c36463938ffb3b927eb2586fb8fd134984e9bebba1947b737c707432d19a18110d83ce3121a458071158cf6d466e049926cae43aa321d111f9fb9d9a013c9119d21b1a257c87ff838299efc9e18c1eeb4976a1003249f43e2b4e080fd316da3191ea810fe3897c6f37150ef84df06565b46d4af4b4f9cf2075896fcc94c02e56feb07086254f025db56af386eeea531b7df6d439e6499971e26b01b4331f3d044460b28ca54a4b464c97007f603adfc0b8e8cb7e7e398eb98e1abb6558a57db816fa9e2d4cd3f91335dfc8461740a0a60e501d4883dd3a1a6e027a3be6f4a5e679d2e9d90fb2847fa0ef15c2ee81dcd4ab28ded99facfb07891aba2ca5e6aa088f50968faeef3abb300ff8875384b60103dba01e0006c709705e11fbc8a1a3de632a6bd698924869a3bb7abd320de25877c0f4c875ad4f242b557c7c4c1e72e28ae552aadea1900dcd4a517d2bade305448b7325d1c964a4c71c6752b506a0e11b85ca538d661eb8aa9f4621508db4d143bdd3b7d092448ad8c8dc725078d299a987ab17d2a31b7d9f646955877bdf5c70dad0da6423cb12f673327b9c44582070fd9ee7d4df81ad74c9c4ea5f8e3cab53e1de184eb66ee320c15d9e72cf3ab3ba2928ed9194f01306cd0b0b7d0419caa831b88c2dfb5954c91431761776ed9dc5e0202cd82455e0b7de796da04d7de3b8ff8080bf0811cb7fb118740f679233cc585285387caa6d1c1fe8749e615504aa5b9865c610701d36d74dfe545a11ec266105313816c8f015630c479e9fd55fbd05571402f478f8c60db1be7ddf477acc9cd547a02c32156e915e4478fa895c7c142eb0313e92786f1b1a55817eaedad2c62f955f738a4c58c3e8bb3a9557dbb8a37e082cd039c212f0532706924a0c6012df97290ad0a706bb86646cd722faf5cb23265e5f195284b3b4373fa2a73bf5674930cea8d26578dc8947a9d17dfe850846756d790b3312c05f3eab928b15789b7eb4570579416d386cc8f284bf6c1f62e3e80c6afd41403683fd766e8ca20cb2de0010f4eb2e0d6be0e37354c0db2d7ef14623c6bdfe4a5b99ddb399a699e13684bd6fafcb5292d37ce2c87a0daada696384b671aff59e01c11a3ccab8253951ad40af9e4ad7665ecbef4a445a7d1ed99780434dc79d205d6bb3e495e0881ba3eab5713ccf9e09a67ca37452b25795e5ad2804d132613b4fafb6fe8832e33451954c177001fe3f77f74b7e468c14e571b3f47eba6dfc7409cab8da61b445f554fce8f6f365139ae26d6cc6faf8e1b1b30cd910f64fe0564e1b69e0fc7d418a04e55527cef883f45f50d0caca9092a093a04046e3c4962854d590ea0504df74be8245be7ceaef89b66fdfc0d3235cc900430ce5d9b0cc3536c5c6f883e48878a7a9b7f0b195f4b8787e75d31e654ab2a5c9e0286e8238c16a63e72367d2d34b14344de2ad3c06063c56a99f23f80767179d34b3dd99f94edf6e536aa1d1ba53792551e22f891ac8b6a06ef027dd6b653e8fa726d20cd934e3346abeb88765a72a7ea5170e0d9b6a9b12a1a0f06ed0f45e427379a34d02226f549821a226e7a180c663dbcb951263a4b438803f9ba00cf09d431a08eca08d3677ad3452f6e2e0e1f9403fcbd2dc8584fa4bfdc95ec2564c5fb73e088e7adf5470fbeccaf1ee4501badf5ec082f928b1630a1b4d8812f0015fdfc7ce3a5d34eecabc1628c3415d9be15d5856554eddcc4ad7e6862a68123f7f0f40c97a02b3b56bd6c748f0b85386fc05aec198a653232e923268b0d430a3dd60b5f5bc9a5a663ed38f2a4319cbc77b63c495995475efef2c05f30abd274d5fc20432d746cd16947a80c2bed8b8cf73d19eb65f5e39224bbab271b5685775b0624be88f66aff76507d647f638ba00fd746c0e4ba2f3eba79315d100b70a8cd7454e0828ede09dd17cd2de78d3c455549f99e82f66e3e51a9af3d87f51408b532e0894c34533147a2ffc3a7f17d6b08f4ac5693b3c58fe8dfda624450fcdfaf112ac11cafe7408996f56d09d479801048129211d73cccad388b4da650119de1966477b7e1fec30a525e2976ab582a63c31d45dc62350571613b6e1dc83d7d12c4e17bc6dcb254616e1a109407b2286288d8d8130c08fc80acc7d7f811b7d0de759499c85a159d93a9b104535c3ae2bf9c195ff5fcca43e9246655fe7bc35a8f5aef180e7ff6b28494f6579dd5bd5efe934a605b02f0a6a2407b2460b7e76aa86f5fa3920e7bf8b609dc7a0ff70e412f6253bd54d9bdab3909d4bc5c96e074508f94d9d7a4ad407681155b80f106e5054b1366dade2a29d223f17f445f939bd2808f23d4e83cf2fd31559d3cbfe2b998c3a495def0ad4e788998efd9afdbf309bf572f6536a32f0389b55f8c71c5ce8c9e69ddfcb857f84d71842034c8bff33040778529c8449e2df46edec8c15757032fbcb496cfc2c04fb4edd3509464c68d8bedef2ea9deb397576e4533850236227b4918832a8489b3a917b716a0416f54be1fb27c48f730b9dd3b5788c8af28e7164daa03aafdd0b66604f48e0458da33ac3bb3b921330678a88a1228ced618094a44c5ce88f06715c4849b1ef95ed44001d50ce3ed57d11b549994c25070a454aa12b478cfc25116ceec60c17ecd62cb7e216247f215b88ccb4624883106c434f4fb67e1a36e4a5cb60ad2e43cb62a57042411c17859519b75918411bf0e0cadf1386ae03ed27e7f048f407323cabd935c03af22238065fb614d5c35335a38cde8dd803494f099f61714a2b5d2cd87f7d9d481b972d784b1e51a53e9dc4c093f21a12d03f98d11aac0d8d8794b7e04e609ec94c6dece88957415a544c85aa1003006c627e12d9871ab84466ebeabcd9fff238cf108e0a6c58356ba8ba3d1e242ed56f3d1401b908d1ed9671fa0c2dda6ded887f8dd26d20890fa6cda2639b1176de28fc42dc6aa8543c2e785533427bbe99e30991f79095a8c9187949f1eb865115b7312f0dd7733f3bd960f7b83126bf36e1822ca525465357e0da097e923ff3e2bdca92eb517e33ea97d18f45a25bd31a8c5b50b33e48d6ce25830409fef76a10ccad62159305930acd08927da2fab03badf5b4189bcafdb0631e6bdf54d547e6f840be0097a916c49765fe43235f7f710d921202fe3baf771ed79b237b62961d8d85f462a8b523ed51a30eb1953d392e8524a098bb7bb42bea2eb64749b94789741b9d7b23be66965fe2698e58778d0caffe8c330db9acc4109d322991d1cb5bb19e48d5545d0d06e89cfb96c93c37f563dee0f723e072d84f4cbebcc69e985ba8adb2c726d78bf700355436134b2864f2a8023054b0209fa942ddb95e987925d644ad141a43f91f09758a6081b6f4cdef3c22e85c448ff62fb157eef948bcd863a61f0ac620a77e84b59538406fe75e31c0c4b5567406c40dfe0fcb6dee0c14c8cb7a5b2783c4c6949892c1e9951eeea38a9ad3b815a0083c0ae491c8109f7eaf2dc30300cb1ad8099dd2a8bbcd9b33e02f3a7156bb2af0dcebd4c023ed69d9503cadff46d30d370b26b21261b74513a0d2f99de8466840acc684761d73f15d45cb89716c45167b2904d98e4046a32838a5c4c6bb53692afd39f39079c696120781251bcfe48daf65c06aeed708b99ca19314eb6a488f4d5f042350dab20a0513b3b99b4a804d909d886019a41c7ec9330ba3d6c1962e91ed1791da00e5b1e65d986ae0f75f35e0bda0bb832ba0665d658c9b4d2ac91e5b80b42af9ae8222b232dbb5c8c1997bd17d03ab25187421afd7ca67ec651b34e621898545b1fa8460fcf211eeee16803b9ad1623b7f643094bf24029bee0bfae791a29877202def8bd375e495b00605dcdfcb3764028a7774e4912e26236c749ec8715d254f08b099340f40ea6590aeaf201dd01a86160126e746caa15cb7a3073d519918820352a715bcf3a8725131d51de224c27e6c4cc9df8bc52ab334d4d523d8c345489ae9b597566d830de21242e0b0be6a2b29231de2968e4bdf6b627cc05b453366b606fc1ec010a8a18889666473f9496ab8aa64c774d7c60fb765a6ca729a301d5e6205ff53572ef3e5ba2cfc0e203d44f8b596f9e77091d09436e478d94d2b13aed363467f71cfdf4ea6486064b257882883265775579e5ccabd7ec2e1b6a7c93fd0a439386d58809b1900b81ee86139a1e1f3be1a7df4728f48075630f0ff4055b8ccc63b2620e27b12c19a6db33b7c93acfaf817f38dfa771e938d97cd34391c59a3547fbd5e1bf7dcfa0e0980964684330240647605138ce7f2e636f06539ca663c6d24344f5f9c108f0efc31a30750395d935ee411f2c509ed4430235c602a514de56e64210c4f86295e67e03f8f4e9f25ef9c7151e2bea1ef147812ff0a7da5f37cbbc905018cae3d3d22118ad8516b7c11cc732edbbbeb5326336fa274b0c8308099d5900200665ed6eae310665bad19a04b2248fcc4094c43717adfe159038ad6f7f6b6f006d92e78f930a282ddf696f55f01e4374ef6f73fb97e32c8ae76441468e492e45ccd99253192937ca7d1ffa4abbdb4b975bf1e4a276685a7c34453e2723a61acfcddfc9ecd34cfae379549a98c3f3c32fefd405cd9c6553b17494c7f39b48f992e82e176a950352a17c7f05dd59fcd18482e7cfe4b9d8444a1ac9dad02095b9cc10f6fea7ab4479faefe0b1728da7c2f26676fdbebfa3e9fd1cd61a0e6051e0a11e4e7efa857af98cf2673c1e644259a3fca17d9d38ecef22a1f3d636034ad18c7a082cc185e19858a48ae1bd8200ae07bb1fbce67b580c13b57c94d6eb5806b3cc5b8515a60e26d06609bd0e15360a353271445472cfe4269cbf047a6d3dc46e3564eeae64867391f27adbf2e329b0068fff98b69c79986a1b465fe28ec4aa135152f95bdb9d70db87cb618f5d0aaee826fba9d1566158a3d641b6d55ce40ac7ac2a767b28e5ec07f094c15cfbb3be2aacd0f3b353b11bd984b10e8b39226f8ad6df5b17592421c025a26152c348f6ae31a96035fbd8cddba8d16851b6fd2088df768c16faf1ffe02aefc16ac78888d4c9684a4643645640027b03ca3713014dc22e370ef5a161475d9e1a7036e1355a11918f83460c43f56955d48e59b8c71f0825ae7069e6147f4d35b6310ec82d2318fdf9d64fd3bfefea5c041938e9a8cfc4ef534797787072bb8830a0dfead30071749fa7bc38b9c7ee7ec2cceeb3979d8e557335bb5a877799020551827063a2051bf532869e77b691035cb4ae51905366a204880e8cf1fcd3e61ef3cfa4127899320718a78fd852e1cbd36c3f526a598360d85106db07897c937209e63eb2a521feccf63cdcf56fae9b97662ad6132b1a49069a30e9bb8e631c373eaf541698ec543da1fe61b2c181d23b9251af7766f48558058661f3586a1a931975ccd4fe8113db731e11cc09d1aec3b774fc93ed97e0060d4cd09f3e9e9346ae01370f56cb561f4058d996736c0dae5b00697ce0db6d74fe1ac78a11cb6837b810ada7c01da740fce65f88866a6777c7672635020293273fe39944f7c0987f33cff6474ba8c2b6f11b004839980e7f8026c7b3a591a428af0497781f311d6e14c3b19618cdcb9cb78911e136144baabd20d1e8f0cd58343173218fde4987de3243b8c7e3483ddae6211f29c2c348d7a50c18d33df9e3eb9996276e97ab788069fbe3cf56967fd0d6c94c7c4b444166d6dce6d595ad856df74cf0562f5f010faa590ff06e53abfdb0cf5d059ecf790bf39e447595b5d295deca44d04c70bfb2e4e8c669667e7ab5034f5c39362f23a0b91358fce099491f29deb04e4157c9b763bb3442b282297ea711c58c2cbd85eec2f255560296533bdcd816d8270f56a422da70e58e12335e23136b3eaed2d0a6018bdaa35a11dd3ae93e234fc719c4f34359d9a1f73a1ebed081b94dafe29ec6ac5f1867bb8fc802096c3d3f5e6af8fda53636c700a7827977a22abb9f2d6106fb78acb55a447eb61fc7fe0778a9b8026a25e175626640bdf3677e62df878ed830160681582f1e58eb1ba4cc2e6eb5b07fae7dc29111f5397c917c7d5e6fe8ec79693b98fd83dc41ce32aadea0c9aa10b611a15675cec9ab563a9a72d4a331727412022f90ec70241529f307a31869e7e6cfbe8a5cedbd444be7216303596ec4d5050478bc7fafe68e5c39a5281fa03d112bc9e5b707cb0c1e8d60432a81960aa357169c2356ee52ec5a16f685e2f782f6abb0b8ab9f036bf586c624af9a3a2e24e92202cc21b4f1a2ba414e330f5492358cb4c9448deb30605b8b4e1a0844dd0e5cebd84eba843046de07bc267f1704792b6ebee2b9c65efbe88ac9b1f6c66b8be0c8aa3724a2846f5f29156fe80f3f814585173fc14824633077a114b89fd31fffc91e6e55a5797dd67640dd032e24d49583c5e914671340ce92d9ae4cf4a0dda4cd60434c33ccf394d91f0503ead505179fa87d64a03f95dbe379a6783bd0af1a290d11992d709069294ad4cf729daa96d9bf60d391bb351d72e43072aee0c245ce95c6ee4ac39d44fb52bc9e9ba31e688036221e97313f4cafb4d9376c90d5ed30ea64229e824cd0fd3b12e0ac812d9cc522cd1a3a3332c063a8139f1d4af8ad4b8cbeade15e0ca621ecffd6ebc62400715f0da833dd0ed451d0650be79cdd2b632e765769f3dc30abc8f89de1a000a509aadcbee6fd2a5c7ddfa50ede6de124430c723bdd86dcebb1f66990b8ef601b1a0c3ab98d3e8a2ab7b08c5e1f95ab026c00161236ee21da8c34aa36065f96dbc2dfdff619b36e6f63ebf771da817834f23275b94b82e14067f4e6aac32eeb3cf97d8187ddfce30d543559920bc7086c165e927e43c5be77d15eb92661eff4b5c342c54f460c9f446d89dbf4a9f5c60c38a394499858faab7d8218fa5458dfa9e1ba470ce5fac264fbe99401f4c4c44c92f988c7df771aab2ba9fe021c4415cc5f3225cd796e93e78aa4da1ec7e8f70c511ae26c40c93e1c80ac2e8f1c26a98a9db966feab933de408a48afbaa8dd671f6084febfdcddfafc0980356c323fb0b0ea5eacba08e0c78ec982c1e7340b4c41fa00886fab1b4e6097710d393fa3d6ceb42dd4edf8effbb7d882cc1c4fd5ca6efc06da2b86ce377197ea459ceb8c9dd5f135fe05dad8d5a67059a6bd1d3d5baa39a8606cb7f0b36b7ffed407a409829c9de2ae97264ee05cca23500cee4b2e6ca19c461d573d0ba27ceda74fdd9a186b4de0e9b2de6723b36993c72c335884ace342135c7c6b34b7a2ef2b3b5d5c4d05dce6c4e14e4798aa49af9e9864352c6ad707741987a083b8132f20cb250c9627daaf90a7e2d80c8eb4069a4f29ca89be1e52ae730a3290743f5b907c554783603c27e887b68759c81795b3602919e727ccb6d1582604bfb42e7c054607dde0d878b82baa4eac10da42a6e33871c6c3ff70415f2fbc20ffe1df9a1750acbd371d429c9da12b0095d2ad85d104fffee44559539cbc44b10900e5af53590b408ce6d3735f623ef42c5ed80882d9447011c5c454cf07068c6365b13ef0e2752812b69b4c1fe1c7d360f64373351c0160f8e4a53d33cfb242d3c48c7eae1c525728332e1490c63de1246f5749bd861420d99c4d611e4a936b9a40b4626bae19c730e96b827037c5b3ccbb87cafc0020fd68b543a3123a7415a8217b591653245a4db2e029dbb685f25e0e09aa59624964e2b81509539f3c8e3a10c82aef9db8f588d4703a253121ebb0c6d951950e8ce17407ee566368f957d20cd6e26a058cee07156d5a0252d50e9a0d579136d5cc3a3a987ed6f796245565af54792d7c9230c9700fdc2975fe9855f19acdf4b86da8a3db51d866567ad973301c7257b168fb516a02490d5dbef54a20ec1e95b560b0cf839ec2bad24619d37d9219783d8163276bd9a03a96f6ae4e4908087213e0d87b2c43aa1aec6dbdc3e950ccf623e6104ac3ef316235140ea95770e3b16d832b5287b935ef770c33832fcdecb734e1ca30e7ae990990bdf3fbcf34d364ca2805034be63fa3c7ac6fd4c1c8b3f198f49adf5b6acaac219ff969f4a43664bdd6c2db92f910b8c471bc91d7b0ce1b9a4659f9eaf0e95f7cfa4e137567f1d5066e8f0eaa6dcfc6e5259c64e002edabbcaac2acae303fc05655b6f6b2b07aac9b900379799ca207df1876668530d385a72bb4faae2c4cc4d585e3d598376f2ab71638fee92056c8d5ed697eb58ed52c9be4c6032894892939dc15c0fa8e1e3807358d78dead9e32f7b088ada2f6cb725a9ddfaaef1a5caebd7b2d5c6cf762c9241695e63496f685c07c5fbbc295eb44c267529a7beb5a2c442117d9f9c899796186725331686bea6ee018ceeb34b172781df32b1df43327090b6d7b2dc558102ceeabf87362e1fb82d7cd7a4435772ff9232d9eb65017166a10ef13e47fa2ecf922b30f9244436476cb21d7bbbee0cad5a33ffdb30a172fc0082b2d3f0e298b69a7b82bcc0f156b565f2cb2676c0ed24d7edd3e93d67b6b42554fe880cfe1dfbfb615ed34bec4fd8de52820d49fff0778a63b937e3ff8518aa181f95defb25d2857826cf111c71c5e6f0400545eb4d01b6e2cb044374eea4a78760c9d622f4e27d5ffc9ed7cf5792c4483b622dec60893d0076de33c907e4e34a6e7ec571aaf34d3e647ee8736eb2a82010cc2b8194bde001a28c7a56ca66735691549e275035382b303a27f1da41849a9761e05d2fa943c8393a438291094026d4bf4b0341b414a2c71d961fd11eefeeb2bdc76558c2c1f11c019b063c6a996ca67ec2ef93fca6ee8057b3f276221ccd1941ce11f8dd9dea8d3073cca57c1e67de09c01a6bf82eadfcf182626494dc088957f0bdd33ed7d92f52c89bf8134c9f65a9f2404ce7b15b2332bfdaa70af34cb4b5709b83ae6c61de1becf3a2465eaa660eba72be35b9991ab1d4f23d122491e55605211f1899b40b925ac0363bc9e00d5ba0e763658d38f91b2b02b3f055eaa417063e95630c7a959ce134cb0ea6931e8853bc316025985192788c1f66b7faa2dfa17efdbdf1e416be2504cfa8df270149eb23a9416c276c57c0fa8576b5f0f53a7a15da07ad30517de572b410e57d2c55e0f29a7ec49d966f59370820be48bbf77ada399411e0a46f9f72ac49c9f3ce8a4bfed00eaf7a4c7c1ce846b43ed6cc4a8f62e7c23da435c9f31618c899a35bb08a1eff7a594e85be027d769116e3c909d83be1b138b8fb121bd892b575276515e01057bf49a9806fafc965625ab160bad6b06ffae41abf013788c75282f5410a18a2b99236fac429dc2820a1de39d8a97a6bd313fedbd657635c3f18e7fee9e9379046fb2916f6cf99a6ac001ff43569bb4d1abaf55ad02cd2d45f1c6ffb893bb3a1d5caf5f440488919eb598067aec64360398d7811c7e0e290b959989a62d496faa75e3ac648f80a2d1e4fbea49c14a180df4019e0e928ec8c71e204a6402503158526fd585fab256662b134b5adb0919ea23e95752a182902d022e77d2ae9fb71dbddfe00b6284c5aa9621c163bfca7fe4ce00f9de4e1bd1bb437756e421eab18584119df8ed39790db5af6337dd0014f872232ca40d706102708d06dd40a96232b3dbc61af4fae45b828a5254d87b72921942840bb5919d81a06ab14562649cc46de3de3dba54492ea5a8b1b3227ae51f7395ce364eb7efcd5224ebce3dff55ce893130e9ec6c62d0ca7de52905ed134a722184409c62a95b63a130b161d3a9604c527a4701a631540ee838c7a1c8740b3f7059410dd135dbdf34e53f4412ce3a5b2cd9c3eb23cbcdf4b01ceaa462307b9ea91a7f348f629d9ec0d765b9eba91700fcb860f4b9ee55f8ec5e3a7ee0e398b33d52b4d28e89cc8ac2f69a0ad3bcc2402f54866878b509e1a4c0a5a4f7555a940ba48235ac4764aaa76f2c49ee3104f2c8aa80ec7275e7663d4d07ed9f8d920d798b58e59ead0b7a3cefbe29cd83c656a81fb5673e644b91a2b1ca1f58adf463e1e1eec14395898b23b53bf12f4aaa6050375bd1aafb9d47e0ef6df496db558ba4cf239a5921e80fa926c2b02bdaf533bbc7dc37561e2bbc6288cfe9d9cd1cc239da7832f533d0907a2c4cf624645b412585d667e9410b9186937ce0094abfe4afc1d4b93d19c0e0001f2108d19100a35f669144863ad4dad7d7ea06d7776ab9315c62e6a53a293b5977872f834282b0a747de334f510ab6f25a4e95b9398ec1763b2229dcdc5dd8521370e98a1b99c20fa128497805508e5789120bf0451e848b798d56c04f3835e7cbdfc9d3d5403be3a72d8593d6cd87eec1e796739b7745c75c5b21d27423e330b7ebc6ae3efaac8b1f82cfa341e38f9cb18e677fd3fa76d1806e6a888ee1f96680e0e5037057fc21e605fc9af94e8ecfeb6ec54cce1eae06f2dc4e2eadaf3ce7bd6d91cb0d132a20dc1fa9ddb6f0f292349dd55d739decc9fad2f9b1d30f241cf49250864f1ae75299d651eb39700b77289b00828b09e150edec5dc001cc4ecb75b18a9f1ea14c4f6ac42a870ed4e9becfa18c866501fcdeec3f3a06737b1f8a9111e77165901b67664915602a23499b9b1f75e23dfaa0b0e17a0ef033adb0baa14969dfd5129926cc5d48efff5be344dd9d90fc2eb4c61aa2a3f34b2c62a3cd1f9b2421f9b3f3721a987fa8e57f31d9f9f7a560e5f2732ea1efb7cb1210ee4d07fdf7980158978f599429d3acb2910fd105ff73072ac40e0fe694ce90b2e26fdffe1d390ba073801a68ae84446e78582df0c02469f6a7f76b683237a38a826d63ea0312546850ffeb9a30056a42d5f262de8c78bf645c5aaea44e92ebb0598d17ee92060162215ccc16ecaa739bb866064e07deae1ff46aaf9b4f01aead08f685cf655ad444b3ad54de865a24bbc449caa67e509b19b44733fe68e08a86348eb901c01c830e3bc19a37b59cbef624e65f919a124abc7d9bdb13271847f8dc04912179c5c4c59818d2f550f024b76d32554ab3b5d1ad9c79d7492e35e340496030ac8940e3b6949fdb7e7a0ac8a5a8ced4ec19b16dabb6f631dd21844dfc0b9aac6565a23ee54787adf69eea470c6e30a3e134ef98236a4712ac2a60f1bcb578090586d8872c38c677df881b9fc2e5fdc06f1b48b5029b67a613ae5681023049b1644e0d83ec77b4a49e46ff9ae7c9ac36b5982c29a3e2c764f18f2fe798f804a7ddddb52e7a8566769b5e23d2d5db0c295b7445fc4a68d2785ab8ec47ea574132c0fc59b36c236931fa468f908463a1343a03a0df3a7002437868d2aef972869f3952e4b1b5f784133ca473f0772950e184eaef3486487980d3276f7dae4e9364e920fc58e365292c753b6b1e23126963a8fe5d355c5703b5e2ddeba4cff140ee7c3c80a1b4cc11cea8db21ac6cb0f4edf923d9d53adb8a9d73645579a41894058e86d7511a8dda99e196a51433c56adab2e4ed3340e7043772b7296f6088b9b82be08773105adc6e71c71cadc83afb7b5e1349cef8f99569ea2b3f23a900949ef771d816004bf17abf1decc7993f4b6f620fc98eeca0452d4d197ab3519d0fe7e9fa216b2601e20f70da151d49f24809b76f2d139d0d62b0f95b3e7a92b3d970ce65a0bd9dd7e4019ca59b703ed15fbd8b8819ca302a467e88e0449d4cff09401379bfaae0480a039b5867ab1716746c51e16baadf75a59b3f25e9a5e8d27156eaffaf6b7492c8a0b2c394854ccd28983589f46fb4bdd9ce6e085743c2529d665c6ee1eac6ecc7ee52cc7491681db00d97c8e641aab8c409aab0902464e24e77e424408cd98e25fb8d57f82022cba7b5049f9dc34fa757e3d842cca017d14fb90c7f96dbf17d02ced1f21acfd4e95b3138be05cf75b762b8d1ae1fbb6daa3c28c650e2ff4000c095436fd619d8c5302250ae0470ca6386f97def438ee914bb6dce2600a28af6e2def8b45547e371eb3dac04a4a2bd03dc63ba1a32a90355ec80c5c21a74776f4dc44f1f0236f0b568dd16d6dcc4f60521aa7366ad8109ca4c2c2d5abf3f3d73172583a53ff92d9e42faa63a2fa7d6e66d8ffe52d54864a02c005ca2c2bb98280381479bf7e8422bfce64ad866c220b7ebf7fa963a6640d9910cb03000bfe57af903990e55a132037d127093ea634ec6823bc6c5695659444b5b10a27463ba8a43619cea8adbbeea2c140cbec8867a13c17e56955286c5274fa34ca289c7675bd530a29719746441a264c7e92fdf4772818184c030067c5855d3183c047a3962de4737f3eec47709d059a7af033bdbc2378bc6f3c9006532ce6e5cb7f29fd78f3b02f9ff77d13e0d30d33a4222cb7a1fc7f372d1b13c0d3d7455eae4517631910ceb841e88a7dc4e28721875c36838bc9c300fbea2a0af03bb8cb6c26f0c9cdd9bd872e143fc30ce7cce087d7d08f370386580ba49e23480b87ee50c00805dd17e75d18fe4ace8184d94d8bb1fe1c5f89cfacfb7d7e07ec2a414e82f717828a076e6d3171e2e51bd09c616d9e84bf036af8d1edd068abe0d00c06b95ed8e74cc4c5159777df7bbec9c1c4c2cb145b71ddca7012fe6f0a4706be43b711bb3d87ce3a1576b19d18b1da6e637e35591803289c02e6fe9ec4beec0535ab0f070d9c2546b3747cd2379bc4c3a28a9ead7daf93e3e1052de7a965e34f23499ff26a575821f8198852ac4a2e2f06ac756226a73f224d6d6690a42761e64718a5f0f7e2a5d41b16b746c0b89755d8719f3f6eef78f103340b694c9487cb87190fa8240ef20fa87ec06a91f6261f4ffc7eaa962532f0de6b79e1dd4235ad0067d8fb99c7dcc7bf00e0be488978bb71a4c50045b853da13db066c5440f96602b5c4b71c01d1fae5ff812734f63c14e9e378958483a5334d54ac88301e52d39f8421805c5b24f73e5563dabe98c4ae03c8bb94ebb36cf11a9f06c6a0458e6c2dd79915b02ed88c07264f53541499bf76b64e7281a51e7683ce641ef2cacbcd3551a5340ee59679e6740c15f6fc6c6bf5e1da015b69a0bb13ea2e5d7d08f7085cd18816fe02e80972550a241e4da9bb6f7b8b88b2ddbb0ab79e07c0be0739ac54b70254f6ef0d5b681f76e9dc4344a9aba27eebbf719a9313bdcaedfcc52edc15b13eca1189b29468664006de1dccf28e1911669fab421f4f06663a798be2dc0ff2146f01b8aa59039544e2d74acc80c4e6f28e46cb7cb472e81d1a6e416c96c24fd1638f0bb6e67d4279ad8367d0b322b0433a166596cd43ec30438087ad2eaec63678a496b521b30957ee6efc976eeecf09d36454c20d67e2aa9df1b0c8d5dd43693043e98b8e6f207b21d6e2476ae5f75fc00556dfe92b480f87659aa5cddb82481ef7abd10ab0b20499c38ebbb88d22f7e53f33cdafec443ad059704900720b02c29162165b9bda34858c8425a4a3d0212e7cb6322e00b507cfc94aab29ea7cfd5a7e82a75210c0dfaac785c2c41a9d9794d3d4d1e50f3baa86c15d55476b67cef839276ff5015b693feb3a57227a8037142ee13301dfbcac6db28f54501dfd2731e80cf6e968b4c81921d2383d282dff43999a0fb5096cc86678cdd7173229277b79fc5c4d4ab463fa089b42befa23cec0e0a88e89373de2a26cc8aa4799b2d14e325726c4376bd57036b4a312a1458afb911d5e8c541abbba82fe39833a5f089c50c97150bab40d69aac731c4981956276430ba88f1770446dc0daff0e1df7ced27ef90002b047ca968ca4160e1127203ec812f93511a7b7742580fd09b32428e11f97f139916f9147d68c81645eb18658be6535b9a1c0e1a80dd204cf22b640900107a71216a1ecd506477d24366af270662c03177ef99012b4212059652f813a96f5397b0880b06523838d4cb7436ea1bed9d65022e6370108cc2567ec119d896ff6e8755096873b3b47b0e2bc3794a9e1a96c81fd80c601e8027774b02f7dd56bba97d290a88fc641dd6448fd91bb95a6fd27657f2c061dffdc16a1e0b64b2c67740931017eeffdc9a9ec81358583aac33d8eccb8a005af03c4259bbf8ffe4f22b34e5a5632dc0b9f221cf98488c8a2023d665534c1e477faa9fe709eff64090e756dcc43d16cd7ea583d44c0ffe15d668e88362036c1496b29e9917ca3d680ad2cf82094a65e3826f431add6d50f413b3e704002b192778e93891e215c40465a068451e96d90513ae95f0f78ca3e8f1c29cb09e9f8889864bcfbafd037ee3381b68a484e8992021ed1a0533c1d8fd72dcdfd1e440356a0ff21893c5edba64626f7aaa84bce69976a670e6c42e227a0745db5d115a34322e2a7e903ff86a85ee4bae1f3666d54504e1e0ccf42bb02a90708bce6434a369acdcb2420dd18d6762630592a8f2a85f5e82d6e737cfee4cb20e498bf5b5cfa4cc6b75789f2b6186acc6e17ab07e54a701c229058c283db297d20093827bb44dc0f12330f3fb5b7cc0936f404fe5ec125c419f9a0fb544b9b663a4f45535bfd7c9f130ccd6b3f22836b9bf96ebeeeb62a6e306dc43ba499e0c37956f3db62abb994fb2a01dcdff07f46a30f2016ca4f8dd3cb23fcc261a2f31c5a80b9f20fa4de4dd5f4751e021fa4fd12ff0856d35818432e89701bb0ebebd9a89f3859e4273f1106062d4afedd5177d7db2f955f4b1b4dd781d16caedcf601457c25b39fbacdf20f4c591470a3b46388796246ff3ab8983e9bf48a572a200d21f9cf67b44cf266de4c10d1374ac7f9a5e4a155274649ce71e4f27627e5ef0ee859c3c269deb3101ade63eb622058234da5fafdfad5bd57d3acd4fe2d55347a6e0c443b33dd32ab6a8b108f3d16538cbf0175b4f3baa0ea5431bc71ca2595bac5533f6cc3432e4436cc92d337893640b1d886055f57cb6a520b2a2df87b06ae67820fb4bf34a9549e8fcf47d1b4e44bd92018c9f8f8b65d355b7cf79ec283cb7a8c3fb07579330be162a842391469955d4b0fd3faa9f6a8a6b7ccb58f78f5396a43ba2409801115243dc5a1e74f20ac68f282aec0fb7e36cebcff9f7fb97a6faa9b704aac3c563e7c71f33d19677a7d7fb065e6a80f761294f8f65c5fc2bb08b3cba5ba799679d3fb1346b661ee71c65f94047a8231d15b38a383c79a5b4d2bb06b5303ed58f9d4bca529d1e4fcd07bd3901eaf29a9963c78b336ca7abc079eb5996a16fb07bc310d649fa56be10c75b98d137fa01abdee819d4862c8cedc05ddd5fa01a6fff88d4b9042a58d67b228f59bd8182ec95eb4311eee197bc0466014de62fa44e33d862a32856c6b58f76d451544746182e506719207c316bda48a8114ec1b360e72dfa07d4489f77d52f0bc719cef502148cb10c3b558cd53364d357abaa66d318b0fd7a98c32d9528bb227e8e97456c81adc3188fb1ec2c7dbde10b86d7fca3a25c4f8261a4508c64d2c30fb9b824dac4809c80789fe2c52acdb88afd8e3b8dbf5be8aa39dff6c78c90875a8308d9ec0d017fd5581099861f3ace61b9b869bee1e5c487c5a56dc68b8f9ed76e0b4ac3c332f5d78387001ecfda663071479d64de81a8a438aa4d7e64de3aaa1f7cdf1c61e17ae3b0041534291fcebd10dbeac0023e684b6a6583b744ca19d1f1329d0679c4f79fe1c9cf48d79d16a0748457c6a5163659672ebde0188a2cca9bf02c0fa94907c8e52e16bedeed50d76b4f6d01ac5106a194e4fe25ae02e7efea13b0ba0bcfba69f31062d6a3e931dea4203b2c881f9b13020ac8d50b02980e619b334d013a32a4a71dc44ffd37c830da3bd82a9266c1a0a9bb13af84d0944ca321f5be2dc54abe35085fb6b679325b9b873b12b19ba23a3eac94f1ac3e612a5b542763531bf5bee898ef673a7d666a17160786b09eb56c06f759a28d2ffab7d6235aa7763204ef4a6c482222291e530267018ed0e75f2a4a24a900078c060b5ca083fc7228d742fe379a5ca1206334f9fd484b2891cc7db53bf3caebc945a954df560c04b0ef9cb90c7ddb06e4b579fdb4c4295dd131be7ae6eb3a55eca9e5fe65f9324b24e3d566e17d7589850282cf393c0ab822dbc3192e03b4ae735fa3b3f964b28e5fc1227bb6e0ff21913d60e180bb013d3f9e4d31aa68a61532dd6141c032e043a856cfbd4fab9a56ae9900499b8c6fa8f575cea6118867398aeb81a96d78e40dbb2135f6b75fdece27c09ff13037dc021c9688d0175abaa4723992f0dbf6b02f74f6e50a1f0e11032d1966b5f6d0690810157bdef0039584b4241a5bef48e1677e1e48aead532b5872332782c49cabbb38e45e5814509ba1475d08a4f5aa86fc7ee2769db723afc6da0971556f67d5cfb89238fbbcceb395b9eaafa5a1452be3ac965be1bd8727276706d59ab22075e5c693de19c05cbc2b7d35d05491da388bda7dd1706f7aa2a0a71bd6f7ae782ff07254113e48ec78581619f8c85b7d923683de5ddfce22d856c46777b50ccc54c5926e1b285cae52ae5f0a042274d71ee577473961bd6c18195881d94e997c5c7c3e08609d6894e8051d12772ce1e26f85d2d8ca6e7b047bcc80545ef9e250466cfbd6c40b445f960db419dd0ca67db87370729c269c9c2206dc550834cd21708e56db075ca76f75b2feb0fc0254df34b0defb20801d074f5b2cd0ef12aa8ab33e389a8706130685fcafa3b27700d79a1bc01f185ef55984758d31f9524a4ffdebb2aae30462220a3c9d7dd3510853f034082cdb9037d8dbf463973b44b33313515e47629bb1ae2c0bad9c97728c90f2d24b58e96beb7e19322a2184860d34723cb379580f380408130dffe39cc6b25dc697808b161126b0c72bca146d80fc1a1d8fe64431df65e9db97f5110eede5885a4def10eb89520fcd118fa870d8787d073de39f3720ea33649729907568ca60941c3092dfcb2db1b2374a84b38af860d2238f6e5502488f12ca4b3bad2f1443ac4b0b63a91bcd5dc9e243128a61bde6d074c2470c33904e2f41d66eeca2b08d737d0fb9dd1f187abedadb026107c29d427aa8e657ef409056cf400faa3739ba293d474e90fd3de33aa3b388fc4ba5cb141a586a1d51fa78c1ccdb688ea32cfbb8150ed35bffaae0ed5742e48bc1fe957d6e51ea14961c3796d1c6d55c6c6df58beb638cf4f7193f53e55a10935de8a4f3d763c313a50b2eece4a0610f4648b8c5749358daba88c6d3341ba6b7ef54f365a1987df5d28cb6eba5e806a0ae76bbd2534291f5f3c43ba9d09a33ecfe91e534871e6d2a2336a4946c2710954528f71f4ad0aef2161c145ae214b0a0813269e09dd3988d63b8667ab2c79e9b8e2a99f58f43710bbef9053d741329c00293f47f0d16e3e3a230150ec5e27101a82a4682747d91dd7fb7d0ae37a7c72ee56014e6d0d509e2efb94e97dd80706482de2219a908b6851cc6ad9652ce70f68b0ad715c450a7d0c0a5d3e8a0bedf29ca970eca977d24abbc5d5a9cbaf9a078c80c0aa1fe7a031c03d47c19e2f6edf2987c307b345cbd3576972683a13a68f93e142d9f6c61a0b557618fefeea93161f5f32e4025ce3b69c4196ad339f4f17726a328c19f2f3ce511af9601eb68c3a1ae9ebbb58a006de3c04a0885b07e1d9238467dbd3903d56716d63bae579ad0e391489d39382587ece2825feea0b10db24882ab8b0eafa528447553fa7b7977cff80ee0f996da7086168e3af51ce3103ab214757efcc1293cfcddf2d16ae36d01635d67df0735de8c7a85be549a354c079d88f5374bcab626425a94d9ca23511d34ca97c0f5fe3dfe740550e84afda849eede972b20c2804742a6485419718b9d519987895d68245ab0159276aac5ff6fd62cd114b25372c8b83ea00c3d467787979e900a8c8b7817ed91d1aad843fef848425a350b1d0bc1ba631d0165a4706ea06e06bf9f9cbddbadf6eefb716a82a5069a638433737119b755acbbaa9deee9de53cce68cd319e7f7c0802df78013ecf8005dd6ecf76e7bfe0ec45b7057caa87418a939084d1ce4376076fb1b8884a050c9dc780c6bdfb248e7335dd261150ab7c32581edb2010db29e0329524af51479ebe5286be36024c3b18d97cbb777d3c5d3e673c52980580725d47889aec9d8954ec07c963056a33aa4af9d43398b2043a5b25dd032d33e74da0b4282be2f4c19e45e349ca2e20807f2535229f8fca5f0e549bbf95eeb52a6adcb36c7cb640149b914d80779e95fedbaa4a0cc2cb21430f980fc7fb6305aa817820c3e4b579ad3018225b0e3fcd9de09cdf2626c08442ff5f4b6fb4452bc212dcc5a1aee7797f74f8d9e94139d3e8e190718f955d038adff5ebfe7f41f0c20d8dbef1fb3be23f61a1c6785e15f47174fc29962de698b1f37ef55a121be22dcdcf3df0f6918213b09ecbd48e4e30d8dbaf9516e84f0d0dd078e0818d6ef3fbb419c6616d064dea48efd0cf620087ac7a511ef2a50586c0637a8d8e7e37be74fcca5696795417acb51b2bebb0899b1a0e1cd975e1ebbb14b7658633cda94aaa55793eb180af6f859c552af301d5ad94ee48f673fb9591897d0eac12657dbea58a0960afdfb8a1d8027c402eee7fd6f903d543be3076a9247c037c849c0c4b81b83efd03393e1d093c50dfac2f125fa556f9d40f6a8ee53c8c00e23dd8e93c70a831187156b38701353e1205fafd380473fa69480fcd34e238868ff20b49826b3b88a3d9023840d8ef03395519962f647ba7c977ade180ad04bf10180c0d6a14ae8b52c37a1dff6740dc7b11dc0c34a39dec866880c24af8a136137b91b1846e8e9ae9c576eb3b7ec027ca99c301013d6c075df85a03d8f7c22d8f5839b2270d9b7e860b7cfc5c2beadb457891097ccb8af6d52a00e887b9f8449d710bfe20e8c44000d9f8f6e1d6421ffcff7bbe5ae2c695448d6fcb62479c83eb0bccefa7a0440f56f7a72b1ece230ff112915ed6bf7fe7a0b7d834e0933eeef1f58cb8b2c49857ba67787eb3cc93765e066d535f7bc038042dad92db4896db6170645613b35c939b5f0acd3bad4c44d2d19615dd0ad1e81354f6e0c58f5caace71969029530a0c9b1f2393f7e595c19cc151299255e1eff7cbc18517129d9341dfa2bc18040dbc288eebe7f3f357eab2dd657e05a851a569a7a7b446af99c28e71e1ae1ef3fe945e1949d302d9f75b0b7a09651323232941f2cbf21a497d5abb65222d10af1e192d4498a6672897c6f5bff8435bd2f70c3b5fc4ea13f40dbb7e9eab2e37d0e278412014385b30aa87a29e2861c74207a7722029b12418d39f529dfb890f8d10b73e5507b1d548814c113c84de30037940d3b903a77695210bbb4c1c8704dd01b2124533b453b109a534f8969c0d813abfa1087d78cf02ae012e33ad3f0901698434b8e406dc97a96278e4ace7b468cb6c9dee455021c64450c754d643f92bc1f572bbe96a65ad67225644ec16458bae078260da4d5c91b37b3ea60b41930c9add6e5437392d6836c8839046cda14a42f1b4b31ac636930f1f3cd887227d620415dad0ece9613791fedbcc3e0295000a850279ad796cc18ed4bda62399acbccaa99824104738e6e9e2993a07261f472ebc653a51413d52839b5e692bb29aa12d3b85cf512ef2a1e1783d84f8f705895dbc2f5c172f46d329a54a25dd5b17f80c0bfc1fc2314fe7584ec0f34db94c74b716a8afd7be7271520c339ee10e19a5c2a2152e28c6ccb08bfd21448d02cb025642a0d3a0427f6308efbcb105fbfea56809f55f48e253856546d78cf4fef8ffebe16a720bdbea14b3c0e29fdb515aaa68cb3a65dec87447c4f4bf6ebc9ab0cb7614976c54feb5b6d1d8c53831bb9b0578fbcbf554eebe2b1f9468bc7dabbd16d322e05867024ec08eae66d265d6fbaf8069cc72bfbcd1b444bf3d87b52c47c60dbb5d2c891e747f3389b54770cbc1ddfe922113990296200d4bb8402ae1911fb86487e9641bc4540ad509385ed13c42f4cbf05cf38d724eed8797ae7119f756a905c2063f8bc4d361da7cde2f52cfa24336583c831cd49b53d4a0dfa46d368f7b9997292d9cd338d670b0888d8b0cd382e489cadde3dc6c7ad965bb8125067eea7080eb067012ce543d99dfd40e2210a947d3040ebae4bb9839dabf5c72a1eb10c897d452b0ca1741ac4abcb584c1e2e9e0f71354f53283d2ba1b1d19eefb950fe5dba09c915aec09a6cfa6c01b8e7133a0845e40587195f5b572e6d4766c40a6026d2864959c797e4319bb08be4900c3409101c13208d5d31aa469396351047eb476af29ffe733098972592d918891610e6d3b420911ed9e0b879f1f4083f5f8ef04ddd3fbe2ac7da6f4fdbff39ffcc2fa3c4ed9231bb70c00c1c732dd3d324626777c99c0d9a23d22ff97638f56e84d799776ab5889744bdd976efb926763aa9ae5b31f5c0ab5ecad4b0697be18b4b0eb9277d45956ffcca7514addfe4f01bfe03a958a0ffda859cfb4c2c0fc09623628352b478706a3c81376cf5192cab57acdf847e846af9f730f8af13b4da3c24946972cb0012115f025aa1609f5a43eb142b7875870aaf4444db889c4e8fe761adc1d52fe14b677cc6a991c3d91232e7b15c206c7eff5ac5ce66d9b1245f72571fa304e60bb75bd42aa33f00c38d3835dafde398ead1a7e5eaec4ff36bb1fbea718ce59fccddad59ee083f6242e6d077d3d2ebb42559d3274a9d1e8c88a24674071c9d6e91ca382dcc10e604042ee5501631f974811a94e5feddf1fde81665485b638ed9378f3e06f89be7bec0c6fa752395c02e90660c71fbe60a8c952f7fc55ebf4ff0e6f5d0c93b1d7af18189db609138d36346e7d61349c665d40d11fb4619921fc55b02879a3c4987ebca38ac0f1e9258c263b86e6ba1bc4169aa5baeb41979acb23f6fd1459eafd68b0d46729908e8529b2eb9c9e8cfd445017462db876987d99e5da229e8020482faff03d0a90e69af573313f511561d1102ba11b6d98a18b1c23f288b5f5bae2d571c691065bcde35e2ccdbfdb6a3cc95461819e0019f146d9947cbde412675aac8539d175c8874e9103c38760f56d9338073890e214baa78742d54ae05eeea9881a8c49860318ed0e49b75c39ff051c8eb64e6040283802cc405344f0ec09c4cf7b85ffeded8657d8765ef6bc5769484144e62d8445be318217ede36d3d91e0209a3fbd444422f047ca990f126a1aa40bda7cac704f310ac7a3adc7c48056c917ccf886318f769327c8685f3c1fc2e6695e3e34b3544f991f49de4831b9b1b8e85a7632cfc531a880be79c73c5776294f322843a9553fc45aad604d2980671415fb28c6e36b8738a23213dd6692398a30ed4d842493a2db7e67551538d032ffbda96fb6f070fdf2489d3f71b27da8174aa5abb602830161c55d0a21f27cec953e438a3cfff0ce97b0d8830e6b353c5d75f15bc600c7d60595108b7e616c30eb7f4c5f396a9f5f7ba060e7991535ebe473691d5828012f9fe40e5d3a9f03a57ab4e235fb8dceee5c06ed96873811898842d49c223edbc44a116a97d0b3e2b82e375ac16941fa6ecc7875b308ec031d357b65f93254209fc2a837580eeb54fbdf422bd96f3ea35c4c9e02a0fbaedab698a4324501d5aaadf6c89abde574cf37fcffa85db50eaeead861bfef413e947f7423c867628d7248c8df8492de02ff7c92687cb09cc507298dc186b1b57840a4d40b50eed93a237ba0326a1bb2647f0b570c9fe39af3231f865ef2026c14a3a8b4c227d640fd14f947612a472d5102d95bd142e67309c46f4f474c403c2e6d3c6a8501258f6d7952c9ed0c42b4b5ef7529eac88281cf26ddd578b671e843adf9f5f6f0d38c67adf1d626c9a1f58a8a16638fc6795a384db49dce3babc22ee2ef2bf2a9c1d8df05e2a9a95fd47b32785d2186c92ed000e4c749706a892abe2add8a05d09c93c6fcb4665fea8d4c7eb3fab3d9e86bfc3312a9cf504650b087880ee7b0b2d8936d90d5704447ef469e05eb8dd2fb4caa389529705305c9078d7ef19b0f1b8cc5a779677d981b9d3c1042c35747065e1e61c0d99ccf184596bb5a2c9e023660ee0a8b3677c9014141cf305b35ae48e95fae80abac0a0c459ade572959ee9dfab5745f598aa218214bf8af61d360caaddc1ea21f14177838448df1fa2f3177d79f1f58f06449e154644ec2c41a4f0d215da1d9512569d5bc3351eb2293c03ca9a755b69eb3efd1f9f24b7ff5cfc7147d89d6af1e4517671dc04bc3942f671b63e1ed7862ae380584e4f5ca1526fe787f690dbf832c66f2d134c135b84681a95ed19699c778c27f8724104babfb4dff5d2d913ec7e23c7841f0bd8ba3e74fd9d1b0436b929f093419dea6b837da7395e8d1fafe2a37735004326d54f890b296294542b5b0d8e55f834c0456976196889f3cc0d5ee22de8328170a84ed6e4e43037fcf84df9c6eb03d41ca248256e9691454ce1da9face74e05fb22e1d4a4b8c1570e41986e3985b206aa0c7497adde38bbff53f9bdde700882825ed6ce07dbe932a8124bd8b59b50afb9fa22f7860734c34655a6f05526c3629e5a010e33977823142510d2957c8ad888e2294da1a13fbb1f8d234add4a3278befcc12ab3c972ffe823d3ef823ada0f3cc54dd0cce55e2f8b2350fae04fce6af309fff18455b2bff06ed4b7f8444d975831459605d0ed33874d630d731450e1dc3c56536febf2967dbb577b40f4c0e9ebeb2207aaa52eacbee5891b804f4c5696bee8326f95e66ecc60f2e5fd25e243bc9e6017275ca7c0ed05ff476a6bd5823c70550412e1761eb19bfa46a1428a3a2a9dbd414e55d77d09e96f604d3d85192524b68bb6e2e87a022ebc3b68c006be2e5fa8b4e852d7aaabac1a9e3c2c8f9c7312575b142f2173944f510046e54e2cae1a425ea5c696d755732b32cb5b760cf89a6731fa5f0d461b708dcca24b75e784063043a5c3378fa3d1f232272b154141b4161b07c8865e864499fe8798c45fa923e2f21ac77ee5ccb43e7134aca39bc8afcdf7a095355133875ebd64d1061bd9daf45a7bd92c8fa2b8c86ec7ea9bd3750ec077c0c60cb61c9b2cbfbf5a3b607dd9e27b1a9e45fed1ab1e2838caac8d72fe8fb89f58571581d7173087c8ae582017062ab478558fc86a4f61a8337a8262e5b3b3967ad0fa237e64efed2849325df77094c5c96c227a8a0a95a20176d057954a4dc98144a756bbe68299a2746a23a85451058a6d69aef27a5b9ba90d52f4f36cdf973cf5e571091ac14fba621e600c33501cbf9814d039b2aa1141157d7e2d2f3f7adda9e13051f74754e789c4a3a720e0f2dd774b9585c4b39f6f18a02224f5dbcd8a56969e3deb118280d15841129e9c9e7803a58a3d24a5cc09578a3ea13ee5cee5f5083f043dbb2050a9384aeda43d86194886e02b817e71d96ac1ff9dc334ee465457758a832166edafbe82f91d08d35ba99a74ab6b29a4210cf7559b5f7ac6a3a34db8c4f94eb112782246ba9267f0ae4ede0c4a7f41aa70dc0a3ecbe4857c951c954bbe327d68c6cc708a8fb976b4ed42fa67bc2303909d774d6583e62e39929800dabd53f92724f08b972d91db1dcd63666e2dcdd404e8ea4409667de9853a88530c926917615a606a5181dcf7f165560fad4c31becf7c06f98fb57729c3c356dfb984092338a69ef7a445de4693aaa328a910b8661b1c3ffa255958138879206119f431d6a96272dd0d9501755f8e7142b9a73adf8e6781a27e17a734183e24b366e2a8179ff0834c163fda2b2958682ffaf4525f3441877bcd2fb579be3f1a887f4bdd91d147e7db92db73be36304ef27d6d1fe371f017c7891021338a706f79eceb3bf6687d723b5701541286a3916e26c7d9122c185e6df4016654749eb03f7fe75f08a48ece8e2413843ec90f709f437b268fc80a534397db880f399bc568bcbf4363df5cf2b21eac23eaac25583a9c12d6d3e89da78db69c2e38f123a2c5d001d3e2280566981786ae0de683cb25dd333ffe575600ad1ba8fc9848eea24afa195decfb332eb7dc0500881024890a18acc1960c8ebaa6f0176d992e3f57a4dbdaf08ada8ba5edb83917778fb9e84ed63d0bc5480d43dcb2ad6f891269eb8c2aa7bb951736e83a7443fdeb3c578b2eb561fc9bb2d4ceac48185bfd05df3b9d82543051ba5178a39890eb8bf9aa5598af7bd88d44b4b0684c2e1962bcf51b5362d2316308f41b4f83020be226845f3371a8211b36999f11fe97570f21262c2ecb769a5527d2183968c0763d3eaee350442987e9cbe40f58643257a90b391d98ea3b2e87dc60284d62e2377bc0f04f39334434a91cac3c1694fc2e634177254334cef84d19db3c8234ca6b17ca6a7d7c2ae108cd7e7e882ee65574789c61e5730ae26dfbd5c8e3e2188495b7ae961bcc66985cff031d077fa8216ede21457abd7bd8849fac11e7d824e1e0a3ca213dfaba54467e727d0cf42bbae2cf2345a26b7c4060cb27945b7dabaf8f2870e34aa42bc562733eaffd13fa819b6edf84d4fe5d6e466f7597605e4eafe0fe9e250b36d17725edeee42cc8c951be47e64428f0be70f22970e4080bda4435cb891eb374a7a0d277309b7878b21b2ebcf1df583274ac25e8cf3747124c0ddfd85f0bcf717a505f050164ebe88c114cd1877adbbf2ab2b158d4d4dc27322ac25fbe270fd197a86374ef51a47118d36991e086a709405e52184046e5a09c3eca64c7e7619bef517dda0c53571eb0ca66620a74548905d4838cdf037f989df31b61a6116daaf6c0dbfa24de1c56853dc11df8df22a118169830cbfd42b0c7ed79e0685091313a86e3b37acd0363b72be222c11f6807468e6a8b7f6b14bbabc5278181037ce69364191711d6db03aba7f329bd8530e4dad53147710f4b0f2afe8775ccdbc91952f0a592d17c6543dc0552345b78ea30faf36b1698e8abdbe4e1dd89da2c18f43db58389dd723fd74b325b8bc548d859b3155fc3ce7bf8a9a0033bf1ae43e1bbabf7967f87996dd33a57e9f5a7e9cbbd5a1fb4c318e2bc69b464f3f059892aed9cbfa66cf4555335c056e11861f58f9fdbb8071c8a228098203a3edc84d63a9b4b7c68cc1eb42b865b4433db245a08416d110ea90118481699b2747c6cfa8f5072a7aadc183290c1e2d5a4f62ce74b140c96ffe374ef43ce9c5088aec02ff3140b7a7696b65a59679815567276c9ebfb98de529cab56b4c8e1a40ef7e0a6e1b08ef56bd32d5d1b932a696c13ec1a0bc14ace64c95b38886c817a8d3f60950660be126a733b2fd493fc418c52621cc6c309fd8a1290a8204313e806d22387046e2a4cd12967a88d70b033336385eede393875cc4d7439b3e3525345a3bb6672b2bc1dbe206d61b549c8e88e2172b41797d44a23271a92b312396f0e255e6d41ef74fcfc48d1e638d515eac3e99f930be5f0e24717feb8a8bdcbdc515bf6a1e4342d62784d08ad9b3987a35a4ab8054100e5b666481120664f0aa4408a2aae04253242473d9a9bf2070cbaa2023cdac8630a1d01688d35ca8d31538cb98b6b4dda25fcb745abfb8d654447c91a906ae82cbb8154d617a07a599b4c801f6b3858fc635333876962e8f97b8e199d49b3e7c2e0237097595b86f2b7060929a502bde40448ed0769fd2f29b9868a836889a4d64e37d4e211ac10f42dd6cdf2b10f8976f132ee15ff4c2f40fda5e7abaf09cd7c6637adde5039c19afe99aa3c9ecfc5d825469d1232a41ba5133bcdae00b0e75bf973734f41560b874fedaf1df9f02ccdac95b7b3487e2f8e3c9bd67c18029d99b615db46090f42604734612cea37a25a1f3bdeb6f747f598d7898cf4e42243cd29df2f393cb27c8f7a17f2530f01bacc7729d5568e620cbdaf1cd9afa850f85eede100650f780737586208a08fb9382b9845f13483f9f66ef09c0c028992a614988bbb3a24f96f2e4b38514088656ba2b1242daeb77f3a1d10fd4ddaccacec8644adac624b9f1e053ae4e31bf856b1eb18979c352696650af624916b81777886f9cf504394504c123aaa361b8ec0c0ccb94565cf5805860f0398720b7fb65ef37faf498be86bd3bf203f075548cd78944ec982d6fb6195930bcd93bc01895edc4aad9332401aa376d3afd41968b578656eb85263dd9c4419349a37609dcd8bf1c2187298acdb63169838bdc2c7e76c1ee3e85c68baacb87bc2b06ea3f88a6ddfd4b9577d2df64c58c337921f17b1a5c73d503602439b64f5b820ca18572a57b2d58f1b7e07a6f39333bf477f59865ec0d063eed24780c8b47e628c37eb29fdb7caf2373929e0e63b1281d281e44b400b9ab147223d9373c94a221839e1af2379d2c27198edcff500d82d2366805a48a720c14422ac4b3be918345fb5121e6aba0cd1b1f5909a4b03b20c31f76fcd96883be9d7afdbf18e8afd145623c58da9989823a7b3b9395f3ed9c6121e19a261fc52c93f7c6f52ef2c4d95cc85f1f0fd6ce1f0f981a1081e98e4a4689ec065902a713b06b48e8fdbafcedd29d4605ed6a1368aa99fdf5466b39b8b40ad1bbcc50fd5b7c852ba20cb48148469772105710dcb81bab1c20ed6900fa8636df55f8a2c4266bdda38d7419b5d970f5748fcd32614ea5df418c0afa62d4047759aaf1b6efedcb05f103e38a43939b5a2f2ca8690996cae0b60594b544b740041988f3ad7f76431d4b909c11cf28f5d83031f272b0e01327b645cc3f2d9799b9420d390097451f7c0428634f7869b6b952ac76324a6a32238746f23f10f8593f2b5e6c13bbb75880bb601b348466ebcaf736ee60c3dd9f47745739ee96b57e035a2b5231524e0cac9ec6c047bb1da06c932bcb930ade67f0bc8ce4e89dc45b494ad2c3901f80d39bc410bda41fb9c548123581ec4c40dd38368ff6d86366cfd6ad3c395153700d8f3fa4ad43ac4ae55665c70e87f8de93bdc3c41fcc6266f705d12b4125cb7869381a351175f6ae53cf3e12bebfe20dce707aa61c01b5bedd17f39641b084a91d4f384bc383e3c9b74e24e131952b37790c8d24588703cc97f1e592f910f17d672cdae90aacfca256b84549c865c47a046255597552a182e183af9e023f26eaf609709c0488a72f00c13e9aa4e378d0d5796aa485fc65f1d23b4c6417d7275fc9047b40910d980ae0432399df386109f0ad1ad4222c00d2c8a7d4a585214174fdd4c0e0bf515c7868ffc6ae0ddfb19b7eff45e89518cbc9a9df44de77fbbc9de73088739fef52050a59552c4fc94acf5dcada7ccccc944d4a516191010b6a21fe1a2defee30ecfe878d6018392341eff365829109176684f8f5443cdceb842bc66209f90f24d1751619e02a0a3ab98635c27d1909802ceff3d8827e30fd12a5d83c50d610cfccab7a5738a157ee2e3b5153f603184e4081afe3da155c00e6eb29471fbb6a3198703aaf6f377d1ade3e9b67588277e82921f1acee255120b7906697a9c902552e1b1b14d8f34db2813d401c0928911f6f9f95ba82d3e3481e76538994c9ccb6600414204d01885aaa863591ff67e447da851e75a34516c95dde9c9e184e5d80db53730a37cd16b88ee137fcdda81de8b9f55ebd4a181c5ce725420d33e10e2d84a17c76bfc9d1409484f5ac7a112762eb2cdd1858a9a6d49da35b61d58e33ed48e81a67eacc835032cfedf0ca2cfc2547e9ac463463767bdb21b6ba8628cd444d52fe6c166fa659b23f878723e12a0d58911a7d3d89702156eb5a86c600445bd67dc9b4e7b8fddf05065ee55c34fb2e6882d19163423ce2d66e52b5e22a8fff6b226de9130954519381fe55c25a6c8163bc350887b0347fcda67779670075f55ee77855c3f7b3bbd820d9099cd1f48e0303423e7c98c55a20015a18a849bd01e902b6b74b20a53a5445b48d7a8787daaed8b97c86d4e62c9f81752afcaeb2e636bf317ea1081d95fc7a57372f7fe05f03965051c2f2597808cc343f2009c67a8147c74f3a58e425ab2575fa80143ec1d5e61a7f4871f1cdcdf278e1a72f498292a982df25de1fee495775efabd03df5b97cce7736c525e546e1832af4bd2ee801fe7b15ebcd4e4deefd96d0adcde040cd612ef165e90c7e244ea35e3e8750529d87deda6d07d738d705af2cb5adf975469fa3ff2a5b14422b02b1196f85bcdbe507cc14bd79fad419c94809c14ec7567f653357e4220a96f6c4db67d3d55fcc69371bf5e5d60c9db244039be836f4255e1acd6c09920cb6712dad46a97ab8d6f4e812e02b45584d87057dd20f5374528e682ddedcb7fbefc1a1fa28be71d455d638445451f7060ac83f11c53c690fb0c4ee192eaccab3f5a0630a3a1e6a89fb97c636702e57807548d44321a95bc1d21afc2f4efec636550cdf3e4de53d3d3832f6c14d1cb782328228de4bb9d389234980a0ff02fe3684a0748bfac4f8c051ef28ee11c343164334bda2558b7b99a90efe0f2c8ee10e22a0ac53d068565790de4be84d6b540d411028a7716ed043977a9286569b0a7c82ad1f09985ac8e3b850216ad3df17f056b2c36827e73cc5f407a7c0afb781d066a5e0b1657934cc717c0a86e3262dc878a22150e8195b693f7cfe0cbd8e7488768a76f0e6d432af02d6bda72a41cc851a0ee39df60bbbb929150479e2de4a7378044d958ab3352684db9618592696e757d1d80be6e96be949d61899db7bff3489bbb881bf048084bcc9c831d68d0f46fd9b550964831e0c73516033ed9606ca783778cca9840045da299f2a85faa0a1a6215088572fabd5d4e25f25d9d817a00523910ed475cf2f388524a566381d0ddabb5f356779969b37d4a96532a718bd25c534114439111f51449cce0e53c3ad33ef17f50a9a3cf46f62cb32fc8028d7b9cf283a5305440894d47154d8e012ff6a202e3efb301b560721ae3d585313ae2155f2a371361500b329b725577171311855164b8c698d14de42a76fc7a82eb0a7d85a867c9ca398b8d23068c068bdee7833be4a9dd199b6da270b5a5bc9d7af967c6829fb99e633829f2b2585c31c9d519755e3ab0e6f5ca9aa884ca850927f49f653c70b67edcd25ae0372b0eafb15724df814926839ee850dcd388f50fccefa92da431044950b2035218bd8df2907b320aade78ae663d7415a7c51a3bd05c0b9d29374bb4354867ea2ab5c12206136bc4101509e2a512daa37a338fbf467953f7f40f642005a8cd00425ec4fd96c85d15abd8afd455589ae7a327e283b5793ff7bf95f05c254390068a60ff3808a3123b0ac882dbd9f478d47a154f0216bdd79f5e3e4c5ec176945bb10f5414eb21bbf1910bc6a53dcef2f4519224e80a7185db2f49be88b98ba58d0f335e65b550595c66380be8459a02874675a3c862613a43de1be4c17371cf33bc22b631dbb6fa12f49672265c7906dd732b01e6afec02a9c81ea84fbad5caeb263af4434e3e482773cde3e51ad6a4944aa5499f95b7eb99e37ee8e329b4ec3702ad68ab6148aba18800a8e345fd6f5b9c0b379e449050a37840309d7406d28309bf4c1e43151ff15f238b930099f07fd71eeaf89983b3522af3e36bee5bd73207f849eff91246a1ee385ea0254d45adc0469200da2146cddbb75345959eec7de2ac51bbd327c27c0a0e7ead0dd77850606df7db263337c5e8b62dc505f64b697ec992c8aa77eb3f555a3f3b859d951de0db484df9e6f35dcfc3f190bf5f2efd219aeaa58a2e1c3b8b2b425bd74ac9c08f23e5d9540923c72c58e4fc4d70be8353e8130b107d1d6d16eff987f61b021401c089f089e544afe81ecbaf498b2529271b834d452d82af6b5a8bba619d7a06a5f798dbbe7a0f6aec23585b98298c9b162468323f1389b4a3f94c1f624d41e529c91578ccac52e5239047130009883afb34a0a5ce72dd1d0e2f13a0b8e28ddd53a6c436e3200c1f9f4dd03d3a6f89ed881d55719adac20bc002ef1fbf39aa77830cb176015f4ff83f8a763b5f35fb8dc9ad440b1dabc0170c8613f718d54030177f84452c5f8bcf48bc935ea29d292e675703d785e718e4f97f6e671d57025f60212058e12c56c9a34e3d95c785d6f2166c50db785cf46cfc79c2a66e3cb7192b5f3f945888fea54a50ac655c24677701610a5f0e4a98a9e98a415c42dd921e4ecceb21746334af904fd1e8f58935b2b4143c3cc6eb26e7db3a0dd17dbb6a04383d32223a6004676624fd372e3353bf74148ef4d0940fca0d7d949b6f116f5395c190c67ee4d7a01900f64c6a970c867aa4cb978e6040933c83ce2c75035486b6b502b0bec0f50ab854baebaaac9c86eedbc3e2876cf306892ca8cce4f7285176afc6a2768de0155bcf3c2453e8edadeedbfcf129b71b6dcfbde2c2b78561980e49d71381db7eae90896bd5ec77b4cd923f1d39f543860ac14f829ff30f2dd54f332c173885ce37dcca60eca9ba30954d20df66835212a89b9c66ed8bc760e02289454b27531a0782bc967146b2b0b30846ae03ac7319f2b4d79ac93dba37d633a0c6f443db9624741b72403cb96771796ee34d35b67a14adf325415a0e8abd414ac32b0587b7924172d948433e83ace3fae48fe92b0c67975a3bf122160c49af3d9901b4bc366c5e60741e03384265cca2e55f52f8730f2530cece03245deb189128655b29bba4cebac0ba226efec9711215ae5e4fde1de837dfd6ed506e5713b03e541a14d6c8427526f51a45f34d2a8341a63e92e47c9e5dd2871f3cad5403d9a1a4fa4f6639e1b0e931492ad342adfd0e61674492b87086b02e26f9ff5a8cf030a0fe4a1b89e35d79e7acaeab2288abb67a4ceb341c557c037d4a4cd321aa56aa8cd377e45ab1725e39cba866fe49ea40180d152b8523ecea872a6785e62a45955d7e88fda3b4d69e85cabbe21c9b184edeb5c33240909126eeb899d88ee4efd6b5c99466e281a79eddaaa14402a5268941035c4ab6322bf955678067a048269cda1a8a8038aeb657868dc512682d3ef75ff94e851e5c5d41013211d5286138cc3cc4a46703ff68cc0ba5696320d6df0db67f628f46445b06dd0218a4089cc75b26dde2cc146ac40345bc376e438071964fd3cc62ca7682945d20d24eaf64759a350631b1ec48cc4d860eab0b15c48c4b96f1ed827f49f578208d00372466279a30232fada091753cea68fb54343d4b12d0bc2955315cdf86a31baaafccd6a1ffa489d3ec766de6b40d18eb5d108dde5b9111ffba017e6e90d40d4f6eec46427c728ed7457e6021a3504810eefba90259669087c678a95cad60ff8ebf6d01f110edcc8af2419946664d2d4f9a0148db6d036b66cc0113fb5998eb253fa3a318438ecf0fe49661236a41309af60e7a0727d556a21196db88b2722b6962c8644ca0b42d9d2b771224e7997b4b7050bb068df294391abd3e1a219d18158a80063c567ef1f6d43c22fb711bba281c8f71dd90be29bdd50d66cb0c00254adfc834a240d16d05c137dc7711b90d5557bea99b9790b033b9e615a132ef946b251d91cf1342c6f58c63240ee83092279bfe1e46c7b76eb0b38c0f63e9cad8f94f1af5f82b3509358c6df2f53f72e4bc08314552bb58980da93a062b0e6eacd50c3d547974b998c77e3fb3abf8950f987e0db79a0899097c6ddfe8d4d9ae83c8a21b02e945b9446f9a38036d60db8aced4a024d1eee782e4a58e6a74c5383962e9df04f7933e39f1e0a3de6c0822d4c9e455db8e629274c5ca35dfcf6feeac8c5c4c172b96a7b6b2f6f9cd5a2b7f59d59fde0ed2a78e8b963aaace4627e5e28f7d793aa3fc9795dc263302b4e2053f112e768ecabfb7510d131e74ec29f820619a9fe0a189098222b6786ae4b6bc58f2d073f5324c3407f5a776e9f3aca5be135905545e27b0b6f2150c14def54323eb410255091defe36d67deadec6b8833ad3e9b6cca3d73017a92f360b4ae49108f36f0e6aafea1951b072908b84cf8ce12af0f87e5943e857efcdf2166e63e7f121484f85de896a33a5076981718ab7f5648c846b15d3eee2b4dfdf53d3888ccb03952d064ebb605720e1c7a17aa27d7b1b8ef4b3869e1c440395b0915c19d35d8a8f25887aa9d54d23472b6487ed424f47965ffef29baf96ddb3404ec501c224a4003538d76d3c109f9a46ded4fa8793300fdb25580a90193b0e1c33259c6f7b6f1a04778d81c7f267a0cde7103e1b0c7dd144e3a8dfd4a8285fdf9844e587b59a45920a74b80f751dd6e9e1bead804cbd22483eecbb75211eb37039fbe7bf1953a62acf070e703f0d7735342275400898ed2dbbec259f1899e16509487a18c563ccd7fd47e0e2360955159b13d78c3c4896ef298fea74604fa5d0fe5600f7bb0512ec84692380af5cc66e61112ae1989a371090ff4b827a8f873aaebedfc078fd6f6089466938b3deb0a20483b8c7b2c6fbe90547bbc1b6e00d96ab5c057bd3c2b02685f548e24abeeac6b2afc249857dddf257af6d4b88dbe890be87287c9dbdfe58283b2277083ec91f30eec3edc746f0594993c4c617a5d1186530591ab19bfa1fdad1354dc3530b8c3d7ff8ddd53766621dcf04fee77c1dd4efd45e32bf1c53395a0f036c1ed01dd70b43cf4980339d8f9b4b7eb618f8a18a791cdc82c0c88b7f3970483b172ca4b9314e50c030b2d15b2903f2bbda1c7fbcaafcf3f68e4f4ad791828d65a7fc414fdcab7143b12f663ad976b1d80bc9f1f5371a9e0b5a119525989ab71e739a772d46aeae9f804734c4946f9c5e47f104fc65c036f639fd47b0f90f65434ce8424f321aea7c82aadeb06f22e31f646a57561e4b534cbfa6ddad5d87a9248225972d678658017ea8c17483ddbc47e9d5bd1f7c2432893bc130fe5c4862c371123b8351f3860d36c02c961bbc133d514a0d8cfed55d1d881fe38c9ed84ed1f172c781c1fcb1d30e5a537fc1767a3da92e8a36edc377f25b3fa1d6b90c1edf00f0379a34a4e09bec5a01dd76ee5e76ccdf25769c489ada4a0d3591e6ae1815ddd0ec5ebe45c332a25251d5c51dd3ffc8461781ff2abe39a7d4ee9455ef2ab8d2e92c7fffaaedcb692bb11cec2953baf9b7f9b661c2ffdecac0ff5b49032fc551bfeb1de079ea1baccd8ae91f60a2908e783ef2da17cdf8bff1527452f259fe0415cd34095b9d3009f50efd83076df1a523a7fdff137ec001e3bc3011ee9cc152b8c136882d63ba3fec2e5046d66dc574866c6b89676f138b1b99fba480b4d34e3961c3679cf47a1f07e3d60505e45cd0fa2b75a15af9be8aaf1d72abb4d2e6e5032c46f43a4beda6f217fa44313f50354110bab9b550d9287db1e6816c91345f93ec8cdc53b5cff2055f35e770a5ea33ab66fbc518662bc8f2f914f1a4ae60af31d5e6d9fa7f9bbe008c3149a2d2363e0b995f60160c86e674ba5136486739c62e4d9370048c273130b063f5829449e73b56f8b73710f5e4f59b962642be3f5672959fdc97c7544211309b54d460f47ca2533343b8820e2e30efa4073c943a46ec5c88b997ab6dac72c00652249e7aa78b617d06af0c8277fd28213357a627342b99663d27e08bfca581741f0160822766a9880e37030c774fe49b129d20e40e8c3402c9e172b9f54ca080e2f09bb6c2341e4b22c6731c8d3d4727a41e68666bd216a048ff25e34e0e3cd7a803c9e4f8ef18ad5aecc2222912909b2c7620d3efbd745b15ccc95efdcc4a183fc569cf2fca4f1efa6e01b4e8842899db656f90d95f378a6023af2f3e2c43ff4ab1108312f22b42acfce1e51480923071113165bd4bc1f5dc1349c185d644d6509a4eda7ed40ba5031ecc8546f0a0b00d64adc4f8253cdfd864de49c97f97548cb5033326c27d91cf553d9cf35be2d4c1b16dd0b96e39787824129b083ef31659d6fd9db9ed73d1b587d4a849cb8fb7d163b4784d2e72fcf939074e61563de852c880a29570fe4b098b3969d6476a1ca3825d1cae7a3b591d36d352db3ecca24b8fae2acec6495c2d76b221d510dce21c23bcc5829d6cd035a8c82df9eaec4e2e292eea3a9cdf6ccd3b3c68c6a5174673c8c2e03ca61e924436e887324892985dbef9e05eef00187b3b4610c811a9245316da1be0ac2064b656bc9ab7cd8a8bed39bfb7fdd1984fa3c7f39b8175ce6b12bd004bdfbbe4f45338232cd15a1057e0b31344ffcb52b90f9585d94e7fa3fdc186f1d6257387261ad6a792190c93739ee4af42bb91747d78f008826795f12310abdbbc81c013d9c3c21448edd436f9f73476b0278c2f7387bf3d9d742a6cece887cef55575e43510dd8f9245899c7e31a1bc81bb4bd7e79e0727d3a49dab0d9f3b43e61d40576adbfa78947626dfcf09daedd7a872ad47ef430e6f82760535dd3390ccb06e76c4198d7d7cff10243fe753402d850b5e8cb30872fee14f7013e062802958ab030d3fc7b0481d92bece66f93419d444c31ca1f35fbc63d4ddf5094dc04bca28cef27ec4a27339a339c6e23e72c289b5b61dc7262a47dac18286925deaf5aa554272f452e3d5dec3426acf0d0463b6e6f594da7f949bea7c39b0dcb1a97e029c8284cc89b779a3e8224446fc3ebd49b46f46f3eec34c9baac4a46cbc43f7571ed3b362410c3f785bda05dfc45c33cb117d023a47235db2a4cc800ab9e1bc9ef526e786cda14234768601696a2b3a0c7a9b821b95f4721826e52e16da4bf633419d48288b2275708d1015c6a93523c561074f8839e62a78f0d91254280d77514cd2818327cdeef380647d8cd0c7d2ebd5043a54f3926724fba420cf47879963308becd1a05e43c917a15e035afc749bdd40dfb0e55a1c5f40e4ba19f958e04f0736b26eff2c13964563d16ab6b09e828fd5893b0cfcbf47890d10c2a9c1bfd38f089060047a247f00ec3e3bd8dc999ba0556c027b1d4d375e82b844f95af5072a556af606118a4eb1199e07d4d5f3cbe45181a9db6ec505ddbb405a370e5165a3d7948e7bd659981527ac4a4e0d54c2272cde9579a281ae9106b033944574f3ff1cdcaf9f58920cc07b9ed7837d799efca4ab56a784b3e4f49a44792212e87b59b21894373a36e922d5af6e5e783a1e81a695284e29dffbab96000b0bcdb0611de28779df10c4b554f851313a5933118a3b90fb9c7b10b4447437a631fd138cb3a78cec686ecb1c3ad011d6adecf5f760e55ad359b42d8cdad13b91fe929b16efb7c7bf6dbe57527b07af5c1e2e14cffa4b1d782a44a48d031857ddbc66351a894ae245214d454d0e9ae0e7a5e0b56308ce4f1b4efa3c7d6df6e2a5d328c91484447a57ff050c8237176dc3ae673a1601a0aba52da7f1f2ca08f171d916e6f53c49573a11c326285717d4de33410866eaa48da9119199a977a13ec1b4c69f9992a56ffd17ddcc3dadd6b3a0647b49cecda14b1eafac64a0bbc946f08030f57b23f0b8fac17f656c92d4509dfe86dab3d39bc9cfe5217c197bbb1c790a2dc1710c908b8c82bb1e1e9e4f9296a0772fa9086ab30d7e87beea9569f79042c00d29208cda119e7c3a6ecd577a848108e77ab61d6187747786ba8bcb1a137cc26348ee86ab2cd455408e090e142d24507254a1ec732dd0157957f8beb5536b673592ef29a8f0103cff8655fb71531b15cfaf4a1e44ec12bc0e45ab7d21f22b0b4a585818de63795e051a2005372f8e711fc5478d5fb412b5edda5f81f2ae3b451af0e25b75b0413b8fbf27c34a7d3cb3616eb9120f61981ab6d01ab0b32215a1a4ba9c3ff9508b2a544006bde2ae16eaa4af1ec3b569e53251a383bf3e6e27b302a5ca95794c7bdeb828c4f4ef528f9e6821ce6b45a5e7d602f8ffda8092b8da58e33f790a8c86c83c2689573fe71c0bb11ca03b0738246be563330ba1a8bd02ee979d8a2d35055c9e9bf53444cf9143f7a29a944bdb59e6a6a3b5851fcfa931d7c08257c8b5925a5e41c33d2e6d7f8256f685c4ddec17e5a02d6f782bdfc75a156489c084d39af01171165bb235dde9299fbb021201b73509e49f3fb588880b19cee1f89a094a3d441cdb8089696796d826dcd64231c20a5b5031e3a9884b261cdcd2a8016fde74cf31128d9871e0d7a1f769c5afc9e9338d600eccb520057989a39da760fbb4d720f6b0a7c9d7481e2268b8f9a188f678c76a03dac862573fdf3987ddc2845d397e74ff45df9d512a41ed71aa90da36ec4aa572e4c819cb9bf0bd5da9e900b808103b9504f8db5165e5147656ca3d588fbba4eb467e470dacf2f38ea00987d2c42e3696a62f3fd9fdfaeb68dedbb50077669153a88b95f395efaa82de73245a06ee5304b3b2ec1ef79c88d3b8cda82fc7db2d91350dddf06d893498c522868b29489062347e8c0dc293158e8993ca91252da55f3caa7502c4b385c874cd6f2b10ef73904d6f04fe58eb022c997abb4d08182538b60c223e0652a51911e018270f512795db82f9db18b9e746cdea5918b8cc0d641a1c6d8a2382f72f310480b09f6f781405765c6f92e6ef5bef1f87247810ae8ecbb20105ea6535bdb234d2453abbc3939eb56cc5754be9d1ca3be1ebb072e019a33c358e3e9e2815bbfa6be35a62df053caba89a0a3d1915aacdeb97145e985afe8fc57ef96f51b6d528a7edd27c17ec002b13358d877fb39b27243e769a6348225278e68db603780802e6574052e5a730e268f3d466ddb2a1cd391d358f7ee5944b17c347a66558f8a579c92d8f799d17276c107484779ba56c62903e7775fc95c1e36a099a2d106260831f1a389a5f4299ae1a8916c5542f32bff55d95b6e17863e3d8e6016d3f27cb1dfd0a52c8e04e756de37f271575d9f8841204cdfbf4fc36b11536a31b3b6135440ad7edb76e91d0892d749c00d1d38cc1a30d22e52f3dcb4e5468bf525677f3124bd03c5af88985b78ce1e9ea04f1bb6707c8d99c1230bc6853a60d274e1cba1991e8fc1b13a43a1054e381db78134958ae3aab8b8e8f62978f3a69c3909cc9219a30004b0fe1532d5c8b4d00e57ac4b0cade4a134ef82bdf1bc89c18e6ed8adaf4fb9a6ad950abb4c4c30576de98169bc9ad2ead20fc5b82f0b7ecda7bd0535d792269066f8f941e59218ec0bf952fb218a262085c4917c317bf35d83f6db184d8824c78cfec490517353262b728469a1fd774a64f165c3394784d5c7402be54cf2633e5b9a72fc953cb21939568134572ee17645163814debca4b79cc3432868819357360dbb25e9f6ba85dec859f6ea3ebd33ac1f4df33ccef4a71dc54e1fdefe1a299b69e189db2ccdd2d8f051238ddccbaecfcb62f5138799dc6a393d0499eeab471f090a9e0d172150388765f460d789656c2cf21b86af420033908a64bd903312f669f78c5d0b6b0a4e5a2d4c114a0a0391f443b67172f507ba8f1d44a827eb43624bde66e6dbc2b41fd8c7b09774dfe8e33e792f39067c543e9d331f14c667f192398dc072e05a157fed2d9c2287215c2af4e550cb740cd231142aff7d1381bdfcb46e2132f298717ec102709adb978078d0b30bdb99dccec853d186d934f5cee44c7038200c100b642d9c36baac7a33d3d20ba880e8bb811397c5e78142632d24d0c8ecbc00e55e0b37dfa1e4d72942be81b98e23a64613b5b4fef422a452780f3b46a3852019d6665796395a86de325e8869ea3b37b314daf2060145cd6399901e5355a54a38073db4011cab02b7c01337b662ca16f8e37859282711dab04b90f3018e5cb9121da8ba7db86cd87fe951ccbadbc9f96f4c046879d3ac882371d30c70db66bfd5ccec7d92c1466b5802ae68910e2fcd29d2b2133cf2eb2fa1034acc8bdeae464d9027e325868a19325777f04767ec01b9f39b93c54384038a5a8715e8a5b17327bdae7fd6ae5c05dc083cfcb1e010d92e89fccda7a94a368dfee9d73fc2bf923692a16103debb09fc8e7fde04afb498611f8676474ae3b3f1b43213486e9102297177092fa5c52abffb872e658a03644735de734c92b61aef40b69a4a5268da2a0ce182b77f067ebf864f6e2434b295de7128447c54cc63a7cc91cbd2a54577fa543b9818788e871e1fcb9c7252985fb22dbbce892b462b9793958ed6835ef696132373ac13089d7deaf898092e56374a8b67bee628c3f756c78b166e1733cc3c4f5859cfeda61f12762995cb43ba07ba0ed6bae3f4446df6eca8f34f95185ad34119ede3cc805cd4a557dca451ae4128027703acacfe77f5eefc61baa94a83f634ce462bf682119a2fc54b7d85e55e4ed14afeb5ba0437b715f077c1cdf22dbcc031abfcda6a6cbbb7421794a06271c3292abcfdc4cb982209a6becd38865e96d9e28437c455bcd0f206db412fc5e25cd02c99c9f5c90fb05b8f84af9b7bde96997335a994388aab3adaf8a3267c3a21701c2c951d515df5c5deb1e6476764787795ddde424ed88c6356dfecaecabff1d963b68337c19b87a4c31b96b21e9ecece9c6cb743bbc41d4fc9ca28950c650e024186dbe475061bbd36db757ad5b841b406553ea62301f74303dabdaa5fb7e652f59452612d2cb88e196221ca27979a38bdab98eba4ea644d6c208a88a44a9fd25a790f0c8e2c0ddc7b03a7c335c7c403d4ce0ae0442186a46cf19a7829cec950dd55895943430ce8612fb992c08c72515c29cc544fc7604d15f0f5e5e6dcda22d0d7f009d7270747c39e0e58f4fe2a3477fee25faf311654bb2b748d6ad0bc86f6b04889a6e58e5a65cdba71b863b4135c115753407a13ae0a966f39420ce37da57bf84cc55aca2bfc0dc3cebd760887703161be9b3cfce1449e52b484f5dad9ec125317ce33177cf4d0b26a08e222ec4775d85247556d478f3e46c52dfbdaa3d79885de64925903c44d928da6804889deb20a55b19df3d8f94daaa296127a18ef3da1d20ec3b5b560b704498124efe20f6d385a8023dcd47e75e7d16736bf14f489de1db3c9ef7ab504efad3a59cedbf303a1ee2e13c1a3b8ef9020f299ca73a58fe04356bdaf332b43f737fe3bb21c06b640949fb85a8e44189e8ca5c7b0b8cb744d9533bcc70e632988d69fcaa5a943ad9ab3447092b187446ecefb7814f2eb34193e2de6aa0d5e4cbc950be542a7162fede133ae04a5f9e1946b6eafa2382c641a5e9c9e54dc20bc17c4a3595f5a08f77d160873a302dcf13f23e14d91d89e0ac6b93a25a49c4485c7b03cfcb15d25da313ae34e4e82a66f719c2ac1bbec65c010aa2aacb0bf1a4401515bfbe1964daf21923fedcbae197b4e51fcbd390c73b2713f5f1d77bce4404665e5f4557e6ff5e2eddbcfbaac81e0492eebbbac8fa45ccc38271b9331de4c3379db037bb72c974c6d0dc3646f3a8d4e521c64f9d1cd8c0b5ecb6fbcc600fa2a915672345a79509c614d6d622bf1ea8a4fdd4cf9f8c136a59fee0b01ac7ffc39b2354e808e8bcef6eadb7faaa701f4c578986e0dfdf8746a315ff47ad05cb9ee8cd57c99c08bec7e2b616e1db7d9bb822436a11478ca5bc80fe700230b75169750e14726d5444c2a0ea90bba798f46a196a7d5639664cd3585637c1741715ff0ae44cec37f37bfb34e1bd9ed80d8b5ccc48f0d54b0c24c75652d1f1fb673d1247d1594be01a03ad25c33dce205c0b1731ffe603f936732d96a4adec5b526fcb065eb6d09b70e1a939e559e8f7398f5fceb02e744eda619460e3da89b7e8e231ae2b031b926f7dd46e6d39a6ab9573352b7414df564ccaa39997f9a3c550a18e6a1656f1bb90cb7b420010aa8bc1665fc82079addf1d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427e9ba11b14b1eaf35dbc19ce06b9c3937824b91dc31e4295b7447ae6b3f0a388ebd41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ea64cec98269c8c3626ee39d6817877a0d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427ee2a973235249a098b34c84a266aa0a1e1c1c8385aad893de1d1f150db783a736610957365490cbe9e0f5eb0eeeb306f06d788ff82bf24bca456eec7404940264a70ea53dc2b99d8807e7c98f62ae6131c18e1c878894d29676c9ab486a9a2b99fc9bb11e5d5e1f3df0ff51695a8e9d0a5e0df59474bf7d0c41ac997fca83812c2b4738b8e059ec568bada933f99db59e979bde8d3faba3d28c0680823ea72646d88df42173e6cc06d70d9d95de13ab2991f868094d850bf6043c47e6695329ddfeeb6045ed8719ecfad9ab39f730ae7a73cc3a197a0fb5166f9df4036b6d51ecd6e6bd4789fab1fde3b96804b554371be8169e29c6a727a71bb7a2e74d570af0d113e5dd2aee5c9cc0914c3963b6a65d4bc7ac99595883e729f28249312057ceaf2c04bfd6b499fadfb4be8a3f9b77a771e3dc18e426ddf7cc6889be689a7a047f0b3287ae15e4ca3acf63666374f03c0f085b5f6ae1351de68279c4d163e08d9928989b9e0cb497740b6c122da1c80b7e4d355d9fb6049999949c88ca2a5e21a676d83cb9fd24ed8b3148fca0734c157dc5292aab9cbd761116ea034eab7daf1c8e25b2466f0db606722b882bae9338ec3f86a1138db4f375922e6a4e7861cc5e1269dc9d08e334fcd221b4b3d3ca3b63eff026b3e47506b76aef42bf776890567dc03257d18e54a8e3ca145d49b7881e0a1bcc3e6bae92c83b5cec9eb6b381dbfed9451f993c2c39759a5043883fbb5301e9051bc3b675caefebbc63c506cc23c12aac51f62a2dc9dcab9b00be9c2b425dfb01e6fb379b0b7bc6b3ff73515afb52484d3433e947c6e6fde36c812290abc6826db4f03c300a7fba7751ece1f348cdd7d48924fdff625993f62986224ad12c4204ee0a440675c171ae64b368109d3b35a4a5ab9ba9b30def82c470512b8497eb22fe22d10c8d70b0e10490f9758929213cd0f93d8c81e936854e7a5dbf8e14b186b472d52e3b06e4176d6163004adf67658e72f9823adf572af63020e6dd55a6772badce205e825d59e33197d727549e0c7954fd41d96944c922b905e67b1cf739bbd24f2874f2c45408794d60e73dc18f977da742cf616f4f7729f46af955e3cf3f4fcd95548b6f93c2216120d25961ef65e1b5a36d732e71f51617d93ee2590aff0ce9b40408da07e791b18bf6ef1f96d0502d01e4b130ed35a13c6b523a31667078c76ed5dc87ae2b831e801cfd909e8db629acc53639ed010a2b3ed546e4e5259630797e5c312609aa52da4763dd3d8105d5ac070a7afa59acf2acd6514f4e5653e6869981928b5ab9fab9e9395e3889a2f06a006a161746fad5f862990a1d39da229853a0bae103fd07758f9e53bfcc6b2e6d7511abd755b68f4db94cc9aa71364926dd429cbe66779fcc7026f80a520055389e5bff6b7df0df7ca4dbfc25117d7ca0fdeab0486147f4dde4a23fcf5cd155c720ecc0ce044799a7a15dd8fec5e0f27aebabe5a2c244985c84fe93a5a05f784ee4869d730214ba812b2a8fb9c366bb1c3fa942abc6e13705b546e0934a85fe6dabbf3a70890daf4bf1675a30c75681c74e96322b2d550ab7931a9ac3fa1c56d3f8d5bbe05d910ecc594310bd68ac12eee3dc3c5f97dac8aa9e421e5018e7df2cb2445595a1a8626e3b4c026e5d847e52bc728f49c27c9fa87b7aa20c6749dd28c4de745279dce7d7f562241e44a4215ba850c2996f0bf0e0b4462dd5718931da8e0eb072d424c699357b5bf96aac99efdc2b8e53c0bbbbcf04a1589970ed1190565d9fb79b7934a0b927e128f2c312b6e56ce8dc850cc87c951e3cd90805a9c4e77355042a97db507ac41dd43d5008db66f1e3cdc533fb243a4e977c1ace32d6ef30f1773e8eb696b3be82ef526721dbed6542e2d7aa34f44bbb732e1a58f9b38fab423f54085f0a4405f76b71a4c4c58a5216d604ea31cc6f88f2d5ed2c52f44beb307cb450a8af1817530dcf4554325fb3575fa6467de48fab3f13db4f787212c361c7174b42f7b10b8c2375b4df6185938ee2e9936578c74ab689d1cad97c97e6190d08694ee2535ef3862568100f26d9b8bbeb2f6b5e95f0b3c101f3b57809bb4bad3ba62166768a291bf005d1bd30e0c071e8e2f78c7b0594339ca9a86ac5acfd971e859080b0557ea3cfa2690e3f1c300123b6c57c2cd40555b67c6e98c5fca2d32431784bf9c35e343ad860698683641df86bae0f3c30f66ee89c16f982581c9aa2ca6c9f80455473163e68870d6008325ccdddee9a55d8ed20f2d83cb9fdc100809c335c066c8a18997b07bccfc053155f5ed1cc03271575ff100d4305e597e95b4b4feba706a80506bc11caf5d4032b0f1f53ebd943c64f17dd7a45bf47d056724a1ff81b3dabf29ad76c3c0d2b48d5c6f2495dc8b4befe9383e4c162277c33c08f0e5bab97c78ce7b9a2c243006d61afde5fd31fe063d2c9677a0bd6ebe90f4519ca91ce0e810ac8b09ffa85af2d1eec2a0efae68206740142251a2dd9188a738c208f931156a723b156db33c39eb2ccdfe350e8fff05960a0bbb0fccbbbbc4d559381ce3bcdfa5af8806631208511f129fcb8998d88c093aee44e0f61a58e06c4479258492d01862a3a7fa5b5fec838be61d88cb87528232a5d0af4ce78205a482cb6272f803648c28df91952d636b5728dfa197471d5036671dc1b54848b5d395940f286766f76007cda0ba991a07904c62639aa857a979e12c61164179b1999129e86b1ed8fccd2caa34965bd5ec07c756c55f462aafd3cce9f9d9827a9fba667c3ed84f3761a2499141f7b9f0e7454d983dc4e1453403958bab3bd683e321a72ffa8b502b28302224e1cbd9fa6010547111f1f03c349ecb08698aad043f255434216f7498304243537cf8c7a4d2bb74d612ac573cec5c022acbd58af1dc8c1cf01c00877cb26bef664550d899950496540d21c4d0eff794a2042375e23cf7d75c8ed5d5ab5a853d0805b92c3ceebfc4cd8cdbafa97210215a310ea535a6414ae7f2b7d72c295e71823f654f470c4ce22cb4b543bccbf8fa6a44244faedaaa5ca7f45727814fb51805e063b9ffb2aab91a78df116b5c630178e507e4e48ee89d0664abe3c5ee64cbd0e839af3ab830e4f396cb90993364f94c6b85bf598ad056a0c5e3715f3662310127b3ae0379bfea7e8d11d732288d9683a5b2151fbdd3ef2e2ebe055c67995b28b7e03552e2b25c2ae285aa1f6524bacbfedeb7034d7173dc70d9365350bd5dc7c0a7dfe7506cca8d6dc70932125f315a3b6d5c6109c882c6abc36108ec5c171788eaa732e388b63038b6c2742f7652e4c128e3bab134dc51de16fe8ae3ea5b85b749478d2c012c94e185b4d7a3b7694e65cc85fd4647de30a600deb3758a7a17be41d20c49d0f0c65b0c9a135e5e2178c8fab03978b7838070b4559a0246139808e2ad82f56000b9023f930c9621f975c55f6a4694fc88ced76d4c7b3462a28ef6af722670d99c7875befc9169d2286f3e2f5c14d38887529780bc472dc2348c57aff208e2618f9bed0b5159e045798845a61c84ec7e70614f7aa8f0cc5fc0200410320b310cb45542f28da358a0e02534e31eacb6b34502ac36449ad2c2845556d3c80ca25d237083066caf6ecf866514a74e41dda25a813da3faecfae41aa91290d4faf38d1e290d799212c5d8b18f6d9aaf715e60ca30f14491d4d205d324a10f70cd59401e6b5dd8e8afbae744c0e2bab1997b4ba4e07f061cf439f62973c6e687c160002d50bf1ea3632b218a833d7548ed4ecbe5ef12c8840964ea70b5ebf96bded7f373ca2b91b45d0dd26fc185b5b8df1e09ffb3e98309580cea4eb14c0b1098bc9a337e22ccc98047c1a5a4a5874ff9df9c9608f8d1ef2e9d74a9bde0ebc777fa6141add115d2e17fd46b9b032fd49beab52d9c8198da0558f0201535d01d6336a02bb605c93c5d78ca1d648edb2b63f65506c4be1baab7ca0e2010863599d80b2ed2f69a299c041cc8cf91dc9898ac033a344b3ff5831e01c962edd7adabd1a794b03623638819f3db13788858ac66a6b8ff578ac001ef81b2f0df1571baae0af7b6f045d971ef1e51f48eee095397032349cb553de252afa26b0d24d33541aaf9a7f93852a17bac2a07209f1546c64981ce36f8397f1306be45cc3ddd247f08d3b5bed5e0dd5b66166144608bb06dda1a8db95befbd2db120cf2d192455448de9e2553a8fb65eaf4c735f5891bfd9773a5fb660992e5551bead176ed8c2f7d8a8bbe9c8bba42d3238990bbde911181d37372da744908b9a5a3ec0703cfebda7f651ee53f0a8197e090396055383821a036e0cc1483b9ae13b1994ccc10b8a9e52cd921c70c227fa403ed8e13438aeac238f02c480b4b1befd7d150f8444fe9877aff32eac969f927a35efeebea052f28ddc83565929cb689ba69025a87c1fd612710872b9d4c49f718219adb0321b7e28273ad8936c17c855108f66e28ed0ffa9b608885bb5e1a18a306c7193987a6fdb601d0e2e65191b4fd9980bff5f060b6143968a47e85ccd010f0f54c8fd90426dbd8f8752b68bab3c25e412fca5f9feaa696056ee89436fcd310e36a99e53ddeedecce4d2a06b1e1151cefb5bd9aff77192a868d5ad8186c11672bd8bfa279ac782c53af42f995f74dd36343b01756dc08d763acdd2b18ab21e0721a73fa627e664d75b1eedb95c38f045faf491c9600528834df5db75ae1377bacebe47e47b7532eeba7894123167bdfbe033f3f1b4a1e6695b61a05a28df64869e5d2ac894c7a12ff651c7b0af1e873374e5e3eac210c28c4b9d0d750235848ee945c0f336e1d2f7999ae06fe0db7b89f73b2659e2ec4ca12c59e17c2d7484aae20d6981e832d1f84a036dc1cf493867ab4ba66de8ef7746c49e8c4ade9d91325d7a97f3dce319970efcdb1aa61f48623145117824811e23d2a6e7fb89d0fb8018945ae9390f7bb61025453896e55c8d75060f6024b776fa8f478b9536bfacd66bb68afd81f43b7ddf7ae9ddce600dfd6e6624e42b4f20fa1965c225065d0fb68129610869920d12479e9021e1c6f2820bbfac1978c895bd84790bf57352df9d42ee840fd40aa11321144b2f8f149e75cb85e923a395fb9432be82c95a40ed647c97cc26658244d41e19958e313e478748a9cc430ddefc361bca3a3256189112c64f0472264e0ffc745ab13e29be225abc632b9eebcab53814bad7703c1a9533467499f49d20000fd527dbdf3775ff5bc07934c5fc2c2821d5507860a42da93169033293e294e57d6632b704510a5d1f1fa37b8ae991037569accad0e5b24004f536e601b14fcdfc7fb71d4bca8f6f474aae2baaa0b21d26d9b302f6f664fe8332dbf055a783efef64164efaf1531cb57d768dcf3e05a26a2091de8e14e14332d9488f07e8ad34989949b41cbf8f3bd782094eb25c6b11c399951769e1ebdc1d182e6d7ad2337a8a21a8cfde6a74502a53bf0c7f15bf99d09d11b6bf2ea5e8a619c38e333b6bbbda11bde852020a5b7421b30a4454d8e905f9c210a3ae57ccfd33d42e1a3550e88bd9933a1936f68e55bbc72610e28349bd8de09d32d3b26d798e38652e59aef99586e88e691fd9cd9af0ff4a58c1a5ddbf39d022360f21e82f1359182b52f024113b2a5f76b73714f79bf7de6de37445a8e8a2ddd7fa307295bb55247b76bf37576042eab2a5e3c9d3ae6e908919d4c7b11f70dc100934b778a8863496d8b3efd24cde6305fde89461af7df9a083732a76702963063c6141a6a9d887602cbf91d662672458b40669fc22328e67e456292b94267aef9d7869372dda37a6c23af374a812b9fc49531fb2d5f6402bded585e1bd7a25c86d9d2c4d6387334831033b398c7c5ba7137a1a780eaea944286381c83e81cc9d5dc06a20f9c85d0f0861e063f42993e80af07b89d7b625e44c9937404773c5675bc0afe8bf3fbf6d712038f5bacadf6b26e69696fedc4d8135dfc4baba08d164345d35fb04cae638aec793da9abb180aed30d66dc17b8a58b0562d10d2075c5226ac9e725268460e331102b61d84151678683f51bb1cf1372034ea197fab732c070528ad7458a4b41e7426a1de10f5852ff53e3b2d109dc0faeeae008e25295406334f75057aa1bdd28967ac4541ff5502c7f97377dd4b90fa33f4c5968e578982bb8deae51f63c3889b5119649a64e3b21179cd7164dfd56b23a0a4dfd84ddf0181226b54a6732ca66637deca6f6e0a79236b8eb13313af6e12a6063404e99b26962dd01e4f74c10396e63ef414598258a7c96f710900e80fa3de80b6833026cacd25464707fe9691342b765b080d06935b6f77eb7046703c2822f5e27ed18538b67305445c0bc712f5477f61b2ffa12a2b1de0ffb9b1205c3dfe017b99340bac6412cd7c7f7730066e2fd0d23043010d52f200eb2d96aa8ab1a33b3f6ed2a564e561b29019047f0489e442d367d531d3ac2e5366a2e3beb5e10052cadb91d5d7b00d0f00fdd7e76f027e58e5e5fc292ab08f7e4cb1f8ca69646df17e6a95edde858cdc9fb21e75a021b00ab8098a5d73dd8e57f1a1d2ab34ee06cb4032c3247ca912ff64d136d4e4e99ad67df7ce09503608c294e910412068ffcb690fafc26306ef25186524bbbbca9274ca5a36c0eab40e43c26d929f171c680a2e35afbd06f6669abdd8ac85eab8f1b14ede72b525a6091c93b3aebb4f143a8525282ad044a5a5cfe9cb223e24d93cac95f6e7e6ef1abd4359b38ea659c1b58adcb436f891f31b84c026118783f004831fbc4b947fa6c55d34a127b2ad6053c8efbcbf97cbf7e209f36b906f2e71af0089ef3cb2fb537b2822de2d77e3d3178575c9d298edb47040f67ffa44af145502ec80889d7f83ec4a009e53b3fa27dc0d3dfe036fc90c4e3c920a29938c3d5c02724054de8caeaf146b674a77dafb8bdae719f7a9a3ecab9b8860ecb425d1fa75d4f8fa8577dcfd9d7138e60ee2008dbeb312d41d19cfc91e5986e164d716839f81bafed91383c227c4e4b787a0425ca4b13ec31f6b4d7edab2c16c454eaaeb137f1d971773912f2158b5de958a8a1c2dd785faffcc69c04b48df3622d600212918267646bff52230622f6c3cba83806d8d03bc13cdbacdef327cece4c7d74cec2d867c79a8e7f9980289fb4493c683467cb030d04ad7b178ef85c7b10884679d2d83065d25be042914523242e1ffd54327bf2925b60668216e2e92d5d03f93760150c3272fc591b3530586be03d414807451c9716482a22beae0b84229b1a6a3370e3cf71c1387b0857d34e76d514e55e3f252754890113ce880aee7ef52c44a4ca5af2aa92407f2f8c456306a1f44b76de58210661721715f6be327d14377b69b9790aaacb15e0fdae91183f734a47f3f9ce27b8c3aedc2e270251b74ad31fbc7cadb11f96868a915356c76170a555244e229cb19dae6dbcf114517f3ecd8ce9a69c72bd8a09dc0a3897669e4590be73c085f31c5956d46abcef4ff934364f8a0d97c82552650599a5fa7a3833203a7e4fb4cc60c2cd74d38836f28ada7fcc9c80b3e15a89cbf67271eff207de952e6bd1f8129bf8c7172f04e28dc301ab836631dc4dbe9a04d8ee02c2b0e66005c14472ac10278d44c91a4e4f1b44a91890aa0cb7f343261646c407f906632919f94adc5487b712b3da1c72c96963f1f72415317e63bd8aabdb269958d1fdf4f92e036c8d7dbb4911db7c4132c895d9e4dcbd46a20cad7f0fd1a72ccb4f0a1ad7f1bb0368d75b61cc7412e34973bc9ae6b84f1861404162c21d00e908a0dc1286c87d1ae641d93281d0cc1813e4370a20b6973b501da058830e50b32059616f6028e7819bf9e07dd429ded94fbe4d0a955bed7df4de8987fb98f476ab9142dea2a115e168b1a36bd2cf0bdeda1660ed60b95e322618a130e0b596ac86cfaccd4e01c26d62d181abd07ce4d2f9766b9f08ec4cc1d9081807e9c4654d969dc55ae9c5d6b140ca6752ce53dfe4b79a6fddff397452dd6f3df7397eb45a95948045058742d26b60e9e8a732fb4258cca348caf21d584634f5c1efe45a226ab91a9998533e79bfd6b34367404538a752cf43a918824fe74866a76b699e26343fb042e32923d5dcf0e7dabcf56295713f4011df30eea7d40fac3152c78ef54edaea5259055a018028c5786ad7a535033cf26577b190b23bfc5d4cca77553d7dff83a01e6d6d6dbb65ebca6a7a4362322c36b813ef20c8c6e48496cfe78d8ff51fabf51e10fd2549660d7cd9da86d7c1de910b20d3cc50215bee7f38bd07a5d3f42e500fec18a7d6ed84cefe7da0a648236b98edab86442e65f5510979254a52e1ac322d431b0d95abf161a54f079ea64bb13ca8c198c5b0b301cf36a221a9edc7efaa4931bd72c122ad9c2850e8acc46a250797cf42c6dbfca2fd1dd5027af079838482164ac29d8f2bda8b338d42cb89c865b312a9bb485d3d610aa9e0617ff10f169acfe2b344e3e370179001ff4bacfdf5c44eed335d51ea84dcd71551ba0d508f9ea426d87d0b184da7ab6a8cf8c35d666976b8bdf5089404eb34a1e95ac53fe0d1284912225ef540642d4d81dfd71f64afd2d83b3f5a9804a44f6ae7f09a37ab41cc5953e03b584cd9edd5702bc8d1400402061e162a8f92c5eec4f687a19f1ec008f66c290ee0352e3ab5f6df9eb63a5e30053ac235225fdce9eb63ada86cd7e2f62ff522ad8a7636daad3aacd4cf2b46ef7d785cf2be108d753631a31ced807aa890e34903f77af464ac3ccc16f23a567c8812a9c52d16facec7fec137b96feb70b85f73fffd602bebfa3e4698d08c7a1531c329929339a20527ebc81fe8bed2029a8eed1ef64645275682860560c88d027e83742a3c06920bfdb745190e2a510bfc89b1c0a9418e78fef49c8eca2db8f532ff9572374cdb4ed88b12a47fb3b00a59898865ad1cb20b976315f26d3e17f46e09609f5e2f1f94d4a92d3a84a7a3bebbda6c2e9fef6d72b35d0d36f0ca6a2599c1740e4eb2649c71a5b69389422f118a3ec708e121fceceda596c485860c19a0785736070f4f712e76b0ea988d2b91f7b8c9e2df3f528e5a327b7db57e6062513352b860738189e765315c1f8cff839762db30094cefa87e37d30d8db5307674afbddbf5961ea4e46bffe7feaa8235caa1efb55ac03237bf55363dd43277ab539f4b3aaef2e27aa79792cf25ec5dbbfd997ed7fcc92693b38c264d10b3b8462e78770f9a703ea803a828ec3d4028f0b0cbbf1b9059c9e370734be534eec741b0df20ffbadb13e9c4a01f1fcfeba4d9cedb374b306c2bcd4547c77cd5ce7235f96b9627211428d06e11f03989190567769da889763cf0c76bc486866e93795274472dd11249e8cca53da81220b516c961b9fe5077acea8ccc3145d47130c0f99a9b969efddedd3fe89e32ae38824b55706a21d3a4d0fef55601270bcbf077c41db351e81e7311b785a783f5d01791238fc2f4ea247dbfb65a3e2e946f7f4715dbb3fb91f930bdbad059799ef3a77784a4a3f7379c2df831644ec3a921c64b9c3c68b43430ff067edb8124486d78431047867019e8607a44470e0848747b0e96533cc989695ae198e12fcedad38915202e5c859862b2264ea84d84de119190d9d8234e80922a14ffcd09540ec215a9550a2922ff8f5923a6e9911b1afa21b3a284d98f4194b8d68808f3c40301314ade5f878afe35e1ec612f155f03d0a73b9e374b9ccf176bb02fca9d351416799bc2d512b9fc8578df1b6794c156e767a7d301961b0b21c607f245a3cceffd2f4be18bd685637c7aae968a8fc1245a7d4559d801996ed5ee92a0f6689d56c52e049a7763224043964d526faec9127a137aa310c34d1ee97109b6134c8a09298b1e2058176c96b49924ddfd4eca5030569ce5a8db44c07665b6bd176c9f1a69574671044f35c6566aa830e26066b6731ca7e1a26a575976b4a71a9794265561e01236292fba6cc2e04e1ffcf3dd08aeefeac1948a49845ed128c23bc0bb904884aab67ecf67126f33792e0602c63ca6cbb021a1875d80254821db6c49b6cbab45bbcb4becd0490eee32d90ea15286ac82b0f28626a4d6296d03619e4c42730a86ab404e637687fd4fab68dd0930b22d81e6c4ef7ee1a32782336ff5f5e07cb3362e9281de6ce48f145ee738f8efe8a179fc14467e9476a76986f12d359288f567a8e389851c3fe68a547e78ade39229dc735e4f6cb88dc406f09f74a79e7fe2f8f09a2bf39d15b388c131b062529f783b4ad1f203ded3a57b92560df7bea93aff7e1924771bf32de3dddc59783e81ead3dd79fe021bdb928030fdddcd3ab4b06caa93bde896f5b01bccb21c891754e3415cbe5fca34b1fb9d9d3114b5986fc443ccc16cbc136f7ce66add562bba259177404108cf1413e725345c8682c4d379578ba760c5e5992d962c2eebf4d433c56750379bd8d67f2c4759f191fcfa88dbe621e759cc53eab4caa1ffd989d207ac0d40ce031614d872480321d6ae9e77a2d1d51141f49bcbe53cd782f07444deca4d183651026bf02cb78b55c07dfa625a314c47256a4bb2ccd320943f20bdb6e1f85c41283a488da99f55699b4d2d9d7ed70a8f19601888af5fa7b37949a957ad7764642e02d5f9a4d77a8dc4a70b9d025169c19275c42e8af578fd645efb26e513a71f976275114e863b8eb1f2d72a93b2c0bcfe0c8ecb56a7b3cc4e687da0c6a645ee36acd2fc0da119740ff359b91fa238ed430f729a6e94c5ffaf310d7d2b2d84ed6bfd98abf64d5d269c5c957f0c854a88aa570ffa3a978800b2ee163997b0fbf9f22bd17c49fe023b8c7181745c4ef0705b4be6403b1579091bdc453e0864651f0450957c3304588470c45fbe35afae72cc7ffcc02fb97862953632e1f0c168513b9871fdef8075ec956aabda76366d90fcb03ea65464701a1244c3eb4bea2c3097eb4053b75b583abb39147b148cfe353ec18459975894802d558f2e9a0577f1b0a27266fcdf590190ef441a30dda867cd412096673bdf39c694f291d37e8b05b9dd04584f63e4f57604bd52dc0c074e32d07593d91786b2a0fdea5823d00264b749c69162d784dc74b48cb10af8dd87730bdfd449c379261d8e70076407fb663a0df422bc65a969fbc602bee8f5885d0e69a613c5ba25a5a882acac726404777c7878a58b502ab3482ebdf3b53be554f6c8ac4176d1d3dcf11f5139bc5b4fec2f161c5574514ee9d5dd589e1219eb04f1e94f22ae1831cada9248b39acea402c87b2f9d9d57fe27d5cd3cd43f4a06e2d5e94c439a5ec00c3b618547e4897cdd1f868ad597f5f02faff2f33d477b434f941d7113cef31283073ad232ceca4b1ebd5144a72f591e46650164be5bc88822729897f4fc20e561fc51e5f321079651cf246a6e91d62699ae68b29ae0f4b4168abe3db047bd242eea5ada43f9c34f666612b12718003bbc0b794694d32cbf3ed2e8ea9045ff96e12ea5527149a2885fb275c9f9f4f5039b57574af64446c2c2e5eec307b10f04041f7469cb92579e667928fcf4bdde68e63885cfd4bda21217d45a722203b7dc7b2114794b54e6e52c8c158b51da3e1e401eb812ec9b730c95c0bb5b9469b3866e74961c5b997a13ab0bc8f50d948f28cf78d885bbb020dca0ad656b42e0a3c38675a80061e21f12bcde6b84b8bdc7291751361355eaa00bc0125f48eff26222f40a7252eb0f194b4429cee71130da2f67ccb2a9fb7bd1b7b2d0850e6192aa15d6475787dc434aa381ecd40597d97dd1a7de9e3d0f3767ecdcac7ef399df456ce5866312554feb28460bbb00c9298c2c43c97dc47dd7f13e1ddc3b6d351d0de922d381915d436f2fbe61d7db6b56ca20cfff3983640cf05ea2fe5ef2e66fbc6c07a0a7fe39edd57ee217318ad7467217c403a2395ce8219d68305a02820c7e6ff2709cd49c79c981e4f7fe1d85bc2a441ad685a4eee4335dfd0c3a416e0c37a6c4fb2210e614a0b3979188c76aa4265a2ec6eb925999f18f9383e0a97a694ede58774d600a03e925fcb59d0d867ae725fcd8dc1d2eac96662f3bf24b7188b95f5ed6cfada9103677d28c7c2bad7c9bd3420f4a232ba467357ec035e33033d9747df864636c2b2cb4f68a5a0c11c1d1e10a1636325461be18b9fd1d12cfcc52c981a10d5d5f9570eb5eed7299ab0b664bd2bd478799ac1546b5f948f375784a3ae5e1723388eb1df3cc8df80943dbbac14f699b5f978830e5b1fb7198ca96a37ccf5b2d292770509161e4b6d9dc46f16535c88cedd4a8af77534adf9ce0711de80ed62d7a3114514a7a1c77bd54a5f26f16842d8996ec063b0922e5788b85d541f70bad21d8eb97b73de43ecd43d2c0371736f7cc5bfd0adc1959b6d79fe916e7a20a4cf95987e62ec48607ec1c735e3ec587e21e1605e8449de6fe6f925a34815b2e21af58be9114c8e0373a30b38c69a480949f6c656f4b0df826a54fdccb3c6cc572358047fd4ec1148094bdfa4ecc522da0e56598386d9e26c053f0da1525081502f15829ea3ccec35963bc0ff85b4bed2fefcbbeb6dfbf1144c46d163f39bf8dea68fc472b22f9ec4ddf0f2eb813fd5cfa947467f9c7b2cdf95f4b5b72987ce0de765241a4a25206707d283dc9c8a84e86925f265da11cde5fc7a67973c85b68265233273679f16aa129190e13e6b6d00e26fe5fde716e6d1bae73a1227f4b69c9e857b9ee673bffe1b8a8883b4b050a53c10e58487887dc4a543799c0e267dc287aeb6c5f560e9f1822eefc21ed740713be554412c1e4930c03201fbd14084d6ec1464b16f4144d69304afd795f636e806d1fa7e69e119f219568fd03d684883835ad3a637a0bc6e437ee79236512b2e33408759374c9d01960b8bedb02b0b634176ae8d8323f67c1440f5b4833da6452d6f71aa662c563584844c3762dffb6408776aa0bbd8a86cf3a690d6d35935a1e41d66ac50e13204c2472ad65a74944b1aa676a9e514ebb314b780c9e4a513cd819f7df21316da75d535f17bbdf5d70f99e3e0579009b27dc493d0a3893c23fcc770d0b4344074dc40d07961cf23b4bff88c33e1b271920aeaa70472740427f861f0d72957cc3e7df6fc53075cf3aa043d070c4f651fb87fa250b922b26e6469b865ac01e65938d75ca8365b7cd561fc5bc98965d4ab6526e18639e09a35ce8fcb2ad73de6c8850c7fa3d7cd0992902b04890475089717c3bd346b010bf151c8a75e37d8eb783482608cbc28165ea01e10d058a538a98890a53ec630fca5d04dbad26e1b90f5710813e21a0a60cfd476dbce943f3ddd014b0fb8a574811d1719a541470ffa856e53cbef1c9ec7f9f3387729d02fe7aa09025ca2d8700fa9624b6939456d4da3bbb74f934cdbda48bc01931097ea0455536e9f44d5cdc56b26701c10538785a9897979aeb7d9321b7da2de3801f474adf65d623da983db61fb14393d379c88e1a9cac2572ead7eab6684fa309d77b34cb7f8e73cdd81a947d9b9ddbf74f5646fb33f6cdd97292b88adc6e56d9080dd8d6381cea2bfff745e71855e29dcc9d972710488139ad029b5e0ae3e11c98211b6f3c1b576c91ef37b8010a6079181040469c8297c3da5bafb95f3fa5dd6b94bb715c5174d8fa64f74a6b7d75d3fa7470e59e658e2f18d7eecf5f636899ac7cef5084271db4648908c62e3e73811f6aa8095107f2700f33811a315e02a9c8f1bc3fd87692faec922fd093222d79269dafd62a7a24755f0855b64c56978dfd393bc71e00a80513b2d50e8f81ccb3551a29587e8757856fa6524ec7212e4ee3a637f4d3982dca806b46e6ec81db6654bb4122688d5bf579116abf09845c6659d0ecba7f6fb8f8da1f3d3a874b38fa36f5eada1533eb6f17084074dcdc785667a7348668a924e4a7e9cb1b46d20a173beeb7887b15ed6ff77342659d0e6a63154f1e9508af8255a8b2ba4302e5b88180f676393d5f69755c02229e64fd915c2b7b40e3c5578077bd7d35bef8e0932d0eeef167f2c86b3f1e2d8c3d6bd92b35403ce4360258b22d4ae2d72dd0f3ac765ef4d3fb8e515552341c58b9ed6218ab124721e2ba18e689c27ca4e64e744268252c5a9cb3a549183076d6c4014bb39da077ea35e4a6608624092ae26d08f4304276cc174b4f2c7432684befdc40817dc417de6204be0f5f2e6c799de96c7948e55bbdef85191d8329fe5c95aa326b0dc87071e148d68e34934925a48da5683b08d873bf324a37b7892c89013df15a4f094843b3de198f31cb8b89468b097b9efe484cab6236e233c2e7dcf63a23a4a45a736377f7d7059c7ebfa72760caf8b2580dcac6cf4e64ceca099b45d0844081ce1e31c7f959fe3bc6454514ec0453079fb4d3ed55b86497ccfd9528ccb42f647a32d86bb90e6f0be5ace1e3feb9cf03bafb078de21216bb6756ab27be0bd3330260350a4ad457450bd92366716ba79a565b23c1f1dd27904261973e14303b026ba7dd4cb9fabc5f3a4e80c3a29093fdaad2ec4d31e66e183337057b8b334658fffc4cc54c44e5ef47be3ae56ec96858276ab229bb10da999f4cc6fc2697c2730cb60cb8630950045f0b130db29e7c92e337a4528fe9c883ee279870957ba938c202cff7ecc27d38b26bf50faa98e6e134bb283536b234d8a281ae36a63ff8e7c9bc4004d4f70811a5f17fa1abfdfa5824d5ffc5bb0a2de0bd6804c1b8131bd3aab487ac9123a0861761bd5de18d0cca9dbbf157137c0373ec7d016ba3dc31877d9069451b7be85f06477b952512ea0690ceed443501550018c2b2b08fa9356e09d8044c30125620949899d4a6bcae6e232ab336f494d48bc1106386fd87b321fe30890c53e0496fd46382c3b35fe59695fb22a7219099e3b0ae69f24ba61caaf9431d6911517a22be8b4f413a5d4446c661033919e7cc05d1a88643161236b238776f7a921f1e15c8963ed9c85248e4e9857d3a88b4f053bd28a9fd95f8f344389bd07029e09b125accc66c836dc120ce86402f543dd5e1100f8bf7ef381769a0bb0385c7ebaf43ed0a9f09748a985f835a21f03c47749e1137a6cdb26f3ae73dd23a34221be852f2969f757680d60cb67f6e8ac5f607349a2207ddfd3747ffce546174c8e3c1bd11540be3f926ecb9f33048a82bd9076848db4d219b841b4f02a53fae53e7e856d945ae8cc8e7b926619baf2eb66fbe7722cf99fe8b618fc0c1ceb3056f21274eec7b597f65ee22f0fa2ef72df8c7a02fd8182bcb4b6efa216318bd4269f3d0f8f1beb75ce861d45bdc91c9e4cada3337bf4d8811c5177077b49ad2e32e5e1e9b7e15f948ccc3a36c16ad8a2ec284709195041e40dd7632bd786a5d443c26d91b2f6ba0506e1969a6bd822465e0b90206e1b4dcdf555c6b25355810001d1de4a59c37ad5f430f5835487085061a10a451d6fdfdcaf6e02c25dccdb57c26eae908538cfd8812e2790662be750c490058f9d398f6e0c460da7bc69493e8a623d9a41dfa05cdaeca926d11bf19010e34bc4ac5c1331ab3f24806879f6138eedcc63f12c47a79925586edeeba88d40f0b6470b804a3c0189cc861dbf6580c23e101f2a6d0f29f0afb40cf627015bab169314189c72c88a94d0f5eb29d7127d5bbfee32a4c4536e9b3102fd7f11ef707ad98f128305e611a712ebf5d73ba9bfe506429903f846553952083750763eb778454dbffb81ae239b84894315cc866e48073207f9664a85ec9fcc6ed00d2d746ab8191b80be065917c523cf099790c6b36c80346637664fe403f2df624aff562085888089a29551d55fa16e74cf121d45792095e51d4911731b93b39371f97b5c8c39f73fa86569e5ac02e5ca73e09a15eecd355614c46b85c5aadacd7f500b665b3a93160ff7dba8b3737f4ec59e453ed2a078cc49ad60162305b8cd28f16bc2bbc8614fa19c13650c642e2e3c6578a13c5d0bb1c02ef108cae05bb1666f7161fbe581061fac2c56c9a5c6fb4c7335979a858996f485161e55b338c6aab5939ec524264dffac1566bf6f25447946bbe9d9f1d2c349bb315dc546821d99ba51c772a6ffc821547b518ff419071875175db849fcf9a4752267d90199399cddff5436990226785c17c908b90ccad6e8fc2f7876ebc5f83e930a5a1fcd6e259bf0aed3efb3c45b02a08451fcef4739342f01db8a86924b37b486507cf71f9f0bda718f986aff5013adb75bd6129a3f005eeeb5abaa9237a20f5feaac040902d61b2ae6d9e4b24f4deb7effd7dfbb1294887d69540efd71061fca2d398e14e97cab77654e6dd97cc2e1b0f76091a6abb614604e70317ad1061fb91ac1b45527d72a094bcd3c766dbc4351ad86c6f7ea4ed87c3cbb86f368bb17b8650c4b643fcd9ae286880ccaab235f43d2b727f9f206f28cf59e420040f33ce66daa6f9a63e23edb0b1eb607d33c0b1c0b176f824388a60c982b8b4847d3572e2472bf3971d35e309169dcc465f9618f862e4f2169b51573d45765322353ff0accd6e36e486e49bb27ed3cf8954dd81df8b448c7696baafdb42ca3472cbe8bc4c5bd6ccc0c124a926f17246c7c7ac7a20a2df8bd0822cd0e2090a08e52f781eda59568be365899fa14ef6ce4f98e56ab0a078396d98d8ae4cb4c46c731ba41303ef3e3ce8d7af03ab3ab8748a87e661b4210c970ac2ecf40aec0bbb2ee8da680adc07523a43d244b5be2353661168a0a2abd4bb43063210f1bc0b7279866e3278788701548e21296e8ca0a04adb6b619995982c9f09796106397f42089ec1dba80c8a8bab900cc6e2b44df7aa46dd2c6aa5a1968790d69ab7e3e6e85116dff041e7062bbe7cecb29710ae5f2aa1246a4bccd5d03e3e2021a70ede2981affaff0cec04050082d45c261b1879f348104a7c6d494ac60377066e9dbdab146f6a79bd6dce2b00f3e0726120105e44a3a844f02d654f0d69b2fb539aea81f5350ac67793b4bdcc8c06ee76f15e35dabbab7aac23284f59a1cecf763c3be1a33093153f63bb75c2dfcec691c9828d1ce4fa3d7ef36ea54dc08933918744e8f7fcdfa205859db7e65d25896b1d8d6176e4fab474eeb800971a34917a0c3363e1fdd689808a237a14404a86f7b876a0b70529d000a1694df3e5b3816650cb8c7f2afdb95f9e6a28a61671ff44fc5cd936fa8ed0e494883aee09e9262e777c86e10962c4690d96ead6b396a8f72a550ef0f831a6731b525a8931716dd123ce708672eba89f9cb409443d76b9398f6c0ce36de964d3eedd2036de39f0540ca63c20a0c8648e9eccbfa96cfe99af0da8b079ea3a0bf77dd65b6317ca9b8d734c0d9f81a6003436b8c534004ba01c6d55c751aa0d924055b724b9549ae5afb9229e836e8ca5e7e71eec1ab13ce296148f44ae3620fc5d135f789a95bab33d752256707e6a40cfbe25db83e9023909754a9a844ab86181c3c7f7323ede48fe0a307c815c257bfdaf41e551f6afb196eb398f0223f0ccdcf308cd3abe1adb292b8ab908531f3c69afaea84d021de3f616a36eb53a6579399b61a836ebe57ba80bc72867d209dfab8f27d3196e19282f6772bf9e797ffad3b60da158d527b88fa73c3fad449e0bba99201e631bc303880f5011ca460d5c532aa52145cc9baf42d957b0307ae93155a97cc839a6c43ab4e71cbd9fa9dd7712d3c75bedf32bebf83da76f8c47fea528059e60c9a33becf0a5cd8c1c7762aad527fe743b6f0b048785721c7fcf2786061fdc4fc9f890ce701564b7077cf68017f1dcb5f7901a1df9dfac84a33087a1ef62c3708354f4bfb2a46e28a687daaa84695e604639be1de8f7b9405a8b7ac010e65a1609784ede93e33949bffda335811d3594d589a9acb0c41f817f01ee26f9c8580b9ad6767b38419f04046df017da777caa98931f24967ee216f58559b4872a8aedaa255f94cd4a4a4545b51b3d1b050dd8394b03de51a5d4f350c9ffe31fceb40326462672599e9c7f215347dd87dd031ed433354761d5a50d42704868125bcd7f6e57b50e25c779861737c2d285f3c1c89b2749dc7c7f0e0fb36dfdd0fbf92ad5687683bda9f8126e2bb1e24a58321b75379e4379f452d8c7d021d30ce9d9d1391b8181eb5f05d03ab3c224e1bb26044f2b00127a02a3d7e83e0f2b4b8b08c264035489189d1e498449fa2a2d8e82d720fd3d2f42b939ab5b366e56c4b3b79427197fc61c78f3fc2e655a4c1bd2e358d5022e9e2d784f3cb4c5608b8de767528a789187362b84b039622432bd9dfacb0e26e9797692610e00ac5bd0a77527b52e7c7948e460f77443d16828fa25ecc092579f59fba0d162834dc3b4d5b50135f96084c662f4f735dec57c1911578217b68ed0a938b959dfff05d40d8ee7b918ca3fd9f3b544eb34b7f51dd254f668029697fe13b13c7028feb4088913d25dbb5f1a6f27da97f72299560adf18e8a9615a811c6db3d6205ab3450315aaac130d1cabac431ae503c0f8ab176448f858b7000ca71ab4da00e03f9d485972403d7d81744a32c5a9bb6855fe5aadd00fe68bdb7364c6aaf12d4612578edf505f99e1ccefce7bce77394a046597a5137c7c4c7e8a87fe65160f81f34df1e220729e2a865e338df21ddcf06135a02e2117b575fb80cb8115e4ba2e9bc1c8560c848b13ac144b86bb50edfd30ffdd6a8755b77a1b9155aaa2d49e6d9371bda60dd5b25d1e75300175a8155c2bac60aeba3f8708ddeeb580d460783784e0ac460c95abcc4163fb658afc553fa74882d24f16c63a2751cd789d2befcf21a6bbefa92a7f5b8577e5af4850c1a0ca350c88df61299fa5857f9f35c9af6d56ca4e903796672b41a46bd90ac08206e0421d9cecabca99885feaeefb084d050fda3f556c49deec699808d29da573046a26c11c1fc92067dda975311c87418680bd83ed48c0dab0bda71e9e16b5975ff2596e0eb26d61718ea0e8fcfdb598da6d074bcda6c30ba41a46e1b5155069f10d0819f91ea1d9e94d5a65e3c6e901268d3456c88c0298548e89b3c9d6fc6ef28be73e1900f343561a4474057d18917333a0b1631c46c37b0eeb0d03ce6e631d06e9e67b97befe64043cbdcec98b8d4dcfba43cd4fc8f7c1bc8c897a8dd62e618dac54192e5e669dc8603a16d622867bc83c190ef70473552564b8c6e9948fd346c75debd9dafc4f7ede0e628e41cf3c3aa9453b08fe61a4b39bfd280812b3bfae3f1aec263a73cab21f6d28dddd82b1d643813fcaa8f0fcadab2d5b60e5f3c7e38d23e1766e925032e4ea2bc21443513a785e66809a1006919b2f56178c83dd991080f9efd387e776ade05337787fcdc76d983afc4330ad1d1c3c48bb221132c4f82fbe31ffa628237c286125c8fa26e2b991749615e535eaac9cfec29890fdce5f2856a00871c801e968a31231920d997cfb2a53caf82724cda45015c6362a3c326683a1706ae86be1b078e88ccd880b09163cca4a34ae260395ca03b274bf9fe025d0635617c20353f65ed7693516c73513336d577d9d6946a278bb07ba3bdcf579bc4ca747362904d5a8197ded71a323e913f3eacd811b0fec050ced93acdabc3e88367b18ee13a6b18315185fe4a2ea950d1c939fd4c6992b75588cf2af1a8845d162d801a97d90cb52ba3413e1119eef2996e32c8138256a5123e22a6dd61d3c1926a14250ca72e33e19bc17d0e9db69540d246985cece78c1a4a6becee8cca598b1905c72be0abe235dfffe4331e8f3ca5e98422ff2d886732d89331ba7143b0a1481aced702b7e09de6344482b9ff5c8dfc7d1e11da8ae9befd4743a83513213219cbb8a9f70a7f472e017d3c0b694bdfffd1408a1ab3b1d3cdf310173ad48b1c7db27bad73b3b74c2baaaade8341655a683603257b868edf8b8a44ed1a501fee780f4641a4822eb55427b3a9d8233fb5724054659ff8593948c1f2b3c76cc1541639c0be5c93c99ef64dd6bc08eba26f3b69683a661637259e183143fe8c8a2b7ce89684263d64551be854683334e3671ad6f67c7eae3ce6864d12b7a0d24015d0773a62cec8e7e6f44a7548230537d08d0ffb42c88ff7f68dd7a1e9f87b8c04a3be860f4dd46424e59c1a7bfbc8b62c1b102fb0357d4f137edb65e8f371024a9967a211a9063a42e0d960334fb99c4255c05076b81b1e8600a16a8df8d28aa44a1c9043f6819f3fe3cc2c749e2a5e465a9d98ae748f1a1fae6807989b3564827eb5e6ecc4e0c8a1ba73b24da7dd975cf9afcdc5e8a3c0901ffa16b8b1e666f1506b888525530a51d2fa39a2b7e64b78e442f097c98bf4cffed811473d477b619be38f2a758db490b4a045a4e2ac04ed1719a2584c03a407e3fb3caca6f1af5208a917673f1d90b55e50b9df1d235a0ccb90ae368f66ec6f816face342de592da886557356211b6e99790d1756cbe41e061b428d188e38952357ca52515cf80c5cba30df7a3496c2753182251edb258a31027be488351cf5bfb23b58b82171dafcaf5876a0b5d0f2864fddb0bc3b0714b8041b679b37d695ba24a4bb69e8947b8b29277189da74c7005965a983bc442f4f1cf8b0bf48c7f9f3f19ba1abd91998971d8cef200fcf6f236de0836bcfa0517344d473e62104c65fddb729f39912690ed453e2efe7694805f592aa4e3ed2ff3ccb8717cefe6567ddcdc8641420f341f661fbcd23d09429cbeff0e055132460ad17ac8fb3d379e4ee980cb6b641321416c63254d115ec08924a1f58847d16491fbd5ca9a3e21a7c67ef8c1a9d21fcbac7854dc8508c5dfc2f8d84b32831323d5df696e38ca691987292ae8690f3b21d7be4a62f2001efc8cdaca25d7e47f62e9a2e45f3e4bcf8dca9725f3d727df1f771b0e66312efdc31a3be897f2cdc6ef2448ccd49e86787a67a409c229f221ecaf2897a685bc505cb91450e08ad8ff0e91474ef98acdbd4560d0d1ed39328d2008beff5290c418efb764948e37ed88a624cbdbe081141fb42baa0696cade9ff34c131853fb4c23689a4ffdfeeb62d8456bf5c264e3f0ad09e8417f84d9259e7f46d9bbbf138aa9ee7f7241892c3ec71ed9859b6089752e8031dc77ad0e9d590c1b9e7a564c0620c458cd70f5f4f9512c24669d21e2499a78984bb181f75cae83344f3d0a58e14f32897f221b72cc8b51b287817caf4203e80db3e505295849d872ddf288f9b3ae2c1f7cbb8be0e99db111997fd9f526a7ad854cc98944886964a3c89fe05b6e5bd539882c619c4d214f6b720515ac708d160f7b0772723ade227f0a1071d8c88e6eeec92d22c6489a937d74a4406b67f90bd2b6e78d91ede396119fd833ea5f64be72c20bc93a5aeb0daa61dde5b04b2724b3220d5117807459ebf559683de26f3e5a58254175d9c1717a042e99fb2577792c41de93c6549fec536261d215fa9dd85e5eecc7409c9b9bd6d5fce1f9971a53832b59e493e10f6d5a45b9be5eec05e28e3a51bd256bf591f163200176171cb084c298bf4b09738ce16910f3458e76f022d7a5f5a01a284e6f360f622dab7b3f27f46e02a52bc7d9c8dd9f1facf5df2325c14f01433be3f59f544fd8ae3a15e573e400ee27f832c012c840d4354a0a67ef7b43982dc28b12dbf94ed71f9a3b722c7f6c04b455e4710cfec005ef2f783110e5835c872d753dc6061296197abf10025e0dac49dbd6ab86669030526632d04dd1dbc91ad5eee0720c391d2bdfe6de77276e8e37531999e2f018c4a912d9085cd386af4e4d1da7c234d491ffc4b11f23df627345d02699bec20a86225b1736c63a4095ce020041fd26c1b81a3e910425e0dd58666f503de3d78f260323df1b6fe491124da30b4028ab7573a833b39f95883bf7ecfc7c8319b965bb54fd648c2ff4d17bffc4f0e9af83c679a2316834446939be3b460073ad7c2aa8d8655d6ab2ed1667e8221aafba2aaf0827075a5d157214d61075cf78f24749615d770074432202ea9939fa97b93d48ad4d7c22b53f69dbb5436e40441c9f9ad3850b51eaf68b084fa5045910857f09af87c5cf9c0e8322099b59ec3ec8ee09b241dadc8abf3ec22b516b70c5f43cd240d1ce2cc8722bc4c58f3282b60a5edc12a7e602bd52651f166599fff86c00714d222cac2a59911518385a2c2d188910755cef92bf4a728d328ffdb5c868df523a6615e365ddf24d310aac30b30e788be4fe32c05567a4caed036db5fa31b06c087107c99676a70e56f5e09300417bd09485a995983965fe752107092e518d72fa93299e973f977d1223f0b30c142ee1e9aa6037e1a6778d3558383d94f4332ac662a4f9fbe5ae0c388614e636ea74624c79a090655a894024381875c45237c4c05f9d287e402e9b1d83f349ebf4100ce435be94973f3ec1415e3ebee6e63ca4cf78059b770eebba72b9e6f183b2cf08a9a2ac45b4f42d71556bd1cb4ea7435a902059a99d8682c2fbf26b30324e6feb0405c02776bfcfa8f079491de54f07cb7a01b21e1d6f1541ae9bcb160039601f69551f282812626e6270ce7269420795e6f8c1838d15e6146d64530c5157a5e56831d4d4e279c6da108e9cb8932298102dcb8f222b671fc8adfcfb0f7120896417aa7d14d34bd37500e5d05999047d88ae3632653a474d998197dc2ecc180f7ce8f41b85491b634adf9dcaf4650d52be3b8f565a5b4f4a9e4a5c99fded72d88884bc8b426e62c9d78e55fd6842923c290e0fa6e10a19c3f1aa05d06d760ed20638afe3e12f8c095e6963adc184a0faa121b24b5298c922472851a1ed95a53537c753022de778a80aead7dbafc2a5aad2e60465e3c7d831a8f4da026151ccd86559d54c567a1d11ab10df196a2605120c6d459efa396cc42ef72857181279ce9f401d5185fe6d3962371ad08f74a2b508650c8312fa6f87a62fad08564fcf8ddea591e79e7754ae91fe45f9e4cef71ec840c628d5d2839bfe4d3943b24fdf407acf6a3204bf9dab4c286dbbb4fa432122d78be9a1f0a706849aacae2f582ecf378b60a5d1d312a10bdd6692186336cdae2acf5a435d718a67323e3c4f37827b33675d893a3efe127c06bff6508f5abf19140f4912a84f78e002bfa6c832da3399a96b3f37eb3a4c909998a684552614b81a340a94512bf63a48f0e02f2ac7c57416247428d606bf12e5a97f95fbefa48126714b9a5622b8a5ed3ecb0245feb4174ead151d681c1be619d4afffe6c1892065769df3f15b510f9ecee765f69f0e7b0fe02f538ed9a53a5f3ac136eaffac409838b6691762a888cfcacc34e1d895efef535f5d68bf937f919eb34ff266c5d42aad72a0745caa5e1b623edcfb79b9bb8eca6d2eb067938a3e4bbf94623aa8a83d783ab48723a3c05a539331d7e81720aafdc6e15bdf0468f2524bb1c63e6375786cbe2ff8d143f8e06d982f6635aedab675234e9393545a0976709294e5f4562178fb0df3e41cdfb02398b99cf74e8c03a4bb0a3271e19a25e4e91c258460bb114dbb4033b28946f99f104a9959b502e40d3af62c5b8651492df73b0f2a3bbd83191258cf6754e4e71d574143e11d3752521f9137fdd88caaf108ce9c88b61f10ae86634d07602aa7e1046374815f12ebdd14777a566c7b21d9d0293c9df0554b5eed5fdf0eb8a07e724077f7f1bcd23d3a3773f1dcd84fe68d8e7d62a886160c5b406c8333480191f371ceb6c4315830d3326024fcef10f632c9f4d1df98e5e6af7d2a32f059a357cc8777cf14bc70e09c22d9da657273d5424cf8a9c70dcc6c53d464a862dc7c71d27f7b4aa8870ef93a2d689b6dc92e2243d4c80770e843b2a75aac6b81c589d5c6a49e780da4ba8579176b86f1fab0f1fa32e8b43aee676acf0d771198fea6abf654d6e5686968099372f348fa8e19852e356a290720c662fc6f0336d4c2b338043a03b650611cfa8a59ad685f18f4eb8419d38d3af21227151db26d6f437a6a4ba33b6364f6f8ce51713f9f327e2155450b144c0672d3aace747626e938eab85f5b147807298cf583dc68439bcddd00c78399aa1fa94d259e51e7d74310a35b97cfde5c1e7574228ae7941c0dfb32863bf163458fae3dde4e650df2657666ea62e4aef75c192b3e11025fe477dfcf0611d08c15d22a8a2fbd4af8ffb9475ed473c979e8362204a4d7caf64cc0c99b3e426a8c20578b21491e49b6a98d5fa352156f567e23748dc2ba3ab4eb43a99e1be8bfd469f97a630e67f6678d9156e14862693790b87f2624d029c389c6ff17771a0473142b88481a72d69f2ebe14723154765b9788de5910a047c326b2973c1cf435713376a64e31ef01036828d05f479cf9765cc888e1a75d3ee4aea067772017cfbd74d80f9cd59eee6d18d473c94eab6eaf9fe820839b9c3b0c71cebcd8740a526dab65420cbce3fd352fa64551becbf9272f7c425fcd0eea0bfa7ad926c919275a426f5a55900eff1f1518ab80cca6f683e9e5a924aa78a7faebf82f59db3cdb30fcf579bac2921d27f681bfaf61f2d6e0a7ec2c18a7d5a15f9d539853e5cd59acee1a016ad345150b8ec680d626a1dfc55adfc24421237a37ee3d5ea4a3b7ad911e1d121cdd471b674f60a94a4ff9faebb5b8aa651fc780f45a6698480e54c0d9143953958a9727f24cb2d8183fa218a09add94d72ebc49f6c61d2a26ce7d1b2513ebfd21cbac394f976bba28e3eacf978422d2f348ca0eff13b3b7264f6096b2cf5afcfc526ddbf91f35766ec773889590e30030c1f979a1345cd645707eebf74ac689af1fd21aae9566cffa33b11fe4515d52d0f218ee4db1acfbfc0d79a5902a397c2332371e3d08c1c9a549aa3a514bdc6bf178ae45f9c58f7f7d91bdc40d4cf01be2db9192d11e035ab9e38446642229b140a108c8bfd0833984690c1183415374cef725eac9f5ef9b3932f57b0a00d2848fd0bdf2466a1a9a88551b9327d65137160275c67566038de0c71f506afc80ddf705106e825549fd490c2fd20e4e8c9a6c836742a97a6191d6d61278e696e66629bc45909ad3198f5f83ce1fbb36af714797fc3b9cd767de4455de8b87a3f8fb19a9fd55e58c5574703f51bf81c69b499e31cb64f890155a21fe5730c98d598a4da8875918a228f6669d5e87593f5ce4ddaae542ee06fe941fd09e2eb695ff8c8e715ceb2be3457f19d74d57643a81ccfe163d63dd3050bb1dd0308f03a1f9cceed63b508149d0d5f924ab9282810f4a9f196784427f3f152200096fc3cc1291bdfa0ba841fb93699143e2f7961bc53f18a9f1ad1ac08660311d65a65389fd0974339466ea3949e99bb5221de25f18482ed6f70db56da0bf7e8b8f576e836f1a1a40e6178dfca7c90538bb1c6d440abce67a09c50d6d361fa556faf02387c4e1f25db7337b4947dea254601ecdc06cc5cee7ccc9ae43a920361c61f778e9d9c678579bf851d26ef8674b509287bb4543b5018e3c296b432ac97a99b307550bbb3cdb0885266bfbb82ec1444ccd73d042039830da320b45e83a41534c96487948c34154efe070803d4d2ed2d862cab6536faa05794f72b45b0328421bc1c799e4395d75c67b19acff3daec2f727154c3dedf9063912983c1837a4f68cf72ec8166d5155bba498bd4beaab4f42dda83c1bdb91f97bbc61f38558837d51c94fa2e00b81fe86bec8ade4462f2e4bc554557c61db79ee92729b433f4cd22997af709afabed5cd50e577a708d2a1ab55887de763ac18f37382e30050c97867fd371cb51779d4241bb2703cad3c5854836dbee3057146e6bf1ebb28cd8bd598036087b315bf16f9c4b07ed6f54851985a38aed5ea4494db399e0397b5d07450a67ece928d6591735028554bac6f3a2de0e91291b2a3c805785255f2c5c1bce0eebfd75a07cfcf0f9e6c6969d1577052792eaa9002faf003ba55038df252a96bd29df90c144d867fe63fa3174885497e72cfe2cc08f5cee118fa328f5c0e6bdd675f2c18e2781e0c32da548b497141e323bf1ef7e182868a6d2ad2db607d430917014ca21631b619e39c1ecf919f0c11527dae8e95eab8069bef4ffb35ccf49b0ef40a216f0fe58825961158fa732dd51c8ba13dd6423b21b98107226d75677edea2f2ae7b101f9d76bcaf38288a0a9060353418831e4b69a77d8cd984eae0332e996af3ca11aecefa80f5815c87b84314919a4ec1e29dc1f1b50778253395d8783e85891583c70ca14956beafa629dbf663a3e9b201d1ce329e6240f7e3afca998d4ca3ee3e22bf0b45efa39e8afea5c753be0301e383a3865d03d5ca267971e06914d0b7ded891692be966ed2f47767a35cb315b19812007aaf4322d4662931db8633e48b0515c04594967e4498afc565292e0bd014f4518f2d9db35a71c428138e731089ef1e1a2f5075979322516c4e7af0a3661dfca06e92d233da95d0963e9501007239342910e5ce89e5e446c5d212110e8423116640f952b37295cf20eadd639a3957e97f0f9588a344cea4e824dda2ad56da81ec9bb9f869b9baa92ea8df22cbcdcd9a9eedaa8912e81ce6885618eb8361713d8053d235708b96a5771eb3b638dc3db868359343a328933ac84d1dea9f89bb7ae9d255fb46befa8cebf770b122f2b957ab5e601805411a920bc10c9083ec45dfb309cb6b9fead3d78f2a4ce1dbeaa70f512a8ba454f2507c490399c162057444a37e5ad8cf6d27d7f1c18dc327beadc6fe30bc36ee9c6c13f2e6a324b9338f2f9a01ea0dc58a66cd57993ab6685749a2cf429a108b13c9b8aad453c0a4d33810f8f0eb742e0174f9db396cfc1541955b645cdf3b56fab90b74ece6bce04258ad982f67b46249e7e61bfef1d55386d2f1aba593729efb2b9be1ac26cc68f509fb5e89602ea1073a4ef51fade8c038b686744bae4bc3b6276e4e0f1b95c9217e65593220a876655c5c9618a88c97ee2ed6ba2eff928d132c16520633fa4d89c7f61745f0d02a4a434e963ab73c748132742f5a9237edace77a8e1a5424aa8bd7aa11eddcfb9817b7fa05c2301126e2c8e144d97a7d4128002f2316e94435e36cfa10e2a8964314a63d1ef0d654c9570843b994cbbe2a10bcbd18d053b8a3d9935c1735ccc9b3dd52421b65f343c6155fc492b2cd981b2db9d0094eae56e8e98068a94059b1728fd76d10a8147bf479cfb72d1b9522acb9f5a8849cbdc523edd88ed34244b6eaf854bf9655c8b683d84c06b72400bd3941adabc9adf426669109fe985e9ad1319e45d61097d3e4d3efbe718ae8663465163fa3c433388e26b22bdc60eaf298239192bcb6da785e7970cbc94a803df50b3da7558cb2c36de58c7ed9e3226692aa19c579755bfbac08f52b6e7198cf8325b75f474c6dceaa0f331ff497cb2147dd20ddeef7acb894f66c3d31908575e8fc76aa85e658a11d9556002430c1b15df93a2894ac427815901f684aa542fa6ebd24cf3c82f5767980bb304da512eee38e61da5403471227ddb5350e4c28d189d9e67f145368bdeb96b8dda3ae13677ef1c1d3a8bb91b2d2529780e6f8d6914a6056175e49919906ecd3e0c8995e924562c8777e8aefb10e3383bc78b8d17a0627668a668984338c358b956165c5aa1ca8a820d93ac30cf79fe72604a32ba28260d882a7337eb4917f92e1997254fc11e4c86fde7bc61c7bbb4eaf2cce02718707bbdc50a456714873fce93ec311b133386642ab4e3ebadcacad1c8051958442351f1cdbaa8fdfb62e57008b464654ba97b52be1e4c2f227084facf40097801daef302e94ea7a4c6bc71987887ffd6af2e0a53a4c863064f3a29ef87342116a1f1ad20276df20d7b55365d8c8bedc09f8c4e63f82ca74afd18bec0dde7c740775f9f4ce3e85aeba2bf6851980be77f865de6193afe653c38bd11981e6dae366cf47918e7c6dc96f2a484d9bc8f7d3367e9794b9297e292339bcad2adb25c4cc5ac74058316f9ec30b8a2174111781cda79ac83698e50b406610265097e0c28f8c31d7e7657a10ea7d4528d1dafe6107df8ef52813b3e62984786b942f7fcdd226a55868389fc89ac6226850e61eb698a73fe44058d1bf6a4de25a779f8f0a764eefad1456de91255103eb0082337a7d68969ff6999aca05101eef4744b6c2af07191e24428017244779485939d560bed33142930f8121523cf47b16c86ff182b4ced7d941513991d01fc50cce81a8c417ead90e7035c96502e37c89c8b95fa199b8382d5e11cb9a6e3ef11abcfd451f5c6f2b17e938f5c367c1f249dff41c2dfc06f914d4cea6cb22eac821e98b9c2ae41d2042cb482cb878cbbb56ebee8848bca122be0f0c30df7902a8c3e7674424bf722274da9344e1135646cfd69e799f6654d3faaa5ce5524226c7c989feaa7cfefd227278af6bab5360132f60bdcbd0db8367eb9c6bb4a5476b4e5980fb7d93159705468fb205197735084f235c20ea7377dc6fcc7da071645f5f5b1b3e0adbeea2fd92901362628a7243d3095068588596001bbd5e95651769f4e14498d2031d6eee4119fb0661bafe98c5a0583f1f936060bca5c7a3e1be469d14760f026e6668b11f1161c51b436f056238b3b571e4e46a750b09aab5d3da77a277399f43574e13c342134ac8679dae945f302294c993ac6f38eae7cc274b72ffc19d26c7eeeb3a206030911c01e5e518591586882b18ed1476f9d1a816db24dea2f1257d6ba84b0f1d8ff9ebf977f735b53345be29d88fd02b2fffc91bd8cd4dc4bd15f25b0feaa001b55e4e1d23e93e3f23ec62c6ae1b14d9d1b4d016ef7639e5ea515777dcb83b8e2c85ce392f73b80b27fe5b11d19734d38834bc18a832afd69c89ef827f8d9a2d430c7f28a7540d2dbc00c741207ad7bc67331963695d08625215c6433c50a3b341233b4d4bb46d94508e289289522e77431eea1d4d4ebd424f41b1e1b7442a87804bdd797d2d2add6fcc669f46296e17def2ad09fdc3a39058f2e74206bce0eb970b7d6377694eb0e58b77c6dfb77071f93c5bda1f744a14bca2b31a894290e42d419972696a375557b1bae2fc608f87ce792624c0e732959ec03d5125e81977c73b7032a4097683f86ae98c5cd121f6226b3edec40a9a47c05868d7b48c0a6dc8018ba12b92ee801d45f00062834553d115527b723351b3cbc50ef7e9c2b9649ae94ccaa20ae839d60acc1a1130318f1db769b233000eb3a498c20a2126f3c9c07da68744c166abf67abde205c2b604ac1bad0a1a0a65bfda81856c09ebb211d11fe6b6305088870d500241c67089f5372fcfc9d55c45d607efb4e089f8876b582ea38f65cc25d7bf67d07058e48206ef62a84dbafc535cf212cf9b97f3b673a803b8592b1cf63a452ded4a1039819bd4726ca702c725f5334ea2505e88457b39caf363d1581486c5cbcaa05d972b476907d15088178b67f42201515826059d0576d28ed251071d44e1e8b349d5d1255d9498b4f14be201990c8053ba526371ca5b8f9938ed7e7c8838ba6689d604d37bf489e9f46edc5400fd9c59ca624365a327f891c9f44ea8b6bc746129b6d528d528111b66bde49b71041ca1352a976d067bd0178a7eb4f0fd5aa7dae7399fa9b5470b2f701502b2283c4184318d8d351fdd07d251af6572104e851649a970744b34f323f7304591ec23a43e53f9a60344dad366b230fb2ac876eca799246e230d3ed4927be2303a4a9f2cafa2ad025fe7c3fcfe9b89aad9f6084d255dac7c16cdb73edba71b7187a6eb1979f813dba33f74dbaa900510129fe64b7719d7d29c7875784dd3d6fa95df3a70d992621aea02cc6d7aae68e6a9864bd0f299d351a37b67f81e575e16a93e50dd3dc6a9eadfa9fc992a723073675725c1b922adb7bb60b70d5db3cef5ae468ac394b3873412cfa765a9a86aebb0f8e8707d1324351028e11f229bc71da6d70b6b99db5cf18f111969cac7ced63c36d655f2fabd2f246fdc86d4a35fb6c62e5d9153ce16dba76f950d942ed834e1f457901190669ac5ab1cce96660b6674eadf41668288880458a2ded22beca7ec70e7f6e937ea733a2cf034375f29cea0dd5a836ee77f63633174d59308f9147bab17b85237c19c13cce48e3ba3dac28c4cead4feb6eae007acad93df85aeeb6ba652a7499f503f65c9194fc7665b1ea47e2c2fcf1a1f229411744eae05ed6518ed6536d7c76c512e0ca3573d57a2333ac35f7815aed8e28f9a5d0db89790c1b1f3f6e67bfae1123afeca75210eec58b90c941b7104ff332ba5c623939352c45138fe6de53293ada0675f284184c83ddf9277d62c6c9b31c21e0d97fb874786dcc07dadf58e4bc13fcd8d1930c0a3753601622664e8be6990f46c5948d9107c427800693837a23e41414055bf0bcb81b59855354f35ba0e5d43b212abfa1cf27807935168c2372a646e07e7ddcbd4ab729451d48df5fc79e441521fd248d12b43da8f1a1380a7b71281c0c86daba7fa28a9a36b2364d8e68c6a1ff9421fb50e323f59bbca1868309853bb5ae80542fe8a18cde8cf7b1150750fd7a4dad85032c714b089d96a4c7e34f19737968d3c13abccb6abc544f3f2f4d3600114210507960e895c52a12e1f5959f6d059943fd14f5fc313f0de30e26621a1bfd968d5f812809529a4c9b7cca7a4b1629779bbf604618bd090d719e5f78990335eb8bcb4af6cdd1338c2281f8bfbc40e44b089ece4d557575eb10b87534e639a499966fc407bd386355e46b0d219279a4bee3e29e4d41bb1dd12476b1be8f9327c88beacdc37c94879e2a862f99cbbf78260b107f9491528d0cacb3833a2abe9887b9f5140b9d5049251dc0a7c478893fca71c202ff11124ec49ad82cdba1760c5662f388993facdc78e0513a8dc5d3330b8ff027e67551c9fd40a4dd78b081491cd57a95c2e5f3ca7bba7871acb67f30ac08966bed738b4324b9239230acc3862753b6dd7ca127520d9d14048853458c7a58d41eeea83e6afefbc51e96dae65d817d62a3cc43f0ea27adee1a023bf1f82781dbf7df12c9c57fc02fd81db42ca3ce1268bb9d475ae29a5fa00d0e342b3a1e8390569a03f3b72fbafaa84e2a74418b499a14e579da58776989cd9764881133d21233484ca2619e7d282b687a56367560ff1776a07cf40954fd0639e40b7006daa71b592226a52864f306048f6d993006eafb83e2d78d54fd63869208e41455dc15772675d00bd72c66f28a8119a76ee93260595f7994d0dba1892c70c38d3036b43c1425dc81ff5d609778e376548f45a0ecfff723a3fcb081b9f433dbd229eea6bb098f3d82f26ee1b4fba293cbc70b4cd9b1a1f18696de15c614086b4b4439e8aee30b19c54504a57fd28200a288b4f77fe8cea87846b9e969cfdcb63c6805c949bb642e9575bfab5519973696df1fa49fd0a4a3ba2b7baa85b919e8ab016bc1a596401cce502c9dbd71cd848edc9ca1f858d79f2123e0afa4a2256c623d86cbac85da5de72c04f79e5a7a0d3fdfb68242e01326d930777a14a302167a85327812d43875c2df9e22e9fa250df25c25bb41baea92fcbaa2562965e3e76d0434bb09a7f53dbafb4c160745075016e6115462c3196c1e8ec08ae635f5b8cf915e0a8e3765235721b048a47aee1d94b3a63f6efcfd4dc91065df1f9d4275fb3ee834e4b46214e8a030f5b2deb17f3ec876ef352045536d66c418dba2b590caea5053fca67a50cc63a5dabd1b897c998cd93de964f7546875b34fded14e526efb6b139b02ac0ba8630e5aefd61809f5243e7cb34a8e3b34d27a4a5c29fbb1691e817f2a37e6f048804686994e4c932bfaff0ac6e1b04a0498cd268cf119eb58a78c99dd255bddd27425163b79f03541e6e0166a307d951f58a55e4c8e6586848fe35b2249eb69bbb6a7bd2bd6774ced0a596b59bba9267a7433de580cfa9fc95a5c26cff1211ed85ff33d2ab5cfdc42cc78c5a0410151a8b10621c8039612ef43a225bc006d99542410da9a1ea0a8e1ab304c88cc39be9f1bb0b529eb596a9a2c19d5e77690df9946fa527d09c18b84b315be4c20bfff7d3036f7104cee4bfeb51d7d7864ecd32c1429159a3b42f5590c1cbbe59e65714143d6a3edd4c62a66b145d32b2291ae3f19d77ac0c3b1f810ec0fd7a3e6d402e4ec960335788e46ad25a23f5ce88194892d6bfd1111223403916be26b89ed0e5ad9763cdadd00f591c3edb0cc3f53290013aeded2f9c05969b2a43152d5fa25b977916d754c3447c6a9c05d4816c4ad99a56502f2f31d69d1cf8c89f1302e1de74b6ba4e5ff125f3d6a8b6787e393019a7296fe3bce4f97dc848294f1b907c09f8a501686b4ce72b4633fe12b78b77fcf2c377e6fd23634abb2b143faf1925033daa4e8df9472eeaeb8483217756f7dc2a97626fc8d70647ee2903fdb3eac714232364c81c929bf3e20c5ee5088253d08ad55094bd70082225d931c8958d90723b5b74014a726db1444ee3d646c634f84ddd27b1f7d4b1609f924c172811dc155f700f5d12299867c8b49f7d5fc541ee5ebb282794b2a4e0fe616e5b83afff1965d8ec42770e98ef9a674ce2705bcab9ad308860f36ec55494cdab08c08ce3405a2e3f48b655da35bfb7ae6b87a7855295a9ab71057fa75b12d1a615729d27a454439de6331cef98acc92b38e9f06f215986d1eda4970f1679aa9d4e0971d942374d32a9acdad409733f142eeeba59f37f174693f1fde82e3a3a4e689c0446cf3f6932a8e2d295e8a6ce9a48106ae2c88f583419415d7338d6b0d02c09b155fc46af3b7476ab84a304928da23c525920e0316dc637704c08ae1e8e9ab3fcf3de2722f2d65d6ed6989f9a0e181560ff9dbc3d4956ce2ab9ffac5c60facaccc1cf3bce6789c17b4801838d35817491a0d5c2f73ceb7457d8e633fbed351af7b122c820bf32fd77194fff63b61c8ad1eb558f56d3f4455beb74676aa0d870368d52b3ff17d0d3c9f9c101627579d7e07acf7a4f7676b05fb0f640b044b13ababaef1cfe56d32150dde11bc5ec4f01717b24aed42b9896fda17ac9037f67759a680b719f43abe6b5f14f6bc331f1625cb2f1b3f964f683e51a93731e499af2104679013b2775d581e67c31277f7f857b8a37e4210e4c52dc103642b9159993946f174c87ca58d1a12d4650cac6f4d026b98bf8734093fee0bc29e089f3aaa008e6d55e002d55c5e5fd1693737034b31a5f65c8b652578ea44f00b8ad0d0cc89be49ba252660d4ad8158736a74b050e4b5678c0c850b721c793bd07a31a2055b5c4213d8655e526cbd2129347f70b12dcb4d46d1ec88e69d3477eff82cae23a80e0bd7a4b68fe3ce2e2621bc240eda11de687ab5b888c2ee126e359ee3f802dae8112b596cfe6d92982e25892f0b61b76f2951d2a0f6ce129a7733e76c62f52b60060baa9097a5a20e8be859d8b290820f19bc45afbe3fa62599f913ad54f748396303d615c139263aa8d274b96e32905d13f9696a84bfb341fd123d8d9a9fc2114afb126b84611d4b4e30fdc865112fc72be0b6f40446f35bef64a1dac4e194b39dae41a052b92c365b6bee3dbe72862653357bfb0bccd9a9b1f7cb6a83d67bddf116adefd92b71a11e8b38377787e4df86ba9f4dcb792ab79c0fbd5741b0f4ccaa3d96f830a14121ebd58dbcd2c6e434d9a946a618a4b775df963401735f1ca12e655368d7a212338aa87a7d8cfe45af868661f7794a2706692b8f9d27f060b800b291b261d25ce33511d8a4d7cee55d2a0530d783ac795a5ddeef158fe9891c7f62e101904623c5521a3b50325bf04783afacc6a95244748b0f57b8d8a6daf0f98c62df208ea9540e52e347e3f33d38be9475d9fc89b6b56f6e6d3ace9da52a842512648d2153bdd5855b0de25ae5a435ce330c40b53c8fb8033a6a260ce534c2c44e237e15d4df645657ba145522d51ea1a280f16d059f816b566c8cb888d77229ba2c5c810eeb061a4d33033162625e605a68b7db64973aa66e7f263dce53ce184811f1c2eed3d30426975fc81175cca174660abbb6ef6576c38ad4f2b24412cdcdb2eb4553b9ed9d5102392333f371b79b593d8fb8929f86bb9ef30fc103b5d0df1f5d81cd7ff6da3db205807abf14b89cdd1415bdee9481a22c5a546f06fc08d33d9c9027594b56b7feae87337fcee15184bc46e91a59160aa02cecf28f77befee9e97ad8c1ed93d3c861a6f93b59669d6d7d823987afe97dbb1796c6765684b6dfa182235dc0be2d0dd405d4075501ed2a0d054c2c0a4b618e17e475781cbfb9f8df0813bbf2d1230678d92ecc0f90702ea94804fc7ecd5018fb1a25908a18bb08ad66ed43be82f5e9bc1975bbe39d56d0e5a69a588b8fd2e91fef78743f2c7f585a16df110d11a899cd72b49b46dee369c74ec6b6a6beb7fabc1770e630ab5b18a1277b3d334bbfb7c7f96b3f00493fd76709713132e9ff4b97f662adebf7a4e38f1e7002c7c06a72cb7efe00dfcf48bfbc2ab734074669f3f62d3c92129167bddf12e4c5cb14ea097f1fb14688a3bc62ad901f7467dc4899427aeec6f98ddca64e3e45feda1c46fd682a82e73374ddd7b01f761f276759bf047b24bddeed3e0205da5b42b217041d3d8dca42f2809f951b0824c3f951e16eae380467fca23afde67e390c0d1742dc6e69f9f8ed44a59e78f6dfbcfb38040d80130cab230b6c0ca0cb5028e80d9045051da546b2188cabaaca55c92c6004eef134eac769426848afa0943cf041e3368bf597f61ac2cb5185485105b5e04feadec8bd3d93c2c592edbffda0dc21fc46f9a9cb390a1814536138c148c2b874e560f9c00f8941115fd4c7af53a54f57a913c54333a0af15f5ffd29d3fffeea0d0a6e18f0099e88c55c1d421ee51a41be9c132d1f3c88498a23e5ca9ead126ee3d82148159f25c7825a9daa915eb1717d7d3554c8625c3df1fb70abbb4d424e84d3fc4bb4590a86b6fd59b6eae6937bc23424a96767032a61e371acb8f4e77a9590038ae25181375e3ac5532a63b6b2c3f9491963daf8ed34b8aa0786d210e1812fa21fd12afd12b7b231a3a1ba867e077455fe39c3957bdb764dd5fcd57ae3a47fbc6afaab8e574dd956274d1b04526b82586cbc2f2263194f0f00a36c87b58372ee4cf02ce0a1fb1f1238b7d91d78438c9dbd176e6e2ac352da9ad721d3f7076f395d81499924d18d4138dae679cfac79cba8be195df70eb31f130212b72cf4982b54214f4d382843922feeebcf87655f2825f3a25af5bed4110423dea527a1df49b2c908b926e90f00f68e0b7e816ccab169d1154a23df856b904228d44a6dd5c58dc4d6f53f37ea1b718a917ddad18064093baf15cb2737528e3dbfa0e3d70b114325917f85e5d6c3a59c6b37b8a324862eed10c77fd3664b09e1bab37b2de1e52943619af4e577b9dc5971b505740aa528d81175a8c0a9cfd5cfb2b9927ccd0e2fdffaf5e4601fd9cd0c943c828ffcdb1032f79030f16d3cce41d47ad3bac820a798b0f70925c9a68ce305f415bc3508fe07dca8a0854f54e79b6e978034222afa1736554b90f34d2b3d432b142d7abc986b0a3a65ba645819bf4e7e49558af86e0f90aba3cb421ae7c68effd2e4060d11fd177368e78a39303be457b2cde7389245392f037aa5c19794f3c412f0bfd52e8212deafe82735d53f02bf75a0f748b87ab96749807069bb0d9d115eb6e5a073d245e751c747d73658db4841d6838a721ede60e743863a4907a4446d2bdf321eb69be23cf2290f8b6d9928431f3eeedd3dd62260414c47b387613d3d7858e8959c3059b7cff209f6e636947e9299eb6c13d4c04e8773367fd3f6bb592abafe82cf024e4e510fefa102831beebd7c227f999523a4adb1ef7eab84652868523004e58f48af8a410ee60415598727ff603159b66cfd8867de090b8e3ff9d7a9d5bf0806ac20738b0f471338c223278b8c238a27eaf09c3e33b7a5f46f72aa7ab7542a6a62351c7185b2f9a3eb4b7ee1cbcbaaf98c70fe6485864c3f4b3d6708d805a096cd029a2067830ef5f6006edca1ddfdd6c206f68fb0685666693ba1b2b1a6c296d65432948ac1f27e4847a77f5c5c34176c57c610dbbf715d74a0e803367c541f87c6a08cc2933333fa24022f1824c4f98de561780b65ec83b0ce724eafcd8777bcda49ae867b06c380623b184efdb6d3bb1e2847ecf8d5d3579115f6d8f88bd5de74f06fb09dae00c88d767b1340f9793526c4ea82bdc936f2d5b045ba20eaa33f0440c8aa5a953250373053d152364ee5d74d7f6eb9410cf810db4d67a51b29526ece0445e14ffbb2aaba00019b12a5c065e524a2df52c20a76a04e6ab34c6cede5abedb4cda417379ca409f3677317bf228e34a00faee3d9dcfda6715b44d08fcc677ee4a58b145ece5028ff47fd0faf0b40ea4d9bd7a5c086796117fecc9199fb8554dd1cf6dc61883395c22c5b0f7d7f735ad7a9a5e4677a51411a1d8db64f647fc40685a0c928745bba2b4c022ab50f60f9f0f33cdd82bac7f3cff91fd4d185ddf3f9cbc544f8ccff6ed727f9be5f5b9595a515b927d8c93e39b041cc89db5e22bd853ee3442e02d07929d7036286320e7b9b291d91972232a070a8842bdf850b0b122218f6cf72d0726af8a93cc9b5657eb9a70b41c65427c20515f50bb2e841fdf4c17255ec2e884c9a9900fcdcf25adbc65cff47c05c96f680c4f55f362c64cfee1b068861bfb83f5150474931a00fc8a68621dc81cbe51a3bea63efdc8b566cfc29ea7948fd1d32d39e8d16520b7946131f215fab1c0c5e7d1f4cd4e117fcecf8650283927e19e43c6f587cb048ed95f35ee28358df708e6d24200546e80093396e0364272d1086db8711e326a60df7b458db4ea80ef2ef9cbf6f399d785a8b5c7d3c032ad7ecfb0ef08dc60e37085565919c099fd954e1651d5ddb15f0cff2a3c2b666f90f1e689a29c2f4a466c2d885369ef0adc0f1780a0c1150c2079a7c40439b8879ed7c8e67eb673cb99cdc5fc0735571dcef1b10f397c5a3460272ffa2fad24688a5aa365199e1cd08477ad6609a86ed3ba7bc4e0dd8ee0b5a6598f0013d027f94da964853d330e5a94f12eeb3e1eaceeac59008930581e0d36da6d208470c3317cf24d9bc2e277307f0170318ce01c4f3a05a822fd87083d17193444e3f487d3c4396e346cd19d331bddc283f6c868136b186b9e95b264061660e70679ec9d101072d4acd46194eb193a231b59e4450e8651036096f70572a311dcf2f94fa077f82dd5e7a507543b763e1fb07980bcbf630b8905d67ed446b9bfbfe6da727931023c2528d26575b56810263f7328e58a214a935945d4796ea5b3c6aafdd11344e9695334b8bd7d056ade9d64b25936552046baadb2dd6731d8cdd85366dc7965156e64db378a259a5f6a42f68480138ed76f517470257947319c3b4c427dbc49c1dd02b953027ff625080fd11fba633c77c2b8c5bd8f25574164df5145ba100b80b0299223552ea24f3d0c09408394341056d40cace2158748ac7561d94e99379ef1b8ace56e8b5bea91c5e1fabeb7264bf3dfdc863d2caaf25dd0df9772aa207591ba7dc074b6e024d4afc47213f69b591bdacc1c31d2ce31a7736e6776783f373b0cd50dd1360313da13208cbf09dcc76db806de94870fb377a60a103b11ad0b2e2c622935bd1f25ab61fb381f725a09ae68bab24b43ddea468988f12fa74ae25f37a2ca9565e5ec73a83b0f8f785f9167b81f3d2a242b7dbe2a915fbe05fed3eb30968f07987f4b2fa6ec1776e3f379b2be6e9c8290f77ef41ddb5f40c7fc8560c0ae9ca4ba22d4c34d8493ffc13948351c79e3cfd7b8982d5080efa18f0bc6c19448673973a065d8cb0ae17b24c16b2fe521bbe6ce3f302dce10e89ecbac72cee5d9908c19e72a472744ee4fe0cc25db2e69ea3668d86e85f2ef8f50cb234cb8d630df0041e5e9daf8c04c5ec6a511299cf38f5c2a2b7d689c60eaf1c45bbc50472d8c4560b684f360e7de0bb53aca8d024bef9445ba138e5bf38edb7217df7b51688fca7731c4d0e21f0e01c44ba3c46c2ab323d14e4ef55b60416f055c14f7b3eb6a46782d7b797abb0699dcda3bd55b8a7f87238826db60e53674725144a1d1c77defea181ef74f4c3d31685def410086f9b204961424ac25c7980cec7745e963426a6db29148d0171a6ca7930d093b634a981d8d42ac939ad3b6756bdb656ea2b251ff96ac4bd4df20d0ac2e1c32fc0e8b494fa5f86f99c5606af73a47c6ddc3c07b11f41dae96764b4da0ca7fe718e5788edd358a609dae418d2f8530cd3b0678d300e05f47818d8dfed9d3d33fff9d8d892d4b78fbf9de7ed4857764656f5db677f36db6b90770264e28bb24abb35efe892ca2a10fe1c30babc0e7acc77e7798aaf0c5497c47cb086083435d05accfc09ead2a7e2a47c437983d552405971da67084e1541f8747c30225efdcf7db93603fd3654061dc06cec9a48ac0cd8bd70fb799002575c6c6a07fa6c576dba539a0ed377bfdea6beef1e39553c65f1afdffbe7da88cd4d788a6375179a9cd894cd71229ca333161df3263e500a30017989434a8502d9651cf58baaa5435192c2f46863c76bc9d4f3793f8d0efd7c1a3cd71009435031771fee1271a9adfcc3f29cdc75f64c8b4cdd4b144b622594ebfcaf209e7900e74dafa8f75c06a162de80cd84dc6bd324b63077891ad99b295b0cc68d51babd134eb97ece194fe512a2620f673e691cb2cba7a0171216f7eec0a0d10e5d20cf279a39301e87bb3c1857439729c85085cb934cca388f3a9b2b02e61b07593a6a444344f6e79428bc647f2d253794ce20ca5c0f760bb6d4ac51451b86beb26f27e78f5261e51e8b622a6b659f7c8324e15aa5aa3f509fde6b017f9a482ebc1300ea5e51f5e5b2ac854930bdd3ad8d352359a6147462818ebfe1de2afa741c8b46345710ca054fbb36eb694ac47518c7c5f7f9e534de5bb48b4b8bfea3353bb57c21899fd7fe790cb48005768d9cc307295b57a047e86878b4ef29923714e5bb0efaf4272aa29cd1afb7857c45b155dc9e12aa28eb63e006033d8443d888664cff2bf056cc5b077b420fdb72f422a625f073eb1caf64ba8f07a8fdf21f4426052438faaad298d6e1e68a9406ab7a1e61853a8cf746f182b28e3d44109fd5989cf285adf5f3336b1a66c13de4e940401557ffc007d5211260660eb691b11d9aa21f5d4f05d5438d2093433803f0fd5f58caf8bb39a66fc585c6a5466d4d2ccab0663c4b9c54834068302433566c7b4b95db80c63403feae9ede6debf935d0cec546186b27f63b78fb3020fe8d4feba478a0fee1684910b31e4f4e1e27374d0a9d3b65547fcd9bdddff6750cc3631c2bae4ea9afa051fee74e06567aba391e9b26f147933a62fd05060874899f72f7290eeb95d81f2d1006201ff81a88a5c5acc19524dca568ceaafca920727a7c7bd62da2c2a3ed17af6bb6f27292448603a9f8b16bdf23f03e8f3f2b93877cd2eff810d9f1c6b7df236b9d7a013594bfb9daa2b985efad7fa3229ccb8a67a9841171148c95c85475be9b4fedd6f5bded921a138a7775dfcc7962a13cc4227f851520b717ba4b9b378c3ecb9a50afdfd6b1e4449f4a960e122e6cb90f595dab2fe8ce27bc3142e274fc2224ce83c4adea02be55f51568c6f1d7581d8ce4cd8d5500553ead6dc306f18dcbaa513cab17e23324e5f24e7f77b3f9995c666acb0018a438375929ba7e5c62aeb17bc7fd6ffb29bfb3c749f22bcfe99b067eef10c1be96277c67aecfb3b3b7932d8511ccfecaf09db7914e4d495af494a0ee82fdf73de02a830896bb8b43c00bc134ccc41c7d4a7a5035c511f571efa3e4d592f174de8085066d0b79e271ecdd20f75c19fe6c1dde9f81000ebc4e9352f07b6b67c3b6237e524cb248c3922be35557b19c665b8968cf12b7cf6314614c771e32e33ec4e7d8efac28bc6a60085d71761a73d326447af56bc8af2220bab4fca1b16757d807f8b57c6407724fa79d3cef3972588bb41019e60be35fe6892e9a3a17eabe01a125140d8c5ea5e04ee5a157f0ce58a29f49af8722e106a40976a110ce63998aa397121962af69aaef15a126a8e4b1b80b3ec37bbe78d74386cff5e03c6def15d42e24afe62b8a973c2468441d4946146817e83849ed8bca2c6a6b31036af2403029ea2110ecc6ab29c6ce4bc07ff693d2b849eeaef5b83696640667d513fc790ec42a8281e0a0af848d5584efaa62f9e26f8d8a01a5c377507c7387f6b0be5d41b3093e554928814e62957e28a6bcab74230a72b20a34cb8d62ae4f76099f59c24a2d30b9e3a63009f29798f2e7e6615bb8b113ce359ca8bde54a5846e7afbaaa113aa262d248f301bd129b0eeee0f02ddb349ddc158abd5023d639096fddd0ab4bb1baeb2b95558ff601a7b44356cd837ca63e422aa97140515c1f53e628bab488a74e1c10ba7f9925c626fabe1671bbdc05d56b448138044d1aa5b6a4b06338b5c89bb118f288a94e0d24ad04726e1cf476b3a8d486490d66d0048d3762a27fd8b3b67b5494fb9d93605a00f5dea0a6544e9e5ef131d40f295f6fc5b582571665a81082bdcc800fa2a32635a348de68878777afc7fea58c6a7f303cac3abf17bc2a5ebe770e3226541367c7f16cf5032a217ccef13c9cdfc0114de64bb98a30d18cdd96095a76d67a243ee8a78e83f3fcb66f0d5b882fd03d4dc681dda680a9e86b7de91655273cbf5e61454fe4619885f39901224322ae465b3276b95cd57e3115b0c067e78ae38003853deb4e6c8f6c3ef3c3b85d0d9ad4cad798897f6a491af1f5fd1d0f2a04e9ef1487a04586ba53129c8956769581e1cc1da4dbccc9665914604b823388b55970a3a56e2d62f9dbf05f5f25c525ffe454c7a93c11b6cf31c5e221d4e99e18a43f6b69e4a12fb24d46374f29b6aee43ed78301285b58a382deda0d285448111940b78bbac325015ddd9bfafa838c85f6f1ca7087cd2c91606ca796b56823caeb0753c62ffced06c3927307ec2e559f978cca4dbe797078416aea323e676ea5f196d4ea9da98a53129d50d870b18dbe43c765e3c64a2113c11f5b1acc08c5bed01984d7d3db8381914594b69fb19dbb0100790feb5c03d05fabed0cce15a6d4f5c0ff7a5cc9d94948c07c0af89b5d19b3d013d71f85fc042065a7fa421366db414ccc0196570d1bbed7e25a6e3d56c56ed8d2660d6042d8d90fef19b13bd6200d73793fe8c28bb6295efdf874f42c70d4c05ce4c613643f023eb2af49b13f91285c451674e00e421a81a57235de3e35277ab96a0db856bcc785808910f9fe5ceadff718e26c57b4b22d2c64e0b7a356a0799b5c3a5e8a9f52865a435a9353b88fb9261890202c7aa4752e24945cd8a8a3b7f38bc2a2bb4e810501b0b073993a3fa39b4a563ac15282ba1409349f5275a1f15a943b3322ddb4467ba5d79c77b44e5152f3ada19ed5a69300cc3d2cc6a84c48e997f790c7c0f9ee3aeefecbc7cff6161c0c06413f19aa65a9ea2b6227f552bd42126d594c536f0753e1da74cdec796cd0f3938f539b09f9a0fcdd079712b40777862cdf83fd5f833e88d9bc82018ab3973b0b7c8822c7b75b152535534e8a22f750b79c1dcdb489bccba287425f50044d0d339772e300f1547673552af136f146b8e492d3c1a7bbee0e42e5c29a3413f4705c401cae143894143371dcbc133cbe02d37a7ce9dbf5237c83d10f2660ce379ac1c492941432a0611930fb01ea3b93d52cc181944bf293f1133eb076740623dd59e592073e9ffc1d3a5dbb41c07342842d730056fbcbb7678d3125875160568ecee93ad83942dea7f78647cdea8638758c0c3e99176112d3c936c9b1792d0f510a321740d4fbeb9facb423e894267ec5039b38f7aed19151a1b74bc2df844b413eb43a86d255e91b7eec5a082c383437f8942dccdcda1fb9b1e20f9dd81235fb9bac8a87302745ab4ba05e948ebf5ae853fea04fff35d22ddb355ba0ad3fdb93358d5d8b56ff1c0c1ee52807becd4970b3dc459010f38432551975be53e3ce63d543b70fc93087986d0d93709e66a44ac68a08906ef47eaf1c707e6f99a80966407df3ab224483a9b43376129d237f0718ed096fb64c25f4e7a1721b71db0f2f4dc92ca4be7e9d4339ce58abd4f410480ebd1091e33fb2f57c1c9ef9207ed5abe8caaf0ac4c4789e9bd0b4b94435e35612e72fe95956a053a28e5990737562276f0764d7975e1f901bc9f2e31b3fe33b035d10927c443f0faa2f374c1ba6386bebe0fd7901fed6c67ff94f64bb040fc8cf40efecb842496c102c076f590b63630aeeb7ec53de068b56f5ddf59b7ddade016d7837ff8709bc3eb7e69f0d740a695077080085671d59195ab0ff66e3b86ef369f0c4f77d3af1839241074a445168ad0af94b4f5e93611cc487cb52f32b82f4b7467e498a560e2fe63af3630b3aba4e49c6b63fb964012dc0522bf48a6ee165d3579bd3bd20d66599a76dbca229b357cf27b2e501d776c778c6be59702ba561a5356b0c93518ccc870fbad1fd126bf8149d337719e2668cacec4a7f630d81c4dfb0199d89a1bfb62e04836a120f07ef883e4062c77c4b12afba164d42cb6aa295ef4e7009f9bcea47d56d48d989f35e36167768fa664b7a1c653f60b8640ac60b8cc40dc9d34b476457c1c8f7ec2fc2b27ef6c6215a4275e891168afff912b21924e0bd2da88ee8f1688369e4e8f0932d959f81e78ddd392a7f357fb46c93cb53daa3475938a570bf0d8ef4e797699cb898180b1789f6b9d5bf053d1311d5dad4bc839a446a315c56277f4098d442ea993d85ada076bfac798859f40b7d14893b19fbc22e126151ec73dafc465a593d9173586440d59d3d7f376c0fd00070e15130b658d68a0a162ecbba06060e88a51f79d879354cf63d58c1e6908cd4a2c76b2656609cf42b550bc47806360a7b030e3e6f61a5f18b4f0bdf41f2c71c418e3a2bc01a5ce8ad1d03e6c44a1db84c66636d10ddb1046b1c6d76d22bb36f9248417d6e0d85a4351d0f40ad52accc1217f00d97b1dfc0a2586c46a349b64fd9e8e06c203b6d4bb929fb2506575b8b479236081b2cd57362460e41cf848e8dfe2d0c484c5dd81bcefc42424f05f4c6258d9cacd02b4db9e8fe9ad048802d5c774e39ffb5f0fdef508ffa2542a122c5b93060a9811554018f3812978eaefb83d1d650c70adebe85dae4e0703bb44e952392768dbfa4b44dd52ed23772ca944a3c400a561bf5f7eb51128e512645a8c8505cd3a90ec9a7d09c3dd017ada3a5e83f1f54f175281e5471fd294be52a0b15646e51ae45adb415e42088486838cb237dc619628e493aff4c38edb3e2d5e5fb7f59e8ceeface5ca714a8cfb27a2af9990c0ba7b23170ee056457f5ece53dbd48c5b6122ef2ecfde4d02bbe2159beb64b3c06edc76767923e053da675c3b6a475976bfe15c5d99117e956b936f7e6df68bb9815a1892945c8dfa43688e9c96859f98e8cddedd5f78e00578486c924908398175089fefa0dd53fe413ad04a9c376d8fa8794291393bcd49d63ec382c7bd634721103f4ead71e4d642cb945d7339c5ada84e9139326288b2d5138562df20e6eb3488c344f9735b51c01dc7f328b3c87a473f5b12cd05e19fcabbe53ba3d1a89f388dff841d6bd4cfaa44617db464dd177fad4bdd9a746870ce67f4dc02e792b6c92a7fc626036e4a51e0bc61bd490fee057adb56467e429f686a403b5d7941c8581d4a32e06b8249a08db1708449a4b2811a769c24a09650cf9ae4e6093c41e7cd4fc4ef4b9ea6e01f18618331fa0680a452df80d6311b3748be66ae0d7f70ef1dca505a491b72467aa7462752da344aa260111e5b9bf8f42a9cf1b7eafc8d37609a5b89b141a3297d8a89c631cbb7c929f982ef32966a534e9fe07c944bf4390a2c876a0f328096a358d64f6fe4fa655ca935a4db0279563f735881949e7955749725031b8a11a584a88b8abb59f0cf8b81188e6262bc7ba487e167b600d1b8dc77f93644e02158abc9219674e770c2f476b023aed43a747bb84ff801c759275e47f0606ef42055a7f3f7ba225e8a5452bc5da1d2227563637fd29095f29a500acc12694bcdf7f37da04c5dc4d78ae591518e8e957f373233f8eb2a29545aa2affe9428b4410250702ae2cc79e87e04f3f69c51ed6e674ca33bd73f7053436df5c4836f849e864ff160e7d850aad820fcefbc26b01181bdccd396da08a38010b43090c794ff14e7299b1f303df058a24560cd164000425fbfe97dd74bc57b5c27f6a360cf620a1f6e0e798929130455a6df0dbbec06a5b6e76f4a0286df3a805cb9a8df9ce8f4a34955f3f1f744e8c0a9d2eefd59040bcb4b127b2b740c65a136110305f2ad5b7d7bb01833fc020d4d1672eb9de71a6afb1435e5607944eba3c5ede9508e19f15c6a6c195fb904a9dfc996792de6a11ac08c51aa1e9bb6b791d04fca3d673b68c49d5a7b261e7a0b79395c9872c8feaf3546f2fd506094e37762b5e300d11fe917049a3a5c8478fd71a04ded2fc4ae1f2e07a7ab47069fcd30018c90943d27ba3cc000f6658377c59b9053b03a9f5503315a7c5520cd33461a3a15fd9e585c48f368334612e7e22338bedf48b49d3f73b2ff1ac650a3c00cae779e2ada82a10ee3fb202273bd91d62c1f254aa61fdada831fb7e81f79d742b4fe9e79c3052d2ffb4ebc4d5ad9a40cf72902fd2e7641420bca43ec709a7895661633491260f6d1d752c360b2a4fe6983ef6103b6713f98091df67deb451fd4308bf5316e99c0ef831c78de7e225620c5f2d79aadc0c2c43388d66e801cefe42a1246902b674a4b801d5ecb10a55b1a389278dfcbbf9373f6e79ec08efa934f7490ca5da95198ddf4107a86b87f803258c6c779157c03a707024802b9887b32680089d222c2aeb2f9efe051c1e8b0686b1fbace079739b57cadd1bd3346df1af2e913e316efb1a97fb3d195e34069e6b417522a41da5eae617c1b69aa05b0a8ea1d89385dd7750b29d142fa0d9c11daa651588479baca2e39ec0bbf44227b9bb800dcaa09eb75b18a40ab71014c13ef8dc09560bb358dfb3b5eb80bde569cc84bf94a1b573a919dcc782dc65f447cdeb6efd3b9bff56776e1750bafd8d0b9216fe44a067eb1c3369d35f90f6e5d0ab1edefcb6c282f62d83e39eb83cb7144517bf43b66cc2cc84b2bc484ad2a82ea77b82047f0d0b6931fdf0a21ccb8a342753f7703f463916da437f48980bae27cd9052ca4b1b8d030a721a61abf54e23a0851437aa1532cbb44268bfa73eb17b49b57a7ddec92d6ab5b5d178c94f7fe2a373d2060bae09cbad1a859366527ef35169d993873af0771cf7f8a6996800707cbba913edaa2554ca949cc13c8895f001926d94e0c7507a8499fa693f73b8d89c6bdcf05983a1d68d0cc827fcb825fbea0f90ec6e17302c6886f3de5e6a66be79413ab7d0818fa350741ccc0e5f1b4c72d88fb35363239f8016fc11e521911222e0e4a32585510873c1709bfcff49aff3ab614ea4ee1012ac6f6b964a8725aab5d9b18edf25b63907e1c4be414c855a4eaa0c01842a2fecb951aae17a7e7a00871eb2977ab9af0ad38f4233042c4b5e86e04948ff81fa86ac7afb49d1d83aa3157f6c073ed90c9a671bc168bab47a00caeb44e8d0b86815b997469436b7b940b3a81f731d17bee5d79f59d7bdc58da84a7dec6716387631ed9b2116dd3c280a06196cdce5789f340fc735a4865ca6eafe0f4acb1e889cf4a501edb61f68b93d67ff9412407751bc004a0db0cf17ecacee067f3616e6b83a83ff9f48878dcd5b0f011d33d567b71945f1ffac0bf7e68f87657d8f0dc7082f540c62116fb896605adc7da062a58249c35160a93e29a58ba0df7e80995b8413b274e11ecbaede0de9cbaf37a002a0541aff3e4adb315aaa615a766037778b0f56b74fdd91640676dacace0e38d80417bc9f9cd92b78282f49a84447a744697fd8533164931d1a6e89c0c0cbf896e68171dc6e1fe5f7a9df611c4672f9e340feefad567da7a5aa983a8be3391fa290ce0cc3f38568824dbb84817cf715a9d1e2625c7e4989d8a4b4ce378b57c6f508d26aa870516f7ee63267ffdd58dbe18cb3c60a827a5babf64d5560c01c8a3d9489c52576d0900e5c6e0df4cbca52a0e4138c72f1c247a70c300fca3b18ee15096672b885494711c83d0d7f9ffd41ff9f705c50daa8d211059c510eaa010106371b95cf984b008f158825c360ff8efc48dd66e566d2595ec303608c0693cf9f27d455c2c56178b5d9973cbf6ccb9654b6d5ba08ee732d0d7f115f8a4f50ef56ffb02f2e4d5a12c5446d5e2490e495f5a54b71aef6f1ddc8772dbdc4b7ab1917fe3e152f0a5ec48f574780361ceea18ccbcbcd7a2aab6e63c581cc2c3f780a426796cb5f47bcb05434dd21aa461e82090791b5231befd3b2512122e78332e3a3bb651fd0580d56fa452185d2507e2b3f61b36db4b474c102fdd6d2f0f3db44f3a30cc955b01fdd772c814b40a252a96f2aac994db9e94314098e4d496d18fa33f16e74df250dc2cce079231252601d8c8414d601c4f5e677f2d89d48fac80e02c7656a433a6354ceaa982d8c4f611ff6793e943f1d101ea6972e164cc3e45d043f8e0dbaf5820d06c7209a0340217e2cbaaa2a4d89e98774fbe85eb2f155d99db804121a4e3a9d338a5757aa41941045c7f6ccc89f12f4dbffecaaddc0527f11f0ef71ee90e83c3f1764a044048d158b89cc0111e4a85691e83bbd1caa576b02be8924471604c9789d1e2f5ad9b1bc697aa44fb56de5811be5406ff073d0e3a9722beb2cb947f7c1fcc7e9d6c30e23c09846eeb0a21f6a0e8aab9b001d4da6a65e88ec532fa9c5858a3f6e9189c98a705627fc013ca72f22d2d08356e0407917155c0673715f252169068654c1a22d4341278126d6fd910d4a224206645d7d927aa1c72393c796961dd6c5384180b609d1ab130c9a46e099b0c3dcb9c72dd8cfdf28dac37eedbf3a30326e46df06189959c796277c492fb3dfb48b496c0b3b2a4601711957741a7e930c5c9de2820a33fd7320b59706d6b77106eb666c80995b90313d8e4fb8ab7bba9ddc583b711f18007afaa792a7c9e7a254d227604124c14230c9604256757dfd474ca3d6c92eb8edf3f62bf52e04c148d555b2c69e801b0ecb13cc9c765c0bed14461fc539908aec35dedc7a348d2ecf45c57fc869088cdc4b1bb4f8b79095fac1e06c7567b15cd66209b908903c67a793ae98570adc8a80a4fac6e3cec17be4fe3461cbd35f2c0c8a5e573b78079101b5a7caccffad47e67399d9b4ace263ad9bcb41ec9868ebf11b143869f3b1ac23918606802f311983c819a02fdc7289ffc225e39b8b44368a0b4d97e8f30249451003952cbf5fdcf2de8e14ea2cb0721c2b3d25d0e47456f2553951196df642cc1695c63e68ee7ab1029f8f86dee7c4d4ef78934e4736a02e3721eda38eccf393acdb6ac3e657c899432626787118f96e45f26554924c8e55314e781e7257da4e6a2f0ff6c216b1cd61fb54a7d3d261032ab9976e161f92a391cfb026b97981347b6a12de442359c68c83d0447a9bc285b9c8cae9372fee180dff341b88a431615eb8c425f5e74a8674b47d2ac476cd79f04351a8b50a7aac5a2f5b678bf0b46604ba622e5054a65c5c24bb98c84039486cb9b4437b1e0037fd988c6dba9bc203f5631a7c2febdb64b8a7ff43e2bd3950f7d700fd1aaeaf569867f83d3e01baf05ce7d3c84876b4b6b0d1dc70d96fad115c560737ebdd33f94f26e4f47817fc0b87d36117294748fdf1151ce2e90dbfe6e939e453641e44ee1b67a978bbfd740c7beafab17e6d52f822fe7e44a1609ed7f1773f33e8d4ddb51f040847d908a77fb814e126106d737f0a765dcad2bd465b0a588e89b2f3b19a2bcf4df5dffeed3350b20a8fc4bd3eee5eb55500f34f036eebf475d675cc976f574f30eec70478ac5bf86c3a67d632c7d5954a4be4d8fc1699b4aadb7c28392e4b741054e71313862fe7a32d095d88284c3b65a7c9df84e63cd14bc15cc274c54dcc154a31c4dc9c622851d5f3fd0046caa1844d207bca03d3d82c20dd59b2f4f852b12011a88951940afda134c234a83d40c715fe10b3c661bc46de020333608586d211eb0c3b4dc296bf695fc08b9eefc8af6354e3804378d821ba8cbb83b3fc94d0628b6d46ab870cbccd0bc35344f15cddb268241ea0d71d8ef08d8dcab2ce4f9d2181bb3c6ea9f3f0e1fd41885892f18a631a24e7588d04c11bf4ac0be001f4b5b795b895c3f9d7f28b1f5326bdea1f16d6463cc40209a195afb2b5fb3696d048c5d7ec44b9b1e6ae9ae25b225155bec20796478184c6e468128964b7b1534900fdd5d77ebe97507f6ad375f6ecf52e94606fb08e5c5368cbfbc92512732444bd2e3c0161492c686c9059bb018aabd50f3cd81b6bc678ff16aaf7dd78b165e6324ae4335843c533d3114c2bf2a3b91cac1977cd1f013412ae03426bb6c48a55683cca1dbe7443233e8e8417c0f639250f5b6f87781cd805ca2ec88e3f43ef25df857b96699ef37ada645634e832d3aa9ae1411043b81182262fe5d1e2d5e7653d554e420e46a9ef33ed0d5e78cfff6f0ddbef1efe02b6f9029b6cd59785b884619d4e9e7673210995f1240e76e209817fc5ca2a36d829d46853c09d0826aaddf4342dd076e4e99ecfac2496b5955611a20a7578f1186faf5f34f72928b7753a7c6f852f04b8ed8ffbf294a52e5f76e8523b8726649023825d2de08587fedbd9ce000bee89938dc0b96abb730eff01a174325aee75145f210898b2c42cb4b75516d80d2aabadf5329dd4f2868a91bdbc33d0257ba81d66fa5ffcae48a7333623cd15f30f4159abb390c9707591d5838a88557edfe693262bb995f323d4fdd35b589fae58b925f0aa4e4fc4853334f7cbfa4fae7a48446cd7e2561ecafbf09c1c548e9d9105a9e381fca3dcf1714e2ff891cbb190126dc8794dd1c33d4390245a4cc03f73efe45c5e0b63b1f3e29437f237d396195ce7493907aed3c8047e7f29c9f0e7b2b2a646169279d70f38592c57bfd5f078487d252327e0a7ab014cb1f70f273d261df85929548317c6e755eb1f4eb7871ac0d31bba16960e9b690de012f72e117680c5622b17fd5b7ff8bea488267632488c0d18885febe37be43de241ccdbdece2c0559e57e4fde0c463b27b8762e149534c8aa1f3a8367ba6d0bdc7b614fe10d09659d598464c901f188841e002c46410dfaa4a3f87439d09b8ea0b0342b285f7496d89487574de5772b81f21b23ccbcea4af31225d3aef5c0790ef5aee6140cf170db9879ca1ef5992d0d80949a1244f7590ef06d403de010389c24cd1fa3df1b87d92aa7a64a79cae6b5068a6d42a1411423fe1bd68ac8284d1686bad325f7ccdc289b97945fdc89b0108454ba1c70b62e8e19eba33297424bd22ef1a54a229b4ac840afffe5c3cad53f0d739d7a96dca581b2ca3f60c781ac28eb715e00be05bd994e8599d3536f8e6025b8e0467b8ec72f601a66b558061bf715325ed16cf2aab599affffcb78564c0ac3be01168179b2aa0560936872c24fd7969e8a5a6eb9da90e4bf5e983de4666185f33eb7eb58fd9479499a595cb6ab5e1776f519592d7336589c2bcbe2edc481ee67853a6549e7fc417731fac163eefe138f9e3ae5e6026a9aab4b715fd75393d7dac7471360a0783b789cf113ae36b1c5413f7b2e0901af1891482f4dedb42bac546d970fccc5946297e9f7840f27b72e880343e48a1b9bb37c9fed3dcc454f13e7a13727c6d63b1e37ef2dec72a572cd568e8805382a0d1ed471f424c1eaeec8e470cd25965eea4e5685ac96ee959673887fe9ec6b83959aa17da5366db65825f68fbbaba4d850630e5dc93739052695fd21704cb44620aa6f5a3d3e721bd0f7ace84c7ec65c114bcaefc055e2e7c22d5e7a59cd6e5b8b02417cb450b8c62b39cfd512afc175f7cd6e5e8d07ac5ee6f806afea28969b7e574d7f37ec4eeb16bff39bb7b1db886fdf245524dbcdcd778b6442fb64b998ff916a4d9c7a63cc46b177850661b6fc35de93fcdf6b48de0b8195bfdb095ca00b659a7fac94be1c8f01f50ac37a233dc0762b8fbef1c002cf68b2374cd7db7c095345359839a0e583d8ceb729756f911d507f2699357c54a40a65e4a10e1c0ec69252c9d79a16b0759595756cdde03d231670eddb70385c536af2437b78ea91373ed7237ffad9d4c2806e8004f4fbdba89d7a9ec1d404add7b5c2a40ce647c9e071e6c6c00414b81a2d72ae5b3c3d75f03e8a9544a4ce1f2578a679bda1e7399665f1d9c559e0404c140898b629aec4cba1dfb0ccced465b8acef461b90e21756e4b1df8cb86815f5d080249deb147a12b9f0dd6163f0dd362af7cab83476d77adaa2020a12d00bf7724343beb718e61aef9f8bad49ff2553dee59375572ec54fd4ccd5ec59dbc17f77ee1d2c139ff9a16bf2ced0ef3a80f68fcb042b142c63563405f83b0aef7500294026b99d87f3fa0dd6007c23a13b076f4a4c39472f06c1148ca3fd6a7a7da01d07eb5662c0b47a518156696e4bb99d7e8d3e84a8f7fc04ee309ecc905476dda9b42051078c0ee869576ead55b3a61699a5c987c01b60a283b9e0290e62268b671d433e0d742c2cb0d2156feadfc5ce4f88b637977e2acaf2de47aaaf2ba825d4001299e1db2b897b273392861d407f9bf85c1ac5e52a8eace4e3f6669ca125b1e6b0cc4bf6c14a34aabd41d6ad856416945d13aacd8144b22cecfa106fd3e319d9e2a8554e7eb1635b4b8724f1f817f32731d38b77862c6eb5a571c62c72dc5ed387c78c91a17d5105820efbed83dbec0214f7a715a76621b4ea46dde359c029b90e34862e577be943435d9e0cc3f1a0f74b6eb1326185130a465fd08f6313078235d56c72830091627827988017161c21f7f8b6805265f88d528bd93735754f9fcadc7da3c5a8aa86e12670dbf072ce5a6c38f0b797cdb353e19200d791b283dd3e80bf2d590fb6fd64deb29c4a46f3301766021291038c2db9b20c11a1d52a71e1865a4f0df3a1f2120061ec556b70e42865353bafbf24bebcc019a8eec73ed82418d6e0660af0cc86ac34cc74c63ff3a1933a777782e56b61b20333294beddb35c6932f8a7c08b5aad024072a4246fd360fc5f84a85262c1d70b0ffbe174fbf301fb83b60b7d7876b4787f5d786c81ab0c6e82c0b2fed586dde375f0f53e9f83e6846865f3b1f502f2ac9719280fd1961afa19a9034632fffbc327a66af5533ba62f39128016befda8b676b1543b0d1d3443aec6337f498c865c4650f461a9ac5ed25e63f2409b0b866fb6072dce496f01f00049344a3ecdf6c7cf1f84d463cbb9cbf745df604a5514d61126126f56187b7727f091e716e631c4a9d50d8a76399dc29f9042fd9393cefb5b1c28d954d5f669726a8ca73ebdbd62b30934b201d6a93f55afa1fcce68c92cd75b237b2208b5bda15dc5ffb9414caf3fe820e923ebb4319ecc6c12102ce805940311231496ae64a82058e9710c805efaef33d296b8994ee3307cc55b776b32f69531f0d7c1b5816c59d7510d81036d238bffdf09bcae13276db151b9b5fad63c0109b390a2e3252f5180a6669937de657802fcae23461eb8072d8b582d4f5cc573626c6886e70ac71ae8b097edc6d20feac0eb4dbe51f420c8e424557403a1fc10dfa426fe95248ac5a2db4649734449e17ae0ad961ddab6150f3f2b4bd455e657b5581b636bc1a97138cb95618cf5ad0bd31cce4b6ae1458eb5dcada48f3e0a5ef17729be4b08152646c32e95d73c7d59adcd50fb1166cd558299fe5022985d79343b7297a7dc158a9edefe9a43941e8147b58bcf054e39dcedfb9f8252862899faaa1a763b65a79a485b6dcbdeca39cde781dd8c18d90a452f49ae74fe38c822e9196558237193bde309eed78aef7cdf2da9f6a467febfe73987faeff62febb1dbb2c1c6c13b972c91a73c05fee5414dd1cd26ac44d57f60a42d8f9000b20eacbabd1a6ecef5eee0a312a4fb7b1d3f7473722f12fd4ed0e519f0393d4eed4b4d330e9de586f0e9640dd0954a95d82d8bc72cb6028a122f8dfaa6ae2f15228a2799ab2f54aeb0efd88e02577924aa450dda0ce42d78a91994a40fb760e314592ce0d1248c8b2feb98659fb521472197ba476a4afc87bfc40ba5e17e0e133f3160bb79c192f108e7d91cc90e63ba8fa766708b5aa9944828dc4731797e286192c7ec4656b23780731eb162aa17863e37a96b604aec24221779f2e36fa894414cb5e0bd3ece11569c91e1e0a3e09847b997271d39638b1f35b04c8d56df4d6b141e019ef3edabd0c4fa8d311bc20705ee6b6b9419c364e8f2a70cdd7006a08ec5f27f2d69f60cd5bb7179820f2b5e7b70242fddc4ca8a0b89d761894ffa0ae9be139be3c1d617f3637106a20ed86fda90ee603e65aac1e1142de6da6196cb693526fdd4ea5adbe31349a0ae90d53fbbe73fe0a3e7a25527a03725d84367b38715a8f845991befcbd98679120f87d7701a86d42bc1ef28b678e262368c259c64469c22354863023f80bf977a3c00fad53150f3a995fcbf518819fef751f1095cb263d10f0744a09e98bf5b7c8bfa3e3539096d9d1fd23900d4b071aba13e70ce658d799ac211c11b835b8bb5c3b391ecd31ef885f1e4bb1676d50f6b98c4a09cfdcd01db882a0e9f6d37962dcf5a8093b50cd6c743165b344711d81f6fe31249b03d009240e8e595a984658cdb1cfd14774473f2cb16d7af6cb8541f7362c62149b5c24d6ec8619f79e08483220eec6aa9739c0e33396d03609f07d3e84ef27b734ae955764e0e96ae5e6a8e93289f007cfac7386d5f53ca1e07378afa9d75488f7c87c851ac5b6a5ec9c4dc205df694fd794ef2007e070cd009feed223d1dccde195627842cda93bf219115b65ea3e448b62d66a9c35d8217227d556b99c5ebc30dc01b55dc4b8823c77ccacecb1018da255a27fdcbfa6f5957c90b4e6df4e50a9a51c6928414175ba04caf44bece1db20604aec169419bc890b845eaaac842ed5c50553144c6a0918ffe0349fcb46093474f983df5717e0b6fc58b6ff3c5ab42dd640252a76157ea4ed602e8de0f910ff130e6ec93cc0a3f03b597adf38eb249cc713e7ad58806f4c309763e3965a8def12f29e3a28c87e2014461f62c19c51c810c6eeae9cacf69cce74171331489242bcd675248f9d5585203b6a39cd436c4428cd8aa7a7d82202d20124574a47bee3af7f1050e60871cf7af447f0a33c7f839fac1cc603051530bfe2c68672a5dc2d26ea76247acb228ac32e758d86ca5fd53a87fb2e918c787cdef695f1a6bf8170a50e0eb317b6df79240681eb1cfb94e19c267098b633dca726231f7f8929655349c386476656a2018ab7639a7b094ea41d4ea05ce62ee00e65f8fdb5d8360b95d007e85b1b6ea32e2162a9184a5e6ecf930df90bf90326f33e35cb78f9044e05155868e06db213f59aef9f349d2514271109d0dfb7ae263ce36696ea3bd9ee878f4d69de2a593f1da8c70c227698612f1b9dbd6c12904005785b0b941a2cf680c1f55f98668cba07efe2e9f07c43391b703f3ede9ec6efbb6765f5a124e7c2f1111eba0e7c6ec15e50307f3ae4ab18f8a1f25f73117caa7c611c54c633b4b63928d0629683716a1330e7ea349454cd8ac616600868e73bd15fa205da6cdde9ee6a1bdf90012fda145960057ea690dbcabdcb9dfa65c1fb08767e7ce2a369eedc6d6079390f55d92f2b4f516bac23d8c58ba15eb57c92e639ffb0285d3af126dcdf1f46b986134d9168d3300a029b80baceb07c3cf358e6837827e8ded51f4abe8237a48ea987c7133e502fc15fe0c2765a4485ae309e46e8f870e145bcd0431c4ef430a7d526b3bef6b98a400445e7ce4f86b3717824e7a8fd02b04a75381f1da834ab645a4232624cf304b31611c4d31639089e90f635b9c370369f8b7e4f126cc04eee7aa4a00b85313be9f4b4d27eb48f3d285ff5bdce2c39b7b9c94653d6483f8f24c222cc47de6c54ca9a4c40354b1762f84ea3b3d31be75a510e7914341abbc2436bff53c2485278502984401241a6b7a79d875642763e13b1e6a95006f9874d1365160b7e8453e5ca1cada92fdb5711a836a5aacc90586554c3718d53f2a14d9d7d6ec778cb95e32670665e1d0c0ed846ee61d0cd1ca03de09770397449dcea9bbf716f23e0939947ad87709a0bdaf3da726faef2a80235617a5342e7080daee47710527399dc27399b1aa2f07e7b8d53b41db1451f68398aef6f91142a8a9da9e47d03142f731f0f651fad4fb28a04e89692678133b752f563d62fb9901bebe485c5f8a3aa0cb203d0e8cb03ed2c5ff40aa3646cb796633add1a640205e512350cfa76137f7556aaa9a3b87b93841334b40cb99a091e0e04fa9e4271e6d72e956cee41539dc82b8396672ce80290d53fdba9a89d7ca3c66fb02abd435d274af06b10c35433822025a2a97e2ae25b9b382d7573be42aa8c78a6e1e4959484260adcb3e353806c67f7c9086cc82994448e710c813c2628822ee46b7e0fdb81b1f801004536c6e142ec059261809a91fd1f71e9b9afdb0ae188afa74e075a2099cd7fa82e019666a573e9b492169cd3d41d8cd98f00b204e9800998ecf8427eb8b087b2b06074e2985c768e8bdca35797ef86e0d7eab1188fc59872e741fe15002882e4e8c4ac61d9737da3b442b56a7349ce4d06c82e13df761fa7d0dde7fc171204fd074c18ad0be090b008e34708628170c605a4ba3b3c2bae97ab5927193a09b542a66f7d558fa2e84b9088311f30ef9c7c2fb6de9a11b101d578d89687dfcff94c231969dd3a6dd5383e7850a0b46e228e42452031668e47218ebcb5d2bc5d1612e4f4a6f85427ecf28cc7a66084b5a9ec6b8b236a95db3437877407f42265fa4a2726bff5a31d39db89247cef3f8c0dcf0c598d82937454036a87885186c8c555a151b186db23959d1a4b503239202e70470be1d863a524c21be6d00cf267dbbc34ad47e02f1fc8ebe6b74e3adcd77f2cf67cd100836bd291df68ac041cf48cb586ddf906b355d19e4086423201d559568572de6237689f56559f7209a6100098e98b93fbc52afcfc260675de14de9d2775c52e2435bdba4c1145f0caa0da253a9054ccaf71e08b9df8e5ed95e4ca48d005262985a984de01db7491150afb2bebb66d34ff227b3c2acdd372f0e0751825a6974ab4567e3ebc18cb6ea68d21d4263b48bbfcad2937cbd2cd89b2b38166fe6fb5b7c962e219079043a076bc957586a6179d5a61526fa2205c4b319bacde4cc68e25a74708a50d7538eb70b7f2c1bd804c39dd6f9b693ece627b824b46cd1e2aa554dad70fd9676d2e6ad7c575f3407e38320ac9a2823f759202ce10a715100b804f8279198c9eb36dc73a2b860e5a14b7caf084e4300a300a6f0eb68f3b9325d54a06cb52c487fb666f7d3e5f700a69b700020055d8ba2899d769875caa55e878310c387eab89ae7bba30f040cec9298e25a50badff3a5e30a45bd1bae802c06b437e568cda0c70f40f47a93109ebc49d8118affda77d57ede1553933a0bba8fb52065317d551d8330f41586713b0c8cd13f3d7bc1727188431d144841e215ce7b0a570943885bbf6da056db27159d67a81169daa85beece4aac02421a825e9ea0c846c4239b8d1e7c61ad3979be2c387d999515cdce59070747e7fea278c77dabb31ae6d0d1ff9bc1227be6e1802b2aabad2dbe05588cd06387eae76a0d493652680dbe82b305017db8bc41c70d0a390e67fe978160ed83b68f4d9885a170b8026a4dbfbcac7042604df807f10b86342e0a8d3cee4660254537abf36fe5132c4d2b3bbb27414dc37f2527617ca8cf838c79d2fc8e262142cf0233b947d62946715f9334b14ec258be1a98deae1d5ecd3349dc15aaa10e26bd17d2eb938cd66f6aae60ec561ece8da40acc1119da5187e75100411f3a4884c0af2da964097e872846c20ad5f0333ee99f8ccab69ae6ff0610f2156974c6ed87d5d629fdde9d646548b503825a67a7b436ad5871ef2a6bbd0322022f0f07244ec4fd5871ef2a6bbd0322022f0f07244ec4f99bc1e500e3a7c70fe1e341c7f6dc11cbe59055c81e9c00d83bd5a9137c18bd5be59055c81e9c00d83bd5a9137c18bd50c50cf197c91bee30e6453ca3fd3aafad41d8cd98f00b204e9800998ecf8427e7e81fbf7ff77852edf04aa9af62c25057e81fbf7ff77852edf04aa9af62c2505be9de2942de0a7efdb6ef017ed9ee2c6be9de2942de0a7efdb6ef017ed9ee2c698031e6e247a54a8e368a7581429f249cf19c342fd52ad3a15a15231fcff6de66aade63c500bdb95d1bab68c421e9f6b075ee531593cd2520efd768ec0afbe64c70fe2355c5b9532ed2e3c5aa81cbd01fbf9bb3ad8ab1e0852490de527a3c58e5be573fa6b523bae2a09524817eb193481b48b082b85c11cb986c76dfe088ef9084e1408f3337f6b17635403ea9f250d0b0a84f82c798e6cce384b575687f119fc754809f2996f86acd79eb94a2a7f68045ced4f694bd6c860c11a86f72c783c4ef2bf88ebeff2e3104b11f7f422b8dd5c0c85d38875debaf59c25dcc0ff11249339feacb120e3fabfefb1c321e5ef887fe8482e843fa5261d5315e4a88f792418c087cafc6fc643387c4103d4e657f4ba7114db14c0af8d533bb35e0d94c6db643fe2a01cdb80f9d04944d0633a3377e586a523a7481345140cde3bf8031763f476db7e099821fa09fae0a50fafb4dec2fe28ec8705ebc00d917f4c4bb8df61d1534a99ef2c20b33029ebd559da241689976a82aa854ef2b2b9fc3fb7e5ade741016141bf664d349437c25220c2fc949376b55503a3d5f212697b620df6c1783398934df048828d9db3160a83b072236a7e381920237b00f1cfb4eb917d9ff66a7e381920237b00f1cfb4eb917d9ff6ca7f726a686358b09a6bc3455188fb21122e97aebdbcdd5812fc2cdca0c99097f1b186abc7a482548c4e0cdd9d3625882e0bfdc0eb78ca744114b42489f077d32f2227287e2f75e33216ee326fdae4eb4b0f53ffe49aae99335a2d0a81643f176ab37e536b723f6cbe07fca073daef038b9c32a2047ba6ebac2d25d8642274c2d30a2f4fd0714ec184b5365c1782e01ce74891ce550d233ae0da469c1cfed13b72a2f3dbdf1d9fa96ff61da28269b52f9769589490ac420463d64a8b2221ab25dbf4d1cb7450bef9dbf767a6bb6417a80ce4a4ab9799d6ae89da93bb03894410a9c5ebd7285afaad856f565c2af3ced88cda9d7256db2f152645ee7f192dd368661bee7d4753618ba5489cff40571cee329d6e038d4f805c0cdfd65550cbf90cf42b3fecf6fd05bd87d3ebd3d1bf0eaaefb52a3f5ad4d766aef000ce50b31aa4602707015a9d0f62f23716264cb36e02602707015a9d0f62f23716264cb36e02501f6c971a9373a0f891b7b60328f1179084c76508698fa002ca33da5ad774a69084c76508698fa002ca33da5ad774a657a1c8798fa33e8ac01437b1d188b51bffa6108f5290188d0030024744de853ac3227e84d81e5a83dfdd28e5e6d084a06b5b4e1610159d42b062badc5add27f5b0a47fca33808712e30eb1f50001a3369bfb82166760a126b9ef0482a0ae2e9cabc3bc9b9092d2fc338f587e0bed23bf5a14a5b337499415fb6a82546de97375a4cecb764e83d360f4640f554d70903b7ee13cf245d7150105631ec0b283136f69851be952fc9cfd027f26c3eacb0f5f70261a11d31758da2dc1a90a0d4680fefd160ac482dec6a12027cbcbad879c3aeb48d1d832e01d829133e2a67fda1a0ea8557eaafb82a8ba88f50b71fc11f46a93dc3ccb45347a74ad1d27b92d4c0481e3172d2881e99659a02703e84ac190a9349345cd30f87d837a13e10476f7b63f7bfc98dc662ef88bcfc436b30da506bd129d0534362c4bdab2c077b8b29d70e8b9029022338ca06baf0316d62ea71a23ad1348d1e1397761a9932a84f401c4369d8512c0687b74aa811dce6250f8b41ca091f7aaf9a9672a2d2c855cf4f3a261ab19d533023c103473f7b93f44ecbc9b36c7b92b9b4199d9e3968b0ce13bf7f29ec02c2c8486ba399c5bb2ec499e9fef0bb8792817ead38efe95ee90c49bd00c11d38b0cbc90a63be4dddb8717307358ab2e0742a9ee3a23f812de31c10e10be193709c6f740b4949f90f45f47dd8807d41d8cd98f00b204e9800998ecf8427e87eea4ac69e039d5ea4016c931102a7de84457654df898fd74d330d079bf9c8fd41d8cd98f00b204e9800998ecf8427e0e3c51cc065e1e16dae8548be7ac08b73fcb8b920b77f7db88328dd491cab31f2ceb59d7710fcada64f333bf8345ff2e61b664ad12737cbcb6388ff293c676151c13ae2ab0c6b93289a387dc36dfca8ecd7b2bb3682505e4703c41de084d7ee8a7d33f093e0e02cf7a37cc3151aac42b7e1995df0f8366e50a96877fe9ba8b88845484dd6fc6bd72e8c8290e6b0b07cb770b60a87e7b9134e9a1fa24e28c999183cb91918bb3d25dfc7b8658b78075d8388d97abf7a10fec2b57cb1fc04b75879a74a53a2e7c412c4a6b60a385c9c7769a74a53a2e7c412c4a6b60a385c9c77634b812ad954b587babd7df633beb657548b594782c2c6886cec240c57959974829df8a88358e774fecc7acf8c3e8b733188c08c39b07968ca0c2586a58185a8b53a57d655a079b505cb7ffada1212fd338465d674731bd67d0050058a30e46f906b8fe59e07e939594f64d5f9f44cc05346394c0e87701205958361b12743002502cccf2aec4fcfe3acfb3f9d1e99440e22c842d9c4f96a9ec09c42c67704647911d17a9b612a08fc71a558933e5ad9b0d6e02f77d598875dbd577db1d193e54a16f6e71d0789a727144d2770da1155042f8ff89f0593769d29050c61459ed057d85b80366b6246e66c8228508508e11257effa6c8370a229f8092c9e14f17af1c8bce6bfa83c594fd6b39592366bf72de03c80328e9a3e875d641e11349ce85d1c9d4d6c8298009b2a3aeecd684db72d5b17207a395d8a544610e7921762bd8b1c42884fa5bdbde53d64cff469374fd3e0975740eec3481da4239017709545c418537cf1891c2fcf900a521c26959541a0a97f908aabcf4957c5314042fa3a015e1e74513773b0b2ace4991635de31e679ecfa6569224e4576452e70266b5a357c5480bef7727f377cc01d5eda6f84c57c5480bef7727f377cc01d5eda6f84c300ecb1fdcf19002e3773b47564077a265eb0e189dadac7edaa0ad15685e41720a7419178a93de5c1aa000a564363a9c5b31c89d1c8c379730375b9fc5f8b07bcf9d001049bfdf64822a412e349eb08658f3f250e4929cba2fbf96502fa106c33aa1912cfadf2169c6ce2bfee934ec7e6e4530e52c7a42ca970296b457c3af0fcafd9ab382cbe9f6633febdea978fbc6fe7f56a048c7c72b242cc63e865b099744ab4bd21dd81b758e72b7c6fd3c3a4a1a5aeb51218d6e5fd6c40051b72b8a19e87f4f9ac2e46d819ff407b1fddf23c1a2462aad4201c666bd248300bb99b45fe746d6ef428c94679627a5fba74bf6b25745cb21ef1f0acf43ef6ea98ec535ad84f707aac14d76425fb8495c8516df43c520e1904dd6d3a8b92ee2256093c41c2e6537269845624bbf1f86d8e769a330bd07ef1831434136bc09438f3c8ac75c272b53ae68151c0ed13cd7d2ded4c0db45dc98e90fc0bee185125e0653e2aebadbaac1548c0a0b967f086ee620b402fdfe55146f21a495d4f02697ae668f5a1ebe59301bddbf2bea02a986fe6991fe39fa09740a6f5da0902524462f4320691012f5174b535043834ff50e8f19131b4a16245b89b537afd476f9fe3269594c2fb65d6216ac71af588fe69b225b619c12be792e06439c7d53b823221fe4f878a8fa03ef55f5adc02476805adb0d00758b1f2a3b25e41d3f464ca409de75167125649431a2d492904950f238a809141fd07227e900dcc1eb5f930a653d237a92344502b39eb151b7e486179515883595e75a9769d73d54cbaab46ce45ed8b69693133d9dc2a02f0b627abab4524a808733dbb5f1d76e3183f45068a17a2255ee5875cd8d0e79f65c747cce35eed9516c14cb5f4fd1052b73bf8341b211488604737e12e3b87772606614f69a10b3e3945eaffef427edac4d8ed2e0ce027681d90e8b170a95b6734573dbac9f98aa49b026951f3d895f6af1d891d18560040020924712ae1ccc39fe77e8a6ac4ac7a1cfaa991548318699581c8fcb74d12c138fe340b08923f79b25a497a82634936861e55f45046adc0da02a7103694cdeac77e7c5ce248ddbce3859b93046221fe9a2c8e6cb2f1cd0de30225807901db862eb5de42e2ed6cb7bf42791a811d9dccb7c495dbc9cacc35f25b92510a30d1d73ff42a43420912444ddf0f299069d223ecc14851618d7f61a1ea14d9b69ffb299f12062d4b8a89fd9ba879235eefea32480901ea256ddc3032d9fa367a6b87960036dad23a5465402cd1f2c7fb7abadf4c0e5c56e340d83df8970f41be4ec41508802c7bec396b27d8619ab8bb648bbcc64c071db2b6ecc08e6642f384c5ec17632b567b9bb0bcf2ed5079c7c5d1afdd779eb25620183744046ac2b45744759aa63f97626dba14494abb5c843786a794b1b748a1d68a09ca410f629980409c816c3bbfe4a7d084c4e0863321ac19e82e833bca93594dbea6e87a7713c0f4a893377ff9d59f0757a4a2f15581261db5212a1ab8c16056059619fd8fa6fd5e12b1614524ea22d1c93969582a7d1100cd95d2620eb0308ea5ce8a1c9878ef36871ba8360dac8f9498d7d78ae41b7744b280839c25fc8b641f2d23d79966b516d92d3548c8bc90285c3447fedbb6cdceed3bff86591c0d7a4ea6b4dc0703aa8ceb50a2506cd3f1dca958d6ed58b3edbc85e1125bdfc5c1c7221d29325db7a57401512697eafb3ecf6b7c024c5af71e380cf0072774574fb7a397f4d3cb2277cedc892091cdcce0275785a944a752deb776162cc0660933cbbf3f77a8841fe153baa9d84eff37c3a486ca35dd9dfe15e1b5bf67c367c5812402a252ea5afce8e20c7ccccaada4d42d668d88420aa47f74e75ebd843e50284b81e74de54f390d57847b62907ac4dea01e328ba5d3148d5b0417c0ebafe7a8ab150d000a7fc786f7b791889e05315b7a6768621268aa85f59c0a68483fc1fa5e28ad0e48f45cf602cb9f3a3e3c8e1c495ce08d44aff81a137e91047c49c1bff8c9e28d93fe2f2387d0806ec9f1f7c12715d31e008dec7bf5b1fa863606a14cae089af56725081934eefcd43bac6646ac0b866be2cbf4340190ef8226cce638631b25c0c548aba2b0f462133285fae2db46f3c04f76bafae9ecceac1cc84b7245a60923cee8e497ae82b6f89bda2808dec4aa35c4a2299819f6cd474202360f0f944776ca63d6a59be6d3a4f10b232d693f8895dc6acaf3f2ef325cb2bcd1bb0013fedfa34b0953ac0f062711c924576d888bc4f33e59f339422eeafb87dc85c60f4e8b09b2dc05d51562c3b066239d947064145827927d21e648cd819f90fccf53fc111e25ebfe3f8e894ea8863ad0e6f4a0582e7ac4bac7fe18db019b096f7013c1d0641940f90bb4e2a04148d8853932f0281043783fccadcdc3168bc29a0f7cdf295dfc2e874df85cd06f62cf282467ae3588741a898eeb58f165d7d86157d1a4158543e6cefcb7b36113ce0b906bad203f5d0d23dfe2abb5133a6bf4527395f33e19d20538ff360b97e2fa6b086b31f2544a6c5cc35e5e3278b28d3de8dfcd4efefa7e68f7eca84885bc421aa7f6eed7a9fbf15f5f458345842daf7d58a7765f064fccb7cb76ad9c7f8493ec3ba4ef9242e1a39c59e2fca98496b59fa07abfe904fe5582f454eeea2b2b485aa235f568e8ab69e74eabbd56d81e0294cb27b208eb46b601b6507689a172999c643754004e05b0d915b6be61c1e1594c55178d35ec5ee53c91dd2d8d5248162bcad2d8be3b2cf1cbc870830d343a5eb0a520d75e7a2b64b97215d00d530693d204d77e3a1a8ccb2ce2a288f3a8601889d2cb96eeb6d8d969a55bdbd26bc405e4433721cd5eb73591c180d0f1e85fc6e9356a04e631fd557c7f53d7001f33c734d1c7369f9364947737f0e68207824d7fc1e82e4dee3e12916d352b905969b92f6027a13f300bc7637f123c5ef54f181b963606e39d26aba2c97d5531097800521b52ac764d8d0c98ad720c59e5ae06ca5c6817efad521dcb8e21359a4bb1a71e72ec0f50342023c1cf6d870a3d50af358ced2abd01dad4f0ed16c1535bc22211db8c1fbc2213ad21d545714bf0515b3f7377223c96c658805a101f0c29f83100b4b2301f6081daefd0784e3a3fa16b8ead8ec832e934e1dfbb1fec0e1d335b033844feb8127eae70a301b27c2afcecd385bbdac95b601a1d425505cddf0693328bd1f915e560cd3d8ee609da3ed7f43f628551174100513bebe2f83b3b3a7c2e4eb63d3a5543a8491e6663c38dbdb735b67ea05124ec9828af7b7da92fee71d16dcbeecb95fccae81b35be27acfe1a079744d833a0454255047f4f9ae179f97e001698a49c3117e1d4618a4389bd53d3f87624a095faa7b89124bcf10a77e82b46a5fd936a8d949307fdbbe647b3099e62cdaa7e73eb9db1e784bedcaf8ad99e62cdaa7e73eb9db1e784bedcaf8ad99e62cdaa7e73eb9db1e784bedcaf8ad99e62cdaa7e73eb9db1e784bedcaf8ad99e62cdaa7e73eb9db1e784bedcaf8ad99e62cdaa7e73eb9db1e784bedcaf8ad8179b89d08459dffff53e2b2a9fb23e3a83f3b4a00500e2be4ddd075780b7470b4f635dd0349f36f781f8e1a5411f1c579c62345857aff7f890fec80e70d01ac06013db5c69b15f723b5fc7ca8e812b0dc88f085696e1f26bfd8406b7de7b8fb662f9f68d3ba852a2b61436dde9e8d5f90a1b22eec6a2cc1f55f958552c188bb83b5df5ddc66a40179af4678e0aa8eafe898244082c39b443117f7893ce0debf5a8439f4f1d75f19ef2803ab6e366bd0asm-x86rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootvzkernel-2.6.32-042stab117.6.src.rpmÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkernel-devel-i686kernel-develkernel-devel-uname-rvzkernel-develvzkernel-devel(x86-32)     rpmlib(VersionedDependencies)/usr/bin/find/bin/shrpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(CompressedFileNames)rpmlib(PayloadIsBzip2)3.0.3-14.0.4-14.0-13.0.4-13.0.5-14.8.0W ã@W ã@W@W¨ÀVþbÀVún@Vún@VùÀVñ3ÀVëíÀVêœ@VéJÀVéJÀVçù@VáaÀVà@VÝm@VÙxÀVØ'@VÖÕÀVÕ„@VÌIÀVÊø@VɦÀVɦÀVÇÀVÄ`ÀV¹ÔÀV¸ƒ@V±ëÀV°š@V¯HÀVªÀV¨±@V§_ÀV È@VŸvÀVœÓÀV˜ß@V—ÀV—ÀV–<@V”êÀVö@V¤ÀVŽS@V‹°@Vr£ÀVqR@Vn¯@VhÀVfÆ@V`.ÀV^Ý@VRÿÀVD@VC-ÀV@ŠÀV7P@V'~@V•@Vò@V”@Uè6@UÔoÀUË5@UÀ©@U®4@U¬âÀU“Ö@U‰J@U‡øÀUa@U~¾@Uyx@UvÕ@UuƒÀUmšÀUlI@U_@UYÔ@UYÔ@UUßÀUQë@UF ÀUCjÀU:0@U0õÀU-@U-@U+¯ÀU&iÀU€ÀUÝÀUF@U£@U ÀU hÀU.@Tý‹@Tù–ÀTõ¢@Tï ÀTí¹@TìgÀTë@TåÐ@TåÐ@Tä~ÀTáÛÀTáÛÀTÜ•ÀTÛD@TØ¡@Tи@TÊ ÀT¿”ÀT¼ñÀT·«ÀT¯ÂÀT­ÀT›ü@T™Y@TÀTŠØÀTˆ5ÀT…’ÀTuÀÀTto@Tm×ÀTk4ÀTeîÀTaú@T[bÀTSyÀTN3ÀT>aÀT2„@T&@TÔÀT š@T ¥ÀTk@Tk@S÷0ÀSíö@Sä»ÀSÛ@S׌ÀSÐõ@SÆi@SÁ#@S¾€@S¶—@Sª¹ÀS©h@S¥sÀS¤"@SžÜ@SšçÀS™–@S™–@S˜DÀS˜DÀS•¡ÀS‘­@S[ÀS @S¸ÀSŒg@S‰Ä@S…ÏÀS8@S|•@S{CÀS{CÀSt¬@Sr @Sp·ÀShÎÀSg}@S_”@SW«@SOÂ@SKÍÀSF‡ÀSCäÀSB“@S=M@S9XÀS1oÀS*Ø@S&ãÀS"ï@S©@Sz@S 4@Sî@Rþ@Róy@Rë@Rç›ÀRÙ@RÏàÀR¹w@R´1@R±Ž@RªöÀR¡¼@R”@RŒ¤@Ru@RxÝÀRté@RpôÀRnQÀRnQÀRe@R[ÜÀRV–ÀRR¢@RIgÀR@-@R1¬ÀR/ ÀR)ÃÀR7ÀR”ÀRÀR ÂÀR ÀRˆ@R6ÀRå@Qÿ“ÀQûŸ@QúMÀQøü@Q÷ªÀQöY@QòdÀQîp@Qé*@Qæ‡@QÞž@QÝLÀQÚ©ÀQÒÀÀQÍzÀQɆ@QÄ@@QÁ@Q»ÀQ¸bÀQ·@Qµ¿ÀQ±Ë@Q±Ë@Q§?@Q¥íÀQŸV@Qš@Q–ÀQ–ÀQ’'@Q’'@QŠ>@Q‡›@Qƒ¦ÀQzl@QvwÀQu&@Qm=@QT0ÀQT0ÀQHS@QGÀQC @Q/FÀQ-õ@Q+R@QÑÀQ€@QÝ@Q¹ÀQh@Pý-ÀPõDÀPóó@Pê¸ÀPårÀPÒýÀPÐZÀPÏ @PÅÎÀPÀˆÀP½åÀPµüÀP¬Â@Pª@P¦*ÀP¢6@Pœð@P—ª@P‘ÀPŠ{@P…5@P@ÀPï@P~ÀP{úÀPx@Pv´ÀPv´ÀPtÀPtÀPtÀPrÀ@Pp@PnËÀPnËÀPnËÀPmz@Pmz@Pl(ÀPl(ÀPj×@Pe‘@Pe‘@Pd?ÀPaœÀP\VÀPY³ÀPWÀPPy@PIáÀPH@P@§@P?UÀP;a@P7lÀP4ÉÀP.2@P.2@P+@P*=ÀP#¦@P"TÀPÈÀPßÀPßÀPßÀPŽ@P <ÀPöÀPSÀP_@OýjÀOü@OõÀOñ@Oí˜ÀOß@OØ€ÀOÈ®ÀOÆ ÀOĺ@O¿t@O»ÀOº.@O²E@O²E@O© ÀOŸÐ@O–•ÀO’¡@O‘OÀO†ÃÀO…r@O„ ÀO}ÀO}‰@Oy”ÀOtNÀOq«ÀOpZ@Ok@Ok@OiÂÀOgÀO`ˆ@OYðÀOUü@OUü@OUü@OTªÀOOdÀON@OLÁÀOLÁÀOKp@OHÍ@OG{ÀOG{ÀOF*@OF*@OB5ÀO>A@O<ïÀO;ž@O8û@O5ÀO3µ@O2cÀOîÀObÀOÀO?@NèÀNÔÉ@NÔÉ@NÂT@N¹ÀN¹ÀN¶vÀN³ÓÀN¯ß@Nª™@N¦¤ÀN¥S@N¡^ÀNj@NšÇ@N•@N”/ÀN’Þ@NŠõ@N‰£ÀN‰£ÀNºÀNyÑÀNx€@Nw.ÀNw.ÀNs:@Nmô@Ng\ÀNch@N_sÀNWŠÀNS–@NK­@NJ[ÀNI @NEÀNCÄ@NCÄ@NBrÀNA!@N>~@N=,ÀN:‰ÀN:‰ÀN:‰ÀN98@N7æÀN6•@N5CÀN/ýÀN/ýÀN.¬@N(ÀN%qÀN +ÀN7@NŸÀNN@N ¶ÀN Â@N|@N|@NÙ@MûAÀMøžÀM÷M@Môª@MìÁ@MäØ@MÜï@MÚL@MÖWÀMÕ@MÑÀMÍ@MËËÀMÉ(ÀMÉ(ÀMÁ?ÀM¾œÀM½K@Mº¨@M¸@M¶³ÀMµb@M°@M®ÊÀM®ÊÀM­y@M¬'ÀM¬'ÀM¤>ÀM¢í@M›@M™²ÀMx@Mx@Mx@M‡=ÀMTÀMTÀMwkÀMwkÀMtÈÀMlßÀMbSÀMZjÀMY@MQ0@MOÞÀMKê@MIG@MGõÀMGõÀMD@MB¯ÀMA^@M@ ÀM>»@M>»@M:ÆÀM9u@M8#ÀM6Ò@M0:ÀM.é@M-—ÀM,F@M'@MÑ@M PÀM­ÀM\@M@Lþ!ÀLþ!ÀLû~ÀLøÛÀLö8ÀLæfÀLâr@LÛÚÀLÉeÀLÆÂÀL¾ÙÀL½ˆ@L½ˆ@L²ü@L±ªÀL¤{ÀL™ïÀLŽ@L~@@LuÀLs´@LrbÀLnn@LjyÀLi(@Le3ÀLa?@La?@L[ù@L[ù@LYV@LXÀLXÀLR¾ÀLQm@LNÊ@LMxÀLEÀLEÀL>ø@L=¦ÀL [2.6.32-642.el6]Aristeu Rozanski [2.6.32-641.el6]Aristeu Rozanski [2.6.32-640.el6]Aristeu Rozanski [2.6.32-639.el6]Aristeu Rozanski [2.6.32-638.el6]Aristeu Rozanski [2.6.32-637.el6]Aristeu Rozanski [2.6.32-636.el6]Aristeu Rozanski [2.6.32-635.el6]Aristeu Rozanski [2.6.32-634.el6]Aristeu Rozanski [2.6.32-633.el6]Aristeu Rozanski [2.6.32-632.el6]Aristeu Rozanski [2.6.32-631.el6]Aristeu Rozanski [2.6.32-630.el6]Aristeu Rozanski [2.6.32-629.el6]Aristeu Rozanski [2.6.32-628.el6]Aristeu Rozanski [2.6.32-627.el6]Aristeu Rozanski [2.6.32-626.el6]Aristeu Rozanski [2.6.32-625.el6]Aristeu Rozanski [2.6.32-624.el6]Aristeu Rozanski [2.6.32-623.el6]Aristeu Rozanski [2.6.32-622.el6]Aristeu Rozanski [2.6.32-621.el6]Aristeu Rozanski [2.6.32-620.el6]Aristeu Rozanski [2.6.32-619.el6]Aristeu Rozanski [2.6.32-618.el6]Aristeu Rozanski [2.6.32-617.el6]Aristeu Rozanski [2.6.32-616.el6]Aristeu Rozanski [2.6.32-615.el6]Aristeu Rozanski [2.6.32-614.el6]Aristeu Rozanski [2.6.32-613.el6]Aristeu Rozanski [2.6.32-612.el6]Aristeu Rozanski [2.6.32-611.el6]Aristeu Rozanski [2.6.32-610.el6]Aristeu Rozanski [2.6.32-609.el6]Aristeu Rozanski [2.6.32-608.el6]Aristeu Rozanski [2.6.32-607.el6]Aristeu Rozanski [2.6.32-606.el6]Aristeu Rozanski [2.6.32-605.el6]Aristeu Rozanski [2.6.32-604.el6]Aristeu Rozanski [2.6.32-603.el6]Aristeu Rozanski [2.6.32-602.el6]Aristeu Rozanski [2.6.32-601.el6]Aristeu Rozanski [2.6.32-600.el6]Aristeu Rozanski [2.6.32-599.el6]Aristeu Rozanski [2.6.32-598.el6]Aristeu Rozanski [2.6.32-597.el6]Aristeu Rozanski [2.6.32-596.el6]Aristeu Rozanski [2.6.32-595.el6]Aristeu Rozanski [2.6.32-594.el6]Aristeu Rozanski [2.6.32-593.el6]Aristeu Rozanski [2.6.32-592.el6]Aristeu Rozanski [2.6.32-591.el6]Aristeu Rozanski [2.6.32-590.el6]Aristeu Rozanski [2.6.32-589.el6]Aristeu Rozanski [2.6.32-588.el6]Aristeu Rozanski [2.6.32-587.el6]Aristeu Rozanski [2.6.32-586.el6]Aristeu Rozanski [2.6.32-585.el6]Aristeu Rozanski [2.6.32-584.el6]Aristeu Rozanski [2.6.32-583.el6]Aristeu Rozanski [2.6.32-582.el6]Aristeu Rozanski [2.6.32-581.el6]Aristeu Rozanski [2.6.32-580.el6]Kurt Stutsman [2.6.32-579.el6]Kurt Stutsman [2.6.32-578.el6]Kurt Stutsman [2.6.32-577.el6]Kurt Stutsman [2.6.32-576.el6]Kurt Stutsman [2.6.32-575.el6]Kurt Stutsman [2.6.32-574.el6]Kurt Stutsman [2.6.32-573.el6]Kurt Stutsman [2.6.32-572.el6]Kurt Stutsman [2.6.32-571.el6]Kurt Stutsman [2.6.32-570.el6]Kurt Stutsman [2.6.32-569.el6]Kurt Stutsman [2.6.32-568.el6]Kurt Stutsman [2.6.32-567.el6]Kurt Stutsman [2.6.32-566.el6]Kurt Stutsman [2.6.32-565.el6]Kurt Stutsman [2.6.32-564.el6]Kurt Stutsman [2.6.32-563.el6]Kurt Stutsman [2.6.32-562.el6]Kurt Stutsman [2.6.32-561.el6]Kurt Stutsman [2.6.32-560.el6]Kurt Stutsman [2.6.32-559.el6]Kurt Stutsman [2.6.32-558.el6]Kurt Stutsman [2.6.32-557.el6]Kurt Stutsman [2.6.32-556.el6]Kurt Stutsman [2.6.32-555.el6]Rafael Aquini [2.6.32-554.el6]Rafael Aquini [2.6.32-553.el6]Rafael Aquini [2.6.32-552.el6]Rafael Aquini [2.6.32-551.el6]Rafael Aquini [2.6.32-550.el6]Rafael Aquini [2.6.32-549.el6]Rafael Aquini [2.6.32-548.el6]Rafael Aquini [2.6.32-547.el6]Rafael Aquini [2.6.32-546.el6]Rafael Aquini [2.6.32-545.el6]Rafael Aquini [2.6.32-544.el6]Rafael Aquini [2.6.32-543.el6]Rafael Aquini [2.6.32-542.el6]Rafael Aquini [2.6.32-541.el6]Rafael Aquini [2.6.32-540.el6]Rafael Aquini [2.6.32-539.el6]Rafael Aquini [2.6.32-538.el6]Rafael Aquini [2.6.32-537.el6]Rafael Aquini [2.6.32-536.el6]Rafael Aquini [2.6.32-535.el6]Rafael Aquini [2.6.32-534.el6]Rafael Aquini [2.6.32-533.el6]Rafael Aquini [2.6.32-532.el6]Rafael Aquini [2.6.32-531.el6]Rafael Aquini [2.6.32-530.el6]Rafael Aquini [2.6.32-529.el6]Rafael Aquini [2.6.32-528.el6]Rafael Aquini [2.6.32-527.el6]Rafael Aquini [2.6.32-526.el6]Rafael Aquini [2.6.32-525.el6]Rafael Aquini [2.6.32-524.el6]Rafael Aquini [2.6.32-523.el6]Rafael Aquini [2.6.32-522.el6]Rafael Aquini [2.6.32-521.el6]Rafael Aquini [2.6.32-520.el6]Rafael Aquini [2.6.32-519.el6]Rafael Aquini [2.6.32-518.el6]Rafael Aquini [2.6.32-517.el6]Rafael Aquini [2.6.32-516.el6]Rafael Aquini [2.6.32-515.el6]Rafael Aquini [2.6.32-514.el6]Rafael Aquini [2.6.32-513.el6]Rafael Aquini [2.6.32-512.el6]Rafael Aquini [2.6.32-511.el6]Rafael Aquini [2.6.32-510.el6]Rafael Aquini [2.6.32-509.el6]Rafael Aquini [2.6.32-508.el6]Rafael Aquini [2.6.32-507.el6]Rafael Aquini [2.6.32-506.el6]Rafael Aquini [2.6.32-505.el6]Rafael Aquini [2.6.32-504.el6]Rafael Aquini [2.6.32-503.el6]Rafael Aquini [2.6.32-502.el6]Rafael Aquini [2.6.32-501.el6]Rafael Aquini [2.6.32-500.el6]Rafael Aquini [2.6.32-499.el6]Rafael Aquini [2.6.32-498.el6]Rafael Aquini [2.6.32-497.el6]Rafael Aquini [2.6.32-496.el6]Rafael Aquini [2.6.32-495.el6]Rafael Aquini [2.6.32-494.el6]Rafael Aquini [2.6.32-493.el6]Rafael Aquini [2.6.32-492.el6]Rafael Aquini [2.6.32-491.el6]Rafael Aquini [2.6.32-490.el6]Rafael Aquini [2.6.32-489.el6]Rafael Aquini [2.6.32-488.el6]Rafael Aquini [2.6.32-487.el6]Rafael Aquini [2.6.32-486.el6]Rafael Aquini [2.6.32-485.el6]Rafael Aquini [2.6.32-484.el6]Rafael Aquini [2.6.32-483.el6]Rafael Aquini [2.6.32-482.el6]Rafael Aquini [2.6.32-481.el6]Rafael Aquini [2.6.32-480.el6]Rafael Aquini [2.6.32-479.el6]Rafael Aquini [2.6.32-478.el6]Rafael Aquini [2.6.32-477.el6]Rafael Aquini [2.6.32-476.el6]Rafael Aquini [2.6.32-475.el6]Rafael Aquini [2.6.32-474.el6]Rafael Aquini [2.6.32-473.el6]Rafael Aquini [2.6.32-472.el6]Rafael Aquini [2.6.32-471.el6]Rafael Aquini [2.6.32-470.el6]Rafael Aquini [2.6.32-469.el6]Rafael Aquini [2.6.32-468.el6]Rafael Aquini [2.6.32-467.el6]Rafael Aquini [2.6.32-466.el6]Rafael Aquini [2.6.32-465.el6]Rafael Aquini [2.6.32-464.el6]Rafael Aquini [2.6.32-463.el6]Rafael Aquini [2.6.32-462.el6]Rafael Aquini [2.6.32-461.el6]Rafael Aquini [2.6.32-460.el6]Rafael Aquini [2.6.32-459.el6]Rafael Aquini [2.6.32-458.el6]Rafael Aquini [2.6.32-457.el6]Rafael Aquini [2.6.32-456.el6]Rafael Aquini [2.6.32-455.el6]Rafael Aquini [2.6.32-454.el6]Rafael Aquini [2.6.32-453.el6]Rafael Aquini [2.6.32-452.el6]Rafael Aquini [2.6.32-451.el6]Rafael Aquini [2.6.32-450.el6]Rafael Aquini [2.6.32-449.el6]Rafael Aquini [2.6.32-448.el6]Rafael Aquini [2.6.32-447.el6]Rafael Aquini [2.6.32-446.el6]Rafael Aquini [2.6.32-445.el6]Rafael Aquini [2.6.32-444.el6]Rafael Aquini [2.6.32-443.el6]Rafael Aquini [2.6.32-442.el6]Rafael Aquini [2.6.32-441.el6]Rafael Aquini [2.6.32-440.el6]Rafael Aquini [2.6.32-439.el6]Rafael Aquini [2.6.32-438.el6]Rafael Aquini [2.6.32-437.el6]Rafael Aquini [2.6.32-436.el6]Rafael Aquini [2.6.32-435.el6]Rafael Aquini [2.6.32-434.el6]Rafael Aquini [2.6.32-433.el6]Rafael Aquini [2.6.32-432.el6]Rafael Aquini [2.6.32-431.el6]Rafael Aquini [2.6.32-430.el6]Rafael Aquini [2.6.32-429.el6]Rafael Aquini [2.6.32-428.el6]Rafael Aquini [2.6.32-427.el6]Rafael Aquini [2.6.32-426.el6]Rafael Aquini [2.6.32-425.el6]Rafael Aquini [2.6.32-424.el6]Rafael Aquini [2.6.32-423.el6]Rafael Aquini [2.6.32-422.el6]Rafael Aquini [2.6.32-421.el6]Rafael Aquini [2.6.32-420.el6]Rafael Aquini [2.6.32-419.el6]Rafael Aquini [2.6.32-418.el6]Rafael Aquini [2.6.32-417.el6]Rafael Aquini [2.6.32-416.el6]Rafael Aquini [2.6.32-415.el6]Rafael Aquini [2.6.32-414.el6]Rafael Aquini [2.6.32-413.el6]Rafael Aquini [2.6.32-412.el6]Rafael Aquini [2.6.32-411.el6]Rafael Aquini [2.6.32-410.el6]Rafael Aquini [2.6.32-409.el6]Rafael Aquini [2.6.32-408.el6]Rafael Aquini [2.6.32-407.el6]Rafael Aquini [2.6.32-406.el6]Rafael Aquini [2.6.32-405.el6]Rafael Aquini [2.6.32-404.el6]Rafael Aquini [2.6.32-403.el6]Rafael Aquini [2.6.32-402.el6]Rafael Aquini [2.6.32-401.el6]Rafael Aquini [2.6.32-400.el6]Rafael Aquini [2.6.32-399.el6]Rafael Aquini [2.6.32-398.el6]Jarod Wilson [2.6.32-397.el6]Jarod Wilson [2.6.32-396.el6]Jarod Wilson [2.6.32-395.el6]Jarod Wilson [2.6.32-394.el6]Jarod Wilson [2.6.32-393.el6]Jarod Wilson [2.6.32-392.el6]Jarod Wilson [2.6.32-391.el6]Jarod Wilson [2.6.32-390.el6]Jarod Wilson [2.6.32-389.el6]Jarod Wilson [2.6.32-388.el6]Jarod Wilson [2.6.32-387.el6]Jarod Wilson [2.6.32-386.el6]Jarod Wilson [2.6.32-385.el6]Jarod Wilson [2.6.32-384.el6]Jarod Wilson [2.6.32-383.el6]Jarod Wilson [2.6.32-382.el6]Jarod Wilson [2.6.32-381.el6]Jarod Wilson [2.6.32-380.el6]Jarod Wilson [2.6.32-379.el6]Jarod Wilson [2.6.32-378.el6]Jarod Wilson [2.6.32-377.el6]Jarod Wilson [2.6.32-376.el6]Jarod Wilson [2.6.32-375.el6]Jarod Wilson [2.6.32-374.el6]Jarod Wilson [2.6.32-373.el6]Jarod Wilson [2.6.32-372.el6]Jarod Wilson [2.6.32-371.el6]Jarod Wilson [2.6.32-370.el6]Jarod Wilson [2.6.32-369.el6]Jarod Wilson [2.6.32-368.el6]Jarod Wilson [2.6.32-367.el6]Jarod Wilson [2.6.32-366.el6]Jarod Wilson [2.6.32-365.el6]Jarod Wilson [2.6.32-364.el6]Jarod Wilson [2.6.32-363.el6]Jarod Wilson [2.6.32-362.el6]Jarod Wilson [2.6.32-361.el6]Jarod Wilson [2.6.32-360.el6]Jarod Wilson [2.6.32-359.el6]Jarod Wilson [2.6.32-358.el6]Jarod Wilson [2.6.32-357.el6]Jarod Wilson [2.6.32-356.el6]Jarod Wilson [2.6.32-355.el6]Jarod Wilson [2.6.32-354.el6]Jarod Wilson [2.6.32-353.el6]Jarod Wilson [2.6.32-352.el6]Jarod Wilson [2.6.32-351.el6]Jarod Wilson [2.6.32-350.el6]Jarod Wilson [2.6.32-349.el6]Jarod Wilson [2.6.32-348.el6]Jarod Wilson [2.6.32-347.el6]Jarod Wilson [2.6.32-346.el6]Jarod Wilson [2.6.32-345.el6]Jarod Wilson [2.6.32-344.el6]Jarod Wilson [2.6.32-343.el6]Jarod Wilson [2.6.32-342.el6]Jarod Wilson [2.6.32-341.el6]Jarod Wilson [2.6.32-340.el6]Jarod Wilson [2.6.32-339.el6]Jarod Wilson [2.6.32-338.el6]Jarod Wilson [2.6.32-337.el6]Jarod Wilson [2.6.32-336.el6]Jarod Wilson [2.6.32-335.el6]Jarod Wilson [2.6.32-334.el6]Jarod Wilson [2.6.32-333.el6]Jarod Wilson [2.6.32-332.el6]Jarod Wilson [2.6.32-331.el6]Jarod Wilson [2.6.32-330.el6]Jarod Wilson [2.6.32-329.el6]Jarod Wilson [2.6.32-328.el6]Jarod Wilson [2.6.32-327.el6]Jarod Wilson [2.6.32-326.el6]Jarod Wilson [2.6.32-325.el6]Jarod Wilson [2.6.32-324.el6]Jarod Wilson [2.6.32-323.el6]Jarod Wilson [2.6.32-322.el6]Jarod Wilson [2.6.32-321.el6]Jarod Wilson [2.6.32-320.el6]Jarod Wilson [2.6.32-319.el6]Jarod Wilson [2.6.32-318.el6]Jarod Wilson [2.6.32-317.el6]Jarod Wilson [2.6.32-316.el6]Jarod Wilson [2.6.32-315.el6]Jarod Wilson [2.6.32-314.el6]Jarod Wilson [2.6.32-313.el6]Jarod Wilson [2.6.32-312.el6]Jarod Wilson [2.6.32-311.el6]Jarod Wilson [2.6.32-310.el6]Jarod Wilson [2.6.32-309.el6]Jarod Wilson [2.6.32-308.el6]Jarod Wilson [2.6.32-307.el6]Jarod Wilson [2.6.32-306.el6]Jarod Wilson [2.6.32-305.el6]Jarod Wilson [2.6.32-304.el6]Jarod Wilson [2.6.32-303.el6]Jarod Wilson [2.6.32-302.el6]Jarod Wilson [2.6.32-301.el6]Jarod Wilson [2.6.32-300.el6]Jarod Wilson [2.6.32-299.el6]Jarod Wilson [2.6.32-298.el6]Jarod Wilson [2.6.32-297.el6]Jarod Wilson [2.6.32-296.el6]Jarod Wilson [2.6.32-295.el6]Jarod Wilson [2.6.32-294.el6]Jarod Wilson [2.6.32-293.el6]Jarod Wilson [2.6.32-292.el6]Jarod Wilson [2.6.32-291.el6]Jarod Wilson [2.6.32-290.el6]Jarod Wilson [2.6.32-289.el6]Jarod Wilson [2.6.32-288.el6]Jarod Wilson [2.6.32-287.el6]Jarod Wilson [2.6.32-286.el6]Jarod Wilson [2.6.32-285.el6]Jarod Wilson [2.6.32-284.el6]Jarod Wilson [2.6.32-283.el6]Jarod Wilson [2.6.32-282.el6]Jarod Wilson [2.6.32-281.el6]Jarod Wilson [2.6.32-280.el6]Jarod Wilson [2.6.32-279.el6]Jarod Wilson [2.6.32-278.el6]Jarod Wilson [2.6.32-277.el6]Jarod Wilson [2.6.32-276.el6]Jarod Wilson [2.6.32-275.el6]Jarod Wilson [2.6.32-274.el6]Jarod Wilson [2.6.32-273.el6]Jarod Wilson [2.6.32-272.el6]Jarod Wilson [2.6.32-271.el6]Jarod Wilson [2.6.32-270.el6]Jarod Wilson [2.6.32-269.el6]Jarod Wilson [2.6.32-268.el6]Aristeu Rozanski [2.6.32-267.el6]Aristeu Rozanski [2.6.32-266.el6]Aristeu Rozanski [2.6.32-265.el6]Aristeu Rozanski [2.6.32-264.el6]Aristeu Rozanski [2.6.32-263.el6]Aristeu Rozanski [2.6.32-262.el6]Aristeu Rozanski [2.6.32-261.el6]Aristeu Rozanski [2.6.32-260.el6]Aristeu Rozanski [2.6.32-259.el6]Aristeu Rozanski [2.6.32-258.el6]Aristeu Rozanski [2.6.32-257.el6]Aristeu Rozanski [2.6.32-256.el6]Aristeu Rozanski [2.6.32-255.el6]Aristeu Rozanski [2.6.32-254.el6]Aristeu Rozanski [2.6.32-253.el6]Aristeu Rozanski [2.6.32-252.el6]Aristeu Rozanski [2.6.32-251.el6]Aristeu Rozanski [2.6.32-250.el6]Aristeu Rozanski [2.6.32-249.el6]Aristeu Rozanski [2.6.32-248.el6]Aristeu Rozanski [2.6.32-247.el6]Aristeu Rozanski [2.6.32-246.el6]Aristeu Rozanski [2.6.32-245.el6]Aristeu Rozanski [2.6.32-244.el6]Aristeu Rozanski [2.6.32-243.el6]Aristeu Rozanski [2.6.32-242.el6]Aristeu Rozanski [2.6.32-241.el6]Aristeu Rozanski [2.6.32-240.el6]Aristeu Rozanski [2.6.32-239.el6]Aristeu Rozanski [2.6.32-238.el6]Aristeu Rozanski [2.6.32-237.el6]Aristeu Rozanski [2.6.32-236.el6]Aristeu Rozanski [2.6.32-235.el6]Aristeu Rozanski [2.6.32-234.el6]Aristeu Rozanski [2.6.32-233.el6]Aristeu Rozanski [2.6.32-232.el6]Aristeu Rozanski [2.6.32-231.el6]Aristeu Rozanski [2.6.32-230.el6]Aristeu Rozanski [2.6.32-229.el6]Aristeu Rozanski [2.6.32-228.el6]Aristeu Rozanski [2.6.32-227.el6]Aristeu Rozanski [2.6.32-226.el6]Aristeu Rozanski [2.6.32-225.el6]Aristeu Rozanski [2.6.32-224.el6]Aristeu Rozanski [2.6.32-223.el6]Aristeu Rozanski [2.6.32-222.el6]Aristeu Rozanski [2.6.32-221.el6]Aristeu Rozanski [2.6.32-220.el6]Aristeu Rozanski [2.6.32-219.el6]Aristeu Rozanski [2.6.32-218.el6]Aristeu Rozanski [2.6.32-217.el6]Aristeu Rozanski [2.6.32-216.el6]Aristeu Rozanski [2.6.32-215.el6]Aristeu Rozanski [2.6.32-214.el6]Aristeu Rozanski [2.6.32-213.el6]Aristeu Rozanski [2.6.32-212.el6]Aristeu Rozanski [2.6.32-211.el6]Aristeu Rozanski [2.6.32-210.el6]Aristeu Rozanski [2.6.32-209.el6]Aristeu Rozanski [2.6.32-208.el6]Aristeu Rozanski [2.6.32-207.el6]Aristeu Rozanski [2.6.32-206.el6]Aristeu Rozanski [2.6.32-205.el6]Kyle McMartin [2.6.32-204.el6]Kyle McMartin [2.6.32-203.el6]Aristeu Rozanski [2.6.32-202.el6]Aristeu Rozanski [2.6.32-201.el6]Aristeu Rozanski [2.6.32-200.el6]Aristeu Rozanski [2.6.32-199.el6]Kyle McMartin [2.6.32-198.el6]Aristeu Rozanski [2.6.32-197.el6]Aristeu Rozanski [2.6.32-196.el6]Aristeu Rozanski [2.6.32-195.el6]Aristeu Rozanski [2.6.32-194.el6]Aristeu Rozanski [2.6.32-193.el6]Aristeu Rozanski [2.6.32-192.el6]Kyle McMartin [2.6.32-191.el6]Aristeu Rozanski [2.6.32-190.el6]Aristeu Rozanski [2.6.32-189.el6]Kyle McMartin [2.6.32-188.el6]Kyle McMartin [2.6.32-187.el6]Aristeu Rozanski [2.6.32-186.el6]Aristeu Rozanski [2.6.32-185.el6]Aristeu Rozanski [2.6.32-184.el6]Kyle McMartin [2.6.32-183.el6]Aristeu Rozanski [2.6.32-182.el6]Kyle McMartin [2.6.32-181.el6]Aristeu Rozanski [2.6.32-180.el6]Aristeu Rozanski [2.6.32-179.el6]Kyle McMartin [2.6.32-178.el6]Aristeu Rozanski [2.6.32-177.el6]Aristeu Rozanski [2.6.32-176.el6]Kyle McMartin [2.6.32-175.el6]Aristeu Rozanski [2.6.32-174.el6]Aristeu Rozanski [2.6.32-173.el6]Kyle McMartin [2.6.32-172.el6]Kyle McMartin [2.6.32-171.el6]Kyle McMartin [2.6.32-170.el6]Aristeu Rozanski [2.6.32-169.el6]Kyle McMartin [2.6.32-168.el6]Aristeu Rozanski [2.6.32-167.el6]Kyle McMartin [2.6.32-166.el6]Aristeu Rozanski [2.6.32-165.el6]Kyle McMartin [2.6.32-164.el6]Aristeu Rozanski [2.6.32-163.el6]Aristeu Rozanski [2.6.32-162.el6]Kyle McMartin [2.6.32-161.el6]Aristeu Rozanski [2.6.32-160.el6]Aristeu Rozanski [2.6.32-159.el6]Aristeu Rozanski [2.6.32-158.el6]Aristeu Rozanski [2.6.32-157.el6]Aristeu Rozanski [2.6.32-156.el6]Aristeu Rozanski [2.6.32-155.el6]Aristeu Rozanski [2.6.32-154.el6]Aristeu Rozanski [2.6.32-153.el6]Aristeu Rozanski [2.6.32-152.el6]Aristeu Rozanski [2.6.32-151.el6]Aristeu Rozanski [2.6.32-150.el6]Aristeu Rozanski [2.6.32-149.el6]Aristeu Rozanski [2.6.32-148.el6]Aristeu Rozanski [2.6.32-147.el6]Aristeu Rozanski [2.6.32-146.el6]Aristeu Rozanski [2.6.32-145.el6]Aristeu Rozanski [2.6.32-144.el6]Aristeu Rozanski [2.6.32-143.el6]Aristeu Rozanski [2.6.32-142.el6]Aristeu Rozanski [2.6.32-141.el6]Aristeu Rozanski [2.6.32-140.el6]Aristeu Rozanski [2.6.32-139.el6]Aristeu Rozanski [2.6.32-138.el6]Aristeu Rozanski [2.6.32-137.el6]Aristeu Rozanski [2.6.32-136.el6]Aristeu Rozanski [2.6.32-135.el6]Aristeu Rozanski [2.6.32-134.el6]Aristeu Rozanski [2.6.32-133.el6]Aristeu Rozanski [2.6.32-132.el6]Aristeu Rozanski [2.6.32-131.el6]Aristeu Rozanski [2.6.32-130.el6]Aristeu Rozanski [2.6.32-129.el6]Aristeu Rozanski [2.6.32-128.el6]Aristeu Rozanski [2.6.32-127.el6]Aristeu Rozanski [2.6.32-126.el6]Aristeu Rozanski [2.6.32-125.el6]Aristeu Rozanski [2.6.32-124.el6]Aristeu Rozanski [2.6.32-123.el6]Aristeu Rozanski [2.6.32-122.el6]Aristeu Rozanski [2.6.32-121.el6]Aristeu Rozanski [2.6.32-120.el6]Aristeu Rozanski [2.6.32-119.el6]Aristeu Rozanski [2.6.32-118.el6]Aristeu Rozanski [2.6.32-117.el6]Aristeu Rozanski [2.6.32-116.el6]Aristeu Rozanski [2.6.32-115.el6]Aristeu Rozanski [2.6.32-114.el6]Aristeu Rozanski [2.6.32-113.el6]Aristeu Rozanski [2.6.32-112.el6]Aristeu Rozanski [2.6.32-111.el6]Aristeu Rozanski [2.6.32-110.el6]Aristeu Rozanski [2.6.32-109.el6]Aristeu Rozanski [2.6.32-108.el6]Aristeu Rozanski [2.6.32-107.el6]Aristeu Rozanski [2.6.32-106.el6]Aristeu Rozanski [2.6.32-105.el6]Aristeu Rozanski [2.6.32-104.el6]Aristeu Rozanski [2.6.32-103.el6]Aristeu Rozanski [2.6.32-102.el6]Aristeu Rozanski [2.6.32-101.el6]Aristeu Rozanski [2.6.32-100.el6]Aristeu Rozanski [2.6.32-99.el6]Aristeu Rozanski [2.6.32-98.el6]Aristeu Rozanski [2.6.32-97.el6]Aristeu Rozanski [2.6.32-96.el6]Aristeu Rozanski [2.6.32-95.el6]Aristeu Rozanski [2.6.32-94.el6]Aristeu Rozanski [2.6.32-93.el6]Aristeu Rozanski [2.6.32-92.el6]Aristeu Rozanski [2.6.32-91.el6]Aristeu Rozanski [2.6.32-90.el6]Aristeu Rozanski [2.6.32-89.el6]Aristeu Rozanski [2.6.32-88.el6]Aristeu Rozanski [2.6.32-87.el6]Aristeu Rozanski [2.6.32-86.el6]Aristeu Rozanski [2.6.32-85.el6]Aristeu Rozanski [2.6.32-84.el6]Aristeu Rozanski [2.6.32-83.el6]Aristeu Rozanski [2.6.32-82.el6]Aristeu Rozanski [2.6.32-81.el6]Aristeu Rozanski [2.6.32-80.el6]Aristeu Rozanski [2.6.32-79.el6]Aristeu Rozanski [2.6.32-78.el6]Aristeu Rozanski [2.6.32-77.el6]Aristeu Rozanski [2.6.32-76.el6]Aristeu Rozanski [2.6.32-75.el6]Aristeu Rozanski [2.6.32-74.el6]Aristeu Rozanski [2.6.32-73.el6]Aristeu Rozanski [2.6.32-72.el6]Aristeu Rozanski [2.6.32-71.el6]Aristeu Rozanski [2.6.32-70.el6]Aristeu Rozanski [2.6.32-69.el6]Aristeu Rozanski [2.6.32-68.el6]Aristeu Rozanski [2.6.32-67.el6]Aristeu Rozanski [2.6.32-66.el6]Aristeu Rozanski [2.6.32-65.el6]Aristeu Rozanski [2.6.32-64.el6]Aristeu Rozanski [2.6.32-63.el6]Aristeu Rozanski [2.6.32-62.el6]Aristeu Rozanski [2.6.32-61.el6]Aristeu Rozanski [2.6.32-60.el6]Aristeu Rozanski [2.6.32-59.el6]Aristeu Rozanski [2.6.32-58.el6]Aristeu Rozanski [2.6.32-57.el6]Aristeu Rozanski [2.6.32-56.el6]Aristeu Rozanski [2.6.32-55.el6]Aristeu Rozanski [2.6.32-54.el6]Aristeu Rozanski [2.6.32-53.el6]Aristeu Rozanski [2.6.32-52.el6]Aristeu Rozanski [2.6.32-51.el6]Aristeu Rozanski [2.6.32-50.el6]Aristeu Rozanski [2.6.32-49.el6]Aristeu Rozanski [2.6.32-48.el6]Aristeu Rozanski [2.6.32-47.el6]Aristeu Rozanski [2.6.32-46.el6]Aristeu Rozanski [2.6.32-45.el6]Aristeu Rozanski [2.6.32-44.el6]Aristeu Rozanski [2.6.32-43.el6]Aristeu Rozanski [2.6.32-42.el6]Aristeu Rozanski [2.6.32-41.el6]Aristeu Rozanski [2.6.32-40.el6]Aristeu Rozanski [2.6.32-39.el6]Aristeu Rozanski [2.6.32-38.el6]Aristeu Rozanski [2.6.32-37.el6]Aristeu Rozanski [2.6.32-36.el6]Aristeu Rozanski [2.6.32-35.el6]Aristeu Rozanski [2.6.32-34.el6]Aristeu Rozanski [2.6.32-33.el6]Aristeu Rozanski [2.6.32-32.el6]Aristeu Rozanski [2.6.32-31.el6]Aristeu Rozanski [2.6.32-30.el6]Aristeu Rozanski [2.6.32-29.el6]Aristeu Rozanski [2.6.32-28.el6]Aristeu Rozanski [2.6.32-27.el6]Aristeu Rozanski [2.6.32-26.el6]Aristeu Rozanski [2.6.32-25.el6]Aristeu Rozanski [2.6.32-24.el6]Aristeu Rozanski [2.6.32-23.el6]Aristeu Rozanski [2.6.32-22.el6]Aristeu Rozanski [2.6.32-21.el6]Aristeu Rozanski [2.6.32-20.el6]Aristeu Rozanski [2.6.32-19.el6]Aristeu Rozanski [2.6.32-18.el6]Aristeu Rozanski [2.6.32-17.el6]Aristeu Rozanski [2.6.32-16.el6]Aristeu Rozanski [2.6.32-15.el6]Aristeu Rozanski [2.6.32-14.el6]Aristeu Rozanski [2.6.32-13.el6]Aristeu Rozanski [2.6.32-12.el6]Aristeu Rozanski [2.6.32-11.el6]Aristeu Rozanski [2.6.32-10.el6]Aristeu Rozanski [2.6.32-9.el6]Aristeu Rozanski [2.6.32-8.el6]Aristeu Rozanski [2.6.32-7.el6]Aristeu Rozanski [2.6.32-6.el6]Aristeu Rozanski [2.6.32-5.el6]Aristeu Rozanski [2.6.32-4.el6]Aristeu Rozanski [2.6.32-3.el6]Aristeu Rozanski [2.6.32-2.el6]Aristeu Rozanski [2.6.32-1.el6]Aristeu Rozanski [2.6.32-0.54.el6]Aristeu Rozanski [2.6.32-0.53.el6]Aristeu Rozanski [2.6.32-0.52.el6]Aristeu Rozanski [2.6.32-0.51.el6]Aristeu Rozanski [2.6.32-0.50.el6]- [scsi] fc: revert - ensure scan_work isn't active when freeing fc_rport (Ewan Milne) [1326447] - [netdrv] ixgbe: Update ixgbe driver to use __netdev_pick_tx in ixgbe_select_queue (John Greene) [1310749] - [netdrv] mlx5e: Fix adding vlan rule with vid zero twice (Kamal Heib) [1322809]- [netdrv] ixgbe: restore proper CHECKSUM_UNNECESSARY behavior for LRO packets (Neil Horman) [1318426] - [netdrv] revert " net/mlx5_core: Add pci error handlers to mlx5_core driver" (Don Dutile) [1324599] - [x86] kernel: espfix not working for 32-bit KVM paravirt guests (Jacob Tanenbaum) [1172767] {CVE-2014-8134}- [net] use GFP_ATOMIC in dst_ops_extend_register (Sabrina Dubroca) [1323252] - [kernel] revert "sched: core: Use hrtimer_start_expires" (Jiri Olsa) [1324318] - [kernel] Revert "Cleanup bandwidth timers" (Jiri Olsa) [1324318] - [kernel] revert "fair: Test list head instead of list entry in throttle_cfs_rq" (Jiri Olsa) [1324318] - [kernel] revert "sched, perf: Fix periodic timers" (Jiri Olsa) [1324318] - [kernel] Revert "fix KABI break" (Jiri Olsa) [1324318]- [input] wacom: fix ExpressKeys remote events (Aristeu Rozanski) [1318027] - [fs] revert "writeback: remove wb_list" (Jeff Moyer) [1322297] - [fs] revert "writeback: bdi_writeback_task must set task state before calling schedule" (Jeff Moyer) [1322297] - [fs] revert "writeback: merge bdi_writeback_task and bdi_start_fn" (Jeff Moyer) [1322297] - [fs] revert "writeback: harmonize writeback threads naming" (Jeff Moyer) [1322297] - [fs] revert "writeback: fix possible race when creating bdi threads" (Jeff Moyer) [1322297] - [fs] revert "writeback: do not lose wake-ups in the forker thread - 1" (Jeff Moyer) [1322297] - [fs] revert "writeback: do not lose wake-ups in the forker thread - 2" (Jeff Moyer) [1322297] - [fs] revert "writeback: do not lose wake-ups in bdi threads" (Jeff Moyer) [1322297] - [fs] revert "writeback: simplify bdi code a little" (Jeff Moyer) [1322297] - [fs] revert "writeback: do not remove bdi from bdi_list" (Jeff Moyer) [1322297] - [fs] revert "writeback: move last_active to bdi" (Jeff Moyer) [1322297] - [fs] revert "writeback: restructure bdi forker loop a little" (Jeff Moyer) [1322297] - [fs] revert "writeback: move bdi threads exiting logic to the forker thread" (Jeff Moyer) [1322297] - [fs] revert "writeback: prevent unnecessary bdi threads wakeups" (Jeff Moyer) [1322297] - [fs] revert "writeback: optimize periodic bdi thread wakeups" (Jeff Moyer) [1322297] - [fs] revert "writeback: remove unnecessary init_timer call" (Jeff Moyer) [1322297] - [fs] revert "writeback: cleanup bdi_register" (Jeff Moyer) [1322297] - [fs] revert "writeback: fix bad _bh spinlock nesting" (Jeff Moyer) [1322297] - [fs] revert "writeback: do not lose wakeup events when forking bdi threads" (Jeff Moyer) [1322297] - [fs] revert "writeback: Fix lost wake-up shutting down writeback thread" (Jeff Moyer) [1322297] - [mm] revert "backing-dev: ensure wakeup_timer is deleted" (Jeff Moyer) [1322297] - [perf] revert: perf changes out of "sched, perf: Fix periodic timers" (Jiri Olsa) [1322488]- [mm] hugetlb: prevent BUG_ON in hugetlb_fault -> hugetlb_cow (Dave Anderson) [1303495] - [mm] hugetlb: fix race condition in hugetlb_fault (Dave Anderson) [1303495] - [s390] kdump: fix wrong BUG_ON statement (Hendrik Brueckner) [1321316] - [scsi] cxgb4i: Increased the value of MAX_IMM_TX_PKT_LEN from 128 to 256 bytes (Sai Vemuri) [1320193] - [fs] nfs: fix a regression causing deadlock in nfs_wb_page_cancel() (Benjamin Coddington) [1135601] - [netdrv] cxgb4/ethtool: Get/set rx checksum (Sai Vemuri) [1225167] - [netdrv] cxgb4vf:The RX checksum feature was not completely ported to cxgb4vf driver (Sai Vemuri) [1225167] - [netdrv] cxgb4/cxgb4vf: Enable GRO (Sai Vemuri) [1225167] - [netdrv] cxgb4: Enable RX checksum offload flag (Sai Vemuri) [1225167] - [netdrv] cxgb4: Report correct link speed for unsupported ones (Sai Vemuri) [1296467] - [netdrv] cxgb4: Use vmalloc, if kmalloc fails (Sai Vemuri) [1296473] - [netdrv] cxgb4: Enhance driver to update FW, when FW is too old (Sai Vemuri) [1296472]- [netdrv] mlx4-en: add missing patch to init rss_rings in get_profile (Don Dutile) [1321164] - [netdrv] mlx4-en: disable traffic class queueing by default (Don Dutile) [1321164] - [netdrv] mlx4_core: Fix mailbox leak in error flow when performing update qp (Don Dutile) [1321164] - [x86] nmi/64: Fix a paravirt stack-clobbering bug in the NMI code (Denys Vlasenko) [1259581] {CVE-2015-5157} - [x86] nmi/64: Switch stacks on userspace NMI entry (Denys Vlasenko) [1259581] {CVE-2015-5157}- [netdrv] mlx4_en: Choose time-stamping shift value according to HW frequency (Kamal Heib) [1320448] - [fs] anon_inodes implement dname (Aristeu Rozanski) [1296019] - [net] packet: set transport header before doing xmit (John Greene) [1309526] - [net] tuntap: set transport header before passing it to kernel (John Greene) [1309526] - [netdrv] macvtap: set transport header before passing skb to lower device (John Greene) [1309526] - [net] ipv6: tcp: add rcu locking in tcp_v6_send_synack() (Jakub Sitnicki) [1312740] - [net] ipv6: sctp: add rcu protection around np->opt (Jakub Sitnicki) [1312740] - [net] ipv6: add complete rcu protection around np->opt (Jakub Sitnicki) [1312740] - [net] dccp: remove unnecessary codes in ipv6.c (Jakub Sitnicki) [1312740] - [net] ipv6: remove unnecessary codes in tcp_ipv6.c (Jakub Sitnicki) [1312740] - [net] ipv6: Refactor update of IPv6 flowi destination address for srcrt (RH) option (Jakub Sitnicki) [1312740] - [net] ipv6: protect flow label renew against GC (Sabrina Dubroca) [1313231] - [net] ipv6: fix possible deadlock in ip6_fl_purge / ip6_fl_gc (Sabrina Dubroca) [1313231] - [perf] annotate: Support full source file paths for srcline fix (Jiri Olsa) [1304472 1304479] - [perf] tools: Support full source file paths for srcline (Jiri Olsa) [1304472 1304479] - [perf] annotate: Fix -i option, which is currently ignored (Jiri Olsa) [1304472 1304479]- [mm] backing-dev: ensure wakeup_timer is deleted (Jeff Moyer) [1318930] - [hv] vss: run only on supported host versions (Vitaly Kuznetsov) [1319813] - [sound] hda: Fix internal speaker for HP Z240 (Jaroslav Kysela) [1316673] - [perf] trace: Fix race condition at the end of started workloads (Jiri Olsa) [1302928] - [fs] nfsd: Combine decode operations for v4 and v4.1 (J. Bruce Fields) [1314536] - [hv] revert "vmbus: avoid scheduling in interrupt context in vmbus_initiate_unload" (Vitaly Kuznetsov) [1318882] - [hv] revert "vmbus: don't loose HVMSG_TIMER_EXPIRED messages" (Vitaly Kuznetsov) [1318882] - [hv] revert "vmbus: avoid unneeded compiler optimizations in vmbus_wait_for_unload" (Vitaly Kuznetsov) [1318882] - [hv] revert "vmbus: remove code duplication in message handling" (Vitaly Kuznetsov) [1318882] - [hv] revert "vmbus: avoid wait_for_completion on crash" (Vitaly Kuznetsov) [1318882]- [scsi] cxgbi: Convert over to dst_neigh_lookup (Sai Vemuri) [1296461] - [netdrv] cxgb4: For T4, don't read the Firmware Mailbox Control register (Sai Vemuri) [1296469] - [netdrv] cxgb4: Use ACCES_ONCE macro to read queue's consumer index (Sai Vemuri) [1296484] - [netdrv] cxgb4: prevent simultaneous execution of service_ofldq (Sai Vemuri) [1296483] - [netdrv] cxgb4: Adds PCI device id for new T5 adapters (Sai Vemuri) [1296481] - [netdrv] cxgb4: Don't disallow turning off auto-negotiation (Sai Vemuri) [1296476] - [mm] check if section present during memory block registering (Xunlei Pang) [1297840] - [tty] ldisc: Close/Reopen race prevention should check tty->ldisc (Denys Vlasenko) [1312383] - [fs] proc-vmcore: wrong data type casting fix (Baoquan He) [1312206] - [infiniband] iw_cxgb3: Ignore positive return values from the ofld send functions (Sai Vemuri) [1296999] - [netdrv] cxgb4: Deal with wrap-around of queue for Work request (Sai Vemuri) [1296482] - [infiniband] iw_cxgb4: detect fatal errors while creating listening filters (Sai Vemuri) [1296480] - [md] dm snapshot: suspend merging snapshot when doing exception handover (Mike Snitzer) [1177389] - [md] dm snapshot: suspend origin when doing exception handover (Mike Snitzer) [1177389] - [md] dm snapshot: allocate a per-target structure for snapshot-origin target (Mike Snitzer) [1177389] - [md] dm: fix a race condition in dm_get_md (Mike Snitzer) [1177389] - [infiniband] iw_cxgb4: pass the ord/ird in connect reply events (Sai Vemuri) [1296478] - [infiniband] iw_cxgb4: fix misuse of ep->ord for minimum ird calculation (Sai Vemuri) [1296478] - [infiniband] iw_cxgb4: reverse the ord/ird in the ESTABLISHED upcall (Sai Vemuri) [1296478] - [usb] Revert "Revert 'Update USB default wakeup settings'" (Torez Smith) [1319081] - [netdrv] ibmveth: add support for TSO6 (Gustavo Duarte) [1318412]- [s390] lib: export udelay_simple for systemtap (Hendrik Brueckner) [1233912] - [netdrv] ixgbe: fix RSS limit for X550 (John Greene) [1314583] - [netdrv] mlx4_core: Fix error message deprecation for ConnectX-2 cards (Don Dutile) [1316013] - [dm] thin metadata: don't issue prefetches if a transaction abort has failed (Mike Snitzer) [1310661] - [scsi] be2iscsi: Add warning message for unsupported adapter (Maurizio Lombardi) [1253016] - [scsi] be2iscsi: Revert "Add warning message for, unsupported adapter" (Maurizio Lombardi) [1253016] - [scsi] hpsa: update copyright information (Joseph Szczypek) [1315469] - [scsi] hpsa: correct abort tmf for hba devices (Joseph Szczypek) [1315469] - [scsi] hpsa: correct ioaccel2 sg chain len (Joseph Szczypek) [1315469] - [scsi] hpsa: fix physical target reset (Joseph Szczypek) [1315469] - [scsi] hpsa: fix hpsa_adjust_hpsa_scsi_table (Joseph Szczypek) [1315469] - [scsi] hpsa: correct transfer length for 6 byte read/write commands (Joseph Szczypek) [1315469] - [scsi] hpsa: abandon rescans on memory alloaction failures (Joseph Szczypek) [1315469] - [scsi] hpsa: allow driver requested rescans (Joseph Szczypek) [1315469]- [s390] dasd: fix incorrect locking order for LCU device add/remove (Hendrik Brueckner) [1315740] - [s390] dasd: fix hanging device after LCU change (Hendrik Brueckner) [1315729] - [s390] dasd: prevent incorrect length error under z/VM after PAV changes (Hendrik Brueckner) [1313774] - [netdrv] igb: Fix VLAN tag stripping on Intel i350 (Corinna Vinschen) [1210699] - [netdrv] 3c59x: mask LAST_FRAG bit from length field in ring (Neil Horman) [1309210] - [ata] ahci: Remove obsolete Intel Lewisburg SATA RAID device IDs (Steve Best) [1317045] - [pci] fix truncation of resource size to 32 bits (Myron Stowe) [1316345] - [pci] fix pci_resource_alignment prototype (Myron Stowe) [1316345] - [sound] hda: Fix headphone mic input on a few Dell ALC293 machines (Jaroslav Kysela) [1315932] - [sound] hda: Add some FIXUP quirks for white noise on Dell laptop (Jaroslav Kysela) [1315932] - [sound] hda: Fix the white noise on Dell laptop (Jaroslav Kysela) [1315932] - [sound] hda: one Dell machine needs the headphone white noise fixup (Jaroslav Kysela) [1315932] - [sound] hda: Fix audio crackles on Dell Latitude E7x40 (Jaroslav Kysela) [1315932] - [fs] xfs: Avoid pathological backwards allocation (Bill O'Donnell) [1302777]- [input] synaptics: handle spurious release of trackstick buttons, again (Benjamin Tissoires) [1317808] - [hv] kvp: fix IP Failover (Vitaly Kuznetsov) [1312290] - [hv] util: Pass the channel information during the init call (Vitaly Kuznetsov) [1312290] - [hv] utils: Invoke the poll function after handshake (Vitaly Kuznetsov) [1312290] - [hv] utils: run polling callback always in interrupt context (Vitaly Kuznetsov) [1312290] - [hv] util: Increase the timeout for util services (Vitaly Kuznetsov) [1312290]- [mm] avoid hangs in lru_add_drain_all (Vitaly Kuznetsov) [1314683] - [net] esp{4, 6}: fix potential MTU calculation overflows (Herbert Xu) [1304313] - [net] xfrm: take net hdr len into account for esp payload size calculation (Herbert Xu) [1304313]- [x86] acpi: Avoid SRAT table checks for Hyper-V VMs (Vitaly Kuznetsov) [1312711] - [infiniband] ipoib: For sendonly join free the multicast group on leave (Don Dutile) [1315382] - [infiniband] ipoib: increase the max mcast backlog queue (Don Dutile) [1315382] - [infiniband] ipoib: Make sendonly multicast joins create the mcast group (Don Dutile) [1315382] - [infiniband] ipoib: Expire sendonly multicast joins (Don Dutile) [1315382] - [infiniband] ipoib: Clean up send-only multicast joins (Don Dutile) [1315382] - [infiniband] ipoib: Suppress warning for send only join failures (Don Dutile) [1315382] - [drm] i915: shut up gen8+ SDE irq dmesg noise (Rob Clark) [1313681] - [drm] i915: fix the SDE irq dmesg warnings properly (Rob Clark) [1313681] - [hv] vmbus: avoid wait_for_completion on crash (Vitaly Kuznetsov) [1301903] - [hv] vmbus: remove code duplication in message handling (Vitaly Kuznetsov) [1301903] - [hv] vmbus: avoid unneeded compiler optimizations in vmbus_wait_for_unload (Vitaly Kuznetsov) [1301903] - [hv] vmbus: don't loose HVMSG_TIMER_EXPIRED messages (Vitaly Kuznetsov) [1301903] - [hv] vmbus: avoid scheduling in interrupt context in vmbus_initiate_unload (Vitaly Kuznetsov) [1301903]- [netdrv] bnx2x: fix crash on big-endian when adding VLAN (Michal Schmidt) [1311433] - [sound] alsa hda: only sync BCLK to the display clock for Haswell & Broadwell (Jaroslav Kysela) [1313672] - [sound] alsa hda: add component support (Jaroslav Kysela) [1313672] - [sound] alsa hda: pass intel_hda to all i915 interface functions (Jaroslav Kysela) [1313672] - [netdrv] igb: fix race accessing page->_count (Corinna Vinschen) [1315402] - [netdrv] igb: fix recent VLAN changes that would leave VLANs disabled after reset (Corinna Vinschen) [1309968] - [mm] always decrement anon_vma degree when the vma list is empty (Jerome Marchand) [1309898]- [net] rds: restore return value in rds_cmsg_rdma_args (Don Dutile) [1313089] - [net] rds: Fix assertion level from fatal to warning (Don Dutile) [1313089] - [netdrv] be2net: don't enable multicast flag in be_enable_if_filters routine (Ivan Vecera) [1309157] - [net] unix: correctly track in-flight fds in sending process user_struct (Hannes Frederic Sowa) [1313052] {CVE-2016-2550} - [net] sctp: Prevent soft lockup when sctp_accept() is called during a timeout event (Jacob Tanenbaum) [1297422] {CVE-2015-8767}- [fs] nfsv4: OPEN must handle the NFS4ERR_IO return code correctly (Benjamin Coddington) [1272687] - [fs] quota: fix unwanted soft limit enforcement (Lukas Czerner) [1304603] - [fs] xfs: flush entire last page of old EOF on truncate up (Brian Foster) [1308482] - [fs] xfs: truncate_setsize should be outside transactions (Brian Foster) [1308482] - [scsi] megaraid: overcome a fw deficiency (Maurizio Lombardi) [1294983] - [scsi] megaraid_sas: Add an i/o barrier (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Fix SMAP issue (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Fix for IO failing post OCR in SRIOV environment (Tomas Henzl) [1294983] - [scsi] megaraid: fix null pointer check in megasas_detach_one() (Tomas Henzl) [1294983] - [scsi] megaraid_sas: driver version upgrade (Tomas Henzl) [1294983] - [scsi] megaraid_sas: SPERC OCR changes (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Introduce module parameter for SCSI command timeout (Tomas Henzl) [1294983] - [scsi] megaraid_sas: MFI adapter OCR changes (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Make adprecovery variable atomic (Tomas Henzl) [1294983] - [scsi] megaraid_sas: IO throttling support (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Dual queue depth support (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Code optimization build_and_issue_cmd return-type (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Reply Descriptor Post Queue (RDPQ) support (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Fastpath region lock bypass (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Update device queue depth based on interface type (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Task management support (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Syncing request flags macro names with firmware (Tomas Henzl) [1294983] - [scsi] megaraid_sas: MFI IO timeout handling (Tomas Henzl) [1294983] - [scsi] megaraid_sas: Do not allow PCI access during OCR (Tomas Henzl) [1294983] - [scsi] hpsa: check for a null phys_disk pointer in ioaccel2 path (Joseph Szczypek) [1311728]- [netdrv] cxgb4 : Patch to fix kernel panic on pinging over vlan interface (Sai Vemuri) [1303493] - [x86] mm: Improve AMD Bulldozer ASLR workaround (Rik van Riel) [1240883] - [x86] Properly export MSR values in kernel headers (Jacob Tanenbaum) [1298255] - [netdrv] tehuti: Firmware filename is tehuti/bdx.bin (Ivan Vecera) [1235961] - [netdrv] ixgbe: convert to ndo_fix_features (John Greene) [1279522] - [drm] revert "drm: Use vblank timestamps to guesstimate how many vblanks were missed" (Lyude Paul) [1300086] - [fs] writeback: Fix lost wake-up shutting down writeback thread (Jeff Moyer) [1111683] - [fs] writeback: do not lose wakeup events when forking bdi threads (Jeff Moyer) [1111683] - [fs] writeback: fix bad _bh spinlock nesting (Jeff Moyer) [1111683] - [fs] writeback: cleanup bdi_register (Jeff Moyer) [1111683] - [fs] writeback: remove unnecessary init_timer call (Jeff Moyer) [1111683] - [fs] writeback: optimize periodic bdi thread wakeups (Jeff Moyer) [1111683] - [fs] writeback: prevent unnecessary bdi threads wakeups (Jeff Moyer) [1111683] - [fs] writeback: move bdi threads exiting logic to the forker thread (Jeff Moyer) [1111683] - [fs] writeback: restructure bdi forker loop a little (Jeff Moyer) [1111683] - [fs] writeback: move last_active to bdi (Jeff Moyer) [1111683] - [fs] writeback: do not remove bdi from bdi_list (Jeff Moyer) [1111683] - [fs] writeback: simplify bdi code a little (Jeff Moyer) [1111683] - [fs] writeback: do not lose wake-ups in bdi threads (Jeff Moyer) [1111683] - [fs] writeback: do not lose wake-ups in the forker thread - 2 (Jeff Moyer) [1111683] - [fs] writeback: do not lose wake-ups in the forker thread - 1 (Jeff Moyer) [1111683] - [fs] writeback: fix possible race when creating bdi threads (Jeff Moyer) [1111683] - [fs] writeback: harmonize writeback threads naming (Jeff Moyer) [1111683] - [fs] writeback: merge bdi_writeback_task and bdi_start_fn (Jeff Moyer) [1111683] - [fs] writeback: bdi_writeback_task must set task state before calling schedule (Jeff Moyer) [1111683] - [fs] writeback: remove wb_list (Jeff Moyer) [1111683] - [drm] i915: Change WARN_ON(!wm_changed) to I915_STATE_WARN_ON (Lyude Paul) [1309888] - [drm] i915: Quiet down state checks (Lyude Paul) [1309888] - [drm] i915: Fix a few of the !wm_changed warnings (Lyude Paul) [1309888]- [netdrv] tg3: Fix for tg3 transmit queue 0 timed out when too many gso_segs (Ivan Vecera) [1222426] - [netdrv] bna: fix list corruption (Ivan Vecera) [1310957] - [netdrv] cxgb4 : Add cxgb4 T4/T5 firmware version 1.14.4.0, hardcode driver to the same (Sai Vemuri) [1270347] - [drm] i915: WaRsDisableCoarsePowerGating (Rob Clark) [1302269] - [drm] i915/skl: Add SKL GT4 PCI IDs (Rob Clark) [1302269]- [perf] revert "perf/x86/intel uncore: Move uncore_box_init() out of driver initialization" (Jiri Olsa) [1313062] - [net] udp: move logic out of udp[46]_ufo_send_check (Sabrina Dubroca) [1299975] - [netdrv] hv_netvsc: Restore needed_headroom request (Vitaly Kuznetsov) [1305000] - [net] pktgen: fix null ptr deref in skb allocation (Vitaly Kuznetsov) [1305000] - [net] pktgen: Observe needed_headroom of the device (Vitaly Kuznetsov) [1305000] - [net] pktgen: ipv6: numa: consolidate skb allocation to pktgen_alloc_skb (Vitaly Kuznetsov) [1305000] - [net] pktgen: fix crash with vlan and packet size less than 46 (Vitaly Kuznetsov) [1305000] - [net] pktgen: speedup fragmented skbs (Vitaly Kuznetsov) [1305000] - [net] pktgen: correct uninitialized queue_map (Vitaly Kuznetsov) [1305000] - [net] pktgen node allocation (Vitaly Kuznetsov) [1305000] - [net] af_unix: Guard against other == sk in unix_dgram_sendmsg (Jakub Sitnicki) [1309241] - [net] veth: don't modify ip_summed; doing so treats packets with bad checksums as good (Sabrina Dubroca) [1308586] - [net] ipv6: udp: use sticky pktinfo egress ifindex on connect() (Xin Long) [1301475] - [net] provide default_advmss() methods to blackhole dst_ops (Paolo Abeni) [1305068] - [net] sctp: translate network order to host order when users get a hmacid (Xin Long) [1303822] - [powerpc] pseries: Make 32-bit MSI quirk work on systems lacking firmware support (Oded Gabbay) [1303678] - [powerpc] pseries: Force 32 bit MSIs for devices that require it (Oded Gabbay) [1303678] - [netdrv] bnxt_en: Fix zero padding of tx push data (John Linville) [1310301] - [netdrv] bnxt_en: Failure to update PHY is not fatal condition (John Linville) [1310301] - [netdrv] bnxt_en: Remove unnecessary call to update PHY settings (John Linville) [1310301] - [netdrv] bnxt_en: Poll link at the end of __bnxt_open_nic (John Linville) [1310301] - [netdrv] bnxt_en: Reduce default ring sizes (John Linville) [1310301] - [netdrv] bnxt_en: Fix implementation of tx push operation (John Linville) [1310301] - [netdrv] bnxt_en: Remove 20G support and advertise only 40GbaseCR4 (John Linville) [1310301] - [netdrv] bnxt_en: Cleanup and Fix flow control setup logic (John Linville) [1310301] - [netdrv] bnxt_en: Fix ethtool autoneg logic (John Linville) [1310301]- [netdrv] bonding: Fix ARP monitor validation (Jarod Wilson) [1244170] - [netdrv] sfc: only use RSS filters if we're using RSS (Jarod Wilson) [1304311] - [dm] delay: fix RHEL6 specific bug when establishing future 'expires' time (Mike Snitzer) [1311615] - [ata] Adding Intel Lewisburg device IDs for SATA (Steve Best) [1310237] - [i2c] i801: Adding Intel Lewisburg support for iTCO (Rui Wang) [1304872] - [x86] Mark Grangeville ixgbe PCI ID 15AE (1 gig PHY) unsupported (Steve Best) [1310585] - [kernel] lockd: properly convert be32 values in debug messages (Harshula Jayasuriya) [1289848] - [i2c] convert i2c-isch to platform_device (Prarit Bhargava) [1211747] - [tty] do not reset master's packet mode (Denys Vlasenko) [1308660] - [block] don't assume last put of shared tags is for the host (Jeff Moyer) [1300538] - [netdrv] i40evf: use pages correctly in Rx (Stefan Assmann) [1293754] - [netdrv] i40e: fix bug in dma sync (Stefan Assmann) [1293754] - [sched] fix KABI break (Seth Jennings) [1230310] - [sched] fair: Test list head instead of list entry in throttle_cfs_rq (Seth Jennings) [1230310] - [sched] sched,perf: Fix periodic timers (Seth Jennings) [1230310] - [sched] sched: debug: Remove the cfs bandwidth timer_active printout (Seth Jennings) [1230310] - [sched] Cleanup bandwidth timers (Seth Jennings) [1230310] - [sched] sched: core: Use hrtimer_start_expires (Seth Jennings) [1230310] - [sched] fair: Fix unlocked reads of some cfs_b->quota/period (Seth Jennings) [1230310] - [sched] Fix potential near-infinite distribute_cfs_runtime loop (Seth Jennings) [1230310] - [sched] fair: Fix tg_set_cfs_bandwidth deadlock on rq->lock (Seth Jennings) [1230310] - [sched] Fix hrtimer_cancel/rq->lock deadlock (Seth Jennings) [1230310] - [sched] Fix cfs_bandwidth misuse of hrtimer_expires_remaining (Seth Jennings) [1230310] - [sched] Refine the code in unthrottle_cfs_rq (Seth Jennings) [1230310] - [sched] Update rq clock earlier in unthrottle_cfs_rq (Seth Jennings) [1230310] - [drm] radeon: mask out WC from BO on unsupported arches (Oded Gabbay) [1303678] - [drm] add helper to check for wc memory support (Oded Gabbay) [1303678] - [acpi] pci: Account for ARI in _PRT lookups (Ivan Vecera) [1311421] - [pci] Move pci_ari_enabled() to global header (Ivan Vecera) [1311421] - [acpi] tpm, tpm_tis: fix tpm_tis ACPI detection issue with TPM 2.0 (Jerry Snitselaar) [1309641] - [acpi] Centralized processing of ACPI device resources (Jerry Snitselaar) [1309641] - [acpi] acpi: Add device resources interpretation code to ACPI core (Jerry Snitselaar) [1309641] - [netdrv] cxgb4 : Fix for the kernel panic caused by calling t4_enable_vi_params (Sai Vemuri) [1303493] - [mm] Remove false WARN_ON from pagecache_isize_extended (Brian Foster) [1205014]- [netdrv] net/mlx4_en: Wake TX queues only when there's enough room (Don Dutile) [1309893] - [netdrv] revert " net/mlx4_core: Fix mailbox leak in error flow when performing update qp" (Don Dutile) [1309893] - [netdrv] revert "mlx4-en: add missing patch to init rss_rings in get_profile" (Don Dutile) [1309893] - [netdrv] revert "mlx4-en: disable traffic class queueing by default" (Don Dutile) [1309893]- [netdrv] mlx4-en: disable traffic class queueing by default (Don Dutile) [1309893] - [netdrv] mlx4-en: add missing patch to init rss_rings in get_profile (Don Dutile) [1309893] - [netdrv] net/mlx4_core: Fix mailbox leak in error flow when performing update qp (Don Dutile) [1309893]- [netdrv] cxgb4: add device ID for few T5 adapters (Sai Vemuri) [1252598] - [netdrv] cxgb4: Fix for write-combining stats configuration (Sai Vemuri) [1252598] - [netdrv] cxgb4: Fix tx flit calculation (Sai Vemuri) [1252598] - [netdrv] cxgb4: changes for new firmware 1.14.4.0 (Sai Vemuri) [1252598] - [netdrv] cxgb4: memory corruption in debugfs (Sai Vemuri) [1252598] - [netdrv] cxgb4: Force uninitialized state if FW in adapter is unsupported (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add MPS tracing support (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add some more details to sge qinfo (Sai Vemuri) [1252598] - [netdrv] cxgb4: missing curly braces in t4_setup_debugfs (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add support to dump edc bist status (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add debugfs support to dump meminfo (Sai Vemuri) [1252598] - [netdrv] cxgb4vf: Read correct FL congestion threshold for T5 and T6 (Sai Vemuri) [1252598] - [netdrv] cxgb4: Allow firmware flash, only if cxgb4 is the master driver (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add debugfs entry to enable backdoor access (Sai Vemuri) [1252598] - [netdrv] cxgb4vf: Fix check to use new User Doorbell mechanism (Sai Vemuri) [1252598] - [netdrv] cxgb4: Enable cim_la dump to support T6 (Sai Vemuri) [1252598] - [netdrv] cxgb4: Read stats for only available channels (Sai Vemuri) [1252598] - [netdrv] cxgb4: Update register ranges for T6 adapter (Sai Vemuri) [1252598] - [netdrv] cxgb4: Don't use entire L2T table, use only its slice (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add PCI device ids for few more T5 and T6 adapters (Sai Vemuri) [1252598] - [netdrv] cxgb4: Fix incorrect sequence numbers shown in devlog (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add PCI device ID for custom T522 & T520 adapter (Sai Vemuri) [1252598] - [infiniband] iw_cxgb4: support for bar2 qid densities exceeding the page size (Sai Vemuri) [1252598] - [netdrv] cxgb4: Support for user mode bar2 mappings with T4 (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add debugfs entry to dump channel rate (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add debugfs entry to dump CIM PIF logic analyzer contents (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add a debugfs entry to dump CIM MA logic analyzer logs (Sai Vemuri) [1252598] - [netdrv] cxgb4: Fix static checker warning (Sai Vemuri) [1252598] - [netdrv] cxgb4: Use FW LDST cmd to access TP_PIO_ADDR, TP_PIO_DATA register first (Sai Vemuri) [1252598] - [netdrv] cxgb4: program pci completion timeout (Sai Vemuri) [1252598] - [netdrv] cxgb4: Set mac addr from vpd, when we can't contact firmware (Sai Vemuri) [1252598] - [netdrv] cxgb4: Rename t4_link_start to t4_link_l1cfg (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add sge ec context flush service (Sai Vemuri) [1252598] - [netdrv] cxgb4: Free Virtual Interfaces in remove routine (Sai Vemuri) [1252598] - [netdrv] cxgb4: Remove WOL get/set ethtool support (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add support to dump loopback port stats (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add support in ethtool to dump channel stats (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add ethtool support to get adapter stats (Sai Vemuri) [1252598] - [netdrv] cxgb4vf: Adds SRIOV driver changes for T6 adapter (Sai Vemuri) [1252598] - [netdrv] cxgb4: Adds support for T6 adapter (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add is_t6 macro and T6 register ranges (Sai Vemuri) [1252598] - [netdrv] cxgb4: remove unused fn to enable/disable db coalescing (Sai Vemuri) [1252598] - [netdrv] cxgb4vf: function and argument name cleanup (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add debugfs facility to inject FL starvation (Sai Vemuri) [1252598] - [netdrv] cxgb4: Add PHY firmware support for T420-BT cards (Sai Vemuri) [1252598] - [netdrv] cxgb4: Update T4/T5 adapter register ranges (Sai Vemuri) [1252598] - [netdrv] cxgb4: Optimize and cleanup setup memory window code (Sai Vemuri) [1252598] - [netdrv] cxgb4: replace ntohs, ntohl and htons, htonl calls with the generic byteorder (Sai Vemuri) [1252598] - [netdrv] cxgb4: Remove dead function t4_read_edc and t4_read_mc (Sai Vemuri) [1252598] - [netdrv] cxgb4vf: Cleanup macros, add comments and add new MACROS (Sai Vemuri) [1252598] - [netdrv] cxgb4: Initialize RSS mode for all Ports (Sai Vemuri) [1252598] - [netdrv] cxgb4: Discard the packet if the length is greater than mtu (Sai Vemuri) [1252598] - [netdrv] cxgb4: Move SGE Ingress DMA state monitor (Don Dutile) [1252598] - [netdrv] cxgb4: Add device node to ULD info (Don Dutile) [1252598] - [netdrv] cxgb4: Pass in a Congestion Channel Map to t4_sge_alloc_rxq (Sai Vemuri) [1252598] - [netdrv] cxgb4: Enable congestion notification from SGE for IQs and FLs (Sai Vemuri) [1252598] - [netdrv] cxgb4: Make sure that Freelist size is larger than Egress Congestion Threshold (Sai Vemuri) [1252598] - [infiniband] iw_cxgb4: Cleanup register defines/MACROS (Sai Vemuri) [1252598] - [netdrv] cxgb4vf: Fix sparse warnings (Sai Vemuri) [1252598] - [netdrv] cxgb4: Improve IEEE DCBx support, other minor open-lldp fixes (Sai Vemuri) [1252598] - [scsi] cxgb4i: Call into recently added cxgb4 ipv6 api (Sai Vemuri) [1252598] - [netdrv] cxgb4vf: Fix queue allocation for 40G adapter (Sai Vemuri) [1252598] - [netdrv] cxgb4vf: Initialize mdio_addr before using it (Sai Vemuri) [1252598] - [netdrv] cxgb4vf: Fix ethtool get_settings for VF driver (Sai Vemuri) [1252598] - [netdrv] csiostor: Cleanup macros/register defines related to port and VI (Sai Vemuri) [1252598] - [netdrv] cxgb4 : Fix DCB priority groups being returned in wrong order (Sai Vemuri) [1252598] - [netdrv] cxgb4: dcb open-lldp interop fixes (Sai Vemuri) [1252598] - [netdrv] cxgb4 : Fix bug in DCB app deletion (Sai Vemuri) [1252598] - [netdrv] cxgb4 : Handle dcb enable correctly (Sai Vemuri) [1252598] - [netdrv] cxgb4 : Improve handling of DCB negotiation or loss thereof (Sai Vemuri) [1252598] - [netdrv] cxgb4: IEEE fixes for DCBx state machine (Sai Vemuri) [1252598] - [netdrv] cxgb4: Fix endian bug introduced in cxgb4 dcb patchset (Sai Vemuri) [1252598] - [netdrv] cxgb4 : Makefile & Kconfig changes for DCBx support (Sai Vemuri) [1252598] - [netdrv] cxgb4 : Integrate DCBx support into cxgb4 module. Register dbcnl_ops to give access to DCBx functions (Sai Vemuri) [1252598] - [netdrv] cxgb4 : Add DCBx support codebase and dcbnl_ops (Sai Vemuri) [1252598] - [netdrv] cxgb4 : Update fw interface file for DCBx support. Adds all the required fields to fw interface to communicate DCBx info (Sai Vemuri) [1252598]- [documentation] filesystems: describe the shared memory usage/accounting (Rodrigo Freire) [1293615] - [kernel] Fix cgclear failure when encountering the rpciod kernel thread (Larry Woodman) [1220828] - [netdrv] qlcnic: constify qlcnic_mbx_ops structure (Harish Patil) [1252119] - [netdrv] net: qlcnic: delete redundant memsets (Harish Patil) [1252119] - [netdrv] qlcnic: Update version to 5.3.63 (Harish Patil) [1252119] - [netdrv] qlcnic: Don't use kzalloc unncecessarily for allocating large chunk of memory (Harish Patil) [1252119] - [netdrv] qlcnic: Add new VF device ID 0x8C30 (Harish Patil) [1252119] - [netdrv] qlcnic: Print firmware minidump buffer and template header addresses (Harish Patil) [1252119] - [netdrv] qlcnic: Add support to enable capability to extend minidump for iSCSI (Harish Patil) [1252119] - [netdrv] qlcnic: Rearrange ordering of header files inclusion (Harish Patil) [1252119] - [netdrv] qlcnic: Fix corruption while copying (Harish Patil) [1252119] - [netdrv] net: qlcnic: Deletion of unnecessary memset (Harish Patil) [1252119] - [netdrv] net: qlcnic: clean up sysfs error codes (Harish Patil) [1252119] - [netdrv] qlcnic: codespell comment spelling fixes (Harish Patil) [1252119] - [netdrv] qlcnic: Fix typo in printk messages (Harish Patil) [1252119] - [netdrv] qlcnic: Fix trivial typo in comment (Harish Patil) [1252119] - [netdrv] qlogic: Deletion of unnecessary checks before two function calls (Harish Patil) [1252119] - [netdrv] qlcnic: Fix dump_skb output (Harish Patil) [1252119] - [virt] kvm: x86: Don't report guest userspace emulation error to userspace (Bandan Das) [1163764] {CVE-2010-5313 CVE-2014-7842} - [virt] kvm: inject #UD if instruction emulation fails and exit to userspace (Bandan Das) [1163764] {CVE-2010-5313 CVE-2014-7842} - [netdrv] iwlwifi: Add new PCI IDs for the 8260 series (John Linville) [1286871 1308636] - [netdrv] iwlwifi: pcie: fix (again) prepare card flow (John Linville) [1286871 1308636] - [netdrv] nl80211: Fix potential memory leak from parse_acl_data (John Linville) [1286871 1308636] - [netdrv] mac80211: fix divide by zero when NOA update (John Linville) [1286871 1308636] - [netdrv] mac80211: allow null chandef in tracing (John Linville) [1286871 1308636] - [netdrv] mac80211: fix driver RSSI event calculations (John Linville) [1286871 1308636] - [netdrv] mac80211: Fix local deauth while associating (John Linville) [1286871 1308636] - [fs] xfs: ensure WB_SYNC_ALL writeback handles partial pages correctly (Brian Foster) [747564] - [fs] mm: introduce set_page_writeback_keepwrite() (Brian Foster) [747564] - [fs] xfs: always log the inode on unwritten extent conversion (Zorro Lang) [1018465] - [fs] vfs: fix data corruption when blocksize < pagesize for mmaped data (Lukas Czerner) [1205014]- [infiniband] rdma/ocrdma: Bump up ocrdma version number to 11.0.0.0 (Don Dutile) [1253021] - [infiniband] rdma/ocrdma: Prevent CQ-Doorbell floods (Don Dutile) [1253021] - [infiniband] rdma/ocrdma: Check resource ids received in Async CQE (Don Dutile) [1253021] - [infiniband] rdma/ocrdma: Avoid a possible crash in ocrdma_rem_port_stats (Don Dutile) [1253021] - [kernel] driver core : Fix use after free of dev->parent in device_shutdown (Tomas Henzl) [1303215] - [kernel] driver core: fix shutdown races with probe/remove (Tomas Henzl) [1303215] - [kernel] driver core: Protect device shutdown from hot unplug events (Tomas Henzl) [1303215] - [netdrv] bnx2x: Add new device ids under the Qlogic vendor (Michal Schmidt) [1304252] - [kernel] klist: fix starting point removed bug in klist iterators (Ewan Milne) [1190273] - [md] raid1: extend spinlock to protect raid1_end_read_request against inconsistencies (Jes Sorensen) [1309154] - [md] raid1: fix test for 'was read error from last working device' (Jes Sorensen) [1309154] - [s390] cio: update measurement characteristics (Hendrik Brueckner) [1304257] - [s390] cio: ensure consistent measurement state (Hendrik Brueckner) [1304257] - [s390] cio: fix measurement characteristics memleak (Hendrik Brueckner) [1304257] - [fs] pipe: fix offset and len mismatch on pipe_iov_copy_to_user failure (Seth Jennings) [1302223] {CVE-2016-0774}- [kernel] isolcpus: Output warning when the 'isolcpus=' kernel parameter is invalid (Prarit Bhargava) [1304216] - [mmc] Prevent 1.8V switch for SD hosts that don't support UHS modes (Petr Oros) [1307065] - [mmc] sdhci-pci-o2micro: Fix Dell E5440 issue (Petr Oros) [1307065] - [mmc] sdhci-pci-o2micro: Add SeaBird SeaEagle SD3 support (Petr Oros) [1307065] - [watchdog] hung task debugging: Inject NMI when hung and going to panic (Don Zickus) [1305919] - [watchdog] add sysctl knob hardlockup_panic (Don Zickus) [1305919] - [watchdog] perform all-CPU backtrace in case of hard lockup (Don Zickus) [1305919] - [drm] i915: Drop intel_update_sprite_watermarks (Lyude) [1306425] - [drm] i915: Setup DDI clk for MST on SKLi (Lyude) [1306425] - [drm] i915: Explicitly check for eDP in skl_ddi_pll_select (Lyude) [1306425] - [drm] i915: Don't skip mst encoders in skl_ddi_pll_select (Lyude) [1306425] - [scsi] qla2xxx: Set relogin flag when we fail to queue login requests (Chad Dupuis) [1306033] - [s390] kernel/syscalls: correct syscall number for __NR_setns (Hendrik Brueckner) [1219586] - [edac] sb_edac: fix channel/csrow emulation on Broadwell (Aristeu Rozanski) [1301230] - [usb] xhci: Workaround to get Intel xHCI reset working more reliably (Gopal Tiwari) [1146875] - [fs] revert "revert "dlm: print kernel message when we get an error from kernel_sendpage" (Robert S Peterson) [1264492] - [fs] revert "[fs] dlm: Replace nodeid_to_addr with kernel_getpeername" (Robert S Peterson) [1264492] - [s390] sclp: Determine HSA size dynamically for zfcpdump (Hendrik Brueckner) [1303557] - [s390] sclp: Move declarations for sclp_sdias into separate header file (Hendrik Brueckner) [1303557] - [netdrv] mlx4_en: add missing tx_queue init in en_start_port (Don Dutile) [1304016]- [s390] qeth: initialize net_device with carrier off (Hendrik Brueckner) [1198666] - [netdrv] Add rtlwifi driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525]- [powerpc] pseries: Limit EPOW reset event warnings (Gustavo Duarte) [1300202] - [perf] tools: Do not show trace command if it's not compiled in (Jiri Olsa) [1212539] - [perf] tools spec: Disable trace command on ppc arch (Jiri Olsa) [1212539] - [netdrv] mlx4_en: Fix the blueflame in TX path (Kamal Heib) [1295872 1303661 1303863 1304272] - [netdrv] mlx4_en: Fix HW timestamp init issue upon system startup (Kamal Heib) [1295872 1304272] - [netdrv] mlx4_en: Remove dependency between timestamping capability and service_task (Kamal Heib) [1295872 1304272] - [netdrv] mlx5_core: Fix trimming down IRQ number (Kamal Heib) [1304272] - [x86] Mark Intel Broadwell-DE SoC supported (Steve Best) [1253856] - [s390] zfcpdump: Fix collecting of registers (Hendrik Brueckner) [1303558] - [s390] dasd: fix failfast for disconnected devices (Hendrik Brueckner) [1303559] - [netdrv] bnxt_en: Fix crash in bnxt_free_tx_skbs() during tx timeout (John Linville) [1303703] - [netdrv] bnxt_en: Exclude rx_drop_pkts hw counter from the stack's rx_dropped counter (John Linville) [1303703] - [netdrv] bnxt_en: Ring free response from close path should use completion ring (John Linville) [1303703] - [block] Fix q_suspended logic error for io submission (David Milburn) [1227342] - [block] nvme: No lock while DMA mapping data (David Milburn) [1227342]- [drm] nouveau: remove stray header (Rob Clark) [1249807] - [kernel] ntp: Do leapsecond adjustment in adjtimex read path (Jerry Snitselaar) [1224408] - [kernel] time: Prevent early expiry of hrtimers CLOCK_REALTIME at the leap second edge (Jerry Snitselaar) [1224408] - [kernel] ntp: Introduce and use SECS_PER_DAY macro instead of 86400 (Jerry Snitselaar) [1224408] - [kernel] hrtimer: Make offset update smarter (Jerry Snitselaar) [1224408] - [kernel] timekeeping: Use ktime_t data for ktime_get_update_offsets (Jerry Snitselaar) [1224408] - [kernel] timekeeping: Provide internal ktime_t based data (Jerry Snitselaar) [1224408] - [kernel] timekeeping: indicate clock was set (Jerry Snitselaar) [1224408] - [kernel] timekeeping: Avoid possible deadlock from clock_was_set_delayed (Jerry Snitselaar) [1224408]- [netdrv] ixgbevf: Minor cleanups (John Greene) [1249245] - [netdrv] ixgbevf: fix spoofed packets with random MAC (John Greene) [1249245] - [netdrv] ixgbevf: use ether_addr_copy instead of memcpy (John Greene) [1249245] - [netdrv] ixgbevf: Limit lowest interrupt rate for adaptive interrupt moderation to 12K (John Greene) [1249245] - [netdrv] drivers/net/intel: use napi_complete_done - ixgbevf only (John Greene) [1249245] - [netdrv] ixgbevf: add support for reporting RSS key and hash table for X550 (John Greene) [1249245] - [netdrv] ixgbevf: Set Rx hash type for ingress packets (John Greene) [1249245] - [netdrv] ixgbevf: fold ixgbevf_pull_tail into ixgbevf_add_rx_frag (John Greene) [1249245] - [netdrv] ixgbevf: Use dev_kfree_skb_any in xmit path, not dev_kfree_skb (John Greene) [1249245] - [netdrv] ixgbevf: Add the appropriate ethtool ops to query RSS indirection table and key (John Greene) [1249245] - [netdrv] ixgbevf: Add RSS Key query code (John Greene) [1249245] - [netdrv] ixgbevf: Add a RETA query code (John Greene) [1249245] - [netdrv] ixgbevf: Use ether_addr_copy instead of memcpy (John Greene) [1249245] - [netdrv] ixgbevf: Fix code comments and whitespace (John Greene) [1249245] - [netdrv] ethernet: codespell comment spelling fixes (John Greene) [1249245] - [netdrv] ixgbevf: combine all of the tasks into a single service task (John Greene) [1249245] - [netdrv] ixgbevf: rewrite watchdog task to function similar to igbvf (John Greene) [1249245] - [netdrv] ethernet/intel: Use eth_skb_pad and skb_put_padto helpers - ixgbevf only (John Greene) [1249245] - [netdrv] ixgbevf: add netpoll support (John Greene) [1249244 1277784] - [netdrv] ixgbevf: compare total_rx_packets and budget in ixgbevf_clean_rx_irq (John Greene) [1249245] - [netdrv] ixgbevf: Change receive model to use double buffered page based receives (John Greene) [1249245] - [netdrv] ixgbevf: convert to ndo_fix_features - part 2 (John Greene) [1249244] - [netdrv] ixgbe: do not report 2.5 Gbps as supported (John Greene) [1249244] - [netdrv] ixgbe: Clear stale pool mappings (John Greene) [1249244] - [netdrv] ixgbe: Reorder search to work from the top down instead of bottom up (John Greene) [1249244] - [netdrv] ixgbe: Add support for adding/removing VLAN on PF bypassing the VLVF (John Greene) [1249244] - [netdrv] ixgbe: Simplify configuration of setting VLVF and VLVFB (John Greene) [1249244] - [netdrv] ixgbe: Reduce VT code indent in set_vfta by introducing jump label (John Greene) [1249244] - [netdrv] ixgbe: Simplify definitions for regidx and bit in set_vfta (John Greene) [1249244] - [netdrv] ixgbe: Fix SR-IOV VLAN pool configuration (John Greene) [1249244] - [netdrv] ixgbe: Return error on failure to allocate mac_table (John Greene) [1249244] - [netdrv] ixgbe: Always turn PHY power on when requested (John Greene) [1249244] - [netdrv] ixgbe: Save VF info and take references (John Greene) [1249244] - [netdrv] ixgbe: Wait for master disable to be set (John Greene) [1249244] - [netdrv] ixgbe: Correct spec violations by waiting after reset (John Greene) [1249244] - [netdrv] ixgbe: Refactor MAC address configuration code (John Greene) [1249244] - [netdrv] ixgbe: Use private workqueue to avoid certain possible hangs (John Greene) [1249244] - [netdrv] ixgbe: Add support for newer thermal alarm (John Greene) [1249244] - [netdrv] ixgbe: Prevent KR PHY reset in ixgbe_init_phy_ops_x550em (John Greene) [1249244] - [netdrv] ixgbe: Remove CS4227 diagnostic code (John Greene) [1249244] - [netdrv] ixgbe: Add KR mode support for CS4227 chip (John Greene) [1249244] - [netdrv] ixgbe: Fix handling of NAPI budget when multiple queues are enabled per vector (John Greene) [1249244] - [netdrv] ixgbe: fix multiple kernel-doc errors (John Greene) [1249244] - [netdrv] intel: use napi_complete_done (John Greene) [1249244] - [netdrv] drivers/net: get rid of unnecessary initializations in .get_drvinfo (John Greene) [1249244] - [netdrv] ixgbe: Check for setup_internal_link method (John Greene) [1249244] - [netdrv] ixgbe: Fix CS4227-related semaphore error on reset failure (John Greene) [1249244] - [netdrv] ixgbe: disable LRO by default (John Greene) [1249244] - [netdrv] ixgbe: add flow control ethertype to the anti-spoofing filter (John Greene) [1249244] - [netdrv] ixgbe: Advance version to 4.2.1 (John Greene) [1249244] - [netdrv] ixgbe: X540 thermal warning interrupt not a GPI (John Greene) [1249244] - [netdrv] ixgbe: Fix FCRTH value in VM-to-VM loopback mode (John Greene) [1249244] - [netdrv] ixgbe: Only clear adapter_stopped if ixgbe_setup_fc succeeded (John Greene) [1249244] - [netdrv] ixgbe: Correct several flaws with with DCA setup (John Greene) [1249244] - [netdrv] ixgbe: Add new X550EM SFP+ device ID (John Greene) [1249244] - [netdrv] ixgbe: Update ixgbe_disable_pcie_master flow for X550 (John Greene) [1249244] - [netdrv] ixgbe: Add small packet padding support for X550 (John Greene) [1249244] - [netdrv] ixgbe: Correct setting of RDRXCTL register for X550 devices (John Greene) [1249244] - [netdrv] ixgbe: Correct error path in semaphore handling (John Greene) [1249244] - [netdrv] ixgbe: Limit SFP polling rate (John Greene) [1249244] - [netdrv] ixgbe: Allow SFP+ on more than 82598 and 82599 (John Greene) [1249244] - [netdrv] ixgbe: Add logic to reset CS4227 when needed (John Greene) [1249244] - [netdrv] ixgbe: Fix 1G and 10G link stability for X550EM_x SFP+ (John Greene) [1249244] - [netdrv] ixgbe: Add X550EM_x dual-speed SFP+ support (John Greene) [1249244] - [netdrv] ixgbe: Allow reduced delays during SFP detection (John Greene) [1249244] - [netdrv] ixgbe: Clear I2C destination location (John Greene) [1249244] - [netdrv] ixgbe: Enable bit-banging mode on X550 (John Greene) [1249244] - [netdrv] ixgbe: Set lan_id before first I2C eeprom access (John Greene) [1249244] - [netdrv] ixgbe: Provide unlocked I2C methods (John Greene) [1249244] - [netdrv] ixgbe: Provide I2C combined on X550EM (John Greene) [1249244] - [netdrv] ixgbe: Add X550EM support for SFP insertion interrupt (John Greene) [1249244] - [netdrv] ixgbe: Accept SFP not present errors on all devices (John Greene) [1249244] - [netdrv] ixgbe: Add fdir support for SCTP on X550 (John Greene) [1249244] - [netdrv] ixgbe: Add SFP+ detection for X550 hardware (John Greene) [1249244] - [netdrv] ixgbe: Teardown SR-IOV before unregister_netdev (John Greene) [1249244] - [netdrv] ixgbe: fix issue with SFP events with new X550 devices (John Greene) [1249244] - [netdrv] ixgbe: Resolve "initialized field overwritten" warnings (John Greene) [1249244] - [netdrv] ixgbe: Add support for reporting 2.5G link speed (John Greene) [1249244] - [netdrv] ixgbe: fix bounds checking in ixgbe_setup_tc for 82598 (John Greene) [1249244] - [netdrv] ixgbe: support for ethtool set_rxfh (John Greene) [1249244] - [netdrv] ixgbe: Avoid needless PHY access on copper phys (John Greene) [1249244] - [netdrv] ixgbe: cleanup to use cached mask value (John Greene) [1249244] - [netdrv] ixgbe: Remove second instance of lan_id variable (John Greene) [1249244] - [netdrv] ixgbe: use kzalloc for allocating one thing (John Greene) [1249244] - [netdrv] ixgbe: Remove unused PCI bus types (John Greene) [1249244] - [netdrv] ixgbe: add new bus type for intergrated I/O interface (IOSF) (John Greene) [1249244] - [netdrv] ixgbe: add get_bus_info method for X550 (John Greene) [1249244] - [netdrv] ixgbe: Add support for entering low power link up state (John Greene) [1249244] - [netdrv] ixgbe: Add support for VXLAN RX offloads (John Greene) [1249244] - [netdrv] ixgbe: Add support for UDP-encapsulated tx checksum offload (John Greene) [1249244] - [netdrv] ixgbe: Check whether FDIRCMD writes actually complete (John Greene) [1249244] - [netdrv] ixgbe: Assign set_phy_power dynamically where needed (John Greene) [1249244] - [netdrv] ixgbe: add new function to check for management presence (John Greene) [1249244] - [netdrv] ixgbe: Simplify port-specific macros (John Greene) [1249244] - [netdrv] ixgbe: Don't report flow director filter's status (John Greene) [1249244] - [netdrv] ixgbe: Specify Rx hash type WRT Rx desc RSS type (John Greene) [1249244] - [netdrv] ixgbe: only report generic filters in get_ts_info (John Greene) [1249244] - [netdrv] ixgbe: Remember to write ixfi changes after modifying (John Greene) [1249244] - [netdrv] ixgbe: fix X550 default set_phy_power method (John Greene) [1249244] - [netdrv] ixgbe: Set lan_id before using I2C (John Greene) [1249244] - [netdrv] ixgbe: add link check for X550 copper (John Greene) [1249244] - [netdrv] ixgbe: Add support for another X550 device (John Greene) [1249244] - [netdrv] ixgbe: fix X550 PHY function pointers (John Greene) [1249244] - [netdrv] ixgbe: fix X550 devices init flow (John Greene) [1249244] - [netdrv] ixgbe: fix bug in not clearing counters for X550 devices (John Greene) [1249244] - [netdrv] ixgbe: fix issue with sfp events with new X550 devices (John Greene) [1249244] - [netdrv] ixgbe: add support for interrupts from X550 external PHY (John Greene) [1249244] - [netdrv] ixgbe: Add const string for overheat message (John Greene) [1249244] - [netdrv] ixgbe: Add reset for X550 device (John Greene) [1249244] - [netdrv] ixgbe: add X550 support for external PHY and forced 1G/10G support (John Greene) [1249244] - [netdrv] ixgbe: Restore ESDP settings after MAC reset (John Greene) [1249244] - [netdrv] ixgbe: Add a PHY power state method (John Greene) [1249244] - [netdrv] ixgbe: add define for X557 PHY ID (John Greene) [1249244] - [netdrv] ixgbe: add support for WoL and autoneg FC for some X550 devices (John Greene) [1249244] - [netdrv] ixgbe: add array of MAC type dependent values (John Greene) [1249244] - [netdrv] ixgbe: Use a signed type to hold error codes (John Greene) [1249244] - [netdrv] ixgbe: Release semaphore bits in the right order (John Greene) [1249244] - [netdrv] ixgbe: Fix IOSF SB access issues (John Greene) [1249244] - [netdrv] ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set (John Greene) [1249244] - [netdrv] ixgbe: Add a RETA query command to VF-PF channel API (John Greene) [1249244] - [netdrv] ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS info (John Greene) [1186052 1246195 1249244 1271403] - [netdrv] ixgbe: Add the appropriate ethtool ops to query RSS indirection table and key (John Greene) [1249244] - [netdrv] ixgbe: Refactor the RSS configuration code (John Greene) [1249244] - [netdrv] ixgbe: Drop unnecessary call to rcu_barrier (John Greene) [1249244] - [netdrv] ixgbe: adds x550 specific FCoE offloads (John Greene) [1249244] - [netdrv] ethernet: Use bool function returns of true/false instead of 1/0 (John Greene) [1249244] - [netdrv] ixgbe: cleanup make ixgbe_set_ethertype_anti_spoofing_X550 static (John Greene) [1249244] - [netdrv] ixgbe: Clean up type inconsistency (John Greene) [1249244] - [netdrv] ixgbe: add new wrapper for X550 support (John Greene) [1249244] - [netdrv] ethernet: codespell comment spelling fixes (John Greene) [1249244] - [netdrv] ixgbe: add Tx anti spoofing support (John Greene) [1249244] - [netdrv] ixgbe: add VXLAN offload support for X550 devices (John Greene) [1249244] - [netdrv] ixgbe: improve mac filter handling (John Greene) [1249244] - [netdrv] ixgbe: enable l2 forwarding acceleration for macvlans (John Greene) [1249244] - [netdrv] ixgbe: show <2 for encoding loss on PCIe Gen3 (John Greene) [1249244] - [netdrv] ixgbe: call pcie_get_mimimum_link to check if device has enough bandwidth (John Greene) [1249244] - [netdrv] revert "ixgbe: Update ixgbe driver to use __netdev_pick_tx in ixgbe_select_queue" (John Greene) [1249244] - [netdrv] ixgbe: Add function for setting XPS queue mapping (John Greene) [1249244] - [netdrv] ixgbe: finish ixgbe: Update ixgbe to use new vlan accleration (John Greene) [1249244] - [netdrv] net/mlx5e: Assign random MAC address if needed (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Write vlan list into vport context (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Write UC/MC list and promisc mode into vport context (Kamal Heib) [1246031] - [netdrv] net/mlx5: Introduce access functions to modify/query vport vlans (Kamal Heib) [1246031] - [netdrv] net/mlx5: Introduce access functions to modify/query vport promisc mode (Kamal Heib) [1246031] - [netdrv] net/mlx5: Introduce access functions to modify/query vport state (Kamal Heib) [1246031] - [netdrv] net/mlx5: Introduce access functions to modify/query vport mac lists (Kamal Heib) [1246031] - [netdrv] net/mlx5: Update access functions to Query/Modify vport MAC address (Kamal Heib) [1246031] - [netdrv] net/mlx5: Add HW capabilities and structs for SR-IOV E-Switch (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Use the right DMA free function on TX path (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Max mtu comparison fix (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Added self loopback prevention (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Fix inline header size calculation (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Fix LSO vlan insertion (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Re-eanble client vlan TX acceleration (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Return error in case mlx5e_set_features fails (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Don't allow more than max supported channels (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Use the the real irqn in eq->irqn (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Wait for RX buffers initialization in a more proper manner (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Avoid NULL pointer access in case of configuration failure (Kamal Heib) [1246031] - [netdrv] ib/mlx5: Remove dead fmr code (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Wait for FW readiness on startup (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Add pci error handlers to mlx5_core driver (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Fix internal error detection conditions (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Use private health thread for each device (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Use accessor functions to read from device memory (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Prepare cmd interface to system errors handling (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Improve mlx5 messages (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Update health syndromes (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Fix wrong name in struct (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: New init and exit flow for mlx5_core (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Fix notification of page supplement error (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Fix async commands return code (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Remove redundant "err" variable usage (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Fix struct type in the DESTROY_TIR/TIS device commands (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Priv state flag not rolled-back upon netdev open error (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Disable VLAN filter in promiscuous mode (Kamal Heib) [1246031] - [netdrv] net/mlx5: Fix typo in mlx5_query_port_pvlc (Kamal Heib) [1246031] - [netdrv] ib/mlx5: Remove dead code from alloc_cached_mr (Kamal Heib) [1246031] - [netdrv] mlx5: Expose correct page_size_cap in device attributes (Kamal Heib) [1246031] - [netdrv] mlx5: Fix missing device local_dma_lkey (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Avoid accessing NULL pointer at ndo_select_queue (Kamal Heib) [1246031] - [netdrv] mlx5e: Fix sparse warnings in mlx5e_handle_csum (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Support RX CHECKSUM_COMPLETE (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Support ethtool get/set_pauseparam (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Ethtool link speed setting fixes (Kamal Heib) [1246031] - [netdrv] net/mlx5e: HW LRO changes/fixes (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Support smaller RX/TX ring sizes (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Add ethtool RSS configuration options (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Make RSS indirection table size a constant (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Have a single RSS Toeplitz hash key (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Support physical port counters (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Disable async events before unregister_netdev (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Rename/move functions following the ndo_stop flow change (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Light-weight netdev open/stop (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Introduce access function to modify RSS/LRO params (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Introduce the "Drop RQ" (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Unify the RX flow (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Remove the mlx5e_update_priv_params() function (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Introduce create/destroy RSS indir table access functions (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Do not use netdev_err before the netdev is registered (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Avoid redundant de-reference (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Remove redundant assignment of sq->user_index (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Remove redundant field mlx5e_priv->num_tc (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Use hard-coded 4K page size for RQ/SQ/CQ (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Check the return value of mlx5_command_exec (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Input IPSEC.SPI into the RX RSS hash function (Kamal Heib) [1246031] - [netdrv] net/mlx5e: cosmetics: use BIT instead of "1 <<", and others (Kamal Heib) [1246031] - [netdrv] net/mlx5e: TX latency optimization to save DMA reads (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Allocate DMA coherent memory on reader NUMA node (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Support ETH_RSS_HASH_XOR (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Set log_uar_page_sz for non 4K page size architecture (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Prefetch skb data on RX (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Pop cq outside mlx5e_get_cqe (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Remove mlx5e_cq.sqrq back-pointer (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Remove extra spaces (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Avoid TX CQE generation if more xmit packets expected (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Avoid redundant dev_kfree_skb() upon NOP completion (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Remove re-assignment of wq type in mlx5e_enable_rq (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Use skb_shinfo(skb)->gso_segs rather than counting them (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Static mapping of netdev priv resources to/from netdev TX queues (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Add transport domain to the ethernet TIRs/TISs (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Add transport domain alloc/dealloc support (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Support NETIF_F_SG (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Enforce max flow-tables level >= 3 (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Disable client vlan TX acceleration (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Add HW cacheline start padding (Kamal Heib) [1246031] - [netdrv] net/mlx5e: Fix HW MTU settings (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: fix an error code (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Fix static checker warnings around system guid query flow (Kamal Heib) [1246031] - [netdrv] mlx5: Enable mutual support for IB and Ethernet (Kamal Heib) [1246031] - [netdrv] ib/mlx5: Don't create IB instance over Ethernet ports (Kamal Heib) [1246031] - [netdrv] ib/mlx5: Avoid using the MAD_IFC command under ISSI > 0 mode (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Add more query port helpers (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Use port number when querying port ptys (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Use port number in the query port mtu helpers (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Get vendor-id using the query adapter command (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Add new query HCA vport commands (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Make the vport helpers available for the IB driver too (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Check the return bitmask when querying ISSI (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Enable XRCs and SRQs when using ISSI > 0 (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Apply proper name convention to helpers (Kamal Heib) [1246031] - [netdrv] net/mlx5_en: Add missing check for memory allocation failure (Kamal Heib) [1246031] - [netdrv] net/mlx5: Extend mlx5_core to support ConnectX-4 Ethernet functionality (Kamal Heib) [1246031] - [netdrv] net/mlx5: Ethernet resource handling files (Kamal Heib) [1246031] - [netdrv] net/mlx5: Ethernet Datapath files (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Set/Query port MTU commands (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Modify CQ moderation parameters (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Implement get/set port status (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Implement access functions of ptys register fields (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: New device capabilities handling (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: HW data structs/types definitions cleanup (Kamal Heib) [1246031] - [netdrv] net/mlx5_core: Set irq affinity hints (Kamal Heib) [1246031] - [netdrv] net/mlx5_core, mlx5_ib: Do not use vmap on coherent memory (Kamal Heib) [1246031] - [drm] revert 'drm/i915: resume MST after reading back hw state' (Rob Clark) [1292402] - [drm] i915: Wait for mst to finish suspending before disabling interrupts (Rob Clark) [1292402] - [drm] upstream sync to 4.4 (Rob Clark) [1135349 1248507] - [drm] nouveau/gr/gf117-: assume no PPC if NV_PGRAPH_GPC_GPM_PD_PES_TPC_ID_MASK is zero (Rob Clark) [1249814] - [drm] nouveau/gr/gf117-: read NV_PGRAPH_GPC_GPM_PD_PES_TPC_ID_MASK from correct GPC (Rob Clark) [1249814] - [drm] nouveau/gr/gf100-: split out per-gpc address calculation macro (Rob Clark) [1249814] - [drm] nouveau/bios: return actual size of the buffer retrieved via _ROM (Rob Clark) [1249814] - [drm] nouveau/pmu: remove whitelist for PGOB-exit WAR, enable by default (Rob Clark) [1218795 1218796] - [drm] nouveau/pmu/gk107: enable PGOB codepaths (Rob Clark) [1218795 1218796] - [drm] nouveau/pmu/gk104: check fuse to determine presence of PGOB (Rob Clark) [1218795 1218796] - [drm] radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt (Rob Clark) [1249814] - [drm] drm: import vmwgfx (Rob Clark) [1281592] - [firmware] add i915 GuC firmware (Rob Clark) [1135349] - [firmware] add i915 DMC firmware (Rob Clark) [1135349] - [drm] upstream sync to 4.3 (Rob Clark) [1249814] - [drm] upstream sync to 4.2 (Rob Clark) [1249812 1274061] - [drm] upstream sync to 4.1 (Rob Clark) [1249810] - [drm] upstream sync to 4.0 (Rob Clark) [1249807] - [drm] upstream sync to 3.19 (Rob Clark) [1249806] - [kernel] iommu: Export intel_iommu_enabled to signal when iommu is in use (Rob Clark) [1249806] - [kernel] time: export nsec_to_jiffies64 (Rob Clark) [1249806] - [kernel] component: fix bug with legacy API (Rob Clark) [1249806] - [kernel] component: add support for component match array (Rob Clark) [1249806] - [kernel] component: ignore multiple additions of the same component (Rob Clark) [1249806] - [kernel] component: fix missed cleanup in case of devres failure (Rob Clark) [1249806] - [kernel] base: fix devres handling for master device (Rob Clark) [1249806] - [kernel] base: provide an infrastructure for componentised subsystems (Rob Clark) [1249806]- [target] fcoe: Add tag support to tcm_fc (Andy Grover) [882092] - [scsi] don't store LUN bits in CDB byte 1 for USB mass-storage devices (Ewan Milne) [1255846] - [scsi] usb-storage: add try_rc_10_first flag (Ewan Milne) [1255846] - [scsi] usb-storage: add flags for VPD pages and REPORT LUNS (Ewan Milne) [1255846] - [mm] hugetlbfs: skip shared VMAs when unmapping private pages to satisfy a fault (Andrea Arcangeli) [1291248]- [infiniband] mlx4_core: Fix fallback from MSI-X to INTx (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/cma: Fix broken AF_IB UD support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/cm: Change reject message type when destroying cm_id (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Update ocrdma version number (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Fail connection for MTU lesser than 512 (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Fix dmac resolution for link local address (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Prevent allocation of DPP PDs if FW doesnt support it (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Fix the request length for RDMA_QUERY_QP mailbox command to FW (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Use VID 0 if PFC is enabled and vlan is not configured (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Fix QP state transition in destroy_qp (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Report EQ full fatal error (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Fix EQ destroy failure during driver unload (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Avoid 'may be used uninitialized' warnings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] Remove duplicated KERN_ from pr_ uses (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/qib: fix test of unsigned variable (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/core: Fix for parsing netlink string attribute (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iw_cxgb4: use wildcard mapping for getting remote addr info (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/ehca: use correct destination for memcpy (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/rds: rds-tcp: only initiate reconnect attempt on outgoing TCP socket (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/rds: rds-tcp: Always create a new rds_sock for an incoming connection (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Work properly with EQ numbers > 256 in SRIOV (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Fix off-by-one in counters manipulation (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ipoib/cm: Fix indentation level (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iw_cxgb4: Remove negative advice dmesg warnings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: Fix unaligned accesses (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: change rdma_gid2ip into void function as it always return zero (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/qib: use arch_phys_wc_add (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/qib: add acounting for MTRR (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/cxgb4: Report the actual address of the remote connecting peer (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/nes: Report the actual address of the remote connecting peer (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iw_cxgb4: enforce qp/cq id requirements (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iw_cxgb4: use BAR2 GTS register for T5 kernel mode CQs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iw_cxgb4: 32b platform fixes (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/cma: Canonize IPv4 on IPV6 sockets properly (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/rds: Fix new sparse warning (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/rds: fix unaligned memory access (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Schedule napi when RX buffers allocation fails (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix unaligned accesses (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fix MC1 memory offset calculation (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix reading HCA max message size in mlx4_QUERY_DEV_CAP (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/ipoib: Fix ndo_get_iflink (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: drop __GFP_NOFAIL allocation (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: check for mapping error (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib_uverbs: Fix pages leak when using XRC SRQs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Fix WQE LSO segment calculation (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/ipoib: Remove IPOIB_MCAST_RUN bit (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/ipoib: Save only IPOIB_MAX_PATH_REC_QUEUE skb's (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/ipoib: Handle QP in SQE state (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/ipoib: Update broadcast record values after each successful join request (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/ipoib: Use one linear skb in RX flow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: don't disallow registering region starting at 0x0 (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: disallow registering 0-sized memory region (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Change alias guids default to be host assigned (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Return the admin alias GUID upon host view request (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Raise slave shutdown event upon FLR (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Request alias GUID on demand (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Change init flow to request alias GUIDs for active VFs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Manage admin alias GUID upon admin request (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Set initial admin GUIDs for VFs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Manage alias GUID per VF (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Alias GUID adding persistency support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Don't call t4_slow_intr_handler when we're not the Master PF (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add comment for calculate tx flits and sge length code (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Use device node in page allocation (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Freelist starving threshold varies from adapter to adapter (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Increased the value of MAX_IMM_TX_PKT_LEN from 128 to 256 bytes (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rds: make sure not to loop forever inside rds_send_xmit (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rds: only use passive connections when addresses match (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Move ethtool related code to a separate file (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Extend struct mlx5_interface to support multiple protocols (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Modify arm CQ in preparation for upcoming Ethernet driver (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Move completion eqs from mlx5_ib to mlx5_core (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Update module info macros for ConnectX4 Support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Fix Mellanox copyright note (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Fix Mellanox copyright note (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Fix a bug in alloc_token (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Avoid usage command work entry after writing command doorbell (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Avoid copying outbox in aysnc command completion (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Use coherent memory for command interface page (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Use the right inbox struct in destroy mkey command (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Clear doorbell record inside mlx5_db_alloc() (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Avoid setting DC requestor/responder resources (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Coding style fix (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Fix call to mlx5_core_qp_modify (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Allocate firmware pages from device's NUMA node (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Add interface identify support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Add SET_PORT opcode modifiers enumeration (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Set enhanced QoS support by default when ETS supported (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Warn users of depracated QoS Firmware (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Added qos_vport QP configuration in VST mode (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Allocate VPPs for each port on PF init (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Query device for QoS per VF support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Add mlx4_SET_VPORT_QOS implementation (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Add mlx4_ALLOCATE_VPP implementation (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: New file for QoS related firmware commands (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Aesthetic code changes in multi_func_init (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Make mlx4_is_eth visible inline funcion (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Add RSS support for fragmented IP datagrams (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] chelsio cxgb/cxgb3: Make stats_strings arrays const (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Moderate ethtool callback to show more statistics (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Add Flow control statistics display via ethtool (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Protect access to the statistics bitmap (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Support general selective view of ethtool statistics (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Move statistics bitmap setting to the Ethernet driver (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Create new header file for all statistics info (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Fix port counters statistics bitmask (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: fix boolreturn.cocci warnings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: update Kconfig and Makefile for FCoE support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: add cxgb4_fcoe.c for FCoE (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: add cxgb4_fcoe.h and macro definitions for FCoE (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/cxgb4vf/csiostor: Make PCI Device ID Tables be "const" (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add device ID for new adapter (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: mlx4_en_set_tx_maxrate() can be static (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Add basic support for QP max-rate limiting (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Add basic elements for QCN (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Try and provide an RDMA CIQ per cpu (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Move offload Rx queue allocation to separate function (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] debugfs: Provide a file creation function that also takes an initial size (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fix to dump devlog, even if FW is crashed (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Disable interrupts and napi before unregistering netdev (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Allocate dynamic mem. for egress and ingress queue maps (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fix frame size warning for 32 bit arch (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix GEN_EQE accessing uninitialixed mutex (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Call register_netdevice in the proper location (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Set statistics bitmap at port init (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Saturate RoCE port PMA counters in case of overflow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Fix off-by-one in ethtool statistics display (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Verify net device validity on port change event (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rds: avoid potential stack overflow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: fix coccinelle warnings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Disbale GRO for incoming loopback/selftest packets (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix wrong mask and error flow for the update-qp command (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fix PCI-E Memory window interface for big-endian systems (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fix incorrect 'c' suffix to pI4, use pISc instead (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/qib: Add blank line after declaration (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/qib: Fix checkpatch warnings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Enable the ODP capability query verb (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: Add support for extended query device caps (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/cxgb4: Don't hang threads forever waiting on WR replies (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Add support for IB stack compliant stats in sysfs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Update the dev in reg_create (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: In mlx4_ib_demux_cm, print out GUID in host-endian order (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Bug fixes in mlx4_ib_resize_cq (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Fix memory leak in __mlx4_ib_modify_qp (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: Fix deadlock on uverbs modify_qp error flow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: When marshaling ucma path from user-space, clear unused fields (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/qib: Fix sizeof checkpatch warnings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/qib: Replace rcu_assign_pointer with RCU_INIT_POINTER in qib_keys.c (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/qib: Replace rcu_assign_pointer with RCU_INIT_POINTER in qib_qp.c (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Fix error code in get_port_caps (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Fix wrong usage of IPv4 protocol for multicast attach/detach (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/ipath: Remove unused function in ipath_wc_ppc64 (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/cxgb4: Serialize CQ event upcalls with CQ destruction (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Fix configuration of log_uar_page_sz (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net: mellanox: Delete unnecessary checks before the function call "vunmap" (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support in cxgb4 to get expansion rom version via ethtool (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Reset flow support for IB kernel ULPs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Always use the correct port for mirrored multicast attachments (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fix trace observed while dumping clip_tbl (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support in debugfs to dump the congestion control table (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support to dump mailbox content in debugfs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support for ULP RX logic analyzer output in debugfs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Added support in debugfs to display TP logic analyzer output (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support in debugfs to display sensor information (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net: rds: Remove repeated function names from debug output (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Delete an unnecessary check before the function call "release_firmware" (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add low latency socket busy_poll support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Adjust RX frag strides to frag sizes (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Print page allocator information (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Move to use hex PCI device IDs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix misleading debug print on CQE stride support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: mlx4_config_dev_retrieval - Initialize struct config_dev before using (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix mpt_entry initialization in mlx4_mr_rereg_mem_write (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Load balance ports in port aggregation mode (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Create mirror flows in port aggregation mode (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Add port aggregation support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Reuse mlx4_mac_to_u64 (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Port aggregation upper layer interface (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Port aggregation low level interface (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Remove preprocessor check for CONFIG_CXGB4_DCB (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Update the HCA core clock frequency after INIT_PORT (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix device capabilities dumping (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Fix memory corruption in mlx4_MAD_IFC_wrapper (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Use ethtool cmd->autoneg as a hint for ethtool set settings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Remove duplicate code line from procedure mlx4_bf_alloc (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix struct mlx4_vhcr_cmd to make implicit padding explicit (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix HW2SW_EQ to conform to the firmware spec (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Adjust command timeouts to conform to the firmware spec (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix mem leak in SRIOV mlx4_init_one error flow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Add reserved lkey for VFs to QUERY_FUNC_CAP (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Add bad-cable event support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Added support in debugfs to dump different timer and clock values of the adapter (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Added support in debugfs to dump PM module stats (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Addded support in debugfs to dump CIM outbound queue content (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Added support in debugfs to dump cim ingress bound queue contents (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Added support in debugfs to dump sge_qinfo (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fixes cxgb4_inet6addr_notifier unregister call (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mode_t whack-a-mole: chelsio (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Reset flow activation upon SRIOV fatal command cases (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Enable device recovery flow with SRIOV (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Handle AER flow properly (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Manage interface state for Reset flow cases (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Activate reset flow upon fatal command cases (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Enhance the catas flow to support device reset (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Refactor the catas flow to work per device (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Set device configuration data to be persistent across reset (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add debugfs options to dump the rss key, config for PF, VF, etc (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add debugfs entry to dump the contents of the flash (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iw_cxgb4: Cleanup register defines/MACROS defined in t4fw_ri_api.h (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iw_cxgb4: Cleanup register defines/MACROS defined in t4.h (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4 : Update ipv6 address handling api (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: avoid a compile-time warning (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: avoid build warnings on 32-bit (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Ripping out old hard-wired initialization code in driver (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iw_cxgb4/cxgb4/cxgb4vf/cxgb4i/csiostor: Cleanup register defines/macros related to all other cpl messages (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iw_cxgb4/cxgb4/cxgb4i: Cleanup register defines/MACROS related to CM CPL messages (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support for mps_tcam debugfs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support for cim_qcfg entry in debugfs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support for cim_la entry in debugfs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support for devlog (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add PCI device ID for new T5 adapter (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/cxgb4vf/csiostor: Cleanup PL, XGMAC, SF and MC related register defines (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/csiostor: Cleanup TP, MPS and TCAM related register defines (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/cxg4vf/csiostor: Cleanup MC, MA and CIM related register defines (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/cxgb4vf/csiostor: Cleanup SGE and PCI related register defines (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/cxgb4/cxgb4vf/csiostor: Cleanup SGE register defines (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: include clocksource.h again (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix kernel Oops - mem corruption - when working with more than 80 VFs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix error flow in mlx4_init_hca (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Correcly update the mtt's offset in the MR re-reg flow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Doorbell is byteswapped in Little Endian archs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fix decoding QSA module for ethtool get settings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Cache line CQE/EQE stride fixes (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/srp: Allow newline separator for connection string (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Add function to read WQE from user-space (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: Add umem function to read data from user-space (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Enhance UMR support to allow partial page table update (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Remove per-MR pas and dma pointers (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Always resolve destination mac from GRH for UD QPs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4_core: Check for DPDP violation only when DPDP is not supported (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Fix an incorrectly shadowed variable in mlx4_ib_rereg_user_mr (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/addr: Improve address resolution callback scheduling (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: Fix mgid key handling in SA agent multicast data-base (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: Do not resolve VLAN if already resolved (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Avoid double dumping of the PF device capabilities (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fixed memory leak and incorrect refcount in mlx4_load_one (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support for QSA modules (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Refactor QUERY_PORT (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Add explicit error message when rule doesn't meet configuration (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Add A0 hybrid steering (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Add mlx4_bitmap zone allocator (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Add a check if there are too many reserved QPs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4: Change QP allocation scheme (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Use tasklet for user-space CQ completion events (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Mask out host side virtualization features for guests (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/csiostor: Don't use MASTER_MUST for fw_hello call (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/cxgb4vf: global named must be unique (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Update firmware version after flashing it via ethtool (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/cxgb4vf: Use new interfaces to calculate BAR2 SGE Queue Register addresses (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/cxgb4vf: Add code to calculate T5 BAR2 Offsets for SGE Queue Registers (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4vf: Add and initialize some sge params for VF driver (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Support for configurable RSS hash function (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: Fix error flow in add_keys (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: Fix sparse warnings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Add more supported devices (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Clear outbox of dealloc uar (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Print resource number on QP/SRQ async events (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Remove unused dev cap enum fields (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Fix command queue size enforcement (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Fix min vectors value in mlx5_enable_msix (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Request the mlx5 IB module on driver load (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/cxgb4vf/csiostor: Add T4/T5 PCI ID Table (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: fix mlx4_en_set_rxfh (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/cxgb4/cxgb4vf/csiostor: Cleanup macros/register defines related to PCIE, RSS and FW (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4/cxgb4vf/csiostor: Cleanup macros/register defines related to queues (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/cxgb4/csiostor: Cleansup FW related macros/register defines for PF/VF and LDST (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/cxgb4: Cleanup Filter related macros/register defines (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: mlx4_en_set_settings always fails when autoneg is set (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: don't duplicate kvfree (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: don't duplicate kvfree (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] lib/scatterlist: mark input buffer parameters as 'const' (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] lib/scatterlist.c: fix kerneldoc for sg_pcopy_to_buffer, sg_pcopy_from_buffer (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] lib/scatterlist: introduce sg_pcopy_from_buffer and sg_pcopy_to_buffer (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] lib/scatterlist: factor out sg_miter_get_next_page from sg_miter_next (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: use netdev_rss_key_fill helper (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Support more than 64 VFs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Add QUERY_FUNC firmware command (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Refactor mlx4_load_one (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Refactor mlx4_cmd_init and mlx4_cmd_cleanup (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Use correct variable type for mlx4_slave_cap (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Fix wrong reading of reserved_eqs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4i/cxgb4 : Refactor macros to conform to uniform standards (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fix static checker warning (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Extend checksum offloading by CHECKSUM COMPLETE (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Remove unnecessary struct in6_addr * casts (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Cleanup macros so they follow the same style and look consistent (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add cxgb4_debugfs.c, move all debugfs code to new file (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Add retrieval of CONFIG_DEV parameters (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Add __GFP_COLD gfp flags in alloc_pages (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Remove RX buffers alignment to IP_ALIGN (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Protect port type setting by mutex (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Prevent VF from changing port configuration (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Report actual number of rings in indirection table (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Move spinlocks and work initalizations to beginning of init_netdev (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Call napi_synchronize on stop_port (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Cleanups suggested by clang static checker (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Use PTYS register to set ethtool settings - Speed (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Use PTYS register to query ethtool settings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ethtool, net/mlx4_en: Add 100M, 20G, 56G speeds ethtool reporting support:q (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Add ethernet backplane autoneg device capability (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Introduce ACCESS_REG CMD and eth_prot_ctrl dev cap (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Introduce mlx4_get_module_info for cable module info reading (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ethtool, net/mlx4_en: Cable info, get_module_info/eeprom ethtool support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Limit count field to 24 bits in qp_alloc_res (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Fix race on driver load (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Fix race in create EQ (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: Avoid leaking steering rules on flow creation error flow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Don't attempt to TX offload the outer UDP checksum for VXLAN (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Call synchronize_irq before freeing EQ buffer (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Call synchronize_irq before freeing EQ buffer (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rds: avoid calling sock_kfree_s on allocation failure (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/cxgb4: Add missing neigh_release in find_route (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: Fix XRC race condition in ib_uverbs_open_qp (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: Clear AH attr variable to prevent garbage data (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: fix race accessing page->_count (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Use extended internal signature layout (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Modify to work with arbitrary page size (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Remove duplicate code from mlx5_set_path (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Fix possible array overflow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/core: Avoid leakage from kernel to user space (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Improve debug prints in mlx5_ib_reg_user_mr (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx5: Clear umr resources after ib_unregister_device (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: remove NETDEV_TX_BUSY (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: tx_info->ts_requested was not cleared (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Use local var for skb_headlen skb (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Use local var in tx flow for skb_shinfo skb (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: mlx4_en_xmit() reads ring->cons once, and ahead of time to avoid stalls (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Avoid false sharing in mlx4_en_en_process_tx_cq (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Use prefetch in tx path (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Avoid a cache line miss in TX completion for single frag skb's (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Avoid calling bswap in tx fast path (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Align tx path structures to cache lines (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Code cleanups in tx path (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Add ConnectX-4 to list of supported devices (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Identify resources by their type (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: use set/get macros in device caps (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Use hardware registers description header file (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx5_core: Update device capabilities handling (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/rds: do proper house keeping if connection fails in rds_tcp_conn_connect (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/rds: call rds_conn_drop instead of open code it at rds_connect_complete (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Protect QUERY_PORT wrapper from untrusted guests (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Don't disable SRIOV if there are active VFs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Use BAR2 Going To Sleep (GTS) for T5 and later (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mellanox: Change en_print to return void (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_en: Add mlx4_en_get_cqe helper (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Cache line EQE size support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Enable CQE/EQE stride support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] net/mlx4_core: Allow not to specify probe_vf in SRIOV IB mode (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Fix VF mac handling in RoCE (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Do not allow APM under RoCE (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Don't update QP1 in native mode (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib/mlx4: Avoid accessing netdevice when building RoCE qp1 header (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: Fix mlx4 reg/unreg mac to work properly with 0-mac addresses (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] rdma/ocrdma: Resolve L2 address when creating user AH (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: Correct error flows in rereg_mr (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: Disable TSO for Connect-X rev A0 HCAs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ipath: Change get_user_pages usage to always NULL vmas (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ib_umem_release should decrement mm->pinned_vm from ib_umem_get (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: Set vlan stripping policy by the right command (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: Avoid dealing with MAC index in UPDATE_QP wrapper if not needed (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: Use the correct VSD mask in UPDATE_QP (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: Correctly configure single ported VFs from the host (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: Move the tunnel steering helper function to mlx4_core (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ocrdma: Obtain SL from device structure (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: Use ARRAY_SIZE instead of sizeof/sizeof (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: Use ARRAY_SIZE instead of sizeof/sizeof (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] amso1100: Check for integer overflow in c2_alloc_cq_buf (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mad: Add user space RMPP support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mad: add new ioctl to ABI to support new registration options (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mad: Add dev_notice messages for various umad/mad registration failures (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mad: Update module to pr_, dev_ style print messages (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] umad: Update module to pr_, dev_ style print messages (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] cxgb4 : Disable recursive mailbox commands when enabling vi (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [scsi] cxgb4i : Move stray CPL definitions to cxgb4 driver (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ipath: Add P_Key change event support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Add support for secure-host and SMP firewall (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] iwcm: Use a default listen backlog if needed (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Fix residual handling (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Fix deadlock between host removal and multipathd (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [scsi] scsi_transport_srp: Fix fast_io_fail_tmo=dev_loss_tmo=off behavior (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4_ib: Add support for user MR re-registration (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4_core: Add helper functions to support MR re-registration (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] core: Add user MR re-registration support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ocrdma: Fix a sparse warning (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] ocrdma: Delete AH table if ocrdma_init_hw fails after AH table creation (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] ocrdma: Remove hardcoding of the max DPP QPs supported (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] ocrdma: Handle shutdown event from be2net driver (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] ocrdma: Add hca_type and fixing fw_version string in device atrributes (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx5: Adjust events to use unsigned long param instead of void (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx5: minor fixes mainly avoidance of hidden casts (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx5: Move pci device handling from mlx5_ib to mlx5_core (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_en: mlx4_en_gset_priv_flags can be static (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Remove MCG in case it is attached to promiscuous QPs only (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: In SR-IOV mode host should add promisc QP to default entry only (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Make sure the max number of QPs per MCG isn't exceeded (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Make sure that negative array index isn't used (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Fix leakage of SW multicast entries (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_en: Do not count LLC/SNAP in MTU calculation (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_en: Do not disable vlan filter during promiscuous mode (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_en: Run loopback test only when port is up (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_en: Fix set port ratelimit for 40GE (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] cxgb4 : Update copyright year on all cxgb4 files (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: mark napi id for gro_skb (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Call iwpm_init only once (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx5_core: Fix possible race between mr tree insert/delete (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] cxgb4: use dev_port to identify ports (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Fix the error flow when probing with invalid VF configuration (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Keep only one driver entry release mlx4_priv (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Fix SRIOV free-pool management when enforcing resource quotas (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Add support for iWARP Port Mapper user space service (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] nes: Add support for iWARP Port Mapper user space service (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] core: Add support for iWARP Port Mapper user space service (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: Fix gfp passing in create_qp_common (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] umad: Fix use-after-free on close (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] core: Fix kobject leak on device register error flow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Fix GFP flags parameters to be gfp_t (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] core: Fix port kobject deletion during error flow (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] core: Remove unneeded kobject_get/put calls (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] core: Fix sparse warnings about redeclared functions (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: Implement IB_QP_CREATE_USE_GFP_NOIO (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] Add a QP creation flag to use GFP_NOIO allocations (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] Allow build of hw/ and ulp/ subdirectories independently (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [rds] tcp_listen: Replace comma with semicolon (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [rds] rdma: Replace comma with semicolon (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4_core: Move handling of MLX4_QP_ST_MLX to proper switch statement (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Avoid problems if a header uses pr_fmt (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] umad: Fix error handling (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: Add interface for selecting VFs to enable QP0 via MLX proxy QPs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: Add infrastructure for selecting VFs to enable QP0 via MLX proxy QPs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: Preparation for VFs to issue/receive SMI QP0 requests/responses (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4: SET_PORT called by mlx4_ib_modify_port should be wrapped (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Fix incorrect FLAGS1 bitmap test in mlx4_QUERY_FUNC_CAP (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4_core: Fix memory leaks in SR-IOV error paths (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb3: Remove a couple unneeded conditions (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx4: fix unitialised variable is_mcast (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ipath: Use time_before/_after (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: Fix warning about cast of wr_id back to pointer on 32 bits (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ipath: Translate legacy diagpkt into newer extended diagpkt (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb3: Fix information leak in send_abort (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: add missing padding at end of struct mlx5_ib_create_srq (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: add missing padding at end of struct mlx5_ib_create_cq (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: Refactor UMR to have its own context struct (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: Set QP offsets and parameters for user QPs and not just for kernel QPs (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5_core: Store MR attributes in mlx5_mr_core during creation and after UMR (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: Add MR to radix tree in reg_mr_callback (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5: Fix error handling in reg_umr (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5_core: Simplify signature handover wqe for interleaved buffers (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mlx5_core: Fix signature handover operation for interleaved buffers (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Add fast registration support (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Rename FMR-related variables (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: One FMR pool per SRP connection (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Introduce the 'register_always' kernel module parameter (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Introduce srp_finish_mapping (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Introduce srp_map_fmr (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Introduce an additional local variable (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Fix kernel-doc warnings (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] srp: Fix a sporadic crash triggered by cable pulling (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] ocrdma: Convert to use simple_open (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] cxgb4: Fix memory leaks in c4iw_alloc error paths (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [rds] Use time_after for time comparison (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_en: Fix uninitialized use of 'port_up' in mlx4_en_set_channels (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Fix inaccurate return value of mlx4_flow_attach (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_en: Using positive error value for unsigned (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Removed unnecessary bit operation condition (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_core: Fix smatch error - possible access to a null variable (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] mlx4_en: User prio mapping gets corrupted when changing number of channels (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [netdrv] rds: remove the unneed NULL checking (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492] - [infiniband] mellanox: Logging message cleanups (Don Dutile) [1120022 1142056 1192551 1246059 1253021 1271492]- [netdrv] qlge: make local function static (Harish Patil) [1252123] - [netdrv] delete non-required instances of include linux/init.h (Harish Patil) [1252123] - [netdrv] qlge: Fix compilation warning (Harish Patil) [1252123] - [netdrv] qlge: Convert newlines (Harish Patil) [1252123] - [netdrv] qlogic: use pci_zalloc_consistent (Harish Patil) [1252123] - [netdrv] qlge: Use pci_enable_msix_range instead of pci_enable_msix (Harish Patil) [1252123] - [netdrv] net: get rid of unnecessary initializations in .get_drvinfo (Harish Patil) [1252123] - [netdrv] qlge: Get rid of an redundant assignment (Harish Patil) [1252123] - [netdrv] net: get rid of SET_ETHTOOL_OPS (Harish Patil) [1252123] - [netdrv] qlge: remove open-coded skb_cow_head (Harish Patil) [1252123] - [netdrv] qlge: Move jiffies_to_usecs immediately before loop (Harish Patil) [1252123] - [md] dm snapshot: fix hung bios when copy error occurs (Mike Snitzer) [889368] - [md] dm thin: fix race condition when destroying thin pool workqueue (Mike Snitzer) [1292602] - [x86] Broadwell EP and EX have the same cpuid (David Arcari) [1299962] - [netdrv] bonding: make mii_status sysfs node consistent (Jarod Wilson) [1278008] - [netdrv] bna: fix Rx data corruption with VLAN stripping enabled and MTU > 4096 (Ivan Vecera) [1206064] - [netdrv] ibmveth: add support for TSO6 (Gustavo Duarte) [1252712] - [trace] tracing/filter: Do not allow infix to exceed end of string (Pratyush Anand) [1290666] - [trace] tracing/filter: Do not WARN on operand count going below zero (Pratyush Anand) [1290666] - [trace] tracing: Have filter check for balanced ops (Pratyush Anand) [1290666] - [trace] tracing: Fix double free when function profile init failed (Pratyush Anand) [1290666] - [trace] ring-buffer: Fix race between integrity check and readers (Pratyush Anand) [1290666] - [trace] ftrace: Fix memory leak with function graph and cpu hotplug (Pratyush Anand) [1290666] - [trace] ring-buffer: Fix typo of time extends per page (Pratyush Anand) [1290666] - [net] tcp: select(writefds) don't hang up when a peer close connection (Marcelo Leitner) [1293543] - [net] ipv6: addrlabel: fix ip6addrlbl_get() (Hannes Frederic Sowa) [1299720] - [firmware] add rtlwifi images (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [firmware] add brcmfmac images (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] iwlwifi: add new -16 firmware for iwlmvm devices (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] iwlwifi: add new -13 firmware for iwlmvm devices (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Add brcmfmac driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] include/linux/if_ether.h: Add #define ETH_P_LINK_CTL for HPNA and wlan local tunnel (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Update remaining wireless drivers to new 802.11 stack from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Backport brcmsmac driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Backport b43 driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Bakcport SSB driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Backport BCMA bus driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Backport iwlegacy driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Backport rt2x00 driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Backport carl9170 driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Backport ath5k driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Backport ath9k driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] Backport iwlwifi driver from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [net] Backport mac80211 from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [net] Backport wireless core from linux 4.3 (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [kernel] atomic: implement generic atomic_dec_if_positive (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [netdrv] average: provide macro to create static EWMA (Stanislaw Gruszka) [1245452 1263386 1289574 761525] - [perf] x86: Improve HT workaround GP counter constraint (Jiri Olsa) [1238702] - [perf] x86: Fix event/group validation (Jiri Olsa) [1238702] - [perf] x86: Disable PEBS-LL in intel_pmu_pebs_disable (Jiri Olsa) [1238702] - [perf] x86/intel: Reset more state in PMU reset (Jiri Olsa) [1238702] - [perf] x86/intel: Make the HT bug workaround conditional on HT enabled (Jiri Olsa) [1238702] - [perf] x86/intel: Limit to half counters when the HT workaround is enabled, to avoid exclusive mode starvation (Jiri Olsa) [1238702] - [perf] x86/intel: Fix intel_get_event_constraints() for dynamic constraints (Jiri Olsa) [1238702] - [perf] x86/intel: Enforce HT bug workaround for SNB/IVB/HSW (Jiri Olsa) [1238702] - [perf] x86/intel: Implement cross-HT corruption bug workaround (Jiri Olsa) [1238702] - [perf] x86/intel: Add cross-HT counter exclusion infrastructure (Jiri Olsa) [1238702] - [perf] x86: Add 'index' param to get_event_constraint callback (Jiri Olsa) [1238702] - [perf] x86: Add 3 new scheduling callbacks (Jiri Olsa) [1238702] - [perf] x86: Vectorize cpuc->kfree_on_online (Jiri Olsa) [1238702] - [perf] x86: Reduce stack usage of x86_schedule_events (Jiri Olsa) [1238702] - [kernel] watchdog: Add watchdog enable/disable all functions (Jiri Olsa) [1238702] - [perf] kernel: Change ASSIGN_ONCEval, x to WRITE_ONCE x, val (Jiri Olsa) [1238702] - [perf] kernel: Provide READ_ONCE and ASSIGN_ONCE (Jiri Olsa) [1238702] - [netdrv] i40evf: avoid mutex re-init (Stefan Assmann) [1212361]- [sched] revert "rt: Update rq clock when unthrottling of an otherwise idle CPU" (Aristeu Rozanski) [1263613] - [sched] revert "sched: Revert "Set skip_clock_update in yield_task_fair" (Aristeu Rozanski) [1263613] - [sched] Revert "Remove useless code in yield_to" (Aristeu Rozanski) [1263613] - [sched] revert "core: Rework rq->clock update skips" (Aristeu Rozanski) [1263613] - [perf] annotate: Fix 32-bit compilation error in util/annotate.c (Jiri Olsa) [1189317] - [perf] report: Display cycles in branch sort mode (Jiri Olsa) [1189317] - [perf] tools: Move branch option parsing to own file (Jiri Olsa) [1189317] - [perf] tool: Add conditional branch filter 'cond' to perf record (Jiri Olsa) [1189317] - [perf] top: branch annotation code to top (Jiri Olsa) [1189317] - [perf] annotate: Finally display IPC and cycle accounting (Jiri Olsa) [1189317] - [perf] annotate: Compute IPC and basic block cycles (Jiri Olsa) [1189317] - [perf] report: Add processing for cycle histograms (Jiri Olsa) [1189317] - [perf] report: Add infrastructure for a cycles histogram (Jiri Olsa) [1189317] - [perf] annotate: Rename source_line_percent to source_line_samples (Jiri Olsa) [1189317] - [perf] annotate: Display total number of samples with --show-total-period (Jiri Olsa) [1189317] - [perf] annotation: Add symbol__get_annotation (Jiri Olsa) [1189317] - [perf] report: Add flag for non ANY branch mode (Jiri Olsa) [1189317] - [perf] tools: Add support for cycles, weight branch_info field (Jiri Olsa) [1189317] - [perf] x86/intel: Use 0x11 as extra reg test value (Jiri Olsa) [1189317] - [perf] x86/intel: Protect LBR and extra_regs against KVM lying (Jiri Olsa) [1189317] - [perf] x86: Make merge_attr global to use from perf_event_intel (Jiri Olsa) [1189317] - [perf] x86/intel/lbr: Limit LBR accesses to TOS in callstack mode (Jiri Olsa) [1189317] - [perf] x86/intel/lbr: Use correct index to save/restore LBR_INFO with call stack (Jiri Olsa) [1189317] - [perf] x86/intel: Add Intel Skylake PMU support (Jiri Olsa) [1189317] - [perf] x86/intel/lbr: Optimize v4 LBR unfreezing (Jiri Olsa) [1189317] - [perf] x86/intel: Streamline LBR MSR handling in PMI (Jiri Olsa) [1189317] - [perf] x86/intel: Move PMU ACK to after LBR read (Jiri Olsa) [1189317] - [perf] x86/intel: Handle new arch perfmon v4 status bits (Jiri Olsa) [1189317] - [perf] x86/intel/lbr: Add support for LBRv5 (Jiri Olsa) [1189317] - [perf] Add cycles to branch_info (Jiri Olsa) [1189317] - [perf] x86: Add new MSRs and MSR bits used for Intel Skylake PMU support (Jiri Olsa) [1189317] - [perf] x86/intel: Add support for PEBSv3 profiling (Jiri Olsa) [1189317] - [perf] x86: Add a native_perf_sched_clock_from_tsc (Jiri Olsa) [1189317] - [perf] x86: Rename x86_pmu::er_flags to 'flags' (Jiri Olsa) [1189317] - [perf] x86: Revamp PEBS event selection (Jiri Olsa) [1189317] - [perf] x86/asm/msr: Make wrmsrl_safe a function (Jiri Olsa) [1189317] - [perf] x86/intel/uncore: Use Sandy Bridge client PMU on Haswell/Broadwell (Jiri Olsa) [1250641] - [perf] x86/intel/uncore: Add support for ARB uncore PMU on Sandy/IvyBridge (Jiri Olsa) [1250641] - [perf] x86/intel/uncore: Add Broadwell-U uncore IMC PMU support (Jiri Olsa) [1250641] - [perf] x86/intel/uncore: Move PCI IDs for IMC to uncore driver (Jiri Olsa) [1250641] - [perf] x86/intel/uncore: Add support for Intel Haswell ULT - lower power Mobile Processor - IMC uncore PMUs (Jiri Olsa) [1250641] - [perf] x86/intel/uncore: Update support for client uncore IMC PMU (Jiri Olsa) [1250641] - [perf] x86/uncore: Fix missing end markers for SNB/IVB/HSW IMC PMU (Jiri Olsa) [1250641] - [perf] x86/uncore: use MiB unit for events for SNB/IVB/HSW IMC (Jiri Olsa) [1250641] - [perf] x86/uncore: add hrtimer to SNB uncore IMC PMU (Jiri Olsa) [1250641] - [perf] x86/uncore: add SNB/IVB/HSW client uncore memory controller support (Jiri Olsa) [1250641] - [perf] x86/uncore: add PCI ids for SNB/IVB/HSW IMC (Jiri Olsa) [1250641] - [perf] Add active_entry list head to struct perf_event (Jiri Olsa) [1250641] - [perf] tools: Use getconf to determine number of online CPUs (Jiri Olsa) [1291071] - [perf] probe: Fix segfault if passed with '' (Jiri Olsa) [1291071] - [perf] report: Fix -T/--threads option to work again (Jiri Olsa) [1291071] - [perf] bench numa: Fix immediate meeting of convergence condition (Jiri Olsa) [1291071] - [perf] bench numa: Fixes of --quiet argument (Jiri Olsa) [1291071] - [perf] bench futex: Fix hung wakeup tasks after requeueing (Jiri Olsa) [1291071] - [perf] probe: Fix bug with global variables handling (Jiri Olsa) [1291071] - [perf] top: Fix a segfault when kernel map is restricted (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Fix build failure on 32-bit arch (Jiri Olsa) [1291071] - [perf] kmem: Fix compiles on RHEL6/OL6 (Jiri Olsa) [1291071] - [perf] tools lib api: Undefine _FORTIFY_SOURCE before setting it (Jiri Olsa) [1291071] - [perf] kmem: Consistently use PRIu64 for printing u64 values (Jiri Olsa) [1291071] - [perf] trace: Disable events and drain events when forked workload ends (Jiri Olsa) [1291071] - [perf] trace: Enable events when doing system wide tracing and starting a workload (Jiri Olsa) [1291071] - [perf] probe: Fix segfault when probe with lazy_line to file (Jiri Olsa) [1291071] - [perf] probe: Find compilation directory path for lazy matching (Jiri Olsa) [1291071] - [perf] probe: Set retprobe flag when probe in address-based alternative mode (Jiri Olsa) [1291071] - [perf] kmem: Analyze page allocator events also (Jiri Olsa) [1291071] - [perf] evlist: Fix type for references to data_head/tail (Jiri Olsa) [1291071] - [perf] probe: Check the orphaned -x option (Jiri Olsa) [1291071] - [perf] probe: Support multiple probes on different binaries (Jiri Olsa) [1291071] - [perf] buildid-list: Fix segfault when show DSOs with hits (Jiri Olsa) [1291071] - [perf] tools: Fix cross-endian analysis (Jiri Olsa) [1291071] - [perf] tools: Fix error path to do closedir() when synthesizing threads (Jiri Olsa) [1291071] - [perf] tools: Fix synthesizing fork_event.ppid for non-main thread (Jiri Olsa) [1291071] - [perf] tools: Add 'I' event modifier for exclude_idle bit (Jiri Olsa) [1291071] - [perf] report: Don't call map__kmap if map is NULL (Jiri Olsa) [1291071] - [perf] tests: Fix attr tests (Jiri Olsa) [1291071] - [perf] probe: Fix ARM 32 building error (Jiri Olsa) [1291071] - [perf] tools: Merge all perf_event_attr print functions (Jiri Olsa) [1291071] - [perf] sched replay: Use replay_repeat to calculate the runavg of cpu usage instead of the default value 10 (Jiri Olsa) [1291071] - [perf] sched replay: Support using -f to override perf.data file ownership (Jiri Olsa) [1291071] - [perf] sched replay: Fix the EMFILE error caused by the limitation of the maximum open files (Jiri Olsa) [1291071] - [perf] sched replay: Handle the dead halt of sem_wait when create_tasks() fails for any task (Jiri Olsa) [1291071] - [perf] sched replay: Fix the segmentation fault problem caused by pr_err in threads (Jiri Olsa) [1291071] - [perf] sched replay: Realloc the memory of pid_to_task stepwise to adapt to the different pid_max configurations (Jiri Olsa) [1291071] - [perf] sched replay: Alloc the memory of pid_to_task dynamically to adapt to the unexpected change of pid_max (Jiri Olsa) [1291071] - [perf] sched replay: Increase the MAX_PID value to fix assertion failure problem (Jiri Olsa) [1291071] - [perf] sched replay: Use struct task_desc instead of struct task_task for correct meaning (Jiri Olsa) [1291071] - [perf] kmem: Respect -i option (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Honor operator priority (Jiri Olsa) [1291071] - [perf] kmaps: Check kmaps to make code more robust (Jiri Olsa) [1291071] - [perf] evlist: Fix inverted logic in perf_mmap__empty (Jiri Olsa) [1291071] - [perf] data: Support using -f to override perf.data file ownership for 'convert' (Jiri Olsa) [1291071] - [perf] trace: Support using -f to override perf.data file ownership (Jiri Olsa) [1291071] - [perf] timechart: Support using -f to override perf.data file ownership (Jiri Olsa) [1291071] - [perf] script: Support using -f to override perf.data file ownership (Jiri Olsa) [1291071] - [perf] mem: Support using -f to override perf.data file ownership (Jiri Olsa) [1291071] - [perf] lock: Support using -f to override perf.data file ownership (Jiri Olsa) [1291071] - [perf] kvm: Support using -f to override perf.data.guest file ownership (Jiri Olsa) [1291071] - [perf] kmem: Support using -f to override perf.data file ownership (Jiri Olsa) [1291071] - [perf] inject: Support using -f to override perf.data file ownership (Jiri Olsa) [1291071] - [perf] evlist: Support using -f to override perf.data file ownership (Jiri Olsa) [1291071] - [perf] probe: Fix to track down unnamed union/structure members (Jiri Olsa) [1291071] - [perf] db-export: No need to have ->thread twice in struct export_sample (Jiri Olsa) [1291071] - [perf] db-export: No need to pass thread twice to db_export__sample (Jiri Olsa) [1291071] - [perf] scripting: No need to pass thread twice to the scripting callbacks (Jiri Olsa) [1291071] - [perf] script: No need to lookup thread twice (Jiri Olsa) [1291071] - [perf] ordered_samples: Remove references to perf_{evlist, tool} and machines (Jiri Olsa) [1291071] - [perf] session: Always initialize ordered_events (Jiri Olsa) [1291071] - [perf] tools: Fix ppid for synthesized fork events (Jiri Olsa) [1291071] - [perf] tools: Refactor comm/tgid lookup (Jiri Olsa) [1291071] - [perf] callchain: Fix kernel symbol resolution by remembering the cpumode (Jiri Olsa) [1291071] - [perf] build: Disable libbabeltrace check by default (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Zero should not be considered "not found" in eval_flag (Jiri Olsa) [1291071] - [perf] trace: Fix syscall enter formatting bug (Jiri Olsa) [1291071] - [perf] tools: Set JOBS based on CPU or processor (Jiri Olsa) [1291071] - [perf] perf: Bump max number of cpus to 1024 (Jiri Olsa) [1291071] - [perf] evlist: Return the first evsel with an invalid filter in apply_filters() (Jiri Olsa) [1291071] - [perf] timechart: Fix SIBGUS error on sparc64 (Jiri Olsa) [1291071] - [perf] tools: Add pid/tid filtering to report and script commands (Jiri Olsa) [1291071] - [perf] diff: Add kallsyms option (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Add support for __print_array (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Free filter tokens in process_filter (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Add way to find sub buffer boundary (Jiri Olsa) [1291071] - [perf] tools lib traceevent kbuffer: Remove extra update to data pointer in PADDING (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Make plugin options either string or boolean (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Add pevent_data_pid_from_comm (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Handle z in bprint format (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Copy trace_clock and free it (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Handle NULL comm name (Jiri Olsa) [1291071] - [perf] symbols: Save DSO loading errno to better report errors (Jiri Olsa) [1291071] - [perf] target: Simplify handling of strerror_r return (Jiri Olsa) [1291071] - [perf] tools: Work around lack of sched_getcpu in glibc < 2.6 (Jiri Olsa) [1291071] - [perf] kmem: Print big numbers using thousands' group (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Factor out allocating and processing args (Jiri Olsa) [1291071] - [perf] probe: Fix to get ummapped symbol address on kernel (Jiri Olsa) [1291071] - [perf] tools: Remove (null) value of "Sort order" for perf mem report (Jiri Olsa) [1291071] - [perf] annotate: Allow annotation for decompressed kernel modules (Jiri Olsa) [1291071] - [perf] tools: Try to lookup kernel module map before creating one (Jiri Olsa) [1291071] - [perf] tools: Remove is_kmodule_extension function (Jiri Olsa) [1291071] - [perf] tools: Remove compressed argument from is_kernel_module (Jiri Olsa) [1291071] - [perf] tools: Use kmod_path__parse in is_kernel_module (Jiri Olsa) [1291071] - [perf] tools: Use kmod_path__parse in decompress_kmodule (Jiri Olsa) [1291071] - [perf] tools: Use kmod_path__parse in map_groups__set_modules_path_dir (Jiri Olsa) [1291071] - [perf] tools: Use kmod_path__parse for machine__new_dso (Jiri Olsa) [1291071] - [perf] tools: Add machine__module_dso function (Jiri Olsa) [1291071] - [perf] tools: Add dsos__addnew function (Jiri Olsa) [1291071] - [perf] tools: Add kmod_path__parse function (Jiri Olsa) [1291071] - [perf] tools: Add lzma decompression support for kernel module (Jiri Olsa) [1291071] - [perf] tools build: Add feature check for lzma library (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Add destructor for format_field (Jiri Olsa) [1291071] - [perf] hists browser: Indicate which callchain entries are annotated (Jiri Olsa) [1291071] - [perf] build: Move feature checks code under tools/build (Jiri Olsa) [1291071] - [perf] build: Make features checks directory configurable (Jiri Olsa) [1291071] - [perf] build: Separate feature make support into config/Makefile.feature (Jiri Olsa) [1291071] - [perf] build: Fix feature_check name clash (Jiri Olsa) [1291071] - [perf] trace: Fix summary_only option (Jiri Olsa) [1291071] - [perf] probe: Fix failure to add multiple probes without debuginfo (Jiri Olsa) [1291071] - [perf] build: Add config/feature-checks/*.output to the .gitignore file (Jiri Olsa) [1291071] - [perf] build: Use FEATURE-DUMP instead of PERF-FEATURES in the .gitignore file (Jiri Olsa) [1291071] - [perf] tools: Don't allow empty argument for field-separator (Jiri Olsa) [1291071] - [perf] report: Don't allow empty argument for '-t' (Jiri Olsa) [1291071] - [perf] callchain: Separate eh/debug frame offset cache (Jiri Olsa) [1291071] - [perf] tools: Avoid confusion with preloaded bash function for perf bash completion (Jiri Olsa) [1291071] - [perf] tools: Add the bash completion for listing subsubcommands of perf trace (Jiri Olsa) [1291071] - [perf] tools: Add the bash completion for listing subsubcommands of perf timechart (Jiri Olsa) [1291071] - [perf] tools: Add the bash completion for listing subsubcommands of perf test (Jiri Olsa) [1291071] - [perf] tools: Add the bash completion for listing subsubcommands of perf script (Jiri Olsa) [1291071] - [perf] tools: Add the bash completion for listing subsubcommands of perf help (Jiri Olsa) [1291071] - [perf] tools: Add the bash completion for listing subsubcommands of perf data (Jiri Olsa) [1291071] - [perf] tools: Fix the bash completion for listing subcommands of perf (Jiri Olsa) [1291071] - [perf] tools: Fix the bash completion to support listing events for --event (Jiri Olsa) [1291071] - [perf] tools: Fix the bash completion for listing events of perf subcommand record|stat|top -e (Jiri Olsa) [1291071] - [perf] tools: Provide the right bash completion for listing options of perf subcommand subsubcommand (Jiri Olsa) [1291071] - [perf] tools: Fix the bash completion for listing subsubcommands of perf subcommand (Jiri Olsa) [1291071] - [perf] tools: Fix the bash completion for listing options of perf subcommand (Jiri Olsa) [1291071] - [perf] tools: Fix perf-read-vdsox32 not building and lib64 install dir (Jiri Olsa) [1291071] - [perf] build: Rename feature_print_var_code to print_var_code (Jiri Olsa) [1291071] - [perf] build: Rename PERF-FEATURES into FEATURE-DUMP (Jiri Olsa) [1291071] - [perf] build: Rename display_vf to feature_verbose (Jiri Olsa) [1291071] - [perf] build: Rename display_lib into feature_display (Jiri Olsa) [1291071] - [perf] build: Get rid of VF_FEATURE_TESTS (Jiri Olsa) [1291071] - [perf] build: Rename CORE_FEATURE_TESTS to FEATURE_TESTS (Jiri Olsa) [1291071] - [perf] build: Get rid of LIB_INCLUDE variable (Jiri Olsa) [1291071] - [perf] build: Fix pthread-attr-setaffinity-np include in test-all (Jiri Olsa) [1291071] - [perf] build: Move features build output under features directory (Jiri Olsa) [1291071] - [perf] build: Disable default check for libbabeltrace (Jiri Olsa) [1291071] - [perf] tools: Fix building error for arm64 (Jiri Olsa) [1291071] - [perf] hists browser: Allow annotating entries in callchains (Jiri Olsa) [1291071] - [perf] hists: Remove hist_entry->used, not used anymore (Jiri Olsa) [1291071] - [perf] hists browser: Fix up some branch alignment (Jiri Olsa) [1291071] - [perf] hists browser: Simplify symbol annotation menu setup (Jiri Olsa) [1291071] - [perf] data: Add tracepoint events fields CTF conversion support (Jiri Olsa) [1291071] - [perf] kmem: Fix alignment of slab result table (Jiri Olsa) [1291071] - [perf] kmem: Allow -v option (Jiri Olsa) [1291071] - [perf] kmem: Fix segfault when invalid sort key is given (Jiri Olsa) [1291071] - [perf] stat: Always correctly indent ratio column (Jiri Olsa) [1291071] - [perf] stat: Fix IPC and other formulas with -A (Jiri Olsa) [1291071] - [perf] stat: Output running time and run/enabled ratio in CSV mode (Jiri Olsa) [1291071] - [perf] hists browser: Fix UI bug after fold/unfold (Jiri Olsa) [1291071] - [perf] robe: Fix compiles due to declarations using perf_probe_point (Jiri Olsa) [1291071] - [perf] hists browser: Fix UI bug after zoom into thread/dso/symbol (Jiri Olsa) [1291071] - [perf] probe: Fix possible double free on error (Jiri Olsa) [1291071] - [perf] tools: Output feature detection's gcc output to a file (Jiri Olsa) [1291071] - [perf] build: Fix libbabeltrace detection (Jiri Olsa) [1291071] - [perf] probe: Allow weak symbols to be probed (Jiri Olsa) [1291071] - [perf] symbols: Allow symbol alias when loading map for symbol name (Jiri Olsa) [1291071] - [perf] revert "perf probe: Fix to fall back to find probe point in symbols" (Jiri Olsa) [1291071] - [perf] probe: Fix --line to handle aliased symbols in glibc (Jiri Olsa) [1291071] - [perf] probe: Fix to handle aliased symbols in glibc (Jiri Olsa) [1291071] - [perf] ordered_events: Adopt queue method (Jiri Olsa) [1291071] - [perf] tools: Remove superfluous thread->comm_set setting (Jiri Olsa) [1291071] - [perf] tools: tool->finished_round() doesn't need perf_session (Jiri Olsa) [1291071] - [perf] ordered_events: Allow tools to specify a deliver method (Jiri Olsa) [1291071] - [perf] ordered_events: Shorten function signatures (Jiri Olsa) [1291071] - [perf] ordered_events: Untangle from perf_session (Jiri Olsa) [1291071] - [perf] sched: No need to keep the session around (Jiri Olsa) [1291071] - [perf] tools: Reference count struct thread (Jiri Olsa) [1291071] - [perf] revert "perf: Remove the extra validity check on nr_pages" (Jiri Olsa) [1291071] - [perf] tools: Initialize cpu set in pthread_attr_setaffinity_np feature test (Jiri Olsa) [1291071] - [perf] probe: Remove bias offset to find probe point by address (Jiri Olsa) [1291071] - [perf] probe: Warn if given uprobe event accesses memory on older kernel (Jiri Olsa) [1291071] - [perf] tools: Improve 'libbabel' feature check failure message (Jiri Olsa) [1291071] - [perf] tools: Improve feature test debuggability (Jiri Olsa) [1291071] - [perf] tools: Improve libbfd detection message (Jiri Olsa) [1291071] - [perf] tools: Improve libperl detection message (Jiri Olsa) [1291071] - [perf] tools: Improve Python feature detection messages (Jiri Olsa) [1291071] - [perf] tools: Remove annoying extra message from the features build (Jiri Olsa) [1291071] - [perf] tools: Add PERF-FEATURES to the .gitignore file (Jiri Olsa) [1291071] - [perf] record: Document --group option (Jiri Olsa) [1291071] - [perf] record: Get rid of -l option from Documentation (Jiri Olsa) [1291071] - [perf] tools: Fix build error on ARCH=i386/x86_64/sparc64 (Jiri Olsa) [1291071] - [perf] tools: Fix FORK after COMM when synthesizing records for pre-existing threads (Jiri Olsa) [1291071] - [perf] stat: Report unsupported events properly (Jiri Olsa) [1291071] - [perf] tools: Compare JOBS to 0 after grep (Jiri Olsa) [1291071] - [perf] report: Fix branch stack mode cannot be set (Jiri Olsa) [1291071] - [perf] buildid-cache: Show usage with incorrect params (Jiri Olsa) [1291071] - [perf] buildid-cache: Use pr_debug instead of verbose and pr_info (Jiri Olsa) [1291071] - [perf] buildid-cache: Add --purge FILE to remove all caches of FILE (Jiri Olsa) [1291071] - [perf] tools: Fix the bash completion problem of 'perf --*' (Jiri Olsa) [1291071] - [perf] list: Extend raw-dump to certain kind of events (Jiri Olsa) [1291071] - [perf] list: Clean up the printing functions of hardware/software events (Jiri Olsa) [1291071] - [perf] tools: Remove the '--(null)' long_name for --list-opts (Jiri Olsa) [1291071] - [perf] list: Avoid confusion of perf output and the next command prompt (Jiri Olsa) [1291071] - [perf] list: Allow listing events with 'tracepoint' prefix (Jiri Olsa) [1291071] - [perf] list: Sort the output of 'perf list' to view more clearly (Jiri Olsa) [1291071] - [perf] data: Fix sentinel setting for data_cmds array (Jiri Olsa) [1291071] - [perf] probe: Fix a precedence bug (Jiri Olsa) [1291071] - [perf] diff: Support for different binaries (Jiri Olsa) [1291071] - [perf] buildid-cache: Add new buildid cache if update target is not cached (Jiri Olsa) [1291071] - [perf] probe: Handle strdup failure (Jiri Olsa) [1291071] - [perf] probe: Fix get_real_path to free allocated memory in error path (Jiri Olsa) [1291071] - [perf] probe: Check kprobes blacklist when adding new events (Jiri Olsa) [1291071] - [perf] trace: Fix SIGBUS failures due to misaligned accesses (Jiri Olsa) [1291071] - [perf] data: Add a 'perf' prefix to the generic fields (Jiri Olsa) [1291071] - [perf] data: Add perf data to CTF conversion support (Jiri Olsa) [1291071] - [perf] tools: Add new 'perf data' command (Jiri Olsa) [1291071] - [perf] tools: Add feature check for libbabeltrace (Jiri Olsa) [1291071] - [perf] record: Support recording running/enabled time (Jiri Olsa) [1291071] - [perf] tools: Print the thread's tid on PERF_RECORD_COMM events when -D is asked (Jiri Olsa) [1291071] - [perf] trace: Dump stack on segfaults (Jiri Olsa) [1291071] - [perf] tools: Introduce dump_stack signal helper (Jiri Olsa) [1291071] - [perf] ordered_events: Stop using tool->ordered_events (Jiri Olsa) [1291071] - [perf] session: Remove perf_session from dump_event (Jiri Olsa) [1291071] - [perf] session: Remove perf_session from some deliver event routines (Jiri Olsa) [1291071] - [perf] session: Remove perf_session from warn_errors signature (Jiri Olsa) [1291071] - [perf] evlist: Adopt events_stats from perf_session (Jiri Olsa) [1291071] - [perf] session: Remove wrappers to machines__find (Jiri Olsa) [1291071] - [perf] trace: Separate routine that handles an event from the one that reads it (Jiri Olsa) [1291071] - [perf] trace: Add man page entry for --event (Jiri Olsa) [1291071] - [perf] trace: Introduce --filter-pids (Jiri Olsa) [1291071] - [perf] evlist: Introduce set_filter_pids method (Jiri Olsa) [1291071] - [perf] trace: Filter out the trace pid when no threads are specified (Jiri Olsa) [1291071] - [perf] evlist: Introduce set_filter_pid method (Jiri Olsa) [1291071] - [perf] trace: Only insert blank duration bracket when tracing syscalls (Jiri Olsa) [1291071] - [perf] trace: Support --events foo:bar --no-syscalls (Jiri Olsa) [1291071] - [perf] trace: Allow mixing with other events (Jiri Olsa) [1291071] - [perf] trace: Handle multiple threads better wrt syscalls being intermixed (Jiri Olsa) [1291071] - [perf] trace: Print thread info when following children (Jiri Olsa) [1291071] - [perf] list: Place the header text in its right position (Jiri Olsa) [1291071] - [perf] Remove the extra validity check on nr_pages (Jiri Olsa) [1291071] - [perf] tools: Fix a bug of segmentation fault (Jiri Olsa) [1291071] - [perf] build: Display make commands on V=1 (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Use tools build framework (Jiri Olsa) [1291071] - [perf] tools lib api: Rename libapikfs.a to libapi.a (Jiri Olsa) [1291071] - [perf] tools lib api: Use tools build framework (Jiri Olsa) [1291071] - [perf] build: Add build documentation (Jiri Olsa) [1291071] - [perf] build: Remove PERF-CFLAGS file (Jiri Olsa) [1291071] - [perf] build: Remove uneeded variables (Jiri Olsa) [1291071] - [perf] build: Remove directory dependency rules (Jiri Olsa) [1291071] - [perf] build: Add single target build framework support (Jiri Olsa) [1291071] - [perf] build: Add arch sparc objects building (Jiri Olsa) [1291071] - [perf] build: Add arch sh objects building (Jiri Olsa) [1291071] - [perf] build: Add arch s390 objects building (Jiri Olsa) [1291071] - [perf] build: Add arch powerpc objects building (Jiri Olsa) [1291071] - [perf] build: Add arch arm64 objects building (Jiri Olsa) [1291071] - [perf] build: Add arch arm objects building (Jiri Olsa) [1291071] - [perf] build: Add arch x86 objects building (Jiri Olsa) [1291071] - [perf] build: Add perf.o object building (Jiri Olsa) [1291071] - [perf] build: Add zlib objects building (Jiri Olsa) [1291071] - [perf] build: Add perf regs objects building (Jiri Olsa) [1291071] - [perf] build: Add scripts objects building (Jiri Olsa) [1291071] - [perf] build: Add gtk objects building (Jiri Olsa) [1291071] - [perf] build: Add slang objects building (Jiri Olsa) [1291071] - [perf] build: Add ui objects building (Jiri Olsa) [1291071] - [perf] build: Add dwarf unwind objects building (Jiri Olsa) [1291071] - [perf] build: Add dwarf objects building (Jiri Olsa) [1291071] - [perf] build: Add probe objects building (Jiri Olsa) [1291071] - [perf] build: Add libperf objects building (Jiri Olsa) [1291071] - [perf] build: Add builtin objects building (Jiri Olsa) [1291071] - [perf] build: Add tests objects building (Jiri Olsa) [1291071] - [perf] build: Add bench objects building (Jiri Olsa) [1291071] - [perf] build: Disable make's built-in rules (Jiri Olsa) [1291071] - [perf] tools: Remove api fs object from python build (Jiri Olsa) [1291071] - [perf] tools build: Add subdir support (Jiri Olsa) [1291071] - [perf] tools build: Add detected config support (Jiri Olsa) [1291071] - [perf] tools build: Add new build support (Jiri Olsa) [1291071] - [perf] buildid-cache: Consolidate .build-id cache path generators (Jiri Olsa) [1291071] - [perf] buildid-cache: Remove unneeded debugdir parameters (Jiri Olsa) [1291071] - [perf] symbols: Define STT_GNU_IFUNC for glibc 2.9 and older (Jiri Olsa) [1291071] - [perf] tools: Make perf aware of tracefs (Jiri Olsa) [1291071] - [perf] tools lib api fs: Add tracefs_configured, debugfs_configured functions (Jiri Olsa) [1291071] - [perf] tools lib api debugfs: Add DEBUGFS_DEFAULT_PATH macro (Jiri Olsa) [1291071] - [perf] tools lib api fs: Add tracefs mount helper functions (Jiri Olsa) [1291071] - [perf] tools: Add helper to find mounted file systems (Jiri Olsa) [1291071] - [perf] tools: Do not check debugfs MAGIC for tracing files (Jiri Olsa) [1291071] - [perf] evlist: Fix typo in comment (Jiri Olsa) [1291071] - [perf] trace: No need to enable evsels for workload started from perf (Jiri Olsa) [1291071] - [perf] tools: Introduce event_format__fprintf method (Jiri Olsa) [1291071] - [perf] tools lib traceevent: Introduce trace_seq_do_fprintf function (Jiri Olsa) [1291071] - [perf] symbols: debuglink should take symfs option into account (Jiri Olsa) [1291071] - [perf] symbols: Ignore mapping symbols on aarch64 (Jiri Olsa) [1291071] - [perf] probe: Update man page (Jiri Olsa) [1291071] - [perf] probe: Fix to handle optimized not-inlined functions (Jiri Olsa) [1291071] - [perf] tools: Fix a dso open fail message (Jiri Olsa) [1291071] - [perf] ests: Do not rely on dso__data_read_offset to open dso (Jiri Olsa) [1291071] - [perf] test: Fix dso cache testcase (Jiri Olsa) [1291071] - [perf] tools: Construct LBR call chain (Jiri Olsa) [1291071] - [perf] tools: Enable LBR call stack support (Jiri Olsa) [1291071] - [perf] x86: Remove redundant calls to perf_pmu_disable,perf_pmu_enable (Jiri Olsa) [1291071] - [perf] x86/intel: Expose LBR callstack to user space tooling (Jiri Olsa) [1291071] - [perf] x86/intel: Discard zero length call entries in LBR call stack (Jiri Olsa) [1291071] - [perf] /x86/intel: Disable FREEZE_LBRS_ON_PMI when LBR operates in callstack mode (Jiri Olsa) [1291071] - [perf] x86/intel: Re-organize code that implicitly enables LBR/PEBS (Jiri Olsa) [1291071] - [perf] Simplify the branch stack check (Jiri Olsa) [1291071] - [perf] x86/intel: Save/restore LBR stack during context switch (Jiri Olsa) [1291071] - [perf] x86/intel: Track number of events that use the LBR callstack (Jiri Olsa) [1291071] - [perf] x86/intel: Allocate space for storing LBR stack (Jiri Olsa) [1291071] - [perf] Always switch pmu specific data during context switch (Jiri Olsa) [1291071] - [perf] Add pmu specific data for perf task context (Jiri Olsa) [1291071] - [perf] revert "perf: Always destroy groups on exit" (Jiri Olsa) [1291071] - [perf] Fix event->ctx locking (Jiri Olsa) [1291071] - [perf] Fix perf_pmu_migrate_context (Jiri Olsa) [1291071] - [perf] Fix unclone_ctx vs locking (Jiri Olsa) [1291071] - [perf] Fix lockdep warning on process exit (Jiri Olsa) [1291071] - [perf] Fix use after free in perf_remove_from_context (Jiri Olsa) [1291071] - [perf] x86/intel: Add basic Haswell LBR call stack support (Jiri Olsa) [1291071] - [perf] x86/intel: Use context switch callback to flush LBR stack (Jiri Olsa) [1291071] - [perf] Introduce pmu context switch callback (Jiri Olsa) [1291071] - [perf] x86/intel: Reduce lbr_sel_map[] size (Jiri Olsa) [1291071] - [perf] x86: Add conditional branch filtering support (Jiri Olsa) [1291071] - [perf] Add new conditional branch filter 'PERF_SAMPLE_BRANCH_COND' (Jiri Olsa) [1291071] - [perf] Update shadow timestamp before add event (Jiri Olsa) [1291071] - [perf] x86/intel/uncore: Delete an unnecessary check before pci_dev_put call (Jiri Olsa) [1291071]- [hv] fcopy: switch to using the hvutil_device_state state machine (Vitaly Kuznetsov) [1216950] - [hv] vss: switch to using the hvutil_device_state state machine (Vitaly Kuznetsov) [1216950] - [hv] kvp: switch to using the hvutil_device_state state machine (Vitaly Kuznetsov) [1216950] - [hv] util: introduce state machine for util drivers (Vitaly Kuznetsov) [1216950] - [hv] fcopy: rename fcopy_work -> fcopy_timeout_work (Vitaly Kuznetsov) [1216950] - [hv] kvp: rename kvp_work -> kvp_timeout_work (Vitaly Kuznetsov) [1216950] - [hv] vss: process deferred messages when we complete the transaction (Vitaly Kuznetsov) [1216950] - [hv] fcopy: process deferred messages when we complete the transaction (Vitaly Kuznetsov) [1216950] - [hv] kvp: move poll_channel() to hyperv_vmbus.h (Vitaly Kuznetsov) [1216950] - [hv] kvp: reset kvp_context (Vitaly Kuznetsov) [1216950] - [hv] util: move kvp/vss function declarations to hyperv_vmbus.h (Vitaly Kuznetsov) [1216950] - [kernel] kprobes: initialize before using a hlist (Pratyush Anand) [1290663] - [perf] x86/intel/uncore: Add Broadwell-EP uncore support (Jiri Olsa) [1242694 1249700 1283155] - [perf] x86/intel/uncore: Add Broadwell-DE uncore support (Jiri Olsa) [1242694 1249700 1283155] - [perf] Decouple unthrottling and rotating (Jiri Olsa) [1242694 1249700 1283155] - [x86] perf: Add more Broadwell model numbers (Jiri Olsa) [1242694 1249700 1283155] - [perf] perf/x86/intel: Remove incorrect model number from Haswell perf (Jiri Olsa) [1242694 1249700 1283155] - [watchdog] avoid races between /proc handlers and CPU hotplug (Aaron Tomlin) [1263774] - [watchdog] update watchdog_thresh properly (Aaron Tomlin) [1263774] - [watchdog] update watchdog attributes atomically (Aaron Tomlin) [1263774] - [watchdog] Use hotplug thread infrastructure (Aaron Tomlin) [1263774] - [watchdog] make sure the watchdog thread gets CPU on loaded system (Aaron Tomlin) [1263774] - [watchdog] Drop FIFO policy in exit path (Aaron Tomlin) [1263774] - [mmc] sdhci-pci: Build o2micro support in the same module (Don Zickus) [1089109] - [mmc] sdhci-pci: add support of O2Micro/BayHubTech SD hosts (Don Zickus) [1089109] - [mmc] sdhci-pci: break out definitions to header file (Don Zickus) [1089109] - [mmc] sdhci: add auto CMD12 support for eSDHC driver (Don Zickus) [1089109] - [mmc] s3c6410: add new quirk in sdhci driver and update ADMA descriptor build (Don Zickus) [1089109] - [kernel] memcg: clear mm->owner when last possible owner leaves (Aaron Tomlin) [1272655] - [mm] thp: don't hold mmap_sem in khugepaged when allocating THP (Aaron Tomlin) [1272655] - [mm] thp: khugepaged: add policy for finding target node (Aaron Tomlin) [1272655] - [mm] thp: cleanup: mv alloc_hugepage to better place (Aaron Tomlin) [1272655] - [mm] thp: khugepaged_prealloc_page forgot to reset the page alloc indicator (Aaron Tomlin) [1272655] - [mm] thp: remove unnecessary set_recommended_min_free_kbytes (Aaron Tomlin) [1272655] - [mm] thp: use khugepaged_enabled to remove duplicate code (Aaron Tomlin) [1272655] - [mm] thp: remove khugepaged_loop (Aaron Tomlin) [1272655] - [mm] thp: introduce khugepaged_prealloc_page and khugepaged_alloc_page (Aaron Tomlin) [1272655] - [mm] thp: release page in page pre-alloc path (Aaron Tomlin) [1272655] - [mm] thp: merge page pre-alloc in khugepaged_loop into khugepaged_do_scan (Aaron Tomlin) [1272655] - [mm] thp: remove some code depend on CONFIG_NUMA (Aaron Tomlin) [1272655] - [mm] thp: remove wake_up_interruptible in the exit path (Aaron Tomlin) [1272655] - [mm] thp: remove unnecessary khugepaged_thread check (Aaron Tomlin) [1272655] - [mm] thp: move khugepaged_mutex out of khugepaged (Aaron Tomlin) [1272655] - [mm] thp: remove unnecessary check in start_khugepaged (Aaron Tomlin) [1272655] - [mm] thp: optimize memcg charge in khugepaged (Aaron Tomlin) [1272655]- [fs] dlm: Replace nodeid_to_addr with kernel_getpeername (Robert S Peterson) [1264492] - [fs] dlm: print kernel message when we get an error from kernel_sendpage (Robert S Peterson) [1264492] - [x86] fpu: Fix double-increment in setup_xstate_features (Herbert Xu) [1232495] - [x86] fpu/xstate: Don't assume the first zero xfeatures zero bit means the end (Herbert Xu) [1232495] - [scsi] ipr: Driver version 2.6.3 (Gustavo Duarte) [1252713] - [scsi] ipr: Issue Configure Cache Parameters command (Gustavo Duarte) [1252713] - [scsi] ipr: Inquiry IOA page 0xC4 during initialization (Gustavo Duarte) [1252713] - [scsi] ipr: Don't set NO_ULEN_CHK bit when resource is a vset (Gustavo Duarte) [1252713] - [scsi] ipr: Add delay to ensure coherent dumps (Gustavo Duarte) [1252713] - [scsi] ipr: Enable SIS pipe commands for SIS-32 devices (Gustavo Duarte) [1252713] - [scsi] ipr: Inhibit underlength data check for AFDASD in raw mode (Gustavo Duarte) [1252713] - [scsi] ipr: Driver version 2.6.2 (Gustavo Duarte) [1252713] - [scsi] ipr: Endian / sparse fixes (Gustavo Duarte) [1252713] - [scsi] ipr: Byte swapping for device_id attribute in sysfs (Gustavo Duarte) [1252713] - [scsi] ipr: Fix locking for unit attention handling (Gustavo Duarte) [1252713] - [scsi] ipr: Driver version 2.6.1 (Gustavo Duarte) [1252713] - [scsi] ipr: AF DASD raw mode implementation in ipr driver (Gustavo Duarte) [1252713] - [scsi] ipr: Fix possible error path oops during initialization (Gustavo Duarte) [1252713] - [scsi] ipr: Reset in task context (Gustavo Duarte) [1252713] - [scsi] ipr: Reboot speed improvements (Gustavo Duarte) [1252713] - [scsi] ipr: set scsi_level correctly for disk arrays (Gustavo Duarte) [1252713] - [scsi] ipr: add support for async scanning to speed up boot (Gustavo Duarte) [1252713] - [mm] ksm: add reschedule points to unmerge_and_remove_all_rmap_items (Andrea Arcangeli) [1262294] - [mm] ksm: introduce ksm_max_page_sharing per page deduplication limit (Andrea Arcangeli) [1262294] - [net] unix: properly account for FDs passed over unix sockets (Hannes Frederic Sowa) [1297406] - [net] unix: garbage: fixed several comment and whitespace style issues (Hannes Frederic Sowa) [1297406] - [net] net_sched: invoke ->attach() after setting dev->qdisc (Phil Sutter) [1288472] - [net] pkt_sched: move the sanity test in qdisc_list_add() (Phil Sutter) [1288472] - [net] pkt_sched: set root qdisc before change() in attach_default_qdiscs() (Phil Sutter) [1288472] - [net] pkt_sched: give visibility to mq slave qdiscs (Phil Sutter) [1288472] - [net] qdisc: fix build with !CONFIG_NET_SCHED (Phil Sutter) [1288472] - [net] qdisc: allow setting default queuing discipline (Phil Sutter) [1288472] - [kdump] Reuse KEXEC_RESERVE_UPPER_LIMIT in arch_crash_auto_scale (Baoquan He) [1007642] - [kdump] Add a KEXEC_RESERVE_UPPER_LIMIT to limit the bootmem reserving for crashkernel (Baoquan He) [1007642] - [kernel] ftrace: Allow to remove a single function from function graph filter (Jiri Olsa) [1063695] - [kernel] function-graph: Allow writing the same val to set_graph_function (Jiri Olsa) [1063695] - [kernel] tracing: Simplify test for function_graph tracing start point (Jiri Olsa) [1063695]- [fs] configfs: Fix race between configfs_readdir() and configfs_d_iput() (Robert S Peterson) [1267681] - [fs] gfs2: Add module parameter gl_hash_size to increase hash table size (Robert S Peterson) [1259879] - [fs] GFS2: Don't add all glocks to the lru (Robert S Peterson) [1228381] - [fs] gfs2: Reintroduce a timeout in function gfs2_gl_hash_clear (Robert S Peterson) [1291458] - [fs] gfs2: Add missing else in trans_add_meta/data (Robert S Peterson) [1267995] - [fs] fs-cache: Add missing initialization of ret in cachefiles_write_page (David Howells) [1277622] - [fs] fs-cache: Handle a write to the page immediately beyond the EOF marker (David Howells) [1277622] - [fs] cachefiles: perform test on s_blocksize when opening cache file (David Howells) [1277622] - [fs] fs-cache: Don't override netfs's primary_index if registering failed (David Howells) [1277622] - [fs] fs-cache: Increase reference of parent after registering, netfs success (David Howells) [1277622] - [fs] fs-cache: Retain the netfs context in the retrieval op earlier (David Howells) [1277622] - [fs] fs-cache: The operation cancellation method needs calling in more places (David Howells) [1170397 1277622] - [fs] fs-cache: Put an aborted initialised op so that it is accounted correctly (David Howells) [1277622] - [fs] fs-cache: Fix cancellation of in-progress operation (David Howells) [1277622] - [fs] fs-cache: Count the number of initialised operations (David Howells) [1277622] - [fs] fs-cache: Out of line fscache_operation_init (David Howells) [1277622] - [fs] fs-cache: Permit fscache_cancel_op() to cancel in-progress operations too (David Howells) [1277622] - [fs] fs-cache: fscache_object_is_dead() has wrong logic, kill it (David Howells) [1277622] - [fs] fs-cache: Synchronise object death state change vs operation submission (David Howells) [1096893 1277622] - [fs] fs-cache: Handle a new operation submitted against a killed object (David Howells) [1277622] - [fs] fs-cache: When submitting an op, cancel it if the target object is dying (David Howells) [1277622] - [fs] fs-cache: Move fscache_report_unexpected_submission() to make it more available (David Howells) [1277622] - [fs] fs-cache: Count culled objects and objects rejected due to lack of space (David Howells) [1277622] - [fs] fs/fscache/object-list.c: use __seq_open_private (David Howells) [1277622] - [fs] cachefiles: Fix incorrect test for in-memory object collision (David Howells) [1277622] - [fs] cachefiles: Handle object being killed before being set up (David Howells) [1149103 1277622] - [fs] cachefiles: add missing \n to kerror conversions (David Howells) [1277622] - [fs] fs-cache: refcount becomes corrupt under vma pressure (David Howells) [1277622] - [fs] fs-cache: Reduce cookie ref count if submit fails (David Howells) [1277622] - [fs] fs-cache: Timeout for releasepage (David Howells) [1277622] - [fs] cachefiles: replace kerror by pr_err (David Howells) [1277622] - [fs] cachefiles: convert printk to pr_foo() (David Howells) [1277622] - [fs] fscache: replace seq_printf by seq_puts (David Howells) [1277622] - [fs] fscache: convert printk to pr_foo (David Howells) [1277622] - [fs] get rid of pointless checks for NULL ->i_op (David Howells) [1277622] - [fs] fs-cache: Handle removal of unadded object to the fscache_object_list rb tree (David Howells) [1277622] - [fs] nfs: Use i_writecount to control whether to get an fscache cookie in nfs_open (David Howells) [1277622] - [fs] fs-cache: Provide the ability to enable/disable cookies (David Howells) [1277622] - [fs] fs-cache: Add use/unuse/wake cookie wrappers (David Howells) [1277622] - [fs] cachefiles: Don't try to dump the index key if the cookie has been cleared (David Howells) [1277622] - [fs] cachefiles: Fix memory leak in cachefiles_check_auxdata error paths (David Howells) [1277622] - [fs] fscache: check consistency does not decrement refcount (David Howells) [1277622] - [fs] fscache: Netfs function for cleanup post readpages (David Howells) [1277622] - [fs] cachefiles: Implement interface to check cache consistency (David Howells) [1277622] - [fs] fs-cache: Add interface to check consistency of a cached object (David Howells) [1277622] - [fs] fs-cache: Don't use spin_is_locked() in assertions (David Howells) [1277622] - [netdrv] be2net: Avoid accessing eq object in be_msix_register routine, when i < 0 (Ivan Vecera) [1253018] - [netdrv] be2net: remove local variable 'status' (Ivan Vecera) [1253018] - [netdrv] be2net: replace hardcoded values with existing define (Ivan Vecera) [1253018] - [netdrv] be2net: remove unused local rsstable array (Ivan Vecera) [1253018] - [netdrv] be2net: remove vlan promisc capability from VF's profile descriptors (Ivan Vecera) [1253018] - [netdrv] be2net: set pci_func_num while issuing GET_PROFILE_CONFIG cmd (Ivan Vecera) [1253018] - [netdrv] be2net: pad skb to meet minimum TX pkt size in BE3 (Ivan Vecera) [1253018] - [netdrv] be2net: release mcc-lock in a failure case in be_cmd_notify_wait (Ivan Vecera) [1253018] - [netdrv] be2net: fix BE3-R FW download compatibility check (Ivan Vecera) [1253018] - [netdrv] drivers/net: get rid of unnecessary initializations in .get_drvinfo (Ivan Vecera) [1253018] - [netdrv] be2net: Revert "make the RX_FILTER command asynchronous" commit (Ivan Vecera) [1253018] - [netdrv] be2net: protect eqo->affinity_mask from getting freed twice (Ivan Vecera) [1253018] - [netdrv] be2net: post buffers before destroying RXQs in Lancer (Ivan Vecera) [1253018] - [netdrv] be2net: enable IFACE filters only after creating RXQs (Ivan Vecera) [1253018] - [netdrv] be2net: support ndo_get_phys_port_id (Ivan Vecera) [1253018] - [netdrv] be2net: bump up the driver version to 10.6.0.3 (Ivan Vecera) [1253018] - [netdrv] be2net: make SET_LOOPBACK_MODE cmd asynchrounous (Ivan Vecera) [1253018] - [netdrv] be2net: make the RX_FILTER command asynchronous (Ivan Vecera) [1253018] - [netdrv] be2net: return error status from be_mcc_notify (Ivan Vecera) [1253018] - [netdrv] be2net: convert dest field in udp-hdr to host-endian (Ivan Vecera) [1253018] - [netdrv] be2net: fix wrong return value in be_check_ufi_compatibility (Ivan Vecera) [1253018] - [netdrv] be2net: remove redundant D0 power state set (Ivan Vecera) [1253018] - [netdrv] be2net: query FW to check if EVB is enabled (Ivan Vecera) [1253018] - [netdrv] be2net: remove duplicate code in be_setup_wol (Ivan Vecera) [1253018] - [netdrv] be2net: Replace dma/pci_alloc_coherent calls with dma_zalloc_coherent (Ivan Vecera) [1253018] - [netdrv] cpumask_set_cpu_local_first => cpumask_local_spread, lament (Ivan Vecera) [1253018] - [netdrv] be2net: Support for OS2BMC (Ivan Vecera) [1253018] - [netdrv] be2net: Report a "link down" to the stack when a fatal error or fw reset happens (Ivan Vecera) [1253018] - [netdrv] be2net: Export board temperature using hwmon-sysfs interface (Ivan Vecera) [1253018] - [netdrv] be2net: update copyright year to 2015 (Ivan Vecera) [1253018] - [netdrv] be2net: use be_virtfn instead of !be_physfn (Ivan Vecera) [1253018] - [netdrv] be2net: simplify UFI compatibility checking (Ivan Vecera) [1253018] - [netdrv] be2net: post full RXQ on interface enable (Ivan Vecera) [1253018] - [netdrv] be2net: check for INSUFFICIENT_VLANS error (Ivan Vecera) [1253018] - [netdrv] be2net: receive pkts with L3, L4 errors on VFs (Ivan Vecera) [1253018] - [netdrv] be2net: set interrupt moderation for Skyhawk-R using EQ-DB (Ivan Vecera) [1253018] - [netdrv] be2net: add support for spoofchk setting (Ivan Vecera) [1253018] - [netdrv] be2net: Fix a bug in Rx buffer posting (Ivan Vecera) [1253018] - [netdrv] be2net: bump up the driver version to 10.6.0.1 (Ivan Vecera) [1253018] - [netdrv] be2net: setup xps queue mapping (Ivan Vecera) [1253018] - [netdrv] be2net: assign CPU affinity hints to be2net IRQs (Ivan Vecera) [1253018] - [kernel] cpumask: Utility function to set n'th cpu - local cpu first (Ivan Vecera) [1253018] - [netdrv] be2net: restrict MODIFY_EQ_DELAY cmd to a max of 8 EQs (Ivan Vecera) [1253018] - [netdrv] be2net: Prevent VFs from enabling VLAN promiscuous mode (Ivan Vecera) [1253018] - [netdrv] ethernet: codespell comment spelling fixes (Ivan Vecera) [1253018] - [netdrv] be2net: implement .sriov_configure PCI callback (Ivan Vecera) [1253018] - [netdrv] be2net: re-distribute SRIOV resources allowed by FW (Ivan Vecera) [1253018] - [netdrv] be2net: avoid creating the non-RSS default RXQ if FW allows to (Ivan Vecera) [1253018] - [netdrv] be2net: move be_func_init call inside be_setup (Ivan Vecera) [1253018] - [netdrv] be2net: refactor adapter resource cleanup sequence into be_cleanup (Ivan Vecera) [1253018] - [netdrv] be2net: refactor adapter resource initialzation sequence into be_resume (Ivan Vecera) [1253018] - [netdrv] be2net: remove code duplication relating to Lancer reset sequence (Ivan Vecera) [1253018] - [netdrv] be2net: refactor error detect/recovery function (Ivan Vecera) [1253018] - [netdrv] be2net: use a wrapper to schedule and cancel error detection task (Ivan Vecera) [1253018] - [netdrv] be2net: refactor function initalization sequence into be_func_init (Ivan Vecera) [1253018] - [netdrv] be2net: get rid of be_get_initial_config call from be_probe (Ivan Vecera) [1253018] - [netdrv] be2net: move adapter fields alloc/free code to new routines (Ivan Vecera) [1253018] - [netdrv] be2net: fix wrong handling of be_setup failure in be_probe (Ivan Vecera) [1253018] - [netdrv] be2net: Add a few inline functions to test TXQ conditions (Ivan Vecera) [1253018] - [netdrv] be2net: Minor code cleanup in tx completion process (Ivan Vecera) [1253018] - [netdrv] be2net: Refactor be_xmit_enqueue routine (Ivan Vecera) [1253018] - [netdrv] be2net: Refactor wrb_fill_hdr routine (Ivan Vecera) [1253018] - [netdrv] be2net: support TX batching using skb->xmit_more flag (Ivan Vecera) [1253018] - [md] flush ->event_work before stopping array (Jes Sorensen) [1220555] - [net] flow_dissector: remove unused function flow_get_hlen declaration (Ivan Vecera) [1298479] - [net] flow_keys: n_proto type should be __be16 (Ivan Vecera) [1298479] - [netdrv] 3c59x: fix another page map/single unmap imbalance (Neil Horman) [1291401] - [netdrv] 3c59x: balance page maps and unmaps (Neil Horman) [1291401] - [netdrv] 3c59x: Fix bad offset spec in skb_frag_dma_map (Neil Horman) [1291401] - [netdrv] 3c59x: Add dma error checking and recovery (Neil Horman) [1291401] - [mfd] lpc_ich: Intel device IDs for PCH (Steve Best) [1244017] - [i2c] i801: add Intel Lewisburg device IDs (Steve Best) [1244017] - [sound] alsa: hda - Add Intel Lewisburg device IDs Audio (Steve Best) [1244017] - [sched] core: Rework rq->clock update skips (Aaron Tomlin) [1263613] - [sched] Remove useless code in yield_to() (Aaron Tomlin) [1263613] - [sched] Set skip_clock_update in yield_task_fair() (Aaron Tomlin) [1263613] - [sched] rt: Update rq clock when unthrottling of an otherwise idle CPU (Aaron Tomlin) [1263613] - [pci] PCIe / hotplug: Drop pointless ACPI-based "slot detection" check (Jarod Wilson) [1211804] - [netdrv] remove NETIF_F_NO_CSUM feature bit (Michal Schmidt) [1291941] - [mm] memcg: oom_notify use-after-free fix (Rafael Aquini) [1294400] - [mm] make lru_add_drain_all() selective (Jerome Marchand) [1266146] - [char] random: Fix "Missing strategy" warnings in debug kernel (Prarit Bhargava) [1296944] - [netdrv] bna: fix error handling (Ivan Vecera) [1258535] - [netdrv] bna: check for dma mapping errors (Ivan Vecera) [1258535] - [netdrv] bna: remove superfluous parentheses (Ivan Vecera) [1258535] - [netdrv] bna: make pointers to read-only inputs const (Ivan Vecera) [1258535] - [netdrv] bna: remove unnecessary cast of BIT value (Ivan Vecera) [1258535] - [netdrv] bna: use netdev_* and dev_* instead of printk and pr_* (Ivan Vecera) [1258535] - [netdrv] bna: fix timeout API argument type (Ivan Vecera) [1258535] - [netdrv] bna: use list_for_each_entry where appropriate (Ivan Vecera) [1258535] - [netdrv] bna: get rid of private macros for manipulation with lists (Ivan Vecera) [1258535] - [netdrv] bna: use memdup_user to copy userspace buffers (Ivan Vecera) [1258535] - [netdrv] bna: correct comparisons/assignments to bool (Ivan Vecera) [1258535] - [netdrv] bna: remove TX_E_PRIO_CHANGE event and BNA_TX_F_PRIO_CHANGED flag (Ivan Vecera) [1258535] - [netdrv] bna: remove paused from bna_rx_config and flags from bna_rxf (Ivan Vecera) [1258535] - [netdrv] bna: remove RXF_E_PAUSE and RXF_E_RESUME events (Ivan Vecera) [1258535] - [netdrv] bna: remove prio_change_cbfn oper_state_cbfn from struct bna_tx (Ivan Vecera) [1258535] - [netdrv] bna: remove oper_state_cbfn from struct bna_rxf (Ivan Vecera) [1258535] - [netdrv] bna: remove pause_cbfn from struct bna_enet (Ivan Vecera) [1258535] - [netdrv] bna: remove unused cbfn parameter (Ivan Vecera) [1258535] - [netdrv] bna: use BIT(x) instead of (1 << x) (Ivan Vecera) [1258535] - [netdrv] bna: get rid of duplicate and unused macros (Ivan Vecera) [1258535] - [netdrv] bna: replace pragma(pack) with attribute __packed (Ivan Vecera) [1258535] - [netdrv] bna: get rid of mac_t (Ivan Vecera) [1258535] - [netdrv] bna: use ether_addr_copy instead of memcpy (Ivan Vecera) [1258535] - [netdrv] bna: remove obsolete use of EXTRA_CFLAGS (Ivan Vecera) [1258535] - [netdrv] bna: fix soft lock-up during firmware initialization failure (Ivan Vecera) [1258535] - [netdrv] bna: remove unreasonable iocpf timer start (Ivan Vecera) [1258535] - [netdrv] bna: fix firmware loading on big-endian machines (Ivan Vecera) [1258535] - [netdrv] ethernet: codespell comment spelling fixes (Ivan Vecera) [1258535] - [netdrv] bna: Update the Driver and Firmware Version (Ivan Vecera) [1258535] - [netdrv] bna: QLogic BR-series Adapters Driver Rebranding (Ivan Vecera) [1258535] - [netdrv] net: incorrect use of init_completion fixup (Ivan Vecera) [1258535] - [netdrv] bna: use netdev_rss_key_fill() helper (Ivan Vecera) [1258535] - [netdrv] bna: fix skb->truesize underestimation (Ivan Vecera) [1258535] - [netdrv] bna: use container_of to resolve bufdesc_ex from bufdesc (Ivan Vecera) [1258535] - [netdrv] bna: remove unnecessary break after return (Ivan Vecera) [1258535] - [netdrv] net: use SPEED_UNKNOWN and DUPLEX_UNKNOWN when appropriate (Ivan Vecera) [1258535] - [netdrv] net: get rid of SET_ETHTOOL_OPS (Ivan Vecera) [1258535] - [netdrv] bna: remove open-coded skb_cow_head (Ivan Vecera) [1258535] - [netdrv] bnad: Call dev_kfree_skb_any instead of dev_kfree_skb (Ivan Vecera) [1258535] - [netdrv] bna: Replace large udelay() with mdelay() (Ivan Vecera) [1258535] - [netdrv] brocade: Convert uses of __constant_ to (Ivan Vecera) [1258535] - [netdrv] bna: Use pci_enable_msix_range() instead of pci_enable_msix() (Ivan Vecera) [1258535] - [netdrv] bnad: code cleanup (Ivan Vecera) [1258535] - [netdrv] bna: Fix build due to missing use of dma_unmap_len_set() (Ivan Vecera) [1258535] - [netdrv] bna: make pointers to read-only inputs const (Ivan Vecera) [1258535] - [netdrv] bnad: do vlan cleanup (Ivan Vecera) [1258535]- [netdrv] i40e: trivial fixes (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump version to 1.4.7 for i40e and 1.4.3 for i40evf (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: use logical operator (Stefan Assmann) [1249247] - [netdrv] i40evf: use correct types (Stefan Assmann) [1249247] - [netdrv] i40evf: don't use atomic allocation (Stefan Assmann) [1249247] - [netdrv] i40e: Fix memory leaks, sideband filter programming (Stefan Assmann) [1249247] - [netdrv] i40e: Detection and recovery of TX queue hung logic moved to service_task from tx_timeout (Stefan Assmann) [1249247] - [netdrv] i40evf: remove duplicate string (Stefan Assmann) [1249247] - [netdrv] i40evf: set real num queues (Stefan Assmann) [1249247] - [netdrv] i40evf: increase max number of queues (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump i40e version to 1.4.4 and i40evf to 1.4.1 (Stefan Assmann) [1249247] - [netdrv] i40evf: allocate ring structs dynamically (Stefan Assmann) [1249247] - [netdrv] i40evf: allocate queue vectors dynamically (Stefan Assmann) [1249247] - [netdrv] i40evf: quoth the VF driver, Nevermore (Stefan Assmann) [1249247] - [netdrv] i40evf: add new fields to store user configuration of RSS (Stefan Assmann) [1249247] - [netdrv] i40evf: create a generic get RSS function (Stefan Assmann) [1249247] - [netdrv] i40evf: create a generic config RSS function (Stefan Assmann) [1249247] - [netdrv] i40evf: rename VF adapter specific RSS function (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: prefetch skb data on transmit (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Fix RS bit update in Tx path and disable force WB workaround (Stefan Assmann) [1249247] - [netdrv] i40evf: handle many MAC filters correctly (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: clean up error messages (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add comment to #endif (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add a stat to track how many times we have to do a force WB (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: remove unused tunnel parameter (Stefan Assmann) [1249247] - [netdrv] i40evf: fix compiler warning of unused variable (Stefan Assmann) [1249247] - [netdrv] i40evf: clean up local variable initialization (Stefan Assmann) [1249247] - [netdrv] i40evf: add missing kernel-doc argument (Stefan Assmann) [1249247] - [netdrv] i40e: re-use *ph specifier to hexdump a data (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump i40e to 1.3.46 and i40evf to 1.3.33 (Stefan Assmann) [1249247] - [netdrv] i40evf: use correct struct for list manipulation (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add a workaround to drop all flow control frames (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump i40e to 1.3.38 and i40evf to 1.3.25 (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Fix an accidental error with BIT_ULL replacement (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: adjust interrupt throttle less frequently (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: change dynamic interrupt thresholds (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: fix bug in throttle rate math (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: refactor IRQ enable function (Stefan Assmann) [1249247] - [netdrv] i40evf: don't give up (Stefan Assmann) [1249247] - [netdrv] i40evf: fix overlong BIT defines (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump i40e to 1.3.34 and i40evf to 1.3.21 (Stefan Assmann) [1249247] - [netdrv] i40evf: relax and stagger init timing a bit (Stefan Assmann) [1249247] - [netdrv] i40evf: correctly populate vlan_features (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: moderate interrupts differently (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Fix compile issue related to const string (Stefan Assmann) [1249247] - [netdrv] drivers/net/intel: use napi_complete_done() (Stefan Assmann) [1249247] - [netdrv] i40evf: Add support for netpoll (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Drop useless "IN_NETPOLL" flag (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Fix handling of napi budget (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump i40e version to 1.3.28 and i40evf to 1.3.19 (Stefan Assmann) [1249247] - [netdrv] i40evf: speed up init (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: remove redundant declarations of a variable and a function (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add WB_ON_ITR offload support (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump i40e version to 1.3.25 and i40evf to 1.3.17 (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Refactor PHY structure and add phy_capabilities enum (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add module_types and update_link_info (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: split device ids into a separate file (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add info to nvm info struct for OEM version data (Stefan Assmann) [1249247] - [netdrv] i40evf: properly handle ndo_set_mac_address calls (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add new link status defines (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: pass QOS handle to VF (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: clean up some code (Stefan Assmann) [1249247] - [netdrv] i40evf: detect reset more reliably (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Explicitly assign enum index for VSI type (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Store CEE DCBX DesiredCfg and RemoteCfg (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: remove unused opcode (Stefan Assmann) [1249247] - [netdrv] i40evf: propagate interrupt allocation failure (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add a stat to keep track of linearization count (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: give up the __func__ (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: assure clean asq status report (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: fix a potential type compare issue (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: add driver support for new device ids (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: set AQ count after memory allocation (Stefan Assmann) [1249247] - [netdrv] i40evf: don't blow away MAC address (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: grab the AQ spinlocks before clearing registers (Stefan Assmann) [1249247] - [netdrv] i40evf: tweak init timing (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: add new device id 1588 (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: fix Tx hang workaround code (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: fix up type clash in i40e_aq_rc_to_posix conversion (Stefan Assmann) [1249247] - [netdrv] i40evf: missing rtnl_unlock in i40evf_resume() (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: check for stopped admin queue (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: refactor tx timeout logic (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump i40e to 1.3.21 and i40evf to 1.3.13 (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: add get AQ result command to nvmupdate utility (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: add exec_aq command to nvmupdate utility (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: add wait states to NVM state machine (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: add GetStatus command for nvmupdate (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: add handling of writeback descriptor (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: save aq writeback for future inspection (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump i40e to 1.3.9 and i40evf to 1.3.5 (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Cache the CEE TLV status returned from firmware (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: add VIRTCHNL_VF_OFFLOAD flag (Stefan Assmann) [1249247] - [netdrv] i40evf: Remove PF specific register definitions from the VF (Stefan Assmann) [1249247] - [netdrv] i40evf: Use the correct defines to match the VF registers (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add capability to gather VEB per TC stats (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add TX/RX outer UDP checksum support for X722 (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add support for writeback on ITR feature for X722 (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: RSS changes for X722 (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Update register.h file for X722 (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Update FW API with X722 support (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add flags for X722 capabilities (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add device ids for X722 (Stefan Assmann) [1249247] - [netdrv] i40e: use BIT and BIT_ULL macros (Stefan Assmann) [1249247] - [netdrv] i40e: clean up error status messages (Stefan Assmann) [1249247] - [netdrv] i40evf: support virtual channel API version 1.1 (Stefan Assmann) [1249247] - [netdrv] i40evf: handle big resets (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: add macros for virtual channel API version and device capability (Stefan Assmann) [1249247] - [netdrv] i40e: add VF capabilities to virtual channel interface (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Fix and refactor dynamic ITR code (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump version to 1.3.6 for i40e and 1.3.2 for i40evf (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add support for pre-allocated pages for PD (Stefan Assmann) [1249247] - [netdrv] i40evf: add MAC address filter in open, not init (Stefan Assmann) [1249247] - [netdrv] i40evf: don't delete all the filters (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Update the admin queue command header (Stefan Assmann) [1249247] - [netdrv] i40evf: Allow for an abundance of vectors (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Update Flex-10 related device/function capabilities (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add stats to track FD ATR and SB dynamic enable state (Stefan Assmann) [1249247] - [netdrv] i40evf: don't configure unused RSS queues (Stefan Assmann) [1249247] - [netdrv] i40evf: fix panic during MTU change (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Fix mixed size frags and linearization (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: remove time_stamp member (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: force inline transmit functions (Stefan Assmann) [1249247] - [netdrv] i40evf: skb->xmit_more support (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Remove unneeded TODO (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add stats to count Tunnel ATR hits (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add ATR support for tunneled TCP/IPv4/IPv6 packets (Stefan Assmann) [1249247] - [netdrv] net: batch of last_rx update avoidance in ethernet drivers (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Save WR_CSR_PROT field from DEV/FUNC capabilities (Stefan Assmann) [1249247] - [netdrv] i40evf: remove aq_pending (Stefan Assmann) [1249247] - [netdrv] i40evf: fix bad indentation (Stefan Assmann) [1249247] - [netdrv] i40evf: Refactor VF RSS code (Stefan Assmann) [1249247] - [netdrv] i40evf: protect VLAN filter list (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Set Ethernet protocol correctly when Tx VLAN offloads are disabled (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: fix bug when skb allocation fails (Stefan Assmann) [1249247] - [netdrv] i40evf: Fix Outer UDP RX checksum code (Stefan Assmann) [1249247] - [netdrv] i40evf: add FW version to ethtool info (Stefan Assmann) [1249247] - [netdrv] i40evf: resequence close operations (Stefan Assmann) [1249247] - [netdrv] i40evf: delay releasing rings (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump i40e/i40evf version (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: fix accidental write to ITR registers (Stefan Assmann) [1249247] - [netdrv] i40vf: don't stop me now (Stefan Assmann) [1249247] - [netdrv] ethernet: codespell comment spelling fixes (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump version (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: enable prefetch of Tx descriptors during cleanup (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Simplify tunnel selection logic (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Refactor i40e_debug_aq and make some functions static (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Version bump (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Clean up some formatting and other things (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: grab NVM devstarter version not image version (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Bump versions (Stefan Assmann) [1249247] - [netdrv] i40evf: ethtool RSS fixes (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: Add missing packet types for VXLAN encapsulated packet types (Stefan Assmann) [1249247] - [netdrv] i40e/i40evf: print FW build number in version string (Stefan Assmann) [1249247] - [x86] hyperv: restore irq accounting (Vitaly Kuznetsov) [1282387] - [x86] irq: Hide 'HYP:' line in /proc/interrupts when not on Xen/Hyper-V (Vitaly Kuznetsov) [1282387] - [xen] Add proper irq accounting for HYPERCALL vector (Vitaly Kuznetsov) [1282387] - [x86] irq: Properly tag virtualization entry in /proc/interrupts (Vitaly Kuznetsov) [1282387] - [x86] Add proper vector accounting for HYPERVISOR_CALLBACK_VECTOR (Vitaly Kuznetsov) [1282387] - [tpm] revert the list handling logic fixed in 398a1e7 (Jerry Snitselaar) [1254015 1293409] - [tpm] Avoid reference to potentially freed memory (Jerry Snitselaar) [1254015 1293409] - [tpm] tpm_tis: restore IRQ vector in IO memory after failed probing (Jerry Snitselaar) [1254015 1293409] - [tpm] tpm_tis: free irq after probing (Jerry Snitselaar) [1254015 1293409] - [tpm] remove unnecessary little endian conversion (Jerry Snitselaar) [1254015 1293409] - [tpm] tpm_crb: fix unaligned read of the command buffer address (Jerry Snitselaar) [1254015 1293409] - [tpm] tpm_crb: fail when TPM2 ACPI table contents look corrupted (Jerry Snitselaar) [1254015 1293409] - [tpm] Fix initialization of the cdev (Jerry Snitselaar) [1254015 1293409] - [tpm] tpm, tpm_crb: fix le64_to_cpu conversions in crb_acpi_add (Jerry Snitselaar) [1254015 1293409] - [tpm] fix: sanitized code paths in tpm_chip_register (Jerry Snitselaar) [1254015 1293409] - [sched] kernel: sched: Fix nohz load accounting -- again (Rafael Aquini) [1167755] - [sched] kernel: sched: Move sched_avg_update to update_cpu_load (Rafael Aquini) [1167755] - [sched] kernel: sched: Cure more NO_HZ load average woes (Rafael Aquini) [1167755] - [sched] kernel: sched: Cure load average vs NO_HZ woes (Rafael Aquini) [1167755] - [netdrv] bnxt_en: Zero pad firmware messages to 128 bytes (John Linville) [1253659] - [netdrv] bnxt_en: Add BCM57301 & BCM57402 devices (John Linville) [1253659] - [netdrv] bnxt_en: Update to Firmware interface spec 1.0.0 (John Linville) [1253659] - [fs] lockd: Register callbacks on the inetaddr_chain and inet6addr_chain (Scott Mayhew) [1262362] - [fs] nfsd: Register callbacks on the inetaddr_chain and inet6addr_chain (Scott Mayhew) [1262362] - [fs] sunrpc: Add a function to close temporary transports immediately (Scott Mayhew) [1262362] - [fs] dlm: sctp_accept_from_sock() can be static (Xin Long) [1217712] - [fs] dlm: fix reconnecting but not sending data (Xin Long) [1217712] - [fs] dlm: replace BUG_ON with a less severe handling (Xin Long) [1217712] - [fs] dlm: use sctp 1-to-1 API (Xin Long) [1217712] - [fs] dlm: fix not reconnecting on connecting error handling (Xin Long) [1217712] - [fs] dlm: fix race while closing connections (Xin Long) [1217712] - [fs] avoid the dependency of DLM module on SCTP by using 1-to-1 API (0/7) (Xin Long) [1217712] - [fs] dlm: disable nagle for SCTP (Xin Long) [1217712] - [fs] dlm: retry failed SCTP sends (Xin Long) [1217712] - [fs] dlm: try other IPs when sctp init assoc fails (Xin Long) [1217712] - [fs] dlm: prevent connections during shutdown (Xin Long) [1217712] - [fs] sync: Use a separate wq for do_sync_work() to avoid a potential deadlock (Aaron Tomlin) [1147510] - [fs] SUNRPC: Fix callback channel (Benjamin Coddington) [1232402] - [fs] quota: Make quota code not call tty layer with dqptr_sem held (Lukas Czerner) [1232387] - [fs] __generic_file_splice_read retry lookup on AOP_TRUNCATED_PAGE (Abhijith Das) [1206720]- [netdrv] i40e: Fix i40e_print_features() VEB mode output (Stefan Assmann) [1249246] - [netdrv] i40e: trivial fixes (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump version to 1.4.7 for i40e and 1.4.3 for i40evf (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: use logical operator (Stefan Assmann) [1249246] - [netdrv] i40e: fix whitespace (Stefan Assmann) [1249246] - [netdrv] i40e: Remove separate functions gathering XOFF Rx stats (Stefan Assmann) [1249246] - [netdrv] i40e: use priv flags to control packet split (Stefan Assmann) [1249246] - [netdrv] i40e: propagate properly (Stefan Assmann) [1249246] - [netdrv] i40e: Fix memory leaks, sideband filter programming (Stefan Assmann) [1249246] - [netdrv] i40e: Detection and recovery of TX queue hung logic moved to service_task from tx_timeout (Stefan Assmann) [1249246] - [netdrv] i40e: remove unused argument (Stefan Assmann) [1249246] - [netdrv] i40e: fix: do not sleep in netdev_ops (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump i40e version to 1.4.4 and i40evf to 1.4.1 (Stefan Assmann) [1249246] - [netdrv] i40e: make error message more useful (Stefan Assmann) [1249246] - [netdrv] i40e: fix confusing message (Stefan Assmann) [1249246] - [netdrv] i40e: Update error messaging (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: prefetch skb data on transmit (Stefan Assmann) [1249246] - [netdrv] i40e: rename rss_size to alloc_rss_size in i40e_pf (Stefan Assmann) [1249246] - [netdrv] i40e: add new fields to store user configuration (Stefan Assmann) [1249246] - [netdrv] i40e: Bump version to 1.4.2 (Stefan Assmann) [1249246] - [netdrv] i40e: create a generic configure rss function (Stefan Assmann) [1249246] - [netdrv] i40e: rework the functions to configure RSS with similar parameters (Stefan Assmann) [1249246] - [netdrv] i40e: return the number of enabled queues for ETHTOOL_GRXRINGS (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: clean up error messages (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add comment to #endif (Stefan Assmann) [1249246] - [netdrv] i40e: Move the saving of old link info from handle_link_event to link_event (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add a stat to track how many times we have to do a force WB (Stefan Assmann) [1249246] - [netdrv] i40e: Workaround fix for mss < 256 issue (Stefan Assmann) [1249246] - [netdrv] i40e: remove BUG_ON from FCoE setup (Stefan Assmann) [1249246] - [netdrv] i40e: remove BUG_ON from feature string building (Stefan Assmann) [1249246] - [netdrv] i40e: Change BUG_ON to WARN_ON in service event complete (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: remove unused tunnel parameter (Stefan Assmann) [1249246] - [netdrv] intel: i40e: fix confused code (Stefan Assmann) [1249246] - [netdrv] i40e: fix unconditional execution of cpu_to_le16() (Stefan Assmann) [1249246] - [netdrv] i40e: clean up local variable initialization (Stefan Assmann) [1249246] - [netdrv] i40e: add missing kernel-doc argument (Stefan Assmann) [1249246] - [netdrv] i40e: re-use *ph specifier to hexdump a data (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump i40e to 1.3.46 and i40evf to 1.3.33 (Stefan Assmann) [1249246] - [netdrv] i40e: Disable VEB bridge mode with SR-IOV failure (Stefan Assmann) [1249246] - [netdrv] i40e: Fix an incorrect OEM version string (Stefan Assmann) [1249246] - [netdrv] i40e: fix inconsistent statuses after a PF reset (Stefan Assmann) [1249246] - [netdrv] i40e: Fix VEB/VEPA bridge mode mismatch issue (Stefan Assmann) [1249246] - [netdrv] i40e: fix a bug in debugfs with add/del macaddr (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add a workaround to drop all flow control frames (Stefan Assmann) [1249246] - [netdrv] i40e: fix annoying message (Stefan Assmann) [1249246] - [netdrv] i40e: fix stats offsets (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump i40e to 1.3.38 and i40evf to 1.3.25 (Stefan Assmann) [1249246] - [netdrv] i40e: declare rather than initialize int object (Stefan Assmann) [1249246] - [netdrv] i40e: Move error message to debug level (Stefan Assmann) [1249246] - [netdrv] i40e: Fix order of checks when enabling/disabling autoneg in ethtool (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Fix an accidental error with BIT_ULL replacement (Stefan Assmann) [1249246] - [netdrv] i40e: fix for PHY NVM interaction problem (Stefan Assmann) [1249246] - [netdrv] i40e: Fix for Tools loopback test failing after driver load (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: adjust interrupt throttle less frequently (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: change dynamic interrupt thresholds (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: fix bug in throttle rate math (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: refactor IRQ enable function (Stefan Assmann) [1249246] - [netdrv] i40e: Fix basic support for X722 devices (Stefan Assmann) [1249246] - [netdrv] i40e: Lock for VSI's MAC filter list (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump i40e to 1.3.34 and i40evf to 1.3.21 (Stefan Assmann) [1249246] - [netdrv] i40e: increase AQ work limit (Stefan Assmann) [1249246] - [netdrv] i40e: Recognize 1000Base_T_Optical phy type when link is up (Stefan Assmann) [1249246] - [netdrv] i40e: reset the invalid msg counter in vf when a valid msg is received (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: moderate interrupts differently (Stefan Assmann) [1249246] - [netdrv] i40e: Add support for non-willing Apps (Stefan Assmann) [1249246] - [netdrv] i40e: priv flag for controlling VEB stats (Stefan Assmann) [1249246] - [netdrv] i40e: Removed unused defines (Stefan Assmann) [1249246] - [netdrv] i40e: remove read/write failed messages from nvmupdate (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Fix compile issue related to const string (Stefan Assmann) [1249246] - [netdrv] i40e: generate fewer startup messages (Stefan Assmann) [1249246] - [netdrv] drivers/net/intel: use napi_complete_done() (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Drop useless "IN_NETPOLL" flag (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Fix handling of napi budget (Stefan Assmann) [1249246] - [netdrv] drivers/net: get rid of unnecessary initializations in .get_drvinfo() (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump i40e version to 1.3.28 and i40evf to 1.3.19 (Stefan Assmann) [1249246] - [netdrv] i40e: remove unnecessary string copy operations (Stefan Assmann) [1249246] - [netdrv] i40e: X722 is on the IOSF bus and does not report the PCI bus info (Stefan Assmann) [1249246] - [netdrv] i40e: Store off PHY capabilities (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: remove redundant declarations of a variable and a function (Stefan Assmann) [1249246] - [netdrv] i40e: remove FD atr control from debugfs (Stefan Assmann) [1249246] - [netdrv] i40e: allow FD SB if MFP mode only has 1 partition (Stefan Assmann) [1249246] - [netdrv] i40e: remove obsolete version check (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add WB_ON_ITR offload support (Stefan Assmann) [1249246] - [netdrv] i40e: Remove 100M SGMII unless hw is X722 (Stefan Assmann) [1249246] - [netdrv] i40e: Change some messages from info to debug only (Stefan Assmann) [1249246] - [netdrv] i40e: use priv flags to control flow director (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump i40e version to 1.3.25 and i40evf to 1.3.17 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Refactor PHY structure and add phy_capabilities enum (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add module_types and update_link_info (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: split device ids into a separate file (Stefan Assmann) [1249246] - [netdrv] i40e: update fw version text string per previous product formats (Stefan Assmann) [1249246] - [netdrv] i40e: don't panic on VSI allocation failure (Stefan Assmann) [1249246] - [netdrv] i40e: remove redundant call (Stefan Assmann) [1249246] - [netdrv] i40e: Convert CEE App TLV selector to IEEE selector (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add info to nvm info struct for OEM version data (Stefan Assmann) [1249246] - [netdrv] i40e: Use BIT() macro for priority map parsing (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add new link status defines (Stefan Assmann) [1249246] - [netdrv] i40e: print neato new features (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: pass QOS handle to VF (Stefan Assmann) [1249246] - [netdrv] i40e: refactor code to remove indent (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: clean up some code (Stefan Assmann) [1249246] - [netdrv] i40e: Support FW CEE DCB UP to TC map nibble swap (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Explicitly assign enum index for VSI type (Stefan Assmann) [1249246] - [netdrv] i40e: add switch for link polling (Stefan Assmann) [1249246] - [netdrv] i40e: Fix multiple link up messages (Stefan Assmann) [1249246] - [netdrv] i40e: Fix for extra Flow Director filter in table after error (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Store CEE DCBX DesiredCfg and RemoteCfg (Stefan Assmann) [1249246] - [netdrv] i40e: Add parsing for CEE DCBX TLVs (Stefan Assmann) [1249246] - [netdrv] i40e: add more verbose error messages (Stefan Assmann) [1249246] - [netdrv] i40e: inline interrupt enable (Stefan Assmann) [1249246] - [netdrv] i40e: fix erroneous WARN_ON (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: remove unused opcode (Stefan Assmann) [1249246] - [netdrv] i40e: Additional checks for CEE APP priority validity (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add a stat to keep track of linearization count (Stefan Assmann) [1249246] - [netdrv] i40e: fix bug in return from get_link_status and avoid spurious link messages (Stefan Assmann) [1249246] - [netdrv] i40e: add little endian conversion for checksum (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: give up the __func__ (Stefan Assmann) [1249246] - [netdrv] i40e: Never let speed get set to 0 in get_settings (Stefan Assmann) [1249246] - [netdrv] i40e: Fix for truncated interrupt name (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: assure clean asq status report (Stefan Assmann) [1249246] - [netdrv] i40e: make i40e_init_pf_fcoe to void (Stefan Assmann) [1249246] - [netdrv] i40e: fix bad CEE status shift value (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: fix a potential type compare issue (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: add driver support for new device ids (Stefan Assmann) [1249246] - [netdrv] i40e: stop VF rings (Stefan Assmann) [1249246] - [netdrv] i40e: enable WoL operation if config bit show WoL capable (Stefan Assmann) [1249246] - [netdrv] i40e: Increase the amount of time we wait for reset to be done (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: set AQ count after memory allocation (Stefan Assmann) [1249246] - [netdrv] i40e: fix offload of GRE tunnels (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: grab the AQ spinlocks before clearing registers (Stefan Assmann) [1249246] - [netdrv] i40e: Fix a memory leak in X722 rss config path (Stefan Assmann) [1249246] - [netdrv] i40e: fix 32 bit build warnings (Stefan Assmann) [1249246] - [netdrv] i40e: fix kbuild warnings (Stefan Assmann) [1249246] - [netdrv] i40e: warn on double free (Stefan Assmann) [1249246] - [netdrv] i40e: refactor interrupt enable (Stefan Assmann) [1249246] - [netdrv] i40e: Strip VEB stats if they are disabled in HW (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: add new device id 1588 (Stefan Assmann) [1249246] - [netdrv] i40e: Remove useless message (Stefan Assmann) [1249246] - [netdrv] i40e: limit debugfs io ops (Stefan Assmann) [1249246] - [netdrv] i40e: use QOS field consistently (Stefan Assmann) [1249246] - [netdrv] i40e: count drops in netstat interface (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: fix Tx hang workaround code (Stefan Assmann) [1249246] - [netdrv] i40e: fixup padding issue in get_cee_dcb_cfg_v1_resp (Stefan Assmann) [1249246] - [netdrv] i40e: Fix a port VLAN configuration bug (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: fix up type clash in i40e_aq_rc_to_posix conversion (Stefan Assmann) [1249246] - [netdrv] i40e: rtnl_lock called twice in i40e_pci_error_resume() (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: check for stopped admin queue (Stefan Assmann) [1249246] - [netdrv] i40e: fix VLAN inside VXLAN (Stefan Assmann) [1249246] - [netdrv] i40e: Fix for recursive RTNL lock during PROMISC change (Stefan Assmann) [1249246] - [netdrv] i40e: Fix RS bit update in Tx path and disable force WB workaround (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: improve Tx performance with a small tweak (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: refactor tx timeout logic (Stefan Assmann) [1249246] - [netdrv] i40e: Move i40e_get_head into header file (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump i40e to 1.3.21 and i40evf to 1.3.13 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: add get AQ result command to nvmupdate utility (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: add exec_aq command to nvmupdate utility (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: add wait states to NVM state machine (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: add GetStatus command for nvmupdate (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: add handling of writeback descriptor (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: save aq writeback for future inspection (Stefan Assmann) [1249246] - [netdrv] i40e: rename variable to prevent clash of understanding (Stefan Assmann) [1249246] - [netdrv] i40e: Set defport behavior for the Main VSI when in promiscuous mode (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump i40e to 1.3.9 and i40evf to 1.3.5 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Cache the CEE TLV status returned from firmware (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: add VIRTCHNL_VF_OFFLOAD flag (Stefan Assmann) [1249246] - [netdrv] i40e: Remove redundant and unneeded messages (Stefan Assmann) [1249246] - [netdrv] i40e: correct spelling error (Stefan Assmann) [1249246] - [netdrv] i40e: Fix comment for ethtool diagnostic link test (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add capability to gather VEB per TC stats (Stefan Assmann) [1249246] - [netdrv] i40e: Fix ethtool offline diagnostic with netqueues (Stefan Assmann) [1249246] - [netdrv] i40e: Fix legacy interrupt mode in the driver (Stefan Assmann) [1249246] - [netdrv] i40e: Move function calls to i40e_shutdown instead of i40e_suspend (Stefan Assmann) [1249246] - [netdrv] i40e: add RX to port CRC errors label (Stefan Assmann) [1249246] - [netdrv] i40e: don't degrade __le16 (Stefan Assmann) [1249246] - [netdrv] i40e: Add AQ commands for NVM Update for X722 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add ATR HW eviction support for X722 (Stefan Assmann) [1249246] - [netdrv] i40e: Add IWARP support for X722 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add TX/RX outer UDP checksum support for X722 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add support for writeback on ITR feature for X722 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: RSS changes for X722 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Update register.h file for X722 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Update FW API with X722 support (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add flags for X722 capabilities (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add device ids for X722 (Stefan Assmann) [1249246] - [netdrv] i40e: use BIT and BIT_ULL macros (Stefan Assmann) [1249246] - [netdrv] i40e: clean up error status messages (Stefan Assmann) [1249246] - [netdrv] i40e: provide correct API version to older VF drivers (Stefan Assmann) [1249246] - [netdrv] i40e: support virtual channel API 1.1 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: add macros for virtual channel API version and device capability (Stefan Assmann) [1249246] - [netdrv] i40e: add VF capabilities to virtual channel interface (Stefan Assmann) [1249246] - [netdrv] i40e: clean up unneeded gotos (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Fix and refactor dynamic ITR code (Stefan Assmann) [1249246] - [netdrv] i40e: only report generic filters in get_ts_info (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump version to 1.3.6 for i40e and 1.3.2 for i40evf (Stefan Assmann) [1249246] - [netdrv] i40e: Refine an error message to avoid confusion (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add support for pre-allocated pages for PD (Stefan Assmann) [1249246] - [netdrv] i40e: un-disable VF after reset (Stefan Assmann) [1249246] - [netdrv] i40e: do a proper reset when disabling a VF (Stefan Assmann) [1249246] - [netdrv] i40e: correctly program filters for VFs (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Update the admin queue command header (Stefan Assmann) [1249246] - [netdrv] i40e: ignore duplicate port VLAN requests (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Update Flex-10 related device/function capabilities (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add stats to track FD ATR and SB dynamic enable state (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Fix mixed size frags and linearization (Stefan Assmann) [1249246] - [netdrv] i40e: Bump version to 1.3.4 (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: remove time_stamp member (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: force inline transmit functions (Stefan Assmann) [1249246] - [netdrv] i40e: Move the FD ATR/SB messages to a higher debug level (Stefan Assmann) [1249246] - [netdrv] i40e: fix unrecognized FCOE EOF case (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Remove unneeded TODO (Stefan Assmann) [1249246] - [netdrv] i40e: Remove unnecessary pf members (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add stats to count Tunnel ATR hits (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add ATR support for tunneled TCP/IPv4/IPv6 packets (Stefan Assmann) [1249246] - [netdrv] i40e: Disable offline diagnostics if VFs are enabled (Stefan Assmann) [1249246] - [netdrv] i40e: Collect PFC XOFF RX stats even in single TC case (Stefan Assmann) [1249246] - [netdrv] net: batch of last_rx update avoidance in ethernet drivers (Stefan Assmann) [1249246] - [netdrv] i40e: Bump version to 1.3.2 (Stefan Assmann) [1249246] - [netdrv] i40e: Use new 40G speeds (Stefan Assmann) [1249246] - [netdrv] i40e: get rid of unused locals (Stefan Assmann) [1249246] - [netdrv] i40e: handle possible memory allocation failure (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Save WR_CSR_PROT field from DEV/FUNC capabilities (Stefan Assmann) [1249246] - [netdrv] i40e: enable user dump of internal hardware state (Stefan Assmann) [1249246] - [netdrv] i40e: print FCoE capability reported by the device function (Stefan Assmann) [1249246] - [netdrv] i40e: For VF reset (VFR and VFLR) add some more delay (Stefan Assmann) [1249246] - [netdrv] i40e: move VF notification routines up (Stefan Assmann) [1249246] - [netdrv] i40e: notify VFs of link state (Stefan Assmann) [1249246] - [netdrv] i40e: Add support to program FDir SB rules for VF from PF through ethtool (Stefan Assmann) [1249246] - [netdrv] i40e: stop VF rings (Stefan Assmann) [1249246] - [netdrv] i40e: Bump to version 1.3.1 (Stefan Assmann) [1249246] - [netdrv] i40e: Communicate VSI id in place of VSI index to the VFs (Stefan Assmann) [1249246] - [netdrv] i40e: stop flow director on shutdown (Stefan Assmann) [1249246] - [netdrv] i40e: fix up VXLAN messages (Stefan Assmann) [1249246] - [netdrv] i40e: Don't register/de-register apps on NIC partitions in MFP mode (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Set Ethernet protocol correctly when Tx VLAN offloads are disabled (Stefan Assmann) [1249246] - [netdrv] i40e: warn at the right time (Stefan Assmann) [1249246] - [netdrv] i40e: fix invalid void return in FCoE code (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: fix bug when skb allocation fails (Stefan Assmann) [1249246] - [netdrv] i40e: Change some memcpys to struct assignments (Stefan Assmann) [1249246] - [netdrv] i40e: Print some more info to help figure out the cause of HMC error (Stefan Assmann) [1249246] - [netdrv] i40e: validate VSI param from VFs (Stefan Assmann) [1249246] - [netdrv] i40e: Bump version to 1.2.43 (Stefan Assmann) [1249246] - [netdrv] i40e: Increase PF reset max loop limit (Stefan Assmann) [1249246] - [netdrv] i40e: add NVM update events to AQ clean (Stefan Assmann) [1249246] - [netdrv] i40e: add ethtool RSS support (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump i40e/i40evf version (Stefan Assmann) [1249246] - [netdrv] i40e: add MAC printing to debugfs dump VSI (Stefan Assmann) [1249246] - [netdrv] i40e: Fix inconsistent use of PF/VF vs pf/vf (Stefan Assmann) [1249246] - [netdrv] i40e: tame the nvmupdate read and write complaints (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: fix accidental write to ITR registers (Stefan Assmann) [1249246] - [netdrv] i40e: future proof some sizeof calls (Stefan Assmann) [1249246] - [netdrv] i40e: Remove "hello world" strings from i40e driver (Stefan Assmann) [1249246] - [netdrv] i40e: Strip configfs code (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump version (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: enable prefetch of Tx descriptors during cleanup (Stefan Assmann) [1249246] - [netdrv] i40e: Simplify code for rss_size_max config (Stefan Assmann) [1249246] - [netdrv] i40e: FD filters flush policy changes (Stefan Assmann) [1249246] - [netdrv] i40e: Avoid logs while adding/deleting FD-SB filters (Stefan Assmann) [1249246] - [netdrv] i40e: print port stats only on partition 1 (Stefan Assmann) [1249246] - [netdrv] i40e: Move code to enable/disable Loopback to the main file (Stefan Assmann) [1249246] - [netdrv] i40e: rework vector reservation (Stefan Assmann) [1249246] - [netdrv] i40e: clean up debug_read_register (Stefan Assmann) [1249246] - [netdrv] i40e: store msg_enable in the right size (Stefan Assmann) [1249246] - [netdrv] i40e: Remove unneeded conversion (Stefan Assmann) [1249246] - [netdrv] i40e: Remove duplicate code (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Refactor i40e_debug_aq and make some functions static (Stefan Assmann) [1249246] - [netdrv] i40e: Fix mismatching type for ioremap_len (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Version bump (Stefan Assmann) [1249246] - [netdrv] i40e: don't spam the system log (Stefan Assmann) [1249246] - [netdrv] i40e: move IRQ tracking setup into MSIX setup (Stefan Assmann) [1249246] - [netdrv] i40e: Ioremap changes (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Clean up some formatting and other things (Stefan Assmann) [1249246] - [netdrv] i40e: Add AOC PHY types to case statements (Stefan Assmann) [1249246] - [netdrv] i40e: Fix ethtool offline test\ (Stefan Assmann) [1249246] - [netdrv] i40e: Reassign incorrect PHY type to fix a FW bug (Stefan Assmann) [1249246] - [netdrv] i40e: use more portable sign extension (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: grab NVM devstarter version not image version (Stefan Assmann) [1249246] - [netdrv] i40e: Don't check operational or sync bit for App TLV (Stefan Assmann) [1249246] - [netdrv] i40e: during LED interaction ignore activity LED src modes (Stefan Assmann) [1249246] - [netdrv] i40e: Fix NPAR Tx Scheduler init (Stefan Assmann) [1249246] - [netdrv] i40e: Fix dependencies in the i40e driver on configfs (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Bump versions (Stefan Assmann) [1249246] - [netdrv] i40e: Only enable TC0 for NIC partition type (Stefan Assmann) [1249246] - [netdrv] i40e: Register DCBNL ops in MFP mode (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: Add missing packet types for VXLAN encapsulated packet types (Stefan Assmann) [1249246] - [netdrv] i40e: Fix issue with removal of apps from DBCNL app table (Stefan Assmann) [1249246] - [netdrv] i40e: Add FW check to disable DCB and wrap autoneg workaround with FW check (Stefan Assmann) [1249246] - [netdrv] i40e: don't disable PF LB when disabling VFs (Stefan Assmann) [1249246] - [netdrv] i40e: Add safety net for switch calling (Stefan Assmann) [1249246] - [netdrv] i40e/i40evf: print FW build number in version string (Stefan Assmann) [1249246] - [netdrv] i40e: Skip the priority tagging if DCB is not enabled (Stefan Assmann) [1249246] - [netdrv] i40e: setup FCoE device type (Stefan Assmann) [1249246] - [netdrv] i40e: use dev_port for fcoe netdev (Stefan Assmann) [1249246] - [usb] serial: mos7840: Use setup_timer (Don Zickus) [891652] - [usb] mos7840: remove unused code (Don Zickus) [891652] - [usb] mos7840: replace unnecessary atomic allocations (Don Zickus) [891652] - [usb] mos7840: remove unnecessary null test before kfree (Don Zickus) [891652] - [usb] serial: remove redundant OOM messages (Don Zickus) [891652] - [usb] serial: clean up ioctl debugging (Don Zickus) [891652] - [usb] mos7840: correct handling of CS5 setting (Don Zickus) [891652] - [usb] mos7840: fix tiocmget error handling (Don Zickus) [891652] - [usb] mos7840: fix big-endian probe (Don Zickus) [891652] - [usb] mos7840: fix pointer casts (Don Zickus) [891652] - [usb] mos7840: fix race in led handling (Don Zickus) [891652] - [usb] mos7840: fix device-type detection (Don Zickus) [891652] - [usb] mos7840: fix race in register handling (Don Zickus) [891652] - [usb] mos7840: fix memory leak in open (Don Zickus) [891652] - [usb] mos7840: remove broken chase implementation (Don Zickus) [891652] - [usb] mos7840: fix DMA to stack (Don Zickus) [891652] - [usb] mos7840: remove bogus disconnect test in close (Don Zickus) [891652] - [usb] mos7840: fix broken TIOCMIWAIT (Don Zickus) [891652] - [usb] serial: Remove redundant NULL check before kfree (Don Zickus) [891652] - [usb] mos7840: fix port_probe flow (Don Zickus) [891652] - [usb] mos7840: fix port-data memory leak (Don Zickus) [891652] - [usb] mos7840: remove invalid disconnect handling (Don Zickus) [891652] - [usb] mos7840: remove NULL-urb submission (Don Zickus) [891652] - [usb] mos7840: fix port-device leak in error path (Don Zickus) [891652] - [usb] mos7840: fix urb leak at release (Don Zickus) [891652] - [usb] serial: mos7840.c: remove dbg usage (Don Zickus) [891652] - [usb] serial: Fix mos7840 timeout (Don Zickus) [891652] - [usb] serial: mos7840: Fixup mos7840_chars_in_buffer (Don Zickus) [891652] - [usb] mos7840.c: remove dbg tracing calls (Don Zickus) [891652] - [usb] serial: mos7840: add support for MCS7810 devices (Don Zickus) [891652] - [usb] serial: mos7840: Fixed MCS7820 device attach problem (Don Zickus) [891652] - [usb] serial: remove unnecessary reinitialisations of urb->dev (Don Zickus) [891652] - [usb] serial: remove duplicate returns (Don Zickus) [891652] - [usb] serial: mos7840: Add USB IDs to support more B&B USB/RS485 converters (Don Zickus) [891652] - [usb] serial: mos7840: Add USB ID to support the B&B Electronics USOPTL4-2P (Don Zickus) [891652] - [usb] Remove unnecessary return's from void functions (Don Zickus) [891652] - [usb] mos7840: fix null-pointer dereference (Don Zickus) [891652] - [usb] mos7840: Cleanup useless header (Don Zickus) [891652] - [usb] mos7840: fix DMA buffers on stack and endianess bugs (Don Zickus) [891652] - [usb] serial: Extra device/vendor ID for mos7840 driver (Don Zickus) [891652]- [netdrv] bnx2x: remove rx_pkt/rx_calls (Michal Schmidt) [1252126] - [netdrv] bnx2x: avoid soft lockup in bnx2x_poll (Michal Schmidt) [1220624 1252126] - [netdrv] bnx2x: simplify distinction between port and func stats (Michal Schmidt) [1252126] - [netdrv] bnx2x: change FW GRO error message to WARN_ONCE (Michal Schmidt) [1252126] - [netdrv] bnx2x: drop redundant error message about allocation failure (Michal Schmidt) [1130780 1252126] - [netdrv] bnx2x: Utilize FW 7.13.1.0 (Michal Schmidt) [1252126] - [netdrv] bnx2x: Show port statistics in Multi-function (Michal Schmidt) [1252126 1271916] - [netdrv] bnx2x: Add new SW stat 'tx_exhaustion_events' (Michal Schmidt) [1252126] - [netdrv] bnx2x: Prevent UDP 4-tuple configurations on older adapters (Michal Schmidt) [1252126] - [netdrv] bnx2x: get rid of unnecessary initializations in .get_drvinfo() (Michal Schmidt) [1252126] - [netdrv] bnx2x: byte swap rss_key to comply to Toeplitz specs (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix vxlan removal (Michal Schmidt) [1252126] - [netdrv] bnx2x: track vxlan port count (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix vxlan endianity issue (Michal Schmidt) [1252126] - [netdrv] redhat/configs: add CONFIG_BNX2X_VXLAN as a disabled feature (Michal Schmidt) [1252126] - [netdrv] bnx2x: Add vxlan RSS support (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix bandwidth allocation for some MF modes (Michal Schmidt) [1252126] - [netdrv] bnx2x: Free NVRAM lock at end of each page (Michal Schmidt) [1252126] - [netdrv] bnx2x: Prevent null pointer dereference on SKB release (Michal Schmidt) [1252126] - [netdrv] bnx2x: Add BD support for storage (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix VLANs null-pointer for 57710, 57711 (Michal Schmidt) [1252126] - [netdrv] bnx2x: Correct logic for pvid configuration (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix compilation when CONFIG_BNX2X_SRIOV is not set (Michal Schmidt) [1252126] - [netdrv] bnx2x: add vlan filtering offload (Michal Schmidt) [1252126] - [netdrv] bnx2x: Bump up driver version to 1.712.30 (Michal Schmidt) [1252126] - [netdrv] bnx2x: Add MFW dump support (Michal Schmidt) [1252126] - [netdrv] bnx2x: new Multi-function mode - BD (Michal Schmidt) [1252126] - [netdrv] bnx2x: Add 84858 phy support (Michal Schmidt) [1252126] - [netdrv] bnx2x: Rebrand from 'broadcom' into 'qlogic' (Michal Schmidt) [1252126] - [netdrv] bnx2x: Utilize FW 7.12.30 (Michal Schmidt) [1252126] - [netdrv] bnx2x: only report most generic filters in get_ts_info (Michal Schmidt) [1252126] - [netdrv] bnx2x: fix lockdep splat (Michal Schmidt) [1252126] - [netdrv] bnx2x: Release nvram lock on error flow (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix statistics gathering on link change (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix self-test for 20g devices (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix VF MAC removal (Michal Schmidt) [1252126] - [netdrv] bnx2x: Don't notify about scratchpad parities (Michal Schmidt) [1252126] - [netdrv] bnx2x: Prevent false warning when accessing MACs (Michal Schmidt) [1252126] - [netdrv] bnx2x: Correct speed from baseT into KR (Michal Schmidt) [1252126] - [netdrv] bnx2x: Correct asymmetric flow-control (Michal Schmidt) [1252126] - [netdrv] bnx2x: fix DMA API usage (Michal Schmidt) [1130780 1252126] - [netdrv] bnx2x: Alloc 4k fragment for each rx ring buffer element (Michal Schmidt) [1130780 1252126] - [netdrv] bnx2x: limit fw delay in kdump to 5s after boot (Michal Schmidt) [1252126] - [netdrv] bnx2x: Delay during kdump load (Michal Schmidt) [1252126] - [netdrv] bnx2x: remove TPA_ENABLE_FLAG,GRO_ENABLE_FLAG (Michal Schmidt) [1252126] - [netdrv] bnx2x: merge fp->disable_tpa with fp->mode (Michal Schmidt) [1252126] - [netdrv] bnx2x: mark LRO as a fixed disabled feature if disable_tpa is set (Michal Schmidt) [1252126] - [netdrv] bnx2x: really disable TPA if 'disable_tpa' option is set (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix to prevent inner-reload (Michal Schmidt) [1145063 1252126] - [netdrv] bnx2x: Prevent inner-reload while VFs exist (Michal Schmidt) [1145063 1252126] - [netdrv] bnx2x: use netdev_rss_key_fill() helper (Michal Schmidt) [1252126] - [netdrv] bnx2x: Use bool function returns of true/false instead of 1/0 (Michal Schmidt) [1252126] - [netdrv] bnx2x: Prevent probe as early as possible (Michal Schmidt) [1252126] - [netdrv] bnx2x: Count number of link changes (Michal Schmidt) [1252126] - [netdrv] bnx2x: Configure IFir et al. according to nvram (Michal Schmidt) [1252126] - [netdrv] bnx2x: codespell comment spelling fixes (Michal Schmidt) [1252126] - [netdrv] bnx2x: Fix typo in printk message (Michal Schmidt) [1252126] - [netdrv] bnx2x: fix napi poll return value for repoll (Michal Schmidt) [1252126] - [virt] hv_netvsc: Fix race condition on Multi-Send Data field (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: remove locking in netvsc_send (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: move subchannel existence check to netvsc_select_queue (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Don't ask for additional head room in the skb (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Eliminate send_completion_ctx from struct hv_netvsc_packet (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Eliminate send_completion from struct hv_netvsc_packet (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Eliminatte the data field from struct hv_netvsc_packet (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Eliminate rndis_msg pointer from hv_netvsc_packet structure (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Eliminate the channel field in hv_netvsc_packet structure (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Rearrange the hv_negtvsc_packet to be space efficient (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Resize some of the variables in hv_netvsc_packet (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: remove unused variable in netvsc_send (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Fix a bug in netvsc_start_xmit (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: introduce netif-msg into netvsc module (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Implement partial copy into send buffer (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: try linearizing big SKBs before dropping them (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: use single existing drop path in netvsc_start_xmit (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Fix the packet free when it is in skb headroom (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Define a macro RNDIS_AND_PPI_SIZE (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Clean up two unused variables (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Eliminate memory allocation in the packet send path (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Cleanup the test for freeing skb when we use sendbuf mechanism (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: remove vmbus_are_subchannels_present in rndis_filter_device_add (Vitaly Kuznetsov) [1264931] - [virt] hv_netvsc: Implement batching in send buffer (Vitaly Kuznetsov) [1264931] - [virt] hyperv: fix sparse warnings (Vitaly Kuznetsov) [1264931] - [virt] hyperv: Fix the error processing in netvsc_send (Vitaly Kuznetsov) [1264931] - [virt] hyperv: match wait_for_completion_timeout return type (Vitaly Kuznetsov) [1264931] - [virt] hyperv: Add processing of MTU reduced by the host (Vitaly Kuznetsov) [1264931] - [dm] space map metadata: remove unused variable in brb_pop (Mike Snitzer) [1290912] - [dm] space map metadata: fix ref counting bug when bootstrapping a new space map (Mike Snitzer) [1290912] - [dm] thin metadata: fix bug when taking a metadata snapshot (Mike Snitzer) [1290912] - [dm] btree: fix bufio buffer leaks in dm_btree_del() error path (Mike Snitzer) [1219634] - [dm] btree: fix leak of bufio-backed block in btree_split_sibling error path (Mike Snitzer) [1219634] - [tpm] config: enable tpm_crb driver support (Jerry Snitselaar) [1254015] - [tpm] fix call order in tpm-chip.c (Jerry Snitselaar) [1254015] - [tpm] tpm, tpm_tis: fix TPM 2.0 probing (Jerry Snitselaar) [1254015] - [tpm] fix suspend/resume paths for TPM 2.0 (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Add missing ifdef CONFIG_ACPI for pnp_acpi_device (Jerry Snitselaar) [1254015] - [tpm] fix format string error in tpm-chip.c (Jerry Snitselaar) [1254015] - [tpm] tpm_crb: fix build error (Jerry Snitselaar) [1254015] - [tpm] TPM 2.0 FIFO Interface (Jerry Snitselaar) [1254015] - [tpm] TPM 2.0 CRB Interface (Jerry Snitselaar) [1254015] - [tpm] TPM 2.0 baseline support (Jerry Snitselaar) [1254015] - [tpm] device class for tpm (Jerry Snitselaar) [1254015] - [tpm] rename chip->dev to chip->pdev (Jerry Snitselaar) [1254015] - [tpm] fix raciness of PPI interface lookup (Jerry Snitselaar) [1254015] - [tpm] two-phase chip management functions (Jerry Snitselaar) [1254015] - [tpm] merge duplicate transmit_cmd functions (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: verify interrupt during init (Jerry Snitselaar) [1254015] - [tpm] Add new TPMs to the tail of the list to prevent inadvertent change of dev (Jerry Snitselaar) [1254015] - [tpm] simplify code by using *phN specifier (Jerry Snitselaar) [1254015] - [tpm] Provide a generic means to override the chip returned timeouts (Jerry Snitselaar) [1254015] - [tpm] Properly clean sysfs entries in error path (Jerry Snitselaar) [1254015] - [tpm] acpi / tpm: Fix resume regression on Chromebooks (Jerry Snitselaar) [1254015] - [tpm] acpi / tpm: detect PPI features by checking availability of _DSM functions (Jerry Snitselaar) [1254015] - [tpm] acpi / tpm: replace open-coded _DSM code with helper functions (Jerry Snitselaar) [1254015] - [tpm] acpi / tpm: match node name instead of full path when searching for TPM device (Jerry Snitselaar) [1254015] - [tpm] tpm-sysfs: active_show() can be static (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Fix compile problems with CONFIG_PM_SLEEP/CONFIG_PNP (Jerry Snitselaar) [1254015] - [tpm] Make tpm-dev allocate a per-file structure (Jerry Snitselaar) [1254015] - [tpm] Use the ops structure instead of a copy in tpm_vendor_specific (Jerry Snitselaar) [1254015] - [tpm] Create a tpm_class_ops structure and use it in the drivers (Jerry Snitselaar) [1254015] - [tpm] Pull all driver sysfs code into tpm-sysfs.c (Jerry Snitselaar) [1254015] - [tpm] Move sysfs functions from tpm-interface to tpm-sysfs (Jerry Snitselaar) [1254015] - [tpm] Pull everything related to /dev/tpmX into tpm-dev.c (Jerry Snitselaar) [1254015] - [tpm] acpi / tpm: fix memory leak when walking ACPI namespace (Jerry Snitselaar) [1254015] - [tpm] Merge the tpm-bios module with tpm.o (Jerry Snitselaar) [1254015] - [tpm] Rename tpm.c to tpm-interface.c (Jerry Snitselaar) [1254015] - [tpm] cleanup checkpatch warnings (Jerry Snitselaar) [1254015] - [tpm] Remove tpm_show_caps_1_2 (Jerry Snitselaar) [1254015] - [tpm] Use container_of to locate the tpm_chip in tpm_open (Jerry Snitselaar) [1254015] - [tpm] Store devname in the tpm_chip (Jerry Snitselaar) [1254015] - [tpm] atmel: Call request_region with the correct base (Jerry Snitselaar) [1254015] - [tpm] convert tpm_tis driver to use dev_pm_ops from legacy pm_ops (Jerry Snitselaar) [1254015] - [tpm] move TPM_DIGEST_SIZE defintion (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: missing platform_driver_unregister() on error in init_tis (Jerry Snitselaar) [1254015] - [tpm] tpm_ppi: use strlcpy instead of strncpy (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: check pnp_acpi_device return code (Jerry Snitselaar) [1254015] - [tpm] Wait for TPM_ACCESS tpmRegValidSts to go high at startup (Jerry Snitselaar) [1254015] - [tpm] Fix cancellation of TPM commands - interrupt mode (Jerry Snitselaar) [1254015] - [tpm] Fix cancellation of TPM commands - polling mode (Jerry Snitselaar) [1254015] - [tpm] Store TPM vendor ID (Jerry Snitselaar) [1254015] - [tpm] Work around buggy TPMs that block during continue self test (Jerry Snitselaar) [1254015] - [tpm] rename vendor data to priv and provide an accessor (Jerry Snitselaar) [1254015] - [tpm] Retry SaveState command in suspend path (Jerry Snitselaar) [1254015] - [tpm] Use true and false for bools (Jerry Snitselaar) [1254015] - [tpm] Switch to __packed instead of __attribute__ packed (Jerry Snitselaar) [1254015] - [tpm] Issue TPM_STARTUP at driver load if the TPM has not been started (Jerry Snitselaar) [1254015] - [tpm] simplify duration calculation and eliminate smatch warning (Jerry Snitselaar) [1254015] - [tpm] Remove duplicated lookup table (Jerry Snitselaar) [1254015] - [tpm] add documentation for sysfs interfaces (Jerry Snitselaar) [1254015] - [tpm] Propagate error from tpm_transmit to fix a timeout hang (Jerry Snitselaar) [1254015] - [tpm] fix tpm_acpi sparse warning on different address spaces (Jerry Snitselaar) [1254015] - [tpm] Do not dereference NULL pointer if acpi_os_map_memory fails (Jerry Snitselaar) [1254015] - [tpm] compile out unused code in the PNP and PM cases (Jerry Snitselaar) [1254015] - [tpm] fix double write race and tpm_release free issue (Jerry Snitselaar) [1254015] - [tpm] tpm_tis / pm: Fix unused function warning for CONFIG_PM_SLEEP (Jerry Snitselaar) [1254015] - [tpm] check the chip reference before using it (Jerry Snitselaar) [1254015] - [tpm] chip disabled state erronously being reported as error (Jerry Snitselaar) [1254015] - [tpm] tpm_nsc: Use struct dev_pm_ops for power management (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Use struct dev_pm_ops for power management (Jerry Snitselaar) [1254015] - [tpm] tpm_atmel: Use struct dev_pm_ops for power management (Jerry Snitselaar) [1254015] - [tpm] pm / tpm: Drop unused pm_message_t argument from tpm_pm_suspend (Jerry Snitselaar) [1254015] - [tpm] Zero buffer whole after copying to userspace (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Clean up after module_param cleanup (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Only probe iTPMs (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: fix tis_lock with respect to RCU (Jerry Snitselaar) [1254015] - [tpm] fix ACPI S3 suspend regression (Jerry Snitselaar) [1254015] - [tpm] make bool parameters really bool (Jerry Snitselaar) [1254015] - [tpm] fix transmit_cmd error logic (Jerry Snitselaar) [1254015] - [tpm] TIS driver X86 dependency fix (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: add delay after aborting command (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Check return code from getting timeouts/durations (Jerry Snitselaar) [1254015] - [tpm] Introduce function to poll for result of self test (Jerry Snitselaar) [1254015] - [tpm] Cleanup tpm_continue_selftest (Jerry Snitselaar) [1254015] - [tpm] Have tpm_get_timeouts return an error code (Jerry Snitselaar) [1254015] - [tpm] suppress durations sysfs output if not read (Jerry Snitselaar) [1254015] - [tpm] Call tpm_transmit with correct size (Jerry Snitselaar) [1254015] - [tpm] tpm: tpm_nsc: Fix a double free of pdev in cleanup_nsc (Jerry Snitselaar) [1254015] - [tpm] TCG_ATMEL should depend on HAS_IOPORT (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: fix build when ACPI is not enabled (Jerry Snitselaar) [1254015] - [tpm] tpm_nsc: Fix bug when loading multiple TPM drivers (Jerry Snitselaar) [1254015] - [tpm] Move tpm_tis_reenable_interrupts out of CONFIG_PNP block (Jerry Snitselaar) [1254015] - [tpm] Fix compilation warning when CONFIG_PNP is not defined (Jerry Snitselaar) [1254015] - [tpm] Fix a typo (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Probing function for Intel iTPM bug (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Fix the probing for interrupts (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Delay ACPI S3 suspend while the TPM is busy (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Re-enable interrupts upon S3 resume (Jerry Snitselaar) [1254015] - [tpm] Fix display of data in pubek sysfs entry (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Add timeouts sysfs entry (Jerry Snitselaar) [1254015] - [tpm] Adjust interface timeouts if they are too small (Jerry Snitselaar) [1254015] - [tpm] Use interface timeouts returned from the TPM (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: Introduce durations sysfs entry (Jerry Snitselaar) [1254015] - [tpm] Adjust the durations if they are too small (Jerry Snitselaar) [1254015] - [tpm] Use durations returned from TPM (Jerry Snitselaar) [1254015] - [tpm] fix panic caused by "tpm: Autodetect itpm devices" (Jerry Snitselaar) [1254015] - [tpm] Autodetect itpm devices (Jerry Snitselaar) [1254015] - [tpm] key: add tpm_send command (Jerry Snitselaar) [1254015] - [tpm] add default function definitions (Jerry Snitselaar) [1254015] - [tpm] add module_put wrapper (Jerry Snitselaar) [1254015] - [tpm] change 'tpm_suspend_pcr' to be module parameter (Jerry Snitselaar) [1254015] - [tpm] tpm_tis: fix subsequent suspend failures (Jerry Snitselaar) [1254015] - [tpm] ACPI/PNP dependency removal (Jerry Snitselaar) [1254015] - [tpm] workaround to enforce PCR updates across suspends (Jerry Snitselaar) [1254015] - [tpm] increase default TPM buffer (Jerry Snitselaar) [1254015] - [tpm] fix header for modular build (Jerry Snitselaar) [1254015] - [tpm] pnp: change pnp bus pm_ops to invoke pnp driver dev_pm_ops if specified (Jerry Snitselaar) [1254015] - [tpm] acpi: introduce helper interfaces for _DSM method (Jerry Snitselaar) [1254015] - [tpm] acpi: introduce module_acpi_driver helper macro (Jerry Snitselaar) [1254015] - [sound] alsa: hda/ca0132 - ctefx firmware for DSP (Jaroslav Kysela) [1007460] - [sound] alsa: hda/ca0132 - use generic parser for some models (Jaroslav Kysela) [1007460] - [sound] alsa: hda/ca0132 - quirk for Alienware 17 2015 (Jaroslav Kysela) [1007460] - [sound] alsa: hda/ca0132: support for Alienware 15 Creative Sound Core3D-EX (Jaroslav Kysela) [1007460] - [sound] alsa: hda - Disable 64bit address for Creative HDA controllers (Jaroslav Kysela) [1007460] - [netdrv] tg3: Fix temperature reporting (Ivan Vecera) [1253054] - [netdrv] net/tg3: Release IRQs on permanent error (Ivan Vecera) [1253054] - [netdrv] ptp: tg3: use helpers for converting ns to timespec (Ivan Vecera) [1253054] - [netdrv] tg3: use napi_complete_done() (Ivan Vecera) [1253054] - [netdrv] tg3: Add skb->xmit_more support (Ivan Vecera) [1253054] - [netdrv] tg3: remove __dev* attributes (Ivan Vecera) [1253054] - [netdrv] tg3: Fix to use multi queue BQL interfaces (Ivan Vecera) [1253054] - [netdrv] tg3: Support for byte queue limits (Ivan Vecera) [1253054] - [sound] alsa: hda - Treat stereo-to-mono mix properly (Jaroslav Kysela) [1018955] - [sound] alsa: hda - Don't access stereo amps for mono channel widgets (Jaroslav Kysela) [1018955] - [netdrv] bnx2: free temp_stats_blk on error path (Ivan Vecera) [1252124] - [netdrv] bnx2: fix a Null Pointer for stats_blk (Ivan Vecera) [1252124] - [netdrv] bnx2: disable toggling of rxvlan if necessary (Ivan Vecera) [1252124] - [netdrv] bnx2-cnic: Driver Version Update (Ivan Vecera) [1252124] - [netdrv] bnx2: Fix for Chip Initialization (Ivan Vecera) [1252124] - [netdrv] bnx2-cnic: Driver Rebranding Changes (Ivan Vecera) [1252124]- [input] wacom: set stylus_in_proximity before checking touch_down (Aristeu Rozanski) [1252898] - [input] wacom: use wacom_wac_finger_count_touches to set touch_down (Aristeu Rozanski) [1252898] - [input] wacom: add support for three new Intuos devices (Aristeu Rozanski) [1252898] - [firmware] dmi_scan: uuid: fix endianess for smbios >= 0x206 (Jarod Wilson) [1232557] - [firmware] dmi_scan: Coding style cleanups (Jarod Wilson) [1232557] - [firmware] dmi_scan: Trim DMI table length before exporting it (Jarod Wilson) [1232557] - [firmware] dmi_scan: Rename dmi_table to dmi_decode_table (Jarod Wilson) [1232557] - [firmware] dmi_scan: Only honor end-of-table for 64-bit tables (Jarod Wilson) [1232557] - [firmware] dmi_scan: Fix ordering of product_uuid (Jarod Wilson) [1232557] - [firmware] dmi_scan: Simplified displayed version (Jarod Wilson) [1232557] - [firmware] dmi_scan: Use direct access to static vars (Jarod Wilson) [1232557] - [firmware] dmi_scan: Fix dmi_len type (Jarod Wilson) [1232557] - [firmware] dmi_scan: Use full dmi version for SMBIOS3 (Jarod Wilson) [1232557] - [firmware] dmi_scan: Prevent dmi_num integer overflow (Jarod Wilson) [1232557] - [firmware] dmi_scan: Fix dmi scan to handle "End of Table" structure (Jarod Wilson) [1232557] - [firmware] dmi: add support for SMBIOS 3.0 64-bit entry point (Jarod Wilson) [1232557] - [x86] efi: dmi: add support for SMBIOS 3.0 UEFI configuration table (Jarod Wilson) [1232557] - [firmware] dmi_scan: generalize for use by other archs (Jarod Wilson) [1232557] - [firmware] dmi_scan: constify strings (Jarod Wilson) [1232557] - [firmware] dmi_scan: drop OOM messages (Jarod Wilson) [1232557] - [firmware] dmi_scan: fix most checkpatch errors and warnings (Jarod Wilson) [1232557] - [firmware] dmi_scan: drop obsolete comment (Jarod Wilson) [1232557] - [firmware] dmi_scan: add comments on dmi_present and the loop in dmi_scan_machine (Jarod Wilson) [1232557] - [firmware] dmi_scan: refactor dmi_scan_machine, _present (Jarod Wilson) [1232557] - [firmware] dmi: morph dmi_dump_ids into dmi_format_ids which formats into a buffer (Jarod Wilson) [1232557] - [firmware] dmi_scan: fix missing check for _DMI_ signature in smbios_present (Jarod Wilson) [1232557] - [firmware] dmi_scan.c: fetch dmi version from SMBIOS if it exists (Jarod Wilson) [1232557] - [netdrv] enic: do hang reset only in case of tx timeout (Stefan Assmann) [1253853] - [netdrv] enic: handle spurious error interrupt (Stefan Assmann) [1253853] - [netdrv] enic: reduce ioread in devcmd2 (Stefan Assmann) [1253853] - [netdrv] enic: Fix build failure with SRIOV disabled (Stefan Assmann) [1253853] - [netdrv] enic: Fix namespace pollution causing build errors (Stefan Assmann) [1253853] - [netdrv] enic: Fix sparse warning in vnic_devcmd_init (Stefan Assmann) [1253853] - [netdrv] enic: add devcmd2 (Stefan Assmann) [1253853] - [netdrv] enic: add devcmd2 resources (Stefan Assmann) [1253853] - [netdrv] enic: use netdev_ or dev_ instead of pr_ (Stefan Assmann) [1253853] - [netdrv] enic: move struct definition from .c to .h file (Stefan Assmann) [1253853] - [netdrv] enic: fix issues in enic_poll (Stefan Assmann) [1253853] - [netdrv] enic: fix memory leak in rq_clean (Stefan Assmann) [1253853] - [netdrv] enic: check return value for stat dump (Stefan Assmann) [1253853] - [netdrv] enic: unlock napi busy poll before unmasking intr (Stefan Assmann) [1253853] - [netdrv] enic: do notify_check before returning credits (Stefan Assmann) [1253853] - [netdrv] enic: enic_main: fix sparse warnings (Stefan Assmann) [1253853] - [netdrv] enic: enic_ethtool: fix sparse warning (Stefan Assmann) [1253853] - [netdrv] enic: reconfigure resources for kdump crash kernel (Stefan Assmann) [1253853] - [netdrv] enic: add support for set/get rss hash key (Stefan Assmann) [1253853] - [netdrv] enic: use netdev_rss_key_fill helper (Stefan Assmann) [1253853] - [edac] sb_edac: fix TAD presence check for sbridge_mci_bind_devs (Seth Jennings) [1245372] - [edac] sb_edac: support for Broadwell -EP and -EX (Seth Jennings) [1245372] - [edac] sb_edac: Fix support for systems with two home agents per socket (Seth Jennings) [1245372] - [edac] sb_edac: Fix a typo and a thinko in address handling for Haswell (Seth Jennings) [1245372] - [edac] Remove arbitrary limit on number of channels (Seth Jennings) [1245372] - [edac] sb_edac: Fix detection on SNB machines (Seth Jennings) [1245372] - [edac] sb_edac: Claim a different PCI device (Seth Jennings) [1245372] - [sched] rt: Provide means of disabling cross-cpu bandwidth sharing (mtanino) [1074360] - [infiniband] ib/iser: Bump version to 1.6 (Honggang Li) [1271497] - [infiniband] ib/iser: Modify struct iser_mem_reg members (Honggang Li) [1271497] - [infiniband] ib/iser: Make fastreg pool cache friendly (Honggang Li) [1271497] - [infiniband] ib/iser: Move PI context alloc/free to routines (Honggang Li) [1271497] - [infiniband] ib/iser: Move fastreg descriptor pool get/put to helper functions (Honggang Li) [1271497] - [infiniband] ib/iser: Merge build page-vec into register page-vec (Honggang Li) [1271497] - [infiniband] ib/iser: Get rid of struct iser_rdma_regd (Honggang Li) [1271497] - [infiniband] ib/iser: Remove redundant assignments in iser_reg_page_vec (Honggang Li) [1271497] - [infiniband] ib/iser: Move memory reg/dereg routines to iser_memory.c (Honggang Li) [1271497] - [infiniband] ib/iser: Don't pass ib_device to fall_to_bounce_buff routine (Honggang Li) [1271497] - [infiniband] ib/iser: Remove a redundant struct iser_data_buf (Honggang Li) [1271497] - [infiniband] ib/iser: Remove redundant cmd_data_len calculation (Honggang Li) [1271497] - [infiniband] ib/iser: Fix wrong calculation of protection buffer length (Honggang Li) [1271497] - [infiniband] ib/iser: Handle fastreg/local_inv completion errors (Honggang Li) [1271497] - [infiniband] ib/iser: Fix unload during ep_poll wrong dereference (Honggang Li) [1271497] - [x86] cacheinfo: Base cache sharing info on CPUID 0x8000001d on AMD (Kim Naru) [987679] - [x86] cacheinfo: Make use of CPUID 0x8000001d for cache information on AMD (Kim Naru) [987679] - [x86] cacheinfo: Determine number of cache leafs using CPUID 0x8000001d on AMD (Kim Naru) [987679] - [fs] nfs4: limit callback decoding to received bytes (Benjamin Coddington) [1232402] - [fs] nfs4: start callback_ident at idr 1 (Benjamin Coddington) [1232402] - [fs] xprtrdma: Store RDMA credits in unsigned variables (Honggang Li) [1271499] - [fs] xprtrdma: Address sparse complaint in rpcr_to_rdmar() (Honggang Li) [1271499] - [fs] xprtrdma: Allocate RPC/RDMA receive buffer separately from struct rpcrdma_rep (Honggang Li) [1271499] - [fs] xprtrdma: Allocate RPC/RDMA send buffer separately from struct rpcrdma_req (Honggang Li) [1271499] - [fs] xprtrdma: Allocate RPC send buffer separately from struct rpcrdma_req (Honggang Li) [1271499] - [fs] xprtrdma: Add struct rpcrdma_regbuf and helpers (Honggang Li) [1271499] - [fs] xprtrdma: Refactor rpcrdma_buffer_create() and rpcrdma_buffer_destroy() (Honggang Li) [1271499] - [fs] xprtrdma: Simplify synopsis of rpcrdma_buffer_create() (Honggang Li) [1271499] - [fs] xprtrdma: Take struct ib_qp_attr and ib_qp_init_attr off the stack (Honggang Li) [1271499] - [fs] xprtrdma: Take struct ib_device_attr off the stack (Honggang Li) [1271499] - [fs] xprtrdma: Free the pd if ib_query_qp() fails (Honggang Li) [1271499] - [fs] xprtrdma: Move credit update to RPC reply handler (Honggang Li) [1271499] - [fs] xprtrdma: Remove rl_mr field, and the mr_chunk union (Honggang Li) [1271499] - [fs] xprtrdma: Remove rpcrdma_ep::rep_ia (Honggang Li) [1271499] - [fs] xprtrdma: Clean up hdrlen (Honggang Li) [1271499] - [fs] xprtrdma: Display XIDs in host byte order (Honggang Li) [1271499] - [fs] xprtrdma: Modernize htonl and ntohl (Honggang Li) [1271499] - [fs] xprtrdma: human-readable completion status (Honggang Li) [1271499] - [fs] svcrdma: Handle additional inline content (Honggang Li) [1271499] - [fs] svcrdma: Move read list XDR round-up logic (Honggang Li) [1271499] - [fs] svcrdma: Support RDMA_NOMSG requests (Honggang Li) [1271499] - [fs] svcrdma: rc_position sanity checking (Honggang Li) [1271499] - [fs] svcrdma: Plant reader function in struct svcxprt_rdma (Honggang Li) [1271499] - [fs] svcrdma: Find rmsgp more reliably (Honggang Li) [1271499] - [fs] svcrdma: Scrub BUG_ON() and WARN_ON() call sites (Honggang Li) [1271499] - [fs] svcrdma: Clean up read chunk counting (Honggang Li) [1271499] - [fs] svcrdma: Remove unused variable (Honggang Li) [1271499] - [fs] svcrdma: Clean up dprintk (Honggang Li) [1271499] - [fs] xprtrdma: Display async errors (Honggang Li) [1271499] - [fs] xprtrdma: Enable pad optimization (Honggang Li) [1271499] - [fs] xprtrdma: Re-write rpcrdma_flush_cqs() (Honggang Li) [1271499] - [fs] xprtrdma: Refactor tasklet scheduling (Honggang Li) [1271499] - [fs] xprtrdma: unmap all FMRs during transport disconnect (Honggang Li) [1271499] - [fs] xprtrdma: Cap req_cqinit (Honggang Li) [1271499] - [fs] xprtrdma: Return an errno from rpcrdma_register_external() (Honggang Li) [1271499] - [fs] svcrdma: advertise the correct max payload (Honggang Li) [1271499] - [fs] svcrdma: remove rdma_create_qp() failure recovery logic (Honggang Li) [1271499] - [fs] xprtrdma: Handle additional connection events (Honggang Li) [1271499] - [fs] xprtrdma: Remove RPCRDMA_PERSISTENT_REGISTRATION macro (Honggang Li) [1271499] - [fs] xprtrdma: Make rpcrdma_ep_disconnect() return void (Honggang Li) [1271499] - [fs] xprtrdma: Schedule reply tasklet once per upcall (Honggang Li) [1271499] - [fs] xprtrdma: Allocate each struct rpcrdma_mw separately (Honggang Li) [1271499] - [fs] xprtrdma: Rename frmr_wr (Honggang Li) [1271499] - [fs] xprtrdma: Disable completions for LOCAL_INV Work Requests (Honggang Li) [1271499] - [fs] xprtrdma: Disable completions for FAST_REG_MR Work Requests (Honggang Li) [1271499] - [fs] xprtrdma: Don't post a LOCAL_INV in rpcrdma_register_frmr_external() (Honggang Li) [1271499] - [fs] xprtrdma: Reset FRMRs after a flushed LOCAL_INV Work Request (Honggang Li) [1271499] - [fs] xprtrdma: Reset FRMRs when FAST_REG_MR is flushed by a disconnect (Honggang Li) [1271499] - [fs] xprtrdma: Properly handle exhaustion of the rb_mws list (Honggang Li) [1271499] - [fs] xprtrdma: Chain together all MWs in same buffer pool (Honggang Li) [1271499] - [fs] xprtrdma: Back off rkey when FAST_REG_MR fails (Honggang Li) [1271499] - [fs] xprtrdma: Unclutter struct rpcrdma_mr_seg (Honggang Li) [1271499] - [fs] xprtrdma: Don't invalidate FRMRs if registration fails (Honggang Li) [1271499] - [fs] xprtrdma: On disconnect, don't ignore pending CQEs (Honggang Li) [1271499] - [fs] xprtrdma: Update rkeys after transport reconnect (Honggang Li) [1271499] - [fs] xprtrdma: Limit data payload size for ALLPHYSICAL (Honggang Li) [1271499] - [fs] xprtrdma: Protect ia->ri_id when unmapping/invalidating MRs (Honggang Li) [1271499] - [fs] xprtrdma: Fix panic in rpcrdma_register_frmr_external() (Honggang Li) [1271499] - [fs] svcrdma: Add zero padding if the client doesn't send it (Honggang Li) [1271499] - [fs] xprtrdma: Fix DMA-API-DEBUG warning by checking dma_map result (Honggang Li) [1271499] - [fs] svcrdma: send_write() must not overflow the device's max sge (Honggang Li) [1271499] - [fs] svcrdma: Fence LOCAL_INV work requests (Honggang Li) [1271499] - [fs] svcrdma: refactor marshalling logic (Honggang Li) [1271499] - [fs] xprtrdma: Disconnect on registration failure (Honggang Li) [1271499] - [fs] xprtrdma: Remove BUG_ON() call sites (Honggang Li) [1271499] - [fs] xprtrdma: Avoid deadlock when credit window is reset (Honggang Li) [1271499] - [fs] SUNRPC: Move congestion window constants to header file (Honggang Li) [1271499] - [fs] xprtrdma: Reset connection timeout after successful reconnect (Honggang Li) [1271499] - [fs] xprtrdma: Use macros for reconnection timeout constants (Honggang Li) [1271499] - [fs] xprtrdma: Allocate missing pagelist (Honggang Li) [1271499] - [fs] xprtrdma: Remove Tavor MTU setting (Honggang Li) [1271499] - [fs] xprtrdma: Ensure ia->ri_id->qp is not NULL when reconnecting (Honggang Li) [1271499] - [fs] xprtrdma: Reduce the number of hardway buffer allocations (Honggang Li) [1271499] - [fs] xprtrdma: Limit work done by completion handler (Honggang Li) [1271499] - [fs] xprtrmda: Reduce calls to ib_poll_cq() in completion handlers (Honggang Li) [1271499] - [fs] xprtrmda: Reduce lock contention in completion handlers (Honggang Li) [1271499] - [fs] xprtrdma: Split the completion queue (Honggang Li) [1271499] - [fs] xprtrdma: Make rpcrdma_ep_destroy() return void (Honggang Li) [1271499] - [fs] xprtrdma: Simplify rpcrdma_deregister_external() synopsis (Honggang Li) [1271499] - [fs] xprtrdma: mount reports "Invalid mount option" if memreg mode not supported (Honggang Li) [1271499] - [fs] xprtrdma: Fall back to MTHCAFMR when FRMR is not supported (Honggang Li) [1271499] - [fs] xprtrdma: Remove REGISTER memory registration mode (Honggang Li) [1271499] - [fs] xprtrdma: Remove MEMWINDOWS registration modes (Honggang Li) [1271499] - [fs] xprtrdma: Remove BOUNCEBUFFERS memory registration mode (Honggang Li) [1271499] - [fs] xprtrdma: RPC/RDMA must invoke xprt_wake_pending_tasks() in process context (Honggang Li) [1271499] - [fs] nfs-rdma: Fix for FMR leaks (Honggang Li) [1271499] - [fs] xprtrdma: mind the device's max fast register page list depth (Honggang Li) [1271499] - [fs] NFSD: Ignore client's source port on RDMA transports (Honggang Li) [1271499] - [fs] redhat: update NFSoRDMA options for config-generic (Honggang Li) [1271499] - [fs] xprtrdma: add separate Kconfig options for NFSoRDMA client and server support (Honggang Li) [1271499] - [fs] svcrdma: fix printk when memory allocation fails (Honggang Li) [1271499] - [fs] SUNRPC: remove KERN_INFO from dprintk() call sites (Honggang Li) [1271499] - [fs] SUNRPC: Fix large reads on NFS/RDMA (Honggang Li) [1271499] - [fs] svcrdma: underflow issue in decode_write_list() (Honggang Li) [1271499] - [fs] SUNRPC: Pass a pointer to struct rpc_xprt to the connect callback (Honggang Li) [1271499] - [fs] SUNRPC: Eliminate task->tk_xprt accesses that bypass rcu_dereference() (Honggang Li) [1271499] - [fs] xprtrdma: Remove assumption that each segment is <= PAGE_SIZE (Honggang Li) [1271499] - [fs] xprtrdma: The transport should not bug-check when a dup reply is received (Honggang Li) [1271499] - [fs] svcrdma: Cleanup sparse warnings in the svcrdma module (Honggang Li) [1271499] - [fs] SUNRPC: create svc_xprt in proper network namespace (Honggang Li) [1271499] - [fs] RDMA: Increasing RPCRDMA_MAX_DATA_SEGS (Honggang Li) [1271499] - [fs] sunrpc: fix printk format warning (Honggang Li) [1271499] - [fs] rpcrdma: Fix FRMR registration/invalidate handling (Honggang Li) [1271499] - [fs] rpcrdma: Fix to XDR page base interpretation in marshalling logic (Honggang Li) [1271499] - [fs] net/sunrpc: Convert (void)snprintf to snprintf (Honggang Li) [1271499] - [fs] net/sunrpc: Remove uses of NIPQUAD, use pI4 (Honggang Li) [1271499] - [fs] gfs2: change gfs2 readdir cookiey (Benjamin Marzinski) [1151962] - [fs] gfs2: keep offset when splitting dir leaf blocks (Benjamin Marzinski) [1151962] - [fs] Fix to check Unique id and FileType when client refer file directly (Sachin Prabhu) [1202682] - [fs] xfs: fix splice/direct-IO deadlock (Bill O'Donnell) [697750] - [fs] vfs: split generic splice code from i_mutex locking (Bill O'Donnell) [697750] - [fs] nfsv4: Don't try to reclaim unused state owners (Benjamin Coddington) [1272687] - [fs] nfsv4: Keep dropped state owners on the LRU list for a while (Benjamin Coddington) [1272687] - [fs] nfsv4: Ensure that we don't drop a state owner more than once (Benjamin Coddington) [1272687] - [fs] nfsv4: Ensure we do not reuse open owner names (Benjamin Coddington) [1151962 1272687] - [fs] nfs: Remove nfs_unique_id (Benjamin Coddington) [1151962 1272687] - [fs] nfs: Move struct nfs_unique_id into struct nfs_seqid_counter (Benjamin Coddington) [1272687] - [fs] nfsv4: Replace lock_owner->ld_id with an ida based allocator (Benjamin Coddington) [1272687] - [fs] nfsv4: Replace state_owner->so_owner_id with an ida based allocator (Benjamin Coddington) [1272687] - [fs] nfsv4: Move contents of struct rpc_sequence into struct nfs_seqid_counter (Benjamin Coddington) [1272687] - [fs] nfsv4: Clean up nfs4_get_state_owner (Benjamin Coddington) [1272687] - [fs] cifs: obtain file access during backup intent lookup (Sachin Prabhu) [821893] - [fs] cifs: Include backup intent search flags during searches (Sachin Prabhu) [821893] - [fs] ext4: fix label jump on broken fs in ext4_fill_super (Lukas Czerner) [1266862] {CVE-2015-8324} - [fs] xfs: return errors from partial I/O failures to files (David Jeffery) [1270959] - [fs] cifs: Make echo interval tunable (Sachin Prabhu) [1234960] - [fs] xfs: don't perform discard if the given range length is less than block size (Bill O'Donnell) [1088688] - [fs] xfs: check for possible overflow in xfs_ioc_trim (Bill O'Donnell) [1088688] - [fs] gfs2: Reduce size of incore inode (Robert S Peterson) [1215794] - [fs] gfs2: Make rgrp reservations part of the gfs2_inode structure (Robert S Peterson) [1215794] - [fs] gfs2: Extract quota data from reservations structure (revert 5407e24) (Robert S Peterson) [1215794] - [fs] gfs2: Clean up reservation removal (Robert S Peterson) [1215794]- [x86] fix corruption of XMM registers when interrupt handlers use FPU (Mikulas Patocka) [1259023] - [x86] ftrace: Do not trace copy_user_generic (Steven Rostedt) [1278884] - [x86] MCE/intel: Cleanup CMCI storm logic (Prarit Bhargava) [1229510] - [netdrv] be2net: log link status (Ivan Vecera) [1191287] - [netdrv] ixgbe: Remove bimodal SR-IOV disabling (John Greene) [1205576] - [mm] vmscan: avoid OOM killing when swappiness == 0 (Jerome Marchand) [1126228] - [pm] hibernate: Enable suspend to both for in-kernel hibernation (Lenny Szubowicz) [910715] - [powercap] rapl: fix BIOS lock check (Steve Best) [1295818] - [infiniband] qib: Change lkey table allocation to support more MRs (Don Dutile) [1246059 1247981] - [block] nvme: default to 4k device page size (David Milburn) [1252733] - [firmware] add bnx2x FW 7.13.1.0 (Michal Schmidt) [1252126] - [firmware] add bnx2x FW 7.12.30 (Michal Schmidt) [1252126] - [video] efifb: Enable write-combining (Tomoaki Nishimura) [1290686] - [tracing] Fix lockdep warning in global_clock (Steven Rostedt) [1232081] - [perf] symbols: Fix endless loop in dso__split_kallsyms_for_kcore (Jiri Olsa) [1233243] - [kernel] ftrace: Fix function graph with loading of modules (Steven Rostedt) [1033299] - [tty] change WARN_ON() on tty_reopen() (Aristeu Rozanski) [1263035] - [kernel] compat: copy missing fields in compat_statfs64 to user (Dave Anderson) [1158963] - [kernel] Usage of cgroup names containing percent characters triggers kernel panic (Larry Woodman) [1064788] - [kernel] signal: remove warning about using SI_TKILL in rt_[tg]sigqueueinfo (Oleg Nesterov) [1252216] - [kernel] utrace: move utrace->freeze_stop to work around gcc 52080 bug (Oleg Nesterov) [1031159] - [block] Always check queue limits for cloned requests (Mike Snitzer) [1229911] - [block] Return EBUSY from BLKRRPART for mounted whole-dev fs (Eric Sandeen) [1247057] - [ata] SATL compliance for Inquiry Product Revision (David Milburn) [1260694] - [scsi] report 'INQUIRY result too short' once per host (Vitaly Kuznetsov) [1208771] - [scsi] scsi_scan: don't dump trace when scsi_prep_async_scan is called twice (Vitaly Kuznetsov) [1208771] - [scsi] libiscsi: Fix host busy blocking during connection teardown (Chris Leech) [948886] - [scsi] mpt3sas: A correction in unmap_resources (Tomas Henzl) [1248810] - [scsi] mpt3sas: fix for a PTE Read access errors with IOMMU passthrough (Tomas Henzl) [1276662] - [scsi] mpt3sas: create two binaries from a single source (Tomas Henzl) [1248810] - [scsi] mpt3sas: fix Kconfig dependency problem for mpt2sas back compatibility (Tomas Henzl) [1248810] - [scsi] mpt3sas: Add dummy Kconfig option for backwards compatibility (Tomas Henzl) [1248810] - [scsi] mpt3sas: Fix use sas_is_tlr_enabled API before enabling MPI2_SCSIIO_CONTROL_TLR_ON flag (Tomas Henzl) [1248810] - [scsi] mpt3sas: fix inline markers on non inline function declarations (Tomas Henzl) [1248810] - [scsi] mpt3sas: Bump mpt3sas driver version to 09.102.00.00 (Tomas Henzl) [1248810] - [scsi] mpt3sas: Single driver module which supports both SAS 2.0 & SAS 3.0 HBAs (Tomas Henzl) [1248810] - [scsi] mpt2sas, mpt3sas: Update the driver versions (Tomas Henzl) [1248810] - [scsi] mpt3sas: setpci reset kernel oops fix (Tomas Henzl) [1248810] - [scsi] mpt3sas: Added OEM Gen2 PnP ID branding names (Tomas Henzl) [1248810] - [scsi] mpt3sas: Refcount fw_events and fix unsafe list usage (Tomas Henzl) [1248810] - [scsi] mpt3sas: Refcount sas_device objects and fix unsafe list usage (Tomas Henzl) [1248810] - [scsi] mpt3sas: sysfs attribute to report Backup Rail Monitor Status (Tomas Henzl) [1248810] - [scsi] mpt3sas: Ported WarpDrive product SSS6200 support (Tomas Henzl) [1248810] - [scsi] mpt3sas: fix for driver fails EEH, recovery from injected pci bus error (Tomas Henzl) [1248810] - [scsi] mpt3sas: Manage MSI-X vectors according to HBA device type (Tomas Henzl) [1248810] - [scsi] mpt3sas: Don't send PHYDISK_HIDDEN RAID action request on SAS2 HBAs (Tomas Henzl) [1248810] - [scsi] mpt3sas: Build MPI SGL LIST on GEN2 HBAs and IEEE SGL LIST on GEN3 HBAs (Tomas Henzl) [1248810] - [scsi] mpt2sas, mpt3sas: Remove SCSI_MPTXSAS_LOGGING entry from Kconfig (Tomas Henzl) [1248810] - [scsi] mpt3sas: Define 'hba_mpi_version_belonged' IOC variable (Tomas Henzl) [1248810] - [scsi] mpt2sas: Remove .c and .h files from mpt2sas driver (Tomas Henzl) [1248810] - [scsi] mpt2sas: Move Gen2 HBA's device registration to a separate file (Tomas Henzl) [1248810] - [scsi] mpt3sas: Move Gen3 HBA's device registration to a separate file (Tomas Henzl) [1248810] - [scsi] mpt3sas: Added mpt2sas driver definitions (Tomas Henzl) [1248810] - [scsi] mpt2sas: Use mpi headers from mpt3sas (Tomas Henzl) [1248810] - [scsi] mpt2sas: setpci reset kernel oops fix (Tomas Henzl) [1248810] - [scsi] mpt2sas: Refcount fw_events and fix unsafe list usage (Tomas Henzl) [1248810] - [scsi] mpt2sas: Refcount sas_device objects and fix unsafe list usage (Tomas Henzl) [1248810] - [scsi] mpt3sas: Bump mpt3sas driver version to 9.100.00.00 (Tomas Henzl) [1248810] - [scsi] mpt3sas: When device is blocked followed by unblock fails, unfreeze the I/Os (Tomas Henzl) [1248810] - [scsi] mpt3sas: Call dma_mapping_error() API after mapping an address with dma_map_single() API (Tomas Henzl) [1248810] - [scsi] mpt3sas: Use alloc_ordered_workqueue() API instead of create_singlethread_workqueue() API (Tomas Henzl) [1248810] - [scsi] mpt3sas: Added support for customer specific branding (Tomas Henzl) [1248810] - [scsi] mpt3sas: Return host busy error status to SML when DMA mapping of scatter gather list fails for a SCSI command (Tomas Henzl) [1248810] - [scsi] mpt3sas: Complete the SCSI command with DID_RESET status for log_info value 0x0x32010081 (Tomas Henzl) [1248810] - [scsi] mpt3sas: MPI 2.5 Rev K (2.5.6) specifications (Tomas Henzl) [1248810] - [scsi] mpt3sas: Bump mpt3sas driver version to v6.100.00.00 (Tomas Henzl) [1248810] - [scsi] mpt3sas: Add branding string support for OEM custom HBA (Tomas Henzl) [1248810] - [scsi] mpt3sas: Add branding string support for OEM's HBA (Tomas Henzl) [1248810] - [scsi] mpt3sas: MPI 2.5 Rev J (2.5.5) specification and 2.00.34 header files (Tomas Henzl) [1248810] - [scsi] mpt3sas: Update MPI2 strings to MPI2.5 (Tomas Henzl) [1248810] - [scsi] mpt3sas: Bump mpt3sas Driver version to v5.100.00.00 (Tomas Henzl) [1248810] - [scsi] mpt3sas: Provides the physical location of sas drives (Tomas Henzl) [1248810] - [scsi] mpt3sas: MPI 2.5 Rev I (2.5.4) specifications (Tomas Henzl) [1248810] - [scsi] mpt3sas: Remove redundancy code while freeing the controller resources (Tomas Henzl) [1248810] - [scsi] mpt3sas: Don't block the drive when drive addition under the control of SML (Tomas Henzl) [1248810] - [scsi] mpt3sas: Get IOC_FACTS information using handshake protocol only after HBA card gets into READY or Operational state (Tomas Henzl) [1248810] - [scsi] mpt3sas: Added Combined Reply Queue feature to extend up-to 96 MSIX vector support (Tomas Henzl) [1248810] - [scsi] mpt2sas, mpt3sas: Abort initialization if no memory I/O resources detected (Tomas Henzl) [1248810] - [security] keys: Fix race between read and revoke (David Howells) [1293402] {CVE-2015-7550}- [netdrv] igb: improve handling of disconnected adapters (Stefan Assmann) [1249242] - [netdrv] igb: fix NULL derefs due to skipped SR-IOV enabling (Stefan Assmann) [1249242] - [netdrv] igb: use the correct i210 register for EEMNGCTL (Stefan Assmann) [1249242] - [netdrv] igb: don't unmap NULL hw_addr (Stefan Assmann) [1249242] - [netdrv] igb: add 88E1543 initialization code (Stefan Assmann) [1249242] - [netdrv] intel: use napi_complete_done (Stefan Assmann) [1249242] - [netdrv] igb: assume MSI-X interrupts during initialization (Stefan Assmann) [1249242] - [netdrv] igb: make sure SR-IOV init uses the right number of queues (Stefan Assmann) [1249242] - [netdrv] igb: Fix a memory leak in igb_probe (Stefan Assmann) [1249242] - [netdrv] igb: Fix a deadlock in igb_sriov_reinit (Stefan Assmann) [1249242] - [netdrv] igb: Teardown SR-IOV before unregister_netdev (Stefan Assmann) [1249242] - [netdrv] igb: do not re-init SR-IOV during probe (Stefan Assmann) [1249242] - [netdrv] igb: missing rtnl_unlock in igb_sriov_reinit (Stefan Assmann) [1249242] - [netdrv] igb: Fix oops caused by missing queue pairing (Stefan Assmann) [1249242] - [netdrv] igb: bump version to igb-5.3.0 (Stefan Assmann) [1249242] - [netdrv] igb: use ARRAY_SIZE to replace calculating sizeofa/sizeof a0 (Stefan Assmann) [1249242] - [netdrv] igb: report unsupported ethtool settings in set_coalesce (Stefan Assmann) [1249242] - [netdrv] igb: Fix i354 88E1112 PHY on RCC boards using AutoMediaDetect (Stefan Assmann) [1249242] - [netdrv] igb: only report generic filters in get_ts_info (Stefan Assmann) [1249242] - [netdrv] igb: bump version of igb to 5.2.18 (Stefan Assmann) [1249242] - [netdrv] igb: disable IPv6 extension header processing (Stefan Assmann) [1249242] - [netdrv] igb: Don't use NETDEV_FRAG_PAGE_MAX_SIZE in descriptor calculation (Stefan Assmann) [1249242] - [netdrv] igb: Fix NULL assignment to incorrect variable in igb_reset_q_vector (Stefan Assmann) [1249242] - [netdrv] igb: Fix oops on changing number of rings (Stefan Assmann) [1249242] - [netdrv] igb: simplify and clean up igb_enable_mas (Stefan Assmann) [1249242] - [netdrv] igb: use netif_carrier_off earlier when bringing if down (Stefan Assmann) [1249242] - [netdrv] codespell comment spelling fixes (Stefan Assmann) [1249242] - [ethernet] igb: use netdev_rss_key_fill helper (Stefan Assmann) [1249242] - [pci] iommu/vt-d: Fix dmar_domain leak in iommu_attach_device (Linda Knippers) [1053879] - [pci] iommu/vt-d: Only remove domain when device is removed (Linda Knippers) [1053879] - [kernel] driver core: Add BUS_NOTIFY_REMOVED_DEVICE event (Linda Knippers) [1053879] - [net] tcp: honour SO_BINDTODEVICE for TW_RST case too (Florian Westphal) [1292300] - [net] add inet_sk_transparent() helper (Florian Westphal) [1292300] - [net] ipv6: tcp_ipv6 policy route issue (Florian Westphal) [1292300] - [net] ipv6: reuse rt6_need_strict (Florian Westphal) [1292300] - [net] tcp: resets are misrouted (Florian Westphal) [1292300] - [net] tcp: tcp_v4_send_reset: binding oif to iif in no sock case (Florian Westphal) [1292300] - [net] af_unix: fix a fatal race with bit fields (Gustavo Duarte) [1238062] - [net] add validation for the socket syscall protocol argument (Hannes Frederic Sowa) [1291627] {CVE-2015-8543} - [net] ipv6: fix the incorrect return value of throw route (Sabrina Dubroca) [1245357] - [net] Fix behaviour of unreachable, blackhole and prohibit routes (Sabrina Dubroca) [1245357] - [net] ipv6: Fixed support for blackhole and prohibit routes (Sabrina Dubroca) [1245357] - [net] ipv6: fix handling of throw routes (Sabrina Dubroca) [1245357] - [net] ipv6: fix handling of blackhole and prohibit routes (Sabrina Dubroca) [1245357] - [netdrv] intel: use napi_complete_done (Stefan Assmann) [1249243] - [netdrv] igbvf: clear buffer_info->dma after dma_unmap_single (Stefan Assmann) [1249243] - [netdrv] igbvf: use netif_carrier_off earlier when bringing if down (Stefan Assmann) [1249243] - [netdrv] igbvf: cleanup msleep and min/max usage (Stefan Assmann) [1249243] - [netdrv] igbvf: Fix code comments and whitespace (Stefan Assmann) [1249243] - [i2c] i801: Add device ID for Intel Wildcat Point PCH (Jeremy McNicoll) [1291132] - [sound] alsa: Enable CONFIG_SND_HDA_PATCH_LOADER and CONFIG_SND_HDA_RECONFIG (Jaroslav Kysela) [1178178] - [sound] alsa: driver core: create write-only attribute macros for devices and drivers (Jaroslav Kysela) [1178178] - [sound] alsa: oxygen: Simplify PM callbacks (Jaroslav Kysela) [1024771] - [sound] alsa: Convert to new pm_ops for PCI drivers (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: Fix logical-not-parentheses warning (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: add XIO2001 initialization (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: add support for third analog input (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: do not create useless S/PDIF controls (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: Delete an unnecessary check before the function call "snd_pcm_suspend" (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: Remove unnecessary snd_pcm_lib_preallocate_free_for_all (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: set fifo_size (Jaroslav Kysela) [1024771] - [sound] alsa: virtuoso: add partial Xonar Xense support (Jaroslav Kysela) [1024771] - [sound] alsa: virtuoso: add Xonar Essence STX II daughterboard support (Jaroslav Kysela) [1024771] - [sound] alsa: virtuoso: add one more headphone impedance setting (Jaroslav Kysela) [1024771] - [sound] alsa: virtuoso: add Xonar Essence STX II support (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dgx: fix Stereo Upmixing regression (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: Use standard printk helpers (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dgx: cleanup and minor changes (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dgx: modify high-pass filter control (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dgx: modify input select functions (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dgx: modify capture volume functions (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dg(x): use headphone volume control (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dg(x): modify playback output select (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dgx: capture from I2S channel 1, not 2 (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dg(x): move the mixer code into another file (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: modify CS4245 register dumping function (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: modify adjust_dg_dac_routing function (Jaroslav Kysela) [1024771] - [sound] ALSA: oxygen: Xonar DG X: modify DAC/ADC parameters function (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dgx: modify initialization functions (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: xonar dg: add new CS4245 SPI functions (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: additional definitions for the Xonar DG/DGX card (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: change description of the xonar_dg.c file (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: export oxygen_update_dac_routing symbol (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: add mute mask for the OXYGEN_PLAY_ROUTING register (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: modify the SPI writing function (Jaroslav Kysela) [1024771] - [sound] alsa: oxygen: add the separate SPI waiting function (Jaroslav Kysela) [1024771] - [sound] alsa: virtuoso: Xonar DSX support (Jaroslav Kysela) [1024771] - [netdrv] bnxt_en: Implement missing tx timeout reset logic (John Linville) [1245739] - [netdrv] bnxt_en: Don't cancel sp_task from bnxt_close_nic (John Linville) [1245739] - [netdrv] bnxt_en: Change bp->state to bitmap (John Linville) [1245739] - [netdrv] bnxt_en: Fix bitmap declaration to work on 32-bit arches (John Linville) [1245739] - [netdrv] bnxt_en: Setup uc_list mac filters after resetting the chip (John Linville) [1245739] - [netdrv] bnxt_en: enforce proper storing of MAC address (John Linville) [1245739] - [netdrv] bnxt_en: Fixed incorrect implementation of ndo_set_mac_address (John Linville) [1245739] - [netdrv] bnxt_en: More robust SRIOV cleanup sequence (John Linville) [1245739] - [netdrv] bnxt_en: Fix comparison of u16 sw_id against negative value (John Linville) [1245739] - [netdrv] bnxt_en: map CAG_REG_LEGACY_INT_STATUS_MASK to GRC window #4 (John Linville) [1245739] - [netdrv] bnxt_en: Determine tcp/ipv6 RSS hash type correctly (John Linville) [1245739] - [netdrv] bnxt_en: Change sp events definitions to represent bit position (John Linville) [1245739] - [netdrv] bnxt_en: Fix compile warnings when CONFIG_INET is not set (John Linville) [1245739] - [netdrv] bnxt_en: Fix compile errors when CONFIG_BNXT_SRIOV is not set (John Linville) [1245739] - [netdrv] add config for BNXT (John Linville) [1245739] - [netdrv] bnxt: remove vxlan offload support (John Linville) [1245739] - [netdrv] bnxt: account for lack of 'net: Add support for hardware-offloaded...' (John Linville) [1245739] - [netdrv] bnxt: account for lack of 'hlist: drop the node parameter from iterators' (John Linville) [1245739] - [netdrv] bnxt: account for lack of 'net: allocate tx queues in register_netdevice' (John Linville) [1245739] - [netdrv] bnxt: access msix_cap through struct pci_dev_rh1 (John Linville) [1245739] - [netdrv] bnxt: account for lack of 'net: convert multicast list to list_head' (John Linville) [1245739] - [netdrv] bnxt: account for lack of 'net: introduce IFF_UNICAST_FLT private flag' (John Linville) [1245739] - [netdrv] bnxt: account for lack of 'ipip: add GSO/TSO support' (John Linville) [1245739] - [netdrv] bnxt: account for lack of 'ipv6: sit: add GSO/TSO support' (John Linville) [1245739] - [netdrv] bnxt: access hw_features through netdev_extended macro (John Linville) [1245739] - [netdrv] bnxt: create bnxt_pci_driver_rh and add appropriate declarations (John Linville) [1245739] - [netdrv] bnxt: account for missing 'net: Clarification of CHECKSUM_UNNECESSARY' (John Linville) [1245739] - [netdrv] bnxt: create bnxt_netdev_opt_ext and move applicable declarations (John Linville) [1245739] - [netdrv] bnxt: adjust for lack of 'net: Pull out core bits of __netdev_alloc_skb...' (John Linville) [1245739] - [netdrv] bnxt: adjust for lack of 'net: Add GSO support for UDP tunnels...' (John Linville) [1245739] - [netdrv] bnxt: adjust for lack of 'net: allow skb->head to be a page fragment' (John Linville) [1245739] - [netdrv] bnxt: remove qos offload support (John Linville) [1245739] - [netdrv] bnxt: make necessary changes for ndo_busy_poll in rhel6 (John Linville) [1245739] - [netdrv] bnxt: remove 802.1ad bits (John Linville) [1245739] - [netdrv] bnxt: move some bits to ethtool_ops_ext structure for rhel6 (John Linville) [1245739] - [netdrv] bnxt: account for lack of 'ethtool: Clean up definitions of rule...' (John Linville) [1245739] - [netdrv] bnxt: account for lack of VF minimum Tx rate (John Linville) [1245739] - [netdrv] bnxt: rewrite flow dissector bits for RHEL 6.8 (John Linville) [1245739] - [netdrv] bnxt: relocate files to be consistent with other ethernet drivers (John Linville) [1245739] - [netdrv] bnxt_en: New Broadcom ethernet driver (John Linville) [1245739]- [net] export get_net_ns_by_fd() (Ivan Vecera) [1249638] - [net] add name_assign_type netdev attribute (Ivan Vecera) [1249638] - [kernel] ktime: Introduce ktime_ms_delta (Ivan Vecera) [1249638] - [kernel] list: use list_{first, last}_entry() (Ivan Vecera) [1249638] - [kernel] list: change list_for_each_entry*() to use list_*_entry() (Ivan Vecera) [1249638] - [sched] replace INIT_COMPLETION with reinit_completion (Ivan Vecera) [1249638] - [net] help compiler generate better code in eth_get_headlen (Ivan Vecera) [1249638] - [net] Add function for parsing the header length out of linear ethernet frames (Ivan Vecera) [1249638] - [net] make skb an optional parameter for__skb_flow_dissect() (Ivan Vecera) [1249638] - [net] Allow raw buffers to be passed into the flow dissector (Ivan Vecera) [1249638] - [net] sched: shrink struct qdisc_skb_cb to 28 bytes (Ivan Vecera) [1249638] - [net] flow_dissector: Use IPv6 flow label in flow_dissector (Ivan Vecera) [1249638] - [net] flow_dissector: Record IP layer protocol in skb_flow_dissect() (Ivan Vecera) [1249638] - [net] ipv6: add ip6_flowlabel helper (Ivan Vecera) [1249638] - [net] flow_dissector: factor out the ports extraction in skb_flow_get_ports (Ivan Vecera) [1249638] - [net] flow_dissector: fix thoff for IPPROTO_AH (Ivan Vecera) [1249638] - [net] introduce skb_probe_transport_header() (Ivan Vecera) [1249638] - [net] flow_dissector: add __skb_get_poff to get a start offset to payload (Ivan Vecera) [1249638] - [net] flow_keys: include thoff into flow_keys for later usage (Ivan Vecera) [1249638] - [net] flow_dissector: support L2 GRE (Ivan Vecera) [1249638] - [net] introduce skb_transport_header_was_set() (Ivan Vecera) [1249638] - [net] ethtool: documentation & whitespace errors (Ivan Vecera) [1249638] - [net] ethtool: Support for configurable RSS hash function (Ivan Vecera) [1249638] - [net] ethtool: Check that reserved fields of struct ethtool_rxfh are 0 (Ivan Vecera) [1249638] - [net] ethtool: Replace ethtool_ops::{get, set}_rxfh_indir() with {get, set}_rxfh() (Ivan Vecera) [1249638] - [net] ethtool: constify array pointer parameters to ethtool_ops::set_rxfh (Ivan Vecera) [1249638] - [net] ethtool: Disallow ETHTOOL_SRSSH with both indir table and hash key unchanged (Ivan Vecera) [1249638] - [net] ethtool: Expand documentation of ethtool_ops::{get, set}_rxfh() (Ivan Vecera) [1249638] - [net] ethtool: Improve explanation of the two arrays following struct ethtool_rxfh (Ivan Vecera) [1249638] - [net] ethtool: Name the 'no change' value for setting RSS hash key but not indir table (Ivan Vecera) [1249638] - [net] ethtool: Return immediately on error in ethtool_copy_validate_indir() (Ivan Vecera) [1249638] - [net] ethtool: exit the loop when invalid index occurs (Ivan Vecera) [1249638] - [net] gro: fix possible panic in skb_gro_receive() (Ivan Vecera) [1249638] - [net] gro: selective flush of packets (Ivan Vecera) [1249638] - [net] gro: add a per device gro flush timer (Ivan Vecera) [1249638] - [net] introduce extended napi_struct (Ivan Vecera) [1249638] - [netdrv] ethernet: Use eth__addr instead of memset (Ivan Vecera) [1249638] - [netdrv] remove init of dev->perm_addr in drivers (Ivan Vecera) [1249638] - [net] init perm_addr in register_netdevice() (Ivan Vecera) [1249638] - [net] rename vlan_tx_* helpers since "tx" is misleading there (Ivan Vecera) [1249638] - [net] ethtool: Added port speed macros (Ivan Vecera) [1249638]- [scsi] scsi_sysfs: Fix queue_ramp_up_period return code (Ewan Milne) [1292576] - [scsi] Increase REPORT_LUNS timeout (Ewan Milne) [1292576] - [scsi] retry MODE SENSE on unit attention (Ewan Milne) [1292576] - [scsi] bnx2fc: Update version number to 2.9.6 (Maurizio Lombardi) [1252118] - [scsi] bnx2fc: Remove explicit logouts (Maurizio Lombardi) [1252118] - [scsi] bnx2fc: Fix FCP RSP residual parsing (Maurizio Lombardi) [1252118] - [scsi] bnx2fc: Set ELS transfer length correctly for middle path commands (Maurizio Lombardi) [1252118] - [scsi] bnx2fc: Remove 'NetXtreme II' from source files (Maurizio Lombardi) [1252118] - [scsi] bnx2fc: Update copyright for 2015 (Maurizio Lombardi) [1252118] - [scsi] bnx2fc: reduce stack usage in __bnx2fc_enable (Maurizio Lombardi) [1252118] - [scsi] bnx2fc: Do not log error for netevents that need no action (Maurizio Lombardi) [1252118] - [scsi] bnx2fc: Read npiv table from nvram and create vports (Maurizio Lombardi) [1252118] - [scsi] Add ALUA state change UA handling (Ewan Milne) [1292520] - [scsi] fcoe: extend ethtool to FC port speed mapping (Chris Leech) [1138403] - [scsi] scsi_transport_fc: Add support for 25Gbit speed (Chris Leech) [1138403] - [scsi] add defines for new FC port speeds (Chris Leech) [1138403] - [scsi] scsi_transport_fc: Add 32Gbps speed definition (Chris Leech) [1138403] - [scsi] be2iscsi: bump the driver version (Maurizio Lombardi) [1253016] - [scsi] be2iscsi: Add warning message for unsupported adapter (Maurizio Lombardi) [1253016] - [MAINTAINERS] Update MAINTAINER list (Maurizio Lombardi) [1253016] - [scsi] be2iscsi: Revert ownership to Emulex (Maurizio Lombardi) [1253016] - [scsi] be2iscsi: Fix bogus WARN_ON length check (Maurizio Lombardi) [1253016] - [scsi] be2iscsi: Fix updating the next pointer during WRB posting (Maurizio Lombardi) [1253016] - [scsi] be2iscsi: Logout of FW Boot Session (Maurizio Lombardi) [1253016] - [scsi] be2iscsi: Fix memory check before unmapping (Maurizio Lombardi) [1253016] - [scsi] be2iscsi: change email domain (Maurizio Lombardi) [1253016] - [scsi] be2iscsi: Fix the copyright year (Maurizio Lombardi) [1253016] - [scsi] st: fix potential null pointer dereference (Maurizio Lombardi) [875277] - [scsi] hpsa: stop zeroing reset_cmds_out and ioaccel_cmds_out during rescan (Joseph Szczypek) [1247729] - [scsi] hpsa: move lockup_detected attribute to host attr (Joseph Szczypek) [1247729] - [scsi] hpsa: fix rmmod issues (Joseph Szczypek) [1247729] - [scsi] hpsa: add in new offline mode (Joseph Szczypek) [1247729] - [scsi] hpsa: Change how controllers in mixed mode are handled (Joseph Szczypek) [1247729] - [scsi] hpsa: add in new controllers (Joseph Szczypek) [1247729] - [scsi] hpsa: cleanup update scsi devices (Joseph Szczypek) [1247729] - [scsi] hpsa: add sysfs entry path_info to show box and bay information (Joseph Szczypek) [1247729] - [scsi] hpsa: add PMC to copyright (Joseph Szczypek) [1247729] - [scsi] hpsa: correct static checker warnings on driver init cleanup (Joseph Szczypek) [1247729] - [scsi] hpsa: correct decode sense data (Joseph Szczypek) [1247729] - [scsi] hpsa: Correct double unlock of mutex (Joseph Szczypek) [1247729] - [scsi] hpsa: fix an sprintf() overflow in the reset handler (Joseph Szczypek) [1247729] - [scsi] hpsa: update driver version to 3.4.10-1-RH1 (Joseph Szczypek) [1247729] - [scsi] hpsa: add in new controller id (Joseph Szczypek) [1247729] - [scsi] hpsa: cleanup reset (Joseph Szczypek) [1247729] - [scsi] hpsa: propagate the error code in hpsa_kdump_soft_reset (Joseph Szczypek) [1247729] - [scsi] hpsa: use scsi host_no as hpsa controller number (Joseph Szczypek) [1247729] - [scsi] hpsa: enable and activate SCSI layer tcq support (Joseph Szczypek) [1247729] - [scsi] hpsa: use block layer tag for command allocation (Joseph Szczypek) [1247729] - [scsi] hpsa: add interrupt number to /proc/interrupts interrupt name (Joseph Szczypek) [1247729] - [scsi] hpsa: create workqueue after the driver is ready for use (Joseph Szczypek) [1247729] - [scsi] hpsa: fix try_soft_reset error handling (Joseph Szczypek) [1247729] - [scsi] hpsa: cleanup for init_one step 2 in kdump (Joseph Szczypek) [1247729] - [scsi] hpsa: skip free_irq calls if irqs are not allocated (Joseph Szczypek) [1247729] - [scsi] hpsa: call pci_release_regions after pci_disable_device (Joseph Szczypek) [1247729] - [scsi] hpsa: performance tweak for hpsa_scatter_gather() (Joseph Szczypek) [1247729] - [scsi] hpsa: refactor and rework support for sending TEST_UNIT_READY (Joseph Szczypek) [1247729] - [scsi] hpsa: don't return abort request until target is complete (Joseph Szczypek) [1247729] - [scsi] hpsa: use helper routines for finishing commands (Joseph Szczypek) [1247729] - [scsi] hpsa: add support sending aborts to physical devices via the ioaccel2 path (Joseph Szczypek) [1247729] - [scsi] hpsa: do not print ioaccel2 warning messages about unusual completions (Joseph Szczypek) [1247729] - [scsi] hpsa: clean up some error reporting output in abort handler (Joseph Szczypek) [1247729] - [scsi] hpsa: clean up driver init (Joseph Szczypek) [1247729] - [scsi] hpsa: correct return values from driver functions (Joseph Szczypek) [1247729] - [scsi] hpsa: do not check cmd_alloc return value - it cannnot return NULL (Joseph Szczypek) [1247729] - [scsi] hpsa: add more ioaccel2 error handling, including underrun statuses (Joseph Szczypek) [1247729] - [scsi] hpsa: add ioaccel sg chaining for the ioaccel2 path (Joseph Szczypek) [1247729] - [scsi] hpsa: refactor freeing of resources into more logical functions (Joseph Szczypek) [1247729] - [scsi] hpsa: clean up error handling (Joseph Szczypek) [1247729] - [scsi] hpsa: break hpsa_free_irqs_and_disable_msix into two functions (Joseph Szczypek) [1247729] - [scsi] hpsa: Get queue depth from identify physical bmic for physical disks (Joseph Szczypek) [1247729] - [scsi] hpsa: use ioaccel2 path to submit IOs to physical drives in HBA mode (Joseph Szczypek) [1247729] - [scsi] hpsa: print accurate SSD Smart Path Enabled status (Joseph Szczypek) [1247729] - [scsi] hpsa: factor out hpsa_ioaccel_submit function (Joseph Szczypek) [1247729] - [scsi] hpsa: try resubmitting down raid path on task set full (Joseph Szczypek) [1247729] - [scsi] hpsa: do not ignore return value of hpsa_register_scsi (Joseph Szczypek) [1247729] - [scsi] hpsa: factor out hpsa_init_cmd function (Joseph Szczypek) [1247729] - [scsi] hpsa: make function names consistent (Joseph Szczypek) [1247729] - [scsi] hpsa: allow lockup detected to be viewed via sysfs (Joseph Szczypek) [1247729] - [scsi] hpsa: hpsa decode sense data for io and tmf (Joseph Szczypek) [1247729] - [scsi] hpsa: decrement h->commands_outstanding in fail_all_outstanding_cmds (Joseph Szczypek) [1247729] - [scsi] hpsa: Add atomic operations (Joseph Szczypek) [1247729] - [scsi] hpsa: clean up aborts (Joseph Szczypek) [1247729] - [scsi] hpsa: rework controller command submission (Joseph Szczypek) [1247729] - [scsi] hpsa: clean up host, channel, target, lun prints (Joseph Szczypek) [1247729] - [scsi] hpsa: add masked physical devices into struct h's dev array (Joseph Szczypek) [1247729] - [scsi] hpsa: Fix weird uses of num_online_cpus() (Joseph Szczypek) [1247729] - [scsi] megaraid_sas: Fix sparse warning (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Remove debug print from function megasas_update_span_set (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Driver version upgrade (Tomas Henzl) [1248207] - [scsi] megaraid_sas: SMAP restriction--do not access user memory from IOCTL code (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Make PI enabled VD 8 byte DMA aligned (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Initialize tasklet before setting up IRQs (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Indicate online firmware upgrade support for Secure JBOD feature (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Update OCR capability on controller properties change (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Do not use PAGE_SIZE for max_sectors (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Support for Cutlass (12 Gbps) controller (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Support for Intruder (12 Gbps) controller (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Remove PCI id checks (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Version update (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Code refactor for use of requestorId (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Fix validHandles check in I/O path (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Print critical firmware event messages (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Chip reset if driver fails to get IOC ready (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Support for max_io_size 1MB (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Code cleanup-use local variable drv_ops inside megasas_ioc_init_fusion (Tomas Henzl) [1248207] - [scsi] megaraid_sas: JBOD sequence number support (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Increase timeout to 60 secs for abort frames during shutdown (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Synchronize driver headers with firmware APIs (Tomas Henzl) [1248207] - [scsi] megaraid_sas: fix whitespace errors (Tomas Henzl) [1248207] - [scsi] megaraid_sas: use dev_printk when possible (Tomas Henzl) [1248207] - [scsi] megaraid_sas: use pci_zalloc_consistent (megaraid_sas only) (Tomas Henzl) [1248207] - [scsi] megaraid_sas: fix TRUE and FALSE re-define build error (Tomas Henzl) [1248207] - [scsi] megaraid: fix irq setup process regression (Tomas Henzl) [1248207] - [scsi] megaraid_sas: fix kerneldoc (Tomas Henzl) [1248207] - [scsi] megaraid_sas: swap whole register in megasas_register_aen (Tomas Henzl) [1248207] - [scsi] megaraid_sas: fix megasas_fire_cmd_fusion calling convention (Tomas Henzl) [1248207] - [scsi] megaraid_sas: add missing byte swaps to the sriov code (Tomas Henzl) [1248207] - [scsi] megaraid_sas: bytewise or should be done on native endian variables (Tomas Henzl) [1248207] - [scsi] megaraid_sas: move endianness conversion into caller of megasas_get_seq_num (Tomas Henzl) [1248207] - [scsi] megaraid_sas: add endianness conversions for all ones (Tomas Henzl) [1248207] - [scsi] megaraid_sas: add endianness annotations (Tomas Henzl) [1248207] - [scsi] megaraid_sas: add missing __iomem annotations (Tomas Henzl) [1248207] - [scsi] megaraid_sas: megasas_complete_outstanding_ioctls() can be static (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Support for Avago's Single server High Availability product (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Add release date and update driver version (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Modify driver's meta data to reflect Avago (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Use Block layer tag support for internal command indexing (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Enhanced few prints (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Move controller's queue depth calculation in adapter specific function (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Add separate functions for building sysPD IOs and non RW LDIOs (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Add separate function for refiring MFI commands (Tomas Henzl) [1248207] - [scsi] megaraid_sas: Add separate function for setting up IRQs (Tomas Henzl) [1248207] - [scsi] megaraid_sas: use raw_smp_processor_id() (Tomas Henzl) [1248207] - [scsi] qla2xxx: Update version number to 8.07.00.26.06.8-k (Chad Dupuis) [1252111] - [scsi] qla2xxx: Add pci device id 0x2261 (Chad Dupuis) [1252111] - [scsi] qla2xxx: Fix missing device login retries (Chad Dupuis) [1252111] - [scsi] qla2xxx: do not clear slot in outstanding cmd array (Chad Dupuis) [1252111] - [scsi] qla2xxx: Remove decrement of sp reference count in abort handler (Chad Dupuis) [1252111] - [scsi] qla2xxx: Add support to show MPI and PEP FW version for ISP27xx (Chad Dupuis) [1252111] - [scsi] qla2xxx: Do not reset adapter if SRB handle is in range (Chad Dupuis) [1252111] - [scsi] qla2xxx: Do not crash system for sp ref count zero (Chad Dupuis) [1252111] - [scsi] qla2xxx: Add adapter checks for FAWWN functionality (Chad Dupuis) [1252111] - [scsi] qla2xxx: Pause risc before manipulating risc semaphore (Chad Dupuis) [1252111] - [scsi] qla2xxx: Use ssdid to gate semaphore manipulation (Chad Dupuis) [1252111] - [scsi] qla2xxx: Handle AEN8014 incoming port logout (Chad Dupuis) [1252111] - [scsi] qla2xxx: Add serdes register read/write support for ISP25xx (Chad Dupuis) [1252111] - [scsi] qla2xxx: Remove dead code (Chad Dupuis) [1252111] - [scsi] qla2xxx: Remove a superfluous test (Chad Dupuis) [1252111] - [scsi] qla2xxx: Avoid that sparse complains about duplicate _noderef_ attributes (Chad Dupuis) [1252111] - [scsi] qla2xxx: Report both rsp_info and rsp_info_len (Chad Dupuis) [1252111] - [scsi] qla2xxx: Restore physical port WWPN only, when port down detected for FA-WWPN port (Chad Dupuis) [1252111] - [scsi] qla2xxx: Fix virtual port configuration, when switch port is disabled/enabled (Chad Dupuis) [1252111] - [scsi] qla2xxx: Prevent multiple firmware dump collection for ISP27XX (Chad Dupuis) [1252111] - [scsi] qla2xxx: Disable Interrupt handshake for ISP27XX (Chad Dupuis) [1252111] - [scsi] qla2xxx: Add debugging info for MBX timeout (Chad Dupuis) [1252111] - [scsi] qla2xxx: Add serdes read/write support for ISP27XX (Chad Dupuis) [1252111] - [scsi] qla2xxx: Add udev notification to save fw dump for ISP27XX (Chad Dupuis) [1252111] - [scsi] qla2xxx: Add message for sucessful FW dump collected for ISP27XX (Chad Dupuis) [1252111] - [scsi] qla2xxx: Fix beacon blink for ISP27XX (Chad Dupuis) [1252111] - [scsi] qla2xxx: Fix crash due to wrong casting of reg for ISP27XX (Chad Dupuis) [1252111] - [scsi] qla2xxx: Fix warnings reported by static checker (Chad Dupuis) [1252111] - [scsi] qla2xxx: Fix printks in ql_log message (Chad Dupuis) [1252111] - [scsi] qla2xxx: Fix printk in qla25xx_setup_mode (Chad Dupuis) [1252111] - [scsi] qla2xxx: Increase the request queue size to 8K for ISP2031 (Chad Dupuis) [1252111] - [scsi] qla2xxx: Increase room in request queue for sending priority packets (Chad Dupuis) [1252111] - [scsi] ses: Fix problems with simple enclosures (Ewan Milne) [1102140] - [scsi] scsi_dh_alua: fix stpg sense handling (Ewan Milne) [1194984] - [scsi] lpfc: driver update for Rhel6.8, lpfc rev 11.0.0.4 (Rob Evers) [1227036] - [scsi] lpfc: Fix default RA_TOV and ED_TOV in the FC/FCoE driver for all topologies (Rob Evers) [1227036] - [scsi] lpfc: The linux driver does not reinitiate discovery after a failed FLOGI (Rob Evers) [1227036] - [scsi] lpfc: Add support for Lancer G6 and 32G FC links (Rob Evers) [1227036] - [scsi] lpfc: Fix for discovery failure in PT2PT when FLOGI's ELS ACC response gets aborted (Rob Evers) [1227036] - [scsi] lpfc: fix lpfc_send_rscn_event sends bigger buffer size (Rob Evers) [1227036] - [scsi] lpfc: Make the function lpfc_sli4_mbox_completions_pending static in order to comply with function prototype (Rob Evers) [1227036] - [scsi] lpfc: Fix kmalloc overflow in LPFC driver at large core count (Rob Evers) [1227036] - [scsi] lpfc: Destroy lpfc_hba_index IDR on module exit (Rob Evers) [1227036] - [scsi] lpfc: in sli3 use configured sg_seg_cnt for sg_tablesize (Rob Evers) [1227036] - [scsi] lpfc: Remove unnessary cast (Rob Evers) [1227036] - [scsi] lpfc: fix model description (Rob Evers) [1227036] - [scsi] lpfc: Use && instead of & for boolean expression (Rob Evers) [1227036] - [scsi] lpfc: Fix to drop PLOGIs from fabric node till LOGO processing completes (Rob Evers) [1227036] - [scsi] lpfc: Fix scsi task management error message (Rob Evers) [1227036] - [scsi] lpfc: Fix scsi prep dma buf error (Rob Evers) [1227036] - [scsi] lpfc: Devices are not discovered during takeaway/giveback testing (Rob Evers) [1227036] - [scsi] lpfc: Fix vport deletion failure (Rob Evers) [1227036] - [scsi] lpfc: Fix incorrect log message reported for empty FCF record (Rob Evers) [1227036] - [scsi] lpfc: Fix rport leak (Rob Evers) [1227036] - [scsi] lpfc: Correct loss of RSCNs during array takeaway/giveback testing (Rob Evers) [1227036] - [scsi] lpfc: Fix crash in vport_delete (Rob Evers) [1227036] - [scsi] lpfc: Fix to remove IRQF_SHARED flag for MSI/MSI-X vectors (Rob Evers) [1227036] - [scsi] lpfc: Fix discovery issue when changing from Pt2Pt to Fabric (Rob Evers) [1227036] - [scsi] lpfc: Correct reporting of vport state on fdisc command failure (Rob Evers) [1227036] - [scsi] lpfc: Fix ABORTs WQ selection in terminate_rport_io (Rob Evers) [1227036] - [scsi] lpfc: Correct reference counting of rport (Rob Evers) [1227036] - [scsi] lpfc: Fix cq_id masking problem (Rob Evers) [1227036] - [netdrv] revert "netxen: remove use of ndo_set_multicast_list in drivers" (Tony Camuso) [1213207 1229986]- [netdrv] bonding: "primary_reselect" with "failure" is not working properly (Jarod Wilson) [1290672]- [net] sctp: start t5 timer only when peer rwnd is 0 and local state is SHUTDOWN_PENDING (Xin Long) [855392] - [net] sctp: convert sack_needed and sack_generation to bits (Xin Long) [855392] - [net] sctp: only drop the reference on the datamsg after sending a msg (Xin Long) [1008268] - [net] sctp: hold the chunks only after the chunk is enqueued in outq (Xin Long) [1008268] - [net] unix: avoid use-after-free in ep_remove_wait_queue (Paolo Abeni) [1284900] - [net] Abstract default ADVMSS behind an accessor (Sabrina Dubroca) [1198374] - [net] ipv6: Dont add RT6_LOOKUP_F_IFACE flag if saddr set (Xin Long) [1273241] - [net] ipv6: Add RT6_LOOKUP_F_IFACE flag if oif is set (Xin Long) [1273241] - [i2c] i801: Create iTCO device on newer Intel PCHs (Jeremy McNicoll) [1188865] - [watchdog] itco_wdt: Expose watchdog properties using platform data (Jeremy McNicoll) [1188865] - [watchdog] itco_wdt: Add support for TCO on Intel Sunrisepoint (Jeremy McNicoll) [1188865] - [kernel] Platform device - introduce resNdata (Jeremy McNicoll) [1188865] - [i2c] i801: Check if interrupts are disabled (Jeremy McNicoll) [1188865] - [i2c] i801: Fallback to polling if request_irq() fails (Jeremy McNicoll) [1188865] - [i2c] i2c-i801: Enable IRQ for SMBus transactions (Jeremy McNicoll) [1188865] - [i2c] i2c-i801: Rename some SMBHSTCNT bit constants (Jeremy McNicoll) [1188865] - [i2c] i2c-i801: Check and return errors during byte-by-byte transfers (Jeremy McNicoll) [1188865] - [i2c] i2c-i801: Use usleep_range to wait for command completion (Jeremy McNicoll) [1188865] - [mfd] Add platform data pointer back (Jeremy McNicoll) [1188865] - [char] random: account for entropy loss due to overwrites (Herbert Xu) [1110915] - [char] random: allow fractional bits to be tracked (Herbert Xu) [1110915] - [char] random: statically compute poolbitshift, poolbytes, poolbits (Herbert Xu) [1110915] - [crypto] api: Only abort operations on fatal signal (Herbert Xu) [1272314] - [crypto] testmgr: don't use interruptible wait in tests (Herbert Xu) [1272314] - [kernel] sched: add wait_for_completion_killable_timeout (Herbert Xu) [1272314] - [fs] lockd: don't clear sm_monitored on nsm_reboot_lookup (Scott Mayhew) [1278932] - [fs] lockd: release reference to nsm_handle in nlm_host_rebooted (Scott Mayhew) [1278932] - [fs] ext2: Fix oops in ext2_get_block() called from ext2_quota_write() (Lukas Czerner) [1287165] - [fs] ext3: Don't check quota format when there are no quota files (Lukas Czerner) [1287165] - [fs] jbd2: use GFP_NOFS in jbd2_cleanup_journal_tail() (Lukas Czerner) [1286668] - [fs] ext4: fix race between truncate and __ext4_journalled_writepage() (Lukas Czerner) [1286668] - [fs] ext4: bail out from make_indexed_dir() on first error (Lukas Czerner) [1286668] - [fs] ext4: don't check quota format when there are no quota files (Lukas Czerner) [1286668] - [fs] ext4: fix BUG_ON in mb_free_blocks() (Lukas Czerner) [1286668] - [fs] ext4: fix ext4_discard_allocated_blocks() if we can't allocate the pa struct (Lukas Czerner) [1286668] - [fs] ext4: cleanup in ext4_discard_allocated_blocks() (Lukas Czerner) [1286668] - [fs] ext4: check for zero length extent explicitly (Lukas Czerner) [1286668] - [fs] ext4: check for overlapping extents in ext4_valid_extent_entries() (Lukas Czerner) [1286668] - [fs] ext4: don't allow ext4_free_blocks() to fail due to ENOMEM (Lukas Czerner) [1286668] - [fs] ext4: Add error checking to kmem_cache_alloc() call in ext4_free_blocks() (Lukas Czerner) [1286668] - [fs] ext3, ext4: don't mess with dir_file->f_pos in htree_dirblock_to_tree() (Lukas Czerner) [1286668] - [fs] ext4: fix potential deadlock in ext4_nonda_switch() (Lukas Czerner) [1286668] - [fs] jbd2: use GFP_NOFS for blkdev_issue_flush (Lukas Czerner) [1286668] - [fs] ext4: call sync_blockdev() before invalidate_bdev() in put_super() (Lukas Czerner) [1286668] - [fs] ext4: fix oops when loading block bitmap failed (Lukas Czerner) [1286668] - [fs] ext4: use i_size_read in ext4_unaligned_aio() (Lukas Czerner) [1286668] - [fs] ext4: fix use-after-free in ext4_mb_new_blocks (Lukas Czerner) [1286668] - [fs] ext4: avoid bh leak in retry path of ext4_expand_extra_isize_ea() (Lukas Czerner) [1286668] - [fs] ext4: fix memory leak in xattr (Lukas Czerner) [1286668] - [fs] ext4: fix race in ext4_mb_add_n_trim() (Lukas Czerner) [1286668] - [fs] ext4: do not try to write superblock on ro remount w/o journal (Lukas Czerner) [1286668] - [fs] ext4: fix memory leak in ext4_xattr_set_acl()'s error path (Lukas Czerner) [1286668] - [fs] ext4: always set i_op in ext4_mknod() (Lukas Czerner) [1286668] - [fs] ext4: online defrag is not supported for journaled files (Lukas Czerner) [1286668] - [fs] Failing to send a CLOSE if file is opened WRONLY and server reboots on a 4.x mount (Benjamin Coddington) [1227851] - [fs] fixing infinite OPEN loop in 4.0 stateid recovery (Benjamin Coddington) [1227851] - [fs] nfs: verify open flags before allowing an atomic open (Benjamin Coddington) [1119760] - [fs] gfs2: Update timestamps on fallocate (Andrew Price) [1265994] - [fs] gfs2: Update i_size properly on fallocate (Andrew Price) [1265994] - [fs] gfs2: Use inode_newsize_ok and get_write_access in fallocate (Andrew Price) [1265994] - [fs] NFS check bitmap for valid file type (Paulo Andrade) [1236630] - [fs] nfsd: fix rare symlink decoding bug (J. Bruce Fields) [1089397] - [fs] vfs: Test for and handle paths that are unreachable from their mnt_root (Eric W. Biederman) [1209369] {CVE-2015-2925} - [fs] dcache: Handle escaped paths in prepend_path (Eric W. Biederman) [1209369] {CVE-2015-2925}- [tty] ldisc: fix open flag handling (Prarit Bhargava) [1285803] - [pci] Set ->mask_pos correctly (Myron Stowe) [1288629] - [pci] Remove "extern" from function declarations (Myron Stowe) [1288629] - [pci] Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK (Myron Stowe) [1288629] - [pci] Drop msi_mask_reg and remove drivers/pci/msi.h (Myron Stowe) [1288629] - [pci] Use msix_table_size directly, drop multi_msix_capable (Myron Stowe) [1288629] - [pci] Drop msix_table_offset_reg and msix_pba_offset_reg macros (Myron Stowe) [1288629] - [pci] Drop is_64bit_address and is_mask_bit_support macros (Myron Stowe) [1288629] - [pci] Drop msi_data_reg macro (Myron Stowe) [1288629] - [pci] Drop msi_lower_address_reg and msi_upper_address_reg macros (Myron Stowe) [1288629] - [pci] Drop msi_control_reg() macro and use PCI_MSI_FLAGS directly (Myron Stowe) [1288629] - [pci] Use cached MSI/MSI-X offsets from dev, not from msi_desc (Myron Stowe) [1288629] - [pci] Clean up MSI/MSI-X capability #defines (Myron Stowe) [1288629] - [pci] Use cached MSI-X cap while enabling MSI-X (Myron Stowe) [1288629] - [pci] Use cached MSI cap while enabling MSI interrupts (Myron Stowe) [1288629] - [pci] Remove MSI/MSI-X cap check in pci_msi_check_device (Myron Stowe) [1288629] - [pci] Cache MSI/MSI-X capability offsets in struct pci_dev (Myron Stowe) [1288629] - [pci] msi: Move MSI-X entry definition to pci_regs.h (Myron Stowe) [1288629] - [pci] add PCI_MSIX_TABLE/PBA defines (Myron Stowe) [1288629] - [x86] intel_pstate: Fix "performance" mode behavior with HWP enabled (Prarit Bhargava) [1288250] - [x86] cpufreq: intel_pstate: Fix limits->max_perf rounding error (Prarit Bhargava) [1288250] - [x86] cpufreq: intel_pstate: Fix limits->max_policy_pct rounding error (Prarit Bhargava) [1288250] - [x86] cpufreq: intel_pstate: Add separate support for Airmont cores (Prarit Bhargava) [1288250] - [x86] cpufreq: intel_pstate: Replace BYT with ATOM (Prarit Bhargava) [1288250] - [x86] intel_pstate: decrease number of "HWP enabled" messages (Prarit Bhargava) [1288250] - [x86] cpufreq: intel_pstate: Fix intel_pstate powersave min_perf_pct value (Prarit Bhargava) [1288250] - [x86] cpufreq: intel_pstate: get P1 from TAR when available (Prarit Bhargava) [1288250] - [x86] cpufreq: intel-pstate: Use separate max pstate for scaling (Prarit Bhargava) [1288250] - [ipmi] Stop the timer immediately if idle (Tony Camuso) [1274302] - [ipmi] Start the timer and thread on internal msgs (Tony Camuso) [1274302] - [ipmi] move timer init to before irq is setup (Tony Camuso) [1274302] - [ipmi] Compensate for BMCs that wont set the irq enable bit (Tony Camuso) [1274302] - [ipmi] Don't call receive handler in the panic context (Tony Camuso) [1274302] - [ipmi] Avoid touching possible corrupted lists in the panic context (Tony Camuso) [1274302] - [ipmi] Factor out message flushing procedure (Tony Camuso) [1274302] - [ipmi] Remove unneeded set_run_to_completion call (Tony Camuso) [1274302] - [ipmi] Add a comment in how messages are delivered from the lower layer (Tony Camuso) [1274302] - [ipmi] Fix a problem that messages are not issued in run_to_completion mode (Tony Camuso) [1274302] - [ipmi] Report an error if ACPI _IFT doesn't exist (Tony Camuso) [1274302] - [ipmi] Don't report err in the SI driver for SSIF devices (Tony Camuso) [1274302] - [ipmi] Handle BMCs that don't allow clearing the rcv irq bit (Tony Camuso) [1274302] - [ipmi] Fix a memory ordering issue (Tony Camuso) [1274302] - [ipmi] Use is_visible callback for conditional sysfs entries (Tony Camuso) [1274302] - [ipmi] Free ipmi_recv_msg messages from the linked list on close (Tony Camuso) [1274302] - [ipmi] avoid gcc warning (Tony Camuso) [1274302] - [ipmi] Cleanup DEBUG_TIMING ifdef usage (Tony Camuso) [1274302] - [ipmi] Remove unneeded FIXME comment in the file, ipmi_si_intf.c (Tony Camuso) [1274302] - [ipmi] Remove a FIXME for slab conversion (Tony Camuso) [1274302] - [ipmi] Finish cleanup of BMC attributes (Tony Camuso) [1274302] - [ipmi] Check the BT interrupt enable periodically (Tony Camuso) [1274302] - [ipmi] Fix attention handling for system interfaces (Tony Camuso) [1274302] - [ipmi] Periodically check to see if irqs and messages are set right (Tony Camuso) [1274302] - [ipmi] Remove the now unnecessary message queue (Tony Camuso) [1274302] - [ipmi] Make the message handler easier to use for SMI interfaces (Tony Camuso) [1274302] - [ipmi] Move message sending into its own function (Tony Camuso) [1274302] - [ipmi] Fix handling of BMC flags (Tony Camuso) [1274302] - [ipmi] Initialize BMC device attributes (Tony Camuso) [1274302] - [ipmi] Unregister previously registered driver in error case (Tony Camuso) [1274302] - [ipmi] Fix a bug in hot add/remove (Tony Camuso) [1274302] - [ipmi] Remove useless sysfs_name parameters (Tony Camuso) [1274302] - [ipmi] clean up the device handling for the bmc device (Tony Camuso) [1274302] - [ipmi] Move the address source to string to ipmi-generic code (Tony Camuso) [1274302] - [ipmi] Ignore SSIF in the PNP handling (Tony Camuso) [1274302] - [ipmi] work around gcc-4.9 build warning (Tony Camuso) [1274302] - [ipmi] Clean up the error handling for channel config errors (Tony Camuso) [1274302] - [netdrv] sfc: use ALIGN macro for aligning frame sizes (Jarod Wilson) [1123046] - [netdrv] sfc: Add PCI ID for Solarflare 8000 series 10/40G NIC (Jarod Wilson) [1123046] - [netdrv] sfc: make TSO version a per-queue parameter (Jarod Wilson) [1123046] - [netdrv] sfc: constify pci_error_handlers structures (Jarod Wilson) [1123046] - [netdrv] sfc: don't call dma_supported (Jarod Wilson) [1123046] - [netdrv] sfc: fully reset if MC_REBOOT event received without warm_boot_count increment (Jarod Wilson) [1123046] - [netdrv] sfc: Allow driver to cope with a lower number of VIs than it needs for RSS (Jarod Wilson) [1123046] - [netdrv] sfc: MC allocations must be restored following an entity reset (Jarod Wilson) [1123046] - [netdrv] sfc: allow ethtool selftest and MC reboot to complete on an unprivileged function (Jarod Wilson) [1123046] - [netdrv] sfc: update MCDI protocol definitions (Jarod Wilson) [1123046] - [netdrv] siena: only report generic filters in get_ts_info (Jarod Wilson) [1123046] - [mfd] rtsx: Add support for rts522A (Don Zickus) [1245441] - [mfd] rtsx: Add support for rts524A (Don Zickus) [1245441] - [mfd] rtsx: Update phy register (Don Zickus) [1245441] - [mfd] rtsx: Fix PM suspend for 5227 & 5249 (Don Zickus) [1245441] - [netdrv] get rid of unnecessary initializations in .get_drvinfo (Ken Cox) [1249241] - [netdrv] e1000e: Modify Tx/Rx configurations to avoid null pointer dereferences in e1000_open (Ken Cox) [1249241] - [netdrv] e1000e: Increase driver version number (Ken Cox) [1249241] - [netdrv] e1000e: Fix tight loop implementation of systime read algorithm (Ken Cox) [1249241] - [netdrv] e1000e: Fix incorrect ASPM locking (Ken Cox) [1249241] - [netdrv] e1000e: Cosmetic changes (Ken Cox) [1249241] - [netdrv] e1000e: Fix EEE in Sx implementation (Ken Cox) [1249241] - [netdrv] e1000e: Cleanup qos request in error handling of e1000_open (Ken Cox) [1249241] - [netdrv] e1000e: i219 - k1 workaround for LPT is not required for SPT (Ken Cox) [1249241] - [netdrv] e1000e: i219 - Increase minimum FIFO read/write min gap (Ken Cox) [1249241] - [netdrv] e1000e: i219 - increase IPG for speed 10/100 full duplex (Ken Cox) [1249241] - [netdrv] e1000e: i219 - fix to enable both ULP and EEE in Sx state (Ken Cox) [1249241] - [netdrv] e1000e: synchronization of MAC-PHY interface only on non- ME systems (Ken Cox) [1249241] - [netdrv] e1000e: fix locking issue with e1000e_disable_aspm (Ken Cox) [1249241] - [scsi] bfa: Update driver version to 3.2.25.0 (Chad Dupuis) [1258533] - [scsi] bfa: File header and user visible string changes (Chad Dupuis) [1258533] - [scsi] bfa: Update copyright messages (Chad Dupuis) [1258533] - [scsi] bfa: Fix incorrect de-reference of pointer (Chad Dupuis) [1258533] - [scsi] bfa: Fix indentation (Chad Dupuis) [1258533]- [kernel] panic: release stale console lock to always get the logbuf printed out (Vitaly Kuznetsov) [1233975] - [video] hyperv: hyperv_fb: refresh the VM screen by force on VM panic (Vitaly Kuznetsov) [1233975] - [virt] hyperv-fb: add blanking support (Vitaly Kuznetsov) [1233975] - [x86] efi: Disable interrupts around EFI calls, not in the epilog/prolog calls (Vitaly Kuznetsov) [1220286] - [x86] Use larger chunks in mtrr_cleanup (Prarit Bhargava) [1259424] - [netdrv] iwlwifi: add a few more PCI subvendor IDs for the 7265 series (Stanislaw Gruszka) [1285102] - [netdrv] genetlink-compat: register multicast groups (Stanislaw Gruszka) [1259870] - [kernel] hrtimer: add force_hrtimer_reprogram kernel parameter (Prarit Bhargava) [1285142] - [powerpc] perf: Add Power8 cache & TLB events (Gustavo Duarte) [1241222] - [mm] fix strange message 'error: "Success" setting key "vm.compact_memory" ' while setting sysctl parameter (Larry Woodman) [1278842] - [kernel] pidns: alloc_pid leaks pid_namespace if child_reaper is exiting (Aristeu Rozanski) [1286691] - [kernel] Prevent soft lockups processing nfsiod workqueue under heavy load on large memory systems (Larry Woodman) [1156216] - [md] raid10: don't clear bitmap bit when bad-block-list write fails (Jes Sorensen) [1273546] - [md] raid1: don't clear bitmap bit when bad-block-list write fails (Jes Sorensen) [1273546] - [md] raid10: submit_bio_wait returns 0 on success (Jes Sorensen) [1273546] - [md] raid1: submit_bio_wait() returns 0 on success (Jes Sorensen) [1273546] - [md] crash in md-raid1 and md-raid10 due to incorrect list manipulation (Jes Sorensen) [1273546] - [md] raid10: ensure device failure recorded before write request returns (Jes Sorensen) [1273546] - [md] raid1: ensure device failure recorded before write request returns (Jes Sorensen) [1273546] - [netdrv] drivers/net: get rid of unnecessary initializations in .get_drvinfo (Ken Cox) [1249240] - [netdrv] e1000: remove dead e1000_init_eeprom_params calls (Ken Cox) [1249240] - [netdrv] ethernet: codespell comment spelling fixes (Ken Cox) [1249240] - [netdrv] e1000: call netif_carrier_off early on down (Ken Cox) [1249240] - [netdrv] e1000: add dummy allocator to fix race condition between mtu change and netpoll (Ken Cox) [1249240] - [netdrv] e1000: fix time comparison (Ken Cox) [1249240] - [netdrv] ethernet/intel: Use eth_skb_pad and skb_put_padto helpers (Ken Cox) [1249240] - [netdrv] e1000: rename struct e1000_buffer to e1000_tx_buffer (Ken Cox) [1249240] - [netdrv] e1000: add and use e1000_rx_buffer info for Rx (Ken Cox) [1249240] - [netdrv] e1000: remove workaround for Errata 23 from jumbo alloc (Ken Cox) [1249240] - [netdrv] e1000: perform copybreak ahead of DMA unmap (Ken Cox) [1249240]- [tools] perf annotate: Fix fallback to unparsed disassembler line (Jiri Olsa) [1265262] - [tools] perf tools: Make sparc64 arch point to sparc (Jiri Olsa) [1265262] - [tools] perf symbols: Define EM_AARCH64 for older OSes (Jiri Olsa) [1265262] - [tools] perf top: Fix SIGBUS on sparc64 (Jiri Olsa) [1265262] - [tools] perf tools: Fix probing for PERF_FLAG_FD_CLOEXEC flag (Jiri Olsa) [1265262] - [tools] perf tools: Show better error message in case we fail to open counters due to EBUSY error (Jiri Olsa) [1265262] - [tools] perf tools: Fix pthread_attr_setaffinity_np build error (Jiri Olsa) [1265262] - [tools] perf tools: Define _GNU_SOURCE on pthread_attr_setaffinity_np feature check (Jiri Olsa) [1265262] - [tools] perf symbols: Convert lseek + read to pread (Jiri Olsa) [1265262] - [tools] perf tools: Use perf_data_file__fd consistently (Jiri Olsa) [1265262] - [tools] perf symbols: Support to read compressed module from build-id cache (Jiri Olsa) [1265262] - [tools] perf evsel: Set attr.task bit for a tracking event (Jiri Olsa) [1265262] - [tools] perf header: Set header version correctly (Jiri Olsa) [1265262] - [tools] perf record: Show precise number of samples (Jiri Olsa) [1265262] - [tools] perf tools: Do not use __perf_session__process_events directly (Jiri Olsa) [1265262] - [tools] perf callchain: Cache eh/debug frame offset for dwarf unwind (Jiri Olsa) [1265262] - [tools] perf tools: Provide stub for missing pthread_attr_setaffinity_np (Jiri Olsa) [1265262] - [tools] perf evsel: Don't rely on malloc working for sz 0 (Jiri Olsa) [1265262] - [tools] tools lib traceevent: Add support for IP address formats (Jiri Olsa) [1265262] - [tools] perf ui/tui: Show fatal error message only if exists (Jiri Olsa) [1265262] - [tools] perf tests: Fix typo in sample-parsing.c (Jiri Olsa) [1265262] - [tools] tools lib fs debugfs: Check if debugfs is mounted when handling ENOENT (Jiri Olsa) [1265262] - [tools] tools lib fs debugfs: Introduce debugfs__strerror_open_tp (Jiri Olsa) [1265262] - [tools] perf trace: Fix error reporting for evsel pgfault constructor (Jiri Olsa) [1265262] - [tools] tools lib fs: Pass filename to debugfs__strerror_open (Jiri Olsa) [1265262] - [tools] tools lib fs: Adopt debugfs open strerrno method (Jiri Olsa) [1265262] - [tools] perf diff: Fix -o/--order option behavior (Jiri Olsa) [1265262] - [tools] perf diff: Fix output ordering to honor next column (Jiri Olsa) [1265262] - [tools] perf tools: Pass struct perf_hpp_fmt to its callbacks (Jiri Olsa) [1265262] - [tools] perf diff: Introduce fmt_to_data_file helper (Jiri Olsa) [1265262] - [tools] perf diff: Print diff result more precisely (Jiri Olsa) [1265262] - [tools] perf diff: Get rid of hists__compute_resort (Jiri Olsa) [1265262] - [tools] perf tools: Allow use of an exclusive option more than once (Jiri Olsa) [1265262] - [tools] perf tools: Document parameterized and symbolic events (Jiri Olsa) [1265262] - [tools] perf tools: Extend format_alias() to include event parameters (Jiri Olsa) [1265262] - [tools] perf tools: Support parsing parameterized events (Jiri Olsa) [1265262] - [tools] perf tools: Remove some unused functions from color.c (Jiri Olsa) [1265262] - [tools] perf report: Get rid of report__inc_stat (Jiri Olsa) [1265262] - [tools] perf hists: Introduce function for deleting/removing hist_entry (Jiri Olsa) [1265262] - [tools] perf hists: Rename hist_entry__free to __delete (Jiri Olsa) [1265262] - [tools] perf tools: Remove EOL whitespaces (Jiri Olsa) [1265262] - [tools] perf mem: Move the mem_operations global to struct perf_mem (Jiri Olsa) [1265262] - [tools] perf mem: Enable sampling loads and stores simultaneously (Jiri Olsa) [1265262] - [tools] perf probe: Fix probing kretprobes (Jiri Olsa) [1265262] - [tools] perf symbols: Introduce 'for' method to iterate over the symbols with a given name (Jiri Olsa) [1265262] - [tools] perf probe: Do not rely on map__load() filter to find symbols (Jiri Olsa) [1265262] - [tools] perf symbols: Introduce method to iterate symbols ordered by name (Jiri Olsa) [1265262] - [tools] perf symbols: Return the first entry with a given name in find_by_name method (Jiri Olsa) [1265262] - [tools] perf annotate: Fix memory leaks in LOCK handling (Jiri Olsa) [1265262] - [tools] perf annotate: Handle ins parsing failures (Jiri Olsa) [1265262] - [tools] perf evlist: Remove extraneous 'was' on error message (Jiri Olsa) [1265262] - [tools] perf tools powerpc: Use dwfl_report_elf() instead of offline (Jiri Olsa) [1265262] - [tools] perf tools: Fix segfault for symbol annotation on TUI (Jiri Olsa) [1265262] - [tools] perf test: Fix dwarf unwind using libunwind (Jiri Olsa) [1265262] - [tools] perf tools: Avoid build splat for syscall numbers with uclibc (Jiri Olsa) [1265262] - [tools] perf tools: Elide strlcpy warning with uclibc (Jiri Olsa) [1265262] - [tools] perf tools: Fix statfs.f_type data type mismatch build error with uclibc (Jiri Olsa) [1265262] - [tools] perf machine: Fix __machine__findnew_thread() error path (Jiri Olsa) [1265262] - [tools] perf tools: Fix building error in x86_64 when dwarf unwind is on (Jiri Olsa) [1265262] - [tools] perf probe: Propagate error code when write failed (Jiri Olsa) [1265262] - [tools] perf hists browser: Fix segfault when showing callchain (Jiri Olsa) [1265262] - [tools] perf callchain: Free callchains when hist entries are deleted (Jiri Olsa) [1265262] - [tools] perf hists: Fix children sort key behavior (Jiri Olsa) [1265262] - [tools] perf diff: Fix to sort by baseline field by default (Jiri Olsa) [1265262] - [tools] perf list: Fix --raw-dump option (Jiri Olsa) [1265262] - [tools] perf probe: Fix crash in dwarf_getcfi_elf (Jiri Olsa) [1265262] - [tools] perf probe: Fix to fall back to find probe point in symbols (Jiri Olsa) [1265262] - [tools] perf callchain: Append callchains only when requested (Jiri Olsa) [1265262] - [tools] perf ui/tui: Print backtrace symbols when segfault occurs (Jiri Olsa) [1265262] - [tools] perf report: Show progress bar for output resorting (Jiri Olsa) [1265262] - [tools] perf: Fix building warning on ARM 32 (Jiri Olsa) [1265262] - [tools] perf symbols: Fix use after free in filename__read_build_id (Jiri Olsa) [1265262] - [tools] perf evlist: Use roundup_pow_of_two (Jiri Olsa) [1265262] - [tools] Adopt roundup_pow_of_two (Jiri Olsa) [1265262] - [tools] perf tools: Make the mmap length autotuning more robust (Jiri Olsa) [1265262] - [tools] Adopt rounddown_pow_of_two and deps (Jiri Olsa) [1265262] - [tools] Adopt fls_long and deps (Jiri Olsa) [1265262] - [tools] Move bitops.h from tools/perf/util to tools (Jiri Olsa) [1265262] - [tools] Introduce asm-generic/bitops.h (Jiri Olsa) [1265262] - [tools] tools lib: Move asm-generic/bitops/find.h code to tools/include and tools/lib (Jiri Olsa) [1265262] - [tools] Whitespace prep patches for moving bitops.h (Jiri Olsa) [1265262] - [tools] Move code originally from asm-generic/atomic.h into tools/include/asm-generic (Jiri Olsa) [1265262] - [tools] Move code originally from linux/log2.h to tools/include/linux (Jiri Olsa) [1265262] - [tools] Move __ffs implementation to tools/include/asm-generic/bitops/__ffs.h (Jiri Olsa) [1265262] - [tools] perf evlist: Do not use hard coded value for a mmap_pages default (Jiri Olsa) [1265262] - [tools] perf trace: Let the perf_evlist__mmap autosize the number of pages to use (Jiri Olsa) [1265262] - [tools] perf evlist: Improve the strerror_mmap method (Jiri Olsa) [1265262] - [tools] perf evlist: Clarify sterror_mmap variable names (Jiri Olsa) [1265262] - [tools] perf evlist: Fixup brown paper bag on "hint" for --mmap-pages cmdline arg (Jiri Olsa) [1265262] - [tools] perf trace: Provide a better explanation when mmap fails (Jiri Olsa) [1265262] - [tools] perf evlist: Introduce strerror_mmap method (Jiri Olsa) [1265262] - [tools] perf tools: Use sysctl__read_int instead of ad-hoc copies (Jiri Olsa) [1265262] - [tools] tools lib fs: Add sysctl__read_int helper (Jiri Olsa) [1265262] - [tools] tools lib fs: Adopt filename__read_int from tools/perf (Jiri Olsa) [1265262] - [tools] perf kvm stat live: Mark events as - x86 only - in help output (Jiri Olsa) [1265262] - [tools] perf tests: Fix attr tests size values to cope with machine state on interrupt ABI changes (Jiri Olsa) [1265262] - [tools] calloc/xcalloc: Fix argument order (Jiri Olsa) [1265262] - [tools] perf callchain: Move cpumode resolve code to add_callchain_ip (Jiri Olsa) [1265262] - [tools] perf callchain: Fixup parameter handling error message (Jiri Olsa) [1265262] - [tools] perf tools: Add --buildid-dir option to set cache directory (Jiri Olsa) [1265262] - [tools] perf buildid cache: Fix -a segfault related to kcore handling (Jiri Olsa) [1265262] - [tools] perf buildid-cache: Remove extra debugdir variables (Jiri Olsa) [1265262] - [tools] perf tools: Use single strcmp call instead of two (Jiri Olsa) [1265262] - [tools] perf hists browser: Change print format from lu to PRIu64 (Jiri Olsa) [1265262] - [tools] perf session: Do not fail on processing out of order event (Jiri Olsa) [1265262] - [tools] perf report: In branch stack mode use address history sorting (Jiri Olsa) [1265262] - [tools] perf report: Add --branch-history option (Jiri Olsa) [1265262] - [tools] perf callchain: Support handling complete branch stacks as histograms (Jiri Olsa) [1265262] - [tools] perf stat: Add support for snapshot counters (Jiri Olsa) [1265262] - [tools] perf stat: Add support for per-pkg counters (Jiri Olsa) [1265262] - [tools] perf tools: Remove perf_evsel__read interface (Jiri Olsa) [1265262] - [tools] perf stat: Use read_counter in read_counter_aggr (Jiri Olsa) [1265262] - [tools] perf stat: Make read_counter work over the thread dimension (Jiri Olsa) [1265262] - [tools] perf stat: Use perf_evsel__read_cb in read_counter (Jiri Olsa) [1265262] - [tools] perf tools: Add snapshot format file parsing (Jiri Olsa) [1265262] - [tools] perf tools: Add per-pkg format file parsing (Jiri Olsa) [1265262] - [tools] perf evsel: Introduce perf_evsel__read_cb function (Jiri Olsa) [1265262] - [tools] perf evsel: Introduce perf_counts_values__scale function (Jiri Olsa) [1265262] - [tools] perf evsel: Introduce perf_evsel__compute_deltas function (Jiri Olsa) [1265262] - [tools] perf tools: Allow to force redirect pr_debug to stderr (Jiri Olsa) [1265262] - [tools] perf tools: Fix segfault due to invalid kernel dso access (Jiri Olsa) [1265262] - [tools] perf callchain: Make get_srcline fall back to sym+offset (Jiri Olsa) [1265262] - [tools] perf symbols: Move bfd_demangle stubbing to its only user (Jiri Olsa) [1265262] - [tools] perf callchain: Enable printing the srcline in the history (Jiri Olsa) [1265262] - [tools] perf tools: Collapse first level callchain entry if it has sibling (Jiri Olsa) [1265262] - [tools] perf hists browser: Print overhead percent value for first-level callchain (Jiri Olsa) [1265262] - [tools] perf tools: Only override the default :tid comm entry (Jiri Olsa) [1265262] - [tools] perf tools: Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore (Jiri Olsa) [1265262] - [tools] perf evlist: Do not poll events that use the system_wide flag (Jiri Olsa) [1265262] - [tools] perf evsel: Fix ftrace:function event recording (Jiri Olsa) [1265262] - [tools] perf diff: Add missing handler for PERF_RECORD_MMAP2 events (Jiri Olsa) [1265262] - [tools] perf hists: Fix up srcline histogram key formatting (Jiri Olsa) [1265262] - [tools] perf annotate: Support source line numbers in annotate (Jiri Olsa) [1265262] - [tools] perf tools: Only print base source file for srcline (Jiri Olsa) [1265262] - [tools] perf callchain: Use a common function to resolve symbol or name (Jiri Olsa) [1265262] - [tools] perf callchain: Use al.addr to set up call chain (Jiri Olsa) [1265262] - [tools] perf callchain: Factor out adding new call chain entries (Jiri Olsa) [1265262] - [tools] perf tools: Fix annotation with kcore (Jiri Olsa) [1265262] - [tools] perf test: fix typo in python test (Jiri Olsa) [1265262] - [tools] perf symbols: Fallback to kallsyms when using the minimal 'ELF' loader (Jiri Olsa) [1265262] - [tools] perf tools: Clean up libelf feature support code (Jiri Olsa) [1265262] - [tools] perf build-id: Move disable_buildid_cache() to util/build-id.c (Jiri Olsa) [1265262] - [tools] perf record: Add new -I option to sample interrupted machine state (Jiri Olsa) [1265262] - [tools] perf/tests: Add interrupted state sample parsing test (Jiri Olsa) [1265262] - [tools] perf tools: Add core support for sampling intr machine state regs (Jiri Olsa) [1265262] - [tools] perf evsel: Do not call pevent_free_format when deleting tracepoint (Jiri Olsa) [1265262] - [tools] perf script python: Removing event cache as it's no longer needed (Jiri Olsa) [1265262] - [tools] perf script perl: Removing event cache as it's no longer needed (Jiri Olsa) [1265262] - [tools] perf tools: Add test_and_set_bit function (Jiri Olsa) [1265262] - [tools] perf tools: Make vmlinux short name more like kallsyms short name (Jiri Olsa) [1265262] - [tools] perf tools: Fix build-id matching on vmlinux (Jiri Olsa) [1265262] - [tools] perf record: Do not save pathname in ./debug/.build-id directory for vmlinux (Jiri Olsa) [1265262] - [tools] perf build-id: Move build-id related functions to util/build-id.c (Jiri Olsa) [1265262] - [tools] perf build-id: Rename dsos__write_buildid_table (Jiri Olsa) [1265262] - [tools] perf tools: Add gzip decompression support for kernel module (Jiri Olsa) [1265262] - [tools] perf symbols: Preparation for compressed kernel module support (Jiri Olsa) [1265262] - [tools] perf tools: Defer export of comms that were not 'set' (Jiri Olsa) [1265262] - [tools] perf tools: Add call information to Python export (Jiri Olsa) [1265262] - [tools] perf tools: Add call information to the database export API (Jiri Olsa) [1265262] - [tools] perf tools: Add branch_type and in_tx to Python export (Jiri Olsa) [1265262] - [tools] perf tools: Add branch type to db export (Jiri Olsa) [1265262] - [tools] perf tools: Enhance the thread stack to output call/return data (Jiri Olsa) [1265262] - [tools] perf tools: Add a thread stack for synthesizing call chains (Jiri Olsa) [1265262] - [tools] perf session: Add perf_session__deliver_synth_event (Jiri Olsa) [1265262] - [tools] perf tools: Use evlist__for_each in a few remaining places (Jiri Olsa) [1265262] - [tools] perf tools: Add id index (Jiri Olsa) [1265262] - [tools] perf probe: Add --quiet option to suppress output result message (Jiri Olsa) [1265262] - [tools] perf script: Add Python script to export to postgresql (Jiri Olsa) [1265262] - [tools] perf scripting python: Extend interface to export data in a database-friendly way (Jiri Olsa) [1265262] - [tools] perf tools: Add facility to export data in database-friendly way (Jiri Olsa) [1265262] - [tools] perf pmu: Add proper error handling to print_pmu_events (Jiri Olsa) [1265262] - [tools] perf tools: Do not attempt to run perf-read-vdso32 if it wasn't built (Jiri Olsa) [1265262] - [tools] perf tools: Add support for 32-bit compatibility VDSOs (Jiri Olsa) [1265262] - [tools] perf tools: Build programs to copy 32-bit compatibility (Jiri Olsa) [1265262] - [tools] perf pmu: Let pmu's with no events show up on perf list (Jiri Olsa) [1265262] - [tools] perf tools: Ensure return negative value when write header error (Jiri Olsa) [1265262] - [tools] perf probe: Use PARSE_OPT_EXCLUSIVE flag (Jiri Olsa) [1265262] - [tools] perf tools: Add support for exclusive option (Jiri Olsa) [1265262] - [tools] perf kvm: Print kvm specific --help output (Jiri Olsa) [1265262] - [tools] perf tools: Export usage string and option table of perf record (Jiri Olsa) [1265262] - [tools] perf tools: Add PARSE_OPT_DISABLED flag (Jiri Olsa) [1265262] - [tools] perf tests: Use thread->mg->machine (Jiri Olsa) [1265262] - [tools] perf tests: Remove misplaced __maybe_unused (Jiri Olsa) [1265262] - [tools] perf callchains: Use thread->mg->machine (Jiri Olsa) [1265262] - [tools] perf thread: Adopt resolve_callchain method from machine (Jiri Olsa) [1265262] - [tools] perf tools: A thread's machine can be found via thread->mg->machine (Jiri Olsa) [1265262] - [tools] perf tools: Set thread->mg.machine in all places (Jiri Olsa) [1265262] - [tools] perf tools powerpc: Cache the DWARF debug info (Jiri Olsa) [1265262] - [x86] intel: Fix Haswell CYCLE_ACTIVITY.* counter constraints (Jiri Olsa) [1265262] - [x86] intel: Filter branches for PEBS event (Jiri Olsa) [1265262] - [kernel] perf: Fix irq_work tail recursion (Jiri Olsa) [1265262] - [kernel] perf: add PMU_EVENT_ATTR_STRING() helper (Jiri Olsa) [1265262] - [kernel] perf: provide sysfs_show for struct perf_pmu_events_attr (Jiri Olsa) [1265262] - [kernel] perf: Use POLLIN instead of POLL_IN for perf poll data in flag (Jiri Olsa) [1265262] - [kernel] perf: Add a bit of paranoia (Jiri Olsa) [1265262] - [kernel] perf: Tighten and fix the grouping condition (Jiri Olsa) [1265262] - [x86] intel: Add model number for Airmont (Jiri Olsa) [1265262] - [x86] intel/uncore: Move uncore_box_init() out of driver initialization (Jiri Olsa) [1265262] - [x86] uncore/hsw-ep: Handle systems with only two SBOXes (Jiri Olsa) [1265262] - [kernel] perf: Fix events installation during moving group (Jiri Olsa) [1265262] - [x86] intel/uncore: Make sure only uncore events are collected (Jiri Olsa) [1265262] - [kernel] perf: Improve the perf_sample_data struct layout (Jiri Olsa) [1265262] - [x86] Add support for sampling PEBS machine state registers (Jiri Olsa) [1265262] - [kernel] perf: Add ability to sample machine state on interrupt (Jiri Olsa) [1265262] - [x86] Add INTEL_FLAGS_UEVENT_CONSTRAINT (Jiri Olsa) [1265262] - [x86] intel/uncore: Add scaling units to the EP iMC events (Jiri Olsa) [1265262] - [x86] intel/uncore: Fix boot crash on SBOX PMU on Haswell-EP (Jiri Olsa) [1265262] - [x86] intel/uncore: Fix IRP uncore register offsets on Haswell EP (Jiri Olsa) [1265262] - [kernel] perf: Fix corruption of sibling list with hotplug (Jiri Olsa) [1265262] - [kernel] list: introduce list_last_entry, use list_first_entry, list_last_entry (Jiri Olsa) [1265262] - [kernel] ftrace: Have modules use the trace event array pointer (Jiri Olsa) [1038756] - [kernel] ftrace: Introduce __trace_module_add_events function (Jiri Olsa) [1038756] - [perf] x86/intel/cqm: Do not access cpu_data() from CPU_UP_PREPARE handler (Jiri Olsa) [1252428] - [perf] x86/intel/cqm: Return cached counter value from IRQ context (Jiri Olsa) [1252428] - [perf] x86/intel/cqm: Use 'u32' data type for RMIDs (Jiri Olsa) [1252428] - [perf] x86/intel/cqm: Add storage for 'closid' and clean up 'struct intel_pqr_state' (Jiri Olsa) [1252428] - [perf] x86/intel/cqm: Remove useless wrapper function (Jiri Olsa) [1252428] - [perf] x86/intel/cqm: Avoid pointless MSR write (Jiri Olsa) [1252428] - [perf] x86/intel/cqm: Remove pointless spinlock from state cache (Jiri Olsa) [1252428] - [perf] x86/intel/cqm: Use proper data types (Jiri Olsa) [1252428] - [perf] x86/intel/cqm: Document PQR MSR abuse (Jiri Olsa) [1252428] - [perf] Remove type specific target pointers (Jiri Olsa) [1252428] - [perf] x86/intel: Fix Makefile to actually build the cqm driver (Jiri Olsa) [1252428] - [perf] x86/intel: Enable conflicting event scheduling for CQM (Jiri Olsa) [1252428] - [perf] x86/intel: Perform rotation on Intel CQM RMIDs (Jiri Olsa) [1252428] - [perf] x86/intel: Support task events with Intel CQM (Jiri Olsa) [1252428] - [perf] x86/intel: Implement LRU monitoring ID allocation for CQM (Jiri Olsa) [1252428] - [perf] x86/intel: Add Intel Cache QoS Monitoring support (Jiri Olsa) [1252428] - [x86] Add support for Intel Cache QoS Monitoring (CQM) detection (Jiri Olsa) [1252428] - [perf] Add sysfs entry to adjust multiplexing interval per PMU (Jiri Olsa) [1252428] - [perf] Use hrtimers for event multiplexing (Jiri Olsa) [1252428] - [perf] Move cgroup init before PMU ->event_init() (Jiri Olsa) [1252428] - [perf] Ensure consistent inherit state in groups (Jiri Olsa) [1252428] - [perf] Add ->count function to read per-package counters (Jiri Olsa) [1252428] - [perf] Make perf_cgroup_from_task() global (Jiri Olsa) [1252428] - [perf] Migrate per cpu event accounting (Jiri Olsa) [1252428] - [perf] Split the per-cpu accounting part of the event accounting code (Jiri Olsa) [1252428] - [perf] Factor out event accounting code to account_event()/__free_event() (Jiri Olsa) [1252428] - [perf] Sanitize get_callchain_buffer() (Jiri Olsa) [1252428] - [perf] Fix branch stack refcount leak on callchain init failure (Jiri Olsa) [1252428] - [block] nvme: Add translation for block limits (David Milburn) [1228784] - [block] nvme: fix kernel memory corruption with short INQUIRY buffers (David Milburn) [1228784] - [block] nvme: Fix PRP list calculation for non-4k system page size (David Milburn) [1228784] - [block] nvme: Fix scsi mode select llbaa setting (David Milburn) [1228784] - [block] nvme: Update SCSI Inquiry VPD 83h translation (David Milburn) [1228784] - [block] nvme: Do not over allocate for discard requests (David Milburn) [1228784] - [block] nvme: Fix device probe waiting on kthread (David Milburn) [1228784] - [block] nvme: Updates for 1.1 spec (David Milburn) [1228784] - [block] nvme: Passthrough IOCTL for IO commands (David Milburn) [1228784] - [block] nvme: Add revalidate_disk callback (David Milburn) [1228784] - [block] nvme: Translate NVMe status to errno (David Milburn) [1228784] - [block] nvme: Fix SG_IO status values (David Milburn) [1228784] - [block] nvme: Remove duplicate compat SG_IO code (David Milburn) [1228784] - [block] nvme: Correctly handle IOCTL_SUBMIT_IO when cpus > online queues (David Milburn) [1228784] - [block] nvme: Skip orderly shutdown on failed devices (David Milburn) [1228784] - [block] nvme: Change nvme_enable_ctrl to set EN and manage CC thru ctrl_config (David Milburn) [1228784] - [block] nvme: Mismatched host/device page size support (David Milburn) [1228784] - [block] nvme: Update list of status codes (David Milburn) [1228784] - [block] nvme: Async event request (David Milburn) [1228784] - [kernel] cpu hotplug, smp: flush any pending IPI callbacks before CPU offline (Gustavo Duarte) [1225059] - [kernel] smp: print more useful debug info upon receiving IPI on an offline CPU (Gustavo Duarte) [1225059]- [kernel] x86: Remove unused thread_return label from switch_to() (Oleg Nesterov) [1276446] - [kernel] sched: Fix __schedule_bug() output when called from an interrupt (Oleg Nesterov) [1276446] - [s390] dasd: fix list_del corruption after lcu changes (Hendrik Brueckner) [1285229] - [s390] dasd: fix disconnected device with valid path mask (Hendrik Brueckner) [1285222] - [s390] dasd: fix invalid PAV assignment after suspend/resume (Hendrik Brueckner) [1285223] - [netdrv] sfc: only use vadaptor stats if firmware is capable (Jarod Wilson) [1123046] - [netdrv] sfc: Ensure down_write(&filter_sem) and up_write() are matched before calling efx_net_open() (Jarod Wilson) [1123046] - [netdrv] sfc: suppress handled MCDI failures when changing the MAC address (Jarod Wilson) [1123046] - [netdrv] sfc: add legacy method for changing a PF's MAC address (Jarod Wilson) [1123046] - [netdrv] sfc: refactor code in efx_ef10_set_mac_address() (Jarod Wilson) [1123046] - [netdrv] sfc: mark state UNINIT after unregister (Jarod Wilson) [1123046] - [netdrv] sfc: leak vports if a VF is assigned during PF unload (Jarod Wilson) [1123046] - [netdrv] sfc: force removal of VF and vport on driver removal (Jarod Wilson) [1123046] - [netdrv] sfc: do not allow VFs to be destroyed if assigned to guests (Jarod Wilson) [1123046] - [netdrv] sfc: don't update stats on VF when called in atomic context (Jarod Wilson) [1123046] - [netdrv] sfc: suppress vadaptor stats when EVB is not present (Jarod Wilson) [1123046] - [netdrv] sfc: suppress ENOENT error messages from MC_CMD_MAC_STATS (Jarod Wilson) [1123046] - [netdrv] sfc: update netdevice statistics to use vadaptor stats (Jarod Wilson) [1123046] - [netdrv] sfc: DMA the VF stats only when requested (Jarod Wilson) [1123046] - [netdrv] sfc: display vadaptor statistics for all interfaces (Jarod Wilson) [1123046] - [netdrv] sfc: set the port-id when calling MC_CMD_MAC_STATS (Jarod Wilson) [1123046] - [netdrv] sfc: add "port_" prefix to MAC stats (Jarod Wilson) [1123046] - [netdrv] sfc: Implement ndo_gets_phys_port_id() for EF10 VFs (Jarod Wilson) [1123046] - [netdrv] sfc: Add sysfs entry for flags (link control and primary) (Jarod Wilson) [1123046] - [netdrv] sfc: Add paranthesis correctly on all branches of the if statement (Jarod Wilson) [1123046] - [netdrv] sfc: Add code to export port_num in netdev->dev_port (Jarod Wilson) [1123046] - [netdrv] sfc: free multiple Rx buffers when required (Jarod Wilson) [1123046] - [netdrv] sfc: add module parameter to enable MCDI logging on new functions (Jarod Wilson) [1123046] - [netdrv] sfc: add sysfs entry to control MCDI tracing (Jarod Wilson) [1123046] - [netdrv] sfc: add tracing of MCDI commands (Jarod Wilson) [1123046] - [netdrv] sfc: set the MAC address using MC_CMD_VADAPTOR_SET_MAC (Jarod Wilson) [1123046] - [netdrv] sfc: Implement dummy disable of VF spoof check for EF10 (Jarod Wilson) [1123046] - [netdrv] sfc: add ndo_set_vf_link_state() function for EF10 (Jarod Wilson) [1123046] - [netdrv] sfc: add ndo_set_vf_vlan() function for EF10 (Jarod Wilson) [1123046] - [netdrv] sfc: Change entity reset on MC reboot to a new datapath-only reset (Jarod Wilson) [1123046] - [netdrv] sfc: Add ndo_get_vf_config() function for EF10 (Jarod Wilson) [1123046] - [netdrv] sfc: add ndo_set_vf_mac() function for EF10 (Jarod Wilson) [1123046] - [netdrv] sfc: Initialise MCDI buffers to 0 on declaration (Jarod Wilson) [1123046] - [netdrv] sfc: Enable a VF to get its own MAC address (Jarod Wilson) [1123046] - [netdrv] sfc: protect filter table against use-after-free (Jarod Wilson) [1123046] - [netdrv] sfc: Store the efx_nic struct of the current VF in the VF data struct (Jarod Wilson) [1123046] - [netdrv] sfc: save old MAC address in case sriov_mac_address_changed fails (Jarod Wilson) [1123046] - [netdrv] sfc: Store vf_index in nic_data for Ef10 (Jarod Wilson) [1123046] - [netdrv] sfc: MC_CMD_SET_MAC can only be called by the link control Function (Jarod Wilson) [1123046] - [netdrv] sfc: change definition of MC_CMD_VADAPTOR_ALLOC (Jarod Wilson) [1123046] - [netdrv] sfc: Add permissions to MCDI commands (Jarod Wilson) [1123046] - [netdrv] sfc: nicer log message on Siena SR-IOV probe fail (Jarod Wilson) [1123046] - [netdrv] sfc: suppress some MCDI error messages in PTP (Jarod Wilson) [1123046] - [netdrv] sfc: nicer log message on PTP probe fail (Jarod Wilson) [1123046] - [netdrv] sfc: Bind the sfc driver to any available VF's (Jarod Wilson) [1123046] - [netdrv] sfc: Add use of shared RSS contexts (Jarod Wilson) [1123046] - [netdrv] sfc: Cope with permissions enforcement added to firmware for SR-IOV (Jarod Wilson) [1123046] - [netdrv] sfc: manually allocate and free vadaptors (Jarod Wilson) [1123046] - [netdrv] sfc: create vports for VFs and assign random MAC addresses (Jarod Wilson) [1123046] - [netdrv] sfc: Prepare to bind the sfc driver to the VF (Jarod Wilson) [1123046] - [netdrv] sfc: get the PF number and record in nic_data (Jarod Wilson) [1123046] - [netdrv] sfc: create VEB vswitch and vport above default firmware setup (Jarod Wilson) [1123046] - [netdrv] sfc: record the PF's vport ID in nic_data (Jarod Wilson) [1123046] - [netdrv] sfc: Record x_dpcpu_fw_id in EF10 nic_data (Jarod Wilson) [1123046] - [netdrv] sfc: Use MCDI to set FILTER_OP_IN_TX_DOMAIN (Jarod Wilson) [1123046] - [netdrv] sfc: Enable VF's via a write to the sysfs file sriov_numvfs (Jarod Wilson) [1123046] - [netdrv] sfc: Move and rename efx_vf struct to siena_vf (Jarod Wilson) [1123046] - [netdrv] sfc: Own header for nic-specific sriov functions, single instance of netdev_ops and sriov removed from Falcon code (Jarod Wilson) [1123046] - [netdrv] sfc: Fix memcpy with const destination compiler warning (Jarod Wilson) [1123046] - [netdrv] ethernet: codespell comment spelling fixes (Jarod Wilson) [1123046] - [netdrv] sfc: use netdev_rss_key_fill helper (Jarod Wilson) [1123046] - [netdrv] sfc: Use ether_addr_copy and eth_broadcast_addr (Jarod Wilson) [1123046] - [kernel] log2.h: Fix rounddown_pow_of_two(1) (Andrea Arcangeli) [1269976] - [md] raid1: Avoid raid1 resync getting stuck (Jes Sorensen) [1263820] - [md] revert "md: allow a partially recovered device to be hot-added to an array" (Jes Sorensen) [1250579] - [x86] nmi: Fix use of unallocated cpumask_var_t (Don Zickus) [1104266] - [x86] nmi: Perform a safe NMI stack trace on all CPUs (Don Zickus) [1104266] - [kernel] printk: Add per_cpu printk func to allow printk to be diverted (Don Zickus) [1104266] - [kernel] seq: Add minimal support for seq_buf (Don Zickus) [1104266] - [hwmon] nct6775: Add support for NCT6793D (Dean Nelson) [1260117] - [hwmon] nct6775: Swap STEP_UP_TIME and STEP_DOWN_TIME registers for most chips (Dean Nelson) [1260117] - [hwmon] nct6775: Add missing sysfs attribute initialization (Dean Nelson) [1260117] - [hwmon] nct6775: Enable auxiliary fan monitoring on ASRock Z77 Pro4-M (Dean Nelson) [1260117] - [hwmon] nct6775: Restore hardware monitoring logical device status on resume (Dean Nelson) [1260117] - [hwmon] nct6775: Convert to use SIMPLE_DEV_PM_OPS (Dean Nelson) [1260117] - [hwmon] nct6775: Add blank lines after declarations (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for NCT6792D (Dean Nelson) [1260117] - [hwmon] nct6775: Documentation updates (Dean Nelson) [1260117] - [hwmon] nct6775: Remove num_attr_groups from struct nct6775_data (Dean Nelson) [1260117] - [hwmon] nct6775: Update module description and Kconfig for NCT6106D and NCT6791D (Dean Nelson) [1260117] - [hwmon] nct6775: Fix probe unwind paths to properly unregister platform devices (Dean Nelson) [1260117] - [hwmon] Update Jean Delvare's e-mail address (Dean Nelson) [1260117] - [hwmon] nct6775: Re-enable logical device mapping for NCT6791 during resume (Dean Nelson) [1260117] - [hwmon] nct6775: NCT6791 supports weight control only for CPUFAN (Dean Nelson) [1260117] - [hwmon] nct6775: Monitor additional temperature registers (Dean Nelson) [1260117] - [hwmon] nct6775: Remove an unused variable (Dean Nelson) [1260117] - [hwmon] nct6775: Convert to use hwmon_device_register_with_groups (Dean Nelson) [1260117] - [hwmon] nct6775: Check array index when accessing temp_offset (Dean Nelson) [1260117] - [hwmon] nct6775: Use return value from find_temp_source (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for hibernate (Dean Nelson) [1260117] - [hwmon] use dev_get_platdata (Dean Nelson) [1260117] - [hwmon] nct6775: Fix size of data->temp array (Dean Nelson) [1260117] - [hwmon] nct6775: Avoid using device platform data outside probe function (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for NCT6791D (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for beep attributes (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for critical low/high temperature limits on NCT6106 (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for NCT6102D/6106D (Dean Nelson) [1260117] - [hwmon] nct6775: Support two SuperIO chips in the same system (Dean Nelson) [1260117] - [hwmon] nct6775: Allocate attributes dynamically from templates (Dean Nelson) [1260117] - [hwmon] nct6775: Drop unsupported fan alarm attributes for NCT6775 (Dean Nelson) [1260117] - [hwmon] nct6775: Fix temperature alarm attributes (Dean Nelson) [1260117] - [hwmon] nct6775: Do not create non-existing attributes (Dean Nelson) [1260117] - [hwmon] nct6775: Fix coding style problems (Dean Nelson) [1260117] - [hwmon] nct6775: Constify strings (Dean Nelson) [1260117] - [hwmon] nct6775: Use ARRAY_SIZE for loops where possible (Dean Nelson) [1260117] - [hwmon] nct6775: Enable both AUXTIN and VIN3 on NCT6776 (Dean Nelson) [1260117] - [hwmon] nct6775: Expand scope of supported chips (Dean Nelson) [1260117] - [hwmon] nct6775: Drop read/write lock (Dean Nelson) [1260117] - [hwmon] nct6775: Only report VID if supported and enabled (Dean Nelson) [1260117] - [hwmon] nct6775: Detect and report additional temperature sources (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for weighted fan control (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for automatic fan control (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for pwm, pwm_mode, and pwm_enable (Dean Nelson) [1260117] - [hwmon] nct6775: Add power management support (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for fan debounce module parameter (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for fanX_pulses sysfs attribute (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for fan speed attributes (Dean Nelson) [1260117] - [hwmon] nct6775: Add support for temperature sensors (Dean Nelson) [1260117] - [hwmon] nct6775: Add case open detection (Dean Nelson) [1260117] - [hwmon] Driver for Nuvoton NCT6775F, NCT6776F, and NCT6779D (Dean Nelson) [1260117] - [netdrv] iwlwifi: edit the 3165 series and 8000 series PCI IDs (Stanislaw Gruszka) [1286871] - [netdrv] iwlwifi: Add new PCI IDs for the 8260 series (Stanislaw Gruszka) [1286871] - [mm] fix swapops.h:131 bug if remap_file_pages raced migration (Rafael Aquini) [1184296] - [mm] rmap: make rmap_walk to get the rmap_walk_control argument (Rafael Aquini) [1184296] - [mm] mremap: enforce rmap src/dst vma ordering in case of vma_merge() succeeding in copy_vma (Rafael Aquini) [1184296] - [scsi] sd: name space exhaustion causes system hang (Ewan Milne) [1088509] - [net] cnic: Add the interfaces to get FC-NPIV table (Maurizio Lombardi) [1252116] - [net] cnic: Populate upper layer driver state in MFW (Maurizio Lombardi) [1252116] - [net] bnx2-cnic: Driver Version Update (Maurizio Lombardi) [1252116] - [net] bnx2-cnic: Driver Rebranding Changes (Maurizio Lombardi) [1252116] - [scsi] megaraid_sas: touch the version string (Tomas Henzl) [1254762] - [scsi] megaraid_sas: Make tape drives visible on PERC5 controllers (Tomas Henzl) [1254762] - [scsi] megaraid_sas: Expose TAPE drives unconditionally (Tomas Henzl) [1254762]- [kernel] relay: move remove_buf_file inside relay_close_buf (Eric Sandeen) [501457] - [dm] snapshot: fix a possible invalid memory access on unload (Mike Snitzer) [1282900] - [dm] fix ioctl retry termination with signal (Mike Snitzer) [1282900] - [dm] redhat: add CONFIG_DM_CACHE_SMQ option to config-generic-rhel (Mike Snitzer) [1282900] - [dm] dm cache: the CLEAN_SHUTDOWN flag was not being set (Mike Snitzer) [1282900] - [dm] dm cache: fix NULL pointer when switching from cleaner policy (Mike Snitzer) [1282900] - [dm] dm cache: fix use after freeing migrations (Mike Snitzer) [1282900] - [dm] dm cache: small cleanups related to deferred prison cell cleanup (Mike Snitzer) [1282900] - [dm] dm cache: fix leaking of deferred bio prison cells (Mike Snitzer) [1282900] - [dm] dm cache: move wake_waker from free_migrations to where it is needed (Mike Snitzer) [1282900] - [dm] dm cache policy smq: change the mutex to a spinlock (Mike Snitzer) [1282900] - [dm] dm persistent data: eliminate unnecessary return values (Mike Snitzer) [1282900] - [dm] dm thin: restore requested 'error_if_no_space' setting on OODS to WRITE transition (Mike Snitzer) [1282900] - [dm] dm thin: fix missing pool reference count decrement in pool_ctr error path (Mike Snitzer) [1282900] - [dm] dm btree: fix leak of bufio-backed block in btree_split_beneath error path (Mike Snitzer) [1282900] - [dm] dm btree remove: fix a bug when rebalancing nodes after removal (Mike Snitzer) [1282900] - [dm] dm btree remove: remove unused function get_nr_entries (Mike Snitzer) [1282900] - [dm] dm btree: remove unused "dm_block_t root" parameter in btree_split_sibling (Mike Snitzer) [1282900] - [dm] dm switch: simplify conditional in alloc_region_table (Mike Snitzer) [1282900] - [dm] dm delay: document that offsets are specified in sectors (Mike Snitzer) [1282900] - [dm] dm delay: capitalize the start of an delay_ctr error message (Mike Snitzer) [1282900] - [dm] dm delay: Use DM_MAPIO macros instead of open-coded equivalents (Mike Snitzer) [1282900] - [dm] dm linear: remove redundant target name from error messages (Mike Snitzer) [1282900] - [dm] dm raid: fix round up of default region size (Mike Snitzer) [1282900] - [dm] convert ffs to __ffs (Mike Snitzer) [1282900] - [dm] remove unlikely() before IS_ERR (Mike Snitzer) [1282900] - [dm] fix AB-BA deadlock in __dm_destroy (Mike Snitzer) [1282900] - [dm] fix add_disk() NULL pointer due to race with free_dev (Mike Snitzer) [1282900] - [dm] do not override error code returned from dm_get_device (Mike Snitzer) [1282900] - [dm] test return value for DM_MAPIO_SUBMITTED (Mike Snitzer) [1282900] - [dm] dm stats: report precise_timestamps and histogram in @stats_list output (Mike Snitzer) [1267632] - [dm] bump the ioctl version to 4.32.1 (Mike Snitzer) [1267632] - [dm] dm stats: add support for request-based DM devices (Mike Snitzer) [1267632] - [dm] dm stats: collect and report histogram of IO latencies (Mike Snitzer) [1267632] - [dm] dm stats: support precise timestamps (Mike Snitzer) [1267632] - [dm] dm stats: fix divide by zero if 'number_of_areas' arg is zero (Mike Snitzer) [1267632] - [dm] dm btree: add ref counting ops for the leaves of top level btrees (Mike Snitzer) [1282900] - [dm] dm thin metadata: delete btrees when releasing metadata snapshot (Mike Snitzer) [1282900] - [dm] dm thin: return -ENOSPC when erroring retry list due to out of data space (Mike Snitzer) [1282900] - [dm] dm thin: display 'needs_check' in status if it is set (Mike Snitzer) [1282900] - [dm] dm thin: stay in out-of-data-space mode once no_space_timeout expires (Mike Snitzer) [1282900] - [dm] dm btree: silence lockdep lock inversion in dm_btree_del (Mike Snitzer) [1282900] - [dm] dm thin: allocate the cell_sort_array dynamically (Mike Snitzer) [1282900] - [dm] dm space map disk: fix sm_disk_count_is_more_than_one (Mike Snitzer) [1282900] - [dm] dm space map metadata: fix occasional leak of a metadata block on resize (Mike Snitzer) [1282900] - [dm] dm thin metadata: fix a race when entering fail mode (Mike Snitzer) [1282900] - [dm] dm thin: fail messages with EOPNOTSUPP when pool cannot handle messages (Mike Snitzer) [1282900] - [dm] dm thin metadata: remove in-core 'read_only' flag (Mike Snitzer) [1282900] - [dm] dm thin: cleanup schedule_zero to read more logically (Mike Snitzer) [1282900] - [dm] dm thin: cleanup overwrite's endio restore to be centralized (Mike Snitzer) [1282900] - [dm] dm cache: fix device destroy hang due to improper prealloc_used accounting (Mike Snitzer) [1282900] - [dm] dm cache policy smq: fix alloc_bitset check that always evaluates as false (Mike Snitzer) [1282900] - [dm] dm cache: avoid calls to prealloc_free_structs if possible (Mike Snitzer) [1282900] - [dm] dm cache: avoid preallocation if no work in writeback_some_dirty_blocks (Mike Snitzer) [1282900] - [dm] dm cache: display 'needs_check' in status if it is set (Mike Snitzer) [1282900] - [dm] dm cache policy smq: move 'dm-cache-default' module alias to SMQ (Mike Snitzer) [1282900] - [dm] dm cache policy smq: fix "default" version to be 1.4.0 (Mike Snitzer) [1282900] - [dm] dm cache: switch the "default" cache replacement policy from mq to smq (Mike Snitzer) [1282900] - [dm] dm cache: age and write back cache entries even without active IO (Mike Snitzer) [1282900] - [dm] dm cache: prefix all DMERR and DMINFO messages with cache device name (Mike Snitzer) [1282900] - [dm] dm cache: add fail io mode and needs_check flag (Mike Snitzer) [1282900] - [dm] dm cache: wake the worker thread every time we free a migration object (Mike Snitzer) [1282900] - [dm] dm cache: add stochastic-multi-queue - smq - policy (Mike Snitzer) [1282900] - [dm] dm cache: boost promotion of blocks that will be overwritten (Mike Snitzer) [1282900] - [dm] dm cache: defer whole cells (Mike Snitzer) [1282900] - [dm] dm bio prison: add dm_cell_promote_or_release (Mike Snitzer) [1282900] - [dm] dm cache: pull out some bitset utility functions for reuse (Mike Snitzer) [1282900] - [dm] dm cache: pass a new 'critical' flag to the policies when requesting writeback work (Mike Snitzer) [1282900] - [dm] dm cache: track IO to the origin device using io_tracker (Mike Snitzer) [1282900] - [dm] dm cache: add io_tracker (Mike Snitzer) [1282900] - [dm] dm cache: fix race when issuing a POLICY_REPLACE operation (Mike Snitzer) [1282900] - [dm] dm crypt: update wiki page URL (Mike Snitzer) [1282900] - [dm] dm stripe: drop useless exit point from dm_stripe_init() (Mike Snitzer) [1282900] - [dm] dm raid1: keep issuing IO after leg failure (Mike Snitzer) [1282900] - [dm] dm table: use bool function return values of true_false not 1_0 (Mike Snitzer) [1282900] - [dm] dm thin: remove stale 'trim' message documentation (Mike Snitzer) [1282900] - [dm] dm delay: use msecs_to_jiffies for time conversion (Mike Snitzer) [1282900] - [dm] dm log userspace base: fix compile warning (Mike Snitzer) [1282900] - [dm] dm log userspace transfer: match wait_for_completion_timeout return type (Mike Snitzer) [1282900] - [dm] dm cache policy mq: try not to writeback data that changed in the last second (Mike Snitzer) [1282900] - [dm] dm cache policy mq: remove unused generation member of struct entry (Mike Snitzer) [1282900] - [dm] dm cache policy mq: track entries hit this 'tick' via sentinel objects (Mike Snitzer) [1282900] - [dm] dm cache policy mq: remove queue_shift_down (Mike Snitzer) [1282900] - [dm] dm cache policy mq: keep track of the number of entries in a multiqueue (Mike Snitzer) [1282900] - [dm] dm log userspace: split flush_entry_pool to be per dirty-log (Mike Snitzer) [1282900] - [dm] dm io: deal with wandering queue limits when handling BIO_DISCARD (Mike Snitzer) [1282900] - [dm] dm io: reject unsupported DISCARD requests with EOPNOTSUPP (Mike Snitzer) [1282900] - [dm] dm kcopyd: prepare for additional safety checks for discards (Mike Snitzer) [1282900] - [dm] hold suspend_lock while suspending device during device deletion (Mike Snitzer) [1282900] - [dm] dm thin: fix to consistently zero-fill reads to unprovisioned blocks (Mike Snitzer) [1282900] - [dm] dm snapshot: remove unnecessary NULL checks before vfree calls (Mike Snitzer) [1282900] - [dm] dm mpath: simplify failure path of dm_multipath_init (Mike Snitzer) [1282900] - [dm] dm thin metadata: remove unused dm_pool_get_data_block_size (Mike Snitzer) [1282900] - [dm] dm ioctl: fix stale comment above dm_get_inactive_table (Mike Snitzer) [1282900] - [dm] dm crypt: update url in CONFIG_DM_CRYPT help text (Mike Snitzer) [1282900] - [dm] dm-bufio: fix time comparison to use time_after_eq (Mike Snitzer) [1282900] - [dm] use time_in_range and time_after (Mike Snitzer) [1282900] - [dm] dm-raid: fix a couple integer overflows (Mike Snitzer) [1282900]- [net] ipv6: addrconf: validate new MTU before applying it (Aaron Conole) [1250773] - [net] xfrm: Fix memory leak in xfrm_state_update (Paolo Abeni) [1271720] - [net] sctp: allow authenticating DATA chunks that are bundled with COOKIE_ECHO (Xin Long) [1275535] - [net] sctp: do not reset the overall_error_count in SHUTDOWN_RECEIVE state (Xin Long) [1276847] - [net] sctp: asconf's process should verify address parameter is in the beginning (Xin Long) [1246941] - [net] sctp: ASCONF-ACK with Unresolvable Address should be sent (Xin Long) [1241866] - [net] tcp_cubic: do not set epoch_start in the future (Hannes Frederic Sowa) [1275214] - [net] tcp_cubic: better follow cubic curve after idle period (Hannes Frederic Sowa) [1275214] - [net] tcp: add OFO snmp counters (Herbert Xu) [705409] - [net] netlink: With opcode INET_DIAG_BC_S_LE dport was compared in inet_diag_bc_run() (Phil Sutter) [1179769] - [net] bridge: fix hang on removal of bridge via netlink (Paolo Abeni) [1115904] - [net] bridge: bridge port parameters over netlink (Paolo Abeni) [1115904] - [net] bridge: implement rtnl_link_ops->get_size and rtnl_link_ops->fill_info (Paolo Abeni) [1115904] - [net] bridge: Assign rtnl_link_ops to bridge devices created via ioctl (Paolo Abeni) [1115904] - [net] bridge: fix a possible net_device leak (Paolo Abeni) [1115904] - [net] bridge: fix accidental creation of sysfs directory (Paolo Abeni) [1115904] - [net] bridge: allow creating bridge devices with netlink (Paolo Abeni) [1115904] - [net] sctp: add routing output fallback (Xin Long) [1229124] - [net] sctp: fix dst leak (Xin Long) [1229124] - [net] sctp: fix src address selection if using secondary addresses (Xin Long) [1229124] - [net] sctp: reduce indent level on sctp_v4_get_dst (Xin Long) [1229124] - [net] xfrm: fix for policy matching on outgoing interface (Phil Sutter) [1145624] - [net] sch_qfq: remove unused member of struct qfq_sched (Phil Sutter) [1152235] - [net] sch_qfq: remove redundant -if- control statement (Phil Sutter) [1152235] - [net] sch_qfq: remove a source of high packet delay/jitter (Phil Sutter) [1152235] - [net] sch_qfq: remove forward declaration of qfq_update_agg_ts (Phil Sutter) [1152235] - [net] sch_qfq: improve efficiency of make_eligible (Phil Sutter) [1152235] - [net] sch_qfq: remove a useless invocation of qfq_update_eligible (Phil Sutter) [1152235] - [net] sch_qfq: do not allow virtual time to jump if an aggregate is in service (Phil Sutter) [1152235] - [net] sch_qfq: prevent budget from wrapping around after a dequeue (Phil Sutter) [1152235] - [net] sch_qfq: serve activated aggregates immediately if the scheduler is empty (Phil Sutter) [1152235] - [net] sch_qfq: fix the update of eligible-group sets (Phil Sutter) [1152235] - [net] sch_qfq: properly cap timestamps in charge_actual_service (Phil Sutter) [1152235] - [net] sch_qfq: fair-queueing service at DRR cost (Phil Sutter) [1152235] - [net] pkt_sched: Fix warning false positives (Phil Sutter) [1152235] - [scsi] st: Destroy st_index_idr on module exit (Maurizio Lombardi) [875277] - [scsi] st: convert DRIVER_ATTR macros to DRIVER_ATTR_RO (Maurizio Lombardi) [875277] - [scsi] st: convert to using driver attr groups for sysfs (Maurizio Lombardi) [875277] - [scsi] st: implement tape statistics (Maurizio Lombardi) [875277] - [scsi] st: fix corruption of the st_modedef structures in st_set_options() (Maurizio Lombardi) [875277] - [scsi] st: convert class code to use dev_groups (Maurizio Lombardi) [875277] - [scsi] st: raise device limit (Maurizio Lombardi) [875277] - [scsi] st: clean up device file creation and removal (Maurizio Lombardi) [875277] - [scsi] st: get rid of scsi_tapes array (Maurizio Lombardi) [875277] - [scsi] st: clean up dev cleanup in st_probe (Maurizio Lombardi) [875277] - [scsi] st: Use static class attributes (Maurizio Lombardi) [875277] - [scsi] fnic: Use the local variable instead of I/O flag to acquire io_req_lock in fnic_queuecommand() to avoid deadloack (Maurizio Lombardi) [1253855] - [powerpc] nvram: print no error when pstore backend is not nvram (Gustavo Duarte) [1207778] - [cpufreq] fix memory leak in cpufreq_add_dev (Aristeu Rozanski) [1281727] - [hid] usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL (Herton R. Krzesinski) [1159319] - [watchdog] i6300esb: don't depend on X86 (David Gibson) [1245156] - [fs] devpts: plug the memory leak in kill_sb (Ian Kent) [1283557] - [char] tty: Fix unsafe bit ops in tty_throttle_safe/unthrottle_safe (Milos Vyletel) [1234862] - [security] selinux: special dontaudit for access checks (Marek Milkovic) [723722] - [security] selinux: make LSMs explicitly mask off permissions (Marek Milkovic) [723722] - [security] Don't leak a key reference if request_key tries to use a revoked keyring (David Howells) [1188442 1282745] - [security] keys: Fix the size of the key description passed to/from userspace (David Howells) [1282745] - [security] keys: Reinstate EPERM for a key type name beginning with a '.' (David Howells) [1282745] - [security] keys: Allow special keys eg. DNS results to be invalidated by CAP_SYS_ADMIN (David Howells) [1282745] - [security] keys: special dot prefixed keyring name bug fix (David Howells) [1282745] - [security] keys: Pre-clear struct key on allocation (David Howells) [1282745] - [security] keys: initialize root uid and session keyrings early (David Howells) [1282745] - [security] keys: Drop the permissions argument from __keyring_search_one (David Howells) [1282745] - [security] keys: key_is_dead should take a const key pointer argument (David Howells) [1282745] - [security] keys: Use bool in make_key_ref and is_key_possessed (David Howells) [1282745] - [security] keys: Skip key state checks when checking for possession (David Howells) [1282745] - [security] fix: compat_rw_copy_check_uvector misuse in aio, readv, writev, and security keys (David Howells) [1282745] - [security] keys: Use keyring_alloc() to create special keyrings (David Howells) [1282745] - [security] keys: Reduce initial permissions on keys (David Howells) [1282745] - [security] key: Fix resource leak (David Howells) [1282745] - [security] keys: linux/key-type.h needs linux/errno.h (David Howells) [1282745] - [security] keys: Fix some sparse warnings (David Howells) [1282745] - [security] key: Remove extraneous parentheses from rcu_assign_keypointer (David Howells) [1282745] - [security] security/keys/keyctl.c: suppress memory allocation failure warning (David Howells) [1282745] - [security] keys: Don't check for NULL key pointer in key_validate (David Howells) [1282745] - [security] keys: Do LRU discard in full keyrings (David Howells) [1282745] - [security] keys: Permit in-place link replacement in keyring list (David Howells) [1282745] - [security] keys: Perform RCU synchronisation on keys prior to key destruction (David Howells) [1282745] - [security] keys: Announce key type (un)registration (David Howells) [1282745] - [security] Created a function for setting timeouts on keys (David Howells) [1282745] - [char] tty ldisc: Close/Reopen race prevention should check the proper flag (Herton R. Krzesinski) [1233699] - [char] TTY: open/hangup race fixup (Herton R. Krzesinski) [1233699] - [char] TTY: don't allow reopen when ldisc is changing (Herton R. Krzesinski) [1233699] - [block] mtip32xx: increase wait time for hba reset (David Milburn) [1252349 1253433] - [block] mtip32xx: fix minor number (David Milburn) [1252349 1253433] - [block] mtip32xx: remove unnecessary sleep in mtip_ftl_rebuild_poll (David Milburn) [1252349 1253433] - [block] mtip32xx: Abort I/O during secure erase operation (David Milburn) [1252349 1253433] - [block] mtip32xx: fix incorrectly setting MTIP_DDF_SEC_LOCK_BIT (David Milburn) [1252349 1253433] - [block] mtip32xx: fix rmmod issue (David Milburn) [1252349 1253433] - [netdrv] e100: Release skb when DMA mapping is failed in e100_xmit_prepare (Ken Cox) [1150338] - [netdrv] e100: Add dma mapping error check (Ken Cox) [1150338] - [netdrv] e100: Add a check after pci_pool_create to avoid null pointer dereference (Ken Cox) [1150338] - [netdrv] ethernet/intel: Use setup_timer (Ken Cox) [1150338] - [netdrv] e100: don't initialize int object to zero (Ken Cox) [1150338] - [mm] ksm: unstable_tree_search_insert error checking cleanup (Andrea Arcangeli) [1262294 1274870] - [mm] ksm: use the helper method to do the hlist_empty check (Andrea Arcangeli) [1262294 1274870] - [mm] ksm: don't fail stable tree lookups if walking over stale stable_nodes (Andrea Arcangeli) [1262294 1274870] - [mm] ksm: add cond_resched() to the rmap_walks (Andrea Arcangeli) [1262294 1274870] - [mm] shm: fix null pointer deref when userspace specifies invalid hugepage size (Aaron Tomlin) [1168187] - [mm] hugetlbfs: fix mmap failure in unaligned size request (Aaron Tomlin) [1168187] - [mm] support more pagesizes for MAP_HUGETLB/SHM_HUGETLB (Aaron Tomlin) [1168187] - [mm] hugetlbfs: fix alignment of huge page requests (Aaron Tomlin) [1168187] - [edac] sb_edac: look harder for DDRIO on Haswell systems (Aristeu Rozanski) [1112412] - [edac] sb_edac: correctly fetch DIMM width on Ivy Bridge and Haswell (Aristeu Rozanski) [1112412] - [net] ipv6: fix crash on ICMPv6 redirects with prohibited/blackholed source (Xin Long) [1278273] - [net] sctp: translate host order to network order when setting a hmacid (Xin Long) [1270481] - [net] fix tcp_info uapi breakage (Paolo Abeni) [1191738] - [net] ipv6: fix bad free of addrconf_init_net (Paolo Abeni) [1278372] - [net] netfilter: nf_ct_sctp: minimal multihoming support (Xin Long) [1267612] - [mm] vmalloc.c: unbreak __vunmap (Jan Stancek) [1286024] - [fs] nfs: Fetch MOUNTED_ON_FILEID when updating an inode (Benjamin Coddington) [1223978] - [fs] nfsv3: Use the readdir fileid as the mounted-on-fileid (Benjamin Coddington) [1223978] - [fs] nfs: Fix use of nfs_attr_use_mounted_on_fileid() (Benjamin Coddington) [1223978] - [fs] nfs: Fix possible endless state recovery wait (Benjamin Coddington) [1093904] - [fs] nfs: Fix comparison between DS address lists (Steve Dickson) [1282622] - [fs] nfs: pnfs: loop over multipath addrs on connect (Steve Dickson) [1282622] - [fs] nfs: Parse and store all multipath DS addresses (Steve Dickson) [1282622] - [fs] nfs: pnfs IPv6 support (Steve Dickson) [1282622] - [fs] xfs: incorporate sysfs/kobject in xfsstats: handlers take kobjects (Bill O'Donnell) [1205640] - [fs] xfs: stats are no longer dependent on CONFIG_PROC_FS (Bill O'Donnell) [1205640] - [fs] xfs: fix an error code in xfs_fs_fill_super (Bill O'Donnell) [1205640] - [fs] xfs: per-filesystem stats counter implementation (Bill O'Donnell) [1205640] - [fs] xfs: per-filesystem stats in sysfs (Bill O'Donnell) [1205640] - [fs] xfs: pass xfsstats structures to handlers and macros (Bill O'Donnell) [1205640] - [fs] xfs: consolidate sysfs ops (Bill O'Donnell) [1205640] - [fs] xfs: remove unused procfs code (Bill O'Donnell) [1205640] - [fs] xfs: create symlink proc/fs/xfs/stat to sys/fs/xfs/stats (Bill O'Donnell) [1205640] - [fs] xfs: create global stats and stats_clear in sysfs (Bill O'Donnell) [1205640] - [fs] xfs: add log attributes for log lsn and grant head data (Bill O'Donnell) [1205640] - [fs] xfs: add debug sysfs attribute set (Bill O'Donnell) [1205640] - [fs] xfs: add xlog sysfs kobject and attribute handlers (Bill O'Donnell) [1205640] - [fs] xfs: add xfs_mount sysfs kobject (Bill O'Donnell) [1205640] - [fs] xfs: add a sysfs kset (Bill O'Donnell) [1205640] - [fs] xfs: fix a couple error sequence jumps in xfs_mountfs (Bill O'Donnell) [1205640] - [fs] sysfs: create __ATTR_WO() (Bill O'Donnell) [1205640] - [fs] gfs2: Protect freeing directory hash table with i_lock spin_lock (Robert S Peterson) [1250663] - [fs] ext4: Check return value of sb_getblk() and friends (Lukas Czerner) [1276627] - [fs] ext3: Avoid underflow of in ext3_trim_fs() (Lukas Czerner) [1116006] - [fs] ext3: add necessary check in case IO error happens (Lukas Czerner) [1209315]- [md] md: clear Blocked flag on failed devices when array is read-only (Xiao Ni) [1177913] - [netdrv] e1000e: convert to new VLAN model (Ken Cox) [1213244] - [usb] xhci: Allocate correct amount of scratchpad buffers (Don Zickus) [1261704] - [ata] ahci: add new Intel device IDs (Steve Best) [1281823] - [usb] Revert "Update USB default wakeup settings" (Don Zickus) [1236589] - [perf] tools: Fix build on 32-bit machines with numactl-dev (Jiri Olsa) [1164407] - [netdrv] ibmveth: Don't receive packets when the napi budget == 0 (Gustavo Duarte) [1233272] - [netdrv] ibmveth: Add support for Large Receive Offload (Gustavo Duarte) [1233272] - [netdrv] ibmveth: Add GRO support (Gustavo Duarte) [1233272] - [netdrv] ibmveth: Add support for TSO (Gustavo Duarte) [1233272] - [netdrv] ibmveth: change rx buffer default allocation for CMO (Gustavo Duarte) [1233272] - [fs] vmcore: continue vmcore initialization if PT_NOTE is found empty (Baoquan He) [1097904] - [fs] vmcore: prevent PT_NOTE p_memsz overflow during header update (Baoquan He) [1097904] - [fs] proc/vmcore.c:mmap_vmcore: skip non-ram pages reported by hypervisors (Baoquan He) [1097904] - [s390] vmcore: implement remap_oldmem_pfn_range for s390 (Baoquan He) [1097904] - [fs] vmcore: introduce remap_oldmem_pfn_range (Baoquan He) [1097904] - [s390] kdump: Allow copy_oldmem_page copy to virtual memory (Baoquan He) [1097904] - [fs] s390/kdump: Disable mmap for s390 (Baoquan He) [1097904] - [fs] vmcore: support mmap on /proc/vmcore (Baoquan He) [1097904] - [fs] vmcore: calculate vmcore file size from buffer size and total size of vmcore objects (Baoquan He) [1097904] - [fs] vmcore: allow user process to remap ELF note segment buffer (Baoquan He) [1097904] - [fs] vmcore: allocate ELF note segment in the 2nd kernel vmalloc memory (Baoquan He) [1097904] - [kernel] vmalloc: introduce remap_vmalloc_range_partial (Baoquan He) [1097904] - [kernel] vmalloc: make find_vm_area check in range (Baoquan He) [1097904] - [fs] vmcore: treat memory chunks referenced by PT_LOAD program header entries in page-size boundary in vmcore_list (Baoquan He) [1097904] - [fs] vmcore: allocate buffer for ELF headers on page-size alignment (Baoquan He) [1097904] - [fs] vmcore: clean up read_vmcore (Baoquan He) [1097904] - [kernel] include/linux/mm.h: add PAGE_ALIGNED helper (Baoquan He) [1097904] - [fs] proc/vmcore.c: put if tests in the top of the while loop to reduce duplication (Baoquan He) [1097904] - [fs] proc/vmcore.c: add hook to read_from_oldmem to check for non-ram pages (Baoquan He) [1097904] - [s390] asm-generic, mm: pgtable: consolidate zero page helpers (Baoquan He) [1097904] - [fs] Revert "vmcore: prevent PT_NOTE p_memsz overflow during header update" (Baoquan He) [1097904] - [fs] Revert "vmcore: continue vmcore initialization if PT_NOTE is found empty" (Baoquan He) [1097904] - [pci] Use function 0 VPD for identical functions, regular VPD for others (Myron Stowe) [1258330] - [pci] Fix devfn for VPD access through function 0 (Myron Stowe) [1258330] - [pci] Add VPD function 0 quirk for Intel Ethernet devices (Myron Stowe) [1258330] - [pci] Add dev_flags bit to access VPD through function 0 (Myron Stowe) [1258330] - [virt] storvsc: use storage protocol version to determine storage capabilities (Vitaly Kuznetsov) [1267592] - [virt] storvsc: use correct defaults for values determined by protocol negotiation (Vitaly Kuznetsov) [1267592] - [virt] storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation (Vitaly Kuznetsov) [1267592] - [virt] storvsc: Use a single value to track protocol versions (Vitaly Kuznetsov) [1267592] - [virt] storvsc: Rather than look for sets of specific protocol versions, make decisions based on ranges (Vitaly Kuznetsov) [1267592] - [virt] hv: balloon: Enable dynamic memory protocol negotiation with Windows 10 hosts (Vitaly Kuznetsov) [1267592] - [virt] hv: vmbus: Update preferred vmbus protocol version to windows 10 (Vitaly Kuznetsov) [1267592] - [s390] mm: speedup storage key initialization (Hendrik Brueckner) [1234811] - [s390] memory hotplug: use pfmf instruction to initialize storage keys (Hendrik Brueckner) [1234811] - [s390] mm: use pfmf instruction to initialize storage keys (Hendrik Brueckner) [1234811] - [s390] facilities: cleanup PFMF and HPAGE machine facility detection (Hendrik Brueckner) [1234811] - [s390] enable large page support with CONFIG_DEBUG_PAGEALLOC (Hendrik Brueckner) [1234811] - [s390] memory hotplug: initialize storage keys (Hendrik Brueckner) [1234811] - [s390] mm: limit STACK_RND_MASK for compat tasks (Hendrik Brueckner) [1234811] - [s390] mm: align 64-bit PIE binaries to 4GB (Hendrik Brueckner) [1234811] - [s390] avoid z13 cache aliasing (Hendrik Brueckner) [1234811] - [s390] mm: zero page cache synonyms for zEC12 (Hendrik Brueckner) [1234811] - [s390] zero page cache synonyms (Hendrik Brueckner) [1234811] - [s390] kernel: use stnsm 255 instead of st