[mpich2-commits] r6691 - in mpich2/trunk/maint: . local_perl local_perl/lib local_perl/lib/YAML
goodell at mcs.anl.gov
goodell at mcs.anl.gov
Thu May 20 22:34:21 CDT 2010
Author: goodell
Date: 2010-05-20 22:34:21 -0500 (Thu, 20 May 2010)
New Revision: 6691
Added:
mpich2/trunk/maint/local_perl/
mpich2/trunk/maint/local_perl/README
mpich2/trunk/maint/local_perl/YAML-Tiny-1.41.tar.gz
mpich2/trunk/maint/local_perl/lib/
mpich2/trunk/maint/local_perl/lib/YAML/
mpich2/trunk/maint/local_perl/lib/YAML/Tiny.pm
Log:
add maint/local_perl directory, populated w/ YAML::Tiny
Added: mpich2/trunk/maint/local_perl/README
===================================================================
--- mpich2/trunk/maint/local_perl/README (rev 0)
+++ mpich2/trunk/maint/local_perl/README 2010-05-21 03:34:21 UTC (rev 6691)
@@ -0,0 +1,21 @@
+This is the "maint/local_perl/" directory for MPICH2. It contains any
+pure-perl modules needed by the MPICH2 maintainer scripts living in
+"maint/". Perl is not and should not be required to build MPICH2, so
+these modules should only be used by maintainer scripts.
+
+!!! Please don't put non-pure-perl modules here !!!
+
+Only the lib/ directory will be maintained unarchived in source control.
+The distribution tarballs will also be maintained. All of the extra
+stuff that comes with a distribution should not be committed.
+
+Scripts that need to use these modules should insert the following line
+near the top of the script (after the shebang line, before modules are
+loaded):
+
+-------8<-------
+use lib 'maint/local_perl/lib'
+-------8<-------
+
+Dave Goodell <goodell at mcs.anl.gov>
+2010-04-23
Added: mpich2/trunk/maint/local_perl/YAML-Tiny-1.41.tar.gz
===================================================================
--- mpich2/trunk/maint/local_perl/YAML-Tiny-1.41.tar.gz (rev 0)
+++ mpich2/trunk/maint/local_perl/YAML-Tiny-1.41.tar.gz 2010-05-21 03:34:21 UTC (rev 6691)
@@ -0,0 +1,261 @@
+×Í!KYAML-Tiny-1.41.tar ì[YsÛHösý
+íCK%ùR·¼-Q6wt
+EµÛO Q$1ÆÁA¢ùï÷ËÌ* @QêØVL,¢Pw~ü:¸¾:$ùæð¤ÿöäèÕ¿âç?§ïÞÑïÓw'áoÿóêääÍÉñ·ïO_¾:>9ywòþ~÷êø©mZ¿â({iÝo=ÿúóµ«ÿëádÐßdé?]ÿïß¾}Nÿ'oÞoëÿõéûÓWúøOýÿËõ¿ôUeæLwQ¦´IwÕ¨hj«2Uá±â£/eRÞAÏÔX½Nª¥¬NªJ±¡?W
µÉ45*ª«eQ)ÚáP sýç&Þè'
+|ûïÙ*ÊûE¹øO&3Û.½+S¦*N at N2+ûkµYѬkì?+òy²¨Kókiþ^'¥±rÖð{õP%©=;»¾ú¯ÄKÇjZ'iü;×vW]ß³³ûÑÃþÇÊÓ×ü®|ü?[a»¢4¼øí)6³E]ÎünÓzA£Uµ:;:*«¾ÆÑM1äÆfUÕÇzÑ_VYú_Mmþ£U íTbMª¢Ü´;ÙǼ¥I?²G´ãQUÖù·£ö½¼ø5Écó]hÁä7PC]ÿNòZÜQeâ_§ÏðÁigSú}ÿݱÊLZïV7²rtY)}ÏÜ~n*]üòá#À»´VÕ«?^ÿW£óáÍýðÕÿß¾9=iâÿû7o(þ¿Ã¯?ãÿð£&¦Ì¬.æú¡I'5é\©è@WK£?Ý<èOìÉ©¾«§¸úJ¢.GmúÄ.M¬§^~YC>w_Ì«uTâ¢Îãâðmú?éé¢ÔûQ¥7pd]¬hÕ$L¥ÍZZ©¦BÑÞ ¬Þ[Bö:ü'þ(5!¾wó¼ÿéîê@ýì8xÝÓÿSçFüôÓRçÅjS&e¥÷ÏðÙ?õø eDzzÏúúýé;}Y«¦§Î£lZ&ñÂôôõ@¿>ymî}=06K,e ¯
+äÐÕbuöeê)ÉèabX½Õ2¡´+ÄŬÎL^õX*=[Fù"ÉÐ>íÒ´X¸¯Ô]i@R'Æm`5â.rª´õѱ±É"º*Äw£(x1ÄEFOìkÌ'¥ª¯?n at l$gAÕoØLòÊ %ÑIjQGe¿Íîtp=kH><ÄÈ´@t¨j¸Á¼ø0È1tm¡ù¾$óÕ*%ÓÆ$b®¼cì²l ¿ÅÐ{ʪ,% ÐzYX,A÷´²¶¢³¾Þ¿/2ãÞzî(°iýD}L˨Ü<+òÜV at týýµ¨õ,ÊÕfRËÝÑk¡¾¢å|Y\¯!ܾ vߣGDNiæ¦,ðät×c#\8¼¯oëRí¦Ê>1ºPZô2zdÝú½µ®xH<D&±r!FÀþxÄÑ:óÖkD¿E" +3<Ò&MÝâUÖÂTì^îE+þìµTÒg£;Äë0;
+gB%mëܬ
^/ôb?~»oy±nö2BK;C̪ôb'.Ã˲JrH(rýXÙ¢&1Y)Å"¥AĦäÙÈ&[¶ßòĺ,ÉaKV
¬"WâwS"@n)üsl3e]¬Xáa2MP8$.üÐÎN;õÊ[ÌÉr!K|l¾GÙ*Å6³õ
7$µ4ìnøùvçH¡æñ) z8Ûe$Ø*h(´2èÚi½_%ù«ÖñÆ«×XY`Y´_`t}=14TØe±&È*Nù¶àMÅTð¯Ä¹®ÙeR½Ukh³2+{¦÷O8ýHÞ"¼¼É÷_@vpog AZ/äcÐÔ,àÞØ,gWÙz¡:°ç S`xh¤Â!-tÅñÖ1B{M`G}к74veãSmM|ǶÑä¼Àû%eM:¤¯Gó')
)O$ðZÄl:ĤVÿ
+( xò(ë¦Hë´ZÖÞ,$¹ÄMB) $ÒèË(©@Hã§Î
ÔÉP5Hµ0KÚ á8%½
+½<íT@Ö§²Kznz|D j ð<ÛIRóîd²¢Ç `qM)8GEóá1ÅÃRX@ºò@i.uÏcP¦&I\MºNÑ@ÅO«±qâY¶Ûà7ò
+ÑrøDqæ@
+bK;b-z¨d,G±×M´U:«úÁ
+
u3ɼY1òêÖZæwåtT= Æ´#ùÈ\ĹØÙµ¤æ9lÊjx3®ôÝÃGÔzÚÕ{j2_ßëÁÍ
>¿½¹MF·7÷úòv?ï¾n>õôÅè~2}| G´P]ß^.Gçú@©cv !g|,]P-0e]ß\ Ø=E2@¼¯Vi4kÑIaEJÄFV3 Kȹ
+±ø,¿W¹ÊFUÏ6NAzïNÈÛ6UO at IC=Ç*xpÞcN¦¸.ìwÓA.ó
OðÄ@
(M¡$ï"´·ü¦ÑúL+aZÀ8µNjÎ|U¸³¦&Ã
^PyIQ@P$ĺàªü+
+â_ÂëhíFÛÏ!à^³Îc\>KkÂåtBQm®ºÇ¹òzÑ{áá{C
+ÚÎ8Eq´Ï^aõrÄyòG
*§ßåÉÝZô+¦áláDSF]ueöpäIìîì$¢¸8×e{¹7ð«<1qÏ2ÞN_dÛ¯xJ ôÏ#ÅRLT2~ÖÊô>µæVr¦ñ oS`sŹÃ4VÖ¦i/K§øÓbþ)ÑfWñ©wÍ&\ò´ð8²äLæäìt~
+¤¿CD7¸%Á¬Y]Ô6Óm8lÃlÓr} b¡#2\8ÄÏÄ,2Ñ>ÁPßYQÚ$ý{ø&¯YæoÕRÑÑêhjMS(mÁñy
+£Ä¶î~Wt0fÅWóî¥t+à¬]
+E5Z2 Óøbée¹±ðÔ[5;²/Å"¾"#±9¾U#À®EAÌ¢üúÝÜp.ÈyÝÚp¼ðTî6*·CZµ¬-Ð"û¬wô\Þ|j¥ÓU7ºÈ¾#
è{ÇÚ 4 Ýeð§Ê.¬ rö·Õ?j+ÅA
+å/¤Ê"äÖÞØ,ERöc9T%ÎÈÛ>êÄdåbn®°¦OΧÇÌtÃG #Äù«T
+
+EÊOYU¾é3«9§/ÛáÎ+Þa]Ì© qÈ qí-òû]RƼÊ5
nvg·"ö@$í0HB¥«Â0úJtðpM-O.éT 6²A~HÝc>½3\6b¨äê
+1ògIq:êtPð.Iø ?ò¼¨3¨OçÒ*û3qLqÌ©}B¤¨<zM5úwZÖ/>h{Ücð¸é èF-ãïq¿á9õy¶¢[ÿY?Ý7ßgcÎåÈíH»Ú÷½¸©§I©}£h±Ôñ]éö$®=b]må.øâVc[õ¹sKfRñs§ÌeÆù¸Öà¹^L(ãqD
+Wk\ã
%B¿á@Ìs~æ"(-rì¶a4íü0ÐbkàRdLtuA²T-Udæ¡FDUØïº
+é·lAC>ûÉVdánr÷è¾þXWÏ¡fÁ®tÿ@¡A r"±/'!Nt GÂ/Ý«>,=iÉÝ
+©ÇPvÀÿ;õ¨âi¶tÇxpXs´~>àQØ*Í"*ct>/é5%XéZMðb/è֥ܯR8¤ s0m·³SJ*²î¿X)Ö±î÷Û£¤&1ßM)eªïiIë©Ú%ì êajRê7øÈîÔxåT$rsQDßÖ*ÌIe§+{Ô}_
+½`4ôw¤´Î$©"î%ª!ªà;ü jmÃÏ´ôñ. ®Í\\\x¥©6s½ybwð?#¬.íøåËëòëbú7j{øÆ4t7«+
+6d¿ÙÀÇò
+¯ãgàEji9Æøä3!Ë®Àr´J¥3Y)m^Ns|ØçÒ3(E"Ò{®qà}õåòÿ áX¥Ê©k,*X|í6mãr`¨[qÔSn¢Æ{÷ôc&²d"WÜ3zc¢¯Iè¯Zh³é9Ðì°ONWIÒÎ=`æ¥ÁSr3¥GÃNP¡Uö8·:9?lu·Ð¹@µÿ»¬k¨TÖ³ç,'Éeñÿ ä~K¶R£t.|Ô.]×|[XQ
+r Pü'_
JN´æENpÂ^Ô6³«å;$
é%?äFXôHÅUÅC)}_O}øèT×ó66H/Jèà7|Ö¤?ZÄ·ºÜÝ* Bºh¼dÆ
+i
5Æ.'ºzY=!Ë<åFª«"PY¥µåJ!²¶ÈÅ*æÑÚó$O¤¯Iõ[/±´LVrM9K\u¢Ó4
+¿j9êëÏP÷#ÁMAÏTÑ
+ímß¶t|®Ï¸§ëaÄ _»5]¯íSÍ,m:·3D4å"µt ³Ï¢¿qÚÌ`Â/÷
A¢ø×¤.,Åâ¯^¤RjG»±É÷w(ÒÓ@¡(d,%LssÛsGîïv
<=ðÝ %¶OW"Ò¢3çg6ã£åþG1¾Ü%/w.mÞ"¼x˶³A -%Æç3ãIÞkêv'2tÝ#FØ ¨KÕGÛöb¶BLglõja at voÛ¬/QFZ%¨Ó¸q-øS*Å]h@Ì µù¾¢þ)W>.YûVWò4do1DY3+º§«öôǾtw#öÇ÷1QM±¾rYÒDBJT!öÜEUã^¸ùæ¥ ©Ò.âÙ }ͪ¥¸ûtËöËÏ$e;ÍÒÆnC*¢V´ý(æèÿש4PøAoïDoÞ Â:qUm6¡^`3@ï¸÷
+ïhÙ¶épA¥¸ÜvoI]+íYÐ
k[
+Íí{äªSÔ2&\¾¤Ñº¹w%s£ººPA
+M}gÈ)Únï»nQ¢vBn¹E§û¼Õl0r|ä©õV>m!Å©ØùG®Îâü[âë°÷}¹¶¨Ì¸|ÿH÷¶ÝüªÎÀç8«§äݰcÍ<Ñö^Õíå÷æ.¸5 ÁKÏ\6²u+d×8×¥ëXc"¯¶ýC[#º*þªØ¤!%ß'mûøÚ)þFzi=O.¬¶:ðPÑ)õU\*§\³iÄSØG©ý·:^pMPIPRºë\ MÊ1ÜÍQ~Ò#h×SEïËEn¸±<ÿ®µµ±½Ð ç²É
+øþcßÏL7* =Æ ¨q§®Ï>3ÓÀ<[ *8âIǯ¶#GPGÎmèé»M5J)7Jħ ^8¬mi¦e¬Ná F®fäº CDjÕ¸ÌîÚμ(±FðËõÛ:T W>ãwîB]oÏùDº; ǬSn2\©ËbB`sÈwõ_¸À Ê-x°¥ðÞªÜ̧é7¡$ARjºlFÊ75I¦Æ^ºj
+VÞQÛxÙ£ BqIªéà°w¯ÞÊ|û¥ÓCÂ?&%à,-ͤåâQ¨Õw÷YF¥%å¬Î,kÁÌÓ(mc· ·¦9]Ñ_cøE 4þf`çz*ªØÂcé²rÔéê£×64S»¬ÌÏc¶qAEýwXêÆ5¼¸ÃæÞ|{eT ÃhBV~è¾sÓ
þJÍåNbzQºý@c[9*Vò}£$F¦OqDRûJ¦ ¼õ¯¸uNÓ×̰)°ÑbÎ_çSKÈq§4eöîJ¾ï£Q¹'q\:Èê4ö¹P^äìÚxMÌ
+yék{Ö+ßWÁ¤£¸ÈEþ1OÌ#µ]²ÉþsC¦æhõÎH½1$G¤Ü§4 .º$(QxY$'[NZ)O¡t
+ìUÖ®&BæQVNéêe+UIBµÕ;®ý Ùá#7;º«Û)Ò}ã"¨¤4ê*ÑiÇò§ö²),É%<·(äɸ¼V&zl¹oãXZdÐõÂÐòÕP·ÙL £¹ë1 Â
++í\çÕp^IÃ&çô0ÜÛ.lÔÖ`b;wIZ
+îáê8/Ýg«
H^°Hß tÓ"ÞìPéO2mòì$7ÉÏ8æ1áÑ7Í»oM43°ÏLtKê'äJß}}Ou¶àª Ä ¨Ó¥¯]%eâ#5,ylóU
+º|#5©÷NcóJ9TËHÑ#¢~µÃyñ´ÿ¤B
+Rjú ß<ý¼Î¦¦l\ µÔ´sQ®ºK!q5`÷(v¾²'·ÀÍ<y3Ñ6ºfèVÑá\Ê3Oe¹zrÔî¯Öì2'¬ÓÍãÁî-^@¯ð@ óÈÞ¿B
¨úýÄ(urÜàEçTÚ¸ã'#<g&A·3Ó®äã¹[0Z¬¿É²æïúyN
+~HEµE³ Á&ò7)2n¿ÁhOuN{nÙþúCr/+9 é#Úfp¸¯n)o±Ì½ÏÁØã»^Qjþ*³84µÆ¦i0ZÈùïÅt¿n"#+Aß!EG;À,ßéD9
+=ßÜê/ñxp3ù
+¥ôõÇáùàá~¨'ún|ûi<¸Ö£{?`z¡/Çá¾½ÔçãOñ"Ü'N
+°êÿþ2ÞLôÝp|=L°Ûǯjpwͯújðø/çûþòyx£oi÷/#s?ÐúÑþ2MF7h?ESãѧÏýùöêb8æÑ×#Î/ê»Áx2Þ?.:<©½Á=¨ÞÓ_FÏ·vð6¸ùªÿ2º¹èéá7þr7Þû·c5ºÁC<Ý_=\ðTíGìps;ÀMnY2Úõ»1·êz8øn&£«¤yÝËÑäG°èBùùÃÕ L<ïnï}fÒAÜãÑý_4pbýëà ٲÅ×sV½¨¸Õ_o#ÀõÕEGÍ$¦¡¾^Ï'£=
8åþáZDw~{?añ\]éá9¨¿êûáøçÑ9Ka<¼ûßöÞu¯$Y¯ÔS
çº%!-Û´¹¹Í
+Àíî¿ñѯ
+¨FRiT1mÓ÷yöÓ¾Ày¯Ý[feV2i,Uå%222222.ë;£Í½leoyIµ²ýNÿ»Ý78Òíÿ~A"pm"p?¡m90BcÎßï@×8;É/PxOüoÎû×{îÛõß\²pþMô¨L m*_?tbÂ\ß \À¼<; èÀéÙZ»þóö¡A ص#&Ù÷p{s¿À{ ;ç7.`Ãúïw8
ð@qÖa.±¤A/ßÙUô}'¤3÷¦=÷ÍÞ!tr´îÄðïÆ6v¶w_´Ö77ßÀ²ÂXóð,´]/-ä-G%"ÏWë;oÞ(Ó÷
Ø$bE&KÎÜWÐÕæk=×Z±¿¹¯a*6¶¡ØúÖ/;´ê¤ rGp²'-QäØå&ðηp.Mz°&},ÊWSÙ÷=Ñq[!ËÒ"ʸû^ãÂ;ó±'-D³Àb«²scÕ×,¦£z
+ùpÇs@$ÇuÇS «;5´[æCH°ÛÖãOÝÓá Á&_Z,b¶ÝÈ ò3m¤l@÷ÈaÏ/½"ÝP©Ûä+çÔÑ%P}!¨[_6±
òmÃw -}©FE.s+ #ÍUDð#Kó+»µÆ.E`ó½HbgE^ºÕùÎè3ûcX#(¹ò!z*y½¦+Ê&ì⿦I穸¦¸Mðµõ*¾&ÂзX(éÅ»c×@&é.Góó%MÒÔxmîÈvý
+¿¸qÞt¿
jôj|ï±ó#yûx'è 7 ·PUÐTbÒQÕN}_ IBгåï@t#G</
+È
§ÍoÙoÜæ Öq°©¤60LÐù¶>)gºÑ-¹s¨§æôÖo]:)âcZë|N£¯¨Q¨AÔ3ÐÂaÐAeÚ®°ù8ê_a©]á§Ý<æhã=¯æ %bh{ýüo9mÀv½§ìãÁãnjôÔBtË\P¬j{¾r÷9Eã:
$sÀ¶+Å6 at nè³ERÜ-76®§>S:ÃJo
+vÊtÝßF¢uåA<'¶îGîǹ61äJÖZ¿Ê»Æ¸yɲIW4>-m
+ÖÔ(ûrRvÅf±?Ddï³Îõd ë øLFa¯ïwî?âóélKÓn´¢Ø
+é~¯WÔDhK(à
+Lļ
+©ñ êç#aô
+&ÑjÚÅ·ßiïúÅE
Ì·ÖuØCý^½
-~ò 1ÛGN¯úÑ.ÎÏ}¾ûÑñ:Pf£ÓÆf{»ÛYöwDÞ¼Ø;ÐÈìy
+á`¬Ç%\â"`àW xíÉzÝw'ùÒco(¿t> `Õ²N¸jtdDbãõçäykÂqÚïT¦gèi¸Ä
+2Ý%EHܵHýxóà·'ónÊÑCÑ_ö¸5)jcM ëÔN|æu?
õ<,}Ü*;a§)Úm7í©Üþ)Fß9má½!eÔµ,Äf"#ÔRÊ»íuèÌíÿ¼ #×6ÌXB8ÚEÀÑú¢äbÆ~
æ<)3[)Þ£K
+n\K/)6câd{9DY,a´U_án×tw³÷ß{õàFÄ^®ñU3! áz¹ºSN*Æâ@ôâDÛ1ÜÑUÂdðVEþ6ßL]SVmö¾Zr2OT)½8µ÷8ry¨ÞZ¦ih
+ÉÖê5\wh'ÖZâ¢Áä.D+4¯¸Òk6HÒ1'$b×xJ
+£ÖI¦k«gÙ0^W½LZR¤ï§M)<Ùp´¥³f·«.!©ê¦Má
+i.b=
+ó³«,.`zG¹!]2âæ$¢á
+ÏÇÌÃr^!éºçdWɼÞÍæ$d Õü°[[`èÞ¥¨Ô)f\vØéÈ05¸Cͪz2£¶¾'ÍñsÃÅÙÉ%qÓ)Êl±´múÄe_iðÐú|§Æ6½t°ALxyÉY!¢tb¶®¬·zî M²Cã¡M*F'pGë'ì#Xë\ð½hheR$>["Uèô OmîÉu¬«¹Rç>eíìwa3Y§ï;2á)ÌÀ:¥rcÖ@Ç6´vJãÖï%_ïºûë_ÿ÷JC¾å*µ8êÏjõª¢7ôßNÛR
«Z¤¤¨*ܱTá®R
ï¡
+w*õkÛ¦ã<Ìÿ¼}iÿͽÅÿ]\\]JÄ\\Z}ÿøû>@Q
ðÌÙØþyg×ýâÌ.Ô.Ö®<sfãy°VûeûàÀ¼póH/ùgεMdv}æ8þWTeÎÙ]»Í]_¬¹y
+;\CâËõãõÍ#~w«ðÁØ@Xu°÷VúýÙ.`W¥nm¼Ûy³U«¤C,ãÉÇQ{óT÷bñ|¢W½YZ¥7s·wù²þîhï-^5Ö¶ñÎéÚýÉ
CMì:ïÆÃ.VPÍÁ FÞT«Ö«Ã«Æ¿ªÊ«Ö«_óºÁêSz5ïÖܹyg®¡ï¡p±®ÜÓRaÜîðÙÛÝúþöÁºuxIAéíöÑzØðÏÛ
+{:f±z0¦ºã
æQÆÍªÇ<¦Æ®#ó@°»6Yº_\wö½ìw°¯·üϰ÷ÜMØ;APÐÆç²3Ó¾rÿÝvôâeýý~ìÚíº{ñ8+@´Z9¸¬Ò>ñvP¤ønnûWXuD3ÇUÀxP(ªäP©íy0r3$_â²×ªº2pmA©Ë6ÀV}~¬æÔc{\Ï®fQÖ±àucôæåò"`zöð\Ù¢ºÓA@¦âíwoßæÓ¬aônwYÂBTº¨Ò6"v`Wò
+x<ài}ÿíõ/î_¿¤»_¿º_®¯Ýñ61âkQ2ÓôÉ»mH!(qí$Ëlîí¾ÚùùÝÁv\q¹ê³TåäÊRuéIFU½,UZRi}kk*b²k,VÒ5q
P
+9ÉrF1ÙßXzcgwýà·ú=D*ïÌX«}Nî<n\Ò_Jþ;Ø^ßz;åðß7È«Õr2þ÷âêCþ{ù Dæ¨4,¹Å[&opµ®¿ÝxÃ
+âQ*«£¥w>@ôAÇñý+wxBÊst)³¼Ø¿ÿúöMA9;\§°mrÅ¡{Ñ*[k±aý£15æ{QÀ~Ô6²VA<øÉ£¼ Yyî>»:vX)éuQk]ØðS]Þsk¼èM)ܶæ\õ}¾ ¶ý6ÊM}ôGô%÷oX¸\é} þËÈ-@ægn[Q5(j5¶ gâ¹ÅÒ²ý®þ@OAãE*gÐ#F¾"Nqù¦â¼âëoÑA]Ù¤çÚÒ`ôMpáÁ3rLN9Lª¥Ëpñ§$¥+ Å«h7
+27<4%,ûN#ì'xa߸(ö¸OÎgýXE¯3xðæR//r É$L¢1@~øÛîÞþáΡN1;É'®
¶æÑ Ô97J±¨ô°¯RjîIË;ׯÄ!NÔº{¿Æ¤Æ#
+JQ9ô§¯Â°ænxæ#t.þ´aÿÜu*ĦÕ</ãi~f¿u7ÉLFÕÆJæW^»§Õ¸âZÇ¿Lµ²×õÅ &ѯ³ê#Ósó¤&¹jÃÉm>ÕòO\F2-¬jÎ4J×>?×¾³xýÌ*!UÅef¯á+¼NT©U^_§ñ¨ 4½¾g_5S@ë_X3dy¡utßPtÝLÔ%ì>Ôå¹48«p:Ä3ª¿¬æ¹©Ï¬»Å¤rJ&Ã_·Ò¤®cR¨|p?Àäa¾àæO¼ÿóGÞýBé¡<oR¥4EäêíÃÍ}
+ªØ)°±FF î ¡Ý ´ßI¤úW- ÈDJ£{Ã&ûqs@·î¸M°AiÌi;âÍ v¬sLÀLúmiÛ?*ÎZì¬î(h'4ܺ"6õNúêO6< Ûü5á2üS¯!cpgTaC¢x£nÉMés¥¯¦;î ÕïÁ¾*tlÿ¿õ¶pe
|é3klSR45T^[ñ5¹OmûÙ{À¾Ý^ ÑmÌ :@E5 ²_Ón|à¨[ùàßrÐ=¹Ù+),é»RªPrwþ:í°ñE¢(6;àï_è§r$g
Rnÿ%S¸+hËÃܼz&ãËËß³ä{KW-8H2teÉFÐfP¶¥.rø
+¬Óç(ga'ßw;+î¾-ÈYZ_l{h({s_YÉ¡`Æ=p at TtÌ
Ã-4ãü)Pî¨'"v§¹"»¾-äp`´È+-½èÂ0÷}½EÌz"ëH
+¹*R6½ÆÑJ°«¢ß>ñMeÒ*ôçîcàÁ
õÂ+Ø*A,·.NZ×GVäðÇD3®¢3¢ ÅJÈ÷Ô¿Ä«/6gã0Jû(-!Åi;á(Lé k£ÈSäx·X%÷PBâ³Wy³ç]]G @£]ÓǨF+nHÐpÈsL"_c°ð¬Ó0@'yÒÔÍ¢x3)¾7ïj(P?ëÎUW/ø¡rÀájïØ}tÓQÖ(kÎ+ÆýÐ{!s5h2Ó µ$& ¸.EÁ#!¶ë3
+÷rªôÕ2í¡{R±ßº|dÇ8$Û eÄWNa.0´06´³û{-è@ð!F±=34Èê÷×:¾>jáüæ°mn
}^f¯³¡K}½ux
+¶¶ÆíÓ&û$ì*v±ÔT¥Tqß=:ølõ¼S&©*óÅJµX}b÷U îFzXWhï¹è¦q_'Å4_hPÂ>)¥×ÔS°©3ª×E¯?vÌc6#8×Ïe]P9hõ3ú
é#¨åã.C$ÂJÄÉ[ñH5Iá|ÁÕAÜúW]òÒ5
+Zp f¯óAäGÚ4OåaY×eÓ2hLÍA»«v\òQ·ò[b¹@3d,+Ò9²¯J)Ê
+r&
">x[Ð A¦µH¢£áØLÆlQfGyÏ á ;lvvöãQRy%`K;Äqm~£bbRøímLHà}zá_EzÐ2._ pëèD $Hë¢AÔØ(/½Û˶ÀÄaUV¶]'n$ëýÈ·Çm©¬íâÒϱízé ZþòèÐ;O&ÂMÍxv#Ónúö'o)6"Ûr=ÆÕ¨¬UÆ¥*êÇBIñáÀ?Ãî6Çìbc¼ýÍmTÕ^óZ|èU«\2AA:ÌS|<è
íüx}}ò0×É;1÷Ú¨æØÛE¬ÑU^Æ6HòJÄVx)»*¦£úhÊ
+&O#d¼¾±ì4D~ÑMG4à±ãI®X,æ$"åV_X¡Ã¹áGe¯±z ÷hJïú¬zY lú9!ÎMl`@N$® }Uû4c<±Ôe¬wî§ÀcãÒn³I
+vàücöÅ'*ÈAºôþè8ÜE¦E¥È\òFW$ø2PêE*VJn£×iP":³àÒ£G½!§§³Q5qüe¡E¥VKè'ýÔÙ©~'þI}I!?rFi1Vg ú)vÏ=TÝ`$èÖI¦o)%úÈ`"Zðò¤ ²¢ã¸(MäÐà?Ú(#VLs¥_õé{Kú¬¸äø
+%&¦Mô¸)ò°(Òe3½¼Ãx§cB'-^ØKW¶>ä[×Êί
¯r¤)%Hp¤P9õ| +Á¸¤øOj ¢)¡ílsNKéÉcAËÖt EðU£4ÂMÓ@rݺ!
4AU"*FlîAHíd}¨Çã D´Èe§ô{=cÚ
+Þ/g(½öÍqÒl8 vÏkM,NÀq)¦À"/ø|%ôêÃ[¶ÈWíSt¨ç 7'>¾P¦
z¤°YDzeBmÕªÛwÜ%0ºôâö(¡çYk;6ÉÆ¦+z>l\ÍDÞ|Xû
+û8OQ+ÓO]ô?wdèÊîðÙ¸Ý¾Òø,¢sÒæ<ypºÖ7OؾÒä?LÓãaD
+¾÷ó4_tZA;ÑZ 0°çâ+è¯6Ï=<Óà ý~ ¼|u9ð)VIqÎP$õÃͲ¨¦æ¢pïwj6ÉxÆ:¼Y¨èÈÁ©&+Me6Ô¨p$
+Í®0k;4´ÕeTÛû´m}FÁÙ:Ö'» qJÃ4ø5w¼®Ò:ú§uOà¤LÑ+Þ®Ô¯Ê
+5/«í)bI´»ÃÒVϲÐù¡±°)ò984¶Z¸ñDÞT¢'aI6lMÊß¡B÷Ðô"+ê(fÌòU°!`FR¢GªþSNx`±ëUÕ¯ÅõYß?Qï
ÃKÓ{b>HÙã7[ 8ìø¶èëÎiÑrÑÍëêãýuõEºRÈýv=]ß[O³9%©OF%ÿ¹frâø!ÇbÐä5åP:¼Þ×:Ⱥh¨k99Dܦr>g`&ªËÉiç6ÿÙ5
+ïw©èíÉIG$ʰ-nõâÏó§ua:b´(@ïÙNì@ÎÅÈRJY¥£*Ï?¡RªÈïøæ¿è®Ç_ìWå¢
+3ö[VFI«Õ
+Y?û8@÷ýCÎôUm;Bå»#gûá£;g7ÀWZ_®Õsij^+¦3kmY@F¦HN²Óü¢ivc ´
+y6näÃÇI <~½TÇP×ðݯ'sI P×§i~¼çÂ$7PZsÚXUfhÅ%¥r5J¢¤e¤Ä"k¨YÄÚ
³^8è²ú«aJra½ÕrOÉ-túu¦jd'îÂ¥ËH§ÈêgX9Y44,u¸S
+ñ«zÄâ(°yð~ÓÔ¢h-ÏNìs¾
»%
+Áß8©Á1ou+fÔRºXÒÝ¿(éÈ(ô:ðYîAdt¬
+°ä`$:
+åfANäk´³ÞÔR¼cã¦L¬Àl¬×U&g¢9CA&¹äDÄÙú¨Ó ã£xIHñ
+hhée¸
+rP>-{Zâ¥w5¯GÆ#+¤/2î#¹½ÌÒ½ Ýâ&/4_[Y̱
èrÉmô¯Gë?ûèqa+ûÆT4ã<¡Ø½+3ÓÝõæMH}7W*rC Ø9U·V9ÝÌqJ
¦ôËMµß|b/ X*··
+4È_¸µÝçÄÎ0ÖÃÍߺà@úÕà ýwöùUHÒ¦EN+¾³Q¤8ë¾BÓ\4NÖ.¬ êmõf
}
+ª¸®]fÕ#éÑtð±©w${¦Y]*çF)»-N½Ð(nêÂGÑ<óìÍ¥éd3na¹uédIÞPqû²à²7^Ú¦YZØÒJS?EÈú. ¶7Î|ª9bfÊïx &§mø(lAêÚBDîpnÆ'÷a1ÅX°½´N³î·ÆAuÿ¢nÂÆîɬÑ]=
+¹m˺¡
¹? ú=Övü¨Ù?]@Ù ðÕñh°
$¸dç&Ð͹rÅ©ê=XõQÏ£³»/²AÚBb=Þðµ¨õhéÝ=¦ÌÑà,Oáò1¢U\tÂË8£{+ i'_¨HTeeXçv4Ékñb/ä0b,V/Xlõp{A$1¯i#eYUÖ¹ÅÜn½¨JNÅN:3.Å0ï(ú¦RìA£>þÆ1G`âðâ~=Á_çÝç(ÄËYiÐÏ(zäIºè~pð0â·ÛG¯÷¶Ð¼¾ã_jR=¬àEN"(F͵ñQ|ËÅW9±Û d¢Õû¯}1n=ÏsV'9Ú0</Ø=ѳÙ
+3F$HïòrnîAéÈ*çö@Ú3Ò
ó¯;IÉ#-pòÝãu
T|Þ÷©´ °5èÈïGúFÝCq\¾[ÂiùÚ¯ªs¦5<Ôä¦t¾ð£¾aGÇ-¤R£I¦§ Ð<(öñ#vÜÀïi@ÎÑf7¨0=&¬Å_/;?ÒMéI®ó
+ró¿Ïì©·9¹¨ PKÞ;+Ä´%=æäÇæ%`ß°Ïl9ê(S&Ï Mz¡!U6´&$¦Þmcù© ¯»©HBFÂú»P&rª¿Ø8IhäP¤¯ÔÀÏ7C*0±
W+Ífc¢×D6Ì´ªsB=L´ÁZî%@¿1F='¥VãN4ÑÊ),ǯçæÕ< `¯Þínrá¤%¿bÄ%tT~å I®ÄErb¹®ïï(ócÏw0½EJ®BÑþØÞJ|å´ÅlÒsJîIicÖpÀæÑcÃ0@Êý±O¬[Ôï¼q·®dO{hi&ikÐî:±¬ô|®¿Ã\-±ºEãu*m:dâD&f8ªÞ$SYi·ÑÜ
+¨-¨V«aèÏÿÎÍǶ£²Æ]ç#îa{<4ÄASDÈvn±)@S)Úq³ñ cNð~ÖÑñÏP6:» ¦D5Ë/Êc¿-8^Ы9î½÷^ôâ+}[h&hp fÑ
]ì@zrĤ@;)blÉA&sóñÉÚÆÈæcN[ô@çæÅ%mQ6>=IºlàTÍ9«,d$å°}Ìð?7/ù§nÑd²ù
+ÂôÊóĬÔpa·ëDªx£[òä²c¹¼ÛQ¬U @à*vØÛ.u)s=KRBváD^ ÊJÞ¿Ý´ÅBNæÕc9/Rxïÿ'8³f)² ðwÖÓ!Y3Ò
+^8±:Í
¥dëÜ5Ù¾Ñàá»ýý½#rÖá¦ç'Ìç6÷×w)(
+âÉ
+ÈóÛFYsZÀD0*
+º½í®¿9ÜÓó\0
+p8EgûúäÊWBݺxÕ-üpBªOª«k]VB¨@Ï:«c4Ë+nÿyjo:.uã´PVgƦiÇETC$W|ªÁ%NdFæF2xRò®JD&¬î5p*ت
+M#TÂDTX^/¥°^wÿ¡¦ÞFyX]^ÿ?:þÃjuã?TWþâ.?ÄøóO¡²¾ïü/«+óÿ=ç_B¥ÝCüÕêR¥ÿ²?â¿ÜÇGea1#,8fP@ü¾éõºn¾Ñ½<¼uß½RjÜ(¤Úëõ_¶ëðô;AÂt×^P<ÕryѽCbt1£ô<ÅU'ÊvÑÎý±ÎÙ6%Ðß$ýö -q¡6UÈ©þég9
+Ú
QÐ^±òI¢ àÅ'ê:¡=~Iá» bÜêõÀ¸ô,þ½Mçdq8c©T<×8óÒ,±s¸®"ºÿ¸ü¢[r)ÎUtûW|ã¢(X?¬h}ïïFQÁµÄ/':Ñ`uí6©?"<·ù®BA#m/,18Û\üïÛf@,^¡æîÞÑvÍÝ!ÿ&y¶ ¹"êÙÉvaÀ
+,ªíúöáæúþ6÷ÿáøøs¹\Ä¿OðÏ }mâ¿VNsÇLû½@_ð+árÐéâS>C*â%Ú/ãqN@P'añ1
+*ø]Økr<Óñ
+OÜïv÷v0;Ûm9gæÄáçrÿTñÏ"þYÂ?ËøgÅu=gÇ]ºL §,:ÛÖ«ûøçÊUÊðU°µ
+¶VÁÖ*ØZeÿ¬b¹'øí)þñ\×§V*
+üÓÄ?Ø^åâ!
+Ƹ¡{i6XÆ¡ýõÝ.ÏÈ!õbÍÍá´{®üX
}r¿æ
+ÎLGýòàí'õã~EX´§~5á/?*X4|ÌQ0áßÀÌÚÚÞYÐpO°å{¤üi2Èÿý¨Àm{]äHu¬_q¯q Tx Ù¥?ïÞ¼qf®ÜßÜ+8þþÿÁ(;î.Þ¾ïÂÿ÷ÒpÑwÛ¯â+þ'¾mg&ì¸{ðÿ]ôuw÷ð¿W¯\høÆÇMq#Tðu©ahXsJÌï!¾p J^µ/às9¡$ZÜu÷cA^ËrÛVêèø°NÍÒMI¢Ýµþ¡üÑý¾S?nMõG\öÜo\ÄaQ¨:í*®VÈw-®ÕIU;çæ1{3hºv~Sª*j
+¡23¤raúÊÇþY3õt1EÑ·hU5HÑYX¢= ß⻸qÕê©[ÑâN'
+ô!6pG*`¶«ZìaÝÃÖ öjam`tWo¹ Á¤¦ý°ùêgø!mÌá%LgxÐó²;gÃiì¬X'A «¹åæ9,&Qº&yá>ö×ÌN0ò±×±»£ÃúL*·8só7·ÜO(W·DßLèTn`±°¬2c
ÍX*pjÈDrêPElÌ`»1b¶d=X¸È<1³îÆU_
@k¤ñÞüwßïêìg*Wâ|.ÝQfhþëÆÞ[Þ f°sÇË«ÇÕÕEøo5G$-¾«K¬®ÀðVÅAÆm»Ð*LzUè¸|\ûZ¬B¡¸¼{Ë¨Þæ%Ðm< ºÿ3÷SMUúªzùjv÷Õlw~aä¼°&Å2ñÐIRdOÀÏëãþÁâï!
ãà'@Á)«À
+ Nåa"
kpÖA 1nc°£
ÿ1±¿° §ûÃ6}ä ec 2ø[«ñÓ9ih»Ôb¹É¨O©i9Ö jù³þy|£´æÇåJþ[þøãñcá0fÖ±¼-ÍpÈbPùa·ôã+EÒ§SZu/9XÍ÷¬ç£`ðæý8ú§~¶ôÃüO°-s3¨Á,P©ª×8¯øÿTç
+ñ =l8
+¢'aØØw")ÓWä#DÇdY÷¡æ~üpÜ<.}ü±ôDwoÄa¸*÷²îvJ|ǴΧÜS£TÇ«år6ZIúü%x)Ø EÆË\éÇyøÆ¨á¡É×sOeéË&|iC:#ÍkVáWÜGjÍÍ~üù¼ÑÝLw»/sb at E$Ì Ø6W at PüÀ[
+3Ç
+ÂLÇÿܧo×ÜQ~¤Pd@ @8øz\ÂÿÍC¼{·¢Pm³3Éù°gü 9f
+s(±¬)Y9.qÊÙH^ÕaHÀáf£gã×}|Y W©Í¹¸¢¹@ñ(0çz-b®Àü±·ÇL@Éiîqe~¸ÌgHµ1gØ`(£7`ÇFASE¢©C/OlI$FÄ-_{â+ÃEµ)³Ms¹Ê;6LjicNÓ;Õ
/ìPÏ^ÜwÔÚxï;#D9öVón¤À[{Ìê»j¾ÎËõ#J-ó7ÿg^ØáصççJ?ü4Oñ÷|^í1;xfîgÉßtþ8pG7
+µÇ0Óß2ÜÅJhb{´`# óõßC)I2DÒuUÏ?ó?c>FÄÄÐC¾xØ/BÅÅ¢{FóÉéÑ£±>gvb¿Åj¡\.ѹqÌ.Üå²yt|¿¯"8E4ôææk¾~ïçaqå4¦3C9(ø×vµZ³hë
+"(Väà¬uU ¢9ïS4.ÏñÎôÅ|÷ªtãìçr<·çs:èøøÔëõÿøøõóÜrñ©W<]/¾úø¥z=?¿0¯ðµÊüO¨Í˽®æ
+«óµÇZkñåqåz&uÚâMsþë£BXgh1EKct<¸2uPìÒ¼:" D_®ëíËu>>'~ø|ýᣬG>hÐQÆÙ|IU-={Xk_?.Ag$35Ṵ̂ÊÓUNH_>6äøÄÏü2÷Ï3Ÿ@i_o(Á
+«E¹*ó»¼Ý5ËV?òkÕ~þ"QdØòµó×@%FäÐÃÁí8L¹)b¨°¨r9~{ô3-ÌiIÕ´½°Ey{Ô](x[¿7G²Äô8_0QÀã~û;(5ô>S.¸ÐØZ~¸yø_
+U\ûYµ*ºVkåݸPâïaÐuõ{ÁDÒ¼[&eãÜçmS$ckdÉ&±3ÒÃc6âͳÊ
Í©ÉíÇ×*â=6e¼Í*Ït±lZÀ
+[£é7æyb)Ì«¼<FoZl3 -»Þ]!xgâ?Îìöãñáð¨Vôã×ǦÎW âÇ@²¤jc¤Ð-À¬,¦;³K*Â8AùòeLxªãHÅÆiÀ4wpÄúie3CH&F{WÊÝ£agR=!G¤jÎZ&Ù4
+>õÛ«. c|J²è×Ãp7<7M¹4cï%/â*ªÔ!÷bó󡧪îqòGòîeUV§®!« )kFGÍVòà5Ð'£tÉ)Ò±ñ2Ö±j«H}ÇÝí_dïöt$`ûUÖ=L´jº:v,J\Ýéº.Ê#ºäï'^¯¯ÌY~ÑZº
>BÝ$Tüèø+^Ïç¬I!½±nsDÎv q㣷Z.±Óâ³ö_k£uz»ð¡ÅêØäVH*PÞwÝðoçã´!ÕædïÕxº/|øvíx¦t@y»+ýÓVQ¥øVÒ
+þÉZk üæDqí¶Y,2÷ܤ~Ãîk¯yÒèqé wÚ$l·ÝkõlòÃÇÍCíffÙÌíCTrÖvÓNVºÓ¾¿6bß'glû#ÐgoüÉ_®³öxÙRo
¢ë¡LÄ·Ú^Ø9»}1®#_X7ÃîÝ[ün_±ëÔãùy>Üs0vïé*Ù¥»d8CâùZÚ oÔ2çBà<
+tÛÙNadØý¨æL'3xÏwÅtÏ=æÛ_³¥!(L)5_
+³ÓçT:úqG/´V~f^L)ò0sÞ:zNÚòeajaïË[[Wæ ÉÍöQ,DI§mQbvÌ m$ov¬
+ìßÛV×ZééJzÂ¥¢'DxÄ^ÉKǾ»5;E=fÿ-¯ú7¡
+X
+2R¥.
lÚ+¾ ¼J»øKáÀ¿^?|ý¯7ÁÎ:ÁI`î3ô1sÓëÐ>üÚÜL&`N7ÅJTêÀ"(©Uîqý¸s¯õ=Ö5§Ýµ@¯(ÃôYjMýwSWzYK¡\>KÜ=
R*ÜlGfdEFdCÈ&yzÔÐDÃÿáOZG#íuîº/:/æÓóPæ±a3ø!ì5qøh]tüã_sÒDî+ëSùß=@^Æ{L2}û"%®í\^çsöYãÍñ´nïwÔY@0ê5½9®3ýãYç
+éÍ9mR4Yú-b8÷
:È*ï~V°£ê1_¤EzÍ«®¯{üÖ³oòÑÝÈãüVÌß~t+²ÛëÿMª\¨§4w£/qtöaÞnjf<6MfÐÃ|ý$¸æ¯
+Äâtôâ{üõ¾v«±h.zãX¤òäÊõiU1ÈlF8Î){
Uîc]ô7ÇYÂdþhñ餴JÎÅ×Ïn\9*XË=,ÂEx?p§KìyZ
+âK¶D,È1Z8P¡$âf¤|v3TmÖàdQ¶iF`îB." C"åéÜËú|òx$ü<KìN2ß©2¤
Fl³¾ø8"cÂáÆ
+Â6¶"ÌÌÂÌ¥×é¶È$ê8eK
hö+Qðtât§ÆÅ>lÊé5\»$ý Î1/ÜwðþòA^öâF#J»Ó|IÂøT[7õ92¾;Æó(½scîׯ ªÛÍß~
+8ôKÖÂ:B 1ÍEñ@äØxµÚ»~ÐB8e¾ÄТ~{
Pé9ñØÙÏËl ¡Õ{ðKßN ߬¡\Ó?ÏoïnÕ÷·Þ ¿cÃrÚ»Õìw/Îx¿ù6$JñÝ>zônw]ÌÖH^KÃѾçç ¶4W/LhjµWÞ
·gRºV½ -ä¨nåÏsÇ?¾P²ÂO
+þçý3÷Üÿ×ÚDº¦h}tßdÕK at aÃŵ¸ÆQdæò©ü¼"TÝÖëØBÝq^tÃ&üE;ÖKìi¤±u6{gÜTöÏ9<ÜÚlöSËd?,ö¯3ؽþÍsDÄÚ¨ön*Éë1Hs«ÄõÏc:X3òÖ;æ³ÞÉÈYÈW¿ùÜaõSKV?F¢z!t¯þIÜ3Õ[Iê$¨O$§O$¦O'¥O$¤·Ñß9}vú¡ èG'¿)ñü¤ó$l~Dó%(ÁüÐäòSH,?¤òSN(s2ùñÉM"?:¼¬i3¼c³ÃÛçRy#ü]sÇ;~HÞø
+Í}oN?´ñã¥Nºø©¥4ñÏík: íÆs+WüÚ°dñqÏ;&w(Q<'cQírÄO%?<:8*7ütòÂO+'ü-òÁß=¼ÊïÜ5<Fó¾[øTþ÷s¿+¹v.[µR¿+Âĸnkce73¿Yß3H|ã9ùÚ¸¹ßï÷Ýv2FÎwÙZ¥~w¦÷]r¾;cå|¿C¾÷DÂ÷q½ÃléýîYÞ ÑÕ©Þ»çyñëÜ"Ç{:¿»3i~÷ÜîÓÉë>¥îCó¹O'ûÝò¸[éb¦¿}:¹Ûo·}Z9Û§¯ý¹Úeå&¶;wÎÖ®2µ;·ÍÔndiwn¥ÝHcë¤2´O-;û3³OýîÙ%»sÇlìcdb<ûÝ3°EÎ:ûÚPéx)ØÍ·N:ýú´R¯H»>ëÓI·jý.iÖ)ÖIS¬'Ó«o<ë( Ý5»ºYݹ]fu#«:Òd*§úÉïPSH¦N9¡ïH=ÞÛ#úÆóìêî?ý®¹ÓuÞtçVyÓíé²âÄé+oº5ò;$M§éΦ¥¥ß%Qº;Â/Iú4¤O%9ºÑÞÆó¬´ènýö9ѧÝÈ
~<èå@ÝÀ¨êc§@8ýùÎ~h
Kµ6#³wOø|Z½Ìy>N®ï£12å|ÈNr>FŬçcT;ÅùÓß:µùÓß)¥¹£jÝ&¹c§3¿]*óds3[(ß º<+mùÄ)ËÌå¥+w2Ò³e¦)Ç[»Äo¡\g'¿Mfrü®ÉU6rE²o<Oå Íx* ÈIÄq¦||ìÄãSI:~×ãÖz¿)Ùx
KB®q¾!ÎÎ4.Gù»¥wxIÜ-ŸcÌÜ^|©Å|ïV
îRüvéÄ©ÄuÞo3
¸bÍêÁ¶éÝÍ©ÂGïÛC3
ß¼ÝO(|ò$ái î#\¶Ôñóß=7ø-òOÜÊnìuD%F~ïTþïøÝÆsÊü8ÇMö{4µ$³~gÎLú}õÚ9¿G¶S~.;<ã7ì¹f¾ïµ$@'û¾k¢o¶z3É÷ÍkwÂßN©ìÞkø»!µ÷8i½Ç¥ÑY½ÇÈèîã. ½ÐûɼÇLä=+7äñNW¾)·èðnÈåíL+÷ð$ÞÓJà¼û®»¤ÝÎ]vÛ3IÂîuÑÊÙ&3w;É´ÝÏáñÚè¼ÝÉNÜ-Í&²wShß\8w·ÕÕX»]ǹ9k÷æsRT®I){±WrvÛPÜ´Û³6Æ »Í&ÛÏÏúµ{ÍÎÚ½ñ |ÍI$îVðµÛÑÁ`7?~´¸ûƤÝdBµÍ¼ÝƧw3-ïÖnº{²´Ý$y»(»Vz¼v´Ý¥ì®;MØUÒngJ»¥mIÛíL-g7PLÚñrmXÊîÍç*g÷Z³[ØUºÛNÞnJd*6·MÛô]uâ¬ÝhëwsÆn$JÛíÜ&g÷]òuÏÕ=¥<Ý*G÷Äù¹o[PI ºÛgç¾ufîØûêÍs¨zív¹ÉTÖ5FâÝsr³o[ðÛ¹1#·1ÔQI¹§{¢dÜÆâÊÌÈíL'·AxÜÎmr+1ÉËíÜ*)÷»dä~qâIâ[> °³]EE+ÒõèöÀïÀA)d𥠳L¶éD¦¾óÜsÏa
+¿ÈÙ¹µskfÚìçÞ&D¦£a0+,ܱ2
o?oõ×ìlá$ŸTÃÅåa`ãO3{8?P Ä×
+1:ÇIþ&?\àÓ;cå¿Eþp'#ø¹Ã'Íîdæ
+ÏÊþ¢1èÿ§&Oäÿ}»¾»ójûðhêù¿çÿ-WªKËÉüß+ðú!ÿï=|Ø'2rÕêqÞ°EÚý7¢Zûjû&û~ç`{}ëí¶Ó_(WêâðRêãÏj¼¢øÇb½çá4?Yp=ük¹Îò,ýªTê {õ«vWë [ÁöÌ
+uävõ¨
+,ÕÑ9£ü/×I¿þ<ü`¥FBÀë#þ½ZïaëDº¯<©÷½.}Z«6üU-×£Á yðïJý$lÓ×§«$RïÂ9¾>wÛè+J6¯`¥½÷O¶Ö÷ÐK=Á3ëgDËæÃ.i0Î}¿_ÄÜ|wäCi8¤÷ùª¼Wk´âß<ØàØaV£7]æÏAÿ´hkù4bãÅ'¯Â'0C3òWsoú¼e75Ä!Ü9ö@#þ×ÿOåÍßÿ;øË=òÿÊÒêb2ÿû"üÿÿßÇçÀÿÐE<ðsL\KǼı*ä#'Ñã ¸¯z[©¸[~ÄBg¦è¾
+>ûâVNWçhõB¿>`êì.ƹêF ËUIÄèâ¢Vö"Ø^ÂÎÈôYØ
+[´+h<°w¯½sT¯FÏÈÓyaeT®@O~Û«$Q|ÔRêõ>'ã!É.ÚÓ|² .\ïm'`PmYI¿vNÝ8yà vl¤ã±9úCOüsL³[
+jûÈ¿h%\ò¢åûvm¥@óØI´ç!ùüÂAȽT'²·ï6_«gÂés&²L¹Xqÿ6héÜòy.´jtþÍÖ`åu¶!«iPÈã4g¥ÌQG^믵9%çKÀ ;ózM¥[i¡§)Êò½¿ÀyµÕd Ê#:j÷yhA/'-¯é:Þ^x~Ék~ï.4ÎâIÐY ¢_ê,ô úSì8°ý?}º´ÈÂKëçt{ ¸òñ°
-ö$Y·êÂÙmáiV/iº.ñòªíá3up A¿äîâÁ>0m+)àÑx£)×MJÉÑÊ âtuý`öèùÑ)'ø¬C`z9¶Å§ úÀV`¼ÒÓ¶ýB&ó»ªK~ ÖåÒêØMÏÏã8<êPàlµåÒR'5ºtâè¾Ñ}Se¦2·¾µþöïóÔÿ÷Z¬Xý¿IC¦ëÂ$¢ï)7%¨ÕP%P«½
=«ªõ[úßTMSêE|¼k*#m pÕ1¤«YnâM{ÜTtØY§aJ0Ú/±îêáõiY.¡Qº£(ø°*B&îªÏdg`öéS2rd$n|u·»wä>ÐWÂ×1×_.úb5bØqmY'>±ñ¾ÎåsT)ÃfG»Â³WákÅ}¥ÝU÷o@
g§Kÿ=¿T¾±¿.½õ{Áïw£×ØÔ25UYUÄlj?veîù¬!7\H =¨¹T/W°ðn(È×Ô,¾äBOºå6
âEÔà¤Hs¨lCOз%ÒJ3Ãúá1b"h|/ /º¼òä®·YûN1QIá³tñÜHÕeøQ>ybÍ-Ìh¡Ó¦¨Uç%TØÛ}óÒ@rj#&YòÕe_âðPüKÖqÜsûè¿zhæ¾§ì"Å×Ýä£K°Wîöí¶ß;£p(ÀÖeÉÜR2ìóëÚÃÝÀP=¹ÌaJÃÔA'¶+R£ñ¾ö½OèsØn¶ÉÐ@QsÓïF|+M!x(|zC0ªO]fUBzRMâ
}HP{QP+CÁ(Ejî !6è.[
+Ê4F4±£E «ÂûQl³Ì0»£õ}eóE¯®âI©{õ[/îî9¶q|&ª¨².ÄÙú°ï¥~!e¹hËéÆJThèBªaS£xO¡Hä¢8±ðùýAW±"+¨l
+)úo(Å>Ý g?8¢=SÄ/Ü}Oq@@Ìû
+àñ&v¦ÃOÔM8v$÷´JD)ñÅîÇaçoÞ=Å2Ý./Ã^[1ïiÍ,< fòÊ5B±iSáêÛ µ ¤0g^$¿Y?<âKعkXFu'XðeÂÚû^¨<©mOx G
5]*qݬ¬øMl]#~! Ìé·:âY\ÙÙNV¼BÃÆ[)[cØ!ËaE¥ª²qXÔÇÇ
+ME¶êc
+^ÝUµÉ¸O7Sx&LÙ%,ËrQ²1L´1³5¾:Åð$êwñþCaPÞ,$ëëÄæÄ
+uD0´Cá,Xã²ÒF¤÷ÚWÝöq¥*d¼a³°²P¡ÞxW8á`bdv äþrûW¼ªïý3¼buâ[À@
+#w#À shIuÅê¸Q¼{óU"E/¦Oõ0dÀÍzzKÅèDÝdÞV«Â»nmYÑÑîY«ílH¡;Cá&º¹ý¹qJ#IZ^aPªUw¯ÑO· 4PýÝÑÞÛõ£íúÑöáÑÎîÏÌ©eÞ«`Ù¯ÃÁJµ±ÓiôØd«¥
'
+©@׫{Á7±¬Ò|ú´{åyºMB%H°¦Í½mwgwsïíþí£meC|ãÔþSÆñLºÄEÜ Slv骰<K²bW¬1d¬{¶é3_Ç9r°EÙ§JâZMK
+%Fªf1Ê¢R5AÅ ¸Gp8ZùÛ 3
+0Ê@Â8(2ÌÈöÞ+j£ÙÆ«°wì¦2½§±»:Ræ´yì¶×ÜNÃY´Ì~fâÔTË41o ®í-eCG¥@L
#)§G¢³Hé¨\YBiù©Ð¼>ÌÅ#í:U²1£vÊ!±üDdâ¸
`|-bSí6¨«,ÂbnA-®òÀ`-0e4eÌ
+ðÞlÜÜÞÍæ6gtD7¼Ïðôï©dwÄqf4æø S^æ!»Õa-q*ÙÒr<òòɬÀëIùQWKÜÌÏ+ÿd.XÐf 1½ÐÔà"Ëô±<æÓÐÜ¥×kQE{ Äza+6kO«m ñðE+J2úõùlùéݰÕeD¦T¯Yïý¹Èç~«Upwòm
+[EéÂ8R¨>vPµÖ¹préiYVS¨ 3±i{õsÐRYvý.ݬÇêY'½ "Ø¡e£ø©¨½²>
+]åiS¥=´½¿EFâqä¸ÄVÄ2gíàºB|M(8½bC ¤-6à(puÑQsycìeZ6tìzQÔbTZ¦×;ÇZPS;?¤%ñå´Âö;ͼè6aîq˼,g¹û|/)Ï ¿
+®¼3ïÒ+F^í¼ÖEFÆ=Z¯VÛ} Vû
_ÒðÆþöÁq-Ð(vDv°
Ú÷@â=ÙÅÑÜc²ZÌð²£O
+"¤Çô³«Ð°²sØÇC<²sáÎR~ÒÑd
+0T Þ"1IPT}ZDðü*ñd¤ª,«u¸fí³!¬Râ\ä`¼¿·Å_l»"ÜØn{GÀUÇÔxâÄ6¹+£FÇD¶¾È¹Ýý_áÜ1á-ßêòò0ûü$ì?*«+¿¸Ë÷÷}ÿ° ¸ûju¹¸ÿ]ª®îïã3ûhaõðʬK÷ ³¤;Ý
+¡Áµ%̰2¼äXBÏâ*¿bTxÌ,üøÞó·k.Ò$lùÀrkµWZ9¯¿Á(dB[«µJ w~ßà%¹JÁÌó;3ÿTȨÁëÀã 5Z¹fÀm2Yw2'Ô%PÃëã·9¸-u¶
+{Wsó7[òP´ö¸>î¼ éõðbÎ*Z°ú)¸Ë Ô¢A8/Ô9À7¿/83(JÐùIC°É5wqéÉÒbsá.;Zsó°ùTðÿêb_æADkûa_Rº3ôèâ²ç½ Êfð±DSÇÇ LEÕg0Oú¨Ú3*Ü[Z~â¾áCIoõJÇCº>wrNò!÷v^Áf¸ç]pË3-_½ÝgÝ3øléIyi
^ã_ú#ª=|ýßHJø¶<ÂÆ6Þ,>]Úÿ1³Ã@/ä9ªàp;TÉ.üþ H'
+cZW\}¾!ÚûÒÒâ×Cº¯éþp¼¯Ã°;¤ûêâÓªÝÿGü!;â2ËÀí«T¤"è Qi_è ðBRmÿzïÞPPE<.wBðpv_î׸tM5>ßõð^h+jÔ/ÝÅÅ'Å%øSrT{´èó'wB
+¡
+½W
+PûÖýìÿ¶Må=ìÿ««+ÉýeñaÿØÿÿö9»- g}-ȳ´pe.Ø}*Êi)@Jh1 Ù;óët+#<^
+Y¢`Q÷Pf8¯(0 U·Q;îûíîñ§n=#}Ãç½ÿd´t¹tQzM6ö*(`»
+& GbnÆ6n¦YCd'ôZºU1|¯×8}ðrpïD¢
¹p¸pøþ¿þÛ5T\*-ñP^^©<-âóÒÚh¯pf¸÷ôÙÙý9¤¬h³Ýö¤¡Rÿs߬c>æz,=Ì|Uïé¾éoÉÿì-áj_Ø0&hÐMWÍMáEá\Ð{ÖhPº²æmäÚR³UbJ9ôû¥ß_@½ýåj¡¸XÒHs?lC IéìÒ¹e5vqÎåw ØJ>Y@r̳¼ @úÉ;
+Ó=ÀËËÛCZ(VKÒÓüé³vQ5OA´ Þìñ&KNi©T±7è µÈíñb5sZ)fذkÂàÄV¸T>Ð~^Z}+-¾õòæøÌçwGÙåbÕë·Ç×$ÜÖgØvÈMà³WRIÀ¥ªÒEt|tèq¢ÅÕùG1d'qëýkFÚ{]ÀÑÉoÅ;RÔkøUDkÜ'ãM\záv¼zTH^ïõ1\K#Ö2ÇKU·×¨Ð bÎMi3Þð
kö¬±»k©ÛV3vr2gN²y6KØÖ{ôZío¡b1ì1ëû;YWE|rÃåwö¤<SL%»4)VÂ69*ÔjÿG³²Ì;{7YQ'ørö×Ë p×¹úÕѾµzRS }Áj-5NÏô¨ß)òívò¼¦¸®¬/-ÙäŰ0Ì\D컥¾À)RØ'£P&µ #=ºÎEtL¡+¶ÌU%X¸j¼ª.1¤©×aÛïbLð¬V¬CxË6#Å7°"£ÌV¤Èn
+ÎmQQ;q_
½A;«E*{{¸qÁtÃ$N¯Å·âh°Y$ÝD#1'
Ül"ñúÈ<XÁoÑÉ¢¯Ð<(åØNiþÇp±½ÿï¥ÅjJÿS^>è¾³þǶh;lÃßÖ÷7kµÝuAfßECTýÖê¡í϶µÇ¦ç®b*cDg C¨2
+Õ(.)5÷pp¢ûµÚF+<c[!äZuÕÃ
+¼a/E
+Wê¶ä5ZB
:æËOtl)[G¥C
+A3{Þ´è¼Vûýó2:ÄÇý°¦4~/ÏðA©¶÷H 5·-¤ ¡²õÂA߯i¾OWs£v¿«0ô¨d¶ pGª,WЧ;0Ä/E2ÉЯp.Y²ñ©îT\q*¯4NýIÂe£9Æ´NSøÖÝ2¾Õy.s£ áÜè0ÕC,+1ñ®Ò
+]ÛcûèÊF+¤§
+ôWuÅ5lmmêëú~3¦M`}=¯ì®i~?2,Rå,§vI<ÄJ¥
^qÈcIxËI³(¤¦Â(|ÊÂÜ}¿a¶qãxºx?ðÄ>?;pêï>eHt8<Ë#<üëÑ`§»Ðow²°_Â×ê-ºP±Á8³¸Ï]õªVÛ9ØL¡«éù -ÖÑ ªæ>
?îfNèßP
+Û^8 ³_BRq «¢ÎÄ@ÑÍÏJ{Åß½|Æã<ò4w§ úÊ&&ä®ÓZ4ÿÔ@~ødçi9°ZHödÎõSgtÍ¢8¼æhÓ0Î!IN£:AëYÌ`Fi ©Íµ1»JnÆ9¦VÕ:x²c²cå~r΢jÎõy}Æòý4ä~Ť@xyëï ÿÇaoî)þSyÞ%⬮.=ÈÿßYþCT²O$ÇøC[Ùï"ÜK÷îÜ´
·âèþJyó÷*½²þŤô¨EZ0s®%¸yT{(fºùÅd rçZs="Ý*Z×ÔE,lna/ÍÌkÕÜOÕR¹T
Gÿø;¶ëêªïUù·¬ë}q¢õÐõí×uqi¹ü`ÿñ`ÿqãé~qµàn%mâþãº'üPÌâåϤÝqgrÙézʬc6p@@pH&ʹÿB`æ]þaï&åf£"Fð¥(Ъ#RÛ7][!íO2ú&Å-dõ=¤¶z5¢6c`OÖÉ0aOÖÆi2n³«êzy÷Tçs'ᯠä0¾vQQ3,JÈ´a¼nË?ó80kÃ,&:î¼
+ÃZmÃë{gX<ÍäÕSÒWÀËýÕ:t#gqéWe3zp]î#çÌÜ«óðÄÁ²Ô
9Õ5¯Zûç}3ÊáNãÚR.ä2§ß4εø7|xÔæï?2± /.ØÏ©®ÝM5Ê÷®¬-«Àm¿è~u\ɮں"ìèæ)öÇ!÷Eb2f]8ª(a»
ØçWÝs?&07â¸èÿ[CvJ¢Cö7Ï>rþSIÒÄßv~î4h:@È£Ê/1û £Ï\]:´îôÒ awm
+ä_§ ¤t¯¾ÚæeØç(>Ê»"¡9ÆGu<¤· FÑíùêàQ¯ÔËÃÀOßîM6 ÛPëìN£ª?ªÌ1¼Enc">©Ýy-Ø-ÜbÑ Ï(A1ËÅdM`¬g/ýÓtÃúsª¦0ÙiÆÆò4÷ë ß8?0´?g©sFÒÜRÕ|©*²FÜ
+o w®#2p:MØw1,ºÓ/g½sîû%eÃ-¦fà]Á±ÿP?Ïì:ôEÿ@ïkqúúðqT_>fõÅëtF$£:!áÓê*¦,E¦j
+
+ÿ·3ÖÈÎp`é±½MÓú_Åly¯ãwa^~ÍU©àX¿1íö iMyÀº^S9T]úò'ýå L\c833ªiZÖCZ'8¶ç&í%¡·Øt^Ñ¿U$ÛÎdªÉciÓD÷SpO[n at 4Ùì3óm¼Nzëõûîa æ3Ý=g/£s¯^6¼>§#J°4¸XË'x%·%´øÖI°H·|ö ÿð¾þÛ*ÐçN3§Ó 2Àp#qÇÑJÍÍïåó~ ÇÐ<=ª\øv-~µ¯¶8C}>@>EÔ0ö¤òá¤ÆÇÐ:6®ß.Ò[Ý· Ñ
+U
+Nà<éÎÆ`+Qf{|çUúÏ¿Õïãc,7@ðaÛÑÏ nüxÑ||,±2Õksùó×HÞ«ýßæ(²êFn²#É£ÃÞ<ñïLA£\Pé £ï¸vUýBN¤Õ'ÃD«®3Æ^ ÿËÜ$4ä£ o&B2U
¡!ÇÇRf¦îêGKQºî$ò 8ù07á§'sùìÎiOF01[×Wç¸ÊìaÚeôcâ^©cÀ}Õ·)a18´±Û×çpso»=ý\Üxn`fñvf±DÁuèð½¸ö¥q
+o°Å8ðÄÈè¹Öñ/çtejë#*CgÈ#Õ}?®CZô²~/®û=ʦ%nL«®ü0$µ¶ÑÙ ii=CíñÈÁH©ëâFò:æTéX0±ºú#¥r&¹_ÍÐÀ^B¥m
+#,U0ë.ku)àØ_º/þtR7r*æ¦psb!`ü!J
§¢Y'qé@ã×3ÓfÓSs.[2ºêÝ(¸a·Ç D!ô
+8BË;w$,JMaǯ¹ýKÔ÷õÏ{¾´D³»A&ÄAVMífÓL¹Ð:ÉÒíÅiÁÙü:d«
+êSébÉñäV© /r¬aáÐp/¢é;#ê¦CRÏ(Pßì3ÿé.s¤O÷Jz\Îá(äiÞ´úÍ$oÜKdÿÍ<hæHækÚ<§ÉÒTÑh¹n À»ývØó±
+4yåp¢ï
+}}vÎø±¾<_¦úõ£ºn5d¾Ù°ÞP¾'|ÂVoy
+K/ÐP
+X>îpfÌËiH./ì(^<ÜIl¶Á¦¦e¶zÅÛzÍàâl±ô㦧Ö(³ú²U|ãæâ]Lû#Y£f3²MÕ¡&±âo¦{áoSE1ý»5"±EtÅ/LÁ¶Ðìç¢K6mèJ»9»X]*WÕý>åêñzý·?44[á
Óæ¸¬£9âkÏóI±[&Þ){ßì`í9õñ-.Dâ39ö¬ÉlR±c-º¹ÎÙÛ<þ¼¹xüyc¥"j?çÌêaÍ2+Ì*Åã®LRrØ)2ù£Ts88!°s0'iÔkYħ4lè`õQ
+¤4my
+gòA !À¼Tá;ضB]|·uãYL0»TTÖ$Ó:ZY_öu;lÙëùü¦lÖþã±ë`Úä£|x¡o*ò¢Þ(Ö%{[?>Þ8>Þûâߣz£ïC»ÑWw¡õ¼Õ;^Æãþ§JÝ<AÌ#ó[bLq`¶üB[¢/ò}xù(!þÑmx3´m¨åµ1Ø6Zôã&ô#ig³[Gçõ¾/ÆGßçIhº'aØòá º¡Àð¨Þôýnëj.ëäGæO¤ §Ýwo`µ_¹¿¹W@/¿áÛnÇÝÅô »ðÿ=g3n¹Gôçàݶ¤LyÅ×ßnÃÑ©ãîÁÿw:NÝ=üïÕ+®çícZÁ20P¦d(_võ ¾\Ñßßø»ñ/õïö!ýÛá*ü=äòÏýC /Gú
¾ÐpèÛ«ø¾
ÜôüÃ]À(ù§ú÷Õ«üx6ÿVößFÖ{³ÿ®¬>ØÿSÚRÞ^3toЫè
+@³¬¹W25Ã¥Áqÿ«íγâ¤J·£L óÏ2Ê¢IbSvÓeáÔ1Ѷ²nÌî £iÑÖ:6Úw_¼ßÉÌAF^îYÚNUNѪ<
õ¯³5ÿåÖÿÊRy9¹þòÿ[ÿ鿵÷!{
+
+6ÈfóÛ´®D¡bù<IÆÝÿ6 V:|÷àê\
+çæÓ?\bNÔ»7
+üWõ1ö¸£$WêÃÄ×¥XìV.~Ìê³êaº¤AÖ¶5Þ(e¸Ìõå~M·ºd²É6
+Ìöà07Qsî@ùuú9f£©ÉC U<)»bêËÜ:ÝwÆpj3ª±ÝT«YjáÃr\.YcÙwlú4ùXcÐðÄaJ>j$ $HvCÕa
+ýjÆ6±¹iÊÕ¬§<ÔøÞº¬Å®°~%eülÕ¨µ\¿°^5¾O·îÆÍWo
²¹L4ÆÊW¶9ïp7+¥ÐjÃR(«§ï¡)
+¶`àÿÃ詺1wÀEUûLd XRÛ£â&àßRF õâ¡Ç!}£U´
+â?N^#Ý6,ü3.Ác±ô¹Õ"1HE_yR ¸tÀÎÁhjr3`ã ³ÖG+Ê^ñ95õz+ ÂO¸jªå)y×5ëïDuο5´ºY9YT"j<b5LA麱v¡¯9Ú\ÜmìgtãÈ:sÌÏÉáÅè_ËÅë²F,×=QWæ1Ki3R ÇU£zl jrĦ¢kö±xI¶ô:òø¾ùSÆJ³7½Ü¸*4êÎ@ÝÄ6¶íäoCvËÙ±6L_(Sÿ£·¢YîBdÏ`´yefvhXøµ,ýÏ*Ù?HÏ5)Û<âÛ5x¬»ÊuäþuËÌõ?;\êüg°iç<ÿSuþyÈÿô½æÏ¼p4½ýOµºZ]JÅÿ+¯>èîã#ÑÿÚK»ßÙ©ÂõÎ&ÖèèGÂârà³O(¹þãòËËÃuúÚPÑsÊ{
â~ÐDPJó+LUCcWØ¿|aü¨5èu]:AÊ&ò/83פBÁmìÎ=ÉrÏþ ì]L¾VìÔ>g/vØÑÃf*Äæ´Í
+1:HcÐëÁæÕº¢ül^³¤C¹KXë0tSTôø`¨~Ð-`?x
+E³ë]äÿ¢¬yHÆù"^¯ÿ²MÅþ[xþè;§kü²}p¸³·ëÌÀ¹!ùÐ]{áK++¸ãE]Ķ/v«I,q;52Ãe3 Þ>xldn½bðËÕ4øÖd/ÙCÀ¤£ãËÚC8ümóïIð±ÔðW>&þµÀ''Â/fëÙ`ÿz8.Ð¿Ú CÍÀ¿×xÁ¸®>µý}%8«U¹ÌÁT
+I.Ë^/¹¯ÕÅfù-ì{ç⻡F8èôç^Öçñ>:SÅkÚ¨ó£âZÃëC90)TÉíPÛÊ$[qntöݯ_ݲXZ¨Y¯äõ[ÇWºíÜÅ'îq? j~T<Ó#àªLUûenºÞÂßɧ:CJ^~ÐÁ§x?
EþvYÿ°þ²N¶Ò'=@´ÍÅÛí2úß:EÞæ}£ Z±:I¹ôÿïìÙûÌ CÍÎÙfmã£V.î;º*I1H!ö\uD}ÖÏÃu §ðÀR¡×u"½ +Î³Ý /;Å^)Ø%`Ùü[4 ¯9ÔÀ{BUÝv´)<£¯í ãjâæi§³#Ëx4lÚÍ=fS`ä}2hïË1`1Â3G
+\¿1è¼lJ¼xhK ïñËgÉÚl=?3óè¾5Ê©Gh;o>gÓÔä±/osãרX{)ô(ÒKoxW:gõ.¨wÔlVQ7ãjá
+§]AÎ+éCbDk*¼¶ñá
+ñb5.?LPiµ6#¨´v¯]{cMFÐ!>2b.¨út0{R-½bdÚµ£6Ó+ëNÒ=c»¯ÊÐUbÌÛq¶GÈóÆLìÚä³"®Ü
ÛL1&äînÍnQ¹¬¯±ø1&Í5_¼ é´«AG0úÔD]ÒÕó²Áf±v÷nÏàÒ¯Ghpxõ,¿+ÀÇ`ñÔJ&gì kÑ LÂäïÁçaMËgfBF&ÚlNO¯²ø|zJ&åõ2 ؽîf³ÿiø½ oô$ÍðáduvÕÇæ¿ÞÕ®'éç®b5¶!Tü9Êb¼xr½Ûÿ ®Í`¹ü$á"Èc°[h!Ù"Æd]K·1Zèþ{°Y=é1ÙÄH&f±&if³WxÅ\í)±à°Uéb(S
ÖþiX*!lÔÍNIcy{5êÇæsØ×ÝtÐÀõdýMYay¿3Ø+«aïÂ` ÖÝ
eR{!Ï3Ù-`\¶ÉvæñY3û%p¾>#ÞôØpjD3bl!IÌ#4øú&ÝnbrbTÁ¡ºÊ ©Õ.-£pôÞĪ·pDäÕÛT.;øÛªúÔª7*}º5ì%Ô"Îjsf3ód¼i¥8ã2yÍÖÑSJ-7¥ñÞiQÛ@Jp4føBæòC&ÝÄRbÒÓÎóUcÞ1·3ŧ¡X(ù>ïÛd-ur%1É(ßëQDxâ7<¼?õ:WXÏtaíi(÷Ú`¨¯ïb;Qc\úB~'ªÝ:%¹bô»æ¦(#Oν$n?ÝËæ[¶Cs7û ?áp4Ðö8/¬<2ðq¢ô?s%8nÚù¦¿Fô¸&Y(F¥Q«eè®ïw4-
+1Æ@EâB±êñ%«ðz{µ(Oqö¤ð,-Ex7Vúßj£1ù¸4ÂÎ'¿`%}çY±¯;ÙãK"Àyµ)¬~òêLCGQH¨Çõå0/GñôÏ{áeý3.ÙÚDÅô¢<ÑÆV!./q±Â®ßs_í¼Ù~¸´|©øn^ÓÓy¢I¿Ys?Êá
lÐ]ÁWu V&ÕuwÍ-»ÿõ_îãðm¹T.¯<C¤«*XF>]Dt¡ÄÛ»±÷8&@Èp-éÍÝçXs
+Új ®
+`ùi&´ÒƺíþbÜIÛs@_¬ÿa>JÎZñk"95Þ©lOÝTá´â|W¨è o§)²ZÙ¦ªdðMy4]¡üèkùÜmù3_ÍÚÒvx*ky=L
Hé¹Þɬ_n9¶ ZùÊdæ¬)û¿§«Ígî7ùVÊ«IÿÏ¥ÊCþïéÿÉ8`=ÛPܶ×o 'æn.
Y<
+}"ÏP\o÷¶Þyáæy¡`æpX.Qª\ªTóâ*2`o é=PlóZ(azøÌU9Û»¿|Yw´÷výh{«~´}x´³ûó523zu°ýf{ýp;~AÊnËvÛim0¼ä:Gæ¾9 !]5M at hüjå´>'Q I¶ÛÊ!Ì2tà¬zÉýgæÌü6øWÄt)UIÏoù^äíît'î¼3C :cS0\s%CB¶PW¶÷ÉÓÿ]ãTÐ £4v_ùßËKËùßì¿¿ÿgÆ%\D¥ãaÑø¸ýgYd
+4èôª¢6R0{_Ü»bÓo¸SuEÙßñ/]¿ÎÎùeè'"ãÄÎélgç(~cÅÓÉæ?`ýWVëý0lx½ûZÿtþÇJeùaýÿøº\Â
èSÐÃQÄoý°÷̺ͣ aJ. /¶»aÏë+78ëtÜ?TÈL°¹JÁ|ëH"±Úi¾÷9lãm
dݦä(Âb°,ººAÆosYFïswH-RÍ5m(M¸Àçì»/@E¹ìÚnª@AE¨ÅpD-èdÝyÌ`Oã(Ëå ¯Æ3Tk¤RÔãÙÔcÒ*¤ãaÑ#éô~¨ÝÍå5fóùQ^ùa/19Ò¨6ýtÕ°{zØõ¢¾zÚó)paêyÓÇ(2ôøcÅl÷Þ{ãÿOÔ»asÇÿùe%ÿºüÿéûÿ%ø|ßûÊXû{[ÚÉ pÁ6hNzîÉÇNtOÂÐIûa$xX,WqB ^¹RuÅðâ{s×ÐÌŸ!²3Æ`Ê`:»(
+f®qôPY
+í6Ñîà]þRï{ÝûäÿÕj5ÿ¯ºøpþÿÞò?0EØ0N´Ý
+úW*>më«þ9¬7a#l}ÐË>ѧ*دïs}Ôä]`v/ ãÒ×Ye>1ÜIf¨zegø¦GvzoݱåI´¿CvOse~¼ßô¤T*Nö3
BÉ@3·I|¢íYEìIBÞcÕ7o®0³&O? ôBr:.
aÈOG)k(±ÍK1ò»/ÝoN>°o2ÀDJÉÆ÷°-GýÿDo¼·øß+ÅÔþ!Áöÿï®ÿcJ(}Áç>ÅpßõD% Üwd`£:ekf>)ñYFß4Tð9Åõ1ñA\ÀÒ3¨|b2/f_þç ?WÖÇ%wH¯¹{E$Zq´]ÍÊÉðÌÈó¥£Ò±Æð2Q¿Y1/§
+ÿ[´&p1±Íe ¨Úða¾LKH¨Â®ÖyãÍÆ²ÕÆÏSÊDÒ¨Â8⸰n¹Ã´oTÝ&:-àin.¦¥ðkî>Z 6cCÀ<QgsÒ=4huÕÊ»
+Iûh¶d Ë© "±2t«o\à¬&m|ÜøÃMóú[Ðg¨MiÌôù¤)Í E¥Z¢Feé¶WÒ¡¡*Ó©°>ʲéÌh.9EkÖñ¨ÍOGÛD1.xæxSd;¼)SÙßõ½>)ÂTf ÍW;ï¬ïâÕÄ$«kuã^ÞêÒÊ(RµFª'¤SÅTÃq1õÏv_ÑåT<¬ñø¯ÔÒÃÑãMuí~XóXóøl35ocðÏÔ|ÍHÇèmtM³ÏÖz7Öúp¼þÔÿ/×IyfæSRܤÿ_,§â¿.<äÿú'8ÿkão\ß^ÐÁÇ뿬ä#J}ü}Týå[)¸Ëÿl<ÆÇ¶ßiÁä
+xìÒ«·»´\NZ:v§5cDbG9Ý~á°]m©¯øÅ=moë\ö§%nïO«ý+'õ¼Éi6é'[\ûPþX\ûr2ZͺܻG×R5å7òê6
²xçczÏÇ=$¿¢^>.I©¬fÿgjÚüÁw(ÂÅ»£WOææE-FxÈuBwÐ?}¢.²ØEô[32×øñË\>Ͼ¶1nKéеä¬?èô»\zRªäØGÚm[èãÍ×è!E-6ýFØô¹1cúûÿ
+%)éù§Ñ´n n²ÿ_^Iú--Wöÿï¼ÿ£r
+-ø=ôÚýNiÿ¾¹îögÞv9Ê1Ü`Üé/×v¦8p};un/Fß?a¶Ôú¯ëÑà¤Ñò¢ûZÿxÛ\ÿÕùÿ»¯ÿزDàèbg \ô]Ø ]×MyáoÂìíà¿én"Åz-ãU¢ª%ÅfÙ-PÒ¸à¼/á02úÆ×%vkO¾¨øÑå¦x®«§$
i/uy/áÄÄS<çùEá¯=U<§64bôT¦®$ÿÙïøhB²9È¥#à¾rNmïÌ$9ê8¥à ©òJÄææ
Q¼(8®Eÿ¦®\ÓáÿOÖ»íO÷jÿ_]JÛÿ¯>ØÿOþûÿÃQXpvÐ Ú6©B+¦%ÙSà®~ ¤hyË}©ä7Rµl8$ÞKåòç]ç ¡¬ºU)ÉÕC¬ûÿ+õ°}¯üy9mÿ_}°ÿû>üÿûiôþE4úFR)øwÐ?WVêPÍ8ºüt¤>ñÚ|è¡XYyPåß Ê×j|É꣮ |V/S9/0èJöEmÌìzP«ã¾;zU|Ö0q²\°[Áãþø?ÒõÀÞ"ÿ+üûÿõûÍ?/JäM÷0ÿJ%uÿOóÿ°ÿûxOaÐ Þ»¸ôdiÑi¢jÆuknæ¦ÿ¯.:'A«Uì5·³àßÁç½ ¢G§^£pÔÜAx'=óÍ®¸~0yTs¿:¥»´üÄ}ïµ.Ú^ÇÝê¬w @>êÇ
+t6 èÂ+سö¼ýfR »£vC<ráÃ¥'奧ÛcL£ÏPáà2ÐÝÕÜ7O¶¤î?^§¯»[§M?jô¼èÂïÀ)F^wAròu{KËx8ÒÕÒÒâ×}U2û:`Í×aØÍ쫺ø´¡·>þ\]uú! ÎJËUGB®¹kÔÈÄíùO0÷3½Ûð.~4(í®×i\ñ; ¨
+à¼tàOéáöoÃÿ?y`oJÀ
+ü þ¿\^~ÿy?ç?÷kRëÿq" YW]
ÓÐu×ùc´¡ß6,ãiFÙ?~ä4ÃËà!hÔû~»{ü©[ç(Âö-òÞ.B¯ ÝXnJ¹t¼Þ¹ª
ò:¡'û».¢Ùö.|½eàdè÷ûÝÚÂBä{½Æ
y©Ñõ:¥°w¶ÑIØ%Z¯áÿë¿-PÅ¥Òr±J4]yZÄç¥?®±6üNä׬]*.lîíÿ¶³û³[³gÄYÛ_¶JýÏ}UÇx¤ëʱ®6o»-ú[ò?+"@?̨«¥?èÅåÀéY£QCP6ZíN©Ù*ñ\býRÇï/´áÐv¹ jKÊ*p(è©töÇht
+âL,ʳj%ÌBø m.AEo2xöã·!T|i° ÁúA+&U³X-UVJO+
+¬§ãâÎóÐPÂ<É*ÅÈO¼aC¥ÅµoAeVuJy¬a6Ã]ucv÷°¶H ²ÝP}+-¾õTåøÉøÈ¸\¬zÝ`r,p=þÊ-hO½ñ?÷{&zt|°½¾õv»ÄÔtÑñeСgv dÙÞ`ÙxeÏn;@KTº ÖoÅL;ê5HÅYDÛÃ'ÃFëZ£Ë/×å~åǰ¢ë½~õV?×J'Í *!ݲ9Öæ³&MKÝ6MÄÉ1b%~¸_o6ò¢® PÙx2è4[¸ù»ÇqÊÛ¸Y7(ù%Ò
+"¿YJ}÷ÌïGðôvPæóôSù_ÔjO2Fm
+d}Î\~ÉÃÎnngO×jÇsm%Qb¦µÿ£8Y=óñ:pîÕ¼^âծ߯Õ^í'Ö1Ð.¬½Rã¦;þî
+¼4"Ýw)`^áI88ëPb7>ïc5Çoi2Í"±"y
ÕÔ-¼ÙÙÜÞ=ÜfùÁøA/79H"²åp7ìû~&()ªÜÌϬè÷%wæÇ1Ô¹Q,n±æJ´Ìã·nêmv#¯Ã¶ßY1Uß|]õ-G-¢+\ª/o]ý6³vß@síAøÅWaoÐN¶E
\]ÈÕ
RMDZD<yê-Àøµ¯]ãuªÙC1$Ü4¦NÍÿîçËÝäëÿW«Õäù þy8ÿßþ×u¼Cöâ*²lú=ÿlþgÚ0QéwÎïð¸ææþ÷ÿúÖ{Óßÿ÷ÿéýïÿínüîõÚ^E{ðê¥:;¯åÛ_
vHÞ*j.jIL9ô[y½à/H¢FþU PãLÌ õ«ð¼Zmå#m©T.,;ZÊ# ML½ ±dHj¤Hà¦gt£jÅOÒbé¼ßFîªÕðÌa¹ N°¬âþæÁ¶Ó ëh|ùzÓÎ`5u¨:
+ùÖw,!¬5w¹ô´´ìÐ}yÍí/üPêã_ü×Ñ]áãLcý¿½ýGyi¹Öÿ=¬ÿ{ù½Q^:4£z'`LïÄ#èxÈñ¼U4ïÇø(~á=äFðΪ9è'À*ñ¢v'IÌîÄSØýï*ôd¯Gr?ö_hÊÿ°ò°þïíþ}=ÈÂò¿Þÿ9ÂÐ}ÿjÊþ£Zyðÿ¼çõ
û{Xÿéëÿ°Ñ¹ï÷¨ë¾3¸aý/.öß+Ëçÿû;ÿÏyk¥TqÌ;}ó4àúæçíý]C`0gñ}Ïë¢ùz m¡Ú4©ÛÅÇóÄNëJáü¸þºôÖï¿wܦå}~^jNðëËÏÑ9JÖZBQ`Ü*PËYú¡Û?M¾ô0ÖGÈaUû)ÝM¤Q§áYTØüÙH~(÷3¼Ýþ1;üP²éõºézøf°^«m
+Ú]³^aC±&vx¿OÊåe(ÀN Ë,V.UÐhïS8Jõ2©ºq|¬zíõ:xscÂT=pNs¯U?õéb:)ºð°Þ>ñvºê¾Ì3K¤ÍÃ_ÐæÜ÷Ú|kB#ÿ3f®=ü¥þëaM_]¢&*ºË
+êm-íï׿»Y~"ò?7üÖdÃz4zaöx 2ß>eÐ"x
+!G5PåT]¹¡LíU»¿åzVÕzYHÑÁRÕáç»
+±Z.¯;Î_ßþZÓÄ\^0Âp2öº~gïôm5
+7FÿÈ:ݬ =I÷¨¬C`´àRÑaTx1Ó¨e%¥jxõ·µ¥ÐÉïô3úÅà v"F]عÍäEáÚô?pùÓu½²X04´N{¸¢¶ú3±övµ·ò_BþCVÞ²(ôÜ+¾ër©ø7¯ëH=tãýO%áÿ]Wâ|û-
+¬åâÅI_h rO®\þZMÍ¿Ç^½Soº¿
ÑyÐôÜÍçÏÝçWü#¾ûq×Öþ¯pn^·¾ÖQMÃn\¥ÍÕÐJ©lZv« ÀOiý¿>§ïýõ½)ènZÿì+qÿó ÿù翲½1ûæÝbyI-z:r}-]ÿïÜëG»Þ
+¼\½»ý¼Õ_ûÃ;óº/´\ÛÏÏúkkg´N
+ úlØò?»þ'HXýdì`zéîÿ)åo¬ÿM®ÿà ëÿ>>ÿßÿ[üþÏÿÜ¿þ%ÿ=,§ÿàõ_©Pè:,úûÿW-/eÄÿ[~Øÿïå3:þ7*
+`?ÖaÀ}ùâ>)¸÷#ÄÛ¹á¥ò4iP{³ð£Ó±[DÁx#^ä¶~¿
â
+¶"ôRÐàN«òë@oîßýNÇo^¹ÏñõÒk%/ZËg¨N
+ü¤ö$eLWZZÆñk1!wÅ!;Äg!ë(4ê$dmPlV\Ud¥k|8=Û-áÄfÙ¦FÛy¬¹Í(b>
+ÝÇ :©¨ÞyzuRSCexv¨9C1¤£fªÉl%§×qÐóµN.#Sj¡áê 0&L²Ûçð·<4Qv}ÊùivL$#EÆ ËH]cr¸oÂ
+<cù÷Â6ü&uj¯x-·Û)n%
jô¼èÜog³)(X71û+Ü#t@ ìµ"©<zôÈuw0º:P Ʃͧ¼öÀT{6q¿·stX<ÜÙ-¾ÚÙ:,¢Çßé
åfkZãÇÍF®+P{j/`í©½ð+%HtÄ9 (ojÐSű5ÝÙW6ÆÕÑÒ2ûg÷Òãf¬:csµíÏýwèk½z>þ×Óëe¥´XN1ìÅ1gù¡Cüå
+î,{»\´M!òòéöüO¥õ´rªíntúZ³ 5
â¶ibpnÊc 8)ùÑÔbZv ¦
Ù1/ÄϪôø.¼ì¦ù¹÷5ÿ f D=
+[@Ä| ½lF 7ä·Aër7À jî{øMéÜ(ØTÏÅ{kb~OKGaoàþæµ½³Aã<pÿ
½p«U¿Nõ¨T¿QQ¡¡h(jn':ðÍve#8×jëE½Ú+/Âë§Òb, µXá)|Jª\N³G!?ðm}Øi]?BûüX:)X±Ä»
+ò'ZoüT-ù¥:\~¡Í{|z°
¬|#aä'_7HËDaÉyM2yÍ<Ð;KÚa±Iu
+ÁX6 æO³©É\ÒV\WÜLyEsA$²¼À²>Ì"6%Ú©BÑñ+!<y/¯x Ð ¼Rt¨_i92&ISUUÒÌ[iÞ`ØLªªÞJ5-kU5¸íP#çýrÖmÄYø³á\%dj©R^I7Xl,!æÒëaF,ø5%)¤²-
ЩÄF>9i4ó)
+øJƲ¥ Eöjpøã#Þî°róÞ^Y5¨-=ÌNH ¼}æ'xÇÖKP|<÷Ñéltòä ~Ъxxéu
+"Åd쯼Á'¾Ä/ýWÐOШ7ô]áPJÑ`ä3Vö.~㼦hDMJ`4³°1ÿ9¶ ìÑUãâMí/Jc·z< ¡8GLÎE;=}£dJÓÒFäVNÎ5aaâÆpc¶åÎckrÙÁp¤1QÎ(ñ=Ó-a}Ï{%`Ïo$[ÈÙd)mLGÜÈ7¤ãåuó´qµøq£ü!=¥YLvÊV ÎÛ~j:·K4ÁÌAÚã¯8"à;òÃÉJ½¾ã-¤d¥Û¯ï¡Ó+çOÊí¯Å¹ÉÖH¬ ÞË_²&1YÜâ¿ÌTÀxÓYs¢9ËkBäYydÛæcÏd&yA¡dÝäËäoÇfØÒÐì8Å1ó)7y&¿f[uym)äò
+I$¯Õãòé4oé8vóùm,ÙVç-ÖP|+\ZöÜwÔ²Ö ¯hSføf)«Yãå(,ÁËÓ eà Ådzqmô2#7¨ú«r³_¤Ò:xà±·:1VóòþºWW6»CØßW$ZQ¸ÖÃò¬FõTÿu1»Á2^Z¸vfLüùöXb®µbe«sE\ãcø ª·ÄV¦ÁýXxû<9âÐ|]A\^ıýüM`áä Å»è[=Äâþ&É\> ô°58ÂäÝffª´2£Ïz;BSÃM÷Û2Xu3NòUa·¦P+¯¢ÄãX'V6s&º½>Q|¢cß Dû±G¢
ÊÙÚøíØfyCJ!¦ìÚfÙª2B}0zø<|>ÏÃçáóðyø<|>ÏÃçáóðyø<|>ÏÃçáóðyø<|>ÏÃçáóðyøü|þé ¨
\ No newline at end of file
Added: mpich2/trunk/maint/local_perl/lib/YAML/Tiny.pm
===================================================================
--- mpich2/trunk/maint/local_perl/lib/YAML/Tiny.pm (rev 0)
+++ mpich2/trunk/maint/local_perl/lib/YAML/Tiny.pm 2010-05-21 03:34:21 UTC (rev 6691)
@@ -0,0 +1,1132 @@
+package YAML::Tiny;
+
+use strict;
+use Carp 'croak';
+
+# UTF Support?
+sub HAVE_UTF8 () { $] >= 5.007003 }
+BEGIN {
+ if ( HAVE_UTF8 ) {
+ # The string eval helps hide this from Test::MinimumVersion
+ eval "require utf8;";
+ die "Failed to load UTF-8 support" if $@;
+ }
+
+ # Class structure
+ require 5.004;
+ require Exporter;
+ $YAML::Tiny::VERSION = '1.41';
+ @YAML::Tiny::ISA = qw{ Exporter };
+ @YAML::Tiny::EXPORT = qw{ Load Dump };
+ @YAML::Tiny::EXPORT_OK = qw{ LoadFile DumpFile freeze thaw };
+
+ # Error storage
+ $YAML::Tiny::errstr = '';
+}
+
+# The character class of all characters we need to escape
+# NOTE: Inlined, since it's only used once
+# my $RE_ESCAPE = '[\\x00-\\x08\\x0b-\\x0d\\x0e-\\x1f\"\n]';
+
+# Printed form of the unprintable characters in the lowest range
+# of ASCII characters, listed by ASCII ordinal position.
+my @UNPRINTABLE = qw(
+ z x01 x02 x03 x04 x05 x06 a
+ x08 t n v f r x0e x0f
+ x10 x11 x12 x13 x14 x15 x16 x17
+ x18 x19 x1a e x1c x1d x1e x1f
+);
+
+# Printable characters for escapes
+my %UNESCAPES = (
+ z => "\x00", a => "\x07", t => "\x09",
+ n => "\x0a", v => "\x0b", f => "\x0c",
+ r => "\x0d", e => "\x1b", '\\' => '\\',
+);
+
+# Special magic boolean words
+my %QUOTE = map { $_ => 1 } qw{
+ null Null NULL
+ y Y yes Yes YES n N no No NO
+ true True TRUE false False FALSE
+ on On ON off Off OFF
+};
+
+
+
+
+
+#####################################################################
+# Implementation
+
+# Create an empty YAML::Tiny object
+sub new {
+ my $class = shift;
+ bless [ @_ ], $class;
+}
+
+# Create an object from a file
+sub read {
+ my $class = ref $_[0] ? ref shift : shift;
+
+ # Check the file
+ my $file = shift or return $class->_error( 'You did not specify a file name' );
+ return $class->_error( "File '$file' does not exist" ) unless -e $file;
+ return $class->_error( "'$file' is a directory, not a file" ) unless -f _;
+ return $class->_error( "Insufficient permissions to read '$file'" ) unless -r _;
+
+ # Slurp in the file
+ local $/ = undef;
+ local *CFG;
+ unless ( open(CFG, $file) ) {
+ return $class->_error("Failed to open file '$file': $!");
+ }
+ my $contents = <CFG>;
+ unless ( close(CFG) ) {
+ return $class->_error("Failed to close file '$file': $!");
+ }
+
+ $class->read_string( $contents );
+}
+
+# Create an object from a string
+sub read_string {
+ my $class = ref $_[0] ? ref shift : shift;
+ my $self = bless [], $class;
+ my $string = $_[0];
+ unless ( defined $string ) {
+ return $self->_error("Did not provide a string to load");
+ }
+
+ # Byte order marks
+ # NOTE: Keeping this here to educate maintainers
+ # my %BOM = (
+ # "\357\273\277" => 'UTF-8',
+ # "\376\377" => 'UTF-16BE',
+ # "\377\376" => 'UTF-16LE',
+ # "\377\376\0\0" => 'UTF-32LE'
+ # "\0\0\376\377" => 'UTF-32BE',
+ # );
+ if ( $string =~ /^(?:\376\377|\377\376|\377\376\0\0|\0\0\376\377)/ ) {
+ return $self->_error("Stream has a non UTF-8 BOM");
+ } else {
+ # Strip UTF-8 bom if found, we'll just ignore it
+ $string =~ s/^\357\273\277//;
+ }
+
+ # Try to decode as utf8
+ utf8::decode($string) if HAVE_UTF8;
+
+ # Check for some special cases
+ return $self unless length $string;
+ unless ( $string =~ /[\012\015]+\z/ ) {
+ return $self->_error("Stream does not end with newline character");
+ }
+
+ # Split the file into lines
+ my @lines = grep { ! /^\s*(?:\#.*)?\z/ }
+ split /(?:\015{1,2}\012|\015|\012)/, $string;
+
+ # Strip the initial YAML header
+ @lines and $lines[0] =~ /^\%YAML[: ][\d\.]+.*\z/ and shift @lines;
+
+ # A nibbling parser
+ while ( @lines ) {
+ # Do we have a document header?
+ if ( $lines[0] =~ /^---\s*(?:(.+)\s*)?\z/ ) {
+ # Handle scalar documents
+ shift @lines;
+ if ( defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/ ) {
+ push @$self, $self->_read_scalar( "$1", [ undef ], \@lines );
+ next;
+ }
+ }
+
+ if ( ! @lines or $lines[0] =~ /^(?:---|\.\.\.)/ ) {
+ # A naked document
+ push @$self, undef;
+ while ( @lines and $lines[0] !~ /^---/ ) {
+ shift @lines;
+ }
+
+ } elsif ( $lines[0] =~ /^\s*\-/ ) {
+ # An array at the root
+ my $document = [ ];
+ push @$self, $document;
+ $self->_read_array( $document, [ 0 ], \@lines );
+
+ } elsif ( $lines[0] =~ /^(\s*)\S/ ) {
+ # A hash at the root
+ my $document = { };
+ push @$self, $document;
+ $self->_read_hash( $document, [ length($1) ], \@lines );
+
+ } else {
+ croak("YAML::Tiny failed to classify the line '$lines[0]'");
+ }
+ }
+
+ $self;
+}
+
+# Deparse a scalar string to the actual scalar
+sub _read_scalar {
+ my ($self, $string, $indent, $lines) = @_;
+
+ # Trim trailing whitespace
+ $string =~ s/\s*\z//;
+
+ # Explitic null/undef
+ return undef if $string eq '~';
+
+ # Single quote
+ if ( $string =~ /^\'(.*?)\'\z/ ) {
+ return '' unless defined $1;
+ $string = $1;
+ $string =~ s/\'\'/\'/g;
+ return $string;
+ }
+
+ # Double quote.
+ # The commented out form is simpler, but overloaded the Perl regex
+ # engine due to recursion and backtracking problems on strings
+ # larger than 32,000ish characters. Keep it for reference purposes.
+ # if ( $string =~ /^\"((?:\\.|[^\"])*)\"\z/ ) {
+ if ( $string =~ /^\"([^\\"]*(?:\\.[^\\"]*)*)\"\z/ ) {
+ # Reusing the variable is a little ugly,
+ # but avoids a new variable and a string copy.
+ $string = $1;
+ $string =~ s/\\"/"/g;
+ $string =~ s/\\([never\\fartz]|x([0-9a-fA-F]{2}))/(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}/gex;
+ return $string;
+ }
+
+ # Special cases
+ if ( $string =~ /^[\'\"!&]/ ) {
+ croak("YAML::Tiny does not support a feature in line '$lines->[0]'");
+ }
+ return {} if $string eq '{}';
+ return [] if $string eq '[]';
+
+ # Regular unquoted string
+ return $string unless $string =~ /^[>|]/;
+
+ # Error
+ croak("YAML::Tiny failed to find multi-line scalar content") unless @$lines;
+
+ # Check the indent depth
+ $lines->[0] =~ /^(\s*)/;
+ $indent->[-1] = length("$1");
+ if ( defined $indent->[-2] and $indent->[-1] <= $indent->[-2] ) {
+ croak("YAML::Tiny found bad indenting in line '$lines->[0]'");
+ }
+
+ # Pull the lines
+ my @multiline = ();
+ while ( @$lines ) {
+ $lines->[0] =~ /^(\s*)/;
+ last unless length($1) >= $indent->[-1];
+ push @multiline, substr(shift(@$lines), length($1));
+ }
+
+ my $j = (substr($string, 0, 1) eq '>') ? ' ' : "\n";
+ my $t = (substr($string, 1, 1) eq '-') ? '' : "\n";
+ return join( $j, @multiline ) . $t;
+}
+
+# Parse an array
+sub _read_array {
+ my ($self, $array, $indent, $lines) = @_;
+
+ while ( @$lines ) {
+ # Check for a new document
+ if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
+ while ( @$lines and $lines->[0] !~ /^---/ ) {
+ shift @$lines;
+ }
+ return 1;
+ }
+
+ # Check the indent level
+ $lines->[0] =~ /^(\s*)/;
+ if ( length($1) < $indent->[-1] ) {
+ return 1;
+ } elsif ( length($1) > $indent->[-1] ) {
+ croak("YAML::Tiny found bad indenting in line '$lines->[0]'");
+ }
+
+ if ( $lines->[0] =~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/ ) {
+ # Inline nested hash
+ my $indent2 = length("$1");
+ $lines->[0] =~ s/-/ /;
+ push @$array, { };
+ $self->_read_hash( $array->[-1], [ @$indent, $indent2 ], $lines );
+
+ } elsif ( $lines->[0] =~ /^\s*\-(\s*)(.+?)\s*\z/ ) {
+ # Array entry with a value
+ shift @$lines;
+ push @$array, $self->_read_scalar( "$2", [ @$indent, undef ], $lines );
+
+ } elsif ( $lines->[0] =~ /^\s*\-\s*\z/ ) {
+ shift @$lines;
+ unless ( @$lines ) {
+ push @$array, undef;
+ return 1;
+ }
+ if ( $lines->[0] =~ /^(\s*)\-/ ) {
+ my $indent2 = length("$1");
+ if ( $indent->[-1] == $indent2 ) {
+ # Null array entry
+ push @$array, undef;
+ } else {
+ # Naked indenter
+ push @$array, [ ];
+ $self->_read_array( $array->[-1], [ @$indent, $indent2 ], $lines );
+ }
+
+ } elsif ( $lines->[0] =~ /^(\s*)\S/ ) {
+ push @$array, { };
+ $self->_read_hash( $array->[-1], [ @$indent, length("$1") ], $lines );
+
+ } else {
+ croak("YAML::Tiny failed to classify line '$lines->[0]'");
+ }
+
+ } elsif ( defined $indent->[-2] and $indent->[-1] == $indent->[-2] ) {
+ # This is probably a structure like the following...
+ # ---
+ # foo:
+ # - list
+ # bar: value
+ #
+ # ... so lets return and let the hash parser handle it
+ return 1;
+
+ } else {
+ croak("YAML::Tiny failed to classify line '$lines->[0]'");
+ }
+ }
+
+ return 1;
+}
+
+# Parse an array
+sub _read_hash {
+ my ($self, $hash, $indent, $lines) = @_;
+
+ while ( @$lines ) {
+ # Check for a new document
+ if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
+ while ( @$lines and $lines->[0] !~ /^---/ ) {
+ shift @$lines;
+ }
+ return 1;
+ }
+
+ # Check the indent level
+ $lines->[0] =~ /^(\s*)/;
+ if ( length($1) < $indent->[-1] ) {
+ return 1;
+ } elsif ( length($1) > $indent->[-1] ) {
+ croak("YAML::Tiny found bad indenting in line '$lines->[0]'");
+ }
+
+ # Get the key
+ unless ( $lines->[0] =~ s/^\s*([^\'\" ][^\n]*?)\s*:(\s+|$)// ) {
+ if ( $lines->[0] =~ /^\s*[?\'\"]/ ) {
+ croak("YAML::Tiny does not support a feature in line '$lines->[0]'");
+ }
+ croak("YAML::Tiny failed to classify line '$lines->[0]'");
+ }
+ my $key = $1;
+
+ # Do we have a value?
+ if ( length $lines->[0] ) {
+ # Yes
+ $hash->{$key} = $self->_read_scalar( shift(@$lines), [ @$indent, undef ], $lines );
+ } else {
+ # An indent
+ shift @$lines;
+ unless ( @$lines ) {
+ $hash->{$key} = undef;
+ return 1;
+ }
+ if ( $lines->[0] =~ /^(\s*)-/ ) {
+ $hash->{$key} = [];
+ $self->_read_array( $hash->{$key}, [ @$indent, length($1) ], $lines );
+ } elsif ( $lines->[0] =~ /^(\s*)./ ) {
+ my $indent2 = length("$1");
+ if ( $indent->[-1] >= $indent2 ) {
+ # Null hash entry
+ $hash->{$key} = undef;
+ } else {
+ $hash->{$key} = {};
+ $self->_read_hash( $hash->{$key}, [ @$indent, length($1) ], $lines );
+ }
+ }
+ }
+ }
+
+ return 1;
+}
+
+# Save an object to a file
+sub write {
+ my $self = shift;
+ my $file = shift or return $self->_error('No file name provided');
+
+ # Write it to the file
+ open( CFG, '>' . $file ) or return $self->_error(
+ "Failed to open file '$file' for writing: $!"
+ );
+ print CFG $self->write_string;
+ close CFG;
+
+ return 1;
+}
+
+# Save an object to a string
+sub write_string {
+ my $self = shift;
+ return '' unless @$self;
+
+ # Iterate over the documents
+ my $indent = 0;
+ my @lines = ();
+ foreach my $cursor ( @$self ) {
+ push @lines, '---';
+
+ # An empty document
+ if ( ! defined $cursor ) {
+ # Do nothing
+
+ # A scalar document
+ } elsif ( ! ref $cursor ) {
+ $lines[-1] .= ' ' . $self->_write_scalar( $cursor, $indent );
+
+ # A list at the root
+ } elsif ( ref $cursor eq 'ARRAY' ) {
+ unless ( @$cursor ) {
+ $lines[-1] .= ' []';
+ next;
+ }
+ push @lines, $self->_write_array( $cursor, $indent, {} );
+
+ # A hash at the root
+ } elsif ( ref $cursor eq 'HASH' ) {
+ unless ( %$cursor ) {
+ $lines[-1] .= ' {}';
+ next;
+ }
+ push @lines, $self->_write_hash( $cursor, $indent, {} );
+
+ } else {
+ croak("Cannot serialize " . ref($cursor));
+ }
+ }
+
+ join '', map { "$_\n" } @lines;
+}
+
+sub _write_scalar {
+ my $string = $_[1];
+ return '~' unless defined $string;
+ return "''" unless length $string;
+ if ( $string =~ /[\x00-\x08\x0b-\x0d\x0e-\x1f\"\'\n]/ ) {
+ $string =~ s/\\/\\\\/g;
+ $string =~ s/"/\\"/g;
+ $string =~ s/\n/\\n/g;
+ $string =~ s/([\x00-\x1f])/\\$UNPRINTABLE[ord($1)]/g;
+ return qq|"$string"|;
+ }
+ if ( $string =~ /(?:^\W|\s)/ or $QUOTE{$string} ) {
+ return "'$string'";
+ }
+ return $string;
+}
+
+sub _write_array {
+ my ($self, $array, $indent, $seen) = @_;
+ if ( $seen->{refaddr($array)}++ ) {
+ die "YAML::Tiny does not support circular references";
+ }
+ my @lines = ();
+ foreach my $el ( @$array ) {
+ my $line = (' ' x $indent) . '-';
+ my $type = ref $el;
+ if ( ! $type ) {
+ $line .= ' ' . $self->_write_scalar( $el, $indent + 1 );
+ push @lines, $line;
+
+ } elsif ( $type eq 'ARRAY' ) {
+ if ( @$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_array( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' []';
+ push @lines, $line;
+ }
+
+ } elsif ( $type eq 'HASH' ) {
+ if ( keys %$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_hash( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' {}';
+ push @lines, $line;
+ }
+
+ } else {
+ die "YAML::Tiny does not support $type references";
+ }
+ }
+
+ @lines;
+}
+
+sub _write_hash {
+ my ($self, $hash, $indent, $seen) = @_;
+ if ( $seen->{refaddr($hash)}++ ) {
+ die "YAML::Tiny does not support circular references";
+ }
+ my @lines = ();
+ foreach my $name ( sort keys %$hash ) {
+ my $el = $hash->{$name};
+ my $line = (' ' x $indent) . "$name:";
+ my $type = ref $el;
+ if ( ! $type ) {
+ $line .= ' ' . $self->_write_scalar( $el, $indent + 1 );
+ push @lines, $line;
+
+ } elsif ( $type eq 'ARRAY' ) {
+ if ( @$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_array( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' []';
+ push @lines, $line;
+ }
+
+ } elsif ( $type eq 'HASH' ) {
+ if ( keys %$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_hash( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' {}';
+ push @lines, $line;
+ }
+
+ } else {
+ die "YAML::Tiny does not support $type references";
+ }
+ }
+
+ @lines;
+}
+
+# Set error
+sub _error {
+ $YAML::Tiny::errstr = $_[1];
+ undef;
+}
+
+# Retrieve error
+sub errstr {
+ $YAML::Tiny::errstr;
+}
+
+
+
+
+
+#####################################################################
+# YAML Compatibility
+
+sub Dump {
+ YAML::Tiny->new(@_)->write_string;
+}
+
+sub Load {
+ my $self = YAML::Tiny->read_string(@_);
+ unless ( $self ) {
+ croak("Failed to load YAML document from string");
+ }
+ if ( wantarray ) {
+ return @$self;
+ } else {
+ # To match YAML.pm, return the last document
+ return $self->[-1];
+ }
+}
+
+BEGIN {
+ *freeze = *Dump;
+ *thaw = *Load;
+}
+
+sub DumpFile {
+ my $file = shift;
+ YAML::Tiny->new(@_)->write($file);
+}
+
+sub LoadFile {
+ my $self = YAML::Tiny->read($_[0]);
+ unless ( $self ) {
+ croak("Failed to load YAML document from '" . ($_[0] || '') . "'");
+ }
+ if ( wantarray ) {
+ return @$self;
+ } else {
+ # Return only the last document to match YAML.pm,
+ return $self->[-1];
+ }
+}
+
+
+
+
+
+#####################################################################
+# Use Scalar::Util if possible, otherwise emulate it
+
+BEGIN {
+ eval {
+ require Scalar::Util;
+ };
+ if ( $@ ) {
+ # Failed to load Scalar::Util
+ eval <<'END_PERL';
+sub refaddr {
+ my $pkg = ref($_[0]) or return undef;
+ if (!!UNIVERSAL::can($_[0], 'can')) {
+ bless $_[0], 'Scalar::Util::Fake';
+ } else {
+ $pkg = undef;
+ }
+ "$_[0]" =~ /0x(\w+)/;
+ my $i = do { local $^W; hex $1 };
+ bless $_[0], $pkg if defined $pkg;
+ $i;
+}
+END_PERL
+ } else {
+ Scalar::Util->import('refaddr');
+ }
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+YAML::Tiny - Read/Write YAML files with as little code as possible
+
+=head1 PREAMBLE
+
+The YAML specification is huge. Really, B<really> huge. It contains all the
+functionality of XML, except with flexibility and choice, which makes it
+easier to read, but with a formal specification that is more complex than
+XML.
+
+The original pure-Perl implementation L<YAML> costs just over 4 megabytes of
+memory to load. Just like with Windows .ini files (3 meg to load) and CSS
+(3.5 meg to load) the situation is just asking for a B<YAML::Tiny> module, an
+incomplete but correct and usable subset of the functionality, in as little
+code as possible.
+
+Like the other C<::Tiny> modules, YAML::Tiny will have no non-core
+dependencies, not require a compiler, and be back-compatible to at least
+perl 5.005_03, and ideally 5.004.
+
+=head1 SYNOPSIS
+
+ #############################################
+ # In your file
+
+ ---
+ rootproperty: blah
+ section:
+ one: two
+ three: four
+ Foo: Bar
+ empty: ~
+
+
+
+ #############################################
+ # In your program
+
+ use YAML::Tiny;
+
+ # Create a YAML file
+ my $yaml = YAML::Tiny->new;
+
+ # Open the config
+ $yaml = YAML::Tiny->read( 'file.yml' );
+
+ # Reading properties
+ my $root = $yaml->[0]->{rootproperty};
+ my $one = $yaml->[0]->{section}->{one};
+ my $Foo = $yaml->[0]->{section}->{Foo};
+
+ # Changing data
+ $yaml->[0]->{newsection} = { this => 'that' }; # Add a section
+ $yaml->[0]->{section}->{Foo} = 'Not Bar!'; # Change a value
+ delete $yaml->[0]->{section}; # Delete a value or section
+
+ # Add an entire document
+ $yaml->[1] = [ 'foo', 'bar', 'baz' ];
+
+ # Save the file
+ $yaml->write( 'file.conf' );
+
+=head1 DESCRIPTION
+
+B<YAML::Tiny> is a perl class for reading and writing YAML-style files,
+written with as little code as possible, reducing load time and memory
+overhead.
+
+Most of the time it is accepted that Perl applications use a lot
+of memory and modules. The B<::Tiny> family of modules is specifically
+intended to provide an ultralight and zero-dependency alternative to
+many more-thorough standard modules.
+
+This module is primarily for reading human-written files (like simple
+config files) and generating very simple human-readable files. Note that
+I said B<human-readable> and not B<geek-readable>. The sort of files that
+your average manager or secretary should be able to look at and make
+sense of.
+
+L<YAML::Tiny> does not generate comments, it won't necesarily preserve the
+order of your hashes, and it will normalise if reading in and writing out
+again.
+
+It only supports a very basic subset of the full YAML specification.
+
+Usage is targetted at files like Perl's META.yml, for which a small and
+easily-embeddable module is extremely attractive.
+
+Features will only be added if they are human readable, and can be written
+in a few lines of code. Please don't be offended if your request is
+refused. Someone has to draw the line, and for YAML::Tiny that someone is me.
+
+If you need something with more power move up to L<YAML> (4 megabytes of
+memory overhead) or L<YAML::Syck> (275k, but requires libsyck and a C
+compiler).
+
+To restate, L<YAML::Tiny> does B<not> preserve your comments, whitespace, or
+the order of your YAML data. But it should round-trip from Perl structure
+to file and back again just fine.
+
+=head1 YAML TINY SPECIFICATION
+
+This section of the documentation provides a specification for "YAML Tiny",
+a subset of the YAML specification.
+
+It is based on and described comparatively to the YAML 1.1 Working Draft
+2004-12-28 specification, located at L<http://yaml.org/spec/current.html>.
+
+Terminology and chapter numbers are based on that specification.
+
+=head2 1. Introduction and Goals
+
+The purpose of the YAML Tiny specification is to describe a useful subset of
+the YAML specification that can be used for typical document-oriented
+uses such as configuration files and simple data structure dumps.
+
+Many specification elements that add flexibility or extensibility are
+intentionally removed, as is support for complex datastructures, class
+and object-orientation.
+
+In general, YAML Tiny targets only those data structures available in
+JSON, with the additional limitation that only simple keys are supported.
+
+As a result, all possible YAML Tiny documents should be able to be
+transformed into an equivalent JSON document, although the reverse is
+not necesarily true (but will be true in simple cases).
+
+As a result of these simplifications the YAML Tiny specification should
+be implementable in a relatively small amount of code in any language
+that supports Perl Compatible Regular Expressions (PCRE).
+
+=head2 2. Introduction
+
+YAML Tiny supports three data structures. These are scalars (in a variety
+of forms), block-form sequences and block-form mappings. Flow-style
+sequences and mappings are not supported, with some minor exceptions
+detailed later.
+
+The use of three dashes "---" to indicate the start of a new document is
+supported, and multiple documents per file/stream is allowed.
+
+Both line and inline comments are supported.
+
+Scalars are supported via the plain style, single quote and double quote,
+as well as literal-style and folded-style multi-line scalars.
+
+The use of tags is not supported.
+
+The use of anchors and aliases is not supported.
+
+The use of directives is supported only for the %YAML directive.
+
+=head2 3. Processing YAML Tiny Information
+
+B<Processes>
+
+The YAML specification dictates three-phase serialization and three-phase
+deserialization.
+
+The YAML Tiny specification does not mandate any particular methodology
+or mechanism for parsing.
+
+Any compliant parser is only required to parse a single document at a
+time. The ability to support streaming documents is optional and most
+likely non-typical.
+
+Because anchors and aliases are not supported, the resulting representation
+graph is thus directed but (unlike the main YAML specification) B<acyclic>.
+
+Circular references/pointers are not possible, and any YAML Tiny serializer
+detecting a circulars should error with an appropriate message.
+
+B<Presentation Stream>
+
+YAML Tiny is notionally unicode, but support for unicode is required if the
+underlying language or system being used to implement a parser does not
+support Unicode. If unicode is encountered in this case an error should be
+returned.
+
+B<Loading Failure Points>
+
+YAML Tiny parsers and emitters are not expected to recover from adapt to
+errors. The specific error modality of any implementation is not dictated
+(return codes, exceptions, etc) but is expected to be consistant.
+
+=head2 4. Syntax
+
+B<Character Set>
+
+YAML Tiny streams are implemented primarily using the ASCII character set,
+although the use of Unicode inside strings is allowed if support by the
+implementation.
+
+Specific YAML Tiny encoded document types aiming for maximum compatibility
+should restrict themselves to ASCII.
+
+The escaping and unescaping of the 8-bit YAML escapes is required.
+
+The escaping and unescaping of 16-bit and 32-bit YAML escapes is not
+required.
+
+B<Indicator Characters>
+
+Support for the "~" null/undefined indicator is required.
+
+Implementations may represent this as appropriate for the underlying
+language.
+
+Support for the "-" block sequence indicator is required.
+
+Support for the "?" mapping key indicator is B<not> required.
+
+Support for the ":" mapping value indicator is required.
+
+Support for the "," flow collection indicator is B<not> required.
+
+Support for the "[" flow sequence indicator is B<not> required, with
+one exception (detailed below).
+
+Support for the "]" flow sequence indicator is B<not> required, with
+one exception (detailed below).
+
+Support for the "{" flow mapping indicator is B<not> required, with
+one exception (detailed below).
+
+Support for the "}" flow mapping indicator is B<not> required, with
+one exception (detailed below).
+
+Support for the "#" comment indicator is required.
+
+Support for the "&" anchor indicator is B<not> required.
+
+Support for the "*" alias indicator is B<not> required.
+
+Support for the "!" tag indicator is B<not> required.
+
+Support for the "|" literal block indicator is required.
+
+Support for the ">" folded block indicator is required.
+
+Support for the "'" single quote indicator is required.
+
+Support for the """ double quote indicator is required.
+
+Support for the "%" directive indicator is required, but only
+for the special case of a %YAML version directive before the
+"---" document header, or on the same line as the document header.
+
+For example:
+
+ %YAML 1.1
+ ---
+ - A sequence with a single element
+
+Special Exception:
+
+To provide the ability to support empty sequences
+and mappings, support for the constructs [] (empty sequence) and {}
+(empty mapping) are required.
+
+For example,
+
+ %YAML 1.1
+ # A document consisting of only an empty mapping
+ --- {}
+ # A document consisting of only an empty sequence
+ --- []
+ # A document consisting of an empty mapping within a sequence
+ - foo
+ - {}
+ - bar
+
+B<Syntax Primitives>
+
+Other than the empty sequence and mapping cases described above, YAML Tiny
+supports only the indentation-based block-style group of contexts.
+
+All five scalar contexts are supported.
+
+Indentation spaces work as per the YAML specification in all cases.
+
+Comments work as per the YAML specification in all simple cases.
+Support for indented multi-line comments is B<not> required.
+
+Seperation spaces work as per the YAML specification in all cases.
+
+B<YAML Tiny Character Stream>
+
+The only directive supported by the YAML Tiny specification is the
+%YAML language/version identifier. Although detected, this directive
+will have no control over the parsing itself.
+
+The parser must recognise both the YAML 1.0 and YAML 1.1+ formatting
+of this directive (as well as the commented form, although no explicit
+code should be needed to deal with this case, being a comment anyway)
+
+That is, all of the following should be supported.
+
+ --- #YAML:1.0
+ - foo
+
+ %YAML:1.0
+ ---
+ - foo
+
+ % YAML 1.1
+ ---
+ - foo
+
+Support for the %TAG directive is B<not> required.
+
+Support for additional directives is B<not> required.
+
+Support for the document boundary marker "---" is required.
+
+Support for the document boundary market "..." is B<not> required.
+
+If necesary, a document boundary should simply by indicated with a
+"---" marker, with not preceding "..." marker.
+
+Support for empty streams (containing no documents) is required.
+
+Support for implicit document starts is required.
+
+That is, the following must be equivalent.
+
+ # Full form
+ %YAML 1.1
+ ---
+ foo: bar
+
+ # Implicit form
+ foo: bar
+
+B<Nodes>
+
+Support for nodes optional anchor and tag properties are B<not> required.
+
+Support for node anchors is B<not> required.
+
+Supprot for node tags is B<not> required.
+
+Support for alias nodes is B<not> required.
+
+Support for flow nodes is B<not> required.
+
+Support for block nodes is required.
+
+B<Scalar Styles>
+
+Support for all five scalar styles are required as per the YAML
+specification, although support for quoted scalars spanning more
+than one line is B<not> required.
+
+Support for the chomping indicators on multi-line scalar styles
+is required.
+
+B<Collection Styles>
+
+Support for block-style sequences is required.
+
+Support for flow-style sequences is B<not> required.
+
+Support for block-style mappings is required.
+
+Support for flow-style mappings is B<not> required.
+
+Both sequences and mappings should be able to be arbitrarily
+nested.
+
+Support for plain-style mapping keys is required.
+
+Support for quoted keys in mappings is B<not> required.
+
+Support for "?"-indicated explicit keys is B<not> required.
+
+Here endeth the specification.
+
+=head2 Additional Perl-Specific Notes
+
+For some Perl applications, it's important to know if you really have a
+number and not a string.
+
+That is, in some contexts is important that 3 the number is distinctive
+from "3" the string.
+
+Because even Perl itself is not trivially able to understand the difference
+(certainly without XS-based modules) Perl implementations of the YAML Tiny
+specification are not required to retain the distinctiveness of 3 vs "3".
+
+=head1 METHODS
+
+=head2 new
+
+The constructor C<new> creates and returns an empty C<YAML::Tiny> object.
+
+=head2 read $filename
+
+The C<read> constructor reads a YAML file, and returns a new
+C<YAML::Tiny> object containing the contents of the file.
+
+Returns the object on success, or C<undef> on error.
+
+When C<read> fails, C<YAML::Tiny> sets an error message internally
+you can recover via C<YAML::Tiny-E<gt>errstr>. Although in B<some>
+cases a failed C<read> will also set the operating system error
+variable C<$!>, not all errors do and you should not rely on using
+the C<$!> variable.
+
+=head2 read_string $string;
+
+The C<read_string> method takes as argument the contents of a YAML file
+(a YAML document) as a string and returns the C<YAML::Tiny> object for
+it.
+
+=head2 write $filename
+
+The C<write> method generates the file content for the properties, and
+writes it to disk to the filename specified.
+
+Returns true on success or C<undef> on error.
+
+=head2 write_string
+
+Generates the file content for the object and returns it as a string.
+
+=head2 errstr
+
+When an error occurs, you can retrieve the error message either from the
+C<$YAML::Tiny::errstr> variable, or using the C<errstr()> method.
+
+=head1 FUNCTIONS
+
+YAML::Tiny implements a number of functions to add compatibility with
+the L<YAML> API. These should be a drop-in replacement, except that
+YAML::Tiny will B<not> export functions by default, and so you will need
+to explicitly import the functions.
+
+=head2 Dump
+
+ my $string = Dump(list-of-Perl-data-structures);
+
+Turn Perl data into YAML. This function works very much like Data::Dumper::Dumper().
+
+It takes a list of Perl data strucures and dumps them into a serialized form.
+
+It returns a string containing the YAML stream.
+
+The structures can be references or plain scalars.
+
+=head2 Load
+
+ my @documents = Load(string-containing-a-YAML-stream);
+
+Turn YAML into Perl data. This is the opposite of Dump.
+
+Just like L<Storable>'s thaw() function or the eval() function in relation
+to L<Data::Dumper>.
+
+It parses a string containing a valid YAML stream into a list of Perl data
+structures.
+
+=head2 freeze() and thaw()
+
+Aliases to Dump() and Load() for L<Storable> fans. This will also allow
+YAML::Tiny to be plugged directly into modules like POE.pm, that use the
+freeze/thaw API for internal serialization.
+
+=head2 DumpFile(filepath, list)
+
+Writes the YAML stream to a file instead of just returning a string.
+
+=head2 LoadFile(filepath)
+
+Reads the YAML stream from a file instead of a string.
+
+=head1 SUPPORT
+
+Bugs should be reported via the CPAN bug tracker at
+
+L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=YAML-Tiny>
+
+=begin html
+
+For other issues, or commercial enhancement or support, please contact
+<a href="http://ali.as/">Adam Kennedy</a> directly.
+
+=end html
+
+=head1 AUTHOR
+
+Adam Kennedy E<lt>adamk at cpan.orgE<gt>
+
+=head1 SEE ALSO
+
+L<YAML>, L<YAML::Syck>, L<Config::Tiny>, L<CSS::Tiny>,
+L<http://use.perl.org/~Alias/journal/29427>, L<http://ali.as/>
+
+=head1 COPYRIGHT
+
+Copyright 2006 - 2009 Adam Kennedy.
+
+This program is free software; you can redistribute
+it and/or modify it under the same terms as Perl itself.
+
+The full text of the license can be found in the
+LICENSE file included with this module.
+
+=cut
More information about the mpich2-commits
mailing list